diff -Nrcpad gcc-10.3.0/ChangeLog gcc-10.4.0/ChangeLog *** gcc-10.3.0/ChangeLog Thu Apr 8 11:56:48 2021 --- gcc-10.4.0/ChangeLog Tue Jun 28 08:54:27 2022 *************** *** 1,3 **** --- 1,33 ---- + 2022-06-28 Release Manager + + * GCC 10.4.0 released. + + 2022-05-29 Iain Sandoe + + * Makefile.def: Add dsymutil defs. + * Makefile.in: Regenerated. + * Makefile.tpl: Add dsymutil to flags. + * configure: Regenerated. + * configure.ac: Add dsymutil to target and build recipes. + + 2022-05-29 Iain Sandoe + + Backported from master: + 2021-08-18 Iain Sandoe + + * Makefile.in: Regenerate. + * Makefile.tpl: Make the state of the configured host + shared flag available to makefile fragements. + + 2022-05-29 Iain Sandoe + + Backported from master: + 2021-07-09 Iain Sandoe + + * configure: Regenerate. + * configure.ac: Adjust cases for which it is necessary to + include the Darwin host config fragment. + 2021-04-08 Release Manager * GCC 10.3.0 released. diff -Nrcpad gcc-10.3.0/INSTALL/binaries.html gcc-10.4.0/INSTALL/binaries.html *** gcc-10.3.0/INSTALL/binaries.html Thu Apr 8 11:57:06 2021 --- gcc-10.4.0/INSTALL/binaries.html Tue Jun 28 08:55:12 2022 *************** *** 1,5 **** --- 1,8 ---- + + + - - - Installing GCC: Binaries --- 22,27 ---- *************** You have freedom to copy and modify this *** 29,58 **** --- 29,52 ---- + + *************** ul.no-bullet {list-style: none} *** 85,92 **** ! !

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

We are often asked about pre-compiled versions of GCC. While we cannot provide these for all platforms, below you’ll find links to binaries for diff -Nrcpad gcc-10.3.0/INSTALL/build.html gcc-10.4.0/INSTALL/build.html *** gcc-10.3.0/INSTALL/build.html Thu Apr 8 11:57:05 2021 --- gcc-10.4.0/INSTALL/build.html Tue Jun 28 08:55:12 2022 *************** *** 1,5 **** --- 1,8 ---- + + + - - - Installing GCC: Building --- 22,27 ---- *************** You have freedom to copy and modify this *** 29,58 **** --- 29,52 ---- + + *************** ul.no-bullet {list-style: none} *** 82,88 **** !

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

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

!

Building a native compiler

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

!

Building a native compiler

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

!
!
make BOOT_CFLAGS='-O' bootstrap
  

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

!
!
make BOOT_CFLAGS='-O' bootstrap
  

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

!
bootstrap-O1

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

!
bootstrap-O3
!
bootstrap-Og

Analogous to bootstrap-O1.

!
bootstrap-lto

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

!
bootstrap-O1

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

!
bootstrap-O3
!
bootstrap-Og

Analogous to bootstrap-O1.

!
bootstrap-lto

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

!
bootstrap-lto-noplugin

This option is similar to bootstrap-lto, but is intended for hosts that do not support the linker plugin. Without the linker plugin static libraries are not compiled with link-time optimizations. Since --- 237,243 ---- version 2.21 or later).

!
bootstrap-lto-noplugin

This option is similar to bootstrap-lto, but is intended for hosts that do not support the linker plugin. Without the linker plugin static libraries are not compiled with link-time optimizations. Since *************** the GCC middle end and back end are in < *** 251,264 **** that only the front end is actually LTO optimized.

!
bootstrap-lto-lean

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

!
bootstrap-debug

Verifies that the compiler generates the same executable code, whether or not it is asked to emit debug information. To this end, this option builds stage2 host programs without debug information, and uses --- 245,258 ---- that only the front end is actually LTO optimized.

!
bootstrap-lto-lean

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

!
bootstrap-debug

Verifies that the compiler generates the same executable code, whether or not it is asked to emit debug information. To this end, this option builds stage2 host programs without debug information, and uses *************** info into identical object files. In ad *** 271,277 **** coverage, this option makes default bootstraps faster and leaner.

!
bootstrap-debug-big

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

!
bootstrap-debug-big

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

!
bootstrap-debug-lean

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

!
bootstrap-debug-lean

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

!
bootstrap-debug-lib

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

!
bootstrap-debug-lib

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

!
bootstrap-debug-ckovw

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

!
bootstrap-debug-ckovw

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

!
bootstrap-cet

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

!
bootstrap-cet

This option enables Intel CET for host tools during bootstrapping. ‘BUILD_CONFIG=bootstrap-cet’ is equivalent to adding -fcf-protection to ‘BOOT_CFLAGS’. This option *************** assumes that the host supports Intel CET *** 318,337 **** 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.

!

Building a cross compiler

When building a cross compiler, it is not generally possible to do a --- 312,332 ---- 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.

!
!

Building a cross compiler

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

--- 364,383 ---- 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 *** 409,415 **** 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 --- 404,411 ---- 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 *** 420,431 **** 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 --- 416,429 ---- 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. *** 466,472 **** !


--- 464,470 ---- !
diff -Nrcpad gcc-10.3.0/INSTALL/configure.html gcc-10.4.0/INSTALL/configure.html *** gcc-10.3.0/INSTALL/configure.html Thu Apr 8 11:57:05 2021 --- gcc-10.4.0/INSTALL/configure.html Tue Jun 28 08:55:12 2022 *************** *** 1,5 **** --- 1,8 ---- + + + - - - Installing GCC: Configuration --- 22,27 ---- *************** You have freedom to copy and modify this *** 29,58 **** --- 29,52 ---- + + *************** ul.no-bullet {list-style: none} *** 81,88 **** ! !

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

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

To configure GCC:

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

Distributor options

If you will be distributing binary versions of GCC, with modifications to the source code, you should use the options described in this section to make clear that your version contains modifications.

!
--with-pkgversion=version

Specify a string that identifies your package. You may wish to include a build number or build date. This version string will be included in the output of gcc --version. This suffix does --- 122,141 ----

To configure GCC:

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

Distributor options

If you will be distributing binary versions of GCC, with modifications to the source code, you should use the options described in this section to make clear that your version contains modifications.

!
--with-pkgversion=version

Specify a string that identifies your package. You may wish to include a build number or build date. This version string will be included in the output of gcc --version. This suffix does *************** not replace the default version string, *** 151,157 ****

The default value is ‘GCC’.

!
--with-bugurl=url

Specify the URL that users should visit if they wish to report a bug. You are of course welcome to forward bugs reported to you to the FSF, if you determine that they are not bugs in your modifications. --- 144,150 ----

The default value is ‘GCC’.

!
--with-bugurl=url

Specify the URL that users should visit if they wish to report a bug. You are of course welcome to forward bugs reported to you to the FSF, if you determine that they are not bugs in your modifications. *************** if you determine that they are not bugs *** 159,172 ****

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

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

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

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

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

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

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

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

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

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

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

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

! !

Target specification

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

Target specification

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

Options specification

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

Options specification

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

!
--prefix=dirname

Specify the toplevel installation directory. This is the recommended way to install the tools into a directory other than the default. The toplevel installation directory defaults to --- 196,202 ---- corresponding --without option.

!
--prefix=dirname

Specify the toplevel installation directory. This is the recommended way to install the tools into a directory other than the default. The toplevel installation directory defaults to *************** beneath a user’s home directory tr *** 220,282 ****

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

!
--exec-prefix=dirname

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

!
--bindir=dirname

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

!
--libdir=dirname

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

!
--libexecdir=dirname

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

!
--with-slibdir=dirname

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

!
--datarootdir=dirname

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

!
--infodir=dirname

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

!
--datadir=dirname

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

!
--docdir=dirname

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

!
--htmldir=dirname

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

!
--pdfdir=dirname

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

!
--mandir=dirname

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

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

!
--exec-prefix=dirname

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

!
--bindir=dirname

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

!
--libdir=dirname

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

!
--libexecdir=dirname

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

!
--with-slibdir=dirname

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

!
--datarootdir=dirname

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

!
--infodir=dirname

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

!
--datadir=dirname

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

!
--docdir=dirname

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

!
--htmldir=dirname

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

!
--pdfdir=dirname

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

!
--mandir=dirname

Specify the installation directory for manual pages. The default is datarootdir/man. (Note that the manual pages are only extracts from the full GCC manuals, which are provided in Texinfo format. The manpages *************** are derived by an automatic conversion p *** 284,297 **** manual.)

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

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

!
--with-specs=specs

Specify additional command line driver SPECS. This can be useful if you need to turn on a non-standard feature by default without modifying the compiler’s source code, for instance --- 275,288 ---- manual.)

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

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

!
--with-specs=specs

Specify additional command line driver SPECS. This can be useful if you need to turn on a non-standard feature by default without modifying the compiler’s source code, for instance *************** See “Spec Files” in the main *** 302,308 ****

!
--program-prefix=prefix

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

!
--program-prefix=prefix

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

!
--program-suffix=suffix

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

!
--program-transform-name=pattern

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

!
--program-suffix=suffix

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

!
--program-transform-name=pattern

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

!
--with-local-prefix=dirname

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

!
--with-local-prefix=dirname

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

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

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

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

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

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

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

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

Specifies that dirname is the directory that contains native system header files, rather than /usr/include. This option is most useful if you are creating a compiler that should be isolated from the system *************** as much as possible. It is most commonl *** 437,443 **** dirname inside the system root specified by that option.

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

Build shared versions of libraries, if shared libraries are supported on the target platform. Unlike GCC 2.95.x and earlier, shared libraries are enabled by default on all platforms that support shared libraries. --- 428,434 ---- dirname inside the system root specified by that option.

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

Build shared versions of libraries, if shared libraries are supported on the target platform. Unlike GCC 2.95.x and earlier, shared libraries are enabled by default on all platforms that support shared libraries. *************** argument, only --enable-shared

!
--enable-host-shared

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

!
--enable-host-shared

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

!
--with-gnu-as

Specify that the compiler should assume that the assembler it finds is the GNU assembler. However, this does not modify the rules to find an assembler and will result in confusion if the --- 460,466 ---- libraries.

!
--with-gnu-as

Specify that the compiler should assume that the assembler it finds is the GNU assembler. However, this does not modify the rules to find an assembler and will result in confusion if the *************** whether you use the GNU assembler. On a *** 492,498 ****

!
--with-as=pathname

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

!
--with-as=pathname

Specify that the compiler should use the assembler pointed to by pathname, rather than the one found by the standard rules to find an assembler, which are: *************** assemblers installed and want to choose *** 525,554 **** 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-stabs

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

!
--with-tls=dialect

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

!
--enable-multiarch

Specify whether to enable or disable multiarch support. The default is to check for glibc start files in a multiarch location, and enable it if the files are found. The auto detection is enabled for native builds, --- 516,550 ---- above rules.

!
--with-gnu-ld

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

!
--with-ld=pathname

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

!
--with-dsymutil=pathname
!

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

!
!
--with-stabs

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

!
--with-tls=dialect

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

!
--enable-multiarch

Specify whether to enable or disable multiarch support. The default is to check for glibc start files in a multiarch location, and enable it if the files are found. The auto detection is enabled for native builds, *************** More documentation about multiarch can b *** 558,570 **** https://wiki.debian.org/Multiarch.

!
--enable-sjlj-exceptions

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

!
--enable-vtable-verify

Specify whether to enable or disable the vtable verification feature. Enabling this feature causes libstdc++ to be built with its virtual calls in verifiable mode. This means that, when linked with libvtv, every --- 554,566 ---- https://wiki.debian.org/Multiarch.

!
--enable-sjlj-exceptions

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

!
--enable-vtable-verify

Specify whether to enable or disable the vtable verification feature. Enabling this feature causes libstdc++ to be built with its virtual calls in verifiable mode. This means that, when linked with libvtv, every *************** still be built (see --disable-libv *** 577,588 **** --disable-vtable-verify is the default.

!
--disable-gcov

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

!
--disable-multilib

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

!
--disable-gcov

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

!
--disable-multilib

Specify that multiple target libraries to support different target variants, calling conventions, etc. should not be built. The default is to build a *************** predefined set of them. *** 591,613 ****

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

!
arm-*-*

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

!
m68*-*-*

softfloat, m68881, m68000, m68020.

!
mips*-*-*

single-float, biendian, softfloat.

!
msp430-*-*

no-exceptions

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

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

--- 587,609 ----

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

!
arm-*-*

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

!
m68*-*-*

softfloat, m68881, m68000, m68020.

!
mips*-*-*

single-float, biendian, softfloat.

!
msp430-*-*

no-exceptions

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

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

*************** sysv, aix. *** 615,629 ****
!
--with-multilib-list=list
!
--without-multilib-list

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

!
aarch64*-*-*

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

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

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

!
aarch64*-*-*

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

!
arm*-*-*

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

!
arm*-*-*

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

!
riscv*-*-*

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

!
riscv*-*-*

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

!
sh*-*-*

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

!
sh*-*-*

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

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

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

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

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

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

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

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

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

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

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

!
--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++. --- 744,771 ----

!
--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, *** 782,836 **** 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 --- 778,832 ---- 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 *** 839,858 **** 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, --- 835,854 ---- 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 *** 862,877 **** 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 --- 858,873 ---- 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.

--- 875,911 ---- 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. *** 918,944 **** 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.

--- 914,940 ---- 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 *** 950,999 **** -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 --- 946,995 ---- -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 *** 1009,1020 **** 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 --- 1005,1016 ---- 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 *** 1025,1044 **** 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 --- 1021,1040 ---- 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. *** 1047,1074 **** -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 --- 1043,1070 ---- -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 *** 1077,1089 **** .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-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 --- 1073,1085 ---- .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-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 *** 1093,1106 **** 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 --- 1089,1102 ---- 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 *** 1109,1115 **** 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, --- 1105,1111 ---- 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 *** 1124,1130 **** 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 --- 1120,1126 ---- 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 *** 1136,1142 **** 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, --- 1132,1138 ---- 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 *** 1147,1160 **** 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 --- 1143,1156 ---- 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. *** 1171,1178 ****
!
--with-aix-soname=both
!
--with-aix-soname=svr4

A (second) Shared Archive Library file is created:

  • using the ‘libNAME.so.V’ filename scheme --- 1167,1174 ----
!
--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. *** 1210,1216 ****

    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 --- 1206,1212 ----

      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 *** 1242,1254 ****

        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, --- 1238,1250 ----

      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, *** 1264,1270 **** --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 --- 1260,1266 ---- --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 *** 1280,1331 **** 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 --- 1276,1327 ---- 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 *** 1334,1341 **** 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. --- 1330,1337 ---- 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 *** 1349,1373 **** 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 --- 1345,1369 ---- 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 *** 1376,1389 **** 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 --- 1372,1385 ---- 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 --- 1391,1406 ---- 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 *** 1413,1421 **** 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 --- 1409,1417 ---- 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 *** 1453,1461 **** 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 --- 1449,1457 ---- 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 *** 1467,1474 **** 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 --- 1463,1470 ---- 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 *** 1479,1509 **** 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 --- 1475,1505 ---- 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 *** 1511,1522 **** 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 --- 1507,1518 ---- 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 *** 1527,1538 **** 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 --- 1523,1534 ---- 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 *** 1543,1557 **** (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. --- 1539,1553 ---- (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 *** 1560,1567 **** 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 --- 1556,1563 ---- 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 *** 1590,1608 **** 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 --- 1586,1604 ---- 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 *** 1629,1637 **** 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 --- 1625,1633 ---- 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. *** 1645,1651 **** 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 --- 1641,1647 ---- 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 ‘ *** 1653,1683 **** 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 --- 1649,1679 ---- 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, *** 1686,1706 **** --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’ --- 1682,1702 ---- --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 *** 1710,1716 **** -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’ --- 1706,1712 ---- -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 *** 1720,1733 **** 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 --- 1716,1729 ---- 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 *** 1738,1752 **** 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 --- 1734,1748 ---- 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 *** 1754,1761 **** 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 --- 1750,1757 ---- 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 *** 1763,1769 **** --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 --- 1759,1765 ---- --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 *** 1776,1793 **** 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,hsa
        
      --- 1772,1789 ---- 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,hsa
        
      *************** built with support for HSA GPU accelerat *** 1796,1804 **** compiler will emit the accelerator code, no path should be specified.

      !
      --with-hsa-runtime=pathname
      !
      --with-hsa-runtime-include=pathname
      !
      --with-hsa-runtime-lib=pathname

      If you configure GCC with HSA offloading but do not have the HSA run-time library installed in a standard location then you can --- 1792,1800 ---- compiler will emit the accelerator code, no path should be specified.

      !
      --with-hsa-runtime=pathname
      !
      --with-hsa-runtime-include=pathname
      !
      --with-hsa-runtime-lib=pathname

      If you configure GCC with HSA offloading but do not have the HSA run-time library installed in a standard location then you can *************** shorthand for *** 1809,1816 **** --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 --- 1805,1812 ---- --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 *************** In this case the target libraries are co *** 1824,1830 **** -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.

      --- 1820,1826 ---- -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.

      *************** target if target binutils supported. *** 1833,1850 ****

      ! !

      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 --- 1829,1845 ----

      !

      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 *** 1868,1875 **** 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 --- 1863,1870 ---- 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 *** 1887,1894 **** 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 --- 1882,1889 ---- 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 *** 1900,1913 **** 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 --- 1895,1908 ---- 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 *** 1915,1921 **** 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 --- 1910,1916 ---- 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 *** 1923,1929 ****

      !
      --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 --- 1918,1924 ----

      !
      --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 *** 1934,1941 **** 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: --- 1929,1936 ---- 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 *** 1962,1968 **** 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). --- 1957,1963 ---- 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 *** 1970,1976 **** 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 --- 1965,1971 ---- 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 *** 1986,1998 **** 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 --- 1981,1993 ---- 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. *** 2011,2018 ****

      ! !

      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 --- 2006,2012 ----

    !

    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. *** 2020,2040 **** 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.

    --- 2014,2031 ---- 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. *** 2044,2056 **** 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 --- 2035,2046 ---- 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 *** 2060,2068 **** 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 --- 2050,2058 ---- 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. *** 2081,2095 ****

    ! !

    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 --- 2071,2084 ----

    !

    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 *** 2106,2113 **** 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 --- 2095,2102 ---- 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 < *** 2120,2126 **** ‘--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 --- 2109,2115 ---- ‘--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-10.3.0/INSTALL/download.html gcc-10.4.0/INSTALL/download.html *** gcc-10.3.0/INSTALL/download.html Thu Apr 8 11:57:05 2021 --- gcc-10.4.0/INSTALL/download.html Tue Jun 28 08:55:11 2022 *************** *** 1,5 **** --- 1,8 ---- + + + - - - Downloading GCC --- 22,27 ---- *************** You have freedom to copy and modify this *** 29,58 **** --- 29,52 ---- + + *************** ul.no-bullet {list-style: none} *** 80,87 **** ! !

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

    GCC is distributed via git and via HTTPS as tarballs compressed with gzip or bzip2. diff -Nrcpad gcc-10.3.0/INSTALL/finalinstall.html gcc-10.4.0/INSTALL/finalinstall.html *** gcc-10.3.0/INSTALL/finalinstall.html Thu Apr 8 11:57:06 2021 --- gcc-10.4.0/INSTALL/finalinstall.html Tue Jun 28 08:55:12 2022 *************** *** 1,5 **** --- 1,8 ---- + + + - - - Installing GCC: Final installation --- 22,27 ---- *************** You have freedom to copy and modify this *** 29,58 **** --- 29,52 ---- + + *************** ul.no-bullet {list-style: none} *** 86,93 ****

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

    !
    cd objdir && make install
      

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

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

    !
    cd objdir && make install
      

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

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

    !
    !
    make DESTDIR=path-to-rootdir install
      

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

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

    !
    !
    make DESTDIR=path-to-rootdir install
      

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

    You can install stripped programs and libraries with

    !
    !
    make install-strip
      

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

    You can install stripped programs and libraries with

    !
    !
    make install-strip
      

    If you are bootstrapping a released version of GCC then please diff -Nrcpad gcc-10.3.0/INSTALL/gfdl.html gcc-10.4.0/INSTALL/gfdl.html *** gcc-10.3.0/INSTALL/gfdl.html Thu Apr 8 11:57:06 2021 --- gcc-10.4.0/INSTALL/gfdl.html Tue Jun 28 08:55:13 2022 *************** *** 1,5 **** --- 1,8 ---- + + + - - - Installing GCC: GNU Free Documentation License --- 22,27 ---- *************** You have freedom to copy and modify this *** 29,58 **** --- 29,52 ---- + + *************** ul.no-bullet {list-style: none} *** 90,96 ****

    Installing GCC: GNU Free Documentation License

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

    Installing GCC: GNU Free Documentation License

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

  • !

    ADDENDUM: How to use this License for your documents

    To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page:

    !
    !
      Copyright (C)  year  your name.
        Permission is granted to copy, distribute and/or modify this document
        under the terms of the GNU Free Documentation License, Version 1.3
        or any later version published by the Free Software Foundation;
    --- 517,531 ----
      

    !

    ADDENDUM: How to use this License for your documents

    To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page:

    !
    !
      Copyright (C)  year  your name.
        Permission is granted to copy, distribute and/or modify this document
        under the terms of the GNU Free Documentation License, Version 1.3
        or any later version published by the Free Software Foundation;
    *************** license notices just after the title pag
    *** 543,550 ****
      

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

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

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

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

    Return to the GCC Installation page

    !
    --- 558,564 ----

    Return to the GCC Installation page

    !
    diff -Nrcpad gcc-10.3.0/INSTALL/index.html gcc-10.4.0/INSTALL/index.html *** gcc-10.3.0/INSTALL/index.html Thu Apr 8 11:57:04 2021 --- gcc-10.4.0/INSTALL/index.html Tue Jun 28 08:55:11 2022 *************** *** 1,5 **** --- 1,8 ---- + + + - - - Installing GCC --- 22,27 ---- *************** You have freedom to copy and modify this *** 29,58 **** --- 29,52 ---- + + *************** Free Documentation License”. *** 149,155 **** - --- 143,148 ---- diff -Nrcpad gcc-10.3.0/INSTALL/old.html gcc-10.4.0/INSTALL/old.html *** gcc-10.3.0/INSTALL/old.html Thu Apr 8 11:57:06 2021 --- gcc-10.4.0/INSTALL/old.html Tue Jun 28 08:55:12 2022 *************** *** 1,5 **** --- 1,8 ---- + + + - - - Installing GCC: Old documentation --- 22,27 ---- *************** You have freedom to copy and modify this *** 29,58 **** --- 29,52 ---- + + *************** the same as the host machine. *** 130,137 ****

    Here is an example:

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

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

    Here is an example:

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

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

    !

    Configurations Supported by GCC

    !

    Here are the possible CPU types:

    --- 151,158 ----

    !

    Configurations Supported by GCC

    !

    Here are the possible CPU types:

    diff -Nrcpad gcc-10.3.0/INSTALL/prerequisites.html gcc-10.4.0/INSTALL/prerequisites.html *** gcc-10.3.0/INSTALL/prerequisites.html Thu Apr 8 11:57:05 2021 --- gcc-10.4.0/INSTALL/prerequisites.html Tue Jun 28 08:55:11 2022 *************** *** 1,5 **** --- 1,8 ---- + + + - - - Prerequisites for GCC --- 22,27 ---- *************** You have freedom to copy and modify this *** 29,58 **** --- 29,52 ---- + + *************** ul.no-bullet {list-style: none} *** 79,94 **** !

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

    ! !

    Tools/packages necessary for building GCC

    !
    ISO C++98 compiler

    Necessary to bootstrap GCC, although versions of GCC prior to 4.8 also allow bootstrapping with a ISO C89 compiler and versions of GCC prior to 3.4 also allow bootstrapping with a traditional --- 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++98 compiler

    Necessary to bootstrap GCC, although versions of GCC prior to 4.8 also allow bootstrapping with a ISO C89 compiler and versions of GCC prior to 3.4 also allow bootstrapping with a traditional *************** bootstrapping the compiler with such ear *** 105,111 **** 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 --- 98,104 ---- 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 *** 122,128 **** ‘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). --- 115,121 ---- ‘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 *** 152,158 **** 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 --- 145,151 ---- 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 *** 171,210 **** 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. --- 164,203 ---- work when configuring GCC.

    !
    A POSIX or SVR4 awk

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

    !
    GNU binutils

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

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

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

    !
    GNU make version 3.80 (or later)

    You must have GNU make installed to build GCC.

    !
    GNU tar version 1.14 (or later)

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

    !
    Perl version between 5.6.1 and 5.6.24

    Necessary when targeting Darwin, building ‘libstdc++’, and not using --disable-symvers. *************** support libraries then using those packa *** 233,239 **** 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 --- 226,232 ---- 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 *** 245,251 **** 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 --- 238,244 ---- 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 *** 258,264 **** 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 --- 251,257 ---- 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 *** 271,277 **** 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/. --- 264,270 ---- 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 *** 282,288 **** 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. --- 275,281 ---- 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. --- 284,299 ----

    !

    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 *** 317,344 **** 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. --- 309,336 ---- 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. *** 349,355 **** Makefile.tpl and Makefile.def.

    !
    Flex version 2.5.4 (or later)

    Necessary when modifying *.l files.

    --- 341,347 ---- 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 *** 358,364 **** They are included in releases.

    !
    Texinfo version 4.7 (or later)

    Necessary for running makeinfo when modifying *.texi files to test your changes. --- 350,356 ---- 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 *** 372,403 **** 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. --- 364,395 ---- 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-10.3.0/INSTALL/specific.html gcc-10.4.0/INSTALL/specific.html *** gcc-10.3.0/INSTALL/specific.html Thu Apr 8 11:57:05 2021 --- gcc-10.4.0/INSTALL/specific.html Tue Jun 28 08:55:11 2022 *************** *** 1,5 **** --- 1,8 ---- + + + - - - Host/Target specific installation notes for GCC --- 22,27 ---- *************** You have freedom to copy and modify this *** 29,58 **** --- 29,52 ---- + + *************** ul.no-bullet {list-style: none} *** 86,96 **** ! ! ! ! !

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

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


    ! !

    aarch64*-*-*

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


    !

    aarch64*-*-*

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


    ! !

    alpha*-*-*

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


    ! !

    amd64-*-solaris2*

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


    ! !

    amdgcn-*-amdhsa

    AMD GCN GPU target.

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


    !

    alpha*-*-*

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


    !

    amd64-*-solaris2*

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


    !

    amdgcn-*-amdhsa

    AMD GCN GPU target.

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


    ! !

    arc-*-elf32

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


    ! !

    arc-linux-uclibc

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


    ! !

    arm-*-eabi

    ARM-family processors.

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


    !

    arc-*-elf32

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


    !

    arc-linux-uclibc

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


    !

    arm-*-eabi

    ARM-family processors.

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


    ! !

    avr

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


    !

    avr

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

The following error: !

!
Error: register required
  

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


! !

Blackfin

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

--- 276,289 ----

The following error: !

!
Error: register required
  

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


!

Blackfin

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

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


! !

CR16

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

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


!

CR16

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

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


! !

CRIS

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

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


!

CRIS

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

*************** for a list of CRIS-specific options. *** 331,341 ****

There are a few different CRIS targets:

!
cris-axis-elf

Mainly for monolithic embedded systems. Includes a multilib for the ‘v10’ core used in ‘ETRAX 100 LX’.

!
cris-axis-linux-gnu

A GNU/Linux port for the CRIS architecture, currently targeting ‘ETRAX 100 LX’ by default.

--- 314,324 ----

There are a few different CRIS targets:

!
cris-axis-elf

Mainly for monolithic embedded systems. Includes a multilib for the ‘v10’ core used in ‘ETRAX 100 LX’.

!
cris-axis-linux-gnu

A GNU/Linux port for the CRIS architecture, currently targeting ‘ETRAX 100 LX’ by default.

*************** information about this platform is avail *** 347,354 **** http://developer.axis.com/.


! !

DOS

Please have a look at the binaries page.

You cannot install GCC by itself on MSDOS; it will not compile under --- 330,336 ---- http://developer.axis.com/.


!

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 *** 357,370 **** 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. --- 339,350 ---- 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 *** 399,412 **** 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. --- 379,390 ---- 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 *** 417,424 **** 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 --- 395,401 ---- 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 *** 468,475 ****

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.

--- 445,451 ----

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 *** 479,486 **** 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.

--- 455,461 ---- 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< *** 583,597 **** 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.

--- 558,570 ---- 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 *** 600,607 **** 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 --- 573,579 ---- 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 *** 625,632 **** guarantee use of Solaris ld.


! !

ia64-*-linux

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

--- 597,603 ---- 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 *** 644,651 **** 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. --- 615,621 ---- 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 *** 658,665 ****


! !

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

--- 628,634 ----


!

*-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 *** 676,683 **** requires a larger data segment, which can be enabled through the LDR_CNTRL environment variable, e.g.,

!
!
% LDR_CNTRL=MAXDATA=0x50000000
  % export LDR_CNTRL
  
--- 645,652 ---- 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 *** 688,695 ****

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
  
--- 657,664 ----

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 ( *** 739,745 **** 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 --- 708,714 ---- 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 *** 753,772 ****

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 --- 722,741 ----

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’ --- 792,823 ---- 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 *** 880,901 ****

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 --- 843,861 ----

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 *** 935,947 **** use traps on systems that support them.


! !

moxie-*-elf

The moxie processor.


! !

msp430-*-elf*

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

--- 895,905 ---- 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 *** 960,977 ****
! !

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 --- 918,932 ----


!

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. *** 989,1015 **** --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, --- 944,966 ---- --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 *** 1023,1125 **** 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. --- 974,1058 ---- 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 *** 1134,1141 **** ‘libstdc++-v3’. We therefore recommend using the following initial sequence of commands

!
!
% CONFIG_SHELL=/bin/ksh
  % export CONFIG_SHELL
  
--- 1067,1074 ---- ‘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. *** 1192,1199 ****
! !

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. --- 1125,1131 ----


!

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 *** 1205,1212 **** 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 --- 1137,1143 ---- 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 *** 1226,1242 **** 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. --- 1157,1171 ---- 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 *** 1249,1295 **** 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. --- 1178,1217 ---- 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 *** 1322,1337 **** 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 --- 1244,1257 ---- 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 *** 1344,1351 **** 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 --- 1264,1270 ---- 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 *** 1360,1367 **** 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 --- 1279,1285 ---- 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 *** 1370,1388 **** 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 --- 1288,1303 ---- 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 *** 1397,1417 **** 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 --- 1312,1329 ---- 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.

--- 1337,1343 ----

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 *** 1440,1454 **** 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 --- 1351,1363 ---- 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 *** 1491,1498 **** 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 --- 1400,1406 ---- 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-10.3.0/INSTALL/test.html gcc-10.4.0/INSTALL/test.html *** gcc-10.3.0/INSTALL/test.html Thu Apr 8 11:57:05 2021 --- gcc-10.4.0/INSTALL/test.html Tue Jun 28 08:55:12 2022 *************** *** 1,5 **** --- 1,8 ---- + + + - - - Installing GCC: Testing --- 22,27 ---- *************** You have freedom to copy and modify this *** 29,58 **** --- 29,52 ---- + + *************** ul.no-bullet {list-style: none} *** 83,91 **** ! ! !

Before you install GCC, we encourage you to run the testsuites and to compare your results with results from a similar configuration that have --- 77,85 ---- ! ! !

Before you install GCC, we encourage you to run the testsuites and to compare your results with results from a similar configuration that have *************** installed are not in the PATH/usr/local):

!
!
TCL_LIBRARY = /usr/local/share/tcl8.0
  DEJAGNULIBS = /usr/local/share/dejagnu
  
--- 109,116 ---- environment variables appropriately, as in the following example (which assumes that DejaGnu has been installed under /usr/local):

!
!
TCL_LIBRARY = /usr/local/share/tcl8.0
  DEJAGNULIBS = /usr/local/share/dejagnu
  
*************** portability in the DejaGnu code.) *** 126,133 ****

Finally, you can run the testsuite (which may take a long time): !

!
cd objdir; make -k check
  

This will test various components of GCC, such as compiler --- 120,127 ----

Finally, you can run the testsuite (which may take a long time): !

!
cd objdir; make -k check
  

This will test various components of GCC, such as compiler *************** might emit some harmless messages resemb *** 139,145 ****

If you are testing a cross-compiler, you may want to run the testsuite on a simulator as described at http://gcc.gnu.org/simtest-howto.html.

!

How can you run the testsuite on selected tests?

In order to run sets of tests selectively, there are targets --- 133,139 ----

If you are testing a cross-compiler, you may want to run the testsuite on a simulator as described at http://gcc.gnu.org/simtest-howto.html.

!

How can you run the testsuite on selected tests?

In order to run sets of tests selectively, there are targets *************** just run ‘make check& *** 154,168 ****

A more selective way to just run all gcc execute tests in the testsuite is to use

!
!
make check-gcc RUNTESTFLAGS="execute.exp other-options"
  

Likewise, in order to run only the g++ “old-deja” tests in the testsuite with filenames matching ‘9805*’, you would use

!
!
make check-g++ RUNTESTFLAGS="old-deja.exp=9805* other-options"
  

The file-matching expression following filename.exp= is treated --- 148,162 ----

A more selective way to just run all gcc execute tests in the testsuite is to use

!
!
make check-gcc RUNTESTFLAGS="execute.exp other-options"
  

Likewise, in order to run only the g++ “old-deja” tests in the testsuite with filenames matching ‘9805*’, you would use

!
!
make check-g++ RUNTESTFLAGS="old-deja.exp=9805* other-options"
  

The file-matching expression following filename.exp= is treated *************** as a series of whitespace-delimited glob *** 170,177 **** may be passed, although any whitespace must either be escaped or surrounded by single quotes if multiple expressions are desired. For example,

!
!
make check-g++ RUNTESTFLAGS="old-deja.exp=9805*\ virtual2.c other-options"
  make check-g++ RUNTESTFLAGS="'old-deja.exp=9805* virtual2.c' other-options"
  
--- 164,171 ---- may be passed, although any whitespace must either be escaped or surrounded by single quotes if multiple expressions are desired. For example,

!
!
make check-g++ RUNTESTFLAGS="old-deja.exp=9805*\ virtual2.c other-options"
  make check-g++ RUNTESTFLAGS="'old-deja.exp=9805* virtual2.c' other-options"
  
*************** To get a list of the possible *.ex *** 182,188 **** output of ‘make check’ into a file and look at the ‘Running … .exp’ lines.

!

Passing options and running multiple testsuites

You can pass multiple options to the testsuite using the --- 176,183 ---- output of ‘make check’ into a file and look at the ‘Running … .exp’ lines.

!
!

Passing options and running multiple testsuites

You can pass multiple options to the testsuite using the *************** output of ‘make check *** 190,197 **** ‘RUNTESTFLAGS’, or directly to runtest if you prefer to work outside the makefiles. For example,

!
!
make check-g++ RUNTESTFLAGS="--target_board=unix/-O3/-fmerge-constants"
  

will run the standard g++ testsuites (“unix” is the target name --- 185,192 ---- ‘RUNTESTFLAGS’, or directly to runtest if you prefer to work outside the makefiles. For example,

!
!
make check-g++ RUNTESTFLAGS="--target_board=unix/-O3/-fmerge-constants"
  

will run the standard g++ testsuites (“unix” is the target name *************** slashes separate options. *** 202,217 ****

You can run the testsuites multiple times using combinations of options with a syntax similar to the brace expansion of popular shells:

!
!
…"--target_board=arm-sim\{-mhard-float,-msoft-float\}\{-O1,-O2,-O3,\}"
  

(Note the empty option caused by the trailing comma in the final group.) The following will run each testsuite eight times using the ‘arm-sim’ target, as if you had specified all possible combinations yourself:

!
!
--target_board='arm-sim/-mhard-float/-O1 \
                  arm-sim/-mhard-float/-O2 \
                  arm-sim/-mhard-float/-O3 \
                  arm-sim/-mhard-float \
--- 197,212 ----
  

You can run the testsuites multiple times using combinations of options with a syntax similar to the brace expansion of popular shells:

!
!
…"--target_board=arm-sim\{-mhard-float,-msoft-float\}\{-O1,-O2,-O3,\}"
  

(Note the empty option caused by the trailing comma in the final group.) The following will run each testsuite eight times using the ‘arm-sim’ target, as if you had specified all possible combinations yourself:

!
!
--target_board='arm-sim/-mhard-float/-O1 \
                  arm-sim/-mhard-float/-O2 \
                  arm-sim/-mhard-float/-O3 \
                  arm-sim/-mhard-float \
*************** target, as if you had specified all poss
*** 224,231 ****
  

They can be combined as many times as you wish, in arbitrary ways. This list:

!
!
…"--target_board=unix/-Wextra\{-O3,-fno-strength\}\{-fomit-frame,\}"
  

will generate four combinations, all involving ‘-Wextra’. --- 219,226 ----

They can be combined as many times as you wish, in arbitrary ways. This list:

!
!
…"--target_board=unix/-Wextra\{-O3,-fno-strength\}\{-fomit-frame,\}"
  

will generate four combinations, all involving ‘-Wextra’. *************** parallel by having the shell perform the *** 237,250 **** do the parallel runs. Instead of using ‘--target_board’, use a special makefile target:

!
!
make -jN check-testsuite//test-target/option1/option2/…
  

For example,

!
!
make -j3 check-gcc//sh-hms-sim/{-m1,-m2,-m3,-m3e,-m4}/{,-nofpu}
  

will run three concurrent “make-gcc” testsuites, eventually testing all --- 232,245 ---- do the parallel runs. Instead of using ‘--target_board’, use a special makefile target:

!
!
make -jN check-testsuite//test-target/option1/option2/…
  

For example,

!
!
make -j3 check-gcc//sh-hms-sim/{-m1,-m2,-m3,-m3e,-m4}/{,-nofpu}
  

will run three concurrent “make-gcc” testsuites, eventually testing all *************** supported in the gcc subdir *** 253,259 **** typing echo before the example given here.)

!

How to interpret test results

The result of running the testsuite are various *.sum and *.log --- 248,255 ---- typing echo before the example given here.)

!
!

How to interpret test results

The result of running the testsuite are various *.sum and *.log *************** over whether or not a test is expected t *** 278,291 **** be fixed in future releases.

!

Submitting test results

If you want to report the results to the GCC project, use the contrib/test_summary shell script. Start it in the objdir with

!
!
srcdir/contrib/test_summary -p your_commentary.txt \
      -m gcc-testresults@gcc.gnu.org |sh
  
--- 274,288 ---- be fixed in future releases.

!
!

Submitting test results

If you want to report the results to the GCC project, use the contrib/test_summary shell script. Start it in the objdir with

!
!
srcdir/contrib/test_summary -p your_commentary.txt \
      -m gcc-testresults@gcc.gnu.org |sh
  
*************** messages may be automatically processed. *** 306,312 **** !
--- 303,309 ---- !
diff -Nrcpad gcc-10.3.0/LAST_UPDATED gcc-10.4.0/LAST_UPDATED *** gcc-10.3.0/LAST_UPDATED Thu Apr 8 11:57:04 2021 --- gcc-10.4.0/LAST_UPDATED Tue Jun 28 08:55:10 2022 *************** *** 1 **** ! Obtained from git: releases/gcc-10.3.0 revision f00b5710a30f22efc3171c393e56aeb335c3cd39 --- 1 ---- ! Obtained from git: releases/gcc-10.4.0 revision 7ff47281ce4f3699185b06a3430968eac2a5b0c6 diff -Nrcpad gcc-10.3.0/MD5SUMS gcc-10.4.0/MD5SUMS *** gcc-10.3.0/MD5SUMS Thu Apr 8 12:11:19 2021 --- gcc-10.4.0/MD5SUMS Tue Jun 28 09:30:46 2022 *************** *** 1,5 **** # This file contains the MD5 checksums of the files in the ! # gcc-10.3.0.tar.xz tarball. # # Besides verifying that all files in the tarball were correctly expanded, # it also can be used to determine if any files have changed since the --- 1,5 ---- # This file contains the MD5 checksums of the files in the ! # gcc-10.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 *************** d0320fa024ec213600ee6dbf489abd65 .gitig *** 17,43 **** fe60d87048567d4fe8c8a0ed2448bcc8 COPYING.RUNTIME d32239bcb673463ab874e80d47fae504 COPYING3 6a6a8e020838b23406c81b19c1d46df6 COPYING3.LIB ! 83cd4c3ebd086ded157891cd3c41952b ChangeLog fd4ecdf5d672efe2b0e409aca9cf9446 ChangeLog.jit 09538b708302f1735f6fa05b622ecf5e ChangeLog.tree-ssa 24ab760126489e69436a43185dc3d202 INSTALL/README ! e1c93ceda3bbe87922603d635c313b8f INSTALL/binaries.html ! bc73295b6d9e4f3d9b92938ec40eb31d INSTALL/build.html ! cc1de21b2cf587ec1b56a54c82b3c348 INSTALL/configure.html ! d9fd48c7e3572c71d29718a822559709 INSTALL/download.html ! cadabbcbc80839856a250fb9718edd4a INSTALL/finalinstall.html ! e9fe891b162f4aa1b9dd2f6d32b041b5 INSTALL/gfdl.html ! 79e8d9191ad9b199665b9926001d2395 INSTALL/index.html ! 63764c6d871b587581a99d935f33bf5a INSTALL/old.html ! 9a15ddbf1b6937ce25f38e1ff5e1b54c INSTALL/prerequisites.html ! b837a1e2fb39ecd453886d9ca05a2786 INSTALL/specific.html ! aa64c5e8c1a4235d4d6ff2b96321a4a1 INSTALL/test.html ! 68d0b99e3d82626a8caec4d7d6f87639 LAST_UPDATED 4ccaac378eb9cf3fbfcf750473e826bf MAINTAINERS ! a17604d493359c825eafd4af94730246 Makefile.def ! ff6d1260e969bb733093c18248246493 Makefile.in ! a9cb179e6102a6074986bbfc9b6bf96a Makefile.tpl ! 1ca86c624299eb3b9a314e20d3fadb1c NEWS 80d26bc3b1ad4f6969a96a24c9181bf5 README a657821f65bab77f4fbf3a75cdee6da9 ar-lib 500b9244caa7a7ab23ece1db37efa76d compile --- 17,43 ---- fe60d87048567d4fe8c8a0ed2448bcc8 COPYING.RUNTIME d32239bcb673463ab874e80d47fae504 COPYING3 6a6a8e020838b23406c81b19c1d46df6 COPYING3.LIB ! 6e7d6bcd61dea315e12af0b56eaf1bea ChangeLog fd4ecdf5d672efe2b0e409aca9cf9446 ChangeLog.jit 09538b708302f1735f6fa05b622ecf5e ChangeLog.tree-ssa 24ab760126489e69436a43185dc3d202 INSTALL/README ! 1c06be8540b85795303faa5186490767 INSTALL/binaries.html ! c3c421e1c73564e683d1912d09178242 INSTALL/build.html ! ed9ba39fdc63a2c6092487b0ecdb5f78 INSTALL/configure.html ! 71b5494f672ef1888930edbb71defbd9 INSTALL/download.html ! c330cfa3e24009efc60c76ccc852dbaa INSTALL/finalinstall.html ! 5786c31173880a7a14d83c2d3469623f INSTALL/gfdl.html ! f3c79bc16b7f61da06b42ab5d45d9925 INSTALL/index.html ! 45da48552d767144c7c59ff8cf78163b INSTALL/old.html ! e30701af4d51f69b6bb1c2eb4b70711e INSTALL/prerequisites.html ! e3f671ef58c9848f53e7ae123906a98c INSTALL/specific.html ! 85740f94bacd79a7e69e888dce5753de INSTALL/test.html ! d81345babf6e5cf3fa2115c5e7d28be5 LAST_UPDATED 4ccaac378eb9cf3fbfcf750473e826bf MAINTAINERS ! cb5edf936597133b680860a5356159ae Makefile.def ! 27d6ec707037e5745ef2223c4a3f9360 Makefile.in ! bd1b01226d5dc4857f2b8305a5af47b3 Makefile.tpl ! 87b17f3b6a94ff1d4ecfd1450bcfa7c0 NEWS 80d26bc3b1ad4f6969a96a24c9181bf5 README a657821f65bab77f4fbf3a75cdee6da9 ar-lib 500b9244caa7a7ab23ece1db37efa76d compile *************** a657821f65bab77f4fbf3a75cdee6da9 ar-lib *** 45,51 **** b3c47a769a12794661355d3a5dcfeb3d config.guess 040359150cf11493f973a46d8a25b06b config.rpath 8172cd8087c91ceb16a61a62c9d71ff1 config.sub ! fc128a0e0bd42c97d9eff3690c7073ab config/ChangeLog 0fcd4badfe2a2191778bdf5ab94aa40c config/acinclude.m4 2ea0edfde0ce5ce69b49317a5650f048 config/acx.m4 6b030f5cf640bdd401ea739f54a667f8 config/asmcfi.m4 --- 45,51 ---- b3c47a769a12794661355d3a5dcfeb3d config.guess 040359150cf11493f973a46d8a25b06b config.rpath 8172cd8087c91ceb16a61a62c9d71ff1 config.sub ! ff300defbb21c05e66db2573ed302d6c config/ChangeLog 0fcd4badfe2a2191778bdf5ab94aa40c config/acinclude.m4 2ea0edfde0ce5ce69b49317a5650f048 config/acx.m4 6b030f5cf640bdd401ea739f54a667f8 config/asmcfi.m4 *************** b75e527c5a9b8dcbcfb1ac321fa244eb config *** 102,110 **** ad4ae2c604a57f5e6f53c9edc33ea1f1 config/math.m4 e10d31316e03a59577fb4ed90a670914 config/mh-alpha-linux 3fe4a576c2a75736c8da3af1d0824217 config/mh-cygwin ! 507b102116e2550175bb7f42ee3c2958 config/mh-darwin 625bacc09b9992290d94831bd7506bd0 config/mh-djgpp ! a8801f3e491168787fe2624d07ad1b08 config/mh-mingw cd7034dccd04e50150b14c597dd545a5 config/mh-pa 48d5107b991a0cdbe7eb7022b0dfecb2 config/mh-pa-hpux10 76d638a67d840715b2de89afee8ef49a config/mh-ppc-aix --- 102,110 ---- ad4ae2c604a57f5e6f53c9edc33ea1f1 config/math.m4 e10d31316e03a59577fb4ed90a670914 config/mh-alpha-linux 3fe4a576c2a75736c8da3af1d0824217 config/mh-cygwin ! 12e3e525300d7b265337e9f2dfe0e2af config/mh-darwin 625bacc09b9992290d94831bd7506bd0 config/mh-djgpp ! 8fe20cd58711408e779e723c7e4981ad config/mh-mingw cd7034dccd04e50150b14c597dd545a5 config/mh-pa 48d5107b991a0cdbe7eb7022b0dfecb2 config/mh-pa-hpux10 76d638a67d840715b2de89afee8ef49a config/mh-ppc-aix *************** e2dc6b4fd62b77bff96b7951ef74f78f config *** 142,150 **** 5cabffc02a90bd9698105b9eef507f11 config/warnings.m4 7ef51b0adb98e5c5f7aba46d2c7293f1 config/weakref.m4 0163b672c888aaf1c8ad3e867a0ec9f1 config/zlib.m4 ! 8ce8dd8306a7c2203ccc55583632164b configure ! e5497795d84f5807263190ac9143f20e configure.ac ! 098af74e20d177a96825ea683e7eb1b1 contrib/ChangeLog 5fc435c7928f858246df931ea3f3ece7 contrib/ChangeLog.jit 7af8d2979bf1a7cfa88e30d05fa22be2 contrib/ChangeLog.tree-ssa 8498c0cdfe3f444ad6f540ec9e11cbec contrib/analyze_brprob.py --- 142,150 ---- 5cabffc02a90bd9698105b9eef507f11 config/warnings.m4 7ef51b0adb98e5c5f7aba46d2c7293f1 config/weakref.m4 0163b672c888aaf1c8ad3e867a0ec9f1 config/zlib.m4 ! c009c02627e52f6da0c8e85d79a04f79 configure ! 6503b83e283382eb3d11c0fbe430c34d configure.ac ! 87122df5eb58027c04140aeebf9d7cc2 contrib/ChangeLog 5fc435c7928f858246df931ea3f3ece7 contrib/ChangeLog.jit 7af8d2979bf1a7cfa88e30d05fa22be2 contrib/ChangeLog.tree-ssa 8498c0cdfe3f444ad6f540ec9e11cbec contrib/analyze_brprob.py *************** b2981d3447dc8ffa5f08bc99277ae76c contri *** 169,188 **** defd641fcdf03f433c3ad5d4b2520e36 contrib/dg-extract-results.py 599fa78ff6918c41e353990adf0a1ba4 contrib/dg-extract-results.sh 87ae17b353cdce921324af084ec6dcb1 contrib/dglib.pm ! 6bc745dc0e59a4d03ee2af1bc6b1ccd0 contrib/download_prerequisites 6ee58d643622b5ecb4d58d77f0fd59e2 contrib/filter-clang-warnings.py 080dea8d6b4a4c8c6bf8ae7b8ecf15a6 contrib/filter_gcc_for_doxygen db03e57377f9eb202b7b783eb81fe40d contrib/filter_knr2ansi.pl b038940be99369232106ef9e9b15bee3 contrib/filter_params.py ! a2a8948ffa0e5231c294fb58c7065d22 contrib/gcc-changelog/git_check_commit.py ! e0e02c08ef3163808001729c55e31cce contrib/gcc-changelog/git_commit.py ! f1c2869965856588072c30efa7aa6507 contrib/gcc-changelog/git_email.py ! 32a7878b9e18224582fe20763a137b10 contrib/gcc-changelog/git_repository.py ! d5ed7f3c23e35788430e4897690dc80c contrib/gcc-changelog/git_update_version.py ! 8156baea830d2b7e3dc7580f3a45952b contrib/gcc-changelog/setup.cfg ! 3717d83e0863f54a647d5538b1f96760 contrib/gcc-changelog/test_email.py ! 272efc2bdebd11d7a689ad13bd8ce304 contrib/gcc-changelog/test_patches.txt ! b3ff47ac72204a11fc255ab031774557 contrib/gcc-git-customization.sh dfceb883caf21f3071f7309ee0ac8a6b contrib/gcc.doxy 55236e85d8087042189b701cd05d84be contrib/gcc_build cecb3852a568945e2a82691f772f2d47 contrib/gcc_update --- 169,188 ---- defd641fcdf03f433c3ad5d4b2520e36 contrib/dg-extract-results.py 599fa78ff6918c41e353990adf0a1ba4 contrib/dg-extract-results.sh 87ae17b353cdce921324af084ec6dcb1 contrib/dglib.pm ! a42f879fdbecf0f66d193cfc5180b1fe contrib/download_prerequisites 6ee58d643622b5ecb4d58d77f0fd59e2 contrib/filter-clang-warnings.py 080dea8d6b4a4c8c6bf8ae7b8ecf15a6 contrib/filter_gcc_for_doxygen db03e57377f9eb202b7b783eb81fe40d contrib/filter_knr2ansi.pl b038940be99369232106ef9e9b15bee3 contrib/filter_params.py ! 65b703f51d9d7a7a56a649493e3c01b9 contrib/gcc-changelog/git_check_commit.py ! 2d072240bf6de5330608921ceb48bf43 contrib/gcc-changelog/git_commit.py ! 722c96f24ea159413d6e28c6b91a7a23 contrib/gcc-changelog/git_email.py ! a9d06dee58845e59874c5f7fc58e2824 contrib/gcc-changelog/git_repository.py ! b83d69417c5c5d4f873dd999bef094e1 contrib/gcc-changelog/git_update_version.py ! 1fcc4f18e9f9043eaea6c3c990d96d9b contrib/gcc-changelog/setup.cfg ! 7226a8eee0694eb4b73201404f06a8c2 contrib/gcc-changelog/test_email.py ! 0dce8095b39e54d03c1207f021756933 contrib/gcc-changelog/test_patches.txt ! afffb72bfd599fda78278a8c0dccfc16 contrib/gcc-git-customization.sh dfceb883caf21f3071f7309ee0ac8a6b contrib/gcc.doxy 55236e85d8087042189b701cd05d84be contrib/gcc_build cecb3852a568945e2a82691f772f2d47 contrib/gcc_update *************** cecb3852a568945e2a82691f772f2d47 contri *** 190,199 **** 379516c6635d267f661c36248d59ccef contrib/gennews 25491ab6a5a68d252f311f5a9c6f4c8f contrib/git-add-user-branch.sh 7e5729822d673e846d5ef26e1f1b8591 contrib/git-add-vendor-branch.sh ! a05c06173f9b6217a753767a1e28481c contrib/git-backport.py 6277756eb398a594323d2d2b52962046 contrib/git-fetch-vendor.sh 59304fc08afa489baa6b920cc76dc625 contrib/gthr_supp_vxw_5x.c ! d5c31d88f8fffe020984789a6e963635 contrib/header-tools/ChangeLog 4f7d3bf5dd67c6b144a7a1ea0bb4127b contrib/header-tools/README 05ef7fb87e90ba93ee04659be072a357 contrib/header-tools/count-headers ba0485a3c721bce9e32407ef996d2a9d contrib/header-tools/gcc-order-headers --- 190,203 ---- 379516c6635d267f661c36248d59ccef contrib/gennews 25491ab6a5a68d252f311f5a9c6f4c8f contrib/git-add-user-branch.sh 7e5729822d673e846d5ef26e1f1b8591 contrib/git-add-vendor-branch.sh ! db81d221a5a18e48788ee8984d453248 contrib/git-backport.py ! e9bac7c82bdb5f92b354d9da854d463b contrib/git-commit-mklog.py ! 6400831de9622ded00d0c379a99db5a4 contrib/git-descr.sh 6277756eb398a594323d2d2b52962046 contrib/git-fetch-vendor.sh + e462c83bdf45bf6e9b434d18fa9f66e4 contrib/git-fix-changelog.py + 6996a054c7e7aaf9f27737c3d6f2518c contrib/git-undescr.sh 59304fc08afa489baa6b920cc76dc625 contrib/gthr_supp_vxw_5x.c ! c7f6fe6c2886edd657b64d6ee05262b7 contrib/header-tools/ChangeLog 4f7d3bf5dd67c6b144a7a1ea0bb4127b contrib/header-tools/README 05ef7fb87e90ba93ee04659be072a357 contrib/header-tools/count-headers ba0485a3c721bce9e32407ef996d2a9d contrib/header-tools/gcc-order-headers *************** a7318fa2f0580c3a0d5dd4b14e4d0e0d contri *** 212,223 **** bd49fb9eed9f0a5344158e834dd6f468 contrib/mark_spam.py 60407a5923bc8a58a2d9b937c3f2cea8 contrib/mklog fc4965b52fd7de27941bf5183aa1ece9 contrib/mklog.pl 0fb5c8c3cd465d8bd57b55b2548c683a contrib/paranoia.cc a34668cfad9dec733354503fbc67fb24 contrib/patch_tester.sh 87a19b40fbd220938cf6c23c42c255e2 contrib/prepare_patch.sh ! a6f2829359f65be5c182fd414e30fe8a contrib/prerequisites.md5 ! 663d159a25cdcd62d1182f124f0dae82 contrib/prerequisites.sha512 ! 67465407d5c91e3cfcbe29393c1a5060 contrib/reghunt/ChangeLog cf247a580e49d212518de409793db0a8 contrib/reghunt/bin/gcc-build-full 724e70ea3e80f87f2a201bbe2f1eef37 contrib/reghunt/bin/gcc-build-simple 3f2318bae7562a4ad1639e686916a545 contrib/reghunt/bin/gcc-cleanup --- 216,228 ---- bd49fb9eed9f0a5344158e834dd6f468 contrib/mark_spam.py 60407a5923bc8a58a2d9b937c3f2cea8 contrib/mklog fc4965b52fd7de27941bf5183aa1ece9 contrib/mklog.pl + 81f9fb8a95f10dbb07425dfd3fd50782 contrib/mklog.py 0fb5c8c3cd465d8bd57b55b2548c683a contrib/paranoia.cc a34668cfad9dec733354503fbc67fb24 contrib/patch_tester.sh 87a19b40fbd220938cf6c23c42c255e2 contrib/prepare_patch.sh ! 6bc8415291f74dbbb7994622ca9a7b28 contrib/prerequisites.md5 ! 2a7fbcbf9b708ecbd31408646f9dd122 contrib/prerequisites.sha512 ! 7a3164f3afed40fdc6289071ec5aca65 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 *** 276,282 **** e2829fc4af4f433a6a328a62d5ce8066 contrib/reghunt/examples/reg-watch afd863c2ec84c906e20f9b9787b1f0fe contrib/reghunt/examples/reg-watch.awk 8955535523d4b5f48006bcb851ba9b4b contrib/reghunt/examples/testall ! 1589d4ffb5a00cf0f78dcbac928bba10 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 --- 281,287 ---- e2829fc4af4f433a6a328a62d5ce8066 contrib/reghunt/examples/reg-watch afd863c2ec84c906e20f9b9787b1f0fe contrib/reghunt/examples/reg-watch.awk 8955535523d4b5f48006bcb851ba9b4b contrib/reghunt/examples/testall ! 2edae0119f89aea8085486504b8914cd 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 *************** fb1ff65a78c592489a09d18e42238a68 contri *** 291,296 **** --- 296,302 ---- dc562ddb86567c65e82953825713dc4b contrib/regression/site.exp 7f6418948396f8250447e3e6182322d8 contrib/repro_fail 39442479834f1c02d6ce11eab6889b6e contrib/test_installed + 9cc97e47ccced46f47870847040e0d41 contrib/test_mklog.py 2c2a06a23394c548bb4afba3c25aacce contrib/test_recheck c650e776de65a2de80bbfb0033641805 contrib/test_summary 45bd745cf293127fa6b729c7b58cf11f contrib/testsuite-management/validate_failures.py *************** a0d12be401961a2557883b7c09dc71eb contri *** 315,321 **** b99476ca28b484080c3ec5916a9ca3f9 contrib/vimrc da7aeedeb5a86ee6f5982e559a2d6dcc contrib/warn_summary 8b59f0d0a2dcdced14765c514fbad719 depcomp ! 08fc830135f3010c5228f15c70980d25 fixincludes/ChangeLog 6de190723745dc3f75080144dfa2215e fixincludes/Makefile.in b6e3f4950abc6e254b467063381f6473 fixincludes/README 455903ad4ff71fa5c5340ef7ae41a0e6 fixincludes/README-fixinc --- 321,327 ---- b99476ca28b484080c3ec5916a9ca3f9 contrib/vimrc da7aeedeb5a86ee6f5982e559a2d6dcc contrib/warn_summary 8b59f0d0a2dcdced14765c514fbad719 depcomp ! be878b66d84566f7311647d0ae4cfec9 fixincludes/ChangeLog 6de190723745dc3f75080144dfa2215e fixincludes/Makefile.in b6e3f4950abc6e254b467063381f6473 fixincludes/README 455903ad4ff71fa5c5340ef7ae41a0e6 fixincludes/README-fixinc *************** a5e817d35ded04a0fb03999b50c0e89e fixinc *** 455,466 **** 955462b555900ecd3934223c64e21fa7 fixincludes/tests/base/types/vxTypesBase.h 8baab8698bb83c6b90ef4091c00ddc1e fixincludes/tests/base/unistd.h 1ce72cc651f747fb639548ef7ebd9343 gcc/ABOUT-GCC-NLS ! d804e59502b5b91d4bec5cdb2539efa0 gcc/BASE-VER 59530bdf33659b29e73d4adb9f9f6552 gcc/COPYING a916467b91076e631dd8edb7424769c7 gcc/COPYING.LIB d32239bcb673463ab874e80d47fae504 gcc/COPYING3 6a6a8e020838b23406c81b19c1d46df6 gcc/COPYING3.LIB ! b3c988df0a13212878d07519d05e7c3e gcc/ChangeLog a3b63c675afa7a655cc2bfa8a907af79 gcc/ChangeLog-1997 d9a88529352a010253c2e8fb1ed6023b gcc/ChangeLog-1998 240f08f81cb4699e8b49347db38233db gcc/ChangeLog-1999 --- 461,472 ---- 955462b555900ecd3934223c64e21fa7 fixincludes/tests/base/types/vxTypesBase.h 8baab8698bb83c6b90ef4091c00ddc1e fixincludes/tests/base/unistd.h 1ce72cc651f747fb639548ef7ebd9343 gcc/ABOUT-GCC-NLS ! 959d4d8d0d62b27e19b225036300d43d gcc/BASE-VER 59530bdf33659b29e73d4adb9f9f6552 gcc/COPYING a916467b91076e631dd8edb7424769c7 gcc/COPYING.LIB d32239bcb673463ab874e80d47fae504 gcc/COPYING3 6a6a8e020838b23406c81b19c1d46df6 gcc/COPYING3.LIB ! 17166c1f8c276093a40eedac8d6d75e0 gcc/ChangeLog a3b63c675afa7a655cc2bfa8a907af79 gcc/ChangeLog-1997 d9a88529352a010253c2e8fb1ed6023b gcc/ChangeLog-1998 240f08f81cb4699e8b49347db38233db gcc/ChangeLog-1999 *************** fb3fadb88e1d2b3b640cfaaa5ff11780 gcc/Ch *** 492,509 **** 3eb07e0b2e542409bf73d359f7f65609 gcc/ChangeLog.ptr e13638e26743ba41e6011b76cc00d9a9 gcc/ChangeLog.tree-ssa 739ab47f6425bcea1d05e4fc0542de54 gcc/ChangeLog.tuples ! 5f1bdaf742d8ed926614ad46224a3a84 gcc/DATESTAMP d41d8cd98f00b204e9800998ecf8427e gcc/DEV-PHASE eb92e1ff5e982ca07e173e0eb286d243 gcc/FSFChangeLog 30e1e33411566388b3164558482dc5e6 gcc/FSFChangeLog.10 36698274bb69e2ada20f5cc434f3caa5 gcc/FSFChangeLog.11 c33c506f2d95a3607de3aa55eaa5eb38 gcc/LANGUAGES ! 91d59f7a5aa63491cbbc5357b7b2ab43 gcc/Makefile.in ec6799501b2eb2923d5de6a66169dbd2 gcc/ONEWS b23b4202aae37888126f4e47d40b8fe9 gcc/README.Portability 44bcc4f9a8803d3dcc72b217421afef0 gcc/acinclude.m4 6879fc308101ea4a52d17fb89e463ec2 gcc/aclocal.m4 ! 8e4765971c728343f908e8ecc37cba80 gcc/ada/ChangeLog 683be0b07dc4f64f118fd5e8ae9cb30d gcc/ada/ChangeLog-2001 7aff25efb203be4136b8776cdc812956 gcc/ada/ChangeLog-2002 cd2379152000f40157d349018fb9364d gcc/ada/ChangeLog-2003 --- 498,515 ---- 3eb07e0b2e542409bf73d359f7f65609 gcc/ChangeLog.ptr e13638e26743ba41e6011b76cc00d9a9 gcc/ChangeLog.tree-ssa 739ab47f6425bcea1d05e4fc0542de54 gcc/ChangeLog.tuples ! 769f536015269fbdf03c8015200f7fe6 gcc/DATESTAMP d41d8cd98f00b204e9800998ecf8427e gcc/DEV-PHASE eb92e1ff5e982ca07e173e0eb286d243 gcc/FSFChangeLog 30e1e33411566388b3164558482dc5e6 gcc/FSFChangeLog.10 36698274bb69e2ada20f5cc434f3caa5 gcc/FSFChangeLog.11 c33c506f2d95a3607de3aa55eaa5eb38 gcc/LANGUAGES ! 365223403361093e36494fce430db6a3 gcc/Makefile.in ec6799501b2eb2923d5de6a66169dbd2 gcc/ONEWS b23b4202aae37888126f4e47d40b8fe9 gcc/README.Portability 44bcc4f9a8803d3dcc72b217421afef0 gcc/acinclude.m4 6879fc308101ea4a52d17fb89e463ec2 gcc/aclocal.m4 ! cec47ed31dbe78ce8e7ccdae94fc0621 gcc/ada/ChangeLog 683be0b07dc4f64f118fd5e8ae9cb30d gcc/ada/ChangeLog-2001 7aff25efb203be4136b8776cdc812956 gcc/ada/ChangeLog-2002 cd2379152000f40157d349018fb9364d gcc/ada/ChangeLog-2003 *************** e886b111487071a30a52edb616ff7844 gcc/ad *** 527,533 **** 2cf41efa2dee24b2dda73018b855edd3 gcc/ada/ChangeLog.tree-ssa a2eeb36cd2de35ce6a808c67a61edb7e gcc/ada/Make-generated.in 6c9c3b4249e781ed48c7ae55e8ef9999 gcc/ada/Makefile.in ! aa6bb6a8dd525028b440e90ebc6e44dd gcc/ada/Makefile.rtl c637ca4a2cfb622775cc0a3d4dda2d79 gcc/ada/ada_get_targ.adb 7158476d6ec9f1793d5a4e9424816307 gcc/ada/adabkend.adb 1aac6e8e4b3ba0e7abd9f7bbe98d4923 gcc/ada/adabkend.ads --- 533,539 ---- 2cf41efa2dee24b2dda73018b855edd3 gcc/ada/ChangeLog.tree-ssa a2eeb36cd2de35ce6a808c67a61edb7e gcc/ada/Make-generated.in 6c9c3b4249e781ed48c7ae55e8ef9999 gcc/ada/Makefile.in ! b2f3a3fee7de11832c6c38c4405a318c gcc/ada/Makefile.rtl c637ca4a2cfb622775cc0a3d4dda2d79 gcc/ada/ada_get_targ.adb 7158476d6ec9f1793d5a4e9424816307 gcc/ada/adabkend.adb 1aac6e8e4b3ba0e7abd9f7bbe98d4923 gcc/ada/adabkend.ads *************** b63b26f9f195b10007d4d0348382a447 gcc/ad *** 738,749 **** 2908ab49ce5308abc2c54cd072a4631a gcc/ada/fname-uf.ads b741ad98e35e6ebcae2a1d4be9320160 gcc/ada/fname.adb a312f72cf2c70dd6fb07d318a099caf1 gcc/ada/fname.ads ! e574ef8f31475a31d6186709a9e42c1d gcc/ada/freeze.adb 75ad6a0453e571033f6a2dff81b55e76 gcc/ada/freeze.ads 4b3829c4b969a13dd716469dda97a5f1 gcc/ada/frontend.adb 4f8754489f52ee675d1f27ee3708f304 gcc/ada/frontend.ads aab467e078d5bd6779cae53ae14e7261 gcc/ada/gcc-interface/Make-lang.in ! 93aec6c6c66dbc9c3a76d8edce78868f 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 --- 744,755 ---- 2908ab49ce5308abc2c54cd072a4631a gcc/ada/fname-uf.ads b741ad98e35e6ebcae2a1d4be9320160 gcc/ada/fname.adb a312f72cf2c70dd6fb07d318a099caf1 gcc/ada/fname.ads ! 6f6169b5f29bc43ae3a776c5082fd26c gcc/ada/freeze.adb 75ad6a0453e571033f6a2dff81b55e76 gcc/ada/freeze.ads 4b3829c4b969a13dd716469dda97a5f1 gcc/ada/frontend.adb 4f8754489f52ee675d1f27ee3708f304 gcc/ada/frontend.ads aab467e078d5bd6779cae53ae14e7261 gcc/ada/gcc-interface/Make-lang.in ! c2c94df3820530f78c56cbd0adbc50c1 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 *************** f7677c298cb2f4c70ecf284c7e18cb80 gcc/ad *** 751,765 **** 51c95420b5900990141d2e5705582197 gcc/ada/gcc-interface/ada.h 2962facaf5b9ac376e7335599112a520 gcc/ada/gcc-interface/config-lang.in 786d39e3fbc38a2dc96917857f9a69ef gcc/ada/gcc-interface/cuintp.c ! c97691e82d69a68d51d2d12c8e181900 gcc/ada/gcc-interface/decl.c c413d4d50e9563859f4d751a4404b705 gcc/ada/gcc-interface/gadaint.h d4f780daf2cc65cb4f10a61557048e73 gcc/ada/gcc-interface/gigi.h 145be77c79143445142d7570f0853077 gcc/ada/gcc-interface/lang-specs.h 58982dff402d599e00b3a7b2af4369b3 gcc/ada/gcc-interface/lang.opt ! 2951f2ed25b3f3e082b18080466e3451 gcc/ada/gcc-interface/misc.c 56f626f9ee32eba8c2d478af39425ad5 gcc/ada/gcc-interface/targtyps.c ! 26715071d3d94deffb0a7af14e7ec9c3 gcc/ada/gcc-interface/trans.c ! d3fd943930e7f6508d56b88ca3e55e70 gcc/ada/gcc-interface/utils.c 0e98c3f541bd20833a44c42d83ab1cc7 gcc/ada/gcc-interface/utils2.c 470e4bdb03236e817253a6279b1c132a gcc/ada/get_scos.adb a4ff0a5a6a4e8da7ac489be6d5b23b00 gcc/ada/get_scos.ads --- 757,771 ---- 51c95420b5900990141d2e5705582197 gcc/ada/gcc-interface/ada.h 2962facaf5b9ac376e7335599112a520 gcc/ada/gcc-interface/config-lang.in 786d39e3fbc38a2dc96917857f9a69ef gcc/ada/gcc-interface/cuintp.c ! 432a7bab330256558cda6f5dd59cf8b4 gcc/ada/gcc-interface/decl.c c413d4d50e9563859f4d751a4404b705 gcc/ada/gcc-interface/gadaint.h d4f780daf2cc65cb4f10a61557048e73 gcc/ada/gcc-interface/gigi.h 145be77c79143445142d7570f0853077 gcc/ada/gcc-interface/lang-specs.h 58982dff402d599e00b3a7b2af4369b3 gcc/ada/gcc-interface/lang.opt ! 90746cfd3e148d7a8b290a188db0454d gcc/ada/gcc-interface/misc.c 56f626f9ee32eba8c2d478af39425ad5 gcc/ada/gcc-interface/targtyps.c ! 678a7820fa672c5b15aab20a650860f7 gcc/ada/gcc-interface/trans.c ! 11200fdccd8840ab48b31262780847b9 gcc/ada/gcc-interface/utils.c 0e98c3f541bd20833a44c42d83ab1cc7 gcc/ada/gcc-interface/utils2.c 470e4bdb03236e817253a6279b1c132a gcc/ada/get_scos.adb a4ff0a5a6a4e8da7ac489be6d5b23b00 gcc/ada/get_scos.ads *************** e1ca9ed16396d47d0eff95d527cd8e18 gcc/ad *** 1728,1735 **** 91d676c4dc6498442bd8d7565bf39cc5 gcc/ada/libgnat/g-sehash.ads 1624078f3925d91971a098d53f86b317 gcc/ada/libgnat/g-sercom.adb 4f55a5239115ec59e8d5647145d7d093 gcc/ada/libgnat/g-sercom.ads ! dd762352a8785136bd3fb44668df506c gcc/ada/libgnat/g-sercom__linux.adb ! a00e2d3d866e6dc8e886f4513c22b033 gcc/ada/libgnat/g-sercom__mingw.adb d96c038d21169740785943b4edb14ab2 gcc/ada/libgnat/g-sestin.ads 8d108a1a55e0a35d3eb2af622168baf1 gcc/ada/libgnat/g-sets.adb cc5fe4fab8c77f2b72c9b5b568eab1da gcc/ada/libgnat/g-sets.ads --- 1734,1741 ---- 91d676c4dc6498442bd8d7565bf39cc5 gcc/ada/libgnat/g-sehash.ads 1624078f3925d91971a098d53f86b317 gcc/ada/libgnat/g-sercom.adb 4f55a5239115ec59e8d5647145d7d093 gcc/ada/libgnat/g-sercom.ads ! aae0fc1e45d6f4dd1a1faa8fe062dccd gcc/ada/libgnat/g-sercom__linux.adb ! 986c86d54c3526e23ce20151c5792b20 gcc/ada/libgnat/g-sercom__mingw.adb d96c038d21169740785943b4edb14ab2 gcc/ada/libgnat/g-sestin.ads 8d108a1a55e0a35d3eb2af622168baf1 gcc/ada/libgnat/g-sets.adb cc5fe4fab8c77f2b72c9b5b568eab1da gcc/ada/libgnat/g-sets.ads *************** bf97b7f8e6545014e1b279ad0d620c83 gcc/ad *** 2694,2700 **** 08e25cef2848d0514379987946b6ca3a gcc/align.h c7cfb5850156fc8afe634563752d95a3 gcc/alloc-pool.c ee7f0ff2bee3fadcdee7a89a27acb71b gcc/alloc-pool.h ! 65245dc4bdd2968de38d06dda54d7719 gcc/analyzer/ChangeLog 77136ce027aa1a848c103c22012f4981 gcc/analyzer/analysis-plan.cc 1584264752cd434a0710f577b0dfa611 gcc/analyzer/analysis-plan.h 3a2b0d98433a870a9557dfdce96f66a9 gcc/analyzer/analyzer-logging.cc --- 2700,2706 ---- 08e25cef2848d0514379987946b6ca3a gcc/align.h c7cfb5850156fc8afe634563752d95a3 gcc/alloc-pool.c ee7f0ff2bee3fadcdee7a89a27acb71b gcc/alloc-pool.h ! fd6fa16abdfb5ce97cc21cc642d83357 gcc/analyzer/ChangeLog 77136ce027aa1a848c103c22012f4981 gcc/analyzer/analysis-plan.cc 1584264752cd434a0710f577b0dfa611 gcc/analyzer/analysis-plan.h 3a2b0d98433a870a9557dfdce96f66a9 gcc/analyzer/analyzer-logging.cc *************** d8c9aff92756dfb6bea625ad3991c6f4 gcc/an *** 2743,2749 **** 7fb862b48294ed6a0179f1e37e83e379 gcc/analyzer/supergraph.cc ae73cd9f21809df4536e52b1d362b94e gcc/analyzer/supergraph.h d311c2d7a0c5f301689d9840cec0a20a gcc/array-traits.h ! 1f43f4cc8bac41ae3b316adce2259e1c gcc/asan.c a2de801369a7f06644ece2df336529f1 gcc/asan.h 3c3a488f40039a38b62b0caa467387ae gcc/attribs.c f2cd647934c49497538483a30bc682d0 gcc/attribs.h --- 2749,2755 ---- 7fb862b48294ed6a0179f1e37e83e379 gcc/analyzer/supergraph.cc ae73cd9f21809df4536e52b1d362b94e gcc/analyzer/supergraph.h d311c2d7a0c5f301689d9840cec0a20a gcc/array-traits.h ! 855ead6b447cf993204b6628d0513f9f gcc/asan.c a2de801369a7f06644ece2df336529f1 gcc/asan.h 3c3a488f40039a38b62b0caa467387ae gcc/attribs.c f2cd647934c49497538483a30bc682d0 gcc/attribs.h *************** cf933c0e81e09ddcb384623eb6340d83 gcc/bb *** 2757,2763 **** f7b5eb17081fd36741c37e2fbae07255 gcc/bitmap.c 18c3da3fab8c769aed98aa69a2c72082 gcc/bitmap.h aa400898daf96dc45fdd63ffc02e43d9 gcc/brig-builtins.def ! ed34f69f684e0fb02b306082c0df4804 gcc/brig/ChangeLog bab627d6443c1a1acc88dda9e6f6e709 gcc/brig/Make-lang.in 0b230923a4c2c3af6b4d7ce68c999bb7 gcc/brig/brig-builtins.h 774fc3b6756369a6579cac74f64c911f gcc/brig/brig-c.h --- 2763,2769 ---- f7b5eb17081fd36741c37e2fbae07255 gcc/bitmap.c 18c3da3fab8c769aed98aa69a2c72082 gcc/bitmap.h aa400898daf96dc45fdd63ffc02e43d9 gcc/brig-builtins.def ! 0920e3ba1195fa5dd5240b3526e643f8 gcc/brig/ChangeLog bab627d6443c1a1acc88dda9e6f6e709 gcc/brig/Make-lang.in 0b230923a4c2c3af6b4d7ce68c999bb7 gcc/brig/brig-builtins.h 774fc3b6756369a6579cac74f64c911f gcc/brig/brig-c.h *************** df2479761de54ed90a98e54f52fb50a2 gcc/br *** 2800,2814 **** 0d1a99c0e202b680ee608858701de0bf gcc/brig/lang.opt d3b19e5439825080ec7a33d50b0068df gcc/builtin-attrs.def 1be7e27be346b87cc4427d231810a8eb gcc/builtin-types.def ! 39af395eb5e8f0e621018786a5efa1a7 gcc/builtins.c cf87a3e542aeb250ce5b39931e715fcd gcc/builtins.def 2ecd530cb8252acf75726a9febdb44db gcc/builtins.h ! 2d273c0cde6640f116ab42e8d75efebb gcc/c-family/ChangeLog ea3fa1f4d7390a105fa3caab4f79aaf7 gcc/c-family/ChangeLog.gimple-classes 15beccd0d77567834582c6b0c51fd52a gcc/c-family/c-ada-spec.c 5dc1afd075cf7eaa7849b1835aaf5151 gcc/c-family/c-ada-spec.h 9d64ecd919e42f1fb8fedbf776b6a3bb gcc/c-family/c-attribs.c ! dbc3d1748796211da2be3ed9246d95dc gcc/c-family/c-common.c 0c8a813eb65969867173b24c30327a76 gcc/c-family/c-common.def ef53645c9103d1b6ceaf102c3a883946 gcc/c-family/c-common.h d5f855d41dfcb98f0d6feb33202debad gcc/c-family/c-cppbuiltin.c --- 2806,2820 ---- 0d1a99c0e202b680ee608858701de0bf gcc/brig/lang.opt d3b19e5439825080ec7a33d50b0068df gcc/builtin-attrs.def 1be7e27be346b87cc4427d231810a8eb gcc/builtin-types.def ! a53ce347ce39cc70a2a3d5766b7f96fc gcc/builtins.c cf87a3e542aeb250ce5b39931e715fcd gcc/builtins.def 2ecd530cb8252acf75726a9febdb44db gcc/builtins.h ! c646c5262db075984549d61c313049e1 gcc/c-family/ChangeLog ea3fa1f4d7390a105fa3caab4f79aaf7 gcc/c-family/ChangeLog.gimple-classes 15beccd0d77567834582c6b0c51fd52a gcc/c-family/c-ada-spec.c 5dc1afd075cf7eaa7849b1835aaf5151 gcc/c-family/c-ada-spec.h 9d64ecd919e42f1fb8fedbf776b6a3bb gcc/c-family/c-attribs.c ! 74df8819e134ed94a6f76aee45691be3 gcc/c-family/c-common.c 0c8a813eb65969867173b24c30327a76 gcc/c-family/c-common.def ef53645c9103d1b6ceaf102c3a883946 gcc/c-family/c-common.h d5f855d41dfcb98f0d6feb33202debad gcc/c-family/c-cppbuiltin.c *************** d530c6ebfb68d3bd9fe3c35dd52a29d7 gcc/c- *** 2820,2827 **** db7fa238fdc72d487e426feaa3986e9c gcc/c-family/c-indentation.h dcd39370d6f1e36700fef1b5aa18a096 gcc/c-family/c-lex.c 6063463a86506d7e2ef869a98478b588 gcc/c-family/c-objc.h ! 4230105f5bdf4fc4760fb9e8d1ac0863 gcc/c-family/c-omp.c ! dc0ceb545e76ba6be4ab18e365d2a467 gcc/c-family/c-opts.c 7e0fb03255a370797142bf7ded619da2 gcc/c-family/c-pch.c e1dcf5091ff72788ca64e5879a09caf8 gcc/c-family/c-ppoutput.c 988cf6886387da459232d5f37b6b867f gcc/c-family/c-pragma.c --- 2826,2833 ---- db7fa238fdc72d487e426feaa3986e9c gcc/c-family/c-indentation.h dcd39370d6f1e36700fef1b5aa18a096 gcc/c-family/c-lex.c 6063463a86506d7e2ef869a98478b588 gcc/c-family/c-objc.h ! d7b5ce63e2d17d365b4c9df54d71812b gcc/c-family/c-omp.c ! 56450435eeb15eddb606a41f9275843d gcc/c-family/c-opts.c 7e0fb03255a370797142bf7ded619da2 gcc/c-family/c-pch.c e1dcf5091ff72788ca64e5879a09caf8 gcc/c-family/c-ppoutput.c 988cf6886387da459232d5f37b6b867f gcc/c-family/c-pragma.c *************** fc14322847441cb3667440bc87da3b52 gcc/c- *** 2834,2891 **** bfd80d2148106bac1d05ea7c2b9411eb gcc/c-family/c-target-def.h 7242045cebb1e11387757265413d5251 gcc/c-family/c-target.def 2aa125b135889f7a2184e6c67397c8cb gcc/c-family/c-target.h ! 59363b5de50fde85b78b236a80a4893b gcc/c-family/c-ubsan.c 7cf91a9589ce350e33ba2b47bb1a325f gcc/c-family/c-ubsan.h ! b5aa19bfc98083c8db4be815299238ea gcc/c-family/c-warn.c a963b4151ab066656972c16278375da4 gcc/c-family/c.opt b43dece1279b57c11814d52a65e6b6ea gcc/c-family/cppspec.c 5c832c1af744d342632adae122b0c3ab gcc/c-family/known-headers.cc 01877474441e3959ec1e408406d4474a gcc/c-family/known-headers.h 9a481669d5130c0d3aa82564914e7783 gcc/c-family/name-hint.h ! 69c44b7782ac83e39c309f89d6ba0a6f gcc/c-family/stub-objc.c ! 77c7830a77f93ba8796cb41bcf4a4548 gcc/c/ChangeLog f6929faadb53d5b9422199d45077f288 gcc/c/Make-lang.in 126762639055b3b1b86e5d430aa07db1 gcc/c/c-aux-info.c e377a3eb832170e8484be76c63e35536 gcc/c/c-convert.c ! ceb1f485ef013cc700cf829f7d1dd7f9 gcc/c/c-decl.c 84043724eb03cdccb58873ba5e72c627 gcc/c/c-errors.c ! fb944462a2b56d967e6c2f3f2b311b11 gcc/c/c-fold.c 51b96bbd5befe77d593248445375d28d gcc/c/c-lang.c 8ff8157204a8c00a98837c8c608eb8d3 gcc/c/c-lang.h a923e8ff4b2e324962750726e86ee483 gcc/c/c-objc-common.c b99037c5342efcb88c484e69767809b8 gcc/c/c-objc-common.h ! 06eca7c426692b5b4cb8ebc2fb08cb07 gcc/c/c-parser.c 4e3cefb76c65add787d87d68751b1a07 gcc/c/c-parser.h e9fc075c7931d694d1792d63eec30240 gcc/c/c-tree.h ! bf3dd86a36be51350b5ddc9bef9daa25 gcc/c/c-typeck.c c775f0b0fdab664f9af6d91c50d00bf1 gcc/c/config-lang.in 315c046f9a968d163b235879526db9de gcc/c/gccspec.c 810ad966d180268d4d993296f973dd2a gcc/c/gimple-parser.c 14ec0e320953e78f33b5863e1d79bb0c gcc/c/gimple-parser.h fc827b1145fd3f0f9d5f7691bea63571 gcc/caller-save.c ! a6cdfb74ba62f020cdefaf687e2aa4b3 gcc/calls.c 592265a096667e0fa1b552ddabd549bd gcc/calls.h 2b01edc68142ede17ac6323f22684799 gcc/ccmp.c 3ac7219b3911f5bcce4b246f7c388dcd gcc/ccmp.h fc3b0da18c77e1bbc7e30a024af08ce7 gcc/cfg-flags.def ca842079779fd4ad57902f8f2c010008 gcc/cfg.c 82eb42382bd27f495e40808042cf77c9 gcc/cfg.h ! d7f9dff245907f699d68bdae5b50942c gcc/cfganal.c ! 3afbd3e45b380b7210cbe10bf189399e gcc/cfganal.h 7545937c02f6a985cafd1ad68106530a gcc/cfgbuild.c 4ff5cc9e540613e104f270326dd30463 gcc/cfgbuild.h ! 9d2b81afe3b70f5c45d0a35f5d5b8cd8 gcc/cfgcleanup.c 18ca8e6def454559f2c04130a898ff21 gcc/cfgcleanup.h ! 6a2fc4f83cfcf5116d7783e763aa9283 gcc/cfgexpand.c 9efa3c99ef3749b3e429ee43c39e044f gcc/cfgexpand.h b047418dcd01aa64f4e5150cec60e3de gcc/cfghooks.c 0e2763c31f3c0575f4e5a386b4c571e0 gcc/cfghooks.h 10c217fa3fab09cb893c1dfab90f3b7e gcc/cfgloop.c f053e5c7a3ba9334215470ab73217ce8 gcc/cfgloop.h 60932be4031375e83f13149bedb7d3f8 gcc/cfgloopanal.c ! c314ec0b1f1597f8e9f5c3f4e1dc0024 gcc/cfgloopmanip.c 6a4905a41957ce68c581d825ff73ae29 gcc/cfgloopmanip.h ! 9bfda4c07dc238fade6af611fc74b6e1 gcc/cfgrtl.c ec3e0c9cceed5cde000334a220d1fb2a gcc/cfgrtl.h fde53137ba6eba2024e5c18c0b6cf126 gcc/cgraph.c 05f66df4f4ad23469d802fc5ff9e9407 gcc/cgraph.h --- 2840,2897 ---- bfd80d2148106bac1d05ea7c2b9411eb gcc/c-family/c-target-def.h 7242045cebb1e11387757265413d5251 gcc/c-family/c-target.def 2aa125b135889f7a2184e6c67397c8cb gcc/c-family/c-target.h ! 4dabf2f881abddea3da78ee7e6183342 gcc/c-family/c-ubsan.c 7cf91a9589ce350e33ba2b47bb1a325f gcc/c-family/c-ubsan.h ! a16f65c4674ae5b380d92da924474737 gcc/c-family/c-warn.c a963b4151ab066656972c16278375da4 gcc/c-family/c.opt b43dece1279b57c11814d52a65e6b6ea gcc/c-family/cppspec.c 5c832c1af744d342632adae122b0c3ab gcc/c-family/known-headers.cc 01877474441e3959ec1e408406d4474a gcc/c-family/known-headers.h 9a481669d5130c0d3aa82564914e7783 gcc/c-family/name-hint.h ! 1773a72e335345c533ee83230093bc6c gcc/c-family/stub-objc.c ! 1a7731d4bfb67c7da261f41829b96acd gcc/c/ChangeLog f6929faadb53d5b9422199d45077f288 gcc/c/Make-lang.in 126762639055b3b1b86e5d430aa07db1 gcc/c/c-aux-info.c e377a3eb832170e8484be76c63e35536 gcc/c/c-convert.c ! ae73260f7f31cd757ce5b67753166db3 gcc/c/c-decl.c 84043724eb03cdccb58873ba5e72c627 gcc/c/c-errors.c ! 16ea34c512c7204006823f83b79fe4e2 gcc/c/c-fold.c 51b96bbd5befe77d593248445375d28d gcc/c/c-lang.c 8ff8157204a8c00a98837c8c608eb8d3 gcc/c/c-lang.h a923e8ff4b2e324962750726e86ee483 gcc/c/c-objc-common.c b99037c5342efcb88c484e69767809b8 gcc/c/c-objc-common.h ! 6a6621ec4fe222932af0d82dc0c81dee gcc/c/c-parser.c 4e3cefb76c65add787d87d68751b1a07 gcc/c/c-parser.h e9fc075c7931d694d1792d63eec30240 gcc/c/c-tree.h ! 37e5340a4ac0aaf918f5ec5b75fd62f2 gcc/c/c-typeck.c c775f0b0fdab664f9af6d91c50d00bf1 gcc/c/config-lang.in 315c046f9a968d163b235879526db9de gcc/c/gccspec.c 810ad966d180268d4d993296f973dd2a gcc/c/gimple-parser.c 14ec0e320953e78f33b5863e1d79bb0c gcc/c/gimple-parser.h fc827b1145fd3f0f9d5f7691bea63571 gcc/caller-save.c ! 6558d621bf33b5754a1ef82e76896a9a gcc/calls.c 592265a096667e0fa1b552ddabd549bd gcc/calls.h 2b01edc68142ede17ac6323f22684799 gcc/ccmp.c 3ac7219b3911f5bcce4b246f7c388dcd gcc/ccmp.h fc3b0da18c77e1bbc7e30a024af08ce7 gcc/cfg-flags.def ca842079779fd4ad57902f8f2c010008 gcc/cfg.c 82eb42382bd27f495e40808042cf77c9 gcc/cfg.h ! b8a8f13511b2a58a92f6f88180478eed gcc/cfganal.c ! 323bf37c29b5e56113ce2ef1d930f53f gcc/cfganal.h 7545937c02f6a985cafd1ad68106530a gcc/cfgbuild.c 4ff5cc9e540613e104f270326dd30463 gcc/cfgbuild.h ! 33a44e2340091ed8621bc5b7e3c328cd gcc/cfgcleanup.c 18ca8e6def454559f2c04130a898ff21 gcc/cfgcleanup.h ! 720eb37f143179272470440fcaeff12d gcc/cfgexpand.c 9efa3c99ef3749b3e429ee43c39e044f gcc/cfgexpand.h b047418dcd01aa64f4e5150cec60e3de gcc/cfghooks.c 0e2763c31f3c0575f4e5a386b4c571e0 gcc/cfghooks.h 10c217fa3fab09cb893c1dfab90f3b7e gcc/cfgloop.c f053e5c7a3ba9334215470ab73217ce8 gcc/cfgloop.h 60932be4031375e83f13149bedb7d3f8 gcc/cfgloopanal.c ! a22a3e9d60cd0079f4733d7dd1915514 gcc/cfgloopmanip.c 6a4905a41957ce68c581d825ff73ae29 gcc/cfgloopmanip.h ! 5691f9c73e1fc552483d9c1525f1d14c gcc/cfgrtl.c ec3e0c9cceed5cde000334a220d1fb2a gcc/cfgrtl.h fde53137ba6eba2024e5c18c0b6cf126 gcc/cgraph.c 05f66df4f4ad23469d802fc5ff9e9407 gcc/cgraph.h *************** c8a675e59007c17716a525659fa4904d gcc/cg *** 2897,2907 **** d0e4b33a4a5624ecb4ca454449ef852e gcc/collect-utils.h 0fc4bd5d5c5774e66988336e4b5da75d gcc/collect2-aix.c 3f91bd4f770d3a36dc9dcc035a254573 gcc/collect2-aix.h ! 8cacc548fc8207796259da09c278b50f gcc/collect2.c 416d4b94dd438f73c5d439f42105f2a3 gcc/collect2.h 1d67c810e859fc4af8b450c90ce93a11 gcc/color-macros.h b538ae3d0d86d85d58477d0cc2edbf19 gcc/combine-stack-adj.c ! 673b8f0c699c4719a259bfe1b233dcf7 gcc/combine.c 6942b61cb20a34ce213644d097e91820 gcc/common.md b78ea8df7546699f60269afaca5aae97 gcc/common.opt 97a5a84c9ace6b2ba5208d4acb473e94 gcc/common/common-target-def.h --- 2903,2913 ---- d0e4b33a4a5624ecb4ca454449ef852e gcc/collect-utils.h 0fc4bd5d5c5774e66988336e4b5da75d gcc/collect2-aix.c 3f91bd4f770d3a36dc9dcc035a254573 gcc/collect2-aix.h ! 2c92b736e958aa2dcd5c71384b3a8f0c gcc/collect2.c 416d4b94dd438f73c5d439f42105f2a3 gcc/collect2.h 1d67c810e859fc4af8b450c90ce93a11 gcc/color-macros.h b538ae3d0d86d85d58477d0cc2edbf19 gcc/combine-stack-adj.c ! 26fde0cdafc3da303dd91149cd47723f gcc/combine.c 6942b61cb20a34ce213644d097e91820 gcc/common.md b78ea8df7546699f60269afaca5aae97 gcc/common.opt 97a5a84c9ace6b2ba5208d4acb473e94 gcc/common/common-target-def.h *************** b3d591cea0deadd38b0d7aeb3fc223bb gcc/co *** 2912,2918 **** dd0800ae529a87b856ad6cab3b19894a gcc/common/config/aarch64/aarch64-common.c 69cef0f9f5ee9931e966f2907b72f942 gcc/common/config/alpha/alpha-common.c 3a7a42cf8770939ad560368ce7b5ceed gcc/common/config/arc/arc-common.c ! 0da8bb3da220f3915665f639ee92f902 gcc/common/config/arm/arm-common.c fc68d6ea70f63c48c9421e38883a1c7c gcc/common/config/avr/avr-common.c bdfa0d893200599659fd8a98eb7915d5 gcc/common/config/bfin/bfin-common.c 371d7275ed8bc3b616ce7f3607c77bec gcc/common/config/bpf/bpf-common.c --- 2918,2924 ---- dd0800ae529a87b856ad6cab3b19894a gcc/common/config/aarch64/aarch64-common.c 69cef0f9f5ee9931e966f2907b72f942 gcc/common/config/alpha/alpha-common.c 3a7a42cf8770939ad560368ce7b5ceed gcc/common/config/arc/arc-common.c ! f540c59632a78867e67b9df30c4e4ced gcc/common/config/arm/arm-common.c fc68d6ea70f63c48c9421e38883a1c7c gcc/common/config/avr/avr-common.c bdfa0d893200599659fd8a98eb7915d5 gcc/common/config/bfin/bfin-common.c 371d7275ed8bc3b616ce7f3607c77bec gcc/common/config/bpf/bpf-common.c *************** b6ac968b98e4025b822753e1d568a650 gcc/co *** 2947,2953 **** fb62a9b3bd5b370edeb53b5722c08a17 gcc/common/config/pdp11/pdp11-common.c 5f5ebca1101d7c14bcf4b39f4d08c6ca gcc/common/config/pru/pru-common.c 8fcf8800dae6a18e3535975bc489da02 gcc/common/config/riscv/riscv-common.c ! 68af3357a3201fae75f3a4613db17877 gcc/common/config/rs6000/rs6000-common.c f2d6be4c91da71f813cebba7847fa462 gcc/common/config/rx/rx-common.c b8299275a430cfc7d3c9822664ba8ecc gcc/common/config/s390/s390-common.c 7209d5f2e143a86964d99d93b3924d41 gcc/common/config/sh/sh-common.c --- 2953,2959 ---- fb62a9b3bd5b370edeb53b5722c08a17 gcc/common/config/pdp11/pdp11-common.c 5f5ebca1101d7c14bcf4b39f4d08c6ca gcc/common/config/pru/pru-common.c 8fcf8800dae6a18e3535975bc489da02 gcc/common/config/riscv/riscv-common.c ! a21db83893f45c61034972e85523d043 gcc/common/config/rs6000/rs6000-common.c f2d6be4c91da71f813cebba7847fa462 gcc/common/config/rx/rx-common.c b8299275a430cfc7d3c9822664ba8ecc gcc/common/config/s390/s390-common.c 7209d5f2e143a86964d99d93b3924d41 gcc/common/config/sh/sh-common.c *************** f6304e65f3c00a6a7aee195a39898f89 gcc/co *** 2962,2976 **** 8763e6612b3f349cca760cdd8226cddd gcc/compare-elim.c eab0d30a85465c8dfc86d5de1b6fbeb0 gcc/conditions.h c8cbeab9205c5362586933dd45dc115e gcc/config.build ! 9bc1f370951145b7e1e1aec4c2987db1 gcc/config.gcc a0c075b392f11951c415335bdf967308 gcc/config.host ! 73178c94b78d70a1e76cc4ba6a1f728d gcc/config.in 8e697813dc96ca90f5d0f4c196efe2cc gcc/config/README e100e878ef9a128dbaa8fac0c0a00e15 gcc/config/aarch64/aarch64-arches.def ! 4e5ea11ae0bcae19b0b2e529ad5e6580 gcc/config/aarch64/aarch64-bti-insert.c 1e3e6b0b4deb9c4d7ba78b9ec8c7947e gcc/config/aarch64/aarch64-builtins.c bebc910ea9166916d8b120860ae862a1 gcc/config/aarch64/aarch64-c.c ! 96b4a93528a81ef7ed4bbc138e10a4b0 gcc/config/aarch64/aarch64-cores.def 5c8cd25f4a4e8d19df2bff7cb2aafce7 gcc/config/aarch64/aarch64-cost-tables.h fadf3865cbccee62906724ea36f6575a gcc/config/aarch64/aarch64-d.c c8996ccf16af2d4d91b72e3d4cc4cdf7 gcc/config/aarch64/aarch64-elf-raw.h --- 2968,2982 ---- 8763e6612b3f349cca760cdd8226cddd gcc/compare-elim.c eab0d30a85465c8dfc86d5de1b6fbeb0 gcc/conditions.h c8cbeab9205c5362586933dd45dc115e gcc/config.build ! eca8c32a5be6aa0aba025ab99916e2ca gcc/config.gcc a0c075b392f11951c415335bdf967308 gcc/config.host ! d9c4940061976b97581faa8115f9bfcd gcc/config.in 8e697813dc96ca90f5d0f4c196efe2cc gcc/config/README e100e878ef9a128dbaa8fac0c0a00e15 gcc/config/aarch64/aarch64-arches.def ! d75c36a73f9ff426af3f63ac06794e39 gcc/config/aarch64/aarch64-bti-insert.c 1e3e6b0b4deb9c4d7ba78b9ec8c7947e gcc/config/aarch64/aarch64-builtins.c bebc910ea9166916d8b120860ae862a1 gcc/config/aarch64/aarch64-c.c ! de9ebc7005b685ffa5a8754830fa7028 gcc/config/aarch64/aarch64-cores.def 5c8cd25f4a4e8d19df2bff7cb2aafce7 gcc/config/aarch64/aarch64-cost-tables.h fadf3865cbccee62906724ea36f6575a gcc/config/aarch64/aarch64-d.c c8996ccf16af2d4d91b72e3d4cc4cdf7 gcc/config/aarch64/aarch64-elf-raw.h *************** c97840e68a2ac3eb338dc9997e7112d1 gcc/co *** 2985,2994 **** 1bac6726009e0fb8452d559c3dd88e26 gcc/config/aarch64/aarch64-option-extensions.def fd4267a19928f12195f70461bd5c06c4 gcc/config/aarch64/aarch64-opts.h 2d3c997a76ea54fd838b69085e0a560b gcc/config/aarch64/aarch64-passes.def ! 35c2d2917b19276ad43af57a1983616f gcc/config/aarch64/aarch64-protos.h 2e263bfa2bd1fea303c37b04ce63eb60 gcc/config/aarch64/aarch64-simd-builtin-types.def e861473941caf234c01ffa1712e67f68 gcc/config/aarch64/aarch64-simd-builtins.def ! f751afb71478b99261aa2566a170aa7c gcc/config/aarch64/aarch64-simd.md effa2b4283bd899d74c40c2d2a83e79b gcc/config/aarch64/aarch64-speculation.cc 191b10e29119e1fe80e00715be2780bb gcc/config/aarch64/aarch64-sve-builtins-base.cc 8702c0c25fe5558a8c9f5dff4ad8a40d gcc/config/aarch64/aarch64-sve-builtins-base.def --- 2991,3000 ---- 1bac6726009e0fb8452d559c3dd88e26 gcc/config/aarch64/aarch64-option-extensions.def fd4267a19928f12195f70461bd5c06c4 gcc/config/aarch64/aarch64-opts.h 2d3c997a76ea54fd838b69085e0a560b gcc/config/aarch64/aarch64-passes.def ! f0e19bf0c86ab241e64aea2f4367970c gcc/config/aarch64/aarch64-protos.h 2e263bfa2bd1fea303c37b04ce63eb60 gcc/config/aarch64/aarch64-simd-builtin-types.def e861473941caf234c01ffa1712e67f68 gcc/config/aarch64/aarch64-simd-builtins.def ! fd2dcbb95040d8a0e635b8cb46251cd6 gcc/config/aarch64/aarch64-simd.md effa2b4283bd899d74c40c2d2a83e79b gcc/config/aarch64/aarch64-speculation.cc 191b10e29119e1fe80e00715be2780bb gcc/config/aarch64/aarch64-sve-builtins-base.cc 8702c0c25fe5558a8c9f5dff4ad8a40d gcc/config/aarch64/aarch64-sve-builtins-base.def *************** c94e53bffc6998ca046cd74f9e425e17 gcc/co *** 2999,3015 **** 0b43387d6c0d3a042a0a37a8037fae22 gcc/config/aarch64/aarch64-sve-builtins-sve2.cc 618643b7c84a6de14467802d82a5d2c2 gcc/config/aarch64/aarch64-sve-builtins-sve2.def 825f04b0d5062963df3bbc66157d46d3 gcc/config/aarch64/aarch64-sve-builtins-sve2.h ! 06c001bfb0fd04ddd3b534d4ffd1fc46 gcc/config/aarch64/aarch64-sve-builtins.cc abe33f03faf6cbe321c71fda2b57c71f gcc/config/aarch64/aarch64-sve-builtins.def ! dec3b249c63675f5a0bcf80607264444 gcc/config/aarch64/aarch64-sve-builtins.h ! ada29bda03f7e55225f38d78867e08ae gcc/config/aarch64/aarch64-sve.md 58533c161280fb74a5faa1e7075cbe1c gcc/config/aarch64/aarch64-sve2.md ! 72a48135e1a40c91713b6d233fddd0ab gcc/config/aarch64/aarch64-tune.md 9be3f2134bfe0325d95ce4a8e484c851 gcc/config/aarch64/aarch64-tuning-flags.def 284de9008114b29d2b3367a8907cabc9 gcc/config/aarch64/aarch64-vxworks.h ! 4c2994742844ebb740bafccaefbbce5e gcc/config/aarch64/aarch64.c 77a28f34959cb9ea2609b78316480192 gcc/config/aarch64/aarch64.h ! ca51a2e111a02e923a268d101371e8bb gcc/config/aarch64/aarch64.md 6c72acb73d060e176a5b91a92c729680 gcc/config/aarch64/aarch64.opt 50f832b6b6b6912cdbcecf928e8bd3de gcc/config/aarch64/arm_acle.h beb001d25963acd80ffd85765795da0f gcc/config/aarch64/arm_bf16.h --- 3005,3021 ---- 0b43387d6c0d3a042a0a37a8037fae22 gcc/config/aarch64/aarch64-sve-builtins-sve2.cc 618643b7c84a6de14467802d82a5d2c2 gcc/config/aarch64/aarch64-sve-builtins-sve2.def 825f04b0d5062963df3bbc66157d46d3 gcc/config/aarch64/aarch64-sve-builtins-sve2.h ! ac068e7497068050097af24e4524dbb7 gcc/config/aarch64/aarch64-sve-builtins.cc abe33f03faf6cbe321c71fda2b57c71f gcc/config/aarch64/aarch64-sve-builtins.def ! b53d707b8cc17ce59ac8a275884d1584 gcc/config/aarch64/aarch64-sve-builtins.h ! c915fa6ccecc9e8fb1a19fce69f6c8eb gcc/config/aarch64/aarch64-sve.md 58533c161280fb74a5faa1e7075cbe1c gcc/config/aarch64/aarch64-sve2.md ! d98960533bbb2b4e07e4fa669fc35414 gcc/config/aarch64/aarch64-tune.md 9be3f2134bfe0325d95ce4a8e484c851 gcc/config/aarch64/aarch64-tuning-flags.def 284de9008114b29d2b3367a8907cabc9 gcc/config/aarch64/aarch64-vxworks.h ! fb97bded2ac89424a5d5c2f8ecfd7f81 gcc/config/aarch64/aarch64.c 77a28f34959cb9ea2609b78316480192 gcc/config/aarch64/aarch64.h ! 68c064fb342fc1947a5d1cc7c47401b4 gcc/config/aarch64/aarch64.md 6c72acb73d060e176a5b91a92c729680 gcc/config/aarch64/aarch64.opt 50f832b6b6b6912cdbcecf928e8bd3de gcc/config/aarch64/arm_acle.h beb001d25963acd80ffd85765795da0f gcc/config/aarch64/arm_bf16.h *************** ff5515782bebfacde1bf17e778e04041 gcc/co *** 3020,3033 **** 41e1078f5e43cdccd458276f86672c4a gcc/config/aarch64/biarchilp32.h 471db9bdb42726f9e3088620822281cc gcc/config/aarch64/biarchlp64.h 60c2456961e828947f52d5537ffe1906 gcc/config/aarch64/check-sve-md.awk ! dc0d348fb5cf5bdc3d8ec360ccd3845e gcc/config/aarch64/constraints.md 9f627aa983d4d8c1e657bc80da0f60b6 gcc/config/aarch64/cortex-a57-fma-steering.c 652344702d20655bb320d62fe6a88de8 gcc/config/aarch64/driver-aarch64.c 6a676d12724ddaa2ac94f19291b424e6 gcc/config/aarch64/falkor-tag-collision-avoidance.c 792daee1b1c6682c2179f76a7c1f0966 gcc/config/aarch64/falkor.md e34211047f88b2c15a2d06ed84d68cb2 gcc/config/aarch64/geniterators.sh df0891baf7b5b4a6518824ae9bc70a4e gcc/config/aarch64/gentune.sh ! bc12ae82223ebf794872cc3ca32f1fe0 gcc/config/aarch64/iterators.md 52269092b238bd0fa24fc117eda7723a gcc/config/aarch64/predicates.md 6e7d185b76922a87ae30f2ff6904d3e0 gcc/config/aarch64/rtems.h f9247c06e620b0ace1c5a3e9d3bb9000 gcc/config/aarch64/saphira.md --- 3026,3039 ---- 41e1078f5e43cdccd458276f86672c4a gcc/config/aarch64/biarchilp32.h 471db9bdb42726f9e3088620822281cc gcc/config/aarch64/biarchlp64.h 60c2456961e828947f52d5537ffe1906 gcc/config/aarch64/check-sve-md.awk ! d6b4bcd1976a38548f182f79fee0a58e gcc/config/aarch64/constraints.md 9f627aa983d4d8c1e657bc80da0f60b6 gcc/config/aarch64/cortex-a57-fma-steering.c 652344702d20655bb320d62fe6a88de8 gcc/config/aarch64/driver-aarch64.c 6a676d12724ddaa2ac94f19291b424e6 gcc/config/aarch64/falkor-tag-collision-avoidance.c 792daee1b1c6682c2179f76a7c1f0966 gcc/config/aarch64/falkor.md e34211047f88b2c15a2d06ed84d68cb2 gcc/config/aarch64/geniterators.sh df0891baf7b5b4a6518824ae9bc70a4e gcc/config/aarch64/gentune.sh ! 9677fac82c3e25a1be66e6b2ccf4496d gcc/config/aarch64/iterators.md 52269092b238bd0fa24fc117eda7723a gcc/config/aarch64/predicates.md 6e7d185b76922a87ae30f2ff6904d3e0 gcc/config/aarch64/rtems.h f9247c06e620b0ace1c5a3e9d3bb9000 gcc/config/aarch64/saphira.md *************** db564cb2c0bc4b2857f5ebf9d38cd02e gcc/co *** 3043,3050 **** 8b41b511cae4a5eda35cf19755875d5a gcc/config/aarch64/x-aarch64 e9e4d81fc187a540c984a3ce5dc325bc gcc/config/alpha/alpha-modes.def 026f7d9567ff45cd1b720c805c4166ab gcc/config/alpha/alpha-passes.def ! 88126bcdf887c8ba5e84bd1fb0030c6e gcc/config/alpha/alpha-protos.h ! 483023decd301796d70d7c031333b6d2 gcc/config/alpha/alpha.c 060573fbeb69cb096ba9000df08c9fa5 gcc/config/alpha/alpha.h 3d507b04ba3ecd3a41f026d0a54249c7 gcc/config/alpha/alpha.md d2a1e933711cdd89259088df02f012e0 gcc/config/alpha/alpha.opt --- 3049,3056 ---- 8b41b511cae4a5eda35cf19755875d5a gcc/config/aarch64/x-aarch64 e9e4d81fc187a540c984a3ce5dc325bc gcc/config/alpha/alpha-modes.def 026f7d9567ff45cd1b720c805c4166ab gcc/config/alpha/alpha-passes.def ! 1db8fe53b3f970d2f44e03698215ec44 gcc/config/alpha/alpha-protos.h ! 2db66a0988c9516fdbfa7f4f3eda9379 gcc/config/alpha/alpha.c 060573fbeb69cb096ba9000df08c9fa5 gcc/config/alpha/alpha.h 3d507b04ba3ecd3a41f026d0a54249c7 gcc/config/alpha/alpha.md d2a1e933711cdd89259088df02f012e0 gcc/config/alpha/alpha.opt *************** d2a1e933711cdd89259088df02f012e0 gcc/co *** 3052,3058 **** b89f73a9c09d3ae0c2102ac2330c9f0c gcc/config/alpha/driver-alpha.c 8b496a97d747b2fc282727956439a44b gcc/config/alpha/elf.h 299ed6183ec12328d99c153093498919 gcc/config/alpha/elf.opt ! 779d80cf99722c3d0c2b1eb7ca6632e3 gcc/config/alpha/ev4.md b149a535086d9346d88c7a31def27955 gcc/config/alpha/ev5.md 6ef0f265f9771e296aa49fc5694fad8d gcc/config/alpha/ev6.md 5ab4c9b093a15c9811b166e04eb1d5d8 gcc/config/alpha/linux-elf.h --- 3058,3064 ---- b89f73a9c09d3ae0c2102ac2330c9f0c gcc/config/alpha/driver-alpha.c 8b496a97d747b2fc282727956439a44b gcc/config/alpha/elf.h 299ed6183ec12328d99c153093498919 gcc/config/alpha/elf.opt ! 3cdd3e623d90cd598e24104979b7097f gcc/config/alpha/ev4.md b149a535086d9346d88c7a31def27955 gcc/config/alpha/ev5.md 6ef0f265f9771e296aa49fc5694fad8d gcc/config/alpha/ev6.md 5ab4c9b093a15c9811b166e04eb1d5d8 gcc/config/alpha/linux-elf.h *************** ee3c42e137c21bc92c7ac820b6fa3da6 gcc/co *** 3110,3117 **** 789272e082287ba7b243d2a476de4ff8 gcc/config/arm/aout.h db9303cf7fad69237031669a87f71c28 gcc/config/arm/arm-builtins.c 26b09ae8b9e7598fbdda3b4070bf9a6f gcc/config/arm/arm-builtins.h ! cdfd6c5f642db3d9054b353436d07ff8 gcc/config/arm/arm-c.c ! d9a8150d31a0cc8008477c8483084110 gcc/config/arm/arm-cpus.in 906952c37687a5d171b557b157fef801 gcc/config/arm/arm-d.c f727e7f536ad470bb7174f2d00c1d383 gcc/config/arm/arm-fixed.md 319f20a9f136e727e3c101d606625902 gcc/config/arm/arm-flags.h --- 3116,3123 ---- 789272e082287ba7b243d2a476de4ff8 gcc/config/arm/aout.h db9303cf7fad69237031669a87f71c28 gcc/config/arm/arm-builtins.c 26b09ae8b9e7598fbdda3b4070bf9a6f gcc/config/arm/arm-builtins.h ! 12d3955d0dd4d8f67c4de78e1abd2463 gcc/config/arm/arm-c.c ! 0e4902397736bc6fab236d480a836190 gcc/config/arm/arm-cpus.in 906952c37687a5d171b557b157fef801 gcc/config/arm/arm-d.c f727e7f536ad470bb7174f2d00c1d383 gcc/config/arm/arm-fixed.md 319f20a9f136e727e3c101d606625902 gcc/config/arm/arm-flags.h *************** f727e7f536ad470bb7174f2d00c1d383 gcc/co *** 3119,3132 **** 39ccfe33ac81fb206aaf667df7b2c117 gcc/config/arm/arm-ldmstm.ml 043e53fa28fccc5766c5e2523369b020 gcc/config/arm/arm-modes.def 631077b70ffe49ffbd25cf0e6b76f611 gcc/config/arm/arm-opts.h ! 73cb023a7d434999e1423b3ee0206e84 gcc/config/arm/arm-protos.h 44622fc33fd2523937cfce491e279b46 gcc/config/arm/arm-simd-builtin-types.def 7e18ceffae1d853688d966ae433bc04d gcc/config/arm/arm-tables.opt 69c3eacb08d45fb05967f4ec97e26170 gcc/config/arm/arm-tune.md ! fce45d3dcc0eec528c176bbad30a818e gcc/config/arm/arm.c ! c935b17c9f16b1795ba5758c23e393b6 gcc/config/arm/arm.h ! 62d9c49aa28a593dec35aa169af5f7eb gcc/config/arm/arm.md ! b3218434aa9744c269bbbc5820567f78 gcc/config/arm/arm.opt 92534062d244959bdcd18adc5d185c7f gcc/config/arm/arm1020e.md d314474c68aa5c3ecc398062a2d4045e gcc/config/arm/arm1026ejs.md f741dee0384ab03d7bb6e6805d83abd2 gcc/config/arm/arm1136jfs.md --- 3125,3138 ---- 39ccfe33ac81fb206aaf667df7b2c117 gcc/config/arm/arm-ldmstm.ml 043e53fa28fccc5766c5e2523369b020 gcc/config/arm/arm-modes.def 631077b70ffe49ffbd25cf0e6b76f611 gcc/config/arm/arm-opts.h ! 00a3f3ab038a79387b0dcc5405ad6fab gcc/config/arm/arm-protos.h 44622fc33fd2523937cfce491e279b46 gcc/config/arm/arm-simd-builtin-types.def 7e18ceffae1d853688d966ae433bc04d gcc/config/arm/arm-tables.opt 69c3eacb08d45fb05967f4ec97e26170 gcc/config/arm/arm-tune.md ! 5ed79c04b5cfe3a8749ae5871092cdb5 gcc/config/arm/arm.c ! 5de4c25f31969be20c58357ce7fd654e gcc/config/arm/arm.h ! 10caf6e1cd4e0af00f9fe616be60e8c1 gcc/config/arm/arm.md ! 0dbb24ac1d0e8cd8b1fc21a2893fa1e5 gcc/config/arm/arm.opt 92534062d244959bdcd18adc5d185c7f gcc/config/arm/arm1020e.md d314474c68aa5c3ecc398062a2d4045e gcc/config/arm/arm1026ejs.md f741dee0384ab03d7bb6e6805d83abd2 gcc/config/arm/arm1136jfs.md *************** f9fb2d4803a2675c9141c038ebb45808 gcc/co *** 3138,3144 **** 8de388e84807fa4a309ab2274386319b gcc/config/arm/arm_cde_builtins.def faee14128e82903dd6092173e3fcda2d gcc/config/arm/arm_cmse.h 121941743291dc22afc42381af34d1dd gcc/config/arm/arm_fp16.h ! 2cca29152859ba7ddb7f3324bcbde3f8 gcc/config/arm/arm_mve.h fca7fa83ea32e5c25ed4df1608b90520 gcc/config/arm/arm_mve_builtins.def 14d3d18506f5715a0f1e4a2f35fa7b55 gcc/config/arm/arm_mve_types.h ca8113ea8aec0fb1e308327bddfc0512 gcc/config/arm/arm_neon.h --- 3144,3150 ---- 8de388e84807fa4a309ab2274386319b gcc/config/arm/arm_cde_builtins.def faee14128e82903dd6092173e3fcda2d gcc/config/arm/arm_cmse.h 121941743291dc22afc42381af34d1dd gcc/config/arm/arm_fp16.h ! 961f911bd9190f0959a3db98dd35ad7b gcc/config/arm/arm_mve.h fca7fa83ea32e5c25ed4df1608b90520 gcc/config/arm/arm_mve_builtins.def 14d3d18506f5715a0f1e4a2f35fa7b55 gcc/config/arm/arm_mve_types.h ca8113ea8aec0fb1e308327bddfc0512 gcc/config/arm/arm_neon.h *************** cba5bb06b2f0f89c465a6fb784d72b9d gcc/co *** 3175,3181 **** 3c7373e9263cc887cb228df9590c94a5 gcc/config/arm/fmp626.md 5a8b13a7aebcfe4ac43f21ef13a86eb9 gcc/config/arm/freebsd.h e28e0b5c3f8e0830c41307fb9251b5b7 gcc/config/arm/fuchsia-elf.h ! 07e92329bea7487d7d2889beb820dd16 gcc/config/arm/iterators.md df8c33c1d92134bde92a14a80201a228 gcc/config/arm/iwmmxt.md 51132ff11484e3ee066f07d796cf06ba gcc/config/arm/iwmmxt2.md ead04158f0c4135990f48a876b12e071 gcc/config/arm/ldmstm.md --- 3181,3187 ---- 3c7373e9263cc887cb228df9590c94a5 gcc/config/arm/fmp626.md 5a8b13a7aebcfe4ac43f21ef13a86eb9 gcc/config/arm/freebsd.h e28e0b5c3f8e0830c41307fb9251b5b7 gcc/config/arm/fuchsia-elf.h ! f0fdc45f9f3f14074fa32ca74e2e04f8 gcc/config/arm/iterators.md df8c33c1d92134bde92a14a80201a228 gcc/config/arm/iwmmxt.md 51132ff11484e3ee066f07d796cf06ba gcc/config/arm/iwmmxt2.md ead04158f0c4135990f48a876b12e071 gcc/config/arm/ldmstm.md *************** ead04158f0c4135990f48a876b12e071 gcc/co *** 3186,3192 **** 77bbfc52cec114473e16cc45525b78da gcc/config/arm/marvell-f-iwmmxt.md 593ec45cb06c77ec6517d3934663cfae gcc/config/arm/marvell-pj4.md f2cd1bfe02c6d51cc3919ec1fa7a85dd gcc/config/arm/mmintrin.h ! 3ce97ce79d1eb53c9dcbdbfbef45c76e gcc/config/arm/mve.md e09aaf8b4f2a91445bee305dbc7ce140 gcc/config/arm/neon.md e75b4fadda28d0bc88964789d006bf77 gcc/config/arm/netbsd-eabi.h da8d328015b35fd5b8cd1ba383e1bbb9 gcc/config/arm/netbsd-elf.h --- 3192,3198 ---- 77bbfc52cec114473e16cc45525b78da gcc/config/arm/marvell-f-iwmmxt.md 593ec45cb06c77ec6517d3934663cfae gcc/config/arm/marvell-pj4.md f2cd1bfe02c6d51cc3919ec1fa7a85dd gcc/config/arm/mmintrin.h ! 738a081764b8f9ea0ef68625865ec8c8 gcc/config/arm/mve.md e09aaf8b4f2a91445bee305dbc7ce140 gcc/config/arm/neon.md e75b4fadda28d0bc88964789d006bf77 gcc/config/arm/netbsd-eabi.h da8d328015b35fd5b8cd1ba383e1bbb9 gcc/config/arm/netbsd-elf.h *************** da8d328015b35fd5b8cd1ba383e1bbb9 gcc/co *** 3195,3201 **** f4a86e4fad5b4973b6cdca4114088d5b gcc/config/arm/rtems.h 07678b5b8ea0443225b9349ebcaba1fa gcc/config/arm/semi.h 34fc812393e7e05c8e7e3044b3c9ad70 gcc/config/arm/symbian.h ! 764e30ffcb2d2b5345e25730561756aa gcc/config/arm/sync.md 0b44c661a4fcd03784c39188a20363be gcc/config/arm/t-aprofile 3f25dc0f49eface5117308ae09e426cd gcc/config/arm/t-arm 47884ae185b6b2d1b47c57cb9841ee7f gcc/config/arm/t-arm-elf --- 3201,3207 ---- f4a86e4fad5b4973b6cdca4114088d5b gcc/config/arm/rtems.h 07678b5b8ea0443225b9349ebcaba1fa gcc/config/arm/semi.h 34fc812393e7e05c8e7e3044b3c9ad70 gcc/config/arm/symbian.h ! 33dc28d26c672264e77e4951edeff7e0 gcc/config/arm/sync.md 0b44c661a4fcd03784c39188a20363be gcc/config/arm/t-aprofile 3f25dc0f49eface5117308ae09e426cd gcc/config/arm/t-arm 47884ae185b6b2d1b47c57cb9841ee7f gcc/config/arm/t-arm-elf *************** e3950ec6bd159734835f8f8fb143efc6 gcc/co *** 3205,3215 **** 1abbe7e2dff325a461f882d81ae9d0d8 gcc/config/arm/t-linux-eabi 5a9bee6531255caed891c4648c339693 gcc/config/arm/t-multilib ba3c742cee71d778250a3ac85590c93f gcc/config/arm/t-phoenix ! 71d2404306e1fb5e30aed648377b8ecf gcc/config/arm/t-rmprofile c434e99f4fc47fd32ffab26fbeea8464 gcc/config/arm/t-rtems 7bc6fe2692f1011c28fb08ded09ee55e gcc/config/arm/t-symbian 57111571363907f82abf9b0499b22c32 gcc/config/arm/t-vxworks ! 0e35c63b787d2c19596e4718db4dc64d gcc/config/arm/thumb1.md de2a944122b1cd99e997917c51aa833e gcc/config/arm/thumb2.md 7ebef77d5257a6de55452d0d2378a2b4 gcc/config/arm/types.md 1700cb3de0abc236d3c38a45bf6e0ee1 gcc/config/arm/uclinux-eabi.h --- 3211,3221 ---- 1abbe7e2dff325a461f882d81ae9d0d8 gcc/config/arm/t-linux-eabi 5a9bee6531255caed891c4648c339693 gcc/config/arm/t-multilib ba3c742cee71d778250a3ac85590c93f gcc/config/arm/t-phoenix ! a02da217c2da7b0f39431dcd3caa445f gcc/config/arm/t-rmprofile c434e99f4fc47fd32ffab26fbeea8464 gcc/config/arm/t-rtems 7bc6fe2692f1011c28fb08ded09ee55e gcc/config/arm/t-symbian 57111571363907f82abf9b0499b22c32 gcc/config/arm/t-vxworks ! 2e50a24471ce341611dc8203a682af30 gcc/config/arm/thumb1.md de2a944122b1cd99e997917c51aa833e gcc/config/arm/thumb2.md 7ebef77d5257a6de55452d0d2378a2b4 gcc/config/arm/types.md 1700cb3de0abc236d3c38a45bf6e0ee1 gcc/config/arm/uclinux-eabi.h *************** de2a944122b1cd99e997917c51aa833e gcc/co *** 3218,3224 **** e2b8dca0f9e3facba6e03b04aaa95212 gcc/config/arm/unknown-elf.h e075c37998acb90c1a6e11045354aa0d gcc/config/arm/unspecs.md 984d0d34f4810c9a0d7c03d9e7ac1bc7 gcc/config/arm/vec-common.md ! f4302803fa64c3c4a8313d2262617a6f gcc/config/arm/vfp.md d6b75cda88705fcb9bb24c973403a79f gcc/config/arm/vfp11.md 754d278d0f42efc5ea21a852701d64b7 gcc/config/arm/vxworks.h a1e68ca6527d721ca9b727becce9d101 gcc/config/arm/vxworks.opt --- 3224,3230 ---- e2b8dca0f9e3facba6e03b04aaa95212 gcc/config/arm/unknown-elf.h e075c37998acb90c1a6e11045354aa0d gcc/config/arm/unspecs.md 984d0d34f4810c9a0d7c03d9e7ac1bc7 gcc/config/arm/vec-common.md ! ad57d8e130d7c0f8941667442dc97203 gcc/config/arm/vfp.md d6b75cda88705fcb9bb24c973403a79f gcc/config/arm/vfp11.md 754d278d0f42efc5ea21a852701d64b7 gcc/config/arm/vxworks.h a1e68ca6527d721ca9b727becce9d101 gcc/config/arm/vxworks.opt *************** ce868686e5f0526d7cb6ca055c30072f gcc/co *** 3274,3280 **** f2e59c4eaca2034d760cec596b3fae20 gcc/config/bpf/bpf-opts.h 364a22d645333f30b748ccf0d9221523 gcc/config/bpf/bpf-protos.h 91a90aafb26f37313f9a0591c2902c55 gcc/config/bpf/bpf.c ! 67a9e5cb91dcc4cf5e191456811c53f4 gcc/config/bpf/bpf.h 55217985dd2ce7ec8091abab7a4720da gcc/config/bpf/bpf.md 2827201f2e549ab03b7fde6f23f62680 gcc/config/bpf/bpf.opt 3dd8832965cd44da084efa8bbf5de946 gcc/config/bpf/constraints.md --- 3280,3286 ---- f2e59c4eaca2034d760cec596b3fae20 gcc/config/bpf/bpf-opts.h 364a22d645333f30b748ccf0d9221523 gcc/config/bpf/bpf-protos.h 91a90aafb26f37313f9a0591c2902c55 gcc/config/bpf/bpf.c ! 9f23aec73a40c57f4034dea83c4d6562 gcc/config/bpf/bpf.h 55217985dd2ce7ec8091abab7a4720da gcc/config/bpf/bpf.md 2827201f2e549ab03b7fde6f23f62680 gcc/config/bpf/bpf.opt 3dd8832965cd44da084efa8bbf5de946 gcc/config/bpf/constraints.md *************** ffa667e7d265230909c154a94cfad363 gcc/co *** 3354,3368 **** eb052b8d01bcc66ec2df70dc2fa9613d gcc/config/csky/t-csky-elf 1026cc867bc5f4fec333b6048114963e gcc/config/csky/t-csky-linux 9d4fc2f4697ee7f8aa6e4217e0a103fb gcc/config/csky/t-sysroot-suffix ! 307a76c751f9048d7abd3f2407a7a04a gcc/config/darwin-c.c ! f6f30c48e326885070e4511477005645 gcc/config/darwin-driver.c a3ce364c42d20501f7ff53cea9c94af3 gcc/config/darwin-f.c 73063d81d9e8ccfb36b462a062f0f3da gcc/config/darwin-ppc-ldouble-patch.def bf622b24f99b32a50572bc7a96cfe612 gcc/config/darwin-protos.h ! a0a670e3b89eee95e5875b77c9f3a625 gcc/config/darwin-sections.def ! e567ddab91f9f5c25aa70d79d3da9774 gcc/config/darwin.c ! 38dcc6706f7f0790d3438e4c9eeec0a5 gcc/config/darwin.h ! faf4d2d82bcacf64bb0c8695f00b7895 gcc/config/darwin.opt 22ef11e2b04fb7440bd17058f103745f gcc/config/dbx.h 3af56e740de05f1af8d575ff940e0c76 gcc/config/dbxcoff.h ad58fb2666fa68834ef425036a33e796 gcc/config/dbxelf.h --- 3360,3374 ---- eb052b8d01bcc66ec2df70dc2fa9613d gcc/config/csky/t-csky-elf 1026cc867bc5f4fec333b6048114963e gcc/config/csky/t-csky-linux 9d4fc2f4697ee7f8aa6e4217e0a103fb gcc/config/csky/t-sysroot-suffix ! 8245011ff3cdae26a5ae84a60707dff0 gcc/config/darwin-c.c ! 6a83956230938a0685d626fa3eee5341 gcc/config/darwin-driver.c a3ce364c42d20501f7ff53cea9c94af3 gcc/config/darwin-f.c 73063d81d9e8ccfb36b462a062f0f3da gcc/config/darwin-ppc-ldouble-patch.def bf622b24f99b32a50572bc7a96cfe612 gcc/config/darwin-protos.h ! 69e84f6bd9c7313a9ae6893ebbb889d7 gcc/config/darwin-sections.def ! c0064773917e263b67dfab93c68f7e1f gcc/config/darwin.c ! 5390518b50e0a967755fd4eef1cf1ae4 gcc/config/darwin.h ! d8c7012757245e277db480f7772ef9f7 gcc/config/darwin.opt 22ef11e2b04fb7440bd17058f103745f gcc/config/dbx.h 3af56e740de05f1af8d575ff940e0c76 gcc/config/dbxcoff.h ad58fb2666fa68834ef425036a33e796 gcc/config/dbxelf.h *************** ba03bec1b5b42479d08bafd50432bfb6 gcc/co *** 3484,3492 **** e858463aa18e541bb926ca013db00830 gcc/config/i386/avx512bitalgintrin.h e6896c24e23ba9bb59f65f7eea7d814b gcc/config/i386/avx512bwintrin.h 3b517b5dacb8f1ca675f305ca1f76828 gcc/config/i386/avx512cdintrin.h ! 1dd1837e886e1a52f02d2aa3f67182d2 gcc/config/i386/avx512dqintrin.h 43bf9d7c74dc1f9290224f374d6f469d gcc/config/i386/avx512erintrin.h ! 0ff3fb865adabd6ab8aea106096d433f gcc/config/i386/avx512fintrin.h 6c19b1782d389e155a239932643ccfe5 gcc/config/i386/avx512ifmaintrin.h ac74b24ec10ff04dae6993be08616614 gcc/config/i386/avx512ifmavlintrin.h 8da3bc9ec56da67548b118f1ba2e3a35 gcc/config/i386/avx512pfintrin.h --- 3490,3498 ---- e858463aa18e541bb926ca013db00830 gcc/config/i386/avx512bitalgintrin.h e6896c24e23ba9bb59f65f7eea7d814b gcc/config/i386/avx512bwintrin.h 3b517b5dacb8f1ca675f305ca1f76828 gcc/config/i386/avx512cdintrin.h ! 4d349589fc15e2c60bfdee5d3ea9ee5c gcc/config/i386/avx512dqintrin.h 43bf9d7c74dc1f9290224f374d6f469d gcc/config/i386/avx512erintrin.h ! 771f52a45ba3b64196206910c46e06d0 gcc/config/i386/avx512fintrin.h 6c19b1782d389e155a239932643ccfe5 gcc/config/i386/avx512ifmaintrin.h ac74b24ec10ff04dae6993be08616614 gcc/config/i386/avx512ifmavlintrin.h 8da3bc9ec56da67548b118f1ba2e3a35 gcc/config/i386/avx512pfintrin.h *************** bfcd3e6fd3b7ade4cad500b08492030c gcc/co *** 3532,3540 **** 1b2dce662c4d7271e97d8cf48d79873b gcc/config/i386/cygwin-w64.h a920dc760960c1ed02cc219a810b4b04 gcc/config/i386/cygwin.h a7241e61e02eb91d00b8df74f7331812 gcc/config/i386/cygwin.opt ! 75e0432a057f52d12ba859bb128f61ce gcc/config/i386/darwin.h ! 312f5339ec0f349e7303541f581bd417 gcc/config/i386/darwin32-biarch.h ! 6c01a2b4ab703b71d8ec42767643d9ac gcc/config/i386/darwin64-biarch.h 5985a490a4884c362bb49d078c8264b9 gcc/config/i386/djgpp-stdint.h 420571d0f5f100779b738d6706f3f4f9 gcc/config/i386/djgpp.c 1c900766d45d7583affccb7ad7b02756 gcc/config/i386/djgpp.h --- 3538,3546 ---- 1b2dce662c4d7271e97d8cf48d79873b gcc/config/i386/cygwin-w64.h a920dc760960c1ed02cc219a810b4b04 gcc/config/i386/cygwin.h a7241e61e02eb91d00b8df74f7331812 gcc/config/i386/cygwin.opt ! b4c2e389d8862b616eaacf6eebc6b176 gcc/config/i386/darwin.h ! 8783d472c4a43c5b43260471ceff1ef9 gcc/config/i386/darwin32-biarch.h ! 03fa7de16c00878c50253b1a0bdaf09c gcc/config/i386/darwin64-biarch.h 5985a490a4884c362bb49d078c8264b9 gcc/config/i386/djgpp-stdint.h 420571d0f5f100779b738d6706f3f4f9 gcc/config/i386/djgpp.c 1c900766d45d7583affccb7ad7b02756 gcc/config/i386/djgpp.h *************** a272fd26d6041bc4515b6896c00c0a72 gcc/co *** 3567,3577 **** 7c05e9e74dcafa1fbe9d1675caea25f6 gcc/config/i386/i386-builtin-types.awk ec29ccbc1d26aeb4e0ec2191e078e9ba gcc/config/i386/i386-builtin-types.def 5ab7f189cd953b5beee2d6f0c6edeb15 gcc/config/i386/i386-builtin.def ! aa49b8b957261bb05f06e5ff6ff21fb2 gcc/config/i386/i386-builtins.c aaba1d7f3051425031a61c126ca09427 gcc/config/i386/i386-builtins.h d92b63960664e87350adffa54bc9614e gcc/config/i386/i386-c.c 0716ad09835ba6d14c45620bd88d07f9 gcc/config/i386/i386-d.c ! 705f51b3f8944c285185fd597bdc867a gcc/config/i386/i386-expand.c a6e63c2f63741f10d6b63d604468a9df gcc/config/i386/i386-expand.h d61c17f8e6169b83fc0be7d562ccd661 gcc/config/i386/i386-features.c 608d27b39a4b79afc971e416cb13f3f8 gcc/config/i386/i386-features.h --- 3573,3583 ---- 7c05e9e74dcafa1fbe9d1675caea25f6 gcc/config/i386/i386-builtin-types.awk ec29ccbc1d26aeb4e0ec2191e078e9ba gcc/config/i386/i386-builtin-types.def 5ab7f189cd953b5beee2d6f0c6edeb15 gcc/config/i386/i386-builtin.def ! 3defe9579bdfc8b73dade84e73328e2f gcc/config/i386/i386-builtins.c aaba1d7f3051425031a61c126ca09427 gcc/config/i386/i386-builtins.h d92b63960664e87350adffa54bc9614e gcc/config/i386/i386-c.c 0716ad09835ba6d14c45620bd88d07f9 gcc/config/i386/i386-d.c ! 8946ee03d1901bacff463415edc68bf9 gcc/config/i386/i386-expand.c a6e63c2f63741f10d6b63d604468a9df gcc/config/i386/i386-expand.h d61c17f8e6169b83fc0be7d562ccd661 gcc/config/i386/i386-features.c 608d27b39a4b79afc971e416cb13f3f8 gcc/config/i386/i386-features.h *************** b3e9baa55fb8746055ad945e5fbe38b8 gcc/co *** 3581,3589 **** 924c47602884a3f6573760aad71baf6c gcc/config/i386/i386-opts.h 942113f86f41f99e3b37fa463f0e076d gcc/config/i386/i386-passes.def f674f550c6872e8fdd37477ce2bff33d gcc/config/i386/i386-protos.h ! 3e30edb12c270c0f5cf123527c492b03 gcc/config/i386/i386.c 0e4f35e441236b8bea5403cb6607d1ef gcc/config/i386/i386.h ! 387ac5de1d771e165eb944b2c697590d gcc/config/i386/i386.md f766df0b13effe8c4f16b6991a53f84d gcc/config/i386/i386.opt c58df180ee34f0f28fc135d0ec98da21 gcc/config/i386/i386elf.h f936c0131591cc882312338cc5f1c56f gcc/config/i386/ia32intrin.h --- 3587,3595 ---- 924c47602884a3f6573760aad71baf6c gcc/config/i386/i386-opts.h 942113f86f41f99e3b37fa463f0e076d gcc/config/i386/i386-passes.def f674f550c6872e8fdd37477ce2bff33d gcc/config/i386/i386-protos.h ! b470de4780b8f45c3d9420def4d34691 gcc/config/i386/i386.c 0e4f35e441236b8bea5403cb6607d1ef gcc/config/i386/i386.h ! 433ba8c53844ebf5c9dd4240e81baaca gcc/config/i386/i386.md f766df0b13effe8c4f16b6991a53f84d gcc/config/i386/i386.opt c58df180ee34f0f28fc135d0ec98da21 gcc/config/i386/i386elf.h f936c0131591cc882312338cc5f1c56f gcc/config/i386/ia32intrin.h *************** b536f806896e5b96bf8c7ca33d07c56e gcc/co *** 3638,3648 **** f6b0a9b38fc804adcd8a679d1d1a298d gcc/config/i386/slm.md 4530deeaee608a58494762629aba3c83 gcc/config/i386/smmintrin.h 59a6647bb24abb7905b8ebad61cdf12b gcc/config/i386/sol2.h ! 1467e4a280bdbd255546bbb8598bdca1 gcc/config/i386/sse.md 25052628dbb6b92ee7352816628eafbc gcc/config/i386/ssemath.h 5a6204853f559cf5c23ad0cbdbde8d0a gcc/config/i386/stringop.def fcd2b90fc8aa0ee423309f1e928ac5f3 gcc/config/i386/subst.md ! 028440a1d000aebcd2eba797d53e8f46 gcc/config/i386/sync.md 6d2764479e7c7b7a1dfed63be9438478 gcc/config/i386/sysv4.h 6dc10eff36b3c555147afb6569d74500 gcc/config/i386/t-cet 5e1cda24cd3b7d11404571c8c71cb94d gcc/config/i386/t-cygming --- 3644,3654 ---- f6b0a9b38fc804adcd8a679d1d1a298d gcc/config/i386/slm.md 4530deeaee608a58494762629aba3c83 gcc/config/i386/smmintrin.h 59a6647bb24abb7905b8ebad61cdf12b gcc/config/i386/sol2.h ! cc39af3c507dc63bc5aae9769239219a gcc/config/i386/sse.md 25052628dbb6b92ee7352816628eafbc gcc/config/i386/ssemath.h 5a6204853f559cf5c23ad0cbdbde8d0a gcc/config/i386/stringop.def fcd2b90fc8aa0ee423309f1e928ac5f3 gcc/config/i386/subst.md ! 07c4fc30e106775702033cecafab2ff4 gcc/config/i386/sync.md 6d2764479e7c7b7a1dfed63be9438478 gcc/config/i386/sysv4.h 6dc10eff36b3c555147afb6569d74500 gcc/config/i386/t-cet 5e1cda24cd3b7d11404571c8c71cb94d gcc/config/i386/t-cygming *************** ef13120be07c13003daf6ed35e2db4d2 gcc/co *** 3677,3683 **** bd8b132073529509e4eec0c3d8dac773 gcc/config/i386/wbnoinvdintrin.h c571a8f09f75ab0a907408a6dd802375 gcc/config/i386/winnt-cxx.c 1ee05eae42bdbb467aa6243c812ca748 gcc/config/i386/winnt-stubs.c ! bf098ec2244c653d0631ee06c9e1cbdb gcc/config/i386/winnt.c 2a10c624dc7734e0c224e0fdd7a68c66 gcc/config/i386/wmmintrin.h 627c3e925a142fb6d2a14368fb637f28 gcc/config/i386/x-cygwin bae69273c5e47d61e99558ca73c4fabd gcc/config/i386/x-darwin --- 3683,3689 ---- bd8b132073529509e4eec0c3d8dac773 gcc/config/i386/wbnoinvdintrin.h c571a8f09f75ab0a907408a6dd802375 gcc/config/i386/winnt-cxx.c 1ee05eae42bdbb467aa6243c812ca748 gcc/config/i386/winnt-stubs.c ! 6ecb357c171787bb6534a9bdd2eee478 gcc/config/i386/winnt.c 2a10c624dc7734e0c224e0fdd7a68c66 gcc/config/i386/wmmintrin.h 627c3e925a142fb6d2a14368fb637f28 gcc/config/i386/x-cygwin bae69273c5e47d61e99558ca73c4fabd gcc/config/i386/x-darwin *************** ac6725a95f273de60b9b3463b44c1aad gcc/co *** 3906,3912 **** bd088aa1b8b747e9c435d336ff7ded95 gcc/config/mips/mips-protos.h 3613c4c901769d3242c7bcaecbd1127c gcc/config/mips/mips-ps-3d.md f50a957373d54fcdd5924d8ee73debce gcc/config/mips/mips-tables.opt ! 430da2f9061824c02b6a34eabac739a1 gcc/config/mips/mips.c d7ca6bc4237a57d1093e4b11cad67198 gcc/config/mips/mips.h 79e0c33334d2d85258cc65b3e2d00a39 gcc/config/mips/mips.md 0c18b24e94fdbc8d4e16ccd81dac2622 gcc/config/mips/mips.opt --- 3912,3918 ---- bd088aa1b8b747e9c435d336ff7ded95 gcc/config/mips/mips-protos.h 3613c4c901769d3242c7bcaecbd1127c gcc/config/mips/mips-ps-3d.md f50a957373d54fcdd5924d8ee73debce gcc/config/mips/mips-tables.opt ! c519602b709d11f1727b979aabee71c5 gcc/config/mips/mips.c d7ca6bc4237a57d1093e4b11cad67198 gcc/config/mips/mips.h 79e0c33334d2d85258cc65b3e2d00a39 gcc/config/mips/mips.md 0c18b24e94fdbc8d4e16ccd81dac2622 gcc/config/mips/mips.opt *************** b1dd3bb66ec6a2729fd8f218492bd12f gcc/co *** 4074,4080 **** c2aabf1e8738380511a66426506fe906 gcc/config/nvptx/nvptx-modes.def f69e8296d0faf31ac6e0c63114465e34 gcc/config/nvptx/nvptx-opts.h 6bc8bb882a5681c91d3230b7025912fa gcc/config/nvptx/nvptx-protos.h ! 42e08da3570deec40963c67e54eede38 gcc/config/nvptx/nvptx.c 57339b7de27558e634bb329734f050d2 gcc/config/nvptx/nvptx.h 391495ed22dce89f4982984d68ac1335 gcc/config/nvptx/nvptx.md 99e673a4a625e68b02c366b8775cd2ab gcc/config/nvptx/nvptx.opt --- 4080,4086 ---- c2aabf1e8738380511a66426506fe906 gcc/config/nvptx/nvptx-modes.def f69e8296d0faf31ac6e0c63114465e34 gcc/config/nvptx/nvptx-opts.h 6bc8bb882a5681c91d3230b7025912fa gcc/config/nvptx/nvptx-protos.h ! 759f0b3b228fc78cd6d628b68dd69fdb gcc/config/nvptx/nvptx.c 57339b7de27558e634bb329734f050d2 gcc/config/nvptx/nvptx.h 391495ed22dce89f4982984d68ac1335 gcc/config/nvptx/nvptx.md 99e673a4a625e68b02c366b8775cd2ab gcc/config/nvptx/nvptx.opt *************** b8ee5c8677ab43e55b9f7e62764c4a04 gcc/co *** 4121,4127 **** 600cc6b55002e21d4f050a4ffa931a47 gcc/config/pa/pa-protos.h 4eed25740d2f252c2127973493e76427 gcc/config/pa/pa.c 729ac301be06873dad20c162c59219d4 gcc/config/pa/pa.h ! 1169398b9e95832e13ee896f35eaaabe gcc/config/pa/pa.md 37c733417df67fda01071ce53eb5d250 gcc/config/pa/pa.opt cc3cc3d1899ff4f5cb88c2f9bafacd29 gcc/config/pa/pa32-linux.h 06da5dd5b5dd2bc20c1c12095a44d29a gcc/config/pa/pa32-netbsd.h --- 4127,4133 ---- 600cc6b55002e21d4f050a4ffa931a47 gcc/config/pa/pa-protos.h 4eed25740d2f252c2127973493e76427 gcc/config/pa/pa.c 729ac301be06873dad20c162c59219d4 gcc/config/pa/pa.h ! cd7bb163f20674428581348567e76c88 gcc/config/pa/pa.md 37c733417df67fda01071ce53eb5d250 gcc/config/pa/pa.opt cc3cc3d1899ff4f5cb88c2f9bafacd29 gcc/config/pa/pa32-linux.h 06da5dd5b5dd2bc20c1c12095a44d29a gcc/config/pa/pa32-netbsd.h *************** f60d94e10e9a0c6a4ddae1f3aae0bbc4 gcc/co *** 4180,4193 **** 1d3e84dbcb5e84dea4f3b3d34184af04 gcc/config/riscv/riscv.c ce01b3abd3639dab925bc8049f0f34e9 gcc/config/riscv/riscv.h c8a3e3e9cfba0a473b34470198d444c5 gcc/config/riscv/riscv.md ! 74bd90ecbb49ef32ca8e24c1d51b6a14 gcc/config/riscv/riscv.opt fedc147af199790c80324872da7c22fd gcc/config/riscv/rtems.h 462630614e6e7a6209f8f18b6dff0eef gcc/config/riscv/sifive-7.md ed1fdbe0c1c20ab8b5dcf70240fcf773 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 ! 4a5605eae04350fd2184c710bde05984 gcc/config/riscv/t-riscv 7dbd61c5a07b1adefe5429a41008fda5 gcc/config/riscv/t-rtems 97a182737ed075d29be4ab1e848de420 gcc/config/riscv/t-withmultilib 486709f8942421d456e5b94085284446 gcc/config/riscv/withmultilib.h --- 4186,4199 ---- 1d3e84dbcb5e84dea4f3b3d34184af04 gcc/config/riscv/riscv.c ce01b3abd3639dab925bc8049f0f34e9 gcc/config/riscv/riscv.h c8a3e3e9cfba0a473b34470198d444c5 gcc/config/riscv/riscv.md ! fab8909ad9505fa94301777452b2e4b2 gcc/config/riscv/riscv.opt fedc147af199790c80324872da7c22fd gcc/config/riscv/rtems.h 462630614e6e7a6209f8f18b6dff0eef gcc/config/riscv/sifive-7.md ed1fdbe0c1c20ab8b5dcf70240fcf773 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 ! 88d091028dad5704f548cef50bdb36d0 gcc/config/riscv/t-riscv 7dbd61c5a07b1adefe5429a41008fda5 gcc/config/riscv/t-rtems 97a182737ed075d29be4ab1e848de420 gcc/config/riscv/t-withmultilib 486709f8942421d456e5b94085284446 gcc/config/riscv/withmultilib.h *************** ad318a17a4307a22eada2a5387cd16ec gcc/co *** 4218,4239 **** 4381332fa92fd885a05151d778b8d2c9 gcc/config/rs6000/8540.md 47fe2b87a3829fbda02fde06a5c50069 gcc/config/rs6000/a2.md f33ab722a2d7283c751e7a708083d57f gcc/config/rs6000/aix-stdint.h ! 7913c25135924b6b6b4db7c0f79efa59 gcc/config/rs6000/aix.h 87c3de3f3baac62cde742ec311e2ea93 gcc/config/rs6000/aix61.h ! 8621952139923f16a93c35b6195372f1 gcc/config/rs6000/aix64.opt 970bd741336f3b6ad6cfc92047dda24d gcc/config/rs6000/aix71.h 3c332f07ff88aa9b8b7a951dfefb7edd gcc/config/rs6000/aix72.h ! c82150f37c90c7b09ce07d57173e6e1f gcc/config/rs6000/altivec.h ee08238bb2eff082213c3fc4e1476fed gcc/config/rs6000/altivec.md 174cef0139277020d6daf3b4321db0a7 gcc/config/rs6000/amo.h 7ad82036aad04f9e4b357a24e5c58941 gcc/config/rs6000/biarch64.h ! 3e51a92868e87279a0a9f776a0e25540 gcc/config/rs6000/bmi2intrin.h ffe5a1b05a5bc7b5d48543e8f9cc1617 gcc/config/rs6000/bmiintrin.h 127cf4899b4c067a85e987ef05ab96bc gcc/config/rs6000/cell.md 8105d2f95a648b8b23310cff56eafb21 gcc/config/rs6000/constraints.md eca2a693ca9c1f44feaed0a002fae93f gcc/config/rs6000/crypto.md ! 72c76656d6836b2f52e600ad3656aa68 gcc/config/rs6000/darwin.h ! 326ad273d6d1fa12fa4b88506a687a95 gcc/config/rs6000/darwin.md 432601bc5143ba8b393398fc2d9330a5 gcc/config/rs6000/darwin.opt 6bfd3c06ee79689ef4eead5c4e77124d gcc/config/rs6000/darwin32-biarch.h e751b266aa2120ce44c4880910c66d58 gcc/config/rs6000/darwin64-biarch.h --- 4224,4245 ---- 4381332fa92fd885a05151d778b8d2c9 gcc/config/rs6000/8540.md 47fe2b87a3829fbda02fde06a5c50069 gcc/config/rs6000/a2.md f33ab722a2d7283c751e7a708083d57f gcc/config/rs6000/aix-stdint.h ! fbd21a42c0d3b5f25bda9e10bf0cd98f gcc/config/rs6000/aix.h 87c3de3f3baac62cde742ec311e2ea93 gcc/config/rs6000/aix61.h ! 82ef85e358d2598d3ba144da5be2973a gcc/config/rs6000/aix64.opt 970bd741336f3b6ad6cfc92047dda24d gcc/config/rs6000/aix71.h 3c332f07ff88aa9b8b7a951dfefb7edd gcc/config/rs6000/aix72.h ! 975f12ffc6142ba7007e18bffb8b74a9 gcc/config/rs6000/altivec.h ee08238bb2eff082213c3fc4e1476fed gcc/config/rs6000/altivec.md 174cef0139277020d6daf3b4321db0a7 gcc/config/rs6000/amo.h 7ad82036aad04f9e4b357a24e5c58941 gcc/config/rs6000/biarch64.h ! a9aaa787bd2443098906c961fd8b8977 gcc/config/rs6000/bmi2intrin.h ffe5a1b05a5bc7b5d48543e8f9cc1617 gcc/config/rs6000/bmiintrin.h 127cf4899b4c067a85e987ef05ab96bc gcc/config/rs6000/cell.md 8105d2f95a648b8b23310cff56eafb21 gcc/config/rs6000/constraints.md eca2a693ca9c1f44feaed0a002fae93f gcc/config/rs6000/crypto.md ! 9a43f9c48bca6bdc9ac2425d003502c1 gcc/config/rs6000/darwin.h ! 4e86fb38ff9f5f0f8a6bb6e4d03986b2 gcc/config/rs6000/darwin.md 432601bc5143ba8b393398fc2d9330a5 gcc/config/rs6000/darwin.opt 6bfd3c06ee79689ef4eead5c4e77124d gcc/config/rs6000/darwin32-biarch.h e751b266aa2120ce44c4880910c66d58 gcc/config/rs6000/darwin64-biarch.h *************** b3cc72b8ae0ab3ef6d91521a5fcec2c1 gcc/co *** 4249,4255 **** adb51c0ede7af39901c908ef90b8ce02 gcc/config/rs6000/eabi.h 6f4ef6cba2a5a2954d623838b646b8f6 gcc/config/rs6000/eabialtivec.h 1d32f0357e8ebb371e436642b329216c gcc/config/rs6000/eabisim.h ! 00ac4af2f26f595d33160122f1aeb09d gcc/config/rs6000/emmintrin.h d38e4a0ca30e43063770e42f8b82b318 gcc/config/rs6000/freebsd.h 7ad43b5e10f2d469477c6bb354643b76 gcc/config/rs6000/freebsd64.h 39fd75208b3401fd5ec3058c3547e1c3 gcc/config/rs6000/genopt.sh --- 4255,4261 ---- adb51c0ede7af39901c908ef90b8ce02 gcc/config/rs6000/eabi.h 6f4ef6cba2a5a2954d623838b646b8f6 gcc/config/rs6000/eabialtivec.h 1d32f0357e8ebb371e436642b329216c gcc/config/rs6000/eabisim.h ! 98a82ea1a705f5657c2c94b15e0fcdce gcc/config/rs6000/emmintrin.h d38e4a0ca30e43063770e42f8b82b318 gcc/config/rs6000/freebsd.h 7ad43b5e10f2d469477c6bb354643b76 gcc/config/rs6000/freebsd64.h 39fd75208b3401fd5ec3058c3547e1c3 gcc/config/rs6000/genopt.sh *************** a5b14520695a7ce5f93998a8fa3eea35 gcc/co *** 4264,4276 **** aab6a02122e8086655ea2092bf5e8277 gcc/config/rs6000/linuxaltivec.h 28eb56aa72960c68f1ce93a0dcbbb50a gcc/config/rs6000/lynx.h 0cc3c5f9101501b8253ce3176c3ffce4 gcc/config/rs6000/milli.exp ! b6fc09392c42f3e842f22bfdc03be49a gcc/config/rs6000/mm_malloc.h ! 71078d5c6ec0f418e1f2a767fe00d34a gcc/config/rs6000/mma.md ! 5faae5d262f8fe7e0e4b93be7c651310 gcc/config/rs6000/mmintrin.h 61382586f43f8c34149111f3808e03ea gcc/config/rs6000/mpc.md a24c854cbca4a77aa796b28b86a7a75d gcc/config/rs6000/netbsd.h 9dddbc6ce32fc9f189af4c45ff4bdc3c gcc/config/rs6000/option-defaults.h ! b24b9fba4116847326388c33dad0ca30 gcc/config/rs6000/pmmintrin.h f5ba99782614874631476169c08e7c89 gcc/config/rs6000/power10.md dbb156aa36d6c59e70d636f7196b08bc gcc/config/rs6000/power4.md c70bb269e55104b36b354fb12e4d9880 gcc/config/rs6000/power5.md --- 4270,4282 ---- aab6a02122e8086655ea2092bf5e8277 gcc/config/rs6000/linuxaltivec.h 28eb56aa72960c68f1ce93a0dcbbb50a gcc/config/rs6000/lynx.h 0cc3c5f9101501b8253ce3176c3ffce4 gcc/config/rs6000/milli.exp ! 98f09db1ffe97c8473d50fb913fd6ab8 gcc/config/rs6000/mm_malloc.h ! 8e6de36e638d6e0c31a610ea612b77db gcc/config/rs6000/mma.md ! 903bfc71f26415e8a7cc0fd94e81ac0d gcc/config/rs6000/mmintrin.h 61382586f43f8c34149111f3808e03ea gcc/config/rs6000/mpc.md a24c854cbca4a77aa796b28b86a7a75d gcc/config/rs6000/netbsd.h 9dddbc6ce32fc9f189af4c45ff4bdc3c gcc/config/rs6000/option-defaults.h ! 0595687d25ef91484869f761e8f2c9cb gcc/config/rs6000/pmmintrin.h f5ba99782614874631476169c08e7c89 gcc/config/rs6000/power10.md dbb156aa36d6c59e70d636f7196b08bc gcc/config/rs6000/power4.md c70bb269e55104b36b354fb12e4d9880 gcc/config/rs6000/power5.md *************** a63bced0c9173139737e131cba03b033 gcc/co *** 4278,4306 **** 3dd3209f341105ff5b3dfc5eaec88b8f gcc/config/rs6000/power7.md 7a511293f597b257085ff152392293cf gcc/config/rs6000/power8.md b363744cf555db6f21cf65583a9f1d22 gcc/config/rs6000/power9.md ! 7b2b59e840776fe051a5e7d7f9025c5b gcc/config/rs6000/ppc-asm.h 60e0334a510e1ca34a137e003ab080c5 gcc/config/rs6000/ppc-auxv.h 211f86e3790aaa31e29fab4dd00a1963 gcc/config/rs6000/ppu_intrinsics.h ! 61d4eaea3877c9a2976067fda9d3e5df gcc/config/rs6000/predicates.md ! cf12165e4a785bafe38975f056fd2b33 gcc/config/rs6000/rs6000-builtin.def f6f55a2f1cdc9dc92c82f727c8adc32f gcc/config/rs6000/rs6000-c.c ! d2cd066fab50ec564805b8e818f80a03 gcc/config/rs6000/rs6000-call.c 24fc94e29ab1ae855818c037fa366b61 gcc/config/rs6000/rs6000-cpus.def 48f25a13b4c16bbf8abc640b18baaf04 gcc/config/rs6000/rs6000-d.c 6ca6ecc62264d6525efb0303f303fbcb gcc/config/rs6000/rs6000-internal.h 0680e4bef9d435c70ff0b0346875dc7e gcc/config/rs6000/rs6000-linux.c ! e25bd37cb4cb46e8bca3b8fe77cf1f49 gcc/config/rs6000/rs6000-logue.c 6019ce43647fb67478f67b0014f9e197 gcc/config/rs6000/rs6000-modes.def 74d680e195ea101592ac1b6839d532c6 gcc/config/rs6000/rs6000-modes.h 478e6c4e3fffd52cc5f65d8201180f4e gcc/config/rs6000/rs6000-opts.h ! 0d18db3973ed0496c5a7c9494302ef24 gcc/config/rs6000/rs6000-p8swap.c 5deaf0e53bbb270a90617edbf89b93c3 gcc/config/rs6000/rs6000-passes.def 563c0ef0afd159a301260d7c6cda4949 gcc/config/rs6000/rs6000-protos.h d6ec81c1ffdb5849dc866b5ef0282b43 gcc/config/rs6000/rs6000-string.c 6cd7b03a52d165ce37498421647b2870 gcc/config/rs6000/rs6000-tables.opt ! 4415d51d87b17aac8a5ea0aff420002e gcc/config/rs6000/rs6000.c fd2cd530c3bbd8742e0822bf27d471a6 gcc/config/rs6000/rs6000.h ! 8575069a4bac51a089b88ba8b57cd6fe gcc/config/rs6000/rs6000.md ae694700cb8a354c30bddf5dbacf3a24 gcc/config/rs6000/rs6000.opt f783f97dd8ba81866de4caa94379cf5d gcc/config/rs6000/rs64.md d243ba917805636d3fe964e1bf471023 gcc/config/rs6000/rtems.h --- 4284,4312 ---- 3dd3209f341105ff5b3dfc5eaec88b8f gcc/config/rs6000/power7.md 7a511293f597b257085ff152392293cf gcc/config/rs6000/power8.md b363744cf555db6f21cf65583a9f1d22 gcc/config/rs6000/power9.md ! 40f7ffdd2608568f7fd7f6409b2cbc3a gcc/config/rs6000/ppc-asm.h 60e0334a510e1ca34a137e003ab080c5 gcc/config/rs6000/ppc-auxv.h 211f86e3790aaa31e29fab4dd00a1963 gcc/config/rs6000/ppu_intrinsics.h ! 7e6fd595a1bb7a2b1d7f28e57371bf76 gcc/config/rs6000/predicates.md ! b06b4c14ef553fb94b2752881acc1e96 gcc/config/rs6000/rs6000-builtin.def f6f55a2f1cdc9dc92c82f727c8adc32f gcc/config/rs6000/rs6000-c.c ! 9d0a1b571c870005758432518a2845c5 gcc/config/rs6000/rs6000-call.c 24fc94e29ab1ae855818c037fa366b61 gcc/config/rs6000/rs6000-cpus.def 48f25a13b4c16bbf8abc640b18baaf04 gcc/config/rs6000/rs6000-d.c 6ca6ecc62264d6525efb0303f303fbcb gcc/config/rs6000/rs6000-internal.h 0680e4bef9d435c70ff0b0346875dc7e gcc/config/rs6000/rs6000-linux.c ! aab54ac81dac88e8d89473d3573a122b gcc/config/rs6000/rs6000-logue.c 6019ce43647fb67478f67b0014f9e197 gcc/config/rs6000/rs6000-modes.def 74d680e195ea101592ac1b6839d532c6 gcc/config/rs6000/rs6000-modes.h 478e6c4e3fffd52cc5f65d8201180f4e gcc/config/rs6000/rs6000-opts.h ! f7884f4cd0dd4f9cfc379ac21ac69663 gcc/config/rs6000/rs6000-p8swap.c 5deaf0e53bbb270a90617edbf89b93c3 gcc/config/rs6000/rs6000-passes.def 563c0ef0afd159a301260d7c6cda4949 gcc/config/rs6000/rs6000-protos.h d6ec81c1ffdb5849dc866b5ef0282b43 gcc/config/rs6000/rs6000-string.c 6cd7b03a52d165ce37498421647b2870 gcc/config/rs6000/rs6000-tables.opt ! ffe366bf96fd9c4aa5ba72c1168a3c1d gcc/config/rs6000/rs6000.c fd2cd530c3bbd8742e0822bf27d471a6 gcc/config/rs6000/rs6000.h ! 90a382b8e502b89311ca1fc96763da99 gcc/config/rs6000/rs6000.md ae694700cb8a354c30bddf5dbacf3a24 gcc/config/rs6000/rs6000.opt f783f97dd8ba81866de4caa94379cf5d gcc/config/rs6000/rs64.md d243ba917805636d3fe964e1bf471023 gcc/config/rs6000/rtems.h *************** f26fbf7a1adb516aabc60b157bff7620 gcc/co *** 4334,4342 **** f11925c88524d2fd457bf77944da1302 gcc/config/rs6000/t-vxworksae 3f0601a68de7a0aee8264b538228d943 gcc/config/rs6000/t-vxworksmils 9107271d48c741591ed5e4a92925d84b gcc/config/rs6000/titan.md ! 7b1e2f439e6bc01c529a8a58fcdec732 gcc/config/rs6000/tmmintrin.h 9376354b2d5ece1437c8903ce64d70ad gcc/config/rs6000/vec_types.h ! d14f3dc62c5e064004d6e6dcd2713156 gcc/config/rs6000/vector.md 69b1644a956e3d3ef91b856c86941ccb gcc/config/rs6000/vsx.md 6d50c0c76d5f156088c6f113c2ef3f81 gcc/config/rs6000/vxworks.h b6ff8b73a277bd9533ebb88d01316d55 gcc/config/rs6000/vxworksae.h --- 4340,4348 ---- f11925c88524d2fd457bf77944da1302 gcc/config/rs6000/t-vxworksae 3f0601a68de7a0aee8264b538228d943 gcc/config/rs6000/t-vxworksmils 9107271d48c741591ed5e4a92925d84b gcc/config/rs6000/titan.md ! 2ca41cab19b6389c4c67d9dedf3e7cf9 gcc/config/rs6000/tmmintrin.h 9376354b2d5ece1437c8903ce64d70ad gcc/config/rs6000/vec_types.h ! 7071fb4ff78f27f75390163fc4cf4df3 gcc/config/rs6000/vector.md 69b1644a956e3d3ef91b856c86941ccb gcc/config/rs6000/vsx.md 6d50c0c76d5f156088c6f113c2ef3f81 gcc/config/rs6000/vxworks.h b6ff8b73a277bd9533ebb88d01316d55 gcc/config/rs6000/vxworksae.h *************** af875b9bcb1ec1da1f33d5e34df8ca7b gcc/co *** 4348,4354 **** 1aff8cb3714b63b6c3367f552dae743f gcc/config/rs6000/x-rs6000 699438376f6e4dc3ef37a1ec63277e85 gcc/config/rs6000/x86intrin.h 67a9f42301677a09272432835955a27d gcc/config/rs6000/xcoff.h ! 285ba08bc485c243e5d79d05c57226e7 gcc/config/rs6000/xmmintrin.h 673ce4c8c33a932ce1baa7fbc9621388 gcc/config/rtems.h f26f246b25c615ef8d0cc7eb8f05403c gcc/config/rtems.opt 992fe3bece71f0f5348cf6f4f498f847 gcc/config/rx/constraints.md --- 4354,4360 ---- 1aff8cb3714b63b6c3367f552dae743f gcc/config/rs6000/x-rs6000 699438376f6e4dc3ef37a1ec63277e85 gcc/config/rs6000/x86intrin.h 67a9f42301677a09272432835955a27d gcc/config/rs6000/xcoff.h ! c013b6e168478969d10893c9d6c133fb gcc/config/rs6000/xmmintrin.h 673ce4c8c33a932ce1baa7fbc9621388 gcc/config/rtems.h f26f246b25c615ef8d0cc7eb8f05403c gcc/config/rtems.opt 992fe3bece71f0f5348cf6f4f498f847 gcc/config/rx/constraints.md *************** e3e94c066797685d8a2622b1c5957f4d gcc/co *** 4389,4395 **** b0455af5364399ae3ba243b620c905d9 gcc/config/s390/s390-protos.h a004804c184ed76916393fe8a1947b8a gcc/config/s390/s390.c 0941f9097350fe7d34af5c92f0ecb0e4 gcc/config/s390/s390.h ! 5607cbff8f1ba849ee9e00308b50152a gcc/config/s390/s390.md db7d06c04b3bf2d126240250a0a51879 gcc/config/s390/s390.opt ba0d65505653fe3c086f99808dab58a0 gcc/config/s390/s390intrin.h 0fa5845393381f5fc691db262b97d863 gcc/config/s390/s390x.h --- 4395,4401 ---- b0455af5364399ae3ba243b620c905d9 gcc/config/s390/s390-protos.h a004804c184ed76916393fe8a1947b8a gcc/config/s390/s390.c 0941f9097350fe7d34af5c92f0ecb0e4 gcc/config/s390/s390.h ! f938a4b95c73cf651790b4e15cff273a gcc/config/s390/s390.md db7d06c04b3bf2d126240250a0a51879 gcc/config/s390/s390.opt ba0d65505653fe3c086f99808dab58a0 gcc/config/s390/s390intrin.h 0fa5845393381f5fc691db262b97d863 gcc/config/s390/s390x.h *************** ba0d65505653fe3c086f99808dab58a0 gcc/co *** 4399,4405 **** e37aabde17c8b561ad3c102d4a1cbf5b gcc/config/s390/tpf.h 6fa077116f1cbc5762ff181fc398ed79 gcc/config/s390/tpf.md 3f2768d9d3982dc1d6d1cfa890c28787 gcc/config/s390/tpf.opt ! 91270f5af620cd05e4b5bb0bd35ae881 gcc/config/s390/vecintrin.h 8b56860d17bb2ce903906c4b5b704037 gcc/config/s390/vector.md f58fcaabc56c48c98716508979fa7efd gcc/config/s390/vx-builtins.md 19876f77a242921272972ac5b8bd32d0 gcc/config/s390/x-native --- 4405,4411 ---- e37aabde17c8b561ad3c102d4a1cbf5b gcc/config/s390/tpf.h 6fa077116f1cbc5762ff181fc398ed79 gcc/config/s390/tpf.md 3f2768d9d3982dc1d6d1cfa890c28787 gcc/config/s390/tpf.opt ! 2ce3bbcfaf6d87d103b75b35fb10e552 gcc/config/s390/vecintrin.h 8b56860d17bb2ce903906c4b5b704037 gcc/config/s390/vector.md f58fcaabc56c48c98716508979fa7efd gcc/config/s390/vx-builtins.md 19876f77a242921272972ac5b8bd32d0 gcc/config/s390/x-native *************** cb032b4ade610b7b38e01a8029da043e gcc/co *** 4458,4463 **** --- 4464,4470 ---- 9ab9622e223528d958a728134b55b6f3 gcc/config/sparc/freebsd.h 4f56c43a4d82e01b567fe7887c23ce9f gcc/config/sparc/hypersparc.md 374719978e012e941d60c64f131e76a9 gcc/config/sparc/leon.md + 9d495003ccd8d4728e02705a8fafe134 gcc/config/sparc/leon5.md 97d06ec06d753dcf57a975a67e5244c2 gcc/config/sparc/linux.h 9571e18a771ed70764487a75d74ebc74 gcc/config/sparc/linux64.h 1250ee775863cfad6a764a0d319f7b9b gcc/config/sparc/long-double-switch.opt *************** f79ae1140c10492ceac088f7f5019e7d gcc/co *** 4476,4489 **** 6f9d286d9e3e1c5a000251634b240853 gcc/config/sparc/sp64-elf.h ccae0d54ed31f04853ff923541eea0e5 gcc/config/sparc/sparc-c.c a5a9218acfb5d41578555d0441d5cb99 gcc/config/sparc/sparc-d.c ! b238c0d1e922a202048ce5909693e1aa gcc/config/sparc/sparc-modes.def ! 342a12ff3ee1e493c9a9b06ca9c4a4bf gcc/config/sparc/sparc-opts.h 6f520a376e0a7395f5c6f882a8e027c8 gcc/config/sparc/sparc-passes.def cd0869635ffc187db2e3827d1dd73fb8 gcc/config/sparc/sparc-protos.h ! 4e2876ef2fcc63bef4681d281802daa7 gcc/config/sparc/sparc.c ! 288b7c68d32676acb597bad918c57cac gcc/config/sparc/sparc.h ! b9f1ec4e9c3a9d55473925f91e2c02b7 gcc/config/sparc/sparc.md ! d87d4abdd19b7cf412e9b02b7f36a78c gcc/config/sparc/sparc.opt 8ed4dc36697fae85bbf65019d71bd589 gcc/config/sparc/sparclet.md e52c82a23c5c3b180a0ff5a8b8ad6d00 gcc/config/sparc/supersparc.md 9a3746b5a3e2e665ee112e40bda33690 gcc/config/sparc/sync.md --- 4483,4496 ---- 6f9d286d9e3e1c5a000251634b240853 gcc/config/sparc/sp64-elf.h ccae0d54ed31f04853ff923541eea0e5 gcc/config/sparc/sparc-c.c a5a9218acfb5d41578555d0441d5cb99 gcc/config/sparc/sparc-d.c ! fc603009a619faa01c2b790df75e63b3 gcc/config/sparc/sparc-modes.def ! e9790562d31de19ef25166f5f8cb69b1 gcc/config/sparc/sparc-opts.h 6f520a376e0a7395f5c6f882a8e027c8 gcc/config/sparc/sparc-passes.def cd0869635ffc187db2e3827d1dd73fb8 gcc/config/sparc/sparc-protos.h ! 4a032bdecf716b5dc2199a932799647d gcc/config/sparc/sparc.c ! 9d78520dc64c812bfd259a6688446709 gcc/config/sparc/sparc.h ! 29cc662e876c7f700c37d0e163fe5539 gcc/config/sparc/sparc.md ! dc2e1551d2beb89c3ecab8a5b7124bd8 gcc/config/sparc/sparc.opt 8ed4dc36697fae85bbf65019d71bd589 gcc/config/sparc/sparclet.md e52c82a23c5c3b180a0ff5a8b8ad6d00 gcc/config/sparc/supersparc.md 9a3746b5a3e2e665ee112e40bda33690 gcc/config/sparc/sync.md *************** bb551d8949231e13c2fc39046fef68fd gcc/co *** 4549,4555 **** 209d1a732de0a286638eed5c793f0da1 gcc/config/tilegx/tilegx.opt 4694ef81335429ad17d622ad71601731 gcc/config/tilepro/constraints.md f62347fb17ffdccf93a30b860f9f4dc2 gcc/config/tilepro/feedback.h ! 5895914640219424842e326ee0128581 gcc/config/tilepro/gen-mul-tables.cc f9a6b00f6ade874dfab06951d054adc9 gcc/config/tilepro/linux.h ff2860df2dc1c35c2c5606d33b5925f1 gcc/config/tilepro/mul-tables.c b77cabbf61dba5ad663f35f2cfcd1861 gcc/config/tilepro/predicates.md --- 4556,4562 ---- 209d1a732de0a286638eed5c793f0da1 gcc/config/tilegx/tilegx.opt 4694ef81335429ad17d622ad71601731 gcc/config/tilepro/constraints.md f62347fb17ffdccf93a30b860f9f4dc2 gcc/config/tilepro/feedback.h ! 91311b5f8b8de8a47cf601f68f697629 gcc/config/tilepro/gen-mul-tables.cc f9a6b00f6ade874dfab06951d054adc9 gcc/config/tilepro/linux.h ff2860df2dc1c35c2c5606d33b5925f1 gcc/config/tilepro/mul-tables.c b77cabbf61dba5ad663f35f2cfcd1861 gcc/config/tilepro/predicates.md *************** e42654dd30c5612779ef93d34c3c29c1 gcc/co *** 4663,4680 **** a23e48474ee8aa13f49b361bd3c98841 gcc/config/xtensa/xtensa.h 01660331fadee5f3e28f5bfb0cd602fb gcc/config/xtensa/xtensa.md 08b3738376c03bf4cee8df572e6705f2 gcc/config/xtensa/xtensa.opt ! 3d0bb9449a92a7e6ef5e3ab43b13afd9 gcc/configure ! ced95d22dbf8f9a8455ac7374b36d1b8 gcc/configure.ac b87ae58d1c8749424f6bd5aaa5d01093 gcc/context.c b2a80d0c51705d2a0d6e75048c697b96 gcc/context.h 1b4f206d9f1dfe887814858b2628b6ee gcc/convert.c 820c5ad95c096f30b56db96ceb9aebd8 gcc/convert.h ! 3eceab35d7f2339c2e8af9f963d14a94 gcc/coretypes.h cc47dc829b58cf28ea4a0d34724ef655 gcc/coroutine-builtins.def ccc965b70117adaa9e520ce66d2cdc1c gcc/coroutine-passes.cc ! c199911d8b7f237f51f4b1b1606e1625 gcc/coverage.c 1929f2519bcd6977e0d213f459d3b40c gcc/coverage.h ! b304d5dd687844905b128c005d8e175b gcc/cp/ChangeLog d271e3663538ba1f3281cab3838e92cd gcc/cp/ChangeLog-1993 f5a44adbc05521162350ca409d1d95ce gcc/cp/ChangeLog-1994 ac55db48d964cb5469ff03c1cd3ee04d gcc/cp/ChangeLog-1995 --- 4670,4687 ---- a23e48474ee8aa13f49b361bd3c98841 gcc/config/xtensa/xtensa.h 01660331fadee5f3e28f5bfb0cd602fb gcc/config/xtensa/xtensa.md 08b3738376c03bf4cee8df572e6705f2 gcc/config/xtensa/xtensa.opt ! a8ab29c421f4557fe550fe426dd6be6c gcc/configure ! 22f0fa4de59aaf9833ac29e82b0a5a50 gcc/configure.ac b87ae58d1c8749424f6bd5aaa5d01093 gcc/context.c b2a80d0c51705d2a0d6e75048c697b96 gcc/context.h 1b4f206d9f1dfe887814858b2628b6ee gcc/convert.c 820c5ad95c096f30b56db96ceb9aebd8 gcc/convert.h ! d8243f41c71cd67d366d69853db48b80 gcc/coretypes.h cc47dc829b58cf28ea4a0d34724ef655 gcc/coroutine-builtins.def ccc965b70117adaa9e520ce66d2cdc1c gcc/coroutine-passes.cc ! d8b8dbf4da9c1bc99c07c6ea7c400198 gcc/coverage.c 1929f2519bcd6977e0d213f459d3b40c gcc/coverage.h ! dff5236c84e19ff01fe01b2d47ad7413 gcc/cp/ChangeLog d271e3663538ba1f3281cab3838e92cd gcc/cp/ChangeLog-1993 f5a44adbc05521162350ca409d1d95ce gcc/cp/ChangeLog-1994 ac55db48d964cb5469ff03c1cd3ee04d gcc/cp/ChangeLog-1995 *************** c1c7801b9b0f379e702a4f6cb83972e7 gcc/cp *** 4706,4772 **** 9aa3cd9f75c785de9f51446e3f295515 gcc/cp/ChangeLog.tree-ssa 6df3c44d0c0dd3bec79bc34db725697a gcc/cp/Make-lang.in fd0465d46d6794ff1574f592b953651b gcc/cp/NEWS ! ef2971659ae56d25e9b92f5c0d6ae953 gcc/cp/call.c 8ff7b45f5a8aee8f834b85eeca6a88f9 gcc/cp/cfns.gperf 37c2b7bedf298de9dac0cafb46f58d9b gcc/cp/cfns.h ! 57409632337ddbaad983fb519de29af4 gcc/cp/class.c 8aaf367382ec0ba58ec54105f81bae4c gcc/cp/config-lang.in ! 9bdccd276b0ba57819d1a4c494c0d55f gcc/cp/constexpr.c ! 4b1f6f9dedfda7cf254bc9dbf937d978 gcc/cp/constraint.cc ! a8d5d416a66f9ee80ee5f129d1d6e00f gcc/cp/coroutines.cc ! a782c11aa8a2187a3a1716eb7324e70c gcc/cp/cp-gimplify.c eab55c7f7088d85452230ea3e4fb6e0b gcc/cp/cp-lang.c 1b652554949dd65ee7cf9f3033110264 gcc/cp/cp-name-hint.h 172ce9c8be17744f898dc4d87767f723 gcc/cp/cp-objcp-common.c 867dac9005ac1106eeacfcb9bfb19498 gcc/cp/cp-objcp-common.h 942c4d40b949ce9d5caf97e8afd8c883 gcc/cp/cp-tree.def ! 0721518f8c98e8ee49f5388dd327cd99 gcc/cp/cp-tree.h 1fdd2540a34a8d3711868857e16b12ea gcc/cp/cp-ubsan.c ! c64b73fd8b79045795b5c4cd84908e4c gcc/cp/cvt.c eb2e3a9c14c44c0cc5c5dbcc9c82618d gcc/cp/cxx-pretty-print.c b5cc2e7a6254261a168bd34a412a0fc6 gcc/cp/cxx-pretty-print.h ! d3ae9ba172c333b9f86fb5e24063006f gcc/cp/decl.c 5c07af228d899d28c4a7a4096ae1ae34 gcc/cp/decl.h ! 15d4a7a21ae493da7bb9e9e011ba4156 gcc/cp/decl2.c 98c98b8f005396a75738d141023feafe gcc/cp/dump.c 31839945a2103c24d966396fc5d42f75 gcc/cp/error.c ! 6f9d4b390db81bcd02469d0869f2bc46 gcc/cp/except.c ! 1f0efe7b19143c3848cff516e6fd0b2f gcc/cp/expr.c 01b0de4604aab6440ec5ea83f09fb4d6 gcc/cp/friend.c acc27a3f2e7fed4b7ba30986e3dbf8e9 gcc/cp/g++spec.c ! 93646ca7ce1523518eafdc0a273bc3d3 gcc/cp/init.c ! a7e4b302de0b3ac5a73b009febb3ca5d gcc/cp/lambda.c 2395c9f9b982880dfc925c3cbd76a4bc gcc/cp/lang-specs.h 8c0a7e69fc667bef06ad7bdf5b6d4a32 gcc/cp/lex.c 88f9b3b7adcb56a71c281373d1c5643e gcc/cp/logic.cc ! e9abc90fbb89800538e4fc30b89579bc gcc/cp/mangle.c ! 954cd6ed86e4c27db74922ef8e6f7530 gcc/cp/method.c ! 000b6d6b0fa83d65ec0b2422b53b863b gcc/cp/name-lookup.c f09435d1b0c974cfe45f48bfc0669984 gcc/cp/name-lookup.h a7154f7d3b54c0184476a88977d4ab3c gcc/cp/operators.def 2786790fbafb8faefa78a7b85b81022b gcc/cp/optimize.c ! f2aef030af2fafdb8b12b4b650d80ca0 gcc/cp/parser.c bb1759eb82ec59c0a317878693eb4f45 gcc/cp/parser.h ! 29758a85528c0cbb14a6b156518cbb2c gcc/cp/pt.c 322572fac27749e839caf803dad33025 gcc/cp/ptree.c 7ff8a27380a1e6717713246bd546b2d3 gcc/cp/rtti.c ! b239665685aa93eae46b21aeabe23c8d gcc/cp/search.c ! 2585494511f8123d9a4feb60d34f605a gcc/cp/semantics.c ! 8e3d5e5af1e6f5b746d19f43aa59cef1 gcc/cp/tree.c cae322bfce187ac1a745d5219629864a gcc/cp/type-utils.h ! 8cad24814bdf5b3f98b8a8801f7be07a gcc/cp/typeck.c ! 3bec5e7f30e41c99a85f2d83a785aec2 gcc/cp/typeck2.c 06da302baeb2dc3b6a3cf7b842ae87fe gcc/cp/vtable-class-hierarchy.c 3fb2d72bc2ca089b8759ce3e4ef4e807 gcc/cppbuiltin.c 95b9b9600032c06f6166f88d2560827d gcc/cppbuiltin.h d810e2056298f1078b649030d36a60dc gcc/cppdefault.c 76e05bdfb378e95d27c573bb828f9c12 gcc/cppdefault.h ! 1e22b16fe811191e4839719c4d9939cd gcc/cprop.c ! 823cf420b4ae4e73d0a0cf712e43793e gcc/cse.c ! 9b1c75dc9d50876118df7d62bae8de96 gcc/cselib.c ec27fbd17f014711211a34a157aaaff3 gcc/cselib.h 1ded054093de910d9786c62bc4fe8cc6 gcc/cstamp-h.in ! ef1f19b223b83f450354d18f923b9425 gcc/d/ChangeLog 86f687c485111eedca2eb048294f957e gcc/d/ChangeLog-2006 70ed1c47fd9b3f5dd95055642ed79265 gcc/d/ChangeLog-2007 a7090ab2dd83aa4f44823c17566b83ef gcc/d/ChangeLog-2008 --- 4713,4779 ---- 9aa3cd9f75c785de9f51446e3f295515 gcc/cp/ChangeLog.tree-ssa 6df3c44d0c0dd3bec79bc34db725697a gcc/cp/Make-lang.in fd0465d46d6794ff1574f592b953651b gcc/cp/NEWS ! d12910a05989c8bde6d3f96115742601 gcc/cp/call.c 8ff7b45f5a8aee8f834b85eeca6a88f9 gcc/cp/cfns.gperf 37c2b7bedf298de9dac0cafb46f58d9b gcc/cp/cfns.h ! 466944e0e572eb3f44a4f9b9fb91be8a gcc/cp/class.c 8aaf367382ec0ba58ec54105f81bae4c gcc/cp/config-lang.in ! ba2eb711d742729700d4cec81f3259a5 gcc/cp/constexpr.c ! 019ae23b54cdc082c0b9d13205f0edef gcc/cp/constraint.cc ! 44e730c275906ff2db829f5b9994298e gcc/cp/coroutines.cc ! 4734755e299b745c6e17c73b318ff8e0 gcc/cp/cp-gimplify.c eab55c7f7088d85452230ea3e4fb6e0b gcc/cp/cp-lang.c 1b652554949dd65ee7cf9f3033110264 gcc/cp/cp-name-hint.h 172ce9c8be17744f898dc4d87767f723 gcc/cp/cp-objcp-common.c 867dac9005ac1106eeacfcb9bfb19498 gcc/cp/cp-objcp-common.h 942c4d40b949ce9d5caf97e8afd8c883 gcc/cp/cp-tree.def ! daf4cd2f7d9fff3beba4e5f35f7c73b6 gcc/cp/cp-tree.h 1fdd2540a34a8d3711868857e16b12ea gcc/cp/cp-ubsan.c ! 4c457ba4298e4c8b0d88685a019ee425 gcc/cp/cvt.c eb2e3a9c14c44c0cc5c5dbcc9c82618d gcc/cp/cxx-pretty-print.c b5cc2e7a6254261a168bd34a412a0fc6 gcc/cp/cxx-pretty-print.h ! 930226c25a54545fd53ae10dccf13037 gcc/cp/decl.c 5c07af228d899d28c4a7a4096ae1ae34 gcc/cp/decl.h ! 2a6334e2cc9a923eaf3312d0f168d207 gcc/cp/decl2.c 98c98b8f005396a75738d141023feafe gcc/cp/dump.c 31839945a2103c24d966396fc5d42f75 gcc/cp/error.c ! 02eb1ec1cd5fd4b24715607e961d1cc7 gcc/cp/except.c ! 261b11524fe961d2434aa9cc367ecdb7 gcc/cp/expr.c 01b0de4604aab6440ec5ea83f09fb4d6 gcc/cp/friend.c acc27a3f2e7fed4b7ba30986e3dbf8e9 gcc/cp/g++spec.c ! 35e393a5d1ec04ca99cca8042af7d4ed gcc/cp/init.c ! c32ff0c4edb1cd11b2b9d57eed2886b0 gcc/cp/lambda.c 2395c9f9b982880dfc925c3cbd76a4bc gcc/cp/lang-specs.h 8c0a7e69fc667bef06ad7bdf5b6d4a32 gcc/cp/lex.c 88f9b3b7adcb56a71c281373d1c5643e gcc/cp/logic.cc ! 3f211834c8fddb825032358405ce0e29 gcc/cp/mangle.c ! a51ae59c8e9c36a935788923a339dd31 gcc/cp/method.c ! 6dfdd88329d50659cd893a7288a0241e gcc/cp/name-lookup.c f09435d1b0c974cfe45f48bfc0669984 gcc/cp/name-lookup.h a7154f7d3b54c0184476a88977d4ab3c gcc/cp/operators.def 2786790fbafb8faefa78a7b85b81022b gcc/cp/optimize.c ! 1b987a2c137584ff79dbf6ce9e93ab53 gcc/cp/parser.c bb1759eb82ec59c0a317878693eb4f45 gcc/cp/parser.h ! f01c0b9500a5c384a8150ed15f03cf98 gcc/cp/pt.c 322572fac27749e839caf803dad33025 gcc/cp/ptree.c 7ff8a27380a1e6717713246bd546b2d3 gcc/cp/rtti.c ! 248c55ec535b81679b9f77b9773863ab gcc/cp/search.c ! c9603afa7178fa6a1e00b948064864e9 gcc/cp/semantics.c ! 8ebad01cebf90a3255edb82664b6da5d gcc/cp/tree.c cae322bfce187ac1a745d5219629864a gcc/cp/type-utils.h ! 05e4213ca2fac32ee1bb38b826a86872 gcc/cp/typeck.c ! 188b29c2dbfcb6513d4fd24f3f318c9a gcc/cp/typeck2.c 06da302baeb2dc3b6a3cf7b842ae87fe gcc/cp/vtable-class-hierarchy.c 3fb2d72bc2ca089b8759ce3e4ef4e807 gcc/cppbuiltin.c 95b9b9600032c06f6166f88d2560827d gcc/cppbuiltin.h d810e2056298f1078b649030d36a60dc gcc/cppdefault.c 76e05bdfb378e95d27c573bb828f9c12 gcc/cppdefault.h ! e6f2a13a28bd6c3b79c29f828dbf1a9e gcc/cprop.c ! 3f3696ca93d11e0760804c479f5d0009 gcc/cse.c ! 664b6e294e2b28b39aeea0b3336fbca3 gcc/cselib.c ec27fbd17f014711211a34a157aaaff3 gcc/cselib.h 1ded054093de910d9786c62bc4fe8cc6 gcc/cstamp-h.in ! fa1b2e5137739614265889d88086c3de gcc/d/ChangeLog 86f687c485111eedca2eb048294f957e gcc/d/ChangeLog-2006 70ed1c47fd9b3f5dd95055642ed79265 gcc/d/ChangeLog-2007 a7090ab2dd83aa4f44823c17566b83ef gcc/d/ChangeLog-2008 *************** a24248ae4062800ab22eb699b5eaab39 gcc/d/ *** 4785,4807 **** 426254b45d40584d0597c63f3fd1f889 gcc/d/README.gcc a19568c9e376fa3deab3a175f14443a2 gcc/d/config-lang.in cd46a07008703f3011cf3fc599a24da1 gcc/d/d-attribs.cc ! 6367fad2ef849168bd280abc831f796e gcc/d/d-builtins.cc ! 53b1fdfd8ddecfd40b30aea23cf1d23e gcc/d/d-codegen.cc ! 836fe4104cb1f24171d5a819f8fa35e2 gcc/d/d-convert.cc ! 82503e77563d3ec8e545f2620cde0557 gcc/d/d-diagnostic.cc ! e827b9b6a1e1c0bd9a4813a84f17af9b gcc/d/d-frontend.cc 6d4172dbc76a861d1c70b5a3061e128a gcc/d/d-incpath.cc ! 32518f29f8ff7afd2e597aa60aecd9c1 gcc/d/d-lang.cc b09323f8c17afc822f365183b33e439e gcc/d/d-longdouble.cc ! f42d8bfed669a3bec3e42184acae5aaf gcc/d/d-spec.cc 1ff10fc29d25a993642906d95b7b87b4 gcc/d/d-system.h 309e4b64f0c8a14646510395413a3c23 gcc/d/d-target-def.h 5f7ca136b6ee5d5de5a023ef180fb31a gcc/d/d-target.cc 190f70769a319f3e03954d38569386a9 gcc/d/d-target.def f6be21ab2346d2541839e048e3f4a06d gcc/d/d-target.h 69794a5bb5ef563bb29567fef3ef24e3 gcc/d/d-tree.def ! 2013a43477769e0cde4d574630f8f779 gcc/d/d-tree.h ! aed520bf60d59379bd29dec4d0f54ed2 gcc/d/decl.cc bb43b09505bba37d2c084b519c8d89a5 gcc/d/dmd/MERGE 094ef829e65f40de6ff4b765b3ca0aba gcc/d/dmd/access.c 1a1309d17942e7ece838aa8b9019864e gcc/d/dmd/aggregate.h --- 4792,4814 ---- 426254b45d40584d0597c63f3fd1f889 gcc/d/README.gcc a19568c9e376fa3deab3a175f14443a2 gcc/d/config-lang.in cd46a07008703f3011cf3fc599a24da1 gcc/d/d-attribs.cc ! 5fdf99ce1ae4de233e2719c9dfcabe98 gcc/d/d-builtins.cc ! a19a6f711214b48b73a4a6f10c45a053 gcc/d/d-codegen.cc ! fde409ebb102caa1f051bb654f17d131 gcc/d/d-convert.cc ! 7140c135d6faa5ac2b4d4541c7451952 gcc/d/d-diagnostic.cc ! b0892dae217f671746b12323dbfdb22c gcc/d/d-frontend.cc 6d4172dbc76a861d1c70b5a3061e128a gcc/d/d-incpath.cc ! b4146daa98f8b3d7236eb1e3ced7d98b gcc/d/d-lang.cc b09323f8c17afc822f365183b33e439e gcc/d/d-longdouble.cc ! b1b4a601abe642a38842d18ec9c4a1f3 gcc/d/d-spec.cc 1ff10fc29d25a993642906d95b7b87b4 gcc/d/d-system.h 309e4b64f0c8a14646510395413a3c23 gcc/d/d-target-def.h 5f7ca136b6ee5d5de5a023ef180fb31a gcc/d/d-target.cc 190f70769a319f3e03954d38569386a9 gcc/d/d-target.def f6be21ab2346d2541839e048e3f4a06d gcc/d/d-target.h 69794a5bb5ef563bb29567fef3ef24e3 gcc/d/d-tree.def ! 2d79161b6cb8614f7217956b845f84ff gcc/d/d-tree.h ! a641aa8e7ef890aeb513a6a7c0f6d3bb gcc/d/decl.cc bb43b09505bba37d2c084b519c8d89a5 gcc/d/dmd/MERGE 094ef829e65f40de6ff4b765b3ca0aba gcc/d/dmd/access.c 1a1309d17942e7ece838aa8b9019864e gcc/d/dmd/aggregate.h *************** e4224ccaecb14d942c71d31bef20d78c gcc/d/ *** 4818,4837 **** 71b2987c4c086034392d6cec93c5bc36 gcc/d/dmd/clone.c a08115f4884c22aade2c43474e78216e gcc/d/dmd/compiler.h b3601d5b994054853b715fff03bad6ce gcc/d/dmd/complex_t.h ! 37969409573cd5970e77e6bad5ce2616 gcc/d/dmd/cond.c 3743612ce9ac20ed2a1664625fdfccf1 gcc/d/dmd/cond.h 3fdd1677662d9a463525c79db213bf3d gcc/d/dmd/constfold.c 246cd36a8335ddc3fe07c00f884ed3b3 gcc/d/dmd/cppmangle.c d6532d0f561d63f9672705445e9dde50 gcc/d/dmd/ctfe.h c662c55c8aae55d27e3b68a9aa38cba7 gcc/d/dmd/ctfeexpr.c ! b0076f51e79d7b18fff3eefe2add9c4f gcc/d/dmd/dcast.c 34fbecfa46241805033c00dd7667ac24 gcc/d/dmd/dclass.c f961e06eea77022ef0afbf95788f8404 gcc/d/dmd/declaration.c 8d4dbbdd280a6e3b03147947ee2bd749 gcc/d/dmd/declaration.h 5a7c717f181ee24ab602f9840351150d gcc/d/dmd/delegatize.c a49adabd6aa48af49bb679336a57d2d3 gcc/d/dmd/denum.c c8feb4a7b8143de030b53ba5295519ba gcc/d/dmd/dimport.c ! ca29b4914c6fdc1a6c128670688384a8 gcc/d/dmd/dinterpret.c 7deff36a83845e52a8c9847a7cba9170 gcc/d/dmd/dmacro.c 37ba1a4108dbe079aea76894644b7c16 gcc/d/dmd/dmangle.c 4d37ecf79a73ea949e07baaa3fc2f9ed gcc/d/dmd/dmodule.c --- 4825,4844 ---- 71b2987c4c086034392d6cec93c5bc36 gcc/d/dmd/clone.c a08115f4884c22aade2c43474e78216e gcc/d/dmd/compiler.h b3601d5b994054853b715fff03bad6ce gcc/d/dmd/complex_t.h ! 6ede7e31d72981e0f15074c5b8828d00 gcc/d/dmd/cond.c 3743612ce9ac20ed2a1664625fdfccf1 gcc/d/dmd/cond.h 3fdd1677662d9a463525c79db213bf3d gcc/d/dmd/constfold.c 246cd36a8335ddc3fe07c00f884ed3b3 gcc/d/dmd/cppmangle.c d6532d0f561d63f9672705445e9dde50 gcc/d/dmd/ctfe.h c662c55c8aae55d27e3b68a9aa38cba7 gcc/d/dmd/ctfeexpr.c ! 2bb61ba407e66eff2580e0d5668d5580 gcc/d/dmd/dcast.c 34fbecfa46241805033c00dd7667ac24 gcc/d/dmd/dclass.c f961e06eea77022ef0afbf95788f8404 gcc/d/dmd/declaration.c 8d4dbbdd280a6e3b03147947ee2bd749 gcc/d/dmd/declaration.h 5a7c717f181ee24ab602f9840351150d gcc/d/dmd/delegatize.c a49adabd6aa48af49bb679336a57d2d3 gcc/d/dmd/denum.c c8feb4a7b8143de030b53ba5295519ba gcc/d/dmd/dimport.c ! bc1e90d1199f0394df3e8f3eb35c3448 gcc/d/dmd/dinterpret.c 7deff36a83845e52a8c9847a7cba9170 gcc/d/dmd/dmacro.c 37ba1a4108dbe079aea76894644b7c16 gcc/d/dmd/dmangle.c 4d37ecf79a73ea949e07baaa3fc2f9ed gcc/d/dmd/dmodule.c *************** f69a19e34a9f63afd02b76eb1b84cc68 gcc/d/ *** 4847,4855 **** c6f02113251e440cbb35240ec47dbb6f gcc/d/dmd/enum.h b51bf064e22dde0a02049ba02cfc1c3b gcc/d/dmd/errors.h 8966a99836d97acba39cd471926927c6 gcc/d/dmd/escape.c ! fa613b9334c70d6f828316e8ae0f45c7 gcc/d/dmd/expression.c ! e1c998286f9d3e7786e3deb044986d0a gcc/d/dmd/expression.h ! 4f358bccc279a74caf798931d015ec0a gcc/d/dmd/expressionsem.c 8ccd6562dee14a44a3b18f83de41c7e6 gcc/d/dmd/func.c aa8bdbd09e2a54e6a89ea90aaad8d409 gcc/d/dmd/globals.h 7dd635952261e678b949533d3d2abdc4 gcc/d/dmd/hdrgen.c --- 4854,4862 ---- c6f02113251e440cbb35240ec47dbb6f gcc/d/dmd/enum.h b51bf064e22dde0a02049ba02cfc1c3b gcc/d/dmd/errors.h 8966a99836d97acba39cd471926927c6 gcc/d/dmd/escape.c ! 741d3931e021319ef6b4ae7d98c2f56c gcc/d/dmd/expression.c ! 002d4c5ebc847adb5c25fe1adeb0faf0 gcc/d/dmd/expression.h ! 2d1fdd39912fc7d647cd5519acb4911d gcc/d/dmd/expressionsem.c 8ccd6562dee14a44a3b18f83de41c7e6 gcc/d/dmd/func.c aa8bdbd09e2a54e6a89ea90aaad8d409 gcc/d/dmd/globals.h 7dd635952261e678b949533d3d2abdc4 gcc/d/dmd/hdrgen.c *************** aa27fa9fcab046604292cc23e32920aa gcc/d/ *** 4875,4881 **** 3a5e02b34a70c25dca7c038ede27c96f gcc/d/dmd/mangle.h 24d743d1eec9c6f5c9f25e00ee87737e gcc/d/dmd/mars.h 9ad7be3bd76dfa484f594eff9bca1692 gcc/d/dmd/module.h ! 0f9520a933eb9af07f9263685b46ae90 gcc/d/dmd/mtype.c eea7558ba165100d50774086716ea78f gcc/d/dmd/mtype.h cb8d9d9bfab84ac59a0b018752f2f899 gcc/d/dmd/nogc.c 885902ace75746551ea90ae607e0ddf7 gcc/d/dmd/nspace.c --- 4882,4888 ---- 3a5e02b34a70c25dca7c038ede27c96f gcc/d/dmd/mangle.h 24d743d1eec9c6f5c9f25e00ee87737e gcc/d/dmd/mars.h 9ad7be3bd76dfa484f594eff9bca1692 gcc/d/dmd/module.h ! 26ff55e8514bbfeaabdc893f4478e09b gcc/d/dmd/mtype.c eea7558ba165100d50774086716ea78f gcc/d/dmd/mtype.h cb8d9d9bfab84ac59a0b018752f2f899 gcc/d/dmd/nogc.c 885902ace75746551ea90ae607e0ddf7 gcc/d/dmd/nspace.c *************** d35dd34358834aa34681039e67814200 gcc/d/ *** 4918,4924 **** 1e4a863f5ae848d5a900ec7aed69c1f4 gcc/d/dmd/sideeffect.c af526917f0d6eb741050933b23b0f07c gcc/d/dmd/statement.c 05bb54d47eb310546442020ae1f048fa gcc/d/dmd/statement.h ! d0e33be98032ead2774fae5e88b4984b gcc/d/dmd/statementsem.c fc3c63f7b78d3687cbab1e73aae55e32 gcc/d/dmd/staticassert.c 09ffba9fc16bea5afa1ea9f7651eadf8 gcc/d/dmd/staticassert.h 4ebaecbeb84a7fba49670de781cbd594 gcc/d/dmd/staticcond.c --- 4925,4931 ---- 1e4a863f5ae848d5a900ec7aed69c1f4 gcc/d/dmd/sideeffect.c af526917f0d6eb741050933b23b0f07c gcc/d/dmd/statement.c 05bb54d47eb310546442020ae1f048fa gcc/d/dmd/statement.h ! 934bff2b8aed2c5f5ea9801748bc44aa gcc/d/dmd/statementsem.c fc3c63f7b78d3687cbab1e73aae55e32 gcc/d/dmd/staticassert.c 09ffba9fc16bea5afa1ea9f7651eadf8 gcc/d/dmd/staticassert.h 4ebaecbeb84a7fba49670de781cbd594 gcc/d/dmd/staticcond.c *************** b6b97848ff841c2ba786e35a155e7969 gcc/d/ *** 4933,4939 **** 892df329899d0581aea17c5742a9652a gcc/d/dmd/utils.c a8f7c4f694d68924d68d98d7d2c17d09 gcc/d/dmd/version.h ee40ca13e71f17c1810a03367e9f8b1b gcc/d/dmd/visitor.h ! 9b444b7c16e6c612b224128647a8ce78 gcc/d/expr.cc 68181946228b38dfb5d6fccf924382c4 gcc/d/gdc.texi a3c0cc319f091942f45eea92a6af41ff gcc/d/imports.cc eba82f3bc8e120da884c4e286247b5ec gcc/d/intrinsics.cc --- 4940,4946 ---- 892df329899d0581aea17c5742a9652a gcc/d/dmd/utils.c a8f7c4f694d68924d68d98d7d2c17d09 gcc/d/dmd/version.h ee40ca13e71f17c1810a03367e9f8b1b gcc/d/dmd/visitor.h ! 955d0cf488664d232687eadf0c28abea gcc/d/expr.cc 68181946228b38dfb5d6fccf924382c4 gcc/d/gdc.texi a3c0cc319f091942f45eea92a6af41ff gcc/d/imports.cc eba82f3bc8e120da884c4e286247b5ec gcc/d/intrinsics.cc *************** a085b5c31a34e6c194c3108b96c1e203 gcc/d/ *** 4945,4951 **** 4cf8cc279a987b0fda776077fd53061f gcc/d/runtime.cc 9c2b70944203746f17b8754ba2109510 gcc/d/runtime.def b860ba3324520aff7268d00ff5a3b2f4 gcc/d/toir.cc ! a2a98eaba38f1e875923c2593e78fa9b gcc/d/typeinfo.cc 833a6b769ba1bb6f9756f95475c95a80 gcc/d/types.cc ffe6cb4083340e61aa80419c3ac2f84a gcc/d/verstr.h 23255cea1662b0963ce7c3e1710e029a gcc/data-streamer-in.c --- 4952,4958 ---- 4cf8cc279a987b0fda776077fd53061f gcc/d/runtime.cc 9c2b70944203746f17b8754ba2109510 gcc/d/runtime.def b860ba3324520aff7268d00ff5a3b2f4 gcc/d/toir.cc ! a8d69052162e9ee53fb1390a2354f76f gcc/d/typeinfo.cc 833a6b769ba1bb6f9756f95475c95a80 gcc/d/types.cc ffe6cb4083340e61aa80419c3ac2f84a gcc/d/verstr.h 23255cea1662b0963ce7c3e1710e029a gcc/data-streamer-in.c *************** c18771821b3c0277be8874098ef0a496 gcc/do *** 4994,5031 **** 0aeda9bf1c0b3e2f6f82916a118096d8 gcc/doc/configterms.texi 591c43bd3e0acf5e1319e6a54b9797dd gcc/doc/contrib.texi 9d45c807a3aa05e4129599f4144c79d3 gcc/doc/contribute.texi ! 1eb4129d4ffb7d5ff30477fd5d06e7a5 gcc/doc/cpp.1 ! a68f36164d42cf40e5e1abdea67329c5 gcc/doc/cpp.info ! 47fad7d64be4d5d98cf8fbd106ca6595 gcc/doc/cpp.texi 0de35fd948c2d1bfadf0b56403bcd70c gcc/doc/cppdiropts.texi ec4caf3825b9937f10f1dde42b534a68 gcc/doc/cppenv.texi ! 853cfd24195656e2b0cb2dc824537be0 gcc/doc/cppinternals.info c0d6abb8d561540b8519a01789ab20e4 gcc/doc/cppinternals.texi 1592fa0920a0202b757dece389015e3f gcc/doc/cppopts.texi 314fc175d338403fc1a2d890f6f325b7 gcc/doc/cppwarnopts.texi ! 9374d5087265c05334980b795fa72ac7 gcc/doc/extend.texi 470b981de977916fd30c8a64c80b7fde gcc/doc/fragments.texi 20adbdf5bf9edc8cb6efd4a9cfc1a5c8 gcc/doc/frontends.texi ! b0b9d8ae777757595b4688386eb6679a gcc/doc/fsf-funding.7 ! a8d28af5c3cc98ae55ec28263d75d724 gcc/doc/g++.1 ! a8d28af5c3cc98ae55ec28263d75d724 gcc/doc/gcc.1 ! ba5d55ac7b472ec8db993c85d12215e2 gcc/doc/gcc.info 7a4d49e66462ecaddb8c3d35a4be3ce7 gcc/doc/gcc.texi ! d61ab40e3392add707f6249a3c2092b6 gcc/doc/gccinstall.info ! 30b5380d3dbb5ebb1451a14563e794c7 gcc/doc/gccint.info 4c3bb0ef5f4f8fd8a877cebf249596fa gcc/doc/gccint.texi ! e0a0204abbcc7a5a3c65e7276ed87775 gcc/doc/gcov-dump.1 d0a4d191b48a6c48c8e5d1d6673aca45 gcc/doc/gcov-dump.texi ! b40862df89491d53c495ca5cea39e698 gcc/doc/gcov-tool.1 51792fbbdc63c819a9ca77e38c002af9 gcc/doc/gcov-tool.texi ! ee04364302d651111c2bee101ab4f434 gcc/doc/gcov.1 7b5042f630659261fc8686377fa6b034 gcc/doc/gcov.texi e92265395b7daf7dc7ce05d3ec64a376 gcc/doc/generic.texi ! de261b2cf5540422f2a5db8b3d22ce62 gcc/doc/gfdl.7 ! 0e5c5b0a49d7d5d8f9d78c598e7b35d2 gcc/doc/gfortran.1 af5c4e3c5b6e9491191874ab81bae52b gcc/doc/gimple.texi 290370669f02bef1502ada9273e5261f gcc/doc/gnu.texi ! 6ed08ba8d7ef3218c5e3ff79c34b41f5 gcc/doc/gpl.7 7cdd885d331cff4af22305f97d7c2f90 gcc/doc/gty.texi 791902062ac528ae5e40ab627fddda4a gcc/doc/headerdirs.texi 5965b4c8e9b7704d12a73ce2dd213ed5 gcc/doc/hostconfig.texi --- 5001,5038 ---- 0aeda9bf1c0b3e2f6f82916a118096d8 gcc/doc/configterms.texi 591c43bd3e0acf5e1319e6a54b9797dd gcc/doc/contrib.texi 9d45c807a3aa05e4129599f4144c79d3 gcc/doc/contribute.texi ! 4111bb183ce82c3e6121a69a4c3d64f9 gcc/doc/cpp.1 ! 1d711bac74d5d50e6dd2205f2e079033 gcc/doc/cpp.info ! b0ec3515657fc0165ae21602af7f2e82 gcc/doc/cpp.texi 0de35fd948c2d1bfadf0b56403bcd70c gcc/doc/cppdiropts.texi ec4caf3825b9937f10f1dde42b534a68 gcc/doc/cppenv.texi ! 3cfc7301ee64f6a2b78c771bb8cec21d gcc/doc/cppinternals.info c0d6abb8d561540b8519a01789ab20e4 gcc/doc/cppinternals.texi 1592fa0920a0202b757dece389015e3f gcc/doc/cppopts.texi 314fc175d338403fc1a2d890f6f325b7 gcc/doc/cppwarnopts.texi ! 12e8c9f596335b8fd0344243c336004a gcc/doc/extend.texi 470b981de977916fd30c8a64c80b7fde gcc/doc/fragments.texi 20adbdf5bf9edc8cb6efd4a9cfc1a5c8 gcc/doc/frontends.texi ! a1f6d18b92aa013a748dfb7697fb41e4 gcc/doc/fsf-funding.7 ! 73458887fe66018650e5c02a8e57aaa9 gcc/doc/g++.1 ! 73458887fe66018650e5c02a8e57aaa9 gcc/doc/gcc.1 ! 77d5dfe4e42e3d43a9474c41ba016e58 gcc/doc/gcc.info 7a4d49e66462ecaddb8c3d35a4be3ce7 gcc/doc/gcc.texi ! 7b13b5ec00f710379a04abd689f39595 gcc/doc/gccinstall.info ! 970d0e5aacac99c5865dd5b32863d7ec gcc/doc/gccint.info 4c3bb0ef5f4f8fd8a877cebf249596fa gcc/doc/gccint.texi ! 856bc88531e4c045e49e38fb2eeff2d8 gcc/doc/gcov-dump.1 d0a4d191b48a6c48c8e5d1d6673aca45 gcc/doc/gcov-dump.texi ! 6dd8d0cbd743d880a4b8699b317d0098 gcc/doc/gcov-tool.1 51792fbbdc63c819a9ca77e38c002af9 gcc/doc/gcov-tool.texi ! 183d0b3b54308b9ca887cf46cca38d22 gcc/doc/gcov.1 7b5042f630659261fc8686377fa6b034 gcc/doc/gcov.texi e92265395b7daf7dc7ce05d3ec64a376 gcc/doc/generic.texi ! 5c48a60e6521c6d343fc11df209f54fb gcc/doc/gfdl.7 ! 8bc3aaa17f27f51d62112c604aa5ce9f gcc/doc/gfortran.1 af5c4e3c5b6e9491191874ab81bae52b gcc/doc/gimple.texi 290370669f02bef1502ada9273e5261f gcc/doc/gnu.texi ! 45beaa7ba7ed48e5565a2dace7e77123 gcc/doc/gpl.7 7cdd885d331cff4af22305f97d7c2f90 gcc/doc/gty.texi 791902062ac528ae5e40ab627fddda4a gcc/doc/headerdirs.texi 5965b4c8e9b7704d12a73ce2dd213ed5 gcc/doc/hostconfig.texi *************** b82b1143f78f373e3c76f6958d830869 gcc/do *** 5037,5050 **** b6389c8331319f90193f11ac084e86e4 gcc/doc/include/gpl_v3.texi 73819b3930a3d4be5d6234070d02386a gcc/doc/include/texinfo.tex 67f7627681f57b4da56093b89cbb81a3 gcc/doc/install-old.texi ! 507e662d273e2f473df8eab2b62c0212 gcc/doc/install.texi 7a4b82d3eebd4858aa30fe0f4404d548 gcc/doc/install.texi2html 31edfbf55a9d3df130c88d68f0169c39 gcc/doc/interface.texi ! bb84b689d5f2b4b7e04051d27cc528e6 gcc/doc/invoke.texi 3a49345ce16cd33f59d6cf7e0ee815ab gcc/doc/languages.texi 268b9397afea988eadd93ce81b1bb9a2 gcc/doc/libgcc.texi e02b5aa8f429c0957c133e264c9dc3ec gcc/doc/loop.texi ! 342f196d219eec9bcd005d096487ce48 gcc/doc/lto-dump.1 b99bd8da5b02b02634f7d9a942ffbe71 gcc/doc/lto-dump.texi f18a876be44fd2b5c38b7c10dcf2bc94 gcc/doc/lto.texi a8f68d3e6eec459c1c1d361c337737a3 gcc/doc/makefile.texi --- 5044,5057 ---- b6389c8331319f90193f11ac084e86e4 gcc/doc/include/gpl_v3.texi 73819b3930a3d4be5d6234070d02386a gcc/doc/include/texinfo.tex 67f7627681f57b4da56093b89cbb81a3 gcc/doc/install-old.texi ! 5df442b76396a3197f5ce631ed59f48e gcc/doc/install.texi 7a4b82d3eebd4858aa30fe0f4404d548 gcc/doc/install.texi2html 31edfbf55a9d3df130c88d68f0169c39 gcc/doc/interface.texi ! 58401cb12c3b4a3806b5ca1687a0cc28 gcc/doc/invoke.texi 3a49345ce16cd33f59d6cf7e0ee815ab gcc/doc/languages.texi 268b9397afea988eadd93ce81b1bb9a2 gcc/doc/libgcc.texi e02b5aa8f429c0957c133e264c9dc3ec gcc/doc/loop.texi ! 3eb4004fbad030d7b482189799ab452e gcc/doc/lto-dump.1 b99bd8da5b02b02634f7d9a942ffbe71 gcc/doc/lto-dump.texi f18a876be44fd2b5c38b7c10dcf2bc94 gcc/doc/lto.texi a8f68d3e6eec459c1c1d361c337737a3 gcc/doc/makefile.texi *************** ad9645d6c4b09dcccdbd6c29369ab018 gcc/do *** 5061,5070 **** e93d1c976693b8f2c62a65d0f0d4fd59 gcc/doc/service.texi 15b657d5a52b2aa1de21bb9c4499bf9d gcc/doc/sourcebuild.texi 83f77099f0e2da567afa1db2d4aa019a gcc/doc/standards.texi ! bcc6572b23a052ebc2e186ec4a5a8671 gcc/doc/tm.texi ! dc581a5117c71fbc7421597aaee23164 gcc/doc/tm.texi.in be339fb0cf01bb799a3f37e28806bcc9 gcc/doc/tree-ssa.texi ! 22918ac595134457b6332deb61368a06 gcc/doc/trouble.texi f10e623abba8dc994d37054d758954c8 gcc/doc/ux.texi 276e18f1d0320ec1bdba0ddf86ecae5e gcc/dojump.c d65a7bcd57c757755933c045255522cc gcc/dojump.h --- 5068,5077 ---- e93d1c976693b8f2c62a65d0f0d4fd59 gcc/doc/service.texi 15b657d5a52b2aa1de21bb9c4499bf9d gcc/doc/sourcebuild.texi 83f77099f0e2da567afa1db2d4aa019a gcc/doc/standards.texi ! 360d5086d0cf6b2e062cde5cbcc5f038 gcc/doc/tm.texi ! f286d51af8d1ebb173423fb380d58bcb gcc/doc/tm.texi.in be339fb0cf01bb799a3f37e28806bcc9 gcc/doc/tree-ssa.texi ! 6dd59eaefd02d8df075d8e6d5bba3918 gcc/doc/trouble.texi f10e623abba8dc994d37054d758954c8 gcc/doc/ux.texi 276e18f1d0320ec1bdba0ddf86ecae5e gcc/dojump.c d65a7bcd57c757755933c045255522cc gcc/dojump.h *************** d9946b8965ca229b280652f12b9dab87 gcc/do *** 5074,5092 **** 83abd26c71936a6759e8808b71197115 gcc/domwalk.h 1e9816cb4a810b19ef22718afbeec7c8 gcc/double-int.c b0fe848c6de3272f77738d74b1edb83b gcc/double-int.h ! 423c68a59ec57d97d5d0a1559d5fc431 gcc/dse.c 6bde9d4a9aa963bd53323ec1b94f383a gcc/dump-context.h b9bc3242c68d8a7bd8a08ddebe9e5632 gcc/dumpfile.c 656e63928359881a05a37f3d0a7e9df8 gcc/dumpfile.h e5a1ef097d8d0890346bf3c6741e17ed gcc/dwarf2asm.c 2a9be6ccac90aaf4e0e0d339effc65a5 gcc/dwarf2asm.h e09de3e0f1007de61eebb01cabb81846 gcc/dwarf2cfi.c ! 980fbd917f1d648495728e44814554e8 gcc/dwarf2out.c 56e7493de2306d771426d08c953ba38f gcc/dwarf2out.h ! e6300fda4482943609922a8ada0055ba gcc/early-remat.c acd39cd487582156a31695fa0540491a gcc/edit-context.c 86a7830502c4192323bdc9712d3866f5 gcc/edit-context.h ! 331389a1dd0917f3aaa097f3f1ea9f9d gcc/emit-rtl.c 32636560259bd68a4dcfc268907b98f6 gcc/emit-rtl.h 1599b8f61bfe954037be2b7318a44122 gcc/errors.c be4b862f1488d8a23c64b9b34a3a9449 gcc/errors.h --- 5081,5099 ---- 83abd26c71936a6759e8808b71197115 gcc/domwalk.h 1e9816cb4a810b19ef22718afbeec7c8 gcc/double-int.c b0fe848c6de3272f77738d74b1edb83b gcc/double-int.h ! 3406c79c332e9ddffdfe113def4688db gcc/dse.c 6bde9d4a9aa963bd53323ec1b94f383a gcc/dump-context.h b9bc3242c68d8a7bd8a08ddebe9e5632 gcc/dumpfile.c 656e63928359881a05a37f3d0a7e9df8 gcc/dumpfile.h e5a1ef097d8d0890346bf3c6741e17ed gcc/dwarf2asm.c 2a9be6ccac90aaf4e0e0d339effc65a5 gcc/dwarf2asm.h e09de3e0f1007de61eebb01cabb81846 gcc/dwarf2cfi.c ! d44f550077470cd88f48ca1896fb5679 gcc/dwarf2out.c 56e7493de2306d771426d08c953ba38f gcc/dwarf2out.h ! d090d07b57dc88ebdd7b95a1051530a1 gcc/early-remat.c acd39cd487582156a31695fa0540491a gcc/edit-context.c 86a7830502c4192323bdc9712d3866f5 gcc/edit-context.h ! 8a2c8306606fd38333b7067fa4b95c43 gcc/emit-rtl.c 32636560259bd68a4dcfc268907b98f6 gcc/emit-rtl.h 1599b8f61bfe954037be2b7318a44122 gcc/errors.c be4b862f1488d8a23c64b9b34a3a9449 gcc/errors.h *************** ecbdc29ba9b602eb5e55c1523296777a gcc/et *** 5095,5106 **** d408aef16c3bfb7b86cef637feac8745 gcc/et-forest.h 241dffa213208d61454b129b72b68d26 gcc/except.c c6370f22bbfcbcb87187c92f76076171 gcc/except.h ! e5ca1c392b78812e6cf88944b72bf4c9 gcc/exec-tool.in ! 2df040e1b08c855994fe954aaac6b1c7 gcc/explow.c 8c8476ba0f61914dffce238540c59b95 gcc/explow.h ! 53f1e20ea7ce2aebb5c2a79aba3b6207 gcc/expmed.c 5e0174392e3f3a8cc0a63391e02aa772 gcc/expmed.h ! b3f480ff9fd14424d47186e1a4f24840 gcc/expr.c 39274814d6e8332f62ce66e987da6dcd gcc/expr.h a89ff289b70e8fa646431a2b2cd439d3 gcc/fibonacci_heap.c 9bcdbc3fe605cab6b77a06f781d4a583 gcc/fibonacci_heap.h --- 5102,5113 ---- d408aef16c3bfb7b86cef637feac8745 gcc/et-forest.h 241dffa213208d61454b129b72b68d26 gcc/except.c c6370f22bbfcbcb87187c92f76076171 gcc/except.h ! 646d11e4621d38b93bdd5ec9084a30b9 gcc/exec-tool.in ! 1e7ffcb4c7304e693888f21446a574c9 gcc/explow.c 8c8476ba0f61914dffce238540c59b95 gcc/explow.h ! add1e4cb369e0520484abd0b715bc767 gcc/expmed.c 5e0174392e3f3a8cc0a63391e02aa772 gcc/expmed.h ! 4ceca65ed0e7d617a2f7bb8a783da67a gcc/expr.c 39274814d6e8332f62ce66e987da6dcd gcc/expr.h a89ff289b70e8fa646431a2b2cd439d3 gcc/fibonacci_heap.c 9bcdbc3fe605cab6b77a06f781d4a583 gcc/fibonacci_heap.h *************** c7818ea72561a6c3ef3613f1f94eef57 gcc/fi *** 5115,5123 **** 2ba3f19d1d4d27e75495303b9c20747e gcc/flags.h 8111a2f80dd9f60a732dad3f26e81e97 gcc/fold-const-call.c 16906a527f09ac9bf549f3acfa4223cd gcc/fold-const-call.h ! fd7ac0ac119fb78f18c4baccccd61e50 gcc/fold-const.c abc79786bf3632dfb6fbaa4020b7260a gcc/fold-const.h ! 772aa6c6a37e8c7dac96b1073a322534 gcc/fortran/ChangeLog 3330102ad3a0217cba963be6b5eefd58 gcc/fortran/ChangeLog-2002 d000ab985b1eeb1ad5749f98b8fef99f gcc/fortran/ChangeLog-2003 bf42f94f0c51dcc7d8051cc7fda1efdc gcc/fortran/ChangeLog-2004 --- 5122,5130 ---- 2ba3f19d1d4d27e75495303b9c20747e gcc/flags.h 8111a2f80dd9f60a732dad3f26e81e97 gcc/fold-const-call.c 16906a527f09ac9bf549f3acfa4223cd gcc/fold-const-call.h ! 7fc5dfef3abeab38d8d3f917a3dd8d73 gcc/fold-const.c abc79786bf3632dfb6fbaa4020b7260a gcc/fold-const.h ! e6cafcaf569c837a520f8f487e0116a7 gcc/fortran/ChangeLog 3330102ad3a0217cba963be6b5eefd58 gcc/fortran/ChangeLog-2002 d000ab985b1eeb1ad5749f98b8fef99f gcc/fortran/ChangeLog-2003 bf42f94f0c51dcc7d8051cc7fda1efdc gcc/fortran/ChangeLog-2004 *************** a71efd3e199a80ee07c7f350cc8fcf91 gcc/fo *** 5140,5149 **** 5c6f2ebe741a0ada8c3033e2ea5d2ad7 gcc/fortran/Make-lang.in 5909b9f6e71710f62afe91d5f67898f7 gcc/fortran/arith.c ca8b1e108aefbac2b7ac57c153617f6c gcc/fortran/arith.h ! 55de4a4c2701c0ba48282c56f1abe2b8 gcc/fortran/array.c 22a0a106380de68c4cdc48f21e8df1eb gcc/fortran/bbt.c ! 22ecc117897a6c4b6194a4d61bb923b8 gcc/fortran/check.c ! 1fe39e75cdb5ee802bdcb031acea2ebc gcc/fortran/class.c ff1762e0971ecf2d08fcffa2311224bd gcc/fortran/config-lang.in d0f92e4c6353c809d59a8b3d9f6c1b82 gcc/fortran/constructor.c d74f46867c50e9065742294cf7981112 gcc/fortran/constructor.h --- 5147,5156 ---- 5c6f2ebe741a0ada8c3033e2ea5d2ad7 gcc/fortran/Make-lang.in 5909b9f6e71710f62afe91d5f67898f7 gcc/fortran/arith.c ca8b1e108aefbac2b7ac57c153617f6c gcc/fortran/arith.h ! b05deab2c992671d980cfe3478e519f9 gcc/fortran/array.c 22a0a106380de68c4cdc48f21e8df1eb gcc/fortran/bbt.c ! ec3ecfb4fcfde5919a0f4f68e3d2b285 gcc/fortran/check.c ! a8a6bab62f224890f29d51f5f16aefd3 gcc/fortran/class.c ff1762e0971ecf2d08fcffa2311224bd gcc/fortran/config-lang.in d0f92e4c6353c809d59a8b3d9f6c1b82 gcc/fortran/constructor.c d74f46867c50e9065742294cf7981112 gcc/fortran/constructor.h *************** d74f46867c50e9065742294cf7981112 gcc/fo *** 5152,5177 **** b36a6c41c7be94c6ecabf570d20ef218 gcc/fortran/cpp.h f014f88abd3f67ba65654dfb86f07d39 gcc/fortran/data.c 4577ffbed1dda4ed381606219c395ead gcc/fortran/data.h ! 3f5a04f5bb693295d67073d617e8823e gcc/fortran/decl.c ff2a9c749b3cdddd0069d2681223f4b0 gcc/fortran/dependency.c c44b979760eb69c741f2153783e81265 gcc/fortran/dependency.h 3e38fbef8d1fa77431311f2c23b04486 gcc/fortran/dump-parse-tree.c 339cf2cc8c2a7445bbf46589cfd8565c gcc/fortran/error.c ! fbdae72a697a9654ae4c9ccd88c35ec9 gcc/fortran/expr.c d7765a920ed5575a88d4db604b220ae8 gcc/fortran/f95-lang.c ! 21570896d1e722052eda078eddb91dfa gcc/fortran/frontend-passes.c 4a9175c58f9890ba356a1a7a096d5080 gcc/fortran/gfc-diagnostic.def 6185d88092feb0bfe9da2dd3a00c4a9b gcc/fortran/gfc-internals.texi ! 17177e55236611c7e98245be84363e7f gcc/fortran/gfortran.h ! 1b627b78375ba0ef99d0e6e89e3cceb7 gcc/fortran/gfortran.info ba78f919c059d2c39dea6fd637ec60c4 gcc/fortran/gfortran.texi 4cc401504b7e658fab348681169c32a4 gcc/fortran/gfortranspec.c ! de362facd5665a99e0a34902e84ed6ec gcc/fortran/interface.c ! 7256db821cba2b44b836e8e30516fecf gcc/fortran/intrinsic.c ceea3037f74de08ef111da7bb019ed4c gcc/fortran/intrinsic.h 9f9aec12ab6a67091b66c4f231a3e1f8 gcc/fortran/intrinsic.texi a06453ed65fec3338fa1b2817ff8957b gcc/fortran/invoke.texi ! 452f712e0cb0e2762a3c36879ef0f87a gcc/fortran/io.c 6d5e915cff913cdb02ba2baa120b8fe8 gcc/fortran/ioparm.def 2bee38469d4ce1098c8c91e20abe8440 gcc/fortran/iresolve.c 06cbd27c3b0bbe8982f480c02560715c gcc/fortran/iso-c-binding.def --- 5159,5184 ---- b36a6c41c7be94c6ecabf570d20ef218 gcc/fortran/cpp.h f014f88abd3f67ba65654dfb86f07d39 gcc/fortran/data.c 4577ffbed1dda4ed381606219c395ead gcc/fortran/data.h ! 3a93d2749eed9e47bc0d1ecdf1175c46 gcc/fortran/decl.c ff2a9c749b3cdddd0069d2681223f4b0 gcc/fortran/dependency.c c44b979760eb69c741f2153783e81265 gcc/fortran/dependency.h 3e38fbef8d1fa77431311f2c23b04486 gcc/fortran/dump-parse-tree.c 339cf2cc8c2a7445bbf46589cfd8565c gcc/fortran/error.c ! b54645eec62d2d184469ef591d0e7406 gcc/fortran/expr.c d7765a920ed5575a88d4db604b220ae8 gcc/fortran/f95-lang.c ! dbade9a0443babcb6841e422e4bd90ec gcc/fortran/frontend-passes.c 4a9175c58f9890ba356a1a7a096d5080 gcc/fortran/gfc-diagnostic.def 6185d88092feb0bfe9da2dd3a00c4a9b gcc/fortran/gfc-internals.texi ! 210ea7941b8ac304a8a9dc59d1f21775 gcc/fortran/gfortran.h ! 9475f1be32fdf8423fa1288030b62aae gcc/fortran/gfortran.info ba78f919c059d2c39dea6fd637ec60c4 gcc/fortran/gfortran.texi 4cc401504b7e658fab348681169c32a4 gcc/fortran/gfortranspec.c ! fdaa35d24d70de3a8ac5f13bf9d76599 gcc/fortran/interface.c ! 829eaa0082269f5b5febfdb18143a3dc gcc/fortran/intrinsic.c ceea3037f74de08ef111da7bb019ed4c gcc/fortran/intrinsic.h 9f9aec12ab6a67091b66c4f231a3e1f8 gcc/fortran/intrinsic.texi a06453ed65fec3338fa1b2817ff8957b gcc/fortran/invoke.texi ! fca17b96a19a1afac83ccfb428b5da99 gcc/fortran/io.c 6d5e915cff913cdb02ba2baa120b8fe8 gcc/fortran/ioparm.def 2bee38469d4ce1098c8c91e20abe8440 gcc/fortran/iresolve.c 06cbd27c3b0bbe8982f480c02560715c gcc/fortran/iso-c-binding.def *************** a06453ed65fec3338fa1b2817ff8957b gcc/fo *** 5179,5216 **** 4704c3c4e98e7f39a242215740f10a69 gcc/fortran/lang-specs.h e283f0937fc450e80999166335b17244 gcc/fortran/lang.opt 226cf6b14c1286da7bf2193ae58b56d2 gcc/fortran/libgfortran.h ! 095aa6e3e39eb3e48718d509f03fc1bb gcc/fortran/match.c 828ba0a275b20969ca5988535d6e958a gcc/fortran/match.h be55c16cc142b0c725759a753b87bf54 gcc/fortran/matchexp.c a7b0953cc8a68adc1bb8bbae3cfe218d gcc/fortran/mathbuiltins.def 6fec7cdea16d5f5e62a6bac40b8979d3 gcc/fortran/misc.c ! bd4c85f1bfaf568b8b1630bd615948df gcc/fortran/module.c ! 3bb5b3503be17cad8ed191502a38e84c gcc/fortran/openmp.c a846edad604c36aca8373eca299f9003 gcc/fortran/options.c ! dbc9f2cffbd2f5ce5884eb74b2e03ddd gcc/fortran/parse.c be3bc61c20fd3fe95f04b104478ae250 gcc/fortran/parse.h ! b86b74cbf789383840f1451cc4524da2 gcc/fortran/primary.c ! 323681db6af246f08164c5b1ea496f6d gcc/fortran/resolve.c 9210d7371a77a15b79b659e8719ab872 gcc/fortran/scanner.c 679740af5fd1779d09bad19b2a37b9cf gcc/fortran/scanner.h ! 09726f1a464706d391e025f9496c8fa4 gcc/fortran/simplify.c c992b80ea1e122025853709b9349485d gcc/fortran/st.c 68eda559c17fe42472ac86c38c28a099 gcc/fortran/symbol.c ! 45d37e6409d42b3c81e83c67c0d01bd0 gcc/fortran/target-memory.c 2079251ce04664a8bcacf6d0d1b9c63d gcc/fortran/target-memory.h ! e12707b8c46b85932364de984731828b gcc/fortran/trans-array.c 5f7e7c6d824b5b11c403458ed281d99d gcc/fortran/trans-array.h 3b24f22e64661b57edc88f7be8c0e39d gcc/fortran/trans-common.c 7067790d4cb3a5061b0d1ce2e9c343e9 gcc/fortran/trans-const.c b56b11f97407d25ca49b09760f059abe gcc/fortran/trans-const.h ! ec676dfb451d6c22b40bb4810359b33b gcc/fortran/trans-decl.c ! 90fea29116e02814d66f538fb1ce3d42 gcc/fortran/trans-expr.c ! 244e3b15555416cc7f3603daceea2c06 gcc/fortran/trans-intrinsic.c 8b2a38b5821ecb86b2d2c64402eab26a gcc/fortran/trans-io.c a74d6a9935c305f1edb58fb8465761de gcc/fortran/trans-openmp.c ! 00dc6e1aa41a173d932848434cc34999 gcc/fortran/trans-stmt.c 5bf228024f266738a2c924e3b4c3c159 gcc/fortran/trans-stmt.h ! b3bf67da1073ccf863398e9d1b067315 gcc/fortran/trans-types.c 9c69f1144a81294c83c5dfccf059e4c4 gcc/fortran/trans-types.h d64a1b4f0cf5fc8fb67e745e08325f43 gcc/fortran/trans.c 81530ead86dd639638783c7081dd79d5 gcc/fortran/trans.h --- 5186,5223 ---- 4704c3c4e98e7f39a242215740f10a69 gcc/fortran/lang-specs.h e283f0937fc450e80999166335b17244 gcc/fortran/lang.opt 226cf6b14c1286da7bf2193ae58b56d2 gcc/fortran/libgfortran.h ! 76fa60e2c6b43c01900148ad1c2229c8 gcc/fortran/match.c 828ba0a275b20969ca5988535d6e958a gcc/fortran/match.h be55c16cc142b0c725759a753b87bf54 gcc/fortran/matchexp.c a7b0953cc8a68adc1bb8bbae3cfe218d gcc/fortran/mathbuiltins.def 6fec7cdea16d5f5e62a6bac40b8979d3 gcc/fortran/misc.c ! fa7960ce4e6f31518d07f43fab0064fb gcc/fortran/module.c ! 98073c8b0067e3f1cf86cfcbedea3d4b gcc/fortran/openmp.c a846edad604c36aca8373eca299f9003 gcc/fortran/options.c ! 977acb907d69546a8fe4d2f9cf6497a8 gcc/fortran/parse.c be3bc61c20fd3fe95f04b104478ae250 gcc/fortran/parse.h ! 0213a860b48912534c8d5b479e6a7ca4 gcc/fortran/primary.c ! 94c458f91306bac2e0b519ed4baea33c gcc/fortran/resolve.c 9210d7371a77a15b79b659e8719ab872 gcc/fortran/scanner.c 679740af5fd1779d09bad19b2a37b9cf gcc/fortran/scanner.h ! 113545e00223632c0e6f76240f1aee08 gcc/fortran/simplify.c c992b80ea1e122025853709b9349485d gcc/fortran/st.c 68eda559c17fe42472ac86c38c28a099 gcc/fortran/symbol.c ! 006ae369e32fd80bae953a25b64ef9b1 gcc/fortran/target-memory.c 2079251ce04664a8bcacf6d0d1b9c63d gcc/fortran/target-memory.h ! 1c6d1da63a3d9a455d0f808df3710c0f gcc/fortran/trans-array.c 5f7e7c6d824b5b11c403458ed281d99d gcc/fortran/trans-array.h 3b24f22e64661b57edc88f7be8c0e39d gcc/fortran/trans-common.c 7067790d4cb3a5061b0d1ce2e9c343e9 gcc/fortran/trans-const.c b56b11f97407d25ca49b09760f059abe gcc/fortran/trans-const.h ! 32a307a8fca44beb944d31727152aaba gcc/fortran/trans-decl.c ! c5faf10720af7ecee39bc4460c4ff0aa gcc/fortran/trans-expr.c ! 7c56cc8a0fe94ecd22b4f344a3edcd52 gcc/fortran/trans-intrinsic.c 8b2a38b5821ecb86b2d2c64402eab26a gcc/fortran/trans-io.c a74d6a9935c305f1edb58fb8465761de gcc/fortran/trans-openmp.c ! 67bac98c6f4d0bb710fb422590553f43 gcc/fortran/trans-stmt.c 5bf228024f266738a2c924e3b4c3c159 gcc/fortran/trans-stmt.h ! b4109643c92ddd2e089c7aab89c6de51 gcc/fortran/trans-types.c 9c69f1144a81294c83c5dfccf059e4c4 gcc/fortran/trans-types.h d64a1b4f0cf5fc8fb67e745e08325f43 gcc/fortran/trans.c 81530ead86dd639638783c7081dd79d5 gcc/fortran/trans.h *************** d64a1b4f0cf5fc8fb67e745e08325f43 gcc/fo *** 5220,5226 **** 0016a094a47192e17ab43316c6b81e77 gcc/function-abi.cc f5575b9b4148e14a06bd15e48a059fe9 gcc/function-abi.h 1d1c7fefe6627b480bdca65a93572b85 gcc/function-tests.c ! cc5e9a9ba4d793fc256e197e82d0c868 gcc/function.c 471a2138d677294e0d8b0ad39fdac18d gcc/function.h be4b170ee267123479f1e1f21b624f1b gcc/fwprop.c dedbe8a6eb31269c6155407f0628b3dd gcc/gcc-ar.c --- 5227,5233 ---- 0016a094a47192e17ab43316c6b81e77 gcc/function-abi.cc f5575b9b4148e14a06bd15e48a059fe9 gcc/function-abi.h 1d1c7fefe6627b480bdca65a93572b85 gcc/function-tests.c ! 8d7a3430127b1531b249ae8f38a04f63 gcc/function.c 471a2138d677294e0d8b0ad39fdac18d gcc/function.h be4b170ee267123479f1e1f21b624f1b gcc/fwprop.c dedbe8a6eb31269c6155407f0628b3dd gcc/gcc-ar.c *************** cfff649691185f367fd2b8e73ac7ad99 gcc/gc *** 5229,5235 **** 62560119c356b251cca1099cb4c0e36e gcc/gcc-rich-location.c 833829dec49e2b78c0ce9e6ff94ed95e gcc/gcc-rich-location.h 1e7a8acabfe981225ee07f2ca2588326 gcc/gcc-symtab.h ! 946de02a6e781d494fb1bf22e6d93aa9 gcc/gcc.c bd03f9afb8e7458acac40b10fd781d0a gcc/gcc.h bbb1c23e69c2fe3a3d5ad53c86e1ecb6 gcc/gcov-counter.def f54685150224625db645d8f0a852916f gcc/gcov-dump.c --- 5236,5242 ---- 62560119c356b251cca1099cb4c0e36e gcc/gcc-rich-location.c 833829dec49e2b78c0ce9e6ff94ed95e gcc/gcc-rich-location.h 1e7a8acabfe981225ee07f2ca2588326 gcc/gcc-symtab.h ! 001ba31c288a6eb84d2c513fa9e853d0 gcc/gcc.c bd03f9afb8e7458acac40b10fd781d0a gcc/gcc.h bbb1c23e69c2fe3a3d5ad53c86e1ecb6 gcc/gcov-counter.def f54685150224625db645d8f0a852916f gcc/gcov-dump.c *************** a1e549f76fdae9e7751ece58813a2001 gcc/ge *** 5264,5270 **** 512811c4f04c2a6b3ee96bd1050c8254 gcc/genextract.c 6b1b20df0e1c1d98bbb87eda8feb1aa9 gcc/genflags.c d5ba0558db6b0ab6fa6173d1928e95a8 gcc/gengenrtl.c ! 0e579dbf33edf4a0dc80774e9e69fda8 gcc/gengtype-lex.c 790251f979c35416aba2f02f062588a3 gcc/gengtype-lex.l 50e413eeb1665bf9eb5c8f68ac1b3513 gcc/gengtype-parse.c 0f39be6bb5abe83175ebce4bd00ad8b8 gcc/gengtype-state.c --- 5271,5277 ---- 512811c4f04c2a6b3ee96bd1050c8254 gcc/genextract.c 6b1b20df0e1c1d98bbb87eda8feb1aa9 gcc/genflags.c d5ba0558db6b0ab6fa6173d1928e95a8 gcc/gengenrtl.c ! a47d7712b14bcc384e3ad4607724c775 gcc/gengtype-lex.c 790251f979c35416aba2f02f062588a3 gcc/gengtype-lex.l 50e413eeb1665bf9eb5c8f68ac1b3513 gcc/gengtype-parse.c 0f39be6bb5abe83175ebce4bd00ad8b8 gcc/gengtype-state.c *************** e4995e4de577b4b27e3875c087a4e945 gcc/gg *** 5292,5306 **** fef9e50d2114dea9d6dd02b3b69d93f8 gcc/ggc.h c47bf3facc266285c6e5bd3e650c492a gcc/gimple-builder.c de56894589d757f1f3f145c4c83b72ff gcc/gimple-builder.h ! 7558743a36f3786faa1b536fc3b338b8 gcc/gimple-expr.c 75dcc7cd70023b5f7d5893cd38d98788 gcc/gimple-expr.h ! 4fe1162d57d3bae501e56a8d470384de gcc/gimple-fold.c 0a76fb5bab9be03fb7841b54cc77fe13 gcc/gimple-fold.h 288a5e28f5cb5268fc516fcb152423e4 gcc/gimple-iterator.c fb4e7f4a72cf6ee4d871410e32f4969e gcc/gimple-iterator.h a7c2e28e37ef8167aff9fe098a4c173b gcc/gimple-laddress.c ! bb40f1f807b876d770535627d96d48fb gcc/gimple-loop-interchange.cc ! 520e4809f6e1714500ab6ae9357133c0 gcc/gimple-loop-jam.c b9f5a83262367b5f8bba49d409d5764b gcc/gimple-loop-versioning.cc 16718adca4a822e2cc7c3ae616e08fed gcc/gimple-low.c ee3c9c60a48a8b0a2788cc604f0c7e26 gcc/gimple-low.h --- 5299,5313 ---- fef9e50d2114dea9d6dd02b3b69d93f8 gcc/ggc.h c47bf3facc266285c6e5bd3e650c492a gcc/gimple-builder.c de56894589d757f1f3f145c4c83b72ff gcc/gimple-builder.h ! ee8960ac6197303f5d1964624aa92a1f gcc/gimple-expr.c 75dcc7cd70023b5f7d5893cd38d98788 gcc/gimple-expr.h ! e357c1deffc66b41d630980cf1be56b2 gcc/gimple-fold.c 0a76fb5bab9be03fb7841b54cc77fe13 gcc/gimple-fold.h 288a5e28f5cb5268fc516fcb152423e4 gcc/gimple-iterator.c fb4e7f4a72cf6ee4d871410e32f4969e gcc/gimple-iterator.h a7c2e28e37ef8167aff9fe098a4c173b gcc/gimple-laddress.c ! 8ce4fa8100f8ece51528b1eca5a49cde gcc/gimple-loop-interchange.cc ! 7fbefc4a1380cd44f42c3a61d5bde17a gcc/gimple-loop-jam.c b9f5a83262367b5f8bba49d409d5764b gcc/gimple-loop-versioning.cc 16718adca4a822e2cc7c3ae616e08fed gcc/gimple-low.c ee3c9c60a48a8b0a2788cc604f0c7e26 gcc/gimple-low.h *************** cfa94a6b4f0e2941647e8a2af20f2cb5 gcc/gi *** 5310,5326 **** 8d0ee2122e3ec95b06bab624b0b1c323 gcc/gimple-pretty-print.c ac8ca6e9ad16ee58747fca666306d275 gcc/gimple-pretty-print.h ed17d1c5e9fc48436a080788ce2b0ef1 gcc/gimple-ssa-backprop.c ! e0505ac1c8203b199b62569942aa4e86 gcc/gimple-ssa-evrp-analyze.c 71112140489595b03f3055b8302a67c7 gcc/gimple-ssa-evrp-analyze.h 99487699bd43229ba38ae6f32357515f gcc/gimple-ssa-evrp.c 66a99b8b8ed32ca17bfaa44d94fb352d gcc/gimple-ssa-isolate-paths.c 52b5e409d797ce70c64b4786ee0bf3b8 gcc/gimple-ssa-nonnull-compare.c c7c49b9d0297fb5d524ed3f7394f0968 gcc/gimple-ssa-split-paths.c bf48772e4c10881b67ac229cd00aff50 gcc/gimple-ssa-sprintf.c ! ac5dbcfe7111f50fc65855861276c78c gcc/gimple-ssa-store-merging.c 8960c3cbca38a2eaf05bd32e3ecf4854 gcc/gimple-ssa-strength-reduction.c 83fd2fdd73077218ec13ec004aef5ab0 gcc/gimple-ssa-warn-alloca.c ! 607c1680feb4c13645189178ebc89958 gcc/gimple-ssa-warn-restrict.c cd32ce95364c22a13f86ddf632be31a0 gcc/gimple-ssa-warn-restrict.h 8ff75884d02d2da12247c38659c37203 gcc/gimple-ssa.h 6d3adbf1bdbcfd2a2b66bd506a67fbff gcc/gimple-streamer-in.c --- 5317,5333 ---- 8d0ee2122e3ec95b06bab624b0b1c323 gcc/gimple-pretty-print.c ac8ca6e9ad16ee58747fca666306d275 gcc/gimple-pretty-print.h ed17d1c5e9fc48436a080788ce2b0ef1 gcc/gimple-ssa-backprop.c ! 8098adbee1cdd7298097debca9882232 gcc/gimple-ssa-evrp-analyze.c 71112140489595b03f3055b8302a67c7 gcc/gimple-ssa-evrp-analyze.h 99487699bd43229ba38ae6f32357515f gcc/gimple-ssa-evrp.c 66a99b8b8ed32ca17bfaa44d94fb352d gcc/gimple-ssa-isolate-paths.c 52b5e409d797ce70c64b4786ee0bf3b8 gcc/gimple-ssa-nonnull-compare.c c7c49b9d0297fb5d524ed3f7394f0968 gcc/gimple-ssa-split-paths.c bf48772e4c10881b67ac229cd00aff50 gcc/gimple-ssa-sprintf.c ! 52c66d872308f8c14949eb95700ba5cd gcc/gimple-ssa-store-merging.c 8960c3cbca38a2eaf05bd32e3ecf4854 gcc/gimple-ssa-strength-reduction.c 83fd2fdd73077218ec13ec004aef5ab0 gcc/gimple-ssa-warn-alloca.c ! f72a465e49a5175b7273d87fd391f004 gcc/gimple-ssa-warn-restrict.c cd32ce95364c22a13f86ddf632be31a0 gcc/gimple-ssa-warn-restrict.h 8ff75884d02d2da12247c38659c37203 gcc/gimple-ssa.h 6d3adbf1bdbcfd2a2b66bd506a67fbff gcc/gimple-streamer-in.c *************** d4f63d3a8fc90415c3899934879d276f gcc/gi *** 5333,5339 **** 49236c9c5e2a9761277ed11ebc366699 gcc/gimple.h 0d22d1df93aff237ce1c96b54a6eb509 gcc/gimplify-me.c 13e150fec65c17a13458b4af15a922ab gcc/gimplify-me.h ! b89fc2f0f1d6606668bf3cdaa962c3c4 gcc/gimplify.c 39d4e3996900e0d2d838e0c7dcf99364 gcc/gimplify.h 1caa0bdf66e19f5a1051d40c48026308 gcc/ginclude/float.h 62f748511bcda55470e6287312fd2661 gcc/ginclude/iso646.h --- 5340,5346 ---- 49236c9c5e2a9761277ed11ebc366699 gcc/gimple.h 0d22d1df93aff237ce1c96b54a6eb509 gcc/gimplify-me.c 13e150fec65c17a13458b4af15a922ab gcc/gimplify-me.h ! 528f5d92ce338d59eead0446fb112990 gcc/gimplify.c 39d4e3996900e0d2d838e0c7dcf99364 gcc/gimplify.h 1caa0bdf66e19f5a1051d40c48026308 gcc/ginclude/float.h 62f748511bcda55470e6287312fd2661 gcc/ginclude/iso646.h *************** a7b6c54cea96cb12874d9565e58bab5a gcc/gi *** 5350,5356 **** 0608636acf1496b7f55fd44f5db0b82b gcc/ginclude/unwind-arm-common.h 8d9ecf0d6ef93c79623ce1d27a32a2cb gcc/ginclude/varargs.h f68ba128faa37699b34eabd954dec2e7 gcc/glimits.h ! 13b67b6159c16f58f434cbb3f7288446 gcc/go/ChangeLog 7704e902d7eca77c3c54d4b0d74e1280 gcc/go/Make-lang.in 60ea054548c83c7f66170073f9f3e74c gcc/go/README.gcc ba1d1d5398ab441ac25b708319bb4d33 gcc/go/config-lang.in --- 5357,5363 ---- 0608636acf1496b7f55fd44f5db0b82b gcc/ginclude/unwind-arm-common.h 8d9ecf0d6ef93c79623ce1d27a32a2cb gcc/ginclude/varargs.h f68ba128faa37699b34eabd954dec2e7 gcc/glimits.h ! 80bbfa396dc7079b85d255ebec831415 gcc/go/ChangeLog 7704e902d7eca77c3c54d4b0d74e1280 gcc/go/Make-lang.in 60ea054548c83c7f66170073f9f3e74c gcc/go/README.gcc ba1d1d5398ab441ac25b708319bb4d33 gcc/go/config-lang.in *************** db2b7cea2edb5acc9de424c6dce22fa0 gcc/go *** 5376,5382 **** ee8753eb1d8ca2fa168f6a71d3991455 gcc/go/gofrontend/escape.h 5a76e1b0c3bb652ded19fa44e450e24f gcc/go/gofrontend/export.cc b72c14ae63bb87f55620d747d46e54c7 gcc/go/gofrontend/export.h ! ac3c88abaef713cb2763b05063c1b929 gcc/go/gofrontend/expressions.cc 069f200e4989ff9c0d926178aaf9ba75 gcc/go/gofrontend/expressions.h bf7f8a519eadaa90804fe15cfa37ba6f gcc/go/gofrontend/go-diagnostics.cc accfd5ea41ee789e6adbaec31a228cfe gcc/go/gofrontend/go-diagnostics.h --- 5383,5389 ---- ee8753eb1d8ca2fa168f6a71d3991455 gcc/go/gofrontend/escape.h 5a76e1b0c3bb652ded19fa44e450e24f gcc/go/gofrontend/export.cc b72c14ae63bb87f55620d747d46e54c7 gcc/go/gofrontend/export.h ! 7941bdb73be49be889cf7ee4ebb032f1 gcc/go/gofrontend/expressions.cc 069f200e4989ff9c0d926178aaf9ba75 gcc/go/gofrontend/expressions.h bf7f8a519eadaa90804fe15cfa37ba6f gcc/go/gofrontend/go-diagnostics.cc accfd5ea41ee789e6adbaec31a228cfe gcc/go/gofrontend/go-diagnostics.h *************** febdf68cead89eb29ba957c3d6d664ec gcc/go *** 5413,5419 **** 06e709c603027775705da760296923e0 gcc/go/gospec.c bfd45c09cf77f5527b4623c7654cb355 gcc/go/lang-specs.h c25395d3e2495cf2567b37bbcd071437 gcc/go/lang.opt ! 3b455f308aba731953aa47e9dd84c3c3 gcc/godump.c b7e7fa2dc2de04474ef52ebe420b3451 gcc/graph.c 839b194b2cd5c9a609442a88ad11ac39 gcc/graph.h 8139dbb5830992482fb067cd9cf0794b gcc/graphds.c --- 5420,5426 ---- 06e709c603027775705da760296923e0 gcc/go/gospec.c bfd45c09cf77f5527b4623c7654cb355 gcc/go/lang-specs.h c25395d3e2495cf2567b37bbcd071437 gcc/go/lang.opt ! 3fc78c080cbd44e65b5a59d4fe6e3978 gcc/godump.c b7e7fa2dc2de04474ef52ebe420b3451 gcc/graph.c 839b194b2cd5c9a609442a88ad11ac39 gcc/graph.h 8139dbb5830992482fb067cd9cf0794b gcc/graphds.c *************** f61bfa11e5056710d46d3ef576f21438 gcc/hs *** 5461,5467 **** ba4bc2226879e0be934d32f6f2aadeaa gcc/hw-doloop.h 909d931869b7d5535696c8f9e6fbc58d gcc/hwint.c 53f6c7822d2955059f5474124b89c8d8 gcc/hwint.h ! 444198392af6fe362f336f37512cc421 gcc/ifcvt.c 7cf51303d986638791f93b75b6e05e25 gcc/ifcvt.h c7a8101076016714491228c2c888df88 gcc/inchash.c 1a0d7710c9a7b84ecbb544fedf87876c gcc/inchash.h --- 5468,5474 ---- ba4bc2226879e0be934d32f6f2aadeaa gcc/hw-doloop.h 909d931869b7d5535696c8f9e6fbc58d gcc/hwint.c 53f6c7822d2955059f5474124b89c8d8 gcc/hwint.h ! 468e9ae5cdbbc736482dfec69c96549c gcc/ifcvt.c 7cf51303d986638791f93b75b6e05e25 gcc/ifcvt.h c7a8101076016714491228c2c888df88 gcc/inchash.c 1a0d7710c9a7b84ecbb544fedf87876c gcc/inchash.h *************** c10958cc3a7b24c385a20752fe3a2e0d gcc/in *** 5479,5487 **** 819569bc34e13c349c3932d6e6da1df2 gcc/intl.c bb3281212ea808669439ad4662b1b953 gcc/intl.h 9091098d66baa63d871f42b506403c89 gcc/ipa-comdats.c ! dfd39f5ba8007ab59d4b1a2d5ce92229 gcc/ipa-cp.c de4f6e1ed44e7c2c2979237aed35b442 gcc/ipa-devirt.c ! 2d647198abf8f778cda6c4163e07680d gcc/ipa-fnsummary.c 074cb8448c24cdcd2c461a1010d38ba6 gcc/ipa-fnsummary.h 8a41316f338b5a85f877fd92ef93cccf gcc/ipa-hsa.c 53d00c9b7b15544414d17d6417e0cd41 gcc/ipa-icf-gimple.c --- 5486,5494 ---- 819569bc34e13c349c3932d6e6da1df2 gcc/intl.c bb3281212ea808669439ad4662b1b953 gcc/intl.h 9091098d66baa63d871f42b506403c89 gcc/ipa-comdats.c ! 4a2cd0714dd002fe024491442bbbe527 gcc/ipa-cp.c de4f6e1ed44e7c2c2979237aed35b442 gcc/ipa-devirt.c ! bb4167e5f1881c114cd64b3bad2eeaa4 gcc/ipa-fnsummary.c 074cb8448c24cdcd2c461a1010d38ba6 gcc/ipa-fnsummary.h 8a41316f338b5a85f877fd92ef93cccf gcc/ipa-hsa.c 53d00c9b7b15544414d17d6417e0cd41 gcc/ipa-icf-gimple.c *************** bfc25a0b140dcb9010bed1d5cda4ac03 gcc/ip *** 5492,5516 **** 548b57d8647aadd1ddfdfe86db803ae0 gcc/ipa-inline-transform.c 583cb3e30c6bd939aa176db36f0fad67 gcc/ipa-inline.c bcd49baed1b788693f2054a0dccd974d gcc/ipa-inline.h ! 0716f1369edccc925147ea7fa52a0c1f gcc/ipa-param-manipulation.c e63fee9db5b563404cea0ca9776d7184 gcc/ipa-param-manipulation.h 2d241e119d12331dba76d610313bfdbb gcc/ipa-polymorphic-call.c b0a1a35798dfa17cb36973fddca8deec gcc/ipa-predicate.c 3ec5aa020f8389f9c1ed0ec73750bb24 gcc/ipa-predicate.h eb01604e680f043c4bba795d60de053a gcc/ipa-profile.c ! b60d8fad076005a263597cb526b2ec14 gcc/ipa-prop.c ! 132af043eff9d5a61ad484e126e81afc gcc/ipa-prop.h ! f3e970e99ab71a9a0e4570d28f006480 gcc/ipa-pure-const.c 02921cf6e5e57296e9cf087bb164b8cc gcc/ipa-ref.c de42570b6f80064efcbd15aa15f687a7 gcc/ipa-ref.h 165cab683c90b638603bed4138b2d41c gcc/ipa-reference.c 9eefdcbb15155dc403bd5991f911cd30 gcc/ipa-reference.h f055de76a5a05f54d00a80ac20759a93 gcc/ipa-split.c ! c451e3d5d412c783574e743f7316ce9e gcc/ipa-sra.c 455cfd66c52224becd8618c34429a359 gcc/ipa-utils.c 06d9500a201d2a69eb2f99ba5a3525a5 gcc/ipa-utils.h 07a2becdd98104b287d8d760fcf0f7cd gcc/ipa-visibility.c ! 9009a2b0c225422a5b1b543b758b6c09 gcc/ipa.c ba0f8a4827b070b9b7f97d9d09936884 gcc/ira-build.c 433798122aec602e970402e8b960d598 gcc/ira-color.c 8d2f4b9c89bc42d97800f26301dcdc10 gcc/ira-conflicts.c --- 5499,5523 ---- 548b57d8647aadd1ddfdfe86db803ae0 gcc/ipa-inline-transform.c 583cb3e30c6bd939aa176db36f0fad67 gcc/ipa-inline.c bcd49baed1b788693f2054a0dccd974d gcc/ipa-inline.h ! ed8330c1a7af8690e589b8713b0381f7 gcc/ipa-param-manipulation.c e63fee9db5b563404cea0ca9776d7184 gcc/ipa-param-manipulation.h 2d241e119d12331dba76d610313bfdbb gcc/ipa-polymorphic-call.c b0a1a35798dfa17cb36973fddca8deec gcc/ipa-predicate.c 3ec5aa020f8389f9c1ed0ec73750bb24 gcc/ipa-predicate.h eb01604e680f043c4bba795d60de053a gcc/ipa-profile.c ! 0a9898dba5d60ac9ef5179f81186fd1f gcc/ipa-prop.c ! 58b790b36f0d1ef3a799a5014f4ba30a gcc/ipa-prop.h ! 7af7c417bb739ff28dd735f58891e94e gcc/ipa-pure-const.c 02921cf6e5e57296e9cf087bb164b8cc gcc/ipa-ref.c de42570b6f80064efcbd15aa15f687a7 gcc/ipa-ref.h 165cab683c90b638603bed4138b2d41c gcc/ipa-reference.c 9eefdcbb15155dc403bd5991f911cd30 gcc/ipa-reference.h f055de76a5a05f54d00a80ac20759a93 gcc/ipa-split.c ! 2c6cc867d566dd470f041f60e625c3af gcc/ipa-sra.c 455cfd66c52224becd8618c34429a359 gcc/ipa-utils.c 06d9500a201d2a69eb2f99ba5a3525a5 gcc/ipa-utils.h 07a2becdd98104b287d8d760fcf0f7cd gcc/ipa-visibility.c ! 98e8832e00f0aa9d1e5319aac879cfa8 gcc/ipa.c ba0f8a4827b070b9b7f97d9d09936884 gcc/ira-build.c 433798122aec602e970402e8b960d598 gcc/ira-color.c 8d2f4b9c89bc42d97800f26301dcdc10 gcc/ira-conflicts.c *************** b8e3c890bc1ccade77558f2eba0dce60 gcc/ir *** 5521,5529 **** 94db6b40114ccb20995ee760399d65f5 gcc/ira.c bcf6b7eea8ae7e6b363a86565178be1f gcc/ira.h 7a4e770c6d51b1f35bb2994ca37824aa gcc/is-a.h ! 47a0f9aab4e71e28b314511393d00f8d gcc/jit/ChangeLog 6071bdf04fb356c5ac99a99ec00c9a12 gcc/jit/ChangeLog.jit ! 076bc0388a1d91f63b16ea0bb0196cd3 gcc/jit/Make-lang.in fd0d76b6467c987f813d430a35d4760a gcc/jit/TODO.rst b39429aa4ac3879df6dcedfef177fc8f gcc/jit/config-lang.in df53fb6b84c435b56ac2cb2727b62b27 gcc/jit/docs/Makefile --- 5528,5536 ---- 94db6b40114ccb20995ee760399d65f5 gcc/ira.c bcf6b7eea8ae7e6b363a86565178be1f gcc/ira.h 7a4e770c6d51b1f35bb2994ca37824aa gcc/is-a.h ! e12ef1275522c09fceaa51e02d162a93 gcc/jit/ChangeLog 6071bdf04fb356c5ac99a99ec00c9a12 gcc/jit/ChangeLog.jit ! 1ab65eadbc8d42b650bf4bce38d0ac8d gcc/jit/Make-lang.in fd0d76b6467c987f813d430a35d4760a gcc/jit/TODO.rst b39429aa4ac3879df6dcedfef177fc8f gcc/jit/config-lang.in df53fb6b84c435b56ac2cb2727b62b27 gcc/jit/docs/Makefile *************** bdd9ccba76c8819071a037214fc12eda gcc/ji *** 5558,5565 **** 6369d2b07520cb0fc9d14082499f6be2 gcc/jit/docs/examples/tut04-toyvm/Makefile 999c1d2b92d5d71565c67854aad60e9c gcc/jit/docs/examples/tut04-toyvm/factorial.toy efe1998ded06ac3721d9ced4d96056f0 gcc/jit/docs/examples/tut04-toyvm/fibonacci.toy ! 22c9f360ff80e88d5efb695c24e3799b gcc/jit/docs/examples/tut04-toyvm/toyvm.c ! 447968b944474a53171fdb4f0a15885e gcc/jit/docs/examples/tut04-toyvm/toyvm.cc 3cbe9daf70398730ee60aa4caf2fc200 gcc/jit/docs/examples/tut05-bf.c 448bd66e7e8c1df0627067a19aa2b62c gcc/jit/docs/index.rst 2b427690f363645cc726f8b4ab39dc89 gcc/jit/docs/internals/index.rst --- 5565,5572 ---- 6369d2b07520cb0fc9d14082499f6be2 gcc/jit/docs/examples/tut04-toyvm/Makefile 999c1d2b92d5d71565c67854aad60e9c gcc/jit/docs/examples/tut04-toyvm/factorial.toy efe1998ded06ac3721d9ced4d96056f0 gcc/jit/docs/examples/tut04-toyvm/fibonacci.toy ! 1b5e51b110666eae02f9cdb2b746748d gcc/jit/docs/examples/tut04-toyvm/toyvm.c ! c0e1ffa5d37d656066daaedf759a3127 gcc/jit/docs/examples/tut04-toyvm/toyvm.cc 3cbe9daf70398730ee60aa4caf2fc200 gcc/jit/docs/examples/tut05-bf.c 448bd66e7e8c1df0627067a19aa2b62c gcc/jit/docs/index.rst 2b427690f363645cc726f8b4ab39dc89 gcc/jit/docs/internals/index.rst *************** e2064f0ad41c212d2286a5e1eac3f74e gcc/ji *** 5587,5595 **** bb35ae34749c3d4b831522b940eb81d6 gcc/jit/jit-builtins.c 090374dda1f0e505802f1f5cdb547b8b gcc/jit/jit-builtins.h 2378e5ac5c7a83208505ca578b7913fc gcc/jit/jit-common.h ea419635755d7efb6f5fdce54e6b328e gcc/jit/jit-logging.c 0371184fca08135a5bd2fd6d522bd2c4 gcc/jit/jit-logging.h ! 97775f30db0bb1ad83365bb2f874c41d gcc/jit/jit-playback.c 3fa78ff3a4af23a1f6519b7355ed748c gcc/jit/jit-playback.h 408667927cd77b35ea0fc24bb362a8d2 gcc/jit/jit-recording.c d8362bbecabbeaa66520015ccc40463b gcc/jit/jit-recording.h --- 5594,5603 ---- bb35ae34749c3d4b831522b940eb81d6 gcc/jit/jit-builtins.c 090374dda1f0e505802f1f5cdb547b8b gcc/jit/jit-builtins.h 2378e5ac5c7a83208505ca578b7913fc gcc/jit/jit-common.h + 1b75c79801ee8999f5470885283c2668 gcc/jit/jit-dejagnu.h ea419635755d7efb6f5fdce54e6b328e gcc/jit/jit-logging.c 0371184fca08135a5bd2fd6d522bd2c4 gcc/jit/jit-logging.h ! 1545061a70232b32ccb76e8f9aa8435f gcc/jit/jit-playback.c 3fa78ff3a4af23a1f6519b7355ed748c gcc/jit/jit-playback.h 408667927cd77b35ea0fc24bb362a8d2 gcc/jit/jit-recording.c d8362bbecabbeaa66520015ccc40463b gcc/jit/jit-recording.h *************** ce9938eb018513e4d37f0ba3ef363d7f gcc/ji *** 5605,5611 **** aaaa50e3d4a7c60cc413faccb2d831c6 gcc/jit/notes.txt 519256d1e6f6073febc27396bc150a7b gcc/json.cc 468c660d521ad598c2f63385ef52d9ab gcc/json.h ! 98a787014a06d02481045b278ca932e4 gcc/jump.c 228119d515593cfac00cc0aee8cacee0 gcc/langhooks-def.h b147eae329641650f3c48b095f474ac8 gcc/langhooks.c c787d9baf51bc557a95ad884fcd45b95 gcc/langhooks.h --- 5613,5619 ---- aaaa50e3d4a7c60cc413faccb2d831c6 gcc/jit/notes.txt 519256d1e6f6073febc27396bc150a7b gcc/json.cc 468c660d521ad598c2f63385ef52d9ab gcc/json.h ! b96834faf2ad7069a2edb77b0f765aa2 gcc/jump.c 228119d515593cfac00cc0aee8cacee0 gcc/langhooks-def.h b147eae329641650f3c48b095f474ac8 gcc/langhooks.c c787d9baf51bc557a95ad884fcd45b95 gcc/langhooks.h *************** ba663f306c0c9dc5e602465aa6d791f4 gcc/li *** 5618,5638 **** 30b8e3e407f46ad2cb39260ec4bab9f6 gcc/lock-and-run.sh fa0e89979a1d8c821d2594597ddc309b gcc/loop-doloop.c 899e33ea3264342544a1a784e8d2532c gcc/loop-init.c ! 3e6f92459929015e502152eb07b712ef gcc/loop-invariant.c c157087005c8286392f4367214245e9f gcc/loop-iv.c 3996431341adbc53210b6c9e8d0e4236 gcc/loop-unroll.c a5e0549da42bf024e74e0520d5360537 gcc/loop-unroll.h f2bc1c8b2ac107014231694bd6db858f gcc/lower-subreg.c ba2ef3e2bf21473fb9725dd9cb2d4a7b gcc/lower-subreg.h ! 82dfebddd71d20981f3d2952aaf44e43 gcc/lra-assigns.c 00884867b71e299135b57055ecf93608 gcc/lra-coalesce.c ! 264e4ce6ff8547419eadb3124f55b383 gcc/lra-constraints.c ! f534f4cb8858ccf3049e418e3d9e5f37 gcc/lra-eliminations.c ! ecd6cda6d0692277e20bd96230825d84 gcc/lra-int.h 131ee484a0c9bc738b870661604ff96c gcc/lra-lives.c c6e8b72465923c832850bc83c9e9c085 gcc/lra-remat.c 09fce56317682a0920a5b696ef4ca16a gcc/lra-spills.c ! 6e148b780cdce4a70dab9286f98d7467 gcc/lra.c de3a9e5dafc34e41ce918d46e8051170 gcc/lra.h 48256086fea956f99a65ee44c8ab26be gcc/lto-cgraph.c 3a09f58063306a01ab493833c6f23278 gcc/lto-compress.c --- 5626,5646 ---- 30b8e3e407f46ad2cb39260ec4bab9f6 gcc/lock-and-run.sh fa0e89979a1d8c821d2594597ddc309b gcc/loop-doloop.c 899e33ea3264342544a1a784e8d2532c gcc/loop-init.c ! 028b4c116ea87138be3800b6e6663580 gcc/loop-invariant.c c157087005c8286392f4367214245e9f gcc/loop-iv.c 3996431341adbc53210b6c9e8d0e4236 gcc/loop-unroll.c a5e0549da42bf024e74e0520d5360537 gcc/loop-unroll.h f2bc1c8b2ac107014231694bd6db858f gcc/lower-subreg.c ba2ef3e2bf21473fb9725dd9cb2d4a7b gcc/lower-subreg.h ! 77deb59fa40e538c0cc8d03861ba33d1 gcc/lra-assigns.c 00884867b71e299135b57055ecf93608 gcc/lra-coalesce.c ! d7b02e690079d9c8c421c59ab089f7b3 gcc/lra-constraints.c ! 1f1cf5531147c3f9b045f092c72972db gcc/lra-eliminations.c ! d6f8fe1b123ec17be05771aca8313142 gcc/lra-int.h 131ee484a0c9bc738b870661604ff96c gcc/lra-lives.c c6e8b72465923c832850bc83c9e9c085 gcc/lra-remat.c 09fce56317682a0920a5b696ef4ca16a gcc/lra-spills.c ! 1188ea43762dd5a5421f9cc71ed12428 gcc/lra.c de3a9e5dafc34e41ce918d46e8051170 gcc/lra.h 48256086fea956f99a65ee44c8ab26be gcc/lto-cgraph.c 3a09f58063306a01ab493833c6f23278 gcc/lto-compress.c *************** f601534108bd7d15ecfcf5db1692890f gcc/lt *** 5644,5652 **** 61996695ed1a7e1a968d13c6444854eb gcc/lto-streamer-in.c 2af05e42cf3672b695a784eebaa19f26 gcc/lto-streamer-out.c 6322b1521fdaf76be3c90f339ba47a75 gcc/lto-streamer.c ! bf545b81282ac814f0c63f2793423d41 gcc/lto-streamer.h 3bc10d0f98328d53593b7a5c6118b7ca gcc/lto-wrapper.c ! b4848b3b7bf858d440b604d6042672c8 gcc/lto/ChangeLog ff902999e2da9680340e8d0cace7ec16 gcc/lto/Make-lang.in 6bb73fcbce79fbfce7649ed545fd08e2 gcc/lto/common.c 12eb383f6e35176f4a54226df1009acf gcc/lto/common.h --- 5652,5660 ---- 61996695ed1a7e1a968d13c6444854eb gcc/lto-streamer-in.c 2af05e42cf3672b695a784eebaa19f26 gcc/lto-streamer-out.c 6322b1521fdaf76be3c90f339ba47a75 gcc/lto-streamer.c ! 138480b5ae8ef56e2e180063755ed01e gcc/lto-streamer.h 3bc10d0f98328d53593b7a5c6118b7ca gcc/lto-wrapper.c ! 9c069eaddec7bf47b82c975f930e2d8a gcc/lto/ChangeLog ff902999e2da9680340e8d0cace7ec16 gcc/lto/Make-lang.in 6bb73fcbce79fbfce7649ed545fd08e2 gcc/lto/common.c 12eb383f6e35176f4a54226df1009acf gcc/lto/common.h *************** ae1f5f39ba98a3c7758fa9933bb5e230 gcc/lt *** 5668,5674 **** b13745c2d7c8d78a175492fe7e3feb8d gcc/machmode.def b3dde66d1523f50e15e4e0229fcf13f1 gcc/machmode.h b05eff1a563e18d9d927004e16b2ce00 gcc/main.c ! f290c9de5108fb2e6494ecb2e9288e0f gcc/match.pd 1cc67605dff78497d108bb65aec8efb3 gcc/mcf.c 25a428eb0074bcb4e34a5faa06b0cc4d gcc/mem-stats-traits.h f67514301092d230fdc3a545f4b3bfc9 gcc/mem-stats.h --- 5676,5682 ---- b13745c2d7c8d78a175492fe7e3feb8d gcc/machmode.def b3dde66d1523f50e15e4e0229fcf13f1 gcc/machmode.h b05eff1a563e18d9d927004e16b2ce00 gcc/main.c ! a053080c1b8c188948f0f19bfa055995 gcc/match.pd 1cc67605dff78497d108bb65aec8efb3 gcc/mcf.c 25a428eb0074bcb4e34a5faa06b0cc4d gcc/mem-stats-traits.h f67514301092d230fdc3a545f4b3bfc9 gcc/mem-stats.h *************** eccf0b52370f379dfae09512acb66ffb gcc/me *** 5678,5705 **** eabfaa5f3f130f5eecd38b7e0fabf3bb gcc/mkconfig.sh 9000a7c1aad3bfde63573b4ed0ee23cc gcc/mode-classes.def 07afcffe769aaf6f4c2700740fb1def3 gcc/mode-switching.c ! fa592ee1fde0c1f4cdb77992427d5fdd gcc/modulo-sched.c 2e0b84cc43cf21e916fc5727f4b74ff1 gcc/multiple_target.c ! 12190cb820058d79d679f03f9e0db9a5 gcc/objc/ChangeLog fcd05e1453dc56982727d6b4728d6ca9 gcc/objc/Make-lang.in 88d6d4c884e7d92ad2d64ce7e15b9e97 gcc/objc/config-lang.in ac21dc9666c05c196265804e425f0312 gcc/objc/lang-specs.h ! d0d01ab3cb9b90dca53f64f6a254c4ae gcc/objc/objc-act.c 5c8f878c19a21af39fd93737716ca606 gcc/objc/objc-act.h 47a5deaa30e6b91412d3fa243c6186fc gcc/objc/objc-encoding.c ee24ecdf18b5da5342cb3d8b4499bc9e gcc/objc/objc-encoding.h ! b4429584ae1dd523688b51d1b16a75cd gcc/objc/objc-gnu-runtime-abi-01.c f29f73d75b2f764eaad1e0f950021925 gcc/objc/objc-lang.c ba8bb35eefefe34c0ef8e803ad1e613f gcc/objc/objc-map.c 1aaf5add0617237079ba66d42de1a477 gcc/objc/objc-map.h ! 8d951cea523899a847909ad38727bffb gcc/objc/objc-next-metadata-tags.h ! 3f85912e75c87488b100e85cc43fd62b gcc/objc/objc-next-runtime-abi-01.c ! 3c3c27a40f8af470fe30f1f15a6d95ee gcc/objc/objc-next-runtime-abi-02.c 2a89763b1defc1d85553c320a63060db gcc/objc/objc-runtime-hooks.h ! 7da1b4ce33d1f2d6d06154c5c47d21b7 gcc/objc/objc-runtime-shared-support.c 9626708ffde2a801337d858ad9f4b9f1 gcc/objc/objc-runtime-shared-support.h 0996fe056d9bbb9cd033a1c4cc77e561 gcc/objc/objc-tree.def ! 38807c97b995da73c03aad09c1a01d60 gcc/objcp/ChangeLog 3cbc95bd25fa86ffaff1f83e52772e28 gcc/objcp/Make-lang.in c7ddd8c51d7e8c1428875a246dc4cb33 gcc/objcp/config-lang.in ded26818173a53d24e4db8138bb737cf gcc/objcp/lang-specs.h --- 5686,5713 ---- eabfaa5f3f130f5eecd38b7e0fabf3bb gcc/mkconfig.sh 9000a7c1aad3bfde63573b4ed0ee23cc gcc/mode-classes.def 07afcffe769aaf6f4c2700740fb1def3 gcc/mode-switching.c ! 88d37b5a99a5f0472de63b2dc4e32242 gcc/modulo-sched.c 2e0b84cc43cf21e916fc5727f4b74ff1 gcc/multiple_target.c ! f0286e85afed045fa1460dea51054718 gcc/objc/ChangeLog fcd05e1453dc56982727d6b4728d6ca9 gcc/objc/Make-lang.in 88d6d4c884e7d92ad2d64ce7e15b9e97 gcc/objc/config-lang.in ac21dc9666c05c196265804e425f0312 gcc/objc/lang-specs.h ! 86f1d8cb0898af7276de564029954b43 gcc/objc/objc-act.c 5c8f878c19a21af39fd93737716ca606 gcc/objc/objc-act.h 47a5deaa30e6b91412d3fa243c6186fc gcc/objc/objc-encoding.c ee24ecdf18b5da5342cb3d8b4499bc9e gcc/objc/objc-encoding.h ! 0d553487a09eba170656b3022ad4ff7a gcc/objc/objc-gnu-runtime-abi-01.c f29f73d75b2f764eaad1e0f950021925 gcc/objc/objc-lang.c ba8bb35eefefe34c0ef8e803ad1e613f gcc/objc/objc-map.c 1aaf5add0617237079ba66d42de1a477 gcc/objc/objc-map.h ! 61d013b725cae12a3bea7ce3ca7ea9a2 gcc/objc/objc-next-metadata-tags.h ! 27ff6c2cdb30782c003f382b6fdf3f3e gcc/objc/objc-next-runtime-abi-01.c ! 5b3fa569a8fd4188428089893f27fe8e gcc/objc/objc-next-runtime-abi-02.c 2a89763b1defc1d85553c320a63060db gcc/objc/objc-runtime-hooks.h ! 95c767443f3ea23a2864aa66efab6760 gcc/objc/objc-runtime-shared-support.c 9626708ffde2a801337d858ad9f4b9f1 gcc/objc/objc-runtime-shared-support.h 0996fe056d9bbb9cd033a1c4cc77e561 gcc/objc/objc-tree.def ! 3b66e11e9f9056120decae03d02662d1 gcc/objcp/ChangeLog 3cbc95bd25fa86ffaff1f83e52772e28 gcc/objcp/Make-lang.in c7ddd8c51d7e8c1428875a246dc4cb33 gcc/objcp/config-lang.in ded26818173a53d24e4db8138bb737cf gcc/objcp/lang-specs.h *************** be872037f2be317642757dff9ee4e7e9 gcc/ob *** 5707,5719 **** 4d6c6650decaa2d51b88c66909397347 gcc/objcp/objcp-decl.h 004a8fa747c0865adad4be841a260d0d gcc/objcp/objcp-lang.c 0886e27233c32e6179a7381c27d8b4c2 gcc/omp-builtins.def ! 31e7a3b935ff01c1c1a6630bf518a1be gcc/omp-expand.c d5c5e7983604146d429dd7d971026ffc gcc/omp-expand.h ! 217e6d59e7657f5aa858cb9ac22e25e5 gcc/omp-general.c 9b5747816823c44340c559fe9034bd42 gcc/omp-general.h eec49c45264ffe98078e1790dde1d085 gcc/omp-grid.c 58dec197c27b0fe6b637589c91ce6570 gcc/omp-grid.h ! e2caad963b9a5b0058b2287f35ca50c7 gcc/omp-low.c d8bb78f41734f384394b7458c6980f00 gcc/omp-low.h c44ad711e41ca3278cc397873a44b2fd gcc/omp-offload.c fc27509534cd1450c6222e58845bcdbc gcc/omp-offload.h --- 5715,5727 ---- 4d6c6650decaa2d51b88c66909397347 gcc/objcp/objcp-decl.h 004a8fa747c0865adad4be841a260d0d gcc/objcp/objcp-lang.c 0886e27233c32e6179a7381c27d8b4c2 gcc/omp-builtins.def ! 7ec494cf806ea91ea351a905aa707943 gcc/omp-expand.c d5c5e7983604146d429dd7d971026ffc gcc/omp-expand.h ! 996e3f954aeeb8d7543e5f2fea44df7d gcc/omp-general.c 9b5747816823c44340c559fe9034bd42 gcc/omp-general.h eec49c45264ffe98078e1790dde1d085 gcc/omp-grid.c 58dec197c27b0fe6b637589c91ce6570 gcc/omp-grid.h ! bd45d4573e85107519ec5b683388510f gcc/omp-low.c d8bb78f41734f384394b7458c6980f00 gcc/omp-low.h c44ad711e41ca3278cc397873a44b2fd gcc/omp-offload.c fc27509534cd1450c6222e58845bcdbc gcc/omp-offload.h *************** fdc71225274b5bbd7461c268a4b55ce6 gcc/op *** 5731,5739 **** fa2a542060df3355a0449a17595e4815 gcc/optabs-libfuncs.h ce3203c7c65c8263219fbffa1ff0ef86 gcc/optabs-query.c 1f74c7600f0c443bd2a7cdca35da4876 gcc/optabs-query.h ! d01f60269beadf5cb9768181db709e47 gcc/optabs-tree.c 94e973433ee0ce514bc9f632a4c19f18 gcc/optabs-tree.h ! 932500f45ed743e0a99f712a22772896 gcc/optabs.c a630396c73c1da2c58720ee05affceab gcc/optabs.def 223e4d121c4d9d6d042026e30b09fd70 gcc/optabs.h a0dde41e8d529a09be349c6cef989ef7 gcc/optc-gen.awk --- 5739,5747 ---- fa2a542060df3355a0449a17595e4815 gcc/optabs-libfuncs.h ce3203c7c65c8263219fbffa1ff0ef86 gcc/optabs-query.c 1f74c7600f0c443bd2a7cdca35da4876 gcc/optabs-query.h ! 23481dbab0df3d241ff9621eefb0f5c3 gcc/optabs-tree.c 94e973433ee0ce514bc9f632a4c19f18 gcc/optabs-tree.h ! 96a6beaa95b43c879f010718817d9521 gcc/optabs.c a630396c73c1da2c58720ee05affceab gcc/optabs.def 223e4d121c4d9d6d042026e30b09fd70 gcc/optabs.h a0dde41e8d529a09be349c6cef989ef7 gcc/optc-gen.awk *************** f9634d3f1151e564d7cb0fc885b12d5e gcc/pa *** 5758,5764 **** 1f2be2b4db63158092aa9a432324b9f4 gcc/plugin.c 1a2ee442016e04c400c5b1ecfa2b6f7a gcc/plugin.def d57e52d4dd66ce4213264b80d2489b27 gcc/plugin.h ! 00429d123b8dc554a1595ff9debba4db gcc/po/ChangeLog 1c98342dfff1dce80a9f3dd527d40985 gcc/po/EXCLUDES df8eb609dbb028d033b7d05185cc0715 gcc/po/be.gmo f0d7b1b3080241060878bfbc2536042b gcc/po/be.po --- 5766,5772 ---- 1f2be2b4db63158092aa9a432324b9f4 gcc/plugin.c 1a2ee442016e04c400c5b1ecfa2b6f7a gcc/plugin.def d57e52d4dd66ce4213264b80d2489b27 gcc/plugin.h ! 05b85e067c3c82a4712a30397cf623b3 gcc/po/ChangeLog 1c98342dfff1dce80a9f3dd527d40985 gcc/po/EXCLUDES df8eb609dbb028d033b7d05185cc0715 gcc/po/be.gmo f0d7b1b3080241060878bfbc2536042b gcc/po/be.po *************** b00cda2a43bec932dc26a7a62d2433e4 gcc/po *** 5803,5809 **** 3e810a4ad7bb49c60f02b4cd9631fb28 gcc/poly-int-types.h 653045738566582cf810de3860dc9cb8 gcc/poly-int.h b63265778fad2e12ae472e77541500e0 gcc/postreload-gcse.c ! 6335227eb5d91a254fcd50a44e0687f5 gcc/postreload.c f2c1800ed41bd812f0023ec9476be06f gcc/predict.c 2d7027b865f15345d18016536def0e97 gcc/predict.def 3ffe5c036e76418548382910f68886ff gcc/predict.h --- 5811,5817 ---- 3e810a4ad7bb49c60f02b4cd9631fb28 gcc/poly-int-types.h 653045738566582cf810de3860dc9cb8 gcc/poly-int.h b63265778fad2e12ae472e77541500e0 gcc/postreload-gcse.c ! cf68dd5d621e98ff7a6600dd831ecae8 gcc/postreload.c f2c1800ed41bd812f0023ec9476be06f gcc/predict.c 2d7027b865f15345d18016536def0e97 gcc/predict.def 3ffe5c036e76418548382910f68886ff gcc/predict.h *************** f9b0b9ccb8dce0dc6e8bd42ac39df744 gcc/re *** 5838,5844 **** 8e54776d694e025778117e5c6cd2b732 gcc/ree.c befe5e6a24516f07a0b1a18ea35c02d6 gcc/reg-notes.def bb6e216fc486b5cadc4ece706f7f2121 gcc/reg-stack.c ! ce2f803ba77e7c6cd65a618549c594aa gcc/regcprop.c bde5467e48834f6809fe9cb47c41a8ca gcc/regcprop.h 1420eec348e2fde96d1e5acc37e1d4b6 gcc/reginfo.c 8f4fe2c17357e9685afb16fbfadd234d gcc/regrename.c --- 5846,5852 ---- 8e54776d694e025778117e5c6cd2b732 gcc/ree.c befe5e6a24516f07a0b1a18ea35c02d6 gcc/reg-notes.def bb6e216fc486b5cadc4ece706f7f2121 gcc/reg-stack.c ! a4113db63806c0f59f4609855b310ec3 gcc/regcprop.c bde5467e48834f6809fe9cb47c41a8ca gcc/regcprop.h 1420eec348e2fde96d1e5acc37e1d4b6 gcc/reginfo.c 8f4fe2c17357e9685afb16fbfadd234d gcc/regrename.c *************** bcbdd3b92acf14e4567d6d593f2135c7 gcc/re *** 5846,5852 **** 0e8e6cb957a6286f48af42a43766157c gcc/regs.h 54bdd1fa2150c00899466f5e44c3be07 gcc/regset.h 1e9242bc16fa3b3cb4f0ddd56e9ffe81 gcc/regstat.c ! c93b37d397b5c93b87ce1ad522f13011 gcc/reload.c a44890645b9dfcfa05c4af85a2fac907 gcc/reload.h dea38c72c4f9b81bd50774c1dee40cb1 gcc/reload1.c 5d7ea9a101117932e6ac39594b06fc21 gcc/reorg.c --- 5854,5860 ---- 0e8e6cb957a6286f48af42a43766157c gcc/regs.h 54bdd1fa2150c00899466f5e44c3be07 gcc/regset.h 1e9242bc16fa3b3cb4f0ddd56e9ffe81 gcc/regstat.c ! a138831f4304419d97c00e8fdf37c903 gcc/reload.c a44890645b9dfcfa05c4af85a2fac907 gcc/reload.h dea38c72c4f9b81bd50774c1dee40cb1 gcc/reload1.c 5d7ea9a101117932e6ac39594b06fc21 gcc/reorg.c *************** cd83d2a9e863eb3f902732831333489a gcc/re *** 5856,5876 **** 63bf1d95d167ccb1b416c22e60401626 gcc/rtl-error.h abb55417521c73d3ddfa65202e62bbdc gcc/rtl-iter.h 6c258d748c725574ffe9c742761a8b3e gcc/rtl-tests.c ! 0dd98e9f4d6ccae54a54472fd00090ff gcc/rtl.c 160eb5d0d186585de6b61ba5d972ee7b gcc/rtl.def ! 60d61a7bf84bfcfb028c1739312fa531 gcc/rtl.h ! bd655da7aaabfdbae83012592e6e1369 gcc/rtlanal.c 942d35a2f884f0f12d2001b6439cddc3 gcc/rtlhash.c 57e6da5db1b3709e1315094c4bf97280 gcc/rtlhash.h c677566b52c69cc4009d23260723bee9 gcc/rtlhooks-def.h 1462a0e3e247418bf9fefea584d37f6a gcc/rtlhooks.c ! fef6ff58d122ba4c50c83473782fb490 gcc/rtx-vector-builder.c ! 9228a0a0c8df3d90b1337bdfb04450e8 gcc/rtx-vector-builder.h 524001705fe7d1b3b8fac2ca26c81436 gcc/run-rtl-passes.c 0116c6ac7b1b875e47af238fec34212c gcc/run-rtl-passes.h 5dfa17f81fb7790b86c349c236b4f44e gcc/sancov.c f240987e980f287b9805cfc2d5fd984a gcc/sanitizer.def ! 817ddb7f7764595b40f6608ed6d3a6b2 gcc/sanopt.c 373f74032e8a5f451fed82a6278199be gcc/sbitmap.c 483913290dec10f928e898c49a41451a gcc/sbitmap.h 557abf726d1b4112b7487455dca2835d gcc/sched-deps.c --- 5864,5884 ---- 63bf1d95d167ccb1b416c22e60401626 gcc/rtl-error.h abb55417521c73d3ddfa65202e62bbdc gcc/rtl-iter.h 6c258d748c725574ffe9c742761a8b3e gcc/rtl-tests.c ! 8968b5027d04e031ac3296efb6d74b09 gcc/rtl.c 160eb5d0d186585de6b61ba5d972ee7b gcc/rtl.def ! a472141715ae570344acbc385af3d91d gcc/rtl.h ! 251d6d241007d286454ff2f490beea36 gcc/rtlanal.c 942d35a2f884f0f12d2001b6439cddc3 gcc/rtlhash.c 57e6da5db1b3709e1315094c4bf97280 gcc/rtlhash.h c677566b52c69cc4009d23260723bee9 gcc/rtlhooks-def.h 1462a0e3e247418bf9fefea584d37f6a gcc/rtlhooks.c ! 68b70fc0aeadc54fbdf7775a15009b72 gcc/rtx-vector-builder.c ! e9a50b2c00f0d8821b4f357433f75ddf gcc/rtx-vector-builder.h 524001705fe7d1b3b8fac2ca26c81436 gcc/run-rtl-passes.c 0116c6ac7b1b875e47af238fec34212c gcc/run-rtl-passes.h 5dfa17f81fb7790b86c349c236b4f44e gcc/sancov.c f240987e980f287b9805cfc2d5fd984a gcc/sanitizer.def ! b3b3edd8d449c633bc57a13b92adaf4c gcc/sanopt.c 373f74032e8a5f451fed82a6278199be gcc/sbitmap.c 483913290dec10f928e898c49a41451a gcc/sbitmap.h 557abf726d1b4112b7487455dca2835d gcc/sched-deps.c *************** cd47a586f84774287b1ae6039918de93 gcc/se *** 5893,5902 **** ef568131c8d4d7222af07d3763b56e65 gcc/sese.c 864eb28c47f8c33ba1bf884c029fbcc1 gcc/sese.h 00fd88b09937f2b769fa2f9272f7ab17 gcc/shortest-paths.h ! 4aa3a6a87e889e9aff468c2e5e85b448 gcc/shrink-wrap.c 5e637aae9a69290f9f96753c397c1d88 gcc/shrink-wrap.h 7badcd0ab93bdcec709d922156555d25 gcc/signop.h ! aa7c696f6bdad9a7b3a29f4655938b74 gcc/simplify-rtx.c 14fe5d55540c4c40ffc22d287df5df9e gcc/sort.cc 1a7797b28152cdee032918d0640d8674 gcc/sparseset.c f4db2c7d894531a625d21c115830e0cf gcc/sparseset.h --- 5901,5910 ---- ef568131c8d4d7222af07d3763b56e65 gcc/sese.c 864eb28c47f8c33ba1bf884c029fbcc1 gcc/sese.h 00fd88b09937f2b769fa2f9272f7ab17 gcc/shortest-paths.h ! 40421fa3e39ae2e93ed6b2df96838739 gcc/shrink-wrap.c 5e637aae9a69290f9f96753c397c1d88 gcc/shrink-wrap.h 7badcd0ab93bdcec709d922156555d25 gcc/signop.h ! 3601d083cf8a9ed555f96e380218398c gcc/simplify-rtx.c 14fe5d55540c4c40ffc22d287df5df9e gcc/sort.cc 1a7797b28152cdee032918d0640d8674 gcc/sparseset.c f4db2c7d894531a625d21c115830e0cf gcc/sparseset.h *************** f8d497da9f2552791c318e340c05442f gcc/st *** 5914,5920 **** 4c1ba43b39de56389d70edd54dbe93eb gcc/statistics.h 69aec0a6256ffea36bec6b009cbee78b gcc/stmt.c 92af97d1e25f56f0c912e3cb2deb7f26 gcc/stmt.h ! 420e9bd3b46d5fd2bd1725c6e96f6684 gcc/stor-layout.c 1e2af7b36b8fd71912d0bb841be0513c gcc/stor-layout.h 27b1078769e011b4a396d9ecb63d9708 gcc/store-motion.c cbb758f617ea43fc42398026a1f8180e gcc/streamer-hooks.c --- 5922,5928 ---- 4c1ba43b39de56389d70edd54dbe93eb gcc/statistics.h 69aec0a6256ffea36bec6b009cbee78b gcc/stmt.c 92af97d1e25f56f0c912e3cb2deb7f26 gcc/stmt.h ! c6995c0084fde37f5bddf0979102a23a gcc/stor-layout.c 1e2af7b36b8fd71912d0bb841be0513c gcc/stor-layout.h 27b1078769e011b4a396d9ecb63d9708 gcc/store-motion.c cbb758f617ea43fc42398026a1f8180e gcc/streamer-hooks.c *************** d6ecdbf40714f0d6f9a354ad491022af gcc/ta *** 5932,5943 **** cc33296515dbe6d36bf2e748250b71ce gcc/target-globals.h 28240c397814bb44a0b9b81c24f5c902 gcc/target-hooks-macros.h e2164620d88b7b5e86874b70ea560f64 gcc/target-insns.def ! 22cf28a9359902a598bfddcd32edf3cd gcc/target.def 89a400520f2087866beeb8140416f45d gcc/target.h d4582a9831d4b16fe13326c8c145c4e5 gcc/targhooks.c 7bbf8e5d152f6a9369b8fad9f737885a gcc/targhooks.h f39fcaa8197187283ccfed40107b426d gcc/testsuite/.gitattributes ! 73fc81a667f79d9b198a0655e6f5fd6d gcc/testsuite/ChangeLog 862f04afbd87da2cc6bc432c3f28430f gcc/testsuite/ChangeLog-1993-2007 029a5d8dacd25eb5d4711452ac448e5b gcc/testsuite/ChangeLog-2008 13ac28c41d51b66b4ec40dba6bd50f39 gcc/testsuite/ChangeLog-2009 --- 5940,5951 ---- cc33296515dbe6d36bf2e748250b71ce gcc/target-globals.h 28240c397814bb44a0b9b81c24f5c902 gcc/target-hooks-macros.h e2164620d88b7b5e86874b70ea560f64 gcc/target-insns.def ! 7515cebb8fe4bceec82706ab3d5e4061 gcc/target.def 89a400520f2087866beeb8140416f45d gcc/target.h d4582a9831d4b16fe13326c8c145c4e5 gcc/targhooks.c 7bbf8e5d152f6a9369b8fad9f737885a gcc/targhooks.h f39fcaa8197187283ccfed40107b426d gcc/testsuite/.gitattributes ! 4ac36cd7082157fc2a61769c67f655b4 gcc/testsuite/ChangeLog 862f04afbd87da2cc6bc432c3f28430f gcc/testsuite/ChangeLog-1993-2007 029a5d8dacd25eb5d4711452ac448e5b gcc/testsuite/ChangeLog-2008 13ac28c41d51b66b4ec40dba6bd50f39 gcc/testsuite/ChangeLog-2009 *************** d57f0b6d660c8299b95ba02b346d2d76 gcc/te *** 8709,8727 **** 30f55184465e5031498ef7eb0d2b75e4 gcc/testsuite/c-c++-common/Wshift-count-negative-2.c d425900c0046df4dd9d326f6c8eb2d67 gcc/testsuite/c-c++-common/Wshift-count-overflow-1.c 7f7dfe9827844964aa5913a0df77bfda gcc/testsuite/c-c++-common/Wshift-count-overflow-2.c ! b4259718f4cfc2633ca66fce82e19921 gcc/testsuite/c-c++-common/Wshift-negative-value-1.c ! 9c17780b7734fb8edd8d6132d7571dea gcc/testsuite/c-c++-common/Wshift-negative-value-2.c ! 9cde469967b17467bf200952edf9872c gcc/testsuite/c-c++-common/Wshift-negative-value-3.c ! 26642fe2d9af413debdae5db59b1f3ff gcc/testsuite/c-c++-common/Wshift-negative-value-4.c 4eb245cdd007f951220ef4ce4752393f gcc/testsuite/c-c++-common/Wshift-negative-value-5.c 2ec4a0079f61044cd2556d10f9086c01 gcc/testsuite/c-c++-common/Wshift-negative-value-6.c ! 23215ac7f9da39dedf899636af7edacc gcc/testsuite/c-c++-common/Wshift-overflow-1.c ! 83d4f8080bdfbd062809fe67c5263ebe gcc/testsuite/c-c++-common/Wshift-overflow-2.c 9c03a6a952358fcf4ea17c9f5770eb36 gcc/testsuite/c-c++-common/Wshift-overflow-3.c ccf9803376f18fed70c0b2b90633ddb4 gcc/testsuite/c-c++-common/Wshift-overflow-4.c ! ba76c2340f7c7f9d54120447cf44b260 gcc/testsuite/c-c++-common/Wshift-overflow-5.c ! f8b8dcb9f64cd4f1158a36e44cdf76b7 gcc/testsuite/c-c++-common/Wshift-overflow-6.c ! d2ebf4f8689ab32e5be23f1ebf97667f gcc/testsuite/c-c++-common/Wshift-overflow-7.c 2095424b6b86a7ddbae9c94c16fa2157 gcc/testsuite/c-c++-common/Wsign-compare-1.c 40bc1e540d092c06d14dc9842ee9cd03 gcc/testsuite/c-c++-common/Wsign-conversion-1.c de15cabafc30a00e81c083c9a9428ac8 gcc/testsuite/c-c++-common/Wsizeof-pointer-div.c --- 8717,8744 ---- 30f55184465e5031498ef7eb0d2b75e4 gcc/testsuite/c-c++-common/Wshift-count-negative-2.c d425900c0046df4dd9d326f6c8eb2d67 gcc/testsuite/c-c++-common/Wshift-count-overflow-1.c 7f7dfe9827844964aa5913a0df77bfda gcc/testsuite/c-c++-common/Wshift-count-overflow-2.c ! e2c873f32cb250611ac293a0172ee346 gcc/testsuite/c-c++-common/Wshift-negative-value-1.c ! 6fba445c92b9950ed629192d310c29ed gcc/testsuite/c-c++-common/Wshift-negative-value-10.c ! 78eb4460866048e93bd481aa5500060d gcc/testsuite/c-c++-common/Wshift-negative-value-2.c ! 0c83b576964ab3c215f3c28cb4359f26 gcc/testsuite/c-c++-common/Wshift-negative-value-3.c ! 722f2c0b564c7e4340515aed7f9269b7 gcc/testsuite/c-c++-common/Wshift-negative-value-4.c 4eb245cdd007f951220ef4ce4752393f gcc/testsuite/c-c++-common/Wshift-negative-value-5.c 2ec4a0079f61044cd2556d10f9086c01 gcc/testsuite/c-c++-common/Wshift-negative-value-6.c ! 44b521dad3ee71efc0d8c21a07ee8c28 gcc/testsuite/c-c++-common/Wshift-negative-value-7.c ! 94692676348c71ef48c996365643e2ff gcc/testsuite/c-c++-common/Wshift-negative-value-8.c ! 1ea3b563c1990488520fc81142859f02 gcc/testsuite/c-c++-common/Wshift-negative-value-9.c ! 3d7f806b54f140ba9abdd8a91a1729b7 gcc/testsuite/c-c++-common/Wshift-overflow-1.c ! 2bbd07737f36ce91f8f3968f72e2708a gcc/testsuite/c-c++-common/Wshift-overflow-10.c ! ea144bfe8a7745b09fb88195a3210b6b gcc/testsuite/c-c++-common/Wshift-overflow-11.c ! b7da970f89748d7c226b2e0c03b1e33a gcc/testsuite/c-c++-common/Wshift-overflow-12.c ! c3095c3809f4520acbde79af92e6af17 gcc/testsuite/c-c++-common/Wshift-overflow-2.c 9c03a6a952358fcf4ea17c9f5770eb36 gcc/testsuite/c-c++-common/Wshift-overflow-3.c ccf9803376f18fed70c0b2b90633ddb4 gcc/testsuite/c-c++-common/Wshift-overflow-4.c ! 19df8fb7876aad60a36e478ee70c2d1a gcc/testsuite/c-c++-common/Wshift-overflow-5.c ! 3bc93d6eade41fcab2b83bfa4a5b2588 gcc/testsuite/c-c++-common/Wshift-overflow-6.c ! e68c59b3c604b0f464d1f4c02629a7a5 gcc/testsuite/c-c++-common/Wshift-overflow-7.c ! fc40f165305f408a7e0fc682ac4e4e21 gcc/testsuite/c-c++-common/Wshift-overflow-8.c ! f6687e96d1a359321b94d5babcf73720 gcc/testsuite/c-c++-common/Wshift-overflow-9.c 2095424b6b86a7ddbae9c94c16fa2157 gcc/testsuite/c-c++-common/Wsign-compare-1.c 40bc1e540d092c06d14dc9842ee9cd03 gcc/testsuite/c-c++-common/Wsign-conversion-1.c de15cabafc30a00e81c083c9a9428ac8 gcc/testsuite/c-c++-common/Wsizeof-pointer-div.c *************** e1214c78ebce01448d71917e783e66f3 gcc/te *** 8922,8927 **** --- 8939,8945 ---- edbcc39f20e5248e2b957a28e01fee51 gcc/testsuite/c-c++-common/builtin-arith-overflow-3.c 9db04682d9ed26e120c150f32a81c167 gcc/testsuite/c-c++-common/builtin-convertvector-1.c 86e09291e64c6f0da9f5f640b3c8b994 gcc/testsuite/c-c++-common/builtin-convertvector-2.c + 4f93f0d47fecc8e0bc7299754ffe6180 gcc/testsuite/c-c++-common/builtin-convertvector-3.c 2b8aa91fb8f2e3743b68c66f3224582b gcc/testsuite/c-c++-common/builtin-has-attribute-2.c ccfd13cce4ab8791afda954376d1c8cf gcc/testsuite/c-c++-common/builtin-has-attribute-3.c 2a8d5fdd1a6ca18c1fc68875e9c194c4 gcc/testsuite/c-c++-common/builtin-has-attribute-4.c *************** ac27af3ea0b119b95109334b03d48ca9 gcc/te *** 8970,8975 **** --- 8988,8994 ---- 23d2256fdd9c03d95361e499c9aa5d11 gcc/testsuite/c-c++-common/cpp/openmp-define-1.c 1ba0ade791f40edbd80fddddb700282b gcc/testsuite/c-c++-common/cpp/openmp-define-2.c 88fdfa7ad0dd8169a90963238ee1847e gcc/testsuite/c-c++-common/cpp/openmp-define-3.c + fb93693065e3e66c29a51aa146b3d3fa gcc/testsuite/c-c++-common/cpp/pr104147.c c85025f0def783f70f9bb6a4ea9a23f3 gcc/testsuite/c-c++-common/cpp/pr45457.c 50c40c5b8912ad75a2e46fd06778339d gcc/testsuite/c-c++-common/cpp/pr57580.c 6b93142f33f13f29aa948ea5e779f1a0 gcc/testsuite/c-c++-common/cpp/pr58844-1.c *************** aa884d944cf2bbf71c7c642a33b7244f gcc/te *** 8995,9003 **** --- 9014,9024 ---- 17f09d053664aa8b96634b37ce0988da gcc/testsuite/c-c++-common/cpp/spaceship-1.c 9cdc13ca5a948af9c95ec156cac8609c gcc/testsuite/c-c++-common/cpp/ucnid-2011-1-utf8.c 791d43cbbb9115404405c22be44e4ae7 gcc/testsuite/c-c++-common/cpp/ucnid-2011-1.c + 83bc077362cc4ef37199360c8b7fe130 gcc/testsuite/c-c++-common/cpp/va-opt-10.c 0f93514d0ad79c03edfd672fb354e619 gcc/testsuite/c-c++-common/cpp/va-opt-2.c d4400c02e16c9ce8399bebed26d20e37 gcc/testsuite/c-c++-common/cpp/va-opt-3.c ffa7f1250b7f00a641ad13c5836e4f01 gcc/testsuite/c-c++-common/cpp/va-opt-4.c + 2afcba443f0dcc8170bbf6957a6f9cad gcc/testsuite/c-c++-common/cpp/va-opt-9.c 111311014e0b7d3088a84587438910e7 gcc/testsuite/c-c++-common/cpp/va-opt-error.c eea6a019e69d78eae4d98554090253c2 gcc/testsuite/c-c++-common/cpp/va-opt-pedantic.c 170aae082482e5179e2b24f5f07b815a gcc/testsuite/c-c++-common/cpp/va-opt.c *************** d99c4bf7d10ae08e76de310ac61ac639 gcc/te *** 9153,9158 **** --- 9174,9180 ---- 9bba0489de28001a02b9a04fdfda1eda gcc/testsuite/c-c++-common/goacc/classify-serial.c ed0df84115a0f8b333602804bdee2a95 gcc/testsuite/c-c++-common/goacc/clauses-fail.c 8bfd01f209498815723e71000488572c gcc/testsuite/c-c++-common/goacc/collapse-1.c + a29008ff83202ed302993eae2ce59225 gcc/testsuite/c-c++-common/goacc/collapse-2.c ca2517a3cc3cd3ae7a63df0a68ad4598 gcc/testsuite/c-c++-common/goacc/combined-directives-2.c c4d8a118d81caeb284f473723a6b890f gcc/testsuite/c-c++-common/goacc/combined-directives-3.c 6a3920d3728f9ade384ff4fd7f3a5d2c gcc/testsuite/c-c++-common/goacc/combined-directives.c *************** db900e16f622568df37b1e202fd25b9f gcc/te *** 9408,9413 **** --- 9430,9439 ---- ef86bb29dfbea0543e8ca02ce440c823 gcc/testsuite/c-c++-common/gomp/ordered-2.c c8eb196146424dae7866984b548de18b gcc/testsuite/c-c++-common/gomp/ordered-3.c 5e682cf26c41baf2449ab35ba5792ab9 gcc/testsuite/c-c++-common/gomp/ordered-4.c + 7c7abae5700e726f7de5bd56574429f5 gcc/testsuite/c-c++-common/gomp/pr100450.c + 345ac275dfe65e2e8ba683d2c389ebc3 gcc/testsuite/c-c++-common/gomp/pr101535-1.c + b3c3fe5a4ecc31231711cb240274d62c gcc/testsuite/c-c++-common/gomp/pr101535-2.c + 5d5843e74a197943e19c270c43a913e1 gcc/testsuite/c-c++-common/gomp/pr102431.c e16ef156ad193ef1f3cba60ad16e57ab gcc/testsuite/c-c++-common/gomp/pr51360.c 84c977571aeb43c0224137efe7f5b213 gcc/testsuite/c-c++-common/gomp/pr53580.c 28bfd873981083756a16f70fdb0b86db gcc/testsuite/c-c++-common/gomp/pr54017.c *************** a7f92f1077c23eb293a388ad0c9418d7 gcc/te *** 9544,9549 **** --- 9570,9580 ---- 8ae15f4cc1a3d855f57b363a617c368f gcc/testsuite/c-c++-common/patchable_function_entry-decl.c 2e25fd811978da14fc47e4213d8f03a3 gcc/testsuite/c-c++-common/patchable_function_entry-default.c 6105dd94f96458c48bb2721645afb78c gcc/testsuite/c-c++-common/patchable_function_entry-definition.c + ae2fa528701d8a7118d0446869032faa gcc/testsuite/c-c++-common/pr100785.c + 05e5f34e1a745d2204989ec4f256e3c7 gcc/testsuite/c-c++-common/pr101537.c + 3b77bbb422eaff74de51c6cd92512232 gcc/testsuite/c-c++-common/pr103881.c + f7797890edb72db96871a3c3582464f4 gcc/testsuite/c-c++-common/pr105186.c + d5189fe9f7cb5f4a822563c9d438762d gcc/testsuite/c-c++-common/pr105998.c f5dce8e27cfb8a6bfffe57596fecb796 gcc/testsuite/c-c++-common/pr19807-1.c 325d7c32f3748e10d55ba2faba3f1ce2 gcc/testsuite/c-c++-common/pr19807-2.c fb902cfe5a28251e99c554d18fb797e4 gcc/testsuite/c-c++-common/pr19807-3.c *************** ad0210bfe2c0bf78466fbeb232c7f222 gcc/te *** 10007,10012 **** --- 10038,10044 ---- a6690a3246008f2c5cea6ca866063155 gcc/testsuite/c-c++-common/ubsan/float-cast-overflow-9.c 2474ecce86d8ab1d663e5a060e9ae5ee gcc/testsuite/c-c++-common/ubsan/float-cast.h edf61d9eda5f13ef6802aeed6ada88f8 gcc/testsuite/c-c++-common/ubsan/float-div-by-zero-1.c + 4b4093a47a88d4ed45fadb509277b422 gcc/testsuite/c-c++-common/ubsan/float-div-by-zero-2.c ff2685208629414a89fbb3161f228476 gcc/testsuite/c-c++-common/ubsan/load-bool-enum.c 3c0ae577713ec4c85f5ad514bc7596aa gcc/testsuite/c-c++-common/ubsan/nonnull-1.c 5c4f1ab5d64a7368a8615e6b97b39494 gcc/testsuite/c-c++-common/ubsan/nonnull-2.c *************** a0b5d18df0a804f16c6267ecf5a122ca gcc/te *** 10084,10089 **** --- 10116,10122 ---- ebe1e969e1fcbcccd3267df96d65b76a gcc/testsuite/c-c++-common/ubsan/pr64289.c fed93d1bb6b1957637e7b365b237b897 gcc/testsuite/c-c++-common/ubsan/pr64344-1.c 306c6efeca8e1593474ff905ab8ffa61 gcc/testsuite/c-c++-common/ubsan/pr64344-2.c + 2e2938d0c22b01cf1410cf980af98484 gcc/testsuite/c-c++-common/ubsan/pr64888.c b61c8d67fc16a4a400c244d8171acbc1 gcc/testsuite/c-c++-common/ubsan/pr64906.c 0278447631e1e7661d0dc1c45df16b8a gcc/testsuite/c-c++-common/ubsan/pr65081.c 84e6340179dbdb8d0683b92ea0ba82db gcc/testsuite/c-c++-common/ubsan/pr65367.c *************** c7c251f16058a4d4f1db8e0df28385ff gcc/te *** 10279,10285 **** 2e2b81268b12d9840736f5f280fdcd82 gcc/testsuite/g++.dg/abi/anon1.C d612831779ae34b6217159ef7510dee7 gcc/testsuite/g++.dg/abi/anon2.C 4024cd0fe696880556f4db4786e81c53 gcc/testsuite/g++.dg/abi/anon3.C ! 0347f2178e5e23ce57e71d0e23c56c10 gcc/testsuite/g++.dg/abi/anon4.C b03e050cd2306239cb18c55acf037ffa gcc/testsuite/g++.dg/abi/anon5.C 770a1857da6a05380e26eabb7f0ecb92 gcc/testsuite/g++.dg/abi/arm_cxa_vec1.C cb4ad686f7564a8666256212398d911d gcc/testsuite/g++.dg/abi/arm_cxa_vec2.C --- 10312,10318 ---- 2e2b81268b12d9840736f5f280fdcd82 gcc/testsuite/g++.dg/abi/anon1.C d612831779ae34b6217159ef7510dee7 gcc/testsuite/g++.dg/abi/anon2.C 4024cd0fe696880556f4db4786e81c53 gcc/testsuite/g++.dg/abi/anon3.C ! 33fdd2e467a8fd1571a8622c9dd56bcd gcc/testsuite/g++.dg/abi/anon4.C b03e050cd2306239cb18c55acf037ffa gcc/testsuite/g++.dg/abi/anon5.C 770a1857da6a05380e26eabb7f0ecb92 gcc/testsuite/g++.dg/abi/arm_cxa_vec1.C cb4ad686f7564a8666256212398d911d gcc/testsuite/g++.dg/abi/arm_cxa_vec2.C *************** afcddf1b30dc19c258215591ad57145a gcc/te *** 10368,10373 **** --- 10401,10407 ---- 7b495c695618e4f19335c4fb222ac39e gcc/testsuite/g++.dg/abi/key1.C bb31b4837b79e765fedbacaa8bb430d3 gcc/testsuite/g++.dg/abi/key2.C d06c8255efe2bb66e4bb6606d9fb8b0c gcc/testsuite/g++.dg/abi/lambda-capture1.C + ab6dac1a25f6d8fc7ccddc228d1d80f2 gcc/testsuite/g++.dg/abi/lambda-defarg1.C 2c4486b0b97a7d8919b8fffad18a0478 gcc/testsuite/g++.dg/abi/lambda-static-1.C 75bbddd165a101e33a88857c65eb383d gcc/testsuite/g++.dg/abi/lambda-vis.C 44d0f298ab4a8fb8dcb8f4930bac5fd0 gcc/testsuite/g++.dg/abi/layout1.C *************** b12b848862ca9a5a126f8b4e8792dc16 gcc/te *** 10567,10572 **** --- 10601,10607 ---- c109f79c447a9f4bd35cac5dbc643adb gcc/testsuite/g++.dg/asan/interception-malloc-test-1.C 5ec947b9e800038195a332828bd0637b gcc/testsuite/g++.dg/asan/interception-test-1.C 280404310b225d80bc4ec71addcc10a9 gcc/testsuite/g++.dg/asan/large-func-test-1.C + b03be3a03970717959df65ccdcbebe88 gcc/testsuite/g++.dg/asan/pr104449.C e472f2ce37f2b55b1358ec08717d9f08 gcc/testsuite/g++.dg/asan/pr55617.C 74a04a20e12a8acd0fd7d05742cf8d63 gcc/testsuite/g++.dg/asan/pr62017.C 505943436d80a41b5e95bf0b67db97cd gcc/testsuite/g++.dg/asan/pr64937.C *************** e6954ac1ae67eacbb067ca0a7269df99 gcc/te *** 10776,10787 **** 75bddd0f3c0ceb101b0c3111cedc4fb4 gcc/testsuite/g++.dg/compat/init/init-ref2_y.C 671f508f8a60b0484992d3dcf80e1dec gcc/testsuite/g++.dg/compat/struct-layout-1.exp b3150d6e06b56824040f5b2dadcf18ce gcc/testsuite/g++.dg/compat/struct-layout-1.h ! 64c18c9c891a213c1db3b2ed314f8c5e gcc/testsuite/g++.dg/compat/struct-layout-1_generate.c e615a3a6c348fc2427a919e6edad325b gcc/testsuite/g++.dg/compat/struct-layout-1_x1.h 7d588bff78cea94dd3152a4c181ee8c9 gcc/testsuite/g++.dg/compat/struct-layout-1_x2.h 19ad318afa2e0f52259db40da0911c65 gcc/testsuite/g++.dg/compat/struct-layout-1_y1.h 7dc3e674ef2752731b6cd90ebd1aeb0a gcc/testsuite/g++.dg/compat/struct-layout-1_y2.h 7d6e46af1d90aeac247ba7174a61e45e gcc/testsuite/g++.dg/concepts/abbrev1.C bbe257fc7d17e04ac4c36e490e7b696c gcc/testsuite/g++.dg/concepts/abbrev2.C 89bf38264d72aa453e4c1c4701a8f567 gcc/testsuite/g++.dg/concepts/abbrev3.C 40574d83b6e6c0a770005422615c8327 gcc/testsuite/g++.dg/concepts/abbrev5.C --- 10811,10824 ---- 75bddd0f3c0ceb101b0c3111cedc4fb4 gcc/testsuite/g++.dg/compat/init/init-ref2_y.C 671f508f8a60b0484992d3dcf80e1dec gcc/testsuite/g++.dg/compat/struct-layout-1.exp b3150d6e06b56824040f5b2dadcf18ce gcc/testsuite/g++.dg/compat/struct-layout-1.h ! 78cfce9cf8a86fdda9aa267ac227bd42 gcc/testsuite/g++.dg/compat/struct-layout-1_generate.c e615a3a6c348fc2427a919e6edad325b gcc/testsuite/g++.dg/compat/struct-layout-1_x1.h 7d588bff78cea94dd3152a4c181ee8c9 gcc/testsuite/g++.dg/compat/struct-layout-1_x2.h 19ad318afa2e0f52259db40da0911c65 gcc/testsuite/g++.dg/compat/struct-layout-1_y1.h 7dc3e674ef2752731b6cd90ebd1aeb0a gcc/testsuite/g++.dg/compat/struct-layout-1_y2.h 7d6e46af1d90aeac247ba7174a61e45e gcc/testsuite/g++.dg/concepts/abbrev1.C + e0f7c49cdfbfcaa7701a5401b95e06a0 gcc/testsuite/g++.dg/concepts/abbrev10.C + c73fad2099e140497cd7ca7d384222de gcc/testsuite/g++.dg/concepts/abbrev11.C bbe257fc7d17e04ac4c36e490e7b696c gcc/testsuite/g++.dg/concepts/abbrev2.C 89bf38264d72aa453e4c1c4701a8f567 gcc/testsuite/g++.dg/concepts/abbrev3.C 40574d83b6e6c0a770005422615c8327 gcc/testsuite/g++.dg/concepts/abbrev5.C *************** cb637c31f7267e6cb6c02a89a06fecf0 gcc/te *** 10852,10857 **** --- 10889,10895 ---- 79b01ce4c0ddc29b29698e41deb18cda gcc/testsuite/g++.dg/concepts/placeholder4.C df6b9790772106cf6b4000ea3f4e6df7 gcc/testsuite/g++.dg/concepts/placeholder5.C a3041d3b0ddd1e4e139656fef2568888 gcc/testsuite/g++.dg/concepts/placeholder6.C + 91bbc43bd292628bdbb650fc92890934 gcc/testsuite/g++.dg/concepts/pr105061.C bff91be12faf541761b92b8a7ac5de0f gcc/testsuite/g++.dg/concepts/pr65634.C e1b13bd2e7e5b547138d71c7e88ff143 gcc/testsuite/g++.dg/concepts/pr65636.C c793a07aee900824ca395d9ccff6ee08 gcc/testsuite/g++.dg/concepts/pr65681.C *************** a647e8fcab9b54f8fc6ba62e8b48ef4a gcc/te *** 10973,10978 **** --- 11011,11017 ---- 22a29b13e567e331e66cb8d722f343ec gcc/testsuite/g++.dg/conversion/qual1.C ca578f19b2d380be0549cc9c2f904f2e gcc/testsuite/g++.dg/conversion/qual2.C 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 af773a52f134a886314eae7065bee26e gcc/testsuite/g++.dg/conversion/ref2.C b80ab713758c51e69280fe2ae2dee7c9 gcc/testsuite/g++.dg/conversion/ref3.C *************** f41f630eebfc858cbd9471df42c4a56a gcc/te *** 11074,11079 **** --- 11113,11119 ---- 05100d20f9b9853bd56ead602feb1718 gcc/testsuite/g++.dg/coroutines/pr95477.C ad31826ccc407ca77f13ccedabe598c9 gcc/testsuite/g++.dg/coroutines/pr95505.C d7c4d12326724992c8854e0b38126068 gcc/testsuite/g++.dg/coroutines/pr95518.C + 88de21db6a5919870fc423644c307d0f gcc/testsuite/g++.dg/coroutines/pr95520.C c0851b55f1db10d372a842d773d11661 gcc/testsuite/g++.dg/coroutines/pr95591.C a49707211a5fe8dc7634517c75f89d56 gcc/testsuite/g++.dg/coroutines/pr95599.C 8647f401f04a81b704516887be4b28c4 gcc/testsuite/g++.dg/coroutines/pr95616-0-no-exceptions.C *************** ae3a00e426b12806ada699df6be4f347 gcc/te *** 11381,11386 **** --- 11421,11428 ---- 5e9fb88ddf17555fecef35f85f811100 gcc/testsuite/g++.dg/cpp0x/alias-decl-68.C e227fd117edd6417d4721f5cf77d96ca gcc/testsuite/g++.dg/cpp0x/alias-decl-69.C 816dbf372a71890f9515376534ec312b gcc/testsuite/g++.dg/cpp0x/alias-decl-7.C + 3d9ba2b7ecc7fefba84ee62ec62685ca gcc/testsuite/g++.dg/cpp0x/alias-decl-72.C + d5f8995eb967b699d6937c5a92465df7 gcc/testsuite/g++.dg/cpp0x/alias-decl-72a.C 77aa48fcd9f9b9ffab08fa7ebc5d52e2 gcc/testsuite/g++.dg/cpp0x/alias-decl-8.C 0fea677a266ad89646463d41e4df0566 gcc/testsuite/g++.dg/cpp0x/alias-decl-80296.C 2b0ac9ee7e77902ee76b92dfbfcc37b3 gcc/testsuite/g++.dg/cpp0x/alias-decl-9.C *************** e2071d46036912555df15661828c4105 gcc/te *** 11390,11401 **** --- 11432,11445 ---- ef369c9d8dbd4b3ba5c764f92fc53a46 gcc/testsuite/g++.dg/cpp0x/alias-decl-dr1286b.C 4579dafea4a6c084d33527587a75c260 gcc/testsuite/g++.dg/cpp0x/alias-decl-dr1558.C 830a80101d211b99c4fce4c743aa6771 gcc/testsuite/g++.dg/cpp0x/alias-decl-enum-1.C + 0b019bac5dcafdd642abe83896a7483d gcc/testsuite/g++.dg/cpp0x/alias-decl-equiv1.C 42802675fdf183e36c26b59ce2188fbd gcc/testsuite/g++.dg/cpp0x/alias-decl-pmf1.C 276db5de570a4b8f2cfb42b6fc5b0a0b gcc/testsuite/g++.dg/cpp0x/alias-decl-pr92206-1.C 2a4fbf633a4b91c09573d05167888906 gcc/testsuite/g++.dg/cpp0x/alias-decl-pr92206-2.C 211b1bb1a33b29cff03e25acefb6f840 gcc/testsuite/g++.dg/cpp0x/alias-decl-pr92206-3.C 40651f96c24fbc6da71f67630650ea18 gcc/testsuite/g++.dg/cpp0x/alias-decl-pr92206-4.C 2828cf381230838bedb15702c2b763f2 gcc/testsuite/g++.dg/cpp0x/alias-decl-pr96805.C + 4801ac3f92233a9abd7960d6704f81a5 gcc/testsuite/g++.dg/cpp0x/alias-decl-variadic2.C 3160c52a8ac131b03192a1bc86ef7a35 gcc/testsuite/g++.dg/cpp0x/alignas1.C 4866e3b93b878ee0244a039b009071ca gcc/testsuite/g++.dg/cpp0x/alignas10.C cda964826837ac50113537351c4b8f2b gcc/testsuite/g++.dg/cpp0x/alignas11.C *************** c11fb9d024f89aea2e027172cee4bda2 gcc/te *** 11496,11501 **** --- 11540,11547 ---- 00e99c6cae64f722f78b0f72a5209b78 gcc/testsuite/g++.dg/cpp0x/collapse.C 5337801b3f3b1399a7748f6f77351f43 gcc/testsuite/g++.dg/cpp0x/cond1.C 82b611352fd26c7db573eb5226ef4366 gcc/testsuite/g++.dg/cpp0x/cond2.C + 49892879cc50168564ac99cc87bfb0ab gcc/testsuite/g++.dg/cpp0x/constexpr-100111.C + eeac975a1b841cef4d5a4c468314ed8c gcc/testsuite/g++.dg/cpp0x/constexpr-104472.C 3e4cac522763806230540d3da6cc5ee1 gcc/testsuite/g++.dg/cpp0x/constexpr-46336.C d079e67f3b2be485ac7aed93b70984d2 gcc/testsuite/g++.dg/cpp0x/constexpr-46420.C 329a82a822423273c0c0256fd27a6d52 gcc/testsuite/g++.dg/cpp0x/constexpr-47570.C *************** f6676b44835c5329c16a5bb57f317adc gcc/te *** 11625,11630 **** --- 11671,11677 ---- 5698e51a559a43ae4c1e9bb2dcc0f8b5 gcc/testsuite/g++.dg/cpp0x/constexpr-base5.C 4be3d6eef956cee1b5ae2edcf04a605b gcc/testsuite/g++.dg/cpp0x/constexpr-base6.C 096985eadd4b3ef7a0521407d61d2085 gcc/testsuite/g++.dg/cpp0x/constexpr-base6b.C + cc4e6caab0fb0ed4c0220072c544d36f gcc/testsuite/g++.dg/cpp0x/constexpr-base7.C e4e15e959aaae288fa7a722d7abb7509 gcc/testsuite/g++.dg/cpp0x/constexpr-bitfield.C 18b0f5c8eeb4a3196bc623c2fd1205ee gcc/testsuite/g++.dg/cpp0x/constexpr-bitfield2.C 271aba96fb8bf37bed15d4848cc13f01 gcc/testsuite/g++.dg/cpp0x/constexpr-bitfield3.C *************** e4e15e959aaae288fa7a722d7abb7509 gcc/te *** 11634,11639 **** --- 11681,11688 ---- 85fdfb48424c10ce307707bc1d85353b gcc/testsuite/g++.dg/cpp0x/constexpr-builtin4.C a3e1dfa48f53c341c8fd1fed39d39593 gcc/testsuite/g++.dg/cpp0x/constexpr-cache1.C 2d072e1c9404478ff6f2aff9be053f5d gcc/testsuite/g++.dg/cpp0x/constexpr-cast.C + c617e2dbb5fde7d48a70e2596c3b5468 gcc/testsuite/g++.dg/cpp0x/constexpr-cast2.C + 7cd97e4615765a106cbe7e09df58b19e gcc/testsuite/g++.dg/cpp0x/constexpr-cast3.C c69a3f036aa1a3b23cdbaaea842e210b gcc/testsuite/g++.dg/cpp0x/constexpr-cleanup.C 4c7ae3f55ce6d714d60e08811293b1e3 gcc/testsuite/g++.dg/cpp0x/constexpr-comma1.C 80367967b9445fd60f61c8e306a887c1 gcc/testsuite/g++.dg/cpp0x/constexpr-complex.C *************** baf44bb3bbcc1b19835fcba0732c07b8 gcc/te *** 11701,11706 **** --- 11750,11756 ---- 753e5f64602d5b078b77508da90185f6 gcc/testsuite/g++.dg/cpp0x/constexpr-empty13.C 2a33a8f9f599ab8ad56bcf27c4f4faa1 gcc/testsuite/g++.dg/cpp0x/constexpr-empty14.C 39d49ad5520441d592a3a79408382c59 gcc/testsuite/g++.dg/cpp0x/constexpr-empty15.C + a275ad66d9fc657917af98f6fe78b474 gcc/testsuite/g++.dg/cpp0x/constexpr-empty16.C aef682375c033fe1283502c7f213d6ca gcc/testsuite/g++.dg/cpp0x/constexpr-empty2.C f2be36db1d24de846eca69288f8e004a gcc/testsuite/g++.dg/cpp0x/constexpr-empty3.C 933cc130bc4ebc33fb81e8901f604e0a gcc/testsuite/g++.dg/cpp0x/constexpr-empty4.C *************** c42ce017f72e0ac9bc977500bc2d096c gcc/te *** 11715,11720 **** --- 11765,11771 ---- ce75146a9a51521a3b4ff82cc14225c3 gcc/testsuite/g++.dg/cpp0x/constexpr-ex4.C 19eb610e0af0918f7473197af97c60d4 gcc/testsuite/g++.dg/cpp0x/constexpr-expinst.C 54953d2c31360e2eeefa3305044bd360 gcc/testsuite/g++.dg/cpp0x/constexpr-explicit-inst.C + 98f85ca947a471fd37217a8fc9e771fb gcc/testsuite/g++.dg/cpp0x/constexpr-fno-elide-ctors1.C aa1967267d5d21b22c4d54dfa617fcfc gcc/testsuite/g++.dg/cpp0x/constexpr-fnptr.C 928d1a775ac6fb68d34dd89fdd936ada gcc/testsuite/g++.dg/cpp0x/constexpr-fold1.C 216c6548cc77db922bab7f78e595ac97 gcc/testsuite/g++.dg/cpp0x/constexpr-fold2.C *************** ddcd4dc55809dc226c321025c894f2b0 gcc/te *** 11793,11799 **** e30db9bfd86140e4533c65e96fcc3879 gcc/testsuite/g++.dg/cpp0x/constexpr-nonstatic.C 2b6a53b16231810c0a21185dce583796 gcc/testsuite/g++.dg/cpp0x/constexpr-nsdmi1.C 990beb043ae4d800be378b30e8be4884 gcc/testsuite/g++.dg/cpp0x/constexpr-nullptr-1.C ! 3623c3968c6c158956f2321675d38aad gcc/testsuite/g++.dg/cpp0x/constexpr-nullptr-2.C d4c1a5cc0803346fbc25f7a4d5748fd8 gcc/testsuite/g++.dg/cpp0x/constexpr-nullptr.C da36a7fb764d4698ece80f56e1801401 gcc/testsuite/g++.dg/cpp0x/constexpr-object1.C a3363a18129aba2537ab6af225e19a74 gcc/testsuite/g++.dg/cpp0x/constexpr-object2.C --- 11844,11850 ---- e30db9bfd86140e4533c65e96fcc3879 gcc/testsuite/g++.dg/cpp0x/constexpr-nonstatic.C 2b6a53b16231810c0a21185dce583796 gcc/testsuite/g++.dg/cpp0x/constexpr-nsdmi1.C 990beb043ae4d800be378b30e8be4884 gcc/testsuite/g++.dg/cpp0x/constexpr-nullptr-1.C ! 7edfd1f97b60d8d22edb48040aab65ff gcc/testsuite/g++.dg/cpp0x/constexpr-nullptr-2.C d4c1a5cc0803346fbc25f7a4d5748fd8 gcc/testsuite/g++.dg/cpp0x/constexpr-nullptr.C da36a7fb764d4698ece80f56e1801401 gcc/testsuite/g++.dg/cpp0x/constexpr-object1.C a3363a18129aba2537ab6af225e19a74 gcc/testsuite/g++.dg/cpp0x/constexpr-object2.C *************** ec6bf8354ca1b8834959e856431d6ac4 gcc/te *** 11913,11918 **** --- 11964,11970 ---- 370c9ae430ac133c7a4882e418a08a3e gcc/testsuite/g++.dg/cpp0x/constexpr-virtual6.C 58e380f5c0bc16e86009e605e19acb07 gcc/testsuite/g++.dg/cpp0x/constexpr-volatile.C 5081c9b6e2b0e12bf7d6e127f365efe7 gcc/testsuite/g++.dg/cpp0x/constexpr-volatile2.C + 30ced1e6b63c1eb7ae6b537c9e49bc1f gcc/testsuite/g++.dg/cpp0x/constexpr-volatile3.C 7bca20d6ac21d6cb78ab16d5c52b7e64 gcc/testsuite/g++.dg/cpp0x/constexpr-wstring1.C b16fc42e77fa07ebcdb1053ea5d24120 gcc/testsuite/g++.dg/cpp0x/constexpr-wstring2.C 70dc080523c40a07cec30261f6f7007a gcc/testsuite/g++.dg/cpp0x/conv-tmpl1.C *************** be032bb4361dd11f064d960f788b56ae gcc/te *** 12200,12205 **** --- 12252,12258 ---- a90d02344ce471556a85a9970c53f219 gcc/testsuite/g++.dg/cpp0x/extern_template-3.C e69d01a320a7471c0585ac2d75efcac2 gcc/testsuite/g++.dg/cpp0x/extern_template-4.C b25800bcf52ab901ab8ddbc9ea153561 gcc/testsuite/g++.dg/cpp0x/extern_template-5.C + b44ed86d19fab7414d28d1f3fd36a7f9 gcc/testsuite/g++.dg/cpp0x/extern_template-6.C 592cc710524d5d21c28b065dd6c6de7c gcc/testsuite/g++.dg/cpp0x/fallthrough1.C c2982fdb85366105719171be7bb04eb0 gcc/testsuite/g++.dg/cpp0x/fallthrough2.C bcba4e18395ca9e8f9917788775bc3c1 gcc/testsuite/g++.dg/cpp0x/fntmp-equiv1.C *************** f8949630a7a02f66d0ceb796b5525cb8 gcc/te *** 12406,12411 **** --- 12459,12467 ---- 75fe6dcf44e6fa0a35cfaa871faa2b15 gcc/testsuite/g++.dg/cpp0x/initlist-new1.C 7bddf9c6b842f5be4f0dcb028b72f5d6 gcc/testsuite/g++.dg/cpp0x/initlist-new2.C c7426143406ef7a62dfbbb6b6ef974ca gcc/testsuite/g++.dg/cpp0x/initlist-new3.C + 0eb8216638573813eaf1d41d50899505 gcc/testsuite/g++.dg/cpp0x/initlist-new5.C + eb8899f6095da627d668fbc099e59316 gcc/testsuite/g++.dg/cpp0x/initlist-new6.C + 99344f656bc7edb059f04cde31dcaa17 gcc/testsuite/g++.dg/cpp0x/initlist-nrv1.C bcbe398391cda8139c8462f46935b7e2 gcc/testsuite/g++.dg/cpp0x/initlist-opt.C e572423dbc63856346f68c0f83dab54a gcc/testsuite/g++.dg/cpp0x/initlist-overload1.C a054a7d4e96233b7a3a6591843a8d33f gcc/testsuite/g++.dg/cpp0x/initlist-pmf1.C *************** dbabde6c9b65d0b2533bd2602dd6b6c4 gcc/te *** 12623,12628 **** --- 12679,12685 ---- f84ddfe5534d65a28836f3e1f7f92bbe gcc/testsuite/g++.dg/cpp0x/lambda/lambda-copy.C 6ae63f2c8f3dcde85465487f60927b71 gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ctor-neg.C 8e8636849d06c71cef7fbe0973b2ace5 gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ctors.C + b7541efb5750181bf83ef0c6c0074ed7 gcc/testsuite/g++.dg/cpp0x/lambda/lambda-current-inst1.C 620c51f35ce9293367e1ae8b3038f83a gcc/testsuite/g++.dg/cpp0x/lambda/lambda-debug.C 23762f5c7832f1cc2669f9358277141c gcc/testsuite/g++.dg/cpp0x/lambda/lambda-decltype1.C 3ad56243aecddd505746acfd0489c7b7 gcc/testsuite/g++.dg/cpp0x/lambda/lambda-decltype2.C *************** b4ee4e860077c15b5f446a344ee80eb1 gcc/te *** 12716,12721 **** --- 12773,12779 ---- fc0cbc487d6a1b6d02de8cbeb0f06f70 gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nop.C 45c8811455b2ff67d0b834d61c336d54 gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ns-scope.C a50b2f4594cb996e8a25dfe3e8da9a93 gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nsdmi1.C + b8cb4ea322362f9ce500dbe9e1e567dd gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nsdmi10.C 771626fe4c5491ce91092c43744cb02c gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nsdmi2.C 6a7d73b6c513d33dae55973e8fe4ad1d gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nsdmi3.C c8026e051502bc9cfe9092dd262c02cc gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nsdmi4.C *************** dbb54b67a2672d41d2a9ce040685f064 gcc/te *** 12887,12892 **** --- 12945,12953 ---- 0899d3ce9c806d82592b9a4f2847bdf8 gcc/testsuite/g++.dg/cpp0x/noexcept57.C 8baf3fe2d599fb545d36b51d50d630ec gcc/testsuite/g++.dg/cpp0x/noexcept60.C b950d7f903d3f69a347ad242cbfee61d gcc/testsuite/g++.dg/cpp0x/noexcept61.C + d4b0d9f048e8a94c9bc255582c53738a gcc/testsuite/g++.dg/cpp0x/noexcept62.C + eae74812dc8afb850498c1fb2e6dc011 gcc/testsuite/g++.dg/cpp0x/noexcept63.C + 02e09b143c63de3a81f9191fa6e9404d gcc/testsuite/g++.dg/cpp0x/noexcept70.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 *************** e754c2eb76d7ab2dff572da57c588a4d gcc/te *** 12936,12941 **** --- 12997,13004 ---- 0b3784303bce9e43936f535a111b1d8f gcc/testsuite/g++.dg/cpp0x/nsdmi-template19.C d83133afa9fe5d533ed8b6cecc90cc44 gcc/testsuite/g++.dg/cpp0x/nsdmi-template2.C f900a961724b234dbae2b1dd5e2b9ae6 gcc/testsuite/g++.dg/cpp0x/nsdmi-template20.C + 55e1dee2146a8988ec9a59e858dadc99 gcc/testsuite/g++.dg/cpp0x/nsdmi-template21.C + 93773e99f41e047cdb20c1fb229d81d2 gcc/testsuite/g++.dg/cpp0x/nsdmi-template21a.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 *************** cce8d7efe84ba47b6a9a649b7e96db1d gcc/te *** 13011,13016 **** --- 13074,13080 ---- cd57481c3233939f35a9152176ba0610 gcc/testsuite/g++.dg/cpp0x/nullptr43.C 3bffe4cc168fde4f27dd432ad19e2f12 gcc/testsuite/g++.dg/cpp0x/nullptr44.C afdfafb40dd063d062a20c67e4309ae4 gcc/testsuite/g++.dg/cpp0x/nullptr45.C + fd97d08f3976a4a83f1c49415efc3eca gcc/testsuite/g++.dg/cpp0x/nullptr46.C 9ac544c85b4718bef7e0acbc03dd004f gcc/testsuite/g++.dg/cpp0x/overflow1.C fb7661df85ad6b415b31574c67fa4ee0 gcc/testsuite/g++.dg/cpp0x/overload-conv-1.C 5ca00ae02aa7919e0b3d9730fa9f9ac5 gcc/testsuite/g++.dg/cpp0x/overload-conv-2.C *************** d2a1963e44488193e2d5ae183c548b2d gcc/te *** 13026,13031 **** --- 13090,13097 ---- ec3fccada021f17376f5255d71d5545b gcc/testsuite/g++.dg/cpp0x/override4.C 63a98616cfbc7aecbf849404acae0e55 gcc/testsuite/g++.dg/cpp0x/parse1.C a174690fe306aaf345b02df91c3ddebe gcc/testsuite/g++.dg/cpp0x/parse2.C + 6802ea11c1f5811ef4a3d0490040dcc1 gcc/testsuite/g++.dg/cpp0x/pr102305.C + 0f5046ead85037afdaba1b501accc894 gcc/testsuite/g++.dg/cpp0x/pr105256.C 26dea799d49ce223a0c4130a3c955271 gcc/testsuite/g++.dg/cpp0x/pr31431-2.C 4d1da29b669bf3178b3987abce4d58b1 gcc/testsuite/g++.dg/cpp0x/pr31431.C d65e06a3830e2b511cc25692b94615a1 gcc/testsuite/g++.dg/cpp0x/pr31432.C *************** f3e3d98fcbe616df26f26eb779c66c1f gcc/te *** 13961,13966 **** --- 14027,14033 ---- 99847692cf2ccd072e419199625ee070 gcc/testsuite/g++.dg/cpp1y/complex_literals1a.C 5f47973cdaddb1d27f6ea767e7275723 gcc/testsuite/g++.dg/cpp1y/complex_literals2.C a1995c633dded5a3445bad4fcc3b55cf gcc/testsuite/g++.dg/cpp1y/complex_literals2a.C + 6193cad472a1684eae83fead9fc5d0d7 gcc/testsuite/g++.dg/cpp1y/constexpr-104513.C 2d72668eefa5659edd32ef8dabc1c48e gcc/testsuite/g++.dg/cpp1y/constexpr-50060.C d3ca7557e59bd6b82fae38b637088145 gcc/testsuite/g++.dg/cpp1y/constexpr-66093.C 9ecc58eab147adafbf3780c51ed706fc gcc/testsuite/g++.dg/cpp1y/constexpr-70265-1.C *************** d8d5c97f0cfc535ec6b3092d8c2ad0a6 gcc/te *** 14000,14005 **** --- 14067,14074 ---- 689e7fdbc7e2f53c290b53e763b04728 gcc/testsuite/g++.dg/cpp1y/constexpr-96241.C 7b969c5a8bcb74e6e17d4cb0df34a497 gcc/testsuite/g++.dg/cpp1y/constexpr-98122.C 8a973746cd3be6ec951f7d289c327099 gcc/testsuite/g++.dg/cpp1y/constexpr-98672.C + e2c8c3a4cbd87e3f3523320895a62432 gcc/testsuite/g++.dg/cpp1y/constexpr-99859-1.C + 8c594d5fa749f298c6145256cb9997d1 gcc/testsuite/g++.dg/cpp1y/constexpr-99859-2.C c410a0259982426fcc8bf751139fbcd3 gcc/testsuite/g++.dg/cpp1y/constexpr-arith-overflow.C 8ca7fb9e44e526f77542eaa59593c544 gcc/testsuite/g++.dg/cpp1y/constexpr-array1.C 10c765e5671de39fd3d751b2e3a5408b gcc/testsuite/g++.dg/cpp1y/constexpr-array2.C *************** fdb8b6b86d13d007f2629fe0e79ef65b gcc/te *** 14017,14023 **** e6815ab618d6af99025ddeacf6ab0545 gcc/testsuite/g++.dg/cpp1y/constexpr-copy3.C 4808950072f67f78922c9046e31e486d gcc/testsuite/g++.dg/cpp1y/constexpr-dr1684.C 9b6ce1c2202c1ce9ea82fda5f060499b gcc/testsuite/g++.dg/cpp1y/constexpr-empty1.C ! 9e871814c326197a59b4ae1738313788 gcc/testsuite/g++.dg/cpp1y/constexpr-empty2.C d4fc72d059e047077b1d6033d4c13026 gcc/testsuite/g++.dg/cpp1y/constexpr-empty3.C f1a863bb06163b628459fbc6a355ec3f gcc/testsuite/g++.dg/cpp1y/constexpr-empty4.C 995873768089d805df939c03d2be8b1c gcc/testsuite/g++.dg/cpp1y/constexpr-hana1.C --- 14086,14092 ---- e6815ab618d6af99025ddeacf6ab0545 gcc/testsuite/g++.dg/cpp1y/constexpr-copy3.C 4808950072f67f78922c9046e31e486d gcc/testsuite/g++.dg/cpp1y/constexpr-dr1684.C 9b6ce1c2202c1ce9ea82fda5f060499b gcc/testsuite/g++.dg/cpp1y/constexpr-empty1.C ! b8279a438f13574240482fd43dc100d3 gcc/testsuite/g++.dg/cpp1y/constexpr-empty2.C d4fc72d059e047077b1d6033d4c13026 gcc/testsuite/g++.dg/cpp1y/constexpr-empty3.C f1a863bb06163b628459fbc6a355ec3f gcc/testsuite/g++.dg/cpp1y/constexpr-empty4.C 995873768089d805df939c03d2be8b1c gcc/testsuite/g++.dg/cpp1y/constexpr-hana1.C *************** c158c48cdc574a61e06922b17254f0d7 gcc/te *** 14141,14146 **** --- 14210,14216 ---- 3d83ad628fa7a413326bf23651c5bb6e gcc/testsuite/g++.dg/cpp1y/lambda-generic-90548.C b5a737fba00746ac9bc15993af743991 gcc/testsuite/g++.dg/cpp1y/lambda-generic-90842.C 195b05ddf7063d0ac4ebe911f6d5bcdb gcc/testsuite/g++.dg/cpp1y/lambda-generic-95451.C + b3b113da61831ee64e68c118f850ec29 gcc/testsuite/g++.dg/cpp1y/lambda-generic-Wunused.C 87f3d5397981cf431912aae6490ea63a gcc/testsuite/g++.dg/cpp1y/lambda-generic-auto1.C 18a2431f49a5d003b8c4af0ee1ee26fb gcc/testsuite/g++.dg/cpp1y/lambda-generic-cfun.C 043e19917f87f2b2acd754fc6d7db469 gcc/testsuite/g++.dg/cpp1y/lambda-generic-const1.C *************** fd449c2760b279bd0767e28da8a563bf gcc/te *** 14169,14174 **** --- 14239,14245 ---- 6481e5c27cf4d02abca8974e663bd61d gcc/testsuite/g++.dg/cpp1y/lambda-generic-ice7.C 8efe65d95bbc02645dd6c2656587135e gcc/testsuite/g++.dg/cpp1y/lambda-generic-ice8.C cbe44bb553e043d66e5399d7f388dabf gcc/testsuite/g++.dg/cpp1y/lambda-generic-ice9.C + 65815d2456686230a8b4da8685461cb9 gcc/testsuite/g++.dg/cpp1y/lambda-generic-local-class1.C a5e1f08b66165b58419bbab37da9a962 gcc/testsuite/g++.dg/cpp1y/lambda-generic-mixed.C 230ab773acec47b7efe832181c6c4972 gcc/testsuite/g++.dg/cpp1y/lambda-generic-nested1.C fcdbf299db7426d40d79e7ce91bbbc1e gcc/testsuite/g++.dg/cpp1y/lambda-generic-nested2.C *************** d91a981f54ab2a15c0e9427ccb338f24 gcc/te *** 14184,14189 **** --- 14255,14261 ---- 714b0ec0672f03bb83435eb7e8946993 gcc/testsuite/g++.dg/cpp1y/lambda-generic-this1a.C 5d6aac41102fa948ecd5b469abc35503 gcc/testsuite/g++.dg/cpp1y/lambda-generic-this2.C 5272ec327005dde6e5a2aaffb7102e42 gcc/testsuite/g++.dg/cpp1y/lambda-generic-this3.C + 85be199d2e0d4a7142fba0bb5f749ab7 gcc/testsuite/g++.dg/cpp1y/lambda-generic-this4.C 06ba6684e3759115ec5098f38667687b gcc/testsuite/g++.dg/cpp1y/lambda-generic-trailing1.C e947551033232c5abe95cce5adfd22aa gcc/testsuite/g++.dg/cpp1y/lambda-generic-udt.C 7515a5372d247dd5a94ef0626c25c2ae gcc/testsuite/g++.dg/cpp1y/lambda-generic-uneval1.C *************** bedfe39f995dd913a1715072975f6a1c gcc/te *** 14250,14255 **** --- 14322,14328 ---- 4707396951c53026c3f457ecd9db5312 gcc/testsuite/g++.dg/cpp1y/nsdmi-aggr1.C 5326d1798f69e0f75031ab294cf8dd21 gcc/testsuite/g++.dg/cpp1y/nsdmi-aggr10.C c9dde900e1dd03846724a7195332d8ea gcc/testsuite/g++.dg/cpp1y/nsdmi-aggr11.C + 620462324dd7279425148f8c5c72821a gcc/testsuite/g++.dg/cpp1y/nsdmi-aggr13.C 6181386fced4d11038690bcc0729a80d gcc/testsuite/g++.dg/cpp1y/nsdmi-aggr2.C 379f3d0c83382658777fb1c2f47ed88a gcc/testsuite/g++.dg/cpp1y/nsdmi-aggr3.C d986a2e035160bd06d7fd81798876e53 gcc/testsuite/g++.dg/cpp1y/nsdmi-aggr4.C *************** eed72e4e3c9aec24d904cb1baa5f2711 gcc/te *** 14357,14362 **** --- 14430,14436 ---- 11abcca649e7c260d96b20dd2bb71bc7 gcc/testsuite/g++.dg/cpp1y/pr85076.C e4968a83309cb7b0ed242d3d6971a6a3 gcc/testsuite/g++.dg/cpp1y/pr87322.C 82895ea6b585468afa3ea096948a4f4d gcc/testsuite/g++.dg/cpp1y/pr87410.C + c25e5ab56f549206e3abcdde00c1515e gcc/testsuite/g++.dg/cpp1y/pr88872.C 76d3c8355d513d753398e1184e4c4ece gcc/testsuite/g++.dg/cpp1y/pr89767.C d2d0bc874f9c02f4cf129f688184d93c gcc/testsuite/g++.dg/cpp1y/pr90996.C 7d645783aac5a4916b59afe86e71ea63 gcc/testsuite/g++.dg/cpp1y/pr91845.C *************** ca10f046e47ea09ba5b87084372f1ce2 gcc/te *** 14478,14483 **** --- 14552,14558 ---- 4dbddfffb31fb9d4ab9b40b6ac489d84 gcc/testsuite/g++.dg/cpp1z/aligned-new6.C c5e8ac858eac19a1f1f10709e9b49389 gcc/testsuite/g++.dg/cpp1z/aligned-new7.C 1c005f415746635350d5fd1bf3068b93 gcc/testsuite/g++.dg/cpp1z/aligned-new8.C + 91a3b7a59ec3f2f070c0cc2e24a851b2 gcc/testsuite/g++.dg/cpp1z/aligned-new9.C 15f78f24e2133987caada47dbd4501b6 gcc/testsuite/g++.dg/cpp1z/attr-lambda1.C 34121807f233280bd4b9ceb565c64cf6 gcc/testsuite/g++.dg/cpp1z/attributes-enum-1.C e474313e7bab15f973c71282c2c16e26 gcc/testsuite/g++.dg/cpp1z/attributes-enum-1a.C *************** e5c7ffb3df4f8d1853f8366805381932 gcc/te *** 14556,14569 **** --- 14631,14647 ---- 5bd09760c3c40512c7e433c6714430ac gcc/testsuite/g++.dg/cpp1z/class-deduction75.C f9a725e57aa9a1790952eaaee10816ec gcc/testsuite/g++.dg/cpp1z/class-deduction78.C 923f9361e61894453314ebd0b52faf9a gcc/testsuite/g++.dg/cpp1z/class-deduction8.C + 533990a3a8f21fecb63572f9aaf57a51 gcc/testsuite/g++.dg/cpp1z/class-deduction85.C 3920e918276476b088679b893b9cde19 gcc/testsuite/g++.dg/cpp1z/class-deduction9.C d09105e6c1f377543e5514e34d2837cd gcc/testsuite/g++.dg/cpp1z/constexpr-83692.C 6962bfa121a4383ee0b7a8f045abde3f gcc/testsuite/g++.dg/cpp1z/constexpr-84684.C db812bf22a911000584c903aac50ffd3 gcc/testsuite/g++.dg/cpp1z/constexpr-96862.C 58f65982ee216b64a2a721ba861c9e63 gcc/testsuite/g++.dg/cpp1z/constexpr-array1.C + 70b535b9e8c7e79ff364a6bca9996aa2 gcc/testsuite/g++.dg/cpp1z/constexpr-array2.C d309961f0255b13605cf111efa2b095a gcc/testsuite/g++.dg/cpp1z/constexpr-if-lambda1.C 6031d9adb83bdf87e2dd05c8108493d1 gcc/testsuite/g++.dg/cpp1z/constexpr-if-lambda2.C b69483cc09e62cb071dd7f82e188cc62 gcc/testsuite/g++.dg/cpp1z/constexpr-if-lambda3.C + 2746f29337da849f597ad6ce8bbb74c2 gcc/testsuite/g++.dg/cpp1z/constexpr-if-lambda4.C b70f4276933d24cd68ae2e047a954ece gcc/testsuite/g++.dg/cpp1z/constexpr-if1.C 1e52ede853069710bb8cc3b5b323de8c gcc/testsuite/g++.dg/cpp1z/constexpr-if10.C 6ad161b09218162d754ac9e397dad17c gcc/testsuite/g++.dg/cpp1z/constexpr-if11.C *************** bb80552b47c4d46b3400512a6ca45bad gcc/te *** 14691,14696 **** --- 14769,14775 ---- bafa3ed0da0c14fc9337428032934f0f gcc/testsuite/g++.dg/cpp1z/elide3.C c19f90a6b67cea2957e319db88a63ee3 gcc/testsuite/g++.dg/cpp1z/elide5.C 63be3b6d75aa3c2c8088552683d5245e gcc/testsuite/g++.dg/cpp1z/eval-order10.C + 3abc6084e572264410718d38beb290bb gcc/testsuite/g++.dg/cpp1z/eval-order11.C bb194d9ce590c9e5e69935ebac0f25e4 gcc/testsuite/g++.dg/cpp1z/eval-order2.C 89fdd37f4580457e23eeb34adcf4d4e0 gcc/testsuite/g++.dg/cpp1z/eval-order3.C 6d8d378fedaf65b4cb89952060799280 gcc/testsuite/g++.dg/cpp1z/eval-order4.C *************** eb09374f9955af523e3f7767c4ef9b75 gcc/te *** 14759,14764 **** --- 14838,14844 ---- 30ea7a0df040d49da61f977af41d7ab6 gcc/testsuite/g++.dg/cpp1z/inline-var6.C ccfcd25cc3fcf43345e501263a74dd42 gcc/testsuite/g++.dg/cpp1z/inline-var7.C 8bfc66e6a58a5eb9b429a1d9b4f4d581 gcc/testsuite/g++.dg/cpp1z/inline-var8.C + eb93f179b897016fd2cc051e599339bd gcc/testsuite/g++.dg/cpp1z/inline-var9.C 2eb7c8c6899f0df45df9a494fae11bac gcc/testsuite/g++.dg/cpp1z/lambda-__func__.C 7a8a15c87abf5409fafc54402d33a274 gcc/testsuite/g++.dg/cpp1z/lambda-inherit1.C 015fa9d631289b4abe8bd2e5a5af64bf gcc/testsuite/g++.dg/cpp1z/lambda-this1.C *************** db6d80bc5f29d89b66dc0f6ca5cdfd89 gcc/te *** 14792,14797 **** --- 14872,14879 ---- 549516884facf6ccae16b7de38b2931d gcc/testsuite/g++.dg/cpp1z/nodiscard5.C e9014cdec66bf94006c681e6825cac7f gcc/testsuite/g++.dg/cpp1z/nodiscard6.C e194031b93147b17a284c4c8d6501ead gcc/testsuite/g++.dg/cpp1z/nodiscard7.C + 47b3a4f8bb1d8252a7359be76bf3eb86 gcc/testsuite/g++.dg/cpp1z/nodiscard8.C + d7e96e57c23e0a8205a6c88d99e7a5df gcc/testsuite/g++.dg/cpp1z/nodiscard9.C ccacb58d42aa6d504b3629fce8ef518f gcc/testsuite/g++.dg/cpp1z/noexcept-type1.C 8fbb465fc69c13a4894d2eb47d00e941 gcc/testsuite/g++.dg/cpp1z/noexcept-type11.C 1caccdf4e16515c79981341c1b7a9d86 gcc/testsuite/g++.dg/cpp1z/noexcept-type11a.C *************** e2d27f023f98f0f6d5bbc4b4af73820d gcc/te *** 14808,14813 **** --- 14890,14897 ---- b844f1c10ac36bdb44fcc5f47c7ed338 gcc/testsuite/g++.dg/cpp1z/noexcept-type20.C bedc458500693b5518d2b34bdc4de5cb gcc/testsuite/g++.dg/cpp1z/noexcept-type21.C 67c6b023262a15cbea344311656cb28f gcc/testsuite/g++.dg/cpp1z/noexcept-type22.C + 34cf97af47dbe4a7ade75b94363e77b9 gcc/testsuite/g++.dg/cpp1z/noexcept-type23.C + 8a677f921d635efea7480743417cad8f gcc/testsuite/g++.dg/cpp1z/noexcept-type24.C a07bd6eee0bbce4f76caa1372e66c614 gcc/testsuite/g++.dg/cpp1z/noexcept-type3.C a1507d2a44a55f27a0e7109b7c2a2c43 gcc/testsuite/g++.dg/cpp1z/noexcept-type4.C 2cbc6352072676c50982358370c66f1e gcc/testsuite/g++.dg/cpp1z/noexcept-type5.C *************** dc65e28886d5d2ddf2556993e5252efd gcc/te *** 14849,14854 **** --- 14933,14939 ---- 1b308c8d2c5bd6aaa400ca37147401ab gcc/testsuite/g++.dg/cpp1z/pr87814.C 4f9ffba3612b44613643f987ded6b130 gcc/testsuite/g++.dg/cpp1z/pr92536.C 8dc6f63eb680c65d6bbd8ae84186b5b9 gcc/testsuite/g++.dg/cpp1z/pr99790.C + cad36ab63ab9c5a14fe2ebdee0d073ca gcc/testsuite/g++.dg/cpp1z/pr99833.C b333972b880ee4234fb66ca5b658a366 gcc/testsuite/g++.dg/cpp1z/range-for1.C 5cafd2c77bd36404914decb1342b683f gcc/testsuite/g++.dg/cpp1z/register1.C b1bd2d8ee7197a19db531a7761c34c27 gcc/testsuite/g++.dg/cpp1z/register2.C *************** e4ab256b90ae140854cd97b00b09ab4e gcc/te *** 14911,14917 **** --- 14996,15007 ---- 751fbb75edb28b274498b0c6ad196089 gcc/testsuite/g++.dg/cpp2a/class-deduction-aggr2.C 62962717f7746d6af072ffa09002f237 gcc/testsuite/g++.dg/cpp2a/class-deduction-alias1.C 22b0bdcc9e29ff5505abd2886fa49a6d gcc/testsuite/g++.dg/cpp2a/class-deduction-alias2.C + 2fd0252922ffc9e49528942c28494f78 gcc/testsuite/g++.dg/cpp2a/class-deduction-alias3.C 06de637acc58c0572ef2eb75419e55e3 gcc/testsuite/g++.dg/cpp2a/class-deduction-alias4.C + 0538d499885f751447275fb21053fc26 gcc/testsuite/g++.dg/cpp2a/class-deduction-alias5.C + 65613b3e49f308133a1a98bbfe9acfc7 gcc/testsuite/g++.dg/cpp2a/class-deduction-alias6.C + 3d59688f146fdaa417c0679c3daf962b gcc/testsuite/g++.dg/cpp2a/class-deduction-alias7.C + 860b0c6e24138897f501915458fc4a3e gcc/testsuite/g++.dg/cpp2a/class-deduction-alias8.C d91909221a5cbeda4fbefe089cb008d0 gcc/testsuite/g++.dg/cpp2a/comma1.C aee795f23186e5e93f06f950260e8a90 gcc/testsuite/g++.dg/cpp2a/comma2.C d6c6fbba9ebe083780b2e382feedd3f0 gcc/testsuite/g++.dg/cpp2a/comma3.C *************** c7b9c33b4c64892adbf5412ad5123053 gcc/te *** 14935,14940 **** --- 15025,15031 ---- fb0e127ecb1cec0db6d4a1f2dc191508 gcc/testsuite/g++.dg/cpp2a/concepts-ctad2.C c4ffa958ff3793f7e4e8b0266163aebd gcc/testsuite/g++.dg/cpp2a/concepts-decltype.C 2ff1559b74cd8147b9de258edac783b1 gcc/testsuite/g++.dg/cpp2a/concepts-defarg1.C + 8b450b687a58857141c45425bdbf8e80 gcc/testsuite/g++.dg/cpp2a/concepts-defarg2.C c215ebfad2b56bf6dd6b0a287515afa7 gcc/testsuite/g++.dg/cpp2a/concepts-dep1.C e6511c7a38a3c0fa4202eea51ae4eb5a gcc/testsuite/g++.dg/cpp2a/concepts-dr1430.C 9a6f2742da84cba311f0be393cccdd14 gcc/testsuite/g++.dg/cpp2a/concepts-err1.C *************** bf8af008c314faab5d57ae5358cb2cac gcc/te *** 15112,15117 **** --- 15203,15209 ---- 59722259f0b1fce83daf4f38e47bc441 gcc/testsuite/g++.dg/cpp2a/concepts-requires21.C 533db7e7d7422951c2d0551729c35e3d gcc/testsuite/g++.dg/cpp2a/concepts-requires24.C 03f03cb93ced25683545d58c3fb58c93 gcc/testsuite/g++.dg/cpp2a/concepts-requires3.C + af01c600c3ac040f6855ee2ed2bff7bc gcc/testsuite/g++.dg/cpp2a/concepts-requires30.C 53efb89dca9c98e8f37de61b12380be5 gcc/testsuite/g++.dg/cpp2a/concepts-requires4.C 97418d8430be07544b31736dfb0dc928 gcc/testsuite/g++.dg/cpp2a/concepts-requires5.C f93f3305aa00a3c319cb8b40d5c8a5d2 gcc/testsuite/g++.dg/cpp2a/concepts-requires6.C *************** bbfc0967b09bb4b2f1ace77c10c76387 gcc/te *** 15167,15172 **** --- 15259,15266 ---- cf282e3680d2137a27a9a74bced96291 gcc/testsuite/g++.dg/cpp2a/consteval18.C b25072b636670ba0bf6636ee75629f7f gcc/testsuite/g++.dg/cpp2a/consteval19.C 6053d37c0ed21135f3f081cb54bda42d gcc/testsuite/g++.dg/cpp2a/consteval2.C + 419c55859a9fd338cbd6417cdd3b15d3 gcc/testsuite/g++.dg/cpp2a/consteval26.C + 7b94006f015ce630f646bbae9c502103 gcc/testsuite/g++.dg/cpp2a/consteval27.C fc387c7b911c42cac7b695c9473df70b gcc/testsuite/g++.dg/cpp2a/consteval3.C 2d6205fea644048201c44086df527c3a gcc/testsuite/g++.dg/cpp2a/consteval4.C e71633ec506016932dc09c057d98c36c gcc/testsuite/g++.dg/cpp2a/consteval5.C *************** be6031c0bedd5678304d7154f8ea2b35 gcc/te *** 15177,15182 **** --- 15271,15277 ---- 249686f0fb9ecbea2e909ed986426855 gcc/testsuite/g++.dg/cpp2a/constexpr-98122.C 2004a926e55a105d0f80db50528a9def gcc/testsuite/g++.dg/cpp2a/constexpr-dtor1.C cbf5d5a37bc2a85bde738f9433003a39 gcc/testsuite/g++.dg/cpp2a/constexpr-dtor10.C + 0e35a64721caa10ace15014c6a57e598 gcc/testsuite/g++.dg/cpp2a/constexpr-dtor12.C 11daa2f71262bf8c179b08396204886d gcc/testsuite/g++.dg/cpp2a/constexpr-dtor2.C 2b77805fc0d5367b858ca7a151bd44dd gcc/testsuite/g++.dg/cpp2a/constexpr-dtor3.C 6612240552037f96610d1036e189667a gcc/testsuite/g++.dg/cpp2a/constexpr-dtor4.C *************** ee2ec05ccc231153595e8b6481ac0140 gcc/te *** 15228,15234 **** --- 15323,15332 ---- 6340911062f801186a4ac6aa85195912 gcc/testsuite/g++.dg/cpp2a/constexpr-new14.C d03c70bf2e20a7e4078f0e590a42e18a gcc/testsuite/g++.dg/cpp2a/constexpr-new16.C 8b5edf9c38364b0932161b7fd5869ae6 gcc/testsuite/g++.dg/cpp2a/constexpr-new17.C + affc6e3db6b22de78239c415dfdfc947 gcc/testsuite/g++.dg/cpp2a/constexpr-new18.C + ab73ad61b3eadcfd65c5bacdfba0e5d6 gcc/testsuite/g++.dg/cpp2a/constexpr-new19.C fbb86f233bb9ab7859ddbc542f26808b gcc/testsuite/g++.dg/cpp2a/constexpr-new2.C + 8f15e7c6c4a56e33628394c948bba9aa gcc/testsuite/g++.dg/cpp2a/constexpr-new22.C 61fba59adab72d7883d782fd370b3730 gcc/testsuite/g++.dg/cpp2a/constexpr-new3.C f609675a5974c3dfcbd3c080a928f787 gcc/testsuite/g++.dg/cpp2a/constexpr-new4.C 13168706d3a30093b80a47cb7fbef7d5 gcc/testsuite/g++.dg/cpp2a/constexpr-new5.C *************** f609675a5974c3dfcbd3c080a928f787 gcc/te *** 15236,15241 **** --- 15334,15340 ---- cfa0f4cf985fbc5ca99e1d0f6b42df79 gcc/testsuite/g++.dg/cpp2a/constexpr-new7.C f023df1377d45fb81106b0b466d0f4d9 gcc/testsuite/g++.dg/cpp2a/constexpr-new8.C 69fcfcf9ada7c672bc604f4000cfd446 gcc/testsuite/g++.dg/cpp2a/constexpr-new9.C + e8f7bd0576728e974495935283ad4f39 gcc/testsuite/g++.dg/cpp2a/constexpr-nonlit7.C fe2e298a3cf2e9094a79a25a4ffd8fc2 gcc/testsuite/g++.dg/cpp2a/constexpr-shift1.C 1d1e610556de3295af12cf17177f42b7 gcc/testsuite/g++.dg/cpp2a/constexpr-try1.C 27ac7e1957f04ea6ee6160a7f7c14ecc gcc/testsuite/g++.dg/cpp2a/constexpr-try2.C *************** d5cf00e36fa4ba1a100d8370416e1bc2 gcc/te *** 15256,15261 **** --- 15355,15361 ---- 951c8b64153a58a8121e2123efa1bf4a gcc/testsuite/g++.dg/cpp2a/constexpr-virtual15.C d39d73d76c96183868eeee6ef1f857f5 gcc/testsuite/g++.dg/cpp2a/constexpr-virtual16.C 3705fff5ce2b4615567efbbb0bd45eab gcc/testsuite/g++.dg/cpp2a/constexpr-virtual17.C + b41b1406ccaabb57748ecf4f05c3e13b gcc/testsuite/g++.dg/cpp2a/constexpr-virtual19.C 8356345162577a74b103ae82b69fde6d gcc/testsuite/g++.dg/cpp2a/constexpr-virtual2.C 387607aa06c3438be11d475781b728ae gcc/testsuite/g++.dg/cpp2a/constexpr-virtual3.C 4d58f9556b7091659bbc5730f1a2697b gcc/testsuite/g++.dg/cpp2a/constexpr-virtual4.C *************** aad29b064fff817ac1e3a613ef44faf8 gcc/te *** 15291,15296 **** --- 15391,15397 ---- 1ca9ed28e32a5aa7ea91f1b6c8ca5c91 gcc/testsuite/g++.dg/cpp2a/desig13.C 6d38c77badd579c8ce5e225a881fb734 gcc/testsuite/g++.dg/cpp2a/desig14.C bc8c268c08fedc23cbbb52f3be804b6b gcc/testsuite/g++.dg/cpp2a/desig15.C + c75fc09bc39f984910adbf5fac4d1df6 gcc/testsuite/g++.dg/cpp2a/desig18.C 660e750ca110e87932946efeee331317 gcc/testsuite/g++.dg/cpp2a/desig2.C 9f489d7f3f58294a91f5e5ea62989f5c gcc/testsuite/g++.dg/cpp2a/desig3.C a1e304613b1097092d10ed459e46fe0c gcc/testsuite/g++.dg/cpp2a/desig4.C *************** bb8d6be95bfb22151d11535f6f528b3d gcc/te *** 15347,15352 **** --- 15448,15454 ---- 7ac725de08593808d7b980841f2749d7 gcc/testsuite/g++.dg/cpp2a/inline-asm3.C 5aa6c838680e7a1a1da22f5ee9de6c76 gcc/testsuite/g++.dg/cpp2a/is-constant-evaluated1.C f2ad91569581aa3fa670ae32821491f9 gcc/testsuite/g++.dg/cpp2a/is-constant-evaluated10.C + 90589ce06ced8c136aaf37770e1ec488 gcc/testsuite/g++.dg/cpp2a/is-constant-evaluated11.C 4617b7d86ad3299b351c033f194bee8a gcc/testsuite/g++.dg/cpp2a/is-constant-evaluated2.C 73b56ba004639bd18c7c3c95c3bfd080 gcc/testsuite/g++.dg/cpp2a/is-constant-evaluated3.C 5c37b5cacdb70688ac2e90c563d9613c gcc/testsuite/g++.dg/cpp2a/is-constant-evaluated4.C *************** f3183e909b7fd601906b1f284b8514e9 gcc/te *** 15364,15375 **** --- 15466,15479 ---- 4aeeac8ebcb51044cd9c82d45ee9a511 gcc/testsuite/g++.dg/cpp2a/lambda-generic5.C 39b7c67b1277b814bc1960e8dd413aaf gcc/testsuite/g++.dg/cpp2a/lambda-generic6.C 9ed9fd3beac8131f2ddd0a747eaf2128 gcc/testsuite/g++.dg/cpp2a/lambda-generic7.C + 2c7985bcf67e650ec3b394ec88b19e13 gcc/testsuite/g++.dg/cpp2a/lambda-generic9.C 9046b5f0a50e1a6bc966fd9b3b6dfd20 gcc/testsuite/g++.dg/cpp2a/lambda-mangle.C 3ab1babdc49679a44f405e45f0d73567 gcc/testsuite/g++.dg/cpp2a/lambda-pack-init1.C 00668662ccb6f2bfdc76911b02c45eca gcc/testsuite/g++.dg/cpp2a/lambda-pack-init2.C 4a00e775daa831f33ae91ab118695086 gcc/testsuite/g++.dg/cpp2a/lambda-pack-init3.C 135fe04bd1e5322dc2e118df4c43eb3d gcc/testsuite/g++.dg/cpp2a/lambda-pack-init4.C 60272cd99712da3380fe2c9f4b4f5165 gcc/testsuite/g++.dg/cpp2a/lambda-pack-init5.C + 05ee01266fc805cc3327ad09e070330c gcc/testsuite/g++.dg/cpp2a/lambda-pack-init6.C 22ec10632b049637a7cbf82f46eda177 gcc/testsuite/g++.dg/cpp2a/lambda-this1.C c09b3406a6984eced941c654f03df8b6 gcc/testsuite/g++.dg/cpp2a/lambda-this2.C a10b478d00c08a3b0686eea62d1bb5db gcc/testsuite/g++.dg/cpp2a/lambda-this3.C *************** f000e2a675b3a60670876a40b578823b gcc/te *** 15476,15481 **** --- 15580,15586 ---- 57c2192944acf328df3f747bc59a3e3d gcc/testsuite/g++.dg/cpp2a/pr88534.C fd07f3346ebca247b445c7db0b17b5b2 gcc/testsuite/g++.dg/cpp2a/pr88537.C 13ae5aaf7dca0a1630ba951d7eb1285a gcc/testsuite/g++.dg/cpp2a/pr89913.C + d5943026b7bd9f1357d76ae6399779ce gcc/testsuite/g++.dg/cpp2a/pr99833.C 0b76f09e4e3095958613ee48842ded89 gcc/testsuite/g++.dg/cpp2a/ptrmem1.C da15d1527c3c507a9553f42e04caab59 gcc/testsuite/g++.dg/cpp2a/ptrmem1a.C 8a099b90a43fdebc8971953e67a02c98 gcc/testsuite/g++.dg/cpp2a/range-for1.C *************** fc875772e280d6860400721ab59c2a23 gcc/te *** 15590,15595 **** --- 15695,15701 ---- 8e4abc5980a05aa68b936cca386e4618 gcc/testsuite/g++.dg/cpp2a/volatile2.C 38a1560b8b9b22be4d576d30a8cef4c3 gcc/testsuite/g++.dg/cpp2a/volatile3.C 552e3d266c035e0dbeca3c878bc5a2f5 gcc/testsuite/g++.dg/cpp2a/volatile4.C + 96dafb009a7feee933cad2b35c2cccf6 gcc/testsuite/g++.dg/cpp2a/volatile5.C e71a3440857a0df24410cbe91e45c678 gcc/testsuite/g++.dg/debug/anonunion1.C e4aee91d21a8cdbd286094f893319c70 gcc/testsuite/g++.dg/debug/const1.C 2e4398a10938bba8e5fd13cd2d12e691 gcc/testsuite/g++.dg/debug/const2.C *************** e64fec6e11d681323560675ce433a296 gcc/te *** 15684,15689 **** --- 15790,15796 ---- c7ffd1dd0ae40378732be3ac8729a37c gcc/testsuite/g++.dg/debug/dwarf2/non-virtual-thunk.C 804b19b7b58e86e4e92d0018c08cf7b7 gcc/testsuite/g++.dg/debug/dwarf2/noreturn-function.C b3cbbd79d5ff077a6732280d76b2284e gcc/testsuite/g++.dg/debug/dwarf2/omp-fesdr.C + b117227269644a100a7a06bf2bc9bf6f gcc/testsuite/g++.dg/debug/dwarf2/pr101378.C 7054dc65c88179389afb9e79cad0df38 gcc/testsuite/g++.dg/debug/dwarf2/pr41063.C 9118e81e091fae9d3d9c8c39a846e724 gcc/testsuite/g++.dg/debug/dwarf2/pr44641.C 90028c65be83718cb8e154df1b502d99 gcc/testsuite/g++.dg/debug/dwarf2/pr45997-1.C *************** af5ab077811439033f9383ef557968f9 gcc/te *** 16253,16258 **** --- 16360,16366 ---- 2ac7c8bbdf5a3e29d0fe098818a73c8c gcc/testsuite/g++.dg/ext/always_inline-4.C ffdb526972a39c85890c287c92939515 gcc/testsuite/g++.dg/ext/always_inline-5.C ba52b9ac855913bbeb9477d56e50a3d7 gcc/testsuite/g++.dg/ext/anon-struct1.C + f8e1155ac1e5e2ac874ef60de1dbe74e gcc/testsuite/g++.dg/ext/anon-struct10.C 0e1fc7f945fafc3c224a24b23c1c2a76 gcc/testsuite/g++.dg/ext/anon-struct2.C 5f70b0d4a3b1e3b8a10d06d54d63f427 gcc/testsuite/g++.dg/ext/anon-struct3.C 3326283e48652640c3c66982c9b8d0ef gcc/testsuite/g++.dg/ext/anon-struct4.C *************** f27482d95969ec072f6dc3a9d18c8b21 gcc/te *** 16277,16282 **** --- 16385,16391 ---- 6a6537dca5e2183665f9761920418307 gcc/testsuite/g++.dg/ext/array1.C f1a9da555162b7ed9f63dd442d842c1c gcc/testsuite/g++.dg/ext/array2.C d1e93fe1d5f57febc15732f8f13ad24f gcc/testsuite/g++.dg/ext/array3.C + 59a6a5d086a3ae01ea6e51401427f2fb gcc/testsuite/g++.dg/ext/array4.C d377fb4f9ef6d1ed2029c1551ddf7e3b gcc/testsuite/g++.dg/ext/asm1.C 82e001dc60a8f36b8affdc7210de5b60 gcc/testsuite/g++.dg/ext/asm10.C 25fbbf0ac13b6baebc40ebabaedfe317 gcc/testsuite/g++.dg/ext/asm11.C *************** b2c60991d5b6f21b7202a6d5a7c81412 gcc/te *** 16619,16625 **** --- 16728,16736 ---- 17026c219335daa904b63aabf2ba8120 gcc/testsuite/g++.dg/ext/flexary35.C da96fc262f063d29280b10e42245318e gcc/testsuite/g++.dg/ext/flexary36.C bdc1e53895229e84f994524314021292 gcc/testsuite/g++.dg/ext/flexary38.C + e3abdb563edb7ccc89af09138c07030d gcc/testsuite/g++.dg/ext/flexary39.C 7c5aa9e0bd6655b7c3b04f320d67e736 gcc/testsuite/g++.dg/ext/flexary4.C + 7b20dd05a975dd9f5eda50838835ac7c gcc/testsuite/g++.dg/ext/flexary40.C 55d07993cbe972abdb053af6f481f34e gcc/testsuite/g++.dg/ext/flexary5.C 992897ce6ded0ffee198a5cf85775530 gcc/testsuite/g++.dg/ext/flexary6.C df64a969f76ad8dba013343925441866 gcc/testsuite/g++.dg/ext/flexary7.C *************** bb128ce7c4aa022f8046c469bbe3faa3 gcc/te *** 16927,16932 **** --- 17038,17044 ---- 3364a5c5f070567fdc2d0df9cd80bd73 gcc/testsuite/g++.dg/ext/utf8-2.C 33d19c269a9e9108be7e58ebb9f5dba4 gcc/testsuite/g++.dg/ext/va-arg-pack-1.C 95df36aad68d70ccb06176f4d6386b01 gcc/testsuite/g++.dg/ext/va-arg-pack-2.C + a8b70fba535d4caa23d14f33faaaca4d gcc/testsuite/g++.dg/ext/va-arg-pack-3.C 5767d28306995682901a8025cc09bcf5 gcc/testsuite/g++.dg/ext/va-arg-pack-len-1.C 3da578ea7fb89ed9d7d870cd2355c8a1 gcc/testsuite/g++.dg/ext/va-arg-pack-len-2.C be5f35b51bfbfb360923dc0be613c0d6 gcc/testsuite/g++.dg/ext/va-arg1.C *************** a734cd9ac4c7933b7e53991e05b0aed5 gcc/te *** 17154,17160 **** 4d9ae441343c49335159712e6d78736c gcc/testsuite/g++.dg/gomp/cancel-3.C 229a4e7a48a56c0cf19c162f2a33f7f1 gcc/testsuite/g++.dg/gomp/clause-1.C 58ada034a21b7734739e966345d25fac gcc/testsuite/g++.dg/gomp/clause-2.C ! e183953e6fde368f2c7dba36fc31364f gcc/testsuite/g++.dg/gomp/clause-3.C 2f0edfb42c07ca8f104959d595305979 gcc/testsuite/g++.dg/gomp/clause-4.C fe6047f5ca7e2eac34792a3acc1193c2 gcc/testsuite/g++.dg/gomp/copyin-1.C 73dc4c4897395dc7c307860e0c371fe1 gcc/testsuite/g++.dg/gomp/critical-1.C --- 17266,17272 ---- 4d9ae441343c49335159712e6d78736c gcc/testsuite/g++.dg/gomp/cancel-3.C 229a4e7a48a56c0cf19c162f2a33f7f1 gcc/testsuite/g++.dg/gomp/clause-1.C 58ada034a21b7734739e966345d25fac gcc/testsuite/g++.dg/gomp/clause-2.C ! 1f4bc230caef2b86cebd77a5c13b474e gcc/testsuite/g++.dg/gomp/clause-3.C 2f0edfb42c07ca8f104959d595305979 gcc/testsuite/g++.dg/gomp/clause-4.C fe6047f5ca7e2eac34792a3acc1193c2 gcc/testsuite/g++.dg/gomp/copyin-1.C 73dc4c4897395dc7c307860e0c371fe1 gcc/testsuite/g++.dg/gomp/critical-1.C *************** ad83350cdd58e73fddf0b7bacdf348a8 gcc/te *** 17238,17243 **** --- 17350,17357 ---- f711435274df71049aa71808a78fc7a5 gcc/testsuite/g++.dg/gomp/parallel-3.C 5d09e3c0e650269fbab3a248edade585 gcc/testsuite/g++.dg/gomp/parallel-4.C d9a1f43ca6ac2a073e22bbbf243f300b gcc/testsuite/g++.dg/gomp/parallel-5.C + 9950e1331756ada98404843c3491b239 gcc/testsuite/g++.dg/gomp/pr101516.C + 3da3560251942b44a47c6e2c267e97f2 gcc/testsuite/g++.dg/gomp/pr102431.C 539bba6df5330b7a6631eca5665a0899 gcc/testsuite/g++.dg/gomp/pr24849.C 78ea34fd7a1a2767f61a703271e7070a gcc/testsuite/g++.dg/gomp/pr25874.C 93a85a09acfdf011a86ff95fc9184a94 gcc/testsuite/g++.dg/gomp/pr25996.C *************** d6728c160968c11c85593017e8436bec gcc/te *** 17540,17545 **** --- 17654,17661 ---- 388522e6f12ed4b010648b548c66a1b6 gcc/testsuite/g++.dg/inherit/virtual12.C cb86e64ab41b8a5f64a68e42134eb849 gcc/testsuite/g++.dg/inherit/virtual13.C 5fdfbd638062b0c6b4b3cecc4948fe33 gcc/testsuite/g++.dg/inherit/virtual14.C + cb8acabe2a9d5c0a495ca2b035cff652 gcc/testsuite/g++.dg/inherit/virtual15.C + 5abfbed5214dcb0c4878c14899667883 gcc/testsuite/g++.dg/inherit/virtual15a.C 97a2f1a9fc23a8a008f5567cb6bbefa7 gcc/testsuite/g++.dg/inherit/virtual2.C 88e3f23768b2dfe530d163660b058796 gcc/testsuite/g++.dg/inherit/virtual3.C b7f032736331f1ff851d46fe5aef118a gcc/testsuite/g++.dg/inherit/virtual4.C *************** e7a4920eaa905e671e74b6482c654721 gcc/te *** 17624,17629 **** --- 17740,17746 ---- 4ab5bb9dc38b78d749ba584adefbdc33 gcc/testsuite/g++.dg/init/array8.C b1c2a3438d19ab4734ef026ce6aba7fa gcc/testsuite/g++.dg/init/array9.C 590b4fffc5e2d0c7af7852413ab82a9e gcc/testsuite/g++.dg/init/assign1.C + c683e74a06917192a3b9ed9e2ec6aa08 gcc/testsuite/g++.dg/init/assign2.C 3eee77105967418a88d56f0c30243408 gcc/testsuite/g++.dg/init/attrib1.C 77338e30d92da64b5b8a53b656838268 gcc/testsuite/g++.dg/init/base1.C f3383f08918eed93161c080f618e55e8 gcc/testsuite/g++.dg/init/bitfield1.C *************** ece146914185349992892b6c7e289bb0 gcc/te *** 17773,17778 **** --- 17890,17896 ---- 9e9ce794649ccc9a4507b42cb8c4c0d0 gcc/testsuite/g++.dg/init/new8.C d9b779b618b81e9ea527baf5e2af4c4e gcc/testsuite/g++.dg/init/new9.C ad6fea2e4a044bf966634965459eed1f gcc/testsuite/g++.dg/init/no-elide1.C + 2524b7f075542480f2a1e27b01b7f04d gcc/testsuite/g++.dg/init/no-elide2.C 6e78c514e0d930771bc8bc83b1d03c3f gcc/testsuite/g++.dg/init/null1.C ef95eb29955e54a2310be36a0828b0cb gcc/testsuite/g++.dg/init/placement1.C 9c2843f3878e7468a19ecfaa90c8bf5f gcc/testsuite/g++.dg/init/placement2.C *************** f58299de078b35494d60ed1ce04894ba gcc/te *** 18264,18269 **** --- 18382,18388 ---- fd517010ca215fc30ad0d3a32a3ed3f3 gcc/testsuite/g++.dg/lookup/nested2.C f73a831dbfcd6430b723ed4198037c98 gcc/testsuite/g++.dg/lookup/new1.C 7a4d3b1fa46512441a7977635cc69fe9 gcc/testsuite/g++.dg/lookup/new2.C + 452e1ff799da032536237dfb649f6d8d gcc/testsuite/g++.dg/lookup/new3.C 72c3a9b17a32af0585fa3bf9d370c39d gcc/testsuite/g++.dg/lookup/ns1.C 8fad00e146fe0525b4a78080a95a7ca8 gcc/testsuite/g++.dg/lookup/ns2.C 326caa0ef916da51fec348c662a91f18 gcc/testsuite/g++.dg/lookup/ns3.C *************** f3edef1ce387276626f5233209353c56 gcc/te *** 18710,18715 **** --- 18829,18836 ---- 2d449b278a535f9f851a800e453b07a6 gcc/testsuite/g++.dg/lto/pr93166_0.C d92f918a28c68fc934d26fc7ceb822b5 gcc/testsuite/g++.dg/lto/pr96591_0.C b8735311421a9557b475c780e1712295 gcc/testsuite/g++.dg/lto/pr96690_0.C + 1fa0bf497eddaf27bc8b579ea2b690fc gcc/testsuite/g++.dg/lto/pr97565_0.C + 540253034f25055f8bf0879bf3a5aff5 gcc/testsuite/g++.dg/lto/pr97565_1.C 6232508298dd20a759cf64fffbca9f5e gcc/testsuite/g++.dg/lto/v1-plugin-api-not-supported_0.C dbe30d4af4bd2caeabf4784c3ef0ca9d gcc/testsuite/g++.dg/missing-return.C 0611288c84e3f846cb789e1b0d0e7706 gcc/testsuite/g++.dg/missing-symbol-2.C *************** b879c3972fcf09a0bef4781d973dea10 gcc/te *** 18755,18760 **** --- 18876,18882 ---- 6b2e1cf4863e58457238c73c49085813 gcc/testsuite/g++.dg/opt/const4.C 8acf967b641c44d3b713b18abd459981 gcc/testsuite/g++.dg/opt/const5.C 77ef3f0315a1d75cc03361805c714b79 gcc/testsuite/g++.dg/opt/const6.C + 3ef0b8f03b8f52cb5e4a7f14d08f9880 gcc/testsuite/g++.dg/opt/const7.C 8a6577c2e8b91d69c2d55b8ed2488fc8 gcc/testsuite/g++.dg/opt/copysign-1.C 5c2d124413a2eaf9d343379ef14570a2 gcc/testsuite/g++.dg/opt/covariant1.C 2b8e568482a37c0e98a0154aa649f58b gcc/testsuite/g++.dg/opt/crash1.C *************** e94377182a1dedb230f53db874897364 gcc/te *** 18852,18857 **** --- 18974,18980 ---- 3a570f71e0d06b55d991f8cab4b017d2 gcc/testsuite/g++.dg/opt/nrv18.C b5ea3678b95f88606bb0d37ee1f58a68 gcc/testsuite/g++.dg/opt/nrv19.C 360692bdb55de35cb68717ceb6c51fd7 gcc/testsuite/g++.dg/opt/nrv2.C + b95995f2a1b93421818fb349cdf03d17 gcc/testsuite/g++.dg/opt/nrv20.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 *************** b16ae5b90244df2461a7c023c7f3c88e gcc/te *** 18862,18867 **** --- 18985,18993 ---- 5778a352c750259fe850421e364893fa gcc/testsuite/g++.dg/opt/operator1.C 1b20239db4498d5cce85a900755fb433 gcc/testsuite/g++.dg/opt/placeholder1.C cf9e1c6c02a4aee1d10b86325166de66 gcc/testsuite/g++.dg/opt/pmf1.C + b7d92853a5faa70c9b8f4e124609991d gcc/testsuite/g++.dg/opt/pr100148.C + b599b75470b905e959a7172363b13d69 gcc/testsuite/g++.dg/opt/pr100254.C + 4821bda808ec2c117c297e4f155752e3 gcc/testsuite/g++.dg/opt/pr104681.C 2896f5b1a96dd9fabb1dbb65cb4c5921 gcc/testsuite/g++.dg/opt/pr13066-1.C 4f87f86b9f018cae74888e97468b2fe0 gcc/testsuite/g++.dg/opt/pr14029.C 8fb7e68e9e9b5eb02628e03f5333e645 gcc/testsuite/g++.dg/opt/pr14888.C *************** bc5371eb8e8dcf79efb0889828991560 gcc/te *** 19326,19331 **** --- 19452,19459 ---- 710d41055b4bb35ff1473bcd3c776607 gcc/testsuite/g++.dg/other/gc3.C 88d3ce293bea84b74d7f26a42a8538fb gcc/testsuite/g++.dg/other/gc4.C 47195a1b7ad4c24c5ccc7cbf50e26bb0 gcc/testsuite/g++.dg/other/gc5.C + a526cd2f6c0f7190ee33480a675c4cfc gcc/testsuite/g++.dg/other/gc6.C + eda67a8394a25b381e47971e78264eba gcc/testsuite/g++.dg/other/gc7.C 3ca5017faf45f39326ff4e30a1ec1ba8 gcc/testsuite/g++.dg/other/i386-1.C 9913a24914ce11f6a0606c70ed58cb96 gcc/testsuite/g++.dg/other/i386-10.C 8925c3efd781e76570846cfd6f817fd2 gcc/testsuite/g++.dg/other/i386-11.C *************** e39ffc27c2cc367fb38574d001689277 gcc/te *** 19380,19385 **** --- 19508,19514 ---- da1ba255024d00bac0a97620f4ffaba7 gcc/testsuite/g++.dg/other/operator3.C 983bbfea996145b298440ca410c9fb19 gcc/testsuite/g++.dg/other/operator4.C 6be92beab52e0fd0c83b0cabc3f7e83a gcc/testsuite/g++.dg/other/packed1.C + b693bdc6d9288cba68d5f6c6be19b743 gcc/testsuite/g++.dg/other/pr100580.C f43f96bf3c378817b959c22aee3466c0 gcc/testsuite/g++.dg/other/pr20366.C 972110c0d861ecae87ae8ad4d861dd0f gcc/testsuite/g++.dg/other/pr22003.C 57901344b69ec7b216bf1128cc5a7242 gcc/testsuite/g++.dg/other/pr22358.C *************** b71aeb26aa9311659d87b7de1be00dcc gcc/te *** 19541,19546 **** --- 19670,19676 ---- e549b742987ea4bf15156f2ff8b335da gcc/testsuite/g++.dg/overload/builtin1.C 3a79826fd499e94593a88f2c06436f3d gcc/testsuite/g++.dg/overload/builtin2.C a0b8fd80bfd82adaa23c61a98df112fb gcc/testsuite/g++.dg/overload/builtin3.C + 1b69f2219f6792ae40411265e591182d gcc/testsuite/g++.dg/overload/builtin6.C 2808df88b455ae0dd789dc64c1e34b25 gcc/testsuite/g++.dg/overload/cond1.C 5067a4c6731aae0336243d6867599e99 gcc/testsuite/g++.dg/overload/cond2.C a0940c624da881bbf5ac3c841243c409 gcc/testsuite/g++.dg/overload/conv-op1.C *************** e051d5cb1d92744fe18b74552249a54e gcc/te *** 20225,20230 **** --- 20355,20361 ---- 21bdec26dd354f6ec8377f10495a1e22 gcc/testsuite/g++.dg/plugin/show-template-tree-color-no-elide-type.C 34171c7d3f22062d3826646c0e5f1f9d gcc/testsuite/g++.dg/plugin/show-template-tree-color.C 4e74baf6e971213789395d81a85385e0 gcc/testsuite/g++.dg/plugin/show_template_tree_color_plugin.c + 2e53d96b8ba6ffa8b9414775da7e87f3 gcc/testsuite/g++.dg/pr100253.C 2ac64817a39fe1a5c2dc328f4233cda1 gcc/testsuite/g++.dg/pr37742.C 32b2fbda29ffd2ac2181c43c971f3a7d gcc/testsuite/g++.dg/pr44328.C e43b4ea2d038b181b57782d5d56d22ba gcc/testsuite/g++.dg/pr44486.C *************** b28f1aa5479585861779a602aaf7d3f3 gcc/te *** 20428,20433 **** --- 20559,20566 ---- 95ea08ceed65b4a6869e1c0f7118b910 gcc/testsuite/g++.dg/pr94314.C 482706f039139a44488ccf489c439fdd gcc/testsuite/g++.dg/pr94666.C 939bc5c1461d182a2a1c2c7b64a2951c gcc/testsuite/g++.dg/pr97627.C + 91468f37685e93374170fa696737486f gcc/testsuite/g++.dg/pr98032.C + 45c7d0b314ede5e6800294c0564f4ad7 gcc/testsuite/g++.dg/pr98136.C 184e70d5635b77134bb901b25ccd4c61 gcc/testsuite/g++.dg/predict-1.C df9c1f0040c84d9c37fd8d281618f2df gcc/testsuite/g++.dg/predict-2.C 9eaee03e6354eabcc7fc34abc5cc11db gcc/testsuite/g++.dg/predict-3.C *************** b57591402d64bc0218597be33d025525 gcc/te *** 20503,20508 **** --- 20636,20642 ---- c0c20230f9ca78ee531a757fe9c20cdc gcc/testsuite/g++.dg/spellcheck-macro-ordering-2.C c7d19bcfd6293dcc2e1b62c71b24d14e gcc/testsuite/g++.dg/spellcheck-macro-ordering.C 138b26dd96477d5ca37e93e1baad9a7f gcc/testsuite/g++.dg/spellcheck-ns.C + dea81150700765a4bf726fcbf91fe264 gcc/testsuite/g++.dg/spellcheck-pr104806.C bec792904e3254c1f1b123d9654da558 gcc/testsuite/g++.dg/spellcheck-pr77829.C 8917eaf0965b3d85de7008f1d17dee06 gcc/testsuite/g++.dg/spellcheck-pr78313.C c58af17755be032fd83d41b6fc234488 gcc/testsuite/g++.dg/spellcheck-pr78656.C *************** c7c275427c1f23da1f5270746886e61d gcc/te *** 20576,20581 **** --- 20710,20716 ---- f1f5a04f41640e7625de6d557491ab7d gcc/testsuite/g++.dg/template/access28.C 3d00ae17a8a2fd7c7d604f91e69dd892 gcc/testsuite/g++.dg/template/access29.C 4568008afd0d9ae5ca44f4521d3e1151 gcc/testsuite/g++.dg/template/access3.C + d1ab3a2909d9d576c5dfa94f007a2714 gcc/testsuite/g++.dg/template/access39.C 7ea6af968e54287945d17d2352e36fd6 gcc/testsuite/g++.dg/template/access4.C 043c53bbc7cad60a3c72bfa79987f011 gcc/testsuite/g++.dg/template/access5.C 3f2e5ae210f767c1589637afbcf45353 gcc/testsuite/g++.dg/template/access6.C *************** c31c403acbaa655ae0413e1d4350ae4b gcc/te *** 20709,20714 **** --- 20844,20850 ---- c28b6679b01f4bbe8403c045289d2aef gcc/testsuite/g++.dg/template/conv14.C d03295ed120e37ef2651d9c57aa0b774 gcc/testsuite/g++.dg/template/conv15.C bc45c52058d378ff45879106160f09fc gcc/testsuite/g++.dg/template/conv16.C + bd99141c68d90e04855763e3f2bfa63a gcc/testsuite/g++.dg/template/conv19.C 383f6618c1ccaddea23b36ff23d6d35e gcc/testsuite/g++.dg/template/conv2.C be5017725e9889a47d07ba0d3a3464ff gcc/testsuite/g++.dg/template/conv3.C 53aab59e272fd22ef1ad191d0f31e01d gcc/testsuite/g++.dg/template/conv4.C *************** e149357d205dbd99b9633575f81b34c7 gcc/te *** 21110,21115 **** --- 21246,21252 ---- 134eb1fa2dfe0e7e1737c002d17c7781 gcc/testsuite/g++.dg/template/friend66.C f8b96612d216a7b190f337247c8e8315 gcc/testsuite/g++.dg/template/friend67.C 1d4f923241bfe8578940f39c34f80d7c gcc/testsuite/g++.dg/template/friend7.C + 33f91697bdb7e2294d13e7eb88e92b55 gcc/testsuite/g++.dg/template/friend70.C ceb858e95982ac0af2e9168f31aea229 gcc/testsuite/g++.dg/template/friend8.C 59b5bf61b7f6210d3cf3b9b45692794a gcc/testsuite/g++.dg/template/friend9.C d5d24fc94d133229a10c5b13f44c253b gcc/testsuite/g++.dg/template/func1.C *************** ffd1465e85fe6778f5e32548bb4d2ad5 gcc/te *** 21254,21259 **** --- 21391,21397 ---- b12c9a151e46871b430564ee47c57714 gcc/testsuite/g++.dg/template/nested4.C 55bd98cb7f4709362363619cbba3ca30 gcc/testsuite/g++.dg/template/nested5.C 3d7ff2f50901cdae15e987265ff20ed6 gcc/testsuite/g++.dg/template/nested6.C + eb97b845951649a22172514806d1ef72 gcc/testsuite/g++.dg/template/nested7.C 57b33208329c8d10ea904c3d123076a9 gcc/testsuite/g++.dg/template/new1.C dd5106154e8f9fa0866be1a1283b490e gcc/testsuite/g++.dg/template/new10.C 8a3716757b496de374cb6d6a4f5b6a64 gcc/testsuite/g++.dg/template/new11.C *************** c68de3013fc66d5b9ca387b1f0f294ad gcc/te *** 21276,21281 **** --- 21414,21420 ---- 1600f68e67fb6396c6b980337441f30d gcc/testsuite/g++.dg/template/non-dependent14.C dcf7edf4a9b89b8e4db4df23e3c71906 gcc/testsuite/g++.dg/template/non-dependent15.C 3ce6c8331c1ddbc56b2c89ca07992343 gcc/testsuite/g++.dg/template/non-dependent2.C + 3f4aec0e7128a2b9a75631b613288601 gcc/testsuite/g++.dg/template/non-dependent22.C 9c0fc4f566e5de8ff0339df3c3ef274d gcc/testsuite/g++.dg/template/non-dependent3.C c74bd06e4f01d82b6dffe8568a9f9286 gcc/testsuite/g++.dg/template/non-dependent4.C 7e000c3eaeb33b0cda5191bb78ee313d gcc/testsuite/g++.dg/template/non-dependent5.C *************** c7309345696ac164222361961daab266 gcc/te *** 21537,21542 **** --- 21676,21682 ---- 2fc8ecaf6e21a27a95a25b7e1641c675 gcc/testsuite/g++.dg/template/redecl4.C c6c126721707d148ce66066de06c754b gcc/testsuite/g++.dg/template/ref1.C e5547a0a17e476f40de83fdf6f7b297f gcc/testsuite/g++.dg/template/ref10.C + 55ce57535ea4f812b4b3a2be7cafa6c4 gcc/testsuite/g++.dg/template/ref11.C a02f5612e9219b8cd807bc11c6baa86d gcc/testsuite/g++.dg/template/ref2.C 03590f95ff079c31de0f7962f9d2850e gcc/testsuite/g++.dg/template/ref3.C c3bbc6f642a26de6b3238750b8f9c01f gcc/testsuite/g++.dg/template/ref4.C *************** ce4f8106ed96ef070bead8ca0df02eea gcc/te *** 22048,22053 **** --- 22188,22196 ---- fab1470d87fc879a4a285622c057b736 gcc/testsuite/g++.dg/torture/init-list1.C 4054dd6c177ca7971902e3ac60e34695 gcc/testsuite/g++.dg/torture/ipa-cp-1.C 37b54578dbb493ce1238308444c1008c gcc/testsuite/g++.dg/torture/ppc-ldst-array.C + 3fd9794b761154c19e5b03ca7b0727a1 gcc/testsuite/g++.dg/torture/pr102505.C + 674377855743be77a442d6fe11fc86e1 gcc/testsuite/g++.dg/torture/pr103361.C + 55421b614773ff9e900b6ad17ffe7df3 gcc/testsuite/g++.dg/torture/pr105189.C 161154ed9f6193a2a7da119e068c3f3f gcc/testsuite/g++.dg/torture/pr27218.C a84e9fff95df4801f8e582fbc33303b8 gcc/testsuite/g++.dg/torture/pr30252.C e980bf95890544d46879b89f7aa98df6 gcc/testsuite/g++.dg/torture/pr30567.C *************** ebc4dd8d7b9c346d612ab748d0d8bda0 gcc/te *** 22791,22796 **** --- 22934,22942 ---- 9a6263b0a0fc24a8d910d2b11d215637 gcc/testsuite/g++.dg/ubsan/null-7.C 238c69e48fef47908a681867b7f50817 gcc/testsuite/g++.dg/ubsan/null-8.C 684067ddb47560c655180c085c6980e8 gcc/testsuite/g++.dg/ubsan/object-size-1.C + 80dcb1a17f65b63cbfe2e3509439563c gcc/testsuite/g++.dg/ubsan/pr101210.C + ad6c0b4132032f21f64bfdd4836d3313 gcc/testsuite/g++.dg/ubsan/pr105093.C + 59f2687e6719ef7d3d19b4de0e99a075 gcc/testsuite/g++.dg/ubsan/pr105729.C a654df71119821a4303cc9fe0501191b gcc/testsuite/g++.dg/ubsan/pr59250.C 420a6623146bb014dc1310134356d81f gcc/testsuite/g++.dg/ubsan/pr59306.C 79755a51c3cbb97ff48bd411272f6b08 gcc/testsuite/g++.dg/ubsan/pr59331.C *************** f70b05c7c6da2eb1e388cdb09831d355 gcc/te *** 22985,22990 **** --- 23131,23137 ---- b743913da43f9ec511faf7814e2e77c8 gcc/testsuite/g++.dg/warn/Walways-true-2.C 85946d6c4d80b74fc3bf7351777c73a0 gcc/testsuite/g++.dg/warn/Walways-true-3.C 798433d4099cd8d7572fde802e640896 gcc/testsuite/g++.dg/warn/Warray-bounds-2.C + ab97df5ad2431719f3fb0cd4fdf111d8 gcc/testsuite/g++.dg/warn/Warray-bounds-27.C de22eb15ae2420b77fbb90f3b584c785 gcc/testsuite/g++.dg/warn/Warray-bounds-3.C 44982cde6de999156b24ac5b0d41b330 gcc/testsuite/g++.dg/warn/Warray-bounds-4.C 843811e9e3bbecf56a84c608e9fd1073 gcc/testsuite/g++.dg/warn/Warray-bounds-5.C *************** d10152133e840d3699814c5271083357 gcc/te *** 23025,23030 **** --- 23172,23178 ---- aeadbc7507b32cb0295c0b4fb7b26084 gcc/testsuite/g++.dg/warn/Wconversion2.C f7dd0981dd1da24582fb107a2de2d745 gcc/testsuite/g++.dg/warn/Wconversion3.C 45616b67235f1f39274574bca634f499 gcc/testsuite/g++.dg/warn/Wconversion4.C + abded6dbddb20c9ffe5f2e0690cd191b gcc/testsuite/g++.dg/warn/Wconversion5.C 2d2da24222711602624d6870a966c8b0 gcc/testsuite/g++.dg/warn/Wctor-dtor.C b75d4f8883c7ddd7a04229eea603e6d3 gcc/testsuite/g++.dg/warn/Wctor-dtor2.C 81f664dba5a025cdc726a4ce39403653 gcc/testsuite/g++.dg/warn/Wdelete-incomplete-1.C *************** c9a313a018bffcf8c74feab4d7de24ee gcc/te *** 23212,23217 **** --- 23360,23366 ---- 0adab2b878928f4991d26bb70783199d gcc/testsuite/g++.dg/warn/Wshadow-14.C 7eb0487629ffafe8015a0f69383aaa9d gcc/testsuite/g++.dg/warn/Wshadow-15.C ffad6b5038655c4c4e389de3106c88b0 gcc/testsuite/g++.dg/warn/Wshadow-16.C + 38815e928f4e863202914977f5520b74 gcc/testsuite/g++.dg/warn/Wshadow-17.C 6a6527871d476c4275232fa53d041994 gcc/testsuite/g++.dg/warn/Wshadow-2.C c6d10f027652eb4c20869c7eaeebb358 gcc/testsuite/g++.dg/warn/Wshadow-3.C 2e33a5dd790901f2d6f4cc57f311efc6 gcc/testsuite/g++.dg/warn/Wshadow-4.C *************** de70d0aa4d300c6c495ac17ceb16bb59 gcc/te *** 23222,23227 **** --- 23371,23377 ---- 69360c98179cb5a496a4ec6c59d499f7 gcc/testsuite/g++.dg/warn/Wshadow-9.C 69732cf06a240f992b1cb5e3b86bab8d gcc/testsuite/g++.dg/warn/Wshadow-compatible-local-1.C a0b4ac370653ea8dfc5a0dc8707ab2fd gcc/testsuite/g++.dg/warn/Wshadow-compatible-local-2.C + b1368cfca8fe6539e11ab40e527ec240 gcc/testsuite/g++.dg/warn/Wshadow-compatible-local-3.C df9b1547a2690405cde83653830ec338 gcc/testsuite/g++.dg/warn/Wshadow-local-1.C 6abfb9ca38d9d4f52fad423dd3f4fc61 gcc/testsuite/g++.dg/warn/Wshadow-local-2.C 2d0be4b805c5e01751b8213ba1078140 gcc/testsuite/g++.dg/warn/Wshadow-local-3.C *************** b81dd316dd30881afe998cc16667340f gcc/te *** 23392,23397 **** --- 23542,23548 ---- 66e0712402c08575f2486cc95d89f9b2 gcc/testsuite/g++.dg/warn/Wunused-var-9.C f62d0efa105434ddb77f8584066aa865 gcc/testsuite/g++.dg/warn/Wunused-var30.C 7c73aa4b260c1d16ea9a76d2e0a28fcb gcc/testsuite/g++.dg/warn/Wuseless-cast.C + ff8ed0a4ce8ad573aa89f6b015e4a122 gcc/testsuite/g++.dg/warn/Wuseless-cast2.C 1ba3b36134af7d809fb68326b89b016f gcc/testsuite/g++.dg/warn/Wvla-1.C e0a59089f41c9b702723e5c098e4302b gcc/testsuite/g++.dg/warn/Wvla-2.C f5b2f2c118a7c1b3e90a8636387dc180 gcc/testsuite/g++.dg/warn/Wvla-3.C *************** f3ce91773bd0b4a3127c481ccd50f20e gcc/te *** 26993,26998 **** --- 27144,27150 ---- 88995b2addb79f14a72ba650d83a3920 gcc/testsuite/g++.target/aarch64/sve/dup_sel_5.C 9e6f261244b524db00958d47111eef62 gcc/testsuite/g++.target/aarch64/sve/dup_sel_6.C 60ab87d7242254a4d2d15c17e64879ce gcc/testsuite/g++.target/aarch64/sve/pr96974.C + 93beeb2f54f185bcaa9bbc741e3969f0 gcc/testsuite/g++.target/aarch64/sve/pr99216.C 6979d0ef19d61a437acf8559362a5af8 gcc/testsuite/g++.target/aarch64/sve/pr99813.C 221b0724e04f13318fe418921311ae33 gcc/testsuite/g++.target/aarch64/sve/tls_2.C 7d111b2af4cdd362d19027877d6ff20b gcc/testsuite/g++.target/aarch64/sve/vcond_1.C *************** e64278e516f7ebae5481e326b54f28dd gcc/te *** 27004,27009 **** --- 27156,27162 ---- 2cb2007d989541ae9af09a86c886f1fb gcc/testsuite/g++.target/arm/mve.exp 739abe94807464b66c9484720789acb1 gcc/testsuite/g++.target/arm/no_unique_address_1.C 0437fd022b0aa45608be73a65770e277 gcc/testsuite/g++.target/arm/no_unique_address_2.C + 4c06abe7b8d5bd183704907c3993392c gcc/testsuite/g++.target/arm/pr102842.C 86ce099311b8a462979885c1f82c41db gcc/testsuite/g++.target/arm/pr81497.C bac47f3af32181c35f06a84f9b24d820 gcc/testsuite/g++.target/arm/pr95726.C af3c38f63117225abea203946d38310c gcc/testsuite/g++.target/i386/avx-check.h *************** c2d5d87b3488ab338dcccb9091181331 gcc/te *** 27051,27056 **** --- 27204,27211 ---- cc57ca4fd9c378f13126f05fd23d44f9 gcc/testsuite/g++.target/i386/mvc2.C 5770edbad8bcf6303a34e5d14d63a98d gcc/testsuite/g++.target/i386/mvc3.C 4b58a8b362895e2d3227500db9f7df3f gcc/testsuite/g++.target/i386/mvc4.C + 186a4f48c778c8bfd308076ed5277d77 gcc/testsuite/g++.target/i386/pr102295.C + 6d6c399b53fe1c3078aa132a559fe2ab gcc/testsuite/g++.target/i386/pr102548.C 1c706f97b6d93c0124dc4a203c98f6d2 gcc/testsuite/g++.target/i386/pr57362.C db3c3a9d9f798eff6348f0813dccc376 gcc/testsuite/g++.target/i386/pr57548.C e8a006e5050e191010d1a6ecff4873a3 gcc/testsuite/g++.target/i386/pr58372.C *************** bdb455b2331ad2932c1fc9e92219df39 gcc/te *** 27084,27089 **** --- 27239,27245 ---- a621b799eff193996043d9d5462e5c27 gcc/testsuite/g++.target/i386/sse4_1-check.h 821d1f6cc7812ffc5220fc45c484c00f gcc/testsuite/g++.target/i386/sse4_1-pr54700-1.C 05e47f652ea4bc7c8df9bae20aaaa2b4 gcc/testsuite/g++.target/i386/sse4_1-pr54700-2.C + 6d0d9132ecd5c558bd1ec20dcee32d5d gcc/testsuite/g++.target/i386/vec-tmpl1.C 5848d6741a53192ff50fe53e91b24df1 gcc/testsuite/g++.target/nios2/hello-pie.C cf299fb8efec54c0218258732856b164 gcc/testsuite/g++.target/nios2/nios2.exp 2befd7b6b3b422b64609deed67a6306d gcc/testsuite/g++.target/powerpc/powerpc.exp *************** e1ba72e4820ed6fee0a19c482579539a gcc/te *** 27094,27099 **** --- 27250,27256 ---- 3a43ed7b11c1baf0bdf8cc9925427947 gcc/testsuite/g++.target/powerpc/pr94707-5.C 229f6b2d39c1c51f9eb5681c67c35091 gcc/testsuite/g++.target/powerpc/pr94707-6.C 4aa850893daf75099b810c7d79530d83 gcc/testsuite/g++.target/powerpc/pr99041.C + ec9d88502adf58241b652d1155cafc87 gcc/testsuite/g++.target/powerpc/pr99842.C fb915623fe5d0c1208c53c6de33e722a gcc/testsuite/g++.target/powerpc/undef-bool-3.C 84541f8edc35b61b62256dbd71b731b8 gcc/testsuite/g++.target/riscv/call-with-empty-struct-float.C 0224a15f72de72af47e3eeb572c2d4eb gcc/testsuite/g++.target/riscv/call-with-empty-struct-int.C *************** cc3d65ef1611bfdbd9239932d1d5a246 gcc/te *** 27106,27111 **** --- 27263,27269 ---- f536562eba9a9954ace3a616ac52f438 gcc/testsuite/g++.target/s390/pr94704-2.C 673a3b45283bd1b872f1b198781a14a3 gcc/testsuite/g++.target/s390/pr94704-3.C 0a3c74a94606c9870a40fec1d0577aa8 gcc/testsuite/g++.target/s390/pr94704-4.C + c0aa169f53b6c831c9c42b449fec63b6 gcc/testsuite/g++.target/s390/pr98722.C bdcecdf9ad7dd87d004284feab172bb4 gcc/testsuite/g++.target/s390/s390.exp ab411a7e60cfec57473a2cab3ecc3197 gcc/testsuite/gcc.c-torture/ChangeLog.0 84740fd4194274c1fbddfa5575623a40 gcc/testsuite/gcc.c-torture/compat/strct-layout.c *************** e89355b99660c53d3dac89eba0ac8986 gcc/te *** 28103,28108 **** --- 28261,28268 ---- 6a87e81aa60353be798e48130f2c4ca2 gcc/testsuite/gcc.c-torture/compile/pmt.c 048ad13954512f77d283379cc894eaed gcc/testsuite/gcc.c-torture/compile/poor.c 5dd01a3a30ba2b97a934273ca5fe3170 gcc/testsuite/gcc.c-torture/compile/pp.c + ede20faf9b203e25b39b7032970f58be gcc/testsuite/gcc.c-torture/compile/pr100305.c + 9c461bedf4ba5d689841294e9c5464f6 gcc/testsuite/gcc.c-torture/compile/pr101562.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 *************** b592aab14164964644385997ee799b46 gcc/te *** 28825,28833 **** --- 28985,28997 ---- 93952665a8b02a3a49c7d7c5bc5f1a97 gcc/testsuite/gcc.c-torture/compile/pr94621.c 7dbeb8aaf9175e2573e86afe5b6d8d82 gcc/testsuite/gcc.c-torture/compile/pr94686.c 4c276c62b7e78b13a7d3f39d5c83e159 gcc/testsuite/gcc.c-torture/compile/pr96426.c + 1a9df2c598a332bc3468c9092b1853d5 gcc/testsuite/gcc.c-torture/compile/pr96796.c + 35e9b69fa6a8536400fd234999bb050c gcc/testsuite/gcc.c-torture/compile/pr97141.c 9877434a52aaa17b1ab89487f9497639 gcc/testsuite/gcc.c-torture/compile/pr97144.c + 07cf3fbb05b113cd514ce6703a369179 gcc/testsuite/gcc.c-torture/compile/pr98726.c 96a2bedeedcefc8923dc44147661604e gcc/testsuite/gcc.c-torture/compile/pr99225.c 11bf664a070ad544ff6eddf359ebb9d0 gcc/testsuite/gcc.c-torture/compile/pr99324.c + 7e408a9bcbb29363eda9fb015d8d84f3 gcc/testsuite/gcc.c-torture/compile/pr99647.c c5c13bdc8c7ab97f002934f003e92b63 gcc/testsuite/gcc.c-torture/compile/pret-arg.c 554bb1e8a9da058c129438ee67eeacaa gcc/testsuite/gcc.c-torture/compile/pta-1.c ed716c1d1727fc2c748162e0cbc4ee47 gcc/testsuite/gcc.c-torture/compile/ptr-conv-1.c *************** ecbbfd4b186a0dd8448d96f39a543fb4 gcc/te *** 29420,29425 **** --- 29584,29590 ---- 493547677da2253a099f6a5a237a59b1 gcc/testsuite/gcc.c-torture/execute/20190820-1.c 8476af17c3a5d7a639fdbdcad1641482 gcc/testsuite/gcc.c-torture/execute/20190901-1.c 2e368329bfad3d99e406eade7d55032d gcc/testsuite/gcc.c-torture/execute/20191023-1.c + b4ae081235a5dc1e90b1adea7befe6cf gcc/testsuite/gcc.c-torture/execute/20210505-1.c 65f01ac7346bd4d47ed9c1ca94ab74ff gcc/testsuite/gcc.c-torture/execute/900409-1.c 5aefab4daab0bd29ecf2a389f3c44f40 gcc/testsuite/gcc.c-torture/execute/920202-1.c 74e2b57e4fb280900b2f9b169dd75b1c gcc/testsuite/gcc.c-torture/execute/920302-1.c *************** cf491abd2df5513193c96d9605cc5bc8 gcc/te *** 29730,29735 **** --- 29895,29901 ---- 7e81dc4cdd5c62169f611e513538c801 gcc/testsuite/gcc.c-torture/execute/bf-sign-2.c 57a7c08d79c2c2f2e65b96c5d353aad5 gcc/testsuite/gcc.c-torture/execute/bf64-1.c 98152a763419b41838c8c9d841ad29a6 gcc/testsuite/gcc.c-torture/execute/bitfld-1.c + f07696fa0951cfa132406e3311f1250c gcc/testsuite/gcc.c-torture/execute/bitfld-10.c 005d6505de633a2ed0991ac8a94c4b8e gcc/testsuite/gcc.c-torture/execute/bitfld-2.c 99a449c3b4f58a78e441a461df3f513f gcc/testsuite/gcc.c-torture/execute/bitfld-3.c f60b71cba62f24c87aeeb52ca18cf75c gcc/testsuite/gcc.c-torture/execute/bitfld-4.c *************** e854bc80f793329b6c96d31e3f80a012 gcc/te *** 30108,30113 **** --- 30274,30281 ---- 9c9024650c8b4b1672ea993228511949 gcc/testsuite/gcc.c-torture/execute/packed-aligned.c 12785ab6e086a50cd8ab9f5bdb9a9bc5 gcc/testsuite/gcc.c-torture/execute/pending-4.c 5ad23d6cafc55e78896b90e3669a14b8 gcc/testsuite/gcc.c-torture/execute/postmod-1.c + 6f562291c92a478431678da451525a90 gcc/testsuite/gcc.c-torture/execute/pr103052.c + 8f1a8c89149c065ac6e73140793989be gcc/testsuite/gcc.c-torture/execute/pr104814.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 *************** e38ae79f8053ebd6f76a8c00ed1eb4da gcc/te *** 30651,30656 **** --- 30819,30825 ---- c5d9f6e864aa6ce765a8ec4276629c5f gcc/testsuite/gcc.c-torture/execute/pr97764.c 58f14240090be9619912d042ff552198 gcc/testsuite/gcc.c-torture/execute/pr98474.c f25dd6049e9c8dd046ca17e8bc55d979 gcc/testsuite/gcc.c-torture/execute/pr98681.c + d448583a119a41dc260aaaf1f90a10c9 gcc/testsuite/gcc.c-torture/execute/pr98736.c f4f2930202484cfce2950cfa08ed6346 gcc/testsuite/gcc.c-torture/execute/pr98853-1.c 9778e9dbac722a3f0e3643e7322e5a78 gcc/testsuite/gcc.c-torture/execute/pr98853-2.c 68a00a5f6197b192d0a9ba3b1f2f4938 gcc/testsuite/gcc.c-torture/execute/pr99079.c *************** cc8e118f33fe820b55d7576cd6e8fb7d gcc/te *** 31411,31416 **** --- 31580,31586 ---- 975f320b4cadb606592c196f32d08f02 gcc/testsuite/gcc.dg/Wstringop-overflow-4.c b6e551c9441e53cd1be6e84faec996ed gcc/testsuite/gcc.dg/Wstringop-overflow-5.c 3ed0228ee42fdeeee600954a398a1234 gcc/testsuite/gcc.dg/Wstringop-overflow-6.c + 5b4c7639060680dc33aa26bde46c220b gcc/testsuite/gcc.dg/Wstringop-overflow-67.c 739ccb86ac13fef9cbd1d60df950a4b5 gcc/testsuite/gcc.dg/Wstringop-overflow-8.c 06200f42c1136753848f7e8305c5828c gcc/testsuite/gcc.dg/Wstringop-overflow-9.c a8bda9df612c3a9b646c6cbd213d0746 gcc/testsuite/gcc.dg/Wstringop-overflow.c *************** f1924cd169cc9af518b51afd9f11da82 gcc/te *** 31741,31746 **** --- 31911,31919 ---- 889ad8871787262fb9533d339c717e6a gcc/testsuite/gcc.dg/aru-2.c 98492b6f4e07d454dfb2f7f000fdb282 gcc/testsuite/gcc.dg/asan/asan.exp 738544a74dbe22f6a41201227dfe9cd9 gcc/testsuite/gcc.dg/asan/nosanitize-and-inline.c + 62ddd0ab49b2d8a39773ae7568d8aa74 gcc/testsuite/gcc.dg/asan/pr104449.c + 3424b712fda248acb67afe3bbb5dbc46 gcc/testsuite/gcc.dg/asan/pr105214.c + 695fe49bfb0b0c5cd4e60ba1a0f27cf6 gcc/testsuite/gcc.dg/asan/pr105396.c a5e988481cd66b8acf6c610b847cb713 gcc/testsuite/gcc.dg/asan/pr56417.c 0c13e4008bb665f05b030eb42e43183f gcc/testsuite/gcc.dg/asan/pr63845.c 9a45b4bebab3901180dbe2a44efcd070 gcc/testsuite/gcc.dg/asan/pr64170.c *************** a03c72d9882332482357735b2b82316a gcc/te *** 32782,32788 **** 8797a70232b48157299f45876cf6b247 gcc/testsuite/gcc.dg/compat/struct-complex-2_y.c a740b7aef77d535f9ed5b97c4f5981c4 gcc/testsuite/gcc.dg/compat/struct-layout-1.exp 63acee7a9bb7d9a457beb370e4beede2 gcc/testsuite/gcc.dg/compat/struct-layout-1.h ! b6387e3bbec3d790c42ef44208119615 gcc/testsuite/gcc.dg/compat/struct-layout-1_generate.c 997082aeb20119519c8c3e77ee7f6cd1 gcc/testsuite/gcc.dg/compat/struct-layout-1_main.c b3da097900e3dfe300ea64885a287dc4 gcc/testsuite/gcc.dg/compat/struct-layout-1_test.h 7a2c01872720f537c35327ff79b01fa3 gcc/testsuite/gcc.dg/compat/struct-layout-1_x.c --- 32955,32961 ---- 8797a70232b48157299f45876cf6b247 gcc/testsuite/gcc.dg/compat/struct-complex-2_y.c a740b7aef77d535f9ed5b97c4f5981c4 gcc/testsuite/gcc.dg/compat/struct-layout-1.exp 63acee7a9bb7d9a457beb370e4beede2 gcc/testsuite/gcc.dg/compat/struct-layout-1.h ! d628ab6f03137145384ca913f20d6ac3 gcc/testsuite/gcc.dg/compat/struct-layout-1_generate.c 997082aeb20119519c8c3e77ee7f6cd1 gcc/testsuite/gcc.dg/compat/struct-layout-1_main.c b3da097900e3dfe300ea64885a287dc4 gcc/testsuite/gcc.dg/compat/struct-layout-1_test.h 7a2c01872720f537c35327ff79b01fa3 gcc/testsuite/gcc.dg/compat/struct-layout-1_x.c *************** ee94511375797117140ca777fd1695b1 gcc/te *** 33496,33502 **** 704c9a2dca0a451cca6e5855f7f2347f gcc/testsuite/gcc.dg/darwin-minversion-7.c 5a8b775f8ce1e0cafb8782fbc39b58e4 gcc/testsuite/gcc.dg/darwin-minversion-8.c aa9dfa39c42ef65a88c0a708412fb842 gcc/testsuite/gcc.dg/darwin-minversion-9.c ! e8f6d0185a2daf606cad42ced94090fb gcc/testsuite/gcc.dg/darwin-minversion-link.c b66bb093837bda7692b73c8aa9711e00 gcc/testsuite/gcc.dg/darwin-sections.c 3cfa6daebed9a12884613012f50433e4 gcc/testsuite/gcc.dg/darwin-segaddr.c e3d2d2840d7d23dee7e2cd94e097a114 gcc/testsuite/gcc.dg/darwin-version-1.c --- 33669,33675 ---- 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 *************** ca27b118a8f01285a381ac42b5dcdcaa gcc/te *** 33642,33647 **** --- 33815,33821 ---- b3f045b532c693bbfb8cfed8c0609564 gcc/testsuite/gcc.dg/debug/dwarf2/var1.c 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 bdf39999a5a7a4c7b1459600dff4ff14 gcc/testsuite/gcc.dg/debug/pr16676.c 6f8e864ca7f9c38a79c3578b2c75101b gcc/testsuite/gcc.dg/debug/pr26881.c feb6dc1d570a59982f88a912985ff2fa gcc/testsuite/gcc.dg/debug/pr29558.c *************** a0ac850750aaa6f8934dd8d86cad48b3 gcc/te *** 33789,33794 **** --- 33963,33970 ---- 9d75f75471d15ad9eab797c65fe24337 gcc/testsuite/gcc.dg/dfp/keywords-pedantic.c 5f9dce48038ce1ba660b96e948792422 gcc/testsuite/gcc.dg/dfp/keywords-reserved.c 440b3f562b43525babe2c96be973d1be gcc/testsuite/gcc.dg/dfp/operator-bitwise.c + b6f9108cd4878577de83d43be75185ce gcc/testsuite/gcc.dg/dfp/pr104510.c + 440b561ad1d9037d4559c7011d636b7a gcc/testsuite/gcc.dg/dfp/pr104557.c d8629eb8e0c765b5a7daa583cb8eedad gcc/testsuite/gcc.dg/dfp/pr31344.c b59fd600db434af135f39c38e21e2d74 gcc/testsuite/gcc.dg/dfp/pr37435.c 17353eaf91a4f3959fa168324f86f6f5 gcc/testsuite/gcc.dg/dfp/pr41049.c *************** e301304e13590c1ce7f775ce00ef95b0 gcc/te *** 34421,34426 **** --- 34597,34603 ---- d28df196e898f3e95d6f476710c89624 gcc/testsuite/gcc.dg/goacc/nested-function-2.c 75dd052bd164a3a9070c1d0861bc0e3c gcc/testsuite/gcc.dg/goacc/pr71373.c cee73d50b5f0bd43a38d2bf9b09de485 gcc/testsuite/gcc.dg/goacc/pr98183.c + f0990e08177a1fbd146dd2412ed83858 gcc/testsuite/gcc.dg/goacc/tile-1.c 0efab8bb88a4de7665f8a7841b8036c9 gcc/testsuite/gcc.dg/gomp/_Atomic-1.c 81038627537341e18385b8972c32c159 gcc/testsuite/gcc.dg/gomp/_Atomic-2.c 5a7e8af9edd68a5e923dd69b3eed3ae2 gcc/testsuite/gcc.dg/gomp/_Atomic-3.c *************** c810b7347465014e305c14700d42a85b gcc/te *** 34477,34483 **** 9d8e30eba0019473bc7e43fcdc6b48c1 gcc/testsuite/gcc.dg/gomp/block-8.c 79682352a0c94e668e3de0e2a7fa1c22 gcc/testsuite/gcc.dg/gomp/block-9.c 4910624b952a49e6626cc2f12abebbbf gcc/testsuite/gcc.dg/gomp/cancel-1.c ! ffe487f15a2e6e6f4080fe782d3094d4 gcc/testsuite/gcc.dg/gomp/clause-1.c 69b3c6d02d10bc53d283c974ed1e7ec6 gcc/testsuite/gcc.dg/gomp/clause-2.c 5ac08c2b4cafd06b9d0ecc5295b58bc9 gcc/testsuite/gcc.dg/gomp/collapse-1.c d41d8cd98f00b204e9800998ecf8427e gcc/testsuite/gcc.dg/gomp/combined-1.c --- 34654,34660 ---- 9d8e30eba0019473bc7e43fcdc6b48c1 gcc/testsuite/gcc.dg/gomp/block-8.c 79682352a0c94e668e3de0e2a7fa1c22 gcc/testsuite/gcc.dg/gomp/block-9.c 4910624b952a49e6626cc2f12abebbbf gcc/testsuite/gcc.dg/gomp/cancel-1.c ! 5c863da63bc2a44607b745b56d4373e8 gcc/testsuite/gcc.dg/gomp/clause-1.c 69b3c6d02d10bc53d283c974ed1e7ec6 gcc/testsuite/gcc.dg/gomp/clause-2.c 5ac08c2b4cafd06b9d0ecc5295b58bc9 gcc/testsuite/gcc.dg/gomp/collapse-1.c d41d8cd98f00b204e9800998ecf8427e gcc/testsuite/gcc.dg/gomp/combined-1.c *************** d7769c446568c18d557180c850cf3b4a gcc/te *** 34550,34555 **** --- 34727,34733 ---- 37cd70c6dfa42e4ca92a22cf9bd83ad8 gcc/testsuite/gcc.dg/gomp/parallel-2.c f711435274df71049aa71808a78fc7a5 gcc/testsuite/gcc.dg/gomp/parallel-3.c d9a1f43ca6ac2a073e22bbbf243f300b gcc/testsuite/gcc.dg/gomp/parallel-4.c + 0f7ac2e81ae2d400d52c34aa1c0b379a gcc/testsuite/gcc.dg/gomp/pr100508.c 7a163e65fe52b23fc85f2daa18c442ee gcc/testsuite/gcc.dg/gomp/pr25874.c 597de3ed24e1bc1c650af918589d83c3 gcc/testsuite/gcc.dg/gomp/pr25989.c 0bd3e8dc860de61dd8e09229c090e1f5 gcc/testsuite/gcc.dg/gomp/pr25990.c *************** bc96d3d7a369ee1d75a9841b80312226 gcc/te *** 35052,35057 **** --- 35230,35236 ---- 4f7560385c9b3bd900cc1de342ed58bc gcc/testsuite/gcc.dg/guality/param-3.c 74ce6c60795531920ab0a680e346e657 gcc/testsuite/gcc.dg/guality/param-4.c f932e4faa7d538859c699e070447bc01 gcc/testsuite/gcc.dg/guality/param-5.c + b0deaf43b4029cf429b4a541937eefd0 gcc/testsuite/gcc.dg/guality/pr101905.c 91c528fa3ca63dee1e35b7c6d02cd258 gcc/testsuite/gcc.dg/guality/pr25967-1.c fa9ed629eec13dc2cd77fec24ea82b3c gcc/testsuite/gcc.dg/guality/pr25967-2.c 19bacc1e91869a8697eb548fb674e517 gcc/testsuite/gcc.dg/guality/pr36728-1.c *************** cabac91cdba3842d40cf8ea00a992973 gcc/te *** 35078,35084 **** ad22498cf8ec23e7130f00c09013af31 gcc/testsuite/gcc.dg/guality/pr45882.c f59890b50dc747afab9803faad83af78 gcc/testsuite/gcc.dg/guality/pr48437.c 0a8f326039eacf3795df083d59d270e1 gcc/testsuite/gcc.dg/guality/pr48466.c ! 8729e084bbf812c07dc80e3002bd7c77 gcc/testsuite/gcc.dg/guality/pr49888.c f5d23d5daf139140e3f74b9521e69847 gcc/testsuite/gcc.dg/guality/pr54200.c df8d9a90eef54cc78285c05d55378c38 gcc/testsuite/gcc.dg/guality/pr54519-1.c eaa0797d9234eb2c7c77adc2b6f86a78 gcc/testsuite/gcc.dg/guality/pr54519-2.c --- 35257,35263 ---- ad22498cf8ec23e7130f00c09013af31 gcc/testsuite/gcc.dg/guality/pr45882.c f59890b50dc747afab9803faad83af78 gcc/testsuite/gcc.dg/guality/pr48437.c 0a8f326039eacf3795df083d59d270e1 gcc/testsuite/gcc.dg/guality/pr48466.c ! 67820d262d95458ec0b89cffe57437ec gcc/testsuite/gcc.dg/guality/pr49888.c f5d23d5daf139140e3f74b9521e69847 gcc/testsuite/gcc.dg/guality/pr54200.c df8d9a90eef54cc78285c05d55378c38 gcc/testsuite/gcc.dg/guality/pr54519-1.c eaa0797d9234eb2c7c77adc2b6f86a78 gcc/testsuite/gcc.dg/guality/pr54519-2.c *************** b0e6976d3728dfc604f80cfaf17a5150 gcc/te *** 35400,35405 **** --- 35579,35589 ---- bbdc28908094ef1ce181532afaf1b2dc gcc/testsuite/gcc.dg/ipa/ipcp-ii-1.c 69364376b4034b0e22099f8f23273a79 gcc/testsuite/gcc.dg/ipa/ipcp-self-recursion-1.c 80f4453150e9ddcd8976703b7c6ee1f6 gcc/testsuite/gcc.dg/ipa/noclone-1.c + 5c69058d29f4a7ea7e25487222d82209 gcc/testsuite/gcc.dg/ipa/pr101066.c + 303b00685d04afefddddce7106c02b2d gcc/testsuite/gcc.dg/ipa/pr102714.c + 07a283c50d826e50a31e66247a684841 gcc/testsuite/gcc.dg/ipa/pr103083-1.c + e738f44ee66719b5f944fb952895f40e gcc/testsuite/gcc.dg/ipa/pr103083-2.c + d6d366e61e9493a8fc9ad14a2e6f9ba4 gcc/testsuite/gcc.dg/ipa/pr105739.c 40bd41302666d56c4edf7330db97920e gcc/testsuite/gcc.dg/ipa/pr42706.c e4887053c792f4f78b03804c148839ce gcc/testsuite/gcc.dg/ipa/pr45644.c 6e1b4f2c5d0c0d768778da8e3b7df828 gcc/testsuite/gcc.dg/ipa/pr48195.c *************** b9cc7cb6d7d65f984ee0a8985b8e0e6e gcc/te *** 35723,35728 **** --- 35907,35916 ---- 4c9f4a6440d7bd9fa3f564ee6b91b50c gcc/testsuite/gcc.dg/lto/materialize-1_1.c e1bd2be5006d2bb7a3b670af0868ffeb gcc/testsuite/gcc.dg/lto/noreturn-1_0.c 2472b5bc8466fe62188232d9fbcd9de6 gcc/testsuite/gcc.dg/lto/noreturn-1_1.c + b277b193b2a7ff104d28fbf8e50407e8 gcc/testsuite/gcc.dg/lto/pr101868_0.c + ca741859e8754c149e68fc40892d50b1 gcc/testsuite/gcc.dg/lto/pr101868_1.c + e4aec3391bc7aed1a5d886edeb277407 gcc/testsuite/gcc.dg/lto/pr101868_2.c + 02d829cec4d5ff9723124841f79edca9 gcc/testsuite/gcc.dg/lto/pr101868_3.c 5192817b2492ca93ffadce3b4a5e4794 gcc/testsuite/gcc.dg/lto/pr27898_0.c c5f48897247dfaec60df4e32beffcd8e gcc/testsuite/gcc.dg/lto/pr27898_1.c 2ad724786bc4b555a7f31e8b3bf164b6 gcc/testsuite/gcc.dg/lto/pr28706_0.c *************** c309c8ae6654d9b080cc8e4c515fe8cd gcc/te *** 35837,35842 **** --- 36025,36031 ---- 591d1ea1c066ef2f917ef419621926d5 gcc/testsuite/gcc.dg/lto/pr96291_0.c a03a5109c087726181cf7cc2241d1a9e gcc/testsuite/gcc.dg/lto/pr96291_1.c 2c4d5bcbee8d58ebb771293492990293 gcc/testsuite/gcc.dg/lto/pr96291_2.c + b993f9b2f252c1617164dd903ffe1c62 gcc/testsuite/gcc.dg/lto/pr99849_0.c 260506c568e35bc49112021166edf8f2 gcc/testsuite/gcc.dg/lto/resolutions_0.c 1084184a9b11a84eee39ef130211f70b gcc/testsuite/gcc.dg/lto/save-temps_0.c 46d188c0319bf02d664cc2c49c9df2ef gcc/testsuite/gcc.dg/lto/simd-function_0.c *************** f5883b8a2323e7318237e3750e037d52 gcc/te *** 36338,36345 **** --- 36527,36567 ---- fd3265437095da6aff9d665f55b837b2 gcc/testsuite/gcc.dg/pow-sqrt-3.c b9bdf8358b02d555adf76b44050cc156 gcc/testsuite/gcc.dg/pow-sqrt-synth-1.c e037582257371f62a3a039df4321225d gcc/testsuite/gcc.dg/pow-sqrt.x + 2ed4c7917cf2d830a0bb5f0d9d65e592 gcc/testsuite/gcc.dg/pr100225.c + eefdc14893bfe7e4dd2a89202733fa86 gcc/testsuite/gcc.dg/pr100509.c + 395736a8e0816a51c506968c1ca01f5d gcc/testsuite/gcc.dg/pr100563.c + f44c2488d00a079c87fd11d26d428796 gcc/testsuite/gcc.dg/pr100788.c + 5e25293a3107689203988f78c03ea859 gcc/testsuite/gcc.dg/pr100791.c + b20e922d857d70fc849642b04d8aef50 gcc/testsuite/gcc.dg/pr101062.c + f7653fb72f02585ca98c4cb008a53e32 gcc/testsuite/gcc.dg/pr101171.c + 2eebdeb5aef44432de1498de14cbf4e6 gcc/testsuite/gcc.dg/pr101266.c + 70303171ed7f5b2cba05e6b98daad2ab gcc/testsuite/gcc.dg/pr101384.c + 9437d2977418eec9749f3a9d06040a59 gcc/testsuite/gcc.dg/pr102140.c + afb36cfd0415d59db229d4058c30853f gcc/testsuite/gcc.dg/pr102224.c + 91844853e35a7b41b30a3460cc946f81 gcc/testsuite/gcc.dg/pr102478.c + d2b6c61457f02b40823ad6f31b29f47c gcc/testsuite/gcc.dg/pr102798.c + 403235552bc51decc6aaf0f2f60e8721 gcc/testsuite/gcc.dg/pr103248.c + 5cf580820aedc778e4de76262078142d gcc/testsuite/gcc.dg/pr103587.c + 220dde695d4a28e6fb719f38a397ed0e gcc/testsuite/gcc.dg/pr103837.c + a4874d44c0ba05d6340ed06bc5958e53 gcc/testsuite/gcc.dg/pr103860.c 8226e377d45ef0ffeb7badfb04740ab9 gcc/testsuite/gcc.dg/pr10392-1.c + 274592903ac1b8bb26cb04aaeb7bceb4 gcc/testsuite/gcc.dg/pr104263.c + c055fb27d1a723e98ef6bd9290551487 gcc/testsuite/gcc.dg/pr104511.c + 1198a55fbf04ab73754710d047131b2b gcc/testsuite/gcc.dg/pr104544.c + c04efe12f2d4a15f1ea2cae1889ba4cf gcc/testsuite/gcc.dg/pr104675-1.c + c5ab940cf751b86591b1f61af3cfdade gcc/testsuite/gcc.dg/pr104675-2.c + 3134bf3d7e786de762b2b02ad55f4dcd gcc/testsuite/gcc.dg/pr104675-3.c d8ac6e8cccf7bcb1070140ae44ef117a gcc/testsuite/gcc.dg/pr10474.c + 2968ba86ec9be073192c7975ec531fb3 gcc/testsuite/gcc.dg/pr104786.c + 8c0ed1baab74c7b05d89e60fb2786609 gcc/testsuite/gcc.dg/pr104910.c + f8d1a8342ac7db3ad1336ab098edd372 gcc/testsuite/gcc.dg/pr105094.c + 194a2dad6f902fdbaa5355dc3fa0ebe6 gcc/testsuite/gcc.dg/pr105140.c + 25a6db2efb48684f6cb2974051effc2a gcc/testsuite/gcc.dg/pr105173.c + b01f707de15442a63cdb3e32148021fd gcc/testsuite/gcc.dg/pr105211.c + 62b3efd9b859c1e2a74f5d3cfa969d33 gcc/testsuite/gcc.dg/pr105226.c + 795e155542cd4d6c44666b3712a89f73 gcc/testsuite/gcc.dg/pr105250.c + cc6ac8d68c79338a580a123141221e8b gcc/testsuite/gcc.dg/pr105257.c + df5c854ae6b61ad7980dc609c12732b5 gcc/testsuite/gcc.dg/pr105333.c 860f163dcd0b252ea3f85323bc959a7d gcc/testsuite/gcc.dg/pr11459-1.c e164a736918661d669864e3645da290c gcc/testsuite/gcc.dg/pr11492.c 3b83403729a3686d25552352bf0c4577 gcc/testsuite/gcc.dg/pr11864-1.c *************** a45d8a7ea58bf6c772c8fa0d9d6f1ca5 gcc/te *** 37696,37702 **** a777a206da2c1bfe3ba53d32fb8b2e9c gcc/testsuite/gcc.dg/pr78138.c 427e79810052c59fa2a8c9b43fbdfa29 gcc/testsuite/gcc.dg/pr78148.c 38c8c806f957a135e11b0daa90cc9de6 gcc/testsuite/gcc.dg/pr78185.c ! 5bb4c02b2f251c26191de89ac03e564b gcc/testsuite/gcc.dg/pr78213.c aa86169902d2471ece373c0dddd5232b gcc/testsuite/gcc.dg/pr78241.c 7bfaca350ee545dbe10363c435dfa736 gcc/testsuite/gcc.dg/pr78333.c 21d56f799d53b50dacd02048a1b73756 gcc/testsuite/gcc.dg/pr78384.c --- 37918,37924 ---- a777a206da2c1bfe3ba53d32fb8b2e9c gcc/testsuite/gcc.dg/pr78138.c 427e79810052c59fa2a8c9b43fbdfa29 gcc/testsuite/gcc.dg/pr78148.c 38c8c806f957a135e11b0daa90cc9de6 gcc/testsuite/gcc.dg/pr78185.c ! aecacbb64d3497c484426d338ffae43d gcc/testsuite/gcc.dg/pr78213.c aa86169902d2471ece373c0dddd5232b gcc/testsuite/gcc.dg/pr78241.c 7bfaca350ee545dbe10363c435dfa736 gcc/testsuite/gcc.dg/pr78333.c 21d56f799d53b50dacd02048a1b73756 gcc/testsuite/gcc.dg/pr78384.c *************** da28f19c06ff7662e7a7546ec852e25c gcc/te *** 38096,38102 **** b3a812009694e752663ca04925320324 gcc/testsuite/gcc.dg/pr91181.c 196c4342cb2568a603593ef3a72ee31d gcc/testsuite/gcc.dg/pr91195.c 127ca7d7d9652887fc59a33f4f13e4e0 gcc/testsuite/gcc.dg/pr91269.c ! 19862a29cf16f806e49e432992a94327 gcc/testsuite/gcc.dg/pr91441.c af691f7944d0d62cede654cf7924bf61 gcc/testsuite/gcc.dg/pr91570.c 33e7e05ba9936ecabdb9d59e8e4ff241 gcc/testsuite/gcc.dg/pr91720.c 0ce66608741e42c8178cb8a54ad1933c gcc/testsuite/gcc.dg/pr91734.c --- 38318,38324 ---- b3a812009694e752663ca04925320324 gcc/testsuite/gcc.dg/pr91181.c 196c4342cb2568a603593ef3a72ee31d gcc/testsuite/gcc.dg/pr91195.c 127ca7d7d9652887fc59a33f4f13e4e0 gcc/testsuite/gcc.dg/pr91269.c ! 4a2bd43cd7fd8e7268a408628f8e2afa gcc/testsuite/gcc.dg/pr91441.c af691f7944d0d62cede654cf7924bf61 gcc/testsuite/gcc.dg/pr91570.c 33e7e05ba9936ecabdb9d59e8e4ff241 gcc/testsuite/gcc.dg/pr91720.c 0ce66608741e42c8178cb8a54ad1933c gcc/testsuite/gcc.dg/pr91734.c *************** c72df927b15d18de0d1c05eef46be3ba gcc/te *** 38184,38189 **** --- 38406,38412 ---- 4a231f2fae7b7510cf7b3374a29735db gcc/testsuite/gcc.dg/pr94842.c 3d72c356497bfbeaacb889491ca6f756 gcc/testsuite/gcc.dg/pr94873.c 903a1bb951735666f689961e0bf5ab2a gcc/testsuite/gcc.dg/pr94968.c + 86ccf70ae09c24fad23aa9df39072a82 gcc/testsuite/gcc.dg/pr95115.c 1feb85be5d60e05ef1bda1b1214cd644 gcc/testsuite/gcc.dg/pr95118.c 6b3d2610ef6b920618884db6c8135b74 gcc/testsuite/gcc.dg/pr95133.c 130d9acc88fc75c668740cf769b79052 gcc/testsuite/gcc.dg/pr95141.c *************** d6b62b5a89d45f0f06171c8b01716c4e gcc/te *** 38192,38199 **** aeb304797b8e2c6d1005832c4cef054a gcc/testsuite/gcc.dg/pr95694.c 563c3da44149a53b80a4845909b6be8a gcc/testsuite/gcc.dg/pr95713.c 1baa42b74e7a27e173aa760865ce25dd gcc/testsuite/gcc.dg/pr95857.c ! 80ae6629e66d6fc96b4f8bee9d1fab64 gcc/testsuite/gcc.dg/pr96260.c ! 8f40fe33f90f43ebf42e8cffda5509ad gcc/testsuite/gcc.dg/pr96307.c 0335046a3e339e020569e9abf2dfd119 gcc/testsuite/gcc.dg/pr96335.c b0c24e576cdfbf580f93fa792c734044 gcc/testsuite/gcc.dg/pr96370.c a802b5e0d50cb86641c238e173ecd7ec gcc/testsuite/gcc.dg/pr96377-1.c --- 38415,38422 ---- aeb304797b8e2c6d1005832c4cef054a gcc/testsuite/gcc.dg/pr95694.c 563c3da44149a53b80a4845909b6be8a gcc/testsuite/gcc.dg/pr95713.c 1baa42b74e7a27e173aa760865ce25dd gcc/testsuite/gcc.dg/pr95857.c ! 8860bd1282dc5af39ed43d3ab3c675fc gcc/testsuite/gcc.dg/pr96260.c ! bea42aee96625a2eb14f74da27bfb773 gcc/testsuite/gcc.dg/pr96307.c 0335046a3e339e020569e9abf2dfd119 gcc/testsuite/gcc.dg/pr96335.c b0c24e576cdfbf580f93fa792c734044 gcc/testsuite/gcc.dg/pr96370.c a802b5e0d50cb86641c238e173ecd7ec gcc/testsuite/gcc.dg/pr96377-1.c *************** b5fa0cd5917ab8447128f90c9aa66d86 gcc/te *** 38210,38215 **** --- 38433,38439 ---- 30f53d499facb7677def27401106f489 gcc/testsuite/gcc.dg/pr97534.c 8de28fbb1fc8308939d75b5aa08ac83a gcc/testsuite/gcc.dg/pr97539.c 7cc410466db1f834697611a61399f7ba gcc/testsuite/gcc.dg/pr97897.c + dd83a8b867ef8c886adacb097f55bc6b gcc/testsuite/gcc.dg/pr97953.c ec1830becced622760bda688ca2bb126 gcc/testsuite/gcc.dg/pr9814-1.c 0ffdbfe76fd130e510ec19ac27307b9d gcc/testsuite/gcc.dg/pr98255.c 358377419a8fc398557c8e69170ddbc9 gcc/testsuite/gcc.dg/pr98287.c *************** ec1830becced622760bda688ca2bb126 gcc/te *** 38217,38222 **** --- 38441,38448 ---- 6f1182e067a6b12f97acf69996773c2e gcc/testsuite/gcc.dg/pr98766.c 2eea8fc255e64207bc4e80b2eb33a6f0 gcc/testsuite/gcc.dg/pr99136.c 915d115cd30c8f24c98345c9a7a5593c gcc/testsuite/gcc.dg/pr99224.c + 110164c4d9d3f245273a057dc1b1b2e8 gcc/testsuite/gcc.dg/pr99830.c + bd1dd69944d498943ec98b799196b332 gcc/testsuite/gcc.dg/pr99990.c 38d740dd13641c97d4f565dcd6338d23 gcc/testsuite/gcc.dg/pragma-align-2.c 4c08191735eadb7c6ea607dfcc965cf5 gcc/testsuite/gcc.dg/pragma-align.c afcceb4d1454686aec15563b318f6f87 gcc/testsuite/gcc.dg/pragma-darwin-2.c *************** a22c0db258dd69508b2ceb6070cac172 gcc/te *** 38511,38516 **** --- 38737,38743 ---- 9c8f50b89f148a9e2b73e3fa23c04b60 gcc/testsuite/gcc.dg/split-8.c 70c0f8d6fc8dfd96b3356185306477b4 gcc/testsuite/gcc.dg/sso-1.c 9821ad4cb043e8bea1647783db517677 gcc/testsuite/gcc.dg/sso-10.c + ae63ef59d4955da47b8b32d066fbadb0 gcc/testsuite/gcc.dg/sso-16.c 1596e67c3fd5ccc4a9264cba4aa398c4 gcc/testsuite/gcc.dg/sso-2.c 4a6f7bb1645423ba5d23a61f98233d1d gcc/testsuite/gcc.dg/sso-3.c edaa32662275ea6100c4a0657754194a gcc/testsuite/gcc.dg/sso-4.c *************** b151f401ebe15ffdbefdb4db4f4ccae9 gcc/te *** 38971,38976 **** --- 39198,39204 ---- e5e7352de17daef20df813c70e9b7a10 gcc/testsuite/gcc.dg/torture/20190924-1.c c1a3ac64264ecff096abb31f7a1c60e1 gcc/testsuite/gcc.dg/torture/20191011-1.c a268f7e7fe5d358fe2f76cd8fc4ecac3 gcc/testsuite/gcc.dg/torture/20200311-1.c + 682902102f565ed7c61ed171053e8f83 gcc/testsuite/gcc.dg/torture/20200727-0.c 18d092a49330e9a3da34c551be068cfa gcc/testsuite/gcc.dg/torture/Wsizeof-pointer-memaccess1.c d23f5563695ea2b9898397f0244ca90d gcc/testsuite/gcc.dg/torture/alias-1.c 2063dc05a74374000dcf03fc407536e5 gcc/testsuite/gcc.dg/torture/alias-2.c *************** c291ca9e80ea000b6dc33f0d7f7d34e9 gcc/te *** 39140,39147 **** f8e2abd75769f3a4ef8ad7b9914390be gcc/testsuite/gcc.dg/torture/fp-int-convert-long-double.c 9ef87b27cfee504086000e94ac29f50a gcc/testsuite/gcc.dg/torture/fp-int-convert-timode-1.c 5169357e3279d3d6cdbbba3f5f56ae06 gcc/testsuite/gcc.dg/torture/fp-int-convert-timode-2.c ! fd8e4b5780f61cf3b05303134b29baff gcc/testsuite/gcc.dg/torture/fp-int-convert-timode-3.c ! 3ce2c239552d01bdeca3fb45312a4cc2 gcc/testsuite/gcc.dg/torture/fp-int-convert-timode-4.c b433f576987f7d246553ea453e377ab9 gcc/testsuite/gcc.dg/torture/fp-int-convert-timode.c ee42b6d1749f9706fac80052d9404d0a gcc/testsuite/gcc.dg/torture/fp-int-convert.h ff646b4bbd5d24fb83db416b6482d625 gcc/testsuite/gcc.dg/torture/ftrapv-1.c --- 39368,39375 ---- f8e2abd75769f3a4ef8ad7b9914390be gcc/testsuite/gcc.dg/torture/fp-int-convert-long-double.c 9ef87b27cfee504086000e94ac29f50a gcc/testsuite/gcc.dg/torture/fp-int-convert-timode-1.c 5169357e3279d3d6cdbbba3f5f56ae06 gcc/testsuite/gcc.dg/torture/fp-int-convert-timode-2.c ! 1693262ce9bbff75614cabd11769c3bb gcc/testsuite/gcc.dg/torture/fp-int-convert-timode-3.c ! 4c8473474ab81348950cc8917d5cfdba gcc/testsuite/gcc.dg/torture/fp-int-convert-timode-4.c b433f576987f7d246553ea453e377ab9 gcc/testsuite/gcc.dg/torture/fp-int-convert-timode.c ee42b6d1749f9706fac80052d9404d0a gcc/testsuite/gcc.dg/torture/fp-int-convert.h ff646b4bbd5d24fb83db416b6482d625 gcc/testsuite/gcc.dg/torture/ftrapv-1.c *************** d07ecd707fac97fa40042e04a59d4b1e gcc/te *** 39174,39179 **** --- 39402,39425 ---- f509ceab15e52f50f8b11d7cacc6447f gcc/testsuite/gcc.dg/torture/neon-immediate-timode.c ba222bffc08c28a180298a0d4c6d6aea gcc/testsuite/gcc.dg/torture/nested-fn-1.c 4ac07881b7842f59c3aeffe74b35a881 gcc/testsuite/gcc.dg/torture/parm-coalesce.c + 9d76608a6d99fb21a235151928a24b22 gcc/testsuite/gcc.dg/torture/pr100053.c + 9d2f1adc508f8626c3bd56448501eb00 gcc/testsuite/gcc.dg/torture/pr100492.c + 6335c9430427e1e94a7a58bb8b0b5255 gcc/testsuite/gcc.dg/torture/pr100566.c + 5f5809ecbd695f122244007bc7702241 gcc/testsuite/gcc.dg/torture/pr100672.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 + 26df74aa3790822d5269438121e02a5d gcc/testsuite/gcc.dg/torture/pr101105.c + ad6242e66d3dccabe71dd1502730f6d6 gcc/testsuite/gcc.dg/torture/pr101173.c + 556a928be1d2de2f0390088de1d6e46f gcc/testsuite/gcc.dg/torture/pr101394.c + 9f1dcdf5769944ea067a3a74f74fa4f9 gcc/testsuite/gcc.dg/torture/pr102762.c + 98aa192f1dd77816cc201b3a0ee72edb gcc/testsuite/gcc.dg/torture/pr103181.c + 190d413f3b81d5e1b395090ae83703be gcc/testsuite/gcc.dg/torture/pr103237.c + 66fcee07a56c19209cb4aaa0d4aaaded gcc/testsuite/gcc.dg/torture/pr103596.c + 187b7ab38abc20e5b403f44030455c53 gcc/testsuite/gcc.dg/torture/pr104402.c + ca1b8736d16b2cdaabaec84f87fa4d15 gcc/testsuite/gcc.dg/torture/pr105163.c + a88279579fa471a64faeb41da64a9eb4 gcc/testsuite/gcc.dg/torture/pr105198.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 *************** a5d39ec2048b8f4f3145b829fa56bec1 gcc/te *** 40149,40161 **** --- 40395,40412 ---- 0b01dca702634f65529254117d74cdc9 gcc/testsuite/gcc.dg/torture/pr96130.c 6904165f78a3e3bd6c3a2d614bbf3240 gcc/testsuite/gcc.dg/torture/pr96133.c a2224137d9db6e254b70f0985eaa812f gcc/testsuite/gcc.dg/torture/pr96349.c + 62030ce11318324c6a00eed2b2eebee1 gcc/testsuite/gcc.dg/torture/pr96513.c b6ac3fe74c736f29c622c9f00307a596 gcc/testsuite/gcc.dg/torture/pr96522.c 264df8564ef9bf89c28b5918f88bada3 gcc/testsuite/gcc.dg/torture/pr97812.c bea94dc5b4f440a3a09008e23a97d794 gcc/testsuite/gcc.dg/torture/pr98117.c + e04ec27dc5469da4d5b29038bf9a9865 gcc/testsuite/gcc.dg/torture/pr98601.c 199fada7702df9f4b8545d7dcb3c7cb7 gcc/testsuite/gcc.dg/torture/pr98640.c 26d769ec578c3e810f69bed767d169de gcc/testsuite/gcc.dg/torture/pr98758.c + 4d7897f67f77d46b2917c68e493089ba gcc/testsuite/gcc.dg/torture/pr98786.c a54bab589a8d1756d3664fc38d64bf3b gcc/testsuite/gcc.dg/torture/pr99694.c 2712af19a1b0692a370799c3da75f379 gcc/testsuite/gcc.dg/torture/pr99824.c + 1e1d5d7c1a9f7fb97f53ed28cd4d5c93 gcc/testsuite/gcc.dg/torture/pr99880.c + 42cad3ed6f197e1283a3767a1f0ae8d6 gcc/testsuite/gcc.dg/torture/pr99954.c d086c3946230ba05df33a45be4862730 gcc/testsuite/gcc.dg/torture/pta-callused-1.c 39620328710fd9ff170741766805e426 gcc/testsuite/gcc.dg/torture/pta-escape-1.c f50cbae53561b1267140f574974f7fc0 gcc/testsuite/gcc.dg/torture/pta-ptrarith-1.c *************** ffc8d6d378e80da23cc2300fd9f2d529 gcc/te *** 40225,40230 **** --- 40476,40482 ---- d5967747961c3c0e43380a4aee91e5dd gcc/testsuite/gcc.dg/torture/stackalign/vararg-1.c 43fcb5d2985d6b4e94c4aebf0392dbd4 gcc/testsuite/gcc.dg/torture/stackalign/vararg-2.c 3de9668ba2bd89837c3f7c15e1e3d7e2 gcc/testsuite/gcc.dg/torture/stackalign/vararg-3.c + 9ff09cb739592baf30552acd2b24f79f gcc/testsuite/gcc.dg/torture/tls/pr104777.c ed0fa1d073845fed5b0352c474ef8b77 gcc/testsuite/gcc.dg/torture/tls/run-gd.c df7b12dbf9d331f62fd4d971bf2212d0 gcc/testsuite/gcc.dg/torture/tls/run-ie.c 85eac160403c7fbaad14f07a01f0b507 gcc/testsuite/gcc.dg/torture/tls/run-ld.c *************** b785e1a2b2d1f8899bb42aef2aebb7a8 gcc/te *** 40949,40954 **** --- 41201,41207 ---- 68ea1e33b73e2699fe3e0888ae6721b1 gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-13.c fe84a4129539ca0baa6a9d7402d4d376 gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-14.c b1188ae63556e140acddb61c169ee3c5 gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-15.c + 5d4cdc6bd818734c048b194c28a11deb gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-16.c b12d1ab254d179b32ea5f184c4240c23 gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-1b.c 195d9617ba34c560d8e9caab1c13ad0e gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-2.c 4f2173acb80928f0b6a87daf5033149e gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-3.c *************** db4f86a4f8ff0fc9653954f4e21c1f3f gcc/te *** 41012,41017 **** --- 41265,41272 ---- 2fb4e6c2bc49e5d7ef90a8c649a0e14d gcc/testsuite/gcc.dg/tree-ssa/popcount4.c a894721a77fea7c94bacb921fa950e92 gcc/testsuite/gcc.dg/tree-ssa/popcount4l.c 5fa8fedb134926f9081dc10112a7acbb gcc/testsuite/gcc.dg/tree-ssa/popcount4ll.c + 54f39b48fa6b3cbd7593e9bc52d33a21 gcc/testsuite/gcc.dg/tree-ssa/pr100278.c + d5dace55f72aa8ccb51636dff79f5ccc gcc/testsuite/gcc.dg/tree-ssa/pr101824.c 78e6c5fe63f7305009c8a79840fe20dc gcc/testsuite/gcc.dg/tree-ssa/pr13146.c eab19e0c04884cd782c9879cbe292109 gcc/testsuite/gcc.dg/tree-ssa/pr14341.c 9945ed7002a5f7d4918e8ff5eb4cb647 gcc/testsuite/gcc.dg/tree-ssa/pr14490-1.c *************** c75fd65ee6a8f250fc885fc554c2b9d6 gcc/te *** 41865,41870 **** --- 42120,42126 ---- 8a83bffa449a2f7e2bc20676eccd36b5 gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-86.c bab030e723ebb78dbecdf8eb91fd51f8 gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-87.c 6c8e375b119ce1b63e19eed89459c12f gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-9.c + 7d8325c97088076c87f983ac248e7700 gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-93.c 2957dc80c49929e08096f70c96f5df81 gcc/testsuite/gcc.dg/tree-ssa/ssa-hoist-1.c 2d6dabe93b06b03f622762226dbb6c34 gcc/testsuite/gcc.dg/tree-ssa/ssa-hoist-2.c 70be68799a646b8992aed1aafb5151ab gcc/testsuite/gcc.dg/tree-ssa/ssa-hoist-3.c *************** d122ac18b4a3ae4813e46562ff41d564 gcc/te *** 42667,42672 **** --- 42923,42929 ---- ac90ad8f4383592387ff86cb8dbd78ce gcc/testsuite/gcc.dg/vect/nodump-pr23073.c 4031bfbf5b1cf89807376fcb9a939316 gcc/testsuite/gcc.dg/vect/nodump-vect-opt-info-1.c 58db2fab9bc49d7c2cce579cfbde8d0d gcc/testsuite/gcc.dg/vect/nodump-vect-opt-info-2.c + 6893aed7299a121a69eb5b9deac04ae4 gcc/testsuite/gcc.dg/vect/pr102046.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 *************** bf82071ea86307b407ab979b320a2a98 gcc/te *** 45188,45194 **** --- 45445,45453 ---- c5ac198fcc683ea88b36ff21fc73e2c5 gcc/testsuite/gcc.target/aarch64/pr97638.c 9de38bfb1ed2fd966b262da7bfb1767a gcc/testsuite/gcc.target/aarch64/pr97701.c 18603818c100529306da07a556c00769 gcc/testsuite/gcc.target/aarch64/pr99381.c + 1f2ce8a6e6be36322ada7a2a222926ac gcc/testsuite/gcc.target/aarch64/pr99767.c 49e4573c158d59f2a37800471ca3bc65 gcc/testsuite/gcc.target/aarch64/pr99808.c + 5e9a238ae88bfc957497e635ed104144 gcc/testsuite/gcc.target/aarch64/pr99988.c d3e6defa85b5cd4bb506306377e59a53 gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_1.c 42c7828cb4d5253e1a3df46c971f945a gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_2.c 1802b716a6dff570eaf8df2688efe1dd gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_3.c *************** cd84e485b3fa7a0d50f2ee5113eca33d gcc/te *** 47591,47596 **** --- 47850,47856 ---- 111a35b5bdbe877086a99d29b13dc65b gcc/testsuite/gcc.target/aarch64/sve/acle/general/pr94700.c dd9873ff910539b000561a51ccc3a52f gcc/testsuite/gcc.target/aarch64/sve/acle/general/pr96146.c 999779dd0082670db7ad0a68cd4d67d1 gcc/testsuite/gcc.target/aarch64/sve/acle/general/pr98037.c + a5788fbbeb941609b02d51151c326705 gcc/testsuite/gcc.target/aarch64/sve/acle/general/pr99246.c 19a916b28d48b38d8ba875db787a737d gcc/testsuite/gcc.target/aarch64/sve/acle/general/ptrue_pat_1.c 1a580ad78bce51f73cdc63c6074d6cab gcc/testsuite/gcc.target/aarch64/sve/acle/general/ptrue_pat_2.c 1690c7f5c85696da3bc6813dfa8b539c gcc/testsuite/gcc.target/aarch64/sve/acle/general/ptrue_pat_3.c *************** f247489d5a83c25a52bba3f69ccf6256 gcc/te *** 48197,48202 **** --- 48457,48463 ---- 9488251a23018049b302e2b299d999ba gcc/testsuite/gcc.target/aarch64/sve/peel_ind_4_run.c 58779ff2ec8df7f5f3f3b93f444f0617 gcc/testsuite/gcc.target/aarch64/sve/popcount_1.c 43e7bc10a42a3debf5d1ccecc4464720 gcc/testsuite/gcc.target/aarch64/sve/popcount_1_run.c + 12ecad870dc3cdd512c314f6e0ba3c08 gcc/testsuite/gcc.target/aarch64/sve/pr100048.c 00b752a6e175de8b1a300df08f275461 gcc/testsuite/gcc.target/aarch64/sve/pr87563.c c56eeba71ad463673a1bdb30e7a94863 gcc/testsuite/gcc.target/aarch64/sve/pr87815.c 766aab18648676b9173822adb5606607 gcc/testsuite/gcc.target/aarch64/sve/pr88834.c *************** cade04c34d59dcc18fe0606f0bd12dda gcc/te *** 48209,48218 **** --- 48470,48486 ---- 85d46e9e9a0f82017c6cbb33b97503b2 gcc/testsuite/gcc.target/aarch64/sve/pr95361.c e842145fd4cb8d836d070b28e9f9d4d4 gcc/testsuite/gcc.target/aarch64/sve/pr96357.c a21cb5077461cbf23ca054f7c89a9bd8 gcc/testsuite/gcc.target/aarch64/sve/pr97092.c + 0bd0c11c70979d74de80fd698161a3be gcc/testsuite/gcc.target/aarch64/sve/pr97141.c 551b93da908927fd5461395f52ee36cf gcc/testsuite/gcc.target/aarch64/sve/pr97144.c + feaaf48c5bd3e12bf1024ebc5d6dfdfa gcc/testsuite/gcc.target/aarch64/sve/pr98119.c 3599b0dfd7d1d7cf9e0340e2de2f2c01 gcc/testsuite/gcc.target/aarch64/sve/pr98214.c + ffe30c79c242fa62db3926fdd0bc8341 gcc/testsuite/gcc.target/aarch64/sve/pr98268-1.c + ff0ddeea0464fd011f5ecacb417afb1d gcc/testsuite/gcc.target/aarch64/sve/pr98268-2.c 1ddb81bdd4fdba57625a8877ce429277 gcc/testsuite/gcc.target/aarch64/sve/pr98535.c + 3700e9317b864fda88d513b134b71a26 gcc/testsuite/gcc.target/aarch64/sve/pr98726.c 7f7269cfe880136a54291a5c33b07d00 gcc/testsuite/gcc.target/aarch64/sve/pr98791.c + a866cb5b08078d8fe7c2f8ead2f55150 gcc/testsuite/gcc.target/aarch64/sve/pr99929_1.c + 26d14a9990e480e5b2370a215688cb95 gcc/testsuite/gcc.target/aarch64/sve/pr99929_2.c e9e92c2ec92da9f29261bd9d1a3cace4 gcc/testsuite/gcc.target/aarch64/sve/pred_elim_1.c bc00a0e0dea7500ecba0544bd58c0277 gcc/testsuite/gcc.target/aarch64/sve/pred_elim_2.c be3bc45b321c4b84deacc9d04819a288 gcc/testsuite/gcc.target/aarch64/sve/recip_1.c *************** b360e0ac1da1500645df64fce4fab7dd gcc/te *** 49374,49383 **** --- 49642,49654 ---- d807c78d9b80a1f49bc50cb0cae86706 gcc/testsuite/gcc.target/aarch64/sve2/whilewr_2.c c1ccdcf1821a2a9f689561bfc74f48dc gcc/testsuite/gcc.target/aarch64/symbol-range-tiny.c b4127affc5c8c177d402c917c2b81097 gcc/testsuite/gcc.target/aarch64/symbol-range.c + d707fbbaf0d37436be7ea3b6ac3b81d7 gcc/testsuite/gcc.target/aarch64/sync-comp-swap-ool.c c210c6b6344e5119de7869315aefba48 gcc/testsuite/gcc.target/aarch64/sync-comp-swap.c 322a3d828a7a9ead661b7d17a7aeceea gcc/testsuite/gcc.target/aarch64/sync-comp-swap.x + 2687cc48cb064e67e3949a43386961bf gcc/testsuite/gcc.target/aarch64/sync-op-acquire-ool.c 002f159c83e5462862ec82620c2630ae gcc/testsuite/gcc.target/aarch64/sync-op-acquire.c 1e1c36a3eb9a0bd45a0e250e1d2b1ce5 gcc/testsuite/gcc.target/aarch64/sync-op-acquire.x + 14c3e5537db0cba1ee1aa29279f1d44a gcc/testsuite/gcc.target/aarch64/sync-op-full-ool.c 34216778cb9e5a4611eb55ae4ccfaf4b gcc/testsuite/gcc.target/aarch64/sync-op-full.c 17abd80a4e460d31237f3ece87c85558 gcc/testsuite/gcc.target/aarch64/sync-op-full.x f87f898044cd78f2ebf530577d3cf7bb gcc/testsuite/gcc.target/aarch64/sync-op-release.c *************** c850677a06284224d4f4c40ffd5e4d78 gcc/te *** 49394,49401 **** 639032a9f80bce937ccbcf962600a338 gcc/testsuite/gcc.target/aarch64/target_attr_17.c c58ba3dda55aafe8c837f58d3ba9dc9d gcc/testsuite/gcc.target/aarch64/target_attr_18.c 93145ff3e03510c58daa08e45866f6ba gcc/testsuite/gcc.target/aarch64/target_attr_2.c ! bda8eed00f321b4cfe8fffd7a2a549d1 gcc/testsuite/gcc.target/aarch64/target_attr_20.c ! 9ea0cd1c37488478ebbda0afaf90eb5a gcc/testsuite/gcc.target/aarch64/target_attr_21.c a4a6eccdba213faef4196f8ebe4152a3 gcc/testsuite/gcc.target/aarch64/target_attr_3.c c17cb964233b0aa7dd1ec0085d5a8fe2 gcc/testsuite/gcc.target/aarch64/target_attr_4.c 77ed3e7c559e6c7bb67620fa37d32e76 gcc/testsuite/gcc.target/aarch64/target_attr_5.c --- 49665,49672 ---- 639032a9f80bce937ccbcf962600a338 gcc/testsuite/gcc.target/aarch64/target_attr_17.c c58ba3dda55aafe8c837f58d3ba9dc9d gcc/testsuite/gcc.target/aarch64/target_attr_18.c 93145ff3e03510c58daa08e45866f6ba gcc/testsuite/gcc.target/aarch64/target_attr_2.c ! 8b44261d4e827e2d0e48c50c109f35b5 gcc/testsuite/gcc.target/aarch64/target_attr_20.c ! 6fc49b0d1c0f511ac3f21e291184cb00 gcc/testsuite/gcc.target/aarch64/target_attr_21.c a4a6eccdba213faef4196f8ebe4152a3 gcc/testsuite/gcc.target/aarch64/target_attr_3.c c17cb964233b0aa7dd1ec0085d5a8fe2 gcc/testsuite/gcc.target/aarch64/target_attr_4.c 77ed3e7c559e6c7bb67620fa37d32e76 gcc/testsuite/gcc.target/aarch64/target_attr_5.c *************** a9f54382c872d8300abd0751aaf2baa7 gcc/te *** 49633,49638 **** --- 49904,49910 ---- 582df4fc7c8b439347d0ffcf02953017 gcc/testsuite/gcc.target/alpha/cix-2.c c4eec60b3306ebc857f91dd9f92ff8fe gcc/testsuite/gcc.target/alpha/max-1.c 868d557785ef579297eaa8d96b97b3fc gcc/testsuite/gcc.target/alpha/max-2.c + cda436a64900819743f9c85f6ef0caae gcc/testsuite/gcc.target/alpha/pr105209.c dc5943b1dd495250e6dc8076b32c902c gcc/testsuite/gcc.target/alpha/pr19518.c f8467590e67b2b5f4718d571a9ba60c0 gcc/testsuite/gcc.target/alpha/pr22093.c b36471f8edbf2a11ce23359823ecc10b gcc/testsuite/gcc.target/alpha/pr24178.c *************** eee783c37d90eef12bf5d89dd9e9f34c gcc/te *** 49907,49912 **** --- 50179,50185 ---- 1089abf6533526d82e14c2c80d726483 gcc/testsuite/gcc.target/arm/acle/mrc2.c e66b3819f1cc1c13b66c38b83972f3a2 gcc/testsuite/gcc.target/arm/acle/mrrc.c 5280b32decaf5622a9f85f834e828bdf gcc/testsuite/gcc.target/arm/acle/mrrc2.c + 86c499d24586512163846019c7506633 gcc/testsuite/gcc.target/arm/acle/pr100856.c c351089daa0fb41b19888a703d2c10c8 gcc/testsuite/gcc.target/arm/acle/sat_no_smlatb.c 8654b6f7bf64a1d8f8ffa2f9bcf1431a gcc/testsuite/gcc.target/arm/acle/saturation.c aba97f9977e18f8c2b8fd7ce559b513f gcc/testsuite/gcc.target/arm/acle/simd32.c *************** cf7c684a14b2daa8b876c512e3599582 gcc/te *** 50004,50012 **** d5f4f823ea6fb9bc4c6e9ccba5acdb91 gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail.c c462d71e23fb07062a21f54c54d09271 gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail2.c 503e1413bdd5662d2c58a37bf84814b7 gcc/testsuite/gcc.target/arm/attr-neon-fp16.c ! e45d18a6bd453ee0583a14f1ec577ca6 gcc/testsuite/gcc.target/arm/attr-neon.c ! 0ffb1bd2df426c7f4e30d62c784338b3 gcc/testsuite/gcc.target/arm/attr-neon2.c ! d6e6da3a36344077e01b8966604337d8 gcc/testsuite/gcc.target/arm/attr-neon3.c 2fc3bc36f2a6337c4305bded55708046 gcc/testsuite/gcc.target/arm/attr-unaligned-load-ice.c ba6a1a17734115428b72a71a491695fb gcc/testsuite/gcc.target/arm/attr_arm-err.c 8ab2ce7d24547f03640f6087eb2b9be4 gcc/testsuite/gcc.target/arm/attr_arm.c --- 50277,50285 ---- d5f4f823ea6fb9bc4c6e9ccba5acdb91 gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail.c c462d71e23fb07062a21f54c54d09271 gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail2.c 503e1413bdd5662d2c58a37bf84814b7 gcc/testsuite/gcc.target/arm/attr-neon-fp16.c ! 4a4bc58114ce671d72a5c4665876477b gcc/testsuite/gcc.target/arm/attr-neon.c ! f23d0119800a017079c65170401ab2c1 gcc/testsuite/gcc.target/arm/attr-neon2.c ! 4bbb4aad24c231d5708eee737823fd9b gcc/testsuite/gcc.target/arm/attr-neon3.c 2fc3bc36f2a6337c4305bded55708046 gcc/testsuite/gcc.target/arm/attr-unaligned-load-ice.c ba6a1a17734115428b72a71a491695fb gcc/testsuite/gcc.target/arm/attr_arm-err.c 8ab2ce7d24547f03640f6087eb2b9be4 gcc/testsuite/gcc.target/arm/attr_arm.c *************** ebdb15be89bef0e9c175a92e85f05897 gcc/te *** 50088,50095 **** ef7ca529c8bfa7604b48cdb713711215 gcc/testsuite/gcc.target/arm/cmse/cmse-15.c f76ced2a530d80991ba85c2e39dd5dd4 gcc/testsuite/gcc.target/arm/cmse/cmse-16.c da139a3f1e88bf3b7034931f46a04110 gcc/testsuite/gcc.target/arm/cmse/cmse-17.c ! df01e6fd13521f4e7fa6a6592cc5cdbf gcc/testsuite/gcc.target/arm/cmse/cmse-18.c d307e00dde7714d2f353a08b08451b57 gcc/testsuite/gcc.target/arm/cmse/cmse-1c99.c 266f2af407dee9fa3bf85b781282684c gcc/testsuite/gcc.target/arm/cmse/cmse-3.c 4c264cc4ce26c3ecec599c99d3e29942 gcc/testsuite/gcc.target/arm/cmse/cmse-4.c ce1fe2059d8e263b0f3d889cb1392892 gcc/testsuite/gcc.target/arm/cmse/cmse-5.x --- 50361,50369 ---- ef7ca529c8bfa7604b48cdb713711215 gcc/testsuite/gcc.target/arm/cmse/cmse-15.c f76ced2a530d80991ba85c2e39dd5dd4 gcc/testsuite/gcc.target/arm/cmse/cmse-16.c da139a3f1e88bf3b7034931f46a04110 gcc/testsuite/gcc.target/arm/cmse/cmse-17.c ! a0cc973b6770567d9ae9d0d7e19290d3 gcc/testsuite/gcc.target/arm/cmse/cmse-18.c d307e00dde7714d2f353a08b08451b57 gcc/testsuite/gcc.target/arm/cmse/cmse-1c99.c + 9309eaae0e11dbd8092b4249a3023775 gcc/testsuite/gcc.target/arm/cmse/cmse-20.c 266f2af407dee9fa3bf85b781282684c gcc/testsuite/gcc.target/arm/cmse/cmse-3.c 4c264cc4ce26c3ecec599c99d3e29942 gcc/testsuite/gcc.target/arm/cmse/cmse-4.c ce1fe2059d8e263b0f3d889cb1392892 gcc/testsuite/gcc.target/arm/cmse/cmse-5.x *************** cc493670dd81332714420ec2e51f11f1 gcc/te *** 50113,50128 **** --- 50387,50410 ---- e9afe97825e8d8a0ad0f1d1ee3eba768 gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/hard/cmse-7.c ff736441775234283ea7c6b9f1742b98 gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/hard/cmse-8.c 6815b34847bb8c1d4aaf45cc5344b7b6 gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/soft/cmse-13.c + db19589d0c4e84247117453be17a73ce gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/soft/cmse-13a.c b1a9cf3bbbd541dee53394308dbecae2 gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/soft/cmse-5.c 6265d3dbb6378f6c5f9f2c8a431b93db gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/soft/cmse-7.c + f48c6bc5f8199665d88044989256a6da gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/soft/cmse-7a.c c42fcbcdb666110e68869e154ab77224 gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/soft/cmse-8.c + 3aab495c2f4a1431d76eac0d78dfa603 gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/soft/cmse-8a.c 103278679c354a109f1d358eddb30859 gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp-sp/cmse-5.c 162060f488114726d1b43a3eedb8496a gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp-sp/cmse-7.c + 5dc87c9817f7467ef3df83c11e8e53d0 gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp-sp/cmse-7a.c 09db0263f84eba86f3cc3bb4b054f575 gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp-sp/cmse-8.c + 02d3d6d6d2419da3eaddb692c3889bf1 gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp-sp/cmse-8a.c 866f1d66352909acbf56cea6bc9ad83c gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp/cmse-13.c + 6f2a81b28babe75e93ec80bef4a27d7f gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp/cmse-13a.c 128f22a56da604008370c39435f4c275 gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp/cmse-5.c b67dc35cb041e665b0436a8b3c1dbbf9 gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp/cmse-7.c + 627b693e4e8a053229d1b802e1cbed82 gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp/cmse-7a.c 3ecfaa9db2870273dd05cd02a2bd597b gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp/cmse-8.c + df829d6ec7fb9540fcbd66368f0fb17b gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp/cmse-8a.c 539f0378e45653ff2109841bd4bccc87 gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/union-1.c 895e0fb552647a0516559c1bf30963e5 gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/union-2.c ab4a6ad246ee43f02f3290436cb16703 gcc/testsuite/gcc.target/arm/cmse/mainline/8m/bitfield-4.c *************** cb1f8a28400b5e5ea5ea510c8a09258b gcc/te *** 50153,50158 **** --- 50435,50442 ---- 7c237776495bc9451d7b94ec36068f56 gcc/testsuite/gcc.target/arm/cmse/mainline/8m/softfp/cmse-8.c cb60008d5e98eeaf45a18dec48047164 gcc/testsuite/gcc.target/arm/cmse/mainline/8m/union-1.c bfdbc743afa8415599bab6c48cb26d64 gcc/testsuite/gcc.target/arm/cmse/mainline/8m/union-2.c + 8cd1e54844f2fab111ede15dfc983556 gcc/testsuite/gcc.target/arm/cmse/pr100333.c + c7feddd41b8ab7d0bcc61e9ba67a259a gcc/testsuite/gcc.target/arm/cmse/pr99725.c 29329b40a9bee292da1ddd2d9e8381b7 gcc/testsuite/gcc.target/arm/cmse/struct-1.c 018f6e1e401b9f8f53cb13da1c5fcef7 gcc/testsuite/gcc.target/arm/cmse/union-1.x 4b49e4c79c02f37ae492dd2e76ef29e7 gcc/testsuite/gcc.target/arm/cmse/union-2.x *************** d38897569ba0b5112694e6e1fe6662b5 gcc/te *** 50167,50175 **** 3276a566dd1857d0f2cd818f10d4ea20 gcc/testsuite/gcc.target/arm/cortex-m55-nodsp-flag-hard.c f70849821eab1c2219b01aa5abf68cce gcc/testsuite/gcc.target/arm/cortex-m55-nodsp-flag-softfp.c 40da6d5a8299dff3dfc28e297fbe1812 gcc/testsuite/gcc.target/arm/cortex-m55-nodsp-nofp-flag-softfp.c ! 08065246845cd82e79e6fda8a936c484 gcc/testsuite/gcc.target/arm/cortex-m55-nofp-flag-hard.c ! 9876dc6b9dcf925936da3c491762ba44 gcc/testsuite/gcc.target/arm/cortex-m55-nofp-flag-softfp.c ! c0c9b87f67e7f3bc176d640e9c1b9109 gcc/testsuite/gcc.target/arm/cortex-m55-nofp-nomve-flag-softfp.c cc128f76dcfaa18bcc1a981b2d9c8606 gcc/testsuite/gcc.target/arm/cortex-m55-nomve-flag-hard.c 7a6177e56a148a08b79a830eeba6342d gcc/testsuite/gcc.target/arm/cortex-m55-nomve-flag-softfp.c 50039fdbda129708bea94c686587fe2f gcc/testsuite/gcc.target/arm/cortex-m55-nomve.fp-flag-hard.c --- 50451,50459 ---- 3276a566dd1857d0f2cd818f10d4ea20 gcc/testsuite/gcc.target/arm/cortex-m55-nodsp-flag-hard.c f70849821eab1c2219b01aa5abf68cce gcc/testsuite/gcc.target/arm/cortex-m55-nodsp-flag-softfp.c 40da6d5a8299dff3dfc28e297fbe1812 gcc/testsuite/gcc.target/arm/cortex-m55-nodsp-nofp-flag-softfp.c ! 16bc1bcd5be07e9c50246af4c9c55723 gcc/testsuite/gcc.target/arm/cortex-m55-nofp-flag-hard.c ! 78816c4b8cd7d874f11fa54bf67c6390 gcc/testsuite/gcc.target/arm/cortex-m55-nofp-flag-softfp.c ! 3861c314865ebd17821082bfd56eb777 gcc/testsuite/gcc.target/arm/cortex-m55-nofp-nomve-flag-softfp.c cc128f76dcfaa18bcc1a981b2d9c8606 gcc/testsuite/gcc.target/arm/cortex-m55-nomve-flag-hard.c 7a6177e56a148a08b79a830eeba6342d gcc/testsuite/gcc.target/arm/cortex-m55-nomve-flag-softfp.c 50039fdbda129708bea94c686587fe2f gcc/testsuite/gcc.target/arm/cortex-m55-nomve.fp-flag-hard.c *************** c6b1f31177a60b170040e0eddc1787ba gcc/te *** 50347,50361 **** 7b0294d6197317c05cb3accfdbee95d9 gcc/testsuite/gcc.target/arm/movhi_movw.c 484b6553c962caa2f0746fa65de739e8 gcc/testsuite/gcc.target/arm/movsi_movt.c 190ffba53357096715f051384c38965b gcc/testsuite/gcc.target/arm/movsi_movw.c ! e3fc299c79d31c0ede5f4138d3d3175f gcc/testsuite/gcc.target/arm/multilib.exp 0cb82b3c13272daae33b86a0b70c3ab4 gcc/testsuite/gcc.target/arm/mve/intrinsics/asrl.c f6c2f6c35390e01c453145baae48aa6b gcc/testsuite/gcc.target/arm/mve/intrinsics/lsll.c 8742cb74c36fe44acebeaf852842a44d gcc/testsuite/gcc.target/arm/mve/intrinsics/mve-vldstr16-no-writeback.c f846a99fa37aa6932ef3fa1100fa2e84 gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_fp_fpu1.c a23662cdce162388aafacd6bd5ae8401 gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_fp_fpu2.c 4b3d64afb38db51bd5eac30322143dd4 gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_fp_vaddq_n.c ! 8e61c2102e6545692dba243a0a09a1f8 gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_fpu1.c ! caacbb41866e75cc6212745b2a92067c gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_fpu2.c 9b8afb9ef88ec69d20f93267dfc70f09 gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_fpu3.c 9e92f2f97d3d1ab5f56f69c957ed79d2 gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_immediates_1_n.c 55b31f7d9d7f52f3323b2f2f6e4d7a51 gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_libcall1.c --- 50631,50645 ---- 7b0294d6197317c05cb3accfdbee95d9 gcc/testsuite/gcc.target/arm/movhi_movw.c 484b6553c962caa2f0746fa65de739e8 gcc/testsuite/gcc.target/arm/movsi_movt.c 190ffba53357096715f051384c38965b gcc/testsuite/gcc.target/arm/movsi_movw.c ! 6f2cc4d740725519a80d708d9190b5d6 gcc/testsuite/gcc.target/arm/multilib.exp 0cb82b3c13272daae33b86a0b70c3ab4 gcc/testsuite/gcc.target/arm/mve/intrinsics/asrl.c f6c2f6c35390e01c453145baae48aa6b gcc/testsuite/gcc.target/arm/mve/intrinsics/lsll.c 8742cb74c36fe44acebeaf852842a44d gcc/testsuite/gcc.target/arm/mve/intrinsics/mve-vldstr16-no-writeback.c f846a99fa37aa6932ef3fa1100fa2e84 gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_fp_fpu1.c a23662cdce162388aafacd6bd5ae8401 gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_fp_fpu2.c 4b3d64afb38db51bd5eac30322143dd4 gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_fp_vaddq_n.c ! 132717e92c239271ccfc4f567a61fd56 gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_fpu1.c ! 7831959c4528e6a37429d37461c09bd6 gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_fpu2.c 9b8afb9ef88ec69d20f93267dfc70f09 gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_fpu3.c 9e92f2f97d3d1ab5f56f69c957ed79d2 gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_immediates_1_n.c 55b31f7d9d7f52f3323b2f2f6e4d7a51 gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_libcall1.c *************** c879488b4e9c56c955efe3d925ec2ca5 gcc/te *** 50453,50458 **** --- 50737,50743 ---- 4b0efd440cdb0d7b7cd6b447ef77e2eb gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vstore_scatter_shifted_offset_p.c 08cf164f5014eeb82272fbef22e3878f gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vstr.c 4211e73819bb661ddd18271cf8dab0e5 gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vstr_p.c + cfb4125c4550d5cf153bac3dcd2886ad gcc/testsuite/gcc.target/arm/mve/intrinsics/pr101016.c 98744602d4ec4fddefbd4834f40dddbf gcc/testsuite/gcc.target/arm/mve/intrinsics/pr97327.c 32beda1d8b877842f131d22f6fedf40a gcc/testsuite/gcc.target/arm/mve/intrinsics/sqrshr.c a4d907ca6afd778aa767f352e05785f5 gcc/testsuite/gcc.target/arm/mve/intrinsics/sqrshrl_sat48.c *************** b64036d0e4652c89049f943a11bc896d gcc/te *** 51424,51433 **** 06fd44259c15a9ecf1df5b8265ae45b7 gcc/testsuite/gcc.target/arm/mve/intrinsics/vldrbq_z_u8.c 49102b3b7196fa2c571c40fe8791ae8f gcc/testsuite/gcc.target/arm/mve/intrinsics/vldrdq_gather_base_s64.c 3deda27797695493a9e567062c139857 gcc/testsuite/gcc.target/arm/mve/intrinsics/vldrdq_gather_base_u64.c ! ff4de3b6c0f13fa3859f2187ec0d5b5a gcc/testsuite/gcc.target/arm/mve/intrinsics/vldrdq_gather_base_wb_s64.c ! f2c0451fbc0e1f59c801082c4fd2f2f7 gcc/testsuite/gcc.target/arm/mve/intrinsics/vldrdq_gather_base_wb_u64.c ! da4612a540a4502a2023ae0df8d1c7f7 gcc/testsuite/gcc.target/arm/mve/intrinsics/vldrdq_gather_base_wb_z_s64.c ! b086b8fd4df50799af737b21c7b69c1a gcc/testsuite/gcc.target/arm/mve/intrinsics/vldrdq_gather_base_wb_z_u64.c b4cf7f2a1489458e36dfd4518713560f gcc/testsuite/gcc.target/arm/mve/intrinsics/vldrdq_gather_base_z_s64.c eec0c5413aaf58c513f78c16695ba8f8 gcc/testsuite/gcc.target/arm/mve/intrinsics/vldrdq_gather_base_z_u64.c 0770112509a3a62968093ae926528aef gcc/testsuite/gcc.target/arm/mve/intrinsics/vldrdq_gather_offset_s64.c --- 51709,51718 ---- 06fd44259c15a9ecf1df5b8265ae45b7 gcc/testsuite/gcc.target/arm/mve/intrinsics/vldrbq_z_u8.c 49102b3b7196fa2c571c40fe8791ae8f gcc/testsuite/gcc.target/arm/mve/intrinsics/vldrdq_gather_base_s64.c 3deda27797695493a9e567062c139857 gcc/testsuite/gcc.target/arm/mve/intrinsics/vldrdq_gather_base_u64.c ! 78fe9b6d29835717f2993e76bf4de6be gcc/testsuite/gcc.target/arm/mve/intrinsics/vldrdq_gather_base_wb_s64.c ! 874577ef1aa8bc6ca4a416c531dcb322 gcc/testsuite/gcc.target/arm/mve/intrinsics/vldrdq_gather_base_wb_u64.c ! d40af626a080e6b45941068f503a11a0 gcc/testsuite/gcc.target/arm/mve/intrinsics/vldrdq_gather_base_wb_z_s64.c ! b19e1e2343857eb82e04cae9cc29b25e gcc/testsuite/gcc.target/arm/mve/intrinsics/vldrdq_gather_base_wb_z_u64.c b4cf7f2a1489458e36dfd4518713560f gcc/testsuite/gcc.target/arm/mve/intrinsics/vldrdq_gather_base_z_s64.c eec0c5413aaf58c513f78c16695ba8f8 gcc/testsuite/gcc.target/arm/mve/intrinsics/vldrdq_gather_base_z_u64.c 0770112509a3a62968093ae926528aef gcc/testsuite/gcc.target/arm/mve/intrinsics/vldrdq_gather_offset_s64.c *************** bc23d7c97ce5cd4d925d2584ba26e8d9 gcc/te *** 52900,52907 **** 4f4647fda4b51e236989d04766be3f50 gcc/testsuite/gcc.target/arm/mve/intrinsics/vsubq_x_u8.c 23988252db151973cc6a8a718310f805 gcc/testsuite/gcc.target/arm/mve/intrinsics/vuninitializedq_float.c 1b1caac6115bffedba10607ae46ecb1a gcc/testsuite/gcc.target/arm/mve/intrinsics/vuninitializedq_float1.c ! 64693abb5e7c68051ec591152e6e38bf gcc/testsuite/gcc.target/arm/mve/intrinsics/vuninitializedq_int.c ! 378b54cba064e27254bece829f5bd660 gcc/testsuite/gcc.target/arm/mve/intrinsics/vuninitializedq_int1.c 0936ad2e404c63790cbac6217ec1a656 gcc/testsuite/gcc.target/arm/mve/mve.exp a27c7480ff5cba860dda5da683bb3b87 gcc/testsuite/gcc.target/arm/naked-1.c 292c423c2aa66b03398c922259527367 gcc/testsuite/gcc.target/arm/naked-2.c --- 53185,53192 ---- 4f4647fda4b51e236989d04766be3f50 gcc/testsuite/gcc.target/arm/mve/intrinsics/vsubq_x_u8.c 23988252db151973cc6a8a718310f805 gcc/testsuite/gcc.target/arm/mve/intrinsics/vuninitializedq_float.c 1b1caac6115bffedba10607ae46ecb1a gcc/testsuite/gcc.target/arm/mve/intrinsics/vuninitializedq_float1.c ! dd8187345c556677b24a6d6363dd2cf5 gcc/testsuite/gcc.target/arm/mve/intrinsics/vuninitializedq_int.c ! 140114add4d912efe3ae58837e07a2e9 gcc/testsuite/gcc.target/arm/mve/intrinsics/vuninitializedq_int1.c 0936ad2e404c63790cbac6217ec1a656 gcc/testsuite/gcc.target/arm/mve/mve.exp a27c7480ff5cba860dda5da683bb3b87 gcc/testsuite/gcc.target/arm/naked-1.c 292c423c2aa66b03398c922259527367 gcc/testsuite/gcc.target/arm/naked-2.c *************** ef7228203e3de2362184e00a8c156132 gcc/te *** 53121,53127 **** 038b3bb27d1430e5bcaacffe8348eb14 gcc/testsuite/gcc.target/arm/pr69180.c 51f46e9158ad549a6f9079f849c4c10d gcc/testsuite/gcc.target/arm/pr69187.c b1f1919dcfa1287f837de2b937769050 gcc/testsuite/gcc.target/arm/pr69194.c ! ea51ac3985ec65a675e98d7486d1c3fc gcc/testsuite/gcc.target/arm/pr69245.c ecd06975766e392b211a369c6a9a3273 gcc/testsuite/gcc.target/arm/pr69307.c e5aafcaef63ec87ca861c2c3df04f753 gcc/testsuite/gcc.target/arm/pr69614.c 32fee62df6d98765a5508d0d96c9eb65 gcc/testsuite/gcc.target/arm/pr69904.c --- 53406,53412 ---- 038b3bb27d1430e5bcaacffe8348eb14 gcc/testsuite/gcc.target/arm/pr69180.c 51f46e9158ad549a6f9079f849c4c10d gcc/testsuite/gcc.target/arm/pr69187.c b1f1919dcfa1287f837de2b937769050 gcc/testsuite/gcc.target/arm/pr69194.c ! 05e46560368a7df97a4f31249ffebcc7 gcc/testsuite/gcc.target/arm/pr69245.c ecd06975766e392b211a369c6a9a3273 gcc/testsuite/gcc.target/arm/pr69307.c e5aafcaef63ec87ca861c2c3df04f753 gcc/testsuite/gcc.target/arm/pr69614.c 32fee62df6d98765a5508d0d96c9eb65 gcc/testsuite/gcc.target/arm/pr69904.c *************** eb13a55564e5e8fb2982994c3b17a08c gcc/te *** 53169,53175 **** --- 53454,53463 ---- a4dddc54737b0b03cf2909b16a50f905 gcc/testsuite/gcc.target/arm/pr91603.c b9de14b057556565fd0ad59ac1cd4e7e gcc/testsuite/gcc.target/arm/pr91684.c e176eff84ec1966606dbac1ac50fc431 gcc/testsuite/gcc.target/arm/pr91816.c + d82900f431e8901b0c85c6ec6602768b gcc/testsuite/gcc.target/arm/pr95646.c fe5e1dadd9ea1e8cccb81773046e8da9 gcc/testsuite/gcc.target/arm/pr97528.c + 5a0206dfb3c3b92c728997ed8090982f gcc/testsuite/gcc.target/arm/pr97969.c + ec5230c6f63b4a45740b6ae0d8e7b39c gcc/testsuite/gcc.target/arm/pr99977.c a57b4669de94641d7fba5928bf1f8ca0 gcc/testsuite/gcc.target/arm/pragma_arch_attribute.c d1fa915a7ba92f09b7cb8676f62a0974 gcc/testsuite/gcc.target/arm/pragma_arch_attribute_2.c 5184d53e7d6c028c1c22ef106f053ed7 gcc/testsuite/gcc.target/arm/pragma_arch_attribute_3.c *************** d1fa915a7ba92f09b7cb8676f62a0974 gcc/te *** 53177,53184 **** 69a76bf30e898a884452a47f57250f63 gcc/testsuite/gcc.target/arm/pragma_attribute.c 71ad4b41bc5bd0250d3207f161968628 gcc/testsuite/gcc.target/arm/pragma_cde.c 9116a1dcd409b76a55fc08b4255c9d50 gcc/testsuite/gcc.target/arm/pragma_cpp_fma.c ! c9e6771b67edbcdcd59fc69d96f76bd0 gcc/testsuite/gcc.target/arm/pragma_fpu_attribute.c ! 3a06abeb34fdbba108fe536aeccde735 gcc/testsuite/gcc.target/arm/pragma_fpu_attribute_2.c 5b1a9414b404b74eb5cf36760730cf83 gcc/testsuite/gcc.target/arm/pure-code/ffunction-sections.c 77b405f3713bb420ee5af292f1a977dc gcc/testsuite/gcc.target/arm/pure-code/no-casesi.c 7b8330d6a4b33ec1ebe3d2b0ac6a7d6a gcc/testsuite/gcc.target/arm/pure-code/no-literal-pool.c --- 53465,53472 ---- 69a76bf30e898a884452a47f57250f63 gcc/testsuite/gcc.target/arm/pragma_attribute.c 71ad4b41bc5bd0250d3207f161968628 gcc/testsuite/gcc.target/arm/pragma_cde.c 9116a1dcd409b76a55fc08b4255c9d50 gcc/testsuite/gcc.target/arm/pragma_cpp_fma.c ! 90392e1b8e06b6f5c00c86ecf249fd69 gcc/testsuite/gcc.target/arm/pragma_fpu_attribute.c ! a13d496741ee33ca9436673eb16995cf gcc/testsuite/gcc.target/arm/pragma_fpu_attribute_2.c 5b1a9414b404b74eb5cf36760730cf83 gcc/testsuite/gcc.target/arm/pure-code/ffunction-sections.c 77b405f3713bb420ee5af292f1a977dc gcc/testsuite/gcc.target/arm/pure-code/no-casesi.c 7b8330d6a4b33ec1ebe3d2b0ac6a7d6a gcc/testsuite/gcc.target/arm/pure-code/no-literal-pool.c *************** f5710388bf6592fabf21f6aa05044790 gcc/te *** 54333,54338 **** --- 54621,54627 ---- 3391c9dd1dd0dbbac597a660fd5fb010 gcc/testsuite/gcc.target/i386/avx-lrintf-vec.c b4097136b326678c552cf24792f79fe8 gcc/testsuite/gcc.target/i386/avx-mul-1.c 46322bf9b32fe645dd973a6bc8e8b128 gcc/testsuite/gcc.target/i386/avx-os-support.h + 649073dcb552cc5ef8392806cbe23d1c gcc/testsuite/gcc.target/i386/avx-pr102224.c 62aa13560c827f799be1941a2e6da500 gcc/testsuite/gcc.target/i386/avx-pr51581-1.c c437ae63e2540199d8c765547fc407d6 gcc/testsuite/gcc.target/i386/avx-pr51581-2.c b6e744a5c521873cc8be2dbb5f25790d gcc/testsuite/gcc.target/i386/avx-pr57233.c *************** c0dd86eaa0095c2b38908928d5034cf3 gcc/te *** 55999,56004 **** --- 56288,56295 ---- d787a0a2840b56339d3621983623b18d gcc/testsuite/gcc.target/i386/avx512f-or-si-zmm-5.c d35963959d5b010c3b26b967f48d3608 gcc/testsuite/gcc.target/i386/avx512f-or-si-zmm-6.c 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 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 *************** c0ef55ca688d812ce21255d44fb1a7d9 gcc/te *** 56899,56904 **** --- 57190,57196 ---- c1fc8c403bea321e9edbec8f46fe2fd8 gcc/testsuite/gcc.target/i386/avx512vl-or-si-ymm-1.c 5eaf41121795442d2f0736d687d1f1e5 gcc/testsuite/gcc.target/i386/avx512vl-pack-1.c 994c768ea6f011cb5852de30a104bd2e gcc/testsuite/gcc.target/i386/avx512vl-pack-2.c + 94073157c7c18d465b0898342cfaf127 gcc/testsuite/gcc.target/i386/avx512vl-pr101472.c 1ce70da2226efd6f3d5d92c101fb79d9 gcc/testsuite/gcc.target/i386/avx512vl-pr79299-1.c e3cc31b3308cdb56423451f2cd8c2a00 gcc/testsuite/gcc.target/i386/avx512vl-pr79299-2.c 7cff0350d919ed5edc42e841b11e38f2 gcc/testsuite/gcc.target/i386/avx512vl-pr82370.c *************** f91cf99532e69c383485f6be3f62eb99 gcc/te *** 58391,58396 **** --- 58683,58705 ---- b1d366c21cfdcfacf9854ed6cbfd7bc3 gcc/testsuite/gcc.target/i386/pieces-strcpy-1.c 52e52549556117888f85f13d26ced39b gcc/testsuite/gcc.target/i386/pieces-strcpy-2.c 13d06bee88f2ccd2a16effe0c243e61e gcc/testsuite/gcc.target/i386/pow-1.c + f6d11dafd312969f2c744769fa5060e7 gcc/testsuite/gcc.target/i386/pr100182.c + 3c07d29535c0112e7c384c8908011917 gcc/testsuite/gcc.target/i386/pr100342.c + f8c6587e64861b8f769159de826acd76 gcc/testsuite/gcc.target/i386/pr101175.c + 4f610ba3f94dc4f52aa642107694f970 gcc/testsuite/gcc.target/i386/pr102498.c + 34eb3ca8ee784a5cb3c2145b1609e105 gcc/testsuite/gcc.target/i386/pr102761.c + bcf207e15c0d5b9e3168e3c570bc4999 gcc/testsuite/gcc.target/i386/pr103205.c + 5fbee8826b1f4da8d9dd6a2f09f18e0e gcc/testsuite/gcc.target/i386/pr103908.c + 9db2b13a34fc86475d27728a925461c5 gcc/testsuite/gcc.target/i386/pr104446.c + 9afbd8cbff177a7e555fe32de7558c2e gcc/testsuite/gcc.target/i386/pr104451.c + f34a56063b53daa2722dd66e280f5aab gcc/testsuite/gcc.target/i386/pr104453.c + 30d7b1638a5f604ac4353737e0db1816 gcc/testsuite/gcc.target/i386/pr104458.c + a92681d4c2c5095462e23684946fe9fd gcc/testsuite/gcc.target/i386/pr104469.c + 6f32caf69432ac867dd42051bcfa22a8 gcc/testsuite/gcc.target/i386/pr104502.c + 21083ed0382a1c184689d3a9ee1bc7ee gcc/testsuite/gcc.target/i386/pr104637.c + a64b8516e04de39ddebcd66dc046d450 gcc/testsuite/gcc.target/i386/pr104971.c + 3de9ba59994fd09bad053a28eecbc68d gcc/testsuite/gcc.target/i386/pr105123.c + afe42f2264a7583bee62a6e718faeef5 gcc/testsuite/gcc.target/i386/pr105970.c 304b7d185da41754f69656f5bfa7d508 gcc/testsuite/gcc.target/i386/pr11001-memcpy-1.c 7dbe55f1460795545dd744807466a430 gcc/testsuite/gcc.target/i386/pr11001-memcpy-2.c cbe58ae1efc3b97c1019a430e1fedfcb gcc/testsuite/gcc.target/i386/pr11001-memcpy-3.c *************** f353395bccf918949658ea5606b5bc6e gcc/te *** 59270,59277 **** 2969e0a99ac5696cdf2b676f9bebb301 gcc/testsuite/gcc.target/i386/pr70955.c b041f793f29c8dbb81f30cc6cff59540 gcc/testsuite/gcc.target/i386/pr71016.c cdf785a2bc0d7b4e9128691fc978d25e gcc/testsuite/gcc.target/i386/pr71077.c - 7a68252b43e0d3aaf4a0c5f83c62bca0 gcc/testsuite/gcc.target/i386/pr71245-1.c - 6ede6398cab29de5fda736a8c809afd7 gcc/testsuite/gcc.target/i386/pr71245-2.c 2fb9329d1a1eba91cf629cd69a0a2945 gcc/testsuite/gcc.target/i386/pr71321.c d0bd03c535d9acf1fa5c53d9fab89cef gcc/testsuite/gcc.target/i386/pr71346.c 1c394993c347ba5c842359a75dc15aa5 gcc/testsuite/gcc.target/i386/pr71374.c --- 59579,59584 ---- *************** f8ecf4adafb31200f6cb5f02f878203e gcc/te *** 59872,59878 **** --- 60179,60189 ---- 3e550210eceaa9555180fcdc5434cf50 gcc/testsuite/gcc.target/i386/pr98086.c f05a11a90b720489273566f54bf45421 gcc/testsuite/gcc.target/i386/pr98100.c 598c4bf58ece3ffbf0f20347f12676e0 gcc/testsuite/gcc.target/i386/pr98522.c + 83f00d9b70c99bee3a1b1df878dac4cd gcc/testsuite/gcc.target/i386/pr98694.c + 5c90090d1d1e1b7415543965fbde2289 gcc/testsuite/gcc.target/i386/pr99726.c 006bf45011c8adaaea151e1e9bd71662 gcc/testsuite/gcc.target/i386/pr99753.c + 5f031f82b484c0f439288d4926362365 gcc/testsuite/gcc.target/i386/pr99863.c + 939447bef72a36fa24dc61bac7010b1b gcc/testsuite/gcc.target/i386/pr99905.c 24ceb6d5f3f5cde4b9d852839bdb98ae gcc/testsuite/gcc.target/i386/prefetchw-1.c f11f4731c396f099373c033ab016a64f gcc/testsuite/gcc.target/i386/prefetchwt1-1.c 4561455bd0f6ca8ce0b0f477f2897ee2 gcc/testsuite/gcc.target/i386/ptwrite1.c *************** cc8a162617784a2e883a5e726d28ebde gcc/te *** 59989,59995 **** 49bde97b271274cb2bc26697ce2b19be gcc/testsuite/gcc.target/i386/sse-11.c 154fbd4d9cee28f2e7565edb0affd499 gcc/testsuite/gcc.target/i386/sse-12.c 46bc5f9e965ec80faac9437cc4522843 gcc/testsuite/gcc.target/i386/sse-13.c ! f286433f29b51c00fb5909bf8ffe5460 gcc/testsuite/gcc.target/i386/sse-14.c 92ad37b5ad7426d489b1b6f1ba0f41ea gcc/testsuite/gcc.target/i386/sse-15.c 2e7b115c4bd7984925f1a8d17a5faf67 gcc/testsuite/gcc.target/i386/sse-16.c f660e67b22cb44e6a6b38a247b1d78c3 gcc/testsuite/gcc.target/i386/sse-17.c --- 60300,60306 ---- 49bde97b271274cb2bc26697ce2b19be gcc/testsuite/gcc.target/i386/sse-11.c 154fbd4d9cee28f2e7565edb0affd499 gcc/testsuite/gcc.target/i386/sse-12.c 46bc5f9e965ec80faac9437cc4522843 gcc/testsuite/gcc.target/i386/sse-13.c ! 55f72111e4889f618479fe3acfa53018 gcc/testsuite/gcc.target/i386/sse-14.c 92ad37b5ad7426d489b1b6f1ba0f41ea gcc/testsuite/gcc.target/i386/sse-15.c 2e7b115c4bd7984925f1a8d17a5faf67 gcc/testsuite/gcc.target/i386/sse-16.c f660e67b22cb44e6a6b38a247b1d78c3 gcc/testsuite/gcc.target/i386/sse-17.c *************** c54f25d14eb461caec02d191c2115a57 gcc/te *** 62569,62577 **** 1256ac93816d8a1e4a1b5590e2a84582 gcc/testsuite/gcc.target/powerpc/mma-builtin-1.c 3d37afc338716bb9ee2ca06fed6f0f05 gcc/testsuite/gcc.target/powerpc/mma-builtin-2.c 9dd372b54a73f5146abf4b2c46c340e4 gcc/testsuite/gcc.target/powerpc/mma-builtin-3.c ! 1a289e9c372877c9be4845ad8afab3b0 gcc/testsuite/gcc.target/powerpc/mma-builtin-4.c ! a030b6c42d5b1e2f2855367dee56b37f gcc/testsuite/gcc.target/powerpc/mma-builtin-5.c ! ab2a7ea5ea50966110883706974152ea gcc/testsuite/gcc.target/powerpc/mma-builtin-6.c b77c15b5953e3377992dcb71f5ad1d7d gcc/testsuite/gcc.target/powerpc/mma-double-test.c d7d0c674b26c29d4774fd79ed2a0e09c gcc/testsuite/gcc.target/powerpc/mma-single-test.c a271f35c38761fdbb749bf1bec83cfe4 gcc/testsuite/gcc.target/powerpc/mma-supported.c --- 62880,62890 ---- 1256ac93816d8a1e4a1b5590e2a84582 gcc/testsuite/gcc.target/powerpc/mma-builtin-1.c 3d37afc338716bb9ee2ca06fed6f0f05 gcc/testsuite/gcc.target/powerpc/mma-builtin-2.c 9dd372b54a73f5146abf4b2c46c340e4 gcc/testsuite/gcc.target/powerpc/mma-builtin-3.c ! f4cbe6fbc7caba42b9286ef3ca8f8454 gcc/testsuite/gcc.target/powerpc/mma-builtin-4.c ! b94b02f54e2566541edbead974161cd8 gcc/testsuite/gcc.target/powerpc/mma-builtin-5.c ! 3a2dd608a7572f3e1bda6e3d3a145109 gcc/testsuite/gcc.target/powerpc/mma-builtin-6.c ! 2f3b0bbee570abb68e2bf91b3f4ef43d gcc/testsuite/gcc.target/powerpc/mma-builtin-7.c ! 7ff80abf6e1bf3a4c80a83f649959643 gcc/testsuite/gcc.target/powerpc/mma-builtin-8.c b77c15b5953e3377992dcb71f5ad1d7d gcc/testsuite/gcc.target/powerpc/mma-double-test.c d7d0c674b26c29d4774fd79ed2a0e09c gcc/testsuite/gcc.target/powerpc/mma-single-test.c a271f35c38761fdbb749bf1bec83cfe4 gcc/testsuite/gcc.target/powerpc/mma-supported.c *************** e644ef57e549ba6b46da5cb2d302203f gcc/te *** 62768,62773 **** --- 63081,63100 ---- 8d1bb8d348bbbd1468a4518fcfc930da gcc/testsuite/gcc.target/powerpc/ppc64-double-1.c 322275a6e18c464401bb8e7d050b7539 gcc/testsuite/gcc.target/powerpc/ppc64-toc.c a64bd4e47397af3253bc9e8dc2c56780 gcc/testsuite/gcc.target/powerpc/ppu-intrinsics.c + 5ccf50d6af741aec776b2d54411331d5 gcc/testsuite/gcc.target/powerpc/pr100777.c + 93530f0352e114499a2243d7a2a63830 gcc/testsuite/gcc.target/powerpc/pr101129.c + c5b190f8976eee8b644b3fa33d5ebbb2 gcc/testsuite/gcc.target/powerpc/pr101849.c + fef209ac364aa52b3c1bab51422d611c gcc/testsuite/gcc.target/powerpc/pr101985-1.c + bbe41009113780dbcd6527cbec5f943c gcc/testsuite/gcc.target/powerpc/pr101985-2.c + 5392663d9c3769a2d83b13aed765c6eb gcc/testsuite/gcc.target/powerpc/pr102059-4.c + a192830e09e3a3d8478a89f2b2add0ff gcc/testsuite/gcc.target/powerpc/pr102347.c + 0726fc47d5d46d095efa95b874637be7 gcc/testsuite/gcc.target/powerpc/pr102976.c + 20a7942f4601125d17110951f0d9d799 gcc/testsuite/gcc.target/powerpc/pr103627-1.c + 75bf709f259ebd7bb4ea3bb9e4c7a6e3 gcc/testsuite/gcc.target/powerpc/pr103627-2.c + 173204ae2ee9c78ee24b407929800cd8 gcc/testsuite/gcc.target/powerpc/pr103627-3.c + b7339ab4137e4c5175deca053bb790c8 gcc/testsuite/gcc.target/powerpc/pr104208-1.c + 7dff0a95f65947b541c04da0c7b307a5 gcc/testsuite/gcc.target/powerpc/pr104208-2.c + 76860a5a20e1c892c05c24cdc70fe3c2 gcc/testsuite/gcc.target/powerpc/pr104253.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 *************** b393d3f2f044e6fd8f631b7ab2551943 gcc/te *** 63005,63012 **** d86d5375cd27e7c265ce5093d761b62e gcc/testsuite/gcc.target/powerpc/pr87033.c 5979805bab3b13abc55882e86f2cf535 gcc/testsuite/gcc.target/powerpc/pr87466.c ac8ec30b46cfe96eba5cd34342878789 gcc/testsuite/gcc.target/powerpc/pr87496-1.c ! 0a96769b5e11c63c292685789497867e gcc/testsuite/gcc.target/powerpc/pr87496-2.c ! cf1e47fa56707db6216ed5de8f6df09f gcc/testsuite/gcc.target/powerpc/pr87496-3.c 9737131ba70397a6e02d4dc540927ba9 gcc/testsuite/gcc.target/powerpc/pr87507.c a3fcebbcc49f4e8e80184966262e4f7c gcc/testsuite/gcc.target/powerpc/pr87532-mc.c 5fd4bcc0443a583aade647593b461bf0 gcc/testsuite/gcc.target/powerpc/pr87532.c --- 63332,63339 ---- d86d5375cd27e7c265ce5093d761b62e gcc/testsuite/gcc.target/powerpc/pr87033.c 5979805bab3b13abc55882e86f2cf535 gcc/testsuite/gcc.target/powerpc/pr87466.c ac8ec30b46cfe96eba5cd34342878789 gcc/testsuite/gcc.target/powerpc/pr87496-1.c ! 991fc66b041e0aa2c8b134376d9dacdf gcc/testsuite/gcc.target/powerpc/pr87496-2.c ! f18720cbdd0b8efcbfe7252a88d19901 gcc/testsuite/gcc.target/powerpc/pr87496-3.c 9737131ba70397a6e02d4dc540927ba9 gcc/testsuite/gcc.target/powerpc/pr87507.c a3fcebbcc49f4e8e80184966262e4f7c gcc/testsuite/gcc.target/powerpc/pr87532-mc.c 5fd4bcc0443a583aade647593b461bf0 gcc/testsuite/gcc.target/powerpc/pr87532.c *************** fc375fa4611e61db9f6772989772cd97 gcc/te *** 63053,63059 **** --- 63380,63388 ---- acacca4b5662f17d21391b583487172e gcc/testsuite/gcc.target/powerpc/pr96506.c 713c433c1e5c80361a865ab817cd27b1 gcc/testsuite/gcc.target/powerpc/pr96530.c 54d85fa08f775bccdcae07e834cb4364 gcc/testsuite/gcc.target/powerpc/pr96808.c + 167d500d972820e3c619cedabfbf86da gcc/testsuite/gcc.target/powerpc/pr97142.c 213beaa984952c5e9c8741ff42bef29f gcc/testsuite/gcc.target/powerpc/pr97360.c + e2ddd4e82dd7a142609183f7be1ecb7d gcc/testsuite/gcc.target/powerpc/pr98952.c f900d3f1e79811e92ae2e91267891d4a gcc/testsuite/gcc.target/powerpc/pr98959.c 64482d2c5f46fd2fe948c15ae7162cfd gcc/testsuite/gcc.target/powerpc/pragma_misc9.c 98c02b2c2946f882d2b5e41da4b7d78b gcc/testsuite/gcc.target/powerpc/pragma_power6.c *************** f69ed9814aa0739480a17cf1070d4373 gcc/te *** 63853,63858 **** --- 64182,64188 ---- b5552dc4ebe2e10cb2cd9798ba0a1ef5 gcc/testsuite/gcc.target/riscv/pr95252.c d554990de6257eaed21c873a91b78998 gcc/testsuite/gcc.target/riscv/pr95683.c 4a09604ef4cdb81da6aaf6179b4347d1 gcc/testsuite/gcc.target/riscv/pr96759.c + 6f8b3515450502b2f9fe3e7f7f9a02a2 gcc/testsuite/gcc.target/riscv/pr98777.c f14c5181c4869646f5e8c36361c92f46 gcc/testsuite/gcc.target/riscv/pr99702.c f0f91a28596e2dcf0af2dee634ce81cd gcc/testsuite/gcc.target/riscv/predef-1.c a800b0b2c0a7c1b33ad7379a050995d6 gcc/testsuite/gcc.target/riscv/predef-2.c *************** f657a587777cadd240d90267c42183a8 gcc/te *** 63917,63922 **** --- 64247,64253 ---- b496b43e01188107d0277ab22fe7faa6 gcc/testsuite/gcc.target/s390/20140327-1.c f9efcac72c7632def29469b0cbef14cb gcc/testsuite/gcc.target/s390/20150826-1.c 4a96580e145f1c61cef78ba991ab4066 gcc/testsuite/gcc.target/s390/20181024-1.c + 1dabce41016ae8d4d1de9989a3307a73 gcc/testsuite/gcc.target/s390/20211119.c 2a2e7cf581c0ea913bb0cd940e096c96 gcc/testsuite/gcc.target/s390/TI-constants-lra.c 79300a376a7a8fbc10ec913d6f99a928 gcc/testsuite/gcc.target/s390/TI-constants-nolra.c d69a98eeb9d370fcef146a6f7778c59d gcc/testsuite/gcc.target/s390/addr-constraints-1.c *************** dfee7fa2ec55ccfb935c28226ca15fe3 gcc/te *** 64081,64086 **** --- 64412,64418 ---- d5b2bba665576dc0538f9d0bd2142e62 gcc/testsuite/gcc.target/s390/nomemloopunroll-1.c eb96a92710915622b3f65dba4a30955d gcc/testsuite/gcc.target/s390/oscbreak-1.c 25c3bd00fd3d097e42ac8cfc215fd0c4 gcc/testsuite/gcc.target/s390/pfpo.c + 182ebf3677a29bf9b1dbb033505f78dd gcc/testsuite/gcc.target/s390/pr104775.c 765307a040de72f2f4376b7068d68018 gcc/testsuite/gcc.target/s390/pr20927.c 85f31fb9b4b15529205376d3f6fa385c gcc/testsuite/gcc.target/s390/pr24624.c 7adacbd67601dc0845e556e5632cd718 gcc/testsuite/gcc.target/s390/pr27661.c *************** a67458660c2ef2010f128fdaa4faaa86 gcc/te *** 64612,64617 **** --- 64944,64951 ---- e470b0a0d1a056b60c3915a6dfcfd4ae gcc/testsuite/gcc.target/sparc/20170228-1.c bf95d536cbad4db92f264aa740abbbbc gcc/testsuite/gcc.target/sparc/20181129-1.c 3b3205cedf38a33c506ea5c4414d489f gcc/testsuite/gcc.target/sparc/20181129-2.c + 3f593e1ef43ebce309fa2b2033f8be77 gcc/testsuite/gcc.target/sparc/20210917-1.c + 0c6705acc2a655d06368478b465dca00 gcc/testsuite/gcc.target/sparc/20220510-1.c 44373c57181608413fc07f3ec0e2ad6e gcc/testsuite/gcc.target/sparc/align.c 667a877a2fb02d919c4eaaea6fbccbad gcc/testsuite/gcc.target/sparc/array.c 941bd8aa096c3c20415035d9d17cca6e gcc/testsuite/gcc.target/sparc/attr-aligned.c *************** b09307dc50aad69d9ba101705dce41f4 gcc/te *** 65130,65135 **** --- 65464,65470 ---- 9e33eed8bd902cba3d43028b9b091217 gcc/testsuite/gcc.test-framework/gen_directive_tests 8183603295edc4ab5594a8f1eefe2674 gcc/testsuite/gcc.test-framework/test-framework.awk c135142265609c4e1d09920a8656889b gcc/testsuite/gcc.test-framework/test-framework.exp + ba3ec121536606fdf9d34aff37b9da35 gcc/testsuite/gdc.dg/Wpadded.d fdb23cd57d2863bab04b6b83f3a39268 gcc/testsuite/gdc.dg/asan/asan.exp 10180752a9d53fac31ca576e678cdd06 gcc/testsuite/gdc.dg/asan/gdc272.d 2f281da37d8cea486197a86b1f276c02 gcc/testsuite/gdc.dg/asm1.d *************** aeec8ff75316a52def72f86d4bc1708c gcc/te *** 65164,65169 **** --- 65499,65513 ---- d1f5edea46d990e37e829d944fdc2167 gcc/testsuite/gdc.dg/lto/lto.exp 5697b1648a6eb2b43bdfc4a745518da0 gcc/testsuite/gdc.dg/lto/ltotests_0.d bcf14abbb66e47644086ee0018354420 gcc/testsuite/gdc.dg/lto/ltotests_1.d + 1ae8edb9b2cd9747efb9868621aec4e8 gcc/testsuite/gdc.dg/pr100882a.d + 7d27bb4ae013be8b6cb21a42a730353d gcc/testsuite/gdc.dg/pr100882b.d + 167004b1d3ea4a1c36668f029fbe4290 gcc/testsuite/gdc.dg/pr100882c.d + c0f2db1fcb83cbb41fda8295889368ff gcc/testsuite/gdc.dg/pr100882d.d + 16bbee694aa77823539b7b517bad4c50 gcc/testsuite/gdc.dg/pr100967.d + 740e20f8b4aa9d31c7412fbd3b58d4fb gcc/testsuite/gdc.dg/pr101127a.d + 1913e638608dc57b978438a45ade3c4f gcc/testsuite/gdc.dg/pr101127b.d + 874906b0c6afe60dafbbc739053ac4eb gcc/testsuite/gdc.dg/pr101490.d + 13e2f7b1a821d0fa1089525b3df15479 gcc/testsuite/gdc.dg/pr101640.d d32aa8ed5ea10931be4ddb5bb9e863d8 gcc/testsuite/gdc.dg/pr89017.d 53fa8db94d4ca3fc9ba83769733dc0e7 gcc/testsuite/gdc.dg/pr89041.d 6c316b13f71ea31fcada56b58a41ebd1 gcc/testsuite/gdc.dg/pr89042a.d *************** b62ff9f99e07b6dbb56f221a56f0b7ab gcc/te *** 65193,65202 **** --- 65537,65548 ---- eb911ca49c3c33021dd97064b0459923 gcc/testsuite/gdc.dg/pr96301a.d 6f5ae39580efa1de2679c8912e82e1b8 gcc/testsuite/gdc.dg/pr96301b.d 7880bdba7c166bb0d5af9d5a4530b438 gcc/testsuite/gdc.dg/pr96301c.d + 91aeadb49207b8ef8bedd4c016c1b443 gcc/testsuite/gdc.dg/pr96435.d dc97b4112b134cae3d15aab92424d97a gcc/testsuite/gdc.dg/pr96924.d b663ef6196ae4bb84069ca545fdffaa5 gcc/testsuite/gdc.dg/pr97843.d 69b6b7adcb2ad72055a4fca88afe3f41 gcc/testsuite/gdc.dg/pr97889.d 474f1f2b9c5476fcfd2ee0ed2db833f0 gcc/testsuite/gdc.dg/pr98277.d + cbe01bd2f79e7ab3310ed946deebeec0 gcc/testsuite/gdc.dg/pr98457.d 9119d0ec3d943f148ead051e9149fcd0 gcc/testsuite/gdc.dg/runnable.d 7039ea5d3f34502d4ad2ebf20bbd078e gcc/testsuite/gdc.dg/runnable2.d f8ff25c8358ba138bb7e92bed57a1406 gcc/testsuite/gdc.dg/simd.d *************** f8ff25c8358ba138bb7e92bed57a1406 gcc/te *** 65205,65211 **** 310f79be9999b0b9e22f7cfbfe79f71d gcc/testsuite/gdc.test/README.gcc ab3d1adc569f350b1ab3f64a690fa774 gcc/testsuite/gdc.test/compilable/99bottles.d 7e650360bd1bc425bba2aa151bb9ee13 gcc/testsuite/gdc.test/compilable/a3682.d ! 9f72a4c176620fb987736b4a6c390f2e gcc/testsuite/gdc.test/compilable/aggr_alignment.d beddbf81ccc1e52ee7fa201b22781d91 gcc/testsuite/gdc.test/compilable/aliasdecl.d c830eb21b0dd96c9b8d314d8bbdf13b3 gcc/testsuite/gdc.test/compilable/alignment.d 013ddc04571e4401d097e303967ae442 gcc/testsuite/gdc.test/compilable/art4769.d --- 65551,65557 ---- 310f79be9999b0b9e22f7cfbfe79f71d gcc/testsuite/gdc.test/README.gcc ab3d1adc569f350b1ab3f64a690fa774 gcc/testsuite/gdc.test/compilable/99bottles.d 7e650360bd1bc425bba2aa151bb9ee13 gcc/testsuite/gdc.test/compilable/a3682.d ! fe92e980839f07bf95701e96735f857b gcc/testsuite/gdc.test/compilable/aggr_alignment.d beddbf81ccc1e52ee7fa201b22781d91 gcc/testsuite/gdc.test/compilable/aliasdecl.d c830eb21b0dd96c9b8d314d8bbdf13b3 gcc/testsuite/gdc.test/compilable/alignment.d 013ddc04571e4401d097e303967ae442 gcc/testsuite/gdc.test/compilable/art4769.d *************** ef649aba680526d48bc3e69760b621f2 gcc/te *** 65223,65234 **** 1a88a6c51e44c3714508bdee2b346151 gcc/testsuite/gdc.test/compilable/b16967.d 8982f69fd14c58a5dba7832efe5675f8 gcc/testsuite/gdc.test/compilable/b16976.d 57d4e74913d1d58f85619152627c9d6d gcc/testsuite/gdc.test/compilable/b17111.d 1def44638ab23277ee8a3cbef121f28b gcc/testsuite/gdc.test/compilable/b33.d 286e654567f89de0a3605032db35f623 gcc/testsuite/gdc.test/compilable/b6227.d 6a76da8b7b49ec37b8f02315a9b5bdd9 gcc/testsuite/gdc.test/compilable/b6395.d 91312b385ab5eae660ff874edde30f1b gcc/testsuite/gdc.test/compilable/b6400.d 225f324f4744b9f862b07708e1d60547 gcc/testsuite/gdc.test/compilable/b9490.d ! dee0f822a13e4056b5394870a7c74761 gcc/testsuite/gdc.test/compilable/betterCarray.d 7021d1651fabe6e446f09a6e5c53962f gcc/testsuite/gdc.test/compilable/betterCswitch.d 0aa7e577ae4c165086acff2ed3c6759e gcc/testsuite/gdc.test/compilable/bug11735.d fbecccee350c9b5a8815a306c8c7a540 gcc/testsuite/gdc.test/compilable/bug6963.d --- 65569,65581 ---- 1a88a6c51e44c3714508bdee2b346151 gcc/testsuite/gdc.test/compilable/b16967.d 8982f69fd14c58a5dba7832efe5675f8 gcc/testsuite/gdc.test/compilable/b16976.d 57d4e74913d1d58f85619152627c9d6d gcc/testsuite/gdc.test/compilable/b17111.d + 985cbf872a2f9249c9e9c78338b0f501 gcc/testsuite/gdc.test/compilable/b19002.d 1def44638ab23277ee8a3cbef121f28b gcc/testsuite/gdc.test/compilable/b33.d 286e654567f89de0a3605032db35f623 gcc/testsuite/gdc.test/compilable/b6227.d 6a76da8b7b49ec37b8f02315a9b5bdd9 gcc/testsuite/gdc.test/compilable/b6395.d 91312b385ab5eae660ff874edde30f1b gcc/testsuite/gdc.test/compilable/b6400.d 225f324f4744b9f862b07708e1d60547 gcc/testsuite/gdc.test/compilable/b9490.d ! 05bd563df07dd7a5cae7c595d94d80de gcc/testsuite/gdc.test/compilable/betterCarray.d 7021d1651fabe6e446f09a6e5c53962f gcc/testsuite/gdc.test/compilable/betterCswitch.d 0aa7e577ae4c165086acff2ed3c6759e gcc/testsuite/gdc.test/compilable/bug11735.d fbecccee350c9b5a8815a306c8c7a540 gcc/testsuite/gdc.test/compilable/bug6963.d *************** afe402733aa720a2cd8e8cc8e693949d gcc/te *** 65338,65343 **** --- 65685,65691 ---- 96b3d751c92c490a3213da0030540e86 gcc/testsuite/gdc.test/compilable/extra-files/imp12624.d 038135fba76af92f75037b2c58ae885d gcc/testsuite/gdc.test/compilable/extra-files/imp9057.d 8568ce2d1753427d734d5733834e6693 gcc/testsuite/gdc.test/compilable/extra-files/imp9057_2.d + 84bebd871a01f556191f22e1fa9eace9 gcc/testsuite/gdc.test/compilable/extra-files/minimal/object.d fbb312d5cafb03938994c428c2ed63d8 gcc/testsuite/gdc.test/compilable/extra-files/pkgDIP37/datetime/common.d 5bd3017f1c6fbad18d3e45497e31951c gcc/testsuite/gdc.test/compilable/extra-files/pkgDIP37/datetime/package.d 40b72cf24dc3d22d4d5ef70f6c1f8ec8 gcc/testsuite/gdc.test/compilable/extra-files/pkgDIP37/test17629/common.di *************** e1b2201bb7bef13edd5b1dd62a016069 gcc/te *** 65544,65551 **** --- 65892,65901 ---- 2f1dca8de92811ccae257ea9c1e85b24 gcc/testsuite/gdc.test/compilable/imports/udamodule2a.d d9ebf67fd237bed148f1afc04cc9917e gcc/testsuite/gdc.test/compilable/imports/wax16798.d 3bac518e67dacd4d7b58e38a1d2f91d4 gcc/testsuite/gdc.test/compilable/interpret3.d + 06030303622e394ed8c4697f73259c9e gcc/testsuite/gdc.test/compilable/interpret5.d c6aab91c4e15d19895112c1cb7a06bdf gcc/testsuite/gdc.test/compilable/json.d 7407813737455f3fdad5c5a54a3a726d gcc/testsuite/gdc.test/compilable/line.d + 0b7708bb7ff6eae9428be2b56c06e0fd gcc/testsuite/gdc.test/compilable/minimal3.d a3c24afe0733ea3b2f5afb6b064e3a71 gcc/testsuite/gdc.test/compilable/noderef.d 7ed5841c3784701ea3f0a4934090ba05 gcc/testsuite/gdc.test/compilable/nogc.d c87c15c1a87df8b9292800c22fb9d727 gcc/testsuite/gdc.test/compilable/pr9471.d *************** bb9e006cebe601f91fae1b967d929f57 gcc/te *** 65562,65568 **** acaf18bcac4ac998c5f58d4184525590 gcc/testsuite/gdc.test/compilable/riia_ctor.d 36a6e36ee88f5104ea461e25c99691b8 gcc/testsuite/gdc.test/compilable/scope.d fd1eeff8f6c846eeb29e20921f5da298 gcc/testsuite/gdc.test/compilable/shared_destructor.d ! 38a1165ee7817f15153ca8634a2f0863 gcc/testsuite/gdc.test/compilable/staticforeach.d 96eaa13ac0afae6fd923558368cfb953 gcc/testsuite/gdc.test/compilable/sw_transition_complex.d 7d0b68e315fb44e6b9b125818d03e7fc gcc/testsuite/gdc.test/compilable/sw_transition_field.d 420fee37216b517612bf9e0d3862dea6 gcc/testsuite/gdc.test/compilable/sw_transition_tls.d --- 65912,65918 ---- acaf18bcac4ac998c5f58d4184525590 gcc/testsuite/gdc.test/compilable/riia_ctor.d 36a6e36ee88f5104ea461e25c99691b8 gcc/testsuite/gdc.test/compilable/scope.d fd1eeff8f6c846eeb29e20921f5da298 gcc/testsuite/gdc.test/compilable/shared_destructor.d ! 8a056a04be09d165b07030591bd120ef gcc/testsuite/gdc.test/compilable/staticforeach.d 96eaa13ac0afae6fd923558368cfb953 gcc/testsuite/gdc.test/compilable/sw_transition_complex.d 7d0b68e315fb44e6b9b125818d03e7fc gcc/testsuite/gdc.test/compilable/sw_transition_field.d 420fee37216b517612bf9e0d3862dea6 gcc/testsuite/gdc.test/compilable/sw_transition_tls.d *************** bd3b792f2e9fae4293f32a0195335936 gcc/te *** 65705,65710 **** --- 66055,66063 ---- 486de3c5e0f7578f63bb5307aa28bab2 gcc/testsuite/gdc.test/compilable/test21299b.d f7ebbab88f0a4f86e71b06e130f593ee gcc/testsuite/gdc.test/compilable/test21299c.d effd503ab143f07a377f69a6abd2e2ab gcc/testsuite/gdc.test/compilable/test21299d.d + 0f65bb2b07e0bc8dcb7e5d89eaf5b3f7 gcc/testsuite/gdc.test/compilable/test21742.d + f8ec0845cd2590e50d27071453701fb7 gcc/testsuite/gdc.test/compilable/test22006.d + 01b0e8acc140f229c41fe59a55df5574 gcc/testsuite/gdc.test/compilable/test22133.d 8bbe6fdb201585c810b1ed76e34ddba3 gcc/testsuite/gdc.test/compilable/test25.d 089e65013864f2a6266955ee32c413a9 gcc/testsuite/gdc.test/compilable/test2991.d e1042e9f6638c3d67840ae4db9908d15 gcc/testsuite/gdc.test/compilable/test313a.d *************** e39d851e2d6df0fb0a228237d9973bdc gcc/te *** 65833,65838 **** --- 66186,66192 ---- 85fb914b754fd85993fe5ce8255c6ba3 gcc/testsuite/gdc.test/compilable/vgc3.d dfe768f4e63e4d90a410307584a8c1f1 gcc/testsuite/gdc.test/compilable/warn3882.d 165b5fdab9bfa182ce553a03584f5525 gcc/testsuite/gdc.test/fail_compilation/aacmp10381.d + e309e5ed61e9e05b734a04331138794f gcc/testsuite/gdc.test/fail_compilation/b12504.d cadd7253a279f5f74bd2c2088d510cde gcc/testsuite/gdc.test/fail_compilation/b15875.d 7ea1134efd7ddebf95db3eff5f8333d7 gcc/testsuite/gdc.test/fail_compilation/b17285.d 51a73ecc50fe699c938601ae63a650f0 gcc/testsuite/gdc.test/fail_compilation/b19691.d *************** f28f753c50d24ae45fd4aacf60d88ef4 gcc/te *** 65947,65953 **** a9ca2790f3f9f89b6618bc2ea3564149 gcc/testsuite/gdc.test/fail_compilation/diag15713.d 6da4348cf0dd0ce7e748c85e7d714a33 gcc/testsuite/gdc.test/fail_compilation/diag15974.d ea865e595b6b6b9bc2d5067d26b4e2df gcc/testsuite/gdc.test/fail_compilation/diag16499.d ! f8270d7b49838f6b4687f100d4e69d1f gcc/testsuite/gdc.test/fail_compilation/diag16976.d ae8ac2276991a9f8bb3af183489e1e1d gcc/testsuite/gdc.test/fail_compilation/diag16977.d 0a1c82490406def349d39c7ddbe4d795 gcc/testsuite/gdc.test/fail_compilation/diag1730.d 32e09f9ae076959b7f2b34cd846b0c73 gcc/testsuite/gdc.test/fail_compilation/diag2452.d --- 66301,66307 ---- a9ca2790f3f9f89b6618bc2ea3564149 gcc/testsuite/gdc.test/fail_compilation/diag15713.d 6da4348cf0dd0ce7e748c85e7d714a33 gcc/testsuite/gdc.test/fail_compilation/diag15974.d ea865e595b6b6b9bc2d5067d26b4e2df gcc/testsuite/gdc.test/fail_compilation/diag16499.d ! ca21748c3c8002f58049b5f03aa8eb8b gcc/testsuite/gdc.test/fail_compilation/diag16976.d ae8ac2276991a9f8bb3af183489e1e1d gcc/testsuite/gdc.test/fail_compilation/diag16977.d 0a1c82490406def349d39c7ddbe4d795 gcc/testsuite/gdc.test/fail_compilation/diag1730.d 32e09f9ae076959b7f2b34cd846b0c73 gcc/testsuite/gdc.test/fail_compilation/diag2452.d *************** e434633765cd0c939e270836040c991a gcc/te *** 66085,66091 **** 15faea3078336662daa9d318f2493869 gcc/testsuite/gdc.test/fail_compilation/fail11591b.d 418bcca9bf1e37cc8dbe037cdd4b3463 gcc/testsuite/gdc.test/fail_compilation/fail116.d acba3cd566c498acc0a4cc9dea839064 gcc/testsuite/gdc.test/fail_compilation/fail11653.d ! 36d6f5e634bc3889b0e414296904643c gcc/testsuite/gdc.test/fail_compilation/fail117.d 77e91dafc0efcec54d5a5c03d461963a gcc/testsuite/gdc.test/fail_compilation/fail11717.d f4a6ef5aafe2a4002635a6e4959d92fc gcc/testsuite/gdc.test/fail_compilation/fail11720.d a691b7855ffa66fe0d4d016977d36507 gcc/testsuite/gdc.test/fail_compilation/fail11746.d --- 66439,66445 ---- 15faea3078336662daa9d318f2493869 gcc/testsuite/gdc.test/fail_compilation/fail11591b.d 418bcca9bf1e37cc8dbe037cdd4b3463 gcc/testsuite/gdc.test/fail_compilation/fail116.d acba3cd566c498acc0a4cc9dea839064 gcc/testsuite/gdc.test/fail_compilation/fail11653.d ! 579d106852d5aefc9ca94fb20e364bef gcc/testsuite/gdc.test/fail_compilation/fail117.d 77e91dafc0efcec54d5a5c03d461963a gcc/testsuite/gdc.test/fail_compilation/fail11717.d f4a6ef5aafe2a4002635a6e4959d92fc gcc/testsuite/gdc.test/fail_compilation/fail11720.d a691b7855ffa66fe0d4d016977d36507 gcc/testsuite/gdc.test/fail_compilation/fail11746.d *************** fb44509087d96cafd81f6b3914fa210d gcc/te *** 66264,66270 **** --- 66618,66627 ---- 1c2214d02026045648eb72626934c793 gcc/testsuite/gdc.test/fail_compilation/fail2195.d 25aa1006320654cdd4ef271b53a76a69 gcc/testsuite/gdc.test/fail_compilation/fail22.d 4fb4e3729bce12b1c71a831a963af935 gcc/testsuite/gdc.test/fail_compilation/fail220.d + 24f4c3c3fa945ca54c802bc7b4fc9976 gcc/testsuite/gdc.test/fail_compilation/fail22006.d cbf4cc7e1f96260b11e9acc29bd9dc12 gcc/testsuite/gdc.test/fail_compilation/fail221.d + 0bb50b641805b9fc2f72587a6693c9dc gcc/testsuite/gdc.test/fail_compilation/fail22133.d + 905e47894d7c0d03a0db65423e4e8848 gcc/testsuite/gdc.test/fail_compilation/fail22144.d 7f7a0dac0afcfc920bdff662146ff101 gcc/testsuite/gdc.test/fail_compilation/fail222.d 0b9ee853ad7e4570d30a13257081f9bd gcc/testsuite/gdc.test/fail_compilation/fail223.d 2dc7de709a4a362b91e462b2499243bc gcc/testsuite/gdc.test/fail_compilation/fail224.d *************** ca8c7594c80997a194fd7b1c7a8f83e4 gcc/te *** 66279,66286 **** be2aed2168f2bd58171a55c63547ad22 gcc/testsuite/gdc.test/fail_compilation/fail236.d d08fd87f7e32a14ee102500b0f9531f1 gcc/testsuite/gdc.test/fail_compilation/fail2361.d 70717553d9d07c6f6efed75e909e1cbc gcc/testsuite/gdc.test/fail_compilation/fail237.d ! 2f16b13f19f5a497b3cf934f4d948953 gcc/testsuite/gdc.test/fail_compilation/fail238_m32.d ! 3eb2233732c97c5f7707bd311998a60f gcc/testsuite/gdc.test/fail_compilation/fail238_m64.d b4be4d504144b3b9cd23d8658101dfef gcc/testsuite/gdc.test/fail_compilation/fail239.d 26d78e146ee928dc36095d4a447ba1e5 gcc/testsuite/gdc.test/fail_compilation/fail24.d 16ec290aa427898668de3f21de843191 gcc/testsuite/gdc.test/fail_compilation/fail240.d --- 66636,66643 ---- be2aed2168f2bd58171a55c63547ad22 gcc/testsuite/gdc.test/fail_compilation/fail236.d d08fd87f7e32a14ee102500b0f9531f1 gcc/testsuite/gdc.test/fail_compilation/fail2361.d 70717553d9d07c6f6efed75e909e1cbc gcc/testsuite/gdc.test/fail_compilation/fail237.d ! 60acf6a84c5f6335c16c712c2781edf7 gcc/testsuite/gdc.test/fail_compilation/fail238_m32.d ! 79189a0d0858112c09a8435c5306fa31 gcc/testsuite/gdc.test/fail_compilation/fail238_m64.d b4be4d504144b3b9cd23d8658101dfef gcc/testsuite/gdc.test/fail_compilation/fail239.d 26d78e146ee928dc36095d4a447ba1e5 gcc/testsuite/gdc.test/fail_compilation/fail24.d 16ec290aa427898668de3f21de843191 gcc/testsuite/gdc.test/fail_compilation/fail240.d *************** cffce24c02803efae2a3ccc969cdf4f6 gcc/te *** 66498,66511 **** b76922cd751e594db4984440f5dcd684 gcc/testsuite/gdc.test/fail_compilation/fail73.d 88297bf224555eeda1d0d609d978745a gcc/testsuite/gdc.test/fail_compilation/fail7369.d 501f2b3778ebd6b2e5493a0fa9a7f20d gcc/testsuite/gdc.test/fail_compilation/fail74.d ! e41961644f77f8b6b5da460375f2e3ab gcc/testsuite/gdc.test/fail_compilation/fail7424b.d ! dc87bb47fc7b9be70985ec0fc4bb5001 gcc/testsuite/gdc.test/fail_compilation/fail7424c.d ! b6da219487637e0f61769c66bb263db4 gcc/testsuite/gdc.test/fail_compilation/fail7424d.d ! 4b42ea0a33c04943948693bd9b294ffb gcc/testsuite/gdc.test/fail_compilation/fail7424e.d ! 169850ebe4ccb089c2523db1917fffb6 gcc/testsuite/gdc.test/fail_compilation/fail7424f.d ! 0b28b626fc104ca09a5cc945ee5e5bca gcc/testsuite/gdc.test/fail_compilation/fail7424g.d ! d8684d4c60fc979c27046f9fa8be49b0 gcc/testsuite/gdc.test/fail_compilation/fail7424h.d ! b19dbcc0a7a5aa58c3bfd9fb731cd6b0 gcc/testsuite/gdc.test/fail_compilation/fail7424i.d 9bcf0d7f8dc25ee08d2b358feeecce5b gcc/testsuite/gdc.test/fail_compilation/fail75.d 265ef58ed84e295d081e5a9e9456e987 gcc/testsuite/gdc.test/fail_compilation/fail7524a.d 22fbb28a456a178eb7ffcf04c4d25ded gcc/testsuite/gdc.test/fail_compilation/fail7524b.d --- 66855,66868 ---- b76922cd751e594db4984440f5dcd684 gcc/testsuite/gdc.test/fail_compilation/fail73.d 88297bf224555eeda1d0d609d978745a gcc/testsuite/gdc.test/fail_compilation/fail7369.d 501f2b3778ebd6b2e5493a0fa9a7f20d gcc/testsuite/gdc.test/fail_compilation/fail74.d ! a0982e24c691ef64752d4fc792f9a78b gcc/testsuite/gdc.test/fail_compilation/fail7424b.d ! 5ba17d6b3c57ac3cded922340de60d98 gcc/testsuite/gdc.test/fail_compilation/fail7424c.d ! 659bad81c1b14cef227af0d1921a175b gcc/testsuite/gdc.test/fail_compilation/fail7424d.d ! e0456fd32812ef7ee4a89c422fbb390a gcc/testsuite/gdc.test/fail_compilation/fail7424e.d ! 87188b49fab83f6fd522d3ee3a123340 gcc/testsuite/gdc.test/fail_compilation/fail7424f.d ! 78659d17d48e11fb69ff7a9913460d16 gcc/testsuite/gdc.test/fail_compilation/fail7424g.d ! 71cf4df7a6b13271d3d6f342458eb722 gcc/testsuite/gdc.test/fail_compilation/fail7424h.d ! a3f58cf6956b9c3abc935a11b09ebf15 gcc/testsuite/gdc.test/fail_compilation/fail7424i.d 9bcf0d7f8dc25ee08d2b358feeecce5b gcc/testsuite/gdc.test/fail_compilation/fail75.d 265ef58ed84e295d081e5a9e9456e987 gcc/testsuite/gdc.test/fail_compilation/fail7524a.d 22fbb28a456a178eb7ffcf04c4d25ded gcc/testsuite/gdc.test/fail_compilation/fail7524b.d *************** e60fc009c6fa0e6353822f7650fc524e gcc/te *** 66564,66570 **** 54db7d18f58aba432d47f6a801da2392 gcc/testsuite/gdc.test/fail_compilation/fail97.d 77704d558eb48472bb54bce5a62c0796 gcc/testsuite/gdc.test/fail_compilation/fail9710.d 791ce9351af21b77b654e675cb845628 gcc/testsuite/gdc.test/fail_compilation/fail9735.d ! 15c87114541c124a5a979c6ad13ec326 gcc/testsuite/gdc.test/fail_compilation/fail9766.d 1eeed95072caeba8be3889c2b93439f1 gcc/testsuite/gdc.test/fail_compilation/fail9773.d abc82347eaa25458a588e16c9a1500af gcc/testsuite/gdc.test/fail_compilation/fail9790.d ba9fce21801162f260b3ae82c57b2b2d gcc/testsuite/gdc.test/fail_compilation/fail98.d --- 66921,66927 ---- 54db7d18f58aba432d47f6a801da2392 gcc/testsuite/gdc.test/fail_compilation/fail97.d 77704d558eb48472bb54bce5a62c0796 gcc/testsuite/gdc.test/fail_compilation/fail9710.d 791ce9351af21b77b654e675cb845628 gcc/testsuite/gdc.test/fail_compilation/fail9735.d ! 76d276afce2d8fac06f34565a1958c89 gcc/testsuite/gdc.test/fail_compilation/fail9766.d 1eeed95072caeba8be3889c2b93439f1 gcc/testsuite/gdc.test/fail_compilation/fail9773.d abc82347eaa25458a588e16c9a1500af gcc/testsuite/gdc.test/fail_compilation/fail9790.d ba9fce21801162f260b3ae82c57b2b2d gcc/testsuite/gdc.test/fail_compilation/fail98.d *************** fe4c1de33e271d84bfbb7ed29d95614c gcc/te *** 66759,66765 **** 5a251eea5223535f2e71d45dc066aaa9 gcc/testsuite/gdc.test/fail_compilation/ice9284.d 5c1b7a696de91f0fac6d8de5c8e96d1d gcc/testsuite/gdc.test/fail_compilation/ice9291.d eb958bf96f73f43ebebbbf3f30975aec gcc/testsuite/gdc.test/fail_compilation/ice9338.d ! 9c0a38e2d1493c4f72323692132e898c gcc/testsuite/gdc.test/fail_compilation/ice9406.d dc5e90f888b5c961fe7d07cc48e93ef4 gcc/testsuite/gdc.test/fail_compilation/ice9439.d fc0358454e35b0c03980ee42d4b5615c gcc/testsuite/gdc.test/fail_compilation/ice9494.d c79b288c25f545c0f3164fb2786f3a64 gcc/testsuite/gdc.test/fail_compilation/ice9540.d --- 67116,67122 ---- 5a251eea5223535f2e71d45dc066aaa9 gcc/testsuite/gdc.test/fail_compilation/ice9284.d 5c1b7a696de91f0fac6d8de5c8e96d1d gcc/testsuite/gdc.test/fail_compilation/ice9291.d eb958bf96f73f43ebebbbf3f30975aec gcc/testsuite/gdc.test/fail_compilation/ice9338.d ! af5221c169864139df80561cf6490347 gcc/testsuite/gdc.test/fail_compilation/ice9406.d dc5e90f888b5c961fe7d07cc48e93ef4 gcc/testsuite/gdc.test/fail_compilation/ice9439.d fc0358454e35b0c03980ee42d4b5615c gcc/testsuite/gdc.test/fail_compilation/ice9494.d c79b288c25f545c0f3164fb2786f3a64 gcc/testsuite/gdc.test/fail_compilation/ice9540.d *************** acb6680b2a94bc2215e473ce3156efd2 gcc/te *** 66973,66978 **** --- 67330,67337 ---- a7a660644aa3a898b18641bb0128e405 gcc/testsuite/gdc.test/fail_compilation/test18312.d 67abd3b15509154f2ad168138e069892 gcc/testsuite/gdc.test/fail_compilation/test19608.d a2dfda31aa6bb8862b349db8dd7c06f0 gcc/testsuite/gdc.test/fail_compilation/test21164.d + 38df04b25892319b1dd1980583e5b621 gcc/testsuite/gdc.test/fail_compilation/test21927.d + bcc6ccdea767e7f980449fdbbf3dd174 gcc/testsuite/gdc.test/fail_compilation/test21939.d 0cedb3e9f07ed5c04f144df0907f77a2 gcc/testsuite/gdc.test/fail_compilation/test314.d 465b130426028cac7c9bb32cf2f4fdee gcc/testsuite/gdc.test/fail_compilation/test4682.d 5e3c07e144e8f8d3dc6a9bd044054a82 gcc/testsuite/gdc.test/fail_compilation/test4682a.d *************** e610c44a50486d89cefb12161b0f892e gcc/te *** 67525,67530 **** --- 67884,67890 ---- 329e9e80c60ab998e37a9ac1bd8c51d6 gcc/testsuite/gfortran.dg/PR37039.f90 e81a681901aa58d870e549b414327a20 gcc/testsuite/gfortran.dg/PR40660.f90 264e3819dac395c8ef1f19270db55463 gcc/testsuite/gfortran.dg/PR49268.f90 + cf9357967669d1b743e4aad7ef5ee3c1 gcc/testsuite/gfortran.dg/PR82376.f90 583d04568695255545c22fd212ce5940 gcc/testsuite/gfortran.dg/PR90350.f90 5dc95d72848e7d5b3c56ed9e2b800fb3 gcc/testsuite/gfortran.dg/Wall.f90 d4b81cf21855418328fc275b64177b54 gcc/testsuite/gfortran.dg/Wno-all.f90 *************** fbf6eb41453bed2d7b01d6d3ecd3b075 gcc/te *** 67642,67647 **** --- 68002,68008 ---- 39525fca12dae051a4414dad3ab2cb02 gcc/testsuite/gfortran.dg/alloc_comp_scalar_1.f90 243cbfa77a9448c9019b236137e7803d gcc/testsuite/gfortran.dg/alloc_comp_std.f90 909cf7d56a64fc559ec64c2bb71d1197 gcc/testsuite/gfortran.dg/alloc_comp_transformational_1.f90 + 6ad12324ccb5fbf1f5f93c86d22f4ca4 gcc/testsuite/gfortran.dg/alloc_deferred_comp_1.f90 c59ad781dee7ec8e48a5f7ca04827100 gcc/testsuite/gfortran.dg/allocatable_dummy_1.f90 56cdd5c6ada96e8035ed20712fda44d5 gcc/testsuite/gfortran.dg/allocatable_dummy_2.f90 b44c3949481c974b2c6896675c16886c gcc/testsuite/gfortran.dg/allocatable_dummy_3.f90 *************** dbfad5e8b5cf874428e1b4374f3f75e1 gcc/te *** 67802,67807 **** --- 68163,68169 ---- 3735cba3a47ed06a22c4e38fe041b8d7 gcc/testsuite/gfortran.dg/argument_checking_22.f90 cb8920b39d43f8d36d7c87cd6ce3188a gcc/testsuite/gfortran.dg/argument_checking_23.f90 4696d0b0990f3672f510ad45684ab381 gcc/testsuite/gfortran.dg/argument_checking_24.f90 + e96279b8586c27726b6d13e5aef5f5ce gcc/testsuite/gfortran.dg/argument_checking_25.f90 9420e2390509236501a51aceaffd8fec gcc/testsuite/gfortran.dg/argument_checking_3.f90 ca22fc708f8e1b6425943105c693f41e gcc/testsuite/gfortran.dg/argument_checking_4.f90 6ef91b131477d21bf8c75369daea1d04 gcc/testsuite/gfortran.dg/argument_checking_5.f90 *************** c8e89c3bb1a8878396e32769b9a78d05 gcc/te *** 67874,67879 **** --- 68236,68242 ---- 1ce7c326ac35602dfab388e47338c640 gcc/testsuite/gfortran.dg/array_constructor_51.f90 74902cf57199c682dc3775323dd67fe3 gcc/testsuite/gfortran.dg/array_constructor_52.f90 2cd50431749fd2782a60804098abc805 gcc/testsuite/gfortran.dg/array_constructor_53.f90 + 0f86c84a8fd0787aab2aa7e4dd6ac377 gcc/testsuite/gfortran.dg/array_constructor_54.f90 3c35c0aa8a8229010e90452ed87d7792 gcc/testsuite/gfortran.dg/array_constructor_6.f90 d3bb011093e16f988efba6816262fb16 gcc/testsuite/gfortran.dg/array_constructor_7.f90 ae5f56f53be9d3bbc6c562e48080a252 gcc/testsuite/gfortran.dg/array_constructor_8.f90 *************** ca5ed9b7a4b086d732df1a505d87813b gcc/te *** 67951,67956 **** --- 68314,68321 ---- d6fad859ae9f254219fe0b62c52472a0 gcc/testsuite/gfortran.dg/arrayio_9.f90 a7a4d71734bf9559e09017fe4616e065 gcc/testsuite/gfortran.dg/arrayio_derived_1.f90 2b2c726e08ba1c26507c7392e63e1029 gcc/testsuite/gfortran.dg/arrayio_derived_2.f90 + 3b8425a2f59699b47aac6da29c11aba9 gcc/testsuite/gfortran.dg/asan_associate_58.f90 + e9f58df1de071d2b106b16b3af8f6764 gcc/testsuite/gfortran.dg/asan_associate_59.f90 28bbca8fc062ad301c676d4eb94d000d gcc/testsuite/gfortran.dg/assign-debug.f90 7ad5faf60f3a1cebebfbb2c9e52516d7 gcc/testsuite/gfortran.dg/assign.f90 4fd44d78ecb3264e1dd3d6bbb0ca8ea6 gcc/testsuite/gfortran.dg/assign_1.f90 *************** c73b6100086b4db74c5f70aa2b7a9af6 gcc/te *** 68017,68022 **** --- 68382,68391 ---- 72c822258582360198ac915c9b7de7d6 gcc/testsuite/gfortran.dg/associate_51.f90 9227f9deb3946ff1f97accf4b6250ac7 gcc/testsuite/gfortran.dg/associate_52.f90 c00a8dd4766b03f7af8034f983b17dae gcc/testsuite/gfortran.dg/associate_53.f90 + 13a1be9babd60d4e08197194fd394d19 gcc/testsuite/gfortran.dg/associate_54.f90 + a33adc54f6651cbed7e49f420e779c05 gcc/testsuite/gfortran.dg/associate_55.f90 + e266ed6fc3d13470e97d022451deea4e gcc/testsuite/gfortran.dg/associate_56.f90 + 65dc8227452a184626d85e599ab1382d gcc/testsuite/gfortran.dg/associate_58.f90 fe80c25bfc4d1e630472420bac3dc836 gcc/testsuite/gfortran.dg/associate_6.f03 ac2154aefe0a4ce981b3fa252235e2dd gcc/testsuite/gfortran.dg/associate_7.f03 3c2206420bb8717914aa447789b5f079 gcc/testsuite/gfortran.dg/associate_8.f03 *************** ed08ee0bcaabca9d5a128ae929308739 gcc/te *** 68035,68040 **** --- 68404,68410 ---- 408f82dd557d8d77f4652347ea5412e4 gcc/testsuite/gfortran.dg/associated_target_4.f90 c8dcd0248b062389c3ebfd88d9473a64 gcc/testsuite/gfortran.dg/associated_target_5.f03 f7cfdbf4de38d945e0085b02ebb99e8d gcc/testsuite/gfortran.dg/associated_target_6.f03 + 3cceb452e20c2755392cd5294bebb9d0 gcc/testsuite/gfortran.dg/associated_target_7.f90 6376d7ef6f137372a501dd7c8547864d gcc/testsuite/gfortran.dg/associative_1.f90 04280cc7719e51d18a6ad4510745c528 gcc/testsuite/gfortran.dg/assumed_charlen_arg_1.f90 e41613f37c052bf20cb9d34a7bb40da1 gcc/testsuite/gfortran.dg/assumed_charlen_arg_2.f90 *************** ff9c91471b4ce5ab6577afccb4c338c3 gcc/te *** 68325,68330 **** --- 68695,68701 ---- f163a929162b84c921c534094a61ee6d gcc/testsuite/gfortran.dg/bound_simplification_4.f90 8da00332161b12f533a48f6f4b133c93 gcc/testsuite/gfortran.dg/bound_simplification_5.f90 89ef43a5db63dead844540416ec15fe0 gcc/testsuite/gfortran.dg/bound_simplification_6.f90 + e0f32fc19dadb57e546c6f6e72bab8aa gcc/testsuite/gfortran.dg/bound_simplification_7.f90 0c37f25c0a329b1f8023a969afa947bc gcc/testsuite/gfortran.dg/bounds_check_1.f90 224affc6eb571605f5b1d1c7af58536c gcc/testsuite/gfortran.dg/bounds_check_10.f90 cded3f5f45f16c3f0117b2deb934a3be gcc/testsuite/gfortran.dg/bounds_check_11.f90 *************** f77d86492e84d13e004ea59f1da3d69d gcc/te *** 68339,68344 **** --- 68710,68716 ---- b890668874e1bc07a00cd706581c6fd1 gcc/testsuite/gfortran.dg/bounds_check_2.f 66c33189a3444b13a4ae1439933ebc8b gcc/testsuite/gfortran.dg/bounds_check_20.f90 7577ff710a256393f1fb5c102e69baa4 gcc/testsuite/gfortran.dg/bounds_check_21.f90 + c255cbccd21b3a2d3ab21d32d680086e gcc/testsuite/gfortran.dg/bounds_check_23.f90 1ff91e96da26ef6e7839e53e2b71499d gcc/testsuite/gfortran.dg/bounds_check_3.f90 a9119407c225c716d99c309178d77952 gcc/testsuite/gfortran.dg/bounds_check_4.f90 167a95fa41d2abf20f66591e1389d059 gcc/testsuite/gfortran.dg/bounds_check_5.f90 *************** bffd58c6eb392174540e5effb5007d27 gcc/te *** 68769,68774 **** --- 69141,69148 ---- dbc20d52e3c86639db916ad3c6392de8 gcc/testsuite/gfortran.dg/class_dummy_3.f03 3c084c9f366d687c0a674b8d42c2ea01 gcc/testsuite/gfortran.dg/class_dummy_4.f03 198585d6f5262127fa1756b228e70921 gcc/testsuite/gfortran.dg/class_dummy_5.f90 + 89120e26e4ec5fd1d963a1d03f515cb6 gcc/testsuite/gfortran.dg/class_dummy_6.f90 + b0d798ee6d75aec23f3be5fd748a1cc6 gcc/testsuite/gfortran.dg/class_dummy_7.f90 2f2b6b89c03eb0121abcd60df79d27ee gcc/testsuite/gfortran.dg/class_is_1.f90 84f9ccdf2ee8c8cfe397a0c82a7730af gcc/testsuite/gfortran.dg/class_nameclash.f90 9602d01ce3a47f3e2255aba5f234d1ae gcc/testsuite/gfortran.dg/class_optional_1.f90 *************** f4aec2f0ed199113d979b69a74d8afa5 gcc/te *** 68810,68815 **** --- 69184,69190 ---- 6254722cb2fb8666108848130a4de4ef gcc/testsuite/gfortran.dg/coarray/cosubscript_1.f90 bc2e49396148d7be346be065b8879d1b gcc/testsuite/gfortran.dg/coarray/data_1.f90 c1d0b436da831f1ba2bf97a1a37b6eea gcc/testsuite/gfortran.dg/coarray/dummy_1.f90 + a63070b05e27b7e6fd60da3efbd0dcad gcc/testsuite/gfortran.dg/coarray/dummy_2.f90 f90f6361d794d8b822e8dbb0cce15e43 gcc/testsuite/gfortran.dg/coarray/event_1.f90 5c76c994fc104238808f24409769c109 gcc/testsuite/gfortran.dg/coarray/event_2.f90 adfbd63a82cb07a5f08fcfc37965d57e gcc/testsuite/gfortran.dg/coarray/event_3.f08 *************** b67430669a5503a2b6f70e534e303644 gcc/te *** 68894,68899 **** --- 69269,69275 ---- ae84ff8684b83df37cd04c93355bb779 gcc/testsuite/gfortran.dg/coarray_45.f90 bdfb211ff859c6346ab45b3805256ba0 gcc/testsuite/gfortran.dg/coarray_46.f90 0196f422e481e5ac5cb151f859805e29 gcc/testsuite/gfortran.dg/coarray_47.f90 + 71dbc67a835765d79b82368a016a86e2 gcc/testsuite/gfortran.dg/coarray_48.f90 ef172e1d19584d7e55648b555dbf8fa3 gcc/testsuite/gfortran.dg/coarray_5.f90 337935b709715398df39ee0eeaaec67b gcc/testsuite/gfortran.dg/coarray_6.f90 8c9859e53f0764f4cc3872bb5b76dd41 gcc/testsuite/gfortran.dg/coarray_7.f90 *************** ea87431a0369f9e7268297efe801335a gcc/te *** 69248,69253 **** --- 69624,69630 ---- 11fbf6587979490cca68492521824101 gcc/testsuite/gfortran.dg/dec_math_2.f90 f007474e5e62779dd82a956460020608 gcc/testsuite/gfortran.dg/dec_math_3.f90 89e13391077c863487552207c651a1aa gcc/testsuite/gfortran.dg/dec_math_4.f90 + c72afcd1bf036ac396f29c7e70a4f3bd gcc/testsuite/gfortran.dg/dec_math_5.f90 9f5739a83e88bd4a8b6a45ff713e1e4f gcc/testsuite/gfortran.dg/dec_parameter_1.f 5d6d04868c5d0b68526b644166397060 gcc/testsuite/gfortran.dg/dec_parameter_2.f90 fda7b33d4e9546e000649a147e272b6b gcc/testsuite/gfortran.dg/dec_parameter_3.f90 *************** ad86654ff26be55d6f8c03aa15c45da9 gcc/te *** 69290,69295 **** --- 69667,69673 ---- f955c03c941b0c9e430dd0aa042c978f gcc/testsuite/gfortran.dg/dec_union_1.f90 54fa8897424354fe36b1147275b1b014 gcc/testsuite/gfortran.dg/dec_union_10.f90 5211d9ae6a702f4330743f9f87e83568 gcc/testsuite/gfortran.dg/dec_union_11.f90 + 436b819785ec03fd97943e5f6729ee25 gcc/testsuite/gfortran.dg/dec_union_12.f90 6c8431ff3b4a3278ce13b373701985a8 gcc/testsuite/gfortran.dg/dec_union_2.f90 85cd1980dadce1ec2db721b54e8725bf gcc/testsuite/gfortran.dg/dec_union_3.f90 a4db5df7b9375240006aa16fab80e2c0 gcc/testsuite/gfortran.dg/dec_union_4.f90 *************** f405c538ee221b34e2094a843f78c12a gcc/te *** 69341,69346 **** --- 69719,69725 ---- 5f82ae5d302549ef737253722a910e61 gcc/testsuite/gfortran.dg/deferred_character_33.f90 c8ca7a67e0b9c502e7883c6187a3b1f3 gcc/testsuite/gfortran.dg/deferred_character_33a.f90 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 5eede6c791f6d272034f9b84850ac6af gcc/testsuite/gfortran.dg/deferred_character_4.f90 981b809300de368e8fac65be4b40099c gcc/testsuite/gfortran.dg/deferred_character_5.f90 *************** e5f02b68e5aa2fee50c3ff70ad3d8f97 gcc/te *** 69460,69466 **** 026bd8fa710214d25691eae8c1dbcdfd gcc/testsuite/gfortran.dg/derived_comp_array_ref_6.f90 0bee796fdb071ab50d5faf5c678fefa5 gcc/testsuite/gfortran.dg/derived_comp_array_ref_7.f90 3ac6e6c4ed41e85971024e19ad69e6a1 gcc/testsuite/gfortran.dg/derived_comp_array_ref_8.f90 ! 3cb6f5885bbdd2d68c73753351eee1b3 gcc/testsuite/gfortran.dg/derived_constructor_char_1.f90 36d65cd99e01688bd380279fd0c74558 gcc/testsuite/gfortran.dg/derived_constructor_char_2.f90 3c2f8f5e24883308b8a24313e9e5df89 gcc/testsuite/gfortran.dg/derived_constructor_char_3.f90 f024936b2bb3be33b204bc283db65a94 gcc/testsuite/gfortran.dg/derived_constructor_comps_1.f90 --- 69839,69845 ---- 026bd8fa710214d25691eae8c1dbcdfd gcc/testsuite/gfortran.dg/derived_comp_array_ref_6.f90 0bee796fdb071ab50d5faf5c678fefa5 gcc/testsuite/gfortran.dg/derived_comp_array_ref_7.f90 3ac6e6c4ed41e85971024e19ad69e6a1 gcc/testsuite/gfortran.dg/derived_comp_array_ref_8.f90 ! 568b11dc7307172904079506d19d6593 gcc/testsuite/gfortran.dg/derived_constructor_char_1.f90 36d65cd99e01688bd380279fd0c74558 gcc/testsuite/gfortran.dg/derived_constructor_char_2.f90 3c2f8f5e24883308b8a24313e9e5df89 gcc/testsuite/gfortran.dg/derived_constructor_char_3.f90 f024936b2bb3be33b204bc283db65a94 gcc/testsuite/gfortran.dg/derived_constructor_comps_1.f90 *************** cb44893d94f03877d3d146a8c1da8bd8 gcc/te *** 69469,69474 **** --- 69848,69854 ---- 1985d33efa2fb91552f8a4d90653edd7 gcc/testsuite/gfortran.dg/derived_constructor_comps_4.f90 b90644647498c9ab9c17c0d5ea8d1b82 gcc/testsuite/gfortran.dg/derived_constructor_comps_5.f90 b2ca02520bfaffc03c538a5319e61893 gcc/testsuite/gfortran.dg/derived_constructor_comps_6.f90 + a4520e3938bf347c0b9e1003348fd3b6 gcc/testsuite/gfortran.dg/derived_constructor_comps_7.f90 cff987fa6f89201aa37245231d20c023 gcc/testsuite/gfortran.dg/derived_external_function_1.f90 e08a65ae23ffa55d956b33c09e1c4cb8 gcc/testsuite/gfortran.dg/derived_function_interface_1.f90 fdf6add00f0bd7ce436abe942eb65cf3 gcc/testsuite/gfortran.dg/derived_init_1.f90 *************** cdbdebe9161bcc4a79df17d5f5732b28 gcc/te *** 69522,69527 **** --- 69902,69908 ---- 96e2135b923f812fcee419619693640d gcc/testsuite/gfortran.dg/do_check_10.f90 c321dd94759ede7664827657793cf07e gcc/testsuite/gfortran.dg/do_check_11.f90 2eb7ae71fe0e15822f2c551473a52a7c gcc/testsuite/gfortran.dg/do_check_12.f90 + b439dee45498b38c2c1c8750cf86c793 gcc/testsuite/gfortran.dg/do_check_19.f90 18a2fbef89d7cf46f122e07d5fbef517 gcc/testsuite/gfortran.dg/do_check_2.f90 fdb990ec0ab32e124633d2dae596183b gcc/testsuite/gfortran.dg/do_check_3.f90 ffb5a682b1c8bb98feb925db34c42db2 gcc/testsuite/gfortran.dg/do_check_4.f90 *************** da4a7c798f0408437da738727e347788 gcc/te *** 69649,69654 **** --- 70030,70036 ---- 2d23e66cae12f606c517f27ced38c44c gcc/testsuite/gfortran.dg/elemental_function_2.f90 af300e66cd2debe8da426f435e478ede gcc/testsuite/gfortran.dg/elemental_function_3.f90 65a443bacf190674f49529d758625e54 gcc/testsuite/gfortran.dg/elemental_function_4.f90 + d5a800e56880e12efa6f176c1bdaab6c gcc/testsuite/gfortran.dg/elemental_function_5.f90 e228c219820da6c0d4d312bd5bd2165a gcc/testsuite/gfortran.dg/elemental_initializer_1.f90 bb58a11f51652cefd566851a1485c6f0 gcc/testsuite/gfortran.dg/elemental_intrinsic_1.f03 4c1ec6aea32b30a4a1edeb92c4abb5d3 gcc/testsuite/gfortran.dg/elemental_non_intrinsic_dummy_1.f90 *************** f9b7a86e792764d97f0b5939361c929d gcc/te *** 69751,69756 **** --- 70133,70139 ---- 01f5663dbbe448ffcae13215519a2976 gcc/testsuite/gfortran.dg/eoshift_6.f90 adae9a19ec811bbf55918625d353631f gcc/testsuite/gfortran.dg/eoshift_7.f90 66a20460746717880ff13c94688798f8 gcc/testsuite/gfortran.dg/eoshift_8.f90 + f68f16bc720811c1bd9729ac85be7f58 gcc/testsuite/gfortran.dg/eoshift_9.f90 d23c3cf960da52cea7987d80d427ca33 gcc/testsuite/gfortran.dg/eoshift_bounds_1.f90 498461068b03a38305d4fb9508177f88 gcc/testsuite/gfortran.dg/eoshift_large_1.f90 ab70a97d276544b94e7ac094c3d3e859 gcc/testsuite/gfortran.dg/equiv_1.f90 *************** c31057abbc67dd1afb06b5b8b376c2dc gcc/te *** 69962,69967 **** --- 70345,70351 ---- aa83a10582b82026c0f1fd503885f217 gcc/testsuite/gfortran.dg/fmt_missing_period_3.f eedec4631f954cd9b6e777e72d5b3a82 gcc/testsuite/gfortran.dg/fmt_nonchar_1.f90 20f752890ee33c6d8b403a1a2483e5a4 gcc/testsuite/gfortran.dg/fmt_nonchar_2.f90 + bd467bed8a3379220c5d40be824a24ce gcc/testsuite/gfortran.dg/fmt_nonchar_3.f90 d3d37d254644cdaff95d2388a5b7c0c5 gcc/testsuite/gfortran.dg/fmt_p_1.f90 982630e8e12fd9d9ef6044fd455a1556 gcc/testsuite/gfortran.dg/fmt_pf.f90 f4c40499fd82d7b0c80894e2cd0778b0 gcc/testsuite/gfortran.dg/fmt_read.f90 *************** c6b23e36c3423a3454fb19b0ec6f0e01 gcc/te *** 70520,70525 **** --- 70904,70910 ---- a0ddccf5319d7e26e8fdaf2827f3ea94 gcc/testsuite/gfortran.dg/gomp/is_device_ptr-1.f90 fcfec1b14709740892410ae1c647ba42 gcc/testsuite/gfortran.dg/gomp/linear-1.f90 be152538cccb659bb8dac0eda81355e5 gcc/testsuite/gfortran.dg/gomp/map-1.f90 + 643b8993be7253510e6b0f841407426c gcc/testsuite/gfortran.dg/gomp/map-5.f90 52223211c34f4dbace5e033f8243ae1f gcc/testsuite/gfortran.dg/gomp/omp_atomic1.f90 0e5454ac80bc199d6cf3e96e9750c33f gcc/testsuite/gfortran.dg/gomp/omp_atomic2.f90 5d43e477ab60e438b8824d612b24022d gcc/testsuite/gfortran.dg/gomp/omp_clauses1.f90 *************** d19c8b732b5cf70aa6edcc4165fe30b3 gcc/te *** 70840,70845 **** --- 71225,71232 ---- 26f7d10e3401a2366b42da4a4f97bd15 gcc/testsuite/gfortran.dg/ieee/rounding_1.f90 e8ea43c66fd6d11794019ae65955f295 gcc/testsuite/gfortran.dg/ieee/underflow_1.f90 124ba3e9f6c8b5f20acc161515766cff gcc/testsuite/gfortran.dg/illegal_boz_arg_1.f90 + 4a93b827c3cbecf80132e133c9ffea76 gcc/testsuite/gfortran.dg/illegal_boz_arg_2.f90 + b8ee27c210d03cbdecd63b4186ae10dc gcc/testsuite/gfortran.dg/illegal_boz_arg_3.f90 ca72e2369ff19137157ceaaa2012b721 gcc/testsuite/gfortran.dg/illegal_char.f90 d827b941652feab002a335b27a4dd9f2 gcc/testsuite/gfortran.dg/imag_1.f eaad0ac26fe911d75f0d0769ade8436c gcc/testsuite/gfortran.dg/impl_do_var_data.f90 *************** b75cb93f87f099ad715aceb9cb7b1bf2 gcc/te *** 70876,70881 **** --- 71263,71269 ---- 9042c8fc68be853afcc846869e788bd5 gcc/testsuite/gfortran.dg/implied_do_io_4.f90 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 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 *************** dee6ff6cec856fe1f42312c1d4fd4807 gcc/te *** 70990,70995 **** --- 71378,71384 ---- e5a418513e079e50ea576e021cf5ad8e gcc/testsuite/gfortran.dg/inline_matmul_22.f90 1545bc137f7bcb397e7986a3324b63be gcc/testsuite/gfortran.dg/inline_matmul_23.f90 89a35f94060b171becdc54771a02040b gcc/testsuite/gfortran.dg/inline_matmul_24.f90 + d5dddad98efc37928795b446cb8d6501 gcc/testsuite/gfortran.dg/inline_matmul_25.f90 ffdb4ca68f61f3bd618415335c9c7c21 gcc/testsuite/gfortran.dg/inline_matmul_3.f90 f95e5fd479c839cfa9cb3ac127ee7584 gcc/testsuite/gfortran.dg/inline_matmul_4.f90 6cb787ca0dac6ea814c8af4ac7cb8022 gcc/testsuite/gfortran.dg/inline_matmul_5.f90 *************** ba93579108c80828d584884c6d1a3d2a gcc/te *** 71057,71062 **** --- 71446,71452 ---- 7fb312ab28cce81b97498d8f3f4e4685 gcc/testsuite/gfortran.dg/intent_out_11.f90 844229c9eb8a37075774f7aa5ffaec68 gcc/testsuite/gfortran.dg/intent_out_12.f90 eaa197e83969427d3078aff95445bee7 gcc/testsuite/gfortran.dg/intent_out_13.f90 + 43d0dd409d7c93807035f978a18ed5c5 gcc/testsuite/gfortran.dg/intent_out_14.f90 633b564832f11b231ba2e100650127bb gcc/testsuite/gfortran.dg/intent_out_2.f90 88fc721c29050bdf0a2d0d7c4e316336 gcc/testsuite/gfortran.dg/intent_out_3.f90 a4fb1377a7e3fd7d6f3a448f1c020623 gcc/testsuite/gfortran.dg/intent_out_4.f90 *************** f8c7e022d2cfc56df6b55d414dce657a gcc/te *** 71198,71203 **** --- 71588,71594 ---- 02e405fa02b5f4208a935814170c08d1 gcc/testsuite/gfortran.dg/intrinsic_pack_3.f90 46c6f0a832541ad6ca2cbb32c01ab20d gcc/testsuite/gfortran.dg/intrinsic_pack_4.f90 68e85a91fdebd8186e987268b78d2812 gcc/testsuite/gfortran.dg/intrinsic_pack_5.f90 + 7a9982798705db4f1e587901e180224f gcc/testsuite/gfortran.dg/intrinsic_pack_6.f90 709c1a0557c6130d855211d157dc235b gcc/testsuite/gfortran.dg/intrinsic_param_1.f90 83483a96e8562d98a9a895352987cf66 gcc/testsuite/gfortran.dg/intrinsic_product_1.f90 66b3fac50616e3319e3fd00fcd93d9be gcc/testsuite/gfortran.dg/intrinsic_shadow_1.f03 *************** b0771aa8a26d9687e9c6aa4f179d533d gcc/te *** 71651,71657 **** 8d2c9767bfa9b064e0efaf0685019480 gcc/testsuite/gfortran.dg/move_alloc_5.f90 0912ae78a386198aad205729d12d008b gcc/testsuite/gfortran.dg/move_alloc_6.f90 0c726588b85b64cfb855301e343930a8 gcc/testsuite/gfortran.dg/move_alloc_7.f90 ! 71254f3390003edda7e2c46eb3990787 gcc/testsuite/gfortran.dg/move_alloc_8.f90 4f9cc1fa8df27c10af708433794537e6 gcc/testsuite/gfortran.dg/move_alloc_9.f90 340ebc9d35f808d2fff378f796de48ab gcc/testsuite/gfortran.dg/multiple_allocation_1.f90 6b63ce8de65e063edbff7748ee8ead42 gcc/testsuite/gfortran.dg/multiple_allocation_2.f90 --- 72042,72048 ---- 8d2c9767bfa9b064e0efaf0685019480 gcc/testsuite/gfortran.dg/move_alloc_5.f90 0912ae78a386198aad205729d12d008b gcc/testsuite/gfortran.dg/move_alloc_6.f90 0c726588b85b64cfb855301e343930a8 gcc/testsuite/gfortran.dg/move_alloc_7.f90 ! fb0f12b8bc0ac949db7d4b0ddefe80be gcc/testsuite/gfortran.dg/move_alloc_8.f90 4f9cc1fa8df27c10af708433794537e6 gcc/testsuite/gfortran.dg/move_alloc_9.f90 340ebc9d35f808d2fff378f796de48ab gcc/testsuite/gfortran.dg/multiple_allocation_1.f90 6b63ce8de65e063edbff7748ee8ead42 gcc/testsuite/gfortran.dg/multiple_allocation_2.f90 *************** d14391d3ef215e7090f2482b1fb51242 gcc/te *** 71910,71915 **** --- 72301,72307 ---- 967b958bce8187f291f4a772e4548afe gcc/testsuite/gfortran.dg/overload_1.f90 97e6af3887a4b07dce47c09a1d987e61 gcc/testsuite/gfortran.dg/overload_2.f90 bea7aebc5e916cdafeb1ba5550fca119 gcc/testsuite/gfortran.dg/overload_3.f90 + 239885761f5919c3b068bc250b0548c2 gcc/testsuite/gfortran.dg/overload_4.f90 ce01df6835a25865cf1b057eedd850d3 gcc/testsuite/gfortran.dg/overwrite_1.f 0513597d3f649ecf246ba3da77d0e486 gcc/testsuite/gfortran.dg/pack_assign_1.f90 804957c95450f8f92e8046cdde8da1fe gcc/testsuite/gfortran.dg/pack_bounds_1.f90 *************** efbb6ce3288a6ccfd0b8e00a0b638ffd gcc/te *** 71934,71939 **** --- 72326,72332 ---- 8b0b6b89a6f9358c1b8def3660850c03 gcc/testsuite/gfortran.dg/parameter_array_init_5.f90 d46e6ca33ad0c6569ce38b09a28782f5 gcc/testsuite/gfortran.dg/parameter_array_init_6.f90 61cf2ad0a3d886ac7684b6999c179389 gcc/testsuite/gfortran.dg/parameter_array_init_7.f90 + 2705006561c3a2451da51763e83871c3 gcc/testsuite/gfortran.dg/parameter_array_init_8.f90 32c99065e26b34dfb314fdea08f82fe4 gcc/testsuite/gfortran.dg/parameter_array_ref_1.f90 302ab3504a83b13e3ec7d1096f84ae36 gcc/testsuite/gfortran.dg/parameter_array_ref_2.f90 23dcadce604501908a5e668b385325f3 gcc/testsuite/gfortran.dg/parameter_array_section_1.f90 *************** be693b3847d0256fa77c5e6d96396c97 gcc/te *** 71975,71986 **** d17e376a8cc641dbedaeffcce81d5297 gcc/testsuite/gfortran.dg/pdt_23.f03 74618f98f612c4722b0e366283ec8ca8 gcc/testsuite/gfortran.dg/pdt_24.f03 7c4f6f585a57e25f1c6f31ac89e87d40 gcc/testsuite/gfortran.dg/pdt_25.f03 ! d3869facbd48cd5e82791bacd1d3302e gcc/testsuite/gfortran.dg/pdt_26.f03 f67cfd0ae4d38f1ca5dc8d7f6e954087 gcc/testsuite/gfortran.dg/pdt_27.f03 7efa911fe665f45456e6943844302ac0 gcc/testsuite/gfortran.dg/pdt_28.f03 68b10a194ff6797eee8ecb042129b08f gcc/testsuite/gfortran.dg/pdt_29.f03 467e7b0f7ffea3a05b9ac591c2ac05ee gcc/testsuite/gfortran.dg/pdt_3.f03 1f42496cb72089bef450a6df6a13c299 gcc/testsuite/gfortran.dg/pdt_30.f90 17fa57111f7b9c176c9f9fdf95c974cf gcc/testsuite/gfortran.dg/pdt_4.f03 65d2ad728417ad3174fc1ce2b51a458d gcc/testsuite/gfortran.dg/pdt_6.f03 d2c9dae0c6e2385c5712aba8e12a70ba gcc/testsuite/gfortran.dg/pdt_7.f03 --- 72368,72380 ---- d17e376a8cc641dbedaeffcce81d5297 gcc/testsuite/gfortran.dg/pdt_23.f03 74618f98f612c4722b0e366283ec8ca8 gcc/testsuite/gfortran.dg/pdt_24.f03 7c4f6f585a57e25f1c6f31ac89e87d40 gcc/testsuite/gfortran.dg/pdt_25.f03 ! 7182317a2e9d6c03d247c9fb2b50ab74 gcc/testsuite/gfortran.dg/pdt_26.f03 f67cfd0ae4d38f1ca5dc8d7f6e954087 gcc/testsuite/gfortran.dg/pdt_27.f03 7efa911fe665f45456e6943844302ac0 gcc/testsuite/gfortran.dg/pdt_28.f03 68b10a194ff6797eee8ecb042129b08f gcc/testsuite/gfortran.dg/pdt_29.f03 467e7b0f7ffea3a05b9ac591c2ac05ee gcc/testsuite/gfortran.dg/pdt_3.f03 1f42496cb72089bef450a6df6a13c299 gcc/testsuite/gfortran.dg/pdt_30.f90 + d586eb557b29a67b9fa981d71d443c8b gcc/testsuite/gfortran.dg/pdt_31.f03 17fa57111f7b9c176c9f9fdf95c974cf gcc/testsuite/gfortran.dg/pdt_4.f03 65d2ad728417ad3174fc1ce2b51a458d gcc/testsuite/gfortran.dg/pdt_6.f03 d2c9dae0c6e2385c5712aba8e12a70ba gcc/testsuite/gfortran.dg/pdt_7.f03 *************** ae06d6761f5e36e2c2e46067aa089b8e gcc/te *** 72054,72059 **** --- 72448,72454 ---- e459085c84d8d965d44b2c8d69d7d0f3 gcc/testsuite/gfortran.dg/pointer_intent_6.f90 32cd4c061b4a40c2cc07c876ae54d223 gcc/testsuite/gfortran.dg/pointer_intent_7.f90 d0b24aa5ebe04c5c89cd3403f4acfda9 gcc/testsuite/gfortran.dg/pointer_intent_8.f90 + 04a2e00b668250959b8328b3402a4407 gcc/testsuite/gfortran.dg/pointer_intent_9.f90 4cb0e95eb0d20ee0fcc1725ab11d6144 gcc/testsuite/gfortran.dg/pointer_remapping_1.f90 cb90f303a1add40fdcfa44f9441d6094 gcc/testsuite/gfortran.dg/pointer_remapping_10.f90 6b175e97afb4595e4ac40a6f738d0650 gcc/testsuite/gfortran.dg/pointer_remapping_2.f03 *************** c893cc6bcb01079435bb1e32e1ab471e gcc/te *** 72080,72085 **** --- 72475,72506 ---- a3ab8fbef738997039cfd45f350461a3 gcc/testsuite/gfortran.dg/power_6.f90 77eca811eac1f80edb0f33c68ac0c4d3 gcc/testsuite/gfortran.dg/power_7.f90 457d6bb30d331f4d3250628bdae53dc3 gcc/testsuite/gfortran.dg/power_8.f90 + e13b5dd50c332ea865cb6fabb5f79f29 gcc/testsuite/gfortran.dg/pr100154.f90 + fc0ae38e4fdc2d7761aba57181c97b51 gcc/testsuite/gfortran.dg/pr100551.f90 + 17f130e627232745d6279696b6984514 gcc/testsuite/gfortran.dg/pr100949.f90 + 00eaff2aeb07d3b9bbb1b67083921aaf gcc/testsuite/gfortran.dg/pr101158.f90 + 515f43ee1c3a7f37818b2b4bd6abedd7 gcc/testsuite/gfortran.dg/pr101327.f90 + 215e51d0e3da3316aa6f9d992ac2c7d7 gcc/testsuite/gfortran.dg/pr101329.f90 + afe21b866be9162c6b654dc6771e6ead gcc/testsuite/gfortran.dg/pr101514.f90 + 07e5cf776d8ec123397377da02e784fb gcc/testsuite/gfortran.dg/pr101536.f90 + 43d1631cdea391ffd9bdb8fc395a7ae5 gcc/testsuite/gfortran.dg/pr101762.f90 + 75ccec9005d1d4a2d9ed0cea1bf10434 gcc/testsuite/gfortran.dg/pr102332.f90 + 1dd53d463caf1e16e47d0fe9cbf2309f gcc/testsuite/gfortran.dg/pr102366.f90 + fc5031b16be6a0dc4152f151793f4acb gcc/testsuite/gfortran.dg/pr102458.f90 + cbd40bc334c217d37c198b1f27373810 gcc/testsuite/gfortran.dg/pr102458b.f90 + 09759ba73ae30c3a54be532d97b7f526 gcc/testsuite/gfortran.dg/pr102520.f90 + c081e1f510a2d68ec176356111dab188 gcc/testsuite/gfortran.dg/pr102685.f90 + d99cea26823109c0bb853b42df152999 gcc/testsuite/gfortran.dg/pr102715.f90 + f28998ba16e7a78633a9de3d5eaf0667 gcc/testsuite/gfortran.dg/pr102816.f90 + cc6ac3aa934c104c85fad8e43ae6985d gcc/testsuite/gfortran.dg/pr102817.f90 + 87fa8e20851e07d06d4d5991b6fc240d gcc/testsuite/gfortran.dg/pr102860.f90 + a082b0c5fdbc266f00ae264494538e49 gcc/testsuite/gfortran.dg/pr103505.f90 + dc7a57f897711dfb7a3fba377198c10c gcc/testsuite/gfortran.dg/pr103588.f90 + a27b232d198fc2463c04af17903b1b4c gcc/testsuite/gfortran.dg/pr103606.f90 + ea7b00fcccc1df091b8087b16e502d92 gcc/testsuite/gfortran.dg/pr103607.f90 + 448c7638e7741c015d95260e6491d8fa gcc/testsuite/gfortran.dg/pr103692.f90 + 7a5b7a18d621b5e1b9d04b73e259ddd4 gcc/testsuite/gfortran.dg/pr104849.f90 + 22283af469347d85bd1fe4dae42939a3 gcc/testsuite/gfortran.dg/pr105230.f90 984f8307f36d56a0b48b5acce2dd5eb5 gcc/testsuite/gfortran.dg/pr12884.f 64075248b9d1bffd6f380bb4e2a6eae0 gcc/testsuite/gfortran.dg/pr15129.f90 e9cbd51db4e16292fc5dd1fead2e5a49 gcc/testsuite/gfortran.dg/pr15140.f90 *************** d598feb4dba76cbaf492a9ee6686e19a gcc/te *** 72330,72335 **** --- 72751,72757 ---- 2ab32374fe63527656c5652f6804cd06 gcc/testsuite/gfortran.dg/pr63331.f90 1984d41530f1be811fd36bc981abb1b0 gcc/testsuite/gfortran.dg/pr63514.f90 603263e08fedbbf88311bc089fe3cc34 gcc/testsuite/gfortran.dg/pr63778.f + 2900cd515e8ec5d87cdc865515cfa1ef gcc/testsuite/gfortran.dg/pr63797.f90 397b25a42e5d0cf5eca320bdb2909d9c gcc/testsuite/gfortran.dg/pr63821.f90 c35d65ea2827d93eaf5b83cc8d96a6f0 gcc/testsuite/gfortran.dg/pr63883.f90 961f5b3f9101d60209ddc2ff945ac6e6 gcc/testsuite/gfortran.dg/pr64107.f90 *************** c37cf579044bfef981cfa2ddcb25a453 gcc/te *** 72369,72374 **** --- 72791,72797 ---- 0bfa6e741c486d27fbd1d68e80ab467d gcc/testsuite/gfortran.dg/pr67616.f90 f7b255646efb403e4fd6d6c4c721b6c6 gcc/testsuite/gfortran.dg/pr67802.f90 9cfe60384f2e4f1cbec4ea41ea7e4e44 gcc/testsuite/gfortran.dg/pr67803.f90 + 63f85252504511c380cbe33f58073c38 gcc/testsuite/gfortran.dg/pr67804.f90 41e85145304080db4dd22c98def9ee20 gcc/testsuite/gfortran.dg/pr67805.f90 d67c65ab4e579ec1a9ed16fa540e87f1 gcc/testsuite/gfortran.dg/pr67805_2.f90 a11d2cdadd8d3e42bccb3afdcfe01f97 gcc/testsuite/gfortran.dg/pr67884.f90 *************** a11d2cdadd8d3e42bccb3afdcfe01f97 gcc/te *** 72376,72389 **** 60853550b35c1efdadb2d417aa6eec8b gcc/testsuite/gfortran.dg/pr67900.f90 658762833e1eac5a3f3f05e0147153f1 gcc/testsuite/gfortran.dg/pr67939.f90 954cb84b6364f949ad2e6702e8a469d0 gcc/testsuite/gfortran.dg/pr67987.f90 ! 9c7060d377f62548d71c01d004b6256d gcc/testsuite/gfortran.dg/pr68019.f90 ba9c0a45b4114d6c3d80129312c3731c gcc/testsuite/gfortran.dg/pr68053.f90 6d8a1b66ddd71f72cd6f8b2f956d1e1a gcc/testsuite/gfortran.dg/pr68054.f90 0aa9836d6fb22c69b7e76e9f495f4762 gcc/testsuite/gfortran.dg/pr68055.f90 f15d85cfec6e3cdd76e6667f5c30ef44 gcc/testsuite/gfortran.dg/pr68078.f90 8b70141743602a92904051fd2d8d35fe gcc/testsuite/gfortran.dg/pr68146.f 72204a8f7a7d531531023b6f9efc86ff gcc/testsuite/gfortran.dg/pr68151.f90 ! ee9456d99483e48af158f154c01b835c gcc/testsuite/gfortran.dg/pr68153.f90 763b223410c19c6e68bea4f15ed3fef6 gcc/testsuite/gfortran.dg/pr68154.f90 c0ada255b8d4b02a2bf3f62ec3fd9223 gcc/testsuite/gfortran.dg/pr68224.f90 4239cbc5229572dbb1b8db5b9e534c59 gcc/testsuite/gfortran.dg/pr68227.f90 --- 72799,72812 ---- 60853550b35c1efdadb2d417aa6eec8b gcc/testsuite/gfortran.dg/pr67900.f90 658762833e1eac5a3f3f05e0147153f1 gcc/testsuite/gfortran.dg/pr67939.f90 954cb84b6364f949ad2e6702e8a469d0 gcc/testsuite/gfortran.dg/pr67987.f90 ! 047ea7e5f868eab9ff2e8c9f478332a4 gcc/testsuite/gfortran.dg/pr68019.f90 ba9c0a45b4114d6c3d80129312c3731c gcc/testsuite/gfortran.dg/pr68053.f90 6d8a1b66ddd71f72cd6f8b2f956d1e1a gcc/testsuite/gfortran.dg/pr68054.f90 0aa9836d6fb22c69b7e76e9f495f4762 gcc/testsuite/gfortran.dg/pr68055.f90 f15d85cfec6e3cdd76e6667f5c30ef44 gcc/testsuite/gfortran.dg/pr68078.f90 8b70141743602a92904051fd2d8d35fe gcc/testsuite/gfortran.dg/pr68146.f 72204a8f7a7d531531023b6f9efc86ff gcc/testsuite/gfortran.dg/pr68151.f90 ! 919a27f3a4cfbc08b7e864601ba56e0f gcc/testsuite/gfortran.dg/pr68153.f90 763b223410c19c6e68bea4f15ed3fef6 gcc/testsuite/gfortran.dg/pr68154.f90 c0ada255b8d4b02a2bf3f62ec3fd9223 gcc/testsuite/gfortran.dg/pr68224.f90 4239cbc5229572dbb1b8db5b9e534c59 gcc/testsuite/gfortran.dg/pr68227.f90 *************** aa6073708fcde459f6b44a5e294fd6b0 gcc/te *** 72426,72432 **** 858edd0f297501435fdd3e07e065201c gcc/testsuite/gfortran.dg/pr70754.f90 ba437378350349e006ee9be8afd0020e gcc/testsuite/gfortran.dg/pr70853.f90 386c85829c4e2571e0db7949c25f5113 gcc/testsuite/gfortran.dg/pr70870_1.f90 ! 0e424f05f2fdeb786b877ace2617112d gcc/testsuite/gfortran.dg/pr70931.f90 768e159c79aa0aa1e1ae6e13122ed1b2 gcc/testsuite/gfortran.dg/pr70937.f90 a16162b0759105febc1efc1311184688 gcc/testsuite/gfortran.dg/pr71047.f08 2adcf4116aa4365895bb3d287e182ddd gcc/testsuite/gfortran.dg/pr71067_1.f90 --- 72849,72855 ---- 858edd0f297501435fdd3e07e065201c gcc/testsuite/gfortran.dg/pr70754.f90 ba437378350349e006ee9be8afd0020e gcc/testsuite/gfortran.dg/pr70853.f90 386c85829c4e2571e0db7949c25f5113 gcc/testsuite/gfortran.dg/pr70870_1.f90 ! 8772cb0c6f3bc092b7d4ae134b437b94 gcc/testsuite/gfortran.dg/pr70931.f90 768e159c79aa0aa1e1ae6e13122ed1b2 gcc/testsuite/gfortran.dg/pr70937.f90 a16162b0759105febc1efc1311184688 gcc/testsuite/gfortran.dg/pr71047.f08 2adcf4116aa4365895bb3d287e182ddd gcc/testsuite/gfortran.dg/pr71067_1.f90 *************** d1aef01880835db4a541fe2fb5d9b4b4 gcc/te *** 72514,72519 **** --- 72937,72943 ---- 58ba9db10feed5572dd1e17134e5d88c gcc/testsuite/gfortran.dg/pr81889.f90 e338cfba2f466abedf9af92b52cd6fb3 gcc/testsuite/gfortran.dg/pr82004.f90 b6ff04901e3aee18765a74bf65804e38 gcc/testsuite/gfortran.dg/pr82253.f90 + 344be7c0602202457870166d368441e0 gcc/testsuite/gfortran.dg/pr82314.f90 7f04eca318ca64e1442ceabc31fab9fb gcc/testsuite/gfortran.dg/pr82397.f 616772c135ee9b14c410dcd23fdbc3e4 gcc/testsuite/gfortran.dg/pr82973.f90 0a918cecf6f52a31004b77728cb30038 gcc/testsuite/gfortran.dg/pr83113.f90 *************** fde8604ea120a8ce9b073bf211cdf432 gcc/te *** 72711,72717 **** 543493ac9c37f3e29f7d727af1ecad82 gcc/testsuite/gfortran.dg/pr93600_2.f90 e0fe2bc5bc29092b239eac7f6bd6642a gcc/testsuite/gfortran.dg/pr93601.f90 7fba8006db48550444d5426908e7bd21 gcc/testsuite/gfortran.dg/pr93603.f90 ! 660d1e3a2054b4394f234c780df1e3a7 gcc/testsuite/gfortran.dg/pr93604.f90 3a950099baf4b594b439137360e76929 gcc/testsuite/gfortran.dg/pr93685_1.f90 54e6c162457d096a85a702a7d61bb2c6 gcc/testsuite/gfortran.dg/pr93685_2.f90 72a93ce5a3a0e7f069659dbadadfb4a9 gcc/testsuite/gfortran.dg/pr93686_1.f90 --- 73135,73141 ---- 543493ac9c37f3e29f7d727af1ecad82 gcc/testsuite/gfortran.dg/pr93600_2.f90 e0fe2bc5bc29092b239eac7f6bd6642a gcc/testsuite/gfortran.dg/pr93601.f90 7fba8006db48550444d5426908e7bd21 gcc/testsuite/gfortran.dg/pr93603.f90 ! 7eccbef6ebf6b0e510ef57d5a859de0f gcc/testsuite/gfortran.dg/pr93604.f90 3a950099baf4b594b439137360e76929 gcc/testsuite/gfortran.dg/pr93685_1.f90 54e6c162457d096a85a702a7d61bb2c6 gcc/testsuite/gfortran.dg/pr93685_2.f90 72a93ce5a3a0e7f069659dbadadfb4a9 gcc/testsuite/gfortran.dg/pr93686_1.f90 *************** b9d5894d240b89777d50d53e0cd60929 gcc/te *** 72738,72743 **** --- 73162,73168 ---- f55274affe4c9ad9830b5b95890a0e58 gcc/testsuite/gfortran.dg/pr95373_2.f90 27db2763cd4b76a729c1caca77615d2b gcc/testsuite/gfortran.dg/pr95398.f90 bf06d26cfd17de7f7a1ca3d27181a469 gcc/testsuite/gfortran.dg/pr95500.f90 + 6ef53d080792d6388cbc30dcbd258ee4 gcc/testsuite/gfortran.dg/pr95502.f90 957c4b1c6c2a82ac61e92b1200c1f5cc gcc/testsuite/gfortran.dg/pr95503.f90 5231d7be8a143a19ea814874ba722093 gcc/testsuite/gfortran.dg/pr95544.f90 4d7840381b8acfddf9d6d981be248de8 gcc/testsuite/gfortran.dg/pr95585.f90 *************** f219dfba008fc41e9e809107b3498d57 gcc/te *** 72775,72780 **** --- 73200,73206 ---- 64eab9fbabf78a6279318703c2ac81a6 gcc/testsuite/gfortran.dg/pr97768_1.f90 e9131ae038c1f4f18b0f72da1bf1423e gcc/testsuite/gfortran.dg/pr97768_2.f90 0103f634279cccfe329c626d7b20e2fa gcc/testsuite/gfortran.dg/pr98017.f90 + 8a48e2264b578c77fe953f48d587af4e gcc/testsuite/gfortran.dg/pr98411.f90 ab9d92c634833928d03c56d815ba4f69 gcc/testsuite/gfortran.dg/pr99060.f90 2b316ebb5f0c34f4b1c5764c77c3e824 gcc/testsuite/gfortran.dg/pr99204.f90 c6196744dcddad274ab914969ad9e6d3 gcc/testsuite/gfortran.dg/pr99545.f90 *************** a50ed014f3fd628f8e8e8e09f44f8c0f gcc/te *** 72886,72891 **** --- 73312,73318 ---- 10c589d311b0a73db8c553ec42336631 gcc/testsuite/gfortran.dg/proc_ptr_5.f90 43ca301c170d61a34b8db85b8fcd1d84 gcc/testsuite/gfortran.dg/proc_ptr_50.f90 2bdbfb5616cc946bcc711233f9deb135 gcc/testsuite/gfortran.dg/proc_ptr_51.f90 + a2ab49b1f709afa3cf1c9284d4576fa9 gcc/testsuite/gfortran.dg/proc_ptr_52.f90 aa07bccd48fbde93e47db111bac1ce8c gcc/testsuite/gfortran.dg/proc_ptr_6.f90 3648c097522ae5858550c7d7776afd28 gcc/testsuite/gfortran.dg/proc_ptr_7.c fe310c69dfb181cb04f271dad6a3f1d5 gcc/testsuite/gfortran.dg/proc_ptr_7.f90 *************** d8a9f1260e74e0077151d976c7d10349 gcc/te *** 73149,73154 **** --- 73576,73582 ---- 2e7d5fec04c2c7f37db35971e145eb94 gcc/testsuite/gfortran.dg/recursive_parameter_1.f90 83a0ac39bfc50ad3e26215503647388b gcc/testsuite/gfortran.dg/recursive_reference_1.f90 1d1c7d54db9ad825f6d03ee25b705983 gcc/testsuite/gfortran.dg/recursive_reference_2.f90 + ef770cfdc6b95e1ae9b92510ab8715be gcc/testsuite/gfortran.dg/recursive_reference_3.f90 a7003da5c2f301959c7f21193538e7eb gcc/testsuite/gfortran.dg/recursive_stack.f90 367c718b77a74a1255ad2e38adeacfb7 gcc/testsuite/gfortran.dg/recursive_statement_functions.f90 04deba654b2206894b96a6288761847b gcc/testsuite/gfortran.dg/redefined_intrinsic_assignment.f90 *************** d3828a0469af571ee4a9715d5b69ba18 gcc/te *** 73170,73176 **** 28e648e5d9b58d4e60affb7acc6a4a36 gcc/testsuite/gfortran.dg/reshape_4.f90 2872b99cf6c4e5736159d59646eacf73 gcc/testsuite/gfortran.dg/reshape_5.f90 7f3d8930925f93d0224885fccf19768f gcc/testsuite/gfortran.dg/reshape_6.f90 ! fa9603988fa43c3b4979b2745c515cd4 gcc/testsuite/gfortran.dg/reshape_7.f90 c7b463bfe5fc5984c177ad3ceb638178 gcc/testsuite/gfortran.dg/reshape_empty_1.f03 a427cc5a5e1ff29f34ae42c060001529 gcc/testsuite/gfortran.dg/reshape_order_1.f90 76cb0afc35b5327c7c7e5d8ddad735c6 gcc/testsuite/gfortran.dg/reshape_order_2.f90 --- 73598,73605 ---- 28e648e5d9b58d4e60affb7acc6a4a36 gcc/testsuite/gfortran.dg/reshape_4.f90 2872b99cf6c4e5736159d59646eacf73 gcc/testsuite/gfortran.dg/reshape_5.f90 7f3d8930925f93d0224885fccf19768f gcc/testsuite/gfortran.dg/reshape_6.f90 ! 9dfec6bab6dc17d313fcc63e0bca557c gcc/testsuite/gfortran.dg/reshape_7.f90 ! 4ccd663438210e60fca030952535b706 gcc/testsuite/gfortran.dg/reshape_9.f90 c7b463bfe5fc5984c177ad3ceb638178 gcc/testsuite/gfortran.dg/reshape_empty_1.f03 a427cc5a5e1ff29f34ae42c060001529 gcc/testsuite/gfortran.dg/reshape_order_1.f90 76cb0afc35b5327c7c7e5d8ddad735c6 gcc/testsuite/gfortran.dg/reshape_order_2.f90 *************** a8b8a98f768e4e1e0e5753a852ef5533 gcc/te *** 73180,73185 **** --- 73609,73615 ---- 5fd9fe976b0de499cf640ffc69ee816b gcc/testsuite/gfortran.dg/reshape_pad_1.f90 a83298fcf93f4b95a8fd48b3972e3d75 gcc/testsuite/gfortran.dg/reshape_rank7.f90 82e933fdaa16cdd8a68cea29568b24f8 gcc/testsuite/gfortran.dg/reshape_shape_1.f90 + 7b14b9fbbd15e10935eeb8dfceb9487d gcc/testsuite/gfortran.dg/reshape_shape_2.f90 90dad8b6cf8141a17677751052b77127 gcc/testsuite/gfortran.dg/reshape_source_size_1.f90 afbbe7a3662a692cb231ca26135afc31 gcc/testsuite/gfortran.dg/reshape_transpose_1.f90 b60cb27a87581046d44ce97bb381b07e gcc/testsuite/gfortran.dg/reshape_zerosize_1.f90 *************** b7f0fac05667f630e8f9b90aebe1fea4 gcc/te *** 73248,73253 **** --- 73678,73684 ---- b7f688acbe6b27032e2d16f367317b58 gcc/testsuite/gfortran.dg/select_rank_2.f90 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 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 *************** c137ead9ed9a3cbd4ca5f75d50965b1c gcc/te *** 73312,73317 **** --- 73743,73750 ---- e5ae2b5b89173ed8361161ef10e352e2 gcc/testsuite/gfortran.dg/sequence_types_1.f90 cd908f2e51ce36e1d1deeca7c6ee72f6 gcc/testsuite/gfortran.dg/set_vm_limit.c 8c21b488e7773e67f9472b6a064868b9 gcc/testsuite/gfortran.dg/shape_1.f90 + 2a136a103d2e76c84d90569febf9b783 gcc/testsuite/gfortran.dg/shape_10.f90 + 052a4b2bd7fe6fdc1737283f758ffaec gcc/testsuite/gfortran.dg/shape_11.f90 83165f49617d33a60724f58032240b93 gcc/testsuite/gfortran.dg/shape_2.f90 3c6dfb31a52f344f631d36f369e069bf gcc/testsuite/gfortran.dg/shape_3.f90 3a839d4a8d0dfd6f0b50c08763804e26 gcc/testsuite/gfortran.dg/shape_4.f90 *************** caa7da29771aad612f545bdeb544b4c9 gcc/te *** 73468,73473 **** --- 73901,73907 ---- 5cdebe330092a8119284be48c532d8d9 gcc/testsuite/gfortran.dg/structure_constructor_14.f90 a8c69bca898ff29ba3a6ae2924078fa7 gcc/testsuite/gfortran.dg/structure_constructor_15.f90 25b14e6e8851bd84a6960c3b9ce1be37 gcc/testsuite/gfortran.dg/structure_constructor_16.f90 + 3dbdb30cf91d1bfe2aefcf7e2101376b gcc/testsuite/gfortran.dg/structure_constructor_17.f90 34b1847b506e1397548db8e0aa2a5dee gcc/testsuite/gfortran.dg/structure_constructor_2.f03 b4cea5ac2c6cc89ab88ca3d7673f1483 gcc/testsuite/gfortran.dg/structure_constructor_3.f03 cf05250e492fd4f294f0298ffb5c8bdb gcc/testsuite/gfortran.dg/structure_constructor_4.f03 *************** b48b0b0bccb7566825a45154da80da66 gcc/te *** 73521,73527 **** dccf53db514265c48f2c92d1e6aa8319 gcc/testsuite/gfortran.dg/substr_3.f 6d054e85164109252d8cb0e433ff57ad gcc/testsuite/gfortran.dg/substr_4.f 9cbfabac96be8748ebd2e7c0bed4bb91 gcc/testsuite/gfortran.dg/substr_5.f90 ! 6fc9f98159d986738e731d5b07a7109b gcc/testsuite/gfortran.dg/substr_6.f90 5aacec7f3b63a41c71f1f83e8d5bcdb0 gcc/testsuite/gfortran.dg/substr_7.f90 3149d14be2bfd57fd4b2dbd5c1c8ebaa gcc/testsuite/gfortran.dg/substr_8.f90 acc5d5ef0b41f88cee2142a7f82c4fe1 gcc/testsuite/gfortran.dg/substr_alloc_string_comp_1.f90 --- 73955,73961 ---- dccf53db514265c48f2c92d1e6aa8319 gcc/testsuite/gfortran.dg/substr_3.f 6d054e85164109252d8cb0e433ff57ad gcc/testsuite/gfortran.dg/substr_4.f 9cbfabac96be8748ebd2e7c0bed4bb91 gcc/testsuite/gfortran.dg/substr_5.f90 ! 4d48cdf844980a4533d1ed67dbb2a0a4 gcc/testsuite/gfortran.dg/substr_6.f90 5aacec7f3b63a41c71f1f83e8d5bcdb0 gcc/testsuite/gfortran.dg/substr_7.f90 3149d14be2bfd57fd4b2dbd5c1c8ebaa gcc/testsuite/gfortran.dg/substr_8.f90 acc5d5ef0b41f88cee2142a7f82c4fe1 gcc/testsuite/gfortran.dg/substr_alloc_string_comp_1.f90 *************** c00e10e2dedc2a4d4050941a3ae36ab2 gcc/te *** 73561,73571 **** --- 73995,74007 ---- d175a283aab741037bd1bdee76a76fa5 gcc/testsuite/gfortran.dg/transfer_array_intrinsic_4.f90 c5cef3aa9c3895b4e6b38e993481ff14 gcc/testsuite/gfortran.dg/transfer_array_intrinsic_5.f90 fdabd8c65dcb8fb1bfe06c29c937c219 gcc/testsuite/gfortran.dg/transfer_assumed_size_1.f90 + 1c08633181f8b50ad8fd08ed1f4f207f gcc/testsuite/gfortran.dg/transfer_char_kind4.f90 0d5a3d18a1eeb0de1ca65d86e1cd68f8 gcc/testsuite/gfortran.dg/transfer_check_1.f90 9a2953b8d7639d3d68a7693a2cb88846 gcc/testsuite/gfortran.dg/transfer_check_2.f90 b16324a7bb85ab60eb71418a0761e565 gcc/testsuite/gfortran.dg/transfer_check_3.f90 1374d10203871ed68c005e2af626fbeb gcc/testsuite/gfortran.dg/transfer_check_4.f90 ad625f0340741a09e4be8d42e070139e gcc/testsuite/gfortran.dg/transfer_check_5.f90 + 769481a8d23349d31daa8c1c4bdda73b gcc/testsuite/gfortran.dg/transfer_check_6.f90 76406e3436f42466e7735ed9f5762bd7 gcc/testsuite/gfortran.dg/transfer_class_1.f90 7f1199fe5fa90085dcbb4f81cbcf7062 gcc/testsuite/gfortran.dg/transfer_class_2.f90 4003da30901edcfc6adf19924dc746a2 gcc/testsuite/gfortran.dg/transfer_class_3.f90 *************** fca7571238596b88ba0b767cd69041d7 gcc/te *** 73583,73591 **** 61dc845871f386f900b0ac50b8a1ed35 gcc/testsuite/gfortran.dg/transfer_resolve_4.f90 f0e0bb83d7a933084afe0235adc91044 gcc/testsuite/gfortran.dg/transfer_simplify_1.f90 0e37859572cdbc7ec9804e5e5f50a0d9 gcc/testsuite/gfortran.dg/transfer_simplify_10.f90 ! 28072dd7f3eef057672f7c38728a4ba6 gcc/testsuite/gfortran.dg/transfer_simplify_11.f90 7a9020fc2f84bc7f31ff4cf8822de2ce gcc/testsuite/gfortran.dg/transfer_simplify_12.f90 ! 37010897279c0577b0975bdcac554324 gcc/testsuite/gfortran.dg/transfer_simplify_2.f90 dde58017dce31b9f86dea653194c266e gcc/testsuite/gfortran.dg/transfer_simplify_3.f90 f969144a4ccabad799704e5ecdde6afc gcc/testsuite/gfortran.dg/transfer_simplify_4.f90 7a2c72c430eb2b6cf677f63ffc1ac705 gcc/testsuite/gfortran.dg/transfer_simplify_5.f90 --- 74019,74029 ---- 61dc845871f386f900b0ac50b8a1ed35 gcc/testsuite/gfortran.dg/transfer_resolve_4.f90 f0e0bb83d7a933084afe0235adc91044 gcc/testsuite/gfortran.dg/transfer_simplify_1.f90 0e37859572cdbc7ec9804e5e5f50a0d9 gcc/testsuite/gfortran.dg/transfer_simplify_10.f90 ! 7dbbad160b2cec1a34861ec259ef8f69 gcc/testsuite/gfortran.dg/transfer_simplify_11.f90 7a9020fc2f84bc7f31ff4cf8822de2ce gcc/testsuite/gfortran.dg/transfer_simplify_12.f90 ! 46809d4ffd9fbb0d8d976bcf70c84e44 gcc/testsuite/gfortran.dg/transfer_simplify_13.f90 ! 033fcf43c73ba63f468dc3499e3bdfb2 gcc/testsuite/gfortran.dg/transfer_simplify_15.f90 ! 4e36501f895ecc45ab0347d5a28ef427 gcc/testsuite/gfortran.dg/transfer_simplify_2.f90 dde58017dce31b9f86dea653194c266e gcc/testsuite/gfortran.dg/transfer_simplify_3.f90 f969144a4ccabad799704e5ecdde6afc gcc/testsuite/gfortran.dg/transfer_simplify_4.f90 7a2c72c430eb2b6cf677f63ffc1ac705 gcc/testsuite/gfortran.dg/transfer_simplify_5.f90 *************** a7d68db5c429562164ea47edc8677d14 gcc/te *** 73747,73752 **** --- 74185,74192 ---- b432d7fb6a6aa41a4117f93a3fb4acb3 gcc/testsuite/gfortran.dg/typebound_proc_9.f03 a9c38f145300eee1aaca2ccee4d418fd gcc/testsuite/gfortran.dg/typed_subroutine_1.f90 5fcbccbbe6f25c7610a63673951af1d0 gcc/testsuite/gfortran.dg/ubound_1.f90 + ddea8e97d88b939147b22730616832d2 gcc/testsuite/gfortran.dg/ubsan/pr101624.f90 + ebbb3b8f806e83076bdf2e11cf9dc359 gcc/testsuite/gfortran.dg/ubsan/ubsan.exp 1623cb39a42976237e7817a8a94f1a4a gcc/testsuite/gfortran.dg/unary_operator.f90 0e692a977ecc4ab86f2eddee444794b4 gcc/testsuite/gfortran.dg/uncommon_block_data_1.f90 a3fe3d5aed286d45e58533ee6cd37dd9 gcc/testsuite/gfortran.dg/unconstrained_commons.f *************** fd6e6d00444cf821cc11413aa2179498 gcc/te *** 74950,74955 **** --- 75390,75397 ---- 7d71e600cd387947a72c1a9f7e29f0ca gcc/testsuite/gnat.dg/derived_type5_pkg.ads dc7b3ebaa7caa13b60d6eb8a552ad48d gcc/testsuite/gnat.dg/derived_type6.adb 85b3a46622ba8d5651550a9dda49adf3 gcc/testsuite/gnat.dg/derived_type6.ads + 44054b333f553f9d52b5aae8a29d6c87 gcc/testsuite/gnat.dg/derived_type7.adb + e0b9cf9f7a4c88212b3b340e33e89929 gcc/testsuite/gnat.dg/derived_type7.ads f5b545465e83981c80e3d7c01214b904 gcc/testsuite/gnat.dg/dflt_init_cond.adb 2fbb62544d92c6af0d0b351a83112cd0 gcc/testsuite/gnat.dg/dflt_init_cond_pkg.ads e73ee155657b37d21020188b6985499b gcc/testsuite/gnat.dg/dg.exp *************** fa0a217ef7773f18e2100deca65155e8 gcc/te *** 75651,75656 **** --- 76093,76099 ---- 800283c5dd0dcc98963845af2f46f5b1 gcc/testsuite/gnat.dg/lto24_pkg1.ads 6cc6cb14bbcba172d4f4eeb357613237 gcc/testsuite/gnat.dg/lto24_pkg2.adb 14d0b11f260b0d1752208a98b741658a gcc/testsuite/gnat.dg/lto24_pkg2.ads + ed33690892e43011718347ecca58daff gcc/testsuite/gnat.dg/lto25.adb 2acb4cc31994f1569a3db6ac6613928d gcc/testsuite/gnat.dg/lto4.adb 9b38247c8e825c514f87e2965d931dad gcc/testsuite/gnat.dg/lto4.ads 959fb8bdf4cd1c34347ecfbab19ea60b gcc/testsuite/gnat.dg/lto5.adb *************** e2ce9edab47e6f8e17958fffd5af3935 gcc/te *** 75936,75941 **** --- 76379,76388 ---- be0183a31250d1a9cd930fe7ea1857b6 gcc/testsuite/gnat.dg/opt91.ads 2772233d10666bc3de7ad2c90d19b518 gcc/testsuite/gnat.dg/opt91_pkg.adb e610e24aa950be5f6c35dbb10447cb02 gcc/testsuite/gnat.dg/opt91_pkg.ads + 55332ccdfe2a512b2d23726156ad7fa9 gcc/testsuite/gnat.dg/opt92.adb + cebcd76e2479c79677bbc78316b57186 gcc/testsuite/gnat.dg/opt96.adb + be4ae336c50882da5846142a7791cd3a gcc/testsuite/gnat.dg/opt96_pkg.adb + 15c1a01fd2ed3d1a51b5d70bb800b81b gcc/testsuite/gnat.dg/opt96_pkg.ads feb376d91f5514b647b1ad61b025d828 gcc/testsuite/gnat.dg/opt9_pkg.ads 0a9bf4dbd445ef99721501592f66cea2 gcc/testsuite/gnat.dg/others1.adb 9f62042ad37161c5182cb92d70d0b24d gcc/testsuite/gnat.dg/out_param.adb *************** db83ca8da3226bea725ce43acaee8ba1 gcc/te *** 76721,76729 **** e0b42cd0bffe14a0454e6947c1576b0d gcc/testsuite/gnat.dg/unchecked_convert2.adb ab71b7c411a24b92bc4692458e82095e gcc/testsuite/gnat.dg/unchecked_convert3.adb d11f3831351000de17c86545b36e9825 gcc/testsuite/gnat.dg/unchecked_convert4.adb ! a5a1781a9b40c44bd5dbb95b32e2f178 gcc/testsuite/gnat.dg/unchecked_convert5.adb bb1207d00011fa510617f94b62a94456 gcc/testsuite/gnat.dg/unchecked_convert5b.adb ! c4dac9d7e9ac17a744626ef44ae553ab gcc/testsuite/gnat.dg/unchecked_convert6.adb 9b5f1301a020de2359815aeda0976024 gcc/testsuite/gnat.dg/unchecked_convert6b.adb dabd5b43f529cc66c1c6b885a976833a gcc/testsuite/gnat.dg/unchecked_convert7.adb e8e39c388c32e8e9b60efbb677b05921 gcc/testsuite/gnat.dg/unchecked_convert8.adb --- 77168,77176 ---- e0b42cd0bffe14a0454e6947c1576b0d gcc/testsuite/gnat.dg/unchecked_convert2.adb ab71b7c411a24b92bc4692458e82095e gcc/testsuite/gnat.dg/unchecked_convert3.adb d11f3831351000de17c86545b36e9825 gcc/testsuite/gnat.dg/unchecked_convert4.adb ! 2eca78d256d8e8011721f3197334e1bf gcc/testsuite/gnat.dg/unchecked_convert5.adb bb1207d00011fa510617f94b62a94456 gcc/testsuite/gnat.dg/unchecked_convert5b.adb ! 9703af43dac2a467e5b568ac089dec31 gcc/testsuite/gnat.dg/unchecked_convert6.adb 9b5f1301a020de2359815aeda0976024 gcc/testsuite/gnat.dg/unchecked_convert6b.adb dabd5b43f529cc66c1c6b885a976833a gcc/testsuite/gnat.dg/unchecked_convert7.adb e8e39c388c32e8e9b60efbb677b05921 gcc/testsuite/gnat.dg/unchecked_convert8.adb *************** cd644384eebc8c1b05a70f19e4fc8854 gcc/te *** 78045,78052 **** 340e08c9aef97a2da8f4cd4568d52675 gcc/testsuite/jit.dg/add-driver-options-testlib.c b3ab3a899b3ad1ec73742b583dd102d4 gcc/testsuite/jit.dg/all-non-failing-tests.h 7bc42e89ae77872c8fc581b4babf1832 gcc/testsuite/jit.dg/create-code-for-hello-world-executable.h ! e2d6abe9d39ef55e33a36bbe4db25586 gcc/testsuite/jit.dg/harness.h ! 691449df6000cdc0c7191af654885edc gcc/testsuite/jit.dg/jit.exp 3fd6900c9d1d0edd53191542d96ffcec gcc/testsuite/jit.dg/test-accessing-bitfield.c 790dcf4e4a5c3dce84639ef815265f21 gcc/testsuite/jit.dg/test-accessing-struct.c 60caef14bfb482627a962469a4524fce gcc/testsuite/jit.dg/test-accessing-union.c --- 78492,78499 ---- 340e08c9aef97a2da8f4cd4568d52675 gcc/testsuite/jit.dg/add-driver-options-testlib.c b3ab3a899b3ad1ec73742b583dd102d4 gcc/testsuite/jit.dg/all-non-failing-tests.h 7bc42e89ae77872c8fc581b4babf1832 gcc/testsuite/jit.dg/create-code-for-hello-world-executable.h ! 950bf03903ed927f5a64a0047d5a11bf gcc/testsuite/jit.dg/harness.h ! fd0d4851f311391739c1768a5fb5431a gcc/testsuite/jit.dg/jit.exp 3fd6900c9d1d0edd53191542d96ffcec gcc/testsuite/jit.dg/test-accessing-bitfield.c 790dcf4e4a5c3dce84639ef815265f21 gcc/testsuite/jit.dg/test-accessing-struct.c 60caef14bfb482627a962469a4524fce gcc/testsuite/jit.dg/test-accessing-union.c *************** af4d6049c526358b0bced72089af7076 gcc/te *** 78209,78215 **** 798104da27cee008686141a98b520f8b gcc/testsuite/lib/options.exp 9440d87b50965ff5486b551ef11a634a gcc/testsuite/lib/plugin-support.exp cd778530c8ca650e7a6e2de7066010bd gcc/testsuite/lib/profopt.exp ! e7cfbfe7b4c97294430e789d215cd022 gcc/testsuite/lib/prune.exp 2ad9a8996d5e8fa158376c2f08e51439 gcc/testsuite/lib/scanasm.exp b0a4036b6c7e5c72770103d9d03169c5 gcc/testsuite/lib/scandump.exp 96a8959535595b881ea8a82d0869c90b gcc/testsuite/lib/scanipa.exp --- 78656,78662 ---- 798104da27cee008686141a98b520f8b gcc/testsuite/lib/options.exp 9440d87b50965ff5486b551ef11a634a gcc/testsuite/lib/plugin-support.exp cd778530c8ca650e7a6e2de7066010bd gcc/testsuite/lib/profopt.exp ! 658ad08ae0f9384c016baf7141dede6d gcc/testsuite/lib/prune.exp 2ad9a8996d5e8fa158376c2f08e51439 gcc/testsuite/lib/scanasm.exp b0a4036b6c7e5c72770103d9d03169c5 gcc/testsuite/lib/scandump.exp 96a8959535595b881ea8a82d0869c90b gcc/testsuite/lib/scanipa.exp *************** d632d5568c00760aea7b18467091554c gcc/te *** 78222,78228 **** de7c3a30aab1a4360904bd68322b8c39 gcc/testsuite/lib/scanwpaipa.exp 84d4d1fa2ac6a05232c49ad827939a46 gcc/testsuite/lib/target-libpath.exp ca50260c50a30bdb6f74ff883e63b78b gcc/testsuite/lib/target-supports-dg.exp ! 124ad6f4dac4b3043ea139e99ffc3936 gcc/testsuite/lib/target-supports.exp 201116acbb88a91edc571f6c7b961f79 gcc/testsuite/lib/target-utils.exp 2dcea44ea4fe54415e381cfa752f4c4d gcc/testsuite/lib/timeout-dg.exp d4e470f82175a3f3c70c1de64a1e104d gcc/testsuite/lib/timeout.exp --- 78669,78675 ---- de7c3a30aab1a4360904bd68322b8c39 gcc/testsuite/lib/scanwpaipa.exp 84d4d1fa2ac6a05232c49ad827939a46 gcc/testsuite/lib/target-libpath.exp ca50260c50a30bdb6f74ff883e63b78b gcc/testsuite/lib/target-supports-dg.exp ! 6dc7d183e9cec65a00791e48498f56aa gcc/testsuite/lib/target-supports.exp 201116acbb88a91edc571f6c7b961f79 gcc/testsuite/lib/target-utils.exp 2dcea44ea4fe54415e381cfa752f4c4d gcc/testsuite/lib/timeout-dg.exp d4e470f82175a3f3c70c1de64a1e104d gcc/testsuite/lib/timeout.exp *************** ac0b35dcfcf72480c040349b2b8a874b gcc/te *** 78286,78292 **** f6a135d669303e10360f4a9e17664aa7 gcc/testsuite/obj-c++.dg/cxx-class-1.mm 7a5a474af4c3ae26683ee29295314d7b gcc/testsuite/obj-c++.dg/cxx-ivars-1.mm 2dd2f7dd6f655732fc606d8c85af825b gcc/testsuite/obj-c++.dg/cxx-ivars-2.mm ! 118f7827cc56ea7303e814e19ff4f7a5 gcc/testsuite/obj-c++.dg/cxx-ivars-3.mm 0f4f03268c6b5629c2c23fe7fbc06966 gcc/testsuite/obj-c++.dg/cxx-scope-1.mm 74ea4974ad0f897a229d4bd99f47da95 gcc/testsuite/obj-c++.dg/cxx-scope-2.mm 4d63d224c8c642188a58882a0609e394 gcc/testsuite/obj-c++.dg/defs.mm --- 78733,78739 ---- f6a135d669303e10360f4a9e17664aa7 gcc/testsuite/obj-c++.dg/cxx-class-1.mm 7a5a474af4c3ae26683ee29295314d7b gcc/testsuite/obj-c++.dg/cxx-ivars-1.mm 2dd2f7dd6f655732fc606d8c85af825b gcc/testsuite/obj-c++.dg/cxx-ivars-2.mm ! e91047651063a1662428088ff7456f48 gcc/testsuite/obj-c++.dg/cxx-ivars-3.mm 0f4f03268c6b5629c2c23fe7fbc06966 gcc/testsuite/obj-c++.dg/cxx-scope-1.mm 74ea4974ad0f897a229d4bd99f47da95 gcc/testsuite/obj-c++.dg/cxx-scope-2.mm 4d63d224c8c642188a58882a0609e394 gcc/testsuite/obj-c++.dg/defs.mm *************** b6a4bff612a08ec461838ac1b3bd23f1 gcc/te *** 78393,78402 **** ae0cb1e1f2ed9485ab1abd0d8669c498 gcc/testsuite/obj-c++.dg/naming-3.mm dcb5ecceff49837d638a19ab2eabd0ad gcc/testsuite/obj-c++.dg/naming-4.mm bb8ccf448c201adbf05356ac551899fb gcc/testsuite/obj-c++.dg/no-extra-load.mm ! e5781d45f8249482300a6cabf2eefd87 gcc/testsuite/obj-c++.dg/objc-gc-3.mm bd3b42583db47ebcc7fac037f85f00ed gcc/testsuite/obj-c++.dg/overload-1.mm 7193fa5bf4ead3ac26381fbfdb815f0d gcc/testsuite/obj-c++.dg/plugin/diagnostic-test-expressions-1.mm 988af69f25b97f3db48a0c0233e531d7 gcc/testsuite/obj-c++.dg/plugin/plugin.exp 8aa79ecb56c90fe51464150a135fe71f gcc/testsuite/obj-c++.dg/pr23709.mm 8480d22a4388c485c49d1c703c34f7f7 gcc/testsuite/obj-c++.dg/pr24393.mm 2e9567e68880e80a9fa203bba6e86d7f gcc/testsuite/obj-c++.dg/pr28049.mm --- 78840,78852 ---- ae0cb1e1f2ed9485ab1abd0d8669c498 gcc/testsuite/obj-c++.dg/naming-3.mm dcb5ecceff49837d638a19ab2eabd0ad gcc/testsuite/obj-c++.dg/naming-4.mm bb8ccf448c201adbf05356ac551899fb gcc/testsuite/obj-c++.dg/no-extra-load.mm ! 1c39d0d9e54d7c124e4e36d7ac5c8033 gcc/testsuite/obj-c++.dg/objc-gc-3.mm bd3b42583db47ebcc7fac037f85f00ed gcc/testsuite/obj-c++.dg/overload-1.mm 7193fa5bf4ead3ac26381fbfdb815f0d gcc/testsuite/obj-c++.dg/plugin/diagnostic-test-expressions-1.mm 988af69f25b97f3db48a0c0233e531d7 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 8aa79ecb56c90fe51464150a135fe71f gcc/testsuite/obj-c++.dg/pr23709.mm 8480d22a4388c485c49d1c703c34f7f7 gcc/testsuite/obj-c++.dg/pr24393.mm 2e9567e68880e80a9fa203bba6e86d7f gcc/testsuite/obj-c++.dg/pr28049.mm *************** d7940785b72ab02856b58bf8b4c3d710 gcc/te *** 78872,78878 **** b0a4bc88be3fcbba334ad86617c9724e gcc/testsuite/objc.dg/objc-foreach-3.m d6bb76e151385d5dcc0bccac5e79fa6e gcc/testsuite/objc.dg/objc-foreach-4.m 7aa5deeefbee0740247f45a83aea37f4 gcc/testsuite/objc.dg/objc-foreach-5.m ! cb9b5197bed9aef6cef86220a5ab2fd9 gcc/testsuite/objc.dg/objc-gc-4.m e2b871afc37f1772b337d989244b97c6 gcc/testsuite/objc.dg/objc-nofilename-1.m e813e9eab1b738541a5a77be6a3e194f gcc/testsuite/objc.dg/param-1.m 8c15bc469e56fdb17a7b24540bf21491 gcc/testsuite/objc.dg/pch/interface-1.hs --- 79322,79328 ---- b0a4bc88be3fcbba334ad86617c9724e gcc/testsuite/objc.dg/objc-foreach-3.m d6bb76e151385d5dcc0bccac5e79fa6e gcc/testsuite/objc.dg/objc-foreach-4.m 7aa5deeefbee0740247f45a83aea37f4 gcc/testsuite/objc.dg/objc-foreach-5.m ! 608ea2106bb549a54ca754a76a22fde2 gcc/testsuite/objc.dg/objc-gc-4.m e2b871afc37f1772b337d989244b97c6 gcc/testsuite/objc.dg/objc-nofilename-1.m e813e9eab1b738541a5a77be6a3e194f gcc/testsuite/objc.dg/param-1.m 8c15bc469e56fdb17a7b24540bf21491 gcc/testsuite/objc.dg/pch/interface-1.hs *************** e813e9eab1b738541a5a77be6a3e194f gcc/te *** 78880,78885 **** --- 79330,79338 ---- f00a11eb512313ae0ba7accf6031ce44 gcc/testsuite/objc.dg/pch/pch.exp 04ad83a2a7e1ee78beadf39e6a17a42e gcc/testsuite/objc.dg/plugin/diagnostic-test-expressions-1.m 2418c529051ba9468f5ba0fd3db5df0c 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 4bde0ee2020d54cbaccb19eddeb1ff93 gcc/testsuite/objc.dg/pr18255.m 31c55f97ea5b980eec7b074cf9577cb9 gcc/testsuite/objc.dg/pr23214.m e220e57343bac32bbc315171b87b1bba gcc/testsuite/objc.dg/pr23709.m *************** cb93d16284083d3b9b3c4e20168620d6 gcc/tr *** 79251,79257 **** 152e8165771ecddccc9d44e20851353b gcc/tree-affine.c 0b109601bb4905e4f569439451ec6fa1 gcc/tree-affine.h 6bb5dae4af5b869cdbd66834af378767 gcc/tree-call-cdce.c ! b4478bc3fe24048b44ebe5b7f6f78918 gcc/tree-cfg.c 8827d749b1f112912acd36b5fa86719f gcc/tree-cfg.h 69569b7be3c796a277a2083e8d5ee2c5 gcc/tree-cfgcleanup.c f441bd0bb33f69c0d7f1c0057582e027 gcc/tree-cfgcleanup.h --- 79704,79710 ---- 152e8165771ecddccc9d44e20851353b gcc/tree-affine.c 0b109601bb4905e4f569439451ec6fa1 gcc/tree-affine.h 6bb5dae4af5b869cdbd66834af378767 gcc/tree-call-cdce.c ! b0831adde135e8215b9500c04965b988 gcc/tree-cfg.c 8827d749b1f112912acd36b5fa86719f gcc/tree-cfg.h 69569b7be3c796a277a2083e8d5ee2c5 gcc/tree-cfgcleanup.c f441bd0bb33f69c0d7f1c0057582e027 gcc/tree-cfgcleanup.h *************** f441bd0bb33f69c0d7f1c0057582e027 gcc/tr *** 79259,79265 **** 4e1efeebec075dc15c3b4e348b263b64 gcc/tree-chrec.h 80b8c4f7bfab38ae3b39c1b179720cbb gcc/tree-complex.c e66a96b97f79de39ed0463c8d517c16c gcc/tree-core.h ! 6fc66c25f971d9f112b8748abaa67b4f gcc/tree-data-ref.c b733765819e76ff58bd73dca82313318 gcc/tree-data-ref.h 6f07214ef7e8f0ee9c189cb8dd89af6f gcc/tree-dfa.c 7f0ef8abf89f1173c38018b0b12d6a14 gcc/tree-dfa.h --- 79712,79718 ---- 4e1efeebec075dc15c3b4e348b263b64 gcc/tree-chrec.h 80b8c4f7bfab38ae3b39c1b179720cbb gcc/tree-complex.c e66a96b97f79de39ed0463c8d517c16c gcc/tree-core.h ! 6959d811ef875ad745a7f4f95331cd42 gcc/tree-data-ref.c b733765819e76ff58bd73dca82313318 gcc/tree-data-ref.h 6f07214ef7e8f0ee9c189cb8dd89af6f gcc/tree-dfa.c 7f0ef8abf89f1173c38018b0b12d6a14 gcc/tree-dfa.h *************** d459e657ac4e11e8e50ab8429f4b15fb gcc/tr *** 79268,79290 **** 608263f6448ac00b6771eb4fe778e47a gcc/tree-diagnostic.h c64b90c644a821261a72935b93ba3540 gcc/tree-dump.c 77f5351a825fd3910011228b4d5d213a gcc/tree-dump.h ! a5953bc67f96a8cd9d2e169848a29db0 gcc/tree-eh.c b4be426da366ec553dae1b61ab01654e gcc/tree-eh.h 9b29c3eefd85c741f33e67a0425c00fe gcc/tree-emutls.c 208a079bcf4a4809f93e36a3d682fa1e gcc/tree-hash-traits.h 225440007d2169d1603a2d188e9adb72 gcc/tree-hasher.h fc64052660585b3d6d27ef83d34ddf40 gcc/tree-if-conv.c 0fe86b2b9a95865dd2aea247222d4dcf gcc/tree-if-conv.h ! e03cee77c9e625d214a84bc2b4196ae0 gcc/tree-inline.c 8454acd4d01cb3582c705e88d74d3283 gcc/tree-inline.h b78983a1e11b29b129e9c3085568c653 gcc/tree-into-ssa.c 6f7f61edb92c610f51c0a4c63816d0c9 gcc/tree-into-ssa.h 128a1bf3cc21b0667fce6afbc582ece4 gcc/tree-iterator.c 0c10dc55c53a2f9a6148855ba4710b52 gcc/tree-iterator.h ! dc9521501236daa47963d7ac49d3fbfb gcc/tree-loop-distribution.c ! c634a4489f77563ee19d23f1f195e5ee gcc/tree-nested.c 97f5a7e0334053228b88087b732f6a67 gcc/tree-nested.h ! 436506b70e017c3ee190301caaacd625 gcc/tree-nrv.c 0334a4500c28bc021f639d715636c4dc gcc/tree-object-size.c 25b3b5a3be46daaf04c91a84c305b6ea gcc/tree-object-size.h 4fcff3dca0736d092d6bfd5f6a327d26 gcc/tree-outof-ssa.c --- 79721,79743 ---- 608263f6448ac00b6771eb4fe778e47a gcc/tree-diagnostic.h c64b90c644a821261a72935b93ba3540 gcc/tree-dump.c 77f5351a825fd3910011228b4d5d213a gcc/tree-dump.h ! 079542970b731d389267e6a3730ed4a6 gcc/tree-eh.c b4be426da366ec553dae1b61ab01654e gcc/tree-eh.h 9b29c3eefd85c741f33e67a0425c00fe gcc/tree-emutls.c 208a079bcf4a4809f93e36a3d682fa1e gcc/tree-hash-traits.h 225440007d2169d1603a2d188e9adb72 gcc/tree-hasher.h fc64052660585b3d6d27ef83d34ddf40 gcc/tree-if-conv.c 0fe86b2b9a95865dd2aea247222d4dcf gcc/tree-if-conv.h ! 799bd1fec4db3cca20d6fb4d217b2c9a gcc/tree-inline.c 8454acd4d01cb3582c705e88d74d3283 gcc/tree-inline.h b78983a1e11b29b129e9c3085568c653 gcc/tree-into-ssa.c 6f7f61edb92c610f51c0a4c63816d0c9 gcc/tree-into-ssa.h 128a1bf3cc21b0667fce6afbc582ece4 gcc/tree-iterator.c 0c10dc55c53a2f9a6148855ba4710b52 gcc/tree-iterator.h ! 9adfa23fdb9a946b91be7a3afdb6aa16 gcc/tree-loop-distribution.c ! cde5a702e58751dbff7847d535256346 gcc/tree-nested.c 97f5a7e0334053228b88087b732f6a67 gcc/tree-nested.h ! e220e44e761cee85214b2cafa2e4849b gcc/tree-nrv.c 0334a4500c28bc021f639d715636c4dc gcc/tree-object-size.c 25b3b5a3be46daaf04c91a84c305b6ea gcc/tree-object-size.h 4fcff3dca0736d092d6bfd5f6a327d26 gcc/tree-outof-ssa.c *************** b7424dd035be92255e7eb0bdd64347b9 gcc/tr *** 79294,79306 **** a4723858b16bec650ed43e6d94d254b7 gcc/tree-pass.h 8bf04fc2b4fa5e0828ee5be7f0f6a03a gcc/tree-phinodes.c b4e0a37f771fc4a76ce646464d82d9f5 gcc/tree-phinodes.h ! 409164e334f7ca8d194340919650dc86 gcc/tree-predcom.c 430e0d29b7b4e61a154cdb16fa939194 gcc/tree-pretty-print.c 32e70ee5db96badf930dada0dbbf484d gcc/tree-pretty-print.h 30e1ca6d5662e9320f1c3aa8bd91cfcb gcc/tree-profile.c c1752b439ea86c5f62b8119caa1c6afc gcc/tree-scalar-evolution.c 017de0578fb1371eef8cf4955b47471f gcc/tree-scalar-evolution.h ! 5e5a335be1dfe77a6a139043d2faf459 gcc/tree-sra.c 71cc20d4743a15fefb27446e7653e2d1 gcc/tree-sra.h 87d8129acd88720031e13284b94d5bd1 gcc/tree-ssa-address.c fbc43c20731949aace70a7fd40e3686a gcc/tree-ssa-address.h --- 79747,79759 ---- a4723858b16bec650ed43e6d94d254b7 gcc/tree-pass.h 8bf04fc2b4fa5e0828ee5be7f0f6a03a gcc/tree-phinodes.c b4e0a37f771fc4a76ce646464d82d9f5 gcc/tree-phinodes.h ! 075d061419cd91621849e3ca319ddf5b gcc/tree-predcom.c 430e0d29b7b4e61a154cdb16fa939194 gcc/tree-pretty-print.c 32e70ee5db96badf930dada0dbbf484d gcc/tree-pretty-print.h 30e1ca6d5662e9320f1c3aa8bd91cfcb gcc/tree-profile.c c1752b439ea86c5f62b8119caa1c6afc gcc/tree-scalar-evolution.c 017de0578fb1371eef8cf4955b47471f gcc/tree-scalar-evolution.h ! c7c8fc4b09a196228fa1f9c110a4d369 gcc/tree-sra.c 71cc20d4743a15fefb27446e7653e2d1 gcc/tree-sra.h 87d8129acd88720031e13284b94d5bd1 gcc/tree-ssa-address.c fbc43c20731949aace70a7fd40e3686a gcc/tree-ssa-address.h *************** fb5fb25c0bf84f4deb3f9b217455a9bb gcc/tr *** 79313,79328 **** ac0b1053dfb49bc5b0a1730094fc3ea9 gcc/tree-ssa-copy.c e98fdeb69a40f7971fecbcf25d91b5e2 gcc/tree-ssa-dce.c 4d3bb522f662c24caa6940d29527d3bf gcc/tree-ssa-dce.h ! 956bfaf1dc4e00e49e50d6a5496a4ef0 gcc/tree-ssa-dom.c 3fd94e5b2a00ff49e08ceed53182ee38 gcc/tree-ssa-dom.h 6e11b9149ccd3f77438a55a188da14f4 gcc/tree-ssa-dse.c 1e30750dd1407ad9992723b0e011b9b0 gcc/tree-ssa-dse.h ! 41377f291aa47751027acae528875a66 gcc/tree-ssa-forwprop.c 3974f63e7f9ff4d11ef8b4bea9759beb gcc/tree-ssa-ifcombine.c 81b92a9373657b4df491c12fafccd4ad gcc/tree-ssa-live.c 7444b51f18ddb0cd9e03cd1826756441 gcc/tree-ssa-live.h 73da603af35d7ef37b8496ebd7dca5eb gcc/tree-ssa-loop-ch.c ! da87e3c26bb0fec6b86912924d506725 gcc/tree-ssa-loop-im.c 9b06e443cde46a1c6558df7f4abda805 gcc/tree-ssa-loop-ivcanon.c 8287b51164ff1e134de843a506bb7dae gcc/tree-ssa-loop-ivopts.c 0caccb8fc15f362630bb5378f818e683 gcc/tree-ssa-loop-ivopts.h --- 79766,79781 ---- ac0b1053dfb49bc5b0a1730094fc3ea9 gcc/tree-ssa-copy.c e98fdeb69a40f7971fecbcf25d91b5e2 gcc/tree-ssa-dce.c 4d3bb522f662c24caa6940d29527d3bf gcc/tree-ssa-dce.h ! 034e6355a333834ee627ca3b1a0a6327 gcc/tree-ssa-dom.c 3fd94e5b2a00ff49e08ceed53182ee38 gcc/tree-ssa-dom.h 6e11b9149ccd3f77438a55a188da14f4 gcc/tree-ssa-dse.c 1e30750dd1407ad9992723b0e011b9b0 gcc/tree-ssa-dse.h ! 99bb7ef01f1917c969345e25caf234c8 gcc/tree-ssa-forwprop.c 3974f63e7f9ff4d11ef8b4bea9759beb gcc/tree-ssa-ifcombine.c 81b92a9373657b4df491c12fafccd4ad gcc/tree-ssa-live.c 7444b51f18ddb0cd9e03cd1826756441 gcc/tree-ssa-live.h 73da603af35d7ef37b8496ebd7dca5eb gcc/tree-ssa-loop-ch.c ! d2095c83dae5f50f4031680fea6684d9 gcc/tree-ssa-loop-im.c 9b06e443cde46a1c6558df7f4abda805 gcc/tree-ssa-loop-ivcanon.c 8287b51164ff1e134de843a506bb7dae gcc/tree-ssa-loop-ivopts.c 0caccb8fc15f362630bb5378f818e683 gcc/tree-ssa-loop-ivopts.h *************** c536c9cfad3a0d377acc31ae84295eaf gcc/tr *** 79335,79357 **** 8d51e8c65b9d2e2082d77563f6f9117c gcc/tree-ssa-loop-unswitch.c 5fb07d7f3d6daae2c7d4dde424ce1bf5 gcc/tree-ssa-loop.c 6d02c14ee9afd91ea8461989c7199824 gcc/tree-ssa-loop.h ! 3060fe19b8ceb594edf70ad246e8872c gcc/tree-ssa-math-opts.c 28bd07bfafe14bfd4c7d52df1a34fba3 gcc/tree-ssa-operands.c a9125a7ed5ffe04afa03c4e509e26e87 gcc/tree-ssa-operands.h ! 2faddc7dd3926e8cf469abf6deec0c7b gcc/tree-ssa-phiopt.c ed91c7af1f1877eee14288a9011c4604 gcc/tree-ssa-phiprop.c ! 0261bf5dc083192f2cb6c12acfcf84e5 gcc/tree-ssa-pre.c ! 0137091ad8dab1655b8d85e0f46cbbf7 gcc/tree-ssa-propagate.c ! 341640b7dbbc9edd8f8c8d9c2eb4e75a gcc/tree-ssa-propagate.h ! 4ba766197a426ea799af584cabe67832 gcc/tree-ssa-reassoc.c ! 80a3b9f704ca43e5cf74c2aa6df40d4c gcc/tree-ssa-sccvn.c 258ee06a3998b92f8c532aee82ba18e2 gcc/tree-ssa-sccvn.h feb7190fa935b6d25c621f31953a2228 gcc/tree-ssa-scopedtables.c 47b598298fa61c494505b9f430f243cf gcc/tree-ssa-scopedtables.h 893c3a2e43ffc65fb738bec71a93469d gcc/tree-ssa-sink.c c1e102a81f239575fbf259d47eb5e7c0 gcc/tree-ssa-strlen.c 8f45fcfe9c63e9106a68a75a236ac03a gcc/tree-ssa-strlen.h ! 4a8069ef479b5d61bbe2f64e6f68c75e gcc/tree-ssa-structalias.c 3dcabc4321b031865db6d427ec0f2c5d gcc/tree-ssa-tail-merge.c f685f69789eecc07be8cc42011b1ed06 gcc/tree-ssa-ter.c 50b5c86a5520c43bd146748db9735042 gcc/tree-ssa-ter.h --- 79788,79810 ---- 8d51e8c65b9d2e2082d77563f6f9117c gcc/tree-ssa-loop-unswitch.c 5fb07d7f3d6daae2c7d4dde424ce1bf5 gcc/tree-ssa-loop.c 6d02c14ee9afd91ea8461989c7199824 gcc/tree-ssa-loop.h ! ecf0f12ee8d2332944008e566a246cd3 gcc/tree-ssa-math-opts.c 28bd07bfafe14bfd4c7d52df1a34fba3 gcc/tree-ssa-operands.c a9125a7ed5ffe04afa03c4e509e26e87 gcc/tree-ssa-operands.h ! 13367be27c3971a75a61c93e4f37438b gcc/tree-ssa-phiopt.c ed91c7af1f1877eee14288a9011c4604 gcc/tree-ssa-phiprop.c ! 769f59bc5599d78b19aae3327674fda7 gcc/tree-ssa-pre.c ! 47231627d5b9c1bdccc192ad9bffcdfc gcc/tree-ssa-propagate.c ! df5bfed9047239abd92621f1e539d742 gcc/tree-ssa-propagate.h ! 36994b3260c265e6c49c6afbeb541866 gcc/tree-ssa-reassoc.c ! ed5bffc408c0169ffa4966e4169cb76e gcc/tree-ssa-sccvn.c 258ee06a3998b92f8c532aee82ba18e2 gcc/tree-ssa-sccvn.h feb7190fa935b6d25c621f31953a2228 gcc/tree-ssa-scopedtables.c 47b598298fa61c494505b9f430f243cf gcc/tree-ssa-scopedtables.h 893c3a2e43ffc65fb738bec71a93469d gcc/tree-ssa-sink.c c1e102a81f239575fbf259d47eb5e7c0 gcc/tree-ssa-strlen.c 8f45fcfe9c63e9106a68a75a236ac03a gcc/tree-ssa-strlen.h ! e0e046f2620756f55795dd38bd0331b8 gcc/tree-ssa-structalias.c 3dcabc4321b031865db6d427ec0f2c5d gcc/tree-ssa-tail-merge.c f685f69789eecc07be8cc42011b1ed06 gcc/tree-ssa-ter.c 50b5c86a5520c43bd146748db9735042 gcc/tree-ssa-ter.h *************** fb773867654f4facf8ba8f98ea0ed1ec gcc/tr *** 79372,79396 **** f48b945e98da024aa93e2fa29643349a gcc/tree-streamer-out.c 71c508b114cbb1dc7f87a5a74986446f gcc/tree-streamer.c c8ba0af2809bd844311a92b58441929d gcc/tree-streamer.h ! eabe35289d23fec09215131864bd847e gcc/tree-switch-conversion.c ! bc72952b759993367be463e8d044707e gcc/tree-switch-conversion.h cc86acc5bbeaf6edcac80f0418ee00d9 gcc/tree-tailcall.c ! ae02f44bb7e76401230ad10b357c9931 gcc/tree-vect-data-refs.c 4067795b0cc6562813aa9328f7a7f673 gcc/tree-vect-generic.c ! 2c09403b2a3f91e0b047cac2a81e6882 gcc/tree-vect-loop-manip.c ! b15eef53ef007019b0a7565f1318003c gcc/tree-vect-loop.c 5678e693f30e0209186170f8b86f6a34 gcc/tree-vect-patterns.c ! 72ab6fd3883c6c0e2da79bd7a2974977 gcc/tree-vect-slp.c ! 40cfa06c4ed5cbbb60cb5d50b29e5709 gcc/tree-vect-stmts.c 8e180bd98a1775eb97d5fc158f723534 gcc/tree-vector-builder.c d59856be0034d20fa3db4273fc8fa4bc gcc/tree-vector-builder.h 5846dba86cea5ebd56a930641129abc5 gcc/tree-vectorizer.c 10751a79fe750495853f00e04157d3bf gcc/tree-vectorizer.h c9783129905aec6436d087c4687eb51c gcc/tree-vrp.c c8c0df1c1023f580bc46385a5b4c1398 gcc/tree-vrp.h ! cc952414baf3072562053d9ada1db93e gcc/tree.c feec14642f58666703a84493d633bf44 gcc/tree.def ! 523319a1a4fbb5060cc6eee6a533ac05 gcc/tree.h 1b65ea609f67932622f25f55787ab458 gcc/treestruct.def 13f52514cd082aaef51e5bf641c95001 gcc/tristate.cc f65513b8bb1e01109b10dae081b65514 gcc/tristate.h --- 79825,79849 ---- f48b945e98da024aa93e2fa29643349a gcc/tree-streamer-out.c 71c508b114cbb1dc7f87a5a74986446f gcc/tree-streamer.c c8ba0af2809bd844311a92b58441929d gcc/tree-streamer.h ! 5d2c07ac0a64031597196039369f7eac gcc/tree-switch-conversion.c ! 977749f5480f3f9350cfb41f689d8d14 gcc/tree-switch-conversion.h cc86acc5bbeaf6edcac80f0418ee00d9 gcc/tree-tailcall.c ! ef61ebae1e5f6cfe36e657e37f539ec5 gcc/tree-vect-data-refs.c 4067795b0cc6562813aa9328f7a7f673 gcc/tree-vect-generic.c ! 57ee1fbc28ded6a3a8142efbd2bb6740 gcc/tree-vect-loop-manip.c ! 8d96a9519db07c868c088372afb6a194 gcc/tree-vect-loop.c 5678e693f30e0209186170f8b86f6a34 gcc/tree-vect-patterns.c ! 6ffb6cac39d587704d096cf277f45ceb gcc/tree-vect-slp.c ! 90328dc08cd3305a7d9783b311af1ff3 gcc/tree-vect-stmts.c 8e180bd98a1775eb97d5fc158f723534 gcc/tree-vector-builder.c d59856be0034d20fa3db4273fc8fa4bc gcc/tree-vector-builder.h 5846dba86cea5ebd56a930641129abc5 gcc/tree-vectorizer.c 10751a79fe750495853f00e04157d3bf gcc/tree-vectorizer.h c9783129905aec6436d087c4687eb51c gcc/tree-vrp.c c8c0df1c1023f580bc46385a5b4c1398 gcc/tree-vrp.h ! a0ca5a10b46bcc59476e360c4f031645 gcc/tree.c feec14642f58666703a84493d633bf44 gcc/tree.def ! c0379c1a37b7ab3d7e1bd0f88f887eb9 gcc/tree.h 1b65ea609f67932622f25f55787ab458 gcc/treestruct.def 13f52514cd082aaef51e5bf641c95001 gcc/tristate.cc f65513b8bb1e01109b10dae081b65514 gcc/tristate.h *************** d921215311113c088937334a5d79f91b gcc/ts *** 79400,79416 **** 1bbc90c1a741857b5f75c2b60bb924e3 gcc/typeclass.h 99185f183dff800aaa8b73b97c8f2b8f gcc/typed-splay-tree.c 618469e5e2de941ab376ccfbd38369fd gcc/typed-splay-tree.h ! 2b599499676d17ef91aabe6e8fd526bd gcc/ubsan.c 4ff057d55e17c93d675efbf67e4af3de gcc/ubsan.h a274bda31817b40877c1293fe8cec7dc gcc/unique-ptr-tests.cc ! 0f8674601233352c4c3298ee244dfb17 gcc/valtrack.c e21a74085dfaef8cdf97cab939645275 gcc/valtrack.h 23be5b0de251667efed8aa7b7b27651b gcc/value-prof.c a5a484b45e88c90e993b634185342d71 gcc/value-prof.h 339e0a29b5b2f84efc17bf9c6062f7fe gcc/value-range.cc b0d9e19182f317114b4ace7dd825aae4 gcc/value-range.h ! 6c94b16215c5d4ef79ed0cb652d44037 gcc/var-tracking.c ! a08cbe33e6c0f3834805def5ea928c64 gcc/varasm.c 653be5477fff14f116c6c0d91ccb8ed8 gcc/varasm.h c240a2fff05699dd50965775a1df8244 gcc/varpool.c 8f1a5181ac5eb5727cfdfb414fc2a534 gcc/vec-perm-indices.c --- 79853,79869 ---- 1bbc90c1a741857b5f75c2b60bb924e3 gcc/typeclass.h 99185f183dff800aaa8b73b97c8f2b8f gcc/typed-splay-tree.c 618469e5e2de941ab376ccfbd38369fd gcc/typed-splay-tree.h ! 050e377b9f8a1b2344a00718244fec6e gcc/ubsan.c 4ff057d55e17c93d675efbf67e4af3de gcc/ubsan.h a274bda31817b40877c1293fe8cec7dc gcc/unique-ptr-tests.cc ! d0e32000b1f869927f8a8d8f08b3c421 gcc/valtrack.c e21a74085dfaef8cdf97cab939645275 gcc/valtrack.h 23be5b0de251667efed8aa7b7b27651b gcc/value-prof.c a5a484b45e88c90e993b634185342d71 gcc/value-prof.h 339e0a29b5b2f84efc17bf9c6062f7fe gcc/value-range.cc b0d9e19182f317114b4ace7dd825aae4 gcc/value-range.h ! 1ea967a3a2963e2b8de5e7021b581b11 gcc/var-tracking.c ! cec2346ed2871a645e9128377795d889 gcc/varasm.c 653be5477fff14f116c6c0d91ccb8ed8 gcc/varasm.h c240a2fff05699dd50965775a1df8244 gcc/varpool.c 8f1a5181ac5eb5727cfdfb414fc2a534 gcc/vec-perm-indices.c *************** dad3b64b401c8aa8013d2c3b724ebfd1 gcc/ve *** 79421,79427 **** b1009fec9446ce7c6f1fcd4a227fbf25 gcc/version.c 206ce76c6ce744048f99fdcc938dc713 gcc/version.h 5aae01d68d9814dcf0bbc922193ac3c3 gcc/vmsdbg.h ! e1ca39d04126d0d558624244711c7888 gcc/vmsdbgout.c 78fbbe4c6834d8b5be92d161f3c8bfa8 gcc/vr-values.c 2a97acf99424266cd70ef89ce24f2741 gcc/vr-values.h ef8b78b9f3039e5e4c1bf673bd3569a4 gcc/vtable-verify.c --- 79874,79880 ---- b1009fec9446ce7c6f1fcd4a227fbf25 gcc/version.c 206ce76c6ce744048f99fdcc938dc713 gcc/version.h 5aae01d68d9814dcf0bbc922193ac3c3 gcc/vmsdbg.h ! 36a04845abe46d193d32c23f11f11b00 gcc/vmsdbgout.c 78fbbe4c6834d8b5be92d161f3c8bfa8 gcc/vr-values.c 2a97acf99424266cd70ef89ce24f2741 gcc/vr-values.h ef8b78b9f3039e5e4c1bf673bd3569a4 gcc/vtable-verify.c *************** dd2af862c855085ed651c383b7cc8889 gcc/wi *** 79435,79445 **** 66087ece808189c4792bf7458f8b892e gcc/xcoff.h c1a1f47efd530769576572f8d67855e6 gcc/xcoffout.c 93de1ac25e02a930c0ccdc015fe3e4ff gcc/xcoffout.h ! d5a5880bdcb40c20f2926fa51aec48b1 gnattools/ChangeLog aaa671ca98fa9f94bfedd0ab395c5505 gnattools/Makefile.in 8385a4d775aa1b9949c1f88488491c86 gnattools/configure 1e063bb0b806e41cc0ed23d1b7047746 gnattools/configure.ac ! 63e874dc5f75183593cdbf5c9120da4d gotools/ChangeLog 303548024e6fc434838f0f42f2e9439e gotools/Makefile.am 2c91078d2a6aa9838e182a651608c4d0 gotools/Makefile.in 7e23031e2e274aaa07b61c1e8f18dc99 gotools/README --- 79888,79898 ---- 66087ece808189c4792bf7458f8b892e gcc/xcoff.h c1a1f47efd530769576572f8d67855e6 gcc/xcoffout.c 93de1ac25e02a930c0ccdc015fe3e4ff gcc/xcoffout.h ! 34474f174867c73e02e11be5642240c4 gnattools/ChangeLog aaa671ca98fa9f94bfedd0ab395c5505 gnattools/Makefile.in 8385a4d775aa1b9949c1f88488491c86 gnattools/configure 1e063bb0b806e41cc0ed23d1b7047746 gnattools/configure.ac ! 3d89c8be31381a0a8b36ff81c81814ed gotools/ChangeLog 303548024e6fc434838f0f42f2e9439e gotools/Makefile.am 2c91078d2a6aa9838e182a651608c4d0 gotools/Makefile.in 7e23031e2e274aaa07b61c1e8f18dc99 gotools/README *************** c4e8176c1964a5ebe0a55900f2141299 gotool *** 79450,79456 **** eb2aeb3a6cffe7b26a8f1c8a2da23dcd gotools/gofmt.1 59530bdf33659b29e73d4adb9f9f6552 include/COPYING d32239bcb673463ab874e80d47fae504 include/COPYING3 ! 7ab244eacc6261eef9491745c90d9053 include/ChangeLog 4263432a72ff47ed8bf420208ee7eea5 include/ChangeLog-9103 a43d76108493b20da790f953f829c6a5 include/ChangeLog.jit ca76b64dc47d03c76721ca95e36c7e3a include/ansidecl.h --- 79903,79909 ---- eb2aeb3a6cffe7b26a8f1c8a2da23dcd gotools/gofmt.1 59530bdf33659b29e73d4adb9f9f6552 include/COPYING d32239bcb673463ab874e80d47fae504 include/COPYING3 ! 81b002a17537131d23e58e9b93dcfbc8 include/ChangeLog 4263432a72ff47ed8bf420208ee7eea5 include/ChangeLog-9103 a43d76108493b20da790f953f829c6a5 include/ChangeLog.jit ca76b64dc47d03c76721ca95e36c7e3a include/ansidecl.h *************** b07687cc9e0f873ac2e25628c5e7912a includ *** 79495,79510 **** 13e0194dd62a3563ba7c42d3db663f36 include/xregex2.h 6c83d27bff34846af1fad683ef5a77e3 include/xtensa-config.h 361482dd6b5b5eb7090fff3986fba68a install-sh ! 66012fc63bb7f5617b9bf5410b353cf2 intl/ChangeLog ! 6c0af929faaeffc788c3216c1a4fb769 intl/Makefile.in 6ec998bb4716c744bf8185e607f69301 intl/README 76ca170a525d5b84d90f0478fe788931 intl/VERSION 03740a87284033311c5cb780e5c23315 intl/aclocal.m4 d4abe82ea322701d2385778a2fcd0804 intl/bindtextdom.c f9a9ff3ee0a9b0465351b384e430bec5 intl/config.h.in 8a751062d7db9b6e8163667e5626fcb5 intl/config.intl.in ! 27f396279c6c384f9336d9b442551ac8 intl/configure ! 1bf1c719db33902595cc1f1ad301445e intl/configure.ac ff5c358b1507e45a2106b23b7e6c70a3 intl/dcgettext.c 81b58accbd88cd8159471d322723c42d intl/dcigettext.c 0cfc94e602bc20d958f014c77ebf357c intl/dcngettext.c --- 79948,79963 ---- 13e0194dd62a3563ba7c42d3db663f36 include/xregex2.h 6c83d27bff34846af1fad683ef5a77e3 include/xtensa-config.h 361482dd6b5b5eb7090fff3986fba68a install-sh ! 3c6a59d37441ce957c889406e9c19e09 intl/ChangeLog ! ad7ef2b19b44e4d5518287805d6ded02 intl/Makefile.in 6ec998bb4716c744bf8185e607f69301 intl/README 76ca170a525d5b84d90f0478fe788931 intl/VERSION 03740a87284033311c5cb780e5c23315 intl/aclocal.m4 d4abe82ea322701d2385778a2fcd0804 intl/bindtextdom.c f9a9ff3ee0a9b0465351b384e430bec5 intl/config.h.in 8a751062d7db9b6e8163667e5626fcb5 intl/config.intl.in ! 4a98ca39ab304dee43eb01d10fd44b20 intl/configure ! 706cb9e3fe029c5e68f5744619801b92 intl/configure.ac ff5c358b1507e45a2106b23b7e6c70a3 intl/dcgettext.c 81b58accbd88cd8159471d322723c42d intl/dcigettext.c 0cfc94e602bc20d958f014c77ebf357c intl/dcngettext.c *************** ec38b8a64a735196854a8f7d76b79a78 intl/p *** 79538,79549 **** b4758a0194e3e41362b939911472ce62 intl/relocatable.c bedade7bcfc3bc5eb09a2c6844f637f3 intl/relocatable.h 43f287d082528203fc85c1d2d81bf30d intl/textdomain.c ! 4ef29422a48c5c740322f9fecac09623 libada/ChangeLog 4147e5cbf56998a5d7cf62fdba854112 libada/Makefile.in c851e0f50ad5e334f1cdf3b8c0bae3e2 libada/configure 45fd7edb8aa72c41d45412e88010a79c libada/configure.ac 46d3fe6da7a771cc2d5420c4137a6861 libatomic/.gitignore ! f68762ac1d9d48bfdaae66c6b999783c libatomic/ChangeLog d42e0b7d4357d88dd10273050673a93a libatomic/Makefile.am 7386f3baeb9aa80af4a01a49d38f0c10 libatomic/Makefile.in 879263fa8d462b018b9a483d6ac68e45 libatomic/acinclude.m4 --- 79991,80002 ---- b4758a0194e3e41362b939911472ce62 intl/relocatable.c bedade7bcfc3bc5eb09a2c6844f637f3 intl/relocatable.h 43f287d082528203fc85c1d2d81bf30d intl/textdomain.c ! a589bf2724798e0f0910454f09c4702e libada/ChangeLog 4147e5cbf56998a5d7cf62fdba854112 libada/Makefile.in c851e0f50ad5e334f1cdf3b8c0bae3e2 libada/configure 45fd7edb8aa72c41d45412e88010a79c libada/configure.ac 46d3fe6da7a771cc2d5420c4137a6861 libatomic/.gitignore ! 15a0c8d266bcbf07c7aa16a62a8bddb0 libatomic/ChangeLog d42e0b7d4357d88dd10273050673a93a libatomic/Makefile.am 7386f3baeb9aa80af4a01a49d38f0c10 libatomic/Makefile.in 879263fa8d462b018b9a483d6ac68e45 libatomic/acinclude.m4 *************** c03a072efac9b30f8f8429ac52fd246b libato *** 79630,79636 **** 8a7308fda7ed1543cb9e3be0f8e47bce libatomic/testsuite/libatomic.c/atomic-store-5.c 40618200985a15bcba64f871863da498 libatomic/testsuite/libatomic.c/c.exp 97b0c9cdfcb733664bdf4efe0f5dc449 libatomic/testsuite/libatomic.c/generic-2.c ! a09fb2ab04a434eb784922822b365be8 libbacktrace/ChangeLog eb3a88b53140eb234a99a4b3a55e56bf libbacktrace/ChangeLog.jit 0dee96cf83de0ad4944443622f9379c8 libbacktrace/Makefile.am cbc7c8020c0f8dcfa2d2a373f6da7e8b libbacktrace/Makefile.in --- 80083,80089 ---- 8a7308fda7ed1543cb9e3be0f8e47bce libatomic/testsuite/libatomic.c/atomic-store-5.c 40618200985a15bcba64f871863da498 libatomic/testsuite/libatomic.c/c.exp 97b0c9cdfcb733664bdf4efe0f5dc449 libatomic/testsuite/libatomic.c/generic-2.c ! 68bdfa3990cd3b4a7de23567d09e45da libbacktrace/ChangeLog eb3a88b53140eb234a99a4b3a55e56bf libbacktrace/ChangeLog.jit 0dee96cf83de0ad4944443622f9379c8 libbacktrace/Makefile.am cbc7c8020c0f8dcfa2d2a373f6da7e8b libbacktrace/Makefile.in *************** c3e362d9085bb7d5ac4b6cc0d299e9b3 libbac *** 79675,79683 **** 230c6487aa41dcf6385603f0eba3f318 libbacktrace/unknown.c 38f8a61f09ebf0daecf10ca78c228587 libbacktrace/xcoff.c 2573cfcfdf54eb3b48c559e89d4b8e0b libbacktrace/ztest.c ! e4ad7b8af8f669f9e7ff0b1135aedd81 libcc1/ChangeLog ! baab0b5d60cfec15cbbbc77c284278bf libcc1/Makefile.am ! 8a80975533399433776d66d49b69a73e libcc1/Makefile.in 951b88f5687afa4f7735d87a83007fc0 libcc1/aclocal.m4 f0df7070bae3a278b57061df18deac43 libcc1/callbacks.cc 848895a5263c502c808ebf9f7b277797 libcc1/callbacks.hh --- 80128,80136 ---- 230c6487aa41dcf6385603f0eba3f318 libbacktrace/unknown.c 38f8a61f09ebf0daecf10ca78c228587 libbacktrace/xcoff.c 2573cfcfdf54eb3b48c559e89d4b8e0b libbacktrace/ztest.c ! 93830cf16ea8a113906ea5cc0a38dec6 libcc1/ChangeLog ! c25ac45106391e5bfcbe7fb84b57da90 libcc1/Makefile.am ! 14bb0fce6ab9a6b5fe6b7a9ab0b0002c libcc1/Makefile.in 951b88f5687afa4f7735d87a83007fc0 libcc1/aclocal.m4 f0df7070bae3a278b57061df18deac43 libcc1/callbacks.cc 848895a5263c502c808ebf9f7b277797 libcc1/callbacks.hh *************** b3af03e33f43aa92c6fd8d2022beb493 libcc1 *** 79704,79710 **** 95b7cbcd3c24af802f4a02f68e2e3304 libcc1/names.hh 755ea5d706408ca766c27354ac24d0d2 libcc1/rpc.hh 577d73d4b34d5f45d090858af7a98d82 libcc1/status.hh ! e21102128d8e5a4a94094c6dc6e18fd2 libcpp/ChangeLog 2bd831b17997584e38305782cebe6948 libcpp/ChangeLog.jit 83cc3f43bcfa51a6019c4dbff5d9e6e6 libcpp/Makefile.in 5f73e265652f92a8ad72a80124ac7061 libcpp/aclocal.m4 --- 80157,80163 ---- 95b7cbcd3c24af802f4a02f68e2e3304 libcc1/names.hh 755ea5d706408ca766c27354ac24d0d2 libcc1/rpc.hh 577d73d4b34d5f45d090858af7a98d82 libcc1/status.hh ! 38e5aa6f954086056a5107306908b0c1 libcpp/ChangeLog 2bd831b17997584e38305782cebe6948 libcpp/ChangeLog.jit 83cc3f43bcfa51a6019c4dbff5d9e6e6 libcpp/Makefile.in 5f73e265652f92a8ad72a80124ac7061 libcpp/aclocal.m4 *************** a82e3eb1d8561484e9ba80fe49aaa3d2 libcpp *** 79713,79738 **** 4cfab6637ea3472b21f31ea4e3bb53a8 libcpp/configure db98df9b3eb19f4fe581a917e87c5a57 libcpp/configure.ac 5450be14c9a74629a46f3fa6a948d86e libcpp/directives-only.c ! 099026926c7b1f456f702fff004c284e libcpp/directives.c 3eb366a5c93bc8bd46ecd4ce655e4241 libcpp/errors.c ! d6706f28e9bf14766614dbc96ee268cc libcpp/expr.c d6df522c695dd05a286e3148c12c34a9 libcpp/files.c caace99b7a2c4dc8f56bc1d8e7c79366 libcpp/generated_cpp_wcwidth.h 559d2467c9b9963ae437b4384c135f4b libcpp/identifiers.c e16f6fa002f6cb922a4949b0e7ffa288 libcpp/include/cpplib.h ! 35bd100d00db99ff830de34cc19f183a libcpp/include/line-map.h 3598f02c845c49c4b5e117e8ce2cd8aa libcpp/include/mkdeps.h fef5fc761de09b42a55bc9da0bbe337d libcpp/include/symtab.h fcfb9c48269d85d0092955620c55d418 libcpp/init.c 846dc67c378d3d3ed8bd076c28d72a88 libcpp/internal.h ! ededadf8b39a4b8c87ecc933525e7132 libcpp/lex.c ! ec2b89a46d9013e7072891a16423d484 libcpp/line-map.c 46a07100f95f5e354c7e25cd19d26884 libcpp/location-example.txt ! 12ea5b1840b7e37f2e14cc541fa1e2b5 libcpp/macro.c 9bffef71f0dc7c27e6e9670482b78334 libcpp/makeucnid.c 6489fc7f57fdb7d583e7147ff0522602 libcpp/mkdeps.c 495ec808fc38a61b2088dbfaabe9c5cd libcpp/pch.c ! 6b210e3043be7cc7249538fdab041a72 libcpp/po/ChangeLog 236a7764238de3aa208e3a857c56f478 libcpp/po/be.gmo e3ee1b4c54df1144bdb2156cd4af4f8e libcpp/po/be.po a64f63d1193f804860308855177c5f6a libcpp/po/ca.gmo --- 80166,80191 ---- 4cfab6637ea3472b21f31ea4e3bb53a8 libcpp/configure db98df9b3eb19f4fe581a917e87c5a57 libcpp/configure.ac 5450be14c9a74629a46f3fa6a948d86e libcpp/directives-only.c ! 577500fa319cb38653a7765ad8b3968d libcpp/directives.c 3eb366a5c93bc8bd46ecd4ce655e4241 libcpp/errors.c ! 1fb001fe286c05c4f0218e4f52eb5dd5 libcpp/expr.c d6df522c695dd05a286e3148c12c34a9 libcpp/files.c caace99b7a2c4dc8f56bc1d8e7c79366 libcpp/generated_cpp_wcwidth.h 559d2467c9b9963ae437b4384c135f4b libcpp/identifiers.c e16f6fa002f6cb922a4949b0e7ffa288 libcpp/include/cpplib.h ! 5bf416886267efcd03b9592774a40920 libcpp/include/line-map.h 3598f02c845c49c4b5e117e8ce2cd8aa libcpp/include/mkdeps.h fef5fc761de09b42a55bc9da0bbe337d libcpp/include/symtab.h fcfb9c48269d85d0092955620c55d418 libcpp/init.c 846dc67c378d3d3ed8bd076c28d72a88 libcpp/internal.h ! e5e29557bc2d400ca19bf9698d8c4adb libcpp/lex.c ! 1aef9c5bd896fa326ab67d9df127bd35 libcpp/line-map.c 46a07100f95f5e354c7e25cd19d26884 libcpp/location-example.txt ! 68f99d5795515e177f0681aafb96b9c8 libcpp/macro.c 9bffef71f0dc7c27e6e9670482b78334 libcpp/makeucnid.c 6489fc7f57fdb7d583e7147ff0522602 libcpp/mkdeps.c 495ec808fc38a61b2088dbfaabe9c5cd libcpp/pch.c ! 9470027f9eab6f06c81ab49d2db8e205 libcpp/po/ChangeLog 236a7764238de3aa208e3a857c56f478 libcpp/po/be.gmo e3ee1b4c54df1144bdb2156cd4af4f8e libcpp/po/be.po a64f63d1193f804860308855177c5f6a libcpp/po/ca.gmo *************** f15afc03bd997db77424a8404de0ba1e libcpp *** 79782,79788 **** b9ceddedbc75716da73d649fb6c90584 libcpp/ucnid.h 3dd5221704b1febaea71e979ee418d16 libcpp/ucnid.tab a6c2b3de06c7424706b16f4c206396a1 libdecnumber/.gitignore ! 782b8b1e8c97f1f85b1a1a22769a5aec libdecnumber/ChangeLog 2bd831b17997584e38305782cebe6948 libdecnumber/ChangeLog.jit d692c4e4e0b6dff10132a781dc3115ec libdecnumber/Makefile.in 5f9283b55276ee7e43f1b2d807e0d85f libdecnumber/aclocal.m4 --- 80235,80241 ---- b9ceddedbc75716da73d649fb6c90584 libcpp/ucnid.h 3dd5221704b1febaea71e979ee418d16 libcpp/ucnid.tab a6c2b3de06c7424706b16f4c206396a1 libdecnumber/.gitignore ! ec730465856a89d587602d22b53305f8 libdecnumber/ChangeLog 2bd831b17997584e38305782cebe6948 libdecnumber/ChangeLog.jit d692c4e4e0b6dff10132a781dc3115ec libdecnumber/Makefile.in 5f9283b55276ee7e43f1b2d807e0d85f libdecnumber/aclocal.m4 *************** a97c47969dfc92a7666dfe3c2e1e1448 libdec *** 79845,79851 **** 91741095dde1e8d43321a7d2c8af9ef0 libdecnumber/dpd/decimal64.c db0cc15dc64e7d60a762ebe3bb6a6921 libdecnumber/dpd/decimal64.h 0f6db29710e7075c2fd62bc4478b3b8d libdecnumber/dpd/decimal64Symbols.h ! 3212594b762d66b37368e293efd04cea libffi/ChangeLog ba66fc19311348d373ec271be939a659 libffi/ChangeLog.libffi fbbc216bc25d759a72ea3e6d734af56b libffi/ChangeLog.libgcj d946d2b97454ad50a1dbfbf48923c5be libffi/ChangeLog.v1 --- 80298,80304 ---- 91741095dde1e8d43321a7d2c8af9ef0 libdecnumber/dpd/decimal64.c db0cc15dc64e7d60a762ebe3bb6a6921 libdecnumber/dpd/decimal64.h 0f6db29710e7075c2fd62bc4478b3b8d libdecnumber/dpd/decimal64Symbols.h ! 3ec63071164326cac11a45c30fa67c0f libffi/ChangeLog ba66fc19311348d373ec271be939a659 libffi/ChangeLog.libffi fbbc216bc25d759a72ea3e6d734af56b libffi/ChangeLog.libgcj d946d2b97454ad50a1dbfbf48923c5be libffi/ChangeLog.v1 *************** e988aa92b714d72199c40b30edcaff89 libffi *** 79994,80000 **** 5624660cd94e07f27918e57a51a103ee libffi/src/x86/darwin64_c.c b8ca26733e457413f07cde86b4172a99 libffi/src/x86/darwin_c.c 08f53dd5901f0176d44b7b9b46420e18 libffi/src/x86/ffi.c ! 7ccf48dc3c360e9bf0a77d4e86132c4c libffi/src/x86/ffi64.c fbafaaf9d5bbdfa1191f07131de6572a libffi/src/x86/ffitarget.h c6877cb33a938d1b0ca967d17089b339 libffi/src/x86/ffiw64.c b4b878c72f2f781fe41addd69ab2d619 libffi/src/x86/internal.h --- 80447,80453 ---- 5624660cd94e07f27918e57a51a103ee libffi/src/x86/darwin64_c.c b8ca26733e457413f07cde86b4172a99 libffi/src/x86/darwin_c.c 08f53dd5901f0176d44b7b9b46420e18 libffi/src/x86/ffi.c ! 0fcee3805caea018e96ee0acdc8d617a libffi/src/x86/ffi64.c fbafaaf9d5bbdfa1191f07131de6572a libffi/src/x86/ffitarget.h c6877cb33a938d1b0ca967d17089b339 libffi/src/x86/ffiw64.c b4b878c72f2f781fe41addd69ab2d619 libffi/src/x86/internal.h *************** b1fc2a9b18683c39c78174fe71d41c9a libffi *** 80105,80110 **** --- 80558,80564 ---- 603c0f6bd65593799acb32b8720ad959 libffi/testsuite/libffi.call/nested_struct1.c 5f2439a6b772e5a891deb1cc27a720bb libffi/testsuite/libffi.call/nested_struct10.c 5cdea341282c185038f3701005139f72 libffi/testsuite/libffi.call/nested_struct11.c + 45140def5a7fff8a434158cba3d44619 libffi/testsuite/libffi.call/nested_struct12.c 3214b270fba1963541695b072f8ce30c libffi/testsuite/libffi.call/nested_struct2.c d90963b4f9d554c5db857a2d2000feb7 libffi/testsuite/libffi.call/nested_struct3.c 8dfe86c771d317f4ab02797610cc15dd libffi/testsuite/libffi.call/nested_struct4.c *************** d47c79b281339983862a8e52d8c73f0f libffi *** 80205,80213 **** 291be426192f460f6a07dfe1c96ab094 libffi/testsuite/libffi.special/special.exp 93fc3ea311b79f64004992807ce75d1e libffi/testsuite/libffi.special/unwindtest.cc 185d0795017fbbe253a13db8e34085f9 libffi/testsuite/libffi.special/unwindtest_ffi_call.cc ! 2de2e6216f1b73676a2e859a8c20c49e libgcc/ChangeLog 8a89bfe8c8707589b9b1470ad60f27c1 libgcc/Makefile.in ! 710d6e0485cb71ad9d08226ece5c1b03 libgcc/config.host 083f194c4f87d0510383fd4156d3aaef libgcc/config.in 9858db9b07dcce5cb230400b57775ac2 libgcc/config/aarch64/aarch64-unwind.h cb6bf25f692fb35cb8c66a813be70503 libgcc/config/aarch64/crtfastmath.c --- 80659,80667 ---- 291be426192f460f6a07dfe1c96ab094 libffi/testsuite/libffi.special/special.exp 93fc3ea311b79f64004992807ce75d1e libffi/testsuite/libffi.special/unwindtest.cc 185d0795017fbbe253a13db8e34085f9 libffi/testsuite/libffi.special/unwindtest_ffi_call.cc ! 19bf7c85bf8d7c051449121be9ad75d3 libgcc/ChangeLog 8a89bfe8c8707589b9b1470ad60f27c1 libgcc/Makefile.in ! 3a0e94f62100f9d19abcb78fa089089b libgcc/config.host 083f194c4f87d0510383fd4156d3aaef libgcc/config.in 9858db9b07dcce5cb230400b57775ac2 libgcc/config/aarch64/aarch64-unwind.h cb6bf25f692fb35cb8c66a813be70503 libgcc/config/aarch64/crtfastmath.c *************** bc8091ea114367b3b741725a189d2c2a libgcc *** 80216,80229 **** bfb92cd2cc568e51bd58e7cf47d50161 libgcc/config/aarch64/freebsd-unwind.h 8e2f2ebc742ebe6b5e5fade35c522e94 libgcc/config/aarch64/linux-unwind.h 29aea81db92e457ee9e2c580be585925 libgcc/config/aarch64/lse-init.c ! 03845c88023d63fe76c6d4006dc45e92 libgcc/config/aarch64/lse.S 9d3aad39b3858cbc22208edfefffecef libgcc/config/aarch64/sfp-exceptions.c f08acb83a481296c295a09342a50697f libgcc/config/aarch64/sfp-machine.h ca2e22cb19d821fce69a3fa9a07d0f48 libgcc/config/aarch64/sync-cache.c 8e3ffd846c30c7c5c52f1438e8e49870 libgcc/config/aarch64/t-aarch64 ! 2e0f8602dbb52e6701b49a2018e68912 libgcc/config/aarch64/t-lse 3a7564780070d43ba461bc58622771af libgcc/config/aarch64/t-softfp ! 7acbb3d5c82c4a756e6f9dbabf8f0810 libgcc/config/aarch64/value-unwind.h 37bc7fa21ade68283425e38844942575 libgcc/config/alpha/crtfastmath.c d2c1b178d86c753c11652a19b6a4f2e7 libgcc/config/alpha/libgcc-alpha-ldbl.ver e2cf127354a821a074c82c79b5d96e4c libgcc/config/alpha/linux-unwind.h --- 80670,80683 ---- bfb92cd2cc568e51bd58e7cf47d50161 libgcc/config/aarch64/freebsd-unwind.h 8e2f2ebc742ebe6b5e5fade35c522e94 libgcc/config/aarch64/linux-unwind.h 29aea81db92e457ee9e2c580be585925 libgcc/config/aarch64/lse-init.c ! 75ebdaaa2129f4449eecafe294e6d64e libgcc/config/aarch64/lse.S 9d3aad39b3858cbc22208edfefffecef libgcc/config/aarch64/sfp-exceptions.c f08acb83a481296c295a09342a50697f libgcc/config/aarch64/sfp-machine.h ca2e22cb19d821fce69a3fa9a07d0f48 libgcc/config/aarch64/sync-cache.c 8e3ffd846c30c7c5c52f1438e8e49870 libgcc/config/aarch64/t-aarch64 ! 1bce241434da4c5eca9ec1b6d82e4735 libgcc/config/aarch64/t-lse 3a7564780070d43ba461bc58622771af libgcc/config/aarch64/t-softfp ! 7be1e450d554858e751945a14fa82ce8 libgcc/config/aarch64/value-unwind.h 37bc7fa21ade68283425e38844942575 libgcc/config/alpha/crtfastmath.c d2c1b178d86c753c11652a19b6a4f2e7 libgcc/config/alpha/libgcc-alpha-ldbl.ver e2cf127354a821a074c82c79b5d96e4c libgcc/config/alpha/linux-unwind.h *************** d1b259a7ebb554c2b7f55d42fc857a61 libgcc *** 80294,80300 **** 9e7601333c2da970cb0acf8a8aebdf36 libgcc/config/arm/bpabi.S 01c3f42719678bb53df22aa8a6755da0 libgcc/config/arm/bpabi.c d7b6fac9733372b0eca682895b864582 libgcc/config/arm/cmse.c ! c6791de829344c77478c2efb9f8f6f7d libgcc/config/arm/cmse_nonsecure_call.S e3cbcd54610b02ba48f6181f90f663d6 libgcc/config/arm/crtfastmath.c bc382a3836c17cb050d0d366f844b567 libgcc/config/arm/crti.S b11e4ecae5cdc0667f25ed2c756f765f libgcc/config/arm/crtn.S --- 80748,80754 ---- 9e7601333c2da970cb0acf8a8aebdf36 libgcc/config/arm/bpabi.S 01c3f42719678bb53df22aa8a6755da0 libgcc/config/arm/bpabi.c d7b6fac9733372b0eca682895b864582 libgcc/config/arm/cmse.c ! f3a1edd1517781f2f99bb2f2ee31bcc1 libgcc/config/arm/cmse_nonsecure_call.S e3cbcd54610b02ba48f6181f90f663d6 libgcc/config/arm/crtfastmath.c bc382a3836c17cb050d0d366f844b567 libgcc/config/arm/crti.S b11e4ecae5cdc0667f25ed2c756f765f libgcc/config/arm/crtn.S *************** f251a89bb0980b9dfc533705a5e96fe6 libgcc *** 80310,80316 **** 31a7e761159af464c55ba59256be3073 libgcc/config/arm/pr-support.c 131990bf9b0a8ab71c7abf0c49d4fbfa libgcc/config/arm/sfp-machine.h 075490dd9ed3194c5a512074317092ff libgcc/config/arm/symbian-lib.h ! 158e1345eb77c49632bdea4b66ed330f libgcc/config/arm/t-arm 95ccb8d9807e7229274f546d4664a038 libgcc/config/arm/t-bpabi be2d9c3da6e3f9aa4be1b2856a70de22 libgcc/config/arm/t-elf a86e3a4a0c8c3ead836f792603deed27 libgcc/config/arm/t-freebsd --- 80764,80770 ---- 31a7e761159af464c55ba59256be3073 libgcc/config/arm/pr-support.c 131990bf9b0a8ab71c7abf0c49d4fbfa libgcc/config/arm/sfp-machine.h 075490dd9ed3194c5a512074317092ff libgcc/config/arm/symbian-lib.h ! 8bcfdd455e9a830ab6b5da1e39fab4d1 libgcc/config/arm/t-arm 95ccb8d9807e7229274f546d4664a038 libgcc/config/arm/t-bpabi be2d9c3da6e3f9aa4be1b2856a70de22 libgcc/config/arm/t-elf a86e3a4a0c8c3ead836f792603deed27 libgcc/config/arm/t-freebsd *************** edd359796dafc4dc78c672bcdfe885fa libgcc *** 80332,80338 **** 39e55a737e39fc207b8597387f60c342 libgcc/config/avr/lib1funcs.S 622f81485f02d0eac2caaafa7d3a2fd1 libgcc/config/avr/lib2-object.mk a1bb21bac26f7d1cb33aadeb1a2cb04d libgcc/config/avr/lib2funcs.c ! 89ddd12567157122ca2227168c899d2c libgcc/config/avr/libf7/ChangeLog 7c3f1609651224f834cf0c69375d2f58 libgcc/config/avr/libf7/asm-defs.h 0b54a2cbfebb93a4e1bddfa3600d6f0b libgcc/config/avr/libf7/f7-renames.h 75a098c00650382be6b1f9157fb4af2d libgcc/config/avr/libf7/f7-wraps.h --- 80786,80792 ---- 39e55a737e39fc207b8597387f60c342 libgcc/config/avr/lib1funcs.S 622f81485f02d0eac2caaafa7d3a2fd1 libgcc/config/avr/lib2-object.mk a1bb21bac26f7d1cb33aadeb1a2cb04d libgcc/config/avr/lib2funcs.c ! e87ee8fc2bad4b11c5379e9b55d22c45 libgcc/config/avr/libf7/ChangeLog 7c3f1609651224f834cf0c69375d2f58 libgcc/config/avr/libf7/asm-defs.h 0b54a2cbfebb93a4e1bddfa3600d6f0b libgcc/config/avr/libf7/f7-renames.h 75a098c00650382be6b1f9157fb4af2d libgcc/config/avr/libf7/f7-wraps.h *************** be0a987973699f81d3104929e09fbbc0 libgcc *** 80415,80420 **** --- 80869,80875 ---- 3d4b43989f4f53630fdf07564fec01c2 libgcc/config/darwin-64.c 0e4427ab50980a171acbc638f4a4846f libgcc/config/darwin-crt-tm.c a2ad7b17a6729bcf3885db737af1f9cd libgcc/config/darwin-crt3.c + 3d9ace1569f13aadc86ee3608541f634 libgcc/config/darwin-unwind.ver 9e9354d2ce2c41094a62d88a3c777c4b libgcc/config/darwin10-unwind-find-enc-func.c da40956ae6b1ff7b16b27fe76c2213f5 libgcc/config/epiphany/crti.S 47a376f6f4c7229da1a008ae88b1481f libgcc/config/epiphany/crtint.S *************** f635a94a325fa062d82f89a3ed825c76 libgcc *** 80452,80458 **** 19ad00e225d8c7304467018c7af2959c libgcc/config/frv/cmovh.c 6852fe6bdae955208e747e7347456ff8 libgcc/config/frv/cmovw.c c65680100edb85d9f3a4de5cf0265171 libgcc/config/frv/elf-lib.h ! 1f58f74a129be78d23bbd6e04a254a29 libgcc/config/frv/frv-abi.h 867e78c995c16b06bfa35187a40ccd17 libgcc/config/frv/frvbegin.c 33d97a538026ced889eff265c1ddc7c7 libgcc/config/frv/frvend.c 37039f6a001bb2d464cba17df5c91808 libgcc/config/frv/lib1funcs.S --- 80907,80913 ---- 19ad00e225d8c7304467018c7af2959c libgcc/config/frv/cmovh.c 6852fe6bdae955208e747e7347456ff8 libgcc/config/frv/cmovw.c c65680100edb85d9f3a4de5cf0265171 libgcc/config/frv/elf-lib.h ! c393407efe0c9990c53bbf30374b02df libgcc/config/frv/frv-abi.h 867e78c995c16b06bfa35187a40ccd17 libgcc/config/frv/frvbegin.c 33d97a538026ced889eff265c1ddc7c7 libgcc/config/frv/frvend.c 37039f6a001bb2d464cba17df5c91808 libgcc/config/frv/lib1funcs.S *************** c2af6ac233b241e8db0c62d85e2d91b5 libgcc *** 80529,80535 **** 13e7cf1a83e45c2ca50e986127ae50de libgcc/config/i386/cygming-crtbegin.c 5b80ffdfb3f3683c17ea577dabd7d4ca libgcc/config/i386/cygming-crtend.c a018d6f4231e7b2380403999dcc402d9 libgcc/config/i386/cygwin.S ! d251d0089e79b4bcbfc28a89612b8b05 libgcc/config/i386/darwin-lib.h 79c500acc6af1c9967260271f4a9eb98 libgcc/config/i386/dragonfly-unwind.h 9d2ab15be43c39996a9619571ae964b2 libgcc/config/i386/elf-lib.h 19eb4e48ccd25fa960068c2b418fa8e7 libgcc/config/i386/enable-execute-stack-mingw32.c --- 80984,80990 ---- 13e7cf1a83e45c2ca50e986127ae50de libgcc/config/i386/cygming-crtbegin.c 5b80ffdfb3f3683c17ea577dabd7d4ca libgcc/config/i386/cygming-crtend.c a018d6f4231e7b2380403999dcc402d9 libgcc/config/i386/cygwin.S ! 6f21745bb063a35ece3dda4ea225500f libgcc/config/i386/darwin-lib.h 79c500acc6af1c9967260271f4a9eb98 libgcc/config/i386/dragonfly-unwind.h 9d2ab15be43c39996a9619571ae964b2 libgcc/config/i386/elf-lib.h 19eb4e48ccd25fa960068c2b418fa8e7 libgcc/config/i386/enable-execute-stack-mingw32.c *************** b770de7172bef0602781f07ad25c08cc libgcc *** 80540,80547 **** efba01dc186d85cce4dc435aad7b2021 libgcc/config/i386/i386-asm.h f37bb0a6917353616c4026fac958f6bc libgcc/config/i386/libgcc-bsd.ver 559b3227d15bf87b0f7d657183363d9f libgcc/config/i386/libgcc-cygming.ver ! d5104ec201dc5ef00ee080b61d18f234 libgcc/config/i386/libgcc-darwin.10.4.ver ! 4bddb4d887eaf22b41482540454bf31b libgcc/config/i386/libgcc-darwin.10.5.ver e0f54924bc5afc559b4b7b1830760a03 libgcc/config/i386/libgcc-glibc.ver 232a64815a78cdb2c8d6e69651814692 libgcc/config/i386/libgcc-sol2.ver 9852cf14f3a0d1238ee085b42ba0cc16 libgcc/config/i386/linux-unwind.h --- 80995,81001 ---- efba01dc186d85cce4dc435aad7b2021 libgcc/config/i386/i386-asm.h f37bb0a6917353616c4026fac958f6bc libgcc/config/i386/libgcc-bsd.ver 559b3227d15bf87b0f7d657183363d9f libgcc/config/i386/libgcc-cygming.ver ! f4e6907efe8022d7d6833d82ba7e690a libgcc/config/i386/libgcc-darwin.ver e0f54924bc5afc559b4b7b1830760a03 libgcc/config/i386/libgcc-glibc.ver 232a64815a78cdb2c8d6e69651814692 libgcc/config/i386/libgcc-sol2.ver 9852cf14f3a0d1238ee085b42ba0cc16 libgcc/config/i386/linux-unwind.h *************** c648b3441acf03960443d5a3d1b7e4d7 libgcc *** 80570,80576 **** c6afe173595c17ffb20e9c76a90f5158 libgcc/config/i386/t-crtstuff 9bd719f83d655207581528ab5e7b7354 libgcc/config/i386/t-cygming a56b9c84f7b8c5427982b9c1ac4d0268 libgcc/config/i386/t-cygwin ! cf50005afc3de52e15cbcb0af41fd862 libgcc/config/i386/t-darwin 2005c91878a4a69d60c9418077eefa97 libgcc/config/i386/t-dlldir 0a87d076e42adda36ab55bbaaac59649 libgcc/config/i386/t-dlldir-x 68adad1226ee1737a6a8d12b84a63297 libgcc/config/i386/t-dragonfly --- 81024,81030 ---- c6afe173595c17ffb20e9c76a90f5158 libgcc/config/i386/t-crtstuff 9bd719f83d655207581528ab5e7b7354 libgcc/config/i386/t-cygming a56b9c84f7b8c5427982b9c1ac4d0268 libgcc/config/i386/t-cygwin ! ab24e8c90feb5a86f9ff59988a9bcc43 libgcc/config/i386/t-darwin 2005c91878a4a69d60c9418077eefa97 libgcc/config/i386/t-dlldir 0a87d076e42adda36ab55bbaaac59649 libgcc/config/i386/t-dlldir-x 68adad1226ee1737a6a8d12b84a63297 libgcc/config/i386/t-dragonfly *************** e5387e909a3b29458cfdda0150e1f8f6 libgcc *** 80588,80594 **** 7f83cb5269303d6f2bc8693886cfecc2 libgcc/config/i386/t-softfp e3f37cf5fbd829324e763c71726907a2 libgcc/config/i386/t-sol2 89444a8a78bd3aa7426e9525cdd7ce25 libgcc/config/i386/t-stack-i386 ! 60f587911a876e53883d600d885a989d libgcc/config/i386/value-unwind.h 358e8b3f86ea01e6b65f8eb10375014b libgcc/config/i386/w32-unwind.h ffc8a68dc02aca1cf8703f6ff29109d3 libgcc/config/ia64/__divxf3.S c3b9941b44cdc74dfc42996f7d2d765b libgcc/config/ia64/_fixtfdi.S --- 81042,81048 ---- 7f83cb5269303d6f2bc8693886cfecc2 libgcc/config/i386/t-softfp e3f37cf5fbd829324e763c71726907a2 libgcc/config/i386/t-sol2 89444a8a78bd3aa7426e9525cdd7ce25 libgcc/config/i386/t-stack-i386 ! 2b9f2f39198cfad630f63b51e2d1a644 libgcc/config/i386/value-unwind.h 358e8b3f86ea01e6b65f8eb10375014b libgcc/config/i386/w32-unwind.h ffc8a68dc02aca1cf8703f6ff29109d3 libgcc/config/ia64/__divxf3.S c3b9941b44cdc74dfc42996f7d2d765b libgcc/config/ia64/_fixtfdi.S *************** c24f5e234b0091e469960bc984cb63ac libgcc *** 80625,80631 **** 3de7511560ec0cd082bc9f166d77732e libgcc/config/ia64/vms-unwind.h 739fa1e99eaa1be947f9160810ba8342 libgcc/config/iq2000/lib2funcs.c 102f7dad8ad6b54434a1b8313d1e42c4 libgcc/config/iq2000/t-iq2000 ! 1c6c92f99371a327fa6282a9924cc80e libgcc/config/libbid/ChangeLog d686dd88df06e999b778807d77f67f20 libgcc/config/libbid/_addsub_dd.c 39440f40364aec5c858424ea091e6fb0 libgcc/config/libbid/_addsub_sd.c a2a461592be070f0e4bcf72559dc9e11 libgcc/config/libbid/_addsub_td.c --- 81079,81085 ---- 3de7511560ec0cd082bc9f166d77732e libgcc/config/ia64/vms-unwind.h 739fa1e99eaa1be947f9160810ba8342 libgcc/config/iq2000/lib2funcs.c 102f7dad8ad6b54434a1b8313d1e42c4 libgcc/config/iq2000/t-iq2000 ! 6c4f662a7e7df8574207d177f723eadb libgcc/config/libbid/ChangeLog d686dd88df06e999b778807d77f67f20 libgcc/config/libbid/_addsub_dd.c 39440f40364aec5c858424ea091e6fb0 libgcc/config/libbid/_addsub_sd.c a2a461592be070f0e4bcf72559dc9e11 libgcc/config/libbid/_addsub_td.c *************** dfcd1285e8e3c0995540d17b99d0af50 libgcc *** 80783,80789 **** a72972475ced31ac9f03f6f485e82753 libgcc/config/libbid/bid_round.c 36d3272aa8b3f911e8bb7c40f65253ff libgcc/config/libbid/bid_sqrt_macros.h 771691dea4962cd9e547d6f10beb9643 libgcc/config/libgcc-glibc.ver ! 5e552844975595b21cbaabb9a26fd91e libgcc/config/libgcc-libsystem.ver 29264a23a84d57604b825bd840c53359 libgcc/config/lm32/_ashlsi3.S 1475d52aa5300ccf1f56a62e9fd6b2b3 libgcc/config/lm32/_ashrsi3.S 6dc0945f21c02f1684fd827f0e671724 libgcc/config/lm32/_divsi3.c --- 81237,81243 ---- a72972475ced31ac9f03f6f485e82753 libgcc/config/libbid/bid_round.c 36d3272aa8b3f911e8bb7c40f65253ff libgcc/config/libbid/bid_sqrt_macros.h 771691dea4962cd9e547d6f10beb9643 libgcc/config/libgcc-glibc.ver ! a5b43383f528298ff2dc85061452e1e6 libgcc/config/libgcc-libsystem.ver 29264a23a84d57604b825bd840c53359 libgcc/config/lm32/_ashlsi3.S 1475d52aa5300ccf1f56a62e9fd6b2b3 libgcc/config/lm32/_ashrsi3.S 6dc0945f21c02f1684fd827f0e671724 libgcc/config/lm32/_divsi3.c *************** bae0e3b81bed9e3ea4b31a52d222e907 libgcc *** 81168,81183 **** 4e40855b502b8de52bf9926fd288a5cd libgcc/config/pa/gthr-dce.h 9f2f9b8eed5bf08bc41bb432f57302cc libgcc/config/pa/hpux-unwind.h 127de4650e51cbea337ea5619d8b1c4e libgcc/config/pa/lib2funcs.S ! 76c779e67758829df87e66c89e6dd15f libgcc/config/pa/linux-atomic.c 7957df77a936b69a54cfa6af5a903473 libgcc/config/pa/linux-unwind.h e76e2ff7a903fa19d67a6470547b6a1b libgcc/config/pa/milli64.S ! ba2d1fc872ec574bfc11d92050a5aef7 libgcc/config/pa/pa64-hpux-lib.h adb4bca1632150243adcb2cd9a1812bf libgcc/config/pa/quadlib.c afb534bb9a7b7bbdb6af10009af385eb libgcc/config/pa/stublib.c 8a3964d4f1eddb14d9260a0a72a23493 libgcc/config/pa/t-hpux 73420715a92f162a61d33bbfbe7c4dee libgcc/config/pa/t-hpux10 3e293a3e5a4bcd16fb9846c60502af9b libgcc/config/pa/t-linux ! 5877d503fb8e674ccd8cb10023bc7de9 libgcc/config/pa/t-linux64 3a7526d23d38b3c358e838a89cf3ad94 libgcc/config/pa/t-netbsd 3a7526d23d38b3c358e838a89cf3ad94 libgcc/config/pa/t-openbsd 4c55604fec5e632606f19c2f176f1a6c libgcc/config/pa/t-pa64 --- 81622,81637 ---- 4e40855b502b8de52bf9926fd288a5cd libgcc/config/pa/gthr-dce.h 9f2f9b8eed5bf08bc41bb432f57302cc libgcc/config/pa/hpux-unwind.h 127de4650e51cbea337ea5619d8b1c4e libgcc/config/pa/lib2funcs.S ! d41709222a606cad9acdda8a35f6b7b7 libgcc/config/pa/linux-atomic.c 7957df77a936b69a54cfa6af5a903473 libgcc/config/pa/linux-unwind.h e76e2ff7a903fa19d67a6470547b6a1b libgcc/config/pa/milli64.S ! 66fa23b5cb9a61484d556513ec8b1f45 libgcc/config/pa/pa64-hpux-lib.h adb4bca1632150243adcb2cd9a1812bf libgcc/config/pa/quadlib.c afb534bb9a7b7bbdb6af10009af385eb libgcc/config/pa/stublib.c 8a3964d4f1eddb14d9260a0a72a23493 libgcc/config/pa/t-hpux 73420715a92f162a61d33bbfbe7c4dee libgcc/config/pa/t-hpux10 3e293a3e5a4bcd16fb9846c60502af9b libgcc/config/pa/t-linux ! 8b6e1d4848a895dd9e8e030f638c68bc libgcc/config/pa/t-linux64 3a7526d23d38b3c358e838a89cf3ad94 libgcc/config/pa/t-netbsd 3a7526d23d38b3c358e838a89cf3ad94 libgcc/config/pa/t-openbsd 4c55604fec5e632606f19c2f176f1a6c libgcc/config/pa/t-pa64 *************** e616799e792b120d6a774b9f6bf6fa48 libgcc *** 81306,81317 **** 332eb1d6f310c56360dc5745efec7a77 libgcc/config/rs6000/ibm-ldouble-format 8d944f91915e7c2d5fe3becce1638a91 libgcc/config/rs6000/ibm-ldouble.c 13bc252ed5254cf124822256760c6df0 libgcc/config/rs6000/libgcc-aix-cxa.ver - 177e1dc8ba1af43a128de72b9e05e125 libgcc/config/rs6000/libgcc-darwin.10.4.ver - d4d5f5b81c74680a9240de11f79d30d5 libgcc/config/rs6000/libgcc-darwin.10.5.ver 1bde2006a0e00257bde24aaab57e46c4 libgcc/config/rs6000/libgcc-glibc.ver 7aa6f4e782960be3e2b43998ef395330 libgcc/config/rs6000/libgcc-ibm-ldouble.ver 425f6122379f6fcd2b36bff1675a5f8e libgcc/config/rs6000/linux-unwind.h ! 237ea32646915bae5aec8573f040cd05 libgcc/config/rs6000/morestack.S fe7734c8ad21365a50e30f3f1bf88283 libgcc/config/rs6000/on_exit.c e3a2c9b16aa789db9529ad5e040901f9 libgcc/config/rs6000/ppc64-fp.c 300ab3728f3c6f4ec37d77b574e1a2c1 libgcc/config/rs6000/quad-float128.h --- 81760,81769 ---- 332eb1d6f310c56360dc5745efec7a77 libgcc/config/rs6000/ibm-ldouble-format 8d944f91915e7c2d5fe3becce1638a91 libgcc/config/rs6000/ibm-ldouble.c 13bc252ed5254cf124822256760c6df0 libgcc/config/rs6000/libgcc-aix-cxa.ver 1bde2006a0e00257bde24aaab57e46c4 libgcc/config/rs6000/libgcc-glibc.ver 7aa6f4e782960be3e2b43998ef395330 libgcc/config/rs6000/libgcc-ibm-ldouble.ver 425f6122379f6fcd2b36bff1675a5f8e libgcc/config/rs6000/linux-unwind.h ! d5e96f510a362432ef2a4c67261331eb libgcc/config/rs6000/morestack.S fe7734c8ad21365a50e30f3f1bf88283 libgcc/config/rs6000/on_exit.c e3a2c9b16aa789db9529ad5e040901f9 libgcc/config/rs6000/ppc64-fp.c 300ab3728f3c6f4ec37d77b574e1a2c1 libgcc/config/rs6000/quad-float128.h *************** d369e4d411337e76ab7f3962f18daaf8 libgcc *** 81321,81327 **** 7a016ac4b0377f21c143b16228e9d317 libgcc/config/rs6000/sol-cn.S 8e65197842ba39fd658038728475e572 libgcc/config/rs6000/t-aix-cxa 0d6637a7e112c021e7ce371918c7659c libgcc/config/rs6000/t-crtstuff ! bc91baf0523c8475334ca80d6ff265c4 libgcc/config/rs6000/t-darwin a0014912b4b08cfbe887d9945460e370 libgcc/config/rs6000/t-darwin64 19d31beebe5294cd8c5cfcc24238491a libgcc/config/rs6000/t-e500v1-fp 39fa5d059c21ba3069a744705b18a95b libgcc/config/rs6000/t-e500v2-fp --- 81773,81780 ---- 7a016ac4b0377f21c143b16228e9d317 libgcc/config/rs6000/sol-cn.S 8e65197842ba39fd658038728475e572 libgcc/config/rs6000/t-aix-cxa 0d6637a7e112c021e7ce371918c7659c libgcc/config/rs6000/t-crtstuff ! b780b81d7bccdf7af090dbcd3e639dd1 libgcc/config/rs6000/t-darwin ! a8ea28c94f3264c3602a98b4728fed82 libgcc/config/rs6000/t-darwin-ehs a0014912b4b08cfbe887d9945460e370 libgcc/config/rs6000/t-darwin64 19d31beebe5294cd8c5cfcc24238491a libgcc/config/rs6000/t-e500v1-fp 39fa5d059c21ba3069a744705b18a95b libgcc/config/rs6000/t-e500v2-fp *************** ea267a427a7598d5070e338c8995363d libgcc *** 81330,81336 **** bb5a49088ec4a03d7ac246928b5601eb libgcc/config/rs6000/t-freebsd 4976aac1da0b181cf133fe8ef7243000 libgcc/config/rs6000/t-freebsd64 565e9d6288ad496063af26b57e5fa264 libgcc/config/rs6000/t-ibm-ldouble ! 4beb07031560fabcc472f8b73c2a29aa libgcc/config/rs6000/t-linux 30306c74cecde65fc2af8f03fce1aa7d libgcc/config/rs6000/t-lynx ad6ae6684d4dec9ddd78efad67d1af4b libgcc/config/rs6000/t-netbsd d7a240410399b38f142973a475855f0b libgcc/config/rs6000/t-ppc64-fp --- 81783,81789 ---- bb5a49088ec4a03d7ac246928b5601eb libgcc/config/rs6000/t-freebsd 4976aac1da0b181cf133fe8ef7243000 libgcc/config/rs6000/t-freebsd64 565e9d6288ad496063af26b57e5fa264 libgcc/config/rs6000/t-ibm-ldouble ! ecf2c7e327e9df4e94343352b59b9fd2 libgcc/config/rs6000/t-linux 30306c74cecde65fc2af8f03fce1aa7d libgcc/config/rs6000/t-lynx ad6ae6684d4dec9ddd78efad67d1af4b libgcc/config/rs6000/t-netbsd d7a240410399b38f142973a475855f0b libgcc/config/rs6000/t-ppc64-fp *************** bd7ceb31787a37d9cb144c41d41acfb3 libgcc *** 81338,81344 **** 89dc5367808582c503f03a34193e467b libgcc/config/rs6000/t-savresfgpr 0f9c718a98e81cd57e33ab3d77c56464 libgcc/config/rs6000/t-slibgcc-aix 1d9dab8390b84ff0de504beefb72ce61 libgcc/config/rs6000/t-stack-rs6000 ! b4ac6fdcabd92e243c363ca034de620d libgcc/config/rs6000/tramp.S b42aa9a6238fe7f872fb073e993313ad libgcc/config/rs6000/trunctfkf2-sw.c 129567bae53320a05fd57113ec3988a5 libgcc/config/rx/rx-abi-functions.c 165bc6ac5947bc732927a0539a4a4122 libgcc/config/rx/rx-abi.h --- 81791,81797 ---- 89dc5367808582c503f03a34193e467b libgcc/config/rs6000/t-savresfgpr 0f9c718a98e81cd57e33ab3d77c56464 libgcc/config/rs6000/t-slibgcc-aix 1d9dab8390b84ff0de504beefb72ce61 libgcc/config/rs6000/t-stack-rs6000 ! ee3462920a39ffcb439cbe1186a0ed15 libgcc/config/rs6000/tramp.S b42aa9a6238fe7f872fb073e993313ad libgcc/config/rs6000/trunctfkf2-sw.c 129567bae53320a05fd57113ec3988a5 libgcc/config/rx/rx-abi-functions.c 165bc6ac5947bc732927a0539a4a4122 libgcc/config/rx/rx-abi.h *************** ada9a39786da3b2e999f7440a17a1ed7 libgcc *** 81415,81421 **** 7f567bcd22705a965e07f79e8f68ebaa libgcc/config/stormy16/umodsi3.c f199b38114ce849b77b38bd475d72cff libgcc/config/t-crtfm 060a49bb5c4a53a2125123d4cbd571de libgcc/config/t-crtstuff-pic ! 7fec96c04b71be88732732651ac5dd37 libgcc/config/t-darwin ee7ad6460936fc6f3f89ecb711376477 libgcc/config/t-dfprules d747115cbcc2bd56b6b4f73c350c2ae3 libgcc/config/t-eh-dw2-dip b9d08c1cbead9131f216accd515ec32c libgcc/config/t-fdpbit --- 81868,81875 ---- 7f567bcd22705a965e07f79e8f68ebaa libgcc/config/stormy16/umodsi3.c f199b38114ce849b77b38bd475d72cff libgcc/config/t-crtfm 060a49bb5c4a53a2125123d4cbd571de libgcc/config/t-crtstuff-pic ! 06e78a9599e0fde8f283aa4d9bed8e2e libgcc/config/t-darwin ! f699f9e7159ba2c6033406086c5c8299 libgcc/config/t-darwin-ehs ee7ad6460936fc6f3f89ecb711376477 libgcc/config/t-dfprules d747115cbcc2bd56b6b4f73c350c2ae3 libgcc/config/t-eh-dw2-dip b9d08c1cbead9131f216accd515ec32c libgcc/config/t-fdpbit *************** fb114fc474e86040a446fa90766e8f56 libgcc *** 81435,81441 **** eb3161bf886026cdcf8a78cea885fdd2 libgcc/config/t-openbsd-thread 474d97884b393e08b0ce416dd09493bc libgcc/config/t-rtems c719c44114540927ecf2555f7fb8475b libgcc/config/t-slibgcc ! 4b78cd38aff781bc4f8087e2813bcccf libgcc/config/t-slibgcc-darwin 57f27c60e5d8c572d2645821ec5935e0 libgcc/config/t-slibgcc-elf-ver fa4305a341c2d0a5f01867ee0abe6504 libgcc/config/t-slibgcc-fuchsia 57e4154cb283fd7d9f323f5d85d534d9 libgcc/config/t-slibgcc-gld --- 81889,81895 ---- eb3161bf886026cdcf8a78cea885fdd2 libgcc/config/t-openbsd-thread 474d97884b393e08b0ce416dd09493bc libgcc/config/t-rtems c719c44114540927ecf2555f7fb8475b libgcc/config/t-slibgcc ! 3ecc4173a1b262e4770c789455b2cfc9 libgcc/config/t-slibgcc-darwin 57f27c60e5d8c572d2645821ec5935e0 libgcc/config/t-slibgcc-elf-ver fa4305a341c2d0a5f01867ee0abe6504 libgcc/config/t-slibgcc-fuchsia 57e4154cb283fd7d9f323f5d85d534d9 libgcc/config/t-slibgcc-gld *************** bd20a75c04c3d464a4bbc5e46bb2cb78 libgcc *** 81515,81521 **** 8b618d977037b466adbb35cc2dbc7390 libgcc/dfp-bit.h 70e35fcf38774880a1f8ce9ec374010a libgcc/divmod.c b9a5bcda72f7b8809010f38227353353 libgcc/empty.mk ! 9c5a4d28b5689ea1ed6b1d2ca5d596d5 libgcc/emutls.c aa52a8f7cb881c00c125ed5fd04ed4df libgcc/enable-execute-stack-empty.c 59d0496c2f30b6f393ecd222b8e6217e libgcc/enable-execute-stack-mprotect.c 2315effafb20b5d624da6c51805ea66a libgcc/find-symver.awk --- 81969,81975 ---- 8b618d977037b466adbb35cc2dbc7390 libgcc/dfp-bit.h 70e35fcf38774880a1f8ce9ec374010a libgcc/divmod.c b9a5bcda72f7b8809010f38227353353 libgcc/empty.mk ! 09604821cac90ac9f9178b43b1f3dede libgcc/emutls.c aa52a8f7cb881c00c125ed5fd04ed4df libgcc/enable-execute-stack-empty.c 59d0496c2f30b6f393ecd222b8e6217e libgcc/enable-execute-stack-mprotect.c 2315effafb20b5d624da6c51805ea66a libgcc/find-symver.awk *************** aefd60a1c8d6ffbb7ec97e35dee710d4 libgcc *** 81672,81678 **** f36482a521eea94524c15eaa0859e473 libgcc/vtv_end_preinit.c 9b5f2df98cbfd1de5a6f0f09efb80101 libgcc/vtv_start.c e0c401f31054829f53b8a41ab55218cf libgcc/vtv_start_preinit.c ! 182b30e7f286a4b8080dec745ab8671d libgfortran/ChangeLog 9aca36338382e5b4b730e7779170b24d libgfortran/ChangeLog-2002 80d3edc880c2da0b7a2beec2e2c4f774 libgfortran/ChangeLog-2003 9f0239429993a5e64ed793eb6c55a5c1 libgfortran/ChangeLog-2004 --- 82126,82132 ---- f36482a521eea94524c15eaa0859e473 libgcc/vtv_end_preinit.c 9b5f2df98cbfd1de5a6f0f09efb80101 libgcc/vtv_start.c e0c401f31054829f53b8a41ab55218cf libgcc/vtv_start_preinit.c ! 0ed3be323d5ebb256b1d76c647ec3c8b libgfortran/ChangeLog 9aca36338382e5b4b730e7779170b24d libgfortran/ChangeLog-2002 80d3edc880c2da0b7a2beec2e2c4f774 libgfortran/ChangeLog-2003 9f0239429993a5e64ed793eb6c55a5c1 libgfortran/ChangeLog-2004 *************** a67597f8b08b68f6accc0fdf08ef5e37 libgfo *** 82360,82366 **** bef28a78705c4e4786893e7d415aba17 libgfortran/intrinsics/link.c 985d3bd645a21cbd4c5a2d02ed8826a4 libgfortran/intrinsics/move_alloc.c 20aff61579429eb89792728fe5175714 libgfortran/intrinsics/mvbits.c ! ad1891ce9caa613f4f5593b327fcdb8d libgfortran/intrinsics/pack_generic.c 89e269a44a32f47a1d2bf91045b80e3e libgfortran/intrinsics/perror.c c095314693871598f7f50df0fc0b698e libgfortran/intrinsics/rand.c 0623ff528c71ac825ba6273a2ad51210 libgfortran/intrinsics/random.c --- 82814,82820 ---- bef28a78705c4e4786893e7d415aba17 libgfortran/intrinsics/link.c 985d3bd645a21cbd4c5a2d02ed8826a4 libgfortran/intrinsics/move_alloc.c 20aff61579429eb89792728fe5175714 libgfortran/intrinsics/mvbits.c ! fb336b8f0288246c3c493a4f5bf05001 libgfortran/intrinsics/pack_generic.c 89e269a44a32f47a1d2bf91045b80e3e libgfortran/intrinsics/perror.c c095314693871598f7f50df0fc0b698e libgfortran/intrinsics/rand.c 0623ff528c71ac825ba6273a2ad51210 libgfortran/intrinsics/random.c *************** e3e86019491a40bd4f45424d7ce11037 libgo/ *** 86911,86917 **** c5574d106d35be5d94e80301b0855ada libgo/testsuite/libgo-test-support.exp.in bf162aa572f7b96b25dbd2b027845d32 libgo/testsuite/libgo.testmain/testmain.exp cc9d2a0e34e31ba866a8caf9f46f48f3 libgomp/.gitattributes ! 4bceaee84f1958421cdc68e333005a65 libgomp/ChangeLog 0d55aa862aee66efdc5f8d62c94ff8fb libgomp/ChangeLog.graphite 9fd2a1e7d1a539dbbc2d854e30b0e00b libgomp/Makefile.am 9feaf433a0fb58e0e870f28ff2115ecc libgomp/Makefile.in --- 87365,87371 ---- c5574d106d35be5d94e80301b0855ada libgo/testsuite/libgo-test-support.exp.in bf162aa572f7b96b25dbd2b027845d32 libgo/testsuite/libgo.testmain/testmain.exp cc9d2a0e34e31ba866a8caf9f46f48f3 libgomp/.gitattributes ! b96c1b833d64846e2104d0ca8e8117f0 libgomp/ChangeLog 0d55aa862aee66efdc5f8d62c94ff8fb libgomp/ChangeLog.graphite 9fd2a1e7d1a539dbbc2d854e30b0e00b libgomp/Makefile.am 9feaf433a0fb58e0e870f28ff2115ecc libgomp/Makefile.in *************** f0d0b88d1514d82298d79624e788cc93 libgom *** 86958,86964 **** 5f99e5552dd5cd3f86a21d26b9a7dd4d libgomp/config/gcn/team.c 7bcf001195b9c5df8bd155c123f43b5f libgomp/config/gcn/time.c ff070289dda72e2da07b1099e9ca87cb libgomp/config/hpux/plugin-suffix.h ! a77278ce648d8463c6f47891b5e078c6 libgomp/config/linux/affinity.c 0de780b287f3fab082f9d170c44d8244 libgomp/config/linux/alpha/futex.h 248f3c6479eae55d879ad7910f81f634 libgomp/config/linux/bar.c c47c68032fc84ce49802bf55b6c66885 libgomp/config/linux/bar.h --- 87412,87418 ---- 5f99e5552dd5cd3f86a21d26b9a7dd4d libgomp/config/gcn/team.c 7bcf001195b9c5df8bd155c123f43b5f libgomp/config/gcn/time.c ff070289dda72e2da07b1099e9ca87cb libgomp/config/hpux/plugin-suffix.h ! 45da455deb5e334f2d0b3a3c6b3b49d4 libgomp/config/linux/affinity.c 0de780b287f3fab082f9d170c44d8244 libgomp/config/linux/alpha/futex.h 248f3c6479eae55d879ad7910f81f634 libgomp/config/linux/bar.c c47c68032fc84ce49802bf55b6c66885 libgomp/config/linux/bar.h *************** a63e35337d807f4e482e9f4a406dbed0 libgom *** 86977,86983 **** 68c3a03a754cdb49c5b33d600c53fb0c libgomp/config/linux/ptrlock.h bb8c6e45bb28878f41985f4a492d0f2e libgomp/config/linux/s390/futex.h 3db3135effc16c5f5a63210c846cdd6a libgomp/config/linux/sem.c ! 11c983384809597401642f976a601a73 libgomp/config/linux/sem.h d40e0737c4421684291e7c1b340d4f3e libgomp/config/linux/sparc/futex.h 97a9161cf89e16081fdbddd12df7b192 libgomp/config/linux/tile/futex.h 8fd5730fc7e54c1f9a4dfc446a6f76d0 libgomp/config/linux/wait.h --- 87431,87437 ---- 68c3a03a754cdb49c5b33d600c53fb0c libgomp/config/linux/ptrlock.h bb8c6e45bb28878f41985f4a492d0f2e libgomp/config/linux/s390/futex.h 3db3135effc16c5f5a63210c846cdd6a libgomp/config/linux/sem.c ! a0a3992ac8e982a967d951a75d20e4f2 libgomp/config/linux/sem.h d40e0737c4421684291e7c1b340d4f3e libgomp/config/linux/sparc/futex.h 97a9161cf89e16081fdbddd12df7b192 libgomp/config/linux/tile/futex.h 8fd5730fc7e54c1f9a4dfc446a6f76d0 libgomp/config/linux/wait.h *************** a975b1cf520505ee9be61620c216ea82 libgom *** 87039,87045 **** 80bd3c31185cf94ee2e48201c6ace5f1 libgomp/libgomp-plugin.c a183f11abf5bcd0b728c89ba99706f53 libgomp/libgomp-plugin.h e2da9a5d3298e4acf757d3e0c8066adb libgomp/libgomp.h ! e8c59287f500e04679f068750a3b6ca5 libgomp/libgomp.info 4052732f79d134fd439c1b39aa83c0db libgomp/libgomp.map 8b2aa50aecad82171348a6918309afd6 libgomp/libgomp.spec.in 0bf7d35e522085d8b7e5aa8f0efd6187 libgomp/libgomp.texi --- 87493,87499 ---- 80bd3c31185cf94ee2e48201c6ace5f1 libgomp/libgomp-plugin.c a183f11abf5bcd0b728c89ba99706f53 libgomp/libgomp-plugin.h e2da9a5d3298e4acf757d3e0c8066adb libgomp/libgomp.h ! 039bf2372e3e31416341efe82fff48d1 libgomp/libgomp.info 4052732f79d134fd439c1b39aa83c0db libgomp/libgomp.map 8b2aa50aecad82171348a6918309afd6 libgomp/libgomp.spec.in 0bf7d35e522085d8b7e5aa8f0efd6187 libgomp/libgomp.texi *************** df937a07ca169a97f163c3997bda0dfa libgom *** 87083,87090 **** ba124482fdc049e9a99041d9dd816bfa libgomp/splay-tree.c d7583e2ad844cee8070dfaae09c5501b libgomp/splay-tree.h 889bc97e4b57775b1fc28108d9a80036 libgomp/target.c ! 74fe88e494974b02dd7dc8c87c78d18d libgomp/task.c ! 7099d1c76e2fe2886ac388d4af76a3e7 libgomp/taskloop.c 143611e2f787d1ffe83f8912eded0919 libgomp/team.c d8605ac6c582f4457e119461358194f2 libgomp/teams.c e07f04fffd2f6276df2fbeca36cc3d91 libgomp/testsuite/Makefile.am --- 87537,87544 ---- ba124482fdc049e9a99041d9dd816bfa libgomp/splay-tree.c d7583e2ad844cee8070dfaae09c5501b libgomp/splay-tree.h 889bc97e4b57775b1fc28108d9a80036 libgomp/target.c ! 2d8b34e61b530c870f0fb578ce5cc568 libgomp/task.c ! 4ae37fdf436d548031b3b31c4ed65e63 libgomp/taskloop.c 143611e2f787d1ffe83f8912eded0919 libgomp/team.c d8605ac6c582f4457e119461358194f2 libgomp/teams.c e07f04fffd2f6276df2fbeca36cc3d91 libgomp/testsuite/Makefile.am *************** dff7a676c5c7625a109dad1fb29c317d libgom *** 87413,87418 **** --- 87867,87877 ---- 4066b4a4600721101ac384b659311782 libgomp/testsuite/libgomp.c-c++-common/pr81875.c 08611a968d3d5d8544391a554aa64d2e libgomp/testsuite/libgomp.c-c++-common/pr83046.c bbbd1b345adde5e2b11d48880c03841d libgomp/testsuite/libgomp.c-c++-common/pr93515.c + aa27b099930bc5b5e07e143f2ff6fedc libgomp/testsuite/libgomp.c-c++-common/pr94366.c + 2d2748b0be4d42cf748c994d23973c0d libgomp/testsuite/libgomp.c-c++-common/reduction-1.c + 0da0ce29b808834888fc9c79f55a6f40 libgomp/testsuite/libgomp.c-c++-common/reduction-2.c + e453d108664fa547feb3b13c881be597 libgomp/testsuite/libgomp.c-c++-common/reduction-3.c + 5fb06d4bdb476173a92277c8e950d55c libgomp/testsuite/libgomp.c-c++-common/reduction-4.c d66bb650f4953bee67dede99228fb94f libgomp/testsuite/libgomp.c-c++-common/simd-1.c 561437d7d3d7ef8ef34cb872b883ba18 libgomp/testsuite/libgomp.c-c++-common/simd-14.c cbc1c46aca10b5056dd653273e1b22d3 libgomp/testsuite/libgomp.c-c++-common/simd-15.c *************** e590f10fae9bf053ed7123777b03bf32 libgom *** 87427,87432 **** --- 87886,87892 ---- 23584c2b5e72b0f66678ce4ada7296dd libgomp/testsuite/libgomp.c-c++-common/task-reduction-12.c e4f419faa09d744436aad29d88eb43cf libgomp/testsuite/libgomp.c-c++-common/task-reduction-13.c d284915ed4a4ac417bfb2b7632453bec libgomp/testsuite/libgomp.c-c++-common/task-reduction-14.c + 9c603541ce46d78d4526034634edb381 libgomp/testsuite/libgomp.c-c++-common/task-reduction-15.c 47acc8ff8c516165766737c2f13be4cf libgomp/testsuite/libgomp.c-c++-common/task-reduction-2.c 33b998ac8605f9aab9808c883f2e85eb libgomp/testsuite/libgomp.c-c++-common/task-reduction-3.c 5ab2e1d3a94c19b612a71f802938e9d8 libgomp/testsuite/libgomp.c-c++-common/task-reduction-4.c *************** a0864a470dcfab5610654831f9ec1740 libgom *** 87504,87509 **** --- 87964,87970 ---- 4dd2cfb516bf87f648a7200fcbe97240 libgomp/testsuite/libgomp.c/critical-1.c 1cca2a92d0182ae3c650964de6d87d0a libgomp/testsuite/libgomp.c/critical-2.c b5604fce8e01b4e305a8c0a4563d1aa9 libgomp/testsuite/libgomp.c/debug-1.c + 6d6b0531c9f74483e6111b636da2edf2 libgomp/testsuite/libgomp.c/declare-variant-2.c de26bcca8c4e027a5ce130d6ff6fc370 libgomp/testsuite/libgomp.c/depend-1.c f064386a2df301c3135834944af37de9 libgomp/testsuite/libgomp.c/depend-10.c e46784f3cdfb38c461a2af6e0d9094a0 libgomp/testsuite/libgomp.c/depend-2.c *************** bb5f1add3b172a6350a63ac4065e26ec libgom *** 87621,87626 **** --- 88082,88091 ---- ecc1971bfd0bc04115af17ac694a0431 libgomp/testsuite/libgomp.c/parloops-exit-first-loop-alt-6.c f6ff904d877753394a1482a595ff74d0 libgomp/testsuite/libgomp.c/parloops-exit-first-loop-alt-7.c e2af3bc3621d7e03158bdd391ec72c47 libgomp/testsuite/libgomp.c/parloops-exit-first-loop-alt.c + ebdfdc0bfc1675a26f73ba66329d6e75 libgomp/testsuite/libgomp.c/places-6.c + dce925481bd33e4b6155a992941a2741 libgomp/testsuite/libgomp.c/places-7.c + 033508b78702497acf629bd938d3000c libgomp/testsuite/libgomp.c/places-8.c + bb57a9ccf51a738ab2985a513801a658 libgomp/testsuite/libgomp.c/pr104385.c c522146f1617da47efbc34dedb563f61 libgomp/testsuite/libgomp.c/pr24455-1.c 4d9e31cef64ff399334db6c29e3a07db libgomp/testsuite/libgomp.c/pr24455.c 5f9c41745fbf27e0d2ca8e182c9ff34f libgomp/testsuite/libgomp.c/pr26171.c *************** d4661425a651c88d20ba240b4b095d25 libgom *** 87798,87803 **** --- 88263,88269 ---- 38213b90919e07d4d9f35aca2fd48cdd libgomp/testsuite/libgomp.c/task-reduction-1.c ccf79f1a3cd3d9897f6ea88c19bfbdc8 libgomp/testsuite/libgomp.c/task-reduction-2.c e25fde9ed6b03c3c743ea8cf6c8eaa3e libgomp/testsuite/libgomp.c/task-reduction-3.c + 3b961187e4321fe4d1a657f3f6963089 libgomp/testsuite/libgomp.c/task-reduction-4.c 8f3987fb26389f7b68ec00353f2b2a18 libgomp/testsuite/libgomp.c/teams-1.c 37b3daacf6336034e4ee7c938d7fc2ef libgomp/testsuite/libgomp.c/teams-2.c 8f9a5283e3b48bb452ccf9f17b6bf998 libgomp/testsuite/libgomp.c/teams-3.c *************** f7a9b184b1fef89d4ba1d7e2bfcef9c5 libgom *** 88210,88215 **** --- 88676,88682 ---- 42da18fa72387c734c218d031aca73cc libgomp/testsuite/libgomp.oacc-c-c++-common/asyncwait-nop-1.c cb001e314fc2dbfe743f56e927a54dce libgomp/testsuite/libgomp.oacc-c-c++-common/atomic_capture-1.c 7701cc2c5657c7e8793bdc8a296226d0 libgomp/testsuite/libgomp.oacc-c-c++-common/atomic_capture-2.c + 03002b54364bab48fc94fae621d99c74 libgomp/testsuite/libgomp.oacc-c-c++-common/atomic_capture-3.c 97f62618e6e37c14b2b9ed17c7579fd0 libgomp/testsuite/libgomp.oacc-c-c++-common/atomic_rw-1.c 276fea47eb47f5b846d12e7f4013aaa1 libgomp/testsuite/libgomp.oacc-c-c++-common/atomic_update-1.c 760e768bc422654e755f3164d717aedf libgomp/testsuite/libgomp.oacc-c-c++-common/broadcast-1.c *************** cb001e314fc2dbfe743f56e927a54dce libgom *** 88217,88224 **** 7075fc6b02473e696cc6447d68b597a9 libgomp/testsuite/libgomp.oacc-c-c++-common/clauses-1.c e69ad21264603585ada7277411b59fab libgomp/testsuite/libgomp.oacc-c-c++-common/clauses-2.c a4310590c76fb5671abb7e599593076d libgomp/testsuite/libgomp.oacc-c-c++-common/collapse-1.c ! 8c6d96e2b0eaf7dda2aebf6a2a46cb63 libgomp/testsuite/libgomp.oacc-c-c++-common/collapse-2.c ! 89f08493dc1d069d2b20c950dc3daeb3 libgomp/testsuite/libgomp.oacc-c-c++-common/collapse-3.c c32e2956c7c1bb85bd85fa3aecfc50c5 libgomp/testsuite/libgomp.oacc-c-c++-common/collapse-4.c 19f2f5601f95ec58b09b95258b0818b1 libgomp/testsuite/libgomp.oacc-c-c++-common/combined-directives-1.c 958046e6274805975b0db25945fb2609 libgomp/testsuite/libgomp.oacc-c-c++-common/combined-reduction.c --- 88684,88691 ---- 7075fc6b02473e696cc6447d68b597a9 libgomp/testsuite/libgomp.oacc-c-c++-common/clauses-1.c e69ad21264603585ada7277411b59fab libgomp/testsuite/libgomp.oacc-c-c++-common/clauses-2.c a4310590c76fb5671abb7e599593076d libgomp/testsuite/libgomp.oacc-c-c++-common/collapse-1.c ! 323be94aff19a2ddd90fd7a2ebb0d734 libgomp/testsuite/libgomp.oacc-c-c++-common/collapse-2.c ! 5b7b19682332006afa07f4ed9893193e libgomp/testsuite/libgomp.oacc-c-c++-common/collapse-3.c c32e2956c7c1bb85bd85fa3aecfc50c5 libgomp/testsuite/libgomp.oacc-c-c++-common/collapse-4.c 19f2f5601f95ec58b09b95258b0818b1 libgomp/testsuite/libgomp.oacc-c-c++-common/combined-directives-1.c 958046e6274805975b0db25945fb2609 libgomp/testsuite/libgomp.oacc-c-c++-common/combined-reduction.c *************** bfb8a1981f65bf0f6f7e7ceffe50d12f libgom *** 88514,88519 **** --- 88981,88987 ---- 1a465d1e1bc74775a2990782de6cc788 libgomp/testsuite/libgomp.oacc-c-c++-common/routine-w-1.c 771ea191fe0f86feae77a91e786cd92f libgomp/testsuite/libgomp.oacc-c-c++-common/routine-wv-1.c 9418b01ffd5959058f86a266f7d445e6 libgomp/testsuite/libgomp.oacc-c-c++-common/routine-wv-2.c + c9bee1b3813a97104a84319927c91922 libgomp/testsuite/libgomp.oacc-c-c++-common/static-variable-1.c 0c8d53037ec5c2b4a2208f9527b55b0c libgomp/testsuite/libgomp.oacc-c-c++-common/struct-1.c a2a3b463713aeac5d2334e0d7d3a7b08 libgomp/testsuite/libgomp.oacc-c-c++-common/struct-3-1-1.c d5a34a7eae3b8074ac27869cb72cfff3 libgomp/testsuite/libgomp.oacc-c-c++-common/struct-copyout-1.c *************** e8a3245c095430c8ef2413afe2ee4c48 libgom *** 88767,88773 **** 1ee538b1d8c3361fa5c71fc8cac2aa7a libgomp/testsuite/libgomp.oacc-fortran/update-2.f90 989e6535f20045be32e9e91643a0b08f libgomp/testsuite/libgomp.oacc-fortran/vector-routine.f90 ba7b24b7084a24f7eeb9edb6a47f3dee libgomp/work.c ! 927b831302100a181018feb6fc072fb9 libhsail-rt/ChangeLog 9147b482b39962a71e580b4a8265285e libhsail-rt/Makefile.am f63e3c959c7490f1fbe708067e4884ae libhsail-rt/Makefile.in de97a355fadb5753d182cbcf06b1b33a libhsail-rt/README --- 89235,89241 ---- 1ee538b1d8c3361fa5c71fc8cac2aa7a libgomp/testsuite/libgomp.oacc-fortran/update-2.f90 989e6535f20045be32e9e91643a0b08f libgomp/testsuite/libgomp.oacc-fortran/vector-routine.f90 ba7b24b7084a24f7eeb9edb6a47f3dee libgomp/work.c ! e2c6e0e7bb514928f9b673c1c5a8feea libhsail-rt/ChangeLog 9147b482b39962a71e580b4a8265285e libhsail-rt/Makefile.am f63e3c959c7490f1fbe708067e4884ae libhsail-rt/Makefile.in de97a355fadb5753d182cbcf06b1b33a libhsail-rt/README *************** d3cb42f0affccdc8401528fdfd1f5b65 libhsa *** 88794,88800 **** ef9f05873915c22cae79ef5545355353 libhsail-rt/target-config.h.in 99c2e5e712b990ee07be10f53e41f3fb libiberty/.gitignore a916467b91076e631dd8edb7424769c7 libiberty/COPYING.LIB ! 963a2f9f8f30f5036e9b3998040a585e libiberty/ChangeLog 347c31392973de6a4872d540c1718dc1 libiberty/ChangeLog.jit a3ef253370857a89895181e5431a20e3 libiberty/Makefile.in c68dbf7834af4281ebd84caa3fd54680 libiberty/README --- 89262,89268 ---- ef9f05873915c22cae79ef5545355353 libhsail-rt/target-config.h.in 99c2e5e712b990ee07be10f53e41f3fb libiberty/.gitignore a916467b91076e631dd8edb7424769c7 libiberty/COPYING.LIB ! bccc686ae654a8b3efb46c1b10f67b47 libiberty/ChangeLog 347c31392973de6a4872d540c1718dc1 libiberty/ChangeLog.jit a3ef253370857a89895181e5431a20e3 libiberty/Makefile.in c68dbf7834af4281ebd84caa3fd54680 libiberty/README *************** c490c2d0e84347da40a272a019f71dd4 libibe *** 88821,88828 **** 044204f5b4bcac5eae2face0602129ae libiberty/config/mh-fbsd21 904bdcd9daf97fa55a9ca8901ffe7435 libiberty/config/mh-openedition 38e76da568ab25260754fdb9d5080513 libiberty/config/mh-windows ! 6fcb0df7566e7d4a98552da0ab982a96 libiberty/configure ! 495471cdc3b33de416ea63f5dccce55b libiberty/configure.ac 5824bd0f9be9f4fa74bb3bdc7fd9431c libiberty/configure.com 32e36ace2011f801ed41c55aafe01dfa libiberty/copying-lib.texi fe053283d3559af3ec5cac45f8ead009 libiberty/copysign.c --- 89289,89296 ---- 044204f5b4bcac5eae2face0602129ae libiberty/config/mh-fbsd21 904bdcd9daf97fa55a9ca8901ffe7435 libiberty/config/mh-openedition 38e76da568ab25260754fdb9d5080513 libiberty/config/mh-windows ! e39698f5881bf943412a740253892c06 libiberty/configure ! 423e7dc3ca53e7cdcd7973222df00866 libiberty/configure.ac 5824bd0f9be9f4fa74bb3bdc7fd9431c libiberty/configure.com 32e36ace2011f801ed41c55aafe01dfa libiberty/copying-lib.texi fe053283d3559af3ec5cac45f8ead009 libiberty/copysign.c *************** aff91d7b9a881699df694ae4643d01a9 libibe *** 88900,88907 **** 284bb7a096480b355b75c337086220a2 libiberty/sigsetmask.c b89abf26a0a5df30dffc8b7c01988119 libiberty/simple-object-coff.c 68f1ec6282a2e9e4562f75413268ff74 libiberty/simple-object-common.h ! da1621f0b4eb6fc364c14f4fd4f36566 libiberty/simple-object-elf.c ! f69eb31890a283b988064f7061562a90 libiberty/simple-object-mach-o.c 4bce08f9c3170d230e9b6ce841a4f1c7 libiberty/simple-object-xcoff.c 4f75ce2d9c575d2d57c58be929d9f3b9 libiberty/simple-object.c 4863a11e04a2021af582edf86f156954 libiberty/simple-object.txh --- 89368,89375 ---- 284bb7a096480b355b75c337086220a2 libiberty/sigsetmask.c b89abf26a0a5df30dffc8b7c01988119 libiberty/simple-object-coff.c 68f1ec6282a2e9e4562f75413268ff74 libiberty/simple-object-common.h ! 5145da2ccd629931fd9f0eb93ba6bf1b libiberty/simple-object-elf.c ! 6fb37fbef0415050e2bc7d26ee2e667e libiberty/simple-object-mach-o.c 4bce08f9c3170d230e9b6ce841a4f1c7 libiberty/simple-object-xcoff.c 4f75ce2d9c575d2d57c58be929d9f3b9 libiberty/simple-object.c 4863a11e04a2021af582edf86f156954 libiberty/simple-object.txh *************** c34f8049b6d30b9b002ba3f30d51fa35 libibe *** 88953,88965 **** 08b71dbfa12258887769aaf51b19938d libiberty/xasprintf.c f32b581d10bcc500277b6f4b4f923a4e libiberty/xatexit.c 385d92cff72e33b64a6963b9eab5d055 libiberty/xexit.c ! 70727c8bde6a817d78570feb0bd4acf9 libiberty/xmalloc.c b2c289eb14e9197dcad172f3acba12b7 libiberty/xmemdup.c 4746095b1b67693ab6e78ed72ead1235 libiberty/xstrdup.c 6f774a92661ca4a067f1691a7925524b libiberty/xstrerror.c 2854fd878740d7ea0f0c5ba34f695362 libiberty/xstrndup.c 00ce7121672e7f540abedae54264e8e1 libiberty/xvasprintf.c ! d4fa8be69cda2e6fea7cfabadc0be25f libitm/ChangeLog a9df0726c501bf71a46f426068e8fc9f libitm/Makefile.am 06bb67375770bbbe550b5708624ed9d8 libitm/Makefile.in 3688bb99bcb94998fd633eabeeebd40f libitm/aatree.cc --- 89421,89433 ---- 08b71dbfa12258887769aaf51b19938d libiberty/xasprintf.c f32b581d10bcc500277b6f4b4f923a4e libiberty/xatexit.c 385d92cff72e33b64a6963b9eab5d055 libiberty/xexit.c ! 56149f25d538251f423a582d4bbb119b libiberty/xmalloc.c b2c289eb14e9197dcad172f3acba12b7 libiberty/xmemdup.c 4746095b1b67693ab6e78ed72ead1235 libiberty/xstrdup.c 6f774a92661ca4a067f1691a7925524b libiberty/xstrerror.c 2854fd878740d7ea0f0c5ba34f695362 libiberty/xstrndup.c 00ce7121672e7f540abedae54264e8e1 libiberty/xvasprintf.c ! 569646f2287ffc355a378a9f9b10070e libitm/ChangeLog a9df0726c501bf71a46f426068e8fc9f libitm/Makefile.am 06bb67375770bbbe550b5708624ed9d8 libitm/Makefile.in 3688bb99bcb94998fd633eabeeebd40f libitm/aatree.cc *************** e0895f41a052b6e450b75a65de82aff1 libitm *** 88998,89004 **** bb0f24579fd73331ba9b3ffc98b7e5aa libitm/config/linux/x86/tls.h 7d14b0626ac01df536ec8b3642f72963 libitm/config/posix/rwlock.cc 9827e61ea43a0bede67eeb9cab5990e4 libitm/config/posix/rwlock.h ! d0f69d18df068d5fb4bd128678b0c874 libitm/config/powerpc/sjlj.S 53c92c666b4deb8028f14da3b957888e libitm/config/powerpc/target.h 3fe4202ec986a79750e71985781b87aa libitm/config/s390/sjlj.S d91073af6346537202e0a01c374c25a9 libitm/config/s390/target.h --- 89466,89472 ---- bb0f24579fd73331ba9b3ffc98b7e5aa libitm/config/linux/x86/tls.h 7d14b0626ac01df536ec8b3642f72963 libitm/config/posix/rwlock.cc 9827e61ea43a0bede67eeb9cab5990e4 libitm/config/posix/rwlock.h ! 9fab19e8c9fbb885ad3ee9625595349f libitm/config/powerpc/sjlj.S 53c92c666b4deb8028f14da3b957888e libitm/config/powerpc/target.h 3fe4202ec986a79750e71985781b87aa libitm/config/s390/sjlj.S d91073af6346537202e0a01c374c25a9 libitm/config/s390/target.h *************** a878bfd544991c9b1f0f2f5b39e8ca23 libitm *** 89017,89023 **** 767a0f12cfa1b6ac5a7c058fcb704dc4 libitm/dispatch.h 0011a3c9a726269021c8d5adcbffc2e5 libitm/eh_cpp.cc 91636819710989afcfb9423bebd8d9b6 libitm/libitm.h ! a053aff7bf37a8965d4522bbc4e54cd2 libitm/libitm.info 0c43820b921ecdbe9d98f068100e716a libitm/libitm.map ea467d7117853d139bb288ab75261139 libitm/libitm.spec.in d2826737d965aaa637712f0fe8f7f0ec libitm/libitm.texi --- 89485,89491 ---- 767a0f12cfa1b6ac5a7c058fcb704dc4 libitm/dispatch.h 0011a3c9a726269021c8d5adcbffc2e5 libitm/eh_cpp.cc 91636819710989afcfb9423bebd8d9b6 libitm/libitm.h ! 6128b2247c7738011cfe6053e3c07ce4 libitm/libitm.info 0c43820b921ecdbe9d98f068100e716a libitm/libitm.map ea467d7117853d139bb288ab75261139 libitm/libitm.spec.in d2826737d965aaa637712f0fe8f7f0ec libitm/libitm.texi *************** d806946f2845368f69a6513f60b085d2 libitm *** 89041,89046 **** --- 89509,89515 ---- 91cf9385a1c485d36423dd97fa7f8ee8 libitm/testsuite/libitm.c++/eh-3.C 256c6fe0360dd29b0e0f860df34fd80f libitm/testsuite/libitm.c++/eh-4.C 78880866c8226c142c56854532c6bf03 libitm/testsuite/libitm.c++/eh-5.C + 4b3393a4ac1f5114158bc59fb8ab7f8d libitm/testsuite/libitm.c++/libstdc++-pr91488.C ff5f9bdfec617e402860345005b63f97 libitm/testsuite/libitm.c++/libstdc++-safeexc.C 122b07c4b16d0260ff244aa4b2d8f115 libitm/testsuite/libitm.c++/newdelete.C 2742ff75bdd09e5d7b7a8243faf7a139 libitm/testsuite/libitm.c++/static_ctor.C *************** b4e503ecfdccc9f13da8f73eeb6f23a9 libitm *** 89062,89068 **** ef24198422c19f99b0c41be6a16f7081 libitm/testsuite/libitm.c/txrelease.c bc16054ebacc75aa7800d984c09e69df libitm/useraction.cc 73b31e65f4454e0d3684afca18e8be62 libitm/util.cc ! d243063fe92ce4047e53f517db381329 libobjc/ChangeLog 9d4f4158c2e1e11d5b0fbb824d28cb49 libobjc/Makefile.in 5d2db5fdd28bd269de26be0cffc1dfc5 libobjc/NXConstStr.m f7220a0d5e4ece5d5f47b88a837d818e libobjc/Object.m --- 89531,89537 ---- ef24198422c19f99b0c41be6a16f7081 libitm/testsuite/libitm.c/txrelease.c bc16054ebacc75aa7800d984c09e69df libitm/useraction.cc 73b31e65f4454e0d3684afca18e8be62 libitm/util.cc ! 99e7a5a3ac4028cc449acaf0850f4e56 libobjc/ChangeLog 9d4f4158c2e1e11d5b0fbb824d28cb49 libobjc/Makefile.in 5d2db5fdd28bd269de26be0cffc1dfc5 libobjc/NXConstStr.m f7220a0d5e4ece5d5f47b88a837d818e libobjc/Object.m *************** a8ec801c9883d227d37816356bdc7327 libobj *** 89119,89125 **** b260ef0ddaeec837196c8e6104dbfb65 libobjc/selector.c 9bb351bbc1b307b03d3089874e1011a8 libobjc/sendmsg.c 1ab3f79e5cb7359150b4c5d0feb93d62 libobjc/thr.c ! eafefdc59865970f9057423eeb422aa7 liboffloadmic/ChangeLog 99e2b0817f42c602b520261f7dee183b liboffloadmic/Makefile.am a64a74f82774f355013471ad4dbe5014 liboffloadmic/Makefile.in ab5ae12a0dda7edadc0bd2be40ccff6a liboffloadmic/aclocal.m4 --- 89588,89594 ---- b260ef0ddaeec837196c8e6104dbfb65 libobjc/selector.c 9bb351bbc1b307b03d3089874e1011a8 libobjc/sendmsg.c 1ab3f79e5cb7359150b4c5d0feb93d62 libobjc/thr.c ! ded9464bf4b734c25c04796b6761fdfc liboffloadmic/ChangeLog 99e2b0817f42c602b520261f7dee183b liboffloadmic/Makefile.am a64a74f82774f355013471ad4dbe5014 liboffloadmic/Makefile.in ab5ae12a0dda7edadc0bd2be40ccff6a liboffloadmic/aclocal.m4 *************** b1def68202639bd452fb59aea3371fe4 liboff *** 89207,89213 **** 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 ! 3c281b9dc7c978f2da992ee4b30f6887 libphobos/ChangeLog c0cf15c8749b27e8cbddf4b7a0624410 libphobos/Makefile.am 7ad7ee1e1bf5ae832c27808640f7d8fb libphobos/Makefile.in ee88c20a7744a2305503e1670f3b7889 libphobos/README.gcc --- 89676,89682 ---- 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 ! e52cd039c8df31649d5cf4b449bdb20f libphobos/ChangeLog c0cf15c8749b27e8cbddf4b7a0624410 libphobos/Makefile.am 7ad7ee1e1bf5ae832c27808640f7d8fb libphobos/Makefile.in ee88c20a7744a2305503e1670f3b7889 libphobos/README.gcc *************** ff135cbdf5b61276c8be5193a585bee0 libpho *** 89424,89430 **** 5b35c8d36f9a4de2a8ac9c64cfb1e88c libphobos/libdruntime/core/sys/posix/sys/select.d db113a3bf5bd9cccbdc7217712d8c134 libphobos/libdruntime/core/sys/posix/sys/shm.d c898bae09b918e1382e03234d6d302d5 libphobos/libdruntime/core/sys/posix/sys/socket.d ! 967739c2356820559044ef6324b4cd3e libphobos/libdruntime/core/sys/posix/sys/stat.d 3ebfa48e94a468406d7fe4dc2bf2dea6 libphobos/libdruntime/core/sys/posix/sys/statvfs.d dc70745f1d303a924261c9aa045ed37f libphobos/libdruntime/core/sys/posix/sys/time.d 8247e986a9bd9dd24d2df7852ce21bb9 libphobos/libdruntime/core/sys/posix/sys/ttycom.d --- 89893,89899 ---- 5b35c8d36f9a4de2a8ac9c64cfb1e88c libphobos/libdruntime/core/sys/posix/sys/select.d db113a3bf5bd9cccbdc7217712d8c134 libphobos/libdruntime/core/sys/posix/sys/shm.d c898bae09b918e1382e03234d6d302d5 libphobos/libdruntime/core/sys/posix/sys/socket.d ! bd35ee67d2cdafba74e6d03d8f84347e libphobos/libdruntime/core/sys/posix/sys/stat.d 3ebfa48e94a468406d7fe4dc2bf2dea6 libphobos/libdruntime/core/sys/posix/sys/statvfs.d dc70745f1d303a924261c9aa045ed37f libphobos/libdruntime/core/sys/posix/sys/time.d 8247e986a9bd9dd24d2df7852ce21bb9 libphobos/libdruntime/core/sys/posix/sys/ttycom.d *************** d6b7c67683234af6a273a3d4932e52c0 libpho *** 89620,89626 **** 94e213795f0244ed44436cc14a492878 libphobos/libdruntime/core/sys/windows/winver.d 8cfe1bcb2d08a1c1050784203bc4acf8 libphobos/libdruntime/core/sys/windows/wtsapi32.d bb4907e2b3535906de488fabe923e5b2 libphobos/libdruntime/core/sys/windows/wtypes.d ! 8c8daf6dd0f83065b6cec3512cff018a libphobos/libdruntime/core/thread.d 2adf057be60160bf656c8cc794855f90 libphobos/libdruntime/core/time.d 9f7991cc24708bb5b0c59949d94645ea libphobos/libdruntime/core/vararg.d 6f76ee818b90e0f22edc13f0fb8a42d4 libphobos/libdruntime/gc/bits.d --- 90089,90095 ---- 94e213795f0244ed44436cc14a492878 libphobos/libdruntime/core/sys/windows/winver.d 8cfe1bcb2d08a1c1050784203bc4acf8 libphobos/libdruntime/core/sys/windows/wtsapi32.d bb4907e2b3535906de488fabe923e5b2 libphobos/libdruntime/core/sys/windows/wtypes.d ! 60b33daf49d142f6c3c72b1f6f9be86b libphobos/libdruntime/core/thread.d 2adf057be60160bf656c8cc794855f90 libphobos/libdruntime/core/time.d 9f7991cc24708bb5b0c59949d94645ea libphobos/libdruntime/core/vararg.d 6f76ee818b90e0f22edc13f0fb8a42d4 libphobos/libdruntime/gc/bits.d *************** f935018d2e1b9673ff79cd99976f9b44 libpho *** 89637,89643 **** 3eee50515716d185f586376f65e510de libphobos/libdruntime/gcc/config.d.in 8cbded4b2f28a0af2f7f5b83a7d4193d libphobos/libdruntime/gcc/deh.d 495a4bf9370380919715a95c243b37ba libphobos/libdruntime/gcc/drtstuff.c ! 2c555980f0ba08a8d574879c383dad3d libphobos/libdruntime/gcc/emutls.d 302326e39db011e7add7f8e770b00e38 libphobos/libdruntime/gcc/gthread.d 6b47a513ad09d7bf7a0c7f64a85a2cb9 libphobos/libdruntime/gcc/libbacktrace.d.in d8f4c769f08dfb2ffd305b16f41df04e libphobos/libdruntime/gcc/sections/android.d --- 90106,90112 ---- 3eee50515716d185f586376f65e510de libphobos/libdruntime/gcc/config.d.in 8cbded4b2f28a0af2f7f5b83a7d4193d libphobos/libdruntime/gcc/deh.d 495a4bf9370380919715a95c243b37ba libphobos/libdruntime/gcc/drtstuff.c ! e74c3c95ebd983ce9bd6c9e854cecc85 libphobos/libdruntime/gcc/emutls.d 302326e39db011e7add7f8e770b00e38 libphobos/libdruntime/gcc/gthread.d 6b47a513ad09d7bf7a0c7f64a85a2cb9 libphobos/libdruntime/gcc/libbacktrace.d.in d8f4c769f08dfb2ffd305b16f41df04e libphobos/libdruntime/gcc/sections/android.d *************** e18c906ce994ca0cd593e448b5c0e9fb libpho *** 89649,89655 **** d9083f2c5922f7740ee67c8257b7aa52 libphobos/libdruntime/gcc/unwind/arm.d ee20343ae615ce04477254bd066cde0c libphobos/libdruntime/gcc/unwind/arm_common.d 4a7957d4f04cff22f99b1112224a98e3 libphobos/libdruntime/gcc/unwind/c6x.d ! 9bfa176fb75bcf35ca813963f55669a1 libphobos/libdruntime/gcc/unwind/generic.d 84015e475277a0271f38d97770ad1b7c libphobos/libdruntime/gcc/unwind/package.d 9a890d79378de6083c73ead544da6478 libphobos/libdruntime/gcc/unwind/pe.d e19a0613e55b529507d181a96f7bba05 libphobos/libdruntime/object.d --- 90118,90124 ---- d9083f2c5922f7740ee67c8257b7aa52 libphobos/libdruntime/gcc/unwind/arm.d ee20343ae615ce04477254bd066cde0c libphobos/libdruntime/gcc/unwind/arm_common.d 4a7957d4f04cff22f99b1112224a98e3 libphobos/libdruntime/gcc/unwind/c6x.d ! 695ae6a7a60a164d96f9bbc00a08665f libphobos/libdruntime/gcc/unwind/generic.d 84015e475277a0271f38d97770ad1b7c libphobos/libdruntime/gcc/unwind/package.d 9a890d79378de6083c73ead544da6478 libphobos/libdruntime/gcc/unwind/pe.d e19a0613e55b529507d181a96f7bba05 libphobos/libdruntime/object.d *************** da34a709cc539e4cd81f4100d93b17c9 libpho *** 89861,89867 **** 085d44aff64496b59aa3e7a785af5074 libphobos/src/std/string.d 174fcd8c187f1e134773b4439e9d5ef4 libphobos/src/std/system.d 7ec31ac728ed4fdf60d84e5c1e139b6c libphobos/src/std/traits.d ! af3931e2d5f5841e7ebac3d804b4dfc8 libphobos/src/std/typecons.d 0c2864a8173de711ac1c1085e4f321cf libphobos/src/std/typetuple.d e0069a8fdebf24d2689b2648a6fa8248 libphobos/src/std/uni.d 87e90859aa6919e3023e8671040966c8 libphobos/src/std/uri.d --- 90330,90336 ---- 085d44aff64496b59aa3e7a785af5074 libphobos/src/std/string.d 174fcd8c187f1e134773b4439e9d5ef4 libphobos/src/std/system.d 7ec31ac728ed4fdf60d84e5c1e139b6c libphobos/src/std/traits.d ! 2d35fc78a2259d91cdef5f98ed71edb2 libphobos/src/std/typecons.d 0c2864a8173de711ac1c1085e4f321cf libphobos/src/std/typetuple.d e0069a8fdebf24d2689b2648a6fa8248 libphobos/src/std/uni.d 87e90859aa6919e3023e8671040966c8 libphobos/src/std/uri.d *************** d6d76c43d490a2c9d8addee8eee021b8 libpho *** 89934,89940 **** 35a8e616fdcbacb81b4451aafb732c93 libphobos/testsuite/libphobos.typeinfo/typeinfo.exp 9e301017360325e39a83c6b15962800a libphobos/testsuite/testsuite_flags.in a916467b91076e631dd8edb7424769c7 libquadmath/COPYING.LIB ! 547d9c9a276732a9b0ff7ff656e6fadc libquadmath/ChangeLog 4696eddf264dd090e144b4849b0a6d91 libquadmath/Makefile.am 644a78a01d94abe28b364eaa21142d82 libquadmath/Makefile.in d9afbc1f1e04c7e461265ff9323cc6f4 libquadmath/acinclude.m4 --- 90403,90409 ---- 35a8e616fdcbacb81b4451aafb732c93 libphobos/testsuite/libphobos.typeinfo/typeinfo.exp 9e301017360325e39a83c6b15962800a libphobos/testsuite/testsuite_flags.in a916467b91076e631dd8edb7424769c7 libquadmath/COPYING.LIB ! f215f7fe7695e5d95b87b4584154033c libquadmath/ChangeLog 4696eddf264dd090e144b4849b0a6d91 libquadmath/Makefile.am 644a78a01d94abe28b364eaa21142d82 libquadmath/Makefile.in d9afbc1f1e04c7e461265ff9323cc6f4 libquadmath/acinclude.m4 *************** d9afbc1f1e04c7e461265ff9323cc6f4 libqua *** 89942,89948 **** cf5a7864ff15ab4dd1604e0f6fe4e501 libquadmath/config.h.in 75e633e311f438dd649acfd4008abd14 libquadmath/configure 279cb151e8c43d5af048eb1a9608a435 libquadmath/configure.ac ! 0ea1ff3d84c35811520698429b2d0aa7 libquadmath/libquadmath.info 8442a7234a31a9e0c384bc6376ae9724 libquadmath/libquadmath.texi 77280bb7ee423875e03d9c0d34527df6 libquadmath/libtool-version 452fee0ef153d65eb7413a5103c63a23 libquadmath/math/acoshq.c --- 90411,90417 ---- cf5a7864ff15ab4dd1604e0f6fe4e501 libquadmath/config.h.in 75e633e311f438dd649acfd4008abd14 libquadmath/configure 279cb151e8c43d5af048eb1a9608a435 libquadmath/configure.ac ! 74926f41c615e899b66a07e24300190a libquadmath/libquadmath.info 8442a7234a31a9e0c384bc6376ae9724 libquadmath/libquadmath.texi 77280bb7ee423875e03d9c0d34527df6 libquadmath/libtool-version 452fee0ef153d65eb7413a5103c63a23 libquadmath/math/acoshq.c *************** a81cc82679e80c86cfbd5575867450d0 libqua *** 90074,90080 **** af84fa5118f4adec8393614994e1c4d6 libquadmath/strtod/strtoflt128.c d15a18f7c46ba2add6148edc5b7563c0 libquadmath/strtod/tens_in_limb.c 12c73a846f7668d29de720bd79502bef libquadmath/update-quadmath.py ! 18372b90e21c4a51c1d48327e5dcdb5b libsanitizer/ChangeLog 0e35a2dc2727acc707a3f5ead45c8e12 libsanitizer/HOWTO_MERGE 0249c37748936faf5b1efd5789587909 libsanitizer/LICENSE.TXT 214b34d29a767814ebb2e1fc47be8b55 libsanitizer/LOCAL_PATCHES --- 90543,90549 ---- af84fa5118f4adec8393614994e1c4d6 libquadmath/strtod/strtoflt128.c d15a18f7c46ba2add6148edc5b7563c0 libquadmath/strtod/tens_in_limb.c 12c73a846f7668d29de720bd79502bef libquadmath/update-quadmath.py ! a9a91907aa530e4bacbba62e746ba8ba libsanitizer/ChangeLog 0e35a2dc2727acc707a3f5ead45c8e12 libsanitizer/HOWTO_MERGE 0249c37748936faf5b1efd5789587909 libsanitizer/LICENSE.TXT 214b34d29a767814ebb2e1fc47be8b55 libsanitizer/LOCAL_PATCHES *************** e76971c65fe600d5e331d559547434ff libsan *** 90116,90122 **** ba18948445a6421426074cad1524ae2b libsanitizer/asan/asan_linux.cpp d41d8cd98f00b204e9800998ecf8427e libsanitizer/asan/asan_lock.h 25bf567526eee32aa3b086c0d00951e2 libsanitizer/asan/asan_mac.cpp ! e0dd251df7ef67126e24b1e08e3a9a72 libsanitizer/asan/asan_malloc_linux.cpp a865a25048a867002a6a24550a21bc4c libsanitizer/asan/asan_malloc_local.h 2bb6ed3c14824117e69719ed5be917f4 libsanitizer/asan/asan_malloc_mac.cpp ad791013449cae9daa0b4ec69efa1ab8 libsanitizer/asan/asan_malloc_win.cpp --- 90585,90591 ---- ba18948445a6421426074cad1524ae2b libsanitizer/asan/asan_linux.cpp d41d8cd98f00b204e9800998ecf8427e libsanitizer/asan/asan_lock.h 25bf567526eee32aa3b086c0d00951e2 libsanitizer/asan/asan_mac.cpp ! bf635297c57364f7094ec893f9324705 libsanitizer/asan/asan_malloc_linux.cpp a865a25048a867002a6a24550a21bc4c libsanitizer/asan/asan_malloc_local.h 2bb6ed3c14824117e69719ed5be917f4 libsanitizer/asan/asan_malloc_mac.cpp ad791013449cae9daa0b4ec69efa1ab8 libsanitizer/asan/asan_malloc_win.cpp *************** cb99c43b0c583e8a8ba1866782497653 libsan *** 90247,90253 **** c7dc2218df2ca81b648ada3c38723d1c libsanitizer/sanitizer_common/sanitizer_common.h 6419dda19e4aa8a589434574e0416d00 libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc 41c5a0a4c2f4f5dd93b441c75bb81713 libsanitizer/sanitizer_common/sanitizer_common_interceptors_format.inc ! ac944c9b6034fc9af577b8a43562ddbd libsanitizer/sanitizer_common/sanitizer_common_interceptors_ioctl.inc 35c1671edb836194de169cd01c5e0757 libsanitizer/sanitizer_common/sanitizer_common_interceptors_vfork_aarch64.inc.S b4b4ed1f1a36cce44031fd0b4a1a141f libsanitizer/sanitizer_common/sanitizer_common_interceptors_vfork_arm.inc.S 6d1ff4bab107ed97a3e8eca57e12a3c7 libsanitizer/sanitizer_common/sanitizer_common_interceptors_vfork_i386.inc.S --- 90716,90722 ---- c7dc2218df2ca81b648ada3c38723d1c libsanitizer/sanitizer_common/sanitizer_common.h 6419dda19e4aa8a589434574e0416d00 libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc 41c5a0a4c2f4f5dd93b441c75bb81713 libsanitizer/sanitizer_common/sanitizer_common_interceptors_format.inc ! 885355959681eb26e2e80da24e0b061f libsanitizer/sanitizer_common/sanitizer_common_interceptors_ioctl.inc 35c1671edb836194de169cd01c5e0757 libsanitizer/sanitizer_common/sanitizer_common_interceptors_vfork_aarch64.inc.S b4b4ed1f1a36cce44031fd0b4a1a141f libsanitizer/sanitizer_common/sanitizer_common_interceptors_vfork_arm.inc.S 6d1ff4bab107ed97a3e8eca57e12a3c7 libsanitizer/sanitizer_common/sanitizer_common_interceptors_vfork_i386.inc.S *************** be27216b0433f97b8e2267da04e648ad libsan *** 90295,90301 **** 85b7de59b8c28ea298343b8a275f5943 libsanitizer/sanitizer_common/sanitizer_libignore.h 51b260a51395ae6686ecb148d5da7bf3 libsanitizer/sanitizer_common/sanitizer_linux.cpp e9563a01104e26ad607a73bc8361b183 libsanitizer/sanitizer_common/sanitizer_linux.h ! 803409115f79f8ba748a983f4cf3ef7b libsanitizer/sanitizer_common/sanitizer_linux_libcdep.cpp 5834489d2d995652df6c440be4b36cab libsanitizer/sanitizer_common/sanitizer_linux_s390.cpp 51d4c37472c1c2c6010e5d1eb5bf340f libsanitizer/sanitizer_common/sanitizer_list.h d0b45512a07eac4f507b3b0f49965980 libsanitizer/sanitizer_common/sanitizer_local_address_space_view.h --- 90764,90770 ---- 85b7de59b8c28ea298343b8a275f5943 libsanitizer/sanitizer_common/sanitizer_libignore.h 51b260a51395ae6686ecb148d5da7bf3 libsanitizer/sanitizer_common/sanitizer_linux.cpp e9563a01104e26ad607a73bc8361b183 libsanitizer/sanitizer_common/sanitizer_linux.h ! 445729bf480304e7fe30af52fc293500 libsanitizer/sanitizer_common/sanitizer_linux_libcdep.cpp 5834489d2d995652df6c440be4b36cab libsanitizer/sanitizer_common/sanitizer_linux_s390.cpp 51d4c37472c1c2c6010e5d1eb5bf340f libsanitizer/sanitizer_common/sanitizer_list.h d0b45512a07eac4f507b3b0f49965980 libsanitizer/sanitizer_common/sanitizer_local_address_space_view.h *************** d2bf2d24145b87281fed9790d72e64fb libsan *** 90318,90330 **** 8b4031e08b6385eb303cbeea8d39acfe libsanitizer/sanitizer_common/sanitizer_platform_limits_netbsd.h 8000711a00d2894dbf4e5b23932e4241 libsanitizer/sanitizer_common/sanitizer_platform_limits_openbsd.cpp 9d9e2ca7e7d8ece7182fbd83d5df0b42 libsanitizer/sanitizer_common/sanitizer_platform_limits_openbsd.h ! afbd369b59c71b2be448bd4c4461b0f5 libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp ! 92d58a28684a004a6d6f217d08dfc216 libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h 3ee58b1ba29dcc881e4bb98f0b8f8b16 libsanitizer/sanitizer_common/sanitizer_platform_limits_solaris.cpp 65580ad77115e59c2e7c3343384d5991 libsanitizer/sanitizer_common/sanitizer_platform_limits_solaris.h 262b50384f8cd72c2df5737945de60f3 libsanitizer/sanitizer_common/sanitizer_posix.cpp 424ee56faf38d3f5a264ac53cdfcec75 libsanitizer/sanitizer_common/sanitizer_posix.h ! 875d6537796bafb713b1343aa0e76db0 libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cpp 0e291c4a21a07dfe2ca6a59095a82c61 libsanitizer/sanitizer_common/sanitizer_printf.cpp ebc718bd9bde507cee73def20e9c43f1 libsanitizer/sanitizer_common/sanitizer_procmaps.h e8f4313e91204916fd4fe297342de804 libsanitizer/sanitizer_common/sanitizer_procmaps_bsd.cpp --- 90787,90799 ---- 8b4031e08b6385eb303cbeea8d39acfe libsanitizer/sanitizer_common/sanitizer_platform_limits_netbsd.h 8000711a00d2894dbf4e5b23932e4241 libsanitizer/sanitizer_common/sanitizer_platform_limits_openbsd.cpp 9d9e2ca7e7d8ece7182fbd83d5df0b42 libsanitizer/sanitizer_common/sanitizer_platform_limits_openbsd.h ! fc1df6b95c43bc8e6f2d39099d322f11 libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp ! 25f5260cb615823da4467e930f2c8c68 libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h 3ee58b1ba29dcc881e4bb98f0b8f8b16 libsanitizer/sanitizer_common/sanitizer_platform_limits_solaris.cpp 65580ad77115e59c2e7c3343384d5991 libsanitizer/sanitizer_common/sanitizer_platform_limits_solaris.h 262b50384f8cd72c2df5737945de60f3 libsanitizer/sanitizer_common/sanitizer_posix.cpp 424ee56faf38d3f5a264ac53cdfcec75 libsanitizer/sanitizer_common/sanitizer_posix.h ! f24bb8aff52bccd25d4f6f3357882253 libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cpp 0e291c4a21a07dfe2ca6a59095a82c61 libsanitizer/sanitizer_common/sanitizer_printf.cpp ebc718bd9bde507cee73def20e9c43f1 libsanitizer/sanitizer_common/sanitizer_procmaps.h e8f4313e91204916fd4fe297342de804 libsanitizer/sanitizer_common/sanitizer_procmaps_bsd.cpp *************** cabf4d60cc2e457091514cb4f2237bbd libsan *** 90494,90500 **** 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 ! 0e1232ae0c5f763cd5d7cef793453357 libssp/ChangeLog 587c237b1073b8be40a1975c86d0ce01 libssp/Makefile.am b56958cdc5828ca811c35bbf479b3a09 libssp/Makefile.in f6f6c804e40e3a3ef407d3d13fafb6c0 libssp/aclocal.m4 --- 90963,90969 ---- 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 ! c81071dbe26dfb7935a3beadd3fe159d libssp/ChangeLog 587c237b1073b8be40a1975c86d0ce01 libssp/Makefile.am b56958cdc5828ca811c35bbf479b3a09 libssp/Makefile.in f6f6c804e40e3a3ef407d3d13fafb6c0 libssp/aclocal.m4 *************** a8291ec60d5058c6b652ad3948ba88f2 libssp *** 90523,90529 **** b7a581dfcf315a2215d8792224b15ba4 libssp/strncpy-chk.c 4720732375196e3834d0dc2a4ccd4678 libssp/vsnprintf-chk.c c67bcbd0e33f52512fa906f33a6ad93c libssp/vsprintf-chk.c ! d082ee0a8892f3eff99f48f44e4f197b libstdc++-v3/ChangeLog 7aa6c40440a44fcf5ec94c066160c2f8 libstdc++-v3/ChangeLog-1998 7aff86600b6a1ed3fa87305075a92db0 libstdc++-v3/ChangeLog-1999 a6f28e8fc9bb07696a9e068b439a3a87 libstdc++-v3/ChangeLog-2000 --- 90992,90998 ---- b7a581dfcf315a2215d8792224b15ba4 libssp/strncpy-chk.c 4720732375196e3834d0dc2a4ccd4678 libssp/vsnprintf-chk.c c67bcbd0e33f52512fa906f33a6ad93c libssp/vsprintf-chk.c ! ad95d6ac06fb29673fe5570daba8643e libstdc++-v3/ChangeLog 7aa6c40440a44fcf5ec94c066160c2f8 libstdc++-v3/ChangeLog-1998 7aff86600b6a1ed3fa87305075a92db0 libstdc++-v3/ChangeLog-1999 a6f28e8fc9bb07696a9e068b439a3a87 libstdc++-v3/ChangeLog-2000 *************** e19bdce64f0ddc202e2857a54f4b5331 libstd *** 90586,90594 **** 652c97afe282b8e5d962cf517c5f1e06 libstdc++-v3/config/abi/pre/gnu.ver b01f8da8f4373070847fe317fe8a546e libstdc++-v3/config/abi/pre/none.ver 383e35120b7a60e287cca37f2631f1c9 libstdc++-v3/config/allocator/bitmap_allocator_base.h ! 54c429c81865be28a4f782ae2b428e37 libstdc++-v3/config/allocator/malloc_allocator_base.h 500679d8db432a93a506e32a75ffb4f1 libstdc++-v3/config/allocator/mt_allocator_base.h ! 81f39988e9e07cf8a63d9bcc1286df65 libstdc++-v3/config/allocator/new_allocator_base.h 4a8f75cbd9ee51f1d580268f039d179f libstdc++-v3/config/allocator/pool_allocator_base.h fd51b38224eaf91205c8636f1fcec9e5 libstdc++-v3/config/cpu/aarch64/opt/bits/opt_random.h 32b8a1b4c040afd686496ff9fb662148 libstdc++-v3/config/cpu/aarch64/opt/ext/opt_random.h --- 91055,91063 ---- 652c97afe282b8e5d962cf517c5f1e06 libstdc++-v3/config/abi/pre/gnu.ver b01f8da8f4373070847fe317fe8a546e libstdc++-v3/config/abi/pre/none.ver 383e35120b7a60e287cca37f2631f1c9 libstdc++-v3/config/allocator/bitmap_allocator_base.h ! 9fecb707ab0229ee19645d33dde46efe libstdc++-v3/config/allocator/malloc_allocator_base.h 500679d8db432a93a506e32a75ffb4f1 libstdc++-v3/config/allocator/mt_allocator_base.h ! e0dbbab182901f001772db85b89518a7 libstdc++-v3/config/allocator/new_allocator_base.h 4a8f75cbd9ee51f1d580268f039d179f libstdc++-v3/config/allocator/pool_allocator_base.h fd51b38224eaf91205c8636f1fcec9e5 libstdc++-v3/config/cpu/aarch64/opt/bits/opt_random.h 32b8a1b4c040afd686496ff9fb662148 libstdc++-v3/config/cpu/aarch64/opt/ext/opt_random.h *************** ca3e62817fc4c45c6f1e23e555fbbab1 libstd *** 90756,90762 **** c68ff21babfa14f20b98e36a2c808418 libstdc++-v3/doc/html/api.html fd168dc2b2d0c12b1e17b40ffec96390 libstdc++-v3/doc/html/bk02.html 47886ba7da131bf3cbf81a27cada5f6f libstdc++-v3/doc/html/bk03.html ! 2211b9b47cd9f2d47d55db52774152c9 libstdc++-v3/doc/html/faq.html 1ae70f0bf94464b036515d333fff8ab2 libstdc++-v3/doc/html/images/confdeps.png d7f63b43e9f4c39cf71de7585de522ee libstdc++-v3/doc/html/images/pbds_balls_and_bins.png 22eedc841676a98f8ae8b95131ac4d7e libstdc++-v3/doc/html/images/pbds_binary_priority_queue_int_push.png --- 91225,91231 ---- c68ff21babfa14f20b98e36a2c808418 libstdc++-v3/doc/html/api.html fd168dc2b2d0c12b1e17b40ffec96390 libstdc++-v3/doc/html/bk02.html 47886ba7da131bf3cbf81a27cada5f6f libstdc++-v3/doc/html/bk03.html ! f8da0f34d5632ef2fa41bc24b870c7ca libstdc++-v3/doc/html/faq.html 1ae70f0bf94464b036515d333fff8ab2 libstdc++-v3/doc/html/images/confdeps.png d7f63b43e9f4c39cf71de7585de522ee libstdc++-v3/doc/html/images/pbds_balls_and_bins.png 22eedc841676a98f8ae8b95131ac4d7e libstdc++-v3/doc/html/images/pbds_binary_priority_queue_int_push.png *************** d6e655afa90caf559aa77ae772faf5dc libstd *** 90918,90928 **** dc012f6bbeb24332ca023dc15d6da9cf libstdc++-v3/doc/html/manual/profile_mode_devel.html d55e182adbf08772ec85b18d390b0dbb libstdc++-v3/doc/html/manual/profile_mode_diagnostics.html 0e9a02c563561ad32d5b24fd930bf8f5 libstdc++-v3/doc/html/manual/profile_mode_impl.html ! 30dc2d04c79d520f048c2759bf437b5b libstdc++-v3/doc/html/manual/setup.html 722af7e8800eb4ecd31806b2e4bd20e5 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 ! bb6345d66b568394a1dcc7e1d0fde2ce 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 --- 91387,91397 ---- dc012f6bbeb24332ca023dc15d6da9cf libstdc++-v3/doc/html/manual/profile_mode_devel.html d55e182adbf08772ec85b18d390b0dbb libstdc++-v3/doc/html/manual/profile_mode_diagnostics.html 0e9a02c563561ad32d5b24fd930bf8f5 libstdc++-v3/doc/html/manual/profile_mode_impl.html ! ffceba0f3c20f451f9753c101c0fa634 libstdc++-v3/doc/html/manual/setup.html 722af7e8800eb4ecd31806b2e4bd20e5 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 ! 1a41f62004189fd0779ab46db69f04f2 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 *************** ccbc0492a648982f2dc225595bdbc567 libstd *** 90946,90952 **** f5a41d4f7585b850b3182fc5f4888f93 libstdc++-v3/doc/xml/book.txml 95d1335e76860d53246f3e400231ec38 libstdc++-v3/doc/xml/chapter.txml 7f8c520dc83013026c671c5c342f73e2 libstdc++-v3/doc/xml/class.txml ! 1b1212091727965bb7968b8ad8a1c502 libstdc++-v3/doc/xml/faq.xml f7459abb0d4a0265176aaada5a73bd08 libstdc++-v3/doc/xml/gnu/fdl-1.3.xml 586a107d5b259aea253440bc588765e9 libstdc++-v3/doc/xml/gnu/gpl-3.0.xml 18a6390297702ec8fd75cbcc525d2005 libstdc++-v3/doc/xml/images/confdeps.dot --- 91415,91421 ---- f5a41d4f7585b850b3182fc5f4888f93 libstdc++-v3/doc/xml/book.txml 95d1335e76860d53246f3e400231ec38 libstdc++-v3/doc/xml/chapter.txml 7f8c520dc83013026c671c5c342f73e2 libstdc++-v3/doc/xml/class.txml ! 7d8d34a0a2914fc2d055aefb1f805e97 libstdc++-v3/doc/xml/faq.xml f7459abb0d4a0265176aaada5a73bd08 libstdc++-v3/doc/xml/gnu/fdl-1.3.xml 586a107d5b259aea253440bc588765e9 libstdc++-v3/doc/xml/gnu/gpl-3.0.xml 18a6390297702ec8fd75cbcc525d2005 libstdc++-v3/doc/xml/images/confdeps.dot *************** c1e74618e099a0a26f35c653a9d49971 libstd *** 91150,91156 **** fca17d234bdc033e9e27285ab9c84b4b libstdc++-v3/doc/xml/manual/evolution.xml 14742e66a2ac01343ef60e87d06d05ff libstdc++-v3/doc/xml/manual/extensions.xml 26083dec441281888a23365de5567180 libstdc++-v3/doc/xml/manual/internals.xml ! 23ada350ca896232c67ab4c97c758fdb libstdc++-v3/doc/xml/manual/intro.xml 82d01f11ebf848dc64a611a829ef5a38 libstdc++-v3/doc/xml/manual/io.xml bab548248426e0e90cdc1436ff5b87de libstdc++-v3/doc/xml/manual/iterators.xml 78f41acb39e015b061554cc816e3155e libstdc++-v3/doc/xml/manual/locale.xml --- 91619,91625 ---- fca17d234bdc033e9e27285ab9c84b4b libstdc++-v3/doc/xml/manual/evolution.xml 14742e66a2ac01343ef60e87d06d05ff libstdc++-v3/doc/xml/manual/extensions.xml 26083dec441281888a23365de5567180 libstdc++-v3/doc/xml/manual/internals.xml ! 9e3bc83dd5e6e039ede33f797fb40e33 libstdc++-v3/doc/xml/manual/intro.xml 82d01f11ebf848dc64a611a829ef5a38 libstdc++-v3/doc/xml/manual/io.xml bab548248426e0e90cdc1436ff5b87de libstdc++-v3/doc/xml/manual/iterators.xml 78f41acb39e015b061554cc816e3155e libstdc++-v3/doc/xml/manual/locale.xml *************** bab548248426e0e90cdc1436ff5b87de libstd *** 91161,91177 **** ebf5d45818e4309d61cdcc28b48ccc51 libstdc++-v3/doc/xml/manual/parallel_mode.xml eb99bd418a3e47c7fc7a2298d1d63d27 libstdc++-v3/doc/xml/manual/policy_data_structures.xml e2ea3eb265b0daa00700ec1b06a363d9 libstdc++-v3/doc/xml/manual/policy_data_structures_biblio.xml ! 4e49a8e041ae187579c7683d4b840fc4 libstdc++-v3/doc/xml/manual/prerequisites.xml d006612b2e21ab181c25bc88697b4543 libstdc++-v3/doc/xml/manual/shared_ptr.xml 4973f5115dccc7a4572777a094cc60e8 libstdc++-v3/doc/xml/manual/spine.xml ! 21b4ad60404b59dfe18632c7f5a6d317 libstdc++-v3/doc/xml/manual/status_cxx1998.xml ! caec35016c6aae250fcddce0b8dc7b39 libstdc++-v3/doc/xml/manual/status_cxx2011.xml ! acbf48436c7496bd80f5ed68bab9008e libstdc++-v3/doc/xml/manual/status_cxx2014.xml ! 93c6e3b276e8d966e1d6a425830d1449 libstdc++-v3/doc/xml/manual/status_cxx2017.xml ! db6b42adee6e91b0d3070990995bbedc libstdc++-v3/doc/xml/manual/status_cxx2020.xml 3c72998c4574690fac280c058a0db757 libstdc++-v3/doc/xml/manual/status_cxxis29124.xml ! a24ce9da7b6fb967eb459308f8b5d72c libstdc++-v3/doc/xml/manual/status_cxxtr1.xml ! ac15199dfd0338379b93c9f4fff2ae73 libstdc++-v3/doc/xml/manual/status_cxxtr24733.xml 1ea4904f13ba196db9689534b653622f libstdc++-v3/doc/xml/manual/strings.xml 1aa65aa75a216512c45df3eb15fadaa3 libstdc++-v3/doc/xml/manual/support.xml ac1ebee24bb0998849f0e195df6d932a libstdc++-v3/doc/xml/manual/test.xml --- 91630,91646 ---- ebf5d45818e4309d61cdcc28b48ccc51 libstdc++-v3/doc/xml/manual/parallel_mode.xml eb99bd418a3e47c7fc7a2298d1d63d27 libstdc++-v3/doc/xml/manual/policy_data_structures.xml e2ea3eb265b0daa00700ec1b06a363d9 libstdc++-v3/doc/xml/manual/policy_data_structures_biblio.xml ! ee6d5b2bc3741b3e049dc335f2c25284 libstdc++-v3/doc/xml/manual/prerequisites.xml d006612b2e21ab181c25bc88697b4543 libstdc++-v3/doc/xml/manual/shared_ptr.xml 4973f5115dccc7a4572777a094cc60e8 libstdc++-v3/doc/xml/manual/spine.xml ! 6043d036e7b64486d97bce2607a3236c libstdc++-v3/doc/xml/manual/status_cxx1998.xml ! ff64342bfa017d4722f15a35e800f076 libstdc++-v3/doc/xml/manual/status_cxx2011.xml ! 2de777c1edabc6676dcd7eb0a6604326 libstdc++-v3/doc/xml/manual/status_cxx2014.xml ! a983260fa3c4e2e0976b9478f23a9c96 libstdc++-v3/doc/xml/manual/status_cxx2017.xml ! 3b718f68c92ad4814398744144491473 libstdc++-v3/doc/xml/manual/status_cxx2020.xml 3c72998c4574690fac280c058a0db757 libstdc++-v3/doc/xml/manual/status_cxxis29124.xml ! b218e507aeb945ae013c6216045f14d4 libstdc++-v3/doc/xml/manual/status_cxxtr1.xml ! f3140137e80134f89c0995cee1b29aaf libstdc++-v3/doc/xml/manual/status_cxxtr24733.xml 1ea4904f13ba196db9689534b653622f libstdc++-v3/doc/xml/manual/strings.xml 1aa65aa75a216512c45df3eb15fadaa3 libstdc++-v3/doc/xml/manual/support.xml ac1ebee24bb0998849f0e195df6d932a libstdc++-v3/doc/xml/manual/test.xml *************** cc6b44837ffecfed21ba33bf580865af libstd *** 91182,91189 **** a8f0003856ec916712e8abaddf746a77 libstdc++-v3/doc/xml/spine.xml bd966b4a0df6f2a84f9770525581d45c libstdc++-v3/doc/xsl/customization.xsl.in 7bb72420e699e194cf6066457cb6d6a5 libstdc++-v3/fragment.am ! 85ea29041c12f506d9feccbb0ba8db3c libstdc++-v3/include/Makefile.am ! 2e47eca8288cdadbb0c8af3e64f71639 libstdc++-v3/include/Makefile.in 4fdaa579a320c5b2f53586fac01d65d0 libstdc++-v3/include/backward/auto_ptr.h 831dbf0ebc9318ec68636e9546b698fc libstdc++-v3/include/backward/backward_warning.h e9f460a762e1c4ab8196c03532a7568e libstdc++-v3/include/backward/binders.h --- 91651,91658 ---- a8f0003856ec916712e8abaddf746a77 libstdc++-v3/doc/xml/spine.xml bd966b4a0df6f2a84f9770525581d45c libstdc++-v3/doc/xsl/customization.xsl.in 7bb72420e699e194cf6066457cb6d6a5 libstdc++-v3/fragment.am ! c0f9573af94f62fd17bf64d9e33719c6 libstdc++-v3/include/Makefile.am ! 769f3a275b75b125f2d8b6a9a70cf9ef libstdc++-v3/include/Makefile.in 4fdaa579a320c5b2f53586fac01d65d0 libstdc++-v3/include/backward/auto_ptr.h 831dbf0ebc9318ec68636e9546b698fc libstdc++-v3/include/backward/backward_warning.h e9f460a762e1c4ab8196c03532a7568e libstdc++-v3/include/backward/binders.h *************** e9d9de6c23151ac554374a0970563bb2 libstd *** 91193,91211 **** 731cf5f8704ce341c5318809596bf4f5 libstdc++-v3/include/backward/hashtable.h d3328a672a039bfd90d67d6b15cffeae libstdc++-v3/include/backward/strstream 406cf930d32ea9b24a3b38d611591da3 libstdc++-v3/include/bits/algorithmfwd.h ! d805d7b8d7e65d02ad70eeb0f54638d6 libstdc++-v3/include/bits/alloc_traits.h f43e89e976a1e5bd6e7ac6fc5d5b2e6f libstdc++-v3/include/bits/allocated_ptr.h ! 48aab785314be46559216ad61c8e602f libstdc++-v3/include/bits/allocator.h ! c1b0e3181857d5f71a77eea3dfa94b9d libstdc++-v3/include/bits/atomic_base.h 92c45df4ca56d697729ec08344786fda libstdc++-v3/include/bits/atomic_futex.h ! a3a740622a4554763452ec10cec87f90 libstdc++-v3/include/bits/basic_ios.h e02561e847871b3c2e564e770d38dd91 libstdc++-v3/include/bits/basic_ios.tcc ! 3c9b3812d31263ce654536e726e7ec23 libstdc++-v3/include/bits/basic_string.h 2640a84105a61017f234b2d6bf4a6151 libstdc++-v3/include/bits/basic_string.tcc a9f458e6d11bd8fe67ccf9f8f565cd21 libstdc++-v3/include/bits/boost_concept_check.h 385f27a13104bc239d9b88715e10253f libstdc++-v3/include/bits/c++0x_warning.h 40d9fc042bf6725394cc094ab20505e8 libstdc++-v3/include/bits/c++config ! dd7301fe6d03b999606155efaae414c7 libstdc++-v3/include/bits/char_traits.h 3170f2367f21184e43a6bacc31c7c17f libstdc++-v3/include/bits/charconv.h e1843d770da6461dc6b8068d411cf15a libstdc++-v3/include/bits/codecvt.h f37a2494f525b746088a79bc5068c2ec libstdc++-v3/include/bits/concept_check.h --- 91662,91680 ---- 731cf5f8704ce341c5318809596bf4f5 libstdc++-v3/include/backward/hashtable.h d3328a672a039bfd90d67d6b15cffeae libstdc++-v3/include/backward/strstream 406cf930d32ea9b24a3b38d611591da3 libstdc++-v3/include/bits/algorithmfwd.h ! d1755671e4b692aee1f4a46925d90141 libstdc++-v3/include/bits/alloc_traits.h f43e89e976a1e5bd6e7ac6fc5d5b2e6f libstdc++-v3/include/bits/allocated_ptr.h ! b855ec2ec31abb87e9cef98ffb145a48 libstdc++-v3/include/bits/allocator.h ! 6ee962c3bbdb79ddc10ddf35a5ecc315 libstdc++-v3/include/bits/atomic_base.h 92c45df4ca56d697729ec08344786fda libstdc++-v3/include/bits/atomic_futex.h ! 55b12bb7cb7eebbde7d7ee564b752870 libstdc++-v3/include/bits/basic_ios.h e02561e847871b3c2e564e770d38dd91 libstdc++-v3/include/bits/basic_ios.tcc ! 4bf05b057e19a25caabac70a832e0900 libstdc++-v3/include/bits/basic_string.h 2640a84105a61017f234b2d6bf4a6151 libstdc++-v3/include/bits/basic_string.tcc a9f458e6d11bd8fe67ccf9f8f565cd21 libstdc++-v3/include/bits/boost_concept_check.h 385f27a13104bc239d9b88715e10253f libstdc++-v3/include/bits/c++0x_warning.h 40d9fc042bf6725394cc094ab20505e8 libstdc++-v3/include/bits/c++config ! 9c91bb239aef5e0c46d07aaad2939ab5 libstdc++-v3/include/bits/char_traits.h 3170f2367f21184e43a6bacc31c7c17f libstdc++-v3/include/bits/charconv.h e1843d770da6461dc6b8068d411cf15a libstdc++-v3/include/bits/codecvt.h f37a2494f525b746088a79bc5068c2ec libstdc++-v3/include/bits/concept_check.h *************** c3cc2d45d990447929460f51bb112b73 libstd *** 91213,91248 **** f563980ab088b6c6785672b3e8691ef1 libstdc++-v3/include/bits/deque.tcc 9abeeba07316d16042e907dfe04e27b1 libstdc++-v3/include/bits/enable_special_members.h 184d8cdc779212e99b204322e504121e libstdc++-v3/include/bits/erase_if.h ! ce60de93cf2da8333e20306fc5be999d libstdc++-v3/include/bits/forward_list.h ! ff185b61e9f7d8ecea308b72ca27350b libstdc++-v3/include/bits/forward_list.tcc ! 32189de09325718794e803d5b922bde1 libstdc++-v3/include/bits/fs_dir.h ! 5a200424da45d06e75bbce0337a5e1ad libstdc++-v3/include/bits/fs_fwd.h ! 5ddba6e8f874cdbd27e7f542989380cf libstdc++-v3/include/bits/fs_ops.h ! ccd854c16506454f27ec56b64dd11874 libstdc++-v3/include/bits/fs_path.h 22ff14d1a36511441f5a67a1abe47856 libstdc++-v3/include/bits/fstream.tcc 9769ec5cf1d70f5d388572a69a3a88d5 libstdc++-v3/include/bits/functexcept.h ! adb5dde9a712ba1704c09ceb4d7ba09a libstdc++-v3/include/bits/functional_hash.h ! 38a5e94145bc46d7bc77326bfdd0eb3f libstdc++-v3/include/bits/gslice.h ! 0192fffafef1f34c19d0b39add009ec8 libstdc++-v3/include/bits/gslice_array.h ! 595823c20929c35447f96366ea032a7c libstdc++-v3/include/bits/hashtable.h ! 0335f8216dfa0bbb408704d30fa933cc libstdc++-v3/include/bits/hashtable_policy.h ! f9f74348fc555b80fd488703710060a2 libstdc++-v3/include/bits/indirect_array.h 2103c37950b04e2ddd4fe96183d4a4eb libstdc++-v3/include/bits/invoke.h 2413e956f6232abf2d9fd5a794c781b0 libstdc++-v3/include/bits/ios_base.h f41ecd4020ddfbf088767f2ce83cddd9 libstdc++-v3/include/bits/istream.tcc ! dff62c27573fc256a0d2d226b5cd46ad libstdc++-v3/include/bits/iterator_concepts.h 5e1af8238a7182366476acc7c95f6cb9 libstdc++-v3/include/bits/list.tcc ! e0f065d3ce709e381bafef4d30c88feb libstdc++-v3/include/bits/locale_classes.h 1a4d19df3be9b714847a5e438ba25b3b libstdc++-v3/include/bits/locale_classes.tcc c4fed2b5b4879837686150624f51ddbc libstdc++-v3/include/bits/locale_conv.h ! 355d41fd06efa71d679d1e6a416b690a libstdc++-v3/include/bits/locale_facets.h ad3726c17e8e10e80b100401ec35a07c libstdc++-v3/include/bits/locale_facets.tcc ! 2b4f782bc2a3f9e0339e84df0b473aac libstdc++-v3/include/bits/locale_facets_nonio.h a3cf6cabd7bdaee154cafa2c88aede3a libstdc++-v3/include/bits/locale_facets_nonio.tcc 756fbe1353340b4e7cae5d8a93132788 libstdc++-v3/include/bits/localefwd.h ! 8228e1a12d5f8baf7541c9e012539b8b libstdc++-v3/include/bits/mask_array.h ! 7d924fcf17909edcad84d227043b7a55 libstdc++-v3/include/bits/memoryfwd.h ! 394c4a570b254b49ffbdd566bf8a6076 libstdc++-v3/include/bits/move.h f6aa6553dc5524abdfe41a7da3a49706 libstdc++-v3/include/bits/node_handle.h 7403d75f60a3792a27b459e9ff829ee2 libstdc++-v3/include/bits/ostream.tcc e1cc5c2a4400aeb3ea5a2e0c66399709 libstdc++-v3/include/bits/ostream_insert.h --- 91682,91717 ---- f563980ab088b6c6785672b3e8691ef1 libstdc++-v3/include/bits/deque.tcc 9abeeba07316d16042e907dfe04e27b1 libstdc++-v3/include/bits/enable_special_members.h 184d8cdc779212e99b204322e504121e libstdc++-v3/include/bits/erase_if.h ! d27802ff0f98ec6d7d75defdbadafdf1 libstdc++-v3/include/bits/forward_list.h ! 838056aa43ff8eff86336f00ae28dc29 libstdc++-v3/include/bits/forward_list.tcc ! 556b2f94404e66c119a7ad397aa4b614 libstdc++-v3/include/bits/fs_dir.h ! af0f1aba7930a95736ae0bbadc6bf2db libstdc++-v3/include/bits/fs_fwd.h ! 29c11f7e70d67fe804809aaf9c97cfe7 libstdc++-v3/include/bits/fs_ops.h ! fd8d70f0ef1d258dad26708011e525ec libstdc++-v3/include/bits/fs_path.h 22ff14d1a36511441f5a67a1abe47856 libstdc++-v3/include/bits/fstream.tcc 9769ec5cf1d70f5d388572a69a3a88d5 libstdc++-v3/include/bits/functexcept.h ! 0c6dbf801e218a9215ed73bf2a9f72a2 libstdc++-v3/include/bits/functional_hash.h ! f0068dbef0ebc56ffae5652b6064f420 libstdc++-v3/include/bits/gslice.h ! c56b5968917762b750c5c3803221ffe9 libstdc++-v3/include/bits/gslice_array.h ! 947bd93feb1720a9b5185c6abfedba17 libstdc++-v3/include/bits/hashtable.h ! bb29dabfdbd8a2092a023e4614908c2d libstdc++-v3/include/bits/hashtable_policy.h ! e1d6ec24244158a9f2776a8628955317 libstdc++-v3/include/bits/indirect_array.h 2103c37950b04e2ddd4fe96183d4a4eb libstdc++-v3/include/bits/invoke.h 2413e956f6232abf2d9fd5a794c781b0 libstdc++-v3/include/bits/ios_base.h f41ecd4020ddfbf088767f2ce83cddd9 libstdc++-v3/include/bits/istream.tcc ! 77de7ac74ec409d536ff19bd440c4411 libstdc++-v3/include/bits/iterator_concepts.h 5e1af8238a7182366476acc7c95f6cb9 libstdc++-v3/include/bits/list.tcc ! 120cce3cf9c42fc21d3311bfb091f538 libstdc++-v3/include/bits/locale_classes.h 1a4d19df3be9b714847a5e438ba25b3b libstdc++-v3/include/bits/locale_classes.tcc c4fed2b5b4879837686150624f51ddbc libstdc++-v3/include/bits/locale_conv.h ! 23378ea0b8603307ca38123cffcc9309 libstdc++-v3/include/bits/locale_facets.h ad3726c17e8e10e80b100401ec35a07c libstdc++-v3/include/bits/locale_facets.tcc ! 3213b72bb6b5dcc587d72a81f7937bce libstdc++-v3/include/bits/locale_facets_nonio.h a3cf6cabd7bdaee154cafa2c88aede3a libstdc++-v3/include/bits/locale_facets_nonio.tcc 756fbe1353340b4e7cae5d8a93132788 libstdc++-v3/include/bits/localefwd.h ! 480b0beba1f5529acd192ffe964fdd82 libstdc++-v3/include/bits/mask_array.h ! b3ac8f248c9d88c5e616eb3275077b80 libstdc++-v3/include/bits/memoryfwd.h ! bfe6db802b03cdca43b4360bcf8b5be7 libstdc++-v3/include/bits/move.h f6aa6553dc5524abdfe41a7da3a49706 libstdc++-v3/include/bits/node_handle.h 7403d75f60a3792a27b459e9ff829ee2 libstdc++-v3/include/bits/ostream.tcc e1cc5c2a4400aeb3ea5a2e0c66399709 libstdc++-v3/include/bits/ostream_insert.h *************** e1cc5c2a4400aeb3ea5a2e0c66399709 libstd *** 91251,91326 **** 2fcd48b0681ba342cff50c3cbca9875c libstdc++-v3/include/bits/predefined_ops.h b6673c70044c63dc76561b464a4c6e28 libstdc++-v3/include/bits/ptr_traits.h c1dbfdcef6bb8952176db50e5956f3f0 libstdc++-v3/include/bits/quoted_string.h ! be6f74664c2f7a3a51f7fbae0db1e318 libstdc++-v3/include/bits/random.h ! f4d01141c2ee6224817ff1baa5724fd8 libstdc++-v3/include/bits/random.tcc ! 1c7dd7812bb09e9652d2a84422edddd7 libstdc++-v3/include/bits/range_access.h 98ddc447ed23629cfe71a497dd38cc0a libstdc++-v3/include/bits/range_cmp.h ! 9965d9bd4842bc3bb23450d9bbeaabba libstdc++-v3/include/bits/ranges_algo.h ! fcd584cdd3e8e0e7c9f107a8e7c17395 libstdc++-v3/include/bits/ranges_algobase.h ! 7a33f6c06953282b7921ce1777bbec9d libstdc++-v3/include/bits/ranges_uninitialized.h ! 5e205c02ccd545cd3b349d65fa4aeca0 libstdc++-v3/include/bits/refwrap.h ! 1e86cf14a8dcd41a3828152d48cb5c57 libstdc++-v3/include/bits/regex.h f23ad4b66e11fbf0102e9bb997345693 libstdc++-v3/include/bits/regex.tcc ! 175e478d9d4eb2d3dc50d03bb0e1c0a7 libstdc++-v3/include/bits/regex_automaton.h ec658fb588ddb17f4f5d56f054a2120b libstdc++-v3/include/bits/regex_automaton.tcc ! 4405d00cf738e5551e8bb955ab69b1d6 libstdc++-v3/include/bits/regex_compiler.h ! 3067ffb45e42c4f58c270b5abb262c25 libstdc++-v3/include/bits/regex_compiler.tcc ! a3428068dd56a0ace5f1f727201d432d libstdc++-v3/include/bits/regex_constants.h ! b45023b28baeac2b65d0ce87b7895166 libstdc++-v3/include/bits/regex_error.h ! bce99f7c5d46435072f5a39cabd4e613 libstdc++-v3/include/bits/regex_executor.h a5f7599269265e9fa08515b3153fae50 libstdc++-v3/include/bits/regex_executor.tcc ! 7aa7ba63a0233f0c3fde002b17a26e7e libstdc++-v3/include/bits/regex_scanner.h e17036c2169768877a2decc8fafb1408 libstdc++-v3/include/bits/regex_scanner.tcc ! 3258e6294b16b14e2cbd2415d665292b libstdc++-v3/include/bits/shared_ptr.h ! 0f72af40dd13857325d467aaaa73c338 libstdc++-v3/include/bits/shared_ptr_atomic.h ! 514e9422587c60bf662cdb1ba8f19ad9 libstdc++-v3/include/bits/shared_ptr_base.h ! ae5ba3f2aa49eedfac839d0007fb8f34 libstdc++-v3/include/bits/slice_array.h ! 337464f1ac2159b136b4a0afd32f7111 libstdc++-v3/include/bits/specfun.h e899b384347b53af6ce6e1034e25b861 libstdc++-v3/include/bits/sstream.tcc a2872a3a5e8bdfdb68af596ab9b2956c libstdc++-v3/include/bits/std_abs.h ! cd2f8eeb37b2bb488d12b76e4456aa50 libstdc++-v3/include/bits/std_function.h ! b61e6d1a8f0dc4396b01505cea30c46b libstdc++-v3/include/bits/std_mutex.h 3c4f1ca1519a818547a4606d6aae0ba5 libstdc++-v3/include/bits/stl_algo.h 5f3bc739ebb6db56b9d750d270603807 libstdc++-v3/include/bits/stl_algobase.h 5dcf1b271ce1b05e9ac604309874f19c libstdc++-v3/include/bits/stl_bvector.h 3b91865ebdcda29a914d4a5427a1f2c7 libstdc++-v3/include/bits/stl_construct.h ! 840c431d16d5df7d9104acddedd5cbbf libstdc++-v3/include/bits/stl_deque.h f87fbc5d632d6a84307ec8d2ada3d6c3 libstdc++-v3/include/bits/stl_function.h ce0341fe6e305b41215648e27a5b71eb libstdc++-v3/include/bits/stl_heap.h ! 984cac89bcb91b91d3a15d2eb0849d10 libstdc++-v3/include/bits/stl_iterator.h ec8f5457561f81d938fe7292bd695aa3 libstdc++-v3/include/bits/stl_iterator_base_funcs.h ! ef094ca966cf01515e8640f728ae4ba1 libstdc++-v3/include/bits/stl_iterator_base_types.h 5f49cd6ecd76af79a9fac53049c58c08 libstdc++-v3/include/bits/stl_list.h ! 3e017a0492dfc29dd82293ab82f130f1 libstdc++-v3/include/bits/stl_map.h ! 9a1a9e9add10e0ce163c15c5966dd0b4 libstdc++-v3/include/bits/stl_multimap.h ! c90cd1bab022bc213c064342f28b99e3 libstdc++-v3/include/bits/stl_multiset.h ! f8ef67b8b5b552306bbfcec549d40279 libstdc++-v3/include/bits/stl_numeric.h ! 1ac0c190b5005a19f043fabb0e2d1c0a libstdc++-v3/include/bits/stl_pair.h d9c218451145b8975ba226c5f64b25ff libstdc++-v3/include/bits/stl_queue.h 0b8c99ed2af9d2eddb9bfeeffcb245a8 libstdc++-v3/include/bits/stl_raw_storage_iter.h 617e2354e64a291088457390c718a4e0 libstdc++-v3/include/bits/stl_relops.h ! c39034808cd9a7fc1362136244390339 libstdc++-v3/include/bits/stl_set.h afe766f0ecb032df023c7042cf701b96 libstdc++-v3/include/bits/stl_stack.h 43ec67c71a6a4de0533398e4142dcde7 libstdc++-v3/include/bits/stl_tempbuf.h ! d802e0c03e1866c9d09fbee79d4f1e32 libstdc++-v3/include/bits/stl_tree.h ! 693f99da86052cc6e1466869e9db37fa libstdc++-v3/include/bits/stl_uninitialized.h 7de0f0dc86a833efdd78c658d956e37c libstdc++-v3/include/bits/stl_vector.h ! 4d05d6d317c7e6c953044db2b7758424 libstdc++-v3/include/bits/stream_iterator.h 173a77332f78d2ca96b9c0d2c72fbdfb libstdc++-v3/include/bits/streambuf.tcc ! aa5e37b34cb17fdf4166d73b9941c2b9 libstdc++-v3/include/bits/streambuf_iterator.h 335640f78bb0ef8a05ef5478c9e47c0e libstdc++-v3/include/bits/string_view.tcc e3095dcf7065f2d18a36fb8840a30df1 libstdc++-v3/include/bits/stringfwd.h 50088534266c2789c805619613a114da libstdc++-v3/include/bits/uniform_int_dist.h 752f2a5920a05504809539555d6c9cff libstdc++-v3/include/bits/unique_lock.h ! 99e69d532037892e34fe80e7a0fe10c8 libstdc++-v3/include/bits/unique_ptr.h ! 51bfc981cfde107ab90e8daf9ca11e09 libstdc++-v3/include/bits/unordered_map.h ! c7c1ca760b5b24a7e28645f9d121e99f libstdc++-v3/include/bits/unordered_set.h 2ad7e4c9f76cdfd15bcd0e5b01e77881 libstdc++-v3/include/bits/uses_allocator.h b4b6d8644279f7f15f50dab3967e5027 libstdc++-v3/include/bits/valarray_after.h f430639a864443be198d57ba7792f441 libstdc++-v3/include/bits/valarray_array.h ab74225f197699dc51771fa587d2c397 libstdc++-v3/include/bits/valarray_array.tcc 52571aa8a80edc56b2ce5f95f6b7eef4 libstdc++-v3/include/bits/valarray_before.h ! d553ff13ea7986ec636b7b59751fabb4 libstdc++-v3/include/bits/vector.tcc 2b253789d7e901fdf2b0d3e65a33a1fa libstdc++-v3/include/c/cassert 0e326b949420e3e1c4fa03ab98c96928 libstdc++-v3/include/c/cctype 90f58d6c8e68af7acd8e06bc3bd80f66 libstdc++-v3/include/c/cerrno --- 91720,91795 ---- 2fcd48b0681ba342cff50c3cbca9875c libstdc++-v3/include/bits/predefined_ops.h b6673c70044c63dc76561b464a4c6e28 libstdc++-v3/include/bits/ptr_traits.h c1dbfdcef6bb8952176db50e5956f3f0 libstdc++-v3/include/bits/quoted_string.h ! 715337d5eaa307b9b51ebb60a4e6fe04 libstdc++-v3/include/bits/random.h ! 891e4ae0ae0106f7bfdb7a0c6e2a6cf6 libstdc++-v3/include/bits/random.tcc ! b5abbb3cb59db8cc75504ce491cda56b libstdc++-v3/include/bits/range_access.h 98ddc447ed23629cfe71a497dd38cc0a libstdc++-v3/include/bits/range_cmp.h ! d4aca81ccc4482f066764310c4f1ef15 libstdc++-v3/include/bits/ranges_algo.h ! d47d05fc4ee976d40c5901730e4e5283 libstdc++-v3/include/bits/ranges_algobase.h ! 9359674d91413bb86cab3df1fee00aa7 libstdc++-v3/include/bits/ranges_uninitialized.h ! 2b83e058f8d0793df437d0a6d422c974 libstdc++-v3/include/bits/refwrap.h ! 5a3f7431075fbcacaccf9ac19e4f3791 libstdc++-v3/include/bits/regex.h f23ad4b66e11fbf0102e9bb997345693 libstdc++-v3/include/bits/regex.tcc ! d566c247041097c6045c8796de365631 libstdc++-v3/include/bits/regex_automaton.h ec658fb588ddb17f4f5d56f054a2120b libstdc++-v3/include/bits/regex_automaton.tcc ! 0c770629fb4ee30877ee168fc18a1e42 libstdc++-v3/include/bits/regex_compiler.h ! a03aaf7d03a9b71dbb400f20ac3a24ba libstdc++-v3/include/bits/regex_compiler.tcc ! 0ed75f64f6a2ef9e246d1df78bec8ce9 libstdc++-v3/include/bits/regex_constants.h ! 85a93e603444bb3a23b75da73192dee2 libstdc++-v3/include/bits/regex_error.h ! 2495bcb90af2bcf8217b48a97c5ec1e3 libstdc++-v3/include/bits/regex_executor.h a5f7599269265e9fa08515b3153fae50 libstdc++-v3/include/bits/regex_executor.tcc ! 79f74adcb24e2a20a2a7783fe81ef2a4 libstdc++-v3/include/bits/regex_scanner.h e17036c2169768877a2decc8fafb1408 libstdc++-v3/include/bits/regex_scanner.tcc ! b5a31ffdf16d0753e273cdfff0ff6e08 libstdc++-v3/include/bits/shared_ptr.h ! b7b7c3f4f5b8b0d7472d13c86dc9ba9d libstdc++-v3/include/bits/shared_ptr_atomic.h ! de783ee03b6490a4c18914f825de28ee libstdc++-v3/include/bits/shared_ptr_base.h ! 68b74d340f7cf348bc4ba2cdd2abef9b libstdc++-v3/include/bits/slice_array.h ! 9b2e9f2b083444d10d31440adb7617d1 libstdc++-v3/include/bits/specfun.h e899b384347b53af6ce6e1034e25b861 libstdc++-v3/include/bits/sstream.tcc a2872a3a5e8bdfdb68af596ab9b2956c libstdc++-v3/include/bits/std_abs.h ! d1037bf0672c6f31a8ab232accf76b5b libstdc++-v3/include/bits/std_function.h ! 99d665f02cc875059369682e63fe6afa libstdc++-v3/include/bits/std_mutex.h 3c4f1ca1519a818547a4606d6aae0ba5 libstdc++-v3/include/bits/stl_algo.h 5f3bc739ebb6db56b9d750d270603807 libstdc++-v3/include/bits/stl_algobase.h 5dcf1b271ce1b05e9ac604309874f19c libstdc++-v3/include/bits/stl_bvector.h 3b91865ebdcda29a914d4a5427a1f2c7 libstdc++-v3/include/bits/stl_construct.h ! c1f22e72439efaf933695e8de80c864d libstdc++-v3/include/bits/stl_deque.h f87fbc5d632d6a84307ec8d2ada3d6c3 libstdc++-v3/include/bits/stl_function.h ce0341fe6e305b41215648e27a5b71eb libstdc++-v3/include/bits/stl_heap.h ! 440554c6fd095f22a03b8639bf747533 libstdc++-v3/include/bits/stl_iterator.h ec8f5457561f81d938fe7292bd695aa3 libstdc++-v3/include/bits/stl_iterator_base_funcs.h ! 90b6c5c8762ac7b4ad98628e4c841fff libstdc++-v3/include/bits/stl_iterator_base_types.h 5f49cd6ecd76af79a9fac53049c58c08 libstdc++-v3/include/bits/stl_list.h ! 4b2bf696c74d3c9bdff3bdc84f1755f2 libstdc++-v3/include/bits/stl_map.h ! 42d87940a6f27b7218f15a1c9cce2a5f libstdc++-v3/include/bits/stl_multimap.h ! 6209bff71266fcfcace17b674ed0c8a3 libstdc++-v3/include/bits/stl_multiset.h ! bb284cc5039424f72f825cc562881eb9 libstdc++-v3/include/bits/stl_numeric.h ! a8007925a2a7e1451260fbbaad1901b1 libstdc++-v3/include/bits/stl_pair.h d9c218451145b8975ba226c5f64b25ff libstdc++-v3/include/bits/stl_queue.h 0b8c99ed2af9d2eddb9bfeeffcb245a8 libstdc++-v3/include/bits/stl_raw_storage_iter.h 617e2354e64a291088457390c718a4e0 libstdc++-v3/include/bits/stl_relops.h ! ef12bb1e27ffe914484f7aefd01fe24b libstdc++-v3/include/bits/stl_set.h afe766f0ecb032df023c7042cf701b96 libstdc++-v3/include/bits/stl_stack.h 43ec67c71a6a4de0533398e4142dcde7 libstdc++-v3/include/bits/stl_tempbuf.h ! 16e1b48de9ff648411bca19144fc3406 libstdc++-v3/include/bits/stl_tree.h ! ed05d0b7c24493d3fc4c711407844017 libstdc++-v3/include/bits/stl_uninitialized.h 7de0f0dc86a833efdd78c658d956e37c libstdc++-v3/include/bits/stl_vector.h ! 07ff4d5903d9bb5d2a93ab5e39a20545 libstdc++-v3/include/bits/stream_iterator.h 173a77332f78d2ca96b9c0d2c72fbdfb libstdc++-v3/include/bits/streambuf.tcc ! 789f8f4c544d75ef82e2fdda5174ab45 libstdc++-v3/include/bits/streambuf_iterator.h 335640f78bb0ef8a05ef5478c9e47c0e libstdc++-v3/include/bits/string_view.tcc e3095dcf7065f2d18a36fb8840a30df1 libstdc++-v3/include/bits/stringfwd.h 50088534266c2789c805619613a114da libstdc++-v3/include/bits/uniform_int_dist.h 752f2a5920a05504809539555d6c9cff libstdc++-v3/include/bits/unique_lock.h ! 74d5bd4249460574acc5449cd0b6ee56 libstdc++-v3/include/bits/unique_ptr.h ! 2398953e1d22c203547bb49738486344 libstdc++-v3/include/bits/unordered_map.h ! 530abd232bf083850a9e76ca634e897a libstdc++-v3/include/bits/unordered_set.h 2ad7e4c9f76cdfd15bcd0e5b01e77881 libstdc++-v3/include/bits/uses_allocator.h b4b6d8644279f7f15f50dab3967e5027 libstdc++-v3/include/bits/valarray_after.h f430639a864443be198d57ba7792f441 libstdc++-v3/include/bits/valarray_array.h ab74225f197699dc51771fa587d2c397 libstdc++-v3/include/bits/valarray_array.tcc 52571aa8a80edc56b2ce5f95f6b7eef4 libstdc++-v3/include/bits/valarray_before.h ! 48fc9a93f309279941088e9cb8ca4e9c libstdc++-v3/include/bits/vector.tcc 2b253789d7e901fdf2b0d3e65a33a1fa libstdc++-v3/include/c/cassert 0e326b949420e3e1c4fa03ab98c96928 libstdc++-v3/include/c/cctype 90f58d6c8e68af7acd8e06bc3bd80f66 libstdc++-v3/include/c/cerrno *************** d9d3917829364b36d1ed627c5f739777 libstd *** 91375,91381 **** 7c99177e2019dc5c16098abc8637b0be libstdc++-v3/include/c_global/ciso646 2e4d47fee18e015816676e7d0798537f libstdc++-v3/include/c_global/climits 8afd032a672df0c7c7f84e4f282e0d77 libstdc++-v3/include/c_global/clocale ! 846a65f7c25fc69c60eb7f016b1709df libstdc++-v3/include/c_global/cmath ef57c73e3ab3cc71860443f1172accde libstdc++-v3/include/c_global/csetjmp 9e1ba73c8872ecf31c184c5bca2b122a libstdc++-v3/include/c_global/csignal 79aa22eaaff180f61823cb18d737caf2 libstdc++-v3/include/c_global/cstdalign --- 91844,91850 ---- 7c99177e2019dc5c16098abc8637b0be libstdc++-v3/include/c_global/ciso646 2e4d47fee18e015816676e7d0798537f libstdc++-v3/include/c_global/climits 8afd032a672df0c7c7f84e4f282e0d77 libstdc++-v3/include/c_global/clocale ! 8b6736f01d9b4ada3318d50cd168dcde libstdc++-v3/include/c_global/cmath ef57c73e3ab3cc71860443f1172accde libstdc++-v3/include/c_global/csetjmp 9e1ba73c8872ecf31c184c5bca2b122a libstdc++-v3/include/c_global/csignal 79aa22eaaff180f61823cb18d737caf2 libstdc++-v3/include/c_global/cstdalign *************** c69f68f2d2cbac034a41bb7ce5c36465 libstd *** 91418,91434 **** ec721ea945725a41d5073a57903b612a libstdc++-v3/include/debug/formatter.h 07e6945efbd59ba69dfc02f2c4a203da libstdc++-v3/include/debug/forward_list a0fdaba8d70082b66e89cced6e91043c libstdc++-v3/include/debug/functions.h ! 07f640e4a0022df2b0b701e00168db30 libstdc++-v3/include/debug/helper_functions.h e9092530a7ddddbf6b4dcd53a5a504d1 libstdc++-v3/include/debug/list ! 3d540bdbad977966971fd4e15e6cfb10 libstdc++-v3/include/debug/macros.h 12a942b02c0226017ef599506e28b3e7 libstdc++-v3/include/debug/map d1847746e98ea89075870bcb1e4262bd libstdc++-v3/include/debug/map.h 8970f1940fd738b34901a8dff4b03050 libstdc++-v3/include/debug/multimap.h 1c345cdef0e16f8e8a8aafb117445228 libstdc++-v3/include/debug/multiset.h 54f097dc6be3892470593918079d0138 libstdc++-v3/include/debug/safe_base.h 63c07aa34e8d7d31252cdba74d4eff64 libstdc++-v3/include/debug/safe_container.h ! 54eedcd8da6fb652d814d2f6aface0d5 libstdc++-v3/include/debug/safe_iterator.h ! f60aac3ae732f90ddfd635820799abc0 libstdc++-v3/include/debug/safe_iterator.tcc 5895470a6a60eee5168cd741ceac3945 libstdc++-v3/include/debug/safe_local_iterator.h 8a4487c674364b2015343571ad0e5181 libstdc++-v3/include/debug/safe_local_iterator.tcc f0d24bc4e710f3a4e8afbcdf89e9a222 libstdc++-v3/include/debug/safe_sequence.h --- 91887,91903 ---- ec721ea945725a41d5073a57903b612a libstdc++-v3/include/debug/formatter.h 07e6945efbd59ba69dfc02f2c4a203da libstdc++-v3/include/debug/forward_list a0fdaba8d70082b66e89cced6e91043c libstdc++-v3/include/debug/functions.h ! 472f7b4ff6b5efe0e8586270b6e909fd libstdc++-v3/include/debug/helper_functions.h e9092530a7ddddbf6b4dcd53a5a504d1 libstdc++-v3/include/debug/list ! 0082d18e78894406d3f0d6541649300d libstdc++-v3/include/debug/macros.h 12a942b02c0226017ef599506e28b3e7 libstdc++-v3/include/debug/map d1847746e98ea89075870bcb1e4262bd libstdc++-v3/include/debug/map.h 8970f1940fd738b34901a8dff4b03050 libstdc++-v3/include/debug/multimap.h 1c345cdef0e16f8e8a8aafb117445228 libstdc++-v3/include/debug/multiset.h 54f097dc6be3892470593918079d0138 libstdc++-v3/include/debug/safe_base.h 63c07aa34e8d7d31252cdba74d4eff64 libstdc++-v3/include/debug/safe_container.h ! 1b6baa02bcb6dbd1e81bbf16b4bb5e98 libstdc++-v3/include/debug/safe_iterator.h ! 688d8516d5eefc7ca8e5394f83d82718 libstdc++-v3/include/debug/safe_iterator.tcc 5895470a6a60eee5168cd741ceac3945 libstdc++-v3/include/debug/safe_local_iterator.h 8a4487c674364b2015343571ad0e5181 libstdc++-v3/include/debug/safe_local_iterator.tcc f0d24bc4e710f3a4e8afbcdf89e9a222 libstdc++-v3/include/debug/safe_sequence.h *************** aa425edbfb470e145927a56391aa6b09 libstd *** 91438,91469 **** e2b4bcff61ee2c5a9ba5fd72d403d1c2 libstdc++-v3/include/debug/safe_unordered_container.tcc f0f7c303e5ec432a7d75d08475cbd8b3 libstdc++-v3/include/debug/set 4d82220fa9721091a00af2999e8c9a8c libstdc++-v3/include/debug/set.h ! d10157575fe3190d54fe75d262ee76d9 libstdc++-v3/include/debug/stl_iterator.h e143e1109da87c7fa764c9c3645f93be libstdc++-v3/include/debug/string ! 84f5cbbb0c9c0b000d1d035a01ed562f libstdc++-v3/include/debug/unordered_map ! b4e4534fce63d69b0f8391aa7dc49e89 libstdc++-v3/include/debug/unordered_set 2337490e5ffc563fe032216c47a1258e libstdc++-v3/include/debug/vector ! 0d30ae0f59ccb102dff6f710e4dad847 libstdc++-v3/include/decimal/decimal 87f66d3a94733712f3e40d085b84e52c libstdc++-v3/include/decimal/decimal.h 484fe8201bf592577d0bfd1c59459606 libstdc++-v3/include/experimental/algorithm ! 087e7b768b6051d5f6af9b059c1bff50 libstdc++-v3/include/experimental/any ! 50e7fbed6b54b3c2e9dc9a3c24296581 libstdc++-v3/include/experimental/array ! e10fb986854b741fc79ea42b6d7af26a libstdc++-v3/include/experimental/bits/fs_dir.h ! 3e9004549b3c588dcca58852d3e0a0ee libstdc++-v3/include/experimental/bits/fs_fwd.h ! e00eae994d75bb47387f4fa6aff504b1 libstdc++-v3/include/experimental/bits/fs_ops.h ! 2d7c290da04dc39317dd6b6be214eac5 libstdc++-v3/include/experimental/bits/fs_path.h 44164985fdc9e47215384a6393a71240 libstdc++-v3/include/experimental/bits/lfts_config.h b37b8aae0135e4438dca38197e238d4d libstdc++-v3/include/experimental/bits/net.h aebf6fc7efc7d4f0c4680db40266e2e4 libstdc++-v3/include/experimental/bits/shared_ptr.h 711c588327a5555ae1658b49ca4bea61 libstdc++-v3/include/experimental/bits/string_view.tcc ! e9d1aa517c9bb13efbf6ed52bd1baf46 libstdc++-v3/include/experimental/buffer 94800126a824f286adc49e3b231724ec libstdc++-v3/include/experimental/chrono cf74fd43a0d58ef217f46f170deaef31 libstdc++-v3/include/experimental/deque e8e045340aecb2d40cd4e966c47c107a libstdc++-v3/include/experimental/executor cad9ec24afc63e6dc308a37d6f440ace libstdc++-v3/include/experimental/filesystem ca110518e910a3be034032b8a9946302 libstdc++-v3/include/experimental/forward_list 3ddb8dc14f6fc5e17bdff604bbc80efe libstdc++-v3/include/experimental/functional ! c4432845feba7a246d521f346030a080 libstdc++-v3/include/experimental/internet 709ae9fa19088f5335e58bc6cfef7b87 libstdc++-v3/include/experimental/io_context addea971b35a75f23989171878228e4f libstdc++-v3/include/experimental/iterator 6f22e77aadd04c97f9427288c525dc45 libstdc++-v3/include/experimental/list --- 91907,91938 ---- e2b4bcff61ee2c5a9ba5fd72d403d1c2 libstdc++-v3/include/debug/safe_unordered_container.tcc f0f7c303e5ec432a7d75d08475cbd8b3 libstdc++-v3/include/debug/set 4d82220fa9721091a00af2999e8c9a8c libstdc++-v3/include/debug/set.h ! 466583959ff05b715bf97736b6f8a236 libstdc++-v3/include/debug/stl_iterator.h e143e1109da87c7fa764c9c3645f93be libstdc++-v3/include/debug/string ! 94863ded1a4fe916ce1583eb4bd9e1ba libstdc++-v3/include/debug/unordered_map ! e40bba6008a0338def8345afda77e908 libstdc++-v3/include/debug/unordered_set 2337490e5ffc563fe032216c47a1258e libstdc++-v3/include/debug/vector ! 28be80cdaafaffe51d79e41ca896fdb9 libstdc++-v3/include/decimal/decimal 87f66d3a94733712f3e40d085b84e52c libstdc++-v3/include/decimal/decimal.h 484fe8201bf592577d0bfd1c59459606 libstdc++-v3/include/experimental/algorithm ! 210a272922bbeb4e5e67422e003751f7 libstdc++-v3/include/experimental/any ! 8185f84ab530b099959ceb8371c1b61e libstdc++-v3/include/experimental/array ! 3659f2cfa14709a4889faa3655039e6a libstdc++-v3/include/experimental/bits/fs_dir.h ! 618508a0e011ca803c2d09245f1b9eb3 libstdc++-v3/include/experimental/bits/fs_fwd.h ! 64a9f5ea129395b4649c483ef78d6314 libstdc++-v3/include/experimental/bits/fs_ops.h ! 50c37b8a25307c557d8f11b41680ca99 libstdc++-v3/include/experimental/bits/fs_path.h 44164985fdc9e47215384a6393a71240 libstdc++-v3/include/experimental/bits/lfts_config.h b37b8aae0135e4438dca38197e238d4d libstdc++-v3/include/experimental/bits/net.h aebf6fc7efc7d4f0c4680db40266e2e4 libstdc++-v3/include/experimental/bits/shared_ptr.h 711c588327a5555ae1658b49ca4bea61 libstdc++-v3/include/experimental/bits/string_view.tcc ! de53e0ccac854007e728ef44394433c4 libstdc++-v3/include/experimental/buffer 94800126a824f286adc49e3b231724ec libstdc++-v3/include/experimental/chrono cf74fd43a0d58ef217f46f170deaef31 libstdc++-v3/include/experimental/deque e8e045340aecb2d40cd4e966c47c107a libstdc++-v3/include/experimental/executor cad9ec24afc63e6dc308a37d6f440ace libstdc++-v3/include/experimental/filesystem ca110518e910a3be034032b8a9946302 libstdc++-v3/include/experimental/forward_list 3ddb8dc14f6fc5e17bdff604bbc80efe libstdc++-v3/include/experimental/functional ! 11ae9640310a8fcb7a387e7787d48d87 libstdc++-v3/include/experimental/internet 709ae9fa19088f5335e58bc6cfef7b87 libstdc++-v3/include/experimental/io_context addea971b35a75f23989171878228e4f libstdc++-v3/include/experimental/iterator 6f22e77aadd04c97f9427288c525dc45 libstdc++-v3/include/experimental/list *************** addea971b35a75f23989171878228e4f libstd *** 91473,91485 **** a7d3ea8538cf6c8e57484af9a461a655 libstdc++-v3/include/experimental/net bf4ef7b68a82e1643ee24b5dac94501f libstdc++-v3/include/experimental/netfwd 7fcfb5fbfa3aa6bd01ac4d2bd9377171 libstdc++-v3/include/experimental/numeric ! 170f7e52ce7abc904f967e516a9cf9f2 libstdc++-v3/include/experimental/optional ! 2af41ee4740ae792771100907299c37b libstdc++-v3/include/experimental/propagate_const 883a8fabcc4a030b8dbf11dd3c3c4527 libstdc++-v3/include/experimental/random 2082e6de6ad79541d6a07e1ad809a6e1 libstdc++-v3/include/experimental/ratio f6407626676a18b2f4cb95aeea19f7bb libstdc++-v3/include/experimental/regex 9b642da2039a1899dea07a5dcf79a312 libstdc++-v3/include/experimental/set ! c4df67f859946fb8847b3cd1f35ae0af libstdc++-v3/include/experimental/socket bb33d213be62eb1191b964e6623412c4 libstdc++-v3/include/experimental/source_location 2b4eb42f8ac6bc3f00c0f3d9b11f07ca libstdc++-v3/include/experimental/string 0fbde687c8046a397ec4a6585551964a libstdc++-v3/include/experimental/string_view --- 91942,91954 ---- a7d3ea8538cf6c8e57484af9a461a655 libstdc++-v3/include/experimental/net bf4ef7b68a82e1643ee24b5dac94501f libstdc++-v3/include/experimental/netfwd 7fcfb5fbfa3aa6bd01ac4d2bd9377171 libstdc++-v3/include/experimental/numeric ! 4cc322f3bd5270b2be197853c6d8061f libstdc++-v3/include/experimental/optional ! 0b97a31a359048a2dc2a0faaa4eecac0 libstdc++-v3/include/experimental/propagate_const 883a8fabcc4a030b8dbf11dd3c3c4527 libstdc++-v3/include/experimental/random 2082e6de6ad79541d6a07e1ad809a6e1 libstdc++-v3/include/experimental/ratio f6407626676a18b2f4cb95aeea19f7bb libstdc++-v3/include/experimental/regex 9b642da2039a1899dea07a5dcf79a312 libstdc++-v3/include/experimental/set ! a3ef579297e31be89c04d105e95ff532 libstdc++-v3/include/experimental/socket bb33d213be62eb1191b964e6623412c4 libstdc++-v3/include/experimental/source_location 2b4eb42f8ac6bc3f00c0f3d9b11f07ca libstdc++-v3/include/experimental/string 0fbde687c8046a397ec4a6585551964a libstdc++-v3/include/experimental/string_view *************** bf44541d28bf1f5ded216ff7be52fcea libstd *** 91495,91517 **** 409bfd03b6e73a1a7f4fa3383c7da453 libstdc++-v3/include/ext/aligned_buffer.h df703a73a0d6c27e160037ac01fa04b8 libstdc++-v3/include/ext/alloc_traits.h 495f94b66355f397be669c462a32bf9a libstdc++-v3/include/ext/atomicity.h ! c01f71c7b8dc4156877084ce0f084b6b libstdc++-v3/include/ext/bitmap_allocator.h 6a245b6db5290172685d73f9cf125967 libstdc++-v3/include/ext/cast.h 4d2b145b8f848a961f4b1508caeacd4a libstdc++-v3/include/ext/cmath 067ae03ae62a542f6a873186d9e2ccbb libstdc++-v3/include/ext/codecvt_specializations.h 57265d4b502d0727e5c4bee7a04729d4 libstdc++-v3/include/ext/concurrence.h ec4a92f6302894f985da65409a7cd07f libstdc++-v3/include/ext/debug_allocator.h e426b26ea19db7d2d4e21dda98d15f13 libstdc++-v3/include/ext/enc_filebuf.h ! 1ff3a563db80ea40f566e38f0deae5b5 libstdc++-v3/include/ext/extptr_allocator.h 9e9c93b8b532b3b2bdb5864bf5654b38 libstdc++-v3/include/ext/functional fbb718c8b9c11e2dd529591065e9ca28 libstdc++-v3/include/ext/iterator ! cd28c9a60286430a23e722e3de510bc2 libstdc++-v3/include/ext/malloc_allocator.h 9bc7e74457fd1a4398ad1fb485bbd111 libstdc++-v3/include/ext/memory cdc716bd05d4f195d984d48201e857a3 libstdc++-v3/include/ext/mt_allocator.h ! 27d2fb41bdd1d679a3db9f8f420b769e libstdc++-v3/include/ext/new_allocator.h ebf9c1d2139571a50d315a67f8ca0ce4 libstdc++-v3/include/ext/numeric 0df838a77977ab3eefc49c30cf4ca696 libstdc++-v3/include/ext/numeric_traits.h ! f9ece93d0c021a026901f345cd18bd4e libstdc++-v3/include/ext/pb_ds/assoc_container.hpp c6b16d4bf0f5ca4a099ee80a1b91c10b libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/bin_search_tree_.hpp 538535373ece82aedd56970473d6b2d1 libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/constructors_destructor_fn_imps.hpp 2a99690ab1c30122e8ad337017b96109 libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/debug_fn_imps.hpp --- 91964,91986 ---- 409bfd03b6e73a1a7f4fa3383c7da453 libstdc++-v3/include/ext/aligned_buffer.h df703a73a0d6c27e160037ac01fa04b8 libstdc++-v3/include/ext/alloc_traits.h 495f94b66355f397be669c462a32bf9a libstdc++-v3/include/ext/atomicity.h ! ea90e53770325f92a60ea6ba3a17a6b9 libstdc++-v3/include/ext/bitmap_allocator.h 6a245b6db5290172685d73f9cf125967 libstdc++-v3/include/ext/cast.h 4d2b145b8f848a961f4b1508caeacd4a libstdc++-v3/include/ext/cmath 067ae03ae62a542f6a873186d9e2ccbb libstdc++-v3/include/ext/codecvt_specializations.h 57265d4b502d0727e5c4bee7a04729d4 libstdc++-v3/include/ext/concurrence.h ec4a92f6302894f985da65409a7cd07f libstdc++-v3/include/ext/debug_allocator.h e426b26ea19db7d2d4e21dda98d15f13 libstdc++-v3/include/ext/enc_filebuf.h ! 885fbd164a20b159c872c56347e99cd7 libstdc++-v3/include/ext/extptr_allocator.h 9e9c93b8b532b3b2bdb5864bf5654b38 libstdc++-v3/include/ext/functional fbb718c8b9c11e2dd529591065e9ca28 libstdc++-v3/include/ext/iterator ! a46fd555010ce9f62cca8b3db6a42fab libstdc++-v3/include/ext/malloc_allocator.h 9bc7e74457fd1a4398ad1fb485bbd111 libstdc++-v3/include/ext/memory cdc716bd05d4f195d984d48201e857a3 libstdc++-v3/include/ext/mt_allocator.h ! 8405c8149bbea50fc78cfb8f64bcfee5 libstdc++-v3/include/ext/new_allocator.h ebf9c1d2139571a50d315a67f8ca0ce4 libstdc++-v3/include/ext/numeric 0df838a77977ab3eefc49c30cf4ca696 libstdc++-v3/include/ext/numeric_traits.h ! 2ca504e209b1d5efb911636ed4c5c6b0 libstdc++-v3/include/ext/pb_ds/assoc_container.hpp c6b16d4bf0f5ca4a099ee80a1b91c10b libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/bin_search_tree_.hpp 538535373ece82aedd56970473d6b2d1 libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/constructors_destructor_fn_imps.hpp 2a99690ab1c30122e8ad337017b96109 libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/debug_fn_imps.hpp *************** b439479b445803b150d0939331288618 libstd *** 91556,91562 **** 0f84fa7046cda897de82af7924af2bab libstdc++-v3/include/ext/pb_ds/detail/branch_policy/branch_policy.hpp ff7fe94c2e89fdd2549c59c58f52fbed libstdc++-v3/include/ext/pb_ds/detail/branch_policy/null_node_metadata.hpp 8858fa05e8daf89e5542307a7cca5cda libstdc++-v3/include/ext/pb_ds/detail/branch_policy/traits.hpp ! 9b03de7da450e72aa19a513e5fe3f007 libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp b1c603febd55d1d567061588c499ba63 libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/cmp_fn_imps.hpp 21fb97511637d181e7104bae3ec20032 libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/cond_key_dtor_entry_dealtor.hpp 8282ed12f9c6322c1e9bfa57636403a4 libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_fn_imps.hpp --- 92025,92031 ---- 0f84fa7046cda897de82af7924af2bab libstdc++-v3/include/ext/pb_ds/detail/branch_policy/branch_policy.hpp ff7fe94c2e89fdd2549c59c58f52fbed libstdc++-v3/include/ext/pb_ds/detail/branch_policy/null_node_metadata.hpp 8858fa05e8daf89e5542307a7cca5cda libstdc++-v3/include/ext/pb_ds/detail/branch_policy/traits.hpp ! 6375672fe7ab3f4af95e1e3364320f5a libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp b1c603febd55d1d567061588c499ba63 libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/cmp_fn_imps.hpp 21fb97511637d181e7104bae3ec20032 libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/cond_key_dtor_entry_dealtor.hpp 8282ed12f9c6322c1e9bfa57636403a4 libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_fn_imps.hpp *************** a022a65437a22da9c2babe43d0477a7e libstd *** 91682,91688 **** 872301811c50ffb3e025d5d1fc5d09e5 libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/trace_fn_imps.hpp fa308146db463b3654f9a21a7e18c95e libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/traits.hpp 4f193f427b95b34ba0c0be677734658e libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/update_fn_imps.hpp ! 5ef784db231c332584c922e05574eb65 libstdc++-v3/include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp af9b49ff3d2ca10fece69e7e5bc7d345 libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/constructors_destructor_fn_imps.hpp 4881b0949abb734a7f899f1ba0cbd76b libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/debug_fn_imps.hpp 0a048e06f76904d239b1f5930ee64c1b libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/erase_fn_imps.hpp --- 92151,92157 ---- 872301811c50ffb3e025d5d1fc5d09e5 libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/trace_fn_imps.hpp fa308146db463b3654f9a21a7e18c95e libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/traits.hpp 4f193f427b95b34ba0c0be677734658e libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/update_fn_imps.hpp ! 59d7fe949a2fdf76ae7237228b6cd154 libstdc++-v3/include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp af9b49ff3d2ca10fece69e7e5bc7d345 libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/constructors_destructor_fn_imps.hpp 4881b0949abb734a7f899f1ba0cbd76b libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/debug_fn_imps.hpp 0a048e06f76904d239b1f5930ee64c1b libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/erase_fn_imps.hpp *************** d6bcf0aaf62910d6555ef28e4e8dcc48 libstd *** 91730,91740 **** b507495f18712ee7c187c78d0bfa7af1 libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/split_join_fn_imps.hpp a1f4e5ad7687c7e52ed58a15ec0d7d74 libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/thin_heap_.hpp aafffe56cd3e27114f5ec53b8ca0a9f6 libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/trace_fn_imps.hpp ! f7e3aea46adee0c2a51e1c78b1cb7abd libstdc++-v3/include/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp 387a92150c8cf19de2fe19691670f6a5 libstdc++-v3/include/ext/pb_ds/detail/tree_policy/order_statistics_imp.hpp 749ac3d646fe51ee40dd1a97c1463b29 libstdc++-v3/include/ext/pb_ds/detail/tree_policy/sample_tree_node_update.hpp 9727467c1602d3d7165626a6fdc3a815 libstdc++-v3/include/ext/pb_ds/detail/tree_trace_base.hpp ! 6b006c807bb1fbbc9221607152666d3c libstdc++-v3/include/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp 4c5ee3b8a4a1d2d156daf15c4a373bcc libstdc++-v3/include/ext/pb_ds/detail/trie_policy/order_statistics_imp.hpp fab765701354d2cfd4ca5760c4ce681b libstdc++-v3/include/ext/pb_ds/detail/trie_policy/prefix_search_node_update_imp.hpp eb5c576b7f9cb32079ffd1e3503280ef libstdc++-v3/include/ext/pb_ds/detail/trie_policy/sample_trie_access_traits.hpp --- 92199,92209 ---- b507495f18712ee7c187c78d0bfa7af1 libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/split_join_fn_imps.hpp a1f4e5ad7687c7e52ed58a15ec0d7d74 libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/thin_heap_.hpp aafffe56cd3e27114f5ec53b8ca0a9f6 libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/trace_fn_imps.hpp ! 82f311cc0056dcff7190bde9536f49b7 libstdc++-v3/include/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp 387a92150c8cf19de2fe19691670f6a5 libstdc++-v3/include/ext/pb_ds/detail/tree_policy/order_statistics_imp.hpp 749ac3d646fe51ee40dd1a97c1463b29 libstdc++-v3/include/ext/pb_ds/detail/tree_policy/sample_tree_node_update.hpp 9727467c1602d3d7165626a6fdc3a815 libstdc++-v3/include/ext/pb_ds/detail/tree_trace_base.hpp ! f27ff2160a520560f50f0848cf004878 libstdc++-v3/include/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp 4c5ee3b8a4a1d2d156daf15c4a373bcc libstdc++-v3/include/ext/pb_ds/detail/trie_policy/order_statistics_imp.hpp fab765701354d2cfd4ca5760c4ce681b libstdc++-v3/include/ext/pb_ds/detail/trie_policy/prefix_search_node_update_imp.hpp eb5c576b7f9cb32079ffd1e3503280ef libstdc++-v3/include/ext/pb_ds/detail/trie_policy/sample_trie_access_traits.hpp *************** a41002910abe608e47df0e4c2371d0fd libstd *** 91742,91767 **** 8543082d9873a36bd9194a65ac71db71 libstdc++-v3/include/ext/pb_ds/detail/trie_policy/trie_policy_base.hpp 82da6acee2c9fd837aef7bc1e41dfa65 libstdc++-v3/include/ext/pb_ds/detail/trie_policy/trie_string_access_traits_imp.hpp 47fec53bf2104014b45c1837143a9284 libstdc++-v3/include/ext/pb_ds/detail/type_utils.hpp ! 4e1443a7d3c6e432a6ceeede90a5049a libstdc++-v3/include/ext/pb_ds/detail/types_traits.hpp c6810811ef13ac27781bf8f71686f981 libstdc++-v3/include/ext/pb_ds/detail/unordered_iterator/const_iterator.hpp 8175c8128d88adf622afac7daadef031 libstdc++-v3/include/ext/pb_ds/detail/unordered_iterator/iterator.hpp 86dea8a5ff1f6f2d12d82f824118bd73 libstdc++-v3/include/ext/pb_ds/detail/unordered_iterator/point_const_iterator.hpp 62945b45dd00db52c9bd36b81071ba0d libstdc++-v3/include/ext/pb_ds/detail/unordered_iterator/point_iterator.hpp ! 7139f92c71fb359f1e8335370bd0c3f8 libstdc++-v3/include/ext/pb_ds/exception.hpp 6808375fb8fc9ea55f7b897456bfd6ab libstdc++-v3/include/ext/pb_ds/hash_policy.hpp a7a81b3f51c56977b610f962718fdede libstdc++-v3/include/ext/pb_ds/list_update_policy.hpp ! bf9c430cf3ef7c0fb4c8781ad9be6610 libstdc++-v3/include/ext/pb_ds/priority_queue.hpp ! e0421764a80a19a2706d34095623f85b libstdc++-v3/include/ext/pb_ds/tag_and_trait.hpp fcee24dd31eeac48d5964701362d0d5e libstdc++-v3/include/ext/pb_ds/tree_policy.hpp 5e1ba6d29e153cc25d1174534f9fa606 libstdc++-v3/include/ext/pb_ds/trie_policy.hpp ec3cce836d7ec67df6cfc0664eedb7c4 libstdc++-v3/include/ext/pod_char_traits.h bc60402cb23df834e8f6dff9c372ac93 libstdc++-v3/include/ext/pointer.h 9320e4bded05b902c6a03617e2c5c5ca libstdc++-v3/include/ext/pool_allocator.h ! c355881d2f04681159518fda4f69fe62 libstdc++-v3/include/ext/random af48d9b42ed6ff71185b4847b8258c75 libstdc++-v3/include/ext/random.tcc c18a1ff3602fb071240a18d125142bb1 libstdc++-v3/include/ext/rb_tree 28bc38a99c6a3429b778dcc5b83c945b libstdc++-v3/include/ext/rc_string_base.h ! 0b625ee9a68b32ba51484908508c71c3 libstdc++-v3/include/ext/rope 5eb23ebeffc789418baca327eb2ff16b libstdc++-v3/include/ext/ropeimpl.h 069e9d57012d754062e5460430f1d5c9 libstdc++-v3/include/ext/slist f13310565f29b3a5fd081b6ed8e89280 libstdc++-v3/include/ext/sso_string_base.h --- 92211,92236 ---- 8543082d9873a36bd9194a65ac71db71 libstdc++-v3/include/ext/pb_ds/detail/trie_policy/trie_policy_base.hpp 82da6acee2c9fd837aef7bc1e41dfa65 libstdc++-v3/include/ext/pb_ds/detail/trie_policy/trie_string_access_traits_imp.hpp 47fec53bf2104014b45c1837143a9284 libstdc++-v3/include/ext/pb_ds/detail/type_utils.hpp ! 8b119be915f6dcc0a74bdb83a1e9f494 libstdc++-v3/include/ext/pb_ds/detail/types_traits.hpp c6810811ef13ac27781bf8f71686f981 libstdc++-v3/include/ext/pb_ds/detail/unordered_iterator/const_iterator.hpp 8175c8128d88adf622afac7daadef031 libstdc++-v3/include/ext/pb_ds/detail/unordered_iterator/iterator.hpp 86dea8a5ff1f6f2d12d82f824118bd73 libstdc++-v3/include/ext/pb_ds/detail/unordered_iterator/point_const_iterator.hpp 62945b45dd00db52c9bd36b81071ba0d libstdc++-v3/include/ext/pb_ds/detail/unordered_iterator/point_iterator.hpp ! ff503c7b13f45a69a02d629420a4888c libstdc++-v3/include/ext/pb_ds/exception.hpp 6808375fb8fc9ea55f7b897456bfd6ab libstdc++-v3/include/ext/pb_ds/hash_policy.hpp a7a81b3f51c56977b610f962718fdede libstdc++-v3/include/ext/pb_ds/list_update_policy.hpp ! 22a8f46230359592c3bb29ef6c4e9f2d libstdc++-v3/include/ext/pb_ds/priority_queue.hpp ! 953f981cca2c2fdcaa42ef41a04d716f libstdc++-v3/include/ext/pb_ds/tag_and_trait.hpp fcee24dd31eeac48d5964701362d0d5e libstdc++-v3/include/ext/pb_ds/tree_policy.hpp 5e1ba6d29e153cc25d1174534f9fa606 libstdc++-v3/include/ext/pb_ds/trie_policy.hpp ec3cce836d7ec67df6cfc0664eedb7c4 libstdc++-v3/include/ext/pod_char_traits.h bc60402cb23df834e8f6dff9c372ac93 libstdc++-v3/include/ext/pointer.h 9320e4bded05b902c6a03617e2c5c5ca libstdc++-v3/include/ext/pool_allocator.h ! ab1c48c102c665f8ca13f2163df187eb libstdc++-v3/include/ext/random af48d9b42ed6ff71185b4847b8258c75 libstdc++-v3/include/ext/random.tcc c18a1ff3602fb071240a18d125142bb1 libstdc++-v3/include/ext/rb_tree 28bc38a99c6a3429b778dcc5b83c945b libstdc++-v3/include/ext/rc_string_base.h ! 9a2970b96ad28a8a4e20f8c4ff9b7fa0 libstdc++-v3/include/ext/rope 5eb23ebeffc789418baca327eb2ff16b libstdc++-v3/include/ext/ropeimpl.h 069e9d57012d754062e5460430f1d5c9 libstdc++-v3/include/ext/slist f13310565f29b3a5fd081b6ed8e89280 libstdc++-v3/include/ext/sso_string_base.h *************** ec688ab63b1c94fbcb7fa809f5a73ada libstd *** 91769,91775 **** 27ba889da8ab164a3160e5edac1d0a14 libstdc++-v3/include/ext/stdio_sync_filebuf.h 9beb5bfc6e01f8ab3a3b7812237648f6 libstdc++-v3/include/ext/string_conversions.h 867bdb6f39f616c4a745c95425926f1a libstdc++-v3/include/ext/throw_allocator.h ! 7bc2e4535f886443a00f26a8e4e3afb0 libstdc++-v3/include/ext/type_traits.h 914801408d4eeb729b608de36c2388b2 libstdc++-v3/include/ext/typelist.h def38eff4323e6220c3d504599fc7ba1 libstdc++-v3/include/ext/vstring.h 1319720d5fc144102ef3b7f9974eb461 libstdc++-v3/include/ext/vstring.tcc --- 92238,92244 ---- 27ba889da8ab164a3160e5edac1d0a14 libstdc++-v3/include/ext/stdio_sync_filebuf.h 9beb5bfc6e01f8ab3a3b7812237648f6 libstdc++-v3/include/ext/string_conversions.h 867bdb6f39f616c4a745c95425926f1a libstdc++-v3/include/ext/throw_allocator.h ! b3725b4094abdf3d3c741aca156bf9b5 libstdc++-v3/include/ext/type_traits.h 914801408d4eeb729b608de36c2388b2 libstdc++-v3/include/ext/typelist.h def38eff4323e6220c3d504599fc7ba1 libstdc++-v3/include/ext/vstring.h 1319720d5fc144102ef3b7f9974eb461 libstdc++-v3/include/ext/vstring.tcc *************** d3d2812c60e828c1e822801f148c7630 libstd *** 91846,91915 **** b273dc977fd70ba3f379d1a3b1863379 libstdc++-v3/include/pstl/unseq_backend_simd.h 248e4a4c932ee32246a6216c3b58a482 libstdc++-v3/include/pstl/utils.h d13b5b555064cbe65fe9a48522f98fc6 libstdc++-v3/include/std/algorithm ! a7cee0670ef2f43ba603a1f326b37e8c libstdc++-v3/include/std/any 2eb20d4a1a3384519f368d3874a83786 libstdc++-v3/include/std/array ! 35945f283d293dd44a50f46f675f8f6d libstdc++-v3/include/std/atomic ! 2f17eb89f77e2ee921a57253de6ee5c9 libstdc++-v3/include/std/bit ! 5f1c8f4031c376daa520b4042e737031 libstdc++-v3/include/std/bitset ! a5b4db6fed007fcc004ed0ff48a37dd4 libstdc++-v3/include/std/charconv ! 07f9830465216953f0fac42f304ba27b libstdc++-v3/include/std/chrono 8b37cc9e28ddcbaeebc68650806fcfaa libstdc++-v3/include/std/codecvt ! d749241b64a50448a25412edfef0530f libstdc++-v3/include/std/complex ! 7af6b971bd60f2b4dcf057b25414933c libstdc++-v3/include/std/concepts ! 271d8d0b07b3197b87ffc8b60e5bce2f libstdc++-v3/include/std/condition_variable b4493ef8e7b02102293f5a3c9730209b libstdc++-v3/include/std/coroutine b2f8064791ef2156aa9b6064bda8d41b libstdc++-v3/include/std/deque 680dceb8e58dc362e06d8a25de148386 libstdc++-v3/include/std/execution 11c5a92f32a0bbd015601d1425677837 libstdc++-v3/include/std/filesystem be4d22542b1ad1eb46dee2cf07515b36 libstdc++-v3/include/std/forward_list ! 7e8deeb0e0e8a6b9269929a27884a001 libstdc++-v3/include/std/fstream 35d0ec3d03ab91d93ef4645794953a82 libstdc++-v3/include/std/functional ! 25366471e0838b8bc8262fec3a360f23 libstdc++-v3/include/std/future 5bdf514df587a0b7e143fd31534822f6 libstdc++-v3/include/std/iomanip c38aff42e4260791f26b2c61947dc465 libstdc++-v3/include/std/ios 1bb450b79d915a2d887b7b54d3c9a23c libstdc++-v3/include/std/iosfwd ! da0c5f6020be0dbfaae462da3664d852 libstdc++-v3/include/std/iostream ! a97242b798d849f57f1973ae28ec6a14 libstdc++-v3/include/std/istream 0745b363c5c0fdde6b446cc71829d990 libstdc++-v3/include/std/iterator 9d5a07eab13798f7ccc2e19862883f0d libstdc++-v3/include/std/limits d44965fd1119516c430f841e5e500b2b libstdc++-v3/include/std/list 665715a7b0758a25afbee33a0423900d libstdc++-v3/include/std/locale caaabd7110451202bfa1b8ad2aabddb9 libstdc++-v3/include/std/map ! eb129d70fff74546439ddc0ed9ec59de libstdc++-v3/include/std/memory 3f400dd93f6a698931858300f3e1943a libstdc++-v3/include/std/memory_resource ! eb27e3da0e7adcb08114e75823aa314d libstdc++-v3/include/std/mutex 6eef564e779ff625b1fb0fa009e40fd4 libstdc++-v3/include/std/numbers ! 3893165ee53c20e82172830265940367 libstdc++-v3/include/std/numeric ! 43aca55880360ee8aa4174e19fe38490 libstdc++-v3/include/std/optional ! a4920c96869c681a69d1ab1dc26906ee libstdc++-v3/include/std/ostream c43c4eb1ed1a4868d4c6323cc6de7522 libstdc++-v3/include/std/queue eb0270a262359d9c42cc05dff455433d libstdc++-v3/include/std/random ! 6e96508e1189d14028ae46115a4d3530 libstdc++-v3/include/std/ranges ! 0b31cefab4f78a15b3d17e37a9bf18f7 libstdc++-v3/include/std/ratio a8222a3097b562fb1cd796c07ec7c61f libstdc++-v3/include/std/regex b66d9f96bf954c63d6525112c84eb381 libstdc++-v3/include/std/scoped_allocator 245521f6014ae11952787e3814f04026 libstdc++-v3/include/std/set ! 4eab9ce701852f6f93ce77518be96f9d libstdc++-v3/include/std/shared_mutex ! 08d4e6b5703c0aa85c063a85d448da8e libstdc++-v3/include/std/span 57d20fd66958cb5ff87fd63d0146d6b1 libstdc++-v3/include/std/sstream 2e668b0677af4c060836d386a013d36b libstdc++-v3/include/std/stack ! 213cb30744e2061b4e0e3d513981f177 libstdc++-v3/include/std/stdexcept 4927a29ef58b4de3622103ccacdc0ed1 libstdc++-v3/include/std/stop_token ! d3ac04fc7aa69a7120e89940ee3b1ec7 libstdc++-v3/include/std/streambuf eb3091100e8f81513efe90cccdb3c1a5 libstdc++-v3/include/std/string ! 24fc566264c206a5dff63a79ba17a028 libstdc++-v3/include/std/string_view ! e3343b9b60a75f919adeedf0a21617e6 libstdc++-v3/include/std/system_error ! 6ce7c9c44f03d1d1ea1e35933d1a7c2a libstdc++-v3/include/std/thread ! f9b1a79c3af55c6dd77d8ae5f812b62d libstdc++-v3/include/std/tuple ! 0ec1762e27283bff05b311d0ec42b40e libstdc++-v3/include/std/type_traits a4fb839cf1231ef9e1358c002e576ec8 libstdc++-v3/include/std/typeindex 1337d5daba21c28cdeb4c94ca872b4ba libstdc++-v3/include/std/unordered_map e3b3bdf6bb027fd8ddee13353d7b6234 libstdc++-v3/include/std/unordered_set 121c5a282a5a4db2a38d858687acc93c libstdc++-v3/include/std/utility ! 94ed65fd4131001ca7494272ac631b78 libstdc++-v3/include/std/valarray ! b0bba02ee607469f720a495eccc4e012 libstdc++-v3/include/std/variant d226f70ed3db8fb048011cc9efe12c5a libstdc++-v3/include/std/vector ! d0a43124c9596ee2dc26a3af4bacc792 libstdc++-v3/include/std/version becf8176a2ce28ba95a0d84d6bbd909a libstdc++-v3/include/tr1/array 06066bfa4ffb52c16f2a0011ee915639 libstdc++-v3/include/tr1/bessel_function.tcc 9f9269f3aa1f171576fbfbccddc0c33c libstdc++-v3/include/tr1/beta_function.tcc --- 92315,92384 ---- b273dc977fd70ba3f379d1a3b1863379 libstdc++-v3/include/pstl/unseq_backend_simd.h 248e4a4c932ee32246a6216c3b58a482 libstdc++-v3/include/pstl/utils.h d13b5b555064cbe65fe9a48522f98fc6 libstdc++-v3/include/std/algorithm ! 264dfe8d0bc871c1b56dccbc57bf0b7f libstdc++-v3/include/std/any 2eb20d4a1a3384519f368d3874a83786 libstdc++-v3/include/std/array ! d1ea53a6b3aa2a26dd2a34579929a0a2 libstdc++-v3/include/std/atomic ! ee08323765838e4ca57e151bd2f5f369 libstdc++-v3/include/std/bit ! addd5760df8b3e5ba9b33dd05e3a4f9e libstdc++-v3/include/std/bitset ! c34b04d6bdef13addf91f0b7c174b677 libstdc++-v3/include/std/charconv ! 24b681806a0df2c4b990aa9e3fcf2359 libstdc++-v3/include/std/chrono 8b37cc9e28ddcbaeebc68650806fcfaa libstdc++-v3/include/std/codecvt ! ca32345e912feb3299a3475baf482b93 libstdc++-v3/include/std/complex ! 2f9c08e9d169cafc9bb73d40d6152fe1 libstdc++-v3/include/std/concepts ! 0bca7972e0a981c566c58333047b3e4f libstdc++-v3/include/std/condition_variable b4493ef8e7b02102293f5a3c9730209b libstdc++-v3/include/std/coroutine b2f8064791ef2156aa9b6064bda8d41b libstdc++-v3/include/std/deque 680dceb8e58dc362e06d8a25de148386 libstdc++-v3/include/std/execution 11c5a92f32a0bbd015601d1425677837 libstdc++-v3/include/std/filesystem be4d22542b1ad1eb46dee2cf07515b36 libstdc++-v3/include/std/forward_list ! 4a6d2e200fd33f7fd5aea1a407127861 libstdc++-v3/include/std/fstream 35d0ec3d03ab91d93ef4645794953a82 libstdc++-v3/include/std/functional ! bc7515ce4ef21d5eb7168bfb5446ab8c libstdc++-v3/include/std/future 5bdf514df587a0b7e143fd31534822f6 libstdc++-v3/include/std/iomanip c38aff42e4260791f26b2c61947dc465 libstdc++-v3/include/std/ios 1bb450b79d915a2d887b7b54d3c9a23c libstdc++-v3/include/std/iosfwd ! 1fb5ac03dc79f135ff194c56ae89ed3f libstdc++-v3/include/std/iostream ! a0a50587d2eec5a78f74a98dabe20be6 libstdc++-v3/include/std/istream 0745b363c5c0fdde6b446cc71829d990 libstdc++-v3/include/std/iterator 9d5a07eab13798f7ccc2e19862883f0d libstdc++-v3/include/std/limits d44965fd1119516c430f841e5e500b2b libstdc++-v3/include/std/list 665715a7b0758a25afbee33a0423900d libstdc++-v3/include/std/locale caaabd7110451202bfa1b8ad2aabddb9 libstdc++-v3/include/std/map ! 8975a010c439e0c88f6d8c77e44d643b libstdc++-v3/include/std/memory 3f400dd93f6a698931858300f3e1943a libstdc++-v3/include/std/memory_resource ! 7bf570019cd4f0a6d5a6a52e97bb04d6 libstdc++-v3/include/std/mutex 6eef564e779ff625b1fb0fa009e40fd4 libstdc++-v3/include/std/numbers ! 1ccb103f249440dabfde6c0fd0a7c061 libstdc++-v3/include/std/numeric ! 393364dba7f058bf4c81111ddd1f9cdd libstdc++-v3/include/std/optional ! 56e5a336148ae6e8cfc713dd640b2f8d libstdc++-v3/include/std/ostream c43c4eb1ed1a4868d4c6323cc6de7522 libstdc++-v3/include/std/queue eb0270a262359d9c42cc05dff455433d libstdc++-v3/include/std/random ! 98b92b811a8216770375bed0aa0f4d18 libstdc++-v3/include/std/ranges ! ca89269b97d7354f7f0b65d424029d90 libstdc++-v3/include/std/ratio a8222a3097b562fb1cd796c07ec7c61f libstdc++-v3/include/std/regex b66d9f96bf954c63d6525112c84eb381 libstdc++-v3/include/std/scoped_allocator 245521f6014ae11952787e3814f04026 libstdc++-v3/include/std/set ! e1565837b946ced2d0133cbaa1e3d8ec libstdc++-v3/include/std/shared_mutex ! 8c2db7cae66143469e27ffc9996d3fb5 libstdc++-v3/include/std/span 57d20fd66958cb5ff87fd63d0146d6b1 libstdc++-v3/include/std/sstream 2e668b0677af4c060836d386a013d36b libstdc++-v3/include/std/stack ! b7cb1423f5d00d33fe1a8be9cf5aa752 libstdc++-v3/include/std/stdexcept 4927a29ef58b4de3622103ccacdc0ed1 libstdc++-v3/include/std/stop_token ! 1e5abe92347441ccf5ada831a258c4e5 libstdc++-v3/include/std/streambuf eb3091100e8f81513efe90cccdb3c1a5 libstdc++-v3/include/std/string ! 70f45746625c6d36f2b6a982c66329a5 libstdc++-v3/include/std/string_view ! df30cbfe47f6d40df9209197be105c02 libstdc++-v3/include/std/system_error ! cb0634ec16f6b752fa1ff813eeca1730 libstdc++-v3/include/std/thread ! 066e5cd5a70eb992f55993f5eab6be3a libstdc++-v3/include/std/tuple ! 45c67e663954c948be8e2925470bc594 libstdc++-v3/include/std/type_traits a4fb839cf1231ef9e1358c002e576ec8 libstdc++-v3/include/std/typeindex 1337d5daba21c28cdeb4c94ca872b4ba libstdc++-v3/include/std/unordered_map e3b3bdf6bb027fd8ddee13353d7b6234 libstdc++-v3/include/std/unordered_set 121c5a282a5a4db2a38d858687acc93c libstdc++-v3/include/std/utility ! 567ad93eeaa373e6e893843e804a3df6 libstdc++-v3/include/std/valarray ! 1298d6992e2344f7d186593abd955fef libstdc++-v3/include/std/variant d226f70ed3db8fb048011cc9efe12c5a libstdc++-v3/include/std/vector ! 27d7969b96498b2777dbe1bdbeeb2fae libstdc++-v3/include/std/version becf8176a2ce28ba95a0d84d6bbd909a libstdc++-v3/include/tr1/array 06066bfa4ffb52c16f2a0011ee915639 libstdc++-v3/include/tr1/bessel_function.tcc 9f9269f3aa1f171576fbfbccddc0c33c libstdc++-v3/include/tr1/beta_function.tcc *************** d227fecdf7b427b7cbbb5c299068b11e libstd *** 91919,91926 **** 8b7afc7d6e165ea05c17bbff340550c0 libstdc++-v3/include/tr1/cfloat 12499b5ac449cc0d186e8fcdf1352068 libstdc++-v3/include/tr1/cinttypes d334a06e2eaa8d855f7928caa13326a9 libstdc++-v3/include/tr1/climits ! 5627f96e51aca38510c7b50fc4206468 libstdc++-v3/include/tr1/cmath ! 1593c0a4a57b393db881d4b99728a762 libstdc++-v3/include/tr1/complex 8ecd2dccc95981872f5dd7cf98f3b39f libstdc++-v3/include/tr1/complex.h ef9dcaed6142cabfb5b32cd08df3145a libstdc++-v3/include/tr1/cstdarg 8b8e1527de5f885dd48be7fada970f62 libstdc++-v3/include/tr1/cstdbool --- 92388,92395 ---- 8b7afc7d6e165ea05c17bbff340550c0 libstdc++-v3/include/tr1/cfloat 12499b5ac449cc0d186e8fcdf1352068 libstdc++-v3/include/tr1/cinttypes d334a06e2eaa8d855f7928caa13326a9 libstdc++-v3/include/tr1/climits ! 95de00b588cb4ee907ec304ff90618df libstdc++-v3/include/tr1/cmath ! 433edc0fcb568b1d43152107217aaa26 libstdc++-v3/include/tr1/complex 8ecd2dccc95981872f5dd7cf98f3b39f libstdc++-v3/include/tr1/complex.h ef9dcaed6142cabfb5b32cd08df3145a libstdc++-v3/include/tr1/cstdarg 8b8e1527de5f885dd48be7fada970f62 libstdc++-v3/include/tr1/cstdbool *************** fcfb7e2fcc0771a39c292ff0fc766094 libstd *** 91951,91959 **** 5495f6af469975273f4c72634f281417 libstdc++-v3/include/tr1/poly_hermite.tcc 6fb63930008c0ea5db714ad1275aa652 libstdc++-v3/include/tr1/poly_laguerre.tcc 1eb08faa47ba499a03f9dfa10b0ab38a libstdc++-v3/include/tr1/random ! ed1d55d17485b282fcee6dd7e5a888c5 libstdc++-v3/include/tr1/random.h c47e2e868b4bc389937c0e50144c51c6 libstdc++-v3/include/tr1/random.tcc ! 8aa7dcd7a234bd2c5975f1e20ac110cb libstdc++-v3/include/tr1/regex 5ae5c07b9be0b909af6bea7d2f44be1a libstdc++-v3/include/tr1/riemann_zeta.tcc 835a478836e3cc45860c738c2d8c461d libstdc++-v3/include/tr1/shared_ptr.h 22432eca009de4449f299abf4f13686a libstdc++-v3/include/tr1/special_function_util.h --- 92420,92428 ---- 5495f6af469975273f4c72634f281417 libstdc++-v3/include/tr1/poly_hermite.tcc 6fb63930008c0ea5db714ad1275aa652 libstdc++-v3/include/tr1/poly_laguerre.tcc 1eb08faa47ba499a03f9dfa10b0ab38a libstdc++-v3/include/tr1/random ! a161bdf806d971b000724db993ac074b libstdc++-v3/include/tr1/random.h c47e2e868b4bc389937c0e50144c51c6 libstdc++-v3/include/tr1/random.tcc ! 815dd825c0a93630f40137b3859c344d libstdc++-v3/include/tr1/regex 5ae5c07b9be0b909af6bea7d2f44be1a libstdc++-v3/include/tr1/riemann_zeta.tcc 835a478836e3cc45860c738c2d8c461d libstdc++-v3/include/tr1/shared_ptr.h 22432eca009de4449f299abf4f13686a libstdc++-v3/include/tr1/special_function_util.h *************** c4957b1343b7e92f0114cb2f6f92d0ab libstd *** 91974,91996 **** 8612d7a60fc538dd88175066c44827e3 libstdc++-v3/include/tr1/wctype.h c299b5a95bf9cc081406fbabbc619eec libstdc++-v3/include/tr2/bool_set ef3c3be52710a1911df3359721e497e4 libstdc++-v3/include/tr2/bool_set.tcc ! 1fe750461422135879123aecf9f3bc81 libstdc++-v3/include/tr2/dynamic_bitset bd40329a5bd87d9247007a23cf9d21ea libstdc++-v3/include/tr2/dynamic_bitset.tcc 8c1b4126ab09f7b340712a32a9d379c5 libstdc++-v3/include/tr2/ratio c302e24e8c307b5e29514f20ff56e166 libstdc++-v3/include/tr2/type_traits ! 0a1aa020ec179500ea892d3b950205a9 libstdc++-v3/libsupc++/Makefile.am ! a06a5a4740e6879e487d9f499e3ff1a8 libstdc++-v3/libsupc++/Makefile.in b0f9c6b6e8ba996af9d85ec44c9078b7 libstdc++-v3/libsupc++/array_type_info.cc 10eee09d05d87d10df2c70128336876e libstdc++-v3/libsupc++/atexit_arm.cc 0f4fe28cf9d498afcf0d4479045e53b4 libstdc++-v3/libsupc++/atexit_thread.cc ! 20c4ed0c54350a5e280885bdd5ea31a4 libstdc++-v3/libsupc++/atomic_lockfree_defines.h 36e4ee246af5055d2024e195e754f296 libstdc++-v3/libsupc++/bad_alloc.cc 977600028cdb513893b9e750d342ea13 libstdc++-v3/libsupc++/bad_array_length.cc 0cbe19d784b7003c52877b01c5cfd597 libstdc++-v3/libsupc++/bad_array_new.cc c2c5edf248125df1baa7acc04b65bfe4 libstdc++-v3/libsupc++/bad_cast.cc 998cbb4737b22f094cde1c05c40098b8 libstdc++-v3/libsupc++/bad_typeid.cc 3a4784cb41c5d3e8500d6df66036cf1e libstdc++-v3/libsupc++/class_type_info.cc ! 109d6d87d9c70b1351f72cb5690a3aa0 libstdc++-v3/libsupc++/compare bd0ecfe5c8670b8a9e4a3514ce299ca0 libstdc++-v3/libsupc++/cxxabi.h acf0d1fef71373c5162fe13d85bb2c25 libstdc++-v3/libsupc++/cxxabi_forced.h 928915fd1e9fc3d3622d49a8c45333ce libstdc++-v3/libsupc++/cxxabi_init_exception.h --- 92443,92465 ---- 8612d7a60fc538dd88175066c44827e3 libstdc++-v3/include/tr1/wctype.h c299b5a95bf9cc081406fbabbc619eec libstdc++-v3/include/tr2/bool_set ef3c3be52710a1911df3359721e497e4 libstdc++-v3/include/tr2/bool_set.tcc ! cca88cb19c7215b5b69059d40d8ff48e libstdc++-v3/include/tr2/dynamic_bitset bd40329a5bd87d9247007a23cf9d21ea libstdc++-v3/include/tr2/dynamic_bitset.tcc 8c1b4126ab09f7b340712a32a9d379c5 libstdc++-v3/include/tr2/ratio c302e24e8c307b5e29514f20ff56e166 libstdc++-v3/include/tr2/type_traits ! c14e4bbf3f33792e890e2ff4616e0b9c libstdc++-v3/libsupc++/Makefile.am ! 8796e4a4828ccb09e9899249233d1a23 libstdc++-v3/libsupc++/Makefile.in b0f9c6b6e8ba996af9d85ec44c9078b7 libstdc++-v3/libsupc++/array_type_info.cc 10eee09d05d87d10df2c70128336876e libstdc++-v3/libsupc++/atexit_arm.cc 0f4fe28cf9d498afcf0d4479045e53b4 libstdc++-v3/libsupc++/atexit_thread.cc ! 23657c26ab3a5c57eb78d3a85460f86a libstdc++-v3/libsupc++/atomic_lockfree_defines.h 36e4ee246af5055d2024e195e754f296 libstdc++-v3/libsupc++/bad_alloc.cc 977600028cdb513893b9e750d342ea13 libstdc++-v3/libsupc++/bad_array_length.cc 0cbe19d784b7003c52877b01c5cfd597 libstdc++-v3/libsupc++/bad_array_new.cc c2c5edf248125df1baa7acc04b65bfe4 libstdc++-v3/libsupc++/bad_cast.cc 998cbb4737b22f094cde1c05c40098b8 libstdc++-v3/libsupc++/bad_typeid.cc 3a4784cb41c5d3e8500d6df66036cf1e libstdc++-v3/libsupc++/class_type_info.cc ! e0004aa82f32b005886dd69ff41fd612 libstdc++-v3/libsupc++/compare bd0ecfe5c8670b8a9e4a3514ce299ca0 libstdc++-v3/libsupc++/cxxabi.h acf0d1fef71373c5162fe13d85bb2c25 libstdc++-v3/libsupc++/cxxabi_forced.h 928915fd1e9fc3d3622d49a8c45333ce libstdc++-v3/libsupc++/cxxabi_init_exception.h *************** a59622e276639dd515175fbd6395df24 libstd *** 92025,92034 **** 1cd5b6ce1ebf8e06a5af76e1a7a8fa5f libstdc++-v3/libsupc++/eh_type.cc 78238663a71562f56f9dc00b37fc2094 libstdc++-v3/libsupc++/eh_unex_handler.cc efaee9802db9806f8b37c1ab4846218f libstdc++-v3/libsupc++/enum_type_info.cc ! 6fd4b4da611a39ba27d0262a7e7ddd59 libstdc++-v3/libsupc++/exception ! d231b21df16a2b98bae52e9f06236f84 libstdc++-v3/libsupc++/exception.h 5eec165f70e99f7038ec1079aeef99fb libstdc++-v3/libsupc++/exception_defines.h ! 17ca6bef6dd8f906cb5e59165a298a13 libstdc++-v3/libsupc++/exception_ptr.h 05409d8f020796a3a4767bfc4879d82d libstdc++-v3/libsupc++/function_type_info.cc 46fd738848135c9b89b456cd4432d003 libstdc++-v3/libsupc++/fundamental_type_info.cc 84c501e2416bdb87e34abe6237a3c17f libstdc++-v3/libsupc++/guard.cc --- 92494,92503 ---- 1cd5b6ce1ebf8e06a5af76e1a7a8fa5f libstdc++-v3/libsupc++/eh_type.cc 78238663a71562f56f9dc00b37fc2094 libstdc++-v3/libsupc++/eh_unex_handler.cc efaee9802db9806f8b37c1ab4846218f libstdc++-v3/libsupc++/enum_type_info.cc ! 5793dd3822223eab770dd5c5bf307a2f libstdc++-v3/libsupc++/exception ! 6a6a4fb613335dba884545e796e39323 libstdc++-v3/libsupc++/exception.h 5eec165f70e99f7038ec1079aeef99fb libstdc++-v3/libsupc++/exception_defines.h ! 22758d7a3ac2c6892e8a317604322aea libstdc++-v3/libsupc++/exception_ptr.h 05409d8f020796a3a4767bfc4879d82d libstdc++-v3/libsupc++/function_type_info.cc 46fd738848135c9b89b456cd4432d003 libstdc++-v3/libsupc++/fundamental_type_info.cc 84c501e2416bdb87e34abe6237a3c17f libstdc++-v3/libsupc++/guard.cc *************** f995be571c49b49289cb4c5de246a591 libstd *** 92037,92047 **** a9d6bf3e7b5591d98a15ccbabe8992a8 libstdc++-v3/libsupc++/hash_bytes.h 3233e15027e0d66e4a1f3fdac41e1523 libstdc++-v3/libsupc++/initializer_list f3b2f278f157b615a46dfe8757355a87 libstdc++-v3/libsupc++/nested_exception.cc ! c6ff9941eea45390601d9f88f7e9c189 libstdc++-v3/libsupc++/nested_exception.h 726c612aec9b4cf5ffb86ae013500764 libstdc++-v3/libsupc++/new 5b82533aa83b45d8fab5a61f946a7c55 libstdc++-v3/libsupc++/new_handler.cc af35a3d0f506bd4981ff5656f06aa4e4 libstdc++-v3/libsupc++/new_op.cc ! d429265d795447b1f392ca9c49e63e16 libstdc++-v3/libsupc++/new_opa.cc ec1c7852934ac7e6673169f46bbb2d6a libstdc++-v3/libsupc++/new_opant.cc 2716d45ff48a14bd06985fbf36c7cab8 libstdc++-v3/libsupc++/new_opnt.cc 3d049eba4fdeccdf9aba8cccf1b9eff9 libstdc++-v3/libsupc++/new_opv.cc --- 92506,92516 ---- a9d6bf3e7b5591d98a15ccbabe8992a8 libstdc++-v3/libsupc++/hash_bytes.h 3233e15027e0d66e4a1f3fdac41e1523 libstdc++-v3/libsupc++/initializer_list f3b2f278f157b615a46dfe8757355a87 libstdc++-v3/libsupc++/nested_exception.cc ! f3336f93979049335fac89945b63655b libstdc++-v3/libsupc++/nested_exception.h 726c612aec9b4cf5ffb86ae013500764 libstdc++-v3/libsupc++/new 5b82533aa83b45d8fab5a61f946a7c55 libstdc++-v3/libsupc++/new_handler.cc af35a3d0f506bd4981ff5656f06aa4e4 libstdc++-v3/libsupc++/new_op.cc ! d4b2a32e98b74e66a4971f2a1df82d2a libstdc++-v3/libsupc++/new_opa.cc ec1c7852934ac7e6673169f46bbb2d6a libstdc++-v3/libsupc++/new_opant.cc 2716d45ff48a14bd06985fbf36c7cab8 libstdc++-v3/libsupc++/new_opnt.cc 3d049eba4fdeccdf9aba8cccf1b9eff9 libstdc++-v3/libsupc++/new_opv.cc *************** fd848e9998fa389554b1d1a78f56c932 libstd *** 92070,92082 **** c3325ce572e11e80ad0892e4f64397ae libstdc++-v3/po/fr.po 51e81dfb580a235b73f6a3b903a822a9 libstdc++-v3/po/libstdc++.pot 62c624a1041a47c9d0b776aed8474d8b libstdc++-v3/po/string_literals.cc ! b8eebd20a7c7445e66d60ef7200fabb9 libstdc++-v3/python/Makefile.am ! ea77968350f7b0fa8ca65e556314ac58 libstdc++-v3/python/Makefile.in dd2d88360d92246b172169fa496272e9 libstdc++-v3/python/hook.in 68b329da9893e34099c7d8ad5cb9c940 libstdc++-v3/python/libstdcxx/__init__.py ae17853071ca9899f6cb501024af780a libstdc++-v3/python/libstdcxx/v6/__init__.py ! 80ec62783506bb83f60f3f86e4bbe73d libstdc++-v3/python/libstdcxx/v6/printers.py ! 236a5719c2424adc4d59612fd75dc1c6 libstdc++-v3/python/libstdcxx/v6/xmethods.py cdac7363b91e7d57b85f7b560f62f033 libstdc++-v3/scripts/check_compile 135cc633b60b1fe91bcc3ea62a5ff845 libstdc++-v3/scripts/check_performance 222d3bed3efbfa2cc45349dba7566fb4 libstdc++-v3/scripts/create_testsuite_files --- 92539,92551 ---- c3325ce572e11e80ad0892e4f64397ae libstdc++-v3/po/fr.po 51e81dfb580a235b73f6a3b903a822a9 libstdc++-v3/po/libstdc++.pot 62c624a1041a47c9d0b776aed8474d8b libstdc++-v3/po/string_literals.cc ! 7452897b58848aac567953af5683fe04 libstdc++-v3/python/Makefile.am ! f3ac4e5379aefe9ff864e8243a174b42 libstdc++-v3/python/Makefile.in dd2d88360d92246b172169fa496272e9 libstdc++-v3/python/hook.in 68b329da9893e34099c7d8ad5cb9c940 libstdc++-v3/python/libstdcxx/__init__.py ae17853071ca9899f6cb501024af780a libstdc++-v3/python/libstdcxx/v6/__init__.py ! 1de76e87902410c000656c409774db0c libstdc++-v3/python/libstdcxx/v6/printers.py ! 0fc25e43df52cda8714a2f6dd550e226 libstdc++-v3/python/libstdcxx/v6/xmethods.py cdac7363b91e7d57b85f7b560f62f033 libstdc++-v3/scripts/check_compile 135cc633b60b1fe91bcc3ea62a5ff845 libstdc++-v3/scripts/check_performance 222d3bed3efbfa2cc45349dba7566fb4 libstdc++-v3/scripts/create_testsuite_files *************** e8e7773bc629a008b2813ee507a0dab6 libstd *** 92089,92096 **** 80b6ff44b325c6b6d113435d8eea4b76 libstdc++-v3/scripts/make_graph.py dc1296234355fa7f34409b5f2e70986b libstdc++-v3/scripts/run_doxygen 7579350b0ac0412cb42e9c354485ebd9 libstdc++-v3/scripts/testsuite_flags.in ! dd602fb73ab044dd4936ea0f7394293f libstdc++-v3/src/Makefile.am ! b5b888c48a4edc7b41ef7cf409072cdc libstdc++-v3/src/Makefile.in 9d0e24e5f795d56cfc9228b163b63a46 libstdc++-v3/src/c++11/Makefile.am 87d2433d51742544fd9035db13354513 libstdc++-v3/src/c++11/Makefile.in 642c0b1386b501bcbc4637d9054f04c3 libstdc++-v3/src/c++11/chrono.cc --- 92558,92565 ---- 80b6ff44b325c6b6d113435d8eea4b76 libstdc++-v3/scripts/make_graph.py dc1296234355fa7f34409b5f2e70986b libstdc++-v3/scripts/run_doxygen 7579350b0ac0412cb42e9c354485ebd9 libstdc++-v3/scripts/testsuite_flags.in ! eb5a0a4c3134658a497c530aacbbeb74 libstdc++-v3/src/Makefile.am ! 2faf9eae785cc3105364c69ca4ff7dc3 libstdc++-v3/src/Makefile.in 9d0e24e5f795d56cfc9228b163b63a46 libstdc++-v3/src/c++11/Makefile.am 87d2433d51742544fd9035db13354513 libstdc++-v3/src/c++11/Makefile.in 642c0b1386b501bcbc4637d9054f04c3 libstdc++-v3/src/c++11/chrono.cc *************** f261a5695cf413b262d8d771012c36cf libstd *** 92145,92151 **** 4fb3701cc944efa6295cf3701076da7d libstdc++-v3/src/c++11/streambuf-inst.cc 67489e44aabf6ee27491f83aded895e5 libstdc++-v3/src/c++11/string-inst.cc 90fff7ea468ea45ee79b57c88711d684 libstdc++-v3/src/c++11/string-io-inst.cc ! b2e2720546b88a7a4deab7e3d9f68417 libstdc++-v3/src/c++11/system_error.cc 3c91c9ec8d1b0a5df45bf18e30b0af8e libstdc++-v3/src/c++11/thread.cc 13e198b930798010d9e16aee69f138b5 libstdc++-v3/src/c++11/wlocale-inst.cc 1ea4c9bf30c5548ffad100b839a94a6a libstdc++-v3/src/c++11/wstring-inst.cc --- 92614,92620 ---- 4fb3701cc944efa6295cf3701076da7d libstdc++-v3/src/c++11/streambuf-inst.cc 67489e44aabf6ee27491f83aded895e5 libstdc++-v3/src/c++11/string-inst.cc 90fff7ea468ea45ee79b57c88711d684 libstdc++-v3/src/c++11/string-io-inst.cc ! 4702dde44800dea5f9ad46ebea5eaccf libstdc++-v3/src/c++11/system_error.cc 3c91c9ec8d1b0a5df45bf18e30b0af8e libstdc++-v3/src/c++11/thread.cc 13e198b930798010d9e16aee69f138b5 libstdc++-v3/src/c++11/wlocale-inst.cc 1ea4c9bf30c5548ffad100b839a94a6a libstdc++-v3/src/c++11/wstring-inst.cc *************** d5f997a3f8dd5097f784e8fe86ddd77e libstd *** 92157,92170 **** 447f9dd7802185faaef3f02d5e28e059 libstdc++-v3/src/c++17/cow-fs_path.cc ef1ee344de2bc2b04be3d0f275c0b4d3 libstdc++-v3/src/c++17/cow-string-inst.cc 21e22ff1ddec6a91c7b379d6f6398649 libstdc++-v3/src/c++17/default_resource.h ! 1f8175c4b6152a79f499e31e612be72d libstdc++-v3/src/c++17/fs_dir.cc ! 40a53a7e312203d0b28233650e71358e libstdc++-v3/src/c++17/fs_ops.cc ! 78942e7c26418bc0bfa5504d75a1bab4 libstdc++-v3/src/c++17/fs_path.cc 194bab9f1a1b9fef9dcd795adf026641 libstdc++-v3/src/c++17/memory_resource.cc 87912386c5e6de771b56062a52139e93 libstdc++-v3/src/c++17/ostream-inst.cc 2f637a3602ab38de44daa31a9a1de119 libstdc++-v3/src/c++17/string-inst.cc ! 006d4d754512e332eac656862570ac52 libstdc++-v3/src/c++98/Makefile.am ! 97f699e34454d9377286405357435434 libstdc++-v3/src/c++98/Makefile.in e4fdb47a74a89f009512acf06a77e397 libstdc++-v3/src/c++98/allocator-inst.cc 6dcbfe93ffa948b4eb4b677ffffc21d7 libstdc++-v3/src/c++98/bitmap_allocator.cc d7200c74dc5ada450fc056d31067066a libstdc++-v3/src/c++98/codecvt.cc --- 92626,92639 ---- 447f9dd7802185faaef3f02d5e28e059 libstdc++-v3/src/c++17/cow-fs_path.cc ef1ee344de2bc2b04be3d0f275c0b4d3 libstdc++-v3/src/c++17/cow-string-inst.cc 21e22ff1ddec6a91c7b379d6f6398649 libstdc++-v3/src/c++17/default_resource.h ! 3ad10d2e6e8714710066bc9e7d022796 libstdc++-v3/src/c++17/fs_dir.cc ! 37132b81957ff5846a46a7e467f5e65a libstdc++-v3/src/c++17/fs_ops.cc ! 42defcdc2c69bd9b77c3825755b86943 libstdc++-v3/src/c++17/fs_path.cc 194bab9f1a1b9fef9dcd795adf026641 libstdc++-v3/src/c++17/memory_resource.cc 87912386c5e6de771b56062a52139e93 libstdc++-v3/src/c++17/ostream-inst.cc 2f637a3602ab38de44daa31a9a1de119 libstdc++-v3/src/c++17/string-inst.cc ! bca7687f5da7bc0929bce04c5592be82 libstdc++-v3/src/c++98/Makefile.am ! f7418ebcbfc4f8ad46f3301f1a4fbd91 libstdc++-v3/src/c++98/Makefile.in e4fdb47a74a89f009512acf06a77e397 libstdc++-v3/src/c++98/allocator-inst.cc 6dcbfe93ffa948b4eb4b677ffffc21d7 libstdc++-v3/src/c++98/bitmap_allocator.cc d7200c74dc5ada450fc056d31067066a libstdc++-v3/src/c++98/codecvt.cc *************** f696e1553cdd7d1b79fb2d8012409057 libstd *** 92211,92224 **** e2247434ec0f4ba1ddd7dfbeff34c24e libstdc++-v3/src/filesystem/cow-ops.cc cb2f4ac26828ff897617df0f8edfeb5c libstdc++-v3/src/filesystem/cow-path.cc 18060719bf00c53f45270f021ed36cd8 libstdc++-v3/src/filesystem/dir-common.h ! ecf248d129384f868ed501ca64cb40d5 libstdc++-v3/src/filesystem/dir.cc 83b4b430427186f28a0bc64770655f8a libstdc++-v3/src/filesystem/ops-common.h ! 66808cb66277f721027c3b253f643ff6 libstdc++-v3/src/filesystem/ops.cc 4a126f97e780b00040b3b0b2ebe31380 libstdc++-v3/src/filesystem/path.cc 65fe0dc13541415c36e51df643d228e0 libstdc++-v3/src/shared/hashtable-aux.cc 72e87d870132ac94eda716f470d8918d libstdc++-v3/testsuite/17_intro/badnames.cc b3d3ed9b91d70f1730fd2328876aa09b libstdc++-v3/testsuite/17_intro/freestanding.cc ! bd871e343ea3ccdd4da0edfa1297090a libstdc++-v3/testsuite/17_intro/headers/c++1998/49745.cc 1ac0fe5b84a7b95bd5c5513290440bfe libstdc++-v3/testsuite/17_intro/headers/c++1998/all.cc 54e7e8497c5b7d77699b8b60538467b5 libstdc++-v3/testsuite/17_intro/headers/c++1998/all_attributes.cc eaca426c2876d91be0c0e85903aba4d0 libstdc++-v3/testsuite/17_intro/headers/c++1998/all_c++200x_compatibility.cc --- 92680,92694 ---- e2247434ec0f4ba1ddd7dfbeff34c24e libstdc++-v3/src/filesystem/cow-ops.cc cb2f4ac26828ff897617df0f8edfeb5c libstdc++-v3/src/filesystem/cow-path.cc 18060719bf00c53f45270f021ed36cd8 libstdc++-v3/src/filesystem/dir-common.h ! 65fe2df501ce59dcb75e920f423bac00 libstdc++-v3/src/filesystem/dir.cc 83b4b430427186f28a0bc64770655f8a libstdc++-v3/src/filesystem/ops-common.h ! ac929d613cab70408fe35149c737bc1e libstdc++-v3/src/filesystem/ops.cc 4a126f97e780b00040b3b0b2ebe31380 libstdc++-v3/src/filesystem/path.cc 65fe0dc13541415c36e51df643d228e0 libstdc++-v3/src/shared/hashtable-aux.cc 72e87d870132ac94eda716f470d8918d libstdc++-v3/testsuite/17_intro/badnames.cc b3d3ed9b91d70f1730fd2328876aa09b libstdc++-v3/testsuite/17_intro/freestanding.cc ! d5df5ddc3b7c5dba2e687798eaa28551 libstdc++-v3/testsuite/17_intro/headers/c++1998/103650.cc ! cbf383f9aa96ec97b881d62ea5e64f4a libstdc++-v3/testsuite/17_intro/headers/c++1998/49745.cc 1ac0fe5b84a7b95bd5c5513290440bfe libstdc++-v3/testsuite/17_intro/headers/c++1998/all.cc 54e7e8497c5b7d77699b8b60538467b5 libstdc++-v3/testsuite/17_intro/headers/c++1998/all_attributes.cc eaca426c2876d91be0c0e85903aba4d0 libstdc++-v3/testsuite/17_intro/headers/c++1998/all_c++200x_compatibility.cc *************** b8a53b2b8da32d102d69cbedea3d2216 libstd *** 92271,92277 **** 938a022059e1c731076e20aa462db76a libstdc++-v3/testsuite/17_intro/headers/c++2020/operator_names.cc 5db28641fcfeb9fa540357a1c2521c41 libstdc++-v3/testsuite/17_intro/headers/c++2020/stdc++.cc 5f2b3fa82c579ba8031e1e4bb6f6e2f1 libstdc++-v3/testsuite/17_intro/headers/c++2020/stdc++_multiple_inclusion.cc ! a6ed1dc8a599a942524d06e38fdab7fa libstdc++-v3/testsuite/17_intro/names.cc 1ecf512a3207128b09bdc697eb76bf54 libstdc++-v3/testsuite/17_intro/shared_with_static_deps.cc 4650080bee2b638659331760fac18f8f libstdc++-v3/testsuite/17_intro/static.cc e3a0c14e0c45e07f34f1b51ddef6d97e libstdc++-v3/testsuite/17_intro/tag_type_explicit_ctor.cc --- 92741,92747 ---- 938a022059e1c731076e20aa462db76a libstdc++-v3/testsuite/17_intro/headers/c++2020/operator_names.cc 5db28641fcfeb9fa540357a1c2521c41 libstdc++-v3/testsuite/17_intro/headers/c++2020/stdc++.cc 5f2b3fa82c579ba8031e1e4bb6f6e2f1 libstdc++-v3/testsuite/17_intro/headers/c++2020/stdc++_multiple_inclusion.cc ! e128988c0ca3b369ea5412b988869905 libstdc++-v3/testsuite/17_intro/names.cc 1ecf512a3207128b09bdc697eb76bf54 libstdc++-v3/testsuite/17_intro/shared_with_static_deps.cc 4650080bee2b638659331760fac18f8f libstdc++-v3/testsuite/17_intro/static.cc e3a0c14e0c45e07f34f1b51ddef6d97e libstdc++-v3/testsuite/17_intro/tag_type_explicit_ctor.cc *************** db32112e54ea8e4dbe46c755dff95b57 libstd *** 92295,92300 **** --- 92765,92771 ---- 18de4f42ca6f16c946c1bbb3d29ffbcc libstdc++-v3/testsuite/18_support/byte/global_neg.cc 7a4acafee1f39b7bf208cbc3ea2e2017 libstdc++-v3/testsuite/18_support/byte/ops.cc a5cccbcdb974939ec18d1237dbe67f75 libstdc++-v3/testsuite/18_support/byte/requirements.cc + b4c65970a3b96295ca66e5a7376e3d19 libstdc++-v3/testsuite/18_support/comparisons/algorithms/fallback.cc 48252aafc471ab903fcab8ac534384a9 libstdc++-v3/testsuite/18_support/comparisons/algorithms/partial_order.cc bc4a5123f0f0167549a2c07e2d825781 libstdc++-v3/testsuite/18_support/comparisons/algorithms/strong_order.cc bc9693a074f3b17f185776f01dd57a59 libstdc++-v3/testsuite/18_support/comparisons/algorithms/weak_order.cc *************** b10b68893f089a766cb63d3051f0bf71 libstd *** 92309,92319 **** --- 92780,92792 ---- 5cdd75861a32bd4ed5df43b1872ca6d4 libstdc++-v3/testsuite/18_support/destroying_delete.cc 6f3250008a90087fa8410fb32c865f33 libstdc++-v3/testsuite/18_support/exception/38732.cc 16d11b5a00099dc2d55f3284734931ff libstdc++-v3/testsuite/18_support/exception/what.cc + 8a3e4fc86620d59634749ffecd317237 libstdc++-v3/testsuite/18_support/exception_ptr/103630.cc af4850a50ee3e9d2b26adc695f567ddf libstdc++-v3/testsuite/18_support/exception_ptr/40296.cc 36b5a0ff3ccb36afd9d98ca987b3b77a libstdc++-v3/testsuite/18_support/exception_ptr/60612-terminate.cc 97b0d110d1131f97d82c79edf153433a libstdc++-v3/testsuite/18_support/exception_ptr/60612-unexpected.cc 169245776d64df42016c3097c27dd0f6 libstdc++-v3/testsuite/18_support/exception_ptr/62258.cc f053b297ddce892d803382be6fbbc52e libstdc++-v3/testsuite/18_support/exception_ptr/64241.cc + 8907da30a344e71f1227eec1fae72f2b libstdc++-v3/testsuite/18_support/exception_ptr/96657.cc e1a6f0f34f8d852103b03cb179ed4f1b libstdc++-v3/testsuite/18_support/exception_ptr/current_exception.cc b5e0ca6b0ed66cb6668bfaf993035134 libstdc++-v3/testsuite/18_support/exception_ptr/lifespan.cc 353017452a231fc907f5c534fb782f3a libstdc++-v3/testsuite/18_support/exception_ptr/make_exception_ptr.cc *************** c8b98692b1d8338dc6989c877063436d libstd *** 92413,92418 **** --- 92886,92892 ---- 14a087da6e4839662195d18a83851ebb libstdc++-v3/testsuite/18_support/uncaught_exception/14026.cc 5f8120eb294c62379a8c649236297579 libstdc++-v3/testsuite/18_support/uncaught_exceptions/uncaught_exceptions.cc 406f1d6ceaa144480a51b7f4c4e80796 libstdc++-v3/testsuite/18_support/unexpected_handler.cc + e76078fa52225514dc89f9b1116c07ff libstdc++-v3/testsuite/19_diagnostics/error_category/102425.cc 90841085f4ccce1ff739ad14bf7f9a3a libstdc++-v3/testsuite/19_diagnostics/error_category/cons/copy_neg.cc ccd7ef4024642e9a79db00c9f587b205 libstdc++-v3/testsuite/19_diagnostics/error_category/cons/default.cc 49ee175042a485bb4be55bc506cb6e44 libstdc++-v3/testsuite/19_diagnostics/error_category/generic_category.cc *************** caa162219e7b950e53cb567b120877b6 libstd *** 92513,92519 **** 2f81ef575bb4fe24f526288c72dfb76d libstdc++-v3/testsuite/20_util/allocator/requirements/explicit_instantiation/1.cc fb2ca28ba9f9d2f0ac0980807dd1e6dd libstdc++-v3/testsuite/20_util/allocator/requirements/typedefs.cc e79c3084f9ee0277e3f573c2f9515006 libstdc++-v3/testsuite/20_util/allocator/requirements/typedefs_c++20.cc ! bcf39341f037ced8b49552a23d02561a libstdc++-v3/testsuite/20_util/allocator/void.cc 2286082efef191324836731d498ba92d libstdc++-v3/testsuite/20_util/allocator_traits/header-2.cc e9eda040789aad540dbf32107596d85d libstdc++-v3/testsuite/20_util/allocator_traits/header.cc 8cfc4634911a9c068b844e512af79334 libstdc++-v3/testsuite/20_util/allocator_traits/members/92878_92947.cc --- 92987,92993 ---- 2f81ef575bb4fe24f526288c72dfb76d libstdc++-v3/testsuite/20_util/allocator/requirements/explicit_instantiation/1.cc fb2ca28ba9f9d2f0ac0980807dd1e6dd libstdc++-v3/testsuite/20_util/allocator/requirements/typedefs.cc e79c3084f9ee0277e3f573c2f9515006 libstdc++-v3/testsuite/20_util/allocator/requirements/typedefs_c++20.cc ! 48bf8209e633ab98c9fc5ced776596b8 libstdc++-v3/testsuite/20_util/allocator/void.cc 2286082efef191324836731d498ba92d libstdc++-v3/testsuite/20_util/allocator_traits/header-2.cc e9eda040789aad540dbf32107596d85d libstdc++-v3/testsuite/20_util/allocator_traits/header.cc 8cfc4634911a9c068b844e512af79334 libstdc++-v3/testsuite/20_util/allocator_traits/members/92878_92947.cc *************** b1b6d23d91573b154882032ee62cbf3a libstd *** 92529,92534 **** --- 93003,93009 ---- 2d16da8da31aa4d29fbe7bbd2444865c libstdc++-v3/testsuite/20_util/allocator_traits/requirements/explicit_instantiation.cc 66b0938877eeb82fa3706571fa76acda libstdc++-v3/testsuite/20_util/allocator_traits/requirements/typedefs.cc 63a3f3ba9d5697cc124b776b2e9f8ce2 libstdc++-v3/testsuite/20_util/allocator_traits/requirements/typedefs2.cc + 53d95c7e7934ce41b96d0a86033b6a99 libstdc++-v3/testsuite/20_util/any/102894.cc 04e46d1fdc51173f35ffb0a91bfd4f46 libstdc++-v3/testsuite/20_util/any/assign/1.cc 7ea0fdd68cf42e40801117baabb2d4dc libstdc++-v3/testsuite/20_util/any/assign/2.cc ec72c9d7d5d626cf7190ea50036978dd libstdc++-v3/testsuite/20_util/any/assign/92878_92947.cc *************** ec72c9d7d5d626cf7190ea50036978dd libstd *** 92536,92541 **** --- 93011,93017 ---- 7f21e2f757788bb23667efe831ebc444 libstdc++-v3/testsuite/20_util/any/assign/exception.cc db51723dd90388df304ad3a67ae1aad7 libstdc++-v3/testsuite/20_util/any/assign/self.cc bbbd4d2e9b5f0823bf51676792c96e35 libstdc++-v3/testsuite/20_util/any/cons/1.cc + 097d518046e23537949952c936ddfa1c libstdc++-v3/testsuite/20_util/any/cons/101034.cc a33df4bf452704704b2839b56ff491be libstdc++-v3/testsuite/20_util/any/cons/2.cc d6c4d82ae1acc5c41fbb1b02392acc91 libstdc++-v3/testsuite/20_util/any/cons/90415.cc 98760b39632ecc9ad91e48d7c8f0e10c libstdc++-v3/testsuite/20_util/any/cons/92156.cc *************** b9e214d61e944f0fb73c3ae8e8da40f4 libstd *** 92602,92607 **** --- 93078,93084 ---- 90dd1835d801f9e51f64ee03d436e5e3 libstdc++-v3/testsuite/20_util/bind/refqual.cc ef5577b2c736617a885751f6fa935d72 libstdc++-v3/testsuite/20_util/bind/socket.cc 4ccb86c49fae643bcc046cf9f71e9000 libstdc++-v3/testsuite/20_util/bool_constant/requirements.cc + 7b45f3d65401a77e7c8feec605d0e13f libstdc++-v3/testsuite/20_util/common_reference/100894.cc 46b2a739be2dd1eaa1990f765d027afc libstdc++-v3/testsuite/20_util/common_reference/requirements/alias_decl.cc bb7706cf339f658c3b85d827a420b990 libstdc++-v3/testsuite/20_util/common_reference/requirements/explicit_instantiation.cc 243e00f1598d2743bef44cdc7cc6a52a libstdc++-v3/testsuite/20_util/common_reference/requirements/typedefs.cc *************** ba621ca1698a3fbdc9e7182e2293e655 libstd *** 92683,92698 **** d7b9fec07e0327a260e496e80eae0625 libstdc++-v3/testsuite/20_util/forward/1_neg.cc 3801f736f0a43e6cefa9b1869e204d23 libstdc++-v3/testsuite/20_util/forward/a.cc 924c6688306ac96da5af39706dbb9e46 libstdc++-v3/testsuite/20_util/forward/b.cc ! 72b8cddb5b7ca4329f43e11b4eb4f7e0 libstdc++-v3/testsuite/20_util/forward/c_neg.cc 1062612a7e42655e89c8e08c9ecd3291 libstdc++-v3/testsuite/20_util/forward/d.cc 5f9a0241d2cd0d0a5662c0693f94529d libstdc++-v3/testsuite/20_util/forward/e.cc ! 3e6d8a18a374937d450810abfac08b84 libstdc++-v3/testsuite/20_util/forward/f_neg.cc a847d7bf59b80fb7f6ee1b44680ae87f libstdc++-v3/testsuite/20_util/forward/requirements/explicit_instantiation.cc 69cecf714fd791d7efdc890c471c0838 libstdc++-v3/testsuite/20_util/from_chars/1.cc 0b4124f907207c84a1e99bace0079d95 libstdc++-v3/testsuite/20_util/from_chars/1_c++20_neg.cc 5fc62381dffd100120f1517d02a10b59 libstdc++-v3/testsuite/20_util/from_chars/1_neg.cc 26ae2c32be616eacc364a5c7c72a7980 libstdc++-v3/testsuite/20_util/from_chars/2.cc ! 22402aea68aeaabd9a54e64f50a77161 libstdc++-v3/testsuite/20_util/from_chars/3.cc eca14c465350941ea6aabc8833bd8cda libstdc++-v3/testsuite/20_util/from_chars/compare.cc 3b7efddb52461f79b6c265a9c09cb657 libstdc++-v3/testsuite/20_util/from_chars/requirements.cc d0115a8f8599b0626c6ddedbc38c67c8 libstdc++-v3/testsuite/20_util/function/1.cc --- 93160,93175 ---- d7b9fec07e0327a260e496e80eae0625 libstdc++-v3/testsuite/20_util/forward/1_neg.cc 3801f736f0a43e6cefa9b1869e204d23 libstdc++-v3/testsuite/20_util/forward/a.cc 924c6688306ac96da5af39706dbb9e46 libstdc++-v3/testsuite/20_util/forward/b.cc ! 2c941c7f2dac3154e5f1ed0cc24d412e libstdc++-v3/testsuite/20_util/forward/c_neg.cc 1062612a7e42655e89c8e08c9ecd3291 libstdc++-v3/testsuite/20_util/forward/d.cc 5f9a0241d2cd0d0a5662c0693f94529d libstdc++-v3/testsuite/20_util/forward/e.cc ! 22fa2b4f88e80eda8734506d05795c0d libstdc++-v3/testsuite/20_util/forward/f_neg.cc a847d7bf59b80fb7f6ee1b44680ae87f libstdc++-v3/testsuite/20_util/forward/requirements/explicit_instantiation.cc 69cecf714fd791d7efdc890c471c0838 libstdc++-v3/testsuite/20_util/from_chars/1.cc 0b4124f907207c84a1e99bace0079d95 libstdc++-v3/testsuite/20_util/from_chars/1_c++20_neg.cc 5fc62381dffd100120f1517d02a10b59 libstdc++-v3/testsuite/20_util/from_chars/1_neg.cc 26ae2c32be616eacc364a5c7c72a7980 libstdc++-v3/testsuite/20_util/from_chars/2.cc ! 8c37686e5fc64122c1bc1897e614f755 libstdc++-v3/testsuite/20_util/from_chars/3.cc eca14c465350941ea6aabc8833bd8cda libstdc++-v3/testsuite/20_util/from_chars/compare.cc 3b7efddb52461f79b6c265a9c09cb657 libstdc++-v3/testsuite/20_util/from_chars/requirements.cc d0115a8f8599b0626c6ddedbc38c67c8 libstdc++-v3/testsuite/20_util/function/1.cc *************** f57943bfaeb5cd5fd76002ff5980bc9c libstd *** 92801,92807 **** b6ab03ee1943c3d7827892fa1098af7a libstdc++-v3/testsuite/20_util/headers/functional/synopsis.cc 89604961e7393da1807bbdee8359687c libstdc++-v3/testsuite/20_util/headers/functional/types_std_c++0x.cc 8dbb3359128fa78576f51d9bea0f16e1 libstdc++-v3/testsuite/20_util/headers/functional/using_namespace_std_placeholders.cc ! bd69522e6b7c808ed85b241e2110563a libstdc++-v3/testsuite/20_util/headers/memory/synopsis.cc 147acdc85e4e420bdc7162ffc131be7a libstdc++-v3/testsuite/20_util/headers/memory/types_std_c++0x.cc 099f3581a642ed737f203cbbbb1b2781 libstdc++-v3/testsuite/20_util/headers/type_traits/std_c++0x_neg.cc b54db1364b61d665a6a7539186bf63e3 libstdc++-v3/testsuite/20_util/headers/type_traits/types_std_c++0x.cc --- 93278,93284 ---- b6ab03ee1943c3d7827892fa1098af7a libstdc++-v3/testsuite/20_util/headers/functional/synopsis.cc 89604961e7393da1807bbdee8359687c libstdc++-v3/testsuite/20_util/headers/functional/types_std_c++0x.cc 8dbb3359128fa78576f51d9bea0f16e1 libstdc++-v3/testsuite/20_util/headers/functional/using_namespace_std_placeholders.cc ! 46882f1b655108d25e0e2e20189744ef libstdc++-v3/testsuite/20_util/headers/memory/synopsis.cc 147acdc85e4e420bdc7162ffc131be7a libstdc++-v3/testsuite/20_util/headers/memory/types_std_c++0x.cc 099f3581a642ed737f203cbbbb1b2781 libstdc++-v3/testsuite/20_util/headers/type_traits/std_c++0x_neg.cc b54db1364b61d665a6a7539186bf63e3 libstdc++-v3/testsuite/20_util/headers/type_traits/types_std_c++0x.cc *************** e18d36a230428a7572b590bf54b7a9b6 libstd *** 92813,92818 **** --- 93290,93296 ---- 7e64fe4a6ed4a3c8dc6ae6d0494db4a6 libstdc++-v3/testsuite/20_util/integer_comparisons/2.cc 6e287affe93cfe4a39ef5f63086987cd libstdc++-v3/testsuite/20_util/integer_comparisons/equal.cc e7861cd2108a9e32ea32e8fe41c5cea3 libstdc++-v3/testsuite/20_util/integer_comparisons/equal_neg.cc + c6250601e3e7183f7bd3726fdd8c1203 libstdc++-v3/testsuite/20_util/integer_comparisons/greater.cc f46ed6bcbb862049b56bedbda856cd54 libstdc++-v3/testsuite/20_util/integer_comparisons/greater_equal.cc c20b3051693d1c412fb0db968908e9c2 libstdc++-v3/testsuite/20_util/integer_comparisons/greater_equal_neg.cc 3be557902355e2dfc15247896bf93b93 libstdc++-v3/testsuite/20_util/integer_comparisons/greater_neg.cc *************** bc3c097c0044e4d458fbde5483bcd850 libstd *** 93128,93133 **** --- 93606,93612 ---- 2f39cbdf831d3dec2fbd34b2ff411301 libstdc++-v3/testsuite/20_util/optional/77288.cc 5361a28b1321ad89bf07b0ba11faf27a libstdc++-v3/testsuite/20_util/optional/84601.cc b4fe16f770f77abfd8cc440689c39193 libstdc++-v3/testsuite/20_util/optional/assignment/1.cc + 5f2a36dc053d6d68a81135df84e7f4cb libstdc++-v3/testsuite/20_util/optional/assignment/100982.cc 8a2900c696ba13fce2d1f6dcb88db158 libstdc++-v3/testsuite/20_util/optional/assignment/2.cc 7ead99f9dddd8f0e86d1b00ae65b73dc libstdc++-v3/testsuite/20_util/optional/assignment/3.cc 499b4151087e968c6999e7d220e37033 libstdc++-v3/testsuite/20_util/optional/assignment/4.cc *************** c076e2060c0c15a3024d2a3010ba6200 libstd *** 93182,93188 **** f1e057c8c2f5d65f63aad8e3bbb5d958 libstdc++-v3/testsuite/20_util/optional/relops/6.cc 465edab583fbc24d2fa008a963c8bdca libstdc++-v3/testsuite/20_util/optional/relops/7.cc 1f4553e71f05a89fb2f5c9ec4ebd5ba1 libstdc++-v3/testsuite/20_util/optional/relops/96269.cc ! d3f7525f0f4ea547d2a6c7da8d9ba891 libstdc++-v3/testsuite/20_util/optional/relops/three_way.cc 9c8fa3730d54f1fda78052267b4c1307 libstdc++-v3/testsuite/20_util/optional/requirements.cc 7e7436a01a01b453111cc490dd95b452 libstdc++-v3/testsuite/20_util/optional/swap/1.cc cf6e653bde082ac86ab528416d9229e0 libstdc++-v3/testsuite/20_util/optional/swap/2.cc --- 93661,93667 ---- f1e057c8c2f5d65f63aad8e3bbb5d958 libstdc++-v3/testsuite/20_util/optional/relops/6.cc 465edab583fbc24d2fa008a963c8bdca libstdc++-v3/testsuite/20_util/optional/relops/7.cc 1f4553e71f05a89fb2f5c9ec4ebd5ba1 libstdc++-v3/testsuite/20_util/optional/relops/96269.cc ! f863d26449f53cc4bdecfb326251ee25 libstdc++-v3/testsuite/20_util/optional/relops/three_way.cc 9c8fa3730d54f1fda78052267b4c1307 libstdc++-v3/testsuite/20_util/optional/requirements.cc 7e7436a01a01b453111cc490dd95b452 libstdc++-v3/testsuite/20_util/optional/swap/1.cc cf6e653bde082ac86ab528416d9229e0 libstdc++-v3/testsuite/20_util/optional/swap/2.cc *************** a545c7c7a6b52d41a0c2234d630c6ac6 libstd *** 93320,93326 **** 8daf2d919b1ef09c3e9be2eb757822a0 libstdc++-v3/testsuite/20_util/scoped_allocator/3.cc 7e9f8edf716e9726b9acd264006fb719 libstdc++-v3/testsuite/20_util/scoped_allocator/65279.cc d57ac9a75489a1553c016ba94d28a328 libstdc++-v3/testsuite/20_util/scoped_allocator/69114.cc ! 22a2652214e57ccf79e5bc85157eb03b libstdc++-v3/testsuite/20_util/scoped_allocator/69293_neg.cc 291d8dcd9cf03f2ca3082a179dd700f3 libstdc++-v3/testsuite/20_util/scoped_allocator/construct_pair.cc 7e450dffd1553d318cb30d9b69e5747e libstdc++-v3/testsuite/20_util/scoped_allocator/construct_pair_c++2a.cc 1b6d4012b69fb94779f5c6ec95a05c9c libstdc++-v3/testsuite/20_util/scoped_allocator/dr2586.cc --- 93799,93805 ---- 8daf2d919b1ef09c3e9be2eb757822a0 libstdc++-v3/testsuite/20_util/scoped_allocator/3.cc 7e9f8edf716e9726b9acd264006fb719 libstdc++-v3/testsuite/20_util/scoped_allocator/65279.cc d57ac9a75489a1553c016ba94d28a328 libstdc++-v3/testsuite/20_util/scoped_allocator/69114.cc ! 929ace9963adc50f533b1745d065aa52 libstdc++-v3/testsuite/20_util/scoped_allocator/69293_neg.cc 291d8dcd9cf03f2ca3082a179dd700f3 libstdc++-v3/testsuite/20_util/scoped_allocator/construct_pair.cc 7e450dffd1553d318cb30d9b69e5747e libstdc++-v3/testsuite/20_util/scoped_allocator/construct_pair_c++2a.cc 1b6d4012b69fb94779f5c6ec95a05c9c libstdc++-v3/testsuite/20_util/scoped_allocator/dr2586.cc *************** c2b763ad43aa9efa5e46e66bd487a74e libstd *** 93374,93386 **** 2c977d02a79cd38d24bc7cf9bbab4a88 libstdc++-v3/testsuite/20_util/shared_ptr/cons/deduction.cc a7771554c6ebc6b0992d4ed4f7b43e34 libstdc++-v3/testsuite/20_util/shared_ptr/cons/default.cc 4f1ed19b65176bb610bc821407f41194 libstdc++-v3/testsuite/20_util/shared_ptr/cons/lwg2802.cc ea992ddc70a48e7e94e6c7a7a6d32f7a libstdc++-v3/testsuite/20_util/shared_ptr/cons/move.cc 81003090b3afeb2e7e1bc746de87ba16 libstdc++-v3/testsuite/20_util/shared_ptr/cons/noexcept_move_construct.cc 9d3d523a2c9c7be7f386cfcc565fe8b4 libstdc++-v3/testsuite/20_util/shared_ptr/cons/nullptr.cc 2b104f708008aa35c2a79dd6e493dae7 libstdc++-v3/testsuite/20_util/shared_ptr/cons/pointer.cc daffe0925527ea52fbf019624de9769e libstdc++-v3/testsuite/20_util/shared_ptr/cons/unique_ptr.cc 66dbfe167c84be6d75f6d3b3130608bc libstdc++-v3/testsuite/20_util/shared_ptr/cons/unique_ptr_array.cc ! a5e4a599be6583ef00cc0b64eb9b0699 libstdc++-v3/testsuite/20_util/shared_ptr/cons/unique_ptr_deleter.cc 7c6f1ef3418dfde9c6fb8db0bc9d9edd libstdc++-v3/testsuite/20_util/shared_ptr/cons/unique_ptr_deleter_ref_1.cc 335c657fd37b8853b3806bd0a7f6ee27 libstdc++-v3/testsuite/20_util/shared_ptr/cons/unique_ptr_deleter_ref_2.cc 60672c32af44fd37637b845252961c07 libstdc++-v3/testsuite/20_util/shared_ptr/cons/unique_ptr_neg.cc --- 93853,93866 ---- 2c977d02a79cd38d24bc7cf9bbab4a88 libstdc++-v3/testsuite/20_util/shared_ptr/cons/deduction.cc a7771554c6ebc6b0992d4ed4f7b43e34 libstdc++-v3/testsuite/20_util/shared_ptr/cons/default.cc 4f1ed19b65176bb610bc821407f41194 libstdc++-v3/testsuite/20_util/shared_ptr/cons/lwg2802.cc + 6ee836f3d8446334ad0856f8f79f7c0c libstdc++-v3/testsuite/20_util/shared_ptr/cons/lwg3548.cc ea992ddc70a48e7e94e6c7a7a6d32f7a libstdc++-v3/testsuite/20_util/shared_ptr/cons/move.cc 81003090b3afeb2e7e1bc746de87ba16 libstdc++-v3/testsuite/20_util/shared_ptr/cons/noexcept_move_construct.cc 9d3d523a2c9c7be7f386cfcc565fe8b4 libstdc++-v3/testsuite/20_util/shared_ptr/cons/nullptr.cc 2b104f708008aa35c2a79dd6e493dae7 libstdc++-v3/testsuite/20_util/shared_ptr/cons/pointer.cc daffe0925527ea52fbf019624de9769e libstdc++-v3/testsuite/20_util/shared_ptr/cons/unique_ptr.cc 66dbfe167c84be6d75f6d3b3130608bc libstdc++-v3/testsuite/20_util/shared_ptr/cons/unique_ptr_array.cc ! d42514a26ef1aa778041584323b47dc7 libstdc++-v3/testsuite/20_util/shared_ptr/cons/unique_ptr_deleter.cc 7c6f1ef3418dfde9c6fb8db0bc9d9edd libstdc++-v3/testsuite/20_util/shared_ptr/cons/unique_ptr_deleter_ref_1.cc 335c657fd37b8853b3806bd0a7f6ee27 libstdc++-v3/testsuite/20_util/shared_ptr/cons/unique_ptr_deleter_ref_2.cc 60672c32af44fd37637b845252961c07 libstdc++-v3/testsuite/20_util/shared_ptr/cons/unique_ptr_neg.cc *************** c182003d94c08defbc552d0de3254588 libstd *** 93392,93397 **** --- 93872,93878 ---- 12e0a6c910b2c80352ad60ae399fccdc libstdc++-v3/testsuite/20_util/shared_ptr/creation/58594.cc 1514c48e723c23cfaa863e6073e892d5 libstdc++-v3/testsuite/20_util/shared_ptr/creation/87278.cc 4d951805fbf72d3c6c8deb49157f84b7 libstdc++-v3/testsuite/20_util/shared_ptr/creation/92878_92947.cc + 6620dd086dc407f56b904aacbc2e65f9 libstdc++-v3/testsuite/20_util/shared_ptr/creation/99006.cc 0f7a2cc3603d07ad3bd6651244b5ed77 libstdc++-v3/testsuite/20_util/shared_ptr/creation/alloc.cc e539f5f83cfe49f359bc0a681baf6622 libstdc++-v3/testsuite/20_util/shared_ptr/creation/alloc_min.cc 5508122e494da3b2c37554471a4c7df8 libstdc++-v3/testsuite/20_util/shared_ptr/creation/dr402.cc *************** fe2f5bb3e3f103441f10f826d1162fa1 libstd *** 93514,93521 **** a061192e72723c3beebcb4b5672ebf1d libstdc++-v3/testsuite/20_util/tuple/comparison_operators/35480_neg.cc 8955d9a55acb24bb1890bf86b3b5bef0 libstdc++-v3/testsuite/20_util/tuple/comparison_operators/comparisons.cc b6fbdba96a04634ad390e2306ca313a0 libstdc++-v3/testsuite/20_util/tuple/comparison_operators/constexpr.cc ! adb1ecdbe280954e59283a1f3e0ed1cc libstdc++-v3/testsuite/20_util/tuple/comparison_operators/overloaded.cc dfa1f4320dd7939c91a770e1592f4940 libstdc++-v3/testsuite/20_util/tuple/comparison_operators/three_way.cc c7e3d258ef2cabfad61abae8aa2039d3 libstdc++-v3/testsuite/20_util/tuple/cons/41530.cc 3bb038e71617fed7e02e631160fe5e7e libstdc++-v3/testsuite/20_util/tuple/cons/44487.cc e903395ce4fa31df42f7fbeef9640f16 libstdc++-v3/testsuite/20_util/tuple/cons/45228.cc --- 93995,94003 ---- a061192e72723c3beebcb4b5672ebf1d libstdc++-v3/testsuite/20_util/tuple/comparison_operators/35480_neg.cc 8955d9a55acb24bb1890bf86b3b5bef0 libstdc++-v3/testsuite/20_util/tuple/comparison_operators/comparisons.cc b6fbdba96a04634ad390e2306ca313a0 libstdc++-v3/testsuite/20_util/tuple/comparison_operators/constexpr.cc ! a0fa3abfdb32b80b655f062edee07a3f libstdc++-v3/testsuite/20_util/tuple/comparison_operators/overloaded.cc dfa1f4320dd7939c91a770e1592f4940 libstdc++-v3/testsuite/20_util/tuple/comparison_operators/three_way.cc + 32c154912a091023741fdaa263538a86 libstdc++-v3/testsuite/20_util/tuple/cons/102270.cc c7e3d258ef2cabfad61abae8aa2039d3 libstdc++-v3/testsuite/20_util/tuple/cons/41530.cc 3bb038e71617fed7e02e631160fe5e7e libstdc++-v3/testsuite/20_util/tuple/cons/44487.cc e903395ce4fa31df42f7fbeef9640f16 libstdc++-v3/testsuite/20_util/tuple/cons/45228.cc *************** c9f4e2afbe952dbc89c61a0a46dfefa7 libstd *** 93652,93660 **** 5707587e5d064697287c66b550ee4cf1 libstdc++-v3/testsuite/20_util/unwrap_reference/2.cc 9ae53850fc816ef0b228c260d427e9ee libstdc++-v3/testsuite/20_util/unwrap_reference/3.cc 181317ae8b8cfec7ea7003f10ee47f25 libstdc++-v3/testsuite/20_util/uses_allocator/69114.cc ! dd5f4f08c369d8c361199aec71949b20 libstdc++-v3/testsuite/20_util/uses_allocator/69293_neg.cc 49b89488c5f2f8b08b5afbace59564e7 libstdc++-v3/testsuite/20_util/uses_allocator/92878_92947.cc ! e6c117a9fb5b8a3f48cbfddc12d4d9c9 libstdc++-v3/testsuite/20_util/uses_allocator/cons_neg.cc 2bee549b036390dc8ab271a20439c07a libstdc++-v3/testsuite/20_util/uses_allocator/construction.cc 09515817bf420f2311396b2daf00ffb7 libstdc++-v3/testsuite/20_util/uses_allocator/make_obj.cc ae03c2b43b20cf8ac1bd997bfa0b9ce9 libstdc++-v3/testsuite/20_util/uses_allocator/requirements/explicit_instantiation.cc --- 94134,94142 ---- 5707587e5d064697287c66b550ee4cf1 libstdc++-v3/testsuite/20_util/unwrap_reference/2.cc 9ae53850fc816ef0b228c260d427e9ee libstdc++-v3/testsuite/20_util/unwrap_reference/3.cc 181317ae8b8cfec7ea7003f10ee47f25 libstdc++-v3/testsuite/20_util/uses_allocator/69114.cc ! 189c5d9fc72e2db2af4f5456397d8dd8 libstdc++-v3/testsuite/20_util/uses_allocator/69293_neg.cc 49b89488c5f2f8b08b5afbace59564e7 libstdc++-v3/testsuite/20_util/uses_allocator/92878_92947.cc ! 670720ca5a72e1ccb9eb01b3f0fd7a45 libstdc++-v3/testsuite/20_util/uses_allocator/cons_neg.cc 2bee549b036390dc8ab271a20439c07a libstdc++-v3/testsuite/20_util/uses_allocator/construction.cc 09515817bf420f2311396b2daf00ffb7 libstdc++-v3/testsuite/20_util/uses_allocator/make_obj.cc ae03c2b43b20cf8ac1bd997bfa0b9ce9 libstdc++-v3/testsuite/20_util/uses_allocator/requirements/explicit_instantiation.cc *************** ae03c2b43b20cf8ac1bd997bfa0b9ce9 libstd *** 93662,93667 **** --- 94144,94150 ---- e2d087bbe46ac2f71e8e33716b1b1ef0 libstdc++-v3/testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc ab99753060141e714d16128df6a09f7f libstdc++-v3/testsuite/20_util/uses_allocator/value.cc be2ec0241c6096fe89e619d5e4b3b0e0 libstdc++-v3/testsuite/20_util/variable_templates_for_traits.cc + b9698b5e78dcefad507d6737875a6a1d libstdc++-v3/testsuite/20_util/variant/100384.cc fd102d43e723306496bcc14b30a9565c libstdc++-v3/testsuite/20_util/variant/80165.cc 74d73778562d9c56898d9a74153f032d libstdc++-v3/testsuite/20_util/variant/85183.cc 3e354ee80feda90462e1034e058e156a libstdc++-v3/testsuite/20_util/variant/86874.cc *************** f70f801d8f7fd38bc35b716509cd978a libstd *** 93818,93824 **** 58d0f01f36614a3f57ce9665ea43bac4 libstdc++-v3/testsuite/21_strings/basic_string/modifiers/append/char/2.cc a19ab8b516c84fe3021d0e1a0059fdf8 libstdc++-v3/testsuite/21_strings/basic_string/modifiers/append/char/3.cc d660c7eadea6b90acc7929b79ceac640 libstdc++-v3/testsuite/21_strings/basic_string/modifiers/append/char/4.cc ! 4e48a0fdab5d8c1d6ddab7b3437c2db1 libstdc++-v3/testsuite/21_strings/basic_string/modifiers/append/wchar_t/1.cc 3de45ed20fe6e74794f7c736ab8a3d77 libstdc++-v3/testsuite/21_strings/basic_string/modifiers/append/wchar_t/2.cc dd7e3a5bc9a9db138ca1178165882e2e libstdc++-v3/testsuite/21_strings/basic_string/modifiers/append/wchar_t/3.cc f88732aba1c7079a8b49b2530cf4d211 libstdc++-v3/testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc --- 94301,94307 ---- 58d0f01f36614a3f57ce9665ea43bac4 libstdc++-v3/testsuite/21_strings/basic_string/modifiers/append/char/2.cc a19ab8b516c84fe3021d0e1a0059fdf8 libstdc++-v3/testsuite/21_strings/basic_string/modifiers/append/char/3.cc d660c7eadea6b90acc7929b79ceac640 libstdc++-v3/testsuite/21_strings/basic_string/modifiers/append/char/4.cc ! faf86ef7b0650327278de6745bfe7c4a libstdc++-v3/testsuite/21_strings/basic_string/modifiers/append/wchar_t/1.cc 3de45ed20fe6e74794f7c736ab8a3d77 libstdc++-v3/testsuite/21_strings/basic_string/modifiers/append/wchar_t/2.cc dd7e3a5bc9a9db138ca1178165882e2e libstdc++-v3/testsuite/21_strings/basic_string/modifiers/append/wchar_t/3.cc f88732aba1c7079a8b49b2530cf4d211 libstdc++-v3/testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc *************** a2c48449342796505f7d846c19638dea libstd *** 93886,93892 **** 8e78daca695181b2911b12eb9c546ff7 libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/char/1.cc e80bbcdb6593f7927b634d034ccbadd2 libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/char/13650.cc 36a91bf97a300b3103ed68df11f87bb7 libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/char/2.cc ! 62314438608e78fb7daa48b023e247ca libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/wchar_t/1.cc 4a66353b43f577713e91af002de12f8e libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/wchar_t/13650.cc 9662d95c13692fa1e016541550b0f453 libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc da3f700a53d22cd029a604673e059e11 libstdc++-v3/testsuite/21_strings/basic_string/operations/data/char/1.cc --- 94369,94375 ---- 8e78daca695181b2911b12eb9c546ff7 libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/char/1.cc e80bbcdb6593f7927b634d034ccbadd2 libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/char/13650.cc 36a91bf97a300b3103ed68df11f87bb7 libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/char/2.cc ! 734c7ca68fe6ae75394fcc3c36671949 libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/wchar_t/1.cc 4a66353b43f577713e91af002de12f8e libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/wchar_t/13650.cc 9662d95c13692fa1e016541550b0f453 libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc da3f700a53d22cd029a604673e059e11 libstdc++-v3/testsuite/21_strings/basic_string/operations/data/char/1.cc *************** d6538ea6385e7dd4a6ab240a2ecac922 libstd *** 94001,94007 **** ace5c937694842cefe6072424387859a libstdc++-v3/testsuite/21_strings/basic_string_view/operations/compare/wchar_t/2.cc 1b5c6de2945afeca48c7b822977da518 libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/char/1.cc 16ceba2c37a3889be107f9bfe823957a libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/char/2.cc ! f54a24bb33589161cdad7c2ea6ecb81c libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/char/constexpr.cc 63eb0c19f5cd64545853cb614116564c libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc 97716e48c2c1be0962d6fe6ecd92bc53 libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/wchar_t/2.cc 699938f656ae2337f25e6a2803a209cb libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/wchar_t/constexpr.cc --- 94484,94490 ---- ace5c937694842cefe6072424387859a libstdc++-v3/testsuite/21_strings/basic_string_view/operations/compare/wchar_t/2.cc 1b5c6de2945afeca48c7b822977da518 libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/char/1.cc 16ceba2c37a3889be107f9bfe823957a libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/char/2.cc ! b1371e6818300e68ba50b45b6f7ef0ad libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/char/constexpr.cc 63eb0c19f5cd64545853cb614116564c libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc 97716e48c2c1be0962d6fe6ecd92bc53 libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/wchar_t/2.cc 699938f656ae2337f25e6a2803a209cb libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/wchar_t/constexpr.cc *************** ce69009106a445a659a7ff6a7715adc0 libstd *** 94048,94053 **** --- 94531,94537 ---- 0402e6bff183d3fef4c002fa13910e33 libstdc++-v3/testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char8_t/1.cc 60683e7c98be307d8428a5e3bec0b8c5 libstdc++-v3/testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc bd20cd99185f4830039d5b660b7eb44e libstdc++-v3/testsuite/21_strings/basic_string_view/requirements/traits_neg.cc + 220c5f791ea4b1926cdb483d5db5aac5 libstdc++-v3/testsuite/21_strings/basic_string_view/requirements/trivially_copyable.cc 3eb6d4c15092255482feec49a8b42d3b libstdc++-v3/testsuite/21_strings/basic_string_view/requirements/typedefs.cc 7971a7124069d15af83339a75c311151 libstdc++-v3/testsuite/21_strings/basic_string_view/typedefs.cc e615fb67e3d88e99f516b71c34bdd7ca libstdc++-v3/testsuite/21_strings/basic_string_view/types/1.cc *************** fdf2245a4c16a619ac43126000a74390 libstd *** 94072,94079 **** 185b2a91b2c8cc7f1780168d88bd88e6 libstdc++-v3/testsuite/21_strings/char_traits/requirements/char8_t/65049.cc 925deb64d89008c17a645512575cd6af libstdc++-v3/testsuite/21_strings/char_traits/requirements/char8_t/typedefs.cc ca9bf969377bd19f1fa568790aed6288 libstdc++-v3/testsuite/21_strings/char_traits/requirements/constexpr_functions.cc ! c7c6616f4db18a2553c2ac8ff3a51904 libstdc++-v3/testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc ! a681997789fef6cddd5dda0288af0234 libstdc++-v3/testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc 0048d07d26f4d5b1bffe87cb6d249161 libstdc++-v3/testsuite/21_strings/char_traits/requirements/explicit_instantiation/char/1.cc 014bc70fa5e794eaf8a491b82ffa1fea libstdc++-v3/testsuite/21_strings/char_traits/requirements/explicit_instantiation/char16_t/1.cc 70b0a846ccdc6ca487e4df1636d55bea libstdc++-v3/testsuite/21_strings/char_traits/requirements/explicit_instantiation/char32_t/1.cc --- 94556,94563 ---- 185b2a91b2c8cc7f1780168d88bd88e6 libstdc++-v3/testsuite/21_strings/char_traits/requirements/char8_t/65049.cc 925deb64d89008c17a645512575cd6af libstdc++-v3/testsuite/21_strings/char_traits/requirements/char8_t/typedefs.cc ca9bf969377bd19f1fa568790aed6288 libstdc++-v3/testsuite/21_strings/char_traits/requirements/constexpr_functions.cc ! 248a001441f900ee05abe4d46bc555b8 libstdc++-v3/testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc ! 54d693e45950df63d4700862f27b9c60 libstdc++-v3/testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc 0048d07d26f4d5b1bffe87cb6d249161 libstdc++-v3/testsuite/21_strings/char_traits/requirements/explicit_instantiation/char/1.cc 014bc70fa5e794eaf8a491b82ffa1fea libstdc++-v3/testsuite/21_strings/char_traits/requirements/explicit_instantiation/char16_t/1.cc 70b0a846ccdc6ca487e4df1636d55bea libstdc++-v3/testsuite/21_strings/char_traits/requirements/explicit_instantiation/char32_t/1.cc *************** f70f2f5183b125fb9ed018a723aa3a81 libstd *** 94081,94086 **** --- 94565,94571 ---- b0903b3fb565de884fb64774242e6397 libstdc++-v3/testsuite/21_strings/char_traits/requirements/explicit_instantiation/short/1.cc 30b4223c8d98a558700056b81ee934b7 libstdc++-v3/testsuite/21_strings/char_traits/requirements/explicit_instantiation/wchar_t/1.cc 0d66815781051645a32a463ad9ed907a libstdc++-v3/testsuite/21_strings/char_traits/requirements/short/1.cc + 5eb7812f69f414ef3a35a89be9d4dc1f libstdc++-v3/testsuite/21_strings/char_traits/requirements/version.cc 5b4610ad13fa662d8f977be2f3405ec6 libstdc++-v3/testsuite/21_strings/char_traits/requirements/wchar_t/1.cc 27a6866c884910e46aef7d3e0dad3c04 libstdc++-v3/testsuite/21_strings/char_traits/requirements/wchar_t/65049.cc 558ed86932d22302ad7d9d8fea9d264e libstdc++-v3/testsuite/21_strings/char_traits/requirements/wchar_t/typedefs.cc *************** d874d8e2551c3b5c1491d41be9e863ae libstd *** 94711,94717 **** d08b109eddf387a7a8286634262a8e2f libstdc++-v3/testsuite/23_containers/array/capacity/empty.cc 00ccc0d39a83df248fcdc2025912e714 libstdc++-v3/testsuite/23_containers/array/capacity/max_size.cc d2b634a107d00e054c9f632bb6119d35 libstdc++-v3/testsuite/23_containers/array/capacity/size.cc ! 10b622ca5911b6a6093f9bea6e1225ac libstdc++-v3/testsuite/23_containers/array/comparison_operators/96851.cc e543a1b4ed3c8ac4cdc9532161e3e7be libstdc++-v3/testsuite/23_containers/array/comparison_operators/constexpr.cc 1717e6a723f89b7efdd5c178f20466f4 libstdc++-v3/testsuite/23_containers/array/comparison_operators/equal.cc 0f383f3c0b3ecff922cb961ad297d6a1 libstdc++-v3/testsuite/23_containers/array/comparison_operators/greater.cc --- 95196,95202 ---- d08b109eddf387a7a8286634262a8e2f libstdc++-v3/testsuite/23_containers/array/capacity/empty.cc 00ccc0d39a83df248fcdc2025912e714 libstdc++-v3/testsuite/23_containers/array/capacity/max_size.cc d2b634a107d00e054c9f632bb6119d35 libstdc++-v3/testsuite/23_containers/array/capacity/size.cc ! 698f8bed2b700f4b2072a44bc785071f libstdc++-v3/testsuite/23_containers/array/comparison_operators/96851.cc e543a1b4ed3c8ac4cdc9532161e3e7be libstdc++-v3/testsuite/23_containers/array/comparison_operators/constexpr.cc 1717e6a723f89b7efdd5c178f20466f4 libstdc++-v3/testsuite/23_containers/array/comparison_operators/equal.cc 0f383f3c0b3ecff922cb961ad297d6a1 libstdc++-v3/testsuite/23_containers/array/comparison_operators/greater.cc *************** ebbe06f695fb454c6baac9488460974e libstd *** 94985,94990 **** --- 95470,95476 ---- 81895266077131e4bdc98c746ddd8334 libstdc++-v3/testsuite/23_containers/forward_list/operations/6.cc eb7e3d42e0735daf9323809ae40a5ae4 libstdc++-v3/testsuite/23_containers/forward_list/operations/7.cc 66e798b8858fe7575f1aec586f1985fc libstdc++-v3/testsuite/23_containers/forward_list/operations/90105.cc + 7a189e8b9d2375d727e2175b911806df libstdc++-v3/testsuite/23_containers/forward_list/operations/merge.cc 076354de08627adeb4823f95cc693004 libstdc++-v3/testsuite/23_containers/forward_list/operations/remove_cxx20_return.cc 595f8365cb299cf43444019f522608d0 libstdc++-v3/testsuite/23_containers/forward_list/operations/remove_freed.cc e5cc1378632869725929748ab203dce3 libstdc++-v3/testsuite/23_containers/forward_list/operations/unique_cxx20_return.cc *************** c0680ec2956b0558accb310957d2a3ea libstd *** 95176,95188 **** c2d0bb4b645b2e6b8616fadb390e0795 libstdc++-v3/testsuite/23_containers/map/allocator/minimal.cc c0fed2cc3c9e96e74a32755a01f0cbf0 libstdc++-v3/testsuite/23_containers/map/allocator/move.cc 41e637463c7e5845564edbd388d49cdf libstdc++-v3/testsuite/23_containers/map/allocator/move_assign.cc 265babf8b5d1dd369038b215c8bd2519 libstdc++-v3/testsuite/23_containers/map/allocator/noexcept.cc 9cbad073e57d7c29e0f293730d0ee890 libstdc++-v3/testsuite/23_containers/map/allocator/swap.cc 3e110dc4819394a87d9ccc877d4dddfb libstdc++-v3/testsuite/23_containers/map/capacity/29134.cc 529756ae90a32204608c2c98fd51f6e7 libstdc++-v3/testsuite/23_containers/map/cons/deduction.cc 51d6c9810bc3ef5be19d798078c59f83 libstdc++-v3/testsuite/23_containers/map/cons/moveable.cc 70e65d98a12560fd67d687962a1c7a0f libstdc++-v3/testsuite/23_containers/map/cons/noexcept_default_construct.cc ! 3a2617635339f35e024a35ad9b6fbdd6 libstdc++-v3/testsuite/23_containers/map/cons/noexcept_move_construct.cc c473169114d7088fd545ba3c65015387 libstdc++-v3/testsuite/23_containers/map/debug/60499.cc cc623baaf15271320b23aae0cbb6e7a2 libstdc++-v3/testsuite/23_containers/map/debug/construct1_neg.cc b976b5e429a34831b5c5e90548077f17 libstdc++-v3/testsuite/23_containers/map/debug/construct2_neg.cc --- 95662,95675 ---- c2d0bb4b645b2e6b8616fadb390e0795 libstdc++-v3/testsuite/23_containers/map/allocator/minimal.cc c0fed2cc3c9e96e74a32755a01f0cbf0 libstdc++-v3/testsuite/23_containers/map/allocator/move.cc 41e637463c7e5845564edbd388d49cdf libstdc++-v3/testsuite/23_containers/map/allocator/move_assign.cc + 43006f9b1a0b3a83871fa15d830ea9ac libstdc++-v3/testsuite/23_containers/map/allocator/move_cons.cc 265babf8b5d1dd369038b215c8bd2519 libstdc++-v3/testsuite/23_containers/map/allocator/noexcept.cc 9cbad073e57d7c29e0f293730d0ee890 libstdc++-v3/testsuite/23_containers/map/allocator/swap.cc 3e110dc4819394a87d9ccc877d4dddfb libstdc++-v3/testsuite/23_containers/map/capacity/29134.cc 529756ae90a32204608c2c98fd51f6e7 libstdc++-v3/testsuite/23_containers/map/cons/deduction.cc 51d6c9810bc3ef5be19d798078c59f83 libstdc++-v3/testsuite/23_containers/map/cons/moveable.cc 70e65d98a12560fd67d687962a1c7a0f libstdc++-v3/testsuite/23_containers/map/cons/noexcept_default_construct.cc ! 1b0823b7e4e2ae3a7680de7a2421f4d7 libstdc++-v3/testsuite/23_containers/map/cons/noexcept_move_construct.cc c473169114d7088fd545ba3c65015387 libstdc++-v3/testsuite/23_containers/map/debug/60499.cc cc623baaf15271320b23aae0cbb6e7a2 libstdc++-v3/testsuite/23_containers/map/debug/construct1_neg.cc b976b5e429a34831b5c5e90548077f17 libstdc++-v3/testsuite/23_containers/map/debug/construct2_neg.cc *************** d11a888bae3f037290b47ffbef818a89 libstd *** 95266,95278 **** b137dad333a9a751de8fd7c9a90372db libstdc++-v3/testsuite/23_containers/multimap/allocator/minimal.cc 16866ecea96f81a3003b6d8c13d69879 libstdc++-v3/testsuite/23_containers/multimap/allocator/move.cc 8e26f395b1cc522dc2d3abf45a1854d2 libstdc++-v3/testsuite/23_containers/multimap/allocator/move_assign.cc e3c3c5ee3a454aba44531aad1a49e46c libstdc++-v3/testsuite/23_containers/multimap/allocator/noexcept.cc 79bd2dcef2640bb7172875f4c7953c16 libstdc++-v3/testsuite/23_containers/multimap/allocator/swap.cc b2cac9ae86c6e7a14f499e1e41b7dff7 libstdc++-v3/testsuite/23_containers/multimap/capacity/29134.cc f34b9568e5ff78a9c1f70d5f056c24c7 libstdc++-v3/testsuite/23_containers/multimap/cons/deduction.cc e53d49643473f1313a3050ce7125366f libstdc++-v3/testsuite/23_containers/multimap/cons/moveable.cc 7954b3dd141ce517ddc6bcf541d943be libstdc++-v3/testsuite/23_containers/multimap/cons/noexcept_default_construct.cc ! e386755ca174946b8a04b4a6c6af60da libstdc++-v3/testsuite/23_containers/multimap/cons/noexcept_move_construct.cc f224d4e669119c54cb37bed04eac4896 libstdc++-v3/testsuite/23_containers/multimap/debug/60499.cc 4cc88cacf1f8b8a432519583dfaff9f5 libstdc++-v3/testsuite/23_containers/multimap/debug/construct1_neg.cc fc381f3551fe92e514b09cc3b3b3796e libstdc++-v3/testsuite/23_containers/multimap/debug/construct2_neg.cc --- 95753,95766 ---- b137dad333a9a751de8fd7c9a90372db libstdc++-v3/testsuite/23_containers/multimap/allocator/minimal.cc 16866ecea96f81a3003b6d8c13d69879 libstdc++-v3/testsuite/23_containers/multimap/allocator/move.cc 8e26f395b1cc522dc2d3abf45a1854d2 libstdc++-v3/testsuite/23_containers/multimap/allocator/move_assign.cc + 6b228284e36f939ee229675da47652f2 libstdc++-v3/testsuite/23_containers/multimap/allocator/move_cons.cc e3c3c5ee3a454aba44531aad1a49e46c libstdc++-v3/testsuite/23_containers/multimap/allocator/noexcept.cc 79bd2dcef2640bb7172875f4c7953c16 libstdc++-v3/testsuite/23_containers/multimap/allocator/swap.cc b2cac9ae86c6e7a14f499e1e41b7dff7 libstdc++-v3/testsuite/23_containers/multimap/capacity/29134.cc f34b9568e5ff78a9c1f70d5f056c24c7 libstdc++-v3/testsuite/23_containers/multimap/cons/deduction.cc e53d49643473f1313a3050ce7125366f libstdc++-v3/testsuite/23_containers/multimap/cons/moveable.cc 7954b3dd141ce517ddc6bcf541d943be libstdc++-v3/testsuite/23_containers/multimap/cons/noexcept_default_construct.cc ! 4232f965b2d51135873ff54b6509fd35 libstdc++-v3/testsuite/23_containers/multimap/cons/noexcept_move_construct.cc f224d4e669119c54cb37bed04eac4896 libstdc++-v3/testsuite/23_containers/multimap/debug/60499.cc 4cc88cacf1f8b8a432519583dfaff9f5 libstdc++-v3/testsuite/23_containers/multimap/debug/construct1_neg.cc fc381f3551fe92e514b09cc3b3b3796e libstdc++-v3/testsuite/23_containers/multimap/debug/construct2_neg.cc *************** dd63ff5547bd3f8932a7dd1f5c40d3b3 libstd *** 95335,95353 **** b97023dae8d2f3693aa59d2a444f252b libstdc++-v3/testsuite/23_containers/multiset/48101-3_neg.cc d60b50bb57d19358f4bb7678d2dc46d8 libstdc++-v3/testsuite/23_containers/multiset/48101_neg.cc ea42a04e7691f371565d0a9b66135f37 libstdc++-v3/testsuite/23_containers/multiset/58764.cc b867ec437a9bd969533a59f00982760f libstdc++-v3/testsuite/23_containers/multiset/allocator/copy.cc 5a59273dab35f9e21d05377e7c7c36ac libstdc++-v3/testsuite/23_containers/multiset/allocator/copy_assign.cc e11de5be6c59c7433654b55ccbd19ed7 libstdc++-v3/testsuite/23_containers/multiset/allocator/init-list.cc 41028de807c520acbc88540038e1d712 libstdc++-v3/testsuite/23_containers/multiset/allocator/minimal.cc 55fc85756f64af1889bc1f14ca787eb3 libstdc++-v3/testsuite/23_containers/multiset/allocator/move.cc 25af496b7837657fc1293c331d364bc0 libstdc++-v3/testsuite/23_containers/multiset/allocator/move_assign.cc 96a185443eb1d702323165e4e01530c2 libstdc++-v3/testsuite/23_containers/multiset/allocator/noexcept.cc 942c2cfb450e53df9903722c5493040a libstdc++-v3/testsuite/23_containers/multiset/allocator/swap.cc 6d153c8ac11517b627dc7da5c52e5b4f libstdc++-v3/testsuite/23_containers/multiset/capacity/29134.cc a0f00b99adcaf730ba73537486b2a2b3 libstdc++-v3/testsuite/23_containers/multiset/cons/deduction.cc 0a42886ca1a34c85bc69cf0c96affdc1 libstdc++-v3/testsuite/23_containers/multiset/cons/moveable.cc 3b66f506c08cf105326f3279d17c3b9e libstdc++-v3/testsuite/23_containers/multiset/cons/noexcept_default_construct.cc ! 14b894a38cdf0845747c617049b55ec3 libstdc++-v3/testsuite/23_containers/multiset/cons/noexcept_move_construct.cc 7b36a81d023cf6569bb44a9babfe2ef2 libstdc++-v3/testsuite/23_containers/multiset/debug/60499.cc 23a9cf66d279557289f0d0deea68fc5d libstdc++-v3/testsuite/23_containers/multiset/debug/construct1_neg.cc 79415fd448110734a6b3b8ee67f4d53f libstdc++-v3/testsuite/23_containers/multiset/debug/construct2_neg.cc --- 95823,95843 ---- b97023dae8d2f3693aa59d2a444f252b libstdc++-v3/testsuite/23_containers/multiset/48101-3_neg.cc d60b50bb57d19358f4bb7678d2dc46d8 libstdc++-v3/testsuite/23_containers/multiset/48101_neg.cc ea42a04e7691f371565d0a9b66135f37 libstdc++-v3/testsuite/23_containers/multiset/58764.cc + c599e48655ea2e75c592ab5a1cf5ae3c libstdc++-v3/testsuite/23_containers/multiset/allocator/103501.cc b867ec437a9bd969533a59f00982760f libstdc++-v3/testsuite/23_containers/multiset/allocator/copy.cc 5a59273dab35f9e21d05377e7c7c36ac libstdc++-v3/testsuite/23_containers/multiset/allocator/copy_assign.cc e11de5be6c59c7433654b55ccbd19ed7 libstdc++-v3/testsuite/23_containers/multiset/allocator/init-list.cc 41028de807c520acbc88540038e1d712 libstdc++-v3/testsuite/23_containers/multiset/allocator/minimal.cc 55fc85756f64af1889bc1f14ca787eb3 libstdc++-v3/testsuite/23_containers/multiset/allocator/move.cc 25af496b7837657fc1293c331d364bc0 libstdc++-v3/testsuite/23_containers/multiset/allocator/move_assign.cc + 2f71170abe54de386e7c963413a42e5a libstdc++-v3/testsuite/23_containers/multiset/allocator/move_cons.cc 96a185443eb1d702323165e4e01530c2 libstdc++-v3/testsuite/23_containers/multiset/allocator/noexcept.cc 942c2cfb450e53df9903722c5493040a libstdc++-v3/testsuite/23_containers/multiset/allocator/swap.cc 6d153c8ac11517b627dc7da5c52e5b4f libstdc++-v3/testsuite/23_containers/multiset/capacity/29134.cc a0f00b99adcaf730ba73537486b2a2b3 libstdc++-v3/testsuite/23_containers/multiset/cons/deduction.cc 0a42886ca1a34c85bc69cf0c96affdc1 libstdc++-v3/testsuite/23_containers/multiset/cons/moveable.cc 3b66f506c08cf105326f3279d17c3b9e libstdc++-v3/testsuite/23_containers/multiset/cons/noexcept_default_construct.cc ! 033542b700e41caabcbf9d434fd89d08 libstdc++-v3/testsuite/23_containers/multiset/cons/noexcept_move_construct.cc 7b36a81d023cf6569bb44a9babfe2ef2 libstdc++-v3/testsuite/23_containers/multiset/debug/60499.cc 23a9cf66d279557289f0d0deea68fc5d libstdc++-v3/testsuite/23_containers/multiset/debug/construct1_neg.cc 79415fd448110734a6b3b8ee67f4d53f libstdc++-v3/testsuite/23_containers/multiset/debug/construct2_neg.cc *************** e4fea1ceacea0e9d21b963d4795e94e0 libstd *** 95436,95441 **** --- 95926,95932 ---- 92a17eb053933c696799a73fdf4947a3 libstdc++-v3/testsuite/23_containers/set/58764.cc eb9e378939291034edfd21fa47e027db libstdc++-v3/testsuite/23_containers/set/85965.cc 5ce57aa1c8420e886240d9d633932638 libstdc++-v3/testsuite/23_containers/set/92124.cc + 4934612c2b7203e0e300739be2067260 libstdc++-v3/testsuite/23_containers/set/allocator/103501.cc bd476dafd6a1721a023a04c9ef108889 libstdc++-v3/testsuite/23_containers/set/allocator/71964.cc d62f761e2d55485ec485e6462cb9579f libstdc++-v3/testsuite/23_containers/set/allocator/copy.cc 07b8bdcc7da0414b41875eaf8661dae8 libstdc++-v3/testsuite/23_containers/set/allocator/copy_assign.cc *************** b4383f8916fb466fb67342be8b871c26 libstd *** 95444,95449 **** --- 95935,95941 ---- 79546630a9388539b064d2aabdc2a3a7 libstdc++-v3/testsuite/23_containers/set/allocator/minimal.cc 53c646fadc26e4bf926153ce1dc7d8f9 libstdc++-v3/testsuite/23_containers/set/allocator/move.cc 705b059c34caf629181bdbd4bb9c676e libstdc++-v3/testsuite/23_containers/set/allocator/move_assign.cc + 5f6c8cc0fa61d7499a93ca54e5456a2d libstdc++-v3/testsuite/23_containers/set/allocator/move_cons.cc bfd47a18693f20363ebc72cd2661ebc2 libstdc++-v3/testsuite/23_containers/set/allocator/noexcept.cc c7f1ea6999c048aa6455125b5cdbc438 libstdc++-v3/testsuite/23_containers/set/allocator/swap.cc 9af434ab19235575074281a4ddfa1b89 libstdc++-v3/testsuite/23_containers/set/capacity/29134.cc *************** ede5ac38f32290eae8d036e97275ef56 libstd *** 95452,95458 **** d7fb6d5367cbb1a6b1747e6a9e5133f2 libstdc++-v3/testsuite/23_containers/set/cons/deduction.cc 87f3d99627c137494313d473c0b49b67 libstdc++-v3/testsuite/23_containers/set/cons/moveable.cc 261c5f50c550b868c040251eca407d0e libstdc++-v3/testsuite/23_containers/set/cons/noexcept_default_construct.cc ! a9627c433e3846d54b43eb25ed324692 libstdc++-v3/testsuite/23_containers/set/cons/noexcept_move_construct.cc 7a89eb5d92b2c5483ec4a99f99fb80d0 libstdc++-v3/testsuite/23_containers/set/debug/60499.cc 6e0ec0cf08258154d30057220aa06cbf libstdc++-v3/testsuite/23_containers/set/debug/construct1_neg.cc 0b7a7475e869e410f47477555713c5b4 libstdc++-v3/testsuite/23_containers/set/debug/construct2_neg.cc --- 95944,95950 ---- d7fb6d5367cbb1a6b1747e6a9e5133f2 libstdc++-v3/testsuite/23_containers/set/cons/deduction.cc 87f3d99627c137494313d473c0b49b67 libstdc++-v3/testsuite/23_containers/set/cons/moveable.cc 261c5f50c550b868c040251eca407d0e libstdc++-v3/testsuite/23_containers/set/cons/noexcept_default_construct.cc ! 9ae8df008eab76e37567890a177c989c libstdc++-v3/testsuite/23_containers/set/cons/noexcept_move_construct.cc 7a89eb5d92b2c5483ec4a99f99fb80d0 libstdc++-v3/testsuite/23_containers/set/debug/60499.cc 6e0ec0cf08258154d30057220aa06cbf libstdc++-v3/testsuite/23_containers/set/debug/construct1_neg.cc 0b7a7475e869e410f47477555713c5b4 libstdc++-v3/testsuite/23_containers/set/debug/construct2_neg.cc *************** d1cdd03b2f8e0dd861d4407c38157bc7 libstd *** 95511,95516 **** --- 96003,96009 ---- fd72ebc8f5564c07ba57595544146515 libstdc++-v3/testsuite/23_containers/set/requirements/partial_specialization/1.cc 574a7f8c92bc9b3b89dddfd74d0f7500 libstdc++-v3/testsuite/23_containers/set/requirements/typedefs.cc 18d10b2e78d8baa734cf80ea212fa92d libstdc++-v3/testsuite/23_containers/span/1.cc + 0af861eafda2161b428a3acb70ad7136 libstdc++-v3/testsuite/23_containers/span/101411.cc 9f3f7297de5ffd1be04994ce0ae49439 libstdc++-v3/testsuite/23_containers/span/2.cc 99d6c1ea7d3fcf797ffd17f5c8f123bd libstdc++-v3/testsuite/23_containers/span/back_assert_neg.cc 7257a3841d42a4b4e2c526754a12138a libstdc++-v3/testsuite/23_containers/span/back_neg.cc *************** cda303bc791abfda228a1c3899260517 libstd *** 95537,95542 **** --- 96030,96036 ---- b01d6b9f691c1b3feb2ca206b789b760 libstdc++-v3/testsuite/23_containers/span/subspan_6_assert_neg.cc fd82578a754c2ab499f6ed1d716b899a libstdc++-v3/testsuite/23_containers/span/subspan_assert_neg.cc 43b0266ed9762c14776d54e9e4f57151 libstdc++-v3/testsuite/23_containers/span/subspan_neg.cc + d19a170b5f7ab02157733005cb76fef1 libstdc++-v3/testsuite/23_containers/span/trivially_copyable.cc 5b510e3a1cc56b0eaa6a91e7ec8f9725 libstdc++-v3/testsuite/23_containers/stack/77528.cc e8d9a8b1f95301ffc4ea8b961ff978ff libstdc++-v3/testsuite/23_containers/stack/92878_92947.cc 3e1847e68d4af599bbea7d7e1df2e4a0 libstdc++-v3/testsuite/23_containers/stack/cmp_c++20.cc *************** cb84acc411ac789ab0cfb110bcdf634a libstd *** 95555,95560 **** --- 96049,96055 ---- fba06019906a399e1aa50a7e2363a290 libstdc++-v3/testsuite/23_containers/unordered_map/59548.cc ccabe8ded28b651954d067850bd0a332 libstdc++-v3/testsuite/23_containers/unordered_map/allocator/copy.cc 1ba6a0ce7805ccc44211992e7a8ff7c1 libstdc++-v3/testsuite/23_containers/unordered_map/allocator/copy_assign.cc + fcd22fc85f6b1f3dcc704c89f9b6fd6e libstdc++-v3/testsuite/23_containers/unordered_map/allocator/default_init.cc a5fd2b2ad6c89cb4bdd2132554f07e6e libstdc++-v3/testsuite/23_containers/unordered_map/allocator/minimal.cc acf9c1b71b2d5fca3e88506e57db5d67 libstdc++-v3/testsuite/23_containers/unordered_map/allocator/move.cc 4634db724c9261015666ac8c9b86aa9b libstdc++-v3/testsuite/23_containers/unordered_map/allocator/move_assign.cc *************** acf9c1b71b2d5fca3e88506e57db5d67 libstd *** 95564,95570 **** --- 96059,96068 ---- 618ea58a923488bde06d6f4ba7762611 libstdc++-v3/testsuite/23_containers/unordered_map/cons/66055.cc d3883d908ea0d1609338a54f5393712c libstdc++-v3/testsuite/23_containers/unordered_map/cons/81891.cc e8415b1babfb828135391be029b553d3 libstdc++-v3/testsuite/23_containers/unordered_map/cons/deduction.cc + 85f9f0cfc8a07ac716292470ac0bda11 libstdc++-v3/testsuite/23_containers/unordered_map/cons/default.cc 54fe8826d2b53e0d06a8e1f869e011a0 libstdc++-v3/testsuite/23_containers/unordered_map/cons/moveable.cc + c61e9b9996dd865977d55cc768fcfb72 libstdc++-v3/testsuite/23_containers/unordered_map/cons/noexcept_default_construct.cc + 3e7342328057435621f16f45d5eca6f6 libstdc++-v3/testsuite/23_containers/unordered_map/cons/noexcept_move_construct.cc 05234b6349c56145e5b61d395bb623d2 libstdc++-v3/testsuite/23_containers/unordered_map/debug/60499.cc 0eb92947dc50f86db94e9afffbe4969e libstdc++-v3/testsuite/23_containers/unordered_map/debug/begin1_neg.cc 601cc49a9f19fb99d670c14db88b4474 libstdc++-v3/testsuite/23_containers/unordered_map/debug/begin2_neg.cc *************** d47419fa6ccafc6aab739a15fe03ae1c libstd *** 95618,95623 **** --- 96116,96122 ---- 55c0adbd10bc13c6a8383c0322a55398 libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/extract.cc 57a7f561742eea2f3263032c9deab10b libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc df25e3fa6648ee9efd50df6821029fc0 libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/merge.cc + cdce7673464f97d02342aa966db31720 libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/move_assign.cc cf8bacb9577b094c1f67efe81e2c8f97 libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/reserve.cc f6fb8e41b8cb18091689c84403d99735 libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/try_emplace.cc 756defc1b2988cf5a17072e3c8b3884e libstdc++-v3/testsuite/23_containers/unordered_map/observers.cc *************** d92c21d09948bc64c892379e2d9740b7 libstd *** 95660,95665 **** --- 96159,96166 ---- ae690f6705c7c0f7d97c2ae993dcbdb5 libstdc++-v3/testsuite/23_containers/unordered_multimap/cons/66055.cc 0c0d6b35989640c377141d1531195df7 libstdc++-v3/testsuite/23_containers/unordered_multimap/cons/deduction.cc 35cff1fdb44afc04da7e73080084e211 libstdc++-v3/testsuite/23_containers/unordered_multimap/cons/moveable.cc + 5091bfd1023f6bf2abfc425d06c7c0f8 libstdc++-v3/testsuite/23_containers/unordered_multimap/cons/noexcept_default_construct.cc + 5b57894fcd4e150241f795bc62c6ed9a libstdc++-v3/testsuite/23_containers/unordered_multimap/cons/noexcept_move_construct.cc d28de6a50ca517f1e794c3dc8d4ff490 libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/60499.cc 64d5177aeb4feb56bd9fbf7541fb9617 libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/begin1_neg.cc 601cc49a9f19fb99d670c14db88b4474 libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/begin2_neg.cc *************** e8b88c2e83dd0dba23fcdbf1c1f1b60a libstd *** 95750,95755 **** --- 96251,96258 ---- f479b023c0c74d9b7a7ca0e7cb8b00e1 libstdc++-v3/testsuite/23_containers/unordered_multiset/cons/copy.cc 94762517775d99b186586f012a571051 libstdc++-v3/testsuite/23_containers/unordered_multiset/cons/deduction.cc e0b10eb35e0edf27b864a409a176fb6b libstdc++-v3/testsuite/23_containers/unordered_multiset/cons/moveable.cc + 627b36ec89fedcaf8557b2487f626041 libstdc++-v3/testsuite/23_containers/unordered_multiset/cons/noexcept_default_construct.cc + 5a48e211c8ed33836585e36cea955fbd libstdc++-v3/testsuite/23_containers/unordered_multiset/cons/noexcept_move_construct.cc 6611fc64748c9850681df45b0b68c784 libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/60499.cc 2bb41ccac43a5929653663e0a71effbe libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/begin1_neg.cc a7bbaf5a1e2b82b1c2dca3879a1605fe libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/begin2_neg.cc *************** b968302347a4a91e44c34341cdd11879 libstd *** 95829,95834 **** --- 96332,96338 ---- 13a8eda637daa205b7c6793116b0579b libstdc++-v3/testsuite/23_containers/unordered_set/92124.cc c8ea3048b30ffa31ac91f02e41bb3c84 libstdc++-v3/testsuite/23_containers/unordered_set/allocator/copy.cc 37a79f9c1cd30bc26a62620b60bfa653 libstdc++-v3/testsuite/23_containers/unordered_set/allocator/copy_assign.cc + 4d1dcbbf6beaa56abdd028e3b90c1d09 libstdc++-v3/testsuite/23_containers/unordered_set/allocator/default_init.cc 0796bb0232ff397111c0fadf04a88c40 libstdc++-v3/testsuite/23_containers/unordered_set/allocator/ext_ptr.cc 1eb49f3fe37785d4f29ee7d8b1adb09c libstdc++-v3/testsuite/23_containers/unordered_set/allocator/minimal.cc c26cae207d11da819821de263792e056 libstdc++-v3/testsuite/23_containers/unordered_set/allocator/move.cc *************** d879e90c2bc9d9c28fdef4dbc4ca618a libstd *** 95837,95844 **** --- 96341,96352 ---- f99119cae35abd3c81e31f8044c623fe libstdc++-v3/testsuite/23_containers/unordered_set/allocator/swap.cc d540623f05bb8156c72744d17273d259 libstdc++-v3/testsuite/23_containers/unordered_set/buckets/swap.cc 182b35b1ef56447fd3e7aba1c7863839 libstdc++-v3/testsuite/23_containers/unordered_set/cons/66055.cc + 9d752eefc22b63ac38738f296f675279 libstdc++-v3/testsuite/23_containers/unordered_set/cons/99985.cc b3b806f5f10ddfb77c8aeb8ba285b4a9 libstdc++-v3/testsuite/23_containers/unordered_set/cons/deduction.cc + 247af40f0de6e07e87bdde64812f8659 libstdc++-v3/testsuite/23_containers/unordered_set/cons/default.cc ba8af49486d5d3c3c8a4dec507661c7e libstdc++-v3/testsuite/23_containers/unordered_set/cons/moveable.cc + f32a1caa99278c4012c0802f030915da libstdc++-v3/testsuite/23_containers/unordered_set/cons/noexcept_default_construct.cc + b9be6eee936ea5cb9600b7320b424e10 libstdc++-v3/testsuite/23_containers/unordered_set/cons/noexcept_move_construct.cc 01119af8e6870ebc2b0760127c4deb6d libstdc++-v3/testsuite/23_containers/unordered_set/debug/60499.cc cd5576e36e1a194d03e482ba0406e064 libstdc++-v3/testsuite/23_containers/unordered_set/debug/89608_neg.cc 92f1092eea2f4a9e5a23bbd97ee409a7 libstdc++-v3/testsuite/23_containers/unordered_set/debug/begin1_neg.cc *************** fd1c755c828254de106a44d52751fd80 libstd *** 96125,96131 **** 585dc7742d7aa5b8ed44368291227e5b libstdc++-v3/testsuite/24_iterators/aliases.cc 4528100dfb5556c585eb3f5fcc77eeec libstdc++-v3/testsuite/24_iterators/associated_types/incrementable.traits.cc 699cf0394d4d92df0835bd605158fa08 libstdc++-v3/testsuite/24_iterators/associated_types/iterator.traits.cc ! 111fca7042ba295b9b5c67bae787b80c libstdc++-v3/testsuite/24_iterators/associated_types/readable.traits.cc 5a3b7c5b309a469082fd84b471403396 libstdc++-v3/testsuite/24_iterators/back_insert_iterator/2.cc fe63188a40a01ea44ff6ed64d5e63f6f libstdc++-v3/testsuite/24_iterators/back_insert_iterator/constexpr.cc 63dce76846bb71ee9fd6d45809f0eb30 libstdc++-v3/testsuite/24_iterators/back_insert_iterator/pr93884.cc --- 96633,96639 ---- 585dc7742d7aa5b8ed44368291227e5b libstdc++-v3/testsuite/24_iterators/aliases.cc 4528100dfb5556c585eb3f5fcc77eeec libstdc++-v3/testsuite/24_iterators/associated_types/incrementable.traits.cc 699cf0394d4d92df0835bd605158fa08 libstdc++-v3/testsuite/24_iterators/associated_types/iterator.traits.cc ! deb2aa59184e80a3699625971ffb4d0c libstdc++-v3/testsuite/24_iterators/associated_types/readable.traits.cc 5a3b7c5b309a469082fd84b471403396 libstdc++-v3/testsuite/24_iterators/back_insert_iterator/2.cc fe63188a40a01ea44ff6ed64d5e63f6f libstdc++-v3/testsuite/24_iterators/back_insert_iterator/constexpr.cc 63dce76846bb71ee9fd6d45809f0eb30 libstdc++-v3/testsuite/24_iterators/back_insert_iterator/pr93884.cc *************** ae9dc623ab27d928c35bc44cfd64602b libstd *** 96162,96168 **** 4cc382285cc520898f0999351963c263 libstdc++-v3/testsuite/24_iterators/headers/iterator/synopsis_c++11.cc bdcee24ed1b69a88669379e581d404b5 libstdc++-v3/testsuite/24_iterators/headers/iterator/synopsis_c++14.cc f664863570f3a05dcc52e28621e0d62f libstdc++-v3/testsuite/24_iterators/headers/iterator/synopsis_c++17.cc ! c3424d4d1df83c98611e39929ea6d646 libstdc++-v3/testsuite/24_iterators/headers/iterator/synopsis_c++20.cc 1aaf2012d70201bcb85defa8cfeacd6c libstdc++-v3/testsuite/24_iterators/headers/iterator/types_std.cc 13510f3e6f3ce4478f0f886adce2e9b9 libstdc++-v3/testsuite/24_iterators/indirect_callable/92894.cc 9a41e4d5473b6de776139240d174da7c libstdc++-v3/testsuite/24_iterators/indirect_callable/projected.cc --- 96670,96676 ---- 4cc382285cc520898f0999351963c263 libstdc++-v3/testsuite/24_iterators/headers/iterator/synopsis_c++11.cc bdcee24ed1b69a88669379e581d404b5 libstdc++-v3/testsuite/24_iterators/headers/iterator/synopsis_c++14.cc f664863570f3a05dcc52e28621e0d62f libstdc++-v3/testsuite/24_iterators/headers/iterator/synopsis_c++17.cc ! a02faee3a81215336a66965fa506993f libstdc++-v3/testsuite/24_iterators/headers/iterator/synopsis_c++20.cc 1aaf2012d70201bcb85defa8cfeacd6c libstdc++-v3/testsuite/24_iterators/headers/iterator/types_std.cc 13510f3e6f3ce4478f0f886adce2e9b9 libstdc++-v3/testsuite/24_iterators/indirect_callable/92894.cc 9a41e4d5473b6de776139240d174da7c libstdc++-v3/testsuite/24_iterators/indirect_callable/projected.cc *************** f0cdc00b3bc9c68919fb0b7ebe7c11ef libstd *** 96204,96210 **** 42ee241f19f1531375af69938ac18bc9 libstdc++-v3/testsuite/24_iterators/move_iterator/greedy_ops.cc 6615610a231fe3f256bc31ac0fc9fbcb libstdc++-v3/testsuite/24_iterators/move_iterator/input_iterator.cc dacb7f3a3e08dcffc71bcc6b21be151e libstdc++-v3/testsuite/24_iterators/move_iterator/lwg3390.cc ! dac75da0e4feb879b523a12d8083087a libstdc++-v3/testsuite/24_iterators/move_iterator/move_only.cc 8566347691f9037b6a9b4632511b1348 libstdc++-v3/testsuite/24_iterators/move_iterator/rel_ops_c++20.cc 39903a61dbaef11c6527f78131dcc707 libstdc++-v3/testsuite/24_iterators/move_iterator/sentinel.cc 239dbacda6832aa47081b383921bd1a4 libstdc++-v3/testsuite/24_iterators/normal_iterator/58403.cc --- 96712,96719 ---- 42ee241f19f1531375af69938ac18bc9 libstdc++-v3/testsuite/24_iterators/move_iterator/greedy_ops.cc 6615610a231fe3f256bc31ac0fc9fbcb libstdc++-v3/testsuite/24_iterators/move_iterator/input_iterator.cc dacb7f3a3e08dcffc71bcc6b21be151e libstdc++-v3/testsuite/24_iterators/move_iterator/lwg3390.cc ! c4da277c7c5ed43e70bfcf1d7f0988e8 libstdc++-v3/testsuite/24_iterators/move_iterator/lwg3391.cc ! 3f86aa9ae75273740f325097e752417c libstdc++-v3/testsuite/24_iterators/move_iterator/move_only.cc 8566347691f9037b6a9b4632511b1348 libstdc++-v3/testsuite/24_iterators/move_iterator/rel_ops_c++20.cc 39903a61dbaef11c6527f78131dcc707 libstdc++-v3/testsuite/24_iterators/move_iterator/sentinel.cc 239dbacda6832aa47081b383921bd1a4 libstdc++-v3/testsuite/24_iterators/normal_iterator/58403.cc *************** abf9e229b4c2bd54b92c5d96cf8e7efd libstd *** 96238,96250 **** 2dd66fadc4415dfb7505331710b5e6be libstdc++-v3/testsuite/24_iterators/range_access/range_access_cpp17_neg.cc 72118a17987b99523ec83d39b2644b0c libstdc++-v3/testsuite/24_iterators/range_access/range_access_cpp20.cc b68ee8f4d04b2cc181f70866343443ae libstdc++-v3/testsuite/24_iterators/range_access/range_access_cpp20_neg.cc ! 587aac0fb1f751c06a75e69b4da7328f libstdc++-v3/testsuite/24_iterators/range_operations/advance.cc 2a73c779dbf3ede57966512845075e62 libstdc++-v3/testsuite/24_iterators/range_operations/advance_debug_neg.cc 5b4a17d39a0e4628f13856152c81236d libstdc++-v3/testsuite/24_iterators/range_operations/distance.cc 651c176eda81081cc313517b577cec1b libstdc++-v3/testsuite/24_iterators/range_operations/next.cc 825493a5d381f534b1f3b192a881aa95 libstdc++-v3/testsuite/24_iterators/range_operations/prev.cc e6a8fd95d27b75260ac14bbdb96599fb libstdc++-v3/testsuite/24_iterators/reverse_iterator/11729.cc ! a817d05c1c9addc215b896db5d499d12 libstdc++-v3/testsuite/24_iterators/reverse_iterator/2.cc 7bba901ec7d2a287308c1c97e829e545 libstdc++-v3/testsuite/24_iterators/reverse_iterator/3.cc 5216dba2655cfb027982ccd3cb860cfe libstdc++-v3/testsuite/24_iterators/reverse_iterator/71771.cc 06d4282ea0f497d2c3308236e55c83b8 libstdc++-v3/testsuite/24_iterators/reverse_iterator/cust.cc --- 96747,96762 ---- 2dd66fadc4415dfb7505331710b5e6be libstdc++-v3/testsuite/24_iterators/range_access/range_access_cpp17_neg.cc 72118a17987b99523ec83d39b2644b0c libstdc++-v3/testsuite/24_iterators/range_access/range_access_cpp20.cc b68ee8f4d04b2cc181f70866343443ae libstdc++-v3/testsuite/24_iterators/range_access/range_access_cpp20_neg.cc ! 00606ba56af13a3b035c586a3d9cf4cd libstdc++-v3/testsuite/24_iterators/range_operations/100768.cc ! dd28d465a3b31c2c395828ec41c1813e libstdc++-v3/testsuite/24_iterators/range_operations/advance.cc 2a73c779dbf3ede57966512845075e62 libstdc++-v3/testsuite/24_iterators/range_operations/advance_debug_neg.cc + 5dcff108eb2f62baa60bfa3a74d92304 libstdc++-v3/testsuite/24_iterators/range_operations/advance_overflow.cc 5b4a17d39a0e4628f13856152c81236d libstdc++-v3/testsuite/24_iterators/range_operations/distance.cc 651c176eda81081cc313517b577cec1b libstdc++-v3/testsuite/24_iterators/range_operations/next.cc 825493a5d381f534b1f3b192a881aa95 libstdc++-v3/testsuite/24_iterators/range_operations/prev.cc + 61dfe6716a18a602a8173f0831ed4381 libstdc++-v3/testsuite/24_iterators/reverse_iterator/100639.cc e6a8fd95d27b75260ac14bbdb96599fb libstdc++-v3/testsuite/24_iterators/reverse_iterator/11729.cc ! 8be28164e85e13ae982dd06dbd2ff514 libstdc++-v3/testsuite/24_iterators/reverse_iterator/2.cc 7bba901ec7d2a287308c1c97e829e545 libstdc++-v3/testsuite/24_iterators/reverse_iterator/3.cc 5216dba2655cfb027982ccd3cb860cfe libstdc++-v3/testsuite/24_iterators/reverse_iterator/71771.cc 06d4282ea0f497d2c3308236e55c83b8 libstdc++-v3/testsuite/24_iterators/reverse_iterator/cust.cc *************** d6d3b4a968a888c5eaef0a2ebf180160 libstd *** 96312,96321 **** 969fef3ea38904c70083de0ba1205baa libstdc++-v3/testsuite/25_algorithms/copy/94013.cc 06fb768df97f46dcf0b6a1296f415fc0 libstdc++-v3/testsuite/25_algorithms/copy/95578.cc 03fe5425ab29f7853c4da61d2eacfc61 libstdc++-v3/testsuite/25_algorithms/copy/constexpr.cc ! cb898d5f8528ab636442ba26db01dea8 libstdc++-v3/testsuite/25_algorithms/copy/constrained.cc d0daafbd838daa77f51d8eff2c078367 libstdc++-v3/testsuite/25_algorithms/copy/debug/1_neg.cc a3764d3162963291cc6c00b35b769200 libstdc++-v3/testsuite/25_algorithms/copy/debug/2_neg.cc 3213c56295e266c5978ab9762ee90871 libstdc++-v3/testsuite/25_algorithms/copy/debug/95289.cc a4e3b919e921272cb082f7fa810f39d2 libstdc++-v3/testsuite/25_algorithms/copy/deque_iterators/1.cc 1bbbed4ee905380ac2d5d0b4e2f0fbdd libstdc++-v3/testsuite/25_algorithms/copy/deque_iterators/2.cc f1bfc8cd3ff9b4b16dfb6191c99cfd4e libstdc++-v3/testsuite/25_algorithms/copy/deque_iterators/31.cc --- 96824,96834 ---- 969fef3ea38904c70083de0ba1205baa libstdc++-v3/testsuite/25_algorithms/copy/94013.cc 06fb768df97f46dcf0b6a1296f415fc0 libstdc++-v3/testsuite/25_algorithms/copy/95578.cc 03fe5425ab29f7853c4da61d2eacfc61 libstdc++-v3/testsuite/25_algorithms/copy/constexpr.cc ! b456f1098b5c96e6126ea74d3535c3eb libstdc++-v3/testsuite/25_algorithms/copy/constrained.cc d0daafbd838daa77f51d8eff2c078367 libstdc++-v3/testsuite/25_algorithms/copy/debug/1_neg.cc a3764d3162963291cc6c00b35b769200 libstdc++-v3/testsuite/25_algorithms/copy/debug/2_neg.cc 3213c56295e266c5978ab9762ee90871 libstdc++-v3/testsuite/25_algorithms/copy/debug/95289.cc + 500cd85e3f2b7bb8d5a19bab3fb05cd3 libstdc++-v3/testsuite/25_algorithms/copy/debug/99402.cc a4e3b919e921272cb082f7fa810f39d2 libstdc++-v3/testsuite/25_algorithms/copy/deque_iterators/1.cc 1bbbed4ee905380ac2d5d0b4e2f0fbdd libstdc++-v3/testsuite/25_algorithms/copy/deque_iterators/2.cc f1bfc8cd3ff9b4b16dfb6191c99cfd4e libstdc++-v3/testsuite/25_algorithms/copy/deque_iterators/31.cc *************** e28df2e4c4aacb2c97616c7caeb0d219 libstd *** 96346,96352 **** da1fb78d5a3cd469ddf537052865be96 libstdc++-v3/testsuite/25_algorithms/copy_backward/deque_iterators/1.cc b249dfabb210677e2060237743fb4659 libstdc++-v3/testsuite/25_algorithms/copy_backward/deque_iterators/2.cc 47ac9f53b3dbb1ec1323204e52dcd8c5 libstdc++-v3/testsuite/25_algorithms/copy_backward/move_iterators/1.cc ! b8d15fc50f7600c23fb54b94c424bf96 libstdc++-v3/testsuite/25_algorithms/copy_backward/move_iterators/69478.cc 8f4e083a84c0099a12331ab69739a803 libstdc++-v3/testsuite/25_algorithms/copy_backward/requirements/explicit_instantiation/2.cc 2eaf0fb27f9c540ac8c5669bd8682c58 libstdc++-v3/testsuite/25_algorithms/copy_backward/requirements/explicit_instantiation/pod.cc b8ada86cb691f57748ea6571f05d393c libstdc++-v3/testsuite/25_algorithms/copy_if/check_type.cc --- 96859,96865 ---- da1fb78d5a3cd469ddf537052865be96 libstdc++-v3/testsuite/25_algorithms/copy_backward/deque_iterators/1.cc b249dfabb210677e2060237743fb4659 libstdc++-v3/testsuite/25_algorithms/copy_backward/deque_iterators/2.cc 47ac9f53b3dbb1ec1323204e52dcd8c5 libstdc++-v3/testsuite/25_algorithms/copy_backward/move_iterators/1.cc ! b06b1568c1e6af2787ef76f5355a26e1 libstdc++-v3/testsuite/25_algorithms/copy_backward/move_iterators/69478.cc 8f4e083a84c0099a12331ab69739a803 libstdc++-v3/testsuite/25_algorithms/copy_backward/requirements/explicit_instantiation/2.cc 2eaf0fb27f9c540ac8c5669bd8682c58 libstdc++-v3/testsuite/25_algorithms/copy_backward/requirements/explicit_instantiation/pod.cc b8ada86cb691f57748ea6571f05d393c libstdc++-v3/testsuite/25_algorithms/copy_if/check_type.cc *************** ebd01e224082a3b97bd59c68afb737d3 libstd *** 96427,96433 **** efaa3b24526444ad5911ee49e2b3dcbe libstdc++-v3/testsuite/25_algorithms/fill_n/87982_neg.cc 56ec4f07e489762061aee5150901a599 libstdc++-v3/testsuite/25_algorithms/fill_n/94017.cc c44dccf2f7fefb919b56cd8d2e9c8f05 libstdc++-v3/testsuite/25_algorithms/fill_n/constexpr.cc ! 769e0a431031732214494f3d91532aa7 libstdc++-v3/testsuite/25_algorithms/fill_n/constrained.cc 5cafcf0f9ce4e279105e1df93aa06ba5 libstdc++-v3/testsuite/25_algorithms/fill_n/debug/1_neg.cc a735fcf2342954a1234ea35f0cbe0d6e libstdc++-v3/testsuite/25_algorithms/fill_n/debug/2_neg.cc cbcd0e1094510e503e62a2db35d881bf libstdc++-v3/testsuite/25_algorithms/fill_n/debug/3_neg.cc --- 96940,96946 ---- efaa3b24526444ad5911ee49e2b3dcbe libstdc++-v3/testsuite/25_algorithms/fill_n/87982_neg.cc 56ec4f07e489762061aee5150901a599 libstdc++-v3/testsuite/25_algorithms/fill_n/94017.cc c44dccf2f7fefb919b56cd8d2e9c8f05 libstdc++-v3/testsuite/25_algorithms/fill_n/constexpr.cc ! 93c1014d1812d3b6a79cd3dbe2d83fc5 libstdc++-v3/testsuite/25_algorithms/fill_n/constrained.cc 5cafcf0f9ce4e279105e1df93aa06ba5 libstdc++-v3/testsuite/25_algorithms/fill_n/debug/1_neg.cc a735fcf2342954a1234ea35f0cbe0d6e libstdc++-v3/testsuite/25_algorithms/fill_n/debug/2_neg.cc cbcd0e1094510e503e62a2db35d881bf libstdc++-v3/testsuite/25_algorithms/fill_n/debug/3_neg.cc *************** f205839fa0ebe4b40c992703ab598203 libstd *** 96539,96545 **** b13aacad69f9d2a0c4e4b24d32797d38 libstdc++-v3/testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/2.cc 4d383ef88d0b956a4c975a9c8e8c19a1 libstdc++-v3/testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/pod.cc b765310545476fde27355f1bb9d8c64e libstdc++-v3/testsuite/25_algorithms/is_permutation/1.cc ! cf205764a9cf7070226958f2e7ae35c3 libstdc++-v3/testsuite/25_algorithms/is_permutation/2.cc 025ce1bb4b4b790247f0dc396be89527 libstdc++-v3/testsuite/25_algorithms/is_permutation/64646.cc 15ab07f4978189e0668a5bf7e776e69c libstdc++-v3/testsuite/25_algorithms/is_permutation/check_type.cc 4bc4be1703b3ec29ad8719105d8d29fd libstdc++-v3/testsuite/25_algorithms/is_permutation/check_type2.cc --- 97052,97058 ---- b13aacad69f9d2a0c4e4b24d32797d38 libstdc++-v3/testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/2.cc 4d383ef88d0b956a4c975a9c8e8c19a1 libstdc++-v3/testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/pod.cc b765310545476fde27355f1bb9d8c64e libstdc++-v3/testsuite/25_algorithms/is_permutation/1.cc ! a24bd2f6e6d927a7f43194df460adf3a libstdc++-v3/testsuite/25_algorithms/is_permutation/2.cc 025ce1bb4b4b790247f0dc396be89527 libstdc++-v3/testsuite/25_algorithms/is_permutation/64646.cc 15ab07f4978189e0668a5bf7e776e69c libstdc++-v3/testsuite/25_algorithms/is_permutation/check_type.cc 4bc4be1703b3ec29ad8719105d8d29fd libstdc++-v3/testsuite/25_algorithms/is_permutation/check_type2.cc *************** e8c975a2df91cc326c9c32b307350b97 libstd *** 96638,96644 **** c03b0afd02ffd62208474ade63f0b4ea libstdc++-v3/testsuite/25_algorithms/minmax/3.cc 40a129ae9f5859c91074f06ba3655d5f libstdc++-v3/testsuite/25_algorithms/minmax/37547.cc 19c1a25ea2679a527a70970a0dbebb43 libstdc++-v3/testsuite/25_algorithms/minmax/constexpr.cc ! 61057077c93c651cacbdfba67db5d7b3 libstdc++-v3/testsuite/25_algorithms/minmax/constrained.cc 74576aa96c9027a953384a98fdae681b libstdc++-v3/testsuite/25_algorithms/minmax/requirements/explicit_instantiation/2.cc aaf762dba887a6eca41bcea865818600 libstdc++-v3/testsuite/25_algorithms/minmax/requirements/explicit_instantiation/3.cc f9567a21f0ab72b5cdf15e321b174d36 libstdc++-v3/testsuite/25_algorithms/minmax/requirements/explicit_instantiation/pod.cc --- 97151,97157 ---- c03b0afd02ffd62208474ade63f0b4ea libstdc++-v3/testsuite/25_algorithms/minmax/3.cc 40a129ae9f5859c91074f06ba3655d5f libstdc++-v3/testsuite/25_algorithms/minmax/37547.cc 19c1a25ea2679a527a70970a0dbebb43 libstdc++-v3/testsuite/25_algorithms/minmax/constexpr.cc ! b32a24ac0266bad82eaf459033e37a5d libstdc++-v3/testsuite/25_algorithms/minmax/constrained.cc 74576aa96c9027a953384a98fdae681b libstdc++-v3/testsuite/25_algorithms/minmax/requirements/explicit_instantiation/2.cc aaf762dba887a6eca41bcea865818600 libstdc++-v3/testsuite/25_algorithms/minmax/requirements/explicit_instantiation/3.cc f9567a21f0ab72b5cdf15e321b174d36 libstdc++-v3/testsuite/25_algorithms/minmax/requirements/explicit_instantiation/pod.cc *************** e9fdf7bef540184c8384358c19949614 libstd *** 96646,96652 **** c0aab9ecad25d14b9e0ccd2bd5fead7d libstdc++-v3/testsuite/25_algorithms/minmax_element/1.cc 5b604efc6a8d47758e0a1ede9e86e077 libstdc++-v3/testsuite/25_algorithms/minmax_element/check_type.cc 9ca5acf827230008960a2bb3517fc4e5 libstdc++-v3/testsuite/25_algorithms/minmax_element/constexpr.cc ! eee9daf63c17954c1adcf3eb29b18afd libstdc++-v3/testsuite/25_algorithms/minmax_element/constrained.cc 10d0b521d41147f324c21525976c4b51 libstdc++-v3/testsuite/25_algorithms/minmax_element/requirements/explicit_instantiation/2.cc e54300931305d0a66006475e90ef5723 libstdc++-v3/testsuite/25_algorithms/minmax_element/requirements/explicit_instantiation/pod.cc dab61b74a6bbfabe20a5e101954ab499 libstdc++-v3/testsuite/25_algorithms/mismatch/1.cc --- 97159,97165 ---- c0aab9ecad25d14b9e0ccd2bd5fead7d libstdc++-v3/testsuite/25_algorithms/minmax_element/1.cc 5b604efc6a8d47758e0a1ede9e86e077 libstdc++-v3/testsuite/25_algorithms/minmax_element/check_type.cc 9ca5acf827230008960a2bb3517fc4e5 libstdc++-v3/testsuite/25_algorithms/minmax_element/constexpr.cc ! 350144eeb2764bf6cc7b6ca24b772b8b libstdc++-v3/testsuite/25_algorithms/minmax_element/constrained.cc 10d0b521d41147f324c21525976c4b51 libstdc++-v3/testsuite/25_algorithms/minmax_element/requirements/explicit_instantiation/2.cc e54300931305d0a66006475e90ef5723 libstdc++-v3/testsuite/25_algorithms/minmax_element/requirements/explicit_instantiation/pod.cc dab61b74a6bbfabe20a5e101954ab499 libstdc++-v3/testsuite/25_algorithms/mismatch/1.cc *************** ebf13bf2627034bbd471091c4f3c3368 libstd *** 96660,96673 **** 44e221569946a0e33a2e67f843382e50 libstdc++-v3/testsuite/25_algorithms/move/93872.cc f96db947c69a08837af8ac605b48c92d libstdc++-v3/testsuite/25_algorithms/move/94013.cc b30f988b1fbb90c45a8593ca770812c1 libstdc++-v3/testsuite/25_algorithms/move/95578.cc ! 585202866e7fe990ca74f85d14ebafae libstdc++-v3/testsuite/25_algorithms/move/constrained.cc c41fedc68e3cee79d652221a1c6b2c9a libstdc++-v3/testsuite/25_algorithms/move/deque_iterators/1.cc 22a53398fac55f2b6eca6cc938cf84fc libstdc++-v3/testsuite/25_algorithms/move/deque_iterators/2.cc 855ff59e5822af3a3c126279d43f7ce7 libstdc++-v3/testsuite/25_algorithms/move/requirements/explicit_instantiation/2.cc 721585435cfd11ba0483767f6c67ae4d libstdc++-v3/testsuite/25_algorithms/move/requirements/explicit_instantiation/pod.cc dbd3b05bff9c931a86930244ef0cf8cc libstdc++-v3/testsuite/25_algorithms/move_backward/1.cc ! c310d6baae77a49901d5ae11e16ee47d libstdc++-v3/testsuite/25_algorithms/move_backward/69478.cc ! 5ddca353d4abf9a6989855f035961cfa libstdc++-v3/testsuite/25_algorithms/move_backward/93872.cc e70ae113f5f60af9678daeb34acd334b libstdc++-v3/testsuite/25_algorithms/move_backward/94013.cc 034b9379e803cdbc111a993cfa7a7d3b libstdc++-v3/testsuite/25_algorithms/move_backward/95578.cc 3b596af568842b93f812ef2b6b3064f4 libstdc++-v3/testsuite/25_algorithms/move_backward/constrained.cc --- 97173,97187 ---- 44e221569946a0e33a2e67f843382e50 libstdc++-v3/testsuite/25_algorithms/move/93872.cc f96db947c69a08837af8ac605b48c92d libstdc++-v3/testsuite/25_algorithms/move/94013.cc b30f988b1fbb90c45a8593ca770812c1 libstdc++-v3/testsuite/25_algorithms/move/95578.cc ! 5d57a7c1d0519d60477b53cdbcb8e7bb libstdc++-v3/testsuite/25_algorithms/move/constexpr.cc ! 60390898b2ae992ee5c7690760108228 libstdc++-v3/testsuite/25_algorithms/move/constrained.cc c41fedc68e3cee79d652221a1c6b2c9a libstdc++-v3/testsuite/25_algorithms/move/deque_iterators/1.cc 22a53398fac55f2b6eca6cc938cf84fc libstdc++-v3/testsuite/25_algorithms/move/deque_iterators/2.cc 855ff59e5822af3a3c126279d43f7ce7 libstdc++-v3/testsuite/25_algorithms/move/requirements/explicit_instantiation/2.cc 721585435cfd11ba0483767f6c67ae4d libstdc++-v3/testsuite/25_algorithms/move/requirements/explicit_instantiation/pod.cc dbd3b05bff9c931a86930244ef0cf8cc libstdc++-v3/testsuite/25_algorithms/move_backward/1.cc ! bb28c89f0d3866116d1090fc7d213993 libstdc++-v3/testsuite/25_algorithms/move_backward/69478.cc ! a456df9bc7595618ca2dfeffa2a78b16 libstdc++-v3/testsuite/25_algorithms/move_backward/93872.cc e70ae113f5f60af9678daeb34acd334b libstdc++-v3/testsuite/25_algorithms/move_backward/94013.cc 034b9379e803cdbc111a993cfa7a7d3b libstdc++-v3/testsuite/25_algorithms/move_backward/95578.cc 3b596af568842b93f812ef2b6b3064f4 libstdc++-v3/testsuite/25_algorithms/move_backward/constrained.cc *************** a6b809943438e05bfcec8341de0f5f69 libstd *** 96776,96782 **** af5fca5bc6d72802e0bfae5842ad910b libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/count.cc d158a17d6a72626910e9d1bb59a6bd28 libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/equal.cc 04f9cd55db6b818f8a45bf0a96a99276 libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/find.cc ! 471b6f550298949d953761b6f029fbc8 libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc d3a1d732b1d0136453af7746fa013e6a libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/find_first_of.cc 599cda84ea5efb563eff791be6d35600 libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/find_if.cc f4f65bf27f0d7c9a39c06d6d20f61198 libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/for_each.cc --- 97290,97296 ---- af5fca5bc6d72802e0bfae5842ad910b libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/count.cc d158a17d6a72626910e9d1bb59a6bd28 libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/equal.cc 04f9cd55db6b818f8a45bf0a96a99276 libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/find.cc ! 0cc9a18a4572b1df52f5494361369361 libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc d3a1d732b1d0136453af7746fa013e6a libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/find_first_of.cc 599cda84ea5efb563eff791be6d35600 libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/find_if.cc f4f65bf27f0d7c9a39c06d6d20f61198 libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/for_each.cc *************** c20a8e85523874211e4bbae54ab1d96b libstd *** 96785,96791 **** bfc0610f56a7f1d98984aff56dc1bfd7 libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc b40053fed52593896e1ba25cd0cb795d libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/reverse.cc 1a705b9ea5017012121c3c55848dd6bc libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/reverse_copy.cc ! a02db630a53ced3d0dfa65416d94725e libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc 91436d5c34b42f7c18262cecfcbaa1fe libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/includes.cc 4365fb8b784ce18952f7def92c4879f6 libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/is_heap.cc aead9a8af21f10549912a33e4f446bdf libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/is_sorted.cc --- 97299,97305 ---- bfc0610f56a7f1d98984aff56dc1bfd7 libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc b40053fed52593896e1ba25cd0cb795d libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/reverse.cc 1a705b9ea5017012121c3c55848dd6bc libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/reverse_copy.cc ! 690cbf9cd3decc29c33dbac102b7c176 libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc 91436d5c34b42f7c18262cecfcbaa1fe libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/includes.cc 4365fb8b784ce18952f7def92c4879f6 libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/is_heap.cc aead9a8af21f10549912a33e4f446bdf libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/is_sorted.cc *************** c982d6aaa4c9dab0894ace50f9f3db73 libstd *** 97153,97159 **** 08539aa6d85601e5c884414e0e3665d0 libstdc++-v3/testsuite/26_numerics/lcm/1.cc e34475da99458f7a1a16d3d58bc08693 libstdc++-v3/testsuite/26_numerics/lcm/92978.cc 5173c15e5da52949296fbfb05fc1ad06 libstdc++-v3/testsuite/26_numerics/lcm/lcm_neg.cc ! 4e72ddc5145e1ca4cbaa0da8f2f0e7c9 libstdc++-v3/testsuite/26_numerics/lerp.cc 99cba480cfe0a31037aee3fa69baebcc libstdc++-v3/testsuite/26_numerics/midpoint/floating.cc d07be8d9763f7bd442e79f9cb43513e1 libstdc++-v3/testsuite/26_numerics/midpoint/integral.cc 865269dc626bd5bc16f32d6ad6a4c121 libstdc++-v3/testsuite/26_numerics/midpoint/pointer.cc --- 97667,97675 ---- 08539aa6d85601e5c884414e0e3665d0 libstdc++-v3/testsuite/26_numerics/lcm/1.cc e34475da99458f7a1a16d3d58bc08693 libstdc++-v3/testsuite/26_numerics/lcm/92978.cc 5173c15e5da52949296fbfb05fc1ad06 libstdc++-v3/testsuite/26_numerics/lcm/lcm_neg.cc ! 4e72ddc5145e1ca4cbaa0da8f2f0e7c9 libstdc++-v3/testsuite/26_numerics/lerp/1.cc ! f9ae973e3d6f85f4c35471e62402ba98 libstdc++-v3/testsuite/26_numerics/lerp/constexpr.cc ! 198cb21048f5d36f6a9bf84a5b2dd536 libstdc++-v3/testsuite/26_numerics/lerp/version.cc 99cba480cfe0a31037aee3fa69baebcc libstdc++-v3/testsuite/26_numerics/midpoint/floating.cc d07be8d9763f7bd442e79f9cb43513e1 libstdc++-v3/testsuite/26_numerics/midpoint/integral.cc 865269dc626bd5bc16f32d6ad6a4c121 libstdc++-v3/testsuite/26_numerics/midpoint/pointer.cc *************** d80f5ed421169b7dc386434996424103 libstd *** 97341,97347 **** 18ddf9fe593a1959923caba6d321d687 libstdc++-v3/testsuite/26_numerics/random/normal_distribution/cons/parms.cc 7ffc7ed168cb10a6c37c5adb2dffacd3 libstdc++-v3/testsuite/26_numerics/random/normal_distribution/operators/equal.cc 7256d624e2ab4c55cb5f415c2d5b6725 libstdc++-v3/testsuite/26_numerics/random/normal_distribution/operators/inequal.cc ! c1388cf269719dda4ceaf7a1eeb43840 libstdc++-v3/testsuite/26_numerics/random/normal_distribution/operators/serialize.cc 92b2f44f1ea924a47de38a799f9dbf5e libstdc++-v3/testsuite/26_numerics/random/normal_distribution/requirements/explicit_instantiation/1.cc 57e3dc910035f142af19f7e5ec90d409 libstdc++-v3/testsuite/26_numerics/random/normal_distribution/requirements/typedefs.cc f6d33ee1429f711b4966a770792eb929 libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/cons/default.cc --- 97857,97863 ---- 18ddf9fe593a1959923caba6d321d687 libstdc++-v3/testsuite/26_numerics/random/normal_distribution/cons/parms.cc 7ffc7ed168cb10a6c37c5adb2dffacd3 libstdc++-v3/testsuite/26_numerics/random/normal_distribution/operators/equal.cc 7256d624e2ab4c55cb5f415c2d5b6725 libstdc++-v3/testsuite/26_numerics/random/normal_distribution/operators/inequal.cc ! 81d2f9995be826076f6ba143e8eab438 libstdc++-v3/testsuite/26_numerics/random/normal_distribution/operators/serialize.cc 92b2f44f1ea924a47de38a799f9dbf5e libstdc++-v3/testsuite/26_numerics/random/normal_distribution/requirements/explicit_instantiation/1.cc 57e3dc910035f142af19f7e5ec90d409 libstdc++-v3/testsuite/26_numerics/random/normal_distribution/requirements/typedefs.cc f6d33ee1429f711b4966a770792eb929 libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/cons/default.cc *************** e93ad9af5d30bfee02b53a20a607fe89 libstd *** 97372,97391 **** 73b0c27d9aa966e4cc6da9855fdc8523 libstdc++-v3/testsuite/26_numerics/random/poisson_distribution/operators/values.cc 9c999c82491c954bbbbc9411256a7b4f libstdc++-v3/testsuite/26_numerics/random/poisson_distribution/requirements/explicit_instantiation/1.cc e289156e639f6fb62ab388683d910974 libstdc++-v3/testsuite/26_numerics/random/poisson_distribution/requirements/typedefs.cc ! 9ed7c90932e518423e74465a94c76df4 libstdc++-v3/testsuite/26_numerics/random/pr60037-neg.cc ca2cf6b593449ed1beeec7cb58fc6d60 libstdc++-v3/testsuite/26_numerics/random/random_device/85494.cc 1191250054a363859a2f9ac2854b6f2d libstdc++-v3/testsuite/26_numerics/random/random_device/94087.cc e55163461f2825863d85db7f79f567be libstdc++-v3/testsuite/26_numerics/random/random_device/cons/default-cow.cc 2c83337dd9aa02a244878c5853dd475a libstdc++-v3/testsuite/26_numerics/random/random_device/cons/default.cc ! de2a3a80c9eec84ba5eebc3ada84b93b libstdc++-v3/testsuite/26_numerics/random/random_device/cons/token.cc d63e7f90dafb0fca4bc10f024ae1e380 libstdc++-v3/testsuite/26_numerics/random/random_device/requirements/typedefs.cc b3654d3a2237911626d014625ee2270e libstdc++-v3/testsuite/26_numerics/random/ranlux24.cc beb086a2b92a125b25966af0ac0a4be4 libstdc++-v3/testsuite/26_numerics/random/ranlux24_base.cc ba0396f984117130fd134ff2e651b4f2 libstdc++-v3/testsuite/26_numerics/random/ranlux48.cc dca8c9fd01b8c6234c64f8d3a66d1f83 libstdc++-v3/testsuite/26_numerics/random/ranlux48_base.cc ca2c98dcb6e88a8c27e67cb1669c59fe libstdc++-v3/testsuite/26_numerics/random/seed_seq/cons/65631.cc ! ef42c1ed57d97c4e83a5aa8a347c7e82 libstdc++-v3/testsuite/26_numerics/random/seed_seq/cons/default.cc ! 5b8ec802ffa68475c2e68b77c27e8c72 libstdc++-v3/testsuite/26_numerics/random/seed_seq/cons/initlist.cc 81b81eea87e3b680a470d2d8b36da654 libstdc++-v3/testsuite/26_numerics/random/seed_seq/cons/range.cc a148bec552a6f55fd10e5e743b2e304e libstdc++-v3/testsuite/26_numerics/random/seed_seq/requirements/typedefs.cc f288aefac015ec69024ec7d1bf249fd3 libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/cons/55215.cc --- 97888,97907 ---- 73b0c27d9aa966e4cc6da9855fdc8523 libstdc++-v3/testsuite/26_numerics/random/poisson_distribution/operators/values.cc 9c999c82491c954bbbbc9411256a7b4f libstdc++-v3/testsuite/26_numerics/random/poisson_distribution/requirements/explicit_instantiation/1.cc e289156e639f6fb62ab388683d910974 libstdc++-v3/testsuite/26_numerics/random/poisson_distribution/requirements/typedefs.cc ! 3608441ade80bd9ef6f50f4cfa98a446 libstdc++-v3/testsuite/26_numerics/random/pr60037-neg.cc ca2cf6b593449ed1beeec7cb58fc6d60 libstdc++-v3/testsuite/26_numerics/random/random_device/85494.cc 1191250054a363859a2f9ac2854b6f2d libstdc++-v3/testsuite/26_numerics/random/random_device/94087.cc e55163461f2825863d85db7f79f567be libstdc++-v3/testsuite/26_numerics/random/random_device/cons/default-cow.cc 2c83337dd9aa02a244878c5853dd475a libstdc++-v3/testsuite/26_numerics/random/random_device/cons/default.cc ! d64997ff88f2a5475f44483d1271f747 libstdc++-v3/testsuite/26_numerics/random/random_device/cons/token.cc d63e7f90dafb0fca4bc10f024ae1e380 libstdc++-v3/testsuite/26_numerics/random/random_device/requirements/typedefs.cc b3654d3a2237911626d014625ee2270e libstdc++-v3/testsuite/26_numerics/random/ranlux24.cc beb086a2b92a125b25966af0ac0a4be4 libstdc++-v3/testsuite/26_numerics/random/ranlux24_base.cc ba0396f984117130fd134ff2e651b4f2 libstdc++-v3/testsuite/26_numerics/random/ranlux48.cc dca8c9fd01b8c6234c64f8d3a66d1f83 libstdc++-v3/testsuite/26_numerics/random/ranlux48_base.cc ca2c98dcb6e88a8c27e67cb1669c59fe libstdc++-v3/testsuite/26_numerics/random/seed_seq/cons/65631.cc ! a4cbec1cba963262658a3d8e9ac0b7d6 libstdc++-v3/testsuite/26_numerics/random/seed_seq/cons/default.cc ! 1c1aa609ea329c5e7a4efbdc0d01ff96 libstdc++-v3/testsuite/26_numerics/random/seed_seq/cons/initlist.cc 81b81eea87e3b680a470d2d8b36da654 libstdc++-v3/testsuite/26_numerics/random/seed_seq/cons/range.cc a148bec552a6f55fd10e5e743b2e304e libstdc++-v3/testsuite/26_numerics/random/seed_seq/requirements/typedefs.cc f288aefac015ec69024ec7d1bf249fd3 libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/cons/55215.cc *************** f4d821fc7d20d619d13b8425fc17280d libstd *** 97450,97455 **** --- 97966,97972 ---- edc07ad9145bfd94fd0d42dc48d90a1b libstdc++-v3/testsuite/26_numerics/random/weibull_distribution/requirements/typedefs.cc 6c536198e7ad1782f3e07e1ff3f18d21 libstdc++-v3/testsuite/26_numerics/reduce/1.cc 4bb34c2823ac8d433f175b9264b1c298 libstdc++-v3/testsuite/26_numerics/reduce/2.cc + 51f14806bbec80c2d5883800a91dfc2e libstdc++-v3/testsuite/26_numerics/reduce/95833.cc b87ba7d57488dd1b3313b59f02c3caa9 libstdc++-v3/testsuite/26_numerics/reduce/constexpr.cc c8e496ff0d8600dd3ffa7ec000673f37 libstdc++-v3/testsuite/26_numerics/slice/1.cc b1f62400d2cab1960b7d3addd69f2f56 libstdc++-v3/testsuite/26_numerics/slice/compare.cc *************** a5358247b15452dc5caae361f7762d66 libstd *** 97462,97467 **** --- 97979,97985 ---- 94b47f6b3d994651a08b4f13c59027c4 libstdc++-v3/testsuite/26_numerics/transform_inclusive_scan/constexpr.cc 7633633e0dac470354153bb8e970293d libstdc++-v3/testsuite/26_numerics/transform_reduce/1.cc 4917a73f883f485cd09a057f3dbdacc5 libstdc++-v3/testsuite/26_numerics/transform_reduce/constexpr.cc + 525e5798867d708e7cc13551760f93c8 libstdc++-v3/testsuite/26_numerics/valarray/103022.cc 163e8018c0a9d9ebdb83bcd3f859f405 libstdc++-v3/testsuite/26_numerics/valarray/27867.cc 7538f9fc6e54a9d1cd3ce7839f6c6bba libstdc++-v3/testsuite/26_numerics/valarray/28277.cc cf692c2a1a274a0001d2210a27308f09 libstdc++-v3/testsuite/26_numerics/valarray/30416.cc *************** d868a35e7d2e09013fe46c8c1fc54486 libstd *** 97478,97498 **** 479b35b80c93382ffdaf19453513a29b libstdc++-v3/testsuite/26_numerics/valarray/dr543.cc dc2395691efd93cbd3d452fed6749786 libstdc++-v3/testsuite/26_numerics/valarray/dr630-1.cc 5c9d7ae1ab4a8b37f08d419cbe41d162 libstdc++-v3/testsuite/26_numerics/valarray/dr630-2.cc ! 07fb75a2fda2963f9197d86b10f38f1c libstdc++-v3/testsuite/26_numerics/valarray/dr630-3.C 3cfcae852809308da9f8c56c35a55723 libstdc++-v3/testsuite/26_numerics/valarray/init-list.cc 2c1b40380a534edf3e5f8e94fdbc96d8 libstdc++-v3/testsuite/26_numerics/valarray/moveable.cc f0a368224cc9276f4a633dd600834852 libstdc++-v3/testsuite/26_numerics/valarray/name_lookup.cc dbd0910580db8571862fb6a5bf7fcc3d libstdc++-v3/testsuite/26_numerics/valarray/noexcept_move_construct.cc c791fe0d6bcf5babfd23629ed068e9fb libstdc++-v3/testsuite/26_numerics/valarray/operators.cc ! 64d60700a21797dd44fd4f8d622d0b7d libstdc++-v3/testsuite/26_numerics/valarray/range_access.cc ! 0bbd127e770866d3c35408d9500a55a6 libstdc++-v3/testsuite/26_numerics/valarray/range_access2.cc 5b12c45a2338fa1643df22452ee47d38 libstdc++-v3/testsuite/26_numerics/valarray/requirements/explicit_instantiation.cc 7cb5f1559f00220967e6f6cb0d382499 libstdc++-v3/testsuite/26_numerics/valarray/requirements/typedefs.cc c2ace579ce66da33045961e4dcc4f5c2 libstdc++-v3/testsuite/26_numerics/valarray/subset_assignment.cc 2c382fd2b7d103bfbbbac1abcf4b7155 libstdc++-v3/testsuite/26_numerics/valarray/swap.cc a0e0c2528f7773879d347eac823e627c libstdc++-v3/testsuite/26_numerics/valarray/transcend.cc 461f65995acf9fdc2ff3af9964f38ff3 libstdc++-v3/testsuite/27_io/basic_filebuf/close/12790-1.cc - 4053ed662ebf8956feba0dbd5b7aa88a libstdc++-v3/testsuite/27_io/basic_filebuf/close/81256.cc 6851dda942642f8557ad783497516e84 libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/1.cc f46c86be55a332ef717c62b909ecd423 libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/12790-1.cc 414d5eece8f99f48a3c7f4b40d2e72be libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/12790-2.cc --- 97996,98015 ---- 479b35b80c93382ffdaf19453513a29b libstdc++-v3/testsuite/26_numerics/valarray/dr543.cc dc2395691efd93cbd3d452fed6749786 libstdc++-v3/testsuite/26_numerics/valarray/dr630-1.cc 5c9d7ae1ab4a8b37f08d419cbe41d162 libstdc++-v3/testsuite/26_numerics/valarray/dr630-2.cc ! 07fb75a2fda2963f9197d86b10f38f1c libstdc++-v3/testsuite/26_numerics/valarray/dr630-3.cc 3cfcae852809308da9f8c56c35a55723 libstdc++-v3/testsuite/26_numerics/valarray/init-list.cc 2c1b40380a534edf3e5f8e94fdbc96d8 libstdc++-v3/testsuite/26_numerics/valarray/moveable.cc f0a368224cc9276f4a633dd600834852 libstdc++-v3/testsuite/26_numerics/valarray/name_lookup.cc dbd0910580db8571862fb6a5bf7fcc3d libstdc++-v3/testsuite/26_numerics/valarray/noexcept_move_construct.cc c791fe0d6bcf5babfd23629ed068e9fb libstdc++-v3/testsuite/26_numerics/valarray/operators.cc ! aee4ccb1e22e6c9c51fd2b204a3300cf libstdc++-v3/testsuite/26_numerics/valarray/range_access.cc ! 39d7d81132608e2c09ed6fe4fd285e01 libstdc++-v3/testsuite/26_numerics/valarray/range_access2.cc 5b12c45a2338fa1643df22452ee47d38 libstdc++-v3/testsuite/26_numerics/valarray/requirements/explicit_instantiation.cc 7cb5f1559f00220967e6f6cb0d382499 libstdc++-v3/testsuite/26_numerics/valarray/requirements/typedefs.cc c2ace579ce66da33045961e4dcc4f5c2 libstdc++-v3/testsuite/26_numerics/valarray/subset_assignment.cc 2c382fd2b7d103bfbbbac1abcf4b7155 libstdc++-v3/testsuite/26_numerics/valarray/swap.cc a0e0c2528f7773879d347eac823e627c libstdc++-v3/testsuite/26_numerics/valarray/transcend.cc 461f65995acf9fdc2ff3af9964f38ff3 libstdc++-v3/testsuite/27_io/basic_filebuf/close/12790-1.cc 6851dda942642f8557ad783497516e84 libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/1.cc f46c86be55a332ef717c62b909ecd423 libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/12790-1.cc 414d5eece8f99f48a3c7f4b40d2e72be libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/12790-2.cc *************** e92acb8467eba04a6e2731f354acf2f5 libstd *** 97508,97513 **** --- 98025,98031 ---- 839cf084e99e501869ba65567392210a libstdc++-v3/testsuite/27_io/basic_filebuf/close/wchar_t/12790-2.cc 1453e56c7ae5a554046565fd8d86fb5e libstdc++-v3/testsuite/27_io/basic_filebuf/close/wchar_t/12790-3.cc af3e47b5b9e76fa515db5bcc3c92ea2a libstdc++-v3/testsuite/27_io/basic_filebuf/close/wchar_t/12790-4.cc + 4053ed662ebf8956feba0dbd5b7aa88a libstdc++-v3/testsuite/27_io/basic_filebuf/close/wchar_t/81256.cc 008dedc58e11b81a7385ae97885d000d libstdc++-v3/testsuite/27_io/basic_filebuf/cons/2020.cc 1048723d49e1ea9106e18f7a427affaf libstdc++-v3/testsuite/27_io/basic_filebuf/cons/char/1.cc 5e37f0721f2ab0c7aabee19006376a34 libstdc++-v3/testsuite/27_io/basic_filebuf/cons/char/copy_neg.cc *************** dc399fe58d03e58411aa59d6bf3887ea libstd *** 97758,97764 **** ecccad76e662630259d712bdc254eec5 libstdc++-v3/testsuite/27_io/basic_ios/requirements/base_classes.cc d97594499fa3aa8782e82164431e6ae7 libstdc++-v3/testsuite/27_io/basic_ios/requirements/explicit_instantiation.cc 90aeeaba5cb0474fe5a75d0aa722c94b libstdc++-v3/testsuite/27_io/basic_ios/requirements/typedefs.cc ! 9d445962bf21eb491457f29474a281ed libstdc++-v3/testsuite/27_io/basic_iostream/cons/16251.C da777bad0a922f9a9101cf640d624130 libstdc++-v3/testsuite/27_io/basic_iostream/cons/2020.cc 17bf9e2c1fc426ba6f8c3481ac5760dd libstdc++-v3/testsuite/27_io/basic_iostream/requirements/base_classes.cc e1d17a42214509d8f97a5edd79d4c7d6 libstdc++-v3/testsuite/27_io/basic_iostream/requirements/explicit_instantiation.cc --- 98276,98282 ---- ecccad76e662630259d712bdc254eec5 libstdc++-v3/testsuite/27_io/basic_ios/requirements/base_classes.cc d97594499fa3aa8782e82164431e6ae7 libstdc++-v3/testsuite/27_io/basic_ios/requirements/explicit_instantiation.cc 90aeeaba5cb0474fe5a75d0aa722c94b libstdc++-v3/testsuite/27_io/basic_ios/requirements/typedefs.cc ! 9d445962bf21eb491457f29474a281ed libstdc++-v3/testsuite/27_io/basic_iostream/cons/16251.cc da777bad0a922f9a9101cf640d624130 libstdc++-v3/testsuite/27_io/basic_iostream/cons/2020.cc 17bf9e2c1fc426ba6f8c3481ac5760dd libstdc++-v3/testsuite/27_io/basic_iostream/requirements/base_classes.cc e1d17a42214509d8f97a5edd79d4c7d6 libstdc++-v3/testsuite/27_io/basic_iostream/requirements/explicit_instantiation.cc *************** ecc80f0819ee86597c254252bfbe9e71 libstd *** 98257,98292 **** 3670ca6e162c38d4af11b9404bc9d02a libstdc++-v3/testsuite/27_io/filesystem/filesystem_error/copy.cc 001c00b3297a4ebc738a308a7aa64074 libstdc++-v3/testsuite/27_io/filesystem/iterators/91067.cc eb695e30955143bd59104f6d26f2a969 libstdc++-v3/testsuite/27_io/filesystem/iterators/caching.cc ! 84357c450e337710976a0b371a1f9ee0 libstdc++-v3/testsuite/27_io/filesystem/iterators/directory_iterator.cc 28a2bf942db858ae036ed958d73b7aba libstdc++-v3/testsuite/27_io/filesystem/iterators/pop.cc 594b2f3e46615f78b2644614529411a3 libstdc++-v3/testsuite/27_io/filesystem/iterators/recursion_pending.cc ! 3008ff208d0a424b496175967a8d2494 libstdc++-v3/testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc ab0445ccb0de0781a9dc50a102adae26 libstdc++-v3/testsuite/27_io/filesystem/operations/absolute.cc 842987769340150e851d44940e51b52c libstdc++-v3/testsuite/27_io/filesystem/operations/all.cc f48109fd33eb762a9b093a141904d06f libstdc++-v3/testsuite/27_io/filesystem/operations/canonical.cc ! fd49e9c9fa64e292f8428902b457beb8 libstdc++-v3/testsuite/27_io/filesystem/operations/copy.cc 2dccc19d850c045d9f75edacc41d15f3 libstdc++-v3/testsuite/27_io/filesystem/operations/copy_file.cc ! 9373c8ecad4cb389edef9a0ca2641510 libstdc++-v3/testsuite/27_io/filesystem/operations/create_directories.cc ! c41d229e530d033657d5d940f3cd9b08 libstdc++-v3/testsuite/27_io/filesystem/operations/create_directory.cc 47a77625d7c91519009042fe5f6d664f libstdc++-v3/testsuite/27_io/filesystem/operations/create_symlink.cc 0b2fa3fe00b1b17b50e4fb51ed027a70 libstdc++-v3/testsuite/27_io/filesystem/operations/current_path.cc d2e381929539a0db3be25bf6d10c5f0f libstdc++-v3/testsuite/27_io/filesystem/operations/equivalent.cc ! deed743ffb610b929c1ece297b9b3a54 libstdc++-v3/testsuite/27_io/filesystem/operations/exists.cc 27c0520a57acab3339000e4a5c852437 libstdc++-v3/testsuite/27_io/filesystem/operations/file_size.cc ! 9aefaa2510b6876a45f3efa9c688f3c0 libstdc++-v3/testsuite/27_io/filesystem/operations/is_empty.cc 1d8d442cea71e70c3f6179dc2de14b50 libstdc++-v3/testsuite/27_io/filesystem/operations/last_write_time.cc e83c53f3246ff01d3e64ea80fa59282f libstdc++-v3/testsuite/27_io/filesystem/operations/permissions.cc 310d4a7344e3af1e1856f77d5d4c408e libstdc++-v3/testsuite/27_io/filesystem/operations/proximate.cc aca9afc7b33749cc0e3c2f1427f3e7ec libstdc++-v3/testsuite/27_io/filesystem/operations/read_symlink.cc 640135655cfe0c5f6b11d8d200016013 libstdc++-v3/testsuite/27_io/filesystem/operations/relative.cc ! 18e482bbd13db5e8f988957a0da3540d libstdc++-v3/testsuite/27_io/filesystem/operations/remove.cc ! 6ba780610ebed6b68cc30f3966f7dd2d libstdc++-v3/testsuite/27_io/filesystem/operations/remove_all.cc 238203fc0b253cbcec3b6d77a9955ad5 libstdc++-v3/testsuite/27_io/filesystem/operations/rename.cc 356709d7f3d195a3b4aaa6401984d704 libstdc++-v3/testsuite/27_io/filesystem/operations/resize_file.cc f0758dcdc1238f2c8b5ef99a8e011e93 libstdc++-v3/testsuite/27_io/filesystem/operations/space.cc ! c7eb17bf0303e44a60c43c4bb251efc9 libstdc++-v3/testsuite/27_io/filesystem/operations/status.cc ! 492ba7247e6321e6da9163540c9b9a04 libstdc++-v3/testsuite/27_io/filesystem/operations/symlink_status.cc ! 7d5aa8bd7ba7accfa9ff4144cd402de4 libstdc++-v3/testsuite/27_io/filesystem/operations/temp_directory_path.cc a03eed977cf4ae9c04cecde7c11529bb libstdc++-v3/testsuite/27_io/filesystem/operations/weakly_canonical.cc 6fb4260b01b570a6ba3aa218acb876bf libstdc++-v3/testsuite/27_io/filesystem/path/append/path.cc 74da2255a2532220b114aac7b9b77455 libstdc++-v3/testsuite/27_io/filesystem/path/append/source.cc --- 98775,98811 ---- 3670ca6e162c38d4af11b9404bc9d02a libstdc++-v3/testsuite/27_io/filesystem/filesystem_error/copy.cc 001c00b3297a4ebc738a308a7aa64074 libstdc++-v3/testsuite/27_io/filesystem/iterators/91067.cc eb695e30955143bd59104f6d26f2a969 libstdc++-v3/testsuite/27_io/filesystem/iterators/caching.cc ! 32163531bb8e1edc215ed13ec329f250 libstdc++-v3/testsuite/27_io/filesystem/iterators/directory_iterator.cc ! 9c6d9a0e88de36dd62805a20ea47584c libstdc++-v3/testsuite/27_io/filesystem/iterators/error_reporting.cc 28a2bf942db858ae036ed958d73b7aba libstdc++-v3/testsuite/27_io/filesystem/iterators/pop.cc 594b2f3e46615f78b2644614529411a3 libstdc++-v3/testsuite/27_io/filesystem/iterators/recursion_pending.cc ! 0921aff28259c14023935f6102b7c44e libstdc++-v3/testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc ab0445ccb0de0781a9dc50a102adae26 libstdc++-v3/testsuite/27_io/filesystem/operations/absolute.cc 842987769340150e851d44940e51b52c libstdc++-v3/testsuite/27_io/filesystem/operations/all.cc f48109fd33eb762a9b093a141904d06f libstdc++-v3/testsuite/27_io/filesystem/operations/canonical.cc ! a3869580d52ce3db4600a661fb826943 libstdc++-v3/testsuite/27_io/filesystem/operations/copy.cc 2dccc19d850c045d9f75edacc41d15f3 libstdc++-v3/testsuite/27_io/filesystem/operations/copy_file.cc ! a01483e87b695cd9fb28d2cb1251270e libstdc++-v3/testsuite/27_io/filesystem/operations/create_directories.cc ! 44ec064b761182e49f7f6ff67b01fdd8 libstdc++-v3/testsuite/27_io/filesystem/operations/create_directory.cc 47a77625d7c91519009042fe5f6d664f libstdc++-v3/testsuite/27_io/filesystem/operations/create_symlink.cc 0b2fa3fe00b1b17b50e4fb51ed027a70 libstdc++-v3/testsuite/27_io/filesystem/operations/current_path.cc d2e381929539a0db3be25bf6d10c5f0f libstdc++-v3/testsuite/27_io/filesystem/operations/equivalent.cc ! 6284af2182197f6d104f4992fcd11d7d libstdc++-v3/testsuite/27_io/filesystem/operations/exists.cc 27c0520a57acab3339000e4a5c852437 libstdc++-v3/testsuite/27_io/filesystem/operations/file_size.cc ! 5fc5a3fe99cc72e2a5bb048429197aec libstdc++-v3/testsuite/27_io/filesystem/operations/is_empty.cc 1d8d442cea71e70c3f6179dc2de14b50 libstdc++-v3/testsuite/27_io/filesystem/operations/last_write_time.cc e83c53f3246ff01d3e64ea80fa59282f libstdc++-v3/testsuite/27_io/filesystem/operations/permissions.cc 310d4a7344e3af1e1856f77d5d4c408e libstdc++-v3/testsuite/27_io/filesystem/operations/proximate.cc aca9afc7b33749cc0e3c2f1427f3e7ec libstdc++-v3/testsuite/27_io/filesystem/operations/read_symlink.cc 640135655cfe0c5f6b11d8d200016013 libstdc++-v3/testsuite/27_io/filesystem/operations/relative.cc ! 04ea7819381f9d48d6cf28fe89d6c915 libstdc++-v3/testsuite/27_io/filesystem/operations/remove.cc ! 8a8b4242524faf31dec9179a5d00dac4 libstdc++-v3/testsuite/27_io/filesystem/operations/remove_all.cc 238203fc0b253cbcec3b6d77a9955ad5 libstdc++-v3/testsuite/27_io/filesystem/operations/rename.cc 356709d7f3d195a3b4aaa6401984d704 libstdc++-v3/testsuite/27_io/filesystem/operations/resize_file.cc f0758dcdc1238f2c8b5ef99a8e011e93 libstdc++-v3/testsuite/27_io/filesystem/operations/space.cc ! a9a0edf832a94e5f249cbef1cd05c30a libstdc++-v3/testsuite/27_io/filesystem/operations/status.cc ! fa5e9c2abafec0dc9a19cea96b11e09e libstdc++-v3/testsuite/27_io/filesystem/operations/symlink_status.cc ! ca1159d8b32610beba14521c75acf586 libstdc++-v3/testsuite/27_io/filesystem/operations/temp_directory_path.cc a03eed977cf4ae9c04cecde7c11529bb libstdc++-v3/testsuite/27_io/filesystem/operations/weakly_canonical.cc 6fb4260b01b570a6ba3aa218acb876bf libstdc++-v3/testsuite/27_io/filesystem/path/append/path.cc 74da2255a2532220b114aac7b9b77455 libstdc++-v3/testsuite/27_io/filesystem/path/append/source.cc *************** eeff032db1b1e8607861f00f13a58f01 libstd *** 98300,98305 **** --- 98819,98825 ---- d86c948f1af72fc168b5fb5d57cde80d libstdc++-v3/testsuite/27_io/filesystem/path/concat/94063.cc 4148374a870684ed634f47e7e4dce0aa libstdc++-v3/testsuite/27_io/filesystem/path/concat/path.cc 482163fe2cb1610ad9eb43f76ec6dd9e libstdc++-v3/testsuite/27_io/filesystem/path/concat/strings.cc + a22e69eb2c027825b8fb3e0e6df6a97d libstdc++-v3/testsuite/27_io/filesystem/path/construct/100630.cc 1259ce6c54f852c22cca02b1f1ea0981 libstdc++-v3/testsuite/27_io/filesystem/path/construct/80762.cc 3b1e73b855d52d5f96f51a490863a27e libstdc++-v3/testsuite/27_io/filesystem/path/construct/90281.cc 3f24796befe8e068bda5f4634eb57e36 libstdc++-v3/testsuite/27_io/filesystem/path/construct/90634.cc *************** db81a7bc793930f8c19936f6031b9f0b libstd *** 98311,98317 **** ee9fc3b0fa54afbb5415ca7e90198da6 libstdc++-v3/testsuite/27_io/filesystem/path/construct/string_view.cc 07607f7a98129b09550d429fc3fe5620 libstdc++-v3/testsuite/27_io/filesystem/path/decompose/extension.cc a8fc64e04747e3d45a0f94411277558f libstdc++-v3/testsuite/27_io/filesystem/path/decompose/filename.cc ! 33ce9ae71210537421b7e5b11692648f libstdc++-v3/testsuite/27_io/filesystem/path/decompose/parent_path.cc 38aea9457bba5a7930ff3f913d40d178 libstdc++-v3/testsuite/27_io/filesystem/path/decompose/relative_path.cc 6537385a164b631b913552687fdd70a3 libstdc++-v3/testsuite/27_io/filesystem/path/decompose/root_directory.cc 66fe6d6712ebfc713996ea68ffb12f6f libstdc++-v3/testsuite/27_io/filesystem/path/decompose/root_name.cc --- 98831,98837 ---- ee9fc3b0fa54afbb5415ca7e90198da6 libstdc++-v3/testsuite/27_io/filesystem/path/construct/string_view.cc 07607f7a98129b09550d429fc3fe5620 libstdc++-v3/testsuite/27_io/filesystem/path/decompose/extension.cc a8fc64e04747e3d45a0f94411277558f libstdc++-v3/testsuite/27_io/filesystem/path/decompose/filename.cc ! 7573b5c5e842ec11a9617af5e0102f31 libstdc++-v3/testsuite/27_io/filesystem/path/decompose/parent_path.cc 38aea9457bba5a7930ff3f913d40d178 libstdc++-v3/testsuite/27_io/filesystem/path/decompose/relative_path.cc 6537385a164b631b913552687fdd70a3 libstdc++-v3/testsuite/27_io/filesystem/path/decompose/root_directory.cc 66fe6d6712ebfc713996ea68ffb12f6f libstdc++-v3/testsuite/27_io/filesystem/path/decompose/root_name.cc *************** b715c45a6677f269807dab0bbcf0ee1d libstd *** 98544,98550 **** 9543dadaa8c5c965e1994efbee0bd561 libstdc++-v3/testsuite/27_io/objects/wchar_t/dr455.cc 9e8ed05ac0eed1fdd3d5f4cf50a2e4b2 libstdc++-v3/testsuite/27_io/rvalue_streams-2.cc 9934e7889df5a2c6e651226db2c62e05 libstdc++-v3/testsuite/27_io/rvalue_streams.cc ! 5eb7ac5ff21f03039afe7f27eb4e827d libstdc++-v3/testsuite/27_io/types/1.cc 4b0f90eb6e1e76ad326e05f588f91f72 libstdc++-v3/testsuite/27_io/types/2.cc c2c9c49259d7cbc70967aa0def986d47 libstdc++-v3/testsuite/27_io/types/3.cc 137fb16f280a82e2ee64a5bd5f0a37a3 libstdc++-v3/testsuite/27_io/types/4.cc --- 99064,99070 ---- 9543dadaa8c5c965e1994efbee0bd561 libstdc++-v3/testsuite/27_io/objects/wchar_t/dr455.cc 9e8ed05ac0eed1fdd3d5f4cf50a2e4b2 libstdc++-v3/testsuite/27_io/rvalue_streams-2.cc 9934e7889df5a2c6e651226db2c62e05 libstdc++-v3/testsuite/27_io/rvalue_streams.cc ! 7a351c9516cc949758acfff3f66d7dce libstdc++-v3/testsuite/27_io/types/1.cc 4b0f90eb6e1e76ad326e05f588f91f72 libstdc++-v3/testsuite/27_io/types/2.cc c2c9c49259d7cbc70967aa0def986d47 libstdc++-v3/testsuite/27_io/types/3.cc 137fb16f280a82e2ee64a5bd5f0a37a3 libstdc++-v3/testsuite/27_io/types/4.cc *************** a3f01b1cbb4b7331e1672085927244d6 libstd *** 98662,98667 **** --- 99182,99188 ---- 9c27b34c9945bc8db206c29304658529 libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/typedefs.cc 7e8b6408493cf8f3cbb890912f7d84a1 libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/wchar_t/string_01.cc ba2a49e11551dc5e966cf5d482a9858b libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/wchar_t/wstring_02.cc + 9e61d1e19fd36f31ae0f5ec6a41b0d6a libstdc++-v3/testsuite/28_regex/match_results/102667.cc e49695f0ed6768bcb724592bf75d06f5 libstdc++-v3/testsuite/28_regex/match_results/94627.cc 67cd819a7fba3d26b69f3055cfca66ea libstdc++-v3/testsuite/28_regex/match_results/ctors/char/default.cc e3e593aa6d1da9a93d7df01eebd16b51 libstdc++-v3/testsuite/28_regex/match_results/ctors/wchar_t/default.cc *************** d50bc864a60e27f00a04b30c38c90be5 libstd *** 98726,98731 **** --- 99247,99253 ---- 6f298f6019a215e9c412aeb09624bf5d libstdc++-v3/testsuite/29_atomics/atomic/cons/user_pod.cc f36282dbbcdd3aa562e3a8ab002d9f80 libstdc++-v3/testsuite/29_atomics/atomic/cons/value_init.cc 282ef4b2ce3eae4b270771b214669fa2 libstdc++-v3/testsuite/29_atomics/atomic/is_always_lock_free.cc + 7f98d9343ac2e8c46fbeb04ca3e70000 libstdc++-v3/testsuite/29_atomics/atomic/lwg3220.cc ca1c82d4f60877fb671deef1ba6ffbc1 libstdc++-v3/testsuite/29_atomics/atomic/nonmembers.cc 38c5f624e3a9e19f5694f9bc933a2cb8 libstdc++-v3/testsuite/29_atomics/atomic/operators/51811.cc a426bff014a351dc4cef9f872ade21db libstdc++-v3/testsuite/29_atomics/atomic/operators/56011.cc *************** d454c6429efcadd6558c9211731a286b libstd *** 98866,98872 **** 655171eaaea8d2fc4a01f8956a46ffb0 libstdc++-v3/testsuite/30_threads/jthread/1.cc 78d8be1360182a5678f6cd40308b2652 libstdc++-v3/testsuite/30_threads/jthread/2.cc afe770d25786f080ea429683cb1cad43 libstdc++-v3/testsuite/30_threads/jthread/3.cc ! f7d097fd635fb4f3e4dd4892093e8876 libstdc++-v3/testsuite/30_threads/jthread/95989.cc e7231005c55a082de8dcfb1f120f5b27 libstdc++-v3/testsuite/30_threads/jthread/jthread.cc 935d4657f7a4b6c66599439a910bbdbb libstdc++-v3/testsuite/30_threads/lock/1.cc 4c2b5d9fc172fff58f548271259446a4 libstdc++-v3/testsuite/30_threads/lock/2.cc --- 99388,99394 ---- 655171eaaea8d2fc4a01f8956a46ffb0 libstdc++-v3/testsuite/30_threads/jthread/1.cc 78d8be1360182a5678f6cd40308b2652 libstdc++-v3/testsuite/30_threads/jthread/2.cc afe770d25786f080ea429683cb1cad43 libstdc++-v3/testsuite/30_threads/jthread/3.cc ! 6e100ce34793a0b8583f6796c3fd8ba5 libstdc++-v3/testsuite/30_threads/jthread/95989.cc e7231005c55a082de8dcfb1f120f5b27 libstdc++-v3/testsuite/30_threads/jthread/jthread.cc 935d4657f7a4b6c66599439a910bbdbb libstdc++-v3/testsuite/30_threads/lock/1.cc 4c2b5d9fc172fff58f548271259446a4 libstdc++-v3/testsuite/30_threads/lock/2.cc *************** c9e7e99529e132f08608c6e69971166e libstd *** 98931,98937 **** 773bbd2bea2713189cc01484907ce551 libstdc++-v3/testsuite/30_threads/promise/cons/move.cc 39bfb2e99d01cddc484af2f18bdc35f6 libstdc++-v3/testsuite/30_threads/promise/cons/move_assign.cc f30bc1fe64ed308a264ee83c625980de libstdc++-v3/testsuite/30_threads/promise/members/at_thread_exit.cc ! c0ee304468e910b4bce96e67d6949cf8 libstdc++-v3/testsuite/30_threads/promise/members/at_thread_exit2.cc 17336607fe68b54ec7ce10d8fccffa43 libstdc++-v3/testsuite/30_threads/promise/members/get_future.cc ca14c819f0127cf9fedad83505f61467 libstdc++-v3/testsuite/30_threads/promise/members/get_future2.cc 3ece0fed881fb83f1a8680f7c9ebf145 libstdc++-v3/testsuite/30_threads/promise/members/set_exception.cc --- 99453,99459 ---- 773bbd2bea2713189cc01484907ce551 libstdc++-v3/testsuite/30_threads/promise/cons/move.cc 39bfb2e99d01cddc484af2f18bdc35f6 libstdc++-v3/testsuite/30_threads/promise/cons/move_assign.cc f30bc1fe64ed308a264ee83c625980de libstdc++-v3/testsuite/30_threads/promise/members/at_thread_exit.cc ! 8523dc0ecfd7460871f8b9945a596f88 libstdc++-v3/testsuite/30_threads/promise/members/at_thread_exit2.cc 17336607fe68b54ec7ce10d8fccffa43 libstdc++-v3/testsuite/30_threads/promise/members/get_future.cc ca14c819f0127cf9fedad83505f61467 libstdc++-v3/testsuite/30_threads/promise/members/get_future2.cc 3ece0fed881fb83f1a8680f7c9ebf145 libstdc++-v3/testsuite/30_threads/promise/members/set_exception.cc *************** f754118861b851f83334813d834cb200 libstd *** 99320,99349 **** 9c8562b86d0e39d1d01cadb2ca7f23c8 libstdc++-v3/testsuite/experimental/filesystem/file_status/1.cc 84f30e82c651a89a906788a43f6ecab8 libstdc++-v3/testsuite/experimental/filesystem/filesystem_error/cons.cc d67c05d9075c1be29c5fc673624caf85 libstdc++-v3/testsuite/experimental/filesystem/iterators/97731.cc ! 9d513e77e33093b0bb139e1a2dd0174c libstdc++-v3/testsuite/experimental/filesystem/iterators/directory_iterator.cc f0e03612f42cb31e388462b8dc7d39fe libstdc++-v3/testsuite/experimental/filesystem/iterators/pop.cc ! c34fe468bd3425a3145a33cbece7102b libstdc++-v3/testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc 4f73aa6296f892370377563d55069b11 libstdc++-v3/testsuite/experimental/filesystem/operations/absolute.cc 3f39eb11e515c18f837562144adad8ab libstdc++-v3/testsuite/experimental/filesystem/operations/canonical.cc ! f8b9bd8a12540462f1b2d35aca5e9fcf libstdc++-v3/testsuite/experimental/filesystem/operations/copy.cc 966ff9676e822cf012c5e62e46be6c04 libstdc++-v3/testsuite/experimental/filesystem/operations/copy_file.cc ! b6422d37e2ba1e565fac27e0ff2b242d libstdc++-v3/testsuite/experimental/filesystem/operations/create_directories.cc ! fbddb073375dd88f3d6a47406dd80060 libstdc++-v3/testsuite/experimental/filesystem/operations/create_directory.cc c6ab87177345e9ce79414dc8d0906a71 libstdc++-v3/testsuite/experimental/filesystem/operations/create_symlink.cc 6c488d69d8fb8bceeb1a37b4d8050273 libstdc++-v3/testsuite/experimental/filesystem/operations/current_path.cc 087fcdd4acd62d2430faf29ca542c0e8 libstdc++-v3/testsuite/experimental/filesystem/operations/equivalent.cc ! 7d4dfcf9c97ba57564aea58db4291ec7 libstdc++-v3/testsuite/experimental/filesystem/operations/exists.cc ff0a9ca2e19173d5ba1cbbd99484a440 libstdc++-v3/testsuite/experimental/filesystem/operations/file_size.cc ! eb6e25976d8cad347d4db75acd52cb8d libstdc++-v3/testsuite/experimental/filesystem/operations/is_empty.cc b57374a842b1e4d187ca556b837d9d47 libstdc++-v3/testsuite/experimental/filesystem/operations/last_write_time.cc da79eb5c93acd2281842f6f183f2e53b libstdc++-v3/testsuite/experimental/filesystem/operations/permissions.cc a385675af2c481cd3cb60f2e20b09356 libstdc++-v3/testsuite/experimental/filesystem/operations/read_symlink.cc ! 7f3c03dc370fc552bbc7b2983e46cd4d libstdc++-v3/testsuite/experimental/filesystem/operations/remove.cc ! 078ee2c7d543147baff269f7257ba2c8 libstdc++-v3/testsuite/experimental/filesystem/operations/remove_all.cc d032a966b5c68f5f7ee9cc78de2ab201 libstdc++-v3/testsuite/experimental/filesystem/operations/rename.cc bbdf924e0bb8d1bc773dac0bd4eabcb3 libstdc++-v3/testsuite/experimental/filesystem/operations/space.cc 095d525f09f3fb41b1b2dd6ba26d8482 libstdc++-v3/testsuite/experimental/filesystem/operations/status.cc ! ab3e2b66d02cadf826e183c6579620e3 libstdc++-v3/testsuite/experimental/filesystem/operations/temp_directory_path.cc f2e526c3e08fe6ed733919a12d6de9cb libstdc++-v3/testsuite/experimental/filesystem/path/append/path.cc d8716846e549e581bc5fee8b9bcb74ea libstdc++-v3/testsuite/experimental/filesystem/path/assign/assign.cc 460be4f0745b49e3ed7dfc1f8c3f6e61 libstdc++-v3/testsuite/experimental/filesystem/path/assign/copy.cc --- 99842,99872 ---- 9c8562b86d0e39d1d01cadb2ca7f23c8 libstdc++-v3/testsuite/experimental/filesystem/file_status/1.cc 84f30e82c651a89a906788a43f6ecab8 libstdc++-v3/testsuite/experimental/filesystem/filesystem_error/cons.cc d67c05d9075c1be29c5fc673624caf85 libstdc++-v3/testsuite/experimental/filesystem/iterators/97731.cc ! e5a1b3250ecbac6348905da5d905d47f libstdc++-v3/testsuite/experimental/filesystem/iterators/directory_iterator.cc ! 6800b111af867d1c5dc76da92647aa5f libstdc++-v3/testsuite/experimental/filesystem/iterators/error_reporting.cc f0e03612f42cb31e388462b8dc7d39fe libstdc++-v3/testsuite/experimental/filesystem/iterators/pop.cc ! 3c16044a4c55ee682b2645a084b70c29 libstdc++-v3/testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc 4f73aa6296f892370377563d55069b11 libstdc++-v3/testsuite/experimental/filesystem/operations/absolute.cc 3f39eb11e515c18f837562144adad8ab libstdc++-v3/testsuite/experimental/filesystem/operations/canonical.cc ! 94490e9fdac37c5154acb073eee9ce74 libstdc++-v3/testsuite/experimental/filesystem/operations/copy.cc 966ff9676e822cf012c5e62e46be6c04 libstdc++-v3/testsuite/experimental/filesystem/operations/copy_file.cc ! 1bc6af37753260c3cba4b0972cdb821c libstdc++-v3/testsuite/experimental/filesystem/operations/create_directories.cc ! 4c9ade3d819fdf282c63ad68f1921f5f libstdc++-v3/testsuite/experimental/filesystem/operations/create_directory.cc c6ab87177345e9ce79414dc8d0906a71 libstdc++-v3/testsuite/experimental/filesystem/operations/create_symlink.cc 6c488d69d8fb8bceeb1a37b4d8050273 libstdc++-v3/testsuite/experimental/filesystem/operations/current_path.cc 087fcdd4acd62d2430faf29ca542c0e8 libstdc++-v3/testsuite/experimental/filesystem/operations/equivalent.cc ! 921430fd6875e58f532b3cc9df5fa06e libstdc++-v3/testsuite/experimental/filesystem/operations/exists.cc ff0a9ca2e19173d5ba1cbbd99484a440 libstdc++-v3/testsuite/experimental/filesystem/operations/file_size.cc ! 337ce1c9002983ec134c4b0ccf69ce81 libstdc++-v3/testsuite/experimental/filesystem/operations/is_empty.cc b57374a842b1e4d187ca556b837d9d47 libstdc++-v3/testsuite/experimental/filesystem/operations/last_write_time.cc da79eb5c93acd2281842f6f183f2e53b libstdc++-v3/testsuite/experimental/filesystem/operations/permissions.cc a385675af2c481cd3cb60f2e20b09356 libstdc++-v3/testsuite/experimental/filesystem/operations/read_symlink.cc ! eff38033dc6e8e0f30a1318d7af0397a libstdc++-v3/testsuite/experimental/filesystem/operations/remove.cc ! 95f1695bd0af030fcebdac50b8b71f48 libstdc++-v3/testsuite/experimental/filesystem/operations/remove_all.cc d032a966b5c68f5f7ee9cc78de2ab201 libstdc++-v3/testsuite/experimental/filesystem/operations/rename.cc bbdf924e0bb8d1bc773dac0bd4eabcb3 libstdc++-v3/testsuite/experimental/filesystem/operations/space.cc 095d525f09f3fb41b1b2dd6ba26d8482 libstdc++-v3/testsuite/experimental/filesystem/operations/status.cc ! 379b45b94ca263d11461de78d42cc616 libstdc++-v3/testsuite/experimental/filesystem/operations/temp_directory_path.cc f2e526c3e08fe6ed733919a12d6de9cb libstdc++-v3/testsuite/experimental/filesystem/path/append/path.cc d8716846e549e581bc5fee8b9bcb74ea libstdc++-v3/testsuite/experimental/filesystem/path/assign/assign.cc 460be4f0745b49e3ed7dfc1f8c3f6e61 libstdc++-v3/testsuite/experimental/filesystem/path/assign/copy.cc *************** d0c5b6632e2c9aeb1fe7639688c02689 libstd *** 99352,99357 **** --- 99875,99881 ---- 32e252df40354b7cf73f78be2d752cf6 libstdc++-v3/testsuite/experimental/filesystem/path/compare/strings.cc de42b2f57081710c6c67f7c073a8ceb7 libstdc++-v3/testsuite/experimental/filesystem/path/concat/path.cc eed72d490252e261548f36173d6bf0d4 libstdc++-v3/testsuite/experimental/filesystem/path/concat/strings.cc + c06b01e19066f0d4ffa4faa5202f4e3e libstdc++-v3/testsuite/experimental/filesystem/path/construct/100630.cc e0cff4503e296be4097d91d574d400b6 libstdc++-v3/testsuite/experimental/filesystem/path/construct/80762.cc 3a56869964f477ea32043c41eec7365a libstdc++-v3/testsuite/experimental/filesystem/path/construct/90281.cc 6eb619a14f1a007eda94788800f806a5 libstdc++-v3/testsuite/experimental/filesystem/path/construct/90634.cc *************** ba6f73e1069ae0217ff591b616e7072e libstd *** 99455,99461 **** e754872deee73ee0d480e54a9ad41fe2 libstdc++-v3/testsuite/experimental/net/internet/address/v4/cons.cc 402619a29800a65d64fbb969bc42148e libstdc++-v3/testsuite/experimental/net/internet/address/v4/creation.cc 2ee6b603877689c7901d1486d09ad1fb libstdc++-v3/testsuite/experimental/net/internet/address/v4/members.cc ! 52d5655db8f4d201df8c492943e61c92 libstdc++-v3/testsuite/experimental/net/internet/address/v6/members.cc e6e651d61bdd6ed15998ec4cc8ce3874 libstdc++-v3/testsuite/experimental/net/internet/resolver/base.cc f40ceebd891dcc3cce918005de625d99 libstdc++-v3/testsuite/experimental/net/internet/resolver/ops/lookup.cc 3d1213effeb2f390af8f2d0f91b9151d libstdc++-v3/testsuite/experimental/net/internet/resolver/ops/reverse.cc --- 99979,99985 ---- e754872deee73ee0d480e54a9ad41fe2 libstdc++-v3/testsuite/experimental/net/internet/address/v4/cons.cc 402619a29800a65d64fbb969bc42148e libstdc++-v3/testsuite/experimental/net/internet/address/v4/creation.cc 2ee6b603877689c7901d1486d09ad1fb libstdc++-v3/testsuite/experimental/net/internet/address/v4/members.cc ! d07339364ca0e7224ac866656778dd7c libstdc++-v3/testsuite/experimental/net/internet/address/v6/members.cc e6e651d61bdd6ed15998ec4cc8ce3874 libstdc++-v3/testsuite/experimental/net/internet/resolver/base.cc f40ceebd891dcc3cce918005de625d99 libstdc++-v3/testsuite/experimental/net/internet/resolver/ops/lookup.cc 3d1213effeb2f390af8f2d0f91b9151d libstdc++-v3/testsuite/experimental/net/internet/resolver/ops/reverse.cc *************** a8d809e90ea6493735643d80223a8227 libstd *** 99547,99553 **** 7576f675ef9376cc26deb7d1c81306ca libstdc++-v3/testsuite/experimental/propagate_const/requirements5.cc 0d0a11e12d42a9b87aee2e36339dc97b libstdc++-v3/testsuite/experimental/propagate_const/swap/1.cc d0bb976b11d82c96ee5a204303757542 libstdc++-v3/testsuite/experimental/propagate_const/typedefs.cc ! 3a627e7c4bcd4e1b5ce93fb20ee6d5a8 libstdc++-v3/testsuite/experimental/random/randint.cc cc2ea0c6602077df09982753ef5d1a1e libstdc++-v3/testsuite/experimental/ratio/value.cc c28a69a33368307493b022fb8da8aeb9 libstdc++-v3/testsuite/experimental/set/erasure.cc af04a713a6e2af630a28ff9eb6803d48 libstdc++-v3/testsuite/experimental/source_location/1.cc --- 100071,100077 ---- 7576f675ef9376cc26deb7d1c81306ca libstdc++-v3/testsuite/experimental/propagate_const/requirements5.cc 0d0a11e12d42a9b87aee2e36339dc97b libstdc++-v3/testsuite/experimental/propagate_const/swap/1.cc d0bb976b11d82c96ee5a204303757542 libstdc++-v3/testsuite/experimental/propagate_const/typedefs.cc ! df0f0f65d0e6106a9eb1dc635731c2ec libstdc++-v3/testsuite/experimental/random/randint.cc cc2ea0c6602077df09982753ef5d1a1e libstdc++-v3/testsuite/experimental/ratio/value.cc c28a69a33368307493b022fb8da8aeb9 libstdc++-v3/testsuite/experimental/set/erasure.cc af04a713a6e2af630a28ff9eb6803d48 libstdc++-v3/testsuite/experimental/source_location/1.cc *************** cb92af52926ab185da3b655d6067c98d libstd *** 99586,99592 **** b56f3747cbe680f3e776447e9843f601 libstdc++-v3/testsuite/experimental/string_view/operations/compare/char/1.cc cf0710b445bbd3499a626a073f468810 libstdc++-v3/testsuite/experimental/string_view/operations/compare/char/13650.cc 1b541407352596ec1ea40eebe4c346ef libstdc++-v3/testsuite/experimental/string_view/operations/compare/char/70483.cc ! 828957a9c652e53f8a922c3ee3a12295 libstdc++-v3/testsuite/experimental/string_view/operations/compare/wchar_t/1.cc 57ad5ae33f2592d8d355d5f9cc1e9e46 libstdc++-v3/testsuite/experimental/string_view/operations/compare/wchar_t/13650.cc c289f8a3d6938f659364d031c3bf8c42 libstdc++-v3/testsuite/experimental/string_view/operations/copy/char/1.cc 016994317556cc9b9805a4877328da29 libstdc++-v3/testsuite/experimental/string_view/operations/copy/wchar_t/1.cc --- 100110,100116 ---- b56f3747cbe680f3e776447e9843f601 libstdc++-v3/testsuite/experimental/string_view/operations/compare/char/1.cc cf0710b445bbd3499a626a073f468810 libstdc++-v3/testsuite/experimental/string_view/operations/compare/char/13650.cc 1b541407352596ec1ea40eebe4c346ef libstdc++-v3/testsuite/experimental/string_view/operations/compare/char/70483.cc ! abc99eca552b44fdd23df397b03e43fd libstdc++-v3/testsuite/experimental/string_view/operations/compare/wchar_t/1.cc 57ad5ae33f2592d8d355d5f9cc1e9e46 libstdc++-v3/testsuite/experimental/string_view/operations/compare/wchar_t/13650.cc c289f8a3d6938f659364d031c3bf8c42 libstdc++-v3/testsuite/experimental/string_view/operations/copy/char/1.cc 016994317556cc9b9805a4877328da29 libstdc++-v3/testsuite/experimental/string_view/operations/copy/wchar_t/1.cc *************** f0f7dfc62f1eed17c7270ed4d8c8e44a libstd *** 99895,99901 **** b1f353e00d9c68204dc05370bd421763 libstdc++-v3/testsuite/ext/rope/6.cc d4bdaa5b4f28018e11317d992032958d libstdc++-v3/testsuite/ext/rope/61946.cc 09a7291498057dc4d56b50b8b14f015f libstdc++-v3/testsuite/ext/rope/7.cc ! 4c3d9b26159531d37d109eff09eab838 libstdc++-v3/testsuite/ext/rope/pthread7-rope.cc 069b5922d7e54238743965e65c9cee5d libstdc++-v3/testsuite/ext/shared_ptr/1.cc acca908c5069a6aeed8e41f6de29648f libstdc++-v3/testsuite/ext/slist/23781_neg.cc 325095fcb58b40359261fa504b79b438 libstdc++-v3/testsuite/ext/slist/check_construct_destroy.cc --- 100419,100425 ---- b1f353e00d9c68204dc05370bd421763 libstdc++-v3/testsuite/ext/rope/6.cc d4bdaa5b4f28018e11317d992032958d libstdc++-v3/testsuite/ext/rope/61946.cc 09a7291498057dc4d56b50b8b14f015f libstdc++-v3/testsuite/ext/rope/7.cc ! cf920cbf8fe76c4f2304e95648d3f3ed libstdc++-v3/testsuite/ext/rope/pthread7-rope.cc 069b5922d7e54238743965e65c9cee5d libstdc++-v3/testsuite/ext/shared_ptr/1.cc acca908c5069a6aeed8e41f6de29648f libstdc++-v3/testsuite/ext/slist/23781_neg.cc 325095fcb58b40359261fa504b79b438 libstdc++-v3/testsuite/ext/slist/check_construct_destroy.cc *************** b4876ee48ff01727ba90ef64a636e4ab libstd *** 99990,100013 **** 3d155b0ea57a1ea519d785b79bf54d29 libstdc++-v3/testsuite/ext/vstring/requirements/typedefs.cc 6d296b6b8c72fc1f8c12d277b46a525e libstdc++-v3/testsuite/ext/vstring/types/23767.cc 606f7983c787ca33e50b39fc37382554 libstdc++-v3/testsuite/lib/dg-options.exp ! 6d21fdbbc1e191b7f5b2bfed28c14c99 libstdc++-v3/testsuite/lib/gdb-test.exp ! 18541a1e904360cbde4f1c3a5e8370cb libstdc++-v3/testsuite/lib/libstdc++.exp ! 018cc51826b0b322cc7687bf0bb00847 libstdc++-v3/testsuite/lib/prune.exp 451ec380a6bbe9f2d4bd438252ea5cd0 libstdc++-v3/testsuite/libstdc++-abi/abi.exp a4f7887f29adc19d2f7c4de5688231a5 libstdc++-v3/testsuite/libstdc++-dg/conformance.exp 73296fb16abe056eee31004dcb01452e libstdc++-v3/testsuite/libstdc++-prettyprinters/48362.cc 6676c287937e35a152af3657d57a30e5 libstdc++-v3/testsuite/libstdc++-prettyprinters/59161.cc ! 3d11be1030f2ddbdf9653d16c097e53d libstdc++-v3/testsuite/libstdc++-prettyprinters/80276.cc e39911046de238e82f9dffedc4a45444 libstdc++-v3/testsuite/libstdc++-prettyprinters/91997.cc 459abfde30ab0b70acc37a5b1a0efd7d libstdc++-v3/testsuite/libstdc++-prettyprinters/compat.cc ! 60f062271c2c2725e3f8dab5fba4ac95 libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx11.cc ae941391a77e4cfc96a0dcaa5f2a4dc5 libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx17.cc 50ec9edb53e998b3c1b73b7cb42d4986 libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx20.cc 58801248330c818e3392f997d399c77e libstdc++-v3/testsuite/libstdc++-prettyprinters/debug.cc 7a277bd37f0b8d74b8e2df8a1a65910e libstdc++-v3/testsuite/libstdc++-prettyprinters/debug_cxx11.cc 81b6f62154b2b4cf63a6801c9eb262f4 libstdc++-v3/testsuite/libstdc++-prettyprinters/filesystem-ts.cc ! bedd2936585a6a53c8f46d268dd9fa31 libstdc++-v3/testsuite/libstdc++-prettyprinters/libfundts.cc ! 5583f661675abaeb3a4a66354537df71 libstdc++-v3/testsuite/libstdc++-prettyprinters/prettyprinters.exp f2715b0f12a23f6ad08c3a4f26accda0 libstdc++-v3/testsuite/libstdc++-prettyprinters/shared_ptr.cc 772200831e7ffdf24e81bc6aee77d8c3 libstdc++-v3/testsuite/libstdc++-prettyprinters/simple.cc 76cd6364eafb0d290657486d926b6ec2 libstdc++-v3/testsuite/libstdc++-prettyprinters/simple11.cc --- 100514,100537 ---- 3d155b0ea57a1ea519d785b79bf54d29 libstdc++-v3/testsuite/ext/vstring/requirements/typedefs.cc 6d296b6b8c72fc1f8c12d277b46a525e libstdc++-v3/testsuite/ext/vstring/types/23767.cc 606f7983c787ca33e50b39fc37382554 libstdc++-v3/testsuite/lib/dg-options.exp ! 052a686e39495d728d28c087722b5d7a libstdc++-v3/testsuite/lib/gdb-test.exp ! c01805a3aca05ff9fb7f629a422a8a6a libstdc++-v3/testsuite/lib/libstdc++.exp ! 0d2974eb70af2e64378791a0ee367353 libstdc++-v3/testsuite/lib/prune.exp 451ec380a6bbe9f2d4bd438252ea5cd0 libstdc++-v3/testsuite/libstdc++-abi/abi.exp a4f7887f29adc19d2f7c4de5688231a5 libstdc++-v3/testsuite/libstdc++-dg/conformance.exp 73296fb16abe056eee31004dcb01452e libstdc++-v3/testsuite/libstdc++-prettyprinters/48362.cc 6676c287937e35a152af3657d57a30e5 libstdc++-v3/testsuite/libstdc++-prettyprinters/59161.cc ! 0d213be61f7c77aabcbb00617ffcd852 libstdc++-v3/testsuite/libstdc++-prettyprinters/80276.cc e39911046de238e82f9dffedc4a45444 libstdc++-v3/testsuite/libstdc++-prettyprinters/91997.cc 459abfde30ab0b70acc37a5b1a0efd7d libstdc++-v3/testsuite/libstdc++-prettyprinters/compat.cc ! 52f959d4089225d1cb3b359e45b8861f libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx11.cc ae941391a77e4cfc96a0dcaa5f2a4dc5 libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx17.cc 50ec9edb53e998b3c1b73b7cb42d4986 libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx20.cc 58801248330c818e3392f997d399c77e libstdc++-v3/testsuite/libstdc++-prettyprinters/debug.cc 7a277bd37f0b8d74b8e2df8a1a65910e libstdc++-v3/testsuite/libstdc++-prettyprinters/debug_cxx11.cc 81b6f62154b2b4cf63a6801c9eb262f4 libstdc++-v3/testsuite/libstdc++-prettyprinters/filesystem-ts.cc ! cc217e3c2ccce7530083505d47c22c48 libstdc++-v3/testsuite/libstdc++-prettyprinters/libfundts.cc ! 7d0ff9bf745ca6f63b160717c77bc416 libstdc++-v3/testsuite/libstdc++-prettyprinters/prettyprinters.exp f2715b0f12a23f6ad08c3a4f26accda0 libstdc++-v3/testsuite/libstdc++-prettyprinters/shared_ptr.cc 772200831e7ffdf24e81bc6aee77d8c3 libstdc++-v3/testsuite/libstdc++-prettyprinters/simple.cc 76cd6364eafb0d290657486d926b6ec2 libstdc++-v3/testsuite/libstdc++-prettyprinters/simple11.cc *************** f10399a56a7080179588bfdfb39111ad libstd *** 100241,100246 **** --- 100765,100771 ---- a757f776e3a7966e60b82fd64a6d589f libstdc++-v3/testsuite/std/concepts/concepts.object/movable.cc e9176cf2a649d94a4c9335b88f1bf447 libstdc++-v3/testsuite/std/concepts/concepts.object/regular.cc d7e514b6d9b4dea86a4d67d41736b64c libstdc++-v3/testsuite/std/concepts/concepts.object/semiregular.cc + 4794912942b175649c13dd9eacdc759c libstdc++-v3/testsuite/std/ranges/97600.cc e669a5c413fc4e39c5a1f3b5c2acd755 libstdc++-v3/testsuite/std/ranges/access/begin.cc b914c0274ea838dbb02cdd4cede6c4f8 libstdc++-v3/testsuite/std/ranges/access/begin_neg.cc 1fbae645e2d800313e60d31aa96c7a93 libstdc++-v3/testsuite/std/ranges/access/cbegin.cc *************** a064f286bb72c64d2f0b11bc19c4bd81 libstd *** 100249,100255 **** f36b28257e0ea1d2e828488bff1ef5db libstdc++-v3/testsuite/std/ranges/access/crbegin.cc 08205a191038504dffd017290e9fb9bb libstdc++-v3/testsuite/std/ranges/access/crend.cc 813f656d997c22d6a8ee2731a00e5a02 libstdc++-v3/testsuite/std/ranges/access/data.cc ! 096bf6c46a093ba6c1d311fd83aff0bf libstdc++-v3/testsuite/std/ranges/access/empty.cc d78c22ddaea678f3b8b83f5fbf2d1bb0 libstdc++-v3/testsuite/std/ranges/access/end.cc 63fac7f7ac06457fbdd995032706d076 libstdc++-v3/testsuite/std/ranges/access/end_neg.cc 2b02ec5d467a580403dc30999945127a libstdc++-v3/testsuite/std/ranges/access/rbegin.cc --- 100774,100780 ---- f36b28257e0ea1d2e828488bff1ef5db libstdc++-v3/testsuite/std/ranges/access/crbegin.cc 08205a191038504dffd017290e9fb9bb libstdc++-v3/testsuite/std/ranges/access/crend.cc 813f656d997c22d6a8ee2731a00e5a02 libstdc++-v3/testsuite/std/ranges/access/data.cc ! d81c6cfc5536b63586a9d913449ec3ed libstdc++-v3/testsuite/std/ranges/access/empty.cc d78c22ddaea678f3b8b83f5fbf2d1bb0 libstdc++-v3/testsuite/std/ranges/access/end.cc 63fac7f7ac06457fbdd995032706d076 libstdc++-v3/testsuite/std/ranges/access/end_neg.cc 2b02ec5d467a580403dc30999945127a libstdc++-v3/testsuite/std/ranges/access/rbegin.cc *************** a4d1f3ed07ae3c4a627dba7f1d049d09 libstd *** 100265,100304 **** a5eca59ad3a505db37a370a792c4b569 libstdc++-v3/testsuite/std/ranges/adaptors/counted.cc f34438af4cd4cb8233c9bc8e4ead8e98 libstdc++-v3/testsuite/std/ranges/adaptors/drop.cc 388c77d8d530897650c1d9b9c5e2f2e7 libstdc++-v3/testsuite/std/ranges/adaptors/drop_while.cc ! ec82a980a03da6ab01e26e95b6b8d22c libstdc++-v3/testsuite/std/ranges/adaptors/elements.cc 422b7c7dcad00cde0852203edf42aaa3 libstdc++-v3/testsuite/std/ranges/adaptors/filter.cc ! 7ec52994a03c59698174c97fa78c66ac libstdc++-v3/testsuite/std/ranges/adaptors/join.cc aa13eee6ba501f263a3160f55ab522db libstdc++-v3/testsuite/std/ranges/adaptors/lwg3286.cc b214eeca1323d25665dd69499f5b8bbc libstdc++-v3/testsuite/std/ranges/adaptors/lwg3313_neg.cc b4f233ae889b1a6c5cc26257b09ea2a7 libstdc++-v3/testsuite/std/ranges/adaptors/lwg3325_neg.cc 26c244b6d33be18fb0ee1cec2c007184 libstdc++-v3/testsuite/std/ranges/adaptors/lwg3406.cc ! 6c8925a436d06c920979a0b442d03bc8 libstdc++-v3/testsuite/std/ranges/adaptors/reverse.cc ! ffaa4cf8ed2d39a0b69860d866d41bad libstdc++-v3/testsuite/std/ranges/adaptors/split.cc c529955e223cca2a1a094d892599c2c3 libstdc++-v3/testsuite/std/ranges/adaptors/split_neg.cc 47715759a956f9752c1a132d474acde9 libstdc++-v3/testsuite/std/ranges/adaptors/take.cc 3672331a4b65a1ec9658a7f9c10dd0df libstdc++-v3/testsuite/std/ranges/adaptors/take_while.cc ! 20fafdd88a1a8eb9862e3c80db9b79e0 libstdc++-v3/testsuite/std/ranges/adaptors/transform.cc 60ec93e1146567f207bd2bb22fd68e82 libstdc++-v3/testsuite/std/ranges/empty_view.cc 8787306659e5f072a58219a2a5f9668c libstdc++-v3/testsuite/std/ranges/headers/ranges/synopsis.cc 3f9b315b6bd0a3b4c9f85917ea036dfb libstdc++-v3/testsuite/std/ranges/iota/93267.cc b05e7f4b424a4b81c290352301eaf078 libstdc++-v3/testsuite/std/ranges/iota/96042.cc ! dc5dad9ddcd47b0722c64fd6188c8895 libstdc++-v3/testsuite/std/ranges/iota/iota_view.cc e29b189a9133430a1874afdc34808c26 libstdc++-v3/testsuite/std/ranges/iota/iterator.cc 7345a3dc8cb9da2b2e26d9edb44dbfa4 libstdc++-v3/testsuite/std/ranges/iota/lwg3292_neg.cc 8d8e3eb5f08d2b84159861294c9ec4b6 libstdc++-v3/testsuite/std/ranges/iota/size.cc ! 8811b14439d0019ac7ef728e6ad66faf libstdc++-v3/testsuite/std/ranges/istream_view.cc ! 411f4f259b2815e49bcd31fac63fe020 libstdc++-v3/testsuite/std/ranges/range.cc 611f120f9b18a09ab8b2e78fa3ba9ef2 libstdc++-v3/testsuite/std/ranges/refinements.cc 8ef3ca45217d902b9162717de706dd0a libstdc++-v3/testsuite/std/ranges/safe_range.cc 1dcec8b2ea1e45df2a64e0b539490fbe libstdc++-v3/testsuite/std/ranges/safe_range_types.cc ! 0cfd518c1ea789b381babf48ba87bbdc libstdc++-v3/testsuite/std/ranges/single_view.cc 8a3bc76ad2e10ea103445876cf99f0ea libstdc++-v3/testsuite/std/ranges/sized.cc efaf2202d6b2d3f0be93e38c4b9f3cab libstdc++-v3/testsuite/std/ranges/subrange/96042.cc ! c47bae36382ab6b2977bf7a7a89ad02e libstdc++-v3/testsuite/std/ranges/subrange/lwg3282_neg.cc a001429cc75f99af68b5fb8d03a383cf libstdc++-v3/testsuite/std/ranges/subrange/lwg3286.cc c5a935dae00aaf011e3dd35c5c3e93ed libstdc++-v3/testsuite/std/ranges/subrange/lwg3433.cc 2f7779ae562486877e7bd9bef4cc5c2a libstdc++-v3/testsuite/std/ranges/subrange/tuple_like.cc ! de0128e2668dcb49bb287b52062cf612 libstdc++-v3/testsuite/std/ranges/view.cc 3d0cd474f0f2100fefeb306ce125ab29 libstdc++-v3/testsuite/std/time/clock/file/members.cc 0681ec20cbabd3e58c9777e93c21512d libstdc++-v3/testsuite/std/time/clock/file/overview.cc 96482484a5950a3ec9e7e984d4895c8e libstdc++-v3/testsuite/std/time/syn_c++20.cc --- 100790,100831 ---- a5eca59ad3a505db37a370a792c4b569 libstdc++-v3/testsuite/std/ranges/adaptors/counted.cc f34438af4cd4cb8233c9bc8e4ead8e98 libstdc++-v3/testsuite/std/ranges/adaptors/drop.cc 388c77d8d530897650c1d9b9c5e2f2e7 libstdc++-v3/testsuite/std/ranges/adaptors/drop_while.cc ! 105ea802ef341f4d5aef7d47828701fd libstdc++-v3/testsuite/std/ranges/adaptors/elements.cc 422b7c7dcad00cde0852203edf42aaa3 libstdc++-v3/testsuite/std/ranges/adaptors/filter.cc ! 4707fdca5d12b8213e0d631f1e05c99e libstdc++-v3/testsuite/std/ranges/adaptors/join.cc aa13eee6ba501f263a3160f55ab522db libstdc++-v3/testsuite/std/ranges/adaptors/lwg3286.cc b214eeca1323d25665dd69499f5b8bbc libstdc++-v3/testsuite/std/ranges/adaptors/lwg3313_neg.cc b4f233ae889b1a6c5cc26257b09ea2a7 libstdc++-v3/testsuite/std/ranges/adaptors/lwg3325_neg.cc 26c244b6d33be18fb0ee1cec2c007184 libstdc++-v3/testsuite/std/ranges/adaptors/lwg3406.cc ! a98a8a0fe31e3844c8e1635b1a090fcd libstdc++-v3/testsuite/std/ranges/adaptors/reverse.cc ! 6f5127d8350542bd8c7195bc7737c15a libstdc++-v3/testsuite/std/ranges/adaptors/split.cc c529955e223cca2a1a094d892599c2c3 libstdc++-v3/testsuite/std/ranges/adaptors/split_neg.cc 47715759a956f9752c1a132d474acde9 libstdc++-v3/testsuite/std/ranges/adaptors/take.cc 3672331a4b65a1ec9658a7f9c10dd0df libstdc++-v3/testsuite/std/ranges/adaptors/take_while.cc ! 9c0969c726d1a079ceacddb0d16b80f4 libstdc++-v3/testsuite/std/ranges/adaptors/transform.cc 60ec93e1146567f207bd2bb22fd68e82 libstdc++-v3/testsuite/std/ranges/empty_view.cc 8787306659e5f072a58219a2a5f9668c libstdc++-v3/testsuite/std/ranges/headers/ranges/synopsis.cc 3f9b315b6bd0a3b4c9f85917ea036dfb libstdc++-v3/testsuite/std/ranges/iota/93267.cc b05e7f4b424a4b81c290352301eaf078 libstdc++-v3/testsuite/std/ranges/iota/96042.cc ! 544504ecc00da9c90156898162a40492 libstdc++-v3/testsuite/std/ranges/iota/iota_view.cc e29b189a9133430a1874afdc34808c26 libstdc++-v3/testsuite/std/ranges/iota/iterator.cc 7345a3dc8cb9da2b2e26d9edb44dbfa4 libstdc++-v3/testsuite/std/ranges/iota/lwg3292_neg.cc 8d8e3eb5f08d2b84159861294c9ec4b6 libstdc++-v3/testsuite/std/ranges/iota/size.cc ! 28aec73b7cd10c11b9e1a909e8c4ba66 libstdc++-v3/testsuite/std/ranges/istream_view.cc ! 39a74ff1ef561d51b687d686060239c1 libstdc++-v3/testsuite/std/ranges/p2259.cc ! 8ad5c819617ad623f237ce25af7657a8 libstdc++-v3/testsuite/std/ranges/p2325.cc ! 5f258fdd276b98d0cf03b265e1546406 libstdc++-v3/testsuite/std/ranges/range.cc 611f120f9b18a09ab8b2e78fa3ba9ef2 libstdc++-v3/testsuite/std/ranges/refinements.cc 8ef3ca45217d902b9162717de706dd0a libstdc++-v3/testsuite/std/ranges/safe_range.cc 1dcec8b2ea1e45df2a64e0b539490fbe libstdc++-v3/testsuite/std/ranges/safe_range_types.cc ! 85a2edb450129d2ffc9c81303930f46f libstdc++-v3/testsuite/std/ranges/single_view.cc 8a3bc76ad2e10ea103445876cf99f0ea libstdc++-v3/testsuite/std/ranges/sized.cc efaf2202d6b2d3f0be93e38c4b9f3cab libstdc++-v3/testsuite/std/ranges/subrange/96042.cc ! 220e7c63243ad2a4bfb6e409f46cb5bc libstdc++-v3/testsuite/std/ranges/subrange/lwg3282_neg.cc a001429cc75f99af68b5fb8d03a383cf libstdc++-v3/testsuite/std/ranges/subrange/lwg3286.cc c5a935dae00aaf011e3dd35c5c3e93ed libstdc++-v3/testsuite/std/ranges/subrange/lwg3433.cc 2f7779ae562486877e7bd9bef4cc5c2a libstdc++-v3/testsuite/std/ranges/subrange/tuple_like.cc ! 6ef0fdf48d8be5b751ba229554f9054d libstdc++-v3/testsuite/std/ranges/view.cc 3d0cd474f0f2100fefeb306ce125ab29 libstdc++-v3/testsuite/std/time/clock/file/members.cc 0681ec20cbabd3e58c9777e93c21512d libstdc++-v3/testsuite/std/time/clock/file/overview.cc 96482484a5950a3ec9e7e984d4895c8e libstdc++-v3/testsuite/std/time/syn_c++20.cc *************** e3863aacf8b8ec733441630f7353c020 libstd *** 100965,100971 **** 59516f1d694489845b3a9f4dce21d3b4 libstdc++-v3/testsuite/util/performance/time/elapsed_timer.hpp 3debeddd6877eb785581e43c41e04f9d libstdc++-v3/testsuite/util/performance/time/timing_test_base.hpp f229f005fb6b0edfab2a25224f4aa670 libstdc++-v3/testsuite/util/pstl/pstl_test_config.h ! bf077ecf7f82302a11843d7108c1be3c libstdc++-v3/testsuite/util/pstl/test_utils.h 8da66b6b45a921d02aca1e9579e64b15 libstdc++-v3/testsuite/util/regression/basic_type.hpp 97d1cb88aa96ba50adc3adb910a1cb26 libstdc++-v3/testsuite/util/regression/common_type.hpp 15429fa4c99d038795101fca86fce630 libstdc++-v3/testsuite/util/regression/rand/assoc/container_rand_regression_test.h --- 101492,101498 ---- 59516f1d694489845b3a9f4dce21d3b4 libstdc++-v3/testsuite/util/performance/time/elapsed_timer.hpp 3debeddd6877eb785581e43c41e04f9d libstdc++-v3/testsuite/util/performance/time/timing_test_base.hpp f229f005fb6b0edfab2a25224f4aa670 libstdc++-v3/testsuite/util/pstl/pstl_test_config.h ! 315ea42a1d905634a70b6bfebf2b60e4 libstdc++-v3/testsuite/util/pstl/test_utils.h 8da66b6b45a921d02aca1e9579e64b15 libstdc++-v3/testsuite/util/regression/basic_type.hpp 97d1cb88aa96ba50adc3adb910a1cb26 libstdc++-v3/testsuite/util/regression/common_type.hpp 15429fa4c99d038795101fca86fce630 libstdc++-v3/testsuite/util/regression/rand/assoc/container_rand_regression_test.h *************** abd5e8d80e9d334fac20b0556b53af8a libstd *** 100996,101002 **** 8ac34f80a8b58a108319ec8504701dda libstdc++-v3/testsuite/util/testsuite_abi.h 0e152db39fee28ca74b6360bba507993 libstdc++-v3/testsuite/util/testsuite_abi_check.cc c0ea220143dd1c8b643a7a627cc0eb00 libstdc++-v3/testsuite/util/testsuite_allocator.cc ! 267565a2a762eb423d82edd781042a0e libstdc++-v3/testsuite/util/testsuite_allocator.h fc7ab03b1a4ae3acdd6930b129d7180f libstdc++-v3/testsuite/util/testsuite_api.h c8bd3d199ebb5d6a5d838437ab13a1f4 libstdc++-v3/testsuite/util/testsuite_character.cc bb4b480648b9498f3c0fd48fc1527c36 libstdc++-v3/testsuite/util/testsuite_character.h --- 101523,101529 ---- 8ac34f80a8b58a108319ec8504701dda libstdc++-v3/testsuite/util/testsuite_abi.h 0e152db39fee28ca74b6360bba507993 libstdc++-v3/testsuite/util/testsuite_abi_check.cc c0ea220143dd1c8b643a7a627cc0eb00 libstdc++-v3/testsuite/util/testsuite_allocator.cc ! 0ae0ec517f6be1f4ef62b356e1b7758f libstdc++-v3/testsuite/util/testsuite_allocator.h fc7ab03b1a4ae3acdd6930b129d7180f libstdc++-v3/testsuite/util/testsuite_api.h c8bd3d199ebb5d6a5d838437ab13a1f4 libstdc++-v3/testsuite/util/testsuite_character.cc bb4b480648b9498f3c0fd48fc1527c36 libstdc++-v3/testsuite/util/testsuite_character.h *************** ea84b2b1448a9f5cee6c20ded4a6a7a7 libstd *** 101006,101017 **** b289122267b9b0599772e7808061bea9 libstdc++-v3/testsuite/util/testsuite_containers.h 255b28fe592f3e5a9f97d0632da0b132 libstdc++-v3/testsuite/util/testsuite_counter_type.h 504d7993d74efea96794b5109c416828 libstdc++-v3/testsuite/util/testsuite_error.h ! 50f6b0538d304917bb826251eab6b1b6 libstdc++-v3/testsuite/util/testsuite_fs.h 74bea6ebba8c18518ce0cefb93456eee libstdc++-v3/testsuite/util/testsuite_greedy_ops.h 353e782ca7d4dca1110e846782e0e17a libstdc++-v3/testsuite/util/testsuite_hooks.cc fbe8e626dcd5af0498dd940f364cf0e6 libstdc++-v3/testsuite/util/testsuite_hooks.h 8feacd0e08553764c35a8641eb690c1b libstdc++-v3/testsuite/util/testsuite_io.h ! d2b0207e3e21017cf2cab804b2ec589e libstdc++-v3/testsuite/util/testsuite_iterators.h b404a6bee8484168d8f19bb4b37d730f libstdc++-v3/testsuite/util/testsuite_new_operators.h 4cb4632e8ce29d0ad2d58ab87f26a5d4 libstdc++-v3/testsuite/util/testsuite_performance.h 1f094c9aa59f512d4386f1375943d013 libstdc++-v3/testsuite/util/testsuite_random.h --- 101533,101544 ---- b289122267b9b0599772e7808061bea9 libstdc++-v3/testsuite/util/testsuite_containers.h 255b28fe592f3e5a9f97d0632da0b132 libstdc++-v3/testsuite/util/testsuite_counter_type.h 504d7993d74efea96794b5109c416828 libstdc++-v3/testsuite/util/testsuite_error.h ! 9f306fa5cc74a1bc33e821cb6c2686f5 libstdc++-v3/testsuite/util/testsuite_fs.h 74bea6ebba8c18518ce0cefb93456eee libstdc++-v3/testsuite/util/testsuite_greedy_ops.h 353e782ca7d4dca1110e846782e0e17a libstdc++-v3/testsuite/util/testsuite_hooks.cc fbe8e626dcd5af0498dd940f364cf0e6 libstdc++-v3/testsuite/util/testsuite_hooks.h 8feacd0e08553764c35a8641eb690c1b libstdc++-v3/testsuite/util/testsuite_io.h ! d840d65a3b66f6f82aeaafae71dd1853 libstdc++-v3/testsuite/util/testsuite_iterators.h b404a6bee8484168d8f19bb4b37d730f libstdc++-v3/testsuite/util/testsuite_new_operators.h 4cb4632e8ce29d0ad2d58ab87f26a5d4 libstdc++-v3/testsuite/util/testsuite_performance.h 1f094c9aa59f512d4386f1375943d013 libstdc++-v3/testsuite/util/testsuite_random.h *************** c836a90323b839246645b3db18ad61db libstd *** 101023,101029 **** 831e968fad59c8fb2c29852e989b4933 libstdc++-v3/testsuite/util/thread/all.h b950d655469c477755252b1e18009596 libtool-ldflags c91d7743f7070c79d86515441fc7e347 libtool.m4 ! b82aaec7ec25527c0ca72fc2b70ee7fb libvtv/ChangeLog 917a384819d8c88f932f05b9f8901a27 libvtv/Makefile.am b1170aae9472f26fdc8326737dc22aba libvtv/Makefile.in 3b765c4f4a0a0f606db1472bce2b8d29 libvtv/acinclude.m4 --- 101550,101556 ---- 831e968fad59c8fb2c29852e989b4933 libstdc++-v3/testsuite/util/thread/all.h b950d655469c477755252b1e18009596 libtool-ldflags c91d7743f7070c79d86515441fc7e347 libtool.m4 ! 6440ed3f06adfd00004bae442da020dd libvtv/ChangeLog 917a384819d8c88f932f05b9f8901a27 libvtv/Makefile.am b1170aae9472f26fdc8326737dc22aba libvtv/Makefile.in 3b765c4f4a0a0f606db1472bce2b8d29 libvtv/acinclude.m4 *************** a82059e4cf6d1733664ef9a8ac817f42 libvtv *** 101106,101112 **** f1ea2b13357bfe01c43d3b6fbf31fd48 libvtv/vtv_utils.h 247597a3fcc5b5aa8bd923351c59d853 ltgcc.m4 06c2854f9cfe5864b2885e0d0e9c512f ltmain.sh ! 63d0e70de3edcfb195ccd272a4248e3b lto-plugin/ChangeLog 48ea87886a6a768ab6024edccc8e1e31 lto-plugin/Makefile.am 9113360bfd397d09dc99413406c60ad4 lto-plugin/Makefile.in 75fc65b35d0a47ac098f7a278d37060b lto-plugin/aclocal.m4 --- 101633,101639 ---- f1ea2b13357bfe01c43d3b6fbf31fd48 libvtv/vtv_utils.h 247597a3fcc5b5aa8bd923351c59d853 ltgcc.m4 06c2854f9cfe5864b2885e0d0e9c512f ltmain.sh ! 5a8e03071c7c90cd50a6ecf9ec3101c1 lto-plugin/ChangeLog 48ea87886a6a768ab6024edccc8e1e31 lto-plugin/Makefile.am 9113360bfd397d09dc99413406c60ad4 lto-plugin/Makefile.in 75fc65b35d0a47ac098f7a278d37060b lto-plugin/aclocal.m4 *************** dee72a6a60e99528b0d17bf3ff9a1e15 ltopti *** 101118,101130 **** bc2f6032c98896249eadb56177c7d357 ltsugar.m4 c30cd33c496505f13d9fbdb6970c7c33 ltversion.m4 293853a13b7e218e3a4342cf85fbbf25 lt~obsolete.m4 ! 3f6a8a8edd82adb54c340d3e555ce934 maintainer-scripts/ChangeLog 33c7bc2d2c55956dfac85a05d8a80eff maintainer-scripts/README e70ffb6559f8817db41ee1e69bc60287 maintainer-scripts/branch_changer.py 1c3f2c7d87d076b4209a2a03844292e5 maintainer-scripts/bugzilla-close-candidate.py 5ff187bd37be8a647a82b6a2d1ac321a maintainer-scripts/crontab 1777fbf3e6a3232bd6898ce857cdf2fd maintainer-scripts/gcc_release ! 4b085aa82b5f2fe789828063eed76560 maintainer-scripts/generate_libstdcxx_web_docs 33d97164a8610c7abf67eff7d28f47ff maintainer-scripts/maintainer-addresses e310820d0266ff02d41632dca1290258 maintainer-scripts/update_version_git 4c0406d5444d6d2dc128b2d342d9e0ad maintainer-scripts/update_web_docs_git --- 101645,101657 ---- bc2f6032c98896249eadb56177c7d357 ltsugar.m4 c30cd33c496505f13d9fbdb6970c7c33 ltversion.m4 293853a13b7e218e3a4342cf85fbbf25 lt~obsolete.m4 ! 3c082eac4d3fb4968216f65bca9530b5 maintainer-scripts/ChangeLog 33c7bc2d2c55956dfac85a05d8a80eff maintainer-scripts/README e70ffb6559f8817db41ee1e69bc60287 maintainer-scripts/branch_changer.py 1c3f2c7d87d076b4209a2a03844292e5 maintainer-scripts/bugzilla-close-candidate.py 5ff187bd37be8a647a82b6a2d1ac321a maintainer-scripts/crontab 1777fbf3e6a3232bd6898ce857cdf2fd maintainer-scripts/gcc_release ! 262d529ab10d5bd398f14fc1ec9fed1a maintainer-scripts/generate_libstdcxx_web_docs 33d97164a8610c7abf67eff7d28f47ff maintainer-scripts/maintainer-addresses e310820d0266ff02d41632dca1290258 maintainer-scripts/update_version_git 4c0406d5444d6d2dc128b2d342d9e0ad maintainer-scripts/update_web_docs_git *************** cf2baa0854f564a7785307e79f155efc symlin *** 101138,101144 **** 40bb1f4ce4a60a36d1ec50d66aeed4d1 test-driver cb06c1be6a41d68b0a65e0c1a91752bc ylwrap 03bf3ba8089f4bf475ef4035cf316a47 zlib/CMakeLists.txt ! 412b3484f5008a5e1c0d6f1607d979ae zlib/ChangeLog 25f33f86e95b8478cd142323485efc71 zlib/ChangeLog.gcj 0e9a37be8e3b85cc0ccf60504064c297 zlib/ChangeLog.jit b7a1991f01daea3efe108a215c5514a5 zlib/FAQ --- 101665,101671 ---- 40bb1f4ce4a60a36d1ec50d66aeed4d1 test-driver cb06c1be6a41d68b0a65e0c1a91752bc ylwrap 03bf3ba8089f4bf475ef4035cf316a47 zlib/CMakeLists.txt ! 1027c2fbfdfcd84db4e4b4055ebc26a5 zlib/ChangeLog 25f33f86e95b8478cd142323485efc71 zlib/ChangeLog.gcj 0e9a37be8e3b85cc0ccf60504064c297 zlib/ChangeLog.jit b7a1991f01daea3efe108a215c5514a5 zlib/FAQ diff -Nrcpad gcc-10.3.0/Makefile.def gcc-10.4.0/Makefile.def *** gcc-10.3.0/Makefile.def Thu Apr 8 11:56:27 2021 --- gcc-10.4.0/Makefile.def Tue Jun 28 08:54:27 2022 *************** flags_to_pass = { flag= CFLAGS_FOR_TARGE *** 283,288 **** --- 283,289 ---- flags_to_pass = { flag= CPPFLAGS_FOR_TARGET ; }; flags_to_pass = { flag= CXXFLAGS_FOR_TARGET ; }; flags_to_pass = { flag= DLLTOOL_FOR_TARGET ; }; + flags_to_pass = { flag= DSYMUTIL_FOR_TARGET ; }; flags_to_pass = { flag= FLAGS_FOR_TARGET ; }; flags_to_pass = { flag= GFORTRAN_FOR_TARGET ; }; flags_to_pass = { flag= GOC_FOR_TARGET ; }; diff -Nrcpad gcc-10.3.0/Makefile.in gcc-10.4.0/Makefile.in *** gcc-10.3.0/Makefile.in Thu Apr 8 11:57:03 2021 --- gcc-10.4.0/Makefile.in Tue Jun 28 08:55:09 2022 *************** RPATH_ENVVAR = @RPATH_ENVVAR@ *** 109,114 **** --- 109,117 ---- # executables in PATH. GCC_SHLIB_SUBDIR = @GCC_SHLIB_SUBDIR@ + # If the build should make suitable code for shared host resources. + host_shared = @host_shared@ + # Build programs are put under this directory. BUILD_SUBDIR = @build_subdir@ # This is set by the configure script to the arguments to use when configuring *************** BUILD_EXPORTS = \ *** 159,164 **** --- 162,168 ---- GDC="$(GDC_FOR_BUILD)"; export GDC; \ GDCFLAGS="$(GDCFLAGS_FOR_BUILD)"; export GDCFLAGS; \ DLLTOOL="$(DLLTOOL_FOR_BUILD)"; export DLLTOOL; \ + DSYMUTIL="$(DSYMUTIL_FOR_BUILD)"; export DSYMUTIL; \ LD="$(LD_FOR_BUILD)"; export LD; \ LDFLAGS="$(LDFLAGS_FOR_BUILD)"; export LDFLAGS; \ NM="$(NM_FOR_BUILD)"; export NM; \ *************** HOST_EXPORTS = \ *** 200,205 **** --- 204,210 ---- CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ CXX_FOR_BUILD="$(CXX_FOR_BUILD)"; export CXX_FOR_BUILD; \ DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + DSYMUTIL="$(DSYMUTIL)"; export DSYMUTIL; \ LD="$(LD)"; export LD; \ LDFLAGS="$(STAGE1_LDFLAGS) $(LDFLAGS)"; export LDFLAGS; \ NM="$(NM)"; export NM; \ *************** HOST_EXPORTS = \ *** 212,217 **** --- 217,223 ---- READELF="$(READELF)"; export READELF; \ AR_FOR_TARGET="$(AR_FOR_TARGET)"; export AR_FOR_TARGET; \ AS_FOR_TARGET="$(AS_FOR_TARGET)"; export AS_FOR_TARGET; \ + DSYMUTIL_FOR_TARGET="$(DSYMUTIL_FOR_TARGET)"; export DSYMUTIL_FOR_TARGET; \ GCC_FOR_TARGET="$(GCC_FOR_TARGET)"; export GCC_FOR_TARGET; \ LD_FOR_TARGET="$(LD_FOR_TARGET)"; export LD_FOR_TARGET; \ NM_FOR_TARGET="$(NM_FOR_TARGET)"; export NM_FOR_TARGET; \ *************** BASE_TARGET_EXPORTS = \ *** 294,299 **** --- 300,306 ---- GOC="$(GOC_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export GOC; \ GDC="$(GDC_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export GDC; \ DLLTOOL="$(DLLTOOL_FOR_TARGET)"; export DLLTOOL; \ + DSYMUTIL="$(DSYMUTIL_FOR_TARGET)"; export DSYMUTIL; \ LD="$(COMPILER_LD_FOR_TARGET)"; export LD; \ LDFLAGS="$(LDFLAGS_FOR_TARGET)"; export LDFLAGS; \ LIPO="$(LIPO_FOR_TARGET)"; export LIPO; \ *************** CFLAGS_FOR_BUILD = @CFLAGS_FOR_BUILD@ *** 356,361 **** --- 363,369 ---- CXXFLAGS_FOR_BUILD = @CXXFLAGS_FOR_BUILD@ CXX_FOR_BUILD = @CXX_FOR_BUILD@ DLLTOOL_FOR_BUILD = @DLLTOOL_FOR_BUILD@ + DSYMUTIL_FOR_BUILD = @DSYMUTIL_FOR_BUILD@ GFORTRAN_FOR_BUILD = @GFORTRAN_FOR_BUILD@ GOC_FOR_BUILD = @GOC_FOR_BUILD@ GDC_FOR_BUILD = @GDC_FOR_BUILD@ *************** AR_FLAGS = rc *** 406,411 **** --- 414,420 ---- CC = @CC@ CXX = @CXX@ DLLTOOL = @DLLTOOL@ + DSYMUTIL = @DSYMUTIL@ LD = @LD@ LIPO = @LIPO@ NM = @NM@ *************** GFORTRAN_FOR_TARGET=$(STAGE_CC_WRAPPER) *** 596,601 **** --- 605,611 ---- GOC_FOR_TARGET=$(STAGE_CC_WRAPPER) @GOC_FOR_TARGET@ GDC_FOR_TARGET=$(STAGE_CC_WRAPPER) @GDC_FOR_TARGET@ DLLTOOL_FOR_TARGET=@DLLTOOL_FOR_TARGET@ + DSYMUTIL_FOR_TARGET=@DSYMUTIL_FOR_TARGET@ LD_FOR_TARGET=@LD_FOR_TARGET@ LIPO_FOR_TARGET=@LIPO_FOR_TARGET@ *************** BASE_FLAGS_TO_PASS = \ *** 814,819 **** --- 824,830 ---- "CPPFLAGS_FOR_TARGET=$(CPPFLAGS_FOR_TARGET)" \ "CXXFLAGS_FOR_TARGET=$(CXXFLAGS_FOR_TARGET)" \ "DLLTOOL_FOR_TARGET=$(DLLTOOL_FOR_TARGET)" \ + "DSYMUTIL_FOR_TARGET=$(DSYMUTIL_FOR_TARGET)" \ "FLAGS_FOR_TARGET=$(FLAGS_FOR_TARGET)" \ "GFORTRAN_FOR_TARGET=$(GFORTRAN_FOR_TARGET)" \ "GOC_FOR_TARGET=$(GOC_FOR_TARGET)" \ *************** EXTRA_HOST_FLAGS = \ *** 889,894 **** --- 900,906 ---- 'CC=$(CC)' \ 'CXX=$(CXX)' \ 'DLLTOOL=$(DLLTOOL)' \ + 'DSYMUTIL=$(DSYMUTIL)' \ 'GFORTRAN=$(GFORTRAN)' \ 'GOC=$(GOC)' \ 'GDC=$(GDC)' \ *************** EXTRA_TARGET_FLAGS = \ *** 947,952 **** --- 959,965 ---- $$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \ 'CXXFLAGS=$$(CXXFLAGS_FOR_TARGET)' \ 'DLLTOOL=$$(DLLTOOL_FOR_TARGET)' \ + 'DSYMUTIL=$$(DSYMUTIL_FOR_TARGET)' \ 'GFORTRAN=$$(GFORTRAN_FOR_TARGET) $$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \ 'GOC=$$(GOC_FOR_TARGET) $$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \ 'GOCFLAGS=$$(GOCFLAGS_FOR_TARGET)' \ diff -Nrcpad gcc-10.3.0/Makefile.tpl gcc-10.4.0/Makefile.tpl *** gcc-10.3.0/Makefile.tpl Thu Apr 8 11:56:27 2021 --- gcc-10.4.0/Makefile.tpl Tue Jun 28 08:54:27 2022 *************** RPATH_ENVVAR = @RPATH_ENVVAR@ *** 112,117 **** --- 112,120 ---- # executables in PATH. GCC_SHLIB_SUBDIR = @GCC_SHLIB_SUBDIR@ + # If the build should make suitable code for shared host resources. + host_shared = @host_shared@ + # Build programs are put under this directory. BUILD_SUBDIR = @build_subdir@ # This is set by the configure script to the arguments to use when configuring *************** BUILD_EXPORTS = \ *** 162,167 **** --- 165,171 ---- GDC="$(GDC_FOR_BUILD)"; export GDC; \ GDCFLAGS="$(GDCFLAGS_FOR_BUILD)"; export GDCFLAGS; \ DLLTOOL="$(DLLTOOL_FOR_BUILD)"; export DLLTOOL; \ + DSYMUTIL="$(DSYMUTIL_FOR_BUILD)"; export DSYMUTIL; \ LD="$(LD_FOR_BUILD)"; export LD; \ LDFLAGS="$(LDFLAGS_FOR_BUILD)"; export LDFLAGS; \ NM="$(NM_FOR_BUILD)"; export NM; \ *************** HOST_EXPORTS = \ *** 203,208 **** --- 207,213 ---- CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ CXX_FOR_BUILD="$(CXX_FOR_BUILD)"; export CXX_FOR_BUILD; \ DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + DSYMUTIL="$(DSYMUTIL)"; export DSYMUTIL; \ LD="$(LD)"; export LD; \ LDFLAGS="$(STAGE1_LDFLAGS) $(LDFLAGS)"; export LDFLAGS; \ NM="$(NM)"; export NM; \ *************** HOST_EXPORTS = \ *** 215,220 **** --- 220,226 ---- READELF="$(READELF)"; export READELF; \ AR_FOR_TARGET="$(AR_FOR_TARGET)"; export AR_FOR_TARGET; \ AS_FOR_TARGET="$(AS_FOR_TARGET)"; export AS_FOR_TARGET; \ + DSYMUTIL_FOR_TARGET="$(DSYMUTIL_FOR_TARGET)"; export DSYMUTIL_FOR_TARGET; \ GCC_FOR_TARGET="$(GCC_FOR_TARGET)"; export GCC_FOR_TARGET; \ LD_FOR_TARGET="$(LD_FOR_TARGET)"; export LD_FOR_TARGET; \ NM_FOR_TARGET="$(NM_FOR_TARGET)"; export NM_FOR_TARGET; \ *************** BASE_TARGET_EXPORTS = \ *** 297,302 **** --- 303,309 ---- GOC="$(GOC_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export GOC; \ GDC="$(GDC_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export GDC; \ DLLTOOL="$(DLLTOOL_FOR_TARGET)"; export DLLTOOL; \ + DSYMUTIL="$(DSYMUTIL_FOR_TARGET)"; export DSYMUTIL; \ LD="$(COMPILER_LD_FOR_TARGET)"; export LD; \ LDFLAGS="$(LDFLAGS_FOR_TARGET)"; export LDFLAGS; \ LIPO="$(LIPO_FOR_TARGET)"; export LIPO; \ *************** CFLAGS_FOR_BUILD = @CFLAGS_FOR_BUILD@ *** 359,364 **** --- 366,372 ---- CXXFLAGS_FOR_BUILD = @CXXFLAGS_FOR_BUILD@ CXX_FOR_BUILD = @CXX_FOR_BUILD@ DLLTOOL_FOR_BUILD = @DLLTOOL_FOR_BUILD@ + DSYMUTIL_FOR_BUILD = @DSYMUTIL_FOR_BUILD@ GFORTRAN_FOR_BUILD = @GFORTRAN_FOR_BUILD@ GOC_FOR_BUILD = @GOC_FOR_BUILD@ GDC_FOR_BUILD = @GDC_FOR_BUILD@ *************** AR_FLAGS = rc *** 409,414 **** --- 417,423 ---- CC = @CC@ CXX = @CXX@ DLLTOOL = @DLLTOOL@ + DSYMUTIL = @DSYMUTIL@ LD = @LD@ LIPO = @LIPO@ NM = @NM@ *************** GFORTRAN_FOR_TARGET=$(STAGE_CC_WRAPPER) *** 519,524 **** --- 528,534 ---- GOC_FOR_TARGET=$(STAGE_CC_WRAPPER) @GOC_FOR_TARGET@ GDC_FOR_TARGET=$(STAGE_CC_WRAPPER) @GDC_FOR_TARGET@ DLLTOOL_FOR_TARGET=@DLLTOOL_FOR_TARGET@ + DSYMUTIL_FOR_TARGET=@DSYMUTIL_FOR_TARGET@ LD_FOR_TARGET=@LD_FOR_TARGET@ LIPO_FOR_TARGET=@LIPO_FOR_TARGET@ *************** EXTRA_HOST_FLAGS = \ *** 644,649 **** --- 654,660 ---- 'CC=$(CC)' \ 'CXX=$(CXX)' \ 'DLLTOOL=$(DLLTOOL)' \ + 'DSYMUTIL=$(DSYMUTIL)' \ 'GFORTRAN=$(GFORTRAN)' \ 'GOC=$(GOC)' \ 'GDC=$(GDC)' \ *************** EXTRA_TARGET_FLAGS = \ *** 702,707 **** --- 713,719 ---- $$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \ 'CXXFLAGS=$$(CXXFLAGS_FOR_TARGET)' \ 'DLLTOOL=$$(DLLTOOL_FOR_TARGET)' \ + 'DSYMUTIL=$$(DSYMUTIL_FOR_TARGET)' \ 'GFORTRAN=$$(GFORTRAN_FOR_TARGET) $$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \ 'GOC=$$(GOC_FOR_TARGET) $$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \ 'GOCFLAGS=$$(GOCFLAGS_FOR_TARGET)' \ diff -Nrcpad gcc-10.3.0/NEWS gcc-10.4.0/NEWS *** gcc-10.3.0/NEWS Thu Apr 8 11:57:23 2021 --- gcc-10.4.0/NEWS Tue Jun 28 08:55:31 2022 *************** see ONEWS. *** 6,32 **** ====================================================================== http://gcc.gnu.org/gcc-10/index.html - GCC 10 Release Series ! April 8, 2021 The [1]GNU project and the GCC developers are pleased to announce the ! release of GCC 10.3. This release is a bug-fix release, containing fixes for regressions in ! GCC 10.2 relative to previous releases of GCC. Release History GCC 10.3 ! April 8, 2021 ([2]changes, [3]documentation) GCC 10.2 ! July 23, 2020 ([4]changes, [5]documentation) GCC 10.1 ! May 7, 2020 ([6]changes, [7]documentation) References and Acknowledgements --- 6,34 ---- ====================================================================== http://gcc.gnu.org/gcc-10/index.html GCC 10 Release Series ! June 28, 2022 The [1]GNU project and the GCC developers are pleased to announce the ! release of GCC 10.4. This release is a bug-fix release, containing fixes for regressions in ! GCC 10.3 relative to previous releases of GCC. Release History + GCC 10.4 + June 28, 2022 ([2]changes, [3]documentation) + GCC 10.3 ! April 8, 2021 ([4]changes, [5]documentation) GCC 10.2 ! July 23, 2020 ([6]changes, [7]documentation) GCC 10.1 ! May 7, 2020 ([8]changes, [9]documentation) References and Acknowledgements *************** References and Acknowledgements *** 34,93 **** supports several other languages aside from C, it now stands for the GNU Compiler Collection. ! A list of [8]successful builds is updated as new information becomes available. The GCC developers would like to thank the numerous people that have contributed new features, improvements, bug fixes, and other changes as ! well as test results to GCC. This [9]amazing group of volunteers is what makes GCC successful. ! For additional information about GCC please refer to the [10]GCC ! project web site or contact the [11]GCC development mailing list. ! To obtain GCC please use [12]our mirror sites or [13]our version control system. For questions related to the use of GCC, please consult these web ! pages and the [14]GCC manuals. If that fails, the ! [15]gcc-help@gcc.gnu.org mailing list might help. Comments on these web pages and the development of GCC are welcome on our developer ! list at [16]gcc@gcc.gnu.org. All of [17]our lists have public archives. ! Copyright (C) [18]Free Software Foundation, Inc. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! These pages are [19]maintained by the GCC team. Last modified ! 2021-04-08[20]. References 1. http://www.gnu.org/ 2. http://gcc.gnu.org/gcc-10/changes.html ! 3. http://gcc.gnu.org/onlinedocs/10.3.0/ 4. http://gcc.gnu.org/gcc-10/changes.html ! 5. http://gcc.gnu.org/onlinedocs/10.2.0/ 6. http://gcc.gnu.org/gcc-10/changes.html ! 7. http://gcc.gnu.org/onlinedocs/10.1.0/ ! 8. http://gcc.gnu.org/gcc-10/buildstat.html ! 9. http://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/Contributors.html ! 10. http://gcc.gnu.org/index.html ! 11. mailto:gcc@gcc.gnu.org ! 12. http://gcc.gnu.org/mirrors.html ! 13. http://gcc.gnu.org/git.html ! 14. https://gcc.gnu.org/onlinedocs/ ! 15. mailto:gcc-help@gcc.gnu.org ! 16. mailto:gcc@gcc.gnu.org ! 17. https://gcc.gnu.org/lists.html ! 18. https://www.fsf.org/ ! 19. https://gcc.gnu.org/about.html ! 20. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-10/changes.html - GCC 10 Release Series Changes, New Features, and Fixes --- 36,96 ---- 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-06-28[22]. 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 ! 22. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-10/changes.html GCC 10 Release Series Changes, New Features, and Fixes *************** New Languages and Language-Specific Impr *** 255,263 **** 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 --- 258,266 ---- 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 *************** int get_naïve_pi() { *** 489,494 **** --- 492,502 ---- change therefore breaks the ABI, but only for cases where this 126 character limit was exceeded. + Go + + * GCC 10 provides a complete implementation of the Go 1.14.6 user + packages. + libgccjit * The libgccjit API gained four new entry points: *************** typedef svbool_t pred512 __attribute__(( *** 532,538 **** 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 --- 540,546 ---- 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.3 *** 800,819 **** for all SVE implementations. Adding -msve-vector-bits=512 makes the code specific to 512-bit SVE. For questions related to the use of GCC, please consult these web ! pages and the [60]GCC manuals. If that fails, the ! [61]gcc-help@gcc.gnu.org mailing list might help. Comments on these web pages and the development of GCC are welcome on our developer ! list at [62]gcc@gcc.gnu.org. All of [63]our lists have public archives. ! Copyright (C) [64]Free Software Foundation, Inc. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! These pages are [65]maintained by the GCC team. Last modified ! 2021-04-08[66]. References --- 808,848 ---- for all SVE implementations. Adding -msve-vector-bits=512 makes the code specific to 512-bit SVE. + x86-64 + + * GCC 10.3 supports AMD CPUs based on the znver3 core via + -march=znver3. + + GCC 10.4 + + This is the [60]list of problem reports (PRs) from GCC's bug tracking + system that are known to be fixed in the 10.4 release. This list might + not be complete (that is, it is possible that some PRs that have been + fixed are not listed here). + + Target Specific Changes + + x86-64 + + * The x86-64 ABI of passing and returning structures with a 64-bit + integer vector changed in GCC 10.1 when MMX is disabled. Disabling + 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 ! 2022-06-28[67]. References *************** References *** 834,840 **** 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#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 --- 863,869 ---- 15. https://facebook.github.io/zstd/ 16. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/Optimize-Options.html#index-fprofile-values 17. https://www.openacc.org/ ! 18. https://gcc.gnu.org/wiki/OpenACC/Implementation Status#status-10 19. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/libgomp/#toc-Enabling-OpenACC-1 20. https://www.openmp.org/specifications/ 21. https://gcc.gnu.org/wiki/Offloading *************** References *** 876,911 **** 57. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=10.0 58. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=10.2 59. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=10.3 ! 60. https://gcc.gnu.org/onlinedocs/ ! 61. mailto:gcc-help@gcc.gnu.org ! 62. mailto:gcc@gcc.gnu.org ! 63. https://gcc.gnu.org/lists.html ! 64. https://www.fsf.org/ ! 65. https://gcc.gnu.org/about.html ! 66. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-9/index.html - GCC 9 Release Series ! Mar 12, 2020 The [1]GNU project and the GCC developers are pleased to announce the ! release of GCC 9.3. This release is a bug-fix release, containing fixes for regressions in ! GCC 9.2 relative to previous releases of GCC. Release History GCC 9.3 ! Mar 12, 2020 ([2]changes, [3]documentation) GCC 9.2 ! Aug 12, 2019 ([4]changes, [5]documentation) GCC 9.1 ! May 3, 2019 ([6]changes, [7]documentation) References and Acknowledgements --- 905,946 ---- 57. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=10.0 58. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=10.2 59. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=10.3 ! 60. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=10.4 ! 61. https://gcc.gnu.org/onlinedocs/ ! 62. mailto:gcc-help@gcc.gnu.org ! 63. mailto:gcc@gcc.gnu.org ! 64. https://gcc.gnu.org/lists.html ! 65. https://www.fsf.org/ ! 66. https://gcc.gnu.org/about.html ! 67. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-9/index.html GCC 9 Release Series ! May 27, 2022 The [1]GNU project and the GCC developers are pleased to announce the ! release of GCC 9.5. This release is a bug-fix release, containing fixes for regressions in ! GCC 9.4 relative to previous releases of GCC. Release History + GCC 9.5 + May 27, 2022 ([2]changes, [3]documentation) + + GCC 9.4 + June 1, 2021 ([4]changes, [5]documentation) + GCC 9.3 ! Mar 12, 2020 ([6]changes, [7]documentation) GCC 9.2 ! Aug 12, 2019 ([8]changes, [9]documentation) GCC 9.1 ! May 3, 2019 ([10]changes, [11]documentation) References and Acknowledgements *************** References and Acknowledgements *** 913,972 **** supports several other languages aside from C, it now stands for the GNU Compiler Collection. ! A list of [8]successful builds is updated as new information becomes available. The GCC developers would like to thank the numerous people that have contributed new features, improvements, bug fixes, and other changes as ! well as test results to GCC. This [9]amazing group of volunteers is what makes GCC successful. ! For additional information about GCC please refer to the [10]GCC ! project web site or contact the [11]GCC development mailing list. ! To obtain GCC please use [12]our mirror sites or [13]our version control system. For questions related to the use of GCC, please consult these web ! pages and the [14]GCC manuals. If that fails, the ! [15]gcc-help@gcc.gnu.org mailing list might help. Comments on these web pages and the development of GCC are welcome on our developer ! list at [16]gcc@gcc.gnu.org. All of [17]our lists have public archives. ! Copyright (C) [18]Free Software Foundation, Inc. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! These pages are [19]maintained by the GCC team. Last modified ! 2020-03-12[20]. References 1. http://www.gnu.org/ 2. http://gcc.gnu.org/gcc-9/changes.html ! 3. http://gcc.gnu.org/onlinedocs/9.3.0/ 4. http://gcc.gnu.org/gcc-9/changes.html ! 5. http://gcc.gnu.org/onlinedocs/9.2.0/ 6. http://gcc.gnu.org/gcc-9/changes.html ! 7. http://gcc.gnu.org/onlinedocs/9.1.0/ ! 8. http://gcc.gnu.org/gcc-9/buildstat.html ! 9. http://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Contributors.html ! 10. http://gcc.gnu.org/index.html ! 11. mailto:gcc@gcc.gnu.org ! 12. http://gcc.gnu.org/mirrors.html ! 13. http://gcc.gnu.org/git.html ! 14. https://gcc.gnu.org/onlinedocs/ ! 15. mailto:gcc-help@gcc.gnu.org ! 16. mailto:gcc@gcc.gnu.org ! 17. https://gcc.gnu.org/lists.html ! 18. https://www.fsf.org/ ! 19. https://gcc.gnu.org/about.html ! 20. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-9/changes.html - GCC 9 Release Series Changes, New Features, and Fixes --- 948,1010 ---- 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-05-27[24]. 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 ! 24. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-9/changes.html GCC 9 Release Series Changes, New Features, and Fixes *************** GCC 9.3 *** 1701,1706 **** --- 1739,1749 ---- GCC 9.4 + This is the [68]list of problem reports (PRs) from GCC's bug tracking + system that are known to be fixed in the 9.4 release. This list might + not be complete (that is, it is possible that some PRs that have been + fixed are not listed here). + Target Specific Changes AArch64 *************** GCC 9.4 *** 1719,1738 **** for all SVE implementations. Adding -msve-vector-bits=512 makes the code specific to 512-bit SVE. For questions related to the use of GCC, please consult these web ! pages and the [68]GCC manuals. If that fails, the ! [69]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 [70]gcc@gcc.gnu.org. All of [71]our lists have public archives. ! Copyright (C) [72]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 [73]maintained by the GCC team. Last modified ! 2021-03-28[74]. References --- 1762,1788 ---- for all SVE implementations. Adding -msve-vector-bits=512 makes the code specific to 512-bit SVE. + GCC 9.5 + + This is the [69]list of problem reports (PRs) from GCC's bug tracking + system that are known to be fixed in the 9.5 release. This list might + not be complete (that is, it is possible that some PRs that have been + fixed are not listed here). + For questions related to the use of GCC, please consult these web ! pages and the [70]GCC manuals. If that fails, the ! [71]gcc-help@gcc.gnu.org mailing list might help. Comments on these web pages and the development of GCC are welcome on our developer ! list at [72]gcc@gcc.gnu.org. All of [73]our lists have public archives. ! Copyright (C) [74]Free Software Foundation, Inc. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! These pages are [75]maintained by the GCC team. Last modified ! 2022-05-27[76]. References *************** References *** 1771,1777 **** 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#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 --- 1821,1827 ---- 33. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Optimize-Options.html#index-ftree-loop-distribution 34. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Invoking-Gcov.html#Invoking-Gcov 35. https://www.openacc.org/ ! 36. https://gcc.gnu.org/wiki/OpenACC/Implementation Status#status-9 37. https://www.openmp.org/specifications/ 38. https://gcc.gnu.org/ml/gcc-patches/2018-11/msg00628.html 39. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Vector-Extensions.html#index-_005f_005fbuiltin_005fconvertvector *************** References *** 1803,1841 **** 65. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=9.0 66. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=9.2 67. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=9.3 ! 68. https://gcc.gnu.org/onlinedocs/ ! 69. mailto:gcc-help@gcc.gnu.org ! 70. mailto:gcc@gcc.gnu.org ! 71. https://gcc.gnu.org/lists.html ! 72. https://www.fsf.org/ ! 73. https://gcc.gnu.org/about.html ! 74. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-8/index.html - GCC 8 Release Series ! Mar 4, 2020 The [1]GNU project and the GCC developers are pleased to announce the ! release of GCC 8.4. This release is a bug-fix release, containing fixes for regressions in ! GCC 8.3 relative to previous releases of GCC. Release History GCC 8.4 ! Mar 4, 2020 ([2]changes, [3]documentation) GCC 8.3 ! Feb 22, 2019 ([4]changes, [5]documentation) GCC 8.2 ! Jul 26, 2018 ([6]changes, [7]documentation) GCC 8.1 ! May 2, 2018 ([8]changes, [9]documentation) References and Acknowledgements --- 1853,1897 ---- 65. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=9.0 66. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=9.2 67. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=9.3 ! 68. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=9.4 ! 69. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=9.5 ! 70. https://gcc.gnu.org/onlinedocs/ ! 71. mailto:gcc-help@gcc.gnu.org ! 72. mailto:gcc@gcc.gnu.org ! 73. https://gcc.gnu.org/lists.html ! 74. https://www.fsf.org/ ! 75. https://gcc.gnu.org/about.html ! 76. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-8/index.html GCC 8 Release Series ! (This release series is no longer supported.) ! ! May 14, 2021 The [1]GNU project and the GCC developers are pleased to announce the ! release of GCC 8.5. This release is a bug-fix release, containing fixes for regressions in ! GCC 8.4 relative to previous releases of GCC. Release History + GCC 8.5 + May 14, 2021 ([2]changes, [3]documentation) + GCC 8.4 ! Mar 4, 2020 ([4]changes, [5]documentation) GCC 8.3 ! Feb 22, 2019 ([6]changes, [7]documentation) GCC 8.2 ! Jul 26, 2018 ([8]changes, [9]documentation) GCC 8.1 ! May 2, 2018 ([10]changes, [11]documentation) References and Acknowledgements *************** References and Acknowledgements *** 1843,1904 **** 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 ! 2020-03-04[22]. References 1. http://www.gnu.org/ 2. http://gcc.gnu.org/gcc-8/changes.html ! 3. http://gcc.gnu.org/onlinedocs/8.4.0/ 4. http://gcc.gnu.org/gcc-8/changes.html ! 5. http://gcc.gnu.org/onlinedocs/8.3.0/ 6. http://gcc.gnu.org/gcc-8/changes.html ! 7. http://gcc.gnu.org/onlinedocs/8.2.0/ 8. http://gcc.gnu.org/gcc-8/changes.html ! 9. http://gcc.gnu.org/onlinedocs/8.1.0/ ! 10. http://gcc.gnu.org/gcc-8/buildstat.html ! 11. http://gcc.gnu.org/onlinedocs/gcc-8.1.0/gcc/Contributors.html ! 12. http://gcc.gnu.org/index.html ! 13. mailto:gcc@gcc.gnu.org ! 14. http://gcc.gnu.org/mirrors.html ! 15. http://gcc.gnu.org/git.html ! 16. https://gcc.gnu.org/onlinedocs/ ! 17. mailto:gcc-help@gcc.gnu.org ! 18. mailto:gcc@gcc.gnu.org ! 19. https://gcc.gnu.org/lists.html ! 20. https://www.fsf.org/ ! 21. https://gcc.gnu.org/about.html ! 22. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-8/changes.html - GCC 8 Release Series Changes, New Features, and Fixes --- 1899,1961 ---- 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-05-06[24]. 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 ! 21. https://gcc.gnu.org/lists.html ! 22. https://www.fsf.org/ ! 23. https://gcc.gnu.org/about.html ! 24. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-8/changes.html GCC 8 Release Series Changes, New Features, and Fixes *************** New Languages and Language specific impr *** 2142,2148 **** * Fixed illegal addresses generated from address expressions which refer only to offset 0. * Fixed a bug with reg+offset addressing on 32b segments. In 'large' ! mode, the offset is treated as 32bits unless it's in global, read-only or kernarg address space. * Fixed a crash caused sometimes by calls with more than 4 arguments. * Fixed a mis-execution issue with kernels that have both unexpanded --- 2199,2205 ---- * Fixed illegal addresses generated from address expressions which refer only to offset 0. * Fixed a bug with reg+offset addressing on 32b segments. In 'large' ! mode, the offset is treated as 32-bit unless it's in global, read-only or kernarg address space. * Fixed a crash caused sometimes by calls with more than 4 arguments. * Fixed a mis-execution issue with kernels that have both unexpanded *************** void copy (const char *s) *** 2183,2189 **** { char buf[80]; strncpy (buf, s, sizeof buf); ! ... } warning: 'strncpy' specified bound 80 equals destination size [-Wstringop-trunca tion] --- 2240,2246 ---- { char buf[80]; strncpy (buf, s, sizeof buf); ! … } warning: 'strncpy' specified bound 80 equals destination size [-Wstringop-trunca tion] *************** void f (void) *** 2256,2262 **** { char a[] = "abcd1234"; strcpy (a, a + 4); ! ... } warning: 'strcpy' accessing 5 bytes at offsets 0 and 4 overlaps 1 byte at offset 4 [-Wrestrict] --- 2313,2319 ---- { 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.4 *** 2949,2954 **** --- 3006,3016 ---- GCC 8.5 + This is the [38]list of problem reports (PRs) from GCC's bug tracking + system that are known to be fixed in the 8.5 release. This list might + not be complete (that is, it is possible that some PRs that have been + fixed are not listed here). + Target Specific Changes AArch64 *************** GCC 8.5 *** 2962,2979 **** For questions related to the use of GCC, please consult these web ! pages and the [38]GCC manuals. If that fails, the ! [39]gcc-help@gcc.gnu.org mailing list might help. Comments on these web pages and the development of GCC are welcome on our developer ! list at [40]gcc@gcc.gnu.org. All of [41]our lists have public archives. ! Copyright (C) [42]Free Software Foundation, Inc. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! These pages are [43]maintained by the GCC team. Last modified ! 2021-03-28[44]. References --- 3024,3041 ---- For questions related to the use of GCC, please consult these web ! pages and the [39]GCC manuals. If that fails, the ! [40]gcc-help@gcc.gnu.org mailing list might help. Comments on these web pages and the development of GCC are welcome on our developer ! list at [41]gcc@gcc.gnu.org. All of [42]our lists have public archives. ! Copyright (C) [43]Free Software Foundation, Inc. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! These pages are [44]maintained by the GCC team. Last modified ! 2021-10-01[45]. References *************** References *** 3014,3031 **** 35. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=8.3 36. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87137 37. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=8.4 ! 38. https://gcc.gnu.org/onlinedocs/ ! 39. mailto:gcc-help@gcc.gnu.org ! 40. mailto:gcc@gcc.gnu.org ! 41. https://gcc.gnu.org/lists.html ! 42. https://www.fsf.org/ ! 43. https://gcc.gnu.org/about.html ! 44. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-7/index.html - GCC 7 Release Series Nov 14, 2019 The [1]GNU project and the GCC developers are pleased to announce the --- 3076,3095 ---- 35. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=8.3 36. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87137 37. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=8.4 ! 38. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=8.5 ! 39. https://gcc.gnu.org/onlinedocs/ ! 40. mailto:gcc-help@gcc.gnu.org ! 41. mailto:gcc@gcc.gnu.org ! 42. https://gcc.gnu.org/lists.html ! 43. https://www.fsf.org/ ! 44. https://gcc.gnu.org/about.html ! 45. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-7/index.html GCC 7 Release Series + (This release series is no longer supported.) + Nov 14, 2019 The [1]GNU project and the GCC developers are pleased to announce the *************** References and Acknowledgements *** 3084,3090 **** provided this notice is preserved. These pages are [23]maintained by the GCC team. Last modified ! 2020-01-14[24]. References --- 3148,3154 ---- provided this notice is preserved. These pages are [23]maintained by the GCC team. Last modified ! 2022-05-06[24]. References *************** References *** 3114,3120 **** 24. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-7/changes.html - GCC 7 Release Series Changes, New Features, and Fixes --- 3178,3183 ---- *************** Address 0x7fffb8dba990 is located in sta *** 3231,3245 **** * The -fsanitize=signed-integer-overflow suboption of the UndefinedBehavior Sanitizer now diagnoses arithmetic overflows even on arithmetic operations with generic vectors. ! * Version 5 of the [6]DWARF debugging information standard is ! supported through the -gdwarf-5 option. The DWARF version 4 ! debugging information remains the default until consumers of ! debugging information are adjusted. New Languages and Language specific improvements OpenACC support in C, C++, and Fortran continues to be maintained and ! improved. See the [7]OpenACC and [8]Offloading wiki pages for further information. Ada --- 3294,3308 ---- * The -fsanitize=signed-integer-overflow suboption of the UndefinedBehavior Sanitizer now diagnoses arithmetic overflows even on arithmetic operations with generic vectors. ! * Version 5 of the DWARF debugging information standard is supported ! through the -gdwarf-5 option. The DWARF version 4 debugging ! information remains the default until consumers of debugging ! information are adjusted. New Languages and Language specific improvements OpenACC support in C, C++, and Fortran continues to be maintained and ! improved. See the [6]OpenACC and [7]Offloading wiki pages for further information. Ada *************** void f (int n) *** 3483,3489 **** d = alloca (n); else d = malloc (n); ! ... } warning: argument to 'alloca may be too large due to conversion from 'int' to 'l --- 3546,3552 ---- 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= *** 3496,3502 **** void f (size_t n) { char *d = alloca (n); ! ... } warning: unbounded use of 'alloca' [-Walloca-larger-than=] --- 3559,3565 ---- void f (size_t n) { char *d = alloca (n); ! … } warning: unbounded use of 'alloca' [-Walloca-larger-than=] *************** void f (unsigned x) *** 3544,3550 **** { char d[4]; snprintf (d, sizeof d, "%#02x", x & 0xff); ! ... } warning: 'snprintf' output may be truncated before the last format character [-W --- 3607,3613 ---- { char d[4]; snprintf (d, sizeof d, "%#02x", x & 0xff); ! … } warning: 'snprintf' output may be truncated before the last format character [-W *************** note: 'snprintf' output between 3 and 5 *** 3558,3564 **** more cases of the problem than in prior GCC versions. + The -Wstringop-overflow=type option detects buffer overflow in calls to string handling functions like memcpy and strcpy. The ! option relies on [9]Object Size Checking and has an effect similar to defining the _FORTIFY_SOURCE macro. -Wstringop-overflow=2 is enabled by default. For example, in the following snippet, because the call to --- 3621,3627 ---- more cases of the problem than in prior GCC versions. + The -Wstringop-overflow=type option detects buffer overflow in calls to string handling functions like memcpy and strcpy. The ! option relies on [8]Object Size Checking and has an effect similar to defining the _FORTIFY_SOURCE macro. -Wstringop-overflow=2 is enabled by default. For example, in the following snippet, because the call to *************** void f (const char *fname) *** 3572,3578 **** 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 --- 3635,3641 ---- 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 *************** enum { *** 3648,3661 **** C++17 draft with the -std=c++1z or -std=gnu++1z flags, including if constexpr, class template argument deduction, auto template parameters, and structured bindings. For a full list of new ! features, see [10]the C++ status page. * C++17 support for new of over-aligned types can be enabled in other modes with the -faligned-new flag. * The C++17 evaluation order requirements can be selected in other modes with the -fstrong-eval-order flag, or disabled in C++17 mode with -fno-strong-eval-order. * The default semantics of inherited constructors has changed in all ! modes, following [11]P0136. Essentially, overload resolution happens as if calling the inherited constructor directly, and the compiler fills in construction of the other bases and members as needed. Most uses should not need any changes. The old behavior can --- 3711,3724 ---- C++17 draft with the -std=c++1z or -std=gnu++1z flags, including if constexpr, class template argument deduction, auto template parameters, and structured bindings. For a full list of new ! features, see [9]the C++ status page. * C++17 support for new of over-aligned types can be enabled in other modes with the -faligned-new flag. * The C++17 evaluation order requirements can be selected in other modes with the -fstrong-eval-order flag, or disabled in C++17 mode with -fno-strong-eval-order. * The default semantics of inherited constructors has changed in all ! modes, following [10]P0136. Essentially, overload resolution happens as if calling the inherited constructor directly, and the compiler fills in construction of the other bases and members as needed. Most uses should not need any changes. The old behavior can *************** test.cc:4:11: error: expected ';' after *** 3679,3685 **** Runtime Library (libstdc++) * The type of exception thrown by iostreams, std::ios_base::failure, ! now uses the [12]cxx11 ABI. * Experimental support for C++17, including the following new features: + std::string_view; --- 3742,3748 ---- Runtime Library (libstdc++) * The type of exception thrown by iostreams, std::ios_base::failure, ! now uses the [11]cxx11 ABI. * Experimental support for C++17, including the following new features: + std::string_view; *************** test.cc:4:11: error: expected ';' after *** 3710,3719 **** + 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 --- 3773,3782 ---- + 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 *************** end program test *** 3745,3751 **** At line 8 of file do_check_12.f90 Fortran runtime error: Loop iterates infinitely ! * Version 4.5 of the [13]OpenMP specification is now partially supported in the Fortran compiler; the largest missing item is structure element mapping. * User-defined derived-type input/output (UDTIO) is added. --- 3808,3814 ---- At line 8 of file do_check_12.f90 Fortran runtime error: Loop iterates infinitely ! * Version 4.5 of the [12]OpenMP specification is now partially supported in the Fortran compiler; the largest missing item is structure element mapping. * User-defined derived-type input/output (UDTIO) is added. *************** libgccjit *** 3778,3784 **** The libgccjit API gained support for marking calls as requiring tail-call optimization via a new entry point: ! [14]gcc_jit_rvalue_set_bool_require_tail_call. libgccjit performs numerous checks at the API boundary, but if these succeed, it previously ignored errors and other diagnostics emitted --- 3841,3847 ---- The libgccjit API gained support for marking calls as requiring tail-call optimization via a new entry point: ! [13]gcc_jit_rvalue_set_bool_require_tail_call. libgccjit performs numerous checks at the API boundary, but if these succeed, it previously ignored errors and other diagnostics emitted *************** New Targets and Target Specific Improvem *** 3799,3805 **** * The option -msign-return-address= is supported to enable return address protection using ARMv8.3-A Pointer Authentication Extensions. For more information on the arguments accepted by this ! option, please refer to [15]AArch64-Options. * The ARMv8.2-A architecture and the ARMv8.2-A 16-bit Floating-Point Extensions are now supported. They can be used by specifying the -march=armv8.2-a or -march=armv8.2-a+fp16 options. The 16-bit --- 3862,3868 ---- * The option -msign-return-address= is supported to enable return address protection using ARMv8.3-A Pointer Authentication Extensions. For more information on the arguments accepted by this ! option, please refer to [14]AArch64-Options. * The ARMv8.2-A architecture and the ARMv8.2-A 16-bit Floating-Point Extensions are now supported. They can be used by specifying the -march=armv8.2-a or -march=armv8.2-a+fp16 options. The 16-bit *************** New Targets and Target Specific Improvem *** 3854,3864 **** of intrinsics such as cdp, ldc, and others. * The configure option --with-multilib-list now accepts the value rmprofile to build multilib libraries for a range of embedded ! targets. See our [16]installation instructions for details. AVR ! * On the reduced Tiny cores, the progmem [17]variable attribute is now properly supported. Respective read-only variables are located in flash memory in section .progmem.data. No special code is needed to access such variables; the compiler automatically adds an offset --- 3917,3927 ---- of intrinsics such as cdp, ldc, and others. * The configure option --with-multilib-list now accepts the value rmprofile to build multilib libraries for a range of embedded ! targets. See our [15]installation instructions for details. AVR ! * On the reduced Tiny cores, the progmem [16]variable attribute is now properly supported. Respective read-only variables are located in flash memory in section .progmem.data. No special code is needed to access such variables; the compiler automatically adds an offset *************** const int* get_address (unsigned idx) *** 3883,3892 **** } * 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 [18]built-in function that inserts n NOP instructions into the instruction stream. n must be a value known at compile time. --- 3946,3955 ---- } * 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 NOP instructions into the instruction stream. n must be a value known at compile time. *************** const int* get_address (unsigned idx) *** 3901,3907 **** NVPTX * OpenMP target regions can now be offloaded to NVidia PTX GPGPUs. ! See the [19]Offloading Wiki on how to configure it. PowerPC / PowerPC64 / RS6000 --- 3964,3970 ---- NVPTX * OpenMP target regions can now be offloaded to NVidia PTX GPGPUs. ! See the [18]Offloading Wiki on how to configure it. PowerPC / PowerPC64 / RS6000 *************** Operating Systems *** 3978,3984 **** Fuchsia ! * Support has been added for the [20]Fuchsia OS. RTEMS --- 4041,4047 ---- Fuchsia ! * Support has been added for the [19]Fuchsia OS. RTEMS *************** x-early-inliner-iterations'? *** 4095,4115 **** + GCC's C front end has been extended so that it can parse dumps of GCC's internal representations, allowing for DejaGnu tests that more directly exercise specific optimization passes. This ! covers both the [21]GIMPLE representation (for testing ! higher-level optimizations) and the [22]RTL representation, allowing for more direct testing of lower-level details, such as register allocation and instruction selection. GCC 7.1 ! This is the [23]list of problem reports (PRs) from GCC's bug tracking system that are known to be fixed in the 7.1 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here). GCC 7.2 ! This is the [24]list of problem reports (PRs) from GCC's bug tracking system that are known to be fixed in the 7.2 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here). --- 4158,4178 ---- + GCC's C front end has been extended so that it can parse dumps of GCC's internal representations, allowing for DejaGnu tests that more directly exercise specific optimization passes. This ! covers both the [20]GIMPLE representation (for testing ! higher-level optimizations) and the [21]RTL representation, allowing for more direct testing of lower-level details, such as register allocation and instruction selection. GCC 7.1 ! This is the [22]list of problem reports (PRs) from GCC's bug tracking system that are known to be fixed in the 7.1 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here). GCC 7.2 ! This is the [23]list of problem reports (PRs) from GCC's bug tracking system that are known to be fixed in the 7.2 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here). *************** GCC 7.2 *** 4136,4142 **** GCC 7.3 ! This is the [25]list of problem reports (PRs) from GCC's bug tracking system that are known to be fixed in the 7.3 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here). --- 4199,4205 ---- GCC 7.3 ! This is the [24]list of problem reports (PRs) from GCC's bug tracking system that are known to be fixed in the 7.3 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here). *************** GCC 7.3 *** 4145,4151 **** SPARC ! * Workarounds for the four [26]LEON3FT errata GRLIB-TN-0010..0013 have been added. Relevant errata are activated by the target specific -mfix-ut699, -mfix-ut700 and -mfix-gr712rc switches. --- 4208,4214 ---- SPARC ! * Workarounds for the four [25]LEON3FT errata GRLIB-TN-0010..0013 have been added. Relevant errata are activated by the target specific -mfix-ut699, -mfix-ut700 and -mfix-gr712rc switches. *************** GCC 7.3 *** 4157,4188 **** GCC 7.4 ! This is the [27]list of problem reports (PRs) from GCC's bug tracking system that are known to be fixed in the 7.4 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here). GCC 7.5 ! This is the [28]list of problem reports (PRs) from GCC's bug tracking system that are known to be fixed in the 7.5 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here). For questions related to the use of GCC, please consult these web ! pages and the [29]GCC manuals. If that fails, the ! [30]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 [31]gcc@gcc.gnu.org. All of [32]our lists have public archives. ! Copyright (C) [33]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 [34]maintained by the GCC team. Last modified ! 2020-04-07[35]. References --- 4220,4251 ---- GCC 7.4 ! This is the [26]list of problem reports (PRs) from GCC's bug tracking system that are known to be fixed in the 7.4 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here). GCC 7.5 ! This is the [27]list of problem reports (PRs) from GCC's bug tracking system that are known to be fixed in the 7.5 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here). For questions related to the use of GCC, please consult these web ! pages and the [28]GCC manuals. If that fails, the ! [29]gcc-help@gcc.gnu.org mailing list might help. Comments on these web pages and the development of GCC are welcome on our developer ! list at [30]gcc@gcc.gnu.org. All of [31]our lists have public archives. ! Copyright (C) [32]Free Software Foundation, Inc. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! These pages are [33]maintained by the GCC team. Last modified ! 2021-10-17[34]. References *************** References *** 4191,4229 **** 3. https://gcc.gnu.org/wiki/LRAIsDefault 4. https://gcc.gnu.org/onlinedocs/gcc-7.1.0/libstdc++/manual/manual/profile_mode.html 5. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77728 ! 6. http://www.dwarfstd.org/Download.php ! 7. https://gcc.gnu.org/wiki/OpenACC ! 8. https://gcc.gnu.org/wiki/Offloading ! 9. https://gcc.gnu.org/onlinedocs/gcc-7.1.0/gcc/Object-Size-Checking.html ! 10. https://gcc.gnu.org/projects/cxx-status.html#cxx1z ! 11. https://wg21.link/p0136 ! 12. https://gcc.gnu.org/onlinedocs/gcc-7.1.0/libstdc++/manual/using_dual_abi.html ! 13. https://www.openmp.org/specifications/ ! 14. https://gcc.gnu.org/onlinedocs/gcc-7.1.0/jit/topics/expressions.html#gcc_jit_rvalue_set_bool_require_tail_call ! 15. https://gcc.gnu.org/onlinedocs/gcc-7.1.0/gcc/AArch64-Options.html#AArch64-Options ! 16. https://gcc.gnu.org/install/configure.html ! 17. https://gcc.gnu.org/onlinedocs/gcc-7.1.0/gcc/AVR-Variable-Attributes.html ! 18. https://gcc.gnu.org/onlinedocs/gcc-7.1.0/gcc/AVR-Built-in-Functions.html ! 19. https://gcc.gnu.org/wiki/Offloading ! 20. https://fuchsia.googlesource.com/ ! 21. https://gcc.gnu.org/onlinedocs/gcc-7.1.0/gccint/GIMPLE-Tests.html ! 22. https://gcc.gnu.org/onlinedocs/gcc-7.1.0/gccint/RTL-Tests.html ! 23. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=7.0 ! 24. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=7.2 ! 25. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=7.3 ! 26. https://www.gaisler.com/index.php/information/app-tech-notes ! 27. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=7.4 ! 28. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=7.5 ! 29. https://gcc.gnu.org/onlinedocs/ ! 30. mailto:gcc-help@gcc.gnu.org ! 31. mailto:gcc@gcc.gnu.org ! 32. https://gcc.gnu.org/lists.html ! 33. https://www.fsf.org/ ! 34. https://gcc.gnu.org/about.html ! 35. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-6/index.html - GCC 6 Release Series (This release series is no longer supported.) --- 4254,4290 ---- 3. https://gcc.gnu.org/wiki/LRAIsDefault 4. https://gcc.gnu.org/onlinedocs/gcc-7.1.0/libstdc++/manual/manual/profile_mode.html 5. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77728 ! 6. https://gcc.gnu.org/wiki/OpenACC ! 7. https://gcc.gnu.org/wiki/Offloading ! 8. https://gcc.gnu.org/onlinedocs/gcc-7.1.0/gcc/Object-Size-Checking.html ! 9. https://gcc.gnu.org/projects/cxx-status.html#cxx1z ! 10. https://wg21.link/p0136 ! 11. https://gcc.gnu.org/onlinedocs/gcc-7.1.0/libstdc++/manual/using_dual_abi.html ! 12. https://www.openmp.org/specifications/ ! 13. https://gcc.gnu.org/onlinedocs/gcc-7.1.0/jit/topics/expressions.html#gcc_jit_rvalue_set_bool_require_tail_call ! 14. https://gcc.gnu.org/onlinedocs/gcc-7.1.0/gcc/AArch64-Options.html#AArch64-Options ! 15. https://gcc.gnu.org/install/configure.html ! 16. https://gcc.gnu.org/onlinedocs/gcc-7.1.0/gcc/AVR-Variable-Attributes.html ! 17. https://gcc.gnu.org/onlinedocs/gcc-7.1.0/gcc/AVR-Built-in-Functions.html ! 18. https://gcc.gnu.org/wiki/Offloading ! 19. https://fuchsia.googlesource.com/ ! 20. https://gcc.gnu.org/onlinedocs/gcc-7.1.0/gccint/GIMPLE-Tests.html ! 21. https://gcc.gnu.org/onlinedocs/gcc-7.1.0/gccint/RTL-Tests.html ! 22. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=7.0 ! 23. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=7.2 ! 24. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=7.3 ! 25. https://www.gaisler.com/index.php/information/app-tech-notes ! 26. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=7.4 ! 27. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=7.5 ! 28. https://gcc.gnu.org/onlinedocs/ ! 29. mailto:gcc-help@gcc.gnu.org ! 30. mailto:gcc@gcc.gnu.org ! 31. https://gcc.gnu.org/lists.html ! 32. https://www.fsf.org/ ! 33. https://gcc.gnu.org/about.html ! 34. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-6/index.html GCC 6 Release Series (This release series is no longer supported.) *************** References and Acknowledgements *** 4286,4292 **** provided this notice is preserved. These pages are [23]maintained by the GCC team. Last modified ! 2020-01-14[24]. References --- 4347,4353 ---- provided this notice is preserved. These pages are [23]maintained by the GCC team. Last modified ! 2021-07-28[24]. References *************** References *** 4316,4322 **** 24. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-6/changes.html - GCC 6 Release Series Changes, New Features, and Fixes --- 4377,4382 ---- *************** Operating Systems *** 5025,5031 **** provided this notice is preserved. These pages are [32]maintained by the GCC team. Last modified ! 2020-08-01[33]. References --- 5085,5091 ---- provided this notice is preserved. These pages are [32]maintained by the GCC team. Last modified ! 2021-10-31[33]. References *************** References *** 5052,5058 **** 21. http://www.musl-libc.org/ 22. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=6.2 23. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=6.3 ! 24. https://software.intel.com/content/www/us/en/develop/blogs/deprecate-pcommit-instruction.html 25. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=6.4 26. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=6.5 27. https://gcc.gnu.org/onlinedocs/ --- 5112,5118 ---- 21. http://www.musl-libc.org/ 22. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=6.2 23. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=6.3 ! 24. https://www.intel.com/content/www/us/en/developer/articles/technical/deprecate-pcommit-instruction.html 25. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=6.4 26. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=6.5 27. https://gcc.gnu.org/onlinedocs/ *************** References *** 5064,5070 **** 33. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-5/index.html - GCC 5 Release Series (This release series is no longer supported.) --- 5124,5129 ---- *************** References and Acknowledgements *** 5127,5133 **** provided this notice is preserved. These pages are [23]maintained by the GCC team. Last modified ! 2020-01-14[24]. References --- 5186,5192 ---- provided this notice is preserved. These pages are [23]maintained by the GCC team. Last modified ! 2021-07-28[24]. References *************** References *** 5157,5163 **** 24. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-5/changes.html - GCC 5 Release Series Changes, New Features, and Fixes --- 5216,5221 ---- *************** New Languages and Language specific impr *** 5350,5358 **** * A new command-line option -Wbool-compare has been added for the C and C++ compilers, which warns about boolean expressions compared with an integer value different from true/false. ! * Full support for [9]Cilk Plus has been added to the GCC compiler. ! Cilk Plus is an extension to the C and C++ languages to support ! data and task parallelism. * A new attribute no_reorder prevents reordering of selected symbols against other such symbols or inline assembler. This enables to link-time optimize the Linux kernel without having to resort to --- 5408,5416 ---- * A new command-line option -Wbool-compare has been added for the C and C++ compilers, which warns about boolean expressions compared with an integer value different from true/false. ! * Full support for Cilk Plus has been added to the GCC compiler. Cilk ! Plus is an extension to the C and C++ languages to support data and ! task parallelism. * A new attribute no_reorder prevents reordering of selected symbols against other such symbols or inline assembler. This enables to link-time optimize the Linux kernel without having to resort to *************** New Languages and Language specific impr *** 5381,5387 **** * A new built-in function-like macro to determine the existence of an attribute, __has_attribute, has been added. The equivalent built-in macro __has_cpp_attribute was added to C++ to support ! [10]Feature-testing recommendations for C++. The macro __has_attribute is added to all C-like languages as an extension: int --- 5439,5445 ---- * A new built-in function-like macro to determine the existence of an attribute, __has_attribute, has been added. The equivalent built-in macro __has_cpp_attribute was added to C++ to support ! [9]Feature-testing recommendations for C++. The macro __has_attribute is added to all C-like languages as an extension: int *************** calloc (size_t x, size_t y) *** 5455,5478 **** C++ ! * G++ now supports [11]C++14 variable templates. * -Wnon-virtual-dtor doesn't warn anymore for final classes. * Excessive template instantiation depth is now a fatal error. This prevents excessive diagnostics that usually do not help to identify the problem. * G++ and libstdc++ now implement the feature-testing macros from ! [12]Feature-testing recommendations for C++. * G++ now allows typename in a template template parameter. template typename X> struct D; // OK ! * G++ now supports [13]C++14 aggregates with non-static data member initializers. struct A { int i, j = i; }; A a = { 42 }; // a.j is also 42 ! * G++ now supports [14]C++14 extended constexpr. constexpr int f (int i) { --- 5513,5536 ---- C++ ! * G++ now supports [10]C++14 variable templates. * -Wnon-virtual-dtor doesn't warn anymore for final classes. * Excessive template instantiation depth is now a fatal error. This prevents excessive diagnostics that usually do not help to identify the problem. * G++ and libstdc++ now implement the feature-testing macros from ! [11]Feature-testing recommendations for C++. * G++ now allows typename in a template template parameter. template typename X> struct D; // OK ! * G++ now supports [12]C++14 aggregates with non-static data member initializers. struct A { int i, j = i; }; A a = { 42 }; // a.j is also 42 ! * G++ now supports [13]C++14 extended constexpr. constexpr int f (int i) { *************** constexpr int f (int i) *** 5484,5490 **** constexpr int i = f(42); // i is 42 ! * G++ now supports the [15]C++14 sized deallocation functions. void operator delete (void *, std::size_t) noexcept; void operator delete[] (void *, std::size_t) noexcept; --- 5542,5548 ---- constexpr int i = f(42); // i is 42 ! * G++ now supports the [14]C++14 sized deallocation functions. void operator delete (void *, std::size_t) noexcept; void operator delete[] (void *, std::size_t) noexcept; *************** void operator delete[] (void *, std::siz *** 5497,5503 **** namespaces) to improve code generation. These warnings can be used at compile time, but they are more useful in combination with link-time optimization. ! * G++ no longer supports [16]N3639 variable length arrays, as they were removed from the C++14 working paper prior to ratification. GNU VLAs are still supported, so VLA support is now the same in C++14 mode as in C++98 and C++11 modes. --- 5555,5561 ---- namespaces) to improve code generation. These warnings can be used at compile time, but they are more useful in combination with link-time optimization. ! * G++ no longer supports [15]N3639 variable length arrays, as they were removed from the C++14 working paper prior to ratification. GNU VLAs are still supported, so VLA support is now the same in C++14 mode as in C++98 and C++11 modes. *************** void operator delete[] (void *, std::siz *** 5516,5522 **** Runtime Library (libstdc++) ! * A [17]Dual ABI is provided by the library. A new ABI is enabled by default. The old ABI is still supported and can be used by defining the macro _GLIBCXX_USE_CXX11_ABI to 0 before including any C++ standard library headers. --- 5574,5580 ---- Runtime Library (libstdc++) ! * A [16]Dual ABI is provided by the library. A new ABI is enabled by default. The old ABI is still supported and can be used by defining the macro _GLIBCXX_USE_CXX11_ABI to 0 before including any C++ standard library headers. *************** void operator delete[] (void *, std::siz *** 5525,5531 **** counting. * A new implementation of std::list is enabled by default, with an O(1) size() function; ! * [18]Full support for C++11, including the following new features: + std::deque and std::vector meet the allocator-aware container requirements; + movable and swappable iostream classes; --- 5583,5589 ---- counting. * A new implementation of std::list is enabled by default, with an O(1) size() function; ! * [17]Full support for C++11, including the following new features: + std::deque and std::vector meet the allocator-aware container requirements; + movable and swappable iostream classes; *************** void operator delete[] (void *, std::siz *** 5548,5561 **** prevent the use of hexadecimal notation for floating point types use str.unsetf(std::ios_base::floatfield) to clear the relevant bits in str.flags(). ! * [19]Full experimental support for C++14, including the following new features: + std::is_final type trait; + heterogeneous comparison lookup in associative containers. + global functions cbegin, cend, rbegin, rend, crbegin, and crend for range access to containers, arrays and initializer lists. ! * [20]Improved experimental support for the Library Fundamentals TS, including: + class std::experimental::any; + function template std::experimental::apply; --- 5606,5619 ---- prevent the use of hexadecimal notation for floating point types use str.unsetf(std::ios_base::floatfield) to clear the relevant bits in str.flags(). ! * [18]Full experimental support for C++14, including the following new features: + std::is_final type trait; + heterogeneous comparison lookup in associative containers. + global functions cbegin, cend, rbegin, rend, crbegin, and crend for range access to containers, arrays and initializer lists. ! * [19]Improved experimental support for the Library Fundamentals TS, including: + class std::experimental::any; + function template std::experimental::apply; *************** void operator delete[] (void *, std::siz *** 5566,5578 **** + function template std::experimental::not_fn. * New random number distributions logistic_distribution and uniform_on_sphere_distribution as extensions. ! * [21]GDB Xmethods for containers and std::unique_ptr. Fortran * Compatibility notice: + The version of the module files (.mod) has been incremented. ! + For free-form source files [22]-Werror=line-truncation is now enabled by default. Note that comments exceeding the line length are not diagnosed. (For fixed-form source code, the same warning is available but turned off by default, such that --- 5624,5636 ---- + function template std::experimental::not_fn. * New random number distributions logistic_distribution and uniform_on_sphere_distribution as extensions. ! * [20]GDB Xmethods for containers and std::unique_ptr. Fortran * Compatibility notice: + The version of the module files (.mod) has been incremented. ! + For free-form source files [21]-Werror=line-truncation is now enabled by default. Note that comments exceeding the line length are not diagnosed. (For fixed-form source code, the same warning is available but turned off by default, such that *************** void operator delete[] (void *, std::siz *** 5586,5594 **** by -Wall, -pedantic and the f95, f2003, f2008 and f2008ts options of -std=. * Incomplete support for colorizing diagnostics emitted by gfortran ! has been added. The option [23]-fdiagnostics-color controls when color is used in diagnostics. The default value of this option can ! be [24]configured when building GCC. The GCC_COLORS environment variable can be used to customize the colors or disable coloring completely. Sample diagnostics output: $ gfortran -fdiagnostics-color=always -Wuse-without-only test.f90 --- 5644,5652 ---- by -Wall, -pedantic and the f95, f2003, f2008 and f2008ts options of -std=. * Incomplete support for colorizing diagnostics emitted by gfortran ! has been added. The option [22]-fdiagnostics-color controls when color is used in diagnostics. The default value of this option can ! be [23]configured when building GCC. The GCC_COLORS environment variable can be used to customize the colors or disable coloring completely. Sample diagnostics output: $ gfortran -fdiagnostics-color=always -Wuse-without-only test.f90 *************** void operator delete[] (void *, std::siz *** 5608,5625 **** public entities of the used module. * Formatted READ and WRITE statements now work correctly in locale-aware programs. For more information and potential caveats, ! see [25]Section 5.3 Thread-safety of the runtime library in the manual. ! * [26]Fortran 2003: + The intrinsic IEEE modules (IEEE_FEATURES, IEEE_EXCEPTIONS and IEEE_ARITHMETIC) are now supported. ! * [27]Fortran 2008: ! + [28]Coarrays: Full experimental support of Fortran 2008's coarrays with -fcoarray=lib except for allocatable/pointer components of derived-type coarrays. GCC currently only ships with a single-image library (libcaf_single), but multi-image support based on MPI and GASNet is provided by the libraries ! of the [29]OpenCoarrays project. * TS18508 Additional Parallel Features in Fortran: + Support for the collective intrinsic subroutines CO_MAX, CO_MIN, CO_SUM, CO_BROADCAST and CO_REDUCE has been added, --- 5666,5683 ---- public entities of the used module. * Formatted READ and WRITE statements now work correctly in locale-aware programs. For more information and potential caveats, ! see [24]Section 5.3 Thread-safety of the runtime library in the manual. ! * [25]Fortran 2003: + The intrinsic IEEE modules (IEEE_FEATURES, IEEE_EXCEPTIONS and IEEE_ARITHMETIC) are now supported. ! * [26]Fortran 2008: ! + [27]Coarrays: Full experimental support of Fortran 2008's coarrays with -fcoarray=lib except for allocatable/pointer components of derived-type coarrays. GCC currently only ships with a single-image library (libcaf_single), but multi-image support based on MPI and GASNet is provided by the libraries ! of the [28]OpenCoarrays project. * TS18508 Additional Parallel Features in Fortran: + Support for the collective intrinsic subroutines CO_MAX, CO_MIN, CO_SUM, CO_BROADCAST and CO_REDUCE has been added, *************** void operator delete[] (void *, std::siz *** 5634,5640 **** * GCC 5 provides a complete implementation of the Go 1.4.2 release. * Building GCC 5 with Go enabled will install two new programs: ! [30]go and [31]gofmt. libgccjit --- 5692,5698 ---- * GCC 5 provides a complete implementation of the Go 1.4.2 release. * Building GCC 5 with Go enabled will install two new programs: ! [29]go and [30]gofmt. libgccjit *************** libgccjit *** 5642,5658 **** embedding in other processes (such as interpreters), suitable for Just-In-Time compilation to machine code. ! The shared library has a [32]C API and a [33]C++ wrapper API providing some "syntactic sugar". There are also bindings available from 3rd ! parties for [34]Python and for [35]D. ! For example, this library can be used by interpreters for [36]compiling functions from bytecode to machine code. The library can also be used for ahead-of-time compilation, enabling GCC to be plugged into a pre-existing front end. An example of using this to build a compiler for an esoteric language we'll refer to as ! "brainf" can be seen [37]here. libgccjit is licensed under the GPLv3 (or at your option, any later version) --- 5700,5716 ---- embedding in other processes (such as interpreters), suitable for Just-In-Time compilation to machine code. ! The shared library has a [31]C API and a [32]C++ wrapper API providing some "syntactic sugar". There are also bindings available from 3rd ! parties for [33]Python and for [34]D. ! For example, this library can be used by interpreters for [35]compiling functions from bytecode to machine code. The library can also be used for ahead-of-time compilation, enabling GCC to be plugged into a pre-existing front end. An example of using this to build a compiler for an esoteric language we'll refer to as ! "brainf" can be seen [36]here. libgccjit is licensed under the GPLv3 (or at your option, any later version) *************** New Targets and Target Specific Improvem *** 5731,5737 **** * The compiler no more supports individual devices like ATmega8. Specifying, say, -mmcu=atmega8 triggers the usage of the ! device-specific [38]spec file specs-atmega8 which is part of the installation and describes options for the sub-processes like compiler proper, assembler and linker. You can add support for a new device -mmcu=mydevice as follows: --- 5789,5795 ---- * The compiler no more supports individual devices like ATmega8. Specifying, say, -mmcu=atmega8 triggers the usage of the ! device-specific [37]spec file specs-atmega8 which is part of the installation and describes options for the sub-processes like compiler proper, assembler and linker. You can add support for a new device -mmcu=mydevice as follows: *************** New Targets and Target Specific Improvem *** 5761,5767 **** -mn-flash=size Specify the flash size of the device in units of 64 KiB, rounded up to the next integer as needed. This option ! affects the availability of the [39]AVR address-spaces. -mskip-bug Set if the device is affected by the respective silicon --- 5819,5825 ---- -mn-flash=size Specify the flash size of the device in units of 64 KiB, rounded up to the next integer as needed. This option ! affects the availability of the [38]AVR address-spaces. -mskip-bug Set if the device is affected by the respective silicon *************** New Targets and Target Specific Improvem *** 5772,5786 **** IA-32/x86-64 ! * New [40]ISA extensions support AVX-512{BW,DQ,VL,IFMA,VBMI} of ! Intel's CPU codenamed Skylake Server was added to GCC. That ! includes inline assembly support, new intrinsics, and basic ! autovectorization. These new AVX-512 extensions are available via ! the following GCC switches: AVX-512 Vector Length EVEX feature: ! -mavx512vl, AVX-512 Byte and Word instructions: -mavx512bw, AVX-512 ! Dword and Qword instructions: -mavx512dq, AVX-512 FMA-52 ! instructions: -mavx512ifma and for AVX-512 Vector Bit Manipulation ! Instructions: -mavx512vbmi. * New ISA extensions support Intel MPX was added to GCC. This new extension is available via the -mmpx compiler switch. Intel MPX is a set of processor features which, with compiler, run-time library --- 5830,5843 ---- IA-32/x86-64 ! * New ISA extensions support AVX-512{BW,DQ,VL,IFMA,VBMI} of Intel's ! CPU codenamed Skylake Server was added to GCC. That includes inline ! assembly support, new intrinsics, and basic autovectorization. ! These new AVX-512 extensions are available via the following GCC ! switches: AVX-512 Vector Length EVEX feature: -mavx512vl, AVX-512 ! Byte and Word instructions: -mavx512bw, AVX-512 Dword and Qword ! instructions: -mavx512dq, AVX-512 FMA-52 instructions: -mavx512ifma ! and for AVX-512 Vector Bit Manipulation Instructions: -mavx512vbmi. * New ISA extensions support Intel MPX was added to GCC. This new extension is available via the -mmpx compiler switch. Intel MPX is a set of processor features which, with compiler, run-time library *************** Other significant improvements *** 5943,5949 **** GCC 5.2 ! This is the [41]list of problem reports (PRs) from GCC's bug tracking system that are known to be fixed in the 5.2 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here). --- 6000,6006 ---- GCC 5.2 ! This is the [39]list of problem reports (PRs) from GCC's bug tracking system that are known to be fixed in the 5.2 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here). *************** Target Specific Changes *** 5984,5990 **** GCC 5.3 ! This is the [42]list of problem reports (PRs) from GCC's bug tracking system that are known to be fixed in the 5.3 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here). --- 6041,6047 ---- GCC 5.3 ! This is the [40]list of problem reports (PRs) from GCC's bug tracking system that are known to be fixed in the 5.3 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here). *************** Target Specific Changes *** 6006,6019 **** GCC 5.4 ! This is the [43]list of problem reports (PRs) from GCC's bug tracking system that are known to be fixed in the 5.4 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here). GCC 5.5 ! This is the [44]list of problem reports (PRs) from GCC's bug tracking system that are known to be fixed in the 5.5 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here). --- 6063,6076 ---- GCC 5.4 ! This is the [41]list of problem reports (PRs) from GCC's bug tracking system that are known to be fixed in the 5.4 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here). GCC 5.5 ! This is the [42]list of problem reports (PRs) from GCC's bug tracking system that are known to be fixed in the 5.5 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here). *************** Target Specific Changes *** 6022,6102 **** IA-32/x86-64 ! * Support for the [45]deprecated pcommit instruction has been removed. For questions related to the use of GCC, please consult these web ! pages and the [46]GCC manuals. If that fails, the ! [47]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 [48]gcc@gcc.gnu.org. All of [49]our lists have public archives. ! Copyright (C) [50]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 [51]maintained by the GCC team. Last modified ! 2020-05-31[52]. References 1. http://gcc.gnu.org/gcc-5/changes.html#libstdcxx 2. https://gcc.gnu.org/onlinedocs/gcc/Spec-Files.html 3. https://savannah.nongnu.org/bugs/?44574 ! 4. https://gcc.gnu.org/wiki/Intel%20MPX%20support%20in%20the%20GCC%20compiler 5. https://www.openmp.org/wp-content/uploads/OpenMP4.0.0.pdf 6. https://www.openmp.org/wp-content/uploads/OpenMP4.0.0.Examples.pdf 7. https://gcc.gnu.org/wiki/OpenACC 8. https://gcc.gnu.org/install/configure.html ! 9. https://www.cilkplus.org/ ! 10. https://isocpp.org/std/standing-documents/sd-6-sg10-feature-test-recommendations ! 11. http://gcc.gnu.org/projects/cxx1y.html ! 12. https://isocpp.org/std/standing-documents/sd-6-sg10-feature-test-recommendations 13. http://gcc.gnu.org/projects/cxx1y.html 14. http://gcc.gnu.org/projects/cxx1y.html ! 15. http://gcc.gnu.org/projects/cxx1y.html ! 16. http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3639.html ! 17. http://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html ! 18. https://gcc.gnu.org/onlinedocs/gcc-5.1.0/libstdc++/manual/manual/status.html#status.iso.2011 19. https://gcc.gnu.org/onlinedocs/gcc-5.1.0/libstdc++/manual/manual/status.html#status.iso.2014 ! 20. https://gcc.gnu.org/onlinedocs/gcc-5.1.0/libstdc++/manual/manual/status.html#status.iso.2014 ! 21. https://sourceware.org/gdb/current/onlinedocs/gdb/Xmethods-In-Python.html ! 22. https://gcc.gnu.org/onlinedocs/gcc-5.1.0/gfortran/Error-and-Warning-Options.html ! 23. https://gcc.gnu.org/onlinedocs/gcc-5.1.0/gcc/Language-Independent-Options.html ! 24. https://gcc.gnu.org/install/configure.html ! 25. https://gcc.gnu.org/onlinedocs/gcc-5.1.0/gfortran/Thread-safety-of-the-runtime-library.html ! 26. https://gcc.gnu.org/wiki/Fortran2003Status ! 27. https://gcc.gnu.org/wiki/Fortran2008Status ! 28. https://gcc.gnu.org/wiki/Coarray ! 29. http://www.opencoarrays.org/ ! 30. https://golang.org/cmd/go/ ! 31. https://golang.org/cmd/gofmt/ ! 32. https://gcc.gnu.org/onlinedocs/gcc-5.1.0/jit/intro/index.html ! 33. https://gcc.gnu.org/onlinedocs/gcc-5.1.0/jit/cp/index.html ! 34. https://github.com/davidmalcolm/pygccjit ! 35. https://github.com/ibuclaw/gccjitd ! 36. https://gcc.gnu.org/onlinedocs/gcc-5.1.0/jit/intro/tutorial04.html ! 37. https://gcc.gnu.org/onlinedocs/gcc-5.1.0/jit/intro/tutorial05.html ! 38. https://gcc.gnu.org/onlinedocs/gcc/Spec-Files.html ! 39. https://gcc.gnu.org/onlinedocs/gcc/Named-Address-Spaces.html ! 40. https://software.intel.com/sites/default/files/managed/39/c5/325462-sdm-vol-1-2abcd-3abcd.pdf ! 41. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=5.2 ! 42. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=5.3 ! 43. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=5.4 ! 44. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=5.5 ! 45. https://software.intel.com/content/www/us/en/develop/blogs/deprecate-pcommit-instruction.html ! 46. https://gcc.gnu.org/onlinedocs/ ! 47. mailto:gcc-help@gcc.gnu.org ! 48. mailto:gcc@gcc.gnu.org ! 49. https://gcc.gnu.org/lists.html ! 50. https://www.fsf.org/ ! 51. https://gcc.gnu.org/about.html ! 52. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.9/index.html - GCC 4.9 Release Series (This release series is no longer supported.) --- 6079,6156 ---- IA-32/x86-64 ! * Support for the [43]deprecated pcommit instruction has been removed. For questions related to the use of GCC, please consult these web ! pages and the [44]GCC manuals. If that fails, the ! [45]gcc-help@gcc.gnu.org mailing list might help. Comments on these web pages and the development of GCC are welcome on our developer ! list at [46]gcc@gcc.gnu.org. All of [47]our lists have public archives. ! Copyright (C) [48]Free Software Foundation, Inc. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! These pages are [49]maintained by the GCC team. Last modified ! 2022-03-11[50]. References 1. http://gcc.gnu.org/gcc-5/changes.html#libstdcxx 2. https://gcc.gnu.org/onlinedocs/gcc/Spec-Files.html 3. https://savannah.nongnu.org/bugs/?44574 ! 4. https://gcc.gnu.org/wiki/Intel 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. http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3639.html ! 16. http://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html ! 17. https://gcc.gnu.org/onlinedocs/gcc-5.1.0/libstdc++/manual/manual/status.html#status.iso.2011 ! 18. https://gcc.gnu.org/onlinedocs/gcc-5.1.0/libstdc++/manual/manual/status.html#status.iso.2014 19. https://gcc.gnu.org/onlinedocs/gcc-5.1.0/libstdc++/manual/manual/status.html#status.iso.2014 ! 20. https://sourceware.org/gdb/current/onlinedocs/gdb/Xmethods-In-Python.html ! 21. https://gcc.gnu.org/onlinedocs/gcc-5.1.0/gfortran/Error-and-Warning-Options.html ! 22. https://gcc.gnu.org/onlinedocs/gcc-5.1.0/gcc/Language-Independent-Options.html ! 23. https://gcc.gnu.org/install/configure.html ! 24. https://gcc.gnu.org/onlinedocs/gcc-5.1.0/gfortran/Thread-safety-of-the-runtime-library.html ! 25. https://gcc.gnu.org/wiki/Fortran2003Status ! 26. https://gcc.gnu.org/wiki/Fortran2008Status ! 27. https://gcc.gnu.org/wiki/Coarray ! 28. http://www.opencoarrays.org/ ! 29. https://pkg.go.dev/cmd/go ! 30. https://pkg.go.dev/cmd/gofmt ! 31. https://gcc.gnu.org/onlinedocs/gcc-5.1.0/jit/intro/index.html ! 32. https://gcc.gnu.org/onlinedocs/gcc-5.1.0/jit/cp/index.html ! 33. https://github.com/davidmalcolm/pygccjit ! 34. https://github.com/ibuclaw/gccjitd ! 35. https://gcc.gnu.org/onlinedocs/gcc-5.1.0/jit/intro/tutorial04.html ! 36. https://gcc.gnu.org/onlinedocs/gcc-5.1.0/jit/intro/tutorial05.html ! 37. https://gcc.gnu.org/onlinedocs/gcc/Spec-Files.html ! 38. https://gcc.gnu.org/onlinedocs/gcc/Named-Address-Spaces.html ! 39. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=5.2 ! 40. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=5.3 ! 41. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=5.4 ! 42. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=5.5 ! 43. https://www.intel.com/content/www/us/en/developer/articles/technical/deprecate-pcommit-instruction.html ! 44. https://gcc.gnu.org/onlinedocs/ ! 45. mailto:gcc-help@gcc.gnu.org ! 46. mailto:gcc@gcc.gnu.org ! 47. https://gcc.gnu.org/lists.html ! 48. https://www.fsf.org/ ! 49. https://gcc.gnu.org/about.html ! 50. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.9/index.html GCC 4.9 Release Series (This release series is no longer supported.) *************** References and Acknowledgements *** 6159,6165 **** provided this notice is preserved. These pages are [23]maintained by the GCC team. Last modified ! 2020-01-14[24]. References --- 6213,6219 ---- provided this notice is preserved. These pages are [23]maintained by the GCC team. Last modified ! 2021-07-28[24]. References *************** References *** 6189,6195 **** 24. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.9/changes.html - GCC 4.9 Release Series Changes, New Features, and Fixes --- 6243,6248 ---- *************** New Languages and Language specific impr *** 6303,6323 **** -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 --- 6356,6376 ---- -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++; }; *** 6422,6429 **** // 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. --- 6475,6482 ---- // 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++; } *** 6516,6522 **** 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 --- 6569,6575 ---- be used as argument to ISO_C_BINDING's C_LOC and as actual argument to another NO_ARG_CHECK dummy argument; also the other constraints of TYPE(*) apply. The dummy arguments should be declared as scalar ! or assumed-size variable of type type(*) (recommended) – or of type integer, real, complex or logical. With NO_ARG_CHECK, a pointer to the data without further type or shape information is passed, similar to C's void*. Note that also TS 29113's *************** GCC 4.9.4 *** 6799,6805 **** provided this notice is preserved. These pages are [33]maintained by the GCC team. Last modified ! 2021-03-31[34]. References --- 6852,6858 ---- provided this notice is preserved. These pages are [33]maintained by the GCC team. Last modified ! 2021-07-28[34]. References *************** References *** 6839,6845 **** 34. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.8/index.html - GCC 4.8 Release Series (This release series is no longer supported.) --- 6892,6897 ---- *************** References and Acknowledgements *** 6905,6911 **** provided this notice is preserved. These pages are [25]maintained by the GCC team. Last modified ! 2020-01-14[26]. References --- 6957,6963 ---- provided this notice is preserved. These pages are [25]maintained by the GCC team. Last modified ! 2021-07-28[26]. References *************** References *** 6937,6943 **** 26. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.8/changes.html - GCC 4.8 Release Series Changes, New Features, and Fixes --- 6989,6994 ---- *************** New Languages and Language specific impr *** 7066,7073 **** 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; }) --- 7117,7124 ---- 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 *** 7191,7198 **** 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 --- 7242,7249 ---- 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 *** 7219,7225 **** * 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 --- 7270,7276 ---- * 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 *** 7231,7237 **** 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 --- 7282,7288 ---- 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 *** 7326,7333 **** } 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; --- 7377,7384 ---- } The inline assembler in this example will generate code like mov r24, 8+7 ! provided c is allocated to R24 and val is allocated to R8…R15. This ! works because the GNU assembler accepts plain register numbers without register prefix. * Static initializers with 3-byte symbols are supported now: extern const __memx char foo; *************** GCC 4.8.5 *** 7661,7667 **** provided this notice is preserved. These pages are [43]maintained by the GCC team. Last modified ! 2020-03-26[44]. References --- 7712,7718 ---- provided this notice is preserved. These pages are [43]maintained by the GCC team. Last modified ! 2021-07-28[44]. References *************** References *** 7711,7717 **** 44. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.7/index.html - GCC 4.7 Release Series (This release series is no longer supported.) --- 7762,7767 ---- *************** References and Acknowledgements *** 7774,7780 **** provided this notice is preserved. These pages are [23]maintained by the GCC team. Last modified ! 2020-01-14[24]. References --- 7824,7830 ---- provided this notice is preserved. These pages are [23]maintained by the GCC team. Last modified ! 2021-07-28[24]. References *************** References *** 7804,7810 **** 24. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.7/changes.html - GCC 4.7 Release Series Changes, New Features, and Fixes --- 7854,7859 ---- *************** long double pi = 180.0_degrees; *** 8135,8141 **** 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 { --- 8184,8190 ---- 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 *** 8329,8335 **** * 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) --- 8378,8384 ---- * 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) *** 8373,8379 **** 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 --- 8422,8428 ---- 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) *** 8385,8391 **** + 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. --- 8434,8440 ---- + If-else decision trees generated by switch instructions + Merging of data located in flash memory + New libgcc variants for devices with 8-bit wide stack pointer ! + … * Better documentation: + Handling of EIND and indirect jumps on devices with more than 128 KiB of program memory. *************** GCC 4.7.4 *** 8596,8602 **** provided this notice is preserved. These pages are [54]maintained by the GCC team. Last modified ! 2019-11-28[55]. References --- 8645,8651 ---- provided this notice is preserved. These pages are [54]maintained by the GCC team. Last modified ! 2022-02-10[55]. References *************** References *** 8633,8650 **** 31. https://gcc.gnu.org/wiki/CoarrayLib 32. https://gcc.gnu.org/wiki/TS29113Status 33. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/Fortran-Dialect-Options.html#index-g_t_0040code_007bstd_003d_007d_0040var_007bstd_007d-option-53 ! 34. https://golang.org/doc/go1 35. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gcc/Named-Address-Spaces.html ! 36. http://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. http://www.dwarfstd.org/ShowIssue.php?issue=100909.1 ! 41. http://www.dwarfstd.org/ShowIssue.php?issue=100909.2 ! 42. http://www.dwarfstd.org/ShowIssue.php?issue=140425.1 ! 43. http://www.dwarfstd.org/ShowIssue.php?issue=110722.1 44. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.7.1 ! 45. https://golang.org/doc/go1 46. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.7.2 47. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.7.3 48. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.7.4 --- 8682,8699 ---- 31. https://gcc.gnu.org/wiki/CoarrayLib 32. https://gcc.gnu.org/wiki/TS29113Status 33. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/Fortran-Dialect-Options.html#index-g_t_0040code_007bstd_003d_007d_0040var_007bstd_007d-option-53 ! 34. https://go.dev/doc/go1 35. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gcc/Named-Address-Spaces.html ! 36. http://www.nongnu.org/avr-libc/ 37. https://gcc.gnu.org/PR54461 ! 38. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gcc/AVR-Built_002din-Functions.html 39. https://sites.google.com/site/x32abi/ ! 40. https://www.dwarfstd.org/ShowIssue.php?issue=100909.1 ! 41. https://www.dwarfstd.org/ShowIssue.php?issue=100909.2 ! 42. https://www.dwarfstd.org/ShowIssue.php?issue=140425.1 ! 43. https://www.dwarfstd.org/ShowIssue.php?issue=110722.1 44. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.7.1 ! 45. https://go.dev/doc/go1 46. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.7.2 47. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.7.3 48. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.7.4 *************** References *** 8657,8663 **** 55. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.6/index.html - GCC 4.6 Release Series (This release series is no longer supported.) --- 8706,8711 ---- *************** References and Acknowledgements *** 8720,8726 **** provided this notice is preserved. These pages are [23]maintained by the GCC team. Last modified ! 2020-01-14[24]. References --- 8768,8774 ---- provided this notice is preserved. These pages are [23]maintained by the GCC team. Last modified ! 2021-07-28[24]. References *************** References *** 8750,8756 **** 24. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.6/changes.html - GCC 4.6 Release Series Changes, New Features, and Fixes --- 8798,8803 ---- *************** New Languages and Language specific impr *** 9090,9096 **** * [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 --- 9137,9143 ---- * [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 *** 9145,9151 **** 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. --- 9192,9198 ---- 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 *** 9200,9215 **** 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. Go ! Support for the [19]Go programming language has been added to GCC. It ! is not enabled by default when you build GCC; use the ! --enable-languages configure option to build it. The driver program for ! compiling Go code is gccgo. Go is currently known to work on GNU/Linux and RTEMS. Solaris support is in progress. It may or may not work on other platforms. --- 9247,9262 ---- 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. Go ! Support for the Go programming language has been added to GCC. It is ! not enabled by default when you build GCC; use the --enable-languages ! configure option to build it. The driver program for compiling Go code ! is gccgo. Go is currently known to work on GNU/Linux and RTEMS. Solaris support is in progress. It may or may not work on other platforms. *************** Changes for GCC Developers *** 9606,9651 **** GCC 4.6.1 ! This is the [20]list of problem reports (PRs) from GCC's bug tracking system that are known to be fixed in the 4.6.1 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here). GCC 4.6.2 ! This is the [21]list of problem reports (PRs) from GCC's bug tracking system that are known to be fixed in the 4.6.2 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here). GCC 4.6.3 ! This is the [22]list of problem reports (PRs) from GCC's bug tracking system that are known to be fixed in the 4.6.3 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here). GCC 4.6.4 ! This is the [23]list of problem reports (PRs) from GCC's bug tracking system that are known to be fixed in the 4.6.4 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here). For questions related to the use of GCC, please consult these web ! pages and the [24]GCC manuals. If that fails, the ! [25]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 [26]gcc@gcc.gnu.org. All of [27]our lists have public archives. ! Copyright (C) [28]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 [29]maintained by the GCC team. Last modified ! 2019-11-28[30]. References --- 9653,9698 ---- GCC 4.6.1 ! This is the [19]list of problem reports (PRs) from GCC's bug tracking system that are known to be fixed in the 4.6.1 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here). GCC 4.6.2 ! This is the [20]list of problem reports (PRs) from GCC's bug tracking system that are known to be fixed in the 4.6.2 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here). GCC 4.6.3 ! This is the [21]list of problem reports (PRs) from GCC's bug tracking system that are known to be fixed in the 4.6.3 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here). GCC 4.6.4 ! This is the [22]list of problem reports (PRs) from GCC's bug tracking system that are known to be fixed in the 4.6.4 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here). For questions related to the use of GCC, please consult these web ! pages and the [23]GCC manuals. If that fails, the ! [24]gcc-help@gcc.gnu.org mailing list might help. Comments on these web pages and the development of GCC are welcome on our developer ! list at [25]gcc@gcc.gnu.org. All of [26]our lists have public archives. ! Copyright (C) [27]Free Software Foundation, Inc. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! These pages are [28]maintained by the GCC team. Last modified ! 2021-12-05[29]. References *************** References *** 9667,9687 **** 16. https://gcc.gnu.org/wiki/OOP 17. https://gcc.gnu.org/wiki/Coarray 18. https://gcc.gnu.org/onlinedocs/gfortran/Code-Gen-Options.html#index-g_t_0040code_007bfcoarray_007d-233 ! 19. https://golang.org/ ! 20. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.6.1 ! 21. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.6.2 ! 22. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.6.3 ! 23. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.6.4 ! 24. https://gcc.gnu.org/onlinedocs/ ! 25. mailto:gcc-help@gcc.gnu.org ! 26. mailto:gcc@gcc.gnu.org ! 27. https://gcc.gnu.org/lists.html ! 28. https://www.fsf.org/ ! 29. https://gcc.gnu.org/about.html ! 30. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.5/index.html - GCC 4.5 Release Series (This release series is no longer supported.) --- 9714,9732 ---- 16. https://gcc.gnu.org/wiki/OOP 17. https://gcc.gnu.org/wiki/Coarray 18. https://gcc.gnu.org/onlinedocs/gfortran/Code-Gen-Options.html#index-g_t_0040code_007bfcoarray_007d-233 ! 19. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.6.1 ! 20. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.6.2 ! 21. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.6.3 ! 22. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.6.4 ! 23. https://gcc.gnu.org/onlinedocs/ ! 24. mailto:gcc-help@gcc.gnu.org ! 25. mailto:gcc@gcc.gnu.org ! 26. https://gcc.gnu.org/lists.html ! 27. https://www.fsf.org/ ! 28. https://gcc.gnu.org/about.html ! 29. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.5/index.html GCC 4.5 Release Series (This release series is no longer supported.) *************** References and Acknowledgements *** 9744,9750 **** provided this notice is preserved. These pages are [18]maintained by the GCC team. Last modified ! 2020-01-14[19]. References --- 9789,9795 ---- provided this notice is preserved. These pages are [18]maintained by the GCC team. Last modified ! 2021-07-28[19]. References *************** References *** 9769,9775 **** 19. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.5/changes.html - GCC 4.5 Release Series Changes, New Features, and Fixes --- 9814,9819 ---- *************** New Languages and Language specific impr *** 10006,10012 **** 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 --- 10050,10056 ---- 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 *** 10088,10094 **** 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 --- 10132,10138 ---- 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 *** 10417,10427 **** provided this notice is preserved. These pages are [32]maintained by the GCC team. Last modified ! 2019-11-28[33]. References ! 1. http://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 --- 10461,10471 ---- provided this notice is preserved. These pages are [32]maintained by the GCC team. Last modified ! 2022-02-02[33]. 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 *************** References *** 10456,10462 **** 33. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.4/index.html - GCC 4.4 Release Series This release series is no longer maintained. --- 10500,10505 ---- *************** References and Acknowledgements *** 10528,10534 **** provided this notice is preserved. These pages are [21]maintained by the GCC team. Last modified ! 2020-01-14[22]. References --- 10571,10577 ---- provided this notice is preserved. These pages are [21]maintained by the GCC team. Last modified ! 2021-07-28[22]. References *************** References *** 10556,10562 **** 22. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.4/changes.html - GCC 4.4 Release Series Changes, New Features, and Fixes --- 10599,10604 ---- *************** GCC 4.4.7 *** 11159,11165 **** provided this notice is preserved. These pages are [23]maintained by the GCC team. Last modified ! 2019-11-28[24]. References --- 11201,11207 ---- provided this notice is preserved. These pages are [23]maintained by the GCC team. Last modified ! 2021-07-28[24]. References *************** References *** 11189,11195 **** 24. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.3/index.html - GCC 4.3 Release Series (This release series is no longer supported.) --- 11231,11236 ---- *************** References and Acknowledgements *** 11258,11264 **** provided this notice is preserved. These pages are [20]maintained by the GCC team. Last modified ! 2020-01-14[21]. References --- 11299,11305 ---- provided this notice is preserved. These pages are [20]maintained by the GCC team. Last modified ! 2021-07-28[21]. References *************** References *** 11285,11291 **** 21. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.3/changes.html - GCC 4.3 Release Series Changes, New Features, and Fixes --- 11326,11331 ---- *************** GCC 4.3.6 *** 12064,12070 **** provided this notice is preserved. These pages are [30]maintained by the GCC team. Last modified ! 2019-11-28[31]. References --- 12104,12110 ---- provided this notice is preserved. These pages are [30]maintained by the GCC team. Last modified ! 2021-07-28[31]. References *************** References *** 12101,12107 **** 31. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.2/index.html - GCC 4.2 Release Series (This release series is no longer supported.) --- 12141,12146 ---- *************** References and Acknowledgements *** 12164,12170 **** provided this notice is preserved. These pages are [18]maintained by the GCC team. Last modified ! 2020-01-14[19]. References --- 12203,12209 ---- provided this notice is preserved. These pages are [18]maintained by the GCC team. Last modified ! 2021-07-28[19]. References *************** References *** 12189,12195 **** 19. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.2/changes.html - GCC 4.2 Release Series Changes, New Features, and Fixes --- 12228,12233 ---- *************** Other significant improvements *** 12493,12499 **** provided this notice is preserved. These pages are [11]maintained by the GCC team. Last modified ! 2019-11-28[12]. References --- 12531,12537 ---- provided this notice is preserved. These pages are [11]maintained by the GCC team. Last modified ! 2021-07-28[12]. References *************** References *** 12511,12517 **** 12. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.1/index.html - GCC 4.1 Release Series (This release series is no longer supported.) --- 12549,12554 ---- *************** References and Acknowledgements *** 12568,12574 **** provided this notice is preserved. These pages are [16]maintained by the GCC team. Last modified ! 2020-01-14[17]. References --- 12605,12611 ---- provided this notice is preserved. These pages are [16]maintained by the GCC team. Last modified ! 2021-07-28[17]. References *************** References *** 12591,12597 **** 17. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.1/changes.html - GCC 4.1 Release Series Changes, New Features, and Fixes --- 12628,12633 ---- *************** New Languages and Language specific impr *** 12836,12844 **** o BufferedImage and GtkImage rewrites. All image drawing operations should now work correctly (flipping requires gtk+ >= 2.6) - o Future Graphics2D, image and text work is documented at: - [2]http://developer.classpath.org/mediation/ClasspathGrap - hicsImagesText o When gtk+ 2.6 or higher is installed the default log handler will produce stack traces whenever a WARNING, CRITICAL or ERROR message is produced. --- 12872,12877 ---- *************** New Languages and Language specific impr *** 12981,12987 **** most of the work is currently being done around gcj/gij we want this framework to be as VM neutral as possible. Early design is described in: ! [3]https://gcc.gnu.org/ml/java/2005-05/msg00260.html o QT4 AWT peers, enable by giving configure --enable-qt-peer. Included, but not ready for production yet. They are explicitly disabled and not supported. But --- 13014,13020 ---- most of the work is currently being done around gcj/gij we want this framework to be as VM neutral as possible. Early design is described in: ! [2]https://gcc.gnu.org/ml/java/2005-05/msg00260.html o QT4 AWT peers, enable by giving configure --enable-qt-peer. Included, but not ready for production yet. They are explicitly disabled and not supported. But *************** New Languages and Language specific impr *** 12990,12996 **** explicitly enable them to try them out (and they will most likely contain bugs). o Documentation fixes all over the place. See ! [4]http://developer.classpath.org/doc/ New Targets and Target Specific Improvements --- 13023,13029 ---- explicitly enable them to try them out (and they will most likely contain bugs). o Documentation fixes all over the place. See ! [3]https://developer.classpath.org/doc/ New Targets and Target Specific Improvements *************** New Targets and Target Specific Improvem *** 13059,13065 **** instructions implicitly truncate the shift count to six bits. * Back-end support for the following generic features has been implemented: ! + The full set of [5]built-in functions for atomic memory access. + The -fstack-protector feature. + The optimization pass avoiding unnecessary stores of incoming --- 13092,13098 ---- instructions implicitly truncate the shift count to six bits. * Back-end support for the following generic features has been implemented: ! + The full set of [4]built-in functions for atomic memory access. + The -fstack-protector feature. + The optimization pass avoiding unnecessary stores of incoming *************** Other significant improvements *** 13095,13101 **** GCC 4.1.2 ! This is the [6]list of problem reports (PRs) from GCC's bug tracking system that are known to be fixed in the 4.1.2 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here). --- 13128,13134 ---- GCC 4.1.2 ! This is the [5]list of problem reports (PRs) from GCC's bug tracking system that are known to be fixed in the 4.1.2 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here). *************** GCC 4.1.2 *** 13121,13157 **** For questions related to the use of GCC, please consult these web ! pages and the [7]GCC manuals. If that fails, the ! [8]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 [9]gcc@gcc.gnu.org. All of [10]our lists have public ! archives. ! Copyright (C) [11]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 [12]maintained by the GCC team. Last modified ! 2019-11-28[13]. References 1. http://gcc.gnu.org/gcc-4.1/changes.html#4.1.2 ! 2. http://developer.classpath.org/mediation/ClasspathGraphicsImagesText ! 3. https://gcc.gnu.org/ml/java/2005-05/msg00260.html ! 4. http://developer.classpath.org/doc/ ! 5. https://gcc.gnu.org/onlinedocs/gcc-4.1.0/gcc/Atomic-Builtins.html ! 6. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.1.2 ! 7. https://gcc.gnu.org/onlinedocs/ ! 8. mailto:gcc-help@gcc.gnu.org ! 9. mailto:gcc@gcc.gnu.org ! 10. https://gcc.gnu.org/lists.html ! 11. https://www.fsf.org/ ! 12. https://gcc.gnu.org/about.html ! 13. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.0/index.html - GCC 4.0 Release Series (This release series is no longer supported.) --- 13154,13187 ---- For questions related to the use of GCC, please consult these web ! pages and the [6]GCC manuals. If that fails, the ! [7]gcc-help@gcc.gnu.org mailing list might help. Comments on these web pages and the development of GCC are welcome on our developer ! list at [8]gcc@gcc.gnu.org. All of [9]our lists have public archives. ! Copyright (C) [10]Free Software Foundation, Inc. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! These pages are [11]maintained by the GCC team. Last modified ! 2021-10-18[12]. 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 ! 5. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.1.2 ! 6. https://gcc.gnu.org/onlinedocs/ ! 7. mailto:gcc-help@gcc.gnu.org ! 8. mailto:gcc@gcc.gnu.org ! 9. https://gcc.gnu.org/lists.html ! 10. https://www.fsf.org/ ! 11. https://gcc.gnu.org/about.html ! 12. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.0/index.html GCC 4.0 Release Series (This release series is no longer supported.) *************** References and Acknowledgements *** 13214,13220 **** provided this notice is preserved. These pages are [18]maintained by the GCC team. Last modified ! 2020-01-14[19]. References --- 13244,13250 ---- provided this notice is preserved. These pages are [18]maintained by the GCC team. Last modified ! 2021-07-28[19]. References *************** References *** 13239,13245 **** 19. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.0/changes.html - GCC 4.0 Release Series Changes, New Features, and Fixes --- 13269,13274 ---- *************** GCC 4.0.4 *** 13741,13747 **** provided this notice is preserved. These pages are [21]maintained by the GCC team. Last modified ! 2019-11-28[22]. References --- 13770,13776 ---- provided this notice is preserved. These pages are [21]maintained by the GCC team. Last modified ! 2021-07-28[22]. References *************** References *** 13769,13775 **** 22. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-3.4/index.html - GCC 3.4 Release Series (This release series is no longer supported.) --- 13798,13803 ---- *************** References and Acknowledgements *** 13843,13849 **** provided this notice is preserved. These pages are [22]maintained by the GCC team. Last modified ! 2020-01-14[23]. References --- 13871,13877 ---- provided this notice is preserved. These pages are [22]maintained by the GCC team. Last modified ! 2021-07-28[23]. References *************** References *** 13872,13878 **** 23. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-3.4/changes.html - GCC 3.4 Release Series Changes, New Features, and Fixes --- 13900,13905 ---- *************** GCC 3.4.6 *** 15632,15638 **** provided this notice is preserved. These pages are [416]maintained by the GCC team. Last modified ! 2019-11-28[417]. References --- 15659,15665 ---- provided this notice is preserved. These pages are [416]maintained by the GCC team. Last modified ! 2021-07-28[417]. References *************** References *** 15645,15651 **** 7. https://www.boost.org/ 8. https://gcc.gnu.org/PR11953 9. https://gcc.gnu.org/PR8361 ! 10. https://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Other-Builtins.html#Other%20Builtins 11. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_closed.html#209 12. http://gcc.gnu.org/bugs/#cxx_rvalbind 13. https://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Objective-C-Dialect-Options.html --- 15672,15678 ---- 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. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_closed.html#209 12. http://gcc.gnu.org/bugs/#cxx_rvalbind 13. https://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Objective-C-Dialect-Options.html *************** References *** 15661,15667 **** 23. http://gcc.gnu.org/gcc-3.4/mips-abi.html 24. http://gcc.gnu.org/gcc-3.4/powerpc-abi.html 25. http://gcc.gnu.org/gcc-3.4/sparc-abi.html ! 26. https://gcc.gnu.org/bugzilla/buglist.cgi?short_desc_type=notregexp&short_desc=%5C%5B3%5C.4.*%5BRr%5Degression&target_milestone=3.4.0&bug_status=RESOLVED&resolution=FIXED 27. https://gcc.gnu.org/PR10129 28. https://gcc.gnu.org/PR14576 29. https://gcc.gnu.org/PR14760 --- 15688,15694 ---- 23. http://gcc.gnu.org/gcc-3.4/mips-abi.html 24. http://gcc.gnu.org/gcc-3.4/powerpc-abi.html 25. http://gcc.gnu.org/gcc-3.4/sparc-abi.html ! 26. https://gcc.gnu.org/bugzilla/buglist.cgi?short_desc_type=notregexp&short_desc=\[3\.4.*[Rr]egression&target_milestone=3.4.0&bug_status=RESOLVED&resolution=FIXED 27. https://gcc.gnu.org/PR10129 28. https://gcc.gnu.org/PR14576 29. https://gcc.gnu.org/PR14760 *************** References *** 16055,16061 **** 417. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-3.3/index.html - GCC 3.3 Release Series (This release series is no longer supported.) --- 16082,16087 ---- *************** References and Acknowledgements *** 16129,16135 **** provided this notice is preserved. These pages are [21]maintained by the GCC team. Last modified ! 2019-11-28[22]. References --- 16155,16161 ---- provided this notice is preserved. These pages are [21]maintained by the GCC team. Last modified ! 2021-07-28[22]. References *************** References *** 16157,16163 **** 22. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-3.3/changes.html - GCC 3.3 Release Series Changes, New Features, and Fixes --- 16183,16188 ---- *************** GCC 3.3.6 *** 17505,17511 **** provided this notice is preserved. These pages are [556]maintained by the GCC team. Last modified ! 2019-11-28[557]. References --- 17530,17536 ---- provided this notice is preserved. These pages are [556]maintained by the GCC team. Last modified ! 2021-07-28[557]. References *************** References *** 18068,18074 **** 557. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-3.2/index.html - GCC 3.2 Release Series (This release series is no longer supported.) --- 18093,18098 ---- *************** References and Acknowledgements *** 18136,18142 **** provided this notice is preserved. These pages are [17]maintained by the GCC team. Last modified ! 2019-11-28[18]. References --- 18160,18166 ---- provided this notice is preserved. These pages are [17]maintained by the GCC team. Last modified ! 2021-07-28[18]. References *************** References *** 18160,18166 **** 18. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-3.2/changes.html - GCC 3.2 Release Series Changes, New Features, and Fixes --- 18184,18189 ---- *************** GCC 3.2 *** 18760,18766 **** provided this notice is preserved. These pages are [251]maintained by the GCC team. Last modified ! 2019-11-28[252]. References --- 18783,18789 ---- provided this notice is preserved. These pages are [251]maintained by the GCC team. Last modified ! 2021-07-28[252]. References *************** References *** 19018,19024 **** 252. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-3.1/index.html - GCC 3.1 (This release series is no longer supported.) --- 19041,19046 ---- *************** http://gcc.gnu.org/gcc-3.1/index.html *** 19066,19072 **** provided this notice is preserved. These pages are [14]maintained by the GCC team. Last modified ! 2019-11-28[15]. References --- 19088,19094 ---- provided this notice is preserved. These pages are [14]maintained by the GCC team. Last modified ! 2021-07-28[15]. References *************** References *** 19087,19093 **** 15. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-3.1/changes.html - GCC 3.1 Release Series Changes, New Features, and Fixes --- 19109,19114 ---- *************** New Targets and Target Specific Improvem *** 19305,19311 **** + 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, --- 19326,19332 ---- + 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 *** 19421,19427 **** provided this notice is preserved. These pages are [13]maintained by the GCC team. Last modified ! 2019-11-28[14]. References --- 19442,19448 ---- provided this notice is preserved. These pages are [13]maintained by the GCC team. Last modified ! 2021-07-28[14]. References *************** References *** 19441,19447 **** 14. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-3.0/index.html - GCC 3.0.4 (This release series is no longer supported.) --- 19462,19467 ---- *************** Previous 3.0.x Releases *** 19496,19502 **** provided this notice is preserved. These pages are [14]maintained by the GCC team. Last modified ! 2019-11-28[15]. References --- 19516,19522 ---- provided this notice is preserved. These pages are [14]maintained by the GCC team. Last modified ! 2021-07-28[15]. References *************** References *** 19517,19523 **** 15. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-3.0/features.html - GCC 3.0 New Features Additional changes in GCC 3.0.4 --- 19537,19542 ---- *************** Other significant improvements *** 19688,19694 **** provided this notice is preserved. These pages are [18]maintained by the GCC team. Last modified ! 2019-11-28[19]. References --- 19707,19713 ---- provided this notice is preserved. These pages are [18]maintained by the GCC team. Last modified ! 2021-07-28[19]. References *************** References *** 19713,19719 **** 19. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-3.0/caveats.html - GCC 3.0 Caveats * -fstrict-aliasing is now part of -O2 and higher optimization --- 19732,19737 ---- *************** http://gcc.gnu.org/gcc-3.0/caveats.html *** 19760,19766 **** provided this notice is preserved. These pages are [7]maintained by the GCC team. Last modified ! 2019-11-28[8]. References --- 19778,19784 ---- provided this notice is preserved. These pages are [7]maintained by the GCC team. Last modified ! 2021-07-28[8]. References *************** References *** 19774,19780 **** 8. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-2.95/index.html - GCC 2.95 (This release series is no longer supported.) --- 19792,19797 ---- *************** References and Acknowledgements *** 19843,19849 **** provided this notice is preserved. These pages are [15]maintained by the GCC team. Last modified ! 2019-11-28[16]. References --- 19860,19866 ---- provided this notice is preserved. These pages are [15]maintained by the GCC team. Last modified ! 2021-07-28[16]. References *************** References *** 19865,19871 **** 16. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-2.95/features.html - GCC 2.95 New Features * General Optimizer Improvements: --- 19882,19887 ---- *************** Additional Changes in GCC 2.95.3 *** 20109,20115 **** provided this notice is preserved. These pages are [22]maintained by the GCC team. Last modified ! 2019-11-28[23]. References --- 20125,20131 ---- provided this notice is preserved. These pages are [22]maintained by the GCC team. Last modified ! 2021-07-28[23]. References *************** References *** 20138,20144 **** 23. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-2.95/caveats.html - GCC 2.95 Caveats * GCC 2.95 will issue an error for invalid asm statements that had --- 20154,20159 ---- *************** http://gcc.gnu.org/gcc-2.95/caveats.html *** 20193,20199 **** provided this notice is preserved. These pages are [7]maintained by the GCC team. Last modified ! 2019-11-28[8]. References --- 20208,20214 ---- provided this notice is preserved. These pages are [7]maintained by the GCC team. Last modified ! 2021-07-28[8]. References *************** References *** 20207,20213 **** 8. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/egcs-1.1/index.html - EGCS 1.1 September 3, 1998: We are pleased to announce the release of EGCS 1.1. --- 20222,20227 ---- *************** http://gcc.gnu.org/egcs-1.1/index.html *** 20415,20421 **** provided this notice is preserved. These pages are [15]maintained by the GCC team. Last modified ! 2019-11-28[16]. References --- 20429,20435 ---- provided this notice is preserved. These pages are [15]maintained by the GCC team. Last modified ! 2021-07-28[16]. References *************** References *** 20437,20443 **** 16. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/egcs-1.1/features.html - EGCS 1.1 new features * Integrated GNU Fortran (g77) compiler and runtime library with --- 20451,20456 ---- *************** http://gcc.gnu.org/egcs-1.1/features.htm *** 20515,20521 **** provided this notice is preserved. These pages are [10]maintained by the GCC team. Last modified ! 2019-11-28[11]. References --- 20528,20534 ---- provided this notice is preserved. These pages are [10]maintained by the GCC team. Last modified ! 2021-07-28[11]. References *************** References *** 20532,20538 **** 11. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/egcs-1.1/caveats.html - EGCS 1.1 Caveats * EGCS has an integrated libstdc++, but does not have an integrated --- 20545,20550 ---- *************** http://gcc.gnu.org/egcs-1.1/caveats.html *** 20570,20576 **** provided this notice is preserved. These pages are [6]maintained by the GCC team. Last modified ! 2019-11-28[7]. References --- 20582,20588 ---- provided this notice is preserved. These pages are [6]maintained by the GCC team. Last modified ! 2021-07-28[7]. References *************** References *** 20583,20589 **** 7. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/egcs-1.0/index.html - EGCS 1.0 December 3, 1997: We are pleased to announce the release of EGCS 1.0. --- 20595,20600 ---- *************** http://gcc.gnu.org/egcs-1.0/index.html *** 20767,20773 **** provided this notice is preserved. These pages are [10]maintained by the GCC team. Last modified ! 2019-11-28[11]. References --- 20778,20784 ---- provided this notice is preserved. These pages are [10]maintained by the GCC team. Last modified ! 2021-07-28[11]. References *************** References *** 20784,20790 **** 11. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/egcs-1.0/features.html - EGCS 1.0 features * Core compiler is based on the gcc2 development tree from Aug 2, --- 20795,20800 ---- *************** http://gcc.gnu.org/egcs-1.0/features.htm *** 20834,20840 **** provided this notice is preserved. These pages are [8]maintained by the GCC team. Last modified ! 2019-11-28[9]. References --- 20844,20850 ---- provided this notice is preserved. These pages are [8]maintained by the GCC team. Last modified ! 2021-07-28[9]. References *************** References *** 20849,20855 **** 9. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/egcs-1.0/caveats.html - EGCS 1.0 Caveats * EGCS has an integrated libstdc++, but does not have an integrated --- 20859,20864 ---- *************** http://gcc.gnu.org/egcs-1.0/caveats.html *** 20888,20894 **** provided this notice is preserved. These pages are [6]maintained by the GCC team. Last modified ! 2019-11-28[7]. References --- 20897,20903 ---- provided this notice is preserved. These pages are [6]maintained by the GCC team. Last modified ! 2021-07-28[7]. References diff -Nrcpad gcc-10.3.0/config/ChangeLog gcc-10.4.0/config/ChangeLog *** gcc-10.3.0/config/ChangeLog Thu Apr 8 11:56:48 2021 --- gcc-10.4.0/config/ChangeLog Tue Jun 28 08:54:27 2022 *************** *** 1,3 **** --- 1,31 ---- + 2022-06-28 Release Manager + + * GCC 10.4.0 released. + + 2022-05-29 Iain Sandoe + + Backported from master: + 2021-08-18 Iain Sandoe + + * mh-darwin: Require a non-shared host configuration to + enable mdynamic-no-pic where that is supported. + + 2022-05-29 Iain Sandoe + + Backported from master: + 2021-07-09 Iain Sandoe + + * mh-darwin: Make this specific to handling the + mdynamic-no-pic case. + + 2021-12-16 Martin Storsjö + + Backported from master: + 2021-04-13 Martin Storsjö + + * mh-mingw: Set __USE_MINGW_ACCESS in missed C++ flags + variables + 2021-04-08 Release Manager * GCC 10.3.0 released. diff -Nrcpad gcc-10.3.0/config/mh-darwin gcc-10.4.0/config/mh-darwin *** gcc-10.3.0/config/mh-darwin Thu Apr 8 11:56:27 2021 --- gcc-10.4.0/config/mh-darwin Tue Jun 28 08:54:27 2022 *************** *** 1,29 **** # The -mdynamic-no-pic ensures that the compiler executable is built without ! # position-independent-code -- the usual default on Darwin. This fix speeds ! # compiles by 3-5%. Don't add it if the compiler doesn't also support ! # -mno-dynamic-no-pic to undo it. ! DARWIN_MDYNAMIC_NO_PIC := \ ! `case ${host} in i?86-*-darwin* | powerpc-*-darwin*) \ ! $(CC) -S -xc /dev/null -o /dev/null -mno-dynamic-no-pic 2>/dev/null \ ! && echo -mdynamic-no-pic ;; esac` ! DARWIN_GCC_MDYNAMIC_NO_PIC := \ ! `case ${host} in i?86-*-darwin* | powerpc-*-darwin*) \ ! $(CC) -S -xc /dev/null -o /dev/null -mno-dynamic-no-pic 2>/dev/null \ ! || echo -mdynamic-no-pic ;; esac` ! # ld on Darwin versions >= 10.7 defaults to PIE executables. Disable this for ! # gcc components, since it is incompatible with our pch implementation. ! DARWIN_NO_PIE := `case ${host} in *-*-darwin[1][1-9]*) echo -Wl,-no_pie ;; esac;` ! BOOT_CFLAGS += $(DARWIN_MDYNAMIC_NO_PIC) ! BOOT_LDFLAGS += $(DARWIN_NO_PIE) ! # Similarly, for cross-compilation. ! STAGE1_CFLAGS += $(DARWIN_MDYNAMIC_NO_PIC) ! STAGE1_LDFLAGS += $(DARWIN_NO_PIE) ! # Without -mno-dynamic-no-pic support, add -mdynamic-no-pic just to later ! # stages when we know it is built with gcc. ! STAGE2_CFLAGS += $(DARWIN_GCC_MDYNAMIC_NO_PIC) ! STAGE3_CFLAGS += $(DARWIN_GCC_MDYNAMIC_NO_PIC) ! STAGE4_CFLAGS += $(DARWIN_GCC_MDYNAMIC_NO_PIC) --- 1,46 ---- # The -mdynamic-no-pic ensures that the compiler executable is built without ! # position-independent-code -- the usual default on Darwin. This speeds compiles ! # by 8-20% (measurements made against GCC-11). ! # However, we cannot add it unless the bootstrap compiler supports ! # -mno-dynamic-no-pic to undo it, since libiberty, at least, needs this. ! # We use Werror, since some versions of clang report unknown command line flags ! # as a warning only. ! # We only need to determine this for the host tool used to build stage1 (or a ! # non-bootstrapped compiler), later stages will be built by GCC which supports ! # the required flags. ! # We cannot use mdynamic-no-pic when building shared host resources. ! ifeq (${host_shared},no) ! BOOTSTRAP_TOOL_CAN_USE_MDYNAMIC_NO_PIC := $(shell \ ! $(CC) -S -xc /dev/null -o /dev/null -Werror -mno-dynamic-no-pic 2>/dev/null \ ! && echo true) ! else ! BOOTSTRAP_TOOL_CAN_USE_MDYNAMIC_NO_PIC := false ! endif ! ! @if gcc-bootstrap ! ifeq (${BOOTSTRAP_TOOL_CAN_USE_MDYNAMIC_NO_PIC},true) ! STAGE1_CFLAGS += -mdynamic-no-pic ! else ! STAGE1_CFLAGS += -fPIC ! endif ! ifeq (${host_shared},no) ! # Add -mdynamic-no-pic to later stages when we know it is built with GCC. ! BOOT_CFLAGS += -mdynamic-no-pic ! endif ! @endif gcc-bootstrap ! ! @unless gcc-bootstrap ! ifeq (${BOOTSTRAP_TOOL_CAN_USE_MDYNAMIC_NO_PIC},true) ! # FIXME: we should also enable this for cross and non-bootstrap builds but ! # that needs amendment to libcc1. ! # CFLAGS += -mdynamic-no-pic ! # CXXFLAGS += -mdynamic-no-pic ! else ! CFLAGS += -fPIC ! CXXFLAGS += -fPIC ! endif ! @endunless gcc-bootstrap diff -Nrcpad gcc-10.3.0/config/mh-mingw gcc-10.4.0/config/mh-mingw *** gcc-10.3.0/config/mh-mingw Thu Apr 8 11:56:27 2021 --- gcc-10.4.0/config/mh-mingw Tue Jun 28 08:54:27 2022 *************** *** 1,7 **** --- 1,9 ---- # Add -D__USE_MINGW_ACCESS to enable the built compiler to work on Windows # Vista (see PR33281 for details). BOOT_CFLAGS += -D__USE_MINGW_ACCESS -Wno-pedantic-ms-format + BOOT_CXXFLAGS += -D__USE_MINGW_ACCESS -Wno-pedantic-ms-format CFLAGS += -D__USE_MINGW_ACCESS + CXXFLAGS += -D__USE_MINGW_ACCESS STAGE1_CXXFLAGS += -D__USE_MINGW_ACCESS STAGE2_CXXFLAGS += -D__USE_MINGW_ACCESS STAGE3_CXXFLAGS += -D__USE_MINGW_ACCESS diff -Nrcpad gcc-10.3.0/configure gcc-10.4.0/configure *** gcc-10.3.0/configure Thu Apr 8 11:56:27 2021 --- gcc-10.4.0/configure Tue Jun 28 08:54:27 2022 *************** OBJCOPY_FOR_TARGET *** 609,614 **** --- 609,615 ---- NM_FOR_TARGET LIPO_FOR_TARGET LD_FOR_TARGET + DSYMUTIL_FOR_TARGET DLLTOOL_FOR_TARGET AS_FOR_TARGET AR_FOR_TARGET *************** RANLIB *** 629,634 **** --- 630,636 ---- NM LIPO LD + DSYMUTIL DLLTOOL AS AR *************** LDFLAGS_FOR_BUILD *** 649,654 **** --- 651,657 ---- GDC_FOR_BUILD GOC_FOR_BUILD GFORTRAN_FOR_BUILD + DSYMUTIL_FOR_BUILD DLLTOOL_FOR_BUILD CXX_FOR_BUILD CXXFLAGS_FOR_BUILD *************** target_configargs *** 851,856 **** --- 854,860 ---- AR AS DLLTOOL + DSYMUTIL LD LIPO NM *************** GDC_FOR_TARGET *** 871,876 **** --- 875,881 ---- AR_FOR_TARGET AS_FOR_TARGET DLLTOOL_FOR_TARGET + DSYMUTIL_FOR_TARGET LD_FOR_TARGET LIPO_FOR_TARGET NM_FOR_TARGET *************** Some influential environment variables: *** 1634,1639 **** --- 1639,1645 ---- AR AR for the host AS AS for the host DLLTOOL DLLTOOL for the host + DSYMUTIL DSYMUTIL for the host LD LD for the host LIPO LIPO for the host NM NM for the host *************** Some influential environment variables: *** 1663,1668 **** --- 1669,1676 ---- AS for the target DLLTOOL_FOR_TARGET DLLTOOL for the target + DSYMUTIL_FOR_TARGET + DSYMUTIL for the target LD_FOR_TARGET LD for the target LIPO_FOR_TARGET *************** fi *** 4077,4083 **** hppa*-*) host_makefile_frag="config/mh-pa" ;; ! *-*-darwin*) host_makefile_frag="config/mh-darwin" ;; powerpc-*-aix*) --- 4085,4091 ---- hppa*-*) host_makefile_frag="config/mh-pa" ;; ! i?86-*-darwin[89]* | i?86-*-darwin1[0-7]* | powerpc*-*-darwin*) host_makefile_frag="config/mh-darwin" ;; powerpc-*-aix*) *************** if test "${build}" != "${host}" ; then *** 4094,4099 **** --- 4102,4108 ---- AS_FOR_BUILD=${AS_FOR_BUILD-as} CC_FOR_BUILD=${CC_FOR_BUILD-gcc} CXX_FOR_BUILD=${CXX_FOR_BUILD-g++} + DSYMUTIL_FOR_BUILD=${DSYMUTIL_FOR_BUILD-dsymutil} GFORTRAN_FOR_BUILD=${GFORTRAN_FOR_BUILD-gfortran} GOC_FOR_BUILD=${GOC_FOR_BUILD-gccgo} GDC_FOR_BUILD=${GDC_FOR_BUILD-gdc} *************** else *** 4108,4113 **** --- 4117,4123 ---- AS_FOR_BUILD="\$(AS)" CC_FOR_BUILD="\$(CC)" CXX_FOR_BUILD="\$(CXX)" + DSYMUTIL_FOR_BUILD="\$(DSYMUTIL)" GFORTRAN_FOR_BUILD="\$(GFORTRAN)" GOC_FOR_BUILD="\$(GOC)" GDC_FOR_BUILD="\$(GDC)" *************** done *** 7883,7888 **** --- 7893,7899 ---- + # Generate default definitions for YACC, M4, LEX and other programs that run # on the build machine. These are used if the Makefile can't locate these # programs in objdir. *************** fi *** 8715,8720 **** --- 8726,8872 ---- + if test -n "$DSYMUTIL"; then + ac_cv_prog_DSYMUTIL=$DSYMUTIL + elif test -n "$ac_cv_prog_DSYMUTIL"; then + DSYMUTIL=$ac_cv_prog_DSYMUTIL + fi + + if test -n "$ac_cv_prog_DSYMUTIL"; then + for ncn_progname in dsymutil; do + # Extract the first word of "${ncn_progname}", so it can be a program name with args. + set dummy ${ncn_progname}; ac_word=$2 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + $as_echo_n "checking for $ac_word... " >&6; } + if ${ac_cv_prog_DSYMUTIL+:} false; then : + $as_echo_n "(cached) " >&6 + else + if test -n "$DSYMUTIL"; then + ac_cv_prog_DSYMUTIL="$DSYMUTIL" # 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_DSYMUTIL="${ncn_progname}" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi + done + done + IFS=$as_save_IFS + + fi + fi + DSYMUTIL=$ac_cv_prog_DSYMUTIL + if test -n "$DSYMUTIL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 + $as_echo "$DSYMUTIL" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + $as_echo "no" >&6; } + fi + + + done + fi + + for ncn_progname in dsymutil; do + if test -n "$ncn_tool_prefix"; then + # Extract the first word of "${ncn_tool_prefix}${ncn_progname}", so it can be a program name with args. + set dummy ${ncn_tool_prefix}${ncn_progname}; ac_word=$2 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + $as_echo_n "checking for $ac_word... " >&6; } + if ${ac_cv_prog_DSYMUTIL+:} false; then : + $as_echo_n "(cached) " >&6 + else + if test -n "$DSYMUTIL"; then + ac_cv_prog_DSYMUTIL="$DSYMUTIL" # 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_DSYMUTIL="${ncn_tool_prefix}${ncn_progname}" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi + done + done + IFS=$as_save_IFS + + fi + fi + DSYMUTIL=$ac_cv_prog_DSYMUTIL + if test -n "$DSYMUTIL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 + $as_echo "$DSYMUTIL" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + $as_echo "no" >&6; } + fi + + + fi + if test -z "$ac_cv_prog_DSYMUTIL" && test $build = $host ; then + # Extract the first word of "${ncn_progname}", so it can be a program name with args. + set dummy ${ncn_progname}; ac_word=$2 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + $as_echo_n "checking for $ac_word... " >&6; } + if ${ac_cv_prog_DSYMUTIL+:} false; then : + $as_echo_n "(cached) " >&6 + else + if test -n "$DSYMUTIL"; then + ac_cv_prog_DSYMUTIL="$DSYMUTIL" # 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_DSYMUTIL="${ncn_progname}" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi + done + done + IFS=$as_save_IFS + + fi + fi + DSYMUTIL=$ac_cv_prog_DSYMUTIL + if test -n "$DSYMUTIL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 + $as_echo "$DSYMUTIL" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + $as_echo "no" >&6; } + fi + + + fi + test -n "$ac_cv_prog_DSYMUTIL" && break + done + + if test -z "$ac_cv_prog_DSYMUTIL" ; then + set dummy dsymutil + if test $build = $host ; then + DSYMUTIL="$2" + else + DSYMUTIL="${ncn_tool_prefix}$2" + fi + fi + + + if test -n "$LD"; then ac_cv_prog_LD=$LD elif test -n "$ac_cv_prog_LD"; then *************** fi *** 11945,11950 **** --- 12097,12332 ---- + if test -z "$ac_cv_path_DSYMUTIL_FOR_TARGET" ; then + if test -n "$with_build_time_tools"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dsymutil in $with_build_time_tools" >&5 + $as_echo_n "checking for dsymutil in $with_build_time_tools... " >&6; } + if test -x $with_build_time_tools/dsymutil; then + DSYMUTIL_FOR_TARGET=`cd $with_build_time_tools && pwd`/dsymutil + ac_cv_path_DSYMUTIL_FOR_TARGET=$DSYMUTIL_FOR_TARGET + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_DSYMUTIL_FOR_TARGET" >&5 + $as_echo "$ac_cv_path_DSYMUTIL_FOR_TARGET" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + $as_echo "no" >&6; } + fi + elif test $build != $host && test $have_gcc_for_target = yes; then + DSYMUTIL_FOR_TARGET=`$GCC_FOR_TARGET --print-prog-name=dsymutil` + test $DSYMUTIL_FOR_TARGET = dsymutil && DSYMUTIL_FOR_TARGET= + test -n "$DSYMUTIL_FOR_TARGET" && ac_cv_path_DSYMUTIL_FOR_TARGET=$DSYMUTIL_FOR_TARGET + fi + fi + if test -z "$ac_cv_path_DSYMUTIL_FOR_TARGET" && test -n "$gcc_cv_tool_dirs"; then + # Extract the first word of "dsymutil", so it can be a program name with args. + set dummy dsymutil; 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_path_DSYMUTIL_FOR_TARGET+:} false; then : + $as_echo_n "(cached) " >&6 + else + case $DSYMUTIL_FOR_TARGET in + [\\/]* | ?:[\\/]*) + ac_cv_path_DSYMUTIL_FOR_TARGET="$DSYMUTIL_FOR_TARGET" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR + for as_dir in $gcc_cv_tool_dirs + 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_path_DSYMUTIL_FOR_TARGET="$as_dir/$ac_word$ac_exec_ext" + $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 + + ;; + esac + fi + DSYMUTIL_FOR_TARGET=$ac_cv_path_DSYMUTIL_FOR_TARGET + if test -n "$DSYMUTIL_FOR_TARGET"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL_FOR_TARGET" >&5 + $as_echo "$DSYMUTIL_FOR_TARGET" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + $as_echo "no" >&6; } + fi + + + fi + if test -z "$ac_cv_path_DSYMUTIL_FOR_TARGET" ; then + + + if test -n "$DSYMUTIL_FOR_TARGET"; then + ac_cv_prog_DSYMUTIL_FOR_TARGET=$DSYMUTIL_FOR_TARGET + elif test -n "$ac_cv_prog_DSYMUTIL_FOR_TARGET"; then + DSYMUTIL_FOR_TARGET=$ac_cv_prog_DSYMUTIL_FOR_TARGET + fi + + if test -n "$ac_cv_prog_DSYMUTIL_FOR_TARGET"; then + for ncn_progname in dsymutil; do + # Extract the first word of "${ncn_progname}", so it can be a program name with args. + set dummy ${ncn_progname}; ac_word=$2 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + $as_echo_n "checking for $ac_word... " >&6; } + if ${ac_cv_prog_DSYMUTIL_FOR_TARGET+:} false; then : + $as_echo_n "(cached) " >&6 + else + if test -n "$DSYMUTIL_FOR_TARGET"; then + ac_cv_prog_DSYMUTIL_FOR_TARGET="$DSYMUTIL_FOR_TARGET" # Let the user override the test. + else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR + for as_dir in $PATH + do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_DSYMUTIL_FOR_TARGET="${ncn_progname}" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi + done + done + IFS=$as_save_IFS + + fi + fi + DSYMUTIL_FOR_TARGET=$ac_cv_prog_DSYMUTIL_FOR_TARGET + if test -n "$DSYMUTIL_FOR_TARGET"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL_FOR_TARGET" >&5 + $as_echo "$DSYMUTIL_FOR_TARGET" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + $as_echo "no" >&6; } + fi + + + done + fi + + if test -z "$ac_cv_prog_DSYMUTIL_FOR_TARGET" && test -n "$with_build_time_tools"; then + for ncn_progname in dsymutil; do + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ncn_progname} in $with_build_time_tools" >&5 + $as_echo_n "checking for ${ncn_progname} in $with_build_time_tools... " >&6; } + if test -x $with_build_time_tools/${ncn_progname}; then + ac_cv_prog_DSYMUTIL_FOR_TARGET=$with_build_time_tools/${ncn_progname} + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + $as_echo "yes" >&6; } + break + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + $as_echo "no" >&6; } + fi + done + fi + + if test -z "$ac_cv_prog_DSYMUTIL_FOR_TARGET"; then + for ncn_progname in dsymutil; do + if test -n "$ncn_target_tool_prefix"; then + # Extract the first word of "${ncn_target_tool_prefix}${ncn_progname}", so it can be a program name with args. + set dummy ${ncn_target_tool_prefix}${ncn_progname}; ac_word=$2 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + $as_echo_n "checking for $ac_word... " >&6; } + if ${ac_cv_prog_DSYMUTIL_FOR_TARGET+:} false; then : + $as_echo_n "(cached) " >&6 + else + if test -n "$DSYMUTIL_FOR_TARGET"; then + ac_cv_prog_DSYMUTIL_FOR_TARGET="$DSYMUTIL_FOR_TARGET" # Let the user override the test. + else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR + for as_dir in $PATH + do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_DSYMUTIL_FOR_TARGET="${ncn_target_tool_prefix}${ncn_progname}" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi + done + done + IFS=$as_save_IFS + + fi + fi + DSYMUTIL_FOR_TARGET=$ac_cv_prog_DSYMUTIL_FOR_TARGET + if test -n "$DSYMUTIL_FOR_TARGET"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL_FOR_TARGET" >&5 + $as_echo "$DSYMUTIL_FOR_TARGET" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + $as_echo "no" >&6; } + fi + + + fi + if test -z "$ac_cv_prog_DSYMUTIL_FOR_TARGET" && test $build = $target ; then + # Extract the first word of "${ncn_progname}", so it can be a program name with args. + set dummy ${ncn_progname}; ac_word=$2 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + $as_echo_n "checking for $ac_word... " >&6; } + if ${ac_cv_prog_DSYMUTIL_FOR_TARGET+:} false; then : + $as_echo_n "(cached) " >&6 + else + if test -n "$DSYMUTIL_FOR_TARGET"; then + ac_cv_prog_DSYMUTIL_FOR_TARGET="$DSYMUTIL_FOR_TARGET" # Let the user override the test. + else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR + for as_dir in $PATH + do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_DSYMUTIL_FOR_TARGET="${ncn_progname}" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi + done + done + IFS=$as_save_IFS + + fi + fi + DSYMUTIL_FOR_TARGET=$ac_cv_prog_DSYMUTIL_FOR_TARGET + if test -n "$DSYMUTIL_FOR_TARGET"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL_FOR_TARGET" >&5 + $as_echo "$DSYMUTIL_FOR_TARGET" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + $as_echo "no" >&6; } + fi + + + fi + test -n "$ac_cv_prog_DSYMUTIL_FOR_TARGET" && break + done + fi + + if test -z "$ac_cv_prog_DSYMUTIL_FOR_TARGET" ; then + set dummy dsymutil + if test $build = $target ; then + DSYMUTIL_FOR_TARGET="$2" + else + DSYMUTIL_FOR_TARGET="${ncn_target_tool_prefix}$2" + fi + else + DSYMUTIL_FOR_TARGET="$ac_cv_prog_DSYMUTIL_FOR_TARGET" + fi + + else + DSYMUTIL_FOR_TARGET=$ac_cv_path_DSYMUTIL_FOR_TARGET + fi + + + + if test -z "$ac_cv_path_LD_FOR_TARGET" ; then if test -n "$with_build_time_tools"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld in $with_build_time_tools" >&5 *************** $as_echo "pre-installed in $ac_dir" >&6; *** 14727,14732 **** --- 15109,15145 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: result: host tool" >&5 $as_echo "host tool" >&6; } else + # We need a cross tool + { $as_echo "$as_me:${as_lineno-$LINENO}: result: pre-installed" >&5 + $as_echo "pre-installed" >&6; } + fi + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking where to find the target dsymutil" >&5 + $as_echo_n "checking where to find the target dsymutil... " >&6; } + if test "x${build}" != "x${host}" ; then + if expr "x$DSYMUTIL_FOR_TARGET" : "x/" > /dev/null; then + # We already found the complete path + ac_dir=`dirname $DSYMUTIL_FOR_TARGET` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: pre-installed in $ac_dir" >&5 + $as_echo "pre-installed in $ac_dir" >&6; } + else + # Canadian cross, just use what we found + { $as_echo "$as_me:${as_lineno-$LINENO}: result: pre-installed" >&5 + $as_echo "pre-installed" >&6; } + fi + else + if expr "x$DSYMUTIL_FOR_TARGET" : "x/" > /dev/null; then + # We already found the complete path + ac_dir=`dirname $DSYMUTIL_FOR_TARGET` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: pre-installed in $ac_dir" >&5 + $as_echo "pre-installed in $ac_dir" >&6; } + elif test "x$target" = "x$host"; then + # We can use an host tool + DSYMUTIL_FOR_TARGET='$(DSYMUTIL)' + { $as_echo "$as_me:${as_lineno-$LINENO}: result: host tool" >&5 + $as_echo "host tool" >&6; } + else # We need a cross tool { $as_echo "$as_me:${as_lineno-$LINENO}: result: pre-installed" >&5 $as_echo "pre-installed" >&6; } diff -Nrcpad gcc-10.3.0/configure.ac gcc-10.4.0/configure.ac *** gcc-10.3.0/configure.ac Thu Apr 8 11:56:27 2021 --- gcc-10.4.0/configure.ac Tue Jun 28 08:54:27 2022 *************** case "${host}" in *** 1333,1339 **** hppa*-*) host_makefile_frag="config/mh-pa" ;; ! *-*-darwin*) host_makefile_frag="config/mh-darwin" ;; powerpc-*-aix*) --- 1333,1339 ---- hppa*-*) host_makefile_frag="config/mh-pa" ;; ! i?86-*-darwin[[89]]* | i?86-*-darwin1[[0-7]]* | powerpc*-*-darwin*) host_makefile_frag="config/mh-darwin" ;; powerpc-*-aix*) *************** if test "${build}" != "${host}" ; then *** 1350,1355 **** --- 1350,1356 ---- AS_FOR_BUILD=${AS_FOR_BUILD-as} CC_FOR_BUILD=${CC_FOR_BUILD-gcc} CXX_FOR_BUILD=${CXX_FOR_BUILD-g++} + DSYMUTIL_FOR_BUILD=${DSYMUTIL_FOR_BUILD-dsymutil} GFORTRAN_FOR_BUILD=${GFORTRAN_FOR_BUILD-gfortran} GOC_FOR_BUILD=${GOC_FOR_BUILD-gccgo} GDC_FOR_BUILD=${GDC_FOR_BUILD-gdc} *************** else *** 1364,1369 **** --- 1365,1371 ---- AS_FOR_BUILD="\$(AS)" CC_FOR_BUILD="\$(CC)" CXX_FOR_BUILD="\$(CXX)" + DSYMUTIL_FOR_BUILD="\$(DSYMUTIL)" GFORTRAN_FOR_BUILD="\$(GFORTRAN)" GOC_FOR_BUILD="\$(GOC)" GDC_FOR_BUILD="\$(GDC)" *************** AC_SUBST(CFLAGS_FOR_BUILD) *** 3378,3383 **** --- 3380,3386 ---- AC_SUBST(CXXFLAGS_FOR_BUILD) AC_SUBST(CXX_FOR_BUILD) AC_SUBST(DLLTOOL_FOR_BUILD) + AC_SUBST(DSYMUTIL_FOR_BUILD) AC_SUBST(GFORTRAN_FOR_BUILD) AC_SUBST(GOC_FOR_BUILD) AC_SUBST(GDC_FOR_BUILD) *************** esac *** 3457,3462 **** --- 3460,3466 ---- NCN_STRICT_CHECK_TOOLS(AR, ar) NCN_STRICT_CHECK_TOOLS(AS, as) NCN_STRICT_CHECK_TOOLS(DLLTOOL, dlltool) + NCN_STRICT_CHECK_TOOLS(DSYMUTIL, dsymutil) NCN_STRICT_CHECK_TOOLS(LD, ld) NCN_STRICT_CHECK_TOOLS(LIPO, lipo) NCN_STRICT_CHECK_TOOLS(NM, nm) *************** NCN_STRICT_CHECK_TARGET_TOOLS(GDC_FOR_TA *** 3496,3501 **** --- 3500,3506 ---- ACX_CHECK_INSTALLED_TARGET_TOOL(AR_FOR_TARGET, ar) ACX_CHECK_INSTALLED_TARGET_TOOL(AS_FOR_TARGET, as) ACX_CHECK_INSTALLED_TARGET_TOOL(DLLTOOL_FOR_TARGET, dlltool) + ACX_CHECK_INSTALLED_TARGET_TOOL(DSYMUTIL_FOR_TARGET, dsymutil) ACX_CHECK_INSTALLED_TARGET_TOOL(LD_FOR_TARGET, ld) ACX_CHECK_INSTALLED_TARGET_TOOL(LIPO_FOR_TARGET, lipo) ACX_CHECK_INSTALLED_TARGET_TOOL(NM_FOR_TARGET, nm) *************** GCC_TARGET_TOOL(c++ for libstdc++, RAW_C *** 3521,3526 **** --- 3526,3532 ---- [gcc/xgcc -shared-libgcc -B$$r/$(HOST_SUBDIR)/gcc -nostdinc++ -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/libsupc++/.libs], c++) GCC_TARGET_TOOL(dlltool, DLLTOOL_FOR_TARGET, DLLTOOL, [binutils/dlltool]) + GCC_TARGET_TOOL(dsymutil, DSYMUTIL_FOR_TARGET, DSYMUTIL) GCC_TARGET_TOOL(gcc, GCC_FOR_TARGET, , [gcc/xgcc -B$$r/$(HOST_SUBDIR)/gcc/]) GCC_TARGET_TOOL(gfortran, GFORTRAN_FOR_TARGET, GFORTRAN, [gcc/gfortran -B$$r/$(HOST_SUBDIR)/gcc/], fortran) diff -Nrcpad gcc-10.3.0/contrib/ChangeLog gcc-10.4.0/contrib/ChangeLog *** gcc-10.3.0/contrib/ChangeLog Thu Apr 8 11:56:48 2021 --- gcc-10.4.0/contrib/ChangeLog Tue Jun 28 08:54:27 2022 *************** *** 1,3 **** --- 1,85 ---- + 2022-06-28 Release Manager + + * GCC 10.4.0 released. + + 2022-01-27 Martin Liska + + * gcc-git-customization.sh: Sync from master. + * git-descr.sh: New file. + * git-undescr.sh: New file. + + 2022-01-24 Martin Liska + + * gcc-changelog/git_commit.py: Sync from master. + * gcc-changelog/test_email.py: Likewise. + * gcc-changelog/test_patches.txt: Likewise. + + 2022-01-19 Martin Liska + + * git-backport.py: Sync from master. + * git-commit-mklog.py: Likewise. + * git-fix-changelog.py: New file. + + 2022-01-17 Martin Liska + + Backported from master: + 2022-01-17 Martin Liska + + * git-backport.py: Support renaming of .cc files. + + 2021-11-08 Martin Liska + + * gcc-changelog/git_check_commit.py: Sync from master. + * gcc-changelog/git_commit.py: Likewise. + * gcc-changelog/git_email.py: Likewise. + * gcc-changelog/git_update_version.py: Likewise. + * gcc-changelog/test_email.py: Likewise. + * gcc-changelog/test_patches.txt: Likewise. + + 2021-06-23 Martin Liska + + * mklog.py: New file. + * test_mklog.py: New file. + + 2021-06-23 Martin Liska + + * git-commit-mklog.py: New file. + + 2021-05-18 Jonathan Wakely + + Backported from master: + 2021-05-18 Jonathan Wakely + + * gcc-changelog/git_email.py: Remove use of non-strict mode. + + 2021-05-17 Richard Biener + + Backported from master: + 2021-05-17 Richard Biener + + * download_prerequisites: Update mpfr version to 3.1.6. + * prerequisites.md5: Update. + * prerequisites.sha512: Likewise. + + 2021-05-14 Martin Liska + + * gcc-changelog/git_check_commit.py: Sync from master. + * gcc-changelog/git_commit.py: Likewise. + * gcc-changelog/git_email.py: Likewise. + * gcc-changelog/git_repository.py: Likewise. + * gcc-changelog/git_update_version.py: Likewise. + * gcc-changelog/test_email.py: Likewise. + * gcc-changelog/test_patches.txt: Likewise. + + 2021-04-14 Martin Liska + + * gcc-changelog/git_commit.py: Sync with master. + * gcc-changelog/git_email.py: Likewise. + * gcc-changelog/git_update_version.py: Likewise. + * gcc-changelog/setup.cfg: Likewise. + * gcc-changelog/test_email.py: Likewise. + * gcc-changelog/test_patches.txt: Likewise. + 2021-04-08 Release Manager * GCC 10.3.0 released. diff -Nrcpad gcc-10.3.0/contrib/download_prerequisites gcc-10.4.0/contrib/download_prerequisites *** gcc-10.3.0/contrib/download_prerequisites Thu Apr 8 11:56:27 2021 --- gcc-10.4.0/contrib/download_prerequisites Tue Jun 28 08:54:27 2022 *************** version='(unversioned)' *** 28,34 **** # `contrib/prerequisites.md5` with the new checksums. gmp='gmp-6.1.0.tar.bz2' ! mpfr='mpfr-3.1.4.tar.bz2' mpc='mpc-1.0.3.tar.gz' isl='isl-0.18.tar.bz2' --- 28,34 ---- # `contrib/prerequisites.md5` with the new checksums. gmp='gmp-6.1.0.tar.bz2' ! mpfr='mpfr-3.1.6.tar.bz2' mpc='mpc-1.0.3.tar.gz' isl='isl-0.18.tar.bz2' diff -Nrcpad gcc-10.3.0/contrib/gcc-changelog/git_check_commit.py gcc-10.4.0/contrib/gcc-changelog/git_check_commit.py *** gcc-10.3.0/contrib/gcc-changelog/git_check_commit.py Thu Apr 8 11:56:27 2021 --- gcc-10.4.0/contrib/gcc-changelog/git_check_commit.py Tue Jun 28 08:54:27 2022 *************** from git_repository import parse_git_rev *** 23,41 **** parser = argparse.ArgumentParser(description='Check git ChangeLog format ' 'of a commit') parser.add_argument('revisions', default='HEAD', nargs='?', ! help='Git revisions (e.g. hash~5..hash or just hash)') parser.add_argument('-g', '--git-path', default='.', help='Path to git repository') parser.add_argument('-p', '--print-changelog', action='store_true', help='Print final changelog entires') ! parser.add_argument('-n', '--non-strict-mode', action='store_true', ! help='Use non-strict mode (allow changes in ChangeLog and ' ! 'other automatically updated files).') args = parser.parse_args() retval = 0 ! for git_commit in parse_git_revisions(args.git_path, args.revisions, ! not args.non_strict_mode): res = 'OK' if git_commit.success else 'FAILED' print('Checking %s: %s' % (git_commit.original_info.hexsha, res)) if git_commit.success: --- 23,40 ---- parser = argparse.ArgumentParser(description='Check git ChangeLog format ' 'of a commit') parser.add_argument('revisions', default='HEAD', nargs='?', ! help='Git revisions (e.g. hash~5..hash or just hash) - ' ! 'if not specified: HEAD') parser.add_argument('-g', '--git-path', default='.', help='Path to git repository') parser.add_argument('-p', '--print-changelog', action='store_true', help='Print final changelog entires') ! parser.add_argument('-v', '--verbose', action='store_true', ! help='Print verbose information') args = parser.parse_args() retval = 0 ! for git_commit in parse_git_revisions(args.git_path, args.revisions): res = 'OK' if git_commit.success else 'FAILED' print('Checking %s: %s' % (git_commit.original_info.hexsha, res)) if git_commit.success: *************** for git_commit in parse_git_revisions(ar *** 44,49 **** --- 43,50 ---- else: for error in git_commit.errors: print('ERR: %s' % error) + if args.verbose and error.details: + print(error.details) retval = 1 exit(retval) diff -Nrcpad gcc-10.3.0/contrib/gcc-changelog/git_commit.py gcc-10.4.0/contrib/gcc-changelog/git_commit.py *** gcc-10.3.0/contrib/gcc-changelog/git_commit.py Thu Apr 8 11:56:27 2021 --- gcc-10.4.0/contrib/gcc-changelog/git_commit.py Tue Jun 28 08:54:27 2022 *************** *** 19,26 **** import difflib import os import re ! changelog_locations = { 'c++tools', 'config', 'contrib', --- 19,27 ---- import difflib import os import re + import sys ! default_changelog_locations = { 'c++tools', 'config', 'contrib', *************** ignored_prefixes = { *** 133,138 **** --- 134,140 ---- 'gcc/go/gofrontend/', 'gcc/testsuite/gdc.test/', 'gcc/testsuite/go.test/test/', + 'libffi/', 'libgo/', 'libphobos/libdruntime/', 'libphobos/src/', *************** author_line_regex = \ *** 155,161 **** re.compile(r'^(?P\d{4}-\d{2}-\d{2})\ {2}(?P.* <.*>)') additional_author_regex = re.compile(r'^\t(?P\ *)?(?P.* <.*>)') changelog_regex = re.compile(r'^(?:[fF]or +)?([a-z0-9+-/]*)ChangeLog:?') ! pr_regex = re.compile(r'\tPR (?P[a-z+-]+\/)?([0-9]+)$') dr_regex = re.compile(r'\tDR ([0-9]+)$') star_prefix_regex = re.compile(r'\t\*(?P\ *)(?P.*)') end_of_location_regex = re.compile(r'[\[<(:]') --- 157,165 ---- re.compile(r'^(?P\d{4}-\d{2}-\d{2})\ {2}(?P.* <.*>)') additional_author_regex = re.compile(r'^\t(?P\ *)?(?P.* <.*>)') changelog_regex = re.compile(r'^(?:[fF]or +)?([a-z0-9+-/]*)ChangeLog:?') ! subject_pr_regex = re.compile(r'(^|\W)PR\s+(?P[a-zA-Z+-]+)/(?P\d{4,7})') ! subject_pr2_regex = re.compile(r'[(\[]PR\s*(?P\d{4,7})[)\]]') ! pr_regex = re.compile(r'\tPR (?P[a-z+-]+\/)?(?P[0-9]+)$') dr_regex = re.compile(r'\tDR ([0-9]+)$') star_prefix_regex = re.compile(r'\t\*(?P\ *)(?P.*)') end_of_location_regex = re.compile(r'[\[<(:]') *************** def decode_path(path): *** 193,206 **** class Error: ! def __init__(self, message, line=None): self.message = message self.line = line def __repr__(self): s = self.message if self.line: ! s += ':"%s"' % self.line return s --- 197,211 ---- class Error: ! def __init__(self, message, line=None, details=None): self.message = message self.line = line + self.details = details def __repr__(self): s = self.message if self.line: ! s += ': "%s"' % self.line return s *************** class ChangeLogEntry: *** 214,219 **** --- 219,225 ---- self.lines = [] self.files = [] self.file_patterns = [] + self.parentheses_stack = [] def parse_file_names(self): # Whether the content currently processed is between a star prefix the *************** class ChangeLogEntry: *** 223,230 **** for line in self.lines: # If this line matches the star prefix, start the location # processing on the information that follows the star. m = star_prefix_regex.match(line) ! if m: in_location = True line = m.group('content') --- 229,242 ---- for line in self.lines: # If this line matches the star prefix, start the location # processing on the information that follows the star. + # Note that we need to skip macro names that can be in form of: + # + # * config/i386/i386.md (*fix_trunc_i387_1, + # *add3_ne, *add3_eq_0, *add3_ne_0, + # *fist2__1, *3_1): + # m = star_prefix_regex.match(line) ! if m and len(m.group('spaces')) == 1: in_location = True line = m.group('content') *************** class GitInfo: *** 280,286 **** class GitCommit: ! def __init__(self, info, strict=True, commit_to_info_hook=None): self.original_info = info self.info = info self.message = None --- 292,298 ---- class GitCommit: ! def __init__(self, info, commit_to_info_hook=None, ref_name=None): self.original_info = info self.info = info self.message = None *************** class GitCommit: *** 290,303 **** --- 302,320 ---- self.top_level_authors = [] self.co_authors = [] self.top_level_prs = [] + self.subject_prs = set() self.cherry_pick_commit = None self.revert_commit = None self.commit_to_info_hook = commit_to_info_hook + self.init_changelog_locations(ref_name) # Skip Update copyright years commits if self.info.lines and self.info.lines[0] == 'Update copyright years.': return + if self.info.lines and len(self.info.lines) > 1 and self.info.lines[1]: + self.errors.append(Error('Expected empty second line in commit message', info.lines[0])) + # Identify first if the commit is a Revert commit for line in self.info.lines: m = revert_regex.match(line) *************** class GitCommit: *** 307,324 **** if self.revert_commit: self.info = self.commit_to_info_hook(self.revert_commit) project_files = [f for f in self.info.modified_files ! if self.is_changelog_filename(f[0]) or f[0] in misc_files] ignored_files = [f for f in self.info.modified_files if self.in_ignored_location(f[0])] if len(project_files) == len(self.info.modified_files): # All modified files are only MISC files return ! elif project_files and strict: ! self.errors.append(Error('ChangeLog, DATESTAMP, BASE-VER and ' ! 'DEV-PHASE updates should be done ' ! 'separately from normal commits')) return all_are_ignored = (len(project_files) + len(ignored_files) --- 324,359 ---- if self.revert_commit: self.info = self.commit_to_info_hook(self.revert_commit) + # The following happens for get_email.py: + if not self.info: + return + + self.check_commit_email() + + # Extract PR numbers form the subject line + # Match either [PRnnnn] / (PRnnnn) or PR component/nnnn + if self.info.lines and not self.revert_commit: + self.subject_prs = {m.group('pr') for m in subject_pr2_regex.finditer(info.lines[0])} + for m in subject_pr_regex.finditer(info.lines[0]): + if not m.group('component') in bug_components: + self.errors.append(Error('invalid PR component in subject', info.lines[0])) + self.subject_prs.add(m.group('pr')) + + # Allow complete deletion of ChangeLog files in a commit project_files = [f for f in self.info.modified_files ! if (self.is_changelog_filename(f[0], allow_suffix=True) and f[1] != 'D') or f[0] in misc_files] ignored_files = [f for f in self.info.modified_files if self.in_ignored_location(f[0])] if len(project_files) == len(self.info.modified_files): # All modified files are only MISC files return ! elif project_files: ! err = 'ChangeLog, DATESTAMP, BASE-VER and DEV-PHASE updates ' \ ! 'should be done separately from normal commits\n' \ ! '(note: ChangeLog entries will be automatically ' \ ! 'added by a cron job)' ! self.errors.append(Error(err)) return all_are_ignored = (len(project_files) + len(ignored_files) *************** class GitCommit: *** 328,338 **** --- 363,377 ---- self.parse_changelog() self.parse_file_names() self.check_for_empty_description() + self.check_for_broken_parentheses() self.deduce_changelog_locations() self.check_file_patterns() if not self.errors: self.check_mentioned_files() self.check_for_correct_changelog() + if self.subject_prs: + self.errors.append(Error('PR %s in subject but not in changelog' % + ', '.join(self.subject_prs), self.info.lines[0])) @property def success(self): *************** class GitCommit: *** 343,360 **** return [x[0] for x in self.info.modified_files if x[1] == 'A'] @classmethod ! def is_changelog_filename(cls, path): ! return path.endswith('/ChangeLog') or path == 'ChangeLog' ! @classmethod ! def find_changelog_location(cls, name): if name.startswith('\t'): name = name[1:] if name.endswith(':'): name = name[:-1] if name.endswith('/'): name = name[:-1] ! return name if name in changelog_locations else None @classmethod def format_git_author(cls, author): --- 382,404 ---- return [x[0] for x in self.info.modified_files if x[1] == 'A'] @classmethod ! def is_changelog_filename(cls, path, allow_suffix=False): ! basename = os.path.basename(path) ! if basename == 'ChangeLog': ! return True ! elif allow_suffix and basename.startswith('ChangeLog'): ! return True ! else: ! return False ! def find_changelog_location(self, name): if name.startswith('\t'): name = name[1:] if name.endswith(':'): name = name[:-1] if name.endswith('/'): name = name[:-1] ! return name if name in self.changelog_locations else None @classmethod def format_git_author(cls, author): *************** class GitCommit: *** 374,379 **** --- 418,434 ---- modified_files.append((parts[2], 'A')) return modified_files + def init_changelog_locations(self, ref_name): + self.changelog_locations = list(default_changelog_locations) + if ref_name: + version = sys.maxsize + if 'releases/gcc-' in ref_name: + version = int(ref_name.split('-')[-1]) + if version >= 12: + # HSA and BRIG were removed in GCC 12 + self.changelog_locations.remove('gcc/brig') + self.changelog_locations.remove('libhsail-rt') + def parse_lines(self, all_are_ignored): body = self.info.lines *************** class GitCommit: *** 382,388 **** continue if (changelog_regex.match(b) or self.find_changelog_location(b) or star_prefix_regex.match(b) or pr_regex.match(b) ! or dr_regex.match(b) or author_line_regex.match(b)): self.changes = body[i:] return if not all_are_ignored: --- 437,444 ---- continue if (changelog_regex.match(b) or self.find_changelog_location(b) or star_prefix_regex.match(b) or pr_regex.match(b) ! or dr_regex.match(b) or author_line_regex.match(b) ! or b.lower().startswith(CO_AUTHORED_BY_PREFIX)): self.changes = body[i:] return if not all_are_ignored: *************** class GitCommit: *** 400,407 **** if line != line.rstrip(): self.errors.append(Error('trailing whitespace', line)) if len(line.replace('\t', ' ' * TAB_WIDTH)) > LINE_LIMIT: ! self.errors.append(Error('line exceeds %d character limit' ! % LINE_LIMIT, line)) m = changelog_regex.match(line) if m: last_entry = ChangeLogEntry(m.group(1).rstrip('/'), --- 456,465 ---- if line != line.rstrip(): self.errors.append(Error('trailing whitespace', line)) if len(line.replace('\t', ' ' * TAB_WIDTH)) > LINE_LIMIT: ! # support long filenames ! if not line.startswith('\t* ') or not line.endswith(':') or ' ' in line[3:-1]: ! self.errors.append(Error('line exceeds %d character limit' ! % LINE_LIMIT, line)) m = changelog_regex.match(line) if m: last_entry = ChangeLogEntry(m.group(1).rstrip('/'), *************** class GitCommit: *** 428,434 **** else: author_tuple = (m.group('name'), None) elif pr_regex.match(line): ! component = pr_regex.match(line).group('component') if not component: self.errors.append(Error('missing PR component', line)) continue --- 486,494 ---- else: author_tuple = (m.group('name'), None) elif pr_regex.match(line): ! m = pr_regex.match(line) ! component = m.group('component') ! pr = m.group('pr') if not component: self.errors.append(Error('missing PR component', line)) continue *************** class GitCommit: *** 437,442 **** --- 497,504 ---- continue else: pr_line = line.lstrip() + if pr in self.subject_prs: + self.subject_prs.remove(pr) elif dr_regex.match(line): pr_line = line.lstrip() *************** class GitCommit: *** 490,496 **** else: m = star_prefix_regex.match(line) if m: ! if len(m.group('spaces')) != 1: msg = 'one space should follow asterisk' self.errors.append(Error(msg, line)) else: --- 552,559 ---- else: m = star_prefix_regex.match(line) if m: ! if (len(m.group('spaces')) != 1 and ! not last_entry.parentheses_stack): msg = 'one space should follow asterisk' self.errors.append(Error(msg, line)) else: *************** class GitCommit: *** 502,507 **** --- 565,571 ---- msg = f'empty group "{needle}" found' self.errors.append(Error(msg, line)) last_entry.lines.append(line) + self.process_parentheses(last_entry, line) else: if last_entry.is_empty: msg = 'first line should start with a tab, ' \ *************** class GitCommit: *** 509,514 **** --- 573,590 ---- self.errors.append(Error(msg, line)) else: last_entry.lines.append(line) + self.process_parentheses(last_entry, line) + + def process_parentheses(self, last_entry, line): + for c in line: + if c == '(': + last_entry.parentheses_stack.append(line) + elif c == ')': + if not last_entry.parentheses_stack: + msg = 'bad wrapping of parenthesis' + self.errors.append(Error(msg, line)) + else: + del last_entry.parentheses_stack[-1] def parse_file_names(self): for entry in self.changelog_entries: *************** class GitCommit: *** 532,537 **** --- 608,619 ---- msg = 'missing description of a change' self.errors.append(Error(msg, line)) + def check_for_broken_parentheses(self): + for entry in self.changelog_entries: + if entry.parentheses_stack: + msg = 'bad parentheses wrapping' + self.errors.append(Error(msg, entry.parentheses_stack[-1])) + def get_file_changelog_location(self, changelog_file): for file in self.info.modified_files: if file[0] == changelog_file: *************** class GitCommit: *** 549,555 **** for file in entry.files: location = self.get_file_changelog_location(file) if (location == '' ! or (location and location in changelog_locations)): if changelog and changelog != location: msg = 'could not deduce ChangeLog file, ' \ 'not unique location' --- 631,637 ---- for file in entry.files: location = self.get_file_changelog_location(file) if (location == '' ! or (location and location in self.changelog_locations)): if changelog and changelog != location: msg = 'could not deduce ChangeLog file, ' \ 'not unique location' *************** class GitCommit: *** 569,579 **** return True return False ! @classmethod ! def get_changelog_by_path(cls, path): components = path.split('/') while components: ! if '/'.join(components) in changelog_locations: break components = components[:-1] return '/'.join(components) --- 651,660 ---- return True return False ! def get_changelog_by_path(self, path): components = path.split('/') while components: ! if '/'.join(components) in self.changelog_locations: break components = components[:-1] return '/'.join(components) *************** class GitCommit: *** 592,598 **** assert not entry.folder.endswith('/') for file in entry.files: if not self.is_changelog_filename(file): ! mentioned_files.add(os.path.join(entry.folder, file)) for pattern in entry.file_patterns: mentioned_patterns.append(os.path.join(entry.folder, pattern)) --- 673,684 ---- assert not entry.folder.endswith('/') for file in entry.files: if not self.is_changelog_filename(file): ! item = os.path.join(entry.folder, file) ! if item in mentioned_files: ! msg = 'same file specified multiple times' ! self.errors.append(Error(msg, file)) ! else: ! mentioned_files.add(item) for pattern in entry.file_patterns: mentioned_patterns.append(os.path.join(entry.folder, pattern)) *************** class GitCommit: *** 602,610 **** for file in sorted(mentioned_files - changed_files): msg = 'unchanged file mentioned in a ChangeLog' candidates = difflib.get_close_matches(file, changed_files, 1) if candidates: msg += f' (did you mean "{candidates[0]}"?)' ! self.errors.append(Error(msg, file)) for file in sorted(changed_files - mentioned_files): if not self.in_ignored_location(file): if file in self.new_files: --- 688,698 ---- for file in sorted(mentioned_files - changed_files): msg = 'unchanged file mentioned in a ChangeLog' candidates = difflib.get_close_matches(file, changed_files, 1) + details = None if candidates: msg += f' (did you mean "{candidates[0]}"?)' ! details = '\n'.join(difflib.Differ().compare([file], [candidates[0]])).rstrip() ! self.errors.append(Error(msg, file, details)) for file in sorted(changed_files - mentioned_files): if not self.in_ignored_location(file): if file in self.new_files: *************** class GitCommit: *** 630,638 **** self.changelog_entries.append(entry) # strip prefix of the file assert file.startswith(entry.folder) ! file = file[len(entry.folder):].lstrip('/') ! entry.lines.append('\t* %s: New file.' % file) ! entry.files.append(file) else: used_pattern = [p for p in mentioned_patterns if file.startswith(p)] --- 718,732 ---- self.changelog_entries.append(entry) # strip prefix of the file assert file.startswith(entry.folder) ! # do not allow auto-addition of New files ! # for the top-level folder ! if entry.folder: ! file = file[len(entry.folder):].lstrip('/') ! entry.lines.append('\t* %s: New file.' % file) ! entry.files.append(file) ! else: ! msg = 'new file in the top-level folder not mentioned in a ChangeLog' ! self.errors.append(Error(msg, file)) else: used_pattern = [p for p in mentioned_patterns if file.startswith(p)] *************** class GitCommit: *** 721,723 **** --- 815,826 ---- print('Errors:') for error in self.errors: print(error) + + def check_commit_email(self): + # Parse 'Martin Liska ' + email = self.info.author.split(' ')[-1].strip('<>') + + # Verify that all characters are ASCII + # TODO: Python 3.7 provides a nicer function: isascii + if len(email) != len(email.encode()): + self.errors.append(Error(f'non-ASCII characters in git commit email address ({email})')) diff -Nrcpad gcc-10.3.0/contrib/gcc-changelog/git_email.py gcc-10.4.0/contrib/gcc-changelog/git_email.py *** gcc-10.3.0/contrib/gcc-changelog/git_email.py Thu Apr 8 11:56:27 2021 --- gcc-10.4.0/contrib/gcc-changelog/git_email.py Tue Jun 28 08:54:27 2022 *************** *** 17,22 **** --- 17,23 ---- # . */ import os + import re import sys from itertools import takewhile *************** from unidiff import PatchSet, PatchedFil *** 28,43 **** DATE_PREFIX = 'Date: ' FROM_PREFIX = 'From: ' unidiff_supports_renaming = hasattr(PatchedFile(), 'is_rename') class GitEmail(GitCommit): ! def __init__(self, filename, strict=False): self.filename = filename diff = PatchSet.from_filename(filename) date = None author = None with open(self.filename, 'r') as f: lines = f.read().splitlines() lines = list(takewhile(lambda line: line != '---', lines)) --- 29,48 ---- DATE_PREFIX = 'Date: ' FROM_PREFIX = 'From: ' + SUBJECT_PREFIX = 'Subject: ' + subject_patch_regex = re.compile(r'^\[PATCH( \d+/\d+)?\] ') unidiff_supports_renaming = hasattr(PatchedFile(), 'is_rename') class GitEmail(GitCommit): ! def __init__(self, filename): self.filename = filename diff = PatchSet.from_filename(filename) date = None author = None + subject = '' + subject_last = False with open(self.filename, 'r') as f: lines = f.read().splitlines() lines = list(takewhile(lambda line: line != '---', lines)) *************** class GitEmail(GitCommit): *** 46,53 **** date = parse(line[len(DATE_PREFIX):]) elif line.startswith(FROM_PREFIX): author = GitCommit.format_git_author(line[len(FROM_PREFIX):]) header = list(takewhile(lambda line: line != '', lines)) ! body = lines[len(header) + 1:] modified_files = [] for f in diff: --- 51,71 ---- date = parse(line[len(DATE_PREFIX):]) elif line.startswith(FROM_PREFIX): author = GitCommit.format_git_author(line[len(FROM_PREFIX):]) + elif line.startswith(SUBJECT_PREFIX): + subject = line[len(SUBJECT_PREFIX):] + subject_last = True + elif subject_last and line.startswith(' '): + subject += line + elif line == '': + break + else: + subject_last = False + + if subject: + subject = subject_patch_regex.sub('', subject) header = list(takewhile(lambda line: line != '', lines)) ! # Note: commit message consists of email subject, empty line, email body ! message = [subject] + lines[len(header):] modified_files = [] for f in diff: *************** class GitEmail(GitCommit): *** 66,81 **** t = 'A' else: t = 'M' ! modified_files.append((target, t)) ! git_info = GitInfo(None, date, author, body, modified_files) ! super().__init__(git_info, strict=strict, commit_to_info_hook=lambda x: None) ! # With zero arguments, process every patch file in the ./patches directory. ! # With one argument, process the named patch file. ! # Patch files must be in 'git format-patch' format. if __name__ == '__main__': if len(sys.argv) == 1: allfiles = [] for root, _dirs, files in os.walk('patches'): --- 84,112 ---- t = 'A' else: t = 'M' ! modified_files.append((target if t != 'D' else source, t)) ! git_info = GitInfo(None, date, author, message, modified_files) ! super().__init__(git_info, commit_to_info_hook=lambda x: None) ! def show_help(): ! print("""usage: git_email.py [--help] [patch file ...] ! ! Check git ChangeLog format of a patch ! ! With zero arguments, process every patch file in the ! ./patches directory. ! With one argument, process the named patch file. ! ! Patch files must be in 'git format-patch' format.""") ! sys.exit(0) ! ! if __name__ == '__main__': + if len(sys.argv) == 2 and (sys.argv[1] == '-h' or sys.argv[1] == '--help'): + show_help() + if len(sys.argv) == 1: allfiles = [] for root, _dirs, files in os.walk('patches'): *************** if __name__ == '__main__': *** 97,103 **** print() print('Successfully parsed: %d/%d' % (success, len(allfiles))) else: ! email = GitEmail(sys.argv[1], False) if email.success: print('OK') email.print_output() --- 128,134 ---- print() print('Successfully parsed: %d/%d' % (success, len(allfiles))) else: ! email = GitEmail(sys.argv[1]) if email.success: print('OK') email.print_output() diff -Nrcpad gcc-10.3.0/contrib/gcc-changelog/git_repository.py gcc-10.4.0/contrib/gcc-changelog/git_repository.py *** gcc-10.3.0/contrib/gcc-changelog/git_repository.py Thu Apr 8 11:56:27 2021 --- gcc-10.4.0/contrib/gcc-changelog/git_repository.py Tue Jun 28 08:54:27 2022 *************** except ImportError: *** 29,35 **** from git_commit import GitCommit, GitInfo, decode_path ! def parse_git_revisions(repo_path, revisions, strict=True): repo = Repo(repo_path) def commit_to_info(commit): --- 29,35 ---- from git_commit import GitCommit, GitInfo, decode_path ! def parse_git_revisions(repo_path, revisions, ref_name=None): repo = Repo(repo_path) def commit_to_info(commit): *************** def parse_git_revisions(repo_path, revis *** 72,78 **** commits = [repo.commit(revisions)] for commit in commits: ! git_commit = GitCommit(commit_to_info(commit.hexsha), strict=strict, ! commit_to_info_hook=commit_to_info) parsed_commits.append(git_commit) return parsed_commits --- 72,79 ---- commits = [repo.commit(revisions)] for commit in commits: ! git_commit = GitCommit(commit_to_info(commit.hexsha), ! commit_to_info_hook=commit_to_info, ! ref_name=ref_name) parsed_commits.append(git_commit) return parsed_commits diff -Nrcpad gcc-10.3.0/contrib/gcc-changelog/git_update_version.py gcc-10.4.0/contrib/gcc-changelog/git_update_version.py *** gcc-10.3.0/contrib/gcc-changelog/git_update_version.py Thu Apr 8 11:56:27 2021 --- gcc-10.4.0/contrib/gcc-changelog/git_update_version.py Tue Jun 28 08:54:27 2022 *************** from git_repository import parse_git_rev *** 26,31 **** --- 26,37 ---- current_timestamp = datetime.datetime.now().strftime('%Y%m%d\n') + # Skip the following commits, they cannot be correctly processed + IGNORED_COMMITS = ( + 'c2be82058fb40f3ae891c68d185ff53e07f14f45', + '04a040d907a83af54e0a98bdba5bfabc0ef4f700', + '2e96b5f14e4025691b57d2301d71aa6092ed44bc') + def read_timestamp(path): with open(path) as f: *************** def prepend_to_changelog_files(repo, fol *** 54,60 **** repo.git.add(full_path) ! active_refs = ['master', 'releases/gcc-8', 'releases/gcc-9', 'releases/gcc-10'] parser = argparse.ArgumentParser(description='Update DATESTAMP and generate ' 'ChangeLog entries') --- 60,67 ---- repo.git.add(full_path) ! active_refs = ['master', 'releases/gcc-9', 'releases/gcc-10', ! 'releases/gcc-11'] parser = argparse.ArgumentParser(description='Update DATESTAMP and generate ' 'ChangeLog entries') *************** repo = Repo(args.git_path) *** 74,80 **** origin = repo.remotes['origin'] ! def update_current_branch(): commit = repo.head.commit commit_count = 1 while commit: --- 81,87 ---- origin = repo.remotes['origin'] ! def update_current_branch(ref_name): commit = repo.head.commit commit_count = 1 while commit: *************** def update_current_branch(): *** 97,103 **** if len(head.parents) == 2: head = head.parents[1] commits = parse_git_revisions(args.git_path, '%s..%s' ! % (commit.hexsha, head.hexsha)) for git_commit in reversed(commits): prepend_to_changelog_files(repo, args.git_path, git_commit, not args.dry_mode) --- 104,111 ---- if len(head.parents) == 2: head = head.parents[1] commits = parse_git_revisions(args.git_path, '%s..%s' ! % (commit.hexsha, head.hexsha), ref_name) ! commits = [c for c in commits if c.info.hexsha not in IGNORED_COMMITS] for git_commit in reversed(commits): prepend_to_changelog_files(repo, args.git_path, git_commit, not args.dry_mode) *************** else: *** 140,145 **** branch.checkout() origin.pull(rebase=True) print('branch pulled and checked out') ! update_current_branch() assert not repo.index.diff(None) print('branch is done\n', flush=True) --- 148,153 ---- branch.checkout() origin.pull(rebase=True) print('branch pulled and checked out') ! update_current_branch(name) assert not repo.index.diff(None) print('branch is done\n', flush=True) diff -Nrcpad gcc-10.3.0/contrib/gcc-changelog/setup.cfg gcc-10.4.0/contrib/gcc-changelog/setup.cfg *** gcc-10.3.0/contrib/gcc-changelog/setup.cfg Thu Apr 8 11:56:27 2021 --- gcc-10.4.0/contrib/gcc-changelog/setup.cfg Tue Jun 28 08:54:27 2022 *************** *** 1,2 **** --- 1,5 ---- + [flake8] + max-line-length = 120 + [tool:pytest] addopts = -vv --flake8 diff -Nrcpad gcc-10.3.0/contrib/gcc-changelog/test_email.py gcc-10.4.0/contrib/gcc-changelog/test_email.py *** gcc-10.3.0/contrib/gcc-changelog/test_email.py Thu Apr 8 11:56:27 2021 --- gcc-10.4.0/contrib/gcc-changelog/test_email.py Tue Jun 28 08:54:27 2022 *************** class TestGccChangelog(unittest.TestCase *** 62,78 **** assert t.endswith('.patch') os.remove(t) ! def get_git_email(self, filename, strict=False): with tempfile.NamedTemporaryFile(mode='w+', suffix='.patch', delete=False) as f: f.write('\n'.join(self.patches[filename])) self.temps.append(f.name) ! return GitEmail(f.name, strict) ! def from_patch_glob(self, name, strict=False): files = [f for f in self.patches.keys() if f.startswith(name)] assert len(files) == 1 ! return self.get_git_email(files[0], strict) def test_simple_patch_format(self): email = self.get_git_email('0577-aarch64-Add-an-and.patch') --- 62,78 ---- assert t.endswith('.patch') os.remove(t) ! def get_git_email(self, filename): with tempfile.NamedTemporaryFile(mode='w+', suffix='.patch', delete=False) as f: f.write('\n'.join(self.patches[filename])) self.temps.append(f.name) ! return GitEmail(f.name) ! def from_patch_glob(self, name): files = [f for f in self.patches.keys() if f.startswith(name)] assert len(files) == 1 ! return self.get_git_email(files[0]) def test_simple_patch_format(self): email = self.get_git_email('0577-aarch64-Add-an-and.patch') *************** class TestGccChangelog(unittest.TestCase *** 247,253 **** assert email.changelog_entries[1].prs == [] def test_multiple_prs_not_added(self): ! email = self.from_patch_glob('0001-Add-patch_are') assert not email.errors assert email.changelog_entries[0].prs == ['PR target/93492'] assert email.changelog_entries[1].prs == ['PR target/12345'] --- 247,253 ---- assert email.changelog_entries[1].prs == [] def test_multiple_prs_not_added(self): ! email = self.from_patch_glob('0002-Add-patch_are') assert not email.errors assert email.changelog_entries[0].prs == ['PR target/93492'] assert email.changelog_entries[1].prs == ['PR target/12345'] *************** class TestGccChangelog(unittest.TestCase *** 255,272 **** assert email.changelog_entries[2].folder == 'gcc/testsuite' def test_strict_mode(self): ! email = self.from_patch_glob('0001-Add-patch_are', ! True) msg = 'ChangeLog, DATESTAMP, BASE-VER and DEV-PHASE updates should ' \ 'be done separately from normal commits' ! assert email.errors[0].message == msg def test_strict_mode_normal_patch(self): ! email = self.get_git_email('0001-Just-test-it.patch', True) assert not email.errors def test_strict_mode_datestamp_only(self): ! email = self.get_git_email('0002-Bump-date.patch', True) assert not email.errors def test_wrong_changelog_entry(self): --- 255,271 ---- assert email.changelog_entries[2].folder == 'gcc/testsuite' def test_strict_mode(self): ! email = self.from_patch_glob('0001-Add-patch_are') msg = 'ChangeLog, DATESTAMP, BASE-VER and DEV-PHASE updates should ' \ 'be done separately from normal commits' ! assert email.errors[0].message.startswith(msg) def test_strict_mode_normal_patch(self): ! email = self.get_git_email('0001-Just-test-it.patch') assert not email.errors def test_strict_mode_datestamp_only(self): ! email = self.get_git_email('0002-Bump-date.patch') assert not email.errors def test_wrong_changelog_entry(self): *************** class TestGccChangelog(unittest.TestCase *** 404,406 **** --- 403,453 ---- email = self.from_patch_glob('0001-Add-horse2.patch') assert not email.errors assert email.changelog_entries[0].files == ['koníÄek.txt'] + + def test_modification_of_old_changelog(self): + email = self.from_patch_glob('0001-fix-old-ChangeLog.patch') + assert not email.errors + + def test_multiline_parentheses(self): + email = self.from_patch_glob('0001-Add-macro.patch') + assert not email.errors + + def test_multiline_bad_parentheses(self): + email = self.from_patch_glob('0002-Wrong-macro-changelog.patch') + assert email.errors[0].message == 'bad parentheses wrapping' + assert email.errors[0].line == ' * config/i386/i386.md (*fix_trunc_i387_1,' + + def test_changelog_removal(self): + email = self.from_patch_glob('0001-ChangeLog-removal.patch') + assert not email.errors + + def test_long_filenames(self): + email = self.from_patch_glob('0001-long-filenames') + assert not email.errors + + def test_multi_same_file(self): + email = self.from_patch_glob('0001-OpenMP-Fix-SIMT') + assert email.errors[0].message == 'same file specified multiple times' + + def test_pr_only_in_subject(self): + email = self.from_patch_glob('0001-rs6000-Support-doubleword') + assert (email.errors[0].message == + 'PR 100085 in subject but not in changelog') + + def test_wrong_pr_comp_in_subject(self): + email = self.from_patch_glob('pr-wrong-comp.patch') + assert email.errors[0].message == 'invalid PR component in subject' + + def test_copyright_years(self): + email = self.from_patch_glob('copyright-years.patch') + assert not email.errors + + def test_non_ascii_email(self): + email = self.from_patch_glob('non-ascii-email.patch') + assert (email.errors[0].message == + 'non-ASCII characters in git commit email address (jbglaw@Å‚ug-owl.de)') + + def test_new_file_in_root_folder(self): + email = self.from_patch_glob('toplev-new-file.patch') + assert (email.errors[0].message == + 'new file in the top-level folder not mentioned in a ChangeLog') diff -Nrcpad gcc-10.3.0/contrib/gcc-changelog/test_patches.txt gcc-10.4.0/contrib/gcc-changelog/test_patches.txt *** gcc-10.3.0/contrib/gcc-changelog/test_patches.txt Thu Apr 8 11:56:27 2021 --- gcc-10.4.0/contrib/gcc-changelog/test_patches.txt Tue Jun 28 08:54:27 2022 *************** xxxx-xx-xx Claudiu Zissulescu ! Date: Fri, 1 May 2020 21:03:10 -0700 ! Subject: [PATCH] Add patch_area_size and patch_area_entry to crtl ! ! Currently patchable area is at the wrong place. It is placed immediately ! after function label and before .cfi_startproc. A backend should be able ! to add a pseudo patchable area instruction durectly into RTL. This patch ! adds patch_area_size and patch_area_entry to crtl so that the patchable ! area info is available in RTL passes. ! ! It also limits patch_area_size and patch_area_entry to 65535, which is ! a reasonable maximum size for patchable area. ! ! gcc/ ! ! PR target/93492 ! * cfgexpand.c (pass_expand::execute): Set crtl->patch_area_size ! and crtl->patch_area_entry. ! * emit-rtl.h (rtl_data): Add patch_area_size and patch_area_entry. ! * opts.c (common_handle_option): Limit ! function_entry_patch_area_size and function_entry_patch_area_start ! to USHRT_MAX. Fix a typo in error message. ! * varasm.c (assemble_start_function): Use crtl->patch_area_size ! and crtl->patch_area_entry. ! * doc/invoke.texi: Document the maximum value for ! -fpatchable-function-entry. ! ! gcc/c-family/ ! ! PR target/12345 ! * c-attribs.c (handle_patchable_function_entry_attribute): Limit ! value to USHRT_MAX (65535). ! ! --- ! gcc/ChangeLog | 14 ++++++++ ! gcc/c-family/ChangeLog | 6 ++++ ! gcc/c-family/c-attribs.c | 9 +++++ ! gcc/cfgexpand.c | 33 +++++++++++++++++++ ! gcc/doc/invoke.texi | 1 + ! gcc/emit-rtl.h | 6 ++++ ! gcc/opts.c | 4 ++- ! gcc/testsuite/ChangeLog | 7 ++++ ! .../patchable_function_entry-error-1.c | 9 +++++ ! .../patchable_function_entry-error-2.c | 9 +++++ ! .../patchable_function_entry-error-3.c | 17 ++++++++++ ! gcc/varasm.c | 30 ++--------------- ! 12 files changed, 116 insertions(+), 29 deletions(-) ! create mode 100644 gcc/testsuite/c-c++-common/patchable_function_entry-error-1.c ! create mode 100644 gcc/testsuite/c-c++-common/patchable_function_entry-error-2.c ! create mode 100644 gcc/testsuite/c-c++-common/patchable_function_entry-error-3.c ! ! diff --git a/gcc/c-family/c-attribs.c b/gcc/c-family/c-attribs.c ! index ac936d5bbbb..a101312c581 100644 ! --- a/gcc/c-family/c-attribs.c ! +++ b/gcc/c-family/c-attribs.c ! @@ -1 +1,2 @@ ! ! + ! diff --git a/gcc/cfgexpand.c b/gcc/cfgexpand.c ! index a7ec77d5c85..86efa22bf60 100644 ! --- a/gcc/cfgexpand.c ! +++ b/gcc/cfgexpand.c ! @@ -1 +1,2 @@ ! ! + ! diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi ! index 527d362533a..767d1f07801 100644 ! --- a/gcc/doc/invoke.texi ! +++ b/gcc/doc/invoke.texi ! @@ -1 +1,2 @@ ! ! + ! diff --git a/gcc/emit-rtl.h b/gcc/emit-rtl.h ! index a878efe3cf7..3d6565c8a30 100644 ! --- a/gcc/emit-rtl.h ! +++ b/gcc/emit-rtl.h ! @@ -1 +1,2 @@ ! ! + ! diff --git a/gcc/opts.c b/gcc/opts.c ! index c212a1a57dc..3dccef39701 100644 ! --- a/gcc/opts.c ! +++ b/gcc/opts.c @@ -1 +1,2 @@ + *************** gcc/cp/ChangeLog *** 1497,1509 **** 3 files changed, 40 insertions(+), 18 deletions(-) create mode 100644 gcc/testsuite/g++.dg/cpp2a/lambda-generic-variadic20.C - diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog - index 640e4948130..4b6691a77f0 100644 - --- a/gcc/cp/ChangeLog - +++ b/gcc/cp/ChangeLog - @@ -1 +1,2 @@ - - + diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c index 7bf249cee5c..2fe7b66707c 100644 --- a/gcc/cp/pt.c --- 1434,1439 ---- *************** Subject: [PATCH 0030/2034] PR c++/92746 *** 1531,1536 **** --- 1461,1467 ---- Another place that needs to specially handle Concepts TS function-style concepts. + PR c++/92746 * except.c (check_noexcept_r): Handle concept-check. --- gcc/cp/ChangeLog | 3 +++ *************** concepts. *** 1539,1551 **** 3 files changed, 11 insertions(+) create mode 100644 gcc/testsuite/g++.dg/concepts/fn-concept3.C - diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog - index 59646c70fa4..4729e3d331d 100644 - --- a/gcc/cp/ChangeLog - +++ b/gcc/cp/ChangeLog - @@ -1 +1,2 @@ - - + diff --git a/gcc/cp/except.c b/gcc/cp/except.c index e073bd4d2bc..55b4b6af442 100644 --- a/gcc/cp/except.c --- 1470,1475 ---- *************** Subject: [PATCH 0129/2034] Add PR number *** 1573,1585 **** gcc/ChangeLog | 1 + 1 file changed, 1 insertion(+) - diff --git a/gcc/ChangeLog b/gcc/ChangeLog - index 6c6d586ca75..49ca5f92dec 100644 - --- a/gcc/ChangeLog - +++ b/gcc/ChangeLog - @@ -1 +1,2 @@ - - + -- 2.26.1 --- 1497,1502 ---- *************** gcc/testsuite/ *** 1616,1628 **** 6 files changed, 132 insertions(+) create mode 100644 gcc/testsuite/gcc.target/aarch64/movk_2.c - diff --git a/gcc/ChangeLog b/gcc/ChangeLog - index efbbbf08225..cea8ffee99c 100644 - --- a/gcc/ChangeLog - +++ b/gcc/ChangeLog - @@ -1 +1,2 @@ - - + diff --git a/gcc/config/aarch64/aarch64-protos.h b/gcc/config/aarch64/aarch64-protos.h index 24cc65a383a..d29975a8921 100644 --- a/gcc/config/aarch64/aarch64-protos.h --- 1533,1538 ---- *************** index 90eebce85c0..9c1f17d0f85 100644 *** 1644,1656 **** @@ -1 +1,2 @@ + - diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog - index 601bc336290..cdb26581b9c 100644 - --- a/gcc/testsuite/ChangeLog - +++ b/gcc/testsuite/ChangeLog - @@ -1 +1,2 @@ - - + diff --git a/gcc/testsuite/gcc.target/aarch64/movk_2.c b/gcc/testsuite/gcc.target/aarch64/movk_2.c new file mode 100644 index 00000000000..a0477ad5d42 --- 1554,1559 ---- *************** already). *** 1836,1848 **** gcc/testsuite/g++.dg/tree-ssa/pr27830.C | 2 ++ 4 files changed, 47 insertions(+), 5 deletions(-) - diff --git a/gcc/ChangeLog b/gcc/ChangeLog - index 06f7eda0033..93c3076eb86 100644 - --- a/gcc/ChangeLog - +++ b/gcc/ChangeLog - @@ -1 +1,2 @@ - - + diff --git a/gcc/config/rs6000/rs6000-call.c b/gcc/config/rs6000/rs6000-call.c index e08621ace27..a9ae7ab70ca 100644 --- a/gcc/config/rs6000/rs6000-call.c --- 1739,1744 ---- *************** index e08621ace27..a9ae7ab70ca 100644 *** 1850,1862 **** @@ -1 +1,2 @@ + - diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog - index 684e408c1a5..245c1512c76 100644 - --- a/gcc/testsuite/ChangeLog - +++ b/gcc/testsuite/ChangeLog - @@ -1 +1,2 @@ - - + diff --git a/gcc/testsuite/g++.dg/tree-ssa/pr27830.C b/gcc/testsuite/g++.dg/tree-ssa/pr27830.C index 01c7fc18783..551ebc428cd 100644 --- a/gcc/testsuite/g++.dg/tree-ssa/pr27830.C --- 1746,1751 ---- *************** index c212a1a57dc..3dccef39701 100644 *** 1969,1981 **** @@ -1 +1,2 @@ + - diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog - index 176aa117904..185f9ea725e 100644 - --- a/gcc/testsuite/ChangeLog - +++ b/gcc/testsuite/ChangeLog - @@ -1 +1,2 @@ - - + diff --git a/gcc/testsuite/c-c++-common/patchable_function_entry-error-1.c b/gcc/testsuite/c-c++-common/patchable_function_entry-error-1.c new file mode 100644 index 00000000000..f60bf46cfe3 --- 1858,1863 ---- *************** Subject: [PATCH 0004/2034] tree-opt: Fix *** 2082,2094 **** gcc/tree-ssa-forwprop.c | 6 +++--- 2 files changed, 12 insertions(+), 3 deletions(-) - diff --git a/gcc/ChangeLog b/gcc/ChangeLog - index a195863212e..f7df07343d1 100644 - --- a/gcc/ChangeLog - +++ b/gcc/ChangeLog - @@ -1 +1,2 @@ - - + diff --git a/gcc/tree-ssa-forwprop.c b/gcc/tree-ssa-forwprop.c index aac31d02b6c..56c470f6ecf 100644 --- a/gcc/tree-ssa-forwprop.c --- 1964,1969 ---- *************** index aac31d02b6c..56c470f6ecf 100644 *** 2103,2109 **** From 5194b51ed9714808d88827531e91474895b6c706 Mon Sep 17 00:00:00 2001 From: Jason Merrill Date: Thu, 16 Jan 2020 16:55:39 -0500 ! Subject: [PATCH 0121/2034] PR c++/93286 - ICE with __is_constructible and variadic template. Here we had been recursing in tsubst_copy_and_build if type2 was a TREE_LIST --- 1978,1984 ---- From 5194b51ed9714808d88827531e91474895b6c706 Mon Sep 17 00:00:00 2001 From: Jason Merrill Date: Thu, 16 Jan 2020 16:55:39 -0500 ! Subject: [PATCH 0121/2034] PR c++/12345 - ICE with __is_constructible and variadic template. Here we had been recursing in tsubst_copy_and_build if type2 was a TREE_LIST *************** gcc/testsuite/ChangeLog: *** 2125,2137 **** 3 files changed, 89 insertions(+), 7 deletions(-) create mode 100644 gcc/testsuite/g++.dg/ext/is_constructible4.C - diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog - index 3ca5d7a11b4..c37e461bcc5 100644 - --- a/gcc/cp/ChangeLog - +++ b/gcc/cp/ChangeLog - @@ -1 +1,2 @@ - - + diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c index 9bb8cc13e5f..872f8ff8f52 100644 --- a/gcc/cp/pt.c --- 2000,2005 ---- *************** Subject: [PATCH 0043/2034] Compare TREE_ *** 2210,2222 **** create mode 100644 gcc/testsuite/g++.dg/lto/odr-8_0.C create mode 100644 gcc/testsuite/g++.dg/lto/odr-8_1.C - diff --git a/gcc/ChangeLog b/gcc/ChangeLog - index 38165123654..33ca91a6467 100644 - --- a/gcc/ChangeLog - +++ b/gcc/ChangeLog - @@ -1 +1,2 @@ - - + diff --git a/gcc/ipa-devirt.c b/gcc/ipa-devirt.c index f0031957375..b609a77701d 100644 --- a/gcc/ipa-devirt.c --- 2078,2083 ---- *************** index f0031957375..b609a77701d 100644 *** 2224,2236 **** @@ -1 +1,2 @@ + - diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog - index 8e3b9105188..dc42601794b 100644 - --- a/gcc/testsuite/ChangeLog - +++ b/gcc/testsuite/ChangeLog - @@ -1 +1,2 @@ - - + diff --git a/gcc/testsuite/g++.dg/lto/odr-8_0.C b/gcc/testsuite/g++.dg/lto/odr-8_0.C new file mode 100644 index 00000000000..59f51399fac --- 2085,2090 ---- *************** gcc/testsuite/ChangeLog: *** 2302,2314 **** create mode 100755 gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vdot-3-3.c create mode 100755 gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vdot-3-4.c - diff --git a/gcc/ChangeLog b/gcc/ChangeLog - index 9a949980699..49dcecb6777 100644 - --- a/gcc/ChangeLog - +++ b/gcc/ChangeLog - @@ -1 +1,2 @@ - - + diff --git a/gcc/config/aarch64/aarch64-builtins.c b/gcc/config/aarch64/aarch64-builtins.c index f0e0461b7f0..f50c4857e1c 100644 --- a/gcc/config/aarch64/aarch64-builtins.c --- 2156,2161 ---- *************** index b9843b83c5f..83720d9802a 100644 *** 2344,2356 **** @@ -1 +1,2 @@ + - diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog - index 0d8aa6063a7..8b01aa06a40 100644 - --- a/gcc/testsuite/ChangeLog - +++ b/gcc/testsuite/ChangeLog - @@ -1 +1,2 @@ - - + diff --git a/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vdot-3-1.c b/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vdot-3-1.c new file mode 100755 index 00000000000..ac4f821e771 --- 2191,2196 ---- *************** index 00000000000..56c67f58752 *** 3398,3401 **** --- 3238,3573 ---- -- 2.29.2 + === 0001-fix-old-ChangeLog.patch === + From fd498465b2801203089616be9a0e3c1f4fc065a0 Mon Sep 17 00:00:00 2001 + From: Martin Liska + Date: Wed, 13 Jan 2021 11:45:37 +0100 + Subject: [PATCH] Fix a changelog. + + --- + gcc/ChangeLog-2020 | 1 + + 1 file changed, 1 insertion(+) + + -- + 2.29.2 + === 0001-Add-macro.patch === + From 9b7eedc932fe594547fb060b36dfd9e4178c4f9b Mon Sep 17 00:00:00 2001 + From: Martin Liska + Date: Wed, 13 Jan 2021 16:26:45 +0100 + Subject: [PATCH 1/2] Add macro. + + gcc/ChangeLog: + + * config/i386/i386.md (*fix_trunc_i387_1, *add3_eq, + *add3_ne, *add3_eq_0, *add3_ne_0, *add3_eq, + *fist2__1, *3_1, *di3_doubleword): + Use ix86_pre_reload_split instead of can_create_pseudo_p in condition. + * config/i386/sse.md + (*fix_trunc_i387_1, *add3_eq, + *add3_ne, *add3_eq_0, *add3_ne_0, *add3_eq, + *fist2__1): This should also work. + --- + gcc/config/i386/i386.md | 1 + + gcc/config/i386/sse.md | 1 + + 2 files changed, 2 insertions(+) + + diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md + index b60784a2908..ac63591b33f 100644 + --- a/gcc/config/i386/i386.md + +++ b/gcc/config/i386/i386.md + @@ -1 +1,2 @@ + + + + + diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md + index 7f03fc491c3..0e17997db26 100644 + --- a/gcc/config/i386/sse.md + +++ b/gcc/config/i386/sse.md + @@ -1 +1,2 @@ + + + + + -- + 2.29.2 + + === 0002-Wrong-macro-changelog.patch === + From 3542802111d4c6752ac7233ef96655b7fb78aae4 Mon Sep 17 00:00:00 2001 + From: Martin Liska + Date: Wed, 13 Jan 2021 16:54:58 +0100 + Subject: [PATCH 2/2] Wrong macro changelog + + gcc/ChangeLog: + + * config/i386/i386.md (*fix_trunc_i387_1, + (foo): Change it. + --- + gcc/config/i386/i386.md | 1 + + 1 file changed, 1 insertion(+) + + diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md + index ac63591b33f..ff4d61764e7 100644 + --- a/gcc/config/i386/i386.md + +++ b/gcc/config/i386/i386.md + @@ -1 +1,2 @@ + + + + -- + 2.29.2 + + === 0001-ChangeLog-removal.patch === + From b39fadf9df1a9510afcab0a391182da7dc68de24 Mon Sep 17 00:00:00 2001 + From: Martin Liska + Date: Fri, 12 Mar 2021 09:10:55 +0100 + Subject: [PATCH] Test ChangeLog removal. + + gcc/ChangeLog: + + * ipa-icf.c (make_pass_ipa_icf): Add line. + --- + diff --git a/gcc/analyzer/ChangeLog b/gcc/analyzer/ChangeLog + deleted file mode 100644 + index 94e87f6bcde..00000000000 + --- a/gcc/analyzer/ChangeLog + +++ /dev/null + @@ -1,1 +0,0 @@ + - foo + diff --git a/gcc/ipa-icf.c b/gcc/ipa-icf.c + index 5dd33a75c3a..c4ce432cb98 100644 + --- a/gcc/ipa-icf.c + +++ b/gcc/ipa-icf.c + @@ -3655,3 +3655,4 @@ make_pass_ipa_icf (gcc::context *ctxt) + { + return new ipa_icf::pass_ipa_icf (ctxt); + } + + + -- + 2.30.1 + + === 0001-long-filenames === + From 0a5b3f87bdac5e61f9a626c795d30f9e93198585 Mon Sep 17 00:00:00 2001 + From: Martin Liska + Date: Mon, 12 Apr 2021 13:10:14 +0200 + Subject: [PATCH] libstdc++: Fix some tests that fail in C++20 mode + + The linear_congruential_engine negative tests fail with a different + error in C++20 mode, because double is no longer an invalid type for + NTTP. Adjust the expected errors. + + libstdc++-v3/ChangeLog: + + * testsuite/26_numerics/random/linear_congruential_engine/requirements/non_uint_neg.cc: + Adjust expected error for C++20 mode. + * testsuite/tr1/5_numerical_facilities/random/linear_congruential/requirements/non_uint_neg.cc: + Likewise. + --- + .../linear_congruential_engine/requirements/non_uint_neg.cc | 4 +++- + .../random/linear_congruential/requirements/non_uint_neg.cc | 3 ++- + 2 files changed, 5 insertions(+), 2 deletions(-) + + diff --git a/libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/requirements/non_uint_neg.cc b/libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/requirements/non_uint_neg.cc + index e04e8ca6972..a36d63c6c7b 100644 + --- a/libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/requirements/non_uint_neg.cc + +++ b/libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/requirements/non_uint_neg.cc + @@ -1 +1,2 @@ + + + + diff --git a/libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/linear_congruential/requirements/non_uint_neg.cc b/libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/linear_congruential/requirements/non_uint_neg.cc + index 5ad82db1def..53b15f32516 100644 + --- a/libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/linear_congruential/requirements/non_uint_neg.cc + +++ b/libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/linear_congruential/requirements/non_uint_neg.cc + @@ -1 +1,2 @@ + + + + + === 0001-OpenMP-Fix-SIMT === + From 33b647956caa977d1ae489f9baed9cef70b4f382 Mon Sep 17 00:00:00 2001 + From: Tobias Burnus + Date: Fri, 7 May 2021 12:11:51 +0200 + Subject: [PATCH] OpenMP: Fix SIMT for complex/float reduction with && and || + + libgomp/ChangeLog: + + * testsuite/libgomp.c-c++-common/reduction-5.c: New test, testing + complex/floating-point || + && reduction with 'omp target'. + * testsuite/libgomp.c-c++-common/reduction-5.c: Likewise. + --- + diff --git a/libgomp/testsuite/libgomp.c-c++-common/reduction-5.c b/libgomp/testsuite/libgomp.c-c++-common/reduction-5.c + new file mode 100644 + index 00000000000..21540512e23 + --- /dev/null + +++ b/libgomp/testsuite/libgomp.c-c++-common/reduction-5.c + @@ -0,0 +1,1 @@ + + + diff --git a/libgomp/testsuite/libgomp.c-c++-common/reduction-6.c b/libgomp/testsuite/libgomp.c-c++-common/reduction-6.c + new file mode 100644 + index 00000000000..21540512e23 + --- /dev/null + +++ b/libgomp/testsuite/libgomp.c-c++-common/reduction-6.c + @@ -0,0 +1,1 @@ + + + -- + 2.25.1 + === 0001-rs6000-Support-doubleword === + From f700e4b0ee3ef53b48975cf89be26b9177e3a3f3 Mon Sep 17 00:00:00 2001 + From: Xionghu Luo + Date: Tue, 8 Jun 2021 21:48:12 -0500 + Subject: [PATCH] rs6000: Support doubleword swaps removal in rot64 load store + [PR100085] + + gcc/testsuite/ChangeLog: + + * gcc.target/powerpc/pr100085.c: New test. + --- + diff --git a/gcc/testsuite/gcc.target/powerpc/pr100085.c b/gcc/testsuite/gcc.target/powerpc/pr100085.c + new file mode 100644 + index 00000000000..7d8b147b127 + --- /dev/null + +++ b/gcc/testsuite/gcc.target/powerpc/pr100085.c + @@ -0,0 +1,1 @@ + + + -- + 2.25.1 + === pr-wrong-comp.patch === + From 5194b51ed9714808d88827531e91474895b6c706 Mon Sep 17 00:00:00 2001 + From: Jason Merrill + Date: Thu, 16 Jan 2020 16:55:39 -0500 + Subject: [PATCH 0121/2034] PR some/93286 - ICE with __is_constructible and + variadic template. + + gcc/testsuite/ChangeLog: + + PR c++/93286 + * gcc.target/powerpc/pr100085.c: New test. + --- + diff --git a/gcc/testsuite/gcc.target/powerpc/pr100085.c b/gcc/testsuite/gcc.target/powerpc/pr100085.c + new file mode 100644 + index 00000000000..7d8b147b127 + --- /dev/null + +++ b/gcc/testsuite/gcc.target/powerpc/pr100085.c + @@ -0,0 +1,1 @@ + + + -- + 2.25.1 + ==== copyright-years.patch === + From 99dee82307f1e163e150c9c810452979994047ce Mon Sep 17 00:00:00 2001 + From: Jakub Jelinek + Date: Mon, 4 Jan 2021 10:26:59 +0100 + Subject: [PATCH] Update copyright years. + + --- + diff --git a/lto-plugin/lto-plugin.c b/lto-plugin/lto-plugin.c + new file mode 100644 + index 6f67552d075..32478f070e8 100644 + --- a/lto-plugin/lto-plugin.c + +++ b/lto-plugin/lto-plugin.c + @@ -0,0 +1,1 @@ + + + -- + 2.25.1 + + === non-ascii-email.patch === + From f42e95a830ab48e59389065ce79a013a519646f1 Mon Sep 17 00:00:00 2001 + From: Jan-Benedict Glaw + Date: Mon, 13 Sep 2021 12:08:25 +0200 + Subject: [PATCH] Fix multi-statment macro + + INIT_CUMULATIVE_ARGS() expands to multiple statements, which will break right + after an `if` statement. Wrap it into a block. + + gcc/ChangeLog: + + * config/alpha/vms.h (INIT_CUMULATIVE_ARGS): Wrap multi-statment + define into a block. + --- + gcc/config/alpha/vms.h | 10 +++++++--- + 1 file changed, 7 insertions(+), 3 deletions(-) + + diff --git a/gcc/config/alpha/vms.h b/gcc/config/alpha/vms.h + index 2a9917cde62..0033b0004b3 100644 + --- a/gcc/config/alpha/vms.h + +++ b/gcc/config/alpha/vms.h + @@ -0,0 +1,1 @@ + + + -- + + === toplev-new-file.patch === + From 05e37b6e65027188f08e6374c7d356d75b54738e Mon Sep 17 00:00:00 2001 + From: Martin Liska + Date: Mon, 24 Jan 2022 12:46:27 +0100 + Subject: [PATCH] New file. + + ChangeLog: + + * Makefile.in: Update. + + gcc/ChangeLog: + + * ipa-icf.cc: Update. + --- + Makefile.am | 1 + + Makefile.in | 1 + + gcc/ipa-icf.cc | 1 + + gcc/ipa-icf2.cc | 1 + + 4 files changed, 4 insertions(+) + create mode 100644 Makefile.am + create mode 100644 gcc/ipa-icf2.cc + diff --git a/Makefile.am b/Makefile.am + new file mode 100644 + index 00000000000..f0129caae3d + --- /dev/null + +++ b/Makefile.am + @@ -0,0 +1 @@ + +new file. + diff --git a/Makefile.in b/Makefile.in + index 79c77fccf0f..7a090030119 100644 + --- a/Makefile.in + +++ b/Makefile.in + @@ -1,4 +1,5 @@ + + + + # Makefile.in is generated from Makefile.tpl by 'autogen Makefile.def'. + # + # Makefile for directory with subdirs to build. + diff --git a/gcc/ipa-icf.cc b/gcc/ipa-icf.cc + index 765ae746745..15735b6684f 100644 + --- a/gcc/ipa-icf.cc + +++ b/gcc/ipa-icf.cc + @@ -1,3 +1,4 @@ + + + /* Interprocedural Identical Code Folding pass + Copyright (C) 2014-2022 Free Software Foundation, Inc. + + diff --git a/gcc/ipa-icf2.cc b/gcc/ipa-icf2.cc + new file mode 100644 + index 00000000000..c49c556e0e4 + --- /dev/null + +++ b/gcc/ipa-icf2.cc + @@ -0,0 +1 @@ + +tt + -- + 2.34.1 + + From 80c9d63af350b280bfccb82adb3867c25a25e6d0 Mon Sep 17 00:00:00 2001 + From: Martin Liska + Date: Mon, 24 Jan 2022 12:17:09 +0100 + Subject: [PATCH] Add Makefile.am file. + + Foo bar. + + ChangeLog: + + --- + Makefile.am | 0 + 1 file changed, 0 insertions(+), 0 deletions(-) + create mode 100644 Makefile.am + + diff --git a/Makefile.am b/Makefile.am + new file mode 100644 + index 00000000000..d6459e00543 + --- /dev/null + +++ b/Makefile.am + @@ -0,0 +1 @@ + +xxx + -- + 2.34.1 diff -Nrcpad gcc-10.3.0/contrib/gcc-git-customization.sh gcc-10.4.0/contrib/gcc-git-customization.sh *** gcc-10.3.0/contrib/gcc-git-customization.sh Thu Apr 8 11:56:27 2021 --- gcc-10.4.0/contrib/gcc-git-customization.sh Tue Jun 28 08:54:27 2022 *************** git config alias.svn-rev '!f() { rev=$1; *** 22,35 **** # Add git commands to convert git commit to monotonically increasing revision number # and vice versa ! git config alias.gcc-descr \!"f() { if test \${1:-no} = --full; then c=\${2:-master}; r=\$(git describe --all --abbrev=40 --match 'basepoints/gcc-[0-9]*' \$c | sed -n 's,^\\(tags/\\)\\?basepoints/gcc-,r,p'); expr match \${r:-no} '^r[0-9]\\+\$' >/dev/null && r=\${r}-0-g\$(git rev-parse \${2:-master}); else c=\${1:-master}; r=\$(git describe --all --match 'basepoints/gcc-[0-9]*' \$c | sed -n 's,^\\(tags/\\)\\?basepoints/gcc-\\([0-9]\\+\\)-\\([0-9]\\+\\)-g[0-9a-f]*\$,r\\2-\\3,p;s,^\\(tags/\\)\\?basepoints/gcc-\\([0-9]\\+\\)\$,r\\2-0,p'); fi; if test -n \$r; then o=\$(git config --get gcc-config.upstream); rr=\$(echo \$r | sed -n 's,^r\\([0-9]\\+\\)-[0-9]\\+\\(-g[0-9a-f]\\+\\)\\?\$,\\1,p'); if git rev-parse --verify --quiet \${o:-origin}/releases/gcc-\$rr >/dev/null; then m=releases/gcc-\$rr; else m=master; fi; git merge-base --is-ancestor \$c \${o:-origin}/\$m && \echo \${r}; fi; }; f" ! git config alias.gcc-undescr \!"f() { o=\$(git config --get gcc-config.upstream); r=\$(echo \$1 | sed -n 's,^r\\([0-9]\\+\\)-[0-9]\\+\$,\\1,p'); n=\$(echo \$1 | sed -n 's,^r[0-9]\\+-\\([0-9]\\+\\)\$,\\1,p'); test -z \$r && echo Invalid id \$1 && exit 1; h=\$(git rev-parse --verify --quiet \${o:-origin}/releases/gcc-\$r); test -z \$h && h=\$(git rev-parse --verify --quiet \${o:-origin}/master); p=\$(git describe --all --match 'basepoints/gcc-'\$r \$h | sed -n 's,^\\(tags/\\)\\?basepoints/gcc-[0-9]\\+-\\([0-9]\\+\\)-g[0-9a-f]*\$,\\2,p;s,^\\(tags/\\)\\?basepoints/gcc-[0-9]\\+\$,0,p'); git rev-parse --verify \$h~\$(expr \$p - \$n); }; f" # Make diff on MD files use "(define" as a function marker. # Use this in conjunction with a .gitattributes file containing # *.md diff=md git config diff.md.xfuncname '^\(define.*$' set_user=$(git config --get "user.name") set_email=$(git config --get "user.email") --- 22,45 ---- # Add git commands to convert git commit to monotonically increasing revision number # and vice versa ! git config alias.gcc-descr '!f() { "`git rev-parse --show-toplevel`/contrib/git-descr.sh" $@; } ; f' ! git config alias.gcc-undescr '!f() { "`git rev-parse --show-toplevel`/contrib/git-undescr.sh" $@; } ; f' ! ! git config alias.gcc-verify '!f() { "`git rev-parse --show-toplevel`/contrib/gcc-changelog/git_check_commit.py" $@; } ; f' ! git config alias.gcc-backport '!f() { "`git rev-parse --show-toplevel`/contrib/git-backport.py" $@; } ; f' ! git config alias.gcc-fix-changelog '!f() { "`git rev-parse --show-toplevel`/contrib/git-fix-changelog.py" $@; } ; f' ! git config alias.gcc-mklog '!f() { "`git rev-parse --show-toplevel`/contrib/mklog.py" $@; } ; f' ! git config alias.gcc-commit-mklog '!f() { "`git rev-parse --show-toplevel`/contrib/git-commit-mklog.py" "$@"; }; f' # Make diff on MD files use "(define" as a function marker. # Use this in conjunction with a .gitattributes file containing # *.md diff=md git config diff.md.xfuncname '^\(define.*$' + # Tell git send-email where patches go. + # ??? Maybe also set sendemail.tocmd to guess from MAINTAINERS? + git config sendemail.to 'gcc-patches@gcc.gnu.org' + set_user=$(git config --get "user.name") set_email=$(git config --get "user.email") *************** echo "(local branches starting / *** 122,127 **** --- 132,148 ---- ask "personal area on the gcc server)" $old_pfx new_pfx git config "gcc-config.userpfx" "$new_pfx" + echo + ask "Install prepare-commit-msg git hook for 'git commit-mklog' alias" yes dohook + if [ "x$dohook" = xyes ]; then + hookdir=`git rev-parse --git-path hooks` + if [ -f "$hookdir/prepare-commit-msg" ]; then + echo " Moving existing prepare-commit-msg hook to prepare-commit-msg.bak" + mv "$hookdir/prepare-commit-msg" "$hookdir/prepare-commit-msg.bak" + fi + install -c "`git rev-parse --show-toplevel`/contrib/prepare-commit-msg" "$hookdir" + fi + # Scan the existing settings to see if there are any we need to rewrite. vendors=$(git config --get-all "remote.${upstream}.fetch" "refs/vendors/" | sed -r "s:.*refs/vendors/([^/]+)/.*:\1:" | sort | uniq) url=$(git config --get "remote.${upstream}.url") diff -Nrcpad gcc-10.3.0/contrib/git-backport.py gcc-10.4.0/contrib/git-backport.py *** gcc-10.3.0/contrib/git-backport.py Thu Apr 8 11:56:27 2021 --- gcc-10.4.0/contrib/git-backport.py Tue Jun 28 08:54:27 2022 *************** *** 20,65 **** # Boston, MA 02110-1301, USA. import argparse import subprocess if __name__ == '__main__': ! parser = argparse.ArgumentParser(description='Backport a git revision and ' ! 'stash all ChangeLog files.') parser.add_argument('revision', help='Revision') args = parser.parse_args() ! r = subprocess.run('git cherry-pick -x %s' % args.revision, shell=True) ! if r.returncode == 0: ! cmd = 'git show --name-only --pretty="" -- "*ChangeLog"' ! changelogs = subprocess.check_output(cmd, shell=True, encoding='utf8') ! changelogs = changelogs.strip() ! if changelogs: ! for changelog in changelogs.split('\n'): ! subprocess.check_output('git checkout HEAD~ %s' % changelog, ! shell=True) ! subprocess.check_output('git commit --amend --no-edit', shell=True) ! else: ! # 1) remove all ChangeLog files from conflicts ! out = subprocess.check_output('git diff --name-only --diff-filter=U', ! shell=True, ! encoding='utf8') ! conflicts = out.strip().split('\n') ! changelogs = [c for c in conflicts if c.endswith('ChangeLog')] ! if changelogs: ! cmd = 'git checkout --theirs %s' % ' '.join(changelogs) ! subprocess.check_output(cmd, shell=True) ! # 2) remove all ChangeLog files from index ! cmd = 'git diff --name-only --diff-filter=M HEAD' ! out = subprocess.check_output(cmd, shell=True, encoding='utf8') ! out = out.strip().split('\n') ! modified = [c for c in out if c.endswith('ChangeLog')] ! for m in modified: ! subprocess.check_output('git reset %s' % m, shell=True) ! subprocess.check_output('git checkout %s' % m, shell=True) ! ! # try to continue ! if len(conflicts) == len(changelogs): ! cmd = 'git -c core.editor=true cherry-pick --continue' ! subprocess.check_output(cmd, shell=True) ! else: ! print('Please resolve all remaining file conflicts.') --- 20,35 ---- # Boston, MA 02110-1301, USA. import argparse + import os import subprocess + script_folder = os.path.dirname(os.path.abspath(__file__)) + fixup_script = os.path.join(script_folder, 'git-fix-changelog.py') + if __name__ == '__main__': ! parser = argparse.ArgumentParser(description='Backport a git revision.') parser.add_argument('revision', help='Revision') args = parser.parse_args() ! subprocess.run('git cherry-pick -x %s' % args.revision, shell=True) ! subprocess.run(fixup_script, shell=True) diff -Nrcpad gcc-10.3.0/contrib/git-commit-mklog.py gcc-10.4.0/contrib/git-commit-mklog.py *** gcc-10.3.0/contrib/git-commit-mklog.py Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/contrib/git-commit-mklog.py Tue Jun 28 08:54:27 2022 *************** *** 0 **** --- 1,59 ---- + #!/usr/bin/env python3 + + # Copyright (C) 2020 Free Software Foundation, Inc. + # + # This file is part of GCC. + # + # GCC is free software; you can redistribute it and/or modify + # it under the terms of the GNU General Public License as published by + # the Free Software Foundation; either version 3, or (at your option) + # any later version. + # + # GCC is distributed in the hope that it will be useful, + # but WITHOUT ANY WARRANTY; without even the implied warranty of + # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + # GNU General Public License for more details. + # + # You should have received a copy of the GNU General Public License + # along with GCC; see the file COPYING. If not, write to + # the Free Software Foundation, 51 Franklin Street, Fifth Floor, + # Boston, MA 02110-1301, USA. + # + # The script is wrapper for git commit-mklog alias where it parses + # -b/--pr-numbers argument and passes it via environment variable + # to mklog.py script. + + import argparse + import os + import subprocess + + if __name__ == '__main__': + children_args = [] + myenv = os.environ.copy() + + parser = argparse.ArgumentParser(description='git-commit-mklog wrapped') + parser.add_argument('-b', '--pr-numbers', action='store', + type=lambda arg: arg.split(','), nargs='?', + help='Add the specified PRs (comma separated)') + parser.add_argument('-p', '--fill-up-bug-titles', action='store_true', + help='Download title of mentioned PRs') + parser.add_argument('--co', + help='Add Co-Authored-By trailer (comma separated)') + args, unknown_args = parser.parse_known_args() + + myenv['GCC_FORCE_MKLOG'] = '1' + mklog_args = [] + if args.pr_numbers: + mklog_args.append(f'-b {",".join(args.pr_numbers)}') + if args.fill_up_bug_titles: + mklog_args.append('-p') + + if mklog_args: + myenv['GCC_MKLOG_ARGS'] = ' '.join(mklog_args) + + if args.co: + for author in args.co.split(','): + unknown_args.append(f'--trailer "Co-Authored-By: {author}"') + + commit_args = ' '.join(unknown_args) + subprocess.run(f'git commit {commit_args}', shell=True, env=myenv) diff -Nrcpad gcc-10.3.0/contrib/git-descr.sh gcc-10.4.0/contrib/git-descr.sh *** gcc-10.3.0/contrib/git-descr.sh Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/contrib/git-descr.sh Tue Jun 28 08:54:27 2022 *************** *** 0 **** --- 1,37 ---- + #!/bin/sh + + # Script to describe a GCC revision based on git hash + + short=no + long=no + c=master + + for arg in "$@" + do + case "$arg" in + --short) short=yes long=no + ;; + --long|--full) long=yes short=no + ;; + *) c=$arg + esac + done + + if test x$short = xyes; then + r=$(git describe --all --match 'basepoints/gcc-[0-9]*' $c | sed -n 's,^\(tags/\)\?basepoints/gcc-\([0-9]\+\)-\([0-9]\+\)-g[0-9a-f]*$,r\2-\3,p;s,^\(tags/\)\?basepoints/gcc-\([0-9]\+\)$,r\2-0,p'); + elif test x$long = xyes; then + r=$(git describe --all --abbrev=40 --match 'basepoints/gcc-[0-9]*' $c | sed -n 's,^\(tags/\)\?basepoints/gcc-,r,p') + else + r=$(git describe --all --abbrev=14 --match 'basepoints/gcc-[0-9]*' $c | sed -n 's,^\(tags/\)\?basepoints/gcc-,r,p'); + expr match ${r:-no} 'r[0-9]\+$' >/dev/null && r=${r}-0-g$(git rev-parse $c); + fi; + if test -n $r; then + o=$(git config --get gcc-config.upstream); + rr=$(echo $r | sed -n 's,^r\([0-9]\+\)-[0-9]\+\(-g[0-9a-f]\+\)\?$,\1,p'); + if git rev-parse --verify --quiet ${o:-origin}/releases/gcc-$rr >/dev/null; then + m=releases/gcc-$rr; + else + m=master; + fi; + git merge-base --is-ancestor $c ${o:-origin}/$m && echo ${r}; + fi; diff -Nrcpad gcc-10.3.0/contrib/git-fix-changelog.py gcc-10.4.0/contrib/git-fix-changelog.py *** gcc-10.3.0/contrib/git-fix-changelog.py Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/contrib/git-fix-changelog.py Tue Jun 28 08:54:27 2022 *************** *** 0 **** --- 1,92 ---- + #!/usr/bin/env python3 + + # Copyright (C) 2020 Free Software Foundation, Inc. + # + # This file is part of GCC. + # + # GCC is free software; you can redistribute it and/or modify + # it under the terms of the GNU General Public License as published by + # the Free Software Foundation; either version 3, or (at your option) + # any later version. + # + # GCC is distributed in the hope that it will be useful, + # but WITHOUT ANY WARRANTY; without even the implied warranty of + # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + # GNU General Public License for more details. + # + # You should have received a copy of the GNU General Public License + # along with GCC; see the file COPYING. If not, write to + # the Free Software Foundation, 51 Franklin Street, Fifth Floor, + # Boston, MA 02110-1301, USA. + # + # The script tries to fix commit message where ChangeLog entries + # can point to .cc renamed files. + + import argparse + import os + import subprocess + import tempfile + + DESCRIPTION = 'Fix up ChangeLog of the current commit.' + + script_folder = os.path.dirname(os.path.abspath(__file__)) + verify_script = os.path.join(script_folder, + 'gcc-changelog/git_check_commit.py') + + + def replace_file_in_changelog(lines, filename, fixed): + # consider all componenets of a path: gcc/ipa-icf.cc + while filename: + for i, line in enumerate(lines): + if filename in line: + lines[i] = line.replace(filename, fixed) + return + + parts = filename.split('/') + if len(parts) == 1: + return + filename = '/'.join(parts[1:]) + fixed = '/'.join(fixed.split('/')[1:]) + + + if __name__ == '__main__': + parser = argparse.ArgumentParser(description=DESCRIPTION) + args = parser.parse_args() + + # Update commit message if change for a .cc file was taken + r = subprocess.run(f'{verify_script} HEAD', shell=True, encoding='utf8', + stdout=subprocess.PIPE, stderr=subprocess.PIPE) + if r.returncode != 0: + lines = r.stdout.splitlines() + cmd = 'git show -s --format=%B' + commit_message = subprocess.check_output(cmd, shell=True, + encoding='utf8').strip() + commit_message = commit_message.splitlines() + + # Parse the following lines: + # ERR: unchanged file mentioned in a ChangeLog \ + # (did you mean "gcc/ipa-icf.cc"?): "gcc/ipa-icf.c" + replaced = 0 + for line in lines: + if ('unchanged file mentioned' in line and + 'did you mean' in line): + filename = line.split()[-1].strip('"') + fixed = line[line.index('did you mean'):] + fixed = fixed[fixed.index('"') + 1:] + fixed = fixed[:fixed.index('"')] + + if filename.count('/') == fixed.count('/'): + replace_file_in_changelog(commit_message, filename, fixed) + replaced += 1 + + if replaced: + with tempfile.NamedTemporaryFile('w', encoding='utf8', + delete=False) as w: + w.write('\n'.join(commit_message)) + w.close() + subprocess.check_output(f'git commit --amend -F {w.name}', + shell=True, encoding='utf8') + os.unlink(w.name) + print(f'Commit message updated: {replaced} file(s) renamed.') + else: + print('Commit message has not been updated.') diff -Nrcpad gcc-10.3.0/contrib/git-undescr.sh gcc-10.4.0/contrib/git-undescr.sh *** gcc-10.3.0/contrib/git-undescr.sh Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/contrib/git-undescr.sh Tue Jun 28 08:54:27 2022 *************** *** 0 **** --- 1,13 ---- + #!/bin/sh + + # Script to undescribe a GCC revision + + o=$(git config --get gcc-config.upstream); + r=$(echo $1 | sed -n 's,^r\([0-9]\+\)-[0-9]\+\(-g[0-9a-f]\+\)\?$,\1,p'); + n=$(echo $1 | sed -n 's,^r[0-9]\+-\([0-9]\+\)\(-g[0-9a-f]\+\)\?$,\1,p'); + + test -z $r && echo Invalid id $1 && exit 1; + h=$(git rev-parse --verify --quiet ${o:-origin}/releases/gcc-$r); + test -z $h && h=$(git rev-parse --verify --quiet ${o:-origin}/master); + p=$(git describe --all --match 'basepoints/gcc-'$r $h | sed -n 's,^\(tags/\)\?basepoints/gcc-[0-9]\+-\([0-9]\+\)-g[0-9a-f]*$,\2,p;s,^\(tags/\)\?basepoints/gcc-[0-9]\+$,0,p'); + git rev-parse --verify $h~$(expr $p - $n); diff -Nrcpad gcc-10.3.0/contrib/header-tools/ChangeLog gcc-10.4.0/contrib/header-tools/ChangeLog *** gcc-10.3.0/contrib/header-tools/ChangeLog Thu Apr 8 11:56:48 2021 --- gcc-10.4.0/contrib/header-tools/ChangeLog Tue Jun 28 08:54:27 2022 *************** *** 1,3 **** --- 1,7 ---- + 2022-06-28 Release Manager + + * GCC 10.4.0 released. + 2021-04-08 Release Manager * GCC 10.3.0 released. diff -Nrcpad gcc-10.3.0/contrib/mklog.py gcc-10.4.0/contrib/mklog.py *** gcc-10.3.0/contrib/mklog.py Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/contrib/mklog.py Tue Jun 28 08:54:27 2022 *************** *** 0 **** --- 1,356 ---- + #!/usr/bin/env python3 + + # Copyright (C) 2020 Free Software Foundation, Inc. + # + # This file is part of GCC. + # + # GCC is free software; you can redistribute it and/or modify + # it under the terms of the GNU General Public License as published by + # the Free Software Foundation; either version 3, or (at your option) + # any later version. + # + # GCC is distributed in the hope that it will be useful, + # but WITHOUT ANY WARRANTY; without even the implied warranty of + # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + # GNU General Public License for more details. + # + # You should have received a copy of the GNU General Public License + # along with GCC; see the file COPYING. If not, write to + # the Free Software Foundation, 51 Franklin Street, Fifth Floor, + # Boston, MA 02110-1301, USA. + + # This script parses a .diff file generated with 'diff -up' or 'diff -cp' + # and adds a skeleton ChangeLog file to the file. It does not try to be + # too smart when parsing function names, but it produces a reasonable + # approximation. + # + # Author: Martin Liska + + import argparse + import datetime + import os + import re + import subprocess + import sys + from itertools import takewhile + + import requests + + from unidiff import PatchSet + + pr_regex = re.compile(r'(\/(\/|\*)|[Cc*!])\s+(?PPR [a-z+-]+\/[0-9]+)') + prnum_regex = re.compile(r'PR (?P[a-z+-]+)/(?P[0-9]+)') + dr_regex = re.compile(r'(\/(\/|\*)|[Cc*!])\s+(?PDR [0-9]+)') + dg_regex = re.compile(r'{\s+dg-(error|warning)') + pr_filename_regex = re.compile(r'(^|[\W_])[Pp][Rr](?P\d{4,})') + identifier_regex = re.compile(r'^([a-zA-Z0-9_#].*)') + comment_regex = re.compile(r'^\/\*') + struct_regex = re.compile(r'^(class|struct|union|enum)\s+' + r'(GTY\(.*\)\s+)?([a-zA-Z0-9_]+)') + macro_regex = re.compile(r'#\s*(define|undef)\s+([a-zA-Z0-9_]+)') + super_macro_regex = re.compile(r'^DEF[A-Z0-9_]+\s*\(([a-zA-Z0-9_]+)') + fn_regex = re.compile(r'([a-zA-Z_][^()\s]*)\s*\([^*]') + template_and_param_regex = re.compile(r'<[^<>]*>') + md_def_regex = re.compile(r'\(define.*\s+"(.*)"') + bugzilla_url = 'https://gcc.gnu.org/bugzilla/rest.cgi/bug?id=%s&' \ + 'include_fields=summary,component' + + function_extensions = {'.c', '.cpp', '.C', '.cc', '.h', '.inc', '.def', '.md'} + + # NB: Makefile.in isn't listed as it's not always generated. + generated_files = {'aclocal.m4', 'config.h.in', 'configure'} + + help_message = """\ + Generate ChangeLog template for PATCH. + PATCH must be generated using diff(1)'s -up or -cp options + (or their equivalent in git). + """ + + script_folder = os.path.realpath(__file__) + root = os.path.dirname(os.path.dirname(script_folder)) + + firstpr = '' + + + def find_changelog(path): + folder = os.path.split(path)[0] + while True: + if os.path.exists(os.path.join(root, folder, 'ChangeLog')): + return folder + folder = os.path.dirname(folder) + if folder == '': + return folder + raise AssertionError() + + + def extract_function_name(line): + if comment_regex.match(line): + return None + m = struct_regex.search(line) + if m: + # Struct declaration + return m.group(1) + ' ' + m.group(3) + m = macro_regex.search(line) + if m: + # Macro definition + return m.group(2) + m = super_macro_regex.search(line) + if m: + # Supermacro + return m.group(1) + m = fn_regex.search(line) + if m: + # Discard template and function parameters. + fn = m.group(1) + fn = re.sub(template_and_param_regex, '', fn) + return fn.rstrip() + return None + + + def try_add_function(functions, line): + fn = extract_function_name(line) + if fn and fn not in functions: + functions.append(fn) + return bool(fn) + + + def sort_changelog_files(changed_file): + return (changed_file.is_added_file, changed_file.is_removed_file) + + + def get_pr_titles(prs): + output = [] + for idx, pr in enumerate(prs): + pr_id = pr.split('/')[-1] + r = requests.get(bugzilla_url % pr_id) + bugs = r.json()['bugs'] + if len(bugs) == 1: + prs[idx] = 'PR %s/%s' % (bugs[0]['component'], pr_id) + out = '%s - %s\n' % (prs[idx], bugs[0]['summary']) + if out not in output: + output.append(out) + if output: + output.append('') + return '\n'.join(output) + + + def generate_changelog(data, no_functions=False, fill_pr_titles=False, + additional_prs=None): + changelogs = {} + changelog_list = [] + prs = [] + out = '' + diff = PatchSet(data) + global firstpr + + if additional_prs: + prs = [pr for pr in additional_prs if pr not in prs] + for file in diff: + # skip files that can't be parsed + if file.path == '/dev/null': + continue + changelog = find_changelog(file.path) + if changelog not in changelogs: + changelogs[changelog] = [] + changelog_list.append(changelog) + changelogs[changelog].append(file) + + # Extract PR entries from newly added tests + if 'testsuite' in file.path and file.is_added_file: + # Only search first ten lines as later lines may + # contains commented code which a note that it + # has not been tested due to a certain PR or DR. + this_file_prs = [] + for line in list(file)[0][0:10]: + m = pr_regex.search(line.value) + if m: + pr = m.group('pr') + if pr not in prs: + prs.append(pr) + this_file_prs.append(pr.split('/')[-1]) + else: + m = dr_regex.search(line.value) + if m: + dr = m.group('dr') + if dr not in prs: + prs.append(dr) + this_file_prs.append(dr.split('/')[-1]) + elif dg_regex.search(line.value): + # Found dg-warning/dg-error line + break + # PR number in the file name + fname = os.path.basename(file.path) + m = pr_filename_regex.search(fname) + if m: + pr = m.group('pr') + pr2 = 'PR ' + pr + if pr not in this_file_prs and pr2 not in prs: + prs.append(pr2) + + if prs: + firstpr = prs[0] + + if fill_pr_titles: + out += get_pr_titles(prs) + + # print list of PR entries before ChangeLog entries + if prs: + if not out: + out += '\n' + for pr in prs: + out += '\t%s\n' % pr + out += '\n' + + # sort ChangeLog so that 'testsuite' is at the end + for changelog in sorted(changelog_list, key=lambda x: 'testsuite' in x): + files = changelogs[changelog] + out += '%s:\n' % os.path.join(changelog, 'ChangeLog') + out += '\n' + # new and deleted files should be at the end + for file in sorted(files, key=sort_changelog_files): + assert file.path.startswith(changelog) + in_tests = 'testsuite' in changelog or 'testsuite' in file.path + relative_path = file.path[len(changelog):].lstrip('/') + functions = [] + if file.is_added_file: + msg = 'New test' if in_tests else 'New file' + out += '\t* %s: %s.\n' % (relative_path, msg) + elif file.is_removed_file: + out += '\t* %s: Removed.\n' % (relative_path) + elif hasattr(file, 'is_rename') and file.is_rename: + out += '\t* %s: Moved to...\n' % (relative_path) + new_path = file.target_file[2:] + # A file can be theoretically moved to a location that + # belongs to a different ChangeLog. Let user fix it. + if new_path.startswith(changelog): + new_path = new_path[len(changelog):].lstrip('/') + out += '\t* %s: ...here.\n' % (new_path) + elif os.path.basename(file.path) in generated_files: + out += '\t* %s: Regenerate.\n' % (relative_path) + else: + if not no_functions: + for hunk in file: + # Do not add function names for testsuite files + extension = os.path.splitext(relative_path)[1] + if not in_tests and extension in function_extensions: + last_fn = None + modified_visited = False + success = False + for line in hunk: + m = identifier_regex.match(line.value) + if line.is_added or line.is_removed: + # special-case definition in .md files + m2 = md_def_regex.match(line.value) + if extension == '.md' and m2: + fn = m2.group(1) + if fn not in functions: + functions.append(fn) + last_fn = None + success = True + + if not line.value.strip(): + continue + modified_visited = True + if m and try_add_function(functions, + m.group(1)): + last_fn = None + success = True + elif line.is_context: + if last_fn and modified_visited: + try_add_function(functions, last_fn) + last_fn = None + modified_visited = False + success = True + elif m: + last_fn = m.group(1) + modified_visited = False + if not success: + try_add_function(functions, + hunk.section_header) + if functions: + out += '\t* %s (%s):\n' % (relative_path, functions[0]) + for fn in functions[1:]: + out += '\t(%s):\n' % fn + else: + out += '\t* %s:\n' % relative_path + out += '\n' + return out + + + def update_copyright(data): + current_timestamp = datetime.datetime.now().strftime('%Y-%m-%d') + username = subprocess.check_output('git config user.name', shell=True, + encoding='utf8').strip() + email = subprocess.check_output('git config user.email', shell=True, + encoding='utf8').strip() + + changelogs = set() + diff = PatchSet(data) + + for file in diff: + changelog = os.path.join(find_changelog(file.path), 'ChangeLog') + if changelog not in changelogs: + changelogs.add(changelog) + with open(changelog) as f: + content = f.read() + with open(changelog, 'w+') as f: + f.write(f'{current_timestamp} {username} <{email}>\n\n') + f.write('\tUpdate copyright years.\n\n') + f.write(content) + + + if __name__ == '__main__': + parser = argparse.ArgumentParser(description=help_message) + parser.add_argument('input', nargs='?', + help='Patch file (or missing, read standard input)') + parser.add_argument('-b', '--pr-numbers', action='store', + type=lambda arg: arg.split(','), nargs='?', + help='Add the specified PRs (comma separated)') + parser.add_argument('-s', '--no-functions', action='store_true', + help='Do not generate function names in ChangeLogs') + parser.add_argument('-p', '--fill-up-bug-titles', action='store_true', + help='Download title of mentioned PRs') + parser.add_argument('-d', '--directory', + help='Root directory where to search for ChangeLog ' + 'files') + parser.add_argument('-c', '--changelog', + help='Append the ChangeLog to a git commit message ' + 'file') + parser.add_argument('--update-copyright', action='store_true', + help='Update copyright in ChangeLog files') + args = parser.parse_args() + if args.input == '-': + args.input = None + if args.directory: + root = args.directory + + data = open(args.input) if args.input else sys.stdin + if args.update_copyright: + update_copyright(data) + else: + output = generate_changelog(data, args.no_functions, + args.fill_up_bug_titles, args.pr_numbers) + if args.changelog: + lines = open(args.changelog).read().split('\n') + start = list(takewhile(lambda l: not l.startswith('#'), lines)) + end = lines[len(start):] + with open(args.changelog, 'w') as f: + if not start or not start[0]: + # initial commit subject line 'component: [PRnnnnn]' + m = prnum_regex.match(firstpr) + if m: + title = f'{m.group("comp")}: [PR{m.group("num")}]' + start.insert(0, title) + if start: + # append empty line + if start[-1] != '': + start.append('') + else: + # append 2 empty lines + start = 2 * [''] + f.write('\n'.join(start)) + f.write('\n') + f.write(output) + f.write('\n'.join(end)) + else: + print(output, end='') diff -Nrcpad gcc-10.3.0/contrib/prerequisites.md5 gcc-10.4.0/contrib/prerequisites.md5 *** gcc-10.3.0/contrib/prerequisites.md5 Thu Apr 8 11:56:27 2021 --- gcc-10.4.0/contrib/prerequisites.md5 Tue Jun 28 08:54:27 2022 *************** *** 1,4 **** 86ee6e54ebfc4a90b643a65e402c4048 gmp-6.1.0.tar.bz2 ! b8a2f6b0e68bef46e53da2ac439e1cf4 mpfr-3.1.4.tar.bz2 d6a1d5f8ddea3abd2cc3e98f58352d26 mpc-1.0.3.tar.gz 11436d6b205e516635b666090b94ab32 isl-0.18.tar.bz2 --- 1,4 ---- 86ee6e54ebfc4a90b643a65e402c4048 gmp-6.1.0.tar.bz2 ! 320c28198def956aeacdb240b46b8969 mpfr-3.1.6.tar.bz2 d6a1d5f8ddea3abd2cc3e98f58352d26 mpc-1.0.3.tar.gz 11436d6b205e516635b666090b94ab32 isl-0.18.tar.bz2 diff -Nrcpad gcc-10.3.0/contrib/prerequisites.sha512 gcc-10.4.0/contrib/prerequisites.sha512 *** gcc-10.3.0/contrib/prerequisites.sha512 Thu Apr 8 11:56:27 2021 --- gcc-10.4.0/contrib/prerequisites.sha512 Tue Jun 28 08:54:27 2022 *************** *** 1,4 **** 3c82aeab9c1596d4da8afac2eec38e429e84f3211e1a572cf8fd2b546493c44c039b922a1133eaaa48bd7f3e11dbe795a384e21ed95cbe3ecc58d7ac02246117 gmp-6.1.0.tar.bz2 ! 51066066ff2c12ed2198605ecf68846b0c96b548adafa5b80e0c786d0df488411a5e8973358fce7192dc977ad4e68414cf14500e3c39746de62465eb145bb819 mpfr-3.1.4.tar.bz2 0028b76df130720c1fad7de937a0d041224806ce5ef76589f19c7b49d956071a683e2f20d154c192a231e69756b19e48208f2889b0c13950ceb7b3cfaf059a43 mpc-1.0.3.tar.gz 85d0b40f4dbf14cb99d17aa07048cdcab2dc3eb527d2fbb1e84c41b2de5f351025370e57448b63b2b8a8cf8a0843a089c3263f9baee1542d5c2e1cb37ed39d94 isl-0.18.tar.bz2 --- 1,4 ---- 3c82aeab9c1596d4da8afac2eec38e429e84f3211e1a572cf8fd2b546493c44c039b922a1133eaaa48bd7f3e11dbe795a384e21ed95cbe3ecc58d7ac02246117 gmp-6.1.0.tar.bz2 ! 0c310dd7956be527884f8059c195a5aca1042b089d0927ac6341e6310b1250a7059bc61aaaab4dfb76c6ab8b67e440878ca203f72674529bbcb46770ed9b6885 mpfr-3.1.6.tar.bz2 0028b76df130720c1fad7de937a0d041224806ce5ef76589f19c7b49d956071a683e2f20d154c192a231e69756b19e48208f2889b0c13950ceb7b3cfaf059a43 mpc-1.0.3.tar.gz 85d0b40f4dbf14cb99d17aa07048cdcab2dc3eb527d2fbb1e84c41b2de5f351025370e57448b63b2b8a8cf8a0843a089c3263f9baee1542d5c2e1cb37ed39d94 isl-0.18.tar.bz2 diff -Nrcpad gcc-10.3.0/contrib/reghunt/ChangeLog gcc-10.4.0/contrib/reghunt/ChangeLog *** gcc-10.3.0/contrib/reghunt/ChangeLog Thu Apr 8 11:56:48 2021 --- gcc-10.4.0/contrib/reghunt/ChangeLog Tue Jun 28 08:54:27 2022 *************** *** 1,3 **** --- 1,7 ---- + 2022-06-28 Release Manager + + * GCC 10.4.0 released. + 2021-04-08 Release Manager * GCC 10.3.0 released. diff -Nrcpad gcc-10.3.0/contrib/regression/ChangeLog gcc-10.4.0/contrib/regression/ChangeLog *** gcc-10.3.0/contrib/regression/ChangeLog Thu Apr 8 11:56:48 2021 --- gcc-10.4.0/contrib/regression/ChangeLog Tue Jun 28 08:54:27 2022 *************** *** 1,3 **** --- 1,7 ---- + 2022-06-28 Release Manager + + * GCC 10.4.0 released. + 2021-04-08 Release Manager * GCC 10.3.0 released. diff -Nrcpad gcc-10.3.0/contrib/test_mklog.py gcc-10.4.0/contrib/test_mklog.py *** gcc-10.3.0/contrib/test_mklog.py Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/contrib/test_mklog.py Tue Jun 28 08:54:27 2022 *************** *** 0 **** --- 1,487 ---- + #!/usr/bin/env python3 + + # Copyright (C) 2020 Free Software Foundation, Inc. + # + # This file is part of GCC. + # + # GCC is free software; you can redistribute it and/or modify + # it under the terms of the GNU General Public License as published by + # the Free Software Foundation; either version 3, or (at your option) + # any later version. + # + # GCC is distributed in the hope that it will be useful, + # but WITHOUT ANY WARRANTY; without even the implied warranty of + # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + # GNU General Public License for more details. + # + # You should have received a copy of the GNU General Public License + # along with GCC; see the file COPYING. If not, write to + # the Free Software Foundation, 51 Franklin Street, Fifth Floor, + # Boston, MA 02110-1301, USA. + + # This script parses a .diff file generated with 'diff -up' or 'diff -cp' + # and adds a skeleton ChangeLog file to the file. It does not try to be + # too smart when parsing function names, but it produces a reasonable + # approximation. + # + # Author: Martin Liska + + import unittest + + from mklog import generate_changelog + + import unidiff + + unidiff_supports_renaming = hasattr(unidiff.PatchedFile(), 'is_rename') + + + PATCH1 = '''\ + diff --git a/gcc/config/riscv/riscv.h b/gcc/config/riscv/riscv.h + index 567c23380fe..e6209ede9d6 100644 + --- a/gcc/config/riscv/riscv.h + +++ b/gcc/config/riscv/riscv.h + @@ -920,6 +920,7 @@ extern unsigned riscv_stack_boundary; + #define SHIFT_RS1 15 + #define SHIFT_IMM 20 + #define IMM_BITS 12 + +#define C_S_BITS 5 + #define C_SxSP_BITS 6 + + #define IMM_REACH (1LL << IMM_BITS) + @@ -929,6 +930,10 @@ extern unsigned riscv_stack_boundary; + #define SWSP_REACH (4LL << C_SxSP_BITS) + #define SDSP_REACH (8LL << C_SxSP_BITS) + + +/* This is the maximum value that can be represented in a compressed load/store + + offset (an unsigned 5-bit value scaled by 4). */ + +#define CSW_MAX_OFFSET ((4LL << C_S_BITS) - 1) & ~3 + + + /* Called from RISCV_REORG, this is defined in riscv-sr.c. */ + + extern void riscv_remove_unneeded_save_restore_calls (void); + + ''' + + EXPECTED1 = '''\ + gcc/ChangeLog: + + * config/riscv/riscv.h (C_S_BITS): + (CSW_MAX_OFFSET): + + ''' + + PATCH2 = '''\ + diff --git a/gcc/targhooks.h b/gcc/targhooks.h + index 9704d23f1db..b572a36e8cf 100644 + --- a/gcc/targhooks.h + +++ b/gcc/targhooks.h + @@ -120,7 +120,7 @@ extern bool default_empty_mask_is_expensive (unsigned); + extern void *default_init_cost (class loop *); + extern unsigned default_add_stmt_cost (class vec_info *, void *, int, + enum vect_cost_for_stmt, + - class _stmt_vec_info *, int, + + class _stmt_vec_info *, tree, int, + enum vect_cost_model_location); + extern void default_finish_cost (void *, unsigned *, unsigned *, unsigned *); + extern void default_destroy_cost_data (void *); + @@ -186,6 +186,7 @@ extern tree default_emutls_var_init (tree, tree, tree); + extern unsigned int default_hard_regno_nregs (unsigned int, machine_mode); + extern bool default_hard_regno_scratch_ok (unsigned int); + extern bool default_mode_dependent_address_p (const_rtx, addr_space_t); + +extern bool default_new_address_profitable_p (rtx, rtx_insn *, rtx); + extern bool default_target_option_valid_attribute_p (tree, tree, tree, int); + extern bool default_target_option_pragma_parse (tree, tree); + extern bool default_target_can_inline_p (tree, tree); + + ''' + + EXPECTED2 = '''\ + gcc/ChangeLog: + + * targhooks.h (default_add_stmt_cost): + (default_new_address_profitable_p): + + ''' + + PATCH3 = '''\ + diff --git a/libcpp/include/cpplib.h b/libcpp/include/cpplib.h + index 2b1e33f94ae..7f47402f9b9 100644 + --- a/libcpp/include/cpplib.h + +++ b/libcpp/include/cpplib.h + @@ -173,7 +173,7 @@ enum c_lang {CLK_GNUC89 = 0, CLK_GNUC99, CLK_GNUC11, CLK_GNUC17, CLK_GNUC2X, + CLK_STDC2X, + CLK_GNUCXX, CLK_CXX98, CLK_GNUCXX11, CLK_CXX11, + CLK_GNUCXX14, CLK_CXX14, CLK_GNUCXX17, CLK_CXX17, + - CLK_GNUCXX2A, CLK_CXX2A, CLK_ASM}; + + CLK_GNUCXX20, CLK_CXX20, CLK_ASM}; + + /* Payload of a NUMBER, STRING, CHAR or COMMENT token. */ + struct GTY(()) cpp_string { + @@ -484,7 +484,7 @@ struct cpp_options + /* Nonzero for C2X decimal floating-point constants. */ + unsigned char dfp_constants; + + - /* Nonzero for C++2a __VA_OPT__ feature. */ + + /* Nonzero for C++20 __VA_OPT__ feature. */ + unsigned char va_opt; + + /* Nonzero for the '::' token. */ + + ''' + + EXPECTED3 = '''\ + libcpp/ChangeLog: + + * include/cpplib.h (enum c_lang): + (struct cpp_options): + + ''' + + EXPECTED3B = '''\ + libcpp/ChangeLog: + + * include/cpplib.h: + + ''' + + PATCH4 = '''\ + diff --git a/gcc/ipa-icf.c b/gcc/ipa-icf.c + index aab79492357..f0df1002488 100644 + --- a/gcc/ipa-icf.c + +++ b/gcc/ipa-icf.c + @@ -1,5 +1,7 @@ + + + + + + + /* Interprocedural Identical Code Folding pass + Copyright (C) 2014-2020 Free Software Foundation, Inc. + + diff --git a/gcc/testsuite/gcc.dg/pr32374.c b/gcc/testsuite/gcc.dg/pr32374.c + deleted file mode 100644 + index de15d559f5b..00000000000 + --- a/gcc/testsuite/gcc.dg/pr32374.c + +++ /dev/null + @@ -1,20 +0,0 @@ + -/* { dg-do compile } */ + -/* { dg-options "-O2" } */ + - + -extern int *stderr; + - + -void f (int *, const char *, ...); + - + -void g (const char *conf_name) + -{ + - typedef struct + - { + - const char *label; + - const int value; + - } Section; + - + - const Section sections[2] = { {"", 0}, {"", 1} }; + - + - f (stderr, "", "", conf_name, 0, sections[0]); + - f (stderr, "", "", conf_name, 0, sections[0]); + -} + diff --git a/gcc/testsuite/gcc.dg/pr40209.c b/gcc/testsuite/gcc.dg/pr40209.c + index 4e77df5c2e6..c23d69d1f1b 100644 + --- a/gcc/testsuite/gcc.dg/pr40209.c + +++ b/gcc/testsuite/gcc.dg/pr40209.c + @@ -1,6 +1,8 @@ + /* { dg-do compile } */ + /* { dg-options "-O2 -fprofile-use -fopt-info -Wno-missing-profile" } */ + + + + + + void process(const char *s); + + struct BaseHolder { + diff --git a/gcc/testsuite/gcc.dg/pr50209.c b/gcc/testsuite/gcc.dg/pr50209.c + new file mode 100644 + index 00000000000..b28b04f6431 + --- /dev/null + +++ b/gcc/testsuite/gcc.dg/pr50209.c + @@ -0,0 +1,3 @@ + + + + + + + diff --git a/gcc/testsuite/gcc.dg/pr63567-1.c b/gcc/testsuite/gcc.dg/pr63567-1.c + index 97da171563e..00c5ecc11fa 100644 + --- a/gcc/testsuite/gcc.dg/pr63567-1.c + +++ b/gcc/testsuite/gcc.dg/pr63567-1.c + @@ -1,3 +1,4 @@ + + + /* PR c/63567 */ + /* { dg-do compile } */ + /* { dg-options "" } */ + diff --git a/gcc/varasm.c b/gcc/varasm.c + index f062e48071f..fd3c7ca8cf3 100644 + --- a/gcc/varasm.c + +++ b/gcc/varasm.c + @@ -1,3 +1,5 @@ + + + + + /* Output variables, constants and external declarations, for GNU compiler. + Copyright (C) 1987-2020 Free Software Foundation, Inc. + + diff --git a/libssp/gets-chk.c b/libssp/gets-chk.c + index 4ad78c1f77b..6687b368038 100644 + --- a/libssp/gets-chk.c + +++ b/libssp/gets-chk.c + @@ -32,6 +32,8 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see + . */ + + + + + + + #include "config.h" + #include + #include + ''' + + EXPECTED4 = '''\ + + PR 50209 + + gcc/ChangeLog: + + * ipa-icf.c: + * varasm.c: + + libssp/ChangeLog: + + * gets-chk.c: + + gcc/testsuite/ChangeLog: + + * gcc.dg/pr40209.c: + * gcc.dg/pr63567-1.c: + * gcc.dg/pr32374.c: Removed. + * gcc.dg/pr50209.c: New test. + + ''' + + PATCH5 = '''\ + diff --git a/gcc/testsuite/gcc.target/i386/pr95046-6.c b/gcc/testsuite/gcc.target/i386/pr95046-6.c + new file mode 100644 + index 00000000000..dcc8999c446 + --- /dev/null + +++ b/gcc/testsuite/gcc.target/i386/pr95046-6.c + @@ -0,0 +1,44 @@ + +/* PR target/95046 */ + +/* { dg-do compile { target { ! ia32 } } } */ + +/* { dg-options "-O3 -mavx512vl" } */ + + + + + +double r[2]; + +int s[2]; + +unsigned int u[2]; + + + +void + +test_float (void) + +{ + + for (int i = 0; i < 2; i++) + + r[i] = s[i]; + +} + + + +/* { dg-final { scan-assembler "\tvcvtdq2pd" } } */ + + + +void + +test_ufloat (void) + +{ + + for (int i = 0; i < 2; i++) + + r[i] = u[i]; + +} + + + +/* { dg-final { scan-assembler "\tvcvtudq2pd" } } */ + + + +void + +test_fix (void) + +{ + + for (int i = 0; i < 2; i++) + + s[i] = r[i]; + +} + + + +/* { dg-final { scan-assembler "\tvcvttpd2dqx" } } */ + + + +void + +test_ufix (void) + +{ + + for (int i = 0; i < 2; i++) + + u[i] = r[i]; + +} + + + +/* { dg-final { scan-assembler "\tvcvttpd2udqx" } } */ + -- + 2.26.2 + + ''' + + EXPECTED5 = '''\ + PR target/95046 - Vectorize V2SFmode operations + + PR target/95046 + + gcc/testsuite/ChangeLog: + + * gcc.target/i386/pr95046-6.c: New test. + + ''' + + PATCH6 = '''\ + diff --git a/gcc/cgraph.h b/gcc/cgraph.h + index 5ddeb65269b..cfae6e91da9 100644 + --- a/gcc/cgraph.h + +++ b/gcc/cgraph.h + @@ -937,7 +937,8 @@ struct GTY((tag ("SYMTAB_FUNCTION"))) cgraph_node : public symtab_node + split_part (false), indirect_call_target (false), local (false), + versionable (false), can_change_signature (false), + redefined_extern_inline (false), tm_may_enter_irr (false), + - ipcp_clone (false), m_uid (uid), m_summary_id (-1) + + 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. + + ''' + + EXPECTED6 = '''\ + gcc/ChangeLog: + + * cgraph.h (struct cgraph_node): + + ''' + + PATCH7 = '''\ + diff --git a/gcc/testsuite/g++.dg/DRs/dr2237.C b/gcc/testsuite/g++.dg/DRs/dr2237.C + new file mode 100644 + index 00000000000..f3d6d11e61e + --- /dev/null + +++ b/gcc/testsuite/g++.dg/DRs/dr2237.C + @@ -0,0 +1,18 @@ + +// DR 2237 - Can a template-id name a constructor? + + + +template + +struct X { + + X(); // { dg-error "expected" "" { target c++20 } } + + X(int); // OK, injected-class-name used + + ~X(); // { dg-error "template-id not allowed for destructor" "" { target c++20 } } + +}; + + + +// ill-formed since DR1435 + +template X::X() {} // { dg-error "names the constructor|as no template constructors" } + +template X::~X() {} // { dg-error "template-id not allowed for destructor" "" { target c++20 } } + + + +struct Q { + + // ill-formed since DR1435 + + template friend X::X(); // { dg-error "names the constructor|as no template constructors" } + + template friend X::~X(); // { dg-error "template-id not allowed for destructor" "" { target c++20 } } + +}; + ''' + + EXPECTED7 = '''\ + + DR 2237 + + gcc/testsuite/ChangeLog: + + * g++.dg/DRs/dr2237.C: New test. + + ''' + + PATCH8 = '''\ + diff --git a/gcc/ipa-icf.c b/gcc/ipa-icf2.c + similarity index 100% + rename from gcc/ipa-icf.c + rename to gcc/ipa-icf2.c + ''' + + EXPECTED8 = '''\ + gcc/ChangeLog: + + * ipa-icf.c: Moved to... + * ipa-icf2.c: ...here. + + ''' + + PATCH9 = '''\ + diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md + index 2a260c1cfbd..7f03fc491c3 100644 + --- a/gcc/config/i386/sse.md + +++ b/gcc/config/i386/sse.md + @@ -17611,6 +17611,23 @@ (define_insn "avx2_v16qiv16hi2" + (set_attr "prefix" "maybe_evex") + (set_attr "mode" "OI")]) + + +(define_insn_and_split "*avx2_zero_extendv16qiv16hi2_1" + + [(set (match_operand:V32QI 0 "register_operand" "=v") + + (vec_select:V32QI + + (vec_concat:V64QI + + (match_operand:V32QI 1 "nonimmediate_operand" "vm") + + (match_operand:V32QI 2 "const0_operand" "C")) + + (match_parallel 3 "pmovzx_parallel" + + [(match_operand 4 "const_int_operand" "n")])))] + + "TARGET_AVX2" + + "#" + + "&& reload_completed" + + [(set (match_dup 0) (zero_extend:V16HI (match_dup 1)))] + +{ + + operands[0] = lowpart_subreg (V16HImode, operands[0], V32QImode); + + operands[1] = lowpart_subreg (V16QImode, operands[1], V32QImode); + +}) + + + (define_expand "v16qiv16hi2" + [(set (match_operand:V16HI 0 "register_operand") + (any_extend:V16HI + ''' + + EXPECTED9 = '''\ + gcc/ChangeLog: + + * config/i386/sse.md (*avx2_zero_extendv16qiv16hi2_1): + + ''' + + class TestMklog(unittest.TestCase): + def test_macro_definition(self): + changelog = generate_changelog(PATCH1) + assert changelog == EXPECTED1 + + def test_changed_argument(self): + changelog = generate_changelog(PATCH2) + assert changelog == EXPECTED2 + + def test_enum_and_struct(self): + changelog = generate_changelog(PATCH3) + assert changelog == EXPECTED3 + + def test_no_function(self): + changelog = generate_changelog(PATCH3, True) + assert changelog == EXPECTED3B + + def test_sorting(self): + changelog = generate_changelog(PATCH4) + assert changelog == EXPECTED4 + + def test_pr_bugzilla_download(self): + changelog = generate_changelog(PATCH5, fill_pr_titles=True) + assert changelog == EXPECTED5 + + def test_gty_in_struct(self): + changelog = generate_changelog(PATCH6, fill_pr_titles=True) + assert changelog == EXPECTED6 + + def test_dr_detection_in_test_case(self): + changelog = generate_changelog(PATCH7) + assert changelog == EXPECTED7 + + @unittest.skipIf(not unidiff_supports_renaming, + 'Newer version of unidiff is needed (0.6.0+)') + def test_renaming(self): + changelog = generate_changelog(PATCH8) + assert changelog == EXPECTED8 + + def test_define_macro_parsing(self): + changelog = generate_changelog(PATCH9) + assert changelog == EXPECTED9 diff -Nrcpad gcc-10.3.0/fixincludes/ChangeLog gcc-10.4.0/fixincludes/ChangeLog *** gcc-10.3.0/fixincludes/ChangeLog Thu Apr 8 11:56:48 2021 --- gcc-10.4.0/fixincludes/ChangeLog Tue Jun 28 08:54:27 2022 *************** *** 1,3 **** --- 1,7 ---- + 2022-06-28 Release Manager + + * GCC 10.4.0 released. + 2021-04-08 Release Manager * GCC 10.3.0 released. diff -Nrcpad gcc-10.3.0/gcc/BASE-VER gcc-10.4.0/gcc/BASE-VER *** gcc-10.3.0/gcc/BASE-VER Thu Apr 8 11:56:48 2021 --- gcc-10.4.0/gcc/BASE-VER Tue Jun 28 08:54:27 2022 *************** *** 1 **** ! 10.3.0 --- 1 ---- ! 10.4.0 diff -Nrcpad gcc-10.3.0/gcc/ChangeLog gcc-10.4.0/gcc/ChangeLog *** gcc-10.3.0/gcc/ChangeLog Thu Apr 8 11:56:48 2021 --- gcc-10.4.0/gcc/ChangeLog Tue Jun 28 08:54:27 2022 *************** *** 1,3 **** --- 1,2973 ---- + 2022-06-28 Release Manager + + * GCC 10.4.0 released. + + 2022-06-24 Iain Buclaw + + Backported from master: + 2022-06-24 Iain Buclaw + + * config/tilepro/gen-mul-tables.cc (tilegx_emit): Adjust loop + condition to avoid overflow. + + 2022-06-20 Uros Bizjak + + Backported from master: + 2022-06-17 UroÅ¡ Bizjak + + PR target/105209 + * config/alpha/alpha-protos.h (alpha_store_data_bypass_p): New. + * config/alpha/alpha.c (alpha_store_data_bypass_p): New function. + (alpha_store_data_bypass_p_1): Ditto. + * config/alpha/ev4.md: Use alpha_store_data_bypass_p instead + of generic store_data_bypass_p. + (ev4_ist_c): Remove insn reservation. + + 2022-06-20 Uros Bizjak + + Backported from master: + 2022-06-17 UroÅ¡ Bizjak + + PR target/105970 + * config/i386/i386.c (ix86_function_arg): Assert that + the mode of pointer argumet is equal to ptr_mode, not Pmode. + + 2022-06-20 Segher Boessenkool + + Backported from master: + 2022-03-12 Segher Boessenkool + + PR target/104829 + * config/rs6000/rs6000.c (rs6000_machine_from_flags): Don't output + "ppc" and "ppc64" based on rs6000_cpu. + + 2022-06-20 Segher Boessenkool + + Backported from master: + 2022-03-04 Segher Boessenkool + + * config/rs6000/rs6000.c (rs6000_machine_from_flags): Restructure a + bit. Handle most older CPUs. + + 2022-06-20 Jakub Jelinek + + Backported from master: + 2022-06-18 Jakub Jelinek + + PR middle-end/105998 + * varasm.c (narrowing_initializer_constant_valid_p): Check + SCALAR_INT_MODE_P instead of INTEGRAL_MODE_P, also break on + ! INTEGRAL_TYPE_P and do the same check also on op{0,1}'s type. + + 2022-06-20 Jan Hubicka + + Backported from master: + 2022-06-14 Jan Hubicka + + PR ipa/105739 + * ipa-prop.c (ipa_load_from_parm_agg): Punt on volatile loads. + + 2022-06-20 Jakub Jelinek + + Backported from master: + 2022-05-27 Jakub Jelinek + + PR sanitizer/105729 + * fold-const.c (fold_unary_loc): Don't optimize (X &) ((Y *) z + w) + to (X &) z + w if -fsanitize=null during GENERIC folding. + + 2022-06-16 Richard Earnshaw + + Backported from master: + 2022-06-15 Richard Earnshaw + + PR target/105981 + * config/arm/arm.c (gen_cpymem_ldrd_strd): Rename low_reg and hi_reg + to first_reg and second_reg respectively. Initialize them correctly + when generating big-endian code. + + 2022-06-15 Simon Wright + + Backported from master: + 2022-06-12 Simon Wright + + PR target/104871 + * config/darwin-driver.c (darwin_find_version_from_kernel): If the OS + version is darwin20 (macOS 11) or greater, truncate the version to the + major number. + + 2022-06-15 Mark Mentovai + + Backported from master: + 2022-06-12 Mark Mentovai + + * config/darwin-c.c: Make -mmacosx-version-min more future-proof. + + 2022-06-15 Richard Biener + + Backported from master: + 2022-05-27 Richard Biener + + PR tree-optimization/105726 + * gimple-ssa-warn-restrict.c (builtin_memref::set_base_and_offset): + Constrain array-of-flexarray case more. + + 2022-06-14 Vladimir N. Makarov + + PR rtl-optimization/104637 + * lra-assigns.c (lra_split_hard_reg_for): Split hard regs as many + as possible on one subpass. + + 2022-06-13 Marek Polacek + + Backported from master: + 2022-03-08 Marek Polacek + + PR rtl-optimization/104777 + * rtl.c (classify_insn): For ASM_OPERANDS, return JUMP_INSN only if + ASM_OPERANDS_LABEL_VEC has at least one element. + + 2022-06-09 Iain Sandoe + + Backported from master: + 2021-09-14 Iain Sandoe + + * Makefile.in: Remove variables related to applying no-PIE + to the exes on $build. + * configure: Regenerate. + * configure.ac: Remove configuration related to applying + no-PIE to the exes on $build. + + 2022-06-06 Alan Modra + + Backported from master: + 2020-10-24 Alan Modra + + * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Limit + AND addressing to just lvx/stvx style addresses. + + 2022-05-31 Iain Sandoe + + * config/darwin-sections.def (objc2_class_names_section, + objc2_method_names_section, objc2_method_types_section): New + * config/darwin.c (output_objc_section_asm_op): Output new + sections. (darwin_objc2_section): Select new sections where + used. + (darwin_label_is_anonymous_local_objc_name): Make + protocol class methods linker-visible. + + 2022-05-29 Iain Sandoe + + Backported from master: + 2021-11-15 Iain Sandoe + + PR fortran/102992 + * config/darwin.h (TARGET_DTORS_FROM_CXA_ATEXIT): New. + * doc/tm.texi: Regenerated. + * doc/tm.texi.in: Add TARGET_DTORS_FROM_CXA_ATEXIT hook. + * ipa.c (cgraph_build_static_cdtor_1): Return the built + function decl. + (build_cxa_atexit_decl): New. + (build_dso_handle_decl): New. + (build_cxa_dtor_registrations): New. + (compare_cdtor_tu_order): New. + (build_cxa_atexit_fns): New. + (ipa_cdtor_merge): If dtors_from_cxa_atexit is set, + process the DTORs/CTORs accordingly. + (pass_ipa_cdtor_merge::gate): Also run if + dtors_from_cxa_atexit is set. + * target.def (dtors_from_cxa_atexit): New hook. + + 2022-05-29 Iain Sandoe + + Backported from master: + 2021-07-09 Iain Sandoe + + PR target/100152 + * config/i386/i386-expand.c (ix86_expand_call): If a call is + to a non-local-binding, or local but to a public symbol, then + assume that it might be indirected via the lazy symbol binder. + Mark R10 and R10 as clobbered in that case. + + 2022-05-29 Iain Sandoe + Vladimir Makarov + + PR target/104117 + * config/rs6000/rs6000.c (darwin_rs6000_legitimate_lo_sum_const_p): + Check for UNSPEC_MACHOPIC_OFFSET wrappers on symbolic addresses when + emitting PIC code. + (legitimate_lo_sum_address_p): Likewise. + (rs6000_legitimize_address): Do not apply the TLS processing to + Darwin. + * config/rs6000/darwin.md (@machopic_high_): New. + (@machopic_low_): New. + * config/rs6000/predicates.md (macho_pic_address): New. + + 2022-05-29 Iain Sandoe + + PR target/80556 + * config/darwin-driver.c (darwin_driver_init): Handle exported + symbols and symbol lists (suppress automatic export of the TLS + symbols). + * config/darwin.c (darwin_rename_builtins): Remove workaround. + * config/darwin.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise. + (REAL_LIBGCC_SPEC): Handle revised library uses. + * config/darwin.opt (nodefaultexport): New. + * config/i386/darwin.h (PR80556_WORKAROUND): Remove. + * config/i386/darwin32-biarch.h (PR80556_WORKAROUND): Likewise. + * config/i386/darwin64-biarch.h (PR80556_WORKAROUND): Likewise. + + 2022-05-29 Iain Sandoe + + * config/darwin-driver.c (darwin_driver_init): Revise comments, handle + filelist and framework options in specs instead of code. Exit from the + option handling early if the command line is definitely enpty. + * config/darwin.h (SUBTARGET_DRIVER_SELF_SPECS): Update to handle link + specs that are really driver ones. Remove setting for the default content + of weak_reference_mismatches + (DARWIN_CC1_SPEC): Likewise. + (CPP_SPEC): Likewise. + (SYSROOT_SPEC): Append space. + (LINK_SYSROOT_SPEC): Remove most driver link specs. + (STANDARD_STARTFILE_PREFIX_2): Update link-related specs. + (STARTFILE_SPEC): Likewise. + (ASM_MMACOSX_VERSION_MIN_SPEC): Fix line wrap. + (ASM_SPEC): Update driver-related specs. + (ASM_FINAL_SPEC): Likewise. + (LINK_COMMAND_SPEC_A): Update 'r' handling to skip gomp and itm when r + or nodefaultlibs is given. + (DSYMUTIL_SPEC): Do not call dsymutil for '-r' link lines. + Update ordering of exclusions, remove duplicate 'v' addition + (collect2 will add this from the main command line). + * config/darwin.opt: Remove now unused option aliases. + * config/i386/darwin.h (EXTRA_ASM_OPTS): Ensure space after opt. + (ASM_SPEC): Update driver-related specs. + + 2022-05-29 Iain Sandoe + + Backported from master: + 2021-09-19 Iain Sandoe + + * config/darwin.h (LINK_COMMAND_SPEC_A): Use Darwin10 + unwinder shim as a convenience library. + + 2022-05-29 Iain Sandoe + + Backported from master: + 2021-10-13 Iain Sandoe + + * collect2.c (is_lto_object_file): Release simple-object + resources, close files. + + 2022-05-29 Iain Sandoe + + Backported from master: + 2021-11-05 Iain Sandoe + + * config/darwin.h (ASM_GENERATE_INTERNAL_LABEL): Add LTRAMP + to the list of symbol prefixes that must be made linker- + visible. + + 2022-05-29 Iain Sandoe + + Backported from master: + 2021-08-27 Iain Sandoe + + * config/darwin.c (finalize_ctors): Add a section-start linker- + visible symbol. + (finalize_dtors): Likewise. + * config/darwin.h (MIN_LD64_INIT_TERM_START_LABELS): New. + + 2022-05-29 Iain Sandoe + + Backported from master: + 2021-08-17 Iain Sandoe + + * config/darwin.c (darwin_file_end): Reset and reclaim the + section names table at the end of compile. + + 2022-05-29 Iain Sandoe + + Backported from master: + 2021-01-02 Iain Sandoe + + * config/darwin.h (MIN_LD64_NO_COAL_SECTS): Adjust. + Amend handling for LD64_VERSION fallback defaults. + + 2022-05-29 Iain Sandoe + + * configure.ac: Handle --with-dsymutil in the same way as we + do for the assembler and linker. (DEFAULT_DSYMUTIL): New. + Extract the type and version for the dsymutil configured or + found by the default searches. + * config.in: Regenerated. + * configure: Regenerated. + * collect2.c (do_dsymutil): Handle locating dsymutil in the + same way as for the assembler and linker. + * config/darwin.h (DSYMUTIL): Delete. + * gcc.c: Report a configured dsymutil correctly. + * exec-tool.in: Allow for dsymutil. + * doc/install.texi: Document --with-dsymutil. + + 2022-05-29 Iain Sandoe + + Backported from master: + 2021-09-28 Iain Sandoe + + * config/rs6000/darwin.h (FIXED_R13): Add for PPC64. + (FIRST_SAVED_GP_REGNO): Save from R13 even when it is one + of the fixed regs. + + 2022-05-29 François-Xavier Coudert + + Backported from master: + 2021-12-18 François-Xavier Coudert + + * config/darwin-driver.c: Make version code more future-proof. + * config.gcc: Homogeneize darwin versions. + * configure.ac: Homogeneize darwin versions. + * configure: Regenerate. + + 2022-05-29 Saagar Jha + + Backported from master: + 2021-10-27 Saagar Jha + + * config.gcc: Adjust for Darwin21. + * config/darwin-c.c (macosx_version_as_macro): Likewise. + * config/darwin-driver.c (validate_macosx_version_min): + Likewise. + (darwin_find_version_from_kernel): Likewise. + + 2022-05-29 Iain Sandoe + + Backported from master: + 2021-08-17 Iain Sandoe + + PR target/100340 + * config.in: Regenerate. + * config/i386/darwin.h (EXTRA_ASM_OPTS): New + (ASM_SPEC): Pass options to disable branch shortening where + needed. + * configure: Regenerate. + * configure.ac: Detect versions of 'as' that support the + optimisation which has the bug. + + 2022-05-29 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(). + + 2022-05-27 Richard Biener + + Backported from master: + 2022-04-13 Richard Biener + + PR tree-optimization/105250 + * fold-const.c (fold_convertible_p): Revert + r12-7979-geaaf77dd85c333, instead check for size equality + of the vector types involved. + + 2022-05-27 Richard Biener + + Backported from master: + 2022-04-04 Richard Biener + + PR middle-end/105140 + * fold-const.c (fold_convertible_p): Allow a TYPE_P arg. + + 2022-05-27 Richard Biener + + Backported from master: + 2022-04-06 Richard Biener + + PR tree-optimization/105163 + * tree-ssa-reassoc.c (repropagate_negates): Avoid propagating + negated abnormals. + + 2022-05-27 Richard Biener + + Backported from master: + 2022-04-06 Richard Biener + + PR tree-optimization/105173 + * tree-ssa-reassoc.c (find_insert_point): Get extra + insert_before output argument and compute it. + (insert_stmt_before_use): Adjust. + (rewrite_expr_tree): Likewise. + + 2022-05-27 Richard Biener + + Backported from master: + 2022-04-29 Richard Biener + + PR tree-optimization/105431 + * tree-ssa-math-opts.c (powi_as_mults_1): Make n unsigned. + (powi_as_mults): Use absu_hwi. + (gimple_expand_builtin_powi): Remove now pointless n != -n + check. + + 2022-05-27 Richard Biener + + Backported from master: + 2022-04-25 Richard Biener + + PR tree-optimization/105368 + * tree-ssa-math-opts.c (powi_cost): Use absu_hwi. + + 2022-05-27 Richard Biener + + Backported from master: + 2022-05-11 Richard Biener + + PR rtl-optimization/105559 + * cfgrtl.c (delete_insn_and_edges): Only perform search to BB_END + for non-debug insns. + + 2022-05-23 Paul A. Clarke + + PR target/104257 + * config/rs6000/bmi2intrin.h: Uglify local variables. + * config/rs6000/emmintrin.h: Likewise. + * config/rs6000/mm_malloc.h: Likewise. + * config/rs6000/mmintrin.h: Likewise. + * config/rs6000/pmmintrin.h: Likewise. + * config/rs6000/tmmintrin.h: Likewise. + * config/rs6000/xmmintrin.h: Likewise. + + 2022-05-16 Sebastian Pop + + PR target/105162 + * config/aarch64/aarch64-protos.h (atomic_ool_names): Increase dimension + of str array. + * config/aarch64/aarch64.c (aarch64_atomic_ool_func): Call + memmodel_from_int and handle MEMMODEL_SYNC_*. + (DEF0): Add __aarch64_*_sync functions. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-04-27 Jakub Jelinek + + PR sanitizer/105396 + * asan.c (asan_redzone_buffer::emit_redzone_byte): Handle the case + where offset is bigger than off but smaller than m_prev_offset + 32 + bits by pushing one or more 0 bytes. Sink the + m_shadow_bytes.safe_push (value); flush_if_full (); statements from + all cases to the end of the function. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-04-22 Jakub Jelinek + + PR rtl-optimization/105333 + * rtlanal.c (replace_rtx): Use simplify_subreg or + simplify_unary_operation if CONST_SCALAR_INT_P rather than just + CONST_INT_P. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-04-19 Jakub Jelinek + + PR target/105257 + * config/sparc/sparc.c (epilogue_renumber): If ORIGINAL_REGNO, + use gen_raw_REG instead of gen_rtx_REG and copy over also + ORIGINAL_REGNO. Use return 0; instead of /* fallthrough */. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-04-12 Jakub Jelinek + + PR target/105214 + * config/i386/i386-expand.c (ix86_emit_i387_log1p): Call + do_pending_stack_adjust. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-04-12 Jakub Jelinek + + PR rtl-optimization/105211 + * builtins.c (expand_builtin_int_roundingfn_2): If mathfn_built_in_1 + fails for TREE_TYPE (arg), retry it with + TREE_VALUE (TYPE_ARG_TYPES (TREE_TYPE (fndecl))) and if even that + fails, emit call normally. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-04-08 Jakub Jelinek + + PR tree-optimization/105189 + * fold-const.c (make_range_step): Fix up handling of + (unsigned) x +[low, -] ranges for signed x if low fits into + typeof (x). + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-04-06 Jakub Jelinek + + PR rtl-optimization/104985 + * combine.c (struct undo): Add where.regno member. + (do_SUBST_MODE): Rename to ... + (subst_mode): ... this. Change first argument from rtx * into int, + operate on regno_reg_rtx[regno] and save regno into where.regno. + (SUBST_MODE): Remove. + (try_combine): Use subst_mode instead of SUBST_MODE, change first + argument from regno_reg_rtx[whatever] to whatever. For UNDO_MODE, use + regno_reg_rtx[undo->where.regno] instead of *undo->where.r. + (undo_to_marker): For UNDO_MODE, use regno_reg_rtx[undo->where.regno] + instead of *undo->where.r. + (simplify_set): Use subst_mode instead of SUBST_MODE, change first + argument from regno_reg_rtx[whatever] to whatever. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-04-03 Jakub Jelinek + + PR target/105123 + * config/i386/i386-expand.c (ix86_expand_vector_init_general): Avoid + using word as target for expand_simple_binop when doing ASHIFT and + IOR. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-03-30 Jakub Jelinek + + PR sanitizer/105093 + * ubsan.c (instrument_object_size): If t is equal to inner and + is a decl other than global var, punt. When emitting call to + UBSAN_OBJECT_SIZE ifn, make sure base is addressable. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-03-30 Jakub Jelinek + + PR tree-optimization/105094 + * gimple-ssa-store-merging.c (mem_valid_for_store_merging): Punt if + bitsize <= 0 rather than just == 0. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-03-19 Jakub Jelinek + + PR middle-end/104971 + * config/i386/i386-expand.c + (ix86_expand_builtin) : If ignore, + don't push/pop anything and just return const0_rtx. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-03-16 Jakub Jelinek + + PR target/104910 + * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Copy + imm rtx. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-03-15 Jakub Jelinek + + PR rtl-optimization/104814 + * ifcvt.c (find_if_case_1, find_if_case_2): Punt if test_bb doesn't + end with onlyjump_p. Assume BB_END (test_bb) is always non-NULL. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-03-09 Jakub Jelinek + + PR c/104711 + * doc/invoke.texi (-Wextra): Document that -Wshift-negative-value + is enabled by it only for C++11 to C++17 rather than for C++03 or + later. + (-Wshift-negative-value): Similarly (except here we stated + that it is enabled for C++11 or later). + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-03-07 Jakub Jelinek + + PR target/104775 + * config/s390/s390.md (*cmp_and_trap_unsigned_int): Use + S constraint instead of T in the last alternative. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-02-25 Jakub Jelinek + Marc Glisse + + PR tree-optimization/104675 + * match.pd (t * 2U / 2 -> t & (~0 / 2), t / 2U * 2 -> t & ~1): + Restrict simplifications to INTEGRAL_TYPE_P. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-02-25 Jakub Jelinek + + PR target/104681 + * config/rs6000/vector.md (movmisalign): Use rs6000_emit_move. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-02-25 Jakub Jelinek + + PR tree-optimization/104675 + * match.pd (-A - 1 -> ~A, -1 - A -> ~A): Don't simplify for + COMPLEX_TYPE. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-02-19 Jakub Jelinek + + PR sanitizer/102656 + * asan.c (instrument_derefs): If inner is a RESULT_DECL and access is + known to be within bounds, treat it like automatic variables. + If instrumenting access and inner is {VAR,PARM,RESULT}_DECL from + current function and !TREE_STATIC which is not TREE_ADDRESSABLE, mark + it addressable. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-02-17 Jakub Jelinek + + PR debug/104557 + * valtrack.c (debug_lowpart_subreg): Don't call gen_rtx_raw_SUBREG + if expr has VOIDmode. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-02-16 Jakub Jelinek + + PR rtl-optimization/104544 + * combine.c (try_combine): When looking for insn whose links + should be updated from i3 to i2, don't stop on debug insns, instead + skip over them. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-02-15 Jakub Jelinek + + PR debug/104517 + * omp-low.c (task_cpyfns): New variable. + (delete_omp_context): Don't call finalize_task_copyfn from here. + (create_task_copyfn): Push task_stmt into task_cpyfns. + (execute_lower_omp): Call finalize_task_copyfn here on entries from + task_cpyfns vector and release the vector. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-02-12 Jakub Jelinek + + PR sanitizer/104449 + * asan.c: Include tree-eh.h. + (handle_builtin_alloca): Handle the case when __builtin_alloca or + __builtin_alloca_with_align can throw. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-02-12 Jakub Jelinek + + PR target/104502 + * config/i386/i386.md (cvtsd2ss splitter): If operands[1] is xmm16+ + and AVX512VL isn't available, move operands[1] to operands[0] first. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-02-11 Jakub Jelinek + + PR middle-end/104446 + * combine.c (subst): Don't substitute CONST_INTs into RTX_AUTOINC + operands. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-02-08 Jakub Jelinek + + PR target/102140 + * config/rs6000/rs6000.c (vspltis_shifted): Return false also if + split1 pass has finished already. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-01-28 Jakub Jelinek + + PR tree-optimization/104263 + * gimple-ssa-store-merging.c (get_status_for_store_merging): For + cfun->can_throw_non_call_exceptions && cfun->eh test whether + last non-debug stmt in the bb is store_valid_for_store_merging_p + rather than last stmt. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-01-21 Jakub Jelinek + + PR rtl-optimization/102478 + * optabs.c (prepare_cmp_insn): If !can_create_pseudo_p (), don't + force_reg constants and for -fnon-call-exceptions fail if copy_to_reg + would be needed. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-01-19 Jakub Jelinek + + PR middle-end/102860 + * match.pd (x %[fl] y -> x % y): New simplification for + unsigned integral types. + * optabs-tree.c (optab_for_tree_code): Return unknown_optab + for {CEIL,FLOOR,ROUND}_{DIV,MOD}_EXPR with VECTOR_TYPE. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-01-06 Jakub Jelinek + + PR rtl-optimization/103908 + * ifcvt.c (bb_valid_for_noce_process_p): Punt on bbs ending with + asm goto. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-12-30 Jakub Jelinek + + PR rtl-optimization/103860 + * shrink-wrap.c (try_shrink_wrapping): Make sure can_get_prologue is + called on pro even if nothing further is pushed into vec. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-12-28 Jakub Jelinek + + PR rtl-optimization/103837 + * loop-invariant.c (can_move_invariant_reg): Ignore DEBUG_INSNs in + the decisions whether to return false or continue and right before + returning true reset those debug insns that previously caused + returning false. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-11-27 Jakub Jelinek + + PR tree-optimization/103435 + * gimple-ssa-store-merging.c (find_bswap_or_nop_finalize): Avoid UB if + n->range - rsize == 8, just clear both *cmpnop and *cmpxchg in that + case. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-11-24 Jakub Jelinek + + PR middle-end/103384 + * omp-general.c (omp_context_selector_matches): For ACCEL_COMPILER, + return 0 for kind(host) and continue for kind(nohost). + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-11-23 Jakub Jelinek + + PR middle-end/102431 + * gimplify.c (replace_reduction_placeholders): Remove. + (note_no_context_vars): New function. + (gimplify_omp_loop): For OMP_PARALLEL's BIND_EXPR create a new + BLOCK. Use copy_tree_body_r with walk_tree instead of unshare_expr + and replace_reduction_placeholders for duplication of + OMP_CLAUSE_REDUCTION_{INIT,MERGE} expressions. Ensure all mentioned + automatic vars have DECL_CONTEXT set to non-NULL before doing so + and reset it afterwards for those vars and their corresponding + vars. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-11-17 Jakub Jelinek + + PR tree-optimization/103192 + * tree-ssa-loop-im.c (move_computations_worker): Use + reset_flow_sensitive_info instead of manually clearing + SSA_NAME_RANGE_INFO and do it for all SSA_NAMEs, not just ones + with integral types. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-11-15 Jakub Jelinek + + PR target/103205 + * config/i386/sync.md (atomic_bit_test_and_set, + atomic_bit_test_and_complement, + atomic_bit_test_and_reset): Use OPTAB_WIDEN instead of + OPTAB_DIRECT. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-11-11 Jakub Jelinek + + PR debug/101378 + * dwarf2out.c (field_byte_offset): Do the PCC_BITFIELD_TYPE_MATTERS + handling only for DECL_BIT_FIELD_TYPE decls. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-10-10 Jakub Jelinek + + PR debug/102441 + * var-tracking.c (add_stores): For cselib_sp_derived_value_p values + use MO_VAL_SET if loc is not sp. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-09-28 Jakub Jelinek + + PR target/102498 + * config/i386/i386.c (standard_80387_constant_p): Don't recognize + special 80387 instruction XFmode constants if flag_rounding_math. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-09-15 Jakub Jelinek + + PR c++/88578 + PR c++/102295 + * varasm.c (output_constructor_regular_field): Instead of assertion + that array_size_for_constructor result is equal to size of + TREE_TYPE (local->val) in bytes, assert that the type size is greater + or equal to array_size_for_constructor result and use type size as + fieldsize. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-09-08 Jakub Jelinek + + PR target/102224 + * config/i386/i386.md (xorsign3): If operands[1] is equal to + operands[2], emit abs2 instead. + (@xorsign3_1): Add early-clobber for output operand. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-08-23 Jakub Jelinek + + PR debug/101905 + * dwarf2out.c (gen_variable_die): Add DW_AT_location for global + register variables already during early_dwarf if possible. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-07-28 Jakub Jelinek + + PR middle-end/101624 + * ubsan.c (maybe_instrument_pointer_overflow, + instrument_object_size): Only test DECL_REGISTER on VAR_DECLs, + PARM_DECLs or RESULT_DECLs. + * sanopt.c (maybe_optimize_ubsan_ptr_ifn): Likewise. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-07-23 Jakub Jelinek + + PR rtl-optimization/101562 + * expmed.c (store_integral_bit_field): Only use movstrict_optab + if the operand isn't paradoxical. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-07-21 Jakub Jelinek + + PR middle-end/101535 + * gimplify.c (omp_check_private): Properly skip ORT_TARGET_DATA + contexts in which decl isn't privatized and for ORT_TARGET return + false if decl is mapped. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-07-20 Jakub Jelinek + + PR target/101384 + * config/rs6000/rs6000.c (vspltis_constant): Accept EASY_VECTOR_MSB + only if step and copies are equal to 1. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-07-01 Jakub Jelinek + + PR middle-end/94366 + * omp-low.c (lower_rec_input_clauses): Rename is_fp_and_or to + is_truth_op, set it for TRUTH_*IF_EXPR regardless of new_var's type, + use boolean_type_node instead of integer_type_node as NE_EXPR type. + (lower_reduction_clauses): Likewise. + + 2022-05-10 Tobias Burnus + + Backported from master: + 2021-05-04 Tobias Burnus + + * omp-low.c (lower_rec_input_clauses, lower_reduction_clauses): Handle + && and || with floating-point and complex arguments. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-07-14 Jakub Jelinek + + PR go/101407 + * godump.c (godump_str_hash): New type. + (godump_container::pot_dummy_types): Use string_hash instead of + ptr_hash in the hash_set. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-07-01 Jakub Jelinek + + PR debug/101266 + * dwarf2out.c (loc_list_from_tree_1): Handle COMPOUND_LITERAL_EXPR. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-06-29 Jakub Jelinek + + PR c++/101210 + * match.pd ((intptr_t)x eq/ne CST to x eq/ne (typeof x) CST): Don't + perform the optimization in GENERIC when sanitizing and x has a + reference type. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-06-23 Jakub Jelinek + + PR middle-end/101167 + * omp-low.c (lower_omp_regimplify_p): Regimplify also PARM_DECLs + and RESULT_DECLs that have DECL_HAS_VALUE_EXPR_P set. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-06-21 Jakub Jelinek + + PR inline-asm/100785 + * cfgexpand.c (expand_asm_stmt): If errors are emitted, + remove all inputs, outputs and clobbers from the asm and + set template to "". + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-06-18 Jakub Jelinek + + PR middle-end/101062 + * stor-layout.c (finish_bitfield_layout): Don't add bitfield + representatives in QUAL_UNION_TYPE. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-06-16 Jakub Jelinek + + PR middle-end/101062 + * stor-layout.c (finish_bitfield_representative): For fields in unions + assume nextf is always NULL. + (finish_bitfield_layout): Compute bit field representatives also in + unions, but handle it as if each bitfield was the only field in the + aggregate. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-06-15 Jakub Jelinek + + PR target/101046 + * expr.c (expand_expr_real_2) : Clear subtarget when changing mode. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-06-11 Jakub Jelinek + + PR rtl-optimization/101008 + * simplify-rtx.c (relational_result): New function. + (simplify_logical_relational_operation, + simplify_relational_operation): Use it. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-06-07 Jakub Jelinek + + PR target/100887 + * fold-const.c (fold_read_from_vector): Return NULL if trying to + read from a CONSTRUCTOR with vector type elements. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-06-07 Jakub Jelinek + + PR middle-end/100898 + * tree-inline.c (copy_bb): Only use gimple_call_arg_ptr if memcpy + should copy any arguments. Don't call gimple_call_num_args + on id->call_stmt or call_stmt more than once. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-06-04 Jakub Jelinek + + PR target/100887 + * config/i386/i386-expand.c (ix86_expand_vector_init): Handle + concatenation from half-sized modes with TImode elements. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-05-18 Jakub Jelinek + + PR c++/100580 + * function.c (push_dummy_function): Set DECL_ARTIFICIAL and + DECL_ASSEMBLER_NAME on the fn_decl. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-05-15 Jakub Jelinek + + PR rtl-optimization/100342 + * regcprop.c (copy_value): When copying a source reg in a wider + mode than it has recorded for the value, adjust recorded destination + mode too or punt if !REG_CAN_CHANGE_MODE_P. + + 2022-05-10 liuhongt + + Backported from master: + 2021-01-21 liuhongt + + PR rtl-optimization/98694 + * regcprop.c (copy_value): If SRC had been assigned a mode + narrower than the copy, we can't link DEST into the chain even + they have same hard_regno_nregs(i.e. HImode/SImode in i386 + backend). + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-05-12 Jakub Jelinek + + PR middle-end/100508 + * cfgexpand.c (expand_debug_expr): For DEBUG_EXPR_DECL with vector + type, don't reuse DECL_RTL if it has different mode, instead force + creation of a new DEBUG_EXPR. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-05-11 Jakub Jelinek + + PR middle-end/100471 + * omp-low.c (lower_omp_task_reductions): For OMP_TASKLOOP, if data + is 0, bypass the reduction loop including + GOMP_taskgroup_reduction_unregister call. + + 2022-05-10 Eric Botcazou + + PR target/105292 + * config/sparc/sparc.c (sparc_vectorize_vec_perm_const): Return + true only for 8-byte vector modes. + + 2022-05-06 Michael Meissner + + Backported from master: + 2022-05-06 Michael Meissner + + PR target/102059 + * config/rs6000/rs6000.c (rs6000_can_inline_p): Ignore -mpower8-fusion + option for inlining purposes. + + 2022-05-06 Richard Biener + + Backported from master: + 2022-04-08 Richard Biener + + PR tree-optimization/105198 + * tree-predcom.c (find_looparound_phi): Check whether + the found memory location of the entry value is clobbered + inbetween the value we want to use and loop entry. + + 2022-05-06 Richard Biener + + Backported from master: + 2022-02-07 Richard Biener + + PR middle-end/104402 + * gimple-expr.c (is_gimple_condexpr): _Complex typed + compares are not valid. + * tree-cfg.c (verify_gimple_assign_ternary): For COND_EXPR + check is_gimple_condexpr. + + 2022-04-27 Hongyu Wang + + Backported from master: + 2022-04-25 Hongyu Wang + + PR target/105339 + * config/i386/avx512fintrin.h (_mm512_scalef_round_pd): + Add parentheses for parameters and djust format. + (_mm512_mask_scalef_round_pd): Ditto. + (_mm512_maskz_scalef_round_pd): Ditto. + (_mm512_scalef_round_ps): Ditto. + (_mm512_mask_scalef_round_ps): Ditto. + (_mm512_maskz_scalef_round_ps): Ditto. + (_mm_scalef_round_sd): Use _mm_undefined_pd. + (_mm_scalef_round_ss): Use _mm_undefined_ps. + (_mm_mask_scalef_round_sd): New macro. + (_mm_mask_scalef_round_ss): Ditto. + (_mm_maskz_scalef_round_sd): Ditto. + (_mm_maskz_scalef_round_ss): Ditto. + + 2022-04-21 Richard Biener + + Backported from master: + 2022-01-20 Richard Biener + + PR middle-end/100786 + * gimple-fold.c (get_symbol_constant_value): Only return + values of compatible type to the symbol. + + 2022-04-21 Richard Biener + + Backported from master: + 2021-11-23 Richard Biener + + PR tree-optimization/103361 + * gimple-loop-jam.c (adjust_unroll_factor): Use lambda_int + for the dependence distance. + * tree-data-ref.c (print_lambda_vector): Properly print a lambda_int. + + 2022-04-21 Richard Biener + + Backported from master: + 2021-12-07 Richard Biener + + PR tree-optimization/103596 + * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt): + Note we are not propagating into a PHI argument to may_propagate_copy. + * tree-ssa-propagate.h (may_propagate_copy): Add + argument specifying whether we propagate into a PHI arg. + * tree-ssa-propagate.c (may_propagate_copy): Likewise. + When not doing so we can replace an abnormal with + something else. + (may_propagate_into_stmt): Update may_propagate_copy calls. + (replace_exp_1): Move propagation checking code to + propagate_value and rename to ... + (replace_exp): ... this and elide previous wrapper. + (propagate_value): Perform checking with adjusted + may_propagate_copy call and dispatch to replace_exp. + + 2022-04-21 Richard Biener + + Backported from master: + 2022-02-03 Richard Biener + + PR debug/104337 + * tree-nrv.c (pass_nrv::execute): Remove tieing result and found + together via DECL_ABSTRACT_ORIGIN. + + 2022-04-21 Richard Biener + + Backported from master: + 2022-03-09 Richard Biener + + PR middle-end/104786 + * cfgexpand.c (expand_asm_stmt): Do not generate a copy + for VLAs without an upper size bound. + + 2022-04-21 Richard Biener + + Backported from master: + 2022-04-12 Richard Biener + + PR tree-optimization/105226 + * tree-vect-loop-manip.c (vect_loop_versioning): Verify + we can split the exit of an outer loop we choose to version. + + 2022-04-21 Richard Biener + + Backported from master: + 2022-03-28 Richard Biener + + PR tree-optimization/105070 + * tree-switch-conversion.h + (bit_test_cluster::hoist_edge_and_branch_if_true): Add location + argument. + * tree-switch-conversion.c + (bit_test_cluster::hoist_edge_and_branch_if_true): Annotate + cond with location. + (bit_test_cluster::emit): Annotate all generated expressions + with location. + + 2022-04-05 Martin Jambor + + Backported from master: + 2022-03-31 Martin Jambor + + PR ipa/103083 + * ipa-prop.h (ipa_ancestor_jf_data): New flag keep_null; + (ipa_get_jf_ancestor_keep_null): New function. + * ipa-prop.c (ipa_set_ancestor_jf): Initialize keep_null field of the + ancestor function. + (compute_complex_assign_jump_func): Pass false to keep_null + parameter of ipa_set_ancestor_jf. + (compute_complex_ancestor_jump_func): Pass true to keep_null + parameter of ipa_set_ancestor_jf. + (update_jump_functions_after_inlining): Carry over keep_null from the + original ancestor jump-function or merge them. + (ipa_write_jump_function): Stream keep_null flag. + (ipa_read_jump_function): Likewise. + (ipa_print_node_jump_functions_for_edge): Print the new flag. + * ipa-cp.c (class ipcp_bits_lattice): Make various getters const. New + member function known_nonzero_p. + (ipcp_bits_lattice::known_nonzero_p): New. + (ipcp_bits_lattice::meet_with_1): New parameter drop_all_ones, + observe it. + (ipcp_bits_lattice::meet_with): Likewise. + (propagate_bits_across_jump_function): Simplify. Pass true in + drop_all_ones when it is necessary. + (propagate_aggs_across_jump_function): Take care of keep_null + flag. + (ipa_get_jf_ancestor_result): Propagate NULL accross keep_null + jump functions. + + 2022-03-26 H.J. Lu + + Backported from master: + 2022-03-26 H.J. Lu + + PR target/105052 + * config/i386/sse.md (ssse3_phwv4hi3): + Replace "Yv" with "x". + (ssse3_phdv2si3): Likewise. + (ssse3_psign3): Likewise. + + 2022-03-18 Peter Bergner + + Backported from master: + 2022-03-04 Peter Bergner + + PR target/87496 + PR target/104208 + * config/rs6000/rs6000.c (rs6000_option_override_internal): Make the + ISA 2.06 requirement for -mabi=ieeelongdouble conditional on + -mlong-double-128. + Move the -mabi=ieeelongdouble and -mabi=ibmlongdouble error checking + from here... + * common/config/rs6000/rs6000-common.c (rs6000_handle_option): + ... to here. + + 2022-03-16 Richard Biener + + Backported from master: + 2022-02-09 Richard Biener + + PR target/104453 + * config/i386/i386.c (ix86_gimple_fold_builtin): Guard shift + folding for NULL LHS. + + 2022-03-16 Richard Biener + + Backported from master: + 2022-02-14 Richard Biener + + PR tree-optimization/104511 + * tree-ssa-forwprop.c (simplify_vector_constructor): Avoid + touching DFP <-> FP conversions. + + 2022-03-16 Richard Biener + + Backported from master: + 2022-01-20 Richard Biener + + PR target/100784 + * config/i386/i386.c (ix86_gimple_fold_builtin): Check for + LHS before folding __builtin_ia32_shufpd and friends. + + 2022-03-12 Michael Meissner + + PR target/99708 + * config/rs6000/rs6000-c.c: Revert 2022-03-05 patch. + + 2022-03-06 Michael Meissner + + PR target/104253 + * config/rs6000/rs6000.c (init_float128_ibm): Update the + conversion functions used to convert IFmode types. Backport + change made to the master branch on 2022-02-14. + + 2022-03-06 Michael Meissner + + PR target/99708 + * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define + __SIZEOF_IBM128__ if the IBM 128-bit long double type is created. + Define __SIZEOF_FLOAT128__ if the IEEE 128-bit floating point type + is created. Backport change to master branch on 2022-02-17. + + 2022-02-17 Richard Biener + + Backported from master: + 2021-11-15 Richard Biener + + PR tree-optimization/103237 + * tree-vect-loop.c (vect_is_simple_reduction): Fail for + double reductions with multiple inner loop LC PHI nodes. + + 2022-02-17 Richard Biener + + Backported from master: + 2021-11-22 Richard Biener + + PR middle-end/103181 + PR middle-end/103248 + * tree-eh.c (operation_could_trap_helper_p): Properly + check vector constants for a zero element for integer + division. Separate floating point and integer division code. + Properly handle fixed-point RDIV_EXPR. + + 2022-02-17 Richard Biener + + Backported from master: + 2021-11-08 Richard Biener + + PR tree-optimization/102798 + * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): + Only copy points-to info to newly generated SSA names. + + 2022-02-17 Richard Biener + + Backported from master: + 2021-10-15 Richard Biener + + PR ipa/102762 + * tree-inline.c (copy_bb): Avoid underflowing nargs. + + 2022-02-17 Richard Biener + + Backported from master: + 2021-06-08 Richard Biener + + PR tree-optimization/100923 + * tree-ssa-sccvn.c (valueize_refs_1): Take a pointer to + the operand vector to be valueized. + (valueize_refs): Likewise. + (valueize_shared_reference_ops_from_ref): Adjust. + (valueize_shared_reference_ops_from_call): Likewise. + (vn_reference_lookup_3): Likewise. + (vn_reference_lookup_pieces): Likewise. Re-valueize + with honoring availability when we are about to create + the ao_ref and valueized before. + (vn_reference_lookup): Likewise. + (vn_reference_insert_pieces): Adjust. + + 2022-02-17 Richard Biener + + Backported from master: + 2021-06-22 Richard Biener + + PR tree-optimization/101158 + * tree-vect-slp.c (vect_build_slp_tree_1): Move same operand + checking after checking for matching operation. + + 2022-02-15 Kewen Lin + + Backported from master: + 2022-02-07 Kewen Lin + + PR target/103627 + * config/rs6000/rs6000.c (rs6000_option_override_internal): Move the + hunk affecting VSX and ALTIVEC to appropriate place. + + 2022-02-15 Kewen Lin + + Backported from master: + 2022-02-07 Kewen Lin + + PR target/103627 + * config/rs6000/rs6000.c (rs6000_option_override_internal): Disable + MMA if !TARGET_VSX. + + 2022-02-14 Maciej W. Rozycki + + Backported from master: + 2022-02-08 Maciej W. Rozycki + + * config/riscv/t-riscv (riscv-sr.o): Add $(TM_H) dependency. + + 2022-02-13 Alan Modra + + Backported from master: + 2020-10-01 Alan Modra + + * config/rs6000/ppc-asm.h: Support __PCREL__ code. + + 2022-02-10 Uros Bizjak + + Backported from master: + 2022-02-10 Uroš Bizjak + + PR target/104469 + * config/i386/sse.md (vec_unpacks_float_lo_v4si): + Change operand 1 constraint to register_operand. + + 2022-02-09 Uroš Bizjak + + PR target/104458 + * config/i386/i386-expand.c (ix86_split_idivmod): + Force operands[2] and operands[3] into a register.. + + 2022-02-09 liuhongt + + PR target/104451 + * config/i386/sse.md (3): lowpart_subreg + operands[2] from SImode to QImode. + + 2022-02-03 Sebastian Huber + + PR target/104090 + * config/rs6000/rs6000.c (rs6000_machine_from_flags): Use also + rs6000_cpu. + + 2022-02-02 Xi Ruoyao + + Backported from master: + 2022-02-01 Xi Ruoyao + + PR middle-end/95115 + * fold-const.c (const_binop): Do not fold NaN result from + non-NaN operands. + + 2022-01-15 Peter Bergner + + Backported from master: + 2021-11-16 Peter Bergner + + PR target/102976 + * config/rs6000/mma.md (*vsx_assemble_pair): Add early-clobber for + output operand. + (*mma_assemble_acc): Likewise. + + 2022-01-15 Peter Bergner + + * config/rs6000/mma.md (UNSPEC_VSX_ASSEMBLE): New unspec. + (vsx_assemble_pair): Use mma_assemble_input_operand. + Expand into UNSPEC_VSX_ASSEMBLE wrapper. + (*vsx_assemble_pair): New define_insn_and_split. + * config/rs6000/rs6000.c (rs6000_split_multireg_move): Handle + UNSPEC_VSX_ASSEMBLE. + + 2022-01-15 Peter Bergner + + Backported from master: + 2021-09-14 Peter Bergner + + * config/rs6000/mma.md (unspecv): Add UNSPECV_MMA_XXSETACCZ. + (*movpxi): Remove 'O' alternative. + (mma_xxsetaccz): Change to define_insn. Use UNSPECV_MMA_XXSETACCZ. + Add comment. + * config/rs6000/rs6000.c (rs6000_rtx_costs): Handle UNSPEC_VOLATILE. + + 2022-01-14 Eric Botcazou + + * ipa-param-manipulation.c (ipa_dump_adjusted_parameters): Dump + reverse flag as "reverse" for the sake of consistency. + * ipa-sra.c: Fix copyright year. + (ipa_sra_function_summaries::duplicate): Copy the reverse flag. + (dump_isra_access): Tweak dump line. + (isra_write_node_summary): Write the reverse flag. + (isra_read_node_info): Read it. + (pull_accesses_from_callee): Test its consistency and copy it. + + 2022-01-12 Richard Biener + + Backported from master: + 2020-11-26 Richard Biener + + PR tree-optimization/97953 + * gimple-ssa-evrp-analyze.c + (evrp_range_analyzer::record_ranges_from_incoming_edge): Make + sure the condition post-dominates the SSA definition before + recording into SSA_NAME_RANGE_INFO. + + 2022-01-10 Eric Botcazou + + PR target/103465 + * coretypes.h (unwind_info_type): Swap UI_SEH and UI_TARGET. + + 2021-12-16 Martin Liska + + Backported from master: + 2021-12-15 Martin Liska + + PR target/103661 + * config/i386/i386-builtins.c (fold_builtin_cpu): Compare to 0 + as API expects that non-zero values are returned (do that + it mask == 31). + For "avx512vbmi2" argument, we return now 1 << 31, which is a + negative integer value. + + 2021-12-15 Kewen Lin + + Backported from master: + 2021-11-30 Kewen Lin + + PR target/102347 + * config/rs6000/rs6000-call.c (rs6000_builtin_decl): Remove builtin mask + check. + + 2021-12-01 Martin Jambor + + Backported from master: + 2021-11-30 Martin Jambor + + PR ipa/103267 + * ipa-sra.c (scan_function): Also check ECF_LOOPING_CONST_OR_PURE flag. + + 2021-11-30 Eric Botcazou + + PR target/103274 + * config/i386/i386.c (ix86_output_call_insn): Beef up comment about + nops emitted with SEH. + * config/i386/winnt.c (i386_pe_seh_unwind_emit): When switching to + the cold section, emit a nop before the directive if the previous + active instruction is a call. + + 2021-11-25 Jan Hubicka + + Backported from master: + 2021-11-20 Jan Hubicka + + PR ipa/103052 + * ipa-pure-const.c (propagate_pure_const): Fix merging of loping flag. + + 2021-11-23 Bill Schmidt + + PR target/101985 + * config/rs6000/altivec.h (vec_cpsgn): Swap operand order. + + 2021-11-22 Stefan Schulze Frielinghaus + + Backported from master: + 2021-11-19 Stefan Schulze Frielinghaus + + * config/s390/s390.md (define_peephole2): Variable insn points + to the first matched insn. Use peep2_next_insn(1) to refer to + the second matched insn. + + 2021-11-15 Kewen Lin + + Backported from master: + 2021-11-11 Kewen Lin + + * doc/invoke.texi: Change references to "future cpu" to "power10", + "-mcpu=future" to "-mcpu=power10". Adjust words for float128. + + 2021-11-09 Richard Biener + + Backported from master: + 2021-10-13 Richard Biener + + PR ipa/102714 + * ipa-sra.c (ptr_parm_has_nonarg_uses): Fix volatileness + check. + + 2021-11-09 Richard Biener + + Backported from master: + 2021-05-19 Richard Biener + + PR middle-end/100672 + * fold-const.c (fold_negate_expr_1): Use element_precision. + (negate_expr_p): Likewise. + + 2021-11-09 Richard Biener + + PR tree-optimization/100253 + * tree-vect-stmts.c (vectorizable_load): Do not assume + element alignment when DR_MISALIGNMENT is -1. + (vectorizable_store): Likewise. + + 2021-11-08 Kewen Lin + + Backported from master: + 2021-10-26 Kewen Lin + + PR tree-optimization/102789 + * tree-vect-loop-manip.c (vect_update_inits_of_drs): Do not + update inits of simd_lane_access. + + 2021-11-03 Vladimir N. Makarov + + PR rtl-optimization/102842 + * lra-constraints.c (match_reload): Ignore out in checking values + of outs. + (curr_insn_transform): Collect outputs before doing reloads of operands. + + 2021-11-02 Martin Jambor + + Backported from master: + 2021-10-21 Martin Jambor + + PR tree-optimization/102505 + * tree-sra.c (totally_scalarize_subtree): Check that the + encountered field fits within the acces we would like to put it + in. + + 2021-10-28 Eric Botcazou + + * doc/invoke.texi (%X): Remove obsolete reference to -Wl. + + 2021-10-27 Uroš Bizjak + + PR target/102761 + * config/i386/i386.c (ix86_print_operand_address): + Error out for non-address_operand asm operands. + + 2021-10-26 Piotr Kubaj + + Backported from master: + 2021-10-16 Piotr Kubaj + + * configure.ac: Treat powerpc64*-*-freebsd* the same as + powerpc64-*-freebsd*. + * configure: Regenerate. + + 2021-10-24 John David Anglin + + * config/pa/pa.md: Don't use 'G' constraint in integer move patterns. + + 2021-10-21 H.J. Lu + + Backported from master: + 2021-10-21 H.J. Lu + + PR target/98667 + * doc/invoke.texi: Document -fcf-protection requires i686 or + new. + + 2021-10-15 John David Anglin + + * config/pa/pa.md: Consistently use "rG" constraint for copy + instruction in move patterns. + + 2021-10-14 John David Anglin + + * config/pa/pa.md (cbranchsf4): Disable if TARGET_SOFT_FLOAT. + (cbranchdf4): Likewise. + Add missing move patterns for TARGET_SOFT_FLOAT. + + 2021-10-13 John David Anglin + + * config/pa/pa.md (muldi3): Add support for inlining 64-bit + multiplication on 32-bit PA 1.1 and 2.0 targets. + + 2021-10-13 Richard Biener + + Backported from master: + 2021-08-25 Richard Biener + + PR tree-optimization/102046 + * tree-vect-slp.c (vect_build_slp_tree_2): Conservatively + update ->any_pattern when swapping operands. + + 2021-10-13 Richard Biener + + Backported from master: + 2021-08-17 Richard Biener + + PR tree-optimization/101925 + * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Set + reverse on COMPONENT_REF and ARRAY_REF according to + what reverse_storage_order_for_component_p does. + (vn_reference_eq): Compare reversed on reference ops. + (reverse_storage_order_for_component_p): New overload. + (vn_reference_lookup_3): Check reverse_storage_order_for_component_p + on the reference looked up. + + 2021-10-13 Richard Biener + + Backported from master: + 2021-08-17 Richard Biener + + PR tree-optimization/101373 + PR tree-optimization/101868 + * tree-ssa-pre.c (prune_clobbered_mems): Also prune trapping + references when the BB may not return. + + 2021-10-13 Richard Biener + + Backported from master: + 2021-08-10 Richard Biener + + PR middle-end/101824 + * tree-nested.c (get_frame_field): Mark the COMPONENT_REF as + volatile in case the variable was. + + 2021-10-12 Eric Botcazou + + PR target/102588 + * config/sparc/sparc-modes.def (OI): New integer mode. + + 2021-10-11 Diane Meirowitz + + Backported from master: + 2021-10-11 Diane Meirowitz + + * doc/invoke.texi: Add link to UndefinedBehaviorSanitizer + documentation, mention UBSAN_OPTIONS, similar to what is done + for AddressSanitizer. + + 2021-10-11 Andrew Pinski + + PR tree-optimization/102622 + * tree-ssa-phiopt.c (conditional_replacement): Set neg + to false for one bit signed types. + + 2021-10-01 Eric Botcazou + + * explow.c: Include langhooks.h. + (set_stack_check_libfunc): Build a proper function type. + + 2021-10-01 Eric Botcazou + + PR c++/64697 + * config/i386/i386.c (legitimate_pic_address_disp_p): For PE-COFF do + not return true for external weak function symbols in medium model. + + 2021-09-22 Kewen Lin + + Backported from master: + 2021-09-22 Kewen Lin + + * ipa-fnsummary.c (inline_read_section): Unpack a dummy bit + to keep consistent with the side of streaming out. + + 2021-09-21 Segher Boessenkool + + Backported from master: + 2021-09-08 Segher Boessenkool + + PR target/102107 + * config/rs6000/rs6000-logue.c (rs6000_emit_epilogue): For ELFv2 use + r11 instead of r12 for restoring CR. + + 2021-09-21 Segher Boessenkool + + Backported from master: + 2021-09-03 Segher Boessenkool + + PR target/102107 + * config/rs6000/rs6000-logue.c (rs6000_emit_prologue): On ELFv2 use r11 + instead of r12 for CR save, in all cases. + + 2021-09-17 Eric Botcazou + + PR rtl-optimization/102306 + * combine.c (try_combine): Abort the combination if we are about to + duplicate volatile references. + + 2021-09-16 Daniel Cederman + + * config/sparc/sparc-opts.h (enum sparc_processor_type): Add LEON5 + * config/sparc/sparc.c (struct processor_costs): Add LEON5 costs + (leon5_adjust_cost): Increase cost of store with data dependency + on ALU instruction and FPU anti-dependencies. + (sparc_option_override): Add LEON5 costs + (sparc_adjust_cost): Add LEON5 cost adjustments + * config/sparc/sparc.h: Add LEON5 + * config/sparc/sparc.md: Include LEON5 scheduling information + * config/sparc/sparc.opt: Add LEON5 + * doc/invoke.texi: Add LEON5 + * config/sparc/leon5.md: New file. + + 2021-09-16 Daniel Cederman + + * config/sparc/sparc.md (stack_protect_setsi): Add NOP to prevent + sensitive sequence for B2BST errata workaround. + + 2021-09-16 Daniel Cederman + + * config/sparc/sparc.c (sparc_do_work_around_errata): Do not begin + functions with atomic instruction in the UT700 errata workaround. + + 2021-09-16 Daniel Cederman + + * config/sparc/sparc.c (next_active_non_empty_insn): New function + that returns next active non empty assembly instruction. + (sparc_do_work_around_errata): Use new function. + + 2021-09-16 Daniel Cederman + + * config/sparc/sparc.c (store_insn_p): Add predicate for store + attributes. + (load_insn_p): Add predicate for load attributes. + (sparc_do_work_around_errata): Use new predicates. + + 2021-09-16 Andreas Larsson + + * config/sparc/sparc.c (dump_target_flag_bits): Print bit names for + LEON and LEON3. + + 2021-09-14 Xionghu Luo + + Backported from master: + 2021-09-07 Xionghu Luo + + PR target/97142 + * config/rs6000/rs6000.md (fmod3): New define_expand. + (remainder3): Likewise. + + 2021-09-08 Jonathan Wakely + + Backported from master: + 2021-09-08 Jonathan Wakely + + PR c++/60318 + * doc/trouble.texi (Copy Assignment): Fix description of + behaviour and fix code in example. + + 2021-09-06 Richard Biener + + Backported from master: + 2021-07-12 Richard Biener + + PR tree-optimization/101394 + * tree-ssa-pre.c (do_pre_regular_insertion): Avoid inserting + copies from abnormals for a full redundancy. + + 2021-09-06 Richard Biener + + Backported from master: + 2021-07-05 Richard Biener + + PR middle-end/101291 + * cfgloopmanip.c (loop_version): Set the loop copy of the + versioned loop to the new loop. + + 2021-09-06 Richard Biener + + Backported from master: + 2021-07-07 Richard Biener + + PR tree-optimization/101173 + PR tree-optimization/101280 + * gimple-loop-interchange.cc + (tree_loop_interchange::valid_data_dependences): Properly + guard all dependence checks with DDR_REVERSED_P or its + inverse. + + 2021-09-06 Richard Biener + + Backported from master: + 2021-06-24 Richard Biener + + PR tree-optimization/101105 + * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): + Only ignore steps when they are equal or scalar order is preserved. + + 2021-09-06 Richard Biener + + Backported from master: + 2021-06-11 Richard Biener + + PR middle-end/101009 + * tree-data-ref.c (build_classic_dist_vector_1): Make sure + to set *init_b to true when we encounter a constant equal + index pair. + (compute_affine_dependence): Also dump the actual DR_REF. + + 2021-09-03 Peter Bergner + + Backported from master: + 2021-08-19 Peter Bergner + + PR target/101849 + * config/rs6000/rs6000-call.c (rs6000_gimple_fold_mma_builtin): Cast + pointer to __vector_pair *. + + 2021-09-03 Peter Bergner + + Backported from master: + 2021-07-07 Peter Bergner + + * config/rs6000/rs6000-call.c (mma_init_builtins): Use VSX_BUILTIN_LXVP + and VSX_BUILTIN_STXVP. + + 2021-09-03 Peter Bergner + + Backported from master: + 2021-07-02 Peter Bergner + + * config/rs6000/rs6000-builtin.def (BU_MMA_PAIR_LD, BU_MMA_PAIR_ST): + New macros. + (__builtin_vsx_lxvp, __builtin_vsx_stxvp): New built-ins. + * config/rs6000/rs6000-call.c (rs6000_gimple_fold_mma_builtin): Expand + lxvp and stxvp built-ins. + (mma_init_builtins): Handle lxvp and stxvp built-ins. + (builtin_function_type): Likewise. + * doc/extend.texi (__builtin_vsx_lxvp, __builtin_mma_stxvp): Document. + + 2021-09-03 Peter Bergner + + * config/rs6000/rs6000-call.c (mma_init_builtins): Test for + MMA_BUILTIN_DISASSEMBLE_ACC and VSX_BUILTIN_DISASSEMBLE_PAIR. + (rs6000_gimple_fold_mma_builtin): Likewise. + + 2021-08-31 Thomas Schwinge + + Backported from master: + 2021-08-31 Thomas Schwinge + + * tree.c (walk_tree_1) : Handle three operands. + + 2021-08-27 konglin1 + + PR target/101472 + * config/i386/sse.md: (scattersi): Add mask operand to + UNSPEC_VSIBADDR. + (scattersi): Likewise. + (*avx512f_scattersi): Merge mask operand to set_dest. + (*avx512f_scatterdi): Likewise + + 2021-08-25 konglin1 + + PR target/101471 + * config/i386/avx512dqintrin.h (_mm512_fpclass_ps_mask): Fix + macro define in O0. + (_mm512_mask_fpclass_ps_mask): Ditto. + + 2021-08-24 Richard Earnshaw + + Backported from master: + 2021-08-24 Richard Earnshaw + + PR target/102035 + * config/arm/arm.md (attribute arch): Add fix_vlldm. + (arch_enabled): Use it. + * config/arm/vfp.md (lazy_store_multiple_insn): Add alternative to + use when erratum mitigation is needed. + + 2021-08-24 Richard Earnshaw + + Backported from master: + 2021-08-24 Richard Earnshaw + + PR target/102035 + * config/arm/arm.opt (mfix-cmse-cve-2021-35465): New option. + * doc/invoke.texi (Arm Options): Document it. + * config/arm/arm-cpus.in (quirk_vlldm): New feature bit. + (ALL_QUIRKS): Add quirk_vlldm. + (cortex-m33): Add quirk_vlldm. + (cortex-m35p, cortex-m55): Likewise. + * config/arm/arm.c (arm_option_override): Enable fix_vlldm if + targetting an affected CPU and not explicitly controlled on + the command line. + + 2021-08-24 Richard Earnshaw + + Backported from master: + 2021-08-24 Richard Earnshaw + + * config/arm/vfp.md (lazy_store_multiple_insn): Rewrite as valid RTL. + (lazy_load_multiple_insn): Likewise. + + 2021-08-24 Richard Biener + + Backported from master: + 2021-08-23 Richard Biener + + PR ipa/97565 + * tree-ssa-structalias.c (ipa_pta_execute): Check in_other_partition + in addition to has_gimple_body. + + 2021-08-23 Richard Earnshaw + + Backported from master: + 2021-08-05 Richard Earnshaw + + PR target/101723 + * config/arm/arm-cpus.in (generic-armv7-a): Add quirk to suppress + writing .cpu directive in asm output. + * config/arm/arm.c (arm_identify_fpu_from_isa): New variable. + (arm_last_printed_arch_string): Delete. + (arm_last-printed_fpu_string): Delete. + (arm_configure_build_target): If use of floating-point/SIMD is + disabled, remove all fp/simd related features from the target ISA. + (last_arm_targ_options): New variable. + (arm_print_asm_arch_directives): Add new parameters. Change order + of emitted directives and handle all cases here. + (arm_file_start): Always call arm_print_asm_arch_directives, move + all generation of .arch/.arch_extension here. + (arm_file_end): Call arm_print_asm_arch. + (arm_declare_function_name): Call arm_print_asm_arch_directives + instead of printing .arch/.fpu directives directly. + + 2021-08-23 Richard Earnshaw + + Backported from master: + 2021-08-05 Richard Earnshaw + + * config/arm/arm.c (arm_configure_build_target): Don't call + arm_option_reconfigure_globals. + (arm_option_restore): Call arm_option_reconfigure_globals after + reconfiguring the target. + * config/arm/arm-c.c (arm_pragma_target_parse): Likewise. + + 2021-08-23 Richard Earnshaw + + Backported from master: + 2021-08-05 Richard Earnshaw + + * config/arm/arm.c (arm_configure_build_target): Ensure the target's + arch_name is always set. + + 2021-08-23 Christophe Lyon + + Backported from master: + 2021-08-23 Christophe Lyon + + * config/arm/arm_mve.h: Fix __arm_vctp16q return type. + + 2021-08-19 Richard Earnshaw + + Backported from master: + 2021-05-27 Richard Earnshaw + + PR target/100767 + * config/arm/arm.c (arm_configure_build_target): Remove parameter + opts_set, directly check opts parameters for being non-null. + (arm_option_restore): Update call to arm_configure_build_target. + (arm_option_override): Likewise. + (arm_can_inline_p): Likewise. + (arm_valid_target_attribute_tree): Likewise. + * config/arm/arm-c.c (arm_pragma_target_parse): Likewise. + * config/arm/arm-protos.h (arm_configure_build_target): Adjust + prototype. + + 2021-08-17 Richard Sandiford + + Backported from master: + 2021-08-03 Richard Sandiford + + * doc/invoke.texi: Document -mtune=neoverse-512tvb and + -mcpu=neoverse-512tvb. + * config/aarch64/aarch64-cores.def (neoverse-512tvb): New entry. + * config/aarch64/aarch64-tune.md: Regenerate. + + 2021-08-17 Richard Sandiford + + Backported from master: + 2021-04-28 Richard Sandiford + + PR target/100305 + * config/aarch64/constraints.md (Utq): Require the address to + be valid for both the element mode and for V2DImode. + + 2021-08-13 Martin Liska + + PR gcov-profile/100788 + * coverage.c (coverage_begin_function): Update function + beginning when #line macro is used. + + 2021-07-31 Xi Ruoyao + + Backported from master: + 2021-07-30 Xi Ruoyao + + PR target/94780 + * config/mips/mips.c (mips_atomic_assign_expand_fenv): Use + TARGET_EXPR instead of MODIFY_EXPR. + + 2021-07-28 Martin Sebor + + PR c/99295 + * doc/extend.texi (attribute malloc): Reword and clarify nonaliasing + property. + + 2021-07-20 Martin Jambor + + Backported from master: + 2021-07-08 Martin Jambor + + PR ipa/101066 + * ipa-sra.c (class isra_call_summary): New member + m_before_any_store, initialize it in the constructor. + (isra_call_summary::dump): Dump the new field. + (ipa_sra_call_summaries::duplicate): Copy it. + (process_scan_results): Set it. + (isra_write_edge_summary): Stream it. + (isra_read_edge_summary): Likewise. + (param_splitting_across_edge): Only override + safe_to_import_accesses if m_before_any_store is set. + + 2021-07-20 Uroš Bizjak + + PR target/100182 + * config/i386/sync.md (define_peephole2 atomic_storedi_fpu): + Remove. + (define_peephole2 atomic_loaddi_fpu): Ditto. + + 2021-07-19 Bill Schmidt + + PR target/101129 + * config/rs6000/rs6000-p8swap.c (has_part_mult): New. + (rs6000_analyze_swaps): Insns containing a subreg of a mult are + not swappable. + + 2021-07-19 Segher Boessenkool + + PR rtl-optimization/99927 + * combine.c (distribute_notes) [REG_UNUSED]: If the register already + is dead, just drop it. + + 2021-07-02 Eric Botcazou + + * config/i386/i386.c (asm_preferred_eh_data_format): Always use the + PIC encodings for PE-COFF targets. + + 2021-06-24 Uros Bizjak + + Backported from master: + 2021-06-23 Uroš Bizjak + + PR target/101175 + * config/i386/i386.md (bsr_rex64): Add zero-flag setting RTX. + (bsr): Ditto. + (*bsrhi): Remove. + (clz2): Update RTX pattern for additions. + + 2021-06-18 Srinath Parvathaneni + + Backported from master: + 2021-06-18 Srinath Parvathaneni + + PR target/100856 + * common/config/arm/arm-common.c (arm_canon_arch_option_1): New function + derived from arm_canon_arch. + (arm_canon_arch_option): Call it. + (arm_canon_arch_multilib_option): New function. + * config/arm/arm-cpus.in (IGNORE_FOR_MULTILIB): New fgroup. + * config/arm/arm.h (arm_canon_arch_multilib_option): New prototype. + (CANON_ARCH_MULTILIB_SPEC_FUNCTION): New macro. + (MULTILIB_ARCH_CANONICAL_SPECS): New macro. + (DRIVER_SELF_SPECS): Add MULTILIB_ARCH_CANONICAL_SPECS. + * config/arm/arm.opt (mlibarch): New option. + * config/arm/t-rmprofile (MULTILIB_MATCHES): For armv8*-m, replace use + of march on RHS with mlibarch. + + 2021-06-18 Srinath Parvathaneni + + Backported from master: + 2021-06-11 Srinath Parvathaneni + + PR target/101016 + * config/arm/arm_mve.h (__arm_vld1q): Change __ARM_mve_coerce(p0, + int8_t const *) to __ARM_mve_coerce1(p0, int8_t *) in the argument for + the polymorphic variants matching code. + (__arm_vld1q_z): Likewise. + (__arm_vld2q): Likewise. + (__arm_vld4q): Likewise. + (__arm_vldrbq_gather_offset): Likewise. + (__arm_vldrbq_gather_offset_z): Likewise. + + 2021-06-18 Peter Bergner + + Backported from master: + 2021-06-14 Peter Bergner + + PR target/100777 + * config/rs6000/rs6000-call.c (rs6000_gimple_fold_mma_builtin): Use + create_tmp_reg_or_ssa_name(). + + 2021-06-18 Peter Bergner + + Backported from master: + 2021-06-10 Peter Bergner + + * config/rs6000/rs6000-builtin.def (build_pair): New built-in. + (build_acc): Likewise. + * config/rs6000/rs6000-call.c (mma_expand_builtin): Swap assemble + source operands in little-endian mode. + (rs6000_gimple_fold_mma_builtin): Handle VSX_BUILTIN_BUILD_PAIR. + (mma_init_builtins): Likewise. + * config/rs6000/rs6000.c (rs6000_split_multireg_move): Handle endianness + ordering for the MMA assemble and build source operands. + * doc/extend.texi (__builtin_vsx_build_acc, __builtin_mma_build_pair): + Document. + (__builtin_mma_assemble_acc, __builtin_mma_assemble_pair): Remove + documentation. + + 2021-06-18 Peter Bergner + + Backported from master: + 2021-05-31 Peter Bergner + + PR target/99842 + * config/rs6000/predicates.md(mma_assemble_input_operand): Allow + indexed form addresses. + + 2021-06-17 Marius Hillenbrand + + Backported from master: + 2021-06-17 Marius Hillenbrand + + PR target/100871 + * config/s390/vecintrin.h (vec_doublee): Fix to use + __builtin_s390_vflls. + (vec_floate): Fix to use __builtin_s390_vflrd. + + 2021-06-16 Richard Biener + + Backported from master: + 2021-06-14 Richard Biener + + PR tree-optimization/100934 + * tree-ssa-dom.c (pass_dominator::execute): Properly + mark irreducible regions. + + 2021-06-16 Richard Biener + + Backported from master: + 2021-05-28 Richard Biener + + PR ipa/100791 + * tree-inline.c (copy_bb): When processing __builtin_va_arg_pack + copy fntype from original call. + + 2021-06-16 Richard Biener + + Backported from master: + 2021-05-11 Richard Biener + + PR ipa/100513 + * ipa-param-manipulation.c + (ipa_param_body_adjustments::modify_call_stmt): Avoid + altering SSA_NAME_DEF_STMT by adjusting the calls LHS + via gimple_call_lhs_ptr. + + 2021-06-16 Richard Biener + + Backported from master: + 2021-05-11 Richard Biener + + PR middle-end/100509 + * gimple-fold.c (fold_gimple_assign): Only call + get_symbol_constant_value on register type symbols. + + 2021-06-16 Richard Biener + + Backported from master: + 2021-05-10 Richard Biener + + PR tree-optimization/100492 + * tree-loop-distribution.c (find_seed_stmts_for_distribution): + Find nothing when the loop contains an irreducible region. + + 2021-06-04 Alex Coplan + + Backported from master: + 2021-05-19 Alex Coplan + + PR target/100333 + * config/arm/arm.md (nonsecure_call_internal): Always ensure + callee's address is in a register. + + 2021-06-02 Vladimir N. Makarov + + Backported from master: + 2021-01-21 Vladimir N. Makarov + + PR rtl-optimization/98777 + * lra-int.h (lra_pmode_pseudo): New extern. + * lra.c (lra_pmode_pseudo): New global. + (lra): Set it up. + * lra-eliminations.c (eliminate_regs_in_insn): Use it. + + 2021-06-02 Vladimir N. Makarov + + Backported from master: + 2021-01-20 Vladimir N. Makarov + + PR rtl-optimization/98722 + * lra-eliminations.c (eliminate_regs_in_insn): Check that target + has no 3-op add insn to transform insns containing two pluses. + + 2021-06-02 Vladimir N. Makarov + + Backported from master: + 2021-01-12 Vladimir N. Makarov + + PR target/97969 + * lra-eliminations.c (eliminate_regs_in_insn): Add transformation + of pattern 'plus (plus (hard reg, const), pseudo)'. + + 2021-06-02 Uros Bizjak + + Backported from master: + 2021-06-02 Uroš Bizjak + + * config/i386/sse.md (abs2): + Change define_insn to define_expand. + + 2021-06-01 Alex Coplan + + Backported from master: + 2021-05-11 Alex Coplan + + PR target/99725 + * config/arm/arm.c (cmse_nonsecure_call_inline_register_clear): + Avoid emitting CFA adjusts on the sp if we have the fp. + + 2021-05-25 Alex Coplan + + Backported from master: + 2021-05-10 Alex Coplan + + PR target/99960 + * config/arm/mve.md (*mve_mov): Simplify output code. Use + vldrw.u32 and vstrw.32 for V2D[IF]mode loads and stores. + + 2021-05-20 Alex Coplan + Christophe Lyon + + PR target/99977 + * config/arm/arm.c (arm_split_compare_and_swap): Fix up codegen + with negative immediates: ensure we expand cbranchsi4_scratch + correctly and ensure we satisfy its constraints. + * config/arm/sync.md + (@atomic_compare_and_swap_1): Don't + attempt to tie two output operands together with constraints; + collapse two alternatives. + (@atomic_compare_and_swap_1): Likewise. + * config/arm/thumb1.md (cbranchsi4_neg_late): New. + + 2021-05-19 Jonathan Wakely + + Backported from master: + 2021-05-19 Jonathan Wakely + + * doc/cpp.texi (Common Predefined Macros): Update documentation + for the __GXX_EXPERIMENTAL_CXX0X__ macro. + + 2021-05-17 Richard Biener + + Backported from master: + 2021-01-28 Richard Biener + + PR rtl-optimization/80960 + * dse.c (check_mem_read_rtx): Call get_addr on the + offsetted address. + + 2021-05-17 Richard Biener + + Backported from master: + 2021-05-12 Richard Biener + + PR tree-optimization/100566 + * tree-ssa-sccvn.c (dominated_by_p_w_unex): Properly handle + allow_back for all edge queries. + + 2021-05-13 Srinath Parvathaneni + + Backported from master: + 2021-05-11 Srinath Parvathaneni + Joe Ramsay + + PR target/100419 + * config/arm/arm_mve.h (__arm_vstrwq_scatter_offset): Fix wrong arguments. + (__arm_vcmpneq): Remove duplicate definition. + (__arm_vstrwq_scatter_offset_p): Likewise. + (__arm_vmaxq_x): Likewise. + (__arm_vmlsdavaq): Likewise. + (__arm_vmlsdavaxq): Likewise. + (__arm_vmlsdavq_p): Likewise. + (__arm_vmlsdavxq_p): Likewise. + (__arm_vrmlaldavhaq): Likewise. + (__arm_vstrbq_p): Likewise. + (__arm_vstrbq_scatter_offset): Likewise. + (__arm_vstrbq_scatter_offset_p): Likewise. + (__arm_vstrdq_scatter_offset): Likewise. + (__arm_vstrdq_scatter_offset_p): Likewise. + (__arm_vstrdq_scatter_shifted_offset): Likewise. + (__arm_vstrdq_scatter_shifted_offset_p): Likewise. + + 2021-05-13 Richard Earnshaw + + PR target/100563 + * config/arm/arm.c (arm_canonicalize_comparison): Correctly + canonicalize DImode inequality comparisons against the + maximum integral value. + + 2021-05-12 Martin Sebor + + PR middle-end/100571 + * calls.c (maybe_warn_rdwr_sizes): Clear object size if it can't + be determined. + + 2021-05-12 Alex Coplan + + Backported from master: + 2021-05-11 Alex Coplan + + PR target/99988 + * config/aarch64/aarch64-bti-insert.c (aarch64_bti_j_insn_p): New. + (rest_of_insert_bti): Avoid inserting duplicate bti j insns for + jump table targets. + + 2021-05-11 Geng Qi + + Backported from master: + 2021-04-30 Geng Qi + + * config/riscv/riscv.opt (march=,mabi=): Negative itself. + + 2021-05-10 Segher Boessenkool + + Backported from master: + 2021-04-20 Segher Boessenkool + + PR target/100108 + * config/rs6000/rs6000.c (rs6000_machine_from_flags): Do not consider + OPTION_MASK_ISEL. + + 2021-05-06 Roman Zhuykov + + Backported from master: + 2021-04-30 Roman Zhuykov + + PR rtl-optimization/100225 + PR rtl-optimization/84878 + * modulo-sched.c (sms_schedule): Use note_stores to skip loops + where we have an instruction which touches (writes) any hard + register from df->regular_block_artificial_uses set. + Allow not-single-set instruction only right before basic block + tail. + + 2021-05-06 Andre Vieira + + Backported from master: + 2020-09-15 Andre Vieira + + * config/arm/arm.c (arm_options_perform_arch_sanity_checks): Do not + check +D32 for CMSE if -mfloat-abi=soft + + 2021-05-06 Srinath Parvathaneni + + Backported from master: + 2020-06-23 Andre Vieira + + PR target/95646 + * config/arm/arm.c: (cmse_nonsecure_entry_clear_before_return): Use + 'callee_saved_reg_p' instead of 'calL_used_or_fixed_reg_p'. + + 2021-05-05 Eric Botcazou + + PR target/100402 + * config/i386/i386.c (ix86_compute_frame_layout): For a SEH target, + always return the establisher frame for __builtin_frame_address (0). + + 2021-05-05 Stefan Schulze Frielinghaus + + Backported from master: + 2021-05-05 Stefan Schulze Frielinghaus + + PR rtl-optimization/100263 + * postreload.c (move2add_valid_value_p): Ensure register can + change mode. + + 2021-05-05 Richard Biener + + PR tree-optimization/98786 + * tree-ssa-phiopt.c (factor_out_conditional_conversion): Avoid + adding new uses of abnormals. + + 2021-05-05 Richard Biener + + Backported from master: + 2021-04-27 Richard Biener + + PR tree-optimization/100278 + * tree-ssa-pre.c (compute_avail): Give up when we cannot + adjust TBAA beacuse of mismatching bases. + + 2021-05-04 Jakub Jelinek + + Backported from master: + 2021-05-02 Jakub Jelinek + + PR target/100375 + * config/nvptx/nvptx.c (nvptx_sese_pseudo): Use NULL instead of 0 + as first argument of pseudo_node_t constructors. + + 2021-05-04 Jakub Jelinek + + Backported from master: + 2021-04-29 Jakub Jelinek + + PR target/100302 + * config/aarch64/aarch64.c (aarch64_add_offset_1_temporaries): Use + absu_hwi instead of abs_hwi. + + 2021-05-04 Jakub Jelinek + + Backported from master: + 2021-04-27 Jakub Jelinek + + PR rtl-optimization/100254 + * cfgcleanup.c (outgoing_edges_match): Check REG_EH_REGION on + last1 and last2 insns rather than BB_END (bb1) and BB_END (bb2) insns. + + 2021-05-04 Jakub Jelinek + + Backported from master: + 2021-04-26 Jakub Jelinek + + PR debug/100255 + * vmsdbgout.c (ASM_OUTPUT_DEBUG_STRING, vmsdbgout_begin_block, + vmsdbgout_end_block, lookup_filename, vmsdbgout_source_line): Remove + register keywords. + + 2021-05-04 Alex Coplan + + Backported from master: + 2021-04-23 Alex Coplan + + PR rtl-optimization/100230 + * early-remat.c (early_remat::sort_candidates): Use delete[] + instead of delete for array allocated with new[]. + + 2021-04-30 David Edelsohn + + Backported from master: + 2021-04-27 David Edelsohn + + * config/rs6000/aix.h (SUBTARGET_DRIVER_SELF_SPECS): New. + * config/rs6000/aix64.opt (m64): New. + (m32): New. + + 2021-04-30 Richard Biener + + PR tree-optimization/96513 + * tree-vect-slp.c (struct vdhs_data): New. + (vect_detect_hybrid_slp): New walker. + (vect_detect_hybrid_slp): Rewrite. + + 2021-04-29 Richard Earnshaw + + Backported from master: + 2021-04-28 Richard Earnshaw + + PR target/100311 + * config/arm/arm.c (arm_hard_regno_mode_ok): Only allow VPR to be + used in HImode. + + 2021-04-28 Uros Bizjak + + Backported from master: + 2021-04-23 Uroš Bizjak + + PR target/100182 + * config/i386/sync.md (FILD_ATOMIC/FIST_ATOMIC FP load peephole2): + Copy operand 3 to operand 4. Use sse_reg_operand + as operand 3 predicate. + (FILD_ATOMIC/FIST_ATOMIC FP load peephole2 with mem blockage): Ditto. + (LDX_ATOMIC/STX_ATOMIC FP load peephole2): Ditto. + (LDX_ATOMIC/LDX_ATOMIC FP load peephole2 with mem blockage): Ditto. + (FILD_ATOMIC/FIST_ATOMIC FP store peephole2): + Copy operand 1 to operand 0. + (FILD_ATOMIC/FIST_ATOMIC FP store peephole2 with mem blockage): Ditto. + (LDX_ATOMIC/STX_ATOMIC FP store peephole2): Ditto. + (LDX_ATOMIC/LDX_ATOMIC FP store peephole2 with mem blockage): Ditto. + + 2021-04-26 Alex Coplan + + Backported from master: + 2021-04-08 Alex Coplan + + PR target/99647 + * config/arm/iterators.md (MVE_vecs): New. + (V_elem): Also handle V2DF. + * config/arm/mve.md (*mve_mov): Rename to ... + (*mve_vdup): ... this. Remove second alternative since + vec_duplicate of const_int is not canonical RTL, and we don't + want to match symbol_refs. + (*mve_vec_duplicate): Delete (pattern is redundant). + + 2021-04-26 Richard Biener + + Backported from master: + 2021-04-13 Richard Biener + + PR tree-optimization/100053 + * tree-ssa-sccvn.c (vn_nary_op_get_predicated_value): Do + not use optimistic dominance queries for backedges to validate + predicated values. + (dominated_by_p_w_unex): Add parameter to ignore executable + state on backedges. + (rpo_elim::eliminate_avail): Adjust. + + 2021-04-26 Richard Biener + + Backported from master: + 2021-04-07 Richard Biener + + PR tree-optimization/99954 + * tree-loop-distribution.c: Include tree-affine.h. + (generate_memcpy_builtin): Try using tree-affine to prove + non-overlap. + (loop_distribution::classify_builtin_ldst): Always classify + as PKIND_MEMMOVE. + + 2021-04-26 Richard Biener + + Backported from master: + 2021-04-06 Richard Biener + + PR tree-optimization/99880 + * tree-vect-loop.c (maybe_set_vectorized_backedge_value): Only + set vectorized defs of relevant PHIs. + + 2021-04-24 Richard Sandiford + + PR rtl-optimization/96796 + * lra-constraints.c (in_class_p): Add a default-false + allow_all_reload_class_changes_p parameter. Do not treat + reload moves specially when the parameter is true. + (get_reload_reg): Try to narrow the class of an existing OP_OUT + reload if we're reloading a reload pseudo in a reload instruction. + + 2021-04-23 YiFei Zhu + + Backported from master: + 2021-04-23 YiFei Zhu + + * config/bpf/bpf.h (ASM_OUTPUT_ALIGNED_BSS): Use .type and .lcomm. + + 2021-04-23 YiFei Zhu + + Backported from master: + 2021-04-23 YiFei Zhu + + * config/bpf/bpf.h (FUNCTION_BOUNDARY): Set to 64. + + 2021-04-23 Richard Sandiford + + Backported from master: + 2021-04-14 Richard Sandiford + + PR rtl-optimization/99929 + * rtl.h (same_vector_encodings_p): New function. + * cse.c (exp_equiv_p): Check that CONST_VECTORs have the same encoding. + * cselib.c (rtx_equal_for_cselib_1): Likewise. + * jump.c (rtx_renumbered_equal_p): Likewise. + * lra-constraints.c (operands_match_p): Likewise. + * reload.c (operands_match_p): Likewise. + * rtl.c (rtx_equal_p_cb, rtx_equal_p): Likewise. + + 2021-04-23 Richard Sandiford + + Backported from master: + 2021-03-31 Richard Sandiford + + PR target/98119 + * config/aarch64/aarch64.c + (aarch64_vectorize_preferred_vector_alignment): Query the size + of the provided SVE vector; do not assume that all SVE vectors + have the same size. + + 2021-04-23 Bin Cheng + + Backported from master: + 2021-04-07 Bin Cheng + + PR tree-optimization/98736 + * tree-loop-distribution.c + * (loop_distribution::bb_top_order_init): + Compute RPO with programing order preserved by calling function + rev_post_order_and_mark_dfs_back_seme. + + 2021-04-23 Richard Biener + + Backported from master: + 2020-07-31 Richard Biener + + * cfganal.h (rev_post_order_and_mark_dfs_back_seme): Adjust + prototype. + * cfganal.c (rpoamdbs_bb_data): New struct with pre BB data. + (tag_header): New helper. + (cmp_edge_dest_pre): Likewise. + (rev_post_order_and_mark_dfs_back_seme): Compute SCCs, + find SCC exits and perform a DFS walk with extra edges to + compute a RPO with adjacent SCC members when requesting an + iteration optimized order and populate the toplevel SCC array. + * tree-ssa-sccvn.c (do_rpo_vn): Remove ad-hoc computation + of max_rpo and fill it in from SCC extent info instead. + + 2021-04-23 Richard Biener + + Backported from master: + 2020-07-20 Richard Biener + + * cfganal.c (rev_post_order_and_mark_dfs_back_seme): Remove + write-only post array. + + 2021-04-23 Alex Coplan + + Backported from master: + 2021-04-06 Alex Coplan + + PR target/99748 + * config/arm/arm.c (arm_libcall_uses_aapcs_base): Also use base + PCS for [su]fix_optab. + + 2021-04-23 Richard Sandiford + + Backported from master: + 2021-04-14 Richard Sandiford + + PR target/99249 + * config/aarch64/aarch64.c (aarch64_expand_sve_const_vector_sel): + New function. + (aarch64_expand_sve_const_vector): Use it for nelts_per_pattern==2. + + 2021-04-23 Richard Sandiford + + Backported from master: + 2021-03-31 Richard Sandiford + + PR rtl-optimization/97141 + PR rtl-optimization/98726 + * emit-rtl.c (valid_for_const_vector_p): Return true for + CONST_POLY_INT_P. + * rtx-vector-builder.h (rtx_vector_builder::step): Return a + poly_wide_int instead of a wide_int. + (rtx_vector_builder::apply_set): Take a poly_wide_int instead + of a wide_int. + * rtx-vector-builder.c (rtx_vector_builder::apply_set): Likewise. + * config/aarch64/aarch64.c (aarch64_legitimate_constant_p): Return + false for CONST_VECTORs that cannot be forced to memory. + * config/aarch64/aarch64-simd.md (mov): If a CONST_VECTOR + is too complex to force to memory, build it up from individual + elements instead. + + 2021-04-23 Richard Biener + + Backported from master: + 2021-01-26 Richard Biener + + PR middle-end/98726 + * tree.h (vector_cst_int_elt): Remove. + * tree.c (vector_cst_int_elt): Use poly_wide_int for computations, + make static. + + 2021-04-23 Richard Sandiford + + Backported from master: + 2021-03-30 Richard Sandiford + + PR target/98136 + * config/aarch64/aarch64.md (mov): Pass multi-instruction + CONST_INTs to aarch64_expand_mov_immediate when called after RA. + + 2021-04-23 Richard Sandiford + + Backported from master: + 2021-03-31 Richard Sandiford + + PR tree-optimization/98268 + * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Call + recompute_tree_invariant_for_addr_expr after successfully + folding a TARGET_MEM_REF that occurs inside an ADDR_EXPR. + + 2021-04-23 Richard Sandiford + + Backported from master: + 2021-03-31 Richard Sandiford + + PR tree-optimization/99726 + * tree-data-ref.c (create_intersect_range_checks_index): Bail + out if there is more than one access function SCEV for the loop + being versioned. + + 2021-04-22 Alex Coplan + + PR target/99216 + * config/aarch64/aarch64-sve-builtins.cc + (function_builder::add_function): Add placeholder_p argument, use + placeholder decls if this is set. + (function_builder::add_unique_function): Instead of conditionally adding + direct overloads, unconditionally add either a direct overload or a + placeholder. + (function_builder::add_overloaded_function): Set placeholder_p if we're + using C++ overloads. Use the obstack for string storage instead + of relying on the tree nodes. + (function_builder::add_overloaded_functions): Don't return early for + m_direct_overloads: we need to add placeholders. + * config/aarch64/aarch64-sve-builtins.h + (function_builder::add_function): Add placeholder_p argument. + * lto-streamer.h (LTO_minor_version): Bump. + + 2021-04-21 Jakub Jelinek + + Backported from master: + 2021-04-21 Jakub Jelinek + + PR rtl-optimization/100148 + * cprop.c (constprop_register): Use next_nondebug_insn instead of + NEXT_INSN. + + 2021-04-20 Jakub Jelinek + + Backported from master: + 2021-04-16 Jakub Jelinek + + PR target/99767 + * tree-vect-loop.c (vect_transform_loop): Don't remove just + dead scalar .MASK_LOAD calls, but also dead .COND_* calls - replace + them by their last argument. + + 2021-04-20 Jakub Jelinek + + Backported from master: + 2021-04-12 Jakub Jelinek + + PR rtl-optimization/99905 + * combine.c (expand_compound_operation): If pos + len > modewidth, + perform the right shift by pos in inner_mode and then convert to mode, + instead of trying to simplify a shift of rtx with inner_mode by pos + as if it was a shift in mode. + + 2021-04-20 Jakub Jelinek + + Backported from master: + 2021-04-12 Jakub Jelinek + + PR debug/99830 + * combine.c (simplify_and_const_int_1): Don't optimize varop + away if it has side-effects. + + 2021-04-20 Jakub Jelinek + + Backported from master: + 2021-04-10 Jakub Jelinek + + PR lto/99849 + * expr.c (expand_expr_addr_expr_1): Test is_global_var rather than + just TREE_STATIC on COMPOUND_LITERAL_EXPR_DECLs. + + 2021-04-20 Jakub Jelinek + + Backported from master: + 2021-04-10 Jakub Jelinek + + PR rtl-optimization/98601 + * rtlanal.c (rtx_addr_can_trap_p_1): Allow in assert unknown size + not just for BLKmode, but also for VOIDmode. For STRICT_ALIGNMENT + unaligned_mems handle VOIDmode like BLKmode. + + 2021-04-20 Jakub Jelinek + + Backported from master: + 2021-04-03 Jakub Jelinek + + PR rtl-optimization/99863 + * dse.c (replace_read): Drop regs_live argument. Instead of + regs_live, use store_insn->fixed_regs_live if non-NULL, + otherwise punt if insns sequence clobbers or sets any hard + registers. + + 2021-04-19 Tobias Burnus + + Backported from master: + 2020-11-27 Tobias Burnus + + PR c/97880 + * omp-expand.c (expand_oacc_collapse_init, expand_oacc_collapse_vars): + Use now passed diff_type. + (expand_oacc_for): Take largest type for diff_type, taking tiling + and collapsing into account. + + 2021-04-19 Eric Botcazou + + * config/i386/winnt.c (i386_pe_seh_cold_init): Properly deal with + frames larger than the SEH maximum frame size. + + 2021-04-18 Hafiz Abid Qadeer + + Backported from master: + 2021-04-11 Hafiz Abid Qadeer + + PR middle-end/98088 + * omp-expand.c (expand_oacc_collapse_init): Update condition in + a gcc_assert. + + 2021-04-16 Tamar Christina + + Backported from master: + 2021-04-16 Tamar Christina + + PR target/100048 + * config/aarch64/aarch64-sve.md (@aarch64_sve_trn1_conv): New. + * config/aarch64/aarch64.c (aarch64_expand_sve_const_pred_trn): Use new + TRN optab. + * config/aarch64/iterators.md (UNSPEC_TRN1_CONV): New. + + 2021-04-08 Richard Biener + + PR lto/99898 + * lto-streamer.h (LTO_minor_version): Bump. + 2021-04-08 Release Manager * GCC 10.3.0 released. diff -Nrcpad gcc-10.3.0/gcc/DATESTAMP gcc-10.4.0/gcc/DATESTAMP *** gcc-10.3.0/gcc/DATESTAMP Thu Apr 8 11:56:27 2021 --- gcc-10.4.0/gcc/DATESTAMP Tue Jun 28 08:54:27 2022 *************** *** 1 **** ! 20210408 --- 1 ---- ! 20220628 diff -Nrcpad gcc-10.3.0/gcc/Makefile.in gcc-10.4.0/gcc/Makefile.in *** gcc-10.3.0/gcc/Makefile.in Thu Apr 8 11:56:27 2021 --- gcc-10.4.0/gcc/Makefile.in Tue Jun 28 08:54:27 2022 *************** DIR = ../gcc *** 783,795 **** # Native compiler for the build machine and its switches. CC_FOR_BUILD = @CC_FOR_BUILD@ CXX_FOR_BUILD = @CXX_FOR_BUILD@ - NO_PIE_CFLAGS_FOR_BUILD = @NO_PIE_CFLAGS_FOR_BUILD@ - NO_PIE_FLAG_FOR_BUILD = @NO_PIE_FLAG_FOR_BUILD@ BUILD_CFLAGS= @BUILD_CFLAGS@ $(GENERATOR_CFLAGS) -DGENERATOR_FILE BUILD_CXXFLAGS = @BUILD_CXXFLAGS@ $(GENERATOR_CFLAGS) -DGENERATOR_FILE - BUILD_NO_PIE_CFLAGS = @BUILD_NO_PIE_CFLAGS@ - BUILD_CFLAGS += $(BUILD_NO_PIE_CFLAGS) - BUILD_CXXFLAGS += $(BUILD_NO_PIE_CFLAGS) # Native compiler that we use. This may be C++ some day. COMPILER_FOR_BUILD = $(CXX_FOR_BUILD) --- 783,790 ---- *************** BUILD_LINKERFLAGS = $(BUILD_CXXFLAGS) *** 801,808 **** # Native linker and preprocessor flags. For x-fragment overrides. BUILD_LDFLAGS=@BUILD_LDFLAGS@ - BUILD_NO_PIE_FLAG = @BUILD_NO_PIE_FLAG@ - BUILD_LDFLAGS += $(BUILD_NO_PIE_FLAG) BUILD_CPPFLAGS= -I. -I$(@D) -I$(srcdir) -I$(srcdir)/$(@D) \ -I$(srcdir)/../include @INCINTL@ $(CPPINC) $(CPPFLAGS) --- 796,801 ---- diff -Nrcpad gcc-10.3.0/gcc/ada/ChangeLog gcc-10.4.0/gcc/ada/ChangeLog *** gcc-10.3.0/gcc/ada/ChangeLog Thu Apr 8 11:56:48 2021 --- gcc-10.4.0/gcc/ada/ChangeLog Tue Jun 28 08:54:27 2022 *************** *** 1,3 **** --- 1,105 ---- + 2022-06-28 Release Manager + + * GCC 10.4.0 released. + + 2022-04-21 Richard Biener + + Backported from master: + 2022-03-10 Richard Biener + + PR ada/104861 + * gcc-interface/Makefile.in (target_noncanonical): Substitute. + (OSCONS_CPP): Pass target_noncanonical as TARGET. + + 2022-03-24 Pascal Obry + + PR ada/104767 + * libgnat/g-sercom__mingw.adb (Close): Reset port handle to -1. + * libgnat/g-sercom__linux.adb (Close): Likewise. + + 2022-01-19 H.J. Lu + + Backported from master: + 2022-01-19 H.J. Lu + + PR ada/103538 + * gcc-interface/Makefile.in (target_cpu): Set to x32 for + x86_64-linux-gnux32. + + 2022-01-19 H.J. Lu + + Backported from master: + 2022-01-19 H.J. Lu + + PR ada/103538 + * Makefile.rtl (LIBGNAT_TARGET_PAIRS): Add + $(TRASYM_DWARF_UNIX_PAIRS), + s-tsmona.adb + + * gcc-interface/decl.c (validate_size): Do not issue an error if the + old size has overflowed. + + 2021-09-14 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity): For vector types, make + the representative array the debug type. + + 2021-09-14 Eric Botcazou + + * gcc-interface/utils.c (update_pointer_to): Set TYPE_CANONICAL on + pointer and reference types. + + 2021-09-14 Eric Botcazou + + * gcc-interface/utils.c (can_materialize_object_renaming_p): Do not + call UI_Is_In_Int_Range on the result of Normalized_First_Bit. + + 2021-09-14 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Declare new + constant. Adjust error message issued by validate_size in the case + of by-reference types. + (validate_size): Always use the error strings passed by the caller. + + 2021-09-14 Eric Botcazou + + * freeze.adb (Check_Strict_Alignment): Do not set the flag for + a bit-packed array type, even if it is a by-reference type. + + 2021-07-09 Eric Botcazou + + * gcc-interface/utils.c (finish_subprog_decl): Remove obsolete line. + + 2021-05-21 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Process + the implementation type of a packed type implemented specially. + + 2021-05-21 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_subprog_type): Always translate + the Is_Pure flag into the "pure" attribute of GNU C. + + 2021-05-21 Eric Botcazou + + * gcc-interface/trans.c (gnat_to_gnu) : + Put a SLOC on the assignment from the return value to the return + object in the copy-in/copy-out case. + + 2021-04-13 Eric Botcazou + + * gcc-interface/misc.c (gnat_init): Set default range bits to 0. + * gcc-interface/trans.c (extract_encoding): Delete. + (decode_name): Likewise. + (File_Name_to_gnu): New function. + (gigi): Call it to translate file names. Replace assertion on + 1-1 mapping between files and line maps with conditional error. + 2021-04-08 Release Manager * GCC 10.3.0 released. diff -Nrcpad gcc-10.3.0/gcc/ada/Makefile.rtl gcc-10.4.0/gcc/ada/Makefile.rtl *** gcc-10.3.0/gcc/ada/Makefile.rtl Thu Apr 8 11:56:27 2021 --- gcc-10.4.0/gcc/ada/Makefile.rtl Tue Jun 28 08:54:27 2022 *************** ifeq ($(strip $(filter-out %x32 linux%,$ *** 2441,2453 **** --- 2441,2458 ---- s-tasinf.adb header). OSCONS_CPP=$(OSCONS_CC) $(GNATLIBCFLAGS_FOR_C) -E -C \ ! -DTARGET=\"$(target)\" -iquote $(fsrcpfx)ada $(fsrcpfx)ada/s-oscons-tmplt.c > s-oscons-tmplt.i OSCONS_EXTRACT=$(OSCONS_CC) $(GNATLIBCFLAGS_FOR_C) -S s-oscons-tmplt.i # Note: if you need to build with a non-GNU compiler, you could adapt the --- 591,597 ---- # has a header). OSCONS_CPP=$(OSCONS_CC) $(GNATLIBCFLAGS_FOR_C) -E -C \ ! -DTARGET=\"$(target_noncanonical)\" -iquote $(fsrcpfx)ada $(fsrcpfx)ada/s-oscons-tmplt.c > s-oscons-tmplt.i OSCONS_EXTRACT=$(OSCONS_CC) $(GNATLIBCFLAGS_FOR_C) -S s-oscons-tmplt.i # Note: if you need to build with a non-GNU compiler, you could adapt the diff -Nrcpad gcc-10.3.0/gcc/ada/gcc-interface/decl.c gcc-10.4.0/gcc/ada/gcc-interface/decl.c *** gcc-10.3.0/gcc/ada/gcc-interface/decl.c Thu Apr 8 11:56:27 2021 --- gcc-10.4.0/gcc/ada/gcc-interface/decl.c Tue Jun 28 08:54:27 2022 *************** gnat_to_gnu_entity (Entity_Id gnat_entit *** 2322,2332 **** set_nonaliased_component_on_array_type (tem); } ! /* If an alignment is specified, use it if valid. But ignore it ! for the original type of packed array types. If the alignment ! was requested with an explicit alignment clause, state so. */ ! if (No (Packed_Array_Impl_Type (gnat_entity)) ! && Known_Alignment (gnat_entity)) { SET_TYPE_ALIGN (tem, validate_alignment (Alignment (gnat_entity), --- 2322,2336 ---- set_nonaliased_component_on_array_type (tem); } ! /* If this is a packed type implemented specially, then process the ! implementation type so it is elaborated in the proper scope. */ ! if (Present (Packed_Array_Impl_Type (gnat_entity))) ! gnat_to_gnu_entity (Packed_Array_Impl_Type (gnat_entity), NULL_TREE, ! false); ! ! /* Otherwise, if an alignment is specified, use it if valid and, if ! the alignment was requested with an explicit clause, state so. */ ! else if (Known_Alignment (gnat_entity)) { SET_TYPE_ALIGN (tem, validate_alignment (Alignment (gnat_entity), *************** gnat_to_gnu_entity (Entity_Id gnat_entit *** 4253,4258 **** --- 4257,4264 ---- handling alignment and possible padding. */ if (is_type && (!gnu_decl || this_made_decl)) { + const bool is_by_ref = Is_By_Reference_Type (gnat_entity); + gcc_assert (!TYPE_IS_DUMMY_P (gnu_type)); /* Process the attributes, if not already done. Note that the type is *************** gnat_to_gnu_entity (Entity_Id gnat_entit *** 4267,4281 **** non-constant). */ if (!gnu_size && kind != E_String_Literal_Subtype) { if (Known_Esize (gnat_entity)) gnu_size = validate_size (Esize (gnat_entity), gnu_type, gnat_entity, ! VAR_DECL, false, false, NULL, NULL); else gnu_size = validate_size (RM_Size (gnat_entity), gnu_type, gnat_entity, TYPE_DECL, false, Has_Size_Clause (gnat_entity), ! NULL, NULL); } /* If a size was specified, see if we can make a new type of that size --- 4273,4290 ---- non-constant). */ if (!gnu_size && kind != E_String_Literal_Subtype) { + const char *size_s = "size for %s too small{, minimum allowed is ^}"; + const char *type_s = is_by_ref ? "by-reference type &" : "&"; + if (Known_Esize (gnat_entity)) gnu_size = validate_size (Esize (gnat_entity), gnu_type, gnat_entity, ! VAR_DECL, false, false, size_s, type_s); else gnu_size = validate_size (RM_Size (gnat_entity), gnu_type, gnat_entity, TYPE_DECL, false, Has_Size_Clause (gnat_entity), ! size_s, type_s); } /* If a size was specified, see if we can make a new type of that size *************** gnat_to_gnu_entity (Entity_Id gnat_entit *** 4578,4584 **** TYPE_ALIGN_OK (gnu_type) = 1; /* Record whether the type is passed by reference. */ ! if (Is_By_Reference_Type (gnat_entity) && !VOID_TYPE_P (gnu_type)) TYPE_BY_REFERENCE_P (gnu_type) = 1; /* Record whether an alignment clause was specified. */ --- 4587,4593 ---- TYPE_ALIGN_OK (gnu_type) = 1; /* Record whether the type is passed by reference. */ ! if (is_by_ref && !VOID_TYPE_P (gnu_type)) TYPE_BY_REFERENCE_P (gnu_type) = 1; /* Record whether an alignment clause was specified. */ *************** gnat_to_gnu_entity (Entity_Id gnat_entit *** 4698,4703 **** --- 4707,4720 ---- else gnu_decl = create_type_decl (gnu_entity_name, gnu_type, artificial_p, debug_info_p, gnat_entity); + + /* For vector types, make the representative array the debug type. */ + if (VECTOR_TYPE_P (gnu_type)) + { + tree rep = TYPE_REPRESENTATIVE_ARRAY (gnu_type); + TYPE_NAME (rep) = DECL_NAME (gnu_decl); + SET_TYPE_DEBUG_TYPE (gnu_type, rep); + } } /* Otherwise, for a type reusing an existing DECL, back-annotate values. */ *************** gnat_to_gnu_subprog_type (Entity_Id gnat *** 5719,5734 **** tree gnu_cico_return_type = NULL_TREE; tree gnu_cico_field_list = NULL_TREE; bool gnu_cico_only_integral_type = true; ! /* The semantics of "pure" in Ada essentially matches that of "const" ! or "pure" in GCC. In particular, both properties are orthogonal ! to the "nothrow" property if the EH circuitry is explicit in the ! internal representation of the middle-end. If we are to completely ! hide the EH circuitry from it, we need to declare that calls to pure ! Ada subprograms that can throw have side effects since they can ! trigger an "abnormal" transfer of control flow; therefore, they can ! be neither "const" nor "pure" in the GCC sense. */ ! bool const_flag = (Back_End_Exceptions () && Is_Pure (gnat_subprog)); ! bool pure_flag = false; bool return_by_direct_ref_p = false; bool return_by_invisi_ref_p = false; bool return_unconstrained_p = false; --- 5736,5751 ---- tree gnu_cico_return_type = NULL_TREE; tree gnu_cico_field_list = NULL_TREE; bool gnu_cico_only_integral_type = true; ! /* Although the semantics of "pure" units in Ada essentially match those of ! "const" in GNU C, the semantics of the Is_Pure flag in GNAT do not say ! anything about access to global memory, that's why it needs to be mapped ! to "pure" instead of "const" in GNU C. The property is orthogonal to the ! "nothrow" property only if the EH circuitry is explicit in the internal ! representation of the middle-end: if we are to completely hide the EH ! circuitry from it, we need to declare that calls to pure Ada subprograms ! that can throw have side effects, since they can trigger an "abnormal" ! transfer of control; therefore they cannot be "pure" in the GCC sense. */ ! bool pure_flag = Is_Pure (gnat_subprog) && Back_End_Exceptions (); bool return_by_direct_ref_p = false; bool return_by_invisi_ref_p = false; bool return_unconstrained_p = false; *************** gnat_to_gnu_subprog_type (Entity_Id gnat *** 5881,5894 **** } /* A procedure (something that doesn't return anything) shouldn't be ! considered const since there would be no reason for calling such a subprogram. Note that procedures with Out (or In Out) parameters have already been converted into a function with a return type. Similarly, if the function returns an unconstrained type, then the function will allocate the return value on the secondary stack and thus calls to it cannot be CSE'ed, lest the stack be reclaimed. */ if (VOID_TYPE_P (gnu_return_type) || return_unconstrained_p) ! const_flag = false; /* Loop over the parameters and get their associated GCC tree. While doing this, build a copy-in copy-out structure if we need one. */ --- 5898,5911 ---- } /* A procedure (something that doesn't return anything) shouldn't be ! considered pure since there would be no reason for calling such a subprogram. Note that procedures with Out (or In Out) parameters have already been converted into a function with a return type. Similarly, if the function returns an unconstrained type, then the function will allocate the return value on the secondary stack and thus calls to it cannot be CSE'ed, lest the stack be reclaimed. */ if (VOID_TYPE_P (gnu_return_type) || return_unconstrained_p) ! pure_flag = false; /* Loop over the parameters and get their associated GCC tree. While doing this, build a copy-in copy-out structure if we need one. */ *************** gnat_to_gnu_subprog_type (Entity_Id gnat *** 6011,6028 **** save_gnu_tree (gnat_param, gnu_param, false); /* A pure function in the Ada sense which takes an access parameter ! may modify memory through it and thus need be considered neither ! const nor pure in the GCC sense. Likewise it if takes a by-ref ! In Out or Out parameter. But if it takes a by-ref In parameter, ! then it may only read memory through it and can be considered ! pure in the GCC sense. */ ! if ((const_flag || pure_flag) ! && (POINTER_TYPE_P (gnu_param_type) || TYPE_IS_FAT_POINTER_P (gnu_param_type))) ! { ! const_flag = false; ! pure_flag = DECL_POINTS_TO_READONLY_P (gnu_param); ! } } /* If the parameter uses the copy-in copy-out mechanism, allocate a field --- 6028,6043 ---- save_gnu_tree (gnat_param, gnu_param, false); /* A pure function in the Ada sense which takes an access parameter ! may modify memory through it and thus cannot be considered pure ! in the GCC sense, unless it's access-to-function. Likewise it if ! takes a by-ref In Out or Out parameter. But if it takes a by-ref ! In parameter, then it may only read memory through it and can be ! considered pure in the GCC sense. */ ! if (pure_flag ! && ((POINTER_TYPE_P (gnu_param_type) ! && TREE_CODE (TREE_TYPE (gnu_param_type)) != FUNCTION_TYPE) || TYPE_IS_FAT_POINTER_P (gnu_param_type))) ! pure_flag = DECL_POINTS_TO_READONLY_P (gnu_param); } /* If the parameter uses the copy-in copy-out mechanism, allocate a field *************** gnat_to_gnu_subprog_type (Entity_Id gnat *** 6221,6229 **** } } - if (const_flag) - gnu_type = change_qualified_type (gnu_type, TYPE_QUAL_CONST); - if (pure_flag) gnu_type = change_qualified_type (gnu_type, TYPE_QUAL_RESTRICT); --- 6236,6241 ---- *************** validate_size (Uint uint_size, tree gnu_ *** 9032,9044 **** /* Issue an error either if the default size of the object isn't a constant or if the new size is smaller than it. */ if (TREE_CODE (old_size) != INTEGER_CST ! || TREE_OVERFLOW (old_size) ! || tree_int_cst_lt (size, old_size)) { char buf[128]; const char *s; ! if (kind == FIELD_DECL) { snprintf (buf, sizeof (buf), s1, s2); s = buf; --- 9044,9055 ---- /* Issue an error either if the default size of the object isn't a constant or if the new size is smaller than it. */ if (TREE_CODE (old_size) != INTEGER_CST ! || (!TREE_OVERFLOW (old_size) && tree_int_cst_lt (size, old_size))) { char buf[128]; const char *s; ! if (s1 && s2) { snprintf (buf, sizeof (buf), s1, s2); s = buf; *************** validate_size (Uint uint_size, tree gnu_ *** 9047,9052 **** --- 9058,9064 ---- s = "component size for& too small{, minimum allowed is ^}"; else s = "size for& too small{, minimum allowed is ^}"; + post_error_ne_tree (s, gnat_error_node, gnat_object, old_size); return NULL_TREE; diff -Nrcpad gcc-10.3.0/gcc/ada/gcc-interface/misc.c gcc-10.4.0/gcc/ada/gcc-interface/misc.c *** gcc-10.3.0/gcc/ada/gcc-interface/misc.c Thu Apr 8 11:56:27 2021 --- gcc-10.4.0/gcc/ada/gcc-interface/misc.c Tue Jun 28 08:54:27 2022 *************** gnat_init (void) *** 366,371 **** --- 366,374 ---- sbitsize_one_node = sbitsize_int (1); sbitsize_unit_node = sbitsize_int (BITS_PER_UNIT); + /* In Ada, we do not use location ranges. */ + line_table->default_range_bits = 0; + /* Register our internal error function. */ global_dc->internal_error = &internal_error_function; diff -Nrcpad gcc-10.3.0/gcc/ada/gcc-interface/trans.c gcc-10.4.0/gcc/ada/gcc-interface/trans.c *** gcc-10.3.0/gcc/ada/gcc-interface/trans.c Thu Apr 8 11:56:27 2021 --- gcc-10.4.0/gcc/ada/gcc-interface/trans.c Tue Jun 28 08:54:27 2022 *************** static tree build_raise_check (int, enum *** 252,268 **** static tree create_init_temporary (const char *, tree, tree *, Node_Id); static bool maybe_make_gnu_thunk (Entity_Id gnat_thunk, tree gnu_thunk); - /* Hooks for debug info back-ends, only supported and used in a restricted set - of configurations. */ - static const char *extract_encoding (const char *) ATTRIBUTE_UNUSED; - static const char *decode_name (const char *) ATTRIBUTE_UNUSED; - /* This makes gigi's file_info_ptr visible in this translation unit, so that Sloc_to_locus can look it up when deciding whether to map decls to instances. */ static struct File_Info_Type *file_map; /* This is the main program of the back-end. It sets up all the table structures and then generates code. */ --- 252,278 ---- static tree create_init_temporary (const char *, tree, tree *, Node_Id); static bool maybe_make_gnu_thunk (Entity_Id gnat_thunk, tree gnu_thunk); /* This makes gigi's file_info_ptr visible in this translation unit, so that Sloc_to_locus can look it up when deciding whether to map decls to instances. */ static struct File_Info_Type *file_map; + /* Return the string of the identifier allocated for the file name Id. */ + + static const char* + File_Name_to_gnu (Name_Id Id) + { + /* __gnat_to_canonical_file_spec translates file names from pragmas + Source_Reference that contain host style syntax not understood by GDB. */ + const char *name = __gnat_to_canonical_file_spec (Get_Name_String (Id)); + + /* Use the identifier table to make a permanent copy of the file name as + the name table gets reallocated after Gigi returns but before all the + debugging information is output. */ + return IDENTIFIER_POINTER (get_identifier (name)); + } + /* This is the main program of the back-end. It sets up all the table structures and then generates code. */ *************** gigi (Node_Id gnat_root, *** 316,338 **** for (i = 0; i < number_file; i++) { - /* Use the identifier table to make a permanent copy of the filename as - the name table gets reallocated after Gigi returns but before all the - debugging information is output. The __gnat_to_canonical_file_spec - call translates filenames from pragmas Source_Reference that contain - host style syntax not understood by gdb. */ - const char *filename - = IDENTIFIER_POINTER - (get_identifier - (__gnat_to_canonical_file_spec - (Get_Name_String (file_info_ptr[i].File_Name)))); - /* We rely on the order isomorphism between files and line maps. */ ! gcc_assert ((int) LINEMAPS_ORDINARY_USED (line_table) == i); /* We create the line map for a source file at once, with a fixed number of columns chosen to avoid jumping over the next power of 2. */ ! linemap_add (line_table, LC_ENTER, 0, filename, 1); linemap_line_start (line_table, file_info_ptr[i].Num_Source_Lines, 252); linemap_position_for_column (line_table, 252 - 1); linemap_add (line_table, LC_LEAVE, 0, NULL, 0); --- 326,343 ---- for (i = 0; i < number_file; i++) { /* We rely on the order isomorphism between files and line maps. */ ! if ((int) LINEMAPS_ORDINARY_USED (line_table) != i) ! { ! gcc_assert (i > 0); ! error ("%s contains too many lines", ! File_Name_to_gnu (file_info_ptr[i - 1].File_Name)); ! } /* We create the line map for a source file at once, with a fixed number of columns chosen to avoid jumping over the next power of 2. */ ! linemap_add (line_table, LC_ENTER, 0, ! File_Name_to_gnu (file_info_ptr[i].File_Name), 1); linemap_line_start (line_table, file_info_ptr[i].Num_Source_Lines, 252); linemap_position_for_column (line_table, 252 - 1); linemap_add (line_table, LC_LEAVE, 0, NULL, 0); *************** gnat_to_gnu (Node_Id gnat_node) *** 8084,8091 **** if (gnu_return_label_stack->last ()) { if (gnu_ret_val) ! add_stmt (build_binary_op (MODIFY_EXPR, NULL_TREE, gnu_ret_obj, ! gnu_ret_val)); gnu_result = build1 (GOTO_EXPR, void_type_node, gnu_return_label_stack->last ()); --- 8089,8098 ---- if (gnu_return_label_stack->last ()) { if (gnu_ret_val) ! add_stmt_with_node (build_binary_op (MODIFY_EXPR, ! NULL_TREE, gnu_ret_obj, ! gnu_ret_val), ! gnat_node); gnu_result = build1 (GOTO_EXPR, void_type_node, gnu_return_label_stack->last ()); *************** set_end_locus_from_node (tree gnu_node, *** 10976,11003 **** return false; } } - - /* Return a colon-separated list of encodings contained in encoded Ada - name. */ - - static const char * - extract_encoding (const char *name) - { - char *encoding = (char *) ggc_alloc_atomic (strlen (name)); - get_encoding (name, encoding); - return encoding; - } - - /* Extract the Ada name from an encoded name. */ - static const char * - decode_name (const char *name) - { - char *decoded = (char *) ggc_alloc_atomic (strlen (name) * 2 + 60); - __gnat_decode (name, decoded, 0); - return decoded; - } - /* Post an error message. MSG is the error message, properly annotated. NODE is the node at which to post the error and the node to use for the '&' substitution. */ --- 10983,10989 ---- diff -Nrcpad gcc-10.3.0/gcc/ada/gcc-interface/utils.c gcc-10.4.0/gcc/ada/gcc-interface/utils.c *** gcc-10.3.0/gcc/ada/gcc-interface/utils.c Thu Apr 8 11:56:27 2021 --- gcc-10.4.0/gcc/ada/gcc-interface/utils.c Tue Jun 28 08:54:27 2022 *************** finish_subprog_decl (tree decl, tree asm *** 3438,3446 **** DECL_BY_REFERENCE (result_decl) = TREE_ADDRESSABLE (type); DECL_RESULT (decl) = result_decl; - /* Propagate the "const" property. */ - TREE_READONLY (decl) = TYPE_READONLY (type); - /* Propagate the "pure" property. */ DECL_PURE_P (decl) = TYPE_RESTRICT (type); --- 3438,3443 ---- *************** update_pointer_to (tree old_type, tree n *** 4233,4238 **** --- 4230,4236 ---- TREE_TYPE (t) = new_type; if (TYPE_NULL_BOUNDS (t)) TREE_TYPE (TREE_OPERAND (TYPE_NULL_BOUNDS (t), 0)) = new_type; + TYPE_CANONICAL (t) = TYPE_CANONICAL (TYPE_POINTER_TO (new_type)); } /* Chain REF and its variants at the end. */ *************** update_pointer_to (tree old_type, tree n *** 4249,4255 **** /* Now adjust them. */ for (; ref; ref = TYPE_NEXT_REF_TO (ref)) for (t = TYPE_MAIN_VARIANT (ref); t; t = TYPE_NEXT_VARIANT (t)) ! TREE_TYPE (t) = new_type; TYPE_POINTER_TO (old_type) = NULL_TREE; TYPE_REFERENCE_TO (old_type) = NULL_TREE; --- 4247,4256 ---- /* Now adjust them. */ for (; ref; ref = TYPE_NEXT_REF_TO (ref)) for (t = TYPE_MAIN_VARIANT (ref); t; t = TYPE_NEXT_VARIANT (t)) ! { ! TREE_TYPE (t) = new_type; ! TYPE_CANONICAL (t) = TYPE_CANONICAL (TYPE_REFERENCE_TO (new_type)); ! } TYPE_POINTER_TO (old_type) = NULL_TREE; TYPE_REFERENCE_TO (old_type) = NULL_TREE; *************** can_materialize_object_renaming_p (Node_ *** 5762,5769 **** const Uint bitpos = Normalized_First_Bit (Entity (Selector_Name (expr))); ! if (!UI_Is_In_Int_Range (bitpos) ! || (bitpos != UI_No_Uint && bitpos != UI_From_Int (0))) return false; expr = Prefix (expr); --- 5763,5769 ---- const Uint bitpos = Normalized_First_Bit (Entity (Selector_Name (expr))); ! if (bitpos != UI_No_Uint && bitpos != Uint_0) return false; expr = Prefix (expr); diff -Nrcpad gcc-10.3.0/gcc/ada/libgnat/g-sercom__linux.adb gcc-10.4.0/gcc/ada/libgnat/g-sercom__linux.adb *** gcc-10.3.0/gcc/ada/libgnat/g-sercom__linux.adb Thu Apr 8 11:56:27 2021 --- gcc-10.4.0/gcc/ada/libgnat/g-sercom__linux.adb Tue Jun 28 08:54:27 2022 *************** package body GNAT.Serial_Communications *** 318,323 **** --- 318,324 ---- begin if Port.H /= -1 then Res := close (int (Port.H)); + Port.H := -1; end if; end Close; diff -Nrcpad gcc-10.3.0/gcc/ada/libgnat/g-sercom__mingw.adb gcc-10.4.0/gcc/ada/libgnat/g-sercom__mingw.adb *** gcc-10.3.0/gcc/ada/libgnat/g-sercom__mingw.adb Thu Apr 8 11:56:27 2021 --- gcc-10.4.0/gcc/ada/libgnat/g-sercom__mingw.adb Tue Jun 28 08:54:27 2022 *************** package body GNAT.Serial_Communications *** 70,75 **** --- 70,76 ---- begin if Port.H /= -1 then Success := CloseHandle (HANDLE (Port.H)); + Port.H := -1; if Success = Win32.FALSE then Raise_Error ("error closing the port"); diff -Nrcpad gcc-10.3.0/gcc/analyzer/ChangeLog gcc-10.4.0/gcc/analyzer/ChangeLog *** gcc-10.3.0/gcc/analyzer/ChangeLog Thu Apr 8 11:56:48 2021 --- gcc-10.4.0/gcc/analyzer/ChangeLog Tue Jun 28 08:54:27 2022 *************** *** 1,3 **** --- 1,7 ---- + 2022-06-28 Release Manager + + * GCC 10.4.0 released. + 2021-04-08 Release Manager * GCC 10.3.0 released. diff -Nrcpad gcc-10.3.0/gcc/asan.c gcc-10.4.0/gcc/asan.c *** gcc-10.3.0/gcc/asan.c Thu Apr 8 11:56:27 2021 --- gcc-10.4.0/gcc/asan.c Tue Jun 28 08:54:27 2022 *************** along with GCC; see the file COPYING3. *** 63,68 **** --- 63,69 ---- #include "fnmatch.h" #include "tree-inline.h" #include "tree-ssa.h" + #include "tree-eh.h" /* AddressSanitizer finds out-of-bounds and use-after-free bugs with <2x slowdown on average. *************** handle_builtin_alloca (gcall *call, gimp *** 630,643 **** tree last_alloca = get_last_alloca_addr (); tree callee = gimple_call_fndecl (call); tree old_size = gimple_call_arg (call, 0); ! tree ptr_type = gimple_call_lhs (call) ? TREE_TYPE (gimple_call_lhs (call)) ! : ptr_type_node; tree partial_size = NULL_TREE; unsigned int align = DECL_FUNCTION_CODE (callee) == BUILT_IN_ALLOCA ? 0 : tree_to_uhwi (gimple_call_arg (call, 1)); /* If ALIGN > ASAN_RED_ZONE_SIZE, we embed left redzone into first ALIGN bytes of allocated space. Otherwise, align alloca to ASAN_RED_ZONE_SIZE manually. */ --- 631,654 ---- tree last_alloca = get_last_alloca_addr (); tree callee = gimple_call_fndecl (call); + tree lhs = gimple_call_lhs (call); tree old_size = gimple_call_arg (call, 0); ! tree ptr_type = lhs ? TREE_TYPE (lhs) : ptr_type_node; tree partial_size = NULL_TREE; unsigned int align = DECL_FUNCTION_CODE (callee) == BUILT_IN_ALLOCA ? 0 : tree_to_uhwi (gimple_call_arg (call, 1)); + bool throws = false; + edge e = NULL; + if (stmt_can_throw_internal (cfun, call)) + { + if (!lhs) + return; + throws = true; + e = find_fallthru_edge (gsi_bb (*iter)->succs); + } + /* If ALIGN > ASAN_RED_ZONE_SIZE, we embed left redzone into first ALIGN bytes of allocated space. Otherwise, align alloca to ASAN_RED_ZONE_SIZE manually. */ *************** handle_builtin_alloca (gcall *call, gimp *** 694,722 **** build_int_cst (size_type_node, align)); tree new_alloca_with_rz = make_ssa_name (ptr_type, gg); gimple_call_set_lhs (gg, new_alloca_with_rz); ! gsi_insert_before (iter, gg, GSI_SAME_STMT); /* new_alloca = new_alloca_with_rz + align. */ g = gimple_build_assign (make_ssa_name (ptr_type), POINTER_PLUS_EXPR, new_alloca_with_rz, build_int_cst (size_type_node, align / BITS_PER_UNIT)); ! gsi_insert_before (iter, g, GSI_SAME_STMT); tree new_alloca = gimple_assign_lhs (g); /* Poison newly created alloca redzones: __asan_alloca_poison (new_alloca, old_size). */ fn = builtin_decl_implicit (BUILT_IN_ASAN_ALLOCA_POISON); gg = gimple_build_call (fn, 2, new_alloca, old_size); ! gsi_insert_before (iter, gg, GSI_SAME_STMT); /* Save new_alloca_with_rz value into last_alloca to use it during allocas unpoisoning. */ g = gimple_build_assign (last_alloca, new_alloca_with_rz); ! gsi_insert_before (iter, g, GSI_SAME_STMT); /* Finally, replace old alloca ptr with NEW_ALLOCA. */ ! replace_call_with_value (iter, new_alloca); } /* Return the memory references contained in a gimple statement --- 705,758 ---- build_int_cst (size_type_node, align)); tree new_alloca_with_rz = make_ssa_name (ptr_type, gg); gimple_call_set_lhs (gg, new_alloca_with_rz); ! if (throws) ! { ! gimple_call_set_lhs (call, NULL); ! gsi_replace (iter, gg, true); ! } ! else ! gsi_insert_before (iter, gg, GSI_SAME_STMT); /* new_alloca = new_alloca_with_rz + align. */ g = gimple_build_assign (make_ssa_name (ptr_type), POINTER_PLUS_EXPR, new_alloca_with_rz, build_int_cst (size_type_node, align / BITS_PER_UNIT)); ! gimple_stmt_iterator gsi = gsi_none (); ! if (throws) ! { ! gsi_insert_on_edge_immediate (e, g); ! gsi = gsi_for_stmt (g); ! } ! else ! gsi_insert_before (iter, g, GSI_SAME_STMT); tree new_alloca = gimple_assign_lhs (g); /* Poison newly created alloca redzones: __asan_alloca_poison (new_alloca, old_size). */ fn = builtin_decl_implicit (BUILT_IN_ASAN_ALLOCA_POISON); gg = gimple_build_call (fn, 2, new_alloca, old_size); ! if (throws) ! gsi_insert_after (&gsi, gg, GSI_NEW_STMT); ! else ! gsi_insert_before (iter, gg, GSI_SAME_STMT); /* Save new_alloca_with_rz value into last_alloca to use it during allocas unpoisoning. */ g = gimple_build_assign (last_alloca, new_alloca_with_rz); ! if (throws) ! gsi_insert_after (&gsi, g, GSI_NEW_STMT); ! else ! gsi_insert_before (iter, g, GSI_SAME_STMT); /* Finally, replace old alloca ptr with NEW_ALLOCA. */ ! if (throws) ! { ! g = gimple_build_assign (lhs, new_alloca); ! gsi_insert_after (&gsi, g, GSI_NEW_STMT); ! } ! else ! replace_call_with_value (iter, new_alloca); } /* Return the memory references contained in a gimple statement *************** asan_redzone_buffer::emit_redzone_byte ( *** 1278,1287 **** HOST_WIDE_INT off = m_prev_offset + ASAN_SHADOW_GRANULARITY * m_shadow_bytes.length (); if (off == offset) { ! /* Consecutive shadow memory byte. */ ! m_shadow_bytes.safe_push (value); ! flush_if_full (); } else { --- 1314,1327 ---- HOST_WIDE_INT off = m_prev_offset + ASAN_SHADOW_GRANULARITY * m_shadow_bytes.length (); if (off == offset) + /* Consecutive shadow memory byte. */; + else if (offset < m_prev_offset + (HOST_WIDE_INT) (ASAN_SHADOW_GRANULARITY + * RZ_BUFFER_SIZE) + && !m_shadow_bytes.is_empty ()) { ! /* Shadow memory byte with a small gap. */ ! for (; off < offset; off += ASAN_SHADOW_GRANULARITY) ! m_shadow_bytes.safe_push (0); } else { *************** asan_redzone_buffer::emit_redzone_byte ( *** 1302,1310 **** m_shadow_mem = adjust_address (m_shadow_mem, VOIDmode, diff >> ASAN_SHADOW_SHIFT); m_prev_offset = offset; - m_shadow_bytes.safe_push (value); - flush_if_full (); } } /* Emit RTX emission of the content of the buffer. */ --- 1342,1350 ---- m_shadow_mem = adjust_address (m_shadow_mem, VOIDmode, diff >> ASAN_SHADOW_SHIFT); m_prev_offset = offset; } + m_shadow_bytes.safe_push (value); + flush_if_full (); } /* Emit RTX emission of the content of the buffer. */ *************** instrument_derefs (gimple_stmt_iterator *** 2269,2281 **** return; poly_int64 decl_size; ! if (VAR_P (inner) && offset == NULL_TREE && DECL_SIZE (inner) && poly_int_tree_p (DECL_SIZE (inner), &decl_size) && known_subrange_p (bitpos, bitsize, 0, decl_size)) { ! if (DECL_THREAD_LOCAL_P (inner)) return; if (!param_asan_globals && is_global_var (inner)) return; --- 2309,2321 ---- return; poly_int64 decl_size; ! if ((VAR_P (inner) || TREE_CODE (inner) == RESULT_DECL) && offset == NULL_TREE && DECL_SIZE (inner) && poly_int_tree_p (DECL_SIZE (inner), &decl_size) && known_subrange_p (bitpos, bitsize, 0, decl_size)) { ! if (VAR_P (inner) && DECL_THREAD_LOCAL_P (inner)) return; if (!param_asan_globals && is_global_var (inner)) return; *************** instrument_derefs (gimple_stmt_iterator *** 2300,2305 **** --- 2340,2350 ---- } } + if (DECL_P (inner) + && decl_function_context (inner) == current_function_decl + && !TREE_ADDRESSABLE (inner)) + mark_addressable (inner); + base = build_fold_addr_expr (t); if (!has_mem_ref_been_instrumented (base, size_in_bytes)) { diff -Nrcpad gcc-10.3.0/gcc/brig/ChangeLog gcc-10.4.0/gcc/brig/ChangeLog *** gcc-10.3.0/gcc/brig/ChangeLog Thu Apr 8 11:56:48 2021 --- gcc-10.4.0/gcc/brig/ChangeLog Tue Jun 28 08:54:27 2022 *************** *** 1,3 **** --- 1,7 ---- + 2022-06-28 Release Manager + + * GCC 10.4.0 released. + 2021-04-08 Release Manager * GCC 10.3.0 released. diff -Nrcpad gcc-10.3.0/gcc/builtins.c gcc-10.4.0/gcc/builtins.c *** gcc-10.3.0/gcc/builtins.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/builtins.c Tue Jun 28 08:54:27 2022 *************** expand_builtin_int_roundingfn_2 (tree ex *** 2927,2942 **** BUILT_IN_IROUND and if __builtin_iround is called directly, emit a call to lround in the hope that the target provides at least some C99 functions. This should result in the best user experience for ! not full C99 targets. */ ! tree fallback_fndecl = mathfn_built_in_1 ! (TREE_TYPE (arg), as_combined_fn (fallback_fn), 0); ! ! exp = build_call_nofold_loc (EXPR_LOCATION (exp), ! fallback_fndecl, 1, arg); ! target = expand_call (exp, NULL_RTX, target == const0_rtx); ! target = maybe_emit_group_store (target, TREE_TYPE (exp)); ! return convert_to_mode (mode, target, 0); } return expand_call (exp, target, target == const0_rtx); --- 2927,2954 ---- BUILT_IN_IROUND and if __builtin_iround is called directly, emit a call to lround in the hope that the target provides at least some C99 functions. This should result in the best user experience for ! not full C99 targets. ! As scalar float conversions with same mode are useless in GIMPLE, ! we can end up e.g. with _Float32 argument passed to float builtin, ! try to get the type from the builtin prototype first. */ ! tree fallback_fndecl = NULL_TREE; ! if (tree argtypes = TYPE_ARG_TYPES (TREE_TYPE (fndecl))) ! fallback_fndecl ! = mathfn_built_in_1 (TREE_VALUE (argtypes), ! as_combined_fn (fallback_fn), 0); ! if (fallback_fndecl == NULL_TREE) ! fallback_fndecl ! = mathfn_built_in_1 (TREE_TYPE (arg), ! as_combined_fn (fallback_fn), 0); ! if (fallback_fndecl) ! { ! exp = build_call_nofold_loc (EXPR_LOCATION (exp), ! fallback_fndecl, 1, arg); ! target = expand_call (exp, NULL_RTX, target == const0_rtx); ! target = maybe_emit_group_store (target, TREE_TYPE (exp)); ! return convert_to_mode (mode, target, 0); ! } } return expand_call (exp, target, target == const0_rtx); diff -Nrcpad gcc-10.3.0/gcc/c/ChangeLog gcc-10.4.0/gcc/c/ChangeLog *** gcc-10.3.0/gcc/c/ChangeLog Thu Apr 8 11:56:48 2021 --- gcc-10.4.0/gcc/c/ChangeLog Tue Jun 28 08:54:27 2022 *************** *** 1,3 **** --- 1,70 ---- + 2022-06-28 Release Manager + + * GCC 10.4.0 released. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-03-09 Jakub Jelinek + + PR c/104711 + * c-fold.c (c_fully_fold_internal): Don't emit + -Wshift-negative-value warning if TYPE_OVERFLOW_WRAPS. + * c-typeck.c (build_binary_op): Likewise. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-12-14 Jakub Jelinek + + PR c/103587 + * c-parser.c (c_parser_balanced_token_sequence): For CPP_PRAGMA, + consume the pragma and silently skip to the pragma eol. + + 2022-05-10 Tobias Burnus + + Backported from master: + 2021-05-04 Tobias Burnus + + * c-typeck.c (c_finish_omp_clauses): Accept float + complex + for || and && reductions. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-06-24 Jakub Jelinek + + PR c/101176 + * c-parser.c (c_parser_has_attribute_expression): Set source range for + the result. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-06-24 Jakub Jelinek + + PR c/101171 + * c-typeck.c (build_c_cast): Don't call note_integer_operands on + error_mark_node. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-06-21 Jakub Jelinek + + PR inline-asm/100785 + * c-typeck.c (c_mark_addressable): Diagnose trying to make + bit-fields addressable. + + 2021-04-20 Jakub Jelinek + + Backported from master: + 2021-04-10 Jakub Jelinek + + PR c/99990 + * c-decl.c (finish_decl): Don't overwrite TREE_TYPE of + error_mark_node. + 2021-04-08 Release Manager * GCC 10.3.0 released. diff -Nrcpad gcc-10.3.0/gcc/c/c-decl.c gcc-10.4.0/gcc/c/c-decl.c *** gcc-10.3.0/gcc/c/c-decl.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/c/c-decl.c Tue Jun 28 08:54:27 2022 *************** finish_decl (tree decl, location_t init_ *** 5320,5326 **** gcc_unreachable (); } ! if (DECL_INITIAL (decl)) TREE_TYPE (DECL_INITIAL (decl)) = type; relayout_decl (decl); --- 5320,5326 ---- gcc_unreachable (); } ! if (DECL_INITIAL (decl) && DECL_INITIAL (decl) != error_mark_node) TREE_TYPE (DECL_INITIAL (decl)) = type; relayout_decl (decl); diff -Nrcpad gcc-10.3.0/gcc/c/c-fold.c gcc-10.4.0/gcc/c/c-fold.c *** gcc-10.3.0/gcc/c/c-fold.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/c/c-fold.c Tue Jun 28 08:54:27 2022 *************** c_fully_fold_internal (tree expr, bool i *** 382,387 **** --- 382,388 ---- && TREE_CODE (TREE_TYPE (orig_op0)) == INTEGER_TYPE && TREE_CODE (op0) == INTEGER_CST && c_inhibit_evaluation_warnings == 0 + && !TYPE_OVERFLOW_WRAPS (TREE_TYPE (orig_op0)) && tree_int_cst_sgn (op0) < 0) warning_at (loc, OPT_Wshift_negative_value, "left shift of negative value"); diff -Nrcpad gcc-10.3.0/gcc/c/c-parser.c gcc-10.4.0/gcc/c/c-parser.c *** gcc-10.3.0/gcc/c/c-parser.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/c/c-parser.c Tue Jun 28 08:54:27 2022 *************** c_parser_balanced_token_sequence (c_pars *** 4812,4817 **** --- 4812,4822 ---- case CPP_EOF: return; + case CPP_PRAGMA: + c_parser_consume_pragma (parser); + c_parser_skip_to_pragma_eol (parser, false); + break; + default: c_parser_consume_token (parser); break; *************** c_parser_has_attribute_expression (c_par *** 8459,8464 **** --- 8464,8470 ---- { gcc_assert (c_parser_next_token_is_keyword (parser, RID_BUILTIN_HAS_ATTRIBUTE)); + location_t start = c_parser_peek_token (parser)->location; c_parser_consume_token (parser); c_inhibit_evaluation_warnings++; *************** c_parser_has_attribute_expression (c_par *** 8537,8542 **** --- 8543,8549 ---- parser->translate_strings_p = save_translate_strings_p; + location_t finish = c_parser_peek_token (parser)->location; if (c_parser_next_token_is (parser, CPP_CLOSE_PAREN)) c_parser_consume_token (parser); else *************** c_parser_has_attribute_expression (c_par *** 8565,8570 **** --- 8572,8578 ---- else result.value = boolean_false_node; + set_c_expr_source_range (&result, start, finish); return result; } diff -Nrcpad gcc-10.3.0/gcc/c/c-typeck.c gcc-10.4.0/gcc/c/c-typeck.c *** gcc-10.3.0/gcc/c/c-typeck.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/c/c-typeck.c Tue Jun 28 08:54:27 2022 *************** c_mark_addressable (tree exp, bool array *** 5017,5024 **** && TREE_CODE (TREE_TYPE (x)) == ARRAY_TYPE && VECTOR_TYPE_P (TREE_TYPE (TREE_OPERAND (x, 0)))) return true; ! /* FALLTHRU */ case COMPONENT_REF: case ADDR_EXPR: case ARRAY_REF: case REALPART_EXPR: --- 5017,5033 ---- && TREE_CODE (TREE_TYPE (x)) == ARRAY_TYPE && VECTOR_TYPE_P (TREE_TYPE (TREE_OPERAND (x, 0)))) return true; ! x = TREE_OPERAND (x, 0); ! break; ! case COMPONENT_REF: + if (DECL_C_BIT_FIELD (TREE_OPERAND (x, 1))) + { + error ("cannot take address of bit-field %qD", + TREE_OPERAND (x, 1)); + return false; + } + /* FALLTHRU */ case ADDR_EXPR: case ARRAY_REF: case REALPART_EXPR: *************** build_c_cast (location_t loc, tree type, *** 6027,6032 **** --- 6036,6042 ---- return value reflects this. */ if (int_operands && INTEGRAL_TYPE_P (type) + && value != error_mark_node && !EXPR_INT_CONST_OPERANDS (value)) value = note_integer_operands (value); *************** build_binary_op (location_t location, en *** 11994,12000 **** { doing_shift = true; if (TREE_CODE (op0) == INTEGER_CST ! && tree_int_cst_sgn (op0) < 0) { /* Don't reject a left shift of a negative value in a context where a constant expression is needed in C90. */ --- 12004,12011 ---- { doing_shift = true; if (TREE_CODE (op0) == INTEGER_CST ! && tree_int_cst_sgn (op0) < 0 ! && !TYPE_OVERFLOW_WRAPS (type0)) { /* Don't reject a left shift of a negative value in a context where a constant expression is needed in C90. */ *************** c_finish_omp_clauses (tree clauses, enum *** 14047,14052 **** --- 14058,14065 ---- case PLUS_EXPR: case MULT_EXPR: case MINUS_EXPR: + case TRUTH_ANDIF_EXPR: + case TRUTH_ORIF_EXPR: break; case MIN_EXPR: if (TREE_CODE (type) == COMPLEX_TYPE) *************** c_finish_omp_clauses (tree clauses, enum *** 14065,14078 **** case BIT_IOR_EXPR: r_name = "|"; break; - case TRUTH_ANDIF_EXPR: - if (FLOAT_TYPE_P (type)) - r_name = "&&"; - break; - case TRUTH_ORIF_EXPR: - if (FLOAT_TYPE_P (type)) - r_name = "||"; - break; default: gcc_unreachable (); } --- 14078,14083 ---- diff -Nrcpad gcc-10.3.0/gcc/c-family/ChangeLog gcc-10.4.0/gcc/c-family/ChangeLog *** gcc-10.3.0/gcc/c-family/ChangeLog Thu Apr 8 11:56:48 2021 --- gcc-10.4.0/gcc/c-family/ChangeLog Tue Jun 28 08:54:27 2022 *************** *** 1,3 **** --- 1,90 ---- + 2022-06-28 Release Manager + + * GCC 10.4.0 released. + + 2022-05-31 Iain Sandoe + + * c-opts.c (c_common_post_options): Default to + flag_objc_sjlj_exceptions = 1 only when flag_objc_abi < 2. + + 2022-05-31 Iain Sandoe + + Backported from master: + 2020-11-16 Iain Sandoe + + PR objc/97854 + * stub-objc.c: Include c-common.h to declare enum rid. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-04-11 Jakub Jelinek + + PR c++/105186 + * c-common.c (c_common_nodes_and_builtins): After registering __int%d + and __int%d__ builtin types, initialize corresponding ridpointers + entry. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-03-09 Jakub Jelinek + + PR c/104711 + * c-opts.c (c_common_post_options): Don't enable + -Wshift-negative-value from -Wextra for C++20 or later. + * c-ubsan.c (ubsan_instrument_shift): Adjust comments. + * c-warn.c (maybe_warn_shift_overflow): Use TYPE_OVERFLOW_WRAPS + instead of TYPE_UNSIGNED. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-02-16 Jakub Jelinek + + PR c/104510 + * c-common.c (shorten_compare): Convert original arguments to + the original *restype_ptr when mixing binary and decimal float. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-01-11 Jakub Jelinek + + PR c/101537 + PR c/103881 + * c-warn.c (conversion_warning): Handle BIT_AND_EXPR, BIT_IOR_EXPR + and BIT_XOR_EXPR. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-10-21 Jakub Jelinek + + PR middle-end/64888 + * c-omp.c (c_omp_predefined_variable): Return true also for + ubsan_create_data created artificial variables. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-10-01 Jakub Jelinek + Richard Biener + + PR sanitizer/102515 + * c-ubsan.c (ubsan_instrument_division): Check the right + flag_sanitize_recover bit, depending on which sanitization + is done. + + 2022-05-09 Patrick Palka + + Backported from master: + 2022-04-26 Patrick Palka + + PR c++/105304 + * c-common.c (verify_tree) [restart]: Move up to before the + NULL test. + 2021-04-08 Release Manager * GCC 10.3.0 released. diff -Nrcpad gcc-10.3.0/gcc/c-family/c-common.c gcc-10.4.0/gcc/c-family/c-common.c *** gcc-10.3.0/gcc/c-family/c-common.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/c-family/c-common.c Tue Jun 28 08:54:27 2022 *************** verify_tree (tree x, struct tlist **pbef *** 1838,1849 **** enum tree_code code; enum tree_code_class cl; /* X may be NULL if it is the operand of an empty statement expression ({ }). */ if (x == NULL) return; - restart: code = TREE_CODE (x); cl = TREE_CODE_CLASS (code); --- 1838,1849 ---- enum tree_code code; enum tree_code_class cl; + restart: /* X may be NULL if it is the operand of an empty statement expression ({ }). */ if (x == NULL) return; code = TREE_CODE (x); cl = TREE_CODE_CLASS (code); *************** shorten_compare (location_t loc, tree *o *** 2980,2986 **** else if (real1 && real2 && (DECIMAL_FLOAT_MODE_P (TYPE_MODE (TREE_TYPE (primop0))) || DECIMAL_FLOAT_MODE_P (TYPE_MODE (TREE_TYPE (primop1))))) ! return NULL_TREE; else if (real1 && real2 && (TYPE_PRECISION (TREE_TYPE (primop0)) --- 2980,2990 ---- else if (real1 && real2 && (DECIMAL_FLOAT_MODE_P (TYPE_MODE (TREE_TYPE (primop0))) || DECIMAL_FLOAT_MODE_P (TYPE_MODE (TREE_TYPE (primop1))))) ! { ! type = *restype_ptr; ! primop0 = op0; ! primop1 = op1; ! } else if (real1 && real2 && (TYPE_PRECISION (TREE_TYPE (primop0)) *************** c_common_nodes_and_builtins (void) *** 4027,4032 **** --- 4031,4038 ---- sprintf (name, "__int%d__", int_n_data[i].bitsize); record_builtin_type ((enum rid)(RID_FIRST_INT_N + i), name, int_n_trees[i].signed_type); + ridpointers[RID_FIRST_INT_N + i] + = DECL_NAME (TYPE_NAME (int_n_trees[i].signed_type)); sprintf (name, "__int%d unsigned", int_n_data[i].bitsize); record_builtin_type (RID_MAX, name, int_n_trees[i].unsigned_type); diff -Nrcpad gcc-10.3.0/gcc/c-family/c-omp.c gcc-10.4.0/gcc/c-family/c-omp.c *** gcc-10.3.0/gcc/c-family/c-omp.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/c-family/c-omp.c Tue Jun 28 08:54:27 2022 *************** c_omp_predefined_variable (tree decl) *** 2094,2106 **** { if (VAR_P (decl) && DECL_ARTIFICIAL (decl) - && TREE_READONLY (decl) && TREE_STATIC (decl) ! && DECL_NAME (decl) ! && (DECL_NAME (decl) == ridpointers[RID_C99_FUNCTION_NAME] ! || DECL_NAME (decl) == ridpointers[RID_FUNCTION_NAME] ! || DECL_NAME (decl) == ridpointers[RID_PRETTY_FUNCTION_NAME])) ! return true; return false; } --- 2094,2137 ---- { if (VAR_P (decl) && DECL_ARTIFICIAL (decl) && TREE_STATIC (decl) ! && DECL_NAME (decl)) ! { ! if (TREE_READONLY (decl) ! && (DECL_NAME (decl) == ridpointers[RID_C99_FUNCTION_NAME] ! || DECL_NAME (decl) == ridpointers[RID_FUNCTION_NAME] ! || DECL_NAME (decl) == ridpointers[RID_PRETTY_FUNCTION_NAME])) ! return true; ! /* For UBSan handle the same also ubsan_create_data created ! variables. There is no magic flag for those, but user variables ! shouldn't be DECL_ARTIFICIAL or have TYPE_ARTIFICIAL type with ! such names. */ ! if ((flag_sanitize & (SANITIZE_UNDEFINED ! | SANITIZE_UNDEFINED_NONDEFAULT)) != 0 ! && DECL_IGNORED_P (decl) ! && !TREE_READONLY (decl) ! && TREE_CODE (DECL_NAME (decl)) == IDENTIFIER_NODE ! && TREE_CODE (TREE_TYPE (decl)) == RECORD_TYPE ! && TYPE_ARTIFICIAL (TREE_TYPE (decl)) ! && TYPE_NAME (TREE_TYPE (decl)) ! && TREE_CODE (TYPE_NAME (TREE_TYPE (decl))) == TYPE_DECL ! && DECL_NAME (TYPE_NAME (TREE_TYPE (decl))) ! && (TREE_CODE (DECL_NAME (TYPE_NAME (TREE_TYPE (decl)))) ! == IDENTIFIER_NODE)) ! { ! tree id1 = DECL_NAME (decl); ! tree id2 = DECL_NAME (TYPE_NAME (TREE_TYPE (decl))); ! if (IDENTIFIER_LENGTH (id1) >= sizeof ("ubsan_data") - 1 ! && IDENTIFIER_LENGTH (id2) >= sizeof ("__ubsan__data") ! && !memcmp (IDENTIFIER_POINTER (id2), "__ubsan_", ! sizeof ("__ubsan_") - 1) ! && !memcmp (IDENTIFIER_POINTER (id2) + IDENTIFIER_LENGTH (id2) ! - sizeof ("_data") + 1, "_data", ! sizeof ("_data") - 1) ! && strstr (IDENTIFIER_POINTER (id1), "ubsan_data")) ! return true; ! } ! } return false; } diff -Nrcpad gcc-10.3.0/gcc/c-family/c-opts.c gcc-10.4.0/gcc/c-family/c-opts.c *** gcc-10.3.0/gcc/c-family/c-opts.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/c-family/c-opts.c Tue Jun 28 08:54:27 2022 *************** c_common_post_options (const char **pfil *** 840,848 **** 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; --- 840,848 ---- 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; *************** c_common_post_options (const char **pfil *** 913,922 **** if (warn_shift_overflow == -1) warn_shift_overflow = cxx_dialect >= cxx11 || flag_isoc99; ! /* -Wshift-negative-value is enabled by -Wextra in C99 and C++11 modes. */ if (warn_shift_negative_value == -1) warn_shift_negative_value = (extra_warnings ! && (cxx_dialect >= cxx11 || flag_isoc99)); /* -Wregister is enabled by default in C++17. */ SET_OPTION_IF_UNSET (&global_options, &global_options_set, warn_register, --- 913,924 ---- if (warn_shift_overflow == -1) warn_shift_overflow = cxx_dialect >= cxx11 || flag_isoc99; ! /* -Wshift-negative-value is enabled by -Wextra in C99 and C++11 to C++17 ! modes. */ if (warn_shift_negative_value == -1) warn_shift_negative_value = (extra_warnings ! && (cxx_dialect >= cxx11 || flag_isoc99) ! && cxx_dialect < cxx2a); /* -Wregister is enabled by default in C++17. */ SET_OPTION_IF_UNSET (&global_options, &global_options_set, warn_register, diff -Nrcpad gcc-10.3.0/gcc/c-family/c-ubsan.c gcc-10.4.0/gcc/c-family/c-ubsan.c *** gcc-10.3.0/gcc/c-family/c-ubsan.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/c-family/c-ubsan.c Tue Jun 28 08:54:27 2022 *************** ubsan_instrument_division (location_t lo *** 41,46 **** --- 41,47 ---- { tree t, tt; tree type = TREE_TYPE (op0); + enum sanitize_code flag = SANITIZE_DIVIDE; /* At this point both operands should have the same type, because they are already converted to RESULT_TYPE. *************** ubsan_instrument_division (location_t lo *** 58,65 **** op1, build_int_cst (type, 0)); else if (TREE_CODE (type) == REAL_TYPE && sanitize_flags_p (SANITIZE_FLOAT_DIVIDE)) ! t = fold_build2 (EQ_EXPR, boolean_type_node, ! op1, build_real (type, dconst0)); else return NULL_TREE; --- 59,69 ---- op1, build_int_cst (type, 0)); else if (TREE_CODE (type) == REAL_TYPE && sanitize_flags_p (SANITIZE_FLOAT_DIVIDE)) ! { ! t = fold_build2 (EQ_EXPR, boolean_type_node, ! op1, build_real (type, dconst0)); ! flag = SANITIZE_FLOAT_DIVIDE; ! } else return NULL_TREE; *************** ubsan_instrument_division (location_t lo *** 95,101 **** NULL_TREE); data = build_fold_addr_expr_loc (loc, data); enum built_in_function bcode ! = (flag_sanitize_recover & SANITIZE_DIVIDE) ? BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW : BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW_ABORT; tt = builtin_decl_explicit (bcode); --- 99,105 ---- NULL_TREE); data = build_fold_addr_expr_loc (loc, data); enum built_in_function bcode ! = (flag_sanitize_recover & flag) ? BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW : BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW_ABORT; tt = builtin_decl_explicit (bcode); *************** ubsan_instrument_shift (location_t loc, *** 142,148 **** || cxx_dialect >= cxx2a) ; ! /* For signed x << y, in C99/C11, the following: (unsigned) x >> (uprecm1 - y) if non-zero, is undefined. */ else if (code == LSHIFT_EXPR && flag_isoc99 && cxx_dialect < cxx11) --- 146,152 ---- || cxx_dialect >= cxx2a) ; ! /* For signed x << y, in C99 and later, the following: (unsigned) x >> (uprecm1 - y) if non-zero, is undefined. */ else if (code == LSHIFT_EXPR && flag_isoc99 && cxx_dialect < cxx11) *************** ubsan_instrument_shift (location_t loc, *** 155,161 **** build_int_cst (TREE_TYPE (tt), 0)); } ! /* For signed x << y, in C++11 and later, the following: x < 0 || ((unsigned) x >> (uprecm1 - y)) if > 1, is undefined. */ else if (code == LSHIFT_EXPR && cxx_dialect >= cxx11) --- 159,165 ---- build_int_cst (TREE_TYPE (tt), 0)); } ! /* For signed x << y, in C++11 to C++17, the following: x < 0 || ((unsigned) x >> (uprecm1 - y)) if > 1, is undefined. */ else if (code == LSHIFT_EXPR && cxx_dialect >= cxx11) diff -Nrcpad gcc-10.3.0/gcc/c-family/c-warn.c gcc-10.4.0/gcc/c-family/c-warn.c *** gcc-10.3.0/gcc/c-family/c-warn.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/c-family/c-warn.c Tue Jun 28 08:54:27 2022 *************** conversion_warning (location_t loc, tree *** 1302,1307 **** --- 1302,1335 ---- || conversion_warning (loc, type, op2, result)); } + case BIT_AND_EXPR: + if (TREE_CODE (expr_type) == INTEGER_TYPE + && TREE_CODE (type) == INTEGER_TYPE) + for (int i = 0; i < 2; ++i) + { + tree op = TREE_OPERAND (expr, i); + if (TREE_CODE (op) != INTEGER_CST) + continue; + + /* If one of the operands is a non-negative constant + that fits in the target type, then the type of the + other operand does not matter. */ + if (int_fits_type_p (op, c_common_signed_type (type)) + && int_fits_type_p (op, c_common_unsigned_type (type))) + return false; + + /* If constant is unsigned and fits in the target + type, then the result will also fit. */ + if (TYPE_UNSIGNED (TREE_TYPE (op)) && int_fits_type_p (op, type)) + return false; + } + /* FALLTHRU */ + case BIT_IOR_EXPR: + case BIT_XOR_EXPR: + return (conversion_warning (loc, type, TREE_OPERAND (expr, 0), result) + || conversion_warning (loc, type, TREE_OPERAND (expr, 1), + result)); + default_: default: conversion_kind = unsafe_conversion_p (type, expr, result, true); *************** maybe_warn_shift_overflow (location_t lo *** 2587,2593 **** unsigned int prec0 = TYPE_PRECISION (type0); /* Left-hand operand must be signed. */ ! if (TYPE_UNSIGNED (type0) || cxx_dialect >= cxx2a) return false; unsigned int min_prec = (wi::min_precision (wi::to_wide (op0), SIGNED) --- 2615,2621 ---- unsigned int prec0 = TYPE_PRECISION (type0); /* Left-hand operand must be signed. */ ! if (TYPE_OVERFLOW_WRAPS (type0) || cxx_dialect >= cxx2a) return false; unsigned int min_prec = (wi::min_precision (wi::to_wide (op0), SIGNED) diff -Nrcpad gcc-10.3.0/gcc/c-family/stub-objc.c gcc-10.4.0/gcc/c-family/stub-objc.c *** gcc-10.3.0/gcc/c-family/stub-objc.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/c-family/stub-objc.c Tue Jun 28 08:54:27 2022 *************** along with GCC; see the file COPYING3. *** 25,34 **** #include "tree.h" #include "vec.h" ! /* Provide a dummy type for the RID enum used as an argument to ! objc_prop_attr_kind_for_rid () */ ! enum rid { DUMMY }; ! #include "c-objc.h" tree --- 25,31 ---- #include "tree.h" #include "vec.h" ! #include "c-common.h" /* for enum rid. */ #include "c-objc.h" tree diff -Nrcpad gcc-10.3.0/gcc/calls.c gcc-10.4.0/gcc/calls.c *** gcc-10.3.0/gcc/calls.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/calls.c Tue Jun 28 08:54:27 2022 *************** maybe_warn_rdwr_sizes (rdwr_map *rwm, tr *** 2112,2117 **** --- 2112,2122 ---- } else { + /* If the size cannot be determined clear it to keep it from + being taken as real (and excessive). */ + if (objsize && integer_all_onesp (objsize)) + objsize = NULL_TREE; + /* For read-only and read-write attributes also set the source size. */ srcsize = objsize; diff -Nrcpad gcc-10.3.0/gcc/cfganal.c gcc-10.4.0/gcc/cfganal.c *** gcc-10.3.0/gcc/cfganal.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/cfganal.c Tue Jun 28 08:54:27 2022 *************** pre_and_rev_post_order_compute (int *pre *** 1060,1172 **** return pre_order_num; } ! /* Unlike pre_and_rev_post_order_compute we fill rev_post_order backwards ! so iterating in RPO order needs to start with rev_post_order[n - 1] ! going to rev_post_order[0]. If FOR_ITERATION is true then try to ! make CFG cycles fit into small contiguous regions of the RPO order. ! When FOR_ITERATION is true this requires up-to-date loop structures. */ int rev_post_order_and_mark_dfs_back_seme (struct function *fn, edge entry, bitmap exit_bbs, bool for_iteration, ! int *rev_post_order) { - int pre_order_num = 0; int rev_post_order_num = 0; - /* Allocate stack for back-tracking up CFG. Worst case we need - O(n^2) edges but the following should suffice in practice without - a need to re-allocate. */ - auto_vec stack (2 * n_basic_blocks_for_fn (fn)); - - int *pre = XNEWVEC (int, 2 * last_basic_block_for_fn (fn)); - int *post = pre + last_basic_block_for_fn (fn); - /* BB flag to track nodes that have been visited. */ auto_bb_flag visited (fn); - /* BB flag to track which nodes have post[] assigned to avoid - zeroing post. */ - auto_bb_flag post_assigned (fn); ! /* Push the first edge on to the stack. */ ! stack.quick_push (entry); ! while (!stack.is_empty ()) ! { ! basic_block src; ! basic_block dest; ! /* Look at the edge on the top of the stack. */ ! int idx = stack.length () - 1; ! edge e = stack[idx]; ! src = e->src; ! dest = e->dest; ! e->flags &= ~EDGE_DFS_BACK; ! /* Check if the edge destination has been visited yet. */ ! if (! bitmap_bit_p (exit_bbs, dest->index) ! && ! (dest->flags & visited)) { ! /* Mark that we have visited the destination. */ ! dest->flags |= visited; ! ! pre[dest->index] = pre_order_num++; ! if (EDGE_COUNT (dest->succs) > 0) { ! /* Since the DEST node has been visited for the first ! time, check its successors. */ ! /* Push the edge vector in reverse to match previous behavior. */ ! stack.reserve (EDGE_COUNT (dest->succs)); ! for (int i = EDGE_COUNT (dest->succs) - 1; i >= 0; --i) ! stack.quick_push (EDGE_SUCC (dest, i)); ! /* Generalize to handle more successors? */ ! if (for_iteration ! && EDGE_COUNT (dest->succs) == 2) ! { ! edge &e1 = stack[stack.length () - 2]; ! if (loop_exit_edge_p (e1->src->loop_father, e1)) ! std::swap (e1, stack.last ()); ! } } else { ! /* There are no successors for the DEST node so assign ! its reverse completion number. */ ! post[dest->index] = rev_post_order_num; ! dest->flags |= post_assigned; ! rev_post_order[rev_post_order_num] = dest->index; ! rev_post_order_num++; } } ! else ! { ! if (dest->flags & visited ! && src != entry->src ! && pre[src->index] >= pre[dest->index] ! && !(dest->flags & post_assigned)) ! e->flags |= EDGE_DFS_BACK; ! if (idx != 0 && stack[idx - 1]->src != src) { ! /* There are no more successors for the SRC node ! so assign its reverse completion number. */ ! post[src->index] = rev_post_order_num; ! src->flags |= post_assigned; ! rev_post_order[rev_post_order_num] = src->index; ! rev_post_order_num++; } ! stack.pop (); } } ! XDELETEVEC (pre); ! /* Clear the temporarily allocated flags. */ for (int i = 0; i < rev_post_order_num; ++i) ! BASIC_BLOCK_FOR_FN (fn, rev_post_order[i])->flags ! &= ~(post_assigned|visited); return rev_post_order_num; } --- 1060,1448 ---- return pre_order_num; } ! ! /* Per basic-block data for rev_post_order_and_mark_dfs_back_seme, ! element of a sparsely populated array indexed by basic-block number. */ ! typedef auto_vec scc_exit_vec_t; ! struct rpoamdbs_bb_data { ! int depth; ! int bb_to_pre; ! /* The basic-block index of the SCC entry of the block visited first ! (the SCC leader). */ ! int scc; ! /* The index into the RPO array where the blocks SCC entries end ! (only valid for the SCC leader). */ ! int scc_end; ! /* The indexes of the exits destinations of this SCC (only valid ! for the SCC leader). Initialized upon discovery of SCC leaders. */ ! scc_exit_vec_t scc_exits; ! }; ! ! /* Tag H as a header of B, weaving H and its loop header list into the ! current loop header list of B. */ ! ! static void ! tag_header (int b, int h, rpoamdbs_bb_data *bb_data) ! { ! if (h == -1 || b == h) ! return; ! int cur1 = b; ! int cur2 = h; ! while (bb_data[cur1].scc != -1) ! { ! int ih = bb_data[cur1].scc; ! if (ih == cur2) ! return; ! if (bb_data[ih].depth < bb_data[cur2].depth) ! { ! bb_data[cur1].scc = cur2; ! cur1 = cur2; ! cur2 = ih; ! } ! else ! cur1 = ih; ! } ! bb_data[cur1].scc = cur2; ! } ! ! /* Comparator for a sort of two edges destinations E1 and E2 after their index ! in the PRE array as specified by BB_TO_PRE. */ ! ! static int ! cmp_edge_dest_pre (const void *e1_, const void *e2_, void *data_) ! { ! const int *e1 = (const int *)e1_; ! const int *e2 = (const int *)e2_; ! rpoamdbs_bb_data *bb_data = (rpoamdbs_bb_data *)data_; ! return (bb_data[*e1].bb_to_pre - bb_data[*e2].bb_to_pre); ! } ! ! /* Compute the reverse completion number of a depth first search ! on the SEME region denoted by the ENTRY edge and the EXIT_BBS set of ! exit block indexes and store it in the array REV_POST_ORDER. ! Also sets the EDGE_DFS_BACK edge flags according to this visitation ! order. ! Returns the number of nodes visited. ! ! In case the function has unreachable blocks the number of nodes ! visited does not include them. ! ! If FOR_ITERATION is true then compute an RPO where SCCs form a ! contiguous region in the RPO array. ! *TOPLEVEL_SCC_EXTENTS if not NULL is filled with pairs of ! *REV_POST_ORDER indexes denoting extents of the toplevel SCCs in ! this region. */ int rev_post_order_and_mark_dfs_back_seme (struct function *fn, edge entry, bitmap exit_bbs, bool for_iteration, ! int *rev_post_order, ! vec > ! *toplevel_scc_extents) { int rev_post_order_num = 0; /* BB flag to track nodes that have been visited. */ auto_bb_flag visited (fn); ! /* Lazily initialized per-BB data for the two DFS walks below. */ ! rpoamdbs_bb_data *bb_data ! = XNEWVEC (rpoamdbs_bb_data, last_basic_block_for_fn (fn)); ! /* First DFS walk, loop discovery according to ! A New Algorithm for Identifying Loops in Decompilation ! by Tao Wei, Jian Mao, Wei Zou and You Chen of the Institute of ! Computer Science and Technology of the Peking University. */ ! auto_vec ei_stack (n_basic_blocks_for_fn (fn) + 1); ! auto_bb_flag is_header (fn); ! int depth = 1; ! unsigned n_sccs = 0; ! basic_block dest = entry->dest; ! edge_iterator ei; ! int pre_num = 0; ! /* DFS process DEST. */ ! find_loops: ! bb_data[dest->index].bb_to_pre = pre_num++; ! bb_data[dest->index].depth = depth; ! bb_data[dest->index].scc = -1; ! depth++; ! gcc_assert ((dest->flags & (is_header|visited)) == 0); ! dest->flags |= visited; ! ei = ei_start (dest->succs); ! while (!ei_end_p (ei)) ! { ! ei_edge (ei)->flags &= ~EDGE_DFS_BACK; ! if (bitmap_bit_p (exit_bbs, ei_edge (ei)->dest->index)) ! ; ! else if (!(ei_edge (ei)->dest->flags & visited)) { ! ei_stack.quick_push (ei); ! dest = ei_edge (ei)->dest; ! /* DFS recurse on DEST. */ ! goto find_loops; ! ret_from_find_loops: ! /* Return point of DFS recursion. */ ! ei = ei_stack.pop (); ! dest = ei_edge (ei)->src; ! int header = bb_data[ei_edge (ei)->dest->index].scc; ! tag_header (dest->index, header, bb_data); ! depth = bb_data[dest->index].depth + 1; ! } ! else ! { ! if (bb_data[ei_edge (ei)->dest->index].depth > 0) /* on the stack */ { ! ei_edge (ei)->flags |= EDGE_DFS_BACK; ! n_sccs++; ! ei_edge (ei)->dest->flags |= is_header; ! ::new (&bb_data[ei_edge (ei)->dest->index].scc_exits) ! auto_vec (); ! tag_header (dest->index, ei_edge (ei)->dest->index, bb_data); } + else if (bb_data[ei_edge (ei)->dest->index].scc == -1) + ; else { ! int header = bb_data[ei_edge (ei)->dest->index].scc; ! if (bb_data[header].depth > 0) ! tag_header (dest->index, header, bb_data); ! else ! { ! /* A re-entry into an existing loop. */ ! /* ??? Need to mark is_header? */ ! while (bb_data[header].scc != -1) ! { ! header = bb_data[header].scc; ! if (bb_data[header].depth > 0) ! { ! tag_header (dest->index, header, bb_data); ! break; ! } ! } ! } } } ! ei_next (&ei); ! } ! rev_post_order[rev_post_order_num++] = dest->index; ! /* not on the stack anymore */ ! bb_data[dest->index].depth = -bb_data[dest->index].depth; ! if (!ei_stack.is_empty ()) ! /* Return from DFS recursion. */ ! goto ret_from_find_loops; ! /* Optimize for no SCCs found or !for_iteration. */ ! if (n_sccs == 0 || !for_iteration) ! { ! /* Clear the temporarily allocated flags. */ ! for (int i = 0; i < rev_post_order_num; ++i) ! BASIC_BLOCK_FOR_FN (fn, rev_post_order[i])->flags ! &= ~(is_header|visited); ! /* And swap elements. */ ! for (int i = 0; i < rev_post_order_num/2; ++i) ! std::swap (rev_post_order[i], rev_post_order[rev_post_order_num-i-1]); ! XDELETEVEC (bb_data); ! ! return rev_post_order_num; ! } ! ! /* Next find SCC exits, clear the visited flag and compute an upper bound ! for the edge stack below. */ ! unsigned edge_count = 0; ! for (int i = 0; i < rev_post_order_num; ++i) ! { ! int bb = rev_post_order[i]; ! BASIC_BLOCK_FOR_FN (fn, bb)->flags &= ~visited; ! edge e; ! FOR_EACH_EDGE (e, ei, BASIC_BLOCK_FOR_FN (fn, bb)->succs) ! { ! if (bitmap_bit_p (exit_bbs, e->dest->index)) ! continue; ! edge_count++; ! /* if e is an exit from e->src, record it for ! bb_data[e->src].scc. */ ! int src_scc = e->src->index; ! if (!(e->src->flags & is_header)) ! src_scc = bb_data[src_scc].scc; ! if (src_scc == -1) ! continue; ! int dest_scc = e->dest->index; ! if (!(e->dest->flags & is_header)) ! dest_scc = bb_data[dest_scc].scc; ! if (src_scc == dest_scc) ! continue; ! /* When dest_scc is nested insde src_scc it's not an ! exit. */ ! int tem_dest_scc = dest_scc; ! unsigned dest_scc_depth = 0; ! while (tem_dest_scc != -1) { ! dest_scc_depth++; ! if ((tem_dest_scc = bb_data[tem_dest_scc].scc) == src_scc) ! break; ! } ! if (tem_dest_scc != -1) ! continue; ! /* When src_scc is nested inside dest_scc record an ! exit from the outermost SCC this edge exits. */ ! int tem_src_scc = src_scc; ! unsigned src_scc_depth = 0; ! while (tem_src_scc != -1) ! { ! if (bb_data[tem_src_scc].scc == dest_scc) ! { ! edge_count++; ! bb_data[tem_src_scc].scc_exits.safe_push (e->dest->index); ! break; ! } ! tem_src_scc = bb_data[tem_src_scc].scc; ! src_scc_depth++; ! } ! /* Else find the outermost SCC this edge exits (exits ! from the inner SCCs are not important for the DFS ! walk adjustment). Do so by computing the common ! ancestor SCC where the immediate child it to the source ! SCC is the exited SCC. */ ! if (tem_src_scc == -1) ! { ! edge_count++; ! while (src_scc_depth > dest_scc_depth) ! { ! src_scc = bb_data[src_scc].scc; ! src_scc_depth--; ! } ! while (dest_scc_depth > src_scc_depth) ! { ! dest_scc = bb_data[dest_scc].scc; ! dest_scc_depth--; ! } ! while (bb_data[src_scc].scc != bb_data[dest_scc].scc) ! { ! src_scc = bb_data[src_scc].scc; ! dest_scc = bb_data[dest_scc].scc; ! } ! bb_data[src_scc].scc_exits.safe_push (e->dest->index); } + } + } ! /* Now the second DFS walk to compute a RPO where the extent of SCCs ! is minimized thus SCC members are adjacent in the RPO array. ! This is done by performing a DFS walk computing RPO with first visiting ! extra direct edges from SCC entry to its exits. ! That simulates a DFS walk over the graph with SCCs collapsed and ! walking the SCCs themselves only when all outgoing edges from the ! SCCs have been visited. ! SCC_END[scc-header-index] is the position in the RPO array of the ! last member of the SCC. */ ! auto_vec, 20> estack (edge_count + 1); ! int idx = rev_post_order_num; ! basic_block edest; ! dest = entry->dest; ! ! /* DFS process DEST. */ ! dfs_rpo: ! gcc_checking_assert ((dest->flags & visited) == 0); ! /* Verify we enter SCCs through the same header and SCC nesting appears ! the same. */ ! gcc_assert (bb_data[dest->index].scc == -1 ! || (BASIC_BLOCK_FOR_FN (fn, bb_data[dest->index].scc)->flags ! & visited)); ! dest->flags |= visited; ! bb_data[dest->index].scc_end = -1; ! if ((dest->flags & is_header) ! && !bb_data[dest->index].scc_exits.is_empty ()) ! { ! /* Push the all SCC exits as outgoing edges from its header to ! be visited first. ! To process exits in the same relative order as in the first ! DFS walk sort them after their destination PRE order index. */ ! gcc_sort_r (&bb_data[dest->index].scc_exits[0], ! bb_data[dest->index].scc_exits.length (), ! sizeof (int), cmp_edge_dest_pre, bb_data); ! /* Process edges in reverse to match previous DFS walk order. */ ! for (int i = bb_data[dest->index].scc_exits.length () - 1; i >= 0; --i) ! estack.quick_push (std::make_pair ! (dest, BASIC_BLOCK_FOR_FN (fn, bb_data[dest->index].scc_exits[i]))); ! } ! else ! { ! if (dest->flags & is_header) ! bb_data[dest->index].scc_end = idx - 1; ! /* Push the edge vector in reverse to match the iteration order ! from the DFS walk above. */ ! for (int i = EDGE_COUNT (dest->succs) - 1; i >= 0; --i) ! if (!bitmap_bit_p (exit_bbs, EDGE_SUCC (dest, i)->dest->index)) ! estack.quick_push (std::make_pair (dest, ! EDGE_SUCC (dest, i)->dest)); ! } ! while (!estack.is_empty () ! && estack.last ().first == dest) ! { ! edest = estack.last ().second; ! if (!(edest->flags & visited)) ! { ! dest = edest; ! /* DFS recurse on DEST. */ ! goto dfs_rpo; ! ! ret_from_dfs_rpo: ! /* Return point of DFS recursion. */ ! dest = estack.last ().first; ! } ! estack.pop (); ! /* If we processed all SCC exits from DEST mark the SCC end ! since all RPO entries up to DEST itself will now belong ! to its SCC. The special-case of no SCC exits is already ! dealt with above. */ ! if (dest->flags & is_header ! /* When the last exit edge was processed mark the SCC end ! and push the regular edges. */ ! && bb_data[dest->index].scc_end == -1 ! && (estack.is_empty () ! || estack.last ().first != dest)) ! { ! bb_data[dest->index].scc_end = idx - 1; ! /* Push the edge vector in reverse to match the iteration order ! from the DFS walk above. */ ! for (int i = EDGE_COUNT (dest->succs) - 1; i >= 0; --i) ! if (!bitmap_bit_p (exit_bbs, EDGE_SUCC (dest, i)->dest->index)) ! estack.quick_push (std::make_pair (dest, ! EDGE_SUCC (dest, i)->dest)); } } + rev_post_order[--idx] = dest->index; + if (!estack.is_empty ()) + /* Return from DFS recursion. */ + goto ret_from_dfs_rpo; ! /* Each SCC extends are from the position of the header inside ! the RPO array up to RPO array index scc_end[header-index]. */ ! if (toplevel_scc_extents) ! for (int i = 0; i < rev_post_order_num; i++) ! { ! basic_block bb = BASIC_BLOCK_FOR_FN (fn, rev_post_order[i]); ! if (bb->flags & is_header) ! { ! toplevel_scc_extents->safe_push ! (std::make_pair (i, bb_data[bb->index].scc_end)); ! i = bb_data[bb->index].scc_end; ! } ! } ! /* Clear the temporarily allocated flags and free memory. */ for (int i = 0; i < rev_post_order_num; ++i) ! { ! basic_block bb = BASIC_BLOCK_FOR_FN (fn, rev_post_order[i]); ! if (bb->flags & is_header) ! bb_data[bb->index].scc_exits.~scc_exit_vec_t (); ! bb->flags &= ~(visited|is_header); ! } ! ! XDELETEVEC (bb_data); return rev_post_order_num; } diff -Nrcpad gcc-10.3.0/gcc/cfganal.h gcc-10.4.0/gcc/cfganal.h *** gcc-10.3.0/gcc/cfganal.h Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/cfganal.h Tue Jun 28 08:54:27 2022 *************** extern int pre_and_rev_post_order_comput *** 68,74 **** int *, int *, bool); extern int pre_and_rev_post_order_compute (int *, int *, bool); extern int rev_post_order_and_mark_dfs_back_seme (struct function *, edge, ! bitmap, bool, int *); extern int dfs_enumerate_from (basic_block, int, bool (*)(const_basic_block, const void *), basic_block *, int, const void *); --- 68,75 ---- int *, int *, bool); extern int pre_and_rev_post_order_compute (int *, int *, bool); extern int rev_post_order_and_mark_dfs_back_seme (struct function *, edge, ! bitmap, bool, int *, ! vec > *); extern int dfs_enumerate_from (basic_block, int, bool (*)(const_basic_block, const void *), basic_block *, int, const void *); diff -Nrcpad gcc-10.3.0/gcc/cfgcleanup.c gcc-10.4.0/gcc/cfgcleanup.c *** gcc-10.3.0/gcc/cfgcleanup.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/cfgcleanup.c Tue Jun 28 08:54:27 2022 *************** outgoing_edges_match (int mode, basic_bl *** 1885,1892 **** /* Ensure the same EH region. */ { ! rtx n1 = find_reg_note (BB_END (bb1), REG_EH_REGION, 0); ! rtx n2 = find_reg_note (BB_END (bb2), REG_EH_REGION, 0); if (!n1 && n2) return false; --- 1885,1892 ---- /* Ensure the same EH region. */ { ! rtx n1 = find_reg_note (last1, REG_EH_REGION, 0); ! rtx n2 = find_reg_note (last2, REG_EH_REGION, 0); if (!n1 && n2) return false; diff -Nrcpad gcc-10.3.0/gcc/cfgexpand.c gcc-10.4.0/gcc/cfgexpand.c *** gcc-10.3.0/gcc/cfgexpand.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/cfgexpand.c Tue Jun 28 08:54:27 2022 *************** expand_asm_stmt (gasm *stmt) *** 2939,2944 **** --- 2939,2945 ---- unsigned ninputs = gimple_asm_ninputs (stmt); unsigned nlabels = gimple_asm_nlabels (stmt); unsigned i; + bool error_seen = false; /* ??? Diagnose during gimplification? */ if (ninputs + noutputs + nlabels > MAX_RECOG_OPERANDS) *************** expand_asm_stmt (gasm *stmt) *** 2997,3002 **** --- 2998,3004 ---- { /* ??? Diagnose during gimplification? */ error ("unknown register name %qs in %", regname); + error_seen = true; } else if (j == -4) { *************** expand_asm_stmt (gasm *stmt) *** 3059,3065 **** && REG_P (DECL_RTL (output_tvec[j])) && HARD_REGISTER_P (DECL_RTL (output_tvec[j])) && output_hregno == REGNO (DECL_RTL (output_tvec[j]))) ! error ("invalid hard register usage between output operands"); /* Verify matching constraint operands use the same hard register and that the non-matching constraint operands do not use the same --- 3061,3070 ---- && REG_P (DECL_RTL (output_tvec[j])) && HARD_REGISTER_P (DECL_RTL (output_tvec[j])) && output_hregno == REGNO (DECL_RTL (output_tvec[j]))) ! { ! error ("invalid hard register usage between output operands"); ! error_seen = true; ! } /* Verify matching constraint operands use the same hard register and that the non-matching constraint operands do not use the same *************** expand_asm_stmt (gasm *stmt) *** 3082,3094 **** } if (i == match && output_hregno != input_hregno) ! error ("invalid hard register usage between output operand " ! "and matching constraint operand"); else if (early_clobber_p && i != match && output_hregno == input_hregno) ! error ("invalid hard register usage between earlyclobber " ! "operand and input operand"); } } --- 3087,3105 ---- } if (i == match && output_hregno != input_hregno) ! { ! error ("invalid hard register usage between output " ! "operand and matching constraint operand"); ! error_seen = true; ! } else if (early_clobber_p && i != match && output_hregno == input_hregno) ! { ! error ("invalid hard register usage between " ! "earlyclobber operand and input operand"); ! error_seen = true; ! } } } *************** expand_asm_stmt (gasm *stmt) *** 3156,3162 **** && GET_MODE (DECL_RTL (val)) != TYPE_MODE (type))) || ! allows_reg || is_inout ! || TREE_ADDRESSABLE (type)) { op = expand_expr (val, NULL_RTX, VOIDmode, !allows_reg ? EXPAND_MEMORY : EXPAND_WRITE); --- 3167,3175 ---- && GET_MODE (DECL_RTL (val)) != TYPE_MODE (type))) || ! allows_reg || is_inout ! || TREE_ADDRESSABLE (type) ! || (!tree_fits_poly_int64_p (TYPE_SIZE (type)) ! && !known_size_p (max_int_size_in_bytes (type)))) { op = expand_expr (val, NULL_RTX, VOIDmode, !allows_reg ? EXPAND_MEMORY : EXPAND_WRITE); *************** expand_asm_stmt (gasm *stmt) *** 3164,3170 **** op = validize_mem (op); if (! allows_reg && !MEM_P (op)) ! error ("output number %d not directly addressable", i); if ((! allows_mem && MEM_P (op) && GET_MODE (op) != BLKmode) || GET_CODE (op) == CONCAT) { --- 3177,3186 ---- op = validize_mem (op); if (! allows_reg && !MEM_P (op)) ! { ! error ("output number %d not directly addressable", i); ! error_seen = true; ! } if ((! allows_mem && MEM_P (op) && GET_MODE (op) != BLKmode) || GET_CODE (op) == CONCAT) { *************** expand_asm_stmt (gasm *stmt) *** 3204,3209 **** --- 3220,3238 ---- inout_opnum.safe_push (i); } + const char *str = gimple_asm_string (stmt); + if (error_seen) + { + ninputs = 0; + noutputs = 0; + inout_opnum.truncate (0); + output_rvec.truncate (0); + clobber_rvec.truncate (0); + constraints.truncate (0); + CLEAR_HARD_REG_SET (clobbered_regs); + str = ""; + } + auto_vec input_rvec; auto_vec input_mode; *************** expand_asm_stmt (gasm *stmt) *** 3262,3268 **** } /* For in-out operands, copy output rtx to input rtx. */ ! unsigned ninout = inout_opnum.length(); for (i = 0; i < ninout; i++) { int j = inout_opnum[i]; --- 3291,3297 ---- } /* For in-out operands, copy output rtx to input rtx. */ ! unsigned ninout = inout_opnum.length (); for (i = 0; i < ninout; i++) { int j = inout_opnum[i]; *************** expand_asm_stmt (gasm *stmt) *** 3316,3322 **** rtx body = gen_rtx_ASM_OPERANDS ((noutputs == 0 ? VOIDmode : GET_MODE (output_rvec[0])), ! ggc_strdup (gimple_asm_string (stmt)), "", 0, argvec, constraintvec, labelvec, locus); MEM_VOLATILE_P (body) = gimple_asm_volatile_p (stmt); --- 3345,3351 ---- rtx body = gen_rtx_ASM_OPERANDS ((noutputs == 0 ? VOIDmode : GET_MODE (output_rvec[0])), ! ggc_strdup (str), "", 0, argvec, constraintvec, labelvec, locus); MEM_VOLATILE_P (body) = gimple_asm_volatile_p (stmt); *************** expand_debug_expr (tree exp) *** 4352,4358 **** op0 = DECL_RTL_IF_SET (exp); if (op0) ! return op0; op0 = gen_rtx_DEBUG_EXPR (mode); DEBUG_EXPR_TREE_DECL (op0) = exp; --- 4381,4392 ---- op0 = DECL_RTL_IF_SET (exp); if (op0) ! { ! if (GET_MODE (op0) != mode) ! gcc_assert (VECTOR_TYPE_P (TREE_TYPE (exp))); ! else ! return op0; ! } op0 = gen_rtx_DEBUG_EXPR (mode); DEBUG_EXPR_TREE_DECL (op0) = exp; diff -Nrcpad gcc-10.3.0/gcc/cfgloopmanip.c gcc-10.4.0/gcc/cfgloopmanip.c *** gcc-10.3.0/gcc/cfgloopmanip.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/cfgloopmanip.c Tue Jun 28 08:54:27 2022 *************** loop_version (class loop *loop, *** 1734,1739 **** --- 1734,1740 ---- then_scale, else_scale); copy_loop_info (loop, nloop); + set_loop_copy (loop, nloop); /* loopify redirected latch_edge. Update its PENDING_STMTS. */ lv_flush_pending_stmts (latch_edge); diff -Nrcpad gcc-10.3.0/gcc/cfgrtl.c gcc-10.4.0/gcc/cfgrtl.c *** gcc-10.3.0/gcc/cfgrtl.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/cfgrtl.c Tue Jun 28 08:54:27 2022 *************** delete_insn_and_edges (rtx_insn *insn) *** 230,236 **** { bool purge = false; ! if (INSN_P (insn) && BLOCK_FOR_INSN (insn)) { basic_block bb = BLOCK_FOR_INSN (insn); if (BB_END (bb) == insn) --- 230,236 ---- { bool purge = false; ! if (NONDEBUG_INSN_P (insn) && BLOCK_FOR_INSN (insn)) { basic_block bb = BLOCK_FOR_INSN (insn); if (BB_END (bb) == insn) diff -Nrcpad gcc-10.3.0/gcc/collect2.c gcc-10.4.0/gcc/collect2.c *** gcc-10.3.0/gcc/collect2.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/collect2.c Tue Jun 28 08:54:27 2022 *************** is_lto_object_file (const char *prog_nam *** 2301,2310 **** LTO_SEGMENT_NAME, &errmsg, &err); if (!inobj) ! return false; errmsg = simple_object_find_sections (inobj, has_lto_section, (void *) &found, &err); if (! errmsg && found) return true; --- 2301,2315 ---- LTO_SEGMENT_NAME, &errmsg, &err); if (!inobj) ! { ! close (infd); ! return false; ! } errmsg = simple_object_find_sections (inobj, has_lto_section, (void *) &found, &err); + simple_object_release_read (inobj); + close (infd); if (! errmsg && found) return true; *************** process_args (int *argcp, char **argv) { *** 3005,3019 **** static void do_dsymutil (const char *output_file) { ! const char *dsymutil = DSYMUTIL + 1; struct pex_obj *pex; ! char **real_argv = XCNEWVEC (char *, 3); const char ** argv = CONST_CAST2 (const char **, char **, real_argv); argv[0] = dsymutil; argv[1] = output_file; ! argv[2] = (char *) 0; pex = collect_execute (dsymutil, real_argv, NULL, NULL, PEX_LAST | PEX_SEARCH, false); --- 3010,3058 ---- static void do_dsymutil (const char *output_file) { ! const char *dsymutil = 0; struct pex_obj *pex; ! char **real_argv = XCNEWVEC (char *, verbose ? 4 : 3); const char ** argv = CONST_CAST2 (const char **, char **, real_argv); + /* For cross-builds search the PATH using target-qualified name if we + have not already found a suitable dsymutil. In practice, all modern + versions of dsymutil handle all supported archs, however the approach + here is consistent with the way other installations work (and one can + always symlink a multitarget dsymutil with a target-specific name). */ + const char *dsname = "dsymutil"; + #ifdef CROSS_DIRECTORY_STRUCTURE + const char *qname = concat (target_machine, "-", dsname, NULL); + #else + const char *qname = dsname; + #endif + #ifdef DEFAULT_DSYMUTIL + /* Configured default takes priority. */ + if (dsymutil == 0 && access (DEFAULT_DSYMUTIL, X_OK) == 0) + dsymutil = DEFAULT_DSYMUTIL; + if (dsymutil == 0) + #endif + #ifdef DSYMUTIL + /* Followed by one supplied in the target header, somewhat like the + REAL_XX_NAME used elsewhere. */ + dsymutil = find_a_file (&cpath, DSYMUTIL, X_OK); + if (dsymutil == 0) + dsymutil = find_a_file (&path, DSYMUTIL, X_OK); + if (dsymutil == 0) + #endif + dsymutil = find_a_file (&cpath, dsname, X_OK); + if (dsymutil == 0) + dsymutil = find_a_file (&path, qname, X_OK); argv[0] = dsymutil; argv[1] = output_file; ! if (verbose) ! { ! argv[2] = "-v"; ! argv[3] = (char *) 0; ! } ! else ! argv[2] = (char *) 0; pex = collect_execute (dsymutil, real_argv, NULL, NULL, PEX_LAST | PEX_SEARCH, false); diff -Nrcpad gcc-10.3.0/gcc/combine.c gcc-10.4.0/gcc/combine.c *** gcc-10.3.0/gcc/combine.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/combine.c Tue Jun 28 08:54:27 2022 *************** struct undo *** 396,402 **** struct undo *next; enum undo_kind kind; union { rtx r; int i; machine_mode m; struct insn_link *l; } old_contents; ! union { rtx *r; int *i; struct insn_link **l; } where; }; /* Record a bunch of changes to be undone, up to MAX_UNDO of them. --- 396,402 ---- struct undo *next; enum undo_kind kind; union { rtx r; int i; machine_mode m; struct insn_link *l; } old_contents; ! union { rtx *r; int *i; int regno; struct insn_link **l; } where; }; /* Record a bunch of changes to be undone, up to MAX_UNDO of them. *************** do_SUBST_INT (int *into, int newval) *** 792,801 **** well. */ static void ! do_SUBST_MODE (rtx *into, machine_mode newval) { struct undo *buf; ! machine_mode oldval = GET_MODE (*into); if (oldval == newval) return; --- 792,802 ---- well. */ static void ! subst_mode (int regno, machine_mode newval) { struct undo *buf; ! rtx reg = regno_reg_rtx[regno]; ! machine_mode oldval = GET_MODE (reg); if (oldval == newval) return; *************** do_SUBST_MODE (rtx *into, machine_mode n *** 806,820 **** buf = XNEW (struct undo); buf->kind = UNDO_MODE; ! buf->where.r = into; buf->old_contents.m = oldval; ! adjust_reg_mode (*into, newval); buf->next = undobuf.undos, undobuf.undos = buf; } - #define SUBST_MODE(INTO, NEWVAL) do_SUBST_MODE (&(INTO), (NEWVAL)) - /* Similar to SUBST, but NEWVAL is a LOG_LINKS expression. */ static void --- 807,819 ---- buf = XNEW (struct undo); buf->kind = UNDO_MODE; ! buf->where.regno = regno; buf->old_contents.m = oldval; ! adjust_reg_mode (reg, newval); buf->next = undobuf.undos, undobuf.undos = buf; } /* Similar to SUBST, but NEWVAL is a LOG_LINKS expression. */ static void *************** try_combine (rtx_insn *i3, rtx_insn *i2, *** 3214,3219 **** --- 3213,3228 ---- return 0; } + /* We cannot safely duplicate volatile references in any case. */ + + if ((added_sets_2 && volatile_refs_p (PATTERN (i2))) + || (added_sets_1 && volatile_refs_p (PATTERN (i1))) + || (added_sets_0 && volatile_refs_p (PATTERN (i0)))) + { + undo_all (); + return 0; + } + /* Count how many auto_inc expressions there were in the original insns; we need to have the same number in the resulting patterns. */ *************** try_combine (rtx_insn *i3, rtx_insn *i2, *** 3326,3332 **** newpat_dest = gen_rtx_REG (compare_mode, regno); else { ! SUBST_MODE (regno_reg_rtx[regno], compare_mode); newpat_dest = regno_reg_rtx[regno]; } } --- 3335,3341 ---- newpat_dest = gen_rtx_REG (compare_mode, regno); else { ! subst_mode (regno, compare_mode); newpat_dest = regno_reg_rtx[regno]; } } *************** try_combine (rtx_insn *i3, rtx_insn *i2, *** 3716,3722 **** ni2dest = gen_rtx_REG (new_mode, REGNO (i2dest)); else { ! SUBST_MODE (regno_reg_rtx[REGNO (i2dest)], new_mode); ni2dest = regno_reg_rtx[REGNO (i2dest)]; } --- 3725,3731 ---- ni2dest = gen_rtx_REG (new_mode, REGNO (i2dest)); else { ! subst_mode (REGNO (i2dest), new_mode); ni2dest = regno_reg_rtx[REGNO (i2dest)]; } *************** try_combine (rtx_insn *i3, rtx_insn *i2, *** 3853,3859 **** newdest = gen_rtx_REG (split_mode, REGNO (i2dest)); else { ! SUBST_MODE (regno_reg_rtx[REGNO (i2dest)], split_mode); newdest = regno_reg_rtx[REGNO (i2dest)]; } } --- 3862,3868 ---- newdest = gen_rtx_REG (split_mode, REGNO (i2dest)); else { ! subst_mode (REGNO (i2dest), split_mode); newdest = regno_reg_rtx[REGNO (i2dest)]; } } *************** try_combine (rtx_insn *i3, rtx_insn *i2, *** 4221,4227 **** for (undo = undobuf.undos; undo; undo = undo->next) if (undo->kind == UNDO_MODE) { ! rtx reg = *undo->where.r; machine_mode new_mode = GET_MODE (reg); machine_mode old_mode = undo->old_contents.m; --- 4230,4236 ---- for (undo = undobuf.undos; undo; undo = undo->next) if (undo->kind == UNDO_MODE) { ! rtx reg = regno_reg_rtx[undo->where.regno]; machine_mode new_mode = GET_MODE (reg); machine_mode old_mode = undo->old_contents.m; *************** try_combine (rtx_insn *i3, rtx_insn *i2, *** 4362,4371 **** for (rtx_insn *insn = NEXT_INSN (i3); !done && insn ! && NONDEBUG_INSN_P (insn) && BLOCK_FOR_INSN (insn) == this_basic_block; insn = NEXT_INSN (insn)) { struct insn_link *link; FOR_EACH_LOG_LINK (link, insn) if (link->insn == i3 && link->regno == regno) --- 4371,4382 ---- for (rtx_insn *insn = NEXT_INSN (i3); !done && insn ! && INSN_P (insn) && BLOCK_FOR_INSN (insn) == this_basic_block; insn = NEXT_INSN (insn)) { + if (DEBUG_INSN_P (insn)) + continue; struct insn_link *link; FOR_EACH_LOG_LINK (link, insn) if (link->insn == i3 && link->regno == regno) *************** undo_to_marker (void *marker) *** 4892,4898 **** *undo->where.i = undo->old_contents.i; break; case UNDO_MODE: ! adjust_reg_mode (*undo->where.r, undo->old_contents.m); break; case UNDO_LINKS: *undo->where.l = undo->old_contents.l; --- 4903,4910 ---- *undo->where.i = undo->old_contents.i; break; case UNDO_MODE: ! adjust_reg_mode (regno_reg_rtx[undo->where.regno], ! undo->old_contents.m); break; case UNDO_LINKS: *undo->where.l = undo->old_contents.l; *************** subst (rtx x, rtx from, rtx to, int in_d *** 5694,5699 **** --- 5706,5717 ---- if (!x) return gen_rtx_CLOBBER (VOIDmode, const0_rtx); } + /* CONST_INTs shouldn't be substituted into PRE_DEC, PRE_MODIFY + etc. arguments, otherwise we can ICE before trying to recog + it. See PR104446. */ + else if (CONST_SCALAR_INT_P (new_rtx) + && GET_RTX_CLASS (GET_CODE (x)) == RTX_AUTOINC) + return gen_rtx_CLOBBER (VOIDmode, const0_rtx); else SUBST (XEXP (x, i), new_rtx); } *************** simplify_set (rtx x) *** 6961,6967 **** new_dest = gen_rtx_REG (compare_mode, regno); else { ! SUBST_MODE (regno_reg_rtx[regno], compare_mode); new_dest = regno_reg_rtx[regno]; } --- 6979,6985 ---- new_dest = gen_rtx_REG (compare_mode, regno); else { ! subst_mode (regno, compare_mode); new_dest = regno_reg_rtx[regno]; } *************** expand_compound_operation (rtx x) *** 7444,7454 **** mode, tem, modewidth - len); } else if (unsignedp && len < HOST_BITS_PER_WIDE_INT) ! tem = simplify_and_const_int (NULL_RTX, mode, ! simplify_shift_const (NULL_RTX, LSHIFTRT, ! mode, XEXP (x, 0), ! pos), ! (HOST_WIDE_INT_1U << len) - 1); else /* Any other cases we can't handle. */ return x; --- 7462,7476 ---- mode, tem, modewidth - len); } else if (unsignedp && len < HOST_BITS_PER_WIDE_INT) ! { ! tem = simplify_shift_const (NULL_RTX, LSHIFTRT, inner_mode, ! XEXP (x, 0), pos); ! tem = gen_lowpart (mode, tem); ! if (!tem || GET_CODE (tem) == CLOBBER) ! return x; ! tem = simplify_and_const_int (NULL_RTX, mode, tem, ! (HOST_WIDE_INT_1U << len) - 1); ! } else /* Any other cases we can't handle. */ return x; *************** simplify_and_const_int_1 (scalar_int_mod *** 10170,10176 **** constop &= nonzero; /* If we don't have any bits left, return zero. */ ! if (constop == 0) return const0_rtx; /* If VAROP is a NEG of something known to be zero or 1 and CONSTOP is --- 10192,10198 ---- constop &= nonzero; /* If we don't have any bits left, return zero. */ ! if (constop == 0 && !side_effects_p (varop)) return const0_rtx; /* If VAROP is a NEG of something known to be zero or 1 and CONSTOP is *************** distribute_notes (rtx notes, rtx_insn *f *** 14378,14383 **** --- 14400,14410 ---- we keep notes from i2 or i1 if they will turn into REG_DEAD notes. */ + /* If this register is set or clobbered between FROM_INSN and I3, + we should not create a note for it. */ + if (reg_set_between_p (XEXP (note, 0), from_insn, i3)) + break; + /* If this register is set or clobbered in I3, put the note there unless there is one already. */ if (reg_set_p (XEXP (note, 0), PATTERN (i3))) diff -Nrcpad gcc-10.3.0/gcc/common/config/arm/arm-common.c gcc-10.4.0/gcc/common/config/arm/arm-common.c *** gcc-10.3.0/gcc/common/config/arm/arm-common.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/common/config/arm/arm-common.c Tue Jun 28 08:54:27 2022 *************** public: *** 590,598 **** The options array consists of couplets of information where the first item in each couplet is the string describing which option name was selected (arch, cpu, fpu) and the second is the value ! passed for that option. */ ! const char * ! arm_canon_arch_option (int argc, const char **argv) { const char *arch = NULL; const char *cpu = NULL; --- 590,604 ---- The options array consists of couplets of information where the first item in each couplet is the string describing which option name was selected (arch, cpu, fpu) and the second is the value ! passed for that option. ! ! arch_for_multilib is boolean variable taking value true or false. ! arch_for_multilib is false when the canonical representation is for -march ! option and it is true when canonical representation is for -mlibarch option. ! On passing arch_for_multilib true the canonical string generated will be ! without the compiler options which are not required for multilib linking. */ ! static const char * ! arm_canon_arch_option_1 (int argc, const char **argv, bool arch_for_multilib) { const char *arch = NULL; const char *cpu = NULL; *************** arm_canon_arch_option (int argc, const c *** 657,664 **** /* First build up a bitmap describing the target architecture. */ if (arch) { ! selected_arch = arm_parse_arch_option_name (all_architectures, ! "-march", arch); if (selected_arch == NULL) return ""; --- 663,670 ---- /* First build up a bitmap describing the target architecture. */ if (arch) { ! selected_arch = arm_parse_arch_option_name (all_architectures, "-march", ! arch, !arch_for_multilib); if (selected_arch == NULL) return ""; *************** arm_canon_arch_option (int argc, const c *** 666,671 **** --- 672,686 ---- arm_initialize_isa (target_isa, selected_arch->common.isa_bits); arm_parse_option_features (target_isa, &selected_arch->common, strchr (arch, '+')); + if (arch_for_multilib) + { + const enum isa_feature removable_bits[] = {ISA_IGNORE_FOR_MULTILIB, + isa_nobit}; + sbitmap isa_bits = sbitmap_alloc (isa_num_bits); + arm_initialize_isa (isa_bits, removable_bits); + bitmap_and_compl (target_isa, target_isa, isa_bits); + } + if (fpu && strcmp (fpu, "auto") != 0) { /* We assume that architectures do not have any FPU bits *************** arm_canon_arch_option (int argc, const c *** 682,688 **** else if (cpu) { const cpu_option *selected_cpu ! = arm_parse_cpu_option_name (all_cores, "-mcpu", cpu); if (selected_cpu == NULL) return ""; --- 697,704 ---- else if (cpu) { const cpu_option *selected_cpu ! = arm_parse_cpu_option_name (all_cores, "-mcpu", cpu, ! !arch_for_multilib); if (selected_cpu == NULL) return ""; *************** arm_asm_auto_mfpu (int argc, const char *** 1032,1034 **** --- 1048,1069 ---- #define TARGET_EXCEPT_UNWIND_INFO arm_except_unwind_info struct gcc_targetm_common targetm_common = TARGETM_COMMON_INITIALIZER; + + /* Returns a canonical representation of the -march option from the current + -march string (if given) and other options on the command line that might + affect the architecture. */ + const char * + arm_canon_arch_option (int argc, const char **argv) + { + return arm_canon_arch_option_1 (argc, argv, false); + } + + /* Returns a canonical representation of the -mlibarch option from the current + -march string (if given) and other options on the command line that might + affect the architecture after removing the compiler extension options which + are not required for multilib linking. */ + const char * + arm_canon_arch_multilib_option (int argc, const char **argv) + { + return arm_canon_arch_option_1 (argc, argv, true); + } diff -Nrcpad gcc-10.3.0/gcc/common/config/rs6000/rs6000-common.c gcc-10.4.0/gcc/common/config/rs6000/rs6000-common.c *** gcc-10.3.0/gcc/common/config/rs6000/rs6000-common.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/common/config/rs6000/rs6000-common.c Tue Jun 28 08:54:27 2022 *************** rs6000_handle_option (struct gcc_options *** 227,232 **** --- 227,242 ---- } break; + case OPT_mabi_ibmlongdouble: + case OPT_mabi_ieeelongdouble: + if (opts->x_rs6000_long_double_type_size == 64) + { + error_at (loc, "option %<%s%> requires %<-mlong-double-128%>", + decoded->orig_option_with_args_text); + return true; + } + break; + case OPT_mrecip: opts->x_rs6000_recip_name = (value) ? "default" : "none"; break; diff -Nrcpad gcc-10.3.0/gcc/config/aarch64/aarch64-bti-insert.c gcc-10.4.0/gcc/config/aarch64/aarch64-bti-insert.c *** gcc-10.3.0/gcc/config/aarch64/aarch64-bti-insert.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/config/aarch64/aarch64-bti-insert.c Tue Jun 28 08:54:27 2022 *************** aarch64_pac_insn_p (rtx x) *** 120,125 **** --- 120,136 ---- return false; } + /* Check if INSN is a BTI J insn. */ + static bool + aarch64_bti_j_insn_p (rtx_insn *insn) + { + if (!insn || !INSN_P (insn)) + return false; + + rtx pat = PATTERN (insn); + return GET_CODE (pat) == UNSPEC_VOLATILE && XINT (pat, 1) == UNSPECV_BTI_J; + } + /* Insert the BTI instruction. */ /* This is implemented as a late RTL pass that runs before branch shortening and does the following. */ *************** rest_of_insert_bti (void) *** 165,170 **** --- 176,185 ---- for (j = GET_NUM_ELEM (vec) - 1; j >= 0; --j) { label = as_a (XEXP (RTVEC_ELT (vec, j), 0)); + rtx_insn *next = next_nonnote_nondebug_insn (label); + if (aarch64_bti_j_insn_p (next)) + continue; + bti_insn = gen_bti_j (); emit_insn_after (bti_insn, label); } diff -Nrcpad gcc-10.3.0/gcc/config/aarch64/aarch64-cores.def gcc-10.4.0/gcc/config/aarch64/aarch64-cores.def *** gcc-10.3.0/gcc/config/aarch64/aarch64-cores.def Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/config/aarch64/aarch64-cores.def Tue Jun 28 08:54:27 2022 *************** AARCH64_CORE("thunderx3t110", thunderx3 *** 135,140 **** --- 135,141 ---- /* Arm ('A') cores. */ AARCH64_CORE("zeus", zeus, cortexa57, 8_4A, AARCH64_FL_FOR_ARCH8_4 | AARCH64_FL_SVE | AARCH64_FL_RCPC | AARCH64_FL_I8MM | AARCH64_FL_BF16 | AARCH64_FL_F16 | AARCH64_FL_PROFILE | AARCH64_FL_SSBS | AARCH64_FL_RNG, neoversev1, 0x41, 0xd40, -1) AARCH64_CORE("neoverse-v1", neoversev1, cortexa57, 8_4A, AARCH64_FL_FOR_ARCH8_4 | AARCH64_FL_SVE | AARCH64_FL_RCPC | AARCH64_FL_I8MM | AARCH64_FL_BF16 | AARCH64_FL_F16 | AARCH64_FL_PROFILE | AARCH64_FL_SSBS | AARCH64_FL_RNG, neoversev1, 0x41, 0xd40, -1) + AARCH64_CORE("neoverse-512tvb", neoverse512tvb, cortexa57, 8_4A, AARCH64_FL_FOR_ARCH8_4 | AARCH64_FL_SVE | AARCH64_FL_RCPC | AARCH64_FL_I8MM | AARCH64_FL_BF16 | AARCH64_FL_F16 | AARCH64_FL_PROFILE | AARCH64_FL_SSBS | AARCH64_FL_RNG, neoversev1, INVALID_IMP, INVALID_CORE, -1) /* Qualcomm ('Q') cores. */ AARCH64_CORE("saphira", saphira, saphira, 8_4A, AARCH64_FL_FOR_ARCH8_4 | AARCH64_FL_CRYPTO | AARCH64_FL_RCPC, saphira, 0x51, 0xC01, -1) diff -Nrcpad gcc-10.3.0/gcc/config/aarch64/aarch64-protos.h gcc-10.4.0/gcc/config/aarch64/aarch64-protos.h *** gcc-10.3.0/gcc/config/aarch64/aarch64-protos.h Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/config/aarch64/aarch64-protos.h Tue Jun 28 08:54:27 2022 *************** bool aarch64_high_bits_all_ones_p (HOST_ *** 787,793 **** struct atomic_ool_names { ! const char *str[5][4]; }; rtx aarch64_atomic_ool_func(machine_mode mode, rtx model_rtx, --- 787,793 ---- struct atomic_ool_names { ! const char *str[5][5]; }; rtx aarch64_atomic_ool_func(machine_mode mode, rtx model_rtx, diff -Nrcpad gcc-10.3.0/gcc/config/aarch64/aarch64-simd.md gcc-10.4.0/gcc/config/aarch64/aarch64-simd.md *** gcc-10.3.0/gcc/config/aarch64/aarch64-simd.md Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/config/aarch64/aarch64-simd.md Tue Jun 28 08:54:27 2022 *************** *** 35,40 **** --- 35,51 ---- && aarch64_mem_pair_operand (operands[0], DImode)) || known_eq (GET_MODE_SIZE (mode), 8)))) operands[1] = force_reg (mode, operands[1]); + + /* If a constant is too complex to force to memory (e.g. because it + contains CONST_POLY_INTs), build it up from individual elements instead. + We should only need to do this before RA; aarch64_legitimate_constant_p + should ensure that we don't try to rematerialize the constant later. */ + if (GET_CODE (operands[1]) == CONST_VECTOR + && targetm.cannot_force_const_mem (mode, operands[1])) + { + aarch64_expand_vector_init (operands[0], operands[1]); + DONE; + } " ) diff -Nrcpad gcc-10.3.0/gcc/config/aarch64/aarch64-sve-builtins.cc gcc-10.4.0/gcc/config/aarch64/aarch64-sve-builtins.cc *** gcc-10.3.0/gcc/config/aarch64/aarch64-sve-builtins.cc Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/config/aarch64/aarch64-sve-builtins.cc Tue Jun 28 08:54:27 2022 *************** registered_function & *** 995,1006 **** function_builder::add_function (const function_instance &instance, const char *name, tree fntype, tree attrs, uint64_t required_extensions, ! bool overloaded_p) { unsigned int code = vec_safe_length (registered_functions); code = (code << AARCH64_BUILTIN_SHIFT) | AARCH64_BUILTIN_SVE; ! tree decl = simulate_builtin_function_decl (input_location, name, fntype, ! code, NULL, attrs); registered_function &rfn = *ggc_alloc (); rfn.instance = instance; --- 995,1023 ---- function_builder::add_function (const function_instance &instance, const char *name, tree fntype, tree attrs, uint64_t required_extensions, ! bool overloaded_p, ! bool placeholder_p) { unsigned int code = vec_safe_length (registered_functions); code = (code << AARCH64_BUILTIN_SHIFT) | AARCH64_BUILTIN_SVE; ! ! /* We need to be able to generate placeholders to enusre that we have a ! consistent numbering scheme for function codes between the C and C++ ! frontends, so that everything ties up in LTO. ! ! Currently, tree-streamer-in.c:unpack_ts_function_decl_value_fields ! validates that tree nodes returned by TARGET_BUILTIN_DECL are non-NULL and ! some node other than error_mark_node. This is a holdover from when builtin ! decls were streamed by code rather than by value. ! ! Ultimately, we should be able to remove this validation of BUILT_IN_MD ! nodes and remove the target hook. For now, however, we need to appease the ! validation and return a non-NULL, non-error_mark_node node, so we ! arbitrarily choose integer_zero_node. */ ! tree decl = placeholder_p ! ? integer_zero_node ! : simulate_builtin_function_decl (input_location, name, fntype, ! code, NULL, attrs); registered_function &rfn = *ggc_alloc (); rfn.instance = instance; *************** function_builder::add_unique_function (c *** 1032,1038 **** argument_types.address ()); tree attrs = get_attributes (instance); registered_function &rfn = add_function (instance, name, fntype, attrs, ! required_extensions, false); /* Enter the function into the hash table. */ hashval_t hash = instance.hash (); --- 1049,1055 ---- argument_types.address ()); tree attrs = get_attributes (instance); registered_function &rfn = add_function (instance, name, fntype, attrs, ! required_extensions, false, false); /* Enter the function into the hash table. */ hashval_t hash = instance.hash (); *************** function_builder::add_unique_function (c *** 1043,1058 **** /* Also add the function under its overloaded alias, if we want a separate decl for each instance of an overloaded function. */ ! if (m_direct_overloads || force_direct_overloads) { ! char *overload_name = get_name (instance, true); ! if (strcmp (name, overload_name) != 0) ! { ! /* Attribute lists shouldn't be shared. */ ! tree attrs = get_attributes (instance); ! add_function (instance, overload_name, fntype, attrs, ! required_extensions, false); ! } } obstack_free (&m_string_obstack, name); --- 1060,1073 ---- /* Also add the function under its overloaded alias, if we want a separate decl for each instance of an overloaded function. */ ! char *overload_name = get_name (instance, true); ! if (strcmp (name, overload_name) != 0) { ! /* Attribute lists shouldn't be shared. */ ! tree attrs = get_attributes (instance); ! bool placeholder_p = !(m_direct_overloads || force_direct_overloads); ! add_function (instance, overload_name, fntype, attrs, ! required_extensions, false, placeholder_p); } obstack_free (&m_string_obstack, name); *************** function_builder::add_overloaded_functio *** 1073,1090 **** { char *name = get_name (instance, true); if (registered_function **map_value = m_overload_names.get (name)) ! gcc_assert ((*map_value)->instance == instance ! && ((*map_value)->required_extensions ! & ~required_extensions) == 0); else { registered_function &rfn = add_function (instance, name, m_overload_type, NULL_TREE, ! required_extensions, true); ! const char *permanent_name = IDENTIFIER_POINTER (DECL_NAME (rfn.decl)); ! m_overload_names.put (permanent_name, &rfn); } - obstack_free (&m_string_obstack, name); } /* If we are using manual overload resolution, add one function decl --- 1088,1106 ---- { char *name = get_name (instance, true); if (registered_function **map_value = m_overload_names.get (name)) ! { ! gcc_assert ((*map_value)->instance == instance ! && ((*map_value)->required_extensions ! & ~required_extensions) == 0); ! obstack_free (&m_string_obstack, name); ! } else { registered_function &rfn = add_function (instance, name, m_overload_type, NULL_TREE, ! required_extensions, true, m_direct_overloads); ! m_overload_names.put (name, &rfn); } } /* If we are using manual overload resolution, add one function decl *************** void *** 1094,1102 **** function_builder::add_overloaded_functions (const function_group_info &group, mode_suffix_index mode) { - if (m_direct_overloads) - return; - unsigned int explicit_type0 = (*group.shape)->explicit_type_suffix_p (0); unsigned int explicit_type1 = (*group.shape)->explicit_type_suffix_p (1); for (unsigned int pi = 0; group.preds[pi] != NUM_PREDS; ++pi) --- 1110,1115 ---- diff -Nrcpad gcc-10.3.0/gcc/config/aarch64/aarch64-sve-builtins.h gcc-10.4.0/gcc/config/aarch64/aarch64-sve-builtins.h *** gcc-10.3.0/gcc/config/aarch64/aarch64-sve-builtins.h Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/config/aarch64/aarch64-sve-builtins.h Tue Jun 28 08:54:27 2022 *************** private: *** 337,343 **** tree get_attributes (const function_instance &); registered_function &add_function (const function_instance &, ! const char *, tree, tree, uint64_t, bool); /* The function type to use for functions that are resolved by function_resolver. */ --- 337,344 ---- tree get_attributes (const function_instance &); registered_function &add_function (const function_instance &, ! const char *, tree, tree, ! uint64_t, bool, bool); /* The function type to use for functions that are resolved by function_resolver. */ diff -Nrcpad gcc-10.3.0/gcc/config/aarch64/aarch64-sve.md gcc-10.4.0/gcc/config/aarch64/aarch64-sve.md *** gcc-10.3.0/gcc/config/aarch64/aarch64-sve.md Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/config/aarch64/aarch64-sve.md Tue Jun 28 08:54:27 2022 *************** *** 8455,8460 **** --- 8455,8474 ---- "\t%0., %1., %2." ) + ;; Special purpose permute used by the predicate generation instructions. + ;; Unlike the normal permute patterns, these instructions operate on VNx16BI + ;; regardless of the element size, so that all input and output bits are + ;; well-defined. Operand 3 then indicates the size of the permute. + (define_insn "@aarch64_sve_trn1_conv" + [(set (match_operand:VNx16BI 0 "register_operand" "=Upa") + (unspec:VNx16BI [(match_operand:VNx16BI 1 "register_operand" "Upa") + (match_operand:VNx16BI 2 "register_operand" "Upa") + (match_operand:PRED_ALL 3 "aarch64_simd_imm_zero")] + UNSPEC_TRN1_CONV))] + "TARGET_SVE" + "trn1\t%0., %1., %2." + ) + ;; ========================================================================= ;; == Conversions ;; ========================================================================= diff -Nrcpad gcc-10.3.0/gcc/config/aarch64/aarch64-tune.md gcc-10.4.0/gcc/config/aarch64/aarch64-tune.md *** gcc-10.3.0/gcc/config/aarch64/aarch64-tune.md Thu Apr 8 11:57:03 2021 --- gcc-10.4.0/gcc/config/aarch64/aarch64-tune.md Tue Jun 28 08:55:09 2022 *************** *** 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,emag,xgene1,falkor,qdf24xx,exynosm1,phecda,thunderx2t99p1,vulcan,thunderx2t99,cortexa55,cortexa75,cortexa76,cortexa76ae,cortexa77,cortexa65,cortexa65ae,ares,neoversen1,neoversee1,octeontx2,octeontx2t98,octeontx2t96,octeontx2t93,octeontx2f95,octeontx2f95n,octeontx2f95mm,a64fx,tsv110,thunderx3t110,zeus,neoversev1,saphira,neoversen2,cortexa57cortexa53,cortexa72cortexa53,cortexa73cortexa35,cortexa73cortexa53,cortexa75cortexa55,cortexa76cortexa55" (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,emag,xgene1,falkor,qdf24xx,exynosm1,phecda,thunderx2t99p1,vulcan,thunderx2t99,cortexa55,cortexa75,cortexa76,cortexa76ae,cortexa77,cortexa65,cortexa65ae,ares,neoversen1,neoversee1,octeontx2,octeontx2t98,octeontx2t96,octeontx2t93,octeontx2f95,octeontx2f95n,octeontx2f95mm,a64fx,tsv110,thunderx3t110,zeus,neoversev1,neoverse512tvb,saphira,neoversen2,cortexa57cortexa53,cortexa72cortexa53,cortexa73cortexa35,cortexa73cortexa53,cortexa75cortexa55,cortexa76cortexa55" (const (symbol_ref "((enum attr_tune) aarch64_tune)"))) diff -Nrcpad gcc-10.3.0/gcc/config/aarch64/aarch64.c gcc-10.4.0/gcc/config/aarch64/aarch64.c *** gcc-10.3.0/gcc/config/aarch64/aarch64.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/config/aarch64/aarch64.c Tue Jun 28 08:54:27 2022 *************** aarch64_load_symref_appropriately (rtx d *** 3123,3129 **** if (can_create_pseudo_p ()) tmp_reg = gen_reg_rtx (mode); ! emit_move_insn (tmp_reg, gen_rtx_HIGH (mode, imm)); emit_insn (gen_add_losym (dest, tmp_reg, imm)); return; } --- 3123,3129 ---- if (can_create_pseudo_p ()) tmp_reg = gen_reg_rtx (mode); ! emit_move_insn (tmp_reg, gen_rtx_HIGH (mode, copy_rtx (imm))); emit_insn (gen_add_losym (dest, tmp_reg, imm)); return; } *************** aarch64_mov128_immediate (rtx imm) *** 4322,4328 **** static unsigned int aarch64_add_offset_1_temporaries (HOST_WIDE_INT offset) { ! return abs_hwi (offset) < 0x1000000 ? 0 : 1; } /* A subroutine of aarch64_add_offset. Set DEST to SRC + OFFSET for --- 4322,4328 ---- static unsigned int aarch64_add_offset_1_temporaries (HOST_WIDE_INT offset) { ! return absu_hwi (offset) < 0x1000000 ? 0 : 1; } /* A subroutine of aarch64_add_offset. Set DEST to SRC + OFFSET for *************** aarch64_expand_sve_ld1rq (rtx dest, rtx *** 4752,4757 **** --- 4752,4807 ---- return true; } + /* SRC is an SVE CONST_VECTOR that contains N "foreground" values followed + by N "background" values. Try to move it into TARGET using: + + PTRUE PRED., VL + MOV TRUE., # + MOV FALSE., # + SEL TARGET., PRED., TRUE., FALSE. + + The PTRUE is always a single instruction but the MOVs might need a + longer sequence. If the background value is zero (as it often is), + the sequence can sometimes collapse to a PTRUE followed by a + zero-predicated move. + + Return the target on success, otherwise return null. */ + + static rtx + aarch64_expand_sve_const_vector_sel (rtx target, rtx src) + { + gcc_assert (CONST_VECTOR_NELTS_PER_PATTERN (src) == 2); + + /* Make sure that the PTRUE is valid. */ + machine_mode mode = GET_MODE (src); + machine_mode pred_mode = aarch64_sve_pred_mode (mode); + unsigned int npatterns = CONST_VECTOR_NPATTERNS (src); + if (aarch64_svpattern_for_vl (pred_mode, npatterns) + == AARCH64_NUM_SVPATTERNS) + return NULL_RTX; + + rtx_vector_builder pred_builder (pred_mode, npatterns, 2); + rtx_vector_builder true_builder (mode, npatterns, 1); + rtx_vector_builder false_builder (mode, npatterns, 1); + for (unsigned int i = 0; i < npatterns; ++i) + { + true_builder.quick_push (CONST_VECTOR_ENCODED_ELT (src, i)); + pred_builder.quick_push (CONST1_RTX (BImode)); + } + for (unsigned int i = 0; i < npatterns; ++i) + { + false_builder.quick_push (CONST_VECTOR_ENCODED_ELT (src, i + npatterns)); + pred_builder.quick_push (CONST0_RTX (BImode)); + } + expand_operand ops[4]; + create_output_operand (&ops[0], target, mode); + create_input_operand (&ops[1], true_builder.build (), mode); + create_input_operand (&ops[2], false_builder.build (), mode); + create_input_operand (&ops[3], pred_builder.build (), pred_mode); + expand_insn (code_for_vcond_mask (mode, mode), 4, ops); + return target; + } + /* Return a register containing CONST_VECTOR SRC, given that SRC has an SVE data mode and isn't a legitimate constant. Use TARGET for the result if convenient. *************** aarch64_expand_sve_const_vector (rtx tar *** 4886,4891 **** --- 4936,4945 ---- if (GET_MODE_NUNITS (mode).is_constant ()) return NULL_RTX; + if (nelts_per_pattern == 2) + if (rtx res = aarch64_expand_sve_const_vector_sel (target, src)) + return res; + /* Expand each pattern individually. */ gcc_assert (npatterns > 1); rtx_vector_builder builder; *************** aarch64_expand_sve_const_pred_trn (rtx t *** 5067,5078 **** } } ! /* Emit the TRN1 itself. */ machine_mode mode = aarch64_sve_pred_mode (permute_size).require (); ! target = aarch64_target_reg (target, mode); ! emit_insn (gen_aarch64_sve (UNSPEC_TRN1, mode, target, ! gen_lowpart (mode, a), ! gen_lowpart (mode, b))); return target; } --- 5121,5132 ---- } } ! /* Emit the TRN1 itself. We emit a TRN that operates on VNx16BI ! operands but permutes them as though they had mode MODE. */ machine_mode mode = aarch64_sve_pred_mode (permute_size).require (); ! target = aarch64_target_reg (target, GET_MODE (a)); ! rtx type_reg = CONST0_RTX (mode); ! emit_insn (gen_aarch64_sve_trn1_conv (mode, target, a, b, type_reg)); return target; } *************** aarch64_legitimate_constant_p (machine_m *** 16271,16280 **** { /* Support CSE and rematerialization of common constants. */ if (CONST_INT_P (x) ! || (CONST_DOUBLE_P (x) && GET_MODE_CLASS (mode) == MODE_FLOAT) ! || GET_CODE (x) == CONST_VECTOR) return true; /* Do not allow vector struct mode constants for Advanced SIMD. We could support 0 and -1 easily, but they need support in aarch64-simd.md. */ --- 16325,16346 ---- { /* Support CSE and rematerialization of common constants. */ if (CONST_INT_P (x) ! || (CONST_DOUBLE_P (x) && GET_MODE_CLASS (mode) == MODE_FLOAT)) return true; + /* Only accept variable-length vector constants if they can be + handled directly. + + ??? It would be possible (but complex) to handle rematerialization + of other constants via secondary reloads. */ + if (!GET_MODE_SIZE (mode).is_constant ()) + return aarch64_simd_valid_immediate (x, NULL); + + /* Otherwise, accept any CONST_VECTOR that, if all else fails, can at + least be forced to memory and loaded from there. */ + if (GET_CODE (x) == CONST_VECTOR) + return !targetm.cannot_force_const_mem (mode, x); + /* Do not allow vector struct mode constants for Advanced SIMD. We could support 0 and -1 easily, but they need support in aarch64-simd.md. */ *************** aarch64_legitimate_constant_p (machine_m *** 16282,16295 **** if (vec_flags == (VEC_ADVSIMD | VEC_STRUCT)) return false; - /* Only accept variable-length vector constants if they can be - handled directly. - - ??? It would be possible to handle rematerialization of other - constants via secondary reloads. */ - if (vec_flags & VEC_ANY_SVE) - return aarch64_simd_valid_immediate (x, NULL); - if (GET_CODE (x) == HIGH) x = XEXP (x, 0); --- 16348,16353 ---- *************** aarch64_vectorize_preferred_vector_align *** 18621,18630 **** { if (aarch64_sve_data_mode_p (TYPE_MODE (type))) { ! /* If the length of the vector is fixed, try to align to that length, ! otherwise don't try to align at all. */ HOST_WIDE_INT result; ! if (!BITS_PER_SVE_VECTOR.is_constant (&result)) result = TYPE_ALIGN (TREE_TYPE (type)); return result; } --- 18679,18689 ---- { if (aarch64_sve_data_mode_p (TYPE_MODE (type))) { ! /* If the length of the vector is a fixed power of 2, try to align ! to that length, otherwise don't try to align at all. */ HOST_WIDE_INT result; ! if (!GET_MODE_BITSIZE (TYPE_MODE (type)).is_constant (&result) ! || !pow2p_hwi (result)) result = TYPE_ALIGN (TREE_TYPE (type)); return result; } *************** aarch64_emit_unlikely_jump (rtx insn) *** 19558,19571 **** add_reg_br_prob_note (jump, profile_probability::very_unlikely ()); } ! /* We store the names of the various atomic helpers in a 5x4 array. Return the libcall function given MODE, MODEL and NAMES. */ rtx aarch64_atomic_ool_func(machine_mode mode, rtx model_rtx, const atomic_ool_names *names) { ! memmodel model = memmodel_base (INTVAL (model_rtx)); int mode_idx, model_idx; switch (mode) --- 19617,19630 ---- add_reg_br_prob_note (jump, profile_probability::very_unlikely ()); } ! /* We store the names of the various atomic helpers in a 5x5 array. Return the libcall function given MODE, MODEL and NAMES. */ rtx aarch64_atomic_ool_func(machine_mode mode, rtx model_rtx, const atomic_ool_names *names) { ! memmodel model = memmodel_from_int (INTVAL (model_rtx)); int mode_idx, model_idx; switch (mode) *************** aarch64_atomic_ool_func(machine_mode mod *** 19605,19610 **** --- 19664,19674 ---- case MEMMODEL_SEQ_CST: model_idx = 3; break; + case MEMMODEL_SYNC_ACQUIRE: + case MEMMODEL_SYNC_RELEASE: + case MEMMODEL_SYNC_SEQ_CST: + model_idx = 4; + break; default: gcc_unreachable (); } *************** aarch64_atomic_ool_func(machine_mode mod *** 19617,19623 **** { "__aarch64_" #B #N "_relax", \ "__aarch64_" #B #N "_acq", \ "__aarch64_" #B #N "_rel", \ ! "__aarch64_" #B #N "_acq_rel" } #define DEF4(B) DEF0(B, 1), DEF0(B, 2), DEF0(B, 4), DEF0(B, 8), \ { NULL, NULL, NULL, NULL } --- 19681,19688 ---- { "__aarch64_" #B #N "_relax", \ "__aarch64_" #B #N "_acq", \ "__aarch64_" #B #N "_rel", \ ! "__aarch64_" #B #N "_acq_rel", \ ! "__aarch64_" #B #N "_sync" } #define DEF4(B) DEF0(B, 1), DEF0(B, 2), DEF0(B, 4), DEF0(B, 8), \ { NULL, NULL, NULL, NULL } diff -Nrcpad gcc-10.3.0/gcc/config/aarch64/aarch64.md gcc-10.4.0/gcc/config/aarch64/aarch64.md *** gcc-10.3.0/gcc/config/aarch64/aarch64.md Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/config/aarch64/aarch64.md Tue Jun 28 08:54:27 2022 *************** *** 1229,1238 **** if (GET_CODE (operands[0]) == MEM && operands[1] != const0_rtx) operands[1] = force_reg (mode, operands[1]); ! /* FIXME: RR we still need to fix up what we are doing with ! symbol_refs and other types of constants. */ ! if (CONSTANT_P (operands[1]) ! && !CONST_INT_P (operands[1])) { aarch64_expand_mov_immediate (operands[0], operands[1]); DONE; --- 1229,1247 ---- if (GET_CODE (operands[0]) == MEM && operands[1] != const0_rtx) operands[1] = force_reg (mode, operands[1]); ! /* Lower moves of symbolic constants into individual instructions. ! Doing this now is sometimes necessary for correctness, since some ! sequences require temporary pseudo registers. Lowering now is also ! often better for optimization, since more RTL passes get the ! chance to optimize the individual instructions. ! ! When called after RA, also split multi-instruction moves into ! smaller pieces now, since we can't be sure that sure that there ! will be a following split pass. */ ! if (CONST_INT_P (operands[1]) ! ? (reload_completed ! && !aarch64_mov_imm_operand (operands[1], mode)) ! : CONSTANT_P (operands[1])) { aarch64_expand_mov_immediate (operands[0], operands[1]); DONE; diff -Nrcpad gcc-10.3.0/gcc/config/aarch64/constraints.md gcc-10.4.0/gcc/config/aarch64/constraints.md *** gcc-10.3.0/gcc/config/aarch64/constraints.md Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/config/aarch64/constraints.md Tue Jun 28 08:54:27 2022 *************** *** 327,332 **** --- 327,334 ---- "@internal An address valid for loading or storing a 128-bit AdvSIMD register" (and (match_code "mem") + (match_test "aarch64_legitimate_address_p (GET_MODE (op), + XEXP (op, 0), 1)") (match_test "aarch64_legitimate_address_p (V2DImode, XEXP (op, 0), 1)"))) diff -Nrcpad gcc-10.3.0/gcc/config/aarch64/iterators.md gcc-10.4.0/gcc/config/aarch64/iterators.md *** gcc-10.3.0/gcc/config/aarch64/iterators.md Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/config/aarch64/iterators.md Tue Jun 28 08:54:27 2022 *************** *** 633,638 **** --- 633,639 ---- UNSPEC_UZP2Q ; Used in aarch64-sve.md. UNSPEC_ZIP1Q ; Used in aarch64-sve.md. UNSPEC_ZIP2Q ; Used in aarch64-sve.md. + UNSPEC_TRN1_CONV ; Used in aarch64-sve.md. UNSPEC_COND_CMPEQ_WIDE ; Used in aarch64-sve.md. UNSPEC_COND_CMPGE_WIDE ; Used in aarch64-sve.md. UNSPEC_COND_CMPGT_WIDE ; Used in aarch64-sve.md. diff -Nrcpad gcc-10.3.0/gcc/config/alpha/alpha-protos.h gcc-10.4.0/gcc/config/alpha/alpha-protos.h *** gcc-10.3.0/gcc/config/alpha/alpha-protos.h Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/config/alpha/alpha-protos.h Tue Jun 28 08:54:27 2022 *************** extern void alpha_end_function (FILE *, *** 73,78 **** --- 73,80 ---- extern bool alpha_find_lo_sum_using_gp (rtx); + extern int alpha_store_data_bypass_p (rtx_insn *, rtx_insn *); + #ifdef REAL_VALUE_TYPE extern int check_float_value (machine_mode, REAL_VALUE_TYPE *, int); #endif diff -Nrcpad gcc-10.3.0/gcc/config/alpha/alpha.c gcc-10.4.0/gcc/config/alpha/alpha.c *** gcc-10.3.0/gcc/config/alpha/alpha.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/config/alpha/alpha.c Tue Jun 28 08:54:27 2022 *************** alpha_does_function_need_gp (void) *** 7564,7569 **** --- 7564,7638 ---- return 0; } + /* Helper function for alpha_store_data_bypass_p, handle just a single SET + IN_SET. */ + + static bool + alpha_store_data_bypass_p_1 (rtx_insn *out_insn, rtx in_set) + { + if (!MEM_P (SET_DEST (in_set))) + return false; + + rtx out_set = single_set (out_insn); + if (out_set) + return !reg_mentioned_p (SET_DEST (out_set), SET_DEST (in_set)); + + rtx out_pat = PATTERN (out_insn); + if (GET_CODE (out_pat) != PARALLEL) + return false; + + for (int i = 0; i < XVECLEN (out_pat, 0); i++) + { + rtx out_exp = XVECEXP (out_pat, 0, i); + + if (GET_CODE (out_exp) == CLOBBER || GET_CODE (out_exp) == USE + || GET_CODE (out_exp) == TRAP_IF) + continue; + + gcc_assert (GET_CODE (out_exp) == SET); + + if (reg_mentioned_p (SET_DEST (out_exp), SET_DEST (in_set))) + return false; + } + + return true; + } + + /* True if the dependency between OUT_INSN and IN_INSN is on the store + data not the address operand(s) of the store. IN_INSN and OUT_INSN + must be either a single_set or a PARALLEL with SETs inside. + + This alpha-specific version of store_data_bypass_p ignores TRAP_IF + that would result in assertion failure (and internal compiler error) + in the generic store_data_bypass_p function. */ + + int + alpha_store_data_bypass_p (rtx_insn *out_insn, rtx_insn *in_insn) + { + rtx in_set = single_set (in_insn); + if (in_set) + return alpha_store_data_bypass_p_1 (out_insn, in_set); + + rtx in_pat = PATTERN (in_insn); + if (GET_CODE (in_pat) != PARALLEL) + return false; + + for (int i = 0; i < XVECLEN (in_pat, 0); i++) + { + rtx in_exp = XVECEXP (in_pat, 0, i); + + if (GET_CODE (in_exp) == CLOBBER || GET_CODE (in_exp) == USE + || GET_CODE (in_exp) == TRAP_IF) + continue; + + gcc_assert (GET_CODE (in_exp) == SET); + + if (!alpha_store_data_bypass_p_1 (out_insn, in_exp)) + return false; + } + + return true; + } /* Helper function to set RTX_FRAME_RELATED_P on instructions, including sequences. */ diff -Nrcpad gcc-10.3.0/gcc/config/alpha/ev4.md gcc-10.4.0/gcc/config/alpha/ev4.md *** gcc-10.3.0/gcc/config/alpha/ev4.md Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/config/alpha/ev4.md Tue Jun 28 08:54:27 2022 *************** *** 44,57 **** ; Stores can issue before the data (but not address) is ready. (define_insn_reservation "ev4_ist" 1 (and (eq_attr "tune" "ev4") ! (eq_attr "type" "ist")) ! "ev4_ib1+ev4_abox") ! ! ; ??? Separate from ev4_ist because store_data_bypass_p can't handle ! ; the patterns with multiple sets, like store-conditional. ! (define_insn_reservation "ev4_ist_c" 1 ! (and (eq_attr "tune" "ev4") ! (eq_attr "type" "st_c")) "ev4_ib1+ev4_abox") (define_insn_reservation "ev4_fst" 1 --- 44,50 ---- ; Stores can issue before the data (but not address) is ready. (define_insn_reservation "ev4_ist" 1 (and (eq_attr "tune" "ev4") ! (eq_attr "type" "ist,st_c")) "ev4_ib1+ev4_abox") (define_insn_reservation "ev4_fst" 1 *************** *** 110,116 **** (define_bypass 0 "ev4_iaddlog,ev4_shiftcm,ev4_icmp" "ev4_ist" ! "store_data_bypass_p") ; Multiplies use a non-pipelined imul unit. Also, "no [ebox] insn can ; be issued exactly three cycles before an integer multiply completes". --- 103,109 ---- (define_bypass 0 "ev4_iaddlog,ev4_shiftcm,ev4_icmp" "ev4_ist" ! "alpha_store_data_bypass_p") ; Multiplies use a non-pipelined imul unit. Also, "no [ebox] insn can ; be issued exactly three cycles before an integer multiply completes". *************** *** 121,127 **** (eq_attr "opsize" "si"))) "ev4_ib0+ev4_imul,ev4_imul*18,ev4_ebox") ! (define_bypass 20 "ev4_imulsi" "ev4_ist" "store_data_bypass_p") (define_insn_reservation "ev4_imuldi" 23 (and (eq_attr "tune" "ev4") --- 114,120 ---- (eq_attr "opsize" "si"))) "ev4_ib0+ev4_imul,ev4_imul*18,ev4_ebox") ! (define_bypass 20 "ev4_imulsi" "ev4_ist" "alpha_store_data_bypass_p") (define_insn_reservation "ev4_imuldi" 23 (and (eq_attr "tune" "ev4") *************** *** 129,135 **** (eq_attr "opsize" "!si"))) "ev4_ib0+ev4_imul,ev4_imul*20,ev4_ebox") ! (define_bypass 22 "ev4_imuldi" "ev4_ist" "store_data_bypass_p") ; Most FP insns have a 6 cycle latency, but with a 4 cycle bypass back in. (define_insn_reservation "ev4_fpop" 6 --- 122,128 ---- (eq_attr "opsize" "!si"))) "ev4_ib0+ev4_imul,ev4_imul*20,ev4_ebox") ! (define_bypass 22 "ev4_imuldi" "ev4_ist" "alpha_store_data_bypass_p") ; Most FP insns have a 6 cycle latency, but with a 4 cycle bypass back in. (define_insn_reservation "ev4_fpop" 6 diff -Nrcpad gcc-10.3.0/gcc/config/arm/arm-c.c gcc-10.4.0/gcc/config/arm/arm-c.c *** gcc-10.3.0/gcc/config/arm/arm-c.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/config/arm/arm-c.c Tue Jun 28 08:54:27 2022 *************** arm_pragma_target_parse (tree args, tree *** 408,415 **** target_option_current_node, but not handle_pragma_target. */ target_option_current_node = cur_tree; arm_configure_build_target (&arm_active_target, ! TREE_TARGET_OPTION (cur_tree), ! &global_options_set, false); } /* Update macros if target_node changes. The global state will be restored --- 408,415 ---- target_option_current_node, but not handle_pragma_target. */ target_option_current_node = cur_tree; arm_configure_build_target (&arm_active_target, ! TREE_TARGET_OPTION (cur_tree), false); ! arm_option_reconfigure_globals (); } /* Update macros if target_node changes. The global state will be restored diff -Nrcpad gcc-10.3.0/gcc/config/arm/arm-cpus.in gcc-10.4.0/gcc/config/arm/arm-cpus.in *** gcc-10.3.0/gcc/config/arm/arm-cpus.in Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/config/arm/arm-cpus.in Tue Jun 28 08:54:27 2022 *************** define feature quirk_armv6kz *** 186,191 **** --- 186,194 ---- # Cortex-M3 LDRD quirk. define feature quirk_cm3_ldrd + # v8-m/v8.1-m VLLDM errata. + define feature quirk_vlldm + # Don't use .cpu assembly directive define feature quirk_no_asmcpu *************** define implied vfp_base MVE MVE_FP ALL_F *** 322,328 **** # architectures. # xscale isn't really a 'quirk', but it isn't an architecture either and we # need to ignore it for matching purposes. ! define fgroup ALL_QUIRKS quirk_no_volatile_ce quirk_armv6kz quirk_cm3_ldrd xscale quirk_no_asmcpu # Architecture entries # format: --- 325,333 ---- # architectures. # xscale isn't really a 'quirk', but it isn't an architecture either and we # need to ignore it for matching purposes. ! define fgroup ALL_QUIRKS quirk_no_volatile_ce quirk_armv6kz quirk_cm3_ldrd quirk_vlldm xscale quirk_no_asmcpu ! ! define fgroup IGNORE_FOR_MULTILIB cdecp0 cdecp1 cdecp2 cdecp3 cdecp4 cdecp5 cdecp6 cdecp7 # Architecture entries # format: *************** begin cpu generic-armv7-a *** 1078,1083 **** --- 1083,1089 ---- cname genericv7a tune flags LDSCHED architecture armv7-a+fp + isa quirk_no_asmcpu option mp add mp option sec add sec option vfpv3-d16 add VFPv3 FP_DBL *************** begin cpu cortex-m33 *** 1524,1529 **** --- 1530,1536 ---- architecture armv8-m.main+dsp+fp option nofp remove ALL_FP option nodsp remove armv7em + isa quirk_vlldm costs v7m end cpu cortex-m33 *************** begin cpu cortex-m35p *** 1533,1538 **** --- 1540,1546 ---- architecture armv8-m.main+dsp+fp option nofp remove ALL_FP option nodsp remove armv7em + isa quirk_vlldm costs v7m end cpu cortex-m35p *************** begin cpu cortex-m55 *** 1544,1550 **** option nomve remove mve mve_float option nofp remove ALL_FP mve_float option nodsp remove MVE mve_float ! isa quirk_no_asmcpu costs v7m vendor 41 end cpu cortex-m55 --- 1552,1558 ---- option nomve remove mve mve_float option nofp remove ALL_FP mve_float option nodsp remove MVE mve_float ! isa quirk_no_asmcpu quirk_vlldm costs v7m vendor 41 end cpu cortex-m55 diff -Nrcpad gcc-10.3.0/gcc/config/arm/arm-protos.h gcc-10.4.0/gcc/config/arm/arm-protos.h *** gcc-10.3.0/gcc/config/arm/arm-protos.h Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/config/arm/arm-protos.h Tue Jun 28 08:54:27 2022 *************** extern bool arm_change_mode_p (tree); *** 241,248 **** extern tree arm_valid_target_attribute_tree (tree, struct gcc_options *, struct gcc_options *); extern void arm_configure_build_target (struct arm_build_target *, ! struct cl_target_option *, ! struct gcc_options *, bool); extern void arm_option_reconfigure_globals (void); extern void arm_options_perform_arch_sanity_checks (void); extern void arm_pr_long_calls (struct cpp_reader *); --- 241,247 ---- extern tree arm_valid_target_attribute_tree (tree, struct gcc_options *, struct gcc_options *); extern void arm_configure_build_target (struct arm_build_target *, ! struct cl_target_option *, bool); extern void arm_option_reconfigure_globals (void); extern void arm_options_perform_arch_sanity_checks (void); extern void arm_pr_long_calls (struct cpp_reader *); diff -Nrcpad gcc-10.3.0/gcc/config/arm/arm.c gcc-10.4.0/gcc/config/arm/arm.c *** gcc-10.3.0/gcc/config/arm/arm.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/config/arm/arm.c Tue Jun 28 08:54:27 2022 *************** *** 77,86 **** typedef struct minipool_node Mnode; typedef struct minipool_fixup Mfix; - /* The last .arch and .fpu assembly strings that we printed. */ - static std::string arm_last_printed_arch_string; - static std::string arm_last_printed_fpu_string; - void (*arm_lang_output_object_attributes_hook)(void); struct four_ints --- 77,82 ---- *************** static HOST_WIDE_INT arm_constant_alignm *** 332,337 **** --- 328,334 ---- static rtx_insn * thumb1_md_asm_adjust (vec &, vec &, vec &, vec &, HARD_REG_SET &); + static const char *arm_identify_fpu_from_isa (sbitmap); /* Table of machine attributes. */ static const struct attribute_spec arm_attribute_table[] = *************** arm_override_options_after_change (void) *** 3036,3042 **** { arm_configure_build_target (&arm_active_target, TREE_TARGET_OPTION (target_option_default_node), ! &global_options_set, false); arm_override_options_after_change_1 (&global_options); } --- 3033,3039 ---- { arm_configure_build_target (&arm_active_target, TREE_TARGET_OPTION (target_option_default_node), ! false); arm_override_options_after_change_1 (&global_options); } *************** arm_option_restore (struct gcc_options * *** 3057,3064 **** opts->x_arm_arch_string = ptr->x_arm_arch_string; opts->x_arm_cpu_string = ptr->x_arm_cpu_string; opts->x_arm_tune_string = ptr->x_arm_tune_string; ! arm_configure_build_target (&arm_active_target, ptr, &global_options_set, ! false); } /* Reset options between modes that the user has specified. */ --- 3054,3061 ---- opts->x_arm_arch_string = ptr->x_arm_arch_string; opts->x_arm_cpu_string = ptr->x_arm_cpu_string; opts->x_arm_tune_string = ptr->x_arm_tune_string; ! arm_configure_build_target (&arm_active_target, ptr, false); ! arm_option_reconfigure_globals (); } /* Reset options between modes that the user has specified. */ *************** static sbitmap isa_quirkbits; *** 3181,3187 **** void arm_configure_build_target (struct arm_build_target *target, struct cl_target_option *opts, - struct gcc_options *opts_set, bool warn_compatible) { const cpu_option *arm_selected_tune = NULL; --- 3178,3183 ---- *************** arm_configure_build_target (struct arm_b *** 3196,3202 **** target->core_name = NULL; target->arch_name = NULL; ! if (opts_set->x_arm_arch_string) { arm_selected_arch = arm_parse_arch_option_name (all_architectures, "-march", --- 3192,3198 ---- target->core_name = NULL; target->arch_name = NULL; ! if (opts->x_arm_arch_string) { arm_selected_arch = arm_parse_arch_option_name (all_architectures, "-march", *************** arm_configure_build_target (struct arm_b *** 3204,3210 **** arch_opts = strchr (opts->x_arm_arch_string, '+'); } ! if (opts_set->x_arm_cpu_string) { arm_selected_cpu = arm_parse_cpu_option_name (all_cores, "-mcpu", opts->x_arm_cpu_string); --- 3200,3206 ---- arch_opts = strchr (opts->x_arm_arch_string, '+'); } ! if (opts->x_arm_cpu_string) { arm_selected_cpu = arm_parse_cpu_option_name (all_cores, "-mcpu", opts->x_arm_cpu_string); *************** arm_configure_build_target (struct arm_b *** 3214,3220 **** options for tuning. */ } ! if (opts_set->x_arm_tune_string) { arm_selected_tune = arm_parse_cpu_option_name (all_cores, "-mtune", opts->x_arm_tune_string); --- 3210,3216 ---- options for tuning. */ } ! if (opts->x_arm_tune_string) { arm_selected_tune = arm_parse_cpu_option_name (all_cores, "-mtune", opts->x_arm_tune_string); *************** arm_configure_build_target (struct arm_b *** 3407,3412 **** --- 3403,3413 ---- bitmap_ior (target->isa, target->isa, fpu_bits); } + /* If we have the soft-float ABI, clear any feature bits relating to use of + floating-point operations. They'll just confuse things later on. */ + if (arm_float_abi == ARM_FLOAT_ABI_SOFT) + bitmap_and_compl (target->isa, target->isa, isa_all_fpbits); + /* There may be implied bits which we still need to enable. These are non-named features which are needed to complete other sets of features, but cannot be enabled from arm-cpus.in due to being shared between *************** arm_configure_build_target (struct arm_b *** 3429,3434 **** --- 3430,3437 ---- const cpu_tune *tune_data = &all_tunes[arm_selected_tune - all_cores]; /* Finish initializing the target structure. */ + if (!target->arch_name) + target->arch_name = arm_selected_arch->common.name; target->arch_pp_name = arm_selected_arch->arch; target->base_arch = arm_selected_arch->base_arch; target->profile = arm_selected_arch->profile; *************** arm_configure_build_target (struct arm_b *** 3436,3442 **** target->tune_flags = tune_data->tune_flags; target->tune = tune_data->tune; target->tune_core = tune_data->scheduler; - arm_option_reconfigure_globals (); } /* Fix up any incompatible options that the user has specified. */ --- 3439,3444 ---- *************** arm_option_override (void) *** 3473,3480 **** } cl_target_option_save (&opts, &global_options); ! arm_configure_build_target (&arm_active_target, &opts, &global_options_set, ! true); #ifdef SUBTARGET_OVERRIDE_OPTIONS SUBTARGET_OVERRIDE_OPTIONS; --- 3475,3481 ---- } cl_target_option_save (&opts, &global_options); ! arm_configure_build_target (&arm_active_target, &opts, true); #ifdef SUBTARGET_OVERRIDE_OPTIONS SUBTARGET_OVERRIDE_OPTIONS; *************** arm_option_override (void) *** 3610,3615 **** --- 3611,3625 ---- fix_cm3_ldrd = 0; } + /* Enable fix_vlldm by default if required. */ + if (fix_vlldm == 2) + { + if (bitmap_bit_p (arm_active_target.isa, isa_bit_quirk_vlldm)) + fix_vlldm = 1; + else + fix_vlldm = 0; + } + /* Hot/Cold partitioning is not currently supported, since we can't handle literal pool placement in that case. */ if (flag_reorder_blocks_and_partition) *************** arm_options_perform_arch_sanity_checks ( *** 3850,3856 **** /* We don't clear D16-D31 VFP registers for cmse_nonsecure_call functions and ARMv8-M Baseline and Mainline do not allow such configuration. */ ! if (use_cmse && LAST_VFP_REGNUM > LAST_LO_VFP_REGNUM) error ("ARMv8-M Security Extensions incompatible with selected FPU"); --- 3860,3866 ---- /* We don't clear D16-D31 VFP registers for cmse_nonsecure_call functions and ARMv8-M Baseline and Mainline do not allow such configuration. */ ! if (use_cmse && TARGET_HARD_FLOAT && LAST_VFP_REGNUM > LAST_LO_VFP_REGNUM) error ("ARMv8-M Security Extensions incompatible with selected FPU"); *************** arm_canonicalize_comparison (int *code, *** 5567,5575 **** return; *op1 = GEN_INT (i + 1); *code = *code == GT ? GE : LT; - return; } ! break; case GTU: case LEU: --- 5577,5596 ---- return; *op1 = GEN_INT (i + 1); *code = *code == GT ? GE : LT; } ! else ! { ! /* GT maxval is always false, LE maxval is always true. ! We can't fold that away here as we must make a ! comparison, but we can fold them to comparisons ! with the same result that can be handled: ! op0 GT maxval -> op0 LT minval ! op0 LE maxval -> op0 GE minval ! where minval = (-maxval - 1). */ ! *op1 = GEN_INT (-maxval - 1); ! *code = *code == GT ? LT : GE; ! } ! return; case GTU: case LEU: *************** arm_canonicalize_comparison (int *code, *** 5582,5590 **** return; *op1 = GEN_INT (i + 1); *code = *code == GTU ? GEU : LTU; - return; } ! break; default: gcc_unreachable (); --- 5603,5621 ---- return; *op1 = GEN_INT (i + 1); *code = *code == GTU ? GEU : LTU; } ! else ! { ! /* GTU ~0 is always false, LEU ~0 is always true. ! We can't fold that away here as we must make a ! comparison, but we can fold them to comparisons ! with the same result that can be handled: ! op0 GTU ~0 -> op0 LTU 0 ! op0 LEU ~0 -> op0 GEU 0. */ ! *op1 = const0_rtx; ! *code = *code == GTU ? LTU : GEU; ! } ! return; default: gcc_unreachable (); *************** arm_libcall_uses_aapcs_base (const_rtx l *** 5786,5791 **** --- 5817,5826 ---- convert_optab_libfunc (sfix_optab, DImode, SFmode)); add_libcall (libcall_htab, convert_optab_libfunc (ufix_optab, DImode, SFmode)); + add_libcall (libcall_htab, + convert_optab_libfunc (sfix_optab, SImode, SFmode)); + add_libcall (libcall_htab, + convert_optab_libfunc (ufix_optab, SImode, SFmode)); /* Values from double-precision helper functions are returned in core registers if the selected core only supports single-precision *************** gen_cpymem_ldrd_strd (rtx *operands) *** 15479,15491 **** { len -= 8; reg0 = gen_reg_rtx (DImode); ! rtx low_reg = NULL_RTX; ! rtx hi_reg = NULL_RTX; if (!src_aligned || !dst_aligned) { ! low_reg = gen_lowpart (SImode, reg0); ! hi_reg = gen_highpart_mode (SImode, DImode, reg0); } if (MEM_ALIGN (src) >= 2 * BITS_PER_WORD) emit_move_insn (reg0, src); --- 15514,15534 ---- { len -= 8; reg0 = gen_reg_rtx (DImode); ! rtx first_reg = NULL_RTX; ! rtx second_reg = NULL_RTX; if (!src_aligned || !dst_aligned) { ! if (BYTES_BIG_ENDIAN) ! { ! second_reg = gen_lowpart (SImode, reg0); ! first_reg = gen_highpart_mode (SImode, DImode, reg0); ! } ! else ! { ! first_reg = gen_lowpart (SImode, reg0); ! second_reg = gen_highpart_mode (SImode, DImode, reg0); ! } } if (MEM_ALIGN (src) >= 2 * BITS_PER_WORD) emit_move_insn (reg0, src); *************** gen_cpymem_ldrd_strd (rtx *operands) *** 15493,15501 **** emit_insn (gen_unaligned_loaddi (reg0, src)); else { ! emit_insn (gen_unaligned_loadsi (low_reg, src)); src = next_consecutive_mem (src); ! emit_insn (gen_unaligned_loadsi (hi_reg, src)); } if (MEM_ALIGN (dst) >= 2 * BITS_PER_WORD) --- 15536,15544 ---- emit_insn (gen_unaligned_loaddi (reg0, src)); else { ! emit_insn (gen_unaligned_loadsi (first_reg, src)); src = next_consecutive_mem (src); ! emit_insn (gen_unaligned_loadsi (second_reg, src)); } if (MEM_ALIGN (dst) >= 2 * BITS_PER_WORD) *************** gen_cpymem_ldrd_strd (rtx *operands) *** 15504,15512 **** emit_insn (gen_unaligned_storedi (dst, reg0)); else { ! emit_insn (gen_unaligned_storesi (dst, low_reg)); dst = next_consecutive_mem (dst); ! emit_insn (gen_unaligned_storesi (dst, hi_reg)); } src = next_consecutive_mem (src); --- 15547,15555 ---- emit_insn (gen_unaligned_storedi (dst, reg0)); else { ! emit_insn (gen_unaligned_storesi (dst, first_reg)); dst = next_consecutive_mem (dst); ! emit_insn (gen_unaligned_storesi (dst, second_reg)); } src = next_consecutive_mem (src); *************** cmse_nonsecure_call_inline_register_clea *** 18740,18749 **** imm = gen_int_mode (- lazy_store_stack_frame_size, SImode); add_insn = emit_insn (gen_addsi3 (stack_pointer_rtx, stack_pointer_rtx, imm)); ! arm_add_cfa_adjust_cfa_note (add_insn, ! - lazy_store_stack_frame_size, ! stack_pointer_rtx, ! stack_pointer_rtx); emit_insn (gen_lazy_store_multiple_insn (stack_pointer_rtx)); } /* Save VFP callee-saved registers. */ --- 18783,18796 ---- imm = gen_int_mode (- lazy_store_stack_frame_size, SImode); add_insn = emit_insn (gen_addsi3 (stack_pointer_rtx, stack_pointer_rtx, imm)); ! /* If we have the frame pointer, then it will be the ! CFA reg. Otherwise, the stack pointer is the CFA ! reg, so we need to emit a CFA adjust. */ ! if (!frame_pointer_needed) ! arm_add_cfa_adjust_cfa_note (add_insn, ! - lazy_store_stack_frame_size, ! stack_pointer_rtx, ! stack_pointer_rtx); emit_insn (gen_lazy_store_multiple_insn (stack_pointer_rtx)); } /* Save VFP callee-saved registers. */ *************** cmse_nonsecure_call_inline_register_clea *** 18781,18790 **** rtx_insn *add_insn = emit_insn (gen_addsi3 (stack_pointer_rtx, stack_pointer_rtx, imm)); ! arm_add_cfa_adjust_cfa_note (add_insn, ! lazy_store_stack_frame_size, ! stack_pointer_rtx, ! stack_pointer_rtx); } /* Restore VFP callee-saved registers. */ else --- 18828,18838 ---- rtx_insn *add_insn = emit_insn (gen_addsi3 (stack_pointer_rtx, stack_pointer_rtx, imm)); ! if (!frame_pointer_needed) ! arm_add_cfa_adjust_cfa_note (add_insn, ! lazy_store_stack_frame_size, ! stack_pointer_rtx, ! stack_pointer_rtx); } /* Restore VFP callee-saved registers. */ else *************** arm_hard_regno_mode_ok (unsigned int reg *** 25242,25248 **** return false; if (IS_VPR_REGNUM (regno)) ! return true; if (TARGET_THUMB1) /* For the Thumb we only allow values bigger than SImode in --- 25290,25296 ---- return false; if (IS_VPR_REGNUM (regno)) ! return mode == HImode; if (TARGET_THUMB1) /* For the Thumb we only allow values bigger than SImode in *************** cmse_nonsecure_entry_clear_before_return *** 27007,27013 **** continue; if (IN_RANGE (regno, IP_REGNUM, PC_REGNUM)) continue; ! if (call_used_or_fixed_reg_p (regno) && (!IN_RANGE (regno, FIRST_VFP_REGNUM, LAST_VFP_REGNUM) || TARGET_HARD_FLOAT)) bitmap_set_bit (to_clear_bitmap, regno); --- 27055,27061 ---- continue; if (IN_RANGE (regno, IP_REGNUM, PC_REGNUM)) continue; ! if (!callee_saved_reg_p (regno) && (!IN_RANGE (regno, FIRST_VFP_REGNUM, LAST_VFP_REGNUM) || TARGET_HARD_FLOAT)) bitmap_set_bit (to_clear_bitmap, regno); *************** arm_print_tune_info (void) *** 28040,28059 **** (int) current_tune->sched_autopref); } /* Print .arch and .arch_extension directives corresponding to the current architecture configuration. */ static void ! arm_print_asm_arch_directives () { const arch_option *arch = arm_parse_arch_option_name (all_architectures, "-march", ! arm_active_target.arch_name); auto_sbitmap opt_bits (isa_num_bits); gcc_assert (arch); ! asm_fprintf (asm_out_file, "\t.arch %s\n", arm_active_target.arch_name); ! arm_last_printed_arch_string = arm_active_target.arch_name; if (!arch->common.extensions) return; --- 28088,28152 ---- (int) current_tune->sched_autopref); } + /* The last set of target options used to emit .arch directives, etc. This + could be a function-local static if it were not required to expose it as a + root to the garbage collector. */ + static GTY(()) cl_target_option *last_asm_targ_options = NULL; + /* Print .arch and .arch_extension directives corresponding to the current architecture configuration. */ static void ! arm_print_asm_arch_directives (FILE *stream, cl_target_option *targ_options) { + arm_build_target build_target; + /* If the target options haven't changed since the last time we were called + there is nothing to do. This should be sufficient to suppress the + majority of redundant work. */ + if (last_asm_targ_options == targ_options) + return; + + last_asm_targ_options = targ_options; + + build_target.isa = sbitmap_alloc (isa_num_bits); + arm_configure_build_target (&build_target, targ_options, false); + + if (build_target.core_name + && !bitmap_bit_p (build_target.isa, isa_bit_quirk_no_asmcpu)) + { + const char* truncated_name + = arm_rewrite_selected_cpu (build_target.core_name); + asm_fprintf (stream, "\t.cpu %s\n", truncated_name); + } + const arch_option *arch = arm_parse_arch_option_name (all_architectures, "-march", ! build_target.arch_name); auto_sbitmap opt_bits (isa_num_bits); gcc_assert (arch); ! if (strcmp (build_target.arch_name, "armv7ve") == 0) ! { ! /* Keep backward compatability for assemblers which don't support ! armv7ve. Fortunately, none of the following extensions are reset ! by a .fpu directive. */ ! asm_fprintf (stream, "\t.arch armv7-a\n"); ! asm_fprintf (stream, "\t.arch_extension virt\n"); ! asm_fprintf (stream, "\t.arch_extension idiv\n"); ! asm_fprintf (stream, "\t.arch_extension sec\n"); ! asm_fprintf (stream, "\t.arch_extension mp\n"); ! } ! else ! asm_fprintf (stream, "\t.arch %s\n", build_target.arch_name); ! ! /* The .fpu directive will reset any architecture extensions from the ! assembler that relate to the fp/vector extensions. So put this out before ! any .arch_extension directives. */ ! const char *fpu_name = (TARGET_SOFT_FLOAT ! ? "softvfp" ! : arm_identify_fpu_from_isa (build_target.isa)); ! asm_fprintf (stream, "\t.fpu %s\n", fpu_name); ! if (!arch->common.extensions) return; *************** arm_print_asm_arch_directives () *** 28079,28091 **** && !TARGET_HAVE_MVE_FLOAT)) continue; ! /* If every feature bit of this option is set in the target ! ISA specification, print out the option name. However, ! don't print anything if all the bits are part of the ! FPU specification. */ ! if (bitmap_subset_p (opt_bits, arm_active_target.isa) && !bitmap_subset_p (opt_bits, isa_all_fpubits_internal)) ! asm_fprintf (asm_out_file, "\t.arch_extension %s\n", opt->name); } } } --- 28172,28183 ---- && !TARGET_HAVE_MVE_FLOAT)) continue; ! /* If every feature bit of this option is set in the target ISA ! specification, print out the option name. However, don't print ! anything if all the bits are part of the FPU specification. */ ! if (bitmap_subset_p (opt_bits, build_target.isa) && !bitmap_subset_p (opt_bits, isa_all_fpubits_internal)) ! asm_fprintf (stream, "\t.arch_extension %s\n", opt->name); } } } *************** arm_file_start (void) *** 28095,28140 **** { int val; if (TARGET_BPABI) { ! /* We don't have a specified CPU. Use the architecture to ! generate the tags. ! ! Note: it might be better to do this unconditionally, then the ! assembler would not need to know about all new CPU names as ! they are added. */ ! if (!arm_active_target.core_name) ! { ! /* armv7ve doesn't support any extensions. */ ! if (strcmp (arm_active_target.arch_name, "armv7ve") == 0) ! { ! /* Keep backward compatability for assemblers ! which don't support armv7ve. */ ! asm_fprintf (asm_out_file, "\t.arch armv7-a\n"); ! asm_fprintf (asm_out_file, "\t.arch_extension virt\n"); ! asm_fprintf (asm_out_file, "\t.arch_extension idiv\n"); ! asm_fprintf (asm_out_file, "\t.arch_extension sec\n"); ! asm_fprintf (asm_out_file, "\t.arch_extension mp\n"); ! arm_last_printed_arch_string = "armv7ve"; ! } ! else ! arm_print_asm_arch_directives (); ! } ! else if (strncmp (arm_active_target.core_name, "generic", 7) == 0) ! { ! asm_fprintf (asm_out_file, "\t.arch %s\n", ! arm_active_target.core_name + 8); ! arm_last_printed_arch_string = arm_active_target.core_name + 8; ! } ! else { const char* truncated_name = arm_rewrite_selected_cpu (arm_active_target.core_name); if (bitmap_bit_p (arm_active_target.isa, isa_bit_quirk_no_asmcpu)) asm_fprintf (asm_out_file, "\t.eabi_attribute 5, \"%s\"\n", truncated_name); - else - asm_fprintf (asm_out_file, "\t.cpu %s\n", truncated_name); } if (print_tune_info) --- 28187,28209 ---- { int val; + arm_print_asm_arch_directives + (asm_out_file, TREE_TARGET_OPTION (target_option_default_node)); + if (TARGET_BPABI) { ! /* If we have a named cpu, but we the assembler does not support that ! name via .cpu, put out a cpu name attribute; but don't do this if the ! name starts with the fictitious prefix, 'generic'. */ ! if (arm_active_target.core_name ! && bitmap_bit_p (arm_active_target.isa, isa_bit_quirk_no_asmcpu) ! && strncmp (arm_active_target.core_name, "generic", 7) != 0) { const char* truncated_name = arm_rewrite_selected_cpu (arm_active_target.core_name); if (bitmap_bit_p (arm_active_target.isa, isa_bit_quirk_no_asmcpu)) asm_fprintf (asm_out_file, "\t.eabi_attribute 5, \"%s\"\n", truncated_name); } if (print_tune_info) *************** arm_file_end (void) *** 28202,28207 **** --- 28271,28283 ---- { int regno; + /* Just in case the last function output in the assembler had non-default + architecture directives, we force the assembler state back to the default + set, so that any 'calculated' build attributes are based on the default + options rather than the special options for that function. */ + arm_print_asm_arch_directives + (asm_out_file, TREE_TARGET_OPTION (target_option_default_node)); + if (NEED_INDICATE_EXEC_STACK) /* Add .note.GNU-stack. */ file_end_indicate_exec_stack (); *************** arm_split_compare_and_swap (rtx operands *** 30470,30482 **** } else { - emit_move_insn (neg_bval, const1_rtx); cond = gen_rtx_NE (VOIDmode, rval, oldval); if (thumb1_cmpneg_operand (oldval, SImode)) ! emit_unlikely_jump (gen_cbranchsi4_scratch (neg_bval, rval, oldval, ! label2, cond)); else ! emit_unlikely_jump (gen_cbranchsi4_insn (cond, rval, oldval, label2)); } arm_emit_store_exclusive (mode, neg_bval, mem, newval, use_release); --- 30546,30576 ---- } else { cond = gen_rtx_NE (VOIDmode, rval, oldval); if (thumb1_cmpneg_operand (oldval, SImode)) ! { ! rtx src = rval; ! if (!satisfies_constraint_L (oldval)) ! { ! gcc_assert (satisfies_constraint_J (oldval)); ! ! /* For such immediates, ADDS needs the source and destination regs ! to be the same. ! ! Normally this would be handled by RA, but this is all happening ! after RA. */ ! emit_move_insn (neg_bval, rval); ! src = neg_bval; ! } ! ! emit_unlikely_jump (gen_cbranchsi4_neg_late (neg_bval, src, oldval, ! label2, cond)); ! } else ! { ! emit_move_insn (neg_bval, const1_rtx); ! emit_unlikely_jump (gen_cbranchsi4_insn (cond, rval, oldval, label2)); ! } } arm_emit_store_exclusive (mode, neg_bval, mem, newval, use_release); *************** arm_can_inline_p (tree caller, tree call *** 32397,32406 **** caller_target.isa = sbitmap_alloc (isa_num_bits); callee_target.isa = sbitmap_alloc (isa_num_bits); ! arm_configure_build_target (&caller_target, caller_opts, &global_options_set, ! false); ! arm_configure_build_target (&callee_target, callee_opts, &global_options_set, ! false); if (!bitmap_subset_p (callee_target.isa, caller_target.isa)) can_inline = false; --- 32491,32498 ---- caller_target.isa = sbitmap_alloc (isa_num_bits); callee_target.isa = sbitmap_alloc (isa_num_bits); ! arm_configure_build_target (&caller_target, caller_opts, false); ! arm_configure_build_target (&callee_target, callee_opts, false); if (!bitmap_subset_p (callee_target.isa, caller_target.isa)) can_inline = false; *************** arm_valid_target_attribute_tree (tree ar *** 32536,32542 **** return NULL_TREE; cl_target_option_save (&cl_opts, opts); ! arm_configure_build_target (&arm_active_target, &cl_opts, opts_set, false); arm_option_check_internal (opts); /* Do any overrides, such as global options arch=xxx. We do this since arm_active_target was overridden. */ --- 32628,32634 ---- return NULL_TREE; cl_target_option_save (&cl_opts, opts); ! arm_configure_build_target (&arm_active_target, &cl_opts, false); arm_option_check_internal (opts); /* Do any overrides, such as global options arch=xxx. We do this since arm_active_target was overridden. */ *************** arm_declare_function_name (FILE *stream, *** 32680,32737 **** targ_options = TREE_TARGET_OPTION (target_option_current_node); gcc_assert (targ_options); ! /* Only update the assembler .arch string if it is distinct from the last ! such string we printed. arch_to_print is set conditionally in case ! targ_options->x_arm_arch_string is NULL which can be the case ! when cc1 is invoked directly without passing -march option. */ ! std::string arch_to_print; ! if (targ_options->x_arm_arch_string) ! arch_to_print = targ_options->x_arm_arch_string; ! ! if (arch_to_print != arm_last_printed_arch_string) ! { ! std::string arch_name ! = arch_to_print.substr (0, arch_to_print.find ("+")); ! asm_fprintf (asm_out_file, "\t.arch %s\n", arch_name.c_str ()); ! const arch_option *arch ! = arm_parse_arch_option_name (all_architectures, "-march", ! targ_options->x_arm_arch_string); ! auto_sbitmap opt_bits (isa_num_bits); ! ! gcc_assert (arch); ! if (arch->common.extensions) ! { ! for (const struct cpu_arch_extension *opt = arch->common.extensions; ! opt->name != NULL; ! opt++) ! { ! if (!opt->remove) ! { ! arm_initialize_isa (opt_bits, opt->isa_bits); ! /* For the cases "-march=armv8.1-m.main+mve -mfloat-abi=soft" ! and "-march=armv8.1-m.main+mve.fp -mfloat-abi=soft" MVE and ! MVE with floating point instructions is disabled. So the ! following check restricts the printing of ".arch_extension ! mve" and ".arch_extension fp" (for mve.fp) in the assembly ! file. MVE needs this special behaviour because the ! feature bit "mve" and "mve_float" are not part of ! "fpu bits", so they are not cleared when -mfloat-abi=soft ! (i.e nofp) but the marco TARGET_HAVE_MVE and ! TARGET_HAVE_MVE_FLOAT are disabled. */ ! if ((bitmap_bit_p (opt_bits, isa_bit_mve) && !TARGET_HAVE_MVE) ! || (bitmap_bit_p (opt_bits, isa_bit_mve_float) ! && !TARGET_HAVE_MVE_FLOAT)) ! continue; ! if (bitmap_subset_p (opt_bits, arm_active_target.isa) ! && !bitmap_subset_p (opt_bits, isa_all_fpubits_internal)) ! asm_fprintf (asm_out_file, "\t.arch_extension %s\n", ! opt->name); ! } ! } ! } ! ! arm_last_printed_arch_string = arch_to_print; ! } fprintf (stream, "\t.syntax unified\n"); --- 32772,32778 ---- targ_options = TREE_TARGET_OPTION (target_option_current_node); gcc_assert (targ_options); ! arm_print_asm_arch_directives (stream, targ_options); fprintf (stream, "\t.syntax unified\n"); *************** arm_declare_function_name (FILE *stream, *** 32749,32765 **** else fprintf (stream, "\t.arm\n"); - std::string fpu_to_print - = TARGET_SOFT_FLOAT - ? "softvfp" : arm_identify_fpu_from_isa (arm_active_target.isa); - - if (!(!strcmp (fpu_to_print.c_str (), "softvfp") && TARGET_VFP_BASE) - && (fpu_to_print != arm_last_printed_arch_string)) - { - asm_fprintf (asm_out_file, "\t.fpu %s\n", fpu_to_print.c_str ()); - arm_last_printed_fpu_string = fpu_to_print; - } - if (TARGET_POKE_FUNCTION_NAME) arm_poke_function_name (stream, (const char *) name); } --- 32790,32795 ---- diff -Nrcpad gcc-10.3.0/gcc/config/arm/arm.h gcc-10.4.0/gcc/config/arm/arm.h *** gcc-10.3.0/gcc/config/arm/arm.h Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/config/arm/arm.h Tue Jun 28 08:54:27 2022 *************** extern const char *host_detect_local_cpu *** 2357,2366 **** --- 2357,2370 ---- #endif const char *arm_canon_arch_option (int argc, const char **argv); + const char *arm_canon_arch_multilib_option (int argc, const char **argv); #define CANON_ARCH_SPEC_FUNCTION \ { "canon_arch", arm_canon_arch_option }, + #define CANON_ARCH_MULTILIB_SPEC_FUNCTION \ + { "canon_arch_multilib", arm_canon_arch_multilib_option }, + const char *arm_be8_option (int argc, const char **argv); #define BE8_SPEC_FUNCTION \ { "be8_linkopt", arm_be8_option }, *************** const char *arm_be8_option (int argc, co *** 2369,2374 **** --- 2373,2379 ---- MCPU_MTUNE_NATIVE_FUNCTIONS \ ASM_CPU_SPEC_FUNCTIONS \ CANON_ARCH_SPEC_FUNCTION \ + CANON_ARCH_MULTILIB_SPEC_FUNCTION \ TARGET_MODE_SPEC_FUNCTIONS \ BE8_SPEC_FUNCTION *************** const char *arm_be8_option (int argc, co *** 2389,2400 **** --- 2394,2415 ---- " %{mfloat-abi=*: abi %*}" \ " %mode == V2DFmode || mode == V2DImode) ! { ! if (which_alternative == 7) ! { ! ops[1] = gen_rtx_REG (DImode, regno); ! output_asm_insn ("vstr.64\t%P1, %E0",ops); ! } ! else ! { ! ops[0] = gen_rtx_REG (DImode, regno); ! output_asm_insn ("vldr.64\t%P0, %E1",ops); ! } ! } ! else if (mode == TImode) { if (which_alternative == 7) ! output_asm_insn ("vstr.64\t%q1, %E0",ops); else ! output_asm_insn ("vldr.64\t%q0, %E1",ops); } else { if (which_alternative == 7) ! { ! ops[1] = gen_rtx_REG (TImode, regno); ! output_asm_insn ("vstr.\t%q1, %E0",ops); ! } else ! { ! ops[0] = gen_rtx_REG (TImode, regno); ! output_asm_insn ("vldr.\t%q0, %E1",ops); ! } } return ""; } --- 41,59 ---- if (which_alternative == 4 || which_alternative == 7) { ! if (mode == V2DFmode || mode == V2DImode || mode == TImode) { if (which_alternative == 7) ! output_asm_insn ("vstrw.32\t%q1, %E0", operands); else ! output_asm_insn ("vldrw.u32\t%q0, %E1",operands); } else { if (which_alternative == 7) ! output_asm_insn ("vstr.\t%q1, %E0", operands); else ! output_asm_insn ("vldr.\t%q0, %E1", operands); } return ""; } *************** *** 104,121 **** (set_attr "thumb2_pool_range" "*,*,*,*,1018,*,*,*,*") (set_attr "neg_pool_range" "*,*,*,*,996,*,*,*,*")]) ! (define_insn "*mve_mov" ! [(set (match_operand:MVE_types 0 "s_register_operand" "=w,w") ! (vec_duplicate:MVE_types ! (match_operand:SI 1 "nonmemory_operand" "r,i")))] "TARGET_HAVE_MVE || TARGET_HAVE_MVE_FLOAT" ! { ! if (which_alternative == 0) ! return "vdup.\t%q0, %1"; ! return "vmov.\t%q0, %1"; ! } ! [(set_attr "length" "4,4") ! (set_attr "type" "mve_move,mve_move")]) ;; ;; [vst4q]) --- 79,92 ---- (set_attr "thumb2_pool_range" "*,*,*,*,1018,*,*,*,*") (set_attr "neg_pool_range" "*,*,*,*,996,*,*,*,*")]) ! (define_insn "*mve_vdup" ! [(set (match_operand:MVE_vecs 0 "s_register_operand" "=w") ! (vec_duplicate:MVE_vecs ! (match_operand: 1 "s_register_operand" "r")))] "TARGET_HAVE_MVE || TARGET_HAVE_MVE_FLOAT" ! "vdup.\t%q0, %1" ! [(set_attr "length" "4") ! (set_attr "type" "mve_move")]) ;; ;; [vst4q]) *************** *** 10739,10751 **** [(set_attr "type" "mve_move") (set_attr "length" "8")]) - (define_insn "*mve_vec_duplicate" - [(set (match_operand:MVE_VLD_ST 0 "s_register_operand" "=w") - (vec_duplicate:MVE_VLD_ST (match_operand: 1 "general_operand" "r")))] - "TARGET_HAVE_MVE || TARGET_HAVE_MVE_FLOAT" - "vdup.\t%q0, %1" - [(set_attr "type" "mve_move")]) - ;; CDE instructions on MVE registers. (define_insn "arm_vcx1qv16qi" --- 10710,10715 ---- diff -Nrcpad gcc-10.3.0/gcc/config/arm/sync.md gcc-10.4.0/gcc/config/arm/sync.md *** gcc-10.3.0/gcc/config/arm/sync.md Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/config/arm/sync.md Tue Jun 28 08:54:27 2022 *************** *** 187,206 **** ;; Constraints of this pattern must be at least as strict as those of the ;; cbranchsi operations in thumb1.md and aim to be as permissive. (define_insn_and_split "@atomic_compare_and_swap_1" ! [(set (match_operand:CCSI 0 "cc_register_operand" "=&c,&l,&l,&l") ;; bool out (unspec_volatile:CCSI [(const_int 0)] VUNSPEC_ATOMIC_CAS)) ! (set (match_operand:SI 1 "s_register_operand" "=&r,&l,&0,&l*h") ;; val out (zero_extend:SI ! (match_operand:NARROW 2 "mem_noofs_operand" "+Ua,Ua,Ua,Ua"))) ;; memory (set (match_dup 2) (unspec_volatile:NARROW ! [(match_operand:SI 3 "arm_add_operand" "rIL,lIL*h,J,*r") ;; expected ! (match_operand:NARROW 4 "s_register_operand" "r,r,r,r") ;; desired (match_operand:SI 5 "const_int_operand") ;; is_weak (match_operand:SI 6 "const_int_operand") ;; mod_s (match_operand:SI 7 "const_int_operand")] ;; mod_f VUNSPEC_ATOMIC_CAS)) ! (clobber (match_scratch:SI 8 "=&r,X,X,X"))] "" "#" "&& reload_completed" --- 187,206 ---- ;; Constraints of this pattern must be at least as strict as those of the ;; cbranchsi operations in thumb1.md and aim to be as permissive. (define_insn_and_split "@atomic_compare_and_swap_1" ! [(set (match_operand:CCSI 0 "cc_register_operand" "=&c,&l,&l") ;; bool out (unspec_volatile:CCSI [(const_int 0)] VUNSPEC_ATOMIC_CAS)) ! (set (match_operand:SI 1 "s_register_operand" "=&r,&l,&l*h") ;; val out (zero_extend:SI ! (match_operand:NARROW 2 "mem_noofs_operand" "+Ua,Ua,Ua"))) ;; memory (set (match_dup 2) (unspec_volatile:NARROW ! [(match_operand:SI 3 "arm_add_operand" "rIL,lILJ*h,*r") ;; expected ! (match_operand:NARROW 4 "s_register_operand" "r,r,r") ;; desired (match_operand:SI 5 "const_int_operand") ;; is_weak (match_operand:SI 6 "const_int_operand") ;; mod_s (match_operand:SI 7 "const_int_operand")] ;; mod_f VUNSPEC_ATOMIC_CAS)) ! (clobber (match_scratch:SI 8 "=&r,X,X"))] "" "#" "&& reload_completed" *************** *** 209,215 **** arm_split_compare_and_swap (operands); DONE; } ! [(set_attr "arch" "32,v8mb,v8mb,v8mb")]) (define_mode_attr cas_cmp_operand [(SI "arm_add_operand") (DI "cmpdi_operand")]) --- 209,215 ---- arm_split_compare_and_swap (operands); DONE; } ! [(set_attr "arch" "32,v8mb,v8mb")]) (define_mode_attr cas_cmp_operand [(SI "arm_add_operand") (DI "cmpdi_operand")]) *************** *** 219,237 **** ;; Constraints of this pattern must be at least as strict as those of the ;; cbranchsi operations in thumb1.md and aim to be as permissive. (define_insn_and_split "@atomic_compare_and_swap_1" ! [(set (match_operand:CCSI 0 "cc_register_operand" "=&c,&l,&l,&l") ;; bool out (unspec_volatile:CCSI [(const_int 0)] VUNSPEC_ATOMIC_CAS)) ! (set (match_operand:SIDI 1 "s_register_operand" "=&r,&l,&0,&l*h") ;; val out ! (match_operand:SIDI 2 "mem_noofs_operand" "+Ua,Ua,Ua,Ua")) ;; memory (set (match_dup 2) (unspec_volatile:SIDI ! [(match_operand:SIDI 3 "" ",lIL*h,J,*r") ;; expect ! (match_operand:SIDI 4 "s_register_operand" "r,r,r,r") ;; desired (match_operand:SI 5 "const_int_operand") ;; is_weak (match_operand:SI 6 "const_int_operand") ;; mod_s (match_operand:SI 7 "const_int_operand")] ;; mod_f VUNSPEC_ATOMIC_CAS)) ! (clobber (match_scratch:SI 8 "=&r,X,X,X"))] "" "#" "&& reload_completed" --- 219,237 ---- ;; Constraints of this pattern must be at least as strict as those of the ;; cbranchsi operations in thumb1.md and aim to be as permissive. (define_insn_and_split "@atomic_compare_and_swap_1" ! [(set (match_operand:CCSI 0 "cc_register_operand" "=&c,&l,&l") ;; bool out (unspec_volatile:CCSI [(const_int 0)] VUNSPEC_ATOMIC_CAS)) ! (set (match_operand:SIDI 1 "s_register_operand" "=&r,&l,&l*h") ;; val out ! (match_operand:SIDI 2 "mem_noofs_operand" "+Ua,Ua,Ua")) ;; memory (set (match_dup 2) (unspec_volatile:SIDI ! [(match_operand:SIDI 3 "" ",lILJ*h,*r") ;; expect ! (match_operand:SIDI 4 "s_register_operand" "r,r,r") ;; desired (match_operand:SI 5 "const_int_operand") ;; is_weak (match_operand:SI 6 "const_int_operand") ;; mod_s (match_operand:SI 7 "const_int_operand")] ;; mod_f VUNSPEC_ATOMIC_CAS)) ! (clobber (match_scratch:SI 8 "=&r,X,X"))] "" "#" "&& reload_completed" *************** *** 240,246 **** arm_split_compare_and_swap (operands); DONE; } ! [(set_attr "arch" "32,v8mb,v8mb,v8mb")]) (define_insn_and_split "atomic_exchange" [(set (match_operand:QHSD 0 "s_register_operand" "=&r,&r") ;; output --- 240,246 ---- arm_split_compare_and_swap (operands); DONE; } ! [(set_attr "arch" "32,v8mb,v8mb")]) (define_insn_and_split "atomic_exchange" [(set (match_operand:QHSD 0 "s_register_operand" "=&r,&r") ;; output diff -Nrcpad gcc-10.3.0/gcc/config/arm/t-rmprofile gcc-10.4.0/gcc/config/arm/t-rmprofile *** gcc-10.3.0/gcc/config/arm/t-rmprofile Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/config/arm/t-rmprofile Tue Jun 28 08:54:27 2022 *************** MULTILIB_REQUIRED += mthumb/march=armv8. *** 53,62 **** # Arch Matches MULTILIB_MATCHES += march?armv6s-m=march?armv6-m # Map all v8-m.main+dsp FP variants down to the variant without DSP. ! MULTILIB_MATCHES += march?armv8-m.main=march?armv8-m.main+dsp \ $(foreach FP, +fp +fp.dp, \ ! march?armv8-m.main$(FP)=march?armv8-m.main+dsp$(FP)) # For single-precision only fpv5, use the base fp libraries MULTILIB_MATCHES += march?armv7e-m+fp=march?armv7e-m+fpv5 --- 53,67 ---- # Arch Matches MULTILIB_MATCHES += march?armv6s-m=march?armv6-m + # For all MULITIB_MATCHES for v8-m and above add mlibarch? on the right hand side + # of = in the variant string instead of march?. This is needed becuase all the + # MULITIB_MATCHES variant strings are compared with mlibarch option for multilib + # linking. + # Map all v8-m.main+dsp FP variants down to the variant without DSP. ! MULTILIB_MATCHES += march?armv8-m.main=mlibarch?armv8-m.main+dsp \ $(foreach FP, +fp +fp.dp, \ ! march?armv8-m.main$(FP)=mlibarch?armv8-m.main+dsp$(FP)) # For single-precision only fpv5, use the base fp libraries MULTILIB_MATCHES += march?armv7e-m+fp=march?armv7e-m+fpv5 *************** MULTILIB_MATCHES += march?armv7e-m+fp=ma *** 65,74 **** MULTILIB_REUSE += $(foreach ARCH, armv6s-m armv7-m armv7e-m armv8-m\.base armv8-m\.main, \ mthumb/march.$(ARCH)/mfloat-abi.soft=mthumb/march.$(ARCH)/mfloat-abi.softfp) - # Map v8.1-M to v8-M. ! MULTILIB_MATCHES += march?armv8-m.main=march?armv8.1-m.main ! MULTILIB_MATCHES += march?armv8-m.main=march?armv8.1-m.main+dsp MULTILIB_REUSE += mthumb/march.armv8-m\.main/mfloat-abi.soft=mthumb/march.armv8\.1-m\.main+mve/mfloat-abi.soft MULTILIB_REUSE += mthumb/march.armv8-m\.main/mfloat-abi.soft=mthumb/march.armv8\.1-m\.main+mve/mfloat-abi.softfp --- 70,78 ---- MULTILIB_REUSE += $(foreach ARCH, armv6s-m armv7-m armv7e-m armv8-m\.base armv8-m\.main, \ mthumb/march.$(ARCH)/mfloat-abi.soft=mthumb/march.$(ARCH)/mfloat-abi.softfp) # Map v8.1-M to v8-M. ! MULTILIB_MATCHES += march?armv8-m.main=mlibarch?armv8.1-m.main ! MULTILIB_MATCHES += march?armv8-m.main=mlibarch?armv8.1-m.main+dsp MULTILIB_REUSE += mthumb/march.armv8-m\.main/mfloat-abi.soft=mthumb/march.armv8\.1-m\.main+mve/mfloat-abi.soft MULTILIB_REUSE += mthumb/march.armv8-m\.main/mfloat-abi.soft=mthumb/march.armv8\.1-m\.main+mve/mfloat-abi.softfp *************** v8_1m_dp_variants = +fp.dp +dsp+fp.dp +f *** 77,84 **** # Map all v8.1-m.main FP sp variants down to v8-m. MULTILIB_MATCHES += $(foreach FP, $(v8_1m_sp_variants), \ ! march?armv8-m.main+fp=march?armv8.1-m.main$(FP)) # Map all v8.1-m.main FP dp variants down to v8-m. MULTILIB_MATCHES += $(foreach FP, $(v8_1m_dp_variants), \ ! march?armv8-m.main+fp.dp=march?armv8.1-m.main$(FP)) --- 81,95 ---- # Map all v8.1-m.main FP sp variants down to v8-m. MULTILIB_MATCHES += $(foreach FP, $(v8_1m_sp_variants), \ ! march?armv8-m.main+fp=mlibarch?armv8.1-m.main$(FP)) # Map all v8.1-m.main FP dp variants down to v8-m. MULTILIB_MATCHES += $(foreach FP, $(v8_1m_dp_variants), \ ! march?armv8-m.main+fp.dp=mlibarch?armv8.1-m.main$(FP)) ! ! # For all the MULTILIB_REQUIRED for v8-m and above, add MULTILIB_MATCHES which ! # maps mlibarch with march for multilib linking. ! MULTILIB_MATCHES += march?armv8-m.main=mlibarch?armv8-m.main ! MULTILIB_MATCHES += march?armv8-m.main+fp=mlibarch?armv8-m.main+fp ! MULTILIB_MATCHES += march?armv8-m.main+fp.dp=mlibarch?armv8-m.main+fp.dp ! MULTILIB_MATCHES += march?armv8.1-m.main+mve=mlibarch?armv8.1-m.main+mve diff -Nrcpad gcc-10.3.0/gcc/config/arm/thumb1.md gcc-10.4.0/gcc/config/arm/thumb1.md *** gcc-10.3.0/gcc/config/arm/thumb1.md Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/config/arm/thumb1.md Tue Jun 28 08:54:27 2022 *************** *** 1242,1247 **** --- 1242,1262 ---- (set_attr "type" "multiple")] ) + ;; An expander which makes use of the cbranchsi4_scratch insn, but can + ;; be used safely after RA. + (define_expand "cbranchsi4_neg_late" + [(parallel [ + (set (pc) (if_then_else + (match_operator 4 "arm_comparison_operator" + [(match_operand:SI 1 "s_register_operand") + (match_operand:SI 2 "thumb1_cmpneg_operand")]) + (label_ref (match_operand 3 "" "")) + (pc))) + (clobber (match_operand:SI 0 "s_register_operand")) + ])] + "TARGET_THUMB1" + ) + ;; Changes to the constraints of this pattern must be propagated to those of ;; atomic compare_and_swap splitters in sync.md. These must be at least as ;; strict as the constraints here and aim to be as permissive. diff -Nrcpad gcc-10.3.0/gcc/config/arm/vfp.md gcc-10.4.0/gcc/config/arm/vfp.md *** gcc-10.3.0/gcc/config/arm/vfp.md Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/config/arm/vfp.md Tue Jun 28 08:54:27 2022 *************** *** 1703,1714 **** (set_attr "type" "mov_reg")] ) (define_insn "lazy_store_multiple_insn" ! [(set (match_operand:SI 0 "s_register_operand" "+&rk") ! (post_dec:SI (match_dup 0))) ! (unspec_volatile [(const_int 0) ! (mem:SI (post_dec:SI (match_dup 0)))] ! VUNSPEC_VLSTM)] "use_cmse && reload_completed" "vlstm%?\\t%0" [(set_attr "predicable" "yes") --- 1703,1717 ---- (set_attr "type" "mov_reg")] ) + ;; Both this and the next instruction are treated by GCC in the same + ;; way as a blockage pattern. That's perhaps stronger than it needs + ;; to be, but we do not want accesses to the VFP register bank to be + ;; moved across either instruction. + (define_insn "lazy_store_multiple_insn" ! [(unspec_volatile ! [(mem:BLK (match_operand:SI 0 "s_register_operand" "rk"))] ! VUNSPEC_VLSTM)] "use_cmse && reload_completed" "vlstm%?\\t%0" [(set_attr "predicable" "yes") *************** *** 1716,1729 **** ) (define_insn "lazy_load_multiple_insn" ! [(set (match_operand:SI 0 "s_register_operand" "+&rk") ! (post_inc:SI (match_dup 0))) ! (unspec_volatile:SI [(const_int 0) ! (mem:SI (match_dup 0))] ! VUNSPEC_VLLDM)] "use_cmse && reload_completed" ! "vlldm%?\\t%0" ! [(set_attr "predicable" "yes") (set_attr "type" "load_4")] ) --- 1719,1734 ---- ) (define_insn "lazy_load_multiple_insn" ! [(unspec_volatile ! [(mem:BLK (match_operand:SI 0 "s_register_operand" "rk,rk"))] ! VUNSPEC_VLLDM)] "use_cmse && reload_completed" ! "@ ! vscclrm\\t{vpr}\;vlldm\\t%0 ! vlldm\\t%0" ! [(set_attr "arch" "fix_vlldm,*") ! (set_attr "predicable" "no") ! (set_attr "length" "8,4") (set_attr "type" "load_4")] ) diff -Nrcpad gcc-10.3.0/gcc/config/bpf/bpf.h gcc-10.4.0/gcc/config/bpf/bpf.h *** gcc-10.3.0/gcc/config/bpf/bpf.h Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/config/bpf/bpf.h Tue Jun 28 08:54:27 2022 *************** *** 57,64 **** 64-bit at any time. */ #define STACK_BOUNDARY 64 ! /* Function entry points are aligned to 128 bits. */ ! #define FUNCTION_BOUNDARY 128 /* Maximum alignment required by data of any type. */ #define BIGGEST_ALIGNMENT 64 --- 57,64 ---- 64-bit at any time. */ #define STACK_BOUNDARY 64 ! /* Function entry points are aligned to 64 bits. */ ! #define FUNCTION_BOUNDARY 64 /* Maximum alignment required by data of any type. */ #define BIGGEST_ALIGNMENT 64 *************** enum reg_class *** 422,430 **** Try to use asm_output_aligned_bss to implement this macro. */ #define ASM_OUTPUT_ALIGNED_BSS(FILE, DECL, NAME, SIZE, ALIGN) \ ! do { \ ! ASM_OUTPUT_ALIGNED_LOCAL (FILE, NAME, SIZE, ALIGN); \ ! } while (0) /*** Output and Generation of Labels. */ --- 422,436 ---- Try to use asm_output_aligned_bss to implement this macro. */ #define ASM_OUTPUT_ALIGNED_BSS(FILE, DECL, NAME, SIZE, ALIGN) \ ! do \ ! { \ ! ASM_OUTPUT_TYPE_DIRECTIVE (FILE, NAME, "object"); \ ! fprintf ((FILE), "%s", "\t.lcomm\t"); \ ! assemble_name ((FILE), (NAME)); \ ! fprintf ((FILE), "," HOST_WIDE_INT_PRINT_UNSIGNED ",%u\n", \ ! (SIZE), (ALIGN) / BITS_PER_UNIT); \ ! } \ ! while (0) /*** Output and Generation of Labels. */ diff -Nrcpad gcc-10.3.0/gcc/config/darwin-c.c gcc-10.4.0/gcc/config/darwin-c.c *** gcc-10.3.0/gcc/config/darwin-c.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/config/darwin-c.c Tue Jun 28 08:54:27 2022 *************** macosx_version_as_macro (void) *** 691,697 **** if (!version_array) goto fail; ! if (version_array[MAJOR] < 10 || version_array[MAJOR] > 11) goto fail; if (version_array[MAJOR] == 10 && version_array[MINOR] < 10) --- 691,698 ---- if (!version_array) goto fail; ! /* System tools accept up to 99 as a major version. */ ! if (version_array[MAJOR] < 10 || version_array[MAJOR] > 99) goto fail; if (version_array[MAJOR] == 10 && version_array[MINOR] < 10) diff -Nrcpad gcc-10.3.0/gcc/config/darwin-driver.c gcc-10.4.0/gcc/config/darwin-driver.c *** gcc-10.3.0/gcc/config/darwin-driver.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/config/darwin-driver.c Tue Jun 28 08:54:27 2022 *************** validate_macosx_version_min (const char *** 64,80 **** major = strtoul (version_str, &end, 10); ! if (major < 10 || major > 11 ) /* MacOS 10 and 11 are known. */ return NULL; /* Skip a separating period, if there's one. */ version_str = end + ((*end == '.') ? 1 : 0); ! if (major == 11 && *end != '\0' && !ISDIGIT (version_str[0])) ! /* For MacOS 11, we allow just the major number, but if the minor is there it must be numeric. */ return NULL; ! else if (major == 11 && *end == '\0') /* We will rewrite 11 => 11.0.0. */ need_rewrite = true; else if (major == 10 && (*end == '\0' || !ISDIGIT (version_str[0]))) --- 64,81 ---- major = strtoul (version_str, &end, 10); ! /* macOS 10, 11, and 12 are known. clang accepts up to 99. */ ! if (major < 10 || major > 99) return NULL; /* Skip a separating period, if there's one. */ version_str = end + ((*end == '.') ? 1 : 0); ! if (major > 10 && *end != '\0' && !ISDIGIT (version_str[0])) ! /* For macOS 11+, we allow just the major number, but if the minor is there it must be numeric. */ return NULL; ! else if (major > 10 && *end == '\0') /* We will rewrite 11 => 11.0.0. */ need_rewrite = true; else if (major == 10 && (*end == '\0' || !ISDIGIT (version_str[0]))) *************** darwin_find_version_from_kernel (void) *** 159,178 **** goto parse_failed; /* Darwin20 sees a transition to macOS 11. In this, it seems that the ! mapping to macOS minor version is now shifted to the kernel minor ! version - 1 (at least for the initial releases). At this stage, we ! don't know what macOS version will correspond to Darwin21. */ if (major_vers >= 20) { ! int minor_vers = *version_p++ - '0'; ! if (ISDIGIT (*version_p)) ! minor_vers = minor_vers * 10 + (*version_p++ - '0'); ! if (*version_p++ != '.') ! goto parse_failed; ! if (minor_vers > 0) ! minor_vers -= 1; /* Kernel 20.3 => macOS 11.2. */ ! /* It's not yet clear whether patch level will be considered. */ ! asprintf (&new_flag, "11.%02d.00", minor_vers); } else if (major_vers - 4 <= 4) /* On 10.4 and earlier, the old linker is used which does not --- 160,172 ---- goto parse_failed; /* Darwin20 sees a transition to macOS 11. In this, it seems that the ! mapping to macOS minor version and patch level is now always 0, 0 ! (at least for macOS 11 and 12). */ if (major_vers >= 20) { ! /* Apple clang doesn't include the minor version or the patch level ! in the object file, nor does it pass it to ld */ ! asprintf (&new_flag, "%d.00.00", major_vers - 9); } else if (major_vers - 4 <= 4) /* On 10.4 and earlier, the old linker is used which does not *************** maybe_get_sysroot_from_sdkroot () *** 259,272 **** return xstrndup (maybe_sysroot, strlen (maybe_sysroot)); } ! /* Translate -filelist and -framework options in *DECODED_OPTIONS ! (size *DECODED_OPTIONS_COUNT) to use -Xlinker so that they are ! considered to be linker inputs in the case that no other inputs are ! specified. Handling these options in DRIVER_SELF_SPECS does not ! suffice because specs are too late to add linker inputs, and ! handling them in LINK_SPEC does not suffice because the linker will ! not be called if there are no other inputs. When native, also ! default the -mmacosx-version-min flag. */ void darwin_driver_init (unsigned int *decoded_options_count, --- 253,263 ---- return xstrndup (maybe_sysroot, strlen (maybe_sysroot)); } ! /* Handle the deduction of m32/m64 from -arch flags and the interactions ! between them (i.e. try to warn a user who thinks that they have a driver ! that can produce multi-slice "FAT" outputs with more than one arch). ! Default the -mmacosx-version-min flag, which requires a system call on ! native hosts. */ void darwin_driver_init (unsigned int *decoded_options_count, *************** darwin_driver_init (unsigned int *decode *** 284,289 **** --- 275,281 ---- const char *vers_string = NULL; bool seen_version_min = false; bool seen_sysroot_p = false; + bool noexport_p = true; for (i = 1; i < *decoded_options_count; i++) { *************** darwin_driver_init (unsigned int *decode *** 326,348 **** seenM64 = true; break; - case OPT_filelist: - case OPT_framework: - ++*decoded_options_count; - *decoded_options = XRESIZEVEC (struct cl_decoded_option, - *decoded_options, - *decoded_options_count); - memmove (*decoded_options + i + 2, - *decoded_options + i + 1, - ((*decoded_options_count - i - 2) - * sizeof (struct cl_decoded_option))); - generate_option (OPT_Xlinker, (*decoded_options)[i].arg, 1, - CL_DRIVER, &(*decoded_options)[i + 1]); - generate_option (OPT_Xlinker, - (*decoded_options)[i].canonical_option[0], 1, - CL_DRIVER, &(*decoded_options)[i]); - break; - case OPT_mmacosx_version_min_: seen_version_min = true; vers_string = --- 318,323 ---- *************** darwin_driver_init (unsigned int *decode *** 369,374 **** --- 344,356 ---- seen_sysroot_p = true; break; + case OPT_Xlinker: + case OPT_Wl_: + gcc_checking_assert ((*decoded_options)[i].arg); + if (strncmp ((*decoded_options)[i].arg, "-exported_symbol", 16) == 0) + noexport_p = false; + break; + default: break; } *************** darwin_driver_init (unsigned int *decode *** 420,425 **** --- 402,411 ---- } #endif + /* If there is nothing else on the command line, do not add sysroot etc. */ + if (*decoded_options_count <= 1) + return; + if (appendM32 || appendM64) { ++*decoded_options_count; *************** darwin_driver_init (unsigned int *decode *** 430,436 **** &(*decoded_options)[*decoded_options_count - 1]); } ! if (! seen_sysroot_p) { /* We will pick up an SDKROOT if we didn't specify a sysroot and treat it as overriding any configure-time --with-sysroot. */ --- 416,422 ---- &(*decoded_options)[*decoded_options_count - 1]); } ! if (!seen_sysroot_p) { /* We will pick up an SDKROOT if we didn't specify a sysroot and treat it as overriding any configure-time --with-sysroot. */ *************** darwin_driver_init (unsigned int *decode *** 449,455 **** /* We will need to know the OS X version we're trying to build for here so that we can figure out the mechanism and source for the sysroot to be used. */ ! if (! seen_version_min && *decoded_options_count > 1) /* Not set by the User, try to figure it out. */ vers_string = darwin_default_min_version (); --- 435,441 ---- /* We will need to know the OS X version we're trying to build for here so that we can figure out the mechanism and source for the sysroot to be used. */ ! if (!seen_version_min) /* Not set by the User, try to figure it out. */ vers_string = darwin_default_min_version (); *************** darwin_driver_init (unsigned int *decode *** 486,489 **** --- 472,485 ---- &(*decoded_options)[*decoded_options_count - 1]); } } + + if (noexport_p) + { + ++*decoded_options_count; + *decoded_options = XRESIZEVEC (struct cl_decoded_option, + *decoded_options, + *decoded_options_count); + generate_option (OPT_nodefaultexport, NULL, 1, CL_DRIVER, + &(*decoded_options)[*decoded_options_count - 1]); + } } diff -Nrcpad gcc-10.3.0/gcc/config/darwin-sections.def gcc-10.4.0/gcc/config/darwin-sections.def *** gcc-10.3.0/gcc/config/darwin-sections.def Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/config/darwin-sections.def Tue Jun 28 08:54:27 2022 *************** DEF_SECTION (objc2_constant_string_objec *** 201,206 **** --- 201,207 ---- /* Additions for compatibility with later runtime conventions especially for sections containing strings. */ + DEF_SECTION (objc2_data_section, 0, ".section __DATA, __data", 1) DEF_SECTION (objc2_ivar_section, 0, ".section __DATA, __objc_ivar", 1) diff -Nrcpad gcc-10.3.0/gcc/config/darwin.c gcc-10.4.0/gcc/config/darwin.c *** gcc-10.3.0/gcc/config/darwin.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/config/darwin.c Tue Jun 28 08:54:27 2022 *************** static bool ld_uses_coal_sects = false; *** 108,113 **** --- 108,116 ---- each FDE. */ static bool ld_needs_eh_markers = false; + /* Emit a section-start symbol for mod init and term sections. */ + static bool ld_init_term_start_labels = false; + /* Section names. */ section * darwin_sections[NUM_DARWIN_SECTIONS]; *************** finalize_ctors () *** 1843,1848 **** --- 1846,1856 ---- else switch_to_section (darwin_sections[constructor_section]); + /* Where needed, provide a linker-visible section-start symbol so that we + have stable output between debug and non-debug. */ + if (ld_init_term_start_labels) + fputs (MACHOPIC_INDIRECT ? "_Mod.init:\n" : "_CTOR.sect:\n", asm_out_file); + if (vec_safe_length (ctors) > 1) ctors->qsort (sort_cdtor_records); FOR_EACH_VEC_SAFE_ELT (ctors, i, elt) *************** finalize_dtors () *** 1863,1868 **** --- 1871,1881 ---- else switch_to_section (darwin_sections[destructor_section]); + /* Where needed, provide a linker-visible section-start symbol so that we + have stable output between debug and non-debug. */ + if (ld_init_term_start_labels) + fputs (MACHOPIC_INDIRECT ? "_Mod.term:\n" : "_DTOR.sect:\n", asm_out_file); + if (vec_safe_length (dtors) > 1) dtors->qsort (sort_cdtor_records); FOR_EACH_VEC_SAFE_ELT (dtors, i, elt) *************** darwin_label_is_anonymous_local_objc_nam *** 1926,1931 **** --- 1939,1946 ---- } 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_file_end (void) *** 3124,3129 **** --- 3139,3152 ---- re-arranging data. */ if (!DARWIN_SECTION_ANCHORS || !flag_section_anchors) fprintf (asm_out_file, "\t.subsections_via_symbols\n"); + + /* We rely on this being NULL at the start of compilation; reset it here + so that JIT can reuse a context. */ + if (dwarf_sect_names_table != NULL) + { + dwarf_sect_names_table->truncate (0); + dwarf_sect_names_table = NULL; + } } /* TODO: Add a language hook for identifying if a decl is a vtable. */ *************** darwin_override_options (void) *** 3215,3225 **** /* Earlier versions are not specifically accounted, until required. */ } ! /* Older Darwin ld could not coalesce weak entities without them being ! placed in special sections. */ ! if (darwin_target_linker ! && (strverscmp (darwin_target_linker, MIN_LD64_NO_COAL_SECTS) < 0)) ! ld_uses_coal_sects = true; /* In principle, this should be c-family only. However, we really need to set sensible defaults for LTO as well, since the section selection stuff --- 3238,3262 ---- /* Earlier versions are not specifically accounted, until required. */ } ! /* Some codegen needs to account for the capabilities of the target ! linker. */ ! if (darwin_target_linker) ! { ! /* Older Darwin ld could not coalesce weak entities without them being ! placed in special sections. */ ! if (strverscmp (darwin_target_linker, MIN_LD64_NO_COAL_SECTS) < 0) ! ld_uses_coal_sects = true; ! ! /* Some newer assemblers emit section start temp symbols for mod init ! and term sections if there is no suitable symbol present already. ! The temp symbols are linker visible and therefore appear in the ! symbol tables. Since the temp symbol number can vary when debug is ! enabled, that causes compare-debug fails. The solution is to provide ! a stable linker-visible symbol. */ ! if (strverscmp (darwin_target_linker, ! MIN_LD64_INIT_TERM_START_LABELS) >= 0) ! ld_init_term_start_labels = true; ! } /* In principle, this should be c-family only. However, we really need to set sensible defaults for LTO as well, since the section selection stuff *************** tree *** 3569,3575 **** 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) { --- 3606,3612 ---- 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_ *** 3595,3624 **** void darwin_rename_builtins (void) { - /* The system ___divdc3 routine in libSystem on darwin10 is not - accurate to 1ulp, ours is, so we avoid ever using the system name - for this routine and instead install a non-conflicting name that - is accurate. - - When -ffast-math or -funsafe-math-optimizations is given, we can - use the faster version. */ - if (!flag_unsafe_math_optimizations) - { - enum built_in_function dcode - = (enum built_in_function)(BUILT_IN_COMPLEX_DIV_MIN - + DCmode - MIN_MODE_COMPLEX_FLOAT); - tree fn = builtin_decl_explicit (dcode); - /* Fortran and c call TARGET_INIT_BUILTINS and - TARGET_INIT_LIBFUNCS at different times, so we have to put a - call into each to ensure that at least one of them is called - after build_common_builtin_nodes. A better fix is to add a - new hook to run after build_common_builtin_nodes runs. */ - if (fn) - set_user_assembler_name (fn, "___ieee_divdc3"); - fn = builtin_decl_implicit (dcode); - if (fn) - set_user_assembler_name (fn, "___ieee_divdc3"); - } } bool --- 3632,3637 ---- diff -Nrcpad gcc-10.3.0/gcc/config/darwin.h gcc-10.4.0/gcc/config/darwin.h *** gcc-10.3.0/gcc/config/darwin.h Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/config/darwin.h Tue Jun 28 08:54:27 2022 *************** see the files COPYING3 and COPYING.RUNTI *** 54,59 **** --- 54,64 ---- #define DO_GLOBAL_DTORS_BODY + /* Register static destructors to run from __cxa_atexit instead of putting + them into a .mod_term_funcs section. */ + + #define TARGET_DTORS_FROM_CXA_ATEXIT true + /* The string value for __SIZE_TYPE__. */ #ifndef SIZE_TYPE *************** see the files COPYING3 and COPYING.RUNTI *** 118,141 **** /* True if pragma ms_struct is in effect. */ extern GTY(()) int darwin_ms_struct; ! /* The majority of Darwin's special driver opts are direct access to ld flags ! (to save the user typing -Wl,xxxxx or Xlinker xxxxx) but we can't process ! them here, since doing so will make it appear that there are linker infiles ! and the linker will invoked even when it is not necessary. - However, a few can be handled and we can elide options that are silently- - ignored defaults, plus warn on obsolete ones that no longer function. */ #undef SUBTARGET_DRIVER_SELF_SPECS #define SUBTARGET_DRIVER_SELF_SPECS \ ! "%{fapple-kext|mkernel:-static}", \ ! "%{gfull:-g -fno-eliminate-unused-debug-symbols} %= 10.7 mmacosx-version-min= -no_pie) }" #define DARWIN_CC1_SPEC \ ! "%{findirect-virtual-calls: -fapple-kext} %= 10.7 mmacosx-version-min= -no_pie) }" #define DARWIN_CC1_SPEC \ ! "%< 10.6 10.7 mmacosx-version-min= -ld10-uwfef.o) \ %(link_gcc_c_sequence) \ }}}\ ! %{!nostdlib:%{!r:%{!nostartfiles:%E}}} %{T*} %{F*} "\ DARWIN_PIE_SPEC \ DARWIN_NOPIE_SPEC \ DARWIN_RDYNAMIC \ DARWIN_NOCOMPACT_UNWIND \ "}}}}}}} %= 10.6 mmacosx-version-min= -lSystem) } } \ ! %G %{!nolibc:%L}" /* ld64 supports a sysroot, it just has a different name and there's no easy way to check for it at config time. */ --- 350,411 ---- "%X %{s} %{t} %{Z} %{u*} \ %{e*} %{r} \ %{o*}%{!o:-o a.out} \ ! %{!r:%{!nostdlib:%{!nostartfiles:%S}}} \ ! %{L*} %(link_libgcc) %o \ ! %{!r:%{!nostdlib:%{!nodefaultlibs:\ ! %{fprofile-arcs|fprofile-generate*|coverage:-lgcov} \ ! %{fopenacc|fopenmp|%:gt(%{ftree-parallelize-loops=*:%*} 1): \ ! %{static|static-libgcc|static-libstdc++|static-libgfortran: \ ! libgomp.a%s; : -lgomp }} \ ! %{fgnu-tm: \ ! %{static|static-libgcc|static-libstdc++|static-libgfortran: \ ! libitm.a%s; : -litm }} \ %{%:sanitize(address): -lasan } \ %{%:sanitize(undefined): -lubsan } \ %(link_ssp) \ ! %:version-compare(>< 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*} "\ DARWIN_PIE_SPEC \ DARWIN_NOPIE_SPEC \ DARWIN_RDYNAMIC \ DARWIN_NOCOMPACT_UNWIND \ "}}}}}}} % 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) \ ! %:version-compare(>< 10.3.9 10.5 mmacosx-version-min= -lgcc_ext.10.4) \ ! %:version-compare(>= 10.5 mmacosx-version-min= -lgcc_ext.10.5) \ ! -lgcc ; \ ! :%: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) \ ! %:version-compare(>< 10.3.9 10.5 mmacosx-version-min= -lgcc_ext.10.4) \ ! %:version-compare(>= 10.5 mmacosx-version-min= -lgcc_ext.10.5) \ ! -lgcc }" /* We specify crt0.o as -lcrt0.o so that ld will search the library path. */ #undef STARTFILE_SPEC #define STARTFILE_SPEC \ ! "%{Zdynamiclib: %(darwin_dylib1) %{fgnu-tm: -lcrttms.o}} \ ! %{!Zdynamiclib:%{Zbundle:%(darwin_bundle1)} \ ! %{!Zbundle:%{pg:%{static:-lgcrt0.o} \ %{!static:%{object:-lgcrt0.o} \ %{!object:%{preload:-lgcrt0.o} \ %{!preload:-lgcrt1.o \ --- 413,522 ---- #define HAVE_LD_SYSROOT 1 /* It seems the only (working) way to get a space after %R is to append a dangling '/'. */ ! #define SYSROOT_SPEC "%{!isysroot*:-syslibroot %R/ } " /* Do the same as clang, for now, and insert the sysroot for ld when an isysroot is specified. */ ! #define LINK_SYSROOT_SPEC "%{isysroot*:-syslibroot %*} " /* Suppress the addition of extra prefix paths when a sysroot is in use. */ #define STANDARD_STARTFILE_PREFIX_1 "" #define STANDARD_STARTFILE_PREFIX_2 "" ! ! /* Please keep the random linker options in alphabetical order. ! Note that options taking arguments may appear multiple times on a command ! line with different arguments each time, so put a * after their names so ! all of them get passed. */ #define LINK_SPEC \ ! "%{static}%{!static:%{!dynamic:-dynamic}} \ %:remove-outfile(-ldl) \ %:remove-outfile(-lm) \ %:remove-outfile(-lpthread) \ %{fgnu-runtime: %{static|static-libgcc: \ %:replace-outfile(-lobjc libobjc-gnu.a%s); \ ! :%:replace-outfile(-lobjc -lobjc-gnu )}}\ %{static|static-libgcc|static-libgfortran:%:replace-outfile(-lgfortran libgfortran.a%s)}\ %{static|static-libgcc|static-libstdc++|static-libgfortran:%:replace-outfile(-lgomp libgomp.a%s)}\ %{static|static-libgcc|static-libstdc++:%:replace-outfile(-lstdc++ libstdc++.a%s)}\ ! %{force_cpusubtype_ALL:-arch %(darwin_arch)} \ ! %{!force_cpusubtype_ALL:-arch %(darwin_subarch)} "\ ! LINK_SYSROOT_SPEC \ ! "%{mmacosx-version-min=*:-macosx_version_min %*} \ ! %{!multiply_defined*:%{shared-libgcc: \ %:version-compare(< 10.5 mmacosx-version-min= -multiply_defined) \ ! %:version-compare(< 10.5 mmacosx-version-min= suppress) }} \ ! %{sectalign*} %{sectcreate*} %{sectobjectsymbols*} %{sectorder*} \ ! %{segaddr*} %{segcreate*} %{segprot*} " /* Machine dependent libraries. */ #define LIB_SPEC "%{!static:-lSystem}" ! /* ! Note that by default, -lgcc_eh is not linked against. This is because,in general, we need to unwind through system libraries that are linked with the shared unwinder in libunwind (or libgcc_s for 10.4/5). ! For -static-libgcc: < 10.6, use the unwinder in libgcc_eh (and find ! the emultls impl. there too). ! For -static-libgcc: >= 10.6, the unwinder *still* comes from libSystem and ! we find the emutls impl from lemutls_w. In either case, the builtins etc. ! are linked from -lgcc. ! ! When we have specified shared-libgcc or any case that might require ! exceptions, we pull the libgcc content (including emulated tls) from ! -lgcc_s.1 in GCC and the unwinder from /usr/lib/libgcc_s.1 for < 10.6 and ! libSystem for >= 10.6 respectively. ! Otherwise, we just link the emutls/builtins from convenience libs. ! ! If we need exceptions, prior to 10.3.9, then we have to link the static ! eh lib, since there's no shared version on the system. ! ! In all cases, libgcc_s.1 will be installed with the compiler, or any app ! built using it, so we can link the builtins and emutls shared on all. ! ! We have to work around that DYLD_XXXX are disabled in macOS 10.11+ which ! means that any bootstrap trying to use a shared libgcc with a bumped SO- ! name will fail. This means that we do not accept shared libgcc for these ! versions. + For -static-libgcc: >= 10.6, the unwinder *still* comes from libSystem and + we find the emutls impl from lemutls_w. In either case, the builtins etc. + are linked from -lgcc. + > + Otherwise, we just link the shared version of gcc_s.1.1 and pick up + exceptions: + * Prior to 10.3.9, then we have to link the static eh lib, since there + is no shared version on the system. + * from 10.3.9 to 10.5, from /usr/lib/libgcc_s.1.dylib + * from 10.6 onwards, from libSystem.dylib + + In all cases, libgcc_s.1.1 will be installed with the compiler, or any app + built using it, so we can link the builtins and emutls shared on all. + */ #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} \ %{!preload:-lgcrt1.o \ *************** extern GTY(()) int darwin_ms_struct; *** 424,430 **** %{!object:%{preload:-lcrt0.o} \ %{!preload: %(darwin_crt1) \ %(darwin_crt2)}}}}}} \ ! %(darwin_crt3)" /* We want a destructor last in the list. */ #define TM_DESTRUCTOR "%{fgnu-tm: -lcrttme.o}" --- 527,533 ---- %{!object:%{preload:-lcrt0.o} \ %{!preload: %(darwin_crt1) \ %(darwin_crt2)}}}}}} \ ! %(darwin_crt3) % The output dylib is private to the client . arch --- 90,100 ---- ; Driver options. all_load ! Driver RejectNegative Load all members of archive libraries, rather than only those that satisfy undefined symbols. allowable_client ! Driver RejectNegative Separate -allowable_client The output dylib is private to the client . arch *************** Driver RejectNegative Separate *** 102,108 **** -arch Generate output for architecture . arch_errors_fatal ! Driver RejectNegative Alias(Zarch_errors_fatal) Mismatches between file architecture and one specified by \"-arch\" are errors instead of warnings. asm_macosx_version_min= --- 102,108 ---- -arch Generate output for architecture . arch_errors_fatal ! Driver RejectNegative Mismatches between file architecture and one specified by \"-arch\" are errors instead of warnings. asm_macosx_version_min= *************** Driver RejectNegative Joined *** 110,124 **** The earliest macOS version on which this program will run (formatted for the assembler). bind_at_load ! Driver RejectNegative Alias(Zbind_at_load) Generate an output executable that binds symbols on load, rather than lazily. bundle ! Driver RejectNegative Alias(Zbundle) Generate a Mach-O bundle (file type MH_BUNDLE). bundle_loader ! Driver RejectNegative Separate Alias(Zbundle_loader) -bundle_loader Treat (that will be loading this bundle) as if it was one of the dynamic libraries the bundle is linked against for symbol resolution. client_name --- 110,124 ---- The earliest macOS version on which this program will run (formatted for the assembler). bind_at_load ! Driver RejectNegative Generate an output executable that binds symbols on load, rather than lazily. bundle ! Driver RejectNegative Generate a Mach-O bundle (file type MH_BUNDLE). bundle_loader ! Driver RejectNegative Separate -bundle_loader Treat (that will be loading this bundle) as if it was one of the dynamic libraries the bundle is linked against for symbol resolution. client_name *************** Driver RejectNegative Separate *** 134,144 **** -current_version Set the current version for the library to . dead_strip ! Driver RejectNegative Alias(Zdead_strip) Remove code and data that is unreachable from any exported symbol (including the entry point). dylib_file ! Driver Separate Alias(Zdylib_file) dylinker Driver RejectNegative --- 134,145 ---- -current_version Set the current version for the library to . dead_strip ! Driver RejectNegative Remove code and data that is unreachable from any exported symbol (including the entry point). dylib_file ! Driver RejectNegative Separate ! -dylib_file install_name:file_name This allows linking of a dylib with \"install_name\" but to be found in a different install position \"file_name\" dylinker Driver RejectNegative *************** Driver RejectNegative Separate *** 149,163 **** -dylinker_install_name Only used for building dyld. dynamic ! Driver RejectNegative Alias(Zdynamic) The default (and opposite of -static), implied by user mode executables, shared libraries and bundles. dynamiclib ! Driver RejectNegative Alias(Zdynamiclib) Produce a Mach-O shared library (file type MH_DYLIB), synonym for \"-shared\". exported_symbols_list ! Driver RejectNegative Separate Alias(Zexported_symbols_list) -exported_symbols_list Export global symbols in in linked output file; any symbols not mentioned will be treated as \"hidden\". filelist --- 150,164 ---- -dylinker_install_name Only used for building dyld. dynamic ! Driver RejectNegative The default (and opposite of -static), implied by user mode executables, shared libraries and bundles. dynamiclib ! Driver RejectNegative Produce a Mach-O shared library (file type MH_DYLIB), synonym for \"-shared\". exported_symbols_list ! Driver RejectNegative Separate -exported_symbols_list Export global symbols in in linked output file; any symbols not mentioned will be treated as \"hidden\". filelist *************** Driver RejectNegative *** 169,183 **** Used for generating code for some older kernel revisions. flat_namespace ! Driver RejectNegative Alias(Zflat_namespace) Ignore the normal two-level namespace; resolve symbols in command line order and do not record which library provided the resolved symbol. force_cpusubtype_ALL ! Driver RejectNegative Alias(Zforce_cpusubtype_ALL) For the assembler (and linker) permit any architecture sub-variant to be used without error. force_flat_namespace ! Driver RejectNegative Alias(Zforce_flat_namespace) Set the output object such that, on loading, dyld will ignore any two-level namespace information and resolve symbols in the discovery order for loaded libs. framework --- 170,184 ---- Used for generating code for some older kernel revisions. flat_namespace ! Driver RejectNegative Ignore the normal two-level namespace; resolve symbols in command line order and do not record which library provided the resolved symbol. force_cpusubtype_ALL ! Driver RejectNegative For the assembler (and linker) permit any architecture sub-variant to be used without error. force_flat_namespace ! Driver RejectNegative Set the output object such that, on loading, dyld will ignore any two-level namespace information and resolve symbols in the discovery order for loaded libs. framework *************** Driver RejectNegative *** 201,215 **** Automatically adds space for longer path names in load commands (up to MAXPATHLEN). image_base ! Driver RejectNegative Separate Alias(Zimage_base) -image_base
Specify
as the base address for a dylib or bundle. init ! Driver RejectNegative Separate Alias(Zinit) -init The symbol will be used as the first initialiser for a dylib. install_name ! Driver RejectNegative Separate Alias(Zinstall_name) -install_name Set the install name for a dylib. keep_private_externs --- 202,216 ---- Automatically adds space for longer path names in load commands (up to MAXPATHLEN). image_base ! Driver RejectNegative Separate -image_base
Specify
as the base address for a dylib or bundle. init ! Driver RejectNegative Separate -init The symbol will be used as the first initialiser for a dylib. install_name ! Driver RejectNegative Separate -install_name Set the install name for a dylib. keep_private_externs *************** Driver RejectNegative *** 217,237 **** Usually \"private extern\" (hidden) symbols are made local when linking, this command suppresses that such that they remain exported. multi_module ! Driver RejectNegative Alias(Zmulti_module) (Obsolete after 10.4) Multi modules are ignored at runtime since macOS 10.4. multiply_defined ! Driver RejectNegative Separate Alias(Zmultiply_defined) (Obsolete after 10.4) -multiply_defined Provided a mechanism for warning about symbols defined in multiple dylibs. multiply_defined_unused ! Driver RejectNegative Separate Alias(Zmultiplydefinedunused) (Obsolete after 10.4) -multiply_defined_unused Provided a mechanism for warning about symbols defined in the current executable also being defined in linked dylibs. no_dead_strip_inits_and_terms ! Driver RejectNegative Alias(Zno_dead_strip_inits_and_terms) (Obsolete) Current linkers never dead-strip these items, so the option is not needed. nofixprebinding Driver RejectNegative (Obsolete after 10.3.9) Set MH_NOPREFIXBINDING, in an executable. --- 218,242 ---- Usually \"private extern\" (hidden) symbols are made local when linking, this command suppresses that such that they remain exported. multi_module ! Driver RejectNegative (Obsolete after 10.4) Multi modules are ignored at runtime since macOS 10.4. multiply_defined ! Driver RejectNegative Separate (Obsolete after 10.4) -multiply_defined Provided a mechanism for warning about symbols defined in multiple dylibs. multiply_defined_unused ! Driver RejectNegative Separate (Obsolete after 10.4) -multiply_defined_unused Provided a mechanism for warning about symbols defined in the current executable also being defined in linked dylibs. no_dead_strip_inits_and_terms ! Driver RejectNegative (Obsolete) Current linkers never dead-strip these items, so the option is not needed. + nodefaultexport + Driver RejectNegative + Do not add a default symbol exports to modules or dynamic libraries. + nofixprebinding Driver RejectNegative (Obsolete after 10.3.9) Set MH_NOPREFIXBINDING, in an executable. *************** Driver RejectNegative Separate Args(3) *** 299,310 **** (Obsolete) -sectorder Replaced by a more general option \"-order_file\". seg_addr_table ! Driver RejectNegative Separate Alias(Zseg_addr_table) -seg_addr_table Specify the base addresses for dynamic libraries; contains a line for each library. ; This is only usable by the ld_classic linker. seg_addr_table_filename ! Driver RejectNegative Separate Alias(Zfn_seg_addr_table_filename) (Obsolete, ld_classic only) -seg_addr_table_filename . seg1addr --- 304,315 ---- (Obsolete) -sectorder Replaced by a more general option \"-order_file\". seg_addr_table ! Driver RejectNegative Separate -seg_addr_table Specify the base addresses for dynamic libraries; contains a line for each library. ; This is only usable by the ld_classic linker. seg_addr_table_filename ! Driver RejectNegative Separate (Obsolete, ld_classic only) -seg_addr_table_filename . seg1addr *************** Driver RejectNegative Separate *** 312,318 **** Synonym for \"image_base\". segaddr ! Driver RejectNegative Separate Args(2) Alias(Zsegaddr) -segaddr
Set the base address of segment to
which must be aligned to a page boundary (currently 4kb). ; This is only usable by the ld_classic linker. --- 317,323 ---- Synonym for \"image_base\". segaddr ! Driver RejectNegative Separate Args(2) -segaddr
Set the base address of segment to
which must be aligned to a page boundary (currently 4kb). ; This is only usable by the ld_classic linker. *************** Driver RejectNegative Separate Args(3) *** 329,343 **** -segprot The virtual memory protections for segment have maximum and initial values and respectively. The specified values may contain \"r\", \"w\", \"x\" or \"-\" the latter meaning \"no access\". segs_read_only_addr ! Driver RejectNegative Separate Alias(Zsegs_read_only_addr) -segs_read_only_addr
Specify that
is the base address of the read-only segments of a dylib. segs_read_write_addr ! Driver RejectNegative Separate Alias(Zsegs_read_write_addr) -segs_read_write_addr
Specify that
is the base address address of the read-write segments of a dylib. single_module ! Driver RejectNegative Alias(Zsingle_module) (Obsolete) This is the default. sub_library --- 334,348 ---- -segprot The virtual memory protections for segment have maximum and initial values and respectively. The specified values may contain \"r\", \"w\", \"x\" or \"-\" the latter meaning \"no access\". segs_read_only_addr ! Driver RejectNegative Separate -segs_read_only_addr
Specify that
is the base address of the read-only segments of a dylib. segs_read_write_addr ! Driver RejectNegative Separate -segs_read_write_addr
Specify that
is the base address address of the read-write segments of a dylib. single_module ! Driver RejectNegative (Obsolete) This is the default. sub_library *************** Driver RejectNegative *** 357,363 **** Add extra information to the executable that can speed up dynamic loading (provided that dependent libraries are unchanged). umbrella ! Driver RejectNegative Separate Alias(Zumbrella) -umbrella The specified framework will be re-exported. undefined --- 362,368 ---- Add extra information to the executable that can speed up dynamic loading (provided that dependent libraries are unchanged). umbrella ! Driver RejectNegative -umbrella The specified framework will be re-exported. undefined *************** Driver RejectNegative Separate *** 365,375 **** -undefined Specify the handling for undefined symbols (default is error). unexported_symbols_list ! Driver RejectNegative Separate Alias(Zunexported_symbols_list) -unexported_symbols_list Do not export the global symbols listed in . weak_reference_mismatches ! Driver RejectNegative Separate Alias(Zweak_reference_mismatches) -weak_reference_mismatches Specifies what to do if a symbol import conflicts between file (weak in one and not in another) the default is to treat the symbol as non-weak. whatsloaded --- 370,380 ---- -undefined Specify the handling for undefined symbols (default is error). unexported_symbols_list ! Driver RejectNegative Separate -unexported_symbols_list Do not export the global symbols listed in . weak_reference_mismatches ! Driver RejectNegative Separate -weak_reference_mismatches Specifies what to do if a symbol import conflicts between file (weak in one and not in another) the default is to treat the symbol as non-weak. whatsloaded *************** Driver RejectNegative Joined *** 391,487 **** Mach Driver RejectNegative (Obsolete and unhandled by ld64, ignored) ld should produce an executable (only handled by ld_classic). - - ;; These are not "real" options, but placeholders used to hide the real options - ;; from generic options processing... FIXME: they can be eliminated now. - - Zall_load - Driver - - Zallowable_client - Driver Separate - - Zarch_errors_fatal - Driver - - Zbind_at_load - Driver - - Zbundle - Driver - - Zbundle_loader - Driver Separate - - Zdead_strip - Driver - - Zdylib_file - Driver Separate - - Zdynamic - Driver - - Zdynamiclib - Driver - - Zexported_symbols_list - Driver Separate - - Zfn_seg_addr_table_filename - Driver Separate - - Zflat_namespace - Driver - - Zforce_cpusubtype_ALL - Driver - - Zforce_flat_namespace - Driver - - Zimage_base - Driver Separate - - Zinit - Driver Separate - - Zinstall_name - Driver Separate - - Zmulti_module - Driver - - Zmultiply_defined - Driver Separate - - Zmultiplydefinedunused - Driver Separate - - Zno_dead_strip_inits_and_terms - Driver - - Zseg_addr_table - Driver Separate - - Zsegaddr - Driver Separate Args(2) - - Zsegs_read_only_addr - Driver Separate - - Zsegs_read_write_addr - Driver Separate - - Zsingle_module - Driver - - Zumbrella - Driver Separate - - Zunexported_symbols_list - Driver Separate - - Zweak_reference_mismatches - Driver Separate - --- 396,398 ---- diff -Nrcpad gcc-10.3.0/gcc/config/i386/avx512dqintrin.h gcc-10.4.0/gcc/config/i386/avx512dqintrin.h *** gcc-10.3.0/gcc/config/i386/avx512dqintrin.h Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/config/i386/avx512dqintrin.h Tue Jun 28 08:54:27 2022 *************** _mm512_fpclass_ps_mask (__m512 __A, cons *** 2655,2661 **** #define _mm512_mask_fpclass_ps_mask(u, x, c) \ ((__mmask16) __builtin_ia32_fpclassps512_mask ((__v16sf) (__m512) (x),\ ! (int) (c),(__mmask8)(u))) #define _mm512_fpclass_pd_mask(X, C) \ ((__mmask8) __builtin_ia32_fpclasspd512_mask ((__v8df) (__m512d) (X), \ --- 2655,2661 ---- #define _mm512_mask_fpclass_ps_mask(u, x, c) \ ((__mmask16) __builtin_ia32_fpclassps512_mask ((__v16sf) (__m512) (x),\ ! (int) (c),(__mmask16)(u))) #define _mm512_fpclass_pd_mask(X, C) \ ((__mmask8) __builtin_ia32_fpclasspd512_mask ((__v8df) (__m512d) (X), \ *************** _mm512_fpclass_ps_mask (__m512 __A, cons *** 2663,2669 **** #define _mm512_fpclass_ps_mask(x, c) \ ((__mmask16) __builtin_ia32_fpclassps512_mask ((__v16sf) (__m512) (x),\ ! (int) (c),(__mmask8)-1)) #define _mm_reduce_sd(A, B, C) \ ((__m128d) __builtin_ia32_reducesd_mask ((__v2df)(__m128d)(A), \ --- 2663,2669 ---- #define _mm512_fpclass_ps_mask(x, c) \ ((__mmask16) __builtin_ia32_fpclassps512_mask ((__v16sf) (__m512) (x),\ ! (int) (c),(__mmask16)-1)) #define _mm_reduce_sd(A, B, C) \ ((__m128d) __builtin_ia32_reducesd_mask ((__v2df)(__m128d)(A), \ diff -Nrcpad gcc-10.3.0/gcc/config/i386/avx512fintrin.h gcc-10.4.0/gcc/config/i386/avx512fintrin.h *** gcc-10.3.0/gcc/config/i386/avx512fintrin.h Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/config/i386/avx512fintrin.h Tue Jun 28 08:54:27 2022 *************** _mm_maskz_scalef_round_ss (__mmask8 __U, *** 3237,3267 **** (__mmask8) __U, __R); } #else ! #define _mm512_scalef_round_pd(A, B, C) \ ! (__m512d)__builtin_ia32_scalefpd512_mask(A, B, (__v8df)_mm512_undefined_pd(), -1, C) ! #define _mm512_mask_scalef_round_pd(W, U, A, B, C) \ ! (__m512d)__builtin_ia32_scalefpd512_mask(A, B, W, U, C) ! #define _mm512_maskz_scalef_round_pd(U, A, B, C) \ ! (__m512d)__builtin_ia32_scalefpd512_mask(A, B, (__v8df)_mm512_setzero_pd(), U, C) ! #define _mm512_scalef_round_ps(A, B, C) \ ! (__m512)__builtin_ia32_scalefps512_mask(A, B, (__v16sf)_mm512_undefined_ps(), -1, C) ! #define _mm512_mask_scalef_round_ps(W, U, A, B, C) \ ! (__m512)__builtin_ia32_scalefps512_mask(A, B, W, U, C) ! #define _mm512_maskz_scalef_round_ps(U, A, B, C) \ ! (__m512)__builtin_ia32_scalefps512_mask(A, B, (__v16sf)_mm512_setzero_ps(), U, C) ! #define _mm_scalef_round_sd(A, B, C) \ ! (__m128d)__builtin_ia32_scalefsd_mask_round (A, B, \ ! (__v2df)_mm_setzero_pd (), -1, C) ! #define _mm_scalef_round_ss(A, B, C) \ ! (__m128)__builtin_ia32_scalefss_mask_round (A, B, \ ! (__v4sf)_mm_setzero_ps (), -1, C) #endif #ifdef __OPTIMIZE__ --- 3237,3303 ---- (__mmask8) __U, __R); } #else ! #define _mm512_scalef_round_pd(A, B, C) \ ! ((__m512d) \ ! __builtin_ia32_scalefpd512_mask((A), (B), \ ! (__v8df) _mm512_undefined_pd(), \ ! -1, (C))) ! #define _mm512_mask_scalef_round_pd(W, U, A, B, C) \ ! ((__m512d) __builtin_ia32_scalefpd512_mask((A), (B), (W), (U), (C))) ! #define _mm512_maskz_scalef_round_pd(U, A, B, C) \ ! ((__m512d) \ ! __builtin_ia32_scalefpd512_mask((A), (B), \ ! (__v8df) _mm512_setzero_pd(), \ ! (U), (C))) ! #define _mm512_scalef_round_ps(A, B, C) \ ! ((__m512) \ ! __builtin_ia32_scalefps512_mask((A), (B), \ ! (__v16sf) _mm512_undefined_ps(), \ ! -1, (C))) ! #define _mm512_mask_scalef_round_ps(W, U, A, B, C) \ ! ((__m512) __builtin_ia32_scalefps512_mask((A), (B), (W), (U), (C))) ! #define _mm512_maskz_scalef_round_ps(U, A, B, C) \ ! ((__m512) \ ! __builtin_ia32_scalefps512_mask((A), (B), \ ! (__v16sf) _mm512_setzero_ps(), \ ! (U), (C))) ! #define _mm_scalef_round_sd(A, B, C) \ ! ((__m128d) \ ! __builtin_ia32_scalefsd_mask_round ((A), (B), \ ! (__v2df) _mm_undefined_pd (), \ ! -1, (C))) ! #define _mm_scalef_round_ss(A, B, C) \ ! ((__m128) \ ! __builtin_ia32_scalefss_mask_round ((A), (B), \ ! (__v4sf) _mm_undefined_ps (), \ ! -1, (C))) ! ! #define _mm_mask_scalef_round_sd(W, U, A, B, C) \ ! ((__m128d) \ ! __builtin_ia32_scalefsd_mask_round ((A), (B), (W), (U), (C))) ! ! #define _mm_mask_scalef_round_ss(W, U, A, B, C) \ ! ((__m128) \ ! __builtin_ia32_scalefss_mask_round ((A), (B), (W), (U), (C))) ! ! #define _mm_maskz_scalef_round_sd(U, A, B, C) \ ! ((__m128d) \ ! __builtin_ia32_scalefsd_mask_round ((A), (B), \ ! (__v2df) _mm_setzero_pd (), \ ! (U), (C))) ! ! #define _mm_maskz_scalef_round_ss(U, A, B, C) \ ! ((__m128) \ ! __builtin_ia32_scalefss_mask_round ((A), (B), \ ! (__v4sf) _mm_setzero_ps (), \ ! (U), (C))) #endif #ifdef __OPTIMIZE__ diff -Nrcpad gcc-10.3.0/gcc/config/i386/darwin.h gcc-10.4.0/gcc/config/i386/darwin.h *** gcc-10.3.0/gcc/config/i386/darwin.h Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/config/i386/darwin.h Tue Jun 28 08:54:27 2022 *************** along with GCC; see the file COPYING3. *** 39,72 **** #endif #endif - /* WORKAROUND pr80556: - For x86_64 Darwin10 and later, the unwinder is in libunwind (redirected - from libSystem). This doesn't use the keymgr (see keymgr.c) and therefore - the calls that libgcc makes to obtain the KEYMGR_GCC3_DW2_OBJ_LIST are not - updated to include new images, and might not even be valid for a single - image. - Therefore, for 64b exes at least, we must use the libunwind implementation, - even when static-libgcc is specified. We put libSystem first so that - unwinder symbols are satisfied from there. - We default to 64b for single-arch builds, so apply this unconditionally. */ - #undef REAL_LIBGCC_SPEC - #define REAL_LIBGCC_SPEC \ - "%{static-libgcc|static: \ - %:version-compare(>= 10.6 mmacosx-version-min= -lSystem) \ - -lgcc_eh -lgcc; \ - shared-libgcc|fexceptions|fgnu-runtime: \ - %:version-compare(!> 10.5 mmacosx-version-min= -lgcc_s.10.4) \ - %:version-compare(>< 10.5 10.6 mmacosx-version-min= -lgcc_s.10.5) \ - %:version-compare(!> 10.5 mmacosx-version-min= -lgcc_ext.10.4) \ - %:version-compare(>= 10.5 mmacosx-version-min= -lgcc_ext.10.5) \ - -lgcc ; \ - :%: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) \ - %:version-compare(!> 10.5 mmacosx-version-min= -lgcc_ext.10.4) \ - %:version-compare(>= 10.5 mmacosx-version-min= -lgcc_ext.10.5) \ - -lgcc }" - - /* Size of the Obj-C jump buffer. */ #define OBJC_JBLEN ((TARGET_64BIT) ? ((9 * 2) + 3 + 16) : (18)) #undef TARGET_FPMATH_DEFAULT --- 39,44 ---- *************** along with GCC; see the file COPYING3. *** 135,144 **** %{mfentry*:%eDarwin does not support -mfentry or associated options}" \ DARWIN_CC1_SPEC #undef ASM_SPEC ! #define ASM_SPEC "-arch %(darwin_arch) \ ! " ASM_OPTIONS " -force_cpusubtype_ALL \ ! %{static}" ASM_MMACOSX_VERSION_MIN_SPEC #undef ENDFILE_SPEC #define ENDFILE_SPEC \ --- 107,125 ---- %{mfentry*:%eDarwin does not support -mfentry or associated options}" \ DARWIN_CC1_SPEC + /* This is a workaround for a tool bug: see PR100340. */ + + #ifdef HAVE_AS_MLLVM_X86_PAD_FOR_ALIGN + #define EXTRA_ASM_OPTS " -mllvm -x86-pad-for-align=false " + #else + #define EXTRA_ASM_OPTS "" + #endif + #undef ASM_SPEC ! #define ASM_SPEC \ ! "%{static} -arch %(darwin_arch) " \ ! ASM_OPTIONS ASM_MMACOSX_VERSION_MIN_SPEC EXTRA_ASM_OPTS \ ! "%{!force_cpusubtype_ALL:-force_cpusubtype_ALL} " #undef ENDFILE_SPEC #define ENDFILE_SPEC \ diff -Nrcpad gcc-10.3.0/gcc/config/i386/darwin32-biarch.h gcc-10.4.0/gcc/config/i386/darwin32-biarch.h *** gcc-10.3.0/gcc/config/i386/darwin32-biarch.h Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/config/i386/darwin32-biarch.h Tue Jun 28 08:54:27 2022 *************** along with GCC; see the file COPYING3. *** 21,52 **** #undef DARWIN_ARCH_SPEC #define DARWIN_ARCH_SPEC "%{m64:x86_64;:i386}" - /* WORKAROUND pr80556: - For x86_64 Darwin10 and later, the unwinder is in libunwind (redirected - from libSystem). This doesn't use the keymgr (see keymgr.c) and therefore - the calls that libgcc makes to obtain the KEYMGR_GCC3_DW2_OBJ_LIST are not - updated to include new images, and might not even be valid for a single - image. - Therefore, for 64b exes at least, we must use the libunwind implementation, - even when static-libgcc is specified. We put libSystem first so that - unwinder symbols are satisfied from there. */ - #undef REAL_LIBGCC_SPEC - #define REAL_LIBGCC_SPEC \ - "%{static-libgcc|static: \ - %{m64:%:version-compare(>= 10.6 mmacosx-version-min= -lSystem)} \ - -lgcc_eh -lgcc; \ - shared-libgcc|fexceptions|fgnu-runtime: \ - %:version-compare(!> 10.5 mmacosx-version-min= -lgcc_s.10.4) \ - %:version-compare(>< 10.5 10.6 mmacosx-version-min= -lgcc_s.10.5) \ - %:version-compare(!> 10.5 mmacosx-version-min= -lgcc_ext.10.4) \ - %:version-compare(>= 10.5 mmacosx-version-min= -lgcc_ext.10.5) \ - -lgcc ; \ - :%: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) \ - %:version-compare(!> 10.5 mmacosx-version-min= -lgcc_ext.10.4) \ - %:version-compare(>= 10.5 mmacosx-version-min= -lgcc_ext.10.5) \ - -lgcc }" - #undef DARWIN_SUBARCH_SPEC #define DARWIN_SUBARCH_SPEC DARWIN_ARCH_SPEC --- 21,26 ---- diff -Nrcpad gcc-10.3.0/gcc/config/i386/darwin64-biarch.h gcc-10.4.0/gcc/config/i386/darwin64-biarch.h *** gcc-10.3.0/gcc/config/i386/darwin64-biarch.h Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/config/i386/darwin64-biarch.h Tue Jun 28 08:54:27 2022 *************** along with GCC; see the file COPYING3. *** 22,53 **** #undef DARWIN_ARCH_SPEC #define DARWIN_ARCH_SPEC "%{m32:i386;:x86_64}" - /* WORKAROUND pr80556: - For x86_64 Darwin10 and later, the unwinder is in libunwind (redirected - from libSystem). This doesn't use the keymgr (see keymgr.c) and therefore - the calls that libgcc makes to obtain the KEYMGR_GCC3_DW2_OBJ_LIST are not - updated to include new images, and might not even be valid for a single - image. - Therefore, for 64b exes at least, we must use the libunwind implementation, - even when static-libgcc is specified. We put libSystem first so that - unwinder symbols are satisfied from there. */ - #undef REAL_LIBGCC_SPEC - #define REAL_LIBGCC_SPEC \ - "%{static-libgcc|static: \ - %{!m32:%:version-compare(>= 10.6 mmacosx-version-min= -lSystem)} \ - -lgcc_eh -lgcc; \ - shared-libgcc|fexceptions|fgnu-runtime: \ - %:version-compare(!> 10.5 mmacosx-version-min= -lgcc_s.10.4) \ - %:version-compare(>< 10.5 10.6 mmacosx-version-min= -lgcc_s.10.5) \ - %:version-compare(!> 10.5 mmacosx-version-min= -lgcc_ext.10.4) \ - %:version-compare(>= 10.5 mmacosx-version-min= -lgcc_ext.10.5) \ - -lgcc ; \ - :%: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) \ - %:version-compare(!> 10.5 mmacosx-version-min= -lgcc_ext.10.4) \ - %:version-compare(>= 10.5 mmacosx-version-min= -lgcc_ext.10.5) \ - -lgcc }" - #undef DARWIN_SUBARCH_SPEC #define DARWIN_SUBARCH_SPEC DARWIN_ARCH_SPEC --- 22,27 ---- diff -Nrcpad gcc-10.3.0/gcc/config/i386/i386-builtins.c gcc-10.4.0/gcc/config/i386/i386-builtins.c *** gcc-10.3.0/gcc/config/i386/i386-builtins.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/config/i386/i386-builtins.c Tue Jun 28 08:54:27 2022 *************** fold_builtin_cpu (tree fndecl, tree *arg *** 2323,2329 **** /* Return __cpu_model.__cpu_features[0] & field_val */ final = build2 (BIT_AND_EXPR, unsigned_type_node, array_elt, build_int_cstu (unsigned_type_node, field_val)); ! return build1 (CONVERT_EXPR, integer_type_node, final); } gcc_unreachable (); } --- 2323,2333 ---- /* Return __cpu_model.__cpu_features[0] & field_val */ final = build2 (BIT_AND_EXPR, unsigned_type_node, array_elt, build_int_cstu (unsigned_type_node, field_val)); ! if (isa_names_table[i].feature == (INT_TYPE_SIZE - 1)) ! return build2 (NE_EXPR, integer_type_node, final, ! build_int_cst (unsigned_type_node, 0)); ! else ! return build1 (CONVERT_EXPR, integer_type_node, final); } gcc_unreachable (); } diff -Nrcpad gcc-10.3.0/gcc/config/i386/i386-expand.c gcc-10.4.0/gcc/config/i386/i386-expand.c *** gcc-10.3.0/gcc/config/i386/i386-expand.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/config/i386/i386-expand.c Tue Jun 28 08:54:27 2022 *************** ix86_split_idivmod (machine_mode mode, r *** 1140,1145 **** --- 1140,1148 ---- rtx scratch, tmp0, tmp1, tmp2; rtx (*gen_divmod4_1) (rtx, rtx, rtx, rtx); + operands[2] = force_reg (mode, operands[2]); + operands[3] = force_reg (mode, operands[3]); + switch (mode) { case E_SImode: *************** ix86_expand_call (rtx retval, rtx fnaddr *** 7940,7945 **** --- 7943,7949 ---- pop = NULL; gcc_assert (!TARGET_64BIT || !pop); + rtx addr = XEXP (fnaddr, 0); if (TARGET_MACHO && !TARGET_64BIT) { #if TARGET_MACHO *************** ix86_expand_call (rtx retval, rtx fnaddr *** 7952,7958 **** /* Static functions and indirect calls don't need the pic register. Also, check if PLT was explicitly avoided via no-plt or "noplt" attribute, making it an indirect call. */ - rtx addr = XEXP (fnaddr, 0); if (flag_pic && GET_CODE (addr) == SYMBOL_REF && !SYMBOL_REF_LOCAL_P (addr)) --- 7956,7961 ---- *************** ix86_expand_call (rtx retval, rtx fnaddr *** 8115,8120 **** --- 8118,8137 ---- } } + if (TARGET_MACHO && TARGET_64BIT && !sibcall + && ((GET_CODE (addr) == SYMBOL_REF && !SYMBOL_REF_LOCAL_P (addr)) + || !fndecl || TREE_PUBLIC (fndecl))) + { + /* We allow public functions defined in a TU to bind locally for PIC + code (the default) on 64bit Mach-O. + If such functions are not inlined, we cannot tell at compile-time if + they will be called via the lazy symbol resolver (this can depend on + options given at link-time). Therefore, we must assume that the lazy + resolver could be used which clobbers R11 and R10. */ + clobber_reg (&use, gen_rtx_REG (DImode, R11_REG)); + clobber_reg (&use, gen_rtx_REG (DImode, R10_REG)); + } + if (vec_len > 1) call = gen_rtx_PARALLEL (VOIDmode, gen_rtvec_v (vec_len, vec)); rtx_insn *call_insn = emit_call_insn (call); *************** rdseed_step: *** 11929,11934 **** --- 11946,11954 ---- return target; case IX86_BUILTIN_READ_FLAGS: + if (ignore) + return const0_rtx; + emit_insn (gen_push (gen_rtx_REG (word_mode, FLAGS_REG))); if (optimize *************** quarter: *** 14059,14067 **** else { word = expand_simple_binop (word_mode, ASHIFT, word, shift, ! word, 1, OPTAB_LIB_WIDEN); word = expand_simple_binop (word_mode, IOR, word, elt, ! word, 1, OPTAB_LIB_WIDEN); } } --- 14079,14087 ---- else { word = expand_simple_binop (word_mode, ASHIFT, word, shift, ! NULL_RTX, 1, OPTAB_LIB_WIDEN); word = expand_simple_binop (word_mode, IOR, word, elt, ! NULL_RTX, 1, OPTAB_LIB_WIDEN); } } *************** ix86_expand_vector_init (bool mmx_ok, rt *** 14114,14124 **** if (GET_MODE_NUNITS (GET_MODE (x)) * 2 == n_elts) { rtx ops[2] = { XVECEXP (vals, 0, 0), XVECEXP (vals, 0, 1) }; ! if (inner_mode == QImode || inner_mode == HImode) { unsigned int n_bits = n_elts * GET_MODE_SIZE (inner_mode); ! mode = mode_for_vector (SImode, n_bits / 4).require (); ! inner_mode = mode_for_vector (SImode, n_bits / 8).require (); ops[0] = gen_lowpart (inner_mode, ops[0]); ops[1] = gen_lowpart (inner_mode, ops[1]); subtarget = gen_reg_rtx (mode); --- 14134,14148 ---- if (GET_MODE_NUNITS (GET_MODE (x)) * 2 == n_elts) { rtx ops[2] = { XVECEXP (vals, 0, 0), XVECEXP (vals, 0, 1) }; ! if (inner_mode == QImode ! || inner_mode == HImode ! || inner_mode == TImode) { unsigned int n_bits = n_elts * GET_MODE_SIZE (inner_mode); ! scalar_mode elt_mode = inner_mode == TImode ? DImode : SImode; ! n_bits /= GET_MODE_SIZE (elt_mode); ! mode = mode_for_vector (elt_mode, n_bits).require (); ! inner_mode = mode_for_vector (elt_mode, n_bits / 2).require (); ops[0] = gen_lowpart (inner_mode, ops[0]); ops[1] = gen_lowpart (inner_mode, ops[1]); subtarget = gen_reg_rtx (mode); *************** void ix86_emit_i387_log1p (rtx op0, rtx *** 15310,15315 **** --- 15334,15344 ---- rtx cst, cstln2, cst1; rtx_insn *insn; + /* The emit_jump call emits pending stack adjust, make sure it is emitted + before the conditional jump, otherwise the stack adjustment will be + only conditional. */ + do_pending_stack_adjust (); + cst = const_double_from_real_value (REAL_VALUE_ATOF ("0.29289321881345247561810596348408353", XFmode), XFmode); cstln2 = force_reg (XFmode, standard_80387_constant_rtx (4)); /* fldln2 */ diff -Nrcpad gcc-10.3.0/gcc/config/i386/i386.c gcc-10.4.0/gcc/config/i386/i386.c *** gcc-10.3.0/gcc/config/i386/i386.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/config/i386/i386.c Tue Jun 28 08:54:27 2022 *************** ix86_function_arg (cumulative_args_t cum *** 3223,3229 **** if (POINTER_TYPE_P (arg.type)) { /* This is the pointer argument. */ ! gcc_assert (TYPE_MODE (arg.type) == Pmode); /* It is at -WORD(AP) in the current frame in interrupt and exception handlers. */ reg = plus_constant (Pmode, arg_pointer_rtx, -UNITS_PER_WORD); --- 3223,3229 ---- if (POINTER_TYPE_P (arg.type)) { /* This is the pointer argument. */ ! gcc_assert (TYPE_MODE (arg.type) == ptr_mode); /* It is at -WORD(AP) in the current frame in interrupt and exception handlers. */ reg = plus_constant (Pmode, arg_pointer_rtx, -UNITS_PER_WORD); *************** standard_80387_constant_p (rtx x) *** 4649,4655 **** /* For XFmode constants, try to find a special 80387 instruction when optimizing for size or on those CPUs that benefit from them. */ if (mode == XFmode ! && (optimize_function_for_size_p (cfun) || TARGET_EXT_80387_CONSTANTS)) { int i; --- 4649,4656 ---- /* For XFmode constants, try to find a special 80387 instruction when optimizing for size or on those CPUs that benefit from them. */ if (mode == XFmode ! && (optimize_function_for_size_p (cfun) || TARGET_EXT_80387_CONSTANTS) ! && !flag_rounding_math) { int i; *************** ix86_compute_frame_layout (void) *** 6356,6367 **** area, see the SEH code in config/i386/winnt.c for the rationale. */ frame->hard_frame_pointer_offset = frame->sse_reg_save_offset; ! /* If we can leave the frame pointer where it is, do so. Also, return the establisher frame for __builtin_frame_address (0) or else if the ! frame overflows the SEH maximum frame size. */ const HOST_WIDE_INT diff = frame->stack_pointer_offset - frame->hard_frame_pointer_offset; ! if (diff <= 255) { /* The resulting diff will be a multiple of 16 lower than 255, i.e. at most 240 as required by the unwind data structure. */ --- 6357,6385 ---- area, see the SEH code in config/i386/winnt.c for the rationale. */ frame->hard_frame_pointer_offset = frame->sse_reg_save_offset; ! /* If we can leave the frame pointer where it is, do so; however return the establisher frame for __builtin_frame_address (0) or else if the ! frame overflows the SEH maximum frame size. ! ! Note that the value returned by __builtin_frame_address (0) is quite ! constrained, because setjmp is piggybacked on the SEH machinery with ! recent versions of MinGW: ! ! # elif defined(__SEH__) ! # if defined(__aarch64__) || defined(_ARM64_) ! # define setjmp(BUF) _setjmp((BUF), __builtin_sponentry()) ! # elif (__MINGW_GCC_VERSION < 40702) ! # define setjmp(BUF) _setjmp((BUF), mingw_getsp()) ! # else ! # define setjmp(BUF) _setjmp((BUF), __builtin_frame_address (0)) ! # endif ! ! and the second argument passed to _setjmp, if not null, is forwarded ! to the TargetFrame parameter of RtlUnwindEx by longjmp (after it has ! built an ExceptionRecord on the fly describing the setjmp buffer). */ const HOST_WIDE_INT diff = frame->stack_pointer_offset - frame->hard_frame_pointer_offset; ! if (diff <= 255 && !crtl->accesses_prior_frames) { /* The resulting diff will be a multiple of 16 lower than 255, i.e. at most 240 as required by the unwind data structure. */ *************** legitimate_pic_address_disp_p (rtx disp) *** 10318,10341 **** if (is_imported_p (op0)) return true; ! if (SYMBOL_REF_FAR_ADDR_P (op0) ! || !SYMBOL_REF_LOCAL_P (op0)) break; ! /* Function-symbols need to be resolved only for ! large-model. ! For the small-model we don't need to resolve anything ! here. */ if ((ix86_cmodel != CM_LARGE_PIC ! && SYMBOL_REF_FUNCTION_P (op0)) || ix86_cmodel == CM_SMALL_PIC) return true; - /* Non-external symbols don't need to be resolved for - large, and medium-model. */ - if ((ix86_cmodel == CM_LARGE_PIC - || ix86_cmodel == CM_MEDIUM_PIC) - && !SYMBOL_REF_EXTERNAL_P (op0)) - return true; } else if (!SYMBOL_REF_FAR_ADDR_P (op0) && (SYMBOL_REF_LOCAL_P (op0) --- 10336,10354 ---- if (is_imported_p (op0)) return true; ! if (SYMBOL_REF_FAR_ADDR_P (op0) || !SYMBOL_REF_LOCAL_P (op0)) break; ! /* Non-external-weak function symbols need to be resolved only ! for the large model. Non-external symbols don't need to be ! resolved for large and medium models. For the small model, ! we don't need to resolve anything here. */ if ((ix86_cmodel != CM_LARGE_PIC ! && SYMBOL_REF_FUNCTION_P (op0) ! && !(SYMBOL_REF_EXTERNAL_P (op0) && SYMBOL_REF_WEAK (op0))) ! || !SYMBOL_REF_EXTERNAL_P (op0) || ix86_cmodel == CM_SMALL_PIC) return true; } else if (!SYMBOL_REF_FAR_ADDR_P (op0) && (SYMBOL_REF_LOCAL_P (op0) *************** ix86_print_operand_address_as (FILE *fil *** 13465,13471 **** static void ix86_print_operand_address (FILE *file, machine_mode /*mode*/, rtx addr) { ! ix86_print_operand_address_as (file, addr, ADDR_SPACE_GENERIC, false); } /* Implementation of TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA. */ --- 13478,13487 ---- static void ix86_print_operand_address (FILE *file, machine_mode /*mode*/, rtx addr) { ! if (this_is_asm_operands && ! address_operand (addr, VOIDmode)) ! output_operand_lossage ("invalid constraints for operand"); ! else ! ix86_print_operand_address_as (file, addr, ADDR_SPACE_GENERIC, false); } /* Implementation of TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA. */ *************** ix86_output_call_insn (rtx_insn *insn, r *** 15836,15843 **** break; /* If we get to the epilogue note, prevent a catch region from ! being adjacent to the standard epilogue sequence. If non- ! call-exceptions, we'll have done this during epilogue emission. */ if (NOTE_P (i) && NOTE_KIND (i) == NOTE_INSN_EPILOGUE_BEG && !flag_non_call_exceptions && !can_throw_internal (insn)) --- 15852,15861 ---- break; /* If we get to the epilogue note, prevent a catch region from ! being adjacent to the standard epilogue sequence. Note that, ! if non-call exceptions are enabled, we already did it during ! epilogue expansion, or else, if the insn can throw internally, ! we already did it during the reorg pass. */ if (NOTE_P (i) && NOTE_KIND (i) == NOTE_INSN_EPILOGUE_BEG && !flag_non_call_exceptions && !can_throw_internal (insn)) *************** ix86_gimple_fold_builtin (gimple_stmt_it *** 17831,17836 **** --- 17849,17856 ---- do_shift: gcc_assert (n_args >= 2); + if (!gimple_call_lhs (stmt)) + break; arg0 = gimple_call_arg (stmt, 0); arg1 = gimple_call_arg (stmt, 1); if (n_args > 2) *************** ix86_gimple_fold_builtin (gimple_stmt_it *** 17894,17900 **** case IX86_BUILTIN_SHUFPD: arg2 = gimple_call_arg (stmt, 2); ! if (TREE_CODE (arg2) == INTEGER_CST) { location_t loc = gimple_location (stmt); unsigned HOST_WIDE_INT imask = TREE_INT_CST_LOW (arg2); --- 17914,17920 ---- case IX86_BUILTIN_SHUFPD: arg2 = gimple_call_arg (stmt, 2); ! if (TREE_CODE (arg2) == INTEGER_CST && gimple_call_lhs (stmt)) { location_t loc = gimple_location (stmt); unsigned HOST_WIDE_INT imask = TREE_INT_CST_LOW (arg2); *************** ix86_stack_protect_fail (void) *** 21333,21342 **** After all, the relocation needed is the same as for the call insn. Whether or not a particular assembler allows us to enter such, I guess we'll have to see. */ int asm_preferred_eh_data_format (int code, int global) { ! if (flag_pic) { int type = DW_EH_PE_sdata8; if (!TARGET_64BIT --- 21353,21364 ---- After all, the relocation needed is the same as for the call insn. Whether or not a particular assembler allows us to enter such, I guess we'll have to see. */ + int asm_preferred_eh_data_format (int code, int global) { ! /* PE-COFF is effectively always -fPIC because of the .reloc section. */ ! if (flag_pic || TARGET_PECOFF) { int type = DW_EH_PE_sdata8; if (!TARGET_64BIT *************** asm_preferred_eh_data_format (int code, *** 21345,21353 **** --- 21367,21377 ---- type = DW_EH_PE_sdata4; return (global ? DW_EH_PE_indirect : 0) | DW_EH_PE_pcrel | type; } + if (ix86_cmodel == CM_SMALL || (ix86_cmodel == CM_MEDIUM && code)) return DW_EH_PE_udata4; + return DW_EH_PE_absptr; } diff -Nrcpad gcc-10.3.0/gcc/config/i386/i386.md gcc-10.4.0/gcc/config/i386/i386.md *** gcc-10.3.0/gcc/config/i386/i386.md Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/config/i386/i386.md Tue Jun 28 08:54:27 2022 *************** *** 4411,4418 **** movddup is available. */ if (REG_P (operands[1])) { ! if (!TARGET_SSE3 ! && REGNO (operands[0]) != REGNO (operands[1])) { rtx tmp = lowpart_subreg (DFmode, operands[0], SFmode); emit_move_insn (tmp, operands[1]); --- 4411,4418 ---- movddup is available. */ if (REG_P (operands[1])) { ! if ((!TARGET_SSE3 && REGNO (operands[0]) != REGNO (operands[1])) ! || (EXT_REX_SSE_REG_P (operands[1]) && !TARGET_AVX512VL)) { rtx tmp = lowpart_subreg (DFmode, operands[0], SFmode); emit_move_insn (tmp, operands[1]); *************** *** 10194,10203 **** (match_operand:MODEF 1 "register_operand") (match_operand:MODEF 2 "register_operand")] "SSE_FLOAT_MODE_P (mode) && TARGET_SSE_MATH" ! "ix86_expand_xorsign (operands); DONE;") (define_insn_and_split "@xorsign3_1" ! [(set (match_operand:MODEF 0 "register_operand" "=Yv") (unspec:MODEF [(match_operand:MODEF 1 "register_operand" "Yv") (match_operand:MODEF 2 "register_operand" "0") --- 10194,10209 ---- (match_operand:MODEF 1 "register_operand") (match_operand:MODEF 2 "register_operand")] "SSE_FLOAT_MODE_P (mode) && TARGET_SSE_MATH" ! { ! if (rtx_equal_p (operands[1], operands[2])) ! emit_insn (gen_abs2 (operands[0], operands[1])); ! else ! ix86_expand_xorsign (operands); ! DONE; ! }) (define_insn_and_split "@xorsign3_1" ! [(set (match_operand:MODEF 0 "register_operand" "=&Yv") (unspec:MODEF [(match_operand:MODEF 1 "register_operand" "Yv") (match_operand:MODEF 2 "register_operand" "0") *************** *** 13812,13821 **** (set_attr "mode" "")]) (define_insn "bsr_rex64" ! [(set (match_operand:DI 0 "register_operand" "=r") (minus:DI (const_int 63) ! (clz:DI (match_operand:DI 1 "nonimmediate_operand" "rm")))) ! (clobber (reg:CC FLAGS_REG))] "TARGET_64BIT" "bsr{q}\t{%1, %0|%0, %1}" [(set_attr "type" "alu1") --- 13818,13829 ---- (set_attr "mode" "")]) (define_insn "bsr_rex64" ! [(set (reg:CCZ FLAGS_REG) ! (compare:CCZ (match_operand:DI 1 "nonimmediate_operand" "rm") ! (const_int 0))) ! (set (match_operand:DI 0 "register_operand" "=r") (minus:DI (const_int 63) ! (clz:DI (match_dup 1))))] "TARGET_64BIT" "bsr{q}\t{%1, %0|%0, %1}" [(set_attr "type" "alu1") *************** *** 13824,13833 **** (set_attr "mode" "DI")]) (define_insn "bsr" ! [(set (match_operand:SI 0 "register_operand" "=r") (minus:SI (const_int 31) ! (clz:SI (match_operand:SI 1 "nonimmediate_operand" "rm")))) ! (clobber (reg:CC FLAGS_REG))] "" "bsr{l}\t{%1, %0|%0, %1}" [(set_attr "type" "alu1") --- 13832,13843 ---- (set_attr "mode" "DI")]) (define_insn "bsr" ! [(set (reg:CCZ FLAGS_REG) ! (compare:CCZ (match_operand:SI 1 "nonimmediate_operand" "rm") ! (const_int 0))) ! (set (match_operand:SI 0 "register_operand" "=r") (minus:SI (const_int 31) ! (clz:SI (match_dup 1))))] "" "bsr{l}\t{%1, %0|%0, %1}" [(set_attr "type" "alu1") *************** *** 13835,13859 **** (set_attr "znver1_decode" "vector") (set_attr "mode" "SI")]) - (define_insn "*bsrhi" - [(set (match_operand:HI 0 "register_operand" "=r") - (minus:HI (const_int 15) - (clz:HI (match_operand:HI 1 "nonimmediate_operand" "rm")))) - (clobber (reg:CC FLAGS_REG))] - "" - "bsr{w}\t{%1, %0|%0, %1}" - [(set_attr "type" "alu1") - (set_attr "prefix_0f" "1") - (set_attr "znver1_decode" "vector") - (set_attr "mode" "HI")]) - (define_expand "clz2" [(parallel ! [(set (match_operand:SWI48 0 "register_operand") (minus:SWI48 (match_dup 2) ! (clz:SWI48 (match_operand:SWI48 1 "nonimmediate_operand")))) ! (clobber (reg:CC FLAGS_REG))]) (parallel [(set (match_dup 0) (xor:SWI48 (match_dup 0) (match_dup 2))) (clobber (reg:CC FLAGS_REG))])] --- 13845,13859 ---- (set_attr "znver1_decode" "vector") (set_attr "mode" "SI")]) (define_expand "clz2" [(parallel ! [(set (reg:CCZ FLAGS_REG) ! (compare:CCZ (match_operand:SWI48 1 "nonimmediate_operand" "rm") ! (const_int 0))) ! (set (match_operand:SWI48 0 "register_operand") (minus:SWI48 (match_dup 2) ! (clz:SWI48 (match_dup 1))))]) (parallel [(set (match_dup 0) (xor:SWI48 (match_dup 0) (match_dup 2))) (clobber (reg:CC FLAGS_REG))])] diff -Nrcpad gcc-10.3.0/gcc/config/i386/sse.md gcc-10.4.0/gcc/config/i386/sse.md *** gcc-10.3.0/gcc/config/i386/sse.md Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/config/i386/sse.md Tue Jun 28 08:54:27 2022 *************** *** 6752,6758 **** (define_expand "vec_unpacks_float_hi_v8si" [(set (match_dup 2) (vec_select:V4SI ! (match_operand:V8SI 1 "vector_operand") (parallel [(const_int 4) (const_int 5) (const_int 6) (const_int 7)]))) (set (match_operand:V4DF 0 "register_operand") --- 6752,6758 ---- (define_expand "vec_unpacks_float_hi_v8si" [(set (match_dup 2) (vec_select:V4SI ! (match_operand:V8SI 1 "register_operand") (parallel [(const_int 4) (const_int 5) (const_int 6) (const_int 7)]))) (set (match_operand:V4DF 0 "register_operand") *************** *** 16140,16151 **** (set_attr "mode" "TI")]) (define_insn_and_split "ssse3_phwv4hi3" ! [(set (match_operand:V4HI 0 "register_operand" "=y,x,Yv") (vec_concat:V4HI (vec_concat:V2HI (ssse3_plusminus:HI (vec_select:HI ! (match_operand:V4HI 1 "register_operand" "0,0,Yv") (parallel [(const_int 0)])) (vec_select:HI (match_dup 1) (parallel [(const_int 1)]))) (ssse3_plusminus:HI --- 16140,16151 ---- (set_attr "mode" "TI")]) (define_insn_and_split "ssse3_phwv4hi3" ! [(set (match_operand:V4HI 0 "register_operand" "=y,x,x") (vec_concat:V4HI (vec_concat:V2HI (ssse3_plusminus:HI (vec_select:HI ! (match_operand:V4HI 1 "register_operand" "0,0,x") (parallel [(const_int 0)])) (vec_select:HI (match_dup 1) (parallel [(const_int 1)]))) (ssse3_plusminus:HI *************** *** 16154,16160 **** (vec_concat:V2HI (ssse3_plusminus:HI (vec_select:HI ! (match_operand:V4HI 2 "register_mmxmem_operand" "ym,x,Yv") (parallel [(const_int 0)])) (vec_select:HI (match_dup 2) (parallel [(const_int 1)]))) (ssse3_plusminus:HI --- 16154,16160 ---- (vec_concat:V2HI (ssse3_plusminus:HI (vec_select:HI ! (match_operand:V4HI 2 "register_mmxmem_operand" "ym,x,x") (parallel [(const_int 0)])) (vec_select:HI (match_dup 2) (parallel [(const_int 1)]))) (ssse3_plusminus:HI *************** *** 16265,16280 **** (set_attr "mode" "TI")]) (define_insn_and_split "ssse3_phdv2si3" ! [(set (match_operand:V2SI 0 "register_operand" "=y,x,Yv") (vec_concat:V2SI (plusminus:SI (vec_select:SI ! (match_operand:V2SI 1 "register_operand" "0,0,Yv") (parallel [(const_int 0)])) (vec_select:SI (match_dup 1) (parallel [(const_int 1)]))) (plusminus:SI (vec_select:SI ! (match_operand:V2SI 2 "register_mmxmem_operand" "ym,x,Yv") (parallel [(const_int 0)])) (vec_select:SI (match_dup 2) (parallel [(const_int 1)])))))] "(TARGET_MMX || TARGET_MMX_WITH_SSE) && TARGET_SSSE3" --- 16265,16280 ---- (set_attr "mode" "TI")]) (define_insn_and_split "ssse3_phdv2si3" ! [(set (match_operand:V2SI 0 "register_operand" "=y,x,x") (vec_concat:V2SI (plusminus:SI (vec_select:SI ! (match_operand:V2SI 1 "register_operand" "0,0,x") (parallel [(const_int 0)])) (vec_select:SI (match_dup 1) (parallel [(const_int 1)]))) (plusminus:SI (vec_select:SI ! (match_operand:V2SI 2 "register_mmxmem_operand" "ym,x,x") (parallel [(const_int 0)])) (vec_select:SI (match_dup 2) (parallel [(const_int 1)])))))] "(TARGET_MMX || TARGET_MMX_WITH_SSE) && TARGET_SSSE3" *************** *** 16727,16736 **** (set_attr "mode" "")]) (define_insn "ssse3_psign3" ! [(set (match_operand:MMXMODEI 0 "register_operand" "=y,x,Yv") (unspec:MMXMODEI ! [(match_operand:MMXMODEI 1 "register_operand" "0,0,Yv") ! (match_operand:MMXMODEI 2 "register_mmxmem_operand" "ym,x,Yv")] UNSPEC_PSIGN))] "(TARGET_MMX || TARGET_MMX_WITH_SSE) && TARGET_SSSE3" "@ --- 16727,16736 ---- (set_attr "mode" "")]) (define_insn "ssse3_psign3" ! [(set (match_operand:MMXMODEI 0 "register_operand" "=y,x,x") (unspec:MMXMODEI ! [(match_operand:MMXMODEI 1 "register_operand" "0,0,x") ! (match_operand:MMXMODEI 2 "register_mmxmem_operand" "ym,x,x")] UNSPEC_PSIGN))] "(TARGET_MMX || TARGET_MMX_WITH_SSE) && TARGET_SSSE3" "@ *************** *** 16927,16933 **** (set (attr "prefix_rex") (symbol_ref "x86_extended_reg_mentioned_p (insn)")) (set_attr "mode" "DI,TI")]) ! (define_insn "abs2" [(set (match_operand:MMXMODEI 0 "register_operand") (abs:MMXMODEI (match_operand:MMXMODEI 1 "register_operand")))] --- 16927,16933 ---- (set (attr "prefix_rex") (symbol_ref "x86_extended_reg_mentioned_p (insn)")) (set_attr "mode" "DI,TI")]) ! (define_expand "abs2" [(set (match_operand:MMXMODEI 0 "register_operand") (abs:MMXMODEI (match_operand:MMXMODEI 1 "register_operand")))] *************** *** 19418,19425 **** negate = true; } par = gen_rtx_PARALLEL (V16QImode, rtvec_alloc (16)); for (i = 0; i < 16; i++) ! XVECEXP (par, 0, i) = operands[2]; tmp = gen_reg_rtx (V16QImode); emit_insn (gen_vec_initv16qiqi (tmp, par)); --- 19418,19426 ---- negate = true; } par = gen_rtx_PARALLEL (V16QImode, rtvec_alloc (16)); + tmp = lowpart_subreg (QImode, operands[2], SImode); for (i = 0; i < 16; i++) ! XVECEXP (par, 0, i) = tmp; tmp = gen_reg_rtx (V16QImode); emit_insn (gen_vec_initv16qiqi (tmp, par)); *************** *** 21728,21735 **** "TARGET_AVX512F" { operands[5] ! = gen_rtx_UNSPEC (Pmode, gen_rtvec (3, operands[0], operands[2], ! operands[4]), UNSPEC_VSIBADDR); }) (define_insn "*avx512f_scattersi" --- 21729,21737 ---- "TARGET_AVX512F" { operands[5] ! = gen_rtx_UNSPEC (Pmode, gen_rtvec (4, operands[0], operands[2], ! operands[4], operands[1]), ! UNSPEC_VSIBADDR); }) (define_insn "*avx512f_scattersi" *************** *** 21737,21746 **** [(unspec:P [(match_operand:P 0 "vsib_address_operand" "Tv") (match_operand: 2 "register_operand" "v") ! (match_operand:SI 4 "const1248_operand" "n")] UNSPEC_VSIBADDR)]) (unspec:VI48F ! [(match_operand: 6 "register_operand" "1") (match_operand:VI48F 3 "register_operand" "v")] UNSPEC_SCATTER)) (clobber (match_scratch: 1 "=&Yk"))] --- 21739,21749 ---- [(unspec:P [(match_operand:P 0 "vsib_address_operand" "Tv") (match_operand: 2 "register_operand" "v") ! (match_operand:SI 4 "const1248_operand" "n") ! (match_operand: 6 "register_operand" "1")] UNSPEC_VSIBADDR)]) (unspec:VI48F ! [(match_dup 6) (match_operand:VI48F 3 "register_operand" "v")] UNSPEC_SCATTER)) (clobber (match_scratch: 1 "=&Yk"))] *************** *** 21766,21773 **** "TARGET_AVX512F" { operands[5] ! = gen_rtx_UNSPEC (Pmode, gen_rtvec (3, operands[0], operands[2], ! operands[4]), UNSPEC_VSIBADDR); }) (define_insn "*avx512f_scatterdi" --- 21769,21777 ---- "TARGET_AVX512F" { operands[5] ! = gen_rtx_UNSPEC (Pmode, gen_rtvec (4, operands[0], operands[2], ! operands[4], operands[1]), ! UNSPEC_VSIBADDR); }) (define_insn "*avx512f_scatterdi" *************** *** 21775,21784 **** [(unspec:P [(match_operand:P 0 "vsib_address_operand" "Tv") (match_operand: 2 "register_operand" "v") ! (match_operand:SI 4 "const1248_operand" "n")] UNSPEC_VSIBADDR)]) (unspec:VI48F ! [(match_operand:QI 6 "register_operand" "1") (match_operand: 3 "register_operand" "v")] UNSPEC_SCATTER)) (clobber (match_scratch:QI 1 "=&Yk"))] --- 21779,21789 ---- [(unspec:P [(match_operand:P 0 "vsib_address_operand" "Tv") (match_operand: 2 "register_operand" "v") ! (match_operand:SI 4 "const1248_operand" "n") ! (match_operand:QI 6 "register_operand" "1")] UNSPEC_VSIBADDR)]) (unspec:VI48F ! [(match_dup 6) (match_operand: 3 "register_operand" "v")] UNSPEC_SCATTER)) (clobber (match_scratch:QI 1 "=&Yk"))] diff -Nrcpad gcc-10.3.0/gcc/config/i386/sync.md gcc-10.4.0/gcc/config/i386/sync.md *** gcc-10.3.0/gcc/config/i386/sync.md Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/config/i386/sync.md Tue Jun 28 08:54:27 2022 *************** *** 212,289 **** DONE; }) - (define_peephole2 - [(set (match_operand:DF 0 "fp_register_operand") - (unspec:DF [(match_operand:DI 1 "memory_operand")] - UNSPEC_FILD_ATOMIC)) - (set (match_operand:DI 2 "memory_operand") - (unspec:DI [(match_dup 0)] - UNSPEC_FIST_ATOMIC)) - (set (match_operand:DF 3 "any_fp_register_operand") - (match_operand:DF 4 "memory_operand"))] - "!TARGET_64BIT - && peep2_reg_dead_p (2, operands[0]) - && rtx_equal_p (XEXP (operands[4], 0), XEXP (operands[2], 0))" - [(set (match_dup 3) (match_dup 5))] - "operands[5] = gen_lowpart (DFmode, operands[1]);") - - (define_peephole2 - [(set (match_operand:DF 0 "fp_register_operand") - (unspec:DF [(match_operand:DI 1 "memory_operand")] - UNSPEC_FILD_ATOMIC)) - (set (match_operand:DI 2 "memory_operand") - (unspec:DI [(match_dup 0)] - UNSPEC_FIST_ATOMIC)) - (set (mem:BLK (scratch:SI)) - (unspec:BLK [(mem:BLK (scratch:SI))] UNSPEC_MEMORY_BLOCKAGE)) - (set (match_operand:DF 3 "any_fp_register_operand") - (match_operand:DF 4 "memory_operand"))] - "!TARGET_64BIT - && peep2_reg_dead_p (2, operands[0]) - && rtx_equal_p (XEXP (operands[4], 0), XEXP (operands[2], 0))" - [(const_int 0)] - { - emit_move_insn (operands[3], gen_lowpart (DFmode, operands[1])); - emit_insn (gen_memory_blockage ()); - DONE; - }) - - (define_peephole2 - [(set (match_operand:DF 0 "sse_reg_operand") - (unspec:DF [(match_operand:DI 1 "memory_operand")] - UNSPEC_LDX_ATOMIC)) - (set (match_operand:DI 2 "memory_operand") - (unspec:DI [(match_dup 0)] - UNSPEC_STX_ATOMIC)) - (set (match_operand:DF 3 "any_fp_register_operand") - (match_operand:DF 4 "memory_operand"))] - "!TARGET_64BIT - && peep2_reg_dead_p (2, operands[0]) - && rtx_equal_p (XEXP (operands[4], 0), XEXP (operands[2], 0))" - [(set (match_dup 3) (match_dup 5))] - "operands[5] = gen_lowpart (DFmode, operands[1]);") - - (define_peephole2 - [(set (match_operand:DF 0 "sse_reg_operand") - (unspec:DF [(match_operand:DI 1 "memory_operand")] - UNSPEC_LDX_ATOMIC)) - (set (match_operand:DI 2 "memory_operand") - (unspec:DI [(match_dup 0)] - UNSPEC_STX_ATOMIC)) - (set (mem:BLK (scratch:SI)) - (unspec:BLK [(mem:BLK (scratch:SI))] UNSPEC_MEMORY_BLOCKAGE)) - (set (match_operand:DF 3 "any_fp_register_operand") - (match_operand:DF 4 "memory_operand"))] - "!TARGET_64BIT - && peep2_reg_dead_p (2, operands[0]) - && rtx_equal_p (XEXP (operands[4], 0), XEXP (operands[2], 0))" - [(const_int 0)] - { - emit_move_insn (operands[3], gen_lowpart (DFmode, operands[1])); - emit_insn (gen_memory_blockage ()); - DONE; - }) - (define_expand "atomic_store" [(set (match_operand:ATOMIC 0 "memory_operand") (unspec:ATOMIC [(match_operand:ATOMIC 1 "nonimmediate_operand") --- 212,217 ---- *************** *** 373,450 **** DONE; }) - (define_peephole2 - [(set (match_operand:DF 0 "memory_operand") - (match_operand:DF 1 "any_fp_register_operand")) - (set (match_operand:DF 2 "fp_register_operand") - (unspec:DF [(match_operand:DI 3 "memory_operand")] - UNSPEC_FILD_ATOMIC)) - (set (match_operand:DI 4 "memory_operand") - (unspec:DI [(match_dup 2)] - UNSPEC_FIST_ATOMIC))] - "!TARGET_64BIT - && peep2_reg_dead_p (3, operands[2]) - && rtx_equal_p (XEXP (operands[0], 0), XEXP (operands[3], 0))" - [(set (match_dup 5) (match_dup 1))] - "operands[5] = gen_lowpart (DFmode, operands[4]);") - - (define_peephole2 - [(set (match_operand:DF 0 "memory_operand") - (match_operand:DF 1 "any_fp_register_operand")) - (set (mem:BLK (scratch:SI)) - (unspec:BLK [(mem:BLK (scratch:SI))] UNSPEC_MEMORY_BLOCKAGE)) - (set (match_operand:DF 2 "fp_register_operand") - (unspec:DF [(match_operand:DI 3 "memory_operand")] - UNSPEC_FILD_ATOMIC)) - (set (match_operand:DI 4 "memory_operand") - (unspec:DI [(match_dup 2)] - UNSPEC_FIST_ATOMIC))] - "!TARGET_64BIT - && peep2_reg_dead_p (4, operands[2]) - && rtx_equal_p (XEXP (operands[0], 0), XEXP (operands[3], 0))" - [(const_int 0)] - { - emit_insn (gen_memory_blockage ()); - emit_move_insn (gen_lowpart (DFmode, operands[4]), operands[1]); - DONE; - }) - - (define_peephole2 - [(set (match_operand:DF 0 "memory_operand") - (match_operand:DF 1 "any_fp_register_operand")) - (set (match_operand:DF 2 "sse_reg_operand") - (unspec:DF [(match_operand:DI 3 "memory_operand")] - UNSPEC_LDX_ATOMIC)) - (set (match_operand:DI 4 "memory_operand") - (unspec:DI [(match_dup 2)] - UNSPEC_STX_ATOMIC))] - "!TARGET_64BIT - && peep2_reg_dead_p (3, operands[2]) - && rtx_equal_p (XEXP (operands[0], 0), XEXP (operands[3], 0))" - [(set (match_dup 5) (match_dup 1))] - "operands[5] = gen_lowpart (DFmode, operands[4]);") - - (define_peephole2 - [(set (match_operand:DF 0 "memory_operand") - (match_operand:DF 1 "any_fp_register_operand")) - (set (mem:BLK (scratch:SI)) - (unspec:BLK [(mem:BLK (scratch:SI))] UNSPEC_MEMORY_BLOCKAGE)) - (set (match_operand:DF 2 "sse_reg_operand") - (unspec:DF [(match_operand:DI 3 "memory_operand")] - UNSPEC_LDX_ATOMIC)) - (set (match_operand:DI 4 "memory_operand") - (unspec:DI [(match_dup 2)] - UNSPEC_STX_ATOMIC))] - "!TARGET_64BIT - && peep2_reg_dead_p (4, operands[2]) - && rtx_equal_p (XEXP (operands[0], 0), XEXP (operands[3], 0))" - [(const_int 0)] - { - emit_insn (gen_memory_blockage ()); - emit_move_insn (gen_lowpart (DFmode, operands[4]), operands[1]); - DONE; - }) - ;; ??? You'd think that we'd be able to perform this via FLOAT + FIX_TRUNC ;; operations. But the fix_trunc patterns want way more setup than we want ;; to provide. Note that the scratch is DFmode instead of XFmode in order --- 301,306 ---- *************** *** 794,800 **** rtx result = convert_modes (mode, QImode, tem, 1); if (operands[4] == const0_rtx) result = expand_simple_binop (mode, ASHIFT, result, ! operands[2], operands[0], 0, OPTAB_DIRECT); if (result != operands[0]) emit_move_insn (operands[0], result); DONE; --- 650,656 ---- rtx result = convert_modes (mode, QImode, tem, 1); if (operands[4] == const0_rtx) result = expand_simple_binop (mode, ASHIFT, result, ! operands[2], operands[0], 0, OPTAB_WIDEN); if (result != operands[0]) emit_move_insn (operands[0], result); DONE; *************** *** 831,837 **** rtx result = convert_modes (mode, QImode, tem, 1); if (operands[4] == const0_rtx) result = expand_simple_binop (mode, ASHIFT, result, ! operands[2], operands[0], 0, OPTAB_DIRECT); if (result != operands[0]) emit_move_insn (operands[0], result); DONE; --- 687,693 ---- rtx result = convert_modes (mode, QImode, tem, 1); if (operands[4] == const0_rtx) result = expand_simple_binop (mode, ASHIFT, result, ! operands[2], operands[0], 0, OPTAB_WIDEN); if (result != operands[0]) emit_move_insn (operands[0], result); DONE; *************** *** 869,875 **** rtx result = convert_modes (mode, QImode, tem, 1); if (operands[4] == const0_rtx) result = expand_simple_binop (mode, ASHIFT, result, ! operands[2], operands[0], 0, OPTAB_DIRECT); if (result != operands[0]) emit_move_insn (operands[0], result); DONE; --- 725,731 ---- rtx result = convert_modes (mode, QImode, tem, 1); if (operands[4] == const0_rtx) result = expand_simple_binop (mode, ASHIFT, result, ! operands[2], operands[0], 0, OPTAB_WIDEN); if (result != operands[0]) emit_move_insn (operands[0], result); DONE; diff -Nrcpad gcc-10.3.0/gcc/config/i386/winnt.c gcc-10.4.0/gcc/config/i386/winnt.c *** gcc-10.3.0/gcc/config/i386/winnt.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/config/i386/winnt.c Tue Jun 28 08:54:27 2022 *************** i386_pe_seh_cold_init (FILE *f, const ch *** 921,935 **** /* In the normal case, the frame pointer is near the bottom of the frame so we can do the full stack allocation and set it afterwards. There ! is an exception when the function accesses prior frames so, in this ! case, we need to pre-allocate a small chunk before setting it. */ ! if (crtl->accesses_prior_frames) ! alloc_offset = seh->cfa_offset; ! else alloc_offset = seh->sp_offset; offset = alloc_offset - INCOMING_FRAME_SP_OFFSET; ! if (offset > 0 && offset < SEH_MAX_FRAME_SIZE) fprintf (f, "\t.seh_stackalloc\t" HOST_WIDE_INT_PRINT_DEC "\n", offset); for (int regno = 0; regno < FIRST_PSEUDO_REGISTER; regno++) --- 921,937 ---- /* In the normal case, the frame pointer is near the bottom of the frame so we can do the full stack allocation and set it afterwards. There ! is an exception if the function overflows the SEH maximum frame size ! or accesses prior frames so, in this case, we need to pre-allocate a ! small chunk of stack before setting it. */ ! offset = seh->sp_offset - INCOMING_FRAME_SP_OFFSET; ! if (offset < SEH_MAX_FRAME_SIZE && !crtl->accesses_prior_frames) alloc_offset = seh->sp_offset; + else + alloc_offset = MIN (seh->cfa_offset + 240, seh->sp_offset); offset = alloc_offset - INCOMING_FRAME_SP_OFFSET; ! if (offset > 0) fprintf (f, "\t.seh_stackalloc\t" HOST_WIDE_INT_PRINT_DEC "\n", offset); for (int regno = 0; regno < FIRST_PSEUDO_REGISTER; regno++) *************** i386_pe_seh_cold_init (FILE *f, const ch *** 958,964 **** fprintf (f, ", " HOST_WIDE_INT_PRINT_DEC "\n", offset); } ! if (crtl->accesses_prior_frames) { offset = seh->sp_offset - alloc_offset; if (offset > 0 && offset < SEH_MAX_FRAME_SIZE) --- 960,966 ---- fprintf (f, ", " HOST_WIDE_INT_PRINT_DEC "\n", offset); } ! if (alloc_offset != seh->sp_offset) { offset = seh->sp_offset - alloc_offset; if (offset > 0 && offset < SEH_MAX_FRAME_SIZE) *************** i386_pe_seh_unwind_emit (FILE *asm_out_f *** 1242,1250 **** seh = cfun->machine->seh; if (NOTE_P (insn) && NOTE_KIND (insn) == NOTE_INSN_SWITCH_TEXT_SECTIONS) { ! /* See ix86_seh_fixup_eh_fallthru for the rationale. */ rtx_insn *prev = prev_active_insn (insn); ! if (prev && !insn_nothrow_p (prev)) fputs ("\tnop\n", asm_out_file); fputs ("\t.seh_endproc\n", asm_out_file); seh->in_cold_section = true; --- 1244,1252 ---- seh = cfun->machine->seh; if (NOTE_P (insn) && NOTE_KIND (insn) == NOTE_INSN_SWITCH_TEXT_SECTIONS) { ! /* See ix86_output_call_insn/seh_fixup_eh_fallthru for the rationale. */ rtx_insn *prev = prev_active_insn (insn); ! if (prev && (CALL_P (prev) || !insn_nothrow_p (prev))) fputs ("\tnop\n", asm_out_file); fputs ("\t.seh_endproc\n", asm_out_file); seh->in_cold_section = true; diff -Nrcpad gcc-10.3.0/gcc/config/mips/mips.c gcc-10.4.0/gcc/config/mips/mips.c *** gcc-10.3.0/gcc/config/mips/mips.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/config/mips/mips.c Tue Jun 28 08:54:27 2022 *************** mips_atomic_assign_expand_fenv (tree *ho *** 22418,22429 **** tree get_fcsr = mips_builtin_decls[MIPS_GET_FCSR]; tree set_fcsr = mips_builtin_decls[MIPS_SET_FCSR]; tree get_fcsr_hold_call = build_call_expr (get_fcsr, 0); ! tree hold_assign_orig = build2 (MODIFY_EXPR, MIPS_ATYPE_USI, ! fcsr_orig_var, get_fcsr_hold_call); tree hold_mod_val = build2 (BIT_AND_EXPR, MIPS_ATYPE_USI, fcsr_orig_var, build_int_cst (MIPS_ATYPE_USI, 0xfffff003)); ! tree hold_assign_mod = build2 (MODIFY_EXPR, MIPS_ATYPE_USI, ! fcsr_mod_var, hold_mod_val); tree set_fcsr_hold_call = build_call_expr (set_fcsr, 1, fcsr_mod_var); tree hold_all = build2 (COMPOUND_EXPR, MIPS_ATYPE_USI, hold_assign_orig, hold_assign_mod); --- 22418,22429 ---- tree get_fcsr = mips_builtin_decls[MIPS_GET_FCSR]; tree set_fcsr = mips_builtin_decls[MIPS_SET_FCSR]; tree get_fcsr_hold_call = build_call_expr (get_fcsr, 0); ! tree hold_assign_orig = build4 (TARGET_EXPR, MIPS_ATYPE_USI, ! fcsr_orig_var, get_fcsr_hold_call, NULL, NULL); tree hold_mod_val = build2 (BIT_AND_EXPR, MIPS_ATYPE_USI, fcsr_orig_var, build_int_cst (MIPS_ATYPE_USI, 0xfffff003)); ! tree hold_assign_mod = build4 (TARGET_EXPR, MIPS_ATYPE_USI, ! fcsr_mod_var, hold_mod_val, NULL, NULL); tree set_fcsr_hold_call = build_call_expr (set_fcsr, 1, fcsr_mod_var); tree hold_all = build2 (COMPOUND_EXPR, MIPS_ATYPE_USI, hold_assign_orig, hold_assign_mod); *************** mips_atomic_assign_expand_fenv (tree *ho *** 22433,22440 **** *clear = build_call_expr (set_fcsr, 1, fcsr_mod_var); tree get_fcsr_update_call = build_call_expr (get_fcsr, 0); ! *update = build2 (MODIFY_EXPR, MIPS_ATYPE_USI, ! exceptions_var, get_fcsr_update_call); tree set_fcsr_update_call = build_call_expr (set_fcsr, 1, fcsr_orig_var); *update = build2 (COMPOUND_EXPR, void_type_node, *update, set_fcsr_update_call); --- 22433,22440 ---- *clear = build_call_expr (set_fcsr, 1, fcsr_mod_var); tree get_fcsr_update_call = build_call_expr (get_fcsr, 0); ! *update = build4 (TARGET_EXPR, MIPS_ATYPE_USI, ! exceptions_var, get_fcsr_update_call, NULL, NULL); tree set_fcsr_update_call = build_call_expr (set_fcsr, 1, fcsr_orig_var); *update = build2 (COMPOUND_EXPR, void_type_node, *update, set_fcsr_update_call); diff -Nrcpad gcc-10.3.0/gcc/config/nvptx/nvptx.c gcc-10.4.0/gcc/config/nvptx/nvptx.c *** gcc-10.3.0/gcc/config/nvptx/nvptx.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/config/nvptx/nvptx.c Tue Jun 28 08:54:27 2022 *************** nvptx_sese_pseudo (basic_block me, bb_se *** 3571,3579 **** edge e; edge_iterator ei; int hi_back = depth; ! pseudo_node_t node_back (0, depth); int hi_child = depth; ! pseudo_node_t node_child (0, depth); basic_block child = NULL; unsigned num_children = 0; int usd = -dir * sese->dir; --- 3571,3579 ---- edge e; edge_iterator ei; int hi_back = depth; ! pseudo_node_t node_back (NULL, depth); int hi_child = depth; ! pseudo_node_t node_child (NULL, depth); basic_block child = NULL; unsigned num_children = 0; int usd = -dir * sese->dir; *************** nvptx_sese_pseudo (basic_block me, bb_se *** 3640,3646 **** else { /* Fallen off graph, backlink to entry node. */ hi_back = 0; ! node_back = pseudo_node_t (0, 0); } } --- 3640,3646 ---- else { /* Fallen off graph, backlink to entry node. */ hi_back = 0; ! node_back = pseudo_node_t (NULL, 0); } } *************** nvptx_sese_pseudo (basic_block me, bb_se *** 3661,3667 **** else { /* back edge to entry node */ ! sese->push (pseudo_node_t (0, 0)); } } --- 3661,3667 ---- else { /* back edge to entry node */ ! sese->push (pseudo_node_t (NULL, 0)); } } *************** nvptx_sese_pseudo (basic_block me, bb_se *** 3670,3676 **** if (!sese->brackets.length () || !edges || !edges->length ()) { hi_back = 0; ! node_back = pseudo_node_t (0, 0); sese->push (node_back); } --- 3670,3676 ---- if (!sese->brackets.length () || !edges || !edges->length ()) { hi_back = 0; ! node_back = pseudo_node_t (NULL, 0); sese->push (node_back); } diff -Nrcpad gcc-10.3.0/gcc/config/pa/pa.md gcc-10.4.0/gcc/config/pa/pa.md *** gcc-10.3.0/gcc/config/pa/pa.md Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/config/pa/pa.md Tue Jun 28 08:54:27 2022 *************** *** 1383,1389 **** (match_operand:SF 2 "reg_or_0_operand" "")]) (label_ref (match_operand 3 "" "")) (pc)))] ! "" " { pa_emit_bcond_fp (operands); --- 1383,1389 ---- (match_operand:SF 2 "reg_or_0_operand" "")]) (label_ref (match_operand 3 "" "")) (pc)))] ! "! TARGET_SOFT_FLOAT" " { pa_emit_bcond_fp (operands); *************** *** 1398,1404 **** (match_operand:DF 2 "reg_or_0_operand" "")]) (label_ref (match_operand 3 "" "")) (pc)))] ! "" " { pa_emit_bcond_fp (operands); --- 1398,1404 ---- (match_operand:DF 2 "reg_or_0_operand" "")]) (label_ref (match_operand 3 "" "")) (pc)))] ! "! TARGET_SOFT_FLOAT" " { pa_emit_bcond_fp (operands); *************** *** 2237,2242 **** --- 2237,2265 ---- (set_attr "length" "4,4,4,4,4,4,4,4,4,4,4,4")]) (define_insn "" + [(set (match_operand:SI 0 "move_dest_operand" + "=r,r,r,r,r,r,Q,!*q,!r") + (match_operand:SI 1 "move_src_operand" + "A,r,J,N,K,RQ,rM,!rM,!*q"))] + "(register_operand (operands[0], SImode) + || reg_or_0_operand (operands[1], SImode)) + && TARGET_SOFT_FLOAT + && TARGET_64BIT" + "@ + ldw RT'%A1,%0 + copy %1,%0 + ldi %1,%0 + ldil L'%1,%0 + {zdepi|depwi,z} %Z1,%0 + ldw%M1 %1,%0 + stw%M0 %r1,%0 + mtsar %r1 + {mfctl|mfctl,w} %%sar,%0" + [(set_attr "type" "load,move,move,move,shift,load,store,move,move") + (set_attr "pa_combine_type" "addmove") + (set_attr "length" "4,4,4,4,4,4,4,4,4")]) + + (define_insn "" [(set (match_operand:SI 0 "indexed_memory_operand" "=R") (match_operand:SI 1 "register_operand" "f"))] "!TARGET_SOFT_FLOAT *************** *** 4024,4035 **** [(set (match_operand:DF 0 "move_dest_operand" "=!*r,*r,*r,*r,*r,Q,f,f,T") (match_operand:DF 1 "move_src_operand" ! "!*r,J,N,K,RQ,*rG,fG,RT,f"))] "(register_operand (operands[0], DFmode) || reg_or_0_operand (operands[1], DFmode)) && !TARGET_SOFT_FLOAT && TARGET_64BIT" "@ ! copy %1,%0 ldi %1,%0 ldil L'%1,%0 depdi,z %z1,%0 --- 4047,4058 ---- [(set (match_operand:DF 0 "move_dest_operand" "=!*r,*r,*r,*r,*r,Q,f,f,T") (match_operand:DF 1 "move_src_operand" ! "!*rG,J,N,K,RQ,*rG,fG,RT,f"))] "(register_operand (operands[0], DFmode) || reg_or_0_operand (operands[1], DFmode)) && !TARGET_SOFT_FLOAT && TARGET_64BIT" "@ ! copy %r1,%0 ldi %1,%0 ldil L'%1,%0 depdi,z %z1,%0 *************** *** 4042,4047 **** --- 4065,4089 ---- (set_attr "pa_combine_type" "addmove") (set_attr "length" "4,4,4,4,4,4,4,4,4")]) + (define_insn "" + [(set (match_operand:DF 0 "move_dest_operand" + "=!*r,*r,*r,*r,*r,Q") + (match_operand:DF 1 "move_src_operand" + "!*rG,J,N,K,RQ,*rG"))] + "(register_operand (operands[0], DFmode) + || reg_or_0_operand (operands[1], DFmode)) + && TARGET_SOFT_FLOAT && TARGET_64BIT" + "@ + copy %r1,%0 + ldi %1,%0 + ldil L'%1,%0 + depdi,z %z1,%0 + ldd%M1 %1,%0 + std%M0 %r1,%0" + [(set_attr "type" "move,move,move,shift,load,store") + (set_attr "pa_combine_type" "addmove") + (set_attr "length" "4,4,4,4,4,4")]) + (define_expand "movdi" [(set (match_operand:DI 0 "general_operand" "") *************** *** 4201,4206 **** --- 4243,4270 ---- (set_attr "length" "4,4,4,4,4,4,4,4,4,4,4,4")]) (define_insn "" + [(set (match_operand:DI 0 "move_dest_operand" + "=r,r,r,r,r,r,Q,!*q,!r") + (match_operand:DI 1 "move_src_operand" + "A,r,J,N,K,RQ,rM,!rM,!*q"))] + "(register_operand (operands[0], DImode) + || reg_or_0_operand (operands[1], DImode)) + && TARGET_SOFT_FLOAT && TARGET_64BIT" + "@ + ldd RT'%A1,%0 + copy %1,%0 + ldi %1,%0 + ldil L'%1,%0 + depdi,z %z1,%0 + ldd%M1 %1,%0 + std%M0 %r1,%0 + mtsar %r1 + {mfctl|mfctl,w} %%sar,%0" + [(set_attr "type" "load,move,move,move,shift,load,store,move,move") + (set_attr "pa_combine_type" "addmove") + (set_attr "length" "4,4,4,4,4,4,4,4,4")]) + + (define_insn "" [(set (match_operand:DI 0 "indexed_memory_operand" "=R") (match_operand:DI 1 "register_operand" "f"))] "!TARGET_SOFT_FLOAT *************** *** 4406,4411 **** --- 4470,4492 ---- (set_attr "length" "4,4,4,4,4,4")]) (define_insn "" + [(set (match_operand:SF 0 "move_dest_operand" + "=!*r,*r,Q") + (match_operand:SF 1 "reg_or_0_or_nonsymb_mem_operand" + "!*rG,RQ,*rG"))] + "(register_operand (operands[0], SFmode) + || reg_or_0_operand (operands[1], SFmode)) + && TARGET_SOFT_FLOAT + && TARGET_64BIT" + "@ + copy %r1,%0 + ldw%M1 %1,%0 + stw%M0 %r1,%0" + [(set_attr "type" "move,load,store") + (set_attr "pa_combine_type" "addmove") + (set_attr "length" "4,4,4")]) + + (define_insn "" [(set (match_operand:SF 0 "indexed_memory_operand" "=R") (match_operand:SF 1 "register_operand" "f"))] "!TARGET_SOFT_FLOAT *************** *** 5374,5405 **** [(set (match_operand:DI 0 "register_operand" "") (mult:DI (match_operand:DI 1 "register_operand" "") (match_operand:DI 2 "register_operand" "")))] ! "TARGET_64BIT && ! TARGET_DISABLE_FPREGS && ! TARGET_SOFT_FLOAT" " { rtx low_product = gen_reg_rtx (DImode); rtx cross_product1 = gen_reg_rtx (DImode); rtx cross_product2 = gen_reg_rtx (DImode); - rtx cross_scratch = gen_reg_rtx (DImode); - rtx cross_product = gen_reg_rtx (DImode); rtx op1l, op1r, op2l, op2r; - rtx op1shifted, op2shifted; ! op1shifted = gen_reg_rtx (DImode); ! op2shifted = gen_reg_rtx (DImode); ! op1l = gen_reg_rtx (SImode); ! op1r = gen_reg_rtx (SImode); ! op2l = gen_reg_rtx (SImode); ! op2r = gen_reg_rtx (SImode); ! emit_move_insn (op1shifted, gen_rtx_LSHIFTRT (DImode, operands[1], ! GEN_INT (32))); ! emit_move_insn (op2shifted, gen_rtx_LSHIFTRT (DImode, operands[2], ! GEN_INT (32))); ! op1r = force_reg (SImode, gen_rtx_SUBREG (SImode, operands[1], 4)); ! op2r = force_reg (SImode, gen_rtx_SUBREG (SImode, operands[2], 4)); ! op1l = force_reg (SImode, gen_rtx_SUBREG (SImode, op1shifted, 4)); ! op2l = force_reg (SImode, gen_rtx_SUBREG (SImode, op2shifted, 4)); /* Emit multiplies for the cross products. */ emit_insn (gen_umulsidi3 (cross_product1, op2r, op1l)); --- 5455,5492 ---- [(set (match_operand:DI 0 "register_operand" "") (mult:DI (match_operand:DI 1 "register_operand" "") (match_operand:DI 2 "register_operand" "")))] ! "! optimize_size ! && TARGET_PA_11 ! && ! TARGET_DISABLE_FPREGS ! && ! TARGET_SOFT_FLOAT" " { rtx low_product = gen_reg_rtx (DImode); rtx cross_product1 = gen_reg_rtx (DImode); rtx cross_product2 = gen_reg_rtx (DImode); rtx op1l, op1r, op2l, op2r; ! if (TARGET_64BIT) ! { ! rtx op1shifted = gen_reg_rtx (DImode); ! rtx op2shifted = gen_reg_rtx (DImode); ! emit_move_insn (op1shifted, gen_rtx_LSHIFTRT (DImode, operands[1], ! GEN_INT (32))); ! emit_move_insn (op2shifted, gen_rtx_LSHIFTRT (DImode, operands[2], ! GEN_INT (32))); ! op1r = force_reg (SImode, gen_rtx_SUBREG (SImode, operands[1], 4)); ! op2r = force_reg (SImode, gen_rtx_SUBREG (SImode, operands[2], 4)); ! op1l = force_reg (SImode, gen_rtx_SUBREG (SImode, op1shifted, 4)); ! op2l = force_reg (SImode, gen_rtx_SUBREG (SImode, op2shifted, 4)); ! } ! else ! { ! op1r = force_reg (SImode, gen_lowpart (SImode, operands[1])); ! op2r = force_reg (SImode, gen_lowpart (SImode, operands[2])); ! op1l = force_reg (SImode, gen_highpart (SImode, operands[1])); ! op2l = force_reg (SImode, gen_highpart (SImode, operands[2])); ! } /* Emit multiplies for the cross products. */ emit_insn (gen_umulsidi3 (cross_product1, op2r, op1l)); *************** *** 5408,5420 **** /* Emit a multiply for the low sub-word. */ emit_insn (gen_umulsidi3 (low_product, copy_rtx (op2r), copy_rtx (op1r))); ! /* Sum the cross products and shift them into proper position. */ ! emit_insn (gen_adddi3 (cross_scratch, cross_product1, cross_product2)); ! emit_insn (gen_ashldi3 (cross_product, cross_scratch, GEN_INT (32))); ! /* Add the cross product to the low product and store the result ! into the output operand . */ ! emit_insn (gen_adddi3 (operands[0], cross_product, low_product)); DONE; }") --- 5495,5529 ---- /* Emit a multiply for the low sub-word. */ emit_insn (gen_umulsidi3 (low_product, copy_rtx (op2r), copy_rtx (op1r))); ! if (TARGET_64BIT) ! { ! rtx cross_scratch = gen_reg_rtx (DImode); ! rtx cross_product = gen_reg_rtx (DImode); ! /* Sum the cross products and shift them into proper position. */ ! emit_insn (gen_adddi3 (cross_scratch, cross_product1, cross_product2)); ! emit_insn (gen_ashldi3 (cross_product, cross_scratch, GEN_INT (32))); ! ! /* Add the cross product to the low product and store the result ! into the output operand . */ ! emit_insn (gen_adddi3 (operands[0], cross_product, low_product)); ! } ! else ! { ! rtx cross_scratch = gen_reg_rtx (SImode); ! ! /* Sum cross products. */ ! emit_move_insn (cross_scratch, ! gen_rtx_PLUS (SImode, ! gen_lowpart (SImode, cross_product1), ! gen_lowpart (SImode, cross_product2))); ! emit_move_insn (gen_lowpart (SImode, operands[0]), ! gen_lowpart (SImode, low_product)); ! emit_move_insn (gen_highpart (SImode, operands[0]), ! gen_rtx_PLUS (SImode, ! gen_highpart (SImode, low_product), ! cross_scratch)); ! } DONE; }") diff -Nrcpad gcc-10.3.0/gcc/config/riscv/riscv.opt gcc-10.4.0/gcc/config/riscv/riscv.opt *** gcc-10.3.0/gcc/config/riscv/riscv.opt Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/config/riscv/riscv.opt Tue Jun 28 08:54:27 2022 *************** Target Report Var(TARGET_PLT) Init(1) *** 30,36 **** When generating -fpic code, allow the use of PLTs. Ignored for fno-pic. mabi= ! Target Report RejectNegative Joined Enum(abi_type) Var(riscv_abi) Init(ABI_ILP32) Specify integer and floating-point calling convention. mpreferred-stack-boundary= --- 30,36 ---- When generating -fpic code, allow the use of PLTs. Ignored for fno-pic. mabi= ! Target Report RejectNegative Joined Enum(abi_type) Var(riscv_abi) Init(ABI_ILP32) Negative(mabi=) Specify integer and floating-point calling convention. mpreferred-stack-boundary= *************** Target Report Mask(DIV) *** 71,77 **** Use hardware instructions for integer division. march= ! Target Report RejectNegative Joined -march= Generate code for given RISC-V ISA (e.g. RV64IM). ISA strings must be lower-case. --- 71,77 ---- Use hardware instructions for integer division. march= ! Target Report RejectNegative Joined Negative(march=) -march= Generate code for given RISC-V ISA (e.g. RV64IM). ISA strings must be lower-case. diff -Nrcpad gcc-10.3.0/gcc/config/riscv/t-riscv gcc-10.4.0/gcc/config/riscv/t-riscv *** gcc-10.3.0/gcc/config/riscv/t-riscv Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/config/riscv/t-riscv Tue Jun 28 08:54:27 2022 *************** riscv-builtins.o: $(srcdir)/config/riscv *** 6,12 **** $(srcdir)/config/riscv/riscv-builtins.c riscv-sr.o: $(srcdir)/config/riscv/riscv-sr.c $(CONFIG_H) \ ! $(SYSTEM_H) $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \ $(srcdir)/config/riscv/riscv-sr.c --- 6,12 ---- $(srcdir)/config/riscv/riscv-builtins.c riscv-sr.o: $(srcdir)/config/riscv/riscv-sr.c $(CONFIG_H) \ ! $(SYSTEM_H) $(TM_H) $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \ $(srcdir)/config/riscv/riscv-sr.c diff -Nrcpad gcc-10.3.0/gcc/config/rs6000/aix.h gcc-10.4.0/gcc/config/rs6000/aix.h *** gcc-10.3.0/gcc/config/rs6000/aix.h Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/config/rs6000/aix.h Tue Jun 28 08:54:27 2022 *************** *** 280,282 **** --- 280,287 ---- /* Use standard DWARF numbering for DWARF debugging information. */ #define RS6000_USE_DWARF_NUMBERING + /* Replace -m64 with -maix64 and -m32 with -maix32. */ + #undef SUBTARGET_DRIVER_SELF_SPECS + #define SUBTARGET_DRIVER_SELF_SPECS \ + "%{m64:-maix64} %> c); ! result |= (t & (mask >> c)); ! p++; } ! return (result); } extern __inline unsigned long long __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _pext_u64 (unsigned long long __X, unsigned long long __M) { ! unsigned long p = 0x4040404040404040UL; // initial bit permute control ! const unsigned long mask = 0x8000000000000000UL; ! unsigned long m = __M; ! unsigned long c; ! unsigned long result; /* if the mask is constant and selects 8 bits or less we can use the Power8 Bit permute instruction. */ --- 77,115 ---- __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _pdep_u64 (unsigned long long __X, unsigned long long __M) { ! unsigned long __result = 0x0UL; ! const unsigned long __mask = 0x8000000000000000UL; ! unsigned long __m = __M; ! unsigned long __c, __t; ! unsigned long __p; /* The pop-count of the mask gives the number of the bits from source to process. This is also needed to shift bits from the source into the correct position for the result. */ ! __p = 64 - __builtin_popcountl (__M); /* The loop is for the number of '1' bits in the mask and clearing each mask bit as it is processed. */ ! while (__m != 0) { ! __c = __builtin_clzl (__m); ! __t = __X << (__p - __c); ! __m ^= (__mask >> __c); ! __result |= (__t & (__mask >> __c)); ! __p++; } ! return __result; } extern __inline unsigned long long __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _pext_u64 (unsigned long long __X, unsigned long long __M) { ! unsigned long __p = 0x4040404040404040UL; // initial bit permute control ! const unsigned long __mask = 0x8000000000000000UL; ! unsigned long __m = __M; ! unsigned long __c; ! unsigned long __result; /* if the mask is constant and selects 8 bits or less we can use the Power8 Bit permute instruction. */ *************** _pext_u64 (unsigned long long __X, unsig *** 118,151 **** /* Also if the pext mask is constant, then the popcount is constant, we can evaluate the following loop at compile time and use a constant bit permute vector. */ ! for (long i = 0; i < __builtin_popcountl (__M); i++) { ! c = __builtin_clzl (m); ! p = (p << 8) | c; ! m ^= (mask >> c); } ! result = __builtin_bpermd (p, __X); } else { ! p = 64 - __builtin_popcountl (__M); ! result = 0; /* We could a use a for loop here, but that combined with -funroll-loops can expand to a lot of code. The while loop avoids unrolling and the compiler commons the xor ! from clearing the mask bit with the (m != 0) test. The result is a more compact loop setup and body. */ ! while (m != 0) { ! unsigned long t; ! c = __builtin_clzl (m); ! t = (__X & (mask >> c)) >> (p - c); ! m ^= (mask >> c); ! result |= (t); ! p++; } } ! return (result); } /* these 32-bit implementations depend on 64-bit pdep/pext --- 118,151 ---- /* Also if the pext mask is constant, then the popcount is constant, we can evaluate the following loop at compile time and use a constant bit permute vector. */ ! for (long __i = 0; __i < __builtin_popcountl (__M); __i++) { ! __c = __builtin_clzl (__m); ! __p = (__p << 8) | __c; ! __m ^= (__mask >> __c); } ! __result = __builtin_bpermd (__p, __X); } else { ! __p = 64 - __builtin_popcountl (__M); ! __result = 0; /* We could a use a for loop here, but that combined with -funroll-loops can expand to a lot of code. The while loop avoids unrolling and the compiler commons the xor ! from clearing the mask bit with the (__m != 0) test. The result is a more compact loop setup and body. */ ! while (__m != 0) { ! unsigned long __t; ! __c = __builtin_clzl (__m); ! __t = (__X & (__mask >> __c)) >> (__p - __c); ! __m ^= (__mask >> __c); ! __result |= (__t); ! __p++; } } ! return __result; } /* these 32-bit implementations depend on 64-bit pdep/pext diff -Nrcpad gcc-10.3.0/gcc/config/rs6000/darwin.h gcc-10.4.0/gcc/config/rs6000/darwin.h *** gcc-10.3.0/gcc/config/rs6000/darwin.h Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/config/rs6000/darwin.h Tue Jun 28 08:54:27 2022 *************** *** 203,209 **** /* Make both r2 and r13 available for allocation. */ #define FIXED_R2 0 ! #define FIXED_R13 0 /* Base register for access to local variables of the function. */ --- 203,209 ---- /* Make both r2 and r13 available for allocation. */ #define FIXED_R2 0 ! #define FIXED_R13 TARGET_64BIT /* Base register for access to local variables of the function. */ *************** *** 213,218 **** --- 213,221 ---- #undef RS6000_PIC_OFFSET_TABLE_REGNUM #define RS6000_PIC_OFFSET_TABLE_REGNUM 31 + #undef FIRST_SAVED_GP_REGNO + #define FIRST_SAVED_GP_REGNO 13 + /* Darwin's stack must remain 16-byte aligned for both 32 and 64 bit ABIs. */ diff -Nrcpad gcc-10.3.0/gcc/config/rs6000/darwin.md gcc-10.4.0/gcc/config/rs6000/darwin.md *** gcc-10.3.0/gcc/config/rs6000/darwin.md Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/config/rs6000/darwin.md Tue Jun 28 08:54:27 2022 *************** You should have received a copy of the G *** 121,141 **** stw %0,lo16(%2)(%1)" [(set_attr "type" "store")]) - ;; 64-bit MachO load/store support - ;; Mach-O PIC. (define_insn "@macho_high_" [(set (match_operand:P 0 "gpc_reg_operand" "=b*r") (high:P (match_operand 1 "" "")))] ! "TARGET_MACHO && (DEFAULT_ABI == ABI_DARWIN)" "lis %0,ha16(%1)") (define_insn "@macho_low_" [(set (match_operand:P 0 "gpc_reg_operand" "=r") (lo_sum:P (match_operand:P 1 "gpc_reg_operand" "b") (match_operand 2 "" "")))] ! "TARGET_MACHO && (DEFAULT_ABI == ABI_DARWIN)" "la %0,lo16(%2)(%1)") (define_split --- 121,152 ---- stw %0,lo16(%2)(%1)" [(set_attr "type" "store")]) ;; Mach-O PIC. (define_insn "@macho_high_" [(set (match_operand:P 0 "gpc_reg_operand" "=b*r") (high:P (match_operand 1 "" "")))] ! "TARGET_MACHO && (DEFAULT_ABI == ABI_DARWIN) && !flag_pic" "lis %0,ha16(%1)") (define_insn "@macho_low_" [(set (match_operand:P 0 "gpc_reg_operand" "=r") (lo_sum:P (match_operand:P 1 "gpc_reg_operand" "b") (match_operand 2 "" "")))] ! "TARGET_MACHO && (DEFAULT_ABI == ABI_DARWIN) && !flag_pic" ! "la %0,lo16(%2)(%1)") ! ! (define_insn "@machopic_high_" ! [(set (match_operand:P 0 "gpc_reg_operand" "=b*r") ! (high:P (match_operand 1 "macho_pic_address" "")))] ! "TARGET_MACHO && flag_pic" ! "lis %0,ha16(%1)") ! ! (define_insn "@machopic_low_" ! [(set (match_operand:P 0 "gpc_reg_operand" "=r") ! (lo_sum:P (match_operand:P 1 "gpc_reg_operand" "b") ! (match_operand 2 "macho_pic_address" "")))] ! "TARGET_MACHO && flag_pic" "la %0,lo16(%2)(%1)") (define_split diff -Nrcpad gcc-10.3.0/gcc/config/rs6000/emmintrin.h gcc-10.4.0/gcc/config/rs6000/emmintrin.h *** gcc-10.3.0/gcc/config/rs6000/emmintrin.h Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/config/rs6000/emmintrin.h Tue Jun 28 08:54:27 2022 *************** _mm_setzero_pd (void) *** 141,149 **** extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_move_sd (__m128d __A, __m128d __B) { ! __v2df result = (__v2df) __A; ! result [0] = ((__v2df) __B)[0]; ! return (__m128d) result; } /* Load two DPFP values from P. The address must be 16-byte aligned. */ --- 141,149 ---- extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_move_sd (__m128d __A, __m128d __B) { ! __v2df __result = (__v2df) __A; ! __result [0] = ((__v2df) __B)[0]; ! return (__m128d) __result; } /* Load two DPFP values from P. The address must be 16-byte aligned. */ *************** _mm_sqrt_pd (__m128d __A) *** 329,337 **** extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_sqrt_sd (__m128d __A, __m128d __B) { ! __v2df c; ! c = vec_sqrt ((__v2df) _mm_set1_pd (__B[0])); ! return (__m128d) _mm_setr_pd (c[0], __A[1]); } extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 329,337 ---- extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_sqrt_sd (__m128d __A, __m128d __B) { ! __v2df __c; ! __c = vec_sqrt ((__v2df) _mm_set1_pd (__B[0])); ! return (__m128d) _mm_setr_pd (__c[0], __A[1]); } extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** _mm_min_pd (__m128d __A, __m128d __B) *** 343,353 **** extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_min_sd (__m128d __A, __m128d __B) { ! __v2df a, b, c; ! a = vec_splats (__A[0]); ! b = vec_splats (__B[0]); ! c = vec_min (a, b); ! return (__m128d) _mm_setr_pd (c[0], __A[1]); } extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 343,353 ---- extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_min_sd (__m128d __A, __m128d __B) { ! __v2df __a, __b, __c; ! __a = vec_splats (__A[0]); ! __b = vec_splats (__B[0]); ! __c = vec_min (__a, __b); ! return (__m128d) _mm_setr_pd (__c[0], __A[1]); } extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** _mm_max_pd (__m128d __A, __m128d __B) *** 359,369 **** extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_max_sd (__m128d __A, __m128d __B) { ! __v2df a, b, c; ! a = vec_splats (__A[0]); ! b = vec_splats (__B[0]); ! c = vec_max (a, b); ! return (__m128d) _mm_setr_pd (c[0], __A[1]); } extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 359,369 ---- extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_max_sd (__m128d __A, __m128d __B) { ! __v2df __a, __b, __c; ! __a = vec_splats (__A[0]); ! __b = vec_splats (__B[0]); ! __c = vec_max (__a, __b); ! return (__m128d) _mm_setr_pd (__c[0], __A[1]); } extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** _mm_cmpge_pd (__m128d __A, __m128d __B) *** 399,406 **** extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cmpneq_pd (__m128d __A, __m128d __B) { ! __v2df temp = (__v2df) vec_cmpeq ((__v2df) __A, (__v2df)__B); ! return ((__m128d)vec_nor (temp, temp)); } extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 399,406 ---- extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cmpneq_pd (__m128d __A, __m128d __B) { ! __v2df __temp = (__v2df) vec_cmpeq ((__v2df) __A, (__v2df)__B); ! return ((__m128d)vec_nor (__temp, __temp)); } extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** _mm_cmpnge_pd (__m128d __A, __m128d __B) *** 427,452 **** return ((__m128d)vec_cmplt ((__v2df) __A, (__v2df) __B)); } extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cmpord_pd (__m128d __A, __m128d __B) { - #if _ARCH_PWR8 __v2du c, d; /* Compare against self will return false (0's) if NAN. */ c = (__v2du)vec_cmpeq (__A, __A); d = (__v2du)vec_cmpeq (__B, __B); - #else - __v2du a, b; - __v2du c, d; - const __v2du double_exp_mask = {0x7ff0000000000000, 0x7ff0000000000000}; - a = (__v2du)vec_abs ((__v2df)__A); - b = (__v2du)vec_abs ((__v2df)__B); - c = (__v2du)vec_cmpgt (double_exp_mask, a); - d = (__v2du)vec_cmpgt (double_exp_mask, b); - #endif /* A != NAN and B != NAN. */ return ((__m128d)vec_and(c, d)); } extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cmpunord_pd (__m128d __A, __m128d __B) --- 427,444 ---- return ((__m128d)vec_cmplt ((__v2df) __A, (__v2df) __B)); } + #if _ARCH_PWR8 extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cmpord_pd (__m128d __A, __m128d __B) { __v2du c, d; /* Compare against self will return false (0's) if NAN. */ c = (__v2du)vec_cmpeq (__A, __A); d = (__v2du)vec_cmpeq (__B, __B); /* A != NAN and B != NAN. */ return ((__m128d)vec_and(c, d)); } + #endif extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cmpunord_pd (__m128d __A, __m128d __B) *************** _mm_cmpnge_sd (__m128d __A, __m128d __B) *** 583,588 **** --- 575,581 ---- return (__m128d) _mm_setr_pd (c[0], __A[1]); } + #if _ARCH_PWR8 extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cmpord_sd (__m128d __A, __m128d __B) { *************** _mm_cmpord_sd (__m128d __A, __m128d __B) *** 590,595 **** --- 583,589 ---- r = (__v2df)_mm_cmpord_pd (vec_splats (__A[0]), vec_splats (__B[0])); return (__m128d) _mm_setr_pd (r[0], ((__v2df)__A)[1]); } + #endif extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cmpunord_sd (__m128d __A, __m128d __B) *************** _mm_setzero_si128 (void) *** 855,866 **** extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtepi32_pd (__m128i __A) { ! __v2di val; /* For LE need to generate Vector Unpack Low Signed Word. Which is generated from unpackh. */ ! val = (__v2di)vec_unpackh ((__v4si)__A); ! return (__m128d)vec_ctf (val, 0); } #endif --- 849,860 ---- extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtepi32_pd (__m128i __A) { ! __v2di __val; /* For LE need to generate Vector Unpack Low Signed Word. Which is generated from unpackh. */ ! __val = (__v2di)vec_unpackh ((__v4si)__A); ! return (__m128d)vec_ctf (__val, 0); } #endif *************** _mm_cvtepi32_ps (__m128i __A) *** 873,988 **** extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtpd_epi32 (__m128d __A) { ! __v2df rounded = vec_rint (__A); ! __v4si result, temp; ! const __v4si vzero = { 0, 0, 0, 0 }; /* VSX Vector truncate Double-Precision to integer and Convert to Signed Integer Word format with Saturate. */ __asm__( "xvcvdpsxws %x0,%x1" ! : "=wa" (temp) ! : "wa" (rounded) : ); #ifdef _ARCH_PWR8 #ifdef __LITTLE_ENDIAN__ ! temp = vec_mergeo (temp, temp); #else ! temp = vec_mergee (temp, temp); #endif ! result = (__v4si) vec_vpkudum ((__vector long long) temp, ! (__vector long long) vzero); #else { ! const __v16qu pkperm = {0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0a, 0x0b, 0x14, 0x15, 0x16, 0x17, 0x1c, 0x1d, 0x1e, 0x1f }; ! result = (__v4si) vec_perm ((__v16qu) temp, (__v16qu) vzero, pkperm); } #endif ! return (__m128i) result; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtpd_pi32 (__m128d __A) { ! __m128i result = _mm_cvtpd_epi32(__A); ! return (__m64) result[0]; } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtpd_ps (__m128d __A) { ! __v4sf result; ! __v4si temp; ! const __v4si vzero = { 0, 0, 0, 0 }; __asm__( "xvcvdpsp %x0,%x1" ! : "=wa" (temp) : "wa" (__A) : ); #ifdef _ARCH_PWR8 #ifdef __LITTLE_ENDIAN__ ! temp = vec_mergeo (temp, temp); #else ! temp = vec_mergee (temp, temp); #endif ! result = (__v4sf) vec_vpkudum ((__vector long long) temp, ! (__vector long long) vzero); #else { ! const __v16qu pkperm = {0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0a, 0x0b, 0x14, 0x15, 0x16, 0x17, 0x1c, 0x1d, 0x1e, 0x1f }; ! result = (__v4sf) vec_perm ((__v16qu) temp, (__v16qu) vzero, pkperm); } #endif ! return ((__m128)result); } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvttpd_epi32 (__m128d __A) { ! __v4si result; ! __v4si temp; ! const __v4si vzero = { 0, 0, 0, 0 }; /* VSX Vector truncate Double-Precision to integer and Convert to Signed Integer Word format with Saturate. */ __asm__( "xvcvdpsxws %x0,%x1" ! : "=wa" (temp) : "wa" (__A) : ); #ifdef _ARCH_PWR8 #ifdef __LITTLE_ENDIAN__ ! temp = vec_mergeo (temp, temp); #else ! temp = vec_mergee (temp, temp); #endif ! result = (__v4si) vec_vpkudum ((__vector long long) temp, ! (__vector long long) vzero); #else { ! const __v16qu pkperm = {0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0a, 0x0b, 0x14, 0x15, 0x16, 0x17, 0x1c, 0x1d, 0x1e, 0x1f }; ! result = (__v4si) vec_perm ((__v16qu) temp, (__v16qu) vzero, pkperm); } #endif ! return ((__m128i) result); } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvttpd_pi32 (__m128d __A) { ! __m128i result = _mm_cvttpd_epi32 (__A); ! return (__m64) result[0]; } extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 867,982 ---- extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtpd_epi32 (__m128d __A) { ! __v2df __rounded = vec_rint (__A); ! __v4si __result, __temp; ! const __v4si __vzero = { 0, 0, 0, 0 }; /* VSX Vector truncate Double-Precision to integer and Convert to Signed Integer Word format with Saturate. */ __asm__( "xvcvdpsxws %x0,%x1" ! : "=wa" (__temp) ! : "wa" (__rounded) : ); #ifdef _ARCH_PWR8 #ifdef __LITTLE_ENDIAN__ ! __temp = vec_mergeo (__temp, __temp); #else ! __temp = vec_mergee (__temp, __temp); #endif ! __result = (__v4si) vec_vpkudum ((__vector long long) __temp, ! (__vector long long) __vzero); #else { ! const __v16qu __pkperm = {0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0a, 0x0b, 0x14, 0x15, 0x16, 0x17, 0x1c, 0x1d, 0x1e, 0x1f }; ! __result = (__v4si) vec_perm ((__v16qu) __temp, (__v16qu) __vzero, __pkperm); } #endif ! return (__m128i) __result; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtpd_pi32 (__m128d __A) { ! __m128i __result = _mm_cvtpd_epi32(__A); ! return (__m64) __result[0]; } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtpd_ps (__m128d __A) { ! __v4sf __result; ! __v4si __temp; ! const __v4si __vzero = { 0, 0, 0, 0 }; __asm__( "xvcvdpsp %x0,%x1" ! : "=wa" (__temp) : "wa" (__A) : ); #ifdef _ARCH_PWR8 #ifdef __LITTLE_ENDIAN__ ! __temp = vec_mergeo (__temp, __temp); #else ! __temp = vec_mergee (__temp, __temp); #endif ! __result = (__v4sf) vec_vpkudum ((__vector long long) __temp, ! (__vector long long) __vzero); #else { ! const __v16qu __pkperm = {0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0a, 0x0b, 0x14, 0x15, 0x16, 0x17, 0x1c, 0x1d, 0x1e, 0x1f }; ! __result = (__v4sf) vec_perm ((__v16qu) __temp, (__v16qu) __vzero, __pkperm); } #endif ! return ((__m128)__result); } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvttpd_epi32 (__m128d __A) { ! __v4si __result; ! __v4si __temp; ! const __v4si __vzero = { 0, 0, 0, 0 }; /* VSX Vector truncate Double-Precision to integer and Convert to Signed Integer Word format with Saturate. */ __asm__( "xvcvdpsxws %x0,%x1" ! : "=wa" (__temp) : "wa" (__A) : ); #ifdef _ARCH_PWR8 #ifdef __LITTLE_ENDIAN__ ! __temp = vec_mergeo (__temp, __temp); #else ! __temp = vec_mergee (__temp, __temp); #endif ! __result = (__v4si) vec_vpkudum ((__vector long long) __temp, ! (__vector long long) __vzero); #else { ! const __v16qu __pkperm = {0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0a, 0x0b, 0x14, 0x15, 0x16, 0x17, 0x1c, 0x1d, 0x1e, 0x1f }; ! __result = (__v4si) vec_perm ((__v16qu) __temp, (__v16qu) __vzero, __pkperm); } #endif ! return ((__m128i) __result); } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvttpd_pi32 (__m128d __A) { ! __m128i __result = _mm_cvttpd_epi32 (__A); ! return (__m64) __result[0]; } extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** _mm_cvtsi128_si32 (__m128i __A) *** 995,1029 **** extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtpi32_pd (__m64 __A) { ! __v4si temp; ! __v2di tmp2; ! __v2df result; ! temp = (__v4si)vec_splats (__A); ! tmp2 = (__v2di)vec_unpackl (temp); ! result = vec_ctf ((__vector signed long long) tmp2, 0); ! return (__m128d)result; } #endif extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtps_epi32 (__m128 __A) { ! __v4sf rounded; ! __v4si result; ! rounded = vec_rint((__v4sf) __A); ! result = vec_cts (rounded, 0); ! return (__m128i) result; } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvttps_epi32 (__m128 __A) { ! __v4si result; ! result = vec_cts ((__v4sf) __A, 0); ! return (__m128i) result; } extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 989,1023 ---- extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtpi32_pd (__m64 __A) { ! __v4si __temp; ! __v2di __tmp2; ! __v2df __result; ! __temp = (__v4si)vec_splats (__A); ! __tmp2 = (__v2di)vec_unpackl (__temp); ! __result = vec_ctf ((__vector signed long long) __tmp2, 0); ! return (__m128d)__result; } #endif extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtps_epi32 (__m128 __A) { ! __v4sf __rounded; ! __v4si __result; ! __rounded = vec_rint((__v4sf) __A); ! __result = vec_cts (__rounded, 0); ! return (__m128i) __result; } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvttps_epi32 (__m128 __A) { ! __v4si __result; ! __result = vec_cts ((__v4sf) __A, 0); ! return (__m128i) __result; } extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** _mm_cvtps_pd (__m128 __A) *** 1035,1082 **** #else /* Otherwise the compiler is not current and so need to generate the equivalent code. */ ! __v4sf a = (__v4sf)__A; ! __v4sf temp; ! __v2df result; #ifdef __LITTLE_ENDIAN__ /* The input float values are in elements {[0], [1]} but the convert instruction needs them in elements {[1], [3]}, So we use two shift left double vector word immediates to get the elements lined up. */ ! temp = __builtin_vsx_xxsldwi (a, a, 3); ! temp = __builtin_vsx_xxsldwi (a, temp, 2); #else /* The input float values are in elements {[0], [1]} but the convert instruction needs them in elements {[0], [2]}, So we use two shift left double vector word immediates to get the elements lined up. */ ! temp = vec_vmrghw (a, a); #endif __asm__( " xvcvspdp %x0,%x1" ! : "=wa" (result) ! : "wa" (temp) : ); ! return (__m128d) result; #endif } extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtsd_si32 (__m128d __A) { ! __v2df rounded = vec_rint((__v2df) __A); ! int result = ((__v2df)rounded)[0]; ! return result; } /* Intel intrinsic. */ extern __inline long long __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtsd_si64 (__m128d __A) { ! __v2df rounded = vec_rint ((__v2df) __A ); ! long long result = ((__v2df) rounded)[0]; ! return result; } /* Microsoft intrinsic. */ --- 1029,1076 ---- #else /* Otherwise the compiler is not current and so need to generate the equivalent code. */ ! __v4sf __a = (__v4sf)__A; ! __v4sf __temp; ! __v2df __result; #ifdef __LITTLE_ENDIAN__ /* The input float values are in elements {[0], [1]} but the convert instruction needs them in elements {[1], [3]}, So we use two shift left double vector word immediates to get the elements lined up. */ ! __temp = __builtin_vsx_xxsldwi (__a, __a, 3); ! __temp = __builtin_vsx_xxsldwi (__a, __temp, 2); #else /* The input float values are in elements {[0], [1]} but the convert instruction needs them in elements {[0], [2]}, So we use two shift left double vector word immediates to get the elements lined up. */ ! __temp = vec_vmrghw (__a, __a); #endif __asm__( " xvcvspdp %x0,%x1" ! : "=wa" (__result) ! : "wa" (__temp) : ); ! return (__m128d) __result; #endif } extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtsd_si32 (__m128d __A) { ! __v2df __rounded = vec_rint((__v2df) __A); ! int __result = ((__v2df)__rounded)[0]; ! return __result; } /* Intel intrinsic. */ extern __inline long long __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtsd_si64 (__m128d __A) { ! __v2df __rounded = vec_rint ((__v2df) __A ); ! long long __result = ((__v2df) __rounded)[0]; ! return __result; } /* Microsoft intrinsic. */ *************** _mm_cvtsd_si64x (__m128d __A) *** 1089,1106 **** extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvttsd_si32 (__m128d __A) { ! int result = ((__v2df)__A)[0]; ! return result; } /* Intel intrinsic. */ extern __inline long long __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvttsd_si64 (__m128d __A) { ! long long result = ((__v2df)__A)[0]; ! return result; } /* Microsoft intrinsic. */ --- 1083,1100 ---- extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvttsd_si32 (__m128d __A) { ! int __result = ((__v2df)__A)[0]; ! return __result; } /* Intel intrinsic. */ extern __inline long long __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvttsd_si64 (__m128d __A) { ! long long __result = ((__v2df)__A)[0]; ! return __result; } /* Microsoft intrinsic. */ *************** _mm_cvttsd_si64x (__m128d __A) *** 1113,1158 **** extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtsd_ss (__m128 __A, __m128d __B) { ! __v4sf result = (__v4sf)__A; #ifdef __LITTLE_ENDIAN__ ! __v4sf temp_s; /* Copy double element[0] to element [1] for conversion. */ ! __v2df temp_b = vec_splat((__v2df)__B, 0); /* Pre-rotate __A left 3 (logically right 1) elements. */ ! result = __builtin_vsx_xxsldwi (result, result, 3); /* Convert double to single float scalar in a vector. */ __asm__( "xscvdpsp %x0,%x1" ! : "=wa" (temp_s) ! : "wa" (temp_b) : ); /* Shift the resulting scalar into vector element [0]. */ ! result = __builtin_vsx_xxsldwi (result, temp_s, 1); #else ! result [0] = ((__v2df)__B)[0]; #endif ! return (__m128) result; } extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtsi32_sd (__m128d __A, int __B) { ! __v2df result = (__v2df)__A; ! double db = __B; ! result [0] = db; ! return (__m128d)result; } /* Intel intrinsic. */ extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtsi64_sd (__m128d __A, long long __B) { ! __v2df result = (__v2df)__A; ! double db = __B; ! result [0] = db; ! return (__m128d)result; } /* Microsoft intrinsic. */ --- 1107,1152 ---- extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtsd_ss (__m128 __A, __m128d __B) { ! __v4sf __result = (__v4sf)__A; #ifdef __LITTLE_ENDIAN__ ! __v4sf __temp_s; /* Copy double element[0] to element [1] for conversion. */ ! __v2df __temp_b = vec_splat((__v2df)__B, 0); /* Pre-rotate __A left 3 (logically right 1) elements. */ ! __result = __builtin_vsx_xxsldwi (__result, __result, 3); /* Convert double to single float scalar in a vector. */ __asm__( "xscvdpsp %x0,%x1" ! : "=wa" (__temp_s) ! : "wa" (__temp_b) : ); /* Shift the resulting scalar into vector element [0]. */ ! __result = __builtin_vsx_xxsldwi (__result, __temp_s, 1); #else ! __result [0] = ((__v2df)__B)[0]; #endif ! return (__m128) __result; } extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtsi32_sd (__m128d __A, int __B) { ! __v2df __result = (__v2df)__A; ! double __db = __B; ! __result [0] = __db; ! return (__m128d)__result; } /* Intel intrinsic. */ extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtsi64_sd (__m128d __A, long long __B) { ! __v2df __result = (__v2df)__A; ! double __db = __B; ! __result [0] = __db; ! return (__m128d)__result; } /* Microsoft intrinsic. */ *************** _mm_cvtss_sd (__m128d __A, __m128 __B) *** 1167,1211 **** { #ifdef __LITTLE_ENDIAN__ /* Use splat to move element [0] into position for the convert. */ ! __v4sf temp = vec_splat ((__v4sf)__B, 0); ! __v2df res; /* Convert single float scalar to double in a vector. */ __asm__( "xscvspdp %x0,%x1" ! : "=wa" (res) ! : "wa" (temp) : ); ! return (__m128d) vec_mergel (res, (__v2df)__A); #else ! __v2df res = (__v2df)__A; ! res [0] = ((__v4sf)__B) [0]; ! return (__m128d) res; #endif } extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_shuffle_pd(__m128d __A, __m128d __B, const int __mask) { ! __vector double result; ! const int litmsk = __mask & 0x3; ! if (litmsk == 0) ! result = vec_mergeh (__A, __B); #if __GNUC__ < 6 ! else if (litmsk == 1) ! result = vec_xxpermdi (__B, __A, 2); ! else if (litmsk == 2) ! result = vec_xxpermdi (__B, __A, 1); #else ! else if (litmsk == 1) ! result = vec_xxpermdi (__A, __B, 2); ! else if (litmsk == 2) ! result = vec_xxpermdi (__A, __B, 1); #endif else ! result = vec_mergel (__A, __B); ! return result; } extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 1161,1205 ---- { #ifdef __LITTLE_ENDIAN__ /* Use splat to move element [0] into position for the convert. */ ! __v4sf __temp = vec_splat ((__v4sf)__B, 0); ! __v2df __res; /* Convert single float scalar to double in a vector. */ __asm__( "xscvspdp %x0,%x1" ! : "=wa" (__res) ! : "wa" (__temp) : ); ! return (__m128d) vec_mergel (__res, (__v2df)__A); #else ! __v2df __res = (__v2df)__A; ! __res [0] = ((__v4sf)__B) [0]; ! return (__m128d) __res; #endif } extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_shuffle_pd(__m128d __A, __m128d __B, const int __mask) { ! __vector double __result; ! const int __litmsk = __mask & 0x3; ! if (__litmsk == 0) ! __result = vec_mergeh (__A, __B); #if __GNUC__ < 6 ! else if (__litmsk == 1) ! __result = vec_xxpermdi (__B, __A, 2); ! else if (__litmsk == 2) ! __result = vec_xxpermdi (__B, __A, 1); #else ! else if (__litmsk == 1) ! __result = vec_xxpermdi (__A, __B, 2); ! else if (__litmsk == 2) ! __result = vec_xxpermdi (__A, __B, 1); #endif else ! __result = vec_mergel (__A, __B); ! return __result; } extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** _mm_unpacklo_pd (__m128d __A, __m128d __ *** 1223,1239 **** extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_loadh_pd (__m128d __A, double const *__B) { ! __v2df result = (__v2df)__A; ! result [1] = *__B; ! return (__m128d)result; } extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_loadl_pd (__m128d __A, double const *__B) { ! __v2df result = (__v2df)__A; ! result [0] = *__B; ! return (__m128d)result; } #ifdef _ARCH_PWR8 --- 1217,1233 ---- extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_loadh_pd (__m128d __A, double const *__B) { ! __v2df __result = (__v2df)__A; ! __result [1] = *__B; ! return (__m128d)__result; } extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_loadl_pd (__m128d __A, double const *__B) { ! __v2df __result = (__v2df)__A; ! __result [0] = *__B; ! return (__m128d)__result; } #ifdef _ARCH_PWR8 *************** _mm_loadl_pd (__m128d __A, double const *** 1243,1250 **** extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_movemask_pd (__m128d __A) { ! __vector unsigned long long result; ! static const __vector unsigned int perm_mask = { #ifdef __LITTLE_ENDIAN__ 0x80800040, 0x80808080, 0x80808080, 0x80808080 --- 1237,1244 ---- extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_movemask_pd (__m128d __A) { ! __vector unsigned long long __result; ! static const __vector unsigned int __perm_mask = { #ifdef __LITTLE_ENDIAN__ 0x80800040, 0x80808080, 0x80808080, 0x80808080 *************** _mm_movemask_pd (__m128d __A) *** 1253,1266 **** #endif }; ! result = ((__vector unsigned long long) vec_vbpermq ((__vector unsigned char) __A, ! (__vector unsigned char) perm_mask)); #ifdef __LITTLE_ENDIAN__ ! return result[1]; #else ! return result[0]; #endif } #endif /* _ARCH_PWR8 */ --- 1247,1260 ---- #endif }; ! __result = ((__vector unsigned long long) vec_vbpermq ((__vector unsigned char) __A, ! (__vector unsigned char) __perm_mask)); #ifdef __LITTLE_ENDIAN__ ! return __result[1]; #else ! return __result[0]; #endif } #endif /* _ARCH_PWR8 */ *************** _mm_subs_epu16 (__m128i __A, __m128i __B *** 1432,1448 **** extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_madd_epi16 (__m128i __A, __m128i __B) { ! __vector signed int zero = {0, 0, 0, 0}; ! return (__m128i) vec_vmsumshm ((__v8hi)__A, (__v8hi)__B, zero); } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_mulhi_epi16 (__m128i __A, __m128i __B) { ! __vector signed int w0, w1; ! __vector unsigned char xform1 = { #ifdef __LITTLE_ENDIAN__ 0x02, 0x03, 0x12, 0x13, 0x06, 0x07, 0x16, 0x17, 0x0A, 0x0B, 0x1A, 0x1B, 0x0E, 0x0F, 0x1E, 0x1F --- 1426,1442 ---- extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_madd_epi16 (__m128i __A, __m128i __B) { ! __vector signed int __zero = {0, 0, 0, 0}; ! return (__m128i) vec_vmsumshm ((__v8hi)__A, (__v8hi)__B, __zero); } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_mulhi_epi16 (__m128i __A, __m128i __B) { ! __vector signed int __w0, __w1; ! __vector unsigned char __xform1 = { #ifdef __LITTLE_ENDIAN__ 0x02, 0x03, 0x12, 0x13, 0x06, 0x07, 0x16, 0x17, 0x0A, 0x0B, 0x1A, 0x1B, 0x0E, 0x0F, 0x1E, 0x1F *************** _mm_mulhi_epi16 (__m128i __A, __m128i __ *** 1452,1460 **** #endif }; ! w0 = vec_vmulesh ((__v8hi)__A, (__v8hi)__B); ! w1 = vec_vmulosh ((__v8hi)__A, (__v8hi)__B); ! return (__m128i) vec_perm (w0, w1, xform1); } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 1446,1454 ---- #endif }; ! __w0 = vec_vmulesh ((__v8hi)__A, (__v8hi)__B); ! __w1 = vec_vmulosh ((__v8hi)__A, (__v8hi)__B); ! return (__m128i) vec_perm (__w0, __w1, __xform1); } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** _mm_mullo_epi16 (__m128i __A, __m128i __ *** 1466,1499 **** extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_mul_su32 (__m64 __A, __m64 __B) { ! unsigned int a = __A; ! unsigned int b = __B; ! return ((__m64)a * (__m64)b); } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_mul_epu32 (__m128i __A, __m128i __B) { ! #if __GNUC__ < 8 ! __v2du result; #ifdef __LITTLE_ENDIAN__ /* VMX Vector Multiply Odd Unsigned Word. */ __asm__( "vmulouw %0,%1,%2" ! : "=v" (result) : "v" (__A), "v" (__B) : ); #else /* VMX Vector Multiply Even Unsigned Word. */ __asm__( "vmuleuw %0,%1,%2" ! : "=v" (result) : "v" (__A), "v" (__B) : ); #endif ! return (__m128i) result; #else return (__m128i) vec_mule ((__v4su)__A, (__v4su)__B); #endif --- 1460,1493 ---- extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_mul_su32 (__m64 __A, __m64 __B) { ! unsigned int __a = __A; ! unsigned int __b = __B; ! return ((__m64)__a * (__m64)__b); } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_mul_epu32 (__m128i __A, __m128i __B) { ! #if __GNUC__ < 8 || !defined (_ARCH_PWR8) ! __v2du __result; #ifdef __LITTLE_ENDIAN__ /* VMX Vector Multiply Odd Unsigned Word. */ __asm__( "vmulouw %0,%1,%2" ! : "=v" (__result) : "v" (__A), "v" (__B) : ); #else /* VMX Vector Multiply Even Unsigned Word. */ __asm__( "vmuleuw %0,%1,%2" ! : "=v" (__result) : "v" (__A), "v" (__B) : ); #endif ! return (__m128i) __result; #else return (__m128i) vec_mule ((__v4su)__A, (__v4su)__B); #endif *************** _mm_mul_epu32 (__m128i __A, __m128i __B) *** 1502,1623 **** extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_slli_epi16 (__m128i __A, int __B) { ! __v8hu lshift; ! __v8hi result = { 0, 0, 0, 0, 0, 0, 0, 0 }; if (__B >= 0 && __B < 16) { if (__builtin_constant_p(__B)) ! lshift = (__v8hu) vec_splat_s16(__B); else ! lshift = vec_splats ((unsigned short) __B); ! result = vec_sl ((__v8hi) __A, lshift); } ! return (__m128i) result; } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_slli_epi32 (__m128i __A, int __B) { ! __v4su lshift; ! __v4si result = { 0, 0, 0, 0 }; if (__B >= 0 && __B < 32) { if (__builtin_constant_p(__B) && __B < 16) ! lshift = (__v4su) vec_splat_s32(__B); else ! lshift = vec_splats ((unsigned int) __B); ! result = vec_sl ((__v4si) __A, lshift); } ! return (__m128i) result; } #ifdef _ARCH_PWR8 extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_slli_epi64 (__m128i __A, int __B) { ! __v2du lshift; ! __v2di result = { 0, 0 }; if (__B >= 0 && __B < 64) { if (__builtin_constant_p(__B) && __B < 16) ! lshift = (__v2du) vec_splat_s32(__B); else ! lshift = (__v2du) vec_splats ((unsigned int) __B); ! result = vec_sl ((__v2di) __A, lshift); } ! return (__m128i) result; } #endif extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_srai_epi16 (__m128i __A, int __B) { ! __v8hu rshift = { 15, 15, 15, 15, 15, 15, 15, 15 }; ! __v8hi result; if (__B < 16) { if (__builtin_constant_p(__B)) ! rshift = (__v8hu) vec_splat_s16(__B); else ! rshift = vec_splats ((unsigned short) __B); } ! result = vec_sra ((__v8hi) __A, rshift); ! return (__m128i) result; } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_srai_epi32 (__m128i __A, int __B) { ! __v4su rshift = { 31, 31, 31, 31 }; ! __v4si result; if (__B < 32) { if (__builtin_constant_p(__B)) { if (__B < 16) ! rshift = (__v4su) vec_splat_s32(__B); else ! rshift = (__v4su) vec_splats((unsigned int)__B); } else ! rshift = vec_splats ((unsigned int) __B); } ! result = vec_sra ((__v4si) __A, rshift); ! return (__m128i) result; } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_bslli_si128 (__m128i __A, const int __N) { ! __v16qu result; ! const __v16qu zeros = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; if (__N < 16) ! result = vec_sld ((__v16qu) __A, zeros, __N); else ! result = zeros; ! return (__m128i) result; } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_bsrli_si128 (__m128i __A, const int __N) { ! __v16qu result; ! const __v16qu zeros = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; if (__N < 16) #ifdef __LITTLE_ENDIAN__ --- 1496,1617 ---- extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_slli_epi16 (__m128i __A, int __B) { ! __v8hu __lshift; ! __v8hi __result = { 0, 0, 0, 0, 0, 0, 0, 0 }; if (__B >= 0 && __B < 16) { if (__builtin_constant_p(__B)) ! __lshift = (__v8hu) vec_splat_s16(__B); else ! __lshift = vec_splats ((unsigned short) __B); ! __result = vec_sl ((__v8hi) __A, __lshift); } ! return (__m128i) __result; } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_slli_epi32 (__m128i __A, int __B) { ! __v4su __lshift; ! __v4si __result = { 0, 0, 0, 0 }; if (__B >= 0 && __B < 32) { if (__builtin_constant_p(__B) && __B < 16) ! __lshift = (__v4su) vec_splat_s32(__B); else ! __lshift = vec_splats ((unsigned int) __B); ! __result = vec_sl ((__v4si) __A, __lshift); } ! return (__m128i) __result; } #ifdef _ARCH_PWR8 extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_slli_epi64 (__m128i __A, int __B) { ! __v2du __lshift; ! __v2di __result = { 0, 0 }; if (__B >= 0 && __B < 64) { if (__builtin_constant_p(__B) && __B < 16) ! __lshift = (__v2du) vec_splat_s32(__B); else ! __lshift = (__v2du) vec_splats ((unsigned int) __B); ! __result = vec_sl ((__v2di) __A, __lshift); } ! return (__m128i) __result; } #endif extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_srai_epi16 (__m128i __A, int __B) { ! __v8hu __rshift = { 15, 15, 15, 15, 15, 15, 15, 15 }; ! __v8hi __result; if (__B < 16) { if (__builtin_constant_p(__B)) ! __rshift = (__v8hu) vec_splat_s16(__B); else ! __rshift = vec_splats ((unsigned short) __B); } ! __result = vec_sra ((__v8hi) __A, __rshift); ! return (__m128i) __result; } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_srai_epi32 (__m128i __A, int __B) { ! __v4su __rshift = { 31, 31, 31, 31 }; ! __v4si __result; if (__B < 32) { if (__builtin_constant_p(__B)) { if (__B < 16) ! __rshift = (__v4su) vec_splat_s32(__B); else ! __rshift = (__v4su) vec_splats((unsigned int)__B); } else ! __rshift = vec_splats ((unsigned int) __B); } ! __result = vec_sra ((__v4si) __A, __rshift); ! return (__m128i) __result; } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_bslli_si128 (__m128i __A, const int __N) { ! __v16qu __result; ! const __v16qu __zeros = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; if (__N < 16) ! __result = vec_sld ((__v16qu) __A, __zeros, __N); else ! __result = __zeros; ! return (__m128i) __result; } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_bsrli_si128 (__m128i __A, const int __N) { ! __v16qu __result; ! const __v16qu __zeros = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; if (__N < 16) #ifdef __LITTLE_ENDIAN__ *************** _mm_bsrli_si128 (__m128i __A, const int *** 1625,1645 **** /* Would like to use Vector Shift Left Double by Octet Immediate here to use the immediate form and avoid load of __N * 8 value into a separate VR. */ ! result = vec_sld (zeros, (__v16qu) __A, (16 - __N)); else #endif { ! __v16qu shift = vec_splats((unsigned char)(__N*8)); #ifdef __LITTLE_ENDIAN__ ! result = vec_sro ((__v16qu)__A, shift); #else ! result = vec_slo ((__v16qu)__A, shift); #endif } else ! result = zeros; ! return (__m128i) result; } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 1619,1639 ---- /* Would like to use Vector Shift Left Double by Octet Immediate here to use the immediate form and avoid load of __N * 8 value into a separate VR. */ ! __result = vec_sld (__zeros, (__v16qu) __A, (16 - __N)); else #endif { ! __v16qu __shift = vec_splats((unsigned char)(__N*8)); #ifdef __LITTLE_ENDIAN__ ! __result = vec_sro ((__v16qu)__A, __shift); #else ! __result = vec_slo ((__v16qu)__A, __shift); #endif } else ! __result = __zeros; ! return (__m128i) __result; } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** _mm_srli_si128 (__m128i __A, const int _ *** 1651,1889 **** extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_slli_si128 (__m128i __A, const int _imm5) { ! __v16qu result; ! const __v16qu zeros = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; if (_imm5 < 16) #ifdef __LITTLE_ENDIAN__ ! result = vec_sld ((__v16qu) __A, zeros, _imm5); #else ! result = vec_sld (zeros, (__v16qu) __A, (16 - _imm5)); #endif else ! result = zeros; ! return (__m128i) result; } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_srli_epi16 (__m128i __A, int __B) { ! __v8hu rshift; ! __v8hi result = { 0, 0, 0, 0, 0, 0, 0, 0 }; if (__B < 16) { if (__builtin_constant_p(__B)) ! rshift = (__v8hu) vec_splat_s16(__B); else ! rshift = vec_splats ((unsigned short) __B); ! result = vec_sr ((__v8hi) __A, rshift); } ! return (__m128i) result; } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_srli_epi32 (__m128i __A, int __B) { ! __v4su rshift; ! __v4si result = { 0, 0, 0, 0 }; if (__B < 32) { if (__builtin_constant_p(__B)) { if (__B < 16) ! rshift = (__v4su) vec_splat_s32(__B); else ! rshift = (__v4su) vec_splats((unsigned int)__B); } else ! rshift = vec_splats ((unsigned int) __B); ! result = vec_sr ((__v4si) __A, rshift); } ! return (__m128i) result; } #ifdef _ARCH_PWR8 extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_srli_epi64 (__m128i __A, int __B) { ! __v2du rshift; ! __v2di result = { 0, 0 }; if (__B < 64) { if (__builtin_constant_p(__B)) { if (__B < 16) ! rshift = (__v2du) vec_splat_s32(__B); else ! rshift = (__v2du) vec_splats((unsigned long long)__B); } else ! rshift = (__v2du) vec_splats ((unsigned int) __B); ! result = vec_sr ((__v2di) __A, rshift); } ! return (__m128i) result; } #endif extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_sll_epi16 (__m128i __A, __m128i __B) { ! __v8hu lshift; ! __vector __bool short shmask; ! const __v8hu shmax = { 15, 15, 15, 15, 15, 15, 15, 15 }; ! __v8hu result; #ifdef __LITTLE_ENDIAN__ ! lshift = vec_splat ((__v8hu) __B, 0); #else ! lshift = vec_splat ((__v8hu) __B, 3); #endif ! shmask = vec_cmple (lshift, shmax); ! result = vec_sl ((__v8hu) __A, lshift); ! result = vec_sel ((__v8hu) shmask, result, shmask); ! return (__m128i) result; } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_sll_epi32 (__m128i __A, __m128i __B) { ! __v4su lshift; ! __vector __bool int shmask; ! const __v4su shmax = { 32, 32, 32, 32 }; ! __v4su result; #ifdef __LITTLE_ENDIAN__ ! lshift = vec_splat ((__v4su) __B, 0); #else ! lshift = vec_splat ((__v4su) __B, 1); #endif ! shmask = vec_cmplt (lshift, shmax); ! result = vec_sl ((__v4su) __A, lshift); ! result = vec_sel ((__v4su) shmask, result, shmask); ! return (__m128i) result; } #ifdef _ARCH_PWR8 extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_sll_epi64 (__m128i __A, __m128i __B) { ! __v2du lshift; ! __vector __bool long long shmask; ! const __v2du shmax = { 64, 64 }; ! __v2du result; ! lshift = vec_splat ((__v2du) __B, 0); ! shmask = vec_cmplt (lshift, shmax); ! result = vec_sl ((__v2du) __A, lshift); ! result = vec_sel ((__v2du) shmask, result, shmask); ! return (__m128i) result; } #endif extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_sra_epi16 (__m128i __A, __m128i __B) { ! const __v8hu rshmax = { 15, 15, 15, 15, 15, 15, 15, 15 }; ! __v8hu rshift; ! __v8hi result; #ifdef __LITTLE_ENDIAN__ ! rshift = vec_splat ((__v8hu)__B, 0); #else ! rshift = vec_splat ((__v8hu)__B, 3); #endif ! rshift = vec_min (rshift, rshmax); ! result = vec_sra ((__v8hi) __A, rshift); ! return (__m128i) result; } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_sra_epi32 (__m128i __A, __m128i __B) { ! const __v4su rshmax = { 31, 31, 31, 31 }; ! __v4su rshift; ! __v4si result; #ifdef __LITTLE_ENDIAN__ ! rshift = vec_splat ((__v4su)__B, 0); #else ! rshift = vec_splat ((__v4su)__B, 1); #endif ! rshift = vec_min (rshift, rshmax); ! result = vec_sra ((__v4si) __A, rshift); ! return (__m128i) result; } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_srl_epi16 (__m128i __A, __m128i __B) { ! __v8hu rshift; ! __vector __bool short shmask; ! const __v8hu shmax = { 15, 15, 15, 15, 15, 15, 15, 15 }; ! __v8hu result; #ifdef __LITTLE_ENDIAN__ ! rshift = vec_splat ((__v8hu) __B, 0); #else ! rshift = vec_splat ((__v8hu) __B, 3); #endif ! shmask = vec_cmple (rshift, shmax); ! result = vec_sr ((__v8hu) __A, rshift); ! result = vec_sel ((__v8hu) shmask, result, shmask); ! return (__m128i) result; } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_srl_epi32 (__m128i __A, __m128i __B) { ! __v4su rshift; ! __vector __bool int shmask; ! const __v4su shmax = { 32, 32, 32, 32 }; ! __v4su result; #ifdef __LITTLE_ENDIAN__ ! rshift = vec_splat ((__v4su) __B, 0); #else ! rshift = vec_splat ((__v4su) __B, 1); #endif ! shmask = vec_cmplt (rshift, shmax); ! result = vec_sr ((__v4su) __A, rshift); ! result = vec_sel ((__v4su) shmask, result, shmask); ! return (__m128i) result; } #ifdef _ARCH_PWR8 extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_srl_epi64 (__m128i __A, __m128i __B) { ! __v2du rshift; ! __vector __bool long long shmask; ! const __v2du shmax = { 64, 64 }; ! __v2du result; ! rshift = vec_splat ((__v2du) __B, 0); ! shmask = vec_cmplt (rshift, shmax); ! result = vec_sr ((__v2du) __A, rshift); ! result = vec_sel ((__v2du) shmask, result, shmask); ! return (__m128i) result; } #endif --- 1645,1883 ---- extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_slli_si128 (__m128i __A, const int _imm5) { ! __v16qu __result; ! const __v16qu __zeros = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; if (_imm5 < 16) #ifdef __LITTLE_ENDIAN__ ! __result = vec_sld ((__v16qu) __A, __zeros, _imm5); #else ! __result = vec_sld (__zeros, (__v16qu) __A, (16 - _imm5)); #endif else ! __result = __zeros; ! return (__m128i) __result; } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_srli_epi16 (__m128i __A, int __B) { ! __v8hu __rshift; ! __v8hi __result = { 0, 0, 0, 0, 0, 0, 0, 0 }; if (__B < 16) { if (__builtin_constant_p(__B)) ! __rshift = (__v8hu) vec_splat_s16(__B); else ! __rshift = vec_splats ((unsigned short) __B); ! __result = vec_sr ((__v8hi) __A, __rshift); } ! return (__m128i) __result; } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_srli_epi32 (__m128i __A, int __B) { ! __v4su __rshift; ! __v4si __result = { 0, 0, 0, 0 }; if (__B < 32) { if (__builtin_constant_p(__B)) { if (__B < 16) ! __rshift = (__v4su) vec_splat_s32(__B); else ! __rshift = (__v4su) vec_splats((unsigned int)__B); } else ! __rshift = vec_splats ((unsigned int) __B); ! __result = vec_sr ((__v4si) __A, __rshift); } ! return (__m128i) __result; } #ifdef _ARCH_PWR8 extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_srli_epi64 (__m128i __A, int __B) { ! __v2du __rshift; ! __v2di __result = { 0, 0 }; if (__B < 64) { if (__builtin_constant_p(__B)) { if (__B < 16) ! __rshift = (__v2du) vec_splat_s32(__B); else ! __rshift = (__v2du) vec_splats((unsigned long long)__B); } else ! __rshift = (__v2du) vec_splats ((unsigned int) __B); ! __result = vec_sr ((__v2di) __A, __rshift); } ! return (__m128i) __result; } #endif extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_sll_epi16 (__m128i __A, __m128i __B) { ! __v8hu __lshift; ! __vector __bool short __shmask; ! const __v8hu __shmax = { 15, 15, 15, 15, 15, 15, 15, 15 }; ! __v8hu __result; #ifdef __LITTLE_ENDIAN__ ! __lshift = vec_splat ((__v8hu) __B, 0); #else ! __lshift = vec_splat ((__v8hu) __B, 3); #endif ! __shmask = vec_cmple (__lshift, __shmax); ! __result = vec_sl ((__v8hu) __A, __lshift); ! __result = vec_sel ((__v8hu) __shmask, __result, __shmask); ! return (__m128i) __result; } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_sll_epi32 (__m128i __A, __m128i __B) { ! __v4su __lshift; ! __vector __bool int __shmask; ! const __v4su __shmax = { 32, 32, 32, 32 }; ! __v4su __result; #ifdef __LITTLE_ENDIAN__ ! __lshift = vec_splat ((__v4su) __B, 0); #else ! __lshift = vec_splat ((__v4su) __B, 1); #endif ! __shmask = vec_cmplt (__lshift, __shmax); ! __result = vec_sl ((__v4su) __A, __lshift); ! __result = vec_sel ((__v4su) __shmask, __result, __shmask); ! return (__m128i) __result; } #ifdef _ARCH_PWR8 extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_sll_epi64 (__m128i __A, __m128i __B) { ! __v2du __lshift; ! __vector __bool long long __shmask; ! const __v2du __shmax = { 64, 64 }; ! __v2du __result; ! __lshift = vec_splat ((__v2du) __B, 0); ! __shmask = vec_cmplt (__lshift, __shmax); ! __result = vec_sl ((__v2du) __A, __lshift); ! __result = vec_sel ((__v2du) __shmask, __result, __shmask); ! return (__m128i) __result; } #endif extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_sra_epi16 (__m128i __A, __m128i __B) { ! const __v8hu __rshmax = { 15, 15, 15, 15, 15, 15, 15, 15 }; ! __v8hu __rshift; ! __v8hi __result; #ifdef __LITTLE_ENDIAN__ ! __rshift = vec_splat ((__v8hu)__B, 0); #else ! __rshift = vec_splat ((__v8hu)__B, 3); #endif ! __rshift = vec_min (__rshift, __rshmax); ! __result = vec_sra ((__v8hi) __A, __rshift); ! return (__m128i) __result; } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_sra_epi32 (__m128i __A, __m128i __B) { ! const __v4su __rshmax = { 31, 31, 31, 31 }; ! __v4su __rshift; ! __v4si __result; #ifdef __LITTLE_ENDIAN__ ! __rshift = vec_splat ((__v4su)__B, 0); #else ! __rshift = vec_splat ((__v4su)__B, 1); #endif ! __rshift = vec_min (__rshift, __rshmax); ! __result = vec_sra ((__v4si) __A, __rshift); ! return (__m128i) __result; } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_srl_epi16 (__m128i __A, __m128i __B) { ! __v8hu __rshift; ! __vector __bool short __shmask; ! const __v8hu __shmax = { 15, 15, 15, 15, 15, 15, 15, 15 }; ! __v8hu __result; #ifdef __LITTLE_ENDIAN__ ! __rshift = vec_splat ((__v8hu) __B, 0); #else ! __rshift = vec_splat ((__v8hu) __B, 3); #endif ! __shmask = vec_cmple (__rshift, __shmax); ! __result = vec_sr ((__v8hu) __A, __rshift); ! __result = vec_sel ((__v8hu) __shmask, __result, __shmask); ! return (__m128i) __result; } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_srl_epi32 (__m128i __A, __m128i __B) { ! __v4su __rshift; ! __vector __bool int __shmask; ! const __v4su __shmax = { 32, 32, 32, 32 }; ! __v4su __result; #ifdef __LITTLE_ENDIAN__ ! __rshift = vec_splat ((__v4su) __B, 0); #else ! __rshift = vec_splat ((__v4su) __B, 1); #endif ! __shmask = vec_cmplt (__rshift, __shmax); ! __result = vec_sr ((__v4su) __A, __rshift); ! __result = vec_sel ((__v4su) __shmask, __result, __shmask); ! return (__m128i) __result; } #ifdef _ARCH_PWR8 extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_srl_epi64 (__m128i __A, __m128i __B) { ! __v2du __rshift; ! __vector __bool long long __shmask; ! const __v2du __shmax = { 64, 64 }; ! __v2du __result; ! __rshift = vec_splat ((__v2du) __B, 0); ! __shmask = vec_cmplt (__rshift, __shmax); ! __result = vec_sr ((__v2du) __A, __rshift); ! __result = vec_sel ((__v2du) __shmask, __result, __shmask); ! return (__m128i) __result; } #endif *************** _mm_extract_epi16 (__m128i const __A, in *** 1998,2008 **** extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_insert_epi16 (__m128i const __A, int const __D, int const __N) { ! __v8hi result = (__v8hi)__A; ! result [(__N & 7)] = __D; ! return (__m128i) result; } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 1992,2002 ---- extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_insert_epi16 (__m128i const __A, int const __D, int const __N) { ! __v8hi __result = (__v8hi)__A; ! __result [(__N & 7)] = __D; ! return (__m128i) __result; } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** _mm_min_epu8 (__m128i __A, __m128i __B) *** 2037,2057 **** extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_movemask_epi8 (__m128i __A) { ! __vector unsigned long long result; ! static const __vector unsigned char perm_mask = { 0x78, 0x70, 0x68, 0x60, 0x58, 0x50, 0x48, 0x40, 0x38, 0x30, 0x28, 0x20, 0x18, 0x10, 0x08, 0x00 }; ! result = ((__vector unsigned long long) vec_vbpermq ((__vector unsigned char) __A, ! (__vector unsigned char) perm_mask)); #ifdef __LITTLE_ENDIAN__ ! return result[1]; #else ! return result[0]; #endif } #endif /* _ARCH_PWR8 */ --- 2031,2051 ---- extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_movemask_epi8 (__m128i __A) { ! __vector unsigned long long __result; ! static const __vector unsigned char __perm_mask = { 0x78, 0x70, 0x68, 0x60, 0x58, 0x50, 0x48, 0x40, 0x38, 0x30, 0x28, 0x20, 0x18, 0x10, 0x08, 0x00 }; ! __result = ((__vector unsigned long long) vec_vbpermq ((__vector unsigned char) __A, ! (__vector unsigned char) __perm_mask)); #ifdef __LITTLE_ENDIAN__ ! return __result[1]; #else ! return __result[0]; #endif } #endif /* _ARCH_PWR8 */ *************** _mm_movemask_epi8 (__m128i __A) *** 2059,2066 **** extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_mulhi_epu16 (__m128i __A, __m128i __B) { ! __v4su w0, w1; ! __v16qu xform1 = { #ifdef __LITTLE_ENDIAN__ 0x02, 0x03, 0x12, 0x13, 0x06, 0x07, 0x16, 0x17, 0x0A, 0x0B, 0x1A, 0x1B, 0x0E, 0x0F, 0x1E, 0x1F --- 2053,2060 ---- extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_mulhi_epu16 (__m128i __A, __m128i __B) { ! __v4su __w0, __w1; ! __v16qu __xform1 = { #ifdef __LITTLE_ENDIAN__ 0x02, 0x03, 0x12, 0x13, 0x06, 0x07, 0x16, 0x17, 0x0A, 0x0B, 0x1A, 0x1B, 0x0E, 0x0F, 0x1E, 0x1F *************** _mm_mulhi_epu16 (__m128i __A, __m128i __ *** 2070,2088 **** #endif }; ! w0 = vec_vmuleuh ((__v8hu)__A, (__v8hu)__B); ! w1 = vec_vmulouh ((__v8hu)__A, (__v8hu)__B); ! return (__m128i) vec_perm (w0, w1, xform1); } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_shufflehi_epi16 (__m128i __A, const int __mask) { ! unsigned long element_selector_98 = __mask & 0x03; ! unsigned long element_selector_BA = (__mask >> 2) & 0x03; ! unsigned long element_selector_DC = (__mask >> 4) & 0x03; ! unsigned long element_selector_FE = (__mask >> 6) & 0x03; ! static const unsigned short permute_selectors[4] = { #ifdef __LITTLE_ENDIAN__ 0x0908, 0x0B0A, 0x0D0C, 0x0F0E --- 2064,2082 ---- #endif }; ! __w0 = vec_vmuleuh ((__v8hu)__A, (__v8hu)__B); ! __w1 = vec_vmulouh ((__v8hu)__A, (__v8hu)__B); ! return (__m128i) vec_perm (__w0, __w1, __xform1); } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_shufflehi_epi16 (__m128i __A, const int __mask) { ! unsigned long __element_selector_98 = __mask & 0x03; ! unsigned long __element_selector_BA = (__mask >> 2) & 0x03; ! unsigned long __element_selector_DC = (__mask >> 4) & 0x03; ! unsigned long __element_selector_FE = (__mask >> 6) & 0x03; ! static const unsigned short __permute_selectors[4] = { #ifdef __LITTLE_ENDIAN__ 0x0908, 0x0B0A, 0x0D0C, 0x0F0E *************** _mm_shufflehi_epi16 (__m128i __A, const *** 2090,2122 **** 0x0809, 0x0A0B, 0x0C0D, 0x0E0F #endif }; ! __v2du pmask = #ifdef __LITTLE_ENDIAN__ { 0x1716151413121110UL, 0UL}; #else { 0x1011121314151617UL, 0UL}; #endif ! __m64_union t; ! __v2du a, r; ! t.as_short[0] = permute_selectors[element_selector_98]; ! t.as_short[1] = permute_selectors[element_selector_BA]; ! t.as_short[2] = permute_selectors[element_selector_DC]; ! t.as_short[3] = permute_selectors[element_selector_FE]; ! pmask[1] = t.as_m64; ! a = (__v2du)__A; ! r = vec_perm (a, a, (__vector unsigned char)pmask); ! return (__m128i) r; } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_shufflelo_epi16 (__m128i __A, const int __mask) { ! unsigned long element_selector_10 = __mask & 0x03; ! unsigned long element_selector_32 = (__mask >> 2) & 0x03; ! unsigned long element_selector_54 = (__mask >> 4) & 0x03; ! unsigned long element_selector_76 = (__mask >> 6) & 0x03; ! static const unsigned short permute_selectors[4] = { #ifdef __LITTLE_ENDIAN__ 0x0100, 0x0302, 0x0504, 0x0706 --- 2084,2116 ---- 0x0809, 0x0A0B, 0x0C0D, 0x0E0F #endif }; ! __v2du __pmask = #ifdef __LITTLE_ENDIAN__ { 0x1716151413121110UL, 0UL}; #else { 0x1011121314151617UL, 0UL}; #endif ! __m64_union __t; ! __v2du __a, __r; ! __t.as_short[0] = __permute_selectors[__element_selector_98]; ! __t.as_short[1] = __permute_selectors[__element_selector_BA]; ! __t.as_short[2] = __permute_selectors[__element_selector_DC]; ! __t.as_short[3] = __permute_selectors[__element_selector_FE]; ! __pmask[1] = __t.as_m64; ! __a = (__v2du)__A; ! __r = vec_perm (__a, __a, (__vector unsigned char)__pmask); ! return (__m128i) __r; } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_shufflelo_epi16 (__m128i __A, const int __mask) { ! unsigned long __element_selector_10 = __mask & 0x03; ! unsigned long __element_selector_32 = (__mask >> 2) & 0x03; ! unsigned long __element_selector_54 = (__mask >> 4) & 0x03; ! unsigned long __element_selector_76 = (__mask >> 6) & 0x03; ! static const unsigned short __permute_selectors[4] = { #ifdef __LITTLE_ENDIAN__ 0x0100, 0x0302, 0x0504, 0x0706 *************** _mm_shufflelo_epi16 (__m128i __A, const *** 2124,2155 **** 0x0001, 0x0203, 0x0405, 0x0607 #endif }; ! __v2du pmask = #ifdef __LITTLE_ENDIAN__ { 0UL, 0x1f1e1d1c1b1a1918UL}; #else { 0UL, 0x18191a1b1c1d1e1fUL}; #endif ! __m64_union t; ! __v2du a, r; ! t.as_short[0] = permute_selectors[element_selector_10]; ! t.as_short[1] = permute_selectors[element_selector_32]; ! t.as_short[2] = permute_selectors[element_selector_54]; ! t.as_short[3] = permute_selectors[element_selector_76]; ! pmask[0] = t.as_m64; ! a = (__v2du)__A; ! r = vec_perm (a, a, (__vector unsigned char)pmask); ! return (__m128i) r; } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_shuffle_epi32 (__m128i __A, const int __mask) { ! unsigned long element_selector_10 = __mask & 0x03; ! unsigned long element_selector_32 = (__mask >> 2) & 0x03; ! unsigned long element_selector_54 = (__mask >> 4) & 0x03; ! unsigned long element_selector_76 = (__mask >> 6) & 0x03; ! static const unsigned int permute_selectors[4] = { #ifdef __LITTLE_ENDIAN__ 0x03020100, 0x07060504, 0x0B0A0908, 0x0F0E0D0C --- 2118,2149 ---- 0x0001, 0x0203, 0x0405, 0x0607 #endif }; ! __v2du __pmask = #ifdef __LITTLE_ENDIAN__ { 0UL, 0x1f1e1d1c1b1a1918UL}; #else { 0UL, 0x18191a1b1c1d1e1fUL}; #endif ! __m64_union __t; ! __v2du __a, __r; ! __t.as_short[0] = __permute_selectors[__element_selector_10]; ! __t.as_short[1] = __permute_selectors[__element_selector_32]; ! __t.as_short[2] = __permute_selectors[__element_selector_54]; ! __t.as_short[3] = __permute_selectors[__element_selector_76]; ! __pmask[0] = __t.as_m64; ! __a = (__v2du)__A; ! __r = vec_perm (__a, __a, (__vector unsigned char)__pmask); ! return (__m128i) __r; } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_shuffle_epi32 (__m128i __A, const int __mask) { ! unsigned long __element_selector_10 = __mask & 0x03; ! unsigned long __element_selector_32 = (__mask >> 2) & 0x03; ! unsigned long __element_selector_54 = (__mask >> 4) & 0x03; ! unsigned long __element_selector_76 = (__mask >> 6) & 0x03; ! static const unsigned int __permute_selectors[4] = { #ifdef __LITTLE_ENDIAN__ 0x03020100, 0x07060504, 0x0B0A0908, 0x0F0E0D0C *************** _mm_shuffle_epi32 (__m128i __A, const in *** 2157,2182 **** 0x00010203, 0x04050607, 0x08090A0B, 0x0C0D0E0F #endif }; ! __v4su t; ! t[0] = permute_selectors[element_selector_10]; ! t[1] = permute_selectors[element_selector_32]; ! t[2] = permute_selectors[element_selector_54] + 0x10101010; ! t[3] = permute_selectors[element_selector_76] + 0x10101010; ! return (__m128i)vec_perm ((__v4si) __A, (__v4si)__A, (__vector unsigned char)t); } extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_maskmoveu_si128 (__m128i __A, __m128i __B, char *__C) { ! __v2du hibit = { 0x7f7f7f7f7f7f7f7fUL, 0x7f7f7f7f7f7f7f7fUL}; ! __v16qu mask, tmp; ! __m128i_u *p = (__m128i_u*)__C; ! tmp = (__v16qu)_mm_loadu_si128(p); ! mask = (__v16qu)vec_cmpgt ((__v16qu)__B, (__v16qu)hibit); ! tmp = vec_sel (tmp, (__v16qu)__A, mask); ! _mm_storeu_si128 (p, (__m128i)tmp); } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 2151,2176 ---- 0x00010203, 0x04050607, 0x08090A0B, 0x0C0D0E0F #endif }; ! __v4su __t; ! __t[0] = __permute_selectors[__element_selector_10]; ! __t[1] = __permute_selectors[__element_selector_32]; ! __t[2] = __permute_selectors[__element_selector_54] + 0x10101010; ! __t[3] = __permute_selectors[__element_selector_76] + 0x10101010; ! return (__m128i)vec_perm ((__v4si) __A, (__v4si)__A, (__vector unsigned char)__t); } extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_maskmoveu_si128 (__m128i __A, __m128i __B, char *__C) { ! __v2du __hibit = { 0x7f7f7f7f7f7f7f7fUL, 0x7f7f7f7f7f7f7f7fUL}; ! __v16qu __mask, __tmp; ! __m128i_u *__p = (__m128i_u*)__C; ! __tmp = (__v16qu)_mm_loadu_si128(__p); ! __mask = (__v16qu)vec_cmpgt ((__v16qu)__B, (__v16qu)__hibit); ! __tmp = vec_sel (__tmp, (__v16qu)__A, __mask); ! _mm_storeu_si128 (__p, (__m128i)__tmp); } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** _mm_avg_epu16 (__m128i __A, __m128i __B) *** 2195,2223 **** extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_sad_epu8 (__m128i __A, __m128i __B) { ! __v16qu a, b; ! __v16qu vmin, vmax, vabsdiff; ! __v4si vsum; ! const __v4su zero = { 0, 0, 0, 0 }; ! __v4si result; ! a = (__v16qu) __A; ! b = (__v16qu) __B; ! vmin = vec_min (a, b); ! vmax = vec_max (a, b); ! vabsdiff = vec_sub (vmax, vmin); /* Sum four groups of bytes into integers. */ ! vsum = (__vector signed int) vec_sum4s (vabsdiff, zero); /* Sum across four integers with two integer results. */ ! result = vec_sum2s (vsum, (__vector signed int) zero); /* Rotate the sums into the correct position. */ #ifdef __LITTLE_ENDIAN__ ! result = vec_sld (result, result, 4); #else ! result = vec_sld (result, result, 6); #endif /* Rotate the sums into the correct position. */ ! return (__m128i) result; } extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 2189,2217 ---- extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_sad_epu8 (__m128i __A, __m128i __B) { ! __v16qu __a, __b; ! __v16qu __vmin, __vmax, __vabsdiff; ! __v4si __vsum; ! const __v4su __zero = { 0, 0, 0, 0 }; ! __v4si __result; ! __a = (__v16qu) __A; ! __b = (__v16qu) __B; ! __vmin = vec_min (__a, __b); ! __vmax = vec_max (__a, __b); ! __vabsdiff = vec_sub (__vmax, __vmin); /* Sum four groups of bytes into integers. */ ! __vsum = (__vector signed int) vec_sum4s (__vabsdiff, __zero); /* Sum across four integers with two integer results. */ ! __result = vec_sum2s (__vsum, (__vector signed int) __zero); /* Rotate the sums into the correct position. */ #ifdef __LITTLE_ENDIAN__ ! __result = vec_sld (__result, __result, 4); #else ! __result = vec_sld (__result, __result, 6); #endif /* Rotate the sums into the correct position. */ ! return (__m128i) __result; } extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) diff -Nrcpad gcc-10.3.0/gcc/config/rs6000/mm_malloc.h gcc-10.4.0/gcc/config/rs6000/mm_malloc.h *** gcc-10.3.0/gcc/config/rs6000/mm_malloc.h Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/config/rs6000/mm_malloc.h Tue Jun 28 08:54:27 2022 *************** extern "C" int posix_memalign (void **, *** 35,62 **** #endif static __inline void * ! _mm_malloc (size_t size, size_t alignment) { /* PowerPC64 ELF V2 ABI requires quadword alignment. */ ! size_t vec_align = sizeof (__vector float); /* Linux GLIBC malloc alignment is at least 2 X ptr size. */ ! size_t malloc_align = (sizeof (void *) + sizeof (void *)); ! void *ptr; ! if (alignment == malloc_align && alignment == vec_align) ! return malloc (size); ! if (alignment < vec_align) ! alignment = vec_align; ! if (posix_memalign (&ptr, alignment, size) == 0) ! return ptr; else return NULL; } static __inline void ! _mm_free (void * ptr) { ! free (ptr); } #endif /* _MM_MALLOC_H_INCLUDED */ --- 35,62 ---- #endif static __inline void * ! _mm_malloc (size_t __size, size_t __alignment) { /* PowerPC64 ELF V2 ABI requires quadword alignment. */ ! size_t __vec_align = sizeof (__vector float); /* Linux GLIBC malloc alignment is at least 2 X ptr size. */ ! size_t __malloc_align = (sizeof (void *) + sizeof (void *)); ! void *__ptr; ! if (__alignment == __malloc_align && __alignment == __vec_align) ! return malloc (__size); ! if (__alignment < __vec_align) ! __alignment = __vec_align; ! if (posix_memalign (&__ptr, __alignment, __size) == 0) ! return __ptr; else return NULL; } static __inline void ! _mm_free (void * __ptr) { ! free (__ptr); } #endif /* _MM_MALLOC_H_INCLUDED */ diff -Nrcpad gcc-10.3.0/gcc/config/rs6000/mma.md gcc-10.4.0/gcc/config/rs6000/mma.md *** gcc-10.3.0/gcc/config/rs6000/mma.md Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/config/rs6000/mma.md Tue Jun 28 08:54:27 2022 *************** *** 36,42 **** ;; Constants for creating unspecs (define_c_enum "unspec" ! [UNSPEC_MMA_ASSEMBLE_ACC UNSPEC_MMA_PMXVBF16GER2 UNSPEC_MMA_PMXVBF16GER2NN UNSPEC_MMA_PMXVBF16GER2NP --- 36,43 ---- ;; Constants for creating unspecs (define_c_enum "unspec" ! [UNSPEC_VSX_ASSEMBLE ! UNSPEC_MMA_ASSEMBLE_ACC UNSPEC_MMA_PMXVBF16GER2 UNSPEC_MMA_PMXVBF16GER2NN UNSPEC_MMA_PMXVBF16GER2NP *************** *** 99,104 **** --- 100,109 ---- UNSPEC_MMA_XXMTACC ]) + (define_c_enum "unspecv" + [UNSPECV_MMA_XXSETACCZ + ]) + ;; MMA instructions with 1 accumulator argument (define_int_iterator MMA_ACC [UNSPEC_MMA_XXMFACC UNSPEC_MMA_XXMTACC]) *************** *** 325,366 **** }) (define_insn_and_split "*movpxi" ! [(set (match_operand:PXI 0 "nonimmediate_operand" "=d,m,d,d") ! (match_operand:PXI 1 "input_operand" "m,d,d,O"))] "TARGET_MMA && (gpc_reg_operand (operands[0], PXImode) || gpc_reg_operand (operands[1], PXImode))" "@ # # ! # ! xxsetaccz %A0" ! "&& reload_completed ! && !(fpr_reg_operand (operands[0], PXImode) && operands[1] == const0_rtx)" [(const_int 0)] { rs6000_split_multireg_move (operands[0], operands[1]); DONE; } ! [(set_attr "type" "vecload,vecstore,veclogical,mma") ! (set_attr "length" "8,8,16,*") ! (set_attr "max_prefixed_insns" "2,2,*,*")]) (define_expand "vsx_assemble_pair" [(match_operand:POI 0 "vsx_register_operand") ! (match_operand:V16QI 1 "input_operand") ! (match_operand:V16QI 2 "input_operand")] "TARGET_MMA" { ! rtx dst; ! /* Let the compiler know the code below fully defines our output value. */ ! emit_clobber (operands[0]); ! dst = simplify_gen_subreg (V16QImode, operands[0], POImode, 0); ! emit_move_insn (dst, operands[1]); ! dst = simplify_gen_subreg (V16QImode, operands[0], POImode, 16); ! emit_move_insn (dst, operands[2]); DONE; }) --- 330,384 ---- }) (define_insn_and_split "*movpxi" ! [(set (match_operand:PXI 0 "nonimmediate_operand" "=d,m,d") ! (match_operand:PXI 1 "input_operand" "m,d,d"))] "TARGET_MMA && (gpc_reg_operand (operands[0], PXImode) || gpc_reg_operand (operands[1], PXImode))" "@ # # ! #" ! "&& reload_completed" [(const_int 0)] { rs6000_split_multireg_move (operands[0], operands[1]); DONE; } ! [(set_attr "type" "vecload,vecstore,veclogical") ! (set_attr "length" "8,8,16") ! (set_attr "max_prefixed_insns" "2,2,*")]) (define_expand "vsx_assemble_pair" [(match_operand:POI 0 "vsx_register_operand") ! (match_operand:V16QI 1 "mma_assemble_input_operand") ! (match_operand:V16QI 2 "mma_assemble_input_operand")] "TARGET_MMA" { ! rtx src = gen_rtx_UNSPEC (POImode, ! gen_rtvec (2, operands[1], operands[2]), ! UNSPEC_VSX_ASSEMBLE); ! emit_move_insn (operands[0], src); ! DONE; ! }) ! ;; We cannot update the two output registers atomically, so mark the output ! ;; as an early clobber so we don't accidentally clobber the input operands. */ ! (define_insn_and_split "*vsx_assemble_pair" ! [(set (match_operand:POI 0 "vsx_register_operand" "=&wa") ! (unspec:POI [(match_operand:V16QI 1 "mma_assemble_input_operand" "mwa") ! (match_operand:V16QI 2 "mma_assemble_input_operand" "mwa")] ! UNSPEC_VSX_ASSEMBLE))] ! "TARGET_MMA" ! "#" ! "&& reload_completed" ! [(const_int 0)] ! { ! rtx src = gen_rtx_UNSPEC (POImode, ! gen_rtvec (2, operands[1], operands[2]), ! UNSPEC_VSX_ASSEMBLE); ! rs6000_split_multireg_move (operands[0], src); DONE; }) *************** *** 380,387 **** DONE; }) (define_insn_and_split "*mma_assemble_acc" ! [(set (match_operand:PXI 0 "fpr_reg_operand" "=d") (unspec:PXI [(match_operand:V16QI 1 "mma_assemble_input_operand" "mwa") (match_operand:V16QI 2 "mma_assemble_input_operand" "mwa") (match_operand:V16QI 3 "mma_assemble_input_operand" "mwa") --- 398,408 ---- DONE; }) + ;; We cannot update the four output registers atomically, so mark the output + ;; as an early clobber so we don't accidentally clobber the input operands. */ + (define_insn_and_split "*mma_assemble_acc" ! [(set (match_operand:PXI 0 "fpr_reg_operand" "=&d") (unspec:PXI [(match_operand:V16QI 1 "mma_assemble_input_operand" "mwa") (match_operand:V16QI 2 "mma_assemble_input_operand" "mwa") (match_operand:V16QI 3 "mma_assemble_input_operand" "mwa") *************** *** 413,426 **** " %A0" [(set_attr "type" "mma")]) ! (define_expand "mma_xxsetaccz" ! [(set (match_operand:PXI 0 "fpr_reg_operand") ! (const_int 0))] "TARGET_MMA" ! { ! emit_insn (gen_movpxi (operands[0], const0_rtx)); ! DONE; ! }) (define_insn "mma_" [(set (match_operand:PXI 0 "fpr_reg_operand" "=&d") --- 434,449 ---- " %A0" [(set_attr "type" "mma")]) ! ;; We can't have integer constants in PXImode so we wrap this in an ! ;; UNSPEC_VOLATILE. ! ! (define_insn "mma_xxsetaccz" ! [(set (match_operand:PXI 0 "fpr_reg_operand" "=d") ! (unspec_volatile:PXI [(const_int 0)] ! UNSPECV_MMA_XXSETACCZ))] "TARGET_MMA" ! "xxsetaccz %A0" ! [(set_attr "type" "mma")]) (define_insn "mma_" [(set (match_operand:PXI 0 "fpr_reg_operand" "=&d") diff -Nrcpad gcc-10.3.0/gcc/config/rs6000/mmintrin.h gcc-10.4.0/gcc/config/rs6000/mmintrin.h *** gcc-10.3.0/gcc/config/rs6000/mmintrin.h Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/config/rs6000/mmintrin.h Tue Jun 28 08:54:27 2022 *************** _mm_cvtsi64_si64x (__m64 __i) *** 170,186 **** extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_packs_pi16 (__m64 __m1, __m64 __m2) { ! __vector signed short vm1; ! __vector signed char vresult; ! vm1 = (__vector signed short) (__vector unsigned long long) #ifdef __LITTLE_ENDIAN__ { __m1, __m2 }; #else { __m2, __m1 }; #endif ! vresult = vec_packs (vm1, vm1); ! return (__m64) ((__vector long long) vresult)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 170,186 ---- extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_packs_pi16 (__m64 __m1, __m64 __m2) { ! __vector signed short __vm1; ! __vector signed char __vresult; ! __vm1 = (__vector signed short) (__vector unsigned long long) #ifdef __LITTLE_ENDIAN__ { __m1, __m2 }; #else { __m2, __m1 }; #endif ! __vresult = vec_packs (__vm1, __vm1); ! return (__m64) ((__vector long long) __vresult)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** _m_packsswb (__m64 __m1, __m64 __m2) *** 195,211 **** extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_packs_pi32 (__m64 __m1, __m64 __m2) { ! __vector signed int vm1; ! __vector signed short vresult; ! vm1 = (__vector signed int) (__vector unsigned long long) #ifdef __LITTLE_ENDIAN__ { __m1, __m2 }; #else { __m2, __m1 }; #endif ! vresult = vec_packs (vm1, vm1); ! return (__m64) ((__vector long long) vresult)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 195,211 ---- extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_packs_pi32 (__m64 __m1, __m64 __m2) { ! __vector signed int __vm1; ! __vector signed short __vresult; ! __vm1 = (__vector signed int) (__vector unsigned long long) #ifdef __LITTLE_ENDIAN__ { __m1, __m2 }; #else { __m2, __m1 }; #endif ! __vresult = vec_packs (__vm1, __vm1); ! return (__m64) ((__vector long long) __vresult)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** _m_packssdw (__m64 __m1, __m64 __m2) *** 220,238 **** extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_packs_pu16 (__m64 __m1, __m64 __m2) { ! __vector unsigned char r; ! __vector signed short vm1 = (__vector signed short) (__vector long long) #ifdef __LITTLE_ENDIAN__ { __m1, __m2 }; #else { __m2, __m1 }; #endif const __vector signed short __zero = { 0 }; ! __vector __bool short __select = vec_cmplt (vm1, __zero); ! r = vec_packs ((__vector unsigned short) vm1, (__vector unsigned short) vm1); ! __vector __bool char packsel = vec_pack (__select, __select); ! r = vec_sel (r, (const __vector unsigned char) __zero, packsel); ! return (__m64) ((__vector long long) r)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 220,238 ---- extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_packs_pu16 (__m64 __m1, __m64 __m2) { ! __vector unsigned char __r; ! __vector signed short __vm1 = (__vector signed short) (__vector long long) #ifdef __LITTLE_ENDIAN__ { __m1, __m2 }; #else { __m2, __m1 }; #endif const __vector signed short __zero = { 0 }; ! __vector __bool short __select = vec_cmplt (__vm1, __zero); ! __r = vec_packs ((__vector unsigned short) __vm1, (__vector unsigned short) __vm1); ! __vector __bool char __packsel = vec_pack (__select, __select); ! __r = vec_sel (__r, (const __vector unsigned char) __zero, __packsel); ! return (__m64) ((__vector long long) __r)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** extern __inline __m64 __attribute__((__g *** 248,275 **** _mm_unpackhi_pi8 (__m64 __m1, __m64 __m2) { #if _ARCH_PWR8 ! __vector unsigned char a, b, c; ! a = (__vector unsigned char)vec_splats (__m1); ! b = (__vector unsigned char)vec_splats (__m2); ! c = vec_mergel (a, b); ! return (__m64) ((__vector long long) c)[1]; #else ! __m64_union m1, m2, res; ! m1.as_m64 = __m1; ! m2.as_m64 = __m2; ! res.as_char[0] = m1.as_char[4]; ! res.as_char[1] = m2.as_char[4]; ! res.as_char[2] = m1.as_char[5]; ! res.as_char[3] = m2.as_char[5]; ! res.as_char[4] = m1.as_char[6]; ! res.as_char[5] = m2.as_char[6]; ! res.as_char[6] = m1.as_char[7]; ! res.as_char[7] = m2.as_char[7]; ! return (__m64) res.as_m64; #endif } --- 248,275 ---- _mm_unpackhi_pi8 (__m64 __m1, __m64 __m2) { #if _ARCH_PWR8 ! __vector unsigned char __a, __b, __c; ! __a = (__vector unsigned char)vec_splats (__m1); ! __b = (__vector unsigned char)vec_splats (__m2); ! __c = vec_mergel (__a, __b); ! return (__m64) ((__vector long long) __c)[1]; #else ! __m64_union __mu1, __mu2, __res; ! __mu1.as_m64 = __m1; ! __mu2.as_m64 = __m2; ! __res.as_char[0] = __mu1.as_char[4]; ! __res.as_char[1] = __mu2.as_char[4]; ! __res.as_char[2] = __mu1.as_char[5]; ! __res.as_char[3] = __mu2.as_char[5]; ! __res.as_char[4] = __mu1.as_char[6]; ! __res.as_char[5] = __mu2.as_char[6]; ! __res.as_char[6] = __mu1.as_char[7]; ! __res.as_char[7] = __mu2.as_char[7]; ! return (__m64) __res.as_m64; #endif } *************** _m_punpckhbw (__m64 __m1, __m64 __m2) *** 284,300 **** extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_unpackhi_pi16 (__m64 __m1, __m64 __m2) { ! __m64_union m1, m2, res; ! m1.as_m64 = __m1; ! m2.as_m64 = __m2; ! res.as_short[0] = m1.as_short[2]; ! res.as_short[1] = m2.as_short[2]; ! res.as_short[2] = m1.as_short[3]; ! res.as_short[3] = m2.as_short[3]; ! return (__m64) res.as_m64; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 284,300 ---- extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_unpackhi_pi16 (__m64 __m1, __m64 __m2) { ! __m64_union __mu1, __mu2, __res; ! __mu1.as_m64 = __m1; ! __mu2.as_m64 = __m2; ! __res.as_short[0] = __mu1.as_short[2]; ! __res.as_short[1] = __mu2.as_short[2]; ! __res.as_short[2] = __mu1.as_short[3]; ! __res.as_short[3] = __mu2.as_short[3]; ! return (__m64) __res.as_m64; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** _m_punpckhwd (__m64 __m1, __m64 __m2) *** 307,321 **** extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_unpackhi_pi32 (__m64 __m1, __m64 __m2) { ! __m64_union m1, m2, res; ! m1.as_m64 = __m1; ! m2.as_m64 = __m2; ! res.as_int[0] = m1.as_int[1]; ! res.as_int[1] = m2.as_int[1]; ! return (__m64) res.as_m64; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 307,321 ---- extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_unpackhi_pi32 (__m64 __m1, __m64 __m2) { ! __m64_union __mu1, __mu2, __res; ! __mu1.as_m64 = __m1; ! __mu2.as_m64 = __m2; ! __res.as_int[0] = __mu1.as_int[1]; ! __res.as_int[1] = __mu2.as_int[1]; ! return (__m64) __res.as_m64; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** extern __inline __m64 __attribute__((__g *** 329,356 **** _mm_unpacklo_pi8 (__m64 __m1, __m64 __m2) { #if _ARCH_PWR8 ! __vector unsigned char a, b, c; ! a = (__vector unsigned char)vec_splats (__m1); ! b = (__vector unsigned char)vec_splats (__m2); ! c = vec_mergel (a, b); ! return (__m64) ((__vector long long) c)[0]; #else ! __m64_union m1, m2, res; ! m1.as_m64 = __m1; ! m2.as_m64 = __m2; ! res.as_char[0] = m1.as_char[0]; ! res.as_char[1] = m2.as_char[0]; ! res.as_char[2] = m1.as_char[1]; ! res.as_char[3] = m2.as_char[1]; ! res.as_char[4] = m1.as_char[2]; ! res.as_char[5] = m2.as_char[2]; ! res.as_char[6] = m1.as_char[3]; ! res.as_char[7] = m2.as_char[3]; ! return (__m64) res.as_m64; #endif } --- 329,356 ---- _mm_unpacklo_pi8 (__m64 __m1, __m64 __m2) { #if _ARCH_PWR8 ! __vector unsigned char __a, __b, __c; ! __a = (__vector unsigned char)vec_splats (__m1); ! __b = (__vector unsigned char)vec_splats (__m2); ! __c = vec_mergel (__a, __b); ! return (__m64) ((__vector long long) __c)[0]; #else ! __m64_union __mu1, __mu2, __res; ! __mu1.as_m64 = __m1; ! __mu2.as_m64 = __m2; ! __res.as_char[0] = __mu1.as_char[0]; ! __res.as_char[1] = __mu2.as_char[0]; ! __res.as_char[2] = __mu1.as_char[1]; ! __res.as_char[3] = __mu2.as_char[1]; ! __res.as_char[4] = __mu1.as_char[2]; ! __res.as_char[5] = __mu2.as_char[2]; ! __res.as_char[6] = __mu1.as_char[3]; ! __res.as_char[7] = __mu2.as_char[3]; ! return (__m64) __res.as_m64; #endif } *************** _m_punpcklbw (__m64 __m1, __m64 __m2) *** 364,380 **** extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_unpacklo_pi16 (__m64 __m1, __m64 __m2) { ! __m64_union m1, m2, res; ! m1.as_m64 = __m1; ! m2.as_m64 = __m2; ! res.as_short[0] = m1.as_short[0]; ! res.as_short[1] = m2.as_short[0]; ! res.as_short[2] = m1.as_short[1]; ! res.as_short[3] = m2.as_short[1]; ! return (__m64) res.as_m64; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 364,380 ---- extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_unpacklo_pi16 (__m64 __m1, __m64 __m2) { ! __m64_union __mu1, __mu2, __res; ! __mu1.as_m64 = __m1; ! __mu2.as_m64 = __m2; ! __res.as_short[0] = __mu1.as_short[0]; ! __res.as_short[1] = __mu2.as_short[0]; ! __res.as_short[2] = __mu1.as_short[1]; ! __res.as_short[3] = __mu2.as_short[1]; ! return (__m64) __res.as_m64; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** _m_punpcklwd (__m64 __m1, __m64 __m2) *** 388,402 **** extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_unpacklo_pi32 (__m64 __m1, __m64 __m2) { ! __m64_union m1, m2, res; ! m1.as_m64 = __m1; ! m2.as_m64 = __m2; ! res.as_int[0] = m1.as_int[0]; ! res.as_int[1] = m2.as_int[0]; ! return (__m64) res.as_m64; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 388,402 ---- extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_unpacklo_pi32 (__m64 __m1, __m64 __m2) { ! __m64_union __mu1, __mu2, __res; ! __mu1.as_m64 = __m1; ! __mu2.as_m64 = __m2; ! __res.as_int[0] = __mu1.as_int[0]; ! __res.as_int[1] = __mu2.as_int[0]; ! return (__m64) __res.as_m64; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** extern __inline __m64 __attribute__((__g *** 410,437 **** _mm_add_pi8 (__m64 __m1, __m64 __m2) { #if _ARCH_PWR8 ! __vector signed char a, b, c; ! a = (__vector signed char)vec_splats (__m1); ! b = (__vector signed char)vec_splats (__m2); ! c = vec_add (a, b); ! return (__m64) ((__vector long long) c)[0]; #else ! __m64_union m1, m2, res; ! m1.as_m64 = __m1; ! m2.as_m64 = __m2; ! res.as_char[0] = m1.as_char[0] + m2.as_char[0]; ! res.as_char[1] = m1.as_char[1] + m2.as_char[1]; ! res.as_char[2] = m1.as_char[2] + m2.as_char[2]; ! res.as_char[3] = m1.as_char[3] + m2.as_char[3]; ! res.as_char[4] = m1.as_char[4] + m2.as_char[4]; ! res.as_char[5] = m1.as_char[5] + m2.as_char[5]; ! res.as_char[6] = m1.as_char[6] + m2.as_char[6]; ! res.as_char[7] = m1.as_char[7] + m2.as_char[7]; ! return (__m64) res.as_m64; #endif } --- 410,437 ---- _mm_add_pi8 (__m64 __m1, __m64 __m2) { #if _ARCH_PWR8 ! __vector signed char __a, __b, __c; ! __a = (__vector signed char)vec_splats (__m1); ! __b = (__vector signed char)vec_splats (__m2); ! __c = vec_add (__a, __b); ! return (__m64) ((__vector long long) __c)[0]; #else ! __m64_union __mu1, __mu2, __res; ! __mu1.as_m64 = __m1; ! __mu2.as_m64 = __m2; ! __res.as_char[0] = __mu1.as_char[0] + __mu2.as_char[0]; ! __res.as_char[1] = __mu1.as_char[1] + __mu2.as_char[1]; ! __res.as_char[2] = __mu1.as_char[2] + __mu2.as_char[2]; ! __res.as_char[3] = __mu1.as_char[3] + __mu2.as_char[3]; ! __res.as_char[4] = __mu1.as_char[4] + __mu2.as_char[4]; ! __res.as_char[5] = __mu1.as_char[5] + __mu2.as_char[5]; ! __res.as_char[6] = __mu1.as_char[6] + __mu2.as_char[6]; ! __res.as_char[7] = __mu1.as_char[7] + __mu2.as_char[7]; ! return (__m64) __res.as_m64; #endif } *************** extern __inline __m64 __attribute__((__g *** 446,469 **** _mm_add_pi16 (__m64 __m1, __m64 __m2) { #if _ARCH_PWR8 ! __vector signed short a, b, c; ! a = (__vector signed short)vec_splats (__m1); ! b = (__vector signed short)vec_splats (__m2); ! c = vec_add (a, b); ! return (__m64) ((__vector long long) c)[0]; #else ! __m64_union m1, m2, res; ! m1.as_m64 = __m1; ! m2.as_m64 = __m2; ! res.as_short[0] = m1.as_short[0] + m2.as_short[0]; ! res.as_short[1] = m1.as_short[1] + m2.as_short[1]; ! res.as_short[2] = m1.as_short[2] + m2.as_short[2]; ! res.as_short[3] = m1.as_short[3] + m2.as_short[3]; ! return (__m64) res.as_m64; #endif } --- 446,469 ---- _mm_add_pi16 (__m64 __m1, __m64 __m2) { #if _ARCH_PWR8 ! __vector signed short __a, __b, __c; ! __a = (__vector signed short)vec_splats (__m1); ! __b = (__vector signed short)vec_splats (__m2); ! __c = vec_add (__a, __b); ! return (__m64) ((__vector long long) __c)[0]; #else ! __m64_union __mu1, __mu2, __res; ! __mu1.as_m64 = __m1; ! __mu2.as_m64 = __m2; ! __res.as_short[0] = __mu1.as_short[0] + __mu2.as_short[0]; ! __res.as_short[1] = __mu1.as_short[1] + __mu2.as_short[1]; ! __res.as_short[2] = __mu1.as_short[2] + __mu2.as_short[2]; ! __res.as_short[3] = __mu1.as_short[3] + __mu2.as_short[3]; ! return (__m64) __res.as_m64; #endif } *************** extern __inline __m64 __attribute__((__g *** 478,499 **** _mm_add_pi32 (__m64 __m1, __m64 __m2) { #if _ARCH_PWR9 ! __vector signed int a, b, c; ! a = (__vector signed int)vec_splats (__m1); ! b = (__vector signed int)vec_splats (__m2); ! c = vec_add (a, b); ! return (__m64) ((__vector long long) c)[0]; #else ! __m64_union m1, m2, res; ! m1.as_m64 = __m1; ! m2.as_m64 = __m2; ! res.as_int[0] = m1.as_int[0] + m2.as_int[0]; ! res.as_int[1] = m1.as_int[1] + m2.as_int[1]; ! return (__m64) res.as_m64; #endif } --- 478,499 ---- _mm_add_pi32 (__m64 __m1, __m64 __m2) { #if _ARCH_PWR9 ! __vector signed int __a, __b, __c; ! __a = (__vector signed int)vec_splats (__m1); ! __b = (__vector signed int)vec_splats (__m2); ! __c = vec_add (__a, __b); ! return (__m64) ((__vector long long) __c)[0]; #else ! __m64_union __mu1, __mu2, __res; ! __mu1.as_m64 = __m1; ! __mu2.as_m64 = __m2; ! __res.as_int[0] = __mu1.as_int[0] + __mu2.as_int[0]; ! __res.as_int[1] = __mu1.as_int[1] + __mu2.as_int[1]; ! return (__m64) __res.as_m64; #endif } *************** extern __inline __m64 __attribute__((__g *** 508,535 **** _mm_sub_pi8 (__m64 __m1, __m64 __m2) { #if _ARCH_PWR8 ! __vector signed char a, b, c; ! a = (__vector signed char)vec_splats (__m1); ! b = (__vector signed char)vec_splats (__m2); ! c = vec_sub (a, b); ! return (__m64) ((__vector long long) c)[0]; #else ! __m64_union m1, m2, res; ! m1.as_m64 = __m1; ! m2.as_m64 = __m2; ! res.as_char[0] = m1.as_char[0] - m2.as_char[0]; ! res.as_char[1] = m1.as_char[1] - m2.as_char[1]; ! res.as_char[2] = m1.as_char[2] - m2.as_char[2]; ! res.as_char[3] = m1.as_char[3] - m2.as_char[3]; ! res.as_char[4] = m1.as_char[4] - m2.as_char[4]; ! res.as_char[5] = m1.as_char[5] - m2.as_char[5]; ! res.as_char[6] = m1.as_char[6] - m2.as_char[6]; ! res.as_char[7] = m1.as_char[7] - m2.as_char[7]; ! return (__m64) res.as_m64; #endif } --- 508,535 ---- _mm_sub_pi8 (__m64 __m1, __m64 __m2) { #if _ARCH_PWR8 ! __vector signed char __a, __b, __c; ! __a = (__vector signed char)vec_splats (__m1); ! __b = (__vector signed char)vec_splats (__m2); ! __c = vec_sub (__a, __b); ! return (__m64) ((__vector long long) __c)[0]; #else ! __m64_union __mu1, __mu2, __res; ! __mu1.as_m64 = __m1; ! __mu2.as_m64 = __m2; ! __res.as_char[0] = __mu1.as_char[0] - __mu2.as_char[0]; ! __res.as_char[1] = __mu1.as_char[1] - __mu2.as_char[1]; ! __res.as_char[2] = __mu1.as_char[2] - __mu2.as_char[2]; ! __res.as_char[3] = __mu1.as_char[3] - __mu2.as_char[3]; ! __res.as_char[4] = __mu1.as_char[4] - __mu2.as_char[4]; ! __res.as_char[5] = __mu1.as_char[5] - __mu2.as_char[5]; ! __res.as_char[6] = __mu1.as_char[6] - __mu2.as_char[6]; ! __res.as_char[7] = __mu1.as_char[7] - __mu2.as_char[7]; ! return (__m64) __res.as_m64; #endif } *************** extern __inline __m64 __attribute__((__g *** 544,567 **** _mm_sub_pi16 (__m64 __m1, __m64 __m2) { #if _ARCH_PWR8 ! __vector signed short a, b, c; ! a = (__vector signed short)vec_splats (__m1); ! b = (__vector signed short)vec_splats (__m2); ! c = vec_sub (a, b); ! return (__m64) ((__vector long long) c)[0]; #else ! __m64_union m1, m2, res; ! m1.as_m64 = __m1; ! m2.as_m64 = __m2; ! res.as_short[0] = m1.as_short[0] - m2.as_short[0]; ! res.as_short[1] = m1.as_short[1] - m2.as_short[1]; ! res.as_short[2] = m1.as_short[2] - m2.as_short[2]; ! res.as_short[3] = m1.as_short[3] - m2.as_short[3]; ! return (__m64) res.as_m64; #endif } --- 544,567 ---- _mm_sub_pi16 (__m64 __m1, __m64 __m2) { #if _ARCH_PWR8 ! __vector signed short __a, __b, __c; ! __a = (__vector signed short)vec_splats (__m1); ! __b = (__vector signed short)vec_splats (__m2); ! __c = vec_sub (__a, __b); ! return (__m64) ((__vector long long) __c)[0]; #else ! __m64_union __mu1, __mu2, __res; ! __mu1.as_m64 = __m1; ! __mu2.as_m64 = __m2; ! __res.as_short[0] = __mu1.as_short[0] - __mu2.as_short[0]; ! __res.as_short[1] = __mu1.as_short[1] - __mu2.as_short[1]; ! __res.as_short[2] = __mu1.as_short[2] - __mu2.as_short[2]; ! __res.as_short[3] = __mu1.as_short[3] - __mu2.as_short[3]; ! return (__m64) __res.as_m64; #endif } *************** extern __inline __m64 __attribute__((__g *** 576,597 **** _mm_sub_pi32 (__m64 __m1, __m64 __m2) { #if _ARCH_PWR9 ! __vector signed int a, b, c; ! a = (__vector signed int)vec_splats (__m1); ! b = (__vector signed int)vec_splats (__m2); ! c = vec_sub (a, b); ! return (__m64) ((__vector long long) c)[0]; #else ! __m64_union m1, m2, res; ! m1.as_m64 = __m1; ! m2.as_m64 = __m2; ! res.as_int[0] = m1.as_int[0] - m2.as_int[0]; ! res.as_int[1] = m1.as_int[1] - m2.as_int[1]; ! return (__m64) res.as_m64; #endif } --- 576,597 ---- _mm_sub_pi32 (__m64 __m1, __m64 __m2) { #if _ARCH_PWR9 ! __vector signed int __a, __b, __c; ! __a = (__vector signed int)vec_splats (__m1); ! __b = (__vector signed int)vec_splats (__m2); ! __c = vec_sub (__a, __b); ! return (__m64) ((__vector long long) __c)[0]; #else ! __m64_union __mu1, __mu2, __res; ! __mu1.as_m64 = __m1; ! __mu2.as_m64 = __m2; ! __res.as_int[0] = __mu1.as_int[0] - __mu2.as_int[0]; ! __res.as_int[1] = __mu1.as_int[1] - __mu2.as_int[1]; ! return (__m64) __res.as_m64; #endif } *************** extern __inline __m64 __attribute__((__g *** 729,758 **** _mm_cmpeq_pi8 (__m64 __m1, __m64 __m2) { #if defined(_ARCH_PWR6) && defined(__powerpc64__) ! __m64 res; __asm__( "cmpb %0,%1,%2;\n" ! : "=r" (res) : "r" (__m1), "r" (__m2) : ); ! return (res); #else ! __m64_union m1, m2, res; ! m1.as_m64 = __m1; ! m2.as_m64 = __m2; ! res.as_char[0] = (m1.as_char[0] == m2.as_char[0])? -1: 0; ! res.as_char[1] = (m1.as_char[1] == m2.as_char[1])? -1: 0; ! res.as_char[2] = (m1.as_char[2] == m2.as_char[2])? -1: 0; ! res.as_char[3] = (m1.as_char[3] == m2.as_char[3])? -1: 0; ! res.as_char[4] = (m1.as_char[4] == m2.as_char[4])? -1: 0; ! res.as_char[5] = (m1.as_char[5] == m2.as_char[5])? -1: 0; ! res.as_char[6] = (m1.as_char[6] == m2.as_char[6])? -1: 0; ! res.as_char[7] = (m1.as_char[7] == m2.as_char[7])? -1: 0; ! return (__m64) res.as_m64; #endif } --- 729,758 ---- _mm_cmpeq_pi8 (__m64 __m1, __m64 __m2) { #if defined(_ARCH_PWR6) && defined(__powerpc64__) ! __m64 __res; __asm__( "cmpb %0,%1,%2;\n" ! : "=r" (__res) : "r" (__m1), "r" (__m2) : ); ! return (__res); #else ! __m64_union __mu1, __mu2, __res; ! __mu1.as_m64 = __m1; ! __mu2.as_m64 = __m2; ! __res.as_char[0] = (__mu1.as_char[0] == __mu2.as_char[0])? -1: 0; ! __res.as_char[1] = (__mu1.as_char[1] == __mu2.as_char[1])? -1: 0; ! __res.as_char[2] = (__mu1.as_char[2] == __mu2.as_char[2])? -1: 0; ! __res.as_char[3] = (__mu1.as_char[3] == __mu2.as_char[3])? -1: 0; ! __res.as_char[4] = (__mu1.as_char[4] == __mu2.as_char[4])? -1: 0; ! __res.as_char[5] = (__mu1.as_char[5] == __mu2.as_char[5])? -1: 0; ! __res.as_char[6] = (__mu1.as_char[6] == __mu2.as_char[6])? -1: 0; ! __res.as_char[7] = (__mu1.as_char[7] == __mu2.as_char[7])? -1: 0; ! return (__m64) __res.as_m64; #endif } *************** extern __inline __m64 __attribute__((__g *** 766,793 **** _mm_cmpgt_pi8 (__m64 __m1, __m64 __m2) { #if _ARCH_PWR8 ! __vector signed char a, b, c; ! a = (__vector signed char)vec_splats (__m1); ! b = (__vector signed char)vec_splats (__m2); ! c = (__vector signed char)vec_cmpgt (a, b); ! return (__m64) ((__vector long long) c)[0]; #else ! __m64_union m1, m2, res; ! m1.as_m64 = __m1; ! m2.as_m64 = __m2; ! res.as_char[0] = (m1.as_char[0] > m2.as_char[0])? -1: 0; ! res.as_char[1] = (m1.as_char[1] > m2.as_char[1])? -1: 0; ! res.as_char[2] = (m1.as_char[2] > m2.as_char[2])? -1: 0; ! res.as_char[3] = (m1.as_char[3] > m2.as_char[3])? -1: 0; ! res.as_char[4] = (m1.as_char[4] > m2.as_char[4])? -1: 0; ! res.as_char[5] = (m1.as_char[5] > m2.as_char[5])? -1: 0; ! res.as_char[6] = (m1.as_char[6] > m2.as_char[6])? -1: 0; ! res.as_char[7] = (m1.as_char[7] > m2.as_char[7])? -1: 0; ! return (__m64) res.as_m64; #endif } --- 766,793 ---- _mm_cmpgt_pi8 (__m64 __m1, __m64 __m2) { #if _ARCH_PWR8 ! __vector signed char __a, __b, __c; ! __a = (__vector signed char)vec_splats (__m1); ! __b = (__vector signed char)vec_splats (__m2); ! __c = (__vector signed char)vec_cmpgt (__a, __b); ! return (__m64) ((__vector long long) __c)[0]; #else ! __m64_union __mu1, __mu2, __res; ! __mu1.as_m64 = __m1; ! __mu2.as_m64 = __m2; ! __res.as_char[0] = (__mu1.as_char[0] > __mu2.as_char[0])? -1: 0; ! __res.as_char[1] = (__mu1.as_char[1] > __mu2.as_char[1])? -1: 0; ! __res.as_char[2] = (__mu1.as_char[2] > __mu2.as_char[2])? -1: 0; ! __res.as_char[3] = (__mu1.as_char[3] > __mu2.as_char[3])? -1: 0; ! __res.as_char[4] = (__mu1.as_char[4] > __mu2.as_char[4])? -1: 0; ! __res.as_char[5] = (__mu1.as_char[5] > __mu2.as_char[5])? -1: 0; ! __res.as_char[6] = (__mu1.as_char[6] > __mu2.as_char[6])? -1: 0; ! __res.as_char[7] = (__mu1.as_char[7] > __mu2.as_char[7])? -1: 0; ! return (__m64) __res.as_m64; #endif } *************** extern __inline __m64 __attribute__((__g *** 803,826 **** _mm_cmpeq_pi16 (__m64 __m1, __m64 __m2) { #if _ARCH_PWR8 ! __vector signed short a, b, c; ! a = (__vector signed short)vec_splats (__m1); ! b = (__vector signed short)vec_splats (__m2); ! c = (__vector signed short)vec_cmpeq (a, b); ! return (__m64) ((__vector long long) c)[0]; #else ! __m64_union m1, m2, res; ! m1.as_m64 = __m1; ! m2.as_m64 = __m2; ! res.as_short[0] = (m1.as_short[0] == m2.as_short[0])? -1: 0; ! res.as_short[1] = (m1.as_short[1] == m2.as_short[1])? -1: 0; ! res.as_short[2] = (m1.as_short[2] == m2.as_short[2])? -1: 0; ! res.as_short[3] = (m1.as_short[3] == m2.as_short[3])? -1: 0; ! return (__m64) res.as_m64; #endif } --- 803,826 ---- _mm_cmpeq_pi16 (__m64 __m1, __m64 __m2) { #if _ARCH_PWR8 ! __vector signed short __a, __b, __c; ! __a = (__vector signed short)vec_splats (__m1); ! __b = (__vector signed short)vec_splats (__m2); ! __c = (__vector signed short)vec_cmpeq (__a, __b); ! return (__m64) ((__vector long long) __c)[0]; #else ! __m64_union __mu1, __mu2, __res; ! __mu1.as_m64 = __m1; ! __mu2.as_m64 = __m2; ! __res.as_short[0] = (__mu1.as_short[0] == __mu2.as_short[0])? -1: 0; ! __res.as_short[1] = (__mu1.as_short[1] == __mu2.as_short[1])? -1: 0; ! __res.as_short[2] = (__mu1.as_short[2] == __mu2.as_short[2])? -1: 0; ! __res.as_short[3] = (__mu1.as_short[3] == __mu2.as_short[3])? -1: 0; ! return (__m64) __res.as_m64; #endif } *************** extern __inline __m64 __attribute__((__g *** 834,857 **** _mm_cmpgt_pi16 (__m64 __m1, __m64 __m2) { #if _ARCH_PWR8 ! __vector signed short a, b, c; ! a = (__vector signed short)vec_splats (__m1); ! b = (__vector signed short)vec_splats (__m2); ! c = (__vector signed short)vec_cmpgt (a, b); ! return (__m64) ((__vector long long) c)[0]; #else ! __m64_union m1, m2, res; ! m1.as_m64 = __m1; ! m2.as_m64 = __m2; ! res.as_short[0] = (m1.as_short[0] > m2.as_short[0])? -1: 0; ! res.as_short[1] = (m1.as_short[1] > m2.as_short[1])? -1: 0; ! res.as_short[2] = (m1.as_short[2] > m2.as_short[2])? -1: 0; ! res.as_short[3] = (m1.as_short[3] > m2.as_short[3])? -1: 0; ! return (__m64) res.as_m64; #endif } --- 834,857 ---- _mm_cmpgt_pi16 (__m64 __m1, __m64 __m2) { #if _ARCH_PWR8 ! __vector signed short __a, __b, __c; ! __a = (__vector signed short)vec_splats (__m1); ! __b = (__vector signed short)vec_splats (__m2); ! __c = (__vector signed short)vec_cmpgt (__a, __b); ! return (__m64) ((__vector long long) __c)[0]; #else ! __m64_union __mu1, __mu2, __res; ! __mu1.as_m64 = __m1; ! __mu2.as_m64 = __m2; ! __res.as_short[0] = (__mu1.as_short[0] > __mu2.as_short[0])? -1: 0; ! __res.as_short[1] = (__mu1.as_short[1] > __mu2.as_short[1])? -1: 0; ! __res.as_short[2] = (__mu1.as_short[2] > __mu2.as_short[2])? -1: 0; ! __res.as_short[3] = (__mu1.as_short[3] > __mu2.as_short[3])? -1: 0; ! return (__m64) __res.as_m64; #endif } *************** extern __inline __m64 __attribute__((__g *** 867,888 **** _mm_cmpeq_pi32 (__m64 __m1, __m64 __m2) { #if _ARCH_PWR9 ! __vector signed int a, b, c; ! a = (__vector signed int)vec_splats (__m1); ! b = (__vector signed int)vec_splats (__m2); ! c = (__vector signed int)vec_cmpeq (a, b); ! return (__m64) ((__vector long long) c)[0]; #else ! __m64_union m1, m2, res; ! m1.as_m64 = __m1; ! m2.as_m64 = __m2; ! res.as_int[0] = (m1.as_int[0] == m2.as_int[0])? -1: 0; ! res.as_int[1] = (m1.as_int[1] == m2.as_int[1])? -1: 0; ! return (__m64) res.as_m64; #endif } --- 867,888 ---- _mm_cmpeq_pi32 (__m64 __m1, __m64 __m2) { #if _ARCH_PWR9 ! __vector signed int __a, __b, __c; ! __a = (__vector signed int)vec_splats (__m1); ! __b = (__vector signed int)vec_splats (__m2); ! __c = (__vector signed int)vec_cmpeq (__a, __b); ! return (__m64) ((__vector long long) __c)[0]; #else ! __m64_union __mu1, __mu2, __res; ! __mu1.as_m64 = __m1; ! __mu2.as_m64 = __m2; ! __res.as_int[0] = (__mu1.as_int[0] == __mu2.as_int[0])? -1: 0; ! __res.as_int[1] = (__mu1.as_int[1] == __mu2.as_int[1])? -1: 0; ! return (__m64) __res.as_m64; #endif } *************** extern __inline __m64 __attribute__((__g *** 896,917 **** _mm_cmpgt_pi32 (__m64 __m1, __m64 __m2) { #if _ARCH_PWR9 ! __vector signed int a, b, c; ! a = (__vector signed int)vec_splats (__m1); ! b = (__vector signed int)vec_splats (__m2); ! c = (__vector signed int)vec_cmpgt (a, b); ! return (__m64) ((__vector long long) c)[0]; #else ! __m64_union m1, m2, res; ! m1.as_m64 = __m1; ! m2.as_m64 = __m2; ! res.as_int[0] = (m1.as_int[0] > m2.as_int[0])? -1: 0; ! res.as_int[1] = (m1.as_int[1] > m2.as_int[1])? -1: 0; ! return (__m64) res.as_m64; #endif } --- 896,917 ---- _mm_cmpgt_pi32 (__m64 __m1, __m64 __m2) { #if _ARCH_PWR9 ! __vector signed int __a, __b, __c; ! __a = (__vector signed int)vec_splats (__m1); ! __b = (__vector signed int)vec_splats (__m2); ! __c = (__vector signed int)vec_cmpgt (__a, __b); ! return (__m64) ((__vector long long) __c)[0]; #else ! __m64_union __mu1, __mu2, __res; ! __mu1.as_m64 = __m1; ! __mu2.as_m64 = __m2; ! __res.as_int[0] = (__mu1.as_int[0] > __mu2.as_int[0])? -1: 0; ! __res.as_int[1] = (__mu1.as_int[1] > __mu2.as_int[1])? -1: 0; ! return (__m64) __res.as_m64; #endif } *************** _m_pcmpgtd (__m64 __m1, __m64 __m2) *** 927,938 **** extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_adds_pi8 (__m64 __m1, __m64 __m2) { ! __vector signed char a, b, c; ! a = (__vector signed char)vec_splats (__m1); ! b = (__vector signed char)vec_splats (__m2); ! c = vec_adds (a, b); ! return (__m64) ((__vector long long) c)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 927,938 ---- extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_adds_pi8 (__m64 __m1, __m64 __m2) { ! __vector signed char __a, __b, __c; ! __a = (__vector signed char)vec_splats (__m1); ! __b = (__vector signed char)vec_splats (__m2); ! __c = vec_adds (__a, __b); ! return (__m64) ((__vector long long) __c)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** _m_paddsb (__m64 __m1, __m64 __m2) *** 945,956 **** extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_adds_pi16 (__m64 __m1, __m64 __m2) { ! __vector signed short a, b, c; ! a = (__vector signed short)vec_splats (__m1); ! b = (__vector signed short)vec_splats (__m2); ! c = vec_adds (a, b); ! return (__m64) ((__vector long long) c)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 945,956 ---- extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_adds_pi16 (__m64 __m1, __m64 __m2) { ! __vector signed short __a, __b, __c; ! __a = (__vector signed short)vec_splats (__m1); ! __b = (__vector signed short)vec_splats (__m2); ! __c = vec_adds (__a, __b); ! return (__m64) ((__vector long long) __c)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** _m_paddsw (__m64 __m1, __m64 __m2) *** 963,974 **** extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_adds_pu8 (__m64 __m1, __m64 __m2) { ! __vector unsigned char a, b, c; ! a = (__vector unsigned char)vec_splats (__m1); ! b = (__vector unsigned char)vec_splats (__m2); ! c = vec_adds (a, b); ! return (__m64) ((__vector long long) c)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 963,974 ---- extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_adds_pu8 (__m64 __m1, __m64 __m2) { ! __vector unsigned char __a, __b, __c; ! __a = (__vector unsigned char)vec_splats (__m1); ! __b = (__vector unsigned char)vec_splats (__m2); ! __c = vec_adds (__a, __b); ! return (__m64) ((__vector long long) __c)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** _m_paddusb (__m64 __m1, __m64 __m2) *** 982,993 **** extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_adds_pu16 (__m64 __m1, __m64 __m2) { ! __vector unsigned short a, b, c; ! a = (__vector unsigned short)vec_splats (__m1); ! b = (__vector unsigned short)vec_splats (__m2); ! c = vec_adds (a, b); ! return (__m64) ((__vector long long) c)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 982,993 ---- extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_adds_pu16 (__m64 __m1, __m64 __m2) { ! __vector unsigned short __a, __b, __c; ! __a = (__vector unsigned short)vec_splats (__m1); ! __b = (__vector unsigned short)vec_splats (__m2); ! __c = vec_adds (__a, __b); ! return (__m64) ((__vector long long) __c)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** _m_paddusw (__m64 __m1, __m64 __m2) *** 1001,1012 **** extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_subs_pi8 (__m64 __m1, __m64 __m2) { ! __vector signed char a, b, c; ! a = (__vector signed char)vec_splats (__m1); ! b = (__vector signed char)vec_splats (__m2); ! c = vec_subs (a, b); ! return (__m64) ((__vector long long) c)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 1001,1012 ---- extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_subs_pi8 (__m64 __m1, __m64 __m2) { ! __vector signed char __a, __b, __c; ! __a = (__vector signed char)vec_splats (__m1); ! __b = (__vector signed char)vec_splats (__m2); ! __c = vec_subs (__a, __b); ! return (__m64) ((__vector long long) __c)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** _m_psubsb (__m64 __m1, __m64 __m2) *** 1020,1031 **** extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_subs_pi16 (__m64 __m1, __m64 __m2) { ! __vector signed short a, b, c; ! a = (__vector signed short)vec_splats (__m1); ! b = (__vector signed short)vec_splats (__m2); ! c = vec_subs (a, b); ! return (__m64) ((__vector long long) c)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 1020,1031 ---- extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_subs_pi16 (__m64 __m1, __m64 __m2) { ! __vector signed short __a, __b, __c; ! __a = (__vector signed short)vec_splats (__m1); ! __b = (__vector signed short)vec_splats (__m2); ! __c = vec_subs (__a, __b); ! return (__m64) ((__vector long long) __c)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** _m_psubsw (__m64 __m1, __m64 __m2) *** 1039,1050 **** extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_subs_pu8 (__m64 __m1, __m64 __m2) { ! __vector unsigned char a, b, c; ! a = (__vector unsigned char)vec_splats (__m1); ! b = (__vector unsigned char)vec_splats (__m2); ! c = vec_subs (a, b); ! return (__m64) ((__vector long long) c)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 1039,1050 ---- extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_subs_pu8 (__m64 __m1, __m64 __m2) { ! __vector unsigned char __a, __b, __c; ! __a = (__vector unsigned char)vec_splats (__m1); ! __b = (__vector unsigned char)vec_splats (__m2); ! __c = vec_subs (__a, __b); ! return (__m64) ((__vector long long) __c)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** _m_psubusb (__m64 __m1, __m64 __m2) *** 1058,1069 **** extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_subs_pu16 (__m64 __m1, __m64 __m2) { ! __vector unsigned short a, b, c; ! a = (__vector unsigned short)vec_splats (__m1); ! b = (__vector unsigned short)vec_splats (__m2); ! c = vec_subs (a, b); ! return (__m64) ((__vector long long) c)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 1058,1069 ---- extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_subs_pu16 (__m64 __m1, __m64 __m2) { ! __vector unsigned short __a, __b, __c; ! __a = (__vector unsigned short)vec_splats (__m1); ! __b = (__vector unsigned short)vec_splats (__m2); ! __c = vec_subs (__a, __b); ! return (__m64) ((__vector long long) __c)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** _m_psubusw (__m64 __m1, __m64 __m2) *** 1078,1091 **** extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_madd_pi16 (__m64 __m1, __m64 __m2) { ! __vector signed short a, b; ! __vector signed int c; ! __vector signed int zero = {0, 0, 0, 0}; ! a = (__vector signed short)vec_splats (__m1); ! b = (__vector signed short)vec_splats (__m2); ! c = vec_vmsumshm (a, b, zero); ! return (__m64) ((__vector long long) c)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 1078,1091 ---- extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_madd_pi16 (__m64 __m1, __m64 __m2) { ! __vector signed short __a, __b; ! __vector signed int __c; ! __vector signed int __zero = {0, 0, 0, 0}; ! __a = (__vector signed short)vec_splats (__m1); ! __b = (__vector signed short)vec_splats (__m2); ! __c = vec_vmsumshm (__a, __b, __zero); ! return (__m64) ((__vector long long) __c)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** _m_pmaddwd (__m64 __m1, __m64 __m2) *** 1098,1107 **** extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_mulhi_pi16 (__m64 __m1, __m64 __m2) { ! __vector signed short a, b; ! __vector signed short c; ! __vector signed int w0, w1; ! __vector unsigned char xform1 = { #ifdef __LITTLE_ENDIAN__ 0x02, 0x03, 0x12, 0x13, 0x06, 0x07, 0x16, 0x17, 0x0A, 0x0B, 0x1A, 0x1B, 0x0E, 0x0F, 0x1E, 0x1F --- 1098,1107 ---- extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_mulhi_pi16 (__m64 __m1, __m64 __m2) { ! __vector signed short __a, __b; ! __vector signed short __c; ! __vector signed int __w0, __w1; ! __vector unsigned char __xform1 = { #ifdef __LITTLE_ENDIAN__ 0x02, 0x03, 0x12, 0x13, 0x06, 0x07, 0x16, 0x17, 0x0A, 0x0B, 0x1A, 0x1B, 0x0E, 0x0F, 0x1E, 0x1F *************** _mm_mulhi_pi16 (__m64 __m1, __m64 __m2) *** 1111,1124 **** #endif }; ! a = (__vector signed short)vec_splats (__m1); ! b = (__vector signed short)vec_splats (__m2); ! w0 = vec_vmulesh (a, b); ! w1 = vec_vmulosh (a, b); ! c = (__vector signed short)vec_perm (w0, w1, xform1); ! return (__m64) ((__vector long long) c)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 1111,1124 ---- #endif }; ! __a = (__vector signed short)vec_splats (__m1); ! __b = (__vector signed short)vec_splats (__m2); ! __w0 = vec_vmulesh (__a, __b); ! __w1 = vec_vmulosh (__a, __b); ! __c = (__vector signed short)vec_perm (__w0, __w1, __xform1); ! return (__m64) ((__vector long long) __c)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** _m_pmulhw (__m64 __m1, __m64 __m2) *** 1132,1143 **** extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_mullo_pi16 (__m64 __m1, __m64 __m2) { ! __vector signed short a, b, c; ! a = (__vector signed short)vec_splats (__m1); ! b = (__vector signed short)vec_splats (__m2); ! c = a * b; ! return (__m64) ((__vector long long) c)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 1132,1143 ---- extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_mullo_pi16 (__m64 __m1, __m64 __m2) { ! __vector signed short __a, __b, __c; ! __a = (__vector signed short)vec_splats (__m1); ! __b = (__vector signed short)vec_splats (__m2); ! __c = __a * __b; ! return (__m64) ((__vector long long) __c)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** _m_pmullw (__m64 __m1, __m64 __m2) *** 1150,1164 **** extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_sll_pi16 (__m64 __m, __m64 __count) { ! __vector signed short m, r; ! __vector unsigned short c; if (__count <= 15) { ! m = (__vector signed short)vec_splats (__m); ! c = (__vector unsigned short)vec_splats ((unsigned short)__count); ! r = vec_sl (m, (__vector unsigned short)c); ! return (__m64) ((__vector long long) r)[0]; } else return (0); --- 1150,1164 ---- extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_sll_pi16 (__m64 __m, __m64 __count) { ! __vector signed short __r; ! __vector unsigned short __c; if (__count <= 15) { ! __r = (__vector signed short)vec_splats (__m); ! __c = (__vector unsigned short)vec_splats ((unsigned short)__count); ! __r = vec_sl (__r, (__vector unsigned short)__c); ! return (__m64) ((__vector long long) __r)[0]; } else return (0); *************** _m_psllwi (__m64 __m, int __count) *** 1187,1199 **** extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_sll_pi32 (__m64 __m, __m64 __count) { ! __m64_union m, res; ! m.as_m64 = __m; ! res.as_int[0] = m.as_int[0] << __count; ! res.as_int[1] = m.as_int[1] << __count; ! return (res.as_m64); } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 1187,1199 ---- extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_sll_pi32 (__m64 __m, __m64 __count) { ! __m64_union __res; ! __res.as_m64 = __m; ! __res.as_int[0] = __res.as_int[0] << __count; ! __res.as_int[1] = __res.as_int[1] << __count; ! return (__res.as_m64); } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** _m_pslldi (__m64 __m, int __count) *** 1219,1233 **** extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_sra_pi16 (__m64 __m, __m64 __count) { ! __vector signed short m, r; ! __vector unsigned short c; if (__count <= 15) { ! m = (__vector signed short)vec_splats (__m); ! c = (__vector unsigned short)vec_splats ((unsigned short)__count); ! r = vec_sra (m, (__vector unsigned short)c); ! return (__m64) ((__vector long long) r)[0]; } else return (0); --- 1219,1233 ---- extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_sra_pi16 (__m64 __m, __m64 __count) { ! __vector signed short __r; ! __vector unsigned short __c; if (__count <= 15) { ! __r = (__vector signed short)vec_splats (__m); ! __c = (__vector unsigned short)vec_splats ((unsigned short)__count); ! __r = vec_sra (__r, (__vector unsigned short)__c); ! return (__m64) ((__vector long long) __r)[0]; } else return (0); *************** _m_psrawi (__m64 __m, int __count) *** 1256,1268 **** extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_sra_pi32 (__m64 __m, __m64 __count) { ! __m64_union m, res; ! m.as_m64 = __m; ! res.as_int[0] = m.as_int[0] >> __count; ! res.as_int[1] = m.as_int[1] >> __count; ! return (res.as_m64); } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 1256,1268 ---- extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_sra_pi32 (__m64 __m, __m64 __count) { ! __m64_union __res; ! __res.as_m64 = __m; ! __res.as_int[0] = __res.as_int[0] >> __count; ! __res.as_int[1] = __res.as_int[1] >> __count; ! return (__res.as_m64); } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** _m_psradi (__m64 __m, int __count) *** 1288,1302 **** extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_srl_pi16 (__m64 __m, __m64 __count) { ! __vector unsigned short m, r; ! __vector unsigned short c; if (__count <= 15) { ! m = (__vector unsigned short)vec_splats (__m); ! c = (__vector unsigned short)vec_splats ((unsigned short)__count); ! r = vec_sr (m, (__vector unsigned short)c); ! return (__m64) ((__vector long long) r)[0]; } else return (0); --- 1288,1302 ---- extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_srl_pi16 (__m64 __m, __m64 __count) { ! __vector unsigned short __r; ! __vector unsigned short __c; if (__count <= 15) { ! __r = (__vector unsigned short)vec_splats (__m); ! __c = (__vector unsigned short)vec_splats ((unsigned short)__count); ! __r = vec_sr (__r, (__vector unsigned short)__c); ! return (__m64) ((__vector long long) __r)[0]; } else return (0); *************** _m_psrlwi (__m64 __m, int __count) *** 1325,1337 **** extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_srl_pi32 (__m64 __m, __m64 __count) { ! __m64_union m, res; ! m.as_m64 = __m; ! res.as_int[0] = (unsigned int)m.as_int[0] >> __count; ! res.as_int[1] = (unsigned int)m.as_int[1] >> __count; ! return (res.as_m64); } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 1325,1337 ---- extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_srl_pi32 (__m64 __m, __m64 __count) { ! __m64_union __res; ! __res.as_m64 = __m; ! __res.as_int[0] = (unsigned int)__res.as_int[0] >> __count; ! __res.as_int[1] = (unsigned int)__res.as_int[1] >> __count; ! return (__res.as_m64); } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** _m_psrldi (__m64 __m, int __count) *** 1358,1381 **** extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_set_pi32 (int __i1, int __i0) { ! __m64_union res; ! res.as_int[0] = __i0; ! res.as_int[1] = __i1; ! return (res.as_m64); } /* Creates a vector of four 16-bit values; W0 is least significant. */ extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_set_pi16 (short __w3, short __w2, short __w1, short __w0) { ! __m64_union res; ! res.as_short[0] = __w0; ! res.as_short[1] = __w1; ! res.as_short[2] = __w2; ! res.as_short[3] = __w3; ! return (res.as_m64); } /* Creates a vector of eight 8-bit values; B0 is least significant. */ --- 1358,1381 ---- extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_set_pi32 (int __i1, int __i0) { ! __m64_union __res; ! __res.as_int[0] = __i0; ! __res.as_int[1] = __i1; ! return (__res.as_m64); } /* Creates a vector of four 16-bit values; W0 is least significant. */ extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_set_pi16 (short __w3, short __w2, short __w1, short __w0) { ! __m64_union __res; ! __res.as_short[0] = __w0; ! __res.as_short[1] = __w1; ! __res.as_short[2] = __w2; ! __res.as_short[3] = __w3; ! return (__res.as_m64); } /* Creates a vector of eight 8-bit values; B0 is least significant. */ *************** extern __inline __m64 __attribute__((__g *** 1383,1410 **** _mm_set_pi8 (char __b7, char __b6, char __b5, char __b4, char __b3, char __b2, char __b1, char __b0) { ! __m64_union res; ! res.as_char[0] = __b0; ! res.as_char[1] = __b1; ! res.as_char[2] = __b2; ! res.as_char[3] = __b3; ! res.as_char[4] = __b4; ! res.as_char[5] = __b5; ! res.as_char[6] = __b6; ! res.as_char[7] = __b7; ! return (res.as_m64); } /* Similar, but with the arguments in reverse order. */ extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_setr_pi32 (int __i0, int __i1) { ! __m64_union res; ! res.as_int[0] = __i0; ! res.as_int[1] = __i1; ! return (res.as_m64); } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 1383,1410 ---- _mm_set_pi8 (char __b7, char __b6, char __b5, char __b4, char __b3, char __b2, char __b1, char __b0) { ! __m64_union __res; ! __res.as_char[0] = __b0; ! __res.as_char[1] = __b1; ! __res.as_char[2] = __b2; ! __res.as_char[3] = __b3; ! __res.as_char[4] = __b4; ! __res.as_char[5] = __b5; ! __res.as_char[6] = __b6; ! __res.as_char[7] = __b7; ! return (__res.as_m64); } /* Similar, but with the arguments in reverse order. */ extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_setr_pi32 (int __i0, int __i1) { ! __m64_union __res; ! __res.as_int[0] = __i0; ! __res.as_int[1] = __i1; ! return (__res.as_m64); } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** _mm_setr_pi8 (char __b0, char __b1, char *** 1424,1434 **** extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_set1_pi32 (int __i) { ! __m64_union res; ! res.as_int[0] = __i; ! res.as_int[1] = __i; ! return (res.as_m64); } /* Creates a vector of four 16-bit values, all elements containing W. */ --- 1424,1434 ---- extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_set1_pi32 (int __i) { ! __m64_union __res; ! __res.as_int[0] = __i; ! __res.as_int[1] = __i; ! return (__res.as_m64); } /* Creates a vector of four 16-bit values, all elements containing W. */ *************** _mm_set1_pi16 (short __w) *** 1441,1453 **** w = (__vector signed short)vec_splats (__w); return (__m64) ((__vector long long) w)[0]; #else ! __m64_union res; ! res.as_short[0] = __w; ! res.as_short[1] = __w; ! res.as_short[2] = __w; ! res.as_short[3] = __w; ! return (res.as_m64); #endif } --- 1441,1453 ---- w = (__vector signed short)vec_splats (__w); return (__m64) ((__vector long long) w)[0]; #else ! __m64_union __res; ! __res.as_short[0] = __w; ! __res.as_short[1] = __w; ! __res.as_short[2] = __w; ! __res.as_short[3] = __w; ! return (__res.as_m64); #endif } *************** extern __inline __m64 __attribute__((__g *** 1456,1477 **** _mm_set1_pi8 (signed char __b) { #if _ARCH_PWR8 ! __vector signed char b; ! b = (__vector signed char)vec_splats (__b); ! return (__m64) ((__vector long long) b)[0]; #else ! __m64_union res; ! res.as_char[0] = __b; ! res.as_char[1] = __b; ! res.as_char[2] = __b; ! res.as_char[3] = __b; ! res.as_char[4] = __b; ! res.as_char[5] = __b; ! res.as_char[6] = __b; ! res.as_char[7] = __b; ! return (res.as_m64); #endif } #endif /* _MMINTRIN_H_INCLUDED */ --- 1456,1477 ---- _mm_set1_pi8 (signed char __b) { #if _ARCH_PWR8 ! __vector signed char __res; ! __res = (__vector signed char)vec_splats (__b); ! return (__m64) ((__vector long long) __res)[0]; #else ! __m64_union __res; ! __res.as_char[0] = __b; ! __res.as_char[1] = __b; ! __res.as_char[2] = __b; ! __res.as_char[3] = __b; ! __res.as_char[4] = __b; ! __res.as_char[5] = __b; ! __res.as_char[6] = __b; ! __res.as_char[7] = __b; ! return (__res.as_m64); #endif } #endif /* _MMINTRIN_H_INCLUDED */ diff -Nrcpad gcc-10.3.0/gcc/config/rs6000/pmmintrin.h gcc-10.4.0/gcc/config/rs6000/pmmintrin.h *** gcc-10.3.0/gcc/config/rs6000/pmmintrin.h Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/config/rs6000/pmmintrin.h Tue Jun 28 08:54:27 2022 *************** *** 58,112 **** extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_addsub_ps (__m128 __X, __m128 __Y) { ! const __v4sf even_n0 = {-0.0, 0.0, -0.0, 0.0}; ! __v4sf even_neg_Y = vec_xor(__Y, even_n0); ! return (__m128) vec_add (__X, even_neg_Y); } extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_addsub_pd (__m128d __X, __m128d __Y) { ! const __v2df even_n0 = {-0.0, 0.0}; ! __v2df even_neg_Y = vec_xor(__Y, even_n0); ! return (__m128d) vec_add (__X, even_neg_Y); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_hadd_ps (__m128 __X, __m128 __Y) { ! __vector unsigned char xform2 = { 0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0A, 0x0B, 0x10, 0x11, 0x12, 0x13, 0x18, 0x19, 0x1A, 0x1B }; ! __vector unsigned char xform1 = { 0x04, 0x05, 0x06, 0x07, 0x0C, 0x0D, 0x0E, 0x0F, 0x14, 0x15, 0x16, 0x17, 0x1C, 0x1D, 0x1E, 0x1F }; ! return (__m128) vec_add (vec_perm ((__v4sf) __X, (__v4sf) __Y, xform2), ! vec_perm ((__v4sf) __X, (__v4sf) __Y, xform1)); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_hsub_ps (__m128 __X, __m128 __Y) { ! __vector unsigned char xform2 = { 0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0A, 0x0B, 0x10, 0x11, 0x12, 0x13, 0x18, 0x19, 0x1A, 0x1B }; ! __vector unsigned char xform1 = { 0x04, 0x05, 0x06, 0x07, 0x0C, 0x0D, 0x0E, 0x0F, 0x14, 0x15, 0x16, 0x17, 0x1C, 0x1D, 0x1E, 0x1F }; ! return (__m128) vec_sub (vec_perm ((__v4sf) __X, (__v4sf) __Y, xform2), ! vec_perm ((__v4sf) __X, (__v4sf) __Y, xform1)); } extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 58,112 ---- extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_addsub_ps (__m128 __X, __m128 __Y) { ! const __v4sf __even_n0 = {-0.0, 0.0, -0.0, 0.0}; ! __v4sf __even_neg_Y = vec_xor(__Y, __even_n0); ! return (__m128) vec_add (__X, __even_neg_Y); } extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_addsub_pd (__m128d __X, __m128d __Y) { ! const __v2df __even_n0 = {-0.0, 0.0}; ! __v2df __even_neg_Y = vec_xor(__Y, __even_n0); ! return (__m128d) vec_add (__X, __even_neg_Y); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_hadd_ps (__m128 __X, __m128 __Y) { ! __vector unsigned char __xform2 = { 0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0A, 0x0B, 0x10, 0x11, 0x12, 0x13, 0x18, 0x19, 0x1A, 0x1B }; ! __vector unsigned char __xform1 = { 0x04, 0x05, 0x06, 0x07, 0x0C, 0x0D, 0x0E, 0x0F, 0x14, 0x15, 0x16, 0x17, 0x1C, 0x1D, 0x1E, 0x1F }; ! return (__m128) vec_add (vec_perm ((__v4sf) __X, (__v4sf) __Y, __xform2), ! vec_perm ((__v4sf) __X, (__v4sf) __Y, __xform1)); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_hsub_ps (__m128 __X, __m128 __Y) { ! __vector unsigned char __xform2 = { 0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0A, 0x0B, 0x10, 0x11, 0x12, 0x13, 0x18, 0x19, 0x1A, 0x1B }; ! __vector unsigned char __xform1 = { 0x04, 0x05, 0x06, 0x07, 0x0C, 0x0D, 0x0E, 0x0F, 0x14, 0x15, 0x16, 0x17, 0x1C, 0x1D, 0x1E, 0x1F }; ! return (__m128) vec_sub (vec_perm ((__v4sf) __X, (__v4sf) __Y, __xform2), ! vec_perm ((__v4sf) __X, (__v4sf) __Y, __xform1)); } extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) diff -Nrcpad gcc-10.3.0/gcc/config/rs6000/ppc-asm.h gcc-10.4.0/gcc/config/rs6000/ppc-asm.h *** gcc-10.3.0/gcc/config/rs6000/ppc-asm.h Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/config/rs6000/ppc-asm.h Tue Jun 28 08:54:27 2022 *************** see the files COPYING3 and COPYING.RUNTI *** 262,267 **** --- 262,275 ---- #undef toc #define FUNC_NAME(name) GLUE(__USER_LABEL_PREFIX__,name) + #ifdef __PCREL__ + #define JUMP_TARGET(name) GLUE(FUNC_NAME(name),@notoc) + #define FUNC_START(name) \ + .type FUNC_NAME(name),@function; \ + .globl FUNC_NAME(name); \ + FUNC_NAME(name): \ + .localentry FUNC_NAME(name),1 + #else #define JUMP_TARGET(name) FUNC_NAME(name) #define FUNC_START(name) \ .type FUNC_NAME(name),@function; \ *************** FUNC_NAME(name): \ *** 270,275 **** --- 278,284 ---- 0: addis 2,12,(.TOC.-0b)@ha; \ addi 2,2,(.TOC.-0b)@l; \ .localentry FUNC_NAME(name),.-FUNC_NAME(name) + #endif /* !__PCREL__ */ #define HIDDEN_FUNC(name) \ FUNC_START(name) \ diff -Nrcpad gcc-10.3.0/gcc/config/rs6000/predicates.md gcc-10.4.0/gcc/config/rs6000/predicates.md *** gcc-10.3.0/gcc/config/rs6000/predicates.md Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/config/rs6000/predicates.md Tue Jun 28 08:54:27 2022 *************** *** 1129,1135 **** (match_test "(mode == V16QImode && (vsx_register_operand (op, mode) || (MEM_P (op) ! && quad_address_p (XEXP (op, 0), mode, false))))")) ;; Return true if operand is an operator used in rotate-and-mask instructions. (define_predicate "rotate_mask_operator" --- 1129,1136 ---- (match_test "(mode == V16QImode && (vsx_register_operand (op, mode) || (MEM_P (op) ! && (indexed_or_indirect_address (XEXP (op, 0), mode) ! || quad_address_p (XEXP (op, 0), mode, false)))))")) ;; Return true if operand is an operator used in rotate-and-mask instructions. (define_predicate "rotate_mask_operator" *************** *** 1863,1865 **** --- 1864,1880 ---- { return address_is_prefixed (XEXP (op, 0), mode, NON_PREFIXED_DEFAULT); }) + + ;; Return true if the operand is a valid Mach-O pic address. + ;; + (define_predicate "macho_pic_address" + (match_code "const,unspec") + { + if (GET_CODE (op) == CONST) + op = XEXP (op, 0); + + if (GET_CODE (op) == UNSPEC && XINT (op, 1) == UNSPEC_MACHOPIC_OFFSET) + return CONSTANT_P (XVECEXP (op, 0, 0)); + else + return false; + }) diff -Nrcpad gcc-10.3.0/gcc/config/rs6000/rs6000-builtin.def gcc-10.4.0/gcc/config/rs6000/rs6000-builtin.def *** gcc-10.3.0/gcc/config/rs6000/rs6000-builtin.def Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/config/rs6000/rs6000-builtin.def Tue Jun 28 08:54:27 2022 *************** *** 467,472 **** --- 467,491 ---- | RS6000_BTC_SENARY), \ CODE_FOR_ ## ICODE) /* ICODE */ + #define BU_MMA_PAIR_LD(ENUM, NAME, ATTR) \ + RS6000_BUILTIN_M (VSX_BUILTIN_ ## ENUM, /* ENUM */ \ + "__builtin_vsx_" NAME, /* NAME */ \ + RS6000_BTM_MMA, /* MASK */ \ + (RS6000_BTC_ ## ATTR /* ATTR */ \ + | RS6000_BTC_BINARY \ + | RS6000_BTC_GIMPLE), \ + CODE_FOR_nothing) /* ICODE */ + + #define BU_MMA_PAIR_ST(ENUM, NAME, ATTR) \ + RS6000_BUILTIN_M (VSX_BUILTIN_ ## ENUM, /* ENUM */ \ + "__builtin_vsx_" NAME, /* NAME */ \ + RS6000_BTM_MMA, /* MASK */ \ + (RS6000_BTC_ ## ATTR /* ATTR */ \ + | RS6000_BTC_TERNARY \ + | RS6000_BTC_VOID \ + | RS6000_BTC_GIMPLE), \ + CODE_FOR_nothing) /* ICODE */ + /* ISA 2.05 (power6) convenience macros. */ /* For functions that depend on the CMPB instruction */ #define BU_P6_2(ENUM, NAME, ATTR, ICODE) \ *************** BU_SPECIAL_X (RS6000_BUILTIN_CFSTRING, " *** 2771,2776 **** --- 2790,2798 ---- BU_P10V_VSX_1 (XVCVBF16SPN, "xvcvbf16spn", MISC, vsx_xvcvbf16spn) BU_P10V_VSX_1 (XVCVSPBF16, "xvcvspbf16", MISC, vsx_xvcvspbf16) + BU_MMA_PAIR_LD (LXVP, "lxvp", MISC) + BU_MMA_PAIR_ST (STXVP, "stxvp", PAIR) + BU_MMA_1 (XXMFACC, "xxmfacc", QUAD, mma_xxmfacc) BU_MMA_1 (XXMTACC, "xxmtacc", QUAD, mma_xxmtacc) BU_MMA_1 (XXSETACCZ, "xxsetaccz", MISC, mma_xxsetaccz) *************** BU_MMA_M2 (DISASSEMBLE_ACC, "disassemble *** 2779,2784 **** --- 2801,2807 ---- BU_MMA_V2 (DISASSEMBLE_PAIR,"disassemble_pair", PAIR, nothing) BU_COMPAT (VSX_BUILTIN_DISASSEMBLE_PAIR, "mma_disassemble_pair") + BU_MMA_V3 (BUILD_PAIR, "build_pair", MISC, vsx_assemble_pair) BU_MMA_V3 (ASSEMBLE_PAIR, "assemble_pair", MISC, vsx_assemble_pair) BU_COMPAT (VSX_BUILTIN_ASSEMBLE_PAIR, "mma_assemble_pair") BU_MMA_3 (XVBF16GER2, "xvbf16ger2", MISC, mma_xvbf16ger2) *************** BU_MMA_3 (XVI8GER4SPP, "xvi8ger4spp" *** 2811,2816 **** --- 2834,2840 ---- BU_MMA_3 (XVI16GER2PP, "xvi16ger2pp", QUAD, mma_xvi16ger2pp) BU_MMA_3 (XVI16GER2SPP, "xvi16ger2spp", QUAD, mma_xvi16ger2spp) + BU_MMA_5 (BUILD_ACC, "build_acc", MISC, mma_assemble_acc) BU_MMA_5 (ASSEMBLE_ACC, "assemble_acc", MISC, mma_assemble_acc) BU_MMA_5 (PMXVF32GER, "pmxvf32ger", MISC, mma_pmxvf32ger) BU_MMA_5 (PMXVF64GER, "pmxvf64ger", PAIR, mma_pmxvf64ger) diff -Nrcpad gcc-10.3.0/gcc/config/rs6000/rs6000-call.c gcc-10.4.0/gcc/config/rs6000/rs6000-call.c *** gcc-10.3.0/gcc/config/rs6000/rs6000-call.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/config/rs6000/rs6000-call.c Tue Jun 28 08:54:27 2022 *************** mma_expand_builtin (tree exp, rtx target *** 9434,9445 **** --- 9434,9456 ---- pat = GEN_FCN (icode) (op[0], op[1]); break; case 3: + /* The ASSEMBLE builtin source operands are reversed in little-endian + mode, so reorder them. */ + if (fcode == VSX_BUILTIN_ASSEMBLE_PAIR_INTERNAL && !WORDS_BIG_ENDIAN) + std::swap (op[1], op[2]); pat = GEN_FCN (icode) (op[0], op[1], op[2]); break; case 4: pat = GEN_FCN (icode) (op[0], op[1], op[2], op[3]); break; case 5: + /* The ASSEMBLE builtin source operands are reversed in little-endian + mode, so reorder them. */ + if (fcode == MMA_BUILTIN_ASSEMBLE_ACC_INTERNAL && !WORDS_BIG_ENDIAN) + { + std::swap (op[1], op[4]); + std::swap (op[2], op[3]); + } pat = GEN_FCN (icode) (op[0], op[1], op[2], op[3], op[4]); break; case 6: *************** rs6000_gimple_fold_mma_builtin (gimple_s *** 10837,10853 **** gimple *new_call; tree new_decl; ! if (rs6000_builtin_info[fncode + 1].icode == CODE_FOR_nothing) { /* This is an MMA disassemble built-in function. */ - gcc_assert (fncode == MMA_BUILTIN_DISASSEMBLE_ACC - || fncode == VSX_BUILTIN_DISASSEMBLE_PAIR); - push_gimplify_context (true); tree dst_ptr = gimple_call_arg (stmt, 0); tree src_ptr = gimple_call_arg (stmt, 1); tree src_type = TREE_TYPE (src_ptr); ! tree src = make_ssa_name (TREE_TYPE (src_type)); gimplify_assign (src, build_simple_mem_ref (src_ptr), &new_seq); /* If we are disassembling an accumulator/pair and our destination is --- 10848,10862 ---- gimple *new_call; tree new_decl; ! if (fncode == MMA_BUILTIN_DISASSEMBLE_ACC ! || fncode == VSX_BUILTIN_DISASSEMBLE_PAIR) { /* This is an MMA disassemble built-in function. */ push_gimplify_context (true); tree dst_ptr = gimple_call_arg (stmt, 0); tree src_ptr = gimple_call_arg (stmt, 1); tree src_type = TREE_TYPE (src_ptr); ! tree src = create_tmp_reg_or_ssa_name (TREE_TYPE (src_type)); gimplify_assign (src, build_simple_mem_ref (src_ptr), &new_seq); /* If we are disassembling an accumulator/pair and our destination is *************** rs6000_gimple_fold_mma_builtin (gimple_s *** 10871,10877 **** { new_decl = rs6000_builtin_decls[MMA_BUILTIN_XXMFACC_INTERNAL]; new_call = gimple_build_call (new_decl, 1, src); ! src = make_ssa_name (vector_quad_type_node); gimple_call_set_lhs (new_call, src); gimple_seq_add_stmt (&new_seq, new_call); } --- 10880,10886 ---- { new_decl = rs6000_builtin_decls[MMA_BUILTIN_XXMFACC_INTERNAL]; new_call = gimple_build_call (new_decl, 1, src); ! src = create_tmp_reg_or_ssa_name (vector_quad_type_node); gimple_call_set_lhs (new_call, src); gimple_seq_add_stmt (&new_seq, new_call); } *************** rs6000_gimple_fold_mma_builtin (gimple_s *** 10897,10902 **** --- 10906,10943 ---- gsi_replace_with_seq (gsi, new_seq, true); return true; } + else if (fncode == VSX_BUILTIN_LXVP) + { + push_gimplify_context (true); + tree offset = gimple_call_arg (stmt, 0); + tree ptr = gimple_call_arg (stmt, 1); + tree lhs = gimple_call_lhs (stmt); + if (TREE_TYPE (TREE_TYPE (ptr)) != vector_pair_type_node) + ptr = build1 (VIEW_CONVERT_EXPR, + build_pointer_type (vector_pair_type_node), ptr); + tree mem = build_simple_mem_ref (build2 (POINTER_PLUS_EXPR, + TREE_TYPE (ptr), ptr, offset)); + gimplify_assign (lhs, mem, &new_seq); + pop_gimplify_context (NULL); + gsi_replace_with_seq (gsi, new_seq, true); + return true; + } + else if (fncode == VSX_BUILTIN_STXVP) + { + push_gimplify_context (true); + tree src = gimple_call_arg (stmt, 0); + tree offset = gimple_call_arg (stmt, 1); + tree ptr = gimple_call_arg (stmt, 2); + if (TREE_TYPE (TREE_TYPE (ptr)) != vector_pair_type_node) + ptr = build1 (VIEW_CONVERT_EXPR, + build_pointer_type (vector_pair_type_node), ptr); + tree mem = build_simple_mem_ref (build2 (POINTER_PLUS_EXPR, + TREE_TYPE (ptr), ptr, offset)); + gimplify_assign (mem, src, &new_seq); + pop_gimplify_context (NULL); + gsi_replace_with_seq (gsi, new_seq, true); + return true; + } /* Convert this built-in into an internal version that uses pass-by-value arguments. The internal built-in follows immediately after this one. */ *************** rs6000_gimple_fold_mma_builtin (gimple_s *** 10909,10915 **** { /* This built-in has a pass-by-reference accumulator input, so load it into a temporary accumulator for use as a pass-by-value input. */ ! op[0] = make_ssa_name (vector_quad_type_node); for (unsigned i = 1; i < nopnds; i++) op[i] = gimple_call_arg (stmt, i); gimplify_assign (op[0], build_simple_mem_ref (acc), &new_seq); --- 10950,10956 ---- { /* This built-in has a pass-by-reference accumulator input, so load it into a temporary accumulator for use as a pass-by-value input. */ ! op[0] = create_tmp_reg_or_ssa_name (vector_quad_type_node); for (unsigned i = 1; i < nopnds; i++) op[i] = gimple_call_arg (stmt, i); gimplify_assign (op[0], build_simple_mem_ref (acc), &new_seq); *************** rs6000_gimple_fold_mma_builtin (gimple_s *** 10956,10965 **** gcc_unreachable (); } ! if (fncode == VSX_BUILTIN_ASSEMBLE_PAIR) ! lhs = make_ssa_name (vector_pair_type_node); else ! lhs = make_ssa_name (vector_quad_type_node); gimple_call_set_lhs (new_call, lhs); gimple_seq_add_stmt (&new_seq, new_call); gimplify_assign (build_simple_mem_ref (acc), lhs, &new_seq); --- 10997,11006 ---- gcc_unreachable (); } ! if (fncode == VSX_BUILTIN_BUILD_PAIR || fncode == VSX_BUILTIN_ASSEMBLE_PAIR) ! lhs = create_tmp_reg_or_ssa_name (vector_pair_type_node); else ! lhs = create_tmp_reg_or_ssa_name (vector_quad_type_node); gimple_call_set_lhs (new_call, lhs); gimple_seq_add_stmt (&new_seq, new_call); gimplify_assign (build_simple_mem_ref (acc), lhs, &new_seq); *************** rs6000_init_builtins (void) *** 12544,12566 **** } } ! /* Returns the rs6000 builtin decl for CODE. */ tree rs6000_builtin_decl (unsigned code, bool initialize_p ATTRIBUTE_UNUSED) { - HOST_WIDE_INT fnmask; - if (code >= RS6000_BUILTIN_COUNT) return error_mark_node; - fnmask = rs6000_builtin_info[code].mask; - if ((fnmask & rs6000_builtin_mask) != fnmask) - { - rs6000_invalid_builtin ((enum rs6000_builtins)code); - return error_mark_node; - } - return rs6000_builtin_decls[code]; } --- 12585,12601 ---- } } ! /* Returns the rs6000 builtin decl for CODE. Note that we don't check ! the builtin mask here since there could be some #pragma/attribute ! target functions and the rs6000_builtin_mask could be wrong when ! this checking happens, though it will be updated properly later. */ tree rs6000_builtin_decl (unsigned code, bool initialize_p ATTRIBUTE_UNUSED) { if (code >= RS6000_BUILTIN_COUNT) return error_mark_node; return rs6000_builtin_decls[code]; } *************** mma_init_builtins (void) *** 13190,13200 **** if (gimple_func) { gcc_assert (icode == CODE_FOR_nothing); - op[nopnds++] = void_type_node; /* Some MMA built-ins that are expanded into gimple are converted into internal MMA built-ins that are expanded into rtl. The internal built-in follows immediately after this built-in. */ ! icode = d[1].icode; } else { --- 13225,13239 ---- if (gimple_func) { gcc_assert (icode == CODE_FOR_nothing); /* Some MMA built-ins that are expanded into gimple are converted into internal MMA built-ins that are expanded into rtl. The internal built-in follows immediately after this built-in. */ ! if (d->code != VSX_BUILTIN_LXVP ! && d->code != VSX_BUILTIN_STXVP) ! { ! op[nopnds++] = void_type_node; ! icode = d[1].icode; ! } } else { *************** mma_init_builtins (void) *** 13205,13222 **** gcc_assert (attr_args == insn_data[icode].n_operands - 1); } ! if (icode == CODE_FOR_nothing) { /* This is a disassemble MMA built-in function. */ ! gcc_assert (attr_args == RS6000_BTC_BINARY ! && (d->code == MMA_BUILTIN_DISASSEMBLE_ACC ! || d->code == VSX_BUILTIN_DISASSEMBLE_PAIR)); op[nopnds++] = build_pointer_type (void_type_node); if (attr & RS6000_BTC_QUAD) op[nopnds++] = build_pointer_type (vector_quad_type_node); else op[nopnds++] = build_pointer_type (vector_pair_type_node); } else { /* This is a normal MMA built-in function. */ --- 13244,13273 ---- gcc_assert (attr_args == insn_data[icode].n_operands - 1); } ! if (d->code == MMA_BUILTIN_DISASSEMBLE_ACC ! || d->code == VSX_BUILTIN_DISASSEMBLE_PAIR) { /* This is a disassemble MMA built-in function. */ ! gcc_assert (attr_args == RS6000_BTC_BINARY); op[nopnds++] = build_pointer_type (void_type_node); if (attr & RS6000_BTC_QUAD) op[nopnds++] = build_pointer_type (vector_quad_type_node); else op[nopnds++] = build_pointer_type (vector_pair_type_node); } + else if (d->code == VSX_BUILTIN_LXVP) + { + op[nopnds++] = vector_pair_type_node; + op[nopnds++] = sizetype; + op[nopnds++] = build_pointer_type (vector_pair_type_node); + } + else if (d->code == VSX_BUILTIN_STXVP) + { + op[nopnds++] = void_type_node; + op[nopnds++] = vector_pair_type_node; + op[nopnds++] = sizetype; + op[nopnds++] = build_pointer_type (vector_pair_type_node); + } else { /* This is a normal MMA built-in function. */ *************** mma_init_builtins (void) *** 13226,13233 **** machine_mode mode = insn_data[icode].operand[j].mode; if (gimple_func && mode == PXImode) op[nopnds++] = build_pointer_type (vector_quad_type_node); ! else if (gimple_func && mode == POImode ! && d->code == VSX_BUILTIN_ASSEMBLE_PAIR) op[nopnds++] = build_pointer_type (vector_pair_type_node); else /* MMA uses unsigned types. */ --- 13277,13286 ---- machine_mode mode = insn_data[icode].operand[j].mode; if (gimple_func && mode == PXImode) op[nopnds++] = build_pointer_type (vector_quad_type_node); ! else if (gimple_func ! && mode == POImode ! && (d->code == VSX_BUILTIN_BUILD_PAIR ! || d->code == VSX_BUILTIN_ASSEMBLE_PAIR)) op[nopnds++] = build_pointer_type (vector_pair_type_node); else /* MMA uses unsigned types. */ *************** builtin_function_type (machine_mode mode *** 13582,13587 **** --- 13635,13650 ---- h.uns_p[2] = 1; break; + case VSX_BUILTIN_LXVP: + h.uns_p[0] = 1; + h.uns_p[2] = 1; + break; + + case VSX_BUILTIN_STXVP: + h.uns_p[1] = 1; + h.uns_p[3] = 1; + break; + default: break; } diff -Nrcpad gcc-10.3.0/gcc/config/rs6000/rs6000-logue.c gcc-10.4.0/gcc/config/rs6000/rs6000-logue.c *** gcc-10.3.0/gcc/config/rs6000/rs6000-logue.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/config/rs6000/rs6000-logue.c Tue Jun 28 08:54:27 2022 *************** rs6000_emit_prologue (void) *** 3254,3263 **** /* If we need to save CR, put it into r12 or r11. Choose r12 except when r12 will be needed by out-of-line gpr save. */ ! cr_save_regno = ((DEFAULT_ABI == ABI_AIX || DEFAULT_ABI == ABI_ELFv2) ! && !(strategy & (SAVE_INLINE_GPRS ! | SAVE_NOINLINE_GPRS_SAVES_LR)) ! ? 11 : 12); if (!WORLD_SAVE_P (info) && info->cr_save_p && REGNO (frame_reg_rtx) != cr_save_regno --- 3254,3266 ---- /* If we need to save CR, put it into r12 or r11. Choose r12 except when r12 will be needed by out-of-line gpr save. */ ! if (DEFAULT_ABI == ABI_AIX ! && !(strategy & (SAVE_INLINE_GPRS | SAVE_NOINLINE_GPRS_SAVES_LR))) ! cr_save_regno = 11; ! else if (DEFAULT_ABI == ABI_ELFv2) ! cr_save_regno = 11; ! else ! cr_save_regno = 12; if (!WORLD_SAVE_P (info) && info->cr_save_p && REGNO (frame_reg_rtx) != cr_save_regno *************** rs6000_emit_epilogue (enum epilogue_type *** 4773,4778 **** --- 4776,4785 ---- else if (REGNO (frame_reg_rtx) == 12) cr_save_regno = 11; + /* For ELFv2 r12 is already in use as the GEP. */ + if (DEFAULT_ABI == ABI_ELFv2) + cr_save_regno = 11; + cr_save_reg = load_cr_save (cr_save_regno, frame_reg_rtx, info->cr_save_offset + frame_off, exit_func); diff -Nrcpad gcc-10.3.0/gcc/config/rs6000/rs6000-p8swap.c gcc-10.4.0/gcc/config/rs6000/rs6000-p8swap.c *** gcc-10.3.0/gcc/config/rs6000/rs6000-p8swap.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/config/rs6000/rs6000-p8swap.c Tue Jun 28 08:54:27 2022 *************** replace_swap_with_copy (swap_web_entry * *** 1501,1506 **** --- 1501,1522 ---- insn->set_deleted (); } + /* INSN is known to contain a SUBREG, which we can normally handle, + but if the SUBREG itself contains a MULT then we need to leave it alone + to avoid turning a mult_hipart into a mult_lopart, for example. */ + static bool + has_part_mult (rtx_insn *insn) + { + rtx body = PATTERN (insn); + if (GET_CODE (body) != SET) + return false; + rtx src = SET_SRC (body); + if (GET_CODE (src) != SUBREG) + return false; + rtx inner = XEXP (src, 0); + return (GET_CODE (inner) == MULT); + } + /* Make NEW_MEM_EXP's attributes and flags resemble those of ORIGINAL_MEM_EXP. */ static void *************** rs6000_analyze_swaps (function *fun) *** 2437,2442 **** --- 2453,2461 ---- insn_entry[uid].is_swappable = 0; else if (special != SH_NONE) insn_entry[uid].special_handling = special; + else if (insn_entry[uid].contains_subreg + && has_part_mult (insn)) + insn_entry[uid].is_swappable = 0; else if (insn_entry[uid].contains_subreg) insn_entry[uid].special_handling = SH_SUBREG; } diff -Nrcpad gcc-10.3.0/gcc/config/rs6000/rs6000.c gcc-10.4.0/gcc/config/rs6000/rs6000.c *** gcc-10.3.0/gcc/config/rs6000/rs6000.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/config/rs6000/rs6000.c Tue Jun 28 08:54:27 2022 *************** rs6000_option_override_internal (bool gl *** 3815,3820 **** --- 3815,3829 ---- else if (TARGET_ALTIVEC) rs6000_isa_flags |= (OPTION_MASK_PPC_GFXOPT & ~ignore_masks); + /* Disable VSX and Altivec silently if the user switched cpus to power7 in a + target attribute or pragma which automatically enables both options, + unless the altivec ABI was set. This is set by default for 64-bit, but + not for 32-bit. Don't move this before the above code using ignore_masks, + since it can reset the cleared VSX/ALTIVEC flag again. */ + if (main_target_opt && !main_target_opt->x_rs6000_altivec_abi) + rs6000_isa_flags &= ~((OPTION_MASK_VSX | OPTION_MASK_ALTIVEC) + & ~rs6000_isa_flags_explicit); + if (TARGET_CRYPTO && !TARGET_ALTIVEC) { if (rs6000_isa_flags_explicit & OPTION_MASK_CRYPTO) *************** rs6000_option_override_internal (bool gl *** 4032,4044 **** } else if (rs6000_long_double_type_size == 128) rs6000_long_double_type_size = FLOAT_PRECISION_TFmode; - else if (global_options_set.x_rs6000_ieeequad) - { - if (global_options.x_rs6000_ieeequad) - error ("%qs requires %qs", "-mabi=ieeelongdouble", "-mlong-double-128"); - else - error ("%qs requires %qs", "-mabi=ibmlongdouble", "-mlong-double-128"); - } /* Set -mabi=ieeelongdouble on some old targets. In the future, power server systems will also set long double to be IEEE 128-bit. AIX and Darwin --- 4041,4046 ---- *************** rs6000_option_override_internal (bool gl *** 4048,4060 **** if (!global_options_set.x_rs6000_ieeequad) rs6000_ieeequad = TARGET_IEEEQUAD_DEFAULT; ! else { if (global_options.x_rs6000_ieeequad && (!TARGET_POPCNTD || !TARGET_VSX)) error ("%qs requires full ISA 2.06 support", "-mabi=ieeelongdouble"); ! if (rs6000_ieeequad != TARGET_IEEEQUAD_DEFAULT && TARGET_LONG_DOUBLE_128) { static bool warned_change_long_double; if (!warned_change_long_double) --- 4050,4062 ---- if (!global_options_set.x_rs6000_ieeequad) rs6000_ieeequad = TARGET_IEEEQUAD_DEFAULT; ! else if (TARGET_LONG_DOUBLE_128) { if (global_options.x_rs6000_ieeequad && (!TARGET_POPCNTD || !TARGET_VSX)) error ("%qs requires full ISA 2.06 support", "-mabi=ieeelongdouble"); ! if (rs6000_ieeequad != TARGET_IEEEQUAD_DEFAULT) { static bool warned_change_long_double; if (!warned_change_long_double) *************** rs6000_option_override_internal (bool gl *** 4209,4226 **** } } - /* Disable VSX and Altivec silently if the user switched cpus to power7 in a - target attribute or pragma which automatically enables both options, - unless the altivec ABI was set. This is set by default for 64-bit, but - not for 32-bit. */ - if (main_target_opt != NULL && !main_target_opt->x_rs6000_altivec_abi) - { - TARGET_FLOAT128_TYPE = 0; - rs6000_isa_flags &= ~((OPTION_MASK_VSX | OPTION_MASK_ALTIVEC - | OPTION_MASK_FLOAT128_KEYWORD) - & ~rs6000_isa_flags_explicit); - } - /* Enable Altivec ABI for AIX -maltivec. */ if (TARGET_XCOFF && (TARGET_ALTIVEC || TARGET_VSX)) { --- 4211,4216 ---- *************** rs6000_option_override_internal (bool gl *** 4311,4316 **** --- 4301,4316 ---- rs6000_isa_flags &= ~OPTION_MASK_MMA; } + /* MMA requires SIMD support as ISA 3.1 claims and our implementation + such as "*movoo" uses vector pair access which use VSX registers. + So make MMA require VSX support here. */ + if (TARGET_MMA && !TARGET_VSX) + { + if ((rs6000_isa_flags_explicit & OPTION_MASK_MMA) != 0) + error ("%qs requires %qs", "-mmma", "-mvsx"); + rs6000_isa_flags &= ~OPTION_MASK_MMA; + } + if (TARGET_DEBUG_REG || TARGET_DEBUG_TARGET) rs6000_print_isa_options (stderr, 0, "after subtarget", rs6000_isa_flags); *************** const char *rs6000_machine; *** 5547,5556 **** const char * rs6000_machine_from_flags (void) { HOST_WIDE_INT flags = rs6000_isa_flags; /* Disable the flags that should never influence the .machine selection. */ ! flags &= ~(OPTION_MASK_PPC_GFXOPT | OPTION_MASK_PPC_GPOPT); if ((flags & (ISA_3_1_MASKS_SERVER & ~ISA_3_0_MASKS_SERVER)) != 0) return "power10"; --- 5547,5619 ---- const char * rs6000_machine_from_flags (void) { + /* e300 and e500 */ + if (rs6000_cpu == PROCESSOR_PPCE300C2 || rs6000_cpu == PROCESSOR_PPCE300C3) + return "e300"; + if (rs6000_cpu == PROCESSOR_PPC8540 || rs6000_cpu == PROCESSOR_PPC8548) + return "e500"; + if (rs6000_cpu == PROCESSOR_PPCE500MC) + return "e500mc"; + if (rs6000_cpu == PROCESSOR_PPCE500MC64) + return "e500mc64"; + if (rs6000_cpu == PROCESSOR_PPCE5500) + return "e5500"; + if (rs6000_cpu == PROCESSOR_PPCE6500) + return "e6500"; + + /* 400 series */ + if (rs6000_cpu == PROCESSOR_PPC403) + return "\"403\""; + if (rs6000_cpu == PROCESSOR_PPC405) + return "\"405\""; + if (rs6000_cpu == PROCESSOR_PPC440) + return "\"440\""; + if (rs6000_cpu == PROCESSOR_PPC476) + return "\"476\""; + + /* A2 */ + if (rs6000_cpu == PROCESSOR_PPCA2) + return "a2"; + + /* Cell BE */ + if (rs6000_cpu == PROCESSOR_CELL) + return "cell"; + + /* Titan */ + if (rs6000_cpu == PROCESSOR_TITAN) + return "titan"; + + /* 500 series and 800 series */ + if (rs6000_cpu == PROCESSOR_MPCCORE) + return "\"821\""; + + #if 0 + /* This (and ppc64 below) are disabled here (for now at least) because + PROCESSOR_POWERPC, PROCESSOR_POWERPC64, and PROCESSOR_COMMON + are #define'd as some of these. Untangling that is a job for later. */ + + /* 600 series and 700 series, "classic" */ + if (rs6000_cpu == PROCESSOR_PPC601 || rs6000_cpu == PROCESSOR_PPC603 + || rs6000_cpu == PROCESSOR_PPC604 || rs6000_cpu == PROCESSOR_PPC604e + || rs6000_cpu == PROCESSOR_PPC750) + return "ppc"; + #endif + + /* Classic with AltiVec, "G4" */ + if (rs6000_cpu == PROCESSOR_PPC7400 || rs6000_cpu == PROCESSOR_PPC7450) + return "\"7450\""; + + #if 0 + /* The older 64-bit CPUs */ + if (rs6000_cpu == PROCESSOR_PPC620 || rs6000_cpu == PROCESSOR_PPC630 + || rs6000_cpu == PROCESSOR_RS64A) + return "ppc64"; + #endif + HOST_WIDE_INT flags = rs6000_isa_flags; /* Disable the flags that should never influence the .machine selection. */ ! flags &= ~(OPTION_MASK_PPC_GFXOPT | OPTION_MASK_PPC_GPOPT | OPTION_MASK_ISEL); if ((flags & (ISA_3_1_MASKS_SERVER & ~ISA_3_0_MASKS_SERVER)) != 0) return "power10"; *************** vspltis_constant (rtx op, unsigned step, *** 5911,5917 **** /* Also check if are loading up the most significant bit which can be done by loading up -1 and shifting the value left by -1. */ ! else if (EASY_VECTOR_MSB (splat_val, inner)) ; else --- 5974,5980 ---- /* Also check if are loading up the most significant bit which can be done by loading up -1 and shifting the value left by -1. */ ! else if (EASY_VECTOR_MSB (splat_val, inner) && step == 1 && copies == 1) ; else *************** vspltis_shifted (rtx op) *** 5960,5967 **** return false; /* We need to create pseudo registers to do the shift, so don't recognize ! shift vector constants after reload. */ ! if (!can_create_pseudo_p ()) return false; nunits = GET_MODE_NUNITS (mode); --- 6023,6033 ---- return false; /* We need to create pseudo registers to do the shift, so don't recognize ! shift vector constants after reload. Don't match it even before RA ! after split1 is done, because there won't be further splitting pass ! before RA to do the splitting. */ ! if (!can_create_pseudo_p () ! || (cfun->curr_properties & PROP_rtl_split_insns)) return false; nunits = GET_MODE_NUNITS (mode); *************** darwin_rs6000_legitimate_lo_sum_const_p *** 7551,7558 **** if (GET_CODE (x) == CONST) x = XEXP (x, 0); if (GET_CODE (x) == UNSPEC && XINT (x, 1) == UNSPEC_MACHOPIC_OFFSET) ! x = XVECEXP (x, 0, 0); rtx sym = NULL_RTX; unsigned HOST_WIDE_INT offset = 0; --- 7617,7630 ---- if (GET_CODE (x) == CONST) x = XEXP (x, 0); + /* If we are building PIC code, then any symbol must be wrapped in an + UNSPEC_MACHOPIC_OFFSET so that it will get the picbase subtracted. */ + bool machopic_offs_p = false; if (GET_CODE (x) == UNSPEC && XINT (x, 1) == UNSPEC_MACHOPIC_OFFSET) ! { ! x = XVECEXP (x, 0, 0); ! machopic_offs_p = true; ! } rtx sym = NULL_RTX; unsigned HOST_WIDE_INT offset = 0; *************** darwin_rs6000_legitimate_lo_sum_const_p *** 7583,7588 **** --- 7655,7663 ---- if (sym) { tree decl = SYMBOL_REF_DECL (sym); + /* As noted above, PIC code cannot use a bare SYMBOL_REF. */ + if (TARGET_MACHO && flag_pic && !machopic_offs_p) + return false; #if TARGET_MACHO if (MACHO_SYMBOL_INDIRECTION_P (sym)) /* The decl in an indirection symbol is the original one, which might *************** legitimate_lo_sum_address_p (machine_mod *** 8170,8176 **** return false; x = XEXP (x, 1); ! if (TARGET_ELF || TARGET_MACHO) { bool large_toc_ok; --- 8245,8251 ---- return false; x = XEXP (x, 1); ! if (TARGET_ELF) { bool large_toc_ok; *************** legitimate_lo_sum_address_p (machine_mod *** 8196,8202 **** --- 8271,8302 ---- return CONSTANT_P (x) || large_toc_ok; } + else if (TARGET_MACHO) + { + if (GET_MODE_NUNITS (mode) != 1) + return false; + if (GET_MODE_SIZE (mode) > UNITS_PER_WORD + && !(/* see above */ + TARGET_HARD_FLOAT && (mode == DFmode || mode == DDmode))) + return false; + #if TARGET_MACHO + if (MACHO_DYNAMIC_NO_PIC_P || !flag_pic) + return CONSTANT_P (x); + #endif + /* Macho-O PIC code from here. */ + if (GET_CODE (x) == CONST) + x = XEXP (x, 0); + /* SYMBOL_REFs need to be wrapped in an UNSPEC_MACHOPIC_OFFSET. */ + if (SYMBOL_REF_P (x)) + return false; + + /* So this is OK if the wrapped object is const. */ + if (GET_CODE (x) == UNSPEC + && XINT (x, 1) == UNSPEC_MACHOPIC_OFFSET) + return CONSTANT_P (XVECEXP (x, 0, 0)); + return CONSTANT_P (x); + } return false; } *************** rs6000_legitimize_address (rtx x, rtx ol *** 8250,8256 **** else return force_reg (Pmode, x); } ! if (SYMBOL_REF_P (x)) { enum tls_model model = SYMBOL_REF_TLS_MODEL (x); if (model != 0) --- 8350,8356 ---- else return force_reg (Pmode, x); } ! if (SYMBOL_REF_P (x) && !TARGET_MACHO) { enum tls_model model = SYMBOL_REF_TLS_MODEL (x); if (model != 0) *************** rs6000_legitimate_address_p (machine_mod *** 8926,8940 **** bool reg_offset_p = reg_offset_addressing_ok_p (mode); bool quad_offset_p = mode_supports_dq_form (mode); ! /* If this is an unaligned stvx/ldvx type address, discard the outer AND. */ if (VECTOR_MEM_ALTIVEC_OR_VSX_P (mode) && GET_CODE (x) == AND && CONST_INT_P (XEXP (x, 1)) && INTVAL (XEXP (x, 1)) == -16) ! x = XEXP (x, 0); - if (TARGET_ELF && RS6000_SYMBOL_REF_TLS_P (x)) - return 0; if (legitimate_indirect_address_p (x, reg_ok_strict)) return 1; if (TARGET_UPDATE --- 9026,9046 ---- bool reg_offset_p = reg_offset_addressing_ok_p (mode); bool quad_offset_p = mode_supports_dq_form (mode); ! if (TARGET_ELF && RS6000_SYMBOL_REF_TLS_P (x)) ! return 0; ! ! /* Handle unaligned altivec lvx/stvx type addresses. */ if (VECTOR_MEM_ALTIVEC_OR_VSX_P (mode) && GET_CODE (x) == AND && CONST_INT_P (XEXP (x, 1)) && INTVAL (XEXP (x, 1)) == -16) ! { ! x = XEXP (x, 0); ! return (legitimate_indirect_address_p (x, reg_ok_strict) ! || legitimate_indexed_address_p (x, reg_ok_strict) ! || virtual_stack_registers_memory_p (x)); ! } if (legitimate_indirect_address_p (x, reg_ok_strict)) return 1; if (TARGET_UPDATE *************** init_float128_ibm (machine_mode mode) *** 10178,10183 **** --- 10284,10295 ---- set_conv_libfunc (trunc_optab, DDmode, mode, "__dpd_trunctfdd"); set_conv_libfunc (sext_optab, TDmode, mode, "__dpd_extendtftd"); + set_conv_libfunc (sfix_optab, DImode, mode, "__fixtfdi"); + set_conv_libfunc (ufix_optab, DImode, mode, "__fixunstfdi"); + + set_conv_libfunc (sfloat_optab, mode, DImode, "__floatditf"); + set_conv_libfunc (ufloat_optab, mode, DImode, "__floatunditf"); + if (TARGET_POWERPC64) { set_conv_libfunc (sfix_optab, TImode, mode, "__fixtfti"); *************** rs6000_split_multireg_move (rtx dst, rtx *** 16018,16037 **** if (GET_CODE (src) == UNSPEC) { ! gcc_assert (REG_P (dst) ! && FP_REGNO_P (REGNO (dst)) ! && XINT (src, 1) == UNSPEC_MMA_ASSEMBLE_ACC); reg_mode = GET_MODE (XVECEXP (src, 0, 0)); ! for (int i = 0; i < XVECLEN (src, 0); i++) { ! rtx dst_i = gen_rtx_REG (reg_mode, reg + i); emit_insn (gen_rtx_SET (dst_i, XVECEXP (src, 0, i))); } /* We are writing an accumulator register, so we have to prime it after we've written it. */ ! emit_insn (gen_mma_xxmtacc (dst, dst)); return; } --- 16130,16157 ---- if (GET_CODE (src) == UNSPEC) { ! gcc_assert (XINT (src, 1) == UNSPEC_VSX_ASSEMBLE ! || XINT (src, 1) == UNSPEC_MMA_ASSEMBLE_ACC); ! gcc_assert (REG_P (dst)); ! if (GET_MODE (src) == PXImode) ! gcc_assert (FP_REGNO_P (REGNO (dst))); ! if (GET_MODE (src) == POImode) ! gcc_assert (VSX_REGNO_P (REGNO (dst))); reg_mode = GET_MODE (XVECEXP (src, 0, 0)); ! int nvecs = XVECLEN (src, 0); ! for (int i = 0; i < nvecs; i++) { ! int index = WORDS_BIG_ENDIAN ? i : nvecs - 1 - i; ! rtx dst_i = gen_rtx_REG (reg_mode, reg + index); emit_insn (gen_rtx_SET (dst_i, XVECEXP (src, 0, i))); } /* We are writing an accumulator register, so we have to prime it after we've written it. */ ! if (TARGET_MMA ! && GET_MODE (dst) == PXImode && FP_REGNO_P (REGNO (dst))) ! emit_insn (gen_mma_xxmtacc (dst, dst)); return; } *************** rs6000_rtx_costs (rtx x, machine_mode mo *** 21351,21356 **** --- 21471,21484 ---- } break; + case UNSPEC_VOLATILE: + if (XINT (x, 1) == UNSPECV_MMA_XXSETACCZ) + { + *total = 0; + return true; + } + break; + default: break; } *************** rs6000_can_inline_p (tree caller, tree c *** 24427,24432 **** --- 24555,24564 ---- else caller_isa = rs6000_isa_flags; + /* Ignore the -mpower8-fusion option for inlining purposes. */ + callee_isa &= ~OPTION_MASK_P8_FUSION; + explicit_isa &= ~OPTION_MASK_P8_FUSION; + /* The callee's options must be a subset of the caller's options, i.e. a vsx function may inline an altivec function, but a no-vsx function must not inline a vsx function. However, for those options that the diff -Nrcpad gcc-10.3.0/gcc/config/rs6000/rs6000.md gcc-10.4.0/gcc/config/rs6000/rs6000.md *** gcc-10.3.0/gcc/config/rs6000/rs6000.md Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/config/rs6000/rs6000.md Tue Jun 28 08:54:27 2022 *************** *** 4806,4811 **** --- 4806,4847 ---- [(set_attr "type" "fp") (set_attr "isa" "*,")]) + (define_expand "fmod3" + [(use (match_operand:SFDF 0 "gpc_reg_operand")) + (use (match_operand:SFDF 1 "gpc_reg_operand")) + (use (match_operand:SFDF 2 "gpc_reg_operand"))] + "TARGET_HARD_FLOAT + && TARGET_FPRND + && flag_unsafe_math_optimizations" + { + rtx div = gen_reg_rtx (mode); + emit_insn (gen_div3 (div, operands[1], operands[2])); + + rtx friz = gen_reg_rtx (mode); + emit_insn (gen_btrunc2 (friz, div)); + + emit_insn (gen_nfms4 (operands[0], operands[2], friz, operands[1])); + DONE; + }) + + (define_expand "remainder3" + [(use (match_operand:SFDF 0 "gpc_reg_operand")) + (use (match_operand:SFDF 1 "gpc_reg_operand")) + (use (match_operand:SFDF 2 "gpc_reg_operand"))] + "TARGET_HARD_FLOAT + && TARGET_FPRND + && flag_unsafe_math_optimizations" + { + rtx div = gen_reg_rtx (mode); + emit_insn (gen_div3 (div, operands[1], operands[2])); + + rtx frin = gen_reg_rtx (mode); + emit_insn (gen_round2 (frin, div)); + + emit_insn (gen_nfms4 (operands[0], operands[2], frin, operands[1])); + DONE; + }) + (define_insn "*rsqrt2" [(set (match_operand:SFDF 0 "gpc_reg_operand" "=,wa") (unspec:SFDF [(match_operand:SFDF 1 "gpc_reg_operand" ",wa")] diff -Nrcpad gcc-10.3.0/gcc/config/rs6000/tmmintrin.h gcc-10.4.0/gcc/config/rs6000/tmmintrin.h *** gcc-10.3.0/gcc/config/rs6000/tmmintrin.h Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/config/rs6000/tmmintrin.h Tue Jun 28 08:54:27 2022 *************** _mm_alignr_epi8 (__m128i __A, __m128i __ *** 112,119 **** { if (__count >= 32) { ! const __v16qu zero = { 0 }; ! return (__m128i) zero; } else { --- 112,119 ---- { if (__count >= 32) { ! const __v16qu __zero = { 0 }; ! return (__m128i) __zero; } else { diff -Nrcpad gcc-10.3.0/gcc/config/rs6000/vector.md gcc-10.4.0/gcc/config/rs6000/vector.md *** gcc-10.3.0/gcc/config/rs6000/vector.md Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/config/rs6000/vector.md Tue Jun 28 08:54:27 2022 *************** *** 1394,1400 **** [(set (match_operand:VEC_N 0 "nonimmediate_operand") (match_operand:VEC_N 1 "any_operand"))] "VECTOR_MEM_VSX_P (mode) && TARGET_ALLOW_MOVMISALIGN" ! "") ;; Vector shift right in bits. Currently supported ony for shift ;; amounts that can be expressed as byte shifts (divisible by 8). --- 1394,1403 ---- [(set (match_operand:VEC_N 0 "nonimmediate_operand") (match_operand:VEC_N 1 "any_operand"))] "VECTOR_MEM_VSX_P (mode) && TARGET_ALLOW_MOVMISALIGN" ! { ! rs6000_emit_move (operands[0], operands[1], mode); ! DONE; ! }) ;; Vector shift right in bits. Currently supported ony for shift ;; amounts that can be expressed as byte shifts (divisible by 8). diff -Nrcpad gcc-10.3.0/gcc/config/rs6000/xmmintrin.h gcc-10.4.0/gcc/config/rs6000/xmmintrin.h *** gcc-10.3.0/gcc/config/rs6000/xmmintrin.h Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/config/rs6000/xmmintrin.h Tue Jun 28 08:54:27 2022 *************** extern __inline __m128 __attribute__((__ *** 127,140 **** _mm_loadr_ps (float const *__P) { __v4sf __tmp; ! __m128 result; ! static const __vector unsigned char permute_vector = { 0x1C, 0x1D, 0x1E, 0x1F, 0x18, 0x19, 0x1A, 0x1B, 0x14, 0x15, 0x16, 0x17, 0x10, 0x11, 0x12, 0x13 }; __tmp = vec_ld (0, (__v4sf *) __P); ! result = (__m128) vec_perm (__tmp, __tmp, permute_vector); ! return result; } /* Create a vector with all four elements equal to F. */ --- 127,140 ---- _mm_loadr_ps (float const *__P) { __v4sf __tmp; ! __m128 __result; ! static const __vector unsigned char __permute_vector = { 0x1C, 0x1D, 0x1E, 0x1F, 0x18, 0x19, 0x1A, 0x1B, 0x14, 0x15, 0x16, 0x17, 0x10, 0x11, 0x12, 0x13 }; __tmp = vec_ld (0, (__v4sf *) __P); ! __result = (__m128) vec_perm (__tmp, __tmp, __permute_vector); ! return __result; } /* Create a vector with all four elements equal to F. */ *************** extern __inline void __attribute__((__gn *** 184,194 **** _mm_storer_ps (float *__P, __m128 __A) { __v4sf __tmp; ! static const __vector unsigned char permute_vector = { 0x1C, 0x1D, 0x1E, 0x1F, 0x18, 0x19, 0x1A, 0x1B, 0x14, 0x15, 0x16, 0x17, 0x10, 0x11, 0x12, 0x13 }; ! __tmp = (__m128) vec_perm (__A, __A, permute_vector); _mm_store_ps (__P, __tmp); } --- 184,194 ---- _mm_storer_ps (float *__P, __m128 __A) { __v4sf __tmp; ! static const __vector unsigned char __permute_vector = { 0x1C, 0x1D, 0x1E, 0x1F, 0x18, 0x19, 0x1A, 0x1B, 0x14, 0x15, 0x16, 0x17, 0x10, 0x11, 0x12, 0x13 }; ! __tmp = (__m128) vec_perm (__A, __A, __permute_vector); _mm_store_ps (__P, __tmp); } *************** _mm_set_ss (float __F) *** 218,226 **** extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_move_ss (__m128 __A, __m128 __B) { ! static const __vector unsigned int mask = {0xffffffff, 0, 0, 0}; ! return (vec_sel ((__v4sf)__A, (__v4sf)__B, mask)); } /* Create a vector with element 0 as *P and the rest zero. */ --- 218,226 ---- extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_move_ss (__m128 __A, __m128 __B) { ! static const __vector unsigned int __mask = {0xffffffff, 0, 0, 0}; ! return (vec_sel ((__v4sf)__A, (__v4sf)__B, __mask)); } /* Create a vector with element 0 as *P and the rest zero. */ *************** extern __inline __m128 __attribute__((__ *** 245,262 **** _mm_add_ss (__m128 __A, __m128 __B) { #ifdef _ARCH_PWR7 ! __m128 a, b, c; ! static const __vector unsigned int mask = {0xffffffff, 0, 0, 0}; /* PowerISA VSX does not allow partial (for just lower double) results. So to insure we don't generate spurious exceptions (from the upper double values) we splat the lower double before we to the operation. */ ! a = vec_splat (__A, 0); ! b = vec_splat (__B, 0); ! c = a + b; /* Then we merge the lower float result with the original upper float elements from __A. */ ! return (vec_sel (__A, c, mask)); #else __A[0] = __A[0] + __B[0]; return (__A); --- 245,262 ---- _mm_add_ss (__m128 __A, __m128 __B) { #ifdef _ARCH_PWR7 ! __m128 __a, __b, __c; ! static const __vector unsigned int __mask = {0xffffffff, 0, 0, 0}; /* PowerISA VSX does not allow partial (for just lower double) results. So to insure we don't generate spurious exceptions (from the upper double values) we splat the lower double before we to the operation. */ ! __a = vec_splat (__A, 0); ! __b = vec_splat (__B, 0); ! __c = __a + __b; /* Then we merge the lower float result with the original upper float elements from __A. */ ! return (vec_sel (__A, __c, __mask)); #else __A[0] = __A[0] + __B[0]; return (__A); *************** extern __inline __m128 __attribute__((__ *** 267,284 **** _mm_sub_ss (__m128 __A, __m128 __B) { #ifdef _ARCH_PWR7 ! __m128 a, b, c; ! static const __vector unsigned int mask = {0xffffffff, 0, 0, 0}; /* PowerISA VSX does not allow partial (for just lower double) results. So to insure we don't generate spurious exceptions (from the upper double values) we splat the lower double before we to the operation. */ ! a = vec_splat (__A, 0); ! b = vec_splat (__B, 0); ! c = a - b; /* Then we merge the lower float result with the original upper float elements from __A. */ ! return (vec_sel (__A, c, mask)); #else __A[0] = __A[0] - __B[0]; return (__A); --- 267,284 ---- _mm_sub_ss (__m128 __A, __m128 __B) { #ifdef _ARCH_PWR7 ! __m128 __a, __b, __c; ! static const __vector unsigned int __mask = {0xffffffff, 0, 0, 0}; /* PowerISA VSX does not allow partial (for just lower double) results. So to insure we don't generate spurious exceptions (from the upper double values) we splat the lower double before we to the operation. */ ! __a = vec_splat (__A, 0); ! __b = vec_splat (__B, 0); ! __c = __a - __b; /* Then we merge the lower float result with the original upper float elements from __A. */ ! return (vec_sel (__A, __c, __mask)); #else __A[0] = __A[0] - __B[0]; return (__A); *************** extern __inline __m128 __attribute__((__ *** 289,306 **** _mm_mul_ss (__m128 __A, __m128 __B) { #ifdef _ARCH_PWR7 ! __m128 a, b, c; ! static const __vector unsigned int mask = {0xffffffff, 0, 0, 0}; /* PowerISA VSX does not allow partial (for just lower double) results. So to insure we don't generate spurious exceptions (from the upper double values) we splat the lower double before we to the operation. */ ! a = vec_splat (__A, 0); ! b = vec_splat (__B, 0); ! c = a * b; /* Then we merge the lower float result with the original upper float elements from __A. */ ! return (vec_sel (__A, c, mask)); #else __A[0] = __A[0] * __B[0]; return (__A); --- 289,306 ---- _mm_mul_ss (__m128 __A, __m128 __B) { #ifdef _ARCH_PWR7 ! __m128 __a, __b, __c; ! static const __vector unsigned int __mask = {0xffffffff, 0, 0, 0}; /* PowerISA VSX does not allow partial (for just lower double) results. So to insure we don't generate spurious exceptions (from the upper double values) we splat the lower double before we to the operation. */ ! __a = vec_splat (__A, 0); ! __b = vec_splat (__B, 0); ! __c = __a * __b; /* Then we merge the lower float result with the original upper float elements from __A. */ ! return (vec_sel (__A, __c, __mask)); #else __A[0] = __A[0] * __B[0]; return (__A); *************** extern __inline __m128 __attribute__((__ *** 311,328 **** _mm_div_ss (__m128 __A, __m128 __B) { #ifdef _ARCH_PWR7 ! __m128 a, b, c; ! static const __vector unsigned int mask = {0xffffffff, 0, 0, 0}; /* PowerISA VSX does not allow partial (for just lower double) results. So to insure we don't generate spurious exceptions (from the upper double values) we splat the lower double before we to the operation. */ ! a = vec_splat (__A, 0); ! b = vec_splat (__B, 0); ! c = a / b; /* Then we merge the lower float result with the original upper float elements from __A. */ ! return (vec_sel (__A, c, mask)); #else __A[0] = __A[0] / __B[0]; return (__A); --- 311,328 ---- _mm_div_ss (__m128 __A, __m128 __B) { #ifdef _ARCH_PWR7 ! __m128 __a, __b, __c; ! static const __vector unsigned int __mask = {0xffffffff, 0, 0, 0}; /* PowerISA VSX does not allow partial (for just lower double) results. So to insure we don't generate spurious exceptions (from the upper double values) we splat the lower double before we to the operation. */ ! __a = vec_splat (__A, 0); ! __b = vec_splat (__B, 0); ! __c = __a / __b; /* Then we merge the lower float result with the original upper float elements from __A. */ ! return (vec_sel (__A, __c, __mask)); #else __A[0] = __A[0] / __B[0]; return (__A); *************** _mm_div_ss (__m128 __A, __m128 __B) *** 332,348 **** extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_sqrt_ss (__m128 __A) { ! __m128 a, c; ! static const __vector unsigned int mask = {0xffffffff, 0, 0, 0}; /* PowerISA VSX does not allow partial (for just lower double) * results. So to insure we don't generate spurious exceptions * (from the upper double values) we splat the lower double * before we to the operation. */ ! a = vec_splat (__A, 0); ! c = vec_sqrt (a); /* Then we merge the lower float result with the original upper * float elements from __A. */ ! return (vec_sel (__A, c, mask)); } /* Perform the respective operation on the four SPFP values in A and B. */ --- 332,348 ---- extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_sqrt_ss (__m128 __A) { ! __m128 __a, __c; ! static const __vector unsigned int __mask = {0xffffffff, 0, 0, 0}; /* PowerISA VSX does not allow partial (for just lower double) * results. So to insure we don't generate spurious exceptions * (from the upper double values) we splat the lower double * before we to the operation. */ ! __a = vec_splat (__A, 0); ! __c = vec_sqrt (__a); /* Then we merge the lower float result with the original upper * float elements from __A. */ ! return (vec_sel (__A, __c, __mask)); } /* Perform the respective operation on the four SPFP values in A and B. */ *************** _mm_rsqrt_ps (__m128 __A) *** 391,471 **** extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_rcp_ss (__m128 __A) { ! __m128 a, c; ! static const __vector unsigned int mask = {0xffffffff, 0, 0, 0}; /* PowerISA VSX does not allow partial (for just lower double) * results. So to insure we don't generate spurious exceptions * (from the upper double values) we splat the lower double * before we to the operation. */ ! a = vec_splat (__A, 0); ! c = _mm_rcp_ps (a); /* Then we merge the lower float result with the original upper * float elements from __A. */ ! return (vec_sel (__A, c, mask)); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_rsqrt_ss (__m128 __A) { ! __m128 a, c; ! static const __vector unsigned int mask = {0xffffffff, 0, 0, 0}; /* PowerISA VSX does not allow partial (for just lower double) * results. So to insure we don't generate spurious exceptions * (from the upper double values) we splat the lower double * before we to the operation. */ ! a = vec_splat (__A, 0); ! c = vec_rsqrte (a); /* Then we merge the lower float result with the original upper * float elements from __A. */ ! return (vec_sel (__A, c, mask)); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_min_ss (__m128 __A, __m128 __B) { ! __v4sf a, b, c; ! static const __vector unsigned int mask = {0xffffffff, 0, 0, 0}; /* PowerISA VSX does not allow partial (for just lower float) * results. So to insure we don't generate spurious exceptions * (from the upper float values) we splat the lower float * before we to the operation. */ ! a = vec_splat ((__v4sf)__A, 0); ! b = vec_splat ((__v4sf)__B, 0); ! c = vec_min (a, b); /* Then we merge the lower float result with the original upper * float elements from __A. */ ! return (vec_sel ((__v4sf)__A, c, mask)); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_max_ss (__m128 __A, __m128 __B) { ! __v4sf a, b, c; ! static const __vector unsigned int mask = {0xffffffff, 0, 0, 0}; /* PowerISA VSX does not allow partial (for just lower float) * results. So to insure we don't generate spurious exceptions * (from the upper float values) we splat the lower float * before we to the operation. */ ! a = vec_splat (__A, 0); ! b = vec_splat (__B, 0); ! c = vec_max (a, b); /* Then we merge the lower float result with the original upper * float elements from __A. */ ! return (vec_sel ((__v4sf)__A, c, mask)); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_min_ps (__m128 __A, __m128 __B) { ! __vector __bool int m = vec_cmpgt ((__v4sf) __B, (__v4sf) __A); ! return vec_sel (__B, __A, m); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_max_ps (__m128 __A, __m128 __B) { ! __vector __bool int m = vec_cmpgt ((__v4sf) __A, (__v4sf) __B); ! return vec_sel (__B, __A, m); } /* Perform logical bit-wise operations on 128-bit values. */ --- 391,471 ---- extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_rcp_ss (__m128 __A) { ! __m128 __a, __c; ! static const __vector unsigned int __mask = {0xffffffff, 0, 0, 0}; /* PowerISA VSX does not allow partial (for just lower double) * results. So to insure we don't generate spurious exceptions * (from the upper double values) we splat the lower double * before we to the operation. */ ! __a = vec_splat (__A, 0); ! __c = _mm_rcp_ps (__a); /* Then we merge the lower float result with the original upper * float elements from __A. */ ! return (vec_sel (__A, __c, __mask)); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_rsqrt_ss (__m128 __A) { ! __m128 __a, __c; ! static const __vector unsigned int __mask = {0xffffffff, 0, 0, 0}; /* PowerISA VSX does not allow partial (for just lower double) * results. So to insure we don't generate spurious exceptions * (from the upper double values) we splat the lower double * before we to the operation. */ ! __a = vec_splat (__A, 0); ! __c = vec_rsqrte (__a); /* Then we merge the lower float result with the original upper * float elements from __A. */ ! return (vec_sel (__A, __c, __mask)); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_min_ss (__m128 __A, __m128 __B) { ! __v4sf __a, __b, __c; ! static const __vector unsigned int __mask = {0xffffffff, 0, 0, 0}; /* PowerISA VSX does not allow partial (for just lower float) * results. So to insure we don't generate spurious exceptions * (from the upper float values) we splat the lower float * before we to the operation. */ ! __a = vec_splat ((__v4sf)__A, 0); ! __b = vec_splat ((__v4sf)__B, 0); ! __c = vec_min (__a, __b); /* Then we merge the lower float result with the original upper * float elements from __A. */ ! return (vec_sel ((__v4sf)__A, __c, __mask)); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_max_ss (__m128 __A, __m128 __B) { ! __v4sf __a, __b, __c; ! static const __vector unsigned int __mask = {0xffffffff, 0, 0, 0}; /* PowerISA VSX does not allow partial (for just lower float) * results. So to insure we don't generate spurious exceptions * (from the upper float values) we splat the lower float * before we to the operation. */ ! __a = vec_splat (__A, 0); ! __b = vec_splat (__B, 0); ! __c = vec_max (__a, __b); /* Then we merge the lower float result with the original upper * float elements from __A. */ ! return (vec_sel ((__v4sf)__A, __c, __mask)); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_min_ps (__m128 __A, __m128 __B) { ! __vector __bool int __m = vec_cmpgt ((__v4sf) __B, (__v4sf) __A); ! return vec_sel (__B, __A, __m); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_max_ps (__m128 __A, __m128 __B) { ! __vector __bool int __m = vec_cmpgt ((__v4sf) __A, (__v4sf) __B); ! return vec_sel (__B, __A, __m); } /* Perform logical bit-wise operations on 128-bit values. */ *************** _mm_cmpge_ps (__m128 __A, __m128 __B) *** 530,537 **** extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cmpneq_ps (__m128 __A, __m128 __B) { ! __v4sf temp = (__v4sf ) vec_cmpeq ((__v4sf) __A, (__v4sf)__B); ! return ((__m128)vec_nor (temp, temp)); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 530,537 ---- extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cmpneq_ps (__m128 __A, __m128 __B) { ! __v4sf __temp = (__v4sf ) vec_cmpeq ((__v4sf) __A, (__v4sf)__B); ! return ((__m128)vec_nor (__temp, __temp)); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** _mm_cmpnge_ps (__m128 __A, __m128 __B) *** 561,591 **** extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cmpord_ps (__m128 __A, __m128 __B) { ! __vector unsigned int a, b; ! __vector unsigned int c, d; ! static const __vector unsigned int float_exp_mask = { 0x7f800000, 0x7f800000, 0x7f800000, 0x7f800000 }; ! a = (__vector unsigned int) vec_abs ((__v4sf)__A); ! b = (__vector unsigned int) vec_abs ((__v4sf)__B); ! c = (__vector unsigned int) vec_cmpgt (float_exp_mask, a); ! d = (__vector unsigned int) vec_cmpgt (float_exp_mask, b); ! return ((__m128 ) vec_and (c, d)); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cmpunord_ps (__m128 __A, __m128 __B) { ! __vector unsigned int a, b; ! __vector unsigned int c, d; ! static const __vector unsigned int float_exp_mask = { 0x7f800000, 0x7f800000, 0x7f800000, 0x7f800000 }; ! a = (__vector unsigned int) vec_abs ((__v4sf)__A); ! b = (__vector unsigned int) vec_abs ((__v4sf)__B); ! c = (__vector unsigned int) vec_cmpgt (a, float_exp_mask); ! d = (__vector unsigned int) vec_cmpgt (b, float_exp_mask); ! return ((__m128 ) vec_or (c, d)); } /* Perform a comparison on the lower SPFP values of A and B. If the --- 561,591 ---- extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cmpord_ps (__m128 __A, __m128 __B) { ! __vector unsigned int __a, __b; ! __vector unsigned int __c, __d; ! static const __vector unsigned int __float_exp_mask = { 0x7f800000, 0x7f800000, 0x7f800000, 0x7f800000 }; ! __a = (__vector unsigned int) vec_abs ((__v4sf)__A); ! __b = (__vector unsigned int) vec_abs ((__v4sf)__B); ! __c = (__vector unsigned int) vec_cmpgt (__float_exp_mask, __a); ! __d = (__vector unsigned int) vec_cmpgt (__float_exp_mask, __b); ! return ((__m128 ) vec_and (__c, __d)); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cmpunord_ps (__m128 __A, __m128 __B) { ! __vector unsigned int __a, __b; ! __vector unsigned int __c, __d; ! static const __vector unsigned int __float_exp_mask = { 0x7f800000, 0x7f800000, 0x7f800000, 0x7f800000 }; ! __a = (__vector unsigned int) vec_abs ((__v4sf)__A); ! __b = (__vector unsigned int) vec_abs ((__v4sf)__B); ! __c = (__vector unsigned int) vec_cmpgt (__a, __float_exp_mask); ! __d = (__vector unsigned int) vec_cmpgt (__b, __float_exp_mask); ! return ((__m128 ) vec_or (__c, __d)); } /* Perform a comparison on the lower SPFP values of A and B. If the *************** _mm_cmpunord_ps (__m128 __A, __m128 __B) *** 594,815 **** extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cmpeq_ss (__m128 __A, __m128 __B) { ! static const __vector unsigned int mask = { 0xffffffff, 0, 0, 0 }; ! __v4sf a, b, c; /* PowerISA VMX does not allow partial (for just element 0) * results. So to insure we don't generate spurious exceptions * (from the upper elements) we splat the lower float * before we to the operation. */ ! a = vec_splat ((__v4sf) __A, 0); ! b = vec_splat ((__v4sf) __B, 0); ! c = (__v4sf) vec_cmpeq(a, b); /* Then we merge the lower float result with the original upper * float elements from __A. */ ! return ((__m128)vec_sel ((__v4sf)__A, c, mask)); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cmplt_ss (__m128 __A, __m128 __B) { ! static const __vector unsigned int mask = { 0xffffffff, 0, 0, 0 }; ! __v4sf a, b, c; /* PowerISA VMX does not allow partial (for just element 0) * results. So to insure we don't generate spurious exceptions * (from the upper elements) we splat the lower float * before we to the operation. */ ! a = vec_splat ((__v4sf) __A, 0); ! b = vec_splat ((__v4sf) __B, 0); ! c = (__v4sf) vec_cmplt(a, b); /* Then we merge the lower float result with the original upper * float elements from __A. */ ! return ((__m128)vec_sel ((__v4sf)__A, c, mask)); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cmple_ss (__m128 __A, __m128 __B) { ! static const __vector unsigned int mask = { 0xffffffff, 0, 0, 0 }; ! __v4sf a, b, c; /* PowerISA VMX does not allow partial (for just element 0) * results. So to insure we don't generate spurious exceptions * (from the upper elements) we splat the lower float * before we to the operation. */ ! a = vec_splat ((__v4sf) __A, 0); ! b = vec_splat ((__v4sf) __B, 0); ! c = (__v4sf) vec_cmple(a, b); /* Then we merge the lower float result with the original upper * float elements from __A. */ ! return ((__m128)vec_sel ((__v4sf)__A, c, mask)); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cmpgt_ss (__m128 __A, __m128 __B) { ! static const __vector unsigned int mask = { 0xffffffff, 0, 0, 0 }; ! __v4sf a, b, c; /* PowerISA VMX does not allow partial (for just element 0) * results. So to insure we don't generate spurious exceptions * (from the upper elements) we splat the lower float * before we to the operation. */ ! a = vec_splat ((__v4sf) __A, 0); ! b = vec_splat ((__v4sf) __B, 0); ! c = (__v4sf) vec_cmpgt(a, b); /* Then we merge the lower float result with the original upper * float elements from __A. */ ! return ((__m128)vec_sel ((__v4sf)__A, c, mask)); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cmpge_ss (__m128 __A, __m128 __B) { ! static const __vector unsigned int mask = { 0xffffffff, 0, 0, 0 }; ! __v4sf a, b, c; /* PowerISA VMX does not allow partial (for just element 0) * results. So to insure we don't generate spurious exceptions * (from the upper elements) we splat the lower float * before we to the operation. */ ! a = vec_splat ((__v4sf) __A, 0); ! b = vec_splat ((__v4sf) __B, 0); ! c = (__v4sf) vec_cmpge(a, b); /* Then we merge the lower float result with the original upper * float elements from __A. */ ! return ((__m128)vec_sel ((__v4sf)__A, c, mask)); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cmpneq_ss (__m128 __A, __m128 __B) { ! static const __vector unsigned int mask = { 0xffffffff, 0, 0, 0 }; ! __v4sf a, b, c; /* PowerISA VMX does not allow partial (for just element 0) * results. So to insure we don't generate spurious exceptions * (from the upper elements) we splat the lower float * before we to the operation. */ ! a = vec_splat ((__v4sf) __A, 0); ! b = vec_splat ((__v4sf) __B, 0); ! c = (__v4sf) vec_cmpeq(a, b); ! c = vec_nor (c, c); /* Then we merge the lower float result with the original upper * float elements from __A. */ ! return ((__m128)vec_sel ((__v4sf)__A, c, mask)); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cmpnlt_ss (__m128 __A, __m128 __B) { ! static const __vector unsigned int mask = { 0xffffffff, 0, 0, 0 }; ! __v4sf a, b, c; /* PowerISA VMX does not allow partial (for just element 0) * results. So to insure we don't generate spurious exceptions * (from the upper elements) we splat the lower float * before we to the operation. */ ! a = vec_splat ((__v4sf) __A, 0); ! b = vec_splat ((__v4sf) __B, 0); ! c = (__v4sf) vec_cmpge(a, b); /* Then we merge the lower float result with the original upper * float elements from __A. */ ! return ((__m128)vec_sel ((__v4sf)__A, c, mask)); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cmpnle_ss (__m128 __A, __m128 __B) { ! static const __vector unsigned int mask = { 0xffffffff, 0, 0, 0 }; ! __v4sf a, b, c; /* PowerISA VMX does not allow partial (for just element 0) * results. So to insure we don't generate spurious exceptions * (from the upper elements) we splat the lower float * before we to the operation. */ ! a = vec_splat ((__v4sf) __A, 0); ! b = vec_splat ((__v4sf) __B, 0); ! c = (__v4sf) vec_cmpgt(a, b); /* Then we merge the lower float result with the original upper * float elements from __A. */ ! return ((__m128)vec_sel ((__v4sf)__A, c, mask)); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cmpngt_ss (__m128 __A, __m128 __B) { ! static const __vector unsigned int mask = { 0xffffffff, 0, 0, 0 }; ! __v4sf a, b, c; /* PowerISA VMX does not allow partial (for just element 0) * results. So to insure we don't generate spurious exceptions * (from the upper elements) we splat the lower float * before we to the operation. */ ! a = vec_splat ((__v4sf) __A, 0); ! b = vec_splat ((__v4sf) __B, 0); ! c = (__v4sf) vec_cmple(a, b); /* Then we merge the lower float result with the original upper * float elements from __A. */ ! return ((__m128)vec_sel ((__v4sf)__A, c, mask)); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cmpnge_ss (__m128 __A, __m128 __B) { ! static const __vector unsigned int mask = { 0xffffffff, 0, 0, 0 }; ! __v4sf a, b, c; /* PowerISA VMX does not allow partial (for just element 0) * results. So to insure we don't generate spurious exceptions * (from the upper elements) we splat the lower float * before we do the operation. */ ! a = vec_splat ((__v4sf) __A, 0); ! b = vec_splat ((__v4sf) __B, 0); ! c = (__v4sf) vec_cmplt(a, b); /* Then we merge the lower float result with the original upper * float elements from __A. */ ! return ((__m128)vec_sel ((__v4sf)__A, c, mask)); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cmpord_ss (__m128 __A, __m128 __B) { ! __vector unsigned int a, b; ! __vector unsigned int c, d; ! static const __vector unsigned int float_exp_mask = { 0x7f800000, 0x7f800000, 0x7f800000, 0x7f800000 }; ! static const __vector unsigned int mask = { 0xffffffff, 0, 0, 0 }; ! a = (__vector unsigned int) vec_abs ((__v4sf)__A); ! b = (__vector unsigned int) vec_abs ((__v4sf)__B); ! c = (__vector unsigned int) vec_cmpgt (float_exp_mask, a); ! d = (__vector unsigned int) vec_cmpgt (float_exp_mask, b); ! c = vec_and (c, d); /* Then we merge the lower float result with the original upper * float elements from __A. */ ! return ((__m128)vec_sel ((__v4sf)__A, (__v4sf)c, mask)); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cmpunord_ss (__m128 __A, __m128 __B) { ! __vector unsigned int a, b; ! __vector unsigned int c, d; ! static const __vector unsigned int float_exp_mask = { 0x7f800000, 0x7f800000, 0x7f800000, 0x7f800000 }; ! static const __vector unsigned int mask = { 0xffffffff, 0, 0, 0 }; ! a = (__vector unsigned int) vec_abs ((__v4sf)__A); ! b = (__vector unsigned int) vec_abs ((__v4sf)__B); ! c = (__vector unsigned int) vec_cmpgt (a, float_exp_mask); ! d = (__vector unsigned int) vec_cmpgt (b, float_exp_mask); ! c = vec_or (c, d); /* Then we merge the lower float result with the original upper * float elements from __A. */ ! return ((__m128)vec_sel ((__v4sf)__A, (__v4sf)c, mask)); } /* Compare the lower SPFP values of A and B and return 1 if true --- 594,815 ---- extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cmpeq_ss (__m128 __A, __m128 __B) { ! static const __vector unsigned int __mask = { 0xffffffff, 0, 0, 0 }; ! __v4sf __a, __b, __c; /* PowerISA VMX does not allow partial (for just element 0) * results. So to insure we don't generate spurious exceptions * (from the upper elements) we splat the lower float * before we to the operation. */ ! __a = vec_splat ((__v4sf) __A, 0); ! __b = vec_splat ((__v4sf) __B, 0); ! __c = (__v4sf) vec_cmpeq (__a, __b); /* Then we merge the lower float result with the original upper * float elements from __A. */ ! return ((__m128)vec_sel ((__v4sf)__A, __c, __mask)); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cmplt_ss (__m128 __A, __m128 __B) { ! static const __vector unsigned int __mask = { 0xffffffff, 0, 0, 0 }; ! __v4sf __a, __b, __c; /* PowerISA VMX does not allow partial (for just element 0) * results. So to insure we don't generate spurious exceptions * (from the upper elements) we splat the lower float * before we to the operation. */ ! __a = vec_splat ((__v4sf) __A, 0); ! __b = vec_splat ((__v4sf) __B, 0); ! __c = (__v4sf) vec_cmplt(__a, __b); /* Then we merge the lower float result with the original upper * float elements from __A. */ ! return ((__m128)vec_sel ((__v4sf)__A, __c, __mask)); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cmple_ss (__m128 __A, __m128 __B) { ! static const __vector unsigned int __mask = { 0xffffffff, 0, 0, 0 }; ! __v4sf __a, __b, __c; /* PowerISA VMX does not allow partial (for just element 0) * results. So to insure we don't generate spurious exceptions * (from the upper elements) we splat the lower float * before we to the operation. */ ! __a = vec_splat ((__v4sf) __A, 0); ! __b = vec_splat ((__v4sf) __B, 0); ! __c = (__v4sf) vec_cmple(__a, __b); /* Then we merge the lower float result with the original upper * float elements from __A. */ ! return ((__m128)vec_sel ((__v4sf)__A, __c, __mask)); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cmpgt_ss (__m128 __A, __m128 __B) { ! static const __vector unsigned int __mask = { 0xffffffff, 0, 0, 0 }; ! __v4sf __a, __b, __c; /* PowerISA VMX does not allow partial (for just element 0) * results. So to insure we don't generate spurious exceptions * (from the upper elements) we splat the lower float * before we to the operation. */ ! __a = vec_splat ((__v4sf) __A, 0); ! __b = vec_splat ((__v4sf) __B, 0); ! __c = (__v4sf) vec_cmpgt(__a, __b); /* Then we merge the lower float result with the original upper * float elements from __A. */ ! return ((__m128)vec_sel ((__v4sf)__A, __c, __mask)); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cmpge_ss (__m128 __A, __m128 __B) { ! static const __vector unsigned int __mask = { 0xffffffff, 0, 0, 0 }; ! __v4sf __a, __b, __c; /* PowerISA VMX does not allow partial (for just element 0) * results. So to insure we don't generate spurious exceptions * (from the upper elements) we splat the lower float * before we to the operation. */ ! __a = vec_splat ((__v4sf) __A, 0); ! __b = vec_splat ((__v4sf) __B, 0); ! __c = (__v4sf) vec_cmpge(__a, __b); /* Then we merge the lower float result with the original upper * float elements from __A. */ ! return ((__m128)vec_sel ((__v4sf)__A, __c, __mask)); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cmpneq_ss (__m128 __A, __m128 __B) { ! static const __vector unsigned int __mask = { 0xffffffff, 0, 0, 0 }; ! __v4sf __a, __b, __c; /* PowerISA VMX does not allow partial (for just element 0) * results. So to insure we don't generate spurious exceptions * (from the upper elements) we splat the lower float * before we to the operation. */ ! __a = vec_splat ((__v4sf) __A, 0); ! __b = vec_splat ((__v4sf) __B, 0); ! __c = (__v4sf) vec_cmpeq(__a, __b); ! __c = vec_nor (__c, __c); /* Then we merge the lower float result with the original upper * float elements from __A. */ ! return ((__m128)vec_sel ((__v4sf)__A, __c, __mask)); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cmpnlt_ss (__m128 __A, __m128 __B) { ! static const __vector unsigned int __mask = { 0xffffffff, 0, 0, 0 }; ! __v4sf __a, __b, __c; /* PowerISA VMX does not allow partial (for just element 0) * results. So to insure we don't generate spurious exceptions * (from the upper elements) we splat the lower float * before we to the operation. */ ! __a = vec_splat ((__v4sf) __A, 0); ! __b = vec_splat ((__v4sf) __B, 0); ! __c = (__v4sf) vec_cmpge(__a, __b); /* Then we merge the lower float result with the original upper * float elements from __A. */ ! return ((__m128)vec_sel ((__v4sf)__A, __c, __mask)); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cmpnle_ss (__m128 __A, __m128 __B) { ! static const __vector unsigned int __mask = { 0xffffffff, 0, 0, 0 }; ! __v4sf __a, __b, __c; /* PowerISA VMX does not allow partial (for just element 0) * results. So to insure we don't generate spurious exceptions * (from the upper elements) we splat the lower float * before we to the operation. */ ! __a = vec_splat ((__v4sf) __A, 0); ! __b = vec_splat ((__v4sf) __B, 0); ! __c = (__v4sf) vec_cmpgt(__a, __b); /* Then we merge the lower float result with the original upper * float elements from __A. */ ! return ((__m128)vec_sel ((__v4sf)__A, __c, __mask)); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cmpngt_ss (__m128 __A, __m128 __B) { ! static const __vector unsigned int __mask = { 0xffffffff, 0, 0, 0 }; ! __v4sf __a, __b, __c; /* PowerISA VMX does not allow partial (for just element 0) * results. So to insure we don't generate spurious exceptions * (from the upper elements) we splat the lower float * before we to the operation. */ ! __a = vec_splat ((__v4sf) __A, 0); ! __b = vec_splat ((__v4sf) __B, 0); ! __c = (__v4sf) vec_cmple(__a, __b); /* Then we merge the lower float result with the original upper * float elements from __A. */ ! return ((__m128)vec_sel ((__v4sf)__A, __c, __mask)); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cmpnge_ss (__m128 __A, __m128 __B) { ! static const __vector unsigned int __mask = { 0xffffffff, 0, 0, 0 }; ! __v4sf __a, __b, __c; /* PowerISA VMX does not allow partial (for just element 0) * results. So to insure we don't generate spurious exceptions * (from the upper elements) we splat the lower float * before we do the operation. */ ! __a = vec_splat ((__v4sf) __A, 0); ! __b = vec_splat ((__v4sf) __B, 0); ! __c = (__v4sf) vec_cmplt(__a, __b); /* Then we merge the lower float result with the original upper * float elements from __A. */ ! return ((__m128)vec_sel ((__v4sf)__A, __c, __mask)); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cmpord_ss (__m128 __A, __m128 __B) { ! __vector unsigned int __a, __b; ! __vector unsigned int __c, __d; ! static const __vector unsigned int __float_exp_mask = { 0x7f800000, 0x7f800000, 0x7f800000, 0x7f800000 }; ! static const __vector unsigned int __mask = { 0xffffffff, 0, 0, 0 }; ! __a = (__vector unsigned int) vec_abs ((__v4sf)__A); ! __b = (__vector unsigned int) vec_abs ((__v4sf)__B); ! __c = (__vector unsigned int) vec_cmpgt (__float_exp_mask, __a); ! __d = (__vector unsigned int) vec_cmpgt (__float_exp_mask, __b); ! __c = vec_and (__c, __d); /* Then we merge the lower float result with the original upper * float elements from __A. */ ! return ((__m128)vec_sel ((__v4sf)__A, (__v4sf)__c, __mask)); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cmpunord_ss (__m128 __A, __m128 __B) { ! __vector unsigned int __a, __b; ! __vector unsigned int __c, __d; ! static const __vector unsigned int __float_exp_mask = { 0x7f800000, 0x7f800000, 0x7f800000, 0x7f800000 }; ! static const __vector unsigned int __mask = { 0xffffffff, 0, 0, 0 }; ! __a = (__vector unsigned int) vec_abs ((__v4sf)__A); ! __b = (__vector unsigned int) vec_abs ((__v4sf)__B); ! __c = (__vector unsigned int) vec_cmpgt (__a, __float_exp_mask); ! __d = (__vector unsigned int) vec_cmpgt (__b, __float_exp_mask); ! __c = vec_or (__c, __d); /* Then we merge the lower float result with the original upper * float elements from __A. */ ! return ((__m128)vec_sel ((__v4sf)__A, (__v4sf)__c, __mask)); } /* Compare the lower SPFP values of A and B and return 1 if true *************** _mm_cvtss_f32 (__m128 __A) *** 905,913 **** extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtss_si32 (__m128 __A) { ! int res; #ifdef _ARCH_PWR8 ! double dtmp; __asm__( #ifdef __LITTLE_ENDIAN__ "xxsldwi %x0,%x0,%x0,3;\n" --- 905,913 ---- extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtss_si32 (__m128 __A) { ! int __res; #ifdef _ARCH_PWR8 ! double __dtmp; __asm__( #ifdef __LITTLE_ENDIAN__ "xxsldwi %x0,%x0,%x0,3;\n" *************** _mm_cvtss_si32 (__m128 __A) *** 916,928 **** "fctiw %2,%2;\n" "mfvsrd %1,%x2;\n" : "+wa" (__A), ! "=r" (res), ! "=f" (dtmp) : ); #else ! res = __builtin_rint(__A[0]); #endif ! return (res); } extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 916,928 ---- "fctiw %2,%2;\n" "mfvsrd %1,%x2;\n" : "+wa" (__A), ! "=r" (__res), ! "=f" (__dtmp) : ); #else ! __res = __builtin_rint(__A[0]); #endif ! return __res; } extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** _mm_cvt_ss2si (__m128 __A) *** 938,946 **** extern __inline long long __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtss_si64 (__m128 __A) { ! long long res; #if defined (_ARCH_PWR8) && defined (__powerpc64__) ! double dtmp; __asm__( #ifdef __LITTLE_ENDIAN__ "xxsldwi %x0,%x0,%x0,3;\n" --- 938,946 ---- extern __inline long long __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtss_si64 (__m128 __A) { ! long long __res; #if defined (_ARCH_PWR8) && defined (__powerpc64__) ! double __dtmp; __asm__( #ifdef __LITTLE_ENDIAN__ "xxsldwi %x0,%x0,%x0,3;\n" *************** _mm_cvtss_si64 (__m128 __A) *** 949,961 **** "fctid %2,%2;\n" "mfvsrd %1,%x2;\n" : "+wa" (__A), ! "=r" (res), ! "=f" (dtmp) : ); #else ! res = __builtin_llrint(__A[0]); #endif ! return (res); } /* Microsoft intrinsic. */ --- 949,961 ---- "fctid %2,%2;\n" "mfvsrd %1,%x2;\n" : "+wa" (__A), ! "=r" (__res), ! "=f" (__dtmp) : ); #else ! __res = __builtin_llrint(__A[0]); #endif ! return __res; } /* Microsoft intrinsic. */ *************** extern __inline __m64 __attribute__((__g *** 992,1006 **** _mm_cvtps_pi32 (__m128 __A) { /* Splat two lower SPFP values to both halves. */ ! __v4sf temp, rounded; ! __vector unsigned long long result; /* Splat two lower SPFP values to both halves. */ ! temp = (__v4sf) vec_splat ((__vector long long)__A, 0); ! rounded = vec_rint(temp); ! result = (__vector unsigned long long) vec_cts (rounded, 0); ! return (__m64) ((__vector long long) result)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 992,1006 ---- _mm_cvtps_pi32 (__m128 __A) { /* Splat two lower SPFP values to both halves. */ ! __v4sf __temp, __rounded; ! __vector unsigned long long __result; /* Splat two lower SPFP values to both halves. */ ! __temp = (__v4sf) vec_splat ((__vector long long)__A, 0); ! __rounded = vec_rint (__temp); ! __result = (__vector unsigned long long) vec_cts (__rounded, 0); ! return (__m64) ((__vector long long) __result)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** extern __inline int __attribute__((__gnu *** 1014,1022 **** _mm_cvttss_si32 (__m128 __A) { /* Extract the lower float element. */ ! float temp = __A[0]; /* truncate to 32-bit integer and return. */ ! return temp; } extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 1014,1022 ---- _mm_cvttss_si32 (__m128 __A) { /* Extract the lower float element. */ ! float __temp = __A[0]; /* truncate to 32-bit integer and return. */ ! return __temp; } extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** extern __inline long long __attribute__( *** 1030,1038 **** _mm_cvttss_si64 (__m128 __A) { /* Extract the lower float element. */ ! float temp = __A[0]; /* truncate to 32-bit integer and return. */ ! return temp; } /* Microsoft intrinsic. */ --- 1030,1038 ---- _mm_cvttss_si64 (__m128 __A) { /* Extract the lower float element. */ ! float __temp = __A[0]; /* truncate to 32-bit integer and return. */ ! return __temp; } /* Microsoft intrinsic. */ *************** extern __inline long long __attribute__( *** 1040,1048 **** _mm_cvttss_si64x (__m128 __A) { /* Extract the lower float element. */ ! float temp = __A[0]; /* truncate to 32-bit integer and return. */ ! return temp; } /* Truncate the two lower SPFP values to 32-bit integers. Return the --- 1040,1048 ---- _mm_cvttss_si64x (__m128 __A) { /* Extract the lower float element. */ ! float __temp = __A[0]; /* truncate to 32-bit integer and return. */ ! return __temp; } /* Truncate the two lower SPFP values to 32-bit integers. Return the *************** _mm_cvttss_si64x (__m128 __A) *** 1050,1063 **** extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvttps_pi32 (__m128 __A) { ! __v4sf temp; ! __vector unsigned long long result; /* Splat two lower SPFP values to both halves. */ ! temp = (__v4sf) vec_splat ((__vector long long)__A, 0); ! result = (__vector unsigned long long) vec_cts (temp, 0); ! return (__m64) ((__vector long long) result)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 1050,1063 ---- extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvttps_pi32 (__m128 __A) { ! __v4sf __temp; ! __vector unsigned long long __result; /* Splat two lower SPFP values to both halves. */ ! __temp = (__v4sf) vec_splat ((__vector long long)__A, 0); ! __result = (__vector unsigned long long) vec_cts (__temp, 0); ! return (__m64) ((__vector long long) __result)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** _mm_cvtt_ps2pi (__m128 __A) *** 1070,1077 **** extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtsi32_ss (__m128 __A, int __B) { ! float temp = __B; ! __A[0] = temp; return __A; } --- 1070,1077 ---- extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtsi32_ss (__m128 __A, int __B) { ! float __temp = __B; ! __A[0] = __temp; return __A; } *************** _mm_cvt_si2ss (__m128 __A, int __B) *** 1087,1094 **** extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtsi64_ss (__m128 __A, long long __B) { ! float temp = __B; ! __A[0] = temp; return __A; } --- 1087,1094 ---- extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtsi64_ss (__m128 __A, long long __B) { ! float __temp = __B; ! __A[0] = __temp; return __A; } *************** _mm_cvtsi64x_ss (__m128 __A, long long _ *** 1105,1118 **** extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtpi32_ps (__m128 __A, __m64 __B) { ! __vector signed int vm1; ! __vector float vf1; ! vm1 = (__vector signed int) (__vector unsigned long long) {__B, __B}; ! vf1 = (__vector float) vec_ctf (vm1, 0); return ((__m128) (__vector unsigned long long) ! { ((__vector unsigned long long)vf1) [0], ((__vector unsigned long long)__A) [1]}); } --- 1105,1118 ---- extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtpi32_ps (__m128 __A, __m64 __B) { ! __vector signed int __vm1; ! __vector float __vf1; ! __vm1 = (__vector signed int) (__vector unsigned long long) {__B, __B}; ! __vf1 = (__vector float) vec_ctf (__vm1, 0); return ((__m128) (__vector unsigned long long) ! { ((__vector unsigned long long)__vf1) [0], ((__vector unsigned long long)__A) [1]}); } *************** _mm_cvt_pi2ps (__m128 __A, __m64 __B) *** 1126,1179 **** extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtpi16_ps (__m64 __A) { ! __vector signed short vs8; ! __vector signed int vi4; ! __vector float vf1; ! vs8 = (__vector signed short) (__vector unsigned long long) { __A, __A }; ! vi4 = vec_vupklsh (vs8); ! vf1 = (__vector float) vec_ctf (vi4, 0); ! return (__m128) vf1; } /* Convert the four unsigned 16-bit values in A to SPFP form. */ extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtpu16_ps (__m64 __A) { ! const __vector unsigned short zero = { 0, 0, 0, 0, 0, 0, 0, 0 }; ! __vector unsigned short vs8; ! __vector unsigned int vi4; ! __vector float vf1; ! vs8 = (__vector unsigned short) (__vector unsigned long long) { __A, __A }; ! vi4 = (__vector unsigned int) vec_mergel #ifdef __LITTLE_ENDIAN__ ! (vs8, zero); #else ! (zero, vs8); #endif ! vf1 = (__vector float) vec_ctf (vi4, 0); ! return (__m128) vf1; } /* Convert the low four signed 8-bit values in A to SPFP form. */ extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtpi8_ps (__m64 __A) { ! __vector signed char vc16; ! __vector signed short vs8; ! __vector signed int vi4; ! __vector float vf1; ! vc16 = (__vector signed char) (__vector unsigned long long) { __A, __A }; ! vs8 = vec_vupkhsb (vc16); ! vi4 = vec_vupkhsh (vs8); ! vf1 = (__vector float) vec_ctf (vi4, 0); ! return (__m128) vf1; } /* Convert the low four unsigned 8-bit values in A to SPFP form. */ --- 1126,1179 ---- extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtpi16_ps (__m64 __A) { ! __vector signed short __vs8; ! __vector signed int __vi4; ! __vector float __vf1; ! __vs8 = (__vector signed short) (__vector unsigned long long) { __A, __A }; ! __vi4 = vec_vupklsh (__vs8); ! __vf1 = (__vector float) vec_ctf (__vi4, 0); ! return (__m128) __vf1; } /* Convert the four unsigned 16-bit values in A to SPFP form. */ extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtpu16_ps (__m64 __A) { ! const __vector unsigned short __zero = { 0, 0, 0, 0, 0, 0, 0, 0 }; ! __vector unsigned short __vs8; ! __vector unsigned int __vi4; ! __vector float __vf1; ! __vs8 = (__vector unsigned short) (__vector unsigned long long) { __A, __A }; ! __vi4 = (__vector unsigned int) vec_mergel #ifdef __LITTLE_ENDIAN__ ! (__vs8, __zero); #else ! (__zero, __vs8); #endif ! __vf1 = (__vector float) vec_ctf (__vi4, 0); ! return (__m128) __vf1; } /* Convert the low four signed 8-bit values in A to SPFP form. */ extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtpi8_ps (__m64 __A) { ! __vector signed char __vc16; ! __vector signed short __vs8; ! __vector signed int __vi4; ! __vector float __vf1; ! __vc16 = (__vector signed char) (__vector unsigned long long) { __A, __A }; ! __vs8 = vec_vupkhsb (__vc16); ! __vi4 = vec_vupkhsh (__vs8); ! __vf1 = (__vector float) vec_ctf (__vi4, 0); ! return (__m128) __vf1; } /* Convert the low four unsigned 8-bit values in A to SPFP form. */ *************** extern __inline __m128 __attribute__(( *** 1181,1250 **** _mm_cvtpu8_ps (__m64 __A) { ! const __vector unsigned char zero = { 0, 0, 0, 0, 0, 0, 0, 0 }; ! __vector unsigned char vc16; ! __vector unsigned short vs8; ! __vector unsigned int vi4; ! __vector float vf1; ! vc16 = (__vector unsigned char) (__vector unsigned long long) { __A, __A }; #ifdef __LITTLE_ENDIAN__ ! vs8 = (__vector unsigned short) vec_mergel (vc16, zero); ! vi4 = (__vector unsigned int) vec_mergeh (vs8, ! (__vector unsigned short) zero); #else ! vs8 = (__vector unsigned short) vec_mergel (zero, vc16); ! vi4 = (__vector unsigned int) vec_mergeh ((__vector unsigned short) zero, ! vs8); #endif ! vf1 = (__vector float) vec_ctf (vi4, 0); ! return (__m128) vf1; } /* Convert the four signed 32-bit values in A and B to SPFP form. */ extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtpi32x2_ps (__m64 __A, __m64 __B) { ! __vector signed int vi4; ! __vector float vf4; ! vi4 = (__vector signed int) (__vector unsigned long long) { __A, __B }; ! vf4 = (__vector float) vec_ctf (vi4, 0); ! return (__m128) vf4; } /* Convert the four SPFP values in A to four signed 16-bit integers. */ extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtps_pi16 (__m128 __A) { ! __v4sf rounded; ! __vector signed int temp; ! __vector unsigned long long result; ! rounded = vec_rint(__A); ! temp = vec_cts (rounded, 0); ! result = (__vector unsigned long long) vec_pack (temp, temp); ! return (__m64) ((__vector long long) result)[0]; } /* Convert the four SPFP values in A to four signed 8-bit integers. */ extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtps_pi8 (__m128 __A) { ! __v4sf rounded; ! __vector signed int tmp_i; ! static const __vector signed int zero = {0, 0, 0, 0}; ! __vector signed short tmp_s; ! __vector signed char res_v; ! rounded = vec_rint(__A); ! tmp_i = vec_cts (rounded, 0); ! tmp_s = vec_pack (tmp_i, zero); ! res_v = vec_pack (tmp_s, tmp_s); ! return (__m64) ((__vector long long) res_v)[0]; } /* Selects four specific SPFP values from A and B based on MASK. */ --- 1181,1250 ---- _mm_cvtpu8_ps (__m64 __A) { ! const __vector unsigned char __zero = { 0, 0, 0, 0, 0, 0, 0, 0 }; ! __vector unsigned char __vc16; ! __vector unsigned short __vs8; ! __vector unsigned int __vi4; ! __vector float __vf1; ! __vc16 = (__vector unsigned char) (__vector unsigned long long) { __A, __A }; #ifdef __LITTLE_ENDIAN__ ! __vs8 = (__vector unsigned short) vec_mergel (__vc16, __zero); ! __vi4 = (__vector unsigned int) vec_mergeh (__vs8, ! (__vector unsigned short) __zero); #else ! __vs8 = (__vector unsigned short) vec_mergel (__zero, __vc16); ! __vi4 = (__vector unsigned int) vec_mergeh ((__vector unsigned short) __zero, ! __vs8); #endif ! __vf1 = (__vector float) vec_ctf (__vi4, 0); ! return (__m128) __vf1; } /* Convert the four signed 32-bit values in A and B to SPFP form. */ extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtpi32x2_ps (__m64 __A, __m64 __B) { ! __vector signed int __vi4; ! __vector float __vf4; ! __vi4 = (__vector signed int) (__vector unsigned long long) { __A, __B }; ! __vf4 = (__vector float) vec_ctf (__vi4, 0); ! return (__m128) __vf4; } /* Convert the four SPFP values in A to four signed 16-bit integers. */ extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtps_pi16 (__m128 __A) { ! __v4sf __rounded; ! __vector signed int __temp; ! __vector unsigned long long __result; ! __rounded = vec_rint(__A); ! __temp = vec_cts (__rounded, 0); ! __result = (__vector unsigned long long) vec_pack (__temp, __temp); ! return (__m64) ((__vector long long) __result)[0]; } /* Convert the four SPFP values in A to four signed 8-bit integers. */ extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtps_pi8 (__m128 __A) { ! __v4sf __rounded; ! __vector signed int __tmp_i; ! static const __vector signed int __zero = {0, 0, 0, 0}; ! __vector signed short __tmp_s; ! __vector signed char __res_v; ! __rounded = vec_rint(__A); ! __tmp_i = vec_cts (__rounded, 0); ! __tmp_s = vec_pack (__tmp_i, __zero); ! __res_v = vec_pack (__tmp_s, __tmp_s); ! return (__m64) ((__vector long long) __res_v)[0]; } /* Selects four specific SPFP values from A and B based on MASK. */ *************** extern __inline __m128 __attribute__(( *** 1252,1262 **** _mm_shuffle_ps (__m128 __A, __m128 __B, int const __mask) { ! unsigned long element_selector_10 = __mask & 0x03; ! unsigned long element_selector_32 = (__mask >> 2) & 0x03; ! unsigned long element_selector_54 = (__mask >> 4) & 0x03; ! unsigned long element_selector_76 = (__mask >> 6) & 0x03; ! static const unsigned int permute_selectors[4] = { #ifdef __LITTLE_ENDIAN__ 0x03020100, 0x07060504, 0x0B0A0908, 0x0F0E0D0C --- 1252,1262 ---- _mm_shuffle_ps (__m128 __A, __m128 __B, int const __mask) { ! unsigned long __element_selector_10 = __mask & 0x03; ! unsigned long __element_selector_32 = (__mask >> 2) & 0x03; ! unsigned long __element_selector_54 = (__mask >> 4) & 0x03; ! unsigned long __element_selector_76 = (__mask >> 6) & 0x03; ! static const unsigned int __permute_selectors[4] = { #ifdef __LITTLE_ENDIAN__ 0x03020100, 0x07060504, 0x0B0A0908, 0x0F0E0D0C *************** _mm_shuffle_ps (__m128 __A, __m128 __B *** 1264,1276 **** 0x00010203, 0x04050607, 0x08090A0B, 0x0C0D0E0F #endif }; ! __vector unsigned int t; ! t[0] = permute_selectors[element_selector_10]; ! t[1] = permute_selectors[element_selector_32]; ! t[2] = permute_selectors[element_selector_54] + 0x10101010; ! t[3] = permute_selectors[element_selector_76] + 0x10101010; ! return vec_perm ((__v4sf) __A, (__v4sf)__B, (__vector unsigned char)t); } /* Selects and interleaves the upper two SPFP values from A and B. */ --- 1264,1276 ---- 0x00010203, 0x04050607, 0x08090A0B, 0x0C0D0E0F #endif }; ! __vector unsigned int __t; ! __t[0] = __permute_selectors[__element_selector_10]; ! __t[1] = __permute_selectors[__element_selector_32]; ! __t[2] = __permute_selectors[__element_selector_54] + 0x10101010; ! __t[3] = __permute_selectors[__element_selector_76] + 0x10101010; ! return vec_perm ((__v4sf) __A, (__v4sf)__B, (__vector unsigned char)__t); } /* Selects and interleaves the upper two SPFP values from A and B. */ *************** _mm_storel_pi (__m64 *__P, __m128 __A) *** 1352,1359 **** extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_movemask_ps (__m128 __A) { ! __vector unsigned long long result; ! static const __vector unsigned int perm_mask = { #ifdef __LITTLE_ENDIAN__ 0x00204060, 0x80808080, 0x80808080, 0x80808080 --- 1352,1359 ---- extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_movemask_ps (__m128 __A) { ! __vector unsigned long long __result; ! static const __vector unsigned int __perm_mask = { #ifdef __LITTLE_ENDIAN__ 0x00204060, 0x80808080, 0x80808080, 0x80808080 *************** _mm_movemask_ps (__m128 __A) *** 1362,1375 **** #endif }; ! result = ((__vector unsigned long long) vec_vbpermq ((__vector unsigned char) __A, ! (__vector unsigned char) perm_mask)); #ifdef __LITTLE_ENDIAN__ ! return result[1]; #else ! return result[0]; #endif } #endif /* _ARCH_PWR8 */ --- 1362,1375 ---- #endif }; ! __result = ((__vector unsigned long long) vec_vbpermq ((__vector unsigned char) __A, ! (__vector unsigned char) __perm_mask)); #ifdef __LITTLE_ENDIAN__ ! return __result[1]; #else ! return __result[0]; #endif } #endif /* _ARCH_PWR8 */ *************** _mm_load_ps1 (float const *__P) *** 1391,1402 **** extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_extract_pi16 (__m64 const __A, int const __N) { ! unsigned int shiftr = __N & 3; #ifdef __BIG_ENDIAN__ ! shiftr = 3 - shiftr; #endif ! return ((__A >> (shiftr * 16)) & 0xffff); } extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 1391,1402 ---- extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_extract_pi16 (__m64 const __A, int const __N) { ! unsigned int __shiftr = __N & 3; #ifdef __BIG_ENDIAN__ ! __shiftr = 3 - __shiftr; #endif ! return ((__A >> (__shiftr * 16)) & 0xffff); } extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** _m_pextrw (__m64 const __A, int const __ *** 1410,1421 **** extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_insert_pi16 (__m64 const __A, int const __D, int const __N) { ! const int shiftl = (__N & 3) * 16; ! const __m64 shiftD = (const __m64) __D << shiftl; ! const __m64 mask = 0xffffUL << shiftl; ! __m64 result = (__A & (~mask)) | (shiftD & mask); ! return (result); } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 1410,1421 ---- extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_insert_pi16 (__m64 const __A, int const __D, int const __N) { ! const int __shiftl = (__N & 3) * 16; ! const __m64 __shiftD = (const __m64) __D << __shiftl; ! const __m64 __mask = 0xffffUL << __shiftl; ! __m64 __result = (__A & (~__mask)) | (__shiftD & __mask); ! return __result; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** extern __inline __m64 __attribute__((__g *** 1430,1459 **** _mm_max_pi16 (__m64 __A, __m64 __B) { #if _ARCH_PWR8 ! __vector signed short a, b, r; ! __vector __bool short c; ! a = (__vector signed short)vec_splats (__A); ! b = (__vector signed short)vec_splats (__B); ! c = (__vector __bool short)vec_cmpgt (a, b); ! r = vec_sel (b, a, c); ! return (__m64) ((__vector long long) r)[0]; #else ! __m64_union m1, m2, res; ! m1.as_m64 = __A; ! m2.as_m64 = __B; ! res.as_short[0] = ! (m1.as_short[0] > m2.as_short[0]) ? m1.as_short[0] : m2.as_short[0]; ! res.as_short[1] = ! (m1.as_short[1] > m2.as_short[1]) ? m1.as_short[1] : m2.as_short[1]; ! res.as_short[2] = ! (m1.as_short[2] > m2.as_short[2]) ? m1.as_short[2] : m2.as_short[2]; ! res.as_short[3] = ! (m1.as_short[3] > m2.as_short[3]) ? m1.as_short[3] : m2.as_short[3]; ! return (__m64) res.as_m64; #endif } --- 1430,1459 ---- _mm_max_pi16 (__m64 __A, __m64 __B) { #if _ARCH_PWR8 ! __vector signed short __a, __b, __r; ! __vector __bool short __c; ! __a = (__vector signed short)vec_splats (__A); ! __b = (__vector signed short)vec_splats (__B); ! __c = (__vector __bool short)vec_cmpgt (__a, __b); ! __r = vec_sel (__b, __a, __c); ! return (__m64) ((__vector long long) __r)[0]; #else ! __m64_union __m1, __m2, __res; ! __m1.as_m64 = __A; ! __m2.as_m64 = __B; ! __res.as_short[0] = ! (__m1.as_short[0] > __m2.as_short[0]) ? __m1.as_short[0] : __m2.as_short[0]; ! __res.as_short[1] = ! (__m1.as_short[1] > __m2.as_short[1]) ? __m1.as_short[1] : __m2.as_short[1]; ! __res.as_short[2] = ! (__m1.as_short[2] > __m2.as_short[2]) ? __m1.as_short[2] : __m2.as_short[2]; ! __res.as_short[3] = ! (__m1.as_short[3] > __m2.as_short[3]) ? __m1.as_short[3] : __m2.as_short[3]; ! return (__m64) __res.as_m64; #endif } *************** extern __inline __m64 __attribute__((__g *** 1468,1495 **** _mm_max_pu8 (__m64 __A, __m64 __B) { #if _ARCH_PWR8 ! __vector unsigned char a, b, r; ! __vector __bool char c; ! a = (__vector unsigned char)vec_splats (__A); ! b = (__vector unsigned char)vec_splats (__B); ! c = (__vector __bool char)vec_cmpgt (a, b); ! r = vec_sel (b, a, c); ! return (__m64) ((__vector long long) r)[0]; #else ! __m64_union m1, m2, res; ! long i; ! ! m1.as_m64 = __A; ! m2.as_m64 = __B; ! for (i = 0; i < 8; i++) ! res.as_char[i] = ! ((unsigned char) m1.as_char[i] > (unsigned char) m2.as_char[i]) ? ! m1.as_char[i] : m2.as_char[i]; ! return (__m64) res.as_m64; #endif } --- 1468,1494 ---- _mm_max_pu8 (__m64 __A, __m64 __B) { #if _ARCH_PWR8 ! __vector unsigned char __a, __b, __r; ! __vector __bool char __c; ! __a = (__vector unsigned char)vec_splats (__A); ! __b = (__vector unsigned char)vec_splats (__B); ! __c = (__vector __bool char)vec_cmpgt (__a, __b); ! __r = vec_sel (__b, __a, __c); ! return (__m64) ((__vector long long) __r)[0]; #else ! __m64_union __m1, __m2, __res; ! long __i; + __m1.as_m64 = __A; + __m2.as_m64 = __B; ! for (__i = 0; __i < 8; __i++) ! __res.as_char[__i] = ! ((unsigned char) __m1.as_char[__i] > (unsigned char) __m2.as_char[__i]) ? ! __m1.as_char[__i] : __m2.as_char[__i]; ! return (__m64) __res.as_m64; #endif } *************** extern __inline __m64 __attribute__((__g *** 1504,1533 **** _mm_min_pi16 (__m64 __A, __m64 __B) { #if _ARCH_PWR8 ! __vector signed short a, b, r; ! __vector __bool short c; ! a = (__vector signed short)vec_splats (__A); ! b = (__vector signed short)vec_splats (__B); ! c = (__vector __bool short)vec_cmplt (a, b); ! r = vec_sel (b, a, c); ! return (__m64) ((__vector long long) r)[0]; #else ! __m64_union m1, m2, res; ! m1.as_m64 = __A; ! m2.as_m64 = __B; ! res.as_short[0] = ! (m1.as_short[0] < m2.as_short[0]) ? m1.as_short[0] : m2.as_short[0]; ! res.as_short[1] = ! (m1.as_short[1] < m2.as_short[1]) ? m1.as_short[1] : m2.as_short[1]; ! res.as_short[2] = ! (m1.as_short[2] < m2.as_short[2]) ? m1.as_short[2] : m2.as_short[2]; ! res.as_short[3] = ! (m1.as_short[3] < m2.as_short[3]) ? m1.as_short[3] : m2.as_short[3]; ! return (__m64) res.as_m64; #endif } --- 1503,1532 ---- _mm_min_pi16 (__m64 __A, __m64 __B) { #if _ARCH_PWR8 ! __vector signed short __a, __b, __r; ! __vector __bool short __c; ! __a = (__vector signed short)vec_splats (__A); ! __b = (__vector signed short)vec_splats (__B); ! __c = (__vector __bool short)vec_cmplt (__a, __b); ! __r = vec_sel (__b, __a, __c); ! return (__m64) ((__vector long long) __r)[0]; #else ! __m64_union __m1, __m2, __res; ! __m1.as_m64 = __A; ! __m2.as_m64 = __B; ! __res.as_short[0] = ! (__m1.as_short[0] < __m2.as_short[0]) ? __m1.as_short[0] : __m2.as_short[0]; ! __res.as_short[1] = ! (__m1.as_short[1] < __m2.as_short[1]) ? __m1.as_short[1] : __m2.as_short[1]; ! __res.as_short[2] = ! (__m1.as_short[2] < __m2.as_short[2]) ? __m1.as_short[2] : __m2.as_short[2]; ! __res.as_short[3] = ! (__m1.as_short[3] < __m2.as_short[3]) ? __m1.as_short[3] : __m2.as_short[3]; ! return (__m64) __res.as_m64; #endif } *************** extern __inline __m64 __attribute__((__g *** 1542,1569 **** _mm_min_pu8 (__m64 __A, __m64 __B) { #if _ARCH_PWR8 ! __vector unsigned char a, b, r; ! __vector __bool char c; ! a = (__vector unsigned char)vec_splats (__A); ! b = (__vector unsigned char)vec_splats (__B); ! c = (__vector __bool char)vec_cmplt (a, b); ! r = vec_sel (b, a, c); ! return (__m64) ((__vector long long) r)[0]; #else ! __m64_union m1, m2, res; ! long i; ! m1.as_m64 = __A; ! m2.as_m64 = __B; ! for (i = 0; i < 8; i++) ! res.as_char[i] = ! ((unsigned char) m1.as_char[i] < (unsigned char) m2.as_char[i]) ? ! m1.as_char[i] : m2.as_char[i]; ! return (__m64) res.as_m64; #endif } --- 1541,1568 ---- _mm_min_pu8 (__m64 __A, __m64 __B) { #if _ARCH_PWR8 ! __vector unsigned char __a, __b, __r; ! __vector __bool char __c; ! __a = (__vector unsigned char)vec_splats (__A); ! __b = (__vector unsigned char)vec_splats (__B); ! __c = (__vector __bool char)vec_cmplt (__a, __b); ! __r = vec_sel (__b, __a, __c); ! return (__m64) ((__vector long long) __r)[0]; #else ! __m64_union __m1, __m2, __res; ! long __i; ! __m1.as_m64 = __A; ! __m2.as_m64 = __B; ! for (__i = 0; __i < 8; __i++) ! __res.as_char[__i] = ! ((unsigned char) __m1.as_char[__i] < (unsigned char) __m2.as_char[__i]) ? ! __m1.as_char[__i] : __m2.as_char[__i]; ! return (__m64) __res.as_m64; #endif } *************** extern __inline int __attribute__((__gnu *** 1578,1601 **** _mm_movemask_pi8 (__m64 __A) { #ifdef __powerpc64__ ! unsigned long long p = #ifdef __LITTLE_ENDIAN__ 0x0008101820283038UL; // permute control for sign bits #else 0x3830282018100800UL; // permute control for sign bits #endif ! return __builtin_bpermd (p, __A); #else #ifdef __LITTLE_ENDIAN__ ! unsigned int mask = 0x20283038UL; ! unsigned int r1 = __builtin_bpermd (mask, __A) & 0xf; ! unsigned int r2 = __builtin_bpermd (mask, __A >> 32) & 0xf; #else ! unsigned int mask = 0x38302820UL; ! unsigned int r1 = __builtin_bpermd (mask, __A >> 32) & 0xf; ! unsigned int r2 = __builtin_bpermd (mask, __A) & 0xf; #endif ! return (r2 << 4) | r1; #endif } --- 1577,1600 ---- _mm_movemask_pi8 (__m64 __A) { #ifdef __powerpc64__ ! unsigned long long __p = #ifdef __LITTLE_ENDIAN__ 0x0008101820283038UL; // permute control for sign bits #else 0x3830282018100800UL; // permute control for sign bits #endif ! return __builtin_bpermd (__p, __A); #else #ifdef __LITTLE_ENDIAN__ ! unsigned int __mask = 0x20283038UL; ! unsigned int __r1 = __builtin_bpermd (__mask, __A) & 0xf; ! unsigned int __r2 = __builtin_bpermd (__mask, __A >> 32) & 0xf; #else ! unsigned int __mask = 0x38302820UL; ! unsigned int __r1 = __builtin_bpermd (__mask, __A >> 32) & 0xf; ! unsigned int __r2 = __builtin_bpermd (__mask, __A) & 0xf; #endif ! return (__r2 << 4) | __r1; #endif } *************** _m_pmovmskb (__m64 __A) *** 1610,1619 **** extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_mulhi_pu16 (__m64 __A, __m64 __B) { ! __vector unsigned short a, b; ! __vector unsigned short c; ! __vector unsigned int w0, w1; ! __vector unsigned char xform1 = { #ifdef __LITTLE_ENDIAN__ 0x02, 0x03, 0x12, 0x13, 0x06, 0x07, 0x16, 0x17, 0x0A, 0x0B, 0x1A, 0x1B, 0x0E, 0x0F, 0x1E, 0x1F --- 1609,1618 ---- extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_mulhi_pu16 (__m64 __A, __m64 __B) { ! __vector unsigned short __a, __b; ! __vector unsigned short __c; ! __vector unsigned int __w0, __w1; ! __vector unsigned char __xform1 = { #ifdef __LITTLE_ENDIAN__ 0x02, 0x03, 0x12, 0x13, 0x06, 0x07, 0x16, 0x17, 0x0A, 0x0B, 0x1A, 0x1B, 0x0E, 0x0F, 0x1E, 0x1F *************** _mm_mulhi_pu16 (__m64 __A, __m64 __B) *** 1623,1636 **** #endif }; ! a = (__vector unsigned short)vec_splats (__A); ! b = (__vector unsigned short)vec_splats (__B); ! w0 = vec_vmuleuh (a, b); ! w1 = vec_vmulouh (a, b); ! c = (__vector unsigned short)vec_perm (w0, w1, xform1); ! return (__m64) ((__vector long long) c)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 1622,1635 ---- #endif }; ! __a = (__vector unsigned short)vec_splats (__A); ! __b = (__vector unsigned short)vec_splats (__B); ! __w0 = vec_vmuleuh (__a, __b); ! __w1 = vec_vmulouh (__a, __b); ! __c = (__vector unsigned short)vec_perm (__w0, __w1, __xform1); ! return (__m64) ((__vector long long) __c)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** _m_pmulhuw (__m64 __A, __m64 __B) *** 1644,1654 **** extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_shuffle_pi16 (__m64 __A, int const __N) { ! unsigned long element_selector_10 = __N & 0x03; ! unsigned long element_selector_32 = (__N >> 2) & 0x03; ! unsigned long element_selector_54 = (__N >> 4) & 0x03; ! unsigned long element_selector_76 = (__N >> 6) & 0x03; ! static const unsigned short permute_selectors[4] = { #ifdef __LITTLE_ENDIAN__ 0x0908, 0x0B0A, 0x0D0C, 0x0F0E --- 1643,1653 ---- extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_shuffle_pi16 (__m64 __A, int const __N) { ! unsigned long __element_selector_10 = __N & 0x03; ! unsigned long __element_selector_32 = (__N >> 2) & 0x03; ! unsigned long __element_selector_54 = (__N >> 4) & 0x03; ! unsigned long __element_selector_76 = (__N >> 6) & 0x03; ! static const unsigned short __permute_selectors[4] = { #ifdef __LITTLE_ENDIAN__ 0x0908, 0x0B0A, 0x0D0C, 0x0F0E *************** _mm_shuffle_pi16 (__m64 __A, int const _ *** 1656,1679 **** 0x0607, 0x0405, 0x0203, 0x0001 #endif }; ! __m64_union t; ! __vector unsigned long long a, p, r; #ifdef __LITTLE_ENDIAN__ ! t.as_short[0] = permute_selectors[element_selector_10]; ! t.as_short[1] = permute_selectors[element_selector_32]; ! t.as_short[2] = permute_selectors[element_selector_54]; ! t.as_short[3] = permute_selectors[element_selector_76]; #else ! t.as_short[3] = permute_selectors[element_selector_10]; ! t.as_short[2] = permute_selectors[element_selector_32]; ! t.as_short[1] = permute_selectors[element_selector_54]; ! t.as_short[0] = permute_selectors[element_selector_76]; #endif ! p = vec_splats (t.as_m64); ! a = vec_splats (__A); ! r = vec_perm (a, a, (__vector unsigned char)p); ! return (__m64) ((__vector long long) r)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 1655,1678 ---- 0x0607, 0x0405, 0x0203, 0x0001 #endif }; ! __m64_union __t; ! __vector unsigned long long __a, __p, __r; #ifdef __LITTLE_ENDIAN__ ! __t.as_short[0] = __permute_selectors[__element_selector_10]; ! __t.as_short[1] = __permute_selectors[__element_selector_32]; ! __t.as_short[2] = __permute_selectors[__element_selector_54]; ! __t.as_short[3] = __permute_selectors[__element_selector_76]; #else ! __t.as_short[3] = __permute_selectors[__element_selector_10]; ! __t.as_short[2] = __permute_selectors[__element_selector_32]; ! __t.as_short[1] = __permute_selectors[__element_selector_54]; ! __t.as_short[0] = __permute_selectors[__element_selector_76]; #endif ! __p = vec_splats (__t.as_m64); ! __a = vec_splats (__A); ! __r = vec_perm (__a, __a, (__vector unsigned char)__p); ! return (__m64) ((__vector long long) __r)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** _m_pshufw (__m64 __A, int const __N) *** 1688,1701 **** extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_maskmove_si64 (__m64 __A, __m64 __N, char *__P) { ! __m64 hibit = 0x8080808080808080UL; ! __m64 mask, tmp; ! __m64 *p = (__m64*)__P; ! tmp = *p; ! mask = _mm_cmpeq_pi8 ((__N & hibit), hibit); ! tmp = (tmp & (~mask)) | (__A & mask); ! *p = tmp; } extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 1687,1700 ---- extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_maskmove_si64 (__m64 __A, __m64 __N, char *__P) { ! __m64 __hibit = 0x8080808080808080UL; ! __m64 __mask, __tmp; ! __m64 *__p = (__m64*)__P; ! __tmp = *__p; ! __mask = _mm_cmpeq_pi8 ((__N & __hibit), __hibit); ! __tmp = (__tmp & (~__mask)) | (__A & __mask); ! *__p = __tmp; } extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** _m_maskmovq (__m64 __A, __m64 __N, char *** 1708,1719 **** extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_avg_pu8 (__m64 __A, __m64 __B) { ! __vector unsigned char a, b, c; ! a = (__vector unsigned char)vec_splats (__A); ! b = (__vector unsigned char)vec_splats (__B); ! c = vec_avg (a, b); ! return (__m64) ((__vector long long) c)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 1707,1718 ---- extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_avg_pu8 (__m64 __A, __m64 __B) { ! __vector unsigned char __a, __b, __c; ! __a = (__vector unsigned char)vec_splats (__A); ! __b = (__vector unsigned char)vec_splats (__B); ! __c = vec_avg (__a, __b); ! return (__m64) ((__vector long long) __c)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** _m_pavgb (__m64 __A, __m64 __B) *** 1726,1737 **** extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_avg_pu16 (__m64 __A, __m64 __B) { ! __vector unsigned short a, b, c; ! a = (__vector unsigned short)vec_splats (__A); ! b = (__vector unsigned short)vec_splats (__B); ! c = vec_avg (a, b); ! return (__m64) ((__vector long long) c)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 1725,1736 ---- extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_avg_pu16 (__m64 __A, __m64 __B) { ! __vector unsigned short __a, __b, __c; ! __a = (__vector unsigned short)vec_splats (__A); ! __b = (__vector unsigned short)vec_splats (__B); ! __c = vec_avg (__a, __b); ! return (__m64) ((__vector long long) __c)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** _m_pavgw (__m64 __A, __m64 __B) *** 1746,1771 **** extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_sad_pu8 (__m64 __A, __m64 __B) { ! __vector unsigned char a, b; ! __vector unsigned char vmin, vmax, vabsdiff; ! __vector signed int vsum; ! const __vector unsigned int zero = { 0, 0, 0, 0 }; ! __m64_union result = {0}; ! a = (__vector unsigned char) (__vector unsigned long long) { 0UL, __A }; ! b = (__vector unsigned char) (__vector unsigned long long) { 0UL, __B }; ! vmin = vec_min (a, b); ! vmax = vec_max (a, b); ! vabsdiff = vec_sub (vmax, vmin); /* Sum four groups of bytes into integers. */ ! vsum = (__vector signed int) vec_sum4s (vabsdiff, zero); /* Sum across four integers with integer result. */ ! vsum = vec_sums (vsum, (__vector signed int) zero); /* The sum is in the right most 32-bits of the vector result. Transfer to a GPR and truncate to 16 bits. */ ! result.as_short[0] = vsum[3]; ! return result.as_m64; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 1745,1770 ---- extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_sad_pu8 (__m64 __A, __m64 __B) { ! __vector unsigned char __a, __b; ! __vector unsigned char __vmin, __vmax, __vabsdiff; ! __vector signed int __vsum; ! const __vector unsigned int __zero = { 0, 0, 0, 0 }; ! __m64_union __result = {0}; ! __a = (__vector unsigned char) (__vector unsigned long long) { 0UL, __A }; ! __b = (__vector unsigned char) (__vector unsigned long long) { 0UL, __B }; ! __vmin = vec_min (__a, __b); ! __vmax = vec_max (__a, __b); ! __vabsdiff = vec_sub (__vmax, __vmin); /* Sum four groups of bytes into integers. */ ! __vsum = (__vector signed int) vec_sum4s (__vabsdiff, __zero); /* Sum across four integers with integer result. */ ! __vsum = vec_sums (__vsum, (__vector signed int) __zero); /* The sum is in the right most 32-bits of the vector result. Transfer to a GPR and truncate to 16 bits. */ ! __result.as_short[0] = __vsum[3]; ! return __result.as_m64; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) diff -Nrcpad gcc-10.3.0/gcc/config/s390/s390.md gcc-10.4.0/gcc/config/s390/s390.md *** gcc-10.3.0/gcc/config/s390/s390.md Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/config/s390/s390.md Tue Jun 28 08:54:27 2022 *************** *** 973,979 **** (match_operand:GPR 2 "memory_operand")) (set (reg CC_REGNUM) (compare (match_dup 0) (match_operand:GPR 1 "const0_operand")))] ! "s390_match_ccmode(insn, CCSmode) && TARGET_EXTIMM && GENERAL_REG_P (operands[0]) && satisfies_constraint_T (operands[2]) && !contains_constant_pool_address_p (operands[2])" --- 973,979 ---- (match_operand:GPR 2 "memory_operand")) (set (reg CC_REGNUM) (compare (match_dup 0) (match_operand:GPR 1 "const0_operand")))] ! "s390_match_ccmode (peep2_next_insn (1), CCSmode) && TARGET_EXTIMM && GENERAL_REG_P (operands[0]) && satisfies_constraint_T (operands[2]) && !contains_constant_pool_address_p (operands[2])" *************** *** 9474,9480 **** (define_insn "*cmp_and_trap_unsigned_int" [(trap_if (match_operator 0 "s390_unsigned_integer_comparison" [(match_operand:GPR 1 "register_operand" "d,d,d") ! (match_operand:GPR 2 "general_operand" "d,D,T")]) (const_int 0))] "TARGET_Z10" "@ --- 9474,9480 ---- (define_insn "*cmp_and_trap_unsigned_int" [(trap_if (match_operator 0 "s390_unsigned_integer_comparison" [(match_operand:GPR 1 "register_operand" "d,d,d") ! (match_operand:GPR 2 "general_operand" "d,D,S")]) (const_int 0))] "TARGET_Z10" "@ diff -Nrcpad gcc-10.3.0/gcc/config/s390/vecintrin.h gcc-10.4.0/gcc/config/s390/vecintrin.h *** gcc-10.3.0/gcc/config/s390/vecintrin.h Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/config/s390/vecintrin.h Tue Jun 28 08:54:27 2022 *************** __lcbb(const void *ptr, int bndry) *** 109,116 **** #define vec_rint(X) __builtin_s390_vfi((X), 0, 0) #define vec_roundc(X) __builtin_s390_vfi((X), 4, 0) #define vec_round(X) __builtin_s390_vfi((X), 4, 4) ! #define vec_doublee(X) __builtin_s390_vfll((X)) ! #define vec_floate(X) __builtin_s390_vflr((X), 0, 0) #define vec_load_len_r(X,L) \ (__vector unsigned char)__builtin_s390_vlrlr((L),(X)) #define vec_store_len_r(X,Y,L) \ --- 109,116 ---- #define vec_rint(X) __builtin_s390_vfi((X), 0, 0) #define vec_roundc(X) __builtin_s390_vfi((X), 4, 0) #define vec_round(X) __builtin_s390_vfi((X), 4, 4) ! #define vec_doublee(X) __builtin_s390_vflls((X)) ! #define vec_floate(X) __builtin_s390_vflrd((X), 0, 0) #define vec_load_len_r(X,L) \ (__vector unsigned char)__builtin_s390_vlrlr((L),(X)) #define vec_store_len_r(X,Y,L) \ diff -Nrcpad gcc-10.3.0/gcc/config/sparc/leon5.md gcc-10.4.0/gcc/config/sparc/leon5.md *** gcc-10.3.0/gcc/config/sparc/leon5.md Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/config/sparc/leon5.md Tue Jun 28 08:54:27 2022 *************** *** 0 **** --- 1,103 ---- + ;; Scheduling description for LEON5. + ;; Copyright (C) 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 + ;; . + + + ;; The LEON5 can often dual issue instructions from the same 64-bit aligned + ;; double word if there are no data dependencies. + ;; + ;; Avoid scheduling load/store, FPU, and multiply instructions back to + ;; back, regardless of data dependencies. + ;; + ;; Push comparisons away from the associated branch instruction. + ;; + ;; Avoid scheduling ALU instructions with data dependencies back to back. + ;; + ;; Schedule three instructions between load and dependent instruction. + + (define_automaton "leon5") + + (define_cpu_unit "leon5_memory" "leon5") + (define_cpu_unit "leon5_mul" "leon5") + (define_cpu_unit "grfpu_d" "grfpu") + (define_cpu_unit "grfpu_s" "grfpu") + + (define_insn_reservation "leon5_load" 4 + (and (eq_attr "cpu" "leon5") + (eq_attr "type" "load,sload")) + "leon5_memory * 2, nothing * 2") + + (define_insn_reservation "leon5_fpload" 2 + (and (eq_attr "cpu" "leon5") + (eq_attr "type" "fpload")) + "leon5_memory * 2 + grfpu_alu * 2") + + (define_insn_reservation "leon5_store" 2 + (and (eq_attr "cpu" "leon5") + (eq_attr "type" "store")) + "leon5_memory * 2") + + (define_insn_reservation "leon5_fpstore" 2 + (and (eq_attr "cpu" "leon5") + (eq_attr "type" "fpstore")) + "leon5_memory * 2 + grfpu_alu * 2") + + (define_insn_reservation "leon5_ialu" 2 + (and (eq_attr "cpu" "leon5") + (eq_attr "type" "ialu, shift, ialuX")) + "nothing * 2") + + (define_insn_reservation "leon5_compare" 5 + (and (eq_attr "cpu" "leon5") + (eq_attr "type" "compare")) + "nothing * 5") + + (define_insn_reservation "leon5_imul" 4 + (and (eq_attr "cpu" "leon5") + (eq_attr "type" "imul")) + "leon5_mul * 2, nothing * 2") + + (define_insn_reservation "leon5_idiv" 35 + (and (eq_attr "cpu" "leon5") + (eq_attr "type" "imul")) + "nothing * 35") + + (define_insn_reservation "leon5_fp_alu" 5 + (and (eq_attr "cpu" "leon5") + (eq_attr "type" "fp,fpcmp,fpmul,fpmove")) + "grfpu_alu * 2, nothing*3") + + (define_insn_reservation "leon5_fp_divs" 17 + (and (eq_attr "cpu" "leon5") + (eq_attr "type" "fpdivs")) + "grfpu_alu * 2 + grfpu_d*16, nothing") + + (define_insn_reservation "leon5_fp_divd" 18 + (and (eq_attr "cpu" "leon5") + (eq_attr "type" "fpdivd")) + "grfpu_alu * 2 + grfpu_d*17, nothing") + + (define_insn_reservation "leon5_fp_sqrts" 25 + (and (eq_attr "cpu" "leon5") + (eq_attr "type" "fpsqrts")) + "grfpu_alu * 2 + grfpu_s*24, nothing") + + (define_insn_reservation "leon5_fp_sqrtd" 26 + (and (eq_attr "cpu" "leon5") + (eq_attr "type" "fpsqrtd")) + "grfpu_alu * 2 + grfpu_s*25, nothing") diff -Nrcpad gcc-10.3.0/gcc/config/sparc/sparc-modes.def gcc-10.4.0/gcc/config/sparc/sparc-modes.def *** gcc-10.3.0/gcc/config/sparc/sparc-modes.def Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/config/sparc/sparc-modes.def Tue Jun 28 08:54:27 2022 *************** along with GCC; see the file COPYING3. *** 23,28 **** --- 23,31 ---- /* 128-bit floating point */ FLOAT_MODE (TF, 16, ieee_quad_format); + /* We need a 32-byte mode to return structures in the 64-bit ABI. */ + INT_MODE (OI, 32); + /* Add any extra modes needed to represent the condition code. We have a CCNZ mode which is used for implicit comparisons with zero when diff -Nrcpad gcc-10.3.0/gcc/config/sparc/sparc-opts.h gcc-10.4.0/gcc/config/sparc/sparc-opts.h *** gcc-10.3.0/gcc/config/sparc/sparc-opts.h Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/config/sparc/sparc-opts.h Tue Jun 28 08:54:27 2022 *************** enum sparc_processor_type { *** 31,36 **** --- 31,37 ---- PROCESSOR_HYPERSPARC, PROCESSOR_LEON, PROCESSOR_LEON3, + PROCESSOR_LEON5, PROCESSOR_LEON3V7, PROCESSOR_SPARCLITE, PROCESSOR_F930, diff -Nrcpad gcc-10.3.0/gcc/config/sparc/sparc.c gcc-10.4.0/gcc/config/sparc/sparc.c *** gcc-10.3.0/gcc/config/sparc/sparc.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/config/sparc/sparc.c Tue Jun 28 08:54:27 2022 *************** struct processor_costs leon3_costs = { *** 270,275 **** --- 270,300 ---- }; static const + struct processor_costs leon5_costs = { + COSTS_N_INSNS (1), /* int load */ + COSTS_N_INSNS (1), /* int signed load */ + COSTS_N_INSNS (1), /* int zeroed load */ + COSTS_N_INSNS (1), /* float load */ + COSTS_N_INSNS (1), /* fmov, fneg, fabs */ + COSTS_N_INSNS (1), /* fadd, fsub */ + COSTS_N_INSNS (1), /* fcmp */ + COSTS_N_INSNS (1), /* fmov, fmovr */ + COSTS_N_INSNS (1), /* fmul */ + COSTS_N_INSNS (17), /* fdivs */ + COSTS_N_INSNS (18), /* fdivd */ + COSTS_N_INSNS (25), /* fsqrts */ + COSTS_N_INSNS (26), /* fsqrtd */ + COSTS_N_INSNS (4), /* imul */ + COSTS_N_INSNS (4), /* imulX */ + 0, /* imul bit factor */ + COSTS_N_INSNS (35), /* idiv */ + COSTS_N_INSNS (35), /* idivX */ + COSTS_N_INSNS (1), /* movcc/movr */ + 0, /* shift penalty */ + 3 /* branch cost */ + }; + + static const struct processor_costs sparclet_costs = { COSTS_N_INSNS (3), /* int load */ COSTS_N_INSNS (3), /* int signed load */ *************** static int function_arg_slotno (const CU *** 594,599 **** --- 619,625 ---- static int supersparc_adjust_cost (rtx_insn *, int, rtx_insn *, int); static int hypersparc_adjust_cost (rtx_insn *, int, rtx_insn *, int); + static int leon5_adjust_cost (rtx_insn *, int, rtx_insn *, int); static void sparc_emit_set_const32 (rtx, rtx); static void sparc_emit_set_const64 (rtx, rtx); *************** atomic_insn_for_leon3_p (rtx_insn *insn) *** 1049,1054 **** --- 1075,1117 ---- } } + /* True if INSN is a store instruction. */ + + static bool + store_insn_p (rtx_insn *insn) + { + if (GET_CODE (PATTERN (insn)) != SET) + return false; + + switch (get_attr_type (insn)) + { + case TYPE_STORE: + case TYPE_FPSTORE: + return true; + default: + return false; + } + } + + /* True if INSN is a load instruction. */ + + static bool + load_insn_p (rtx_insn *insn) + { + if (GET_CODE (PATTERN (insn)) != SET) + return false; + + switch (get_attr_type (insn)) + { + case TYPE_LOAD: + case TYPE_SLOAD: + case TYPE_FPLOAD: + return true; + default: + return false; + } + } + /* We use a machine specific pass to enable workarounds for errata. We need to have the (essentially) final form of the insn stream in order *************** atomic_insn_for_leon3_p (rtx_insn *insn) *** 1061,1070 **** --- 1124,1152 ---- && GET_CODE (PATTERN (INSN)) != USE \ && GET_CODE (PATTERN (INSN)) != CLOBBER) + rtx_insn * + next_active_non_empty_insn (rtx_insn *insn) + { + insn = next_active_insn (insn); + + while (insn + && (GET_CODE (PATTERN (insn)) == UNSPEC_VOLATILE + || GET_CODE (PATTERN (insn)) == ASM_INPUT + || (USEFUL_INSN_P (insn) + && (asm_noperands (PATTERN (insn)) >= 0) + && !strcmp (decode_asm_operands (PATTERN (insn), + NULL, NULL, NULL, + NULL, NULL), "")))) + insn = next_active_insn (insn); + + return insn; + } + static unsigned int sparc_do_work_around_errata (void) { rtx_insn *insn, *next; + bool find_first_useful = true; /* Force all instructions to be split into their final form. */ split_all_insns_noflow (); *************** sparc_do_work_around_errata (void) *** 1089,1094 **** --- 1171,1186 ---- else jump = NULL; + /* Do not begin function with atomic instruction. */ + if (sparc_fix_ut700 + && find_first_useful + && USEFUL_INSN_P (insn)) + { + find_first_useful = false; + if (atomic_insn_for_leon3_p (insn)) + emit_insn_before (gen_nop (), insn); + } + /* Place a NOP at the branch target of an integer branch if it is a floating-point operation or a floating-point branch. */ if (sparc_fix_gr712rc *************** sparc_do_work_around_errata (void) *** 1109,1117 **** instruction at branch target. */ if (sparc_fix_ut700 && NONJUMP_INSN_P (insn) ! && (set = single_set (insn)) != NULL_RTX ! && mem_ref (SET_SRC (set)) ! && REG_P (SET_DEST (set))) { if (jump && jump_to_label_p (jump)) { --- 1201,1207 ---- instruction at branch target. */ if (sparc_fix_ut700 && NONJUMP_INSN_P (insn) ! && load_insn_p (insn)) { if (jump && jump_to_label_p (jump)) { *************** sparc_do_work_around_errata (void) *** 1120,1126 **** emit_insn_before (gen_nop (), target); } ! next = next_active_insn (insn); if (!next) break; --- 1210,1216 ---- emit_insn_before (gen_nop (), target); } ! next = next_active_non_empty_insn (insn); if (!next) break; *************** sparc_do_work_around_errata (void) *** 1216,1245 **** if (sparc_fix_b2bst && NONJUMP_INSN_P (insn) && (set = single_set (insn)) != NULL_RTX ! && MEM_P (SET_DEST (set))) { /* Sequence B begins with a double-word store. */ bool seq_b = GET_MODE_SIZE (GET_MODE (SET_DEST (set))) == 8; rtx_insn *after; int i; ! next = next_active_insn (insn); if (!next) break; for (after = next, i = 0; i < 2; i++) { - /* Skip empty assembly statements. */ - if ((GET_CODE (PATTERN (after)) == UNSPEC_VOLATILE) - || (USEFUL_INSN_P (after) - && (asm_noperands (PATTERN (after))>=0) - && !strcmp (decode_asm_operands (PATTERN (after), - NULL, NULL, NULL, - NULL, NULL), ""))) - after = next_active_insn (after); - if (!after) - break; - /* If the insn is a branch, then it cannot be problematic. */ if (!NONJUMP_INSN_P (after) || GET_CODE (PATTERN (after)) == SEQUENCE) --- 1306,1324 ---- if (sparc_fix_b2bst && NONJUMP_INSN_P (insn) && (set = single_set (insn)) != NULL_RTX ! && store_insn_p (insn)) { /* Sequence B begins with a double-word store. */ bool seq_b = GET_MODE_SIZE (GET_MODE (SET_DEST (set))) == 8; rtx_insn *after; int i; ! next = next_active_non_empty_insn (insn); if (!next) break; for (after = next, i = 0; i < 2; i++) { /* If the insn is a branch, then it cannot be problematic. */ if (!NONJUMP_INSN_P (after) || GET_CODE (PATTERN (after)) == SEQUENCE) *************** sparc_do_work_around_errata (void) *** 1249,1256 **** if (seq_b) { /* Add NOP if followed by a store. */ ! if ((set = single_set (after)) != NULL_RTX ! && MEM_P (SET_DEST (set))) insert_nop = true; /* Otherwise it is ok. */ --- 1328,1334 ---- if (seq_b) { /* Add NOP if followed by a store. */ ! if (store_insn_p (after)) insert_nop = true; /* Otherwise it is ok. */ *************** sparc_do_work_around_errata (void) *** 1265,1279 **** && (MEM_P (SET_DEST (set)) || mem_ref (SET_SRC (set)))) break; ! after = next_active_insn (after); if (!after) break; } /* Add NOP if third instruction is a store. */ if (i == 1 ! && (set = single_set (after)) != NULL_RTX ! && MEM_P (SET_DEST (set))) insert_nop = true; } } --- 1343,1356 ---- && (MEM_P (SET_DEST (set)) || mem_ref (SET_SRC (set)))) break; ! after = next_active_non_empty_insn (after); if (!after) break; } /* Add NOP if third instruction is a store. */ if (i == 1 ! && store_insn_p (after)) insert_nop = true; } } *************** dump_target_flag_bits (const int flags) *** 1600,1605 **** --- 1677,1686 ---- fprintf (stderr, "CBCOND "); if (flags & MASK_DEPRECATED_V8_INSNS) fprintf (stderr, "DEPRECATED_V8_INSNS "); + if (flags & MASK_LEON) + fprintf (stderr, "LEON "); + if (flags & MASK_LEON3) + fprintf (stderr, "LEON3 "); if (flags & MASK_SPARCLET) fprintf (stderr, "SPARCLET "); if (flags & MASK_SPARCLITE) *************** sparc_option_override (void) *** 1636,1641 **** --- 1717,1723 ---- { TARGET_CPU_hypersparc, PROCESSOR_HYPERSPARC }, { TARGET_CPU_leon, PROCESSOR_LEON }, { TARGET_CPU_leon3, PROCESSOR_LEON3 }, + { TARGET_CPU_leon5, PROCESSOR_LEON5 }, { TARGET_CPU_leon3v7, PROCESSOR_LEON3V7 }, { TARGET_CPU_sparclite, PROCESSOR_F930 }, { TARGET_CPU_sparclite86x, PROCESSOR_SPARCLITE86X }, *************** sparc_option_override (void) *** 1667,1672 **** --- 1749,1755 ---- { "hypersparc", MASK_ISA, MASK_V8 }, { "leon", MASK_ISA|MASK_FSMULD, MASK_V8|MASK_LEON }, { "leon3", MASK_ISA, MASK_V8|MASK_LEON3 }, + { "leon5", MASK_ISA, MASK_V8|MASK_LEON3 }, { "leon3v7", MASK_ISA, MASK_LEON3 }, { "sparclite", MASK_ISA, MASK_SPARCLITE }, /* The Fujitsu MB86930 is the original sparclite chip, with no FPU. */ *************** sparc_option_override (void) *** 1977,1982 **** --- 2060,2068 ---- case PROCESSOR_LEON3V7: sparc_costs = &leon3_costs; break; + case PROCESSOR_LEON5: + sparc_costs = &leon5_costs; + break; case PROCESSOR_SPARCLET: case PROCESSOR_TSC701: sparc_costs = &sparclet_costs; *************** epilogue_renumber (register rtx *where, *** 8866,8873 **** if (REGNO (*where) >= 8 && REGNO (*where) < 24) /* oX or lX */ return 1; if (! test && REGNO (*where) >= 24 && REGNO (*where) < 32) ! *where = gen_rtx_REG (GET_MODE (*where), OUTGOING_REGNO (REGNO(*where))); ! /* fallthrough */ case SCRATCH: case CC0: case PC: --- 8952,8971 ---- if (REGNO (*where) >= 8 && REGNO (*where) < 24) /* oX or lX */ return 1; if (! test && REGNO (*where) >= 24 && REGNO (*where) < 32) ! { ! if (ORIGINAL_REGNO (*where)) ! { ! rtx n = gen_raw_REG (GET_MODE (*where), ! OUTGOING_REGNO (REGNO (*where))); ! ORIGINAL_REGNO (n) = ORIGINAL_REGNO (*where); ! *where = n; ! } ! else ! *where = gen_rtx_REG (GET_MODE (*where), ! OUTGOING_REGNO (REGNO (*where))); ! } ! return 0; ! case SCRATCH: case CC0: case PC: *************** hypersparc_adjust_cost (rtx_insn *insn, *** 10158,10168 **** --- 10256,10319 ---- } static int + leon5_adjust_cost (rtx_insn *insn, int dtype, rtx_insn *dep_insn, + int cost) + { + enum attr_type insn_type, dep_type; + rtx pat = PATTERN (insn); + rtx dep_pat = PATTERN (dep_insn); + + if (recog_memoized (insn) < 0 || recog_memoized (dep_insn) < 0) + return cost; + + insn_type = get_attr_type (insn); + dep_type = get_attr_type (dep_insn); + + switch (dtype) + { + case REG_DEP_TRUE: + /* Data dependency; DEP_INSN writes a register that INSN reads some + cycles later. */ + + switch (insn_type) + { + case TYPE_STORE: + /* Try to schedule three instructions between the store and + the ALU instruction that generated the data. */ + if (dep_type == TYPE_IALU || dep_type == TYPE_SHIFT) + { + if (GET_CODE (pat) != SET || GET_CODE (dep_pat) != SET) + break; + + if (rtx_equal_p (SET_DEST (dep_pat), SET_SRC (pat))) + return 4; + } + break; + default: + break; + } + break; + case REG_DEP_ANTI: + /* Penalize anti-dependencies for FPU instructions. */ + if (fpop_insn_p (insn) || insn_type == TYPE_FPLOAD) + return 4; + break; + default: + break; + } + + return cost; + } + + static int sparc_adjust_cost (rtx_insn *insn, int dep_type, rtx_insn *dep, int cost, unsigned int) { switch (sparc_cpu) { + case PROCESSOR_LEON5: + cost = leon5_adjust_cost (insn, dep_type, dep, cost); + break; case PROCESSOR_SUPERSPARC: cost = supersparc_adjust_cost (insn, dep_type, dep, cost); break; *************** sparc_vectorize_vec_perm_const (machine_ *** 12928,12936 **** if (!TARGET_VIS2) return false; ! /* All permutes are supported. */ if (!target) ! return true; /* Force target-independent code to convert constant permutations on other modes down to V8QI. Rely on this to avoid the complexity of the byte --- 13079,13087 ---- if (!TARGET_VIS2) return false; ! /* All 8-byte permutes are supported. */ if (!target) ! return GET_MODE_SIZE (vmode) == 8; /* Force target-independent code to convert constant permutations on other modes down to V8QI. Rely on this to avoid the complexity of the byte diff -Nrcpad gcc-10.3.0/gcc/config/sparc/sparc.h gcc-10.4.0/gcc/config/sparc/sparc.h *** gcc-10.3.0/gcc/config/sparc/sparc.h Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/config/sparc/sparc.h Tue Jun 28 08:54:27 2022 *************** along with GCC; see the file COPYING3. *** 119,139 **** #define TARGET_CPU_leon 4 #define TARGET_CPU_leon3 5 #define TARGET_CPU_leon3v7 6 ! #define TARGET_CPU_sparclite 7 ! #define TARGET_CPU_f930 7 /* alias */ ! #define TARGET_CPU_f934 7 /* alias */ ! #define TARGET_CPU_sparclite86x 8 ! #define TARGET_CPU_sparclet 9 ! #define TARGET_CPU_tsc701 9 /* alias */ ! #define TARGET_CPU_v9 10 /* generic v9 implementation */ ! #define TARGET_CPU_sparcv9 10 /* alias */ ! #define TARGET_CPU_sparc64 10 /* alias */ ! #define TARGET_CPU_ultrasparc 11 ! #define TARGET_CPU_ultrasparc3 12 ! #define TARGET_CPU_niagara 13 ! #define TARGET_CPU_niagara2 14 ! #define TARGET_CPU_niagara3 15 ! #define TARGET_CPU_niagara4 16 #define TARGET_CPU_niagara7 19 #define TARGET_CPU_m8 20 --- 119,140 ---- #define TARGET_CPU_leon 4 #define TARGET_CPU_leon3 5 #define TARGET_CPU_leon3v7 6 ! #define TARGET_CPU_leon5 7 ! #define TARGET_CPU_sparclite 8 ! #define TARGET_CPU_f930 8 /* alias */ ! #define TARGET_CPU_f934 8 /* alias */ ! #define TARGET_CPU_sparclite86x 9 ! #define TARGET_CPU_sparclet 10 ! #define TARGET_CPU_tsc701 10 /* alias */ ! #define TARGET_CPU_v9 11 /* generic v9 implementation */ ! #define TARGET_CPU_sparcv9 11 /* alias */ ! #define TARGET_CPU_sparc64 11 /* alias */ ! #define TARGET_CPU_ultrasparc 12 ! #define TARGET_CPU_ultrasparc3 13 ! #define TARGET_CPU_niagara 14 ! #define TARGET_CPU_niagara2 15 ! #define TARGET_CPU_niagara3 16 ! #define TARGET_CPU_niagara4 17 #define TARGET_CPU_niagara7 19 #define TARGET_CPU_m8 20 *************** along with GCC; see the file COPYING3. *** 228,234 **** #endif #if TARGET_CPU_DEFAULT == TARGET_CPU_leon \ ! || TARGET_CPU_DEFAULT == TARGET_CPU_leon3 #define CPP_CPU32_DEFAULT_SPEC "-D__leon__ -D__sparc_v8__" #define ASM_CPU32_DEFAULT_SPEC AS_LEON_FLAG #endif --- 229,236 ---- #endif #if TARGET_CPU_DEFAULT == TARGET_CPU_leon \ ! || TARGET_CPU_DEFAULT == TARGET_CPU_leon3 \ ! || TARGET_CPU_DEFAULT == TARGET_CPU_leon5 #define CPP_CPU32_DEFAULT_SPEC "-D__leon__ -D__sparc_v8__" #define ASM_CPU32_DEFAULT_SPEC AS_LEON_FLAG #endif *************** along with GCC; see the file COPYING3. *** 284,289 **** --- 286,292 ---- %{mcpu=hypersparc:-D__hypersparc__ -D__sparc_v8__} \ %{mcpu=leon:-D__leon__ -D__sparc_v8__} \ %{mcpu=leon3:-D__leon__ -D__sparc_v8__} \ + %{mcpu=leon5:-D__leon__ -D__sparc_v8__} \ %{mcpu=leon3v7:-D__leon__} \ %{mcpu=v9:-D__sparc_v9__} \ %{mcpu=ultrasparc:-D__sparc_v9__} \ *************** along with GCC; see the file COPYING3. *** 336,341 **** --- 339,345 ---- %{mcpu=hypersparc:-Av8} \ %{mcpu=leon:" AS_LEON_FLAG "} \ %{mcpu=leon3:" AS_LEON_FLAG "} \ + %{mcpu=leon5:" AS_LEON_FLAG "} \ %{mcpu=leon3v7:" AS_LEONV7_FLAG "} \ %{mv8plus:-Av8plus} \ %{mcpu=v9:-Av9} \ diff -Nrcpad gcc-10.3.0/gcc/config/sparc/sparc.md gcc-10.4.0/gcc/config/sparc/sparc.md *** gcc-10.3.0/gcc/config/sparc/sparc.md Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/config/sparc/sparc.md Tue Jun 28 08:54:27 2022 *************** *** 233,238 **** --- 233,239 ---- hypersparc, leon, leon3, + leon5, leon3v7, sparclite, f930, *************** *** 638,643 **** --- 639,645 ---- (include "supersparc.md") (include "hypersparc.md") (include "leon.md") + (include "leon5.md") (include "sparclet.md") (include "ultra1_2.md") (include "ultra3.md") *************** visl") *** 8353,8361 **** (unspec:SI [(match_operand:SI 1 "memory_operand" "m")] UNSPEC_SP_SET)) (set (match_scratch:SI 2 "=&r") (const_int 0))] "TARGET_ARCH32" ! "ld\t%1, %2\;st\t%2, %0\;mov\t0, %2" [(set_attr "type" "multi") ! (set_attr "length" "3")]) (define_insn "stack_protect_setdi" [(set (match_operand:DI 0 "memory_operand" "=m") --- 8355,8369 ---- (unspec:SI [(match_operand:SI 1 "memory_operand" "m")] UNSPEC_SP_SET)) (set (match_scratch:SI 2 "=&r") (const_int 0))] "TARGET_ARCH32" ! { ! if (sparc_fix_b2bst) ! return "ld\t%1, %2\;st\t%2, %0\;mov\t0, %2\;nop"; ! else ! return "ld\t%1, %2\;st\t%2, %0\;mov\t0, %2"; ! } [(set_attr "type" "multi") ! (set (attr "length") (if_then_else (eq_attr "fix_b2bst" "true") ! (const_int 4) (const_int 3)))]) (define_insn "stack_protect_setdi" [(set (match_operand:DI 0 "memory_operand" "=m") diff -Nrcpad gcc-10.3.0/gcc/config/sparc/sparc.opt gcc-10.4.0/gcc/config/sparc/sparc.opt *** gcc-10.3.0/gcc/config/sparc/sparc.opt Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/config/sparc/sparc.opt Tue Jun 28 08:54:27 2022 *************** EnumValue *** 176,181 **** --- 176,184 ---- Enum(sparc_processor) String(leon3v7) Value(PROCESSOR_LEON3V7) EnumValue + Enum(sparc_processor) String(leon5) Value(PROCESSOR_LEON5) + + EnumValue Enum(sparc_processor) String(sparclite) Value(PROCESSOR_SPARCLITE) EnumValue diff -Nrcpad gcc-10.3.0/gcc/config/tilepro/gen-mul-tables.cc gcc-10.4.0/gcc/config/tilepro/gen-mul-tables.cc *** gcc-10.3.0/gcc/config/tilepro/gen-mul-tables.cc Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/config/tilepro/gen-mul-tables.cc Tue Jun 28 08:54:27 2022 *************** tilegx_emit (long long multiplier, int n *** 1190,1200 **** long long next_pow10; while (((j * 10) < abs_multiplier) ! && (j < (INTMAX_MAX / 10))) j = j * 10; prev_pow10 = j; ! next_pow10 = (j > (INTMAX_MAX / 10)) ? 0 : j * 10; if ((abs_multiplier - prev_pow10 <= 100) || (next_pow10 --- 1190,1200 ---- long long next_pow10; while (((j * 10) < abs_multiplier) ! && (j < (j * 10))) j = j * 10; prev_pow10 = j; ! next_pow10 = j * 10; if ((abs_multiplier - prev_pow10 <= 100) || (next_pow10 diff -Nrcpad gcc-10.3.0/gcc/config.gcc gcc-10.4.0/gcc/config.gcc *** gcc-10.3.0/gcc/config.gcc Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/config.gcc Tue Jun 28 08:54:27 2022 *************** case ${target} in *** 691,699 **** *-*-darwin[4-9]* | *-*-darwin1[0-9]*) macos_min=`expr $darwin_maj - 4` ;; ! *-*-darwin20*) ! # Darwin 20 corresponds to macOS 11. ! macos_maj=11 def_ld64=609.0 ;; *-*-darwin) --- 691,699 ---- *-*-darwin[4-9]* | *-*-darwin1[0-9]*) macos_min=`expr $darwin_maj - 4` ;; ! *-*-darwin2*) ! # Darwin 20 corresponds to macOS 11, Darwin 21 to macOS 12. ! macos_maj=`expr $darwin_maj - 9` def_ld64=609.0 ;; *-*-darwin) *************** hppa[12]*-*-hpux11*) *** 1869,1875 **** dwarf2=no fi ;; ! i[34567]86-*-darwin1[89]*) echo "Error: 32bit target is not supported after Darwin17" 1>&2 ;; i[34567]86-*-darwin*) --- 1869,1875 ---- dwarf2=no fi ;; ! i[34567]86-*-darwin1[89]* | i[34567]86-*-darwin2*) echo "Error: 32bit target is not supported after Darwin17" 1>&2 ;; i[34567]86-*-darwin*) *************** i[34567]86-*-darwin*) *** 1879,1885 **** tmake_file="${tmake_file} ${cpu_type}/t-darwin32-biarch t-slibgcc" tm_file="${tm_file} ${cpu_type}/darwin32-biarch.h" ;; ! x86_64-*-darwin1[89]* | x86_64-*-darwin2[01]*) # Only 64b from now with_cpu=${with_cpu:-core2} tmake_file="${tmake_file} t-slibgcc" --- 1879,1885 ---- tmake_file="${tmake_file} ${cpu_type}/t-darwin32-biarch t-slibgcc" tm_file="${tm_file} ${cpu_type}/darwin32-biarch.h" ;; ! x86_64-*-darwin1[89]* | x86_64-*-darwin2*) # Only 64b from now with_cpu=${with_cpu:-core2} tmake_file="${tmake_file} t-slibgcc" diff -Nrcpad gcc-10.3.0/gcc/config.in gcc-10.4.0/gcc/config.in *** gcc-10.3.0/gcc/config.in Thu Apr 8 11:57:03 2021 --- gcc-10.4.0/gcc/config.in Tue Jun 28 08:55:09 2022 *************** *** 55,60 **** --- 55,66 ---- #endif + /* Define to enable the use of a default debug linker. */ + #ifndef USED_FOR_TARGET + #undef DEFAULT_DSYMUTIL + #endif + + /* Define to enable the use of a default linker. */ #ifndef USED_FOR_TARGET #undef DEFAULT_LINKER *************** *** 94,99 **** --- 100,111 ---- #endif + /* Define to the dsymutil version. */ + #ifndef USED_FOR_TARGET + #undef DSYMUTIL_VERSION + #endif + + /* Define 0/1 if static analyzer feature is enabled. */ #ifndef USED_FOR_TARGET #undef ENABLE_ANALYZER *************** *** 570,575 **** --- 582,594 ---- #endif + /* Define if your Mac OS X assembler supports -mllvm -x86-pad-for-align=false. + */ + #ifndef USED_FOR_TARGET + #undef HAVE_AS_MLLVM_X86_PAD_FOR_ALIGN + #endif + + /* Define if your Mac OS X assembler supports the -mmacos-version-min option. */ #ifndef USED_FOR_TARGET diff -Nrcpad gcc-10.3.0/gcc/configure gcc-10.4.0/gcc/configure *** gcc-10.3.0/gcc/configure Thu Apr 8 11:57:03 2021 --- gcc-10.4.0/gcc/configure Tue Jun 28 08:55:09 2022 *************** thin_archive_support *** 719,724 **** --- 719,726 ---- ld_soname_option ld_version_script_option libgcc_visibility + ORIGINAL_DSYMUTIL_FOR_TARGET + gcc_cv_dsymutil gcc_cv_otool gcc_cv_readelf gcc_cv_objdump *************** FGREP *** 747,756 **** SED LIBTOOL collect2 - NO_PIE_FLAG_FOR_BUILD - NO_PIE_CFLAGS_FOR_BUILD - BUILD_NO_PIE_FLAG - BUILD_NO_PIE_CFLAGS STMP_FIXINC BUILD_LDFLAGS BUILD_CXXFLAGS --- 749,754 ---- *************** enable_generated_files_in_srcdir *** 938,943 **** --- 936,942 ---- with_gnu_ld with_ld with_demangler_in_ld + with_dsymutil with_gnu_as with_as enable_largefile *************** Optional Packages: *** 1791,1796 **** --- 1790,1797 ---- --with-gnu-ld arrange to work with GNU ld --with-ld arrange to use the specified ld (full pathname) --with-demangler-in-ld try to use demangler in GNU ld + --with-dsymutil arrange to use the specified dsymutil (full + pathname) --with-gnu-as arrange to work with GNU as --with-as arrange to use the specified as (full pathname) --with-stabs arrange to use stabs instead of host debug format *************** fi *** 3765,3772 **** case $target in ! *darwin*) ld64_flag=yes;; # Darwin can only use a ld64-compatible linker. ! *) ld64_flag=no;; esac # With pre-defined ld --- 3766,3779 ---- case $target in ! *darwin*) ! ld64_flag=yes # Darwin can only use a ld64-compatible linker. ! dsymutil_flag=yes # Darwin uses dsymutil to link debug. ! ;; ! *) ! ld64_flag=no ! dsymutil_flag=no ! ;; esac # With pre-defined ld *************** else *** 3816,3821 **** --- 3823,3862 ---- fi + # Allow the user to specify a dsymutil executable (used on Darwin only, so far) + + # Check whether --with-dsymutil was given. + if test "${with_dsymutil+set}" = set; then : + withval=$with_dsymutil; DEFAULT_DSYMUTIL="$with_dsymutil" + fi + + + dsymutil_vers= + if test x"${DEFAULT_DSYMUTIL+set}" = x"set"; then + if test ! -x "$DEFAULT_DSYMUTIL"; then + as_fn_error $? "cannot execute: $DEFAULT_DSYMUTIL: check --with-dsymutil or env. var. DEFAULT_DSYMUTIL" "$LINENO" 5 + else + if dsymutil_vers=`$DEFAULT_DSYMUTIL -v /dev/null 2>&1`; then + dsymutil_flag=yes + fi + fi + + cat >>confdefs.h <<_ACEOF + #define DEFAULT_DSYMUTIL "$DEFAULT_DSYMUTIL" + _ACEOF + + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a default dsymutil was specified" >&5 + $as_echo_n "checking whether a default dsymutil was specified... " >&6; } + if test x"${DEFAULT_DSYMUTIL+set}" = x"set"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes ($DEFAULT_DSYMUTIL)" >&5 + $as_echo "yes ($DEFAULT_DSYMUTIL)" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + $as_echo "no" >&6; } + fi + # ---------------------- # Find default assembler # ---------------------- *************** BUILD_CXXFLAGS='$(ALL_CXXFLAGS)' *** 12868,12891 **** BUILD_LDFLAGS='$(LDFLAGS)' STMP_FIXINC=stmp-fixinc - BUILD_NO_PIE_CFLAGS='$(NO_PIE_CFLAGS)' - BUILD_NO_PIE_FLAG='$(NO_PIE_FLAG)' - # And these apply if build != host, or we are generating coverage data if test x$build != x$host || test "x$coverage_flags" != x then BUILD_CFLAGS='$(INTERNAL_CFLAGS) $(T_CFLAGS) $(CFLAGS_FOR_BUILD)' BUILD_CXXFLAGS='$(INTERNAL_CFLAGS) $(T_CFLAGS) $(CXXFLAGS_FOR_BUILD)' BUILD_LDFLAGS='$(LDFLAGS_FOR_BUILD)' - - NO_PIE_CFLAGS_FOR_BUILD=${NO_PIE_CFLAGS_FOR_BUILD-${NO_PIE_CFLAGS}} - NO_PIE_FLAG_FOR_BUILD=${NO_PIE_FLAG_FOR_BUILD-${NO_PIE_FLAG}} - BUILD_NO_PIE_CFLAGS='$(NO_PIE_CFLAGS_FOR_BUILD)' - BUILD_NO_PIE_FLAG='$(NO_PIE_FLAG_FOR_BUILD)' fi - - # Expand extra_headers to include complete path. # This substitutes for lots of t-* files. extra_headers_list= --- 12909,12922 ---- *************** else *** 19022,19028 **** lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF ! #line 19025 "configure" #include "confdefs.h" #if HAVE_DLFCN_H --- 19053,19059 ---- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF ! #line 19056 "configure" #include "confdefs.h" #if HAVE_DLFCN_H *************** else *** 19128,19134 **** lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF ! #line 19131 "configure" #include "confdefs.h" #if HAVE_DLFCN_H --- 19159,19165 ---- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF ! #line 19162 "configure" #include "confdefs.h" #if HAVE_DLFCN_H *************** else *** 23036,23041 **** --- 23067,23137 ---- $as_echo "$gcc_cv_otool" >&6; } fi + # Figure out the dsymutil we will use. + if ${gcc_cv_dsymutil+:} false; then : + + else + + if test -x "$DEFAULT_DSYMUTIL"; then + gcc_cv_dsymutil="$DEFAULT_DSYMUTIL" + elif test -x dsymutil$build_exeext; then + gcc_cv_dsymutil=./dsymutil$build_exeext + elif ( set dummy $DSYMUTIL_FOR_TARGET; test -x $2 ); then + gcc_cv_dsymutil=$DSYMUTIL_FOR_TARGET + elif ( set dummy $DSYMUTIL; test -x $2 ); then + gcc_cv_dsymutil=$DSYMUTIL + else + # Extract the first word of "$DSYMUTIL_FOR_TARGET", so it can be a program name with args. + set dummy $DSYMUTIL_FOR_TARGET; 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_path_gcc_cv_dsymutil+:} false; then : + $as_echo_n "(cached) " >&6 + else + case $gcc_cv_dsymutil in + [\\/]* | ?:[\\/]*) + ac_cv_path_gcc_cv_dsymutil="$gcc_cv_dsymutil" # Let the user override the test with a path. + ;; + *) + 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_path_gcc_cv_dsymutil="$as_dir/$ac_word$ac_exec_ext" + $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 + + ;; + esac + fi + gcc_cv_dsymutil=$ac_cv_path_gcc_cv_dsymutil + if test -n "$gcc_cv_dsymutil"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_dsymutil" >&5 + $as_echo "$gcc_cv_dsymutil" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + $as_echo "no" >&6; } + fi + + + fi + fi + + ORIGINAL_DSYMUTIL_FOR_TARGET=$gcc_cv_dsymutil + + case "$ORIGINAL_DSYMUTIL_FOR_TARGET" in + ./dsymutil | ./dsymutil$build_exeext) ;; + *) ac_config_files="$ac_config_files dsymutil:exec-tool.in" + ;; + esac + # Figure out what assembler alignment features are present. { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler flags" >&5 $as_echo_n "checking assembler flags... " >&6; } *************** $as_echo "$as_me: WARNING: LTO for $targ *** 26421,26426 **** --- 26517,26557 ---- fi ;; esac + case $target_os in + darwin2* | darwin19*) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler for llvm assembler x86-pad-for-align option" >&5 + $as_echo_n "checking assembler for llvm assembler x86-pad-for-align option... " >&6; } + if ${gcc_cv_as_mllvm_x86_pad_for_align+:} false; then : + $as_echo_n "(cached) " >&6 + else + gcc_cv_as_mllvm_x86_pad_for_align=no + if test x$gcc_cv_as != x; then + $as_echo '.text' > conftest.s + if { ac_try='$gcc_cv_as $gcc_cv_as_flags -mllvm -x86-pad-for-align=false -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_mllvm_x86_pad_for_align=yes + 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_mllvm_x86_pad_for_align" >&5 + $as_echo "$gcc_cv_as_mllvm_x86_pad_for_align" >&6; } + if test $gcc_cv_as_mllvm_x86_pad_for_align = yes; then + + $as_echo "#define HAVE_AS_MLLVM_X86_PAD_FOR_ALIGN 1" >>confdefs.h + + fi + + ;; + esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler for -xbrace_comment" >&5 $as_echo_n "checking assembler for -xbrace_comment... " >&6; } *************** _ACEOF *** 29241,29246 **** --- 29372,29471 ---- fi + if test x"$dsymutil_flag" = x"yes"; then + + # If the user specified a dsymutil path, then we will already have the + # version string, otherwise, pick it up. + if test x"$gcc_cv_dsymutil" = x; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: dsymutil is a required tool for this system, but not found" >&5 + $as_echo "$as_me: WARNING: dsymutil is a required tool for this system, but not found" >&2;} + dsymutil_vers="tool unspecified" + elif test x"$dsymutil_vers" = x; then + dsymutil_vers=`$gcc_cv_dsymutil -v /dev/null 2>&1` + fi + + dsymutil_temp=`echo $dsymutil_vers | sed 1q` + { $as_echo "$as_me:${as_lineno-$LINENO}: checking dsymutil version \"$dsymutil_temp\"" >&5 + $as_echo_n "checking dsymutil version \"$dsymutil_temp\"... " >&6; } + if echo $dsymutil_temp | grep dwarfutils- > /dev/null; then + dsymutil_kind=DWARFUTILS + dsymutil_vers=`echo $dsymutil_temp | sed 's/.*dwarfutils-\([0-9\.]*\).*/\1/'` + elif echo $dsymutil_temp | grep clang- > /dev/null; then + dsymutil_kind=CLANG + dsymutil_vers=`echo $dsymutil_temp | sed 's/.*clang-\([0-9\.]*\).*/\1/'` + elif echo $dsymutil_temp | grep 'LLVM version ' > /dev/null; then + 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]*\)'` + dsymutil_minor=`expr "$dsymutil_vers" : '[0-9]*\.\([0-9]*\)'` + dsymutil_tiny=`expr "$dsymutil_vers" : '[0-9]*\.[0-9]*\.\([0-9]*\)'` + if test x"${dsymutil_minor}" = x; then + dsymutil_minor=0 + fi + if test x"${dsymutil_tiny}" = x; then + dsymutil_tiny=0 + fi + + cat >>confdefs.h <<_ACEOF + #define DSYMUTIL_VERSION $dsymutil_kind,${dsymutil_major},${dsymutil_minor},${dsymutil_tiny} + _ACEOF + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $dsymutil_vers : $dsymutil_kind ${dsymutil_major} ${dsymutil_minor} ${dsymutil_tiny} " >&5 + $as_echo "$dsymutil_vers : $dsymutil_kind ${dsymutil_major} ${dsymutil_minor} ${dsymutil_tiny} " >&6; } + fi + + case $target_os in + win32 | pe | cygwin* | mingw32*) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking broken PE linker dwarf5 support" >&5 + $as_echo_n "checking broken PE linker dwarf5 support... " >&6; } + gcc_cv_ld_broken_pe_dwarf5=yes + if test $in_tree_ld = yes ; then + if grep -q '\.debug_loclists.*BLOCK.*__section_alignment__.*NOLOAD.*:' \ + $gcc_cv_ld_gld_srcdir/scripttempl/pe*.sc \ + && grep -q '\.debug_rnglists.*BLOCK.*__section_alignment__.*NOLOAD.*:' \ + $gcc_cv_ld_gld_srcdir/scripttempl/pe*.sc; then + gcc_cv_ld_broken_pe_dwarf5=no + fi + else + if $gcc_cv_ld --verbose 2>&1 | grep -q '\.debug_loclists.*BLOCK.*__section_alignment__.*NOLOAD.*:' \ + && $gcc_cv_ld --verbose 2>&1 | grep -q '\.debug_rnglists.*BLOCK.*__section_alignment__.*NOLOAD.*:'; then + gcc_cv_ld_broken_pe_dwarf5=no + fi + fi + if test x$gcc_cv_ld_broken_pe_dwarf5 = xyes; then + + $as_echo "#define HAVE_LD_BROKEN_PE_DWARF5 1" >>confdefs.h + + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_ld_broken_pe_dwarf5" >&5 + $as_echo "$gcc_cv_ld_broken_pe_dwarf5" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking PE linker --disable-dynamicbase support" >&5 + $as_echo_n "checking PE linker --disable-dynamicbase support... " >&6; } + gcc_cv_ld_disable_dynamicbase=no + if test $in_tree_ld = yes; then + if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 36 -o "$gcc_cv_gld_major_version" -gt 2; then \ + gcc_cv_ld_disable_dynamicbase=yes + fi + else + if $gcc_cv_ld --help 2>&1 | grep -q 'disable\-]dynamicbase' > /dev/null; then + gcc_cv_ld_disable_dynamicbase=yes + fi + fi + if test x"$gcc_cv_ld_disable_dynamicbase" = xyes; then + + $as_echo "#define HAVE_LD_PE_DISABLE_DYNAMICBASE 1" >>confdefs.h + + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_ld_disable_dynamicbase" >&5 + $as_echo "$gcc_cv_ld_disable_dynamicbase" >&6; } + ;; + esac + # -------- # UNSORTED # -------- *************** $as_echo "#define HAVE_LD_PPC_GNU_ATTR_L *** 29405,29411 **** esac case "$target:$tm_file" in ! powerpc64-*-freebsd* | powerpc64*-*-linux* | powerpc*-*-linux*rs6000/biarch64.h*) case "$target" in *le-*-linux*) emul_name="-melf64lppc" --- 29630,29636 ---- esac case "$target:$tm_file" in ! powerpc64*-*-freebsd* | powerpc64*-*-linux* | powerpc*-*-linux*rs6000/biarch64.h*) case "$target" in *le-*-linux*) emul_name="-melf64lppc" *************** do *** 31541,31546 **** --- 31766,31772 ---- "as") CONFIG_FILES="$CONFIG_FILES as:exec-tool.in" ;; "collect-ld") CONFIG_FILES="$CONFIG_FILES collect-ld:exec-tool.in" ;; "nm") CONFIG_FILES="$CONFIG_FILES nm:exec-tool.in" ;; + "dsymutil") CONFIG_FILES="$CONFIG_FILES dsymutil:exec-tool.in" ;; "clearcap.map") CONFIG_LINKS="$CONFIG_LINKS clearcap.map:${srcdir}/config/$clearcap_map" ;; "$all_outputs") CONFIG_FILES="$CONFIG_FILES $all_outputs" ;; "default") CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;; *************** $as_echo "$as_me: executing $ac_file com *** 32175,32180 **** --- 32401,32407 ---- "as":F) chmod +x as ;; "collect-ld":F) chmod +x collect-ld ;; "nm":F) chmod +x nm ;; + "dsymutil":F) chmod +x dsymutil ;; "default":C) case ${CONFIG_HEADERS} in *auto-host.h:config.in*) diff -Nrcpad gcc-10.3.0/gcc/configure.ac gcc-10.4.0/gcc/configure.ac *** gcc-10.3.0/gcc/configure.ac Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/configure.ac Tue Jun 28 08:54:27 2022 *************** gnu_ld_flag="$with_gnu_ld", *** 274,281 **** gnu_ld_flag=no) case $target in ! *darwin*) ld64_flag=yes;; # Darwin can only use a ld64-compatible linker. ! *) ld64_flag=no;; esac # With pre-defined ld --- 274,287 ---- gnu_ld_flag=no) case $target in ! *darwin*) ! ld64_flag=yes # Darwin can only use a ld64-compatible linker. ! dsymutil_flag=yes # Darwin uses dsymutil to link debug. ! ;; ! *) ! ld64_flag=no ! dsymutil_flag=no ! ;; esac # With pre-defined ld *************** AC_ARG_WITH(demangler-in-ld, *** 311,316 **** --- 317,347 ---- demangler_in_ld="$with_demangler_in_ld", demangler_in_ld=yes) + # Allow the user to specify a dsymutil executable (used on Darwin only, so far) + AC_ARG_WITH(dsymutil, + [AS_HELP_STRING([--with-dsymutil], [arrange to use the specified dsymutil (full pathname)])], + DEFAULT_DSYMUTIL="$with_dsymutil") + + dsymutil_vers= + if test x"${DEFAULT_DSYMUTIL+set}" = x"set"; then + if test ! -x "$DEFAULT_DSYMUTIL"; then + AC_MSG_ERROR([cannot execute: $DEFAULT_DSYMUTIL: check --with-dsymutil or env. var. DEFAULT_DSYMUTIL]) + else + if dsymutil_vers=`$DEFAULT_DSYMUTIL -v /dev/null 2>&1`; then + dsymutil_flag=yes + fi + fi + AC_DEFINE_UNQUOTED(DEFAULT_DSYMUTIL,"$DEFAULT_DSYMUTIL", + [Define to enable the use of a default debug linker.]) + fi + + AC_MSG_CHECKING([whether a default dsymutil was specified]) + if test x"${DEFAULT_DSYMUTIL+set}" = x"set"; then + AC_MSG_RESULT([yes ($DEFAULT_DSYMUTIL)]) + else + AC_MSG_RESULT(no) + fi + # ---------------------- # Find default assembler # ---------------------- *************** BUILD_CXXFLAGS='$(ALL_CXXFLAGS)' AC_SUBS *** 2304,2326 **** BUILD_LDFLAGS='$(LDFLAGS)' AC_SUBST(BUILD_LDFLAGS) STMP_FIXINC=stmp-fixinc AC_SUBST(STMP_FIXINC) - BUILD_NO_PIE_CFLAGS='$(NO_PIE_CFLAGS)' AC_SUBST(BUILD_NO_PIE_CFLAGS) - BUILD_NO_PIE_FLAG='$(NO_PIE_FLAG)' AC_SUBST(BUILD_NO_PIE_FLAG) - # And these apply if build != host, or we are generating coverage data if test x$build != x$host || test "x$coverage_flags" != x then BUILD_CFLAGS='$(INTERNAL_CFLAGS) $(T_CFLAGS) $(CFLAGS_FOR_BUILD)' BUILD_CXXFLAGS='$(INTERNAL_CFLAGS) $(T_CFLAGS) $(CXXFLAGS_FOR_BUILD)' BUILD_LDFLAGS='$(LDFLAGS_FOR_BUILD)' - - NO_PIE_CFLAGS_FOR_BUILD=${NO_PIE_CFLAGS_FOR_BUILD-${NO_PIE_CFLAGS}} - NO_PIE_FLAG_FOR_BUILD=${NO_PIE_FLAG_FOR_BUILD-${NO_PIE_FLAG}} - BUILD_NO_PIE_CFLAGS='$(NO_PIE_CFLAGS_FOR_BUILD)' - BUILD_NO_PIE_FLAG='$(NO_PIE_FLAG_FOR_BUILD)' fi - AC_SUBST(NO_PIE_CFLAGS_FOR_BUILD) - AC_SUBST(NO_PIE_FLAG_FOR_BUILD) # Expand extra_headers to include complete path. # This substitutes for lots of t-* files. --- 2335,2347 ---- *************** else *** 2714,2719 **** --- 2735,2761 ---- AC_MSG_RESULT($gcc_cv_otool) fi + # Figure out the dsymutil we will use. + AS_VAR_SET_IF(gcc_cv_dsymutil,, [ + if test -x "$DEFAULT_DSYMUTIL"; then + gcc_cv_dsymutil="$DEFAULT_DSYMUTIL" + elif test -x dsymutil$build_exeext; then + gcc_cv_dsymutil=./dsymutil$build_exeext + elif ( set dummy $DSYMUTIL_FOR_TARGET; test -x $[2] ); then + gcc_cv_dsymutil=$DSYMUTIL_FOR_TARGET + elif ( set dummy $DSYMUTIL; test -x $[2] ); then + gcc_cv_dsymutil=$DSYMUTIL + else + AC_PATH_PROG(gcc_cv_dsymutil, $DSYMUTIL_FOR_TARGET) + fi]) + + ORIGINAL_DSYMUTIL_FOR_TARGET=$gcc_cv_dsymutil + AC_SUBST(ORIGINAL_DSYMUTIL_FOR_TARGET) + case "$ORIGINAL_DSYMUTIL_FOR_TARGET" in + ./dsymutil | ./dsymutil$build_exeext) ;; + *) AC_CONFIG_FILES(dsymutil:exec-tool.in, [chmod +x dsymutil]) ;; + esac + # Figure out what assembler alignment features are present. gcc_GAS_CHECK_FEATURE([.balign and .p2align], gcc_cv_as_balign_and_p2align, [2,6,0],, *************** foo: nop *** 4534,4539 **** --- 4576,4590 ---- fi ;; esac + case $target_os in + darwin2* | darwin19*) + gcc_GAS_CHECK_FEATURE([llvm assembler x86-pad-for-align option], + gcc_cv_as_mllvm_x86_pad_for_align,, + [-mllvm -x86-pad-for-align=false], [.text],, + [AC_DEFINE(HAVE_AS_MLLVM_X86_PAD_FOR_ALIGN, 1, + [Define if your Mac OS X assembler supports -mllvm -x86-pad-for-align=false.])]) + ;; + esac gcc_GAS_CHECK_FEATURE([-xbrace_comment], gcc_cv_as_ix86_xbrace_comment,, [-xbrace_comment=no], [.text],, *************** if test x"$ld64_flag" = x"yes"; then *** 5740,5745 **** --- 5791,5878 ---- [Define to 1 if ld64 supports '-export_dynamic'.]) fi + if test x"$dsymutil_flag" = x"yes"; then + + # If the user specified a dsymutil path, then we will already have the + # version string, otherwise, pick it up. + if test x"$gcc_cv_dsymutil" = x; then + AC_MSG_WARN([dsymutil is a required tool for this system, but not found]) + dsymutil_vers="tool unspecified" + elif test x"$dsymutil_vers" = x; then + dsymutil_vers=`$gcc_cv_dsymutil -v /dev/null 2>&1` + fi + + dsymutil_temp=`echo $dsymutil_vers | sed 1q` + AC_MSG_CHECKING(dsymutil version "$dsymutil_temp") + if echo $dsymutil_temp | grep dwarfutils- > /dev/null; then + dsymutil_kind=DWARFUTILS + dsymutil_vers=`echo $dsymutil_temp | sed 's/.*dwarfutils-\([[0-9\.]]*\).*/\1/'` + elif echo $dsymutil_temp | grep clang- > /dev/null; then + dsymutil_kind=CLANG + dsymutil_vers=`echo $dsymutil_temp | sed 's/.*clang-\([[0-9\.]]*\).*/\1/'` + elif echo $dsymutil_temp | grep 'LLVM version ' > /dev/null; then + 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]]*\)'` + dsymutil_minor=`expr "$dsymutil_vers" : '[[0-9]]*\.\([[0-9]]*\)'` + dsymutil_tiny=`expr "$dsymutil_vers" : '[[0-9]]*\.[[0-9]]*\.\([[0-9]]*\)'` + if test x"${dsymutil_minor}" = x; then + dsymutil_minor=0 + fi + if test x"${dsymutil_tiny}" = x; then + dsymutil_tiny=0 + fi + AC_DEFINE_UNQUOTED(DSYMUTIL_VERSION, [$dsymutil_kind,${dsymutil_major},${dsymutil_minor},${dsymutil_tiny}], + [Define to the dsymutil version.]) + AC_MSG_RESULT($dsymutil_vers : $dsymutil_kind ${dsymutil_major} ${dsymutil_minor} ${dsymutil_tiny} ) + fi + + case $target_os in + win32 | pe | cygwin* | mingw32*) + AC_MSG_CHECKING(broken PE linker dwarf5 support) + gcc_cv_ld_broken_pe_dwarf5=yes + if test $in_tree_ld = yes ; then + if grep -q '\.debug_loclists.*BLOCK.*__section_alignment__.*NOLOAD.*:' \ + $gcc_cv_ld_gld_srcdir/scripttempl/pe*.sc \ + && grep -q '\.debug_rnglists.*BLOCK.*__section_alignment__.*NOLOAD.*:' \ + $gcc_cv_ld_gld_srcdir/scripttempl/pe*.sc; then + gcc_cv_ld_broken_pe_dwarf5=no + fi + else + if $gcc_cv_ld --verbose 2>&1 | grep -q '\.debug_loclists.*BLOCK.*__section_alignment__.*NOLOAD.*:' \ + && $gcc_cv_ld --verbose 2>&1 | grep -q '\.debug_rnglists.*BLOCK.*__section_alignment__.*NOLOAD.*:'; then + gcc_cv_ld_broken_pe_dwarf5=no + fi + fi + if test x$gcc_cv_ld_broken_pe_dwarf5 = xyes; then + AC_DEFINE(HAVE_LD_BROKEN_PE_DWARF5, 1, + [Define if the PE linker has broken DWARF 5 support.]) + fi + AC_MSG_RESULT($gcc_cv_ld_broken_pe_dwarf5) + + AC_MSG_CHECKING(PE linker --disable-dynamicbase support) + gcc_cv_ld_disable_dynamicbase=no + if test $in_tree_ld = yes; then + if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 36 -o "$gcc_cv_gld_major_version" -gt 2; then \ + gcc_cv_ld_disable_dynamicbase=yes + fi + else + if $gcc_cv_ld --help 2>&1 | grep -q 'disable\-]dynamicbase' > /dev/null; then + gcc_cv_ld_disable_dynamicbase=yes + fi + fi + if test x"$gcc_cv_ld_disable_dynamicbase" = xyes; then + AC_DEFINE(HAVE_LD_PE_DISABLE_DYNAMICBASE, 1, + [Define if the PE linker supports --disable-dynamicbase option.]) + fi + AC_MSG_RESULT($gcc_cv_ld_disable_dynamicbase) + ;; + esac + # -------- # UNSORTED # -------- *************** EOF *** 5871,5877 **** esac case "$target:$tm_file" in ! powerpc64-*-freebsd* | powerpc64*-*-linux* | powerpc*-*-linux*rs6000/biarch64.h*) case "$target" in *le-*-linux*) emul_name="-melf64lppc" --- 6004,6010 ---- esac case "$target:$tm_file" in ! powerpc64*-*-freebsd* | powerpc64*-*-linux* | powerpc*-*-linux*rs6000/biarch64.h*) case "$target" in *le-*-linux*) emul_name="-melf64lppc" diff -Nrcpad gcc-10.3.0/gcc/coretypes.h gcc-10.4.0/gcc/coretypes.h *** gcc-10.3.0/gcc/coretypes.h Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/coretypes.h Tue Jun 28 08:54:27 2022 *************** enum profile_reproducibility { *** 219,233 **** PROFILE_REPRODUCIBILITY_MULTITHREADED }; ! /* Types of unwind/exception handling info that can be generated. */ enum unwind_info_type { UI_NONE, UI_SJLJ, UI_DWARF2, ! UI_TARGET, ! UI_SEH }; /* Callgraph node profile representation. */ --- 219,235 ---- PROFILE_REPRODUCIBILITY_MULTITHREADED }; ! /* Types of unwind/exception handling info that can be generated. ! Note that a UI_TARGET (or larger) setting is considered to be ! incompatible with -freorder-blocks-and-partition. */ enum unwind_info_type { UI_NONE, UI_SJLJ, UI_DWARF2, ! UI_SEH, ! UI_TARGET }; /* Callgraph node profile representation. */ diff -Nrcpad gcc-10.3.0/gcc/coverage.c gcc-10.4.0/gcc/coverage.c *** gcc-10.3.0/gcc/coverage.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/coverage.c Tue Jun 28 08:54:27 2022 *************** coverage_compute_cfg_checksum (struct fu *** 616,633 **** int coverage_begin_function (unsigned lineno_checksum, unsigned cfg_checksum) { - expanded_location xloc; - unsigned long offset; - /* We don't need to output .gcno file unless we're under -ftest-coverage (e.g. -fprofile-arcs/generate/use don't need .gcno to work). */ if (no_coverage || !bbg_file_name) return 0; ! xloc = expand_location (DECL_SOURCE_LOCATION (current_function_decl)); /* Announce function */ ! offset = gcov_write_tag (GCOV_TAG_FUNCTION); if (param_profile_func_internal_id) gcov_write_unsigned (current_function_funcdef_no + 1); else --- 616,631 ---- int coverage_begin_function (unsigned lineno_checksum, unsigned cfg_checksum) { /* We don't need to output .gcno file unless we're under -ftest-coverage (e.g. -fprofile-arcs/generate/use don't need .gcno to work). */ if (no_coverage || !bbg_file_name) return 0; ! expanded_location startloc ! = expand_location (DECL_SOURCE_LOCATION (current_function_decl)); /* Announce function */ ! unsigned long offset = gcov_write_tag (GCOV_TAG_FUNCTION); if (param_profile_func_internal_id) gcov_write_unsigned (current_function_funcdef_no + 1); else *************** coverage_begin_function (unsigned lineno *** 644,659 **** gcov_write_unsigned (DECL_ARTIFICIAL (current_function_decl) && !DECL_FUNCTION_VERSIONED (current_function_decl) && !DECL_LAMBDA_FUNCTION_P (current_function_decl)); ! gcov_write_filename (xloc.file); ! gcov_write_unsigned (xloc.line); ! gcov_write_unsigned (xloc.column); expanded_location endloc = expand_location (cfun->function_end_locus); /* Function can start in a single file and end in another one. */ ! int end_line = endloc.file == xloc.file ? endloc.line : xloc.line; ! int end_column = endloc.file == xloc.file ? endloc.column: xloc.column; ! gcc_assert (xloc.line <= end_line); gcov_write_unsigned (end_line); gcov_write_unsigned (end_column); gcov_write_length (offset); --- 642,665 ---- gcov_write_unsigned (DECL_ARTIFICIAL (current_function_decl) && !DECL_FUNCTION_VERSIONED (current_function_decl) && !DECL_LAMBDA_FUNCTION_P (current_function_decl)); ! gcov_write_filename (startloc.file); ! gcov_write_unsigned (startloc.line); ! gcov_write_unsigned (startloc.column); expanded_location endloc = expand_location (cfun->function_end_locus); /* Function can start in a single file and end in another one. */ ! int end_line ! = endloc.file == startloc.file ? endloc.line : startloc.line; ! int end_column ! = endloc.file == startloc.file ? endloc.column: startloc.column; ! ! if (startloc.line > end_line) ! { ! end_line = startloc.line; ! end_column = startloc.column; ! } ! gcov_write_unsigned (end_line); gcov_write_unsigned (end_column); gcov_write_length (offset); diff -Nrcpad gcc-10.3.0/gcc/cp/ChangeLog gcc-10.4.0/gcc/cp/ChangeLog *** gcc-10.3.0/gcc/cp/ChangeLog Thu Apr 8 11:56:48 2021 --- gcc-10.4.0/gcc/cp/ChangeLog Tue Jun 28 08:54:28 2022 *************** *** 1,3 **** --- 1,809 ---- + 2022-06-28 Release Manager + + * GCC 10.4.0 released. + + 2022-05-25 Jason Merrill + + PR c++/102307 + * decl.c (check_initializer): Use build_cplus_new in case of + constexpr failure. + + 2022-05-25 Jason Merrill + + Revert: + 2022-05-12 Jason Merrill + + PR c++/102629 + * pt.c (gen_elem_of_pack_expansion_instantiation): Clear + TEMPLATE_TYPE_PARAMETER_PACK on auto. + + 2022-05-13 Jason Merrill + + PR c++/101078 + * pt.c (tsubst_baselink): Update binfos in non-dependent case. + + 2022-05-13 Jason Merrill + + PR c++/65211 + * pt.c (tsubst_decl) [TYPE_DECL]: Copy TYPE_ALIGN. + + 2022-05-13 Jason Merrill + + PR c++/101698 + * pt.c (tsubst_baselink): Also check dependent optype. + + 2022-05-13 Jason Merrill + + PR c++/101442 + * decl.c (cp_finish_decl): Don't pass decl to push_cleanup. + * init.c (perform_member_init): Likewise. + * semantics.c (push_cleanup): Adjust comment. + + 2022-05-13 Jason Merrill + + PR c++/99066 + * pt.c (mark_decl_instantiated): Set DECL_EXTERNAL. + + 2022-05-13 Jason Merrill + + PR c++/91241 + * mangle.c (write_compact_number): Add sanity check. + (write_local_name): Use list_length for parm number. + + 2022-05-13 Jason Merrill + + PR c++/86355 + * pt.c (use_pack_expansion_extra_args_p): Don't compare + args from the same argument pack. + + 2022-05-12 Jason Merrill + + Revert: + 2022-05-12 Jason Merrill + + PR c++/101767 + * decl.c (reshape_init_class): Back out of anon struct + if a designator doesn't match. + + 2022-05-12 Jason Merrill + + Revert: + 2021-05-20 Jason Merrill + + PR c++/41723 + * parser.c (cp_parser_class_name): Check dependent_scope_p. + + 2022-05-12 Jason Merrill + + PR c++/104142 + * decl.c (check_initializer): Check TREE_SIDE_EFFECTS. + + 2022-05-12 Jason Merrill + + PR c++/102071 + * init.c (build_new_1): Include cookie in alignment. Omit + constexpr wrapper from alloc_call. + + 2022-05-12 Jason Merrill + + PR c++/100838 + PR c++/105265 + * call.c (convert_like_internal): Clear tf_no_cleanup when + recursing. + (build_user_type_conversion_1): Only add ck_rvalue if + LOOKUP_ONLYCONVERTING. + + 2022-05-12 Jason Merrill + + PR c++/82980 + * lambda.c (type_deducible_expression_p): New. + (lambda_capture_field_type): Check it. + + 2022-05-12 Jason Merrill + + PR c++/104646 + * constexpr.c (maybe_save_constexpr_fundef): Don't do extra + checks for defaulted ctors. + + 2022-05-12 Jason Merrill + + PR c++/102629 + * pt.c (gen_elem_of_pack_expansion_instantiation): Clear + TEMPLATE_TYPE_PARAMETER_PACK on auto. + + 2022-05-12 Jason Merrill + + PR c++/59950 + * call.c (build_over_call): Use cp_build_indirect_ref. + + 2022-05-12 Jason Merrill + + PR c++/105245 + PR c++/100111 + * constexpr.c (cxx_eval_store_expression): Build a CONSTRUCTOR + as needed in empty base handling. + + 2022-05-12 Jason Merrill + + PR c++/101717 + * lambda.c (lambda_expr_this_capture): Check all enclosing + lambdas for completeness. + + 2022-05-12 Jason Merrill + + PR c++/100608 + * name-lookup.c (check_local_shadow): Use -Wshadow=local + if exactly one of 'old' and 'decl' is a type. + + 2022-05-12 Jason Merrill + + PR c++/98249 + * call.c (build_operator_new_call): Just look in ::. + + 2022-05-12 Jason Merrill + + PR c++/101767 + * decl.c (reshape_init_class): Back out of anon struct + if a designator doesn't match. + + 2022-05-11 Patrick Palka + + Backported from master: + 2021-07-01 Patrick Palka + + PR c++/101194 + * constexpr.c (cxx_eval_array_reference): When the element type + is an empty type and the corresponding element is omitted, just + return an empty CONSTRUCTOR instead of attempting value + initialization. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-04-19 Jakub Jelinek + + PR c++/105256 + * typeck2.c (process_init_constructor_array, + process_init_constructor_record, process_init_constructor_union): Move + CONSTRUCTOR_PLACEHOLDER_BOUNDARY flag from CONSTRUCTOR elements to the + containing CONSTRUCTOR. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-03-30 Jakub Jelinek + + PR c++/105061 + * parser.c (cp_parser_template_introduction): If member_p, temporarily + clear parser->colon_corrects_to_scope_p around tentative parsing of + nested name specifier. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-03-26 Jakub Jelinek + + * parser.c (cp_parser_postfix_expression) + : Don't + return cp_build_vec_convert result right away, instead + set postfix_expression to it and break. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-03-24 Jakub Jelinek + + PR c++/104994 + * constexpr.c (potential_constant_expression_1): Don't diagnose extern + thread_local declarations. + * decl.c (start_decl): Likewise. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-03-18 Jakub Jelinek + + PR c++/104568 + * init.c (build_new_constexpr_heap_type): Remove FULL_SIZE + argument and its handling, instead add ITYPE2 argument. Only + support COOKIE_SIZE != NULL. + (build_new_1): If size is 0, change it to 0 * outer_nelts if + outer_nelts is non-NULL. Pass type rather than elt_type to + maybe_wrap_new_for_constexpr. + * constexpr.c (build_new_constexpr_heap_type): New function. + (cxx_eval_constant_expression) : + If elt_size is zero sized type, try to recover outer_nelts from + the size argument to operator new/new[] and pass that as + arg_size to build_new_constexpr_heap_type. Pass ctx, + non_constant_p and overflow_p to that call too. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-03-09 Jakub Jelinek + + PR c/104711 + * constexpr.c (cxx_eval_check_shift_p): Use TYPE_OVERFLOW_WRAPS + instead of TYPE_UNSIGNED. + * typeck.c (cp_build_binary_op): Don't emit + -Wshift-negative-value warning if TYPE_OVERFLOW_WRAPS. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-03-08 Jakub Jelinek + + PR c++/104806 + * search.c (lookup_field_fuzzy_info::fuzzy_lookup_field): Ignore + identifiers with space at the end. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-02-14 Jakub Jelinek + + PR c++/104513 + * constexpr.c (potential_constant_expression_1) : + Don't punt if returns (target). + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-02-11 Jakub Jelinek + + PR c++/104472 + * constexpr.c (cxx_eval_internal_function) : + Only return fold_const_call result if it is non-NULL. Otherwise + fall through into the default: case to return t, set *non_constant_p + and emit diagnostics if needed. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-01-18 Jakub Jelinek + + PR c++/104055 + * constexpr.c (cxx_eval_outermost_constant_expr): If t is a + TARGET_EXPR with TARGET_EXPR_CLEANUP, use get_target_expr rather + than get_target_expr_sfinae with tf_no_cleanup, and don't set + TREE_CONSTANT. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-01-12 Jakub Jelinek + Jason Merrill + + PR c++/103480 + * tree.c (move): If expr is xvalue_p, just return expr without + build_static_cast. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-01-10 Jakub Jelinek + + PR c++/103912 + * semantics.c (expand_or_defer_fn): For immediate functions, set + node->body_removed to true and clear analyzed, definition and + force_output. + * decl2.c (c_parse_final_cleanups): Ignore immediate functions for + expand_or_defer_fn. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-11-19 Jakub Jelinek + + PR c++/70796 + * cp-gimplify.c (cp_gimplify_arg): New function. + (cp_gimplify_expr): Use cp_gimplify_arg instead of gimplify_arg, + pass true as last argument to it if there are any following + arguments in strong evaluation order with side-effects. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-10-19 Jakub Jelinek + + PR c++/102786 + * constexpr.c (cxx_eval_constant_expression): Don't reject + INTEGER_CSTs with type POINTER_TYPE to METHOD_TYPE. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-10-05 Jakub Jelinek + + PR c++/102548 + * tree.c (apply_identity_attributes): Fix handling of the + case where an attribute in the list doesn't affect type + identity but some attribute before it does. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-09-15 Jakub Jelinek + + PR c++/88578 + PR c++/102295 + * typeck2.c (split_nonconstant_init_1): Don't throw away empty + initializers of flexible array members if they have non-zero type + size. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-09-14 Jakub Jelinek + + PR c++/102295 + * decl.c (layout_var_decl): For aggregates ending with a flexible + array member, add the size of the initializer for that member to + DECL_SIZE and DECL_SIZE_UNIT. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-09-14 Jakub Jelinek + + PR c++/102305 + * method.c (is_xible_helper): Call complete_type on to. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-07-21 Jakub Jelinek + + PR c++/101516 + * semantics.c (finish_omp_reduction_clause): Also call + complete_type_or_else and return true if it fails. + + 2022-05-10 Tobias Burnus + + Backported from master: + 2021-05-04 Tobias Burnus + + * semantics.c (finish_omp_reduction_clause): Accept float + complex + for || and && reductions. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-07-15 Jakub Jelinek + + PR c++/101443 + * cp-gimplify.c (cp_fold): For comparisons with NULLPTR_TYPE + operands, fold them right away to true or false. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-06-21 Jakub Jelinek + + PR inline-asm/100785 + * typeck.c (cxx_mark_addressable): Diagnose trying to make + bit-fields addressable. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-05-25 Jakub Jelinek + + PR c++/100666 + * call.c (convert_arg_to_ellipsis): For expressions with NULLPTR_TYPE + and side-effects, temporarily disable -Wunused-result warning when + building COMPOUND_EXPR. + + 2022-05-09 Patrick Palka + + Backported from master: + 2022-03-26 Patrick Palka + + PR c++/103455 + * call.c (add_builtin_candidate) : Test + CLASS_TYPE_P instead of MAYBE_CLASS_TYPE_P. + + 2022-05-09 Patrick Palka + + Backported from master: + 2022-02-17 Patrick Palka + + PR c++/104565 + * semantics.c (finish_compound_literal): Don't perform + non-dependent expr folding before calling check_narrowing. + + 2022-05-09 Patrick Palka + + Backported from master: + 2022-01-25 Patrick Palka + + PR c++/101532 + PR c++/104225 + * decl2.c (mark_used): Don't consider maybe_instantiate_noexcept + on a deleted function. + + 2022-02-17 Jason Merrill + + Revert: + 2021-05-20 Jason Merrill + + PR c++/92918 + * name-lookup.c (push_class_level_binding_1): Do overload a new + function with a previous using-declaration. + + 2021-10-03 Iain Sandoe + + Backported from master: + 2021-07-19 Iain Sandoe + + PR c++/95520 + * coroutines.cc (struct coroutine_info): Add fields for + actor and destroy function decls. + (to_ramp): New. + (coro_get_ramp_function): New. + (coro_get_actor_function): New. + (coro_get_destroy_function): New. + (act_des_fn): Set up mapping between ramp, actor and + destroy functions. + (morph_fn_to_coro): Adjust interface to the builder for + helper function decls. + * cp-tree.h (DECL_ACTOR_FN, DECL_DESTROY_FN, DECL_RAMP_FN, + JOIN_STR): New. + * mangle.c (write_encoding): Handle coroutine helpers. + (write_unqualified_name): Handle lambda coroutine helpers. + + 2021-10-03 Iain Sandoe + + Backported from master: + 2021-07-09 Iain Sandoe + + * coroutines.cc (build_actor_fn): Move common code to + act_des_fn. + (build_destroy_fn): Likewise. + (act_des_fn): Build the void return here. Ensure that the + source location matches the original function. + + 2021-10-03 Iain Sandoe + + Backported from master: + 2021-07-09 Iain Sandoe + + * coroutines.cc + (coro_rewrite_function_body): Connect the replacement + function block to the block nest correctly. + + 2021-10-03 Martin Liska + + Backported from master: + 2021-03-18 Martin Liska + + PR c++/99617 + * coroutines.cc (struct var_nest_node): Init then_cl and else_cl + to NULL. + + 2021-07-08 Marek Polacek + + Backported from master: + 2021-07-08 Marek Polacek + + PR c++/101087 + * cp-tree.h (unevaluated_p): New. + * except.c (check_noexcept_r): Use it. Don't walk into + unevaluated operands. + + 2021-06-17 Jason Merrill + + PR c++/101029 + * init.c (build_vec_init): Shortcut [0] case. + + 2021-06-07 Patrick Palka + + Backported from master: + 2021-06-04 Patrick Palka + + PR c++/100102 + * pt.c (tsubst_function_decl): Remove old code for reducing + args when it has excess levels. + + 2021-06-01 Jason Merrill + + PR c++/100797 + PR c++/95719 + * call.c (build_over_call): Adjust base_binfo in + resolves_to_fixed_type_p case. + + 2021-05-20 Jason Merrill + + PR c++/100489 + * constexpr.c (get_or_insert_ctor_field): Remove assert. + + 2021-05-20 Jason Merrill + + PR c++/80456 + * call.c (build_new_method_call_1): Check again for side-effects + with a volatile object. + + 2021-05-20 Jason Merrill + + PR c++/100054 + PR c++/90479 + * init.c (get_nsdmi): Do more context adjustment for local classes. + + 2021-05-20 Jason Merrill + + PR c++/100032 + * pt.c (get_underlying_template): Compare TYPE_QUALS. + + 2021-05-20 Jason Merrill + + PR c++/91933 + * class.c (build_base_path): Shortcut simple non-pointer case. + + 2021-05-20 Jason Merrill + + PR c++/99180 + PR c++/93295 + PR c++/93867 + PR c++/99118 + PR c++/96873 + * pt.c (alias_ctad_tweaks): Handle failure better. + + 2021-05-20 Jason Merrill + + PR c++/41723 + * parser.c (cp_parser_class_name): Check dependent_scope_p. + + 2021-05-20 Jason Merrill + + PR c++/52625 + * pt.c (maybe_process_partial_specialization): Check + DECL_SELF_REFERENCE_P. + + 2021-05-20 Jason Merrill + + PR c++/92918 + * name-lookup.c (push_class_level_binding_1): Do overload a new + function with a previous using-declaration. + + 2021-05-20 Jason Merrill + + PR c++/96673 + * init.c (get_nsdmi): Don't defer access checking. + + 2021-05-20 Jason Merrill + + PR c++/99901 + * decl.c (cp_finish_decl): mark_needed an implicitly inline + static data member with an out-of-class redeclaration. + + 2021-05-20 Jason Merrill + + PR c++/96311 + * typeck.c (check_return_expr): Call mark_exp_read in dependent + case. + + 2021-05-20 Jason Merrill + + PR c++/95870 + * pt.c (enclosing_instantiation_of): Compare DECL_SOURCE_LOCATION if + there is no enclosing non-lambda function. + + 2021-05-20 Jason Merrill + + PR c++/99201 + * pt.c (class el_data): Add visited field. + (extract_local_specs): Pass it to cp_walk_tree. + (extract_locals_r): Walk into the body of a lambda. + + 2021-05-20 Jason Merrill + + PR c++/99643 + * typeck2.c (massage_init_elt): Don't strip TARGET_EXPR. + + 2021-05-20 Jason Merrill + + PR c++/90664 + * cvt.c (can_convert_qual): Check fnptr_conv_p. + + 2021-05-20 Jason Merrill + + PR c++/91217 + * pt.c (tsubst_lambda_expr): Skip the body block from + DECL_SAVED_TREE. + + 2021-05-20 Jason Merrill + + PR c++/97938 + * cp-tree.h (PACK_EXPANSION_AUTO_P): New. + * lambda.c (add_capture): Set it. + * pt.c (tsubst_pack_expansion): Handle it. + + 2021-04-21 Patrick Palka + + Backported from master: + 2020-09-19 Patrick Palka + + PR c++/97051 + * constraint.cc (satisfy_atom): Pass true as the + manifestly_const_eval argument to maybe_constant_value. + + 2021-04-21 Patrick Palka + + Backported from master: + 2020-07-30 Patrick Palka + + PR c++/95486 + * pt.c (alias_ctad_tweaks): Call remove_constraints before + calling set_constraints. + + 2021-04-20 Patrick Palka + + Backported from master: + 2020-10-08 Patrick Palka + + PR c++/97052 + * constraint.cc (build_type_constraint): Temporarily increment + processing_template_decl before calling build_concept_check. + * pt.c (make_constrained_placeholder_type): Likewise. + + 2021-04-20 Patrick Palka + + Backported from master: + 2021-01-20 Patrick Palka + + PR c++/95434 + * pt.c (tsubst) : If tsubsting + CLASS_PLACEHOLDER_TEMPLATE yields a TEMPLATE_TEMPLATE_PARM, + adjust to its TEMPLATE_TEMPLATE_PARM_TEMPLATE_DECL. + + 2021-04-20 Patrick Palka + + Backported from master: + 2021-04-14 Patrick Palka + + PR c++/83476 + PR c++/99885 + * pt.c (deducible_expression): Look through implicit + INDIRECT_REFs as well. + + 2021-04-20 Jakub Jelinek + + Backported from master: + 2021-04-16 Jakub Jelinek + + PR c++/100111 + * constexpr.c (cxx_eval_store_expression): Don't add CONSTRUCTORs + for empty classes into *valp when types don't match even when *valp + is NULL. + + 2021-04-20 Jakub Jelinek + + Backported from master: + 2021-04-16 Jakub Jelinek + + PR c++/99833 + * pt.c (extract_locals_r): When handling DECL_EXPR of a structured + binding, add to data.internal also all corresponding structured + binding decls. + + 2021-04-20 Jakub Jelinek + + Backported from master: + 2021-04-08 Jakub Jelinek + + PR c++/99859 + * constexpr.c (addr_of_non_const_var): New function. + (cxx_bind_parameters_in_call): Set *non_constant_args to true + even if cp_walk_tree on arg with addr_of_non_const_var callback + returns true. + + 2021-04-11 Marek Polacek + + PR c++/97966 + * pt.c (instantiate_class_template_1): Use FOR_EACH_VEC_ELT instead + of range-based for loop. + + 2021-04-10 Marek Polacek + + PR c++/97973 + * call.c (conv_unsafe_in_template_p): New. + (convert_like): Use it. + + 2021-04-09 Marek Polacek + + Backported from master: + 2021-04-09 Marek Polacek + + PR c++/99806 + * parser.c (cp_parser_member_declaration): Call + cp_parser_save_default_args even for function templates. Use + STRIP_TEMPLATE on the declaration we're passing. + + 2021-04-09 Marek Polacek + + Backported from master: + 2021-04-03 Marek Polacek + + PR c++/91416 + * parser.c: Create a GC root for attributes in a decl specifier. + (cp_parser_type_specifier): Push/pop ->attributes onto/from it. + + 2021-04-09 Marek Polacek + + Backported from master: + 2021-04-01 Marek Polacek + + PR c++/99831 + * method.c (defaulted_late_check): ++ and -- function_depth around + the call to synthesize_method. + * pt.c: Remove the saved_trees global. + + 2021-04-09 Marek Polacek + + Backported from master: + 2021-03-25 Marek Polacek + + PR c++/99331 + * call.c (build_converted_constant_expr_internal): Don't emit + -Wconversion warnings. + + 2021-04-09 Marek Polacek + + DR 1312 + PR c++/99176 + * constexpr.c (is_std_construct_at): New overload. + (is_std_allocator_allocate): New overload. + (cxx_eval_call_expression): Use the new overloads. + (cxx_eval_constant_expression): Reject casting + from void * as per DR 1312. Don't check can_convert. + + 2021-04-09 Marek Polacek + + Backported from master: + 2021-03-05 Marek Polacek + + PR c++/99120 + * name-lookup.c (check_local_shadow): Check if the type of decl + is non-null before checking TYPE_PTR*. + + 2021-04-09 Marek Polacek + + Backported from master: + 2021-03-05 Marek Polacek + + PR c++/99374 + * call.c (standard_conversion): When converting pointers to + member, don't return NULL when the bases are equivalent but + incomplete. + + 2021-04-09 Marek Polacek + + Backported from master: + 2021-02-05 Marek Polacek + + PR c++/98947 + * call.c (build_conditional_expr_1): Don't call mark_lvalue_use + on arg2/arg3. + * expr.c (mark_use) : Don't check read_p when + issuing the -Wvolatile warning. Only set TREE_THIS_VOLATILE if + a warning was emitted. + + 2021-04-09 Marek Polacek + + PR c++/97966 + * pt.c (instantiate_class_template_1): Instantiate members + marked with attribute used only after we're done instantiating + the class. + + 2021-04-09 Marek Polacek + + Backported from master: + 2021-01-19 Marek Polacek + + PR c++/98333 + * parser.c (cp_parser_class_specifier_1): Perform late-parsing + of NSDMIs before late-parsing of noexcept-specifiers. + 2021-04-08 Release Manager * GCC 10.3.0 released. diff -Nrcpad gcc-10.3.0/gcc/cp/call.c gcc-10.4.0/gcc/cp/call.c *** gcc-10.3.0/gcc/cp/call.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/cp/call.c Tue Jun 28 08:54:28 2022 *************** standard_conversion (tree to, tree from, *** 1434,1440 **** tree fbase = class_of_this_parm (fromfn); tree tbase = class_of_this_parm (tofn); ! if (!DERIVED_FROM_P (fbase, tbase)) return NULL; tree fstat = static_fn_type (fromfn); --- 1434,1442 ---- tree fbase = class_of_this_parm (fromfn); tree tbase = class_of_this_parm (tofn); ! /* If FBASE and TBASE are equivalent but incomplete, DERIVED_FROM_P ! yields false. But a pointer to member of incomplete class is OK. */ ! if (!same_type_p (fbase, tbase) && !DERIVED_FROM_P (fbase, tbase)) return NULL; tree fstat = static_fn_type (fromfn); *************** add_builtin_candidate (struct z_candidat *** 2761,2767 **** tree c1 = TREE_TYPE (type1); tree c2 = TYPE_PTRMEM_CLASS_TYPE (type2); ! if (MAYBE_CLASS_TYPE_P (c1) && DERIVED_FROM_P (c2, c1) && (TYPE_PTRMEMFUNC_P (type2) || is_complete (TYPE_PTRMEM_POINTED_TO_TYPE (type2)))) break; --- 2763,2769 ---- tree c1 = TREE_TYPE (type1); tree c2 = TYPE_PTRMEM_CLASS_TYPE (type2); ! if (CLASS_TYPE_P (c1) && DERIVED_FROM_P (c2, c1) && (TYPE_PTRMEMFUNC_P (type2) || is_complete (TYPE_PTRMEM_POINTED_TO_TYPE (type2)))) break; *************** build_user_type_conversion_1 (tree totyp *** 4061,4067 **** { cand->second_conv = build_identity_conv (totype, NULL_TREE); ! /* If totype isn't a reference, and LOOKUP_NO_TEMP_BIND isn't set, then this is copy-initialization. In that case, "The result of the call is then used to direct-initialize the object that is the destination of the copy-initialization." --- 4063,4069 ---- { cand->second_conv = build_identity_conv (totype, NULL_TREE); ! /* If totype isn't a reference, and LOOKUP_ONLYCONVERTING is set, then this is copy-initialization. In that case, "The result of the call is then used to direct-initialize the object that is the destination of the copy-initialization." *************** build_user_type_conversion_1 (tree totyp *** 4070,4075 **** --- 4072,4079 ---- We represent this in the conversion sequence with an rvalue conversion, which means a constructor call. */ if (!TYPE_REF_P (totype) + && cxx_dialect < cxx17 + && (flags & LOOKUP_ONLYCONVERTING) && !(convflags & LOOKUP_NO_TEMP_BIND)) cand->second_conv = build_conv (ck_rvalue, totype, cand->second_conv); *************** build_converted_constant_expr_internal ( *** 4392,4397 **** --- 4396,4404 ---- && processing_template_decl) conv = next_conversion (conv); + /* Issuing conversion warnings for value-dependent expressions is + likely too noisy. */ + warning_sentinel w (warn_conversion); conv->check_narrowing = true; conv->check_narrowing_const_only = true; expr = convert_like (conv, expr, complain); *************** build_operator_new_call (tree fnname, ve *** 4677,4683 **** we disregard block-scope declarations of "operator new". */ fns = lookup_name_real (fnname, 0, 1, /*block_p=*/false, 0, 0); - fns = lookup_arg_dependent (fnname, fns, *args); if (align_arg) { --- 4684,4689 ---- *************** build_conditional_expr_1 (const op_locat *** 5474,5481 **** && same_type_p (arg2_type, arg3_type)) { result_type = arg2_type; - arg2 = mark_lvalue_use (arg2); - arg3 = mark_lvalue_use (arg3); goto valid_operands; } --- 5480,5485 ---- *************** maybe_warn_array_conv (location_t loc, c *** 7302,7307 **** --- 7306,7332 ---- "are only available with %<-std=c++2a%> or %<-std=gnu++2a%>"); } + /* Return true if converting FROM to TO is unsafe in a template. */ + + static bool + conv_unsafe_in_template_p (tree to, tree from) + { + /* Converting classes involves TARGET_EXPR. */ + if (CLASS_TYPE_P (to) || CLASS_TYPE_P (from)) + return true; + + /* Converting real to integer produces FIX_TRUNC_EXPR which tsubst + doesn't handle. */ + if (SCALAR_FLOAT_TYPE_P (from) && INTEGRAL_OR_ENUMERATION_TYPE_P (to)) + return true; + + /* Converting integer to real isn't a trivial conversion, either. */ + if (INTEGRAL_OR_ENUMERATION_TYPE_P (from) && SCALAR_FLOAT_TYPE_P (to)) + return true; + + return false; + } + /* Wrapper for convert_like_real_1 that handles creating IMPLICIT_CONV_EXPR. */ static tree *************** convert_like_real (conversion *convs, tr *** 7317,7323 **** tree conv_expr = NULL_TREE; if (processing_template_decl && convs->kind != ck_identity ! && (CLASS_TYPE_P (convs->type) || CLASS_TYPE_P (TREE_TYPE (expr)))) { conv_expr = build1 (IMPLICIT_CONV_EXPR, convs->type, expr); if (convs->kind != ck_ref_bind) --- 7342,7348 ---- tree conv_expr = NULL_TREE; if (processing_template_decl && convs->kind != ck_identity ! && conv_unsafe_in_template_p (convs->type, TREE_TYPE (expr))) { conv_expr = build1 (IMPLICIT_CONV_EXPR, convs->type, expr); if (convs->kind != ck_ref_bind) *************** convert_like_real_1 (conversion *convs, *** 7655,7661 **** expr = convert_like_real (next_conversion (convs), expr, fn, argnum, convs->kind == ck_ref_bind ? issue_conversion_warnings : false, ! c_cast_p, complain); if (expr == error_mark_node) return error_mark_node; --- 7680,7686 ---- expr = convert_like_real (next_conversion (convs), expr, fn, argnum, convs->kind == ck_ref_bind ? issue_conversion_warnings : false, ! c_cast_p, complain & ~tf_no_cleanup); if (expr == error_mark_node) return error_mark_node; *************** convert_arg_to_ellipsis (tree arg, tsubs *** 7944,7950 **** { arg = mark_rvalue_use (arg); if (TREE_SIDE_EFFECTS (arg)) ! arg = cp_build_compound_expr (arg, null_pointer_node, complain); else arg = null_pointer_node; } --- 7969,7978 ---- { arg = mark_rvalue_use (arg); if (TREE_SIDE_EFFECTS (arg)) ! { ! warning_sentinel w(warn_unused_result); ! arg = cp_build_compound_expr (arg, null_pointer_node, complain); ! } else arg = null_pointer_node; } *************** build_over_call (struct z_candidate *can *** 8738,8756 **** || CLASSTYPE_FINAL (TYPE_METHOD_BASETYPE (TREE_TYPE (fn)))) flags |= LOOKUP_NONVIRTUAL; - /* If we know the dynamic type of the object, look up the final overrider - in the BINFO. */ - if (DECL_VINDEX (fn) && (flags & LOOKUP_NONVIRTUAL) == 0 - && resolves_to_fixed_type_p (arg)) - { - tree binfo = cand->conversion_path; - if (BINFO_TYPE (binfo) != DECL_CONTEXT (fn)) - binfo = lookup_base (binfo, DECL_CONTEXT (fn), ba_unique, - NULL, complain); - fn = lookup_vfn_in_binfo (DECL_VINDEX (fn), binfo); - flags |= LOOKUP_NONVIRTUAL; - } - /* [class.mfct.nonstatic]: If a nonstatic member function of a class X is called for an object that is not of type X, or of a type derived from X, the behavior is undefined. --- 8766,8771 ---- *************** build_over_call (struct z_candidate *can *** 8760,8769 **** gcc_assert (TYPE_PTR_P (parmtype)); /* Convert to the base in which the function was declared. */ gcc_assert (cand->conversion_path != NULL_TREE); - converted_arg = build_base_path (PLUS_EXPR, - arg, - cand->conversion_path, - 1, complain); /* Check that the base class is accessible. */ if (!accessible_base_p (TREE_TYPE (argtype), BINFO_TYPE (cand->conversion_path), true)) --- 8775,8780 ---- *************** build_over_call (struct z_candidate *can *** 8778,8787 **** /* If fn was found by a using declaration, the conversion path will be to the derived class, not the base declaring fn. We must convert from derived to base. */ ! base_binfo = lookup_base (TREE_TYPE (TREE_TYPE (converted_arg)), TREE_TYPE (parmtype), ba_unique, NULL, complain); ! converted_arg = build_base_path (PLUS_EXPR, converted_arg, base_binfo, 1, complain); argarray[j++] = converted_arg; --- 8789,8821 ---- /* If fn was found by a using declaration, the conversion path will be to the derived class, not the base declaring fn. We must convert from derived to base. */ ! base_binfo = lookup_base (cand->conversion_path, TREE_TYPE (parmtype), ba_unique, NULL, complain); ! ! /* If we know the dynamic type of the object, look up the final overrider ! in the BINFO. */ ! if (DECL_VINDEX (fn) && (flags & LOOKUP_NONVIRTUAL) == 0 ! && resolves_to_fixed_type_p (arg)) ! { ! tree ov = lookup_vfn_in_binfo (DECL_VINDEX (fn), base_binfo); ! ! /* And unwind base_binfo to match. If we don't find the type we're ! looking for in BINFO_INHERITANCE_CHAIN, we're looking at diamond ! inheritance; for now do a normal virtual call in that case. */ ! tree octx = DECL_CONTEXT (ov); ! tree obinfo = base_binfo; ! while (obinfo && !SAME_BINFO_TYPE_P (BINFO_TYPE (obinfo), octx)) ! obinfo = BINFO_INHERITANCE_CHAIN (obinfo); ! if (obinfo) ! { ! fn = ov; ! base_binfo = obinfo; ! flags |= LOOKUP_NONVIRTUAL; ! } ! } ! ! converted_arg = build_base_path (PLUS_EXPR, arg, base_binfo, 1, complain); argarray[j++] = converted_arg; *************** build_over_call (struct z_candidate *can *** 9049,9056 **** && DECL_OVERLOADED_OPERATOR_IS (fn, NOP_EXPR) && trivial_fn_p (fn)) { ! tree to = cp_stabilize_reference ! (cp_build_fold_indirect_ref (argarray[0])); tree type = TREE_TYPE (to); tree as_base = CLASSTYPE_AS_BASE (type); tree arg = argarray[1]; --- 9083,9093 ---- && DECL_OVERLOADED_OPERATOR_IS (fn, NOP_EXPR) && trivial_fn_p (fn)) { ! /* Don't use cp_build_fold_indirect_ref, op= returns an lvalue even if ! the object argument isn't one. */ ! tree to = cp_build_indirect_ref (input_location, argarray[0], ! RO_ARROW, complain); ! to = cp_stabilize_reference (to); tree type = TREE_TYPE (to); tree as_base = CLASSTYPE_AS_BASE (type); tree arg = argarray[1]; *************** build_new_method_call_1 (tree instance, *** 10423,10429 **** tree a = instance; if (TREE_THIS_VOLATILE (a)) a = build_this (a); ! call = build2 (COMPOUND_EXPR, TREE_TYPE (call), a, call); } else if (call != error_mark_node && DECL_DESTRUCTOR_P (cand->fn) --- 10460,10467 ---- tree a = instance; if (TREE_THIS_VOLATILE (a)) a = build_this (a); ! if (TREE_SIDE_EFFECTS (a)) ! call = build2 (COMPOUND_EXPR, TREE_TYPE (call), a, call); } else if (call != error_mark_node && DECL_DESTRUCTOR_P (cand->fn) diff -Nrcpad gcc-10.3.0/gcc/cp/class.c gcc-10.4.0/gcc/cp/class.c *** gcc-10.3.0/gcc/cp/class.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/cp/class.c Tue Jun 28 08:54:28 2022 *************** build_base_path (enum tree_code code, *** 331,336 **** --- 331,345 ---- return error_mark_node; } + bool uneval = (cp_unevaluated_operand != 0 + || processing_template_decl + || in_template_function ()); + + /* For a non-pointer simple base reference, express it as a COMPONENT_REF + without taking its address (and so causing lambda capture, 91933). */ + if (code == PLUS_EXPR && !v_binfo && !want_pointer && !has_empty && !uneval) + return build_simple_base_path (expr, binfo); + if (!want_pointer) { rvalue = !lvalue_p (expr); *************** build_base_path (enum tree_code code, *** 358,366 **** template (even in instantiate_non_dependent_expr), we don't have vtables set up properly yet, and the value doesn't matter there either; we're just interested in the result of overload resolution. */ ! if (cp_unevaluated_operand != 0 ! || processing_template_decl ! || in_template_function ()) { expr = build_nop (ptr_target_type, expr); goto indout; --- 367,373 ---- template (even in instantiate_non_dependent_expr), we don't have vtables set up properly yet, and the value doesn't matter there either; we're just interested in the result of overload resolution. */ ! if (uneval) { expr = build_nop (ptr_target_type, expr); goto indout; diff -Nrcpad gcc-10.3.0/gcc/cp/constexpr.c gcc-10.4.0/gcc/cp/constexpr.c *** gcc-10.3.0/gcc/cp/constexpr.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/cp/constexpr.c Tue Jun 28 08:54:28 2022 *************** register_constexpr_fundef (tree fun, tre *** 898,904 **** if (!potential && !DECL_GENERATED_P (fun)) require_potential_rvalue_constant_expression (massaged); ! if (DECL_CONSTRUCTOR_P (fun) && cx_check_missing_mem_inits (DECL_CONTEXT (fun), massaged, !DECL_GENERATED_P (fun))) potential = false; --- 898,904 ---- if (!potential && !DECL_GENERATED_P (fun)) require_potential_rvalue_constant_expression (massaged); ! if (DECL_CONSTRUCTOR_P (fun) && !DECL_DEFAULTED_FN (fun) && cx_check_missing_mem_inits (DECL_CONTEXT (fun), massaged, !DECL_GENERATED_P (fun))) potential = false; *************** free_constructor (tree t) *** 1495,1500 **** --- 1495,1524 ---- } } + /* Helper function of cxx_bind_parameters_in_call. Return non-NULL + if *TP is address of a static variable (or part of it) currently being + constructed or of a heap artificial variable. */ + + static tree + addr_of_non_const_var (tree *tp, int *walk_subtrees, void *data) + { + if (TREE_CODE (*tp) == ADDR_EXPR) + if (tree var = get_base_address (TREE_OPERAND (*tp, 0))) + if (VAR_P (var) && TREE_STATIC (var)) + { + if (DECL_NAME (var) == heap_uninit_identifier + || DECL_NAME (var) == heap_identifier) + return var; + + constexpr_global_ctx *global = (constexpr_global_ctx *) data; + if (global->values.get (var)) + return var; + } + if (TYPE_P (*tp)) + *walk_subtrees = false; + return NULL_TREE; + } + /* Subroutine of cxx_eval_call_expression. We are processing a call expression (either CALL_EXPR or AGGR_INIT_EXPR) in the context of CTX. Evaluate *************** cxx_bind_parameters_in_call (const const *** 1549,1554 **** --- 1573,1588 ---- arg = adjust_temp_type (type, arg); if (!TREE_CONSTANT (arg)) *non_constant_args = true; + /* If arg is or contains address of a heap artificial variable or + of a static variable being constructed, avoid caching the + function call, as those variables might be modified by the + function, or might be modified by the callers in between + the cached function and just read by the function. */ + else if (!*non_constant_args + && cp_walk_tree (&arg, addr_of_non_const_var, ctx->global, + NULL)) + *non_constant_args = true; + /* For virtual calls, adjust the this argument, so that it is the object on which the method is called, rather than one of its bases. */ *************** cxx_eval_internal_function (const conste *** 1653,1665 **** false, non_constant_p, overflow_p); if (TREE_CODE (arg) == VECTOR_CST) ! return fold_const_call (CFN_VEC_CONVERT, TREE_TYPE (t), arg); ! else ! { ! *non_constant_p = true; ! return t; ! } } default: if (!ctx->quiet) --- 1687,1696 ---- false, non_constant_p, overflow_p); if (TREE_CODE (arg) == VECTOR_CST) ! if (tree r = fold_const_call (CFN_VEC_CONVERT, TREE_TYPE (t), arg)) ! return r; } + /* FALLTHRU */ default: if (!ctx->quiet) *************** is_std_construct_at (tree fndecl) *** 1769,1774 **** --- 1800,1815 ---- return name && id_equal (name, "construct_at"); } + /* Overload for the above taking constexpr_call*. */ + + static inline bool + is_std_construct_at (const constexpr_call *call) + { + return (call + && call->fundef + && is_std_construct_at (call->fundef->decl)); + } + /* Return true if FNDECL is std::allocator::{,de}allocate. */ static inline bool *************** is_std_allocator_allocate (tree fndecl) *** 1791,1796 **** --- 1832,1847 ---- return decl_in_std_namespace_p (decl); } + /* Overload for the above taking constexpr_call*. */ + + static inline bool + is_std_allocator_allocate (const constexpr_call *call) + { + return (call + && call->fundef + && is_std_allocator_allocate (call->fundef->decl)); + } + /* Return true if FNDECL is __dynamic_cast. */ static inline bool *************** cxx_eval_call_expression (const constexp *** 2197,2205 **** if (TREE_CODE (t) == CALL_EXPR && cxx_replaceable_global_alloc_fn (fun) && (CALL_FROM_NEW_OR_DELETE_P (t) ! || (ctx->call ! && ctx->call->fundef ! && is_std_allocator_allocate (ctx->call->fundef->decl)))) { const int nargs = call_expr_nargs (t); tree arg0 = NULL_TREE; --- 2248,2254 ---- if (TREE_CODE (t) == CALL_EXPR && cxx_replaceable_global_alloc_fn (fun) && (CALL_FROM_NEW_OR_DELETE_P (t) ! || is_std_allocator_allocate (ctx->call))) { const int nargs = call_expr_nargs (t); tree arg0 = NULL_TREE; *************** cxx_eval_call_expression (const constexp *** 2267,2275 **** argument. */ if (TREE_CODE (t) == CALL_EXPR && cxx_placement_new_fn (fun) ! && ctx->call ! && ctx->call->fundef ! && is_std_construct_at (ctx->call->fundef->decl)) { const int nargs = call_expr_nargs (t); tree arg1 = NULL_TREE; --- 2316,2322 ---- argument. */ if (TREE_CODE (t) == CALL_EXPR && cxx_placement_new_fn (fun) ! && is_std_construct_at (ctx->call)) { const int nargs = call_expr_nargs (t); tree arg1 = NULL_TREE; *************** cxx_eval_check_shift_p (location_t loc, *** 2829,2835 **** The value of E1 << E2 is the unique value congruent to E1 x 2^E2 modulo 2^N, where N is the range exponent of the type of the result. */ if (code == LSHIFT_EXPR ! && !TYPE_UNSIGNED (lhstype) && cxx_dialect >= cxx11 && cxx_dialect < cxx2a) { --- 2876,2882 ---- The value of E1 << E2 is the unique value congruent to E1 x 2^E2 modulo 2^N, where N is the range exponent of the type of the result. */ if (code == LSHIFT_EXPR ! && !TYPE_OVERFLOW_WRAPS (lhstype) && cxx_dialect >= cxx11 && cxx_dialect < cxx2a) { *************** get_or_insert_ctor_field (tree ctor, tre *** 3311,3319 **** } else { ! gcc_assert (TREE_CODE (index) == FIELD_DECL ! && (same_type_ignoring_top_level_qualifiers_p ! (DECL_CONTEXT (index), TREE_TYPE (ctor)))); /* We must keep the CONSTRUCTOR's ELTS in FIELD order. Usually we meet initializers in that order, but it is --- 3358,3364 ---- } else { ! gcc_assert (TREE_CODE (index) == FIELD_DECL); /* We must keep the CONSTRUCTOR's ELTS in FIELD order. Usually we meet initializers in that order, but it is *************** cxx_eval_array_reference (const constexp *** 3592,3598 **** directly for non-aggregates to avoid creating a garbage CONSTRUCTOR. */ tree val; constexpr_ctx new_ctx; ! if (CP_AGGREGATE_TYPE_P (elem_type)) { tree empty_ctor = build_constructor (init_list_type_node, NULL); val = digest_init (elem_type, empty_ctor, tf_warning_or_error); --- 3637,3645 ---- directly for non-aggregates to avoid creating a garbage CONSTRUCTOR. */ tree val; constexpr_ctx new_ctx; ! if (is_really_empty_class (elem_type, /*ignore_vptr*/false)) ! return build_constructor (elem_type, NULL); ! else if (CP_AGGREGATE_TYPE_P (elem_type)) { tree empty_ctor = build_constructor (init_list_type_node, NULL); val = digest_init (elem_type, empty_ctor, tf_warning_or_error); *************** cxx_eval_store_expression (const constex *** 5096,5101 **** --- 5143,5162 ---- CONSTRUCTOR_NO_CLEARING (*valp) = CONSTRUCTOR_NO_CLEARING (init); } + else if (TREE_CODE (init) == CONSTRUCTOR + && !same_type_ignoring_top_level_qualifiers_p (TREE_TYPE (init), + type)) + { + /* See above on initialization of empty bases. */ + gcc_assert (is_empty_class (TREE_TYPE (init)) && !lval); + if (!*valp) + { + /* But do make sure we have something in *valp. */ + *valp = build_constructor (type, NULL); + CONSTRUCTOR_NO_CLEARING (*valp) = no_zero_init; + } + return init; + } else *valp = init; *************** inline_asm_in_constexpr_error (location_ *** 5565,5570 **** --- 5626,5709 ---- "% function in C++2a"); } + /* For element type ELT_TYPE, return the appropriate type of the heap object + containing such element(s). COOKIE_SIZE is NULL or the size of cookie + in bytes. If COOKIE_SIZE is NULL, return array type + ELT_TYPE[FULL_SIZE / sizeof(ELT_TYPE)], otherwise return + struct { size_t[COOKIE_SIZE/sizeof(size_t)]; ELT_TYPE[N]; } + where N is is computed such that the size of the struct fits into FULL_SIZE. + If ARG_SIZE is non-NULL, it is the first argument to the new operator. + It should be passed if ELT_TYPE is zero sized type in which case FULL_SIZE + will be also 0 and so it is not possible to determine the actual array + size. CTX, NON_CONSTANT_P and OVERFLOW_P are used during constant + expression evaluation of subexpressions of ARG_SIZE. */ + + static tree + build_new_constexpr_heap_type (const constexpr_ctx *ctx, tree elt_type, + tree cookie_size, tree full_size, tree arg_size, + bool *non_constant_p, bool *overflow_p) + { + gcc_assert (cookie_size == NULL_TREE || tree_fits_uhwi_p (cookie_size)); + gcc_assert (tree_fits_uhwi_p (full_size)); + unsigned HOST_WIDE_INT csz = cookie_size ? tree_to_uhwi (cookie_size) : 0; + if (arg_size) + { + STRIP_NOPS (arg_size); + if (cookie_size) + { + if (TREE_CODE (arg_size) != PLUS_EXPR) + arg_size = NULL_TREE; + else if (TREE_CODE (TREE_OPERAND (arg_size, 0)) == INTEGER_CST + && tree_int_cst_equal (cookie_size, + TREE_OPERAND (arg_size, 0))) + { + arg_size = TREE_OPERAND (arg_size, 1); + STRIP_NOPS (arg_size); + } + else if (TREE_CODE (TREE_OPERAND (arg_size, 1)) == INTEGER_CST + && tree_int_cst_equal (cookie_size, + TREE_OPERAND (arg_size, 1))) + { + arg_size = TREE_OPERAND (arg_size, 0); + STRIP_NOPS (arg_size); + } + else + arg_size = NULL_TREE; + } + if (arg_size && TREE_CODE (arg_size) == MULT_EXPR) + { + tree op0 = TREE_OPERAND (arg_size, 0); + tree op1 = TREE_OPERAND (arg_size, 1); + if (integer_zerop (op0)) + arg_size + = cxx_eval_constant_expression (ctx, op1, false, non_constant_p, + overflow_p); + else if (integer_zerop (op1)) + arg_size + = cxx_eval_constant_expression (ctx, op0, false, non_constant_p, + overflow_p); + else + arg_size = NULL_TREE; + } + else + arg_size = NULL_TREE; + } + + unsigned HOST_WIDE_INT fsz = tree_to_uhwi (arg_size ? arg_size : full_size); + if (!arg_size) + { + unsigned HOST_WIDE_INT esz = int_size_in_bytes (elt_type); + gcc_assert (fsz >= csz); + fsz -= csz; + if (esz) + fsz /= esz; + } + tree itype2 = build_index_type (size_int (fsz - 1)); + if (!cookie_size) + return build_cplus_array_type (elt_type, itype2); + return build_new_constexpr_heap_type (elt_type, cookie_size, itype2); + } + /* Attempt to reduce the expression T to a constant value. On failure, issue diagnostic and return error_mark_node. */ /* FIXME unify with c_fully_fold */ *************** cxx_eval_constant_expression (const cons *** 5623,5628 **** --- 5762,5771 ---- if (TREE_CODE (t) == INTEGER_CST && TYPE_PTR_P (TREE_TYPE (t)) + /* INTEGER_CST with pointer-to-method type is only used + for a virtual method in a pointer to member function. + Don't reject those. */ + && TREE_CODE (TREE_TYPE (TREE_TYPE (t))) != METHOD_TYPE && !integer_zerop (t)) { if (!ctx->quiet) *************** cxx_eval_constant_expression (const cons *** 6270,6275 **** --- 6413,6448 ---- if (VOID_TYPE_P (type)) return void_node; + /* [expr.const]: a conversion from type cv void* to a pointer-to-object + type cannot be part of a core constant expression as a resolution to + DR 1312. */ + if (integer_zerop (op) /* FIXME: Remove in GCC 12. */ + && TYPE_PTROB_P (type) + && TYPE_PTR_P (TREE_TYPE (op)) + && VOID_TYPE_P (TREE_TYPE (TREE_TYPE (op))) + /* Inside a call to std::construct_at or to + std::allocator::{,de}allocate, we permit casting from void* + because that is compiler-generated code. */ + && !is_std_construct_at (ctx->call) + && !is_std_allocator_allocate (ctx->call)) + { + /* Likewise, don't error when casting from void* when OP is + &heap uninit and similar. */ + tree sop = tree_strip_nop_conversions (op); + if (TREE_CODE (sop) == ADDR_EXPR + && VAR_P (TREE_OPERAND (sop, 0)) + && DECL_ARTIFICIAL (TREE_OPERAND (sop, 0))) + /* OK */; + else + { + if (!ctx->quiet) + error_at (loc, "cast from %qT is not allowed", + TREE_TYPE (op)); + *non_constant_p = true; + return t; + } + } + if (TREE_CODE (op) == PTRMEM_CST && !TYPE_PTRMEM_P (type)) op = cplus_expand_constant (op); *************** cxx_eval_constant_expression (const cons *** 6288,6313 **** if (TYPE_REF_P (type)) { if (!ctx->quiet) ! error_at (loc, ! "dereferencing a null pointer"); *non_constant_p = true; return t; } - else if (TYPE_PTR_P (TREE_TYPE (op))) - { - tree from = TREE_TYPE (op); - - if (!can_convert (type, from, tf_none)) - { - if (!ctx->quiet) - error_at (loc, - "conversion of %qT null pointer to %qT " - "is not a constant expression", - from, type); - *non_constant_p = true; - return t; - } - } } else { --- 6461,6470 ---- if (TYPE_REF_P (type)) { if (!ctx->quiet) ! error_at (loc, "dereferencing a null pointer"); *non_constant_p = true; return t; } } else { *************** cxx_eval_constant_expression (const cons *** 6335,6340 **** --- 6492,6498 ---- tree var_size = TYPE_SIZE_UNIT (TREE_TYPE (var)); tree elt_type = TREE_TYPE (type); tree cookie_size = NULL_TREE; + tree arg_size = NULL_TREE; if (TREE_CODE (elt_type) == RECORD_TYPE && TYPE_NAME (elt_type) == heap_identifier) { *************** cxx_eval_constant_expression (const cons *** 6344,6352 **** cookie_size = TYPE_SIZE_UNIT (TREE_TYPE (fld1)); } DECL_NAME (var) = heap_identifier; TREE_TYPE (var) ! = build_new_constexpr_heap_type (elt_type, cookie_size, ! var_size); TREE_TYPE (TREE_OPERAND (op, 0)) = build_pointer_type (TREE_TYPE (var)); } --- 6502,6522 ---- cookie_size = TYPE_SIZE_UNIT (TREE_TYPE (fld1)); } DECL_NAME (var) = heap_identifier; + /* For zero sized elt_type, try to recover how many outer_nelts + it should have. */ + if ((cookie_size ? tree_int_cst_equal (var_size, cookie_size) + : integer_zerop (var_size)) + && !int_size_in_bytes (elt_type) + && TREE_CODE (oldop) == CALL_EXPR + && call_expr_nargs (oldop) >= 1) + if (tree fun = get_function_named_in_call (oldop)) + if (cxx_replaceable_global_alloc_fn (fun) + && IDENTIFIER_NEW_OP_P (DECL_NAME (fun))) + arg_size = CALL_EXPR_ARG (oldop, 0); TREE_TYPE (var) ! = build_new_constexpr_heap_type (ctx, elt_type, cookie_size, ! var_size, arg_size, ! non_constant_p, overflow_p); TREE_TYPE (TREE_OPERAND (op, 0)) = build_pointer_type (TREE_TYPE (var)); } *************** cxx_eval_outermost_constant_expr (tree t *** 6899,6905 **** if (TREE_CODE (t) == TARGET_EXPR && TARGET_EXPR_INITIAL (t) == r) return t; ! else if (TREE_CODE (t) != CONSTRUCTOR) { r = get_target_expr_sfinae (r, tf_warning_or_error | tf_no_cleanup); TREE_CONSTANT (r) = true; --- 7069,7079 ---- if (TREE_CODE (t) == TARGET_EXPR && TARGET_EXPR_INITIAL (t) == r) return t; ! else if (TREE_CODE (t) == CONSTRUCTOR) ! ; ! else if (TREE_CODE (t) == TARGET_EXPR && TARGET_EXPR_CLEANUP (t)) ! r = get_target_expr (r); ! else { r = get_target_expr_sfinae (r, tf_warning_or_error | tf_no_cleanup); TREE_CONSTANT (r) = true; *************** potential_constant_expression_1 (tree t, *** 8131,8148 **** tmp = DECL_EXPR_DECL (t); if (VAR_P (tmp) && !DECL_ARTIFICIAL (tmp)) { ! if (TREE_STATIC (tmp)) { if (flags & tf_error) error_at (DECL_SOURCE_LOCATION (tmp), "%qD declared " ! "% in % context", tmp); return false; } ! else if (CP_DECL_THREAD_LOCAL_P (tmp)) { if (flags & tf_error) error_at (DECL_SOURCE_LOCATION (tmp), "%qD declared " ! "% in % context", tmp); return false; } else if (!check_for_uninitialized_const_var --- 8305,8322 ---- tmp = DECL_EXPR_DECL (t); if (VAR_P (tmp) && !DECL_ARTIFICIAL (tmp)) { ! if (CP_DECL_THREAD_LOCAL_P (tmp) && !DECL_REALLY_EXTERN (tmp)) { if (flags & tf_error) error_at (DECL_SOURCE_LOCATION (tmp), "%qD declared " ! "% in % context", tmp); return false; } ! else if (TREE_STATIC (tmp)) { if (flags & tf_error) error_at (DECL_SOURCE_LOCATION (tmp), "%qD declared " ! "% in % context", tmp); return false; } else if (!check_for_uninitialized_const_var *************** potential_constant_expression_1 (tree t, *** 8402,8409 **** case GOTO_EXPR: { tree *target = &TREE_OPERAND (t, 0); ! /* Gotos representing break and continue are OK. */ ! if (breaks (target) || continues (target)) { *jump_target = *target; return true; --- 8576,8583 ---- case GOTO_EXPR: { tree *target = &TREE_OPERAND (t, 0); ! /* Gotos representing break, continue and cdtor return are OK. */ ! if (breaks (target) || continues (target) || returns (target)) { *jump_target = *target; return true; diff -Nrcpad gcc-10.3.0/gcc/cp/constraint.cc gcc-10.4.0/gcc/cp/constraint.cc *** gcc-10.3.0/gcc/cp/constraint.cc Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/cp/constraint.cc Tue Jun 28 08:54:28 2022 *************** tree *** 1420,1426 **** --- 1420,1428 ---- build_type_constraint (tree decl, tree args, tsubst_flags_t complain) { tree wildcard = build_nt (WILDCARD_DECL); + ++processing_template_decl; tree check = build_concept_check (decl, wildcard, args, complain); + --processing_template_decl; if (check == error_mark_node) return error_mark_node; return unpack_concept_check (check); *************** satisfy_atom (tree t, tree args, subst_i *** 2628,2634 **** result = cxx_constant_value (result); else { ! result = maybe_constant_value (result); if (!TREE_CONSTANT (result)) result = error_mark_node; } --- 2630,2637 ---- result = cxx_constant_value (result); else { ! result = maybe_constant_value (result, NULL_TREE, ! /*manifestly_const_eval=*/true); if (!TREE_CONSTANT (result)) result = error_mark_node; } diff -Nrcpad gcc-10.3.0/gcc/cp/coroutines.cc gcc-10.4.0/gcc/cp/coroutines.cc *** gcc-10.3.0/gcc/cp/coroutines.cc Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/cp/coroutines.cc Tue Jun 28 08:54:28 2022 *************** static bool coro_promise_type_found_p (t *** 82,92 **** struct GTY((for_user)) coroutine_info { tree function_decl; /* The original function decl. */ ! tree promise_type; /* The cached promise type for this function. */ ! tree handle_type; /* The cached coroutine handle for this function. */ ! tree self_h_proxy; /* A handle instance that is used as the proxy for the ! one that will eventually be allocated in the coroutine ! frame. */ tree promise_proxy; /* Likewise, a proxy promise instance. */ tree return_void; /* The expression for p.return_void() if it exists. */ location_t first_coro_keyword; /* The location of the keyword that made this --- 82,94 ---- struct GTY((for_user)) coroutine_info { tree function_decl; /* The original function decl. */ ! tree actor_decl; /* The synthesized actor function. */ ! tree destroy_decl; /* The synthesized destroy function. */ ! tree promise_type; /* The cached promise type for this function. */ ! tree handle_type; /* The cached coroutine handle for this function. */ ! tree self_h_proxy; /* A handle instance that is used as the proxy for the ! one that will eventually be allocated in the coroutine ! frame. */ tree promise_proxy; /* Likewise, a proxy promise instance. */ tree return_void; /* The expression for p.return_void() if it exists. */ location_t first_coro_keyword; /* The location of the keyword that made this *************** coro_promise_type_found_p (tree fndecl, *** 525,530 **** --- 527,572 ---- return true; } + /* Map from actor or destroyer to ramp. */ + static GTY(()) hash_map *to_ramp; + + /* Given a tree that is an actor or destroy, find the ramp function. */ + + tree + coro_get_ramp_function (tree decl) + { + if (!to_ramp) + return NULL_TREE; + tree *p = to_ramp->get (decl); + if (p) + return *p; + return NULL_TREE; + } + + /* Given the DECL for a ramp function (the user's original declaration) return + the actor function if it has been defined. */ + + tree + coro_get_actor_function (tree decl) + { + if (coroutine_info *info = get_coroutine_info (decl)) + return info->actor_decl; + + return NULL_TREE; + } + + /* Given the DECL for a ramp function (the user's original declaration) return + the destroy function if it has been defined. */ + + tree + coro_get_destroy_function (tree decl) + { + if (coroutine_info *info = get_coroutine_info (decl)) + return info->destroy_decl; + + return NULL_TREE; + } + /* These functions assumes that the caller has verified that the state for the decl has been initialized, we try to minimize work here. */ *************** build_actor_fn (location_t loc, tree cor *** 2179,2191 **** /* One param, the coro frame pointer. */ tree actor_fp = DECL_ARGUMENTS (actor); - /* A void return. */ - tree resdecl = build_decl (loc, RESULT_DECL, 0, void_type_node); - DECL_ARTIFICIAL (resdecl) = 1; - DECL_IGNORED_P (resdecl) = 1; - DECL_RESULT (actor) = resdecl; - DECL_COROUTINE_P (actor) = 1; - /* We have a definition here. */ TREE_STATIC (actor) = 1; --- 2221,2226 ---- *************** build_destroy_fn (location_t loc, tree c *** 2556,2570 **** /* One param, the coro frame pointer. */ tree destr_fp = DECL_ARGUMENTS (destroy); - /* A void return. */ - tree resdecl = build_decl (loc, RESULT_DECL, 0, void_type_node); - DECL_ARTIFICIAL (resdecl) = 1; - DECL_IGNORED_P (resdecl) = 1; - DECL_RESULT (destroy) = resdecl; - /* We have a definition here. */ TREE_STATIC (destroy) = 1; - DECL_COROUTINE_P (destroy) = 1; tree destr_outer = push_stmt_list (); current_stmt_tree ()->stmts_are_full_exprs_p = 1; --- 2591,2598 ---- *************** struct var_nest_node *** 2823,2829 **** : var(NULL_TREE), init(NULL_TREE), prev(NULL), next(NULL), then_cl(NULL), else_cl(NULL) {} var_nest_node (tree v, tree i, var_nest_node *p, var_nest_node *n) ! : var(v), init(i), prev(p), next(n) { if (p) p->next = this; --- 2851,2857 ---- : var(NULL_TREE), init(NULL_TREE), prev(NULL), next(NULL), then_cl(NULL), else_cl(NULL) {} var_nest_node (tree v, tree i, var_nest_node *p, var_nest_node *n) ! : var(v), init(i), prev(p), next(n), then_cl (NULL), else_cl (NULL) { if (p) p->next = this; *************** register_local_var_uses (tree *stmt, int *** 4027,4048 **** return NULL_TREE; } ! /* Build, return FUNCTION_DECL node with its coroutine frame pointer argument ! for either actor or destroy functions. */ static tree ! act_des_fn (tree orig, tree fn_type, tree coro_frame_ptr, const char* name) { ! tree fn_name = get_fn_local_identifier (orig, name); ! tree fn = build_lang_decl (FUNCTION_DECL, fn_name, fn_type); DECL_CONTEXT (fn) = DECL_CONTEXT (orig); DECL_ARTIFICIAL (fn) = true; DECL_INITIAL (fn) = error_mark_node; tree id = get_identifier ("frame_ptr"); tree fp = build_lang_decl (PARM_DECL, id, coro_frame_ptr); DECL_CONTEXT (fp) = fn; DECL_ARG_TYPE (fp) = type_passed_as (coro_frame_ptr); DECL_ARGUMENTS (fn) = fp; /* Copy selected attributes from the original function. */ TREE_USED (fn) = TREE_USED (orig); if (DECL_SECTION_NAME (orig)) --- 4055,4088 ---- return NULL_TREE; } ! /* Build, return FUNCTION_DECL node based on ORIG with a type FN_TYPE which has ! a single argument of type CORO_FRAME_PTR. Build the actor function if ! ACTOR_P is true, otherwise the destroy. */ static tree ! coro_build_actor_or_destroy_function (tree orig, tree fn_type, ! tree coro_frame_ptr, bool actor_p) { ! location_t loc = DECL_SOURCE_LOCATION (orig); ! tree fn ! = build_lang_decl (FUNCTION_DECL, copy_node (DECL_NAME (orig)), fn_type); ! ! /* Allow for locating the ramp (original) function from this one. */ ! if (!to_ramp) ! to_ramp = hash_map::create_ggc (10); ! to_ramp->put (fn, orig); ! DECL_CONTEXT (fn) = DECL_CONTEXT (orig); + DECL_SOURCE_LOCATION (fn) = loc; DECL_ARTIFICIAL (fn) = true; DECL_INITIAL (fn) = error_mark_node; + tree id = get_identifier ("frame_ptr"); tree fp = build_lang_decl (PARM_DECL, id, coro_frame_ptr); DECL_CONTEXT (fp) = fn; DECL_ARG_TYPE (fp) = type_passed_as (coro_frame_ptr); DECL_ARGUMENTS (fn) = fp; + /* Copy selected attributes from the original function. */ TREE_USED (fn) = TREE_USED (orig); if (DECL_SECTION_NAME (orig)) *************** act_des_fn (tree orig, tree fn_type, tre *** 4054,4059 **** --- 4094,4121 ---- DECL_USER_ALIGN (fn) = DECL_USER_ALIGN (orig); /* Apply attributes from the original fn. */ DECL_ATTRIBUTES (fn) = copy_list (DECL_ATTRIBUTES (orig)); + + /* A void return. */ + tree resdecl = build_decl (loc, RESULT_DECL, 0, void_type_node); + DECL_CONTEXT (resdecl) = fn; + DECL_ARTIFICIAL (resdecl) = 1; + DECL_IGNORED_P (resdecl) = 1; + DECL_RESULT (fn) = resdecl; + + /* This is a coroutine component. */ + DECL_COROUTINE_P (fn) = 1; + + /* Set up a means to find out if a decl is one of the helpers and, if so, + which one. */ + if (coroutine_info *info = get_coroutine_info (orig)) + { + gcc_checking_assert ((actor_p && info->actor_decl == NULL_TREE) + || info->destroy_decl == NULL_TREE); + if (actor_p) + info->actor_decl = fn; + else + info->destroy_decl = fn; + } return fn; } *************** coro_rewrite_function_body (location_t f *** 4089,4096 **** BIND_EXPR_BLOCK (first) = replace_blk; /* The top block has one child, so far, and we have now got a superblock. */ ! BLOCK_SUPERCONTEXT (block) = top_block; ! BLOCK_SUBBLOCKS (top_block) = block; } /* Wrap the function body in a try {} catch (...) {} block, if exceptions --- 4151,4158 ---- BIND_EXPR_BLOCK (first) = replace_blk; /* The top block has one child, so far, and we have now got a superblock. */ ! BLOCK_SUPERCONTEXT (replace_blk) = top_block; ! BLOCK_SUBBLOCKS (top_block) = replace_blk; } /* Wrap the function body in a try {} catch (...) {} block, if exceptions *************** morph_fn_to_coro (tree orig, tree *resum *** 4362,4369 **** tree act_des_fn_ptr = build_pointer_type (act_des_fn_type); /* Declare the actor and destroyer function. */ ! tree actor = act_des_fn (orig, act_des_fn_type, coro_frame_ptr, "actor"); ! tree destroy = act_des_fn (orig, act_des_fn_type, coro_frame_ptr, "destroy"); /* Construct the wrapped function body; we will analyze this to determine the requirements for the coroutine frame. */ --- 4424,4433 ---- tree act_des_fn_ptr = build_pointer_type (act_des_fn_type); /* Declare the actor and destroyer function. */ ! tree actor = coro_build_actor_or_destroy_function (orig, act_des_fn_type, ! coro_frame_ptr, true); ! tree destroy = coro_build_actor_or_destroy_function (orig, act_des_fn_type, ! coro_frame_ptr, false); /* Construct the wrapped function body; we will analyze this to determine the requirements for the coroutine frame. */ diff -Nrcpad gcc-10.3.0/gcc/cp/cp-gimplify.c gcc-10.4.0/gcc/cp/cp-gimplify.c *** gcc-10.3.0/gcc/cp/cp-gimplify.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/cp/cp-gimplify.c Tue Jun 28 08:54:28 2022 *************** gimplify_to_rvalue (tree *expr_p, gimple *** 674,679 **** --- 674,720 ---- return t; } + /* Like gimplify_arg, but if ORDERED is set (which should be set if + any of the arguments this argument is sequenced before has + TREE_SIDE_EFFECTS set, make sure expressions with is_gimple_reg_type type + are gimplified into SSA_NAME or a fresh temporary and for + non-is_gimple_reg_type we don't optimize away TARGET_EXPRs. */ + + static enum gimplify_status + cp_gimplify_arg (tree *arg_p, gimple_seq *pre_p, location_t call_location, + bool ordered) + { + enum gimplify_status t; + if (ordered + && !is_gimple_reg_type (TREE_TYPE (*arg_p)) + && TREE_CODE (*arg_p) == TARGET_EXPR) + { + /* gimplify_arg would strip away the TARGET_EXPR, but + that can mean we don't copy the argument and some following + argument with side-effect could modify it. */ + protected_set_expr_location (*arg_p, call_location); + return gimplify_expr (arg_p, pre_p, NULL, is_gimple_lvalue, fb_either); + } + else + { + t = gimplify_arg (arg_p, pre_p, call_location); + if (t == GS_ERROR) + return GS_ERROR; + else if (ordered + && is_gimple_reg_type (TREE_TYPE (*arg_p)) + && is_gimple_variable (*arg_p) + && TREE_CODE (*arg_p) != SSA_NAME + /* No need to force references into register, references + can't be modified. */ + && !TYPE_REF_P (TREE_TYPE (*arg_p)) + /* And this can't be modified either. */ + && *arg_p != current_class_ptr) + *arg_p = get_initialized_tmp_var (*arg_p, pre_p); + return t; + } + + } + /* Do C++-specific gimplification. Args are as for gimplify_expr. */ int *************** cp_gimplify_expr (tree *expr_p, gimple_s *** 888,894 **** gcc_assert (call_expr_nargs (*expr_p) == 2); gcc_assert (!CALL_EXPR_ORDERED_ARGS (*expr_p)); enum gimplify_status t ! = gimplify_arg (&CALL_EXPR_ARG (*expr_p, 1), pre_p, loc); if (t == GS_ERROR) ret = GS_ERROR; } --- 929,936 ---- gcc_assert (call_expr_nargs (*expr_p) == 2); gcc_assert (!CALL_EXPR_ORDERED_ARGS (*expr_p)); enum gimplify_status t ! = cp_gimplify_arg (&CALL_EXPR_ARG (*expr_p, 1), pre_p, loc, ! TREE_SIDE_EFFECTS (CALL_EXPR_ARG (*expr_p, 0))); if (t == GS_ERROR) ret = GS_ERROR; } *************** cp_gimplify_expr (tree *expr_p, gimple_s *** 897,906 **** /* Leave the last argument for gimplify_call_expr, to avoid problems with __builtin_va_arg_pack(). */ int nargs = call_expr_nargs (*expr_p) - 1; for (int i = 0; i < nargs; ++i) { enum gimplify_status t ! = gimplify_arg (&CALL_EXPR_ARG (*expr_p, i), pre_p, loc); if (t == GS_ERROR) ret = GS_ERROR; } --- 939,956 ---- /* Leave the last argument for gimplify_call_expr, to avoid problems with __builtin_va_arg_pack(). */ int nargs = call_expr_nargs (*expr_p) - 1; + int last_side_effects_arg = -1; + for (int i = nargs; i > 0; --i) + if (TREE_SIDE_EFFECTS (CALL_EXPR_ARG (*expr_p, i))) + { + last_side_effects_arg = i; + break; + } for (int i = 0; i < nargs; ++i) { enum gimplify_status t ! = cp_gimplify_arg (&CALL_EXPR_ARG (*expr_p, i), pre_p, loc, ! i < last_side_effects_arg); if (t == GS_ERROR) ret = GS_ERROR; } *************** cp_gimplify_expr (tree *expr_p, gimple_s *** 914,921 **** fntype = TREE_TYPE (fntype); if (TREE_CODE (fntype) == METHOD_TYPE) { enum gimplify_status t ! = gimplify_arg (&CALL_EXPR_ARG (*expr_p, 0), pre_p, loc); if (t == GS_ERROR) ret = GS_ERROR; } --- 964,980 ---- fntype = TREE_TYPE (fntype); if (TREE_CODE (fntype) == METHOD_TYPE) { + int nargs = call_expr_nargs (*expr_p); + bool side_effects = false; + for (int i = 1; i < nargs; ++i) + if (TREE_SIDE_EFFECTS (CALL_EXPR_ARG (*expr_p, i))) + { + side_effects = true; + break; + } enum gimplify_status t ! = cp_gimplify_arg (&CALL_EXPR_ARG (*expr_p, 0), pre_p, loc, ! side_effects); if (t == GS_ERROR) ret = GS_ERROR; } *************** cp_fold (tree x) *** 2723,2728 **** --- 2782,2813 ---- op0 = cp_fold_maybe_rvalue (TREE_OPERAND (x, 0), rval_ops); op1 = cp_fold_rvalue (TREE_OPERAND (x, 1)); + /* decltype(nullptr) has only one value, so optimize away all comparisons + with that type right away, keeping them in the IL causes troubles for + various optimizations. */ + if (COMPARISON_CLASS_P (org_x) + && TREE_CODE (TREE_TYPE (op0)) == NULLPTR_TYPE + && TREE_CODE (TREE_TYPE (op1)) == NULLPTR_TYPE) + { + switch (code) + { + case EQ_EXPR: + case LE_EXPR: + case GE_EXPR: + x = constant_boolean_node (true, TREE_TYPE (x)); + break; + case NE_EXPR: + case LT_EXPR: + case GT_EXPR: + x = constant_boolean_node (false, TREE_TYPE (x)); + break; + default: + gcc_unreachable (); + } + return omit_two_operands_loc (loc, TREE_TYPE (x), x, + op0, op1); + } + if (op0 != TREE_OPERAND (x, 0) || op1 != TREE_OPERAND (x, 1)) { if (op0 == error_mark_node || op1 == error_mark_node) diff -Nrcpad gcc-10.3.0/gcc/cp/cp-tree.h gcc-10.4.0/gcc/cp/cp-tree.h *** gcc-10.3.0/gcc/cp/cp-tree.h Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/cp/cp-tree.h Tue Jun 28 08:54:28 2022 *************** extern GTY(()) tree cp_global_trees[CPTI *** 464,469 **** --- 464,470 ---- IMPLICIT_CONV_EXPR_BRACED_INIT (in IMPLICIT_CONV_EXPR) TINFO_VAR_DECLARED_CONSTINIT (in TEMPLATE_INFO) CALL_FROM_NEW_OR_DELETE_P (in CALL_EXPR) + PACK_EXPANSION_AUTO_P (in *_PACK_EXPANSION) 3: (TREE_REFERENCE_EXPR) (in NON_LVALUE_EXPR) (commented-out). ICS_BAD_FLAG (in _CONV) FN_TRY_BLOCK_P (in TRY_BLOCK) *************** struct GTY(()) lang_decl { *** 3728,3733 **** --- 3729,3737 ---- /* True iff this pack expansion is for sizeof.... */ #define PACK_EXPANSION_SIZEOF_P(NODE) TREE_LANG_FLAG_1 (NODE) + /* True iff this pack expansion is for auto... in lambda init-capture. */ + #define PACK_EXPANSION_AUTO_P(NODE) TREE_LANG_FLAG_2 (NODE) + /* True iff the wildcard can match a template parameter pack. */ #define WILDCARD_PACK_P(NODE) TREE_LANG_FLAG_0 (NODE) *************** more_aggr_init_expr_args_p (const aggr_i *** 5024,5029 **** --- 5028,5048 ---- #define DECL_COROUTINE_P(NODE) \ (LANG_DECL_FN_CHECK (DECL_COMMON_CHECK (NODE))->coroutine_p) + /* For a FUNCTION_DECL of a coroutine, this holds the ACTOR helper function + decl. */ + #define DECL_ACTOR_FN(NODE) \ + (coro_get_actor_function ((NODE))) + + /* For a FUNCTION_DECL of a coroutine, this holds the DESTROY helper function + decl. */ + #define DECL_DESTROY_FN(NODE) \ + (coro_get_destroy_function ((NODE))) + + /* For a FUNCTION_DECL of a coroutine helper (ACTOR or DESTROY), this points + back to the original (ramp) function. */ + #define DECL_RAMP_FN(NODE) \ + (coro_get_ramp_function (NODE)) + /* True for an OMP_ATOMIC that has dependent parameters. These are stored as an expr in operand 1, and integer_zero_node or clauses in operand 0. */ #define OMP_ATOMIC_DEPENDENT_P(NODE) \ *************** extern GTY(()) vec *keyed_c *** 5459,5464 **** --- 5478,5484 ---- #ifndef NO_DOT_IN_LABEL #define JOINER '.' + #define JOIN_STR "." #define AUTO_TEMP_NAME "_.tmp_" #define VFIELD_BASE ".vf" *************** extern GTY(()) vec *keyed_c *** 5470,5475 **** --- 5490,5496 ---- #ifndef NO_DOLLAR_IN_LABEL #define JOINER '$' + #define JOIN_STR "$" #define AUTO_TEMP_NAME "_$tmp_" #define VFIELD_BASE "$vf" *************** extern GTY(()) vec *keyed_c *** 5478,5483 **** --- 5499,5506 ---- #else /* NO_DOLLAR_IN_LABEL */ + #define JOIN_STR "_" + #define VTABLE_NAME "__vt_" #define VTABLE_NAME_P(ID_NODE) \ (!strncmp (IDENTIFIER_POINTER (ID_NODE), VTABLE_NAME, \ *************** extern tree finish_co_yield_expr (locat *** 7988,7993 **** --- 8011,8019 ---- extern tree coro_validate_builtin_call (tree, tsubst_flags_t = tf_warning_or_error); extern bool morph_fn_to_coro (tree, tree *, tree *); + extern tree coro_get_actor_function (tree); + extern tree coro_get_destroy_function (tree); + extern tree coro_get_ramp_function (tree); /* Inline bodies. */ *************** is_constrained_auto (const_tree t) *** 8132,8137 **** --- 8158,8176 ---- return is_auto (t) && PLACEHOLDER_TYPE_CONSTRAINTS (t); } + /* True if CODE, a tree code, denotes a tree whose operand is not evaluated + as per [expr.context], i.e., an operand to sizeof, typeof, decltype, or + alignof. */ + + inline bool + unevaluated_p (tree_code code) + { + return (code == DECLTYPE_TYPE + || code == ALIGNOF_EXPR + || code == SIZEOF_EXPR + || code == NOEXCEPT_EXPR); + } + /* RAII class to push/pop class scope T; if T is not a class, do nothing. */ struct push_nested_class_guard diff -Nrcpad gcc-10.3.0/gcc/cp/cvt.c gcc-10.4.0/gcc/cp/cvt.c *** gcc-10.3.0/gcc/cp/cvt.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/cp/cvt.c Tue Jun 28 08:54:28 2022 *************** can_convert_qual (tree type, tree expr) *** 2004,2009 **** --- 2004,2014 ---- tree expr_type = TREE_TYPE (expr); gcc_assert (!same_type_p (type, expr_type)); + /* A function pointer conversion also counts as a Qualification Adjustment + under [over.ics.scs]. */ + if (fnptr_conv_p (type, expr_type)) + return true; + if (TYPE_PTR_P (type) && TYPE_PTR_P (expr_type)) return comp_ptr_ttypes (TREE_TYPE (type), TREE_TYPE (expr_type)); else if (TYPE_PTRMEM_P (type) && TYPE_PTRMEM_P (expr_type)) diff -Nrcpad gcc-10.3.0/gcc/cp/decl.c gcc-10.4.0/gcc/cp/decl.c *** gcc-10.3.0/gcc/cp/decl.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/cp/decl.c Tue Jun 28 08:54:28 2022 *************** start_decl (const cp_declarator *declara *** 5447,5453 **** && DECL_DECLARED_CONSTEXPR_P (current_function_decl)) { bool ok = false; ! if (CP_DECL_THREAD_LOCAL_P (decl)) error_at (DECL_SOURCE_LOCATION (decl), "%qD declared % in %qs function", decl, DECL_IMMEDIATE_FUNCTION_P (current_function_decl) --- 5447,5453 ---- && DECL_DECLARED_CONSTEXPR_P (current_function_decl)) { bool ok = false; ! if (CP_DECL_THREAD_LOCAL_P (decl) && !DECL_REALLY_EXTERN (decl)) error_at (DECL_SOURCE_LOCATION (decl), "%qD declared % in %qs function", decl, DECL_IMMEDIATE_FUNCTION_P (current_function_decl) *************** layout_var_decl (tree decl) *** 5837,5842 **** --- 5837,5874 ---- error_at (DECL_SOURCE_LOCATION (decl), "storage size of %qD isn%'t constant", decl); TREE_TYPE (decl) = error_mark_node; + type = error_mark_node; + } + } + + /* If the final element initializes a flexible array field, add the size of + that initializer to DECL's size. */ + if (type != error_mark_node + && DECL_INITIAL (decl) + && TREE_CODE (DECL_INITIAL (decl)) == CONSTRUCTOR + && !vec_safe_is_empty (CONSTRUCTOR_ELTS (DECL_INITIAL (decl))) + && DECL_SIZE (decl) != NULL_TREE + && TREE_CODE (DECL_SIZE (decl)) == INTEGER_CST + && TYPE_SIZE (type) != NULL_TREE + && TREE_CODE (TYPE_SIZE (type)) == INTEGER_CST + && tree_int_cst_equal (DECL_SIZE (decl), TYPE_SIZE (type))) + { + constructor_elt &elt = CONSTRUCTOR_ELTS (DECL_INITIAL (decl))->last (); + if (elt.index) + { + tree itype = TREE_TYPE (elt.index); + tree vtype = TREE_TYPE (elt.value); + if (TREE_CODE (itype) == ARRAY_TYPE + && TYPE_DOMAIN (itype) == NULL + && TREE_CODE (vtype) == ARRAY_TYPE + && COMPLETE_TYPE_P (vtype)) + { + DECL_SIZE (decl) + = size_binop (PLUS_EXPR, DECL_SIZE (decl), TYPE_SIZE (vtype)); + DECL_SIZE_UNIT (decl) + = size_binop (PLUS_EXPR, DECL_SIZE_UNIT (decl), + TYPE_SIZE_UNIT (vtype)); + } } } } *************** check_initializer (tree decl, tree init, *** 6844,6855 **** /* Declared constexpr or constinit, but no suitable initializer; massage init appropriately so we can pass it into store_init_value for the error. */ ! if (CLASS_TYPE_P (type) ! && (!init || TREE_CODE (init) == TREE_LIST)) { ! init = build_functional_cast (input_location, type, ! init, tf_none); ! if (TREE_CODE (init) == TARGET_EXPR) TARGET_EXPR_DIRECT_INIT_P (init) = true; } init_code = NULL_TREE; --- 6876,6894 ---- /* Declared constexpr or constinit, but no suitable initializer; massage init appropriately so we can pass it into store_init_value for the error. */ ! tree new_init = NULL_TREE; ! if (!processing_template_decl ! && TREE_CODE (init_code) == CALL_EXPR) ! new_init = build_cplus_new (type, init_code, tf_none); ! else if (CLASS_TYPE_P (type) ! && (!init || TREE_CODE (init) == TREE_LIST)) ! new_init = build_functional_cast (input_location, type, ! init, tf_none); ! if (new_init) { ! init = new_init; ! if (TREE_CODE (init) == TARGET_EXPR ! && !(flags & LOOKUP_ONLYCONVERTING)) TARGET_EXPR_DIRECT_INIT_P (init) = true; } init_code = NULL_TREE; *************** check_initializer (tree decl, tree init, *** 6904,6909 **** --- 6943,6952 ---- if (init && init != error_mark_node) init_code = build2 (INIT_EXPR, type, decl, init); + if (init_code && !TREE_SIDE_EFFECTS (init_code) + && init_code != error_mark_node) + init_code = NULL_TREE; + if (init_code) { /* We might have set these in cp_finish_decl. */ *************** cp_finish_decl (tree decl, tree init, bo *** 7489,7498 **** if (asmspec_tree && asmspec_tree != error_mark_node) asmspec = TREE_STRING_POINTER (asmspec_tree); ! if (current_class_type ! && CP_DECL_CONTEXT (decl) == current_class_type ! && TYPE_BEING_DEFINED (current_class_type) ! && !CLASSTYPE_TEMPLATE_INSTANTIATION (current_class_type) && (DECL_INITIAL (decl) || init)) DECL_INITIALIZED_IN_CLASS_P (decl) = 1; --- 7532,7544 ---- if (asmspec_tree && asmspec_tree != error_mark_node) asmspec = TREE_STRING_POINTER (asmspec_tree); ! bool in_class_decl ! = (current_class_type ! && CP_DECL_CONTEXT (decl) == current_class_type ! && TYPE_BEING_DEFINED (current_class_type) ! && !CLASSTYPE_TEMPLATE_INSTANTIATION (current_class_type)); ! ! if (in_class_decl && (DECL_INITIAL (decl) || init)) DECL_INITIALIZED_IN_CLASS_P (decl) = 1; *************** cp_finish_decl (tree decl, tree init, bo *** 7863,7868 **** --- 7909,7921 ---- if (!flag_weak) /* Check again now that we have an initializer. */ maybe_commonize_var (decl); + /* A class-scope constexpr variable with an out-of-class declaration. + C++17 makes them implicitly inline, but still force it out. */ + if (DECL_INLINE_VAR_P (decl) + && !DECL_VAR_DECLARED_INLINE_P (decl) + && !DECL_TEMPLATE_INSTANTIATION (decl) + && !in_class_decl) + mark_needed (decl); } if (var_definition_p *************** cp_finish_decl (tree decl, tree init, bo *** 7947,7953 **** { unsigned i; tree t; FOR_EACH_VEC_ELT (*cleanups, i, t) ! push_cleanup (decl, t, false); release_tree_vector (cleanups); } --- 8000,8006 ---- { unsigned i; tree t; FOR_EACH_VEC_ELT (*cleanups, i, t) ! push_cleanup (NULL_TREE, t, false); release_tree_vector (cleanups); } diff -Nrcpad gcc-10.3.0/gcc/cp/decl2.c gcc-10.4.0/gcc/cp/decl2.c *** gcc-10.3.0/gcc/cp/decl2.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/cp/decl2.c Tue Jun 28 08:54:28 2022 *************** c_parse_final_cleanups (void) *** 5054,5059 **** --- 5054,5060 ---- if (!DECL_EXTERNAL (decl) && decl_needed_p (decl) && !TREE_ASM_WRITTEN (decl) + && !DECL_IMMEDIATE_FUNCTION_P (decl) && !node->definition) { /* We will output the function; no longer consider it in this *************** mark_used (tree decl, tsubst_flags_t com *** 5514,5519 **** --- 5515,5521 ---- used_types_insert (DECL_CONTEXT (decl)); if (TREE_CODE (decl) == FUNCTION_DECL + && !DECL_DELETED_FN (decl) && !maybe_instantiate_noexcept (decl, complain)) return false; diff -Nrcpad gcc-10.3.0/gcc/cp/except.c gcc-10.4.0/gcc/cp/except.c *** gcc-10.3.0/gcc/cp/except.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/cp/except.c Tue Jun 28 08:54:28 2022 *************** check_handlers (tree handlers) *** 1103,1114 **** expression whose type is a polymorphic class type (10.3). */ static tree ! check_noexcept_r (tree *tp, int * /*walk_subtrees*/, void * /*data*/) { tree t = *tp; enum tree_code code = TREE_CODE (t); ! if ((code == CALL_EXPR && CALL_EXPR_FN (t)) ! || code == AGGR_INIT_EXPR) { /* We can only use the exception specification of the called function for determining the value of a noexcept expression; we can't use --- 1103,1117 ---- expression whose type is a polymorphic class type (10.3). */ static tree ! check_noexcept_r (tree *tp, int *walk_subtrees, void *) { tree t = *tp; enum tree_code code = TREE_CODE (t); ! ! if (unevaluated_p (code)) ! *walk_subtrees = false; ! else if ((code == CALL_EXPR && CALL_EXPR_FN (t)) ! || code == AGGR_INIT_EXPR) { /* We can only use the exception specification of the called function for determining the value of a noexcept expression; we can't use diff -Nrcpad gcc-10.3.0/gcc/cp/expr.c gcc-10.4.0/gcc/cp/expr.c *** gcc-10.3.0/gcc/cp/expr.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/cp/expr.c Tue Jun 28 08:54:28 2022 *************** mark_use (tree expr, bool rvalue_p, bool *** 226,242 **** a volatile-qualified type is deprecated unless the assignment is either a discarded-value expression or appears in an unevaluated context." */ ! if (read_p ! && !cp_unevaluated_operand && (TREE_THIS_VOLATILE (lhs) || CP_TYPE_VOLATILE_P (TREE_TYPE (lhs))) && !TREE_THIS_VOLATILE (expr)) { ! warning_at (location_of (expr), OPT_Wvolatile, ! "using value of simple assignment with %-" ! "qualified left operand is deprecated"); ! /* Make sure not to warn about this assignment again. */ ! TREE_THIS_VOLATILE (expr) = true; } break; } --- 226,242 ---- a volatile-qualified type is deprecated unless the assignment is either a discarded-value expression or appears in an unevaluated context." */ ! if (!cp_unevaluated_operand && (TREE_THIS_VOLATILE (lhs) || CP_TYPE_VOLATILE_P (TREE_TYPE (lhs))) && !TREE_THIS_VOLATILE (expr)) { ! if (warning_at (location_of (expr), OPT_Wvolatile, ! "using value of simple assignment with " ! "%-qualified left operand is " ! "deprecated")) ! /* Make sure not to warn about this assignment again. */ ! TREE_THIS_VOLATILE (expr) = true; } break; } diff -Nrcpad gcc-10.3.0/gcc/cp/init.c gcc-10.4.0/gcc/cp/init.c *** gcc-10.3.0/gcc/cp/init.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/cp/init.c Tue Jun 28 08:54:28 2022 *************** get_nsdmi (tree member, bool in_ctor, ts *** 585,600 **** bool pushed = false; tree ctx = DECL_CONTEXT (member); ! if (!currently_open_class (ctx) ! && !LOCAL_CLASS_P (ctx)) { ! push_to_top_level (); push_nested_class (ctx); pushed = true; } - gcc_checking_assert (!processing_template_decl); - inject_this_parameter (ctx, TYPE_UNQUALIFIED); start_lambda_scope (member); --- 585,605 ---- 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; } inject_this_parameter (ctx, TYPE_UNQUALIFIED); start_lambda_scope (member); *************** get_nsdmi (tree member, bool in_ctor, ts *** 615,622 **** if (pushed) { pop_nested_class (); ! pop_from_top_level (); } input_location = sloc; --- 620,629 ---- if (pushed) { + pop_deferring_access_checks (); pop_nested_class (); ! if (!LOCAL_CLASS_P (ctx)) ! pop_from_top_level (); } input_location = sloc; *************** perform_member_init (tree member, tree i *** 881,887 **** init = build2 (INIT_EXPR, type, decl, init); finish_expr_stmt (init); FOR_EACH_VEC_ELT (*cleanups, i, t) ! push_cleanup (decl, t, false); } else if (type_build_ctor_call (type) || (init && CLASS_TYPE_P (strip_array_types (type)))) --- 888,894 ---- init = build2 (INIT_EXPR, type, decl, init); finish_expr_stmt (init); FOR_EACH_VEC_ELT (*cleanups, i, t) ! push_cleanup (NULL_TREE, t, false); } else if (type_build_ctor_call (type) || (init && CLASS_TYPE_P (strip_array_types (type)))) *************** std_placement_new_fn_p (tree alloc_fn) *** 2868,2900 **** } /* For element type ELT_TYPE, return the appropriate type of the heap object ! containing such element(s). COOKIE_SIZE is NULL or the size of cookie ! in bytes. FULL_SIZE is NULL if it is unknown how big the heap allocation ! will be, otherwise size of the heap object. If COOKIE_SIZE is NULL, ! return array type ELT_TYPE[FULL_SIZE / sizeof(ELT_TYPE)], otherwise return struct { size_t[COOKIE_SIZE/sizeof(size_t)]; ELT_TYPE[N]; } ! where N is nothing (flexible array member) if FULL_SIZE is NULL, otherwise ! it is computed such that the size of the struct fits into FULL_SIZE. */ tree ! build_new_constexpr_heap_type (tree elt_type, tree cookie_size, tree full_size) { ! gcc_assert (cookie_size == NULL_TREE || tree_fits_uhwi_p (cookie_size)); ! gcc_assert (full_size == NULL_TREE || tree_fits_uhwi_p (full_size)); ! unsigned HOST_WIDE_INT csz = cookie_size ? tree_to_uhwi (cookie_size) : 0; ! tree itype2 = NULL_TREE; ! if (full_size) ! { ! unsigned HOST_WIDE_INT fsz = tree_to_uhwi (full_size); ! gcc_assert (fsz >= csz); ! fsz -= csz; ! fsz /= int_size_in_bytes (elt_type); ! itype2 = build_index_type (size_int (fsz - 1)); ! if (!cookie_size) ! return build_cplus_array_type (elt_type, itype2); ! } ! else ! gcc_assert (cookie_size); csz /= int_size_in_bytes (sizetype); tree itype1 = build_index_type (size_int (csz - 1)); tree atype1 = build_cplus_array_type (sizetype, itype1); --- 2875,2891 ---- } /* For element type ELT_TYPE, return the appropriate type of the heap object ! containing such element(s). COOKIE_SIZE is the size of cookie in bytes. ! Return struct { size_t[COOKIE_SIZE/sizeof(size_t)]; ELT_TYPE[N]; } ! where N is nothing (flexible array member) if ITYPE2 is NULL, otherwise ! the array has ITYPE2 as its TYPE_DOMAIN. */ tree ! build_new_constexpr_heap_type (tree elt_type, tree cookie_size, tree itype2) { ! gcc_assert (tree_fits_uhwi_p (cookie_size)); ! unsigned HOST_WIDE_INT csz = tree_to_uhwi (cookie_size); csz /= int_size_in_bytes (sizetype); tree itype1 = build_index_type (size_int (csz - 1)); tree atype1 = build_cplus_array_type (sizetype, itype1); *************** build_new_1 (vec **placemen *** 3238,3244 **** tree align_arg = NULL_TREE; if (type_has_new_extended_alignment (elt_type)) ! align_arg = build_int_cst (align_type_node, TYPE_ALIGN_UNIT (elt_type)); alloc_fn = NULL_TREE; --- 3229,3241 ---- tree align_arg = NULL_TREE; if (type_has_new_extended_alignment (elt_type)) ! { ! unsigned align = TYPE_ALIGN_UNIT (elt_type); ! /* Also consider the alignment of the cookie, if any. */ ! if (array_p && TYPE_VEC_NEW_USES_COOKIE (elt_type)) ! align = MAX (align, TYPE_ALIGN_UNIT (size_type_node)); ! align_arg = build_int_cst (align_type_node, align); ! } alloc_fn = NULL_TREE; *************** build_new_1 (vec **placemen *** 3340,3345 **** --- 3337,3348 ---- outer_nelts_check = NULL_TREE; } + /* If size is zero e.g. due to type having zero size, try to + preserve outer_nelts for constant expression evaluation + purposes. */ + if (integer_zerop (size) && outer_nelts) + size = build2 (MULT_EXPR, TREE_TYPE (size), size, outer_nelts); + alloc_call = build_operator_new_call (fnname, placement, &size, &cookie_size, align_arg, outer_nelts_check, *************** build_new_1 (vec **placemen *** 3418,3435 **** if (TREE_CODE (alloc_call_expr) == CALL_EXPR) CALL_FROM_NEW_OR_DELETE_P (alloc_call_expr) = 1; if (cookie_size) ! alloc_call = maybe_wrap_new_for_constexpr (alloc_call, elt_type, cookie_size); /* In the simple case, we can stop now. */ pointer_type = build_pointer_type (type); if (!cookie_size && !is_initialized) ! return build_nop (pointer_type, alloc_call); /* Store the result of the allocation call in a variable so that we can use it more than once. */ ! alloc_expr = get_target_expr (alloc_call); alloc_node = TARGET_EXPR_SLOT (alloc_expr); /* Strip any COMPOUND_EXPRs from ALLOC_CALL. */ --- 3421,3439 ---- if (TREE_CODE (alloc_call_expr) == CALL_EXPR) CALL_FROM_NEW_OR_DELETE_P (alloc_call_expr) = 1; + alloc_expr = alloc_call; if (cookie_size) ! alloc_expr = maybe_wrap_new_for_constexpr (alloc_call, type, cookie_size); /* In the simple case, we can stop now. */ pointer_type = build_pointer_type (type); if (!cookie_size && !is_initialized) ! return build_nop (pointer_type, alloc_expr); /* Store the result of the allocation call in a variable so that we can use it more than once. */ ! alloc_expr = get_target_expr (alloc_expr); alloc_node = TARGET_EXPR_SLOT (alloc_expr); /* Strip any COMPOUND_EXPRs from ALLOC_CALL. */ *************** build_vec_init (tree base, tree maxindex *** 4332,4337 **** --- 4336,4349 ---- else ptype = atype; + if (integer_all_onesp (maxindex)) + { + /* Shortcut zero element case to avoid unneeded constructor synthesis. */ + if (init && TREE_SIDE_EFFECTS (init)) + base = build2 (COMPOUND_EXPR, ptype, init, base); + return base; + } + /* The code we are generating looks like: ({ T* t1 = (T*) base; diff -Nrcpad gcc-10.3.0/gcc/cp/lambda.c gcc-10.4.0/gcc/cp/lambda.c *** gcc-10.3.0/gcc/cp/lambda.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/cp/lambda.c Tue Jun 28 08:54:28 2022 *************** lambda_function (tree lambda) *** 202,207 **** --- 202,225 ---- return lambda; } + /* True if EXPR is an expression whose type can be used directly in lambda + capture. Not to be used for 'auto'. */ + + static bool + type_deducible_expression_p (tree expr) + { + if (!type_dependent_expression_p (expr)) + return true; + if (BRACE_ENCLOSED_INITIALIZER_P (expr) + || TREE_CODE (expr) == EXPR_PACK_EXPANSION) + return false; + tree t = non_reference (TREE_TYPE (expr)); + if (!t) return false; + while (TREE_CODE (t) == POINTER_TYPE) + t = TREE_TYPE (t); + return currently_open_class (t); + } + /* Returns the type to use for the FIELD_DECL corresponding to the capture of EXPR. EXPLICIT_INIT_P indicates whether this is a C++14 init capture, and BY_REFERENCE_P indicates whether we're *************** lambda_capture_field_type (tree expr, bo *** 228,234 **** else type = do_auto_deduction (type, expr, auto_node); } ! else if (!is_this && type_dependent_expression_p (expr)) { type = cxx_make_type (DECLTYPE_TYPE); DECLTYPE_TYPE_EXPR (type) = expr; --- 246,252 ---- else type = do_auto_deduction (type, expr, auto_node); } ! else if (!is_this && !type_deducible_expression_p (expr)) { type = cxx_make_type (DECLTYPE_TYPE); DECLTYPE_TYPE_EXPR (type) = expr; *************** add_capture (tree lambda, tree id, tree *** 607,614 **** parameter pack in this context. We will want as many fields as we have elements in the expansion of the initializer, so use its packs instead. */ ! PACK_EXPANSION_PARAMETER_PACKS (type) ! = uses_parameter_packs (initializer); } /* Make member variable. */ --- 625,635 ---- parameter pack in this context. We will want as many fields as we have elements in the expansion of the initializer, so use its packs instead. */ ! { ! PACK_EXPANSION_PARAMETER_PACKS (type) ! = uses_parameter_packs (initializer); ! PACK_EXPANSION_AUTO_P (type) = true; ! } } /* Make member variable. */ *************** lambda_expr_this_capture (tree lambda, i *** 740,745 **** --- 761,767 ---- { tree lambda_stack = NULL_TREE; tree init = NULL_TREE; + bool saw_complete = false; /* If we are in a lambda function, we can move out until we hit: 1. a non-lambda function or NSDMI, *************** lambda_expr_this_capture (tree lambda, i *** 758,763 **** --- 780,790 ---- lambda_stack); tree closure = LAMBDA_EXPR_CLOSURE (tlambda); + if (COMPLETE_TYPE_P (closure)) + /* We're instantiating a generic lambda op(), the containing + scope may be gone. */ + saw_complete = true; + tree containing_function = decl_function_context (TYPE_NAME (closure)); *************** lambda_expr_this_capture (tree lambda, i *** 767,773 **** /* Lambda in an NSDMI. We don't have a function to look up 'this' in, but we can find (or rebuild) the fake one from inject_this_parameter. */ ! if (!containing_function && !COMPLETE_TYPE_P (closure)) /* If we're parsing a lambda in a non-local class, we can find the fake 'this' in scope_chain. */ init = scope_chain->x_current_class_ptr; --- 794,800 ---- /* Lambda in an NSDMI. We don't have a function to look up 'this' in, but we can find (or rebuild) the fake one from inject_this_parameter. */ ! if (!containing_function && !saw_complete) /* If we're parsing a lambda in a non-local class, we can find the fake 'this' in scope_chain. */ init = scope_chain->x_current_class_ptr; diff -Nrcpad gcc-10.3.0/gcc/cp/mangle.c gcc-10.4.0/gcc/cp/mangle.c *** gcc-10.3.0/gcc/cp/mangle.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/cp/mangle.c Tue Jun 28 08:54:28 2022 *************** write_encoding (const tree decl) *** 847,852 **** --- 847,864 ---- write_bare_function_type (fn_type, mangle_return_type_p (decl), d); + + /* If this is a coroutine helper, then append an appropriate string to + identify which. */ + if (tree ramp = DECL_RAMP_FN (decl)) + { + if (DECL_ACTOR_FN (ramp) == decl) + write_string (JOIN_STR "actor"); + else if (DECL_DESTROY_FN (ramp) == decl) + write_string (JOIN_STR "destroy"); + else + gcc_unreachable (); + } } } *************** write_unqualified_name (tree decl) *** 1383,1391 **** } else if (DECL_OVERLOADED_OPERATOR_P (decl)) { const char *mangled_name ! = (ovl_op_info[DECL_ASSIGNMENT_OPERATOR_P (decl)] ! [DECL_OVERLOADED_OPERATOR_CODE_RAW (decl)].mangled_name); write_string (mangled_name); } else if (UDLIT_OPER_P (DECL_NAME (decl))) --- 1395,1406 ---- } else if (DECL_OVERLOADED_OPERATOR_P (decl)) { + tree t; + if (!(t = DECL_RAMP_FN (decl))) + t = decl; const char *mangled_name ! = (ovl_op_info[DECL_ASSIGNMENT_OPERATOR_P (t)] ! [DECL_OVERLOADED_OPERATOR_CODE_RAW (t)].mangled_name); write_string (mangled_name); } else if (UDLIT_OPER_P (DECL_NAME (decl))) *************** write_literal_operator_name (tree identi *** 1589,1594 **** --- 1604,1610 ---- static void write_compact_number (int num) { + gcc_checking_assert (num >= 0); if (num > 0) write_unsigned_number (num - 1); write_char ('_'); *************** write_local_name (tree function, const t *** 1988,2002 **** /* For this purpose, parameters are numbered from right-to-left. */ if (parm) { ! tree t; ! int i = 0; ! for (t = DECL_ARGUMENTS (function); t; t = DECL_CHAIN (t)) ! { ! if (t == parm) ! i = 1; ! else if (i) ! ++i; ! } write_char ('d'); write_compact_number (i - 1); } --- 2004,2010 ---- /* For this purpose, parameters are numbered from right-to-left. */ if (parm) { ! int i = list_length (parm); write_char ('d'); write_compact_number (i - 1); } diff -Nrcpad gcc-10.3.0/gcc/cp/method.c gcc-10.4.0/gcc/cp/method.c *** gcc-10.3.0/gcc/cp/method.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/cp/method.c Tue Jun 28 08:54:28 2022 *************** constructible_expr (tree to, tree from) *** 1877,1882 **** --- 1877,1883 ---- static tree is_xible_helper (enum tree_code code, tree to, tree from, bool trivial) { + to = complete_type (to); deferring_access_check_sentinel acs (dk_no_deferred); if (VOID_TYPE_P (to) || ABSTRACT_CLASS_TYPE_P (to) || (from && FUNC_OR_METHOD_TYPE_P (from) *************** defaulted_late_check (tree fn) *** 2934,2940 **** /* If the function was declared constexpr, check that the definition qualifies. Otherwise we can define the function lazily. */ if (DECL_DECLARED_CONSTEXPR_P (fn) && !DECL_INITIAL (fn)) ! synthesize_method (fn); return; } --- 2935,2946 ---- /* If the function was declared constexpr, check that the definition qualifies. Otherwise we can define the function lazily. */ if (DECL_DECLARED_CONSTEXPR_P (fn) && !DECL_INITIAL (fn)) ! { ! /* Prevent GC. */ ! function_depth++; ! synthesize_method (fn); ! function_depth--; ! } return; } diff -Nrcpad gcc-10.3.0/gcc/cp/name-lookup.c gcc-10.4.0/gcc/cp/name-lookup.c *** gcc-10.3.0/gcc/cp/name-lookup.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/cp/name-lookup.c Tue Jun 28 08:54:28 2022 *************** check_local_shadow (tree decl) *** 2762,2767 **** --- 2762,2771 ---- enum opt_code warning_code; if (warn_shadow) warning_code = OPT_Wshadow; + else if ((TREE_CODE (decl) == TYPE_DECL) + ^ (TREE_CODE (old) == TYPE_DECL)) + /* If exactly one is a type, they aren't compatible. */ + warning_code = OPT_Wshadow_local; else if ((TREE_TYPE (old) && TREE_TYPE (decl) && same_type_p (TREE_TYPE (old), TREE_TYPE (decl))) *************** check_local_shadow (tree decl) *** 2802,2808 **** /* Don't warn for artificial things that are not implicit typedefs. */ if (DECL_ARTIFICIAL (decl) && !DECL_IMPLICIT_TYPEDEF_P (decl)) return; ! if (nonlambda_method_basetype ()) if (tree member = lookup_member (current_nonlambda_class_type (), DECL_NAME (decl), /*protect=*/0, --- 2806,2812 ---- /* Don't warn for artificial things that are not implicit typedefs. */ if (DECL_ARTIFICIAL (decl) && !DECL_IMPLICIT_TYPEDEF_P (decl)) return; ! if (nonlambda_method_basetype ()) if (tree member = lookup_member (current_nonlambda_class_type (), DECL_NAME (decl), /*protect=*/0, *************** check_local_shadow (tree decl) *** 2814,2821 **** is a function or a pointer-to-function. */ if (!OVL_P (member) || TREE_CODE (decl) == FUNCTION_DECL ! || TYPE_PTRFN_P (TREE_TYPE (decl)) ! || TYPE_PTRMEMFUNC_P (TREE_TYPE (decl))) { auto_diagnostic_group d; if (warning_at (DECL_SOURCE_LOCATION (decl), OPT_Wshadow, --- 2818,2826 ---- is a function or a pointer-to-function. */ if (!OVL_P (member) || TREE_CODE (decl) == FUNCTION_DECL ! || (TREE_TYPE (decl) ! && (TYPE_PTRFN_P (TREE_TYPE (decl)) ! || TYPE_PTRMEMFUNC_P (TREE_TYPE (decl))))) { auto_diagnostic_group d; if (warning_at (DECL_SOURCE_LOCATION (decl), OPT_Wshadow, diff -Nrcpad gcc-10.3.0/gcc/cp/parser.c gcc-10.4.0/gcc/cp/parser.c *** gcc-10.3.0/gcc/cp/parser.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/cp/parser.c Tue Jun 28 08:54:28 2022 *************** cp_parser_postfix_expression (cp_parser *** 7162,7169 **** } /* Look for the closing `)'. */ parens.require_close (parser); ! return cp_build_vec_convert (expression, type_location, type, ! tf_warning_or_error); } default: --- 7162,7171 ---- } /* Look for the closing `)'. */ parens.require_close (parser); ! postfix_expression ! = cp_build_vec_convert (expression, type_location, type, ! tf_warning_or_error); ! break; } default: *************** cp_parser_explicit_specialization (cp_pa *** 17631,17636 **** --- 17633,17643 ---- --parser->num_template_parameter_lists; } + /* Preserve the attributes across a garbage collect (by making it a GC + root), which can occur when parsing a member function. */ + + static GTY(()) vec *cp_parser_decl_specs_attrs; + /* Parse a type-specifier. type-specifier: *************** cp_parser_type_specifier (cp_parser* par *** 17723,17730 **** --- 17730,17741 ---- /* Parse tentatively so that we can back up if we don't find a class-specifier. */ cp_parser_parse_tentatively (parser); + if (decl_specs->attributes) + vec_safe_push (cp_parser_decl_specs_attrs, decl_specs->attributes); /* Look for the class-specifier. */ type_spec = cp_parser_class_specifier (parser); + if (decl_specs->attributes) + cp_parser_decl_specs_attrs->pop (); invoke_plugin_callbacks (PLUGIN_FINISH_TYPE, type_spec); /* If that worked, we're done. */ if (cp_parser_parse_definitely (parser)) *************** cp_parser_class_specifier_1 (cp_parser* *** 24091,24121 **** maybe_end_member_template_processing (); } vec_safe_truncate (unparsed_funs_with_default_args, 0); - /* Now parse any NSDMIs. */ - save_ccp = current_class_ptr; - save_ccr = current_class_ref; - FOR_EACH_VEC_SAFE_ELT (unparsed_nsdmis, ix, decl) - { - if (class_type != DECL_CONTEXT (decl)) - { - if (pushed_scope) - pop_scope (pushed_scope); - class_type = DECL_CONTEXT (decl); - pushed_scope = push_scope (class_type); - } - inject_this_parameter (class_type, TYPE_UNQUALIFIED); - cp_parser_late_parsing_nsdmi (parser, decl); - } - vec_safe_truncate (unparsed_nsdmis, 0); - current_class_ptr = save_ccp; - current_class_ref = save_ccr; - if (pushed_scope) - pop_scope (pushed_scope); /* If there are noexcept-specifiers that have not yet been processed, ! take care of them now. */ ! class_type = NULL_TREE; ! pushed_scope = NULL_TREE; FOR_EACH_VEC_SAFE_ELT (unparsed_noexcepts, ix, decl) { tree ctx = DECL_CONTEXT (decl); --- 24102,24111 ---- maybe_end_member_template_processing (); } vec_safe_truncate (unparsed_funs_with_default_args, 0); /* If there are noexcept-specifiers that have not yet been processed, ! take care of them now. Do this before processing NSDMIs as they ! may depend on noexcept-specifiers already having been processed. */ FOR_EACH_VEC_SAFE_ELT (unparsed_noexcepts, ix, decl) { tree ctx = DECL_CONTEXT (decl); *************** cp_parser_class_specifier_1 (cp_parser* *** 24163,24168 **** --- 24153,24177 ---- maybe_end_member_template_processing (); } vec_safe_truncate (unparsed_noexcepts, 0); + + /* Now parse any NSDMIs. */ + save_ccp = current_class_ptr; + save_ccr = current_class_ref; + FOR_EACH_VEC_SAFE_ELT (unparsed_nsdmis, ix, decl) + { + if (class_type != DECL_CONTEXT (decl)) + { + if (pushed_scope) + pop_scope (pushed_scope); + class_type = DECL_CONTEXT (decl); + pushed_scope = push_scope (class_type); + } + inject_this_parameter (class_type, TYPE_UNQUALIFIED); + cp_parser_late_parsing_nsdmi (parser, decl); + } + vec_safe_truncate (unparsed_nsdmis, 0); + current_class_ptr = save_ccp; + current_class_ref = save_ccr; if (pushed_scope) pop_scope (pushed_scope); *************** cp_parser_member_declaration (cp_parser* *** 25430,25437 **** || !DECL_DECLARES_FUNCTION_P (decl)) finish_member_declaration (decl); ! if (TREE_CODE (decl) == FUNCTION_DECL) ! cp_parser_save_default_args (parser, decl); else if (TREE_CODE (decl) == FIELD_DECL && DECL_INITIAL (decl)) /* Add DECL to the queue of NSDMI to be parsed later. */ --- 25439,25446 ---- || !DECL_DECLARES_FUNCTION_P (decl)) finish_member_declaration (decl); ! if (DECL_DECLARES_FUNCTION_P (decl)) ! cp_parser_save_default_args (parser, STRIP_TEMPLATE (decl)); else if (TREE_CODE (decl) == FIELD_DECL && DECL_INITIAL (decl)) /* Add DECL to the queue of NSDMI to be parsed later. */ *************** cp_parser_template_introduction (cp_pars *** 29209,29217 **** --- 29218,29232 ---- tree saved_scope = parser->scope; tree saved_object_scope = parser->object_scope; tree saved_qualifying_scope = parser->qualifying_scope; + bool saved_colon_corrects_to_scope_p = parser->colon_corrects_to_scope_p; cp_token *start_token = cp_lexer_peek_token (parser->lexer); + /* In classes don't parse valid unnamed bitfields as invalid + template introductions. */ + if (member_p) + parser->colon_corrects_to_scope_p = false; + /* Look for the optional `::' operator. */ cp_parser_global_scope_opt (parser, /*current_scope_valid_p=*/false); *************** cp_parser_template_introduction (cp_pars *** 29232,29237 **** --- 29247,29253 ---- parser->scope = saved_scope; parser->object_scope = saved_object_scope; parser->qualifying_scope = saved_qualifying_scope; + parser->colon_corrects_to_scope_p = saved_colon_corrects_to_scope_p; if (concept_name == error_mark_node || (seen_error () && !concept_definition_p (tmpl_decl))) diff -Nrcpad gcc-10.3.0/gcc/cp/pt.c gcc-10.4.0/gcc/cp/pt.c *** gcc-10.3.0/gcc/cp/pt.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/cp/pt.c Tue Jun 28 08:54:28 2022 *************** static GTY(()) struct pending_template * *** 63,69 **** int processing_template_parmlist; static int template_header_count; - static GTY(()) tree saved_trees; static vec inline_parm_levels; static GTY(()) struct tinst_level *current_tinst_level; --- 63,68 ---- *************** maybe_process_partial_specialization (tr *** 977,982 **** --- 976,985 ---- if (CLASS_TYPE_P (type) && CLASSTYPE_LAMBDA_EXPR (type)) return type; + /* An injected-class-name is not a specialization. */ + if (DECL_SELF_REFERENCE_P (TYPE_NAME (type))) + return type; + if (TREE_CODE (type) == BOUND_TEMPLATE_TEMPLATE_PARM) { error ("name of class shadows template template parameter %qD", *************** get_underlying_template (tree tmpl) *** 6516,6521 **** --- 6519,6528 ---- != num_innermost_template_parms (underlying))) break; + /* Does the alias add cv-quals? */ + if (TYPE_QUALS (TREE_TYPE (underlying)) != TYPE_QUALS (TREE_TYPE (tmpl))) + break; + tree alias_args = INNERMOST_TEMPLATE_ARGS (generic_targs_for (tmpl)); if (!comp_template_args (TI_ARGS (tinfo), alias_args)) break; *************** instantiate_class_template_1 (tree type) *** 11762,11767 **** --- 11769,11777 ---- class, except we also need to push the enclosing classes. */ push_nested_class (type); + /* A vector to hold members marked with attribute used. */ + auto_vec used; + /* Now members are processed in the order of declaration. */ for (member = CLASSTYPE_DECL_LIST (pattern); member; member = TREE_CHAIN (member)) *************** instantiate_class_template_1 (tree type) *** 11839,11845 **** finish_member_declaration (r); /* Instantiate members marked with attribute used. */ if (r != error_mark_node && DECL_PRESERVE_P (r)) ! mark_used (r); if (TREE_CODE (r) == FUNCTION_DECL && DECL_OMP_DECLARE_REDUCTION_P (r)) cp_check_omp_declare_reduction (r); --- 11849,11855 ---- finish_member_declaration (r); /* Instantiate members marked with attribute used. */ if (r != error_mark_node && DECL_PRESERVE_P (r)) ! used.safe_push (r); if (TREE_CODE (r) == FUNCTION_DECL && DECL_OMP_DECLARE_REDUCTION_P (r)) cp_check_omp_declare_reduction (r); *************** instantiate_class_template_1 (tree type) *** 11917,11923 **** /*flags=*/0); /* Instantiate members marked with attribute used. */ if (r != error_mark_node && DECL_PRESERVE_P (r)) ! mark_used (r); } else if (TREE_CODE (r) == FIELD_DECL) { --- 11927,11933 ---- /*flags=*/0); /* Instantiate members marked with attribute used. */ if (r != error_mark_node && DECL_PRESERVE_P (r)) ! used.safe_push (r); } else if (TREE_CODE (r) == FIELD_DECL) { *************** instantiate_class_template_1 (tree type) *** 12130,12135 **** --- 12140,12152 ---- if (TYPE_CONTAINS_VPTR_P (type) && CLASSTYPE_KEY_METHOD (type)) vec_safe_push (keyed_classes, type); + /* Now that we've gone through all the members, instantiate those + marked with attribute used. */ + unsigned int i; + tree x; + FOR_EACH_VEC_ELT (used, i, x) + mark_used (x); + return type; } *************** use_pack_expansion_extra_args_p (tree pa *** 12301,12309 **** return false; } - bool has_expansion_arg = false; for (int i = 0 ; i < arg_pack_len; ++i) { bool has_non_expansion_arg = false; for (tree parm_pack = parm_packs; parm_pack; --- 12318,12326 ---- return false; } for (int i = 0 ; i < arg_pack_len; ++i) { + bool has_expansion_arg = false; bool has_non_expansion_arg = false; for (tree parm_pack = parm_packs; parm_pack; *************** use_pack_expansion_extra_args_p (tree pa *** 12323,12329 **** } if (has_expansion_arg && has_non_expansion_arg) ! return true; } return false; } --- 12340,12349 ---- } if (has_expansion_arg && has_non_expansion_arg) ! { ! gcc_checking_assert (false); ! return true; ! } } return false; } *************** tsubst_binary_right_fold (tree t, tree a *** 12663,12669 **** --- 12683,12693 ---- class el_data { public: + /* Set of variables declared within the pattern. */ hash_set internal; + /* Set of AST nodes that have been visited by the traversal. */ + hash_set visited; + /* List of local_specializations used within the pattern. */ tree extra; tsubst_flags_t complain; *************** extract_locals_r (tree *tp, int */*walk_ *** 12682,12688 **** tp = &TYPE_NAME (*tp); if (TREE_CODE (*tp) == DECL_EXPR) ! data.internal.add (DECL_EXPR_DECL (*tp)); else if (tree spec = retrieve_local_specialization (*tp)) { if (data.internal.contains (*tp)) --- 12706,12741 ---- tp = &TYPE_NAME (*tp); if (TREE_CODE (*tp) == DECL_EXPR) ! { ! tree decl = DECL_EXPR_DECL (*tp); ! data.internal.add (decl); ! if (VAR_P (decl) ! && DECL_DECOMPOSITION_P (decl) ! && TREE_TYPE (decl) != error_mark_node) ! { ! gcc_assert (DECL_NAME (decl) == NULL_TREE); ! for (tree decl2 = DECL_CHAIN (decl); ! decl2 ! && VAR_P (decl2) ! && DECL_DECOMPOSITION_P (decl2) ! && DECL_NAME (decl2) ! && TREE_TYPE (decl2) != error_mark_node; ! decl2 = DECL_CHAIN (decl2)) ! { ! gcc_assert (DECL_DECOMP_BASE (decl2) == decl); ! data.internal.add (decl2); ! } ! } ! } ! else if (TREE_CODE (*tp) == LAMBDA_EXPR) ! { ! /* Since we defer implicit capture, look in the parms and body. */ ! tree fn = lambda_function (*tp); ! cp_walk_tree (&TREE_TYPE (fn), &extract_locals_r, &data, ! &data.visited); ! cp_walk_tree (&DECL_SAVED_TREE (fn), &extract_locals_r, &data, ! &data.visited); ! } else if (tree spec = retrieve_local_specialization (*tp)) { if (data.internal.contains (*tp)) *************** static tree *** 12739,12745 **** extract_local_specs (tree pattern, tsubst_flags_t complain) { el_data data (complain); ! cp_walk_tree_without_duplicates (&pattern, extract_locals_r, &data); return data.extra; } --- 12792,12798 ---- extract_local_specs (tree pattern, tsubst_flags_t complain) { el_data data (complain); ! cp_walk_tree (&pattern, extract_locals_r, &data, &data.visited); return data.extra; } *************** tsubst_pack_expansion (tree t, tree args *** 13020,13031 **** pattern and return a PACK_EXPANSION_*. The caller will need to deal with that. */ if (TREE_CODE (t) == EXPR_PACK_EXPANSION) ! t = tsubst_expr (pattern, args, complain, in_decl, /*integral_constant_expression_p=*/false); else ! t = tsubst (pattern, args, complain, in_decl); ! t = make_pack_expansion (t, complain); ! return t; } gcc_assert (len >= 0); --- 13073,13095 ---- pattern and return a PACK_EXPANSION_*. The caller will need to deal with that. */ if (TREE_CODE (t) == EXPR_PACK_EXPANSION) ! result = tsubst_expr (pattern, args, complain, in_decl, /*integral_constant_expression_p=*/false); else ! result = tsubst (pattern, args, complain, in_decl); ! result = make_pack_expansion (result, complain); ! if (PACK_EXPANSION_AUTO_P (t)) ! { ! /* This is a fake auto... pack expansion created in add_capture with ! _PACKS that don't appear in the pattern. Copy one over. */ ! packs = PACK_EXPANSION_PARAMETER_PACKS (t); ! pack = retrieve_local_specialization (TREE_VALUE (packs)); ! gcc_checking_assert (DECL_PACK_P (pack)); ! PACK_EXPANSION_PARAMETER_PACKS (result) ! = build_tree_list (NULL_TREE, pack); ! PACK_EXPANSION_AUTO_P (result) = true; ! } ! return result; } gcc_assert (len >= 0); *************** tsubst_function_decl (tree t, tree args, *** 13750,13794 **** if (tree spec = retrieve_specialization (gen_tmpl, argvec, hash)) return spec; } - - /* We can see more levels of arguments than parameters if - there was a specialization of a member template, like - this: - - template struct S { template void f(); } - template <> template void S::f(U); - - Here, we'll be substituting into the specialization, - because that's where we can find the code we actually - want to generate, but we'll have enough arguments for - the most general template. - - We also deal with the peculiar case: - - template struct S { - template friend void f(); - }; - template void f() {} - template S; - template void f(); - - Here, the ARGS for the instantiation of will be {int, - double}. But, we only need as many ARGS as there are - levels of template parameters in CODE_PATTERN. We are - careful not to get fooled into reducing the ARGS in - situations like: - - template struct S { template void f(U); } - template template <> void S::f(int) {} - - which we can spot because the pattern will be a - specialization in this case. */ - int args_depth = TMPL_ARGS_DEPTH (args); - int parms_depth = - TMPL_PARMS_DEPTH (DECL_TEMPLATE_PARMS (DECL_TI_TEMPLATE (t))); - - if (args_depth > parms_depth && !DECL_TEMPLATE_SPECIALIZATION (t)) - args = get_innermost_template_args (args, parms_depth); } else { --- 13814,13819 ---- *************** enclosing_instantiation_of (tree otctx) *** 14216,14221 **** --- 14241,14259 ---- || instantiated_lambda_fn_p (tctx)); tctx = decl_function_context (tctx)) ++lambda_count; + + if (!tctx) + { + /* Match using DECL_SOURCE_LOCATION, which is unique for all lambdas. + + For GCC 11 the above condition limits this to the previously failing + case where all enclosing functions are lambdas (95870). FIXME. */ + for (tree ofn = fn; ofn; ofn = decl_function_context (ofn)) + if (DECL_SOURCE_LOCATION (ofn) == DECL_SOURCE_LOCATION (otctx)) + return ofn; + gcc_unreachable (); + } + for (; fn; fn = decl_function_context (fn)) { tree ofn = fn; *************** tsubst_decl (tree t, tree args, tsubst_f *** 14776,14781 **** --- 14814,14826 ---- { DECL_ORIGINAL_TYPE (r) = NULL_TREE; set_underlying_type (r); + + /* common_handle_aligned_attribute doesn't apply the alignment + to DECL_ORIGINAL_TYPE. */ + if (TYPE_USER_ALIGN (TREE_TYPE (t))) + TREE_TYPE (r) = build_aligned_type (TREE_TYPE (r), + TYPE_ALIGN (TREE_TYPE (t))); + if (TYPE_DECL_ALIAS_P (r)) /* An alias template specialization can be dependent even if its underlying type is not. */ *************** tsubst (tree t, tree args, tsubst_flags_ *** 15486,15491 **** --- 15531,15538 ---- else if (tree pl = CLASS_PLACEHOLDER_TEMPLATE (t)) { pl = tsubst_copy (pl, args, complain, in_decl); + if (TREE_CODE (pl) == TEMPLATE_TEMPLATE_PARM) + pl = TEMPLATE_TEMPLATE_PARM_TEMPLATE_DECL (pl); CLASS_PLACEHOLDER_TEMPLATE (r) = pl; } } *************** tsubst_baselink (tree baselink, tree obj *** 16093,16099 **** tree binfo_type = BINFO_TYPE (BASELINK_BINFO (baselink)); binfo_type = tsubst (binfo_type, args, complain, in_decl); ! bool dependent_p = binfo_type != BINFO_TYPE (BASELINK_BINFO (baselink)); if (dependent_p) { --- 16140,16147 ---- tree binfo_type = BINFO_TYPE (BASELINK_BINFO (baselink)); binfo_type = tsubst (binfo_type, args, complain, in_decl); ! bool dependent_p = (binfo_type != BINFO_TYPE (BASELINK_BINFO (baselink)) ! || optype != BASELINK_OPTYPE (baselink)); if (dependent_p) { *************** tsubst_baselink (tree baselink, tree obj *** 16119,16126 **** fns = BASELINK_FUNCTIONS (baselink); } else ! /* We're going to overwrite pieces below, make a duplicate. */ ! baselink = copy_node (baselink); /* If lookup found a single function, mark it as used at this point. (If lookup found multiple functions the one selected later by --- 16167,16185 ---- fns = BASELINK_FUNCTIONS (baselink); } else ! { ! /* We're going to overwrite pieces below, make a duplicate. */ ! baselink = copy_node (baselink); ! ! if (qualifying_scope != BINFO_TYPE (BASELINK_ACCESS_BINFO (baselink))) ! { ! /* The decl we found was from non-dependent scope, but we still need ! to update the binfos for the instantiated qualifying_scope. */ ! BASELINK_ACCESS_BINFO (baselink) = TYPE_BINFO (qualifying_scope); ! BASELINK_BINFO (baselink) = lookup_base (qualifying_scope, binfo_type, ! ba_unique, NULL, complain); ! } ! } /* If lookup found a single function, mark it as used at this point. (If lookup found multiple functions the one selected later by *************** tsubst_lambda_expr (tree t, tree args, t *** 19223,19230 **** the purposes of template argument deduction. */ complain = tf_warning_or_error; ! tsubst_expr (DECL_SAVED_TREE (oldfn), args, complain, r, ! /*constexpr*/false); finish_lambda_function (body); --- 19282,19294 ---- the purposes of template argument deduction. */ complain = tf_warning_or_error; ! tree saved = DECL_SAVED_TREE (oldfn); ! if (TREE_CODE (saved) == BIND_EXPR && BIND_EXPR_BODY_BLOCK (saved)) ! /* We already have a body block from start_lambda_function, we don't ! need another to confuse NRV (91217). */ ! saved = BIND_EXPR_BODY (saved); ! ! tsubst_expr (saved, args, complain, r, /*constexpr*/false); finish_lambda_function (body); *************** static bool uses_deducible_template_parm *** 21670,21677 **** static bool deducible_expression (tree expr) { ! /* Strip implicit conversions. */ ! while (CONVERT_EXPR_P (expr) || TREE_CODE (expr) == VIEW_CONVERT_EXPR) expr = TREE_OPERAND (expr, 0); return (TREE_CODE (expr) == TEMPLATE_PARM_INDEX); } --- 21734,21743 ---- static bool deducible_expression (tree expr) { ! /* Strip implicit conversions and implicit INDIRECT_REFs. */ ! while (CONVERT_EXPR_P (expr) ! || TREE_CODE (expr) == VIEW_CONVERT_EXPR ! || REFERENCE_REF_P (expr)) expr = TREE_OPERAND (expr, 0); return (TREE_CODE (expr) == TEMPLATE_PARM_INDEX); } *************** mark_decl_instantiated (tree result, int *** 23988,23994 **** DECL_COMDAT (result) = 0; if (extern_p) ! DECL_NOT_REALLY_EXTERN (result) = 0; else { mark_definable (result); --- 24054,24063 ---- DECL_COMDAT (result) = 0; if (extern_p) ! { ! DECL_EXTERNAL (result) = 1; ! DECL_NOT_REALLY_EXTERN (result) = 0; ! } else { mark_definable (result); *************** make_constrained_placeholder_type (tree *** 27964,27970 **** --- 28033,28041 ---- tree expr = tmpl; if (TREE_CODE (con) == FUNCTION_DECL) expr = ovl_make (tmpl); + ++processing_template_decl; expr = build_concept_check (expr, type, args, tf_warning_or_error); + --processing_template_decl; PLACEHOLDER_TYPE_CONSTRAINTS (type) = expr; *************** alias_ctad_tweaks (tree tmpl, tree uguid *** 28727,28733 **** unsigned len = TREE_VEC_LENGTH (ftparms); tree targs = make_tree_vec (len); int err = unify (ftparms, targs, ret, utype, UNIFY_ALLOW_NONE, false); ! gcc_assert (!err); /* The number of parms for f' is the number of parms for A plus non-deduced parms of f. */ --- 28798,28805 ---- unsigned len = TREE_VEC_LENGTH (ftparms); tree targs = make_tree_vec (len); int err = unify (ftparms, targs, ret, utype, UNIFY_ALLOW_NONE, false); ! if (err) ! continue; /* The number of parms for f' is the number of parms for A plus non-deduced parms of f. */ *************** alias_ctad_tweaks (tree tmpl, tree uguid *** 28760,28766 **** guideness, and explicit-specifier. */ tree g = tsubst_decl (DECL_TEMPLATE_RESULT (f), targs, complain); if (g == error_mark_node) ! return error_mark_node; DECL_USE_TEMPLATE (g) = 0; fprime = build_template_decl (g, gtparms, false); DECL_TEMPLATE_RESULT (fprime) = g; --- 28832,28838 ---- guideness, and explicit-specifier. */ tree g = tsubst_decl (DECL_TEMPLATE_RESULT (f), targs, complain); if (g == error_mark_node) ! continue; DECL_USE_TEMPLATE (g) = 0; fprime = build_template_decl (g, gtparms, false); DECL_TEMPLATE_RESULT (fprime) = g; *************** alias_ctad_tweaks (tree tmpl, tree uguid *** 28774,28780 **** if (ci) ci = tsubst_constraint_info (ci, targs, complain, in_decl); if (ci == error_mark_node) ! return error_mark_node; /* Add a constraint that the return type matches the instantiation of A with the same template arguments. */ --- 28846,28852 ---- if (ci) ci = tsubst_constraint_info (ci, targs, complain, in_decl); if (ci == error_mark_node) ! continue; /* Add a constraint that the return type matches the instantiation of A with the same template arguments. */ *************** alias_ctad_tweaks (tree tmpl, tree uguid *** 28788,28794 **** } if (ci) ! set_constraints (fprime, ci); } else { --- 28860,28869 ---- } if (ci) ! { ! remove_constraints (fprime); ! set_constraints (fprime, ci); ! } } else { diff -Nrcpad gcc-10.3.0/gcc/cp/search.c gcc-10.4.0/gcc/cp/search.c *** gcc-10.3.0/gcc/cp/search.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/cp/search.c Tue Jun 28 08:54:28 2022 *************** lookup_field_fuzzy_info::fuzzy_lookup_fi *** 1249,1254 **** --- 1249,1261 ---- if (is_lambda_ignored_entity (field)) continue; + /* Ignore special identifiers with space at the end like cdtor or + conversion op identifiers. */ + if (TREE_CODE (DECL_NAME (field)) == IDENTIFIER_NODE) + if (unsigned int len = IDENTIFIER_LENGTH (DECL_NAME (field))) + if (IDENTIFIER_POINTER (DECL_NAME (field))[len - 1] == ' ') + continue; + m_candidates.safe_push (DECL_NAME (field)); } } diff -Nrcpad gcc-10.3.0/gcc/cp/semantics.c gcc-10.4.0/gcc/cp/semantics.c *** gcc-10.3.0/gcc/cp/semantics.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/cp/semantics.c Tue Jun 28 08:54:28 2022 *************** do_pushlevel (scope_kind sk) *** 476,482 **** /* Queue a cleanup. CLEANUP is an expression/statement to be executed when the current scope is exited. EH_ONLY is true when this is not ! meant to apply to normal control flow transfer. */ void push_cleanup (tree decl, tree cleanup, bool eh_only) --- 476,483 ---- /* Queue a cleanup. CLEANUP is an expression/statement to be executed when the current scope is exited. EH_ONLY is true when this is not ! meant to apply to normal control flow transfer. DECL is the VAR_DECL ! being cleaned up, if any, or null for temporaries or subobjects. */ void push_cleanup (tree decl, tree cleanup, bool eh_only) *************** finish_compound_literal (tree type, tree *** 2945,2957 **** return error_mark_node; compound_literal = reshape_init (type, compound_literal, complain); if (SCALAR_TYPE_P (type) ! && !BRACE_ENCLOSED_INITIALIZER_P (compound_literal)) ! { ! tree t = instantiate_non_dependent_expr_sfinae (compound_literal, ! complain); ! if (!check_narrowing (type, t, complain)) ! return error_mark_node; ! } if (TREE_CODE (type) == ARRAY_TYPE && TYPE_DOMAIN (type) == NULL_TREE) { --- 2946,2954 ---- return error_mark_node; compound_literal = reshape_init (type, compound_literal, complain); if (SCALAR_TYPE_P (type) ! && !BRACE_ENCLOSED_INITIALIZER_P (compound_literal) ! && !check_narrowing (type, compound_literal, complain)) ! return error_mark_node; if (TREE_CODE (type) == ARRAY_TYPE && TYPE_DOMAIN (type) == NULL_TREE) { *************** expand_or_defer_fn (tree fn) *** 4497,4502 **** --- 4494,4510 ---- emit_associated_thunks (fn); function_depth--; + + if (DECL_IMMEDIATE_FUNCTION_P (fn)) + { + if (cgraph_node *node = cgraph_node::get (fn)) + { + node->body_removed = true; + node->analyzed = false; + node->definition = false; + node->force_output = false; + } + } } } *************** finish_omp_reduction_clause (tree c, boo *** 5810,5816 **** if (!processing_template_decl) { t = require_complete_type (t); ! if (t == error_mark_node) return true; tree size = size_binop (EXACT_DIV_EXPR, TYPE_SIZE_UNIT (oatype), TYPE_SIZE_UNIT (type)); --- 5818,5825 ---- if (!processing_template_decl) { t = require_complete_type (t); ! if (t == error_mark_node ! || !complete_type_or_else (oatype, NULL_TREE)) return true; tree size = size_binop (EXACT_DIV_EXPR, TYPE_SIZE_UNIT (oatype), TYPE_SIZE_UNIT (type)); *************** finish_omp_reduction_clause (tree c, boo *** 5840,5845 **** --- 5849,5856 ---- case PLUS_EXPR: case MULT_EXPR: case MINUS_EXPR: + case TRUTH_ANDIF_EXPR: + case TRUTH_ORIF_EXPR: predefined = true; break; case MIN_EXPR: *************** finish_omp_reduction_clause (tree c, boo *** 5855,5866 **** break; predefined = true; break; - case TRUTH_ANDIF_EXPR: - case TRUTH_ORIF_EXPR: - if (FLOAT_TYPE_P (type)) - break; - predefined = true; - break; default: break; } --- 5866,5871 ---- diff -Nrcpad gcc-10.3.0/gcc/cp/tree.c gcc-10.4.0/gcc/cp/tree.c *** gcc-10.3.0/gcc/cp/tree.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/cp/tree.c Tue Jun 28 08:54:28 2022 *************** move (tree expr) *** 1250,1255 **** --- 1250,1257 ---- { tree type = TREE_TYPE (expr); gcc_assert (!TYPE_REF_P (type)); + if (xvalue_p (expr)) + return expr; type = cp_build_reference_type (type, /*rval*/true); return build_static_cast (input_location, type, expr, tf_warning_or_error); *************** apply_identity_attributes (tree result, *** 1450,1458 **** p = &TREE_CHAIN (*p); } } ! else if (first_ident) { ! for (tree a2 = first_ident; a2; a2 = TREE_CHAIN (a2)) { *p = tree_cons (TREE_PURPOSE (a2), TREE_VALUE (a2), NULL_TREE); p = &TREE_CHAIN (*p); --- 1452,1460 ---- p = &TREE_CHAIN (*p); } } ! else if (first_ident && first_ident != error_mark_node) { ! for (tree a2 = first_ident; a2 != a; a2 = TREE_CHAIN (a2)) { *p = tree_cons (TREE_PURPOSE (a2), TREE_VALUE (a2), NULL_TREE); p = &TREE_CHAIN (*p); diff -Nrcpad gcc-10.3.0/gcc/cp/typeck.c gcc-10.4.0/gcc/cp/typeck.c *** gcc-10.3.0/gcc/cp/typeck.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/cp/typeck.c Tue Jun 28 08:54:28 2022 *************** cp_build_binary_op (const op_location_t *** 4958,4963 **** --- 4958,4964 ---- doing_shift = true; if (TREE_CODE (const_op0) == INTEGER_CST && tree_int_cst_sgn (const_op0) < 0 + && !TYPE_OVERFLOW_WRAPS (type0) && (complain & tf_warning) && c_inhibit_evaluation_warnings == 0) warning_at (location, OPT_Wshift_negative_value, *************** cxx_mark_addressable (tree exp, bool arr *** 6939,6947 **** && TREE_CODE (TREE_TYPE (x)) == ARRAY_TYPE && VECTOR_TYPE_P (TREE_TYPE (TREE_OPERAND (x, 0)))) return true; /* FALLTHRU */ case ADDR_EXPR: - case COMPONENT_REF: case ARRAY_REF: case REALPART_EXPR: case IMAGPART_EXPR: --- 6940,6953 ---- && TREE_CODE (TREE_TYPE (x)) == ARRAY_TYPE && VECTOR_TYPE_P (TREE_TYPE (TREE_OPERAND (x, 0)))) return true; + x = TREE_OPERAND (x, 0); + break; + + case COMPONENT_REF: + if (bitfield_p (x)) + error ("attempt to take address of bit-field"); /* FALLTHRU */ case ADDR_EXPR: case ARRAY_REF: case REALPART_EXPR: case IMAGPART_EXPR: *************** check_return_expr (tree retval, bool *no *** 10037,10042 **** --- 10043,10051 ---- dependent: /* We should not have changed the return value. */ gcc_assert (retval == saved_retval); + /* We don't know if this is an lvalue or rvalue use, but + either way we can mark it as read. */ + mark_exp_read (retval); return retval; } diff -Nrcpad gcc-10.3.0/gcc/cp/typeck2.c gcc-10.4.0/gcc/cp/typeck2.c *** gcc-10.3.0/gcc/cp/typeck2.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/cp/typeck2.c Tue Jun 28 08:54:28 2022 *************** split_nonconstant_init_1 (tree dest, tre *** 661,667 **** sub = build3 (COMPONENT_REF, inner_type, dest, field_index, NULL_TREE); ! if (!split_nonconstant_init_1 (sub, value, true)) complete_p = false; else { --- 661,680 ---- sub = build3 (COMPONENT_REF, inner_type, dest, field_index, NULL_TREE); ! if (!split_nonconstant_init_1 (sub, value, true) ! /* For flexible array member with initializer we ! can't remove the initializer, because only the ! initializer determines how many elements the ! flexible array member has. */ ! || (!array_type_p ! && TREE_CODE (inner_type) == ARRAY_TYPE ! && TYPE_DOMAIN (inner_type) == NULL ! && TREE_CODE (TREE_TYPE (value)) == ARRAY_TYPE ! && COMPLETE_TYPE_P (TREE_TYPE (value)) ! && !integer_zerop (TYPE_SIZE (TREE_TYPE (value))) ! && idx == CONSTRUCTOR_NELTS (init) - 1 ! && TYPE_HAS_TRIVIAL_DESTRUCTOR ! (strip_array_types (inner_type)))) complete_p = false; else { *************** massage_init_elt (tree type, tree init, *** 1442,1450 **** if (flags & LOOKUP_AGGREGATE_PAREN_INIT) new_flags |= LOOKUP_AGGREGATE_PAREN_INIT; init = digest_init_r (type, init, nested ? 2 : 1, new_flags, complain); - /* Strip a simple TARGET_EXPR when we know this is an initializer. */ - if (SIMPLE_TARGET_EXPR_P (init)) - init = TARGET_EXPR_INITIAL (init); /* When we defer constant folding within a statement, we may want to defer this folding as well. */ tree t = fold_non_dependent_init (init, complain); --- 1455,1460 ---- *************** process_init_constructor_array (tree typ *** 1533,1538 **** --- 1543,1556 ---- strip_array_types (TREE_TYPE (ce->value))))); picflags |= picflag_from_initializer (ce->value); + /* Propagate CONSTRUCTOR_PLACEHOLDER_BOUNDARY to outer + CONSTRUCTOR. */ + if (TREE_CODE (ce->value) == CONSTRUCTOR + && CONSTRUCTOR_PLACEHOLDER_BOUNDARY (ce->value)) + { + CONSTRUCTOR_PLACEHOLDER_BOUNDARY (init) = 1; + CONSTRUCTOR_PLACEHOLDER_BOUNDARY (ce->value) = 0; + } } /* No more initializers. If the array is unbounded, we are done. Otherwise, *************** process_init_constructor_array (tree typ *** 1574,1579 **** --- 1592,1605 ---- if (next) { picflags |= picflag_from_initializer (next); + /* Propagate CONSTRUCTOR_PLACEHOLDER_BOUNDARY to outer + CONSTRUCTOR. */ + if (TREE_CODE (next) == CONSTRUCTOR + && CONSTRUCTOR_PLACEHOLDER_BOUNDARY (next)) + { + CONSTRUCTOR_PLACEHOLDER_BOUNDARY (init) = 1; + CONSTRUCTOR_PLACEHOLDER_BOUNDARY (next) = 0; + } if (len > i+1 && (initializer_constant_valid_p (next, TREE_TYPE (next)) == null_pointer_node)) *************** process_init_constructor_record (tree ty *** 1784,1789 **** --- 1810,1822 ---- if (type != TREE_TYPE (field)) next = cp_convert_and_check (TREE_TYPE (field), next, complain); picflags |= picflag_from_initializer (next); + /* Propagate CONSTRUCTOR_PLACEHOLDER_BOUNDARY to outer CONSTRUCTOR. */ + if (TREE_CODE (next) == CONSTRUCTOR + && CONSTRUCTOR_PLACEHOLDER_BOUNDARY (next)) + { + CONSTRUCTOR_PLACEHOLDER_BOUNDARY (init) = 1; + CONSTRUCTOR_PLACEHOLDER_BOUNDARY (next) = 0; + } CONSTRUCTOR_APPEND_ELT (v, field, next); } *************** process_init_constructor_union (tree typ *** 1937,1942 **** --- 1970,1983 ---- ce->value = massage_init_elt (TREE_TYPE (ce->index), ce->value, nested, flags, complain); + /* Propagate CONSTRUCTOR_PLACEHOLDER_BOUNDARY to outer CONSTRUCTOR. */ + if (ce->value + && TREE_CODE (ce->value) == CONSTRUCTOR + && CONSTRUCTOR_PLACEHOLDER_BOUNDARY (ce->value)) + { + CONSTRUCTOR_PLACEHOLDER_BOUNDARY (init) = 1; + CONSTRUCTOR_PLACEHOLDER_BOUNDARY (ce->value) = 0; + } return picflag_from_initializer (ce->value); } diff -Nrcpad gcc-10.3.0/gcc/cprop.c gcc-10.4.0/gcc/cprop.c *** gcc-10.3.0/gcc/cprop.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/cprop.c Tue Jun 28 08:54:28 2022 *************** static int *** 1007,1022 **** constprop_register (rtx from, rtx src, rtx_insn *insn) { rtx sset; /* Check for reg or cc0 setting instructions followed by conditional branch instructions first. */ if ((sset = single_set (insn)) != NULL ! && NEXT_INSN (insn) ! && any_condjump_p (NEXT_INSN (insn)) && onlyjump_p (NEXT_INSN (insn))) { rtx dest = SET_DEST (sset); if ((REG_P (dest) || CC0_P (dest)) ! && cprop_jump (BLOCK_FOR_INSN (insn), insn, NEXT_INSN (insn), from, src)) return 1; } --- 1007,1024 ---- constprop_register (rtx from, rtx src, rtx_insn *insn) { rtx sset; + rtx_insn *next_insn; /* Check for reg or cc0 setting instructions followed by conditional branch instructions first. */ if ((sset = single_set (insn)) != NULL ! && (next_insn = next_nondebug_insn (insn)) != NULL ! && any_condjump_p (next_insn) ! && onlyjump_p (next_insn)) { rtx dest = SET_DEST (sset); if ((REG_P (dest) || CC0_P (dest)) ! && cprop_jump (BLOCK_FOR_INSN (insn), insn, next_insn, from, src)) return 1; } diff -Nrcpad gcc-10.3.0/gcc/cse.c gcc-10.4.0/gcc/cse.c *** gcc-10.3.0/gcc/cse.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/cse.c Tue Jun 28 08:54:28 2022 *************** exp_equiv_p (const_rtx x, const_rtx y, i *** 2637,2642 **** --- 2637,2647 ---- CASE_CONST_UNIQUE: return x == y; + case CONST_VECTOR: + if (!same_vector_encodings_p (x, y)) + return false; + break; + case LABEL_REF: return label_ref_label (x) == label_ref_label (y); diff -Nrcpad gcc-10.3.0/gcc/cselib.c gcc-10.4.0/gcc/cselib.c *** gcc-10.3.0/gcc/cselib.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/cselib.c Tue Jun 28 08:54:28 2022 *************** rtx_equal_for_cselib_1 (rtx x, rtx y, ma *** 1048,1053 **** --- 1048,1058 ---- case DEBUG_EXPR: return 0; + case CONST_VECTOR: + if (!same_vector_encodings_p (x, y)) + return false; + break; + case DEBUG_IMPLICIT_PTR: return DEBUG_IMPLICIT_PTR_DECL (x) == DEBUG_IMPLICIT_PTR_DECL (y); diff -Nrcpad gcc-10.3.0/gcc/d/ChangeLog gcc-10.4.0/gcc/d/ChangeLog *** gcc-10.3.0/gcc/d/ChangeLog Thu Apr 8 11:56:48 2021 --- gcc-10.4.0/gcc/d/ChangeLog Tue Jun 28 08:54:28 2022 *************** *** 1,3 **** --- 1,189 ---- + 2022-06-28 Release Manager + + * GCC 10.4.0 released. + + 2022-06-15 Iain Buclaw + + Backported from master: + 2022-06-15 Iain Buclaw + + * typeinfo.cc (make_internal_typeinfo): Set TYPE_ARTIFICIAL. + + 2021-12-10 Iain Buclaw + + Backported from master: + 2021-12-10 Iain Buclaw + + * decl.cc (get_symbol_decl): Align methods to MINIMUM_METHOD_BOUNDARY. + + 2021-11-18 Iain Buclaw + + Backported from master: + 2021-11-18 Iain Buclaw + + * decl.cc (d_finish_decl): Use HOST_WIDE_INT for type size + temporaries. + + 2021-10-13 Iain Sandoe + + Backported from master: + 2021-10-05 Iain Sandoe + + * d-spec.cc (lang_specific_driver): Push the -static-libstdc++ + option back onto the command line for targets without support + for -Bstatic/dynamic. + + 2021-10-04 Iain Buclaw + + Backported from master: + 2021-10-04 Iain Buclaw + + PR d/102574 + * d-spec.cc (lang_specific_driver): Link libstdc++ statically if + -static-libstdc++ was given on command-line. + + 2021-07-29 Iain Buclaw + + Backported from master: + 2021-07-29 Iain Buclaw + + PR d/96435 + * d-convert.cc (convert_for_rvalue): New function. + * d-tree.h (convert_for_rvalue): Declare. + * expr.cc (ExprVisitor::visit (CastExp *)): Use convert_for_rvalue. + (build_return_dtor): Likewise. + + 2021-07-28 Iain Buclaw + + Backported from master: + 2021-07-28 Iain Buclaw + + PR d/101640 + * expr.cc (binary_op): Use build2 instead of fold_build2. + + 2021-07-28 Iain Buclaw + + Backported from master: + 2021-07-28 Iain Buclaw + + PR d/101490 + * d-codegen.cc (build_array_index): Handle void arrays same as byte. + * d-convert.cc (convert_expr): Handle converting to zero-sized arrays. + * dmd/dcast.c (castTo): Handle casting to zero-sized arrays. + + 2021-07-28 Iain Buclaw + + Backported from master: + 2021-07-28 Iain Buclaw + + PR d/101441 + * dmd/expression.c (FuncInitExp::resolveLoc): Set type as `string'. + (PrettyFuncInitExp::resolveLoc): Likewise. + + 2021-07-28 Iain Buclaw + + Backported from master: + 2021-07-28 Iain Buclaw + + PR d/101127 + * d-builtins.cc (d_builtin_function_ext_scope): New function. + * d-lang.cc (LANG_HOOKS_BUILTIN_FUNCTION_EXT_SCOPE): Define. + * d-tree.h (d_builtin_function_ext_scope): Declare. + + 2021-07-28 Iain Buclaw + + Backported from master: + 2021-07-28 Iain Buclaw + + PR d/101619 + * dmd/expression.c (DotTemplateExp::checkType): New function. + (DotTemplateExp::checkValue): New function. + * dmd/expression.h (class DotTemplateExp): Declare checkType and + checkValue. + + 2021-06-11 Iain Buclaw + + Backported from master: + 2021-06-11 Iain Buclaw + + PR d/100999 + * dmd/cond.c (lowerArrayAggregate): Run CTFE interpret on foreach + input range. + (createTupleType): Don't generate typeinfo when disabled. + (lowerNonArrayAggregate): Suppress errors when running type semantic. + (staticForeachPrepare): Don't run CTFE interpret from here. + * dmd/dinterpret.c (ctfeInterpret): Add more shortcut cases. + * dmd/expression.c (resolvePropertiesX): Remove early error. + (Expression::checkPostblit): Don't generate typeinfo when type is + missing from library. + * dmd/expressionsem.c (ExpressionSemanticVisitor): Set type of + DotTemplateExp as void. + * dmd/statementsem.c (StatementSemanticVisitor::declareVariable): + Don't override index type. + (StatementSemanticVisitor::makeTupleForeachBody): Check index type is + integral and index range fits type size. + (StatementSemanticVisitor::visit (ForeachStatement*)): Adjust index + range before testing. + + 2021-06-10 Iain Buclaw + + Backported from master: + 2021-06-10 Iain Buclaw + + PR d/100967 + * d-frontend.cc (getTypeInfoType): Move TypeInfo checks to + check_typeinfo_type and call new function. + * d-tree.h (check_typeinfo_type): Declare. + * typeinfo.cc: Include dmd/scope.h. + (create_frontend_tinfo_types): Generate front-end types even if Object + is missing. + (build_typeinfo): Move TypeInfo checks to check_typeinfo_type and call + new function. + (check_typeinfo_type): New function. + + 2021-06-09 Iain Buclaw + + Backported from master: + 2021-06-09 Iain Buclaw + + PR d/100964 + * dmd/expression.c (Expression::checkPostblit): Don't generate + TypeInfo when RTTI is disabled. + + 2021-06-09 Iain Buclaw + + Backported from master: + 2021-06-09 Iain Buclaw + + PR d/100935 + * dmd/mtype.c (Type::getProperty): Prefer explicit alignment over + natural alignment for alignof property. + + 2021-06-04 Iain Buclaw + + Backported from master: + 2021-06-04 Iain Buclaw + + PR d/100882 + * d-codegen.cc (build_assign): Construct initializations inside + TARGET_EXPR_INITIAL. + (compound_expr): Remove intermediate expressions that have no + side-effects. + (return_expr): Construct returns inside TARGET_EXPR_INITIAL. + * expr.cc (ExprVisitor::visit (CallExp *)): Remove useless assignment + to TARGET_EXPR_SLOT. + + 2021-04-19 Iain Buclaw + + Backported from master: + 2021-04-19 Iain Buclaw + + PR d/98457 + * d-diagnostic.cc (expand_d_format): Handle escaped backticks. + (escape_d_format): New funtion. + (verror): Call escape_d_format on prefixing strings. + (vdeprecation): Likewise. + 2021-04-08 Release Manager * GCC 10.3.0 released. diff -Nrcpad gcc-10.3.0/gcc/d/d-builtins.cc gcc-10.4.0/gcc/d/d-builtins.cc *** gcc-10.3.0/gcc/d/d-builtins.cc Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/d/d-builtins.cc Tue Jun 28 08:54:28 2022 *************** d_builtin_function (tree decl) *** 1211,1215 **** --- 1211,1230 ---- return decl; } + /* Same as d_builtin_function, but used to delay putting in back-end builtin + functions until the ISA that defines the builtin has been declared. + However in D, there is no global namespace. All builtins get pushed into the + `gcc.builtins' module, which is constructed during the semantic analysis + pass, which has already finished by the time target attributes are evaluated. + So builtins are not pushed because they would be ultimately ignored. + The purpose of having this function then is to improve compile-time + reflection support to allow user-code to determine whether a given back end + function is enabled by the ISA. */ + + tree + d_builtin_function_ext_scope (tree decl) + { + return decl; + } #include "gt-d-d-builtins.h" diff -Nrcpad gcc-10.3.0/gcc/d/d-codegen.cc gcc-10.4.0/gcc/d/d-codegen.cc *** gcc-10.3.0/gcc/d/d-codegen.cc Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/d/d-codegen.cc Tue Jun 28 08:54:28 2022 *************** component_ref (tree object, tree field) *** 1269,1274 **** --- 1269,1275 ---- tree build_assign (tree_code code, tree lhs, tree rhs) { + tree result; tree init = stabilize_expr (&lhs); init = compound_expr (init, stabilize_expr (&rhs)); *************** build_assign (tree_code code, tree lhs, *** 1287,1308 **** if (TREE_CODE (rhs) == TARGET_EXPR) { /* If CODE is not INIT_EXPR, can't initialize LHS directly, ! since that would cause the LHS to be constructed twice. ! So we force the TARGET_EXPR to be expanded without a target. */ if (code != INIT_EXPR) { init = compound_expr (init, rhs); ! rhs = TARGET_EXPR_SLOT (rhs); } else { d_mark_addressable (lhs); ! rhs = TARGET_EXPR_INITIAL (rhs); } } - tree result = fold_build2_loc (input_location, code, - TREE_TYPE (lhs), lhs, rhs); return compound_expr (init, result); } --- 1288,1314 ---- if (TREE_CODE (rhs) == TARGET_EXPR) { /* If CODE is not INIT_EXPR, can't initialize LHS directly, ! since that would cause the LHS to be constructed twice. */ if (code != INIT_EXPR) { init = compound_expr (init, rhs); ! result = build_assign (code, lhs, TARGET_EXPR_SLOT (rhs)); } else { d_mark_addressable (lhs); ! TARGET_EXPR_INITIAL (rhs) = build_assign (code, lhs, ! TARGET_EXPR_INITIAL (rhs)); ! result = rhs; } } + else + { + /* Simple assignment. */ + result = fold_build2_loc (input_location, code, + TREE_TYPE (lhs), lhs, rhs); + } return compound_expr (init, result); } *************** compound_expr (tree arg0, tree arg1) *** 1424,1429 **** --- 1430,1440 ---- if (arg0 == NULL_TREE || !TREE_SIDE_EFFECTS (arg0)) return arg1; + /* Remove intermediate expressions that have no side-effects. */ + while (TREE_CODE (arg0) == COMPOUND_EXPR + && !TREE_SIDE_EFFECTS (TREE_OPERAND (arg0, 1))) + arg0 = TREE_OPERAND (arg0, 0); + if (TREE_CODE (arg1) == TARGET_EXPR) { /* If the rhs is a TARGET_EXPR, then build the compound expression *************** compound_expr (tree arg0, tree arg1) *** 1444,1449 **** --- 1455,1473 ---- tree return_expr (tree ret) { + /* Same as build_assign, the DECL_RESULT assignment replaces the temporary + in TARGET_EXPR_SLOT. */ + if (ret != NULL_TREE && TREE_CODE (ret) == TARGET_EXPR) + { + tree exp = TARGET_EXPR_INITIAL (ret); + tree init = stabilize_expr (&exp); + + exp = fold_build1_loc (input_location, RETURN_EXPR, void_type_node, exp); + TARGET_EXPR_INITIAL (ret) = compound_expr (init, exp); + + return ret; + } + return fold_build1_loc (input_location, RETURN_EXPR, void_type_node, ret); } *************** build_array_index (tree ptr, tree index) *** 1547,1567 **** /* Array element size. */ tree size_exp = size_in_bytes (target_type); ! if (integer_zerop (size_exp)) ! { ! /* Test for array of void. */ ! if (TYPE_MODE (target_type) == TYPE_MODE (void_type_node)) ! index = fold_convert (type, index); ! else ! { ! /* Should catch this earlier. */ ! error ("invalid use of incomplete type %qD", TYPE_NAME (target_type)); ! ptr_type = error_mark_node; ! } ! } ! else if (integer_onep (size_exp)) { ! /* Array of bytes -- No need to multiply. */ index = fold_convert (type, index); } else --- 1571,1579 ---- /* Array element size. */ tree size_exp = size_in_bytes (target_type); ! if (integer_zerop (size_exp) || integer_onep (size_exp)) { ! /* Array of void or bytes -- No need to multiply. */ index = fold_convert (type, index); } else diff -Nrcpad gcc-10.3.0/gcc/d/d-convert.cc gcc-10.4.0/gcc/d/d-convert.cc *** gcc-10.3.0/gcc/d/d-convert.cc Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/d/d-convert.cc Tue Jun 28 08:54:28 2022 *************** convert_expr (tree exp, Type *etype, Typ *** 473,485 **** tree ptrtype = build_ctype (tbtype->nextOf ()->pointerTo ()); ! if ((dim * esize) % tsize != 0) { ! error ("cannot cast %qs to %qs since sizes do not line up", ! etype->toChars (), totype->toChars ()); ! return error_mark_node; } - dim = (dim * esize) / tsize; /* Assumes casting to dynamic array of same type or void. */ return d_array_value (build_ctype (totype), size_int (dim), --- 473,490 ---- tree ptrtype = build_ctype (tbtype->nextOf ()->pointerTo ()); ! if (esize != tsize) { ! /* Array element sizes do not match, so we must adjust the ! dimensions. */ ! if (tsize == 0 || (dim * esize) % tsize != 0) ! { ! error ("cannot cast %qs to %qs since sizes do not line up", ! etype->toChars (), totype->toChars ()); ! return error_mark_node; ! } ! dim = (dim * esize) / tsize; } /* Assumes casting to dynamic array of same type or void. */ return d_array_value (build_ctype (totype), size_int (dim), *************** convert_expr (tree exp, Type *etype, Typ *** 595,600 **** --- 600,641 ---- 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 + convert_for_rvalue (tree expr, Type *etype, Type *totype) + { + tree result = NULL_TREE; + + Type *ebtype = etype->toBasetype (); + Type *tbtype = totype->toBasetype (); + + switch (ebtype->ty) + { + 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; + } + + return result ? result : convert_expr (expr, etype, totype); + } /* Apply semantics of assignment to a value of type TOTYPE to EXPR (e.g., pointer = array -> pointer = &array[0]) diff -Nrcpad gcc-10.3.0/gcc/d/d-diagnostic.cc gcc-10.4.0/gcc/d/d-diagnostic.cc *** gcc-10.3.0/gcc/d/d-diagnostic.cc Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/d/d-diagnostic.cc Tue Jun 28 08:54:28 2022 *************** expand_d_format (const char *format) *** 48,54 **** for (const char *p = format; *p;) { ! while (*p != '\0' && *p != '%' && *p != '`') { buf.writeByte (*p); p++; --- 48,54 ---- for (const char *p = format; *p;) { ! while (*p != '\0' && *p != '\\' && *p != '%' && *p != '`') { buf.writeByte (*p); p++; *************** expand_d_format (const char *format) *** 57,62 **** --- 57,77 ---- if (*p == '\0') break; + if (*p == '\\') + { + if (p[1] == '`') + { + /* Escaped backtick, don't expand it as a quoted string. */ + buf.writeByte ('`'); + p++;; + } + else + buf.writeByte (*p); + + p++; + continue; + } + if (*p == '`') { /* Text enclosed by `...` are translated as a quoted string. */ *************** expand_d_format (const char *format) *** 113,118 **** --- 128,170 ---- return buf.extractString (); } + /* Rewrite the format string FORMAT to deal with any characters that require + escaping before expand_d_format expands it. */ + + static char * + escape_d_format (const char *format) + { + obstack buf; + + gcc_obstack_init (&buf); + + for (const char *p = format; *p; p++) + { + switch (*p) + { + case '%': + /* Escape `%' characters so that pp_format does not confuse them + for actual format specifiers. */ + obstack_1grow (&buf, '%'); + break; + + case '`': + /* Escape '`' characters so that expand_d_format does not confuse them + for a quoted string. */ + obstack_1grow (&buf, '\\'); + break; + + default: + break; + } + + obstack_1grow (&buf, *p); + } + + obstack_1grow (&buf, '\0'); + return (char *) obstack_finish (&buf); + } + /* Helper routine for all error routines. Reports a diagnostic specified by KIND at the explicit location LOC. The message FORMAT comes from the dmd front-end, which does not get translated by the gcc diagnostic routines. */ *************** verror (const Loc& loc, const char *form *** 177,185 **** /* Build string and emit. */ if (prefix2 != NULL) ! xformat = xasprintf ("%s %s %s", prefix1, prefix2, format); else if (prefix1 != NULL) ! xformat = xasprintf ("%s %s", prefix1, format); else xformat = xasprintf ("%s", format); --- 229,238 ---- /* Build string and emit. */ if (prefix2 != NULL) ! xformat = xasprintf ("%s %s %s", escape_d_format (prefix1), ! escape_d_format (prefix2), format); else if (prefix1 != NULL) ! xformat = xasprintf ("%s %s", escape_d_format (prefix1), format); else xformat = xasprintf ("%s", format); *************** vdeprecation (const Loc& loc, const char *** 287,295 **** /* Build string and emit. */ if (prefix2 != NULL) ! xformat = xasprintf ("%s %s %s", prefix1, prefix2, format); else if (prefix1 != NULL) ! xformat = xasprintf ("%s %s", prefix1, format); else xformat = xasprintf ("%s", format); --- 340,349 ---- /* Build string and emit. */ if (prefix2 != NULL) ! xformat = xasprintf ("%s %s %s", escape_d_format (prefix1), ! escape_d_format (prefix2), format); else if (prefix1 != NULL) ! xformat = xasprintf ("%s %s", escape_d_format (prefix1), format); else xformat = xasprintf ("%s", format); diff -Nrcpad gcc-10.3.0/gcc/d/d-frontend.cc gcc-10.4.0/gcc/d/d-frontend.cc *** gcc-10.3.0/gcc/d/d-frontend.cc Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/d/d-frontend.cc Tue Jun 28 08:54:28 2022 *************** eval_builtin (Loc loc, FuncDeclaration * *** 614,652 **** Type * getTypeInfoType (Loc loc, Type *type, Scope *sc) { - if (!global.params.useTypeInfo) - { - /* Even when compiling without RTTI we should still be able to evaluate - TypeInfo at compile-time, just not at run-time. */ - if (!sc || !(sc->flags & SCOPEctfe)) - { - static int warned = 0; - - if (!warned) - { - error_at (make_location_t (loc), - "% cannot be used with %<-fno-rtti%>"); - warned = 1; - } - } - } - - if (Type::dtypeinfo == NULL - || (Type::dtypeinfo->storage_class & STCtemp)) - { - /* If TypeInfo has not been declared, warn about each location once. */ - static Loc warnloc; - - if (!loc.equals (warnloc)) - { - error_at (make_location_t (loc), - "% could not be found, " - "but is implicitly used"); - warnloc = loc; - } - } - gcc_assert (type->ty != Terror); create_typeinfo (type, sc ? sc->_module->importedFrom : NULL); return type->vtinfo->type; } --- 614,621 ---- Type * getTypeInfoType (Loc loc, Type *type, Scope *sc) { gcc_assert (type->ty != Terror); + check_typeinfo_type (loc, sc); create_typeinfo (type, sc ? sc->_module->importedFrom : NULL); return type->vtinfo->type; } diff -Nrcpad gcc-10.3.0/gcc/d/d-lang.cc gcc-10.4.0/gcc/d/d-lang.cc *** gcc-10.3.0/gcc/d/d-lang.cc Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/d/d-lang.cc Tue Jun 28 08:54:28 2022 *************** d_build_eh_runtime_type (tree type) *** 1825,1830 **** --- 1825,1831 ---- #undef LANG_HOOKS_GET_ALIAS_SET #undef LANG_HOOKS_TYPES_COMPATIBLE_P #undef LANG_HOOKS_BUILTIN_FUNCTION + #undef LANG_HOOKS_BUILTIN_FUNCTION_EXT_SCOPE #undef LANG_HOOKS_REGISTER_BUILTIN_TYPE #undef LANG_HOOKS_FINISH_INCOMPLETE_DECL #undef LANG_HOOKS_GIMPLIFY_EXPR *************** d_build_eh_runtime_type (tree type) *** 1855,1860 **** --- 1856,1862 ---- #define LANG_HOOKS_GET_ALIAS_SET d_get_alias_set #define LANG_HOOKS_TYPES_COMPATIBLE_P d_types_compatible_p #define LANG_HOOKS_BUILTIN_FUNCTION d_builtin_function + #define LANG_HOOKS_BUILTIN_FUNCTION_EXT_SCOPE d_builtin_function_ext_scope #define LANG_HOOKS_REGISTER_BUILTIN_TYPE d_register_builtin_type #define LANG_HOOKS_FINISH_INCOMPLETE_DECL d_finish_incomplete_decl #define LANG_HOOKS_GIMPLIFY_EXPR d_gimplify_expr diff -Nrcpad gcc-10.3.0/gcc/d/d-spec.cc gcc-10.4.0/gcc/d/d-spec.cc *** gcc-10.3.0/gcc/d/d-spec.cc Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/d/d-spec.cc Tue Jun 28 08:54:28 2022 *************** lang_specific_driver (cl_decoded_option *** 83,88 **** --- 83,91 ---- /* "-lstdc++" if it appears on the command line. */ const cl_decoded_option *saw_libcxx = 0; + /* True if we saw `-static-libstdc++'. */ + bool saw_static_libcxx = false; + /* Whether we need the C++ STD library. */ bool need_stdcxx = false; *************** lang_specific_driver (cl_decoded_option *** 248,253 **** --- 251,261 ---- shared_libgcc = false; break; + case OPT_static_libstdc__: + saw_static_libcxx = true; + args[i] |= SKIPOPT; + break; + case OPT_static_libphobos: if (phobos_library != PHOBOS_NOLINK) phobos_library = PHOBOS_STATIC; *************** lang_specific_driver (cl_decoded_option *** 452,467 **** #endif } ! if (saw_libcxx) ! new_decoded_options[j++] = *saw_libcxx; ! else if (need_stdcxx) { ! generate_option (OPT_l, ! (saw_profile_flag ! ? LIBSTDCXX_PROFILE ! : LIBSTDCXX), ! 1, CL_DRIVER, &new_decoded_options[j++]); ! added_libraries++; } if (shared_libgcc && !static_link) --- 460,498 ---- #endif } ! if (saw_libcxx || need_stdcxx) { ! #ifdef HAVE_LD_STATIC_DYNAMIC ! if (saw_static_libcxx && !static_link) ! { ! generate_option (OPT_Wl_, LD_STATIC_OPTION, 1, CL_DRIVER, ! &new_decoded_options[j++]); ! } ! #else ! /* Push the -static-libstdc++ option back onto the command so that ! a target without LD_STATIC_DYNAMIC can use outfile substitution. */ ! if (saw_static_libcxx && !static_link) ! generate_option (OPT_static_libstdc__, NULL, 1, CL_DRIVER, ! &new_decoded_options[j++]); ! #endif ! if (saw_libcxx) ! new_decoded_options[j++] = *saw_libcxx; ! else if (need_stdcxx) ! { ! generate_option (OPT_l, ! (saw_profile_flag ! ? LIBSTDCXX_PROFILE ! : LIBSTDCXX), ! 1, CL_DRIVER, &new_decoded_options[j++]); ! added_libraries++; ! } ! #ifdef HAVE_LD_STATIC_DYNAMIC ! if (saw_static_libcxx && !static_link) ! { ! generate_option (OPT_Wl_, LD_DYNAMIC_OPTION, 1, CL_DRIVER, ! &new_decoded_options[j++]); ! } ! #endif } if (shared_libgcc && !static_link) diff -Nrcpad gcc-10.3.0/gcc/d/d-tree.h gcc-10.4.0/gcc/d/d-tree.h *** gcc-10.3.0/gcc/d/d-tree.h Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/d/d-tree.h Tue Jun 28 08:54:28 2022 *************** extern const attribute_spec d_langhook_a *** 491,496 **** --- 491,497 ---- extern const attribute_spec d_langhook_common_attribute_table[]; extern tree d_builtin_function (tree); + extern tree d_builtin_function_ext_scope (tree); extern void d_init_builtins (void); extern void d_register_builtin_type (tree, const char *); extern void d_build_builtins_module (Module *); *************** extern bool decl_with_nonnull_addr_p (co *** 581,586 **** --- 582,588 ---- extern tree d_truthvalue_conversion (tree); extern tree d_convert (tree, tree); extern tree convert_expr (tree, Type *, Type *); + extern tree convert_for_rvalue (tree, Type *, Type *); extern tree convert_for_assignment (tree, Type *, Type *); extern tree convert_for_argument (tree, Parameter *); extern tree convert_for_condition (tree, Type *); *************** extern tree layout_typeinfo (TypeInfoDec *** 655,660 **** --- 657,663 ---- extern tree layout_classinfo (ClassDeclaration *); extern tree get_typeinfo_decl (TypeInfoDeclaration *); extern tree get_classinfo_decl (ClassDeclaration *); + extern void check_typeinfo_type (const Loc &, Scope *); extern tree build_typeinfo (const Loc &, Type *); extern void create_typeinfo (Type *, Module *); extern void create_tinfo_types (Module *); diff -Nrcpad gcc-10.3.0/gcc/d/decl.cc gcc-10.4.0/gcc/d/decl.cc *** gcc-10.3.0/gcc/d/decl.cc Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/d/decl.cc Tue Jun 28 08:54:28 2022 *************** get_symbol_decl (Declaration *decl) *** 1253,1258 **** --- 1253,1261 ---- DECL_VINDEX (decl->csym) = size_int (fd->vtblIndex); DECL_VIRTUAL_P (decl->csym) = 1; } + + /* Align method to the minimum boundary for target. */ + SET_DECL_ALIGN (decl->csym, MINIMUM_METHOD_BOUNDARY); } else if (fd->isMain () || fd->isCMain ()) { *************** d_finish_decl (tree decl) *** 1585,1592 **** if (flag_checking && DECL_INITIAL (decl)) { /* Initializer must never be bigger than symbol size. */ ! dinteger_t tsize = int_size_in_bytes (TREE_TYPE (decl)); ! dinteger_t dtsize = int_size_in_bytes (TREE_TYPE (DECL_INITIAL (decl))); if (tsize < dtsize) { --- 1588,1596 ---- if (flag_checking && DECL_INITIAL (decl)) { /* Initializer must never be bigger than symbol size. */ ! HOST_WIDE_INT tsize = int_size_in_bytes (TREE_TYPE (decl)); ! HOST_WIDE_INT dtsize = ! int_size_in_bytes (TREE_TYPE (DECL_INITIAL (decl))); if (tsize < dtsize) { diff -Nrcpad gcc-10.3.0/gcc/d/dmd/cond.c gcc-10.4.0/gcc/d/dmd/cond.c *** gcc-10.3.0/gcc/d/dmd/cond.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/d/dmd/cond.c Tue Jun 28 08:54:28 2022 *************** static void lowerArrayAggregate(StaticFo *** 114,119 **** --- 114,120 ---- sfe->aggrfe->aggr = new TupleExp(aggr->loc, es); sfe->aggrfe->aggr = semantic(sfe->aggrfe->aggr, sc); sfe->aggrfe->aggr = sfe->aggrfe->aggr->optimize(WANTvalue); + sfe->aggrfe->aggr = sfe->aggrfe->aggr->ctfeInterpret(); } else { *************** static TypeStruct *createTupleType(Loc l *** 200,206 **** Type *ty = new TypeTypeof(loc, new TupleExp(loc, e)); sdecl->members->push(new VarDeclaration(loc, ty, fid, NULL)); TypeStruct *r = (TypeStruct *)sdecl->type; ! r->vtinfo = TypeInfoStructDeclaration::create(r); // prevent typeinfo from going to object file return r; } --- 201,208 ---- Type *ty = new TypeTypeof(loc, new TupleExp(loc, e)); sdecl->members->push(new VarDeclaration(loc, ty, fid, NULL)); TypeStruct *r = (TypeStruct *)sdecl->type; ! if (global.params.useTypeInfo && Type::dtypeinfo) ! r->vtinfo = TypeInfoStructDeclaration::create(r); // prevent typeinfo from going to object file return r; } *************** static void lowerNonArrayAggregate(Stati *** 314,328 **** Identifier *idres = Identifier::generateId("__res"); VarDeclaration *vard = new VarDeclaration(aloc, aty, idres, NULL); Statements *s2 = new Statements(); ! s2->push(new ExpStatement(aloc, vard)); ! Expression *catass = new CatAssignExp(aloc, new IdentifierExp(aloc, idres), res[1]); ! s2->push(createForeach(sfe, aloc, pparams[1], new ExpStatement(aloc, catass))); ! s2->push(new ReturnStatement(aloc, new IdentifierExp(aloc, idres))); Expression *aggr; Type *indexty; ! if (sfe->rangefe && (indexty = ety->semantic(aloc, sc))->isintegral()) { sfe->rangefe->lwr->type = indexty; sfe->rangefe->upr->type = indexty; --- 316,340 ---- Identifier *idres = Identifier::generateId("__res"); VarDeclaration *vard = new VarDeclaration(aloc, aty, idres, NULL); Statements *s2 = new Statements(); ! ! // Run 'typeof' gagged to avoid duplicate errors and if it fails just create ! // an empty foreach to expose them. ! unsigned olderrors = global.startGagging(); ! ety = ety->semantic(aloc, sc); ! if (global.endGagging(olderrors)) ! s2->push(createForeach(sfe, aloc, pparams[1], NULL)); ! else ! { ! s2->push(new ExpStatement(aloc, vard)); ! Expression *catass = new CatAssignExp(aloc, new IdentifierExp(aloc, idres), res[1]); ! s2->push(createForeach(sfe, aloc, pparams[1], new ExpStatement(aloc, catass))); ! s2->push(new ReturnStatement(aloc, new IdentifierExp(aloc, idres))); ! } Expression *aggr; Type *indexty; ! if (sfe->rangefe && (indexty = ety)->isintegral()) { sfe->rangefe->lwr->type = indexty; sfe->rangefe->upr->type = indexty; *************** void staticForeachPrepare(StaticForeach *** 386,396 **** sfe->aggrfe->aggr = semantic(sfe->aggrfe->aggr, sc); sc = sc->endCTFE(); sfe->aggrfe->aggr = sfe->aggrfe->aggr->optimize(WANTvalue); - Type *tab = sfe->aggrfe->aggr->type->toBasetype(); - if (tab->ty != Ttuple) - { - sfe->aggrfe->aggr = sfe->aggrfe->aggr->ctfeInterpret(); - } } if (sfe->aggrfe && sfe->aggrfe->aggr->type->toBasetype()->ty == Terror) --- 398,403 ---- diff -Nrcpad gcc-10.3.0/gcc/d/dmd/dcast.c gcc-10.4.0/gcc/d/dmd/dcast.c *** gcc-10.3.0/gcc/d/dmd/dcast.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/d/dmd/dcast.c Tue Jun 28 08:54:28 2022 *************** Expression *castTo(Expression *e, Scope *** 1494,1506 **** // cast(U[])sa; // ==> cast(U[])sa[]; d_uns64 fsize = t1b->nextOf()->size(); d_uns64 tsize = tob->nextOf()->size(); ! if ((((TypeSArray *)t1b)->dim->toInteger() * fsize) % tsize != 0) { ! // copied from sarray_toDarray() in e2ir.c ! e->error("cannot cast expression %s of type %s to %s since sizes don't line up", ! e->toChars(), e->type->toChars(), t->toChars()); ! result = new ErrorExp(); ! return; } goto Lok; } --- 1494,1509 ---- // cast(U[])sa; // ==> cast(U[])sa[]; d_uns64 fsize = t1b->nextOf()->size(); d_uns64 tsize = tob->nextOf()->size(); ! if (fsize != tsize) { ! dinteger_t dim = ((TypeSArray *)t1b)->dim->toInteger(); ! if (tsize == 0 || (dim * fsize) % tsize != 0) ! { ! e->error("cannot cast expression `%s` of type `%s` to `%s` since sizes don't line up", ! e->toChars(), e->type->toChars(), t->toChars()); ! result = new ErrorExp(); ! return; ! } } goto Lok; } diff -Nrcpad gcc-10.3.0/gcc/d/dmd/dinterpret.c gcc-10.4.0/gcc/d/dmd/dinterpret.c *** gcc-10.3.0/gcc/d/dmd/dinterpret.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/d/dmd/dinterpret.c Tue Jun 28 08:54:28 2022 *************** Expression *ctfeInterpret(Expression *e) *** 645,651 **** --- 645,660 ---- case TOKfloat64: case TOKcomplex80: case TOKnull: + case TOKvoid: case TOKstring: + case TOKthis: + case TOKsuper: + case TOKtype: + case TOKtypeid: + case TOKtemplate: // non-eponymous template/instance + case TOKscope: // ditto + case TOKdottd: // ditto, e.e1 doesn't matter here + case TOKdot: // ditto if (e->type->ty == Terror) return new ErrorExp(); /* fall through */ diff -Nrcpad gcc-10.3.0/gcc/d/dmd/expression.c gcc-10.4.0/gcc/d/dmd/expression.c *** gcc-10.3.0/gcc/d/dmd/expression.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/d/dmd/expression.c Tue Jun 28 08:54:28 2022 *************** Expression *resolvePropertiesX(Scope *sc *** 459,469 **** if (checkUnsafeAccess(sc, e1, true, true)) return new ErrorExp(); } - else if (e1->op == TOKdot) - { - e1->error("expression has no value"); - return new ErrorExp(); - } else if (e1->op == TOKcall) { CallExp *ce = (CallExp *)e1; --- 459,464 ---- *************** bool Expression::checkPostblit(Scope *sc *** 2655,2662 **** t = t->baseElemOf(); if (t->ty == Tstruct) { ! // Bugzilla 11395: Require TypeInfo generation for array concatenation ! semanticTypeInfo(sc, t); StructDeclaration *sd = ((TypeStruct *)t)->sym; if (sd->postblit) --- 2650,2660 ---- t = t->baseElemOf(); if (t->ty == Tstruct) { ! if (global.params.useTypeInfo && Type::dtypeinfo) ! { ! // Bugzilla 11395: Require TypeInfo generation for array concatenation ! semanticTypeInfo(sc, t); ! } StructDeclaration *sd = ((TypeStruct *)t)->sym; if (sd->postblit) *************** DotTemplateExp::DotTemplateExp(Loc loc, *** 5250,5255 **** --- 5248,5265 ---- this->td = td; } + bool DotTemplateExp::checkType() + { + error("%s %s has no type", td->kind(), toChars()); + return true; + } + + bool DotTemplateExp::checkValue() + { + error("%s %s has no value", td->kind(), toChars()); + return true; + } + /************************************************************/ DotVarExp::DotVarExp(Loc loc, Expression *e, Declaration *var, bool hasOverloads) *************** Expression *FuncInitExp::resolveLoc(Loc *** 6729,6735 **** s = ""; Expression *e = new StringExp(loc, const_cast(s)); e = semantic(e, sc); ! e = e->castTo(sc, type); return e; } --- 6739,6745 ---- s = ""; Expression *e = new StringExp(loc, const_cast(s)); e = semantic(e, sc); ! e->type = Type::tstring; return e; } *************** Expression *PrettyFuncInitExp::resolveLo *** 6763,6769 **** Expression *e = new StringExp(loc, const_cast(s)); e = semantic(e, sc); ! e = e->castTo(sc, type); return e; } --- 6773,6779 ---- Expression *e = new StringExp(loc, const_cast(s)); e = semantic(e, sc); ! e->type = Type::tstring; return e; } diff -Nrcpad gcc-10.3.0/gcc/d/dmd/expression.h gcc-10.4.0/gcc/d/dmd/expression.h *** gcc-10.3.0/gcc/d/dmd/expression.h Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/d/dmd/expression.h Tue Jun 28 08:54:28 2022 *************** public: *** 807,812 **** --- 807,814 ---- TemplateDeclaration *td; DotTemplateExp(Loc loc, Expression *e, TemplateDeclaration *td); + bool checkType(); + bool checkValue(); void accept(Visitor *v) { v->visit(this); } }; diff -Nrcpad gcc-10.3.0/gcc/d/dmd/expressionsem.c gcc-10.4.0/gcc/d/dmd/expressionsem.c *** gcc-10.3.0/gcc/d/dmd/expressionsem.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/d/dmd/expressionsem.c Tue Jun 28 08:54:28 2022 *************** public: *** 2506,2516 **** --- 2506,2523 ---- void visit(DotTemplateExp *e) { + if (e->type) + { + result = e; + return; + } if (Expression *ex = unaSemantic(e, sc)) { result = ex; return; } + // 'void' like TemplateExp + e->type = Type::tvoid; result = e; } diff -Nrcpad gcc-10.3.0/gcc/d/dmd/mtype.c gcc-10.4.0/gcc/d/dmd/mtype.c *** gcc-10.3.0/gcc/d/dmd/mtype.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/d/dmd/mtype.c Tue Jun 28 08:54:28 2022 *************** Expression *Type::getProperty(Loc loc, I *** 2060,2066 **** } else if (ident == Id::__xalignof) { ! e = new IntegerExp(loc, alignsize(), Type::tsize_t); } else if (ident == Id::_init) { --- 2060,2069 ---- } else if (ident == Id::__xalignof) { ! unsigned explicitAlignment = alignment(); ! unsigned naturalAlignment = alignsize(); ! unsigned actualAlignment = (explicitAlignment == STRUCTALIGN_DEFAULT ? naturalAlignment : explicitAlignment); ! e = new IntegerExp(loc, actualAlignment, Type::tsize_t); } else if (ident == Id::_init) { diff -Nrcpad gcc-10.3.0/gcc/d/dmd/statementsem.c gcc-10.4.0/gcc/d/dmd/statementsem.c *** gcc-10.3.0/gcc/d/dmd/statementsem.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/d/dmd/statementsem.c Tue Jun 28 08:54:28 2022 *************** public: *** 568,576 **** else { e = resolveProperties(sc, e); - type = e->type; - if (paramtype) - type = paramtype; Initializer *ie = new ExpInitializer(Loc(), e); VarDeclaration *v = new VarDeclaration(loc, type, ident, ie); if (storageClass & STCref) --- 568,573 ---- *************** public: *** 651,672 **** } } p->type = p->type->semantic(loc, sc); ! TY keyty = p->type->ty; ! if (keyty != Tint32 && keyty != Tuns32) { ! if (global.params.isLP64) ! { ! if (keyty != Tint64 && keyty != Tuns64) ! { ! fs->error("foreach: key type must be int or uint, long or ulong, not %s", p->type->toChars()); ! return false; ! } ! } ! else ! { ! fs->error("foreach: key type must be int or uint, not %s", p->type->toChars()); ! return false; ! } } Initializer *ie = new ExpInitializer(Loc(), new IntegerExp(k)); VarDeclaration *var = new VarDeclaration(loc, p->type, p->ident, ie); --- 648,670 ---- } } p->type = p->type->semantic(loc, sc); ! ! if (!p->type->isintegral()) { ! fs->error("foreach: key cannot be of non-integral type `%s`", ! p->type->toChars()); ! return false; ! } ! ! unsigned length = te ? te->exps->dim : tuple->arguments->dim; ! IntRange dimrange = IntRange(SignExtendedNumber(length)).cast(Type::tsize_t); ! // https://issues.dlang.org/show_bug.cgi?id=12504 ! dimrange.imax = SignExtendedNumber(dimrange.imax.value-1); ! if (!IntRange::fromType(p->type).contains(dimrange)) ! { ! fs->error("index type `%s` cannot cover index range 0..%llu", ! p->type->toChars(), (ulonglong)length); ! return false; } Initializer *ie = new ExpInitializer(Loc(), new IntegerExp(k)); VarDeclaration *var = new VarDeclaration(loc, p->type, p->ident, ie); *************** public: *** 1079,1084 **** --- 1077,1084 ---- { TypeSArray *ta = (TypeSArray *)tab; IntRange dimrange = getIntRange(ta->dim); + // https://issues.dlang.org/show_bug.cgi?id=12504 + dimrange.imax = SignExtendedNumber(dimrange.imax.value-1); if (!IntRange::fromType(var->type).contains(dimrange)) { fs->error("index type '%s' cannot cover index range 0..%llu", p->type->toChars(), ta->dim->toInteger()); diff -Nrcpad gcc-10.3.0/gcc/d/expr.cc gcc-10.4.0/gcc/d/expr.cc *** gcc-10.3.0/gcc/d/expr.cc Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/d/expr.cc Tue Jun 28 08:54:28 2022 *************** class ExprVisitor : public Visitor *** 162,168 **** eptype = type; } ! ret = fold_build2 (code, eptype, arg0, arg1); } return d_convert (type, ret); --- 162,168 ---- eptype = type; } ! ret = build2 (code, eptype, arg0, arg1); } return d_convert (type, ret); *************** public: *** 1468,1474 **** if (tbtype->ty == Tvoid) this->result_ = build_nop (build_ctype (tbtype), result); else ! this->result_ = convert_expr (result, ebtype, tbtype); } /* Build a delete expression. */ --- 1468,1474 ---- if (tbtype->ty == Tvoid) this->result_ = build_nop (build_ctype (tbtype), result); else ! this->result_ = convert_for_rvalue (result, ebtype, tbtype); } /* Build a delete expression. */ *************** public: *** 1870,1884 **** exp = d_convert (build_ctype (e->type), exp); /* If this call was found to be a constructor for a temporary with a ! cleanup, then move the call inside the TARGET_EXPR. The original ! initializer is turned into an assignment, to keep its side effect. */ if (cleanup != NULL_TREE) { tree init = TARGET_EXPR_INITIAL (cleanup); - tree slot = TARGET_EXPR_SLOT (cleanup); - d_mark_addressable (slot); - init = build_assign (INIT_EXPR, slot, init); - TARGET_EXPR_INITIAL (cleanup) = compound_expr (init, exp); exp = cleanup; } --- 1870,1879 ---- exp = d_convert (build_ctype (e->type), exp); /* If this call was found to be a constructor for a temporary with a ! cleanup, then move the call inside the TARGET_EXPR. */ if (cleanup != NULL_TREE) { tree init = TARGET_EXPR_INITIAL (cleanup); TARGET_EXPR_INITIAL (cleanup) = compound_expr (init, exp); exp = cleanup; } *************** build_return_dtor (Expression *e, Type * *** 3144,3154 **** tree result = build_expr (e); /* Convert for initializing the DECL_RESULT. */ - result = convert_expr (result, e->type, type); - - /* If we are returning a reference, take the address. */ if (tf->isref) ! result = build_address (result); /* The decl to store the return expression. */ tree decl = DECL_RESULT (cfun->decl); --- 3139,3152 ---- tree result = build_expr (e); /* Convert for initializing the DECL_RESULT. */ if (tf->isref) ! { ! /* If we are returning a reference, take the address. */ ! result = convert_expr (result, e->type, type); ! result = build_address (result); ! } ! else ! result = convert_for_rvalue (result, e->type, type); /* The decl to store the return expression. */ tree decl = DECL_RESULT (cfun->decl); diff -Nrcpad gcc-10.3.0/gcc/d/typeinfo.cc gcc-10.4.0/gcc/d/typeinfo.cc *** gcc-10.3.0/gcc/d/typeinfo.cc Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/d/typeinfo.cc Tue Jun 28 08:54:28 2022 *************** along with GCC; see the file COPYING3. *** 27,32 **** --- 27,33 ---- #include "dmd/identifier.h" #include "dmd/module.h" #include "dmd/mtype.h" + #include "dmd/scope.h" #include "dmd/template.h" #include "dmd/target.h" *************** make_internal_typeinfo (tinfo_kind tk, I *** 178,183 **** --- 179,185 ---- /* Create the TypeInfo type. */ tree type = make_node (RECORD_TYPE); + TYPE_ARTIFICIAL (type) = 1; finish_builtin_struct (type, ident->toChars (), fields, NULL_TREE); tinfo_types[tk] = type; *************** create_tinfo_types (Module *mod) *** 244,251 **** static void create_frontend_tinfo_types (void) { ! /* If there's no Object class defined, then neither can TypeInfo be. */ ! if (object_module == NULL || ClassDeclaration::object == NULL) return; /* Create all frontend TypeInfo classes declarations. We rely on all --- 246,253 ---- static void create_frontend_tinfo_types (void) { ! /* If there's no object module, then neither can there be TypeInfo. */ ! if (object_module == NULL) return; /* Create all frontend TypeInfo classes declarations. We rely on all *************** get_classinfo_decl (ClassDeclaration *de *** 1370,1385 **** return decl->csym; } ! /* Returns typeinfo reference for TYPE. */ ! tree ! build_typeinfo (const Loc &loc, Type *type) { if (!global.params.useTypeInfo) { static int warned = 0; ! if (!warned) { error_at (make_location_t (loc), "% cannot be used with %<-fno-rtti%>"); --- 1372,1390 ---- return decl->csym; } ! /* Performs sanity checks on the `object.TypeInfo' type, raising an error if ! RTTI is disabled, or the type is missing. */ ! void ! check_typeinfo_type (const Loc &loc, Scope *sc) { if (!global.params.useTypeInfo) { static int warned = 0; ! /* Even when compiling without RTTI we should still be able to evaluate ! TypeInfo at compile-time, just not at run-time. */ ! if (!warned && (!sc || !(sc->flags & SCOPEctfe))) { error_at (make_location_t (loc), "% cannot be used with %<-fno-rtti%>"); *************** build_typeinfo (const Loc &loc, Type *ty *** 1387,1393 **** --- 1392,1420 ---- } } + if (Type::dtypeinfo == NULL + || (Type::dtypeinfo->storage_class & STCtemp)) + { + /* If TypeInfo has not been declared, warn about each location once. */ + static Loc warnloc; + + if (!warnloc.equals (loc)) + { + error_at (make_location_t (loc), + "% could not be found, " + "but is implicitly used"); + warnloc = loc; + } + } + } + + /* Returns typeinfo reference for TYPE. */ + + tree + build_typeinfo (const Loc &loc, Type *type) + { gcc_assert (type->ty != Terror); + check_typeinfo_type (loc, NULL); create_typeinfo (type, NULL); return build_address (get_typeinfo_decl (type->vtinfo)); } diff -Nrcpad gcc-10.3.0/gcc/doc/cpp.1 gcc-10.4.0/gcc/doc/cpp.1 *** gcc-10.3.0/gcc/doc/cpp.1 Thu Apr 8 11:57:41 2021 --- gcc-10.4.0/gcc/doc/cpp.1 Tue Jun 28 08:56:18 2022 *************** *** 1,4 **** ! .\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== --- 1,4 ---- ! .\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== *************** *** 54,69 **** .\" Avoid warning from groff about undefined register 'F'. .de IX .. ! .if !\nF .nr F 0 ! .if \nF>0 \{\ ! . de IX ! . tm Index:\\$1\t\\n%\t"\\$2" .. ! . if !\nF==2 \{\ ! . nr % 0 ! . nr F 2 . \} .\} .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. --- 54,73 ---- .\" Avoid warning from groff about undefined register 'F'. .de IX .. ! .nr rF 0 ! .if \n(.g .if rF .nr rF 1 ! .if (\n(rF:(\n(.g==0)) \{\ ! . if \nF \{\ ! . de IX ! . tm Index:\\$1\t\\n%\t"\\$2" .. ! . if !\nF==2 \{\ ! . nr % 0 ! . nr F 2 ! . \} . \} .\} + .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. *************** *** 129,135 **** .\" ======================================================================== .\" .IX Title "CPP 1" ! .TH CPP 1 "2021-04-08" "gcc-10.3.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l --- 133,139 ---- .\" ======================================================================== .\" .IX Title "CPP 1" ! .TH CPP 1 "2022-06-28" "gcc-10.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 *************** time of the source or package and it sho *** 916,923 **** 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\-2020 Free Software Foundation, Inc. --- 920,927 ---- 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\-2020 Free Software Foundation, Inc. *************** Permission is granted to copy, distribut *** 926,932 **** 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 --- 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 \fBgfdl\fR\|(7). This manual contains no Invariant Sections. The Front-Cover Texts are (a) (see below), and the Back-Cover Texts are (b) (see below). .PP diff -Nrcpad gcc-10.3.0/gcc/doc/cpp.info gcc-10.4.0/gcc/doc/cpp.info *** gcc-10.3.0/gcc/doc/cpp.info Thu Apr 8 12:06:41 2021 --- gcc-10.4.0/gcc/doc/cpp.info Tue Jun 28 09:09:20 2022 *************** *** 1,4 **** ! This is cpp.info, produced by makeinfo version 6.5 from cpp.texi. Copyright (C) 1987-2020 Free Software Foundation, Inc. --- 1,4 ---- ! This is cpp.info, produced by makeinfo version 6.8 from cpp.texi. Copyright (C) 1987-2020 Free Software Foundation, Inc. *************** double underscores. *** 2093,2103 **** mechanism based on 'setjmp' and 'longjmp' for exception handling. '__GXX_EXPERIMENTAL_CXX0X__' ! This macro is defined when compiling a C++ source file with the ! option '-std=c++0x' or '-std=gnu++0x'. It indicates that some ! features likely to be included in C++0x are available. Note that ! these features are experimental, and may change or be removed in ! future versions of GCC. '__GXX_WEAK__' This macro is defined when compiling a C++ source file. It has the --- 2093,2105 ---- mechanism based on 'setjmp' and 'longjmp' for exception handling. '__GXX_EXPERIMENTAL_CXX0X__' ! This macro is defined when compiling a C++ source file with C++11 ! features enabled, i.e., for all C++ language dialects except ! '-std=c++98' and '-std=gnu++98'. This macro is obsolete, but can ! be used to detect experimental C++0x features in very old versions ! of GCC. Since GCC 4.7.0 the '__cplusplus' macro is defined ! correctly, so most code should test '__cplusplus >= 201103L' ! instead of using this macro. '__GXX_WEAK__' This macro is defined when compiling a C++ source file. It has the *************** without any initial '-' or '--'. *** 5243,5328 **** [index] * Menu: ! * A: Invocation. (line 333) ! * C: Invocation. (line 342) ! * CC: Invocation. (line 354) * 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 403) ! * dD: Invocation. (line 422) * DEPENDENCIES_OUTPUT: Environment Variables. ! (line 45) ! * dI: Invocation. (line 432) ! * dM: Invocation. (line 411) ! * dN: Invocation. (line 428) ! * dU: Invocation. (line 436) ! * fdebug-cpp: Invocation. (line 443) ! * fdirectives-only: Invocation. (line 228) ! * fdollars-in-identifiers: Invocation. (line 249) ! * fexec-charset: Invocation. (line 296) ! * fextended-identifiers: Invocation. (line 252) ! * finput-charset: Invocation. (line 309) ! * fmacro-prefix-map: Invocation. (line 287) ! * fmax-include-depth: Invocation. (line 261) ! * fno-canonical-system-headers: Invocation. (line 257) ! * fno-working-directory: Invocation. (line 319) ! * fpreprocessed: Invocation. (line 215) ! * ftabstop: Invocation. (line 264) ! * ftrack-macro-expansion: Invocation. (line 270) ! * fwide-exec-charset: Invocation. (line 301) ! * fworking-directory: Invocation. (line 319) ! * H: Invocation. (line 396) ! * I: Invocation. (line 454) ! * I-: Invocation. (line 508) ! * idirafter: Invocation. (line 454) ! * imacros: Invocation. (line 82) ! * imultilib: Invocation. (line 542) ! * include: Invocation. (line 71) ! * iprefix: Invocation. (line 524) ! * iquote: Invocation. (line 454) ! * isysroot: Invocation. (line 536) ! * isystem: Invocation. (line 454) ! * iwithprefix: Invocation. (line 530) ! * iwithprefixbefore: Invocation. (line 530) ! * M: Invocation. (line 103) ! * MD: Invocation. (line 195) ! * MF: Invocation. (line 137) ! * MG: Invocation. (line 148) ! * MM: Invocation. (line 128) ! * MMD: Invocation. (line 211) ! * MP: Invocation. (line 158) ! * MQ: Invocation. (line 185) ! * MT: Invocation. (line 170) ! * nostdinc: Invocation. (line 546) ! * nostdinc++: Invocation. (line 552) * OBJC_INCLUDE_PATH: Environment Variables. (line 18) ! * P: Invocation. (line 366) ! * pthread: Invocation. (line 96) ! * remap: Invocation. (line 392) * SOURCE_DATE_EPOCH: Environment Variables. ! (line 67) * SUNPRO_DEPENDENCIES: Environment Variables. ! (line 61) ! * traditional: Invocation. (line 374) ! * traditional-cpp: Invocation. (line 374) ! * trigraphs: Invocation. (line 383) ! * U: Invocation. (line 67) ! * undef: Invocation. (line 91) ! * Wcomment: Invocation. (line 558) ! * Wcomments: Invocation. (line 558) ! * Wendif-labels: Invocation. (line 602) ! * Wexpansion-to-defined: Invocation. (line 577) ! * Wno-endif-labels: Invocation. (line 602) ! * Wno-undef: Invocation. (line 573) ! * Wtrigraphs: Invocation. (line 563) ! * Wundef: Invocation. (line 573) ! * Wunused-macros: Invocation. (line 583)  File: cpp.info, Node: Concept Index, Prev: Option Index, Up: Top --- 5245,5330 ---- [index] * Menu: ! * A: Invocation. (line 332) ! * C: Invocation. (line 341) ! * CC: Invocation. (line 353) * 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 402) ! * dD: Invocation. (line 421) * DEPENDENCIES_OUTPUT: Environment Variables. ! (line 44) ! * dI: Invocation. (line 431) ! * dM: Invocation. (line 410) ! * dN: Invocation. (line 427) ! * dU: Invocation. (line 435) ! * fdebug-cpp: Invocation. (line 442) ! * fdirectives-only: Invocation. (line 227) ! * fdollars-in-identifiers: Invocation. (line 248) ! * fexec-charset: Invocation. (line 295) ! * fextended-identifiers: Invocation. (line 251) ! * finput-charset: Invocation. (line 308) ! * fmacro-prefix-map: Invocation. (line 286) ! * fmax-include-depth: Invocation. (line 260) ! * fno-canonical-system-headers: Invocation. (line 256) ! * fno-working-directory: Invocation. (line 318) ! * fpreprocessed: Invocation. (line 214) ! * ftabstop: Invocation. (line 263) ! * ftrack-macro-expansion: Invocation. (line 269) ! * fwide-exec-charset: Invocation. (line 300) ! * fworking-directory: Invocation. (line 318) ! * H: Invocation. (line 395) ! * I: Invocation. (line 453) ! * I-: Invocation. (line 507) ! * idirafter: Invocation. (line 453) ! * imacros: Invocation. (line 81) ! * imultilib: Invocation. (line 541) ! * include: Invocation. (line 70) ! * iprefix: Invocation. (line 523) ! * iquote: Invocation. (line 453) ! * isysroot: Invocation. (line 535) ! * isystem: Invocation. (line 453) ! * iwithprefix: Invocation. (line 529) ! * iwithprefixbefore: Invocation. (line 529) ! * M: Invocation. (line 102) ! * MD: Invocation. (line 194) ! * MF: Invocation. (line 136) ! * MG: Invocation. (line 147) ! * MM: Invocation. (line 127) ! * MMD: Invocation. (line 210) ! * MP: Invocation. (line 157) ! * MQ: Invocation. (line 184) ! * MT: Invocation. (line 169) ! * nostdinc: Invocation. (line 545) ! * nostdinc++: Invocation. (line 551) * OBJC_INCLUDE_PATH: Environment Variables. (line 18) ! * P: Invocation. (line 365) ! * pthread: Invocation. (line 95) ! * remap: Invocation. (line 391) * SOURCE_DATE_EPOCH: Environment Variables. ! (line 66) * SUNPRO_DEPENDENCIES: Environment Variables. ! (line 60) ! * traditional: Invocation. (line 373) ! * traditional-cpp: Invocation. (line 373) ! * trigraphs: Invocation. (line 382) ! * U: Invocation. (line 66) ! * undef: Invocation. (line 90) ! * Wcomment: Invocation. (line 557) ! * Wcomments: Invocation. (line 557) ! * Wendif-labels: Invocation. (line 601) ! * Wexpansion-to-defined: Invocation. (line 576) ! * Wno-endif-labels: Invocation. (line 601) ! * Wno-undef: Invocation. (line 572) ! * Wtrigraphs: Invocation. (line 562) ! * Wundef: Invocation. (line 572) ! * Wunused-macros: Invocation. (line 582)  File: cpp.info, Node: Concept Index, Prev: Option Index, Up: Top *************** Concept Index *** 5347,5358 **** * assertions, canceling: Obsolete Features. (line 59) * backslash-newline: Initial processing. (line 61) * block comments: Initial processing. (line 77) ! * C language, traditional: Invocation. (line 372) * C++ named operators: C++ Named Operators. (line 6) * character constants: Tokenization. (line 81) ! * character set, execution: Invocation. (line 296) ! * character set, input: Invocation. (line 309) ! * character set, wide execution: Invocation. (line 301) * command line: Invocation. (line 6) * commenting out code: Deleted Code. (line 6) * comments: Initial processing. (line 77) --- 5349,5360 ---- * assertions, canceling: Obsolete Features. (line 59) * backslash-newline: Initial processing. (line 61) * block comments: Initial processing. (line 77) ! * C language, traditional: Invocation. (line 371) * C++ named operators: C++ Named Operators. (line 6) * character constants: Tokenization. (line 81) ! * character set, execution: Invocation. (line 295) ! * character set, input: Invocation. (line 308) ! * character set, wide execution: Invocation. (line 300) * command line: Invocation. (line 6) * commenting out code: Deleted Code. (line 6) * comments: Initial processing. (line 77) *************** Concept Index *** 5366,5375 **** * 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. --- 5368,5377 ---- * controlling macro: Once-Only Headers. (line 35) * defined: Defined. (line 6) * dependencies for make as output: Environment Variables. ! (line 45) * dependencies for make as output <1>: Environment Variables. ! (line 61) ! * dependencies, make: Invocation. (line 102) * diagnostic: Diagnostics. (line 6) * digraphs: Tokenization. (line 100) * directive line: The preprocessing language. *************** Concept Index *** 5408,5414 **** * 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. --- 5410,5416 ---- * macros in include: Computed Includes. (line 6) * macros with arguments: Macro Arguments. (line 6) * macros with variable arguments: Variadic Macros. (line 6) ! * make: Invocation. (line 102) * manifest constants: Object-like Macros. (line 6) * named operators: C++ Named Operators. (line 6) * newlines in macro arguments: Newlines in Arguments. *************** Concept Index *** 5416,5422 **** * 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) --- 5418,5424 ---- * null directive: Other Directives. (line 15) * numbers: Tokenization. (line 58) * object-like macro: Object-like Macros. (line 6) ! * options: Invocation. (line 42) * options, grouping: Invocation. (line 38) * other tokens: Tokenization. (line 114) * output format: Preprocessor Output. (line 12) *************** Concept Index *** 5463,5469 **** * token concatenation: Concatenation. (line 6) * token pasting: Concatenation. (line 6) * tokens: Tokenization. (line 6) ! * traditional C language: Invocation. (line 372) * trigraphs: Initial processing. (line 32) * undefining macros: Undefining and Redefining Macros. (line 6) --- 5465,5471 ---- * token concatenation: Concatenation. (line 6) * token pasting: Concatenation. (line 6) * tokens: Tokenization. (line 6) ! * traditional C language: Invocation. (line 371) * trigraphs: Initial processing. (line 32) * undefining macros: Undefining and Redefining Macros. (line 6) *************** Node: Variadic Macros59129 *** 5505,5558 **** Node: Predefined Macros64081 Node: Standard Predefined Macros64669 Node: Common Predefined Macros71001 ! Node: System-specific Predefined Macros92104 ! Node: C++ Named Operators94127 ! Node: Undefining and Redefining Macros95091 ! Node: Directives Within Macro Arguments97189 ! Node: Macro Pitfalls98130 ! Node: Misnesting98663 ! Node: Operator Precedence Problems99775 ! Node: Swallowing the Semicolon101641 ! Node: Duplication of Side Effects103664 ! Node: Self-Referential Macros105847 ! Node: Argument Prescan108256 ! Node: Newlines in Arguments112007 ! Node: Conditionals112958 ! Node: Conditional Uses114654 ! Node: Conditional Syntax116012 ! Node: Ifdef116412 ! Node: If119569 ! Node: Defined121873 ! Node: Else123266 ! Node: Elif123836 ! Node: __has_attribute125149 ! Node: __has_cpp_attribute126683 ! Node: __has_builtin127569 ! Node: __has_include128704 ! Node: Deleted Code130291 ! Node: Diagnostics131538 ! Node: Line Control133087 ! Node: Pragmas135365 ! Node: Other Directives139762 ! Node: Preprocessor Output140812 ! Node: Traditional Mode143965 ! Node: Traditional lexical analysis145102 ! Node: Traditional macros147605 ! Node: Traditional miscellany151402 ! Node: Traditional warnings152398 ! Node: Implementation Details154595 ! Node: Implementation-defined behavior155158 ! Ref: Identifier characters155908 ! Node: Implementation limits158956 ! Node: Obsolete Features161629 ! Node: Invocation164473 ! Ref: dashMF170508 ! Ref: fdollars-in-identifiers175087 ! Ref: Wtrigraphs189213 ! Node: Environment Variables191268 ! Node: GNU Free Documentation License194961 ! Node: Index of Directives220106 ! Node: Option Index222259 ! Node: Concept Index228288  End Tag Table --- 5507,5565 ---- Node: Predefined Macros64081 Node: Standard Predefined Macros64669 Node: Common Predefined Macros71001 ! Node: System-specific Predefined Macros92241 ! Node: C++ Named Operators94264 ! Node: Undefining and Redefining Macros95228 ! Node: Directives Within Macro Arguments97326 ! Node: Macro Pitfalls98267 ! Node: Misnesting98800 ! Node: Operator Precedence Problems99912 ! Node: Swallowing the Semicolon101778 ! Node: Duplication of Side Effects103801 ! Node: Self-Referential Macros105984 ! Node: Argument Prescan108393 ! Node: Newlines in Arguments112144 ! Node: Conditionals113095 ! Node: Conditional Uses114791 ! Node: Conditional Syntax116149 ! Node: Ifdef116549 ! Node: If119706 ! Node: Defined122010 ! Node: Else123403 ! Node: Elif123973 ! Node: __has_attribute125286 ! Node: __has_cpp_attribute126820 ! Node: __has_builtin127706 ! Node: __has_include128841 ! Node: Deleted Code130428 ! Node: Diagnostics131675 ! Node: Line Control133224 ! Node: Pragmas135502 ! Node: Other Directives139899 ! Node: Preprocessor Output140949 ! Node: Traditional Mode144102 ! Node: Traditional lexical analysis145239 ! Node: Traditional macros147742 ! Node: Traditional miscellany151539 ! Node: Traditional warnings152535 ! Node: Implementation Details154732 ! Node: Implementation-defined behavior155295 ! Ref: Identifier characters156045 ! Node: Implementation limits159093 ! Node: Obsolete Features161766 ! Node: Invocation164610 ! Ref: dashMF170645 ! Ref: fdollars-in-identifiers175224 ! Ref: Wtrigraphs189350 ! Node: Environment Variables191405 ! Node: GNU Free Documentation License195098 ! Node: Index of Directives220243 ! Node: Option Index222396 ! Node: Concept Index228425  End Tag Table + +  + Local Variables: + coding: utf-8 + End: diff -Nrcpad gcc-10.3.0/gcc/doc/cpp.texi gcc-10.4.0/gcc/doc/cpp.texi *** gcc-10.3.0/gcc/doc/cpp.texi Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/doc/cpp.texi Tue Jun 28 08:54:28 2022 *************** mechanism based on @code{setjmp} and @co *** 2311,2321 **** handling. @item __GXX_EXPERIMENTAL_CXX0X__ ! This macro is defined when compiling a C++ source file with the option ! @option{-std=c++0x} or @option{-std=gnu++0x}. It indicates that some ! features likely to be included in C++0x are available. Note that these ! features are experimental, and may change or be removed in future ! versions of GCC. @item __GXX_WEAK__ This macro is defined when compiling a C++ source file. It has the --- 2311,2323 ---- handling. @item __GXX_EXPERIMENTAL_CXX0X__ ! This macro is defined when compiling a C++ source file with C++11 features ! enabled, i.e., for all C++ language dialects except @option{-std=c++98} ! and @option{-std=gnu++98}. This macro is obsolete, but can be used to ! detect experimental C++0x features in very old versions of GCC. Since ! GCC 4.7.0 the @code{__cplusplus} macro is defined correctly, so most ! code should test @code{__cplusplus >= 201103L} instead of using this ! macro. @item __GXX_WEAK__ This macro is defined when compiling a C++ source file. It has the diff -Nrcpad gcc-10.3.0/gcc/doc/cppinternals.info gcc-10.4.0/gcc/doc/cppinternals.info *** gcc-10.3.0/gcc/doc/cppinternals.info Thu Apr 8 12:06:41 2021 --- gcc-10.4.0/gcc/doc/cppinternals.info Tue Jun 28 09:09:19 2022 *************** *** 1,4 **** ! This is cppinternals.info, produced by makeinfo version 6.5 from cppinternals.texi. INFO-DIR-SECTION Software development --- 1,4 ---- ! This is cppinternals.info, produced by makeinfo version 6.8 from cppinternals.texi. INFO-DIR-SECTION Software development *************** will be removed, so I'll not discuss it *** 137,143 **** The job of '_cpp_lex_direct' is simply to lex a token. It is not responsible for issues like directive handling, returning lookahead tokens directly, multiple-include optimization, or conditional block ! skipping. It necessarily has a minor ro^le to play in memory management of lexed lines. I discuss these issues in a separate section (*note Lexing a line::). --- 137,143 ---- The job of '_cpp_lex_direct' is simply to lex a token. It is not responsible for issues like directive handling, returning lookahead tokens directly, multiple-include optimization, or conditional block ! skipping. It necessarily has a minor rôle to play in memory management of lexed lines. I discuss these issues in a separate section (*note Lexing a line::). *************** Node: Files44873 *** 1039,1041 **** --- 1039,1046 ---- Node: Concept Index48339  End Tag Table + +  + Local Variables: + coding: utf-8 + End: diff -Nrcpad gcc-10.3.0/gcc/doc/extend.texi gcc-10.4.0/gcc/doc/extend.texi *** gcc-10.3.0/gcc/doc/extend.texi Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/doc/extend.texi Tue Jun 28 08:54:28 2022 *************** calls. *** 3228,3242 **** This tells the compiler that a function is @code{malloc}-like, i.e., that the pointer @var{P} returned by the function cannot alias any other pointer valid when the function returns, and moreover no ! pointers to valid objects occur in any storage addressed by @var{P}. ! Using this attribute can improve optimization. Compiler predicts ! that a function with the attribute returns non-null in most cases. ! Functions like ! @code{malloc} and @code{calloc} have this property because they return ! a pointer to uninitialized or zeroed-out storage. However, functions ! like @code{realloc} do not have this property, as they can return a ! pointer to storage containing pointers. @item no_icf @cindex @code{no_icf} function attribute --- 3228,3245 ---- This tells the compiler that a function is @code{malloc}-like, i.e., that the pointer @var{P} returned by the function cannot alias any other pointer valid when the function returns, and moreover no ! pointers to valid objects occur in any storage addressed by @var{P}. In ! addition, GCC predicts that a function with the attribute returns ! non-null in most cases. ! Using the attribute is designed to improve optimization ! by relying on the aliasing property it implies. Functions like @code{malloc} ! and @code{calloc} have this property because they return a pointer to ! uninitialized or zeroed-out, newly obtained storage. However, functions ! like @code{realloc} do not have this property, as they may return pointers ! to storage containing pointers to existing objects. Additionally, since ! all such functions are assumed to return null only infrequently, callers ! can be optimized based on that assumption. @item no_icf @cindex @code{no_icf} function attribute *************** void __builtin_mma_xxmtacc (__vector_qua *** 20953,20966 **** void __builtin_mma_xxmfacc (__vector_quad *); void __builtin_mma_xxsetaccz (__vector_quad *); ! void __builtin_mma_assemble_acc (__vector_quad *, vec_t, vec_t, vec_t, vec_t); void __builtin_mma_disassemble_acc (void *, __vector_quad *); ! void __builtin_vsx_assemble_pair (__vector_pair *, vec_t, vec_t); void __builtin_vsx_disassemble_pair (void *, __vector_pair *); vec_t __builtin_vsx_xvcvspbf16 (vec_t); vec_t __builtin_vsx_xvcvbf16spn (vec_t); @end smallexample @node RISC-V Built-in Functions --- 20956,20972 ---- void __builtin_mma_xxmfacc (__vector_quad *); void __builtin_mma_xxsetaccz (__vector_quad *); ! void __builtin_mma_build_acc (__vector_quad *, vec_t, vec_t, vec_t, vec_t); void __builtin_mma_disassemble_acc (void *, __vector_quad *); ! void __builtin_vsx_build_pair (__vector_pair *, vec_t, vec_t); void __builtin_vsx_disassemble_pair (void *, __vector_pair *); vec_t __builtin_vsx_xvcvspbf16 (vec_t); vec_t __builtin_vsx_xvcvbf16spn (vec_t); + + __vector_pair __builtin_vsx_lxvp (size_t, __vector_pair *); + void __builtin_vsx_stxvp (__vector_pair, size_t, __vector_pair *); @end smallexample @node RISC-V Built-in Functions diff -Nrcpad gcc-10.3.0/gcc/doc/fsf-funding.7 gcc-10.4.0/gcc/doc/fsf-funding.7 *** gcc-10.3.0/gcc/doc/fsf-funding.7 Thu Apr 8 11:57:41 2021 --- gcc-10.4.0/gcc/doc/fsf-funding.7 Tue Jun 28 08:56:18 2022 *************** *** 1,4 **** ! .\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== --- 1,4 ---- ! .\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== *************** *** 54,69 **** .\" Avoid warning from groff about undefined register 'F'. .de IX .. ! .if !\nF .nr F 0 ! .if \nF>0 \{\ ! . de IX ! . tm Index:\\$1\t\\n%\t"\\$2" .. ! . if !\nF==2 \{\ ! . nr % 0 ! . nr F 2 . \} .\} .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. --- 54,73 ---- .\" Avoid warning from groff about undefined register 'F'. .de IX .. ! .nr rF 0 ! .if \n(.g .if rF .nr rF 1 ! .if (\n(rF:(\n(.g==0)) \{\ ! . if \nF \{\ ! . de IX ! . tm Index:\\$1\t\\n%\t"\\$2" .. ! . if !\nF==2 \{\ ! . nr % 0 ! . nr F 2 ! . \} . \} .\} + .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. *************** *** 129,135 **** .\" ======================================================================== .\" .IX Title "FSF-FUNDING 7" ! .TH FSF-FUNDING 7 "2021-04-08" "gcc-10.3.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l --- 133,139 ---- .\" ======================================================================== .\" .IX Title "FSF-FUNDING 7" ! .TH FSF-FUNDING 7 "2022-06-28" "gcc-10.4.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l *************** proper thing to do\*(R" when distributin *** 181,187 **** assure a steady flow of resources into making more free software. .SH "SEE ALSO" .IX Header "SEE ALSO" ! \&\fIgpl\fR\|(7), \fIgfdl\fR\|(7). .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright (c) 1994 Free Software Foundation, Inc. --- 185,191 ---- assure a steady flow of resources into making more free software. .SH "SEE ALSO" .IX Header "SEE ALSO" ! \&\fBgpl\fR\|(7), \fBgfdl\fR\|(7). .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright (c) 1994 Free Software Foundation, Inc. diff -Nrcpad gcc-10.3.0/gcc/doc/g++.1 gcc-10.4.0/gcc/doc/g++.1 *** gcc-10.3.0/gcc/doc/g++.1 Thu Apr 8 12:06:42 2021 --- gcc-10.4.0/gcc/doc/g++.1 Tue Jun 28 09:09:20 2022 *************** *** 1,4 **** ! .\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== --- 1,4 ---- ! .\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== *************** *** 54,69 **** .\" Avoid warning from groff about undefined register 'F'. .de IX .. ! .if !\nF .nr F 0 ! .if \nF>0 \{\ ! . de IX ! . tm Index:\\$1\t\\n%\t"\\$2" .. ! . if !\nF==2 \{\ ! . nr % 0 ! . nr F 2 . \} .\} .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. --- 54,73 ---- .\" Avoid warning from groff about undefined register 'F'. .de IX .. ! .nr rF 0 ! .if \n(.g .if rF .nr rF 1 ! .if (\n(rF:(\n(.g==0)) \{\ ! . if \nF \{\ ! . de IX ! . tm Index:\\$1\t\\n%\t"\\$2" .. ! . if !\nF==2 \{\ ! . nr % 0 ! . nr F 2 ! . \} . \} .\} + .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. *************** *** 129,135 **** .\" ======================================================================== .\" .IX Title "GCC 1" ! .TH GCC 1 "2021-04-08" "gcc-10.3.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l --- 133,139 ---- .\" ======================================================================== .\" .IX Title "GCC 1" ! .TH GCC 1 "2022-06-28" "gcc-10.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 *************** in the following sections. *** 775,780 **** --- 779,785 ---- \&\-mverbose\-cost\-dump \&\-mpure\-code \&\-mcmse + \&\-mfix\-cmse\-cve\-2021\-35465 \&\-mfdpic\fR .Sp \&\fI\s-1AVR\s0 Options\fR *************** This is useful if you need to make sure *** 3669,3676 **** 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 --- 3674,3681 ---- 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 *************** name is still supported, but the newer n *** 4657,4663 **** \&\-Wredundant\-move\fR (only for \*(C+) \&\fB\-Wtype\-limits \&\-Wuninitialized ! \&\-Wshift\-negative\-value\fR (in \*(C+03 and in C99 and newer) \&\fB\-Wunused\-parameter\fR (only with\fB \fR\fB\-Wunused\fR\fB \fRor\fB \fR\fB\-Wall\fR) \&\fB\-Wunused\-but\-set\-parameter\fR (only with\fB \fR\fB\-Wunused\fR\fB \fRor\fB \fR\fB\-Wall\fR) .Sp --- 4662,4668 ---- \&\-Wredundant\-move\fR (only for \*(C+) \&\fB\-Wtype\-limits \&\-Wuninitialized ! \&\-Wshift\-negative\-value\fR (in \*(C+11 to \*(C+17 and in C99 and newer) \&\fB\-Wunused\-parameter\fR (only with\fB \fR\fB\-Wunused\fR\fB \fRor\fB \fR\fB\-Wall\fR) \&\fB\-Wunused\-but\-set\-parameter\fR (only with\fB \fR\fB\-Wunused\fR\fB \fRor\fB \fR\fB\-Wall\fR) .Sp *************** of the type. This warning is enabled by *** 5550,5556 **** .IP "\fB\-Wshift\-negative\-value\fR" 4 .IX Item "-Wshift-negative-value" Warn if left shifting a negative value. This warning is enabled by ! \&\fB\-Wextra\fR in C99 and \*(C+11 modes (and newer). .IP "\fB\-Wno\-shift\-overflow\fR" 4 .IX Item "-Wno-shift-overflow" .PD 0 --- 5555,5561 ---- .IP "\fB\-Wshift\-negative\-value\fR" 4 .IX Item "-Wshift-negative-value" Warn if left shifting a negative value. This warning is enabled by ! \&\fB\-Wextra\fR in C99 (and newer) and \*(C+11 to \*(C+17 modes. .IP "\fB\-Wno\-shift\-overflow\fR" 4 .IX Item "-Wno-shift-overflow" .PD 0 *************** example of how this can happen: *** 5821,5827 **** .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 --- 5826,5832 ---- .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 *************** The option cannot be combined with \fB\- *** 12639,12645 **** .IX Item "-fsanitize=undefined" Enable UndefinedBehaviorSanitizer, a fast undefined behavior detector. Various computations are instrumented to detect undefined behavior ! at runtime. Current suboptions are: .RS 4 .IP "\fB\-fsanitize=shift\fR" 4 .IX Item "-fsanitize=shift" --- 12644,12651 ---- .IX Item "-fsanitize=undefined" Enable UndefinedBehaviorSanitizer, a fast undefined behavior detector. Various computations are instrumented to detect undefined behavior ! at runtime. See <\fBhttps://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html\fR> for more details. The run-time behavior can be influenced using the ! \&\fB\s-1UBSAN_OPTIONS\s0\fR environment variable. Current suboptions are: .RS 4 .IP "\fB\-fsanitize=shift\fR" 4 .IX Item "-fsanitize=shift" *************** You can also use the \f(CW\*(C`nocf_chec *** 12883,12889 **** which functions and calls should be skipped from instrumentation. .Sp Currently the x86 GNU/Linux target provides an implementation based ! on Intel Control-flow Enforcement Technology (\s-1CET\s0). .IP "\fB\-fstack\-protector\fR" 4 .IX Item "-fstack-protector" Emit extra code to check for buffer overflows, such as stack smashing --- 12889,12896 ---- which functions and calls should be skipped from instrumentation. .Sp Currently the x86 GNU/Linux target provides an implementation based ! on Intel Control-flow Enforcement Technology (\s-1CET\s0) which works for ! i686 processor or newer. .IP "\fB\-fstack\-protector\fR" 4 .IX Item "-fstack-protector" Emit extra code to check for buffer overflows, such as stack smashing *************** performance of the code. Permissible va *** 16316,16323 **** \&\fBcortex\-a57\fR, \fBcortex\-a72\fR, \fBcortex\-a73\fR, \fBcortex\-a75\fR, \&\fBcortex\-a76\fR, \fBcortex\-a76ae\fR, \fBcortex\-a77\fR, \&\fBcortex\-a65\fR, \fBcortex\-a65ae\fR, \fBcortex\-a34\fR, ! \&\fBares\fR, \fBexynos\-m1\fR, \fBemag\fR, \fBfalkor\fR, \fBneoverse\-e1\fR, ! \&\fBneoverse\-n1\fR, \fBneoverse\-n2\fR, \fBneoverse\-v1\fR, \fBqdf24xx\fR, \&\fBsaphira\fR, \fBphecda\fR, \fBxgene1\fR, \fBvulcan\fR, \fBocteontx\fR, \&\fBocteontx81\fR, \fBocteontx83\fR, \&\fBocteontx2\fR, \fBocteontx2t98\fR, \fBocteontx2t96\fR --- 16323,16331 ---- \&\fBcortex\-a57\fR, \fBcortex\-a72\fR, \fBcortex\-a73\fR, \fBcortex\-a75\fR, \&\fBcortex\-a76\fR, \fBcortex\-a76ae\fR, \fBcortex\-a77\fR, \&\fBcortex\-a65\fR, \fBcortex\-a65ae\fR, \fBcortex\-a34\fR, ! \&\fBares\fR, \fBexynos\-m1\fR, \fBemag\fR, \fBfalkor\fR, ! \&\fBneoverse\-e1\fR, \fBneoverse\-n1\fR, \fBneoverse\-n2\fR, ! \&\fBneoverse\-v1\fR, \fBneoverse\-512tvb\fR, \fBqdf24xx\fR, \&\fBsaphira\fR, \fBphecda\fR, \fBxgene1\fR, \fBvulcan\fR, \fBocteontx\fR, \&\fBocteontx81\fR, \fBocteontx83\fR, \&\fBocteontx2\fR, \fBocteontx2t98\fR, \fBocteontx2t96\fR *************** The values \fBcortex\-a57.cortex\-a53\fR *** 16337,16342 **** --- 16345,16359 ---- \&\fBcortex\-a75.cortex\-a55\fR, \fBcortex\-a76.cortex\-a55\fR specify that \s-1GCC\s0 should tune for a big.LITTLE system. .Sp + The value \fBneoverse\-512tvb\fR specifies that \s-1GCC\s0 should tune + for Neoverse cores that (a) implement \s-1SVE\s0 and (b) have a total vector + bandwidth of 512 bits per cycle. In other words, the option tells \s-1GCC\s0 to + tune for Neoverse cores that can execute 4 128\-bit Advanced \s-1SIMD\s0 arithmetic + instructions a cycle and that can execute an equivalent number of \s-1SVE\s0 + arithmetic instructions per cycle (2 for 256\-bit \s-1SVE, 4\s0 for 128\-bit \s-1SVE\s0). + This is more general than tuning for a specific core like Neoverse V1 + but is more specific than the default tuning described below. + .Sp Additionally on native AArch64 GNU/Linux systems the value \&\fBnative\fR tunes performance to the host system. This option has no effect if the compiler is unable to recognize the processor of the host system. *************** the target processor for which to tune f *** 16364,16369 **** --- 16381,16396 ---- by \fB\-mtune\fR). Where this option is used in conjunction with \fB\-march\fR or \fB\-mtune\fR, those options take precedence over the appropriate part of this option. + .Sp + \&\fB\-mcpu=neoverse\-512tvb\fR is special in that it does not refer + to a specific core, but instead refers to all Neoverse cores that + (a) implement \s-1SVE\s0 and (b) have a total vector bandwidth of 512 bits + a cycle. Unless overridden by \fB\-march\fR, + \&\fB\-mcpu=neoverse\-512tvb\fR generates code that can run on a + Neoverse V1 core, since Neoverse V1 is the first Neoverse core with + these properties. Unless overridden by \fB\-mtune\fR, + \&\fB\-mcpu=neoverse\-512tvb\fR tunes code in the same way as for + \&\fB\-mtune=neoverse\-512tvb\fR. .IP "\fB\-moverride=\fR\fIstring\fR" 4 .IX Item "-moverride=string" Override tuning decisions made by the back-end in response to a *************** is only available when generating non-pi *** 18507,18512 **** --- 18534,18546 ---- Generate secure code as per the \*(L"ARMv8\-M Security Extensions: Requirements on Development Tools Engineering Specification\*(R", which can be found on <\fBhttps://developer.arm.com/documentation/ecm0359818/latest/\fR>. + .IP "\fB\-mfix\-cmse\-cve\-2021\-35465\fR" 4 + .IX Item "-mfix-cmse-cve-2021-35465" + Mitigate against a potential security issue with the \f(CW\*(C`VLLDM\*(C'\fR instruction + in some M\-profile devices when using \s-1CMSE\s0 (\s-1CVE\-2021\-365465\s0). This option is + enabled by default when the option \fB\-mcpu=\fR is used with + \&\f(CW\*(C`cortex\-m33\*(C'\fR, \f(CW\*(C`cortex\-m35p\*(C'\fR or \f(CW\*(C`cortex\-m55\*(C'\fR. The option + \&\fB\-mno\-fix\-cmse\-cve\-2021\-35465\fR can be used to disable the mitigation. .IP "\fB\-mfdpic\fR" 4 .IX Item "-mfdpic" .PD 0 *************** are provided for backwards compatibility *** 19912,19918 **** .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 --- 19946,19952 ---- .IP "\fB\-all_load\fR" 4 .IX Item "-all_load" Loads all members of static archive libraries. ! See man \fBld\fR\|(1) for more information. .IP "\fB\-arch_errors_fatal\fR" 4 .IX Item "-arch_errors_fatal" Cause the errors having to do with files that have the wrong architecture *************** bind all undefined references when the f *** 19924,19934 **** .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 --- 19958,19968 ---- .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 *************** Supported values for \fIcpu_type\fR are *** 24669,24675 **** \&\fBe6500\fR, \fBec603e\fR, \fBG3\fR, \fBG4\fR, \fBG5\fR, \&\fBtitan\fR, \fBpower3\fR, \fBpower4\fR, \fBpower5\fR, \fBpower5+\fR, \&\fBpower6\fR, \fBpower6x\fR, \fBpower7\fR, \fBpower8\fR, ! \&\fBpower9\fR, \fBfuture\fR, \fBpowerpc\fR, \fBpowerpc64\fR, \&\fBpowerpc64le\fR, \fBrs64\fR, and \fBnative\fR. .Sp \&\fB\-mcpu=powerpc\fR, \fB\-mcpu=powerpc64\fR, and --- 24703,24709 ---- \&\fBe6500\fR, \fBec603e\fR, \fBG3\fR, \fBG4\fR, \fBG5\fR, \&\fBtitan\fR, \fBpower3\fR, \fBpower4\fR, \fBpower5\fR, \fBpower5+\fR, \&\fBpower6\fR, \fBpower6x\fR, \fBpower7\fR, \fBpower8\fR, ! \&\fBpower9\fR, \fBpower10\fR, \fBpowerpc\fR, \fBpowerpc64\fR, \&\fBpowerpc64le\fR, \fBrs64\fR, and \fBnative\fR. .Sp \&\fB\-mcpu=powerpc\fR, \fB\-mcpu=powerpc64\fR, and *************** Enable/disable the \fI_\|_float128\fR ke *** 24855,24864 **** and use either software emulation for \s-1IEEE\s0 128\-bit floating point or hardware instructions. .Sp ! The \s-1VSX\s0 instruction set (\fB\-mvsx\fR, \fB\-mcpu=power7\fR, ! \&\fB\-mcpu=power8\fR), or \fB\-mcpu=power9\fR must be enabled to ! use the \s-1IEEE\s0 128\-bit floating point support. The \s-1IEEE\s0 128\-bit ! floating point support only works on PowerPC Linux systems. .Sp The default for \fB\-mfloat128\fR is enabled on PowerPC Linux systems using the \s-1VSX\s0 instruction set, and disabled on other systems. --- 24889,24897 ---- and use either software emulation for \s-1IEEE\s0 128\-bit floating point or hardware instructions. .Sp ! The \s-1VSX\s0 instruction set (\fB\-mvsx\fR) must be enabled to use the \s-1IEEE\s0 ! 128\-bit floating point support. The \s-1IEEE\s0 128\-bit floating point is only ! supported on Linux. .Sp The default for \fB\-mfloat128\fR is enabled on PowerPC Linux systems using the \s-1VSX\s0 instruction set, and disabled on other systems. *************** the offset with a symbol reference to a *** 25695,25704 **** .IP "\fB\-mno\-pcrel\fR" 4 .IX Item "-mno-pcrel" .PD ! Generate (do not generate) pc-relative addressing when the option ! \&\fB\-mcpu=future\fR is used. The \fB\-mpcrel\fR option requires ! that the medium code model (\fB\-mcmodel=medium\fR) and prefixed ! addressing (\fB\-mprefixed\fR) options are enabled. .IP "\fB\-mprefixed\fR" 4 .IX Item "-mprefixed" .PD 0 --- 25728,25736 ---- .IP "\fB\-mno\-pcrel\fR" 4 .IX Item "-mno-pcrel" .PD ! Generate (do not generate) pc-relative addressing. The \fB\-mpcrel\fR ! option requires that the medium code model (\fB\-mcmodel=medium\fR) ! and prefixed addressing (\fB\-mprefixed\fR) options are enabled. .IP "\fB\-mprefixed\fR" 4 .IX Item "-mprefixed" .PD 0 *************** addressing (\fB\-mprefixed\fR) options a *** 25706,25720 **** .IX Item "-mno-prefixed" .PD Generate (do not generate) addressing modes using prefixed load and ! store instructions when the option \fB\-mcpu=future\fR is used. .IP "\fB\-mmma\fR" 4 .IX Item "-mmma" .PD 0 .IP "\fB\-mno\-mma\fR" 4 .IX Item "-mno-mma" .PD ! Generate (do not generate) the \s-1MMA\s0 instructions when the option ! \&\fB\-mcpu=future\fR is used. .PP \fI\s-1RX\s0 Options\fR .IX Subsection "RX Options" --- 25738,25754 ---- .IX Item "-mno-prefixed" .PD Generate (do not generate) addressing modes using prefixed load and ! store instructions. The \fB\-mprefixed\fR option requires that ! the option \fB\-mcpu=power10\fR (or later) is enabled. .IP "\fB\-mmma\fR" 4 .IX Item "-mmma" .PD 0 .IP "\fB\-mno\-mma\fR" 4 .IX Item "-mno-mma" .PD ! Generate (do not generate) the \s-1MMA\s0 instructions. The \fB\-mma\fR ! option requires that the option \fB\-mcpu=power10\fR (or later) ! is enabled. .PP \fI\s-1RX\s0 Options\fR .IX Subsection "RX Options" *************** so \fB\-mno\-lra\fR needs to be passed t *** 26798,26807 **** Set the instruction set, register set, and instruction scheduling parameters for machine type \fIcpu_type\fR. Supported values for \fIcpu_type\fR are \&\fBv7\fR, \fBcypress\fR, \fBv8\fR, \fBsupersparc\fR, \fBhypersparc\fR, ! \&\fBleon\fR, \fBleon3\fR, \fBleon3v7\fR, \fBsparclite\fR, \fBf930\fR, ! \&\fBf934\fR, \fBsparclite86x\fR, \fBsparclet\fR, \fBtsc701\fR, \fBv9\fR, ! \&\fBultrasparc\fR, \fBultrasparc3\fR, \fBniagara\fR, \fBniagara2\fR, ! \&\fBniagara3\fR, \fBniagara4\fR, \fBniagara7\fR and \fBm8\fR. .Sp Native Solaris and GNU/Linux toolchains also support the value \fBnative\fR, which selects the best architecture option for the host processor. --- 26832,26842 ---- Set the instruction set, register set, and instruction scheduling parameters for machine type \fIcpu_type\fR. Supported values for \fIcpu_type\fR are \&\fBv7\fR, \fBcypress\fR, \fBv8\fR, \fBsupersparc\fR, \fBhypersparc\fR, ! \&\fBleon\fR, \fBleon3\fR, \fBleon3v7\fR, \fBleon5\fR, \fBsparclite\fR, ! \&\fBf930\fR, \fBf934\fR, \fBsparclite86x\fR, \fBsparclet\fR, \fBtsc701\fR, ! \&\fBv9\fR, \fBultrasparc\fR, \fBultrasparc3\fR, \fBniagara\fR, ! \&\fBniagara2\fR, \fBniagara3\fR, \fBniagara4\fR, \fBniagara7\fR and ! \&\fBm8\fR. .Sp Native Solaris and GNU/Linux toolchains also support the value \fBnative\fR, which selects the best architecture option for the host processor. *************** implementations. *** 26820,26826 **** cypress, leon3v7 .IP "v8" 4 .IX Item "v8" ! supersparc, hypersparc, leon, leon3 .IP "sparclite" 4 .IX Item "sparclite" f930, f934, sparclite86x --- 26855,26861 ---- cypress, leon3v7 .IP "v8" 4 .IX Item "v8" ! supersparc, hypersparc, leon, leon3, leon5 .IP "sparclite" 4 .IX Item "sparclite" f930, f934, sparclite86x *************** The same values for \fB\-mcpu=\fR\fIcpu_ *** 26888,26894 **** \&\fB\-mtune=\fR\fIcpu_type\fR, but the only useful values are those that select a particular \s-1CPU\s0 implementation. Those are \&\fBcypress\fR, \fBsupersparc\fR, \fBhypersparc\fR, \fBleon\fR, ! \&\fBleon3\fR, \fBleon3v7\fR, \fBf930\fR, \fBf934\fR, \&\fBsparclite86x\fR, \fBtsc701\fR, \fBultrasparc\fR, \&\fBultrasparc3\fR, \fBniagara\fR, \fBniagara2\fR, \fBniagara3\fR, \&\fBniagara4\fR, \fBniagara7\fR and \fBm8\fR. With native Solaris --- 26923,26929 ---- \&\fB\-mtune=\fR\fIcpu_type\fR, but the only useful values are those that select a particular \s-1CPU\s0 implementation. Those are \&\fBcypress\fR, \fBsupersparc\fR, \fBhypersparc\fR, \fBleon\fR, ! \&\fBleon3\fR, \fBleon3v7\fR, \fBleon5\fR, \fBf930\fR, \fBf934\fR, \&\fBsparclite86x\fR, \fBtsc701\fR, \fBultrasparc\fR, \&\fBultrasparc3\fR, \fBniagara\fR, \fBniagara2\fR, \fBniagara3\fR, \&\fBniagara4\fR, \fBniagara7\fR and \fBm8\fR. With native Solaris *************** to subtle defects. Supplying them in ca *** 29581,29588 **** 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" --- 29616,29623 ---- is innocuous. .SH "SEE ALSO" .IX Header "SEE ALSO" ! \&\fBgpl\fR\|(7), \fBgfdl\fR\|(7), \fBfsf\-funding\fR\|(7), ! \&\fBcpp\fR\|(1), \fBgcov\fR\|(1), \fBas\fR\|(1), \fBld\fR\|(1), \fBgdb\fR\|(1), \fBdbx\fR\|(1) and the Info entries for \fIgcc\fR, \fIcpp\fR, \fIas\fR, \&\fIld\fR, \fIbinutils\fR and \fIgdb\fR. .SH "AUTHOR" *************** any later version published by the Free *** 29600,29606 **** 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 --- 29635,29641 ---- Invariant Sections being \*(L"\s-1GNU\s0 General Public License\*(R" and \*(L"Funding Free Software\*(R", the Front-Cover texts being (a) (see below), and with the Back-Cover Texts being (b) (see below). A copy of the license is ! included in the \fBgfdl\fR\|(7) man page. .PP (a) The \s-1FSF\s0's Front-Cover Text is: .PP diff -Nrcpad gcc-10.3.0/gcc/doc/gcc.1 gcc-10.4.0/gcc/doc/gcc.1 *** gcc-10.3.0/gcc/doc/gcc.1 Thu Apr 8 12:06:42 2021 --- gcc-10.4.0/gcc/doc/gcc.1 Tue Jun 28 09:09:20 2022 *************** *** 1,4 **** ! .\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== --- 1,4 ---- ! .\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== *************** *** 54,69 **** .\" Avoid warning from groff about undefined register 'F'. .de IX .. ! .if !\nF .nr F 0 ! .if \nF>0 \{\ ! . de IX ! . tm Index:\\$1\t\\n%\t"\\$2" .. ! . if !\nF==2 \{\ ! . nr % 0 ! . nr F 2 . \} .\} .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. --- 54,73 ---- .\" Avoid warning from groff about undefined register 'F'. .de IX .. ! .nr rF 0 ! .if \n(.g .if rF .nr rF 1 ! .if (\n(rF:(\n(.g==0)) \{\ ! . if \nF \{\ ! . de IX ! . tm Index:\\$1\t\\n%\t"\\$2" .. ! . if !\nF==2 \{\ ! . nr % 0 ! . nr F 2 ! . \} . \} .\} + .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. *************** *** 129,135 **** .\" ======================================================================== .\" .IX Title "GCC 1" ! .TH GCC 1 "2021-04-08" "gcc-10.3.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l --- 133,139 ---- .\" ======================================================================== .\" .IX Title "GCC 1" ! .TH GCC 1 "2022-06-28" "gcc-10.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 *************** in the following sections. *** 775,780 **** --- 779,785 ---- \&\-mverbose\-cost\-dump \&\-mpure\-code \&\-mcmse + \&\-mfix\-cmse\-cve\-2021\-35465 \&\-mfdpic\fR .Sp \&\fI\s-1AVR\s0 Options\fR *************** This is useful if you need to make sure *** 3669,3676 **** 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 --- 3674,3681 ---- 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 *************** name is still supported, but the newer n *** 4657,4663 **** \&\-Wredundant\-move\fR (only for \*(C+) \&\fB\-Wtype\-limits \&\-Wuninitialized ! \&\-Wshift\-negative\-value\fR (in \*(C+03 and in C99 and newer) \&\fB\-Wunused\-parameter\fR (only with\fB \fR\fB\-Wunused\fR\fB \fRor\fB \fR\fB\-Wall\fR) \&\fB\-Wunused\-but\-set\-parameter\fR (only with\fB \fR\fB\-Wunused\fR\fB \fRor\fB \fR\fB\-Wall\fR) .Sp --- 4662,4668 ---- \&\-Wredundant\-move\fR (only for \*(C+) \&\fB\-Wtype\-limits \&\-Wuninitialized ! \&\-Wshift\-negative\-value\fR (in \*(C+11 to \*(C+17 and in C99 and newer) \&\fB\-Wunused\-parameter\fR (only with\fB \fR\fB\-Wunused\fR\fB \fRor\fB \fR\fB\-Wall\fR) \&\fB\-Wunused\-but\-set\-parameter\fR (only with\fB \fR\fB\-Wunused\fR\fB \fRor\fB \fR\fB\-Wall\fR) .Sp *************** of the type. This warning is enabled by *** 5550,5556 **** .IP "\fB\-Wshift\-negative\-value\fR" 4 .IX Item "-Wshift-negative-value" Warn if left shifting a negative value. This warning is enabled by ! \&\fB\-Wextra\fR in C99 and \*(C+11 modes (and newer). .IP "\fB\-Wno\-shift\-overflow\fR" 4 .IX Item "-Wno-shift-overflow" .PD 0 --- 5555,5561 ---- .IP "\fB\-Wshift\-negative\-value\fR" 4 .IX Item "-Wshift-negative-value" Warn if left shifting a negative value. This warning is enabled by ! \&\fB\-Wextra\fR in C99 (and newer) and \*(C+11 to \*(C+17 modes. .IP "\fB\-Wno\-shift\-overflow\fR" 4 .IX Item "-Wno-shift-overflow" .PD 0 *************** example of how this can happen: *** 5821,5827 **** .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 --- 5826,5832 ---- .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 *************** The option cannot be combined with \fB\- *** 12639,12645 **** .IX Item "-fsanitize=undefined" Enable UndefinedBehaviorSanitizer, a fast undefined behavior detector. Various computations are instrumented to detect undefined behavior ! at runtime. Current suboptions are: .RS 4 .IP "\fB\-fsanitize=shift\fR" 4 .IX Item "-fsanitize=shift" --- 12644,12651 ---- .IX Item "-fsanitize=undefined" Enable UndefinedBehaviorSanitizer, a fast undefined behavior detector. Various computations are instrumented to detect undefined behavior ! at runtime. See <\fBhttps://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html\fR> for more details. The run-time behavior can be influenced using the ! \&\fB\s-1UBSAN_OPTIONS\s0\fR environment variable. Current suboptions are: .RS 4 .IP "\fB\-fsanitize=shift\fR" 4 .IX Item "-fsanitize=shift" *************** You can also use the \f(CW\*(C`nocf_chec *** 12883,12889 **** which functions and calls should be skipped from instrumentation. .Sp Currently the x86 GNU/Linux target provides an implementation based ! on Intel Control-flow Enforcement Technology (\s-1CET\s0). .IP "\fB\-fstack\-protector\fR" 4 .IX Item "-fstack-protector" Emit extra code to check for buffer overflows, such as stack smashing --- 12889,12896 ---- which functions and calls should be skipped from instrumentation. .Sp Currently the x86 GNU/Linux target provides an implementation based ! on Intel Control-flow Enforcement Technology (\s-1CET\s0) which works for ! i686 processor or newer. .IP "\fB\-fstack\-protector\fR" 4 .IX Item "-fstack-protector" Emit extra code to check for buffer overflows, such as stack smashing *************** performance of the code. Permissible va *** 16316,16323 **** \&\fBcortex\-a57\fR, \fBcortex\-a72\fR, \fBcortex\-a73\fR, \fBcortex\-a75\fR, \&\fBcortex\-a76\fR, \fBcortex\-a76ae\fR, \fBcortex\-a77\fR, \&\fBcortex\-a65\fR, \fBcortex\-a65ae\fR, \fBcortex\-a34\fR, ! \&\fBares\fR, \fBexynos\-m1\fR, \fBemag\fR, \fBfalkor\fR, \fBneoverse\-e1\fR, ! \&\fBneoverse\-n1\fR, \fBneoverse\-n2\fR, \fBneoverse\-v1\fR, \fBqdf24xx\fR, \&\fBsaphira\fR, \fBphecda\fR, \fBxgene1\fR, \fBvulcan\fR, \fBocteontx\fR, \&\fBocteontx81\fR, \fBocteontx83\fR, \&\fBocteontx2\fR, \fBocteontx2t98\fR, \fBocteontx2t96\fR --- 16323,16331 ---- \&\fBcortex\-a57\fR, \fBcortex\-a72\fR, \fBcortex\-a73\fR, \fBcortex\-a75\fR, \&\fBcortex\-a76\fR, \fBcortex\-a76ae\fR, \fBcortex\-a77\fR, \&\fBcortex\-a65\fR, \fBcortex\-a65ae\fR, \fBcortex\-a34\fR, ! \&\fBares\fR, \fBexynos\-m1\fR, \fBemag\fR, \fBfalkor\fR, ! \&\fBneoverse\-e1\fR, \fBneoverse\-n1\fR, \fBneoverse\-n2\fR, ! \&\fBneoverse\-v1\fR, \fBneoverse\-512tvb\fR, \fBqdf24xx\fR, \&\fBsaphira\fR, \fBphecda\fR, \fBxgene1\fR, \fBvulcan\fR, \fBocteontx\fR, \&\fBocteontx81\fR, \fBocteontx83\fR, \&\fBocteontx2\fR, \fBocteontx2t98\fR, \fBocteontx2t96\fR *************** The values \fBcortex\-a57.cortex\-a53\fR *** 16337,16342 **** --- 16345,16359 ---- \&\fBcortex\-a75.cortex\-a55\fR, \fBcortex\-a76.cortex\-a55\fR specify that \s-1GCC\s0 should tune for a big.LITTLE system. .Sp + The value \fBneoverse\-512tvb\fR specifies that \s-1GCC\s0 should tune + for Neoverse cores that (a) implement \s-1SVE\s0 and (b) have a total vector + bandwidth of 512 bits per cycle. In other words, the option tells \s-1GCC\s0 to + tune for Neoverse cores that can execute 4 128\-bit Advanced \s-1SIMD\s0 arithmetic + instructions a cycle and that can execute an equivalent number of \s-1SVE\s0 + arithmetic instructions per cycle (2 for 256\-bit \s-1SVE, 4\s0 for 128\-bit \s-1SVE\s0). + This is more general than tuning for a specific core like Neoverse V1 + but is more specific than the default tuning described below. + .Sp Additionally on native AArch64 GNU/Linux systems the value \&\fBnative\fR tunes performance to the host system. This option has no effect if the compiler is unable to recognize the processor of the host system. *************** the target processor for which to tune f *** 16364,16369 **** --- 16381,16396 ---- by \fB\-mtune\fR). Where this option is used in conjunction with \fB\-march\fR or \fB\-mtune\fR, those options take precedence over the appropriate part of this option. + .Sp + \&\fB\-mcpu=neoverse\-512tvb\fR is special in that it does not refer + to a specific core, but instead refers to all Neoverse cores that + (a) implement \s-1SVE\s0 and (b) have a total vector bandwidth of 512 bits + a cycle. Unless overridden by \fB\-march\fR, + \&\fB\-mcpu=neoverse\-512tvb\fR generates code that can run on a + Neoverse V1 core, since Neoverse V1 is the first Neoverse core with + these properties. Unless overridden by \fB\-mtune\fR, + \&\fB\-mcpu=neoverse\-512tvb\fR tunes code in the same way as for + \&\fB\-mtune=neoverse\-512tvb\fR. .IP "\fB\-moverride=\fR\fIstring\fR" 4 .IX Item "-moverride=string" Override tuning decisions made by the back-end in response to a *************** is only available when generating non-pi *** 18507,18512 **** --- 18534,18546 ---- Generate secure code as per the \*(L"ARMv8\-M Security Extensions: Requirements on Development Tools Engineering Specification\*(R", which can be found on <\fBhttps://developer.arm.com/documentation/ecm0359818/latest/\fR>. + .IP "\fB\-mfix\-cmse\-cve\-2021\-35465\fR" 4 + .IX Item "-mfix-cmse-cve-2021-35465" + Mitigate against a potential security issue with the \f(CW\*(C`VLLDM\*(C'\fR instruction + in some M\-profile devices when using \s-1CMSE\s0 (\s-1CVE\-2021\-365465\s0). This option is + enabled by default when the option \fB\-mcpu=\fR is used with + \&\f(CW\*(C`cortex\-m33\*(C'\fR, \f(CW\*(C`cortex\-m35p\*(C'\fR or \f(CW\*(C`cortex\-m55\*(C'\fR. The option + \&\fB\-mno\-fix\-cmse\-cve\-2021\-35465\fR can be used to disable the mitigation. .IP "\fB\-mfdpic\fR" 4 .IX Item "-mfdpic" .PD 0 *************** are provided for backwards compatibility *** 19912,19918 **** .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 --- 19946,19952 ---- .IP "\fB\-all_load\fR" 4 .IX Item "-all_load" Loads all members of static archive libraries. ! See man \fBld\fR\|(1) for more information. .IP "\fB\-arch_errors_fatal\fR" 4 .IX Item "-arch_errors_fatal" Cause the errors having to do with files that have the wrong architecture *************** bind all undefined references when the f *** 19924,19934 **** .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 --- 19958,19968 ---- .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 *************** Supported values for \fIcpu_type\fR are *** 24669,24675 **** \&\fBe6500\fR, \fBec603e\fR, \fBG3\fR, \fBG4\fR, \fBG5\fR, \&\fBtitan\fR, \fBpower3\fR, \fBpower4\fR, \fBpower5\fR, \fBpower5+\fR, \&\fBpower6\fR, \fBpower6x\fR, \fBpower7\fR, \fBpower8\fR, ! \&\fBpower9\fR, \fBfuture\fR, \fBpowerpc\fR, \fBpowerpc64\fR, \&\fBpowerpc64le\fR, \fBrs64\fR, and \fBnative\fR. .Sp \&\fB\-mcpu=powerpc\fR, \fB\-mcpu=powerpc64\fR, and --- 24703,24709 ---- \&\fBe6500\fR, \fBec603e\fR, \fBG3\fR, \fBG4\fR, \fBG5\fR, \&\fBtitan\fR, \fBpower3\fR, \fBpower4\fR, \fBpower5\fR, \fBpower5+\fR, \&\fBpower6\fR, \fBpower6x\fR, \fBpower7\fR, \fBpower8\fR, ! \&\fBpower9\fR, \fBpower10\fR, \fBpowerpc\fR, \fBpowerpc64\fR, \&\fBpowerpc64le\fR, \fBrs64\fR, and \fBnative\fR. .Sp \&\fB\-mcpu=powerpc\fR, \fB\-mcpu=powerpc64\fR, and *************** Enable/disable the \fI_\|_float128\fR ke *** 24855,24864 **** and use either software emulation for \s-1IEEE\s0 128\-bit floating point or hardware instructions. .Sp ! The \s-1VSX\s0 instruction set (\fB\-mvsx\fR, \fB\-mcpu=power7\fR, ! \&\fB\-mcpu=power8\fR), or \fB\-mcpu=power9\fR must be enabled to ! use the \s-1IEEE\s0 128\-bit floating point support. The \s-1IEEE\s0 128\-bit ! floating point support only works on PowerPC Linux systems. .Sp The default for \fB\-mfloat128\fR is enabled on PowerPC Linux systems using the \s-1VSX\s0 instruction set, and disabled on other systems. --- 24889,24897 ---- and use either software emulation for \s-1IEEE\s0 128\-bit floating point or hardware instructions. .Sp ! The \s-1VSX\s0 instruction set (\fB\-mvsx\fR) must be enabled to use the \s-1IEEE\s0 ! 128\-bit floating point support. The \s-1IEEE\s0 128\-bit floating point is only ! supported on Linux. .Sp The default for \fB\-mfloat128\fR is enabled on PowerPC Linux systems using the \s-1VSX\s0 instruction set, and disabled on other systems. *************** the offset with a symbol reference to a *** 25695,25704 **** .IP "\fB\-mno\-pcrel\fR" 4 .IX Item "-mno-pcrel" .PD ! Generate (do not generate) pc-relative addressing when the option ! \&\fB\-mcpu=future\fR is used. The \fB\-mpcrel\fR option requires ! that the medium code model (\fB\-mcmodel=medium\fR) and prefixed ! addressing (\fB\-mprefixed\fR) options are enabled. .IP "\fB\-mprefixed\fR" 4 .IX Item "-mprefixed" .PD 0 --- 25728,25736 ---- .IP "\fB\-mno\-pcrel\fR" 4 .IX Item "-mno-pcrel" .PD ! Generate (do not generate) pc-relative addressing. The \fB\-mpcrel\fR ! option requires that the medium code model (\fB\-mcmodel=medium\fR) ! and prefixed addressing (\fB\-mprefixed\fR) options are enabled. .IP "\fB\-mprefixed\fR" 4 .IX Item "-mprefixed" .PD 0 *************** addressing (\fB\-mprefixed\fR) options a *** 25706,25720 **** .IX Item "-mno-prefixed" .PD Generate (do not generate) addressing modes using prefixed load and ! store instructions when the option \fB\-mcpu=future\fR is used. .IP "\fB\-mmma\fR" 4 .IX Item "-mmma" .PD 0 .IP "\fB\-mno\-mma\fR" 4 .IX Item "-mno-mma" .PD ! Generate (do not generate) the \s-1MMA\s0 instructions when the option ! \&\fB\-mcpu=future\fR is used. .PP \fI\s-1RX\s0 Options\fR .IX Subsection "RX Options" --- 25738,25754 ---- .IX Item "-mno-prefixed" .PD Generate (do not generate) addressing modes using prefixed load and ! store instructions. The \fB\-mprefixed\fR option requires that ! the option \fB\-mcpu=power10\fR (or later) is enabled. .IP "\fB\-mmma\fR" 4 .IX Item "-mmma" .PD 0 .IP "\fB\-mno\-mma\fR" 4 .IX Item "-mno-mma" .PD ! Generate (do not generate) the \s-1MMA\s0 instructions. The \fB\-mma\fR ! option requires that the option \fB\-mcpu=power10\fR (or later) ! is enabled. .PP \fI\s-1RX\s0 Options\fR .IX Subsection "RX Options" *************** so \fB\-mno\-lra\fR needs to be passed t *** 26798,26807 **** Set the instruction set, register set, and instruction scheduling parameters for machine type \fIcpu_type\fR. Supported values for \fIcpu_type\fR are \&\fBv7\fR, \fBcypress\fR, \fBv8\fR, \fBsupersparc\fR, \fBhypersparc\fR, ! \&\fBleon\fR, \fBleon3\fR, \fBleon3v7\fR, \fBsparclite\fR, \fBf930\fR, ! \&\fBf934\fR, \fBsparclite86x\fR, \fBsparclet\fR, \fBtsc701\fR, \fBv9\fR, ! \&\fBultrasparc\fR, \fBultrasparc3\fR, \fBniagara\fR, \fBniagara2\fR, ! \&\fBniagara3\fR, \fBniagara4\fR, \fBniagara7\fR and \fBm8\fR. .Sp Native Solaris and GNU/Linux toolchains also support the value \fBnative\fR, which selects the best architecture option for the host processor. --- 26832,26842 ---- Set the instruction set, register set, and instruction scheduling parameters for machine type \fIcpu_type\fR. Supported values for \fIcpu_type\fR are \&\fBv7\fR, \fBcypress\fR, \fBv8\fR, \fBsupersparc\fR, \fBhypersparc\fR, ! \&\fBleon\fR, \fBleon3\fR, \fBleon3v7\fR, \fBleon5\fR, \fBsparclite\fR, ! \&\fBf930\fR, \fBf934\fR, \fBsparclite86x\fR, \fBsparclet\fR, \fBtsc701\fR, ! \&\fBv9\fR, \fBultrasparc\fR, \fBultrasparc3\fR, \fBniagara\fR, ! \&\fBniagara2\fR, \fBniagara3\fR, \fBniagara4\fR, \fBniagara7\fR and ! \&\fBm8\fR. .Sp Native Solaris and GNU/Linux toolchains also support the value \fBnative\fR, which selects the best architecture option for the host processor. *************** implementations. *** 26820,26826 **** cypress, leon3v7 .IP "v8" 4 .IX Item "v8" ! supersparc, hypersparc, leon, leon3 .IP "sparclite" 4 .IX Item "sparclite" f930, f934, sparclite86x --- 26855,26861 ---- cypress, leon3v7 .IP "v8" 4 .IX Item "v8" ! supersparc, hypersparc, leon, leon3, leon5 .IP "sparclite" 4 .IX Item "sparclite" f930, f934, sparclite86x *************** The same values for \fB\-mcpu=\fR\fIcpu_ *** 26888,26894 **** \&\fB\-mtune=\fR\fIcpu_type\fR, but the only useful values are those that select a particular \s-1CPU\s0 implementation. Those are \&\fBcypress\fR, \fBsupersparc\fR, \fBhypersparc\fR, \fBleon\fR, ! \&\fBleon3\fR, \fBleon3v7\fR, \fBf930\fR, \fBf934\fR, \&\fBsparclite86x\fR, \fBtsc701\fR, \fBultrasparc\fR, \&\fBultrasparc3\fR, \fBniagara\fR, \fBniagara2\fR, \fBniagara3\fR, \&\fBniagara4\fR, \fBniagara7\fR and \fBm8\fR. With native Solaris --- 26923,26929 ---- \&\fB\-mtune=\fR\fIcpu_type\fR, but the only useful values are those that select a particular \s-1CPU\s0 implementation. Those are \&\fBcypress\fR, \fBsupersparc\fR, \fBhypersparc\fR, \fBleon\fR, ! \&\fBleon3\fR, \fBleon3v7\fR, \fBleon5\fR, \fBf930\fR, \fBf934\fR, \&\fBsparclite86x\fR, \fBtsc701\fR, \fBultrasparc\fR, \&\fBultrasparc3\fR, \fBniagara\fR, \fBniagara2\fR, \fBniagara3\fR, \&\fBniagara4\fR, \fBniagara7\fR and \fBm8\fR. With native Solaris *************** to subtle defects. Supplying them in ca *** 29581,29588 **** 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" --- 29616,29623 ---- is innocuous. .SH "SEE ALSO" .IX Header "SEE ALSO" ! \&\fBgpl\fR\|(7), \fBgfdl\fR\|(7), \fBfsf\-funding\fR\|(7), ! \&\fBcpp\fR\|(1), \fBgcov\fR\|(1), \fBas\fR\|(1), \fBld\fR\|(1), \fBgdb\fR\|(1), \fBdbx\fR\|(1) and the Info entries for \fIgcc\fR, \fIcpp\fR, \fIas\fR, \&\fIld\fR, \fIbinutils\fR and \fIgdb\fR. .SH "AUTHOR" *************** any later version published by the Free *** 29600,29606 **** 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 --- 29635,29641 ---- Invariant Sections being \*(L"\s-1GNU\s0 General Public License\*(R" and \*(L"Funding Free Software\*(R", the Front-Cover texts being (a) (see below), and with the Back-Cover Texts being (b) (see below). A copy of the license is ! included in the \fBgfdl\fR\|(7) man page. .PP (a) The \s-1FSF\s0's Front-Cover Text is: .PP diff -Nrcpad gcc-10.3.0/gcc/doc/gcc.info gcc-10.4.0/gcc/doc/gcc.info *** gcc-10.3.0/gcc/doc/gcc.info Thu Apr 8 12:06:45 2021 --- gcc-10.4.0/gcc/doc/gcc.info Tue Jun 28 09:09:28 2022 *************** *** 1,4 **** ! This is gcc.info, produced by makeinfo version 6.5 from gcc.texi. Copyright (C) 1988-2020 Free Software Foundation, Inc. --- 1,4 ---- ! This is gcc.info, produced by makeinfo version 6.8 from gcc.texi. Copyright (C) 1988-2020 Free Software Foundation, Inc. *************** Copies published by the Free Software Fo *** 53,66 **** development.  ! File: gcc.info, Node: Top, Next: G++ and GCC Introduction ************ This manual documents how to use the GNU compilers, as well as their features and incompatibilities, and how to report bugs. It corresponds ! to the compilers (GCC) version 10.3.0. The internals of the GNU compilers, including how to port them to new targets and some information about how to write front ends for new languages, are documented in a separate manual. *Note Introduction: (gccint)Top. --- 53,66 ---- development.  ! File: gcc.info, Node: Top, Next: G++ and GCC, Up: (dir) Introduction ************ This manual documents how to use the GNU compilers, as well as their features and incompatibilities, and how to report bugs. It corresponds ! to the compilers (GCC) version 10.4.0. The internals of the GNU compilers, including how to port them to new targets and some information about how to write front ends for new languages, are documented in a separate manual. *Note Introduction: (gccint)Top. *************** _Machine-Dependent Options_ *** 1099,1104 **** --- 1099,1105 ---- -mverbose-cost-dump -mpure-code -mcmse + -mfix-cmse-cve-2021-35465 -mfdpic _AVR Options_ *************** unless optimization is enabled. *** 4750,4756 **** -Wredundant-move (only for C++) -Wtype-limits -Wuninitialized ! -Wshift-negative-value (in C++03 and in C99 and newer) -Wunused-parameter (only with -Wunused or -Wall) -Wunused-but-set-parameter (only with -Wunused or -Wall) --- 4751,4757 ---- -Wredundant-move (only for C++) -Wtype-limits -Wuninitialized ! -Wshift-negative-value (in C++11 to C++17 and in C99 and newer) -Wunused-parameter (only with -Wunused or -Wall) -Wunused-but-set-parameter (only with -Wunused or -Wall) *************** unless optimization is enabled. *** 5554,5560 **** '-Wshift-negative-value' Warn if left shifting a negative value. This warning is enabled by ! '-Wextra' in C99 and C++11 modes (and newer). '-Wno-shift-overflow' '-Wshift-overflow=N' --- 5555,5561 ---- '-Wshift-negative-value' Warn if left shifting a negative value. This warning is enabled by ! '-Wextra' in C99 (and newer) and C++11 to C++17 modes. '-Wno-shift-overflow' '-Wshift-overflow=N' *************** program analysis purposes. *** 12510,12516 **** '-fsanitize=undefined' Enable UndefinedBehaviorSanitizer, a fast undefined behavior detector. Various computations are instrumented to detect ! undefined behavior at runtime. Current suboptions are: '-fsanitize=shift' This option enables checking that the result of a shift --- 12511,12520 ---- '-fsanitize=undefined' Enable UndefinedBehaviorSanitizer, a fast undefined behavior detector. Various computations are instrumented to detect ! undefined behavior at runtime. See ! for ! more details. The run-time behavior can be influenced using the ! 'UBSAN_OPTIONS' environment variable. Current suboptions are: '-fsanitize=shift' This option enables checking that the result of a shift *************** program analysis purposes. *** 12765,12771 **** Function Attributes::). Currently the x86 GNU/Linux target provides an implementation based ! on Intel Control-flow Enforcement Technology (CET). '-fstack-protector' Emit extra code to check for buffer overflows, such as stack --- 12769,12776 ---- Function Attributes::). Currently the x86 GNU/Linux target provides an implementation based ! on Intel Control-flow Enforcement Technology (CET) which works for ! i686 processor or newer. '-fstack-protector' Emit extra code to check for buffer overflows, such as stack *************** These options are defined for AArch64 im *** 16041,16052 **** 'cortex-a76', 'cortex-a76ae', 'cortex-a77', 'cortex-a65', 'cortex-a65ae', 'cortex-a34', 'ares', 'exynos-m1', 'emag', 'falkor', 'neoverse-e1', 'neoverse-n1', 'neoverse-n2', ! 'neoverse-v1', 'qdf24xx', 'saphira', 'phecda', 'xgene1', 'vulcan', ! 'octeontx', 'octeontx81', 'octeontx83', 'octeontx2', ! 'octeontx2t98', 'octeontx2t96' 'octeontx2t93', 'octeontx2f95', ! 'octeontx2f95n', 'octeontx2f95mm', 'a64fx', 'thunderx', ! 'thunderxt88', 'thunderxt88p1', 'thunderxt81', 'tsv110', ! 'thunderxt83', 'thunderx2t99', 'thunderx3t110', 'zeus', 'cortex-a57.cortex-a53', 'cortex-a72.cortex-a53', 'cortex-a73.cortex-a35', 'cortex-a73.cortex-a53', 'cortex-a75.cortex-a55', 'cortex-a76.cortex-a55' 'native'. --- 16046,16057 ---- 'cortex-a76', 'cortex-a76ae', 'cortex-a77', 'cortex-a65', 'cortex-a65ae', 'cortex-a34', 'ares', 'exynos-m1', 'emag', 'falkor', 'neoverse-e1', 'neoverse-n1', 'neoverse-n2', ! 'neoverse-v1', 'neoverse-512tvb', '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' 'native'. *************** These options are defined for AArch64 im *** 16056,16061 **** --- 16061,16076 ---- 'cortex-a75.cortex-a55', 'cortex-a76.cortex-a55' specify that GCC should tune for a big.LITTLE system. + The value 'neoverse-512tvb' specifies that GCC should tune for + Neoverse cores that (a) implement SVE and (b) have a total vector + bandwidth of 512 bits per cycle. In other words, the option tells + GCC to tune for Neoverse cores that can execute 4 128-bit Advanced + SIMD arithmetic instructions a cycle and that can execute an + equivalent number of SVE arithmetic instructions per cycle (2 for + 256-bit SVE, 4 for 128-bit SVE). This is more general than tuning + for a specific core like Neoverse V1 but is more specific than the + default tuning described below. + Additionally on native AArch64 GNU/Linux systems the value 'native' tunes performance to the host system. This option has no effect if the compiler is unable to recognize the processor of the host *************** These options are defined for AArch64 im *** 16083,16088 **** --- 16098,16112 ---- or '-mtune', those options take precedence over the appropriate part of this option. + '-mcpu=neoverse-512tvb' is special in that it does not refer to a + specific core, but instead refers to all Neoverse cores that (a) + implement SVE and (b) have a total vector bandwidth of 512 bits a + cycle. Unless overridden by '-march', '-mcpu=neoverse-512tvb' + generates code that can run on a Neoverse V1 core, since Neoverse + V1 is the first Neoverse core with these properties. Unless + overridden by '-mtune', '-mcpu=neoverse-512tvb' tunes code in the + same way as for '-mtune=neoverse-512tvb'. + '-moverride=STRING' Override tuning decisions made by the back-end in response to a '-mtune=' switch. The syntax, semantics, and accepted values for *************** These '-m' options are defined for the A *** 18036,18041 **** --- 18060,18073 ---- can be found on . + '-mfix-cmse-cve-2021-35465' + Mitigate against a potential security issue with the 'VLLDM' + instruction in some M-profile devices when using CMSE + (CVE-2021-365465). This option is enabled by default when the + option '-mcpu=' is used with 'cortex-m33', 'cortex-m35p' or + 'cortex-m55'. The option '-mno-fix-cmse-cve-2021-35465' can be + used to disable the mitigation. + '-mfdpic' '-mno-fdpic' Select the FDPIC ABI, which uses 64-bit function descriptors to *************** These options are defined for AVR implem *** 18089,18094 **** --- 18121,18127 ---- 'avr3' "Classic" devices with 16 KiB up to 64 KiB of program memory. + MCU = 'at76c711', 'at43usb355'. 'avr31' *************** These '-m' options are defined for the I *** 23538,23544 **** '823', '860', '970', '8540', 'a2', 'e300c2', 'e300c3', 'e500mc', 'e500mc64', 'e5500', 'e6500', 'ec603e', 'G3', 'G4', 'G5', 'titan', 'power3', 'power4', 'power5', 'power5+', 'power6', 'power6x', ! 'power7', 'power8', 'power9', 'future', 'powerpc', 'powerpc64', 'powerpc64le', 'rs64', and 'native'. '-mcpu=powerpc', '-mcpu=powerpc64', and '-mcpu=powerpc64le' specify --- 23571,23577 ---- '823', '860', '970', '8540', 'a2', 'e300c2', 'e300c3', 'e500mc', 'e500mc64', 'e5500', 'e6500', 'ec603e', 'G3', 'G4', 'G5', 'titan', 'power3', 'power4', 'power5', 'power5+', 'power6', 'power6x', ! 'power7', 'power8', 'power9', 'power10', 'powerpc', 'powerpc64', 'powerpc64le', 'rs64', and 'native'. '-mcpu=powerpc', '-mcpu=powerpc64', and '-mcpu=powerpc64le' specify *************** These '-m' options are defined for the I *** 23686,23695 **** point and use either software emulation for IEEE 128-bit floating point or hardware instructions. ! The VSX instruction set ('-mvsx', '-mcpu=power7', '-mcpu=power8'), ! or '-mcpu=power9' must be enabled to use the IEEE 128-bit floating ! point support. The IEEE 128-bit floating point support only works ! on PowerPC Linux systems. The default for '-mfloat128' is enabled on PowerPC Linux systems using the VSX instruction set, and disabled on other systems. --- 23719,23727 ---- point and use either software emulation for IEEE 128-bit floating point or hardware instructions. ! The VSX instruction set ('-mvsx') must be enabled to use the IEEE ! 128-bit floating point support. The IEEE 128-bit floating point is ! only supported on Linux. The default for '-mfloat128' is enabled on PowerPC Linux systems using the VSX instruction set, and disabled on other systems. *************** These '-m' options are defined for the I *** 24400,24419 **** '-mpcrel' '-mno-pcrel' ! Generate (do not generate) pc-relative addressing when the option ! '-mcpu=future' is used. The '-mpcrel' option requires that the ! medium code model ('-mcmodel=medium') and prefixed addressing ! ('-mprefixed') options are enabled. '-mprefixed' '-mno-prefixed' Generate (do not generate) addressing modes using prefixed load and ! store instructions when the option '-mcpu=future' is used. '-mmma' '-mno-mma' ! Generate (do not generate) the MMA instructions when the option ! '-mcpu=future' is used.  File: gcc.info, Node: RX Options, Next: S/390 and zSeries Options, Prev: RS/6000 and PowerPC Options, Up: Submodel Options --- 24432,24451 ---- '-mpcrel' '-mno-pcrel' ! Generate (do not generate) pc-relative addressing. The '-mpcrel' ! option requires that the medium code model ('-mcmodel=medium') and ! prefixed addressing ('-mprefixed') options are enabled. '-mprefixed' '-mno-prefixed' Generate (do not generate) addressing modes using prefixed load and ! store instructions. The '-mprefixed' option requires that the ! option '-mcpu=power10' (or later) is enabled. '-mmma' '-mno-mma' ! Generate (do not generate) the MMA instructions. The '-mma' option ! requires that the option '-mcpu=power10' (or later) is enabled.  File: gcc.info, Node: RX Options, Next: S/390 and zSeries Options, Prev: RS/6000 and PowerPC Options, Up: Submodel Options *************** These '-m' options are supported on the *** 25403,25409 **** Set the instruction set, register set, and instruction scheduling parameters for machine type CPU_TYPE. Supported values for CPU_TYPE are 'v7', 'cypress', 'v8', 'supersparc', 'hypersparc', ! 'leon', 'leon3', 'leon3v7', 'sparclite', 'f930', 'f934', 'sparclite86x', 'sparclet', 'tsc701', 'v9', 'ultrasparc', 'ultrasparc3', 'niagara', 'niagara2', 'niagara3', 'niagara4', 'niagara7' and 'm8'. --- 25435,25441 ---- Set the instruction set, register set, and instruction scheduling parameters for machine type CPU_TYPE. Supported values for CPU_TYPE are 'v7', 'cypress', 'v8', 'supersparc', 'hypersparc', ! 'leon', 'leon3', 'leon3v7', 'leon5', 'sparclite', 'f930', 'f934', 'sparclite86x', 'sparclet', 'tsc701', 'v9', 'ultrasparc', 'ultrasparc3', 'niagara', 'niagara2', 'niagara3', 'niagara4', 'niagara7' and 'm8'. *************** These '-m' options are supported on the *** 25424,25430 **** cypress, leon3v7 v8 ! supersparc, hypersparc, leon, leon3 sparclite f930, f934, sparclite86x --- 25456,25462 ---- cypress, leon3v7 v8 ! supersparc, hypersparc, leon, leon3, leon5 sparclite f930, f934, sparclite86x *************** These '-m' options are supported on the *** 25491,25501 **** The same values for '-mcpu=CPU_TYPE' can be used for '-mtune=CPU_TYPE', but the only useful values are those that select a particular CPU implementation. Those are 'cypress', ! 'supersparc', 'hypersparc', 'leon', 'leon3', 'leon3v7', 'f930', ! 'f934', 'sparclite86x', 'tsc701', 'ultrasparc', 'ultrasparc3', ! 'niagara', 'niagara2', 'niagara3', 'niagara4', 'niagara7' and 'm8'. ! With native Solaris and GNU/Linux toolchains, 'native' can also be ! used. '-mv8plus' '-mno-v8plus' --- 25523,25533 ---- The same values for '-mcpu=CPU_TYPE' can be used for '-mtune=CPU_TYPE', but the only useful values are those that select a particular CPU implementation. Those are 'cypress', ! 'supersparc', 'hypersparc', 'leon', 'leon3', 'leon3v7', 'leon5', ! 'f930', 'f934', 'sparclite86x', 'tsc701', 'ultrasparc', ! 'ultrasparc3', 'niagara', 'niagara2', 'niagara3', 'niagara4', ! 'niagara7' and 'm8'. With native Solaris and GNU/Linux toolchains, ! 'native' can also be used. '-mv8plus' '-mno-v8plus' *************** or combine them with constant text in a *** 27998,28005 **** Accumulate an option for '%X'. '%X' ! Output the accumulated linker options specified by '-Wl' or a '%x' ! spec string. '%Y' Output the accumulated assembler options specified by '-Wa'. --- 28030,28037 ---- Accumulate an option for '%X'. '%X' ! Output the accumulated linker options specified by a '%x' spec ! string. '%Y' Output the accumulated assembler options specified by '-Wa'. *************** The following attributes are supported o *** 32030,32043 **** This tells the compiler that a function is 'malloc'-like, i.e., that the pointer P returned by the function cannot alias any other pointer valid when the function returns, and moreover no pointers ! to valid objects occur in any storage addressed by P. ! Using this attribute can improve optimization. Compiler predicts ! that a function with the attribute returns non-null in most cases. ! Functions like 'malloc' and 'calloc' have this property because ! they return a pointer to uninitialized or zeroed-out storage. ! However, functions like 'realloc' do not have this property, as ! they can return a pointer to storage containing pointers. 'no_icf' This function attribute prevents a functions from being merged with --- 32062,32080 ---- This tells the compiler that a function is 'malloc'-like, i.e., that the pointer P returned by the function cannot alias any other pointer valid when the function returns, and moreover no pointers ! to valid objects occur in any storage addressed by P. In addition, ! GCC predicts that a function with the attribute returns non-null in ! most cases. ! Using the attribute is designed to improve optimization by relying ! on the aliasing property it implies. Functions like 'malloc' and ! 'calloc' have this property because they return a pointer to ! uninitialized or zeroed-out, newly obtained storage. However, ! functions like 'realloc' do not have this property, as they may ! return pointers to storage containing pointers to existing objects. ! Additionally, since all such functions are assumed to return null ! only infrequently, callers can be optimized based on that ! assumption. 'no_icf' This function attribute prevents a functions from being merged with *************** they are constants and that their values *** 50428,50442 **** void __builtin_mma_xxmfacc (__vector_quad *); void __builtin_mma_xxsetaccz (__vector_quad *); ! void __builtin_mma_assemble_acc (__vector_quad *, vec_t, vec_t, vec_t, vec_t); void __builtin_mma_disassemble_acc (void *, __vector_quad *); ! void __builtin_vsx_assemble_pair (__vector_pair *, vec_t, vec_t); void __builtin_vsx_disassemble_pair (void *, __vector_pair *); vec_t __builtin_vsx_xvcvspbf16 (vec_t); vec_t __builtin_vsx_xvcvbf16spn (vec_t);  File: gcc.info, Node: RISC-V Built-in Functions, Next: RX Built-in Functions, Prev: PowerPC Matrix-Multiply Assist Built-in Functions, Up: Target Builtins --- 50465,50482 ---- void __builtin_mma_xxmfacc (__vector_quad *); void __builtin_mma_xxsetaccz (__vector_quad *); ! void __builtin_mma_build_acc (__vector_quad *, vec_t, vec_t, vec_t, vec_t); void __builtin_mma_disassemble_acc (void *, __vector_quad *); ! void __builtin_vsx_build_pair (__vector_pair *, vec_t, vec_t); void __builtin_vsx_disassemble_pair (void *, __vector_pair *); vec_t __builtin_vsx_xvcvspbf16 (vec_t); vec_t __builtin_vsx_xvcvbf16spn (vec_t); + __vector_pair __builtin_vsx_lxvp (size_t, __vector_pair *); + void __builtin_vsx_stxvp (__vector_pair, size_t, __vector_pair *); +  File: gcc.info, Node: RISC-V Built-in Functions, Next: RX Built-in Functions, Prev: PowerPC Matrix-Multiply Assist Built-in Functions, Up: Target Builtins *************** such objects behave unspecified when bei *** 57518,57527 **** struct Base{ char *name; ! Base(char *n) : name(strdup(n)){} Base& operator= (const Base& other){ free (name); name = strdup (other.name); } }; --- 57558,57568 ---- struct Base{ char *name; ! Base(const char *n) : name(strdup(n)){} Base& operator= (const Base& other){ free (name); name = strdup (other.name); + return *this; } }; *************** in the example). *** 57553,57560 **** G++ implements the "intuitive" algorithm for copy-assignment: assign all direct bases, then assign all members. In that algorithm, the virtual base subobject can be encountered more than once. In the ! example, copying proceeds in the following order: 'val', 'name' (via ! 'strdup'), 'bval', and 'name' again. If application code relies on copy-assignment, a user-defined copy-assignment operator removes any uncertainties. With such an --- 57594,57601 ---- G++ implements the "intuitive" algorithm for copy-assignment: assign all direct bases, then assign all members. In that algorithm, the virtual base subobject can be encountered more than once. In the ! example, copying proceeds in the following order: 'name' (via 'strdup'), ! 'val', 'name' again, and 'bval'. If application code relies on copy-assignment, a user-defined copy-assignment operator removes any uncertainties. With such an *************** alphabetical order. *** 59367,59373 **** * 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. --- 59408,59414 ---- * Ralf Corsepius for SH testing and minor bug fixing. ! * François-Xavier Coudert for contributions to GNU Fortran. * Stan Cox for care and feeding of the x86 port and lots of behind the scenes hacking. *************** alphabetical order. *** 59410,59416 **** 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. --- 59451,59457 ---- disbursement, configuration architecture, libio maintenance, and early math work. ! * François Dumont for his work on libstdc++-v3, especially maintaining and improving 'debug-mode' and associative and unordered containers. *************** alphabetical order. *** 59669,59681 **** * 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. --- 59710,59722 ---- * Weiwen Liu for testing and various bug fixes. ! * Manuel López-Ibáñez for improving '-Wconversion' and many other diagnostics fixes and improvements. * Dave Love for his ongoing work with the Fortran front end and runtime libraries. ! * Martin von Löwis for internal consistency checking infrastructure, various C++ improvements including namespace support, and tons of assistance with libstdc++/compiler merges. *************** alphabetical order. *** 59867,59873 **** * 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. --- 59908,59914 ---- * Craig Rodrigues for processing tons of bug reports. ! * Ola Rönnerup for work on mt_alloc. * Gavin Romig-Koch for lots of behind the scenes MIPS work. *************** alphabetical order. *** 59881,59887 **** * 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, --- 59922,59928 ---- * Paul Rubin wrote most of the preprocessor. ! * Pétur Runólfsson for major performance improvements in C++ formatted I/O and large file support in C++ filebuf. * Chip Salzenberg for libstdc++ patches and improvements to locales, *************** alphabetical order. *** 59902,59908 **** * 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, --- 59943,59949 ---- * William Schelter did most of the work on the Intel 80386 support. ! * Tobias Schlüter for work on GNU Fortran. * Bernd Schmidt for various code generation improvements and major work in the reload pass, serving as release manager for GCC 2.95.3, *************** contributions to testing: *** 60399,60405 **** * Robert A. French ! * Jo"rgen Freyh * Mark K. Gardner --- 60440,60446 ---- * Robert A. French ! * Jörgen Freyh * Mark K. Gardner *************** look up both forms. *** 60604,60613 **** * 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) --- 60645,60654 ---- * E: Overall Options. (line 190) * E <1>: Link Options. (line 20) * e: Link Options. (line 169) ! * EB: ARC Options. (line 595) * EB <1>: C-SKY Options. (line 29) * EB <2>: MIPS Options. (line 7) ! * EL: ARC Options. (line 602) * EL <1>: C-SKY Options. (line 31) * EL <2>: MIPS Options. (line 10) * entry: Link Options. (line 169) *************** look up both forms. *** 60647,60653 **** * fanalyzer-transitivity: Static Analyzer Options. (line 227) * fasan-shadow-offset: Instrumentation Options. ! (line 453) * fasm: C Dialect Options. (line 252) * fassociative-math: Optimize Options. (line 2283) * fasynchronous-unwind-tables: Code Gen Options. (line 156) --- 60688,60694 ---- * fanalyzer-transitivity: Static Analyzer Options. (line 227) * fasan-shadow-offset: Instrumentation Options. ! (line 456) * fasm: C Dialect Options. (line 252) * fassociative-math: Optimize Options. (line 2283) * fasynchronous-unwind-tables: Code Gen Options. (line 156) *************** look up both forms. *** 60661,60667 **** * fcaller-saves: Optimize Options. (line 926) * fcallgraph-info: Developer Options. (line 34) * fcf-protection: Instrumentation Options. ! (line 526) * fchar8_t: C++ Dialect Options. (line 118) * fcheck-new: C++ Dialect Options. --- 60702,60708 ---- * fcaller-saves: Optimize Options. (line 926) * fcallgraph-info: Developer Options. (line 34) * fcf-protection: Instrumentation Options. ! (line 529) * fchar8_t: C++ Dialect Options. (line 118) * fcheck-new: C++ Dialect Options. *************** look up both forms. *** 60679,60685 **** (line 172) * fconcepts-ts: C++ Dialect Options. (line 172) ! * fcond-mismatch: C Dialect Options. (line 396) * fconserve-stack: Optimize Options. (line 957) * fconstant-string-class: Objective-C and Objective-C++ Dialect Options. (line 30) --- 60720,60726 ---- (line 172) * fconcepts-ts: C++ Dialect Options. (line 172) ! * fcond-mismatch: C Dialect Options. (line 394) * fconserve-stack: Optimize Options. (line 957) * fconstant-string-class: Objective-C and Objective-C++ Dialect Options. (line 30) *************** look up both forms. *** 60903,60909 **** (line 256) * fgnu-runtime: Objective-C and Objective-C++ Dialect Options. (line 39) ! * fgnu-tm: C Dialect Options. (line 353) * fgnu-unique: Code Gen Options. (line 162) * fgnu89-inline: C Dialect Options. (line 190) * fgraphite-identity: Optimize Options. (line 1249) --- 60944,60950 ---- (line 256) * fgnu-runtime: Objective-C and Objective-C++ Dialect Options. (line 39) ! * fgnu-tm: C Dialect Options. (line 351) * fgnu-unique: Code Gen Options. (line 162) * fgnu89-inline: C Dialect Options. (line 190) * fgraphite-identity: Optimize Options. (line 1249) *************** look up both forms. *** 60932,60944 **** * finput-charset: Preprocessor Options. (line 283) * finstrument-functions: Instrumentation Options. ! (line 728) * finstrument-functions <1>: Common Function Attributes. ! (line 691) * finstrument-functions-exclude-file-list: Instrumentation Options. ! (line 764) * finstrument-functions-exclude-function-list: Instrumentation Options. ! (line 785) * fipa-bit-cp: Optimize Options. (line 1057) * fipa-cp: Optimize Options. (line 1038) * fipa-cp-clone: Optimize Options. (line 1047) --- 60973,60985 ---- * finput-charset: Preprocessor Options. (line 283) * finstrument-functions: Instrumentation Options. ! (line 732) * finstrument-functions <1>: Common Function Attributes. ! (line 696) * finstrument-functions-exclude-file-list: Instrumentation Options. ! (line 768) * finstrument-functions-exclude-function-list: Instrumentation Options. ! (line 789) * fipa-bit-cp: Optimize Options. (line 1057) * fipa-cp: Optimize Options. (line 1038) * fipa-cp-clone: Optimize Options. (line 1047) *************** look up both forms. *** 60971,60977 **** * fkeep-static-consts: Optimize Options. (line 378) * fkeep-static-functions: Optimize Options. (line 374) * flat_namespace: Darwin Options. (line 196) ! * flax-vector-conversions: C Dialect Options. (line 401) * fleading-underscore: Code Gen Options. (line 478) * flifetime-dse: Optimize Options. (line 667) * flinker-output: Link Options. (line 25) --- 61012,61018 ---- * fkeep-static-consts: Optimize Options. (line 378) * fkeep-static-functions: Optimize Options. (line 374) * flat_namespace: Darwin Options. (line 196) ! * flax-vector-conversions: C Dialect Options. (line 399) * fleading-underscore: Code Gen Options. (line 478) * flifetime-dse: Optimize Options. (line 667) * flinker-output: Link Options. (line 25) *************** look up both forms. *** 61007,61013 **** * fmodulo-sched: Optimize Options. (line 408) * fmodulo-sched-allow-regmoves: Optimize Options. (line 413) * fmove-loop-invariants: Optimize Options. (line 2527) ! * fms-extensions: C Dialect Options. (line 368) * fms-extensions <1>: C++ Dialect Options. (line 281) * fms-extensions <2>: Unnamed Fields. (line 36) --- 61048,61054 ---- * fmodulo-sched: Optimize Options. (line 408) * fmodulo-sched-allow-regmoves: Optimize Options. (line 413) * fmove-loop-invariants: Optimize Options. (line 2527) ! * fms-extensions: C Dialect Options. (line 366) * fms-extensions <1>: C++ Dialect Options. (line 281) * fms-extensions <2>: Unnamed Fields. (line 36) *************** look up both forms. *** 61122,61145 **** * fno-rtti: C++ Dialect Options. (line 341) * fno-sanitize-recover: Instrumentation Options. ! (line 462) * fno-sanitize=all: Instrumentation Options. ! (line 447) * fno-sched-interblock: Optimize Options. (line 776) * fno-sched-spec: Optimize Options. (line 781) * fno-set-stack-executable: x86 Windows Options. (line 46) * fno-show-column: Diagnostic Message Formatting Options. (line 393) ! * fno-signed-bitfields: C Dialect Options. (line 434) * fno-signed-zeros: Optimize Options. (line 2322) * fno-stack-limit: Instrumentation Options. ! (line 640) * fno-threadsafe-statics: C++ Dialect Options. (line 396) * fno-toplevel-reorder: Optimize Options. (line 1782) * fno-trapping-math: Optimize Options. (line 2332) ! * fno-unsigned-bitfields: C Dialect Options. (line 434) * fno-use-cxa-get-exception-ptr: C++ Dialect Options. (line 409) * fno-var-tracking-assignments: Debugging Options. (line 161) --- 61163,61186 ---- * fno-rtti: C++ Dialect Options. (line 341) * fno-sanitize-recover: Instrumentation Options. ! (line 465) * fno-sanitize=all: Instrumentation Options. ! (line 450) * fno-sched-interblock: Optimize Options. (line 776) * fno-sched-spec: Optimize Options. (line 781) * fno-set-stack-executable: x86 Windows Options. (line 46) * fno-show-column: Diagnostic Message Formatting Options. (line 393) ! * fno-signed-bitfields: C Dialect Options. (line 432) * fno-signed-zeros: Optimize Options. (line 2322) * fno-stack-limit: Instrumentation Options. ! (line 644) * fno-threadsafe-statics: C++ Dialect Options. (line 396) * fno-toplevel-reorder: Optimize Options. (line 1782) * fno-trapping-math: Optimize Options. (line 2332) ! * fno-unsigned-bitfields: C Dialect Options. (line 432) * fno-use-cxa-get-exception-ptr: C++ Dialect Options. (line 409) * fno-var-tracking-assignments: Debugging Options. (line 161) *************** look up both forms. *** 61172,61180 **** (line 119) * fomit-frame-pointer: Optimize Options. (line 248) * fopenacc: C Dialect Options. (line 325) ! * fopenacc-dim: C Dialect Options. (line 334) ! * fopenmp: C Dialect Options. (line 340) ! * fopenmp-simd: C Dialect Options. (line 349) * foperator-names: C++ Dialect Options. (line 315) * fopt-info: Developer Options. (line 476) --- 61213,61221 ---- (line 119) * fomit-frame-pointer: Optimize Options. (line 248) * fopenacc: C Dialect Options. (line 325) ! * fopenacc-dim: C Dialect Options. (line 333) ! * fopenmp: C Dialect Options. (line 339) ! * fopenmp-simd: C Dialect Options. (line 347) * foperator-names: C++ Dialect Options. (line 315) * fopt-info: Developer Options. (line 476) *************** look up both forms. *** 61187,61193 **** * fpack-struct: Code Gen Options. (line 465) * fpartial-inlining: Optimize Options. (line 1491) * fpatchable-function-entry: Instrumentation Options. ! (line 797) * fpcc-struct-return: Code Gen Options. (line 175) * fpcc-struct-return <1>: Incompatibilities. (line 170) * fpch-deps: Preprocessor Options. --- 61228,61234 ---- * fpack-struct: Code Gen Options. (line 465) * fpartial-inlining: Optimize Options. (line 1491) * fpatchable-function-entry: Instrumentation Options. ! (line 801) * fpcc-struct-return: Code Gen Options. (line 175) * fpcc-struct-return <1>: Incompatibilities. (line 170) * fpch-deps: Preprocessor Options. *************** look up both forms. *** 61206,61212 **** * fPIC: Code Gen Options. (line 374) * fpie: Code Gen Options. (line 387) * fPIE: Code Gen Options. (line 387) ! * fplan9-extensions: C Dialect Options. (line 386) * fplan9-extensions <1>: Unnamed Fields. (line 43) * fplt: Code Gen Options. (line 396) * fplugin: Overall Options. (line 381) --- 61247,61253 ---- * fPIC: Code Gen Options. (line 374) * fpie: Code Gen Options. (line 387) * fPIE: Code Gen Options. (line 387) ! * fplan9-extensions: C Dialect Options. (line 384) * fplan9-extensions <1>: Unnamed Fields. (line 43) * fplt: Code Gen Options. (line 396) * fplugin: Overall Options. (line 381) *************** look up both forms. *** 61267,61341 **** * frtti: C++ Dialect Options. (line 341) * fsanitize-address-use-after-scope: Instrumentation Options. ! (line 498) * fsanitize-coverage=trace-cmp: Instrumentation Options. ! (line 513) * fsanitize-coverage=trace-pc: Instrumentation Options. ! (line 509) * fsanitize-recover: Instrumentation Options. ! (line 462) * fsanitize-sections: Instrumentation Options. ! (line 458) * fsanitize-undefined-trap-on-error: Instrumentation Options. ! (line 502) * fsanitize=address: Instrumentation Options. (line 236) * fsanitize=alignment: Instrumentation Options. ! (line 373) * fsanitize=bool: Instrumentation Options. ! (line 411) * fsanitize=bounds: Instrumentation Options. ! (line 360) * fsanitize=bounds-strict: Instrumentation Options. ! (line 366) * fsanitize=builtin: Instrumentation Options. ! (line 435) * fsanitize=enum: Instrumentation Options. ! (line 416) * fsanitize=float-cast-overflow: Instrumentation Options. ! (line 391) * fsanitize=float-divide-by-zero: Instrumentation Options. ! (line 385) * fsanitize=integer-divide-by-zero: Instrumentation Options. ! (line 323) * fsanitize=kernel-address: Instrumentation Options. (line 250) * fsanitize=leak: Instrumentation Options. (line 288) * fsanitize=nonnull-attribute: Instrumentation Options. ! (line 399) * fsanitize=null: Instrumentation Options. ! (line 337) * fsanitize=object-size: Instrumentation Options. ! (line 380) * fsanitize=pointer-compare: Instrumentation Options. (line 254) * fsanitize=pointer-overflow: Instrumentation Options. ! (line 429) * fsanitize=pointer-subtract: Instrumentation Options. (line 264) * fsanitize=return: Instrumentation Options. ! (line 345) * fsanitize=returns-nonnull-attribute: Instrumentation Options. ! (line 405) * fsanitize=shift: Instrumentation Options. ! (line 303) * fsanitize=shift-base: Instrumentation Options. ! (line 316) * fsanitize=shift-exponent: Instrumentation Options. ! (line 311) * fsanitize=signed-integer-overflow: Instrumentation Options. ! (line 351) * fsanitize=thread: Instrumentation Options. (line 274) * fsanitize=undefined: Instrumentation Options. (line 298) * fsanitize=unreachable: Instrumentation Options. ! (line 327) * fsanitize=vla-bound: Instrumentation Options. ! (line 333) * fsanitize=vptr: Instrumentation Options. ! (line 422) * fsave-optimization-record: Developer Options. (line 582) * fsched-critical-path-heuristic: Optimize Options. (line 841) * fsched-dep-count-heuristic: Optimize Options. (line 868) --- 61308,61382 ---- * frtti: C++ Dialect Options. (line 341) * fsanitize-address-use-after-scope: Instrumentation Options. ! (line 501) * fsanitize-coverage=trace-cmp: Instrumentation Options. ! (line 516) * fsanitize-coverage=trace-pc: Instrumentation Options. ! (line 512) * fsanitize-recover: Instrumentation Options. ! (line 465) * fsanitize-sections: Instrumentation Options. ! (line 461) * fsanitize-undefined-trap-on-error: Instrumentation Options. ! (line 505) * fsanitize=address: Instrumentation Options. (line 236) * fsanitize=alignment: Instrumentation Options. ! (line 376) * fsanitize=bool: Instrumentation Options. ! (line 414) * fsanitize=bounds: Instrumentation Options. ! (line 363) * fsanitize=bounds-strict: Instrumentation Options. ! (line 369) * fsanitize=builtin: Instrumentation Options. ! (line 438) * fsanitize=enum: Instrumentation Options. ! (line 419) * fsanitize=float-cast-overflow: Instrumentation Options. ! (line 394) * fsanitize=float-divide-by-zero: Instrumentation Options. ! (line 388) * fsanitize=integer-divide-by-zero: Instrumentation Options. ! (line 326) * fsanitize=kernel-address: Instrumentation Options. (line 250) * fsanitize=leak: Instrumentation Options. (line 288) * fsanitize=nonnull-attribute: Instrumentation Options. ! (line 402) * fsanitize=null: Instrumentation Options. ! (line 340) * fsanitize=object-size: Instrumentation Options. ! (line 383) * fsanitize=pointer-compare: Instrumentation Options. (line 254) * fsanitize=pointer-overflow: Instrumentation Options. ! (line 432) * fsanitize=pointer-subtract: Instrumentation Options. (line 264) * fsanitize=return: Instrumentation Options. ! (line 348) * fsanitize=returns-nonnull-attribute: Instrumentation Options. ! (line 408) * fsanitize=shift: Instrumentation Options. ! (line 306) * fsanitize=shift-base: Instrumentation Options. ! (line 319) * fsanitize=shift-exponent: Instrumentation Options. ! (line 314) * fsanitize=signed-integer-overflow: Instrumentation Options. ! (line 354) * fsanitize=thread: Instrumentation Options. (line 274) * fsanitize=undefined: Instrumentation Options. (line 298) * fsanitize=unreachable: Instrumentation Options. ! (line 330) * fsanitize=vla-bound: Instrumentation Options. ! (line 336) * fsanitize=vptr: Instrumentation Options. ! (line 425) * fsave-optimization-record: Developer Options. (line 582) * fsched-critical-path-heuristic: Optimize Options. (line 841) * fsched-dep-count-heuristic: Optimize Options. (line 868) *************** look up both forms. *** 61375,61383 **** * fshrink-wrap: Optimize Options. (line 915) * fshrink-wrap-separate: Optimize Options. (line 920) * fsignaling-nans: Optimize Options. (line 2367) ! * fsigned-bitfields: C Dialect Options. (line 434) * fsigned-bitfields <1>: Non-bugs. (line 57) ! * fsigned-char: C Dialect Options. (line 424) * fsigned-char <1>: Characters implementation. (line 31) * fsigned-zeros: Optimize Options. (line 2322) --- 61416,61424 ---- * fshrink-wrap: Optimize Options. (line 915) * fshrink-wrap-separate: Optimize Options. (line 920) * fsignaling-nans: Optimize Options. (line 2367) ! * fsigned-bitfields: C Dialect Options. (line 432) * fsigned-bitfields <1>: Non-bugs. (line 57) ! * fsigned-char: C Dialect Options. (line 422) * fsigned-char <1>: Characters implementation. (line 31) * fsigned-zeros: Optimize Options. (line 2322) *************** look up both forms. *** 61389,61418 **** * fsplit-loops: Optimize Options. (line 2531) * fsplit-paths: Optimize Options. (line 1464) * fsplit-stack: Instrumentation Options. ! (line 657) * fsplit-stack <1>: Common Function Attributes. ! (line 741) * fsplit-wide-types: Optimize Options. (line 466) * fsplit-wide-types-early: Optimize Options. (line 474) * fssa-backprop: Optimize Options. (line 1173) * fssa-phiopt: Optimize Options. (line 1179) ! * fsso-struct: C Dialect Options. (line 440) * fstack-check: Instrumentation Options. ! (line 583) * fstack-clash-protection: Instrumentation Options. ! (line 625) * fstack-limit-register: Instrumentation Options. ! (line 640) * fstack-limit-symbol: Instrumentation Options. ! (line 640) * fstack-protector: Instrumentation Options. ! (line 558) * fstack-protector-all: Instrumentation Options. ! (line 569) * fstack-protector-explicit: Instrumentation Options. ! (line 579) * fstack-protector-strong: Instrumentation Options. ! (line 572) * fstack-usage: Developer Options. (line 897) * fstack_reuse: Code Gen Options. (line 15) * fstats: Developer Options. (line 926) --- 61430,61459 ---- * fsplit-loops: Optimize Options. (line 2531) * fsplit-paths: Optimize Options. (line 1464) * fsplit-stack: Instrumentation Options. ! (line 661) * fsplit-stack <1>: Common Function Attributes. ! (line 746) * fsplit-wide-types: Optimize Options. (line 466) * fsplit-wide-types-early: Optimize Options. (line 474) * fssa-backprop: Optimize Options. (line 1173) * fssa-phiopt: Optimize Options. (line 1179) ! * fsso-struct: C Dialect Options. (line 438) * fstack-check: Instrumentation Options. ! (line 587) * fstack-clash-protection: Instrumentation Options. ! (line 629) * fstack-limit-register: Instrumentation Options. ! (line 644) * fstack-limit-symbol: Instrumentation Options. ! (line 644) * fstack-protector: Instrumentation Options. ! (line 562) * fstack-protector-all: Instrumentation Options. ! (line 573) * fstack-protector-explicit: Instrumentation Options. ! (line 583) * fstack-protector-strong: Instrumentation Options. ! (line 576) * fstack-usage: Developer Options. (line 897) * fstack_reuse: Code Gen Options. (line 15) * fstats: Developer Options. (line 926) *************** look up both forms. *** 61422,61431 **** * fstrict-enums: C++ Dialect Options. (line 366) * fstrict-overflow: Code Gen Options. (line 115) ! * fstrict-volatile-bitfields: Code Gen Options. (line 589) * fstrong-eval-order: C++ Dialect Options. (line 375) ! * fsync-libcalls: Code Gen Options. (line 621) * fsyntax-only: Warning Options. (line 14) * ftabstop: Preprocessor Options. (line 238) --- 61463,61472 ---- * fstrict-enums: C++ Dialect Options. (line 366) * fstrict-overflow: Code Gen Options. (line 115) ! * fstrict-volatile-bitfields: Code Gen Options. (line 588) * fstrong-eval-order: C++ Dialect Options. (line 375) ! * fsync-libcalls: Code Gen Options. (line 620) * fsyntax-only: Warning Options. (line 14) * ftabstop: Preprocessor Options. (line 238) *************** look up both forms. *** 61488,61498 **** * funroll-all-loops: Optimize Options. (line 2513) * funroll-loops: Optimize Options. (line 2503) * funsafe-math-optimizations: Optimize Options. (line 2265) ! * funsigned-bitfields: C Dialect Options. (line 434) * 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 406) * funsigned-char <1>: Characters implementation. (line 31) * funswitch-loops: Optimize Options. (line 2537) --- 61529,61539 ---- * funroll-all-loops: Optimize Options. (line 2513) * funroll-loops: Optimize Options. (line 2503) * funsafe-math-optimizations: Optimize Options. (line 2265) ! * funsigned-bitfields: C Dialect Options. (line 432) * 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 404) * funsigned-char <1>: Characters implementation. (line 31) * funswitch-loops: Optimize Options. (line 2537) *************** look up both forms. *** 61519,61529 **** (line 442) * fvpt: Optimize Options. (line 2466) * fvtable-verify: Instrumentation Options. ! (line 675) * fvtv-counts: Instrumentation Options. ! (line 711) * fvtv-debug: Instrumentation Options. ! (line 698) * fweak: C++ Dialect Options. (line 471) * fweb: Optimize Options. (line 1795) --- 61560,61570 ---- (line 442) * fvpt: Optimize Options. (line 2466) * fvtable-verify: Instrumentation Options. ! (line 679) * fvtv-counts: Instrumentation Options. ! (line 715) * fvtv-debug: Instrumentation Options. ! (line 702) * fweak: C++ Dialect Options. (line 471) * fweb: Optimize Options. (line 1795) *************** look up both forms. *** 61540,61551 **** * fzero-link: Objective-C and Objective-C++ Dialect Options. (line 140) * g: Debugging Options. (line 25) ! * G: ARC Options. (line 416) * G <1>: M32R/D Options. (line 57) * G <2>: MIPS Options. (line 460) * G <3>: Nios II Options. (line 9) * G <4>: RS/6000 and PowerPC Options. ! (line 714) * G <5>: System V Options. (line 10) * gas-loc-support: Debugging Options. (line 221) * gas-locview-support: Debugging Options. (line 237) --- 61581,61592 ---- * 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) * G <4>: RS/6000 and PowerPC Options. ! (line 713) * G <5>: System V Options. (line 10) * gas-loc-support: Debugging Options. (line 221) * gas-locview-support: Debugging Options. (line 237) *************** look up both forms. *** 61612,61623 **** * M: Preprocessor Options. (line 77) * m: RS/6000 and PowerPC Options. ! (line 521) * m1: SH Options. (line 9) * m10: PDP-11 Options. (line 29) * m128bit-long-double: x86 Options. (line 584) * m16: x86 Options. (line 1425) ! * m16-bit: CRIS Options. (line 64) * m16-bit <1>: NDS32 Options. (line 51) * m1reg-: Adapteva Epiphany Options. (line 131) --- 61653,61664 ---- * M: Preprocessor Options. (line 77) * m: RS/6000 and PowerPC Options. ! (line 520) * m1: SH Options. (line 9) * m10: PDP-11 Options. (line 29) * m128bit-long-double: x86 Options. (line 584) * m16: x86 Options. (line 1425) ! * m16-bit: CRIS Options. (line 63) * m16-bit <1>: NDS32 Options. (line 51) * m1reg-: Adapteva Epiphany Options. (line 131) *************** look up both forms. *** 61632,61643 **** (line 86) * m32: Nvidia PTX Options. (line 10) * m32 <1>: RS/6000 and PowerPC Options. ! (line 245) * m32 <2>: SPARC Options. (line 315) * m32 <3>: TILE-Gx Options. (line 23) * m32 <4>: TILEPro Options. (line 13) * m32 <5>: x86 Options. (line 1425) ! * m32-bit: CRIS Options. (line 64) * m32bit-doubles: RL78 Options. (line 73) * m32bit-doubles <1>: RX Options. (line 10) * m32r: M32R/D Options. (line 15) --- 61673,61684 ---- (line 86) * m32: Nvidia PTX Options. (line 10) * m32 <1>: RS/6000 and PowerPC Options. ! (line 244) * m32 <2>: SPARC Options. (line 315) * m32 <3>: TILE-Gx Options. (line 23) * m32 <4>: TILEPro Options. (line 13) * m32 <5>: x86 Options. (line 1425) ! * 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) *************** look up both forms. *** 61680,61686 **** * m5407: M680x0 Options. (line 165) * m64: Nvidia PTX Options. (line 10) * m64 <1>: RS/6000 and PowerPC Options. ! (line 245) * m64 <2>: S/390 and zSeries Options. (line 86) * m64 <3>: SPARC Options. (line 315) --- 61721,61727 ---- * m5407: M680x0 Options. (line 165) * m64: Nvidia PTX Options. (line 10) * m64 <1>: RS/6000 and PowerPC Options. ! (line 244) * m64 <2>: S/390 and zSeries Options. (line 86) * m64 <3>: SPARC Options. (line 315) *************** look up both forms. *** 61697,61703 **** * m68040: M680x0 Options. (line 117) * m68060: M680x0 Options. (line 126) * m68881: M680x0 Options. (line 194) ! * m8-bit: CRIS Options. (line 64) * m8bit-idiv: x86 Options. (line 1346) * m8byte-align: V850 Options. (line 170) * m96bit-long-double: x86 Options. (line 584) --- 61738,61744 ---- * 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 1346) * m8byte-align: V850 Options. (line 170) * m96bit-long-double: x86 Options. (line 584) *************** look up both forms. *** 61708,61727 **** * mabi <2>: PRU Options. (line 28) * mabi <3>: RISC-V Options. (line 17) * mabi <4>: RS/6000 and PowerPC Options. ! (line 552) * mabi <5>: x86 Options. (line 1039) * mabi=32: MIPS Options. (line 156) * mabi=64: MIPS Options. (line 156) * mabi=eabi: MIPS Options. (line 156) * mabi=elfv1: RS/6000 and PowerPC Options. ! (line 574) * mabi=elfv2: RS/6000 and PowerPC Options. ! (line 580) * mabi=gnu: MMIX Options. (line 20) * mabi=ibmlongdouble: RS/6000 and PowerPC Options. ! (line 558) * mabi=ieeelongdouble: RS/6000 and PowerPC Options. ! (line 566) * mabi=mmixware: MMIX Options. (line 20) * mabi=n32: MIPS Options. (line 156) * mabi=o64: MIPS Options. (line 156) --- 61749,61768 ---- * mabi <2>: PRU Options. (line 28) * mabi <3>: RISC-V Options. (line 17) * mabi <4>: RS/6000 and PowerPC Options. ! (line 551) * mabi <5>: x86 Options. (line 1039) * mabi=32: MIPS Options. (line 156) * mabi=64: MIPS Options. (line 156) * mabi=eabi: MIPS Options. (line 156) * mabi=elfv1: RS/6000 and PowerPC Options. ! (line 573) * mabi=elfv2: RS/6000 and PowerPC Options. ! (line 579) * mabi=gnu: MMIX Options. (line 20) * mabi=ibmlongdouble: RS/6000 and PowerPC Options. ! (line 557) * mabi=ieeelongdouble: RS/6000 and PowerPC Options. ! (line 565) * mabi=mmixware: MMIX Options. (line 20) * mabi=n32: MIPS Options. (line 156) * mabi=o64: MIPS Options. (line 156) *************** look up both forms. *** 61730,61757 **** * mabort-on-noreturn: ARM Options. (line 750) * 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 1083) * maddress-mode=long: x86 Options. (line 1475) * maddress-mode=short: x86 Options. (line 1480) * mads: RS/6000 and PowerPC Options. ! (line 614) * madx: x86 Options. (line 811) * maes: x86 Options. (line 788) * maix-struct-return: RS/6000 and PowerPC Options. ! (line 545) * maix32: RS/6000 and PowerPC Options. ! (line 283) * 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 127) * malign-data <1>: x86 Options. (line 624) * malign-double: x86 Options. (line 569) --- 61771,61798 ---- * mabort-on-noreturn: ARM Options. (line 750) * 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 1083) * maddress-mode=long: x86 Options. (line 1475) * maddress-mode=short: x86 Options. (line 1480) * mads: RS/6000 and PowerPC Options. ! (line 613) * madx: x86 Options. (line 811) * maes: x86 Options. (line 788) * maix-struct-return: RS/6000 and PowerPC Options. ! (line 544) * maix32: RS/6000 and PowerPC Options. ! (line 282) * maix64: RS/6000 and PowerPC Options. ! (line 282) * malign-300: H8/300 Options. (line 41) ! * malign-call: ARC Options. (line 433) * malign-data: RISC-V Options. (line 127) * malign-data <1>: x86 Options. (line 624) * malign-double: x86 Options. (line 569) *************** look up both forms. *** 61759,61767 **** * malign-labels: FRV Options. (line 128) * malign-loops: M32R/D Options. (line 73) * malign-natural: RS/6000 and PowerPC Options. ! (line 321) * malign-power: RS/6000 and PowerPC Options. ! (line 321) * malign-stringops: x86 Options. (line 1219) * mall-opts: MeP Options. (line 11) * malloc-cc: FRV Options. (line 31) --- 61800,61808 ---- * malign-labels: FRV Options. (line 128) * malign-loops: M32R/D Options. (line 73) * malign-natural: RS/6000 and PowerPC Options. ! (line 320) * malign-power: RS/6000 and PowerPC Options. ! (line 320) * malign-stringops: x86 Options. (line 1219) * mall-opts: MeP Options. (line 11) * malloc-cc: FRV Options. (line 31) *************** look up both forms. *** 61800,61807 **** * 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 822) * mas100-syntax: RX Options. (line 76) * masm-hex: MSP430 Options. (line 9) --- 61841,61848 ---- * 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 822) * mas100-syntax: RX Options. (line 76) * masm-hex: MSP430 Options. (line 9) *************** look up both forms. *** 61810,61820 **** * 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 776) * mavx2: x86 Options. (line 777) * mavx256-split-unaligned-load: x86 Options. (line 1354) --- 61851,61861 ---- * 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 359) * mavx: x86 Options. (line 776) * mavx2: x86 Options. (line 777) * mavx256-split-unaligned-load: x86 Options. (line 1354) *************** look up both forms. *** 61843,61857 **** (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) --- 61884,61898 ---- (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 439) * mbig-endian: AArch64 Options. (line 20) ! * mbig-endian <1>: ARC Options. (line 594) * mbig-endian <2>: ARM Options. (line 67) * mbig-endian <3>: C6X Options. (line 13) * mbig-endian <4>: C-SKY Options. (line 28) *************** look up both forms. *** 61861,61890 **** * mbig-endian <8>: MicroBlaze Options. (line 56) * mbig-endian <9>: NDS32 Options. (line 9) * mbig-endian <10>: RS/6000 and PowerPC Options. ! (line 440) * mbig-endian <11>: TILE-Gx Options. (line 29) * mbig-endian-data: RX Options. (line 42) * mbig-switch: V850 Options. (line 176) * mbigtable: SH Options. (line 141) * mbionic: GNU/Linux Options. (line 22) * mbit-align: RS/6000 and PowerPC Options. ! (line 392) * mbit-ops: CR16 Options. (line 25) * mbitfield: M680x0 Options. (line 231) * mbitops: MeP Options. (line 26) * mbitops <1>: SH Options. (line 145) * mblock-compare-inline-limit: RS/6000 and PowerPC Options. ! (line 694) * mblock-compare-inline-loop-limit: RS/6000 and PowerPC Options. ! (line 700) * mblock-move-inline-limit: RS/6000 and PowerPC Options. ! (line 688) * mbmi: x86 Options. (line 812) * mbmi2: x86 Options. (line 813) * 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 143) --- 61902,61931 ---- * mbig-endian <8>: MicroBlaze Options. (line 56) * mbig-endian <9>: NDS32 Options. (line 9) * mbig-endian <10>: RS/6000 and PowerPC Options. ! (line 439) * mbig-endian <11>: TILE-Gx Options. (line 29) * mbig-endian-data: RX Options. (line 42) * mbig-switch: V850 Options. (line 176) * mbigtable: SH Options. (line 141) * mbionic: GNU/Linux Options. (line 22) * mbit-align: RS/6000 and PowerPC Options. ! (line 391) * mbit-ops: CR16 Options. (line 25) * mbitfield: M680x0 Options. (line 231) * mbitops: MeP Options. (line 26) * mbitops <1>: SH Options. (line 145) * mblock-compare-inline-limit: RS/6000 and PowerPC Options. ! (line 693) * mblock-compare-inline-loop-limit: RS/6000 and PowerPC Options. ! (line 699) * mblock-move-inline-limit: RS/6000 and PowerPC Options. ! (line 687) * mbmi: x86 Options. (line 812) * mbmi2: x86 Options. (line 813) * 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 143) *************** look up both forms. *** 61893,61899 **** * mbranch-index: ARC Options. (line 329) * mbranch-likely: MIPS Options. (line 792) * mbranch-predict: MMIX Options. (line 48) ! * mbranch-protection: AArch64 Options. (line 276) * mbss-plt: RS/6000 and PowerPC Options. (line 160) * mbuild-constants: DEC Alpha Options. (line 141) --- 61934,61940 ---- * mbranch-index: ARC Options. (line 329) * mbranch-likely: MIPS Options. (line 792) * mbranch-predict: MMIX Options. (line 48) ! * mbranch-protection: AArch64 Options. (line 295) * mbss-plt: RS/6000 and PowerPC Options. (line 160) * mbuild-constants: DEC Alpha Options. (line 141) *************** look up both forms. *** 61906,61936 **** * mcache-block-size: NDS32 Options. (line 60) * mcache-volatile: Nios II Options. (line 109) * mcall-eabi: RS/6000 and PowerPC Options. ! (line 515) * mcall-freebsd: RS/6000 and PowerPC Options. ! (line 529) * mcall-linux: RS/6000 and PowerPC Options. ! (line 525) * mcall-ms2sysv-xlogues: x86 Options. (line 1059) * 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. ! (line 515) * mcall-sysv-noeabi: RS/6000 and PowerPC Options. ! (line 518) * mcallee-super-interworking: ARM Options. (line 851) * mcaller-copies: HPPA Options. (line 23) * mcaller-super-interworking: ARM Options. (line 858) * 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 42) * mccrt: C-SKY Options. (line 139) * mcfv4e: M680x0 Options. (line 169) * mcheck-zero-division: MIPS Options. (line 570) --- 61947,61977 ---- * mcache-block-size: NDS32 Options. (line 60) * mcache-volatile: Nios II Options. (line 109) * mcall-eabi: RS/6000 and PowerPC Options. ! (line 514) * mcall-freebsd: RS/6000 and PowerPC Options. ! (line 528) * mcall-linux: RS/6000 and PowerPC Options. ! (line 524) * mcall-ms2sysv-xlogues: x86 Options. (line 1059) * mcall-netbsd: RS/6000 and PowerPC Options. ! (line 532) * mcall-netbsd <1>: RS/6000 and PowerPC Options. ! (line 536) ! * mcall-prologues: AVR Options. (line 189) * mcall-sysv: RS/6000 and PowerPC Options. ! (line 506) * mcall-sysv-eabi: RS/6000 and PowerPC Options. ! (line 514) * mcall-sysv-noeabi: RS/6000 and PowerPC Options. ! (line 517) * mcallee-super-interworking: ARM Options. (line 851) * mcaller-copies: HPPA Options. (line 23) * mcaller-super-interworking: ARM Options. (line 858) * 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 41) * mccrt: C-SKY Options. (line 139) * mcfv4e: M680x0 Options. (line 169) * mcheck-zero-division: MIPS Options. (line 570) *************** look up both forms. *** 61969,61990 **** (line 25) * mcmse: ARM Options. (line 950) * mcode-density: ARC Options. (line 163) ! * mcode-density-frame: ARC Options. (line 511) * mcode-readable: MIPS Options. (line 530) * mcode-region: MSP430 Options. (line 135) * 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) * mcond-exec: FRV Options. (line 187) * mcond-move: FRV Options. (line 159) * mconfig=: MeP Options. (line 39) * mconsole: x86 Windows Options. (line 9) ! * mconst-align: CRIS Options. (line 55) * mconst16: Xtensa Options. (line 10) * mconstant-gp: IA-64 Options. (line 46) * mconstpool: C-SKY Options. (line 127) --- 62010,62031 ---- (line 25) * mcmse: ARM Options. (line 950) * mcode-density: ARC Options. (line 163) ! * mcode-density-frame: ARC Options. (line 509) * mcode-readable: MIPS Options. (line 530) * mcode-region: MSP430 Options. (line 135) * 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 898) * mcompress: FT32 Options. (line 26) * mcond-exec: FRV Options. (line 187) * mcond-move: FRV Options. (line 159) * mconfig=: MeP Options. (line 39) * mconsole: x86 Windows Options. (line 9) ! * mconst-align: CRIS Options. (line 54) * mconst16: Xtensa Options. (line 10) * mconstant-gp: IA-64 Options. (line 46) * mconstpool: C-SKY Options. (line 127) *************** look up both forms. *** 61994,62000 **** * mcorea: Blackfin Options. (line 154) * mcoreb: Blackfin Options. (line 161) * mcp: C-SKY Options. (line 74) ! * mcpu: AArch64 Options. (line 232) * mcpu <1>: ARC Options. (line 18) * mcpu <2>: ARM Options. (line 620) * mcpu <3>: CRIS Options. (line 10) --- 62035,62041 ---- * mcorea: Blackfin Options. (line 154) * mcoreb: Blackfin Options. (line 161) * mcp: C-SKY Options. (line 74) ! * mcpu: AArch64 Options. (line 242) * mcpu <1>: ARC Options. (line 18) * mcpu <2>: ARM Options. (line 620) * mcpu <3>: CRIS Options. (line 10) *************** look up both forms. *** 62032,62038 **** * MD: Preprocessor Options. (line 169) * mdalign: SH Options. (line 132) ! * mdata-align: CRIS Options. (line 55) * mdata-model: CR16 Options. (line 28) * mdata-region: MSP430 Options. (line 135) * mdc: MeP Options. (line 62) --- 62073,62079 ---- * MD: Preprocessor Options. (line 169) * mdalign: SH Options. (line 132) ! * mdata-align: CRIS Options. (line 54) * mdata-model: CR16 Options. (line 28) * mdata-region: MSP430 Options. (line 135) * mdc: MeP Options. (line 62) *************** look up both forms. *** 62059,62067 **** * mdll: x86 Windows Options. (line 16) * 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 42) * mdouble-float <1>: MIPS Options. (line 288) --- 62100,62108 ---- * mdll: x86 Windows Options. (line 16) * mdlmzb: RS/6000 and PowerPC Options. ! (line 384) * mdmx: MIPS Options. (line 376) ! * mdouble: AVR Options. (line 194) * mdouble <1>: FRV Options. (line 48) * mdouble-float: C-SKY Options. (line 42) * mdouble-float <1>: MIPS Options. (line 288) *************** look up both forms. *** 62069,62093 **** * 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 86) * 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 874) * mdvbf: ARC Options. (line 340) * mdwarf2-asm: IA-64 Options. (line 94) * mdword: FRV Options. (line 40) * mdword <1>: FRV Options. (line 44) * 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) --- 62110,62134 ---- * 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 86) * 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 874) * mdvbf: ARC Options. (line 340) * mdwarf2-asm: IA-64 Options. (line 94) * mdword: FRV Options. (line 40) * mdword <1>: FRV Options. (line 44) * mdynamic-no-pic: RS/6000 and PowerPC Options. ! (line 444) * mea: ARC Options. (line 112) ! * mEA: ARC Options. (line 620) * meabi: RS/6000 and PowerPC Options. ! (line 632) ! * mearly-cbranchsi: ARC Options. (line 474) * mearly-stop-bits: IA-64 Options. (line 100) * meb: MeP Options. (line 68) * meb <1>: Moxie Options. (line 7) *************** look up both forms. *** 62098,62108 **** * mel <1>: Moxie Options. (line 11) * mel <2>: Nios II Options. (line 90) * mel <3>: Score Options. (line 12) ! * melf: CRIS Options. (line 87) * melf <1>: MMIX Options. (line 43) * melrw: C-SKY Options. (line 60) * memb: RS/6000 and PowerPC Options. ! (line 628) * membedded-data: MIPS Options. (line 517) * memregs=: M32C Options. (line 21) * menqcmd: x86 Options. (line 835) --- 62139,62149 ---- * mel <1>: Moxie Options. (line 11) * mel <2>: Nios II Options. (line 90) * mel <3>: Score Options. (line 12) ! * melf: CRIS Options. (line 86) * melf <1>: MMIX Options. (line 43) * melrw: C-SKY Options. (line 60) * memb: RS/6000 and PowerPC Options. ! (line 627) * membedded-data: MIPS Options. (line 517) * memregs=: M32C Options. (line 21) * menqcmd: x86 Options. (line 835) *************** look up both forms. *** 62110,62119 **** * mepsilon: MMIX Options. (line 15) * mesa: S/390 and zSeries Options. (line 94) ! * metrax100: CRIS Options. (line 27) ! * metrax4: CRIS Options. (line 27) * 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) --- 62151,62160 ---- * 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 477) * mexplicit-relocs: DEC Alpha Options. (line 176) * mexplicit-relocs <1>: MIPS Options. (line 561) * mexr: H8/300 Options. (line 28) *************** look up both forms. *** 62132,62138 **** * mfaster-structs: SPARC Options. (line 91) * mfdiv: RISC-V Options. (line 42) * mfdivdu: C-SKY Options. (line 48) ! * mfdpic: ARM Options. (line 957) * mfdpic <1>: FRV Options. (line 72) * mfentry: x86 Options. (line 1293) * mfentry-name: x86 Options. (line 1324) --- 62173,62179 ---- * mfaster-structs: SPARC Options. (line 91) * mfdiv: RISC-V Options. (line 42) * mfdivdu: C-SKY Options. (line 48) ! * mfdpic: ARM Options. (line 965) * mfdpic <1>: FRV Options. (line 72) * mfentry: x86 Options. (line 1293) * mfentry-name: x86 Options. (line 1324) *************** look up both forms. *** 62141,62146 **** --- 62182,62188 ---- * 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 956) * mfix-cortex-a53-835769: AArch64 Options. (line 105) * mfix-cortex-a53-843419: AArch64 Options. (line 112) * mfix-cortex-m3-ldrd: ARM Options. (line 892) *************** look up both forms. *** 62168,62174 **** * mfloat128: RS/6000 and PowerPC Options. (line 214) * mfloat128-hardware: RS/6000 and PowerPC Options. ! (line 236) * mflush-func: MIPS Options. (line 776) * mflush-func=NAME: M32R/D Options. (line 93) * mflush-trap=NUMBER: M32R/D Options. (line 86) --- 62210,62216 ---- * mfloat128: RS/6000 and PowerPC Options. (line 214) * mfloat128-hardware: RS/6000 and PowerPC Options. ! (line 235) * mflush-func: MIPS Options. (line 776) * mflush-func=NAME: M32R/D Options. (line 93) * mflush-trap=NUMBER: M32R/D Options. (line 86) *************** look up both forms. *** 62201,62210 **** * mfpu <4>: Visium Options. (line 19) * mfpu=: C-SKY Options. (line 53) * 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 792) * mfsmuld: SPARC Options. (line 274) --- 62243,62252 ---- * mfpu <4>: Visium Options. (line 19) * mfpu=: C-SKY Options. (line 53) * 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 869) * mfsca: SH Options. (line 365) * mfsgsbase: x86 Options. (line 792) * mfsmuld: SPARC Options. (line 274) *************** look up both forms. *** 62212,62223 **** * 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 1396) * mfused-madd: IA-64 Options. (line 88) * mfused-madd <1>: MIPS Options. (line 624) * mfused-madd <2>: RS/6000 and PowerPC Options. ! (line 369) * mfused-madd <3>: S/390 and zSeries Options. (line 182) * mfused-madd <4>: SH Options. (line 356) --- 62254,62265 ---- * mft32b: FT32 Options. (line 23) * mfull-regs: NDS32 Options. (line 18) * mfull-toc: RS/6000 and PowerPC Options. ! (line 255) * mfunction-return: x86 Options. (line 1396) * mfused-madd: IA-64 Options. (line 88) * mfused-madd <1>: MIPS Options. (line 624) * mfused-madd <2>: RS/6000 and PowerPC Options. ! (line 368) * mfused-madd <3>: S/390 and zSeries Options. (line 182) * mfused-madd <4>: SH Options. (line 356) *************** look up both forms. *** 62230,62236 **** * 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) --- 62272,62278 ---- * 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) *************** look up both forms. *** 62243,62253 **** * mgnu-as: IA-64 Options. (line 18) * mgnu-asm: PDP-11 Options. (line 49) * mgnu-attribute: RS/6000 and PowerPC Options. ! (line 587) * mgnu-ld: HPPA Options. (line 111) * mgnu-ld <1>: IA-64 Options. (line 23) * mgomp: Nvidia PTX Options. (line 53) ! * mgotplt: CRIS Options. (line 81) * mgp32: MIPS Options. (line 252) * mgp64: MIPS Options. (line 255) * mgpopt: MIPS Options. (line 502) --- 62285,62295 ---- * mgnu-as: IA-64 Options. (line 18) * mgnu-asm: PDP-11 Options. (line 49) * mgnu-attribute: RS/6000 and PowerPC Options. ! (line 586) * mgnu-ld: HPPA Options. (line 111) * mgnu-ld <1>: IA-64 Options. (line 23) * mgomp: Nvidia PTX Options. (line 53) ! * mgotplt: CRIS Options. (line 80) * mgp32: MIPS Options. (line 252) * mgp64: MIPS Options. (line 255) * mgpopt: MIPS Options. (line 502) *************** look up both forms. *** 62272,62278 **** * mhard-float <4>: MIPS Options. (line 267) * mhard-float <5>: OpenRISC Options. (line 29) * mhard-float <6>: RS/6000 and PowerPC Options. ! (line 333) * mhard-float <7>: S/390 and zSeries Options. (line 11) * mhard-float <8>: SPARC Options. (line 34) --- 62314,62320 ---- * mhard-float <4>: MIPS Options. (line 267) * mhard-float <5>: OpenRISC Options. (line 29) * mhard-float <6>: RS/6000 and PowerPC Options. ! (line 332) * mhard-float <7>: S/390 and zSeries Options. (line 11) * mhard-float <8>: SPARC Options. (line 34) *************** look up both forms. *** 62281,62287 **** * mhard-float <11>: x86 Options. (line 532) * mhard-mul: OpenRISC Options. (line 24) * mhard-quad-float: SPARC Options. (line 55) ! * mharden-sls: AArch64 Options. (line 289) * mhardlit: MCore Options. (line 10) * mhigh-registers: C-SKY Options. (line 104) * mhle: x86 Options. (line 821) --- 62323,62329 ---- * mhard-float <11>: x86 Options. (line 532) * mhard-mul: OpenRISC Options. (line 24) * mhard-quad-float: SPARC Options. (line 55) ! * mharden-sls: AArch64 Options. (line 308) * mhardlit: MCore Options. (line 10) * mhigh-registers: C-SKY Options. (line 104) * mhle: x86 Options. (line 821) *************** look up both forms. *** 62309,62315 **** * mimadd: MIPS Options. (line 617) * mimpure-text: Solaris 2 Options. (line 15) * mincoming-stack-boundary: x86 Options. (line 742) ! * mindexed-loads: ARC Options. (line 483) * mindirect-branch: x86 Options. (line 1377) * mindirect-branch-register: x86 Options. (line 1415) * minline-all-stringops: x86 Options. (line 1224) --- 62351,62357 ---- * mimadd: MIPS Options. (line 617) * mimpure-text: Solaris 2 Options. (line 15) * mincoming-stack-boundary: x86 Options. (line 742) ! * mindexed-loads: ARC Options. (line 481) * mindirect-branch: x86 Options. (line 1377) * mindirect-branch-register: x86 Options. (line 1415) * minline-all-stringops: x86 Options. (line 1224) *************** look up both forms. *** 62327,62340 **** * 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 1312) * 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) --- 62369,62382 ---- * minrt: MSP430 Options. (line 115) * minrt <1>: PRU Options. (line 9) * minsert-sched-nops: RS/6000 and PowerPC Options. ! (line 484) * minstrument-return: x86 Options. (line 1312) * mint-register: RX Options. (line 100) * mint16: PDP-11 Options. (line 33) * mint32: CR16 Options. (line 22) * mint32 <1>: H8/300 Options. (line 38) * mint32 <2>: PDP-11 Options. (line 37) ! * mint8: AVR Options. (line 211) * minterlink-compressed: MIPS Options. (line 135) * minterlink-mips16: MIPS Options. (line 147) * mio-volatile: MeP Options. (line 74) *************** look up both forms. *** 62381,62391 **** * mlibrary-pic: FRV Options. (line 135) * mlinked-fp: FRV Options. (line 116) * mlinker-opt: HPPA Options. (line 85) ! * mlinux: CRIS Options. (line 91) * 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) --- 62423,62433 ---- * mlibrary-pic: FRV Options. (line 135) * mlinked-fp: FRV Options. (line 116) * mlinker-opt: HPPA Options. (line 85) ! * mlinux: CRIS Options. (line 90) * mlittle: RS/6000 and PowerPC Options. ! (line 433) * mlittle-endian: AArch64 Options. (line 30) ! * mlittle-endian <1>: ARC Options. (line 601) * mlittle-endian <2>: ARM Options. (line 63) * mlittle-endian <3>: C6X Options. (line 16) * mlittle-endian <4>: C-SKY Options. (line 30) *************** look up both forms. *** 62395,62401 **** * mlittle-endian <8>: MicroBlaze Options. (line 59) * mlittle-endian <9>: NDS32 Options. (line 12) * mlittle-endian <10>: RS/6000 and PowerPC Options. ! (line 434) * mlittle-endian <11>: TILE-Gx Options. (line 29) * mlittle-endian-data: RX Options. (line 42) * mliw: MN10300 Options. (line 54) --- 62437,62443 ---- * mlittle-endian <8>: MicroBlaze Options. (line 59) * mlittle-endian <9>: NDS32 Options. (line 12) * mlittle-endian <10>: RS/6000 and PowerPC Options. ! (line 433) * mlittle-endian <11>: TILE-Gx Options. (line 29) * mlittle-endian-data: RX Options. (line 42) * mliw: MN10300 Options. (line 54) *************** look up both forms. *** 62406,62419 **** * 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 755) * 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 610) --- 62448,62461 ---- * 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 755) * 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 610) *************** look up both forms. *** 62427,62433 **** * mlong32: MIPS Options. (line 443) * mlong64: MIPS Options. (line 438) * mlongcall: RS/6000 and PowerPC Options. ! (line 728) * mlongcalls: Xtensa Options. (line 87) * mloongson-ext: MIPS Options. (line 430) * mloongson-ext2: MIPS Options. (line 434) --- 62469,62475 ---- * mlong32: MIPS Options. (line 443) * mlong64: MIPS Options. (line 438) * mlongcall: RS/6000 and PowerPC Options. ! (line 727) * mlongcalls: Xtensa Options. (line 87) * mloongson-ext: MIPS Options. (line 430) * mloongson-ext2: MIPS Options. (line 434) *************** look up both forms. *** 62440,62452 **** * 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 806) * mlxc1-sxc1: MIPS Options. (line 895) * mlzcnt: x86 Options. (line 814) --- 62482,62494 ---- * 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 806) * mlxc1-sxc1: MIPS Options. (line 895) * mlzcnt: x86 Options. (line 814) *************** look up both forms. *** 62457,62473 **** * mmac <1>: Score Options. (line 21) * mmac-24: ARC Options. (line 354) * mmac-d16: ARC Options. (line 350) ! * mmac_24: ARC Options. (line 628) ! * mmac_d16: ARC Options. (line 631) * mmad: MIPS Options. (line 612) * mmadd4: MIPS Options. (line 900) ! * mmain-is-OS_task: AVR Options. (line 219) * mmainkernel: Nvidia PTX Options. (line 18) * mmalloc64: VMS Options. (line 17) * mmanual-endbr: x86 Options. (line 1053) * mmax: DEC Alpha Options. (line 163) * mmax-constant-size: RX Options. (line 82) ! * mmax-stack-frame: CRIS Options. (line 23) * mmcount-ra-address: MIPS Options. (line 872) * mmcu: AVR Options. (line 9) * mmcu <1>: MIPS Options. (line 399) --- 62499,62515 ---- * 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 1053) * mmax: DEC Alpha Options. (line 163) * mmax-constant-size: RX Options. (line 82) ! * 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. *** 62476,62482 **** * MMD: Preprocessor Options. (line 185) * 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 1254) --- 62518,62524 ---- * MMD: Preprocessor Options. (line 185) * 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 1254) *************** look up both forms. *** 62486,62498 **** * 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 767) * mmodel=large: M32R/D Options. (line 33) * mmodel=medium: M32R/D Options. (line 27) --- 62528,62540 ---- * 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 255) * mminmax: MeP Options. (line 87) ! * mmixed-code: ARC Options. (line 514) * mmma: RS/6000 and PowerPC Options. ! (line 943) * mmmx: x86 Options. (line 767) * mmodel=large: M32R/D Options. (line 33) * mmodel=medium: M32R/D Options. (line 27) *************** look up both forms. *** 62506,62534 **** * mms-bitfields: x86 Options. (line 1099) * mmt: MIPS Options. (line 395) * mmul: RL78 Options. (line 15) ! * mmul-bug-workaround: CRIS Options. (line 32) * mmul.x: Moxie Options. (line 14) * mmul32x16: ARC Options. (line 121) * mmul64: ARC Options. (line 124) * mmuladd: FRV Options. (line 64) * mmulhw: RS/6000 and PowerPC Options. ! (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. ! (line 339) * mmultiple-stld: C-SKY Options. (line 121) * mmusl: GNU/Linux Options. (line 18) * mmvcle: S/390 and zSeries Options. (line 138) * mmvme: RS/6000 and PowerPC Options. ! (line 609) * mmwaitx: x86 Options. (line 823) * mn: H8/300 Options. (line 20) ! * mn-flash: AVR Options. (line 224) * mnan=2008: MIPS Options. (line 320) * mnan=legacy: MIPS Options. (line 320) * mneon-for-64bits: ARM Options. (line 912) --- 62548,62576 ---- * mms-bitfields: x86 Options. (line 1099) * 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) * mmuladd: FRV Options. (line 64) * mmulhw: RS/6000 and PowerPC Options. ! (line 377) * 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. ! (line 338) * mmultiple-stld: C-SKY Options. (line 121) * mmusl: GNU/Linux Options. (line 18) * mmvcle: S/390 and zSeries Options. (line 138) * mmvme: RS/6000 and PowerPC Options. ! (line 608) * mmwaitx: x86 Options. (line 823) * mn: H8/300 Options. (line 20) ! * mn-flash: AVR Options. (line 222) * mnan=2008: MIPS Options. (line 320) * mnan=legacy: MIPS Options. (line 320) * mneon-for-64bits: ARM Options. (line 912) *************** look up both forms. *** 62553,62568 **** * mno-as100-syntax: RX Options. (line 76) * mno-auto-litpools: Xtensa Options. (line 60) * mno-avoid-indexed-addresses: RS/6000 and PowerPC Options. ! (line 360) * mno-backchain: S/390 and zSeries Options. (line 35) * mno-base-addresses: MMIX Options. (line 53) * mno-bit-align: RS/6000 and PowerPC Options. ! (line 392) * 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) --- 62595,62610 ---- * mno-as100-syntax: RX Options. (line 76) * mno-auto-litpools: Xtensa Options. (line 60) * mno-avoid-indexed-addresses: RS/6000 and PowerPC Options. ! (line 359) * mno-backchain: S/390 and zSeries Options. (line 35) * mno-base-addresses: MMIX Options. (line 53) * mno-bit-align: RS/6000 and PowerPC Options. ! (line 391) * 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) *************** look up both forms. *** 62575,62584 **** * 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 55) * mno-const16: Xtensa Options. (line 10) * mno-crc: MIPS Options. (line 416) * mno-crt0: MN10300 Options. (line 43) --- 62617,62626 ---- * 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 54) * mno-const16: Xtensa Options. (line 10) * mno-crc: MIPS Options. (line 416) * mno-crt0: MN10300 Options. (line 43) *************** look up both forms. *** 62587,62593 **** (line 177) * mno-csync-anomaly: Blackfin Options. (line 63) * mno-custom-INSN: Nios II Options. (line 139) ! * mno-data-align: CRIS Options. (line 55) * mno-debug: S/390 and zSeries Options. (line 144) * mno-default: x86 Options. (line 888) --- 62629,62635 ---- (line 177) * 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 888) *************** look up both forms. *** 62595,62601 **** * mno-div: M680x0 Options. (line 206) * mno-div <1>: MCore Options. (line 15) * mno-dlmzb: RS/6000 and PowerPC Options. ! (line 385) * mno-double: FRV Options. (line 52) * mno-dpfp-lrsr: ARC Options. (line 108) * mno-dsp: MIPS Options. (line 353) --- 62637,62643 ---- * mno-div: M680x0 Options. (line 206) * mno-div <1>: MCore Options. (line 15) * mno-dlmzb: RS/6000 and PowerPC Options. ! (line 384) * mno-double: FRV Options. (line 52) * mno-dpfp-lrsr: ARC Options. (line 108) * mno-dsp: MIPS Options. (line 353) *************** look up both forms. *** 62603,62609 **** * mno-dwarf2-asm: IA-64 Options. (line 94) * mno-dword: FRV Options. (line 44) * mno-eabi: RS/6000 and PowerPC Options. ! (line 633) * mno-early-stop-bits: IA-64 Options. (line 100) * mno-eflags: FRV Options. (line 155) * mno-embedded-data: MIPS Options. (line 517) --- 62645,62651 ---- * mno-dwarf2-asm: IA-64 Options. (line 94) * mno-dword: FRV Options. (line 44) * mno-eabi: RS/6000 and PowerPC Options. ! (line 632) * mno-early-stop-bits: IA-64 Options. (line 100) * mno-eflags: FRV Options. (line 155) * mno-embedded-data: MIPS Options. (line 517) *************** look up both forms. *** 62620,62626 **** * mno-fancy-math-387: x86 Options. (line 559) * mno-fast-sw-div: Nios II Options. (line 115) * mno-faster-structs: SPARC Options. (line 91) ! * mno-fdpic: ARM Options. (line 957) * mno-fix: DEC Alpha Options. (line 163) * mno-fix-24k: MIPS Options. (line 641) * mno-fix-cortex-a53-835769: AArch64 Options. (line 105) --- 62662,62668 ---- * mno-fancy-math-387: x86 Options. (line 559) * mno-fast-sw-div: Nios II Options. (line 115) * mno-faster-structs: SPARC Options. (line 91) ! * mno-fdpic: ARM Options. (line 965) * mno-fix: DEC Alpha Options. (line 163) * mno-fix-24k: MIPS Options. (line 641) * mno-fix-cortex-a53-835769: AArch64 Options. (line 105) *************** look up both forms. *** 62633,62644 **** * mno-float128: RS/6000 and PowerPC Options. (line 214) * mno-float128-hardware: RS/6000 and PowerPC Options. ! (line 236) * mno-flush-func: M32R/D Options. (line 98) * mno-flush-trap: M32R/D Options. (line 90) * mno-fmaf: SPARC Options. (line 267) * 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 549) * mno-fprnd: RS/6000 and PowerPC Options. --- 62675,62686 ---- * mno-float128: RS/6000 and PowerPC Options. (line 214) * mno-float128-hardware: RS/6000 and PowerPC Options. ! (line 235) * mno-flush-func: M32R/D Options. (line 98) * mno-flush-trap: M32R/D Options. (line 90) * mno-fmaf: SPARC Options. (line 267) * mno-fp-in-toc: RS/6000 and PowerPC Options. ! (line 255) * mno-fp-regs: DEC Alpha Options. (line 25) * mno-fp-ret-in-387: x86 Options. (line 549) * mno-fprnd: RS/6000 and PowerPC Options. *************** look up both forms. *** 62651,62657 **** * mno-fused-madd: IA-64 Options. (line 88) * mno-fused-madd <1>: MIPS Options. (line 624) * mno-fused-madd <2>: RS/6000 and PowerPC Options. ! (line 369) * mno-fused-madd <3>: S/390 and zSeries Options. (line 182) * mno-fused-madd <4>: SH Options. (line 356) --- 62693,62699 ---- * mno-fused-madd: IA-64 Options. (line 88) * mno-fused-madd <1>: MIPS Options. (line 624) * mno-fused-madd <2>: RS/6000 and PowerPC Options. ! (line 368) * mno-fused-madd <3>: S/390 and zSeries Options. (line 182) * mno-fused-madd <4>: SH Options. (line 356) *************** look up both forms. *** 62659,62667 **** * mno-ginv: MIPS Options. (line 421) * mno-gnu-as: IA-64 Options. (line 18) * mno-gnu-attribute: RS/6000 and PowerPC Options. ! (line 587) * mno-gnu-ld: IA-64 Options. (line 23) ! * mno-gotplt: CRIS Options. (line 81) * mno-gpopt: MIPS Options. (line 502) * mno-gpopt <1>: Nios II Options. (line 16) * mno-hard-dfp: RS/6000 and PowerPC Options. --- 62701,62709 ---- * mno-ginv: MIPS Options. (line 421) * mno-gnu-as: IA-64 Options. (line 18) * mno-gnu-attribute: RS/6000 and PowerPC Options. ! (line 586) * mno-gnu-ld: IA-64 Options. (line 23) ! * mno-gotplt: CRIS Options. (line 80) * mno-gpopt: MIPS Options. (line 502) * mno-gpopt <1>: Nios II Options. (line 16) * mno-hard-dfp: RS/6000 and PowerPC Options. *************** look up both forms. *** 62687,62693 **** * 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 166) * mno-jsr: RX Options. (line 169) --- 62729,62735 ---- * 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 166) * mno-jsr: RX Options. (line 169) *************** look up both forms. *** 62705,62711 **** * mno-long-calls <4>: V850 Options. (line 10) * mno-long-jumps: V850 Options. (line 108) * mno-longcall: RS/6000 and PowerPC Options. ! (line 728) * mno-longcalls: Xtensa Options. (line 87) * mno-loongson-ext: MIPS Options. (line 430) * mno-loongson-ext2: MIPS Options. (line 434) --- 62747,62753 ---- * mno-long-calls <4>: V850 Options. (line 10) * mno-long-jumps: V850 Options. (line 108) * mno-longcall: RS/6000 and PowerPC Options. ! (line 727) * mno-longcalls: Xtensa Options. (line 87) * mno-loongson-ext: MIPS Options. (line 430) * mno-loongson-ext2: MIPS Options. (line 434) *************** look up both forms. *** 62729,62747 **** * mno-mips16: MIPS Options. (line 120) * mno-mips3d: MIPS Options. (line 382) * mno-mma: RS/6000 and PowerPC Options. ! (line 944) * mno-mmicromips: MIPS Options. (line 387) * mno-mpy: ARC Options. (line 117) * mno-ms-bitfields: x86 Options. (line 1099) * mno-mt: MIPS Options. (line 395) ! * mno-mul-bug-workaround: CRIS Options. (line 32) * mno-muladd: FRV Options. (line 68) * mno-mulhw: RS/6000 and PowerPC Options. ! (line 378) * mno-mult-bug: MN10300 Options. (line 13) * mno-multi-cond-exec: FRV Options. (line 223) * mno-multiple: RS/6000 and PowerPC Options. ! (line 339) * mno-mvcle: S/390 and zSeries Options. (line 138) * mno-nested-cond-exec: FRV Options. (line 237) --- 62771,62789 ---- * mno-mips16: MIPS Options. (line 120) * mno-mips3d: MIPS Options. (line 382) * mno-mma: RS/6000 and PowerPC Options. ! (line 943) * mno-mmicromips: MIPS Options. (line 387) * mno-mpy: ARC Options. (line 117) * mno-ms-bitfields: x86 Options. (line 1099) * 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 377) * mno-mult-bug: MN10300 Options. (line 13) * mno-multi-cond-exec: FRV Options. (line 223) * mno-multiple: RS/6000 and PowerPC Options. ! (line 338) * mno-mvcle: S/390 and zSeries Options. (line 138) * mno-nested-cond-exec: FRV Options. (line 237) *************** look up both forms. *** 62753,62766 **** * mno-packed-stack: S/390 and zSeries Options. (line 54) * mno-paired-single: MIPS Options. (line 370) ! * mno-pc-relative-literal-loads: AArch64 Options. (line 262) * mno-pcrel: RS/6000 and PowerPC Options. ! (line 932) * mno-pic: IA-64 Options. (line 26) * mno-pid: RX Options. (line 117) * mno-plt: MIPS Options. (line 219) * mno-pltseq: RS/6000 and PowerPC Options. ! (line 765) * mno-popc: SPARC Options. (line 281) * mno-popcntb: RS/6000 and PowerPC Options. (line 25) --- 62795,62808 ---- * mno-packed-stack: S/390 and zSeries Options. (line 54) * mno-paired-single: MIPS Options. (line 370) ! * mno-pc-relative-literal-loads: AArch64 Options. (line 281) * mno-pcrel: RS/6000 and PowerPC Options. ! (line 931) * mno-pic: IA-64 Options. (line 26) * mno-pid: RX Options. (line 117) * mno-plt: MIPS Options. (line 219) * mno-pltseq: RS/6000 and PowerPC Options. ! (line 764) * mno-popc: SPARC Options. (line 281) * mno-popcntb: RS/6000 and PowerPC Options. (line 25) *************** look up both forms. *** 62781,62809 **** * mno-powerpc64: RS/6000 and PowerPC Options. (line 25) * mno-prefixed: RS/6000 and PowerPC Options. ! (line 939) * mno-prolog-function: V850 Options. (line 23) ! * mno-prologue-epilogue: CRIS Options. (line 71) * mno-prototype: RS/6000 and PowerPC Options. ! (line 593) * mno-push-args: x86 Options. (line 1076) * mno-quad-memory: RS/6000 and PowerPC Options. (line 202) * mno-quad-memory-atomic: RS/6000 and PowerPC Options. (line 208) * mno-readonly-in-sdata: RS/6000 and PowerPC Options. ! (line 684) * mno-red-zone: x86 Options. (line 1445) * mno-register-names: IA-64 Options. (line 37) * mno-regnames: RS/6000 and PowerPC Options. ! (line 722) * mno-relax: PRU Options. (line 21) * mno-relax <1>: V850 Options. (line 103) * mno-relax-immediate: MCore Options. (line 19) * mno-relocatable: RS/6000 and PowerPC Options. ! (line 408) * mno-relocatable-lib: RS/6000 and PowerPC Options. ! (line 419) * mno-renesas: SH Options. (line 155) * mno-round-nearest: Adapteva Epiphany Options. (line 51) --- 62823,62851 ---- * mno-powerpc64: RS/6000 and PowerPC Options. (line 25) * mno-prefixed: RS/6000 and PowerPC Options. ! (line 937) * mno-prolog-function: V850 Options. (line 23) ! * mno-prologue-epilogue: CRIS Options. (line 70) * mno-prototype: RS/6000 and PowerPC Options. ! (line 592) * mno-push-args: x86 Options. (line 1076) * mno-quad-memory: RS/6000 and PowerPC Options. (line 202) * mno-quad-memory-atomic: RS/6000 and PowerPC Options. (line 208) * mno-readonly-in-sdata: RS/6000 and PowerPC Options. ! (line 683) * mno-red-zone: x86 Options. (line 1445) * mno-register-names: IA-64 Options. (line 37) * mno-regnames: RS/6000 and PowerPC Options. ! (line 721) * mno-relax: PRU Options. (line 21) * mno-relax <1>: V850 Options. (line 103) * mno-relax-immediate: MCore Options. (line 19) * mno-relocatable: RS/6000 and PowerPC Options. ! (line 407) * mno-relocatable-lib: RS/6000 and PowerPC Options. ! (line 418) * mno-renesas: SH Options. (line 155) * mno-round-nearest: Adapteva Epiphany Options. (line 51) *************** look up both forms. *** 62819,62833 **** * 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) * mno-sep-data: Blackfin Options. (line 113) * 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 46) * mno-sim: RX Options. (line 71) * mno-single-exit: MMIX Options. (line 65) * mno-slow-bytes: MCore Options. (line 35) --- 62861,62875 ---- * 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 678) * mno-sep-data: Blackfin Options. (line 113) * 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. *** 62842,62864 **** * mno-split-addresses: MIPS Options. (line 555) * mno-split-lohi: Adapteva Epiphany Options. (line 109) ! * mno-stack-align: CRIS Options. (line 55) * mno-stack-bias: SPARC Options. (line 372) * mno-std-struct-return: SPARC Options. (line 102) * mno-strict-align: AArch64 Options. (line 52) * mno-strict-align <1>: M680x0 Options. (line 280) * mno-strict-align <2>: RS/6000 and PowerPC Options. ! (line 403) * mno-subxc: SPARC Options. (line 288) * mno-sum-in-toc: RS/6000 and PowerPC Options. ! (line 256) * mno-sym32: MIPS Options. (line 453) * mno-target-align: Xtensa Options. (line 74) * mno-text-section-literals: Xtensa Options. (line 47) * mno-tls-markers: RS/6000 and PowerPC Options. ! (line 777) * mno-toc: RS/6000 and PowerPC Options. ! (line 428) * mno-toplevel-symbols: MMIX Options. (line 39) * mno-tpf-trace: S/390 and zSeries Options. (line 168) --- 62884,62906 ---- * 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) * mno-strict-align <1>: M680x0 Options. (line 280) * mno-strict-align <2>: RS/6000 and PowerPC Options. ! (line 402) * mno-subxc: SPARC Options. (line 288) * mno-sum-in-toc: RS/6000 and PowerPC Options. ! (line 255) * mno-sym32: MIPS Options. (line 453) * mno-target-align: Xtensa Options. (line 74) * mno-text-section-literals: Xtensa Options. (line 47) * mno-tls-markers: RS/6000 and PowerPC Options. ! (line 776) * mno-toc: RS/6000 and PowerPC Options. ! (line 427) * mno-toplevel-symbols: MMIX Options. (line 39) * mno-tpf-trace: S/390 and zSeries Options. (line 168) *************** look up both forms. *** 62868,62874 **** * mno-unaligned-doubles: SPARC Options. (line 73) * mno-uninit-const-in-rodata: MIPS Options. (line 525) * mno-update: RS/6000 and PowerPC Options. ! (line 350) * mno-user-mode: SPARC Options. (line 85) * mno-usermode: SH Options. (line 274) * mno-v3push: NDS32 Options. (line 48) --- 62910,62916 ---- * mno-unaligned-doubles: SPARC Options. (line 73) * mno-uninit-const-in-rodata: MIPS Options. (line 525) * mno-update: RS/6000 and PowerPC Options. ! (line 349) * mno-user-mode: SPARC Options. (line 85) * mno-usermode: SH Options. (line 274) * mno-v3push: NDS32 Options. (line 48) *************** look up both forms. *** 62883,62889 **** * 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 152) * mno-vsx: RS/6000 and PowerPC Options. --- 62925,62931 ---- * 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 152) * mno-vsx: RS/6000 and PowerPC Options. *************** look up both forms. *** 62897,62903 **** * mno-xgot: M680x0 Options. (line 312) * mno-xgot <1>: MIPS Options. (line 229) * mno-xl-compat: RS/6000 and PowerPC Options. ! (line 291) * mno-xpa: MIPS Options. (line 411) * mno-zdcbranch: SH Options. (line 341) * mno-zero-extend: MMIX Options. (line 26) --- 62939,62945 ---- * mno-xgot: M680x0 Options. (line 312) * mno-xgot <1>: MIPS Options. (line 229) * mno-xl-compat: RS/6000 and PowerPC Options. ! (line 290) * mno-xpa: MIPS Options. (line 411) * mno-zdcbranch: SH Options. (line 341) * mno-zero-extend: MMIX Options. (line 26) *************** look up both forms. *** 62921,62927 **** * moptimize: Nvidia PTX Options. (line 22) * moptimize-membar: FRV Options. (line 244) * moptimize-membar <1>: FRV Options. (line 249) ! * moverride: AArch64 Options. (line 249) * MP: Preprocessor Options. (line 132) * mpa-risc-1-0: HPPA Options. (line 19) --- 62963,62969 ---- * moptimize: Nvidia PTX Options. (line 22) * moptimize-membar: FRV Options. (line 244) * moptimize-membar <1>: FRV Options. (line 249) ! * moverride: AArch64 Options. (line 268) * MP: Preprocessor Options. (line 132) * mpa-risc-1-0: HPPA Options. (line 19) *************** look up both forms. *** 62932,62938 **** (line 54) * mpadstruct: SH Options. (line 189) * mpaired-single: MIPS Options. (line 370) ! * mpc-relative-literal-loads: AArch64 Options. (line 262) * mpc32: x86 Options. (line 691) * mpc64: x86 Options. (line 691) * mpc80: x86 Options. (line 691) --- 62974,62980 ---- (line 54) * mpadstruct: SH Options. (line 189) * mpaired-single: MIPS Options. (line 370) ! * mpc-relative-literal-loads: AArch64 Options. (line 281) * mpc32: x86 Options. (line 691) * mpc64: x86 Options. (line 691) * mpc80: x86 Options. (line 691) *************** look up both forms. *** 62940,62949 **** * mpconfig: x86 Options. (line 797) * mpcrel: M680x0 Options. (line 272) * mpcrel <1>: RS/6000 and PowerPC Options. ! (line 932) ! * mpdebug: CRIS Options. (line 36) * mpe: RS/6000 and PowerPC Options. ! (line 310) * mpe-aligned-commons: x86 Windows Options. (line 59) * mpic-data-is-text-relative: ARM Options. (line 792) --- 62982,62991 ---- * mpconfig: x86 Options. (line 797) * mpcrel: M680x0 Options. (line 272) * mpcrel <1>: RS/6000 and PowerPC Options. ! (line 931) ! * mpdebug: CRIS Options. (line 35) * mpe: RS/6000 and PowerPC Options. ! (line 309) * mpe-aligned-commons: x86 Windows Options. (line 59) * mpic-data-is-text-relative: ARM Options. (line 792) *************** look up both forms. *** 62953,62962 **** * mpku: x86 Options. (line 825) * mplt: MIPS Options. (line 219) * mpltseq: RS/6000 and PowerPC Options. ! (line 765) * mpointer-size=SIZE: VMS Options. (line 20) * mpointers-to-nested-functions: RS/6000 and PowerPC Options. ! (line 878) * mpoke-function-name: ARM Options. (line 800) * mpopc: SPARC Options. (line 281) * mpopcnt: x86 Options. (line 809) --- 62995,63004 ---- * mpku: x86 Options. (line 825) * mplt: MIPS Options. (line 219) * mpltseq: RS/6000 and PowerPC Options. ! (line 764) * mpointer-size=SIZE: VMS Options. (line 20) * mpointers-to-nested-functions: RS/6000 and PowerPC Options. ! (line 877) * mpoke-function-name: ARM Options. (line 800) * mpopc: SPARC Options. (line 281) * mpopcnt: x86 Options. (line 809) *************** look up both forms. *** 62988,63030 **** * mpreferred-stack-boundary <1>: x86 Options. (line 721) * mprefetchwt1: x86 Options. (line 802) * mprefixed: RS/6000 and PowerPC Options. ! (line 939) * mpretend-cmove: SH Options. (line 383) * mprfchw: x86 Options. (line 800) * mprint-tune-info: ARM Options. (line 933) * mprioritize-restricted-insns: RS/6000 and PowerPC Options. ! (line 457) * mprolog-function: V850 Options. (line 23) ! * mprologue-epilogue: CRIS Options. (line 71) * mprototype: RS/6000 and PowerPC Options. ! (line 593) * mptwrite: x86 Options. (line 793) * mpure-code: ARM Options. (line 943) * mpush-args: x86 Options. (line 1076) * mpushpop: C-SKY Options. (line 114) * MQ: Preprocessor Options. (line 159) ! * mq-class: ARC Options. (line 521) * mquad-memory: RS/6000 and PowerPC Options. (line 202) * mquad-memory-atomic: RS/6000 and PowerPC Options. (line 208) * 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 801) * mrdrnd: x86 Options. (line 794) * mrdseed: x86 Options. (line 803) * mreadonly-in-sdata: RS/6000 and PowerPC Options. ! (line 684) * mrecip: RS/6000 and PowerPC Options. ! (line 785) * mrecip <1>: x86 Options. (line 966) * mrecip-precision: RS/6000 and PowerPC Options. ! (line 842) * mrecip=opt: RS/6000 and PowerPC Options. ! (line 798) * mrecip=opt <1>: x86 Options. (line 988) * mrecord-mcount: x86 Options. (line 1300) * mrecord-return: x86 Options. (line 1320) --- 63030,63072 ---- * mpreferred-stack-boundary <1>: x86 Options. (line 721) * mprefetchwt1: x86 Options. (line 802) * mprefixed: RS/6000 and PowerPC Options. ! (line 937) * mpretend-cmove: SH Options. (line 383) * mprfchw: x86 Options. (line 800) * mprint-tune-info: ARM Options. (line 933) * mprioritize-restricted-insns: RS/6000 and PowerPC Options. ! (line 456) * mprolog-function: V850 Options. (line 23) ! * mprologue-epilogue: CRIS Options. (line 70) * mprototype: RS/6000 and PowerPC Options. ! (line 592) * mptwrite: x86 Options. (line 793) * mpure-code: ARM Options. (line 943) * mpush-args: x86 Options. (line 1076) * mpushpop: C-SKY Options. (line 114) * MQ: Preprocessor Options. (line 159) ! * mq-class: ARC Options. (line 519) * mquad-memory: RS/6000 and PowerPC Options. (line 202) * mquad-memory-atomic: RS/6000 and PowerPC Options. (line 208) * 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 801) * mrdrnd: x86 Options. (line 794) * mrdseed: x86 Options. (line 803) * mreadonly-in-sdata: RS/6000 and PowerPC Options. ! (line 683) * mrecip: RS/6000 and PowerPC Options. ! (line 784) * mrecip <1>: x86 Options. (line 966) * mrecip-precision: RS/6000 and PowerPC Options. ! (line 841) * mrecip=opt: RS/6000 and PowerPC Options. ! (line 797) * mrecip=opt <1>: x86 Options. (line 988) * mrecord-mcount: x86 Options. (line 1300) * mrecord-return: x86 Options. (line 1320) *************** look up both forms. *** 63032,63040 **** * 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 661) ! * mrelax: AVR Options. (line 231) * mrelax <1>: H8/300 Options. (line 9) * mrelax <2>: MN10300 Options. (line 46) * mrelax <3>: MSP430 Options. (line 88) --- 63074,63082 ---- * mreduced-regs: NDS32 Options. (line 15) * mregister-names: IA-64 Options. (line 37) * mregnames: RS/6000 and PowerPC Options. ! (line 721) * mregparm: x86 Options. (line 661) ! * mrelax: AVR Options. (line 229) * mrelax <1>: H8/300 Options. (line 9) * mrelax <2>: MN10300 Options. (line 46) * mrelax <3>: MSP430 Options. (line 88) *************** look up both forms. *** 63045,63053 **** * mrelax-immediate: MCore Options. (line 19) * mrelax-pic-calls: MIPS Options. (line 859) * mrelocatable: RS/6000 and PowerPC Options. ! (line 408) * mrelocatable-lib: RS/6000 and PowerPC Options. ! (line 419) * mrenesas: SH Options. (line 152) * mrepeat: MeP Options. (line 96) * mrestrict-it: ARM Options. (line 927) --- 63087,63095 ---- * mrelax-immediate: MCore Options. (line 19) * mrelax-pic-calls: MIPS Options. (line 859) * mrelocatable: RS/6000 and PowerPC Options. ! (line 407) * mrelocatable-lib: RS/6000 and PowerPC Options. ! (line 418) * mrenesas: SH Options. (line 152) * mrepeat: MeP Options. (line 96) * mrestrict-it: ARM Options. (line 927) *************** look up both forms. *** 63056,63062 **** * mrgf-banked-regs: ARC Options. (line 304) * mrh850-abi: V850 Options. (line 127) * mrl78: RL78 Options. (line 62) ! * mrmw: AVR Options. (line 245) * mror: OpenRISC Options. (line 49) * mrori: OpenRISC Options. (line 54) * mround-nearest: Adapteva Epiphany Options. --- 63098,63104 ---- * mrgf-banked-regs: ARC Options. (line 304) * mrh850-abi: V850 Options. (line 127) * mrl78: RL78 Options. (line 62) ! * mrmw: AVR Options. (line 243) * mror: OpenRISC Options. (line 49) * mrori: OpenRISC Options. (line 54) * mround-nearest: Adapteva Epiphany Options. *************** look up both forms. *** 63077,63083 **** * msave-mduc-in-interrupts: RL78 Options. (line 79) * msave-restore: RISC-V Options. (line 87) * msave-toc-indirect: RS/6000 and PowerPC Options. ! (line 890) * mscc: FRV Options. (line 173) * msched-ar-data-spec: IA-64 Options. (line 135) * msched-ar-in-data-spec: IA-64 Options. (line 157) --- 63119,63125 ---- * msave-mduc-in-interrupts: RL78 Options. (line 79) * msave-restore: RISC-V Options. (line 87) * msave-toc-indirect: RS/6000 and PowerPC Options. ! (line 889) * mscc: FRV Options. (line 173) * msched-ar-data-spec: IA-64 Options. (line 135) * msched-ar-in-data-spec: IA-64 Options. (line 157) *************** look up both forms. *** 63085,63091 **** * msched-br-in-data-spec: IA-64 Options. (line 150) * msched-control-spec: IA-64 Options. (line 142) * msched-costly-dep: RS/6000 and PowerPC Options. ! (line 464) * msched-count-spec-in-critical-path: IA-64 Options. (line 185) * msched-fp-mem-deps-zero-cost: IA-64 Options. (line 202) * msched-in-control-spec: IA-64 Options. (line 164) --- 63127,63133 ---- * msched-br-in-data-spec: IA-64 Options. (line 150) * msched-control-spec: IA-64 Options. (line 142) * msched-costly-dep: RS/6000 and PowerPC Options. ! (line 463) * msched-count-spec-in-critical-path: IA-64 Options. (line 185) * msched-fp-mem-deps-zero-cost: IA-64 Options. (line 202) * msched-in-control-spec: IA-64 Options. (line 164) *************** look up both forms. *** 63104,63128 **** * 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) * msdata=all: C6X Options. (line 30) * msdata=data: RS/6000 and PowerPC Options. ! (line 671) * msdata=default: C6X Options. (line 22) * msdata=default <1>: RS/6000 and PowerPC Options. ! (line 666) * msdata=eabi: RS/6000 and PowerPC Options. ! (line 647) * msdata=none: C6X Options. (line 35) * msdata=none <1>: M32R/D Options. (line 40) * msdata=none <2>: RS/6000 and PowerPC Options. ! (line 679) * msdata=sdata: M32R/D Options. (line 49) * msdata=sysv: RS/6000 and PowerPC Options. ! (line 657) * msdata=use: M32R/D Options. (line 53) * msdram: Blackfin Options. (line 169) * msdram <1>: MeP Options. (line 110) --- 63146,63170 ---- * 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 665) * msdata=all: C6X Options. (line 30) * msdata=data: RS/6000 and PowerPC Options. ! (line 670) * msdata=default: C6X Options. (line 22) * msdata=default <1>: RS/6000 and PowerPC Options. ! (line 665) * msdata=eabi: RS/6000 and PowerPC Options. ! (line 646) * msdata=none: C6X Options. (line 35) * msdata=none <1>: M32R/D Options. (line 40) * msdata=none <2>: RS/6000 and PowerPC Options. ! (line 678) * msdata=sdata: M32R/D Options. (line 49) * msdata=sysv: RS/6000 and PowerPC Options. ! (line 656) * msdata=use: M32R/D Options. (line 53) * msdram: Blackfin Options. (line 169) * msdram <1>: MeP Options. (line 110) *************** look up both forms. *** 63141,63151 **** * mshared-library-id: Blackfin Options. (line 100) * mshftimm: OpenRISC Options. (line 68) * mshort: M680x0 Options. (line 216) ! * mshort-calls: AVR Options. (line 249) * mshstk: x86 Options. (line 956) ! * mside-effects: CRIS Options. (line 46) * msign-extend-enabled: LM32 Options. (line 18) ! * msign-return-address: AArch64 Options. (line 268) * msilicon-errata: MSP430 Options. (line 144) * msilicon-errata-warn: MSP430 Options. (line 148) * msim: Blackfin Options. (line 36) --- 63183,63193 ---- * mshared-library-id: Blackfin Options. (line 100) * mshftimm: OpenRISC Options. (line 68) * mshort: M680x0 Options. (line 216) ! * mshort-calls: AVR Options. (line 247) * mshstk: x86 Options. (line 956) ! * mside-effects: CRIS Options. (line 45) * msign-extend-enabled: LM32 Options. (line 18) ! * msign-return-address: AArch64 Options. (line 287) * msilicon-errata: MSP430 Options. (line 144) * msilicon-errata-warn: MSP430 Options. (line 148) * msim: Blackfin Options. (line 36) *************** look up both forms. *** 63157,63163 **** * msim <6>: MSP430 Options. (line 77) * msim <7>: RL78 Options. (line 7) * msim <8>: RS/6000 and PowerPC Options. ! (line 603) * msim <9>: RX Options. (line 71) * msim <10>: Visium Options. (line 13) * msim <11>: Xstormy16 Options. (line 9) --- 63199,63205 ---- * msim <6>: MSP430 Options. (line 77) * msim <7>: RL78 Options. (line 7) * msim <8>: RS/6000 and PowerPC Options. ! (line 602) * msim <9>: RX Options. (line 71) * msim <10>: Visium Options. (line 13) * msim <11>: Xstormy16 Options. (line 9) *************** look up both forms. *** 63167,63175 **** * msingle-float: MIPS Options. (line 284) * msingle-pic-base: ARM Options. (line 779) * 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 1333) * mslow-bytes: MCore Options. (line 35) * mslow-flash-data: ARM Options. (line 915) --- 63209,63217 ---- * msingle-float: MIPS Options. (line 284) * msingle-pic-base: ARM Options. (line 779) * msingle-pic-base <1>: RS/6000 and PowerPC Options. ! (line 450) * msio: HPPA Options. (line 105) ! * msize-level: ARC Options. (line 531) * mskip-rax-setup: x86 Options. (line 1333) * mslow-bytes: MCore Options. (line 35) * mslow-flash-data: ARM Options. (line 915) *************** look up both forms. *** 63201,63207 **** * msoft-float <8>: OpenRISC Options. (line 29) * msoft-float <9>: PDP-11 Options. (line 13) * msoft-float <10>: RS/6000 and PowerPC Options. ! (line 333) * msoft-float <11>: S/390 and zSeries Options. (line 11) * msoft-float <12>: SPARC Options. (line 39) --- 63243,63249 ---- * msoft-float <8>: OpenRISC Options. (line 29) * msoft-float <9>: PDP-11 Options. (line 13) * msoft-float <10>: RS/6000 and PowerPC Options. ! (line 332) * msoft-float <11>: S/390 and zSeries Options. (line 11) * msoft-float <12>: SPARC Options. (line 39) *************** look up both forms. *** 63211,63217 **** * 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) --- 63253,63259 ---- * msoft-mul: OpenRISC Options. (line 24) * msoft-quad-float: SPARC Options. (line 59) * msoft-stack: Nvidia PTX Options. (line 26) ! * msp8: AVR Options. (line 254) * mspace: V850 Options. (line 30) * mspace-regs: HPPA Options. (line 45) * mspecld-anomaly: Blackfin Options. (line 48) *************** look up both forms. *** 63219,63226 **** * 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. --- 63261,63268 ---- * mspfp: ARC Options. (line 132) * mspfp-compact: ARC Options. (line 133) * mspfp-fast: ARC Options. (line 137) ! * mspfp_compact: ARC Options. (line 629) ! * mspfp_fast: ARC Options. (line 632) * msplit: PDP-11 Options. (line 40) * msplit-addresses: MIPS Options. (line 555) * msplit-lohi: Adapteva Epiphany Options. *************** look up both forms. *** 63237,63243 **** * msse4a: x86 Options. (line 773) * msseregparm: x86 Options. (line 672) * mssse3: x86 Options. (line 771) ! * mstack-align: CRIS Options. (line 55) * mstack-bias: SPARC Options. (line 372) * mstack-check-l1: Blackfin Options. (line 74) * mstack-guard: S/390 and zSeries Options. --- 63279,63285 ---- * msse4a: x86 Options. (line 773) * msseregparm: x86 Options. (line 672) * mssse3: x86 Options. (line 771) ! * 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. *** 63248,63267 **** * mstack-protector-guard: AArch64 Options. (line 64) * mstack-protector-guard <1>: AArch64 Options. (line 79) * mstack-protector-guard <2>: RS/6000 and PowerPC Options. ! (line 916) * mstack-protector-guard <3>: x86 Options. (line 1359) * mstack-protector-guard-offset: AArch64 Options. (line 64) * mstack-protector-guard-offset <1>: AArch64 Options. (line 79) * mstack-protector-guard-offset <2>: RS/6000 and PowerPC Options. ! (line 916) * mstack-protector-guard-offset <3>: x86 Options. (line 1359) * mstack-protector-guard-reg: AArch64 Options. (line 64) * mstack-protector-guard-reg <1>: AArch64 Options. (line 79) * mstack-protector-guard-reg <2>: RS/6000 and PowerPC Options. ! (line 916) * mstack-protector-guard-reg <3>: x86 Options. (line 1359) * mstack-protector-guard-symbol: RS/6000 and PowerPC Options. ! (line 916) * mstack-size: AMD GCN Options. (line 23) * mstack-size <1>: C-SKY Options. (line 134) * mstack-size <2>: S/390 and zSeries Options. --- 63290,63309 ---- * mstack-protector-guard: AArch64 Options. (line 64) * mstack-protector-guard <1>: AArch64 Options. (line 79) * mstack-protector-guard <2>: RS/6000 and PowerPC Options. ! (line 915) * mstack-protector-guard <3>: x86 Options. (line 1359) * mstack-protector-guard-offset: AArch64 Options. (line 64) * mstack-protector-guard-offset <1>: AArch64 Options. (line 79) * mstack-protector-guard-offset <2>: RS/6000 and PowerPC Options. ! (line 915) * mstack-protector-guard-offset <3>: x86 Options. (line 1359) * mstack-protector-guard-reg: AArch64 Options. (line 64) * mstack-protector-guard-reg <1>: AArch64 Options. (line 79) * mstack-protector-guard-reg <2>: RS/6000 and PowerPC Options. ! (line 915) * mstack-protector-guard-reg <3>: x86 Options. (line 1359) * mstack-protector-guard-symbol: RS/6000 and PowerPC Options. ! (line 915) * mstack-size: AMD GCN Options. (line 23) * mstack-size <1>: C-SKY Options. (line 134) * mstack-size <2>: S/390 and zSeries Options. *************** look up both forms. *** 63272,63288 **** * mstrict-align <1>: M680x0 Options. (line 280) * mstrict-align <2>: RISC-V Options. (line 93) * 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 1236) * mstructure-size-boundary: ARM Options. (line 734) * msubxc: SPARC Options. (line 288) * msv-mode: Visium Options. (line 52) ! * msve-vector-bits: AArch64 Options. (line 297) * msvr4-struct-return: RS/6000 and PowerPC Options. ! (line 548) * mswap: ARC Options. (line 152) * mswape: ARC Options. (line 363) * msym32: MIPS Options. (line 453) --- 63314,63330 ---- * mstrict-align <1>: M680x0 Options. (line 280) * mstrict-align <2>: RISC-V Options. (line 93) * mstrict-align <3>: RS/6000 and PowerPC Options. ! (line 402) ! * mstrict-X: AVR Options. (line 267) * mstring-compare-inline-limit: RS/6000 and PowerPC Options. ! (line 707) * mstringop-strategy=ALG: x86 Options. (line 1236) * mstructure-size-boundary: ARM Options. (line 734) * msubxc: SPARC Options. (line 288) * msv-mode: Visium Options. (line 52) ! * msve-vector-bits: AArch64 Options. (line 316) * msvr4-struct-return: RS/6000 and PowerPC Options. ! (line 547) * mswap: ARC Options. (line 152) * mswape: ARC Options. (line 363) * msym32: MIPS Options. (line 453) *************** look up both forms. *** 63304,63310 **** * mthumb: ARM Options. (line 822) * 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) --- 63346,63352 ---- * mthumb: ARM Options. (line 822) * 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) *************** look up both forms. *** 63314,63324 **** * mtls-dialect=traditional: AArch64 Options. (line 96) * mtls-direct-seg-refs: x86 Options. (line 1278) * mtls-markers: RS/6000 and PowerPC Options. ! (line 777) * mtls-size: AArch64 Options. (line 100) * mtls-size <1>: IA-64 Options. (line 112) * mtoc: RS/6000 and PowerPC Options. ! (line 428) * mtomcat-stats: FRV Options. (line 254) * mtoplevel-symbols: MMIX Options. (line 39) * mtp: ARM Options. (line 866) --- 63356,63366 ---- * mtls-dialect=traditional: AArch64 Options. (line 96) * mtls-direct-seg-refs: x86 Options. (line 1278) * mtls-markers: RS/6000 and PowerPC Options. ! (line 776) * mtls-size: AArch64 Options. (line 100) * mtls-size <1>: IA-64 Options. (line 112) * mtoc: RS/6000 and PowerPC Options. ! (line 427) * mtomcat-stats: FRV Options. (line 254) * mtoplevel-symbols: MMIX Options. (line 39) * mtp: ARM Options. (line 866) *************** look up both forms. *** 63330,63344 **** * mtpf-trace-skip: S/390 and zSeries Options. (line 174) * mtraceback: RS/6000 and PowerPC Options. ! (line 541) * mtrap-precision: DEC Alpha Options. (line 109) * mtrust: C-SKY Options. (line 83) * mtune: AArch64 Options. (line 199) * 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 17) * mtune <6>: DEC Alpha Options. (line 259) * mtune <7>: IA-64 Options. (line 116) * mtune <8>: M680x0 Options. (line 68) --- 63372,63386 ---- * mtpf-trace-skip: S/390 and zSeries Options. (line 174) * mtraceback: RS/6000 and PowerPC Options. ! (line 540) * mtrap-precision: DEC Alpha Options. (line 109) * mtrust: C-SKY Options. (line 83) * mtune: AArch64 Options. (line 199) * 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 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. *** 63355,63368 **** * mtune-ctrl=FEATURE-LIST: x86 Options. (line 879) * muclibc: GNU/Linux Options. (line 14) * muls: Score Options. (line 18) ! * multcost: ARC Options. (line 645) * multcost=NUMBER: SH Options. (line 281) * multilib-library-pic: FRV Options. (line 110) * multiply-enabled: LM32 Options. (line 15) * multiply_defined: Darwin Options. (line 196) * multiply_defined_unused: Darwin Options. (line 196) * multi_module: Darwin Options. (line 196) ! * munalign-prob-threshold: ARC Options. (line 582) * munaligned-access: ARM Options. (line 899) * munaligned-doubles: SPARC Options. (line 73) * municode: x86 Windows Options. --- 63397,63410 ---- * mtune-ctrl=FEATURE-LIST: x86 Options. (line 879) * muclibc: GNU/Linux Options. (line 14) * 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 899) * munaligned-doubles: SPARC Options. (line 73) * municode: x86 Windows Options. *************** look up both forms. *** 63373,63379 **** * munix-asm: PDP-11 Options. (line 43) * munordered-float: OpenRISC Options. (line 39) * mupdate: RS/6000 and PowerPC Options. ! (line 350) * muser-enabled: LM32 Options. (line 21) * muser-mode: SPARC Options. (line 85) * muser-mode <1>: Visium Options. (line 57) --- 63415,63421 ---- * munix-asm: PDP-11 Options. (line 43) * munordered-float: OpenRISC Options. (line 39) * mupdate: RS/6000 and PowerPC Options. ! (line 349) * muser-enabled: LM32 Options. (line 21) * muser-mode: SPARC Options. (line 85) * muser-mode <1>: Visium Options. (line 57) *************** look up both forms. *** 63391,63402 **** * mvaes: x86 Options. (line 829) * mvdsp: C-SKY Options. (line 88) * mveclibabi: RS/6000 and PowerPC Options. ! (line 851) * mveclibabi <1>: x86 Options. (line 1017) * mvect-double: Adapteva Epiphany Options. (line 115) * mvect8-ret-in-mem: x86 Options. (line 682) ! * mverbose-cost-dump: AArch64 Options. (line 257) * mverbose-cost-dump <1>: ARM Options. (line 939) * mvirt: MIPS Options. (line 407) * mvis: SPARC Options. (line 221) --- 63433,63444 ---- * mvaes: x86 Options. (line 829) * mvdsp: C-SKY Options. (line 88) * mveclibabi: RS/6000 and PowerPC Options. ! (line 850) * mveclibabi <1>: x86 Options. (line 1017) * mvect-double: Adapteva Epiphany Options. (line 115) * mvect8-ret-in-mem: x86 Options. (line 682) ! * mverbose-cost-dump: AArch64 Options. (line 276) * mverbose-cost-dump <1>: ARM Options. (line 939) * mvirt: MIPS Options. (line 407) * mvis: SPARC Options. (line 221) *************** look up both forms. *** 63407,63414 **** * 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 831) * mvr4130-align: MIPS Options. (line 834) * mvrsave: RS/6000 and PowerPC Options. --- 63449,63456 ---- * 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 831) * mvr4130-align: MIPS Options. (line 834) * mvrsave: RS/6000 and PowerPC Options. *************** look up both forms. *** 63418,63424 **** * mvx: S/390 and zSeries Options. (line 112) * mvxworks: RS/6000 and PowerPC Options. ! (line 624) * mvzeroupper: x86 Options. (line 906) * mwaitpkg: x86 Options. (line 830) * mwarn-devices-csv: MSP430 Options. (line 153) --- 63460,63466 ---- * mvx: S/390 and zSeries Options. (line 112) * mvxworks: RS/6000 and PowerPC Options. ! (line 623) * mvzeroupper: x86 Options. (line 906) * mwaitpkg: x86 Options. (line 830) * mwarn-devices-csv: MSP430 Options. (line 153) *************** look up both forms. *** 63440,63446 **** * mxgot <1>: MIPS Options. (line 229) * mxl-barrel-shift: MicroBlaze Options. (line 32) * mxl-compat: RS/6000 and PowerPC Options. ! (line 291) * mxl-float-convert: MicroBlaze Options. (line 50) * mxl-float-sqrt: MicroBlaze Options. (line 53) * mxl-gp-opt: MicroBlaze Options. (line 44) --- 63482,63488 ---- * mxgot <1>: MIPS Options. (line 229) * mxl-barrel-shift: MicroBlaze Options. (line 32) * mxl-compat: RS/6000 and PowerPC Options. ! (line 290) * mxl-float-convert: MicroBlaze Options. (line 50) * mxl-float-sqrt: MicroBlaze Options. (line 53) * mxl-gp-opt: MicroBlaze Options. (line 44) *************** look up both forms. *** 63458,63464 **** * mxsaves: x86 Options. (line 819) * mxy: ARC Options. (line 373) * myellowknife: RS/6000 and PowerPC Options. ! (line 619) * mzarch: S/390 and zSeries Options. (line 94) * mzda: V850 Options. (line 45) --- 63500,63506 ---- * mxsaves: x86 Options. (line 819) * mxy: ARC Options. (line 373) * myellowknife: RS/6000 and PowerPC Options. ! (line 618) * mzarch: S/390 and zSeries Options. (line 94) * mzda: V850 Options. (line 45) *************** look up both forms. *** 63475,63482 **** * noall_load: Darwin Options. (line 196) * nocpp: MIPS Options. (line 636) * nodefaultlibs: Link Options. (line 119) ! * nodevicelib: AVR Options. (line 290) ! * nodevicespecs: AVR Options. (line 293) * nofixprebinding: Darwin Options. (line 196) * nofpu: RX Options. (line 17) * nolibc: Link Options. (line 131) --- 63517,63524 ---- * noall_load: Darwin Options. (line 196) * nocpp: MIPS Options. (line 636) * nodefaultlibs: Link Options. (line 119) ! * nodevicelib: AVR Options. (line 288) ! * nodevicespecs: AVR Options. (line 291) * nofixprebinding: Darwin Options. (line 196) * nofpu: RX Options. (line 17) * nolibc: Link Options. (line 131) *************** look up both forms. *** 63506,63512 **** * P: Preprocessor Options. (line 365) * p <1>: Common Function Attributes. ! (line 691) * pagezero_size: Darwin Options. (line 196) * param: Optimize Options. (line 2624) * pass-exit-codes: Overall Options. (line 339) --- 63548,63554 ---- * P: Preprocessor Options. (line 365) * p <1>: Common Function Attributes. ! (line 696) * pagezero_size: Darwin Options. (line 196) * param: Optimize Options. (line 2624) * pass-exit-codes: Overall Options. (line 339) *************** look up both forms. *** 63524,63530 **** * pg: Instrumentation Options. (line 20) * pg <1>: Common Function Attributes. ! (line 691) * pie: Link Options. (line 175) * pipe: Overall Options. (line 347) * plt: RISC-V Options. (line 13) --- 63566,63572 ---- * pg: Instrumentation Options. (line 20) * pg <1>: Common Function Attributes. ! (line 696) * pie: Link Options. (line 175) * pipe: Overall Options. (line 347) * plt: RISC-V Options. (line 13) *************** look up both forms. *** 63579,63586 **** * shared-libgcc: Link Options. (line 227) * short-calls: Adapteva Epiphany Options. (line 61) ! * sim: CRIS Options. (line 95) ! * sim2: CRIS Options. (line 101) * single_module: Darwin Options. (line 196) * specs: Overall Options. (line 353) * static: Link Options. (line 214) --- 63621,63628 ---- * shared-libgcc: Link Options. (line 227) * short-calls: Adapteva Epiphany Options. (line 61) ! * sim: CRIS Options. (line 94) ! * sim2: CRIS Options. (line 100) * single_module: Darwin Options. (line 196) * specs: Overall Options. (line 353) * static: Link Options. (line 214) *************** look up both forms. *** 63637,63643 **** * Wabi-tag <1>: C++ Dialect Options. (line 494) * Wabsolute-value: Warning Options. (line 2147) ! * Waddr-space-convert: AVR Options. (line 308) * Waddress: Warning Options. (line 2488) * Waddress-of-packed-member: Warning Options. (line 2501) * Waggregate-return: Warning Options. (line 2529) --- 63679,63685 ---- * Wabi-tag <1>: C++ Dialect Options. (line 494) * Wabsolute-value: Warning Options. (line 2147) ! * Waddr-space-convert: AVR Options. (line 306) * Waddress: Warning Options. (line 2488) * Waddress-of-packed-member: Warning Options. (line 2501) * Waggregate-return: Warning Options. (line 2529) *************** look up both forms. *** 63845,63851 **** * Wmissing-parameter-type: Warning Options. (line 2590) * Wmissing-profile: Warning Options. (line 885) * Wmissing-prototypes: Warning Options. (line 2598) ! * Wmisspelled-isr: AVR Options. (line 313) * Wmultichar: Warning Options. (line 2648) * Wmultiple-inheritance: C++ Dialect Options. (line 878) --- 63887,63893 ---- * Wmissing-parameter-type: Warning Options. (line 2590) * Wmissing-profile: Warning Options. (line 885) * Wmissing-prototypes: Warning Options. (line 2598) ! * Wmisspelled-isr: AVR Options. (line 311) * Wmultichar: Warning Options. (line 2648) * Wmultiple-inheritance: C++ Dialect Options. (line 878) *************** look up both forms. *** 63857,63863 **** * Wnested-externs: Warning Options. (line 2816) * Wno-abi: Warning Options. (line 256) * Wno-absolute-value: Warning Options. (line 2147) ! * Wno-addr-space-convert: AVR Options. (line 308) * Wno-address: Warning Options. (line 2488) * Wno-address-of-packed-member: Warning Options. (line 2501) * Wno-aggregate-return: Warning Options. (line 2529) --- 63899,63905 ---- * Wnested-externs: Warning Options. (line 2816) * Wno-abi: Warning Options. (line 256) * Wno-absolute-value: Warning Options. (line 2147) ! * Wno-addr-space-convert: AVR Options. (line 306) * Wno-address: Warning Options. (line 2488) * Wno-address-of-packed-member: Warning Options. (line 2501) * Wno-aggregate-return: Warning Options. (line 2529) *************** look up both forms. *** 64048,64054 **** * Wno-missing-parameter-type: Warning Options. (line 2590) * Wno-missing-profile: Warning Options. (line 885) * Wno-missing-prototypes: Warning Options. (line 2598) ! * Wno-misspelled-isr: AVR Options. (line 313) * Wno-multichar: Warning Options. (line 2648) * Wno-multiple-inheritance: C++ Dialect Options. (line 878) --- 64090,64096 ---- * Wno-missing-parameter-type: Warning Options. (line 2590) * Wno-missing-profile: Warning Options. (line 885) * Wno-missing-prototypes: Warning Options. (line 2598) ! * Wno-misspelled-isr: AVR Options. (line 311) * Wno-multichar: Warning Options. (line 2648) * Wno-multiple-inheritance: C++ Dialect Options. (line 878) *************** Keyword Index *** 64428,64439 **** * + in constraint: Modifiers. (line 12) * -lgcc, use with -nodefaultlibs: Link Options. (line 154) * -lgcc, use with -nostdlib: Link Options. (line 154) ! * -march feature modifiers: AArch64 Options. (line 319) ! * -mcpu feature modifiers: AArch64 Options. (line 319) * -nodefaultlibs and unresolved references: Link Options. (line 154) * -nostdlib and unresolved references: Link Options. (line 154) * .sdata/.sdata2 references (PowerPC): RS/6000 and PowerPC Options. ! (line 714) * //: C++ Comments. (line 6) * 0 in constraint: Simple Constraints. (line 125) * < in constraint: Simple Constraints. (line 47) --- 64470,64481 ---- * + in constraint: Modifiers. (line 12) * -lgcc, use with -nodefaultlibs: Link Options. (line 154) * -lgcc, use with -nostdlib: Link Options. (line 154) ! * -march feature modifiers: AArch64 Options. (line 338) ! * -mcpu feature modifiers: AArch64 Options. (line 338) * -nodefaultlibs and unresolved references: Link Options. (line 154) * -nostdlib and unresolved references: Link Options. (line 154) * .sdata/.sdata2 references (PowerPC): RS/6000 and PowerPC Options. ! (line 713) * //: C++ Comments. (line 6) * 0 in constraint: Simple Constraints. (line 125) * < in constraint: Simple Constraints. (line 47) *************** Keyword Index *** 64860,64866 **** * __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. --- 64902,64908 ---- * __far M32C Named Address Spaces: Named Address Spaces. (line 153) * __far RL78 Named Address Spaces: Named Address Spaces. ! (line 161) * __flash AVR Named Address Spaces: Named Address Spaces. (line 44) * __flash1 AVR Named Address Spaces: Named Address Spaces. *************** Keyword Index *** 64886,64894 **** * __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) --- 64928,64936 ---- * __PRETTY_FUNCTION__ identifier: Function Names. (line 6) * __real__ keyword: Complex. (line 31) * __seg_fs x86 named address space: Named Address Spaces. ! (line 174) * __seg_gs x86 named address space: Named Address Spaces. ! (line 174) * __STDC_HOSTED__: Standards. (line 13) * __sync_add_and_fetch: __sync Builtins. (line 72) * __sync_and_and_fetch: __sync Builtins. (line 72) *************** Keyword Index *** 65289,65301 **** * 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 156) * dependencies for make as output <1>: Environment Variables. ! (line 172) * dependencies, make: Preprocessor Options. (line 77) * DEPENDENCIES_OUTPUT: Environment Variables. ! (line 155) * dependent name lookup: Name lookup. (line 6) * deprecated enumerator attribute: Enumerator Attributes. (line 28) --- 65331,65343 ---- * 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 155) * dependencies for make as output <1>: Environment Variables. ! (line 171) * dependencies, make: Preprocessor Options. (line 77) * DEPENDENCIES_OUTPUT: Environment Variables. ! (line 154) * dependent name lookup: Name lookup. (line 6) * deprecated enumerator attribute: Enumerator Attributes. (line 28) *************** Keyword Index *** 65357,65363 **** (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. --- 65399,65405 ---- (line 9) * eightbit_data variable attribute, H8/300: H8/300 Variable Attributes. (line 9) ! * EIND: AVR Options. (line 317) * either function attribute, MSP430: MSP430 Function Attributes. (line 57) * either variable attribute, MSP430: MSP430 Variable Attributes. *************** Keyword Index *** 65414,65420 **** * externally_visible function attribute: Common Function Attributes. (line 360) * extra NOP instructions at the function entry point: Common Function Attributes. ! (line 905) * F in constraint: Simple Constraints. (line 92) * fabs: Other Builtins. (line 6) * fabsf: Other Builtins. (line 6) --- 65456,65462 ---- * externally_visible function attribute: Common Function Attributes. (line 360) * extra NOP instructions at the function entry point: Common Function Attributes. ! (line 910) * F in constraint: Simple Constraints. (line 92) * fabs: Other Builtins. (line 6) * fabsf: Other Builtins. (line 6) *************** Keyword Index *** 65514,65520 **** (line 6) * function, size of pointer to: Pointer Arith. (line 6) * functions in arbitrary sections: Common Function Attributes. ! (line 989) * functions that are dynamically resolved: Common Function Attributes. (line 547) * functions that are passed arguments in registers on x86-32: x86 Function Attributes. --- 65556,65562 ---- (line 6) * function, size of pointer to: Pointer Arith. (line 6) * functions in arbitrary sections: Common Function Attributes. ! (line 994) * functions that are dynamically resolved: Common Function Attributes. (line 547) * functions that are passed arguments in registers on x86-32: x86 Function Attributes. *************** Keyword Index *** 65524,65532 **** * functions that have no side effects: Common Function Attributes. (line 218) * functions that have no side effects <1>: Common Function Attributes. ! (line 923) * functions that never return: Common Function Attributes. ! (line 837) * functions that pop the argument stack on x86-32: x86 Function Attributes. (line 9) * functions that pop the argument stack on x86-32 <1>: x86 Function Attributes. --- 65566,65574 ---- * functions that have no side effects: Common Function Attributes. (line 218) * functions that have no side effects <1>: Common Function Attributes. ! (line 928) * functions that never return: Common Function Attributes. ! (line 842) * functions that pop the argument stack on x86-32: x86 Function Attributes. (line 9) * functions that pop the argument stack on x86-32 <1>: x86 Function Attributes. *************** Keyword Index *** 65536,65544 **** * functions that pop the argument stack on x86-32 <3>: x86 Function Attributes. (line 108) * functions that return more than once: Common Function Attributes. ! (line 980) * functions with non-null pointer arguments: Common Function Attributes. ! (line 783) * functions with printf, scanf, strftime or strfmon style arguments: Common Function Attributes. (line 381) * function_return function attribute, x86: x86 Function Attributes. --- 65578,65586 ---- * functions that pop the argument stack on x86-32 <3>: x86 Function Attributes. (line 108) * functions that return more than once: Common Function Attributes. ! (line 985) * functions with non-null pointer arguments: Common Function Attributes. ! (line 788) * functions with printf, scanf, strftime or strfmon style arguments: Common Function Attributes. (line 381) * function_return function attribute, x86: x86 Function Attributes. *************** Keyword Index *** 65645,65651 **** * 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. --- 65687,65693 ---- * increment operators: Bug Criteria. (line 17) * index: Other Builtins. (line 6) * indirect calls, ARC: ARC Function Attributes. ! (line 26) * indirect calls, ARM: ARM Function Attributes. (line 38) * indirect calls, Blackfin: Blackfin Function Attributes. *************** Keyword Index *** 65792,65800 **** * 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) --- 65834,65842 ---- * j1f: Other Builtins. (line 6) * j1l: Other Builtins. (line 6) * jli_always function attribute, ARC: ARC Function Attributes. ! (line 43) * jli_fixed function attribute, ARC: ARC Function Attributes. ! (line 49) * jn: Other Builtins. (line 6) * jnf: Other Builtins. (line 6) * jnl: Other Builtins. (line 6) *************** Keyword Index *** 65911,65917 **** * longjmp incompatibilities: Incompatibilities. (line 39) * longjmp warnings: Warning Options. (line 1284) * 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. --- 65953,65959 ---- * longjmp incompatibilities: Incompatibilities. (line 39) * longjmp warnings: Warning Options. (line 1284) * long_call function attribute, ARC: ARC Function Attributes. ! (line 26) * long_call function attribute, ARM: ARM Function Attributes. (line 38) * long_call function attribute, Epiphany: Epiphany Function Attributes. *************** Keyword Index *** 65953,65959 **** (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) --- 65995,66001 ---- (line 234) * MCore options: MCore Options. (line 6) * medium_call function attribute, ARC: ARC Function Attributes. ! (line 26) * member fns, automatically inline: Inline. (line 68) * memchr: Other Builtins. (line 6) * memcmp: Other Builtins. (line 6) *************** Keyword Index *** 66015,66021 **** * 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. --- 66057,66063 ---- * multiprecision arithmetic: Long Long. (line 6) * n in constraint: Simple Constraints. (line 73) * naked function attribute, ARC: ARC Function Attributes. ! (line 58) * naked function attribute, ARM: ARM Function Attributes. (line 48) * naked function attribute, AVR: AVR Function Attributes. *************** Keyword Index *** 66078,66084 **** * nocf_check function attribute: x86 Function Attributes. (line 571) * noclone function attribute: Common Function Attributes. ! (line 752) * nocommon variable attribute: Common Variable Attributes. (line 176) * nocompression function attribute, MIPS: MIPS Function Attributes. --- 66120,66126 ---- * nocf_check function attribute: x86 Function Attributes. (line 571) * noclone function attribute: Common Function Attributes. ! (line 757) * nocommon variable attribute: Common Variable Attributes. (line 176) * nocompression function attribute, MIPS: MIPS Function Attributes. *************** Keyword Index *** 66088,66096 **** * noinit variable attribute, MSP430: MSP430 Variable Attributes. (line 7) * noinline function attribute: Common Function Attributes. ! (line 758) * noipa function attribute: Common Function Attributes. ! (line 769) * nomicromips function attribute: MIPS Function Attributes. (line 91) * nomips16 function attribute, MIPS: MIPS Function Attributes. --- 66130,66138 ---- * noinit variable attribute, MSP430: MSP430 Variable Attributes. (line 7) * noinline function attribute: Common Function Attributes. ! (line 763) * noipa function attribute: Common Function Attributes. ! (line 774) * nomicromips function attribute: MIPS Function Attributes. (line 91) * nomips16 function attribute, MIPS: MIPS Function Attributes. *************** Keyword Index *** 66099,66117 **** * non-static inline function: Inline. (line 82) * nonlocal gotos: Nonlocal Gotos. (line 6) * nonnull function attribute: Common Function Attributes. ! (line 783) * nonstring variable attribute: Common Variable Attributes. (line 237) * noplt function attribute: Common Function Attributes. ! (line 813) * noreturn function attribute: Common Function Attributes. ! (line 837) * nosave_low_regs function attribute, SH: SH Function Attributes. (line 34) * note GCC_COLORS capability: Diagnostic Message Formatting Options. (line 83) * nothrow function attribute: Common Function Attributes. ! (line 871) * notshared type attribute, ARM: ARM Type Attributes. (line 6) * not_nested function attribute, NDS32: NDS32 Function Attributes. --- 66141,66159 ---- * non-static inline function: Inline. (line 82) * nonlocal gotos: Nonlocal Gotos. (line 6) * nonnull function attribute: Common Function Attributes. ! (line 788) * nonstring variable attribute: Common Variable Attributes. (line 237) * noplt function attribute: Common Function Attributes. ! (line 818) * noreturn function attribute: Common Function Attributes. ! (line 842) * nosave_low_regs function attribute, SH: SH Function Attributes. (line 34) * note GCC_COLORS capability: Diagnostic Message Formatting Options. (line 83) * nothrow function attribute: Common Function Attributes. ! (line 876) * notshared type attribute, ARM: ARM Type Attributes. (line 6) * not_nested function attribute, NDS32: NDS32 Function Attributes. *************** Keyword Index *** 66121,66145 **** * no_gccisr function attribute, AVR: AVR Function Attributes. (line 33) * no_icf function attribute: Common Function Attributes. ! (line 687) * no_instrument_function function attribute: Common Function Attributes. ! (line 691) * no_profile_instrument_function function attribute: Common Function Attributes. - (line 697) - * no_reorder function attribute: Common Function Attributes. (line 702) * no_sanitize function attribute: Common Function Attributes. ! (line 710) * no_sanitize_address function attribute: Common Function Attributes. ! (line 722) * no_sanitize_thread function attribute: Common Function Attributes. - (line 730) - * no_sanitize_undefined function attribute: Common Function Attributes. (line 735) * no_split_stack function attribute: Common Function Attributes. ! (line 741) * no_stack_limit function attribute: Common Function Attributes. ! (line 747) * Nvidia PTX options: Nvidia PTX Options. (line 6) * nvptx options: Nvidia PTX Options. (line 6) * o in constraint: Simple Constraints. (line 23) --- 66163,66187 ---- * no_gccisr function attribute, AVR: AVR Function Attributes. (line 33) * no_icf function attribute: Common Function Attributes. ! (line 692) * no_instrument_function function attribute: Common Function Attributes. ! (line 696) * no_profile_instrument_function function attribute: Common Function Attributes. (line 702) + * no_reorder function attribute: Common Function Attributes. + (line 707) * no_sanitize function attribute: Common Function Attributes. ! (line 715) * no_sanitize_address function attribute: Common Function Attributes. ! (line 727) * no_sanitize_thread function attribute: Common Function Attributes. (line 735) + * no_sanitize_undefined function attribute: Common Function Attributes. + (line 740) * no_split_stack function attribute: Common Function Attributes. ! (line 746) * no_stack_limit function attribute: Common Function Attributes. ! (line 752) * Nvidia PTX options: Nvidia PTX Options. (line 6) * nvptx options: Nvidia PTX Options. (line 6) * o in constraint: Simple Constraints. (line 23) *************** Keyword Index *** 66159,66171 **** * omitted middle-operands: Conditionals. (line 6) * open coding: Inline. (line 6) * OpenACC accelerator programming: C Dialect Options. (line 325) ! * OpenACC accelerator programming <1>: C Dialect Options. (line 334) ! * OpenMP parallel: C Dialect Options. (line 340) ! * OpenMP SIMD: C Dialect Options. (line 349) * OpenRISC Options: OpenRISC Options. (line 6) * operand constraints, asm: Constraints. (line 6) * optimize function attribute: Common Function Attributes. ! (line 879) * optimize options: Optimize Options. (line 6) * options to control diagnostics formatting: Diagnostic Message Formatting Options. (line 6) --- 66201,66213 ---- * omitted middle-operands: Conditionals. (line 6) * open coding: Inline. (line 6) * OpenACC accelerator programming: C Dialect Options. (line 325) ! * OpenACC accelerator programming <1>: C Dialect Options. (line 333) ! * OpenMP parallel: C Dialect Options. (line 339) ! * OpenMP SIMD: C Dialect Options. (line 347) * OpenRISC Options: OpenRISC Options. (line 6) * operand constraints, asm: Constraints. (line 6) * optimize function attribute: Common Function Attributes. ! (line 884) * optimize options: Optimize Options. (line 6) * options to control diagnostics formatting: Diagnostic Message Formatting Options. (line 6) *************** Keyword Index *** 66212,66218 **** * partial_save function attribute, NDS32: NDS32 Function Attributes. (line 31) * patchable_function_entry function attribute: Common Function Attributes. ! (line 905) * path GCC_COLORS capability: Diagnostic Message Formatting Options. (line 86) * pcs function attribute, ARM: ARM Function Attributes. --- 66254,66260 ---- * partial_save function attribute, NDS32: NDS32 Function Attributes. (line 31) * patchable_function_entry function attribute: Common Function Attributes. ! (line 910) * path GCC_COLORS capability: Diagnostic Message Formatting Options. (line 86) * pcs function attribute, ARM: ARM Function Attributes. *************** Keyword Index *** 66310,66316 **** (line 6) * PRU Options: PRU Options. (line 6) * pure function attribute: Common Function Attributes. ! (line 923) * push address instruction: Simple Constraints. (line 152) * putchar: Other Builtins. (line 6) * puts: Other Builtins. (line 6) --- 66352,66358 ---- (line 6) * PRU Options: PRU Options. (line 6) * pure function attribute: Common Function Attributes. ! (line 928) * push address instruction: Simple Constraints. (line 152) * putchar: Other Builtins. (line 6) * puts: Other Builtins. (line 6) *************** Keyword Index *** 66323,66332 **** * 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 92) * range2 GCC_COLORS capability: Diagnostic Message Formatting Options. --- 66365,66374 ---- * 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 92) * range2 GCC_COLORS capability: Diagnostic Message Formatting Options. *************** Keyword Index *** 66374,66382 **** * restricted this pointer: Restricted Pointers. (line 6) * returns_nonnull function attribute: Common Function Attributes. ! (line 970) * returns_twice function attribute: Common Function Attributes. ! (line 980) * rindex: Other Builtins. (line 6) * rint: Other Builtins. (line 6) * rintf: Other Builtins. (line 6) --- 66416,66424 ---- * restricted this pointer: Restricted Pointers. (line 6) * returns_nonnull function attribute: Common Function Attributes. ! (line 975) * returns_twice function attribute: Common Function Attributes. ! (line 985) * rindex: Other Builtins. (line 6) * rint: Other Builtins. (line 6) * rintf: Other Builtins. (line 6) *************** Keyword Index *** 66430,66444 **** (line 9) * search path: Directory Options. (line 6) * section function attribute: Common Function Attributes. ! (line 989) * 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. ! (line 1006) * setjmp: Global Register Variables. (line 92) * setjmp incompatibilities: Incompatibilities. (line 39) --- 66472,66486 ---- (line 9) * search path: Directory Options. (line 6) * section function attribute: Common Function Attributes. ! (line 994) * 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. ! (line 1011) * setjmp: Global Register Variables. (line 92) * setjmp incompatibilities: Incompatibilities. (line 39) *************** Keyword Index *** 66452,66458 **** * 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. --- 66494,66500 ---- * shortcall function attribute, PowerPC: PowerPC Function Attributes. (line 10) * short_call function attribute, ARC: ARC Function Attributes. ! (line 26) * short_call function attribute, ARM: ARM Function Attributes. (line 38) * short_call function attribute, Epiphany: Epiphany Function Attributes. *************** Keyword Index *** 66477,66485 **** * significand: Other Builtins. (line 6) * significandf: Other Builtins. (line 6) * significandl: Other Builtins. (line 6) ! * SIMD: C Dialect Options. (line 349) * simd function attribute: Common Function Attributes. ! (line 1033) * simple constraints: Simple Constraints. (line 6) * sin: Other Builtins. (line 6) * sincos: Other Builtins. (line 6) --- 66519,66527 ---- * significand: Other Builtins. (line 6) * significandf: Other Builtins. (line 6) * significandl: Other Builtins. (line 6) ! * SIMD: C Dialect Options. (line 347) * simd function attribute: Common Function Attributes. ! (line 1038) * simple constraints: Simple Constraints. (line 6) * sin: Other Builtins. (line 6) * sincos: Other Builtins. (line 6) *************** Keyword Index *** 66494,66504 **** * smaller data references: M32R/D Options. (line 57) * smaller data references <1>: Nios II Options. (line 9) * smaller data references (PowerPC): RS/6000 and PowerPC Options. ! (line 714) * snprintf: Other Builtins. (line 6) * Solaris 2 options: Solaris 2 Options. (line 6) * SOURCE_DATE_EPOCH: Environment Variables. ! (line 177) * SPARC options: SPARC Options. (line 6) * Spec Files: Spec Files. (line 6) * specified registers: Explicit Register Variables. --- 66536,66546 ---- * smaller data references: M32R/D Options. (line 57) * smaller data references <1>: Nios II Options. (line 9) * smaller data references (PowerPC): RS/6000 and PowerPC Options. ! (line 713) * snprintf: Other Builtins. (line 6) * Solaris 2 options: Solaris 2 Options. (line 6) * SOURCE_DATE_EPOCH: Environment Variables. ! (line 176) * SPARC options: SPARC Options. (line 6) * Spec Files: Spec Files. (line 6) * specified registers: Explicit Register Variables. *************** Keyword Index *** 66522,66528 **** * sseregparm function attribute, x86: x86 Function Attributes. (line 93) * stack_protect function attribute: Common Function Attributes. ! (line 1052) * Statement Attributes: Statement Attributes. (line 6) * statements inside expressions: Statement Exprs. (line 6) --- 66564,66570 ---- * sseregparm function attribute, x86: x86 Function Attributes. (line 93) * stack_protect function attribute: Common Function Attributes. ! (line 1057) * Statement Attributes: Statement Attributes. (line 6) * statements inside expressions: Statement Exprs. (line 6) *************** Keyword Index *** 66565,66576 **** * subscripting and function values: Subscripting. (line 6) * suffixes for C++ source: Invoking G++. (line 6) * SUNPRO_DEPENDENCIES: Environment Variables. ! (line 171) * suppressing warnings: Warning Options. (line 6) * surprises in C++: C++ Misunderstandings. (line 6) * symver function attribute: Common Function Attributes. ! (line 1096) * syntax checking: Warning Options. (line 13) * syscall_linkage function attribute, IA-64: IA-64 Function Attributes. (line 9) --- 66607,66618 ---- * subscripting and function values: Subscripting. (line 6) * suffixes for C++ source: Invoking G++. (line 6) * SUNPRO_DEPENDENCIES: Environment Variables. ! (line 170) * suppressing warnings: Warning Options. (line 6) * surprises in C++: C++ Misunderstandings. (line 6) * symver function attribute: Common Function Attributes. ! (line 1101) * syntax checking: Warning Options. (line 13) * syscall_linkage function attribute, IA-64: IA-64 Function Attributes. (line 9) *************** Keyword Index *** 66584,66590 **** * tanhl: Other Builtins. (line 6) * tanl: Other Builtins. (line 6) * target function attribute: Common Function Attributes. ! (line 1057) * target function attribute <1>: ARM Function Attributes. (line 77) * target function attribute <2>: Nios II Function Attributes. --- 66626,66632 ---- * tanhl: Other Builtins. (line 6) * tanl: Other Builtins. (line 6) * target function attribute: Common Function Attributes. ! (line 1062) * target function attribute <1>: ARM Function Attributes. (line 77) * target function attribute <2>: Nios II Function Attributes. *************** Keyword Index *** 66832,66838 **** (line 501) * target-dependent options: Submodel Options. (line 6) * target_clones function attribute: Common Function Attributes. ! (line 1126) * TC1: Standards. (line 13) * TC2: Standards. (line 13) * TC3: Standards. (line 13) --- 66874,66880 ---- (line 501) * target-dependent options: Submodel Options. (line 6) * target_clones function attribute: Common Function Attributes. ! (line 1131) * TC1: Standards. (line 13) * TC2: Standards. (line 13) * TC3: Standards. (line 13) *************** Keyword Index *** 66925,66931 **** * unresolved references and -nodefaultlibs: Link Options. (line 154) * unresolved references and -nostdlib: Link Options. (line 154) * unused function attribute: Common Function Attributes. ! (line 1153) * unused label attribute: Label Attributes. (line 31) * unused type attribute: Common Type Attributes. (line 410) --- 66967,66973 ---- * unresolved references and -nodefaultlibs: Link Options. (line 154) * unresolved references and -nostdlib: Link Options. (line 154) * unused function attribute: Common Function Attributes. ! (line 1158) * unused label attribute: Label Attributes. (line 31) * unused type attribute: Common Type Attributes. (line 410) *************** Keyword Index *** 66940,66946 **** * urls: Diagnostic Message Formatting Options. (line 129) * used function attribute: Common Function Attributes. ! (line 1158) * used variable attribute: Common Variable Attributes. (line 351) * User stack pointer in interrupts on the Blackfin: Blackfin Function Attributes. --- 66982,66988 ---- * urls: Diagnostic Message Formatting Options. (line 129) * used function attribute: Common Function Attributes. ! (line 1163) * used variable attribute: Common Variable Attributes. (line 351) * User stack pointer in interrupts on the Blackfin: Blackfin Function Attributes. *************** Keyword Index *** 66983,66989 **** * vfprintf: Other Builtins. (line 6) * vfscanf: Other Builtins. (line 6) * visibility function attribute: Common Function Attributes. ! (line 1168) * visibility type attribute: Common Type Attributes. (line 446) * visibility variable attribute: Common Variable Attributes. --- 67025,67031 ---- * vfprintf: Other Builtins. (line 6) * vfscanf: Other Builtins. (line 6) * visibility function attribute: Common Function Attributes. ! (line 1173) * visibility type attribute: Common Type Attributes. (line 446) * visibility variable attribute: Common Variable Attributes. *************** Keyword Index *** 67037,67056 **** (line 106) * warn_unused type attribute: C++ Attributes. (line 71) * warn_unused_result function attribute: Common Function Attributes. ! (line 1268) * weak function attribute: Common Function Attributes. ! (line 1285) * weak variable attribute: Common Variable Attributes. (line 393) * weakref function attribute: Common Function Attributes. ! (line 1297) * whitespace: Incompatibilities. (line 112) * Windows Options for x86: x86 Windows Options. (line 6) * 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) --- 67079,67098 ---- (line 106) * warn_unused type attribute: C++ Attributes. (line 71) * warn_unused_result function attribute: Common Function Attributes. ! (line 1273) * weak function attribute: Common Function Attributes. ! (line 1290) * weak variable attribute: Common Variable Attributes. (line 393) * weakref function attribute: Common Function Attributes. ! (line 1302) * whitespace: Incompatibilities. (line 112) * Windows Options for x86: x86 Windows Options. (line 6) * X in constraint: Simple Constraints. (line 122) * X3.159-1989: Standards. (line 13) * x86 named address spaces: Named Address Spaces. ! (line 169) * x86 Options: x86 Options. (line 6) * x86 Windows Options: x86 Windows Options. (line 6) *************** Keyword Index *** 67075,67500 ****  Tag Table: Node: Top2135 ! Node: G++ and GCC4093 ! Node: Standards6153 ! Node: Invoking GCC19770 ! Node: Option Summary24946 ! Node: Overall Options80062 ! Node: Invoking G++95390 ! Node: C Dialect Options96913 ! Node: C++ Dialect Options116145 ! Node: Objective-C and Objective-C++ Dialect Options165287 ! Node: Diagnostic Message Formatting Options176683 ! Node: Warning Options202404 ! Ref: Wtrigraphs298464 ! Node: Static Analyzer Options334149 ! Node: Debugging Options346858 ! Node: Optimize Options366107 ! Ref: Type-punning435676 ! Node: Instrumentation Options543157 ! Node: Preprocessor Options583339 ! Ref: dashMF588186 ! Ref: fdollars-in-identifiers592765 ! Node: Assembler Options605145 ! Node: Link Options605836 ! Ref: Link Options-Footnote-1622712 ! Node: Directory Options623048 ! Node: Code Gen Options631451 ! Node: Developer Options659816 ! Node: Submodel Options701730 ! Node: AArch64 Options703540 ! Ref: aarch64-feature-modifiers718180 ! Node: Adapteva Epiphany Options723292 ! Node: AMD GCN Options729244 ! Node: ARC Options730138 ! Node: ARM Options751364 ! Node: AVR Options792094 ! Node: Blackfin Options818616 ! Node: C6X Options826508 ! Node: CRIS Options828051 ! Node: CR16 Options831790 ! Node: C-SKY Options832702 ! Node: Darwin Options837562 ! Node: DEC Alpha Options845003 ! Node: eBPF Options856619 ! Node: FR30 Options857901 ! Node: FT32 Options858461 ! Node: FRV Options859407 ! Node: GNU/Linux Options866171 ! Node: H8/300 Options867552 ! Node: HPPA Options869004 ! Node: IA-64 Options878536 ! Node: LM32 Options886664 ! Node: M32C Options887187 ! Node: M32R/D Options888460 ! Node: M680x0 Options892005 ! Node: MCore Options906080 ! Node: MeP Options907582 ! Node: MicroBlaze Options911542 ! Node: MIPS Options914632 ! Node: MMIX Options951171 ! Node: MN10300 Options953648 ! Node: Moxie Options956191 ! Node: MSP430 Options956678 ! Node: NDS32 Options963774 ! Node: Nios II Options965944 ! Node: Nvidia PTX Options978106 ! Node: OpenRISC Options980575 ! Node: PDP-11 Options983095 ! Node: picoChip Options984344 ! Node: PowerPC Options986482 ! Node: PRU Options986702 ! Node: RISC-V Options988911 ! Node: RL78 Options994415 ! Node: RS/6000 and PowerPC Options998190 ! Node: RX Options1039190 ! Node: S/390 and zSeries Options1047792 ! Node: Score Options1058571 ! Node: SH Options1059420 ! Node: Solaris 2 Options1074560 ! Node: SPARC Options1075798 ! Node: System V Options1091424 ! Node: TILE-Gx Options1092252 ! Node: TILEPro Options1093270 ! Node: V850 Options1093774 ! Node: VAX Options1100461 ! Node: Visium Options1100999 ! Node: VMS Options1103307 ! Node: VxWorks Options1104123 ! Node: x86 Options1105275 ! Node: x86 Windows Options1168028 ! Node: Xstormy16 Options1170833 ! Node: Xtensa Options1171127 ! Node: zSeries Options1176276 ! Node: Spec Files1176472 ! Node: Environment Variables1198640 ! Node: Precompiled Headers1207366 ! Node: C Implementation1213555 ! Node: Translation implementation1215245 ! Node: Environment implementation1215836 ! Node: Identifiers implementation1216390 ! Node: Characters implementation1217476 ! Node: Integers implementation1221126 ! Node: Floating point implementation1223175 ! Node: Arrays and pointers implementation1226238 ! Ref: Arrays and pointers implementation-Footnote-11227698 ! Node: Hints implementation1227824 ! Node: Structures unions enumerations and bit-fields implementation1229319 ! Node: Qualifiers implementation1231543 ! Node: Declarators implementation1233604 ! Node: Statements implementation1233945 ! Node: Preprocessing directives implementation1234271 ! Node: Library functions implementation1236592 ! Node: Architecture implementation1237241 ! Node: Locale-specific behavior implementation1238886 ! Node: C++ Implementation1239191 ! Node: Conditionally-supported behavior1240474 ! Node: Exception handling1241091 ! Node: C Extensions1241558 ! Node: Statement Exprs1246762 ! Node: Local Labels1252134 ! Node: Labels as Values1255107 ! Ref: Labels as Values-Footnote-11257634 ! Node: Nested Functions1257819 ! Node: Nonlocal Gotos1261773 ! Node: Constructing Calls1264039 ! Node: Typeof1268754 ! Node: Conditionals1272683 ! Node: __int1281273572 ! Node: Long Long1274097 ! Node: Complex1275588 ! Node: Floating Types1278356 ! Node: Half-Precision1281823 ! Node: Decimal Float1284234 ! Node: Hex Floats1286088 ! Node: Fixed-Point1287162 ! Node: Named Address Spaces1290420 ! Ref: AVR Named Address Spaces1291101 ! Node: Zero Length1297713 ! Node: Empty Structures1301894 ! Node: Variable Length1302300 ! Node: Variadic Macros1305018 ! Node: Escaped Newlines1307396 ! Node: Subscripting1308257 ! Node: Pointer Arith1308982 ! Node: Variadic Pointer Args1309559 ! Node: Pointers to Arrays1310284 ! Node: Initializers1311037 ! Node: Compound Literals1311538 ! Node: Designated Inits1315105 ! Node: Case Ranges1319029 ! Node: Cast to Union1319710 ! Node: Mixed Declarations1321433 ! Node: Function Attributes1321943 ! Node: Common Function Attributes1326399 ! Node: AArch64 Function Attributes1391240 ! Node: AMD GCN Function Attributes1397434 ! Node: ARC Function Attributes1400487 ! Node: ARM Function Attributes1403424 ! Node: AVR Function Attributes1408563 ! Node: Blackfin Function Attributes1413098 ! Node: BPF Function Attributes1415595 ! Node: CR16 Function Attributes1416183 ! Node: C-SKY Function Attributes1416702 ! Node: Epiphany Function Attributes1418001 ! Node: H8/300 Function Attributes1420756 ! Node: IA-64 Function Attributes1421954 ! Node: M32C Function Attributes1422996 ! Node: M32R/D Function Attributes1425334 ! Node: m68k Function Attributes1426808 ! Node: MCORE Function Attributes1427752 ! Node: MeP Function Attributes1428563 ! Node: MicroBlaze Function Attributes1429864 ! Node: Microsoft Windows Function Attributes1431371 ! Node: MIPS Function Attributes1435940 ! Node: MSP430 Function Attributes1441558 ! Node: NDS32 Function Attributes1445637 ! Node: Nios II Function Attributes1448061 ! Node: Nvidia PTX Function Attributes1449358 ! Node: PowerPC Function Attributes1449973 ! Node: RISC-V Function Attributes1456747 ! Node: RL78 Function Attributes1458163 ! Node: RX Function Attributes1459402 ! Node: S/390 Function Attributes1461949 ! Node: SH Function Attributes1463777 ! Node: Symbian OS Function Attributes1467205 ! Node: V850 Function Attributes1467541 ! Node: Visium Function Attributes1468086 ! Node: x86 Function Attributes1468614 ! Node: Xstormy16 Function Attributes1491103 ! Node: Variable Attributes1491610 ! Node: Common Variable Attributes1493143 ! Node: ARC Variable Attributes1511273 ! Node: AVR Variable Attributes1511655 ! Node: Blackfin Variable Attributes1516817 ! Node: H8/300 Variable Attributes1517675 ! Node: IA-64 Variable Attributes1518748 ! Node: M32R/D Variable Attributes1519499 ! Node: MeP Variable Attributes1520282 ! Node: Microsoft Windows Variable Attributes1522375 ! Node: MSP430 Variable Attributes1524828 ! Node: Nvidia PTX Variable Attributes1526782 ! Node: PowerPC Variable Attributes1527399 ! Node: RL78 Variable Attributes1527956 ! Node: V850 Variable Attributes1528375 ! Node: x86 Variable Attributes1529008 ! Node: Xstormy16 Variable Attributes1530064 ! Node: Type Attributes1530634 ! Node: Common Type Attributes1532298 ! Node: ARC Type Attributes1553791 ! Node: ARM Type Attributes1554263 ! Node: MeP Type Attributes1555045 ! Node: PowerPC Type Attributes1555447 ! Node: x86 Type Attributes1556436 ! Node: Label Attributes1557428 ! Node: Enumerator Attributes1559361 ! Node: Statement Attributes1560680 ! Node: Attribute Syntax1562163 ! Node: Function Prototypes1573421 ! Node: C++ Comments1575201 ! Node: Dollar Signs1575720 ! Node: Character Escapes1576185 ! Node: Alignment1576469 ! Node: Inline1578122 ! Node: Volatiles1582939 ! Node: Using Assembly Language with C1585838 ! Node: Basic Asm1587075 ! Node: Extended Asm1592525 ! Ref: Volatile1596624 ! Ref: AssemblerTemplate1600744 ! Ref: OutputOperands1604984 ! Ref: FlagOutputOperands1611947 ! Ref: InputOperands1614894 ! Ref: Clobbers and Scratch Registers1619162 ! Ref: GotoLabels1627803 ! Ref: x86Operandmodifiers1629938 ! Ref: x86floatingpointasmoperands1633095 ! Node: Constraints1636424 ! Node: Simple Constraints1637530 ! Node: Multi-Alternative1644844 ! Node: Modifiers1646519 ! Node: Machine Constraints1649317 ! Node: Asm Labels1705542 ! Node: Explicit Register Variables1707162 ! Ref: Explicit Reg Vars1707376 ! Node: Global Register Variables1707985 ! Ref: Global Reg Vars1708193 ! Node: Local Register Variables1712975 ! Ref: Local Reg Vars1713195 ! Node: Size of an asm1716823 ! Node: Alternate Keywords1718301 ! Node: Incomplete Enums1719806 ! Node: Function Names1720563 ! Node: Return Address1722467 ! Node: Vector Extensions1727054 ! Node: Offsetof1736819 ! Node: __sync Builtins1737652 ! Node: __atomic Builtins1744095 ! Node: Integer Overflow Builtins1757720 ! Node: x86 specific memory model extensions for transactional memory1764203 ! Node: Object Size Checking1765469 ! Node: Other Builtins1771725 ! Node: Target Builtins1821176 ! Node: AArch64 Built-in Functions1822924 ! Node: Alpha Built-in Functions1823379 ! Node: Altera Nios II Built-in Functions1826427 ! Node: ARC Built-in Functions1830796 ! Node: ARC SIMD Built-in Functions1836008 ! Node: ARM iWMMXt Built-in Functions1844904 ! Node: ARM C Language Extensions (ACLE)1851900 ! Node: ARM Floating Point Status and Control Intrinsics1853177 ! Node: ARM ARMv8-M Security Extensions1853662 ! Node: AVR Built-in Functions1854942 ! Node: Blackfin Built-in Functions1858703 ! Node: BPF Built-in Functions1859321 ! Node: FR-V Built-in Functions1860221 ! Node: Argument Types1861084 ! Node: Directly-mapped Integer Functions1862838 ! Node: Directly-mapped Media Functions1863922 ! Node: Raw read/write Functions1872128 ! Node: Other Built-in Functions1873036 ! Node: MIPS DSP Built-in Functions1874222 ! Node: MIPS Paired-Single Support1886719 ! Node: MIPS Loongson Built-in Functions1888218 ! Node: Paired-Single Arithmetic1894740 ! Node: Paired-Single Built-in Functions1895688 ! Node: MIPS-3D Built-in Functions1898355 ! Node: MIPS SIMD Architecture (MSA) Support1903749 ! Node: MIPS SIMD Architecture Built-in Functions1906589 ! Node: Other MIPS Built-in Functions1933443 ! Node: MSP430 Built-in Functions1934452 ! Node: NDS32 Built-in Functions1935853 ! Node: picoChip Built-in Functions1937146 ! Node: Basic PowerPC Built-in Functions1938495 ! Node: Basic PowerPC Built-in Functions Available on all Configurations1939295 ! Node: Basic PowerPC Built-in Functions Available on ISA 2.051947804 ! Node: Basic PowerPC Built-in Functions Available on ISA 2.061952639 ! Node: Basic PowerPC Built-in Functions Available on ISA 2.071954719 ! Node: Basic PowerPC Built-in Functions Available on ISA 3.01955573 ! Node: PowerPC AltiVec/VSX Built-in Functions1962489 ! Node: PowerPC AltiVec Built-in Functions on ISA 2.051966171 ! Node: PowerPC AltiVec Built-in Functions Available on ISA 2.062055409 ! Node: PowerPC AltiVec Built-in Functions Available on ISA 2.072079854 ! Node: PowerPC AltiVec Built-in Functions Available on ISA 3.02101058 ! Node: PowerPC Hardware Transactional Memory Built-in Functions2136194 ! Node: PowerPC Atomic Memory Operation Functions2144709 ! Node: PowerPC Matrix-Multiply Assist Built-in Functions2147272 ! Node: RISC-V Built-in Functions2153272 ! Node: RX Built-in Functions2153710 ! Node: S/390 System z Built-in Functions2157712 ! Node: SH Built-in Functions2162942 ! Node: SPARC VIS Built-in Functions2164670 ! Node: TI C6X Built-in Functions2173202 ! Node: TILE-Gx Built-in Functions2174233 ! Node: TILEPro Built-in Functions2175352 ! Node: x86 Built-in Functions2176452 ! Node: x86 transactional memory intrinsics2240361 ! Node: x86 control-flow protection intrinsics2243628 ! Node: Target Format Checks2245399 ! Node: Solaris Format Checks2245831 ! Node: Darwin Format Checks2246257 ! Node: Pragmas2247220 ! Node: AArch64 Pragmas2248161 ! Node: ARM Pragmas2248618 ! Node: M32C Pragmas2249245 ! Node: MeP Pragmas2250317 ! Node: PRU Pragmas2252369 ! Node: RS/6000 and PowerPC Pragmas2252947 ! Node: S/390 Pragmas2253687 ! Node: Darwin Pragmas2254253 ! Node: Solaris Pragmas2255306 ! Node: Symbol-Renaming Pragmas2256470 ! Node: Structure-Layout Pragmas2258107 ! Node: Weak Pragmas2260387 ! Node: Diagnostic Pragmas2261122 ! Node: Visibility Pragmas2265313 ! Node: Push/Pop Macro Pragmas2265998 ! Node: Function Specific Option Pragmas2266971 ! Node: Loop-Specific Pragmas2268937 ! Node: Unnamed Fields2270537 ! Node: Thread-Local2272734 ! Node: C99 Thread-Local Edits2274840 ! Node: C++98 Thread-Local Edits2276838 ! Node: Binary constants2280283 ! Node: C++ Extensions2280954 ! Node: C++ Volatiles2282584 ! Node: Restricted Pointers2284932 ! Node: Vague Linkage2286523 ! Node: C++ Interface2290146 ! Ref: C++ Interface-Footnote-12293943 ! Node: Template Instantiation2294081 ! Node: Bound member functions2300172 ! Node: C++ Attributes2301704 ! Node: Function Multiversioning2305776 ! Node: Type Traits2307583 ! Node: C++ Concepts2314533 ! Node: Deprecated Features2316039 ! Node: Backwards Compatibility2317864 ! Node: Objective-C2318936 ! Node: GNU Objective-C runtime API2319543 ! Node: Modern GNU Objective-C runtime API2320550 ! Node: Traditional GNU Objective-C runtime API2322986 ! Node: Executing code before main2323713 ! Node: What you can and what you cannot do in +load2326457 ! Node: Type encoding2328827 ! Node: Legacy type encoding2333968 ! Node: @encode2335058 ! Node: Method signatures2335603 ! Node: Garbage Collection2337595 ! Node: Constant string objects2340285 ! Node: compatibility_alias2342794 ! Node: Exceptions2343519 ! Node: Synchronization2346229 ! Node: Fast enumeration2347413 ! Node: Using fast enumeration2347725 ! Node: c99-like fast enumeration syntax2348936 ! Node: Fast enumeration details2349639 ! Node: Fast enumeration protocol2351979 ! Node: Messaging with the GNU Objective-C runtime2355131 ! Node: Dynamically registering methods2356503 ! Node: Forwarding hook2358194 ! Node: Compatibility2361234 ! Node: Gcov2367790 ! Node: Gcov Intro2368325 ! Node: Invoking Gcov2371043 ! Node: Gcov and Optimization2393878 ! Node: Gcov Data Files2397621 ! Node: Cross-profiling2399030 ! Node: Gcov-tool2400884 ! Node: Gcov-tool Intro2401309 ! Node: Invoking Gcov-tool2403279 ! Node: Gcov-dump2405857 ! Node: Gcov-dump Intro2406180 ! Node: Invoking Gcov-dump2406447 ! Node: lto-dump2407048 ! Node: lto-dump Intro2407347 ! Node: Invoking lto-dump2407597 ! Node: Trouble2408693 ! Node: Actual Bugs2410110 ! Node: Interoperation2410557 ! Node: Incompatibilities2417448 ! Node: Fixed Headers2425600 ! Node: Standard Libraries2427258 ! Node: Disappointments2428630 ! Node: C++ Misunderstandings2432989 ! Node: Static Definitions2433800 ! Node: Name lookup2434853 ! Ref: Name lookup-Footnote-12439634 ! Node: Temporaries2439823 ! Node: Copy Assignment2441799 ! Node: Non-bugs2443606 ! Node: Warnings and Errors2454112 ! Node: Bugs2455874 ! Node: Bug Criteria2456341 ! Node: Bug Reporting2458551 ! Node: Service2458769 ! Node: Contributing2459589 ! Node: Funding2460330 ! Node: GNU Project2462820 ! Node: Copying2463466 ! Node: GNU Free Documentation License2500974 ! Node: Contributors2526092 ! Node: Option Index2567065 ! Node: Keyword Index2846471  End Tag Table --- 67117,67547 ----  Tag Table: Node: Top2135 ! Node: G++ and GCC4105 ! Node: Standards6165 ! Node: Invoking GCC19782 ! Node: Option Summary24958 ! Node: Overall Options80110 ! Node: Invoking G++95438 ! Node: C Dialect Options96961 ! Node: C++ Dialect Options116193 ! Node: Objective-C and Objective-C++ Dialect Options165335 ! Node: Diagnostic Message Formatting Options176731 ! Node: Warning Options202452 ! Ref: Wtrigraphs298530 ! Node: Static Analyzer Options334215 ! Node: Debugging Options346924 ! Node: Optimize Options366173 ! Ref: Type-punning435742 ! Node: Instrumentation Options543223 ! Node: Preprocessor Options583639 ! Ref: dashMF588486 ! Ref: fdollars-in-identifiers593065 ! Node: Assembler Options605445 ! Node: Link Options606136 ! Ref: Link Options-Footnote-1623012 ! Node: Directory Options623348 ! Node: Code Gen Options631751 ! Node: Developer Options660116 ! Node: Submodel Options702030 ! Node: AArch64 Options703840 ! Ref: aarch64-feature-modifiers719636 ! Node: Adapteva Epiphany Options724748 ! Node: AMD GCN Options730700 ! Node: ARC Options731594 ! Node: ARM Options752820 ! Node: AVR Options793943 ! Node: Blackfin Options820466 ! Node: C6X Options828358 ! Node: CRIS Options829901 ! Node: CR16 Options833640 ! Node: C-SKY Options834552 ! Node: Darwin Options839412 ! Node: DEC Alpha Options846853 ! Node: eBPF Options858469 ! Node: FR30 Options859751 ! Node: FT32 Options860311 ! Node: FRV Options861257 ! Node: GNU/Linux Options868021 ! Node: H8/300 Options869402 ! Node: HPPA Options870854 ! Node: IA-64 Options880386 ! Node: LM32 Options888514 ! Node: M32C Options889037 ! Node: M32R/D Options890310 ! Node: M680x0 Options893855 ! Node: MCore Options907930 ! Node: MeP Options909432 ! Node: MicroBlaze Options913392 ! Node: MIPS Options916482 ! Node: MMIX Options953021 ! Node: MN10300 Options955498 ! Node: Moxie Options958041 ! Node: MSP430 Options958528 ! Node: NDS32 Options965624 ! Node: Nios II Options967794 ! Node: Nvidia PTX Options979956 ! Node: OpenRISC Options982425 ! Node: PDP-11 Options984945 ! Node: picoChip Options986194 ! Node: PowerPC Options988332 ! Node: PRU Options988552 ! Node: RISC-V Options990761 ! Node: RL78 Options996265 ! Node: RS/6000 and PowerPC Options1000040 ! Node: RX Options1041023 ! Node: S/390 and zSeries Options1049625 ! Node: Score Options1060404 ! Node: SH Options1061253 ! Node: Solaris 2 Options1076393 ! Node: SPARC Options1077631 ! Node: System V Options1093283 ! Node: TILE-Gx Options1094111 ! Node: TILEPro Options1095129 ! Node: V850 Options1095633 ! Node: VAX Options1102320 ! Node: Visium Options1102858 ! Node: VMS Options1105166 ! Node: VxWorks Options1105982 ! Node: x86 Options1107134 ! Node: x86 Windows Options1169887 ! Node: Xstormy16 Options1172692 ! Node: Xtensa Options1172986 ! Node: zSeries Options1178135 ! Node: Spec Files1178331 ! Node: Environment Variables1200490 ! Node: Precompiled Headers1209216 ! Node: C Implementation1215405 ! Node: Translation implementation1217095 ! Node: Environment implementation1217686 ! Node: Identifiers implementation1218240 ! Node: Characters implementation1219326 ! Node: Integers implementation1222976 ! Node: Floating point implementation1225025 ! Node: Arrays and pointers implementation1228088 ! Ref: Arrays and pointers implementation-Footnote-11229548 ! Node: Hints implementation1229674 ! Node: Structures unions enumerations and bit-fields implementation1231169 ! Node: Qualifiers implementation1233393 ! Node: Declarators implementation1235454 ! Node: Statements implementation1235795 ! Node: Preprocessing directives implementation1236121 ! Node: Library functions implementation1238442 ! Node: Architecture implementation1239091 ! Node: Locale-specific behavior implementation1240736 ! Node: C++ Implementation1241041 ! Node: Conditionally-supported behavior1242324 ! Node: Exception handling1242941 ! Node: C Extensions1243408 ! Node: Statement Exprs1248612 ! Node: Local Labels1253984 ! Node: Labels as Values1256957 ! Ref: Labels as Values-Footnote-11259484 ! Node: Nested Functions1259669 ! Node: Nonlocal Gotos1263623 ! Node: Constructing Calls1265889 ! Node: Typeof1270604 ! Node: Conditionals1274533 ! Node: __int1281275422 ! Node: Long Long1275947 ! Node: Complex1277438 ! Node: Floating Types1280206 ! Node: Half-Precision1283673 ! Node: Decimal Float1286084 ! Node: Hex Floats1287938 ! Node: Fixed-Point1289012 ! Node: Named Address Spaces1292270 ! Ref: AVR Named Address Spaces1292951 ! Node: Zero Length1299563 ! Node: Empty Structures1303744 ! Node: Variable Length1304150 ! Node: Variadic Macros1306868 ! Node: Escaped Newlines1309246 ! Node: Subscripting1310107 ! Node: Pointer Arith1310832 ! Node: Variadic Pointer Args1311409 ! Node: Pointers to Arrays1312134 ! Node: Initializers1312887 ! Node: Compound Literals1313388 ! Node: Designated Inits1316955 ! Node: Case Ranges1320879 ! Node: Cast to Union1321560 ! Node: Mixed Declarations1323283 ! Node: Function Attributes1323793 ! Node: Common Function Attributes1328249 ! Node: AArch64 Function Attributes1393353 ! Node: AMD GCN Function Attributes1399547 ! Node: ARC Function Attributes1402600 ! Node: ARM Function Attributes1405537 ! Node: AVR Function Attributes1410676 ! Node: Blackfin Function Attributes1415211 ! Node: BPF Function Attributes1417708 ! Node: CR16 Function Attributes1418296 ! Node: C-SKY Function Attributes1418815 ! Node: Epiphany Function Attributes1420114 ! Node: H8/300 Function Attributes1422869 ! Node: IA-64 Function Attributes1424067 ! Node: M32C Function Attributes1425109 ! Node: M32R/D Function Attributes1427447 ! Node: m68k Function Attributes1428921 ! Node: MCORE Function Attributes1429865 ! Node: MeP Function Attributes1430676 ! Node: MicroBlaze Function Attributes1431977 ! Node: Microsoft Windows Function Attributes1433484 ! Node: MIPS Function Attributes1438053 ! Node: MSP430 Function Attributes1443671 ! Node: NDS32 Function Attributes1447750 ! Node: Nios II Function Attributes1450174 ! Node: Nvidia PTX Function Attributes1451471 ! Node: PowerPC Function Attributes1452086 ! Node: RISC-V Function Attributes1458860 ! Node: RL78 Function Attributes1460276 ! Node: RX Function Attributes1461515 ! Node: S/390 Function Attributes1464062 ! Node: SH Function Attributes1465890 ! Node: Symbian OS Function Attributes1469318 ! Node: V850 Function Attributes1469654 ! Node: Visium Function Attributes1470199 ! Node: x86 Function Attributes1470727 ! Node: Xstormy16 Function Attributes1493216 ! Node: Variable Attributes1493723 ! Node: Common Variable Attributes1495256 ! Node: ARC Variable Attributes1513386 ! Node: AVR Variable Attributes1513768 ! Node: Blackfin Variable Attributes1518930 ! Node: H8/300 Variable Attributes1519788 ! Node: IA-64 Variable Attributes1520861 ! Node: M32R/D Variable Attributes1521612 ! Node: MeP Variable Attributes1522395 ! Node: Microsoft Windows Variable Attributes1524488 ! Node: MSP430 Variable Attributes1526941 ! Node: Nvidia PTX Variable Attributes1528895 ! Node: PowerPC Variable Attributes1529512 ! Node: RL78 Variable Attributes1530069 ! Node: V850 Variable Attributes1530488 ! Node: x86 Variable Attributes1531121 ! Node: Xstormy16 Variable Attributes1532177 ! Node: Type Attributes1532747 ! Node: Common Type Attributes1534411 ! Node: ARC Type Attributes1555904 ! Node: ARM Type Attributes1556376 ! Node: MeP Type Attributes1557158 ! Node: PowerPC Type Attributes1557560 ! Node: x86 Type Attributes1558549 ! Node: Label Attributes1559541 ! Node: Enumerator Attributes1561474 ! Node: Statement Attributes1562793 ! Node: Attribute Syntax1564276 ! Node: Function Prototypes1575534 ! Node: C++ Comments1577314 ! Node: Dollar Signs1577833 ! Node: Character Escapes1578298 ! Node: Alignment1578582 ! Node: Inline1580235 ! Node: Volatiles1585052 ! Node: Using Assembly Language with C1587951 ! Node: Basic Asm1589188 ! Node: Extended Asm1594638 ! Ref: Volatile1598737 ! Ref: AssemblerTemplate1602857 ! Ref: OutputOperands1607097 ! Ref: FlagOutputOperands1614060 ! Ref: InputOperands1617007 ! Ref: Clobbers and Scratch Registers1621275 ! Ref: GotoLabels1629916 ! Ref: x86Operandmodifiers1632051 ! Ref: x86floatingpointasmoperands1635208 ! Node: Constraints1638537 ! Node: Simple Constraints1639643 ! Node: Multi-Alternative1646957 ! Node: Modifiers1648632 ! Node: Machine Constraints1651430 ! Node: Asm Labels1707655 ! Node: Explicit Register Variables1709275 ! Ref: Explicit Reg Vars1709489 ! Node: Global Register Variables1710098 ! Ref: Global Reg Vars1710306 ! Node: Local Register Variables1715088 ! Ref: Local Reg Vars1715308 ! Node: Size of an asm1718936 ! Node: Alternate Keywords1720414 ! Node: Incomplete Enums1721919 ! Node: Function Names1722676 ! Node: Return Address1724580 ! Node: Vector Extensions1729167 ! Node: Offsetof1738932 ! Node: __sync Builtins1739765 ! Node: __atomic Builtins1746208 ! Node: Integer Overflow Builtins1759833 ! Node: x86 specific memory model extensions for transactional memory1766316 ! Node: Object Size Checking1767582 ! Node: Other Builtins1773838 ! Node: Target Builtins1823289 ! Node: AArch64 Built-in Functions1825037 ! Node: Alpha Built-in Functions1825492 ! Node: Altera Nios II Built-in Functions1828540 ! Node: ARC Built-in Functions1832909 ! Node: ARC SIMD Built-in Functions1838121 ! Node: ARM iWMMXt Built-in Functions1847017 ! Node: ARM C Language Extensions (ACLE)1854013 ! Node: ARM Floating Point Status and Control Intrinsics1855290 ! Node: ARM ARMv8-M Security Extensions1855775 ! Node: AVR Built-in Functions1857055 ! Node: Blackfin Built-in Functions1860816 ! Node: BPF Built-in Functions1861434 ! Node: FR-V Built-in Functions1862334 ! Node: Argument Types1863197 ! Node: Directly-mapped Integer Functions1864951 ! Node: Directly-mapped Media Functions1866035 ! Node: Raw read/write Functions1874241 ! Node: Other Built-in Functions1875149 ! Node: MIPS DSP Built-in Functions1876335 ! Node: MIPS Paired-Single Support1888832 ! Node: MIPS Loongson Built-in Functions1890331 ! Node: Paired-Single Arithmetic1896853 ! Node: Paired-Single Built-in Functions1897801 ! Node: MIPS-3D Built-in Functions1900468 ! Node: MIPS SIMD Architecture (MSA) Support1905862 ! Node: MIPS SIMD Architecture Built-in Functions1908702 ! Node: Other MIPS Built-in Functions1935556 ! Node: MSP430 Built-in Functions1936565 ! Node: NDS32 Built-in Functions1937966 ! Node: picoChip Built-in Functions1939259 ! Node: Basic PowerPC Built-in Functions1940608 ! Node: Basic PowerPC Built-in Functions Available on all Configurations1941408 ! Node: Basic PowerPC Built-in Functions Available on ISA 2.051949917 ! Node: Basic PowerPC Built-in Functions Available on ISA 2.061954752 ! Node: Basic PowerPC Built-in Functions Available on ISA 2.071956832 ! Node: Basic PowerPC Built-in Functions Available on ISA 3.01957686 ! Node: PowerPC AltiVec/VSX Built-in Functions1964602 ! Node: PowerPC AltiVec Built-in Functions on ISA 2.051968284 ! Node: PowerPC AltiVec Built-in Functions Available on ISA 2.062057522 ! Node: PowerPC AltiVec Built-in Functions Available on ISA 2.072081967 ! Node: PowerPC AltiVec Built-in Functions Available on ISA 3.02103171 ! Node: PowerPC Hardware Transactional Memory Built-in Functions2138307 ! Node: PowerPC Atomic Memory Operation Functions2146822 ! Node: PowerPC Matrix-Multiply Assist Built-in Functions2149385 ! Node: RISC-V Built-in Functions2155517 ! Node: RX Built-in Functions2155955 ! Node: S/390 System z Built-in Functions2159957 ! Node: SH Built-in Functions2165187 ! Node: SPARC VIS Built-in Functions2166915 ! Node: TI C6X Built-in Functions2175447 ! Node: TILE-Gx Built-in Functions2176478 ! Node: TILEPro Built-in Functions2177597 ! Node: x86 Built-in Functions2178697 ! Node: x86 transactional memory intrinsics2242606 ! Node: x86 control-flow protection intrinsics2245873 ! Node: Target Format Checks2247644 ! Node: Solaris Format Checks2248076 ! Node: Darwin Format Checks2248502 ! Node: Pragmas2249465 ! Node: AArch64 Pragmas2250406 ! Node: ARM Pragmas2250863 ! Node: M32C Pragmas2251490 ! Node: MeP Pragmas2252562 ! Node: PRU Pragmas2254614 ! Node: RS/6000 and PowerPC Pragmas2255192 ! Node: S/390 Pragmas2255932 ! Node: Darwin Pragmas2256498 ! Node: Solaris Pragmas2257551 ! Node: Symbol-Renaming Pragmas2258715 ! Node: Structure-Layout Pragmas2260352 ! Node: Weak Pragmas2262632 ! Node: Diagnostic Pragmas2263367 ! Node: Visibility Pragmas2267558 ! Node: Push/Pop Macro Pragmas2268243 ! Node: Function Specific Option Pragmas2269216 ! Node: Loop-Specific Pragmas2271182 ! Node: Unnamed Fields2272782 ! Node: Thread-Local2274979 ! Node: C99 Thread-Local Edits2277085 ! Node: C++98 Thread-Local Edits2279083 ! Node: Binary constants2282528 ! Node: C++ Extensions2283199 ! Node: C++ Volatiles2284829 ! Node: Restricted Pointers2287177 ! Node: Vague Linkage2288768 ! Node: C++ Interface2292391 ! Ref: C++ Interface-Footnote-12296188 ! Node: Template Instantiation2296326 ! Node: Bound member functions2302417 ! Node: C++ Attributes2303949 ! Node: Function Multiversioning2308021 ! Node: Type Traits2309828 ! Node: C++ Concepts2316778 ! Node: Deprecated Features2318284 ! Node: Backwards Compatibility2320109 ! Node: Objective-C2321181 ! Node: GNU Objective-C runtime API2321788 ! Node: Modern GNU Objective-C runtime API2322795 ! Node: Traditional GNU Objective-C runtime API2325231 ! Node: Executing code before main2325958 ! Node: What you can and what you cannot do in +load2328702 ! Node: Type encoding2331072 ! Node: Legacy type encoding2336213 ! Node: @encode2337303 ! Node: Method signatures2337848 ! Node: Garbage Collection2339840 ! Node: Constant string objects2342530 ! Node: compatibility_alias2345039 ! Node: Exceptions2345764 ! Node: Synchronization2348474 ! Node: Fast enumeration2349658 ! Node: Using fast enumeration2349970 ! Node: c99-like fast enumeration syntax2351181 ! Node: Fast enumeration details2351884 ! Node: Fast enumeration protocol2354224 ! Node: Messaging with the GNU Objective-C runtime2357376 ! Node: Dynamically registering methods2358748 ! Node: Forwarding hook2360439 ! Node: Compatibility2363479 ! Node: Gcov2370035 ! Node: Gcov Intro2370570 ! Node: Invoking Gcov2373288 ! Node: Gcov and Optimization2396123 ! Node: Gcov Data Files2399866 ! Node: Cross-profiling2401275 ! Node: Gcov-tool2403129 ! Node: Gcov-tool Intro2403554 ! Node: Invoking Gcov-tool2405524 ! Node: Gcov-dump2408102 ! Node: Gcov-dump Intro2408425 ! Node: Invoking Gcov-dump2408692 ! Node: lto-dump2409293 ! Node: lto-dump Intro2409592 ! Node: Invoking lto-dump2409842 ! Node: Trouble2410938 ! Node: Actual Bugs2412355 ! Node: Interoperation2412802 ! Node: Incompatibilities2419693 ! Node: Fixed Headers2427845 ! Node: Standard Libraries2429503 ! Node: Disappointments2430875 ! Node: C++ Misunderstandings2435234 ! Node: Static Definitions2436045 ! Node: Name lookup2437098 ! Ref: Name lookup-Footnote-12441879 ! Node: Temporaries2442068 ! Node: Copy Assignment2444044 ! Node: Non-bugs2445879 ! Node: Warnings and Errors2456385 ! Node: Bugs2458147 ! Node: Bug Criteria2458614 ! Node: Bug Reporting2460824 ! Node: Service2461042 ! Node: Contributing2461862 ! Node: Funding2462603 ! Node: GNU Project2465093 ! Node: Copying2465739 ! Node: GNU Free Documentation License2503247 ! Node: Contributors2528365 ! Node: Option Index2569338 ! Node: Keyword Index2848817  End Tag Table + +  + Local Variables: + coding: utf-8 + End: diff -Nrcpad gcc-10.3.0/gcc/doc/gccinstall.info gcc-10.4.0/gcc/doc/gccinstall.info *** gcc-10.3.0/gcc/doc/gccinstall.info Thu Apr 8 12:06:41 2021 --- gcc-10.4.0/gcc/doc/gccinstall.info Tue Jun 28 09:09:20 2022 *************** *** 1,4 **** ! This is gccinstall.info, produced by makeinfo version 6.5 from install.texi. Copyright (C) 1988-2020 Free Software Foundation, Inc. --- 1,4 ---- ! This is gccinstall.info, produced by makeinfo version 6.8 from install.texi. Copyright (C) 1988-2020 Free Software Foundation, Inc. *************** option. *** 840,845 **** --- 840,849 ---- '--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 *************** Concept Index *** 4819,4825 **** * Menu: * Binaries: Binaries. (line 6) ! * build_configargs: Configuration. (line 1699) * Configuration: Configuration. (line 6) * configurations supported by GCC: Configurations. (line 6) * Downloading GCC: Downloading the source. --- 4823,4829 ---- * Menu: * Binaries: Binaries. (line 6) ! * build_configargs: Configuration. (line 1702) * Configuration: Configuration. (line 6) * configurations supported by GCC: Configurations. (line 6) * Downloading GCC: Downloading the source. *************** Concept Index *** 4829,4835 **** * FDL, GNU Free Documentation License: GNU Free Documentation License. (line 6) * Host specific installation: Specific. (line 6) ! * host_configargs: Configuration. (line 1703) * Installing GCC: Binaries: Binaries. (line 6) * Installing GCC: Building: Building. (line 6) * Installing GCC: Configuration: Configuration. (line 6) --- 4833,4839 ---- * FDL, GNU Free Documentation License: GNU Free Documentation License. (line 6) * Host specific installation: Specific. (line 6) ! * host_configargs: Configuration. (line 1706) * Installing GCC: Binaries: Binaries. (line 6) * Installing GCC: Building: Building. (line 6) * Installing GCC: Configuration: Configuration. (line 6) *************** Concept Index *** 4839,4845 **** * Specific installation notes: Specific. (line 6) * Target specific installation: Specific. (line 6) * Target specific installation notes: Specific. (line 6) ! * target_configargs: Configuration. (line 1707) * Testing: Testing. (line 6) * Testsuite: Testing. (line 6) --- 4843,4849 ---- * Specific installation notes: Specific. (line 6) * Target specific installation: Specific. (line 6) * Target specific installation notes: Specific. (line 6) ! * target_configargs: Configuration. (line 1710) * Testing: Testing. (line 6) * Testsuite: Testing. (line 6) *************** Node: Configuration17158 *** 4855,4952 **** Ref: with-gnu-as33246 Ref: with-as34141 Ref: with-gnu-ld35550 ! Ref: WithAixSoname58229 ! Ref: AixLdCommand58890 ! Node: Building100321 ! Node: Testing116190 ! Node: Final install124077 ! Node: Binaries129377 ! Node: Specific130484 ! Ref: aarch64-x-x130991 ! Ref: alpha-x-x133011 ! Ref: amd64-x-solaris2133225 ! Ref: amdgcn-x-amdhsa133307 ! Ref: arc-x-elf32133833 ! Ref: arc-linux-uclibc134009 ! Ref: arm-x-eabi134150 ! Ref: avr134403 ! Ref: bfin134984 ! Ref: cr16135247 ! Ref: cris135663 ! Ref: dos136361 ! Ref: epiphany-x-elf136684 ! Ref: x-x-freebsd136789 ! Ref: ft32-x-elf138589 ! Ref: h8300-hms138687 ! Ref: hppa-hp-hpux139039 ! Ref: hppa-hp-hpux10141411 ! Ref: hppa-hp-hpux11141824 ! Ref: x-x-linux-gnu147226 ! Ref: ix86-x-linux147419 ! Ref: ix86-x-solaris2147732 ! Ref: ia64-x-linux148808 ! Ref: ia64-x-hpux149578 ! Ref: x-ibm-aix150133 ! Ref: TransferAixShobj153795 ! Ref: iq2000-x-elf157605 ! Ref: lm32-x-elf157745 ! Ref: lm32-x-uclinux157849 ! Ref: m32c-x-elf157977 ! Ref: m32r-x-elf158079 ! Ref: m68k-x-x158181 ! Ref: m68k-x-uclinux159219 ! Ref: microblaze-x-elf159464 ! Ref: mips-x-x159583 ! Ref: moxie-x-elf161493 ! Ref: msp430-x-elf161540 ! Ref: nds32le-x-elf162097 ! Ref: nds32be-x-elf162169 ! Ref: nvptx-x-none162238 ! Ref: or1k-x-elf162801 ! Ref: or1k-x-linux162932 ! Ref: powerpc-x-x163013 ! Ref: powerpc-x-darwin163204 ! Ref: powerpc-x-elf163698 ! Ref: powerpc-x-linux-gnu163783 ! Ref: powerpc-x-netbsd163878 ! Ref: powerpc-x-eabisim163966 ! Ref: powerpc-x-eabi164092 ! Ref: powerpcle-x-elf164168 ! Ref: powerpcle-x-eabisim164260 ! Ref: powerpcle-x-eabi164393 ! Ref: rl78-x-elf164476 ! Ref: riscv32-x-elf164582 ! Ref: riscv32-x-linux164771 ! Ref: riscv64-x-elf164928 ! Ref: riscv64-x-linux165117 ! Ref: rx-x-elf165274 ! Ref: s390-x-linux165320 ! Ref: s390x-x-linux165392 ! Ref: s390x-ibm-tpf165479 ! Ref: x-x-solaris2165610 ! Ref: sparc-x-x168717 ! Ref: sparc-sun-solaris2169219 ! Ref: sparc-x-linux170362 ! Ref: sparc64-x-solaris2170393 ! Ref: sparcv9-x-solaris2171111 ! Ref: c6x-x-x171198 ! Ref: tilegx-*-linux171290 ! Ref: tilegxbe-*-linux171432 ! Ref: tilepro-*-linux171575 ! Ref: visium-x-elf171696 ! Ref: x-x-vxworks171804 ! Ref: x86-64-x-x173327 ! Ref: x86-64-x-solaris2173655 ! Ref: xtensa-x-elf174305 ! Ref: xtensa-x-linux174976 ! Ref: windows175317 ! Ref: x-x-cygwin177158 ! Ref: x-x-mingw32177711 ! Ref: older177937 ! Ref: elf180054 ! Node: Old180312 ! Node: Configurations183445 ! Node: GNU Free Documentation License186983 ! Node: Concept Index212111  End Tag Table --- 4859,4961 ---- Ref: with-gnu-as33246 Ref: with-as34141 Ref: with-gnu-ld35550 ! Ref: WithAixSoname58352 ! Ref: AixLdCommand59013 ! Node: Building100444 ! Node: Testing116313 ! Node: Final install124200 ! Node: Binaries129500 ! Node: Specific130607 ! Ref: aarch64-x-x131114 ! Ref: alpha-x-x133134 ! Ref: amd64-x-solaris2133348 ! Ref: amdgcn-x-amdhsa133430 ! Ref: arc-x-elf32133956 ! Ref: arc-linux-uclibc134132 ! Ref: arm-x-eabi134273 ! Ref: avr134526 ! Ref: bfin135107 ! Ref: cr16135370 ! Ref: cris135786 ! Ref: dos136484 ! Ref: epiphany-x-elf136807 ! Ref: x-x-freebsd136912 ! Ref: ft32-x-elf138712 ! Ref: h8300-hms138810 ! Ref: hppa-hp-hpux139162 ! Ref: hppa-hp-hpux10141534 ! Ref: hppa-hp-hpux11141947 ! Ref: x-x-linux-gnu147349 ! Ref: ix86-x-linux147542 ! Ref: ix86-x-solaris2147855 ! Ref: ia64-x-linux148931 ! Ref: ia64-x-hpux149701 ! Ref: x-ibm-aix150256 ! Ref: TransferAixShobj153918 ! Ref: iq2000-x-elf157728 ! Ref: lm32-x-elf157868 ! Ref: lm32-x-uclinux157972 ! Ref: m32c-x-elf158100 ! Ref: m32r-x-elf158202 ! Ref: m68k-x-x158304 ! Ref: m68k-x-uclinux159342 ! Ref: microblaze-x-elf159587 ! Ref: mips-x-x159706 ! Ref: moxie-x-elf161616 ! Ref: msp430-x-elf161663 ! Ref: nds32le-x-elf162220 ! Ref: nds32be-x-elf162292 ! Ref: nvptx-x-none162361 ! Ref: or1k-x-elf162924 ! Ref: or1k-x-linux163055 ! Ref: powerpc-x-x163136 ! Ref: powerpc-x-darwin163327 ! Ref: powerpc-x-elf163821 ! Ref: powerpc-x-linux-gnu163906 ! Ref: powerpc-x-netbsd164001 ! Ref: powerpc-x-eabisim164089 ! Ref: powerpc-x-eabi164215 ! Ref: powerpcle-x-elf164291 ! Ref: powerpcle-x-eabisim164383 ! Ref: powerpcle-x-eabi164516 ! Ref: rl78-x-elf164599 ! Ref: riscv32-x-elf164705 ! Ref: riscv32-x-linux164894 ! Ref: riscv64-x-elf165051 ! Ref: riscv64-x-linux165240 ! Ref: rx-x-elf165397 ! Ref: s390-x-linux165443 ! Ref: s390x-x-linux165515 ! Ref: s390x-ibm-tpf165602 ! Ref: x-x-solaris2165733 ! Ref: sparc-x-x168840 ! Ref: sparc-sun-solaris2169342 ! Ref: sparc-x-linux170485 ! Ref: sparc64-x-solaris2170516 ! Ref: sparcv9-x-solaris2171234 ! Ref: c6x-x-x171321 ! Ref: tilegx-*-linux171413 ! Ref: tilegxbe-*-linux171555 ! Ref: tilepro-*-linux171698 ! Ref: visium-x-elf171819 ! Ref: x-x-vxworks171927 ! Ref: x86-64-x-x173450 ! Ref: x86-64-x-solaris2173778 ! Ref: xtensa-x-elf174428 ! Ref: xtensa-x-linux175099 ! Ref: windows175440 ! Ref: x-x-cygwin177281 ! Ref: x-x-mingw32177834 ! Ref: older178060 ! Ref: elf180177 ! Node: Old180435 ! Node: Configurations183568 ! Node: GNU Free Documentation License187106 ! Node: Concept Index212234  End Tag Table + +  + Local Variables: + coding: utf-8 + End: diff -Nrcpad gcc-10.3.0/gcc/doc/gccint.info gcc-10.4.0/gcc/doc/gccint.info *** gcc-10.3.0/gcc/doc/gccint.info Thu Apr 8 12:06:45 2021 --- gcc-10.4.0/gcc/doc/gccint.info Tue Jun 28 09:09:30 2022 *************** *** 1,4 **** ! This is gccint.info, produced by makeinfo version 6.5 from gccint.texi. Copyright (C) 1988-2020 Free Software Foundation, Inc. --- 1,4 ---- ! This is gccint.info, produced by makeinfo version 6.8 from gccint.texi. Copyright (C) 1988-2020 Free Software Foundation, Inc. *************** Copies published by the Free Software Fo *** 47,53 **** development.  ! File: gccint.info, Node: Top, Next: Contributing Introduction ************ --- 47,53 ---- development.  ! File: gccint.info, Node: Top, Next: Contributing, Up: (dir) Introduction ************ *************** Introduction *** 55,61 **** This manual documents the internals of the GNU compilers, including how to port them to new targets and some information about how to write front ends for new languages. It corresponds to the compilers (GCC) ! version 10.3.0. The use of the GNU compilers is documented in a separate manual. *Note Introduction: (gcc)Top. This manual is mainly a reference manual rather than a tutorial. It --- 55,61 ---- This manual documents the internals of the GNU compilers, including how to port them to new targets and some information about how to write front ends for new languages. It corresponds to the compilers (GCC) ! version 10.4.0. The use of the GNU compilers is documented in a separate manual. *Note Introduction: (gcc)Top. This manual is mainly a reference manual rather than a tutorial. It *************** File: gccint.info, Node: GIMPLE_CALL, *** 13893,13899 **** 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'. --- 13893,13899 ---- 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, *** 14700,14706 **** ----------------------- -- 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 --- 14700,14706 ---- ----------------------- -- 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 *************** and termination functions: *** 39649,39654 **** --- 39649,39662 ---- collecting constructors and destructors to be run at startup and exit. It is false if we must use 'collect2'. + -- Target Hook: bool TARGET_DTORS_FROM_CXA_ATEXIT + This value is true if the target wants destructors to be queued to + be run from __cxa_atexit. If this is the case then, for each + priority level, a new constructor will be entered that registers + the destructors for that level with __cxa_atexit (and there will be + no destructors emitted). It is false the method implied by + 'have_ctors_dtors' is used. + -- Target Hook: void TARGET_ASM_CONSTRUCTOR (rtx SYMBOL, int PRIORITY) If defined, a function that outputs assembler code to arrange to call the function referenced by SYMBOL at initialization time. *************** alphabetical order. *** 47669,47675 **** * 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. --- 47677,47683 ---- * Ralf Corsepius for SH testing and minor bug fixing. ! * François-Xavier Coudert for contributions to GNU Fortran. * Stan Cox for care and feeding of the x86 port and lots of behind the scenes hacking. *************** alphabetical order. *** 47712,47718 **** 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. --- 47720,47726 ---- disbursement, configuration architecture, libio maintenance, and early math work. ! * François Dumont for his work on libstdc++-v3, especially maintaining and improving 'debug-mode' and associative and unordered containers. *************** alphabetical order. *** 47971,47983 **** * 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. --- 47979,47991 ---- * Weiwen Liu for testing and various bug fixes. ! * Manuel López-Ibáñez for improving '-Wconversion' and many other diagnostics fixes and improvements. * Dave Love for his ongoing work with the Fortran front end and runtime libraries. ! * Martin von Löwis for internal consistency checking infrastructure, various C++ improvements including namespace support, and tons of assistance with libstdc++/compiler merges. *************** alphabetical order. *** 48169,48175 **** * 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. --- 48177,48183 ---- * Craig Rodrigues for processing tons of bug reports. ! * Ola Rönnerup for work on mt_alloc. * Gavin Romig-Koch for lots of behind the scenes MIPS work. *************** alphabetical order. *** 48183,48189 **** * 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, --- 48191,48197 ---- * Paul Rubin wrote most of the preprocessor. ! * Pétur Runólfsson for major performance improvements in C++ formatted I/O and large file support in C++ filebuf. * Chip Salzenberg for libstdc++ patches and improvements to locales, *************** alphabetical order. *** 48204,48210 **** * 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, --- 48212,48218 ---- * William Schelter did most of the work on the Intel 80386 support. ! * Tobias Schlüter for work on GNU Fortran. * Bernd Schmidt for various code generation improvements and major work in the reload pass, serving as release manager for GCC 2.95.3, *************** contributions to testing: *** 48701,48707 **** * Robert A. French ! * Jo"rgen Freyh * Mark K. Gardner --- 48709,48715 ---- * Robert A. French ! * Jörgen Freyh * Mark K. Gardner *************** Concept Index *** 48924,48966 **** * __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. --- 48932,48974 ---- * __absvsi2: Integer library routines. (line 105) * __addda3: Fixed-point fractional library routines. ! (line 44) * __adddf3: Soft float library routines. (line 22) * __adddq3: Fixed-point fractional library routines. ! (line 31) * __addha3: Fixed-point fractional library routines. ! (line 41) * __addhq3: Fixed-point fractional library routines. ! (line 29) * __addqq3: Fixed-point fractional library routines. ! (line 27) * __addsa3: Fixed-point fractional library routines. ! (line 43) * __addsf3: Soft float library routines. (line 21) * __addsq3: Fixed-point fractional library routines. ! (line 30) * __addta3: Fixed-point fractional library routines. ! (line 45) * __addtf3: Soft float library routines. (line 23) * __adduda3: Fixed-point fractional library routines. ! (line 51) * __addudq3: Fixed-point fractional library routines. ! (line 39) * __adduha3: Fixed-point fractional library routines. ! (line 47) * __adduhq3: Fixed-point fractional library routines. ! (line 35) * __adduqq3: Fixed-point fractional library routines. ! (line 33) * __addusa3: Fixed-point fractional library routines. ! (line 49) * __addusq3: Fixed-point fractional library routines. ! (line 37) * __adduta3: Fixed-point fractional library routines. ! (line 53) * __addvdi3: Integer library routines. (line 110) * __addvsi3: Integer library routines. *************** Concept Index *** 48968,49030 **** * __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. --- 48976,49038 ---- * __addxf3: Soft float library routines. (line 25) * __ashlda3: Fixed-point fractional library routines. ! (line 350) * __ashldi3: Integer library routines. (line 13) * __ashldq3: Fixed-point fractional library routines. ! (line 338) * __ashlha3: Fixed-point fractional library routines. ! (line 348) * __ashlhq3: Fixed-point fractional library routines. ! (line 336) * __ashlqq3: Fixed-point fractional library routines. ! (line 335) * __ashlsa3: Fixed-point fractional library routines. ! (line 349) * __ashlsi3: Integer library routines. (line 12) * __ashlsq3: Fixed-point fractional library routines. ! (line 337) * __ashlta3: Fixed-point fractional library routines. ! (line 351) * __ashlti3: Integer library routines. (line 14) * __ashluda3: Fixed-point fractional library routines. ! (line 357) * __ashludq3: Fixed-point fractional library routines. ! (line 346) * __ashluha3: Fixed-point fractional library routines. ! (line 353) * __ashluhq3: Fixed-point fractional library routines. ! (line 342) * __ashluqq3: Fixed-point fractional library routines. ! (line 340) * __ashlusa3: Fixed-point fractional library routines. ! (line 355) * __ashlusq3: Fixed-point fractional library routines. ! (line 344) * __ashluta3: Fixed-point fractional library routines. ! (line 359) * __ashrda3: Fixed-point fractional library routines. ! (line 370) * __ashrdi3: Integer library routines. (line 18) * __ashrdq3: Fixed-point fractional library routines. ! (line 366) * __ashrha3: Fixed-point fractional library routines. ! (line 368) * __ashrhq3: Fixed-point fractional library routines. ! (line 364) * __ashrqq3: Fixed-point fractional library routines. ! (line 363) * __ashrsa3: Fixed-point fractional library routines. ! (line 369) * __ashrsi3: Integer library routines. (line 17) * __ashrsq3: Fixed-point fractional library routines. ! (line 365) * __ashrta3: Fixed-point fractional library routines. ! (line 371) * __ashrti3: Integer library routines. (line 19) * __bid_adddd3: Decimal float library routines. *************** Concept Index *** 49223,49269 **** * __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) --- 49231,49277 ---- * __clzti2: Integer library routines. (line 131) * __cmpda2: Fixed-point fractional library routines. ! (line 450) * __cmpdf2: Soft float library routines. (line 163) * __cmpdi2: Integer library routines. (line 86) * __cmpdq2: Fixed-point fractional library routines. ! (line 439) * __cmpha2: Fixed-point fractional library routines. ! (line 448) * __cmphq2: Fixed-point fractional library routines. ! (line 437) * __cmpqq2: Fixed-point fractional library routines. ! (line 436) * __cmpsa2: Fixed-point fractional library routines. ! (line 449) * __cmpsf2: Soft float library routines. (line 162) * __cmpsq2: Fixed-point fractional library routines. ! (line 438) * __cmpta2: Fixed-point fractional library routines. ! (line 451) * __cmptf2: Soft float library routines. (line 164) * __cmpti2: Integer library routines. (line 87) * __cmpuda2: Fixed-point fractional library routines. ! (line 456) * __cmpudq2: Fixed-point fractional library routines. ! (line 446) * __cmpuha2: Fixed-point fractional library routines. ! (line 453) * __cmpuhq2: Fixed-point fractional library routines. ! (line 443) * __cmpuqq2: Fixed-point fractional library routines. ! (line 441) * __cmpusa2: Fixed-point fractional library routines. ! (line 455) * __cmpusq2: Fixed-point fractional library routines. ! (line 444) * __cmputa2: Fixed-point fractional library routines. ! (line 458) * __CTOR_LIST__: Initialization. (line 25) * __ctzdi2: Integer library routines. (line 137) *************** Concept Index *** 49272,49278 **** * __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. --- 49280,49286 ---- * __ctzti2: Integer library routines. (line 138) * __divda3: Fixed-point fractional library routines. ! (line 226) * __divdc3: Soft float library routines. (line 250) * __divdf3: Soft float library routines. *************** Concept Index *** 49280,49294 **** * __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. --- 49288,49302 ---- * __divdi3: Integer library routines. (line 24) * __divdq3: Fixed-point fractional library routines. ! (line 221) * __divha3: Fixed-point fractional library routines. ! (line 223) * __divhq3: Fixed-point fractional library routines. ! (line 219) * __divqq3: Fixed-point fractional library routines. ! (line 217) * __divsa3: Fixed-point fractional library routines. ! (line 225) * __divsc3: Soft float library routines. (line 248) * __divsf3: Soft float library routines. *************** Concept Index *** 49296,49304 **** * __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. --- 49304,49312 ---- * __divsi3: Integer library routines. (line 23) * __divsq3: Fixed-point fractional library routines. ! (line 220) * __divta3: Fixed-point fractional library routines. ! (line 227) * __divtc3: Soft float library routines. (line 252) * __divtf3: Soft float library routines. *************** Concept Index *** 49607,50859 **** * __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. --- 49615,50867 ---- * __floatuntixf: Soft float library routines. (line 153) * __fractdadf: Fixed-point fractional library routines. ! (line 635) * __fractdadi: Fixed-point fractional library routines. ! (line 632) * __fractdadq: Fixed-point fractional library routines. ! (line 615) * __fractdaha2: Fixed-point fractional library routines. ! (line 616) * __fractdahi: Fixed-point fractional library routines. ! (line 630) * __fractdahq: Fixed-point fractional library routines. ! (line 613) * __fractdaqi: Fixed-point fractional library routines. ! (line 629) * __fractdaqq: Fixed-point fractional library routines. ! (line 612) * __fractdasa2: Fixed-point fractional library routines. ! (line 617) * __fractdasf: Fixed-point fractional library routines. ! (line 634) * __fractdasi: Fixed-point fractional library routines. ! (line 631) * __fractdasq: Fixed-point fractional library routines. ! (line 614) * __fractdata2: Fixed-point fractional library routines. ! (line 618) * __fractdati: Fixed-point fractional library routines. ! (line 633) * __fractdauda: Fixed-point fractional library routines. ! (line 626) * __fractdaudq: Fixed-point fractional library routines. ! (line 622) * __fractdauha: Fixed-point fractional library routines. ! (line 624) * __fractdauhq: Fixed-point fractional library routines. ! (line 620) * __fractdauqq: Fixed-point fractional library routines. ! (line 619) * __fractdausa: Fixed-point fractional library routines. ! (line 625) * __fractdausq: Fixed-point fractional library routines. ! (line 621) * __fractdauta: Fixed-point fractional library routines. ! (line 627) * __fractdfda: Fixed-point fractional library routines. ! (line 1024) * __fractdfdq: Fixed-point fractional library routines. ! (line 1021) * __fractdfha: Fixed-point fractional library routines. ! (line 1022) * __fractdfhq: Fixed-point fractional library routines. ! (line 1019) * __fractdfqq: Fixed-point fractional library routines. ! (line 1018) * __fractdfsa: Fixed-point fractional library routines. ! (line 1023) * __fractdfsq: Fixed-point fractional library routines. ! (line 1020) * __fractdfta: Fixed-point fractional library routines. ! (line 1025) * __fractdfuda: Fixed-point fractional library routines. ! (line 1032) * __fractdfudq: Fixed-point fractional library routines. ! (line 1029) * __fractdfuha: Fixed-point fractional library routines. ! (line 1030) * __fractdfuhq: Fixed-point fractional library routines. ! (line 1027) * __fractdfuqq: Fixed-point fractional library routines. ! (line 1026) * __fractdfusa: Fixed-point fractional library routines. ! (line 1031) * __fractdfusq: Fixed-point fractional library routines. ! (line 1028) * __fractdfuta: Fixed-point fractional library routines. ! (line 1033) * __fractdida: Fixed-point fractional library routines. ! (line 974) * __fractdidq: Fixed-point fractional library routines. ! (line 971) * __fractdiha: Fixed-point fractional library routines. ! (line 972) * __fractdihq: Fixed-point fractional library routines. ! (line 969) * __fractdiqq: Fixed-point fractional library routines. ! (line 968) * __fractdisa: Fixed-point fractional library routines. ! (line 973) * __fractdisq: Fixed-point fractional library routines. ! (line 970) * __fractdita: Fixed-point fractional library routines. ! (line 975) * __fractdiuda: Fixed-point fractional library routines. ! (line 982) * __fractdiudq: Fixed-point fractional library routines. ! (line 979) * __fractdiuha: Fixed-point fractional library routines. ! (line 980) * __fractdiuhq: Fixed-point fractional library routines. ! (line 977) * __fractdiuqq: Fixed-point fractional library routines. ! (line 976) * __fractdiusa: Fixed-point fractional library routines. ! (line 981) * __fractdiusq: Fixed-point fractional library routines. ! (line 978) * __fractdiuta: Fixed-point fractional library routines. ! (line 983) * __fractdqda: Fixed-point fractional library routines. ! (line 543) * __fractdqdf: Fixed-point fractional library routines. ! (line 565) * __fractdqdi: Fixed-point fractional library routines. ! (line 562) * __fractdqha: Fixed-point fractional library routines. ! (line 541) * __fractdqhi: Fixed-point fractional library routines. ! (line 560) * __fractdqhq2: Fixed-point fractional library routines. ! (line 539) * __fractdqqi: Fixed-point fractional library routines. ! (line 559) * __fractdqqq2: Fixed-point fractional library routines. ! (line 538) * __fractdqsa: Fixed-point fractional library routines. ! (line 542) * __fractdqsf: Fixed-point fractional library routines. ! (line 564) * __fractdqsi: Fixed-point fractional library routines. ! (line 561) * __fractdqsq2: Fixed-point fractional library routines. ! (line 540) * __fractdqta: Fixed-point fractional library routines. ! (line 544) * __fractdqti: Fixed-point fractional library routines. (line 563) + * __fractdquda: Fixed-point fractional library routines. + (line 555) * __fractdqudq: Fixed-point fractional library routines. ! (line 550) * __fractdquha: Fixed-point fractional library routines. ! (line 552) * __fractdquhq: Fixed-point fractional library routines. ! (line 547) * __fractdquqq: Fixed-point fractional library routines. ! (line 545) * __fractdqusa: Fixed-point fractional library routines. ! (line 554) * __fractdqusq: Fixed-point fractional library routines. ! (line 548) * __fractdquta: Fixed-point fractional library routines. ! (line 557) * __fracthada2: Fixed-point fractional library routines. ! (line 571) * __fracthadf: Fixed-point fractional library routines. ! (line 589) * __fracthadi: Fixed-point fractional library routines. ! (line 586) * __fracthadq: Fixed-point fractional library routines. ! (line 569) * __fracthahi: Fixed-point fractional library routines. ! (line 584) * __fracthahq: Fixed-point fractional library routines. ! (line 567) * __fracthaqi: Fixed-point fractional library routines. ! (line 583) * __fracthaqq: Fixed-point fractional library routines. ! (line 566) * __fracthasa2: Fixed-point fractional library routines. ! (line 570) * __fracthasf: Fixed-point fractional library routines. ! (line 588) * __fracthasi: Fixed-point fractional library routines. ! (line 585) * __fracthasq: Fixed-point fractional library routines. ! (line 568) * __fracthata2: Fixed-point fractional library routines. ! (line 572) * __fracthati: Fixed-point fractional library routines. ! (line 587) * __fracthauda: Fixed-point fractional library routines. ! (line 580) * __fracthaudq: Fixed-point fractional library routines. ! (line 576) * __fracthauha: Fixed-point fractional library routines. ! (line 578) * __fracthauhq: Fixed-point fractional library routines. ! (line 574) * __fracthauqq: Fixed-point fractional library routines. ! (line 573) * __fracthausa: Fixed-point fractional library routines. ! (line 579) * __fracthausq: Fixed-point fractional library routines. ! (line 575) * __fracthauta: Fixed-point fractional library routines. ! (line 581) * __fracthida: Fixed-point fractional library routines. ! (line 942) * __fracthidq: Fixed-point fractional library routines. ! (line 939) * __fracthiha: Fixed-point fractional library routines. ! (line 940) * __fracthihq: Fixed-point fractional library routines. ! (line 937) * __fracthiqq: Fixed-point fractional library routines. ! (line 936) * __fracthisa: Fixed-point fractional library routines. ! (line 941) * __fracthisq: Fixed-point fractional library routines. ! (line 938) * __fracthita: Fixed-point fractional library routines. ! (line 943) * __fracthiuda: Fixed-point fractional library routines. ! (line 950) * __fracthiudq: Fixed-point fractional library routines. ! (line 947) * __fracthiuha: Fixed-point fractional library routines. ! (line 948) * __fracthiuhq: Fixed-point fractional library routines. ! (line 945) * __fracthiuqq: Fixed-point fractional library routines. ! (line 944) * __fracthiusa: Fixed-point fractional library routines. ! (line 949) * __fracthiusq: Fixed-point fractional library routines. ! (line 946) * __fracthiuta: Fixed-point fractional library routines. ! (line 951) * __fracthqda: Fixed-point fractional library routines. ! (line 497) * __fracthqdf: Fixed-point fractional library routines. ! (line 513) * __fracthqdi: Fixed-point fractional library routines. ! (line 510) * __fracthqdq2: Fixed-point fractional library routines. ! (line 494) * __fracthqha: Fixed-point fractional library routines. ! (line 495) * __fracthqhi: Fixed-point fractional library routines. ! (line 508) * __fracthqqi: Fixed-point fractional library routines. ! (line 507) * __fracthqqq2: Fixed-point fractional library routines. ! (line 492) * __fracthqsa: Fixed-point fractional library routines. ! (line 496) * __fracthqsf: Fixed-point fractional library routines. ! (line 512) * __fracthqsi: Fixed-point fractional library routines. ! (line 509) * __fracthqsq2: Fixed-point fractional library routines. ! (line 493) * __fracthqta: Fixed-point fractional library routines. ! (line 498) * __fracthqti: Fixed-point fractional library routines. ! (line 511) * __fracthquda: Fixed-point fractional library routines. ! (line 505) * __fracthqudq: Fixed-point fractional library routines. ! (line 502) * __fracthquha: Fixed-point fractional library routines. ! (line 503) * __fracthquhq: Fixed-point fractional library routines. ! (line 500) * __fracthquqq: Fixed-point fractional library routines. ! (line 499) * __fracthqusa: Fixed-point fractional library routines. ! (line 504) * __fracthqusq: Fixed-point fractional library routines. ! (line 501) * __fracthquta: Fixed-point fractional library routines. ! (line 506) * __fractqida: Fixed-point fractional library routines. ! (line 924) * __fractqidq: Fixed-point fractional library routines. ! (line 921) * __fractqiha: Fixed-point fractional library routines. ! (line 922) * __fractqihq: Fixed-point fractional library routines. ! (line 919) * __fractqiqq: Fixed-point fractional library routines. ! (line 918) * __fractqisa: Fixed-point fractional library routines. ! (line 923) * __fractqisq: Fixed-point fractional library routines. ! (line 920) * __fractqita: Fixed-point fractional library routines. ! (line 925) * __fractqiuda: Fixed-point fractional library routines. ! (line 933) * __fractqiudq: Fixed-point fractional library routines. ! (line 929) * __fractqiuha: Fixed-point fractional library routines. ! (line 931) * __fractqiuhq: Fixed-point fractional library routines. ! (line 927) * __fractqiuqq: Fixed-point fractional library routines. ! (line 926) * __fractqiusa: Fixed-point fractional library routines. ! (line 932) * __fractqiusq: Fixed-point fractional library routines. ! (line 928) * __fractqiuta: Fixed-point fractional library routines. ! (line 934) * __fractqqda: Fixed-point fractional library routines. ! (line 473) * __fractqqdf: Fixed-point fractional library routines. ! (line 491) * __fractqqdi: Fixed-point fractional library routines. ! (line 488) * __fractqqdq2: Fixed-point fractional library routines. ! (line 470) * __fractqqha: Fixed-point fractional library routines. ! (line 471) * __fractqqhi: Fixed-point fractional library routines. ! (line 486) * __fractqqhq2: Fixed-point fractional library routines. ! (line 468) * __fractqqqi: Fixed-point fractional library routines. ! (line 485) * __fractqqsa: Fixed-point fractional library routines. ! (line 472) * __fractqqsf: Fixed-point fractional library routines. ! (line 490) * __fractqqsi: Fixed-point fractional library routines. ! (line 487) * __fractqqsq2: Fixed-point fractional library routines. ! (line 469) * __fractqqta: Fixed-point fractional library routines. ! (line 474) * __fractqqti: Fixed-point fractional library routines. ! (line 489) * __fractqquda: Fixed-point fractional library routines. ! (line 482) * __fractqqudq: Fixed-point fractional library routines. ! (line 478) * __fractqquha: Fixed-point fractional library routines. ! (line 480) * __fractqquhq: Fixed-point fractional library routines. ! (line 476) * __fractqquqq: Fixed-point fractional library routines. ! (line 475) * __fractqqusa: Fixed-point fractional library routines. ! (line 481) * __fractqqusq: Fixed-point fractional library routines. ! (line 477) * __fractqquta: Fixed-point fractional library routines. ! (line 483) * __fractsada2: Fixed-point fractional library routines. ! (line 595) * __fractsadf: Fixed-point fractional library routines. ! (line 611) * __fractsadi: Fixed-point fractional library routines. ! (line 608) * __fractsadq: Fixed-point fractional library routines. ! (line 593) * __fractsaha2: Fixed-point fractional library routines. ! (line 594) * __fractsahi: Fixed-point fractional library routines. ! (line 606) * __fractsahq: Fixed-point fractional library routines. ! (line 591) * __fractsaqi: Fixed-point fractional library routines. ! (line 605) * __fractsaqq: Fixed-point fractional library routines. ! (line 590) * __fractsasf: Fixed-point fractional library routines. ! (line 610) * __fractsasi: Fixed-point fractional library routines. ! (line 607) * __fractsasq: Fixed-point fractional library routines. ! (line 592) * __fractsata2: Fixed-point fractional library routines. ! (line 596) * __fractsati: Fixed-point fractional library routines. ! (line 609) * __fractsauda: Fixed-point fractional library routines. ! (line 603) * __fractsaudq: Fixed-point fractional library routines. ! (line 600) * __fractsauha: Fixed-point fractional library routines. ! (line 601) * __fractsauhq: Fixed-point fractional library routines. ! (line 598) * __fractsauqq: Fixed-point fractional library routines. ! (line 597) * __fractsausa: Fixed-point fractional library routines. ! (line 602) * __fractsausq: Fixed-point fractional library routines. ! (line 599) * __fractsauta: Fixed-point fractional library routines. ! (line 604) * __fractsfda: Fixed-point fractional library routines. ! (line 1008) * __fractsfdq: Fixed-point fractional library routines. ! (line 1005) * __fractsfha: Fixed-point fractional library routines. ! (line 1006) * __fractsfhq: Fixed-point fractional library routines. ! (line 1003) * __fractsfqq: Fixed-point fractional library routines. ! (line 1002) * __fractsfsa: Fixed-point fractional library routines. ! (line 1007) * __fractsfsq: Fixed-point fractional library routines. ! (line 1004) * __fractsfta: Fixed-point fractional library routines. ! (line 1009) * __fractsfuda: Fixed-point fractional library routines. ! (line 1016) * __fractsfudq: Fixed-point fractional library routines. ! (line 1013) * __fractsfuha: Fixed-point fractional library routines. ! (line 1014) * __fractsfuhq: Fixed-point fractional library routines. ! (line 1011) * __fractsfuqq: Fixed-point fractional library routines. ! (line 1010) * __fractsfusa: Fixed-point fractional library routines. ! (line 1015) * __fractsfusq: Fixed-point fractional library routines. ! (line 1012) * __fractsfuta: Fixed-point fractional library routines. ! (line 1017) * __fractsida: Fixed-point fractional library routines. ! (line 958) * __fractsidq: Fixed-point fractional library routines. ! (line 955) * __fractsiha: Fixed-point fractional library routines. ! (line 956) * __fractsihq: Fixed-point fractional library routines. ! (line 953) * __fractsiqq: Fixed-point fractional library routines. ! (line 952) * __fractsisa: Fixed-point fractional library routines. ! (line 957) * __fractsisq: Fixed-point fractional library routines. ! (line 954) * __fractsita: Fixed-point fractional library routines. ! (line 959) * __fractsiuda: Fixed-point fractional library routines. ! (line 966) * __fractsiudq: Fixed-point fractional library routines. ! (line 963) * __fractsiuha: Fixed-point fractional library routines. ! (line 964) * __fractsiuhq: Fixed-point fractional library routines. ! (line 961) * __fractsiuqq: Fixed-point fractional library routines. ! (line 960) * __fractsiusa: Fixed-point fractional library routines. ! (line 965) * __fractsiusq: Fixed-point fractional library routines. ! (line 962) * __fractsiuta: Fixed-point fractional library routines. ! (line 967) * __fractsqda: Fixed-point fractional library routines. ! (line 519) * __fractsqdf: Fixed-point fractional library routines. ! (line 537) * __fractsqdi: Fixed-point fractional library routines. ! (line 534) * __fractsqdq2: Fixed-point fractional library routines. ! (line 516) * __fractsqha: Fixed-point fractional library routines. ! (line 517) * __fractsqhi: Fixed-point fractional library routines. ! (line 532) * __fractsqhq2: Fixed-point fractional library routines. ! (line 515) * __fractsqqi: Fixed-point fractional library routines. ! (line 531) * __fractsqqq2: Fixed-point fractional library routines. ! (line 514) * __fractsqsa: Fixed-point fractional library routines. ! (line 518) * __fractsqsf: Fixed-point fractional library routines. ! (line 536) * __fractsqsi: Fixed-point fractional library routines. ! (line 533) * __fractsqta: Fixed-point fractional library routines. ! (line 520) * __fractsqti: Fixed-point fractional library routines. ! (line 535) * __fractsquda: Fixed-point fractional library routines. ! (line 528) * __fractsqudq: Fixed-point fractional library routines. ! (line 524) * __fractsquha: Fixed-point fractional library routines. ! (line 526) * __fractsquhq: Fixed-point fractional library routines. ! (line 522) * __fractsquqq: Fixed-point fractional library routines. ! (line 521) * __fractsqusa: Fixed-point fractional library routines. ! (line 527) * __fractsqusq: Fixed-point fractional library routines. ! (line 523) * __fractsquta: Fixed-point fractional library routines. ! (line 529) * __fracttada2: Fixed-point fractional library routines. ! (line 642) * __fracttadf: Fixed-point fractional library routines. ! (line 663) * __fracttadi: Fixed-point fractional library routines. ! (line 660) * __fracttadq: Fixed-point fractional library routines. ! (line 639) * __fracttaha2: Fixed-point fractional library routines. ! (line 640) * __fracttahi: Fixed-point fractional library routines. ! (line 658) * __fracttahq: Fixed-point fractional library routines. ! (line 637) * __fracttaqi: Fixed-point fractional library routines. ! (line 657) * __fracttaqq: Fixed-point fractional library routines. ! (line 636) * __fracttasa2: Fixed-point fractional library routines. ! (line 641) * __fracttasf: Fixed-point fractional library routines. ! (line 662) * __fracttasi: Fixed-point fractional library routines. ! (line 659) * __fracttasq: Fixed-point fractional library routines. ! (line 638) * __fracttati: Fixed-point fractional library routines. (line 661) + * __fracttauda: Fixed-point fractional library routines. + (line 653) * __fracttaudq: Fixed-point fractional library routines. ! (line 648) * __fracttauha: Fixed-point fractional library routines. ! (line 650) * __fracttauhq: Fixed-point fractional library routines. ! (line 645) * __fracttauqq: Fixed-point fractional library routines. ! (line 643) * __fracttausa: Fixed-point fractional library routines. ! (line 652) * __fracttausq: Fixed-point fractional library routines. ! (line 646) * __fracttauta: Fixed-point fractional library routines. ! (line 655) * __fracttida: Fixed-point fractional library routines. ! (line 990) * __fracttidq: Fixed-point fractional library routines. ! (line 987) * __fracttiha: Fixed-point fractional library routines. ! (line 988) * __fracttihq: Fixed-point fractional library routines. ! (line 985) * __fracttiqq: Fixed-point fractional library routines. ! (line 984) * __fracttisa: Fixed-point fractional library routines. ! (line 989) * __fracttisq: Fixed-point fractional library routines. ! (line 986) * __fracttita: Fixed-point fractional library routines. ! (line 991) * __fracttiuda: Fixed-point fractional library routines. ! (line 999) * __fracttiudq: Fixed-point fractional library routines. ! (line 995) * __fracttiuha: Fixed-point fractional library routines. ! (line 997) * __fracttiuhq: Fixed-point fractional library routines. ! (line 993) * __fracttiuqq: Fixed-point fractional library routines. ! (line 992) * __fracttiusa: Fixed-point fractional library routines. ! (line 998) * __fracttiusq: Fixed-point fractional library routines. ! (line 994) * __fracttiuta: Fixed-point fractional library routines. ! (line 1000) * __fractudada: Fixed-point fractional library routines. ! (line 857) * __fractudadf: Fixed-point fractional library routines. ! (line 880) * __fractudadi: Fixed-point fractional library routines. ! (line 877) * __fractudadq: Fixed-point fractional library routines. ! (line 853) * __fractudaha: Fixed-point fractional library routines. ! (line 855) * __fractudahi: Fixed-point fractional library routines. ! (line 875) * __fractudahq: Fixed-point fractional library routines. ! (line 851) * __fractudaqi: Fixed-point fractional library routines. ! (line 874) * __fractudaqq: Fixed-point fractional library routines. ! (line 850) * __fractudasa: Fixed-point fractional library routines. ! (line 856) * __fractudasf: Fixed-point fractional library routines. ! (line 879) * __fractudasi: Fixed-point fractional library routines. ! (line 876) * __fractudasq: Fixed-point fractional library routines. ! (line 852) * __fractudata: Fixed-point fractional library routines. ! (line 858) * __fractudati: Fixed-point fractional library routines. ! (line 878) * __fractudaudq: Fixed-point fractional library routines. ! (line 866) * __fractudauha2: Fixed-point fractional library routines. ! (line 868) * __fractudauhq: Fixed-point fractional library routines. ! (line 862) * __fractudauqq: Fixed-point fractional library routines. ! (line 860) * __fractudausa2: Fixed-point fractional library routines. ! (line 870) * __fractudausq: Fixed-point fractional library routines. ! (line 864) * __fractudauta2: Fixed-point fractional library routines. ! (line 872) * __fractudqda: Fixed-point fractional library routines. ! (line 764) * __fractudqdf: Fixed-point fractional library routines. ! (line 790) * __fractudqdi: Fixed-point fractional library routines. ! (line 786) * __fractudqdq: Fixed-point fractional library routines. ! (line 759) * __fractudqha: Fixed-point fractional library routines. ! (line 761) * __fractudqhi: Fixed-point fractional library routines. ! (line 784) * __fractudqhq: Fixed-point fractional library routines. ! (line 756) * __fractudqqi: Fixed-point fractional library routines. ! (line 782) * __fractudqqq: Fixed-point fractional library routines. ! (line 754) * __fractudqsa: Fixed-point fractional library routines. ! (line 763) * __fractudqsf: Fixed-point fractional library routines. ! (line 789) * __fractudqsi: Fixed-point fractional library routines. ! (line 785) * __fractudqsq: Fixed-point fractional library routines. ! (line 757) * __fractudqta: Fixed-point fractional library routines. ! (line 766) * __fractudqti: Fixed-point fractional library routines. ! (line 787) * __fractudquda: Fixed-point fractional library routines. ! (line 778) * __fractudquha: Fixed-point fractional library routines. ! (line 774) * __fractudquhq2: Fixed-point fractional library routines. ! (line 770) * __fractudquqq2: Fixed-point fractional library routines. ! (line 768) * __fractudqusa: Fixed-point fractional library routines. ! (line 776) * __fractudqusq2: Fixed-point fractional library routines. ! (line 772) * __fractudquta: Fixed-point fractional library routines. ! (line 780) * __fractuhada: Fixed-point fractional library routines. ! (line 798) * __fractuhadf: Fixed-point fractional library routines. ! (line 821) * __fractuhadi: Fixed-point fractional library routines. ! (line 818) * __fractuhadq: Fixed-point fractional library routines. ! (line 794) * __fractuhaha: Fixed-point fractional library routines. ! (line 796) * __fractuhahi: Fixed-point fractional library routines. ! (line 816) * __fractuhahq: Fixed-point fractional library routines. ! (line 792) * __fractuhaqi: Fixed-point fractional library routines. ! (line 815) * __fractuhaqq: Fixed-point fractional library routines. ! (line 791) * __fractuhasa: Fixed-point fractional library routines. ! (line 797) * __fractuhasf: Fixed-point fractional library routines. ! (line 820) * __fractuhasi: Fixed-point fractional library routines. ! (line 817) * __fractuhasq: Fixed-point fractional library routines. ! (line 793) * __fractuhata: Fixed-point fractional library routines. ! (line 799) * __fractuhati: Fixed-point fractional library routines. (line 819) + * __fractuhauda2: Fixed-point fractional library routines. + (line 811) * __fractuhaudq: Fixed-point fractional library routines. ! (line 807) * __fractuhauhq: Fixed-point fractional library routines. ! (line 803) * __fractuhauqq: Fixed-point fractional library routines. ! (line 801) * __fractuhausa2: Fixed-point fractional library routines. ! (line 809) * __fractuhausq: Fixed-point fractional library routines. ! (line 805) * __fractuhauta2: Fixed-point fractional library routines. ! (line 813) * __fractuhqda: Fixed-point fractional library routines. ! (line 701) * __fractuhqdf: Fixed-point fractional library routines. ! (line 722) * __fractuhqdi: Fixed-point fractional library routines. ! (line 719) * __fractuhqdq: Fixed-point fractional library routines. ! (line 698) * __fractuhqha: Fixed-point fractional library routines. ! (line 699) * __fractuhqhi: Fixed-point fractional library routines. ! (line 717) * __fractuhqhq: Fixed-point fractional library routines. ! (line 696) * __fractuhqqi: Fixed-point fractional library routines. ! (line 716) * __fractuhqqq: Fixed-point fractional library routines. ! (line 695) * __fractuhqsa: Fixed-point fractional library routines. ! (line 700) * __fractuhqsf: Fixed-point fractional library routines. ! (line 721) * __fractuhqsi: Fixed-point fractional library routines. ! (line 718) * __fractuhqsq: Fixed-point fractional library routines. ! (line 697) * __fractuhqta: Fixed-point fractional library routines. ! (line 702) * __fractuhqti: Fixed-point fractional library routines. (line 720) + * __fractuhquda: Fixed-point fractional library routines. + (line 712) * __fractuhqudq2: Fixed-point fractional library routines. ! (line 707) * __fractuhquha: Fixed-point fractional library routines. ! (line 709) * __fractuhquqq2: Fixed-point fractional library routines. ! (line 703) * __fractuhqusa: Fixed-point fractional library routines. ! (line 711) * __fractuhqusq2: Fixed-point fractional library routines. ! (line 705) * __fractuhquta: Fixed-point fractional library routines. ! (line 714) * __fractunsdadi: Fixed-point fractional library routines. ! (line 1554) * __fractunsdahi: Fixed-point fractional library routines. ! (line 1552) * __fractunsdaqi: Fixed-point fractional library routines. ! (line 1551) * __fractunsdasi: Fixed-point fractional library routines. ! (line 1553) * __fractunsdati: Fixed-point fractional library routines. ! (line 1555) * __fractunsdida: Fixed-point fractional library routines. ! (line 1706) * __fractunsdidq: Fixed-point fractional library routines. ! (line 1703) * __fractunsdiha: Fixed-point fractional library routines. ! (line 1704) * __fractunsdihq: Fixed-point fractional library routines. ! (line 1701) * __fractunsdiqq: Fixed-point fractional library routines. ! (line 1700) * __fractunsdisa: Fixed-point fractional library routines. ! (line 1705) * __fractunsdisq: Fixed-point fractional library routines. ! (line 1702) * __fractunsdita: Fixed-point fractional library routines. ! (line 1707) * __fractunsdiuda: Fixed-point fractional library routines. ! (line 1718) * __fractunsdiudq: Fixed-point fractional library routines. ! (line 1713) * __fractunsdiuha: Fixed-point fractional library routines. ! (line 1715) * __fractunsdiuhq: Fixed-point fractional library routines. ! (line 1710) * __fractunsdiuqq: Fixed-point fractional library routines. ! (line 1708) * __fractunsdiusa: Fixed-point fractional library routines. ! (line 1717) * __fractunsdiusq: Fixed-point fractional library routines. ! (line 1711) * __fractunsdiuta: Fixed-point fractional library routines. ! (line 1720) * __fractunsdqdi: Fixed-point fractional library routines. ! (line 1538) * __fractunsdqhi: Fixed-point fractional library routines. ! (line 1536) * __fractunsdqqi: Fixed-point fractional library routines. ! (line 1535) * __fractunsdqsi: Fixed-point fractional library routines. ! (line 1537) * __fractunsdqti: Fixed-point fractional library routines. ! (line 1539) * __fractunshadi: Fixed-point fractional library routines. ! (line 1544) * __fractunshahi: Fixed-point fractional library routines. ! (line 1542) * __fractunshaqi: Fixed-point fractional library routines. ! (line 1541) * __fractunshasi: Fixed-point fractional library routines. ! (line 1543) * __fractunshati: Fixed-point fractional library routines. ! (line 1545) * __fractunshida: Fixed-point fractional library routines. ! (line 1662) * __fractunshidq: Fixed-point fractional library routines. ! (line 1659) * __fractunshiha: Fixed-point fractional library routines. ! (line 1660) * __fractunshihq: Fixed-point fractional library routines. ! (line 1657) * __fractunshiqq: Fixed-point fractional library routines. ! (line 1656) * __fractunshisa: Fixed-point fractional library routines. ! (line 1661) * __fractunshisq: Fixed-point fractional library routines. ! (line 1658) * __fractunshita: Fixed-point fractional library routines. ! (line 1663) * __fractunshiuda: Fixed-point fractional library routines. ! (line 1674) * __fractunshiudq: Fixed-point fractional library routines. ! (line 1669) * __fractunshiuha: Fixed-point fractional library routines. ! (line 1671) * __fractunshiuhq: Fixed-point fractional library routines. ! (line 1666) * __fractunshiuqq: Fixed-point fractional library routines. ! (line 1664) * __fractunshiusa: Fixed-point fractional library routines. ! (line 1673) * __fractunshiusq: Fixed-point fractional library routines. ! (line 1667) * __fractunshiuta: Fixed-point fractional library routines. ! (line 1676) * __fractunshqdi: Fixed-point fractional library routines. ! (line 1528) * __fractunshqhi: Fixed-point fractional library routines. ! (line 1526) * __fractunshqqi: Fixed-point fractional library routines. ! (line 1525) * __fractunshqsi: Fixed-point fractional library routines. ! (line 1527) * __fractunshqti: Fixed-point fractional library routines. ! (line 1529) * __fractunsqida: Fixed-point fractional library routines. ! (line 1640) * __fractunsqidq: Fixed-point fractional library routines. ! (line 1637) * __fractunsqiha: Fixed-point fractional library routines. ! (line 1638) * __fractunsqihq: Fixed-point fractional library routines. ! (line 1635) * __fractunsqiqq: Fixed-point fractional library routines. ! (line 1634) * __fractunsqisa: Fixed-point fractional library routines. ! (line 1639) * __fractunsqisq: Fixed-point fractional library routines. ! (line 1636) * __fractunsqita: Fixed-point fractional library routines. ! (line 1641) * __fractunsqiuda: Fixed-point fractional library routines. ! (line 1652) * __fractunsqiudq: Fixed-point fractional library routines. ! (line 1647) * __fractunsqiuha: Fixed-point fractional library routines. ! (line 1649) * __fractunsqiuhq: Fixed-point fractional library routines. ! (line 1644) * __fractunsqiuqq: Fixed-point fractional library routines. ! (line 1642) * __fractunsqiusa: Fixed-point fractional library routines. ! (line 1651) * __fractunsqiusq: Fixed-point fractional library routines. ! (line 1645) * __fractunsqiuta: Fixed-point fractional library routines. ! (line 1654) * __fractunsqqdi: Fixed-point fractional library routines. ! (line 1523) * __fractunsqqhi: Fixed-point fractional library routines. ! (line 1521) * __fractunsqqqi: Fixed-point fractional library routines. ! (line 1520) * __fractunsqqsi: Fixed-point fractional library routines. ! (line 1522) * __fractunsqqti: Fixed-point fractional library routines. ! (line 1524) * __fractunssadi: Fixed-point fractional library routines. ! (line 1549) * __fractunssahi: Fixed-point fractional library routines. ! (line 1547) * __fractunssaqi: Fixed-point fractional library routines. ! (line 1546) * __fractunssasi: Fixed-point fractional library routines. ! (line 1548) * __fractunssati: Fixed-point fractional library routines. ! (line 1550) * __fractunssida: Fixed-point fractional library routines. ! (line 1684) * __fractunssidq: Fixed-point fractional library routines. ! (line 1681) * __fractunssiha: Fixed-point fractional library routines. ! (line 1682) * __fractunssihq: Fixed-point fractional library routines. ! (line 1679) * __fractunssiqq: Fixed-point fractional library routines. ! (line 1678) * __fractunssisa: Fixed-point fractional library routines. ! (line 1683) * __fractunssisq: Fixed-point fractional library routines. ! (line 1680) * __fractunssita: Fixed-point fractional library routines. ! (line 1685) * __fractunssiuda: Fixed-point fractional library routines. ! (line 1696) * __fractunssiudq: Fixed-point fractional library routines. ! (line 1691) * __fractunssiuha: Fixed-point fractional library routines. ! (line 1693) * __fractunssiuhq: Fixed-point fractional library routines. ! (line 1688) * __fractunssiuqq: Fixed-point fractional library routines. ! (line 1686) * __fractunssiusa: Fixed-point fractional library routines. ! (line 1695) * __fractunssiusq: Fixed-point fractional library routines. ! (line 1689) * __fractunssiuta: Fixed-point fractional library routines. ! (line 1698) * __fractunssqdi: Fixed-point fractional library routines. ! (line 1533) * __fractunssqhi: Fixed-point fractional library routines. ! (line 1531) * __fractunssqqi: Fixed-point fractional library routines. ! (line 1530) * __fractunssqsi: Fixed-point fractional library routines. ! (line 1532) * __fractunssqti: Fixed-point fractional library routines. ! (line 1534) * __fractunstadi: Fixed-point fractional library routines. ! (line 1559) * __fractunstahi: Fixed-point fractional library routines. ! (line 1557) * __fractunstaqi: Fixed-point fractional library routines. ! (line 1556) * __fractunstasi: Fixed-point fractional library routines. ! (line 1558) * __fractunstati: Fixed-point fractional library routines. ! (line 1560) * __fractunstida: Fixed-point fractional library routines. ! (line 1729) * __fractunstidq: Fixed-point fractional library routines. ! (line 1725) * __fractunstiha: Fixed-point fractional library routines. ! (line 1727) * __fractunstihq: Fixed-point fractional library routines. ! (line 1723) * __fractunstiqq: Fixed-point fractional library routines. ! (line 1722) * __fractunstisa: Fixed-point fractional library routines. ! (line 1728) * __fractunstisq: Fixed-point fractional library routines. ! (line 1724) * __fractunstita: Fixed-point fractional library routines. ! (line 1730) * __fractunstiuda: Fixed-point fractional library routines. ! (line 1744) * __fractunstiudq: Fixed-point fractional library routines. ! (line 1738) * __fractunstiuha: Fixed-point fractional library routines. ! (line 1740) * __fractunstiuhq: Fixed-point fractional library routines. ! (line 1734) * __fractunstiuqq: Fixed-point fractional library routines. ! (line 1732) * __fractunstiusa: Fixed-point fractional library routines. ! (line 1742) * __fractunstiusq: Fixed-point fractional library routines. ! (line 1736) * __fractunstiuta: Fixed-point fractional library routines. ! (line 1746) * __fractunsudadi: Fixed-point fractional library routines. ! (line 1620) * __fractunsudahi: Fixed-point fractional library routines. ! (line 1616) * __fractunsudaqi: Fixed-point fractional library routines. ! (line 1614) * __fractunsudasi: Fixed-point fractional library routines. ! (line 1618) * __fractunsudati: Fixed-point fractional library routines. ! (line 1622) * __fractunsudqdi: Fixed-point fractional library routines. ! (line 1594) * __fractunsudqhi: Fixed-point fractional library routines. ! (line 1590) * __fractunsudqqi: Fixed-point fractional library routines. ! (line 1588) * __fractunsudqsi: Fixed-point fractional library routines. ! (line 1592) * __fractunsudqti: Fixed-point fractional library routines. ! (line 1596) * __fractunsuhadi: Fixed-point fractional library routines. ! (line 1604) * __fractunsuhahi: Fixed-point fractional library routines. ! (line 1600) * __fractunsuhaqi: Fixed-point fractional library routines. ! (line 1598) * __fractunsuhasi: Fixed-point fractional library routines. ! (line 1602) * __fractunsuhati: Fixed-point fractional library routines. ! (line 1606) * __fractunsuhqdi: Fixed-point fractional library routines. ! (line 1575) * __fractunsuhqhi: Fixed-point fractional library routines. ! (line 1573) * __fractunsuhqqi: Fixed-point fractional library routines. ! (line 1572) * __fractunsuhqsi: Fixed-point fractional library routines. ! (line 1574) * __fractunsuhqti: Fixed-point fractional library routines. (line 1576) + * __fractunsuqqdi: Fixed-point fractional library routines. + (line 1568) * __fractunsuqqhi: Fixed-point fractional library routines. ! (line 1564) * __fractunsuqqqi: Fixed-point fractional library routines. ! (line 1562) * __fractunsuqqsi: Fixed-point fractional library routines. ! (line 1566) * __fractunsuqqti: Fixed-point fractional library routines. ! (line 1570) * __fractunsusadi: Fixed-point fractional library routines. ! (line 1611) * __fractunsusahi: Fixed-point fractional library routines. ! (line 1609) * __fractunsusaqi: Fixed-point fractional library routines. ! (line 1608) * __fractunsusasi: Fixed-point fractional library routines. ! (line 1610) * __fractunsusati: Fixed-point fractional library routines. ! (line 1612) * __fractunsusqdi: Fixed-point fractional library routines. ! (line 1584) * __fractunsusqhi: Fixed-point fractional library routines. ! (line 1580) * __fractunsusqqi: Fixed-point fractional library routines. ! (line 1578) * __fractunsusqsi: Fixed-point fractional library routines. ! (line 1582) * __fractunsusqti: Fixed-point fractional library routines. ! (line 1586) * __fractunsutadi: Fixed-point fractional library routines. ! (line 1630) * __fractunsutahi: Fixed-point fractional library routines. ! (line 1626) * __fractunsutaqi: Fixed-point fractional library routines. ! (line 1624) * __fractunsutasi: Fixed-point fractional library routines. ! (line 1628) * __fractunsutati: Fixed-point fractional library routines. ! (line 1632) * __fractuqqda: Fixed-point fractional library routines. ! (line 671) * __fractuqqdf: Fixed-point fractional library routines. ! (line 694) * __fractuqqdi: Fixed-point fractional library routines. ! (line 691) * __fractuqqdq: Fixed-point fractional library routines. ! (line 667) * __fractuqqha: Fixed-point fractional library routines. ! (line 669) * __fractuqqhi: Fixed-point fractional library routines. ! (line 689) * __fractuqqhq: Fixed-point fractional library routines. ! (line 665) * __fractuqqqi: Fixed-point fractional library routines. ! (line 688) * __fractuqqqq: Fixed-point fractional library routines. ! (line 664) * __fractuqqsa: Fixed-point fractional library routines. ! (line 670) * __fractuqqsf: Fixed-point fractional library routines. ! (line 693) * __fractuqqsi: Fixed-point fractional library routines. ! (line 690) * __fractuqqsq: Fixed-point fractional library routines. ! (line 666) * __fractuqqta: Fixed-point fractional library routines. ! (line 672) * __fractuqqti: Fixed-point fractional library routines. (line 692) + * __fractuqquda: Fixed-point fractional library routines. + (line 684) * __fractuqqudq2: Fixed-point fractional library routines. ! (line 678) * __fractuqquha: Fixed-point fractional library routines. ! (line 680) * __fractuqquhq2: Fixed-point fractional library routines. ! (line 674) * __fractuqqusa: Fixed-point fractional library routines. ! (line 682) * __fractuqqusq2: Fixed-point fractional library routines. ! (line 676) * __fractuqquta: Fixed-point fractional library routines. ! (line 686) * __fractusada: Fixed-point fractional library routines. ! (line 828) * __fractusadf: Fixed-point fractional library routines. ! (line 849) * __fractusadi: Fixed-point fractional library routines. ! (line 846) * __fractusadq: Fixed-point fractional library routines. ! (line 825) * __fractusaha: Fixed-point fractional library routines. ! (line 826) * __fractusahi: Fixed-point fractional library routines. ! (line 844) * __fractusahq: Fixed-point fractional library routines. ! (line 823) * __fractusaqi: Fixed-point fractional library routines. ! (line 843) * __fractusaqq: Fixed-point fractional library routines. ! (line 822) * __fractusasa: Fixed-point fractional library routines. ! (line 827) * __fractusasf: Fixed-point fractional library routines. ! (line 848) * __fractusasi: Fixed-point fractional library routines. ! (line 845) * __fractusasq: Fixed-point fractional library routines. ! (line 824) * __fractusata: Fixed-point fractional library routines. ! (line 829) * __fractusati: Fixed-point fractional library routines. (line 847) + * __fractusauda2: Fixed-point fractional library routines. + (line 839) * __fractusaudq: Fixed-point fractional library routines. ! (line 835) * __fractusauha2: Fixed-point fractional library routines. ! (line 837) * __fractusauhq: Fixed-point fractional library routines. ! (line 832) * __fractusauqq: Fixed-point fractional library routines. ! (line 830) * __fractusausq: Fixed-point fractional library routines. ! (line 833) * __fractusauta2: Fixed-point fractional library routines. ! (line 841) * __fractusqda: Fixed-point fractional library routines. ! (line 730) * __fractusqdf: Fixed-point fractional library routines. ! (line 753) * __fractusqdi: Fixed-point fractional library routines. ! (line 750) * __fractusqdq: Fixed-point fractional library routines. ! (line 726) * __fractusqha: Fixed-point fractional library routines. ! (line 728) * __fractusqhi: Fixed-point fractional library routines. ! (line 748) * __fractusqhq: Fixed-point fractional library routines. ! (line 724) * __fractusqqi: Fixed-point fractional library routines. ! (line 747) * __fractusqqq: Fixed-point fractional library routines. ! (line 723) * __fractusqsa: Fixed-point fractional library routines. ! (line 729) * __fractusqsf: Fixed-point fractional library routines. ! (line 752) * __fractusqsi: Fixed-point fractional library routines. ! (line 749) * __fractusqsq: Fixed-point fractional library routines. ! (line 725) * __fractusqta: Fixed-point fractional library routines. ! (line 731) * __fractusqti: Fixed-point fractional library routines. (line 751) + * __fractusquda: Fixed-point fractional library routines. + (line 743) * __fractusqudq2: Fixed-point fractional library routines. ! (line 737) * __fractusquha: Fixed-point fractional library routines. ! (line 739) * __fractusquhq2: Fixed-point fractional library routines. ! (line 735) * __fractusquqq2: Fixed-point fractional library routines. ! (line 733) * __fractusqusa: Fixed-point fractional library routines. ! (line 741) * __fractusquta: Fixed-point fractional library routines. ! (line 745) * __fractutada: Fixed-point fractional library routines. ! (line 891) * __fractutadf: Fixed-point fractional library routines. ! (line 917) * __fractutadi: Fixed-point fractional library routines. ! (line 913) * __fractutadq: Fixed-point fractional library routines. ! (line 886) * __fractutaha: Fixed-point fractional library routines. ! (line 888) * __fractutahi: Fixed-point fractional library routines. ! (line 911) * __fractutahq: Fixed-point fractional library routines. ! (line 883) * __fractutaqi: Fixed-point fractional library routines. ! (line 909) * __fractutaqq: Fixed-point fractional library routines. ! (line 881) * __fractutasa: Fixed-point fractional library routines. ! (line 890) * __fractutasf: Fixed-point fractional library routines. ! (line 916) * __fractutasi: Fixed-point fractional library routines. ! (line 912) * __fractutasq: Fixed-point fractional library routines. ! (line 884) * __fractutata: Fixed-point fractional library routines. ! (line 893) * __fractutati: Fixed-point fractional library routines. ! (line 914) * __fractutauda2: Fixed-point fractional library routines. ! (line 907) * __fractutaudq: Fixed-point fractional library routines. ! (line 901) * __fractutauha2: Fixed-point fractional library routines. ! (line 903) * __fractutauhq: Fixed-point fractional library routines. ! (line 897) * __fractutauqq: Fixed-point fractional library routines. ! (line 895) * __fractutausa2: Fixed-point fractional library routines. ! (line 905) * __fractutausq: Fixed-point fractional library routines. ! (line 899) * __gedf2: Soft float library routines. (line 205) * __gesf2: Soft float library routines. *************** Concept Index *** 50879,50899 **** * __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. --- 50887,50907 ---- * __lshrti3: Integer library routines. (line 31) * __lshruda3: Fixed-point fractional library routines. ! (line 388) * __lshrudq3: Fixed-point fractional library routines. ! (line 382) * __lshruha3: Fixed-point fractional library routines. ! (line 384) * __lshruhq3: Fixed-point fractional library routines. ! (line 378) * __lshruqq3: Fixed-point fractional library routines. ! (line 376) * __lshrusa3: Fixed-point fractional library routines. ! (line 386) * __lshrusq3: Fixed-point fractional library routines. ! (line 380) * __lshruta3: Fixed-point fractional library routines. ! (line 390) * __ltdf2: Soft float library routines. (line 211) * __ltsf2: Soft float library routines. *************** Concept Index *** 50914,50920 **** * __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. --- 50922,50928 ---- * __morestack_segments: Miscellaneous routines. (line 44) * __mulda3: Fixed-point fractional library routines. ! (line 170) * __muldc3: Soft float library routines. (line 239) * __muldf3: Soft float library routines. *************** Concept Index *** 50922,50936 **** * __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. --- 50930,50944 ---- * __muldi3: Integer library routines. (line 42) * __muldq3: Fixed-point fractional library routines. ! (line 157) * __mulha3: Fixed-point fractional library routines. ! (line 167) * __mulhq3: Fixed-point fractional library routines. ! (line 155) * __mulqq3: Fixed-point fractional library routines. ! (line 153) * __mulsa3: Fixed-point fractional library routines. ! (line 169) * __mulsc3: Soft float library routines. (line 237) * __mulsf3: Soft float library routines. *************** Concept Index *** 50938,50946 **** * __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. --- 50946,50954 ---- * __mulsi3: Integer library routines. (line 41) * __mulsq3: Fixed-point fractional library routines. ! (line 156) * __multa3: Fixed-point fractional library routines. ! (line 171) * __multc3: Soft float library routines. (line 241) * __multf3: Soft float library routines. *************** Concept Index *** 50948,50968 **** * __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. --- 50956,50976 ---- * __multi3: Integer library routines. (line 43) * __muluda3: Fixed-point fractional library routines. ! (line 177) * __muludq3: Fixed-point fractional library routines. ! (line 165) * __muluha3: Fixed-point fractional library routines. ! (line 173) * __muluhq3: Fixed-point fractional library routines. ! (line 161) * __muluqq3: Fixed-point fractional library routines. ! (line 159) * __mulusa3: Fixed-point fractional library routines. ! (line 175) * __mulusq3: Fixed-point fractional library routines. ! (line 163) * __muluta3: Fixed-point fractional library routines. ! (line 179) * __mulvdi3: Integer library routines. (line 114) * __mulvsi3: Integer library routines. *************** Concept Index *** 50974,51020 **** * __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. --- 50982,51028 ---- * __nedf2: Soft float library routines. (line 199) * __negda2: Fixed-point fractional library routines. ! (line 298) * __negdf2: Soft float library routines. (line 55) * __negdi2: Integer library routines. (line 46) * __negdq2: Fixed-point fractional library routines. ! (line 288) * __negha2: Fixed-point fractional library routines. ! (line 296) * __neghq2: Fixed-point fractional library routines. ! (line 286) * __negqq2: Fixed-point fractional library routines. ! (line 285) * __negsa2: Fixed-point fractional library routines. ! (line 297) * __negsf2: Soft float library routines. (line 54) * __negsq2: Fixed-point fractional library routines. ! (line 287) * __negta2: Fixed-point fractional library routines. ! (line 299) * __negtf2: Soft float library routines. (line 56) * __negti2: Integer library routines. (line 47) * __neguda2: Fixed-point fractional library routines. ! (line 303) * __negudq2: Fixed-point fractional library routines. ! (line 294) * __neguha2: Fixed-point fractional library routines. ! (line 300) * __neguhq2: Fixed-point fractional library routines. ! (line 291) * __neguqq2: Fixed-point fractional library routines. ! (line 289) * __negusa2: Fixed-point fractional library routines. ! (line 302) * __negusq2: Fixed-point fractional library routines. ! (line 292) * __neguta2: Fixed-point fractional library routines. ! (line 305) * __negvdi2: Integer library routines. (line 118) * __negvsi2: Integer library routines. *************** Concept Index *** 51046,52048 **** * __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. --- 51054,52056 ---- * __powixf2: Soft float library routines. (line 234) * __satfractdadq: Fixed-point fractional library routines. ! (line 1152) * __satfractdaha2: Fixed-point fractional library routines. ! (line 1153) * __satfractdahq: Fixed-point fractional library routines. ! (line 1150) * __satfractdaqq: Fixed-point fractional library routines. ! (line 1149) * __satfractdasa2: Fixed-point fractional library routines. ! (line 1154) * __satfractdasq: Fixed-point fractional library routines. ! (line 1151) * __satfractdata2: Fixed-point fractional library routines. ! (line 1155) * __satfractdauda: Fixed-point fractional library routines. ! (line 1165) * __satfractdaudq: Fixed-point fractional library routines. ! (line 1160) * __satfractdauha: Fixed-point fractional library routines. ! (line 1162) * __satfractdauhq: Fixed-point fractional library routines. ! (line 1158) * __satfractdauqq: Fixed-point fractional library routines. ! (line 1156) * __satfractdausa: Fixed-point fractional library routines. ! (line 1164) * __satfractdausq: Fixed-point fractional library routines. ! (line 1159) * __satfractdauta: Fixed-point fractional library routines. ! (line 1166) * __satfractdfda: Fixed-point fractional library routines. ! (line 1505) * __satfractdfdq: Fixed-point fractional library routines. ! (line 1502) * __satfractdfha: Fixed-point fractional library routines. ! (line 1503) * __satfractdfhq: Fixed-point fractional library routines. ! (line 1500) * __satfractdfqq: Fixed-point fractional library routines. ! (line 1499) * __satfractdfsa: Fixed-point fractional library routines. ! (line 1504) * __satfractdfsq: Fixed-point fractional library routines. ! (line 1501) * __satfractdfta: Fixed-point fractional library routines. ! (line 1506) * __satfractdfuda: Fixed-point fractional library routines. ! (line 1514) * __satfractdfudq: Fixed-point fractional library routines. ! (line 1510) * __satfractdfuha: Fixed-point fractional library routines. ! (line 1512) * __satfractdfuhq: Fixed-point fractional library routines. ! (line 1508) * __satfractdfuqq: Fixed-point fractional library routines. ! (line 1507) * __satfractdfusa: Fixed-point fractional library routines. ! (line 1513) * __satfractdfusq: Fixed-point fractional library routines. ! (line 1509) * __satfractdfuta: Fixed-point fractional library routines. ! (line 1515) * __satfractdida: Fixed-point fractional library routines. ! (line 1455) * __satfractdidq: Fixed-point fractional library routines. ! (line 1452) * __satfractdiha: Fixed-point fractional library routines. ! (line 1453) * __satfractdihq: Fixed-point fractional library routines. ! (line 1450) * __satfractdiqq: Fixed-point fractional library routines. ! (line 1449) * __satfractdisa: Fixed-point fractional library routines. ! (line 1454) * __satfractdisq: Fixed-point fractional library routines. ! (line 1451) * __satfractdita: Fixed-point fractional library routines. ! (line 1456) * __satfractdiuda: Fixed-point fractional library routines. ! (line 1463) * __satfractdiudq: Fixed-point fractional library routines. ! (line 1460) * __satfractdiuha: Fixed-point fractional library routines. ! (line 1461) * __satfractdiuhq: Fixed-point fractional library routines. ! (line 1458) * __satfractdiuqq: Fixed-point fractional library routines. ! (line 1457) * __satfractdiusa: Fixed-point fractional library routines. ! (line 1462) * __satfractdiusq: Fixed-point fractional library routines. ! (line 1459) * __satfractdiuta: Fixed-point fractional library routines. ! (line 1464) * __satfractdqda: Fixed-point fractional library routines. ! (line 1097) * __satfractdqha: Fixed-point fractional library routines. ! (line 1095) * __satfractdqhq2: Fixed-point fractional library routines. ! (line 1093) * __satfractdqqq2: Fixed-point fractional library routines. ! (line 1092) * __satfractdqsa: Fixed-point fractional library routines. ! (line 1096) * __satfractdqsq2: Fixed-point fractional library routines. ! (line 1094) * __satfractdqta: Fixed-point fractional library routines. ! (line 1098) * __satfractdquda: Fixed-point fractional library routines. ! (line 1109) * __satfractdqudq: Fixed-point fractional library routines. ! (line 1104) * __satfractdquha: Fixed-point fractional library routines. ! (line 1106) * __satfractdquhq: Fixed-point fractional library routines. ! (line 1101) * __satfractdquqq: Fixed-point fractional library routines. ! (line 1099) * __satfractdqusa: Fixed-point fractional library routines. ! (line 1108) * __satfractdqusq: Fixed-point fractional library routines. ! (line 1102) * __satfractdquta: Fixed-point fractional library routines. ! (line 1111) * __satfracthada2: Fixed-point fractional library routines. ! (line 1118) * __satfracthadq: Fixed-point fractional library routines. ! (line 1116) * __satfracthahq: Fixed-point fractional library routines. ! (line 1114) * __satfracthaqq: Fixed-point fractional library routines. ! (line 1113) * __satfracthasa2: Fixed-point fractional library routines. ! (line 1117) * __satfracthasq: Fixed-point fractional library routines. ! (line 1115) * __satfracthata2: Fixed-point fractional library routines. ! (line 1119) * __satfracthauda: Fixed-point fractional library routines. ! (line 1130) * __satfracthaudq: Fixed-point fractional library routines. ! (line 1125) * __satfracthauha: Fixed-point fractional library routines. ! (line 1127) * __satfracthauhq: Fixed-point fractional library routines. ! (line 1122) * __satfracthauqq: Fixed-point fractional library routines. ! (line 1120) * __satfracthausa: Fixed-point fractional library routines. ! (line 1129) * __satfracthausq: Fixed-point fractional library routines. ! (line 1123) * __satfracthauta: Fixed-point fractional library routines. ! (line 1132) * __satfracthida: Fixed-point fractional library routines. ! (line 1423) * __satfracthidq: Fixed-point fractional library routines. ! (line 1420) * __satfracthiha: Fixed-point fractional library routines. ! (line 1421) * __satfracthihq: Fixed-point fractional library routines. ! (line 1418) * __satfracthiqq: Fixed-point fractional library routines. ! (line 1417) * __satfracthisa: Fixed-point fractional library routines. ! (line 1422) * __satfracthisq: Fixed-point fractional library routines. ! (line 1419) * __satfracthita: Fixed-point fractional library routines. ! (line 1424) * __satfracthiuda: Fixed-point fractional library routines. ! (line 1431) * __satfracthiudq: Fixed-point fractional library routines. ! (line 1428) * __satfracthiuha: Fixed-point fractional library routines. ! (line 1429) * __satfracthiuhq: Fixed-point fractional library routines. ! (line 1426) * __satfracthiuqq: Fixed-point fractional library routines. ! (line 1425) * __satfracthiusa: Fixed-point fractional library routines. ! (line 1430) * __satfracthiusq: Fixed-point fractional library routines. ! (line 1427) * __satfracthiuta: Fixed-point fractional library routines. ! (line 1432) * __satfracthqda: Fixed-point fractional library routines. ! (line 1063) * __satfracthqdq2: Fixed-point fractional library routines. ! (line 1060) * __satfracthqha: Fixed-point fractional library routines. ! (line 1061) * __satfracthqqq2: Fixed-point fractional library routines. ! (line 1058) * __satfracthqsa: Fixed-point fractional library routines. ! (line 1062) * __satfracthqsq2: Fixed-point fractional library routines. ! (line 1059) * __satfracthqta: Fixed-point fractional library routines. ! (line 1064) * __satfracthquda: Fixed-point fractional library routines. ! (line 1071) * __satfracthqudq: Fixed-point fractional library routines. ! (line 1068) * __satfracthquha: Fixed-point fractional library routines. ! (line 1069) * __satfracthquhq: Fixed-point fractional library routines. ! (line 1066) * __satfracthquqq: Fixed-point fractional library routines. ! (line 1065) * __satfracthqusa: Fixed-point fractional library routines. ! (line 1070) * __satfracthqusq: Fixed-point fractional library routines. ! (line 1067) * __satfracthquta: Fixed-point fractional library routines. ! (line 1072) * __satfractqida: Fixed-point fractional library routines. ! (line 1401) * __satfractqidq: Fixed-point fractional library routines. ! (line 1398) * __satfractqiha: Fixed-point fractional library routines. ! (line 1399) * __satfractqihq: Fixed-point fractional library routines. ! (line 1396) * __satfractqiqq: Fixed-point fractional library routines. ! (line 1395) * __satfractqisa: Fixed-point fractional library routines. ! (line 1400) * __satfractqisq: Fixed-point fractional library routines. ! (line 1397) * __satfractqita: Fixed-point fractional library routines. ! (line 1402) * __satfractqiuda: Fixed-point fractional library routines. ! (line 1413) * __satfractqiudq: Fixed-point fractional library routines. ! (line 1408) * __satfractqiuha: Fixed-point fractional library routines. ! (line 1410) * __satfractqiuhq: Fixed-point fractional library routines. ! (line 1405) * __satfractqiuqq: Fixed-point fractional library routines. ! (line 1403) * __satfractqiusa: Fixed-point fractional library routines. ! (line 1412) * __satfractqiusq: Fixed-point fractional library routines. ! (line 1406) * __satfractqiuta: Fixed-point fractional library routines. ! (line 1415) * __satfractqqda: Fixed-point fractional library routines. ! (line 1042) * __satfractqqdq2: Fixed-point fractional library routines. ! (line 1039) * __satfractqqha: Fixed-point fractional library routines. ! (line 1040) * __satfractqqhq2: Fixed-point fractional library routines. ! (line 1037) * __satfractqqsa: Fixed-point fractional library routines. ! (line 1041) * __satfractqqsq2: Fixed-point fractional library routines. ! (line 1038) * __satfractqqta: Fixed-point fractional library routines. ! (line 1043) * __satfractqquda: Fixed-point fractional library routines. ! (line 1054) * __satfractqqudq: Fixed-point fractional library routines. ! (line 1049) * __satfractqquha: Fixed-point fractional library routines. ! (line 1051) * __satfractqquhq: Fixed-point fractional library routines. ! (line 1046) * __satfractqquqq: Fixed-point fractional library routines. ! (line 1044) * __satfractqqusa: Fixed-point fractional library routines. ! (line 1053) * __satfractqqusq: Fixed-point fractional library routines. ! (line 1047) * __satfractqquta: Fixed-point fractional library routines. ! (line 1056) * __satfractsada2: Fixed-point fractional library routines. ! (line 1139) * __satfractsadq: Fixed-point fractional library routines. ! (line 1137) * __satfractsaha2: Fixed-point fractional library routines. ! (line 1138) * __satfractsahq: Fixed-point fractional library routines. ! (line 1135) * __satfractsaqq: Fixed-point fractional library routines. ! (line 1134) * __satfractsasq: Fixed-point fractional library routines. ! (line 1136) * __satfractsata2: Fixed-point fractional library routines. ! (line 1140) * __satfractsauda: Fixed-point fractional library routines. ! (line 1147) * __satfractsaudq: Fixed-point fractional library routines. ! (line 1144) * __satfractsauha: Fixed-point fractional library routines. ! (line 1145) * __satfractsauhq: Fixed-point fractional library routines. ! (line 1142) * __satfractsauqq: Fixed-point fractional library routines. ! (line 1141) * __satfractsausa: Fixed-point fractional library routines. ! (line 1146) * __satfractsausq: Fixed-point fractional library routines. ! (line 1143) * __satfractsauta: Fixed-point fractional library routines. ! (line 1148) * __satfractsfda: Fixed-point fractional library routines. ! (line 1489) * __satfractsfdq: Fixed-point fractional library routines. ! (line 1486) * __satfractsfha: Fixed-point fractional library routines. ! (line 1487) * __satfractsfhq: Fixed-point fractional library routines. ! (line 1484) * __satfractsfqq: Fixed-point fractional library routines. ! (line 1483) * __satfractsfsa: Fixed-point fractional library routines. ! (line 1488) * __satfractsfsq: Fixed-point fractional library routines. ! (line 1485) * __satfractsfta: Fixed-point fractional library routines. ! (line 1490) * __satfractsfuda: Fixed-point fractional library routines. ! (line 1497) * __satfractsfudq: Fixed-point fractional library routines. ! (line 1494) * __satfractsfuha: Fixed-point fractional library routines. ! (line 1495) * __satfractsfuhq: Fixed-point fractional library routines. ! (line 1492) * __satfractsfuqq: Fixed-point fractional library routines. ! (line 1491) * __satfractsfusa: Fixed-point fractional library routines. ! (line 1496) * __satfractsfusq: Fixed-point fractional library routines. ! (line 1493) * __satfractsfuta: Fixed-point fractional library routines. ! (line 1498) * __satfractsida: Fixed-point fractional library routines. ! (line 1439) * __satfractsidq: Fixed-point fractional library routines. ! (line 1436) * __satfractsiha: Fixed-point fractional library routines. ! (line 1437) * __satfractsihq: Fixed-point fractional library routines. ! (line 1434) * __satfractsiqq: Fixed-point fractional library routines. ! (line 1433) * __satfractsisa: Fixed-point fractional library routines. ! (line 1438) * __satfractsisq: Fixed-point fractional library routines. ! (line 1435) * __satfractsita: Fixed-point fractional library routines. ! (line 1440) * __satfractsiuda: Fixed-point fractional library routines. ! (line 1447) * __satfractsiudq: Fixed-point fractional library routines. ! (line 1444) * __satfractsiuha: Fixed-point fractional library routines. ! (line 1445) * __satfractsiuhq: Fixed-point fractional library routines. ! (line 1442) * __satfractsiuqq: Fixed-point fractional library routines. ! (line 1441) * __satfractsiusa: Fixed-point fractional library routines. ! (line 1446) * __satfractsiusq: Fixed-point fractional library routines. ! (line 1443) * __satfractsiuta: Fixed-point fractional library routines. ! (line 1448) * __satfractsqda: Fixed-point fractional library routines. ! (line 1078) * __satfractsqdq2: Fixed-point fractional library routines. ! (line 1075) * __satfractsqha: Fixed-point fractional library routines. ! (line 1076) * __satfractsqhq2: Fixed-point fractional library routines. ! (line 1074) * __satfractsqqq2: Fixed-point fractional library routines. ! (line 1073) * __satfractsqsa: Fixed-point fractional library routines. ! (line 1077) * __satfractsqta: Fixed-point fractional library routines. ! (line 1079) * __satfractsquda: Fixed-point fractional library routines. ! (line 1089) * __satfractsqudq: Fixed-point fractional library routines. ! (line 1084) * __satfractsquha: Fixed-point fractional library routines. ! (line 1086) * __satfractsquhq: Fixed-point fractional library routines. ! (line 1082) * __satfractsquqq: Fixed-point fractional library routines. ! (line 1080) * __satfractsqusa: Fixed-point fractional library routines. ! (line 1088) * __satfractsqusq: Fixed-point fractional library routines. ! (line 1083) * __satfractsquta: Fixed-point fractional library routines. ! (line 1090) * __satfracttada2: Fixed-point fractional library routines. ! (line 1174) * __satfracttadq: Fixed-point fractional library routines. ! (line 1171) * __satfracttaha2: Fixed-point fractional library routines. ! (line 1172) * __satfracttahq: Fixed-point fractional library routines. ! (line 1169) * __satfracttaqq: Fixed-point fractional library routines. ! (line 1168) * __satfracttasa2: Fixed-point fractional library routines. ! (line 1173) * __satfracttasq: Fixed-point fractional library routines. ! (line 1170) * __satfracttauda: Fixed-point fractional library routines. ! (line 1185) * __satfracttaudq: Fixed-point fractional library routines. ! (line 1180) * __satfracttauha: Fixed-point fractional library routines. ! (line 1182) * __satfracttauhq: Fixed-point fractional library routines. ! (line 1177) * __satfracttauqq: Fixed-point fractional library routines. ! (line 1175) * __satfracttausa: Fixed-point fractional library routines. ! (line 1184) * __satfracttausq: Fixed-point fractional library routines. ! (line 1178) * __satfracttauta: Fixed-point fractional library routines. ! (line 1187) * __satfracttida: Fixed-point fractional library routines. ! (line 1471) * __satfracttidq: Fixed-point fractional library routines. ! (line 1468) * __satfracttiha: Fixed-point fractional library routines. ! (line 1469) * __satfracttihq: Fixed-point fractional library routines. ! (line 1466) * __satfracttiqq: Fixed-point fractional library routines. ! (line 1465) * __satfracttisa: Fixed-point fractional library routines. ! (line 1470) * __satfracttisq: Fixed-point fractional library routines. ! (line 1467) * __satfracttita: Fixed-point fractional library routines. ! (line 1472) * __satfracttiuda: Fixed-point fractional library routines. ! (line 1480) * __satfracttiudq: Fixed-point fractional library routines. ! (line 1476) * __satfracttiuha: Fixed-point fractional library routines. ! (line 1478) * __satfracttiuhq: Fixed-point fractional library routines. ! (line 1474) * __satfracttiuqq: Fixed-point fractional library routines. ! (line 1473) * __satfracttiusa: Fixed-point fractional library routines. ! (line 1479) * __satfracttiusq: Fixed-point fractional library routines. ! (line 1475) * __satfracttiuta: Fixed-point fractional library routines. ! (line 1481) * __satfractudada: Fixed-point fractional library routines. ! (line 1350) * __satfractudadq: Fixed-point fractional library routines. ! (line 1345) * __satfractudaha: Fixed-point fractional library routines. ! (line 1347) * __satfractudahq: Fixed-point fractional library routines. ! (line 1343) * __satfractudaqq: Fixed-point fractional library routines. ! (line 1341) * __satfractudasa: Fixed-point fractional library routines. ! (line 1349) * __satfractudasq: Fixed-point fractional library routines. ! (line 1344) * __satfractudata: Fixed-point fractional library routines. ! (line 1351) * __satfractudaudq: Fixed-point fractional library routines. ! (line 1359) * __satfractudauha2: Fixed-point fractional library routines. ! (line 1361) * __satfractudauhq: Fixed-point fractional library routines. ! (line 1355) * __satfractudauqq: Fixed-point fractional library routines. ! (line 1353) * __satfractudausa2: Fixed-point fractional library routines. ! (line 1363) * __satfractudausq: Fixed-point fractional library routines. ! (line 1357) * __satfractudauta2: Fixed-point fractional library routines. ! (line 1365) * __satfractudqda: Fixed-point fractional library routines. ! (line 1274) * __satfractudqdq: Fixed-point fractional library routines. ! (line 1269) * __satfractudqha: Fixed-point fractional library routines. ! (line 1271) * __satfractudqhq: Fixed-point fractional library routines. ! (line 1266) * __satfractudqqq: Fixed-point fractional library routines. ! (line 1264) * __satfractudqsa: Fixed-point fractional library routines. ! (line 1273) * __satfractudqsq: Fixed-point fractional library routines. ! (line 1267) * __satfractudqta: Fixed-point fractional library routines. ! (line 1276) * __satfractudquda: Fixed-point fractional library routines. ! (line 1288) * __satfractudquha: Fixed-point fractional library routines. ! (line 1284) * __satfractudquhq2: Fixed-point fractional library routines. ! (line 1280) * __satfractudquqq2: Fixed-point fractional library routines. ! (line 1278) * __satfractudqusa: Fixed-point fractional library routines. ! (line 1286) * __satfractudqusq2: Fixed-point fractional library routines. ! (line 1282) * __satfractudquta: Fixed-point fractional library routines. ! (line 1290) * __satfractuhada: Fixed-point fractional library routines. ! (line 1302) * __satfractuhadq: Fixed-point fractional library routines. ! (line 1297) * __satfractuhaha: Fixed-point fractional library routines. ! (line 1299) * __satfractuhahq: Fixed-point fractional library routines. ! (line 1294) * __satfractuhaqq: Fixed-point fractional library routines. ! (line 1292) * __satfractuhasa: Fixed-point fractional library routines. ! (line 1301) * __satfractuhasq: Fixed-point fractional library routines. ! (line 1295) * __satfractuhata: Fixed-point fractional library routines. ! (line 1304) * __satfractuhauda2: Fixed-point fractional library routines. ! (line 1316) * __satfractuhaudq: Fixed-point fractional library routines. ! (line 1312) * __satfractuhauhq: Fixed-point fractional library routines. ! (line 1308) * __satfractuhauqq: Fixed-point fractional library routines. ! (line 1306) * __satfractuhausa2: Fixed-point fractional library routines. ! (line 1314) * __satfractuhausq: Fixed-point fractional library routines. ! (line 1310) * __satfractuhauta2: Fixed-point fractional library routines. ! (line 1318) * __satfractuhqda: Fixed-point fractional library routines. ! (line 1223) * __satfractuhqdq: Fixed-point fractional library routines. ! (line 1220) * __satfractuhqha: Fixed-point fractional library routines. ! (line 1221) * __satfractuhqhq: Fixed-point fractional library routines. ! (line 1218) * __satfractuhqqq: Fixed-point fractional library routines. ! (line 1217) * __satfractuhqsa: Fixed-point fractional library routines. ! (line 1222) * __satfractuhqsq: Fixed-point fractional library routines. ! (line 1219) * __satfractuhqta: Fixed-point fractional library routines. ! (line 1224) * __satfractuhquda: Fixed-point fractional library routines. ! (line 1234) * __satfractuhqudq2: Fixed-point fractional library routines. ! (line 1229) * __satfractuhquha: Fixed-point fractional library routines. ! (line 1231) * __satfractuhquqq2: Fixed-point fractional library routines. ! (line 1225) * __satfractuhqusa: Fixed-point fractional library routines. ! (line 1233) * __satfractuhqusq2: Fixed-point fractional library routines. ! (line 1227) * __satfractuhquta: Fixed-point fractional library routines. ! (line 1236) * __satfractunsdida: Fixed-point fractional library routines. ! (line 1833) * __satfractunsdidq: Fixed-point fractional library routines. ! (line 1829) * __satfractunsdiha: Fixed-point fractional library routines. ! (line 1831) * __satfractunsdihq: Fixed-point fractional library routines. ! (line 1827) * __satfractunsdiqq: Fixed-point fractional library routines. ! (line 1826) * __satfractunsdisa: Fixed-point fractional library routines. ! (line 1832) * __satfractunsdisq: Fixed-point fractional library routines. ! (line 1828) * __satfractunsdita: Fixed-point fractional library routines. ! (line 1834) * __satfractunsdiuda: Fixed-point fractional library routines. ! (line 1848) * __satfractunsdiudq: Fixed-point fractional library routines. ! (line 1842) * __satfractunsdiuha: Fixed-point fractional library routines. ! (line 1844) * __satfractunsdiuhq: Fixed-point fractional library routines. ! (line 1838) * __satfractunsdiuqq: Fixed-point fractional library routines. ! (line 1836) * __satfractunsdiusa: Fixed-point fractional library routines. ! (line 1846) * __satfractunsdiusq: Fixed-point fractional library routines. ! (line 1840) * __satfractunsdiuta: Fixed-point fractional library routines. ! (line 1850) * __satfractunshida: Fixed-point fractional library routines. ! (line 1785) * __satfractunshidq: Fixed-point fractional library routines. ! (line 1781) * __satfractunshiha: Fixed-point fractional library routines. ! (line 1783) * __satfractunshihq: Fixed-point fractional library routines. ! (line 1779) * __satfractunshiqq: Fixed-point fractional library routines. ! (line 1778) * __satfractunshisa: Fixed-point fractional library routines. ! (line 1784) * __satfractunshisq: Fixed-point fractional library routines. ! (line 1780) * __satfractunshita: Fixed-point fractional library routines. ! (line 1786) * __satfractunshiuda: Fixed-point fractional library routines. ! (line 1800) * __satfractunshiudq: Fixed-point fractional library routines. ! (line 1794) * __satfractunshiuha: Fixed-point fractional library routines. ! (line 1796) * __satfractunshiuhq: Fixed-point fractional library routines. ! (line 1790) * __satfractunshiuqq: Fixed-point fractional library routines. ! (line 1788) * __satfractunshiusa: Fixed-point fractional library routines. ! (line 1798) * __satfractunshiusq: Fixed-point fractional library routines. ! (line 1792) * __satfractunshiuta: Fixed-point fractional library routines. ! (line 1802) * __satfractunsqida: Fixed-point fractional library routines. ! (line 1759) * __satfractunsqidq: Fixed-point fractional library routines. ! (line 1755) * __satfractunsqiha: Fixed-point fractional library routines. ! (line 1757) * __satfractunsqihq: Fixed-point fractional library routines. ! (line 1753) * __satfractunsqiqq: Fixed-point fractional library routines. ! (line 1752) * __satfractunsqisa: Fixed-point fractional library routines. ! (line 1758) * __satfractunsqisq: Fixed-point fractional library routines. ! (line 1754) * __satfractunsqita: Fixed-point fractional library routines. ! (line 1760) * __satfractunsqiuda: Fixed-point fractional library routines. ! (line 1774) * __satfractunsqiudq: Fixed-point fractional library routines. ! (line 1768) * __satfractunsqiuha: Fixed-point fractional library routines. ! (line 1770) * __satfractunsqiuhq: Fixed-point fractional library routines. ! (line 1764) * __satfractunsqiuqq: Fixed-point fractional library routines. ! (line 1762) * __satfractunsqiusa: Fixed-point fractional library routines. ! (line 1772) * __satfractunsqiusq: Fixed-point fractional library routines. ! (line 1766) * __satfractunsqiuta: Fixed-point fractional library routines. ! (line 1776) * __satfractunssida: Fixed-point fractional library routines. ! (line 1810) * __satfractunssidq: Fixed-point fractional library routines. ! (line 1807) * __satfractunssiha: Fixed-point fractional library routines. ! (line 1808) * __satfractunssihq: Fixed-point fractional library routines. ! (line 1805) * __satfractunssiqq: Fixed-point fractional library routines. ! (line 1804) * __satfractunssisa: Fixed-point fractional library routines. ! (line 1809) * __satfractunssisq: Fixed-point fractional library routines. ! (line 1806) * __satfractunssita: Fixed-point fractional library routines. ! (line 1811) * __satfractunssiuda: Fixed-point fractional library routines. ! (line 1822) * __satfractunssiudq: Fixed-point fractional library routines. ! (line 1817) * __satfractunssiuha: Fixed-point fractional library routines. ! (line 1819) * __satfractunssiuhq: Fixed-point fractional library routines. ! (line 1814) * __satfractunssiuqq: Fixed-point fractional library routines. ! (line 1812) * __satfractunssiusa: Fixed-point fractional library routines. ! (line 1821) * __satfractunssiusq: Fixed-point fractional library routines. ! (line 1815) * __satfractunssiuta: Fixed-point fractional library routines. ! (line 1824) * __satfractunstida: Fixed-point fractional library routines. ! (line 1862) * __satfractunstidq: Fixed-point fractional library routines. ! (line 1857) * __satfractunstiha: Fixed-point fractional library routines. ! (line 1859) * __satfractunstihq: Fixed-point fractional library routines. ! (line 1854) * __satfractunstiqq: Fixed-point fractional library routines. ! (line 1852) * __satfractunstisa: Fixed-point fractional library routines. ! (line 1861) * __satfractunstisq: Fixed-point fractional library routines. ! (line 1855) * __satfractunstita: Fixed-point fractional library routines. ! (line 1864) * __satfractunstiuda: Fixed-point fractional library routines. ! (line 1878) * __satfractunstiudq: Fixed-point fractional library routines. ! (line 1872) * __satfractunstiuha: Fixed-point fractional library routines. ! (line 1874) * __satfractunstiuhq: Fixed-point fractional library routines. ! (line 1868) * __satfractunstiuqq: Fixed-point fractional library routines. ! (line 1866) * __satfractunstiusa: Fixed-point fractional library routines. ! (line 1876) * __satfractunstiusq: Fixed-point fractional library routines. ! (line 1870) * __satfractunstiuta: Fixed-point fractional library routines. ! (line 1880) * __satfractuqqda: Fixed-point fractional library routines. ! (line 1199) * __satfractuqqdq: Fixed-point fractional library routines. ! (line 1194) * __satfractuqqha: Fixed-point fractional library routines. ! (line 1196) * __satfractuqqhq: Fixed-point fractional library routines. ! (line 1191) * __satfractuqqqq: Fixed-point fractional library routines. ! (line 1189) * __satfractuqqsa: Fixed-point fractional library routines. ! (line 1198) * __satfractuqqsq: Fixed-point fractional library routines. ! (line 1192) * __satfractuqqta: Fixed-point fractional library routines. ! (line 1201) * __satfractuqquda: Fixed-point fractional library routines. ! (line 1213) * __satfractuqqudq2: Fixed-point fractional library routines. ! (line 1207) * __satfractuqquha: Fixed-point fractional library routines. ! (line 1209) * __satfractuqquhq2: Fixed-point fractional library routines. ! (line 1203) * __satfractuqqusa: Fixed-point fractional library routines. ! (line 1211) * __satfractuqqusq2: Fixed-point fractional library routines. ! (line 1205) * __satfractuqquta: Fixed-point fractional library routines. ! (line 1215) * __satfractusada: Fixed-point fractional library routines. ! (line 1326) * __satfractusadq: Fixed-point fractional library routines. ! (line 1323) * __satfractusaha: Fixed-point fractional library routines. ! (line 1324) * __satfractusahq: Fixed-point fractional library routines. ! (line 1321) * __satfractusaqq: Fixed-point fractional library routines. ! (line 1320) * __satfractusasa: Fixed-point fractional library routines. ! (line 1325) * __satfractusasq: Fixed-point fractional library routines. ! (line 1322) * __satfractusata: Fixed-point fractional library routines. ! (line 1327) * __satfractusauda2: Fixed-point fractional library routines. ! (line 1337) * __satfractusaudq: Fixed-point fractional library routines. ! (line 1333) * __satfractusauha2: Fixed-point fractional library routines. ! (line 1335) * __satfractusauhq: Fixed-point fractional library routines. ! (line 1330) * __satfractusauqq: Fixed-point fractional library routines. ! (line 1328) * __satfractusausq: Fixed-point fractional library routines. ! (line 1331) * __satfractusauta2: Fixed-point fractional library routines. ! (line 1339) * __satfractusqda: Fixed-point fractional library routines. ! (line 1247) * __satfractusqdq: Fixed-point fractional library routines. ! (line 1242) * __satfractusqha: Fixed-point fractional library routines. ! (line 1244) * __satfractusqhq: Fixed-point fractional library routines. ! (line 1240) * __satfractusqqq: Fixed-point fractional library routines. ! (line 1238) * __satfractusqsa: Fixed-point fractional library routines. ! (line 1246) * __satfractusqsq: Fixed-point fractional library routines. ! (line 1241) * __satfractusqta: Fixed-point fractional library routines. ! (line 1248) * __satfractusquda: Fixed-point fractional library routines. ! (line 1260) * __satfractusqudq2: Fixed-point fractional library routines. ! (line 1254) * __satfractusquha: Fixed-point fractional library routines. ! (line 1256) * __satfractusquhq2: Fixed-point fractional library routines. ! (line 1252) * __satfractusquqq2: Fixed-point fractional library routines. ! (line 1250) * __satfractusqusa: Fixed-point fractional library routines. ! (line 1258) * __satfractusquta: Fixed-point fractional library routines. ! (line 1262) * __satfractutada: Fixed-point fractional library routines. ! (line 1377) * __satfractutadq: Fixed-point fractional library routines. ! (line 1372) * __satfractutaha: Fixed-point fractional library routines. ! (line 1374) * __satfractutahq: Fixed-point fractional library routines. ! (line 1369) * __satfractutaqq: Fixed-point fractional library routines. ! (line 1367) * __satfractutasa: Fixed-point fractional library routines. ! (line 1376) * __satfractutasq: Fixed-point fractional library routines. ! (line 1370) * __satfractutata: Fixed-point fractional library routines. ! (line 1379) * __satfractutauda2: Fixed-point fractional library routines. ! (line 1393) * __satfractutaudq: Fixed-point fractional library routines. ! (line 1387) * __satfractutauha2: Fixed-point fractional library routines. ! (line 1389) * __satfractutauhq: Fixed-point fractional library routines. ! (line 1383) * __satfractutauqq: Fixed-point fractional library routines. ! (line 1381) * __satfractutausa2: Fixed-point fractional library routines. ! (line 1391) * __satfractutausq: Fixed-point fractional library routines. ! (line 1385) * __splitstack_find: Miscellaneous routines. (line 15) * __ssaddda3: Fixed-point fractional library routines. ! (line 66) * __ssadddq3: Fixed-point fractional library routines. ! (line 61) * __ssaddha3: Fixed-point fractional library routines. ! (line 63) * __ssaddhq3: Fixed-point fractional library routines. ! (line 59) * __ssaddqq3: Fixed-point fractional library routines. ! (line 57) * __ssaddsa3: Fixed-point fractional library routines. ! (line 65) * __ssaddsq3: Fixed-point fractional library routines. ! (line 60) * __ssaddta3: Fixed-point fractional library routines. ! (line 67) * __ssashlda3: Fixed-point fractional library routines. ! (line 401) * __ssashldq3: Fixed-point fractional library routines. ! (line 397) * __ssashlha3: Fixed-point fractional library routines. ! (line 399) * __ssashlhq3: Fixed-point fractional library routines. ! (line 395) * __ssashlsa3: Fixed-point fractional library routines. ! (line 400) * __ssashlsq3: Fixed-point fractional library routines. ! (line 396) * __ssashlta3: Fixed-point fractional library routines. ! (line 402) * __ssdivda3: Fixed-point fractional library routines. ! (line 260) * __ssdivdq3: Fixed-point fractional library routines. ! (line 255) * __ssdivha3: Fixed-point fractional library routines. ! (line 257) * __ssdivhq3: Fixed-point fractional library routines. ! (line 253) * __ssdivqq3: Fixed-point fractional library routines. ! (line 251) * __ssdivsa3: Fixed-point fractional library routines. ! (line 259) * __ssdivsq3: Fixed-point fractional library routines. ! (line 254) * __ssdivta3: Fixed-point fractional library routines. ! (line 261) * __ssmulda3: Fixed-point fractional library routines. ! (line 192) * __ssmuldq3: Fixed-point fractional library routines. ! (line 187) * __ssmulha3: Fixed-point fractional library routines. ! (line 189) * __ssmulhq3: Fixed-point fractional library routines. ! (line 185) * __ssmulqq3: Fixed-point fractional library routines. ! (line 183) * __ssmulsa3: Fixed-point fractional library routines. ! (line 191) * __ssmulsq3: Fixed-point fractional library routines. ! (line 186) * __ssmulta3: Fixed-point fractional library routines. ! (line 193) * __ssnegda2: Fixed-point fractional library routines. ! (line 315) * __ssnegdq2: Fixed-point fractional library routines. ! (line 312) * __ssnegha2: Fixed-point fractional library routines. ! (line 313) * __ssneghq2: Fixed-point fractional library routines. ! (line 310) * __ssnegqq2: Fixed-point fractional library routines. ! (line 309) * __ssnegsa2: Fixed-point fractional library routines. ! (line 314) * __ssnegsq2: Fixed-point fractional library routines. ! (line 311) * __ssnegta2: Fixed-point fractional library routines. ! (line 316) * __sssubda3: Fixed-point fractional library routines. ! (line 128) * __sssubdq3: Fixed-point fractional library routines. ! (line 123) * __sssubha3: Fixed-point fractional library routines. ! (line 125) * __sssubhq3: Fixed-point fractional library routines. ! (line 121) * __sssubqq3: Fixed-point fractional library routines. ! (line 119) * __sssubsa3: Fixed-point fractional library routines. ! (line 127) * __sssubsq3: Fixed-point fractional library routines. ! (line 122) * __sssubta3: Fixed-point fractional library routines. ! (line 129) * __subda3: Fixed-point fractional library routines. ! (line 106) * __subdf3: Soft float library routines. (line 30) * __subdq3: Fixed-point fractional library routines. ! (line 93) * __subha3: Fixed-point fractional library routines. ! (line 103) * __subhq3: Fixed-point fractional library routines. ! (line 91) * __subqq3: Fixed-point fractional library routines. ! (line 89) * __subsa3: Fixed-point fractional library routines. ! (line 105) * __subsf3: Soft float library routines. (line 29) * __subsq3: Fixed-point fractional library routines. ! (line 92) * __subta3: Fixed-point fractional library routines. ! (line 107) * __subtf3: Soft float library routines. (line 31) * __subuda3: Fixed-point fractional library routines. ! (line 113) * __subudq3: Fixed-point fractional library routines. ! (line 101) * __subuha3: Fixed-point fractional library routines. ! (line 109) * __subuhq3: Fixed-point fractional library routines. ! (line 97) * __subuqq3: Fixed-point fractional library routines. ! (line 95) * __subusa3: Fixed-point fractional library routines. ! (line 111) * __subusq3: Fixed-point fractional library routines. ! (line 99) * __subuta3: Fixed-point fractional library routines. ! (line 115) * __subvdi3: Integer library routines. (line 122) * __subvsi3: Integer library routines. *************** Concept Index *** 52074,52094 **** * __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. --- 52082,52102 ---- * __udivti3: Integer library routines. (line 54) * __udivuda3: Fixed-point fractional library routines. ! (line 244) * __udivudq3: Fixed-point fractional library routines. ! (line 238) * __udivuha3: Fixed-point fractional library routines. ! (line 240) * __udivuhq3: Fixed-point fractional library routines. ! (line 234) * __udivuqq3: Fixed-point fractional library routines. ! (line 232) * __udivusa3: Fixed-point fractional library routines. ! (line 242) * __udivusq3: Fixed-point fractional library routines. ! (line 236) * __udivuta3: Fixed-point fractional library routines. ! (line 246) * __umoddi3: Integer library routines. (line 69) * __umodsi3: Integer library routines. *************** Concept Index *** 52102,52202 **** * __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) --- 52110,52210 ---- * __unordtf2: Soft float library routines. (line 173) * __usadduda3: Fixed-point fractional library routines. ! (line 83) * __usaddudq3: Fixed-point fractional library routines. ! (line 77) * __usadduha3: Fixed-point fractional library routines. ! (line 79) * __usadduhq3: Fixed-point fractional library routines. ! (line 73) * __usadduqq3: Fixed-point fractional library routines. ! (line 71) * __usaddusa3: Fixed-point fractional library routines. ! (line 81) * __usaddusq3: Fixed-point fractional library routines. ! (line 75) * __usadduta3: Fixed-point fractional library routines. ! (line 85) * __usashluda3: Fixed-point fractional library routines. ! (line 419) * __usashludq3: Fixed-point fractional library routines. ! (line 413) * __usashluha3: Fixed-point fractional library routines. ! (line 415) * __usashluhq3: Fixed-point fractional library routines. ! (line 409) * __usashluqq3: Fixed-point fractional library routines. ! (line 407) * __usashlusa3: Fixed-point fractional library routines. ! (line 417) * __usashlusq3: Fixed-point fractional library routines. ! (line 411) * __usashluta3: Fixed-point fractional library routines. ! (line 421) * __usdivuda3: Fixed-point fractional library routines. ! (line 278) * __usdivudq3: Fixed-point fractional library routines. ! (line 272) * __usdivuha3: Fixed-point fractional library routines. ! (line 274) * __usdivuhq3: Fixed-point fractional library routines. ! (line 268) * __usdivuqq3: Fixed-point fractional library routines. ! (line 266) * __usdivusa3: Fixed-point fractional library routines. ! (line 276) * __usdivusq3: Fixed-point fractional library routines. ! (line 270) * __usdivuta3: Fixed-point fractional library routines. ! (line 280) * __usmuluda3: Fixed-point fractional library routines. ! (line 210) * __usmuludq3: Fixed-point fractional library routines. ! (line 204) * __usmuluha3: Fixed-point fractional library routines. ! (line 206) * __usmuluhq3: Fixed-point fractional library routines. ! (line 200) * __usmuluqq3: Fixed-point fractional library routines. ! (line 198) * __usmulusa3: Fixed-point fractional library routines. ! (line 208) * __usmulusq3: Fixed-point fractional library routines. ! (line 202) * __usmuluta3: Fixed-point fractional library routines. ! (line 212) * __usneguda2: Fixed-point fractional library routines. ! (line 329) * __usnegudq2: Fixed-point fractional library routines. ! (line 324) * __usneguha2: Fixed-point fractional library routines. ! (line 326) * __usneguhq2: Fixed-point fractional library routines. ! (line 321) * __usneguqq2: Fixed-point fractional library routines. ! (line 319) * __usnegusa2: Fixed-point fractional library routines. ! (line 328) * __usnegusq2: Fixed-point fractional library routines. ! (line 322) * __usneguta2: Fixed-point fractional library routines. ! (line 331) * __ussubuda3: Fixed-point fractional library routines. ! (line 146) * __ussubudq3: Fixed-point fractional library routines. ! (line 140) * __ussubuha3: Fixed-point fractional library routines. ! (line 142) * __ussubuhq3: Fixed-point fractional library routines. ! (line 136) * __ussubuqq3: Fixed-point fractional library routines. ! (line 134) * __ussubusa3: Fixed-point fractional library routines. ! (line 144) * __ussubusq3: Fixed-point fractional library routines. ! (line 138) * __ussubuta3: Fixed-point fractional library routines. ! (line 148) * abort: Portability. (line 20) * abs: Arithmetic. (line 200) * abs and attributes: Expressions. (line 83) *************** Concept Index *** 52367,52373 **** * AS_NEEDS_DASH_FOR_PIPED_INPUT: Driver. (line 88) * atan2M3 instruction pattern: Standard Names. (line 1061) * atanM2 instruction pattern: Standard Names. (line 972) ! * atomic: GTY Options. (line 197) * atomic_addMODE instruction pattern: Standard Names. (line 2380) * atomic_add_fetchMODE instruction pattern: Standard Names. (line 2409) * atomic_andMODE instruction pattern: Standard Names. (line 2380) --- 52375,52381 ---- * AS_NEEDS_DASH_FOR_PIPED_INPUT: Driver. (line 88) * atan2M3 instruction pattern: Standard Names. (line 1061) * atanM2 instruction pattern: Standard Names. (line 972) ! * atomic: GTY Options. (line 196) * atomic_addMODE instruction pattern: Standard Names. (line 2380) * atomic_add_fetchMODE instruction pattern: Standard Names. (line 2409) * atomic_andMODE instruction pattern: Standard Names. (line 2380) *************** Concept Index *** 54126,54132 **** * lceilMN2: Standard Names. (line 1137) * LCSSA: LCSSA. (line 6) * LDD_SUFFIX: Macros for Initialization. ! (line 121) * ldexpM3 instruction pattern: Standard Names. (line 922) * LD_FINI_SWITCH: Macros for Initialization. (line 28) --- 54134,54140 ---- * lceilMN2: Standard Names. (line 1137) * LCSSA: LCSSA. (line 6) * LDD_SUFFIX: Macros for Initialization. ! (line 129) * ldexpM3 instruction pattern: Standard Names. (line 922) * LD_FINI_SWITCH: Macros for Initialization. (line 28) *************** Concept Index *** 54444,54450 **** (line 6) * nil: RTL Objects. (line 73) * NM_FLAGS: Macros for Initialization. ! (line 110) * nondeterministic finite state automaton: Processor pipeline description. (line 304) * nonimmediate_operand: Machine-Independent Predicates. --- 54452,54458 ---- (line 6) * nil: RTL Objects. (line 73) * NM_FLAGS: Macros for Initialization. ! (line 118) * nondeterministic finite state automaton: Processor pipeline description. (line 304) * nonimmediate_operand: Machine-Independent Predicates. *************** Concept Index *** 54519,54525 **** * OBJC_GEN_METHOD_LABEL: Label Output. (line 482) * OBJC_JBLEN: Misc. (line 1042) * OBJECT_FORMAT_COFF: Macros for Initialization. ! (line 96) * offsettable address: Simple Constraints. (line 23) * OFFSET_TYPE: Types. (line 6) * OImode: Machine Modes. (line 51) --- 54527,54533 ---- * OBJC_GEN_METHOD_LABEL: Label Output. (line 482) * OBJC_JBLEN: Misc. (line 1042) * OBJECT_FORMAT_COFF: Macros for Initialization. ! (line 104) * offsettable address: Simple Constraints. (line 23) * OFFSET_TYPE: Types. (line 6) * OImode: Machine Modes. (line 51) *************** Concept Index *** 54608,54614 **** * PARM_BOUNDARY: Storage Layout. (line 150) * PARM_DECL: Declarations. (line 6) * PARSE_LDD_OUTPUT: Macros for Initialization. ! (line 125) * pass dumps: Passes. (line 6) * passes and files of the compiler: Passes. (line 6) * passing arguments: Interface. (line 36) --- 54616,54622 ---- * PARM_BOUNDARY: Storage Layout. (line 150) * PARM_DECL: Declarations. (line 6) * PARSE_LDD_OUTPUT: Macros for Initialization. ! (line 133) * pass dumps: Passes. (line 6) * passes and files of the compiler: Passes. (line 6) * passing arguments: Interface. (line 36) *************** Concept Index *** 54784,54790 **** (line 6) * REAL_LIBGCC_SPEC: Driver. (line 124) * REAL_NM_FILE_NAME: Macros for Initialization. ! (line 105) * REAL_TYPE: Types. (line 6) * REAL_VALUE_ABS: Floating Point. (line 58) * REAL_VALUE_ATOF: Floating Point. (line 39) --- 54792,54798 ---- (line 6) * REAL_LIBGCC_SPEC: Driver. (line 124) * REAL_NM_FILE_NAME: Macros for Initialization. ! (line 113) * REAL_TYPE: Types. (line 6) * REAL_VALUE_ABS: Floating Point. (line 58) * REAL_VALUE_ATOF: Floating Point. (line 39) *************** Concept Index *** 55075,55081 **** * shift: Arithmetic. (line 173) * SHIFT_COUNT_TRUNCATED: Misc. (line 134) * SHLIB_SUFFIX: Macros for Initialization. ! (line 133) * SHORT_ACCUM_TYPE_SIZE: Type Layout. (line 82) * SHORT_FRACT_TYPE_SIZE: Type Layout. (line 62) * SHORT_IMMEDIATES_SIGN_EXTEND: Misc. (line 108) --- 55083,55089 ---- * shift: Arithmetic. (line 173) * SHIFT_COUNT_TRUNCATED: Misc. (line 134) * SHLIB_SUFFIX: Macros for Initialization. ! (line 141) * SHORT_ACCUM_TYPE_SIZE: Type Layout. (line 82) * SHORT_FRACT_TYPE_SIZE: Type Layout. (line 62) * SHORT_IMMEDIATES_SIGN_EXTEND: Misc. (line 108) *************** Concept Index *** 55119,55125 **** (line 6) * source code, location information: Guidelines for Diagnostics. (line 159) ! * special: GTY Options. (line 238) * special predicates: Predicates. (line 31) * SPECS: Target Fragment. (line 194) * speculation_barrier instruction pattern: Standard Names. (line 2178) --- 55127,55133 ---- (line 6) * source code, location information: Guidelines for Diagnostics. (line 159) ! * special: GTY Options. (line 237) * special predicates: Predicates. (line 31) * SPECS: Target Fragment. (line 194) * speculation_barrier instruction pattern: Standard Names. (line 2178) *************** Concept Index *** 55377,55387 **** * TARGET_ASM_CLOSE_PAREN: Data Output. (line 139) * TARGET_ASM_CODE_END: File Framework. (line 57) * TARGET_ASM_CONSTRUCTOR: Macros for Initialization. ! (line 68) * TARGET_ASM_DECLARE_CONSTANT_NAME: Label Output. (line 177) * TARGET_ASM_DECL_END: Data Output. (line 44) * TARGET_ASM_DESTRUCTOR: Macros for Initialization. ! (line 82) * TARGET_ASM_ELF_FLAGS_NUMERIC: File Framework. (line 120) * TARGET_ASM_EMIT_EXCEPT_PERSONALITY: Dispatch Tables. (line 89) * TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL: Dispatch Tables. (line 82) --- 55385,55395 ---- * TARGET_ASM_CLOSE_PAREN: Data Output. (line 139) * TARGET_ASM_CODE_END: File Framework. (line 57) * TARGET_ASM_CONSTRUCTOR: Macros for Initialization. ! (line 76) * TARGET_ASM_DECLARE_CONSTANT_NAME: Label Output. (line 177) * TARGET_ASM_DECL_END: Data Output. (line 44) * TARGET_ASM_DESTRUCTOR: Macros for Initialization. ! (line 90) * TARGET_ASM_ELF_FLAGS_NUMERIC: File Framework. (line 120) * TARGET_ASM_EMIT_EXCEPT_PERSONALITY: Dispatch Tables. (line 89) * TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL: Dispatch Tables. (line 82) *************** Concept Index *** 55521,55526 **** --- 55529,55536 ---- * TARGET_DLLIMPORT_DECL_ATTRIBUTES: Target Attributes. (line 55) * TARGET_DOLOOP_COST_FOR_ADDRESS: Misc. (line 746) * TARGET_DOLOOP_COST_FOR_GENERIC: Misc. (line 735) + * TARGET_DTORS_FROM_CXA_ATEXIT: Macros for Initialization. + (line 68) * TARGET_DWARF_CALLING_CONVENTION: DWARF. (line 12) * TARGET_DWARF_FRAME_REG_MODE: Exception Region Output. (line 113) *************** Concept Index *** 56200,56206 **** * 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) --- 56210,56216 ---- * use: Side Effects. (line 168) * used: Flags. (line 325) * used, in symbol_ref: Flags. (line 211) ! * user: GTY Options. (line 244) * user experience guidelines: User Experience Guidelines. (line 6) * user gc: User GC. (line 6) *************** Concept Index *** 56432,56873 ****  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: Selectors217436 ! Node: Effective-Target Keywords218792 ! Ref: arm_fp_ok230743 ! Ref: arm_fp_dp_ok230910 ! Ref: arm_neon_ok232022 ! Ref: arm_neon_ok_no_float_abi232191 ! Ref: arm_neonv2_ok232358 ! Ref: arm_fp16_ok232525 ! Ref: arm_neon_fp16_ok232867 ! Ref: arm_vfp3_ok233799 ! Ref: arm_arch_v8a_hard_ok233942 ! Ref: arm_v8_1a_neon_ok234692 ! Ref: arm_v8_2a_fp16_scalar_ok235120 ! Ref: arm_v8_2a_fp16_neon_ok235571 ! Ref: arm_v8_2a_dotprod_neon_ok236046 ! Ref: arm_fp16fml_neon_ok236466 ! Ref: arm_coproc1_ok238966 ! Ref: arm_coproc2_ok239092 ! Ref: arm_coproc3_ok239320 ! Ref: arm_simd32_ok239687 ! Ref: arm_qbit_ok239865 ! Ref: arm_softfp_ok240057 ! Ref: arm_hard_ok240130 ! Ref: stack_size_et252038 ! Node: Add Options254431 ! Ref: arm_fp16_ieee255669 ! Ref: arm_fp16_alternative255924 ! Ref: stack_size_ao258319 ! Node: Require Support258681 ! Node: Final Actions261583 ! Node: Ada Tests270423 ! Node: C Tests271586 ! Node: LTO Testing275958 ! Node: gcov Testing277601 ! Node: profopt Testing280571 ! Node: compat Testing282286 ! Node: Torture Tests286526 ! Node: GIMPLE Tests288160 ! Node: RTL Tests289402 ! Node: Options290708 ! Node: Option file format291149 ! Node: Option properties298138 ! Node: Passes314301 ! Node: Parsing pass315174 ! Node: Gimplification pass318702 ! Node: Pass manager320535 ! Node: IPA passes322376 ! Node: Small IPA passes323269 ! Node: Regular IPA passes326706 ! Node: Late IPA passes331768 ! Node: Tree SSA passes332727 ! Node: RTL passes354267 ! Node: Optimization info366531 ! Node: Dump setup367350 ! Node: Optimization groups368479 ! Node: Dump files and streams369458 ! Node: Dump output verbosity370656 ! Node: Dump types371712 ! Node: Dump examples374054 ! Node: poly_int375535 ! Node: Overview of poly_int377015 ! Node: Consequences of using poly_int379619 ! Node: Comparisons involving poly_int381254 ! Node: Comparison functions for poly_int382892 ! Node: Properties of the poly_int comparisons384099 ! Node: Comparing potentially-unordered poly_ints386541 ! Node: Comparing ordered poly_ints387452 ! Node: Checking for a poly_int marker value389476 ! Node: Range checks on poly_ints390325 ! Node: Sorting poly_ints392979 ! Node: Arithmetic on poly_ints393752 ! Node: Using poly_int with C++ arithmetic operators394553 ! Node: wi arithmetic on poly_ints396084 ! Node: Division of poly_ints396936 ! Node: Other poly_int arithmetic398443 ! Node: Alignment of poly_ints399849 ! Node: Computing bounds on poly_ints403126 ! Node: Converting poly_ints404515 ! Node: Miscellaneous poly_int routines408062 ! Node: Guidelines for using poly_int408702 ! Node: GENERIC413634 ! Node: Deficiencies415456 ! Node: Tree overview415697 ! Node: Macros and Functions419821 ! Node: Identifiers420646 ! Node: Containers422255 ! Node: Types423412 ! Node: Declarations435486 ! Node: Working with declarations435981 ! Node: Internal structure441585 ! Node: Current structure hierarchy441969 ! Node: Adding new DECL node types444062 ! Node: Attributes448346 ! Node: Expression trees449590 ! Node: Constant expressions451344 ! Node: Storage References457436 ! Node: Unary and Binary Expressions460955 ! Node: Vectors481857 ! Node: Statements488761 ! Node: Basic Statements489293 ! Node: Blocks493920 ! Node: Statement Sequences495621 ! Node: Empty Statements495954 ! Node: Jumps496528 ! Node: Cleanups497181 ! Node: OpenMP499222 ! Node: OpenACC505067 ! Node: Functions506184 ! Node: Function Basics506655 ! Node: Function Properties510339 ! Node: Language-dependent trees513120 ! Node: C and C++ Trees514007 ! Node: Types for C++516892 ! Node: Namespaces521862 ! Node: Classes524968 ! Node: Functions for C++529876 ! Node: Statements for C++536127 ! Node: C++ Expressions544180 ! Node: GIMPLE545685 ! Node: Tuple representation549350 ! Node: Class hierarchy of GIMPLE statements556310 ! Node: GIMPLE instruction set561298 ! Node: GIMPLE Exception Handling562930 ! Node: Temporaries564842 ! Ref: Temporaries-Footnote-1566160 ! Node: Operands566225 ! Node: Compound Expressions566986 ! Node: Compound Lvalues567220 ! Node: Conditional Expressions567982 ! Node: Logical Operators568641 ! Node: Manipulating GIMPLE statements575988 ! Node: Tuple specific accessors581924 ! Node: GIMPLE_ASM582703 ! Node: GIMPLE_ASSIGN585086 ! Node: GIMPLE_BIND589790 ! Node: GIMPLE_CALL591604 ! Node: GIMPLE_CATCH595747 ! Node: GIMPLE_COND596897 ! Node: GIMPLE_DEBUG599692 ! Node: GIMPLE_EH_FILTER604290 ! Node: GIMPLE_LABEL605853 ! Node: GIMPLE_GOTO606466 ! Node: GIMPLE_NOP606989 ! Node: GIMPLE_OMP_ATOMIC_LOAD607351 ! Node: GIMPLE_OMP_ATOMIC_STORE608347 ! Node: GIMPLE_OMP_CONTINUE609046 ! Node: GIMPLE_OMP_CRITICAL610525 ! Node: GIMPLE_OMP_FOR611519 ! Node: GIMPLE_OMP_MASTER614935 ! Node: GIMPLE_OMP_ORDERED615313 ! Node: GIMPLE_OMP_PARALLEL615707 ! Node: GIMPLE_OMP_RETURN618476 ! Node: GIMPLE_OMP_SECTION619121 ! Node: GIMPLE_OMP_SECTIONS619781 ! Node: GIMPLE_OMP_SINGLE621391 ! Node: GIMPLE_PHI622337 ! Node: GIMPLE_RESX623616 ! Node: GIMPLE_RETURN624335 ! Node: GIMPLE_SWITCH624909 ! Node: GIMPLE_TRY626784 ! Node: GIMPLE_WITH_CLEANUP_EXPR628556 ! Node: GIMPLE sequences629435 ! Node: Sequence iterators632641 ! Node: Adding a new GIMPLE statement code641098 ! Node: Statement and operand traversals642443 ! Node: Tree SSA645035 ! Node: Annotations646823 ! Node: SSA Operands647228 ! Node: SSA661307 ! Node: Alias analysis671013 ! Node: Memory model674787 ! Node: RTL676146 ! Node: RTL Objects678334 ! Node: RTL Classes682218 ! Node: Accessors687517 ! Node: Special Accessors689690 ! Node: Flags695477 ! Node: Machine Modes710740 ! Node: Constants728146 ! Node: Regs and Memory739535 ! Node: Arithmetic758787 ! Node: Comparisons768962 ! Node: Bit-Fields773254 ! Node: Vector Operations774805 ! Node: Conversions776909 ! Node: RTL Declarations781407 ! Node: Side Effects782251 ! Node: Incdec799260 ! Node: Assembler802596 ! Node: Debug Information804141 ! Node: Insns806068 ! Node: Calls833924 ! Node: Sharing836517 ! Node: Reading RTL839712 ! Node: Control Flow840703 ! Node: Basic Blocks842471 ! Node: Edges847925 ! Node: Profile information856544 ! Node: Maintaining the CFG861228 ! Node: Liveness information866996 ! Node: Loop Analysis and Representation869122 ! Node: Loop representation870158 ! Node: Loop querying877524 ! Node: Loop manipulation880345 ! Node: LCSSA882681 ! Node: Scalar evolutions884750 ! Node: loop-iv887994 ! Node: Number of iterations889916 ! Node: Dependency analysis893997 ! Node: Machine Desc900348 ! Node: Overview902911 ! Node: Patterns904951 ! Node: Example909918 ! Node: RTL Template911379 ! Node: Output Template922035 ! Node: Output Statement926216 ! Node: Predicates930555 ! Node: Machine-Independent Predicates933473 ! Node: Defining Predicates938417 ! Node: Constraints944380 ! Node: Simple Constraints945849 ! Node: Multi-Alternative958689 ! Node: Class Preferences961898 ! Node: Modifiers962790 ! Node: Machine Constraints967523 ! Node: Disable Insn Alternatives1029627 ! Node: Define Constraints1033119 ! Node: C Constraint Interface1040513 ! Node: Standard Names1043640 ! Ref: shift patterns1079884 ! Ref: prologue instruction pattern1134664 ! Ref: window_save instruction pattern1135157 ! Ref: epilogue instruction pattern1135434 ! Node: Pattern Ordering1157410 ! Node: Dependent Patterns1158646 ! Node: Jump Patterns1160266 ! Ref: Jump Patterns-Footnote-11162411 ! Node: Looping Patterns1162459 ! Node: Insn Canonicalizations1168098 ! Node: Expander Definitions1173305 ! Node: Insn Splitting1181519 ! Node: Including Patterns1196549 ! Node: Peephole Definitions1198333 ! Node: define_peephole1199586 ! Node: define_peephole21205916 ! Node: Insn Attributes1210005 ! Node: Defining Attributes1211187 ! Ref: define_enum_attr1214679 ! Node: Expressions1215715 ! Node: Tagging Insns1222465 ! Node: Attr Example1226818 ! Node: Insn Lengths1229191 ! Node: Constant Attributes1232599 ! Node: Mnemonic Attribute1233775 ! Node: Delay Slots1235294 ! Node: Processor pipeline description1238517 ! Ref: Processor pipeline description-Footnote-11257329 ! Node: Conditional Execution1257653 ! Node: Define Subst1261136 ! Node: Define Subst Example1263171 ! Node: Define Subst Pattern Matching1266166 ! Node: Define Subst Output Template1267392 ! Node: Constant Definitions1269715 ! Ref: define_enum1273497 ! Node: Iterators1273985 ! Node: Mode Iterators1274630 ! Node: Defining Mode Iterators1275608 ! Node: Substitutions1277102 ! Node: Examples1279344 ! Node: Code Iterators1280792 ! Node: Int Iterators1283922 ! Node: Subst Iterators1286368 ! Node: Parameterized Names1288088 ! Node: Target Macros1292106 ! Node: Target Structure1295169 ! Node: Driver1297661 ! Node: Run-time Target1316631 ! Node: Per-Function Data1326164 ! Node: Storage Layout1328928 ! Node: Type Layout1356427 ! Node: Registers1369768 ! Node: Register Basics1370742 ! Node: Allocation Order1378304 ! Node: Values in Registers1380788 ! Node: Leaf Functions1388264 ! Node: Stack Registers1391123 ! Node: Register Classes1392395 ! Node: Stack and Calling1427177 ! Node: Frame Layout1427783 ! Node: Exception Handling1439618 ! Node: Stack Checking1445828 ! Node: Frame Registers1451453 ! Node: Elimination1460004 ! Node: Stack Arguments1463860 ! Node: Register Arguments1471056 ! Node: Scalar Return1495917 ! Node: Aggregate Return1502373 ! Node: Caller Saves1506927 ! Node: Function Entry1507669 ! Node: Profiling1519221 ! Node: Tail Calls1521331 ! Node: Shrink-wrapping separate components1523241 ! Node: Stack Smashing Protection1526282 ! Node: Miscellaneous Register Hooks1528771 ! Node: Varargs1529636 ! Node: Trampolines1539036 ! Node: Library Calls1547859 ! Node: Addressing Modes1552749 ! Node: Anchored Addresses1581756 ! Node: Condition Code1584399 ! Node: CC0 Condition Codes1586726 ! Node: MODE_CC Condition Codes1589972 ! Node: Costs1596798 ! Node: Scheduling1618169 ! Node: Sections1642091 ! Node: PIC1658310 ! Node: Assembler Format1660369 ! Node: File Framework1661507 ! Ref: TARGET_HAVE_SWITCHABLE_BSS_SECTIONS1669106 ! Node: Data Output1672376 ! Node: Uninitialized Data1680664 ! Node: Label Output1685678 ! Node: Initialization1710289 ! Node: Macros for Initialization1716250 ! Node: Instruction Output1722969 ! Node: Dispatch Tables1733598 ! Node: Exception Region Output1739059 ! Node: Alignment Output1746141 ! Node: Debugging Info1749828 ! Node: All Debuggers1750482 ! Node: DBX Options1753254 ! Node: DBX Hooks1758692 ! Node: File Names and DBX1760001 ! Node: DWARF1762105 ! Node: VMS Debug1767920 ! Node: Floating Point1768499 ! Node: Mode Switching1771254 ! Node: Target Attributes1775691 ! Node: Emulated TLS1785107 ! Node: MIPS Coprocessors1788497 ! Node: PCH Target1789656 ! Node: C++ ABI1791498 ! Node: D Language and ABI1796290 ! Node: Named Address Spaces1797335 ! Node: Misc1803262 ! Ref: TARGET_SHIFT_TRUNCATION_MASK1811133 ! Node: Host Config1866467 ! Node: Host Common1867536 ! Node: Filesystem1869910 ! Node: Host Misc1874025 ! Node: Fragments1876474 ! Node: Target Fragment1877669 ! Node: Host Fragment1888481 ! Node: Collect21888721 ! Node: Header Dirs1891357 ! Node: Type Information1892780 ! Node: GTY Options1896056 ! Node: Inheritance and GTY1907314 ! Ref: Inheritance and GTY-Footnote-11908879 ! Node: User GC1909149 ! Node: GGC Roots1912888 ! Node: Files1913601 ! Node: Invoking the garbage collector1916308 ! Node: Troubleshooting1917813 ! Node: Plugins1918888 ! Node: Plugins loading1920017 ! Node: Plugin API1921116 ! Node: Plugins pass1928842 ! Node: Plugins GC1930813 ! Node: Plugins description1932530 ! Node: Plugins attr1933066 ! Node: Plugins recording1935346 ! Node: Plugins gate1936196 ! Node: Plugins tracking1936787 ! Node: Plugins building1937375 ! Node: LTO1940876 ! Node: LTO Overview1941748 ! Node: LTO object file layout1947575 ! Node: IPA1952205 ! Node: WHOPR1961255 ! Node: Internal flags1965815 ! Node: Match and Simplify1967226 ! Node: GIMPLE API1968188 ! Node: The Language1970983 ! Node: Static Analyzer1982958 ! Node: Analyzer Internals1983223 ! Node: Debugging the Analyzer1998867 ! Node: User Experience Guidelines2001478 ! Node: Guidelines for Diagnostics2002414 ! Ref: input_location_example2009475 ! Node: Guidelines for Options2019158 ! Node: Funding2019335 ! Node: GNU Project2021842 ! Node: Copying2022491 ! Node: GNU Free Documentation License2060002 ! Node: Contributors2085123 ! Node: Option Index2126099 ! Node: Concept Index2126976  End Tag Table --- 56442,56888 ----  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: Selectors217448 ! Node: Effective-Target Keywords218804 ! Ref: arm_fp_ok230755 ! Ref: arm_fp_dp_ok230922 ! Ref: arm_neon_ok232034 ! Ref: arm_neon_ok_no_float_abi232203 ! Ref: arm_neonv2_ok232370 ! Ref: arm_fp16_ok232537 ! Ref: arm_neon_fp16_ok232879 ! Ref: arm_vfp3_ok233811 ! Ref: arm_arch_v8a_hard_ok233954 ! Ref: arm_v8_1a_neon_ok234704 ! Ref: arm_v8_2a_fp16_scalar_ok235132 ! Ref: arm_v8_2a_fp16_neon_ok235583 ! Ref: arm_v8_2a_dotprod_neon_ok236058 ! Ref: arm_fp16fml_neon_ok236478 ! Ref: arm_coproc1_ok238978 ! Ref: arm_coproc2_ok239104 ! Ref: arm_coproc3_ok239332 ! Ref: arm_simd32_ok239699 ! Ref: arm_qbit_ok239877 ! Ref: arm_softfp_ok240069 ! Ref: arm_hard_ok240142 ! Ref: stack_size_et252050 ! Node: Add Options254443 ! Ref: arm_fp16_ieee255681 ! Ref: arm_fp16_alternative255936 ! Ref: stack_size_ao258331 ! Node: Require Support258693 ! Node: Final Actions261595 ! Node: Ada Tests270435 ! Node: C Tests271598 ! Node: LTO Testing275970 ! Node: gcov Testing277613 ! Node: profopt Testing280583 ! Node: compat Testing282298 ! Node: Torture Tests286538 ! Node: GIMPLE Tests288172 ! Node: RTL Tests289414 ! Node: Options290720 ! Node: Option file format291161 ! Node: Option properties298150 ! Node: Passes314313 ! Node: Parsing pass315186 ! Node: Gimplification pass318714 ! Node: Pass manager320547 ! Node: IPA passes322388 ! Node: Small IPA passes323281 ! Node: Regular IPA passes326718 ! Node: Late IPA passes331780 ! Node: Tree SSA passes332739 ! Node: RTL passes354279 ! Node: Optimization info366543 ! Node: Dump setup367362 ! Node: Optimization groups368491 ! Node: Dump files and streams369470 ! Node: Dump output verbosity370668 ! Node: Dump types371724 ! Node: Dump examples374066 ! Node: poly_int375547 ! Node: Overview of poly_int377027 ! Node: Consequences of using poly_int379631 ! Node: Comparisons involving poly_int381266 ! Node: Comparison functions for poly_int382904 ! Node: Properties of the poly_int comparisons384111 ! Node: Comparing potentially-unordered poly_ints386553 ! Node: Comparing ordered poly_ints387464 ! Node: Checking for a poly_int marker value389488 ! Node: Range checks on poly_ints390337 ! Node: Sorting poly_ints392991 ! Node: Arithmetic on poly_ints393764 ! Node: Using poly_int with C++ arithmetic operators394565 ! Node: wi arithmetic on poly_ints396096 ! Node: Division of poly_ints396948 ! Node: Other poly_int arithmetic398455 ! Node: Alignment of poly_ints399861 ! Node: Computing bounds on poly_ints403138 ! Node: Converting poly_ints404527 ! Node: Miscellaneous poly_int routines408074 ! Node: Guidelines for using poly_int408714 ! Node: GENERIC413646 ! Node: Deficiencies415468 ! Node: Tree overview415709 ! Node: Macros and Functions419833 ! Node: Identifiers420658 ! Node: Containers422267 ! Node: Types423424 ! Node: Declarations435498 ! Node: Working with declarations435993 ! Node: Internal structure441597 ! Node: Current structure hierarchy441981 ! Node: Adding new DECL node types444074 ! Node: Attributes448358 ! Node: Expression trees449602 ! Node: Constant expressions451356 ! Node: Storage References457448 ! Node: Unary and Binary Expressions460967 ! Node: Vectors481869 ! Node: Statements488773 ! Node: Basic Statements489305 ! Node: Blocks493932 ! Node: Statement Sequences495633 ! Node: Empty Statements495966 ! Node: Jumps496540 ! Node: Cleanups497193 ! Node: OpenMP499234 ! Node: OpenACC505079 ! Node: Functions506196 ! Node: Function Basics506667 ! Node: Function Properties510351 ! Node: Language-dependent trees513132 ! Node: C and C++ Trees514019 ! Node: Types for C++516904 ! Node: Namespaces521874 ! Node: Classes524980 ! Node: Functions for C++529888 ! Node: Statements for C++536139 ! Node: C++ Expressions544192 ! Node: GIMPLE545697 ! Node: Tuple representation549362 ! Node: Class hierarchy of GIMPLE statements556322 ! Node: GIMPLE instruction set561310 ! Node: GIMPLE Exception Handling562942 ! Node: Temporaries564854 ! Ref: Temporaries-Footnote-1566172 ! Node: Operands566237 ! Node: Compound Expressions566998 ! Node: Compound Lvalues567232 ! Node: Conditional Expressions567994 ! Node: Logical Operators568653 ! Node: Manipulating GIMPLE statements576000 ! Node: Tuple specific accessors581936 ! Node: GIMPLE_ASM582715 ! Node: GIMPLE_ASSIGN585098 ! Node: GIMPLE_BIND589802 ! Node: GIMPLE_CALL591616 ! Node: GIMPLE_CATCH595757 ! Node: GIMPLE_COND596907 ! Node: GIMPLE_DEBUG599702 ! Node: GIMPLE_EH_FILTER604300 ! Node: GIMPLE_LABEL605863 ! Node: GIMPLE_GOTO606476 ! Node: GIMPLE_NOP606999 ! Node: GIMPLE_OMP_ATOMIC_LOAD607361 ! Node: GIMPLE_OMP_ATOMIC_STORE608357 ! Node: GIMPLE_OMP_CONTINUE609056 ! Node: GIMPLE_OMP_CRITICAL610535 ! Node: GIMPLE_OMP_FOR611529 ! Node: GIMPLE_OMP_MASTER614945 ! Node: GIMPLE_OMP_ORDERED615323 ! Node: GIMPLE_OMP_PARALLEL615717 ! Node: GIMPLE_OMP_RETURN618486 ! Node: GIMPLE_OMP_SECTION619131 ! Node: GIMPLE_OMP_SECTIONS619791 ! Node: GIMPLE_OMP_SINGLE621401 ! Node: GIMPLE_PHI622347 ! Node: GIMPLE_RESX623626 ! Node: GIMPLE_RETURN624345 ! Node: GIMPLE_SWITCH624919 ! Node: GIMPLE_TRY626792 ! Node: GIMPLE_WITH_CLEANUP_EXPR628564 ! Node: GIMPLE sequences629443 ! Node: Sequence iterators632649 ! Node: Adding a new GIMPLE statement code641106 ! Node: Statement and operand traversals642451 ! Node: Tree SSA645043 ! Node: Annotations646831 ! Node: SSA Operands647236 ! Node: SSA661315 ! Node: Alias analysis671021 ! Node: Memory model674795 ! Node: RTL676154 ! Node: RTL Objects678342 ! Node: RTL Classes682226 ! Node: Accessors687525 ! Node: Special Accessors689698 ! Node: Flags695485 ! Node: Machine Modes710748 ! Node: Constants728154 ! Node: Regs and Memory739543 ! Node: Arithmetic758795 ! Node: Comparisons768970 ! Node: Bit-Fields773262 ! Node: Vector Operations774813 ! Node: Conversions776917 ! Node: RTL Declarations781415 ! Node: Side Effects782259 ! Node: Incdec799268 ! Node: Assembler802604 ! Node: Debug Information804149 ! Node: Insns806076 ! Node: Calls833932 ! Node: Sharing836525 ! Node: Reading RTL839720 ! Node: Control Flow840711 ! Node: Basic Blocks842479 ! Node: Edges847933 ! Node: Profile information856552 ! Node: Maintaining the CFG861236 ! Node: Liveness information867004 ! Node: Loop Analysis and Representation869130 ! Node: Loop representation870166 ! Node: Loop querying877532 ! Node: Loop manipulation880353 ! Node: LCSSA882689 ! Node: Scalar evolutions884758 ! Node: loop-iv888002 ! Node: Number of iterations889924 ! Node: Dependency analysis894005 ! Node: Machine Desc900356 ! Node: Overview902919 ! Node: Patterns904959 ! Node: Example909926 ! Node: RTL Template911387 ! Node: Output Template922043 ! Node: Output Statement926224 ! Node: Predicates930563 ! Node: Machine-Independent Predicates933481 ! Node: Defining Predicates938425 ! Node: Constraints944388 ! Node: Simple Constraints945857 ! Node: Multi-Alternative958697 ! Node: Class Preferences961906 ! Node: Modifiers962798 ! Node: Machine Constraints967531 ! Node: Disable Insn Alternatives1029635 ! Node: Define Constraints1033127 ! Node: C Constraint Interface1040521 ! Node: Standard Names1043648 ! Ref: shift patterns1079892 ! Ref: prologue instruction pattern1134672 ! Ref: window_save instruction pattern1135165 ! Ref: epilogue instruction pattern1135442 ! Node: Pattern Ordering1157418 ! Node: Dependent Patterns1158654 ! Node: Jump Patterns1160274 ! Ref: Jump Patterns-Footnote-11162419 ! Node: Looping Patterns1162467 ! Node: Insn Canonicalizations1168106 ! Node: Expander Definitions1173313 ! Node: Insn Splitting1181527 ! Node: Including Patterns1196557 ! Node: Peephole Definitions1198341 ! Node: define_peephole1199594 ! Node: define_peephole21205924 ! Node: Insn Attributes1210013 ! Node: Defining Attributes1211195 ! Ref: define_enum_attr1214687 ! Node: Expressions1215723 ! Node: Tagging Insns1222473 ! Node: Attr Example1226826 ! Node: Insn Lengths1229199 ! Node: Constant Attributes1232607 ! Node: Mnemonic Attribute1233783 ! Node: Delay Slots1235302 ! Node: Processor pipeline description1238525 ! Ref: Processor pipeline description-Footnote-11257337 ! Node: Conditional Execution1257661 ! Node: Define Subst1261144 ! Node: Define Subst Example1263179 ! Node: Define Subst Pattern Matching1266174 ! Node: Define Subst Output Template1267400 ! Node: Constant Definitions1269723 ! Ref: define_enum1273505 ! Node: Iterators1273993 ! Node: Mode Iterators1274638 ! Node: Defining Mode Iterators1275616 ! Node: Substitutions1277110 ! Node: Examples1279352 ! Node: Code Iterators1280800 ! Node: Int Iterators1283930 ! Node: Subst Iterators1286376 ! Node: Parameterized Names1288096 ! Node: Target Macros1292114 ! Node: Target Structure1295177 ! Node: Driver1297669 ! Node: Run-time Target1316639 ! Node: Per-Function Data1326172 ! Node: Storage Layout1328936 ! Node: Type Layout1356435 ! Node: Registers1369776 ! Node: Register Basics1370750 ! Node: Allocation Order1378312 ! Node: Values in Registers1380796 ! Node: Leaf Functions1388272 ! Node: Stack Registers1391131 ! Node: Register Classes1392403 ! Node: Stack and Calling1427185 ! Node: Frame Layout1427791 ! Node: Exception Handling1439626 ! Node: Stack Checking1445836 ! Node: Frame Registers1451461 ! Node: Elimination1460012 ! Node: Stack Arguments1463868 ! Node: Register Arguments1471064 ! Node: Scalar Return1495925 ! Node: Aggregate Return1502381 ! Node: Caller Saves1506935 ! Node: Function Entry1507677 ! Node: Profiling1519229 ! Node: Tail Calls1521339 ! Node: Shrink-wrapping separate components1523249 ! Node: Stack Smashing Protection1526290 ! Node: Miscellaneous Register Hooks1528779 ! Node: Varargs1529644 ! Node: Trampolines1539044 ! Node: Library Calls1547867 ! Node: Addressing Modes1552757 ! Node: Anchored Addresses1581764 ! Node: Condition Code1584407 ! Node: CC0 Condition Codes1586734 ! Node: MODE_CC Condition Codes1589980 ! Node: Costs1596806 ! Node: Scheduling1618177 ! Node: Sections1642099 ! Node: PIC1658318 ! Node: Assembler Format1660377 ! Node: File Framework1661515 ! Ref: TARGET_HAVE_SWITCHABLE_BSS_SECTIONS1669114 ! Node: Data Output1672384 ! Node: Uninitialized Data1680672 ! Node: Label Output1685686 ! Node: Initialization1710297 ! Node: Macros for Initialization1716258 ! Node: Instruction Output1723409 ! Node: Dispatch Tables1734038 ! Node: Exception Region Output1739499 ! Node: Alignment Output1746581 ! Node: Debugging Info1750268 ! Node: All Debuggers1750922 ! Node: DBX Options1753694 ! Node: DBX Hooks1759132 ! Node: File Names and DBX1760441 ! Node: DWARF1762545 ! Node: VMS Debug1768360 ! Node: Floating Point1768939 ! Node: Mode Switching1771694 ! Node: Target Attributes1776131 ! Node: Emulated TLS1785547 ! Node: MIPS Coprocessors1788937 ! Node: PCH Target1790096 ! Node: C++ ABI1791938 ! Node: D Language and ABI1796730 ! Node: Named Address Spaces1797775 ! Node: Misc1803702 ! Ref: TARGET_SHIFT_TRUNCATION_MASK1811573 ! Node: Host Config1866907 ! Node: Host Common1867976 ! Node: Filesystem1870350 ! Node: Host Misc1874465 ! Node: Fragments1876914 ! Node: Target Fragment1878109 ! Node: Host Fragment1888921 ! Node: Collect21889161 ! Node: Header Dirs1891797 ! Node: Type Information1893220 ! Node: GTY Options1896496 ! Node: Inheritance and GTY1907754 ! Ref: Inheritance and GTY-Footnote-11909319 ! Node: User GC1909589 ! Node: GGC Roots1913328 ! Node: Files1914041 ! Node: Invoking the garbage collector1916748 ! Node: Troubleshooting1918253 ! Node: Plugins1919328 ! Node: Plugins loading1920457 ! Node: Plugin API1921556 ! Node: Plugins pass1929282 ! Node: Plugins GC1931253 ! Node: Plugins description1932970 ! Node: Plugins attr1933506 ! Node: Plugins recording1935786 ! Node: Plugins gate1936636 ! Node: Plugins tracking1937227 ! Node: Plugins building1937815 ! Node: LTO1941316 ! Node: LTO Overview1942188 ! Node: LTO object file layout1948015 ! Node: IPA1952645 ! Node: WHOPR1961695 ! Node: Internal flags1966255 ! Node: Match and Simplify1967666 ! Node: GIMPLE API1968628 ! Node: The Language1971423 ! Node: Static Analyzer1983398 ! Node: Analyzer Internals1983663 ! Node: Debugging the Analyzer1999307 ! Node: User Experience Guidelines2001918 ! Node: Guidelines for Diagnostics2002854 ! Ref: input_location_example2009915 ! Node: Guidelines for Options2019598 ! Node: Funding2019775 ! Node: GNU Project2022282 ! Node: Copying2022931 ! Node: GNU Free Documentation License2060442 ! Node: Contributors2085563 ! Node: Option Index2126539 ! Node: Concept Index2127416  End Tag Table + +  + Local Variables: + coding: utf-8 + End: diff -Nrcpad gcc-10.3.0/gcc/doc/gcov-dump.1 gcc-10.4.0/gcc/doc/gcov-dump.1 *** gcc-10.3.0/gcc/doc/gcov-dump.1 Thu Apr 8 11:57:41 2021 --- gcc-10.4.0/gcc/doc/gcov-dump.1 Tue Jun 28 08:56:18 2022 *************** *** 1,4 **** ! .\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== --- 1,4 ---- ! .\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== *************** *** 54,69 **** .\" Avoid warning from groff about undefined register 'F'. .de IX .. ! .if !\nF .nr F 0 ! .if \nF>0 \{\ ! . de IX ! . tm Index:\\$1\t\\n%\t"\\$2" .. ! . if !\nF==2 \{\ ! . nr % 0 ! . nr F 2 . \} .\} .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. --- 54,73 ---- .\" Avoid warning from groff about undefined register 'F'. .de IX .. ! .nr rF 0 ! .if \n(.g .if rF .nr rF 1 ! .if (\n(rF:(\n(.g==0)) \{\ ! . if \nF \{\ ! . de IX ! . tm Index:\\$1\t\\n%\t"\\$2" .. ! . if !\nF==2 \{\ ! . nr % 0 ! . nr F 2 ! . \} . \} .\} + .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. *************** *** 129,135 **** .\" ======================================================================== .\" .IX Title "GCOV-DUMP 1" ! .TH GCOV-DUMP 1 "2021-04-08" "gcc-10.3.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l --- 133,139 ---- .\" ======================================================================== .\" .IX Title "GCOV-DUMP 1" ! .TH GCOV-DUMP 1 "2022-06-28" "gcc-10.4.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l *************** any later version published by the Free *** 189,195 **** 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 --- 193,199 ---- Invariant Sections being \*(L"\s-1GNU\s0 General Public License\*(R" and \*(L"Funding Free Software\*(R", the Front-Cover texts being (a) (see below), and with the Back-Cover Texts being (b) (see below). A copy of the license is ! included in the \fBgfdl\fR\|(7) man page. .PP (a) The \s-1FSF\s0's Front-Cover Text is: .PP diff -Nrcpad gcc-10.3.0/gcc/doc/gcov-tool.1 gcc-10.4.0/gcc/doc/gcov-tool.1 *** gcc-10.3.0/gcc/doc/gcov-tool.1 Thu Apr 8 11:57:41 2021 --- gcc-10.4.0/gcc/doc/gcov-tool.1 Tue Jun 28 08:56:18 2022 *************** *** 1,4 **** ! .\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== --- 1,4 ---- ! .\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== *************** *** 54,69 **** .\" Avoid warning from groff about undefined register 'F'. .de IX .. ! .if !\nF .nr F 0 ! .if \nF>0 \{\ ! . de IX ! . tm Index:\\$1\t\\n%\t"\\$2" .. ! . if !\nF==2 \{\ ! . nr % 0 ! . nr F 2 . \} .\} .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. --- 54,73 ---- .\" Avoid warning from groff about undefined register 'F'. .de IX .. ! .nr rF 0 ! .if \n(.g .if rF .nr rF 1 ! .if (\n(rF:(\n(.g==0)) \{\ ! . if \nF \{\ ! . de IX ! . tm Index:\\$1\t\\n%\t"\\$2" .. ! . if !\nF==2 \{\ ! . nr % 0 ! . nr F 2 ! . \} . \} .\} + .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. *************** *** 129,135 **** .\" ======================================================================== .\" .IX Title "GCOV-TOOL 1" ! .TH GCOV-TOOL 1 "2021-04-08" "gcc-10.3.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l --- 133,139 ---- .\" ======================================================================== .\" .IX Title "GCOV-TOOL 1" ! .TH GCOV-TOOL 1 "2022-06-28" "gcc-10.4.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l *************** Set the verbose mode. *** 340,346 **** .RE .SH "SEE ALSO" .IX Header "SEE ALSO" ! \&\fIgpl\fR\|(7), \fIgfdl\fR\|(7), \fIfsf\-funding\fR\|(7), \fIgcc\fR\|(1), \fIgcov\fR\|(1) and the Info entry for \&\fIgcc\fR. .SH "COPYRIGHT" .IX Header "COPYRIGHT" --- 344,350 ---- .RE .SH "SEE ALSO" .IX Header "SEE ALSO" ! \&\fBgpl\fR\|(7), \fBgfdl\fR\|(7), \fBfsf\-funding\fR\|(7), \fBgcc\fR\|(1), \fBgcov\fR\|(1) and the Info entry for \&\fIgcc\fR. .SH "COPYRIGHT" .IX Header "COPYRIGHT" *************** any later version published by the Free *** 352,358 **** Invariant Sections being \*(L"\s-1GNU\s0 General Public License\*(R" and \*(L"Funding Free Software\*(R", the Front-Cover texts being (a) (see below), and with the Back-Cover Texts being (b) (see below). A copy of the license is ! included in the \fIgfdl\fR\|(7) man page. .PP (a) The \s-1FSF\s0's Front-Cover Text is: .PP --- 356,362 ---- Invariant Sections being \*(L"\s-1GNU\s0 General Public License\*(R" and \*(L"Funding Free Software\*(R", the Front-Cover texts being (a) (see below), and with the Back-Cover Texts being (b) (see below). A copy of the license is ! included in the \fBgfdl\fR\|(7) man page. .PP (a) The \s-1FSF\s0's Front-Cover Text is: .PP diff -Nrcpad gcc-10.3.0/gcc/doc/gcov.1 gcc-10.4.0/gcc/doc/gcov.1 *** gcc-10.3.0/gcc/doc/gcov.1 Thu Apr 8 11:57:41 2021 --- gcc-10.4.0/gcc/doc/gcov.1 Tue Jun 28 08:56:18 2022 *************** *** 1,4 **** ! .\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== --- 1,4 ---- ! .\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== *************** *** 54,69 **** .\" Avoid warning from groff about undefined register 'F'. .de IX .. ! .if !\nF .nr F 0 ! .if \nF>0 \{\ ! . de IX ! . tm Index:\\$1\t\\n%\t"\\$2" .. ! . if !\nF==2 \{\ ! . nr % 0 ! . nr F 2 . \} .\} .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. --- 54,73 ---- .\" Avoid warning from groff about undefined register 'F'. .de IX .. ! .nr rF 0 ! .if \n(.g .if rF .nr rF 1 ! .if (\n(rF:(\n(.g==0)) \{\ ! . if \nF \{\ ! . de IX ! . tm Index:\\$1\t\\n%\t"\\$2" .. ! . if !\nF==2 \{\ ! . nr % 0 ! . nr F 2 ! . \} . \} .\} + .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. *************** *** 129,135 **** .\" ======================================================================== .\" .IX Title "GCOV 1" ! .TH GCOV 1 "2021-04-08" "gcc-10.3.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l --- 133,139 ---- .\" ======================================================================== .\" .IX Title "GCOV 1" ! .TH GCOV 1 "2022-06-28" "gcc-10.4.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l *************** That can help users to find profile clas *** 1011,1017 **** 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\-2020 Free Software Foundation, Inc. --- 1015,1021 ---- 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\-2020 Free Software Foundation, Inc. *************** any later version published by the Free *** 1022,1028 **** 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 --- 1026,1032 ---- Invariant Sections being \*(L"\s-1GNU\s0 General Public License\*(R" and \*(L"Funding Free Software\*(R", the Front-Cover texts being (a) (see below), and with the Back-Cover Texts being (b) (see below). A copy of the license is ! included in the \fBgfdl\fR\|(7) man page. .PP (a) The \s-1FSF\s0's Front-Cover Text is: .PP diff -Nrcpad gcc-10.3.0/gcc/doc/gfdl.7 gcc-10.4.0/gcc/doc/gfdl.7 *** gcc-10.3.0/gcc/doc/gfdl.7 Thu Apr 8 11:57:41 2021 --- gcc-10.4.0/gcc/doc/gfdl.7 Tue Jun 28 08:56:18 2022 *************** *** 1,4 **** ! .\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== --- 1,4 ---- ! .\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== *************** *** 54,69 **** .\" Avoid warning from groff about undefined register 'F'. .de IX .. ! .if !\nF .nr F 0 ! .if \nF>0 \{\ ! . de IX ! . tm Index:\\$1\t\\n%\t"\\$2" .. ! . if !\nF==2 \{\ ! . nr % 0 ! . nr F 2 . \} .\} .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. --- 54,73 ---- .\" Avoid warning from groff about undefined register 'F'. .de IX .. ! .nr rF 0 ! .if \n(.g .if rF .nr rF 1 ! .if (\n(rF:(\n(.g==0)) \{\ ! . if \nF \{\ ! . de IX ! . tm Index:\\$1\t\\n%\t"\\$2" .. ! . if !\nF==2 \{\ ! . nr % 0 ! . nr F 2 ! . \} . \} .\} + .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. *************** *** 129,135 **** .\" ======================================================================== .\" .IX Title "GFDL 7" ! .TH GFDL 7 "2021-04-08" "gcc-10.3.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l --- 133,139 ---- .\" ======================================================================== .\" .IX Title "GFDL 7" ! .TH GFDL 7 "2022-06-28" "gcc-10.4.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l *************** free software license, such as the \s-1G *** 637,643 **** to permit their use in free software. .SH "SEE ALSO" .IX Header "SEE ALSO" ! \&\fIgpl\fR\|(7), \fIfsf\-funding\fR\|(7). .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright (c) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. --- 641,647 ---- to permit their use in free software. .SH "SEE ALSO" .IX Header "SEE ALSO" ! \&\fBgpl\fR\|(7), \fBfsf\-funding\fR\|(7). .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright (c) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. diff -Nrcpad gcc-10.3.0/gcc/doc/gfortran.1 gcc-10.4.0/gcc/doc/gfortran.1 *** gcc-10.3.0/gcc/doc/gfortran.1 Thu Apr 8 12:06:41 2021 --- gcc-10.4.0/gcc/doc/gfortran.1 Tue Jun 28 09:09:19 2022 *************** *** 1,4 **** ! .\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== --- 1,4 ---- ! .\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== *************** *** 54,69 **** .\" Avoid warning from groff about undefined register 'F'. .de IX .. ! .if !\nF .nr F 0 ! .if \nF>0 \{\ ! . de IX ! . tm Index:\\$1\t\\n%\t"\\$2" .. ! . if !\nF==2 \{\ ! . nr % 0 ! . nr F 2 . \} .\} .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. --- 54,73 ---- .\" Avoid warning from groff about undefined register 'F'. .de IX .. ! .nr rF 0 ! .if \n(.g .if rF .nr rF 1 ! .if (\n(rF:(\n(.g==0)) \{\ ! . if \nF \{\ ! . de IX ! . tm Index:\\$1\t\\n%\t"\\$2" .. ! . if !\nF==2 \{\ ! . nr % 0 ! . nr F 2 ! . \} . \} .\} + .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. *************** *** 129,135 **** .\" ======================================================================== .\" .IX Title "GFORTRAN 1" ! .TH GFORTRAN 1 "2021-04-08" "gcc-10.3.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l --- 133,139 ---- .\" ======================================================================== .\" .IX Title "GFORTRAN 1" ! .TH GFORTRAN 1 "2022-06-28" "gcc-10.4.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l *************** For instructions on reporting bugs, see *** 1710,1717 **** <\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" --- 1714,1721 ---- <\fBhttps://gcc.gnu.org/bugs/\fR>. .SH "SEE ALSO" .IX Header "SEE ALSO" ! \&\fBgpl\fR\|(7), \fBgfdl\fR\|(7), \fBfsf\-funding\fR\|(7), ! \&\fBcpp\fR\|(1), \fBgcov\fR\|(1), \fBgcc\fR\|(1), \fBas\fR\|(1), \fBld\fR\|(1), \fBgdb\fR\|(1), \fBdbx\fR\|(1) and the Info entries for \fIgcc\fR, \fIcpp\fR, \fIgfortran\fR, \fIas\fR, \&\fIld\fR, \fIbinutils\fR and \fIgdb\fR. .SH "AUTHOR" *************** under the terms of the \s-1GNU\s0 Free D *** 1727,1733 **** 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 --- 1731,1737 ---- any later version published by the Free Software Foundation; with the Invariant Sections being \*(L"Funding Free Software\*(R", the Front-Cover Texts being (a) (see below), and with the Back-Cover Texts being (b) ! (see below). A copy of the license is included in the \fBgfdl\fR\|(7) man page. .PP (a) The \s-1FSF\s0's Front-Cover Text is: .PP diff -Nrcpad gcc-10.3.0/gcc/doc/gpl.7 gcc-10.4.0/gcc/doc/gpl.7 *** gcc-10.3.0/gcc/doc/gpl.7 Thu Apr 8 11:57:41 2021 --- gcc-10.4.0/gcc/doc/gpl.7 Tue Jun 28 08:56:18 2022 *************** *** 1,4 **** ! .\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== --- 1,4 ---- ! .\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== *************** *** 54,69 **** .\" Avoid warning from groff about undefined register 'F'. .de IX .. ! .if !\nF .nr F 0 ! .if \nF>0 \{\ ! . de IX ! . tm Index:\\$1\t\\n%\t"\\$2" .. ! . if !\nF==2 \{\ ! . nr % 0 ! . nr F 2 . \} .\} .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. --- 54,73 ---- .\" Avoid warning from groff about undefined register 'F'. .de IX .. ! .nr rF 0 ! .if \n(.g .if rF .nr rF 1 ! .if (\n(rF:(\n(.g==0)) \{\ ! . if \nF \{\ ! . de IX ! . tm Index:\\$1\t\\n%\t"\\$2" .. ! . if !\nF==2 \{\ ! . nr % 0 ! . nr F 2 ! . \} . \} .\} + .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. *************** *** 129,135 **** .\" ======================================================================== .\" .IX Title "GPL 7" ! .TH GPL 7 "2021-04-08" "gcc-10.3.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l --- 133,139 ---- .\" ======================================================================== .\" .IX Title "GPL 7" ! .TH GPL 7 "2022-06-28" "gcc-10.4.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l *************** the \s-1GNU\s0 Lesser General Public Lic *** 837,843 **** first, please read <\fBhttps://www.gnu.org/licenses/why\-not\-lgpl.html\fR>. .SH "SEE ALSO" .IX Header "SEE ALSO" ! \&\fIgfdl\fR\|(7), \fIfsf\-funding\fR\|(7). .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright (c) 2007 Free Software Foundation, Inc. --- 841,847 ---- first, please read <\fBhttps://www.gnu.org/licenses/why\-not\-lgpl.html\fR>. .SH "SEE ALSO" .IX Header "SEE ALSO" ! \&\fBgfdl\fR\|(7), \fBfsf\-funding\fR\|(7). .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright (c) 2007 Free Software Foundation, Inc. diff -Nrcpad gcc-10.3.0/gcc/doc/install.texi gcc-10.4.0/gcc/doc/install.texi *** gcc-10.3.0/gcc/doc/install.texi Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/doc/install.texi Tue Jun 28 08:54:28 2022 *************** but for the linker. *** 1041,1046 **** --- 1041,1050 ---- Same as @uref{#with-as,,@option{--with-as}} but for the linker. + @item --with-dsymutil=@var{pathname} + Same as @uref{#with-as,,@option{--with-as}} + but for the debug linker (only used on Darwin platforms so far). + @item --with-stabs Specify that stabs debugging information should be used instead of whatever format the host normally diff -Nrcpad gcc-10.3.0/gcc/doc/invoke.texi gcc-10.4.0/gcc/doc/invoke.texi *** gcc-10.3.0/gcc/doc/invoke.texi Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/doc/invoke.texi Tue Jun 28 08:54:28 2022 *************** Objective-C and Objective-C++ Dialects}. *** 770,775 **** --- 770,776 ---- -mverbose-cost-dump @gol -mpure-code @gol -mcmse @gol + -mfix-cmse-cve-2021-35465 @gol -mfdpic} @emph{AVR Options} *************** name is still supported, but the newer n *** 4913,4919 **** -Wredundant-move @r{(only for C++)} @gol -Wtype-limits @gol -Wuninitialized @gol ! -Wshift-negative-value @r{(in C++03 and in C99 and newer)} @gol -Wunused-parameter @r{(only with} @option{-Wunused} @r{or} @option{-Wall}@r{)} @gol -Wunused-but-set-parameter @r{(only with} @option{-Wunused} @r{or} @option{-Wall}@r{)}} --- 4914,4920 ---- -Wredundant-move @r{(only for C++)} @gol -Wtype-limits @gol -Wuninitialized @gol ! -Wshift-negative-value @r{(in C++11 to C++17 and in C99 and newer)} @gol -Wunused-parameter @r{(only with} @option{-Wunused} @r{or} @option{-Wall}@r{)} @gol -Wunused-but-set-parameter @r{(only with} @option{-Wunused} @r{or} @option{-Wall}@r{)}} *************** of the type. This warning is enabled by *** 5887,5893 **** @opindex Wshift-negative-value @opindex Wno-shift-negative-value Warn if left shifting a negative value. This warning is enabled by ! @option{-Wextra} in C99 and C++11 modes (and newer). @item -Wno-shift-overflow @itemx -Wshift-overflow=@var{n} --- 5888,5894 ---- @opindex Wshift-negative-value @opindex Wno-shift-negative-value Warn if left shifting a negative value. This warning is enabled by ! @option{-Wextra} in C99 (and newer) and C++11 to C++17 modes. @item -Wno-shift-overflow @itemx -Wshift-overflow=@var{n} *************** The option cannot be combined with @opti *** 13599,13605 **** @opindex fsanitize=undefined Enable UndefinedBehaviorSanitizer, a fast undefined behavior detector. Various computations are instrumented to detect undefined behavior ! at runtime. Current suboptions are: @table @gcctabopt --- 13600,13607 ---- @opindex fsanitize=undefined Enable UndefinedBehaviorSanitizer, a fast undefined behavior detector. Various computations are instrumented to detect undefined behavior ! at runtime. See @uref{https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html} for more details. The run-time behavior can be influenced using the ! @env{UBSAN_OPTIONS} environment variable. Current suboptions are: @table @gcctabopt *************** which functions and calls should be skip *** 13884,13890 **** (@pxref{Function Attributes}). Currently the x86 GNU/Linux target provides an implementation based ! on Intel Control-flow Enforcement Technology (CET). @item -fstack-protector @opindex fstack-protector --- 13886,13893 ---- (@pxref{Function Attributes}). Currently the x86 GNU/Linux target provides an implementation based ! on Intel Control-flow Enforcement Technology (CET) which works for ! i686 processor or newer. @item -fstack-protector @opindex fstack-protector *************** performance of the code. Permissible va *** 16994,17001 **** @samp{cortex-a57}, @samp{cortex-a72}, @samp{cortex-a73}, @samp{cortex-a75}, @samp{cortex-a76}, @samp{cortex-a76ae}, @samp{cortex-a77}, @samp{cortex-a65}, @samp{cortex-a65ae}, @samp{cortex-a34}, ! @samp{ares}, @samp{exynos-m1}, @samp{emag}, @samp{falkor}, @samp{neoverse-e1}, ! @samp{neoverse-n1}, @samp{neoverse-n2}, @samp{neoverse-v1}, @samp{qdf24xx}, @samp{saphira}, @samp{phecda}, @samp{xgene1}, @samp{vulcan}, @samp{octeontx}, @samp{octeontx81}, @samp{octeontx83}, @samp{octeontx2}, @samp{octeontx2t98}, @samp{octeontx2t96} --- 16997,17005 ---- @samp{cortex-a57}, @samp{cortex-a72}, @samp{cortex-a73}, @samp{cortex-a75}, @samp{cortex-a76}, @samp{cortex-a76ae}, @samp{cortex-a77}, @samp{cortex-a65}, @samp{cortex-a65ae}, @samp{cortex-a34}, ! @samp{ares}, @samp{exynos-m1}, @samp{emag}, @samp{falkor}, ! @samp{neoverse-e1}, @samp{neoverse-n1}, @samp{neoverse-n2}, ! @samp{neoverse-v1}, @samp{neoverse-512tvb}, @samp{qdf24xx}, @samp{saphira}, @samp{phecda}, @samp{xgene1}, @samp{vulcan}, @samp{octeontx}, @samp{octeontx81}, @samp{octeontx83}, @samp{octeontx2}, @samp{octeontx2t98}, @samp{octeontx2t96} *************** The values @samp{cortex-a57.cortex-a53}, *** 17015,17020 **** --- 17019,17033 ---- @samp{cortex-a75.cortex-a55}, @samp{cortex-a76.cortex-a55} specify that GCC should tune for a big.LITTLE system. + The value @samp{neoverse-512tvb} specifies that GCC should tune + for Neoverse cores that (a) implement SVE and (b) have a total vector + bandwidth of 512 bits per cycle. In other words, the option tells GCC to + tune for Neoverse cores that can execute 4 128-bit Advanced SIMD arithmetic + instructions a cycle and that can execute an equivalent number of SVE + arithmetic instructions per cycle (2 for 256-bit SVE, 4 for 128-bit SVE). + This is more general than tuning for a specific core like Neoverse V1 + but is more specific than the default tuning described below. + Additionally on native AArch64 GNU/Linux systems the value @samp{native} tunes performance to the host system. This option has no effect if the compiler is unable to recognize the processor of the host system. *************** by @option{-mtune}). Where this option *** 17044,17049 **** --- 17057,17072 ---- with @option{-march} or @option{-mtune}, those options take precedence over the appropriate part of this option. + @option{-mcpu=neoverse-512tvb} is special in that it does not refer + to a specific core, but instead refers to all Neoverse cores that + (a) implement SVE and (b) have a total vector bandwidth of 512 bits + a cycle. Unless overridden by @option{-march}, + @option{-mcpu=neoverse-512tvb} generates code that can run on a + Neoverse V1 core, since Neoverse V1 is the first Neoverse core with + these properties. Unless overridden by @option{-mtune}, + @option{-mcpu=neoverse-512tvb} tunes code in the same way as for + @option{-mtune=neoverse-512tvb}. + @item -moverride=@var{string} @opindex moverride Override tuning decisions made by the back-end in response to a *************** Generate secure code as per the "ARMv8-M *** 19236,19241 **** --- 19259,19272 ---- Development Tools Engineering Specification", which can be found on @url{https://developer.arm.com/documentation/ecm0359818/latest/}. + @item -mfix-cmse-cve-2021-35465 + @opindex mfix-cmse-cve-2021-35465 + Mitigate against a potential security issue with the @code{VLLDM} instruction + in some M-profile devices when using CMSE (CVE-2021-365465). This option is + enabled by default when the option @option{-mcpu=} is used with + @code{cortex-m33}, @code{cortex-m35p} or @code{cortex-m55}. The option + @option{-mno-fix-cmse-cve-2021-35465} can be used to disable the mitigation. + @item -mfdpic @itemx -mno-fdpic @opindex mfdpic *************** Supported values for @var{cpu_type} are *** 25640,25646 **** @samp{e6500}, @samp{ec603e}, @samp{G3}, @samp{G4}, @samp{G5}, @samp{titan}, @samp{power3}, @samp{power4}, @samp{power5}, @samp{power5+}, @samp{power6}, @samp{power6x}, @samp{power7}, @samp{power8}, ! @samp{power9}, @samp{future}, @samp{powerpc}, @samp{powerpc64}, @samp{powerpc64le}, @samp{rs64}, and @samp{native}. @option{-mcpu=powerpc}, @option{-mcpu=powerpc64}, and --- 25671,25677 ---- @samp{e6500}, @samp{ec603e}, @samp{G3}, @samp{G4}, @samp{G5}, @samp{titan}, @samp{power3}, @samp{power4}, @samp{power5}, @samp{power5+}, @samp{power6}, @samp{power6x}, @samp{power7}, @samp{power8}, ! @samp{power9}, @samp{power10}, @samp{powerpc}, @samp{powerpc64}, @samp{powerpc64le}, @samp{rs64}, and @samp{native}. @option{-mcpu=powerpc}, @option{-mcpu=powerpc64}, and *************** Enable/disable the @var{__float128} keyw *** 25821,25830 **** and use either software emulation for IEEE 128-bit floating point or hardware instructions. ! The VSX instruction set (@option{-mvsx}, @option{-mcpu=power7}, ! @option{-mcpu=power8}), or @option{-mcpu=power9} must be enabled to ! use the IEEE 128-bit floating point support. The IEEE 128-bit ! floating point support only works on PowerPC Linux systems. The default for @option{-mfloat128} is enabled on PowerPC Linux systems using the VSX instruction set, and disabled on other systems. --- 25852,25860 ---- and use either software emulation for IEEE 128-bit floating point or hardware instructions. ! The VSX instruction set (@option{-mvsx}) must be enabled to use the IEEE ! 128-bit floating point support. The IEEE 128-bit floating point is only ! supported on Linux. The default for @option{-mfloat128} is enabled on PowerPC Linux systems using the VSX instruction set, and disabled on other systems. *************** the offset with a symbol reference to a *** 26654,26677 **** @itemx -mno-pcrel @opindex mpcrel @opindex mno-pcrel ! Generate (do not generate) pc-relative addressing when the option ! @option{-mcpu=future} is used. The @option{-mpcrel} option requires ! that the medium code model (@option{-mcmodel=medium}) and prefixed ! addressing (@option{-mprefixed}) options are enabled. @item -mprefixed @itemx -mno-prefixed @opindex mprefixed @opindex mno-prefixed Generate (do not generate) addressing modes using prefixed load and ! store instructions when the option @option{-mcpu=future} is used. @item -mmma @itemx -mno-mma @opindex mmma @opindex mno-mma ! Generate (do not generate) the MMA instructions when the option ! @option{-mcpu=future} is used. @end table @node RX Options --- 26684,26708 ---- @itemx -mno-pcrel @opindex mpcrel @opindex mno-pcrel ! Generate (do not generate) pc-relative addressing. The @option{-mpcrel} ! option requires that the medium code model (@option{-mcmodel=medium}) ! and prefixed addressing (@option{-mprefixed}) options are enabled. @item -mprefixed @itemx -mno-prefixed @opindex mprefixed @opindex mno-prefixed Generate (do not generate) addressing modes using prefixed load and ! store instructions. The @option{-mprefixed} option requires that ! the option @option{-mcpu=power10} (or later) is enabled. @item -mmma @itemx -mno-mma @opindex mmma @opindex mno-mma ! Generate (do not generate) the MMA instructions. The @option{-mma} ! option requires that the option @option{-mcpu=power10} (or later) ! is enabled. @end table @node RX Options *************** so @option{-mno-lra} needs to be passed *** 27817,27826 **** Set the instruction set, register set, and instruction scheduling parameters for machine type @var{cpu_type}. Supported values for @var{cpu_type} are @samp{v7}, @samp{cypress}, @samp{v8}, @samp{supersparc}, @samp{hypersparc}, ! @samp{leon}, @samp{leon3}, @samp{leon3v7}, @samp{sparclite}, @samp{f930}, ! @samp{f934}, @samp{sparclite86x}, @samp{sparclet}, @samp{tsc701}, @samp{v9}, ! @samp{ultrasparc}, @samp{ultrasparc3}, @samp{niagara}, @samp{niagara2}, ! @samp{niagara3}, @samp{niagara4}, @samp{niagara7} and @samp{m8}. Native Solaris and GNU/Linux toolchains also support the value @samp{native}, which selects the best architecture option for the host processor. --- 27848,27858 ---- Set the instruction set, register set, and instruction scheduling parameters for machine type @var{cpu_type}. Supported values for @var{cpu_type} are @samp{v7}, @samp{cypress}, @samp{v8}, @samp{supersparc}, @samp{hypersparc}, ! @samp{leon}, @samp{leon3}, @samp{leon3v7}, @samp{leon5}, @samp{sparclite}, ! @samp{f930}, @samp{f934}, @samp{sparclite86x}, @samp{sparclet}, @samp{tsc701}, ! @samp{v9}, @samp{ultrasparc}, @samp{ultrasparc3}, @samp{niagara}, ! @samp{niagara2}, @samp{niagara3}, @samp{niagara4}, @samp{niagara7} and ! @samp{m8}. Native Solaris and GNU/Linux toolchains also support the value @samp{native}, which selects the best architecture option for the host processor. *************** implementations. *** 27839,27845 **** cypress, leon3v7 @item v8 ! supersparc, hypersparc, leon, leon3 @item sparclite f930, f934, sparclite86x --- 27871,27877 ---- cypress, leon3v7 @item v8 ! supersparc, hypersparc, leon, leon3, leon5 @item sparclite f930, f934, sparclite86x *************** The same values for @option{-mcpu=@var{c *** 27906,27912 **** @option{-mtune=@var{cpu_type}}, but the only useful values are those that select a particular CPU implementation. Those are @samp{cypress}, @samp{supersparc}, @samp{hypersparc}, @samp{leon}, ! @samp{leon3}, @samp{leon3v7}, @samp{f930}, @samp{f934}, @samp{sparclite86x}, @samp{tsc701}, @samp{ultrasparc}, @samp{ultrasparc3}, @samp{niagara}, @samp{niagara2}, @samp{niagara3}, @samp{niagara4}, @samp{niagara7} and @samp{m8}. With native Solaris --- 27938,27944 ---- @option{-mtune=@var{cpu_type}}, but the only useful values are those that select a particular CPU implementation. Those are @samp{cypress}, @samp{supersparc}, @samp{hypersparc}, @samp{leon}, ! @samp{leon3}, @samp{leon3v7}, @samp{leon5}, @samp{f930}, @samp{f934}, @samp{sparclite86x}, @samp{tsc701}, @samp{ultrasparc}, @samp{ultrasparc3}, @samp{niagara}, @samp{niagara2}, @samp{niagara3}, @samp{niagara4}, @samp{niagara7} and @samp{m8}. With native Solaris *************** Substitute the contents of spec string @ *** 30812,30819 **** Accumulate an option for @samp{%X}. @item %X ! Output the accumulated linker options specified by @option{-Wl} or a @samp{%x} ! spec string. @item %Y Output the accumulated assembler options specified by @option{-Wa}. --- 30844,30850 ---- Accumulate an option for @samp{%X}. @item %X ! Output the accumulated linker options specified by a @samp{%x} spec string. @item %Y Output the accumulated assembler options specified by @option{-Wa}. diff -Nrcpad gcc-10.3.0/gcc/doc/lto-dump.1 gcc-10.4.0/gcc/doc/lto-dump.1 *** gcc-10.3.0/gcc/doc/lto-dump.1 Thu Apr 8 11:57:41 2021 --- gcc-10.4.0/gcc/doc/lto-dump.1 Tue Jun 28 08:56:18 2022 *************** *** 1,4 **** ! .\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== --- 1,4 ---- ! .\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== *************** *** 54,69 **** .\" Avoid warning from groff about undefined register 'F'. .de IX .. ! .if !\nF .nr F 0 ! .if \nF>0 \{\ ! . de IX ! . tm Index:\\$1\t\\n%\t"\\$2" .. ! . if !\nF==2 \{\ ! . nr % 0 ! . nr F 2 . \} .\} .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. --- 54,73 ---- .\" Avoid warning from groff about undefined register 'F'. .de IX .. ! .nr rF 0 ! .if \n(.g .if rF .nr rF 1 ! .if (\n(rF:(\n(.g==0)) \{\ ! . if \nF \{\ ! . de IX ! . tm Index:\\$1\t\\n%\t"\\$2" .. ! . if !\nF==2 \{\ ! . nr % 0 ! . nr F 2 ! . \} . \} .\} + .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. *************** *** 129,135 **** .\" ======================================================================== .\" .IX Title "LTO-DUMP 1" ! .TH LTO-DUMP 1 "2021-04-08" "gcc-10.3.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l --- 133,139 ---- .\" ======================================================================== .\" .IX Title "LTO-DUMP 1" ! .TH LTO-DUMP 1 "2022-06-28" "gcc-10.4.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l *************** any later version published by the Free *** 218,224 **** Invariant Sections being \*(L"\s-1GNU\s0 General Public License\*(R" and \*(L"Funding Free Software\*(R", the Front-Cover texts being (a) (see below), and with the Back-Cover Texts being (b) (see below). A copy of the license is ! included in the \fIgfdl\fR\|(7) man page. .PP (a) The \s-1FSF\s0's Front-Cover Text is: .PP --- 222,228 ---- Invariant Sections being \*(L"\s-1GNU\s0 General Public License\*(R" and \*(L"Funding Free Software\*(R", the Front-Cover texts being (a) (see below), and with the Back-Cover Texts being (b) (see below). A copy of the license is ! included in the \fBgfdl\fR\|(7) man page. .PP (a) The \s-1FSF\s0's Front-Cover Text is: .PP diff -Nrcpad gcc-10.3.0/gcc/doc/tm.texi gcc-10.4.0/gcc/doc/tm.texi *** gcc-10.3.0/gcc/doc/tm.texi Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/doc/tm.texi Tue Jun 28 08:54:28 2022 *************** collecting constructors and destructors *** 9122,9127 **** --- 9122,9135 ---- It is false if we must use @command{collect2}. @end deftypevr + @deftypevr {Target Hook} bool TARGET_DTORS_FROM_CXA_ATEXIT + This value is true if the target wants destructors to be queued to be + run from __cxa_atexit. If this is the case then, for each priority level, + a new constructor will be entered that registers the destructors for that + level with __cxa_atexit (and there will be no destructors emitted). + It is false the method implied by @code{have_ctors_dtors} is used. + @end deftypevr + @deftypefn {Target Hook} void TARGET_ASM_CONSTRUCTOR (rtx @var{symbol}, int @var{priority}) If defined, a function that outputs assembler code to arrange to call the function referenced by @var{symbol} at initialization time. diff -Nrcpad gcc-10.3.0/gcc/doc/tm.texi.in gcc-10.4.0/gcc/doc/tm.texi.in *** gcc-10.3.0/gcc/doc/tm.texi.in Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/doc/tm.texi.in Tue Jun 28 08:54:28 2022 *************** encountering an @code{init_priority} att *** 6085,6090 **** --- 6085,6092 ---- @hook TARGET_HAVE_CTORS_DTORS + @hook TARGET_DTORS_FROM_CXA_ATEXIT + @hook TARGET_ASM_CONSTRUCTOR @hook TARGET_ASM_DESTRUCTOR diff -Nrcpad gcc-10.3.0/gcc/doc/trouble.texi gcc-10.4.0/gcc/doc/trouble.texi *** gcc-10.3.0/gcc/doc/trouble.texi Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/doc/trouble.texi Tue Jun 28 08:54:28 2022 *************** objects behave unspecified when being as *** 865,874 **** @smallexample struct Base@{ char *name; ! Base(char *n) : name(strdup(n))@{@} Base& operator= (const Base& other)@{ free (name); name = strdup (other.name); @} @}; --- 865,875 ---- @smallexample struct Base@{ char *name; ! Base(const char *n) : name(strdup(n))@{@} Base& operator= (const Base& other)@{ free (name); name = strdup (other.name); + return *this; @} @}; *************** inside @samp{func} in the example). *** 901,908 **** G++ implements the ``intuitive'' algorithm for copy-assignment: assign all direct bases, then assign all members. In that algorithm, the virtual base subobject can be encountered more than once. In the example, copying ! proceeds in the following order: @samp{val}, @samp{name} (via ! @code{strdup}), @samp{bval}, and @samp{name} again. If application code relies on copy-assignment, a user-defined copy-assignment operator removes any uncertainties. With such an --- 902,909 ---- G++ implements the ``intuitive'' algorithm for copy-assignment: assign all direct bases, then assign all members. In that algorithm, the virtual base subobject can be encountered more than once. In the example, copying ! proceeds in the following order: @samp{name} (via @code{strdup}), ! @samp{val}, @samp{name} again, and @samp{bval}. If application code relies on copy-assignment, a user-defined copy-assignment operator removes any uncertainties. With such an diff -Nrcpad gcc-10.3.0/gcc/dse.c gcc-10.4.0/gcc/dse.c *** gcc-10.3.0/gcc/dse.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/dse.c Tue Jun 28 08:54:28 2022 *************** get_stored_val (store_info *store_info, *** 1950,1957 **** static bool replace_read (store_info *store_info, insn_info_t store_insn, ! read_info_t read_info, insn_info_t read_insn, rtx *loc, ! bitmap regs_live) { machine_mode store_mode = GET_MODE (store_info->mem); machine_mode read_mode = GET_MODE (read_info->mem); --- 1950,1956 ---- static bool replace_read (store_info *store_info, insn_info_t store_insn, ! read_info_t read_info, insn_info_t read_insn, rtx *loc) { machine_mode store_mode = GET_MODE (store_info->mem); machine_mode read_mode = GET_MODE (read_info->mem); *************** replace_read (store_info *store_info, in *** 2020,2026 **** note_stores (this_insn, look_for_hardregs, regs_set); } ! bitmap_and_into (regs_set, regs_live); if (!bitmap_empty_p (regs_set)) { if (dump_file && (dump_flags & TDF_DETAILS)) --- 2019,2026 ---- note_stores (this_insn, look_for_hardregs, regs_set); } ! if (store_insn->fixed_regs_live) ! bitmap_and_into (regs_set, store_insn->fixed_regs_live); if (!bitmap_empty_p (regs_set)) { if (dump_file && (dump_flags & TDF_DETAILS)) *************** check_mem_read_rtx (rtx *loc, bb_info_t *** 2199,2204 **** --- 2199,2209 ---- } if (maybe_ne (offset, 0)) mem_addr = plus_constant (get_address_mode (mem), mem_addr, offset); + /* Avoid passing VALUE RTXen as mem_addr to canon_true_dependence + which will over and over re-create proper RTL and re-apply the + offset above. See PR80960 where we almost allocate 1.6GB of PLUS + RTXen that way. */ + mem_addr = get_addr (mem_addr); if (group_id >= 0) { *************** check_mem_read_rtx (rtx *loc, bb_info_t *** 2261,2267 **** offset - store_info->offset, width) && replace_read (store_info, i_ptr, read_info, ! insn_info, loc, bb_info->regs_live)) return; /* The bases are the same, just see if the offsets --- 2266,2272 ---- offset - store_info->offset, width) && replace_read (store_info, i_ptr, read_info, ! insn_info, loc)) return; /* The bases are the same, just see if the offsets *************** check_mem_read_rtx (rtx *loc, bb_info_t *** 2327,2334 **** store_info->width) && all_positions_needed_p (store_info, offset - store_info->offset, width) ! && replace_read (store_info, i_ptr, read_info, insn_info, loc, ! bb_info->regs_live)) return; remove = canon_true_dependence (store_info->mem, --- 2332,2338 ---- store_info->width) && all_positions_needed_p (store_info, offset - store_info->offset, width) ! && replace_read (store_info, i_ptr, read_info, insn_info, loc)) return; remove = canon_true_dependence (store_info->mem, diff -Nrcpad gcc-10.3.0/gcc/dwarf2out.c gcc-10.4.0/gcc/dwarf2out.c *** gcc-10.3.0/gcc/dwarf2out.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/dwarf2out.c Tue Jun 28 08:54:28 2022 *************** loc_list_from_tree_1 (tree loc, int want *** 18928,18933 **** --- 18928,18937 ---- case FIX_TRUNC_EXPR: return 0; + case COMPOUND_LITERAL_EXPR: + return loc_list_from_tree_1 (COMPOUND_LITERAL_EXPR_DECL (loc), + 0, context); + default: /* Leave front-end specific codes as simply unknown. This comes up, for instance, with the C STMT_EXPR. */ *************** field_byte_offset (const_tree decl, stru *** 19160,19165 **** --- 19164,19170 ---- properly dynamic byte offsets only when PCC bitfield type doesn't matter. */ if (PCC_BITFIELD_TYPE_MATTERS + && DECL_BIT_FIELD_TYPE (decl) && TREE_CODE (DECL_FIELD_OFFSET (decl)) == INTEGER_CST) { offset_int object_offset_in_bits; *************** gen_variable_die (tree decl, tree origin *** 23943,23949 **** && DECL_RTL_SET_P (decl_or_origin)))) { if (early_dwarf) ! add_pubname (decl_or_origin, var_die); else add_location_or_const_value_attribute (var_die, decl_or_origin, decl == NULL); --- 23948,23973 ---- && DECL_RTL_SET_P (decl_or_origin)))) { if (early_dwarf) ! { ! add_pubname (decl_or_origin, var_die); ! /* For global register variables, emit DW_AT_location if possible ! already during early_dwarf, as late_global_decl won't be usually ! called. */ ! if (DECL_HARD_REGISTER (decl_or_origin) ! && TREE_STATIC (decl_or_origin) ! && !decl_by_reference_p (decl_or_origin) ! && !get_AT (var_die, DW_AT_location) ! && !get_AT (var_die, DW_AT_const_value) ! && DECL_RTL_SET_P (decl_or_origin) ! && REG_P (DECL_RTL (decl_or_origin))) ! { ! dw_loc_descr_ref descr ! = reg_loc_descriptor (DECL_RTL (decl_or_origin), ! VAR_INIT_STATUS_INITIALIZED); ! if (descr) ! add_AT_loc (var_die, DW_AT_location, descr); ! } ! } else add_location_or_const_value_attribute (var_die, decl_or_origin, decl == NULL); diff -Nrcpad gcc-10.3.0/gcc/early-remat.c gcc-10.4.0/gcc/early-remat.c *** gcc-10.3.0/gcc/early-remat.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/early-remat.c Tue Jun 28 08:54:28 2022 *************** early_remat::sort_candidates (void) *** 1059,1065 **** m_candidates.qsort (compare_candidates); ! delete postorder_index; } /* Commit to the current candidate indices and initialize cross-references. */ --- 1059,1065 ---- m_candidates.qsort (compare_candidates); ! delete[] postorder_index; } /* Commit to the current candidate indices and initialize cross-references. */ diff -Nrcpad gcc-10.3.0/gcc/emit-rtl.c gcc-10.4.0/gcc/emit-rtl.c *** gcc-10.3.0/gcc/emit-rtl.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/emit-rtl.c Tue Jun 28 08:54:28 2022 *************** bool *** 5936,5941 **** --- 5936,5942 ---- valid_for_const_vector_p (machine_mode, rtx x) { return (CONST_SCALAR_INT_P (x) + || CONST_POLY_INT_P (x) || CONST_DOUBLE_AS_FLOAT_P (x) || CONST_FIXED_P (x)); } diff -Nrcpad gcc-10.3.0/gcc/exec-tool.in gcc-10.4.0/gcc/exec-tool.in *** gcc-10.3.0/gcc/exec-tool.in Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/exec-tool.in Tue Jun 28 08:54:28 2022 *************** ORIGINAL_LD_BFD_FOR_TARGET="@ORIGINAL_LD *** 25,30 **** --- 25,31 ---- ORIGINAL_LD_GOLD_FOR_TARGET="@ORIGINAL_LD_GOLD_FOR_TARGET@" ORIGINAL_PLUGIN_LD_FOR_TARGET="@ORIGINAL_PLUGIN_LD_FOR_TARGET@" ORIGINAL_NM_FOR_TARGET="@ORIGINAL_NM_FOR_TARGET@" + ORIGINAL_DSYMUTIL_FOR_TARGET="@ORIGINAL_DSYMUTIL_FOR_TARGET@" exeext=@host_exeext@ fast_install=@enable_fast_install@ objdir=@objdir@ *************** case "$invoked" in *** 71,76 **** --- 72,84 ---- prog=nm-new$exeext dir=binutils ;; + dsymutil) + original=$ORIGINAL_DSYMUTIL_FOR_TARGET + # We do not build this in tree - but still want to be able to execute + # a configured version from the build dir. + prog= + dir= + ;; esac case "$original" in diff -Nrcpad gcc-10.3.0/gcc/explow.c gcc-10.4.0/gcc/explow.c *** gcc-10.3.0/gcc/explow.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/explow.c Tue Jun 28 08:54:28 2022 *************** along with GCC; see the file COPYING3. *** 34,39 **** --- 34,40 ---- #include "recog.h" #include "diagnostic-core.h" #include "stor-layout.h" + #include "langhooks.h" #include "except.h" #include "dojump.h" #include "explow.h" *************** set_stack_check_libfunc (const char *lib *** 1614,1621 **** { gcc_assert (stack_check_libfunc == NULL_RTX); stack_check_libfunc = gen_rtx_SYMBOL_REF (Pmode, libfunc_name); tree decl = build_decl (UNKNOWN_LOCATION, FUNCTION_DECL, ! get_identifier (libfunc_name), void_type_node); DECL_EXTERNAL (decl) = 1; SET_SYMBOL_REF_DECL (stack_check_libfunc, decl); } --- 1615,1628 ---- { gcc_assert (stack_check_libfunc == NULL_RTX); stack_check_libfunc = gen_rtx_SYMBOL_REF (Pmode, libfunc_name); + tree ptype + = Pmode == ptr_mode + ? ptr_type_node + : lang_hooks.types.type_for_mode (Pmode, 1); + tree ftype + = build_function_type_list (void_type_node, ptype, NULL_TREE); tree decl = build_decl (UNKNOWN_LOCATION, FUNCTION_DECL, ! get_identifier (libfunc_name), ftype); DECL_EXTERNAL (decl) = 1; SET_SYMBOL_REF_DECL (stack_check_libfunc, decl); } diff -Nrcpad gcc-10.3.0/gcc/expmed.c gcc-10.4.0/gcc/expmed.c *** gcc-10.3.0/gcc/expmed.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/expmed.c Tue Jun 28 08:54:28 2022 *************** store_integral_bit_field (rtx op0, opt_s *** 917,923 **** } subreg_off = bitnum / BITS_PER_UNIT; ! if (validate_subreg (fieldmode, GET_MODE (arg0), arg0, subreg_off)) { arg0 = gen_rtx_SUBREG (fieldmode, arg0, subreg_off); --- 917,926 ---- } subreg_off = bitnum / BITS_PER_UNIT; ! if (validate_subreg (fieldmode, GET_MODE (arg0), arg0, subreg_off) ! /* STRICT_LOW_PART must have a non-paradoxical subreg as ! operand. */ ! && !paradoxical_subreg_p (fieldmode, GET_MODE (arg0))) { arg0 = gen_rtx_SUBREG (fieldmode, arg0, subreg_off); diff -Nrcpad gcc-10.3.0/gcc/expr.c gcc-10.4.0/gcc/expr.c *** gcc-10.3.0/gcc/expr.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/expr.c Tue Jun 28 08:54:28 2022 *************** expand_expr_addr_expr_1 (tree exp, rtx t *** 8050,8056 **** array with address of COMPOUND_LITERAL_EXPR in DECL_INITIAL; the initializers aren't gimplified. */ if (COMPOUND_LITERAL_EXPR_DECL (exp) ! && TREE_STATIC (COMPOUND_LITERAL_EXPR_DECL (exp))) return expand_expr_addr_expr_1 (COMPOUND_LITERAL_EXPR_DECL (exp), target, tmode, modifier, as); /* FALLTHRU */ --- 8050,8056 ---- array with address of COMPOUND_LITERAL_EXPR in DECL_INITIAL; the initializers aren't gimplified. */ if (COMPOUND_LITERAL_EXPR_DECL (exp) ! && is_global_var (COMPOUND_LITERAL_EXPR_DECL (exp))) return expand_expr_addr_expr_1 (COMPOUND_LITERAL_EXPR_DECL (exp), target, tmode, modifier, as); /* FALLTHRU */ *************** expand_expr_real_2 (sepops ops, rtx targ *** 9658,9663 **** --- 9658,9664 ---- case VEC_PACK_SAT_EXPR: case VEC_PACK_FIX_TRUNC_EXPR: mode = TYPE_MODE (TREE_TYPE (treeop0)); + subtarget = NULL_RTX; goto binop; case VEC_PACK_TRUNC_EXPR: *************** expand_expr_real_2 (sepops ops, rtx targ *** 9681,9686 **** --- 9682,9688 ---- return eops[0].value; } mode = TYPE_MODE (TREE_TYPE (treeop0)); + subtarget = NULL_RTX; goto binop; case VEC_PACK_FLOAT_EXPR: diff -Nrcpad gcc-10.3.0/gcc/fold-const.c gcc-10.4.0/gcc/fold-const.c *** gcc-10.3.0/gcc/fold-const.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/fold-const.c Tue Jun 28 08:54:28 2022 *************** negate_expr_p (tree t) *** 511,517 **** if (TREE_CODE (TREE_OPERAND (t, 1)) == INTEGER_CST) { tree op1 = TREE_OPERAND (t, 1); ! if (wi::to_wide (op1) == TYPE_PRECISION (type) - 1) return true; } break; --- 511,517 ---- if (TREE_CODE (TREE_OPERAND (t, 1)) == INTEGER_CST) { tree op1 = TREE_OPERAND (t, 1); ! if (wi::to_wide (op1) == element_precision (type) - 1) return true; } break; *************** fold_negate_expr_1 (location_t loc, tree *** 704,710 **** if (TREE_CODE (TREE_OPERAND (t, 1)) == INTEGER_CST) { tree op1 = TREE_OPERAND (t, 1); ! if (wi::to_wide (op1) == TYPE_PRECISION (type) - 1) { tree ntype = TYPE_UNSIGNED (type) ? signed_type_for (type) --- 704,710 ---- if (TREE_CODE (TREE_OPERAND (t, 1)) == INTEGER_CST) { tree op1 = TREE_OPERAND (t, 1); ! if (wi::to_wide (op1) == element_precision (type) - 1) { tree ntype = TYPE_UNSIGNED (type) ? signed_type_for (type) *************** const_binop (enum tree_code code, tree a *** 1310,1315 **** --- 1310,1326 ---- real_convert (&result, mode, &value); /* Don't constant fold this floating point operation if + both operands are not NaN but the result is NaN, and + flag_trapping_math. Such operations should raise an + invalid operation exception. */ + if (flag_trapping_math + && MODE_HAS_NANS (mode) + && REAL_VALUE_ISNAN (result) + && !REAL_VALUE_ISNAN (d1) + && !REAL_VALUE_ISNAN (d2)) + return NULL_TREE; + + /* Don't constant fold this floating point operation if the result has overflowed and flag_trapping_math. */ if (flag_trapping_math && MODE_HAS_INFINITIES (mode) *************** build_zero_vector (tree type) *** 2350,2356 **** bool fold_convertible_p (const_tree type, const_tree arg) { ! tree orig = TREE_TYPE (arg); if (type == orig) return true; --- 2361,2367 ---- bool fold_convertible_p (const_tree type, const_tree arg) { ! const_tree orig = TREE_TYPE (arg); if (type == orig) return true; *************** fold_convertible_p (const_tree type, con *** 2382,2388 **** return (VECTOR_TYPE_P (orig) && known_eq (TYPE_VECTOR_SUBPARTS (type), TYPE_VECTOR_SUBPARTS (orig)) ! && fold_convertible_p (TREE_TYPE (type), TREE_TYPE (orig))); default: return false; --- 2393,2399 ---- return (VECTOR_TYPE_P (orig) && known_eq (TYPE_VECTOR_SUBPARTS (type), TYPE_VECTOR_SUBPARTS (orig)) ! && tree_int_cst_equal (TYPE_SIZE (type), TYPE_SIZE (orig))); default: return false; *************** make_range_step (location_t loc, enum tr *** 5108,5114 **** n_high = fold_convert_loc (loc, arg0_type, n_high); /* If we're converting arg0 from an unsigned type, to exp, ! a signed type, we will be doing the comparison as unsigned. The tests above have already verified that LOW and HIGH are both positive. --- 5119,5125 ---- n_high = fold_convert_loc (loc, arg0_type, n_high); /* If we're converting arg0 from an unsigned type, to exp, ! a signed type, we will be doing the comparison as unsigned. The tests above have already verified that LOW and HIGH are both positive. *************** make_range_step (location_t loc, enum tr *** 5170,5175 **** --- 5181,5212 ---- } } + /* Otherwise, if we are converting arg0 from signed type, to exp, + an unsigned type, we will do the comparison as signed. If + high is non-NULL, we punt above if it doesn't fit in the signed + type, so if we get through here, +[-, high] or +[low, high] are + equivalent to +[-, n_high] or +[n_low, n_high]. Similarly, + +[-, -] or -[-, -] are equivalent too. But if low is specified and + high is not, the +[low, -] range is equivalent to union of + +[n_low, -] and +[-, -1] ranges, so +[low, -] is equivalent to + -[0, n_low-1] and similarly -[low, -] to +[0, n_low-1], except for + low being 0, which should be treated as [-, -]. */ + else if (TYPE_UNSIGNED (exp_type) + && !TYPE_UNSIGNED (arg0_type) + && low + && !high) + { + if (integer_zerop (low)) + n_low = NULL_TREE; + else + { + n_high = fold_build2_loc (loc, PLUS_EXPR, arg0_type, + n_low, build_int_cst (arg0_type, -1)); + n_low = build_zero_cst (arg0_type); + in_p = !in_p; + } + } + *p_low = n_low; *p_high = n_high; *p_in_p = in_p; *************** fold_unary_loc (location_t loc, enum tre *** 8852,8859 **** tree arg00 = TREE_OPERAND (arg0, 0); tree arg01 = TREE_OPERAND (arg0, 1); ! return fold_build_pointer_plus_loc ! (loc, fold_convert_loc (loc, type, arg00), arg01); } /* Convert (T1)(~(T2)X) into ~(T1)X if T1 and T2 are integral types --- 8889,8906 ---- tree arg00 = TREE_OPERAND (arg0, 0); tree arg01 = TREE_OPERAND (arg0, 1); ! /* Avoid this optimization in GENERIC for -fsanitize=null ! when type is a reference type and arg00's type is not, ! because arg00 could be validly nullptr and if arg01 doesn't return, ! we don't want false positive binding of reference to nullptr. */ ! if (TREE_CODE (type) == REFERENCE_TYPE ! && !in_gimple_form ! && (flag_sanitize & SANITIZE_NULL) != 0 ! && TREE_CODE (TREE_TYPE (arg00)) != REFERENCE_TYPE) ! return NULL_TREE; ! ! arg00 = fold_convert_loc (loc, type, arg00); ! return fold_build_pointer_plus_loc (loc, arg00, arg01); } /* Convert (T1)(~(T2)X) into ~(T1)X if T1 and T2 are integral types *************** fold_read_from_vector (tree arg, poly_ui *** 14692,14697 **** --- 14739,14747 ---- return VECTOR_CST_ELT (arg, i); else if (TREE_CODE (arg) == CONSTRUCTOR) { + if (CONSTRUCTOR_NELTS (arg) + && VECTOR_TYPE_P (TREE_TYPE (CONSTRUCTOR_ELT (arg, 0)->value))) + return NULL_TREE; if (i >= CONSTRUCTOR_NELTS (arg)) return build_zero_cst (TREE_TYPE (TREE_TYPE (arg))); return CONSTRUCTOR_ELT (arg, i)->value; diff -Nrcpad gcc-10.3.0/gcc/fortran/ChangeLog gcc-10.4.0/gcc/fortran/ChangeLog *** gcc-10.3.0/gcc/fortran/ChangeLog Thu Apr 8 11:56:48 2021 --- gcc-10.4.0/gcc/fortran/ChangeLog Tue Jun 28 08:54:28 2022 *************** *** 1,3 **** --- 1,773 ---- + 2022-06-28 Release Manager + + * GCC 10.4.0 released. + + 2022-05-16 Harald Anlauf + + Backported from master: + 2022-05-11 Harald Anlauf + Steven G. Kargl + + PR fortran/105230 + * expr.c (find_array_section): Correct logic to avoid NULL + pointer dereference on invalid array section. + + 2022-05-16 Harald Anlauf + + Backported from master: + 2022-03-09 Harald Anlauf + + PR fortran/104849 + * expr.c (find_array_section): Avoid NULL pointer dereference on + invalid array section. + + 2022-05-16 Harald Anlauf + + Backported from master: + 2022-04-05 Harald Anlauf + Steven G. Kargl + + PR fortran/105138 + * intrinsic.c (gfc_is_intrinsic): When a symbol refers to a + RECURSIVE procedure, it cannot be an INTRINSIC. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-11-21 Jakub Jelinek + + PR debug/103315 + * trans-types.c (gfc_get_array_descr_info): Use DW_OP_deref_size 1 + instead of DW_OP_deref for DW_AT_rank. + + 2022-04-24 Mikael Morin + + PR fortran/104228 + PR fortran/104570 + * parse.c (parse_associate): Use a new distinct gfc_charlen if + the copied type has one whose length is not known to be + constant. + * resolve.c (resolve_assoc_var): Also create a new character + length for non-dummy associate targets. Reset charlen if it’s + shared with the associate target regardless of the expression + type. Don’t reinitialize charlen if it’s deferred. + * trans-stmt.c (trans_associate_var): Initialize character + length even if no temporary is used for the associate variable. + + 2022-04-21 Fritz Reese + + Backported from master: + 2022-04-21 Fritz Reese + + PR fortran/105310 + * trans-expr.c (gfc_conv_union_initializer): Pass vec* by reference. + + 2022-02-23 Harald Anlauf + + Backported from master: + 2022-02-22 Harald Anlauf + + PR fortran/104619 + * resolve.c (resolve_structure_cons): Skip shape check if shape + of constructor cannot be determined at compile time. + + 2022-02-04 Harald Anlauf + + Backported from master: + 2022-02-03 Harald Anlauf + + PR fortran/104311 + * check.c (gfc_calculate_transfer_sizes): Checks for case when + storage size of SOURCE is greater than zero while the storage size + of MOLD is zero and MOLD is an array shall not depend on SIZE. + + 2022-02-02 Harald Anlauf + + Backported from master: + 2022-02-01 Harald Anlauf + + PR fortran/104331 + * simplify.c (gfc_simplify_eoshift): Avoid NULL pointer + dereference when shape is not set. + + 2022-01-29 Harald Anlauf + + Backported from master: + 2022-01-15 Harald Anlauf + + PR fortran/83079 + * target-memory.c (gfc_interpret_character): Result length is + in bytes and thus depends on the character kind. + * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Compute correct + string length for the result of the TRANSFER intrinsic and for + temporaries for the different character kinds. + + 2022-01-29 Harald Anlauf + + Backported from master: + 2022-01-22 Harald Anlauf + + PR fortran/104127 + * simplify.c (gfc_simplify_transfer): Ensure that the result + typespec is set up for TRANSFER with MOLD of type CHARACTER + including character length even if the result is a zero-sized + array. + + 2022-01-26 Harald Anlauf + + Backported from master: + 2022-01-25 Harald Anlauf + + PR fortran/104227 + * check.c (gfc_calculate_transfer_sizes): Fix checking of arrays + passed as MOLD argument to the TRANSFER intrinsic for having + storage size zero. + + 2022-01-25 Harald Anlauf + + Backported from master: + 2022-01-09 Harald Anlauf + + PR fortran/101762 + * expr.c (gfc_check_pointer_assign): For pointer initialization + targets, check that subscripts and substring indices in + specifications are constant expressions. + + 2022-01-25 Harald Anlauf + + Backported from master: + 2022-01-13 Harald Anlauf + + PR fortran/67804 + * primary.c (gfc_match_structure_constructor): Recover from errors + that occurred while checking for a valid structure constructor in + a DATA statement. + + 2022-01-21 Harald Anlauf + + Backported from master: + 2022-01-14 Harald Anlauf + + PR fortran/103782 + * expr.c (gfc_simplify_expr): Adjust logic for when to scalarize a + call of an intrinsic which may have been overloaded. + + 2022-01-20 Harald Anlauf + + Backported from master: + 2022-01-18 Harald Anlauf + + PR fortran/103692 + * array.c (gfc_expand_constructor): Handle zero-sized array + constructors. + + 2022-01-13 Harald Anlauf + + Backported from master: + 2021-12-29 Harald Anlauf + + PR fortran/102332 + * expr.c (gfc_get_variable_expr): Avoid NULL pointer dereferences + during handling of errors with invalid uses of CLASS variables. + * match.c (select_type_set_tmp): Likewise. + * primary.c (gfc_match_varspec): Likewise. + * resolve.c (resolve_variable): Likewise. + (resolve_select_type): Likewise. + + 2022-01-07 Harald Anlauf + + Backported from master: + 2021-05-23 Harald Anlauf + + PR fortran/100551 + * trans-expr.c (gfc_conv_procedure_call): Adjust check for + implicit conversion of actual argument to an unlimited polymorphic + procedure argument. + + 2021-12-27 Harald Anlauf + + Backported from master: + 2021-12-10 Harald Anlauf + + PR fortran/103418 + * check.c (variable_check): Replace previous check of procedure + dummy arguments with INTENT(IN) attribute when passed to intrinsic + procedures by gfc_check_vardef_context. + * expr.c (gfc_check_vardef_context): Correct check of INTENT(IN) + dummy arguments for the case of sub-components of a CLASS pointer. + + 2021-12-27 Harald Anlauf + + Backported from master: + 2021-12-22 Harald Anlauf + + PR fortran/103778 + * check.c (is_c_interoperable): A BOZ literal constant is not + interoperable. + + 2021-12-27 Harald Anlauf + + Backported from master: + 2021-11-18 Harald Anlauf + Steven G. Kargl + + PR fortran/101329 + * check.c (is_c_interoperable): Reject NULL() as it is not + interoperable. + + 2021-12-19 Harald Anlauf + + Backported from master: + 2021-12-07 Harald Anlauf + + PR fortran/103588 + * array.c (gfc_ref_dimen_size): Do not generate internal error on + failed simplification of stride expression; just return failure. + + 2021-12-19 Harald Anlauf + + Backported from master: + 2021-12-03 Harald Anlauf + Steven G. Kargl + + PR fortran/103505 + * array.c (match_array_element_spec): Try to simplify array + element specifications to improve early checking. + * expr.c (gfc_try_simplify_expr): New. Try simplification of an + expression via gfc_simplify_expr. When an error occurs, roll + back. + * gfortran.h (gfc_try_simplify_expr): Declare it. + + 2021-12-19 Harald Anlauf + + Backported from master: + 2021-12-18 Harald Anlauf + + PR fortran/103412 + * check.c (gfc_check_sizeof): Reject BOZ type argument. + + 2021-12-17 Harald Anlauf + + Backported from master: + 2021-12-08 Harald Anlauf + + PR fortran/103610 + * array.c (spec_dimen_size): Fix simplification of SHAPE: + dimensions must be non-negative. + + 2021-12-16 Harald Anlauf + + Backported from master: + 2021-12-11 Harald Anlauf + + PR fortran/103606 + * resolve.c (resolve_fl_procedure): Do not access CLASS components + before class container has been built. + + 2021-12-16 Harald Anlauf + + Backported from master: + 2021-12-14 Harald Anlauf + + PR fortran/103717 + * frontend-passes.c (doloop_code): Prevent NULL pointer + dereference when checking for passing a do-loop variable to a + contained procedure with an interface mismatch. + + 2021-12-11 Harald Anlauf + + Backported from master: + 2021-11-30 Harald Anlauf + + PR fortran/102787 + * array.c (expand_constructor): When encountering a constant array + expression or array section within a constructor, simplify it to + enable better expansion. + + 2021-12-11 Harald Anlauf + + Backported from master: + 2021-10-14 Harald Anlauf + + PR fortran/102717 + * simplify.c (gfc_simplify_reshape): Replace assert by error + message for negative elements in SHAPE array. + + 2021-12-11 Harald Anlauf + + Backported from master: + 2021-11-26 Harald Anlauf + + PR fortran/103411 + * check.c (gfc_check_reshape): Improve check of size of source + array for the RESHAPE intrinsic against the given shape when pad + is not given, and shape is a parameter. Try other simplifications + of shape. + + 2021-12-10 Harald Anlauf + + Backported from master: + 2021-12-07 Harald Anlauf + + PR fortran/103607 + * frontend-passes.c (do_subscript): Ensure that array bounds are + of type INTEGER before performing checks on array subscripts. + + 2021-11-26 Harald Anlauf + + Backported from master: + 2021-11-23 Harald Anlauf + + PR fortran/103392 + * simplify.c (simplify_bound): Do not try to simplify + LBOUND/UBOUND for arrays with POINTER or ALLOCATABLE attribute. + + 2021-11-22 Harald Anlauf + + Backported from master: + 2021-11-21 Harald Anlauf + Steven G. Kargl + + PR fortran/99061 + * trans-intrinsic.c (gfc_lookup_intrinsic): Helper function for + looking up gfortran builtin intrinsics. + (gfc_conv_intrinsic_atrigd): Use it. + (gfc_conv_intrinsic_cotan): Likewise. + (gfc_conv_intrinsic_cotand): Likewise. + (gfc_conv_intrinsic_atan2d): Likewise. + + 2021-11-13 Harald Anlauf + + Backported from master: + 2021-11-10 Harald Anlauf + + PR fortran/103137 + PR fortran/103138 + * check.c (gfc_check_shape): Avoid NULL pointer dereference on + missing ref. + * simplify.c (gfc_simplify_cshift): Avoid NULL pointer dereference + when shape not set. + (gfc_simplify_transpose): Likewise. + + 2021-11-13 Harald Anlauf + + Backported from master: + 2021-10-26 Harald Anlauf + + PR fortran/102816 + * resolve.c (resolve_structure_cons): Reject invalid array spec of + a DT component referenced in a structure constructor. + + 2021-11-13 Harald Anlauf + + Backported from master: + 2021-10-15 Harald Anlauf + Tobias Burnus + + PR fortran/102685 + * decl.c (match_clist_expr): Set rank/shape of clist initializer + to match LHS. + * resolve.c (resolve_structure_cons): In a structure constructor, + compare shapes of array components against declared shape. + + 2021-11-13 Harald Anlauf + + Backported from master: + 2021-11-06 Harald Anlauf + + PR fortran/102715 + * decl.c (add_init_expr_to_sym): Reject rank mismatch between + array and its initializer. + + 2021-11-13 Harald Anlauf + + Backported from master: + 2021-11-05 Harald Anlauf + + PR fortran/102817 + * expr.c (simplify_parameter_variable): Copy shape of referenced + subobject when simplifying. + + 2021-11-13 Harald Anlauf + + Backported from master: + 2021-10-10 Harald Anlauf + + PR fortran/99348 + PR fortran/102521 + * decl.c (add_init_expr_to_sym): Extend initialization of + parameter arrays from scalars to handle derived types. + + 2021-10-23 Harald Anlauf + + Backported from master: + 2021-10-14 Harald Anlauf + + PR fortran/102716 + * check.c (gfc_check_shape): Reorder checks so that invalid KIND + arguments can be detected. + + 2021-10-05 Harald Anlauf + + Backported from master: + 2021-09-30 Harald Anlauf + + PR fortran/102458 + * simplify.c (simplify_size): Resolve expressions used in array + specifications so that SIZE can be simplified. + + 2021-10-05 Harald Anlauf + + Backported from master: + 2021-10-03 Harald Anlauf + + PR fortran/102458 + * expr.c (is_non_constant_intrinsic): Check for intrinsics + excluded in constant expressions (F2018:10.1.12). + (gfc_is_constant_expr): Use that check. + + 2021-09-30 Harald Anlauf + + Backported from master: + 2021-09-13 Harald Anlauf + + PR fortran/82314 + * decl.c (add_init_expr_to_sym): For proper initialization of + array-valued named constants the array bounds need to be + simplified before adding the initializer. + + 2021-09-30 Harald Anlauf + + Backported from master: + 2021-09-29 Harald Anlauf + + PR fortran/102520 + * array.c (expand_constructor): Do not dereference NULL pointer. + + 2021-09-21 Harald Anlauf + + Backported from master: + 2021-09-13 Harald Anlauf + + PR fortran/85130 + * expr.c (find_substring_ref): Handle given substring start and + end indices as signed integers, not unsigned. + + 2021-09-21 Harald Anlauf + + Backported from master: + 2021-09-16 Harald Anlauf + + PR fortran/102287 + * trans-expr.c (gfc_conv_procedure_call): Wrap deallocation of + allocatable components of optional allocatable derived type + procedure arguments with INTENT(OUT) into a presence check. + + 2021-09-21 Harald Anlauf + + Backported from master: + 2021-09-17 Harald Anlauf + + PR fortran/102366 + * trans-decl.c (gfc_finish_var_decl): Disable the warning message + for variables moved from stack to static storange if they are + declared in the main, but allow the move to happen. + + 2021-09-16 Harald Anlauf + + Backported from master: + 2021-09-07 Harald Anlauf + + PR fortran/101327 + * expr.c (find_array_element): When bounds cannot be determined as + constant, return error instead of aborting. + + 2021-09-16 Harald Anlauf + + Backported from master: + 2021-09-09 Harald Anlauf + + PR fortran/98490 + * trans-expr.c (gfc_conv_substring): Do not generate substring + bounds check for implied do loop index variable before it actually + becomes defined. + + 2021-09-10 Paul Thomas + + Backported from master: + 2020-12-29 Paul Thomas + + PR fortran/97612 + * primary.c (build_actual_constructor): Missing allocatable + components are set unallocated using EXPR_NULL. Then missing + components are tested for a default initializer. + + 2021-09-10 Paul Thomas + + Backported from master: + 2021-01-22 Paul Thomas + + PR fortran/98565 + * trans-intrinsic.c (gfc_conv_associated): Do not add a _data + component for scalar class function targets. Instead, fix the + function result and access the _data from that. + + 2021-09-10 Paul Thomas + + Backported from master: + 2020-12-27 Paul Thomas + + PR fortran/97694 + PR fortran/97723 + * check.c (allocatable_check): Select rank temporaries are + permitted even though they are treated as associate variables. + * resolve.c (gfc_resolve_code): Break on select rank as well as + select type so that the block os resolved. + * trans-stmt.c (trans_associate_var): Class associate variables + that are optional dummies must use the backend_decl. + + 2021-09-10 Paul Thomas + + Backported from master: + 2021-01-07 Paul Thomas + + PR fortran/93701 + * resolve.c (find_array_spec): Put static prototype for + resolve_assoc_var before this function and call for associate + variables. + + 2021-09-10 Paul Thomas + + Backported from master: + 2021-01-27 Paul Thomas + + PR fortran/98472 + * trans-array.c (gfc_conv_expr_descriptor): Include elemental + procedure pointers in the assert under the comment 'elemental + function' and eliminate the second, spurious assert. + + 2021-09-10 Paul Thomas + + Backported from master: + 2021-04-20 Paul Thomas + + PR fortran/100110 + * trans-decl.c (gfc_get_symbol_decl): Replace test for host + association with a check that the current and symbol namespaces + are the same. + + 2021-08-30 Paul Thomas + + Backported from master: + 2021-05-06 Paul Thomas + + PR fortran/46691 + PR fortran/99819 + * class.c (gfc_build_class_symbol): Remove the error that + disables assumed size class arrays. Class array types that are + not deferred shape or assumed rank are given a unique name and + placed in the procedure namespace. + * trans-array.c (gfc_trans_g77_array): Obtain the data pointer + for class arrays. + (gfc_trans_dummy_array_bias): Suppress the runtime error for + extent violations in explicit shape class arrays because it + always fails. + * trans-expr.c (gfc_conv_procedure_call): Handle assumed size + class actual arguments passed to non-descriptor formal args by + using the data pointer, stored as the symbol's backend decl. + + 2021-08-28 Paul Thomas + + Backported from master: + 2021-04-03 Paul Thomas + + PR fortran/99818 + * interface.c (compare_parameter): The codimension attribute is + applied to the _data field of class formal arguments. + + 2021-08-28 Paul Thomas + + Backported from master: + 2021-01-27 Paul Thomas + + PR fortran/93924 + PR fortran/93925 + * trans-expr.c (gfc_conv_procedure_call): Suppress the call to + gfc_conv_intrinsic_to_class for unlimited polymorphic procedure + pointers. + (gfc_trans_assignment_1): Similarly suppress class assignment + for class valued procedure pointers. + + 2021-08-28 Paul Thomas + + Backported from master: + 2021-01-08 Paul Thomas + + PR fortran/93794 + * trans-expr.c (gfc_conv_component_ref): Remove the condition + that deferred character length components only be allocatable. + + 2021-08-28 Paul Thomas + + Backported from master: + 2021-03-13 Paul Thomas + + PR fortran/99125 + * trans-array.c (gfc_conv_expr_descriptor): For deferred length + length components use the ss_info string length instead of + gfc_get_expr_charlen. Make sure that the deferred string length + is a variable before assigning to it. Otherwise use the expr. + * trans-expr.c (gfc_conv_string_length): Make sure that the + deferred string length is a variable before assigning to it. + + 2021-08-26 Harald Anlauf + + Backported from master: + 2021-08-24 Harald Anlauf + + PR fortran/98411 + * trans-decl.c (gfc_finish_var_decl): Adjust check to handle + implicit SAVE as well as variables in the main program. Improve + warning message text. + + 2021-07-30 Harald Anlauf + + Backported from master: + 2021-07-21 Harald Anlauf + + PR fortran/101514 + * target-memory.c (gfc_interpret_derived): Size of array component + of derived type can only be computed here for explicit shape. + * trans-types.c (gfc_get_nodesc_array_type): Do not dereference + NULL pointers. + + 2021-07-30 Harald Anlauf + + Backported from master: + 2021-07-23 Harald Anlauf + + PR fortran/101536 + * check.c (array_check): Adjust check for the case of CLASS + arrays. + + 2021-07-28 Harald Anlauf + + Backported from master: + 2021-07-18 Harald Anlauf + + PR fortran/101084 + * io.c (resolve_tag_format): Extend FORMAT check to unknown type. + + 2021-07-16 Harald Anlauf + + Backported from master: + 2021-07-14 Harald Anlauf + + PR fortran/100949 + * trans-expr.c (gfc_trans_class_init_assign): Call + gfc_conv_expr_present only for dummy variables. + + 2021-07-12 Thomas Koenig + + Backported from master: + 2021-07-06 Thomas Koenig + + PR fortran/100227 + * frontend-passes.c (traverse_io_block): Adjust test for + when a variable is eligible for the transformation to + array slice. + + 2021-06-18 Harald Anlauf + + Backported from master: + 2021-06-16 Harald Anlauf + + PR fortran/95501 + PR fortran/95502 + * expr.c (gfc_check_pointer_assign): Avoid NULL pointer + dereference. + * match.c (gfc_match_pointer_assignment): Likewise. + * parse.c (gfc_check_do_variable): Avoid comparison with NULL + symtree. + + 2021-06-16 José Rui Faustino de Sousa + + PR fortran/82376 + * trans-expr.c (gfc_conv_procedure_call): Evaluate function result + and then pass a pointer. + + 2021-06-04 Harald Anlauf + + Backported from master: + 2021-06-04 Harald Anlauf + + PR fortran/99839 + * frontend-passes.c (inline_matmul_assign): Do not inline matmul + if the assignment to the resulting array if it is not of canonical + type (real/integer/complex/logical). + + 2021-05-28 Harald Anlauf + + Backported from master: + 2021-05-17 Harald Anlauf + + PR fortran/98411 + * trans-decl.c (gfc_finish_var_decl): Add check for explicit SAVE + attribute. + + 2021-05-05 Harald Anlauf + + Backported from master: + 2021-05-05 Harald Anlauf + + PR fortran/100274 + * interface.c (gfc_compare_actual_formal): Continue checks after + emitting warning for argument length mismatch. + * trans-expr.c (gfc_conv_procedure_call): Check for NULL pointer + dereference. + + 2021-04-29 Tobias Burnus + + Backported from master: + 2021-04-28 Tobias Burnus + + * openmp.c (gfc_match_omp_variable_list): Gobble whitespace before + checking whether a '%' or parenthesis-open follows as next character. + + 2021-04-27 Harald Anlauf + + Backported from master: + 2021-04-24 Harald Anlauf + + PR fortran/100154 + * check.c (variable_check): Allow function reference having a data + pointer result. + (arg_strlen_is_zero): New function. + (gfc_check_fgetputc_sub): Add static check of character and status + arguments. + (gfc_check_fgetput_sub): Likewise. + * intrinsic.c (add_subroutines): Fix argument name for the + character argument to intrinsic subroutines fget[c], fput[c]. + + 2021-04-18 Harald Anlauf + + Backported from master: + 2021-04-16 Harald Anlauf + Paul Thomas + + PR fortran/63797 + * module.c (write_symtree): Do not write interface of intrinsic + procedure to module file for F2003 and newer. + + 2021-04-12 Tobias Burnus + + Backported from master: + 2021-04-09 Tobias Burnus + + PR fortran/99817 + * trans-types.c (gfc_get_function_type): Also generate hidden + coarray argument for character arguments. + 2021-04-08 Release Manager * GCC 10.3.0 released. diff -Nrcpad gcc-10.3.0/gcc/fortran/array.c gcc-10.4.0/gcc/fortran/array.c *** gcc-10.3.0/gcc/fortran/array.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/fortran/array.c Tue Jun 28 08:54:28 2022 *************** match_array_element_spec (gfc_array_spec *** 492,497 **** --- 492,499 ---- if (!gfc_expr_check_typed (*upper, gfc_current_ns, false)) return AS_UNKNOWN; + gfc_try_simplify_expr (*upper, 0); + if (((*upper)->expr_type == EXPR_CONSTANT && (*upper)->ts.type != BT_INTEGER) || ((*upper)->expr_type == EXPR_FUNCTION *************** match_array_element_spec (gfc_array_spec *** 524,529 **** --- 526,533 ---- if (!gfc_expr_check_typed (*upper, gfc_current_ns, false)) return AS_UNKNOWN; + gfc_try_simplify_expr (*upper, 0); + if (((*upper)->expr_type == EXPR_CONSTANT && (*upper)->ts.type != BT_INTEGER) || ((*upper)->expr_type == EXPR_FUNCTION *************** expand_constructor (gfc_constructor_base *** 1798,1806 **** --- 1802,1819 ---- e = c->expr; + if (e == NULL) + return false; + if (empty_constructor) empty_ts = e->ts; + /* Simplify constant array expression/section within constructor. */ + if (e->expr_type == EXPR_VARIABLE && e->rank > 0 && e->ref + && e->symtree && e->symtree->n.sym + && e->symtree->n.sym->attr.flavor == FL_PARAMETER) + gfc_simplify_expr (e, 0); + if (e->expr_type == EXPR_ARRAY) { if (!expand_constructor (e->value.constructor)) *************** gfc_expand_constructor (gfc_expr *e, boo *** 1870,1875 **** --- 1883,1891 ---- gfc_expr *f; bool rc; + if (gfc_is_size_zero_array (e)) + return true; + /* If we can successfully get an array element at the max array size then the array is too big to expand, so we just return. */ f = gfc_get_array_element (e, flag_max_array_constructor); *************** gfc_copy_iterator (gfc_iterator *src) *** 2283,2290 **** /********* Subroutines for determining the size of an array *********/ /* These are needed just to accommodate RESHAPE(). There are no ! diagnostics here, we just return a negative number if something ! goes wrong. */ /* Get the size of single dimension of an array specification. The --- 2299,2305 ---- /********* Subroutines for determining the size of an array *********/ /* These are needed just to accommodate RESHAPE(). There are no ! diagnostics here, we just return false if something goes wrong. */ /* Get the size of single dimension of an array specification. The *************** spec_dimen_size (gfc_array_spec *as, int *** 2317,2322 **** --- 2332,2340 ---- mpz_add_ui (*result, *result, 1); + if (mpz_cmp_si (*result, 0) < 0) + mpz_set_si (*result, 0); + return true; } *************** gfc_ref_dimen_size (gfc_array_ref *ar, i *** 2390,2401 **** { stride_expr = gfc_copy_expr(ar->stride[dimen]); ! if(!gfc_simplify_expr(stride_expr, 1)) ! gfc_internal_error("Simplification error"); ! ! if (stride_expr->expr_type != EXPR_CONSTANT ! || mpz_cmp_ui (stride_expr->value.integer, 0) == 0) { mpz_clear (stride); return false; } --- 2408,2418 ---- { stride_expr = gfc_copy_expr(ar->stride[dimen]); ! if (!gfc_simplify_expr (stride_expr, 1) ! || stride_expr->expr_type != EXPR_CONSTANT ! || mpz_cmp_ui (stride_expr->value.integer, 0) == 0) { + gfc_free_expr (stride_expr); mpz_clear (stride); return false; } diff -Nrcpad gcc-10.3.0/gcc/fortran/check.c gcc-10.4.0/gcc/fortran/check.c *** gcc-10.3.0/gcc/fortran/check.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/fortran/check.c Tue Jun 28 08:54:28 2022 *************** bin2real (gfc_expr *x, int kind) *** 289,295 **** } ! /* Fortran 2018 treats a BOZ as simply a string of bits. gfc_boz2real () converts the string into a REAL of the appropriate kind. The treatment of the sign bit is processor dependent. */ --- 289,295 ---- } ! /* Fortran 2018 treats a BOZ as simply a string of bits. gfc_boz2real () converts the string into a REAL of the appropriate kind. The treatment of the sign bit is processor dependent. */ *************** gfc_boz2real (gfc_expr *x, int kind) *** 377,388 **** } ! /* Fortran 2018 treats a BOZ as simply a string of bits. gfc_boz2int () converts the string into an INTEGER of the appropriate kind. The treatment of the sign bit is processor dependent. If the converted value exceeds the range of the type, then wrap-around semantics are applied. */ ! bool gfc_boz2int (gfc_expr *x, int kind) { --- 377,388 ---- } ! /* Fortran 2018 treats a BOZ as simply a string of bits. gfc_boz2int () converts the string into an INTEGER of the appropriate kind. The treatment of the sign bit is processor dependent. If the converted value exceeds the range of the type, then wrap-around semantics are applied. */ ! bool gfc_boz2int (gfc_expr *x, int kind) { *************** logical_array_check (gfc_expr *array, in *** 731,742 **** static bool array_check (gfc_expr *e, int n) { ! if (e->ts.type == BT_CLASS && gfc_expr_attr (e).class_ok && CLASS_DATA (e)->attr.dimension && CLASS_DATA (e)->as->rank) { gfc_add_class_array_ref (e); - return true; } if (e->rank != 0 && e->ts.type != BT_PROCEDURE) --- 731,741 ---- static bool array_check (gfc_expr *e, int n) { ! if (e->rank != 0 && e->ts.type == BT_CLASS && gfc_expr_attr (e).class_ok && CLASS_DATA (e)->attr.dimension && CLASS_DATA (e)->as->rank) { gfc_add_class_array_ref (e); } if (e->rank != 0 && e->ts.type != BT_PROCEDURE) *************** allocatable_check (gfc_expr *e, int n) *** 975,981 **** symbol_attribute attr; attr = gfc_variable_attr (e, NULL); ! if (!attr.allocatable || attr.associate_var) { gfc_error ("%qs argument of %qs intrinsic at %L must be ALLOCATABLE", gfc_current_intrinsic_arg[n]->name, gfc_current_intrinsic, --- 974,981 ---- symbol_attribute attr; attr = gfc_variable_attr (e, NULL); ! if (!attr.allocatable ! || (attr.associate_var && !attr.select_rank_temporary)) { gfc_error ("%qs argument of %qs intrinsic at %L must be ALLOCATABLE", gfc_current_intrinsic_arg[n]->name, gfc_current_intrinsic, *************** variable_check (gfc_expr *e, int n, bool *** 1011,1043 **** if (e->expr_type == EXPR_VARIABLE && e->symtree->n.sym->attr.intent == INTENT_IN && (gfc_current_intrinsic_arg[n]->intent == INTENT_OUT ! || gfc_current_intrinsic_arg[n]->intent == INTENT_INOUT)) { ! gfc_ref *ref; ! bool pointer = e->symtree->n.sym->ts.type == BT_CLASS ! && CLASS_DATA (e->symtree->n.sym) ! ? CLASS_DATA (e->symtree->n.sym)->attr.class_pointer ! : e->symtree->n.sym->attr.pointer; ! ! for (ref = e->ref; ref; ref = ref->next) ! { ! if (pointer && ref->type == REF_COMPONENT) ! break; ! if (ref->type == REF_COMPONENT ! && ((ref->u.c.component->ts.type == BT_CLASS ! && CLASS_DATA (ref->u.c.component)->attr.class_pointer) ! || (ref->u.c.component->ts.type != BT_CLASS ! && ref->u.c.component->attr.pointer))) ! break; ! } ! ! if (!ref) ! { ! gfc_error ("%qs argument of %qs intrinsic at %L cannot be " ! "INTENT(IN)", gfc_current_intrinsic_arg[n]->name, ! gfc_current_intrinsic, &e->where); ! return false; ! } } if (e->expr_type == EXPR_VARIABLE --- 1011,1023 ---- if (e->expr_type == EXPR_VARIABLE && e->symtree->n.sym->attr.intent == INTENT_IN && (gfc_current_intrinsic_arg[n]->intent == INTENT_OUT ! || gfc_current_intrinsic_arg[n]->intent == INTENT_INOUT) ! && !gfc_check_vardef_context (e, false, true, false, NULL)) { ! gfc_error ("%qs argument of %qs intrinsic at %L cannot be INTENT(IN)", ! gfc_current_intrinsic_arg[n]->name, ! gfc_current_intrinsic, &e->where); ! return false; } if (e->expr_type == EXPR_VARIABLE *************** variable_check (gfc_expr *e, int n, bool *** 1054,1059 **** --- 1034,1046 ---- return true; } + /* F2018:R902: function reference having a data pointer result. */ + if (e->expr_type == EXPR_FUNCTION + && e->symtree->n.sym->attr.flavor == FL_PROCEDURE + && e->symtree->n.sym->attr.function + && e->symtree->n.sym->attr.pointer) + return true; + gfc_error ("%qs argument of %qs intrinsic at %L must be a variable", gfc_current_intrinsic_arg[n]->name, gfc_current_intrinsic, &e->where); *************** gfc_check_intconv (gfc_expr *x) *** 3230,3236 **** || strcmp (gfc_current_intrinsic, "long") == 0) { gfc_error ("%qs intrinsic subprogram at %L has been deprecated. " ! "Use INT intrinsic subprogram.", gfc_current_intrinsic, &x->where); return false; } --- 3217,3223 ---- || strcmp (gfc_current_intrinsic, "long") == 0) { gfc_error ("%qs intrinsic subprogram at %L has been deprecated. " ! "Use INT intrinsic subprogram.", gfc_current_intrinsic, &x->where); return false; } *************** gfc_check_findloc (gfc_actual_arglist *a *** 3958,3964 **** /* Check the kind of the characters argument match. */ if (a1 && v1 && a->ts.kind != v->ts.kind) goto incompat; ! d = ap->next->next->expr; m = ap->next->next->next->expr; k = ap->next->next->next->next->expr; --- 3945,3951 ---- /* Check the kind of the characters argument match. */ if (a1 && v1 && a->ts.kind != v->ts.kind) goto incompat; ! d = ap->next->next->expr; m = ap->next->next->next->expr; k = ap->next->next->next->next->expr; *************** gfc_check_reshape (gfc_expr *source, gfc *** 4681,4686 **** --- 4668,4674 ---- mpz_t size; mpz_t nelems; int shape_size; + bool shape_is_const; if (!array_check (source, 0)) return false; *************** gfc_check_reshape (gfc_expr *source, gfc *** 4714,4720 **** "than %d elements", &shape->where, GFC_MAX_DIMENSIONS); return false; } ! else if (shape->expr_type == EXPR_ARRAY && gfc_is_constant_expr (shape)) { gfc_expr *e; int i, extent; --- 4702,4712 ---- "than %d elements", &shape->where, GFC_MAX_DIMENSIONS); return false; } ! ! gfc_simplify_expr (shape, 0); ! shape_is_const = gfc_is_constant_expr (shape); ! ! if (shape->expr_type == EXPR_ARRAY && shape_is_const) { gfc_expr *e; int i, extent; *************** gfc_check_reshape (gfc_expr *source, gfc *** 4730,4767 **** gfc_error ("%qs argument of %qs intrinsic at %L has " "negative element (%d)", gfc_current_intrinsic_arg[1]->name, ! gfc_current_intrinsic, &e->where, extent); ! return false; ! } ! } ! } ! else if (shape->expr_type == EXPR_VARIABLE && shape->ref ! && shape->ref->u.ar.type == AR_FULL && shape->ref->u.ar.dimen == 1 ! && shape->ref->u.ar.as ! && shape->ref->u.ar.as->lower[0]->expr_type == EXPR_CONSTANT ! && shape->ref->u.ar.as->lower[0]->ts.type == BT_INTEGER ! && shape->ref->u.ar.as->upper[0]->expr_type == EXPR_CONSTANT ! && shape->ref->u.ar.as->upper[0]->ts.type == BT_INTEGER ! && shape->symtree->n.sym->attr.flavor == FL_PARAMETER ! && shape->symtree->n.sym->value) ! { ! int i, extent; ! gfc_expr *e, *v; ! ! v = shape->symtree->n.sym->value; ! ! for (i = 0; i < shape_size; i++) ! { ! e = gfc_constructor_lookup_expr (v->value.constructor, i); ! if (e == NULL) ! break; ! ! gfc_extract_int (e, &extent); ! ! if (extent < 0) ! { ! gfc_error ("Element %d of actual argument of RESHAPE at %L " ! "cannot be negative", i + 1, &shape->where); return false; } } --- 4722,4728 ---- gfc_error ("%qs argument of %qs intrinsic at %L has " "negative element (%d)", gfc_current_intrinsic_arg[1]->name, ! gfc_current_intrinsic, &shape->where, extent); return false; } } *************** gfc_check_reshape (gfc_expr *source, gfc *** 4838,4845 **** } } ! if (pad == NULL && shape->expr_type == EXPR_ARRAY ! && gfc_is_constant_expr (shape) && !(source->expr_type == EXPR_VARIABLE && source->symtree->n.sym->as && source->symtree->n.sym->as->type == AS_ASSUMED_SIZE)) { --- 4799,4805 ---- } } ! if (pad == NULL && shape->expr_type == EXPR_ARRAY && shape_is_const && !(source->expr_type == EXPR_VARIABLE && source->symtree->n.sym->as && source->symtree->n.sym->as->type == AS_ASSUMED_SIZE)) { *************** gfc_check_shape (gfc_expr *source, gfc_e *** 5068,5076 **** --- 5028,5046 ---- if (gfc_invalid_null_arg (source)) return false; + if (!kind_check (kind, 1, BT_INTEGER)) + return false; + if (kind && !gfc_notify_std (GFC_STD_F2003, "%qs intrinsic " + "with KIND argument at %L", + gfc_current_intrinsic, &kind->where)) + return false; + if (source->rank == 0 || source->expr_type != EXPR_VARIABLE) return true; + if (source->ref == NULL) + return false; + ar = gfc_find_array_ref (source); if (ar->as && ar->as->type == AS_ASSUMED_SIZE && ar->type == AR_FULL) *************** gfc_check_shape (gfc_expr *source, gfc_e *** 5080,5092 **** return false; } - if (!kind_check (kind, 1, BT_INTEGER)) - return false; - if (kind && !gfc_notify_std (GFC_STD_F2003, "%qs intrinsic " - "with KIND argument at %L", - gfc_current_intrinsic, &kind->where)) - return false; - return true; } --- 5050,5055 ---- *************** gfc_check_sizeof (gfc_expr *arg) *** 5161,5166 **** --- 5124,5132 ---- return false; } + if (illegal_boz_arg (arg)) + return false; + /* TYPE(*) is acceptable if and only if it uses an array descriptor. */ if (arg->ts.type == BT_ASSUMED && (arg->symtree->n.sym->as == NULL *************** is_c_interoperable (gfc_expr *expr, cons *** 5202,5207 **** --- 5168,5185 ---- { *msg = NULL; + if (expr->expr_type == EXPR_NULL) + { + *msg = "NULL() is not interoperable"; + return false; + } + + if (expr->ts.type == BT_BOZ) + { + *msg = "BOZ literal constant"; + return false; + } + if (expr->ts.type == BT_CLASS) { *msg = "Expression is polymorphic"; *************** gfc_check_spread (gfc_expr *source, gfc_ *** 5682,5687 **** --- 5660,5678 ---- functions). */ bool + arg_strlen_is_zero (gfc_expr *c, int n) + { + if (gfc_var_strlen (c) == 0) + { + gfc_error ("%qs argument of %qs intrinsic at %L must have " + "length at least 1", gfc_current_intrinsic_arg[n]->name, + gfc_current_intrinsic, &c->where); + return true; + } + return false; + } + + bool gfc_check_fgetputc_sub (gfc_expr *unit, gfc_expr *c, gfc_expr *status) { if (!type_check (unit, 0, BT_INTEGER)) *************** gfc_check_fgetputc_sub (gfc_expr *unit, *** 5694,5706 **** return false; if (!kind_value_check (c, 1, gfc_default_character_kind)) return false; if (status == NULL) return true; if (!type_check (status, 2, BT_INTEGER) || !kind_value_check (status, 2, gfc_default_integer_kind) ! || !scalar_check (status, 2)) return false; return true; --- 5685,5703 ---- return false; if (!kind_value_check (c, 1, gfc_default_character_kind)) return false; + if (strcmp (gfc_current_intrinsic, "fgetc") == 0 + && !variable_check (c, 1, false)) + return false; + if (arg_strlen_is_zero (c, 1)) + return false; if (status == NULL) return true; if (!type_check (status, 2, BT_INTEGER) || !kind_value_check (status, 2, gfc_default_integer_kind) ! || !scalar_check (status, 2) ! || !variable_check (status, 2, false)) return false; return true; *************** gfc_check_fgetput_sub (gfc_expr *c, gfc_ *** 5721,5733 **** return false; if (!kind_value_check (c, 0, gfc_default_character_kind)) return false; if (status == NULL) return true; if (!type_check (status, 1, BT_INTEGER) || !kind_value_check (status, 1, gfc_default_integer_kind) ! || !scalar_check (status, 1)) return false; return true; --- 5718,5736 ---- return false; if (!kind_value_check (c, 0, gfc_default_character_kind)) return false; + if (strcmp (gfc_current_intrinsic, "fget") == 0 + && !variable_check (c, 0, false)) + return false; + if (arg_strlen_is_zero (c, 0)) + return false; if (status == NULL) return true; if (!type_check (status, 1, BT_INTEGER) || !kind_value_check (status, 1, gfc_default_integer_kind) ! || !scalar_check (status, 1) ! || !variable_check (status, 1, false)) return false; return true; *************** gfc_calculate_transfer_sizes (gfc_expr * *** 6123,6130 **** * representation is not shorter than that of SOURCE. * If SIZE is present, the result is an array of rank one and size SIZE. */ ! if (result_elt_size == 0 && *source_size > 0 && !size ! && mold->expr_type == EXPR_ARRAY) { gfc_error ("% argument of % intrinsic at %L is an " "array and shall not have storage size 0 when % " --- 6126,6133 ---- * representation is not shorter than that of SOURCE. * If SIZE is present, the result is an array of rank one and size SIZE. */ ! if (result_elt_size == 0 && *source_size > 0 ! && (mold->expr_type == EXPR_ARRAY || mold->rank)) { gfc_error ("% argument of % intrinsic at %L is an " "array and shall not have storage size 0 when % " diff -Nrcpad gcc-10.3.0/gcc/fortran/class.c gcc-10.4.0/gcc/fortran/class.c *** gcc-10.3.0/gcc/fortran/class.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/fortran/class.c Tue Jun 28 08:54:28 2022 *************** gfc_get_len_component (gfc_expr *e, int *** 628,633 **** --- 628,634 ---- component '_vptr' which determines the dynamic type. When this CLASS entity is unlimited polymorphic, then also add a component '_len' to store the length of string when that is stored in it. */ + static int ctr = 0; bool gfc_build_class_symbol (gfc_typespec *ts, symbol_attribute *attr, *************** gfc_build_class_symbol (gfc_typespec *ts *** 643,655 **** gcc_assert (as); - if (*as && (*as)->type == AS_ASSUMED_SIZE) - { - gfc_error ("Assumed size polymorphic objects or components, such " - "as that at %C, have not yet been implemented"); - return false; - } - if (attr->class_ok) /* Class container has already been built. */ return true; --- 644,649 ---- *************** gfc_build_class_symbol (gfc_typespec *ts *** 691,697 **** else ns = ts->u.derived->ns; ! gfc_find_symbol (name, ns, 0, &fclass); if (fclass == NULL) { gfc_symtree *st; --- 685,714 ---- else ns = ts->u.derived->ns; ! /* Although this might seem to be counterintuitive, we can build separate ! class types with different array specs because the TKR interface checks ! work on the declared type. All array type other than deferred shape or ! assumed rank are added to the function namespace to ensure that they ! are properly distinguished. */ ! if (attr->dummy && !attr->codimension && (*as) ! && !((*as)->type == AS_DEFERRED || (*as)->type == AS_ASSUMED_RANK)) ! { ! char *sname; ! ns = gfc_current_ns; ! gfc_find_symbol (name, ns, 0, &fclass); ! /* If a local class type with this name already exists, update the ! name with an index. */ ! if (fclass) ! { ! fclass = NULL; ! sname = xasprintf ("%s_%d", name, ++ctr); ! free (name); ! name = sname; ! } ! } ! else ! gfc_find_symbol (name, ns, 0, &fclass); ! if (fclass == NULL) { gfc_symtree *st; diff -Nrcpad gcc-10.3.0/gcc/fortran/decl.c gcc-10.4.0/gcc/fortran/decl.c *** gcc-10.3.0/gcc/fortran/decl.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/fortran/decl.c Tue Jun 28 08:54:28 2022 *************** match_clist_expr (gfc_expr **result, gfc *** 896,904 **** expr->ts = *ts; expr->value.constructor = array_head; - expr->rank = as->rank; - expr->shape = gfc_get_shape (expr->rank); - /* Validate sizes. We built expr ourselves, so cons_size will be constant (we fail above for non-constant expressions). We still need to verify that the sizes match. */ --- 896,901 ---- *************** match_clist_expr (gfc_expr **result, gfc *** 911,916 **** --- 908,919 ---- mpz_clear (cons_size); if (cmp) goto cleanup; + + /* Set the rank/shape to match the LHS as auto-reshape is implied. */ + expr->rank = as->rank; + expr->shape = gfc_get_shape (as->rank); + for (int i = 0; i < as->rank; ++i) + spec_dimen_size (as, i, &expr->shape[i]); } /* Make sure scalar types match. */ *************** add_init_expr_to_sym (const char *name, *** 2020,2025 **** --- 2023,2036 ---- } } + if (sym->attr.flavor == FL_PARAMETER && sym->attr.dimension && sym->as + && sym->as->rank && init->rank && init->rank != sym->as->rank) + { + gfc_error ("Rank mismatch of array at %L and its initializer " + "(%d/%d)", &sym->declared_at, sym->as->rank, init->rank); + return false; + } + /* If sym is implied-shape, set its upper bounds from init. */ if (sym->attr.flavor == FL_PARAMETER && sym->attr.dimension && sym->as->type == AS_IMPLIED_SHAPE) *************** add_init_expr_to_sym (const char *name, *** 2078,2083 **** --- 2089,2112 ---- sym->as->type = AS_EXPLICIT; } + /* Ensure that explicit bounds are simplified. */ + if (sym->attr.flavor == FL_PARAMETER && sym->attr.dimension + && sym->as->type == AS_EXPLICIT) + { + for (int dim = 0; dim < sym->as->rank; ++dim) + { + gfc_expr *e; + + e = sym->as->lower[dim]; + if (e->expr_type != EXPR_CONSTANT) + gfc_reduce_init_expr (e); + + e = sym->as->upper[dim]; + if (e->expr_type != EXPR_CONSTANT) + gfc_reduce_init_expr (e); + } + } + /* Need to check if the expression we initialized this to was one of the iso_c_binding named constants. If so, and we're a parameter (constant), let it be iso_c. *************** add_init_expr_to_sym (const char *name, *** 2105,2116 **** gfc_expr *array; int n; if (sym->attr.flavor == FL_PARAMETER ! && init->expr_type == EXPR_CONSTANT ! && spec_size (sym->as, &size) ! && mpz_cmp_si (size, 0) > 0) { array = gfc_get_array_expr (init->ts.type, init->ts.kind, &init->where); for (n = 0; n < (int)mpz_get_si (size); n++) gfc_constructor_append_expr (&array->value.constructor, n == 0 --- 2134,2149 ---- gfc_expr *array; int n; if (sym->attr.flavor == FL_PARAMETER ! && gfc_is_constant_expr (init) ! && (init->expr_type == EXPR_CONSTANT ! || init->expr_type == EXPR_STRUCTURE) ! && spec_size (sym->as, &size) ! && mpz_cmp_si (size, 0) > 0) { array = gfc_get_array_expr (init->ts.type, init->ts.kind, &init->where); + if (init->ts.type == BT_DERIVED) + array->ts.u.derived = init->ts.u.derived; for (n = 0; n < (int)mpz_get_si (size); n++) gfc_constructor_append_expr (&array->value.constructor, n == 0 diff -Nrcpad gcc-10.3.0/gcc/fortran/expr.c gcc-10.4.0/gcc/fortran/expr.c *** gcc-10.3.0/gcc/fortran/expr.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/fortran/expr.c Tue Jun 28 08:54:28 2022 *************** done: *** 990,995 **** --- 990,1023 ---- } + /* Standard intrinsics listed under F2018:10.1.12 (6), which are excluded in + constant expressions, except TRANSFER (c.f. item (8)), which would need + separate treatment. */ + + static bool + is_non_constant_intrinsic (gfc_expr *e) + { + if (e->expr_type == EXPR_FUNCTION + && e->value.function.isym) + { + switch (e->value.function.isym->id) + { + case GFC_ISYM_COMMAND_ARGUMENT_COUNT: + case GFC_ISYM_GET_TEAM: + case GFC_ISYM_NULL: + case GFC_ISYM_NUM_IMAGES: + case GFC_ISYM_TEAM_NUMBER: + case GFC_ISYM_THIS_IMAGE: + return true; + + default: + return false; + } + } + return false; + } + + /* Determine if an expression is constant in the sense of F08:7.1.12. * This function expects that the expression has already been simplified. */ *************** gfc_is_constant_expr (gfc_expr *e) *** 1023,1028 **** --- 1051,1060 ---- gcc_assert (e->symtree || e->value.function.esym || e->value.function.isym); + /* Check for intrinsics excluded in constant expressions. */ + if (e->value.function.isym && is_non_constant_intrinsic (e)) + return false; + /* Call to intrinsic with at least one argument. */ if (e->value.function.isym && e->value.function.actual) { *************** find_array_element (gfc_constructor_base *** 1337,1343 **** for (i = 0; i < ar->dimen; i++) { if (!gfc_reduce_init_expr (ar->as->lower[i]) ! || !gfc_reduce_init_expr (ar->as->upper[i])) { t = false; cons = NULL; --- 1369,1377 ---- for (i = 0; i < ar->dimen; i++) { if (!gfc_reduce_init_expr (ar->as->lower[i]) ! || !gfc_reduce_init_expr (ar->as->upper[i]) ! || ar->as->upper[i]->expr_type != EXPR_CONSTANT ! || ar->as->lower[i]->expr_type != EXPR_CONSTANT) { t = false; cons = NULL; *************** find_array_element (gfc_constructor_base *** 1351,1359 **** goto depart; } - gcc_assert (ar->as->upper[i]->expr_type == EXPR_CONSTANT - && ar->as->lower[i]->expr_type == EXPR_CONSTANT); - /* Check the bounds. */ if ((ar->as->upper[i] && mpz_cmp (e->value.integer, --- 1385,1390 ---- *************** find_array_section (gfc_expr *expr, gfc_ *** 1560,1566 **** { if ((begin && begin->expr_type != EXPR_CONSTANT) || (finish && finish->expr_type != EXPR_CONSTANT) ! || (step && step->expr_type != EXPR_CONSTANT)) { t = false; goto cleanup; --- 1591,1599 ---- { if ((begin && begin->expr_type != EXPR_CONSTANT) || (finish && finish->expr_type != EXPR_CONSTANT) ! || (step && step->expr_type != EXPR_CONSTANT) ! || !lower ! || !upper) { t = false; goto cleanup; *************** find_substring_ref (gfc_expr *p, gfc_exp *** 1725,1732 **** *newp = gfc_copy_expr (p); free ((*newp)->value.character.string); ! end = (gfc_charlen_t) mpz_get_ui (p->ref->u.ss.end->value.integer); ! start = (gfc_charlen_t) mpz_get_ui (p->ref->u.ss.start->value.integer); if (end >= start) length = end - start + 1; else --- 1758,1765 ---- *newp = gfc_copy_expr (p); free ((*newp)->value.character.string); ! end = (gfc_charlen_t) mpz_get_si (p->ref->u.ss.end->value.integer); ! start = (gfc_charlen_t) mpz_get_si (p->ref->u.ss.start->value.integer); if (end >= start) length = end - start + 1; else *************** simplify_parameter_variable (gfc_expr *p *** 2095,2100 **** --- 2128,2135 ---- if (e == NULL) return false; + gfc_free_shape (&e->shape, e->rank); + e->shape = gfc_copy_shape (p->shape, p->rank); e->rank = p->rank; if (e->ts.type == BT_CHARACTER && p->ts.u.cl) *************** gfc_simplify_expr (gfc_expr *p, int type *** 2183,2192 **** && gfc_intrinsic_func_interface (p, 1) == MATCH_ERROR) return false; ! if (p->expr_type == EXPR_FUNCTION) { ! if (p->symtree) ! isym = gfc_find_function (p->symtree->n.sym->name); if (isym && isym->elemental) scalarize_intrinsic_call (p, false); } --- 2218,2226 ---- && gfc_intrinsic_func_interface (p, 1) == MATCH_ERROR) return false; ! if (p->symtree && (p->value.function.isym || p->ts.type == BT_UNKNOWN)) { ! isym = gfc_find_function (p->symtree->n.sym->name); if (isym && isym->elemental) scalarize_intrinsic_call (p, false); } *************** gfc_simplify_expr (gfc_expr *p, int type *** 2295,2300 **** --- 2329,2359 ---- } + /* Try simplification of an expression via gfc_simplify_expr. + When an error occurs (arithmetic or otherwise), roll back. */ + + bool + gfc_try_simplify_expr (gfc_expr *e, int type) + { + gfc_expr *n; + bool t, saved_div0; + + if (e == NULL || e->expr_type == EXPR_CONSTANT) + return true; + + saved_div0 = gfc_seen_div0; + gfc_seen_div0 = false; + n = gfc_copy_expr (e); + t = gfc_simplify_expr (n, type) && !gfc_seen_div0; + if (t) + gfc_replace_expr (e, n); + else + gfc_free_expr (n); + gfc_seen_div0 = saved_div0; + return t; + } + + /* Returns the type of an expression with the exception that iterator variables are automatically integers no matter what else they may be declared as. */ *************** gfc_check_pointer_assign (gfc_expr *lval *** 3809,3814 **** --- 3868,3876 ---- int proc_pointer; bool same_rank; + if (!lvalue->symtree) + return false; + lhs_attr = gfc_expr_attr (lvalue); if (lvalue->ts.type == BT_UNKNOWN && !lhs_attr.proc_pointer) { *************** gfc_check_pointer_assign (gfc_expr *lval *** 4273,4278 **** --- 4335,4341 ---- { gfc_symbol *sym; bool target; + gfc_ref *ref; if (gfc_is_size_zero_array (rvalue)) { *************** gfc_check_pointer_assign (gfc_expr *lval *** 4302,4307 **** --- 4365,4403 ---- &rvalue->where); return false; } + + for (ref = rvalue->ref; ref; ref = ref->next) + { + switch (ref->type) + { + case REF_ARRAY: + for (int n = 0; n < ref->u.ar.dimen; n++) + if (!gfc_is_constant_expr (ref->u.ar.start[n]) + || !gfc_is_constant_expr (ref->u.ar.end[n]) + || !gfc_is_constant_expr (ref->u.ar.stride[n])) + { + gfc_error ("Every subscript of target specification " + "at %L must be a constant expression", + &ref->u.ar.where); + return false; + } + break; + + case REF_SUBSTRING: + if (!gfc_is_constant_expr (ref->u.ss.start) + || !gfc_is_constant_expr (ref->u.ss.end)) + { + gfc_error ("Substring starting and ending points of target " + "specification at %L must be constant expressions", + &ref->u.ss.start->where); + return false; + } + break; + + default: + break; + } + } } else { *************** gfc_get_variable_expr (gfc_symtree *var) *** 5088,5094 **** if (var->n.sym->attr.flavor != FL_PROCEDURE && ((var->n.sym->as != NULL && var->n.sym->ts.type != BT_CLASS) ! || (var->n.sym->ts.type == BT_CLASS && CLASS_DATA (var->n.sym) && CLASS_DATA (var->n.sym)->as))) { e->rank = var->n.sym->ts.type == BT_CLASS --- 5184,5191 ---- if (var->n.sym->attr.flavor != FL_PROCEDURE && ((var->n.sym->as != NULL && var->n.sym->ts.type != BT_CLASS) ! || (var->n.sym->ts.type == BT_CLASS && var->n.sym->ts.u.derived ! && CLASS_DATA (var->n.sym) && CLASS_DATA (var->n.sym)->as))) { e->rank = var->n.sym->ts.type == BT_CLASS *************** gfc_check_vardef_context (gfc_expr* e, b *** 6168,6177 **** { if (ptr_component && ref->type == REF_COMPONENT) check_intentin = false; ! if (ref->type == REF_COMPONENT && ref->u.c.component->attr.pointer) { ! ptr_component = true; ! if (!pointer) check_intentin = false; } } --- 6265,6277 ---- { if (ptr_component && ref->type == REF_COMPONENT) check_intentin = false; ! if (ref->type == REF_COMPONENT) { ! gfc_component *comp = ref->u.c.component; ! ptr_component = (comp->ts.type == BT_CLASS && comp->attr.class_ok) ! ? CLASS_DATA (comp)->attr.class_pointer ! : comp->attr.pointer; ! if (ptr_component && !pointer) check_intentin = false; } } diff -Nrcpad gcc-10.3.0/gcc/fortran/frontend-passes.c gcc-10.4.0/gcc/fortran/frontend-passes.c *** gcc-10.3.0/gcc/fortran/frontend-passes.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/fortran/frontend-passes.c Tue Jun 28 08:54:28 2022 *************** traverse_io_block (gfc_code *code, bool *** 1299,1306 **** std::swap (start->value.op.op1, start->value.op.op2); gcc_fallthrough (); case INTRINSIC_MINUS: ! if ((start->value.op.op1->expr_type!= EXPR_VARIABLE ! && start->value.op.op2->expr_type != EXPR_CONSTANT) || start->value.op.op1->ref) return false; if (!stack_top || !stack_top->iter --- 1299,1306 ---- std::swap (start->value.op.op1, start->value.op.op2); gcc_fallthrough (); case INTRINSIC_MINUS: ! if (start->value.op.op1->expr_type!= EXPR_VARIABLE ! || start->value.op.op2->expr_type != EXPR_CONSTANT || start->value.op.op1->ref) return false; if (!stack_top || !stack_top->iter *************** doloop_code (gfc_code **c, int *walk_sub *** 2414,2420 **** do_sym = cl->ext.iterator->var->symtree->n.sym; ! if (a->expr && a->expr->symtree && a->expr->symtree->n.sym == do_sym) { if (f->sym->attr.intent == INTENT_OUT) --- 2414,2420 ---- do_sym = cl->ext.iterator->var->symtree->n.sym; ! if (a->expr && a->expr->symtree && f->sym && a->expr->symtree->n.sym == do_sym) { if (f->sym->attr.intent == INTENT_OUT) *************** do_subscript (gfc_expr **e) *** 2677,2682 **** --- 2677,2683 ---- { if (ar->as->lower[i] && ar->as->lower[i]->expr_type == EXPR_CONSTANT + && ar->as->lower[i]->ts.type == BT_INTEGER && mpz_cmp (val, ar->as->lower[i]->value.integer) < 0) gfc_warning (warn, "Array reference at %L out of bounds " "(%ld < %ld) in loop beginning at %L", *************** do_subscript (gfc_expr **e) *** 2686,2691 **** --- 2687,2693 ---- if (ar->as->upper[i] && ar->as->upper[i]->expr_type == EXPR_CONSTANT + && ar->as->upper[i]->ts.type == BT_INTEGER && mpz_cmp (val, ar->as->upper[i]->value.integer) > 0) gfc_warning (warn, "Array reference at %L out of bounds " "(%ld > %ld) in loop beginning at %L", *************** do_subscript (gfc_expr **e) *** 2701,2706 **** --- 2703,2709 ---- { if (ar->as->lower[i] && ar->as->lower[i]->expr_type == EXPR_CONSTANT + && ar->as->lower[i]->ts.type == BT_INTEGER && mpz_cmp (val, ar->as->lower[i]->value.integer) < 0) gfc_warning (warn, "Array reference at %L out of bounds " "(%ld < %ld) in loop beginning at %L", *************** do_subscript (gfc_expr **e) *** 2710,2715 **** --- 2713,2719 ---- if (ar->as->upper[i] && ar->as->upper[i]->expr_type == EXPR_CONSTANT + && ar->as->upper[i]->ts.type == BT_INTEGER && mpz_cmp (val, ar->as->upper[i]->value.integer) > 0) gfc_warning (warn, "Array reference at %L out of bounds " "(%ld > %ld) in loop beginning at %L", *************** inline_matmul_assign (gfc_code **c, int *** 3919,3924 **** --- 3923,3941 ---- if (m_case == none) return 0; + /* We only handle assignment to numeric or logical variables. */ + switch(expr1->ts.type) + { + case BT_INTEGER: + case BT_LOGICAL: + case BT_REAL: + case BT_COMPLEX: + break; + + default: + return 0; + } + ns = insert_block (); /* Assign the type of the zero expression for initializing the resulting diff -Nrcpad gcc-10.3.0/gcc/fortran/gfortran.h gcc-10.4.0/gcc/fortran/gfortran.h *** gcc-10.3.0/gcc/fortran/gfortran.h Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/fortran/gfortran.h Tue Jun 28 08:54:28 2022 *************** void gfc_free_ref_list (gfc_ref *); *** 3307,3312 **** --- 3307,3313 ---- void gfc_type_convert_binary (gfc_expr *, int); bool gfc_is_constant_expr (gfc_expr *); bool gfc_simplify_expr (gfc_expr *, int); + bool gfc_try_simplify_expr (gfc_expr *, int); int gfc_has_vector_index (gfc_expr *); gfc_expr *gfc_get_expr (void); diff -Nrcpad gcc-10.3.0/gcc/fortran/gfortran.info gcc-10.4.0/gcc/fortran/gfortran.info *** gcc-10.3.0/gcc/fortran/gfortran.info Thu Apr 8 12:06:42 2021 --- gcc-10.4.0/gcc/fortran/gfortran.info Tue Jun 28 09:09:22 2022 *************** *** 1,4 **** ! This is gfortran.info, produced by makeinfo version 6.5 from gfortran.texi. Copyright (C) 1999-2020 Free Software Foundation, Inc. --- 1,4 ---- ! This is gfortran.info, produced by makeinfo version 6.8 from gfortran.texi. Copyright (C) 1999-2020 Free Software Foundation, Inc. *************** the other form by either removing 'no-' *** 1549,1555 **** 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 --- 1549,1555 ---- Use of '-fno-underscoring' is not recommended unless you are experimenting with issues such as integration of GNU Fortran into ! existing system environments (vis-à-vis existing libraries, tools, and so on). For example, with '-funderscoring', and assuming that 'j()' and *************** significant help to the GNU Fortran proj *** 19968,19974 **** - Steven Bosscher - Paul Brook - Tobias Burnus ! - Franc,ois-Xavier Coudert - Bud Davis - Jerry DeLisle - Erik Edelmann --- 19968,19974 ---- - Steven Bosscher - Paul Brook - Tobias Burnus ! - François-Xavier Coudert - Bud Davis - Jerry DeLisle - Erik Edelmann *************** significant help to the GNU Fortran proj *** 19990,19996 **** - Tim Prince - Christopher D. Rickett - Richard Sandiford ! - Tobias Schlu"ter - Roger Sayle - Paul Thomas - Andy Vaught --- 19990,19996 ---- - Tim Prince - Christopher D. Rickett - Richard Sandiford ! - Tobias Schlüter - Roger Sayle - Paul Thomas - Andy Vaught *************** patches, and much needed feedback and en *** 20003,20009 **** project: - Bill Clodius ! - Dominique d'Humie`res - Kate Hedstrom - Erik Schnetter - Joost VandeVondele --- 20003,20009 ---- project: - Bill Clodius ! - Dominique d'Humières - Kate Hedstrom - Erik Schnetter - Joost VandeVondele *************** Node: Option Index780098 *** 23580,23582 **** --- 23580,23587 ---- Node: Keyword Index799159  End Tag Table + +  + Local Variables: + coding: utf-8 + End: diff -Nrcpad gcc-10.3.0/gcc/fortran/interface.c gcc-10.4.0/gcc/fortran/interface.c *** gcc-10.3.0/gcc/fortran/interface.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/fortran/interface.c Tue Jun 28 08:54:28 2022 *************** compare_parameter (gfc_symbol *formal, g *** 2326,2331 **** --- 2326,2332 ---- bool rank_check, is_pointer; char err[200]; gfc_component *ppc; + bool codimension = false; /* If the formal arg has type BT_VOID, it's to one of the iso_c_binding procs c_f_pointer or c_f_procpointer, and we need to accept most *************** compare_parameter (gfc_symbol *formal, g *** 2489,2495 **** return false; } ! if (formal->attr.codimension && !gfc_is_coarray (actual)) { if (where) gfc_error ("Actual argument to %qs at %L must be a coarray", --- 2490,2501 ---- return false; } ! if (formal->ts.type == BT_CLASS && formal->attr.class_ok) ! codimension = CLASS_DATA (formal)->attr.codimension; ! else ! codimension = formal->attr.codimension; ! ! if (codimension && !gfc_is_coarray (actual)) { if (where) gfc_error ("Actual argument to %qs at %L must be a coarray", *************** compare_parameter (gfc_symbol *formal, g *** 2497,2503 **** return false; } ! if (formal->attr.codimension && formal->attr.allocatable) { gfc_ref *last = NULL; --- 2503,2509 ---- return false; } ! if (codimension && formal->attr.allocatable) { gfc_ref *last = NULL; *************** compare_parameter (gfc_symbol *formal, g *** 2519,2525 **** } } ! if (formal->attr.codimension) { /* F2008, 12.5.2.8 + Corrig 2 (IR F08/0048). */ /* F2018, 12.5.2.8. */ --- 2525,2531 ---- } } ! if (codimension) { /* F2008, 12.5.2.8 + Corrig 2 (IR F08/0048). */ /* F2018, 12.5.2.8. */ *************** compare_parameter (gfc_symbol *formal, g *** 2585,2591 **** return false; } ! if (formal->attr.allocatable && !formal->attr.codimension && actual_attr.codimension) { if (formal->attr.intent == INTENT_OUT) --- 2591,2597 ---- return false; } ! if (formal->attr.allocatable && !codimension && actual_attr.codimension) { if (formal->attr.intent == INTENT_OUT) *************** gfc_compare_actual_formal (gfc_actual_ar *** 3248,3257 **** && f->sym->attr.flavor != FL_PROCEDURE) { if (a->expr->ts.type == BT_CHARACTER && !f->sym->as && where) ! gfc_warning (0, "Character length of actual argument shorter " ! "than of dummy argument %qs (%lu/%lu) at %L", ! f->sym->name, actual_size, formal_size, ! &a->expr->where); else if (where) { /* Emit a warning for -std=legacy and an error otherwise. */ --- 3254,3266 ---- && f->sym->attr.flavor != FL_PROCEDURE) { if (a->expr->ts.type == BT_CHARACTER && !f->sym->as && where) ! { ! gfc_warning (0, "Character length of actual argument shorter " ! "than of dummy argument %qs (%lu/%lu) at %L", ! f->sym->name, actual_size, formal_size, ! &a->expr->where); ! goto skip_size_check; ! } else if (where) { /* Emit a warning for -std=legacy and an error otherwise. */ diff -Nrcpad gcc-10.3.0/gcc/fortran/intrinsic.c gcc-10.4.0/gcc/fortran/intrinsic.c *** gcc-10.3.0/gcc/fortran/intrinsic.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/fortran/intrinsic.c Tue Jun 28 08:54:28 2022 *************** gfc_is_intrinsic (gfc_symbol* sym, int s *** 1138,1143 **** --- 1138,1144 ---- /* Check for attributes which prevent the symbol from being INTRINSIC. */ if (sym->attr.external || sym->attr.contained + || sym->attr.recursive || sym->attr.if_source == IFSRC_IFBODY) return false; *************** add_subroutines (void) *** 3423,3429 **** /* Argument names. These are used as argument keywords and so need to match the documentation. Please keep this list in sorted order. */ static const char ! *a = "a", *c = "count", *cm = "count_max", *com = "command", *cr = "count_rate", *dt = "date", *errmsg = "errmsg", *f = "from", *fp = "frompos", *gt = "get", *h = "harvest", *han = "handler", *length = "length", *ln = "len", *md = "mode", *msk = "mask", --- 3424,3430 ---- /* Argument names. These are used as argument keywords and so need to match the documentation. Please keep this list in sorted order. */ static const char ! *a = "a", *c_ = "c", *c = "count", *cm = "count_max", *com = "command", *cr = "count_rate", *dt = "date", *errmsg = "errmsg", *f = "from", *fp = "frompos", *gt = "get", *h = "harvest", *han = "handler", *length = "length", *ln = "len", *md = "mode", *msk = "mask", *************** add_subroutines (void) *** 3803,3814 **** add_sym_3s ("fgetc", GFC_ISYM_FGETC, CLASS_IMPURE, BT_UNKNOWN, 0, GFC_STD_GNU, gfc_check_fgetputc_sub, NULL, gfc_resolve_fgetc_sub, ut, BT_INTEGER, di, REQUIRED, INTENT_IN, ! c, BT_CHARACTER, dc, REQUIRED, INTENT_OUT, st, BT_INTEGER, di, OPTIONAL, INTENT_OUT); add_sym_2s ("fget", GFC_ISYM_FGET, CLASS_IMPURE, BT_UNKNOWN, 0, GFC_STD_GNU, gfc_check_fgetput_sub, NULL, gfc_resolve_fget_sub, ! c, BT_CHARACTER, dc, REQUIRED, INTENT_OUT, st, BT_INTEGER, di, OPTIONAL, INTENT_OUT); add_sym_1s ("flush", GFC_ISYM_FLUSH, CLASS_IMPURE, BT_UNKNOWN, 0, GFC_STD_GNU, --- 3804,3815 ---- add_sym_3s ("fgetc", GFC_ISYM_FGETC, CLASS_IMPURE, BT_UNKNOWN, 0, GFC_STD_GNU, gfc_check_fgetputc_sub, NULL, gfc_resolve_fgetc_sub, ut, BT_INTEGER, di, REQUIRED, INTENT_IN, ! c_, BT_CHARACTER, dc, REQUIRED, INTENT_OUT, st, BT_INTEGER, di, OPTIONAL, INTENT_OUT); add_sym_2s ("fget", GFC_ISYM_FGET, CLASS_IMPURE, BT_UNKNOWN, 0, GFC_STD_GNU, gfc_check_fgetput_sub, NULL, gfc_resolve_fget_sub, ! c_, BT_CHARACTER, dc, REQUIRED, INTENT_OUT, st, BT_INTEGER, di, OPTIONAL, INTENT_OUT); add_sym_1s ("flush", GFC_ISYM_FLUSH, CLASS_IMPURE, BT_UNKNOWN, 0, GFC_STD_GNU, *************** add_subroutines (void) *** 3818,3829 **** add_sym_3s ("fputc", GFC_ISYM_FPUTC, CLASS_IMPURE, BT_UNKNOWN, 0, GFC_STD_GNU, gfc_check_fgetputc_sub, NULL, gfc_resolve_fputc_sub, ut, BT_INTEGER, di, REQUIRED, INTENT_IN, ! c, BT_CHARACTER, dc, REQUIRED, INTENT_IN, st, BT_INTEGER, di, OPTIONAL, INTENT_OUT); add_sym_2s ("fput", GFC_ISYM_FPUT, CLASS_IMPURE, BT_UNKNOWN, 0, GFC_STD_GNU, gfc_check_fgetput_sub, NULL, gfc_resolve_fput_sub, ! c, BT_CHARACTER, dc, REQUIRED, INTENT_IN, st, BT_INTEGER, di, OPTIONAL, INTENT_OUT); add_sym_1s ("free", GFC_ISYM_FREE, CLASS_IMPURE, BT_UNKNOWN, 0, GFC_STD_GNU, --- 3819,3830 ---- add_sym_3s ("fputc", GFC_ISYM_FPUTC, CLASS_IMPURE, BT_UNKNOWN, 0, GFC_STD_GNU, gfc_check_fgetputc_sub, NULL, gfc_resolve_fputc_sub, ut, BT_INTEGER, di, REQUIRED, INTENT_IN, ! c_, BT_CHARACTER, dc, REQUIRED, INTENT_IN, st, BT_INTEGER, di, OPTIONAL, INTENT_OUT); add_sym_2s ("fput", GFC_ISYM_FPUT, CLASS_IMPURE, BT_UNKNOWN, 0, GFC_STD_GNU, gfc_check_fgetput_sub, NULL, gfc_resolve_fput_sub, ! c_, BT_CHARACTER, dc, REQUIRED, INTENT_IN, st, BT_INTEGER, di, OPTIONAL, INTENT_OUT); add_sym_1s ("free", GFC_ISYM_FREE, CLASS_IMPURE, BT_UNKNOWN, 0, GFC_STD_GNU, diff -Nrcpad gcc-10.3.0/gcc/fortran/io.c gcc-10.4.0/gcc/fortran/io.c *** gcc-10.3.0/gcc/fortran/io.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/fortran/io.c Tue Jun 28 08:54:28 2022 *************** resolve_tag_format (gfc_expr *e) *** 1763,1769 **** if (e->ts.type != BT_CHARACTER) { if (e->ts.type == BT_DERIVED || e->ts.type == BT_CLASS ! || e->ts.type == BT_VOID) { gfc_error ("Non-character non-Hollerith in FORMAT tag at %L", &e->where); --- 1763,1769 ---- if (e->ts.type != BT_CHARACTER) { if (e->ts.type == BT_DERIVED || e->ts.type == BT_CLASS ! || e->ts.type == BT_VOID || e->ts.type == BT_UNKNOWN) { gfc_error ("Non-character non-Hollerith in FORMAT tag at %L", &e->where); diff -Nrcpad gcc-10.3.0/gcc/fortran/match.c gcc-10.4.0/gcc/fortran/match.c *** gcc-10.3.0/gcc/fortran/match.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/fortran/match.c Tue Jun 28 08:54:28 2022 *************** gfc_match_pointer_assignment (void) *** 1409,1415 **** gfc_matching_procptr_assignment = 0; m = gfc_match (" %v =>", &lvalue); ! if (m != MATCH_YES) { m = MATCH_NO; goto cleanup; --- 1409,1415 ---- gfc_matching_procptr_assignment = 0; m = gfc_match (" %v =>", &lvalue); ! if (m != MATCH_YES || !lvalue->symtree) { m = MATCH_NO; goto cleanup; *************** select_type_set_tmp (gfc_typespec *ts) *** 6338,6344 **** sym = tmp->n.sym; gfc_add_type (sym, ts, NULL); ! if (selector->ts.type == BT_CLASS && selector->attr.class_ok) { sym->attr.pointer = CLASS_DATA (selector)->attr.class_pointer; --- 6338,6345 ---- sym = tmp->n.sym; gfc_add_type (sym, ts, NULL); ! if (selector->ts.type == BT_CLASS && selector->attr.class_ok ! && selector->ts.u.derived && CLASS_DATA (selector)) { sym->attr.pointer = CLASS_DATA (selector)->attr.class_pointer; diff -Nrcpad gcc-10.3.0/gcc/fortran/module.c gcc-10.4.0/gcc/fortran/module.c *** gcc-10.3.0/gcc/fortran/module.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/fortran/module.c Tue Jun 28 08:54:28 2022 *************** write_symtree (gfc_symtree *st) *** 6078,6083 **** --- 6078,6094 ---- if (check_unique_name (st->name)) return; + /* From F2003 onwards, intrinsic procedures are no longer subject to + the restriction, "that an elemental intrinsic function here be of + type integer or character and each argument must be an initialization + expr of type integer or character" is lifted so that intrinsic + procedures can be over-ridden. This requires that the intrinsic + symbol not appear in the module file, thereby preventing ambiguity + when USEd. */ + if (strcmp (sym->module, "(intrinsic)") == 0 + && (gfc_option.allow_std & GFC_STD_F2003)) + return; + p = find_pointer (sym); if (p == NULL) gfc_internal_error ("write_symtree(): Symbol not written"); diff -Nrcpad gcc-10.3.0/gcc/fortran/openmp.c gcc-10.4.0/gcc/fortran/openmp.c *** gcc-10.3.0/gcc/fortran/openmp.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/fortran/openmp.c Tue Jun 28 08:54:28 2022 *************** gfc_match_omp_variable_list (const char *** 260,265 **** --- 260,266 ---- case MATCH_YES: gfc_expr *expr; expr = NULL; + gfc_gobble_whitespace (); if ((allow_sections && gfc_peek_ascii_char () == '(') || (allow_derived && gfc_peek_ascii_char () == '%')) { diff -Nrcpad gcc-10.3.0/gcc/fortran/parse.c gcc-10.4.0/gcc/fortran/parse.c *** gcc-10.3.0/gcc/fortran/parse.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/fortran/parse.c Tue Jun 28 08:54:28 2022 *************** gfc_check_do_variable (gfc_symtree *st) *** 4440,4445 **** --- 4440,4448 ---- { gfc_state_data *s; + if (!st) + return 0; + for (s=gfc_state_stack; s; s = s->previous) if (s->do_variable == st) { *************** parse_associate (void) *** 4675,4680 **** --- 4678,4701 ---- in case of association to a derived-type. */ sym->ts = a->target->ts; + /* Don’t share the character length information between associate + variable and target if the length is not a compile-time constant, + as we don’t want to touch some other character length variable when + we try to initialize the associate variable’s character length + variable. + We do it here rather than later so that expressions referencing the + associate variable will automatically have the correctly setup length + information. If we did it at resolution stage the expressions would + use the original length information, and the variable a new different + one, but only the latter one would be correctly initialized at + translation stage, and the former one would need some additional setup + there. */ + if (sym->ts.type == BT_CHARACTER + && sym->ts.u.cl + && !(sym->ts.u.cl->length + && sym->ts.u.cl->length->expr_type == EXPR_CONSTANT)) + sym->ts.u.cl = gfc_new_charlen (gfc_current_ns, NULL); + /* Check if the target expression is array valued. This cannot always be done by looking at target.rank, because that might not have been set yet. Therefore traverse the chain of refs, looking for the last diff -Nrcpad gcc-10.3.0/gcc/fortran/primary.c gcc-10.4.0/gcc/fortran/primary.c *** gcc-10.3.0/gcc/fortran/primary.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/fortran/primary.c Tue Jun 28 08:54:28 2022 *************** gfc_match_varspec (gfc_expr *primary, in *** 2172,2177 **** --- 2172,2178 ---- && !(gfc_matching_procptr_assignment && sym->attr.flavor == FL_PROCEDURE)) || (sym->ts.type == BT_CLASS && sym->attr.class_ok + && sym->ts.u.derived && CLASS_DATA (sym) && (CLASS_DATA (sym)->attr.dimension || CLASS_DATA (sym)->attr.codimension))) { *************** build_actual_constructor (gfc_structure_ *** 3062,3087 **** continue; } ! /* If it was not found, try the default initializer if there's any; otherwise, it's an error unless this is a deferred parameter. */ if (!comp_iter) { ! if (comp->initializer) ! { ! if (!gfc_notify_std (GFC_STD_F2003, "Structure constructor " ! "with missing optional arguments at %C")) ! return false; ! value = gfc_copy_expr (comp->initializer); ! } ! else if (comp->attr.allocatable ! || (comp->ts.type == BT_CLASS ! && CLASS_DATA (comp)->attr.allocatable)) { if (!gfc_notify_std (GFC_STD_F2008, "No initializer for " "allocatable component %qs given in the " "structure constructor at %C", comp->name)) return false; } else if (!comp->attr.artificial) { gfc_error ("No initializer for component %qs given in the" --- 3063,3098 ---- continue; } ! /* If it was not found, apply NULL expression to set the component as ! unallocated. Then try the default initializer if there's any; otherwise, it's an error unless this is a deferred parameter. */ if (!comp_iter) { ! /* F2018 7.5.10: If an allocatable component has no corresponding ! component-data-source, then that component has an allocation ! status of unallocated.... */ ! if (comp->attr.allocatable ! || (comp->ts.type == BT_CLASS ! && CLASS_DATA (comp)->attr.allocatable)) { if (!gfc_notify_std (GFC_STD_F2008, "No initializer for " "allocatable component %qs given in the " "structure constructor at %C", comp->name)) return false; + value = gfc_get_null_expr (&gfc_current_locus); + } + /* ....(Preceeding sentence) If a component with default + initialization has no corresponding component-data-source, then + the default initialization is applied to that component. */ + else if (comp->initializer) + { + if (!gfc_notify_std (GFC_STD_F2003, "Structure constructor " + "with missing optional arguments at %C")) + return false; + value = gfc_copy_expr (comp->initializer); } + /* Do not trap components such as the string length for deferred + length character components. */ else if (!comp->attr.artificial) { gfc_error ("No initializer for component %qs given in the" *************** gfc_match_structure_constructor (gfc_sym *** 3365,3370 **** --- 3376,3382 ---- match m; gfc_expr *e; gfc_symtree *symtree; + bool t = true; gfc_get_ha_sym_tree (sym->name, &symtree); *************** gfc_match_structure_constructor (gfc_sym *** 3395,3404 **** in the structure constructor must be a constant. Try to reduce the expression here. */ if (gfc_in_match_data ()) ! gfc_reduce_init_expr (e); ! *result = e; ! return MATCH_YES; } --- 3407,3424 ---- in the structure constructor must be a constant. Try to reduce the expression here. */ if (gfc_in_match_data ()) ! t = gfc_reduce_init_expr (e); ! if (t) ! { ! *result = e; ! return MATCH_YES; ! } ! else ! { ! gfc_free_expr (e); ! return MATCH_ERROR; ! } } diff -Nrcpad gcc-10.3.0/gcc/fortran/resolve.c gcc-10.4.0/gcc/fortran/resolve.c *** gcc-10.3.0/gcc/fortran/resolve.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/fortran/resolve.c Tue Jun 28 08:54:28 2022 *************** resolve_structure_cons (gfc_expr *expr, *** 1436,1441 **** --- 1436,1478 ---- } } + /* Validate shape, except for dynamic or PDT arrays. */ + if (cons->expr->expr_type == EXPR_ARRAY && rank == cons->expr->rank + && comp->as && !comp->attr.allocatable && !comp->attr.pointer + && !comp->attr.pdt_array) + { + mpz_t len; + mpz_init (len); + for (int n = 0; n < rank; n++) + { + if (comp->as->upper[n]->expr_type != EXPR_CONSTANT + || comp->as->lower[n]->expr_type != EXPR_CONSTANT) + { + gfc_error ("Bad array spec of component %qs referenced in " + "structure constructor at %L", + comp->name, &cons->expr->where); + t = false; + break; + }; + if (cons->expr->shape == NULL) + continue; + mpz_set_ui (len, 1); + mpz_add (len, len, comp->as->upper[n]->value.integer); + mpz_sub (len, len, comp->as->lower[n]->value.integer); + if (mpz_cmp (cons->expr->shape[n], len) != 0) + { + gfc_error ("The shape of component %qs in the structure " + "constructor at %L differs from the shape of the " + "declared component for dimension %d (%ld/%ld)", + comp->name, &cons->expr->where, n+1, + mpz_get_si (cons->expr->shape[n]), + mpz_get_si (len)); + t = false; + } + } + mpz_clear (len); + } + if (!comp->attr.pointer || comp->attr.proc_pointer || cons->expr->expr_type == EXPR_NULL) continue; *************** gfc_resolve_dim_arg (gfc_expr *dim) *** 4858,4863 **** --- 4895,4902 ---- base symbol. We traverse the list of reference structures, setting the stored reference to references. Component references can provide an additional array specification. */ + static void + resolve_assoc_var (gfc_symbol* sym, bool resolve_target); static void find_array_spec (gfc_expr *e) *************** find_array_spec (gfc_expr *e) *** 4867,4872 **** --- 4906,4918 ---- gfc_ref *ref; bool class_as = false; + if (e->symtree->n.sym->assoc) + { + if (e->symtree->n.sym->assoc->target) + gfc_resolve_expr (e->symtree->n.sym->assoc->target); + resolve_assoc_var (e->symtree->n.sym, false); + } + if (e->symtree->n.sym->ts.type == BT_CLASS) { as = CLASS_DATA (e->symtree->n.sym)->as; *************** resolve_variable (gfc_expr *e) *** 5633,5638 **** --- 5679,5686 ---- can't be translated that way. */ if (sym->assoc && e->rank == 0 && e->ref && sym->ts.type == BT_CLASS && sym->assoc->target && sym->assoc->target->ts.type == BT_CLASS + && sym->assoc->target->ts.u.derived + && CLASS_DATA (sym->assoc->target) && CLASS_DATA (sym->assoc->target)->as) { gfc_ref *ref = e->ref; *************** resolve_variable (gfc_expr *e) *** 5697,5703 **** /* Like above, but for class types, where the checking whether an array ref is present is more complicated. Furthermore make sure not to add the full array ref to _vptr or _len refs. */ ! if (sym->assoc && sym->ts.type == BT_CLASS && CLASS_DATA (sym)->attr.dimension && (e->ts.type != BT_DERIVED || !e->ts.u.derived->attr.vtype)) { --- 5745,5752 ---- /* Like above, but for class types, where the checking whether an array ref is present is more complicated. Furthermore make sure not to add the full array ref to _vptr or _len refs. */ ! if (sym->assoc && sym->ts.type == BT_CLASS && sym->ts.u.derived ! && CLASS_DATA (sym) && CLASS_DATA (sym)->attr.dimension && (e->ts.type != BT_DERIVED || !e->ts.u.derived->attr.vtype)) { *************** resolve_assoc_var (gfc_symbol* sym, bool *** 9092,9099 **** if (!sym->ts.u.cl) sym->ts.u.cl = target->ts.u.cl; ! if (sym->ts.deferred && target->expr_type == EXPR_VARIABLE ! && target->symtree->n.sym->attr.dummy && sym->ts.u.cl == target->ts.u.cl) { sym->ts.u.cl = gfc_new_charlen (sym->ns, NULL); --- 9141,9147 ---- if (!sym->ts.u.cl) sym->ts.u.cl = target->ts.u.cl; ! if (sym->ts.deferred && sym->ts.u.cl == target->ts.u.cl) { sym->ts.u.cl = gfc_new_charlen (sym->ns, NULL); *************** resolve_assoc_var (gfc_symbol* sym, bool *** 9112,9119 **** || sym->ts.u.cl->length->expr_type != EXPR_CONSTANT) && target->expr_type != EXPR_VARIABLE) { ! sym->ts.u.cl = gfc_new_charlen (sym->ns, NULL); ! sym->ts.deferred = 1; /* This is reset in trans-stmt.c after the assignment of the target expression to the associate name. */ --- 9160,9170 ---- || sym->ts.u.cl->length->expr_type != EXPR_CONSTANT) && target->expr_type != EXPR_VARIABLE) { ! if (!sym->ts.deferred) ! { ! sym->ts.u.cl = gfc_new_charlen (sym->ns, NULL); ! sym->ts.deferred = 1; ! } /* This is reset in trans-stmt.c after the assignment of the target expression to the associate name. */ *************** resolve_select_type (gfc_code *code, gfc *** 9301,9306 **** --- 9352,9358 ---- /* Check F03:C815. */ if ((c->ts.type == BT_DERIVED || c->ts.type == BT_CLASS) + && selector_type && !selector_type->attr.unlimited_polymorphic && !gfc_type_is_extensible (c->ts.u.derived)) { *************** resolve_select_type (gfc_code *code, gfc *** 9311,9317 **** } /* Check F03:C816. */ ! if (c->ts.type != BT_UNKNOWN && !selector_type->attr.unlimited_polymorphic && ((c->ts.type != BT_DERIVED && c->ts.type != BT_CLASS) || !gfc_type_is_extension_of (selector_type, c->ts.u.derived))) { --- 9363,9370 ---- } /* Check F03:C816. */ ! if (c->ts.type != BT_UNKNOWN ! && selector_type && !selector_type->attr.unlimited_polymorphic && ((c->ts.type != BT_DERIVED && c->ts.type != BT_CLASS) || !gfc_type_is_extension_of (selector_type, c->ts.u.derived))) { *************** gfc_resolve_code (gfc_code *code, gfc_na *** 11733,11740 **** gfc_resolve_omp_do_blocks (code, ns); break; case EXEC_SELECT_TYPE: ! /* Blocks are handled in resolve_select_type because we have ! to transform the SELECT TYPE into ASSOCIATE first. */ break; case EXEC_DO_CONCURRENT: gfc_do_concurrent_flag = 1; --- 11786,11794 ---- gfc_resolve_omp_do_blocks (code, ns); break; case EXEC_SELECT_TYPE: ! case EXEC_SELECT_RANK: ! /* Blocks are handled in resolve_select_type/rank because we ! have to transform the SELECT TYPE into ASSOCIATE first. */ break; case EXEC_DO_CONCURRENT: gfc_do_concurrent_flag = 1; *************** resolve_fl_procedure (gfc_symbol *sym, i *** 13095,13101 **** /* An elemental function is required to return a scalar 12.7.1 */ if (sym->attr.elemental && sym->attr.function ! && (sym->as || (sym->ts.type == BT_CLASS && CLASS_DATA (sym)->as))) { gfc_error ("ELEMENTAL function %qs at %L must have a scalar " "result", sym->name, &sym->declared_at); --- 13149,13156 ---- /* An elemental function is required to return a scalar 12.7.1 */ if (sym->attr.elemental && sym->attr.function ! && (sym->as || (sym->ts.type == BT_CLASS && sym->attr.class_ok ! && CLASS_DATA (sym)->as))) { gfc_error ("ELEMENTAL function %qs at %L must have a scalar " "result", sym->name, &sym->declared_at); diff -Nrcpad gcc-10.3.0/gcc/fortran/simplify.c gcc-10.4.0/gcc/fortran/simplify.c *** gcc-10.3.0/gcc/fortran/simplify.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/fortran/simplify.c Tue Jun 28 08:54:28 2022 *************** gfc_simplify_cshift (gfc_expr *array, gf *** 2077,2082 **** --- 2077,2085 ---- else which = 0; + if (array->shape == NULL) + return NULL; + gfc_array_size (array, &size); arraysize = mpz_get_ui (size); mpz_clear (size); *************** gfc_simplify_eoshift (gfc_expr *array, g *** 2537,2542 **** --- 2540,2548 ---- if (arraysize == 0) goto final; + if (array->shape == NULL) + goto final; + arrayvec = XCNEWVEC (gfc_expr *, arraysize); array_ctor = gfc_constructor_first (array->value.constructor); for (i = 0; i < arraysize; i++) *************** simplify_bound (gfc_expr *array, gfc_exp *** 4231,4236 **** --- 4237,4248 ---- || (as->type == AS_ASSUMED_SHAPE && upper))) return NULL; + /* 'array' shall not be an unallocated allocatable variable or a pointer that + is not associated. */ + if (array->expr_type == EXPR_VARIABLE + && (gfc_expr_attr (array).allocatable || gfc_expr_attr (array).pointer)) + return NULL; + gcc_assert (!as || (as->type != AS_DEFERRED && array->expr_type == EXPR_VARIABLE *************** gfc_simplify_reshape (gfc_expr *source, *** 6759,6765 **** gfc_extract_int (e, &shape[rank]); gcc_assert (rank >= 0 && rank < GFC_MAX_DIMENSIONS); ! gcc_assert (shape[rank] >= 0); rank++; } --- 6771,6783 ---- gfc_extract_int (e, &shape[rank]); gcc_assert (rank >= 0 && rank < GFC_MAX_DIMENSIONS); ! if (shape[rank] < 0) ! { ! gfc_error ("The SHAPE array for the RESHAPE intrinsic at %L has a " ! "negative value %d for dimension %d", ! &shape_exp->where, shape[rank], rank+1); ! return &gfc_bad_expr; ! } rank++; } *************** simplify_size (gfc_expr *array, gfc_expr *** 7379,7384 **** --- 7397,7403 ---- mpz_t size; gfc_expr *return_value; int d; + gfc_ref *ref; /* For unary operations, the size of the result is given by the size of the operand. For binary ones, it's the size of the first operand *************** simplify_size (gfc_expr *array, gfc_expr *** 7435,7440 **** --- 7454,7463 ---- return simplified; } + for (ref = array->ref; ref; ref = ref->next) + if (ref->type == REF_ARRAY && ref->u.ar.as) + gfc_resolve_array_spec (ref->u.ar.as, 0); + if (dim == NULL) { if (!gfc_array_size (array, &size)) *************** gfc_simplify_transfer (gfc_expr *source, *** 8031,8037 **** set even for array expressions, in order to pass this information into gfc_target_interpret_expr. */ if (result->ts.type == BT_CHARACTER && gfc_is_constant_expr (mold_element)) ! result->value.character.length = mold_element->value.character.length; /* Set the number of elements in the result, and determine its size. */ --- 8054,8071 ---- set even for array expressions, in order to pass this information into gfc_target_interpret_expr. */ if (result->ts.type == BT_CHARACTER && gfc_is_constant_expr (mold_element)) ! { ! result->value.character.length = mold_element->value.character.length; ! ! /* Let the typespec of the result inherit the string length. ! This is crucial if a resulting array has size zero. */ ! if (mold_element->ts.u.cl->length) ! result->ts.u.cl->length = gfc_copy_expr (mold_element->ts.u.cl->length); ! else ! result->ts.u.cl->length = ! gfc_get_int_expr (gfc_charlen_int_kind, NULL, ! mold_element->value.character.length); ! } /* Set the number of elements in the result, and determine its size. */ *************** gfc_simplify_transpose (gfc_expr *matrix *** 8071,8076 **** --- 8105,8113 ---- gcc_assert (matrix->rank == 2); + if (matrix->shape == NULL) + return NULL; + result = gfc_get_array_expr (matrix->ts.type, matrix->ts.kind, &matrix->where); result->rank = 2; diff -Nrcpad gcc-10.3.0/gcc/fortran/target-memory.c gcc-10.4.0/gcc/fortran/target-memory.c *** gcc-10.3.0/gcc/fortran/target-memory.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/fortran/target-memory.c Tue Jun 28 08:54:28 2022 *************** gfc_interpret_character (unsigned char * *** 486,492 **** result->value.character.string[result->value.character.length] = '\0'; ! return result->value.character.length; } --- 486,492 ---- result->value.character.string[result->value.character.length] = '\0'; ! return size_character (result->value.character.length, result->ts.kind); } *************** gfc_interpret_derived (unsigned char *bu *** 534,539 **** --- 534,542 ---- { int n; + if (cmp->as->type != AS_EXPLICIT) + return 0; + e->expr_type = EXPR_ARRAY; e->rank = cmp->as->rank; diff -Nrcpad gcc-10.3.0/gcc/fortran/trans-array.c gcc-10.4.0/gcc/fortran/trans-array.c *** gcc-10.3.0/gcc/fortran/trans-array.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/fortran/trans-array.c Tue Jun 28 08:54:28 2022 *************** gfc_trans_g77_array (gfc_symbol * sym, g *** 6611,6617 **** /* Set the pointer itself if we aren't using the parameter directly. */ if (TREE_CODE (parm) != PARM_DECL) { ! tmp = convert (TREE_TYPE (parm), GFC_DECL_SAVED_DESCRIPTOR (parm)); gfc_add_modify (&init, parm, tmp); } stmt = gfc_finish_block (&init); --- 6611,6624 ---- /* Set the pointer itself if we aren't using the parameter directly. */ if (TREE_CODE (parm) != PARM_DECL) { ! tmp = GFC_DECL_SAVED_DESCRIPTOR (parm); ! if (sym->ts.type == BT_CLASS) ! { ! tmp = build_fold_indirect_ref_loc (input_location, tmp); ! tmp = gfc_class_data_get (tmp); ! tmp = gfc_conv_descriptor_data_get (tmp); ! } ! tmp = convert (TREE_TYPE (parm), tmp); gfc_add_modify (&init, parm, tmp); } stmt = gfc_finish_block (&init); *************** gfc_trans_dummy_array_bias (gfc_symbol * *** 6713,6719 **** && VAR_P (sym->ts.u.cl->backend_decl)) gfc_conv_string_length (sym->ts.u.cl, NULL, &init); ! checkparm = (as->type == AS_EXPLICIT && (gfc_option.rtcheck & GFC_RTCHECK_BOUNDS)); no_repack = !(GFC_DECL_PACKED_ARRAY (tmpdesc) --- 6720,6727 ---- && VAR_P (sym->ts.u.cl->backend_decl)) gfc_conv_string_length (sym->ts.u.cl, NULL, &init); ! /* TODO: Fix the exclusion of class arrays from extent checking. */ ! checkparm = (as->type == AS_EXPLICIT && !is_classarray && (gfc_option.rtcheck & GFC_RTCHECK_BOUNDS)); no_repack = !(GFC_DECL_PACKED_ARRAY (tmpdesc) *************** gfc_conv_expr_descriptor (gfc_se *se, gf *** 7531,7539 **** && expr->value.function.esym->attr.elemental) || (expr->value.function.isym != NULL && expr->value.function.isym->elemental) || gfc_inline_intrinsic_function_p (expr)); - else - gcc_assert (ss_type == GFC_SS_INTRINSIC); need_tmp = 1; if (expr->ts.type == BT_CHARACTER --- 7539,7547 ---- && expr->value.function.esym->attr.elemental) || (expr->value.function.isym != NULL && expr->value.function.isym->elemental) + || (gfc_expr_attr (expr).proc_pointer + && gfc_expr_attr (expr).elemental) || gfc_inline_intrinsic_function_p (expr)); need_tmp = 1; if (expr->ts.type == BT_CHARACTER *************** gfc_conv_expr_descriptor (gfc_se *se, gf *** 7722,7736 **** /* Set the string_length for a character array. */ if (expr->ts.type == BT_CHARACTER) { ! se->string_length = gfc_get_expr_charlen (expr); if (VAR_P (se->string_length) && expr->ts.u.cl->backend_decl == se->string_length) tmp = ss_info->string_length; else tmp = se->string_length; ! if (expr->ts.deferred) gfc_add_modify (&se->pre, expr->ts.u.cl->backend_decl, tmp); } /* If we have an array section or are assigning make sure that --- 7730,7750 ---- /* Set the string_length for a character array. */ if (expr->ts.type == BT_CHARACTER) { ! if (deferred_array_component) ! se->string_length = ss_info->string_length; ! else ! se->string_length = gfc_get_expr_charlen (expr); ! if (VAR_P (se->string_length) && expr->ts.u.cl->backend_decl == se->string_length) tmp = ss_info->string_length; else tmp = se->string_length; ! if (expr->ts.deferred && VAR_P (expr->ts.u.cl->backend_decl)) gfc_add_modify (&se->pre, expr->ts.u.cl->backend_decl, tmp); + else + expr->ts.u.cl->backend_decl = tmp; } /* If we have an array section or are assigning make sure that diff -Nrcpad gcc-10.3.0/gcc/fortran/trans-decl.c gcc-10.4.0/gcc/fortran/trans-decl.c *** gcc-10.3.0/gcc/fortran/trans-decl.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/fortran/trans-decl.c Tue Jun 28 08:54:28 2022 *************** gfc_finish_var_decl (tree decl, gfc_symb *** 737,742 **** --- 737,744 ---- /* Keep variables larger than max-stack-var-size off stack. */ if (!(sym->ns->proc_name && sym->ns->proc_name->attr.recursive) && !sym->attr.automatic + && sym->attr.save != SAVE_EXPLICIT + && sym->attr.save != SAVE_IMPLICIT && INTEGER_CST_P (DECL_SIZE_UNIT (decl)) && !gfc_can_put_var_on_stack (DECL_SIZE_UNIT (decl)) /* Put variable length auto array pointers always into stack. */ *************** gfc_finish_var_decl (tree decl, gfc_symb *** 747,761 **** || sym->attr.allocatable) && !DECL_ARTIFICIAL (decl)) { ! if (flag_max_stack_var_size > 0) gfc_warning (OPT_Wsurprising, ! "Array %qs at %L is larger than limit set by" ! " %<-fmax-stack-var-size=%>, moved from stack to static" ! " storage. This makes the procedure unsafe when called" ! " recursively, or concurrently from multiple threads." ! " Consider using %<-frecursive%>, or increase the" ! " %<-fmax-stack-var-size=%> limit, or change the code to" ! " use an ALLOCATABLE array.", sym->name, &sym->declared_at); TREE_STATIC (decl) = 1; --- 749,769 ---- || sym->attr.allocatable) && !DECL_ARTIFICIAL (decl)) { ! if (flag_max_stack_var_size > 0 ! && !(sym->ns->proc_name ! && sym->ns->proc_name->attr.is_main_program)) gfc_warning (OPT_Wsurprising, ! "Array %qs at %L is larger than limit set by " ! "%<-fmax-stack-var-size=%>, moved from stack to static " ! "storage. This makes the procedure unsafe when called " ! "recursively, or concurrently from multiple threads. " ! "Consider increasing the %<-fmax-stack-var-size=%> " ! "limit (or use %<-frecursive%>, which implies " ! "unlimited %<-fmax-stack-var-size%>) - or change the " ! "code to use an ALLOCATABLE array. If the variable is " ! "never accessed concurrently, this warning can be " ! "ignored, and the variable could also be declared with " ! "the SAVE attribute.", sym->name, &sym->declared_at); TREE_STATIC (decl) = 1; *************** gfc_get_symbol_decl (gfc_symbol * sym) *** 1527,1533 **** declaration of the entity and memory allocated/deallocated. */ if ((sym->ts.type == BT_DERIVED || sym->ts.type == BT_CLASS) && sym->param_list != NULL ! && !(sym->attr.host_assoc || sym->attr.use_assoc || sym->attr.dummy)) gfc_defer_symbol_init (sym); /* Dummy PDT 'len' parameters should be checked when they are explicit. */ --- 1535,1542 ---- declaration of the entity and memory allocated/deallocated. */ if ((sym->ts.type == BT_DERIVED || sym->ts.type == BT_CLASS) && sym->param_list != NULL ! && gfc_current_ns == sym->ns ! && !(sym->attr.use_assoc || sym->attr.dummy)) gfc_defer_symbol_init (sym); /* Dummy PDT 'len' parameters should be checked when they are explicit. */ diff -Nrcpad gcc-10.3.0/gcc/fortran/trans-expr.c gcc-10.4.0/gcc/fortran/trans-expr.c *** gcc-10.3.0/gcc/fortran/trans-expr.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/fortran/trans-expr.c Tue Jun 28 08:54:28 2022 *************** gfc_trans_class_init_assign (gfc_code *c *** 1648,1655 **** } } ! if (code->expr1->symtree->n.sym->attr.optional ! || code->expr1->symtree->n.sym->ns->proc_name->attr.entry_master) { tree present = gfc_conv_expr_present (code->expr1->symtree->n.sym); tmp = build3_loc (input_location, COND_EXPR, TREE_TYPE (tmp), --- 1648,1656 ---- } } ! if (code->expr1->symtree->n.sym->attr.dummy ! && (code->expr1->symtree->n.sym->attr.optional ! || code->expr1->symtree->n.sym->ns->proc_name->attr.entry_master)) { tree present = gfc_conv_expr_present (code->expr1->symtree->n.sym); tmp = build3_loc (input_location, COND_EXPR, TREE_TYPE (tmp), *************** gfc_conv_string_length (gfc_charlen * cl *** 2470,2476 **** se.expr, build_zero_cst (TREE_TYPE (se.expr))); gfc_add_block_to_block (pblock, &se.pre); ! if (cl->backend_decl) gfc_add_modify (pblock, cl->backend_decl, se.expr); else cl->backend_decl = gfc_evaluate_now (se.expr, pblock); --- 2471,2477 ---- se.expr, build_zero_cst (TREE_TYPE (se.expr))); gfc_add_block_to_block (pblock, &se.pre); ! if (cl->backend_decl && VAR_P (cl->backend_decl)) gfc_add_modify (pblock, cl->backend_decl, se.expr); else cl->backend_decl = gfc_evaluate_now (se.expr, pblock); *************** gfc_conv_substring (gfc_se * se, gfc_ref *** 2536,2542 **** if (!CONSTANT_CLASS_P (tmp) && !DECL_P (tmp)) end.expr = gfc_evaluate_now (end.expr, &se->pre); ! if (gfc_option.rtcheck & GFC_RTCHECK_BOUNDS) { tree nonempty = fold_build2_loc (input_location, LE_EXPR, logical_type_node, start.expr, --- 2537,2545 ---- if (!CONSTANT_CLASS_P (tmp) && !DECL_P (tmp)) end.expr = gfc_evaluate_now (end.expr, &se->pre); ! if ((gfc_option.rtcheck & GFC_RTCHECK_BOUNDS) ! && (ref->u.ss.start->symtree ! && !ref->u.ss.start->symtree->n.sym->attr.implied_index)) { tree nonempty = fold_build2_loc (input_location, LE_EXPR, logical_type_node, start.expr, *************** gfc_conv_component_ref (gfc_se * se, gfc *** 2669,2675 **** /* Allocatable deferred char arrays are to be handled by the gfc_deferred_ strlen () conditional below. */ if (c->ts.type == BT_CHARACTER && !c->attr.proc_pointer ! && !(c->attr.allocatable && c->ts.deferred) && !c->attr.pdt_string) { tmp = c->ts.u.cl->backend_decl; --- 2672,2678 ---- /* Allocatable deferred char arrays are to be handled by the gfc_deferred_ strlen () conditional below. */ if (c->ts.type == BT_CHARACTER && !c->attr.proc_pointer ! && !c->ts.deferred && !c->attr.pdt_string) { tmp = c->ts.u.cl->backend_decl; *************** gfc_conv_procedure_call (gfc_se * se, gf *** 5770,5776 **** CLASS_DATA (fsym)->attr.class_pointer || CLASS_DATA (fsym)->attr.allocatable); } ! else if (UNLIMITED_POLY (fsym) && e->ts.type != BT_CLASS) { /* The intrinsic type needs to be converted to a temporary CLASS object for the unlimited polymorphic formal. */ --- 5773,5782 ---- CLASS_DATA (fsym)->attr.class_pointer || CLASS_DATA (fsym)->attr.allocatable); } ! else if (UNLIMITED_POLY (fsym) && e->ts.type != BT_CLASS ! && e->ts.type != BT_PROCEDURE ! && (gfc_expr_attr (e).flavor != FL_PROCEDURE ! || gfc_expr_attr (e).proc != PROC_UNKNOWN)) { /* The intrinsic type needs to be converted to a temporary CLASS object for the unlimited polymorphic formal. */ *************** gfc_conv_procedure_call (gfc_se * se, gf *** 5958,5968 **** || (!e->value.function.esym && e->symtree->n.sym->attr.pointer)) && fsym && fsym->attr.target) ! { ! gfc_conv_expr (&parmse, e); ! parmse.expr = gfc_build_addr_expr (NULL_TREE, parmse.expr); ! } ! else if (e->expr_type == EXPR_FUNCTION && e->symtree->n.sym->result && e->symtree->n.sym->result != e->symtree->n.sym --- 5964,5971 ---- || (!e->value.function.esym && e->symtree->n.sym->attr.pointer)) && fsym && fsym->attr.target) ! /* Make sure the function only gets called once. */ ! gfc_conv_expr_reference (&parmse, e, false); else if (e->expr_type == EXPR_FUNCTION && e->symtree->n.sym->result && e->symtree->n.sym->result != e->symtree->n.sym *************** gfc_conv_procedure_call (gfc_se * se, gf *** 6072,6077 **** --- 6075,6081 ---- bool add_clobber; add_clobber = fsym && fsym->attr.intent == INTENT_OUT && !fsym->attr.allocatable && !fsym->attr.pointer + && e->symtree && e->symtree->n.sym && !e->symtree->n.sym->attr.dimension && !e->symtree->n.sym->attr.pointer && !e->symtree->n.sym->attr.allocatable *************** gfc_conv_procedure_call (gfc_se * se, gf *** 6364,6369 **** --- 6368,6382 ---- fsym ? fsym->attr.intent : INTENT_INOUT, fsym && fsym->attr.pointer); + else if (e->ts.type == BT_CLASS && CLASS_DATA (e)->as + && CLASS_DATA (e)->as->type == AS_ASSUMED_SIZE + && nodesc_arg && fsym->ts.type == BT_DERIVED) + /* An assumed size class actual argument being passed to + a 'no descriptor' formal argument just requires the + data pointer to be passed. For class dummy arguments + this is stored in the symbol backend decl.. */ + parmse.expr = e->symtree->n.sym->backend_decl; + else if (gfc_is_class_array_ref (e, NULL) && fsym && fsym->ts.type == BT_DERIVED) /* The actual argument is a component reference to an *************** gfc_conv_procedure_call (gfc_se * se, gf *** 6435,6440 **** --- 6448,6464 ---- // deallocate the components first tmp = gfc_deallocate_alloc_comp (fsym->ts.u.derived, parmse.expr, e->rank); + /* But check whether dummy argument is optional. */ + if (tmp != NULL_TREE + && fsym->attr.optional + && e->expr_type == EXPR_VARIABLE + && e->symtree->n.sym->attr.optional) + { + tree present; + present = gfc_conv_expr_present (e->symtree->n.sym); + tmp = build3_v (COND_EXPR, present, tmp, + build_empty_stmt (input_location)); + } if (tmp != NULL_TREE) gfc_add_expr_to_block (&se->pre, tmp); } *************** gfc_trans_structure_assign (tree dest, g *** 8640,8647 **** return gfc_finish_block (&block); } ! void ! gfc_conv_union_initializer (vec *v, gfc_component *un, gfc_expr *init) { gfc_constructor *ctor; --- 8664,8671 ---- return gfc_finish_block (&block); } ! static void ! gfc_conv_union_initializer (vec *&v, gfc_component *un, gfc_expr *init) { gfc_constructor *ctor; *************** gfc_trans_assignment_1 (gfc_expr * expr1 *** 11046,11052 **** || gfc_is_class_array_ref (expr1, NULL) || gfc_is_class_scalar_expr (expr1) || gfc_is_class_array_ref (expr2, NULL) ! || gfc_is_class_scalar_expr (expr2)); realloc_flag = flag_realloc_lhs && gfc_is_reallocatable_lhs (expr1) --- 11070,11077 ---- || gfc_is_class_array_ref (expr1, NULL) || gfc_is_class_scalar_expr (expr1) || gfc_is_class_array_ref (expr2, NULL) ! || gfc_is_class_scalar_expr (expr2)) ! && lhs_attr.flavor != FL_PROCEDURE; realloc_flag = flag_realloc_lhs && gfc_is_reallocatable_lhs (expr1) diff -Nrcpad gcc-10.3.0/gcc/fortran/trans-intrinsic.c gcc-10.4.0/gcc/fortran/trans-intrinsic.c *** gcc-10.3.0/gcc/fortran/trans-intrinsic.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/fortran/trans-intrinsic.c Tue Jun 28 08:54:28 2022 *************** rad2deg (int kind) *** 4411,4416 **** --- 4411,4428 ---- } + static gfc_intrinsic_map_t * + gfc_lookup_intrinsic (gfc_isym_id id) + { + gfc_intrinsic_map_t *m = gfc_intrinsic_map; + for (; m->id != GFC_ISYM_NONE || m->double_built_in != END_BUILTINS; m++) + if (id == m->id) + break; + gcc_assert (id == m->id); + return m; + } + + /* ACOSD(x) is translated into ACOS(x) * 180 / pi. ASIND(x) is translated into ASIN(x) * 180 / pi. ATAND(x) is translated into ATAN(x) * 180 / pi. */ *************** gfc_conv_intrinsic_atrigd (gfc_se * se, *** 4421,4440 **** tree arg; tree atrigd; tree type; type = gfc_typenode_for_spec (&expr->ts); gfc_conv_intrinsic_function_args (se, expr, &arg, 1); ! if (id == GFC_ISYM_ACOSD) ! atrigd = gfc_builtin_decl_for_float_kind (BUILT_IN_ACOS, expr->ts.kind); ! else if (id == GFC_ISYM_ASIND) ! atrigd = gfc_builtin_decl_for_float_kind (BUILT_IN_ASIN, expr->ts.kind); ! else if (id == GFC_ISYM_ATAND) ! atrigd = gfc_builtin_decl_for_float_kind (BUILT_IN_ATAN, expr->ts.kind); ! else ! gcc_unreachable (); ! atrigd = build_call_expr_loc (input_location, atrigd, 1, arg); se->expr = fold_build2_loc (input_location, MULT_EXPR, type, atrigd, --- 4433,4459 ---- tree arg; tree atrigd; tree type; + gfc_intrinsic_map_t *m; type = gfc_typenode_for_spec (&expr->ts); gfc_conv_intrinsic_function_args (se, expr, &arg, 1); ! switch (id) ! { ! case GFC_ISYM_ACOSD: ! m = gfc_lookup_intrinsic (GFC_ISYM_ACOS); ! break; ! case GFC_ISYM_ASIND: ! m = gfc_lookup_intrinsic (GFC_ISYM_ASIN); ! break; ! case GFC_ISYM_ATAND: ! m = gfc_lookup_intrinsic (GFC_ISYM_ATAN); ! break; ! default: ! gcc_unreachable (); ! } ! atrigd = gfc_get_intrinsic_lib_fndecl (m, expr); atrigd = build_call_expr_loc (input_location, atrigd, 1, arg); se->expr = fold_build2_loc (input_location, MULT_EXPR, type, atrigd, *************** gfc_conv_intrinsic_cotan (gfc_se *se, gf *** 4470,4482 **** mpfr_clear (pio2); /* Find tan builtin function. */ ! m = gfc_intrinsic_map; ! for (; m->id != GFC_ISYM_NONE || m->double_built_in != END_BUILTINS; m++) ! if (GFC_ISYM_TAN == m->id) ! break; ! ! tmp = fold_build2_loc (input_location, PLUS_EXPR, type, arg, tmp); tan = gfc_get_intrinsic_lib_fndecl (m, expr); tan = build_call_expr_loc (input_location, tan, 1, tmp); se->expr = fold_build1_loc (input_location, NEGATE_EXPR, type, tan); } --- 4489,4497 ---- mpfr_clear (pio2); /* Find tan builtin function. */ ! m = gfc_lookup_intrinsic (GFC_ISYM_TAN); tan = gfc_get_intrinsic_lib_fndecl (m, expr); + tmp = fold_build2_loc (input_location, PLUS_EXPR, type, arg, tmp); tan = build_call_expr_loc (input_location, tan, 1, tmp); se->expr = fold_build1_loc (input_location, NEGATE_EXPR, type, tan); } *************** gfc_conv_intrinsic_cotan (gfc_se *se, gf *** 4486,4505 **** tree cos; /* Find cos builtin function. */ ! m = gfc_intrinsic_map; ! for (; m->id != GFC_ISYM_NONE || m->double_built_in != END_BUILTINS; m++) ! if (GFC_ISYM_COS == m->id) ! break; ! cos = gfc_get_intrinsic_lib_fndecl (m, expr); cos = build_call_expr_loc (input_location, cos, 1, arg); /* Find sin builtin function. */ ! m = gfc_intrinsic_map; ! for (; m->id != GFC_ISYM_NONE || m->double_built_in != END_BUILTINS; m++) ! if (GFC_ISYM_SIN == m->id) ! break; ! sin = gfc_get_intrinsic_lib_fndecl (m, expr); sin = build_call_expr_loc (input_location, sin, 1, arg); --- 4501,4512 ---- tree cos; /* Find cos builtin function. */ ! m = gfc_lookup_intrinsic (GFC_ISYM_COS); cos = gfc_get_intrinsic_lib_fndecl (m, expr); cos = build_call_expr_loc (input_location, cos, 1, arg); /* Find sin builtin function. */ ! m = gfc_lookup_intrinsic (GFC_ISYM_SIN); sin = gfc_get_intrinsic_lib_fndecl (m, expr); sin = build_call_expr_loc (input_location, sin, 1, arg); *************** gfc_conv_intrinsic_cotand (gfc_se *se, g *** 4531,4541 **** mpfr_clear (ninety); /* Find tand. */ ! gfc_intrinsic_map_t *m = gfc_intrinsic_map; ! for (; m->id != GFC_ISYM_NONE || m->double_built_in != END_BUILTINS; m++) ! if (GFC_ISYM_TAND == m->id) ! break; ! tree tand = gfc_get_intrinsic_lib_fndecl (m, expr); tand = build_call_expr_loc (input_location, tand, 1, arg); --- 4538,4544 ---- mpfr_clear (ninety); /* Find tand. */ ! gfc_intrinsic_map_t *m = gfc_lookup_intrinsic (GFC_ISYM_TAND); tree tand = gfc_get_intrinsic_lib_fndecl (m, expr); tand = build_call_expr_loc (input_location, tand, 1, arg); *************** gfc_conv_intrinsic_atan2d (gfc_se *se, g *** 4555,4561 **** gfc_conv_intrinsic_function_args (se, expr, args, 2); type = TREE_TYPE (args[0]); ! atan2d = gfc_builtin_decl_for_float_kind (BUILT_IN_ATAN2, expr->ts.kind); atan2d = build_call_expr_loc (input_location, atan2d, 2, args[0], args[1]); se->expr = fold_build2_loc (input_location, MULT_EXPR, type, atan2d, --- 4558,4565 ---- gfc_conv_intrinsic_function_args (se, expr, args, 2); type = TREE_TYPE (args[0]); ! gfc_intrinsic_map_t *m = gfc_lookup_intrinsic (GFC_ISYM_ATAN2); ! atan2d = gfc_get_intrinsic_lib_fndecl (m, expr); atan2d = build_call_expr_loc (input_location, atan2d, 2, args[0], args[1]); se->expr = fold_build2_loc (input_location, MULT_EXPR, type, atan2d, *************** gfc_conv_intrinsic_transfer (gfc_se * se *** 8451,8457 **** { case BT_CHARACTER: tmp = size_of_string_in_bytes (arg->expr->ts.kind, argse.string_length); ! mold_type = gfc_get_character_type_len (arg->expr->ts.kind, tmp); break; case BT_CLASS: tmp = gfc_class_vtab_size_get (argse.expr); --- 8455,8462 ---- { case BT_CHARACTER: tmp = size_of_string_in_bytes (arg->expr->ts.kind, argse.string_length); ! mold_type = gfc_get_character_type_len (arg->expr->ts.kind, ! argse.string_length); break; case BT_CLASS: tmp = gfc_class_vtab_size_get (argse.expr); *************** gfc_conv_intrinsic_transfer (gfc_se * se *** 8553,8559 **** se->expr = info->descriptor; if (expr->ts.type == BT_CHARACTER) ! se->string_length = fold_convert (gfc_charlen_type_node, dest_word_len); return; --- 8558,8570 ---- se->expr = info->descriptor; if (expr->ts.type == BT_CHARACTER) ! { ! tmp = fold_convert (gfc_charlen_type_node, ! TYPE_SIZE_UNIT (gfc_get_char_type (expr->ts.kind))); ! se->string_length = fold_build2_loc (input_location, TRUNC_DIV_EXPR, ! gfc_charlen_type_node, ! dest_word_len, tmp); ! } return; *************** scalar_transfer: *** 8607,8613 **** gfc_add_expr_to_block (&se->post, tmp); se->expr = tmpdecl; ! se->string_length = fold_convert (gfc_charlen_type_node, dest_word_len); } else { --- 8618,8628 ---- gfc_add_expr_to_block (&se->post, tmp); se->expr = tmpdecl; ! tmp = fold_convert (gfc_charlen_type_node, ! TYPE_SIZE_UNIT (gfc_get_char_type (expr->ts.kind))); ! se->string_length = fold_build2_loc (input_location, TRUNC_DIV_EXPR, ! gfc_charlen_type_node, ! dest_word_len, tmp); } else { *************** gfc_conv_associated (gfc_se *se, gfc_exp *** 8822,8828 **** else { /* An optional target. */ ! if (arg2->expr->ts.type == BT_CLASS) gfc_add_data_component (arg2->expr); if (scalar) --- 8837,8844 ---- else { /* An optional target. */ ! if (arg2->expr->ts.type == BT_CLASS ! && arg2->expr->expr_type != EXPR_FUNCTION) gfc_add_data_component (arg2->expr); if (scalar) *************** gfc_conv_associated (gfc_se *se, gfc_exp *** 8843,8848 **** --- 8859,8869 ---- && arg2->expr->symtree->n.sym->attr.dummy) arg2se.expr = build_fold_indirect_ref_loc (input_location, arg2se.expr); + if (arg2->expr->ts.type == BT_CLASS) + { + arg2se.expr = gfc_evaluate_now (arg2se.expr, &arg2se.pre); + arg2se.expr = gfc_class_data_get (arg2se.expr); + } gfc_add_block_to_block (&se->pre, &arg1se.pre); gfc_add_block_to_block (&se->post, &arg1se.post); gfc_add_block_to_block (&se->pre, &arg2se.pre); diff -Nrcpad gcc-10.3.0/gcc/fortran/trans-stmt.c gcc-10.4.0/gcc/fortran/trans-stmt.c *** gcc-10.3.0/gcc/fortran/trans-stmt.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/fortran/trans-stmt.c Tue Jun 28 08:54:28 2022 *************** trans_associate_var (gfc_symbol *sym, gf *** 1757,1763 **** if (e->ts.type == BT_CLASS) { /* Go straight to the class data. */ ! if (sym2->attr.dummy) { class_decl = DECL_LANG_SPECIFIC (sym2->backend_decl) ? GFC_DECL_SAVED_DESCRIPTOR (sym2->backend_decl) : --- 1757,1763 ---- if (e->ts.type == BT_CLASS) { /* Go straight to the class data. */ ! if (sym2->attr.dummy && !sym2->attr.optional) { class_decl = DECL_LANG_SPECIFIC (sym2->backend_decl) ? GFC_DECL_SAVED_DESCRIPTOR (sym2->backend_decl) : *************** trans_associate_var (gfc_symbol *sym, gf *** 1890,1896 **** gfc_conv_expr_descriptor (&se, e); if (sym->ts.type == BT_CHARACTER ! && !se.direct_byref && sym->ts.deferred && !sym->attr.select_type_temporary && VAR_P (sym->ts.u.cl->backend_decl) && se.string_length != sym->ts.u.cl->backend_decl) --- 1890,1896 ---- gfc_conv_expr_descriptor (&se, e); if (sym->ts.type == BT_CHARACTER ! && sym->ts.deferred && !sym->attr.select_type_temporary && VAR_P (sym->ts.u.cl->backend_decl) && se.string_length != sym->ts.u.cl->backend_decl) diff -Nrcpad gcc-10.3.0/gcc/fortran/trans-types.c gcc-10.4.0/gcc/fortran/trans-types.c *** gcc-10.3.0/gcc/fortran/trans-types.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/fortran/trans-types.c Tue Jun 28 08:54:28 2022 *************** gfc_get_nodesc_array_type (tree etype, g *** 1618,1624 **** GFC_TYPE_ARRAY_STRIDE (type, n) = tmp; expr = as->lower[n]; ! if (expr->expr_type == EXPR_CONSTANT) { tmp = gfc_conv_mpz_to_tree (expr->value.integer, gfc_index_integer_kind); --- 1618,1624 ---- GFC_TYPE_ARRAY_STRIDE (type, n) = tmp; expr = as->lower[n]; ! if (expr && expr->expr_type == EXPR_CONSTANT) { tmp = gfc_conv_mpz_to_tree (expr->value.integer, gfc_index_integer_kind); *************** gfc_get_nodesc_array_type (tree etype, g *** 1668,1674 **** for (n = as->rank; n < as->rank + as->corank; n++) { expr = as->lower[n]; ! if (expr->expr_type == EXPR_CONSTANT) tmp = gfc_conv_mpz_to_tree (expr->value.integer, gfc_index_integer_kind); else --- 1668,1674 ---- for (n = as->rank; n < as->rank + as->corank; n++) { expr = as->lower[n]; ! if (expr && expr->expr_type == EXPR_CONSTANT) tmp = gfc_conv_mpz_to_tree (expr->value.integer, gfc_index_integer_kind); else *************** gfc_get_function_type (gfc_symbol * sym, *** 3115,3128 **** vec_safe_push (typelist, boolean_type_node); /* Coarrays which are descriptorless or assumed-shape pass with -fcoarray=lib the token and the offset as hidden arguments. */ ! else if (arg ! && flag_coarray == GFC_FCOARRAY_LIB ! && ((arg->ts.type != BT_CLASS ! && arg->attr.codimension ! && !arg->attr.allocatable) ! || (arg->ts.type == BT_CLASS ! && CLASS_DATA (arg)->attr.codimension ! && !CLASS_DATA (arg)->attr.allocatable))) { vec_safe_push (typelist, pvoid_type_node); /* caf_token. */ vec_safe_push (typelist, gfc_array_index_type); /* caf_offset. */ --- 3115,3128 ---- vec_safe_push (typelist, boolean_type_node); /* Coarrays which are descriptorless or assumed-shape pass with -fcoarray=lib the token and the offset as hidden arguments. */ ! if (arg ! && flag_coarray == GFC_FCOARRAY_LIB ! && ((arg->ts.type != BT_CLASS ! && arg->attr.codimension ! && !arg->attr.allocatable) ! || (arg->ts.type == BT_CLASS ! && CLASS_DATA (arg)->attr.codimension ! && !CLASS_DATA (arg)->attr.allocatable))) { vec_safe_push (typelist, pvoid_type_node); /* caf_token. */ vec_safe_push (typelist, gfc_array_index_type); /* caf_offset. */ *************** gfc_get_array_descr_info (const_tree typ *** 3386,3393 **** if (!integer_zerop (dtype_off)) t = fold_build_pointer_plus (t, rank_off); ! t = build1 (NOP_EXPR, build_pointer_type (gfc_array_index_type), t); ! t = build1 (INDIRECT_REF, gfc_array_index_type, t); info->rank = t; t = build0 (PLACEHOLDER_EXPR, TREE_TYPE (dim_off)); t = size_binop (MULT_EXPR, t, dim_size); --- 3386,3393 ---- if (!integer_zerop (dtype_off)) t = fold_build_pointer_plus (t, rank_off); ! t = build1 (NOP_EXPR, build_pointer_type (TREE_TYPE (field)), t); ! t = build1 (INDIRECT_REF, TREE_TYPE (field), t); info->rank = t; t = build0 (PLACEHOLDER_EXPR, TREE_TYPE (dim_off)); t = size_binop (MULT_EXPR, t, dim_size); diff -Nrcpad gcc-10.3.0/gcc/function.c gcc-10.4.0/gcc/function.c *** gcc-10.3.0/gcc/function.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/function.c Tue Jun 28 08:54:28 2022 *************** push_dummy_function (bool with_decl) *** 4916,4921 **** --- 4916,4924 ---- fn_result_decl = build_decl (UNKNOWN_LOCATION, RESULT_DECL, NULL_TREE, void_type_node); DECL_RESULT (fn_decl) = fn_result_decl; + DECL_ARTIFICIAL (fn_decl) = 1; + tree fn_name = get_identifier (" "); + SET_DECL_ASSEMBLER_NAME (fn_decl, fn_name); } else fn_decl = NULL_TREE; diff -Nrcpad gcc-10.3.0/gcc/gcc.c gcc-10.4.0/gcc/gcc.c *** gcc-10.3.0/gcc/gcc.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/gcc.c Tue Jun 28 08:54:28 2022 *************** find_a_file (const struct path_prefix *p *** 2864,2869 **** --- 2864,2874 ---- return xstrdup (DEFAULT_LINKER); #endif + #ifdef DEFAULT_DSYMUTIL + if (! strcmp (name, "dsymutil") && access (DEFAULT_DSYMUTIL, mode) == 0) + return xstrdup (DEFAULT_DSYMUTIL); + #endif + /* Determine the filename to execute (special case for absolute paths). */ if (IS_ABSOLUTE_PATH (name)) diff -Nrcpad gcc-10.3.0/gcc/gengtype-lex.c gcc-10.4.0/gcc/gengtype-lex.c *** gcc-10.3.0/gcc/gengtype-lex.c Thu Apr 8 11:57:41 2021 --- gcc-10.4.0/gcc/gengtype-lex.c Tue Jun 28 08:56:18 2022 *************** int yy_flex_debug = 0; *** 1188,1194 **** #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET char *yytext; ! #line 1 "/home/rguenther/src/releases/gcc-10.3.0/gcc-10.3.0/gcc/gengtype-lex.l" /* -*- indented-text -*- */ /* Process source files and output type information. Copyright (C) 2002-2020 Free Software Foundation, Inc. --- 1188,1194 ---- #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET char *yytext; ! #line 1 "/d/gcc-10.4.0/gcc-10.4.0/gcc/gengtype-lex.l" /* -*- indented-text -*- */ /* Process source files and output type information. Copyright (C) 2002-2020 Free Software Foundation, Inc. *************** You should have received a copy of the G *** 1209,1215 **** along with GCC; see the file COPYING3. If not see . */ #define YY_NO_INPUT 1 ! #line 24 "/home/rguenther/src/releases/gcc-10.3.0/gcc-10.3.0/gcc/gengtype-lex.l" #ifdef HOST_GENERATOR_FILE #include "config.h" #define GENERATOR_FILE 1 --- 1209,1215 ---- along with GCC; see the file COPYING3. If not see . */ #define YY_NO_INPUT 1 ! #line 24 "/d/gcc-10.4.0/gcc-10.4.0/gcc/gengtype-lex.l" #ifdef HOST_GENERATOR_FILE #include "config.h" #define GENERATOR_FILE 1 *************** update_lineno (const char *l, size_t len *** 1238,1244 **** } #line 1235 "gengtype-lex.c" ! #line 59 "/home/rguenther/src/releases/gcc-10.3.0/gcc-10.3.0/gcc/gengtype-lex.l" /* Include '::' in identifiers to capture C++ scope qualifiers. */ #line 1239 "gengtype-lex.c" --- 1238,1244 ---- } #line 1235 "gengtype-lex.c" ! #line 59 "/d/gcc-10.4.0/gcc-10.4.0/gcc/gengtype-lex.l" /* Include '::' in identifiers to capture C++ scope qualifiers. */ #line 1239 "gengtype-lex.c" *************** YY_DECL *** 1462,1468 **** } { ! #line 67 "/home/rguenther/src/releases/gcc-10.3.0/gcc-10.3.0/gcc/gengtype-lex.l" /* Do this on entry to yylex(): */ *yylval = 0; --- 1462,1468 ---- } { ! #line 67 "/d/gcc-10.4.0/gcc-10.4.0/gcc/gengtype-lex.l" /* Do this on entry to yylex(): */ *yylval = 0; *************** YY_LINENO_REWIND_TO(yy_cp - 1); *** 1534,1540 **** (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 78 "/home/rguenther/src/releases/gcc-10.3.0/gcc-10.3.0/gcc/gengtype-lex.l" { BEGIN(in_struct); return TYPEDEF; --- 1534,1540 ---- (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 78 "/d/gcc-10.4.0/gcc-10.4.0/gcc/gengtype-lex.l" { BEGIN(in_struct); return TYPEDEF; *************** YY_LINENO_REWIND_TO(yy_cp - 1); *** 1547,1553 **** (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 82 "/home/rguenther/src/releases/gcc-10.3.0/gcc-10.3.0/gcc/gengtype-lex.l" { BEGIN(in_struct); return STRUCT; --- 1547,1553 ---- (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 82 "/d/gcc-10.4.0/gcc-10.4.0/gcc/gengtype-lex.l" { BEGIN(in_struct); return STRUCT; *************** YY_LINENO_REWIND_TO(yy_cp - 1); *** 1560,1566 **** (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 86 "/home/rguenther/src/releases/gcc-10.3.0/gcc-10.3.0/gcc/gengtype-lex.l" { BEGIN(in_struct); return UNION; --- 1560,1566 ---- (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 86 "/d/gcc-10.4.0/gcc-10.4.0/gcc/gengtype-lex.l" { BEGIN(in_struct); return UNION; *************** YY_LINENO_REWIND_TO(yy_cp - 1); *** 1573,1579 **** (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 90 "/home/rguenther/src/releases/gcc-10.3.0/gcc-10.3.0/gcc/gengtype-lex.l" { BEGIN(in_struct); return STRUCT; --- 1573,1579 ---- (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 90 "/d/gcc-10.4.0/gcc-10.4.0/gcc/gengtype-lex.l" { BEGIN(in_struct); return STRUCT; *************** YY_LINENO_REWIND_TO(yy_cp - 1); *** 1586,1592 **** (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 94 "/home/rguenther/src/releases/gcc-10.3.0/gcc-10.3.0/gcc/gengtype-lex.l" { BEGIN(in_struct); return EXTERN; --- 1586,1592 ---- (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 94 "/d/gcc-10.4.0/gcc-10.4.0/gcc/gengtype-lex.l" { BEGIN(in_struct); return EXTERN; *************** YY_LINENO_REWIND_TO(yy_cp - 1); *** 1599,1605 **** (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 98 "/home/rguenther/src/releases/gcc-10.3.0/gcc-10.3.0/gcc/gengtype-lex.l" { BEGIN(in_struct); return STATIC; --- 1599,1605 ---- (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 98 "/d/gcc-10.4.0/gcc-10.4.0/gcc/gengtype-lex.l" { BEGIN(in_struct); return STATIC; *************** YY_RULE_SETUP *** 1610,1634 **** case 7: YY_RULE_SETUP ! #line 106 "/home/rguenther/src/releases/gcc-10.3.0/gcc-10.3.0/gcc/gengtype-lex.l" { BEGIN(in_struct_comment); } YY_BREAK case 8: /* rule 8 can match eol */ YY_RULE_SETUP ! #line 107 "/home/rguenther/src/releases/gcc-10.3.0/gcc-10.3.0/gcc/gengtype-lex.l" { lexer_line.line++; } YY_BREAK case 9: /* rule 9 can match eol */ YY_RULE_SETUP ! #line 109 "/home/rguenther/src/releases/gcc-10.3.0/gcc-10.3.0/gcc/gengtype-lex.l" { update_lineno (yytext, yyleng); } YY_BREAK case 10: /* rule 10 can match eol */ YY_RULE_SETUP ! #line 110 "/home/rguenther/src/releases/gcc-10.3.0/gcc-10.3.0/gcc/gengtype-lex.l" { lexer_line.line++; } YY_BREAK case 11: --- 1610,1634 ---- case 7: YY_RULE_SETUP ! #line 106 "/d/gcc-10.4.0/gcc-10.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-10.4.0/gcc-10.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-10.4.0/gcc-10.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-10.4.0/gcc-10.4.0/gcc/gengtype-lex.l" { lexer_line.line++; } YY_BREAK case 11: *************** YY_LINENO_REWIND_TO(yy_bp + 5); *** 1638,1644 **** (yy_c_buf_p) = yy_cp = yy_bp + 5; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 112 "/home/rguenther/src/releases/gcc-10.3.0/gcc-10.3.0/gcc/gengtype-lex.l" /* don't care */ YY_BREAK case 12: --- 1638,1644 ---- (yy_c_buf_p) = yy_cp = yy_bp + 5; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 112 "/d/gcc-10.4.0/gcc-10.4.0/gcc/gengtype-lex.l" /* don't care */ YY_BREAK case 12: *************** case 12: *** 1647,1663 **** YY_LINENO_REWIND_TO(yy_cp - 1); (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ ! #line 114 "/home/rguenther/src/releases/gcc-10.3.0/gcc-10.3.0/gcc/gengtype-lex.l" case 13: /* rule 13 can match eol */ ! #line 115 "/home/rguenther/src/releases/gcc-10.3.0/gcc-10.3.0/gcc/gengtype-lex.l" case 14: /* rule 14 can match eol */ ! #line 116 "/home/rguenther/src/releases/gcc-10.3.0/gcc-10.3.0/gcc/gengtype-lex.l" case 15: /* rule 15 can match eol */ YY_RULE_SETUP ! #line 116 "/home/rguenther/src/releases/gcc-10.3.0/gcc-10.3.0/gcc/gengtype-lex.l" { *yylval = XDUPVAR (const char, yytext, yyleng, yyleng + 1); return IGNORABLE_CXX_KEYWORD; --- 1647,1663 ---- YY_LINENO_REWIND_TO(yy_cp - 1); (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ ! #line 114 "/d/gcc-10.4.0/gcc-10.4.0/gcc/gengtype-lex.l" case 13: /* rule 13 can match eol */ ! #line 115 "/d/gcc-10.4.0/gcc-10.4.0/gcc/gengtype-lex.l" case 14: /* rule 14 can match eol */ ! #line 116 "/d/gcc-10.4.0/gcc-10.4.0/gcc/gengtype-lex.l" case 15: /* rule 15 can match eol */ YY_RULE_SETUP ! #line 116 "/d/gcc-10.4.0/gcc-10.4.0/gcc/gengtype-lex.l" { *yylval = XDUPVAR (const char, yytext, yyleng, yyleng + 1); return IGNORABLE_CXX_KEYWORD; *************** YY_LINENO_REWIND_TO(yy_bp + 3); *** 1670,1676 **** (yy_c_buf_p) = yy_cp = yy_bp + 3; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 120 "/home/rguenther/src/releases/gcc-10.3.0/gcc-10.3.0/gcc/gengtype-lex.l" { return GTY_TOKEN; } YY_BREAK case 17: --- 1670,1676 ---- (yy_c_buf_p) = yy_cp = yy_bp + 3; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 120 "/d/gcc-10.4.0/gcc-10.4.0/gcc/gengtype-lex.l" { return GTY_TOKEN; } YY_BREAK case 17: *************** YY_LINENO_REWIND_TO(yy_bp + 5); *** 1680,1686 **** (yy_c_buf_p) = yy_cp = yy_bp + 5; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 121 "/home/rguenther/src/releases/gcc-10.3.0/gcc-10.3.0/gcc/gengtype-lex.l" { return UNION; } YY_BREAK case 18: --- 1680,1686 ---- (yy_c_buf_p) = yy_cp = yy_bp + 5; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 121 "/d/gcc-10.4.0/gcc-10.4.0/gcc/gengtype-lex.l" { return UNION; } YY_BREAK case 18: *************** YY_LINENO_REWIND_TO(yy_bp + 6); *** 1690,1696 **** (yy_c_buf_p) = yy_cp = yy_bp + 6; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 122 "/home/rguenther/src/releases/gcc-10.3.0/gcc-10.3.0/gcc/gengtype-lex.l" { return STRUCT; } YY_BREAK case 19: --- 1690,1696 ---- (yy_c_buf_p) = yy_cp = yy_bp + 6; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 122 "/d/gcc-10.4.0/gcc-10.4.0/gcc/gengtype-lex.l" { return STRUCT; } YY_BREAK case 19: *************** YY_LINENO_REWIND_TO(yy_bp + 5); *** 1700,1706 **** (yy_c_buf_p) = yy_cp = yy_bp + 5; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 123 "/home/rguenther/src/releases/gcc-10.3.0/gcc-10.3.0/gcc/gengtype-lex.l" { return STRUCT; } YY_BREAK case 20: --- 1700,1706 ---- (yy_c_buf_p) = yy_cp = yy_bp + 5; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 123 "/d/gcc-10.4.0/gcc-10.4.0/gcc/gengtype-lex.l" { return STRUCT; } YY_BREAK case 20: *************** YY_LINENO_REWIND_TO(yy_bp + 7); *** 1710,1716 **** (yy_c_buf_p) = yy_cp = yy_bp + 7; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 124 "/home/rguenther/src/releases/gcc-10.3.0/gcc-10.3.0/gcc/gengtype-lex.l" { return TYPEDEF; } YY_BREAK case 21: --- 1710,1716 ---- (yy_c_buf_p) = yy_cp = yy_bp + 7; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 124 "/d/gcc-10.4.0/gcc-10.4.0/gcc/gengtype-lex.l" { return TYPEDEF; } YY_BREAK case 21: *************** YY_LINENO_REWIND_TO(yy_bp + 4); *** 1720,1726 **** (yy_c_buf_p) = yy_cp = yy_bp + 4; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 125 "/home/rguenther/src/releases/gcc-10.3.0/gcc-10.3.0/gcc/gengtype-lex.l" { return ENUM; } YY_BREAK case 22: --- 1720,1726 ---- (yy_c_buf_p) = yy_cp = yy_bp + 4; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 125 "/d/gcc-10.4.0/gcc-10.4.0/gcc/gengtype-lex.l" { return ENUM; } YY_BREAK case 22: *************** YY_LINENO_REWIND_TO(yy_bp + 9); *** 1730,1736 **** (yy_c_buf_p) = yy_cp = yy_bp + 9; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 126 "/home/rguenther/src/releases/gcc-10.3.0/gcc-10.3.0/gcc/gengtype-lex.l" { return PTR_ALIAS; } YY_BREAK case 23: --- 1730,1736 ---- (yy_c_buf_p) = yy_cp = yy_bp + 9; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 126 "/d/gcc-10.4.0/gcc-10.4.0/gcc/gengtype-lex.l" { return PTR_ALIAS; } YY_BREAK case 23: *************** YY_LINENO_REWIND_TO(yy_bp + 10); *** 1740,1746 **** (yy_c_buf_p) = yy_cp = yy_bp + 10; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 127 "/home/rguenther/src/releases/gcc-10.3.0/gcc-10.3.0/gcc/gengtype-lex.l" { return NESTED_PTR; } YY_BREAK case 24: --- 1740,1746 ---- (yy_c_buf_p) = yy_cp = yy_bp + 10; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 127 "/d/gcc-10.4.0/gcc-10.4.0/gcc/gengtype-lex.l" { return NESTED_PTR; } YY_BREAK case 24: *************** YY_LINENO_REWIND_TO(yy_bp + 4); *** 1750,1761 **** (yy_c_buf_p) = yy_cp = yy_bp + 4; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 128 "/home/rguenther/src/releases/gcc-10.3.0/gcc-10.3.0/gcc/gengtype-lex.l" { return USER_GTY; } YY_BREAK case 25: YY_RULE_SETUP ! #line 129 "/home/rguenther/src/releases/gcc-10.3.0/gcc-10.3.0/gcc/gengtype-lex.l" { return NUM; } YY_BREAK case 26: --- 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-10.4.0/gcc-10.4.0/gcc/gengtype-lex.l" { return USER_GTY; } YY_BREAK case 25: YY_RULE_SETUP ! #line 129 "/d/gcc-10.4.0/gcc-10.4.0/gcc/gengtype-lex.l" { return NUM; } YY_BREAK case 26: *************** case 26: *** 1764,1774 **** YY_LINENO_REWIND_TO(yy_cp - 1); (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ ! #line 132 "/home/rguenther/src/releases/gcc-10.3.0/gcc-10.3.0/gcc/gengtype-lex.l" case 27: /* rule 27 can match eol */ YY_RULE_SETUP ! #line 132 "/home/rguenther/src/releases/gcc-10.3.0/gcc-10.3.0/gcc/gengtype-lex.l" { size_t len; --- 1764,1774 ---- YY_LINENO_REWIND_TO(yy_cp - 1); (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ ! #line 132 "/d/gcc-10.4.0/gcc-10.4.0/gcc/gengtype-lex.l" case 27: /* rule 27 can match eol */ YY_RULE_SETUP ! #line 132 "/d/gcc-10.4.0/gcc-10.4.0/gcc/gengtype-lex.l" { size_t len; *************** YY_LINENO_REWIND_TO(yy_cp - 1); *** 1787,1793 **** (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 143 "/home/rguenther/src/releases/gcc-10.3.0/gcc-10.3.0/gcc/gengtype-lex.l" { *yylval = XDUPVAR (const char, yytext, yyleng, yyleng+1); return ID; --- 1787,1793 ---- (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 143 "/d/gcc-10.4.0/gcc-10.4.0/gcc/gengtype-lex.l" { *yylval = XDUPVAR (const char, yytext, yyleng, yyleng+1); return ID; *************** YY_RULE_SETUP *** 1796,1802 **** case 29: /* rule 29 can match eol */ YY_RULE_SETUP ! #line 148 "/home/rguenther/src/releases/gcc-10.3.0/gcc-10.3.0/gcc/gengtype-lex.l" { *yylval = XDUPVAR (const char, yytext+1, yyleng-2, yyleng-1); return STRING; --- 1796,1802 ---- case 29: /* rule 29 can match eol */ YY_RULE_SETUP ! #line 148 "/d/gcc-10.4.0/gcc-10.4.0/gcc/gengtype-lex.l" { *yylval = XDUPVAR (const char, yytext+1, yyleng-2, yyleng-1); return STRING; *************** YY_RULE_SETUP *** 1806,1812 **** case 30: /* rule 30 can match eol */ YY_RULE_SETUP ! #line 153 "/home/rguenther/src/releases/gcc-10.3.0/gcc-10.3.0/gcc/gengtype-lex.l" { *yylval = XDUPVAR (const char, yytext+1, yyleng-2, yyleng-1); return ARRAY; --- 1806,1812 ---- case 30: /* rule 30 can match eol */ YY_RULE_SETUP ! #line 153 "/d/gcc-10.4.0/gcc-10.4.0/gcc/gengtype-lex.l" { *yylval = XDUPVAR (const char, yytext+1, yyleng-2, yyleng-1); return ARRAY; *************** YY_RULE_SETUP *** 1815,1821 **** case 31: /* rule 31 can match eol */ YY_RULE_SETUP ! #line 157 "/home/rguenther/src/releases/gcc-10.3.0/gcc-10.3.0/gcc/gengtype-lex.l" { *yylval = XDUPVAR (const char, yytext+1, yyleng-2, yyleng); return CHAR; --- 1815,1821 ---- case 31: /* rule 31 can match eol */ YY_RULE_SETUP ! #line 157 "/d/gcc-10.4.0/gcc-10.4.0/gcc/gengtype-lex.l" { *yylval = XDUPVAR (const char, yytext+1, yyleng-2, yyleng); return CHAR; *************** YY_RULE_SETUP *** 1823,1846 **** YY_BREAK case 32: YY_RULE_SETUP ! #line 162 "/home/rguenther/src/releases/gcc-10.3.0/gcc-10.3.0/gcc/gengtype-lex.l" { return ELLIPSIS; } YY_BREAK case 33: YY_RULE_SETUP ! #line 163 "/home/rguenther/src/releases/gcc-10.3.0/gcc-10.3.0/gcc/gengtype-lex.l" { return yytext[0]; } YY_BREAK /* ignore pp-directives */ case 34: /* rule 34 can match eol */ YY_RULE_SETUP ! #line 166 "/home/rguenther/src/releases/gcc-10.3.0/gcc-10.3.0/gcc/gengtype-lex.l" {lexer_line.line++;} YY_BREAK case 35: YY_RULE_SETUP ! #line 168 "/home/rguenther/src/releases/gcc-10.3.0/gcc-10.3.0/gcc/gengtype-lex.l" { error_at_line (&lexer_line, "unexpected character `%s'", yytext); } --- 1823,1846 ---- YY_BREAK case 32: YY_RULE_SETUP ! #line 162 "/d/gcc-10.4.0/gcc-10.4.0/gcc/gengtype-lex.l" { return ELLIPSIS; } YY_BREAK case 33: YY_RULE_SETUP ! #line 163 "/d/gcc-10.4.0/gcc-10.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 166 "/d/gcc-10.4.0/gcc-10.4.0/gcc/gengtype-lex.l" {lexer_line.line++;} YY_BREAK case 35: YY_RULE_SETUP ! #line 168 "/d/gcc-10.4.0/gcc-10.4.0/gcc/gengtype-lex.l" { error_at_line (&lexer_line, "unexpected character `%s'", yytext); } *************** YY_RULE_SETUP *** 1848,1883 **** case 36: YY_RULE_SETUP ! #line 173 "/home/rguenther/src/releases/gcc-10.3.0/gcc-10.3.0/gcc/gengtype-lex.l" { BEGIN(in_comment); } YY_BREAK case 37: /* rule 37 can match eol */ YY_RULE_SETUP ! #line 174 "/home/rguenther/src/releases/gcc-10.3.0/gcc-10.3.0/gcc/gengtype-lex.l" { lexer_line.line++; } YY_BREAK case 38: /* rule 38 can match eol */ YY_RULE_SETUP ! #line 175 "/home/rguenther/src/releases/gcc-10.3.0/gcc-10.3.0/gcc/gengtype-lex.l" { lexer_line.line++; } YY_BREAK case 39: ! #line 177 "/home/rguenther/src/releases/gcc-10.3.0/gcc-10.3.0/gcc/gengtype-lex.l" case 40: /* rule 40 can match eol */ ! #line 178 "/home/rguenther/src/releases/gcc-10.3.0/gcc-10.3.0/gcc/gengtype-lex.l" case 41: /* rule 41 can match eol */ YY_RULE_SETUP ! #line 178 "/home/rguenther/src/releases/gcc-10.3.0/gcc-10.3.0/gcc/gengtype-lex.l" /* do nothing */ YY_BREAK case 42: /* rule 42 can match eol */ YY_RULE_SETUP ! #line 179 "/home/rguenther/src/releases/gcc-10.3.0/gcc-10.3.0/gcc/gengtype-lex.l" { update_lineno (yytext, yyleng); } YY_BREAK case 43: --- 1848,1883 ---- case 36: YY_RULE_SETUP ! #line 173 "/d/gcc-10.4.0/gcc-10.4.0/gcc/gengtype-lex.l" { BEGIN(in_comment); } YY_BREAK case 37: /* rule 37 can match eol */ YY_RULE_SETUP ! #line 174 "/d/gcc-10.4.0/gcc-10.4.0/gcc/gengtype-lex.l" { lexer_line.line++; } YY_BREAK case 38: /* rule 38 can match eol */ YY_RULE_SETUP ! #line 175 "/d/gcc-10.4.0/gcc-10.4.0/gcc/gengtype-lex.l" { lexer_line.line++; } YY_BREAK case 39: ! #line 177 "/d/gcc-10.4.0/gcc-10.4.0/gcc/gengtype-lex.l" case 40: /* rule 40 can match eol */ ! #line 178 "/d/gcc-10.4.0/gcc-10.4.0/gcc/gengtype-lex.l" case 41: /* rule 41 can match eol */ YY_RULE_SETUP ! #line 178 "/d/gcc-10.4.0/gcc-10.4.0/gcc/gengtype-lex.l" /* do nothing */ YY_BREAK case 42: /* rule 42 can match eol */ YY_RULE_SETUP ! #line 179 "/d/gcc-10.4.0/gcc-10.4.0/gcc/gengtype-lex.l" { update_lineno (yytext, yyleng); } YY_BREAK case 43: *************** YY_LINENO_REWIND_TO(yy_bp + 1); *** 1887,1907 **** (yy_c_buf_p) = yy_cp = yy_bp + 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 180 "/home/rguenther/src/releases/gcc-10.3.0/gcc-10.3.0/gcc/gengtype-lex.l" /* do nothing */ YY_BREAK case 44: /* rule 44 can match eol */ YY_RULE_SETUP ! #line 183 "/home/rguenther/src/releases/gcc-10.3.0/gcc-10.3.0/gcc/gengtype-lex.l" { lexer_line.line++; } YY_BREAK case 45: ! #line 185 "/home/rguenther/src/releases/gcc-10.3.0/gcc-10.3.0/gcc/gengtype-lex.l" case 46: YY_RULE_SETUP ! #line 185 "/home/rguenther/src/releases/gcc-10.3.0/gcc-10.3.0/gcc/gengtype-lex.l" /* do nothing */ YY_BREAK case 47: --- 1887,1907 ---- (yy_c_buf_p) = yy_cp = yy_bp + 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 180 "/d/gcc-10.4.0/gcc-10.4.0/gcc/gengtype-lex.l" /* do nothing */ YY_BREAK case 44: /* rule 44 can match eol */ YY_RULE_SETUP ! #line 183 "/d/gcc-10.4.0/gcc-10.4.0/gcc/gengtype-lex.l" { lexer_line.line++; } YY_BREAK case 45: ! #line 185 "/d/gcc-10.4.0/gcc-10.4.0/gcc/gengtype-lex.l" case 46: YY_RULE_SETUP ! #line 185 "/d/gcc-10.4.0/gcc-10.4.0/gcc/gengtype-lex.l" /* do nothing */ YY_BREAK case 47: *************** YY_LINENO_REWIND_TO(yy_bp + 1); *** 1911,1935 **** (yy_c_buf_p) = yy_cp = yy_bp + 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 186 "/home/rguenther/src/releases/gcc-10.3.0/gcc-10.3.0/gcc/gengtype-lex.l" /* do nothing */ YY_BREAK case 48: YY_RULE_SETUP ! #line 189 "/home/rguenther/src/releases/gcc-10.3.0/gcc-10.3.0/gcc/gengtype-lex.l" { BEGIN(INITIAL); } YY_BREAK case 49: YY_RULE_SETUP ! #line 190 "/home/rguenther/src/releases/gcc-10.3.0/gcc-10.3.0/gcc/gengtype-lex.l" { BEGIN(in_struct); } YY_BREAK case 50: ! #line 193 "/home/rguenther/src/releases/gcc-10.3.0/gcc-10.3.0/gcc/gengtype-lex.l" case 51: YY_RULE_SETUP ! #line 193 "/home/rguenther/src/releases/gcc-10.3.0/gcc-10.3.0/gcc/gengtype-lex.l" { error_at_line (&lexer_line, "unterminated comment or string; unexpected EOF"); --- 1911,1935 ---- (yy_c_buf_p) = yy_cp = yy_bp + 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 186 "/d/gcc-10.4.0/gcc-10.4.0/gcc/gengtype-lex.l" /* do nothing */ YY_BREAK case 48: YY_RULE_SETUP ! #line 189 "/d/gcc-10.4.0/gcc-10.4.0/gcc/gengtype-lex.l" { BEGIN(INITIAL); } YY_BREAK case 49: YY_RULE_SETUP ! #line 190 "/d/gcc-10.4.0/gcc-10.4.0/gcc/gengtype-lex.l" { BEGIN(in_struct); } YY_BREAK case 50: ! #line 193 "/d/gcc-10.4.0/gcc-10.4.0/gcc/gengtype-lex.l" case 51: YY_RULE_SETUP ! #line 193 "/d/gcc-10.4.0/gcc-10.4.0/gcc/gengtype-lex.l" { error_at_line (&lexer_line, "unterminated comment or string; unexpected EOF"); *************** YY_RULE_SETUP *** 1938,1949 **** case 52: /* rule 52 can match eol */ YY_RULE_SETUP ! #line 198 "/home/rguenther/src/releases/gcc-10.3.0/gcc-10.3.0/gcc/gengtype-lex.l" /* do nothing */ YY_BREAK case 53: YY_RULE_SETUP ! #line 200 "/home/rguenther/src/releases/gcc-10.3.0/gcc-10.3.0/gcc/gengtype-lex.l" YY_FATAL_ERROR( "flex scanner jammed" ); YY_BREAK #line 1944 "gengtype-lex.c" --- 1938,1949 ---- case 52: /* rule 52 can match eol */ YY_RULE_SETUP ! #line 198 "/d/gcc-10.4.0/gcc-10.4.0/gcc/gengtype-lex.l" /* do nothing */ YY_BREAK case 53: YY_RULE_SETUP ! #line 200 "/d/gcc-10.4.0/gcc-10.4.0/gcc/gengtype-lex.l" YY_FATAL_ERROR( "flex scanner jammed" ); YY_BREAK #line 1944 "gengtype-lex.c" *************** void yyfree (void * ptr ) *** 2921,2927 **** #define YYTABLES_NAME "yytables" ! #line 200 "/home/rguenther/src/releases/gcc-10.3.0/gcc-10.3.0/gcc/gengtype-lex.l" void --- 2921,2927 ---- #define YYTABLES_NAME "yytables" ! #line 200 "/d/gcc-10.4.0/gcc-10.4.0/gcc/gengtype-lex.l" void diff -Nrcpad gcc-10.3.0/gcc/gimple-expr.c gcc-10.4.0/gcc/gimple-expr.c *** gcc-10.3.0/gcc/gimple-expr.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/gimple-expr.c Tue Jun 28 08:54:28 2022 *************** is_gimple_lvalue (tree t) *** 612,623 **** /* Helper for is_gimple_condexpr and is_gimple_condexpr_for_cond. */ static bool ! is_gimple_condexpr_1 (tree t, bool allow_traps) { ! return (is_gimple_val (t) || (COMPARISON_CLASS_P (t) ! && (allow_traps || !tree_could_throw_p (t)) ! && is_gimple_val (TREE_OPERAND (t, 0)) ! && is_gimple_val (TREE_OPERAND (t, 1)))); } /* Return true if T is a GIMPLE condition. */ --- 612,627 ---- /* Helper for is_gimple_condexpr and is_gimple_condexpr_for_cond. */ static bool ! is_gimple_condexpr_1 (tree t, bool allow_traps, bool allow_cplx) { ! tree op0; ! return (is_gimple_val (t) ! || (COMPARISON_CLASS_P (t) ! && (allow_traps || !tree_could_throw_p (t)) ! && ((op0 = TREE_OPERAND (t, 0)), true) ! && (allow_cplx || TREE_CODE (TREE_TYPE (op0)) != COMPLEX_TYPE) ! && is_gimple_val (op0) ! && is_gimple_val (TREE_OPERAND (t, 1)))); } /* Return true if T is a GIMPLE condition. */ *************** is_gimple_condexpr_1 (tree t, bool allow *** 625,631 **** bool is_gimple_condexpr (tree t) { ! return is_gimple_condexpr_1 (t, true); } /* Like is_gimple_condexpr, but does not allow T to trap. */ --- 629,637 ---- bool is_gimple_condexpr (tree t) { ! /* Always split out _Complex type compares since complex lowering ! doesn't handle this case. */ ! return is_gimple_condexpr_1 (t, true, false); } /* Like is_gimple_condexpr, but does not allow T to trap. */ *************** is_gimple_condexpr (tree t) *** 633,639 **** bool is_gimple_condexpr_for_cond (tree t) { ! return is_gimple_condexpr_1 (t, false); } /* Return true if T is a gimple address. */ --- 639,645 ---- bool is_gimple_condexpr_for_cond (tree t) { ! return is_gimple_condexpr_1 (t, false, true); } /* Return true if T is a gimple address. */ diff -Nrcpad gcc-10.3.0/gcc/gimple-fold.c gcc-10.4.0/gcc/gimple-fold.c *** gcc-10.3.0/gcc/gimple-fold.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/gimple-fold.c Tue Jun 28 08:54:28 2022 *************** get_symbol_constant_value (tree sym) *** 285,291 **** if (val) { val = canonicalize_constructor_val (unshare_expr (val), sym); ! if (val && is_gimple_min_invariant (val)) return val; else return NULL_TREE; --- 285,293 ---- if (val) { val = canonicalize_constructor_val (unshare_expr (val), sym); ! if (val ! && is_gimple_min_invariant (val) ! && useless_type_conversion_p (TREE_TYPE (sym), TREE_TYPE (val))) return val; else return NULL_TREE; *************** fold_gimple_assign (gimple_stmt_iterator *** 445,451 **** CONSTRUCTOR_ELTS (rhs)); } ! else if (DECL_P (rhs)) return get_symbol_constant_value (rhs); } break; --- 447,454 ---- CONSTRUCTOR_ELTS (rhs)); } ! else if (DECL_P (rhs) ! && is_gimple_reg_type (TREE_TYPE (rhs))) return get_symbol_constant_value (rhs); } break; *************** static bool *** 4840,4845 **** --- 4843,4849 ---- maybe_canonicalize_mem_ref_addr (tree *t, bool is_debug = false) { bool res = false; + tree *orig_t = t; if (TREE_CODE (*t) == ADDR_EXPR) t = &TREE_OPERAND (*t, 0); *************** maybe_canonicalize_mem_ref_addr (tree *t *** 4952,4957 **** --- 4956,4963 ---- if (tem) { *t = tem; + if (TREE_CODE (*orig_t) == ADDR_EXPR) + recompute_tree_invariant_for_addr_expr (*orig_t); res = true; } } diff -Nrcpad gcc-10.3.0/gcc/gimple-loop-interchange.cc gcc-10.4.0/gcc/gimple-loop-interchange.cc *** gcc-10.3.0/gcc/gimple-loop-interchange.cc Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/gimple-loop-interchange.cc Tue Jun 28 08:54:28 2022 *************** tree_loop_interchange::valid_data_depend *** 1044,1050 **** /* Be conservative, skip case if either direction at i_idx/o_idx levels is not '=' or '<'. */ ! if (dist_vect[i_idx] < 0 || dist_vect[o_idx] < 0) return false; } } --- 1044,1053 ---- /* Be conservative, skip case if either direction at i_idx/o_idx levels is not '=' or '<'. */ ! if ((!DDR_REVERSED_P (ddr) && dist_vect[i_idx] < 0) ! || (DDR_REVERSED_P (ddr) && dist_vect[i_idx] > 0) ! || (!DDR_REVERSED_P (ddr) && dist_vect[o_idx] < 0) ! || (DDR_REVERSED_P (ddr) && dist_vect[o_idx] > 0)) return false; } } diff -Nrcpad gcc-10.3.0/gcc/gimple-loop-jam.c gcc-10.4.0/gcc/gimple-loop-jam.c *** gcc-10.3.0/gcc/gimple-loop-jam.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/gimple-loop-jam.c Tue Jun 28 08:54:28 2022 *************** adjust_unroll_factor (class loop *inner, *** 403,412 **** a >= N, or b > 0, or b is zero and a > 0. Otherwise the unroll factor needs to be limited so that the first condition holds. That may limit the factor down to zero in the worst case. */ ! int dist = dist_v[0]; if (dist < 0) gcc_unreachable (); ! else if ((unsigned)dist >= *unroll) ; else if (lambda_vector_zerop (dist_v + 1, DDR_NB_LOOPS (ddr) - 1)) { --- 403,412 ---- a >= N, or b > 0, or b is zero and a > 0. Otherwise the unroll factor needs to be limited so that the first condition holds. That may limit the factor down to zero in the worst case. */ ! lambda_int dist = dist_v[0]; if (dist < 0) gcc_unreachable (); ! else if (dist >= (lambda_int)*unroll) ; else if (lambda_vector_zerop (dist_v + 1, DDR_NB_LOOPS (ddr) - 1)) { diff -Nrcpad gcc-10.3.0/gcc/gimple-ssa-evrp-analyze.c gcc-10.4.0/gcc/gimple-ssa-evrp-analyze.c *** gcc-10.3.0/gcc/gimple-ssa-evrp-analyze.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/gimple-ssa-evrp-analyze.c Tue Jun 28 08:54:28 2022 *************** evrp_range_analyzer::record_ranges_from_ *** 220,226 **** push_value_range (vrs[i].first, vrs[i].second); if (is_fallthru && m_update_global_ranges ! && all_uses_feed_or_dominated_by_stmt (vrs[i].first, stmt)) { set_ssa_range_info (vrs[i].first, vrs[i].second); maybe_set_nonzero_bits (pred_e, vrs[i].first); --- 220,230 ---- push_value_range (vrs[i].first, vrs[i].second); if (is_fallthru && m_update_global_ranges ! && all_uses_feed_or_dominated_by_stmt (vrs[i].first, stmt) ! /* The condition must post-dominate the definition point. */ ! && (SSA_NAME_IS_DEFAULT_DEF (vrs[i].first) ! || (gimple_bb (SSA_NAME_DEF_STMT (vrs[i].first)) ! == pred_e->src))) { set_ssa_range_info (vrs[i].first, vrs[i].second); maybe_set_nonzero_bits (pred_e, vrs[i].first); diff -Nrcpad gcc-10.3.0/gcc/gimple-ssa-store-merging.c gcc-10.4.0/gcc/gimple-ssa-store-merging.c *** gcc-10.3.0/gcc/gimple-ssa-store-merging.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/gimple-ssa-store-merging.c Tue Jun 28 08:54:28 2022 *************** find_bswap_or_nop_finalize (struct symbo *** 822,833 **** { mask = ((uint64_t) 1 << (rsize * BITS_PER_MARKER)) - 1; *cmpxchg &= mask; ! *cmpnop >>= (n->range - rsize) * BITS_PER_MARKER; } else { mask = ((uint64_t) 1 << (rsize * BITS_PER_MARKER)) - 1; ! *cmpxchg >>= (n->range - rsize) * BITS_PER_MARKER; *cmpnop &= mask; } n->range = rsize; --- 822,839 ---- { mask = ((uint64_t) 1 << (rsize * BITS_PER_MARKER)) - 1; *cmpxchg &= mask; ! if (n->range - rsize == sizeof (int64_t)) ! *cmpnop = 0; ! else ! *cmpnop >>= (n->range - rsize) * BITS_PER_MARKER; } else { mask = ((uint64_t) 1 << (rsize * BITS_PER_MARKER)) - 1; ! if (n->range - rsize == sizeof (int64_t)) ! *cmpxchg = 0; ! else ! *cmpxchg >>= (n->range - rsize) * BITS_PER_MARKER; *cmpnop &= mask; } n->range = rsize; *************** mem_valid_for_store_merging (tree mem, p *** 4574,4580 **** tree base_addr = get_inner_reference (mem, &bitsize, &bitpos, &offset, &mode, &unsignedp, &reversep, &volatilep); *pbitsize = bitsize; ! if (known_eq (bitsize, 0)) return NULL_TREE; if (TREE_CODE (mem) == COMPONENT_REF --- 4580,4586 ---- tree base_addr = get_inner_reference (mem, &bitsize, &bitpos, &offset, &mode, &unsignedp, &reversep, &volatilep); *pbitsize = bitsize; ! if (known_le (bitsize, 0)) return NULL_TREE; if (TREE_CODE (mem) == COMPONENT_REF *************** get_status_for_store_merging (basic_bloc *** 4957,4962 **** --- 4963,4969 ---- unsigned int num_statements = 0; gimple_stmt_iterator gsi; edge e; + gimple *last_stmt = NULL; for (gsi = gsi_after_labels (bb); !gsi_end_p (gsi); gsi_next (&gsi)) { *************** get_status_for_store_merging (basic_bloc *** 4965,4970 **** --- 4972,4979 ---- if (is_gimple_debug (stmt)) continue; + last_stmt = stmt; + if (store_valid_for_store_merging_p (stmt) && ++num_statements >= 2) break; } *************** get_status_for_store_merging (basic_bloc *** 4973,4979 **** return BB_INVALID; if (cfun->can_throw_non_call_exceptions && cfun->eh ! && store_valid_for_store_merging_p (gimple_seq_last_stmt (bb_seq (bb))) && (e = find_fallthru_edge (bb->succs)) && e->dest == bb->next_bb) return BB_EXTENDED_VALID; --- 4982,4988 ---- return BB_INVALID; if (cfun->can_throw_non_call_exceptions && cfun->eh ! && store_valid_for_store_merging_p (last_stmt) && (e = find_fallthru_edge (bb->succs)) && e->dest == bb->next_bb) return BB_EXTENDED_VALID; diff -Nrcpad gcc-10.3.0/gcc/gimple-ssa-warn-restrict.c gcc-10.4.0/gcc/gimple-ssa-warn-restrict.c *** gcc-10.3.0/gcc/gimple-ssa-warn-restrict.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/gimple-ssa-warn-restrict.c Tue Jun 28 08:54:28 2022 *************** builtin_memref::set_base_and_offset (tre *** 505,511 **** { tree memrefoff = fold_convert (ptrdiff_type_node, TREE_OPERAND (base, 1)); extend_offset_range (memrefoff); - base = TREE_OPERAND (base, 0); if (refoff != HOST_WIDE_INT_MIN && TREE_CODE (expr) == COMPONENT_REF) --- 505,510 ---- *************** builtin_memref::set_base_and_offset (tre *** 518,531 **** REFOFF is set to s[1].b - (char*)s. */ offset_int off = tree_to_shwi (memrefoff); refoff += off; - } ! if (!integer_zerop (memrefoff)) ! /* A non-zero offset into an array of struct with flexible array ! members implies that the array is empty because there is no ! way to initialize such a member when it belongs to an array. ! This must be some sort of a bug. */ ! refsize = 0; } if (TREE_CODE (ref) == COMPONENT_REF) --- 517,535 ---- REFOFF is set to s[1].b - (char*)s. */ offset_int off = tree_to_shwi (memrefoff); refoff += off; ! if (!integer_zerop (memrefoff) ! && !COMPLETE_TYPE_P (TREE_TYPE (expr)) ! && multiple_of_p (sizetype, memrefoff, ! TYPE_SIZE_UNIT (TREE_TYPE (base)))) ! /* A non-zero offset into an array of struct with flexible array ! members implies that the array is empty because there is no ! way to initialize such a member when it belongs to an array. ! This must be some sort of a bug. */ ! refsize = 0; ! } ! ! base = TREE_OPERAND (base, 0); } if (TREE_CODE (ref) == COMPONENT_REF) diff -Nrcpad gcc-10.3.0/gcc/gimplify.c gcc-10.4.0/gcc/gimplify.c *** gcc-10.3.0/gcc/gimplify.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/gimplify.c Tue Jun 28 08:54:28 2022 *************** omp_check_private (struct gimplify_omp_c *** 7738,7744 **** if ((ctx->region_type & (ORT_TARGET | ORT_TARGET_DATA)) != 0 && (n == NULL || (n->value & GOVD_DATA_SHARE_CLASS) == 0)) ! continue; if (n != NULL) { --- 7738,7750 ---- if ((ctx->region_type & (ORT_TARGET | ORT_TARGET_DATA)) != 0 && (n == NULL || (n->value & GOVD_DATA_SHARE_CLASS) == 0)) ! { ! if ((ctx->region_type & ORT_TARGET_DATA) != 0 ! || n == NULL ! || (n->value & GOVD_MAP) == 0) ! continue; ! return false; ! } if (n != NULL) { *************** omp_check_private (struct gimplify_omp_c *** 7747,7757 **** return false; return (n->value & GOVD_SHARED) == 0; } } ! while (ctx->region_type == ORT_WORKSHARE ! || ctx->region_type == ORT_TASKGROUP ! || ctx->region_type == ORT_SIMD ! || ctx->region_type == ORT_ACC); return false; } --- 7753,7768 ---- return false; return (n->value & GOVD_SHARED) == 0; } + + if (ctx->region_type == ORT_WORKSHARE + || ctx->region_type == ORT_TASKGROUP + || ctx->region_type == ORT_SIMD + || ctx->region_type == ORT_ACC) + continue; + + break; } ! while (1); return false; } *************** gimplify_omp_for (tree *expr_p, gimple_s *** 12244,12264 **** /* Helper for gimplify_omp_loop, called through walk_tree. */ static tree ! replace_reduction_placeholders (tree *tp, int *walk_subtrees, void *data) { ! if (DECL_P (*tp)) { ! tree *d = (tree *) data; ! if (*tp == OMP_CLAUSE_REDUCTION_PLACEHOLDER (d[0])) ! { ! *tp = OMP_CLAUSE_REDUCTION_PLACEHOLDER (d[1]); ! *walk_subtrees = 0; ! } ! else if (*tp == OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER (d[0])) ! { ! *tp = OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER (d[1]); ! *walk_subtrees = 0; ! } } return NULL_TREE; } --- 12255,12269 ---- /* Helper for gimplify_omp_loop, called through walk_tree. */ static tree ! note_no_context_vars (tree *tp, int *, void *data) { ! if (VAR_P (*tp) ! && DECL_CONTEXT (*tp) == NULL_TREE ! && !is_global_var (*tp)) { ! vec *d = (vec *) data; ! d->safe_push (*tp); ! DECL_CONTEXT (*tp) = current_function_decl; } return NULL_TREE; } *************** gimplify_omp_loop (tree *expr_p, gimple_ *** 12427,12433 **** { if (pass == 2) { ! tree bind = build3 (BIND_EXPR, void_type_node, NULL, NULL, NULL); append_to_statement_list (*expr_p, &BIND_EXPR_BODY (bind)); *expr_p = make_node (OMP_PARALLEL); TREE_TYPE (*expr_p) = void_type_node; --- 12432,12439 ---- { if (pass == 2) { ! tree bind = build3 (BIND_EXPR, void_type_node, NULL, NULL, ! make_node (BLOCK)); append_to_statement_list (*expr_p, &BIND_EXPR_BODY (bind)); *expr_p = make_node (OMP_PARALLEL); TREE_TYPE (*expr_p) = void_type_node; *************** gimplify_omp_loop (tree *expr_p, gimple_ *** 12494,12518 **** *pc = copy_node (c); OMP_CLAUSE_DECL (*pc) = unshare_expr (OMP_CLAUSE_DECL (c)); TREE_TYPE (*pc) = unshare_expr (TREE_TYPE (c)); - OMP_CLAUSE_REDUCTION_INIT (*pc) - = unshare_expr (OMP_CLAUSE_REDUCTION_INIT (c)); - OMP_CLAUSE_REDUCTION_MERGE (*pc) - = unshare_expr (OMP_CLAUSE_REDUCTION_MERGE (c)); if (OMP_CLAUSE_REDUCTION_PLACEHOLDER (*pc)) { OMP_CLAUSE_REDUCTION_PLACEHOLDER (*pc) = copy_node (OMP_CLAUSE_REDUCTION_PLACEHOLDER (c)); if (OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER (*pc)) OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER (*pc) = copy_node (OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER (c)); ! tree nc = *pc; ! tree data[2] = { c, nc }; ! walk_tree_without_duplicates (&OMP_CLAUSE_REDUCTION_INIT (nc), ! replace_reduction_placeholders, ! data); ! walk_tree_without_duplicates (&OMP_CLAUSE_REDUCTION_MERGE (nc), ! replace_reduction_placeholders, ! data); } pc = &OMP_CLAUSE_CHAIN (*pc); break; --- 12500,12565 ---- *pc = copy_node (c); OMP_CLAUSE_DECL (*pc) = unshare_expr (OMP_CLAUSE_DECL (c)); TREE_TYPE (*pc) = unshare_expr (TREE_TYPE (c)); if (OMP_CLAUSE_REDUCTION_PLACEHOLDER (*pc)) { + auto_vec no_context_vars; + int walk_subtrees = 0; + note_no_context_vars (&OMP_CLAUSE_REDUCTION_PLACEHOLDER (c), + &walk_subtrees, &no_context_vars); + if (tree p = OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER (c)) + note_no_context_vars (&p, &walk_subtrees, &no_context_vars); + walk_tree_without_duplicates (&OMP_CLAUSE_REDUCTION_INIT (c), + note_no_context_vars, + &no_context_vars); + walk_tree_without_duplicates (&OMP_CLAUSE_REDUCTION_MERGE (c), + note_no_context_vars, + &no_context_vars); + OMP_CLAUSE_REDUCTION_PLACEHOLDER (*pc) = copy_node (OMP_CLAUSE_REDUCTION_PLACEHOLDER (c)); if (OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER (*pc)) OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER (*pc) = copy_node (OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER (c)); ! ! hash_map decl_map; ! decl_map.put (OMP_CLAUSE_DECL (c), OMP_CLAUSE_DECL (c)); ! decl_map.put (OMP_CLAUSE_REDUCTION_PLACEHOLDER (c), ! OMP_CLAUSE_REDUCTION_PLACEHOLDER (*pc)); ! if (OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER (*pc)) ! decl_map.put (OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER (c), ! OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER (*pc)); ! ! copy_body_data id; ! memset (&id, 0, sizeof (id)); ! id.src_fn = current_function_decl; ! id.dst_fn = current_function_decl; ! id.src_cfun = cfun; ! id.decl_map = &decl_map; ! id.copy_decl = copy_decl_no_change; ! id.transform_call_graph_edges = CB_CGE_DUPLICATE; ! id.transform_new_cfg = true; ! id.transform_return_to_modify = false; ! id.transform_lang_insert_block = NULL; ! id.eh_lp_nr = 0; ! walk_tree (&OMP_CLAUSE_REDUCTION_INIT (*pc), copy_tree_body_r, ! &id, NULL); ! walk_tree (&OMP_CLAUSE_REDUCTION_MERGE (*pc), copy_tree_body_r, ! &id, NULL); ! ! tree d; ! unsigned i; ! FOR_EACH_VEC_ELT (no_context_vars, i, d) ! { ! DECL_CONTEXT (d) = NULL_TREE; ! DECL_CONTEXT (*decl_map.get (d)) = NULL_TREE; ! } ! } ! else ! { ! OMP_CLAUSE_REDUCTION_INIT (*pc) ! = unshare_expr (OMP_CLAUSE_REDUCTION_INIT (c)); ! OMP_CLAUSE_REDUCTION_MERGE (*pc) ! = unshare_expr (OMP_CLAUSE_REDUCTION_MERGE (c)); } pc = &OMP_CLAUSE_CHAIN (*pc); break; diff -Nrcpad gcc-10.3.0/gcc/go/ChangeLog gcc-10.4.0/gcc/go/ChangeLog *** gcc-10.3.0/gcc/go/ChangeLog Thu Apr 8 11:56:48 2021 --- gcc-10.4.0/gcc/go/ChangeLog Tue Jun 28 08:54:28 2022 *************** *** 1,3 **** --- 1,7 ---- + 2022-06-28 Release Manager + + * GCC 10.4.0 released. + 2021-04-08 Release Manager * GCC 10.3.0 released. diff -Nrcpad gcc-10.3.0/gcc/go/gofrontend/expressions.cc gcc-10.4.0/gcc/go/gofrontend/expressions.cc *** gcc-10.3.0/gcc/go/gofrontend/expressions.cc Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/go/gofrontend/expressions.cc Tue Jun 28 08:54:28 2022 *************** Builtin_call_expression::flatten_append( *** 9075,9081 **** ref2 = Expression::make_cast(uint_type, ref2, loc); cond = Expression::make_binary(OPERATOR_GT, ref, ref2, loc); zero = Expression::make_integer_ul(0, int_type, loc); ! call = Expression::make_conditional(cond, call, zero, loc); } } else --- 9075,9081 ---- ref2 = Expression::make_cast(uint_type, ref2, loc); cond = Expression::make_binary(OPERATOR_GT, ref, ref2, loc); zero = Expression::make_integer_ul(0, int_type, loc); ! call = Expression::make_conditional(cond, zero, call, loc); } } else diff -Nrcpad gcc-10.3.0/gcc/godump.c gcc-10.4.0/gcc/godump.c *** gcc-10.3.0/gcc/godump.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/godump.c Tue Jun 28 08:54:28 2022 *************** static FILE *go_dump_file; *** 56,61 **** --- 56,63 ---- static GTY(()) vec *queue; + struct godump_str_hash : string_hash, ggc_remove {}; + /* A hash table of macros we have seen. */ static htab_t macro_hash; *************** public: *** 543,549 **** /* Types which may potentially have to be defined as dummy types. */ ! hash_set pot_dummy_types; /* Go keywords. */ htab_t keyword_hash; --- 545,551 ---- /* Types which may potentially have to be defined as dummy types. */ ! hash_set pot_dummy_types; /* Go keywords. */ htab_t keyword_hash; diff -Nrcpad gcc-10.3.0/gcc/ifcvt.c gcc-10.4.0/gcc/ifcvt.c *** gcc-10.3.0/gcc/ifcvt.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/ifcvt.c Tue Jun 28 08:54:28 2022 *************** bb_valid_for_noce_process_p (basic_block *** 3064,3069 **** --- 3064,3075 ---- if (!insn_valid_noce_process_p (last_insn, cc)) return false; + + /* Punt on blocks ending with asm goto or jumps with other side-effects, + last_active_insn ignores JUMP_INSNs. */ + if (JUMP_P (BB_END (test_bb)) && !onlyjump_p (BB_END (test_bb))) + return false; + last_set = single_set (last_insn); rtx x = SET_DEST (last_set); *************** find_if_case_1 (basic_block test_bb, edg *** 4897,4910 **** if ((BB_END (then_bb) && JUMP_P (BB_END (then_bb)) && CROSSING_JUMP_P (BB_END (then_bb))) ! || (BB_END (test_bb) ! && JUMP_P (BB_END (test_bb)) && CROSSING_JUMP_P (BB_END (test_bb))) || (BB_END (else_bb) && JUMP_P (BB_END (else_bb)) && CROSSING_JUMP_P (BB_END (else_bb)))) return FALSE; /* THEN has one successor. */ if (!single_succ_p (then_bb)) return FALSE; --- 4903,4919 ---- if ((BB_END (then_bb) && JUMP_P (BB_END (then_bb)) && CROSSING_JUMP_P (BB_END (then_bb))) ! || (JUMP_P (BB_END (test_bb)) && CROSSING_JUMP_P (BB_END (test_bb))) || (BB_END (else_bb) && JUMP_P (BB_END (else_bb)) && CROSSING_JUMP_P (BB_END (else_bb)))) return FALSE; + /* Verify test_bb ends in a conditional jump with no other side-effects. */ + if (!onlyjump_p (BB_END (test_bb))) + return FALSE; + /* THEN has one successor. */ if (!single_succ_p (then_bb)) return FALSE; *************** find_if_case_2 (basic_block test_bb, edg *** 5018,5031 **** if ((BB_END (then_bb) && JUMP_P (BB_END (then_bb)) && CROSSING_JUMP_P (BB_END (then_bb))) ! || (BB_END (test_bb) ! && JUMP_P (BB_END (test_bb)) && CROSSING_JUMP_P (BB_END (test_bb))) || (BB_END (else_bb) && JUMP_P (BB_END (else_bb)) && CROSSING_JUMP_P (BB_END (else_bb)))) return FALSE; /* ELSE has one successor. */ if (!single_succ_p (else_bb)) return FALSE; --- 5027,5043 ---- if ((BB_END (then_bb) && JUMP_P (BB_END (then_bb)) && CROSSING_JUMP_P (BB_END (then_bb))) ! || (JUMP_P (BB_END (test_bb)) && CROSSING_JUMP_P (BB_END (test_bb))) || (BB_END (else_bb) && JUMP_P (BB_END (else_bb)) && CROSSING_JUMP_P (BB_END (else_bb)))) return FALSE; + /* Verify test_bb ends in a conditional jump with no other side-effects. */ + if (!onlyjump_p (BB_END (test_bb))) + return FALSE; + /* ELSE has one successor. */ if (!single_succ_p (else_bb)) return FALSE; diff -Nrcpad gcc-10.3.0/gcc/ipa-cp.c gcc-10.4.0/gcc/ipa-cp.c *** gcc-10.3.0/gcc/ipa-cp.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/ipa-cp.c Tue Jun 28 08:54:28 2022 *************** public: *** 275,291 **** class ipcp_bits_lattice { public: ! bool bottom_p () { return m_lattice_val == IPA_BITS_VARYING; } ! bool top_p () { return m_lattice_val == IPA_BITS_UNDEFINED; } ! bool constant_p () { return m_lattice_val == IPA_BITS_CONSTANT; } bool set_to_bottom (); bool set_to_constant (widest_int, widest_int); ! widest_int get_value () { return m_value; } ! widest_int get_mask () { return m_mask; } bool meet_with (ipcp_bits_lattice& other, unsigned, signop, ! enum tree_code, tree); bool meet_with (widest_int, widest_int, unsigned); --- 275,292 ---- class ipcp_bits_lattice { public: ! bool bottom_p () const { return m_lattice_val == IPA_BITS_VARYING; } ! bool top_p () const { return m_lattice_val == IPA_BITS_UNDEFINED; } ! bool constant_p () const { return m_lattice_val == IPA_BITS_CONSTANT; } bool set_to_bottom (); bool set_to_constant (widest_int, widest_int); + bool known_nonzero_p () const; ! widest_int get_value () const { return m_value; } ! widest_int get_mask () const { return m_mask; } bool meet_with (ipcp_bits_lattice& other, unsigned, signop, ! enum tree_code, tree, bool); bool meet_with (widest_int, widest_int, unsigned); *************** private: *** 299,305 **** value is known to be constant. */ widest_int m_value, m_mask; ! bool meet_with_1 (widest_int, widest_int, unsigned); void get_value_and_mask (tree, widest_int *, widest_int *); }; --- 300,306 ---- value is known to be constant. */ widest_int m_value, m_mask; ! bool meet_with_1 (widest_int, widest_int, unsigned, bool); void get_value_and_mask (tree, widest_int *, widest_int *); }; *************** ipcp_bits_lattice::set_to_constant (wide *** 1015,1020 **** --- 1016,1031 ---- return true; } + /* Return true if any of the known bits are non-zero. */ + + bool + ipcp_bits_lattice::known_nonzero_p () const + { + if (!constant_p ()) + return false; + return wi::ne_p (wi::bit_and (wi::bit_not (m_mask), m_value), 0); + } + /* Convert operand to value, mask form. */ void *************** ipcp_bits_lattice::get_value_and_mask (t *** 1037,1052 **** /* Meet operation, similar to ccp_lattice_meet, we xor values if this->value, value have different values at same bit positions, we want to drop that bit to varying. Return true if mask is changed. ! This function assumes that the lattice value is in CONSTANT state */ bool ipcp_bits_lattice::meet_with_1 (widest_int value, widest_int mask, ! unsigned precision) { gcc_assert (constant_p ()); widest_int old_mask = m_mask; m_mask = (m_mask | mask) | (m_value ^ value); m_value &= ~m_mask; if (wi::sext (m_mask, precision) == -1) --- 1048,1066 ---- /* Meet operation, similar to ccp_lattice_meet, we xor values if this->value, value have different values at same bit positions, we want to drop that bit to varying. Return true if mask is changed. ! This function assumes that the lattice value is in CONSTANT state. If ! DROP_ALL_ONES, mask out any known bits with value one afterwards. */ bool ipcp_bits_lattice::meet_with_1 (widest_int value, widest_int mask, ! unsigned precision, bool drop_all_ones) { gcc_assert (constant_p ()); widest_int old_mask = m_mask; m_mask = (m_mask | mask) | (m_value ^ value); + if (drop_all_ones) + m_mask |= m_value; m_value &= ~m_mask; if (wi::sext (m_mask, precision) == -1) *************** ipcp_bits_lattice::meet_with (widest_int *** 1072,1087 **** return set_to_constant (value, mask); } ! return meet_with_1 (value, mask, precision); } /* Meet bits lattice with the result of bit_value_binop (other, operand) if code is binary operation or bit_value_unop (other) if code is unary op. ! In the case when code is nop_expr, no adjustment is required. */ bool ipcp_bits_lattice::meet_with (ipcp_bits_lattice& other, unsigned precision, ! signop sgn, enum tree_code code, tree operand) { if (other.bottom_p ()) return set_to_bottom (); --- 1086,1103 ---- return set_to_constant (value, mask); } ! return meet_with_1 (value, mask, precision, false); } /* Meet bits lattice with the result of bit_value_binop (other, operand) if code is binary operation or bit_value_unop (other) if code is unary op. ! In the case when code is nop_expr, no adjustment is required. If ! DROP_ALL_ONES, mask out any known bits with value one afterwards. */ bool ipcp_bits_lattice::meet_with (ipcp_bits_lattice& other, unsigned precision, ! signop sgn, enum tree_code code, tree operand, ! bool drop_all_ones) { if (other.bottom_p ()) return set_to_bottom (); *************** ipcp_bits_lattice::meet_with (ipcp_bits_ *** 1120,1131 **** if (top_p ()) { if (wi::sext (adjusted_mask, precision) == -1) return set_to_bottom (); return set_to_constant (adjusted_value, adjusted_mask); } else ! return meet_with_1 (adjusted_value, adjusted_mask, precision); } /* Mark bot aggregate and scalar lattices as containing an unknown variable, --- 1136,1153 ---- if (top_p ()) { + if (drop_all_ones) + { + adjusted_mask |= adjusted_value; + adjusted_value &= ~adjusted_mask; + } if (wi::sext (adjusted_mask, precision) == -1) return set_to_bottom (); return set_to_constant (adjusted_value, adjusted_mask); } else ! return meet_with_1 (adjusted_value, adjusted_mask, precision, ! drop_all_ones); } /* Mark bot aggregate and scalar lattices as containing an unknown variable, *************** ipa_get_jf_ancestor_result (struct ipa_j *** 1362,1367 **** --- 1384,1392 ---- fold_build2 (MEM_REF, TREE_TYPE (TREE_TYPE (input)), input, build_int_cst (ptr_type_node, byte_offset))); } + else if (ipa_get_jf_ancestor_keep_null (jfunc) + && zerop (input)) + return input; else return NULL_TREE; } *************** propagate_bits_across_jump_function (cgr *** 2317,2322 **** --- 2342,2348 ---- tree operand = NULL_TREE; enum tree_code code; unsigned src_idx; + bool keep_null = false; if (jfunc->type == IPA_JF_PASS_THROUGH) { *************** propagate_bits_across_jump_function (cgr *** 2329,2335 **** { code = POINTER_PLUS_EXPR; src_idx = ipa_get_jf_ancestor_formal_id (jfunc); ! unsigned HOST_WIDE_INT offset = ipa_get_jf_ancestor_offset (jfunc) / BITS_PER_UNIT; operand = build_int_cstu (size_type_node, offset); } --- 2355,2363 ---- { code = POINTER_PLUS_EXPR; src_idx = ipa_get_jf_ancestor_formal_id (jfunc); ! unsigned HOST_WIDE_INT offset ! = ipa_get_jf_ancestor_offset (jfunc) / BITS_PER_UNIT; ! keep_null = (ipa_get_jf_ancestor_keep_null (jfunc) || !offset); operand = build_int_cstu (size_type_node, offset); } *************** propagate_bits_across_jump_function (cgr *** 2346,2363 **** result of x & 0xff == 0xff, which gets computed during ccp1 pass and we store it in jump function during analysis stage. */ ! if (src_lats->bits_lattice.bottom_p () ! && jfunc->bits) ! return dest_lattice->meet_with (jfunc->bits->value, jfunc->bits->mask, ! precision); ! else ! return dest_lattice->meet_with (src_lats->bits_lattice, precision, sgn, ! code, operand); } ! else if (jfunc->type == IPA_JF_ANCESTOR) ! return dest_lattice->set_to_bottom (); ! else if (jfunc->bits) return dest_lattice->meet_with (jfunc->bits->value, jfunc->bits->mask, precision); else --- 2374,2390 ---- result of x & 0xff == 0xff, which gets computed during ccp1 pass and we store it in jump function during analysis stage. */ ! if (!src_lats->bits_lattice.bottom_p ()) ! { ! bool drop_all_ones ! = keep_null && !src_lats->bits_lattice.known_nonzero_p (); ! ! return dest_lattice->meet_with (src_lats->bits_lattice, precision, ! sgn, code, operand, drop_all_ones); ! } } ! if (jfunc->bits) return dest_lattice->meet_with (jfunc->bits->value, jfunc->bits->mask, precision); else diff -Nrcpad gcc-10.3.0/gcc/ipa-fnsummary.c gcc-10.4.0/gcc/ipa-fnsummary.c *** gcc-10.3.0/gcc/ipa-fnsummary.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/ipa-fnsummary.c Tue Jun 28 08:54:28 2022 *************** inline_read_section (struct lto_file_dec *** 4239,4251 **** bp = streamer_read_bitpack (&ib); if (info) { ! info->inlinable = bp_unpack_value (&bp, 1); ! info->fp_expressions = bp_unpack_value (&bp, 1); } else { ! bp_unpack_value (&bp, 1); ! bp_unpack_value (&bp, 1); } count2 = streamer_read_uhwi (&ib); --- 4239,4258 ---- bp = streamer_read_bitpack (&ib); if (info) { ! info->inlinable = bp_unpack_value (&bp, 1); ! /* On the side of streaming out, there is still one bit ! streamed out between inlinable and fp_expressions bits, ! which was used for cilk+ before but now always false. ! To remove the bit packing need to bump LTO minor version, ! so unpack a dummy bit here to keep consistent instead. */ ! bp_unpack_value (&bp, 1); ! info->fp_expressions = bp_unpack_value (&bp, 1); } else { ! bp_unpack_value (&bp, 1); ! bp_unpack_value (&bp, 1); ! bp_unpack_value (&bp, 1); } count2 = streamer_read_uhwi (&ib); diff -Nrcpad gcc-10.3.0/gcc/ipa-param-manipulation.c gcc-10.4.0/gcc/ipa-param-manipulation.c *** gcc-10.3.0/gcc/ipa-param-manipulation.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/ipa-param-manipulation.c Tue Jun 28 08:54:28 2022 *************** ipa_dump_adjusted_parameters (FILE *f, *** 145,151 **** fprintf (f, " prefix: %s", ipa_param_prefixes[apm->param_prefix_index]); if (apm->reverse) ! fprintf (f, ", reverse-sso"); break; } fprintf (f, "\n"); --- 145,151 ---- fprintf (f, " prefix: %s", ipa_param_prefixes[apm->param_prefix_index]); if (apm->reverse) ! fprintf (f, ", reverse"); break; } fprintf (f, "\n"); *************** ipa_param_body_adjustments::modify_call_ *** 1676,1682 **** if (tree lhs = gimple_call_lhs (stmt)) { modify_expression (&lhs, false); ! gimple_call_set_lhs (new_stmt, lhs); } *stmt_p = new_stmt; return true; --- 1676,1684 ---- if (tree lhs = gimple_call_lhs (stmt)) { modify_expression (&lhs, false); ! /* Avoid adjusting SSA_NAME_DEF_STMT of a SSA lhs, SSA names ! have not yet been remapped. */ ! *gimple_call_lhs_ptr (new_stmt) = lhs; } *stmt_p = new_stmt; return true; diff -Nrcpad gcc-10.3.0/gcc/ipa-prop.c gcc-10.4.0/gcc/ipa-prop.c *** gcc-10.3.0/gcc/ipa-prop.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/ipa-prop.c Tue Jun 28 08:54:28 2022 *************** ipa_print_node_jump_functions_for_edge ( *** 353,358 **** --- 353,360 ---- jump_func->value.ancestor.offset); if (jump_func->value.ancestor.agg_preserved) fprintf (f, ", agg_preserved"); + if (jump_func->value.ancestor.keep_null) + fprintf (f, ", keep_null"); fprintf (f, "\n"); } *************** ipa_set_jf_arith_pass_through (struct ip *** 595,606 **** static void ipa_set_ancestor_jf (struct ipa_jump_func *jfunc, HOST_WIDE_INT offset, ! int formal_id, bool agg_preserved) { jfunc->type = IPA_JF_ANCESTOR; jfunc->value.ancestor.formal_id = formal_id; jfunc->value.ancestor.offset = offset; jfunc->value.ancestor.agg_preserved = agg_preserved; } /* Get IPA BB information about the given BB. FBI is the context of analyzis --- 597,609 ---- static void ipa_set_ancestor_jf (struct ipa_jump_func *jfunc, HOST_WIDE_INT offset, ! int formal_id, bool agg_preserved, bool keep_null) { jfunc->type = IPA_JF_ANCESTOR; jfunc->value.ancestor.formal_id = formal_id; jfunc->value.ancestor.offset = offset; jfunc->value.ancestor.agg_preserved = agg_preserved; + jfunc->value.ancestor.keep_null = keep_null; } /* Get IPA BB information about the given BB. FBI is the context of analyzis *************** ipa_load_from_parm_agg (struct ipa_func_ *** 1097,1102 **** --- 1100,1109 ---- if (!base) return false; + /* We can not propagate across volatile loads. */ + if (TREE_THIS_VOLATILE (op)) + return false; + if (DECL_P (base)) { int index = ipa_get_param_decl_index_1 (descriptors, base); *************** compute_complex_assign_jump_func (struct *** 1361,1367 **** index = ipa_get_param_decl_index (info, SSA_NAME_VAR (ssa)); if (index >= 0 && param_type && POINTER_TYPE_P (param_type)) ipa_set_ancestor_jf (jfunc, offset, index, ! parm_ref_data_pass_through_p (fbi, index, call, ssa)); } /* Extract the base, offset and MEM_REF expression from a statement ASSIGN if --- 1368,1375 ---- index = ipa_get_param_decl_index (info, SSA_NAME_VAR (ssa)); if (index >= 0 && param_type && POINTER_TYPE_P (param_type)) ipa_set_ancestor_jf (jfunc, offset, index, ! parm_ref_data_pass_through_p (fbi, index, call, ssa), ! false); } /* Extract the base, offset and MEM_REF expression from a statement ASSIGN if *************** compute_complex_ancestor_jump_func (stru *** 1487,1493 **** } ipa_set_ancestor_jf (jfunc, offset, index, ! parm_ref_data_pass_through_p (fbi, index, call, parm)); } /* Inspect the given TYPE and return true iff it has the same structure (the --- 1495,1502 ---- } ipa_set_ancestor_jf (jfunc, offset, index, ! parm_ref_data_pass_through_p (fbi, index, call, parm), ! true); } /* Inspect the given TYPE and return true iff it has the same structure (the *************** update_jump_functions_after_inlining (st *** 3065,3070 **** --- 3074,3080 ---- dst->value.ancestor.offset += src->value.ancestor.offset; dst->value.ancestor.agg_preserved &= src->value.ancestor.agg_preserved; + dst->value.ancestor.keep_null |= src->value.ancestor.keep_null; } else ipa_set_jf_unknown (dst); *************** update_jump_functions_after_inlining (st *** 3142,3148 **** ipa_set_ancestor_jf (dst, ipa_get_jf_ancestor_offset (src), ipa_get_jf_ancestor_formal_id (src), ! agg_p); break; } default: --- 3152,3159 ---- ipa_set_ancestor_jf (dst, ipa_get_jf_ancestor_offset (src), ipa_get_jf_ancestor_formal_id (src), ! agg_p, ! ipa_get_jf_ancestor_keep_null (src)); break; } default: *************** ipa_write_jump_function (struct output_b *** 4535,4540 **** --- 4546,4552 ---- streamer_write_uhwi (ob, jump_func->value.ancestor.formal_id); bp = bitpack_create (ob->main_stream); bp_pack_value (&bp, jump_func->value.ancestor.agg_preserved, 1); + bp_pack_value (&bp, jump_func->value.ancestor.keep_null, 1); streamer_write_bitpack (&bp); break; default: *************** ipa_read_jump_function (class lto_input_ *** 4660,4666 **** int formal_id = streamer_read_uhwi (ib); struct bitpack_d bp = streamer_read_bitpack (ib); bool agg_preserved = bp_unpack_value (&bp, 1); ! ipa_set_ancestor_jf (jump_func, offset, formal_id, agg_preserved); break; } default: --- 4672,4680 ---- int formal_id = streamer_read_uhwi (ib); struct bitpack_d bp = streamer_read_bitpack (ib); bool agg_preserved = bp_unpack_value (&bp, 1); ! bool keep_null = bp_unpack_value (&bp, 1); ! ipa_set_ancestor_jf (jump_func, offset, formal_id, agg_preserved, ! keep_null); break; } default: diff -Nrcpad gcc-10.3.0/gcc/ipa-prop.h gcc-10.4.0/gcc/ipa-prop.h *** gcc-10.3.0/gcc/ipa-prop.h Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/ipa-prop.h Tue Jun 28 08:54:28 2022 *************** struct GTY(()) ipa_ancestor_jf_data *** 138,143 **** --- 138,145 ---- int formal_id; /* Flag with the same meaning like agg_preserve in ipa_pass_through_data. */ unsigned agg_preserved : 1; + /* When set, the operation should not have any effect on NULL pointers. */ + unsigned keep_null : 1; }; /* A jump function for an aggregate part at a given offset, which describes how *************** ipa_get_jf_ancestor_type_preserved (stru *** 433,438 **** --- 435,451 ---- return jfunc->value.ancestor.agg_preserved; } + /* Return if jfunc represents an operation whether we first check the formal + parameter for non-NULLness unless it does not matter because the offset is + zero anyway. */ + + static inline bool + ipa_get_jf_ancestor_keep_null (struct ipa_jump_func *jfunc) + { + gcc_checking_assert (jfunc->type == IPA_JF_ANCESTOR); + return jfunc->value.ancestor.keep_null; + } + /* Summary describing a single formal parameter. */ struct GTY(()) ipa_param_descriptor diff -Nrcpad gcc-10.3.0/gcc/ipa-pure-const.c gcc-10.4.0/gcc/ipa-pure-const.c *** gcc-10.3.0/gcc/ipa-pure-const.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/ipa-pure-const.c Tue Jun 28 08:54:28 2022 *************** propagate_pure_const (void) *** 1665,1673 **** if (w_l->state_previously_known != IPA_NEITHER && this_state > w_l->state_previously_known) { - this_state = w_l->state_previously_known; if (this_state == IPA_NEITHER) ! this_looping = w_l->looping_previously_known; } if (!this_looping && self_recursive_p (w)) this_looping = true; --- 1665,1673 ---- if (w_l->state_previously_known != IPA_NEITHER && this_state > w_l->state_previously_known) { if (this_state == IPA_NEITHER) ! this_looping = w_l->looping_previously_known; ! this_state = w_l->state_previously_known; } if (!this_looping && self_recursive_p (w)) this_looping = true; diff -Nrcpad gcc-10.3.0/gcc/ipa-sra.c gcc-10.4.0/gcc/ipa-sra.c *** gcc-10.3.0/gcc/ipa-sra.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/ipa-sra.c Tue Jun 28 08:54:28 2022 *************** *** 1,6 **** /* Interprocedural scalar replacement of aggregates ! Copyright (C) 2008-2020 Free Software Foundation, Inc. ! Contributed by Martin Jambor This file is part of GCC. --- 1,5 ---- /* Interprocedural scalar replacement of aggregates ! Copyright (C) 2019-2022 Free Software Foundation, Inc. Contributed by Martin Jambor This file is part of GCC. *************** along with GCC; see the file COPYING3. *** 21,27 **** /* IPA-SRA is an interprocedural pass that removes unused function return values (turning functions returning a value which is never used into void ! functions), removes unused function parameters. It can also replace an aggregate parameter by a set of other parameters representing part of the original, turning those passed by reference into new ones which pass the value directly. --- 20,26 ---- /* IPA-SRA is an interprocedural pass that removes unused function return values (turning functions returning a value which is never used into void ! functions) and removes unused function parameters. It can also replace an aggregate parameter by a set of other parameters representing part of the original, turning those passed by reference into new ones which pass the value directly. *************** along with GCC; see the file COPYING3. *** 57,63 **** ipa-param-manipulation.h for more details. */ - #include "config.h" #include "system.h" #include "coretypes.h" --- 56,61 ---- *************** along with GCC; see the file COPYING3. *** 89,95 **** #define ISRA_ARG_SIZE_LIMIT_BITS 16 #define ISRA_ARG_SIZE_LIMIT (1 << ISRA_ARG_SIZE_LIMIT_BITS) /* How many parameters can feed into a call actual argument and still be ! tracked. */ #define IPA_SRA_MAX_PARAM_FLOW_LEN 7 /* Structure describing accesses to a specific portion of an aggregate --- 87,93 ---- #define ISRA_ARG_SIZE_LIMIT_BITS 16 #define ISRA_ARG_SIZE_LIMIT (1 << ISRA_ARG_SIZE_LIMIT_BITS) /* How many parameters can feed into a call actual argument and still be ! tracked. */ #define IPA_SRA_MAX_PARAM_FLOW_LEN 7 /* Structure describing accesses to a specific portion of an aggregate *************** struct GTY(()) param_access *** 118,124 **** transformed function - initially not set for portions of formal parameters that are only used as actual function arguments passed to callees. */ unsigned certain : 1; ! /* Set if the access has a reversed scalar storage order. */ unsigned reverse : 1; }; --- 116,122 ---- transformed function - initially not set for portions of formal parameters that are only used as actual function arguments passed to callees. */ unsigned certain : 1; ! /* Set if the access has reverse scalar storage order. */ unsigned reverse : 1; }; *************** struct gensum_param_access *** 152,158 **** arguments to a function call that can be tracked. */ bool nonarg; ! /* Set if the access has a reversed scalar storage order. */ bool reverse; }; --- 150,156 ---- arguments to a function call that can be tracked. */ bool nonarg; ! /* Set if the access has reverse scalar storage order. */ bool reverse; }; *************** struct gensum_param_desc *** 215,222 **** }; /* Properly deallocate accesses of DESC. TODO: Since this data structure is ! not in GC memory, this is not necessary and we can consider removing the ! function. */ static void free_param_decl_accesses (isra_param_desc *desc) --- 213,220 ---- }; /* Properly deallocate accesses of DESC. TODO: Since this data structure is ! allocated in GC memory, this is not necessary and we can consider removing ! the function. */ static void free_param_decl_accesses (isra_param_desc *desc) *************** public: *** 271,279 **** unsigned m_queued : 1; }; ! /* Clean up and deallocate isra_func_summary points to. TODO: Since this data ! structure is not in GC memory, this is not necessary and we can consider ! removing the destructor. */ isra_func_summary::~isra_func_summary () { --- 269,277 ---- unsigned m_queued : 1; }; ! /* Deallocate the memory pointed to by isra_func_summary. TODO: Since this ! data structure is allocated in GC memory, this is not necessary and we can ! consider removing the destructor. */ isra_func_summary::~isra_func_summary () { *************** isra_func_summary::~isra_func_summary () *** 283,289 **** vec_free (m_parameters); } - /* Mark the function as not a candidate for any IPA-SRA transformation. Return true if it was a candidate until now. */ --- 281,286 ---- *************** isra_func_summary::zap () *** 293,298 **** --- 290,296 ---- bool ret = m_candidate; m_candidate = false; + /* TODO: see the destructor above. */ unsigned len = vec_safe_length (m_parameters); for (unsigned i = 0; i < len; ++i) free_param_decl_accesses (&(*m_parameters)[i]); *************** isra_func_summary::zap () *** 302,308 **** } /* Structure to describe which formal parameters feed into a particular actual ! arguments. */ struct isra_param_flow { --- 300,306 ---- } /* Structure to describe which formal parameters feed into a particular actual ! argument. */ struct isra_param_flow { *************** class isra_call_summary *** 340,346 **** public: isra_call_summary () : m_arg_flow (), m_return_ignored (false), m_return_returned (false), ! m_bit_aligned_arg (false) {} void init_inputs (unsigned arg_count); --- 338,344 ---- public: isra_call_summary () : m_arg_flow (), m_return_ignored (false), m_return_returned (false), ! m_bit_aligned_arg (false), m_before_any_store (false) {} void init_inputs (unsigned arg_count); *************** public: *** 359,364 **** --- 357,366 ---- /* Set when any of the call arguments are not byte-aligned. */ unsigned m_bit_aligned_arg : 1; + + /* Set to true if the call happend before any (other) store to memory in the + caller. */ + unsigned m_before_any_store : 1; }; /* Class to manage function summaries. */ *************** ipa_sra_function_summaries::duplicate (c *** 417,422 **** --- 419,425 ---- to->unit_offset = from->unit_offset; to->unit_size = from->unit_size; to->certain = from->certain; + to->reverse = from->reverse; d->accesses->quick_push (to); } } *************** isra_call_summary::dump (FILE *f) *** 472,477 **** --- 475,482 ---- fprintf (f, " return value ignored\n"); if (m_return_returned) fprintf (f, " return value used only to compute caller return value\n"); + if (m_before_any_store) + fprintf (f, " happens before any store to memory\n"); for (unsigned i = 0; i < m_arg_flow.length (); i++) { fprintf (f, " Parameter %u:\n", i); *************** ipa_sra_call_summaries::duplicate (cgrap *** 516,521 **** --- 521,527 ---- new_sum->m_return_ignored = old_sum->m_return_ignored; new_sum->m_return_returned = old_sum->m_return_returned; new_sum->m_bit_aligned_arg = old_sum->m_bit_aligned_arg; + new_sum->m_before_any_store = old_sum->m_before_any_store; } *************** namespace { *** 525,531 **** hash_map *decl2desc; ! /* Countdown of allowed Alias analysis steps during summary building. */ int aa_walking_limit; --- 531,537 ---- hash_map *decl2desc; ! /* Countdown of allowed Alias Analysis steps during summary building. */ int aa_walking_limit; *************** dump_isra_access (FILE *f, param_access *** 645,651 **** if (access->certain) fprintf (f, ", certain"); else ! fprintf (f, ", not-certain"); if (access->reverse) fprintf (f, ", reverse"); fprintf (f, "\n"); --- 651,657 ---- if (access->certain) fprintf (f, ", certain"); else ! fprintf (f, ", not certain"); if (access->reverse) fprintf (f, ", reverse"); fprintf (f, "\n"); *************** isra_track_scalar_value_uses (function * *** 907,914 **** This function is similar to ptr_parm_has_nonarg_uses but its results are meant for unused parameter removal, as opposed to splitting of parameters ! passed by reference or converting them to passed by value. ! */ static bool isra_track_scalar_param_local_uses (function *fun, cgraph_node *node, tree parm, --- 913,919 ---- This function is similar to ptr_parm_has_nonarg_uses but its results are meant for unused parameter removal, as opposed to splitting of parameters ! passed by reference or converting them to passed by value. */ static bool isra_track_scalar_param_local_uses (function *fun, cgraph_node *node, tree parm, *************** isra_track_scalar_param_local_uses (func *** 948,955 **** This function is similar to isra_track_scalar_param_local_uses but its results are meant for splitting of parameters passed by reference or turning them into bits passed by value, as opposed to generic unused parameter ! removal. ! */ static bool ptr_parm_has_nonarg_uses (cgraph_node *node, function *fun, tree parm, --- 953,959 ---- This function is similar to isra_track_scalar_param_local_uses but its results are meant for splitting of parameters passed by reference or turning them into bits passed by value, as opposed to generic unused parameter ! removal. */ static bool ptr_parm_has_nonarg_uses (cgraph_node *node, function *fun, tree parm, *************** ptr_parm_has_nonarg_uses (cgraph_node *n *** 979,993 **** if (gimple_assign_single_p (stmt)) { tree rhs = gimple_assign_rhs1 (stmt); ! while (handled_component_p (rhs)) ! rhs = TREE_OPERAND (rhs, 0); ! if (TREE_CODE (rhs) == MEM_REF ! && TREE_OPERAND (rhs, 0) == name ! && integer_zerop (TREE_OPERAND (rhs, 1)) ! && types_compatible_p (TREE_TYPE (rhs), ! TREE_TYPE (TREE_TYPE (name))) ! && !TREE_THIS_VOLATILE (rhs)) ! uses_ok++; } else if (is_gimple_call (stmt)) { --- 983,999 ---- if (gimple_assign_single_p (stmt)) { tree rhs = gimple_assign_rhs1 (stmt); ! if (!TREE_THIS_VOLATILE (rhs)) ! { ! while (handled_component_p (rhs)) ! rhs = TREE_OPERAND (rhs, 0); ! if (TREE_CODE (rhs) == MEM_REF ! && TREE_OPERAND (rhs, 0) == name ! && integer_zerop (TREE_OPERAND (rhs, 1)) ! && types_compatible_p (TREE_TYPE (rhs), ! TREE_TYPE (TREE_TYPE (name)))) ! uses_ok++; ! } } else if (is_gimple_call (stmt)) { *************** ptr_parm_has_nonarg_uses (cgraph_node *n *** 1021,1035 **** continue; } ! while (handled_component_p (arg)) ! arg = TREE_OPERAND (arg, 0); ! if (TREE_CODE (arg) == MEM_REF ! && TREE_OPERAND (arg, 0) == name ! && integer_zerop (TREE_OPERAND (arg, 1)) ! && types_compatible_p (TREE_TYPE (arg), ! TREE_TYPE (TREE_TYPE (name))) ! && !TREE_THIS_VOLATILE (arg)) ! uses_ok++; } } --- 1027,1043 ---- continue; } ! if (!TREE_THIS_VOLATILE (arg)) ! { ! while (handled_component_p (arg)) ! arg = TREE_OPERAND (arg, 0); ! if (TREE_CODE (arg) == MEM_REF ! && TREE_OPERAND (arg, 0) == name ! && integer_zerop (TREE_OPERAND (arg, 1)) ! && types_compatible_p (TREE_TYPE (arg), ! TREE_TYPE (TREE_TYPE (name)))) ! uses_ok++; ! } } } *************** record_nonregister_call_use (gensum_para *** 1626,1632 **** } /* Callback of walk_aliased_vdefs, just mark that there was a possible ! modification. */ static bool mark_maybe_modified (ao_ref *, tree, void *data) --- 1634,1640 ---- } /* Callback of walk_aliased_vdefs, just mark that there was a possible ! modification. */ static bool mark_maybe_modified (ao_ref *, tree, void *data) *************** scan_function (cgraph_node *node, struct *** 1901,1907 **** if (lhs) scan_expr_access (lhs, stmt, ISRA_CTX_STORE, bb); int flags = gimple_call_flags (stmt); ! if ((flags & (ECF_CONST | ECF_PURE)) == 0) bitmap_set_bit (final_bbs, bb->index); } break; --- 1909,1916 ---- if (lhs) scan_expr_access (lhs, stmt, ISRA_CTX_STORE, bb); int flags = gimple_call_flags (stmt); ! if (((flags & (ECF_CONST | ECF_PURE)) == 0) ! || (flags & ECF_LOOPING_CONST_OR_PURE)) bitmap_set_bit (final_bbs, bb->index); } break; *************** static bool *** 2170,2176 **** check_gensum_access (tree parm, gensum_param_desc *desc, gensum_param_access *access, HOST_WIDE_INT *nonarg_acc_size, bool *only_calls, ! int entry_bb_index) { if (access->nonarg) { --- 2179,2185 ---- check_gensum_access (tree parm, gensum_param_desc *desc, gensum_param_access *access, HOST_WIDE_INT *nonarg_acc_size, bool *only_calls, ! int entry_bb_index) { if (access->nonarg) { *************** process_scan_results (cgraph_node *node, *** 2338,2345 **** offset in this function at IPA level. TODO: Measure the overhead and the effect of just being pessimistic. ! Maybe this is only -O3 material? ! */ bool pdoms_calculated = false; if (check_pass_throughs) for (cgraph_edge *cs = node->callees; cs; cs = cs->next_callee) --- 2347,2354 ---- offset in this function at IPA level. TODO: Measure the overhead and the effect of just being pessimistic. ! Maybe this is only -O3 material? */ ! bool pdoms_calculated = false; if (check_pass_throughs) for (cgraph_edge *cs = node->callees; cs; cs = cs->next_callee) *************** process_scan_results (cgraph_node *node, *** 2355,2360 **** --- 2364,2370 ---- unsigned count = gimple_call_num_args (call_stmt); isra_call_summary *csum = call_sums->get_create (cs); csum->init_inputs (count); + csum->m_before_any_store = uses_memory_as_obtained; for (unsigned argidx = 0; argidx < count; argidx++) { if (!csum->m_arg_flow[argidx].pointer_pass_through) *************** isra_write_edge_summary (output_block *o *** 2601,2606 **** --- 2611,2617 ---- bp_pack_value (&bp, csum->m_return_ignored, 1); bp_pack_value (&bp, csum->m_return_returned, 1); bp_pack_value (&bp, csum->m_bit_aligned_arg, 1); + bp_pack_value (&bp, csum->m_before_any_store, 1); streamer_write_bitpack (&bp); } *************** isra_write_node_summary (output_block *o *** 2631,2636 **** --- 2642,2648 ---- streamer_write_uhwi (ob, acc->unit_size); bitpack_d bp = bitpack_create (ob->main_stream); bp_pack_value (&bp, acc->certain, 1); + bp_pack_value (&bp, acc->reverse, 1); streamer_write_bitpack (&bp); } streamer_write_uhwi (ob, desc->param_size_limit); *************** isra_read_edge_summary (struct lto_input *** 2719,2724 **** --- 2731,2737 ---- csum->m_return_ignored = bp_unpack_value (&bp, 1); csum->m_return_returned = bp_unpack_value (&bp, 1); csum->m_bit_aligned_arg = bp_unpack_value (&bp, 1); + csum->m_before_any_store = bp_unpack_value (&bp, 1); } /* Read intraprocedural analysis information about NODE and all of its outgoing *************** isra_read_node_info (struct lto_input_bl *** 2748,2753 **** --- 2761,2767 ---- acc->unit_size = streamer_read_uhwi (ib); bitpack_d bp = streamer_read_bitpack (ib); acc->certain = bp_unpack_value (&bp, 1); + acc->reverse = bp_unpack_value (&bp, 1); vec_safe_push (desc->accesses, acc); } desc->param_size_limit = streamer_read_uhwi (ib); *************** isra_mark_caller_param_used (isra_func_s *** 3207,3213 **** /* Propagate information that any parameter is not used only locally within a SCC across CS to the caller, which must be in the same SCC as the ! callee. Push any callers that need to be re-processed to STACK. */ static void propagate_used_across_scc_edge (cgraph_edge *cs, vec *stack) --- 3221,3227 ---- /* Propagate information that any parameter is not used only locally within a SCC across CS to the caller, which must be in the same SCC as the ! callee. Push any callers that need to be re-processed to STACK. */ static void propagate_used_across_scc_edge (cgraph_edge *cs, vec *stack) *************** propagate_used_across_scc_edge (cgraph_e *** 3245,3251 **** /* Propagate information that any parameter is not used only locally within a SCC (i.e. is used also elsewhere) to all callers of NODE that are in the ! same SCC. Push any callers that need to be re-processed to STACK. */ static bool propagate_used_to_scc_callers (cgraph_node *node, void *data) --- 3259,3265 ---- /* Propagate information that any parameter is not used only locally within a SCC (i.e. is used also elsewhere) to all callers of NODE that are in the ! same SCC. Push any callers that need to be re-processed to STACK. */ static bool propagate_used_to_scc_callers (cgraph_node *node, void *data) *************** pull_accesses_from_callee (cgraph_node * *** 3338,3344 **** && pacc->unit_size == argacc->unit_size) { if (argacc->alias_ptr_type != pacc->alias_ptr_type ! || !types_compatible_p (argacc->type, pacc->type)) return "propagated access types would not match existing ones"; exact_match = true; --- 3352,3359 ---- && pacc->unit_size == argacc->unit_size) { if (argacc->alias_ptr_type != pacc->alias_ptr_type ! || !types_compatible_p (argacc->type, pacc->type) ! || argacc->reverse != pacc->reverse) return "propagated access types would not match existing ones"; exact_match = true; *************** pull_accesses_from_callee (cgraph_node * *** 3395,3400 **** --- 3410,3416 ---- copy->type = argacc->type; copy->alias_ptr_type = argacc->alias_ptr_type; copy->certain = true; + copy->reverse = argacc->reverse; vec_safe_push (param_desc->accesses, copy); } else if (prop_kinds[j] == ACC_PROP_CERTAIN) *************** param_splitting_across_edge (cgraph_edge *** 3475,3481 **** } else if (!ipf->safe_to_import_accesses) { ! if (!all_callee_accesses_present_p (param_desc, arg_desc)) { if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, " %u->%u: cannot import accesses.\n", --- 3491,3498 ---- } else if (!ipf->safe_to_import_accesses) { ! if (!csum->m_before_any_store ! || !all_callee_accesses_present_p (param_desc, arg_desc)) { if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, " %u->%u: cannot import accesses.\n", *************** retval_used_p (cgraph_node *node, void * *** 3655,3661 **** PREV_ADJUSTMENT. If the parent clone is the original function, PREV_ADJUSTMENT is NULL and PREV_CLONE_INDEX is equal to BASE_INDEX. */ - static void push_param_adjustments_for_index (isra_func_summary *ifs, unsigned base_index, unsigned prev_clone_index, --- 3672,3677 ---- diff -Nrcpad gcc-10.3.0/gcc/ipa.c gcc-10.4.0/gcc/ipa.c *** gcc-10.3.0/gcc/ipa.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/ipa.c Tue Jun 28 08:54:28 2022 *************** ipa_discover_variable_flags (void) *** 834,840 **** FINAL specify whether the externally visible name for collect2 should be produced. */ ! static void cgraph_build_static_cdtor_1 (char which, tree body, int priority, bool final, tree optimization, tree target) --- 834,840 ---- FINAL specify whether the externally visible name for collect2 should be produced. */ ! static tree cgraph_build_static_cdtor_1 (char which, tree body, int priority, bool final, tree optimization, tree target) *************** cgraph_build_static_cdtor_1 (char which, *** 913,918 **** --- 913,919 ---- set_cfun (NULL); current_function_decl = NULL; + return decl; } /* Generate and emit a static constructor or destructor. WHICH must *************** build_cdtor (bool ctor_p, const vec &dtors, vec *ctors) + { + size_t i,j; + size_t len = dtors.length (); + + location_t sav_loc = input_location; + input_location = UNKNOWN_LOCATION; + + tree atexit_fndecl = build_cxa_atexit_decl (); + tree dso_handle_decl = build_dso_handle_decl (); + + /* We want &__dso_handle. */ + tree dso_ptr = build1_loc (UNKNOWN_LOCATION, ADDR_EXPR, + ptr_type_node, dso_handle_decl); + + i = 0; + while (i < len) + { + priority_type priority = 0; + tree body = NULL_TREE; + j = i; + do + { + priority_type p; + tree fn = dtors[j]; + p = DECL_FINI_PRIORITY (fn); + if (j == i) + priority = p; + else if (p != priority) + break; + j++; + } + while (j < len); + + /* Find the next batch of destructors with the same initialization + priority. */ + for (;i < j; i++) + { + tree fn = dtors[i]; + DECL_STATIC_DESTRUCTOR (fn) = 0; + tree dtor_ptr = build1_loc (UNKNOWN_LOCATION, ADDR_EXPR, + ptr_type_node, fn); + tree call_cxa_atexit + = build_call_expr_loc (UNKNOWN_LOCATION, atexit_fndecl, 3, + dtor_ptr, null_pointer_node, dso_ptr); + TREE_SIDE_EFFECTS (call_cxa_atexit) = 1; + append_to_statement_list (call_cxa_atexit, &body); + } + + gcc_assert (body != NULL_TREE); + /* Generate a function to register the DTORs at this priority. */ + tree new_ctor + = cgraph_build_static_cdtor_1 ('I', body, priority, true, + DECL_FUNCTION_SPECIFIC_OPTIMIZATION (dtors[0]), + DECL_FUNCTION_SPECIFIC_TARGET (dtors[0])); + /* Add this to the list of ctors. */ + ctors->safe_push (new_ctor); + } + input_location = sav_loc; + } + /* Comparison function for qsort. P1 and P2 are actually of type "tree *" and point to static constructors. DECL_INIT_PRIORITY is used to determine the sort order. */ *************** compare_dtor (const void *p1, const void *** 1068,1074 **** else if (priority1 > priority2) return 1; else ! /* Ensure a stable sort. */ return DECL_UID (f1) - DECL_UID (f2); } --- 1187,1232 ---- else if (priority1 > priority2) return 1; else ! /* Ensure a stable sort - into TU order. */ ! return DECL_UID (f1) - DECL_UID (f2); ! } ! ! /* Comparison function for qsort. P1 and P2 are of type "tree *" and point to ! a pair of static constructors or destructors. We first sort on the basis of ! priority and then into TU order (on the strict assumption that DECL_UIDs are ! ordered in the same way as the original functions). ???: this seems quite ! fragile. */ ! ! static int ! compare_cdtor_tu_order (const void *p1, const void *p2) ! { ! tree f1; ! tree f2; ! int priority1; ! int priority2; ! ! f1 = *(const tree *)p1; ! f2 = *(const tree *)p2; ! /* We process the DTORs first, and then remove their flag, so this order ! allows for functions that are declared as both CTOR and DTOR. */ ! if (DECL_STATIC_DESTRUCTOR (f1)) ! { ! gcc_checking_assert (DECL_STATIC_DESTRUCTOR (f2)); ! priority1 = DECL_FINI_PRIORITY (f1); ! priority2 = DECL_FINI_PRIORITY (f2); ! } ! else ! { ! priority1 = DECL_INIT_PRIORITY (f1); ! priority2 = DECL_INIT_PRIORITY (f2); ! } ! ! if (priority1 < priority2) ! return -1; ! else if (priority1 > priority2) ! return 1; ! else ! /* For equal priority, sort into the order of definition in the TU. */ return DECL_UID (f1) - DECL_UID (f2); } *************** build_cdtor_fns (vec *ctors, vec *ctors, vec *dtors) + { + if (!dtors->is_empty ()) + { + gcc_assert (targetm.dtors_from_cxa_atexit); + dtors->qsort (compare_cdtor_tu_order); + build_cxa_dtor_registrations (*dtors, ctors); + } + + if (!ctors->is_empty ()) + { + gcc_assert (targetm.dtors_from_cxa_atexit); + ctors->qsort (compare_cdtor_tu_order); + build_cdtor (/*ctor_p=*/true, *ctors); + } + } + /* Look for constructors and destructors and produce function calling them. This is needed for targets not supporting ctors or dtors, but we perform the transformation also at linktime to merge possibly numerous *************** ipa_cdtor_merge (void) *** 1112,1118 **** if (DECL_STATIC_CONSTRUCTOR (node->decl) || DECL_STATIC_DESTRUCTOR (node->decl)) record_cdtor_fn (node, &ctors, &dtors); ! build_cdtor_fns (&ctors, &dtors); return 0; } --- 1301,1310 ---- if (DECL_STATIC_CONSTRUCTOR (node->decl) || DECL_STATIC_DESTRUCTOR (node->decl)) record_cdtor_fn (node, &ctors, &dtors); ! if (targetm.dtors_from_cxa_atexit) ! build_cxa_atexit_fns (&ctors, &dtors); ! else ! build_cdtor_fns (&ctors, &dtors); return 0; } *************** pass_ipa_cdtor_merge::gate (function *) *** 1159,1165 **** /* Perform the pass when we have no ctors/dtors support or at LTO time to merge multiple constructors into single function. */ ! return !targetm.have_ctors_dtors || in_lto_p; } } // anon namespace --- 1351,1357 ---- /* Perform the pass when we have no ctors/dtors support or at LTO time to merge multiple constructors into single function. */ ! return !targetm.have_ctors_dtors || in_lto_p || targetm.dtors_from_cxa_atexit; } } // anon namespace diff -Nrcpad gcc-10.3.0/gcc/jit/ChangeLog gcc-10.4.0/gcc/jit/ChangeLog *** gcc-10.3.0/gcc/jit/ChangeLog Thu Apr 8 11:56:48 2021 --- gcc-10.4.0/gcc/jit/ChangeLog Tue Jun 28 08:54:28 2022 *************** *** 1,3 **** --- 1,32 ---- + 2022-06-28 Release Manager + + * GCC 10.4.0 released. + + 2022-06-09 Iain Sandoe + + Backported from master: + 2021-08-19 Iain Sandoe + + * docs/examples/tut04-toyvm/toyvm.c: Include jit-dejagnu.h. + * docs/examples/tut04-toyvm/toyvm.cc: Likewise. + * jit-dejagnu.h: New file, imported from dejagnu-1.6.2 and + patched for this application. + + 2022-06-09 Iain Sandoe + + Backported from master: + 2021-08-18 Iain Sandoe + + PR jit/100613 + * Make-lang.in: Provide clauses for Darwin hosts. + + 2021-11-24 Martin Liska + + Backported from master: + 2021-11-24 Martin Liska + + * jit-playback.c (function): Initialize m_blocks vector. + 2021-04-08 Release Manager * GCC 10.3.0 released. diff -Nrcpad gcc-10.3.0/gcc/jit/Make-lang.in gcc-10.4.0/gcc/jit/Make-lang.in *** gcc-10.3.0/gcc/jit/Make-lang.in Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/jit/Make-lang.in Tue Jun 28 08:54:28 2022 *************** *** 40,49 **** # into the jit rule, but that needs a little bit of work # to do the right thing within all.cross. - LIBGCCJIT_LINKER_NAME = libgccjit.so LIBGCCJIT_VERSION_NUM = 0 LIBGCCJIT_MINOR_NUM = 0 LIBGCCJIT_RELEASE_NUM = 1 LIBGCCJIT_SONAME = $(LIBGCCJIT_LINKER_NAME).$(LIBGCCJIT_VERSION_NUM) LIBGCCJIT_FILENAME = \ $(LIBGCCJIT_SONAME).$(LIBGCCJIT_MINOR_NUM).$(LIBGCCJIT_RELEASE_NUM) --- 40,83 ---- # into the jit rule, but that needs a little bit of work # to do the right thing within all.cross. LIBGCCJIT_VERSION_NUM = 0 LIBGCCJIT_MINOR_NUM = 0 LIBGCCJIT_RELEASE_NUM = 1 + + ifneq (,$(findstring darwin,$(host))) + + LIBGCCJIT_AGE = 1 + LIBGCCJIT_BASENAME = libgccjit + + LIBGCCJIT_SONAME = \ + ${libdir}/$(LIBGCCJIT_BASENAME).$(LIBGCCJIT_VERSION_NUM).dylib + 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) + + jit: $(LIBGCCJIT_FILENAME) \ + $(LIBGCCJIT_SYMLINK) \ + $(LIBGCCJIT_LINKER_NAME_SYMLINK) \ + $(FULL_DRIVER_NAME) + + else + + LIBGCCJIT_LINKER_NAME = libgccjit.so LIBGCCJIT_SONAME = $(LIBGCCJIT_LINKER_NAME).$(LIBGCCJIT_VERSION_NUM) LIBGCCJIT_FILENAME = \ $(LIBGCCJIT_SONAME).$(LIBGCCJIT_MINOR_NUM).$(LIBGCCJIT_RELEASE_NUM) *************** jit: $(LIBGCCJIT_FILENAME) \ *** 69,74 **** --- 103,112 ---- $(LIBGCCJIT_LINKER_NAME_SYMLINK) \ $(FULL_DRIVER_NAME) + endif + + jit.serial = $(LIBGCCJIT_FILENAME) + # Tell GNU make to ignore these if they exist. .PHONY: jit *************** jit_OBJS = attribs.o \ *** 87,92 **** --- 125,142 ---- # Use strict warnings for this front end. jit-warn = $(STRICT_WARN) + 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 + # We avoid using $(BACKEND) from Makefile.in in order to avoid pulling # in main.o $(LIBGCCJIT_FILENAME): $(jit_OBJS) \ *************** $(LIBGCCJIT_FILENAME): $(jit_OBJS) \ *** 98,108 **** $(jit_OBJS) libbackend.a libcommon-target.a libcommon.a \ $(CPPLIB) $(LIBDECNUMBER) $(EXTRA_GCC_LIBS) $(LIBS) $(BACKENDLIBS) \ $(EXTRA_GCC_OBJS) \ ! $(LIBGCCJIT_VERSION_SCRIPT_OPTION) \ ! $(LIBGCCJIT_SONAME_OPTION) $(LIBGCCJIT_SONAME_SYMLINK): $(LIBGCCJIT_FILENAME) ln -sf $(LIBGCCJIT_FILENAME) $(LIBGCCJIT_SONAME_SYMLINK) $(LIBGCCJIT_LINKER_NAME_SYMLINK): $(LIBGCCJIT_SONAME_SYMLINK) ln -sf $(LIBGCCJIT_SONAME_SYMLINK) $(LIBGCCJIT_LINKER_NAME_SYMLINK) --- 148,162 ---- $(jit_OBJS) libbackend.a libcommon-target.a libcommon.a \ $(CPPLIB) $(LIBDECNUMBER) $(EXTRA_GCC_LIBS) $(LIBS) $(BACKENDLIBS) \ $(EXTRA_GCC_OBJS) \ ! $(LIBGCCJIT_EXTRA_OPTS) + # Create symlinks + + ifeq (,$(findstring darwin,$(host))) + # but only one level for Darwin, version info is embedded. $(LIBGCCJIT_SONAME_SYMLINK): $(LIBGCCJIT_FILENAME) ln -sf $(LIBGCCJIT_FILENAME) $(LIBGCCJIT_SONAME_SYMLINK) + endif $(LIBGCCJIT_LINKER_NAME_SYMLINK): $(LIBGCCJIT_SONAME_SYMLINK) ln -sf $(LIBGCCJIT_SONAME_SYMLINK) $(LIBGCCJIT_LINKER_NAME_SYMLINK) *************** selftest-jit: *** 275,281 **** # # Install hooks: ! jit.install-common: installdirs $(INSTALL_PROGRAM) $(LIBGCCJIT_FILENAME) \ $(DESTDIR)/$(libdir)/$(LIBGCCJIT_FILENAME) ln -sf \ --- 329,354 ---- # # Install hooks: ! ! jit.install-headers: installdirs ! $(INSTALL_DATA) $(srcdir)/jit/libgccjit.h \ ! $(DESTDIR)$(includedir)/libgccjit.h ! $(INSTALL_DATA) $(srcdir)/jit/libgccjit++.h \ ! $(DESTDIR)$(includedir)/libgccjit++.h ! ! ! ifneq (,$(findstring darwin,$(host))) ! # but only one level for Darwin ! ! jit.install-common: installdirs jit.install-headers ! $(INSTALL_PROGRAM) $(LIBGCCJIT_FILENAME) \ ! $(DESTDIR)$(libdir)/$(LIBGCCJIT_FILENAME) ! ln -sf \ ! $(LIBGCCJIT_SONAME_SYMLINK)\ ! $(DESTDIR)$(libdir)/$(LIBGCCJIT_LINKER_NAME_SYMLINK) ! ! else ! jit.install-common: installdirs jit.install-headers $(INSTALL_PROGRAM) $(LIBGCCJIT_FILENAME) \ $(DESTDIR)/$(libdir)/$(LIBGCCJIT_FILENAME) ln -sf \ *************** jit.install-common: installdirs *** 283,293 **** $(DESTDIR)/$(libdir)/$(LIBGCCJIT_SONAME_SYMLINK) ln -sf \ $(LIBGCCJIT_SONAME_SYMLINK)\ ! $(DESTDIR)/$(libdir)/$(LIBGCCJIT_LINKER_NAME_SYMLINK) ! $(INSTALL_DATA) $(srcdir)/jit/libgccjit.h \ ! $(DESTDIR)/$(includedir)/libgccjit.h ! $(INSTALL_DATA) $(srcdir)/jit/libgccjit++.h \ ! $(DESTDIR)/$(includedir)/libgccjit++.h jit.install-man: --- 356,363 ---- $(DESTDIR)/$(libdir)/$(LIBGCCJIT_SONAME_SYMLINK) ln -sf \ $(LIBGCCJIT_SONAME_SYMLINK)\ ! $(DESTDIR)$(libdir)/$(LIBGCCJIT_LINKER_NAME_SYMLINK) ! endif jit.install-man: diff -Nrcpad gcc-10.3.0/gcc/jit/docs/examples/tut04-toyvm/toyvm.c gcc-10.4.0/gcc/jit/docs/examples/tut04-toyvm/toyvm.c *** gcc-10.3.0/gcc/jit/docs/examples/tut04-toyvm/toyvm.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/jit/docs/examples/tut04-toyvm/toyvm.c Tue Jun 28 08:54:28 2022 *************** along with GCC; see the file COPYING3. *** 24,30 **** #include #include ! #include #include --- 24,30 ---- #include #include ! #include "jit-dejagnu.h" #include diff -Nrcpad gcc-10.3.0/gcc/jit/docs/examples/tut04-toyvm/toyvm.cc gcc-10.4.0/gcc/jit/docs/examples/tut04-toyvm/toyvm.cc *** gcc-10.3.0/gcc/jit/docs/examples/tut04-toyvm/toyvm.cc Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/jit/docs/examples/tut04-toyvm/toyvm.cc Tue Jun 28 08:54:28 2022 *************** along with GCC; see the file COPYING3. *** 24,30 **** #include #include ! #include #include --- 24,30 ---- #include #include ! #include "jit-dejagnu.h" #include diff -Nrcpad gcc-10.3.0/gcc/jit/jit-dejagnu.h gcc-10.4.0/gcc/jit/jit-dejagnu.h *** gcc-10.3.0/gcc/jit/jit-dejagnu.h Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/jit/jit-dejagnu.h Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,338 ---- + /* DejaGnu unit testing header. + Copyright (C) 2000-2016 Free Software Foundation, Inc. + + This file is part of DejaGnu. + + DejaGnu is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + DejaGnu 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 DejaGnu; if not, write to the Free Software Foundation, + Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ + + /* Imported from 1.6.2 with modifications + * to avoid and unused symbol in C compilations + * avoid wait () clashing with system-provided routines + * provide a deterministic last line of output after the totals. */ + + #ifndef __DEJAGNU_H__ + #define __DEJAGNU_H__ + + #include + #include + #include + + /* If you have problems with DejaGnu dropping failed, untested, or + * unresolved messages generated by a unit testcase, then: */ + + /* #define _DEJAGNU_WAIT_ */ + + #ifdef _DEJAGNU_WAIT_ + #include + #include + #include + #endif + + static int passed; + static int failed; + static int untest; + static int unresolve; + static int xfailed; + #ifdef __cplusplus + static int xpassed; + #endif + + static char buffer[512]; + + #ifdef _DEJAGNU_WAIT_ + void + dg_wait (void) + { + fd_set rfds; + struct timeval tv; + + FD_ZERO (&rfds); + tv.tv_sec = 0; + tv.tv_usec = 1; + + select (0, &rfds, NULL, NULL, &tv); + } + #endif + + static inline void + pass (const char* fmt, ...) + { + va_list ap; + + passed++; + va_start (ap, fmt); + vsnprintf (buffer, sizeof (buffer), fmt, ap); + va_end (ap); + printf ("\tPASSED: %s\n", buffer); + #ifdef _DEJAGNU_WAIT_ + dg_wait (); + #endif + } + + static inline void + xpass (const char* fmt, ...) + { + va_list ap; + + passed++; + va_start (ap, fmt); + vsnprintf (buffer, sizeof (buffer), fmt, ap); + va_end (ap); + printf ("\tXPASSED: %s\n", buffer); + #ifdef _DEJAGNU_WAIT_ + dg_wait (); + #endif + } + + static inline void + fail (const char* fmt, ...) + { + va_list ap; + + failed++; + va_start (ap, fmt); + vsnprintf (buffer, sizeof (buffer), fmt, ap); + va_end (ap); + printf ("\tFAILED: %s\n", buffer); + #ifdef _DEJAGNU_WAIT_ + dg_wait (); + #endif + } + + static inline void + xfail (const char* fmt, ...) + { + va_list ap; + + failed++; + va_start (ap, fmt); + vsnprintf (buffer, sizeof (buffer), fmt, ap); + va_end (ap); + printf ("\tXFAILED: %s\n", buffer); + #ifdef _DEJAGNU_WAIT_ + dg_wait (); + #endif + } + + static inline void + untested (const char* fmt, ...) + { + va_list ap; + + untest++; + va_start (ap, fmt); + vsnprintf (buffer, sizeof (buffer), fmt, ap); + va_end (ap); + printf ("\tUNTESTED: %s\n", buffer); + #ifdef _DEJAGNU_WAIT_ + dg_wait (); + #endif + } + + static inline void + unresolved (const char* fmt, ...) + { + va_list ap; + + unresolve++; + va_start (ap, fmt); + vsnprintf (buffer, sizeof (buffer), fmt, ap); + va_end (ap); + printf ("\tUNRESOLVED: %s\n", buffer); + #ifdef _DEJAGNU_WAIT_ + dg_wait (); + #endif + } + + static inline void + note (const char* fmt, ...) + { + va_list ap; + + va_start (ap, fmt); + vsnprintf (buffer, sizeof (buffer), fmt, ap); + va_end (ap); + printf ("\tNOTE: %s\n", buffer); + #ifdef _DEJAGNU_WAIT_ + dg_wait (); + #endif + } + + static inline void + totals (void) + { + printf ("\nTotals:\n"); + printf ("\t#passed:\t\t%d\n", passed); + printf ("\t#real failed:\t\t%d\n", failed); + if (xfailed) + printf ("\t#expected failures:\t\t%d\n", xfailed); + if (untest) + printf ("\t#untested:\t\t%d\n", untest); + if (unresolve) + printf ("\t#unresolved:\t\t%d\n", unresolve); + printf ("\njit-dg-harness-complete\n"); + } + + #ifdef __cplusplus + + #include + #include + #include + #include + + const char *outstate_list[] = { + "FAILED: ", "PASSED: ", "UNTESTED: ", "UNRESOLVED: ", "XFAILED: ", "XPASSED: " + }; + + const char ** outstate = outstate_list; + + enum teststate { FAILED, PASSED, UNTESTED, UNRESOLVED, XFAILED, XPASSED} laststate; + + class TestState { + private: + teststate laststate; + std::string lastmsg; + public: + TestState (void) + { + passed = 0; + failed = 0; + untest = 0; + xpassed = 0; + xfailed = 0; + unresolve = 0; + } + + ~TestState (void) { totals(); } + + void testrun (bool b, std::string s) + { + if (b) + pass (s); + else + fail (s); + } + + void pass (std::string s) + { + passed++; + laststate = PASSED; + lastmsg = s; + std::cout << "\t" << outstate[PASSED] << s << std::endl; + } + + void pass (const char *c) + { + std::string s = c; + pass (s); + } + + void xpass (std::string s) + { + xpassed++; + laststate = PASSED; + lastmsg = s; + std::cout << "\t" << outstate[XPASSED] << s << std::endl; + } + + void xpass (const char *c) + { + std::string s = c; + xpass (s); + } + + void fail (std::string s) + { + failed++; + laststate = FAILED; + lastmsg = s; + std::cout << "\t" << outstate[FAILED] << s << std::endl; + } + + void fail (const char *c) + { + std::string s = c; + fail (s); + } + + void xfail (std::string s) + { + xfailed++; + laststate = XFAILED; + lastmsg = s; + std::cout << "\t" << outstate[XFAILED] << s << std::endl; + } + + void xfail (const char *c) + { + std::string s = c; + xfail (s); + } + + void untested (std::string s) + { + untest++; + laststate = UNTESTED; + lastmsg = s; + std::cout << "\t" << outstate[UNTESTED] << s << std::endl; + } + + void untested (const char *c) + { + std::string s = c; + untested (s); + } + + void unresolved (std::string s) + { + unresolve++; + laststate = UNRESOLVED; + lastmsg = s; + std::cout << "\t" << outstate[UNRESOLVED] << s << std::endl; + } + + void unresolved (const char *c) + { + std::string s = c; + unresolved (s); + } + + void totals (void) + { + std::cout << "\t#passed:\t\t" << passed << std::endl; + std::cout << "\t#real failed:\t\t" << failed << std::endl; + if (xfailed) + std::cout << "\t#expected failures:\t\t" << xfailed << std::endl; + if (xpassed) + std::cout << "\t#unexpected passes:\t\t" << xpassed << std::endl; + if (untest) + std::cout << "\t#untested:\t\t" << untest << std::endl; + if (unresolve) + std::cout << "\t#unresolved:\t\t" << unresolve << std::endl; + std::cout << "\njit-dg-harness-complete" << std::endl; + } + + // This is so this class can be printed in an ostream. + friend std::ostream & operator << (std::ostream &os, TestState& t) + { + return os << "\t" << outstate[t.laststate] << t.lastmsg ; + } + + int GetState (void) { return laststate; } + std::string GetMsg (void) { return lastmsg; } + }; + + #endif /* __cplusplus */ + #endif /* _DEJAGNU_H_ */ diff -Nrcpad gcc-10.3.0/gcc/jit/jit-playback.c gcc-10.4.0/gcc/jit/jit-playback.c *** gcc-10.3.0/gcc/jit/jit-playback.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/jit/jit-playback.c Tue Jun 28 08:54:28 2022 *************** function (context *ctxt, *** 1357,1363 **** : m_ctxt(ctxt), m_inner_fndecl (fndecl), m_inner_bind_expr (NULL), ! m_kind (kind) { if (m_kind != GCC_JIT_FUNCTION_IMPORTED) { --- 1357,1364 ---- : m_ctxt(ctxt), m_inner_fndecl (fndecl), m_inner_bind_expr (NULL), ! m_kind (kind), ! m_blocks () { if (m_kind != GCC_JIT_FUNCTION_IMPORTED) { diff -Nrcpad gcc-10.3.0/gcc/jump.c gcc-10.4.0/gcc/jump.c *** gcc-10.3.0/gcc/jump.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/jump.c Tue Jun 28 08:54:28 2022 *************** rtx_renumbered_equal_p (const_rtx x, con *** 1767,1772 **** --- 1767,1777 ---- CASE_CONST_UNIQUE: return 0; + case CONST_VECTOR: + if (!same_vector_encodings_p (x, y)) + return false; + break; + case LABEL_REF: /* We can't assume nonlocal labels have their following insns yet. */ if (LABEL_REF_NONLOCAL_P (x) || LABEL_REF_NONLOCAL_P (y)) diff -Nrcpad gcc-10.3.0/gcc/loop-invariant.c gcc-10.4.0/gcc/loop-invariant.c *** gcc-10.3.0/gcc/loop-invariant.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/loop-invariant.c Tue Jun 28 08:54:28 2022 *************** can_move_invariant_reg (class loop *loop *** 1692,1697 **** --- 1692,1698 ---- unsigned int dest_regno, defs_in_loop_count = 0; rtx_insn *insn = inv->insn; basic_block bb = BLOCK_FOR_INSN (inv->insn); + auto_vec debug_insns_to_reset; /* We ignore hard register and memory access for cost and complexity reasons. Hard register are few at this stage and expensive to consider as they *************** can_move_invariant_reg (class loop *loop *** 1726,1735 **** continue; /* Don't move if a use is not dominated by def in insn. */ ! if (use_bb == bb && DF_INSN_LUID (insn) >= DF_INSN_LUID (use_insn)) ! return false; ! if (!dominated_by_p (CDI_DOMINATORS, use_bb, bb)) ! return false; } /* Check for other defs. Any other def in the loop might reach a use --- 1727,1739 ---- continue; /* Don't move if a use is not dominated by def in insn. */ ! if ((use_bb == bb && DF_INSN_LUID (insn) >= DF_INSN_LUID (use_insn)) ! || !dominated_by_p (CDI_DOMINATORS, use_bb, bb)) ! { ! if (!DEBUG_INSN_P (use_insn)) ! return false; ! debug_insns_to_reset.safe_push (use_insn); ! } } /* Check for other defs. Any other def in the loop might reach a use *************** can_move_invariant_reg (class loop *loop *** 1752,1757 **** --- 1756,1770 ---- return false; } + /* Reset debug uses if a use is not dominated by def in insn. */ + rtx_insn *use_insn; + unsigned i; + FOR_EACH_VEC_ELT (debug_insns_to_reset, i, use_insn) + { + INSN_VAR_LOCATION_LOC (use_insn) = gen_rtx_UNKNOWN_VAR_LOC (); + df_insn_rescan (use_insn); + } + return true; } diff -Nrcpad gcc-10.3.0/gcc/lra-assigns.c gcc-10.4.0/gcc/lra-assigns.c *** gcc-10.3.0/gcc/lra-assigns.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/lra-assigns.c Tue Jun 28 08:54:28 2022 *************** lra_split_hard_reg_for (void) *** 1773,1780 **** iterations. Either it's an asm and something is wrong with the constraints, or we have run out of spill registers; error out in either case. */ ! bool asm_p = false; ! bitmap_head failed_reload_insns, failed_reload_pseudos; if (lra_dump_file != NULL) fprintf (lra_dump_file, --- 1773,1780 ---- iterations. Either it's an asm and something is wrong with the constraints, or we have run out of spill registers; error out in either case. */ ! bool asm_p = false, spill_p = false; ! bitmap_head failed_reload_insns, failed_reload_pseudos, over_split_insns; if (lra_dump_file != NULL) fprintf (lra_dump_file, *************** lra_split_hard_reg_for (void) *** 1785,1790 **** --- 1785,1791 ---- bitmap_ior (&non_reload_pseudos, &lra_inheritance_pseudos, &lra_split_regs); bitmap_ior_into (&non_reload_pseudos, &lra_subreg_reload_pseudos); bitmap_ior_into (&non_reload_pseudos, &lra_optional_reload_pseudos); + bitmap_initialize (&over_split_insns, ®_obstack); for (i = lra_constraint_new_regno_start; i < max_regno; i++) if (reg_renumber[i] < 0 && lra_reg_info[i].nrefs != 0 && (rclass = lra_get_allocno_class (i)) != NO_REGS *************** lra_split_hard_reg_for (void) *** 1792,1804 **** { if (! find_reload_regno_insns (i, first, last)) continue; ! if (spill_hard_reg_in_range (i, rclass, first, last)) { ! bitmap_clear (&failed_reload_pseudos); ! return true; } - bitmap_set_bit (&failed_reload_pseudos, i); } bitmap_clear (&non_reload_pseudos); bitmap_initialize (&failed_reload_insns, ®_obstack); EXECUTE_IF_SET_IN_BITMAP (&failed_reload_pseudos, 0, u, bi) --- 1793,1833 ---- { if (! find_reload_regno_insns (i, first, last)) continue; ! if (BLOCK_FOR_INSN (first) == BLOCK_FOR_INSN (last)) { ! /* Check that we are not trying to split over the same insn ! requiring reloads to avoid splitting the same hard reg twice or ! more. If we need several hard regs splitting over the same insn ! it can be finished on the next iterations. ! ! The following loop iteration number is small as we split hard ! reg in a very small range. */ ! for (insn = first; ! insn != NEXT_INSN (last); ! insn = NEXT_INSN (insn)) ! if (bitmap_bit_p (&over_split_insns, INSN_UID (insn))) ! break; ! if (insn != NEXT_INSN (last) ! || !spill_hard_reg_in_range (i, rclass, first, last)) ! { ! bitmap_set_bit (&failed_reload_pseudos, i); ! } ! else ! { ! for (insn = first; ! insn != NEXT_INSN (last); ! insn = NEXT_INSN (insn)) ! bitmap_set_bit (&over_split_insns, INSN_UID (insn)); ! spill_p = true; ! } } } + bitmap_clear (&over_split_insns); + if (spill_p) + { + bitmap_clear (&failed_reload_pseudos); + return true; + } bitmap_clear (&non_reload_pseudos); bitmap_initialize (&failed_reload_insns, ®_obstack); EXECUTE_IF_SET_IN_BITMAP (&failed_reload_pseudos, 0, u, bi) diff -Nrcpad gcc-10.3.0/gcc/lra-constraints.c gcc-10.4.0/gcc/lra-constraints.c *** gcc-10.3.0/gcc/lra-constraints.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/lra-constraints.c Tue Jun 28 08:54:28 2022 *************** get_reg_class (int regno) *** 235,246 **** CL. Use elimination first if REG is a hard register. If REG is a reload pseudo created by this constraints pass, assume that it will be allocated a hard register from its allocno class, but allow that ! class to be narrowed to CL if it is currently a superset of CL. If NEW_CLASS is nonnull, set *NEW_CLASS to the new allocno class of REGNO (reg), or NO_REGS if no change in its class was needed. */ static bool ! in_class_p (rtx reg, enum reg_class cl, enum reg_class *new_class) { enum reg_class rclass, common_class; machine_mode reg_mode; --- 235,251 ---- CL. Use elimination first if REG is a hard register. If REG is a reload pseudo created by this constraints pass, assume that it will be allocated a hard register from its allocno class, but allow that ! class to be narrowed to CL if it is currently a superset of CL and ! if either: ! ! - ALLOW_ALL_RELOAD_CLASS_CHANGES_P is true or ! - the instruction we're processing is not a reload move. If NEW_CLASS is nonnull, set *NEW_CLASS to the new allocno class of REGNO (reg), or NO_REGS if no change in its class was needed. */ static bool ! in_class_p (rtx reg, enum reg_class cl, enum reg_class *new_class, ! bool allow_all_reload_class_changes_p = false) { enum reg_class rclass, common_class; machine_mode reg_mode; *************** in_class_p (rtx reg, enum reg_class cl, *** 267,273 **** typically moves that have many alternatives, and restricting reload pseudos for one alternative may lead to situations where other reload pseudos are no longer allocatable. */ ! || (INSN_UID (curr_insn) >= new_insn_uid_start && src != NULL && ((REG_P (src) || MEM_P (src)) || (GET_CODE (src) == SUBREG --- 272,279 ---- typically moves that have many alternatives, and restricting reload pseudos for one alternative may lead to situations where other reload pseudos are no longer allocatable. */ ! || (!allow_all_reload_class_changes_p ! && INSN_UID (curr_insn) >= new_insn_uid_start && src != NULL && ((REG_P (src) || MEM_P (src)) || (GET_CODE (src) == SUBREG *************** init_curr_insn_input_reloads (void) *** 570,582 **** curr_insn_input_reloads_num = 0; } ! /* Create a new pseudo using MODE, RCLASS, ORIGINAL or reuse already ! created input reload pseudo (only if TYPE is not OP_OUT). Don't ! reuse pseudo if IN_SUBREG_P is true and the reused pseudo should be ! wrapped up in SUBREG. The result pseudo is returned through ! RESULT_REG. Return TRUE if we created a new pseudo, FALSE if we ! reused the already created input reload pseudo. Use TITLE to ! describe new registers for debug purposes. */ static bool get_reload_reg (enum op_type type, machine_mode mode, rtx original, enum reg_class rclass, bool in_subreg_p, --- 576,587 ---- curr_insn_input_reloads_num = 0; } ! /* Create a new pseudo using MODE, RCLASS, ORIGINAL or reuse an existing ! reload pseudo. Don't reuse an existing reload pseudo if IN_SUBREG_P ! is true and the reused pseudo should be wrapped up in a SUBREG. ! The result pseudo is returned through RESULT_REG. Return TRUE if we ! created a new pseudo, FALSE if we reused an existing reload pseudo. ! Use TITLE to describe new registers for debug purposes. */ static bool get_reload_reg (enum op_type type, machine_mode mode, rtx original, enum reg_class rclass, bool in_subreg_p, *************** get_reload_reg (enum op_type type, machi *** 588,593 **** --- 593,632 ---- if (type == OP_OUT) { + /* Output reload registers tend to start out with a conservative + choice of register class. Usually this is ALL_REGS, although + a target might narrow it (for performance reasons) through + targetm.preferred_reload_class. It's therefore quite common + for a reload instruction to require a more restrictive class + than the class that was originally assigned to the reload register. + + In these situations, it's more efficient to refine the choice + of register class rather than create a second reload register. + This also helps to avoid cycling for registers that are only + used by reload instructions. */ + rtx src = curr_insn_set != NULL ? SET_SRC (curr_insn_set) : NULL; + if (REG_P (original) + && (int) REGNO (original) >= new_regno_start + && INSN_UID (curr_insn) >= new_insn_uid_start + && in_class_p (original, rclass, &new_class, true) + && src != NULL + && ((REG_P (src) || MEM_P (src)) + || (GET_CODE (src) == SUBREG + && (REG_P (SUBREG_REG (src)) || MEM_P (SUBREG_REG (src)))))) + { + unsigned int regno = REGNO (original); + if (lra_dump_file != NULL) + { + fprintf (lra_dump_file, " Reuse r%d for output ", regno); + dump_value_slim (lra_dump_file, original, 1); + } + if (new_class != lra_get_allocno_class (regno)) + lra_change_class (regno, new_class, ", change to", false); + if (lra_dump_file != NULL) + fprintf (lra_dump_file, "\n"); + *result_reg = original; + return false; + } *result_reg = lra_create_new_reg_with_unique_value (mode, original, rclass, title); return true; *************** operands_match_p (rtx x, rtx y, int y_ha *** 751,756 **** --- 790,800 ---- CASE_CONST_UNIQUE: return false; + case CONST_VECTOR: + if (!same_vector_encodings_p (x, y)) + return false; + break; + case LABEL_REF: return label_ref_label (x) == label_ref_label (y); case SYMBOL_REF: *************** match_reload (signed char out, signed ch *** 1014,1020 **** for (i = 0; outs[i] >= 0; i++) { rtx other_out_rtx = *curr_id->operand_loc[outs[i]]; ! if (REG_P (other_out_rtx) && (regno_val_use_in (REGNO (in_rtx), other_out_rtx) != NULL_RTX)) { --- 1058,1064 ---- for (i = 0; outs[i] >= 0; i++) { rtx other_out_rtx = *curr_id->operand_loc[outs[i]]; ! if (outs[i] != out && REG_P (other_out_rtx) && (regno_val_use_in (REGNO (in_rtx), other_out_rtx) != NULL_RTX)) { *************** curr_insn_transform (bool check_only_p) *** 4262,4268 **** } n_outputs = 0; ! outputs[0] = -1; for (i = 0; i < n_operands; i++) { int regno; --- 4306,4315 ---- } n_outputs = 0; ! for (i = 0; i < n_operands; i++) ! if (curr_static_id->operand[i].type == OP_OUT) ! outputs[n_outputs++] = i; ! outputs[n_outputs] = -1; for (i = 0; i < n_operands; i++) { int regno; *************** curr_insn_transform (bool check_only_p) *** 4337,4344 **** lra-lives.c. */ match_reload (i, goal_alt_matched[i], outputs, goal_alt[i], &before, &after, TRUE); - outputs[n_outputs++] = i; - outputs[n_outputs] = -1; } continue; } --- 4384,4389 ---- *************** curr_insn_transform (bool check_only_p) *** 4509,4522 **** process_alt_operands decides that it is possible. */ gcc_unreachable (); - /* Memorise processed outputs so that output remaining to be processed - can avoid using the same register value (see match_reload). */ - if (curr_static_id->operand[i].type == OP_OUT) - { - outputs[n_outputs++] = i; - outputs[n_outputs] = -1; - } - if (optional_p) { rtx reg = op; --- 4554,4559 ---- diff -Nrcpad gcc-10.3.0/gcc/lra-eliminations.c gcc-10.4.0/gcc/lra-eliminations.c *** gcc-10.3.0/gcc/lra-eliminations.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/lra-eliminations.c Tue Jun 28 08:54:28 2022 *************** eliminate_regs_in_insn (rtx_insn *insn, *** 885,891 **** poly_int64 update_sp_offset) { int icode = recog_memoized (insn); ! rtx old_set = single_set (insn); bool validate_p; int i; rtx substed_operand[MAX_RECOG_OPERANDS]; --- 885,891 ---- poly_int64 update_sp_offset) { int icode = recog_memoized (insn); ! rtx set, old_set = single_set (insn); bool validate_p; int i; rtx substed_operand[MAX_RECOG_OPERANDS]; *************** eliminate_regs_in_insn (rtx_insn *insn, *** 1038,1043 **** --- 1038,1072 ---- for (i = 0; i < static_id->n_dups; i++) *id->dup_loc[i] = substed_operand[(int) static_id->dup_num[i]]; + /* Transform plus (plus (hard reg, const), pseudo) to plus (plus (pseudo, + const), hard reg) in order to keep insn containing eliminated register + after all reloads calculating its offset. This permits to keep register + pressure under control and helps to avoid LRA cycling in patalogical + cases. */ + if (! replace_p && (set = single_set (insn)) != NULL + && GET_CODE (SET_SRC (set)) == PLUS + && GET_CODE (XEXP (SET_SRC (set), 0)) == PLUS) + { + rtx reg1, reg2, op1, op2; + + reg1 = op1 = XEXP (XEXP (SET_SRC (set), 0), 0); + reg2 = op2 = XEXP (SET_SRC (set), 1); + if (GET_CODE (reg1) == SUBREG) + reg1 = SUBREG_REG (reg1); + if (GET_CODE (reg2) == SUBREG) + reg2 = SUBREG_REG (reg2); + if (REG_P (reg1) && REG_P (reg2) + && REGNO (reg1) < FIRST_PSEUDO_REGISTER + && REGNO (reg2) >= FIRST_PSEUDO_REGISTER + && GET_MODE (reg1) == Pmode + && !have_addptr3_insn (lra_pmode_pseudo, reg1, + XEXP (XEXP (SET_SRC (set), 0), 1))) + { + XEXP (XEXP (SET_SRC (set), 0), 0) = op2; + XEXP (SET_SRC (set), 1) = op1; + } + } + /* If we had a move insn but now we don't, re-recognize it. This will cause spurious re-recognition if the old move had a PARALLEL since the new one still will, but we can't call diff -Nrcpad gcc-10.3.0/gcc/lra-int.h gcc-10.4.0/gcc/lra-int.h *** gcc-10.3.0/gcc/lra-int.h Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/lra-int.h Tue Jun 28 08:54:28 2022 *************** extern void lra_register_new_scratch_op *** 326,331 **** --- 326,332 ---- extern int lra_new_regno_start; extern int lra_constraint_new_regno_start; extern int lra_bad_spill_regno_start; + extern rtx lra_pmode_pseudo; extern bitmap_head lra_inheritance_pseudos; extern bitmap_head lra_split_regs; extern bitmap_head lra_subreg_reload_pseudos; diff -Nrcpad gcc-10.3.0/gcc/lra.c gcc-10.4.0/gcc/lra.c *** gcc-10.3.0/gcc/lra.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/lra.c Tue Jun 28 08:54:28 2022 *************** int lra_constraint_new_regno_start; *** 2306,2311 **** --- 2306,2314 ---- it is possible. */ int lra_bad_spill_regno_start; + /* A pseudo of Pmode. */ + rtx lra_pmode_pseudo; + /* Inheritance pseudo regnos before the new spill pass. */ bitmap_head lra_inheritance_pseudos; *************** lra (FILE *f) *** 2366,2371 **** --- 2369,2375 ---- lra_dump_file = f; lra_asm_error_p = false; + lra_pmode_pseudo = gen_reg_rtx (Pmode); timevar_push (TV_LRA); diff -Nrcpad gcc-10.3.0/gcc/lto/ChangeLog gcc-10.4.0/gcc/lto/ChangeLog *** gcc-10.3.0/gcc/lto/ChangeLog Thu Apr 8 11:56:48 2021 --- gcc-10.4.0/gcc/lto/ChangeLog Tue Jun 28 08:54:28 2022 *************** *** 1,3 **** --- 1,7 ---- + 2022-06-28 Release Manager + + * GCC 10.4.0 released. + 2021-04-08 Release Manager * GCC 10.3.0 released. diff -Nrcpad gcc-10.3.0/gcc/lto-streamer.h gcc-10.4.0/gcc/lto-streamer.h *** gcc-10.3.0/gcc/lto-streamer.h Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/lto-streamer.h Tue Jun 28 08:54:28 2022 *************** along with GCC; see the file COPYING3. *** 121,127 **** form followed by the data for the string. */ #define LTO_major_version 9 ! #define LTO_minor_version 3 typedef unsigned char lto_decl_flags_t; --- 121,127 ---- form followed by the data for the string. */ #define LTO_major_version 9 ! #define LTO_minor_version 4 typedef unsigned char lto_decl_flags_t; diff -Nrcpad gcc-10.3.0/gcc/match.pd gcc-10.4.0/gcc/match.pd *** gcc-10.3.0/gcc/match.pd Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/match.pd Tue Jun 28 08:54:28 2022 *************** DEFINE_INT_AND_FLOAT_ROUND_FN (RINT) *** 352,363 **** { build_minus_one_cst (type); }))) /* For unsigned integral types, FLOOR_DIV_EXPR is the same as ! TRUNC_DIV_EXPR. Rewrite into the latter in this case. */ ! (simplify ! (floor_div @0 @1) ! (if ((INTEGRAL_TYPE_P (type) || VECTOR_INTEGER_TYPE_P (type)) ! && TYPE_UNSIGNED (type)) ! (trunc_div @0 @1))) /* Combine two successive divisions. Note that combining ceil_div and floor_div is trickier and combining round_div even more so. */ --- 352,366 ---- { build_minus_one_cst (type); }))) /* For unsigned integral types, FLOOR_DIV_EXPR is the same as ! TRUNC_DIV_EXPR. Rewrite into the latter in this case. Similarly ! for MOD instead of DIV. */ ! (for floor_divmod (floor_div floor_mod) ! trunc_divmod (trunc_div trunc_mod) ! (simplify ! (floor_divmod @0 @1) ! (if ((INTEGRAL_TYPE_P (type) || VECTOR_INTEGER_TYPE_P (type)) ! && TYPE_UNSIGNED (type)) ! (trunc_divmod @0 @1)))) /* Combine two successive divisions. Note that combining ceil_div and floor_div is trickier and combining round_div even more so. */ *************** DEFINE_INT_AND_FLOAT_ROUND_FN (RINT) *** 612,618 **** /* Simplify (unsigned t * 2)/2 -> unsigned t & 0x7FFFFFFF. */ (simplify (trunc_div (mult @0 integer_pow2p@1) @1) ! (if (TYPE_UNSIGNED (TREE_TYPE (@0))) (bit_and @0 { wide_int_to_tree (type, wi::mask (TYPE_PRECISION (type) - wi::exact_log2 (wi::to_wide (@1)), --- 615,621 ---- /* Simplify (unsigned t * 2)/2 -> unsigned t & 0x7FFFFFFF. */ (simplify (trunc_div (mult @0 integer_pow2p@1) @1) ! (if (INTEGRAL_TYPE_P (TREE_TYPE (@0)) && TYPE_UNSIGNED (TREE_TYPE (@0))) (bit_and @0 { wide_int_to_tree (type, wi::mask (TYPE_PRECISION (type) - wi::exact_log2 (wi::to_wide (@1)), *************** DEFINE_INT_AND_FLOAT_ROUND_FN (RINT) *** 621,627 **** /* Simplify (unsigned t / 2) * 2 -> unsigned t & ~1. */ (simplify (mult (trunc_div @0 integer_pow2p@1) @1) ! (if (TYPE_UNSIGNED (TREE_TYPE (@0))) (bit_and @0 (negate @1)))) /* Simplify (t * 2) / 2) -> t. */ --- 624,630 ---- /* Simplify (unsigned t / 2) * 2 -> unsigned t & ~1. */ (simplify (mult (trunc_div @0 integer_pow2p@1) @1) ! (if (INTEGRAL_TYPE_P (TREE_TYPE (@0)) && TYPE_UNSIGNED (TREE_TYPE (@0))) (bit_and @0 (negate @1)))) /* Simplify (t * 2) / 2) -> t. */ *************** DEFINE_INT_AND_FLOAT_ROUND_FN (RINT) *** 2343,2355 **** (simplify (minus (convert? (negate @0)) integer_each_onep) (if (!TYPE_OVERFLOW_TRAPS (type) && tree_nop_conversion_p (type, TREE_TYPE (@0))) (bit_not (convert @0)))) /* -1 - A -> ~A */ (simplify (minus integer_all_onesp @0) ! (bit_not @0)) /* (T)(P + A) - (T)P -> (T) A */ (simplify --- 2346,2360 ---- (simplify (minus (convert? (negate @0)) integer_each_onep) (if (!TYPE_OVERFLOW_TRAPS (type) + && TREE_CODE (type) != COMPLEX_TYPE && tree_nop_conversion_p (type, TREE_TYPE (@0))) (bit_not (convert @0)))) /* -1 - A -> ~A */ (simplify (minus integer_all_onesp @0) ! (if (TREE_CODE (type) != COMPLEX_TYPE) ! (bit_not @0))) /* (T)(P + A) - (T)P -> (T) A */ (simplify *************** DEFINE_INT_AND_FLOAT_ROUND_FN (RINT) *** 4548,4554 **** (cmp (convert @0) INTEGER_CST@1) (if (((POINTER_TYPE_P (TREE_TYPE (@0)) && !FUNC_OR_METHOD_TYPE_P (TREE_TYPE (TREE_TYPE (@0))) ! && INTEGRAL_TYPE_P (TREE_TYPE (@1))) || (INTEGRAL_TYPE_P (TREE_TYPE (@0)) && POINTER_TYPE_P (TREE_TYPE (@1)) && !FUNC_OR_METHOD_TYPE_P (TREE_TYPE (TREE_TYPE (@1))))) --- 4553,4564 ---- (cmp (convert @0) INTEGER_CST@1) (if (((POINTER_TYPE_P (TREE_TYPE (@0)) && !FUNC_OR_METHOD_TYPE_P (TREE_TYPE (TREE_TYPE (@0))) ! && INTEGRAL_TYPE_P (TREE_TYPE (@1)) ! /* Don't perform this optimization in GENERIC if @0 has reference ! type when sanitizing. See PR101210. */ ! && !(GENERIC ! && TREE_CODE (TREE_TYPE (@0)) == REFERENCE_TYPE ! && (flag_sanitize & (SANITIZE_NULL | SANITIZE_ALIGNMENT)))) || (INTEGRAL_TYPE_P (TREE_TYPE (@0)) && POINTER_TYPE_P (TREE_TYPE (@1)) && !FUNC_OR_METHOD_TYPE_P (TREE_TYPE (TREE_TYPE (@1))))) diff -Nrcpad gcc-10.3.0/gcc/modulo-sched.c gcc-10.4.0/gcc/modulo-sched.c *** gcc-10.3.0/gcc/modulo-sched.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/modulo-sched.c Tue Jun 28 08:54:28 2022 *************** along with GCC; see the file COPYING3. *** 43,48 **** --- 43,49 ---- #include "tree-pass.h" #include "dbgcnt.h" #include "loop-unroll.h" + #include "hard-reg-set.h" #ifdef INSN_SCHEDULING *************** sms_schedule (void) *** 1354,1359 **** --- 1355,1361 ---- basic_block condition_bb = NULL; edge latch_edge; HOST_WIDE_INT trip_count, max_trip_count; + HARD_REG_SET prohibited_regs; loop_optimizer_init (LOOPS_HAVE_PREHEADERS | LOOPS_HAVE_RECORDED_EXITS); *************** sms_schedule (void) *** 1383,1388 **** --- 1385,1392 ---- We use loop->num as index into this array. */ g_arr = XCNEWVEC (ddg_ptr, number_of_loops (cfun)); + REG_SET_TO_HARD_REG_SET (prohibited_regs, &df->regular_block_artificial_uses); + if (dump_file) { fprintf (dump_file, "\n\nSMS analysis phase\n"); *************** sms_schedule (void) *** 1467,1489 **** } /* Don't handle BBs with calls or barriers ! or !single_set with the exception of instructions that include ! count_reg---these instructions are part of the control part ! that do-loop recognizes. ??? Should handle insns defining subregs. */ ! for (insn = head; insn != NEXT_INSN (tail); insn = NEXT_INSN (insn)) ! { ! rtx set; ! if (CALL_P (insn) ! || BARRIER_P (insn) ! || (NONDEBUG_INSN_P (insn) && !JUMP_P (insn) ! && !single_set (insn) && GET_CODE (PATTERN (insn)) != USE ! && !reg_mentioned_p (count_reg, insn)) ! || (INSN_P (insn) && (set = single_set (insn)) ! && GET_CODE (SET_DEST (set)) == SUBREG)) ! break; ! } if (insn != NEXT_INSN (tail)) { --- 1471,1501 ---- } /* Don't handle BBs with calls or barriers ! or !single_set with the exception of do-loop control part insns. ??? Should handle insns defining subregs. */ ! for (insn = head; insn != NEXT_INSN (tail); insn = NEXT_INSN (insn)) ! { ! if (INSN_P (insn)) ! { ! HARD_REG_SET regs; ! CLEAR_HARD_REG_SET (regs); ! note_stores (insn, record_hard_reg_sets, ®s); ! if (hard_reg_set_intersect_p (regs, prohibited_regs)) ! break; ! } ! if (CALL_P (insn) ! || BARRIER_P (insn) ! || (INSN_P (insn) && single_set (insn) ! && GET_CODE (SET_DEST (single_set (insn))) == SUBREG) ! /* Not a single set. */ ! || (NONDEBUG_INSN_P (insn) && !JUMP_P (insn) ! && !single_set (insn) && GET_CODE (PATTERN (insn)) != USE ! /* But non-single-set allowed in one special case. */ ! && (insn != prev_nondebug_insn (tail) ! || !reg_mentioned_p (count_reg, insn)))) ! break; ! } if (insn != NEXT_INSN (tail)) { *************** sms_schedule (void) *** 1493,1503 **** fprintf (dump_file, "SMS loop-with-call\n"); else if (BARRIER_P (insn)) fprintf (dump_file, "SMS loop-with-barrier\n"); ! else if ((NONDEBUG_INSN_P (insn) && !JUMP_P (insn) ! && !single_set (insn) && GET_CODE (PATTERN (insn)) != USE)) ! fprintf (dump_file, "SMS loop-with-not-single-set\n"); ! else ! fprintf (dump_file, "SMS loop with subreg in lhs\n"); print_rtl_single (dump_file, insn); } --- 1505,1517 ---- fprintf (dump_file, "SMS loop-with-call\n"); else if (BARRIER_P (insn)) fprintf (dump_file, "SMS loop-with-barrier\n"); ! else if (INSN_P (insn) && single_set (insn) ! && GET_CODE (SET_DEST (single_set (insn))) == SUBREG) ! fprintf (dump_file, "SMS loop with subreg in lhs\n"); ! else ! fprintf (dump_file, ! "SMS loop-with-not-single-set-or-prohibited-reg\n"); ! print_rtl_single (dump_file, insn); } diff -Nrcpad gcc-10.3.0/gcc/objc/ChangeLog gcc-10.4.0/gcc/objc/ChangeLog *** gcc-10.3.0/gcc/objc/ChangeLog Thu Apr 8 11:56:48 2021 --- gcc-10.4.0/gcc/objc/ChangeLog Tue Jun 28 08:54:28 2022 *************** *** 1,3 **** --- 1,56 ---- + 2022-06-28 Release Manager + + * GCC 10.4.0 released. + + 2022-05-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. + + 2022-05-31 Iain Sandoe + + * objc-next-metadata-tags.h (objc_rt_trees): Declare here. + * objc-next-runtime-abi-01.c: Remove from here. + (generate_static_references): Likewise. + * objc-next-runtime-abi-02.c: Likewise. + (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. + (next_runtime_abi_02_category_decl): Adjust category + superclass name ordering. + (next_runtime_abi_02_init_metadata_attributes): Attach metadata + for the special string sections to class, method and method type + string sections. + (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. + (objc_next_runtime_abi_02_init): Default receiver nilchecks on. + * objc-runtime-shared-support.c: Reorder headers, provide + a GTY declaration the definition of objc_rt_trees. + * objc-gnu-runtime-abi-01.c + (build_shared_structure_initializer): Remove references to + the NeXT runtime. + + 2022-05-29 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. + 2021-04-08 Release Manager * GCC 10.3.0 released. diff -Nrcpad gcc-10.3.0/gcc/objc/objc-act.c gcc-10.4.0/gcc/objc/objc-act.c *** gcc-10.3.0/gcc/objc/objc-act.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/objc/objc-act.c Tue Jun 28 08:54:28 2022 *************** objc_build_string_object (tree string) *** 3305,3312 **** return addr; } ! /* Build a static constant CONSTRUCTOR ! with type TYPE and elements ELTS. */ tree objc_build_constructor (tree type, vec *elts) --- 3305,3314 ---- 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 *decls = NULL; - /* FIXME: Remove NeXT runtime code. */ - if (flag_next_runtime) - gcc_unreachable (); - for (cl_chain = objc_static_instances, num_class = 0; cl_chain; cl_chain = TREE_CHAIN (cl_chain), num_class++) { --- 1855,1860 ---- diff -Nrcpad gcc-10.3.0/gcc/objc/objc-next-metadata-tags.h gcc-10.4.0/gcc/objc/objc-next-metadata-tags.h *** gcc-10.3.0/gcc/objc/objc-next-metadata-tags.h Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/objc/objc-next-metadata-tags.h Tue Jun 28 08:54:28 2022 *************** enum objc_runtime_tree_index *** 79,84 **** --- 79,86 ---- OCTI_RT_META_MAX }; + extern GTY(()) tree objc_rt_trees[OCTI_RT_META_MAX]; + /* Tags for the META data so that the backend can put them in the correct sections for targets/runtimes (Darwin/NeXT) that require this. This information also survives LTO - which might produce mixed language diff -Nrcpad gcc-10.3.0/gcc/objc/objc-next-runtime-abi-01.c gcc-10.4.0/gcc/objc/objc-next-runtime-abi-01.c *** gcc-10.3.0/gcc/objc/objc-next-runtime-abi-01.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/objc/objc-next-runtime-abi-01.c Tue Jun 28 08:54:28 2022 *************** along with GCC; see the file COPYING3. *** 54,59 **** --- 54,60 ---- #include "objc-runtime-hooks.h" #include "objc-runtime-shared-support.h" + #include "objc-next-metadata-tags.h" #include "objc-encoding.h" /* NeXT ABI 0 and 1 private definitions. */ *************** along with GCC; see the file COPYING3. *** 98,111 **** #define CLS_HAS_CXX_STRUCTORS 0x2000L - /* rt_trees identifiers - shared between NeXT implementations. These - allow the FE to tag meta-data in a manner that survives LTO and can - be used when the runtime requires that certain meta-data items - appear in particular named sections. */ - - #include "objc-next-metadata-tags.h" - extern GTY(()) tree objc_rt_trees[OCTI_RT_META_MAX]; - static void next_runtime_01_initialize (void); static tree next_runtime_abi_01_super_superclassfield_id (void); --- 99,104 ---- diff -Nrcpad gcc-10.3.0/gcc/objc/objc-next-runtime-abi-02.c gcc-10.4.0/gcc/objc/objc-next-runtime-abi-02.c *** gcc-10.3.0/gcc/objc/objc-next-runtime-abi-02.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/objc/objc-next-runtime-abi-02.c Tue Jun 28 08:54:28 2022 *************** along with GCC; see the file COPYING3. *** 54,59 **** --- 54,60 ---- #include "objc-runtime-hooks.h" #include "objc-runtime-shared-support.h" + #include "objc-next-metadata-tags.h" #include "objc-encoding.h" /* ABI 2 Private definitions. */ *************** enum objc_v2_tree_index *** 179,192 **** #define objc_rethrow_exception_decl \ objc_v2_global_trees[OCTI_V2_RETHROW_DECL] - /* rt_trees identifiers - shared between NeXT implementations. These allow - the FE to tag meta-data in a manner that survives LTO and can be used when - the runtime requires that certain meta-data items appear in particular - named sections. */ - - #include "objc-next-metadata-tags.h" - extern GTY(()) tree objc_rt_trees[OCTI_RT_META_MAX]; - /* The OCTI_V2_... enumeration itself is in above. */ static GTY(()) tree objc_v2_global_trees[OCTI_V2_MAX]; --- 180,185 ---- *************** objc_next_runtime_abi_02_init (objc_runt *** 245,251 **** { extern_names = ggc_cleared_vec_alloc (SIZEHASHTABLE); ! if (flag_objc_exceptions && flag_objc_sjlj_exceptions) { inform (UNKNOWN_LOCATION, "%<-fobjc-sjlj-exceptions%> is ignored for " --- 238,244 ---- { 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 **** --- 247,256 ---- 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. */ --- 504,510 ---- 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_category_decl (tree *** 1010,1018 **** { tree decl; char buf[BUFSIZE]; ! snprintf (buf, BUFSIZE, "_OBJC_Category_%s_on_%s", ! IDENTIFIER_POINTER (CLASS_SUPER_NAME (klass)), ! IDENTIFIER_POINTER (CLASS_NAME (klass))); decl = start_var_decl (objc_v2_category_template, buf); OBJCMETA (decl, objc_meta, meta_category); return decl; --- 1007,1015 ---- { tree decl; char buf[BUFSIZE]; ! snprintf (buf, BUFSIZE, "_OBJC_Category_%s_%s", ! IDENTIFIER_POINTER (CLASS_NAME (klass)), ! IDENTIFIER_POINTER (CLASS_SUPER_NAME (klass))); decl = start_var_decl (objc_v2_category_template, buf); OBJCMETA (decl, objc_meta, meta_category); return decl; *************** next_runtime_abi_02_protocol_decl (tree *** 1035,1040 **** --- 1032,1038 ---- 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 *** 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); --- 1673,1680 ---- 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; --- 1687,1697 ---- 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; --- 1733,1748 ---- /* 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); --- 1784,1791 ---- 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; --- 1798,1807 ---- 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; --- 1844,1855 ---- ? 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); } } --- 2114,2121 ---- 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_protocol_list_address_table (vo *** 2324,2329 **** --- 2317,2323 ---- expr = convert (objc_protocol_type, build_fold_addr_expr (ref->refdecl)); OBJCMETA (decl, objc_meta, meta_label_protocollist); finish_var_decl (decl, expr); + DECL_PRESERVE_P (decl) = 1; } /* TODO: delete the vec. */ diff -Nrcpad gcc-10.3.0/gcc/objc/objc-runtime-shared-support.c gcc-10.4.0/gcc/objc/objc-runtime-shared-support.c *** gcc-10.3.0/gcc/objc/objc-runtime-shared-support.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/objc/objc-runtime-shared-support.c Tue Jun 28 08:54:28 2022 *************** along with GCC; see the file COPYING3. *** 44,59 **** #include "objc-runtime-hooks.h" #include "objc-runtime-shared-support.h" - #include "objc-encoding.h" - - /* rt_trees identifiers - shared between NeXT implementations. These allow - the FE to tag meta-data in a manner that survives LTO and can be used when - the runtime requires that certain meta-data items appear in particular - named sections. */ #include "objc-next-metadata-tags.h" ! extern GTY(()) tree objc_rt_trees[OCTI_RT_META_MAX]; /* Rather than repeatedly looking up the identifiers, we save them here. */ tree objc_rt_trees[OCTI_RT_META_MAX]; /* For building an objc struct. These might not be used when this file --- 44,54 ---- #include "objc-runtime-hooks.h" #include "objc-runtime-shared-support.h" #include "objc-next-metadata-tags.h" ! #include "objc-encoding.h" /* Rather than repeatedly looking up the identifiers, we save them here. */ + extern GTY(()) tree objc_rt_trees[OCTI_RT_META_MAX]; tree objc_rt_trees[OCTI_RT_META_MAX]; /* For building an objc struct. These might not be used when this file diff -Nrcpad gcc-10.3.0/gcc/objcp/ChangeLog gcc-10.4.0/gcc/objcp/ChangeLog *** gcc-10.3.0/gcc/objcp/ChangeLog Thu Apr 8 11:56:48 2021 --- gcc-10.4.0/gcc/objcp/ChangeLog Tue Jun 28 08:54:28 2022 *************** *** 1,3 **** --- 1,7 ---- + 2022-06-28 Release Manager + + * GCC 10.4.0 released. + 2021-04-08 Release Manager * GCC 10.3.0 released. diff -Nrcpad gcc-10.3.0/gcc/omp-expand.c gcc-10.4.0/gcc/omp-expand.c *** gcc-10.3.0/gcc/omp-expand.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/omp-expand.c Tue Jun 28 08:54:28 2022 *************** struct oacc_collapse *** 1548,1555 **** static tree expand_oacc_collapse_init (const struct omp_for_data *fd, gimple_stmt_iterator *gsi, ! oacc_collapse *counts, tree bound_type, ! location_t loc) { tree tiling = fd->tiling; tree total = build_int_cst (bound_type, 1); --- 1548,1555 ---- static tree expand_oacc_collapse_init (const struct omp_for_data *fd, gimple_stmt_iterator *gsi, ! oacc_collapse *counts, tree diff_type, ! tree bound_type, location_t loc) { tree tiling = fd->tiling; tree total = build_int_cst (bound_type, 1); *************** expand_oacc_collapse_init (const struct *** 1566,1582 **** const omp_for_data_loop *loop = &fd->loops[ix]; tree iter_type = TREE_TYPE (loop->v); - tree diff_type = iter_type; tree plus_type = iter_type; ! gcc_assert (loop->cond_code == fd->loop.cond_code); if (POINTER_TYPE_P (iter_type)) plus_type = sizetype; - if (POINTER_TYPE_P (diff_type) || TYPE_UNSIGNED (diff_type)) - diff_type = signed_type_for (diff_type); - if (TYPE_PRECISION (diff_type) < TYPE_PRECISION (integer_type_node)) - diff_type = integer_type_node; if (tiling) { --- 1566,1577 ---- const omp_for_data_loop *loop = &fd->loops[ix]; tree iter_type = TREE_TYPE (loop->v); tree plus_type = iter_type; ! gcc_assert (loop->cond_code == LT_EXPR || loop->cond_code == GT_EXPR); if (POINTER_TYPE_P (iter_type)) plus_type = sizetype; if (tiling) { *************** expand_oacc_collapse_init (const struct *** 1664,1670 **** static void expand_oacc_collapse_vars (const struct omp_for_data *fd, bool inner, gimple_stmt_iterator *gsi, ! const oacc_collapse *counts, tree ivar) { tree ivar_type = TREE_TYPE (ivar); --- 1659,1666 ---- static void expand_oacc_collapse_vars (const struct omp_for_data *fd, bool inner, gimple_stmt_iterator *gsi, ! const oacc_collapse *counts, tree ivar, ! tree diff_type) { tree ivar_type = TREE_TYPE (ivar); *************** expand_oacc_collapse_vars (const struct *** 1676,1682 **** const oacc_collapse *collapse = &counts[ix]; tree v = inner ? loop->v : collapse->outer; tree iter_type = TREE_TYPE (v); - tree diff_type = TREE_TYPE (collapse->step); tree plus_type = iter_type; enum tree_code plus_code = PLUS_EXPR; tree expr; --- 1672,1677 ---- *************** expand_oacc_collapse_vars (const struct *** 1698,1704 **** } expr = fold_build2 (MULT_EXPR, diff_type, fold_convert (diff_type, expr), ! collapse->step); expr = fold_build2 (plus_code, iter_type, inner ? collapse->outer : collapse->base, fold_convert (plus_type, expr)); --- 1693,1699 ---- } expr = fold_build2 (MULT_EXPR, diff_type, fold_convert (diff_type, expr), ! fold_convert (diff_type, collapse->step)); expr = fold_build2 (plus_code, iter_type, inner ? collapse->outer : collapse->base, fold_convert (plus_type, expr)); *************** expand_oacc_for (struct omp_region *regi *** 6039,6044 **** --- 6034,6045 ---- plus_code = POINTER_PLUS_EXPR; plus_type = sizetype; } + for (int ix = fd->collapse; ix--;) + { + tree diff_type2 = TREE_TYPE (fd->loops[ix].step); + if (TYPE_PRECISION (diff_type) < TYPE_PRECISION (diff_type2)) + diff_type = diff_type2; + } if (POINTER_TYPE_P (diff_type) || TYPE_UNSIGNED (diff_type)) diff_type = signed_type_for (diff_type); if (TYPE_PRECISION (diff_type) < TYPE_PRECISION (integer_type_node)) *************** expand_oacc_for (struct omp_region *regi *** 6122,6128 **** { gcc_assert (!gimple_in_ssa_p (cfun) && up); counts = XALLOCAVEC (struct oacc_collapse, fd->collapse); ! tree total = expand_oacc_collapse_init (fd, &gsi, counts, TREE_TYPE (fd->loop.n2), loc); if (SSA_VAR_P (fd->loop.n2)) --- 6123,6129 ---- { gcc_assert (!gimple_in_ssa_p (cfun) && up); counts = XALLOCAVEC (struct oacc_collapse, fd->collapse); ! tree total = expand_oacc_collapse_init (fd, &gsi, counts, diff_type, TREE_TYPE (fd->loop.n2), loc); if (SSA_VAR_P (fd->loop.n2)) *************** expand_oacc_for (struct omp_region *regi *** 6284,6290 **** gsi_insert_before (&gsi, ass, GSI_SAME_STMT); if (fd->collapse > 1 || fd->tiling) ! expand_oacc_collapse_vars (fd, false, &gsi, counts, v); if (fd->tiling) { --- 6285,6291 ---- gsi_insert_before (&gsi, ass, GSI_SAME_STMT); if (fd->collapse > 1 || fd->tiling) ! expand_oacc_collapse_vars (fd, false, &gsi, counts, v, diff_type); if (fd->tiling) { *************** expand_oacc_for (struct omp_region *regi *** 6354,6360 **** /* Initialize the user's loop vars. */ gsi = gsi_start_bb (elem_body_bb); ! expand_oacc_collapse_vars (fd, true, &gsi, counts, e_offset); } } --- 6355,6362 ---- /* Initialize the user's loop vars. */ gsi = gsi_start_bb (elem_body_bb); ! expand_oacc_collapse_vars (fd, true, &gsi, counts, e_offset, ! diff_type); } } diff -Nrcpad gcc-10.3.0/gcc/omp-general.c gcc-10.4.0/gcc/omp-general.c *** gcc-10.3.0/gcc/omp-general.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/omp-general.c Tue Jun 28 08:54:28 2022 *************** omp_context_selector_matches (tree ctx) *** 932,947 **** --- 932,953 ---- continue; if (!strcmp (prop, "host")) { + #ifdef ACCEL_COMPILER + return 0; + #else if (omp_maybe_offloaded ()) ret = -1; continue; + #endif } if (!strcmp (prop, "nohost")) { + #ifndef ACCEL_COMPILER if (omp_maybe_offloaded ()) ret = -1; else return 0; + #endif continue; } int r = 0; diff -Nrcpad gcc-10.3.0/gcc/omp-low.c gcc-10.4.0/gcc/omp-low.c *** gcc-10.3.0/gcc/omp-low.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/omp-low.c Tue Jun 28 08:54:28 2022 *************** static int target_nesting_level; *** 177,182 **** --- 177,183 ---- static bitmap task_shared_vars; static bitmap global_nonaddressable_vars; static vec taskreg_contexts; + static vec task_cpyfns; static void scan_omp (gimple_seq *, omp_context *); static tree scan_omp_1_op (tree *, int *, void *); *************** delete_omp_context (splay_tree_value val *** 1028,1036 **** DECL_ABSTRACT_ORIGIN (t) = NULL; } - if (is_task_ctx (ctx)) - finalize_task_copyfn (as_a (ctx->stmt)); - if (ctx->task_reduction_map) { ctx->task_reductions.release (); --- 1029,1034 ---- *************** lower_rec_input_clauses (tree clauses, g *** 6012,6017 **** --- 6010,6017 ---- if (code == MINUS_EXPR) code = PLUS_EXPR; + bool is_truth_op + = (code == TRUTH_ANDIF_EXPR || code == TRUTH_ORIF_EXPR); tree new_vard = new_var; if (is_simd && omp_is_reference (var)) { *************** lower_rec_input_clauses (tree clauses, g *** 6060,6066 **** x = build2 (code, TREE_TYPE (ivar), ivar, x); gimplify_assign (ivar, x, &llist[2]); } ! x = build2 (code, TREE_TYPE (ref), ref, ivar); ref = build_outer_var_ref (var, ctx); gimplify_assign (ref, x, &llist[1]); --- 6060,6080 ---- x = build2 (code, TREE_TYPE (ivar), ivar, x); gimplify_assign (ivar, x, &llist[2]); } ! tree ivar2 = ivar; ! tree ref2 = ref; ! if (is_truth_op) ! { ! tree zero = build_zero_cst (TREE_TYPE (ivar)); ! ivar2 = fold_build2_loc (clause_loc, NE_EXPR, ! boolean_type_node, ivar, ! zero); ! ref2 = fold_build2_loc (clause_loc, NE_EXPR, ! boolean_type_node, ref, ! zero); ! } ! x = build2 (code, TREE_TYPE (ref), ref2, ivar2); ! if (is_truth_op) ! x = fold_convert (TREE_TYPE (ref), x); ref = build_outer_var_ref (var, ctx); gimplify_assign (ref, x, &llist[1]); *************** lower_rec_input_clauses (tree clauses, g *** 6076,6083 **** if (is_simd) { tree ref = build_outer_var_ref (var, ctx); ! ! x = build2 (code, TREE_TYPE (ref), ref, new_var); ref = build_outer_var_ref (var, ctx); gimplify_assign (ref, x, dlist); } --- 6090,6111 ---- if (is_simd) { tree ref = build_outer_var_ref (var, ctx); ! tree new_var2 = new_var; ! tree ref2 = ref; ! if (is_truth_op) ! { ! tree zero = build_zero_cst (TREE_TYPE (new_var)); ! new_var2 ! = fold_build2_loc (clause_loc, NE_EXPR, ! boolean_type_node, new_var, ! zero); ! ref2 = fold_build2_loc (clause_loc, NE_EXPR, ! boolean_type_node, ref, ! zero); ! } ! x = build2 (code, TREE_TYPE (ref2), ref2, new_var2); ! if (is_truth_op) ! x = fold_convert (TREE_TYPE (new_var), x); ref = build_outer_var_ref (var, ctx); gimplify_assign (ref, x, dlist); } *************** lower_reduction_clauses (tree clauses, g *** 7013,7025 **** if (code == MINUS_EXPR) code = PLUS_EXPR; if (count == 1) { tree addr = build_fold_addr_expr_loc (clause_loc, ref); addr = save_expr (addr); ref = build1 (INDIRECT_REF, TREE_TYPE (TREE_TYPE (addr)), addr); ! x = fold_build2_loc (clause_loc, code, TREE_TYPE (ref), ref, new_var); x = build2 (OMP_ATOMIC, void_type_node, addr, x); OMP_ATOMIC_MEMORY_ORDER (x) = OMP_MEMORY_ORDER_RELAXED; gimplify_and_add (x, stmt_seqp); --- 7041,7067 ---- if (code == MINUS_EXPR) code = PLUS_EXPR; + bool is_truth_op = (code == TRUTH_ANDIF_EXPR || code == TRUTH_ORIF_EXPR); if (count == 1) { tree addr = build_fold_addr_expr_loc (clause_loc, ref); addr = save_expr (addr); ref = build1 (INDIRECT_REF, TREE_TYPE (TREE_TYPE (addr)), addr); ! tree new_var2 = new_var; ! tree ref2 = ref; ! if (is_truth_op) ! { ! tree zero = build_zero_cst (TREE_TYPE (new_var)); ! new_var2 = fold_build2_loc (clause_loc, NE_EXPR, ! boolean_type_node, new_var, zero); ! ref2 = fold_build2_loc (clause_loc, NE_EXPR, boolean_type_node, ! ref, zero); ! } ! x = fold_build2_loc (clause_loc, code, TREE_TYPE (new_var2), ref2, ! new_var2); ! if (is_truth_op) ! x = fold_convert (TREE_TYPE (new_var), x); x = build2 (OMP_ATOMIC, void_type_node, addr, x); OMP_ATOMIC_MEMORY_ORDER (x) = OMP_MEMORY_ORDER_RELAXED; gimplify_and_add (x, stmt_seqp); *************** lower_reduction_clauses (tree clauses, g *** 7124,7130 **** } else { ! x = build2 (code, TREE_TYPE (out), out, priv); out = unshare_expr (out); gimplify_assign (out, x, &sub_seq); } --- 7166,7184 ---- } else { ! tree out2 = out; ! tree priv2 = priv; ! if (is_truth_op) ! { ! tree zero = build_zero_cst (TREE_TYPE (out)); ! out2 = fold_build2_loc (clause_loc, NE_EXPR, ! boolean_type_node, out, zero); ! priv2 = fold_build2_loc (clause_loc, NE_EXPR, ! boolean_type_node, priv, zero); ! } ! x = build2 (code, TREE_TYPE (out2), out2, priv2); ! if (is_truth_op) ! x = fold_convert (TREE_TYPE (out), x); out = unshare_expr (out); gimplify_assign (out, x, &sub_seq); } *************** lower_reduction_clauses (tree clauses, g *** 7158,7164 **** } else { ! x = build2 (code, TREE_TYPE (ref), ref, new_var); ref = build_outer_var_ref (var, ctx); gimplify_assign (ref, x, &sub_seq); } --- 7212,7230 ---- } else { ! tree new_var2 = new_var; ! tree ref2 = ref; ! if (is_truth_op) ! { ! tree zero = build_zero_cst (TREE_TYPE (new_var)); ! new_var2 = fold_build2_loc (clause_loc, NE_EXPR, ! boolean_type_node, new_var, zero); ! ref2 = fold_build2_loc (clause_loc, NE_EXPR, boolean_type_node, ! ref, zero); ! } ! x = build2 (code, TREE_TYPE (ref), ref2, new_var2); ! if (is_truth_op) ! x = fold_convert (TREE_TYPE (new_var), x); ref = build_outer_var_ref (var, ctx); gimplify_assign (ref, x, &sub_seq); } *************** lower_omp_task_reductions (omp_context * *** 8295,8301 **** tree num_thr_sz = create_tmp_var (size_type_node); tree lab1 = create_artificial_label (UNKNOWN_LOCATION); tree lab2 = create_artificial_label (UNKNOWN_LOCATION); ! tree lab3 = NULL_TREE; gimple *g; if (code == OMP_FOR || code == OMP_SECTIONS) { --- 8361,8367 ---- tree num_thr_sz = create_tmp_var (size_type_node); tree lab1 = create_artificial_label (UNKNOWN_LOCATION); tree lab2 = create_artificial_label (UNKNOWN_LOCATION); ! tree lab3 = NULL_TREE, lab7 = NULL_TREE; gimple *g; if (code == OMP_FOR || code == OMP_SECTIONS) { *************** lower_omp_task_reductions (omp_context * *** 8360,8365 **** --- 8426,8439 ---- NULL_TREE, NULL_TREE); tree data = create_tmp_var (pointer_sized_int_node); gimple_seq_add_stmt (end, gimple_build_assign (data, t)); + if (code == OMP_TASKLOOP) + { + lab7 = create_artificial_label (UNKNOWN_LOCATION); + g = gimple_build_cond (NE_EXPR, data, + build_zero_cst (pointer_sized_int_node), + lab1, lab7); + gimple_seq_add_stmt (end, g); + } gimple_seq_add_stmt (end, gimple_build_label (lab1)); tree ptr; if (TREE_CODE (TYPE_SIZE_UNIT (record_type)) == INTEGER_CST) *************** lower_omp_task_reductions (omp_context * *** 8723,8728 **** --- 8797,8804 ---- g = gimple_build_call (t, 1, build_fold_addr_expr (avar)); } gimple_seq_add_stmt (end, g); + if (lab7) + gimple_seq_add_stmt (end, gimple_build_label (lab7)); t = build_constructor (atype, NULL); TREE_THIS_VOLATILE (t) = 1; gimple_seq_add_stmt (end, gimple_build_assign (avar, t)); *************** create_task_copyfn (gomp_task *task_stmt *** 10823,10828 **** --- 10899,10905 ---- size_t looptempno = 0; child_fn = gimple_omp_task_copy_fn (task_stmt); + task_cpyfns.safe_push (task_stmt); child_cfun = DECL_STRUCT_FUNCTION (child_fn); gcc_assert (child_cfun->cfg == NULL); DECL_SAVED_TREE (child_fn) = alloc_stmt_list (); *************** lower_omp_regimplify_p (tree *tp, int *w *** 12717,12723 **** tree t = *tp; /* Any variable with DECL_VALUE_EXPR needs to be regimplified. */ ! if (VAR_P (t) && data == NULL && DECL_HAS_VALUE_EXPR_P (t)) return t; if (task_shared_vars --- 12794,12802 ---- tree t = *tp; /* Any variable with DECL_VALUE_EXPR needs to be regimplified. */ ! if ((VAR_P (t) || TREE_CODE (t) == PARM_DECL || TREE_CODE (t) == RESULT_DECL) ! && data == NULL ! && DECL_HAS_VALUE_EXPR_P (t)) return t; if (task_shared_vars *************** execute_lower_omp (void) *** 13121,13126 **** --- 13200,13211 ---- && (TREE_CODE (TREE_TYPE (DECL_ARGUMENTS (current_function_decl))) == POINTER_TYPE)) remove_member_access_dummy_vars (DECL_INITIAL (current_function_decl)); + + gomp_task *task_stmt; + unsigned j; + FOR_EACH_VEC_ELT (task_cpyfns, j, task_stmt) + finalize_task_copyfn (task_stmt); + task_cpyfns.release (); return 0; } diff -Nrcpad gcc-10.3.0/gcc/optabs-tree.c gcc-10.4.0/gcc/optabs-tree.c *** gcc-10.3.0/gcc/optabs-tree.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/optabs-tree.c Tue Jun 28 08:54:28 2022 *************** optab_for_tree_code (enum tree_code code *** 56,72 **** case MULT_HIGHPART_EXPR: return TYPE_UNSIGNED (type) ? umul_highpart_optab : smul_highpart_optab; - case TRUNC_MOD_EXPR: case CEIL_MOD_EXPR: case FLOOR_MOD_EXPR: case ROUND_MOD_EXPR: return TYPE_UNSIGNED (type) ? umod_optab : smod_optab; - case RDIV_EXPR: - case TRUNC_DIV_EXPR: case CEIL_DIV_EXPR: case FLOOR_DIV_EXPR: case ROUND_DIV_EXPR: case EXACT_DIV_EXPR: if (TYPE_SATURATING (type)) return TYPE_UNSIGNED (type) ? usdiv_optab : ssdiv_optab; --- 56,87 ---- case MULT_HIGHPART_EXPR: return TYPE_UNSIGNED (type) ? umul_highpart_optab : smul_highpart_optab; case CEIL_MOD_EXPR: case FLOOR_MOD_EXPR: case ROUND_MOD_EXPR: + /* {s,u}mod_optab implements TRUNC_MOD_EXPR. For scalar modes, + expansion has code to adjust TRUNC_MOD_EXPR into the desired other + modes, but for vector modes it does not. The adjustment code + should be instead emitted in tree-vect-patterns.cc. */ + if (TREE_CODE (type) == VECTOR_TYPE) + return unknown_optab; + /* FALLTHRU */ + case TRUNC_MOD_EXPR: return TYPE_UNSIGNED (type) ? umod_optab : smod_optab; case CEIL_DIV_EXPR: case FLOOR_DIV_EXPR: case ROUND_DIV_EXPR: + /* {,u}{s,u}div_optab implements {TRUNC,EXACT}_DIV_EXPR or RDIV_EXPR. + For scalar modes, expansion has code to adjust TRUNC_DIV_EXPR + into the desired other modes, but for vector modes it does not. + The adjustment code should be instead emitted in + tree-vect-patterns.cc. */ + if (TREE_CODE (type) == VECTOR_TYPE) + return unknown_optab; + /* FALLTHRU */ + case RDIV_EXPR: + case TRUNC_DIV_EXPR: case EXACT_DIV_EXPR: if (TYPE_SATURATING (type)) return TYPE_UNSIGNED (type) ? usdiv_optab : ssdiv_optab; diff -Nrcpad gcc-10.3.0/gcc/optabs.c gcc-10.4.0/gcc/optabs.c *** gcc-10.3.0/gcc/optabs.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/optabs.c Tue Jun 28 08:54:28 2022 *************** prepare_cmp_insn (rtx x, rtx y, enum rtx *** 3891,3902 **** /* If we are optimizing, force expensive constants into a register. */ if (CONSTANT_P (x) && optimize && (rtx_cost (x, mode, COMPARE, 0, optimize_insn_for_speed_p ()) ! > COSTS_N_INSNS (1))) x = force_reg (mode, x); if (CONSTANT_P (y) && optimize && (rtx_cost (y, mode, COMPARE, 1, optimize_insn_for_speed_p ()) ! > COSTS_N_INSNS (1))) y = force_reg (mode, y); #if HAVE_cc0 --- 3891,3904 ---- /* If we are optimizing, force expensive constants into a register. */ if (CONSTANT_P (x) && optimize && (rtx_cost (x, mode, COMPARE, 0, optimize_insn_for_speed_p ()) ! > COSTS_N_INSNS (1)) ! && can_create_pseudo_p ()) x = force_reg (mode, x); if (CONSTANT_P (y) && optimize && (rtx_cost (y, mode, COMPARE, 1, optimize_insn_for_speed_p ()) ! > COSTS_N_INSNS (1)) ! && can_create_pseudo_p ()) y = force_reg (mode, y); #if HAVE_cc0 *************** prepare_cmp_insn (rtx x, rtx y, enum rtx *** 3972,3977 **** --- 3974,3981 ---- compare and branch in different basic blocks. */ if (cfun->can_throw_non_call_exceptions) { + if (!can_create_pseudo_p () && (may_trap_p (x) || may_trap_p (y))) + goto fail; if (may_trap_p (x)) x = copy_to_reg (x); if (may_trap_p (y)) diff -Nrcpad gcc-10.3.0/gcc/po/ChangeLog gcc-10.4.0/gcc/po/ChangeLog *** gcc-10.3.0/gcc/po/ChangeLog Thu Apr 8 11:56:48 2021 --- gcc-10.4.0/gcc/po/ChangeLog Tue Jun 28 08:54:28 2022 *************** *** 1,3 **** --- 1,7 ---- + 2022-06-28 Release Manager + + * GCC 10.4.0 released. + 2021-04-08 Release Manager * GCC 10.3.0 released. diff -Nrcpad gcc-10.3.0/gcc/postreload.c gcc-10.4.0/gcc/postreload.c *** gcc-10.3.0/gcc/postreload.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/postreload.c Tue Jun 28 08:54:28 2022 *************** move2add_valid_value_p (int regno, scala *** 1700,1706 **** { scalar_int_mode old_mode; if (!is_a (reg_mode[regno], &old_mode) ! || !MODES_OK_FOR_MOVE2ADD (mode, old_mode)) return false; /* The value loaded into regno in reg_mode[regno] is also valid in mode after truncation only if (REG:mode regno) is the lowpart of --- 1700,1707 ---- { scalar_int_mode old_mode; if (!is_a (reg_mode[regno], &old_mode) ! || !MODES_OK_FOR_MOVE2ADD (mode, old_mode) ! || !REG_CAN_CHANGE_MODE_P (regno, old_mode, mode)) return false; /* The value loaded into regno in reg_mode[regno] is also valid in mode after truncation only if (REG:mode regno) is the lowpart of diff -Nrcpad gcc-10.3.0/gcc/regcprop.c gcc-10.4.0/gcc/regcprop.c *** gcc-10.3.0/gcc/regcprop.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/regcprop.c Tue Jun 28 08:54:28 2022 *************** copy_value (rtx dest, rtx src, struct va *** 358,363 **** --- 358,384 ---- else if (sn > hard_regno_nregs (sr, vd->e[sr].mode)) return; + /* If a narrower value is copied using wider mode, the upper bits + are undefined (could be e.g. a former paradoxical subreg). Signal + in that case we've only copied value using the narrower mode. + Consider: + (set (reg:DI r14) (mem:DI ...)) + (set (reg:QI si) (reg:QI r14)) + (set (reg:DI bp) (reg:DI r14)) + (set (reg:DI r14) (const_int ...)) + (set (reg:DI dx) (reg:DI si)) + (set (reg:DI si) (const_int ...)) + (set (reg:DI dx) (reg:DI bp)) + The last set is not redundant, while the low 8 bits of dx are already + equal to low 8 bits of bp, the other bits are undefined. */ + else if (partial_subreg_p (vd->e[sr].mode, GET_MODE (src))) + { + if (!REG_CAN_CHANGE_MODE_P (sr, GET_MODE (src), vd->e[sr].mode) + || !REG_CAN_CHANGE_MODE_P (dr, vd->e[sr].mode, GET_MODE (dest))) + return; + set_value_regno (dr, vd->e[sr].mode, vd); + } + /* Link DR at the end of the value chain used by SR. */ vd->e[dr].oldest_regno = vd->e[sr].oldest_regno; diff -Nrcpad gcc-10.3.0/gcc/reload.c gcc-10.4.0/gcc/reload.c *** gcc-10.3.0/gcc/reload.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/reload.c Tue Jun 28 08:54:28 2022 *************** operands_match_p (rtx x, rtx y) *** 2291,2296 **** --- 2291,2301 ---- CASE_CONST_UNIQUE: return 0; + case CONST_VECTOR: + if (!same_vector_encodings_p (x, y)) + return false; + break; + case LABEL_REF: return label_ref_label (x) == label_ref_label (y); case SYMBOL_REF: diff -Nrcpad gcc-10.3.0/gcc/rtl.c gcc-10.4.0/gcc/rtl.c *** gcc-10.3.0/gcc/rtl.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/rtl.c Tue Jun 28 08:54:28 2022 *************** rtx_equal_p_cb (const_rtx x, const_rtx y *** 466,471 **** --- 466,476 ---- CASE_CONST_UNIQUE: return 0; + case CONST_VECTOR: + if (!same_vector_encodings_p (x, y)) + return false; + break; + case DEBUG_IMPLICIT_PTR: return DEBUG_IMPLICIT_PTR_DECL (x) == DEBUG_IMPLICIT_PTR_DECL (y); *************** rtx_equal_p (const_rtx x, const_rtx y) *** 608,613 **** --- 613,623 ---- CASE_CONST_UNIQUE: return 0; + case CONST_VECTOR: + if (!same_vector_encodings_p (x, y)) + return false; + break; + case DEBUG_IMPLICIT_PTR: return DEBUG_IMPLICIT_PTR_DECL (x) == DEBUG_IMPLICIT_PTR_DECL (y); *************** classify_insn (rtx x) *** 737,743 **** return CALL_INSN; if (ANY_RETURN_P (x)) return JUMP_INSN; ! if (GET_CODE (x) == ASM_OPERANDS && ASM_OPERANDS_LABEL_VEC (x)) return JUMP_INSN; if (GET_CODE (x) == SET) { --- 747,753 ---- return CALL_INSN; if (ANY_RETURN_P (x)) return JUMP_INSN; ! if (GET_CODE (x) == ASM_OPERANDS && ASM_OPERANDS_LABEL_LENGTH (x)) return JUMP_INSN; if (GET_CODE (x) == SET) { *************** classify_insn (rtx x) *** 766,772 **** if (has_return_p) return JUMP_INSN; if (GET_CODE (XVECEXP (x, 0, 0)) == ASM_OPERANDS ! && ASM_OPERANDS_LABEL_VEC (XVECEXP (x, 0, 0))) return JUMP_INSN; } #ifdef GENERATOR_FILE --- 776,782 ---- if (has_return_p) return JUMP_INSN; if (GET_CODE (XVECEXP (x, 0, 0)) == ASM_OPERANDS ! && ASM_OPERANDS_LABEL_LENGTH (XVECEXP (x, 0, 0))) return JUMP_INSN; } #ifdef GENERATOR_FILE diff -Nrcpad gcc-10.3.0/gcc/rtl.h gcc-10.4.0/gcc/rtl.h *** gcc-10.3.0/gcc/rtl.h Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/rtl.h Tue Jun 28 08:54:28 2022 *************** vec_series_p (const_rtx x, rtx *base_out *** 3087,3092 **** --- 3087,3109 ---- return const_vec_series_p (x, base_out, step_out); } + /* Return true if CONST_VECTORs X and Y, which are known to have the same mode, + also have the same encoding. This means that they are equal whenever their + operands are equal. */ + + inline bool + same_vector_encodings_p (const_rtx x, const_rtx y) + { + /* Don't be fussy about the encoding of constant-length vectors, + since XVECEXP (X, 0) and XVECEXP (Y, 0) list all the elements anyway. */ + if (poly_uint64 (CONST_VECTOR_NUNITS (x)).is_constant ()) + return true; + + return (CONST_VECTOR_NPATTERNS (x) == CONST_VECTOR_NPATTERNS (y) + && (CONST_VECTOR_NELTS_PER_PATTERN (x) + == CONST_VECTOR_NELTS_PER_PATTERN (y))); + } + /* Return the unpromoted (outer) mode of SUBREG_PROMOTED_VAR_P subreg X. */ inline scalar_int_mode diff -Nrcpad gcc-10.3.0/gcc/rtlanal.c gcc-10.4.0/gcc/rtlanal.c *** gcc-10.3.0/gcc/rtlanal.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/rtlanal.c Tue Jun 28 08:54:28 2022 *************** rtx_addr_can_trap_p_1 (const_rtx x, poly *** 463,474 **** machine_mode mode, bool unaligned_mems) { enum rtx_code code = GET_CODE (x); ! gcc_checking_assert (mode == BLKmode || known_size_p (size)); poly_int64 const_x1; /* The offset must be a multiple of the mode size if we are considering unaligned memory references on strict alignment machines. */ ! if (STRICT_ALIGNMENT && unaligned_mems && mode != BLKmode) { poly_int64 actual_offset = offset; --- 463,479 ---- machine_mode mode, bool unaligned_mems) { enum rtx_code code = GET_CODE (x); ! gcc_checking_assert (mode == BLKmode ! || mode == VOIDmode ! || known_size_p (size)); poly_int64 const_x1; /* The offset must be a multiple of the mode size if we are considering unaligned memory references on strict alignment machines. */ ! if (STRICT_ALIGNMENT ! && unaligned_mems ! && mode != BLKmode ! && mode != VOIDmode) { poly_int64 actual_offset = offset; *************** replace_rtx (rtx x, rtx from, rtx to, bo *** 3061,3067 **** { rtx new_rtx = replace_rtx (SUBREG_REG (x), from, to, all_regs); ! if (CONST_INT_P (new_rtx)) { x = simplify_subreg (GET_MODE (x), new_rtx, GET_MODE (SUBREG_REG (x)), --- 3066,3072 ---- { rtx new_rtx = replace_rtx (SUBREG_REG (x), from, to, all_regs); ! if (CONST_SCALAR_INT_P (new_rtx)) { x = simplify_subreg (GET_MODE (x), new_rtx, GET_MODE (SUBREG_REG (x)), *************** replace_rtx (rtx x, rtx from, rtx to, bo *** 3077,3083 **** { rtx new_rtx = replace_rtx (XEXP (x, 0), from, to, all_regs); ! if (CONST_INT_P (new_rtx)) { x = simplify_unary_operation (ZERO_EXTEND, GET_MODE (x), new_rtx, GET_MODE (XEXP (x, 0))); --- 3082,3088 ---- { rtx new_rtx = replace_rtx (XEXP (x, 0), from, to, all_regs); ! if (CONST_SCALAR_INT_P (new_rtx)) { x = simplify_unary_operation (ZERO_EXTEND, GET_MODE (x), new_rtx, GET_MODE (XEXP (x, 0))); diff -Nrcpad gcc-10.3.0/gcc/rtx-vector-builder.c gcc-10.4.0/gcc/rtx-vector-builder.c *** gcc-10.3.0/gcc/rtx-vector-builder.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/rtx-vector-builder.c Tue Jun 28 08:54:28 2022 *************** rtx_vector_builder::build (rtvec v) *** 46,56 **** rtx rtx_vector_builder::apply_step (rtx base, unsigned int factor, ! const wide_int &step) const { scalar_int_mode int_mode = as_a (GET_MODE_INNER (m_mode)); ! return immed_wide_int_const (wi::add (rtx_mode_t (base, int_mode), ! factor * step), int_mode); } --- 46,56 ---- rtx rtx_vector_builder::apply_step (rtx base, unsigned int factor, ! const poly_wide_int &step) const { scalar_int_mode int_mode = as_a (GET_MODE_INNER (m_mode)); ! return immed_wide_int_const (wi::to_poly_wide (base, int_mode) ! + factor * step, int_mode); } diff -Nrcpad gcc-10.3.0/gcc/rtx-vector-builder.h gcc-10.4.0/gcc/rtx-vector-builder.h *** gcc-10.3.0/gcc/rtx-vector-builder.h Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/rtx-vector-builder.h Tue Jun 28 08:54:28 2022 *************** private: *** 44,51 **** bool equal_p (rtx, rtx) const; bool allow_steps_p () const; bool integral_p (rtx) const; ! wide_int step (rtx, rtx) const; ! rtx apply_step (rtx, unsigned int, const wide_int &) const; bool can_elide_p (rtx) const { return true; } void note_representative (rtx *, rtx) {} --- 44,51 ---- bool equal_p (rtx, rtx) const; bool allow_steps_p () const; bool integral_p (rtx) const; ! poly_wide_int step (rtx, rtx) const; ! rtx apply_step (rtx, unsigned int, const poly_wide_int &) const; bool can_elide_p (rtx) const { return true; } void note_representative (rtx *, rtx) {} *************** rtx_vector_builder::integral_p (rtx elt) *** 115,125 **** /* Return the value of element ELT2 minus the value of element ELT1. Both elements are known to be CONST_SCALAR_INT_Ps. */ ! inline wide_int rtx_vector_builder::step (rtx elt1, rtx elt2) const { ! return wi::sub (rtx_mode_t (elt2, GET_MODE_INNER (m_mode)), ! rtx_mode_t (elt1, GET_MODE_INNER (m_mode))); } #endif --- 115,125 ---- /* Return the value of element ELT2 minus the value of element ELT1. Both elements are known to be CONST_SCALAR_INT_Ps. */ ! inline poly_wide_int rtx_vector_builder::step (rtx elt1, rtx elt2) const { ! return (wi::to_poly_wide (elt2, GET_MODE_INNER (m_mode)) ! - wi::to_poly_wide (elt1, GET_MODE_INNER (m_mode))); } #endif diff -Nrcpad gcc-10.3.0/gcc/sanopt.c gcc-10.4.0/gcc/sanopt.c *** gcc-10.3.0/gcc/sanopt.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/sanopt.c Tue Jun 28 08:54:28 2022 *************** maybe_optimize_ubsan_ptr_ifn (sanopt_ctx *** 492,498 **** &unsignedp, &reversep, &volatilep); if ((offset == NULL_TREE || TREE_CODE (offset) == INTEGER_CST) && DECL_P (base) ! && !DECL_REGISTER (base) && pbitpos.is_constant (&bitpos)) { offset_int expr_offset; --- 492,501 ---- &unsignedp, &reversep, &volatilep); if ((offset == NULL_TREE || TREE_CODE (offset) == INTEGER_CST) && DECL_P (base) ! && ((!VAR_P (base) ! && TREE_CODE (base) != PARM_DECL ! && TREE_CODE (base) != RESULT_DECL) ! || !DECL_REGISTER (base)) && pbitpos.is_constant (&bitpos)) { offset_int expr_offset; diff -Nrcpad gcc-10.3.0/gcc/shrink-wrap.c gcc-10.4.0/gcc/shrink-wrap.c *** gcc-10.3.0/gcc/shrink-wrap.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/shrink-wrap.c Tue Jun 28 08:54:28 2022 *************** try_shrink_wrapping (edge *entry_edge, r *** 776,782 **** unsigned max_grow_size = get_uncond_jump_length (); max_grow_size *= param_max_grow_copy_bb_insns; ! while (!vec.is_empty () && pro != entry) { while (pro != entry && !can_get_prologue (pro, prologue_clobbered)) { --- 776,782 ---- unsigned max_grow_size = get_uncond_jump_length (); max_grow_size *= param_max_grow_copy_bb_insns; ! while (pro != entry) { while (pro != entry && !can_get_prologue (pro, prologue_clobbered)) { *************** try_shrink_wrapping (edge *entry_edge, r *** 786,791 **** --- 786,794 ---- vec.quick_push (pro); } + if (vec.is_empty ()) + break; + basic_block bb = vec.pop (); if (!can_dup_for_shrink_wrapping (bb, pro, max_grow_size)) while (!dominated_by_p (CDI_DOMINATORS, bb, pro)) diff -Nrcpad gcc-10.3.0/gcc/simplify-rtx.c gcc-10.4.0/gcc/simplify-rtx.c *** gcc-10.3.0/gcc/simplify-rtx.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/simplify-rtx.c Tue Jun 28 08:54:28 2022 *************** comparison_code_valid_for_mode (enum rtx *** 2261,2266 **** --- 2261,2313 ---- gcc_unreachable (); } } + + /* Canonicalize RES, a scalar const0_rtx/const_true_rtx to the right + false/true value of comparison with MODE where comparison operands + have CMP_MODE. */ + + static rtx + relational_result (machine_mode mode, machine_mode cmp_mode, rtx res) + { + if (SCALAR_FLOAT_MODE_P (mode)) + { + if (res == const0_rtx) + return CONST0_RTX (mode); + #ifdef FLOAT_STORE_FLAG_VALUE + REAL_VALUE_TYPE val = FLOAT_STORE_FLAG_VALUE (mode); + return const_double_from_real_value (val, mode); + #else + return NULL_RTX; + #endif + } + if (VECTOR_MODE_P (mode)) + { + if (res == const0_rtx) + return CONST0_RTX (mode); + #ifdef VECTOR_STORE_FLAG_VALUE + rtx val = VECTOR_STORE_FLAG_VALUE (mode); + if (val == NULL_RTX) + return NULL_RTX; + if (val == const1_rtx) + return CONST1_RTX (mode); + + return gen_const_vec_duplicate (mode, val); + #else + return NULL_RTX; + #endif + } + /* For vector comparison with scalar int result, it is unknown + if the target means here a comparison into an integral bitmask, + or comparison where all comparisons true mean const_true_rtx + whole result, or where any comparisons true mean const_true_rtx + whole result. For const0_rtx all the cases are the same. */ + if (VECTOR_MODE_P (cmp_mode) + && SCALAR_INT_MODE_P (mode) + && res == const_true_rtx) + return NULL_RTX; + + return res; + } /* Simplify a logical operation CODE with result mode MODE, operating on OP0 and OP1, which should be both relational operations. Return 0 if no such *************** simplify_logical_relational_operation (e *** 2295,2301 **** int mask = mask0 | mask1; if (mask == 15) ! return const_true_rtx; code = mask_to_comparison (mask); --- 2342,2348 ---- int mask = mask0 | mask1; if (mask == 15) ! return relational_result (mode, GET_MODE (op0), const_true_rtx); code = mask_to_comparison (mask); *************** simplify_relational_operation (enum rtx_ *** 5074,5124 **** tem = simplify_const_relational_operation (code, cmp_mode, op0, op1); if (tem) ! { ! if (SCALAR_FLOAT_MODE_P (mode)) ! { ! if (tem == const0_rtx) ! return CONST0_RTX (mode); ! #ifdef FLOAT_STORE_FLAG_VALUE ! { ! REAL_VALUE_TYPE val; ! val = FLOAT_STORE_FLAG_VALUE (mode); ! return const_double_from_real_value (val, mode); ! } ! #else ! return NULL_RTX; ! #endif ! } ! if (VECTOR_MODE_P (mode)) ! { ! if (tem == const0_rtx) ! return CONST0_RTX (mode); ! #ifdef VECTOR_STORE_FLAG_VALUE ! { ! rtx val = VECTOR_STORE_FLAG_VALUE (mode); ! if (val == NULL_RTX) ! return NULL_RTX; ! if (val == const1_rtx) ! return CONST1_RTX (mode); ! ! return gen_const_vec_duplicate (mode, val); ! } ! #else ! return NULL_RTX; ! #endif ! } ! /* For vector comparison with scalar int result, it is unknown ! if the target means here a comparison into an integral bitmask, ! or comparison where all comparisons true mean const_true_rtx ! whole result, or where any comparisons true mean const_true_rtx ! whole result. For const0_rtx all the cases are the same. */ ! if (VECTOR_MODE_P (cmp_mode) ! && SCALAR_INT_MODE_P (mode) ! && tem == const_true_rtx) ! return NULL_RTX; ! ! return tem; ! } /* For the following tests, ensure const0_rtx is op1. */ if (swap_commutative_operands_p (op0, op1) --- 5121,5127 ---- tem = simplify_const_relational_operation (code, cmp_mode, op0, op1); if (tem) ! return relational_result (mode, cmp_mode, tem); /* For the following tests, ensure const0_rtx is op1. */ if (swap_commutative_operands_p (op0, op1) diff -Nrcpad gcc-10.3.0/gcc/stor-layout.c gcc-10.4.0/gcc/stor-layout.c *** gcc-10.3.0/gcc/stor-layout.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/stor-layout.c Tue Jun 28 08:54:28 2022 *************** finish_bitfield_representative (tree rep *** 2059,2067 **** bitsize = (bitsize + BITS_PER_UNIT - 1) & ~(BITS_PER_UNIT - 1); /* Now nothing tells us how to pad out bitsize ... */ ! nextf = DECL_CHAIN (field); ! while (nextf && TREE_CODE (nextf) != FIELD_DECL) ! nextf = DECL_CHAIN (nextf); if (nextf) { tree maxsize; --- 2059,2072 ---- bitsize = (bitsize + BITS_PER_UNIT - 1) & ~(BITS_PER_UNIT - 1); /* Now nothing tells us how to pad out bitsize ... */ ! if (TREE_CODE (DECL_CONTEXT (field)) == RECORD_TYPE) ! { ! nextf = DECL_CHAIN (field); ! while (nextf && TREE_CODE (nextf) != FIELD_DECL) ! nextf = DECL_CHAIN (nextf); ! } ! else ! nextf = NULL_TREE; if (nextf) { tree maxsize; *************** finish_bitfield_layout (tree t) *** 2154,2164 **** tree field, prev; tree repr = NULL_TREE; ! /* Unions would be special, for the ease of type-punning optimizations ! we could use the underlying type as hint for the representative ! if the bitfield would fit and the representative would not exceed ! the union in size. */ ! if (TREE_CODE (t) != RECORD_TYPE) return; for (prev = NULL_TREE, field = TYPE_FIELDS (t); --- 2159,2165 ---- tree field, prev; tree repr = NULL_TREE; ! if (TREE_CODE (t) == QUAL_UNION_TYPE) return; for (prev = NULL_TREE, field = TYPE_FIELDS (t); *************** finish_bitfield_layout (tree t) *** 2220,2226 **** if (repr) DECL_BIT_FIELD_REPRESENTATIVE (field) = repr; ! prev = field; } if (repr) --- 2221,2233 ---- if (repr) DECL_BIT_FIELD_REPRESENTATIVE (field) = repr; ! if (TREE_CODE (t) == RECORD_TYPE) ! prev = field; ! else if (repr) ! { ! finish_bitfield_representative (repr, field); ! repr = NULL_TREE; ! } } if (repr) diff -Nrcpad gcc-10.3.0/gcc/target.def gcc-10.4.0/gcc/target.def *** gcc-10.3.0/gcc/target.def Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/target.def Tue Jun 28 08:54:28 2022 *************** collecting constructors and destructors *** 6702,6707 **** --- 6702,6717 ---- It is false if we must use @command{collect2}.", bool, false) + /* True if the target wants DTORs to be run from cxa_atexit. */ + DEFHOOKPOD + (dtors_from_cxa_atexit, + "This value is true if the target wants destructors to be queued to be\n\ + run from __cxa_atexit. If this is the case then, for each priority level,\n\ + a new constructor will be entered that registers the destructors for that\n\ + level with __cxa_atexit (and there will be no destructors emitted).\n\ + It is false the method implied by @code{have_ctors_dtors} is used.", + bool, false) + /* True if thread-local storage is supported. */ DEFHOOKPOD (have_tls, diff -Nrcpad gcc-10.3.0/gcc/testsuite/ChangeLog gcc-10.4.0/gcc/testsuite/ChangeLog *** gcc-10.3.0/gcc/testsuite/ChangeLog Thu Apr 8 11:56:48 2021 --- gcc-10.4.0/gcc/testsuite/ChangeLog Tue Jun 28 08:54:28 2022 *************** *** 1,3 **** --- 1,3207 ---- + 2022-06-28 Release Manager + + * GCC 10.4.0 released. + + 2022-06-20 Uros Bizjak + + Backported from master: + 2022-06-17 UroÅ¡ Bizjak + + PR target/105209 + * gcc.target/alpha/pr105209.c: New test. + + 2022-06-20 Uros Bizjak + + Backported from master: + 2022-06-17 UroÅ¡ Bizjak + + PR target/105970 + * gcc.target/i386/pr105970.c: New test. + + 2022-06-20 Jakub Jelinek + + Backported from master: + 2022-06-18 Jakub Jelinek + + PR middle-end/105998 + * c-c++-common/pr105998.c: New test. + + 2022-06-20 Jan Hubicka + + Backported from master: + 2022-06-14 Jan Hubicka + + * gcc.dg/ipa/pr105739.c: New test. + + 2022-06-20 Jakub Jelinek + + Backported from master: + 2022-05-27 Jakub Jelinek + + PR sanitizer/105729 + * g++.dg/ubsan/pr105729.C: New test. + + 2022-06-15 Jakub Jelinek + + Backported from master: + 2022-05-29 Jakub Jelinek + + PR preprocessor/105732 + * c-c++-common/cpp/va-opt-10.c: New test. + + 2022-06-15 Iain Buclaw + + Backported from master: + 2022-06-15 Iain Buclaw + + * gdc.dg/Wpadded.d: New test. + + 2022-06-15 Richard Biener + + Backported from master: + 2022-05-27 Richard Biener + + PR tree-optimization/105726 + * g++.dg/warn/Warray-bounds-27.C: New testcase. + + 2022-06-14 Jakub Jelinek + + PR rtl-optimization/104637 + * gcc.target/i386/pr104637.c: Don't run on ia32. Add -Wno-div-by-zero + to dg-options. + (foo): Remove extraneous initializer. + + 2022-06-14 Vladimir N. Makarov + + PR rtl-optimization/104637 + * gcc.target/i386/pr104637.c: New. + + 2022-06-13 Marek Polacek + + Backported from master: + 2022-03-08 Marek Polacek + + PR rtl-optimization/104777 + * gcc.dg/torture/tls/pr104777.c: New test. + + 2022-06-09 Iain Sandoe + + Backported from master: + 2021-09-19 Iain Sandoe + + * jit.dg/jit.exp (fixed_local_execute): Amend the match and + exit conditions to cater for more platforms. + * lib/target-supports.exp: Add support for checking that the + jit lib is usable on the target. + + 2022-06-09 Iain Sandoe + + Backported from master: + 2021-08-19 Iain Sandoe + + * jit.dg/harness.h: Include jit-dejagnu.h. + * jit.dg/jit.exp: Use -rdynamic conditionally on target + support, instead of unconditional -Wl,--export-dynamic. + + 2022-05-29 Richard Biener + + Backported from master: + 2022-03-28 Richard Biener + + * gcc.dg/torture/pr100786.c: Add dg-require alias. + + 2022-05-29 Iain Sandoe + + Backported from master: + 2021-03-04 Iain Sandoe + + * lib/prune.exp: Prune useless output caused by a linker bug. + + 2022-05-29 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. + + 2022-05-29 Iain Sandoe + + * gcc.dg/torture/fp-int-convert-timode-3.c: Remove XFAIL. + * gcc.dg/torture/fp-int-convert-timode-4.c: Likewise. + + 2022-05-29 François-Xavier Coudert + + Backported from master: + 2021-12-18 François-Xavier Coudert + + * gcc.dg/darwin-minversion-link.c: Test darwin21. + * obj-c++.dg/cxx-ivars-3.mm: Homogeneize darwin versions. + * obj-c++.dg/objc-gc-3.mm: Homogeneize darwin versions. + * objc.dg/objc-gc-4.m: Homogeneize darwin versions. + + 2022-05-27 Kewen Lin + + Backported from master: + 2022-04-18 Kewen Lin + + PR testsuite/105266 + * gcc.dg/pr105250.c: Skip for powerpc*-*-* and s390*-*-*. + + 2022-05-27 Richard Biener + + Backported from master: + 2022-04-13 Richard Biener + + PR tree-optimization/105250 + * gcc.dg/pr105250.c: New testcase. + + 2022-05-27 Andreas Krebbel + + Backported from master: + 2022-04-07 Andreas Krebbel + + PR target/105147 + * gcc.dg/pr105140.c: Skip for s390*-*-*. + + 2022-05-27 Segher Boessenkool + + Backported from master: + 2022-04-06 Segher Boessenkool + + PR target/105147 + * gcc.dg/pr105140.c: Skip for powerpc*-*-*. + + 2022-05-27 Richard Biener + + Backported from master: + 2022-04-04 Richard Biener + + PR middle-end/105140 + * gcc.dg/pr105140.c: New testcase. + + 2022-05-27 Richard Biener + + Backported from master: + 2022-04-06 Richard Biener + + PR tree-optimization/105163 + * gcc.dg/torture/pr105163.c: New testcase. + + 2022-05-27 Richard Biener + + Backported from master: + 2022-04-06 Richard Biener + + PR tree-optimization/105173 + * gcc.dg/pr105173.c: New testcase. + + 2022-05-25 Jason Merrill + + PR c++/102307 + * g++.dg/cpp1z/constexpr-array2.C: New test. + + 2022-05-25 Jason Merrill + + Revert: + 2022-05-25 Jason Merrill + + PR c++/102629 + * g++.dg/cpp2a/lambda-pack-init7.C: New test. + + 2022-05-16 Harald Anlauf + + Backported from master: + 2022-05-11 Harald Anlauf + Steven G. Kargl + + PR fortran/105230 + * gfortran.dg/pr105230.f90: New test. + + 2022-05-16 Harald Anlauf + + Backported from master: + 2022-03-09 Harald Anlauf + + PR fortran/104849 + * gfortran.dg/pr104849.f90: New test. + + 2022-05-16 Harald Anlauf + + Backported from master: + 2022-04-05 Harald Anlauf + Steven G. Kargl + + PR fortran/105138 + * gfortran.dg/recursive_reference_3.f90: New test. + + 2022-05-16 Sebastian Pop + + PR target/105162 + * gcc.target/aarch64/sync-comp-swap-ool.c: New. + * gcc.target/aarch64/sync-op-acquire-ool.c: New. + * gcc.target/aarch64/sync-op-full-ool.c: New. + * gcc.target/aarch64/target_attr_20.c: Update check. + * gcc.target/aarch64/target_attr_21.c: Same. + + 2022-05-13 Jason Merrill + + PR c++/101078 + * g++.dg/template/access39.C: New test. + + 2022-05-13 Jason Merrill + + PR c++/65211 + * g++.target/i386/vec-tmpl1.C: New test. + + 2022-05-13 Jason Merrill + + PR c++/101698 + * g++.dg/template/conv19.C: New test. + + 2022-05-13 Jason Merrill + + PR c++/101442 + * g++.dg/cpp0x/initlist-nrv1.C: New test. + + 2022-05-13 Jason Merrill + + PR c++/99066 + * g++.dg/cpp0x/extern_template-6.C: New test. + + 2022-05-13 Jason Merrill + + PR c++/91241 + * g++.dg/abi/lambda-defarg1.C: New test. + + 2022-05-13 Jason Merrill + + PR c++/86355 + * g++.dg/cpp0x/alias-decl-variadic2.C: New test. + + 2022-05-12 Jason Merrill + + Revert: + 2022-05-12 Jason Merrill + + PR c++/101767 + * g++.dg/ext/anon-struct10.C: New test. + + 2022-05-12 Jason Merrill + + Revert: + 2022-05-12 Jason Merrill + + PR c++/41723 + * g++.dg/template/friend71.C: New test. + + 2022-05-12 Jason Merrill + + PR c++/104142 + * g++.dg/opt/const7.C: New test. + + 2022-05-12 Jason Merrill + + PR c++/102071 + * g++.dg/cpp1z/aligned-new9.C: New test. + + 2022-05-12 Jason Merrill + + PR c++/100838 + PR c++/105265 + * g++.dg/init/no-elide2.C: New test. + * g++.dg/cpp0x/initlist-new6.C: New test. + + 2022-05-12 Jason Merrill + + PR c++/82980 + * g++.dg/cpp0x/lambda/lambda-current-inst1.C: New test. + + 2022-05-12 Jason Merrill + + PR c++/104646 + * g++.dg/cpp0x/constexpr-fno-elide-ctors1.C: New test. + + 2022-05-12 Jason Merrill + + PR c++/102629 + * g++.dg/cpp2a/lambda-pack-init7.C: New test. + + 2022-05-12 Jason Merrill + + PR c++/59950 + * g++.dg/init/assign2.C: New test. + + 2022-05-12 Jason Merrill + + PR c++/105245 + PR c++/100111 + * g++.dg/cpp1y/constexpr-empty2.C: Add -fno-elide-constructors. + + 2022-05-12 Jason Merrill + + PR c++/101717 + * g++.dg/cpp1y/lambda-generic-this4.C: New test. + + 2022-05-12 Jason Merrill + + PR c++/100608 + * g++.dg/warn/Wshadow-compatible-local-3.C: New test. + + 2022-05-12 Jason Merrill + + PR c++/98249 + * g++.dg/lookup/new3.C: New test. + + 2022-05-12 Jason Merrill + + PR c++/101767 + * g++.dg/ext/anon-struct10.C: New test. + + 2022-05-11 Patrick Palka + + Backported from master: + 2021-07-01 Patrick Palka + + PR c++/101194 + * g++.dg/cpp0x/constexpr-empty16.C: New test. + + 2022-05-10 Jeff Law + + Backported from master: + 2022-04-28 Jeff Law + + * lib/prune.exp (prune_gcc_output): Prune new linker warning. + + 2022-05-10 Tobias Burnus + + Backported from master: + 2021-05-05 Tobias Burnus + + PR testsuite/100422 + * g++.dg/gomp/clause-3.C: Use 'reduction(&:..)' instead of '...(&&:..)'. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-04-27 Jakub Jelinek + + PR sanitizer/105396 + * gcc.dg/asan/pr105396.c: New test. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-04-22 Jakub Jelinek + + PR rtl-optimization/105333 + * gcc.dg/pr105333.c: New test. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-04-19 Jakub Jelinek + + PR target/105257 + * gcc.dg/pr105257.c: New test. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-04-19 Jakub Jelinek + + PR c++/105256 + * g++.dg/cpp0x/pr105256.C: New test. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-04-12 Jakub Jelinek + + PR target/105214 + * gcc.dg/asan/pr105214.c: New test. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-04-12 Jakub Jelinek + + PR rtl-optimization/105211 + * gcc.dg/pr105211.c: New test. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-04-11 Jakub Jelinek + + PR c++/105186 + * c-c++-common/pr105186.c: New test. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-04-08 Jakub Jelinek + + PR tree-optimization/105189 + * g++.dg/torture/pr105189.C: New test. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-04-03 Jakub Jelinek + + PR target/105123 + * gcc.target/i386/pr105123.c: New test. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-03-30 Jakub Jelinek + + PR sanitizer/105093 + * g++.dg/ubsan/pr105093.C: New test. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-03-30 Jakub Jelinek + + PR tree-optimization/105094 + * gcc.dg/pr105094.c: New test. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-03-30 Jakub Jelinek + + PR c++/105061 + * g++.dg/concepts/pr105061.C: New test. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-03-26 Jakub Jelinek + + * c-c++-common/builtin-convertvector-3.c: New test. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-03-24 Jakub Jelinek + + PR c++/104994 + * g++.dg/cpp2a/constexpr-nonlit7.C: New test. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-03-19 Jakub Jelinek + + PR middle-end/104971 + * gcc.target/i386/pr104971.c: New test. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-03-18 Jakub Jelinek + + PR c++/104568 + * g++.dg/cpp2a/constexpr-new22.C: New test. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-03-16 Jakub Jelinek + + PR target/104910 + * gcc.dg/pr104910.c: New test. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-03-15 Jakub Jelinek + + PR rtl-optimization/104814 + * gcc.c-torture/execute/pr104814.c: New test. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-03-09 Jakub Jelinek + + PR c/104711 + * c-c++-common/Wshift-negative-value-1.c: Remove + dg-additional-options, instead in target selectors of each diagnostic + check for exact C++ versions where it should be diagnosed. + * c-c++-common/Wshift-negative-value-2.c: Likewise. + * c-c++-common/Wshift-negative-value-3.c: Likewise. + * c-c++-common/Wshift-negative-value-4.c: Likewise. + * c-c++-common/Wshift-negative-value-7.c: New test. + * c-c++-common/Wshift-negative-value-8.c: New test. + * c-c++-common/Wshift-negative-value-9.c: New test. + * c-c++-common/Wshift-negative-value-10.c: New test. + * c-c++-common/Wshift-overflow-1.c: Remove + dg-additional-options, instead in target selectors of each diagnostic + check for exact C++ versions where it should be diagnosed. + * c-c++-common/Wshift-overflow-2.c: Likewise. + * c-c++-common/Wshift-overflow-5.c: Likewise. + * c-c++-common/Wshift-overflow-6.c: Likewise. + * c-c++-common/Wshift-overflow-7.c: Likewise. + * c-c++-common/Wshift-overflow-8.c: New test. + * c-c++-common/Wshift-overflow-9.c: New test. + * c-c++-common/Wshift-overflow-10.c: New test. + * c-c++-common/Wshift-overflow-11.c: New test. + * c-c++-common/Wshift-overflow-12.c: New test. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-03-08 Jakub Jelinek + + PR c++/104806 + * g++.dg/spellcheck-pr104806.C: New test. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-03-07 Jakub Jelinek + + PR target/104775 + * gcc.target/s390/pr104775.c: New test. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-02-25 Jakub Jelinek + Marc Glisse + + PR tree-optimization/104675 + * gcc.dg/pr104675-3.c : New test. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-02-25 Jakub Jelinek + + PR target/104681 + * g++.dg/opt/pr104681.C: New test. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-02-25 Jakub Jelinek + + PR tree-optimization/104675 + * gcc.dg/pr104675-1.c: New test. + * gcc.dg/pr104675-2.c: New test. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-02-17 Jakub Jelinek + + PR debug/104557 + * gcc.dg/dfp/pr104557.c: New test. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-02-16 Jakub Jelinek + + PR rtl-optimization/104544 + * gcc.dg/pr104544.c: New test. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-02-16 Jakub Jelinek + + PR c/104510 + * gcc.dg/dfp/pr104510.c: New test. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-02-14 Jakub Jelinek + + PR c++/104513 + * g++.dg/cpp1y/constexpr-104513.C: New test. + * g++.dg/cpp2a/constexpr-dtor12.C: New test. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-02-12 Jakub Jelinek + + PR sanitizer/104449 + * gcc.dg/asan/pr104449.c: New test. + * g++.dg/asan/pr104449.C: New test. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-02-12 Jakub Jelinek + + PR target/104502 + * gcc.target/i386/pr104502.c: New test. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-02-11 Jakub Jelinek + + PR c++/104472 + * g++.dg/cpp0x/constexpr-104472.C: New test. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-02-11 Jakub Jelinek + + PR middle-end/104446 + * gcc.target/i386/pr104446.c: New test. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-02-08 Jakub Jelinek + + PR target/102140 + * gcc.dg/pr102140.c: New test. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-02-01 Jakub Jelinek + + PR preprocessor/104147 + * c-c++-common/cpp/pr104147.c: New test. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-01-28 Jakub Jelinek + + PR tree-optimization/104263 + * gcc.dg/pr104263.c: New test. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-01-21 Jakub Jelinek + + PR rtl-optimization/102478 + * gcc.dg/pr102478.c: New test. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-01-19 Jakub Jelinek + + PR middle-end/102860 + * gfortran.dg/pr102860.f90: New test. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-01-18 Jakub Jelinek + + PR c++/104055 + * g++.dg/cpp2a/consteval27.C: New test. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-01-12 Jakub Jelinek + Jason Merrill + + PR c++/103480 + * g++.dg/warn/Wuseless-cast2.C: New test. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-01-11 Jakub Jelinek + + PR c/101537 + PR c/103881 + * c-c++-common/pr101537.c: New test. + * c-c++-common/pr103881.c: New test. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-01-10 Jakub Jelinek + + PR c++/103912 + * g++.dg/cpp2a/consteval26.C: New test. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-01-06 Jakub Jelinek + + PR rtl-optimization/103908 + * gcc.target/i386/pr103908.c: New test. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-12-30 Jakub Jelinek + + PR preprocessor/89971 + * c-c++-common/cpp/va-opt-9.c: New test. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-12-30 Jakub Jelinek + + PR rtl-optimization/103860 + * gcc.dg/pr103860.c: New test. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-12-28 Jakub Jelinek + + PR rtl-optimization/103837 + * gcc.dg/pr103837.c: New test. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-12-14 Jakub Jelinek + + PR c/103587 + * gcc.dg/pr103587.c: New test. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-11-23 Jakub Jelinek + + PR middle-end/102431 + * c-c++-common/gomp/pr102431.c: New test. + * g++.dg/gomp/pr102431.C: New test. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-11-19 Jakub Jelinek + + PR c++/70796 + * g++.dg/cpp1z/eval-order11.C: New test. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-11-15 Jakub Jelinek + + PR target/103205 + * gcc.target/i386/pr103205.c: New test. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-11-11 Jakub Jelinek + + PR debug/101378 + * g++.dg/debug/dwarf2/pr101378.C: New test. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-10-21 Jakub Jelinek + + PR middle-end/64888 + * c-c++-common/ubsan/pr64888.c: New test. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-10-19 Jakub Jelinek + + PR c++/102786 + * g++.dg/cpp2a/constexpr-virtual19.C: New test. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-10-05 Jakub Jelinek + + PR c++/102548 + * g++.target/i386/pr102548.C: New test. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-10-01 Jakub Jelinek + Richard Biener + + PR sanitizer/102515 + * c-c++-common/ubsan/float-div-by-zero-2.c: New test. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-09-28 Jakub Jelinek + + PR target/102498 + * gcc.target/i386/pr102498.c: New test. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-09-15 Jakub Jelinek + + PR c++/88578 + PR c++/102295 + * g++.dg/ext/flexary39.C: New test. + * g++.dg/ext/flexary40.C: New test. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-09-14 Jakub Jelinek + + PR c++/102295 + * g++.target/i386/pr102295.C: New test. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-09-14 Jakub Jelinek + + PR c++/102305 + * g++.dg/cpp0x/pr102305.C: New test. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-09-08 Jakub Jelinek + + PR target/102224 + * gcc.dg/pr102224.c: New test. + * gcc.target/i386/avx-pr102224.c: New test. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-08-23 Jakub Jelinek + + PR debug/101905 + * gcc.dg/guality/pr101905.c: New test. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-07-28 Jakub Jelinek + + PR middle-end/101624 + * gfortran.dg/ubsan/ubsan.exp: New file. + * gfortran.dg/ubsan/pr101624.f90: New test. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-07-23 Jakub Jelinek + + PR rtl-optimization/101562 + * gcc.c-torture/compile/pr101562.c: New test. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-07-21 Jakub Jelinek + + PR middle-end/101535 + * c-c++-common/gomp/pr101535-1.c: New test. + * c-c++-common/gomp/pr101535-2.c: New test. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-07-21 Jakub Jelinek + + PR c++/101516 + * g++.dg/gomp/pr101516.C: New test. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-07-20 Jakub Jelinek + + PR target/101384 + * gcc.dg/pr101384.c: New test. + + 2022-05-10 Tobias Burnus + + Backported from master: + 2021-05-04 Tobias Burnus + + * gcc.dg/gomp/clause-1.c: Use 'reduction(&:..)' instead of '...(&&:..)'. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-07-15 Jakub Jelinek + + PR c++/101443 + * g++.dg/cpp0x/nullptr46.C: New test. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-07-01 Jakub Jelinek + + PR debug/101266 + * gcc.dg/pr101266.c: New test. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-06-29 Jakub Jelinek + + PR c++/101210 + * g++.dg/ubsan/pr101210.C: New test. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-06-24 Jakub Jelinek + + PR c/101171 + * gcc.dg/pr101171.c: New test. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-06-21 Jakub Jelinek + + PR inline-asm/100785 + * c-c++-common/pr100785.c: New test. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-06-16 Jakub Jelinek + + PR middle-end/101062 + * gcc.dg/pr101062.c: New test. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-06-16 Jakub Jelinek + + * gcc.dg/guality/pr49888.c (f): Use noipa attribute instead of + noinline, noclone. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-06-07 Jakub Jelinek + + PR middle-end/100898 + * g++.dg/ext/va-arg-pack-3.C: New test. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-05-25 Jakub Jelinek + + PR c++/100666 + * g++.dg/cpp1z/nodiscard8.C: New test. + * g++.dg/cpp1z/nodiscard9.C: New test. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-05-18 Jakub Jelinek + + PR c++/100580 + * g++.dg/other/pr100580.C: New test. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-05-15 Jakub Jelinek + + PR rtl-optimization/100342 + * gcc.target/i386/pr100342.c: New test. + + 2022-05-10 liuhongt + + Backported from master: + 2021-01-21 liuhongt + + PR rtl-optimization/98694 + * gcc.target/i386/pr98694.c: New test. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-05-14 Jakub Jelinek + + * g++.dg/cpp1y/pr88872.C: New test. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2021-05-12 Jakub Jelinek + + PR middle-end/100508 + * gcc.dg/gomp/pr100508.c: New test. + + 2022-05-10 Eric Botcazou + + * gcc.target/sparc/20220510-1.c: New test. + + 2022-05-09 Patrick Palka + + Backported from master: + 2022-04-26 Patrick Palka + + PR c++/105304 + * g++.dg/cpp2a/concepts-requires30.C: New test. + + 2022-05-09 Patrick Palka + + Backported from master: + 2022-03-26 Patrick Palka + + PR c++/103455 + * g++.dg/overload/builtin6.C: New test. + + 2022-05-09 Patrick Palka + + Backported from master: + 2022-02-17 Patrick Palka + + PR c++/104565 + * g++.dg/template/non-dependent22.C: New test. + + 2022-05-09 Patrick Palka + + Backported from master: + 2022-01-25 Patrick Palka + + PR c++/101532 + PR c++/104225 + * g++.dg/cpp0x/nsdmi-template21.C: New test. + * g++.dg/cpp0x/nsdmi-template21a.C: New test. + + 2022-05-06 Michael Meissner + + Backported from master: + 2022-05-06 Michael Meissner + + PR target/102059 + * gcc.target/powerpc/pr102059-4.c: New test. + + 2022-05-06 Richard Biener + + Backported from master: + 2022-04-08 Richard Biener + + PR tree-optimization/105198 + * gcc.dg/torture/pr105198.c: New testcase. + + 2022-05-06 Richard Biener + + Backported from master: + 2022-02-07 Richard Biener + + PR middle-end/104402 + * gcc.dg/torture/pr104402.c: New testcase. + + 2022-04-27 Hongyu Wang + + Backported from master: + 2022-04-25 Hongyu Wang + + PR target/105339 + * gcc.target/i386/sse-14.c: Add tests for new macro. + + 2022-04-24 Mikael Morin + + PR fortran/104228 + PR fortran/104570 + * gfortran.dg/asan_associate_58.f90: New test. + * gfortran.dg/asan_associate_59.f90: New test. + * gfortran.dg/associate_58.f90: New test. + + 2022-04-21 Fritz Reese + + Backported from master: + 2022-04-21 Fritz Reese + + PR fortran/105310 + * gfortran.dg/dec_union_12.f90: New test. + + 2022-04-21 Richard Biener + + Backported from master: + 2022-01-20 Richard Biener + + PR middle-end/100786 + * gcc.dg/torture/pr100786.c: New testcase. + + 2022-04-21 Richard Biener + + Backported from master: + 2021-11-23 Richard Biener + + PR tree-optimization/103361 + * g++.dg/torture/pr103361.C: New testcase. + + 2022-04-21 Richard Biener + + Backported from master: + 2021-12-07 Richard Biener + + PR tree-optimization/103596 + * gcc.dg/torture/pr103596.c: New testcase. + + 2022-04-21 Richard Biener + + Backported from master: + 2022-02-03 Richard Biener + + PR debug/104337 + * gcc.dg/debug/pr104337.c: New testcase. + + 2022-04-21 Richard Biener + + Backported from master: + 2022-03-09 Richard Biener + + PR middle-end/104786 + * gcc.dg/pr104786.c: New testcase. + + 2022-04-21 Richard Biener + + Backported from master: + 2022-04-12 Richard Biener + + PR tree-optimization/105226 + * gcc.dg/pr105226.c: New testcase. + + 2022-04-11 Alexandre Oliva + + Backported from master: + 2022-04-11 Alexandre Oliva + + PR target/104253 + * gcc.target/powerpc/pr104253.c: Add missing dg- before + require-effective-target. Prune warning about -mfloat128 + possibly not being fully supported. + + 2022-04-05 Martin Jambor + + Backported from master: + 2022-03-31 Martin Jambor + + * gcc.dg/ipa/pr103083-1.c: New test. + * gcc.dg/ipa/pr103083-2.c: Likewise. + + 2022-03-18 Peter Bergner + + Backported from master: + 2022-03-04 Peter Bergner + + PR target/87496 + PR target/104208 + * gcc.target/powerpc/pr104208-1.c: New test. + * gcc.target/powerpc/pr104208-2.c: Likewise. + * gcc.target/powerpc/pr87496-2.c: Swap long double options to trigger + the expected error. + * gcc.target/powerpc/pr87496-3.c: Likewise. + + 2022-03-16 Richard Biener + + Backported from master: + 2022-02-09 Richard Biener + + PR target/104453 + * gcc.target/i386/pr104453.c: New testcase. + + 2022-03-16 Richard Biener + + Backported from master: + 2022-02-14 Richard Biener + + PR tree-optimization/104511 + * gcc.dg/pr104511.c: New testcase. + + 2022-03-12 Michael Meissner + + PR target/99708 + * gcc.target/powerpc/pr99708.c: Revert 2022-03-05 patch. + + 2022-03-06 Michael Meissner + + PR target/104253 + * gcc.target/powerpc/pr104253.c: New test. Backport change made + to the master branch on 2022-02-14. + + 2022-03-06 Michael Meissner + + PR target/99708 + * gcc.target/powerpc/pr99708.c: New test. Backport change to + master branch on 2022-02-17. + + 2022-02-23 Harald Anlauf + + Backported from master: + 2022-02-22 Harald Anlauf + + PR fortran/104619 + * gfortran.dg/derived_constructor_comps_7.f90: New test. + + 2022-02-17 Jason Merrill + + Revert: + 2022-02-17 Jason Merrill + + PR c++/92918 + * g++.dg/lookup/using66.C: New test. + + 2022-02-17 Richard Biener + + Backported from master: + 2021-11-15 Richard Biener + + PR tree-optimization/103237 + * gcc.dg/torture/pr103237.c: New testcase. + + 2022-02-17 Richard Biener + + Backported from master: + 2021-11-22 Richard Biener + + PR middle-end/103181 + PR middle-end/103248 + * gcc.dg/torture/pr103181.c: New testcase. + * gcc.dg/pr103248.c: Likewise. + + 2022-02-17 Richard Biener + + Backported from master: + 2021-11-08 Richard Biener + + PR tree-optimization/102798 + * gcc.dg/pr102798.c: New testcase. + + 2022-02-17 Richard Biener + + Backported from master: + 2021-10-15 Richard Biener + + PR ipa/102762 + * gcc.dg/torture/pr102762.c: New testcase. + + 2022-02-17 Richard Biener + + Backported from master: + 2021-06-08 Richard Biener + + PR tree-optimization/100923 + * gcc.dg/torture/pr100923.c: New testcase. + + 2022-02-17 Richard Biener + + Backported from master: + 2021-06-22 Richard Biener + + PR tree-optimization/101158 + * gfortran.dg/pr101158.f90: New testcase. + + 2022-02-15 Kewen Lin + + Backported from master: + 2022-02-07 Kewen Lin + + PR target/103627 + * gcc.target/powerpc/pr103627-3.c: New test. + + 2022-02-15 Kewen Lin + + Backported from master: + 2022-02-07 Kewen Lin + + PR target/103627 + * gcc.target/powerpc/pr103627-1.c: New test. + * gcc.target/powerpc/pr103627-2.c: New test. + + 2022-02-10 H.J. Lu + + Backported from master: + 2022-02-10 H.J. Lu + + PR target/104458 + * gcc.target/i386/pr104458.c: Replace long with long long. + + 2022-02-10 Uros Bizjak + + Backported from master: + 2022-02-10 UroÅ¡ Bizjak + + PR target/104469 + * gcc.target/i386/pr104469.c: New test. + + 2022-02-09 UroÅ¡ Bizjak + + PR target/104458 + * gcc.target/i386/pr104458.c: New test. + + 2022-02-09 liuhongt + + PR target/104451 + * gcc.target/i386/pr104451.c: New test. + + 2022-02-04 Harald Anlauf + + Backported from master: + 2022-02-03 Harald Anlauf + + PR fortran/104311 + * gfortran.dg/transfer_simplify_15.f90: New test. + + 2022-02-02 Harald Anlauf + + Backported from master: + 2022-02-01 Harald Anlauf + + PR fortran/104331 + * gfortran.dg/eoshift_9.f90: New test. + + 2022-02-02 Xi Ruoyao + + Backported from master: + 2022-02-01 Xi Ruoyao + + * gcc.dg/pr95115.c: New test. + + 2022-01-29 Harald Anlauf + + Backported from master: + 2022-01-15 Harald Anlauf + + PR fortran/83079 + * gfortran.dg/transfer_char_kind4.f90: New test. + + 2022-01-29 Harald Anlauf + + Backported from master: + 2022-01-22 Harald Anlauf + + PR fortran/104127 + * gfortran.dg/transfer_simplify_11.f90: Fix logic. + * gfortran.dg/transfer_simplify_13.f90: New test. + + 2022-01-26 Harald Anlauf + + Backported from master: + 2022-01-25 Harald Anlauf + + PR fortran/104227 + * gfortran.dg/transfer_check_6.f90: New test. + + 2022-01-25 Harald Anlauf + + Backported from master: + 2022-01-09 Harald Anlauf + + PR fortran/101762 + * gfortran.dg/pr101762.f90: New test. + + 2022-01-25 Harald Anlauf + + Backported from master: + 2022-01-13 Harald Anlauf + + PR fortran/67804 + * gfortran.dg/pr93604.f90: Adjust to changed diagnostics. + * gfortran.dg/pr67804.f90: New test. + + 2022-01-21 Harald Anlauf + + Backported from master: + 2022-01-14 Harald Anlauf + + PR fortran/103782 + * gfortran.dg/overload_4.f90: New test. + + 2022-01-20 Harald Anlauf + + Backported from master: + 2022-01-18 Harald Anlauf + + PR fortran/103692 + * gfortran.dg/pr102520.f90: Adjust error messages. + * gfortran.dg/pr103692.f90: New test. + + 2022-01-15 Peter Bergner + + Backported from master: + 2021-11-16 Peter Bergner + + PR target/102976 + * gcc.target/powerpc/pr102976.c: New test. + + 2022-01-15 Peter Bergner + + Backported from master: + 2021-09-14 Peter Bergner + + * gcc.target/powerpc/mma-builtin-6.c: Add second call to xxsetacc + built-in. Update instruction counts. + + 2022-01-14 Eric Botcazou + + * gnat.dg/lto25.adb: New test. + * gnat.dg/opt96.adb: Likewise. + * gnat.dg/opt96_pkg.ads, gnat.dg/opt96_pkg.adb: New helper. + + 2022-01-13 Harald Anlauf + + Backported from master: + 2021-12-29 Harald Anlauf + + PR fortran/102332 + * gfortran.dg/pr102332.f90: New test. + + 2022-01-12 Richard Biener + + Backported from master: + 2020-11-26 Richard Biener + + PR tree-optimization/97953 + * gcc.dg/pr97953.c: New testcase. + + 2022-01-07 Harald Anlauf + + Backported from master: + 2021-05-23 Harald Anlauf + + PR fortran/100551 + * gfortran.dg/pr100551.f90: New test. + + 2021-12-27 Harald Anlauf + + Backported from master: + 2021-12-10 Harald Anlauf + + PR fortran/103418 + * gfortran.dg/move_alloc_8.f90: Adjust error messages. + * gfortran.dg/pointer_intent_9.f90: New test. + + 2021-12-27 Harald Anlauf + + Backported from master: + 2021-12-14 Harald Anlauf + + PR libfortran/103634 + * gfortran.dg/intrinsic_pack_6.f90: New test. + + 2021-12-27 Harald Anlauf + + Backported from master: + 2021-12-22 Harald Anlauf + + PR fortran/103778 + * gfortran.dg/illegal_boz_arg_3.f90: New test. + + 2021-12-27 Harald Anlauf + + Backported from master: + 2021-11-18 Harald Anlauf + Steven G. Kargl + + PR fortran/101329 + * gfortran.dg/pr101329.f90: New test. + + 2021-12-19 Harald Anlauf + + Backported from master: + 2021-12-07 Harald Anlauf + + PR fortran/103588 + * gfortran.dg/pr103588.f90: New test. + + 2021-12-19 Harald Anlauf + + Backported from master: + 2021-12-03 Harald Anlauf + Steven G. Kargl + + PR fortran/103505 + * gfortran.dg/pr103505.f90: New test. + + 2021-12-19 Harald Anlauf + + Backported from master: + 2021-12-18 Harald Anlauf + + PR fortran/103412 + * gfortran.dg/illegal_boz_arg_2.f90: New test. + + 2021-12-17 Harald Anlauf + + Backported from master: + 2021-12-08 Harald Anlauf + + PR fortran/103610 + * gfortran.dg/shape_11.f90: New test. + + 2021-12-16 Harald Anlauf + + Backported from master: + 2021-12-11 Harald Anlauf + + PR fortran/103606 + * gfortran.dg/pr103606.f90: New test. + + 2021-12-16 Harald Anlauf + + Backported from master: + 2021-12-14 Harald Anlauf + + PR fortran/103717 + * gfortran.dg/do_check_19.f90: New test. + + 2021-12-15 Kewen Lin + + Backported from master: + 2021-11-30 Kewen Lin + + PR target/102347 + * gcc.target/powerpc/pr102347.c: New test. + + 2021-12-11 Harald Anlauf + + Backported from master: + 2021-11-30 Harald Anlauf + + * gfortran.dg/array_constructor_54.f90: New test. + + 2021-12-11 Harald Anlauf + + Backported from master: + 2021-10-14 Harald Anlauf + + PR fortran/102717 + * gfortran.dg/reshape_shape_2.f90: New test. + + 2021-12-11 Harald Anlauf + + Backported from master: + 2021-11-26 Harald Anlauf + + PR fortran/103411 + * gfortran.dg/pr68153.f90: Adjust test to improved check. + * gfortran.dg/reshape_7.f90: Likewise. + * gfortran.dg/reshape_9.f90: New test. + + 2021-12-10 Harald Anlauf + + Backported from master: + 2021-12-07 Harald Anlauf + + PR fortran/103607 + * gfortran.dg/pr103607.f90: New test. + + 2021-11-26 Harald Anlauf + + Backported from master: + 2021-11-23 Harald Anlauf + + PR fortran/103392 + * gfortran.dg/bound_simplification_7.f90: New test. + + 2021-11-25 Jan Hubicka + + Backported from master: + 2021-11-20 Jan Hubicka + + PR ipa/103052 + * gcc.c-torture/execute/pr103052.c: New test. + + 2021-11-23 Bill Schmidt + + PR target/101985 + * gcc.target/powerpc/pr101985-1.c: New. + * gcc.target/powerpc/pr101985-2.c: New. + + 2021-11-22 Harald Anlauf + + Backported from master: + 2021-11-21 Harald Anlauf + Steven G. Kargl + + PR fortran/99061 + * gfortran.dg/dec_math_5.f90: New test. + + 2021-11-22 Stefan Schulze Frielinghaus + + Backported from master: + 2021-11-19 Stefan Schulze Frielinghaus + + * gcc.target/s390/20211119.c: New test. + + 2021-11-13 Harald Anlauf + + Backported from master: + 2021-10-26 Harald Anlauf + + PR fortran/102816 + * gfortran.dg/pr102816.f90: New test. + + 2021-11-13 Harald Anlauf + + Backported from master: + 2021-10-15 Harald Anlauf + Tobias Burnus + + PR fortran/102685 + * gfortran.dg/derived_constructor_char_1.f90: Fix invalid code. + * gfortran.dg/pr70931.f90: Likewise. + * gfortran.dg/transfer_simplify_2.f90: Likewise. + * gfortran.dg/pr102685.f90: New test. + + 2021-11-13 Harald Anlauf + + Backported from master: + 2021-11-06 Harald Anlauf + + PR fortran/102715 + * gfortran.dg/pr68019.f90: Adjust error message. + * gfortran.dg/pr102715.f90: New test. + + 2021-11-13 Harald Anlauf + + Backported from master: + 2021-11-05 Harald Anlauf + + PR fortran/102817 + * gfortran.dg/pr102817.f90: New test. + + 2021-11-13 Harald Anlauf + + Backported from master: + 2021-10-10 Harald Anlauf + + PR fortran/99348 + PR fortran/102521 + * gfortran.dg/parameter_array_init_8.f90: New test. + + 2021-11-09 Richard Biener + + Backported from master: + 2021-10-13 Richard Biener + + PR ipa/102714 + * gcc.dg/ipa/pr102714.c: New testcase. + + 2021-11-09 Richard Biener + + Backported from master: + 2021-05-19 Richard Biener + + PR middle-end/100672 + * gcc.dg/torture/pr100672.c: New testcase. + + 2021-11-09 Richard Biener + + PR tree-optimization/100253 + * g++.dg/pr100253.C: New testcase. + + 2021-11-03 Vladimir N. Makarov + + PR rtl-optimization/102842 + * g++.target/arm/pr102842.C: New test. + + 2021-11-02 Martin Jambor + + Backported from master: + 2021-10-21 Martin Jambor + + PR tree-optimization/102505 + * g++.dg/torture/pr102505.C: New test. + + 2021-10-27 UroÅ¡ Bizjak + + PR target/102761 + * gcc.target/i386/pr102761.c: New test. + + 2021-10-23 Harald Anlauf + + Backported from master: + 2021-10-14 Harald Anlauf + + PR fortran/102716 + * gfortran.dg/shape_10.f90: New test. + + 2021-10-13 Richard Biener + + Backported from master: + 2021-08-25 Richard Biener + + PR tree-optimization/102046 + * gcc.dg/vect/pr102046.c: New testcase. + + 2021-10-13 Richard Biener + + Backported from master: + 2021-08-17 Richard Biener + + PR tree-optimization/101925 + * gcc.dg/sso-16.c: New testcase. + + 2021-10-13 Richard Biener + + Backported from master: + 2021-08-17 Richard Biener + + PR tree-optimization/101373 + PR tree-optimization/101868 + * gcc.dg/lto/pr101868_0.c: New testcase. + * gcc.dg/lto/pr101868_1.c: Likewise. + * gcc.dg/lto/pr101868_2.c: Likewise. + * gcc.dg/lto/pr101868_3.c: Likewise. + + 2021-10-13 Richard Biener + + Backported from master: + 2021-08-10 Richard Biener + + PR middle-end/101824 + * gcc.dg/tree-ssa/pr101824.c: New testcase. + + 2021-10-11 Andrew Pinski + + PR tree-optimization/102622 + * gcc.c-torture/execute/bitfld-10.c: New test. + + 2021-10-05 Harald Anlauf + + Backported from master: + 2021-09-30 Harald Anlauf + + PR fortran/102458 + * gfortran.dg/pr102458b.f90: New test. + + 2021-10-05 Harald Anlauf + + Backported from master: + 2021-10-03 Harald Anlauf + + PR fortran/102458 + * gfortran.dg/pr102458.f90: New test. + + 2021-10-03 Iain Sandoe + + Backported from master: + 2021-07-19 Iain Sandoe + + PR c++/95520 + * g++.dg/coroutines/pr95520.C: New test. + + 2021-09-30 Harald Anlauf + + Backported from master: + 2021-09-13 Harald Anlauf + + PR fortran/82314 + * gfortran.dg/pr82314.f90: New test. + + 2021-09-30 Harald Anlauf + + Backported from master: + 2021-09-29 Harald Anlauf + + PR fortran/102520 + * gfortran.dg/pr102520.f90: New test. + + 2021-09-21 Harald Anlauf + + Backported from master: + 2021-09-13 Harald Anlauf + + PR fortran/85130 + * gfortran.dg/substr_6.f90: Revert commit r8-7574, adding again + test that was erroneously considered as illegal. + + 2021-09-21 Harald Anlauf + + Backported from master: + 2021-09-16 Harald Anlauf + + PR fortran/102287 + * gfortran.dg/intent_out_14.f90: New test. + + 2021-09-21 Harald Anlauf + + Backported from master: + 2021-09-17 Harald Anlauf + + PR fortran/102366 + * gfortran.dg/pr102366.f90: New test. + + 2021-09-21 Eric Botcazou + + * lib/target-supports.exp (no_fsanitize_address): Add missing bits. + * gcc.dg/pr91441.c: Likewise. + * gcc.dg/pr96260.c: Likewise. + * gcc.dg/pr96307.c: Likewise. + * g++.dg/abi/anon4.C: Likewise. + + 2021-09-17 Eric Botcazou + + * gcc.target/sparc/20210917-1.c: New test. + + 2021-09-16 Harald Anlauf + + Backported from master: + 2021-09-07 Harald Anlauf + + PR fortran/101327 + * gfortran.dg/pr101327.f90: New test. + + 2021-09-16 Harald Anlauf + + Backported from master: + 2021-09-09 Harald Anlauf + + PR fortran/98490 + * gfortran.dg/bounds_check_23.f90: New test. + + 2021-09-14 Xionghu Luo + + Backported from master: + 2021-09-07 Xionghu Luo + + PR target/97142 + * gcc.target/powerpc/pr97142.c: New test. + + 2021-09-10 Paul Thomas + + Backported from master: + 2020-12-29 Paul Thomas + + PR fortran/97612 + * gfortran.dg/structure_constructor_17.f90: New test. + + 2021-09-10 Paul Thomas + + Backported from master: + 2021-01-22 Paul Thomas + + PR fortran/98565 + * gfortran.dg/associated_target_7.f90 : New test. + + 2021-09-10 Paul Thomas + + Backported from master: + 2020-12-27 Paul Thomas + + PR fortran/97694 + PR fortran/97723 + * gfortran.dg/select_rank_5.f90: New test. + + 2021-09-10 Paul Thomas + + Backported from master: + 2021-01-07 Paul Thomas + + PR fortran/93701 + * gfortran.dg/associate_54.f90: New test. + * gfortran.dg/associate_55.f90: New test. + * gfortran.dg/associate_56.f90: New test. + + 2021-09-10 Paul Thomas + + Backported from master: + 2021-01-27 Paul Thomas + + PR fortran/98472 + * gfortran.dg/elemental_function_5.f90 : New test. + + 2021-09-10 Paul Thomas + + Backported from master: + 2021-04-20 Paul Thomas + + PR fortran/100110 + * gfortran.dg/pdt_31.f03: New test. + * gfortran.dg/pdt_26.f03: Reduce 'builtin_malloc' count from 9 + to 8. + + 2021-09-06 Richard Biener + + Backported from master: + 2021-07-12 Richard Biener + + PR tree-optimization/101394 + * gcc.dg/torture/pr101394.c: New testcase. + + 2021-09-06 Richard Biener + + Backported from master: + 2021-07-07 Richard Biener + + PR tree-optimization/101173 + PR tree-optimization/101280 + * gcc.dg/torture/pr101173.c: New testcase. + * gcc.dg/tree-ssa/loop-interchange-16.c: New file. + + 2021-09-06 Richard Biener + + Backported from master: + 2021-06-24 Richard Biener + + PR tree-optimization/101105 + * gcc.dg/torture/pr101105.c: New testcase. + + 2021-09-06 Richard Biener + + Backported from master: + 2021-06-11 Richard Biener + + PR middle-end/101009 + * gcc.dg/torture/pr101009.c: New testcase. + + 2021-09-03 Peter Bergner + + Backported from master: + 2021-08-19 Peter Bergner + + PR target/101849 + * gcc.target/powerpc/pr101849.c: New test. + + 2021-09-03 Peter Bergner + + Backported from master: + 2021-07-02 Peter Bergner + + * gcc.target/powerpc/mma-builtin-7.c: New test. + * gcc.target/powerpc/mma-builtin-8.c: New test. + + 2021-08-30 Paul Thomas + + Backported from master: + 2021-05-06 Paul Thomas + + PR fortran/46691 + PR fortran/99819 + * gfortran.dg/class_dummy_6.f90: New test. + * gfortran.dg/class_dummy_7.f90: New test. + + 2021-08-28 Paul Thomas + + Backported from master: + 2021-04-03 Paul Thomas + + PR fortran/99818 + * gfortran.dg/coarray_48.f90: New test. + + 2021-08-28 Paul Thomas + + Backported from master: + 2021-01-27 Paul Thomas + + PR fortran/93924 + PR fortran/93925 + * gfortran.dg/proc_ptr_52.f90 : New test. + + 2021-08-28 Paul Thomas + + Backported from master: + 2021-01-08 Paul Thomas + + PR fortran/93794 + * gfortran.dg/deferred_character_35.f90 : New test. + + 2021-08-28 Paul Thomas + + Backported from master: + 2021-03-13 Paul Thomas + + PR fortran/99125 + * gfortran.dg/alloc_deferred_comp_1.f90: New test. + + 2021-08-27 konglin1 + + PR target/101472 + * gcc.target/i386/avx512f-pr101472.c: New test. + * gcc.target/i386/avx512vl-pr101472.c: New test. + + 2021-08-26 Harald Anlauf + + Backported from master: + 2021-08-24 Harald Anlauf + + PR fortran/98411 + * gfortran.dg/pr98411.f90: Adjust testcase options to restrict to + F2008, and verify case of implicit SAVE. + + 2021-08-25 konglin1 + + PR target/101471 + * gcc.target/i386/avx512f-pr101471.c: New test. + + 2021-08-24 Richard Earnshaw + + Backported from master: + 2021-08-24 Richard Earnshaw + + PR target/102035 + * gcc.target/arm/cmse/mainline/8_1m/soft/cmse-13a.c: New test. + * gcc.target/arm/cmse/mainline/8_1m/soft/cmse-7a.c: Likewise. + * gcc.target/arm/cmse/mainline/8_1m/soft/cmse-8a.c: Likewise. + * gcc.target/arm/cmse/mainline/8_1m/softfp-sp/cmse-7a.c: Likewise. + * gcc.target/arm/cmse/mainline/8_1m/softfp-sp/cmse-8a.c: Likewise. + * gcc.target/arm/cmse/mainline/8_1m/softfp/cmse-13a.c: Likewise. + * gcc.target/arm/cmse/mainline/8_1m/softfp/cmse-7a.c: Likewise. + * gcc.target/arm/cmse/mainline/8_1m/softfp/cmse-8a.c: Likewise. + + 2021-08-24 Richard Earnshaw + + Backported from master: + 2021-08-24 Richard Earnshaw + + * lib/target-supports.exp (check_effective_target_arm_cmse_hw): + New function. + + 2021-08-24 Richard Biener + + Backported from master: + 2021-08-23 Richard Biener + + PR ipa/97565 + * g++.dg/lto/pr97565_0.C: New testcase. + * g++.dg/lto/pr97565_1.C: Likewise. + + 2021-08-23 Christophe Lyon + + Backported from master: + 2021-08-06 Christophe Lyon + + PR target/101723 + * gcc.target/arm/pr69245.c: Make sure to emit code for fn1, fix + typo. + + 2021-08-23 Christophe Lyon + + Backported from master: + 2021-08-06 Christophe Lyon + + PR target/101723 + * gcc.target/arm/attr-neon3.c: Fix typo. + * gcc.target/arm/pragma_fpu_attribute_2.c: Fix typo. + + 2021-08-23 Richard Earnshaw + + Backported from master: + 2021-08-05 Richard Earnshaw + + PR target/101723 + * gcc.target/arm/cortex-m55-nofp-flag-hard.c: Update expected output. + * gcc.target/arm/cortex-m55-nofp-flag-softfp.c: Likewise. + * gcc.target/arm/cortex-m55-nofp-nomve-flag-softfp.c: Likewise. + * gcc.target/arm/mve/intrinsics/mve_fpu1.c: Convert to dg-do assemble. + Add a non-no-op function body. + * gcc.target/arm/mve/intrinsics/mve_fpu2.c: Likewise. + * gcc.target/arm/attr-neon.c: Tighten scan-assembler tests. + * gcc.target/arm/attr-neon2.c: Use -Ofast, convert test to use + check-function-bodies. + * gcc.target/arm/attr-neon3.c: Likewise. + * gcc.target/arm/pr69245.c: Tighten scan-assembler match, but allow + multiple instances. + * gcc.target/arm/pragma_fpu_attribute.c: Likewise. + * gcc.target/arm/pragma_fpu_attribute_2.c: Likewise. + + 2021-08-19 Thomas Schwinge + + Backported from master: + 2021-08-19 Thomas Schwinge + + PR testsuite/101969 + * gcc.dg/pr78213.c: Fix up for '--enable-checking=release' etc. + + 2021-08-17 Thomas Schwinge + + Backported from master: + 2021-08-17 Thomas Schwinge + + * gcc.dg/pr78213.c: Restore testing. + + 2021-08-17 Richard Sandiford + + Backported from master: + 2021-04-28 Richard Sandiford + + PR target/100305 + * gcc.c-torture/compile/pr100305.c: New test. + + 2021-08-13 Martin Liska + + PR gcov-profile/100788 + * gcc.dg/pr100788.c: New test. + + 2021-07-30 Harald Anlauf + + Backported from master: + 2021-07-21 Harald Anlauf + + PR fortran/101514 + * gfortran.dg/pr101514.f90: New test. + + 2021-07-30 Harald Anlauf + + Backported from master: + 2021-07-23 Harald Anlauf + + PR fortran/101536 + * gfortran.dg/pr101536.f90: New test. + + 2021-07-29 Bill Schmidt + + PR target/101531 + * gcc.target/powerpc/pr101129.c: Adjust. + + 2021-07-29 Iain Buclaw + + Backported from master: + 2021-07-29 Iain Buclaw + + PR d/96435 + * gdc.dg/pr96435.d: New test. + + 2021-07-28 Harald Anlauf + + Backported from master: + 2021-07-18 Harald Anlauf + + PR fortran/101084 + * gfortran.dg/fmt_nonchar_3.f90: New test. + + 2021-07-28 Iain Buclaw + + Backported from master: + 2021-07-28 Iain Buclaw + + PR d/101640 + * gdc.dg/pr101640.d: New test. + + 2021-07-28 Iain Buclaw + + Backported from master: + 2021-07-28 Iain Buclaw + + PR d/101490 + * gdc.dg/pr101490.d: New test. + * gdc.test/fail_compilation/fail22144.d: New test. + + 2021-07-28 Iain Buclaw + + Backported from master: + 2021-07-28 Iain Buclaw + + PR d/101441 + * gdc.test/compilable/b19002.d: New test. + + 2021-07-28 Iain Buclaw + + Backported from master: + 2021-07-28 Iain Buclaw + + PR d/101127 + * gdc.dg/pr101127a.d: New test. + * gdc.dg/pr101127b.d: New test. + + 2021-07-28 Iain Buclaw + + Backported from master: + 2021-07-28 Iain Buclaw + + PR d/101619 + * gdc.test/fail_compilation/fail7424b.d: Update test. + * gdc.test/fail_compilation/fail7424c.d: Update test. + * gdc.test/fail_compilation/fail7424d.d: Update test. + * gdc.test/fail_compilation/fail7424e.d: Update test. + * gdc.test/fail_compilation/fail7424f.d: Update test. + * gdc.test/fail_compilation/fail7424g.d: Update test. + * gdc.test/fail_compilation/fail7424h.d: Update test. + * gdc.test/fail_compilation/fail7424i.d: Update test. + * gdc.test/compilable/test22133.d: New test. + * gdc.test/fail_compilation/fail22133.d: New test. + + 2021-07-20 Martin Jambor + + Backported from master: + 2021-07-08 Martin Jambor + + PR ipa/101066 + * gcc.dg/ipa/pr101066.c: New test. + + 2021-07-20 UroÅ¡ Bizjak + + PR target/100182 + * gcc.target/i386/pr71245-1.c: Remove. + * gcc.target/i386/pr71245-2.c: Ditto. + + 2021-07-19 Bill Schmidt + + PR target/101129 + * gcc.target/powerpc/pr101129.c: New. + + 2021-07-16 Harald Anlauf + + Backported from master: + 2021-07-14 Harald Anlauf + + PR fortran/100949 + * gfortran.dg/pr100949.f90: New test. + + 2021-07-12 Thomas Koenig + + Backported from master: + 2021-07-06 Thomas Koenig + + PR fortran/100227 + * gfortran.dg/implied_do_io_7.f90: New test. + + 2021-07-08 Marek Polacek + + Backported from master: + 2021-07-08 Marek Polacek + + PR c++/101087 + * g++.dg/cpp0x/noexcept70.C: New test. + + 2021-06-24 Uros Bizjak + + Backported from master: + 2021-06-23 UroÅ¡ Bizjak + + PR target/101175 + * gcc.target/i386/pr101175.c: New test. + + 2021-06-18 Harald Anlauf + + Backported from master: + 2021-06-16 Harald Anlauf + + PR fortran/95501 + PR fortran/95502 + * gfortran.dg/pr95502.f90: New test. + + 2021-06-18 Srinath Parvathaneni + + Backported from master: + 2021-06-18 Srinath Parvathaneni + + PR target/100856 + * gcc.target/arm/acle/pr100856.c: New test. + * gcc.target/arm/multilib.exp: Add tests for cde options. + + 2021-06-18 Srinath Parvathaneni + + Backported from master: + 2021-06-11 Srinath Parvathaneni + + PR target/101016 + * gcc.target/arm/mve/intrinsics/pr101016.c: New test. + + 2021-06-18 Srinath Parvathaneni + + Backported from master: + 2021-06-11 Srinath Parvathaneni + + PR target/99939 + * gcc.target/arm/cmse/cmse-18.c: Add separate scan-assembler + directives check for target is v8.1-m.main+mve or not before + comparing the assembly output. + * gcc.target/arm/cmse/cmse-20.c: New test. + + 2021-06-18 Peter Bergner + + Backported from master: + 2021-06-14 Peter Bergner + + PR target/100777 + * gcc.target/powerpc/pr100777.c: New test. + + 2021-06-18 Peter Bergner + + Backported from master: + 2021-06-10 Peter Bergner + + * gcc.target/powerpc/mma-builtin-4.c (__builtin_vsx_build_pair): Add + tests. Update expected counts. + * gcc.target/powerpc/mma-builtin-5.c (__builtin_mma_build_acc): Add + tests. Update expected counts. + + 2021-06-18 Peter Bergner + + Backported from master: + 2021-05-31 Peter Bergner + + PR target/99842 + * g++.target/powerpc/pr99842.C: New. + + 2021-06-17 Jason Merrill + + PR c++/101029 + * g++.dg/ext/array4.C: New test. + + 2021-06-16 Richard Biener + + Backported from master: + 2021-06-14 Richard Biener + + PR tree-optimization/100934 + * gcc.dg/torture/pr100934.c: New testcase. + + 2021-06-16 Richard Biener + + Backported from master: + 2021-05-28 Richard Biener + + PR ipa/100791 + * gcc.dg/pr100791.c: New testcase. + + 2021-06-16 Richard Biener + + Backported from master: + 2021-05-11 Richard Biener + + PR middle-end/100509 + * gcc.dg/pr100509.c: New testcase. + + 2021-06-16 Richard Biener + + Backported from master: + 2021-05-10 Richard Biener + + PR tree-optimization/100492 + * gcc.dg/torture/pr100492.c: New testcase. + + 2021-06-16 José Rui Faustino de Sousa + + PR fortran/82376 + * gfortran.dg/PR82376.f90: New test. + + 2021-06-11 Iain Buclaw + + Backported from master: + 2021-06-11 Iain Buclaw + + PR d/100999 + * gdc.test/compilable/staticforeach.d: Add new tests. + * gdc.test/fail_compilation/diag16976.d: Likewise. + * gdc.test/fail_compilation/fail117.d: Likewise. + * gdc.test/fail_compilation/fail238_m32.d: Likewise. + * gdc.test/fail_compilation/fail238_m64.d: Likewise. + * gdc.test/fail_compilation/fail7424b.d: Likewise. + * gdc.test/fail_compilation/fail7424c.d: Likewise. + * gdc.test/fail_compilation/fail7424d.d: Likewise. + * gdc.test/fail_compilation/fail7424e.d: Likewise. + * gdc.test/fail_compilation/fail7424f.d: Likewise. + * gdc.test/fail_compilation/fail7424g.d: Likewise. + * gdc.test/fail_compilation/fail7424h.d: Likewise. + * gdc.test/fail_compilation/fail7424i.d: Likewise. + * gdc.test/fail_compilation/fail9766.d: Likewise. + * gdc.test/fail_compilation/ice9406.d: Likewise. + * gdc.test/compilable/extra-files/minimal/object.d: New file. + * gdc.test/compilable/interpret5.d: New test. + * gdc.test/compilable/minimal3.d: New test. + * gdc.test/compilable/test21742.d: New test. + * gdc.test/compilable/test22006.d: New test. + * gdc.test/fail_compilation/b12504.d: New test. + * gdc.test/fail_compilation/fail22006.d: New test. + * gdc.test/fail_compilation/test21927.d: New test. + * gdc.test/fail_compilation/test21939.d: New test. + + 2021-06-10 Iain Buclaw + + Backported from master: + 2021-06-10 Iain Buclaw + + PR d/100967 + * gdc.dg/pr100967.d: New test. + + 2021-06-09 Iain Buclaw + + Backported from master: + 2021-06-09 Iain Buclaw + + PR d/100964 + * gdc.test/compilable/betterCarray.d: Add test cases. + + 2021-06-09 Iain Buclaw + + Backported from master: + 2021-06-09 Iain Buclaw + + PR d/100935 + * gdc.test/compilable/aggr_alignment.d: Add test cases. + + 2021-06-07 Patrick Palka + + Backported from master: + 2021-06-04 Patrick Palka + + PR c++/100102 + * g++.dg/cpp0x/alias-decl-72.C: New test. + * g++.dg/cpp0x/alias-decl-72a.C: New test. + + 2021-06-04 Iain Buclaw + + Backported from master: + 2021-06-04 Iain Buclaw + + PR d/100882 + * gdc.dg/pr100882a.d: New test. + * gdc.dg/pr100882b.d: New test. + * gdc.dg/pr100882c.d: New test. + * gdc.dg/pr100882d.d: New test. + + 2021-06-04 Harald Anlauf + + Backported from master: + 2021-06-04 Harald Anlauf + + PR fortran/99839 + * gfortran.dg/inline_matmul_25.f90: New test. + + 2021-06-04 Alex Coplan + + Backported from master: + 2021-05-19 Alex Coplan + + PR target/100333 + * gcc.target/arm/cmse/pr100333.c: New test. + + 2021-06-02 Vladimir N. Makarov + + Backported from master: + 2021-01-21 Vladimir N. Makarov + + PR rtl-optimization/98777 + * gcc.target/riscv/pr98777.c: New. + + 2021-06-02 Vladimir N. Makarov + + Backported from master: + 2021-01-20 Vladimir N. Makarov + + PR rtl-optimization/98722 + * g++.target/s390/pr98722.C: New. + + 2021-06-02 Vladimir N. Makarov + + Backported from master: + 2021-01-12 Vladimir N. Makarov + + PR target/97969 + * gcc.target/arm/pr97969.c: New. + + 2021-06-01 Alex Coplan + + Backported from master: + 2021-05-11 Alex Coplan + + PR target/99725 + * gcc.target/arm/cmse/pr99725.c: New test. + + 2021-06-01 Jason Merrill + + PR c++/100797 + PR c++/95719 + * g++.dg/inherit/virtual15.C: New test. + * g++.dg/inherit/virtual15a.C: New test. + + 2021-05-28 Harald Anlauf + + Backported from master: + 2021-05-17 Harald Anlauf + + PR fortran/98411 + * gfortran.dg/pr98411.f90: New test. + + 2021-05-25 Alex Coplan + + Backported from master: + 2021-05-10 Alex Coplan + + PR target/99960 + * gcc.target/arm/mve/intrinsics/vldrdq_gather_base_wb_s64.c: + Update now that we're (correctly) using full 128-bit vector + loads/stores. + * gcc.target/arm/mve/intrinsics/vldrdq_gather_base_wb_u64.c: + Likewise. + * gcc.target/arm/mve/intrinsics/vldrdq_gather_base_wb_z_s64.c: + Likewise. + * gcc.target/arm/mve/intrinsics/vldrdq_gather_base_wb_z_u64.c: + Likewise. + * gcc.target/arm/mve/intrinsics/vuninitializedq_int.c: Likewise. + * gcc.target/arm/mve/intrinsics/vuninitializedq_int1.c: + Likewise. + + 2021-05-21 Eric Botcazou + + * gnat.dg/derived_type7.adb, gnat.dg/derived_type7.ads: New test. + + 2021-05-20 Jason Merrill + + PR c++/100489 + * g++.dg/cpp2a/desig18.C: New test. + + 2021-05-20 Jason Merrill + + PR c++/80456 + * g++.dg/cpp0x/constexpr-volatile3.C: New test. + + 2021-05-20 Jason Merrill + + PR c++/100054 + * g++.dg/cpp1y/lambda-generic-local-class1.C: New test. + + 2021-05-20 Jason Merrill + + PR c++/100032 + * g++.dg/cpp0x/alias-decl-equiv1.C: New test. + + 2021-05-20 Jason Merrill + + PR c++/91933 + * g++.dg/cpp0x/constexpr-base7.C: New test. + + 2021-05-20 Jason Merrill + + PR c++/99180 + PR c++/93295 + PR c++/93867 + PR c++/95486 + * g++.dg/cpp2a/class-deduction-alias5.C: New test. + * g++.dg/cpp2a/class-deduction-alias6.C: New test. + * g++.dg/cpp2a/class-deduction-alias7.C: New test. + * g++.dg/cpp2a/class-deduction-alias8.C: New test. + + 2021-05-20 Jason Merrill + + PR c++/41723 + * g++.dg/template/friend71.C: New test. + + 2021-05-20 Jason Merrill + + PR c++/52625 + * g++.dg/template/friend70.C: New test. + + 2021-05-20 Jason Merrill + + PR c++/92918 + * g++.dg/lookup/using66.C: New test. + + 2021-05-20 Jason Merrill + + PR c++/96673 + * g++.dg/cpp1y/nsdmi-aggr13.C: New test. + + 2021-05-20 Jason Merrill + + PR c++/99901 + * g++.dg/cpp1z/inline-var9.C: New test. + + 2021-05-20 Jason Merrill + + PR c++/96311 + * g++.dg/cpp1y/lambda-generic-Wunused.C: New test. + + 2021-05-20 Jason Merrill + + PR c++/95870 + * g++.dg/cpp0x/lambda/lambda-nsdmi10.C: New test. + + 2021-05-20 Jason Merrill + + PR c++/99201 + * g++.dg/cpp1z/constexpr-if-lambda4.C: New test. + + 2021-05-20 Jason Merrill + + PR c++/99643 + * g++.dg/cpp0x/initlist-new5.C: New test. + + 2021-05-20 Jason Merrill + + PR c++/90664 + * g++.dg/cpp1z/noexcept-type24.C: New test. + + 2021-05-20 Jason Merrill + + PR c++/91217 + * g++.dg/opt/nrv20.C: New test. + + 2021-05-20 Jason Merrill + + PR c++/97938 + * g++.dg/cpp2a/lambda-pack-init6.C: New test. + + 2021-05-20 Eric Botcazou + + PR testsuite/96488 + * gnat.dg/unchecked_convert5.adb: Do not run on PowerPC64 LE. + * gnat.dg/unchecked_convert6.adb: Likewise. + + 2021-05-20 Alex Coplan + Christophe Lyon + + PR target/99977 + * gcc.target/arm/pr99977.c: New test. + + 2021-05-17 Richard Biener + + Backported from master: + 2021-05-12 Richard Biener + + PR tree-optimization/100566 + * gcc.dg/torture/pr100566.c: New testcase. + + 2021-05-13 Richard Earnshaw + + * gcc.dg/pr100563.c: New test. + + 2021-05-12 Martin Sebor + + PR middle-end/100571 + * gcc.dg/Wstringop-overflow-67.c: New test. + + 2021-05-12 Alex Coplan + + Backported from master: + 2021-05-11 Alex Coplan + + PR target/99988 + * gcc.target/aarch64/pr99988.c: New test. + + 2021-05-07 Jakub Jelinek + + Backported from master: + 2021-05-07 Jakub Jelinek + + PR c/100450 + * c-c++-common/gomp/pr100450.c: New test. + + 2021-05-06 Roman Zhuykov + + Backported from master: + 2021-04-30 Roman Zhuykov + + PR rtl-optimization/100225 + PR rtl-optimization/84878 + * gcc.dg/pr100225.c: New test. + + 2021-05-06 Andre Vieira + + Backported from master: + 2020-09-15 Andre Vieira + + * gcc.target/arm/pr95646.c: Fix testism. + + 2021-05-06 Srinath Parvathaneni + + Backported from master: + 2020-06-23 Andre Vieira + + PR target/95646 + * gcc.target/arm/pr95646.c: New test. + + 2021-05-05 Eric Botcazou + + * gcc.c-torture/execute/20210505-1.c: New test. + + 2021-05-05 Harald Anlauf + + Backported from master: + 2021-05-05 Harald Anlauf + + PR fortran/100274 + * gfortran.dg/argument_checking_25.f90: New test. + + 2021-05-05 Richard Biener + + PR tree-optimization/98786 + * gcc.dg/torture/pr98786.c: New testcase. + + 2021-05-05 Richard Biener + + Backported from master: + 2021-04-27 Richard Biener + + PR tree-optimization/100278 + * gcc.dg/tree-ssa/pr100278.c: New testcase. + + 2021-05-04 Jakub Jelinek + + Backported from master: + 2021-04-27 Jakub Jelinek + + PR rtl-optimization/100254 + * g++.dg/opt/pr100254.C: New test. + + 2021-04-30 Richard Biener + + Backported from master: + 2021-04-30 Richard Biener + + PR c++/98032 + * g++.dg/pr98032.C: New testcase. + + 2021-04-30 Richard Biener + + PR tree-optimization/96513 + * gcc.dg/torture/pr96513.c: New testcase. + + 2021-04-29 Tobias Burnus + + Backported from master: + 2021-04-28 Tobias Burnus + + * gfortran.dg/gomp/map-5.f90: New test. + + 2021-04-28 Uros Bizjak + + Backported from master: + 2021-04-23 UroÅ¡ Bizjak + + PR target/100182 + * gcc.target/i386/pr100182.c: New test. + * gcc.target/i386/pr71245-1.c (dg-final): Xfail scan-assembler-not. + * gcc.target/i386/pr71245-2.c (dg-final): Ditto. + + 2021-04-27 Harald Anlauf + + Backported from master: + 2021-04-24 Harald Anlauf + + PR fortran/100154 + * gfortran.dg/pr100154.f90: New test. + + 2021-04-27 Michael Meissner + + PR target/98952 + * gcc.target/powerpc/pr98952.c: New test. Test backported from + trunk change on 4/23, 886b6c1e8af502b69e3f318b9830b73b88215878. + + 2021-04-26 Alex Coplan + + Backported from master: + 2021-04-08 Alex Coplan + + PR target/99647 + * gcc.c-torture/compile/pr99647.c: New test. + + 2021-04-26 Richard Biener + + Backported from master: + 2021-04-13 Richard Biener + + PR tree-optimization/100053 + * gcc.dg/torture/pr100053.c: New testcase. + * gcc.dg/tree-ssa/ssa-fre-93.c: Likewise. + + 2021-04-26 Richard Biener + + Backported from master: + 2021-04-07 Richard Biener + + PR tree-optimization/99954 + * gcc.dg/torture/pr99954.c: New testcase. + + 2021-04-26 Richard Biener + + Backported from master: + 2021-04-06 Richard Biener + + PR tree-optimization/99880 + * gcc.dg/torture/pr99880.c: New testcase. + + 2021-04-24 Richard Sandiford + + PR rtl-optimization/96796 + * gcc.c-torture/compile/pr96796.c: New test. + + 2021-04-23 Richard Sandiford + + Backported from master: + 2021-04-14 Richard Sandiford + + * gcc.target/aarch64/sve/pr99929_1.c: New file. + * gcc.target/aarch64/sve/pr99929_2.c: Likewise. + + 2021-04-23 Richard Sandiford + + Backported from master: + 2021-03-31 Richard Sandiford + + PR target/98119 + * gcc.target/aarch64/sve/pr98119.c: New test. + + 2021-04-23 Bin Cheng + + Backported from master: + 2021-04-07 Bin Cheng + + PR tree-optimization/98736 + * gcc.c-torture/execute/pr98736.c: New test. + + 2021-04-23 Richard Biener + + Backported from master: + 2020-07-31 Richard Biener + + * gcc.dg/torture/20200727-0.c: New testcase. + + 2021-04-23 Richard Sandiford + + Backported from master: + 2021-04-14 Richard Sandiford + + PR target/99249 + * gcc.target/aarch64/sve/acle/general/pr99246.c: New test. + + 2021-04-23 Richard Sandiford + + Backported from master: + 2021-03-31 Richard Sandiford + + PR rtl-optimization/97141 + PR rtl-optimization/98726 + * gcc.c-torture/compile/pr97141.c: New test. + * gcc.c-torture/compile/pr98726.c: Likewise. + * gcc.target/aarch64/sve/pr97141.c: Likewise. + * gcc.target/aarch64/sve/pr98726.c: Likewise. + + 2021-04-23 Richard Sandiford + + Backported from master: + 2021-03-30 Richard Sandiford + + PR target/98136 + * g++.dg/pr98136.C: New test. + + 2021-04-23 Richard Sandiford + + Backported from master: + 2021-03-31 Richard Sandiford + + PR tree-optimization/98268 + * gcc.target/aarch64/sve/pr98268-1.c: New test. + * gcc.target/aarch64/sve/pr98268-2.c: Likewise. + + 2021-04-23 Richard Sandiford + + Backported from master: + 2021-03-31 Richard Sandiford + + PR tree-optimization/99726 + * gcc.target/i386/pr99726.c: New test. + + 2021-04-22 Alex Coplan + + PR target/99216 + * g++.target/aarch64/sve/pr99216.C: New test. + + 2021-04-21 Patrick Palka + + Backported from master: + 2020-09-19 Patrick Palka + + PR c++/97051 + * g++.dg/cpp2a/is-constant-evaluated11.C: New test. + + 2021-04-21 Patrick Palka + + Backported from master: + 2020-07-30 Patrick Palka + + PR c++/95486 + * g++.dg/cpp2a/class-deduction-alias3.C: New test. + + 2021-04-21 Richard Biener + + Backported from master: + 2021-04-21 Richard Biener + + PR testsuite/100176 + * g++.dg/compat/struct-layout-1_generate.c: Add missing return. + * gcc.dg/compat/struct-layout-1_generate.c: Likewise. + + 2021-04-21 Jakub Jelinek + + Backported from master: + 2021-04-21 Jakub Jelinek + + PR rtl-optimization/100148 + * g++.dg/opt/pr100148.C: New test. + + 2021-04-20 Patrick Palka + + Backported from master: + 2020-10-08 Patrick Palka + + PR c++/97052 + * g++.dg/cpp2a/concepts-defarg2.C: New test. + + 2021-04-20 Patrick Palka + + Backported from master: + 2021-01-20 Patrick Palka + + PR c++/95434 + * g++.dg/cpp2a/lambda-generic9.C: New test. + + 2021-04-20 Patrick Palka + + Backported from master: + 2021-04-14 Patrick Palka + + PR c++/83476 + PR c++/99885 + * g++.dg/cpp1z/class-deduction85.C: New test. + * g++.dg/template/ref11.C: New test. + + 2021-04-20 Jakub Jelinek + + Backported from master: + 2021-04-16 Jakub Jelinek + + PR c++/100111 + * g++.dg/cpp0x/constexpr-100111.C: New test. + + 2021-04-20 Jakub Jelinek + + Backported from master: + 2021-04-16 Jakub Jelinek + + PR target/99767 + * gcc.target/aarch64/pr99767.c: New test. + + 2021-04-20 Jakub Jelinek + + Backported from master: + 2021-04-16 Jakub Jelinek + + PR c++/99833 + * g++.dg/cpp1z/pr99833.C: New test. + * g++.dg/cpp2a/pr99833.C: New test. + + 2021-04-20 Jakub Jelinek + + Backported from master: + 2021-04-12 Jakub Jelinek + + PR rtl-optimization/99905 + * gcc.target/i386/pr99905.c: New test. + + 2021-04-20 Jakub Jelinek + + Backported from master: + 2021-04-12 Jakub Jelinek + + PR debug/99830 + * gcc.dg/pr99830.c: New test. + + 2021-04-20 Jakub Jelinek + + Backported from master: + 2021-04-10 Jakub Jelinek + + PR c/99990 + * gcc.dg/pr99990.c: New test. + + 2021-04-20 Jakub Jelinek + + Backported from master: + 2021-04-10 Jakub Jelinek + + PR lto/99849 + * gcc.dg/lto/pr99849_0.c: New test. + + 2021-04-20 Jakub Jelinek + + Backported from master: + 2021-04-10 Jakub Jelinek + + PR rtl-optimization/98601 + * gcc.dg/torture/pr98601.c: New test. + + 2021-04-20 Jakub Jelinek + + Backported from master: + 2021-04-08 Jakub Jelinek + + PR c++/99859 + * g++.dg/cpp1y/constexpr-99859-1.C: New test. + * g++.dg/cpp1y/constexpr-99859-2.C: New test. + * g++.dg/cpp2a/constexpr-new18.C: New test. + * g++.dg/cpp2a/constexpr-new19.C: New test. + + 2021-04-20 Jakub Jelinek + + Backported from master: + 2021-04-03 Jakub Jelinek + + PR rtl-optimization/99863 + * gcc.target/i386/pr99863.c: New test. + + 2021-04-19 Iain Buclaw + + Backported from master: + 2021-04-19 Iain Buclaw + + PR d/98457 + * gdc.dg/pr98457.d: New test. + + 2021-04-19 Tobias Burnus + + Backported from master: + 2020-11-27 Tobias Burnus + + PR c/97880 + * gcc.dg/goacc/tile-1.c: New test. + + 2021-04-19 Eric Botcazou + + * gnat.dg/opt92.adb: New test. + + 2021-04-18 Harald Anlauf + + Backported from master: + 2021-04-16 Harald Anlauf + Paul Thomas + + PR fortran/63797 + * gfortran.dg/pr63797.f90: New test. + + 2021-04-18 Hafiz Abid Qadeer + + Backported from master: + 2021-04-11 Hafiz Abid Qadeer + + PR middle-end/98088 + * c-c++-common/goacc/collapse-2.c: New. + + 2021-04-16 Tamar Christina + + Backported from master: + 2021-04-16 Tamar Christina + + PR target/100048 + * gcc.target/aarch64/sve/pr100048.c: New test. + + 2021-04-12 Tobias Burnus + + Backported from master: + 2021-04-09 Tobias Burnus + + PR fortran/99817 + * gfortran.dg/coarray/dummy_2.f90: New test. + + 2021-04-10 Marek Polacek + + PR c++/97973 + * g++.dg/conversion/real-to-int1.C: New test. + + 2021-04-09 Marek Polacek + + Backported from master: + 2021-04-09 Marek Polacek + + PR c++/99806 + * g++.dg/concepts/abbrev10.C: New test. + * g++.dg/concepts/abbrev11.C: New test. + + 2021-04-09 Marek Polacek + + Backported from master: + 2021-04-03 Marek Polacek + + PR c++/91416 + * g++.dg/other/gc7.C: New test. + + 2021-04-09 Marek Polacek + + Backported from master: + 2021-04-01 Marek Polacek + + PR c++/99831 + * g++.dg/other/gc6.C: New test. + + 2021-04-09 Marek Polacek + + Backported from master: + 2021-03-25 Marek Polacek + + PR c++/99331 + * g++.dg/warn/Wconversion5.C: New test. + + 2021-04-09 Marek Polacek + + DR 1312 + PR c++/99176 + * g++.dg/cpp0x/constexpr-nullptr-2.C: Adjust dg-error. + * g++.dg/cpp0x/constexpr-cast2.C: New test. + * g++.dg/cpp0x/constexpr-cast3.C: New test. + + 2021-04-09 Marek Polacek + + Backported from master: + 2021-03-05 Marek Polacek + + PR c++/99120 + * g++.dg/warn/Wshadow-17.C: New test. + + 2021-04-09 Marek Polacek + + Backported from master: + 2021-03-05 Marek Polacek + + PR c++/99374 + * g++.dg/cpp1z/noexcept-type23.C: New test. + + 2021-04-09 Marek Polacek + + Backported from master: + 2021-02-05 Marek Polacek + + PR c++/98947 + * g++.dg/cpp2a/volatile5.C: New test. + + 2021-04-09 Marek Polacek + + PR c++/97966 + * g++.dg/cpp0x/noexcept63.C: New test. + + 2021-04-09 Marek Polacek + + Backported from master: + 2021-01-19 Marek Polacek + + PR c++/98333 + * g++.dg/cpp0x/noexcept62.C: New test. + 2021-04-08 Release Manager * GCC 10.3.0 released. diff -Nrcpad gcc-10.3.0/gcc/testsuite/c-c++-common/Wshift-negative-value-1.c gcc-10.4.0/gcc/testsuite/c-c++-common/Wshift-negative-value-1.c *** gcc-10.3.0/gcc/testsuite/c-c++-common/Wshift-negative-value-1.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/testsuite/c-c++-common/Wshift-negative-value-1.c Tue Jun 28 08:54:28 2022 *************** *** 1,13 **** /* PR c/65179 */ /* { dg-do compile } */ /* { dg-options "-O -Wextra" } */ - /* { dg-additional-options "-std=c++11" { target c++ } } */ enum E { A = 0 << 1, B = 1 << 1, ! C = -1 << 1, /* { dg-warning "10:left shift of negative value|not an integer constant" } */ ! /* { dg-error "left operand of shift expression" "shift" { target c++ } .-1 } */ D = 0 >> 1, E = 1 >> 1, F = -1 >> 1 --- 1,12 ---- /* PR c/65179 */ /* { dg-do compile } */ /* { dg-options "-O -Wextra" } */ enum E { A = 0 << 1, B = 1 << 1, ! C = -1 << 1, /* { dg-warning "10:left shift of negative value|not an integer constant" "" { target { c || { c++11 && c++17_down } } } } */ ! /* { dg-error "left operand of shift expression" "shift" { target { c++11 && c++17_down } } .-1 } */ D = 0 >> 1, E = 1 >> 1, F = -1 >> 1 *************** left (int x) *** 23,32 **** int r = 0; r += z << x; r += o << x; ! r += m << x; /* { dg-warning "10:left shift of negative value" } */ r += 0 << x; r += 1 << x; ! r += -1 << x; /* { dg-warning "11:left shift of negative value" } */ r += -1U << x; return r; } --- 22,31 ---- int r = 0; r += z << x; r += o << x; ! r += m << x; /* { dg-warning "10:left shift of negative value" "" { target { c || { c++11 && c++17_down } } } } */ r += 0 << x; r += 1 << x; ! r += -1 << x; /* { dg-warning "11:left shift of negative value" "" { target { c || { c++11 && c++17_down } } } } */ r += -1U << x; return r; } diff -Nrcpad gcc-10.3.0/gcc/testsuite/c-c++-common/Wshift-negative-value-10.c gcc-10.4.0/gcc/testsuite/c-c++-common/Wshift-negative-value-10.c *** gcc-10.3.0/gcc/testsuite/c-c++-common/Wshift-negative-value-10.c Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/c-c++-common/Wshift-negative-value-10.c Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,7 ---- + /* PR c/65179 */ + /* { dg-do compile } */ + /* { dg-options "-O -Wshift-negative-value -fwrapv" } */ + /* { dg-additional-options "-std=c++03" { target c++ } } */ + /* { dg-additional-options "-std=c90" { target c } } */ + + #include "Wshift-negative-value-1.c" diff -Nrcpad gcc-10.3.0/gcc/testsuite/c-c++-common/Wshift-negative-value-2.c gcc-10.4.0/gcc/testsuite/c-c++-common/Wshift-negative-value-2.c *** gcc-10.3.0/gcc/testsuite/c-c++-common/Wshift-negative-value-2.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/testsuite/c-c++-common/Wshift-negative-value-2.c Tue Jun 28 08:54:28 2022 *************** *** 1,14 **** /* PR c/65179 */ /* { dg-do compile } */ /* { dg-options "-O -Wshift-negative-value" } */ - /* { dg-additional-options "-std=c++11" { target c++ } } */ enum E { A = 0 << 1, B = 1 << 1, C = -1 << 1, /* { dg-warning "10:left shift of negative value" } */ ! /* { dg-error "not an integer constant" "no constant" { target c++ } .-1 } */ ! /* { dg-error "left operand of shift expression" "shift" { target c++ } .-2 } */ D = 0 >> 1, E = 1 >> 1, F = -1 >> 1 --- 1,13 ---- /* PR c/65179 */ /* { dg-do compile } */ /* { dg-options "-O -Wshift-negative-value" } */ enum E { A = 0 << 1, B = 1 << 1, C = -1 << 1, /* { dg-warning "10:left shift of negative value" } */ ! /* { dg-error "not an integer constant" "no constant" { target { c++11 && c++17_down } } .-1 } */ ! /* { dg-error "left operand of shift expression" "shift" { target { c++11 && c++17_down } } .-2 } */ D = 0 >> 1, E = 1 >> 1, F = -1 >> 1 diff -Nrcpad gcc-10.3.0/gcc/testsuite/c-c++-common/Wshift-negative-value-3.c gcc-10.4.0/gcc/testsuite/c-c++-common/Wshift-negative-value-3.c *** gcc-10.3.0/gcc/testsuite/c-c++-common/Wshift-negative-value-3.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/testsuite/c-c++-common/Wshift-negative-value-3.c Tue Jun 28 08:54:28 2022 *************** *** 1,14 **** /* PR c/65179 */ /* { dg-do compile } */ /* { dg-options "-O -Wextra -Wno-shift-negative-value" } */ - /* { dg-additional-options "-std=c++11" { target c++ } } */ enum E { A = 0 << 1, B = 1 << 1, C = -1 << 1, ! /* { dg-error "not an integer constant" "no constant" { target c++ } .-1 } */ ! /* { dg-error "left operand of shift expression" "shift" { target c++ } .-2 } */ D = 0 >> 1, E = 1 >> 1, F = -1 >> 1 --- 1,13 ---- /* PR c/65179 */ /* { dg-do compile } */ /* { dg-options "-O -Wextra -Wno-shift-negative-value" } */ enum E { A = 0 << 1, B = 1 << 1, C = -1 << 1, ! /* { dg-error "not an integer constant" "no constant" { target { c++11 && c++17_down } } .-1 } */ ! /* { dg-error "left operand of shift expression" "shift" { target { c++11 && c++17_down } } .-2 } */ D = 0 >> 1, E = 1 >> 1, F = -1 >> 1 diff -Nrcpad gcc-10.3.0/gcc/testsuite/c-c++-common/Wshift-negative-value-4.c gcc-10.4.0/gcc/testsuite/c-c++-common/Wshift-negative-value-4.c *** gcc-10.3.0/gcc/testsuite/c-c++-common/Wshift-negative-value-4.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/testsuite/c-c++-common/Wshift-negative-value-4.c Tue Jun 28 08:54:28 2022 *************** *** 1,14 **** /* PR c/65179 */ /* { dg-do compile } */ /* { dg-options "-O" } */ - /* { dg-additional-options "-std=c++11" { target c++ } } */ enum E { A = 0 << 1, B = 1 << 1, C = -1 << 1, ! /* { dg-error "not an integer constant" "no constant" { target c++ } .-1 } */ ! /* { dg-error "left operand of shift expression" "shift" { target c++ } .-2 } */ D = 0 >> 1, E = 1 >> 1, F = -1 >> 1 --- 1,13 ---- /* PR c/65179 */ /* { dg-do compile } */ /* { dg-options "-O" } */ enum E { A = 0 << 1, B = 1 << 1, C = -1 << 1, ! /* { dg-error "not an integer constant" "no constant" { target { c++11 && c++17_down } } .-1 } */ ! /* { dg-error "left operand of shift expression" "shift" { target { c++11 && c++17_down } } .-2 } */ D = 0 >> 1, E = 1 >> 1, F = -1 >> 1 diff -Nrcpad gcc-10.3.0/gcc/testsuite/c-c++-common/Wshift-negative-value-7.c gcc-10.4.0/gcc/testsuite/c-c++-common/Wshift-negative-value-7.c *** gcc-10.3.0/gcc/testsuite/c-c++-common/Wshift-negative-value-7.c Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/c-c++-common/Wshift-negative-value-7.c Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,5 ---- + /* PR c/65179 */ + /* { dg-do compile } */ + /* { dg-options "-O -Wextra -fwrapv" } */ + + #include "Wshift-negative-value-1.c" diff -Nrcpad gcc-10.3.0/gcc/testsuite/c-c++-common/Wshift-negative-value-8.c gcc-10.4.0/gcc/testsuite/c-c++-common/Wshift-negative-value-8.c *** gcc-10.3.0/gcc/testsuite/c-c++-common/Wshift-negative-value-8.c Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/c-c++-common/Wshift-negative-value-8.c Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,5 ---- + /* PR c/65179 */ + /* { dg-do compile } */ + /* { dg-options "-O -Wshift-negative-value -fwrapv" } */ + + #include "Wshift-negative-value-1.c" diff -Nrcpad gcc-10.3.0/gcc/testsuite/c-c++-common/Wshift-negative-value-9.c gcc-10.4.0/gcc/testsuite/c-c++-common/Wshift-negative-value-9.c *** gcc-10.3.0/gcc/testsuite/c-c++-common/Wshift-negative-value-9.c Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/c-c++-common/Wshift-negative-value-9.c Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,5 ---- + /* PR c/65179 */ + /* { dg-do compile } */ + /* { dg-options "-O -fwrapv" } */ + + #include "Wshift-negative-value-1.c" diff -Nrcpad gcc-10.3.0/gcc/testsuite/c-c++-common/Wshift-overflow-1.c gcc-10.4.0/gcc/testsuite/c-c++-common/Wshift-overflow-1.c *** gcc-10.3.0/gcc/testsuite/c-c++-common/Wshift-overflow-1.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/testsuite/c-c++-common/Wshift-overflow-1.c Tue Jun 28 08:54:28 2022 *************** *** 1,7 **** /* PR c++/55095 */ /* { dg-do compile { target int32 } } */ /* { dg-options "-O" } */ - /* { dg-additional-options "-std=c++11" { target c++ } } */ #define INTM1 (sizeof (int) * __CHAR_BIT__ - 1) #define INTM2 (sizeof (int) * __CHAR_BIT__ - 2) --- 1,6 ---- *************** *** 12,27 **** #define LONG_LONG_MIN (-__LONG_LONG_MAX__-1) int i1 = 1 << INTM1; ! int i2 = 9 << INTM1; /* { dg-warning "requires 36 bits to represent" } */ ! int i3 = 10 << INTM2; /* { dg-warning "requires 35 bits to represent" } */ ! int i4 = __INT_MAX__ << 2; /* { dg-warning "requires 34 bits to represent" } */ ! int i5 = __INT_MAX__ << INTM1; /* { dg-warning "requires 63 bits to represent" } */ int i6 = -1 << INTM1; ! int i7 = -9 << INTM1; /* { dg-warning "requires 36 bits to represent" } */ ! int i8 = -10 << INTM2; /* { dg-warning "requires 35 bits to represent" } */ ! int i9 = -__INT_MAX__ << 2; /* { dg-warning "requires 34 bits to represent" } */ ! int i10 = -__INT_MAX__ << INTM1; /* { dg-warning "requires 63 bits to represent" } */ ! int i11 = INT_MIN << 1; /* { dg-warning "requires 33 bits to represent" } */ int r1 = 1 >> INTM1; int r2 = 9 >> INTM1; --- 11,26 ---- #define LONG_LONG_MIN (-__LONG_LONG_MAX__-1) int i1 = 1 << INTM1; ! int i2 = 9 << INTM1; /* { dg-warning "requires 36 bits to represent" "" { target { c || { c++11 && c++17_down } } } } */ ! int i3 = 10 << INTM2; /* { dg-warning "requires 35 bits to represent" "" { target { c || { c++11 && c++17_down } } } } */ ! int i4 = __INT_MAX__ << 2; /* { dg-warning "requires 34 bits to represent" "" { target { c || { c++11 && c++17_down } } } } */ ! int i5 = __INT_MAX__ << INTM1; /* { dg-warning "requires 63 bits to represent" "" { target { c || { c++11 && c++17_down } } } } */ int i6 = -1 << INTM1; ! int i7 = -9 << INTM1; /* { dg-warning "requires 36 bits to represent" "" { target { c || { c++11 && c++17_down } } } } */ ! int i8 = -10 << INTM2; /* { dg-warning "requires 35 bits to represent" "" { target { c || { c++11 && c++17_down } } } } */ ! int i9 = -__INT_MAX__ << 2; /* { dg-warning "requires 34 bits to represent" "" { target { c || { c++11 && c++17_down } } } } */ ! int i10 = -__INT_MAX__ << INTM1; /* { dg-warning "requires 63 bits to represent" "" { target { c || { c++11 && c++17_down } } } } */ ! int i11 = INT_MIN << 1; /* { dg-warning "requires 33 bits to represent" "" { target { c || { c++11 && c++17_down } } } } */ int r1 = 1 >> INTM1; int r2 = 9 >> INTM1; *************** int r9 = -__INT_MAX__ >> 2; *** 35,63 **** int r10 = -__INT_MAX__ >> INTM1; unsigned u1 = 1 << INTM1; ! unsigned u2 = 9 << INTM1; /* { dg-warning "requires 36 bits to represent" } */ unsigned u3 = 2U << INTM1; unsigned u4 = 9U << INTM1; unsigned u5 = 10U << INTM2; long long int l1 = 1LL << LLONGM1; ! long long int l2 = 9LL << LLONGM1; /* { dg-warning "requires 68 bits to represent" } */ ! long long int l3 = 10LL << LLONGM2; /* { dg-warning "requires 67 bits to represent" } */ ! long long int l4 = __LONG_LONG_MAX__ << 2; /* { dg-warning "requires 66 bits to represent" } */ ! long long int l5 = __LONG_LONG_MAX__ << LLONGM1; /* { dg-warning "requires 127 bits to represent" } */ long long int l6 = -1LL << LLONGM1; ! long long int l7 = -9LL << LLONGM1; /* { dg-warning "requires 68 bits to represent" } */ ! long long int l8 = -10LL << LLONGM2; /* { dg-warning "requires 67 bits to represent" } */ ! long long int l9 = -__LONG_LONG_MAX__ << 2; /* { dg-warning "requires 66 bits to represent" } */ ! long long int l10 = -__LONG_LONG_MAX__ << LLONGM1; /* { dg-warning "requires 127 bits to represent" } */ ! long long int l11 = LONG_LONG_MIN << 1; /* { dg-warning "requires 65 bits to represent" } */ void fn (void) { const int a = 10; const __SIZE_TYPE__ b = INTM1; ! int k1 = a << b; /* { dg-warning "requires 36 bits to represent" } */ ! int k2 = 10 << b; /* { dg-warning "requires 36 bits to represent" } */ ! int k3 = a << INTM1; /* { dg-warning "requires 36 bits to represent" } */ } --- 34,62 ---- int r10 = -__INT_MAX__ >> INTM1; unsigned u1 = 1 << INTM1; ! unsigned u2 = 9 << INTM1; /* { dg-warning "requires 36 bits to represent" "" { target { c || { c++11 && c++17_down } } } } */ unsigned u3 = 2U << INTM1; unsigned u4 = 9U << INTM1; unsigned u5 = 10U << INTM2; long long int l1 = 1LL << LLONGM1; ! long long int l2 = 9LL << LLONGM1; /* { dg-warning "requires 68 bits to represent" "" { target { c || { c++11 && c++17_down } } } } */ ! long long int l3 = 10LL << LLONGM2; /* { dg-warning "requires 67 bits to represent" "" { target { c || { c++11 && c++17_down } } } } */ ! long long int l4 = __LONG_LONG_MAX__ << 2; /* { dg-warning "requires 66 bits to represent" "" { target { c || { c++11 && c++17_down } } } } */ ! long long int l5 = __LONG_LONG_MAX__ << LLONGM1; /* { dg-warning "requires 127 bits to represent" "" { target { c || { c++11 && c++17_down } } } } */ long long int l6 = -1LL << LLONGM1; ! long long int l7 = -9LL << LLONGM1; /* { dg-warning "requires 68 bits to represent" "" { target { c || { c++11 && c++17_down } } } } */ ! long long int l8 = -10LL << LLONGM2; /* { dg-warning "requires 67 bits to represent" "" { target { c || { c++11 && c++17_down } } } } */ ! long long int l9 = -__LONG_LONG_MAX__ << 2; /* { dg-warning "requires 66 bits to represent" "" { target { c || { c++11 && c++17_down } } } } */ ! long long int l10 = -__LONG_LONG_MAX__ << LLONGM1; /* { dg-warning "requires 127 bits to represent" "" { target { c || { c++11 && c++17_down } } } } */ ! long long int l11 = LONG_LONG_MIN << 1; /* { dg-warning "requires 65 bits to represent" "" { target { c || { c++11 && c++17_down } } } } */ void fn (void) { const int a = 10; const __SIZE_TYPE__ b = INTM1; ! int k1 = a << b; /* { dg-warning "requires 36 bits to represent" "" { target { c || { c++11 && c++17_down } } } } */ ! int k2 = 10 << b; /* { dg-warning "requires 36 bits to represent" "" { target { c || { c++11 && c++17_down } } } } */ ! int k3 = a << INTM1; /* { dg-warning "requires 36 bits to represent" "" { target { c || { c++11 && c++17_down } } } } */ } diff -Nrcpad gcc-10.3.0/gcc/testsuite/c-c++-common/Wshift-overflow-10.c gcc-10.4.0/gcc/testsuite/c-c++-common/Wshift-overflow-10.c *** gcc-10.3.0/gcc/testsuite/c-c++-common/Wshift-overflow-10.c Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/c-c++-common/Wshift-overflow-10.c Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,5 ---- + /* PR c++/55095 */ + /* { dg-do compile { target int32 } } */ + /* { dg-options "-O -Wshift-overflow=2 -fwrapv" } */ + + #include "Wshift-overflow-5.c" diff -Nrcpad gcc-10.3.0/gcc/testsuite/c-c++-common/Wshift-overflow-11.c gcc-10.4.0/gcc/testsuite/c-c++-common/Wshift-overflow-11.c *** gcc-10.3.0/gcc/testsuite/c-c++-common/Wshift-overflow-11.c Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/c-c++-common/Wshift-overflow-11.c Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,5 ---- + /* PR c++/55095 */ + /* { dg-do compile { target int32 } } */ + /* { dg-options "-Wshift-overflow=1 -fwrapv" } */ + + #include "Wshift-overflow-6.c" diff -Nrcpad gcc-10.3.0/gcc/testsuite/c-c++-common/Wshift-overflow-12.c gcc-10.4.0/gcc/testsuite/c-c++-common/Wshift-overflow-12.c *** gcc-10.3.0/gcc/testsuite/c-c++-common/Wshift-overflow-12.c Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/c-c++-common/Wshift-overflow-12.c Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,5 ---- + /* PR c++/55095 */ + /* { dg-do compile { target int32 } } */ + /* { dg-options "-Wshift-overflow=2 -fwrapv" } */ + + #include "Wshift-overflow-7.c" diff -Nrcpad gcc-10.3.0/gcc/testsuite/c-c++-common/Wshift-overflow-2.c gcc-10.4.0/gcc/testsuite/c-c++-common/Wshift-overflow-2.c *** gcc-10.3.0/gcc/testsuite/c-c++-common/Wshift-overflow-2.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/testsuite/c-c++-common/Wshift-overflow-2.c Tue Jun 28 08:54:28 2022 *************** *** 1,7 **** /* PR c++/55095 */ /* { dg-do compile { target int32 } } */ /* { dg-options "-O -Wno-shift-overflow" } */ - /* { dg-additional-options "-std=c++11" { target c++ } } */ #define INTM1 (sizeof (int) * __CHAR_BIT__ - 1) #define INTM2 (sizeof (int) * __CHAR_BIT__ - 2) --- 1,6 ---- diff -Nrcpad gcc-10.3.0/gcc/testsuite/c-c++-common/Wshift-overflow-5.c gcc-10.4.0/gcc/testsuite/c-c++-common/Wshift-overflow-5.c *** gcc-10.3.0/gcc/testsuite/c-c++-common/Wshift-overflow-5.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/testsuite/c-c++-common/Wshift-overflow-5.c Tue Jun 28 08:54:28 2022 *************** *** 1,11 **** /* PR c++/55095 */ /* { dg-do compile { target int32 } } */ /* { dg-options "-O -Wshift-overflow=2" } */ - /* { dg-additional-options "-std=c++11" { target c++ } } */ #define INTM1 (sizeof (int) * __CHAR_BIT__ - 1) #define LLONGM1 (sizeof (long long) * __CHAR_BIT__ - 1) ! int i1 = 1 << INTM1; /* { dg-warning "requires 33 bits to represent" } */ ! unsigned u1 = 1 << INTM1; /* { dg-warning "requires 33 bits to represent" } */ ! long long int l1 = 1LL << LLONGM1; /* { dg-warning "requires 65 bits to represent" } */ --- 1,10 ---- /* PR c++/55095 */ /* { dg-do compile { target int32 } } */ /* { dg-options "-O -Wshift-overflow=2" } */ #define INTM1 (sizeof (int) * __CHAR_BIT__ - 1) #define LLONGM1 (sizeof (long long) * __CHAR_BIT__ - 1) ! int i1 = 1 << INTM1; /* { dg-warning "requires 33 bits to represent" "" { target { c || c++11_down } } } */ ! unsigned u1 = 1 << INTM1; /* { dg-warning "requires 33 bits to represent" "" { target { c || c++11_down } } } */ ! long long int l1 = 1LL << LLONGM1; /* { dg-warning "requires 65 bits to represent" "" { target { c || c++11_down } } } */ diff -Nrcpad gcc-10.3.0/gcc/testsuite/c-c++-common/Wshift-overflow-6.c gcc-10.4.0/gcc/testsuite/c-c++-common/Wshift-overflow-6.c *** gcc-10.3.0/gcc/testsuite/c-c++-common/Wshift-overflow-6.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/testsuite/c-c++-common/Wshift-overflow-6.c Tue Jun 28 08:54:28 2022 *************** *** 1,7 **** /* PR c++/55095 */ /* { dg-do compile { target int32 } } */ /* { dg-options "-Wshift-overflow=1" } */ - /* { dg-additional-options "-std=c++11" { target c++ } } */ int i00 = 0b1 << 31; int i01 = 0b10 << 30; --- 1,6 ---- *************** int i27 = 0b1000000000000000000000000000 *** 34,37 **** int i28 = 0b10000000000000000000000000000 << 3; int i29 = 0b100000000000000000000000000000 << 2; int i30 = 0b1000000000000000000000000000000 << 1; ! int i31 = (int) 0b10000000000000000000000000000000u << 1; /* { dg-warning "requires 33 bits to represent" } */ --- 33,36 ---- int i28 = 0b10000000000000000000000000000 << 3; int i29 = 0b100000000000000000000000000000 << 2; int i30 = 0b1000000000000000000000000000000 << 1; ! int i31 = (int) 0b10000000000000000000000000000000u << 1; /* { dg-warning "requires 33 bits to represent" "" { target { c || c++17_down } } } */ diff -Nrcpad gcc-10.3.0/gcc/testsuite/c-c++-common/Wshift-overflow-7.c gcc-10.4.0/gcc/testsuite/c-c++-common/Wshift-overflow-7.c *** gcc-10.3.0/gcc/testsuite/c-c++-common/Wshift-overflow-7.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/testsuite/c-c++-common/Wshift-overflow-7.c Tue Jun 28 08:54:28 2022 *************** *** 1,37 **** /* PR c++/55095 */ /* { dg-do compile { target int32 } } */ /* { dg-options "-Wshift-overflow=2" } */ - /* { dg-additional-options "-std=c++11" { target c++ } } */ ! int i00 = 0b1 << 31; /* { dg-warning "requires 33 bits to represent" } */ ! int i01 = 0b10 << 30; /* { dg-warning "requires 33 bits to represent" } */ ! int i02 = 0b100 << 29; /* { dg-warning "requires 33 bits to represent" } */ ! int i03 = 0b1000 << 28; /* { dg-warning "requires 33 bits to represent" } */ ! int i04 = 0b10000 << 27; /* { dg-warning "requires 33 bits to represent" } */ ! int i05 = 0b100000 << 26; /* { dg-warning "requires 33 bits to represent" } */ ! int i06 = 0b1000000 << 25; /* { dg-warning "requires 33 bits to represent" } */ ! int i07 = 0b10000000 << 24; /* { dg-warning "requires 33 bits to represent" } */ ! int i08 = 0b100000000 << 23; /* { dg-warning "requires 33 bits to represent" } */ ! int i09 = 0b1000000000 << 22; /* { dg-warning "requires 33 bits to represent" } */ ! int i10 = 0b10000000000 << 21; /* { dg-warning "requires 33 bits to represent" } */ ! int i11 = 0b100000000000 << 20; /* { dg-warning "requires 33 bits to represent" } */ ! int i12 = 0b1000000000000 << 19; /* { dg-warning "requires 33 bits to represent" } */ ! int i13 = 0b10000000000000 << 18; /* { dg-warning "requires 33 bits to represent" } */ ! int i14 = 0b100000000000000 << 17; /* { dg-warning "requires 33 bits to represent" } */ ! int i15 = 0b1000000000000000 << 16; /* { dg-warning "requires 33 bits to represent" } */ ! int i16 = 0b10000000000000000 << 15; /* { dg-warning "requires 33 bits to represent" } */ ! int i17 = 0b100000000000000000 << 14; /* { dg-warning "requires 33 bits to represent" } */ ! int i18 = 0b1000000000000000000 << 13; /* { dg-warning "requires 33 bits to represent" } */ ! int i19 = 0b10000000000000000000 << 12; /* { dg-warning "requires 33 bits to represent" } */ ! int i20 = 0b100000000000000000000 << 11; /* { dg-warning "requires 33 bits to represent" } */ ! int i21 = 0b1000000000000000000000 << 10; /* { dg-warning "requires 33 bits to represent" } */ ! int i22 = 0b10000000000000000000000 << 9; /* { dg-warning "requires 33 bits to represent" } */ ! int i23 = 0b100000000000000000000000 << 8; /* { dg-warning "requires 33 bits to represent" } */ ! int i24 = 0b1000000000000000000000000 << 7; /* { dg-warning "requires 33 bits to represent" } */ ! int i25 = 0b10000000000000000000000000 << 6; /* { dg-warning "requires 33 bits to represent" } */ ! int i26 = 0b100000000000000000000000000 << 5; /* { dg-warning "requires 33 bits to represent" } */ ! int i27 = 0b1000000000000000000000000000 << 4; /* { dg-warning "requires 33 bits to represent" } */ ! int i28 = 0b10000000000000000000000000000 << 3; /* { dg-warning "requires 33 bits to represent" } */ ! int i29 = 0b100000000000000000000000000000 << 2; /* { dg-warning "requires 33 bits to represent" } */ ! int i30 = 0b1000000000000000000000000000000 << 1; /* { dg-warning "requires 33 bits to represent" } */ ! int i31 = (int) 0b10000000000000000000000000000000u << 1; /* { dg-warning "requires 33 bits to represent" } */ --- 1,36 ---- /* PR c++/55095 */ /* { dg-do compile { target int32 } } */ /* { dg-options "-Wshift-overflow=2" } */ ! int i00 = 0b1 << 31; /* { dg-warning "requires 33 bits to represent" "" { target { c || c++11_down } } } */ ! int i01 = 0b10 << 30; /* { dg-warning "requires 33 bits to represent" "" { target { c || c++11_down } } } */ ! int i02 = 0b100 << 29; /* { dg-warning "requires 33 bits to represent" "" { target { c || c++11_down } } } */ ! int i03 = 0b1000 << 28; /* { dg-warning "requires 33 bits to represent" "" { target { c || c++11_down } } } */ ! int i04 = 0b10000 << 27; /* { dg-warning "requires 33 bits to represent" "" { target { c || c++11_down } } } */ ! int i05 = 0b100000 << 26; /* { dg-warning "requires 33 bits to represent" "" { target { c || c++11_down } } } */ ! int i06 = 0b1000000 << 25; /* { dg-warning "requires 33 bits to represent" "" { target { c || c++11_down } } } */ ! int i07 = 0b10000000 << 24; /* { dg-warning "requires 33 bits to represent" "" { target { c || c++11_down } } } */ ! int i08 = 0b100000000 << 23; /* { dg-warning "requires 33 bits to represent" "" { target { c || c++11_down } } } */ ! int i09 = 0b1000000000 << 22; /* { dg-warning "requires 33 bits to represent" "" { target { c || c++11_down } } } */ ! int i10 = 0b10000000000 << 21; /* { dg-warning "requires 33 bits to represent" "" { target { c || c++11_down } } } */ ! int i11 = 0b100000000000 << 20; /* { dg-warning "requires 33 bits to represent" "" { target { c || c++11_down } } } */ ! int i12 = 0b1000000000000 << 19; /* { dg-warning "requires 33 bits to represent" "" { target { c || c++11_down } } } */ ! int i13 = 0b10000000000000 << 18; /* { dg-warning "requires 33 bits to represent" "" { target { c || c++11_down } } } */ ! int i14 = 0b100000000000000 << 17; /* { dg-warning "requires 33 bits to represent" "" { target { c || c++11_down } } } */ ! int i15 = 0b1000000000000000 << 16; /* { dg-warning "requires 33 bits to represent" "" { target { c || c++11_down } } } */ ! int i16 = 0b10000000000000000 << 15; /* { dg-warning "requires 33 bits to represent" "" { target { c || c++11_down } } } */ ! int i17 = 0b100000000000000000 << 14; /* { dg-warning "requires 33 bits to represent" "" { target { c || c++11_down } } } */ ! int i18 = 0b1000000000000000000 << 13; /* { dg-warning "requires 33 bits to represent" "" { target { c || c++11_down } } } */ ! int i19 = 0b10000000000000000000 << 12; /* { dg-warning "requires 33 bits to represent" "" { target { c || c++11_down } } } */ ! int i20 = 0b100000000000000000000 << 11; /* { dg-warning "requires 33 bits to represent" "" { target { c || c++11_down } } } */ ! int i21 = 0b1000000000000000000000 << 10; /* { dg-warning "requires 33 bits to represent" "" { target { c || c++11_down } } } */ ! int i22 = 0b10000000000000000000000 << 9; /* { dg-warning "requires 33 bits to represent" "" { target { c || c++11_down } } } */ ! int i23 = 0b100000000000000000000000 << 8; /* { dg-warning "requires 33 bits to represent" "" { target { c || c++11_down } } } */ ! int i24 = 0b1000000000000000000000000 << 7; /* { dg-warning "requires 33 bits to represent" "" { target { c || c++11_down } } } */ ! int i25 = 0b10000000000000000000000000 << 6; /* { dg-warning "requires 33 bits to represent" "" { target { c || c++11_down } } } */ ! int i26 = 0b100000000000000000000000000 << 5; /* { dg-warning "requires 33 bits to represent" "" { target { c || c++11_down } } } */ ! int i27 = 0b1000000000000000000000000000 << 4; /* { dg-warning "requires 33 bits to represent" "" { target { c || c++11_down } } } */ ! int i28 = 0b10000000000000000000000000000 << 3; /* { dg-warning "requires 33 bits to represent" "" { target { c || c++11_down } } } */ ! int i29 = 0b100000000000000000000000000000 << 2; /* { dg-warning "requires 33 bits to represent" "" { target { c || c++11_down } } } */ ! int i30 = 0b1000000000000000000000000000000 << 1; /* { dg-warning "requires 33 bits to represent" "" { target { c || c++11_down } } } */ ! int i31 = (int) 0b10000000000000000000000000000000u << 1; /* { dg-warning "requires 33 bits to represent" "" { target { c || c++17_down } } } */ diff -Nrcpad gcc-10.3.0/gcc/testsuite/c-c++-common/Wshift-overflow-8.c gcc-10.4.0/gcc/testsuite/c-c++-common/Wshift-overflow-8.c *** gcc-10.3.0/gcc/testsuite/c-c++-common/Wshift-overflow-8.c Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/c-c++-common/Wshift-overflow-8.c Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,5 ---- + /* PR c++/55095 */ + /* { dg-do compile { target int32 } } */ + /* { dg-options "-O -fwrapv" } */ + + #include "Wshift-overflow-1.c" diff -Nrcpad gcc-10.3.0/gcc/testsuite/c-c++-common/Wshift-overflow-9.c gcc-10.4.0/gcc/testsuite/c-c++-common/Wshift-overflow-9.c *** gcc-10.3.0/gcc/testsuite/c-c++-common/Wshift-overflow-9.c Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/c-c++-common/Wshift-overflow-9.c Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,7 ---- + /* PR c++/55095 */ + /* { dg-do compile { target int32 } } */ + /* { dg-options "-O -Wshift-overflow -fwrapv" } */ + /* { dg-additional-options "-std=gnu90" { target c } } */ + /* { dg-additional-options "-std=c++03" { target c++ } } */ + + #include "Wshift-overflow-1.c" diff -Nrcpad gcc-10.3.0/gcc/testsuite/c-c++-common/builtin-convertvector-3.c gcc-10.4.0/gcc/testsuite/c-c++-common/builtin-convertvector-3.c *** gcc-10.3.0/gcc/testsuite/c-c++-common/builtin-convertvector-3.c Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/c-c++-common/builtin-convertvector-3.c Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,11 ---- + /* { dg-do compile } */ + /* { dg-options "-O2" } */ + + typedef int v4si __attribute__((vector_size (4 * sizeof (int)))); + typedef double v4df __attribute__((vector_size (4 * sizeof (double)))); + double + foo (void) + { + v4si a = { 1, 2, 3, 4 }; + return __builtin_convertvector (a, v4df)[1]; + } diff -Nrcpad gcc-10.3.0/gcc/testsuite/c-c++-common/cpp/pr104147.c gcc-10.4.0/gcc/testsuite/c-c++-common/cpp/pr104147.c *** gcc-10.3.0/gcc/testsuite/c-c++-common/cpp/pr104147.c Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/c-c++-common/cpp/pr104147.c Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,27 ---- + /* PR preprocessor/104147 */ + /* { dg-do run } */ + + #define X(x,y) x y + #define STR_(x) #x + #define STR(x) STR_(x) + const char *str = + STR(X(Y,Y)) + #define Y() + STR(X(Y,Y)) + #undef Y + STR(X(Y,Y)) + #define Y() + STR(X(Y,Y)) + STR(X(Y, + Y)) + STR(X(Y + ,Y)) + ; + + int + main () + { + if (__builtin_strcmp (str, "Y YY YY YY YY YY Y") != 0) + __builtin_abort (); + return 0; + } diff -Nrcpad gcc-10.3.0/gcc/testsuite/c-c++-common/cpp/va-opt-10.c gcc-10.4.0/gcc/testsuite/c-c++-common/cpp/va-opt-10.c *** gcc-10.3.0/gcc/testsuite/c-c++-common/cpp/va-opt-10.c Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/c-c++-common/cpp/va-opt-10.c Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,18 ---- + /* PR preprocessor/105732 */ + /* { dg-do compile } */ + /* { dg-options "-std=gnu99" { target c } } */ + /* { dg-options "-std=c++20" { target c++ } } */ + + #define m1(p1, p2, p3) p3 + #define m2(p1, ...) 1##__VA_OPT__(foo) + #define m3(...) m1(1, 2, m2) + #define m4(p1, ...) 1 __VA_OPT__() + #define m5(...) m1(1, 2, m4) + #if m3(,)(,) + #else + #error + #endif + #if m5(,)(,) + #else + #error + #endif diff -Nrcpad gcc-10.3.0/gcc/testsuite/c-c++-common/cpp/va-opt-9.c gcc-10.4.0/gcc/testsuite/c-c++-common/cpp/va-opt-9.c *** gcc-10.3.0/gcc/testsuite/c-c++-common/cpp/va-opt-9.c Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/c-c++-common/cpp/va-opt-9.c Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,20 ---- + /* PR preprocessor/89971 */ + /* { dg-do compile } */ + /* { dg-options "-std=gnu99" { target c } } */ + /* { dg-options "-std=c++20" { target c++ } } */ + + int a, c; + #define m1(...) a /##__VA_OPT__(b) c + #define m2(...) a /##__VA_OPT__() c + #define m3(...) a##__VA_OPT__()##b = 1 + #define m4(...) a##__VA_OPT__(b c d)##e = 2 + + int + foo (void) + { + int d = m1(); + int e = m2(1); + int m3(1 2 3); + int m4(); + return d + e + ab + ae; + } diff -Nrcpad gcc-10.3.0/gcc/testsuite/c-c++-common/goacc/collapse-2.c gcc-10.4.0/gcc/testsuite/c-c++-common/goacc/collapse-2.c *** gcc-10.3.0/gcc/testsuite/c-c++-common/goacc/collapse-2.c Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/c-c++-common/goacc/collapse-2.c Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,56 ---- + /* Test for ICE as reported in PR98088. */ + + int i, j; + + void + f1 (void) + { + #pragma acc parallel + #pragma acc loop collapse (2) + for (i = 5; i > 5; i--) + for (j = 5; j > 0; j--) + ; + } + + void + f2 (void) + { + #pragma acc parallel + #pragma acc loop collapse (2) + for (i = 0; i < 5; i++) + for (j = 5; j > 0; j--) + ; + } + + void + f3 (void) + { + #pragma acc parallel + #pragma acc loop collapse (2) + for (i = 5; i >= 0; i--) + for (j = 5; j >= 0; j--) + ; + } + + void f4 () + { + #pragma acc parallel loop tile(2, 3) + for (int i = 0; i > 8; i++) + for (int j = 0; j > 8; j++); + } + + void f5 () + { + #pragma acc parallel loop tile(2, 3) + for (int i = 0; i > 8; i++) + for (long j = 0; j > 8; j++); + } + + void + f6 (int a[32][32]) + { + #pragma acc parallel loop collapse(2) + for (int i = 16; i > 8; i--) + for (int j = 16; j > 8; j--) + a[i][j] = i + j; + } diff -Nrcpad gcc-10.3.0/gcc/testsuite/c-c++-common/gomp/pr100450.c gcc-10.4.0/gcc/testsuite/c-c++-common/gomp/pr100450.c *** gcc-10.3.0/gcc/testsuite/c-c++-common/gomp/pr100450.c Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/c-c++-common/gomp/pr100450.c Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,20 ---- + /* PR c/100450 */ + /* { dg-do compile } */ + /* { dg-options "-fopenmp -save-temps -Wunknown-pragmas" } */ + + #define TEST(T) { \ + {T} \ + } + #define CLAUSES reduction(+:red) + #define PARALLEL_FOR(X) TEST({ \ + _Pragma("omp for CLAUSES") \ + X \ + }) + + void foo() + { + int red = 0; + int A[3] = {}; + #pragma omp parallel shared(red) + PARALLEL_FOR( for(int i=0; i < 3; i++) red += A[i]; ) + } diff -Nrcpad gcc-10.3.0/gcc/testsuite/c-c++-common/gomp/pr101535-1.c gcc-10.4.0/gcc/testsuite/c-c++-common/gomp/pr101535-1.c *** gcc-10.3.0/gcc/testsuite/c-c++-common/gomp/pr101535-1.c Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/c-c++-common/gomp/pr101535-1.c Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,31 ---- + /* PR middle-end/101535 */ + + void + foo (void) + { + int a = 1, i; + #pragma omp target data map(to:a) + #pragma omp for lastprivate(i) /* { dg-error "lastprivate variable 'i' is private in outer context" } */ + for (i = 1; i < 2; i++) + ; + } + + void + bar (void) + { + int a = 1, i; + #pragma omp target private(i) + #pragma omp for lastprivate(i) /* { dg-error "lastprivate variable 'i' is private in outer context" } */ + for (i = 1; i < 2; i++) + ; + } + + void + baz (void) + { + int a = 1, i; + #pragma omp target firstprivate(i) + #pragma omp for lastprivate(i) /* { dg-error "lastprivate variable 'i' is private in outer context" } */ + for (i = 1; i < 2; i++) + ; + } diff -Nrcpad gcc-10.3.0/gcc/testsuite/c-c++-common/gomp/pr101535-2.c gcc-10.4.0/gcc/testsuite/c-c++-common/gomp/pr101535-2.c *** gcc-10.3.0/gcc/testsuite/c-c++-common/gomp/pr101535-2.c Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/c-c++-common/gomp/pr101535-2.c Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,11 ---- + /* PR middle-end/101535 */ + + void + foo (void) + { + int a = 1, i; + #pragma omp target map(tofrom:i) + #pragma omp for lastprivate(i) + for (i = 1; i < 2; i++) + ; + } diff -Nrcpad gcc-10.3.0/gcc/testsuite/c-c++-common/gomp/pr102431.c gcc-10.4.0/gcc/testsuite/c-c++-common/gomp/pr102431.c *** gcc-10.3.0/gcc/testsuite/c-c++-common/gomp/pr102431.c Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/c-c++-common/gomp/pr102431.c Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,16 ---- + /* PR middle-end/102431 */ + + struct S { int s; } s; + void add (struct S *, struct S *); + void init (struct S *); + void bar (int i, struct S *); + #pragma omp declare reduction (+:struct S:add (&omp_out, &omp_in)) initializer (init (&omp_priv)) + + void + foo (void) + { + int i; + #pragma omp loop bind(teams) reduction(+:s) + for (i = 0; i < 8; i++) + bar (i, &s); + } diff -Nrcpad gcc-10.3.0/gcc/testsuite/c-c++-common/pr100785.c gcc-10.4.0/gcc/testsuite/c-c++-common/pr100785.c *** gcc-10.3.0/gcc/testsuite/c-c++-common/pr100785.c Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/c-c++-common/pr100785.c Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,21 ---- + /* PR inline-asm/100785 */ + + struct S { int a : 1; }; + + void + foo (struct S *x) + { + __asm__ ("" : "+m" (x->a)); /* { dg-error "address of bit-field" } */ + } /* { dg-error "invalid lvalue in 'asm' output 0" "" { target c } .-1 } */ + /* { dg-error "memory input 1 is not directly addressable" "" { target c } .-2 } */ + void + bar (struct S *x) + { + __asm__ ("" : "=m" (x->a)); /* { dg-error "address of bit-field" } */ + } /* { dg-error "invalid lvalue in 'asm' output 0" "" { target c } .-1 } */ + + void + baz (struct S *x) + { + __asm__ ("" : : "m" (x->a)); /* { dg-error "address of bit-field" } */ + } /* { dg-error "memory input 0 is not directly addressable" "" { target c } .-1 } */ diff -Nrcpad gcc-10.3.0/gcc/testsuite/c-c++-common/pr101537.c gcc-10.4.0/gcc/testsuite/c-c++-common/pr101537.c *** gcc-10.3.0/gcc/testsuite/c-c++-common/pr101537.c Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/c-c++-common/pr101537.c Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,26 ---- + /* PR c/101537 */ + /* { dg-do compile } */ + /* { dg-options "-Wconversion" } */ + + int + foo () + { + int aaa = 1; + unsigned char bbb = 0; + bbb |= aaa ? 1 : 0; + return bbb; + } + + int + bar (unsigned char x, int f) + { + x |= f ? 1 : 0; + return x; + } + + int + baz (unsigned char x, int f) + { + x = x | f ? 1 : 0; + return x; + } diff -Nrcpad gcc-10.3.0/gcc/testsuite/c-c++-common/pr103881.c gcc-10.4.0/gcc/testsuite/c-c++-common/pr103881.c *** gcc-10.3.0/gcc/testsuite/c-c++-common/pr103881.c Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/c-c++-common/pr103881.c Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,20 ---- + /* PR c/103881 */ + /* { dg-do compile } */ + /* { dg-options "-Wconversion" } */ + + unsigned char bar (void); + + void + foo (void) + { + unsigned char t = 0; + t |= bar (); + t |= bar () & bar (); /* { dg-bogus "conversion from 'int' to 'unsigned char' may change value" "" { xfail c++ } } */ + t &= bar () & bar (); /* { dg-bogus "conversion from 'int' to 'unsigned char' may change value" "" { xfail c++ } } */ + t = bar () & bar (); + + unsigned char a = bar (); + t |= a & a; + t |= bar () & a; /* { dg-bogus "conversion from 'int' to 'unsigned char' may change value" "" { xfail c++ } } */ + t |= a & bar (); /* { dg-bogus "conversion from 'int' to 'unsigned char' may change value" "" { xfail c++ } } */ + } diff -Nrcpad gcc-10.3.0/gcc/testsuite/c-c++-common/pr105186.c gcc-10.4.0/gcc/testsuite/c-c++-common/pr105186.c *** gcc-10.3.0/gcc/testsuite/c-c++-common/pr105186.c Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/c-c++-common/pr105186.c Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,5 ---- + /* PR c++/105186 */ + /* { dg-do compile } */ + + __attribute__((__int128)) int i; /* { dg-warning "'__int128' attribute directive ignored" } */ + __attribute__((__int128__)) int j; /* { dg-warning "'__int128' attribute directive ignored" } */ diff -Nrcpad gcc-10.3.0/gcc/testsuite/c-c++-common/pr105998.c gcc-10.4.0/gcc/testsuite/c-c++-common/pr105998.c *** gcc-10.3.0/gcc/testsuite/c-c++-common/pr105998.c Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/c-c++-common/pr105998.c Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,12 ---- + /* PR middle-end/105998 */ + + typedef int __attribute__((__vector_size__ (sizeof (long long)))) V; + + V v; + + long long + foo (void) + { + long long l = (long long) ((0 | v) - ((V) { } == 0)); + return l; + } diff -Nrcpad gcc-10.3.0/gcc/testsuite/c-c++-common/ubsan/float-div-by-zero-2.c gcc-10.4.0/gcc/testsuite/c-c++-common/ubsan/float-div-by-zero-2.c *** gcc-10.3.0/gcc/testsuite/c-c++-common/ubsan/float-div-by-zero-2.c Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/c-c++-common/ubsan/float-div-by-zero-2.c Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,18 ---- + /* { dg-do run } */ + /* { dg-shouldfail "ubsan" } */ + /* { dg-options "-fsanitize=float-divide-by-zero -fno-sanitize-recover=float-divide-by-zero -fsanitize-recover=integer-divide-by-zero" } */ + + int + main (void) + { + volatile float a = 1.3f; + volatile double b = 0.0; + volatile int c = 4; + volatile float res; + + res = a / b; + + return 0; + } + + /* { dg-output "division by zero" } */ diff -Nrcpad gcc-10.3.0/gcc/testsuite/c-c++-common/ubsan/pr64888.c gcc-10.4.0/gcc/testsuite/c-c++-common/ubsan/pr64888.c *** gcc-10.3.0/gcc/testsuite/c-c++-common/ubsan/pr64888.c Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/c-c++-common/ubsan/pr64888.c Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,27 ---- + /* PR middle-end/64888 */ + /* { dg-do compile { target fopenmp } } */ + /* { dg-options "-fopenmp -fsanitize=undefined" } */ + + int a, b; + + void + foo () + { + int c; + #pragma omp parallel default (none) shared (a, b) private (c) + { + c = a / b; /* { dg-bogus "not specified in enclosing" } */ + (void) c; + } + #pragma omp task default (none) shared (a, b) private (c) + { + c = a << b; /* { dg-bogus "not specified in enclosing" } */ + (void) c; + } + #pragma omp teams default (none) shared (a, b) + { + int d[a]; /* { dg-bogus "not specified in enclosing" } */ + d[0] = 0; + (void) d[0]; + } + } diff -Nrcpad gcc-10.3.0/gcc/testsuite/g++.dg/abi/anon4.C gcc-10.4.0/gcc/testsuite/g++.dg/abi/anon4.C *** gcc-10.3.0/gcc/testsuite/g++.dg/abi/anon4.C Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/testsuite/g++.dg/abi/anon4.C Tue Jun 28 08:54:28 2022 *************** *** 1,4 **** --- 1,5 ---- // PR c++/65209 + // { dg-additional-options "-fno-pie" { target sparc*-*-* } } // { dg-final { scan-assembler-not "comdat" } } // Everything involving the anonymous namespace bits should be private, not diff -Nrcpad gcc-10.3.0/gcc/testsuite/g++.dg/abi/lambda-defarg1.C gcc-10.4.0/gcc/testsuite/g++.dg/abi/lambda-defarg1.C *** gcc-10.3.0/gcc/testsuite/g++.dg/abi/lambda-defarg1.C Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/g++.dg/abi/lambda-defarg1.C Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,11 ---- + // PR c++/91241 + // { dg-do compile { target c++11 } } + + struct A { + int *b(const int & = []() -> int { return 0; }(), + const int & = []() -> int { return 0; }()); + }; + int *A::b(const int &, const int &) { b(); return 0; } + // { dg-final { scan-assembler "_ZN1A1bERKiS1_" } } + // { dg-final { scan-assembler "_ZZN1A1bERKiS1_Ed_NKUlvE_clEv" } } + // { dg-final { scan-assembler "_ZZN1A1bERKiS1_Ed0_NKUlvE_clEv" } } diff -Nrcpad gcc-10.3.0/gcc/testsuite/g++.dg/asan/pr104449.C gcc-10.4.0/gcc/testsuite/g++.dg/asan/pr104449.C *** gcc-10.3.0/gcc/testsuite/g++.dg/asan/pr104449.C Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/g++.dg/asan/pr104449.C Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,16 ---- + // PR sanitizer/104449 + // { dg-do compile } + // { dg-options "-fexceptions -fsanitize=address -fstack-check=generic" } + + void bar (int *); + struct A { A (); ~A (); }; + + void + foo (int n) + { + A b; + { + int a[n]; + bar (a); + } + } diff -Nrcpad gcc-10.3.0/gcc/testsuite/g++.dg/compat/struct-layout-1_generate.c gcc-10.4.0/gcc/testsuite/g++.dg/compat/struct-layout-1_generate.c *** gcc-10.3.0/gcc/testsuite/g++.dg/compat/struct-layout-1_generate.c Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/testsuite/g++.dg/compat/struct-layout-1_generate.c Tue Jun 28 08:54:28 2022 *************** subvalues (struct entry *e, char *p, cha *** 983,988 **** --- 983,990 ---- if (e[0].len != 0) output_FNB ('B', e); return 1; + default: + return 0; } } diff -Nrcpad gcc-10.3.0/gcc/testsuite/g++.dg/concepts/abbrev10.C gcc-10.4.0/gcc/testsuite/g++.dg/concepts/abbrev10.C *** gcc-10.3.0/gcc/testsuite/g++.dg/concepts/abbrev10.C Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/g++.dg/concepts/abbrev10.C Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,18 ---- + // PR c++/99806 + // { dg-do compile { target c++14 } } + // { dg-additional-options "-fconcepts" } + + struct S { + void f(auto, auto, int = 3); + void f2(auto, auto, int = 3) { } + template static T g(T, auto, int = 3); + }; + + void + g () + { + S::g(1, 2); + S s; + s.f(1, 2); + s.f2(1, 2); + } diff -Nrcpad gcc-10.3.0/gcc/testsuite/g++.dg/concepts/abbrev11.C gcc-10.4.0/gcc/testsuite/g++.dg/concepts/abbrev11.C *** gcc-10.3.0/gcc/testsuite/g++.dg/concepts/abbrev11.C Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/g++.dg/concepts/abbrev11.C Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,10 ---- + // PR c++/99806 + // { dg-do compile { target c++14 } } + // { dg-additional-options "-fconcepts" } + + template concept C = requires (T a) { a.f(0); }; + struct S { + void f(auto) noexcept(B); + static constexpr bool B = true; + }; + static_assert(C, ""); diff -Nrcpad gcc-10.3.0/gcc/testsuite/g++.dg/concepts/pr105061.C gcc-10.4.0/gcc/testsuite/g++.dg/concepts/pr105061.C *** gcc-10.3.0/gcc/testsuite/g++.dg/concepts/pr105061.C Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/g++.dg/concepts/pr105061.C Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,13 ---- + // PR c++/105061 + + template + struct A { T : V, u : U; }; + template + struct B { unsigned : V, u : U; }; + typedef unsigned uns; + template + struct C { uns : V, u : U; }; + + A a = { 13 }; + B<5, 6> b = { 26 }; + C<8, 9> c = { 42 }; diff -Nrcpad gcc-10.3.0/gcc/testsuite/g++.dg/conversion/real-to-int1.C gcc-10.4.0/gcc/testsuite/g++.dg/conversion/real-to-int1.C *** gcc-10.3.0/gcc/testsuite/g++.dg/conversion/real-to-int1.C Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/g++.dg/conversion/real-to-int1.C Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,17 ---- + // PR c++/97973 + + void (*foo[1])(const int &); + void (*foo2[1])(const double &); + + template + void f () + { + (foo[0])(1.1); + (foo2[0])(1); + } + + void + g () + { + f (); + } diff -Nrcpad gcc-10.3.0/gcc/testsuite/g++.dg/coroutines/pr95520.C gcc-10.4.0/gcc/testsuite/g++.dg/coroutines/pr95520.C *** gcc-10.3.0/gcc/testsuite/g++.dg/coroutines/pr95520.C Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/g++.dg/coroutines/pr95520.C Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,29 ---- + // { dg-do run } + // { dg-output "coroutine name: MyFoo" } + #include + #include + + struct pt + { + using handle_t = std::coroutine_handle; + auto get_return_object() noexcept { return handle_t::from_promise(*this); } + + std::suspend_never initial_suspend () const noexcept { return {}; } + std::suspend_never final_suspend () const noexcept { return {}; } + void return_void() const noexcept {} + void unhandled_exception() const noexcept {} + }; + + template <> struct std::coroutine_traits + { using promise_type = pt; }; + + static pt::handle_t MyFoo () + { + printf ("coroutine name: %s\n", __builtin_FUNCTION()); + co_return; + } + + int main() + { + MyFoo (); + } diff -Nrcpad gcc-10.3.0/gcc/testsuite/g++.dg/cpp0x/alias-decl-72.C gcc-10.4.0/gcc/testsuite/g++.dg/cpp0x/alias-decl-72.C *** gcc-10.3.0/gcc/testsuite/g++.dg/cpp0x/alias-decl-72.C Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/g++.dg/cpp0x/alias-decl-72.C Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,9 ---- + // PR c++/100102 + // { dg-do compile { target c++11 } } + + template struct ratio; + template struct duration { + static constexpr int _S_gcd(); + template using __is_harmonic = ratio<_S_gcd>; + using type = __is_harmonic; + }; diff -Nrcpad gcc-10.3.0/gcc/testsuite/g++.dg/cpp0x/alias-decl-72a.C gcc-10.4.0/gcc/testsuite/g++.dg/cpp0x/alias-decl-72a.C *** gcc-10.3.0/gcc/testsuite/g++.dg/cpp0x/alias-decl-72a.C Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/g++.dg/cpp0x/alias-decl-72a.C Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,9 ---- + // PR c++/100102 + // { dg-do compile { target c++11 } } + + template struct ratio; + template struct duration { + static constexpr int _S_gcd(); + template using __is_harmonic = ratio<(duration::_S_gcd)()>; + using type = __is_harmonic; + }; diff -Nrcpad gcc-10.3.0/gcc/testsuite/g++.dg/cpp0x/alias-decl-equiv1.C gcc-10.4.0/gcc/testsuite/g++.dg/cpp0x/alias-decl-equiv1.C *** gcc-10.3.0/gcc/testsuite/g++.dg/cpp0x/alias-decl-equiv1.C Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/g++.dg/cpp0x/alias-decl-equiv1.C Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,13 ---- + // PR c++/100032 + // { dg-do compile { target c++11 } } + + template class> struct X { }; + template struct Y { }; + template using Z = const Y; + + template using W = Z; + using U = X; + using U = X; + + using T = X; + using T = X; // { dg-error "conflicting declaration" } diff -Nrcpad gcc-10.3.0/gcc/testsuite/g++.dg/cpp0x/alias-decl-variadic2.C gcc-10.4.0/gcc/testsuite/g++.dg/cpp0x/alias-decl-variadic2.C *** gcc-10.3.0/gcc/testsuite/g++.dg/cpp0x/alias-decl-variadic2.C Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/g++.dg/cpp0x/alias-decl-variadic2.C Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,13 ---- + // PR c++/86355 + // { dg-do compile { target c++11 } } + + template struct integral_constant { + static const int value = 1; + }; + template using mp_all = integral_constant; + template using check2 = mp_all>>; + check2<> x; + + template struct assert_same; + template struct assert_same { }; + assert_same> a; diff -Nrcpad gcc-10.3.0/gcc/testsuite/g++.dg/cpp0x/constexpr-100111.C gcc-10.4.0/gcc/testsuite/g++.dg/cpp0x/constexpr-100111.C *** gcc-10.3.0/gcc/testsuite/g++.dg/cpp0x/constexpr-100111.C Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/g++.dg/cpp0x/constexpr-100111.C Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,7 ---- + // PR c++/100111 + // { dg-do compile { target c++11 } } + // { dg-options "-fno-elide-constructors" } + + struct A {}; + struct B : A { int b; constexpr B (A x) : A(x), b() {} }; + struct C { B c; constexpr C () : c({}) {} } d; diff -Nrcpad gcc-10.3.0/gcc/testsuite/g++.dg/cpp0x/constexpr-104472.C gcc-10.4.0/gcc/testsuite/g++.dg/cpp0x/constexpr-104472.C *** gcc-10.3.0/gcc/testsuite/g++.dg/cpp0x/constexpr-104472.C Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/g++.dg/cpp0x/constexpr-104472.C Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,9 ---- + // PR c++/104472 + // { dg-options "-O2 -frounding-math" } + // { dg-add-options float16 } + // { dg-require-effective-target float16 } + + typedef short __attribute__((__vector_size__ (16))) V; + typedef _Float16 __attribute__((__vector_size__ (16))) F; + + V v = __builtin_convertvector (__builtin_convertvector ((V){5534}, F), V) < 8; diff -Nrcpad gcc-10.3.0/gcc/testsuite/g++.dg/cpp0x/constexpr-base7.C gcc-10.4.0/gcc/testsuite/g++.dg/cpp0x/constexpr-base7.C *** gcc-10.3.0/gcc/testsuite/g++.dg/cpp0x/constexpr-base7.C Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/g++.dg/cpp0x/constexpr-base7.C Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,15 ---- + // PR c++/91933 + // { dg-do compile { target c++11 } } + + struct NoMut1 { int a, b; }; + struct NoMut3 : NoMut1 { + constexpr NoMut3(int a, int b) : NoMut1{a, b} {} + }; + void mutable_subobjects() { + constexpr NoMut3 nm3 = {1, 2}; + struct A { + void f() { + static_assert(nm3.a == 1, ""); + } + }; + } diff -Nrcpad gcc-10.3.0/gcc/testsuite/g++.dg/cpp0x/constexpr-cast2.C gcc-10.4.0/gcc/testsuite/g++.dg/cpp0x/constexpr-cast2.C *** gcc-10.3.0/gcc/testsuite/g++.dg/cpp0x/constexpr-cast2.C Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/g++.dg/cpp0x/constexpr-cast2.C Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,16 ---- + // DR 1312 - Simulated reinterpret_cast in constant expressions. + // PR c++/99176 + // { dg-do compile { target c++11 } } + + static int i; + constexpr void *vp0 = nullptr; + constexpr void *vpi = &i; + constexpr int *p1 = (int *) vp0; // { dg-error "cast from .void\\*. is not allowed" } + constexpr int *p2 = (int *) vpi; // { dg-error "cast from .void\\*. is not allowed" "integer_zerop" { xfail *-*-* } } + constexpr int *p3 = static_cast(vp0); // { dg-error "cast from .void\\*. is not allowed" } + constexpr int *p4 = static_cast(vpi); // { dg-error "cast from .void\\*. is not allowed" "integer_zerop" { xfail *-*-* } } + constexpr void *p5 = vp0; + constexpr void *p6 = vpi; + + constexpr int *pi = &i; + constexpr bool b = ((int *)(void *) pi == pi); // { dg-error "cast from .void\\*. is not allowed" "integer_zerop" { xfail *-*-* } } diff -Nrcpad gcc-10.3.0/gcc/testsuite/g++.dg/cpp0x/constexpr-cast3.C gcc-10.4.0/gcc/testsuite/g++.dg/cpp0x/constexpr-cast3.C *** gcc-10.3.0/gcc/testsuite/g++.dg/cpp0x/constexpr-cast3.C Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/g++.dg/cpp0x/constexpr-cast3.C Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,14 ---- + // PR c++/99176 + // { dg-do compile { target c++11 } } + + constexpr const int *p = nullptr; + constexpr int *q1 = const_cast(p); + constexpr int *q2 = (int *)(const int *) nullptr; + + struct B { }; + struct D : B { }; + constexpr B *q3 = static_cast(nullptr); + constexpr D *pd = nullptr; + constexpr B *pb = nullptr; + constexpr B *q4 = static_cast(pd); + constexpr D *q5 = static_cast(pb); diff -Nrcpad gcc-10.3.0/gcc/testsuite/g++.dg/cpp0x/constexpr-empty16.C gcc-10.4.0/gcc/testsuite/g++.dg/cpp0x/constexpr-empty16.C *** gcc-10.3.0/gcc/testsuite/g++.dg/cpp0x/constexpr-empty16.C Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/g++.dg/cpp0x/constexpr-empty16.C Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,10 ---- + // PR c++/101194 + // { dg-do compile { target c++11 } } + + struct nodefault { + constexpr nodefault(int) { } + }; + + constexpr nodefault x[1] = { nodefault{0} }; + + constexpr nodefault y = x[0]; diff -Nrcpad gcc-10.3.0/gcc/testsuite/g++.dg/cpp0x/constexpr-fno-elide-ctors1.C gcc-10.4.0/gcc/testsuite/g++.dg/cpp0x/constexpr-fno-elide-ctors1.C *** gcc-10.3.0/gcc/testsuite/g++.dg/cpp0x/constexpr-fno-elide-ctors1.C Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/g++.dg/cpp0x/constexpr-fno-elide-ctors1.C Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,89 ---- + // PR c++/104646 + // { dg-do compile { target c++11 } } + // { dg-additional-options -fno-elide-constructors } + + template struct pair { + _T1 first; + int second; + }; + template class __normal_iterator { + _Iterator __traits_type; + + public: + constexpr __normal_iterator() {} + }; + template class allocator; + template struct allocator_traits; + template struct allocator_traits> { + using value_type = _Tp; + template using rebind_alloc = allocator<_Up>; + }; + template struct __alloc_traits { + typedef allocator_traits<_Alloc> _Base_type; + typedef typename _Base_type::value_type &const_reference; + template struct rebind { + typedef typename _Base_type::template rebind_alloc<_Tp> other; + }; + }; + template struct _Vector_base { + typedef typename __alloc_traits<_Alloc>::template rebind<_Tp>::other _Tp_alloc_type; + }; + template > class vector { + public: + typename __alloc_traits< + typename _Vector_base<_Tp, _Alloc>::_Tp_alloc_type>::const_reference + operator[](long); + }; + enum match_flag_type {}; + template class Trans_NS___cxx11_basic_regex; + class Trans_NS___cxx11_match_results; + enum _RegexExecutorPolicy { _S_auto }; + template + bool __regex_algo_impl(Trans_NS___cxx11_match_results &, + const Trans_NS___cxx11_basic_regex<_CharT, _TraitsT> &); + template class _Executor; + template + class Trans_NS___cxx11_basic_regex {}; + class Trans_NS___cxx11_match_results : vector { + template + friend bool __regex_algo_impl(Trans_NS___cxx11_match_results &, + const Trans_NS___cxx11_basic_regex<_Cp, _Rp> &); + }; + template + void regex_search(_Bi_iter, _Alloc, + Trans_NS___cxx11_basic_regex<_Ch_type, _Rx_traits>) { + __regex_algo_impl<_Bi_iter, _Alloc, _Ch_type, _Rx_traits, _S_auto, false>; + } + match_flag_type __regex_algo_impl___flags; + template + bool __regex_algo_impl( + Trans_NS___cxx11_match_results &__m, + const Trans_NS___cxx11_basic_regex<_CharT, _TraitsT> &__re) { + __normal_iterator __e, __s; + _Executor __executor(__s, __e, __m, __re, + __regex_algo_impl___flags); + __executor._M_match(); + return false; + } + template class _Executor { + public: + _Executor(__normal_iterator, __normal_iterator, + vector, Trans_NS___cxx11_basic_regex, match_flag_type); + void _M_match() { _M_dfs(); } + void _M_dfs(); + vector>> _M_rep_count; + }; + long _M_rep_once_more___i; + template + void _Executor<_BiIter, _Alloc, _TraitsT, __dfs_mode>::_M_dfs() { + auto __rep_count = _M_rep_count[_M_rep_once_more___i]; + } + char main___trans_tmp_1; + void main___trans_tmp_2() { + Trans_NS___cxx11_basic_regex re; + regex_search(main___trans_tmp_1, main___trans_tmp_2, re); + } diff -Nrcpad gcc-10.3.0/gcc/testsuite/g++.dg/cpp0x/constexpr-nullptr-2.C gcc-10.4.0/gcc/testsuite/g++.dg/cpp0x/constexpr-nullptr-2.C *** gcc-10.3.0/gcc/testsuite/g++.dg/cpp0x/constexpr-nullptr-2.C Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/testsuite/g++.dg/cpp0x/constexpr-nullptr-2.C Tue Jun 28 08:54:28 2022 *************** constexpr const void *pv2 = pv0; *** 163,169 **** constexpr void *pv3 = pv2; // { dg-error "invalid conversion|not a constant expression" } constexpr const void *pv4 = pv2; ! constexpr X *px4 = pv0; // { dg-error "invalid conversion|not a constant expression" } } --- 163,169 ---- constexpr void *pv3 = pv2; // { dg-error "invalid conversion|not a constant expression" } constexpr const void *pv4 = pv2; ! constexpr X *px4 = pv0; // { dg-error "cast from|invalid conversion|not a constant expression" } } *************** constexpr A *pa3 = pd0; // { dg-erro *** 226,232 **** constexpr A *pa4 = static_cast(pd0); // { dg-error "ambiguous base" } constexpr B *pb1 = pa0; // { dg-error "invalid conversion|not a constant expression" } ! constexpr B *pb2 = static_cast(pa0); // { dg-error "not a constant expression" } constexpr C *pc1 = pa0; // { dg-error "invalid conversion|not a constant expression" } constexpr D *pd1 = pa0; // { dg-error "ambiguous base|invalid conversion" } --- 226,232 ---- constexpr A *pa4 = static_cast(pd0); // { dg-error "ambiguous base" } constexpr B *pb1 = pa0; // { dg-error "invalid conversion|not a constant expression" } ! constexpr B *pb2 = static_cast(pa0); constexpr C *pc1 = pa0; // { dg-error "invalid conversion|not a constant expression" } constexpr D *pd1 = pa0; // { dg-error "ambiguous base|invalid conversion" } diff -Nrcpad gcc-10.3.0/gcc/testsuite/g++.dg/cpp0x/constexpr-volatile3.C gcc-10.4.0/gcc/testsuite/g++.dg/cpp0x/constexpr-volatile3.C *** gcc-10.3.0/gcc/testsuite/g++.dg/cpp0x/constexpr-volatile3.C Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/g++.dg/cpp0x/constexpr-volatile3.C Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,15 ---- + // PR c++/80456 + // { dg-do compile { target c++11 } } + + struct A { + static constexpr bool test() noexcept { return true; } + + void f() volatile { + constexpr bool b = test(); + } + }; + + void g() { + A a; + a.f(); + } diff -Nrcpad gcc-10.3.0/gcc/testsuite/g++.dg/cpp0x/extern_template-6.C gcc-10.4.0/gcc/testsuite/g++.dg/cpp0x/extern_template-6.C *** gcc-10.3.0/gcc/testsuite/g++.dg/cpp0x/extern_template-6.C Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/g++.dg/cpp0x/extern_template-6.C Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,17 ---- + // PR c++/99066 + // { dg-do compile { target c++11 } } + + template struct basic_string { + static const int npos = 1; + }; + template const int basic_string::npos; + + struct e { template int f() const; }; + + template int e::f() const { + return basic_string::npos; + } + + extern template class basic_string; + + // { dg-final { scan-assembler-not "_ZN12basic_stringIcE4nposE" } } diff -Nrcpad gcc-10.3.0/gcc/testsuite/g++.dg/cpp0x/initlist-new5.C gcc-10.4.0/gcc/testsuite/g++.dg/cpp0x/initlist-new5.C *** gcc-10.3.0/gcc/testsuite/g++.dg/cpp0x/initlist-new5.C Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/g++.dg/cpp0x/initlist-new5.C Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,9 ---- + // PR c++/99643 + // { dg-do compile { target c++11 } } + + struct Foo {}; + Foo get_foo(); + + int main() { + new Foo[1]{get_foo()}; + } diff -Nrcpad gcc-10.3.0/gcc/testsuite/g++.dg/cpp0x/initlist-new6.C gcc-10.4.0/gcc/testsuite/g++.dg/cpp0x/initlist-new6.C *** gcc-10.3.0/gcc/testsuite/g++.dg/cpp0x/initlist-new6.C Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/g++.dg/cpp0x/initlist-new6.C Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,39 ---- + // PR c++/105265 + // { dg-do run { target c++11 } } + + int c; + + class Block + { + public: + Block(int n) : data{new char[n]}, size{n} + { + ++c; + } + + ~Block() + { + --c; + delete[] data; + } + + private: + char* data; + int size; + }; + + struct Cargo + { + Block const& block; + }; + + int main() + { + { + Cargo* c = new Cargo{{4000}}; + delete c; + } + if (c != 0) + __builtin_abort (); + return 0; + } diff -Nrcpad gcc-10.3.0/gcc/testsuite/g++.dg/cpp0x/initlist-nrv1.C gcc-10.4.0/gcc/testsuite/g++.dg/cpp0x/initlist-nrv1.C *** gcc-10.3.0/gcc/testsuite/g++.dg/cpp0x/initlist-nrv1.C Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/g++.dg/cpp0x/initlist-nrv1.C Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,34 ---- + // PR c++/101442 + // { dg-do run { target c++11 } } + + bool destroyed = false; + + struct A + { + A() {} + A(const A &) = delete; + A &operator=(const A &) = delete; + ~A() {destroyed = true;} + }; + + struct B + { + const A &a; + struct string { + string(const char*) { } + ~string() { } + } s; + }; + + B foo() + { + B ret{ A{}, "" }; + return ret; + } + + int main() + { + B b = foo(); + if (!destroyed) + __builtin_abort(); + } diff -Nrcpad gcc-10.3.0/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-current-inst1.C gcc-10.4.0/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-current-inst1.C *** gcc-10.3.0/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-current-inst1.C Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-current-inst1.C Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,18 ---- + // PR c++/82980 + // { dg-do compile { target c++11 } } + + template + struct Outer + { + template + void f(); + + void bar(Outer outer) { + [outer](){ outer.f(); }; + } + void baz(Outer *p) { + [&](){ p->f(); }; + } + }; + + int main() { } diff -Nrcpad gcc-10.3.0/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nsdmi10.C gcc-10.4.0/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nsdmi10.C *** gcc-10.3.0/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nsdmi10.C Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nsdmi10.C Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,12 ---- + // PR c++/95870 + // { dg-do compile { target c++11 } } + + template struct S { + S(); + int b = []() -> int { enum E {}; return 1; }(); + }; + struct C : S { + C(); + }; + template S::S() = default; + C::C() {} diff -Nrcpad gcc-10.3.0/gcc/testsuite/g++.dg/cpp0x/noexcept62.C gcc-10.4.0/gcc/testsuite/g++.dg/cpp0x/noexcept62.C *** gcc-10.3.0/gcc/testsuite/g++.dg/cpp0x/noexcept62.C Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/g++.dg/cpp0x/noexcept62.C Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,10 ---- + // PR c++/98333 + // { dg-do compile { target c++11 } } + + struct T { + template + struct S { + S () noexcept (N) {} + }; + int a = __has_nothrow_constructor (S); + }; diff -Nrcpad gcc-10.3.0/gcc/testsuite/g++.dg/cpp0x/noexcept63.C gcc-10.4.0/gcc/testsuite/g++.dg/cpp0x/noexcept63.C *** gcc-10.3.0/gcc/testsuite/g++.dg/cpp0x/noexcept63.C Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/g++.dg/cpp0x/noexcept63.C Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,63 ---- + // PR c++/97966 + // { dg-do compile { target c++11 } } + + template + struct S1 { + __attribute__((used)) S1() noexcept(noexcept(this->foo())) { } + void foo(); + }; + + template + struct S2 { + __attribute__((used)) void bar() noexcept(noexcept(this->foo())) { } + void foo(); + }; + + template + struct S3 { + void __attribute__((used)) bar() noexcept(noexcept(this->foo())) { } + void foo(); + }; + + template + struct S4 { + [[gnu::used]] void bar() noexcept(noexcept(this->foo())) { } + void foo(); + }; + + template + struct S5 { + void bar() noexcept(noexcept(this->foo())) __attribute__((used)) { } + void foo(); + }; + + template + struct S6 { + template + struct N { + [[gnu::used]] void bar() noexcept(noexcept(this->foo())) { } + void foo(); + }; + }; + + void + g () + { + S1<1> s1; + S2<1> s2; + S3<1> s3; + S4<1> s4; + S5<1> s5; + S6<1>::N<1> n; + } + + // Make sure that we did emit the functions marked with attribute used + // even though they're not referenced in this TU. (Well, the S1() + // constructor is.) + // { dg-final { scan-assembler "_ZN2S1ILi1EEC1Ev" } } + // { dg-final { scan-assembler "_ZN2S1ILi1EEC2Ev" } } + // { dg-final { scan-assembler "_ZN2S2ILi1EE3barEv" } } + // { dg-final { scan-assembler "_ZN2S3ILi1EE3barEv" } } + // { dg-final { scan-assembler "_ZN2S4ILi1EE3barEv" } } + // { dg-final { scan-assembler "_ZN2S5ILi1EE3barEv" } } + // { dg-final { scan-assembler "_ZN2S6ILi1EE1NILi1EE3barEv" } } diff -Nrcpad gcc-10.3.0/gcc/testsuite/g++.dg/cpp0x/noexcept70.C gcc-10.4.0/gcc/testsuite/g++.dg/cpp0x/noexcept70.C *** gcc-10.3.0/gcc/testsuite/g++.dg/cpp0x/noexcept70.C Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/g++.dg/cpp0x/noexcept70.C Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,5 ---- + // PR c++/101087 + // { dg-do compile { target c++11 } } + + int f(); + static_assert(noexcept(sizeof(f())), ""); diff -Nrcpad gcc-10.3.0/gcc/testsuite/g++.dg/cpp0x/nsdmi-template21.C gcc-10.4.0/gcc/testsuite/g++.dg/cpp0x/nsdmi-template21.C *** gcc-10.3.0/gcc/testsuite/g++.dg/cpp0x/nsdmi-template21.C Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/g++.dg/cpp0x/nsdmi-template21.C Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,8 ---- + // PR c++/101532 + // { dg-do compile { target c++11 } } + + struct A { private: ~A(); }; + + template struct B { A a = A(); }; // { dg-error "private" } + + B b; // { dg-error "deleted" } diff -Nrcpad gcc-10.3.0/gcc/testsuite/g++.dg/cpp0x/nsdmi-template21a.C gcc-10.4.0/gcc/testsuite/g++.dg/cpp0x/nsdmi-template21a.C *** gcc-10.3.0/gcc/testsuite/g++.dg/cpp0x/nsdmi-template21a.C Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/g++.dg/cpp0x/nsdmi-template21a.C Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,10 ---- + // PR c++/104225 + // { dg-do compile { target c++11 } } + + struct A { private: ~A(); }; + + template struct B { A a = A(); }; // { dg-error "private" } + + int main() { + new B; // { dg-error "deleted" } + } diff -Nrcpad gcc-10.3.0/gcc/testsuite/g++.dg/cpp0x/nullptr46.C gcc-10.4.0/gcc/testsuite/g++.dg/cpp0x/nullptr46.C *** gcc-10.3.0/gcc/testsuite/g++.dg/cpp0x/nullptr46.C Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/g++.dg/cpp0x/nullptr46.C Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,11 ---- + // PR c++/101443 + // { dg-do compile { target c++11 } } + // { dg-options "-O2" } + + decltype(nullptr) foo (); + + bool + bar () + { + return foo () > nullptr || foo () < nullptr; + } diff -Nrcpad gcc-10.3.0/gcc/testsuite/g++.dg/cpp0x/pr102305.C gcc-10.4.0/gcc/testsuite/g++.dg/cpp0x/pr102305.C *** gcc-10.3.0/gcc/testsuite/g++.dg/cpp0x/pr102305.C Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/g++.dg/cpp0x/pr102305.C Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,39 ---- + // PR c++/102305 + // { dg-do compile { target c++11 } } + + namespace std + { + template + struct integral_constant + { + static constexpr _Tp value = __v; + typedef integral_constant<_Tp, __v> type; + }; + + template + constexpr _Tp integral_constant<_Tp, __v>::value; + + typedef integral_constant true_type; + typedef integral_constant false_type; + + template + using bool_constant = integral_constant; + + template + struct is_constructible + : public bool_constant<__is_constructible(_Tp, _Args...)> + { + }; + } + + template + struct A { + virtual ~A() = 0; + }; + + struct B { + virtual ~B() = 0; + }; + + static_assert(!std::is_constructible >::value, ""); + static_assert(!std::is_constructible::value, ""); diff -Nrcpad gcc-10.3.0/gcc/testsuite/g++.dg/cpp0x/pr105256.C gcc-10.4.0/gcc/testsuite/g++.dg/cpp0x/pr105256.C *** gcc-10.3.0/gcc/testsuite/g++.dg/cpp0x/pr105256.C Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/g++.dg/cpp0x/pr105256.C Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,18 ---- + // PR c++/105256 + // { dg-do compile { target c++11 } } + + int bar (int &); + + struct S { + struct T { + struct U { + int i = bar (i); + } u; + }; + }; + + void + foo (S::T *p) + { + *p = {}; + } diff -Nrcpad gcc-10.3.0/gcc/testsuite/g++.dg/cpp1y/constexpr-104513.C gcc-10.4.0/gcc/testsuite/g++.dg/cpp1y/constexpr-104513.C *** gcc-10.3.0/gcc/testsuite/g++.dg/cpp1y/constexpr-104513.C Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/g++.dg/cpp1y/constexpr-104513.C Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,10 ---- + // PR c++/104513 + // { dg-do compile { target c++14 } } + + struct A { + int a1; + short a2, a3; + long a4; + constexpr A() : a1(42), a2(42), a3(42), a4(42) { return; } + }; + constexpr A a; diff -Nrcpad gcc-10.3.0/gcc/testsuite/g++.dg/cpp1y/constexpr-99859-1.C gcc-10.4.0/gcc/testsuite/g++.dg/cpp1y/constexpr-99859-1.C *** gcc-10.3.0/gcc/testsuite/g++.dg/cpp1y/constexpr-99859-1.C Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/g++.dg/cpp1y/constexpr-99859-1.C Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,24 ---- + // PR c++/99859 + // { dg-do compile { target c++14 } } + + constexpr int + foo (int *x) + { + return ++*x; + } + + struct S { constexpr S () : a(0) { foo (&a); foo (&a); } int a; }; + constexpr S s = S (); + static_assert (s.a == 2, ""); + + struct R { int *p; }; + + constexpr int + bar (R x) + { + return ++*x.p; + } + + struct T { int a = 0; constexpr T () { bar (R{&a}); bar (R{&a}); } }; + constexpr T t = T (); + static_assert (t.a == 2, ""); diff -Nrcpad gcc-10.3.0/gcc/testsuite/g++.dg/cpp1y/constexpr-99859-2.C gcc-10.4.0/gcc/testsuite/g++.dg/cpp1y/constexpr-99859-2.C *** gcc-10.3.0/gcc/testsuite/g++.dg/cpp1y/constexpr-99859-2.C Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/g++.dg/cpp1y/constexpr-99859-2.C Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,12 ---- + // PR c++/99859 + // { dg-do compile { target c++14 } } + + struct A + { + int i; + constexpr int f() { return i; } + constexpr A() : i(0) { i = f(); i = 1; i = f(); } + }; + + constexpr A a = A(); + static_assert (a.i == 1, ""); diff -Nrcpad gcc-10.3.0/gcc/testsuite/g++.dg/cpp1y/constexpr-empty2.C gcc-10.4.0/gcc/testsuite/g++.dg/cpp1y/constexpr-empty2.C *** gcc-10.3.0/gcc/testsuite/g++.dg/cpp1y/constexpr-empty2.C Thu Apr 8 11:56:28 2021 --- gcc-10.4.0/gcc/testsuite/g++.dg/cpp1y/constexpr-empty2.C Tue Jun 28 08:54:28 2022 *************** *** 1,4 **** --- 1,5 ---- // { dg-do compile { target c++14 } } + // { dg-additional-options -fno-elide-constructors } struct A { diff -Nrcpad gcc-10.3.0/gcc/testsuite/g++.dg/cpp1y/lambda-generic-Wunused.C gcc-10.4.0/gcc/testsuite/g++.dg/cpp1y/lambda-generic-Wunused.C *** gcc-10.3.0/gcc/testsuite/g++.dg/cpp1y/lambda-generic-Wunused.C Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/g++.dg/cpp1y/lambda-generic-Wunused.C Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,18 ---- + // PR c++/96311 + // { dg-do compile { target c++14 } } + // { dg-additional-options -Wunused } + + auto foo() + { + constexpr int used = 0; + return + [](auto unused) + { + return used; + }; + } + + int main() + { + foo()(42); + } diff -Nrcpad gcc-10.3.0/gcc/testsuite/g++.dg/cpp1y/lambda-generic-local-class1.C gcc-10.4.0/gcc/testsuite/g++.dg/cpp1y/lambda-generic-local-class1.C *** gcc-10.3.0/gcc/testsuite/g++.dg/cpp1y/lambda-generic-local-class1.C Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/g++.dg/cpp1y/lambda-generic-local-class1.C Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,10 ---- + // PR c++/100054 + // { dg-do compile { target c++14 } } + + template + void f() { + struct A { T m{}; }; + [](auto){ return A{}; }; + } + + template void f(); diff -Nrcpad gcc-10.3.0/gcc/testsuite/g++.dg/cpp1y/lambda-generic-this4.C gcc-10.4.0/gcc/testsuite/g++.dg/cpp1y/lambda-generic-this4.C *** gcc-10.3.0/gcc/testsuite/g++.dg/cpp1y/lambda-generic-this4.C Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/g++.dg/cpp1y/lambda-generic-this4.C Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,7 ---- + // PR c++/101717 + // { dg-do compile { target c++14 } } + + struct x { + static void f() { } + void (*_)() = [] { [=](auto) { f(); }(0); }; + }; diff -Nrcpad gcc-10.3.0/gcc/testsuite/g++.dg/cpp1y/nsdmi-aggr13.C gcc-10.4.0/gcc/testsuite/g++.dg/cpp1y/nsdmi-aggr13.C *** gcc-10.3.0/gcc/testsuite/g++.dg/cpp1y/nsdmi-aggr13.C Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/g++.dg/cpp1y/nsdmi-aggr13.C Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,33 ---- + // PR c++/96673 + // { dg-do compile { target c++11 } } + + template + class A {}; + + template + class B; + + template + class C { + private: + + friend class B; + + explicit C(A&) {}; + }; + + + template + class B { + public: + B() = default; + //B() {}; // << This implementation of the constructor makes it work + + A a = {}; + C c = C{a}; + }; + + int main() { + auto b = B{}; + auto &c = b.c; + } diff -Nrcpad gcc-10.3.0/gcc/testsuite/g++.dg/cpp1y/pr88872.C gcc-10.4.0/gcc/testsuite/g++.dg/cpp1y/pr88872.C *** gcc-10.3.0/gcc/testsuite/g++.dg/cpp1y/pr88872.C Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/g++.dg/cpp1y/pr88872.C Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,24 ---- + // PR c++/88872 + // { dg-do compile { target c++14 } } + + struct a { + template constexpr a(b) : c() {} + int c; + }; + void d(); + template constexpr a operator"" _n() { return d; } + struct e; + struct f { + e operator[](int); + }; + struct g { + void h(); + f i; + }; + template struct j { + void k() { [](auto) { constexpr auto l = 2_n; }(keywords); } + int keywords; + }; + using m = j; + class e : public m {}; + void g::h() { i[0].k(); } diff -Nrcpad gcc-10.3.0/gcc/testsuite/g++.dg/cpp1z/aligned-new9.C gcc-10.4.0/gcc/testsuite/g++.dg/cpp1z/aligned-new9.C *** gcc-10.3.0/gcc/testsuite/g++.dg/cpp1z/aligned-new9.C Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/g++.dg/cpp1z/aligned-new9.C Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,30 ---- + // PR c++/102071 + // { dg-do run { target c++17 } } + // { dg-additional-options -faligned-new=2 } + + #include + + int nalign; + void *operator new (std::size_t s, std::align_val_t a) + { + nalign = (int)a; + return operator new (s); + } + + struct X { ~X(); int c; }; + + int align = (alignof (X) > alignof (std::size_t) + ? alignof (X) : alignof (std::size_t)); + + int n = 4; + + int main() + { + X *p = new X[n]; + if (nalign != align) + __builtin_abort (); + + X *p2 = new X; + if (nalign != alignof (X)) + __builtin_abort (); + } diff -Nrcpad gcc-10.3.0/gcc/testsuite/g++.dg/cpp1z/class-deduction85.C gcc-10.4.0/gcc/testsuite/g++.dg/cpp1z/class-deduction85.C *** gcc-10.3.0/gcc/testsuite/g++.dg/cpp1z/class-deduction85.C Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/g++.dg/cpp1z/class-deduction85.C Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,16 ---- + // PR c++/99885 + // { dg-do compile { target c++17 } } + + template + struct Foo {}; + + template + struct Bar { + constexpr auto foo() const -> Foo { + return {}; + } + }; + + constexpr int a = 1; + constexpr Bar bar; + Foo foo = bar.foo(); // <-- CTAD failure diff -Nrcpad gcc-10.3.0/gcc/testsuite/g++.dg/cpp1z/constexpr-array2.C gcc-10.4.0/gcc/testsuite/g++.dg/cpp1z/constexpr-array2.C *** gcc-10.3.0/gcc/testsuite/g++.dg/cpp1z/constexpr-array2.C Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/g++.dg/cpp1z/constexpr-array2.C Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,12 ---- + // PR c++/102307 + // { dg-do compile { target c++11 } } + + #include + template struct Matrix { + constexpr Matrix(double const (&arr)[N][M]); // { dg-warning "never defined" } + constexpr Matrix(std::array, N> const &arr); + }; + int main() { + constexpr Matrix<2, 3> + mat {{ {1.0, 2.0, 3.0}, {4.0, 5.0, 6.0} }}; // { dg-error "before its definition" } + } diff -Nrcpad gcc-10.3.0/gcc/testsuite/g++.dg/cpp1z/constexpr-if-lambda4.C gcc-10.4.0/gcc/testsuite/g++.dg/cpp1z/constexpr-if-lambda4.C *** gcc-10.3.0/gcc/testsuite/g++.dg/cpp1z/constexpr-if-lambda4.C Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/g++.dg/cpp1z/constexpr-if-lambda4.C Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,22 ---- + // PR c++/99201 + // { dg-do compile { target c++17 } } + + template + auto + make_tester(const RefF& reffun) + { + return [=](auto in) { + auto&& expected = [&](const auto&... vs) { + if constexpr (sizeof(in) > 0) + return [&](int i) { return reffun(vs[i]...); }(0); + else + return [&](int i) { return reffun(vs[i]...); }(0); + }; + }; + } + + int main() + { + make_tester([](int x) { return x; })(0); + return 0; + } diff -Nrcpad gcc-10.3.0/gcc/testsuite/g++.dg/cpp1z/eval-order11.C gcc-10.4.0/gcc/testsuite/g++.dg/cpp1z/eval-order11.C *** gcc-10.3.0/gcc/testsuite/g++.dg/cpp1z/eval-order11.C Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/g++.dg/cpp1z/eval-order11.C Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,89 ---- + // PR c++/70796 + // { dg-do run { target c++11 } } + // { dg-options "-fstrong-eval-order" { target c++14_down } } + + struct A + { + int x = 0; + A & operator ++ () { ++x; return *this; } + }; + struct B + { + A first, second; + B (A x, A y) : first{x}, second{y} {} + }; + struct C + { + int first, second; + C (int x, int y) : first{x}, second{y} {} + }; + struct D + { + int d; + void foo (int x, D *y) + { + if (y != this + 1) + __builtin_abort (); + d = x; + } + }; + D d[2] = { { 1 }, { 2 } }; + + void + foo () + { + int i = 0; + C p{++i, ++i}; + if (p.first != 1 || p.second != 2) + __builtin_abort (); + } + + void + bar () + { + int i = 0; + C p{++i, ++i}; + if (p.first != 1 || p.second != 2) + __builtin_abort (); + int &j = i; + C q{++j, ++j}; + if (q.first != 3 || q.second != 4) + __builtin_abort (); + } + + void + baz () + { + int i = 0; + C p{(int &) ++i, (int &) ++i}; + if (p.first != 1 || p.second != 2) + __builtin_abort (); + } + + void + qux () + { + A i; + B p{++i, ++i}; + if (p.first.x != 1 || p.second.x != 2) + __builtin_abort (); + } + + void + corge () + { + D *p = &d[0]; + p->foo (3, ++p); + if (d[0].d != 3 || d[1].d != 2) + __builtin_abort (); + } + + int + main () + { + bar (); + baz (); + foo (); + qux (); + corge (); + } diff -Nrcpad gcc-10.3.0/gcc/testsuite/g++.dg/cpp1z/inline-var9.C gcc-10.4.0/gcc/testsuite/g++.dg/cpp1z/inline-var9.C *** gcc-10.3.0/gcc/testsuite/g++.dg/cpp1z/inline-var9.C Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/g++.dg/cpp1z/inline-var9.C Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,40 ---- + // PR c++/99901 + // { dg-do compile { target c++11 } } + // { dg-final { scan-assembler-not "_ZN1A1aE" } } + // { dg-final { scan-assembler-not "_ZN2A21aE" } } + // { dg-final { scan-assembler-not "_ZN1CIiE1cE" } } + // { dg-final { scan-assembler "_ZN1B1bE" } } + // { dg-final { scan-assembler "_ZN2B21bE" } } + // { dg-final { scan-assembler "_ZN2B31bE" } } + + struct A { + static const int a = 5; + }; + + struct A2 { + static constexpr int a = 5; + }; + + struct B { + static const int b; + }; + constexpr int B::b = 5; + + struct B2 { + static const int b = 5; + }; + constexpr int B2::b; + + struct B3 { + static constexpr int b = 5; + }; + const int B3::b; + + template + struct C { + static constexpr int c = 5; + }; + template + constexpr int C::c; + + int i = C::c; diff -Nrcpad gcc-10.3.0/gcc/testsuite/g++.dg/cpp1z/nodiscard8.C gcc-10.4.0/gcc/testsuite/g++.dg/cpp1z/nodiscard8.C *** gcc-10.3.0/gcc/testsuite/g++.dg/cpp1z/nodiscard8.C Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/g++.dg/cpp1z/nodiscard8.C Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,15 ---- + // PR c++/100666 + // { dg-do compile { target c++11 } } + + [[nodiscard]] decltype(nullptr) bar (); + extern void foo (...); + template void qux (T); + + void + baz () + { + foo (bar ()); // { dg-bogus "ignoring return value of '\[^\n\r]*', declared with attribute 'nodiscard'" } + bar (); // { dg-warning "ignoring return value of '\[^\n\r]*', declared with attribute 'nodiscard'" } + auto x = bar (); // { dg-bogus "ignoring return value of '\[^\n\r]*', declared with attribute 'nodiscard'" } + qux (bar ()); // { dg-bogus "ignoring return value of '\[^\n\r]*', declared with attribute 'nodiscard'" } + } diff -Nrcpad gcc-10.3.0/gcc/testsuite/g++.dg/cpp1z/nodiscard9.C gcc-10.4.0/gcc/testsuite/g++.dg/cpp1z/nodiscard9.C *** gcc-10.3.0/gcc/testsuite/g++.dg/cpp1z/nodiscard9.C Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/g++.dg/cpp1z/nodiscard9.C Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,22 ---- + // PR c++/100666 + // { dg-do compile { target c++11 } } + + struct S {}; + [[nodiscard]] S bar (); + struct U { S s; }; + [[nodiscard]] U corge (); + extern void foo (...); + template void qux (T); + + void + baz () + { + foo (bar ()); // { dg-bogus "ignoring return value of '\[^\n\r]*', declared with attribute 'nodiscard'" } + bar (); // { dg-warning "ignoring return value of '\[^\n\r]*', declared with attribute 'nodiscard'" } + auto x = bar (); // { dg-bogus "ignoring return value of '\[^\n\r]*', declared with attribute 'nodiscard'" } + qux (bar ()); // { dg-bogus "ignoring return value of '\[^\n\r]*', declared with attribute 'nodiscard'" } + foo (corge ()); // { dg-bogus "ignoring return value of '\[^\n\r]*', declared with attribute 'nodiscard'" } + corge (); // { dg-warning "ignoring return value of '\[^\n\r]*', declared with attribute 'nodiscard'" } + auto y = corge (); // { dg-bogus "ignoring return value of '\[^\n\r]*', declared with attribute 'nodiscard'" } + qux (corge ()); // { dg-bogus "ignoring return value of '\[^\n\r]*', declared with attribute 'nodiscard'" } + } diff -Nrcpad gcc-10.3.0/gcc/testsuite/g++.dg/cpp1z/noexcept-type23.C gcc-10.4.0/gcc/testsuite/g++.dg/cpp1z/noexcept-type23.C *** gcc-10.3.0/gcc/testsuite/g++.dg/cpp1z/noexcept-type23.C Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/g++.dg/cpp1z/noexcept-type23.C Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,14 ---- + // PR c++/99374 + // { dg-do compile { target c++17 } } + + struct S; + struct R; + using F1 = int (S::*)(); + using F2 = int (S::*)() noexcept; + using F3 = int (R::*)() noexcept; + using T = S; + using F4 = int (T::*)() noexcept; + F1 f21 = F2(); + F1 f41 = F4(); + F2 f12 = F1(); // { dg-error "cannot convert" } + F1 f31 = F3(); // { dg-error "cannot convert" } diff -Nrcpad gcc-10.3.0/gcc/testsuite/g++.dg/cpp1z/noexcept-type24.C gcc-10.4.0/gcc/testsuite/g++.dg/cpp1z/noexcept-type24.C *** gcc-10.3.0/gcc/testsuite/g++.dg/cpp1z/noexcept-type24.C Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/g++.dg/cpp1z/noexcept-type24.C Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,22 ---- + // PR c++/90664 + // { dg-do compile { target c++11 } } + + template struct OpM; + + template + struct OpM + {}; + + class Class { + public: + int address() noexcept { return 0; } + void address(int) noexcept {} + }; + + struct Sk { + template Sk(R (C::*p)()) { + typedef OpM OP; + } + }; + + Sk sk(static_cast(&Class::address)); diff -Nrcpad gcc-10.3.0/gcc/testsuite/g++.dg/cpp1z/pr99833.C gcc-10.4.0/gcc/testsuite/g++.dg/cpp1z/pr99833.C *** gcc-10.3.0/gcc/testsuite/g++.dg/cpp1z/pr99833.C Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/g++.dg/cpp1z/pr99833.C Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,11 ---- + // PR c++/99833 + // { dg-do compile { target c++17 } } + + struct S { int a, b; }; + template + void + foo () + { + [](auto d) { if constexpr (auto [a, b]{d}; sizeof (a) > 0) a++; } (S{}); + } + template void foo (); diff -Nrcpad gcc-10.3.0/gcc/testsuite/g++.dg/cpp2a/class-deduction-alias3.C gcc-10.4.0/gcc/testsuite/g++.dg/cpp2a/class-deduction-alias3.C *** gcc-10.3.0/gcc/testsuite/g++.dg/cpp2a/class-deduction-alias3.C Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/g++.dg/cpp2a/class-deduction-alias3.C Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,11 ---- + // PR c++/95486 + // { dg-do compile { target c++20 } } + + template + struct X { X(U) requires __is_same(U, int) {} }; + + template + using Y = X; + + Y y{1}; + Y z{'a'}; // { dg-error "failed|no match" } diff -Nrcpad gcc-10.3.0/gcc/testsuite/g++.dg/cpp2a/class-deduction-alias5.C gcc-10.4.0/gcc/testsuite/g++.dg/cpp2a/class-deduction-alias5.C *** gcc-10.3.0/gcc/testsuite/g++.dg/cpp2a/class-deduction-alias5.C Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/g++.dg/cpp2a/class-deduction-alias5.C Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,18 ---- + // PR c++/99180 + // { dg-do compile { target c++17 } } + + template + struct A { + A(Ts...) {} + }; + + template + using B = A; + + template + A(Ts...) -> A; + + int main() { + B{}; // { dg-error "alias" "" { target c++17_down } } + return 0; + } diff -Nrcpad gcc-10.3.0/gcc/testsuite/g++.dg/cpp2a/class-deduction-alias6.C gcc-10.4.0/gcc/testsuite/g++.dg/cpp2a/class-deduction-alias6.C *** gcc-10.3.0/gcc/testsuite/g++.dg/cpp2a/class-deduction-alias6.C Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/g++.dg/cpp2a/class-deduction-alias6.C Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,11 ---- + // PR c++/93295 + // { dg-do compile { target c++20 } } + + template + struct Foo { + Foo(T) {} + }; + + template Foo(T) -> Foo; + template using Bar = Foo; + Bar b{0}; diff -Nrcpad gcc-10.3.0/gcc/testsuite/g++.dg/cpp2a/class-deduction-alias7.C gcc-10.4.0/gcc/testsuite/g++.dg/cpp2a/class-deduction-alias7.C *** gcc-10.3.0/gcc/testsuite/g++.dg/cpp2a/class-deduction-alias7.C Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/g++.dg/cpp2a/class-deduction-alias7.C Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,32 ---- + // PR c++/93867 + // { dg-do compile { target c++20 } } + + template + struct basic_fixed_string + { + constexpr basic_fixed_string(const CharT *p) { + for (int i = 0; i < N; ++i) { + m_data[i] = p[i]; + } + } + + CharT m_data[N] {}; + }; + + template + basic_fixed_string(const CharT (&)[N]) -> basic_fixed_string; + + template + using fixed_string = basic_fixed_string; + + template + constexpr int foo() + { + return 42; + } + + int main(int argc, char const *argv[]) + { + foo<"hello">(); + return 0; + } diff -Nrcpad gcc-10.3.0/gcc/testsuite/g++.dg/cpp2a/class-deduction-alias8.C gcc-10.4.0/gcc/testsuite/g++.dg/cpp2a/class-deduction-alias8.C *** gcc-10.3.0/gcc/testsuite/g++.dg/cpp2a/class-deduction-alias8.C Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/g++.dg/cpp2a/class-deduction-alias8.C Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,14 ---- + // PR c++/95486 + // { dg-do compile { target c++20 } } + + template + struct X { X(U) requires __is_same(U, int) {} }; + + template + X(U) -> X; + + template + using Y = X; + + Y y{1}; + Y z{'a'}; // { dg-error "failed|no match" } diff -Nrcpad gcc-10.3.0/gcc/testsuite/g++.dg/cpp2a/concepts-defarg2.C gcc-10.4.0/gcc/testsuite/g++.dg/cpp2a/concepts-defarg2.C *** gcc-10.3.0/gcc/testsuite/g++.dg/cpp2a/concepts-defarg2.C Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/g++.dg/cpp2a/concepts-defarg2.C Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,13 ---- + // PR c++/97052 + // { dg-do compile { target c++20 } } + + template + concept C = true; + + constexpr bool f(C auto) { + return true; + } + + static_assert(f(0)); + + C auto x = 0; diff -Nrcpad gcc-10.3.0/gcc/testsuite/g++.dg/cpp2a/concepts-requires30.C gcc-10.4.0/gcc/testsuite/g++.dg/cpp2a/concepts-requires30.C *** gcc-10.3.0/gcc/testsuite/g++.dg/cpp2a/concepts-requires30.C Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/g++.dg/cpp2a/concepts-requires30.C Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,10 ---- + // PR c++/105304 + // { dg-do compile { target c++20 } } + // { dg-additional-options "-Wall -Wsequence-point" } + + struct A { }; + + int main() { + if (requires { A(); }) + ; + } diff -Nrcpad gcc-10.3.0/gcc/testsuite/g++.dg/cpp2a/consteval26.C gcc-10.4.0/gcc/testsuite/g++.dg/cpp2a/consteval26.C *** gcc-10.3.0/gcc/testsuite/g++.dg/cpp2a/consteval26.C Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/g++.dg/cpp2a/consteval26.C Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,39 ---- + // PR c++/103912 + // { dg-do run { target c++20 } } + // { dg-additional-options "-O2 -g -fkeep-inline-functions" } + + extern "C" void abort (); + + struct A { A () {} }; + + consteval auto + foo () + { + if (1) + ; + return [] (A x) { return 1; }; + } + + consteval auto + bar (int a) + { + int b = a + 4; + if (1) + ; + return [=] (A x) { return a + b; }; + } + + int + main () + { + A x; + auto h = foo (); + if (h (x) != 1) + abort (); + auto i = bar (5); + if (i (x) != 14) + abort (); + auto j = bar (42); + if (j (x) != 88) + abort (); + } diff -Nrcpad gcc-10.3.0/gcc/testsuite/g++.dg/cpp2a/consteval27.C gcc-10.4.0/gcc/testsuite/g++.dg/cpp2a/consteval27.C *** gcc-10.3.0/gcc/testsuite/g++.dg/cpp2a/consteval27.C Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/g++.dg/cpp2a/consteval27.C Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,18 ---- + // PR c++/104055 + // { dg-do run { target c++20 } } + + int g; + + struct A { + ~A () { if (a != 17 || b != 26) __builtin_abort (); g = 42; } + consteval A () : a (17), b (26) {} + int a, b; + }; + + int + main () + { + A{}; + if (g != 42) + __builtin_abort (); + } diff -Nrcpad gcc-10.3.0/gcc/testsuite/g++.dg/cpp2a/constexpr-dtor12.C gcc-10.4.0/gcc/testsuite/g++.dg/cpp2a/constexpr-dtor12.C *** gcc-10.3.0/gcc/testsuite/g++.dg/cpp2a/constexpr-dtor12.C Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/g++.dg/cpp2a/constexpr-dtor12.C Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,13 ---- + // PR c++/104513 + // { dg-do compile { target c++20 } } + + struct S { + constexpr S () : s (nullptr) {} + constexpr ~S () { delete s; } + int *s; + }; + struct T : S { + constexpr T () : S () {} + constexpr ~T () { s = new int (42); return; } + }; + constexpr T t; diff -Nrcpad gcc-10.3.0/gcc/testsuite/g++.dg/cpp2a/constexpr-new18.C gcc-10.4.0/gcc/testsuite/g++.dg/cpp2a/constexpr-new18.C *** gcc-10.3.0/gcc/testsuite/g++.dg/cpp2a/constexpr-new18.C Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/g++.dg/cpp2a/constexpr-new18.C Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,45 ---- + // PR c++/99859 + // { dg-do compile { target c++20 } } + + template + struct intrusive_ptr + { + T *ptr = nullptr; + constexpr explicit intrusive_ptr(T* p) : ptr(p) { + ++ptr->count_; + } + constexpr ~intrusive_ptr() { + if (ptr->dec() == 0) + delete ptr; + } + constexpr intrusive_ptr(intrusive_ptr const& a) : ptr(a.ptr) { + ++ptr->count_; + } + }; + + struct Foo { + int count_ = 0; + constexpr int dec() { + return --count_; + } + }; + + constexpr bool baz() { + Foo f { 4 }; + intrusive_ptr a(&f); + return true; + } + constexpr bool x = baz(); + + constexpr void bar(intrusive_ptr a) + { + if (a.ptr->count_ != 2) throw 1; + } + + constexpr bool foo() { + intrusive_ptr a(new Foo()); + bar(a); + return true; + } + + static_assert(foo()); diff -Nrcpad gcc-10.3.0/gcc/testsuite/g++.dg/cpp2a/constexpr-new19.C gcc-10.4.0/gcc/testsuite/g++.dg/cpp2a/constexpr-new19.C *** gcc-10.3.0/gcc/testsuite/g++.dg/cpp2a/constexpr-new19.C Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/g++.dg/cpp2a/constexpr-new19.C Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,43 ---- + // PR c++/99859 + // { dg-do compile { target c++20 } } + + constexpr void + foo (int *x) + { + ++*x; + } + + constexpr int + bar () + { + int *x = new int (0); + foo (x); + foo (x); + int y = *x; + delete x; + return y; + } + + static_assert (bar () == 2); + + struct R { int a, *b; }; + + constexpr void + baz (R x) + { + ++*x.b; + } + + constexpr int + qux () + { + int *x = new int (0); + R r{1, x}; + baz (r); + baz (r); + int y = *x; + delete x; + return y; + } + + static_assert (qux () == 2); diff -Nrcpad gcc-10.3.0/gcc/testsuite/g++.dg/cpp2a/constexpr-new22.C gcc-10.4.0/gcc/testsuite/g++.dg/cpp2a/constexpr-new22.C *** gcc-10.3.0/gcc/testsuite/g++.dg/cpp2a/constexpr-new22.C Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/g++.dg/cpp2a/constexpr-new22.C Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,42 ---- + // PR c++/104568 + // { dg-do compile { target c++20 } } + // { dg-options "" } + + struct S { int s; constexpr S () : s (0) {} constexpr ~S () {} }; + typedef int T[0]; + typedef int U[0]; + + constexpr bool + foo () + { + auto p = new T[2]; + auto q1 = &p[0]; + auto q2 = &p[1]; + auto q3 = &p[2]; + delete[] p; + return true; + } + + constexpr bool + bar () + { + auto p = new U[2]; + auto q1 = &p[0]; + auto q2 = &p[1]; + auto q3 = &p[2]; + delete[] p; + return true; + } + + constexpr bool + baz () + { + auto p = new T[0]; + auto q1 = &p[0]; + delete[] p; + return true; + } + + constexpr bool a = foo (); + constexpr bool b = bar (); + constexpr bool c = baz (); diff -Nrcpad gcc-10.3.0/gcc/testsuite/g++.dg/cpp2a/constexpr-nonlit7.C gcc-10.4.0/gcc/testsuite/g++.dg/cpp2a/constexpr-nonlit7.C *** gcc-10.3.0/gcc/testsuite/g++.dg/cpp2a/constexpr-nonlit7.C Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/g++.dg/cpp2a/constexpr-nonlit7.C Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,6 ---- + // PR c++/104994 + // CWG2552 + // { dg-do compile { target c++14 } } + + constexpr bool foo () { extern thread_local int t; return true; } + static constexpr bool a = foo (); diff -Nrcpad gcc-10.3.0/gcc/testsuite/g++.dg/cpp2a/constexpr-virtual19.C gcc-10.4.0/gcc/testsuite/g++.dg/cpp2a/constexpr-virtual19.C *** gcc-10.3.0/gcc/testsuite/g++.dg/cpp2a/constexpr-virtual19.C Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/g++.dg/cpp2a/constexpr-virtual19.C Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,11 ---- + // PR c++/102786 + // { dg-do compile { target c++20 } } + + struct S { + virtual constexpr int foo () const { return 42; } + }; + + constexpr S s; + constexpr auto a = &S::foo; + constexpr auto b = (s.*a) (); + constexpr auto c = (s.*&S::foo) (); diff -Nrcpad gcc-10.3.0/gcc/testsuite/g++.dg/cpp2a/desig18.C gcc-10.4.0/gcc/testsuite/g++.dg/cpp2a/desig18.C *** gcc-10.3.0/gcc/testsuite/g++.dg/cpp2a/desig18.C Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/g++.dg/cpp2a/desig18.C Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,17 ---- + // PR c++/100489 + // { dg-options "" } + + union U + { + union + { + unsigned char a; + }; + + unsigned char b[1]; + }; + + void f(unsigned char a) + { + union U u = { .a = a }; + } diff -Nrcpad gcc-10.3.0/gcc/testsuite/g++.dg/cpp2a/is-constant-evaluated11.C gcc-10.4.0/gcc/testsuite/g++.dg/cpp2a/is-constant-evaluated11.C *** gcc-10.3.0/gcc/testsuite/g++.dg/cpp2a/is-constant-evaluated11.C Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/g++.dg/cpp2a/is-constant-evaluated11.C Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,16 ---- + // PR c++/97051 + // { dg-do compile { target c++20 } } + + namespace std { + constexpr inline bool + is_constant_evaluated () noexcept + { + return __builtin_is_constant_evaluated (); + } + } + + template + requires (std::is_constant_evaluated()) + constexpr int a = 0; + + constexpr int b = a; diff -Nrcpad gcc-10.3.0/gcc/testsuite/g++.dg/cpp2a/lambda-generic9.C gcc-10.4.0/gcc/testsuite/g++.dg/cpp2a/lambda-generic9.C *** gcc-10.3.0/gcc/testsuite/g++.dg/cpp2a/lambda-generic9.C Thu Jan 1 00:00:00 1970 --- gcc-10.4.0/gcc/testsuite/g++.dg/cpp2a/lambda-generic9.C Tue Jun 28 08:54:28 2022 *************** *** 0 **** --- 1,9 ---- + // PR c++/95434 + // { dg-do compile { target c++20 } } + + template + void f() { + []