diff -Nrcpad gcc-8.3.0/ChangeLog gcc-8.4.0/ChangeLog *** gcc-8.3.0/ChangeLog Fri Feb 22 14:20:37 2019 --- gcc-8.4.0/ChangeLog Wed Mar 4 08:30:30 2020 *************** *** 1,3 **** --- 1,7 ---- + 2020-03-04 Release Manager + + * GCC 8.4.0 released. + 2019-02-22 Release Manager * GCC 8.3.0 released. diff -Nrcpad gcc-8.3.0/INSTALL/build.html gcc-8.4.0/INSTALL/build.html *** gcc-8.3.0/INSTALL/build.html Fri Feb 22 14:22:15 2019 --- gcc-8.4.0/INSTALL/build.html Wed Mar 4 08:32:15 2020 *************** that type mismatches occur, this could b *** 116,122 ****

The solution is not to use such a directory for building GCC.

!

Similarly, when building from SVN or snapshots, or if you modify *.l files, you need the Flex lexical analyzer generator installed. If you do not modify *.l files, releases contain the Flex-generated files and you do not need Flex installed to build --- 116,122 ----

The solution is not to use such a directory for building GCC.

!

Similarly, when building from the source repository or snapshots, or if you modify *.l files, you need the Flex lexical analyzer generator installed. If you do not modify *.l files, releases contain the Flex-generated files and you do not need Flex installed to build *************** them. There is still one Flex-based lex *** 124,130 **** build machinery, not of GCC itself) that is used even if you only build the C front end.

!

When building from SVN or snapshots, or if you modify Texinfo documentation, you need version 4.7 or later of Texinfo installed if you want Info documentation to be regenerated. Releases contain Info documentation pre-built for the unmodified documentation in the release. --- 124,130 ---- build machinery, not of GCC itself) that is used even if you only build the C front end.

!

When building from the source repository or snapshots, or if you modify Texinfo documentation, you need version 4.7 or later of Texinfo installed if you want Info documentation to be regenerated. Releases contain Info documentation pre-built for the unmodified documentation in the release. diff -Nrcpad gcc-8.3.0/INSTALL/configure.html gcc-8.4.0/INSTALL/configure.html *** gcc-8.3.0/INSTALL/configure.html Fri Feb 22 14:22:15 2019 --- gcc-8.4.0/INSTALL/configure.html Wed Mar 4 08:32:15 2020 *************** for both native and cross targets. *** 91,99 ****

We use srcdir to refer to the toplevel source directory for GCC; we use objdir to refer to the toplevel build/object directory.

!

If you obtained the sources via SVN, srcdir must refer to the top ! gcc directory, the one where the MAINTAINERS file can be ! found, and not its gcc subdirectory, otherwise the build will fail.

If either srcdir or objdir is located on an automounted NFS file system, the shell’s built-in pwd command will return --- 91,100 ----

We use srcdir to refer to the toplevel source directory for GCC; we use objdir to refer to the toplevel build/object directory.

!

If you obtained the sources by cloning the repository, srcdir ! must refer to the top gcc directory, the one where the ! MAINTAINERS file can be found, and not its gcc ! subdirectory, otherwise the build will fail.

If either srcdir or objdir is located on an automounted NFS file system, the shell’s built-in pwd command will return *************** with --enable-bootstrap. *** 1050,1056 ****

--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 SVN development tree. When building GCC from that development tree, or from one of our snapshots, those generated files are placed in your build directory, which allows for the source to be in a readonly directory. --- 1051,1057 ----

--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, or from one of our snapshots, those generated files are placed in your build directory, which allows for the source to be in a readonly directory. *************** controlled by the Makefiles. *** 1343,1384 ****

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

When you specify this option, the compiler is built to perform internal ! consistency checks of the requested complexity. This does not change the ! generated code, but adds error checking within the compiler. This will ! slow down the compiler and may only work properly if you are building ! the compiler with GCC. This is ‘yes,extra’ by default when building ! from SVN or snapshots, but ‘release’ for releases. The default ! for building the stage1 compiler is ‘yes’. More control ! over the checks may be had by specifying list. The categories of ! checks available are ‘yes’ (most common checks ! ‘assert,misc,tree,gc,rtlflag,runtime’), ‘no’ (no checks at ! all), ‘all’ (all but ‘valgrind’), ‘release’ (cheapest ! checks ‘assert,runtime’) or ‘none’ (same as ‘no’). ! Individual checks can be enabled with these flags ‘assert’, ! ‘df’, ‘fold’, ‘gc’, ‘gcac’, ‘misc’, ‘rtl’, ! ‘rtlflag’, ‘runtime’, ‘tree’, ‘extra’ and ‘valgrind’. ! ‘extra’ adds for ‘misc’ checking extra checks that might affect ! code generation and should therefore not differ between stage1 and later ! stages.

!

The ‘valgrind’ check requires the external valgrind ! simulator, available from http://valgrind.org/. The ! ‘df’, ‘rtl’, ‘gcac’ and ‘valgrind’ checks are very expensive. ! To disable all checking, ‘--disable-checking’ or ! ‘--enable-checking=none’ must be explicitly requested. Disabling ! assertions will make the compiler and runtime slightly faster but ! increase the risk of undetected internal errors causing wrong code to be ! generated.

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

If no --enable-checking option is specified the stage1 ! compiler will be built with ‘yes’ checking enabled, otherwise ! the stage1 checking flags are the same as specified by --enable-checking. To build the stage1 compiler with different checking options use --enable-stage1-checking. The list of checking options is the same as for --enable-checking. --- 1344,1394 ----

--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 ! properly if you are building the compiler with GCC.

!

When the option is not specified, the active set of checks depends on context. ! Namely, bootstrap stage 1 defaults to ‘--enable-checking=yes’, builds ! from release branches or release archives default to ! ‘--enable-checking=release’, and otherwise ! ‘--enable-checking=yes,extra’ is used. When the option is ! specified without a list, the result is the same as ! ‘--enable-checking=yes’. Likewise, ‘--disable-checking’ is ! equivalent to ‘--enable-checking=no’. !

!

The categories of checks available in list are ‘yes’ (most common ! checks ‘assert,misc,gc,gimple,rtlflag,runtime,tree,types’), ‘no’ ! (no checks at all), ‘all’ (all but ‘valgrind’), ‘release’ ! (cheapest checks ‘assert,runtime’) or ‘none’ (same as ‘no’). ! ‘release’ checks are always on and to disable them ! ‘--disable-checking’ or ‘--enable-checking=no[,<other checks>]’ ! must be explicitly requested. Disabling assertions makes the compiler and ! runtime slightly faster but increases the risk of undetected internal errors ! causing wrong code to be generated. !

!

Individual checks can be enabled with these flags: ‘assert’, ‘df’, ! ‘extra’, ‘fold’, ‘gc’, ‘gcac’, ‘gimple’, ! ‘misc’, ‘rtl’, ‘rtlflag’, ‘runtime’, ‘tree’, ! ‘types’ and ‘valgrind’. ‘extra’ extends ‘misc’ ! checking with extra checks that might affect code generation and should ! therefore not differ between stage1 and later stages in bootstrap. !

!

The ‘valgrind’ check requires the external valgrind simulator, ! available from http://valgrind.org/. The ‘rtl’ checks are ! expensive and the ‘df’, ‘gcac’ and ‘valgrind’ checks are very ! 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 --enable-checking. To build the stage1 compiler with different checking options use --enable-stage1-checking. The list of checking options is the same as for --enable-checking. diff -Nrcpad gcc-8.3.0/INSTALL/download.html gcc-8.4.0/INSTALL/download.html *** gcc-8.3.0/INSTALL/download.html Fri Feb 22 14:22:15 2019 --- gcc-8.4.0/INSTALL/download.html Wed Mar 4 08:32:14 2020 *************** ul.no-bullet {list-style: none} *** 83,91 **** !

GCC is distributed via SVN and FTP ! tarballs compressed with gzip or ! bzip2.

Please refer to the releases web page for information on how to obtain GCC. --- 83,90 ---- !

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

Please refer to the releases web page for information on how to obtain GCC. diff -Nrcpad gcc-8.3.0/INSTALL/prerequisites.html gcc-8.4.0/INSTALL/prerequisites.html *** gcc-8.3.0/INSTALL/prerequisites.html Fri Feb 22 14:22:15 2019 --- gcc-8.4.0/INSTALL/prerequisites.html Wed Mar 4 08:32:14 2020 *************** and up works. *** 193,200 ****

Necessary when regenerating Makefile dependencies in libiberty. Necessary when regenerating libiberty/functions.texi. Necessary when generating manpages from Texinfo manuals. ! Used by various scripts to generate some files included in SVN (mainly ! Unicode-related and rarely changing) from source tables.

Used by automake.

--- 193,201 ----

Necessary when regenerating Makefile dependencies in libiberty. Necessary when regenerating libiberty/functions.texi. Necessary when generating manpages from Texinfo manuals. ! Used by various scripts to generate some files included in the source ! repository (mainly Unicode-related and rarely changing) from source ! tables.

Used by automake.

*************** for more information. This bug has been *** 331,338 ****

Necessary when modifying *.l files.

Necessary to build GCC during development because the generated output ! files are not included in the SVN repository. They are included in ! releases.

Texinfo version 4.7 (or later)
--- 332,339 ----

Necessary when modifying *.l files.

Necessary to build GCC during development because the generated output ! files are not included in the version-controlled source repository. ! They are included in releases.

Texinfo version 4.7 (or later)
*************** create printable documentation in DVI or *** 345,351 **** 4.8 or later is required for make pdf.

Necessary to build GCC documentation during development because the ! generated output files are not included in the SVN repository. They are included in releases.

--- 346,352 ---- 4.8 or later is required for make pdf.

Necessary to build GCC documentation during development because the ! generated output files are not included in the repository. They are included in releases.

*************** DVI or PDF files, respectively. *** 362,372 **** files in the directories below jit/docs.

!
SVN (any version)
SSH (any version)
!

Necessary to access the SVN repository. Public releases and weekly ! snapshots of the development sources are also available via FTP.

GNU diffutils version 2.7 (or later)
--- 363,373 ---- 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)
diff -Nrcpad gcc-8.3.0/LAST_UPDATED gcc-8.4.0/LAST_UPDATED *** gcc-8.3.0/LAST_UPDATED Fri Feb 22 14:22:14 2019 --- gcc-8.4.0/LAST_UPDATED Wed Mar 4 08:32:14 2020 *************** *** 1 **** ! Obtained from SVN: tags/gcc_8_3_0_release revision 269117 --- 1 ---- ! Obtained from git: releases/gcc-8.4.0 revision 8cd3bffead2ed1d1998c190865694f920fbc93ab diff -Nrcpad gcc-8.3.0/MD5SUMS gcc-8.4.0/MD5SUMS *** gcc-8.3.0/MD5SUMS Fri Feb 22 14:40:16 2019 --- gcc-8.4.0/MD5SUMS Wed Mar 4 08:50:14 2020 *************** *** 1,5 **** # This file contains the MD5 checksums of the files in the ! # gcc-8.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-8.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 *************** e399c6eed967a5699498feb798da61ee .gitat *** 17,50 **** fe60d87048567d4fe8c8a0ed2448bcc8 COPYING.RUNTIME d32239bcb673463ab874e80d47fae504 COPYING3 6a6a8e020838b23406c81b19c1d46df6 COPYING3.LIB ! 939203428e4150fb65ff2d726d9cf350 ChangeLog fd4ecdf5d672efe2b0e409aca9cf9446 ChangeLog.jit 09538b708302f1735f6fa05b622ecf5e ChangeLog.tree-ssa 24ab760126489e69436a43185dc3d202 INSTALL/README 7a7920a778049383ad2cfa24950f828c INSTALL/binaries.html ! 5526faac085bc50003a67bf7947044df INSTALL/build.html ! 74f77a238297c67d099d1c725845acd1 INSTALL/configure.html ! 9eb204fccc53f9692cd335dba43a98f2 INSTALL/download.html ccfa0bb940fa7a0576ce85de83fc53d7 INSTALL/finalinstall.html 631f316a14d9db82001443ac601bccdb INSTALL/gfdl.html 783d099b442557a878b7340e49e773e7 INSTALL/index.html c949aa9bf4aae3cb3ccd3c9aa7800a65 INSTALL/old.html ! 1cf76015ddd32a5da46b3f8b1ab8382a INSTALL/prerequisites.html 0301dbd0f16478a586444e6c652443c0 INSTALL/specific.html 6df1bbd775d96043bac1e66c21fb56c8 INSTALL/test.html ! 456208cdbed1d21384d760f9c59e64ea LAST_UPDATED 9dd9f840026a28fd2ac8f123aa287829 MAINTAINERS 620a4fc4c5e9dcffd0bafd38536651e2 Makefile.def a07d40fad9f7fe5dfc303895a00a1bbe Makefile.in c810f503e2367f1389bb607f999d4239 Makefile.tpl ! e0f6d7c134c3a396960c3ecff14795f8 NEWS 80d26bc3b1ad4f6969a96a24c9181bf5 README 500b9244caa7a7ab23ece1db37efa76d compile cb74b6c8a93f1e46388212f44c60afed config-ml.in 0f6ce63fd3db85c1f6cefec2bb848b41 config.guess 040359150cf11493f973a46d8a25b06b config.rpath 0b16e97e0e2c87cb5ed8832950caf27e config.sub ! 1611ac26793da4a0f35235536b84a601 config/ChangeLog 0fcd4badfe2a2191778bdf5ab94aa40c config/acinclude.m4 2ea0edfde0ce5ce69b49317a5650f048 config/acx.m4 6b030f5cf640bdd401ea739f54a667f8 config/asmcfi.m4 --- 17,50 ---- fe60d87048567d4fe8c8a0ed2448bcc8 COPYING.RUNTIME d32239bcb673463ab874e80d47fae504 COPYING3 6a6a8e020838b23406c81b19c1d46df6 COPYING3.LIB ! 64a6cd3229b2ea042dd6b497e9f0160f ChangeLog fd4ecdf5d672efe2b0e409aca9cf9446 ChangeLog.jit 09538b708302f1735f6fa05b622ecf5e ChangeLog.tree-ssa 24ab760126489e69436a43185dc3d202 INSTALL/README 7a7920a778049383ad2cfa24950f828c INSTALL/binaries.html ! 7fe74ad8024e84ab9ce0a8ab9ce3cd63 INSTALL/build.html ! 9ced82896272ecf91bebee3eb23eca2e INSTALL/configure.html ! 6c28e73b4110dc6a65328663798a1c5f INSTALL/download.html ccfa0bb940fa7a0576ce85de83fc53d7 INSTALL/finalinstall.html 631f316a14d9db82001443ac601bccdb INSTALL/gfdl.html 783d099b442557a878b7340e49e773e7 INSTALL/index.html c949aa9bf4aae3cb3ccd3c9aa7800a65 INSTALL/old.html ! a061135fa25c7b53826f14e5058f872a INSTALL/prerequisites.html 0301dbd0f16478a586444e6c652443c0 INSTALL/specific.html 6df1bbd775d96043bac1e66c21fb56c8 INSTALL/test.html ! b7e3e7c2885e101f204d5bca55bf122c LAST_UPDATED 9dd9f840026a28fd2ac8f123aa287829 MAINTAINERS 620a4fc4c5e9dcffd0bafd38536651e2 Makefile.def a07d40fad9f7fe5dfc303895a00a1bbe Makefile.in c810f503e2367f1389bb607f999d4239 Makefile.tpl ! 2d713e215690ec96fc4887b92215d7fa NEWS 80d26bc3b1ad4f6969a96a24c9181bf5 README 500b9244caa7a7ab23ece1db37efa76d compile cb74b6c8a93f1e46388212f44c60afed config-ml.in 0f6ce63fd3db85c1f6cefec2bb848b41 config.guess 040359150cf11493f973a46d8a25b06b config.rpath 0b16e97e0e2c87cb5ed8832950caf27e config.sub ! c7bb5a606f3fa05d78a5adc2097c04d0 config/ChangeLog 0fcd4badfe2a2191778bdf5ab94aa40c config/acinclude.m4 2ea0edfde0ce5ce69b49317a5650f048 config/acx.m4 6b030f5cf640bdd401ea739f54a667f8 config/asmcfi.m4 *************** e2dc6b4fd62b77bff96b7951ef74f78f config *** 139,145 **** 0163b672c888aaf1c8ad3e867a0ec9f1 config/zlib.m4 a2a274a8ee83e34774f7a8974c23e0cf configure d6c493da635718ff62d768fc8ab5111f configure.ac ! 9c3593117d1c513ac8c783410113b0e7 contrib/ChangeLog 5fc435c7928f858246df931ea3f3ece7 contrib/ChangeLog.jit 7af8d2979bf1a7cfa88e30d05fa22be2 contrib/ChangeLog.tree-ssa 8498c0cdfe3f444ad6f540ec9e11cbec contrib/analyze_brprob.py --- 139,145 ---- 0163b672c888aaf1c8ad3e867a0ec9f1 config/zlib.m4 a2a274a8ee83e34774f7a8974c23e0cf configure d6c493da635718ff62d768fc8ab5111f configure.ac ! f7baec5d48a0aa9ae04960347b744522 contrib/ChangeLog 5fc435c7928f858246df931ea3f3ece7 contrib/ChangeLog.jit 7af8d2979bf1a7cfa88e30d05fa22be2 contrib/ChangeLog.tree-ssa 8498c0cdfe3f444ad6f540ec9e11cbec contrib/analyze_brprob.py *************** db03e57377f9eb202b7b783eb81fe40d contri *** 166,177 **** b038940be99369232106ef9e9b15bee3 contrib/filter_params.py dfceb883caf21f3071f7309ee0ac8a6b contrib/gcc.doxy 55236e85d8087042189b701cd05d84be contrib/gcc_build ! 348fbf0368812a48cf6f92e113b771cc contrib/gcc_update 61ad7a180a7895f83d32ef7b15cb8386 contrib/gen_autofdo_event.py 81de5df29d666c99588d7fe2e7559687 contrib/gennews 2d35f147fc45f270eb169156cf7550e0 contrib/gimple.vim 59304fc08afa489baa6b920cc76dc625 contrib/gthr_supp_vxw_5x.c ! faa262624ae1e1aabc8767663dd18c15 contrib/header-tools/ChangeLog 1ba821a1e480c2f8ac33b68ca1097770 contrib/header-tools/README 05ef7fb87e90ba93ee04659be072a357 contrib/header-tools/count-headers ba0485a3c721bce9e32407ef996d2a9d contrib/header-tools/gcc-order-headers --- 166,177 ---- b038940be99369232106ef9e9b15bee3 contrib/filter_params.py dfceb883caf21f3071f7309ee0ac8a6b contrib/gcc.doxy 55236e85d8087042189b701cd05d84be contrib/gcc_build ! d90e815d97f44b60f8523792bd0e89d7 contrib/gcc_update 61ad7a180a7895f83d32ef7b15cb8386 contrib/gen_autofdo_event.py 81de5df29d666c99588d7fe2e7559687 contrib/gennews 2d35f147fc45f270eb169156cf7550e0 contrib/gimple.vim 59304fc08afa489baa6b920cc76dc625 contrib/gthr_supp_vxw_5x.c ! 27140d77e1a71e763c1fde55317008ef contrib/header-tools/ChangeLog 1ba821a1e480c2f8ac33b68ca1097770 contrib/header-tools/README 05ef7fb87e90ba93ee04659be072a357 contrib/header-tools/count-headers ba0485a3c721bce9e32407ef996d2a9d contrib/header-tools/gcc-order-headers *************** a34668cfad9dec733354503fbc67fb24 contri *** 194,200 **** 87a19b40fbd220938cf6c23c42c255e2 contrib/prepare_patch.sh a6f2829359f65be5c182fd414e30fe8a contrib/prerequisites.md5 663d159a25cdcd62d1182f124f0dae82 contrib/prerequisites.sha512 ! e853ef3f0955cb4a2896ac9db76c4324 contrib/reghunt/ChangeLog cf247a580e49d212518de409793db0a8 contrib/reghunt/bin/gcc-build-full 724e70ea3e80f87f2a201bbe2f1eef37 contrib/reghunt/bin/gcc-build-simple 3f2318bae7562a4ad1639e686916a545 contrib/reghunt/bin/gcc-cleanup --- 194,200 ---- 87a19b40fbd220938cf6c23c42c255e2 contrib/prepare_patch.sh a6f2829359f65be5c182fd414e30fe8a contrib/prerequisites.md5 663d159a25cdcd62d1182f124f0dae82 contrib/prerequisites.sha512 ! da46c0c42a0116da3adb629b2baa3d2e 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 *** 253,259 **** e2829fc4af4f433a6a328a62d5ce8066 contrib/reghunt/examples/reg-watch afd863c2ec84c906e20f9b9787b1f0fe contrib/reghunt/examples/reg-watch.awk 8955535523d4b5f48006bcb851ba9b4b contrib/reghunt/examples/testall ! c3f574b5661a61893872ed12e007240d 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 --- 253,259 ---- e2829fc4af4f433a6a328a62d5ce8066 contrib/reghunt/examples/reg-watch afd863c2ec84c906e20f9b9787b1f0fe contrib/reghunt/examples/reg-watch.awk 8955535523d4b5f48006bcb851ba9b4b contrib/reghunt/examples/testall ! a4c3e058eed4fcd238d42149b8751603 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 *************** dc562ddb86567c65e82953825713dc4b contri *** 269,275 **** 7f6418948396f8250447e3e6182322d8 contrib/repro_fail 39442479834f1c02d6ce11eab6889b6e contrib/test_installed 2c2a06a23394c548bb4afba3c25aacce contrib/test_recheck ! d4cd6e25d218d26c1eb5aca9e7b82de3 contrib/test_summary 45bd745cf293127fa6b729c7b58cf11f contrib/testsuite-management/validate_failures.py 0202e4875fa43ec09cf5e8442c873a56 contrib/testsuite-management/x86_64-unknown-linux-gnu.xfail 2c5264fb1400a0a2408fd44a4e345fc6 contrib/texi2pod.pl --- 269,275 ---- 7f6418948396f8250447e3e6182322d8 contrib/repro_fail 39442479834f1c02d6ce11eab6889b6e contrib/test_installed 2c2a06a23394c548bb4afba3c25aacce contrib/test_recheck ! c650e776de65a2de80bbfb0033641805 contrib/test_summary 45bd745cf293127fa6b729c7b58cf11f contrib/testsuite-management/validate_failures.py 0202e4875fa43ec09cf5e8442c873a56 contrib/testsuite-management/x86_64-unknown-linux-gnu.xfail 2c5264fb1400a0a2408fd44a4e345fc6 contrib/texi2pod.pl *************** a215e6682085a99499f7caeb741d06e5 contri *** 278,284 **** 45d4839f2ac702761b88d502311d47ef contrib/vimrc da7aeedeb5a86ee6f5982e559a2d6dcc contrib/warn_summary 8b59f0d0a2dcdced14765c514fbad719 depcomp ! 598b92dcbc3157348b691e34ffa24255 fixincludes/ChangeLog 6de190723745dc3f75080144dfa2215e fixincludes/Makefile.in b6e3f4950abc6e254b467063381f6473 fixincludes/README 455903ad4ff71fa5c5340ef7ae41a0e6 fixincludes/README-fixinc --- 278,284 ---- 45d4839f2ac702761b88d502311d47ef contrib/vimrc da7aeedeb5a86ee6f5982e559a2d6dcc contrib/warn_summary 8b59f0d0a2dcdced14765c514fbad719 depcomp ! aab0bd78608dcf801a8c93ea429c8d91 fixincludes/ChangeLog 6de190723745dc3f75080144dfa2215e fixincludes/Makefile.in b6e3f4950abc6e254b467063381f6473 fixincludes/README 455903ad4ff71fa5c5340ef7ae41a0e6 fixincludes/README-fixinc *************** a047119816700b0c31847ca6f4f52aab fixinc *** 291,303 **** 8a18294371ee69da33042b874d27b77e fixincludes/fixinc.in 1582ffd94ecc91318eebfb3b81e0bcb1 fixincludes/fixincl.c adf245e3714f799eafba40af16be8eb5 fixincludes/fixincl.tpl ! 221997491bff1cbeda6e439cb37e2bdb fixincludes/fixincl.x 545875b4fe1c26bc3e1befc75b34e9f5 fixincludes/fixlib.c 620c770139fc32c75b975b614d3156e8 fixincludes/fixlib.h 5b2c1fd3ef9d44fb6beb1a0d45ddd533 fixincludes/fixopts.c ed1415e9dbc8f421fd9288bde0d90ad1 fixincludes/fixtests.c 6df145c7cea1e2099cf97a0d83564aca fixincludes/genfixes ! d4f06d1dd56dee1976b145a88c0da74a fixincludes/inclhack.def 44bfe955e0fad29af749b16cd12fa743 fixincludes/mkfixinc.sh 5f9960cfe65b2e6bef658f770e52dfef fixincludes/mkheaders.in 3aa0563cd682ee61ecd9eb6eea0b0bce fixincludes/procopen.c --- 291,303 ---- 8a18294371ee69da33042b874d27b77e fixincludes/fixinc.in 1582ffd94ecc91318eebfb3b81e0bcb1 fixincludes/fixincl.c adf245e3714f799eafba40af16be8eb5 fixincludes/fixincl.tpl ! 8c0a32dd23d25079a519d4fe5129977c fixincludes/fixincl.x 545875b4fe1c26bc3e1befc75b34e9f5 fixincludes/fixlib.c 620c770139fc32c75b975b614d3156e8 fixincludes/fixlib.h 5b2c1fd3ef9d44fb6beb1a0d45ddd533 fixincludes/fixopts.c ed1415e9dbc8f421fd9288bde0d90ad1 fixincludes/fixtests.c 6df145c7cea1e2099cf97a0d83564aca fixincludes/genfixes ! a3f0f3e848052632ee5067bb93f2ae4b fixincludes/inclhack.def 44bfe955e0fad29af749b16cd12fa743 fixincludes/mkfixinc.sh 5f9960cfe65b2e6bef658f770e52dfef fixincludes/mkheaders.in 3aa0563cd682ee61ecd9eb6eea0b0bce fixincludes/procopen.c *************** ce39eed82f08475e7b77ba8f3cbd9e41 fixinc *** 314,320 **** 1345522e326f071aeb69b1c490fc8fc2 fixincludes/tests/base/ansi/math.h fb543bca7c73da85f944600810ef2171 fixincludes/tests/base/ansi/stdlib.h d6a40f191014042c3a1bf44086be6773 fixincludes/tests/base/arch/i960/archI960.h ! 7dc3902a9952707702003021370a1cc7 fixincludes/tests/base/architecture/ppc/math.h 0344107d793447f3bd08f341f61633af fixincludes/tests/base/assert.h 0d12f925a64c4fbfb164737569788298 fixincludes/tests/base/bits/fenv.h 06f1aca4509b42c45b0fcbe0042b88a8 fixincludes/tests/base/bits/huge_val.h --- 314,320 ---- 1345522e326f071aeb69b1c490fc8fc2 fixincludes/tests/base/ansi/math.h fb543bca7c73da85f944600810ef2171 fixincludes/tests/base/ansi/stdlib.h d6a40f191014042c3a1bf44086be6773 fixincludes/tests/base/arch/i960/archI960.h ! 08a0e30001bbbf762503a3ac7b0f1ea1 fixincludes/tests/base/architecture/ppc/math.h 0344107d793447f3bd08f341f61633af fixincludes/tests/base/assert.h 0d12f925a64c4fbfb164737569788298 fixincludes/tests/base/bits/fenv.h 06f1aca4509b42c45b0fcbe0042b88a8 fixincludes/tests/base/bits/huge_val.h *************** f067e3903c09c98db57bd84f7eaf8df5 fixinc *** 326,331 **** --- 326,332 ---- 69f7247dd4e4cf4af4aff6d92ae29999 fixincludes/tests/base/ctrl-quotes-def-1.h f1160d24e4253643c441ba3a4b227e43 fixincludes/tests/base/ctype.h 7664d896c62ce0ef7874adff4ba21c96 fixincludes/tests/base/curses.h + 339892e95a87af44aed61c0cd1f7beb9 fixincludes/tests/base/dispatch/object.h 1c654a39cf9704389beaac48967e4217 fixincludes/tests/base/errno.h 099987dd3e705438dc51edcc5a202f45 fixincludes/tests/base/fcntl.h 31a666eaf86d15fa19e6d1834f15ec38 fixincludes/tests/base/features.h *************** f1160d24e4253643c441ba3a4b227e43 fixinc *** 333,339 **** 7e364ced80dd56f237390965aa7f15d0 fixincludes/tests/base/hsfs/hsfs_spec.h 53be8accb111b5d7b7323bbfc52ed91f fixincludes/tests/base/i386/setjmp.h bfb58e3983fc133c965e434e57aed732 fixincludes/tests/base/ia64/sys/getppdp.h ! 498c99de6daa94738d83e68ec4e0a295 fixincludes/tests/base/inttypes.h 833e9408a49784184bee7981d665c911 fixincludes/tests/base/io-quotes-def-1.h a11561f51aa57e84e571f2073fb6bf60 fixincludes/tests/base/ioLib.h c8dd71b57c3a35b0c6760f7d38af6f42 fixincludes/tests/base/iso/math_c99.h --- 334,340 ---- 7e364ced80dd56f237390965aa7f15d0 fixincludes/tests/base/hsfs/hsfs_spec.h 53be8accb111b5d7b7323bbfc52ed91f fixincludes/tests/base/i386/setjmp.h bfb58e3983fc133c965e434e57aed732 fixincludes/tests/base/ia64/sys/getppdp.h ! 4a2008b1ee18a83a9c19d7bdc9c7f960 fixincludes/tests/base/inttypes.h 833e9408a49784184bee7981d665c911 fixincludes/tests/base/io-quotes-def-1.h a11561f51aa57e84e571f2073fb6bf60 fixincludes/tests/base/ioLib.h c8dd71b57c3a35b0c6760f7d38af6f42 fixincludes/tests/base/iso/math_c99.h *************** a911f5fbb127353024e77149fcf90596 fixinc *** 353,358 **** --- 354,361 ---- f690db296a82aeefa0bfe9ad74a2b71c fixincludes/tests/base/netinet/in.h 2649ccca3396541aeb5e612d4b4a3141 fixincludes/tests/base/netinet/ip.h f4a72388e98f34c098a3467dce9aa4e1 fixincludes/tests/base/obstack.h + c213736f179d8de08a09a9278e048d91 fixincludes/tests/base/os/availability.h + c3da2b1720112f2adb1c2bbf65563364 fixincludes/tests/base/os/base.h 294cd5d0b36b2fc66737cc43cd46ed69 fixincludes/tests/base/os/trace.h c24d1be3b5afd871e9f78e1a67b9cb82 fixincludes/tests/base/pixrect/memvar.h 1501a200fb392ae040545c7591f79498 fixincludes/tests/base/pthread.h *************** a5e817d35ded04a0fb03999b50c0e89e fixinc *** 415,426 **** 955462b555900ecd3934223c64e21fa7 fixincludes/tests/base/types/vxTypesBase.h c78e762f2c91f2af991feda7d3d7f4b2 fixincludes/tests/base/unistd.h 1ee24522c0ca412fe52e980d97a14e74 gcc/ABOUT-GCC-NLS ! 221b09865301e0eddff63f3e7cf11b2c gcc/BASE-VER 59530bdf33659b29e73d4adb9f9f6552 gcc/COPYING a916467b91076e631dd8edb7424769c7 gcc/COPYING.LIB d32239bcb673463ab874e80d47fae504 gcc/COPYING3 6a6a8e020838b23406c81b19c1d46df6 gcc/COPYING3.LIB ! 9fb5f69650a3a5b745aa02ccd2625958 gcc/ChangeLog a3b63c675afa7a655cc2bfa8a907af79 gcc/ChangeLog-1997 d9a88529352a010253c2e8fb1ed6023b gcc/ChangeLog-1998 240f08f81cb4699e8b49347db38233db gcc/ChangeLog-1999 --- 418,429 ---- 955462b555900ecd3934223c64e21fa7 fixincludes/tests/base/types/vxTypesBase.h c78e762f2c91f2af991feda7d3d7f4b2 fixincludes/tests/base/unistd.h 1ee24522c0ca412fe52e980d97a14e74 gcc/ABOUT-GCC-NLS ! 736d2c7660f390c805e83cfbb3ecb25a gcc/BASE-VER 59530bdf33659b29e73d4adb9f9f6552 gcc/COPYING a916467b91076e631dd8edb7424769c7 gcc/COPYING.LIB d32239bcb673463ab874e80d47fae504 gcc/COPYING3 6a6a8e020838b23406c81b19c1d46df6 gcc/COPYING3.LIB ! fb75e9771fd50cd6594a98f9620381af gcc/ChangeLog a3b63c675afa7a655cc2bfa8a907af79 gcc/ChangeLog-1997 d9a88529352a010253c2e8fb1ed6023b gcc/ChangeLog-1998 240f08f81cb4699e8b49347db38233db gcc/ChangeLog-1999 *************** fb3fadb88e1d2b3b640cfaaa5ff11780 gcc/Ch *** 450,467 **** 3eb07e0b2e542409bf73d359f7f65609 gcc/ChangeLog.ptr e13638e26743ba41e6011b76cc00d9a9 gcc/ChangeLog.tree-ssa 739ab47f6425bcea1d05e4fc0542de54 gcc/ChangeLog.tuples ! 95dc9e0b0c7669a0e7eb6d92b307616b gcc/DATESTAMP d41d8cd98f00b204e9800998ecf8427e gcc/DEV-PHASE eb92e1ff5e982ca07e173e0eb286d243 gcc/FSFChangeLog 30e1e33411566388b3164558482dc5e6 gcc/FSFChangeLog.10 36698274bb69e2ada20f5cc434f3caa5 gcc/FSFChangeLog.11 fd3c8bf53697d338b119daffaa28a665 gcc/LANGUAGES ! 3d61823af3fbda5cc7534bc7c5c27781 gcc/Makefile.in ec6799501b2eb2923d5de6a66169dbd2 gcc/ONEWS 4bf0c70e571b9a6a48471723c6fd95c7 gcc/README.Portability 4e17445717b172d487a1caa2f8300407 gcc/acinclude.m4 9545fe83576dc99e441c64e268711730 gcc/aclocal.m4 ! ae453402056812ed4e0dc16003e8946a gcc/ada/ChangeLog 683be0b07dc4f64f118fd5e8ae9cb30d gcc/ada/ChangeLog-2001 7aff25efb203be4136b8776cdc812956 gcc/ada/ChangeLog-2002 cd2379152000f40157d349018fb9364d gcc/ada/ChangeLog-2003 --- 453,470 ---- 3eb07e0b2e542409bf73d359f7f65609 gcc/ChangeLog.ptr e13638e26743ba41e6011b76cc00d9a9 gcc/ChangeLog.tree-ssa 739ab47f6425bcea1d05e4fc0542de54 gcc/ChangeLog.tuples ! 5b40f8295199acf034129d37f84171a1 gcc/DATESTAMP d41d8cd98f00b204e9800998ecf8427e gcc/DEV-PHASE eb92e1ff5e982ca07e173e0eb286d243 gcc/FSFChangeLog 30e1e33411566388b3164558482dc5e6 gcc/FSFChangeLog.10 36698274bb69e2ada20f5cc434f3caa5 gcc/FSFChangeLog.11 fd3c8bf53697d338b119daffaa28a665 gcc/LANGUAGES ! 8fe4b535bb48d67b2cfa97ae85748bd4 gcc/Makefile.in ec6799501b2eb2923d5de6a66169dbd2 gcc/ONEWS 4bf0c70e571b9a6a48471723c6fd95c7 gcc/README.Portability 4e17445717b172d487a1caa2f8300407 gcc/acinclude.m4 9545fe83576dc99e441c64e268711730 gcc/aclocal.m4 ! eebb5cabbde95407fb0e9161f4385223 gcc/ada/ChangeLog 683be0b07dc4f64f118fd5e8ae9cb30d gcc/ada/ChangeLog-2001 7aff25efb203be4136b8776cdc812956 gcc/ada/ChangeLog-2002 cd2379152000f40157d349018fb9364d gcc/ada/ChangeLog-2003 *************** a8c58e6bc5892e52f93e8e7e7500934e gcc/ad *** 629,635 **** afee0bb5efcf10a2f9c8259a744da8b1 gcc/ada/exp_ch7.ads c0922097479555efdd0e41d0dbf56856 gcc/ada/exp_ch8.adb f3821bfe0f70be56c8a1aaf9f6723fda gcc/ada/exp_ch8.ads ! 04898354035768d8f14a42f3759343e2 gcc/ada/exp_ch9.adb 54e06f0e61cb6235041a417eb633e41b gcc/ada/exp_ch9.ads a251e48041ce930f07fe60d4daec9a2b gcc/ada/exp_code.adb 46f17915b902ec2a2b643453d03e1676 gcc/ada/exp_code.ads --- 632,638 ---- afee0bb5efcf10a2f9c8259a744da8b1 gcc/ada/exp_ch7.ads c0922097479555efdd0e41d0dbf56856 gcc/ada/exp_ch8.adb f3821bfe0f70be56c8a1aaf9f6723fda gcc/ada/exp_ch8.ads ! fb7db29efaea69d4de1639a5b7910f00 gcc/ada/exp_ch9.adb 54e06f0e61cb6235041a417eb633e41b gcc/ada/exp_ch9.ads a251e48041ce930f07fe60d4daec9a2b gcc/ada/exp_code.adb 46f17915b902ec2a2b643453d03e1676 gcc/ada/exp_code.ads *************** f4d7aedee9c8cf8ef64ca6a1b3b11cb3 gcc/ad *** 665,671 **** e4cf3b07fc834a03762c5b935586576a gcc/ada/exp_util.ads ddf62c6849c389d453e5707a77ea44b0 gcc/ada/expander.adb f4807c67eb4f47f6f7c056b7f2f79977 gcc/ada/expander.ads ! b6421b6545cea43d0781412fd87f7d21 gcc/ada/expect.c d72760f80193283f9674a85d1edfbbfc gcc/ada/fe.h e15366c453255f8f4d84e1caa1fb0614 gcc/ada/final.c 80361954f6f11ae34c8de3ccdbd2881c gcc/ada/fmap.adb --- 668,674 ---- e4cf3b07fc834a03762c5b935586576a gcc/ada/exp_util.ads ddf62c6849c389d453e5707a77ea44b0 gcc/ada/expander.adb f4807c67eb4f47f6f7c056b7f2f79977 gcc/ada/expander.ads ! 9b9aa0fa263cc612ea4dfabc20fa9419 gcc/ada/expect.c d72760f80193283f9674a85d1edfbbfc gcc/ada/fe.h e15366c453255f8f4d84e1caa1fb0614 gcc/ada/final.c 80361954f6f11ae34c8de3ccdbd2881c gcc/ada/fmap.adb *************** afc4e22f2d981249d5da16dd5480c9a8 gcc/ad *** 681,701 **** 8c12f4e44d89584927ba1b596ca6555e gcc/ada/frontend.adb 873b04d6a203fcb76a7e6b7c2114e484 gcc/ada/frontend.ads 71c402028086d8495d1c055f64892297 gcc/ada/gcc-interface/Make-lang.in ! e2fc2e586c98ee94cabd0eff35fe08c3 gcc/ada/gcc-interface/Makefile.in 055be3d11fa6ccb53ffe7f8970a005ce gcc/ada/gcc-interface/ada-tree.def 91af834a131d212a8533dada32c52bf9 gcc/ada/gcc-interface/ada-tree.h 51c95420b5900990141d2e5705582197 gcc/ada/gcc-interface/ada.h 4cbfd794461da0feb1b8661ec623b6c6 gcc/ada/gcc-interface/config-lang.in 9779c4debc13c6f1cfa1e4e6a6e6c638 gcc/ada/gcc-interface/cuintp.c ! bb087024cc7223edca88c2027110192d gcc/ada/gcc-interface/decl.c c413d4d50e9563859f4d751a4404b705 gcc/ada/gcc-interface/gadaint.h 79037745a5ad4eb13341f43896160ac0 gcc/ada/gcc-interface/gigi.h f2528ece7aa7e2ed8123de8fe434252a gcc/ada/gcc-interface/lang-specs.h 86e28c1ab2be02440b174f984633984c gcc/ada/gcc-interface/lang.opt 03dc38205b0a07a98b1ea605a3204eae gcc/ada/gcc-interface/misc.c 7bd3630f35c5ac7b5c6cfaf8b16e5723 gcc/ada/gcc-interface/targtyps.c ! c980d8b1122d57cc1c4c555654b10f42 gcc/ada/gcc-interface/trans.c ! ce969d924b13d628ff017e05b9798033 gcc/ada/gcc-interface/utils.c 4776e3332d5b10a5915f26a92697aaa1 gcc/ada/gcc-interface/utils2.c a45c219685ae6ac76a079cae99c36c20 gcc/ada/get_scos.adb 4e460bb021c0b86d52e8fc3557dedbd6 gcc/ada/get_scos.ads --- 684,704 ---- 8c12f4e44d89584927ba1b596ca6555e gcc/ada/frontend.adb 873b04d6a203fcb76a7e6b7c2114e484 gcc/ada/frontend.ads 71c402028086d8495d1c055f64892297 gcc/ada/gcc-interface/Make-lang.in ! e3933bd11b388baf0a7efbe33711404a gcc/ada/gcc-interface/Makefile.in 055be3d11fa6ccb53ffe7f8970a005ce gcc/ada/gcc-interface/ada-tree.def 91af834a131d212a8533dada32c52bf9 gcc/ada/gcc-interface/ada-tree.h 51c95420b5900990141d2e5705582197 gcc/ada/gcc-interface/ada.h 4cbfd794461da0feb1b8661ec623b6c6 gcc/ada/gcc-interface/config-lang.in 9779c4debc13c6f1cfa1e4e6a6e6c638 gcc/ada/gcc-interface/cuintp.c ! 05c0cf1ca942240a3787f87853f841b1 gcc/ada/gcc-interface/decl.c c413d4d50e9563859f4d751a4404b705 gcc/ada/gcc-interface/gadaint.h 79037745a5ad4eb13341f43896160ac0 gcc/ada/gcc-interface/gigi.h f2528ece7aa7e2ed8123de8fe434252a gcc/ada/gcc-interface/lang-specs.h 86e28c1ab2be02440b174f984633984c gcc/ada/gcc-interface/lang.opt 03dc38205b0a07a98b1ea605a3204eae gcc/ada/gcc-interface/misc.c 7bd3630f35c5ac7b5c6cfaf8b16e5723 gcc/ada/gcc-interface/targtyps.c ! b7dc39783f6480e5eb33eb654b805f38 gcc/ada/gcc-interface/trans.c ! 7119f197664045ed12838a130a43b701 gcc/ada/gcc-interface/utils.c 4776e3332d5b10a5915f26a92697aaa1 gcc/ada/gcc-interface/utils2.c a45c219685ae6ac76a079cae99c36c20 gcc/ada/get_scos.adb 4e460bb021c0b86d52e8fc3557dedbd6 gcc/ada/get_scos.ads *************** f202eac0fe58728d025773bd04937b82 gcc/ad *** 719,725 **** 670cd3e724c6b64c7b322c6e75a0e7c4 gcc/ada/gnathtml.pl 6fcef43a4eedf15f9c669aaf97c14961 gcc/ada/gnatkr.adb ea90549092c26c261b89b034c438b34f gcc/ada/gnatkr.ads ! b7fa7a1a70254152b6ba51d235179d63 gcc/ada/gnatlink.adb 2cfddc30e8732370a3afce2cf6d51a3b gcc/ada/gnatlink.ads 7f23839006e1d5c4bc2b1ade04d2a5a1 gcc/ada/gnatls.adb cbb111e0d378d94142c3b7ba1e9a91e3 gcc/ada/gnatls.ads --- 722,728 ---- 670cd3e724c6b64c7b322c6e75a0e7c4 gcc/ada/gnathtml.pl 6fcef43a4eedf15f9c669aaf97c14961 gcc/ada/gnatkr.adb ea90549092c26c261b89b034c438b34f gcc/ada/gnatkr.ads ! e86aa9f8717db1af7b0c7c46be1b92d2 gcc/ada/gnatlink.adb 2cfddc30e8732370a3afce2cf6d51a3b gcc/ada/gnatlink.ads 7f23839006e1d5c4bc2b1ade04d2a5a1 gcc/ada/gnatls.adb cbb111e0d378d94142c3b7ba1e9a91e3 gcc/ada/gnatls.ads *************** dc9bcf0d23e819f28eb0636c651b893e gcc/ad *** 2238,2244 **** 0f4c21401ad2531f8c5d4010537dc6d2 gcc/ada/libgnat/sequenio.ads c7ea319b29245129911a221db181e9e5 gcc/ada/libgnat/system-aix.ads 40c25fa0de20aeeaa00288848dc307d9 gcc/ada/libgnat/system-darwin-arm.ads ! 58e0046a6ae4e6b77bc8da33ed0c38de gcc/ada/libgnat/system-darwin-ppc.ads 04080cfd1852dac606d6512bdd9b99d7 gcc/ada/libgnat/system-darwin-x86.ads 40991badbee93e63146414baf49559e6 gcc/ada/libgnat/system-djgpp.ads 7fcff2401f4d192d290adbb99539fd2f gcc/ada/libgnat/system-dragonfly-x86_64.ads --- 2241,2247 ---- 0f4c21401ad2531f8c5d4010537dc6d2 gcc/ada/libgnat/sequenio.ads c7ea319b29245129911a221db181e9e5 gcc/ada/libgnat/system-aix.ads 40c25fa0de20aeeaa00288848dc307d9 gcc/ada/libgnat/system-darwin-arm.ads ! 66f9fcddaf74f3033b21faa1352161da gcc/ada/libgnat/system-darwin-ppc.ads 04080cfd1852dac606d6512bdd9b99d7 gcc/ada/libgnat/system-darwin-x86.ads 40991badbee93e63146414baf49559e6 gcc/ada/libgnat/system-djgpp.ads 7fcff2401f4d192d290adbb99539fd2f gcc/ada/libgnat/system-dragonfly-x86_64.ads *************** bddff8ef880c337b7fbdc59b59ae739b gcc/ad *** 2333,2340 **** 1adbc160ea82fcbf5ad0247744eaafd4 gcc/ada/osint-l.ads 52b218492d360505c0bda6a48ee117b1 gcc/ada/osint-m.adb 3eae9e3edfb598a8817ad58f45b9198a gcc/ada/osint-m.ads ! 052c08f48303e8391318232c56b9137c gcc/ada/osint.adb ! b1f07448b33754ab54b8515a5457bc79 gcc/ada/osint.ads 3be5fdc94e483fa86af57b5b6230549f gcc/ada/output.adb 956252bff10e71f2011c3e2b23ad3039 gcc/ada/output.ads 389d8babf840660f42ba2f7c9591b7d6 gcc/ada/par-ch10.adb --- 2336,2343 ---- 1adbc160ea82fcbf5ad0247744eaafd4 gcc/ada/osint-l.ads 52b218492d360505c0bda6a48ee117b1 gcc/ada/osint-m.adb 3eae9e3edfb598a8817ad58f45b9198a gcc/ada/osint-m.ads ! a7c740b28ce7a52c1958a03e64550c18 gcc/ada/osint.adb ! 556626e3ee012d77ec1dd219940cc388 gcc/ada/osint.ads 3be5fdc94e483fa86af57b5b6230549f gcc/ada/output.adb 956252bff10e71f2011c3e2b23ad3039 gcc/ada/output.ads 389d8babf840660f42ba2f7c9591b7d6 gcc/ada/par-ch10.adb *************** c5745397b07f10fa5464be4d9354f538 gcc/ad *** 2427,2433 **** 8d79ab188ecf8a9394c53603deeb71c9 gcc/ada/sem_ch6.ads 7d2fc1e15396c9cd17dc7b038f67fe62 gcc/ada/sem_ch7.adb fa7bc8a457629b9e98171db9110a99ec gcc/ada/sem_ch7.ads ! cbc442cbe0f0cde03fd79b4d3213ea5d gcc/ada/sem_ch8.adb c766e01f41ff6fb17a55390250ca0342 gcc/ada/sem_ch8.ads b2a1b25562913c20071ce580132df31f gcc/ada/sem_ch9.adb cb6ebb33d2db706c3ff65265c929a9a2 gcc/ada/sem_ch9.ads --- 2430,2436 ---- 8d79ab188ecf8a9394c53603deeb71c9 gcc/ada/sem_ch6.ads 7d2fc1e15396c9cd17dc7b038f67fe62 gcc/ada/sem_ch7.adb fa7bc8a457629b9e98171db9110a99ec gcc/ada/sem_ch7.ads ! 56b328307517e4f051b55f07dcdf7a94 gcc/ada/sem_ch8.adb c766e01f41ff6fb17a55390250ca0342 gcc/ada/sem_ch8.ads b2a1b25562913c20071ce580132df31f gcc/ada/sem_ch9.adb cb6ebb33d2db706c3ff65265c929a9a2 gcc/ada/sem_ch9.ads *************** d51fece626cc19463cbd55ba9769d7b9 gcc/ad *** 2437,2443 **** f5cf815dcd3de98742a2ac49c2929567 gcc/ada/sem_disp.ads 56ee042f98391d71cd117cd7a1be909d gcc/ada/sem_dist.adb 3fe2e28ea1e92978704c4a2e408ebb51 gcc/ada/sem_dist.ads ! 9f90116e4c31e55046c06a9f038fa7b6 gcc/ada/sem_elab.adb c07c35a4a0cf8de9258b77bb435a0cd9 gcc/ada/sem_elab.ads 02cf3a296155d51e7f6fb4f0813e5c8c gcc/ada/sem_elim.adb 194aa5ab139949b2f92a70a2a7a4a38c gcc/ada/sem_elim.ads --- 2440,2446 ---- f5cf815dcd3de98742a2ac49c2929567 gcc/ada/sem_disp.ads 56ee042f98391d71cd117cd7a1be909d gcc/ada/sem_dist.adb 3fe2e28ea1e92978704c4a2e408ebb51 gcc/ada/sem_dist.ads ! 9147e3e2f97c82454843fa33ddab1c33 gcc/ada/sem_elab.adb c07c35a4a0cf8de9258b77bb435a0cd9 gcc/ada/sem_elab.ads 02cf3a296155d51e7f6fb4f0813e5c8c gcc/ada/sem_elim.adb 194aa5ab139949b2f92a70a2a7a4a38c gcc/ada/sem_elim.ads *************** e22fa549d93a0ebcbbd8e5dc76987344 gcc/ad *** 2455,2466 **** 16fab00ddb444a8d9993da314eb5e63e gcc/ada/sem_scil.ads 2d56888604f862cac74888844f6a1707 gcc/ada/sem_smem.adb 7541ea89ec886fcb260d39ceaaf654e0 gcc/ada/sem_smem.ads ! 9fb353e3ab3b277b8d5d7f5c0a3b7cb0 gcc/ada/sem_spark.adb 21d0d7b3347ef38a811200511a006c03 gcc/ada/sem_spark.ads cbb4ace58822e09cde57bfe26f2654d6 gcc/ada/sem_type.adb 7db89f9e5e9f6ad281619641e4c29d21 gcc/ada/sem_type.ads ! 8be382ebb52e2121d5c8cb24def1c934 gcc/ada/sem_util.adb ! 7e31aa6b59f770e4a1d568ce6e9609e0 gcc/ada/sem_util.ads abf0651cccb1a746bdf2e22bdeb506ba gcc/ada/sem_warn.adb 4a9f9d4da59001608e956c77a11b5fa3 gcc/ada/sem_warn.ads 60cec7e313c26824acef72ef58ecd7fb gcc/ada/set_targ.adb --- 2458,2469 ---- 16fab00ddb444a8d9993da314eb5e63e gcc/ada/sem_scil.ads 2d56888604f862cac74888844f6a1707 gcc/ada/sem_smem.adb 7541ea89ec886fcb260d39ceaaf654e0 gcc/ada/sem_smem.ads ! 8878fa2167703037228618b68f986554 gcc/ada/sem_spark.adb 21d0d7b3347ef38a811200511a006c03 gcc/ada/sem_spark.ads cbb4ace58822e09cde57bfe26f2654d6 gcc/ada/sem_type.adb 7db89f9e5e9f6ad281619641e4c29d21 gcc/ada/sem_type.ads ! 166f45581edb69a5f2b91b4f8ec9f12b gcc/ada/sem_util.adb ! 50bc81b76c3210deb32967847cd5b7e6 gcc/ada/sem_util.ads abf0651cccb1a746bdf2e22bdeb506ba gcc/ada/sem_warn.adb 4a9f9d4da59001608e956c77a11b5fa3 gcc/ada/sem_warn.ads 60cec7e313c26824acef72ef58ecd7fb gcc/ada/set_targ.adb *************** c3dae1859d21f7c2f01b0f2510d20b64 gcc/ad *** 2577,2589 **** 289f9bd83af4724202e19c996d488139 gcc/ada/xutil.adb ee408c7af74a39cebe1a5a960b5398ad gcc/ada/xutil.ads ccc8a6c89c70316fbf743387ad7e88b1 gcc/addresses.h ! 8853e2cddaaf5369714a2a3151746fd4 gcc/alias.c d87be372e6413268b6df997b6fbbecd9 gcc/alias.h 43077afd2c2c7b5548033af6eff2ef37 gcc/alloc-pool.c c3d6da057bb08042c82e74bfe2691f41 gcc/alloc-pool.h cd831836371e584656dbb4ac46b2096f gcc/asan.c 59d0130b614af26cafcfa232abb98570 gcc/asan.h ! 1f252fe00caeea36cd235ce3b5109642 gcc/attribs.c 6ec93b9c82f4f7c005de1809013859b5 gcc/attribs.h 55ff3d7e690bdd078013434e72d9e5d9 gcc/auto-inc-dec.c 32c5a204e510e5e4d08ae1d4e9920cc8 gcc/auto-profile.c --- 2580,2592 ---- 289f9bd83af4724202e19c996d488139 gcc/ada/xutil.adb ee408c7af74a39cebe1a5a960b5398ad gcc/ada/xutil.ads ccc8a6c89c70316fbf743387ad7e88b1 gcc/addresses.h ! e34bc1cb17e618db56b92da3daa4ef6c gcc/alias.c d87be372e6413268b6df997b6fbbecd9 gcc/alias.h 43077afd2c2c7b5548033af6eff2ef37 gcc/alloc-pool.c c3d6da057bb08042c82e74bfe2691f41 gcc/alloc-pool.h cd831836371e584656dbb4ac46b2096f gcc/asan.c 59d0130b614af26cafcfa232abb98570 gcc/asan.h ! 45a046ee4b1ebb68348028293a952546 gcc/attribs.c 6ec93b9c82f4f7c005de1809013859b5 gcc/attribs.h 55ff3d7e690bdd078013434e72d9e5d9 gcc/auto-inc-dec.c 32c5a204e510e5e4d08ae1d4e9920cc8 gcc/auto-profile.c *************** cf5cc84d6c8708c6b98fc5347eeaf9f5 gcc/ba *** 2595,2601 **** 3e2d1891aaf9c07b6f94d69355650960 gcc/bitmap.c 0fc68a130796238f7c1d2cbf5c87d1e5 gcc/bitmap.h d434ffd5b0b9fcb3f672655d68c932e9 gcc/brig-builtins.def ! 86fd9800f208005baab0def55fadfe49 gcc/brig/ChangeLog d5124f715728b25bb9e7a6336ea748a3 gcc/brig/Make-lang.in e9fc01abc2e20427439c8df6e6da27fa gcc/brig/brig-builtins.h fa6cff5049ae5807635cc0da6db14c7f gcc/brig/brig-c.h --- 2598,2604 ---- 3e2d1891aaf9c07b6f94d69355650960 gcc/bitmap.c 0fc68a130796238f7c1d2cbf5c87d1e5 gcc/bitmap.h d434ffd5b0b9fcb3f672655d68c932e9 gcc/brig-builtins.def ! 599c0f5252bf42d62164dd486ee4f60b gcc/brig/ChangeLog d5124f715728b25bb9e7a6336ea748a3 gcc/brig/Make-lang.in e9fc01abc2e20427439c8df6e6da27fa gcc/brig/brig-builtins.h fa6cff5049ae5807635cc0da6db14c7f gcc/brig/brig-c.h *************** c0e66ae3f84286dbfd11fb1be986c7c7 gcc/br *** 2639,2653 **** 8d7d6d76f9bfaf43c295c94555cc3164 gcc/bt-load.c 03a22772afa5699b769bede62b7b174e gcc/builtin-attrs.def 15372509e52613bd16188d9dd1ca63e3 gcc/builtin-types.def ! ef7b23b2cbcd738fd11b28c42c741403 gcc/builtins.c 2a1b8021943e4daa431587f1471de494 gcc/builtins.def 9bcb391dae5002d8996cf5045dd11878 gcc/builtins.h ! f6ff5fea9c7357a8ccd886ec4b07c7e1 gcc/c-family/ChangeLog ea3fa1f4d7390a105fa3caab4f79aaf7 gcc/c-family/ChangeLog.gimple-classes ! 147581098ea752b9a8dc4652287a7584 gcc/c-family/c-ada-spec.c b33c816f5ee940653cb0b68d462eef83 gcc/c-family/c-ada-spec.h ! 76dae446b694da096d31b83185aaf6d2 gcc/c-family/c-attribs.c ! 057772add5c3c601a208a190464263be gcc/c-family/c-common.c 40eb08cd95b3fc27115b899947f61b13 gcc/c-family/c-common.def 5602734cc869c128c91d63297300a0ea gcc/c-family/c-common.h 986a325cd08532eb239af23ca67001f6 gcc/c-family/c-cppbuiltin.c --- 2642,2656 ---- 8d7d6d76f9bfaf43c295c94555cc3164 gcc/bt-load.c 03a22772afa5699b769bede62b7b174e gcc/builtin-attrs.def 15372509e52613bd16188d9dd1ca63e3 gcc/builtin-types.def ! e0d46084bb404aa170f800e4deb82c0b gcc/builtins.c 2a1b8021943e4daa431587f1471de494 gcc/builtins.def 9bcb391dae5002d8996cf5045dd11878 gcc/builtins.h ! a0f8bd090abe7d5610330dc625348a5c gcc/c-family/ChangeLog ea3fa1f4d7390a105fa3caab4f79aaf7 gcc/c-family/ChangeLog.gimple-classes ! d861c0e21c6f71c8cc98d0d1be4fc0a7 gcc/c-family/c-ada-spec.c b33c816f5ee940653cb0b68d462eef83 gcc/c-family/c-ada-spec.h ! 19674917d475ebc29e21ad8ee967b1be gcc/c-family/c-attribs.c ! 39c76dd719ddd4d53dc7dd8fa0b54870 gcc/c-family/c-common.c 40eb08cd95b3fc27115b899947f61b13 gcc/c-family/c-common.def 5602734cc869c128c91d63297300a0ea gcc/c-family/c-common.h 986a325cd08532eb239af23ca67001f6 gcc/c-family/c-cppbuiltin.c *************** a78c125312fd1a0a646b4fff13ec0eb3 gcc/c- *** 2657,2665 **** f51dc5f31e37316a12af131fb404419a gcc/c-family/c-gimplify.c 32af1d89296e1700ec42ec18f59ab5fe gcc/c-family/c-indentation.c 03e17dd1c0a412af6173d0a7d8dd9e89 gcc/c-family/c-indentation.h ! b3fca1704741e75e8d979f3836e1cda7 gcc/c-family/c-lex.c 1c1ec9bdcfa8a2968d6e3112bada0d1c gcc/c-family/c-objc.h ! 4e300256ecbadc1e55bddb5eab72d0d9 gcc/c-family/c-omp.c 05691df05e271e35c46a11915d7e7dde gcc/c-family/c-opts.c 7bdc8173b6e53053a7f661920d64550a gcc/c-family/c-pch.c e43080a556d7887ec3dc20e1d2c6f1ef gcc/c-family/c-ppoutput.c --- 2660,2668 ---- f51dc5f31e37316a12af131fb404419a gcc/c-family/c-gimplify.c 32af1d89296e1700ec42ec18f59ab5fe gcc/c-family/c-indentation.c 03e17dd1c0a412af6173d0a7d8dd9e89 gcc/c-family/c-indentation.h ! d5f7f1567aa313eb4d2705bc9db51613 gcc/c-family/c-lex.c 1c1ec9bdcfa8a2968d6e3112bada0d1c gcc/c-family/c-objc.h ! 2deef7d2c16da9a12033ceefbc0d9c7a gcc/c-family/c-omp.c 05691df05e271e35c46a11915d7e7dde gcc/c-family/c-opts.c 7bdc8173b6e53053a7f661920d64550a gcc/c-family/c-pch.c e43080a556d7887ec3dc20e1d2c6f1ef gcc/c-family/c-ppoutput.c *************** dd1bbbd86496f36b545e0da0cbf6ad06 gcc/c- *** 2682,2708 **** e5b1bb6f1ff65e7e00f9d027cd10f4c4 gcc/c-family/known-headers.h 79a7dfe635c1dd847d9ddea3eea8bea6 gcc/c-family/name-hint.h 6d2f8a9ee35c08c8901516bff5a43a2e gcc/c-family/stub-objc.c ! aa9767210cec9c127a6122d6a4f1bdf7 gcc/c/ChangeLog d1ceae32515e69250a6935d030517330 gcc/c/Make-lang.in e1f5e7fe13ac52360bb6f9e248f9d127 gcc/c/c-aux-info.c 5801f8debb74ecd55a547f0ee5ddec02 gcc/c/c-convert.c ! 8c6ffa9b11770f8dda58f07502db1227 gcc/c/c-decl.c 6a28a334a8d75e8f92fc278c54453d18 gcc/c/c-errors.c 38bdf384105f730adbafca3004419adc gcc/c/c-fold.c 6da033df357d25300bc215aced589b65 gcc/c/c-lang.c 3cd4cbec82f1e50b679d9f0071551fa4 gcc/c/c-lang.h 42fb711802a72f7bc3b2b3369131397f gcc/c/c-objc-common.c b3aff9ee2e2aac84ae2c2249ddd34789 gcc/c/c-objc-common.h ! 77414aea43e15a26bc4c1d74df315050 gcc/c/c-parser.c 824f36e75f8c378fe7ff07003330d845 gcc/c/c-parser.h ! cbca5f8afb1eeb5bc48a6b11f660e737 gcc/c/c-tree.h ! 2b910e99c060d4f490dec67512b1cd34 gcc/c/c-typeck.c 7a54ef0822f5aac7800544dc084125a5 gcc/c/config-lang.in beac53471d0c7d0ea03adbda52d55cc7 gcc/c/gccspec.c 4f1a884061f261846dbd7ddfb2af9cf1 gcc/c/gimple-parser.c 9e299596ee007475dac537a212f8a1ff gcc/c/gimple-parser.h 42ca269ba8c51f829c2d82b7f774d150 gcc/caller-save.c ! bcaba3cfd959c8d3e47052ad6ca29a01 gcc/calls.c 0dc3f2ca4f804ba8afb5fb67963b3a03 gcc/calls.h b3bcce62b541c99b6b0ec2edd16ff296 gcc/ccmp.c 1e02efcbe838558db1033ca2ef0f04ae gcc/ccmp.h --- 2685,2711 ---- e5b1bb6f1ff65e7e00f9d027cd10f4c4 gcc/c-family/known-headers.h 79a7dfe635c1dd847d9ddea3eea8bea6 gcc/c-family/name-hint.h 6d2f8a9ee35c08c8901516bff5a43a2e gcc/c-family/stub-objc.c ! 71705d21c4c61fe485759b98533c990e gcc/c/ChangeLog d1ceae32515e69250a6935d030517330 gcc/c/Make-lang.in e1f5e7fe13ac52360bb6f9e248f9d127 gcc/c/c-aux-info.c 5801f8debb74ecd55a547f0ee5ddec02 gcc/c/c-convert.c ! 124734dfa1d6782b4412075f5e843a4c gcc/c/c-decl.c 6a28a334a8d75e8f92fc278c54453d18 gcc/c/c-errors.c 38bdf384105f730adbafca3004419adc gcc/c/c-fold.c 6da033df357d25300bc215aced589b65 gcc/c/c-lang.c 3cd4cbec82f1e50b679d9f0071551fa4 gcc/c/c-lang.h 42fb711802a72f7bc3b2b3369131397f gcc/c/c-objc-common.c b3aff9ee2e2aac84ae2c2249ddd34789 gcc/c/c-objc-common.h ! 980088008b98095e2175427ddf3156d8 gcc/c/c-parser.c 824f36e75f8c378fe7ff07003330d845 gcc/c/c-parser.h ! f65d432228770018fd6fa25b5166923a gcc/c/c-tree.h ! d87300d17c20140ef438692d5a3394e6 gcc/c/c-typeck.c 7a54ef0822f5aac7800544dc084125a5 gcc/c/config-lang.in beac53471d0c7d0ea03adbda52d55cc7 gcc/c/gccspec.c 4f1a884061f261846dbd7ddfb2af9cf1 gcc/c/gimple-parser.c 9e299596ee007475dac537a212f8a1ff gcc/c/gimple-parser.h 42ca269ba8c51f829c2d82b7f774d150 gcc/caller-save.c ! d6570b27893491f25e70f9ca965d9a10 gcc/calls.c 0dc3f2ca4f804ba8afb5fb67963b3a03 gcc/calls.h b3bcce62b541c99b6b0ec2edd16ff296 gcc/ccmp.c 1e02efcbe838558db1033ca2ef0f04ae gcc/ccmp.h *************** b3bcce62b541c99b6b0ec2edd16ff296 gcc/cc *** 2713,2735 **** 8d8987ab58fe69913b12464570e9a42a gcc/cfganal.h 53dd3acf3b71350592b478b262fc3112 gcc/cfgbuild.c 616fd63db83602c971a38b93ad7b09d7 gcc/cfgbuild.h ! dc347ac2c641bbff34969b73ccfce8c5 gcc/cfgcleanup.c 81b37889d5c16bcb22fc34f33c0a0d68 gcc/cfgcleanup.h ! e479fa3424391d06c63ff51489c624fd gcc/cfgexpand.c 8458a678b3c43ee10a3cac7a01b3e1d3 gcc/cfgexpand.h ! ff7e45f1691ba973adbaf1616de70b99 gcc/cfghooks.c ! 995f6c5b7812276302a7635a7aefe152 gcc/cfghooks.h 369c423b9ec828081c4b1a121b7057c4 gcc/cfgloop.c ! b04e52386ccef8053e33a987bb18566c gcc/cfgloop.h 5d265ebd20f3ebb24c8aca790d9b73e7 gcc/cfgloopanal.c ! 5898d0e99b11ce056c4aee0308ad9b8c gcc/cfgloopmanip.c 1512a9003560020ff76f56e7b55e4c99 gcc/cfgloopmanip.h ! 277f4cdf2693f2cae308c5bd5eb593ca gcc/cfgrtl.c b0488edb95f2f9416f652f3e9198ee63 gcc/cfgrtl.h ! c4a3c26247ca27516f15c3b90ac04f65 gcc/cgraph.c ! 6d6cb0a0eabc707c56bca3c479abb212 gcc/cgraph.h 13da26ea1e52a364f3f300aeea228f31 gcc/cgraphbuild.c ! 49ed7b4847148610dff63404b9b2f245 gcc/cgraphclones.c c8c79ef92e815d34f76a39580dbdc0c6 gcc/cgraphunit.c 7f09e99e0c5f489619266c8ad7306fcd gcc/chkp-builtins.def 1ff9eb4acc4ab109b0f07e15d065a0a8 gcc/cif-code.def --- 2716,2738 ---- 8d8987ab58fe69913b12464570e9a42a gcc/cfganal.h 53dd3acf3b71350592b478b262fc3112 gcc/cfgbuild.c 616fd63db83602c971a38b93ad7b09d7 gcc/cfgbuild.h ! 1c98ce458905f7afa3eff892aed9a0db gcc/cfgcleanup.c 81b37889d5c16bcb22fc34f33c0a0d68 gcc/cfgcleanup.h ! dfca2b1edb372a330e76c880128c6a82 gcc/cfgexpand.c 8458a678b3c43ee10a3cac7a01b3e1d3 gcc/cfgexpand.h ! 876fdd710f956aa3e284afa968337da0 gcc/cfghooks.c ! d5681f6fe5c63d2916afecd896b88308 gcc/cfghooks.h 369c423b9ec828081c4b1a121b7057c4 gcc/cfgloop.c ! 344f881169147ff21b63e099c5a6e821 gcc/cfgloop.h 5d265ebd20f3ebb24c8aca790d9b73e7 gcc/cfgloopanal.c ! db15e2b200efa9ea5b1042b9bc575292 gcc/cfgloopmanip.c 1512a9003560020ff76f56e7b55e4c99 gcc/cfgloopmanip.h ! 07d9a34034f35219565866f5f74f22da gcc/cfgrtl.c b0488edb95f2f9416f652f3e9198ee63 gcc/cfgrtl.h ! a6a039f4b2c911d6039fcfdd34ba0be1 gcc/cgraph.c ! 748344b9adcebc55f7ce36a53b82c13f gcc/cgraph.h 13da26ea1e52a364f3f300aeea228f31 gcc/cgraphbuild.c ! 848ef02c0f0ce99faeff5cbee991503c gcc/cgraphclones.c c8c79ef92e815d34f76a39580dbdc0c6 gcc/cgraphunit.c 7f09e99e0c5f489619266c8ad7306fcd gcc/chkp-builtins.def 1ff9eb4acc4ab109b0f07e15d065a0a8 gcc/cif-code.def *************** ab69f866d1de3862080089a8bf154d3a gcc/co *** 2737,2747 **** b5774884834cfb021336f603b4cce3e6 gcc/collect-utils.h 254e5c4c2639dbe63559a601815e3158 gcc/collect2-aix.c 3bc1b6721859af7ec49445e97d91fc8d gcc/collect2-aix.h ! bbd1af6e3a993fdf5707d2ca8c797d88 gcc/collect2.c 171384e9891a99c6b5466ef0e270b9f7 gcc/collect2.h fd50d1c887135b80f3e968669d527eb7 gcc/color-macros.h 88536e4ce55a7a74e7c2ed05aef98fe7 gcc/combine-stack-adj.c ! a42efd2a7185c121ee09891165e2c846 gcc/combine.c 40809202743de319b1df2912dc2a38eb gcc/common.md 817d3ab8425f75d27b1d8e1042f0a586 gcc/common.opt 61e2129e35e61d795f8842966dcd1b87 gcc/common/common-target-def.h --- 2740,2750 ---- b5774884834cfb021336f603b4cce3e6 gcc/collect-utils.h 254e5c4c2639dbe63559a601815e3158 gcc/collect2-aix.c 3bc1b6721859af7ec49445e97d91fc8d gcc/collect2-aix.h ! 1d25813e9d3f2b5b1a4a90dbace4a364 gcc/collect2.c 171384e9891a99c6b5466ef0e270b9f7 gcc/collect2.h fd50d1c887135b80f3e968669d527eb7 gcc/color-macros.h 88536e4ce55a7a74e7c2ed05aef98fe7 gcc/combine-stack-adj.c ! 09ed7afa6761f4ee23d59fcfb5071b08 gcc/combine.c 40809202743de319b1df2912dc2a38eb gcc/common.md 817d3ab8425f75d27b1d8e1042f0a586 gcc/common.opt 61e2129e35e61d795f8842966dcd1b87 gcc/common/common-target-def.h *************** a42efd2a7185c121ee09891165e2c846 gcc/co *** 2749,2755 **** b616a6f6a8f3737014ff0a3455a00a36 gcc/common/common-target.h b8d83d8dcc1f442950f472eb350b9dde gcc/common/common-targhooks.c 5967c243c19a77cd76c1c4f327579130 gcc/common/common-targhooks.h ! e717913475f04542862cdfbb2515187d gcc/common/config/aarch64/aarch64-common.c fe4095b9869f3711a3b1b375f4246cab gcc/common/config/alpha/alpha-common.c 7aea4f39daf8cdd777ce8ac31173a70f gcc/common/config/arc/arc-common.c fd1ca8a352ecd787c6facfaf51237b5a gcc/common/config/arm/arm-common.c --- 2752,2758 ---- b616a6f6a8f3737014ff0a3455a00a36 gcc/common/common-target.h b8d83d8dcc1f442950f472eb350b9dde gcc/common/common-targhooks.c 5967c243c19a77cd76c1c4f327579130 gcc/common/common-targhooks.h ! 84b679d28866383ab8f9b2e110ab1063 gcc/common/config/aarch64/aarch64-common.c fe4095b9869f3711a3b1b375f4246cab gcc/common/config/alpha/alpha-common.c 7aea4f39daf8cdd777ce8ac31173a70f gcc/common/config/arc/arc-common.c fd1ca8a352ecd787c6facfaf51237b5a gcc/common/config/arm/arm-common.c *************** d5a4e89d0de230a05c92a31991a8c98d gcc/co *** 2798,2811 **** 2e45b1421aca10361d488ef0bb6bf8cc gcc/compare-elim.c fbfc5111d02e0a6cc644a2810b62a99f gcc/conditions.h 00815cec4a75bce05124c9658560119c gcc/config.build ! 7750f2dc9a3e34f2674afe7019af21af gcc/config.gcc 8bed6e3e2c0a7b75810c4e8d8b05d3fd gcc/config.host f32000a92132a8f7af2a7b087e7b0a16 gcc/config.in 8e697813dc96ca90f5d0f4c196efe2cc gcc/config/README 14f6549de29c5c79a27aa255075f5dbf gcc/config/aarch64/aarch64-arches.def 143289c4e32b49113e80d6e0bb2b7019 gcc/config/aarch64/aarch64-builtins.c ! e63d2ba5218ee62518fe9b93518cce41 gcc/config/aarch64/aarch64-c.c ! f7a8865576385a8f5c9f578b92b96716 gcc/config/aarch64/aarch64-cores.def 29958c7b76c2964568d13ec211beb90e gcc/config/aarch64/aarch64-cost-tables.h 174f20ea3dd373eada9c28d735443d6d gcc/config/aarch64/aarch64-elf-raw.h 5236c224bc0df3af3cbb09caf75e7e17 gcc/config/aarch64/aarch64-elf.h --- 2801,2814 ---- 2e45b1421aca10361d488ef0bb6bf8cc gcc/compare-elim.c fbfc5111d02e0a6cc644a2810b62a99f gcc/conditions.h 00815cec4a75bce05124c9658560119c gcc/config.build ! 5aec3370ff8108fd8578a47717e397ba gcc/config.gcc 8bed6e3e2c0a7b75810c4e8d8b05d3fd gcc/config.host f32000a92132a8f7af2a7b087e7b0a16 gcc/config.in 8e697813dc96ca90f5d0f4c196efe2cc gcc/config/README 14f6549de29c5c79a27aa255075f5dbf gcc/config/aarch64/aarch64-arches.def 143289c4e32b49113e80d6e0bb2b7019 gcc/config/aarch64/aarch64-builtins.c ! 79d860615fb32a06e54730bf9a770953 gcc/config/aarch64/aarch64-c.c ! c5c278ad67137b726fcd4b0deca045f9 gcc/config/aarch64/aarch64-cores.def 29958c7b76c2964568d13ec211beb90e gcc/config/aarch64/aarch64-cost-tables.h 174f20ea3dd373eada9c28d735443d6d gcc/config/aarch64/aarch64-elf-raw.h 5236c224bc0df3af3cbb09caf75e7e17 gcc/config/aarch64/aarch64-elf.h *************** cf3b14279409694f8613348a3be70c78 gcc/co *** 2814,2820 **** fb01001116b72130a60f94ba02fa3d4d gcc/config/aarch64/aarch64-ldpstp.md 8a331b7d1c3e1de0393d1d2085bbccd5 gcc/config/aarch64/aarch64-linux.h 61fb789a696699d679ce64b7ddde416a gcc/config/aarch64/aarch64-modes.def ! 4aa0b756bdc3191c1c6d4df20aa45394 gcc/config/aarch64/aarch64-option-extensions.def 60133697bf62ad16676eb0334c1fe2ae gcc/config/aarch64/aarch64-opts.h 3b0d0f78993d2ed66cf6fa6a1673ccf3 gcc/config/aarch64/aarch64-passes.def 45ea6b62cb1cbac24ce349e5fb24b0f6 gcc/config/aarch64/aarch64-protos.h --- 2817,2823 ---- fb01001116b72130a60f94ba02fa3d4d gcc/config/aarch64/aarch64-ldpstp.md 8a331b7d1c3e1de0393d1d2085bbccd5 gcc/config/aarch64/aarch64-linux.h 61fb789a696699d679ce64b7ddde416a gcc/config/aarch64/aarch64-modes.def ! a1114763555cfe7afebff4b8aae6dd7a gcc/config/aarch64/aarch64-option-extensions.def 60133697bf62ad16676eb0334c1fe2ae gcc/config/aarch64/aarch64-opts.h 3b0d0f78993d2ed66cf6fa6a1673ccf3 gcc/config/aarch64/aarch64-passes.def 45ea6b62cb1cbac24ce349e5fb24b0f6 gcc/config/aarch64/aarch64-protos.h *************** cedc4b0bdc01c8aeb01ef6c9841d7d2c gcc/co *** 2822,2846 **** 9559baeeca4962c3477cc96e9e3a728e gcc/config/aarch64/aarch64-simd-builtins.def c3e4296f82ba8c62eb5c8a53bf67db53 gcc/config/aarch64/aarch64-simd.md 9d065c8e8d282f60bfd9123e10459729 gcc/config/aarch64/aarch64-sve.md ! 250bb83c199ee2685847641cc9ccc166 gcc/config/aarch64/aarch64-tune.md 0ad444cd45c64bed6960af6fb54f127a gcc/config/aarch64/aarch64-tuning-flags.def ! 898e83e08ce49ada13b6a5a85a5e1744 gcc/config/aarch64/aarch64.c 915d4b38b8a1691c5937c591aa7f5cc3 gcc/config/aarch64/aarch64.h ! 88d6bd30ba9f2efa104db396966882e2 gcc/config/aarch64/aarch64.md 9d058125f171acf3cb6b04cd49d94788 gcc/config/aarch64/aarch64.opt 52218ac875d05428dd85f4c73747afe9 gcc/config/aarch64/arm_acle.h 7ffaae1ad0bb75dd0041b0214c8f92c6 gcc/config/aarch64/arm_fp16.h 62f858492d558aaec72bba031a211e9f gcc/config/aarch64/arm_neon.h ! 51e69bbea20585d35d87898d99edfb10 gcc/config/aarch64/atomics.md 538ad119d3978762bbee8f6bf1a743de gcc/config/aarch64/biarchilp32.h b2b35f0c3bd669e9d87cb7fd18350eb4 gcc/config/aarch64/biarchlp64.h f47deb78fbf9608bac82becd21ae6f95 gcc/config/aarch64/constraints.md e3c9dd3caa2493bc9c7367fa97d75eb4 gcc/config/aarch64/cortex-a57-fma-steering.c ! 2d0dd82dd70fcae4332325735f79d573 gcc/config/aarch64/driver-aarch64.c e1c12f1d60b87b02fffc6bf6f30315ce gcc/config/aarch64/falkor.md a3ae0821ff69ebbfc3bfd2453aae4532 gcc/config/aarch64/geniterators.sh 45bab55b2dc9947f3fe8f8214897d5ad gcc/config/aarch64/gentune.sh ! 68be3dd1a5252e4f46b81bf08c126cf5 gcc/config/aarch64/iterators.md 9f0eefcb8488434bac00d3ac8803e79a gcc/config/aarch64/predicates.md e461310d614c1d7e19a3c21dbaa72def gcc/config/aarch64/rtems.h 5e166d8b922621d3d2d62126930b8afc gcc/config/aarch64/t-aarch64 --- 2825,2849 ---- 9559baeeca4962c3477cc96e9e3a728e gcc/config/aarch64/aarch64-simd-builtins.def c3e4296f82ba8c62eb5c8a53bf67db53 gcc/config/aarch64/aarch64-simd.md 9d065c8e8d282f60bfd9123e10459729 gcc/config/aarch64/aarch64-sve.md ! 39dd3f77c47644106b21075ad87d9555 gcc/config/aarch64/aarch64-tune.md 0ad444cd45c64bed6960af6fb54f127a gcc/config/aarch64/aarch64-tuning-flags.def ! 64aeec689c3dee3e5985c8e87dc9ae98 gcc/config/aarch64/aarch64.c 915d4b38b8a1691c5937c591aa7f5cc3 gcc/config/aarch64/aarch64.h ! fe126ff97687b5347763fd410b079aa2 gcc/config/aarch64/aarch64.md 9d058125f171acf3cb6b04cd49d94788 gcc/config/aarch64/aarch64.opt 52218ac875d05428dd85f4c73747afe9 gcc/config/aarch64/arm_acle.h 7ffaae1ad0bb75dd0041b0214c8f92c6 gcc/config/aarch64/arm_fp16.h 62f858492d558aaec72bba031a211e9f gcc/config/aarch64/arm_neon.h ! 7065f093af215693d004ac7eafc9c924 gcc/config/aarch64/atomics.md 538ad119d3978762bbee8f6bf1a743de gcc/config/aarch64/biarchilp32.h b2b35f0c3bd669e9d87cb7fd18350eb4 gcc/config/aarch64/biarchlp64.h f47deb78fbf9608bac82becd21ae6f95 gcc/config/aarch64/constraints.md e3c9dd3caa2493bc9c7367fa97d75eb4 gcc/config/aarch64/cortex-a57-fma-steering.c ! a2ba8776fe2c6bee80808a91b890741d gcc/config/aarch64/driver-aarch64.c e1c12f1d60b87b02fffc6bf6f30315ce gcc/config/aarch64/falkor.md a3ae0821ff69ebbfc3bfd2453aae4532 gcc/config/aarch64/geniterators.sh 45bab55b2dc9947f3fe8f8214897d5ad gcc/config/aarch64/gentune.sh ! 4193c7e1970775b93e2660a1321dd898 gcc/config/aarch64/iterators.md 9f0eefcb8488434bac00d3ac8803e79a gcc/config/aarch64/predicates.md e461310d614c1d7e19a3c21dbaa72def gcc/config/aarch64/rtems.h 5e166d8b922621d3d2d62126930b8afc gcc/config/aarch64/t-aarch64 *************** e0c8643013b4df655b43cb06031dfdb4 gcc/co *** 2852,2859 **** 6c526972dd15e95f81a61aaa7188fc45 gcc/config/alpha/alpha-modes.def 8db8da471eccbfd9935f0938a9152e46 gcc/config/alpha/alpha-passes.def 33520ef4cf023103bc34deb03b6384de gcc/config/alpha/alpha-protos.h ! 3a215ee5a2224ce2858ce5fff46d9f21 gcc/config/alpha/alpha.c ! 0e97f0bafe0a326fcf5566323fd0faa8 gcc/config/alpha/alpha.h e156d49ac0196170f95915709c18fc27 gcc/config/alpha/alpha.md 8a683a5789f890567bd34d9909c8a616 gcc/config/alpha/alpha.opt d9f1ab5f2e20f0fdb971e6b835ef5119 gcc/config/alpha/constraints.md --- 2855,2862 ---- 6c526972dd15e95f81a61aaa7188fc45 gcc/config/alpha/alpha-modes.def 8db8da471eccbfd9935f0938a9152e46 gcc/config/alpha/alpha-passes.def 33520ef4cf023103bc34deb03b6384de gcc/config/alpha/alpha-protos.h ! 1db0cdb45b9c753e054d56889b9a2923 gcc/config/alpha/alpha.c ! 2d13ed6d19192d134212c9449d2e32e2 gcc/config/alpha/alpha.h e156d49ac0196170f95915709c18fc27 gcc/config/alpha/alpha.md 8a683a5789f890567bd34d9909c8a616 gcc/config/alpha/alpha.opt d9f1ab5f2e20f0fdb971e6b835ef5119 gcc/config/alpha/constraints.md *************** e4f3a77e7cfd4f59c2bc29511a55eeba gcc/co *** 2927,2941 **** 76635bca9b02cbd4848e4de564c70524 gcc/config/arm/arm-simd-builtin-types.def 3f5e3c37f748717e24ad4994e5020bde gcc/config/arm/arm-tables.opt 14dcd4986fb7d9cc87718686d40e3256 gcc/config/arm/arm-tune.md ! 5dab3f0181f6086fdd9ec1dfbc983c91 gcc/config/arm/arm.c ! fc82d7450ab7fdd2f43d8d9d910168ad gcc/config/arm/arm.h ! e74102224656633c0c6c2a80d65e1856 gcc/config/arm/arm.md 4b6807c98827e06bdc055b281bfcbfaa gcc/config/arm/arm.opt afe78ae658ff4942c2605b0f557d67e4 gcc/config/arm/arm1020e.md 7ae508721eef81f7ecdc77c6149d1277 gcc/config/arm/arm1026ejs.md 2f3f1706468be20a230fb9e63695ac4f gcc/config/arm/arm1136jfs.md e1b7260aa6f7705db298a50ff015f3c5 gcc/config/arm/arm926ejs.md ! 882f0f0ee9eca602bf8d89ac4291f422 gcc/config/arm/arm_acle.h 69ba0680bd9a4364320cd5cbee68d755 gcc/config/arm/arm_acle_builtins.def 789b08a1c5a04d3856a77eba71dc38a0 gcc/config/arm/arm_cmse.h 614c8f14707a08f9d2819021921882f1 gcc/config/arm/arm_fp16.h --- 2930,2944 ---- 76635bca9b02cbd4848e4de564c70524 gcc/config/arm/arm-simd-builtin-types.def 3f5e3c37f748717e24ad4994e5020bde gcc/config/arm/arm-tables.opt 14dcd4986fb7d9cc87718686d40e3256 gcc/config/arm/arm-tune.md ! 913a0d2f7162dbca634e85b48bf68f23 gcc/config/arm/arm.c ! 3c857d03b1cde15dc3f07bdbab2b22ab gcc/config/arm/arm.h ! 1be906b62000b763cc37f99325f25bbc gcc/config/arm/arm.md 4b6807c98827e06bdc055b281bfcbfaa gcc/config/arm/arm.opt afe78ae658ff4942c2605b0f557d67e4 gcc/config/arm/arm1020e.md 7ae508721eef81f7ecdc77c6149d1277 gcc/config/arm/arm1026ejs.md 2f3f1706468be20a230fb9e63695ac4f gcc/config/arm/arm1136jfs.md e1b7260aa6f7705db298a50ff015f3c5 gcc/config/arm/arm926ejs.md ! b38fb2c4d9bea438cefc525d32e9a29d gcc/config/arm/arm_acle.h 69ba0680bd9a4364320cd5cbee68d755 gcc/config/arm/arm_acle_builtins.def 789b08a1c5a04d3856a77eba71dc38a0 gcc/config/arm/arm_cmse.h 614c8f14707a08f9d2819021921882f1 gcc/config/arm/arm_fp16.h *************** e1b7260aa6f7705db298a50ff015f3c5 gcc/co *** 2943,2949 **** a18d8b003ebe0bf3c79b58e965ee8a15 gcc/config/arm/arm_neon_builtins.def 85b0e6bf02c30940b4e46621351f1e6a gcc/config/arm/arm_vfp_builtins.def 8a36a9a593f44a992294173004f00bf4 gcc/config/arm/bpabi.h ! 0daa8f3b0e1eba2794bdac0e6ac0cd3a gcc/config/arm/constraints.md 2a1cbdea73f86f95a8213df3f5f461de gcc/config/arm/cortex-a15-neon.md c2e46ffc490899b8f8132e6d79fb7b39 gcc/config/arm/cortex-a15.md 026ab48825201a31822ef51c6602b8e7 gcc/config/arm/cortex-a17-neon.md --- 2946,2952 ---- a18d8b003ebe0bf3c79b58e965ee8a15 gcc/config/arm/arm_neon_builtins.def 85b0e6bf02c30940b4e46621351f1e6a gcc/config/arm/arm_vfp_builtins.def 8a36a9a593f44a992294173004f00bf4 gcc/config/arm/bpabi.h ! b3dc6a2650687ae63acf2f50a77d4fda gcc/config/arm/constraints.md 2a1cbdea73f86f95a8213df3f5f461de gcc/config/arm/cortex-a15-neon.md c2e46ffc490899b8f8132e6d79fb7b39 gcc/config/arm/cortex-a15.md 026ab48825201a31822ef51c6602b8e7 gcc/config/arm/cortex-a17-neon.md *************** d2ac1b4218d0d55db510891267c2c14d gcc/co *** 2984,2990 **** 192846730ddf7042b30b71e5029093d5 gcc/config/arm/marvell-f-iwmmxt.md db7a4c97570d7fa5ca6b6e8b26c37ed9 gcc/config/arm/marvell-pj4.md 03035888f43cedef25723a3f7a06023b gcc/config/arm/mmintrin.h ! 34adceeaebe5bbfa91190c92dd279449 gcc/config/arm/neon.md 30acc3bfdec5d353ce2a0daf96f427db gcc/config/arm/netbsd-elf.h 79c90d9508539d347d88183a27e048b4 gcc/config/arm/parsecpu.awk 1ab8597247341cc25bc4fbc22ddee4e5 gcc/config/arm/predicates.md --- 2987,2993 ---- 192846730ddf7042b30b71e5029093d5 gcc/config/arm/marvell-f-iwmmxt.md db7a4c97570d7fa5ca6b6e8b26c37ed9 gcc/config/arm/marvell-pj4.md 03035888f43cedef25723a3f7a06023b gcc/config/arm/mmintrin.h ! 6d70a8b5abcc3e44427f3cf45d0ce16d gcc/config/arm/neon.md 30acc3bfdec5d353ce2a0daf96f427db gcc/config/arm/netbsd-elf.h 79c90d9508539d347d88183a27e048b4 gcc/config/arm/parsecpu.awk 1ab8597247341cc25bc4fbc22ddee4e5 gcc/config/arm/predicates.md *************** e3950ec6bd159734835f8f8fb143efc6 gcc/co *** 3002,3008 **** 786f6616335780d3cff678ec73efe0e7 gcc/config/arm/t-multilib f4f2c51d925cf702d3c93f8dd6485fb1 gcc/config/arm/t-phoenix 7c616045b2ccfb95fa3ff3b1d330bbfc gcc/config/arm/t-rmprofile ! 97a51b616111594a4ecfb7b12d4757d9 gcc/config/arm/t-rtems 774ac8d84b670b5ac91aa324884f4223 gcc/config/arm/t-symbian 447f96fe8feb3c85ebc3c830e1fc2eb7 gcc/config/arm/t-vxworks 4b60295cc55f16e4cfdfce2bc88271d8 gcc/config/arm/thumb1.md --- 3005,3011 ---- 786f6616335780d3cff678ec73efe0e7 gcc/config/arm/t-multilib f4f2c51d925cf702d3c93f8dd6485fb1 gcc/config/arm/t-phoenix 7c616045b2ccfb95fa3ff3b1d330bbfc gcc/config/arm/t-rmprofile ! 6219db2eb3bceea962a45e9f1400f370 gcc/config/arm/t-rtems 774ac8d84b670b5ac91aa324884f4223 gcc/config/arm/t-symbian 447f96fe8feb3c85ebc3c830e1fc2eb7 gcc/config/arm/t-vxworks 4b60295cc55f16e4cfdfce2bc88271d8 gcc/config/arm/thumb1.md *************** f1552cfb276d6fafa6ec1e099453f559 gcc/co *** 3019,3046 **** cceeb61ac82458920e6ee47d642291fb gcc/config/arm/vxworks.opt a17a638dc98f3f18b0e13448c69e1e65 gcc/config/arm/x-arm 0214a4f048a9f9c98e29d44feec81b58 gcc/config/arm/xgene1.md ! 52a3e7ac93f38de1f45e559953ccb076 gcc/config/avr/avr-arch.h 82e2526dacaf7ecee31a536867115876 gcc/config/avr/avr-c.c ! 53eb668025e9f275b97ec0913279bfb5 gcc/config/avr/avr-devices.c a8f891a4ed13d01b288e3189d7158380 gcc/config/avr/avr-dimode.md e8f8ab1d6052482d392bf158ad13f54f gcc/config/avr/avr-fixed.md 9a3b299496f88e558bfb235a25e00957 gcc/config/avr/avr-log.c ! 5c64793fded4b3e321540f594b66bca0 gcc/config/avr/avr-mcus.def 2577cd5c96201deecdd584b55a89fe9d gcc/config/avr/avr-modes.def e3c604736a61df8e21d5acc2baf1a8a6 gcc/config/avr/avr-passes.def 2bc10c858cf40e0c09d4f5ba230c360e gcc/config/avr/avr-protos.h 60fbcc1c156ff6d87815e3dfb9e944c4 gcc/config/avr/avr-stdint.h ! 1cdd60c92f0191d3d5c1480e2f9243ca gcc/config/avr/avr.c 7c74e9264ceb208ac97aa8d519711d65 gcc/config/avr/avr.h 9a9539fd7208754c699c9fade26624db gcc/config/avr/avr.md ! 717736dc35a8a003246a394e430dbfee gcc/config/avr/avr.opt 8e727a6d8aecf20fe626ba560f501a6c gcc/config/avr/avrlibc.h b4ced6c7db3c36bf284c0d20d0232d0a gcc/config/avr/builtins.def 990866e2797f00152b8249f5e14df89b gcc/config/avr/constraints.md ! 0281b3baa435acaaa6bbe2c9cab2f23f gcc/config/avr/driver-avr.c 17d34e9142b588f6ed0fbb66d2effef9 gcc/config/avr/elf.h ! 4759d11aca88ca4dbd46bdfb9ca4fce5 gcc/config/avr/gen-avr-mmcu-specs.c ! 9da00015bf60872e47c4ebf44c57c151 gcc/config/avr/gen-avr-mmcu-texi.c e3e6aa5c6f6a497b8c8b4e2635471713 gcc/config/avr/genmultilib.awk b13b13f0a479f51bd1414a6ee802f49d gcc/config/avr/predicates.md b4111308eb62fb86aaa8e520d2ff397f gcc/config/avr/specs.h --- 3022,3049 ---- cceeb61ac82458920e6ee47d642291fb gcc/config/arm/vxworks.opt a17a638dc98f3f18b0e13448c69e1e65 gcc/config/arm/x-arm 0214a4f048a9f9c98e29d44feec81b58 gcc/config/arm/xgene1.md ! 39ee59220961c02e0bdd8f7aceeb3b8a gcc/config/avr/avr-arch.h 82e2526dacaf7ecee31a536867115876 gcc/config/avr/avr-c.c ! 5e8b589647c2122e1f604d55cb3ba872 gcc/config/avr/avr-devices.c a8f891a4ed13d01b288e3189d7158380 gcc/config/avr/avr-dimode.md e8f8ab1d6052482d392bf158ad13f54f gcc/config/avr/avr-fixed.md 9a3b299496f88e558bfb235a25e00957 gcc/config/avr/avr-log.c ! 29420965a2ae463ca8e81ce5598ce491 gcc/config/avr/avr-mcus.def 2577cd5c96201deecdd584b55a89fe9d gcc/config/avr/avr-modes.def e3c604736a61df8e21d5acc2baf1a8a6 gcc/config/avr/avr-passes.def 2bc10c858cf40e0c09d4f5ba230c360e gcc/config/avr/avr-protos.h 60fbcc1c156ff6d87815e3dfb9e944c4 gcc/config/avr/avr-stdint.h ! 86a39488f76347ee14129010e789984b gcc/config/avr/avr.c 7c74e9264ceb208ac97aa8d519711d65 gcc/config/avr/avr.h 9a9539fd7208754c699c9fade26624db gcc/config/avr/avr.md ! 4315cae00b7c7f18b50f293b5ed7de67 gcc/config/avr/avr.opt 8e727a6d8aecf20fe626ba560f501a6c gcc/config/avr/avrlibc.h b4ced6c7db3c36bf284c0d20d0232d0a gcc/config/avr/builtins.def 990866e2797f00152b8249f5e14df89b gcc/config/avr/constraints.md ! 53827f00ef6d5c148e1a8d08b4b41531 gcc/config/avr/driver-avr.c 17d34e9142b588f6ed0fbb66d2effef9 gcc/config/avr/elf.h ! 1e86f4d6ba7236fae4493cc2f5c9d782 gcc/config/avr/gen-avr-mmcu-specs.c ! 780d7080dd0f6228770d95f7dec73cff gcc/config/avr/gen-avr-mmcu-texi.c e3e6aa5c6f6a497b8c8b4e2635471713 gcc/config/avr/genmultilib.awk b13b13f0a479f51bd1414a6ee802f49d gcc/config/avr/predicates.md b4111308eb62fb86aaa8e520d2ff397f gcc/config/avr/specs.h *************** c0b587dd94eab122f75f86ded2771210 gcc/co *** 3114,3131 **** ac5a39c723254ca092ef409cb4a76b20 gcc/config/cris/t-cris 540f72cd9c3369cac8c6090158bd3454 gcc/config/cris/t-elfmulti 5657034355d2720466dad6b98f794a8f gcc/config/cris/t-linux ! e57403738d6206360237f487bda629e6 gcc/config/darwin-c.c ! d7a57a644431fc24e3ac8ba4a699352f gcc/config/darwin-driver.c 6917dc4379d905e365c33f0df44d948b gcc/config/darwin-f.c 830ae6aecd271b468c7c4f6060484c54 gcc/config/darwin-ppc-ldouble-patch.def ! 42ab3b6faaf7ca0beac47a6f387bcc7a gcc/config/darwin-protos.h 5ce3a62ccb092afbae3b17b6b8f4f156 gcc/config/darwin-sections.def ! a3394d47ff5823f7bc5a43a481a94b7a gcc/config/darwin.c ! 3ff412118adcf02f1392a213f7611446 gcc/config/darwin.h ! 7d8e26ef51b64708c1b6d74bb51a05d8 gcc/config/darwin.opt ! 251bc516b1b1a62f7a7b53cf7560991f gcc/config/darwin10.h 5412cfe6ac1da6d87f89bcc4e00a036c gcc/config/darwin12.h ! b3f5c7ab2128a2e63f6eec2e13ddb97b gcc/config/darwin9.h 259694c85979612db8ed70a4541ec78f gcc/config/dbx.h 8ff63e80b316c6bc99c62e1e2b81c144 gcc/config/dbxcoff.h 1f3bd29e7e9de13099a3658e64cc47a4 gcc/config/dbxelf.h --- 3117,3134 ---- ac5a39c723254ca092ef409cb4a76b20 gcc/config/cris/t-cris 540f72cd9c3369cac8c6090158bd3454 gcc/config/cris/t-elfmulti 5657034355d2720466dad6b98f794a8f gcc/config/cris/t-linux ! cc13845969cd870e9bbce7ef8bcaf129 gcc/config/darwin-c.c ! cc3cd106691ceb542c3dce2b3e80a4fa gcc/config/darwin-driver.c 6917dc4379d905e365c33f0df44d948b gcc/config/darwin-f.c 830ae6aecd271b468c7c4f6060484c54 gcc/config/darwin-ppc-ldouble-patch.def ! 623a3295ef96a80d974c763fabdcf120 gcc/config/darwin-protos.h 5ce3a62ccb092afbae3b17b6b8f4f156 gcc/config/darwin-sections.def ! ebf885bb59beb2fe62210d61fc539cb3 gcc/config/darwin.c ! 2955a8afae4bb18c0f29ef26973903bc gcc/config/darwin.h ! 8c3b0bd023d0007ae1aa40fd4a3856bc gcc/config/darwin.opt ! 9252ff255774c226e5cc9171a125fde6 gcc/config/darwin10.h 5412cfe6ac1da6d87f89bcc4e00a036c gcc/config/darwin12.h ! 10af34f495440bf5e7345886d7c6e72f gcc/config/darwin9.h 259694c85979612db8ed70a4541ec78f gcc/config/dbx.h 8ff63e80b316c6bc99c62e1e2b81c144 gcc/config/dbxcoff.h 1f3bd29e7e9de13099a3658e64cc47a4 gcc/config/dbxelf.h *************** a29577fda6a70af775e90d8e9632b3df gcc/co *** 3216,3225 **** f3be3ee5181359209c74ace46d5f05ea gcc/config/i386/athlon.md 255d08915845ffd0e0bac05bbcfb006c gcc/config/i386/atom.md 81cbc6b11b5b0b6f52e0a10aba993b2f gcc/config/i386/att.h ! f4693321823871c4dee7eec22f5fca28 gcc/config/i386/avx2intrin.h eb8ed620824417d2c7958d76c605b2c8 gcc/config/i386/avx5124fmapsintrin.h 442ba84d1964652112ceaeadd65fb1bb gcc/config/i386/avx5124vnniwintrin.h ! 4e740f3142e270682449859dd01916eb gcc/config/i386/avx512bitalgintrin.h 256d09298d57989540af3d7b3963c822 gcc/config/i386/avx512bwintrin.h bb5d8573766a03ad02abbecae8af2732 gcc/config/i386/avx512cdintrin.h 041a3b27ffb1d36cdb52ec57fd54991d gcc/config/i386/avx512dqintrin.h --- 3219,3228 ---- f3be3ee5181359209c74ace46d5f05ea gcc/config/i386/athlon.md 255d08915845ffd0e0bac05bbcfb006c gcc/config/i386/atom.md 81cbc6b11b5b0b6f52e0a10aba993b2f gcc/config/i386/att.h ! c9e64b0e0cd523ad74f5ce18e5971117 gcc/config/i386/avx2intrin.h eb8ed620824417d2c7958d76c605b2c8 gcc/config/i386/avx5124fmapsintrin.h 442ba84d1964652112ceaeadd65fb1bb gcc/config/i386/avx5124vnniwintrin.h ! 477063627c953ce1be0702fe902c9441 gcc/config/i386/avx512bitalgintrin.h 256d09298d57989540af3d7b3963c822 gcc/config/i386/avx512bwintrin.h bb5d8573766a03ad02abbecae8af2732 gcc/config/i386/avx512cdintrin.h 041a3b27ffb1d36cdb52ec57fd54991d gcc/config/i386/avx512dqintrin.h *************** c97115a50ffb5d77aeef3c807b6d5ead gcc/co *** 3228,3235 **** 75a8d02b8eed76602ffdc82633dafcd4 gcc/config/i386/avx512ifmaintrin.h 964a5aaff516c4c87140133b5afec6ed gcc/config/i386/avx512ifmavlintrin.h 3a98d3531f48bbd9684b74570a11cc83 gcc/config/i386/avx512pfintrin.h ! fe1ceddb654c20987eb59a3d5642907f gcc/config/i386/avx512vbmi2intrin.h ! 549d2bb7215eb5f0b95e240b79e07853 gcc/config/i386/avx512vbmi2vlintrin.h b6fb5740d167285152e08dfaf4b79cd9 gcc/config/i386/avx512vbmiintrin.h 2d89a8cbd411da65e4de3b06715acfd7 gcc/config/i386/avx512vbmivlintrin.h e2ff9f5fd5bcc32de0ec4a45814b9adb gcc/config/i386/avx512vlbwintrin.h --- 3231,3238 ---- 75a8d02b8eed76602ffdc82633dafcd4 gcc/config/i386/avx512ifmaintrin.h 964a5aaff516c4c87140133b5afec6ed gcc/config/i386/avx512ifmavlintrin.h 3a98d3531f48bbd9684b74570a11cc83 gcc/config/i386/avx512pfintrin.h ! 50a78adbe3ce03bb811b52359e157606 gcc/config/i386/avx512vbmi2intrin.h ! 4f01006f62f02d299d04ab948f03e612 gcc/config/i386/avx512vbmi2vlintrin.h b6fb5740d167285152e08dfaf4b79cd9 gcc/config/i386/avx512vbmiintrin.h 2d89a8cbd411da65e4de3b06715acfd7 gcc/config/i386/avx512vbmivlintrin.h e2ff9f5fd5bcc32de0ec4a45814b9adb gcc/config/i386/avx512vlbwintrin.h *************** b5b9bb00324fe7966ea0fa8f098f020b gcc/co *** 3237,3245 **** 7d06b0e3e34aa408c2dc5074b696b2a5 gcc/config/i386/avx512vlintrin.h 6d0970d382ca4120a4eb992cd8872544 gcc/config/i386/avx512vnniintrin.h 243143dca2ce0575bd58ee17b8906354 gcc/config/i386/avx512vnnivlintrin.h ! a9268adb7f0513e13971021eb302760c gcc/config/i386/avx512vpopcntdqintrin.h ! c4f33f51ef65ff15593c78cd9682301f gcc/config/i386/avx512vpopcntdqvlintrin.h ! 1fa9fcd7fdde602c4ef8ba7f48aa93de gcc/config/i386/avxintrin.h 0b92d1c8eaccd4fd3c7a3f5df2b6b40b gcc/config/i386/avxmath.h 9982bfd94cd89aa48752e8f8164c837c gcc/config/i386/bdver1.md 241362e4b90e08a688ddbdefce7267f3 gcc/config/i386/bdver3.md --- 3240,3248 ---- 7d06b0e3e34aa408c2dc5074b696b2a5 gcc/config/i386/avx512vlintrin.h 6d0970d382ca4120a4eb992cd8872544 gcc/config/i386/avx512vnniintrin.h 243143dca2ce0575bd58ee17b8906354 gcc/config/i386/avx512vnnivlintrin.h ! 65e354b7b4ef902c851aa1cb971d69bb gcc/config/i386/avx512vpopcntdqintrin.h ! 30cbb8759c9c005df65026d2efc665c0 gcc/config/i386/avx512vpopcntdqvlintrin.h ! 373e62255a289d5e4f368e2e1d4bae79 gcc/config/i386/avxintrin.h 0b92d1c8eaccd4fd3c7a3f5df2b6b40b gcc/config/i386/avxmath.h 9982bfd94cd89aa48752e8f8164c837c gcc/config/i386/bdver1.md 241362e4b90e08a688ddbdefce7267f3 gcc/config/i386/bdver3.md *************** b1d49e4485027cab9bbecc6f21a72cdb gcc/co *** 3258,3264 **** 85d0f7cd0abb5196ad436b4be8b5245e gcc/config/i386/clzerointrin.h 002a13f0bfc874d7e9da37289d56d87b gcc/config/i386/constraints.md b733b5cf79894c920d2ee1e128f8aca7 gcc/config/i386/core2.md ! 83264babd4a1ed63f6258823a1a33ab5 gcc/config/i386/cpuid.h 5b1bfee52590196c940b0e2013d0fb02 gcc/config/i386/cross-stdarg.h 375e6e8e8704949687afcc319a60226b gcc/config/i386/crtdll.h 99cb3a163cfefe58d375bce2d2691c60 gcc/config/i386/cygming.h --- 3261,3267 ---- 85d0f7cd0abb5196ad436b4be8b5245e gcc/config/i386/clzerointrin.h 002a13f0bfc874d7e9da37289d56d87b gcc/config/i386/constraints.md b733b5cf79894c920d2ee1e128f8aca7 gcc/config/i386/core2.md ! ced7747008105f3c6a53b149e6cdcbb1 gcc/config/i386/cpuid.h 5b1bfee52590196c940b0e2013d0fb02 gcc/config/i386/cross-stdarg.h 375e6e8e8704949687afcc319a60226b gcc/config/i386/crtdll.h 99cb3a163cfefe58d375bce2d2691c60 gcc/config/i386/cygming.h *************** ad8afcdfb159e221a13ae5b4ac0c90cc gcc/co *** 3267,3274 **** 267105275d60e8e2beb4c562cacd474c gcc/config/i386/cygwin-w64.h 60a98b6c5ea78ab3fe27bfc9e35b1d00 gcc/config/i386/cygwin.h 822dcd0ea36bc4391fcecfdcb8e8683f gcc/config/i386/cygwin.opt ! 7ea61551575d3f06dc80321264792177 gcc/config/i386/darwin.h ! 33bb82a955dc6baf3e4f0f13e18a0700 gcc/config/i386/darwin64.h 7539a1a18dad410589dc81def9e9eecc gcc/config/i386/djgpp-stdint.h 56c6541a0584b788a56fb0965d51aa43 gcc/config/i386/djgpp.c 9be46fdb60171a9ff6d818f0040370ac gcc/config/i386/djgpp.h --- 3270,3278 ---- 267105275d60e8e2beb4c562cacd474c gcc/config/i386/cygwin-w64.h 60a98b6c5ea78ab3fe27bfc9e35b1d00 gcc/config/i386/cygwin.h 822dcd0ea36bc4391fcecfdcb8e8683f gcc/config/i386/cygwin.opt ! aa9961e863b0f99552ff54013b312ee8 gcc/config/i386/darwin.h ! 8256997a20c204a0527b521ac183cfc2 gcc/config/i386/darwin32-biarch.h ! cf642b6e9bac4617209f4bf91245d902 gcc/config/i386/darwin64-biarch.h 7539a1a18dad410589dc81def9e9eecc gcc/config/i386/djgpp-stdint.h 56c6541a0584b788a56fb0965d51aa43 gcc/config/i386/djgpp.c 9be46fdb60171a9ff6d818f0040370ac gcc/config/i386/djgpp.h *************** ad8afcdfb159e221a13ae5b4ac0c90cc gcc/co *** 3276,3287 **** 618f3c3a515ea355387b5126cc7479a6 gcc/config/i386/dragonfly.h da49a228f6a114545dd359590600bb15 gcc/config/i386/driver-i386.c f43004343ae4ffae7df4b8b541465c6d gcc/config/i386/driver-mingw32.c ! 9bede3822b10a0d6c086fb9f9808e4ee gcc/config/i386/emmintrin.h 2856a76a7205b8395b39096c05adb056 gcc/config/i386/f16cintrin.h 269d5c806a761a10898d44ffd5f608d8 gcc/config/i386/fma4intrin.h 261de8a6de123a87e0a9f6a3de8f57e5 gcc/config/i386/fmaintrin.h cf25ae8b13672c4cf7cb2a92fbdb40ad gcc/config/i386/freebsd.h ! 295845c13e80cda19ed75abbaa80d24d gcc/config/i386/freebsd64.h cfbf44938d72b85fc77aeebd9f7fc612 gcc/config/i386/fxsrintrin.h 3412e498955cd03fdacbc5f4393af04a gcc/config/i386/gas.h d87f5906e5cee04c568119528636e1c2 gcc/config/i386/gcc-auto-profile --- 3280,3291 ---- 618f3c3a515ea355387b5126cc7479a6 gcc/config/i386/dragonfly.h da49a228f6a114545dd359590600bb15 gcc/config/i386/driver-i386.c f43004343ae4ffae7df4b8b541465c6d gcc/config/i386/driver-mingw32.c ! 997294be94003f2e6a4140ca2177adae gcc/config/i386/emmintrin.h 2856a76a7205b8395b39096c05adb056 gcc/config/i386/f16cintrin.h 269d5c806a761a10898d44ffd5f608d8 gcc/config/i386/fma4intrin.h 261de8a6de123a87e0a9f6a3de8f57e5 gcc/config/i386/fmaintrin.h cf25ae8b13672c4cf7cb2a92fbdb40ad gcc/config/i386/freebsd.h ! 2aa2c03968663bbf18c3c08fd1fdedea gcc/config/i386/freebsd64.h cfbf44938d72b85fc77aeebd9f7fc612 gcc/config/i386/fxsrintrin.h 3412e498955cd03fdacbc5f4393af04a gcc/config/i386/gas.h d87f5906e5cee04c568119528636e1c2 gcc/config/i386/gcc-auto-profile *************** fcc4e84abb760f447c59660d15cb4094 gcc/co *** 3298,3318 **** 1e836a821b3c47ed7a17d401c8fcfdc1 gcc/config/i386/host-mingw32.c 4c7303a05532c22c898cd100aff04da2 gcc/config/i386/i386-builtin-types.awk 2fd1e39abb43aba80fe53c72da353aca gcc/config/i386/i386-builtin-types.def ! 7e0150cd0e988dadc673469aaa75c33e gcc/config/i386/i386-builtin.def 28c1709c39edb6c6d98757be65d6714b gcc/config/i386/i386-c.c 69c87e6daa81bb738dbd8f554c77b592 gcc/config/i386/i386-modes.def 5bafb9d86cd0531b346e4639efc86356 gcc/config/i386/i386-opts.h 585a48de3fb8cf98c23ebac00c2238a5 gcc/config/i386/i386-passes.def e7f855ddccfb8128c224798748386a63 gcc/config/i386/i386-protos.h ! 686463c5a50eccae4a928fa2fb7a5949 gcc/config/i386/i386.c ! 95eac45da3449cebe3adad27aeead8c1 gcc/config/i386/i386.h ! 27c118c33ad57a1addeaf0b9453e2ef0 gcc/config/i386/i386.md fedeca0d943923d2b1e8a23dac70402e gcc/config/i386/i386.opt 64cf08bf31bf2f4dc57c5612fbf545cb gcc/config/i386/i386elf.h f750ed2033bbe36f306b115907b76b57 gcc/config/i386/ia32intrin.h 6782ac930a259e666c7152a4e32eb686 gcc/config/i386/iamcu.h eeab54f2bf97fae2a0af1cf9b037ccea gcc/config/i386/immintrin.h ! 164c868bea724e5992522a74f1a5f185 gcc/config/i386/intelmic-mkoffload.c 9bfe0e611910a8e53992edc7cfb23ce0 gcc/config/i386/intelmic-offload.h 0a2c437fc8d98c80b876dba7f26931e3 gcc/config/i386/k6.md 3cb0c3eae259b179d9a51eed273d041b gcc/config/i386/kfreebsd-gnu.h --- 3302,3322 ---- 1e836a821b3c47ed7a17d401c8fcfdc1 gcc/config/i386/host-mingw32.c 4c7303a05532c22c898cd100aff04da2 gcc/config/i386/i386-builtin-types.awk 2fd1e39abb43aba80fe53c72da353aca gcc/config/i386/i386-builtin-types.def ! 9809e984dd7c52e954ecf19678738807 gcc/config/i386/i386-builtin.def 28c1709c39edb6c6d98757be65d6714b gcc/config/i386/i386-c.c 69c87e6daa81bb738dbd8f554c77b592 gcc/config/i386/i386-modes.def 5bafb9d86cd0531b346e4639efc86356 gcc/config/i386/i386-opts.h 585a48de3fb8cf98c23ebac00c2238a5 gcc/config/i386/i386-passes.def e7f855ddccfb8128c224798748386a63 gcc/config/i386/i386-protos.h ! b98c5fcdaaa4e0c0587c6428958e6690 gcc/config/i386/i386.c ! 348053f6c259516b273ade1abe52fa60 gcc/config/i386/i386.h ! baa0d0b4969974f1548bba1f29e7fe58 gcc/config/i386/i386.md fedeca0d943923d2b1e8a23dac70402e gcc/config/i386/i386.opt 64cf08bf31bf2f4dc57c5612fbf545cb gcc/config/i386/i386elf.h f750ed2033bbe36f306b115907b76b57 gcc/config/i386/ia32intrin.h 6782ac930a259e666c7152a4e32eb686 gcc/config/i386/iamcu.h eeab54f2bf97fae2a0af1cf9b037ccea gcc/config/i386/immintrin.h ! aa4246261bf82d100c35d136fdf5ba29 gcc/config/i386/intelmic-mkoffload.c 9bfe0e611910a8e53992edc7cfb23ce0 gcc/config/i386/intelmic-offload.h 0a2c437fc8d98c80b876dba7f26931e3 gcc/config/i386/k6.md 3cb0c3eae259b179d9a51eed273d041b gcc/config/i386/kfreebsd-gnu.h *************** f86373165daed8a9aa27e68d587ec642 gcc/co *** 3332,3338 **** b6501938462cb4b80d19b3512b0f0235 gcc/config/i386/mingw32.h 6687f6843381ac40aa88f5e4387bf0f1 gcc/config/i386/mm3dnow.h c623eb248c8a9342e0ed39a96fb0c6e1 gcc/config/i386/mmintrin.h ! d0aeed93f731e458f74a8659e8f87432 gcc/config/i386/mmx.md 8f5ad56d4106f7cd5a44445baf71a0e6 gcc/config/i386/movdirintrin.h 6fc1236da27f836d925b4559deae34b1 gcc/config/i386/msformat-c.c c00c0f388b18bfc68c1367570ac21c13 gcc/config/i386/mwaitxintrin.h --- 3336,3342 ---- b6501938462cb4b80d19b3512b0f0235 gcc/config/i386/mingw32.h 6687f6843381ac40aa88f5e4387bf0f1 gcc/config/i386/mm3dnow.h c623eb248c8a9342e0ed39a96fb0c6e1 gcc/config/i386/mmintrin.h ! f1b1230b2ef9465290ef843bee07cae3 gcc/config/i386/mmx.md 8f5ad56d4106f7cd5a44445baf71a0e6 gcc/config/i386/movdirintrin.h 6fc1236da27f836d925b4559deae34b1 gcc/config/i386/msformat-c.c c00c0f388b18bfc68c1367570ac21c13 gcc/config/i386/mwaitxintrin.h *************** ef8890ab5009549b7f4a9d0a11c0b5e1 gcc/co *** 3361,3367 **** 1450602f2a26403ed2ddc18e73a0abcd gcc/config/i386/slm.md 428436d4157bf13d814afdcf184d8b7d gcc/config/i386/smmintrin.h 7583a092bb2058652012105a09af0d17 gcc/config/i386/sol2.h ! 844f87445d669b246c3c4f3a80bf4992 gcc/config/i386/sse.md fc3b94b276976b0fe533ac436414f6bc gcc/config/i386/ssemath.h ae961d16d446d661830906f88c08f196 gcc/config/i386/stringop.def 05a37b469e0de5f550131f2f43046252 gcc/config/i386/subst.md --- 3365,3371 ---- 1450602f2a26403ed2ddc18e73a0abcd gcc/config/i386/slm.md 428436d4157bf13d814afdcf184d8b7d gcc/config/i386/smmintrin.h 7583a092bb2058652012105a09af0d17 gcc/config/i386/sol2.h ! 0180c2e57434e533e0cc9225f535ea75 gcc/config/i386/sse.md fc3b94b276976b0fe533ac436414f6bc gcc/config/i386/ssemath.h ae961d16d446d661830906f88c08f196 gcc/config/i386/stringop.def 05a37b469e0de5f550131f2f43046252 gcc/config/i386/subst.md *************** ef660aa614157434780cef171fc42c55 gcc/co *** 3370,3378 **** 6efd2b81feecd9d4b75ddf5b9c142127 gcc/config/i386/t-cet 0876fe4a21d4ada33787b86aaa13145b gcc/config/i386/t-cygming d5339d6e5a09a02383903f617230e19e gcc/config/i386/t-cygwin-w64 ! 98d94861be252f8541038afee279417f gcc/config/i386/t-darwin ! 8f92133cb94c59e2939cd65dc5fc8cb4 gcc/config/i386/t-darwin64 4c5d6e2fe993d41a182cdd83904065d4 gcc/config/i386/t-djgpp 3a1c0dac7740fd9ef48c7bdf5f313c9d gcc/config/i386/t-gmm_malloc d5939c6bccbf8957206c63308ce628a6 gcc/config/i386/t-gnu cd837ed161f1e869c697ad12ac345674 gcc/config/i386/t-i386 --- 3374,3383 ---- 6efd2b81feecd9d4b75ddf5b9c142127 gcc/config/i386/t-cet 0876fe4a21d4ada33787b86aaa13145b gcc/config/i386/t-cygming d5339d6e5a09a02383903f617230e19e gcc/config/i386/t-cygwin-w64 ! 98d94861be252f8541038afee279417f gcc/config/i386/t-darwin32-biarch ! 8f92133cb94c59e2939cd65dc5fc8cb4 gcc/config/i386/t-darwin64-biarch 4c5d6e2fe993d41a182cdd83904065d4 gcc/config/i386/t-djgpp + 0e6cc16572f654fd2d63196a3ba3102f gcc/config/i386/t-freebsd64 3a1c0dac7740fd9ef48c7bdf5f313c9d gcc/config/i386/t-gmm_malloc d5939c6bccbf8957206c63308ce628a6 gcc/config/i386/t-gnu cd837ed161f1e869c697ad12ac345674 gcc/config/i386/t-i386 *************** d3970ea90839dc5e5f82de5e2464e84c gcc/co *** 3622,3630 **** 977c4f62ae50ceafb5866f0df04ecbd2 gcc/config/mips/mips-protos.h 4460cfa5c224c98a10dd966058b273c7 gcc/config/mips/mips-ps-3d.md 7eebc68d59fccfedc66378c88af82988 gcc/config/mips/mips-tables.opt ! 60908653841dc264d1b60e94ae90180c gcc/config/mips/mips.c f6570a77acd7612e32159fa659e0d834 gcc/config/mips/mips.h ! 459492919c9ce92760004ceef67ecd50 gcc/config/mips/mips.md 0bf4e4b4917fb943cc94b1fc1516793b gcc/config/mips/mips.opt 0b607da461fe0e2553f8961acfca2603 gcc/config/mips/msa.h 34601028461e6dc96f72bcdce4cc91df gcc/config/mips/mti-elf.h --- 3627,3635 ---- 977c4f62ae50ceafb5866f0df04ecbd2 gcc/config/mips/mips-protos.h 4460cfa5c224c98a10dd966058b273c7 gcc/config/mips/mips-ps-3d.md 7eebc68d59fccfedc66378c88af82988 gcc/config/mips/mips-tables.opt ! e84605dc5881b68137ae74cec2791099 gcc/config/mips/mips.c f6570a77acd7612e32159fa659e0d834 gcc/config/mips/mips.h ! 28d9d61e03007dabb58c4dc47d20566f gcc/config/mips/mips.md 0bf4e4b4917fb943cc94b1fc1516793b gcc/config/mips/mips.opt 0b607da461fe0e2553f8961acfca2603 gcc/config/mips/msa.h 34601028461e6dc96f72bcdce4cc91df gcc/config/mips/mti-elf.h *************** d835d08884a2846e70bef505767bd3f1 gcc/co *** 3773,3779 **** 9999e0f5e040c506a656b88182bfe128 gcc/config/nvptx/mkoffload.c c2aabf1e8738380511a66426506fe906 gcc/config/nvptx/nvptx-modes.def cf6afd6e66196a63cff72f8f4103f2e3 gcc/config/nvptx/nvptx-protos.h ! de3e2635aaa7a4d8f2d5b89f8518aa01 gcc/config/nvptx/nvptx.c 9c28d59833b8c66542a24c37928678a2 gcc/config/nvptx/nvptx.h ebc715cb9ed58ce18cd0925fd8cdc6f0 gcc/config/nvptx/nvptx.md 4c5703010962b9b7aa29775f7cdc7b8d gcc/config/nvptx/nvptx.opt --- 3778,3784 ---- 9999e0f5e040c506a656b88182bfe128 gcc/config/nvptx/mkoffload.c c2aabf1e8738380511a66426506fe906 gcc/config/nvptx/nvptx-modes.def cf6afd6e66196a63cff72f8f4103f2e3 gcc/config/nvptx/nvptx-protos.h ! 1f5a21e372bb3df15cec4e7d2e87efa8 gcc/config/nvptx/nvptx.c 9c28d59833b8c66542a24c37928678a2 gcc/config/nvptx/nvptx.h ebc715cb9ed58ce18cd0925fd8cdc6f0 gcc/config/nvptx/nvptx.md 4c5703010962b9b7aa29775f7cdc7b8d gcc/config/nvptx/nvptx.opt *************** b618c9b884f78ed041a9000a7e2848fa gcc/co *** 3797,3811 **** a7a18454ea8e20abea0987299b179374 gcc/config/pa/pa-hpux1111.opt 3d2ee56c35ff78d7dfcd41ba3cb89051 gcc/config/pa/pa-hpux1131.h 9b5dcd7f3770f0cb685743e52c1a5285 gcc/config/pa/pa-hpux1131.opt ! 1d8045dd7f587b60af4250805ca49fd0 gcc/config/pa/pa-linux.h 7792b9b6c6fb4714e27d72c171139650 gcc/config/pa/pa-modes.def 2f447d057c80970e98a0e5bff4156264 gcc/config/pa/pa-openbsd.h 878fe335d079c0655b69d2d053f2045b gcc/config/pa/pa-opts.h ! 425639b4b75ab27417ae117721b1e6b8 gcc/config/pa/pa-protos.h ! daca355056e6f539942bf6494cd4ce3d gcc/config/pa/pa.c ! b9eacf94e24894a35ee842f49fbf7b00 gcc/config/pa/pa.h ! 99cbf3733929333bb98ee0fa50661ff0 gcc/config/pa/pa.md ! 492d54774394fa0ab4ac0c026eaebaac gcc/config/pa/pa.opt 91f85ad55deb8b853e7564cae70f1fee gcc/config/pa/pa32-linux.h 3de55e8c03212e88b39a5c5049f268fc gcc/config/pa/pa32-openbsd.h c3efbff4395d6048661485fbd826a9cd gcc/config/pa/pa32-regs.h --- 3802,3816 ---- a7a18454ea8e20abea0987299b179374 gcc/config/pa/pa-hpux1111.opt 3d2ee56c35ff78d7dfcd41ba3cb89051 gcc/config/pa/pa-hpux1131.h 9b5dcd7f3770f0cb685743e52c1a5285 gcc/config/pa/pa-hpux1131.opt ! 6f056c57147d1c6a7cff1cd4d06b197e gcc/config/pa/pa-linux.h 7792b9b6c6fb4714e27d72c171139650 gcc/config/pa/pa-modes.def 2f447d057c80970e98a0e5bff4156264 gcc/config/pa/pa-openbsd.h 878fe335d079c0655b69d2d053f2045b gcc/config/pa/pa-opts.h ! 3d7caada5db69252e8eefe132dbe517f gcc/config/pa/pa-protos.h ! 6d2048f245508c751fd7f4d46bb0b949 gcc/config/pa/pa.c ! 4f2705cbe0e3a9e4df46cc3d5af01a7e gcc/config/pa/pa.h ! a150b0c5c17fd60a6603860f1eff3c74 gcc/config/pa/pa.md ! 4b04435840f4fbcdba5013e1bbea2d13 gcc/config/pa/pa.opt 91f85ad55deb8b853e7564cae70f1fee gcc/config/pa/pa32-linux.h 3de55e8c03212e88b39a5c5049f268fc gcc/config/pa/pa32-openbsd.h c3efbff4395d6048661485fbd826a9cd gcc/config/pa/pa32-regs.h *************** d68eeb6f936b9e4f7780448d8a3cf6e4 gcc/co *** 3814,3821 **** 0c22f63b1a5050b2893817db5a60880d gcc/config/pa/pa64-linux.h c6570b2163bffc07668c71eeab8950a5 gcc/config/pa/pa64-regs.h a9a6afd79b827565ffb8de8330b4cfe6 gcc/config/pa/pa64-start.h ! 0552d7b225011009ca6e4001f87be0bf gcc/config/pa/predicates.md ! 5129f15576b7cf477572623664be3f60 gcc/config/pa/som.h 4104beb84cb7f3a8a5915652c3da66c5 gcc/config/pa/t-dce-thr 6fd25f8c665d2d7390ea94c01dcb8e34 gcc/config/pa/t-linux 307714ce1ea688eab99afac964472807 gcc/config/pdp11/constraints.md --- 3819,3826 ---- 0c22f63b1a5050b2893817db5a60880d gcc/config/pa/pa64-linux.h c6570b2163bffc07668c71eeab8950a5 gcc/config/pa/pa64-regs.h a9a6afd79b827565ffb8de8330b4cfe6 gcc/config/pa/pa64-start.h ! 9454f22cfda51507025a45435729869f gcc/config/pa/predicates.md ! 7b9053b12b458885952c2741d3cc5629 gcc/config/pa/som.h 4104beb84cb7f3a8a5915652c3da66c5 gcc/config/pa/t-dce-thr 6fd25f8c665d2d7390ea94c01dcb8e34 gcc/config/pa/t-linux 307714ce1ea688eab99afac964472807 gcc/config/pdp11/constraints.md *************** cc71bd4920e54f5b2c8d0594399bfaac gcc/co *** 3990,3996 **** c1293b5c74cf0466a0c151f9669eaef1 gcc/config/riscv/riscv-modes.def c1d836d57d2c1d5b906302aaa5bf4b93 gcc/config/riscv/riscv-opts.h 54ec65225abe3f20c7c39b8e1a1ef18d gcc/config/riscv/riscv-protos.h ! 1fea9e30d4830f1b30fd8c21546520e4 gcc/config/riscv/riscv.c 919b02a0567628ccdfe1097e2116ba4a gcc/config/riscv/riscv.h 90318599fedfc7f7c8324f1e8f273b0b gcc/config/riscv/riscv.md ad6308b0af4d5ad16c571cd25bf22b4d gcc/config/riscv/riscv.opt --- 3995,4001 ---- c1293b5c74cf0466a0c151f9669eaef1 gcc/config/riscv/riscv-modes.def c1d836d57d2c1d5b906302aaa5bf4b93 gcc/config/riscv/riscv-opts.h 54ec65225abe3f20c7c39b8e1a1ef18d gcc/config/riscv/riscv-protos.h ! 92029cfe45059edce8930320f126dd60 gcc/config/riscv/riscv.c 919b02a0567628ccdfe1097e2116ba4a gcc/config/riscv/riscv.h 90318599fedfc7f7c8324f1e8f273b0b gcc/config/riscv/riscv.md ad6308b0af4d5ad16c571cd25bf22b4d gcc/config/riscv/riscv.opt *************** a740672e11194097b7079bc14f770029 gcc/co *** 4038,4056 **** dcae54b5112b4a35de3fee24152c08b6 gcc/config/rs6000/aix64.opt 6de3e4e157ade9ff0333b8e956d4539c gcc/config/rs6000/aix71.h 71e6a687bca5495bca460bdd25e28c7c gcc/config/rs6000/aix72.h ! 4d2fa3ecc3644ed539775b751a9b197c gcc/config/rs6000/altivec.h ! bb8c856c9d0ff6489125845e382b4fd4 gcc/config/rs6000/altivec.md 9f9485a0668e9f02dd1ddd921e8db540 gcc/config/rs6000/amo.h b5c0d31db75d05e19a5a74e12deee5c2 gcc/config/rs6000/biarch64.h d24bfc688852ea2817f920c09cc312e0 gcc/config/rs6000/bmi2intrin.h 33a5f4f7292b1bb3ad8f66a4e3773c7e gcc/config/rs6000/bmiintrin.h 7292692fc7483600be11240cb2a1c118 gcc/config/rs6000/cell.md 6bdc2b3f07ed0adb0d140b7f6ba6aece gcc/config/rs6000/constraints.md ! ff5233f615d6c5818780f20b908405f7 gcc/config/rs6000/crypto.md ! 1e94caf4a8b0bc5e9663c1eb878f15e3 gcc/config/rs6000/darwin.h ! 3f74f48326d9253c04d38910eb754fcb gcc/config/rs6000/darwin.md 4ca90b03f871f9f94d714b3f7de5c299 gcc/config/rs6000/darwin.opt ! 02cde662e31624a94372cd3f24ff9c2a gcc/config/rs6000/darwin64.h 6e15cbbb2cb2cc3c36582884ce832f1c gcc/config/rs6000/darwin7.h 4ab65ef9b15ad703cff18793652a4ceb gcc/config/rs6000/darwin8.h d21b5b5b85a33095db1d7b774c71b610 gcc/config/rs6000/default64.h --- 4043,4062 ---- dcae54b5112b4a35de3fee24152c08b6 gcc/config/rs6000/aix64.opt 6de3e4e157ade9ff0333b8e956d4539c gcc/config/rs6000/aix71.h 71e6a687bca5495bca460bdd25e28c7c gcc/config/rs6000/aix72.h ! b88aac221badfdc1acb72cf745d36341 gcc/config/rs6000/altivec.h ! 9a645725e31293158bc33418ee451956 gcc/config/rs6000/altivec.md 9f9485a0668e9f02dd1ddd921e8db540 gcc/config/rs6000/amo.h b5c0d31db75d05e19a5a74e12deee5c2 gcc/config/rs6000/biarch64.h d24bfc688852ea2817f920c09cc312e0 gcc/config/rs6000/bmi2intrin.h 33a5f4f7292b1bb3ad8f66a4e3773c7e gcc/config/rs6000/bmiintrin.h 7292692fc7483600be11240cb2a1c118 gcc/config/rs6000/cell.md 6bdc2b3f07ed0adb0d140b7f6ba6aece gcc/config/rs6000/constraints.md ! 9a01cd51276752b5d20859a3d7fbf25a gcc/config/rs6000/crypto.md ! da9aa1dfff07a7041fdc1eb206b9f037 gcc/config/rs6000/darwin.h ! e6f0713613fd939175cceb41275691be gcc/config/rs6000/darwin.md 4ca90b03f871f9f94d714b3f7de5c299 gcc/config/rs6000/darwin.opt ! e2442f7a7d39c650b30c87274f59db87 gcc/config/rs6000/darwin32-biarch.h ! 3aeaaf4c43f3df11b4fac94ff932c8c1 gcc/config/rs6000/darwin64-biarch.h 6e15cbbb2cb2cc3c36582884ce832f1c gcc/config/rs6000/darwin7.h 4ab65ef9b15ad703cff18793652a4ceb gcc/config/rs6000/darwin8.h d21b5b5b85a33095db1d7b774c71b610 gcc/config/rs6000/default64.h *************** e3b8239e4864950ba2a1eaeb687af8e2 gcc/co *** 4080,4086 **** 56e7905cd5d58cdaa4e54fa40dc3e354 gcc/config/rs6000/lynx.h 0cc3c5f9101501b8253ce3176c3ffce4 gcc/config/rs6000/milli.exp 92042d90d894f0691bc6844d63191748 gcc/config/rs6000/mm_malloc.h ! 3839b136fcb75590b540609bbc23b537 gcc/config/rs6000/mmintrin.h aee964d61fb1cbb5db2240e07d7dd96b gcc/config/rs6000/mpc.md ea90cbc50976c4e72a24cb87e8083dc1 gcc/config/rs6000/netbsd.h 3cb692c6d6947ea872988e948aa1b96c gcc/config/rs6000/option-defaults.h --- 4086,4092 ---- 56e7905cd5d58cdaa4e54fa40dc3e354 gcc/config/rs6000/lynx.h 0cc3c5f9101501b8253ce3176c3ffce4 gcc/config/rs6000/milli.exp 92042d90d894f0691bc6844d63191748 gcc/config/rs6000/mm_malloc.h ! cc6b584b6e27a45de81abebd3a3df7cb gcc/config/rs6000/mmintrin.h aee964d61fb1cbb5db2240e07d7dd96b gcc/config/rs6000/mpc.md ea90cbc50976c4e72a24cb87e8083dc1 gcc/config/rs6000/netbsd.h 3cb692c6d6947ea872988e948aa1b96c gcc/config/rs6000/option-defaults.h *************** de6d25a053b9994a26e8ecc7f8bcfeba gcc/co *** 4091,4116 **** 8a578e104cee146ba9a310e94fa808ba gcc/config/rs6000/power6.md 4fc18c5f5a51b83b90b58a40b447c35d gcc/config/rs6000/power7.md abb23b23f2af6700d170086290f9c573 gcc/config/rs6000/power8.md ! 7b5379645b265c19ce58c23337ed48bc gcc/config/rs6000/power9.md 58b4ce015d00b9f5a28de026ae54cc7b gcc/config/rs6000/ppc-asm.h 0f9854421ac50b66adc14397f453bbe9 gcc/config/rs6000/ppc-auxv.h 342969245a87fc2fa15e020a788bcb14 gcc/config/rs6000/ppu_intrinsics.h ! f5977a893ce90afe80a8ec3f3b558096 gcc/config/rs6000/predicates.md ! 10acad59175bb40efa42f19544e52092 gcc/config/rs6000/rs6000-builtin.def ! 97a829b0e33c40f0492ff4087d27767a gcc/config/rs6000/rs6000-c.c 74e1470f36d1513602e0d9ed52cf1e01 gcc/config/rs6000/rs6000-cpus.def 8ec6d7b8eabe3794bf1ab38f06e84cfc gcc/config/rs6000/rs6000-linux.c cc8cab98b7b59159fd7ae579ccfe9cba gcc/config/rs6000/rs6000-modes.def 43d68f14972a9a3b58a3a7900cf47151 gcc/config/rs6000/rs6000-modes.h 4fe4357d2b59d1f1209721000b626cfd gcc/config/rs6000/rs6000-opts.h ! a2eb09a57e0113267a500e881c8b6652 gcc/config/rs6000/rs6000-p8swap.c 5f7c6215ba96134b2dc6ca6179606f8e gcc/config/rs6000/rs6000-passes.def 8d838167331b51f25ad138b4eb70004f gcc/config/rs6000/rs6000-protos.h 132a9f6c8de853eeee05712551d45e28 gcc/config/rs6000/rs6000-string.c 643b9b3fa5815b6fbb2dc9b4458a3bdd gcc/config/rs6000/rs6000-tables.opt ! 3d5eba4210dc9824efcf44fa568a5eb1 gcc/config/rs6000/rs6000.c de299d9cfb9159d426dcd0ae91746410 gcc/config/rs6000/rs6000.h ! aeefe30777e5ac33f915a58261d20e6d gcc/config/rs6000/rs6000.md 824001b2d686a4122decd64938e7f46d gcc/config/rs6000/rs6000.opt 3a5a1641a5dd900f925b623e02fca183 gcc/config/rs6000/rs64.md cc2ed391efb97e77a30227662d8dfc38 gcc/config/rs6000/rtems.h --- 4097,4122 ---- 8a578e104cee146ba9a310e94fa808ba gcc/config/rs6000/power6.md 4fc18c5f5a51b83b90b58a40b447c35d gcc/config/rs6000/power7.md abb23b23f2af6700d170086290f9c573 gcc/config/rs6000/power8.md ! 3be51ddd882505787de4e3624f79f4c9 gcc/config/rs6000/power9.md 58b4ce015d00b9f5a28de026ae54cc7b gcc/config/rs6000/ppc-asm.h 0f9854421ac50b66adc14397f453bbe9 gcc/config/rs6000/ppc-auxv.h 342969245a87fc2fa15e020a788bcb14 gcc/config/rs6000/ppu_intrinsics.h ! 5ad11b0fce3971e50616027287591d8d gcc/config/rs6000/predicates.md ! 894beabda77f69f8c6ebe5790d57a707 gcc/config/rs6000/rs6000-builtin.def ! f9b7873f5b28e6bf8bc9763f098fe8ff gcc/config/rs6000/rs6000-c.c 74e1470f36d1513602e0d9ed52cf1e01 gcc/config/rs6000/rs6000-cpus.def 8ec6d7b8eabe3794bf1ab38f06e84cfc gcc/config/rs6000/rs6000-linux.c cc8cab98b7b59159fd7ae579ccfe9cba gcc/config/rs6000/rs6000-modes.def 43d68f14972a9a3b58a3a7900cf47151 gcc/config/rs6000/rs6000-modes.h 4fe4357d2b59d1f1209721000b626cfd gcc/config/rs6000/rs6000-opts.h ! 052ebc5de7af94bbac6998d42cd5a179 gcc/config/rs6000/rs6000-p8swap.c 5f7c6215ba96134b2dc6ca6179606f8e gcc/config/rs6000/rs6000-passes.def 8d838167331b51f25ad138b4eb70004f gcc/config/rs6000/rs6000-protos.h 132a9f6c8de853eeee05712551d45e28 gcc/config/rs6000/rs6000-string.c 643b9b3fa5815b6fbb2dc9b4458a3bdd gcc/config/rs6000/rs6000-tables.opt ! 3843af864c5717e40aeb790894a4e009 gcc/config/rs6000/rs6000.c de299d9cfb9159d426dcd0ae91746410 gcc/config/rs6000/rs6000.h ! 508c61e780d66bf437a9fb69251f2d5c gcc/config/rs6000/rs6000.md 824001b2d686a4122decd64938e7f46d gcc/config/rs6000/rs6000.opt 3a5a1641a5dd900f925b623e02fca183 gcc/config/rs6000/rs64.md cc2ed391efb97e77a30227662d8dfc38 gcc/config/rs6000/rtems.h *************** f9d1e30c3a4ecafd9023b44f03a49fc8 gcc/co *** 4124,4134 **** f053f8229694372d55ea78dd4f0c5c28 gcc/config/rs6000/sysv4le.h 56aec008c6e4a879c06afbe3660efdae gcc/config/rs6000/t-aix43 c059d4a16085cad58f34946aabe2cc11 gcc/config/rs6000/t-aix52 ! f3250b9720d1149346f1ef8e21b52ea9 gcc/config/rs6000/t-darwin64 ! 636250eb91fc5dada4804efcd525fc02 gcc/config/rs6000/t-darwin8 0f970d99602398f4e297682f8a2bc0f7 gcc/config/rs6000/t-fprules 52a22f94153362807c445e9976a570a5 gcc/config/rs6000/t-freebsd64 ! ff51a8b999a109af125ed5678ca7cc91 gcc/config/rs6000/t-linux 2b84eba4ca3f13506e28ddc14d567433 gcc/config/rs6000/t-linux64 71c0a0470047f0171a3bb4c483eb2b72 gcc/config/rs6000/t-linux64bele 489699b655594f05bae0b429fd261edb gcc/config/rs6000/t-linux64le --- 4130,4140 ---- f053f8229694372d55ea78dd4f0c5c28 gcc/config/rs6000/sysv4le.h 56aec008c6e4a879c06afbe3660efdae gcc/config/rs6000/t-aix43 c059d4a16085cad58f34946aabe2cc11 gcc/config/rs6000/t-aix52 ! 636250eb91fc5dada4804efcd525fc02 gcc/config/rs6000/t-darwin32-biarch ! f3250b9720d1149346f1ef8e21b52ea9 gcc/config/rs6000/t-darwin64-biarch 0f970d99602398f4e297682f8a2bc0f7 gcc/config/rs6000/t-fprules 52a22f94153362807c445e9976a570a5 gcc/config/rs6000/t-freebsd64 ! 40e5cd20542141b80d5fcf1a7b10b3fd gcc/config/rs6000/t-linux 2b84eba4ca3f13506e28ddc14d567433 gcc/config/rs6000/t-linux64 71c0a0470047f0171a3bb4c483eb2b72 gcc/config/rs6000/t-linux64bele 489699b655594f05bae0b429fd261edb gcc/config/rs6000/t-linux64le *************** b64a846190ec96ed1399a0ff634abb57 gcc/co *** 4148,4154 **** dcf9f40ff97e1293f070b8dc3aa06400 gcc/config/rs6000/titan.md c46036b4cccd7f4737b8b30dbe9c479e gcc/config/rs6000/vec_types.h 62e755c1d65b4a0bf915d6cb1ab048f7 gcc/config/rs6000/vector.md ! ae03742c84e63e0c40b90cec5a19d396 gcc/config/rs6000/vsx.md f3ae66c0a97e2993dbb57c3ad3c14de1 gcc/config/rs6000/vxworks.h 5e707e69636b23d3f1076bb71fb1bc99 gcc/config/rs6000/vxworksae.h 565d57378339556706f36508c7ca8916 gcc/config/rs6000/vxworksmils.h --- 4154,4160 ---- dcf9f40ff97e1293f070b8dc3aa06400 gcc/config/rs6000/titan.md c46036b4cccd7f4737b8b30dbe9c479e gcc/config/rs6000/vec_types.h 62e755c1d65b4a0bf915d6cb1ab048f7 gcc/config/rs6000/vector.md ! 32562a5a5dbdf620600c6ec92fae301c gcc/config/rs6000/vsx.md f3ae66c0a97e2993dbb57c3ad3c14de1 gcc/config/rs6000/vxworks.h 5e707e69636b23d3f1076bb71fb1bc99 gcc/config/rs6000/vxworksae.h 565d57378339556706f36508c7ca8916 gcc/config/rs6000/vxworksmils.h *************** d7bac9c32038aa1a14b9a4834bdb2153 gcc/co *** 4188,4201 **** 106230506016171b71ab07ecbcdddd8a gcc/config/s390/htmxlintrin.h 342e7ff485f151fe5b55406594f4be39 gcc/config/s390/linux.h 2d669e9dff9320233b7f216038499af2 gcc/config/s390/predicates.md ! 1b9b4548e3c648b75b1a9971c099621e gcc/config/s390/s390-builtin-types.def ! 0d6abd4d4d8068513952dd50478573e6 gcc/config/s390/s390-builtins.def 2e5820f6c953cd38503c01405236734a gcc/config/s390/s390-builtins.h ! 94bb9801f7c21b9abfbf99383d7911de gcc/config/s390/s390-c.c 8ffd07333cf5c87efee0637e396bd149 gcc/config/s390/s390-modes.def dd581ffe9a17b11126b5923183e1b110 gcc/config/s390/s390-opts.h 74939e1d57f01659100c31d3d3943788 gcc/config/s390/s390-protos.h ! de9c2beaffd1f60be3a9da9eacc3abea gcc/config/s390/s390.c 5dfe87b70fe97c47a9c40b06b7662115 gcc/config/s390/s390.h 540c0b6b23c8aef0d6211156e4aa6ccf gcc/config/s390/s390.md f991258a0a930bd79a1d406221cecf17 gcc/config/s390/s390.opt --- 4194,4207 ---- 106230506016171b71ab07ecbcdddd8a gcc/config/s390/htmxlintrin.h 342e7ff485f151fe5b55406594f4be39 gcc/config/s390/linux.h 2d669e9dff9320233b7f216038499af2 gcc/config/s390/predicates.md ! 041e55f0511e1be4da0b7bc1a83143b4 gcc/config/s390/s390-builtin-types.def ! b3184b60dd1e2849c9b33e6936d4faad gcc/config/s390/s390-builtins.def 2e5820f6c953cd38503c01405236734a gcc/config/s390/s390-builtins.h ! b6b33d059d68d3980e1a109974c59311 gcc/config/s390/s390-c.c 8ffd07333cf5c87efee0637e396bd149 gcc/config/s390/s390-modes.def dd581ffe9a17b11126b5923183e1b110 gcc/config/s390/s390-opts.h 74939e1d57f01659100c31d3d3943788 gcc/config/s390/s390-protos.h ! df7c3f0690fdc622dfea8f4cdbb0ebe4 gcc/config/s390/s390.c 5dfe87b70fe97c47a9c40b06b7662115 gcc/config/s390/s390.h 540c0b6b23c8aef0d6211156e4aa6ccf gcc/config/s390/s390.md f991258a0a930bd79a1d406221cecf17 gcc/config/s390/s390.opt *************** f991258a0a930bd79a1d406221cecf17 gcc/co *** 4208,4214 **** f17c7212b2cbc12f07ec94830f8b7eac gcc/config/s390/tpf.md bf78833b73ed4695a1e55fbb94967b66 gcc/config/s390/tpf.opt f1dea21d1255ead60a637fbe52e1274f gcc/config/s390/vecintrin.h ! f0a8abd792b2744828da6315571d6b25 gcc/config/s390/vector.md 7ede31e10a18c5a54a6c080b421a1e92 gcc/config/s390/vx-builtins.md 19876f77a242921272972ac5b8bd32d0 gcc/config/s390/x-native 962dc9c4a3dad735e979eefee574c450 gcc/config/sh/constraints.md --- 4214,4220 ---- f17c7212b2cbc12f07ec94830f8b7eac gcc/config/s390/tpf.md bf78833b73ed4695a1e55fbb94967b66 gcc/config/s390/tpf.opt f1dea21d1255ead60a637fbe52e1274f gcc/config/s390/vecintrin.h ! 0f8ee5ae421e4c8f110e83cdfc1f0868 gcc/config/s390/vector.md 7ede31e10a18c5a54a6c080b421a1e92 gcc/config/s390/vx-builtins.md 19876f77a242921272972ac5b8bd32d0 gcc/config/s390/x-native 962dc9c4a3dad735e979eefee574c450 gcc/config/sh/constraints.md *************** e60c11102da3006a2ea94f6c6770389e gcc/co *** 4230,4238 **** 79155b89b25ea22f9edff508c0d58027 gcc/config/sh/sh-mem.cc 8bf2b464e12ab2e2af256628ffb2bb3c gcc/config/sh/sh-modes.def 506cac6fb163e58099b09e43cc4a0a8d gcc/config/sh/sh-protos.h ! 41d5b9902dc8da9038c24195a4bb27df gcc/config/sh/sh.c ! 0cad9562ee917168d4e6b83a90bfc118 gcc/config/sh/sh.h ! e9407274d6a21c2a652a9c6ea84c2f73 gcc/config/sh/sh.md 2d2a751ad14145bcff8c4c7f1039880a gcc/config/sh/sh.opt a0e95d3c3f266053c6934b12b145dae8 gcc/config/sh/sh1.md a2f4d0437330a0164fce4cfa3d795db0 gcc/config/sh/sh4-300.md --- 4236,4244 ---- 79155b89b25ea22f9edff508c0d58027 gcc/config/sh/sh-mem.cc 8bf2b464e12ab2e2af256628ffb2bb3c gcc/config/sh/sh-modes.def 506cac6fb163e58099b09e43cc4a0a8d gcc/config/sh/sh-protos.h ! 9920e7158f45733ad05fd0047f7ab62f gcc/config/sh/sh.c ! c541545e0d21465a702f3e2967ff8011 gcc/config/sh/sh.h ! ea35689a0148bb551c5a0484b0d4029c gcc/config/sh/sh.md 2d2a751ad14145bcff8c4c7f1039880a gcc/config/sh/sh.opt a0e95d3c3f266053c6934b12b145dae8 gcc/config/sh/sh1.md a2f4d0437330a0164fce4cfa3d795db0 gcc/config/sh/sh4-300.md *************** d2d75159dbb3673877a99dbb45a730e8 gcc/co *** 4285,4294 **** 3e73f3b298504f4739c6a005c86bfa94 gcc/config/sparc/sparc-modes.def 7ce792f7bc14ea47fe92381d8b7b7400 gcc/config/sparc/sparc-opts.h c05adeef9d811893755284314d7e5f31 gcc/config/sparc/sparc-passes.def ! f50ca0df113a1d1486d71588af1f34c9 gcc/config/sparc/sparc-protos.h ! 9bf70a74175cdb6eaaf0925bac9ec86d gcc/config/sparc/sparc.c ! 4cfe5c2e3cf2751f5fabfa3f920e5fe4 gcc/config/sparc/sparc.h ! 669d8bb9f5faa7f0d5e39cd8502c9519 gcc/config/sparc/sparc.md 497f3da0646b51525092463f232911fb gcc/config/sparc/sparc.opt 1fb3c7f03aa54b786f780eb9c9ed005e gcc/config/sparc/sparclet.md 4191c81a0c4b3020ec97f61a9bd952b1 gcc/config/sparc/supersparc.md --- 4291,4300 ---- 3e73f3b298504f4739c6a005c86bfa94 gcc/config/sparc/sparc-modes.def 7ce792f7bc14ea47fe92381d8b7b7400 gcc/config/sparc/sparc-opts.h c05adeef9d811893755284314d7e5f31 gcc/config/sparc/sparc-passes.def ! a18e12cbcf9484911bb3e0288863ba0e gcc/config/sparc/sparc-protos.h ! 392624ec71398920e82cac2aa4e53f5f gcc/config/sparc/sparc.c ! 6eb755468c6d1240ce58037786d1c99a gcc/config/sparc/sparc.h ! d2987a0a4d1eb5aff85e10841f18aeab gcc/config/sparc/sparc.md 497f3da0646b51525092463f232911fb gcc/config/sparc/sparc.opt 1fb3c7f03aa54b786f780eb9c9ed005e gcc/config/sparc/sparclet.md 4191c81a0c4b3020ec97f61a9bd952b1 gcc/config/sparc/supersparc.md *************** c2f41d409d10f10c06a0de4501553910 gcc/co *** 4472,4491 **** 850d2459d6c32d677d50747787635ecc gcc/config/xtensa/uclinux.h 469a9a76ba51e0f1b25fbf760a831c7a gcc/config/xtensa/uclinux.opt 63481accf82403836ce83a79185b9226 gcc/config/xtensa/xtensa-protos.h ! 1287b18f578d82691c6c9bc086ae5b31 gcc/config/xtensa/xtensa.c 97c2e5f153dabd85c063122e7c2912db gcc/config/xtensa/xtensa.h 132c6f6dd01b2db6164f3abdb0b3c2ff gcc/config/xtensa/xtensa.md be32e55d84ad27ad2692d9d344b8cf12 gcc/config/xtensa/xtensa.opt ! 81831aef763d745ed90dc500e423aee0 gcc/configure ! 0805205386bf8688f9fbb5de8c35a433 gcc/configure.ac f9c1a015d346b30fdc7192725778646b gcc/context.c 09941917d194790bc9f86359ea14cd47 gcc/context.h ! 13ed0366356631a4d59eb7f945040428 gcc/convert.c 9fe3da26819f2429b0e35192b8962054 gcc/convert.h c0c049d064942d75d95822a6849d16fe gcc/coretypes.h 609dd9bc60db748cac9a719b04dbbb32 gcc/coverage.c 7019a0a1a14eb1207414a6e0be21131b gcc/coverage.h ! e78a237975733ad0d74ff1fbaef4b132 gcc/cp/ChangeLog d271e3663538ba1f3281cab3838e92cd gcc/cp/ChangeLog-1993 f5a44adbc05521162350ca409d1d95ce gcc/cp/ChangeLog-1994 ac55db48d964cb5469ff03c1cd3ee04d gcc/cp/ChangeLog-1995 --- 4478,4497 ---- 850d2459d6c32d677d50747787635ecc gcc/config/xtensa/uclinux.h 469a9a76ba51e0f1b25fbf760a831c7a gcc/config/xtensa/uclinux.opt 63481accf82403836ce83a79185b9226 gcc/config/xtensa/xtensa-protos.h ! 05c81eb42504dbd5a0decd12ba75f77e gcc/config/xtensa/xtensa.c 97c2e5f153dabd85c063122e7c2912db gcc/config/xtensa/xtensa.h 132c6f6dd01b2db6164f3abdb0b3c2ff gcc/config/xtensa/xtensa.md be32e55d84ad27ad2692d9d344b8cf12 gcc/config/xtensa/xtensa.opt ! 57603f5c5c8e0662f73aafd0112f3227 gcc/configure ! 3ec5c7eac29d9ec8807f0865076dca18 gcc/configure.ac f9c1a015d346b30fdc7192725778646b gcc/context.c 09941917d194790bc9f86359ea14cd47 gcc/context.h ! 2cc05dc98383bba768f83f17c6f034bc gcc/convert.c 9fe3da26819f2429b0e35192b8962054 gcc/convert.h c0c049d064942d75d95822a6849d16fe gcc/coretypes.h 609dd9bc60db748cac9a719b04dbbb32 gcc/coverage.c 7019a0a1a14eb1207414a6e0be21131b gcc/coverage.h ! db449154c41cdb5326f290eeade1b989 gcc/cp/ChangeLog d271e3663538ba1f3281cab3838e92cd gcc/cp/ChangeLog-1993 f5a44adbc05521162350ca409d1d95ce gcc/cp/ChangeLog-1994 ac55db48d964cb5469ff03c1cd3ee04d gcc/cp/ChangeLog-1995 *************** c1c7801b9b0f379e702a4f6cb83972e7 gcc/cp *** 4515,4570 **** 9aa3cd9f75c785de9f51446e3f295515 gcc/cp/ChangeLog.tree-ssa 44c35d63af02e8fa5641989b2f0820f9 gcc/cp/Make-lang.in a13b72c2be1f0d58cf692cafb78ff106 gcc/cp/NEWS ! 86bc718ab447af5dd379155beb7623d1 gcc/cp/call.c 9abe2d1b127f2761a9b52b97fbdb9ec1 gcc/cp/cfns.gperf 5389e5fd89452259352383e7f7ce3fff gcc/cp/cfns.h ! 60298a335f192923e664b4bed14e119e gcc/cp/class.c ! f6634d3dd25b744d80b6463d153f29ac gcc/cp/config-lang.in ! ecb93abe3fff92bb749b5546b77f1ca1 gcc/cp/constexpr.c 89f593e8c98278d8ad700aee95665a89 gcc/cp/constraint.cc ! 86b70720dd4960761569ac38b6f46788 gcc/cp/cp-gimplify.c 8d11cb46ceb32e0717a862a5ec754374 gcc/cp/cp-lang.c 1171638dfce063f3a25c42780e2b2c1f gcc/cp/cp-objcp-common.c a913da461b6f1a49b31023d0ebbdf67b gcc/cp/cp-objcp-common.h ad49e45ec2343c757ed3b1ea1069d661 gcc/cp/cp-tree.def ! 276945345fd26a06d7ea690bb09ef680 gcc/cp/cp-tree.h 33972c71f6c6035e636c350ae6e6e5fd gcc/cp/cp-ubsan.c 4150394f21e19f4fe78302d7871e7a72 gcc/cp/cvt.c ef76fbbf5f9d145103970055ffd84d01 gcc/cp/cxx-pretty-print.c 13262d34ab67984f1c386024e953d217 gcc/cp/cxx-pretty-print.h ! df39e9aabad81cc9b9cb186ae27986b4 gcc/cp/decl.c 5501a00d10aa487d402cc2f1afd87c18 gcc/cp/decl.h ! 1bb02bfed345467524779fb2ee765f32 gcc/cp/decl2.c 91ecc2454d3e0d78bff70abecff1d521 gcc/cp/dump.c 68b5ffb4460da3acbd339922da430b3e gcc/cp/error.c 0174f4e12f4f7e6c2639ee79e26dd503 gcc/cp/except.c 699761d65baf9e3f9c91035ebc3618c6 gcc/cp/expr.c 9f7faeecf3bf945c3786f3edf962c580 gcc/cp/friend.c 5d579a9172a514e43539f964dee83eba gcc/cp/g++spec.c ! 78f850f8674a1e68b664371da13aacdc gcc/cp/init.c ! 99ba243774ed8a1be4c0aac649850b5f gcc/cp/lambda.c 233a5981c3f13caa280c5bba26cfbe28 gcc/cp/lang-specs.h 22372b2ef4cf97357a48de1a73244743 gcc/cp/lex.c eca62cf53f871aa6913e2c734fc94bfb gcc/cp/logic.cc ! 866237c3e8e5327884ce528fddba5db1 gcc/cp/mangle.c ! 06305e59f376b6935a738d48f3890dc2 gcc/cp/method.c ! 62d72b8a9eec20fee2507e8df1a52820 gcc/cp/name-lookup.c 7aca3f7e71336fb86bb9397fe5c98fd0 gcc/cp/name-lookup.h 7999d8537059142826bf293be832a171 gcc/cp/operators.def aa4ace6d38cf4c2d30c2617fbefaf108 gcc/cp/optimize.c ! 1d2fa64eff365c69b0d18b89d8be7095 gcc/cp/parser.c 4bb2c293d71dc0d59b6363d58c197b7b gcc/cp/parser.h ! 1439387929a7c8dc4acb13bd55d16e8a gcc/cp/pt.c eac77f6c1d074e5e5e5d94962b8e03de gcc/cp/ptree.c e1f9d5051218958fa8b08dedb3510c09 gcc/cp/repo.c 1caf25d6209863e9f6bae25615b7835a gcc/cp/rtti.c ef3e5af8501bf80b5fba0e171aa85ec6 gcc/cp/search.c ! 56c97435003dad953c687b8d6d8aed7a gcc/cp/semantics.c ! 884340f8d2ba2ce0f34325110678a007 gcc/cp/tree.c 6936db73722ddbe991df180715229427 gcc/cp/type-utils.h ! 21b21a0cb75fcf6df7c26972bddd85c5 gcc/cp/typeck.c ! 691425d82082c6de270e9649dea49c49 gcc/cp/typeck2.c ! 5136c07637d5ae7fd14f5e96253c9258 gcc/cp/vtable-class-hierarchy.c a2eabba8fbb748371d4bbab5a475552d gcc/cppbuiltin.c 5d962b5c9c79b2351c67f54a8b0c870d gcc/cppbuiltin.h 61d20262bb57f6ca88b1cf254a5d174c gcc/cppdefault.c --- 4521,4576 ---- 9aa3cd9f75c785de9f51446e3f295515 gcc/cp/ChangeLog.tree-ssa 44c35d63af02e8fa5641989b2f0820f9 gcc/cp/Make-lang.in a13b72c2be1f0d58cf692cafb78ff106 gcc/cp/NEWS ! 19498319a0c320656990fea9a6d003e5 gcc/cp/call.c 9abe2d1b127f2761a9b52b97fbdb9ec1 gcc/cp/cfns.gperf 5389e5fd89452259352383e7f7ce3fff gcc/cp/cfns.h ! 41929645e4ac35bfdfae9541ea186454 gcc/cp/class.c ! 6c0fb70085423cc515e52965ea029fc9 gcc/cp/config-lang.in ! d1174bf5db015fbc1cd08084dd5db06e gcc/cp/constexpr.c 89f593e8c98278d8ad700aee95665a89 gcc/cp/constraint.cc ! e02d44916c5fc89e7745b1fe6276ca9f gcc/cp/cp-gimplify.c 8d11cb46ceb32e0717a862a5ec754374 gcc/cp/cp-lang.c 1171638dfce063f3a25c42780e2b2c1f gcc/cp/cp-objcp-common.c a913da461b6f1a49b31023d0ebbdf67b gcc/cp/cp-objcp-common.h ad49e45ec2343c757ed3b1ea1069d661 gcc/cp/cp-tree.def ! 03dec7ca5e0d953b1416e54b81d0dea7 gcc/cp/cp-tree.h 33972c71f6c6035e636c350ae6e6e5fd gcc/cp/cp-ubsan.c 4150394f21e19f4fe78302d7871e7a72 gcc/cp/cvt.c ef76fbbf5f9d145103970055ffd84d01 gcc/cp/cxx-pretty-print.c 13262d34ab67984f1c386024e953d217 gcc/cp/cxx-pretty-print.h ! 0664e5e8f65c3993debccbaea9742d59 gcc/cp/decl.c 5501a00d10aa487d402cc2f1afd87c18 gcc/cp/decl.h ! f30091de971dcbf658c2e21c628be941 gcc/cp/decl2.c 91ecc2454d3e0d78bff70abecff1d521 gcc/cp/dump.c 68b5ffb4460da3acbd339922da430b3e gcc/cp/error.c 0174f4e12f4f7e6c2639ee79e26dd503 gcc/cp/except.c 699761d65baf9e3f9c91035ebc3618c6 gcc/cp/expr.c 9f7faeecf3bf945c3786f3edf962c580 gcc/cp/friend.c 5d579a9172a514e43539f964dee83eba gcc/cp/g++spec.c ! 576d6c3db557e4cc31cbc0dccfad6a06 gcc/cp/init.c ! 47c756ec81e7ff8327d4c9384c049229 gcc/cp/lambda.c 233a5981c3f13caa280c5bba26cfbe28 gcc/cp/lang-specs.h 22372b2ef4cf97357a48de1a73244743 gcc/cp/lex.c eca62cf53f871aa6913e2c734fc94bfb gcc/cp/logic.cc ! cf616997a806a853e1adc0ad1e943ad2 gcc/cp/mangle.c ! 80f885bcb2f55c067e07fae76ed3c7cc gcc/cp/method.c ! a1def62674bed993c3c05d7b25473938 gcc/cp/name-lookup.c 7aca3f7e71336fb86bb9397fe5c98fd0 gcc/cp/name-lookup.h 7999d8537059142826bf293be832a171 gcc/cp/operators.def aa4ace6d38cf4c2d30c2617fbefaf108 gcc/cp/optimize.c ! 42de608fdcd65acc6d4bd6e6fe3e44d3 gcc/cp/parser.c 4bb2c293d71dc0d59b6363d58c197b7b gcc/cp/parser.h ! f91a8715bf932aeae4541f0177010bcc gcc/cp/pt.c eac77f6c1d074e5e5e5d94962b8e03de gcc/cp/ptree.c e1f9d5051218958fa8b08dedb3510c09 gcc/cp/repo.c 1caf25d6209863e9f6bae25615b7835a gcc/cp/rtti.c ef3e5af8501bf80b5fba0e171aa85ec6 gcc/cp/search.c ! d5bf0d36876d83b11b5253f825d0bc94 gcc/cp/semantics.c ! 45bec25ccabbd0cd997322d5ca4ebbac gcc/cp/tree.c 6936db73722ddbe991df180715229427 gcc/cp/type-utils.h ! 958b364a54d781cf9c09e22667d688cb gcc/cp/typeck.c ! ef3e3a0e17706f4b537c3e8a10e7820c gcc/cp/typeck2.c ! ac7905d8eec1d4376410b3c461060519 gcc/cp/vtable-class-hierarchy.c a2eabba8fbb748371d4bbab5a475552d gcc/cppbuiltin.c 5d962b5c9c79b2351c67f54a8b0c870d gcc/cppbuiltin.h 61d20262bb57f6ca88b1cf254a5d174c gcc/cppdefault.c *************** e856dbd81fa4a9ecce4e761d62767738 gcc/db *** 4583,4596 **** 9b39ff7c950a2d234633560242b8fb78 gcc/dbgcnt.h b019ee858ac23dc8956f07d217189fc3 gcc/dbxout.c cb156d97d13532b0c6274979bb48a21b gcc/dbxout.h ! 6f29884ba00b6e6c4122b74cb5abac21 gcc/dce.c 6ff53f1bd0646a9f82c69d21bab36f45 gcc/dce.h f8a2cd292b30e2a2de3c6e69756f0a2a gcc/ddg.c 43fc774c972174af68c11a16a97854ab gcc/ddg.h 96742d983b626db85a7ee70c6d9c4ea5 gcc/debug.c a7513661cee5f0fe6d12aeb65f39c67b gcc/debug.h 256716fa4b996434e3feb9143b30ee1a gcc/defaults.h ! e6291d6003e187efe72d90b1650526ba gcc/df-core.c b9ccf22b2d893950319cd090bf8d9850 gcc/df-problems.c 05c8a7b23cbf21a241e3ee788184083d gcc/df-scan.c 1ecf7570d635a072ee254435a51c5138 gcc/df.h --- 4589,4602 ---- 9b39ff7c950a2d234633560242b8fb78 gcc/dbgcnt.h b019ee858ac23dc8956f07d217189fc3 gcc/dbxout.c cb156d97d13532b0c6274979bb48a21b gcc/dbxout.h ! 927ddacc9242b0c0e9f02b3f1e26d52e gcc/dce.c 6ff53f1bd0646a9f82c69d21bab36f45 gcc/dce.h f8a2cd292b30e2a2de3c6e69756f0a2a gcc/ddg.c 43fc774c972174af68c11a16a97854ab gcc/ddg.h 96742d983b626db85a7ee70c6d9c4ea5 gcc/debug.c a7513661cee5f0fe6d12aeb65f39c67b gcc/debug.h 256716fa4b996434e3feb9143b30ee1a gcc/defaults.h ! 48538e1514bca5f443016eeb9b4b3274 gcc/df-core.c b9ccf22b2d893950319cd090bf8d9850 gcc/df-problems.c 05c8a7b23cbf21a241e3ee788184083d gcc/df-scan.c 1ecf7570d635a072ee254435a51c5138 gcc/df.h *************** e0bffe4a2d45e48aef29de6113dee546 gcc/di *** 4603,4609 **** db08a19390a12fc433fcf9b5f74c1b69 gcc/diagnostic.c 34ff34e70ee21994b32ed6f8797dbb70 gcc/diagnostic.def a50eb519ba69860eee90586f0554cfa4 gcc/diagnostic.h ! 5cba0d3fc5a052bd2241bfef8a593757 gcc/doc/avr-mmcu.texi a03612cca367b5ecbb5192f605e806f1 gcc/doc/bugreport.texi 1fe0ba7429ac86615aa75bf6815612f3 gcc/doc/cfg.texi b7905f4ade67d1968ab1fcce3bad3480 gcc/doc/collect2.texi --- 4609,4615 ---- db08a19390a12fc433fcf9b5f74c1b69 gcc/diagnostic.c 34ff34e70ee21994b32ed6f8797dbb70 gcc/diagnostic.def a50eb519ba69860eee90586f0554cfa4 gcc/diagnostic.h ! 9ef6463fe70e55e96586327c5b2523df gcc/doc/avr-mmcu.texi a03612cca367b5ecbb5192f605e806f1 gcc/doc/bugreport.texi 1fe0ba7429ac86615aa75bf6815612f3 gcc/doc/cfg.texi b7905f4ade67d1968ab1fcce3bad3480 gcc/doc/collect2.texi *************** a23535c7db0c6f475054ba2cb1d438c1 gcc/do *** 4611,4618 **** 700782ba93176aa1ac7dfee603911bcb gcc/doc/configfiles.texi cff2e685f1a9f6f4ce0070fb9c1a0620 gcc/doc/configterms.texi 12de3a3dd491517501344c465ad0ef84 gcc/doc/contrib.texi ! e199d603e49f05735eee3939926e7cd6 gcc/doc/contribute.texi ! 9e53003a91dd4518fbf36c81fbf5e227 gcc/doc/cpp.1 ed7e6dae7e3cf77daaf3d5070e094771 gcc/doc/cpp.info 1e3db4df621db13a0b39f924c8f278eb gcc/doc/cpp.texi 7c02324cc006f220459805063014518a gcc/doc/cppdiropts.texi --- 4617,4624 ---- 700782ba93176aa1ac7dfee603911bcb gcc/doc/configfiles.texi cff2e685f1a9f6f4ce0070fb9c1a0620 gcc/doc/configterms.texi 12de3a3dd491517501344c465ad0ef84 gcc/doc/contrib.texi ! 05586e3e969e66c7bec57532d58252c3 gcc/doc/contribute.texi ! 565697f35b4519066b604c369e7e1051 gcc/doc/cpp.1 ed7e6dae7e3cf77daaf3d5070e094771 gcc/doc/cpp.info 1e3db4df621db13a0b39f924c8f278eb gcc/doc/cpp.texi 7c02324cc006f220459805063014518a gcc/doc/cppdiropts.texi *************** b2084efddf7328253f4224f392c92a4c gcc/do *** 4621,4649 **** 556b73e670042539fbdc022a731bb105 gcc/doc/cppinternals.texi db073af8991f4e1229389381b3d6dd85 gcc/doc/cppopts.texi 82446e76de3ab1bef723ebd97912a632 gcc/doc/cppwarnopts.texi ! ba3b16bcc43d4cc6560aa46867cfb6d6 gcc/doc/extend.texi c1e11bb67ed686b1affe2cc477f70550 gcc/doc/fragments.texi cf06864101b61455759a16faca3e70cd gcc/doc/frontends.texi ! c6d06effec013d9052d79589dd7524c1 gcc/doc/fsf-funding.7 ! f907433e3006107ea4526f1c8ab4ee42 gcc/doc/g++.1 ! f907433e3006107ea4526f1c8ab4ee42 gcc/doc/gcc.1 ! ba931364d8bf2fea01cbee2516e633ae gcc/doc/gcc.info 71873939d138f16b52e7053f4d7d3f77 gcc/doc/gcc.texi ! c1255ee8ce656fd7da01867c18d35a79 gcc/doc/gccinstall.info ! 5570e989a792f0fe2033aa7f64b1b495 gcc/doc/gccint.info 8cf490d8be79f659c8ba8c27dada6c8d gcc/doc/gccint.texi ! 061196563b8a55c46a3972af3597c23b gcc/doc/gcov-dump.1 ce533f1bf4a49f9eb606882e58f0a414 gcc/doc/gcov-dump.texi ! e775319549b621da4bd076990704ecb8 gcc/doc/gcov-tool.1 ecc3e7352f48a2b6553e89c1c0f6b9bc gcc/doc/gcov-tool.texi ! 8193bcb79372f9a0b21c35e4712807c9 gcc/doc/gcov.1 d5f5ff645ec6e3380f60f13a1633b105 gcc/doc/gcov.texi 8b699a7b687444171cc61644be51e3e0 gcc/doc/generic.texi ! 6bf5601638de1d21acadb13993ccb8ce gcc/doc/gfdl.7 ! 38f8db01ab542e618c5b35cba928ffc3 gcc/doc/gfortran.1 b3610e4a79ea6cdf06f44fccf1f934af gcc/doc/gimple.texi 290370669f02bef1502ada9273e5261f gcc/doc/gnu.texi ! 4879b79cf1e109c3142068fabc0aeb51 gcc/doc/gpl.7 0d41af709032cd77cccb7972c03fa712 gcc/doc/gty.texi 317e73b5e45097060cfe6be2186b531a gcc/doc/headerdirs.texi f5b492a2f1fb4916502cc396c21ee275 gcc/doc/hostconfig.texi --- 4627,4655 ---- 556b73e670042539fbdc022a731bb105 gcc/doc/cppinternals.texi db073af8991f4e1229389381b3d6dd85 gcc/doc/cppopts.texi 82446e76de3ab1bef723ebd97912a632 gcc/doc/cppwarnopts.texi ! e3f27b067faab6144a839b75c7ff56df gcc/doc/extend.texi c1e11bb67ed686b1affe2cc477f70550 gcc/doc/fragments.texi cf06864101b61455759a16faca3e70cd gcc/doc/frontends.texi ! 492c9ea9dc61bb6b5a5436d2b8a22c94 gcc/doc/fsf-funding.7 ! d7766f6c7e01dc4016b3897e62d4c8d0 gcc/doc/g++.1 ! d7766f6c7e01dc4016b3897e62d4c8d0 gcc/doc/gcc.1 ! e057ff8c38f4cd6f7accba13f0e146ff gcc/doc/gcc.info 71873939d138f16b52e7053f4d7d3f77 gcc/doc/gcc.texi ! 01f87523fd80d971bcf3d8ba6fcd3228 gcc/doc/gccinstall.info ! 18d214e8932667d57869262f5792e0fb gcc/doc/gccint.info 8cf490d8be79f659c8ba8c27dada6c8d gcc/doc/gccint.texi ! 35318dee7362e7aef4dfe6b8733bb2f3 gcc/doc/gcov-dump.1 ce533f1bf4a49f9eb606882e58f0a414 gcc/doc/gcov-dump.texi ! 92276559435bc2145139ec712a8d7517 gcc/doc/gcov-tool.1 ecc3e7352f48a2b6553e89c1c0f6b9bc gcc/doc/gcov-tool.texi ! a6048a2946db4bcaf55de22cff0b7675 gcc/doc/gcov.1 d5f5ff645ec6e3380f60f13a1633b105 gcc/doc/gcov.texi 8b699a7b687444171cc61644be51e3e0 gcc/doc/generic.texi ! 28658dcabc9725b74612b3739c28e594 gcc/doc/gfdl.7 ! 1f6c3157c7664ca1920d77e4f28c0056 gcc/doc/gfortran.1 b3610e4a79ea6cdf06f44fccf1f934af gcc/doc/gimple.texi 290370669f02bef1502ada9273e5261f gcc/doc/gnu.texi ! 52e8b8432d6c45d483153cd921c54b1c gcc/doc/gpl.7 0d41af709032cd77cccb7972c03fa712 gcc/doc/gty.texi 317e73b5e45097060cfe6be2186b531a gcc/doc/headerdirs.texi f5b492a2f1fb4916502cc396c21ee275 gcc/doc/hostconfig.texi *************** b476484399f312392032b166c2e042bf gcc/do *** 4655,4671 **** 5f5adc2c6c4ebdcf03cc0125250f5995 gcc/doc/include/gpl_v3.texi 73819b3930a3d4be5d6234070d02386a gcc/doc/include/texinfo.tex a8ef8aaffff076cac48e316bf7a1719a gcc/doc/install-old.texi ! 82313b77d44895b7e66e681a4974f6ab gcc/doc/install.texi 1ab54698a1001c2304a579a19b2aa1a3 gcc/doc/install.texi2html 607379a18f52f449cac65d16265a9076 gcc/doc/interface.texi ! 3fffb48dceb80be0cf480b93eb49d2de gcc/doc/invoke.texi 99ffcf94b1906902e750ad39db855775 gcc/doc/languages.texi f13c954a47504e1577bb0e79be3db556 gcc/doc/libgcc.texi b66f6bc3378f4edaf1851c2c46f26d65 gcc/doc/loop.texi 4d3e7bc856d2aecaad7786848e0806c5 gcc/doc/lto.texi b19d360bcce7bf2aff8a335a11efdcef gcc/doc/makefile.texi beb96df4321f5cbef95821074798b6ca gcc/doc/match-and-simplify.texi ! 71490555d6f2621a75e1a468d9864d0d gcc/doc/md.texi 9893d33f34132bdb792d592d1df70111 gcc/doc/objc.texi a4f6e07928e13a6c410f7e8b39ec5eb8 gcc/doc/optinfo.texi 685eb978dc4b9a4361c062631100142d gcc/doc/options.texi --- 4661,4677 ---- 5f5adc2c6c4ebdcf03cc0125250f5995 gcc/doc/include/gpl_v3.texi 73819b3930a3d4be5d6234070d02386a gcc/doc/include/texinfo.tex a8ef8aaffff076cac48e316bf7a1719a gcc/doc/install-old.texi ! a1cedf2f636cf25109ee30c620979e41 gcc/doc/install.texi 1ab54698a1001c2304a579a19b2aa1a3 gcc/doc/install.texi2html 607379a18f52f449cac65d16265a9076 gcc/doc/interface.texi ! d8834db290b92de1aeb5c901d572fd45 gcc/doc/invoke.texi 99ffcf94b1906902e750ad39db855775 gcc/doc/languages.texi f13c954a47504e1577bb0e79be3db556 gcc/doc/libgcc.texi b66f6bc3378f4edaf1851c2c46f26d65 gcc/doc/loop.texi 4d3e7bc856d2aecaad7786848e0806c5 gcc/doc/lto.texi b19d360bcce7bf2aff8a335a11efdcef gcc/doc/makefile.texi beb96df4321f5cbef95821074798b6ca gcc/doc/match-and-simplify.texi ! 51e4dad9b66ce61d1382efd1bf7bf9d4 gcc/doc/md.texi 9893d33f34132bdb792d592d1df70111 gcc/doc/objc.texi a4f6e07928e13a6c410f7e8b39ec5eb8 gcc/doc/optinfo.texi 685eb978dc4b9a4361c062631100142d gcc/doc/options.texi *************** c612fa291f7cb113bfea54f024123363 gcc/do *** 4689,4706 **** e3159104bcf8fa02d17ebd8fdef1d601 gcc/domwalk.h e46a0678cd58056e1ad2bccc1f1767a9 gcc/double-int.c 3014d385a35cb8c0f86f4c8d55ed9c7c gcc/double-int.h ! d14581702e7f559a575f2c2dd54b25cb gcc/dse.c 27d2c31d370f7348c76c3e0d1e104abd gcc/dumpfile.c a6ac033ab207e2db558b953e2b86f763 gcc/dumpfile.h 5180a42afcab61545fa230784fe1a143 gcc/dwarf2asm.c a3b5fe42438f913189aa4613c0f0f2d9 gcc/dwarf2asm.h ! 4394f733fed8a69985296868cc4f6c12 gcc/dwarf2cfi.c ! c892b1c2868c7a87dd2f2fa260d4b918 gcc/dwarf2out.c 0101e0a5ea82db816cd96a515204bf62 gcc/dwarf2out.h 14418ad02a37c7f769973c7f8bf2d390 gcc/early-remat.c a3ebe63cea199a03023109bc8d558db4 gcc/edit-context.c 0d19d40813a11f9fe3a1139fa5d44b52 gcc/edit-context.h ! 96dceb72f62035c2527f79cff10075d1 gcc/emit-rtl.c 1547fc041ebc5c1ae718a3fb86379f48 gcc/emit-rtl.h 025bf76a01355414d0a9a80594bd870d gcc/errors.c cb73326ed478016ad34331dbdf8ca68a gcc/errors.h --- 4695,4712 ---- e3159104bcf8fa02d17ebd8fdef1d601 gcc/domwalk.h e46a0678cd58056e1ad2bccc1f1767a9 gcc/double-int.c 3014d385a35cb8c0f86f4c8d55ed9c7c gcc/double-int.h ! d4311e3ad18d7105393218ab6f997d0f gcc/dse.c 27d2c31d370f7348c76c3e0d1e104abd gcc/dumpfile.c a6ac033ab207e2db558b953e2b86f763 gcc/dumpfile.h 5180a42afcab61545fa230784fe1a143 gcc/dwarf2asm.c a3b5fe42438f913189aa4613c0f0f2d9 gcc/dwarf2asm.h ! d7bb1605992bc0a4ff08f3b45b309fc9 gcc/dwarf2cfi.c ! 11e2094f276ad97a67c6d212cbd64fd4 gcc/dwarf2out.c 0101e0a5ea82db816cd96a515204bf62 gcc/dwarf2out.h 14418ad02a37c7f769973c7f8bf2d390 gcc/early-remat.c a3ebe63cea199a03023109bc8d558db4 gcc/edit-context.c 0d19d40813a11f9fe3a1139fa5d44b52 gcc/edit-context.h ! 92b81fd78845ee1e782d60eb19aa4d2c gcc/emit-rtl.c 1547fc041ebc5c1ae718a3fb86379f48 gcc/emit-rtl.h 025bf76a01355414d0a9a80594bd870d gcc/errors.c cb73326ed478016ad34331dbdf8ca68a gcc/errors.h *************** de6560abcac90b6c2b6390150efde7a6 gcc/et *** 4709,4719 **** 2f38eda7544d27a9e5f993b3c73a7d1e gcc/except.c 47ff89ab5845c8bd353b51040c08dc2c gcc/except.h f4f32d5d7df51a89d6ad7806abb093b8 gcc/exec-tool.in ! 766208a1d9661cbd7241f536dec0f908 gcc/explow.c fad9690ce289d164035f3edb225a2691 gcc/explow.h ! dbd6ce660975d7e37ea84d69683b3168 gcc/expmed.c 343179acb2dc99a656f3b7df79d1523a gcc/expmed.h ! b4116bfe1ab79cf241514fd5f72e426f gcc/expr.c 919ddcb1719614ffb43b72d9f32c9bc3 gcc/expr.h c4b60a613a78dc2f2c8ecd587d9ed598 gcc/fibonacci_heap.c a7a89c2476c5141b06d51d92b607e5bd gcc/fibonacci_heap.h --- 4715,4725 ---- 2f38eda7544d27a9e5f993b3c73a7d1e gcc/except.c 47ff89ab5845c8bd353b51040c08dc2c gcc/except.h f4f32d5d7df51a89d6ad7806abb093b8 gcc/exec-tool.in ! 329ba4cc460f9c9b4b3fc072c0b16468 gcc/explow.c fad9690ce289d164035f3edb225a2691 gcc/explow.h ! af0570b7b1924f334136b9e15c7de746 gcc/expmed.c 343179acb2dc99a656f3b7df79d1523a gcc/expmed.h ! d25012b67058c80e72c1ff995872b712 gcc/expr.c 919ddcb1719614ffb43b72d9f32c9bc3 gcc/expr.h c4b60a613a78dc2f2c8ecd587d9ed598 gcc/fibonacci_heap.c a7a89c2476c5141b06d51d92b607e5bd gcc/fibonacci_heap.h *************** a3d5d540b846b06a0ac04a444d49591e gcc/fl *** 4728,4736 **** c21cc83079a7c945decf177bc2f6fb77 gcc/flags.h 5f39cb799fd3316c3c09575a766d9c5f gcc/fold-const-call.c a35f203fc68fd7cc82e04c0bafb0de01 gcc/fold-const-call.h ! 4120f59aa5ccdba9b9448631b9e24516 gcc/fold-const.c 3b871f8513fcc4a84fd9fb9d6596dccb gcc/fold-const.h ! 4dcc87482d4e264a339ee368b3267c58 gcc/fortran/ChangeLog 3330102ad3a0217cba963be6b5eefd58 gcc/fortran/ChangeLog-2002 d000ab985b1eeb1ad5749f98b8fef99f gcc/fortran/ChangeLog-2003 bf42f94f0c51dcc7d8051cc7fda1efdc gcc/fortran/ChangeLog-2004 --- 4734,4742 ---- c21cc83079a7c945decf177bc2f6fb77 gcc/flags.h 5f39cb799fd3316c3c09575a766d9c5f gcc/fold-const-call.c a35f203fc68fd7cc82e04c0bafb0de01 gcc/fold-const-call.h ! f8a139b317e886151869116005414fd6 gcc/fold-const.c 3b871f8513fcc4a84fd9fb9d6596dccb gcc/fold-const.h ! 455fa8273232732f140f17ec1854ba67 gcc/fortran/ChangeLog 3330102ad3a0217cba963be6b5eefd58 gcc/fortran/ChangeLog-2002 d000ab985b1eeb1ad5749f98b8fef99f gcc/fortran/ChangeLog-2003 bf42f94f0c51dcc7d8051cc7fda1efdc gcc/fortran/ChangeLog-2004 *************** a71efd3e199a80ee07c7f350cc8fcf91 gcc/fo *** 4749,4760 **** 1ee95f47d9685043c09a7b41933d263b gcc/fortran/ChangeLog-2017 9e0636f92243fb9b3480e27cefc96749 gcc/fortran/ChangeLog.ptr b09b9dd0a6487a5cc7c24c368ef23324 gcc/fortran/Make-lang.in ! 2bcae8bb25feda8a96cef68dd69efdb0 gcc/fortran/arith.c aa8d69581095289ab399d7918671b1e5 gcc/fortran/arith.h ! a4260188a9c28eee8dd122e4f7ca4b58 gcc/fortran/array.c d615344312412ebd7dc61d519ef3ec5e gcc/fortran/bbt.c ! 98ddecf28326fc730db199ec90aa0170 gcc/fortran/check.c ! 3cd85b099dc60ad560d99686bb5c6a27 gcc/fortran/class.c 20fb365ff3aae3dd5dd1bc5609bcb216 gcc/fortran/config-lang.in 8ffccc64b1dc0ee747167a692d6a921b gcc/fortran/constructor.c 8b30afec649d4328c8c1286ffd99f281 gcc/fortran/constructor.h --- 4755,4766 ---- 1ee95f47d9685043c09a7b41933d263b gcc/fortran/ChangeLog-2017 9e0636f92243fb9b3480e27cefc96749 gcc/fortran/ChangeLog.ptr b09b9dd0a6487a5cc7c24c368ef23324 gcc/fortran/Make-lang.in ! 0633313d71c81f104b1f6d572821cb29 gcc/fortran/arith.c aa8d69581095289ab399d7918671b1e5 gcc/fortran/arith.h ! 67a63bd2c430e4d83014247fba14f9a7 gcc/fortran/array.c d615344312412ebd7dc61d519ef3ec5e gcc/fortran/bbt.c ! b09f8506d47e74e8d8181970751031f4 gcc/fortran/check.c ! 3dc0403baf147536d6796d2ab941ae91 gcc/fortran/class.c 20fb365ff3aae3dd5dd1bc5609bcb216 gcc/fortran/config-lang.in 8ffccc64b1dc0ee747167a692d6a921b gcc/fortran/constructor.c 8b30afec649d4328c8c1286ffd99f281 gcc/fortran/constructor.h *************** bc309294f544921aa641807107fd57af gcc/fo *** 4763,4834 **** d4f427b9efe267b545337325c27a4893 gcc/fortran/cpp.h 3b797ba3f4fb4a321c04306c01d48828 gcc/fortran/data.c d5b5f00f5c8a84a40bbba39841db18cf gcc/fortran/data.h ! 7afb32842248a61223b72f92b763b6dd gcc/fortran/decl.c 21a18b695c25d865ae6a64bf71e6f5fe gcc/fortran/dependency.c 05ec93c9bdaabcca73284894c616ba09 gcc/fortran/dependency.h e3dee91ab219979c305ba36b745488d0 gcc/fortran/dump-parse-tree.c d0348f441ed81aa75649d1f553e01b0a gcc/fortran/error.c ! d95b0312688b36b5a16823487d56266e gcc/fortran/expr.c 33a998bb76f277bd3a0787f05532a487 gcc/fortran/f95-lang.c ! c2677368d552c77df70683c89cf4b830 gcc/fortran/frontend-passes.c 28798906693f1520c4d4379c9fc6782b gcc/fortran/gfc-diagnostic.def 5de5695bff65d5964be1401432f63785 gcc/fortran/gfc-internals.texi ! 77ae736e3646437c35b822cf4f92837c gcc/fortran/gfortran.h ! c05402e69a0c428d27086dbccab7e485 gcc/fortran/gfortran.info 6c3a3b5a0d26926cd20ec51d26f61b85 gcc/fortran/gfortran.texi 1e357492be9d4ed58ca379e6fe1cab80 gcc/fortran/gfortranspec.c ! 8ac0a08fd75c7970acb8f69301cbd874 gcc/fortran/interface.c 8e562f5a268a16da954f23a7cee79680 gcc/fortran/intrinsic.c 6a6a8cf6a58da021aa3f6d50121e5dce gcc/fortran/intrinsic.h ! 3972b5e867799c7ba3b9d3d68a381b64 gcc/fortran/intrinsic.texi ! 1e7074d5c2db29b0218f86ca351119b9 gcc/fortran/invoke.texi f2ce470fb4dde74e682cfc5dd3a7b928 gcc/fortran/io.c ac973a8ce27833cbfd1a3303f29fc342 gcc/fortran/ioparm.def ! ba0904334200ab6288538051dd45f10a gcc/fortran/iresolve.c 23f4daf3c2cba1374556fee61f403e11 gcc/fortran/iso-c-binding.def 6b2d8be92136037049db739735220da1 gcc/fortran/iso-fortran-env.def b7f1acea296ac135f718fdf3ad9a9f88 gcc/fortran/lang-specs.h ! 2bab1ea90ced392079eed5ff0a1e3803 gcc/fortran/lang.opt 985ea603e7ad50000d307d5ff4105658 gcc/fortran/libgfortran.h ! f7aa1a2beb7d8dfea73ec0ce0040c1bd gcc/fortran/match.c a16faa9094c5d5858efc6ecb52acec74 gcc/fortran/match.h 8689bb8258e5dbc3a0cc25f65c5a8085 gcc/fortran/matchexp.c 510536be0c63050f8b7cd5808c699f5a gcc/fortran/mathbuiltins.def 622fcbcc760c0d714be13a3cd82ba88f gcc/fortran/misc.c 21cd121001ae628ca95a80979a0d184a gcc/fortran/module.c ! 92044a843e26399583671705e6360b68 gcc/fortran/openmp.c 37006b7cb2eb9504e8ff5c68cf871ca8 gcc/fortran/options.c ! 7f1d88be9c45510ab81deb30afb9ef6d gcc/fortran/parse.c db6cbb81135a427023887b2bfea92dd3 gcc/fortran/parse.h 20eac2be6f84aa05dfcf5dd5ae8a4a35 gcc/fortran/primary.c ! 851a652f84c335ee27e6d55e0fd04aa7 gcc/fortran/resolve.c 552b4507d3c688303c7eab6a39c6e0e8 gcc/fortran/scanner.c e4b095e58e67805737af0ad040a5d5ca gcc/fortran/scanner.h ! 39697877553dce10a5208777a8ec3f1b gcc/fortran/simplify.c ea668bc8c5f2d6f9fd47f633f5a28881 gcc/fortran/st.c ! 732180151824b8c7fbdfdeb3f2d904c3 gcc/fortran/symbol.c ! cf8f27fa40866d96bdbc979152f20597 gcc/fortran/target-memory.c ! eb6fc82bfe5fe7d340c04ca0cb0ad54e gcc/fortran/target-memory.h ! b7e5797553e0c0d0b496bf92e4257fb7 gcc/fortran/trans-array.c f81eb76e9097dd73d4a96df8118dd066 gcc/fortran/trans-array.h 517ba40f58618eb2c3b62ab5c6831d36 gcc/fortran/trans-common.c db451afc134c956148dc69030b5db653 gcc/fortran/trans-const.c ceefba4f9055aa156f0f42c030e08208 gcc/fortran/trans-const.h ! 1732779872e3d2e16a855ed5b6ab2d9f gcc/fortran/trans-decl.c ! fba75f3ddef2dd4199c0eb849e9b84d0 gcc/fortran/trans-expr.c ! d6904e09be8507496665dd5a53d3ed53 gcc/fortran/trans-intrinsic.c ! 93cb594dcc588a98371f709ddad27bd3 gcc/fortran/trans-io.c ! f22fb20c906cd06e23948197114ade2d gcc/fortran/trans-openmp.c ! a679353d85b48079d708d0eb09c8303c gcc/fortran/trans-stmt.c d19cc5b6923723784e9b631f618ee61f gcc/fortran/trans-stmt.h ! 2bcf935ca16935748cad6904027aabf9 gcc/fortran/trans-types.c ! 7e8ab5c526d85a6852efb786e598ddfb gcc/fortran/trans-types.h 201672c09cefb3c2a054df09e3bf8e94 gcc/fortran/trans.c ! 3d1840965b498f2eacfa022aec6106b4 gcc/fortran/trans.h 8d03eab72b0ce9c8fdf2489dc4f6e4bf gcc/fortran/types.def 7e3386bd2b915caa7677cda411c9d836 gcc/fp-test.c 8f15f2e8c041de9bcdea98bca453682e gcc/function-tests.c ! 94a47bbbeb5bc1d30f74f6a76a66e83e gcc/function.c 58fb1f54e423018cbc2a9456e83aaffa gcc/function.h 1aceb05c089c01e5c0c72c2a5b28da19 gcc/fwprop.c 8e19055be3c6435d916a651f6c59ef38 gcc/gcc-ar.c --- 4769,4840 ---- d4f427b9efe267b545337325c27a4893 gcc/fortran/cpp.h 3b797ba3f4fb4a321c04306c01d48828 gcc/fortran/data.c d5b5f00f5c8a84a40bbba39841db18cf gcc/fortran/data.h ! 78cc3b2a45eb2bd6766c6422732a6c9e gcc/fortran/decl.c 21a18b695c25d865ae6a64bf71e6f5fe gcc/fortran/dependency.c 05ec93c9bdaabcca73284894c616ba09 gcc/fortran/dependency.h e3dee91ab219979c305ba36b745488d0 gcc/fortran/dump-parse-tree.c d0348f441ed81aa75649d1f553e01b0a gcc/fortran/error.c ! 02c87f9a8f1ef0c57efb4b5d2d8683d8 gcc/fortran/expr.c 33a998bb76f277bd3a0787f05532a487 gcc/fortran/f95-lang.c ! e6900c185ec770e9b8b1a77765fa5ba7 gcc/fortran/frontend-passes.c 28798906693f1520c4d4379c9fc6782b gcc/fortran/gfc-diagnostic.def 5de5695bff65d5964be1401432f63785 gcc/fortran/gfc-internals.texi ! a3986d0bc1830958a4412ada1c9a8e0b gcc/fortran/gfortran.h ! 91cee62d96d2c7cd25574fe1a2d25236 gcc/fortran/gfortran.info 6c3a3b5a0d26926cd20ec51d26f61b85 gcc/fortran/gfortran.texi 1e357492be9d4ed58ca379e6fe1cab80 gcc/fortran/gfortranspec.c ! 8c5b9b60e42b24f4e5fb2a9e476c61ec gcc/fortran/interface.c 8e562f5a268a16da954f23a7cee79680 gcc/fortran/intrinsic.c 6a6a8cf6a58da021aa3f6d50121e5dce gcc/fortran/intrinsic.h ! add5cfdd8a3f62d960750df336096235 gcc/fortran/intrinsic.texi ! 012eb5842d592b4ba357af324b6e331d gcc/fortran/invoke.texi f2ce470fb4dde74e682cfc5dd3a7b928 gcc/fortran/io.c ac973a8ce27833cbfd1a3303f29fc342 gcc/fortran/ioparm.def ! b4b34e729a72dbe1309ed2a81f2848f4 gcc/fortran/iresolve.c 23f4daf3c2cba1374556fee61f403e11 gcc/fortran/iso-c-binding.def 6b2d8be92136037049db739735220da1 gcc/fortran/iso-fortran-env.def b7f1acea296ac135f718fdf3ad9a9f88 gcc/fortran/lang-specs.h ! 808f025fe93c1bcd5e0cc084f16af617 gcc/fortran/lang.opt 985ea603e7ad50000d307d5ff4105658 gcc/fortran/libgfortran.h ! b838ec9bed8d9a401d615c5953dce079 gcc/fortran/match.c a16faa9094c5d5858efc6ecb52acec74 gcc/fortran/match.h 8689bb8258e5dbc3a0cc25f65c5a8085 gcc/fortran/matchexp.c 510536be0c63050f8b7cd5808c699f5a gcc/fortran/mathbuiltins.def 622fcbcc760c0d714be13a3cd82ba88f gcc/fortran/misc.c 21cd121001ae628ca95a80979a0d184a gcc/fortran/module.c ! 7cdc6b533cf62458f73139c12ddea0bb gcc/fortran/openmp.c 37006b7cb2eb9504e8ff5c68cf871ca8 gcc/fortran/options.c ! 756a2654242612b924a8709d74559a11 gcc/fortran/parse.c db6cbb81135a427023887b2bfea92dd3 gcc/fortran/parse.h 20eac2be6f84aa05dfcf5dd5ae8a4a35 gcc/fortran/primary.c ! 188e7e26437816322013074861d7edd1 gcc/fortran/resolve.c 552b4507d3c688303c7eab6a39c6e0e8 gcc/fortran/scanner.c e4b095e58e67805737af0ad040a5d5ca gcc/fortran/scanner.h ! bcce5974c4e0ab501b5a1923de67e9cc gcc/fortran/simplify.c ea668bc8c5f2d6f9fd47f633f5a28881 gcc/fortran/st.c ! d37993d4b51328c14f5690c5a3a14ba8 gcc/fortran/symbol.c ! 309d2077c6cafaabf240f77f4babd289 gcc/fortran/target-memory.c ! db923dd3edf7aafdb13c3fd20ab138e3 gcc/fortran/target-memory.h ! ad4d51716959b20166f49586dc384b55 gcc/fortran/trans-array.c f81eb76e9097dd73d4a96df8118dd066 gcc/fortran/trans-array.h 517ba40f58618eb2c3b62ab5c6831d36 gcc/fortran/trans-common.c db451afc134c956148dc69030b5db653 gcc/fortran/trans-const.c ceefba4f9055aa156f0f42c030e08208 gcc/fortran/trans-const.h ! 7406e03022c6c859b1aaad35b965dd17 gcc/fortran/trans-decl.c ! 025a9d422dfe014a8ab35029aba59ce6 gcc/fortran/trans-expr.c ! 7dbef958dfafad45b6fbfd0fa02231fc gcc/fortran/trans-intrinsic.c ! 2c6a778d9388c712b72868088e4fbb94 gcc/fortran/trans-io.c ! 24745fbd1437722ba0ceaa15a558881a gcc/fortran/trans-openmp.c ! 9d2876678569b453679d603b6c4ee9b1 gcc/fortran/trans-stmt.c d19cc5b6923723784e9b631f618ee61f gcc/fortran/trans-stmt.h ! 787abd7a2449cba0d4c68ba2bfbbdc96 gcc/fortran/trans-types.c ! 28f0964936e6f54203672ad65d25b955 gcc/fortran/trans-types.h 201672c09cefb3c2a054df09e3bf8e94 gcc/fortran/trans.c ! 18d678771f6a660a179c5e759b9ec118 gcc/fortran/trans.h 8d03eab72b0ce9c8fdf2489dc4f6e4bf gcc/fortran/types.def 7e3386bd2b915caa7677cda411c9d836 gcc/fp-test.c 8f15f2e8c041de9bcdea98bca453682e gcc/function-tests.c ! b91b3e13d59b6a533e42d2c9888305b2 gcc/function.c 58fb1f54e423018cbc2a9456e83aaffa gcc/function.h 1aceb05c089c01e5c0c72c2a5b28da19 gcc/fwprop.c 8e19055be3c6435d916a651f6c59ef38 gcc/gcc-ar.c *************** af843170035d689d110c04da707cf8aa gcc/gc *** 4845,4854 **** 684f64d8b5a5676b5c1bfc339a108788 gcc/gcov-io.h 0c88bd339d2e52b298a33052248884b2 gcc/gcov-iov.c e811693e591ca37f156560117f6121a1 gcc/gcov-tool.c ! 510e6c5c806741b5208a2b939b66ee0a gcc/gcov.c 71a73b0546631aa618b3c00677d57650 gcc/gcse-common.c e6bc6d5304282a4cf05a626941fed245 gcc/gcse-common.h ! 057b46fa560f8a04a8924b272628ba27 gcc/gcse.c 4a3b79b37639c436dfccdbfca76e1476 gcc/gcse.h af83e4b4719ee065872080b713d24c2f gcc/gdbasan.in 99bcf12968c4344883d815f1b65517ef gcc/gdbhooks.py --- 4851,4860 ---- 684f64d8b5a5676b5c1bfc339a108788 gcc/gcov-io.h 0c88bd339d2e52b298a33052248884b2 gcc/gcov-iov.c e811693e591ca37f156560117f6121a1 gcc/gcov-tool.c ! 1efa43f5b42e304a17e8cc9020261bd6 gcc/gcov.c 71a73b0546631aa618b3c00677d57650 gcc/gcse-common.c e6bc6d5304282a4cf05a626941fed245 gcc/gcse-common.h ! a42356b36e98a9e2b8326e28e3f3e52f gcc/gcse.c 4a3b79b37639c436dfccdbfca76e1476 gcc/gcse.h af83e4b4719ee065872080b713d24c2f gcc/gdbasan.in 99bcf12968c4344883d815f1b65517ef gcc/gdbhooks.py *************** ca498ebfbf5575a37f9642593487f6bf gcc/ge *** 4872,4878 **** b01b6419766d41c25d38794d4f32dfb7 gcc/genextract.c 92f953de889d59c02d7c25c238be540e gcc/genflags.c 7b30ae499731e8256998caf0912209a9 gcc/gengenrtl.c ! 82d6042efa3c8e22f1386c3b04f1f1b3 gcc/gengtype-lex.c 3d4c619fadb5870852dbc187182c474c gcc/gengtype-lex.l d6a29975bf7d91bd496e075f5e470e75 gcc/gengtype-parse.c 64e6e992a250fb71e455de19cd155c53 gcc/gengtype-state.c --- 4878,4884 ---- b01b6419766d41c25d38794d4f32dfb7 gcc/genextract.c 92f953de889d59c02d7c25c238be540e gcc/genflags.c 7b30ae499731e8256998caf0912209a9 gcc/gengenrtl.c ! ac62a4b763d0a7d3a3f8f7895784c104 gcc/gengtype-lex.c 3d4c619fadb5870852dbc187182c474c gcc/gengtype-lex.l d6a29975bf7d91bd496e075f5e470e75 gcc/gengtype-parse.c 64e6e992a250fb71e455de19cd155c53 gcc/gengtype-state.c *************** df9bf6e47826e29c4f3c01acf3afcb98 gcc/ge *** 4895,4908 **** 3c88215e14c083e4c5d4237418c17031 gcc/ggc-common.c 4c614192cb18bbdaaacdd0aa977d8975 gcc/ggc-internal.h 109284dad98a29c2f241c0cc3be8e160 gcc/ggc-none.c ! 5b5840ac61ae815fef0ca90fbba15b0e gcc/ggc-page.c f539fa97e3352bb2713159d7cd57f6d9 gcc/ggc-tests.c e0cc73b3b635f520872a6c9d21588338 gcc/ggc.h 9bfb81e5206c1ccc9f090f2f6be9d991 gcc/gimple-builder.c cdf7412c306a686af61815bb09b2f94c gcc/gimple-builder.h e4c51cb35fd3db8dbf8b9d6b7e7f2b9d gcc/gimple-expr.c 8efde36a406c63492e1a2b9a0699ae2b gcc/gimple-expr.h ! efa26943ca39db316b8af78f7eea1add gcc/gimple-fold.c e6788267702b4eb503be8a95ff28a071 gcc/gimple-fold.h cbde4efda211952b48286a1b80a48175 gcc/gimple-iterator.c 59063f384ac4735d4c342e7834b5080f gcc/gimple-iterator.h --- 4901,4914 ---- 3c88215e14c083e4c5d4237418c17031 gcc/ggc-common.c 4c614192cb18bbdaaacdd0aa977d8975 gcc/ggc-internal.h 109284dad98a29c2f241c0cc3be8e160 gcc/ggc-none.c ! 24af75090e941bf44837254299f7379b gcc/ggc-page.c f539fa97e3352bb2713159d7cd57f6d9 gcc/ggc-tests.c e0cc73b3b635f520872a6c9d21588338 gcc/ggc.h 9bfb81e5206c1ccc9f090f2f6be9d991 gcc/gimple-builder.c cdf7412c306a686af61815bb09b2f94c gcc/gimple-builder.h e4c51cb35fd3db8dbf8b9d6b7e7f2b9d gcc/gimple-expr.c 8efde36a406c63492e1a2b9a0699ae2b gcc/gimple-expr.h ! b801d048e317ade3e7343edeebaf47df gcc/gimple-fold.c e6788267702b4eb503be8a95ff28a071 gcc/gimple-fold.h cbde4efda211952b48286a1b80a48175 gcc/gimple-iterator.c 59063f384ac4735d4c342e7834b5080f gcc/gimple-iterator.h *************** d8fbec638f57c0e32ab16d9e67cd405b gcc/gi *** 4923,4933 **** c976ce223b0a332a655c824a3c3e7d9d gcc/gimple-ssa-isolate-paths.c 9db0b33d53d43c87b61d647656104c46 gcc/gimple-ssa-nonnull-compare.c f2472ffd84e5b86a567ef9c22b6632ff gcc/gimple-ssa-split-paths.c ! 08c7a98cfd62a49090628f04fc846cfc gcc/gimple-ssa-sprintf.c ! d0c5b3e9a3c4c4faed25d54fc0dc8b1b gcc/gimple-ssa-store-merging.c 83fe1e76b35a22ec081781d90aed3eb0 gcc/gimple-ssa-strength-reduction.c ca4f38a646ec11265518d84d6b545dab gcc/gimple-ssa-warn-alloca.c ! 260f32c57c8d2fd4a2eae667f1331a65 gcc/gimple-ssa-warn-restrict.c 33e880297fd86716c672015df29aee60 gcc/gimple-ssa-warn-restrict.h 537dd4de148064ea689f70411462b123 gcc/gimple-ssa.h adb4cdab775bf6f318a329cf112733b3 gcc/gimple-streamer-in.c --- 4929,4939 ---- c976ce223b0a332a655c824a3c3e7d9d gcc/gimple-ssa-isolate-paths.c 9db0b33d53d43c87b61d647656104c46 gcc/gimple-ssa-nonnull-compare.c f2472ffd84e5b86a567ef9c22b6632ff gcc/gimple-ssa-split-paths.c ! 62336f807e0e0ae41e5a81d26408f5a0 gcc/gimple-ssa-sprintf.c ! 85920b50ae655beb5179df371cb494a1 gcc/gimple-ssa-store-merging.c 83fe1e76b35a22ec081781d90aed3eb0 gcc/gimple-ssa-strength-reduction.c ca4f38a646ec11265518d84d6b545dab gcc/gimple-ssa-warn-alloca.c ! 4891499e247eedc445daa4e616146717 gcc/gimple-ssa-warn-restrict.c 33e880297fd86716c672015df29aee60 gcc/gimple-ssa-warn-restrict.h 537dd4de148064ea689f70411462b123 gcc/gimple-ssa.h adb4cdab775bf6f318a329cf112733b3 gcc/gimple-streamer-in.c *************** eefeab2028f35136e03ee18d9d9a52c4 gcc/gi *** 4940,4946 **** 6d32488ef5b660d95c5d2b2854ab427d gcc/gimple.h a3409b3a9f07d554a4e49de168d23381 gcc/gimplify-me.c eeab737071f7239590a9e9896cdc455c gcc/gimplify-me.h ! a60d44edcea39f4beab0769b77033ba9 gcc/gimplify.c a9c1ef55b88bbc9e436f843a238a4e86 gcc/gimplify.h 7265d2e58f2002e04e053312f11a735d gcc/ginclude/float.h b584400b5dbd7c7b3f37550824c71361 gcc/ginclude/iso646.h --- 4946,4952 ---- 6d32488ef5b660d95c5d2b2854ab427d gcc/gimple.h a3409b3a9f07d554a4e49de168d23381 gcc/gimplify-me.c eeab737071f7239590a9e9896cdc455c gcc/gimplify-me.h ! 444ae1eedfa43a533a1c100d8beb2a1c gcc/gimplify.c a9c1ef55b88bbc9e436f843a238a4e86 gcc/gimplify.h 7265d2e58f2002e04e053312f11a735d gcc/ginclude/float.h b584400b5dbd7c7b3f37550824c71361 gcc/ginclude/iso646.h *************** f85aa0745c3e9e0d32fa64753089b2f1 gcc/gi *** 4957,4963 **** 29c8cf010fb2ecbb7d1554bb5f52e0e1 gcc/ginclude/unwind-arm-common.h 8d9ecf0d6ef93c79623ce1d27a32a2cb gcc/ginclude/varargs.h 51980eb50d09b511cfa8524ab5361e81 gcc/glimits.h ! d0fa01dd5f803f641580c48b1ca0ddcc gcc/go/ChangeLog 69470ddce8bb4e9d25ba9e5e9ed6d4a8 gcc/go/Make-lang.in 60ea054548c83c7f66170073f9f3e74c gcc/go/README.gcc 3985883511f27b692b1243c7f6b52dc2 gcc/go/config-lang.in --- 4963,4969 ---- 29c8cf010fb2ecbb7d1554bb5f52e0e1 gcc/ginclude/unwind-arm-common.h 8d9ecf0d6ef93c79623ce1d27a32a2cb gcc/ginclude/varargs.h 51980eb50d09b511cfa8524ab5361e81 gcc/glimits.h ! b9363f01c754119a1a23fff181c14ec0 gcc/go/ChangeLog 69470ddce8bb4e9d25ba9e5e9ed6d4a8 gcc/go/Make-lang.in 60ea054548c83c7f66170073f9f3e74c gcc/go/README.gcc 3985883511f27b692b1243c7f6b52dc2 gcc/go/config-lang.in *************** ee0e0b5991f9abe75f127323b94e16e3 gcc/gr *** 5029,5035 **** 3cc6eec261eb72566ededf9fd083a097 gcc/graphite-isl-ast-to-gimple.c 271fe345ee1fd9fcaad3f7ad97ad60b8 gcc/graphite-optimize-isl.c b171596b4a17472b436376a2d650f411 gcc/graphite-poly.c ! c169d6a3c55c2645f6b402c547faaf9d gcc/graphite-scop-detection.c 135c03be2cbbe6e4e3a9740a69a591b9 gcc/graphite-sese-to-poly.c c82692a490fd707b9399965cef16498e gcc/graphite.c 1cdd94122574876dcbbe52aeb8c3a044 gcc/graphite.h --- 5035,5041 ---- 3cc6eec261eb72566ededf9fd083a097 gcc/graphite-isl-ast-to-gimple.c 271fe345ee1fd9fcaad3f7ad97ad60b8 gcc/graphite-optimize-isl.c b171596b4a17472b436376a2d650f411 gcc/graphite-poly.c ! 75aef099d102795754148720b4b6e328 gcc/graphite-scop-detection.c 135c03be2cbbe6e4e3a9740a69a591b9 gcc/graphite-sese-to-poly.c c82692a490fd707b9399965cef16498e gcc/graphite.c 1cdd94122574876dcbbe52aeb8c3a044 gcc/graphite.h *************** a0f5aa1d04c8f316654b2f865f9322ae gcc/if *** 5073,5084 **** b72d87256e9793f4d47a39119a05f84d gcc/incpath.c aba818adc10872877c0338c3fb1ac173 gcc/incpath.h 8c18efc3f17744b0fbd836215598d0bc gcc/init-regs.c ! f18e487b8c7d2d33dbceb9f3363366d4 gcc/input.c 04bbc03b5a88cc646d62baa9e14e229a gcc/input.h 988835d6024129010f6580aa5c3e58b8 gcc/insn-addr.h db96beaba15bfca80c0ae7546e42e1e0 gcc/insn-notes.def 91c55ce3a2a4fd174698683409ff2c60 gcc/int-vector-builder.h ! 976490125760d4d56f97eb4ca3b87cce gcc/internal-fn.c c426900e96f23c462ea7a1b0c08f736e gcc/internal-fn.def 6032695cd61ea774005116e71fd89337 gcc/internal-fn.h ccd1d030cc4ed26a30d07e0a2704cd30 gcc/intl.c --- 5079,5090 ---- b72d87256e9793f4d47a39119a05f84d gcc/incpath.c aba818adc10872877c0338c3fb1ac173 gcc/incpath.h 8c18efc3f17744b0fbd836215598d0bc gcc/init-regs.c ! f4aadbd3811195f5bc2fa22659075799 gcc/input.c 04bbc03b5a88cc646d62baa9e14e229a gcc/input.h 988835d6024129010f6580aa5c3e58b8 gcc/insn-addr.h db96beaba15bfca80c0ae7546e42e1e0 gcc/insn-notes.def 91c55ce3a2a4fd174698683409ff2c60 gcc/int-vector-builder.h ! c276efe9cdcb1f9be8bc781f8eac10f0 gcc/internal-fn.c c426900e96f23c462ea7a1b0c08f736e gcc/internal-fn.def 6032695cd61ea774005116e71fd89337 gcc/internal-fn.h ccd1d030cc4ed26a30d07e0a2704cd30 gcc/intl.c *************** e7fa3524a21ce210ce70d873ccf22a97 gcc/in *** 5086,5094 **** 7e829ae2ed1916867ab7430cad2f0796 gcc/ipa-chkp.c 7f523ce336e249e14e7f7ea5a18570c1 gcc/ipa-chkp.h 7e49c4f8182f1a45e8fbdcb6643d7ffc gcc/ipa-comdats.c ! 3352cc9975d4b61034d6ecec91dcb650 gcc/ipa-cp.c ! 68604e333377458ad02598271a7b10f3 gcc/ipa-devirt.c ! e7184f5168bdb30dfa982fc98184be7a gcc/ipa-fnsummary.c 98840f956dd8a4d690458e1c33d988a5 gcc/ipa-fnsummary.h 9608b3b6cf0ecf1eafa4893b289b109c gcc/ipa-hsa.c cd96c560a07b757ba4b9919f10b7083d gcc/ipa-icf-gimple.c --- 5092,5100 ---- 7e829ae2ed1916867ab7430cad2f0796 gcc/ipa-chkp.c 7f523ce336e249e14e7f7ea5a18570c1 gcc/ipa-chkp.h 7e49c4f8182f1a45e8fbdcb6643d7ffc gcc/ipa-comdats.c ! 5baa7c9b8a6ff4b74021016355ab0a62 gcc/ipa-cp.c ! e0c9d45e5d64225966b705a2ac09328a gcc/ipa-devirt.c ! 38c8eb176af98a27957c95a7f086ca7d gcc/ipa-fnsummary.c 98840f956dd8a4d690458e1c33d988a5 gcc/ipa-fnsummary.h 9608b3b6cf0ecf1eafa4893b289b109c gcc/ipa-hsa.c cd96c560a07b757ba4b9919f10b7083d gcc/ipa-icf-gimple.c *************** e2a03612f39c52d707b2c1075b2d6274 gcc/ip *** 5105,5113 **** 392ee5a0d5c11824308f605d5574f008 gcc/ipa-predicate.c 6d30cf0cfd4ac42f0c7e55390f21a224 gcc/ipa-predicate.h 02f6a5bbd992c4e5fb4a8f9b471ff1c2 gcc/ipa-profile.c ! 1ae8492a1cc600724d46eeeda7d23cb5 gcc/ipa-prop.c c76998fde8e1e02e5630b7803369d25e gcc/ipa-prop.h ! 2bece3d938ad12f476821ab98b81e075 gcc/ipa-pure-const.c ed3e44c3b30c7779482bbfea44bdcb50 gcc/ipa-ref.c 3e0811c1242738a09d66c6f45ab63f3b gcc/ipa-ref.h e4f1fc580cbcf4301b63943aaee54000 gcc/ipa-reference.c --- 5111,5119 ---- 392ee5a0d5c11824308f605d5574f008 gcc/ipa-predicate.c 6d30cf0cfd4ac42f0c7e55390f21a224 gcc/ipa-predicate.h 02f6a5bbd992c4e5fb4a8f9b471ff1c2 gcc/ipa-profile.c ! d3fc12f817b5ab2bb48ed9fa522985dd gcc/ipa-prop.c c76998fde8e1e02e5630b7803369d25e gcc/ipa-prop.h ! cd79cd94ae28f44be1b6d83f2fbf123e gcc/ipa-pure-const.c ed3e44c3b30c7779482bbfea44bdcb50 gcc/ipa-ref.c 3e0811c1242738a09d66c6f45ab63f3b gcc/ipa-ref.h e4f1fc580cbcf4301b63943aaee54000 gcc/ipa-reference.c *************** ab1746426a64e774e8d6a14996bcf831 gcc/ir *** 5124,5133 **** 7f0b3d4f28c7f425f923ae90c05491cf gcc/ira-emit.c 7efef313f4693ce6537940ab2310c94f gcc/ira-int.h f99b3f41d9f867a42836ea77d67dd901 gcc/ira-lives.c ! 887b2a08a3c2f1e8bdfafff3cfa9a647 gcc/ira.c a9d565530cf1514d9b397a45fc03cfac gcc/ira.h a48f2108e340e17830e681a3f37bcc9c gcc/is-a.h ! 18b60f79c62b61fa40c6a1a9372d086d gcc/jit/ChangeLog 6071bdf04fb356c5ac99a99ec00c9a12 gcc/jit/ChangeLog.jit 94ae6c9e47796f7471226d32f12068da gcc/jit/Make-lang.in fd0d76b6467c987f813d430a35d4760a gcc/jit/TODO.rst --- 5130,5139 ---- 7f0b3d4f28c7f425f923ae90c05491cf gcc/ira-emit.c 7efef313f4693ce6537940ab2310c94f gcc/ira-int.h f99b3f41d9f867a42836ea77d67dd901 gcc/ira-lives.c ! ead983238069e0ca9c67d4081dfde792 gcc/ira.c a9d565530cf1514d9b397a45fc03cfac gcc/ira.h a48f2108e340e17830e681a3f37bcc9c gcc/is-a.h ! f2abbb320ed7a62cfef5c4c7df21ccb3 gcc/jit/ChangeLog 6071bdf04fb356c5ac99a99ec00c9a12 gcc/jit/ChangeLog.jit 94ae6c9e47796f7471226d32f12068da gcc/jit/Make-lang.in fd0d76b6467c987f813d430a35d4760a gcc/jit/TODO.rst *************** fce9c00d6b7085e4e7bb1194f69b2beb gcc/li *** 5223,5236 **** f53331e9f2fcea566bc74708ebbcf3c8 gcc/loop-doloop.c 71452a012bc0c2080ac4ace5a71fa156 gcc/loop-init.c f1de8935201298bf17886aaa387f8186 gcc/loop-invariant.c ! 594d05ef8872b15d948b0fa80f449450 gcc/loop-iv.c ! 996dfe136c99e00b3194b032df057387 gcc/loop-unroll.c d7a0d6904a47108de988a265c07d63bf gcc/loop-unroll.h 5f7fe7891f88cff51b004f833960b264 gcc/lower-subreg.c c8298ce3bbb3f4f5bb1332dd1de09cce gcc/lower-subreg.h 4658afd5f0ea375fb8263ea039459c23 gcc/lra-assigns.c 6f6fd77e8d6a80dd8d1401aa4aedfdb8 gcc/lra-coalesce.c ! 4d56b66f1662240a7878f7ff7e343660 gcc/lra-constraints.c 8c74af79fba26085a09ab8d0d22c84ad gcc/lra-eliminations.c 51b3b7475fd0363a1b023171975ecee3 gcc/lra-int.h b0ac46a1505ca96454945e8c5970d70d gcc/lra-lives.c --- 5229,5242 ---- f53331e9f2fcea566bc74708ebbcf3c8 gcc/loop-doloop.c 71452a012bc0c2080ac4ace5a71fa156 gcc/loop-init.c f1de8935201298bf17886aaa387f8186 gcc/loop-invariant.c ! 979f0951ba48b8171183265e099265ee gcc/loop-iv.c ! 95551f20306b1a0e7c05bd34ee41d5ab gcc/loop-unroll.c d7a0d6904a47108de988a265c07d63bf gcc/loop-unroll.h 5f7fe7891f88cff51b004f833960b264 gcc/lower-subreg.c c8298ce3bbb3f4f5bb1332dd1de09cce gcc/lower-subreg.h 4658afd5f0ea375fb8263ea039459c23 gcc/lra-assigns.c 6f6fd77e8d6a80dd8d1401aa4aedfdb8 gcc/lra-coalesce.c ! 5c2b5c9873050b1a9109656cf6995281 gcc/lra-constraints.c 8c74af79fba26085a09ab8d0d22c84ad gcc/lra-eliminations.c 51b3b7475fd0363a1b023171975ecee3 gcc/lra-int.h b0ac46a1505ca96454945e8c5970d70d gcc/lra-lives.c *************** de3e336a5ae91ba1187a67f96cb1c8d8 gcc/lt *** 5245,5256 **** e3444504a7d7dd430026a817ab64e425 gcc/lto-section-in.c 51590d4e0f13ef88377437a8f774c3b2 gcc/lto-section-names.h e86ce5e5d57f90d296240495fab89e22 gcc/lto-section-out.c ! 040e0076e9dd5a136396bc9812b70e42 gcc/lto-streamer-in.c ! de37ebc5c308749d9807125f1cab82ea gcc/lto-streamer-out.c c5ada85e0bfb88cbdd6343e3685fdf4f gcc/lto-streamer.c ! a86fab7327d4612bd570f0f2ac4b0684 gcc/lto-streamer.h ! 79a6e7fc412fba9ef91b5a97c6517cdf gcc/lto-wrapper.c ! b2c64e0b7e72e19cc4b511c57a13afe9 gcc/lto/ChangeLog c100ca118b97aa3676e0ae80be4287fe gcc/lto/Make-lang.in 2fcf46751e702c8806c469fdd3584f2c gcc/lto/common.c a0f65246494606de47d9399031438ab2 gcc/lto/common.h --- 5251,5262 ---- e3444504a7d7dd430026a817ab64e425 gcc/lto-section-in.c 51590d4e0f13ef88377437a8f774c3b2 gcc/lto-section-names.h e86ce5e5d57f90d296240495fab89e22 gcc/lto-section-out.c ! c4054a207bfbccb59723f13558442d97 gcc/lto-streamer-in.c ! 3efcbeae4ec8654f91d5aba15e5409f6 gcc/lto-streamer-out.c c5ada85e0bfb88cbdd6343e3685fdf4f gcc/lto-streamer.c ! 678922399688257074a113f07297615b gcc/lto-streamer.h ! 2abda7b2fb67033bbd0200ab86f6ae6b gcc/lto-wrapper.c ! 889ecd71fe5b1f52c26579b7e1ef1596 gcc/lto/ChangeLog c100ca118b97aa3676e0ae80be4287fe gcc/lto/Make-lang.in 2fcf46751e702c8806c469fdd3584f2c gcc/lto/common.c a0f65246494606de47d9399031438ab2 gcc/lto/common.h *************** f1ccf9f08c43ecc0fe76fb502a1a2615 gcc/lt *** 5259,5265 **** 5456839d016211e9dbf3cede58f87a81 gcc/lto/lang.opt be03e1dd9392839315e0c578a8aa4496 gcc/lto/lto-lang.c e706590c2974472759c9d179f4448d6d gcc/lto/lto-object.c ! db809f423fbad050d6f30ddcb160394f gcc/lto/lto-partition.c 77cbebb668a50387e2410ed330e671c5 gcc/lto/lto-partition.h 148377487a55acaf672fd90af9a3cd53 gcc/lto/lto-symtab.c 55924d14fc01a82880c00ffb878443ca gcc/lto/lto-symtab.h --- 5265,5271 ---- 5456839d016211e9dbf3cede58f87a81 gcc/lto/lang.opt be03e1dd9392839315e0c578a8aa4496 gcc/lto/lto-lang.c e706590c2974472759c9d179f4448d6d gcc/lto/lto-object.c ! 6c7ca85c0cf12b44d34ee7b5b7edd602 gcc/lto/lto-partition.c 77cbebb668a50387e2410ed330e671c5 gcc/lto/lto-partition.h 148377487a55acaf672fd90af9a3cd53 gcc/lto/lto-symtab.c 55924d14fc01a82880c00ffb878443ca gcc/lto/lto-symtab.h *************** cc4aef5b0462b090503a068fdd92e25b gcc/lt *** 5269,5275 **** de5fcb6d56fc59c226e5c30242f86e7f gcc/machmode.def 425619ccbc843f2a48dc8b559fcf7cab gcc/machmode.h acf0ce479337b4f1e009a9d329581511 gcc/main.c ! 3ebabbb395a46e422f854e155383efbd gcc/match.pd 0c1a6785da8f95da222414a0e2caf187 gcc/mcf.c 456aa4d0ab10d4a066ec39f7dde4bd0b gcc/mem-stats-traits.h 09762f57bfd2d7653084bacf22695c8d gcc/mem-stats.h --- 5275,5281 ---- de5fcb6d56fc59c226e5c30242f86e7f gcc/machmode.def 425619ccbc843f2a48dc8b559fcf7cab gcc/machmode.h acf0ce479337b4f1e009a9d329581511 gcc/main.c ! 5d630f3414360a135d8c058ae7dffd5f gcc/match.pd 0c1a6785da8f95da222414a0e2caf187 gcc/mcf.c 456aa4d0ab10d4a066ec39f7dde4bd0b gcc/mem-stats-traits.h 09762f57bfd2d7653084bacf22695c8d gcc/mem-stats.h *************** acf0ce479337b4f1e009a9d329581511 gcc/ma *** 5279,5292 **** 7c3b33908cab20d9621bab8a1c3d35b0 gcc/mkconfig.sh ee39e45872ee082b56e91223b89b8df8 gcc/mode-classes.def fcc116f5ff9f3d1a3294a3c82a165f6e gcc/mode-switching.c ! a4bfa8b17c0f795c1cf22b01a9480924 gcc/modulo-sched.c ! 44b936defcd6ba38fd4bf79ddb2c8d76 gcc/multiple_target.c ! cc1c8960699076893351d9bbb42bef5f gcc/objc/ChangeLog 35e45bc127ee449a9796f843be9c5f7b gcc/objc/Make-lang.in ! 9d4a1e66a211fddc1a81b04d8a787ceb gcc/objc/config-lang.in 63f143bcb1007a2074d0256cac38800f gcc/objc/lang-specs.h ! 7dbaa931cf40fe184bb41cf5762bdf8e gcc/objc/objc-act.c ! 5902618f49981dbdded08672deb40f3a gcc/objc/objc-act.h 340b2d017a7f9d76238fa6b01fc6f477 gcc/objc/objc-encoding.c 8b530eec962e5197a50cffbf61f0a691 gcc/objc/objc-encoding.h 1a5cfc3f9653866828ea5cc9e76bd5b0 gcc/objc/objc-gnu-runtime-abi-01.c --- 5285,5298 ---- 7c3b33908cab20d9621bab8a1c3d35b0 gcc/mkconfig.sh ee39e45872ee082b56e91223b89b8df8 gcc/mode-classes.def fcc116f5ff9f3d1a3294a3c82a165f6e gcc/mode-switching.c ! 350b38960ead90af06f6befef490840a gcc/modulo-sched.c ! 1d6132cb799c55189c5174dcafc74a7e gcc/multiple_target.c ! fba7da700ff13fc9d72ce0d0f091abb5 gcc/objc/ChangeLog 35e45bc127ee449a9796f843be9c5f7b gcc/objc/Make-lang.in ! e202532d41fa49871e2acada39301c9d gcc/objc/config-lang.in 63f143bcb1007a2074d0256cac38800f gcc/objc/lang-specs.h ! 47bbee4b9282844175a06d3747815bc6 gcc/objc/objc-act.c ! ca1315d01ecc8183eae873c45bf88068 gcc/objc/objc-act.h 340b2d017a7f9d76238fa6b01fc6f477 gcc/objc/objc-encoding.c 8b530eec962e5197a50cffbf61f0a691 gcc/objc/objc-encoding.h 1a5cfc3f9653866828ea5cc9e76bd5b0 gcc/objc/objc-gnu-runtime-abi-01.c *************** fc6f6e92841d9985d9bb7c3ce823f02e gcc/ob *** 5300,5308 **** 3e557d003008fa294daa574c357160de gcc/objc/objc-runtime-shared-support.c afc5ae9ef4254422edd7ffcfe7a26082 gcc/objc/objc-runtime-shared-support.h 28429bd18002a297a27bcf03272c9840 gcc/objc/objc-tree.def ! a7129916a75ad4dff44395788006d905 gcc/objcp/ChangeLog 65f07f31679d06fe762d7467b59b187b gcc/objcp/Make-lang.in ! 3f99dfd7cececb63c5e5a737e4666c44 gcc/objcp/config-lang.in 6602972a151675c8ad48c315b019646b gcc/objcp/lang-specs.h 15ef21b7b185a24d6a73e698cd2e7bd1 gcc/objcp/objcp-decl.c 39d36c314f11b3244daab01d5b2398c5 gcc/objcp/objcp-decl.h --- 5306,5314 ---- 3e557d003008fa294daa574c357160de gcc/objc/objc-runtime-shared-support.c afc5ae9ef4254422edd7ffcfe7a26082 gcc/objc/objc-runtime-shared-support.h 28429bd18002a297a27bcf03272c9840 gcc/objc/objc-tree.def ! a813f167b3d89bbcc40572e9cc81490e gcc/objcp/ChangeLog 65f07f31679d06fe762d7467b59b187b gcc/objcp/Make-lang.in ! c61fc5781b34a165ff929b0a5b59883e gcc/objcp/config-lang.in 6602972a151675c8ad48c315b019646b gcc/objcp/lang-specs.h 15ef21b7b185a24d6a73e698cd2e7bd1 gcc/objcp/objcp-decl.c 39d36c314f11b3244daab01d5b2398c5 gcc/objcp/objcp-decl.h *************** faabc3808f86fc151774a3e8af083a10 gcc/om *** 5314,5324 **** c4d1e61b2f77ded40154ce164f5c3d76 gcc/omp-general.h a1e554aec189439ebffbec0d24b1d3ef gcc/omp-grid.c a5a2fc0324364bf0a63e19a0d1e1ead2 gcc/omp-grid.h ! 5c0c62b9af15a8e7d14148f12f68e88d gcc/omp-low.c 3cf200229ea30af09f6e72b183998f96 gcc/omp-low.h a4f6b56a23c5dd4373a0cf327c2b64b6 gcc/omp-offload.c 6c96501b610155a6b54ac03b9f066fdd gcc/omp-offload.h ! c5963d654edaa79a06edc609162ac96a gcc/omp-simd-clone.c 402d090e0c04fcf94d2a4933c7e86443 gcc/omp-simd-clone.h 5d58b35b91749d460b1aa2ab50aeb899 gcc/opt-functions.awk 7ccc756c6d6cf3084ffc6702de74bee0 gcc/opt-gather.awk --- 5320,5330 ---- c4d1e61b2f77ded40154ce164f5c3d76 gcc/omp-general.h a1e554aec189439ebffbec0d24b1d3ef gcc/omp-grid.c a5a2fc0324364bf0a63e19a0d1e1ead2 gcc/omp-grid.h ! 16ec14de6842dbc6904a3d5746213dc6 gcc/omp-low.c 3cf200229ea30af09f6e72b183998f96 gcc/omp-low.h a4f6b56a23c5dd4373a0cf327c2b64b6 gcc/omp-offload.c 6c96501b610155a6b54ac03b9f066fdd gcc/omp-offload.h ! 59e8d28771e27aeba58a98e0f5acfb4c gcc/omp-simd-clone.c 402d090e0c04fcf94d2a4933c7e86443 gcc/omp-simd-clone.h 5d58b35b91749d460b1aa2ab50aeb899 gcc/opt-functions.awk 7ccc756c6d6cf3084ffc6702de74bee0 gcc/opt-gather.awk *************** e9793114e7bf06a153982a7215b2fa4e gcc/op *** 5330,5360 **** 6669b55a2cd078e949e41b684ece33c2 gcc/optabs-query.h c55ce782ec7a1ce8683de08d8321d06e gcc/optabs-tree.c e4c9576e05a2a68e556aab1a537e3806 gcc/optabs-tree.h ! 5ac438f7cb5b788c482347ac3f3cb2da gcc/optabs.c d05ea873de00ee1f0a941b26381b1297 gcc/optabs.def e2787dba22a13e294c76baa24b9c20dd gcc/optabs.h a3e0f5f8aaa108bbb1dd37afa9125c6d gcc/optc-gen.awk 51e1860191418b86842c5ce5052126d1 gcc/optc-save-gen.awk c119e34daa9ed1b4f4ff7298da83f45b gcc/opth-gen.awk ! 0e53a8c9fad83722888ac7fdc0af2183 gcc/opts-common.c f1cd5c18dbc48acc800192603e7f2ec2 gcc/opts-diagnostic.h ! 23628cbc354b07114b6b8b3bec44936a gcc/opts-global.c ! f27a2c23d063015f111a70b89088877f gcc/opts.c af1e0965e0a0ff84ae52b775504e5d96 gcc/opts.h ! a513d08e439b3b1d1508f787e52a557c gcc/output.h 071b2537e274f7db48460f504bb23634 gcc/params-enum.h 39a1f9519ee6b037a25ab78d5d2ddcda gcc/params-list.h 259fb5636295fd6991544437ccfb8ece gcc/params-options.h e28346c3e80a345ccd93b5a8fa59fdcf gcc/params.c ! bce04177cb1b2eb4a55347fe8877f865 gcc/params.def ecc8347dea37e5c9153c4b4afc6ade77 gcc/params.h e0fc4322b29c4ade9e39c9f9ed68ba37 gcc/pass_manager.h ! b93538b45a3bd1f61002e3ad209328a3 gcc/passes.c eaa38d986ba4b10a32a67386d1c4656d gcc/passes.def 35b9710c0e7f0039335811ee7db12931 gcc/plugin.c a7891cb08b863d20f462a50157af100b gcc/plugin.def ddc3805db022265eeec39c0a7c053023 gcc/plugin.h ! aff12e87d9464778809a3b46e26db4a3 gcc/po/ChangeLog 266bd63edb966ab311a785e397e940e3 gcc/po/EXCLUDES 0dc4f48e1351e898a189adda6e6ea5b7 gcc/po/be.gmo 4cf692379b6a7bfec8b975e1aeb00bdb gcc/po/be.po --- 5336,5366 ---- 6669b55a2cd078e949e41b684ece33c2 gcc/optabs-query.h c55ce782ec7a1ce8683de08d8321d06e gcc/optabs-tree.c e4c9576e05a2a68e556aab1a537e3806 gcc/optabs-tree.h ! 66420ac5fe54f6ab299929f826e755f9 gcc/optabs.c d05ea873de00ee1f0a941b26381b1297 gcc/optabs.def e2787dba22a13e294c76baa24b9c20dd gcc/optabs.h a3e0f5f8aaa108bbb1dd37afa9125c6d gcc/optc-gen.awk 51e1860191418b86842c5ce5052126d1 gcc/optc-save-gen.awk c119e34daa9ed1b4f4ff7298da83f45b gcc/opth-gen.awk ! b6a5832210d7992f7a669a10838ff912 gcc/opts-common.c f1cd5c18dbc48acc800192603e7f2ec2 gcc/opts-diagnostic.h ! b186fce39920ce1c4ae764a38c4784b2 gcc/opts-global.c ! f490c3fb1c50a0c941a8840a85dceabb gcc/opts.c af1e0965e0a0ff84ae52b775504e5d96 gcc/opts.h ! 3791b7a6bf7f86d9211cce2d654b1b5c gcc/output.h 071b2537e274f7db48460f504bb23634 gcc/params-enum.h 39a1f9519ee6b037a25ab78d5d2ddcda gcc/params-list.h 259fb5636295fd6991544437ccfb8ece gcc/params-options.h e28346c3e80a345ccd93b5a8fa59fdcf gcc/params.c ! 81daae8501be658ff4048de58f79c603 gcc/params.def ecc8347dea37e5c9153c4b4afc6ade77 gcc/params.h e0fc4322b29c4ade9e39c9f9ed68ba37 gcc/pass_manager.h ! 21b852acc74eb6083d236b51afd0c55f gcc/passes.c eaa38d986ba4b10a32a67386d1c4656d gcc/passes.def 35b9710c0e7f0039335811ee7db12931 gcc/plugin.c a7891cb08b863d20f462a50157af100b gcc/plugin.def ddc3805db022265eeec39c0a7c053023 gcc/plugin.h ! 0a03a776d89747db2b1a701a2636f5bc gcc/po/ChangeLog 266bd63edb966ab311a785e397e940e3 gcc/po/EXCLUDES 0dc4f48e1351e898a189adda6e6ea5b7 gcc/po/be.gmo 4cf692379b6a7bfec8b975e1aeb00bdb gcc/po/be.po *************** da82d3f44959a4b6c3db6e2bdd8970d8 gcc/po *** 5399,5406 **** f0ed183fc5c3468fceba81e4f18e6066 gcc/poly-int-types.h 580d3c0c17366e11266f68310046cbe2 gcc/poly-int.h 900b7438df18a900152e2f6060285c39 gcc/postreload-gcse.c ! b80ac229bfa91ea56d105767788e51fb gcc/postreload.c ! 6ec724d52f167b182dd487128f077999 gcc/predict.c c818d54a2aa1ed0ff7fb93285b171e78 gcc/predict.def d0af584e90882df1a6e78b4abd4f59b1 gcc/predict.h dc1824edf0b28ea95ecc1f084e02c589 gcc/prefix.c --- 5405,5412 ---- f0ed183fc5c3468fceba81e4f18e6066 gcc/poly-int-types.h 580d3c0c17366e11266f68310046cbe2 gcc/poly-int.h 900b7438df18a900152e2f6060285c39 gcc/postreload-gcse.c ! 48c647844d6447d3229097e930167759 gcc/postreload.c ! f60fd7a451be5176942a49e4af69b839 gcc/predict.c c818d54a2aa1ed0ff7fb93285b171e78 gcc/predict.def d0af584e90882df1a6e78b4abd4f59b1 gcc/predict.h dc1824edf0b28ea95ecc1f084e02c589 gcc/prefix.c *************** e75f10d09d503895ec11beb3f92f6290 gcc/re *** 5425,5431 **** c4aa9a13ee42f1eb90a5f6f5e5b93a69 gcc/real.h a78d12d3a543b348277164842f19f8d0 gcc/realmpfr.c 71528fd9abd82151dd525f1bec7fc4ed gcc/realmpfr.h ! 90c4076b39019ee6e37fabd2e190d036 gcc/recog.c 8e0f463959ef781c3db86b7fd9ff9dcb gcc/recog.h e76e517157e0e62f336b3a58aaed3e67 gcc/ree.c 9c8ebe3c1dff17cce37518e7827ebe9b gcc/reg-notes.def --- 5431,5437 ---- c4aa9a13ee42f1eb90a5f6f5e5b93a69 gcc/real.h a78d12d3a543b348277164842f19f8d0 gcc/realmpfr.c 71528fd9abd82151dd525f1bec7fc4ed gcc/realmpfr.h ! b54f43912e2fcd54450168faa2af9f31 gcc/recog.c 8e0f463959ef781c3db86b7fd9ff9dcb gcc/recog.h e76e517157e0e62f336b3a58aaed3e67 gcc/ree.c 9c8ebe3c1dff17cce37518e7827ebe9b gcc/reg-notes.def *************** a191718c1267681e36c4a2963ad82a8a gcc/re *** 5442,5448 **** f31aa3e641466312a43761513e5fc05a gcc/reload.h bc68c04532350167e2c21e732c5be4a7 gcc/reload1.c 55bd3c3713f007122039c2b3256f4900 gcc/reorg.c ! 50d247ea6e7417dce9aeba6f99c903e4 gcc/resource.c 6a5cecc7cf91a44666555a3080e9905f gcc/resource.h 6e255900b6beaf03c37e2f1df202e689 gcc/rtl-chkp.c c7cdece4d7dd199ec5faa811199c4422 gcc/rtl-chkp.h --- 5448,5454 ---- f31aa3e641466312a43761513e5fc05a gcc/reload.h bc68c04532350167e2c21e732c5be4a7 gcc/reload1.c 55bd3c3713f007122039c2b3256f4900 gcc/reorg.c ! b4e225d082fc691b1e097985716abe2a gcc/resource.c 6a5cecc7cf91a44666555a3080e9905f gcc/resource.h 6e255900b6beaf03c37e2f1df202e689 gcc/rtl-chkp.c c7cdece4d7dd199ec5faa811199c4422 gcc/rtl-chkp.h *************** c7cdece4d7dd199ec5faa811199c4422 gcc/rt *** 5450,5459 **** 119cbe9ea65ecaf5bcfa3b3d96b87ec8 gcc/rtl-error.h df9d5c768b58d0b5efc362d2bd2de6df gcc/rtl-iter.h 681d93b19f2a0a0ab1917d9b3d76d8e6 gcc/rtl-tests.c ! 50bf08f78ca518f3cd93b3d8c03ad9cc gcc/rtl.c 85a88e38668f579e5486f97b80527cca gcc/rtl.def ! 840e0b4e2efd040571f0e298ab0dcae3 gcc/rtl.h ! 29509db50cb77f10b5e8286ef135a495 gcc/rtlanal.c e5a0044d503b95956e5aaaa6c1458430 gcc/rtlhash.c c3c64677cacd32a881cff6a6fa3e7af3 gcc/rtlhash.h 228e8f18a4ac8458ad4b2f80198cef6a gcc/rtlhooks-def.h --- 5456,5465 ---- 119cbe9ea65ecaf5bcfa3b3d96b87ec8 gcc/rtl-error.h df9d5c768b58d0b5efc362d2bd2de6df gcc/rtl-iter.h 681d93b19f2a0a0ab1917d9b3d76d8e6 gcc/rtl-tests.c ! 8eb3612dfb818bc6a3c5a0b894d16d2a gcc/rtl.c 85a88e38668f579e5486f97b80527cca gcc/rtl.def ! 2a80c5a0ebe4bb1a93854d7bc4939cb3 gcc/rtl.h ! ddd1510fcb4ea9692d7a87bf3aa87484 gcc/rtlanal.c e5a0044d503b95956e5aaaa6c1458430 gcc/rtlhash.c c3c64677cacd32a881cff6a6fa3e7af3 gcc/rtlhash.h 228e8f18a4ac8458ad4b2f80198cef6a gcc/rtlhooks-def.h *************** c77c3a3c36441362cbe2fb3b030cdf53 gcc/se *** 5489,5495 **** a24cc2b2df035a5b1c0761a7b92c43db gcc/shrink-wrap.c 11cfe9516e14a93933c61823dc6202c7 gcc/shrink-wrap.h c6328327f9a84bf940ef73f8b27cff45 gcc/signop.h ! d3339c339f9af158401d2d969e28a48c gcc/simplify-rtx.c cc044483cfd26a2ea67b8606a160de41 gcc/sparseset.c e72909468e44c4dcea74f0dafd02a899 gcc/sparseset.h ea490e9542a0b4161f740096538a6742 gcc/spellcheck-tree.c --- 5495,5501 ---- a24cc2b2df035a5b1c0761a7b92c43db gcc/shrink-wrap.c 11cfe9516e14a93933c61823dc6202c7 gcc/shrink-wrap.h c6328327f9a84bf940ef73f8b27cff45 gcc/signop.h ! 2163a5cc9e487ae37b05065ca15d1c07 gcc/simplify-rtx.c cc044483cfd26a2ea67b8606a160de41 gcc/sparseset.c e72909468e44c4dcea74f0dafd02a899 gcc/sparseset.h ea490e9542a0b4161f740096538a6742 gcc/spellcheck-tree.c *************** c90803df9587aeb074b01235ac6774f2 gcc/st *** 5516,5522 **** 1a291d870b5080a3186aa7e93fb0f2d7 gcc/substring-locations.c 3b61b5fb283dd13ef1a117f6f374b2f3 gcc/substring-locations.h 32d525220375e660512fe10b0c322520 gcc/symbol-summary.h ! 56f012042eecefc448fa123c97e0f014 gcc/symtab.c 721707584123181d137da368325233b4 gcc/sync-builtins.def afb6577e6d5a55183d04a9bc6548b8f2 gcc/system.h 1f36a64d8dcab5629094e37694070cfc gcc/target-def.h --- 5522,5528 ---- 1a291d870b5080a3186aa7e93fb0f2d7 gcc/substring-locations.c 3b61b5fb283dd13ef1a117f6f374b2f3 gcc/substring-locations.h 32d525220375e660512fe10b0c322520 gcc/symbol-summary.h ! ee6be13719aef0255b92f6b43a040e00 gcc/symtab.c 721707584123181d137da368325233b4 gcc/sync-builtins.def afb6577e6d5a55183d04a9bc6548b8f2 gcc/system.h 1f36a64d8dcab5629094e37694070cfc gcc/target-def.h *************** b3e64547e95a1dd3c4adaef33cc7e53c gcc/ta *** 5529,5535 **** 775b4e1193b7fef4fc3a57eb9c80a4f7 gcc/targhooks.c fe1fa4a32e1e589e64a4e99002d678d9 gcc/targhooks.h f39fcaa8197187283ccfed40107b426d gcc/testsuite/.gitattributes ! afcdd66f326bf85f974e21ea23bd8bf6 gcc/testsuite/ChangeLog 862f04afbd87da2cc6bc432c3f28430f gcc/testsuite/ChangeLog-1993-2007 029a5d8dacd25eb5d4711452ac448e5b gcc/testsuite/ChangeLog-2008 13ac28c41d51b66b4ec40dba6bd50f39 gcc/testsuite/ChangeLog-2009 --- 5535,5541 ---- 775b4e1193b7fef4fc3a57eb9c80a4f7 gcc/targhooks.c fe1fa4a32e1e589e64a4e99002d678d9 gcc/targhooks.h f39fcaa8197187283ccfed40107b426d gcc/testsuite/.gitattributes ! 9d3757e9d2d7668b09890040ffc4c621 gcc/testsuite/ChangeLog 862f04afbd87da2cc6bc432c3f28430f gcc/testsuite/ChangeLog-1993-2007 029a5d8dacd25eb5d4711452ac448e5b gcc/testsuite/ChangeLog-2008 13ac28c41d51b66b4ec40dba6bd50f39 gcc/testsuite/ChangeLog-2009 *************** e1214c78ebce01448d71917e783e66f3 gcc/te *** 8475,8480 **** --- 8481,8487 ---- ef95b2391ac4310fde10257ba4f7463b gcc/testsuite/c-c++-common/builtin-shuffle-1.c 3a349fcc5db93dcaf44a93c32735f04a gcc/testsuite/c-c++-common/builtin_location.c 2341b1258f7e71f5aeb2fc1ac6a17b27 gcc/testsuite/c-c++-common/builtins.c + a15893a996b14e9ab79c08a9d37157ee gcc/testsuite/c-c++-common/cold-1.c fc20dcb635dd1e825303cc47593a9155 gcc/testsuite/c-c++-common/conflict-markers-1.c c2ffea9f8039ad1708c1c073f6b3b25a gcc/testsuite/c-c++-common/conflict-markers-10.c c83e3d1d9dca930d44de5fee29a51bbb gcc/testsuite/c-c++-common/conflict-markers-11.c *************** c85025f0def783f70f9bb6a4ea9a23f3 gcc/te *** 8507,8512 **** --- 8514,8521 ---- 5e5bc603cb54f22e303862dd47211ded gcc/testsuite/c-c++-common/cpp/pr63831-1.c a72a693524249dca84528ebc132082b5 gcc/testsuite/c-c++-common/cpp/pr63831-2.c fc6312863e2a09e397690651369f617d gcc/testsuite/c-c++-common/cpp/pr65238-1.c + df43df705a8397d72a82fe6d91e8ec64 gcc/testsuite/c-c++-common/cpp/pr92296-1.c + dde08a560ecf3f1c0944037da04f2048 gcc/testsuite/c-c++-common/cpp/pr92296-2.c 791d43cbbb9115404405c22be44e4ae7 gcc/testsuite/c-c++-common/cpp/ucnid-2011-1.c 0f93514d0ad79c03edfd672fb354e619 gcc/testsuite/c-c++-common/cpp/va-opt-2.c d4400c02e16c9ce8399bebed26d20e37 gcc/testsuite/c-c++-common/cpp/va-opt-3.c *************** f518663bb6d3fa214257a2306172d690 gcc/te *** 8848,8853 **** --- 8857,8868 ---- 5c98b968b8b8fa3dcda75ece1f760d12 gcc/testsuite/c-c++-common/gomp/pr84341.c fb9e5ede5d43a206c572fa77be49ff02 gcc/testsuite/c-c++-common/gomp/pr85696.c 62a0e309912895235f385cc84af32654 gcc/testsuite/c-c++-common/gomp/pr86025.c + 0e989c3d25d634c553662814c966233e gcc/testsuite/c-c++-common/gomp/pr88588.c + 61ca8b866c491c9064a5bbfddd90f421 gcc/testsuite/c-c++-common/gomp/pr90954.c + 819ef14711cd571111df09cc81f8d206 gcc/testsuite/c-c++-common/gomp/pr91401-1.c + b5b3167776d67985ba91daaee41243de gcc/testsuite/c-c++-common/gomp/pr91401-2.c + bfdfa56ffe2ff48534494fc41ae0f4d1 gcc/testsuite/c-c++-common/gomp/pr93555-1.c + b31fd83ffcebdfef84e1d323888e9a76 gcc/testsuite/c-c++-common/gomp/pr93555-2.c 5d522e2f1f7455bc45f6c1f230d5a5b0 gcc/testsuite/c-c++-common/gomp/priority-1.c 1dc7bbbafb91e179ac43fa3959ab125f gcc/testsuite/c-c++-common/gomp/reduction-1.c 8af1ef16f27f56d5d687ed958b671d57 gcc/testsuite/c-c++-common/gomp/schedule-1.c *************** d8239263162d96344888c161406c0381 gcc/te *** 8926,8931 **** --- 8941,8947 ---- 19c5c8c6c4a09bd9d296a28e8078a301 gcc/testsuite/c-c++-common/pr52177.c e9ab7e8194d7254751245044f83dc8be gcc/testsuite/c-c++-common/pr52181.c 9cecc063b60fd542510c334a50694aed gcc/testsuite/c-c++-common/pr53037-5.c + 4908322fe1a077cb05a80ba1874fb60b gcc/testsuite/c-c++-common/pr53633-2.c 2fca24cd74390d29df3e15f43b52216b gcc/testsuite/c-c++-common/pr53633.c 562b5a3674683ddc3dcd8273868470ff gcc/testsuite/c-c++-common/pr53874.c 6b9b24f3111a851cf90729b67b060a3c gcc/testsuite/c-c++-common/pr54486.c *************** bd3f72430a07d0b5e231d78def646e60 gcc/te *** 9028,9033 **** --- 9044,9052 ---- f3cef6e9a9aa2cd42daabd8901f27dcd gcc/testsuite/c-c++-common/pr85156.c ecc72a9bb2a70f28d6c832a7f8f58ed5 gcc/testsuite/c-c++-common/pr85822.c 163480c4288d9e1dda1b280af14b74b3 gcc/testsuite/c-c++-common/pr86093.c + 3631e7a853bf47afcc4f5db428d630ff gcc/testsuite/c-c++-common/pr89933.c + 39e1e4487b61521edeb410a0c9d9958b gcc/testsuite/c-c++-common/pr89946.c + 6b55a407d08d3d9c405be8cf45164944 gcc/testsuite/c-c++-common/pr90108.c b0ba836310044e7b419ef679f0b48d6f gcc/testsuite/c-c++-common/raw-string-1.c 554e7071d2525351de28445762633866 gcc/testsuite/c-c++-common/raw-string-10.c fc54e7227094f307fa566b3a8cd0ba9a gcc/testsuite/c-c++-common/raw-string-11.c *************** fc07508abc561415843db1779595ba31 gcc/te *** 9445,9450 **** --- 9464,9471 ---- d57818e59897be634a5f9646a690ac2e gcc/testsuite/c-c++-common/unroll-3.c f509b765bb71e26ecb02da59033037fd gcc/testsuite/c-c++-common/unroll-4.c 1abb6f03aeb9905751f402a81480ea52 gcc/testsuite/c-c++-common/unroll-5.c + bf6f291b43d91e68fc592dd457aefbef gcc/testsuite/c-c++-common/unroll-6.c + 83b7f4e9838fd0371142d4f0554e9951 gcc/testsuite/c-c++-common/unroll-7.c 3edfb8e43acf0371b1e3540d91872172 gcc/testsuite/c-c++-common/va-arg-va-list-type.c a2f9e4a5e93a4fc852e7a5b3b175f349 gcc/testsuite/c-c++-common/vector-1.c d1da790bdc62173381a0a8e7a3f3e2eb gcc/testsuite/c-c++-common/vector-2.c *************** e0c61fc1ff04506222ad9ce3d489202f gcc/te *** 9808,9813 **** --- 9829,9835 ---- 46004f51a9fbd56fbbea9088e6a2d1af gcc/testsuite/g++.dg/asan/pr85081.C 58d155b02b38f916700022148c84d5f5 gcc/testsuite/g++.dg/asan/pr85774.C 76052a66ecc75316257825ff6b1b32d5 gcc/testsuite/g++.dg/asan/pr88901.C + 97920da6fda518a6cd947eb7202b69e4 gcc/testsuite/g++.dg/asan/pr90570.C 9c127ef1a489fa3066b519905bbcd4df gcc/testsuite/g++.dg/asan/sanitizer_pthread_wrappers.h ec57ce9e20b59de0ebec29f657a688f0 gcc/testsuite/g++.dg/asan/sanitizer_test_config.h 55a37a27a50226341bc745f47d1908c5 gcc/testsuite/g++.dg/asan/sanitizer_test_utils.h *************** d2d4ea16490b45388c168c416c6640d5 gcc/te *** 9825,9836 **** e20a12eb6455f420adb919299f6e8991 gcc/testsuite/g++.dg/asan/use-after-scope-types.h 01499301a7233f3e3e0bac80890e7dea gcc/testsuite/g++.dg/asm-qual-1.C 0a7cdd480ff9677cd742fad1ef91da3a gcc/testsuite/g++.dg/asm-qual-2.C ! 8ef2db95a1a60374ec61d3a016bf1c95 gcc/testsuite/g++.dg/asm-qual-3.C 3cd7eb41bad4a2b8a88bf2906f0ddb7c gcc/testsuite/g++.dg/bprob/bprob.exp 6683eda46cb30a95dcb3ae310aa86684 gcc/testsuite/g++.dg/bprob/g++-bprob-1.C 91292dc36de1287d9de59661dd0c8c78 gcc/testsuite/g++.dg/bprob/g++-bprob-2.C a3c9197457f42abb097a9b8dc03b0393 gcc/testsuite/g++.dg/cdce3.C ! b80fe63ebbdbc8044ea34bdb0d376eb1 gcc/testsuite/g++.dg/cet-notrack-1.C 5d6eb1269c8738b70f3d15b9a148001f gcc/testsuite/g++.dg/charset/asm1.c f9a431484c75dceb2b5776a2ec603670 gcc/testsuite/g++.dg/charset/asm2.c bd34927c7e8ef0637a91744aa30c8e22 gcc/testsuite/g++.dg/charset/asm3.c --- 9847,9858 ---- e20a12eb6455f420adb919299f6e8991 gcc/testsuite/g++.dg/asan/use-after-scope-types.h 01499301a7233f3e3e0bac80890e7dea gcc/testsuite/g++.dg/asm-qual-1.C 0a7cdd480ff9677cd742fad1ef91da3a gcc/testsuite/g++.dg/asm-qual-2.C ! f09dff4e126233e185c2284fca8e9cfa gcc/testsuite/g++.dg/asm-qual-3.C 3cd7eb41bad4a2b8a88bf2906f0ddb7c gcc/testsuite/g++.dg/bprob/bprob.exp 6683eda46cb30a95dcb3ae310aa86684 gcc/testsuite/g++.dg/bprob/g++-bprob-1.C 91292dc36de1287d9de59661dd0c8c78 gcc/testsuite/g++.dg/bprob/g++-bprob-2.C a3c9197457f42abb097a9b8dc03b0393 gcc/testsuite/g++.dg/cdce3.C ! 43fea12c8e1efaaa4f6ab8056b357122 gcc/testsuite/g++.dg/cet-notrack-1.C 5d6eb1269c8738b70f3d15b9a148001f gcc/testsuite/g++.dg/charset/asm1.c f9a431484c75dceb2b5776a2ec603670 gcc/testsuite/g++.dg/charset/asm2.c bd34927c7e8ef0637a91744aa30c8e22 gcc/testsuite/g++.dg/charset/asm3.c *************** e67744c794ffa3ff5cad89ff1d1cbd16 gcc/te *** 10079,10084 **** --- 10101,10107 ---- 22e77d6db2a565e80f4539983dc47671 gcc/testsuite/g++.dg/concepts/memfun.C 5b07f491b98af9f7044dccfcde3a858b gcc/testsuite/g++.dg/concepts/memfun2.C 0e303596d767a3e47f9da11e89365a40 gcc/testsuite/g++.dg/concepts/memtmpl1.C + 8167dac3599949519b5c414584b01961 gcc/testsuite/g++.dg/concepts/no-bool1.C ef647397c9fe4c3fa5a88ed55e787cc2 gcc/testsuite/g++.dg/concepts/partial-concept-id1.C fe6ec6b3b5d4d4ef2fe4ee1a988f0880 gcc/testsuite/g++.dg/concepts/partial-concept-id2.C 7b1941fe6794cf886a8cc1d0394ba431 gcc/testsuite/g++.dg/concepts/partial-spec.C *************** ff12be74ca1ae28c77d541ad1dc53873 gcc/te *** 10386,10392 **** 6b919a388a7f6ff57c7976486c409fb7 gcc/testsuite/g++.dg/cpp0x/alignas16.C f1354435b9e53f5c5d923994edebb49f gcc/testsuite/g++.dg/cpp0x/alignas2.C af0c02bf93d49e5385b61d3e59a21e28 gcc/testsuite/g++.dg/cpp0x/alignas3.C ! 931d9bc562ab99a0d8853329e5a2298b gcc/testsuite/g++.dg/cpp0x/alignas4.C 2490568ef637fae72e27c31a035040f2 gcc/testsuite/g++.dg/cpp0x/alignas5.C 98d93af53a0530bbccdcc33479419fbd gcc/testsuite/g++.dg/cpp0x/alignas6.C 28d7e98b1fb09b72287dd79211925768 gcc/testsuite/g++.dg/cpp0x/alignas7.C --- 10409,10415 ---- 6b919a388a7f6ff57c7976486c409fb7 gcc/testsuite/g++.dg/cpp0x/alignas16.C f1354435b9e53f5c5d923994edebb49f gcc/testsuite/g++.dg/cpp0x/alignas2.C af0c02bf93d49e5385b61d3e59a21e28 gcc/testsuite/g++.dg/cpp0x/alignas3.C ! 4e770e3d245d014c238b07e798e03b36 gcc/testsuite/g++.dg/cpp0x/alignas4.C 2490568ef637fae72e27c31a035040f2 gcc/testsuite/g++.dg/cpp0x/alignas5.C 98d93af53a0530bbccdcc33479419fbd gcc/testsuite/g++.dg/cpp0x/alignas6.C 28d7e98b1fb09b72287dd79211925768 gcc/testsuite/g++.dg/cpp0x/alignas7.C *************** a3fe89999694d5e28c05f50283b43674 gcc/te *** 10555,10560 **** --- 10578,10584 ---- 88d00e3c57ca7ad033af5159ca7736ff gcc/testsuite/g++.dg/cpp0x/constexpr-array17.C 8b3cdd4f7cd1165cdb6c78c54ac301a5 gcc/testsuite/g++.dg/cpp0x/constexpr-array18.C 687c6e77d4af3cd918c0ff421773a66c gcc/testsuite/g++.dg/cpp0x/constexpr-array2.C + 3ac9c1d9fb2c907fc817b194d0e9d585 gcc/testsuite/g++.dg/cpp0x/constexpr-array24.C 8b7c8e7c1b64cfa0626f7f2311c9fef5 gcc/testsuite/g++.dg/cpp0x/constexpr-array3.C 6451aa5bb5fa736dda3ebad1dc2e8336 gcc/testsuite/g++.dg/cpp0x/constexpr-array4.C 1d46f32449f9e0292d662928246ec784 gcc/testsuite/g++.dg/cpp0x/constexpr-array5.C *************** dd4700728489bec2565506d830e467d8 gcc/te *** 10769,10774 **** --- 10793,10799 ---- 6750ddb6d120c8e7368eaae5150e78c1 gcc/testsuite/g++.dg/cpp0x/constexpr-static10.C 7431d68cb7a29a352611ab8a7cdad67b gcc/testsuite/g++.dg/cpp0x/constexpr-static11.C 323e38ced3137a14df2f9f2f58e82249 gcc/testsuite/g++.dg/cpp0x/constexpr-static12.C + 411fb6dd9e470568da2b5ebae64434b1 gcc/testsuite/g++.dg/cpp0x/constexpr-static13.C 797b8689368a7682042cd629a45f6125 gcc/testsuite/g++.dg/cpp0x/constexpr-static2.C c007c5c7f6d811c5864f3f9c4f7da9a4 gcc/testsuite/g++.dg/cpp0x/constexpr-static3.C c75a35a6482a003b532401a29c58bf6e gcc/testsuite/g++.dg/cpp0x/constexpr-static4.C *************** a5f546aaf002e31dc77b29dbac735473 gcc/te *** 10859,10864 **** --- 10884,10890 ---- f1c16eae211724928eb3908ca78a9906 gcc/testsuite/g++.dg/cpp0x/decltype-incomplete1.C 9bbdff7e4aee14dd984dd68004151da7 gcc/testsuite/g++.dg/cpp0x/decltype-mem-initializer1.C 61ab3fbe660abdfcfb4275658c81e532 gcc/testsuite/g++.dg/cpp0x/decltype-refbug.C + d565f43de0d3d2b2d501eb8dd82bb1ca gcc/testsuite/g++.dg/cpp0x/decltype-tid1.C 346bf8f6597611bdb1098a12ad2eb4c7 gcc/testsuite/g++.dg/cpp0x/decltype1.C 0e5a3836bf22c03696252480b80064b6 gcc/testsuite/g++.dg/cpp0x/decltype10.C dab751c0d217002893d6d2cce32516a6 gcc/testsuite/g++.dg/cpp0x/decltype11.C *************** f05f6314bab056a03c548eb4c50f323a gcc/te *** 11023,11029 **** 6c52dc0b8feff7c3403eed172bec2ebd gcc/testsuite/g++.dg/cpp0x/enum21a.C 52d5ff8d8835de9029291b2e0be36123 gcc/testsuite/g++.dg/cpp0x/enum21b.C 7ff20adcaa2a7e7bc5390f2d01264d25 gcc/testsuite/g++.dg/cpp0x/enum22.C ! 1fce61041d5fe27ecb76803d5fe4e086 gcc/testsuite/g++.dg/cpp0x/enum23.C 6e20f71280665d553eb0b07726a3453d gcc/testsuite/g++.dg/cpp0x/enum24.C d69ddb30d1feb9e35bc7751f26929957 gcc/testsuite/g++.dg/cpp0x/enum25.C 43b0beab61ef041fe4a52745f4a7aff8 gcc/testsuite/g++.dg/cpp0x/enum26.C --- 11049,11055 ---- 6c52dc0b8feff7c3403eed172bec2ebd gcc/testsuite/g++.dg/cpp0x/enum21a.C 52d5ff8d8835de9029291b2e0be36123 gcc/testsuite/g++.dg/cpp0x/enum21b.C 7ff20adcaa2a7e7bc5390f2d01264d25 gcc/testsuite/g++.dg/cpp0x/enum22.C ! 5bb1acca72edaa4854976e419c1c6a64 gcc/testsuite/g++.dg/cpp0x/enum23.C 6e20f71280665d553eb0b07726a3453d gcc/testsuite/g++.dg/cpp0x/enum24.C d69ddb30d1feb9e35bc7751f26929957 gcc/testsuite/g++.dg/cpp0x/enum25.C 43b0beab61ef041fe4a52745f4a7aff8 gcc/testsuite/g++.dg/cpp0x/enum26.C *************** cd13bec4a277695c3f0d055601e86cec gcc/te *** 11039,11044 **** --- 11065,11072 ---- b1410081d8b18a483605fea34ded714b gcc/testsuite/g++.dg/cpp0x/enum35.C 948a96ff04f2a9966e35400fe5a0ae86 gcc/testsuite/g++.dg/cpp0x/enum36.C 9d78eeec0d8fa324ce972cdd1b925d06 gcc/testsuite/g++.dg/cpp0x/enum37.C + 0c1bd3a6f06a95634ee6e7e1c8cfcb43 gcc/testsuite/g++.dg/cpp0x/enum38.C + f520b3c677602a9f4bb925811947dd27 gcc/testsuite/g++.dg/cpp0x/enum39.C 4314a939d182c8ee315404a2d9cf3ec3 gcc/testsuite/g++.dg/cpp0x/enum4.C 771003df84c0886c950718b7f6d81033 gcc/testsuite/g++.dg/cpp0x/enum5.C 67ec15297186c0dc5b419618c460a2f2 gcc/testsuite/g++.dg/cpp0x/enum6.C *************** be032bb4361dd11f064d960f788b56ae gcc/te *** 11074,11083 **** --- 11102,11113 ---- 4c3a1b08c781a6bc64801d804be82d89 gcc/testsuite/g++.dg/cpp0x/extern_template-2.C 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 592cc710524d5d21c28b065dd6c6de7c gcc/testsuite/g++.dg/cpp0x/fallthrough1.C c2982fdb85366105719171be7bb04eb0 gcc/testsuite/g++.dg/cpp0x/fallthrough2.C e719fc0782c02fa926744188563c8722 gcc/testsuite/g++.dg/cpp0x/fntmpdefarg1.C 101686a12f4027487963b47c2243cef7 gcc/testsuite/g++.dg/cpp0x/fntmpdefarg10.C + d6975e94a38c08c7522664a293b0718d gcc/testsuite/g++.dg/cpp0x/fntmpdefarg11.C 8b46fc26c58195fd05de5a6953f25c49 gcc/testsuite/g++.dg/cpp0x/fntmpdefarg2.C 65b3e6cf5d9cfb22620f647f7ad53258 gcc/testsuite/g++.dg/cpp0x/fntmpdefarg2a.C e59d3f76627bf31bf8cc43a2fe4b6df9 gcc/testsuite/g++.dg/cpp0x/fntmpdefarg3.C *************** c157a52995fc54c0b46c8795dea13ada gcc/te *** 11174,11179 **** --- 11204,11210 ---- 5ac484eaba19c794225110a11b48ef2a gcc/testsuite/g++.dg/cpp0x/gen-attrs-64.C 40fb270687c3b0ccc01dc21db4e07678 gcc/testsuite/g++.dg/cpp0x/gen-attrs-66.C f55fa66c82d267feca5db82dc835210a gcc/testsuite/g++.dg/cpp0x/gen-attrs-7.C + 1e684e9934b01f7c9c53981ab2a9cd8f gcc/testsuite/g++.dg/cpp0x/gen-attrs-71.C e0b4f953ad274eb8ec84b8e630f87d3a gcc/testsuite/g++.dg/cpp0x/gen-attrs-8.C 5dd92815927177080853d47a890f5439 gcc/testsuite/g++.dg/cpp0x/gen-attrs-9.C 5b7126443554bc736a19b8a950170b30 gcc/testsuite/g++.dg/cpp0x/gnu_fext-numeric-literals.C *************** bba825da84a7cef5052a899c9f1158f3 gcc/te *** 11187,11192 **** --- 11218,11224 ---- db5b7de6305a8e21e1ae9042d5338dd3 gcc/testsuite/g++.dg/cpp0x/implicit13.C 7328653fe6fc1e6ca53a097e33c805bf gcc/testsuite/g++.dg/cpp0x/implicit14.C f99332ecdcdb0ac304db6ae97b1cbf57 gcc/testsuite/g++.dg/cpp0x/implicit15.C + ce06536a3636f3bfcf7185513e507086 gcc/testsuite/g++.dg/cpp0x/implicit16.C 7a0c0404140f8be4c4780850aaea27d4 gcc/testsuite/g++.dg/cpp0x/implicit2.C bb3cecf4f0926b6e97d681a7ac6375b4 gcc/testsuite/g++.dg/cpp0x/implicit3.C 25f074057f9be4abafc2e63b15388fe3 gcc/testsuite/g++.dg/cpp0x/implicit4.C *************** b981bb775821a5230961a162ba38ff43 gcc/te *** 11259,11264 **** --- 11291,11297 ---- 742c772ced8eedc3c0511b94b8410082 gcc/testsuite/g++.dg/cpp0x/initlist-value.C fab23eb9efdcf1b8c0f8393aa5ad7913 gcc/testsuite/g++.dg/cpp0x/initlist-value2.C 852f3923a21c10d08b8fe1877de6f216 gcc/testsuite/g++.dg/cpp0x/initlist-value3.C + 0597c71749163f9727f9bfc6f5ddd548 gcc/testsuite/g++.dg/cpp0x/initlist-value4.C 93763afe3eb7edb5553f76daf0ed0de3 gcc/testsuite/g++.dg/cpp0x/initlist-vect.C bc81668e2b4c77a6a8c52350eb5f9bc7 gcc/testsuite/g++.dg/cpp0x/initlist1.C 56eb446b9a79a3e01433eed6090a0b6d gcc/testsuite/g++.dg/cpp0x/initlist10.C *************** f787403dc64b99be9c0c9b763121c4d7 gcc/te *** 11273,11278 **** --- 11306,11312 ---- 4e30c8cc1b433b0d37d7e4262d017d0e gcc/testsuite/g++.dg/cpp0x/initlist110.C 07df2989f1e0524c6cdadbe249060b12 gcc/testsuite/g++.dg/cpp0x/initlist111.C 449d2937c2b05f521d8889bbdfcb2549 gcc/testsuite/g++.dg/cpp0x/initlist112.C + f3e3a423075b6d0d03243d7a3125c656 gcc/testsuite/g++.dg/cpp0x/initlist118.C 540183723223acf529878183682623fb gcc/testsuite/g++.dg/cpp0x/initlist12.C a5e64985a46db12492fa03d5e7dfd347 gcc/testsuite/g++.dg/cpp0x/initlist13.C 3071307e831ae441c218cbab9dbc1d8f gcc/testsuite/g++.dg/cpp0x/initlist14.C *************** ffc39c5b4c152803a184a9a8a8a77a77 gcc/te *** 11457,11462 **** --- 11491,11497 ---- 988889814e57352cbe162cc5e748cfd3 gcc/testsuite/g++.dg/cpp0x/lambda/lambda-defarg6.C 7ab0268329db6592a8597fa7bede419d gcc/testsuite/g++.dg/cpp0x/lambda/lambda-defarg7.C b0a5175c866c3f8cc9595a3a187eaad5 gcc/testsuite/g++.dg/cpp0x/lambda/lambda-defarg8.C + 8e3435a786d0c21866950204dd63494c gcc/testsuite/g++.dg/cpp0x/lambda/lambda-defarg9.C 38a5c8e0569ee441818049e1f170838f gcc/testsuite/g++.dg/cpp0x/lambda/lambda-dependent1.C e8dd4784bd328df4e1de1999906f386b gcc/testsuite/g++.dg/cpp0x/lambda/lambda-diag1.C e4baead2918480aa1e47e55ecfdaef26 gcc/testsuite/g++.dg/cpp0x/lambda/lambda-direct-init.C *************** f834269fe12aa32c10b9a1ccedad58d6 gcc/te *** 11601,11606 **** --- 11636,11642 ---- f9bfdf92390383acadb7e459c1d392b8 gcc/testsuite/g++.dg/cpp0x/lambda/lambda-variadic5.C ad61d0dd81ce64e7dd902f8cbf0238b7 gcc/testsuite/g++.dg/cpp0x/lambda/lambda-variadic6.C a24564d5ecc7d81986630804e99e730a gcc/testsuite/g++.dg/cpp0x/lambda/lambda-variadic7.C + a159ce2083ee6333569e0f552b98c062 gcc/testsuite/g++.dg/cpp0x/lambda/lambda-variadic8.C a667f158c89a42014e4ccc192862b932 gcc/testsuite/g++.dg/cpp0x/lambda/lambda-vla1.C 9da68ff6b459e7ba59b9ed131bcd5fa5 gcc/testsuite/g++.dg/cpp0x/lambda/lambda-vla2.C d1d6585012ce959c2cfe7d34a8d32f1f gcc/testsuite/g++.dg/cpp0x/lambda/lambda-vla3.C *************** a5272f2b141b976a80585ef6cded80e8 gcc/te *** 11758,11766 **** --- 11794,11807 ---- 038bcc314ee0faed559e148dcdc87aa0 gcc/testsuite/g++.dg/cpp0x/nullptr37.C a752e6374a9b016d0db3cc3d89cb1994 gcc/testsuite/g++.dg/cpp0x/nullptr38.C dd2e11db6d41e95dd646b54bb5547277 gcc/testsuite/g++.dg/cpp0x/nullptr39.C + d31a397b7e49ac715bfc08852a1710f3 gcc/testsuite/g++.dg/cpp0x/nullptr40.C + cce8d7efe84ba47b6a9a649b7e96db1d gcc/testsuite/g++.dg/cpp0x/nullptr41.C + afdfafb40dd063d062a20c67e4309ae4 gcc/testsuite/g++.dg/cpp0x/nullptr45.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 + 2c6f9529ab2133b66b083833e669fd58 gcc/testsuite/g++.dg/cpp0x/overload-conv-3.C + 05f8d114c0307676d7d3b227b2e3213d gcc/testsuite/g++.dg/cpp0x/overload-conv-4.C e1598f2c9f261104495d9e7d921f8264 gcc/testsuite/g++.dg/cpp0x/overload.C 15b4148c92763edcf90b0fe0cb6f7742 gcc/testsuite/g++.dg/cpp0x/overload2.C e51fa7b3953a97711f4b666480bad308 gcc/testsuite/g++.dg/cpp0x/overload3.C *************** ce317b0879de92313ef6b7d499d12986 gcc/te *** 11961,11967 **** 662c2eb0632332c0375729eb9c9f926e gcc/testsuite/g++.dg/cpp0x/pr83919.C 70a182b3dddc113e81b5322b16298fe4 gcc/testsuite/g++.dg/cpp0x/pr83978.C 71d60efef3e782a1d320da23ac44744e gcc/testsuite/g++.dg/cpp0x/pr83993.C ! bd4e8cb0df7cafc2bf9c6508da8c910a gcc/testsuite/g++.dg/cpp0x/pr84497.C 3357d765c2a248307f8a2822fc51cdf5 gcc/testsuite/g++.dg/cpp0x/pr84606.C 4645cdc10faa1c61c439188409dd5b38 gcc/testsuite/g++.dg/cpp0x/pr84609.C 8ad683b7769fad28d118622160fbe8d4 gcc/testsuite/g++.dg/cpp0x/pr84610.C --- 12002,12008 ---- 662c2eb0632332c0375729eb9c9f926e gcc/testsuite/g++.dg/cpp0x/pr83919.C 70a182b3dddc113e81b5322b16298fe4 gcc/testsuite/g++.dg/cpp0x/pr83978.C 71d60efef3e782a1d320da23ac44744e gcc/testsuite/g++.dg/cpp0x/pr83993.C ! d6124f912836f7ceed211ae9b5a41571 gcc/testsuite/g++.dg/cpp0x/pr84497.C 3357d765c2a248307f8a2822fc51cdf5 gcc/testsuite/g++.dg/cpp0x/pr84606.C 4645cdc10faa1c61c439188409dd5b38 gcc/testsuite/g++.dg/cpp0x/pr84609.C 8ad683b7769fad28d118622160fbe8d4 gcc/testsuite/g++.dg/cpp0x/pr84610.C *************** b29d09f2850527adc7623c72769dd875 gcc/te *** 11981,11986 **** --- 12022,12030 ---- 718bdac840ab7376a5e4df992790c295 gcc/testsuite/g++.dg/cpp0x/pr87539.C 41ac2a98fc025161718d9e5b86a257d4 gcc/testsuite/g++.dg/cpp0x/pr88120.C a44fab7343840bcf0ea2a872841a61b1 gcc/testsuite/g++.dg/cpp0x/pr88410.C + af1a15e45c3cc6236ceb323ed17dc3d7 gcc/testsuite/g++.dg/cpp0x/pr89403.C + cf4d7a0934fa5897248e568b884df620 gcc/testsuite/g++.dg/cpp0x/pr92524.C + b01c3079ace1bdd462b03d3af7906721 gcc/testsuite/g++.dg/cpp0x/pr93905.C 53428f69a6d0153074c9b06ee9fbe9e7 gcc/testsuite/g++.dg/cpp0x/ptrmem-cst-arg1.C 6e8e648c26d9bf237cc152180e88c2c2 gcc/testsuite/g++.dg/cpp0x/range-for1.C 0575c153beb764d50309dc02ebd221c1 gcc/testsuite/g++.dg/cpp0x/range-for10.C *************** ccba3040ed86b5ffae7d72b18f556d1c gcc/te *** 12052,12057 **** --- 12096,12103 ---- 682309935142019cb21a9df2c35d9a5c gcc/testsuite/g++.dg/cpp0x/rv-cond2.C 3a02f68ebc48112a74f31983fd72c639 gcc/testsuite/g++.dg/cpp0x/rv-cond3.C 4d78acdd9f4b8ae8afa532ceaf0c07c4 gcc/testsuite/g++.dg/cpp0x/rv-conv1.C + 68fdce54ec37dd9c4ce6cc23940e6669 gcc/testsuite/g++.dg/cpp0x/rv-conv2.C + 55bf372aa23fed509d52b517cd46aa98 gcc/testsuite/g++.dg/cpp0x/rv-conv3.C 889a7002f4d78b4abd44856da792f8dc gcc/testsuite/g++.dg/cpp0x/rv-copy1.C de88aaa56b0d394bd02f079bb0f4dddf gcc/testsuite/g++.dg/cpp0x/rv-deduce.C f213598004dcfd0117fecc9593637790 gcc/testsuite/g++.dg/cpp0x/rv-deduce2.C *************** a5e6ed91f0f646eb02d06d6e7670053e gcc/te *** 12157,12162 **** --- 12203,12209 ---- 0cc7cf7d0ec0400e4be4d1ae2087c83f gcc/testsuite/g++.dg/cpp0x/sfinae60.C 131acf6a69dc715be311411cf0fefa3e gcc/testsuite/g++.dg/cpp0x/sfinae61.C 5550601713048fc2035e09b7afa2de0d gcc/testsuite/g++.dg/cpp0x/sfinae63.C + 5057317176f66cb1d8063c4f091fb9ef gcc/testsuite/g++.dg/cpp0x/sfinae64.C ec1a51ea3fd41e6e61c8f425bde1fd0b gcc/testsuite/g++.dg/cpp0x/sfinae7.C 547894832b1452d5f513938e0cb8a166 gcc/testsuite/g++.dg/cpp0x/sfinae8.C 03177ceac1dca2efe41bd4b603c2a79e gcc/testsuite/g++.dg/cpp0x/sfinae9.C *************** d628aec947fb9383000669568fb54fe3 gcc/te *** 12272,12277 **** --- 12319,12325 ---- 6d6ff5e1107f65ae6fdc850aaada06ea gcc/testsuite/g++.dg/cpp0x/unnamed_refs.C 7687213971360103949df277ec9a4982 gcc/testsuite/g++.dg/cpp0x/using-enum-1.C 5ff50b37857db1120f649fd613157bb3 gcc/testsuite/g++.dg/cpp0x/using-enum-2.C + 5453cfddd739b8f091b5077a25dbd04b gcc/testsuite/g++.dg/cpp0x/using-enum-3.C c2935d37441711e00030dd4962af84b5 gcc/testsuite/g++.dg/cpp0x/variadic-104.C 0fa36631e12ec97e9e0d646888cd43ab gcc/testsuite/g++.dg/cpp0x/variadic-alias1.C 8eb6bba0c4ef3e1b77151f91ce5ddeb3 gcc/testsuite/g++.dg/cpp0x/variadic-bind.C *************** e47543bd9482646c5c0d1023519e7eb1 gcc/te *** 12319,12324 **** --- 12367,12373 ---- 5ad1db01bdd9d87f2a8276b08cff8db7 gcc/testsuite/g++.dg/cpp0x/variadic-new2.C 9965da4f62ae847ce666120789b29c79 gcc/testsuite/g++.dg/cpp0x/variadic-nondeduce1.C 1441fa6139ca73d25aa889aafd3b483c gcc/testsuite/g++.dg/cpp0x/variadic-nondeduce2.C + 7ef2a770be31e4cfad400f2e8df32ae9 gcc/testsuite/g++.dg/cpp0x/variadic-parm1.C 48eb2c981da41427b39595337f986824 gcc/testsuite/g++.dg/cpp0x/variadic-partial1.C 929e72e50917907d735e84a67d7462fa gcc/testsuite/g++.dg/cpp0x/variadic-ref1.C 0e1a5d3d60669df0ab8d526a879627f5 gcc/testsuite/g++.dg/cpp0x/variadic-rref.C *************** b823b50bc430c6f0253adad46e2b9fea gcc/te *** 12568,12573 **** --- 12617,12623 ---- 5e4a99649ec4c892a39fa54f3643eb49 gcc/testsuite/g++.dg/cpp1y/69098-2.C c8a2c7e8b1e0cbd3443ab02738d85644 gcc/testsuite/g++.dg/cpp1y/69098.C 438090a75b721771fcfd7c5159abbb67 gcc/testsuite/g++.dg/cpp1y/attr-deprecated-2.C + e373712ec656768ee571d2a278d813da gcc/testsuite/g++.dg/cpp1y/attr-deprecated-3.C 27985f1bda815c3234299bd64d8847b2 gcc/testsuite/g++.dg/cpp1y/attr-deprecated-neg.C 668d7e4abca655f37806cd95cf359930 gcc/testsuite/g++.dg/cpp1y/attr-deprecated.C fb2e417a364945cb8149b9526292009b gcc/testsuite/g++.dg/cpp1y/attributes-enum-1.C *************** a7934d89f8791f62bbbf0b9d7fa7ece6 gcc/te *** 12735,12749 **** --- 12785,12802 ---- 73439253dac676f4f5d981dc912a1a83 gcc/testsuite/g++.dg/cpp1y/lambda-generic-78018.C f257a2d5d1384a750676e55da76dca2e gcc/testsuite/g++.dg/cpp1y/lambda-generic-79005.C 5209bc3f1d48d6d7100a438fe34ed022 gcc/testsuite/g++.dg/cpp1y/lambda-generic-84125.C + 19d3b1d128bd21f69bf74f868fcbbfe4 gcc/testsuite/g++.dg/cpp1y/lambda-generic-90842.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 + 508c18dbf853a0b77ee2fc571019a954 gcc/testsuite/g++.dg/cpp1y/lambda-generic-const10.C 565bd59fb2dca8cbcfbfa5b7e1e94368 gcc/testsuite/g++.dg/cpp1y/lambda-generic-const2.C c1704c3068b9b801f6fca80634fa3d1c gcc/testsuite/g++.dg/cpp1y/lambda-generic-const3.C a429d84bc7f4132705bbe16ebbde7773 gcc/testsuite/g++.dg/cpp1y/lambda-generic-const4.C 0b815c50b036a29c2e101866d80ae539 gcc/testsuite/g++.dg/cpp1y/lambda-generic-const4a.C 6e8fc19c227503a364053713d7456972 gcc/testsuite/g++.dg/cpp1y/lambda-generic-const5.C 042f0e3c1fc202a11bdb268526dd79ae gcc/testsuite/g++.dg/cpp1y/lambda-generic-const6.C + 660abcf6eebdc761b124bf3e2f5f75af gcc/testsuite/g++.dg/cpp1y/lambda-generic-const9.C 2e80b291e01a2cfa45ff49e595eefeb5 gcc/testsuite/g++.dg/cpp1y/lambda-generic-conv1.C 4826d92e5c4d99fa506ff2e846ff01a4 gcc/testsuite/g++.dg/cpp1y/lambda-generic-conv2.C 78cdb2dc3c8d671d96c375fa61f96dc5 gcc/testsuite/g++.dg/cpp1y/lambda-generic-conv3.C *************** a5e1f08b66165b58419bbab37da9a962 gcc/te *** 12763,12768 **** --- 12816,12822 ---- fcdbf299db7426d40d79e7ce91bbbc1e gcc/testsuite/g++.dg/cpp1y/lambda-generic-nested2.C 79b0200bf1646b28e5d82c30cae3557d gcc/testsuite/g++.dg/cpp1y/lambda-generic-noexcept1.C 52a13a3c9f86f7ceca034afb60b8f785 gcc/testsuite/g++.dg/cpp1y/lambda-generic-nsdmi1.C + bbd3fddcc74936595e633fdd96432322 gcc/testsuite/g++.dg/cpp1y/lambda-generic-ref1.C db3760d317d0220aeddc9a1ce4072105 gcc/testsuite/g++.dg/cpp1y/lambda-generic-static1.C c6cfff44332b8bfb7c52ace4e1af76c5 gcc/testsuite/g++.dg/cpp1y/lambda-generic-static2.C d91a981f54ab2a15c0e9427ccb338f24 gcc/testsuite/g++.dg/cpp1y/lambda-generic-targ1.C *************** d91a981f54ab2a15c0e9427ccb338f24 gcc/te *** 12770,12775 **** --- 12824,12830 ---- 47327f13bcf8bd47595b03a1a51d80b1 gcc/testsuite/g++.dg/cpp1y/lambda-generic-this1.C 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 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 *************** cc6586d67eedf5854ebc2931fb7d47a3 gcc/te *** 12798,12803 **** --- 12853,12859 ---- 946f59c2dd9c3a634f4e09b219af302c gcc/testsuite/g++.dg/cpp1y/lambda-generic.C ca76d1cf09a7e8a0d6dcf484103a301f gcc/testsuite/g++.dg/cpp1y/lambda-ice1.C cf53809dddf10444ecf4edb30fe8fb83 gcc/testsuite/g++.dg/cpp1y/lambda-ice2.C + a37fb46d4b08c91fb2119f46b9d04ce0 gcc/testsuite/g++.dg/cpp1y/lambda-init-vla1.C cd4be222672b195ed8554a2e99c88e68 gcc/testsuite/g++.dg/cpp1y/lambda-init.C 92794dd2e4beab250816493d67c15717 gcc/testsuite/g++.dg/cpp1y/lambda-init1.C fe118321a9f7ae6d0b7db3dea8fea392 gcc/testsuite/g++.dg/cpp1y/lambda-init10.C *************** ca7e8735db99f7f5fd14ba8748118d88 gcc/te *** 12809,12814 **** --- 12865,12872 ---- 94541d9e486223ed3e08f03421566a99 gcc/testsuite/g++.dg/cpp1y/lambda-init15a.C be21e9afd5b9562ecdf4950349fa5936 gcc/testsuite/g++.dg/cpp1y/lambda-init16.C e0f5a695e9604ed19c20c1e333da6015 gcc/testsuite/g++.dg/cpp1y/lambda-init17.C + 5fe011c8566939194cd3e0837e9e34c0 gcc/testsuite/g++.dg/cpp1y/lambda-init18.C + 958fe0b6d46088167932b1f19e7a6780 gcc/testsuite/g++.dg/cpp1y/lambda-init19.C 8ed9afde76486ea02c03ca491cadf017 gcc/testsuite/g++.dg/cpp1y/lambda-init2.C 2cd05217a3f9f694b94c428a478c4d15 gcc/testsuite/g++.dg/cpp1y/lambda-init3.C f2fd3b3d96f31c07233bb82ba0c0f2f5 gcc/testsuite/g++.dg/cpp1y/lambda-init4.C *************** dbace3f995d674f58bab880f12a9759b gcc/te *** 12924,12929 **** --- 12982,12988 ---- eed72e4e3c9aec24d904cb1baa5f2711 gcc/testsuite/g++.dg/cpp1y/pr84835.C 9c7ee77059363808e261d90cf939ce59 gcc/testsuite/g++.dg/cpp1y/pr84942.C 11abcca649e7c260d96b20dd2bb71bc7 gcc/testsuite/g++.dg/cpp1y/pr85076.C + 76d3c8355d513d753398e1184e4c4ece gcc/testsuite/g++.dg/cpp1y/pr89767.C ac3a3cc471361b1fc9f3e55ad12dd7a8 gcc/testsuite/g++.dg/cpp1y/regress1.C 9a759de4b7ac375d3c274acdf73c4fbe gcc/testsuite/g++.dg/cpp1y/sized-dealloc1.C aeb199bf9a897359b6d538b5bce4e5ef gcc/testsuite/g++.dg/cpp1y/sized-dealloc2.C *************** f47aed01d0a8d51c841d31adce366f2f gcc/te *** 12999,13004 **** --- 13058,13064 ---- 2d80dca3b1754f5129c41c3e12947ca9 gcc/testsuite/g++.dg/cpp1y/var-templ58a.C d02a4d5b691aff1357a5f77cf5774190 gcc/testsuite/g++.dg/cpp1y/var-templ59.C 46f96806c3f041172407dd6ff7943dc8 gcc/testsuite/g++.dg/cpp1y/var-templ6.C + d40d9f43eb7820281681023bed02f7ce gcc/testsuite/g++.dg/cpp1y/var-templ61.C 3c670164f1a7f8f91ef1db2f80526182 gcc/testsuite/g++.dg/cpp1y/var-templ7.C 7490ba7f2bf9511118a48f52e8c4ceed gcc/testsuite/g++.dg/cpp1y/var-templ8.C c62c3c5ce4dabfb077ffd26896b1d204 gcc/testsuite/g++.dg/cpp1y/var-templ9.C *************** d1268092500c38ed9254643995a3c603 gcc/te *** 13019,13024 **** --- 13079,13087 ---- 47ebc10e0900a7f3c3a5ba9f7d2d00f7 gcc/testsuite/g++.dg/cpp1z/aggr-base4.C 7452bc52d89e5c766a6d55cf22417a18 gcc/testsuite/g++.dg/cpp1z/aggr-base5.C 46609bf5a7d692e0ea71016a54461add gcc/testsuite/g++.dg/cpp1z/aggr-base6.C + 1f750e73975350099aaa2a4902d7e23a gcc/testsuite/g++.dg/cpp1z/aggr-base7.C + fec5cec13e8a17476aae459e74aa149b gcc/testsuite/g++.dg/cpp1z/aggr-base8.C + 61c28771270a9d7c9e9c8ad6ed412fd4 gcc/testsuite/g++.dg/cpp1z/aggr-base9.C 35366cd075be843e2cc0c308db8282e3 gcc/testsuite/g++.dg/cpp1z/aligned-new1.C e690214edbc75455debe7f454f603dad gcc/testsuite/g++.dg/cpp1z/aligned-new2.C 1d6d9a7a997b26c48483d2162c7910fc gcc/testsuite/g++.dg/cpp1z/aligned-new3.C *************** f1683a9e2fc77cfa2ecf5b1a917b5bff gcc/te *** 13082,13088 **** --- 13145,13155 ---- e7263966dbf9182442f935b5f1cbf617 gcc/testsuite/g++.dg/cpp1z/class-deduction52.C 69a873359fe2d745f88b120b41848709 gcc/testsuite/g++.dg/cpp1z/class-deduction53.C 22015d7dca3e418d189fb05288811fe5 gcc/testsuite/g++.dg/cpp1z/class-deduction54.C + 595a15e67ff373b69d56a3d32cf1c58e gcc/testsuite/g++.dg/cpp1z/class-deduction58.C 61268c3079f0b6d7fae43d7fbcb00d0a gcc/testsuite/g++.dg/cpp1z/class-deduction6.C + d47bddaa09364b9feaca55aae058bc72 gcc/testsuite/g++.dg/cpp1z/class-deduction62.C + 5009a2927199b8cf161c320bb1fb8801 gcc/testsuite/g++.dg/cpp1z/class-deduction63.C + 4a31eaf454fdf182ed592dea6cd3b8a9 gcc/testsuite/g++.dg/cpp1z/class-deduction64.C b0ba58b3ee1aac0f4695ad92e7e28a32 gcc/testsuite/g++.dg/cpp1z/class-deduction7.C a9583f9d358ed621849b8a8cca70fd78 gcc/testsuite/g++.dg/cpp1z/class-deduction8.C 8957e06a84199b978d95b6726d556763 gcc/testsuite/g++.dg/cpp1z/class-deduction9.C *************** a1e97f56082d1ebd1ca50bd8f78d9a83 gcc/te *** 13106,13111 **** --- 13173,13179 ---- 4856dd5fb3b9a09cc078f2c0de44b6cc gcc/testsuite/g++.dg/cpp1z/constexpr-if23.C 52e513ee1f36afff22297e5d55f089d9 gcc/testsuite/g++.dg/cpp1z/constexpr-if24.C 69eeb69911dab3b982b1cf810dd4b2d2 gcc/testsuite/g++.dg/cpp1z/constexpr-if25.C + 2e75d29cfaac0c2c6e31cf11da50f1c5 gcc/testsuite/g++.dg/cpp1z/constexpr-if28.C dd7cc15292a815c35ae2ba8f10f74b83 gcc/testsuite/g++.dg/cpp1z/constexpr-if3.C a02c2b6b67d061c35cdb50fa03569637 gcc/testsuite/g++.dg/cpp1z/constexpr-if4.C 63578861f15440823cca35ea07a0f65f gcc/testsuite/g++.dg/cpp1z/constexpr-if5.C *************** c249422d923bfc189a9579b50b33bfe4 gcc/te *** 13127,13132 **** --- 13195,13201 ---- 2bb0dd2aac4de456d29bb08aaee75db3 gcc/testsuite/g++.dg/cpp1z/constexpr-lambda2.C aee3fc565742135f774d7e3e6370e6dc gcc/testsuite/g++.dg/cpp1z/constexpr-lambda20.C 67b42bcb57649e412852809762a049d4 gcc/testsuite/g++.dg/cpp1z/constexpr-lambda21.C + 58bd2e2abbc1edcb0a954b8ed6ac8821 gcc/testsuite/g++.dg/cpp1z/constexpr-lambda24.C f553da6006f8912f7476ae4a29c88839 gcc/testsuite/g++.dg/cpp1z/constexpr-lambda3.C 7ead2356ec8abee16155b198fb017164 gcc/testsuite/g++.dg/cpp1z/constexpr-lambda4.C c7e2fe47c521164eaf234ff1d633bce5 gcc/testsuite/g++.dg/cpp1z/constexpr-lambda5.C *************** f87d01b79438c980c4a021d7024c707c gcc/te *** 13182,13188 **** --- 13251,13259 ---- 27efec577245686b5a9bedc131a5b16c gcc/testsuite/g++.dg/cpp1z/decomp46.C 0d5c2ebf6eb718515af8732ff1e19ed9 gcc/testsuite/g++.dg/cpp1z/decomp47.C 71e62b8871f4370e7ab9851c45a0c5c8 gcc/testsuite/g++.dg/cpp1z/decomp48.C + be58a05c982a80cf0c6b4457f2ee655c gcc/testsuite/g++.dg/cpp1z/decomp49.C af1e704cf45a12bb8c7e2865e6b7debc gcc/testsuite/g++.dg/cpp1z/decomp5.C + 7f5a05827bf70c6aae1a8d8e3d44d7f8 gcc/testsuite/g++.dg/cpp1z/decomp50.C 1bdca83f97c5e15ddd3eda87ca5353f2 gcc/testsuite/g++.dg/cpp1z/decomp6.C 09468d9aa8e4fe8ac0677b17a3c509a2 gcc/testsuite/g++.dg/cpp1z/decomp7.C 0d7ba62c8322f4f98a085026e3ac529a gcc/testsuite/g++.dg/cpp1z/decomp8.C *************** bafa3ed0da0c14fc9337428032934f0f gcc/te *** 13195,13205 **** --- 13266,13278 ---- 6445e93e901862c51fb69c4ea7a666f0 gcc/testsuite/g++.dg/cpp1z/eval-order2.C 972d2af3fffd0f9c742c7b6e92b1a61c gcc/testsuite/g++.dg/cpp1z/eval-order3.C 6d8d378fedaf65b4cb89952060799280 gcc/testsuite/g++.dg/cpp1z/eval-order4.C + 56af6596678e014cdf3ef38d1427358f gcc/testsuite/g++.dg/cpp1z/eval-order5.C 651c38ec103541212cf0b619936c5236 gcc/testsuite/g++.dg/cpp1z/fallthrough1.C 8de71eac651bf0fd672ff302c1b70aa5 gcc/testsuite/g++.dg/cpp1z/feat-cxx1z.C 2758f3317d6a6567b51f32f559f26c6d gcc/testsuite/g++.dg/cpp1z/fold-ice1.C a93e4e8f8071a336f43698a3b75b695d gcc/testsuite/g++.dg/cpp1z/fold-lambda.C 0cb0c0164acd80d87759c2968d3d1643 gcc/testsuite/g++.dg/cpp1z/fold-lambda2.C + 1bbf4f67975bc37756736d418385d82a gcc/testsuite/g++.dg/cpp1z/fold-lambda3.C 84fe300be5af6e523e86a9d048f2a272 gcc/testsuite/g++.dg/cpp1z/fold-mangle.C 54e23ba84623ce3381ec34485124e8d7 gcc/testsuite/g++.dg/cpp1z/fold1.C 55994e6d04d31ccc2a8ae8e3882e4942 gcc/testsuite/g++.dg/cpp1z/fold2.C *************** b1ad198a7406b907c64499cd029697d8 gcc/te *** 13248,13253 **** --- 13321,13327 ---- 7cb7e5cbc212cca707d142d97c9b95d1 gcc/testsuite/g++.dg/cpp1z/inline-var2.C e087f098ba0891b5b8c20970b5e1f9a3 gcc/testsuite/g++.dg/cpp1z/inline-var3.C e32ed1e5e30f242801e2dce55e0d59d5 gcc/testsuite/g++.dg/cpp1z/inline-var4.C + 0cb95601f3535585c53079495cd7f627 gcc/testsuite/g++.dg/cpp1z/inline-var5.C 1921ffb3bfdded5b9f5e2991397818f9 gcc/testsuite/g++.dg/cpp1z/lambda-__func__.C 0e7def4e0e7458614022b79a25311135 gcc/testsuite/g++.dg/cpp1z/lambda-inherit1.C af889024357d1e759a5f6936d5b50828 gcc/testsuite/g++.dg/cpp1z/lambda-this1.C *************** c5f6b89265916b0fda61728cb9e20fb8 gcc/te *** 13344,13350 **** df5bd51ca3ec69bebfb861198262ba3d gcc/testsuite/g++.dg/cpp1z/utf8.C efde6c8c1860e6796275cd76c0810b5d gcc/testsuite/g++.dg/cpp2a/bitfield1.C 6459f6af0671a76d588568648ec2536c gcc/testsuite/g++.dg/cpp2a/bitfield2.C ! ef57257e408e06d58bf2de60513b468b gcc/testsuite/g++.dg/cpp2a/bitfield3.C 7126b921087cb1629e4184935766b627 gcc/testsuite/g++.dg/cpp2a/cplusplus.C 9e5b823284742c68e17318ea0110e785 gcc/testsuite/g++.dg/cpp2a/desig1.C 660e750ca110e87932946efeee331317 gcc/testsuite/g++.dg/cpp2a/desig2.C --- 13418,13425 ---- df5bd51ca3ec69bebfb861198262ba3d gcc/testsuite/g++.dg/cpp1z/utf8.C efde6c8c1860e6796275cd76c0810b5d gcc/testsuite/g++.dg/cpp2a/bitfield1.C 6459f6af0671a76d588568648ec2536c gcc/testsuite/g++.dg/cpp2a/bitfield2.C ! dbb38d79b4b755c3350566626fdf9bd8 gcc/testsuite/g++.dg/cpp2a/bitfield3.C ! 74cc445497f4dd39bb1cc3a9955074a9 gcc/testsuite/g++.dg/cpp2a/bitfield4.C 7126b921087cb1629e4184935766b627 gcc/testsuite/g++.dg/cpp2a/cplusplus.C 9e5b823284742c68e17318ea0110e785 gcc/testsuite/g++.dg/cpp2a/desig1.C 660e750ca110e87932946efeee331317 gcc/testsuite/g++.dg/cpp2a/desig2.C *************** b4a2f02a53738aad34f79c645eb08809 gcc/te *** 13474,13479 **** --- 13549,13555 ---- 6bacb72669961d72ae42d4e8ef6f3235 gcc/testsuite/g++.dg/debug/dwarf2/pr87295.C a6b0d9b886cd92ee869a01fd967f123e gcc/testsuite/g++.dg/debug/dwarf2/pr87462.C eb8df2f4b1148c5f6b77553d91cb7877 gcc/testsuite/g++.dg/debug/dwarf2/pr88006.C + 1f426b6d87ce5765a45728a91f7e3337 gcc/testsuite/g++.dg/debug/dwarf2/pr91887.C 48e69b012a6da8a3f37c0eea7d671389 gcc/testsuite/g++.dg/debug/dwarf2/ptrdmem-1.C 5d8f03fa19703b37b960eccf4cdd64b6 gcc/testsuite/g++.dg/debug/dwarf2/pubnames-1.C 76d02e352aba879b4ba37be3e5443ee8 gcc/testsuite/g++.dg/debug/dwarf2/pubnames-2.C *************** cb620ecdcf5127492c630c4b2400bbd6 gcc/te *** 13567,13572 **** --- 13643,13649 ---- dcf67ead0fe2bb68fc518e4789e519f2 gcc/testsuite/g++.dg/debug/pr84704.C 423c814771cf96308127152a6e56b792 gcc/testsuite/g++.dg/debug/pr84813.C ff81bad5bdaf6ebdf3b91953ac3a3e83 gcc/testsuite/g++.dg/debug/pr88181.C + 7ea445d3dffc6b1aa3648e9d5e464e5f gcc/testsuite/g++.dg/debug/pr92763.C a5e8d546d53a780cc3eb41574ea9f263 gcc/testsuite/g++.dg/debug/ra1.C c3f392076ad11f8768ef0321b89abd5f gcc/testsuite/g++.dg/debug/static1.C 7e13d86d33b17cfb7cdf61b7b8cca961 gcc/testsuite/g++.dg/debug/template1.C *************** c0abaf19bc6ccea1ddcd7d45a062e6f7 gcc/te *** 13715,13720 **** --- 13792,13798 ---- c8f6f4459095bf15bd799a6d96061277 gcc/testsuite/g++.dg/eh/nested-try.C addd3f35897f7c52014f1e26226e9219 gcc/testsuite/g++.dg/eh/new1.C 02bc77a36c6c86bb6c3fa9d05ed2ca11 gcc/testsuite/g++.dg/eh/nrv1.C + 39b82c2cef9b1e2c8c66b3ae639c6a35 gcc/testsuite/g++.dg/eh/o32-fp.C ee5fb539eb5e41ab9f5aa0028f011fce gcc/testsuite/g++.dg/eh/omit-frame-pointer.C dfa0fe611ce9682e5de477f908c0b5c0 gcc/testsuite/g++.dg/eh/omit-frame-pointer2.C b0149e5a2fbd5ae0fa0d1eb763a1f18e gcc/testsuite/g++.dg/eh/partial1.C *************** a2cb6541b849d8c33282f342e26447ca gcc/te *** 13880,13885 **** --- 13958,13964 ---- ffd75379d11277c314a7c44c9f8a5129 gcc/testsuite/g++.dg/expr/unary4.C e639e926667ce8f9dee4e94ea0269323 gcc/testsuite/g++.dg/expr/volatile1.C 5f6dc90ecc1bf243ae69988679b96ec4 gcc/testsuite/g++.dg/ext/80654.C + 65fb3808ee44eb4b42097f686dbf1c4e gcc/testsuite/g++.dg/ext/90532.C 7dfd2972b1402d4103976b061d5cbcd3 gcc/testsuite/g++.dg/ext/alias-canon.C d36f9d49ee39bbdeb5dec24146dbdc1d gcc/testsuite/g++.dg/ext/alias-canon2.C d34fa2166247314c56eb1b0cb616d3b4 gcc/testsuite/g++.dg/ext/alias-canon3.C *************** b7f5975e22585a2f3d80be63f70dccc8 gcc/te *** 13891,13897 **** 8086207ba3911ed58a971e642fbfdd29 gcc/testsuite/g++.dg/ext/align1.C 9b72806f0ff8dd6bff6e2ef84f0ce102 gcc/testsuite/g++.dg/ext/align2.C ae6df71fd3bee2754f2c1b710ca23b88 gcc/testsuite/g++.dg/ext/alignof1.C ! eab7bc114d4867ceb8d4e9a258d67045 gcc/testsuite/g++.dg/ext/alignof2.C f94bcd708feb1a029065a7503b545f54 gcc/testsuite/g++.dg/ext/altivec-1.C 11c64f0deba1e4621429dc584ee88ae4 gcc/testsuite/g++.dg/ext/altivec-10.C 11e05978299d38b5d2b835ef7303988d gcc/testsuite/g++.dg/ext/altivec-11.C --- 13970,13976 ---- 8086207ba3911ed58a971e642fbfdd29 gcc/testsuite/g++.dg/ext/align1.C 9b72806f0ff8dd6bff6e2ef84f0ce102 gcc/testsuite/g++.dg/ext/align2.C ae6df71fd3bee2754f2c1b710ca23b88 gcc/testsuite/g++.dg/ext/alignof1.C ! c193f1254c92080bca2fd5ab48c1e175 gcc/testsuite/g++.dg/ext/alignof2.C f94bcd708feb1a029065a7503b545f54 gcc/testsuite/g++.dg/ext/altivec-1.C 11c64f0deba1e4621429dc584ee88ae4 gcc/testsuite/g++.dg/ext/altivec-10.C 11e05978299d38b5d2b835ef7303988d gcc/testsuite/g++.dg/ext/altivec-11.C *************** d377fb4f9ef6d1ed2029c1551ddf7e3b gcc/te *** 13953,13960 **** e44c9c980378260d4b601d86e9cc1197 gcc/testsuite/g++.dg/ext/asm12.C 8a1c270f6e9e5f738069b9ac0cb76038 gcc/testsuite/g++.dg/ext/asm13.C b03656b1cd67c4e115686cb70664ee3b gcc/testsuite/g++.dg/ext/asm14.C ! d0cdfeb86cc1bd5048bc8a6eccd22158 gcc/testsuite/g++.dg/ext/asm15.C ! 6d4d89936aae31f929753c3c6fbe416c gcc/testsuite/g++.dg/ext/asm16.C 80a3695697c7262c931be9b1380fa283 gcc/testsuite/g++.dg/ext/asm2.C d79d3809a45ef739f741819f3a0e3979 gcc/testsuite/g++.dg/ext/asm3.C f8da779ccf232ebdb2dee94530a1bf48 gcc/testsuite/g++.dg/ext/asm4.C --- 14032,14040 ---- e44c9c980378260d4b601d86e9cc1197 gcc/testsuite/g++.dg/ext/asm12.C 8a1c270f6e9e5f738069b9ac0cb76038 gcc/testsuite/g++.dg/ext/asm13.C b03656b1cd67c4e115686cb70664ee3b gcc/testsuite/g++.dg/ext/asm14.C ! be1c80dcae5cbae6a8e240931f3c0271 gcc/testsuite/g++.dg/ext/asm15.C ! 2135f9ca8816461a01d6402d135aadb3 gcc/testsuite/g++.dg/ext/asm16.C ! 883f7391e5262e580b7d6560610b3012 gcc/testsuite/g++.dg/ext/asm17.C 80a3695697c7262c931be9b1380fa283 gcc/testsuite/g++.dg/ext/asm2.C d79d3809a45ef739f741819f3a0e3979 gcc/testsuite/g++.dg/ext/asm3.C f8da779ccf232ebdb2dee94530a1bf48 gcc/testsuite/g++.dg/ext/asm4.C *************** cd699f5674b89b0d8312893e0921e784 gcc/te *** 14057,14062 **** --- 14137,14143 ---- ee2835de4392f4a966affa761b794015 gcc/testsuite/g++.dg/ext/attrib55.C 0a783da5db70479d5370ad342d74e1a2 gcc/testsuite/g++.dg/ext/attrib56.C 76284b29c6fce52f56ddbcc04acd3a97 gcc/testsuite/g++.dg/ext/attrib6.C + df4711200e4e7cd7c5366aa4bdd29d74 gcc/testsuite/g++.dg/ext/attrib61.C 7af1e9265de26187b4a3a3880f99ac11 gcc/testsuite/g++.dg/ext/attrib7.C 23c4a640241391acec5a1fd2c3fa5f25 gcc/testsuite/g++.dg/ext/attrib8.C db629587302d47a98b453a1702e900c9 gcc/testsuite/g++.dg/ext/attrib9.C *************** c1e635c954030e7a49c5a15d469f0933 gcc/te *** 14222,14227 **** --- 14303,14310 ---- 119df814ca2920e1cbbb76f8378f4897 gcc/testsuite/g++.dg/ext/flexary29.C 21926590c31816347bbb7ba438127f63 gcc/testsuite/g++.dg/ext/flexary3.C 4a3b7f4deda6d57018846db88d1d2c1e gcc/testsuite/g++.dg/ext/flexary30.C + 74f6c053c0114f2642098943985dd99c gcc/testsuite/g++.dg/ext/flexary33.C + b2c60991d5b6f21b7202a6d5a7c81412 gcc/testsuite/g++.dg/ext/flexary34.C 3d3772048887cc532cac316c5dfc3727 gcc/testsuite/g++.dg/ext/flexary4.C 0cdb8ed93bc6d926326dda41fc92d614 gcc/testsuite/g++.dg/ext/flexary5.C 57643e50a930f6d1e7ea68411e707a26 gcc/testsuite/g++.dg/ext/flexary6.C *************** a24f991beb2c5296f2e8144630b7bb1a gcc/te *** 14269,14275 **** 04cb5500126619139ae126fdc51c8a1f gcc/testsuite/g++.dg/ext/injected-ttp.C f2cf0baaaf489aa15f22210e07d052d1 gcc/testsuite/g++.dg/ext/inline1.C 6cfdb6711dd7c538f7c4411216e0cc5b gcc/testsuite/g++.dg/ext/instantiate1.C ! 5e54f0ef2e625e228e1d382cd9aa24b3 gcc/testsuite/g++.dg/ext/instantiate2.C 561bb7137df38a016a786156224c9769 gcc/testsuite/g++.dg/ext/instantiate3.C 64c2566bddee53ad391dac93f9ac20f8 gcc/testsuite/g++.dg/ext/int128-1.C 32e47d9edd5e9de41660e6f8d0faa6c8 gcc/testsuite/g++.dg/ext/int128-2.C --- 14352,14358 ---- 04cb5500126619139ae126fdc51c8a1f gcc/testsuite/g++.dg/ext/injected-ttp.C f2cf0baaaf489aa15f22210e07d052d1 gcc/testsuite/g++.dg/ext/inline1.C 6cfdb6711dd7c538f7c4411216e0cc5b gcc/testsuite/g++.dg/ext/instantiate1.C ! 34f12a4e88c7d91723528bbca194ce29 gcc/testsuite/g++.dg/ext/instantiate2.C 561bb7137df38a016a786156224c9769 gcc/testsuite/g++.dg/ext/instantiate3.C 64c2566bddee53ad391dac93f9ac20f8 gcc/testsuite/g++.dg/ext/int128-1.C 32e47d9edd5e9de41660e6f8d0faa6c8 gcc/testsuite/g++.dg/ext/int128-2.C *************** c8cc6b1ac116455433fc79d5403b3693 gcc/te *** 14581,14586 **** --- 14664,14670 ---- 693cec9bf931df45af9b2d331ac48159 gcc/testsuite/g++.dg/ext/vector34.C bc898cae3bed874536a1bd98580d68a7 gcc/testsuite/g++.dg/ext/vector35.C abeb7f1800f1c5a18e83e13fb0f1d304 gcc/testsuite/g++.dg/ext/vector36.C + ff1db1bf54183447b20849ac3c27f4ab gcc/testsuite/g++.dg/ext/vector37.C 1d6b45dce331a414b31b64c5104ab383 gcc/testsuite/g++.dg/ext/vector4.C 3231264b4b96091ab8a2351e76707e8d gcc/testsuite/g++.dg/ext/vector5.C 9dca9632e59d179ee1b85a181a34cae7 gcc/testsuite/g++.dg/ext/vector6.C *************** d8cdfe2265b912fe59c4b829ba5b85f0 gcc/te *** 14713,14719 **** 28167c93ffea74cb328ff3cd087d643a gcc/testsuite/g++.dg/gcov/gcovpart-12b.C 7e1f7719f890c2991e041935a008aba6 gcc/testsuite/g++.dg/gcov/loop.C 7d9eee67c3f8041f2ddace387e1df1c2 gcc/testsuite/g++.dg/gcov/pr16855-priority.C ! 6a00a42444ecfc55fcc35215a85e8a01 gcc/testsuite/g++.dg/gcov/pr16855.C c764fcf65d843c003c08c0004637752d gcc/testsuite/g++.dg/gcov/pr84548.C c8c006792fd429653df69e08d74da961 gcc/testsuite/g++.dg/gcov/pr86109.C 3c05a5a4b4007f9635bf800d5335487b gcc/testsuite/g++.dg/gcov/pr88045.C --- 14797,14803 ---- 28167c93ffea74cb328ff3cd087d643a gcc/testsuite/g++.dg/gcov/gcovpart-12b.C 7e1f7719f890c2991e041935a008aba6 gcc/testsuite/g++.dg/gcov/loop.C 7d9eee67c3f8041f2ddace387e1df1c2 gcc/testsuite/g++.dg/gcov/pr16855-priority.C ! 0e2959a120e9dabe4dc820b1236a1579 gcc/testsuite/g++.dg/gcov/pr16855.C c764fcf65d843c003c08c0004637752d gcc/testsuite/g++.dg/gcov/pr84548.C c8c006792fd429653df69e08d74da961 gcc/testsuite/g++.dg/gcov/pr86109.C 3c05a5a4b4007f9635bf800d5335487b gcc/testsuite/g++.dg/gcov/pr88045.C *************** bcce5f289dacd7e032453729bf06e161 gcc/te *** 14789,14794 **** --- 14873,14879 ---- d9604d99f8b1a6974afc5a3cab2765b3 gcc/testsuite/g++.dg/gomp/for-8.C 34eb86e893e0bd796aad8d236b5bc215 gcc/testsuite/g++.dg/gomp/for-9.C 066da8e4c36f6d0013f731bd6971e9b1 gcc/testsuite/g++.dg/gomp/gomp.exp + eb763d050fd680e1a3302fbda441475d gcc/testsuite/g++.dg/gomp/lastprivate-1.C 7f682781cd88149270eb73eb44f419f7 gcc/testsuite/g++.dg/gomp/linear-1.C 2fe09fbd7df28122d262deb35faa2ae9 gcc/testsuite/g++.dg/gomp/linear-2.C 6dcaf2b099c377baab33fe0ad0e0e268 gcc/testsuite/g++.dg/gomp/loop-1.C *************** aec913fefeac6132003dfcbe3fd035eb gcc/te *** 14807,14813 **** 135dd9ca392aa9976b7a20570053aa68 gcc/testsuite/g++.dg/gomp/member-4.C 40ddfb4cf46a4ea2a28ece501a9d1b2b gcc/testsuite/g++.dg/gomp/method-1.C badbf609721acd5ee04999023c4af494 gcc/testsuite/g++.dg/gomp/openmp-simd-1.C ! ea8624eaab1d22a16dec629523a83531 gcc/testsuite/g++.dg/gomp/openmp-simd-2.C ad5a2c143fabe766d3848eb100ea6c38 gcc/testsuite/g++.dg/gomp/openmp-simd-3.C 20b058bc3ab390f835dc26da1b4b891e gcc/testsuite/g++.dg/gomp/ordered-1.C ad83350cdd58e73fddf0b7bacdf348a8 gcc/testsuite/g++.dg/gomp/ordered-2.C --- 14892,14898 ---- 135dd9ca392aa9976b7a20570053aa68 gcc/testsuite/g++.dg/gomp/member-4.C 40ddfb4cf46a4ea2a28ece501a9d1b2b gcc/testsuite/g++.dg/gomp/method-1.C badbf609721acd5ee04999023c4af494 gcc/testsuite/g++.dg/gomp/openmp-simd-1.C ! 2e7e4a5c79eb8fe54062fed88c9a9fa3 gcc/testsuite/g++.dg/gomp/openmp-simd-2.C ad5a2c143fabe766d3848eb100ea6c38 gcc/testsuite/g++.dg/gomp/openmp-simd-3.C 20b058bc3ab390f835dc26da1b4b891e gcc/testsuite/g++.dg/gomp/ordered-1.C ad83350cdd58e73fddf0b7bacdf348a8 gcc/testsuite/g++.dg/gomp/ordered-2.C *************** d43c7636f8d004a836e8c8543a39d4aa gcc/te *** 14927,14932 **** --- 15012,15018 ---- f4af350e7c840b674d4df142d3432e80 gcc/testsuite/g++.dg/gomp/pr84791.C 40d17ee1d08ee279cba091bb133935cf gcc/testsuite/g++.dg/gomp/pr85134.C 4b42a7fda8d3ea41699780101b9c6384 gcc/testsuite/g++.dg/gomp/pr88949.C + c1464987d35d87dd8f66e42e5434dd87 gcc/testsuite/g++.dg/gomp/pr89796.C adbfca0228fdb71a91ae227ecc88afab gcc/testsuite/g++.dg/gomp/predetermined-1.C edac71d2b358ecd6e646fece69c5426d gcc/testsuite/g++.dg/gomp/private-1.C d447246d410ae61ed9f733998e77b958 gcc/testsuite/g++.dg/gomp/reference-1.C *************** d31daabe5d2bb29c818c1bbbe31a5a4b gcc/te *** 15612,15618 **** --- 15698,15706 ---- 7a74ca095291672fedb99619674166cc gcc/testsuite/g++.dg/ipa/pr85421.C aae51c901115904a7775a689bfba23d3 gcc/testsuite/g++.dg/ipa/pr85447.C 0a73df0f8f21e4039f7d63b15167994d gcc/testsuite/g++.dg/ipa/pr85549.C + 29db8a93c552179e2118ba4096879c15 gcc/testsuite/g++.dg/ipa/pr88235.C 17bef3af24e2c140867ef54880bbe5ec gcc/testsuite/g++.dg/ipa/pr89009.C + 68096b3683f7d5d854cba520e7ed2a86 gcc/testsuite/g++.dg/ipa/pr89693.C 36fa3f305af8daf292a5a974b6cd8017 gcc/testsuite/g++.dg/ipa/pure-const-1.C 82a7eaa06c8e9918346a40ce4e5c9881 gcc/testsuite/g++.dg/ipa/pure-const-2.C ee6095015820d87205d7dcbb848a66d1 gcc/testsuite/g++.dg/ipa/pure-const-3.C *************** acece40c5f32aaa3b38f954b91368d3c gcc/te *** 15748,15757 **** 63850d2da277a993459adc90859da456 gcc/testsuite/g++.dg/lookup/missing-std-include-2.C 29a08861fcce5ce8183c96169e17d4c1 gcc/testsuite/g++.dg/lookup/missing-std-include-3.C 2089959ff25a41b6553e2e30bcdab132 gcc/testsuite/g++.dg/lookup/missing-std-include-4.C ! ebd2e188a4e001a51cca4db537fff2bf gcc/testsuite/g++.dg/lookup/missing-std-include-5.C ! a33692eb905167cf0b3191f444e38fd0 gcc/testsuite/g++.dg/lookup/missing-std-include-6.C 3d220622c3cf94c2c856e98e299989ef gcc/testsuite/g++.dg/lookup/missing-std-include-7.C ! 4384463d109035c394e991a08cf3a047 gcc/testsuite/g++.dg/lookup/missing-std-include-8.C ecb804007c1fa8a878d2197cb35a2d89 gcc/testsuite/g++.dg/lookup/missing-std-include.C 6c99bf6f0c2260471ad74e39e36cdf71 gcc/testsuite/g++.dg/lookup/name-clash1.C 51f1b95d6c879739a8fae563ede188d0 gcc/testsuite/g++.dg/lookup/name-clash10.C --- 15836,15845 ---- 63850d2da277a993459adc90859da456 gcc/testsuite/g++.dg/lookup/missing-std-include-2.C 29a08861fcce5ce8183c96169e17d4c1 gcc/testsuite/g++.dg/lookup/missing-std-include-3.C 2089959ff25a41b6553e2e30bcdab132 gcc/testsuite/g++.dg/lookup/missing-std-include-4.C ! 8c9e7cd6068948fc3bc9f18fb4358bbc gcc/testsuite/g++.dg/lookup/missing-std-include-5.C ! 747d4e43728357e44238bb23680126e8 gcc/testsuite/g++.dg/lookup/missing-std-include-6.C 3d220622c3cf94c2c856e98e299989ef gcc/testsuite/g++.dg/lookup/missing-std-include-7.C ! e79584d4c910c70ebcefcd854ff0809f gcc/testsuite/g++.dg/lookup/missing-std-include-8.C ecb804007c1fa8a878d2197cb35a2d89 gcc/testsuite/g++.dg/lookup/missing-std-include.C 6c99bf6f0c2260471ad74e39e36cdf71 gcc/testsuite/g++.dg/lookup/name-clash1.C 51f1b95d6c879739a8fae563ede188d0 gcc/testsuite/g++.dg/lookup/name-clash10.C *************** b0d2b85719be4698bf6dbe4c553cb0fc gcc/te *** 15804,15809 **** --- 15892,15898 ---- 3ccd58b6028d69a000f334fac1ef2942 gcc/testsuite/g++.dg/lookup/pr86329.C 92d8ca6e3168a7b42ef20361e76d5bd7 gcc/testsuite/g++.dg/lookup/pr87531-2.C d85c77d90a65a6ab99636a50096dd54e gcc/testsuite/g++.dg/lookup/pr87531.C + 3d384542a620fae8987b3de3d5ed239f gcc/testsuite/g++.dg/lookup/pr91826.C 9fc063d780e4510399927cfe832e8770 gcc/testsuite/g++.dg/lookup/pretty1.C f30dda31dee159f3aebbbc269a5fd8e4 gcc/testsuite/g++.dg/lookup/ptrmem1.C bcba89d3ec64e8fc005f26cebc29ef75 gcc/testsuite/g++.dg/lookup/redecl1.C *************** d2d6a19df03db27bf00901c7a776d305 gcc/te *** 16128,16133 **** --- 16217,16224 ---- 02b248b8120fb299627dfd3d464c48d4 gcc/testsuite/g++.dg/lto/pr85655_0.C 81b88749e859ad4a32ba5f3981adf134 gcc/testsuite/g++.dg/lto/pr87295_0.C 332bdab00ff27d1c425ee9fc8cdd7dc9 gcc/testsuite/g++.dg/lto/pr88046_0.C + cb782e35cc277d1b7be31cdb2b766e39 gcc/testsuite/g++.dg/lto/pr89358_0.C + 4f6e362a864f5ac4f9b9b99e660e0674 gcc/testsuite/g++.dg/lto/pr89358_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 *************** d1a8e92d247b883fcbec24a8363eec07 gcc/te *** 16470,16475 **** --- 16561,16570 ---- 1212695477c8b0f600a726a3a2dcb780 gcc/testsuite/g++.dg/opt/pr87475.C dd4b362edbe19cdf29a47f7bb90e6e2a gcc/testsuite/g++.dg/opt/pr89187.C eea9eb29aff452d80dae491fa69bef1b gcc/testsuite/g++.dg/opt/pr89188.C + 3e5f30b9a6314b526d4ca69c9d1c4b95 gcc/testsuite/g++.dg/opt/pr90026.C + 7842f073118719d55d2d03e047ef75de gcc/testsuite/g++.dg/opt/pr90090.C + 6a8ecb5087f6e681c993119a988900ef gcc/testsuite/g++.dg/opt/pr90187.C + 3d0bdb8c25ff94901cf3d1d3b911560a gcc/testsuite/g++.dg/opt/pr91838.C 1451eba24eea82cbd0c1ab87885c0f77 gcc/testsuite/g++.dg/opt/preinc1.C 0841088f825be785d32663d712ecf675 gcc/testsuite/g++.dg/opt/ptrintsum1.C 8ceccf2f02b3f64f372600e32148e146 gcc/testsuite/g++.dg/opt/ptrmem1.C *************** bc5371eb8e8dcf79efb0889828991560 gcc/te *** 16690,16697 **** 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 ! cdf089d667fbc8d619d3d71f858939b6 gcc/testsuite/g++.dg/other/i386-2.C ! ab8e94f519de0e2c0c53a7b0dc025bc0 gcc/testsuite/g++.dg/other/i386-3.C a4ad4c2cb3c1448496351241a77aedb7 gcc/testsuite/g++.dg/other/i386-4.C a32a5af1b4c57aabcbdaa817835a698d gcc/testsuite/g++.dg/other/i386-7.C b3ef431f4cf4776208d7042aff2ddb83 gcc/testsuite/g++.dg/other/i386-8.C --- 16785,16792 ---- 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 ! c8e556f2f50c7d141a7af4bc139ecd6b gcc/testsuite/g++.dg/other/i386-2.C ! 1c6aa25d2057137dafc4447e71a8c249 gcc/testsuite/g++.dg/other/i386-3.C a4ad4c2cb3c1448496351241a77aedb7 gcc/testsuite/g++.dg/other/i386-4.C a32a5af1b4c57aabcbdaa817835a698d gcc/testsuite/g++.dg/other/i386-7.C b3ef431f4cf4776208d7042aff2ddb83 gcc/testsuite/g++.dg/other/i386-8.C *************** f915e6694b9e2771166f40017bbcf352 gcc/te *** 16803,16808 **** --- 16898,16905 ---- 1005211d1d3f5bf76f7f8fff834a812f gcc/testsuite/g++.dg/other/pr84792-1.C 5bd2bbe902190f207cbdf2adf6dfbd60 gcc/testsuite/g++.dg/other/pr84792-2.C 13c0075f5c1ed3cc04f6b8285a72ad36 gcc/testsuite/g++.dg/other/pr86669.C + e716b31d86bef260a0d00fd877fbc9cf gcc/testsuite/g++.dg/other/pr88568.C + 64ff90efb0bd953cbcb7d0d41855c3b3 gcc/testsuite/g++.dg/other/pr92201.C 2b96e0cda3aaa703c284fca6a0dd72c9 gcc/testsuite/g++.dg/other/pragma-re-1.C bdec0c9208af6ee3a9ab1f2c07d3ba19 gcc/testsuite/g++.dg/other/pragma-re-2.C f804e6064a0c7cd94d73f58ba8f6e5e0 gcc/testsuite/g++.dg/other/profile1.C *************** b71aeb26aa9311659d87b7de1be00dcc gcc/te *** 16881,16893 **** 494fd275c1d67e2ced55a80500cbedec gcc/testsuite/g++.dg/overload/arg4.C 2462790168c7dfd3a860d6ca77ecec30 gcc/testsuite/g++.dg/overload/arg5.C 1e41ec11ca00276315dd010f205f9f90 gcc/testsuite/g++.dg/overload/autoptr1.C e549b742987ea4bf15156f2ff8b335da gcc/testsuite/g++.dg/overload/builtin1.C 3a79826fd499e94593a88f2c06436f3d gcc/testsuite/g++.dg/overload/builtin2.C a0b8fd80bfd82adaa23c61a98df112fb gcc/testsuite/g++.dg/overload/builtin3.C 2808df88b455ae0dd789dc64c1e34b25 gcc/testsuite/g++.dg/overload/cond1.C 5067a4c6731aae0336243d6867599e99 gcc/testsuite/g++.dg/overload/cond2.C 6a731890845f26e24f289431fa9741d7 gcc/testsuite/g++.dg/overload/conv-op1.C ! a728119e5f9989ed57498bfb03e79ac0 gcc/testsuite/g++.dg/overload/conv-op2.C 98a842578a616e44aeceebe22e18afd1 gcc/testsuite/g++.dg/overload/copy1.C b952933e6f52d065ea331a27b2e7852f gcc/testsuite/g++.dg/overload/defarg1.C 1fe01cdd569e9efdd1a736f06edff77b gcc/testsuite/g++.dg/overload/defarg10.C --- 16978,16991 ---- 494fd275c1d67e2ced55a80500cbedec gcc/testsuite/g++.dg/overload/arg4.C 2462790168c7dfd3a860d6ca77ecec30 gcc/testsuite/g++.dg/overload/arg5.C 1e41ec11ca00276315dd010f205f9f90 gcc/testsuite/g++.dg/overload/autoptr1.C + 11ea1c2f872eed9fbbeefd46eb0f83a9 gcc/testsuite/g++.dg/overload/bit-field1.C e549b742987ea4bf15156f2ff8b335da gcc/testsuite/g++.dg/overload/builtin1.C 3a79826fd499e94593a88f2c06436f3d gcc/testsuite/g++.dg/overload/builtin2.C a0b8fd80bfd82adaa23c61a98df112fb gcc/testsuite/g++.dg/overload/builtin3.C 2808df88b455ae0dd789dc64c1e34b25 gcc/testsuite/g++.dg/overload/cond1.C 5067a4c6731aae0336243d6867599e99 gcc/testsuite/g++.dg/overload/cond2.C 6a731890845f26e24f289431fa9741d7 gcc/testsuite/g++.dg/overload/conv-op1.C ! fbd791e505451bc9022bcc66d1461cd3 gcc/testsuite/g++.dg/overload/conv-op2.C 98a842578a616e44aeceebe22e18afd1 gcc/testsuite/g++.dg/overload/copy1.C b952933e6f52d065ea331a27b2e7852f gcc/testsuite/g++.dg/overload/defarg1.C 1fe01cdd569e9efdd1a736f06edff77b gcc/testsuite/g++.dg/overload/defarg10.C *************** d41d8cd98f00b204e9800998ecf8427e gcc/te *** 17495,17500 **** --- 17593,17600 ---- a42f209088bbce8d3650be5966861b6b gcc/testsuite/g++.dg/pch/pch.C 95603c8965412870090ed14011f4b123 gcc/testsuite/g++.dg/pch/pch.Hs 3a1f34b37f6b386e8bcb069dc289870a gcc/testsuite/g++.dg/pch/pch.exp + a79b4c14973bc580e45325abf4c19b72 gcc/testsuite/g++.dg/pch/pr90326.C + 8733db8bb02cf7abd5d7d07601acc332 gcc/testsuite/g++.dg/pch/pr90326.Hs 73dd9e7d0e0351552a2f49cc0882db47 gcc/testsuite/g++.dg/pch/static-1.C 4aaad0cfa4436b8cd8b37b1bf218edc8 gcc/testsuite/g++.dg/pch/static-1.Hs a5379c2bad433698a01b3bc2d5473a2e gcc/testsuite/g++.dg/pch/system-1.C *************** dd5b895f9e8e377b3fc861eecf9bdbf7 gcc/te *** 17644,17650 **** ee53985be6eef8ab3747c18a09b14caa gcc/testsuite/g++.dg/pr71624.C 24ad5a5a081cc68d9ccdaab0a8c765b2 gcc/testsuite/g++.dg/pr71633.C 8756c72da60c2ac8cdddc20291df82e3 gcc/testsuite/g++.dg/pr71655.C ! 61b9ffe86576d2921bd026841e1942db gcc/testsuite/g++.dg/pr71694.C 1202ce040862ab92e1f0e7f8da8f372a gcc/testsuite/g++.dg/pr71973-1.C 4d7bbea7ad49c81e67fcd756ddcfd12f gcc/testsuite/g++.dg/pr71973-2.C 77a4316445a154cba3284882042820df gcc/testsuite/g++.dg/pr71973-3.C --- 17744,17750 ---- ee53985be6eef8ab3747c18a09b14caa gcc/testsuite/g++.dg/pr71624.C 24ad5a5a081cc68d9ccdaab0a8c765b2 gcc/testsuite/g++.dg/pr71633.C 8756c72da60c2ac8cdddc20291df82e3 gcc/testsuite/g++.dg/pr71655.C ! e71ffaaf0dda0a585015ab52583b2b01 gcc/testsuite/g++.dg/pr71694.C 1202ce040862ab92e1f0e7f8da8f372a gcc/testsuite/g++.dg/pr71973-1.C 4d7bbea7ad49c81e67fcd756ddcfd12f gcc/testsuite/g++.dg/pr71973-2.C 77a4316445a154cba3284882042820df gcc/testsuite/g++.dg/pr71973-3.C *************** dcc31f0f329aae582ac1148fb671567d gcc/te *** 17701,17709 **** --- 17801,17813 ---- f6b4855994778cc13f15da54003f165c gcc/testsuite/g++.dg/pr85515-2.C 2844a2c2d799ba21b91bfa9ca470fa9e gcc/testsuite/g++.dg/pr85657.C fed9311785d1724d80180ea16a9d6995 gcc/testsuite/g++.dg/pr86374.C + 53b2b9b9c56ad36290f330d453afdfbf gcc/testsuite/g++.dg/pr86747.C 2f86b13bd3ca2c1d74d4969c2f53c08e gcc/testsuite/g++.dg/pr87185.C + d30d77c47257592a098c491dc29a80b1 gcc/testsuite/g++.dg/pr87770.C d0caf9e5362287726dc95d5165f20feb gcc/testsuite/g++.dg/pr88217.C f44929163adaa17a52ef23e11535a9dd gcc/testsuite/g++.dg/pr88998.C + 8d5a3269887286ec688e05d86356d904 gcc/testsuite/g++.dg/pr91173.C + 6e8d6b516059e08a5442ff7a7f944b34 gcc/testsuite/g++.dg/pr92022.C 80e57549741422847fb3acbd80e38ea8 gcc/testsuite/g++.dg/predict-loop-exit-1.C b6e066cc704bbace8cbfa3d84d6416c9 gcc/testsuite/g++.dg/predict-loop-exit-2.C 2ee9d3e34345a096b88c9c1968c037c7 gcc/testsuite/g++.dg/predict-loop-exit-3.C *************** b8b893e1844c502297d1e4e9591779ef gcc/te *** 18778,18783 **** --- 18882,18888 ---- a7bf058a51ee7236a37311a73bf15c69 gcc/testsuite/g++.dg/template/scope3.C b3e926a09671bb6d64fb4f63dde975e0 gcc/testsuite/g++.dg/template/scope4.C 77939ad3c1d2d8dd6718190f59d34cce gcc/testsuite/g++.dg/template/scope5.C + 0186275439ee5dd117414c26c3ceb2be gcc/testsuite/g++.dg/template/scope6.C 72ffb989291c9247b76445d291858548 gcc/testsuite/g++.dg/template/sfinae-dr657.C d4a6fe33f1456d026d068d25f316aa9c gcc/testsuite/g++.dg/template/sfinae1.C 08e40e1ccd7635d093d248a8b6295788 gcc/testsuite/g++.dg/template/sfinae10.C *************** ec6c7e65d57e2a70cb1a6852131a0f16 gcc/te *** 19104,19111 **** abcd9d688bd97352cf2201ae04eb0bcd gcc/testsuite/g++.dg/tls/pr66808.C 5b67d09a03c0a87ddd8fb4065b354311 gcc/testsuite/g++.dg/tls/pr69000.C f4ebaa2e9bc5b065a4c81b1ec15efe2c gcc/testsuite/g++.dg/tls/pr77285-1.C ! e0fc234d5008e949006f7c1d2462ab2d gcc/testsuite/g++.dg/tls/pr77285-2.C 98121ea9f83550dc4f25814e30c3a21d gcc/testsuite/g++.dg/tls/pr79288.C a9720fe58f11ddd0e2a21ab5df5a77bf gcc/testsuite/g++.dg/tls/static-1.C 29ba155db4cb83d5330b9a806c2cd296 gcc/testsuite/g++.dg/tls/static-1a.cc 40f776e4d949ac2761cee0de2064d991 gcc/testsuite/g++.dg/tls/static2.C --- 19209,19217 ---- abcd9d688bd97352cf2201ae04eb0bcd gcc/testsuite/g++.dg/tls/pr66808.C 5b67d09a03c0a87ddd8fb4065b354311 gcc/testsuite/g++.dg/tls/pr69000.C f4ebaa2e9bc5b065a4c81b1ec15efe2c gcc/testsuite/g++.dg/tls/pr77285-1.C ! 2cbcc4da79d109e544b95de73592684e gcc/testsuite/g++.dg/tls/pr77285-2.C 98121ea9f83550dc4f25814e30c3a21d gcc/testsuite/g++.dg/tls/pr79288.C + eaa257e5d01462b4484236d4e40a6e81 gcc/testsuite/g++.dg/tls/pr85400.C a9720fe58f11ddd0e2a21ab5df5a77bf gcc/testsuite/g++.dg/tls/static-1.C 29ba155db4cb83d5330b9a806c2cd296 gcc/testsuite/g++.dg/tls/static-1a.cc 40f776e4d949ac2761cee0de2064d991 gcc/testsuite/g++.dg/tls/static2.C *************** e4cfba8fd55d0168821bd21efa0237d8 gcc/te *** 19122,19127 **** --- 19228,19248 ---- 99dccd364a36e6a92aff0c835b1005ec gcc/testsuite/g++.dg/tls/thread_local-wrap4.C 29af05035afeff433899afc9dd95e242 gcc/testsuite/g++.dg/tls/thread_local1.C 8c04798ad83e68ad71e341845cf0aeea gcc/testsuite/g++.dg/tls/thread_local10.C + d51480fe7dc0200fc725bf275a051cb5 gcc/testsuite/g++.dg/tls/thread_local11.C + 8d34f091643f50841b92580e83aa27fb gcc/testsuite/g++.dg/tls/thread_local11.h + 9ba00c6b2ff009c3c09ac3dc8f87325b gcc/testsuite/g++.dg/tls/thread_local11a.C + 4ee3a501daaa3f91b5a4941105652046 gcc/testsuite/g++.dg/tls/thread_local12a.C + 07a03169e8eaaa6a65499c38ca8154a8 gcc/testsuite/g++.dg/tls/thread_local12b.C + cfa272153ce2e8b87bddf23c6c971e83 gcc/testsuite/g++.dg/tls/thread_local12c.C + 7d539c2fee82717ebf1ad60ba091e890 gcc/testsuite/g++.dg/tls/thread_local12d.C + 2f53ea521803b3719811b517b1071942 gcc/testsuite/g++.dg/tls/thread_local12e.C + b10c9b604da95af284abb90c70bbe962 gcc/testsuite/g++.dg/tls/thread_local12f.C + 2852fc0e74cee314c443e70cb6a4dbf0 gcc/testsuite/g++.dg/tls/thread_local12g.C + eec5b49db7ec33fc099a967e0568bb60 gcc/testsuite/g++.dg/tls/thread_local12h.C + f7e4853292654f0af6a0a460b8924add gcc/testsuite/g++.dg/tls/thread_local12i.C + 6e16acccf0c9f3e11f613dd140679e49 gcc/testsuite/g++.dg/tls/thread_local12j.C + 9eb8b3d800f83f9d7d869d484abd19e6 gcc/testsuite/g++.dg/tls/thread_local12k.C + b6d15debf41ad15b105889629ec239cc gcc/testsuite/g++.dg/tls/thread_local12l.C 24b7dce2c6b463d883c54b5a853ce0ad gcc/testsuite/g++.dg/tls/thread_local2.C 6c980c168dd76bd2823f2ec310b5f47b gcc/testsuite/g++.dg/tls/thread_local2g.C 6c7d3f08d2224c4d24f97029d8604655 gcc/testsuite/g++.dg/tls/thread_local3.C *************** c004bb94adc4b3e0994cc5b6d5ebfb2c gcc/te *** 19634,19639 **** --- 19755,19767 ---- dbe58e15424b476b932c58cb5bc16046 gcc/testsuite/g++.dg/torture/pr88149.C cf4f053f829cc77941d9499636dba788 gcc/testsuite/g++.dg/torture/pr88861.C 28251f0199f94a1606cac696e1db484b gcc/testsuite/g++.dg/torture/pr89303.C + 6295f2521ee059610fe7d8e12800e20b gcc/testsuite/g++.dg/torture/pr89698.C + 922274fa2bea46eb7cee843b1f139ab8 gcc/testsuite/g++.dg/torture/pr90194.C + 38d5ed9578a5910b56d57c30c896f01f gcc/testsuite/g++.dg/torture/pr90313.cc + 8512e0d79849c3153a1290024a552a14 gcc/testsuite/g++.dg/torture/pr91280.C + 7782e7a66949621445617364c753a54f gcc/testsuite/g++.dg/torture/pr91355.C + 1779028417f5f8e86e290051fd916516 gcc/testsuite/g++.dg/torture/pr92384.C + 128505e31d0c3cfec9b59aafee1a7c1a gcc/testsuite/g++.dg/torture/pr93246.C e47702cb1ff0caccc17257524e8667dc gcc/testsuite/g++.dg/torture/predcom-1.C d28910105d9c9253d94d70eacd5e19d4 gcc/testsuite/g++.dg/torture/pushpop_macro.C a1b47b9c3e69d79d1895ebc4fd11032b gcc/testsuite/g++.dg/torture/stackalign/check.h *************** a6b6c621d64b00088b0f48ed440c6eef gcc/te *** 19680,19686 **** 32deb52456e2c877b19ce1b44739b3e1 gcc/testsuite/g++.dg/torture/vshuf-v8hi.C b6c068331ea8c597c13f4878202542bd gcc/testsuite/g++.dg/torture/vshuf-v8qi.C fd3e16a63f00c852c7ac13cbaf5de3b5 gcc/testsuite/g++.dg/torture/vshuf-v8si.C ! 95c8c384ea0250791829fd367ecc00ed gcc/testsuite/g++.dg/tree-prof/devirt.C 80d09170dea54500770122f27eddf44e gcc/testsuite/g++.dg/tree-prof/indir-call-prof-2.C a8ac3db48c22a7a54522feb6797d420c gcc/testsuite/g++.dg/tree-prof/indir-call-prof.C 2c6a8956c863c089e403d87ce622c9b5 gcc/testsuite/g++.dg/tree-prof/inline_mismatch_args.C --- 19808,19814 ---- 32deb52456e2c877b19ce1b44739b3e1 gcc/testsuite/g++.dg/torture/vshuf-v8hi.C b6c068331ea8c597c13f4878202542bd gcc/testsuite/g++.dg/torture/vshuf-v8qi.C fd3e16a63f00c852c7ac13cbaf5de3b5 gcc/testsuite/g++.dg/torture/vshuf-v8si.C ! 861708a27c776240cb0b1d6844d5b803 gcc/testsuite/g++.dg/tree-prof/devirt.C 80d09170dea54500770122f27eddf44e gcc/testsuite/g++.dg/tree-prof/indir-call-prof-2.C a8ac3db48c22a7a54522feb6797d420c gcc/testsuite/g++.dg/tree-prof/indir-call-prof.C 2c6a8956c863c089e403d87ce622c9b5 gcc/testsuite/g++.dg/tree-prof/inline_mismatch_args.C *************** a8fec5c2428ff5aa3f865ba34c0b76b8 gcc/te *** 19861,19866 **** --- 19989,19995 ---- 07328ee6469ac64e4bd4807c2a72bd66 gcc/testsuite/g++.dg/tree-ssa/pr81719.C 8f34a42b700068a3be53751206c5e499 gcc/testsuite/g++.dg/tree-ssa/pr82294.C 99096ec4f30fcdb55089995ea662cded gcc/testsuite/g++.dg/tree-ssa/pr83523.C + b275e1ed3abd90cc7e8e421e8c6062b9 gcc/testsuite/g++.dg/tree-ssa/pr87008.C cfcb017784f2c8d78d4dc8299526d486 gcc/testsuite/g++.dg/tree-ssa/pr87436.C 0a76fdd924fd4c13bb8cfcecab0cb88a gcc/testsuite/g++.dg/tree-ssa/pr8781.C b8201bfa7e55c2eb8fbf876e25c8e4a4 gcc/testsuite/g++.dg/tree-ssa/pred-1.C *************** cbba22e9568932c7e9798b4143e8babf gcc/te *** 19879,19884 **** --- 20008,20014 ---- 3fc97853b7f5a33a82d43b9c8b97e80a gcc/testsuite/g++.dg/tree-ssa/ssa-sra-3.C 21d667243f1873cc74a1060b9e5a0f15 gcc/testsuite/g++.dg/tree-ssa/ssa-store-ccp-1.C 49ee787a379cb6910b9e5718ae694e10 gcc/testsuite/g++.dg/tree-ssa/stabilize1.C + 2a5935f325533fa199bc7f5e3b2b36d5 gcc/testsuite/g++.dg/tree-ssa/tail-call-1.C 0fb08fd6d187247ae5872931e884061c gcc/testsuite/g++.dg/tree-ssa/tmmti.C 67826d6c8638dba46a4b37835998f34a gcc/testsuite/g++.dg/tree-ssa/volatile1.C 927ac273b42ce90eecf5fb0ad135f1c0 gcc/testsuite/g++.dg/tree-ssa/volatile2.C *************** b1a38b150fef25f02239b481561ad148 gcc/te *** 19992,19997 **** --- 20122,20128 ---- 7871fdd28f8d26bc692ef38fd24d6573 gcc/testsuite/g++.dg/ubsan/vptr-11.C 7ea8c58d0c37f70dfea7b71ab85c3a47 gcc/testsuite/g++.dg/ubsan/vptr-12.C 15e8bf03defcc64ccdf3ff070adfbf9c gcc/testsuite/g++.dg/ubsan/vptr-13.C + eb65a43bfca2604f5a8b2e2f09212f46 gcc/testsuite/g++.dg/ubsan/vptr-14.C cef046f562c0a23eb331cea94cd5b44f gcc/testsuite/g++.dg/ubsan/vptr-2.C 729147822cd9bf5bf718456c1dbff28d gcc/testsuite/g++.dg/ubsan/vptr-3.C 6d748dbe9831f330d94427b44994cd9f gcc/testsuite/g++.dg/ubsan/vptr-4.C *************** be3d4fa6911580b9269c3ea654b72a7e gcc/te *** 20460,20465 **** --- 20591,20597 ---- 8cdb559ffcb9d887ccbede485723468a gcc/testsuite/g++.dg/warn/conv2.C cc281c397d45da8c573eee459fc65fa7 gcc/testsuite/g++.dg/warn/conv3.C e668b1c05f8d62f23aa769b40e21b385 gcc/testsuite/g++.dg/warn/conv4.C + 7478d9dc40665955e770c76d8277b49c gcc/testsuite/g++.dg/warn/conv5.C a13aaa30037789e1fbc1e83bdcbaff93 gcc/testsuite/g++.dg/warn/conversion-function-1.C 8b6a24e6dff932758440714c76e47fa2 gcc/testsuite/g++.dg/warn/conversion-real-integer-3.h d5fcd483303360915cb089b93fa1cd74 gcc/testsuite/g++.dg/warn/ctor-dtor-privacy-1.C *************** a74fd600765c662baf7c526fbc93a717 gcc/te *** 24367,24372 **** --- 24499,24505 ---- 9b8a22271d9f19237c0612402fc99963 gcc/testsuite/gcc.c-torture/compile/20161124-1.c ba7ecb97d3019d0ba80490d9c7b12ca8 gcc/testsuite/gcc.c-torture/compile/20170419-1.c 4de7411043b03c153c5efe80020e17d5 gcc/testsuite/gcc.c-torture/compile/20180309-1.c + 6c8411f42f9f7fcab63cbfd6cba8eb38 gcc/testsuite/gcc.c-torture/compile/20191108-1.c ebed49e0868fa97d60c12191fa496d07 gcc/testsuite/gcc.c-torture/compile/386.c 9681568709601cbb39a156fa04526182 gcc/testsuite/gcc.c-torture/compile/86.c ab32e65ea5976f9083dc8234dae65343 gcc/testsuite/gcc.c-torture/compile/900116-1.c *************** d2abfdabdbeb6670f7a517aaa74714b3 gcc/te *** 25480,25486 **** 231fb44a71ba7441d73d3169fe8d727a gcc/testsuite/gcc.c-torture/compile/pr72742.c 4804583cdbcf43906c92312b12f102ec gcc/testsuite/gcc.c-torture/compile/pr72749.c 05499a956abf0168b43207b10ff55b6f gcc/testsuite/gcc.c-torture/compile/pr72771.c ! bd9f10a73e289f0fdac2ce08641816f0 gcc/testsuite/gcc.c-torture/compile/pr72802.c 69f131eecfe2e8d743fa8534acd3d542 gcc/testsuite/gcc.c-torture/compile/pr77901.c 1b4de683f3cdcab42ba24cd8b0866196 gcc/testsuite/gcc.c-torture/compile/pr77929.c aadd21b68c00eaa36b449d0c7b5c4a14 gcc/testsuite/gcc.c-torture/compile/pr78162.c --- 25613,25619 ---- 231fb44a71ba7441d73d3169fe8d727a gcc/testsuite/gcc.c-torture/compile/pr72742.c 4804583cdbcf43906c92312b12f102ec gcc/testsuite/gcc.c-torture/compile/pr72749.c 05499a956abf0168b43207b10ff55b6f gcc/testsuite/gcc.c-torture/compile/pr72771.c ! cc75623377210ae96adbf2222955e9c4 gcc/testsuite/gcc.c-torture/compile/pr72802.c 69f131eecfe2e8d743fa8534acd3d542 gcc/testsuite/gcc.c-torture/compile/pr77901.c 1b4de683f3cdcab42ba24cd8b0866196 gcc/testsuite/gcc.c-torture/compile/pr77929.c aadd21b68c00eaa36b449d0c7b5c4a14 gcc/testsuite/gcc.c-torture/compile/pr78162.c *************** eb0762c46d9f677b37463d0ebd0f51e1 gcc/te *** 25551,25556 **** --- 25684,25704 ---- 5e2cb965bc8d621dfa1a8d8dd4e3dce9 gcc/testsuite/gcc.c-torture/compile/pr86123.c c07cb6bbf144841ec62369603efc6e0b gcc/testsuite/gcc.c-torture/compile/pr87473.c 7bb746aff7daab01a69c68ac718afce2 gcc/testsuite/gcc.c-torture/compile/pr87647.c + d16a0436ee4e7c019d745cad343ff18b gcc/testsuite/gcc.c-torture/compile/pr89412.c + 7e90de04544a1d8e3c372e47c2627c60 gcc/testsuite/gcc.c-torture/compile/pr89655.c + fc86c5909e9a80383dab6366a0f8648d gcc/testsuite/gcc.c-torture/compile/pr89663-1.c + 4179c42c98ca2dbabe246deb1ea1ad0e gcc/testsuite/gcc.c-torture/compile/pr89663-2.c + 85c74cdcb2f35d038f3606a817979061 gcc/testsuite/gcc.c-torture/compile/pr89703-1.c + 834bb0f0fe637b3f72cd75082e139b0a gcc/testsuite/gcc.c-torture/compile/pr89703-2.c + 9e0af4f9e229aa8a0151b863c40f3072 gcc/testsuite/gcc.c-torture/compile/pr89998-1.c + 28107e4eddc0810b8c90657b7cca7ab0 gcc/testsuite/gcc.c-torture/compile/pr89998-2.c + 99639c63132deca7d94430de65a54739 gcc/testsuite/gcc.c-torture/compile/pr90139.c + e11a1416fe433daf1bcec941d4d1ce98 gcc/testsuite/gcc.c-torture/compile/pr90840.c + a030cf60882ea26ac44f293f1ecbd5e0 gcc/testsuite/gcc.c-torture/compile/pr91001.c + 662f32f637e1c11befa59dbfbf1e1d6e gcc/testsuite/gcc.c-torture/compile/pr92056.c + dc8f609dbb0db163caa0e7adfc5d9240 gcc/testsuite/gcc.c-torture/compile/pr93333.c + 156dbb8af2805f1d7b1d39d0088f5b2f gcc/testsuite/gcc.c-torture/compile/pr93348-1.c + 620d5c7d92e3c8bc73e14d8ac589036a gcc/testsuite/gcc.c-torture/compile/pr93505.c 9611ffa8936d9c80d0a9ccde8dd093b2 gcc/testsuite/gcc.c-torture/compile/pret-arg.c b9e6ce52b90320c1c3803c25113844c5 gcc/testsuite/gcc.c-torture/compile/pta-1.c ed716c1d1727fc2c748162e0cbc4ee47 gcc/testsuite/gcc.c-torture/compile/ptr-conv-1.c *************** c7ff39348e400954a9509ab75b431894 gcc/te *** 26138,26143 **** --- 26286,26295 ---- c498b868df794aac4975b6925c3f0d24 gcc/testsuite/gcc.c-torture/execute/20180131-1.c a024382373a506e7761148108043c429 gcc/testsuite/gcc.c-torture/execute/20180226-1.c 03e6abf4c7580822fb8fcbb32c3bb34a gcc/testsuite/gcc.c-torture/execute/20181120-1.c + ecbbfd4b186a0dd8448d96f39a543fb4 gcc/testsuite/gcc.c-torture/execute/20190228-1.c + 0e7e458f83ab35a789bf9cae2f121b53 gcc/testsuite/gcc.c-torture/execute/20190820-1.c + 48e80df21591c4156020fdd4a386b2f4 gcc/testsuite/gcc.c-torture/execute/20190901-1.c + 2e368329bfad3d99e406eade7d55032d gcc/testsuite/gcc.c-torture/execute/20191023-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 *************** caa74354806f94b1777d3d438547d909 gcc/te *** 26474,26480 **** d7d9ce89ee3d3fe0e8938f62790f051e gcc/testsuite/gcc.c-torture/execute/builtins/abs-2.c 1dda6f7a5d9ce23a5db5f59c430ae29e gcc/testsuite/gcc.c-torture/execute/builtins/abs-3-lib.c 8784d3bd9b264b3c2abfb7b7ea25ccb6 gcc/testsuite/gcc.c-torture/execute/builtins/abs-3.c ! 5a5a8049360b0b34c2b64e6928160e1d gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp 82dc8c0cc07405b06eb5eee9b43cb713 gcc/testsuite/gcc.c-torture/execute/builtins/chk.h f36e146a2aececdc84d9199d53a363ec gcc/testsuite/gcc.c-torture/execute/builtins/complex-1-lib.c 8b5a662c0134cd00115a5866e1c0b6c9 gcc/testsuite/gcc.c-torture/execute/builtins/complex-1.c --- 26626,26632 ---- d7d9ce89ee3d3fe0e8938f62790f051e gcc/testsuite/gcc.c-torture/execute/builtins/abs-2.c 1dda6f7a5d9ce23a5db5f59c430ae29e gcc/testsuite/gcc.c-torture/execute/builtins/abs-3-lib.c 8784d3bd9b264b3c2abfb7b7ea25ccb6 gcc/testsuite/gcc.c-torture/execute/builtins/abs-3.c ! 689008fc242c04a28772d765336c0a24 gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp 82dc8c0cc07405b06eb5eee9b43cb713 gcc/testsuite/gcc.c-torture/execute/builtins/chk.h f36e146a2aececdc84d9199d53a363ec gcc/testsuite/gcc.c-torture/execute/builtins/complex-1-lib.c 8b5a662c0134cd00115a5866e1c0b6c9 gcc/testsuite/gcc.c-torture/execute/builtins/complex-1.c *************** b0302a41f89aa28cacf4f6f513b724d5 gcc/te *** 27296,27301 **** --- 27448,27464 ---- be5244d3595e8650a26f33594260da75 gcc/testsuite/gcc.c-torture/execute/pr87623.c 02748f1c49306654aaf30f2433dce5e7 gcc/testsuite/gcc.c-torture/execute/pr88739.c f864350b54f06af7e11f09f29c9e0976 gcc/testsuite/gcc.c-torture/execute/pr89195.c + 5235b3e2d6dd776b53d6a44ba5933a8a gcc/testsuite/gcc.c-torture/execute/pr90949.c + 7f239d011b9e98943acdc8e3437ed19c gcc/testsuite/gcc.c-torture/execute/pr91137.c + 3d5a788c848a67ade7bd18ab62494a1a gcc/testsuite/gcc.c-torture/execute/pr91450-1.c + 7a2c17f605bcf1dd060a1a6ea28c2426 gcc/testsuite/gcc.c-torture/execute/pr91450-2.c + a11f543d4a1ab92e9bc0bd9bcd9816f5 gcc/testsuite/gcc.c-torture/execute/pr92904.c + 90c78675453ac190d2a254a078d099c1 gcc/testsuite/gcc.c-torture/execute/pr93402.c + 174f51890ae625613e2e537d9dcddde5 gcc/testsuite/gcc.c-torture/execute/pr93434.c + 13a74d12f5839ced4211c221b624b70f gcc/testsuite/gcc.c-torture/execute/pr93744-1.c + 03c35d47d6c95b626a3218270d720ae5 gcc/testsuite/gcc.c-torture/execute/pr93744-2.c + 0718f4fea607ff381b848dbf0d8407ed gcc/testsuite/gcc.c-torture/execute/pr93744-3.c + b5fa8dac56892459f774433ef510a1ef gcc/testsuite/gcc.c-torture/execute/pr93908.c 8587088d2eab0e974762ba6cd20b4f04 gcc/testsuite/gcc.c-torture/execute/printf-1.c 9e89c9802e280d635a7bc6756bbaf6e6 gcc/testsuite/gcc.c-torture/execute/printf-chk-1.c f397d221ccf3a7ce631cf42078dfadb5 gcc/testsuite/gcc.c-torture/execute/pta-field-1.c *************** b4a524baa9581904a5f7b7e0d7ca6a76 gcc/te *** 27673,27678 **** --- 27836,27842 ---- dedff38471f8963dc7ff6b71f19af4e2 gcc/testsuite/gcc.dg/Warray-bounds-26.c 57d135c63b4ee7667d3bee8da66ddf5e gcc/testsuite/gcc.dg/Warray-bounds-27.c 840b91726d80efd539ceaa9d94e030d3 gcc/testsuite/gcc.dg/Warray-bounds-3.c + e7237b88231aff2adb46cd199c02550b gcc/testsuite/gcc.dg/Warray-bounds-38.c 84a306ba6a47b60426131bffe9ec7a0c gcc/testsuite/gcc.dg/Warray-bounds-4.c 6a53ea6731c8e33605392ac843284e1c gcc/testsuite/gcc.dg/Warray-bounds-5.c 80c3d31a9d8de2d05bed1c5c1e97d4c5 gcc/testsuite/gcc.dg/Warray-bounds-6.c *************** cf21dd47d3e7a7fd332e4ebdad43f47f gcc/te *** 27797,27803 **** d45570f5347d0d2fceb2f46d5bb28195 gcc/testsuite/gcc.dg/Wno-c++-compat.c 7f60b5af8c1dff4f89ed11fab109c8b4 gcc/testsuite/gcc.dg/Wno-frame-address.c 78b26e55f8111808885390fc48d39f07 gcc/testsuite/gcc.dg/Wno-pointer-sign.c ! 32a3988bca4d90d3b290e472fb83a91a gcc/testsuite/gcc.dg/Wnonnull.c d7f40d768e2fdadb8ed5f332424b19cf gcc/testsuite/gcc.dg/Wobjsize-1.c 964f8252363c2458931200da17eaaa36 gcc/testsuite/gcc.dg/Wobjsize-1.h b92f8933f909c18a277ea167043b2847 gcc/testsuite/gcc.dg/Wold-style-definition-1.c --- 27961,27967 ---- d45570f5347d0d2fceb2f46d5bb28195 gcc/testsuite/gcc.dg/Wno-c++-compat.c 7f60b5af8c1dff4f89ed11fab109c8b4 gcc/testsuite/gcc.dg/Wno-frame-address.c 78b26e55f8111808885390fc48d39f07 gcc/testsuite/gcc.dg/Wno-pointer-sign.c ! 12ac8bc4beaf9edbdf04979c8dfcb9e8 gcc/testsuite/gcc.dg/Wnonnull.c d7f40d768e2fdadb8ed5f332424b19cf gcc/testsuite/gcc.dg/Wobjsize-1.c 964f8252363c2458931200da17eaaa36 gcc/testsuite/gcc.dg/Wobjsize-1.h b92f8933f909c18a277ea167043b2847 gcc/testsuite/gcc.dg/Wold-style-definition-1.c *************** be349c0f6745f738b75eebe351eb5ce7 gcc/te *** 27855,27864 **** 5c7cf282f4ade91736b5de962360e5b3 gcc/testsuite/gcc.dg/Wrestrict-13.c 96c634fc42f32d2a1dc101e8a5820792 gcc/testsuite/gcc.dg/Wrestrict-14.c edb85a6dc78ac1a3ce7b7783eff620d4 gcc/testsuite/gcc.dg/Wrestrict-15.c 7d01961948e81451fba10af184d093f0 gcc/testsuite/gcc.dg/Wrestrict-2.c 8419743602ff50406cde80f5966c551d gcc/testsuite/gcc.dg/Wrestrict-3.c 07f4f332cda46221955286f0fd5cbebf gcc/testsuite/gcc.dg/Wrestrict-4.c ! bf1c529ffa4716ac2cb9305b8237395b gcc/testsuite/gcc.dg/Wrestrict-5.c 83f097af71656455067f53c0f31b61dd gcc/testsuite/gcc.dg/Wrestrict-6.c fe0626428135706f333c543b692a92d1 gcc/testsuite/gcc.dg/Wrestrict-7.c ca4f1b5ab467df7523ff4071434ec4df gcc/testsuite/gcc.dg/Wrestrict-8.c --- 28019,28029 ---- 5c7cf282f4ade91736b5de962360e5b3 gcc/testsuite/gcc.dg/Wrestrict-13.c 96c634fc42f32d2a1dc101e8a5820792 gcc/testsuite/gcc.dg/Wrestrict-14.c edb85a6dc78ac1a3ce7b7783eff620d4 gcc/testsuite/gcc.dg/Wrestrict-15.c + 3f0ddf7c21de29e84429165c4bd8fd4e gcc/testsuite/gcc.dg/Wrestrict-19.c 7d01961948e81451fba10af184d093f0 gcc/testsuite/gcc.dg/Wrestrict-2.c 8419743602ff50406cde80f5966c551d gcc/testsuite/gcc.dg/Wrestrict-3.c 07f4f332cda46221955286f0fd5cbebf gcc/testsuite/gcc.dg/Wrestrict-4.c ! aa49b4aca6859af0aaabacf328e0fba7 gcc/testsuite/gcc.dg/Wrestrict-5.c 83f097af71656455067f53c0f31b61dd gcc/testsuite/gcc.dg/Wrestrict-6.c fe0626428135706f333c543b692a92d1 gcc/testsuite/gcc.dg/Wrestrict-7.c ca4f1b5ab467df7523ff4071434ec4df gcc/testsuite/gcc.dg/Wrestrict-8.c *************** a345c8424d097325ceddaefa74a387d5 gcc/te *** 28276,28281 **** --- 28441,28447 ---- d4c6704efcf13b06e8298878fac4997e gcc/testsuite/gcc.dg/autopar/pr69110.c 0a5194faeff35d018f0826c0ededa45b gcc/testsuite/gcc.dg/autopar/pr69426.c 3e6146dc074b29e53924ebb8947bcb10 gcc/testsuite/gcc.dg/autopar/pr83957.c + 9f783e9011aea086e00128ca4b6390a4 gcc/testsuite/gcc.dg/autopar/pr91162.c cfcabb1d73fb9955200dafe2f7cd4eda gcc/testsuite/gcc.dg/autopar/reduc-1.c bd8dcababb2b878b4b2e6a7b44270723 gcc/testsuite/gcc.dg/autopar/reduc-1char.c faacb19babd5a7b53cfd57e60279fa11 gcc/testsuite/gcc.dg/autopar/reduc-1short.c *************** d8272e1d572d33a852614f0a74a31345 gcc/te *** 28522,28527 **** --- 28688,28694 ---- f9262f126c900d76cdb16f0afbfc600f gcc/testsuite/gcc.dg/c11-noreturn-5.c d595f49307eb5192b976a26bca7a9c80 gcc/testsuite/gcc.dg/c11-pointer-float-1.c efe9f8d43440cd3d52de742b3f407e19 gcc/testsuite/gcc.dg/c11-static-assert-1.c + 7108e0131dd58f0a0943232e07ae7a08 gcc/testsuite/gcc.dg/c11-static-assert-10.c 1e1c0e1555e17610aa6e95027b7f72c1 gcc/testsuite/gcc.dg/c11-static-assert-2.c ae86538f5b127d2943d01429510fe5ee gcc/testsuite/gcc.dg/c11-static-assert-3.c d7ef98239e7c17e364c10debfa89d9d2 gcc/testsuite/gcc.dg/c11-static-assert-4.c *************** ba2db177292eaaf55d14598ece867f4d gcc/te *** 28636,28641 **** --- 28803,28809 ---- 351160cb991a2541a836d78ff5a3d7a7 gcc/testsuite/gcc.dg/c99-const-expr-12.c be44655002ff53b455ed10f2b01571fe gcc/testsuite/gcc.dg/c99-const-expr-13.c 601921df5dca967e56d6ff0c58d11e1a gcc/testsuite/gcc.dg/c99-const-expr-14.c + 59aa40df8c80917e30f6ec6cca1ecd5b gcc/testsuite/gcc.dg/c99-const-expr-15.c 2b0ea14af55d8b5c0efa00351b0200a5 gcc/testsuite/gcc.dg/c99-const-expr-2.c 1a41201d98b7cec1fa4768ff010f2243 gcc/testsuite/gcc.dg/c99-const-expr-3.c 8a0c3caa2946e119d2ac9291c14b168f gcc/testsuite/gcc.dg/c99-const-expr-4.c *************** fefb3e35a8a1d6bc164a6eb33d7fdbb6 gcc/te *** 29274,29280 **** 99a74985c69613ac4a42ee34fb74051f gcc/testsuite/gcc.dg/cpp/include5.c 407474d1770120e01043176212576177 gcc/testsuite/gcc.dg/cpp/include6.c b169efc722fc4f26173ce092c4172e89 gcc/testsuite/gcc.dg/cpp/include7.c ! 10a60705ad3a511b1b8d4078bd299c37 gcc/testsuite/gcc.dg/cpp/isysroot-1.c d2356c14719220729fca6a1807576fd6 gcc/testsuite/gcc.dg/cpp/isysroot-2.c 6aec7ee07d2c4b1e4dbca7996c29c33d gcc/testsuite/gcc.dg/cpp/lexident.c ed521ab2015dc11905c0db0f47732ede gcc/testsuite/gcc.dg/cpp/lexnum.c --- 29442,29448 ---- 99a74985c69613ac4a42ee34fb74051f gcc/testsuite/gcc.dg/cpp/include5.c 407474d1770120e01043176212576177 gcc/testsuite/gcc.dg/cpp/include6.c b169efc722fc4f26173ce092c4172e89 gcc/testsuite/gcc.dg/cpp/include7.c ! d5a926e3d208d77f347b69e459787e36 gcc/testsuite/gcc.dg/cpp/isysroot-1.c d2356c14719220729fca6a1807576fd6 gcc/testsuite/gcc.dg/cpp/isysroot-2.c 6aec7ee07d2c4b1e4dbca7996c29c33d gcc/testsuite/gcc.dg/cpp/lexident.c ed521ab2015dc11905c0db0f47732ede gcc/testsuite/gcc.dg/cpp/lexnum.c *************** fe82f155f148a27e0e5e22f4daa9c8a9 gcc/te *** 29589,29595 **** 3c434fbf69ab63118b91a596ff524ca3 gcc/testsuite/gcc.dg/cpp/unc4.c 34fc89f1d246197a5b7c09184e223c2d gcc/testsuite/gcc.dg/cpp/undef-opt-1.c 98e3377149a8eb0003f1fc9545eb39cb gcc/testsuite/gcc.dg/cpp/undef2.c ! b580fc14655d151bc7323c9844094653 gcc/testsuite/gcc.dg/cpp/usr/include/stdio.h b2573d118970340cf652e946e2f42a3c gcc/testsuite/gcc.dg/cpp/utf8-5byte-1.c 2adb7d5686ff190b39e11527a9b2fece gcc/testsuite/gcc.dg/cpp/vararg1.c 7d4c3e4f46665b8a19524995ee62bdf7 gcc/testsuite/gcc.dg/cpp/vararg2.c --- 29757,29763 ---- 3c434fbf69ab63118b91a596ff524ca3 gcc/testsuite/gcc.dg/cpp/unc4.c 34fc89f1d246197a5b7c09184e223c2d gcc/testsuite/gcc.dg/cpp/undef-opt-1.c 98e3377149a8eb0003f1fc9545eb39cb gcc/testsuite/gcc.dg/cpp/undef2.c ! b580fc14655d151bc7323c9844094653 gcc/testsuite/gcc.dg/cpp/usr/include/example.h b2573d118970340cf652e946e2f42a3c gcc/testsuite/gcc.dg/cpp/utf8-5byte-1.c 2adb7d5686ff190b39e11527a9b2fece gcc/testsuite/gcc.dg/cpp/vararg1.c 7d4c3e4f46665b8a19524995ee62bdf7 gcc/testsuite/gcc.dg/cpp/vararg2.c *************** c9fb88e0f1b5c073a2385125ee506c3d gcc/te *** 29647,29657 **** fb5a1322bd685744938894a0d61c31cd gcc/testsuite/gcc.dg/darwin-ld-3.c 9403f2a573873e69a5f66d792f2002b9 gcc/testsuite/gcc.dg/darwin-ld-4.c ac166dddd60ee5e26796af85796e8ce4 gcc/testsuite/gcc.dg/darwin-ld-5.c ! fe43be65e311390f6095588e6e663238 gcc/testsuite/gcc.dg/darwin-minversion-1.c 8d9b0ae7630ed3e5ea62d8f528be9535 gcc/testsuite/gcc.dg/darwin-minversion-10.c 2710c165e530b0df4195d645b6818a14 gcc/testsuite/gcc.dg/darwin-minversion-11.c a83187c00bd86f2436c9e84b40b88937 gcc/testsuite/gcc.dg/darwin-minversion-12.c ! 944161eec9e0dffb752119544a188705 gcc/testsuite/gcc.dg/darwin-minversion-2.c 7f95fd24b4c6320826303eb18bf069e5 gcc/testsuite/gcc.dg/darwin-minversion-3.c 6397e1571ab9acb562272433e8b604f5 gcc/testsuite/gcc.dg/darwin-minversion-4.c f82c26e49414aa09e3346f397544e64e gcc/testsuite/gcc.dg/darwin-minversion-5.c --- 29815,29825 ---- fb5a1322bd685744938894a0d61c31cd gcc/testsuite/gcc.dg/darwin-ld-3.c 9403f2a573873e69a5f66d792f2002b9 gcc/testsuite/gcc.dg/darwin-ld-4.c ac166dddd60ee5e26796af85796e8ce4 gcc/testsuite/gcc.dg/darwin-ld-5.c ! f88d22acd71cc3219834b77615cedbc8 gcc/testsuite/gcc.dg/darwin-minversion-1.c 8d9b0ae7630ed3e5ea62d8f528be9535 gcc/testsuite/gcc.dg/darwin-minversion-10.c 2710c165e530b0df4195d645b6818a14 gcc/testsuite/gcc.dg/darwin-minversion-11.c a83187c00bd86f2436c9e84b40b88937 gcc/testsuite/gcc.dg/darwin-minversion-12.c ! 0ee0b5bc033ff95d344923707892a0f3 gcc/testsuite/gcc.dg/darwin-minversion-2.c 7f95fd24b4c6320826303eb18bf069e5 gcc/testsuite/gcc.dg/darwin-minversion-3.c 6397e1571ab9acb562272433e8b604f5 gcc/testsuite/gcc.dg/darwin-minversion-4.c f82c26e49414aa09e3346f397544e64e gcc/testsuite/gcc.dg/darwin-minversion-5.c *************** ee94511375797117140ca777fd1695b1 gcc/te *** 29659,29670 **** 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 333be43e38c5b8f9c8bde5d01493902a gcc/testsuite/gcc.dg/darwin-sections.c 3cfa6daebed9a12884613012f50433e4 gcc/testsuite/gcc.dg/darwin-segaddr.c ! c9bd4478d375a6bea777dcc7c9667d5a gcc/testsuite/gcc.dg/darwin-version-1.c 9145b589b54240035dacb7540309d62e gcc/testsuite/gcc.dg/darwin-weakimport-1.c bda7de2e2fd6472aa3ffe7873407e58d gcc/testsuite/gcc.dg/darwin-weakimport-2.c ! 17dc761b8be4e29841270d6ef57c59a7 gcc/testsuite/gcc.dg/darwin-weakimport-3.c d8aef0c8953934ea061fdce6e985cdf1 gcc/testsuite/gcc.dg/darwin-weakref-1.c 4e2720fdf9f84481a42dcd33f4b6d7a5 gcc/testsuite/gcc.dg/debug/20000503-1.c eeacdefaf2f5fad28609bc9a156918cb gcc/testsuite/gcc.dg/debug/20010207-1.c --- 29827,29839 ---- 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 + 5ca3ca317094442241bdcaf1320473d2 gcc/testsuite/gcc.dg/darwin-minversion-link.c 333be43e38c5b8f9c8bde5d01493902a gcc/testsuite/gcc.dg/darwin-sections.c 3cfa6daebed9a12884613012f50433e4 gcc/testsuite/gcc.dg/darwin-segaddr.c ! 91dd7afa81d8d5b0e0607ca1adeb791c gcc/testsuite/gcc.dg/darwin-version-1.c 9145b589b54240035dacb7540309d62e gcc/testsuite/gcc.dg/darwin-weakimport-1.c bda7de2e2fd6472aa3ffe7873407e58d gcc/testsuite/gcc.dg/darwin-weakimport-2.c ! 616f3eafcf2947e4dd54e569654c0721 gcc/testsuite/gcc.dg/darwin-weakimport-3.c d8aef0c8953934ea061fdce6e985cdf1 gcc/testsuite/gcc.dg/darwin-weakref-1.c 4e2720fdf9f84481a42dcd33f4b6d7a5 gcc/testsuite/gcc.dg/debug/20000503-1.c eeacdefaf2f5fad28609bc9a156918cb gcc/testsuite/gcc.dg/debug/20010207-1.c *************** f04843ea87c9c55accf161e9ee241f15 gcc/te *** 29832,29837 **** --- 30001,30007 ---- 1a1a5a16846e5e1f309692815729ce1d gcc/testsuite/gcc.dg/debug/pr78587.c 2444e8441e19d7a1f14287f247114ea3 gcc/testsuite/gcc.dg/debug/pr80321.c 240d53072f9b064ae6ea8d4d1b72f427 gcc/testsuite/gcc.dg/debug/pr85252.c + a9e9af5e94d12834ec3ce411c747df0d gcc/testsuite/gcc.dg/debug/pr89704.c e39702ba4ac8cdf1b4d7895fa15c394f gcc/testsuite/gcc.dg/debug/redecl-1.c 60c3f3165dda429cbc7646a06969d16c gcc/testsuite/gcc.dg/debug/redecl-2.c 175fa916ededdb94d71518eecbe6fa1a gcc/testsuite/gcc.dg/debug/redecl-3.c *************** ba7e6f4007944b95dbec857fc6c74794 gcc/te *** 29888,29893 **** --- 30058,30071 ---- bd803fab76b770802d951e70b61c9696 gcc/testsuite/gcc.dg/dfp/Wbad-function-cast-1.c d898987e43ad43f22c65725bb92ec24f gcc/testsuite/gcc.dg/dfp/Wtraditional-conversion-2.c 8dfa85ff2d4eb5d9335903160b756d39 gcc/testsuite/gcc.dg/dfp/altivec-types.c + 0427a7f00c94b02b2da50c05b007c0f2 gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d128-1.c + a2b93cb0ab9b6a36fe768145f47c1fa9 gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d128-2.c + 297572939fc7b71fe20e2cad87cec9ab gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d128-3.c + 42008e10a13ebab27a814f6e12c619ba gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d128-4.c + 1d6cb271a08986e673037b354f3254e6 gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d32-1.c + 14fc1c15e9bc96990379bbc6624f3d7c gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d32-2.c + b213e657dd0a5981c152f0ba5c13d025 gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d64-1.c + e8708f912575f73de189475f3e31b4e9 gcc/testsuite/gcc.dg/dfp/bid-non-canonical-d64-2.c 2d5128bddc0d69a547254935ce84b555 gcc/testsuite/gcc.dg/dfp/builtin-complex.c 1cd0f9502eb6f26f75689878d1315dde gcc/testsuite/gcc.dg/dfp/builtin-tgmath-dfp-err.c 8be219bdc31d596f6310b63d26678f47 gcc/testsuite/gcc.dg/dfp/builtin-tgmath-dfp.c *************** a85b0288fea2d86fdb34d6e61c8fb5c4 gcc/te *** 30688,30693 **** --- 30866,30872 ---- bc9fedcf7d4ab83a9eac1b425a07e995 gcc/testsuite/gcc.dg/gomp/pr68128-2.c b6e412b1e41464bf3c6ad63059710985 gcc/testsuite/gcc.dg/gomp/pr68640.c 94d52afbc97b558472c16b172f9755e9 gcc/testsuite/gcc.dg/gomp/pr72781.c + 789ef66f070336e211866c3e5ec1dc53 gcc/testsuite/gcc.dg/gomp/pr78884.c 3dfa5450530e68792fc799c17f83fc46 gcc/testsuite/gcc.dg/gomp/pr81768-1.c 43bccc2e99a04235390798e75d04c6d1 gcc/testsuite/gcc.dg/gomp/pr81768-2.c 1fb1dcba746e154601a6f0935615231b gcc/testsuite/gcc.dg/gomp/pr82374.c *************** d7416cac7d67876a0d0d2ddd8b64c9d9 gcc/te *** 30705,30710 **** --- 30884,30891 ---- 5562aec5b8ddedbdc4184f8c90685937 gcc/testsuite/gcc.dg/gomp/pr89104.c 0c7376f88d06747513e9db1619206c72 gcc/testsuite/gcc.dg/gomp/pr89246-1.c c60bd6d06d92414ccd01870addd85132 gcc/testsuite/gcc.dg/gomp/pr89246-2.c + ef3626bfd9a01c1b3e4b0d6ca7d55c1a gcc/testsuite/gcc.dg/gomp/pr89796.c + 7b7c5619e17caf4ff7de95c0ea515fde gcc/testsuite/gcc.dg/gomp/pr90900.c 32d1b4709fce01c7b0f596da5c040f2a gcc/testsuite/gcc.dg/gomp/preprocess-1.c 5a96f232ac76ad6d8182f67c3f3a4acf gcc/testsuite/gcc.dg/gomp/reduction-1.c 536359d59fc418a1570a6d8574a66ca1 gcc/testsuite/gcc.dg/gomp/sections-1.c *************** d9eb2458082dd04e5fd06a17d21f8063 gcc/te *** 31081,31087 **** 1499003eafd486638666bf7a7c8fa0c5 gcc/testsuite/gcc.dg/guality/pr54693-2.c 563ea1cb8025ea86023e39ea090d9a36 gcc/testsuite/gcc.dg/guality/pr54693.c 5ef31827dab5cc29890ac6e085b38794 gcc/testsuite/gcc.dg/guality/pr54796.c ! e6a95cb67a731b87b58f31f3f0f078f6 gcc/testsuite/gcc.dg/guality/pr54970.c 0806241ec48af974aff7b61707c11916 gcc/testsuite/gcc.dg/guality/pr56154-1.c f2e11607d04914713628932840c715c5 gcc/testsuite/gcc.dg/guality/pr56154-2.c 93af310cf109bfc0389356d204c56ae4 gcc/testsuite/gcc.dg/guality/pr56154-3.c --- 31262,31268 ---- 1499003eafd486638666bf7a7c8fa0c5 gcc/testsuite/gcc.dg/guality/pr54693-2.c 563ea1cb8025ea86023e39ea090d9a36 gcc/testsuite/gcc.dg/guality/pr54693.c 5ef31827dab5cc29890ac6e085b38794 gcc/testsuite/gcc.dg/guality/pr54796.c ! e7cd19ce7cc98005abe9fb9cbef18d5d gcc/testsuite/gcc.dg/guality/pr54970.c 0806241ec48af974aff7b61707c11916 gcc/testsuite/gcc.dg/guality/pr56154-1.c f2e11607d04914713628932840c715c5 gcc/testsuite/gcc.dg/guality/pr56154-2.c 93af310cf109bfc0389356d204c56ae4 gcc/testsuite/gcc.dg/guality/pr56154-3.c *************** e9cb995bb14a5d52b9213cdc06457285 gcc/te *** 31206,31211 **** --- 31387,31394 ---- 2eed98dfcc022044e610af32e1c937c1 gcc/testsuite/gcc.dg/inline-4.c b1da3859103cd524b6f06a987437986c gcc/testsuite/gcc.dg/inline-40.c 11fe410fd32445cd4e9ec94bae8bef30 gcc/testsuite/gcc.dg/inline-41.c + ecbb420d135dea5b382c10b3f807ec9f gcc/testsuite/gcc.dg/inline-42.c + 5eb94e96e85a0b595afa6cb4cac5682d gcc/testsuite/gcc.dg/inline-43.c 7fc691c96ff167ea4acaf530fdfd717a gcc/testsuite/gcc.dg/inline-5.c 96b467a4117442b64211f4f3411003a4 gcc/testsuite/gcc.dg/inline-6.c ba66b4f621efcd9fab8ee6d7a3de2f82 gcc/testsuite/gcc.dg/inline-7.c *************** be5489532ad8117e567e1ea5c8ad4b6a gcc/te *** 31333,31339 **** --- 31516,31524 ---- 08cc0f0e647e9f82d05fad9ac3944635 gcc/testsuite/gcc.dg/ipa/ipcp-2.c 2b28e86ef61a2946185db1daab03a644 gcc/testsuite/gcc.dg/ipa/ipcp-3.c 5204e6cd28c18692d9b78b4d46f02179 gcc/testsuite/gcc.dg/ipa/ipcp-4.c + 1d6188a3ce8385221389a004eb653357 gcc/testsuite/gcc.dg/ipa/ipcp-5.c 869bd19c205f2ccf580f8b640709d232 gcc/testsuite/gcc.dg/ipa/ipcp-agg-1.c + 46baba0a48d2f940bd891b54dec15a5c gcc/testsuite/gcc.dg/ipa/ipcp-agg-12.c c71233f7e2ddb4a8889ca1fe57ea62cc gcc/testsuite/gcc.dg/ipa/ipcp-agg-2.c b30637ee2dfddd2f33e1f6f41de2efa3 gcc/testsuite/gcc.dg/ipa/ipcp-agg-3.c 4a75430bf24423bed7faf54d834e000d gcc/testsuite/gcc.dg/ipa/ipcp-agg-4.c *************** f18c98a6522174d4131ce51bb8396ca6 gcc/te *** 33712,33717 **** --- 33897,33903 ---- 5a08b5f125d40e80cbfa648fd7d53df7 gcc/testsuite/gcc.dg/pr83972.c 9eeba6fce77e55ccdcedf59ccf4edfc7 gcc/testsuite/gcc.dg/pr83985.c 0a681331473e7aabb020a483acf3d081 gcc/testsuite/gcc.dg/pr83986.c + 2868e3695169eaa8ab8fa3575074a00b gcc/testsuite/gcc.dg/pr84032.c aa5aeeb9303713d11e8680d92dbd0bb3 gcc/testsuite/gcc.dg/pr84068.c 70e4b16ceedc356882716fae5db2910c gcc/testsuite/gcc.dg/pr84095.c cb37cbb046e6ce050aa898afb1c6a715 gcc/testsuite/gcc.dg/pr84100.c *************** a7709838775630f3497d85e86ff842f1 gcc/te *** 33783,33789 **** --- 33969,33978 ---- 514a76717cc92cf8d94a3d039414a417 gcc/testsuite/gcc.dg/pr87320.c 45a1003c5d24f4875b1c3a5d4f9569fe gcc/testsuite/gcc.dg/pr8788-1.c 0cb1263d58005e7943ed8e4e7280590d gcc/testsuite/gcc.dg/pr87929.c + 4dc6a02b95b9de1998e24869985641df gcc/testsuite/gcc.dg/pr87979.c 474562e66d92f7597aaf0f5ab5013a1a gcc/testsuite/gcc.dg/pr88071.c + b3735ce491eeb75e002c4d0e33f03f4c gcc/testsuite/gcc.dg/pr88074-2.c + b4a69f8a95ed49f8ce827cea184da075 gcc/testsuite/gcc.dg/pr88074.c be04382a35ebb1cfae1b2168f1693a94 gcc/testsuite/gcc.dg/pr8835-1.c 641b0297fe322803bfcf70efb484f184 gcc/testsuite/gcc.dg/pr88427.c ca44df045802a83545871c2e454164d1 gcc/testsuite/gcc.dg/pr88563.c *************** ca44df045802a83545871c2e454164d1 gcc/te *** 33791,33803 **** --- 33980,34013 ---- 3d03b712ec5ddcf1011a2e3ad2937fab gcc/testsuite/gcc.dg/pr88594.c 9831a0e405bbc2e4df9d1b9d1d88b7f0 gcc/testsuite/gcc.dg/pr88870.c 6c16d1c0a7bddee382161ec4f69c7e3e gcc/testsuite/gcc.dg/pr88905.c + b6a6442523e13cc8d22cef6d9b29643f gcc/testsuite/gcc.dg/pr89037.c b8275290466222c56ac76a85e9dc3e4f gcc/testsuite/gcc.dg/pr89211.c 6d86fe504f8715d8b161e54c57b05401 gcc/testsuite/gcc.dg/pr8927-1.c 805c3b6133ae2a2da39e43c108f2cb04 gcc/testsuite/gcc.dg/pr89278.c e30bce51f7105571806672d1430b4476 gcc/testsuite/gcc.dg/pr89314.c e0bb97c06584dce3955740a9322025ef gcc/testsuite/gcc.dg/pr89342.c db531a9355f9326f8fbafbee1a0c4e91 gcc/testsuite/gcc.dg/pr89354.c + 60832e2a572601eeddf23c8b9641b3ce gcc/testsuite/gcc.dg/pr89520-1.c + a5f05c4ad343f3e9f77908f5e61b8319 gcc/testsuite/gcc.dg/pr89520-2.c + 257d6cccc19ffd7b76dfd92523ef410e gcc/testsuite/gcc.dg/pr89521-1.c + 2c9315db914b2d546cfa5ba3a8d5d492 gcc/testsuite/gcc.dg/pr89521-2.c + 37d9958e568bd455cf03bd403e5d9560 gcc/testsuite/gcc.dg/pr89590.c + 7e94f0d5a822303e0339481ee07ad796 gcc/testsuite/gcc.dg/pr89679.c + e6faf0945d1f5f965c65759fe557a7d4 gcc/testsuite/gcc.dg/pr89734.c + a24193887db72f1e75b2698c04b4ef32 gcc/testsuite/gcc.dg/pr90010.c + 0a4f5fe719bf1ce6ae61fc33e03adf0f gcc/testsuite/gcc.dg/pr90082.c + 007da9cc3379de76a6986f6c8d62f1aa gcc/testsuite/gcc.dg/pr90733.c + 7c81184e9f0f9dead0859125d7a01a19 gcc/testsuite/gcc.dg/pr90756.c + a5cf54d159902a526ee7923257cf4b92 gcc/testsuite/gcc.dg/pr90760.c + f05824bb6a8ee4df57182feba94d6224 gcc/testsuite/gcc.dg/pr90898.c + 18854ec27df01fb8b6ad5529dff65b0d gcc/testsuite/gcc.dg/pr91854.c + c4f72ee1103ecf59a0e370d5ea316570 gcc/testsuite/gcc.dg/pr92591-1.c + 324f6e8bdb8eabe75693890f36af369b gcc/testsuite/gcc.dg/pr92591-2.c + 518252496da6c416ea3047044066d6ed gcc/testsuite/gcc.dg/pr92768.c + f0bf805f3929cfb3d6a885914e28c380 gcc/testsuite/gcc.dg/pr93054.c + 2461eae71210d5808caccdbf7b68c684 gcc/testsuite/gcc.dg/pr93576.c 3825638bdc3a2a004aba9b3d95352327 gcc/testsuite/gcc.dg/pr9365-1.c + 96f7c73b6cb0b7b5f65e07636845c78b gcc/testsuite/gcc.dg/pr93820.c ec1830becced622760bda688ca2bb126 gcc/testsuite/gcc.dg/pr9814-1.c 38d740dd13641c97d4f565dcd6338d23 gcc/testsuite/gcc.dg/pragma-align-2.c 4c08191735eadb7c6ea607dfcc965cf5 gcc/testsuite/gcc.dg/pragma-align.c *************** e18294d3404279a1f70b16e5f321d933 gcc/te *** 34621,34626 **** --- 34831,34837 ---- 33f2d5a949f3be0de5e28e8cf8bec90f gcc/testsuite/gcc.dg/torture/mips-div-1.c 4e40647acd4c0b0f635e3e9be60ce610 gcc/testsuite/gcc.dg/torture/mips-hilo-2.c d07ecd707fac97fa40042e04a59d4b1e gcc/testsuite/gcc.dg/torture/mips-sdata-1.c + 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 ded4330fd1cd52783bd9b1761db038ef gcc/testsuite/gcc.dg/torture/pr16104-1.c *************** a84b6c59134ee4102ee04385d54f1251 gcc/te *** 35471,35478 **** --- 35682,35704 ---- 2b8d83c06ccd9531c5a3b756ad0efa34 gcc/testsuite/gcc.dg/torture/pr87700.c 5f2931b968a25515ee413bfbfd4f1f71 gcc/testsuite/gcc.dg/torture/pr88223.c 6e9fc245efc4c9fc3b6ac670e231ccc2 gcc/testsuite/gcc.dg/torture/pr89008.c + deaf9ef54f621df69db3af8cdd9248d8 gcc/testsuite/gcc.dg/torture/pr89091.c 1a79c15fb77e621a36fd6989e4250a51 gcc/testsuite/gcc.dg/torture/pr89135.c bc5bedb53a5031564816c911cd9f7bd1 gcc/testsuite/gcc.dg/torture/pr89223.c + 5027d01e012944eed6e57508cf5efccf gcc/testsuite/gcc.dg/torture/pr89505.c + 67023595cda810dfd27ab63686f32e54 gcc/testsuite/gcc.dg/torture/pr89572.c + ba6f72e4a8ab5754df06d745d705ced8 gcc/testsuite/gcc.dg/torture/pr89595.c + 66e6d1d850f181ba202147d0c255aafa gcc/testsuite/gcc.dg/torture/pr89677.c + 3ebff6f9fdd08ad83f1b108d52ed3515 gcc/testsuite/gcc.dg/torture/pr89710.c + 03ff50043fe9b066d5d9805c81aeed55 gcc/testsuite/gcc.dg/torture/pr90020.c + f13f8d9bb577a47a3c6edb46c6c340b5 gcc/testsuite/gcc.dg/torture/pr90071.c + 00e6f1395499e5956a1821ce97b809c7 gcc/testsuite/gcc.dg/torture/pr90278.c + 1c6a61da912dfe2711fb64a23a660471 gcc/testsuite/gcc.dg/torture/pr90328.c + 6658d6f5893b06f49b107ca7db0f19e3 gcc/testsuite/gcc.dg/torture/pr91126.c + 9a517e2a6fabc62383485f161c86b5df gcc/testsuite/gcc.dg/torture/pr91200.c + e398c88cb4160ec78fc9362787569fe9 gcc/testsuite/gcc.dg/torture/pr91812.c + 6c276b4b449ad6fca0e8f9e8705d1baf gcc/testsuite/gcc.dg/torture/pr92704.c + c3582ca835373c2cd0065fc3f8a36154 gcc/testsuite/gcc.dg/torture/pr93381.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 *************** b82f09e52f40b5e142ca17a69421bfad gcc/te *** 35486,35491 **** --- 35712,35718 ---- 5e4ed3eeb940f3f8f5de9b8951123bec gcc/testsuite/gcc.dg/torture/restrict-4.c 9bedd7550914e2e483d55e47c44723e3 gcc/testsuite/gcc.dg/torture/restrict-5.c b4bc986eae683153ce2c232320c5bd27 gcc/testsuite/gcc.dg/torture/restrict-6.c + 568321b2b1eea2f97749015ca7f0b1b0 gcc/testsuite/gcc.dg/torture/restrict-7.c ae4bd16210e8a183a5a9c10baeb4171c gcc/testsuite/gcc.dg/torture/ssa-pta-fn-1.c 53a2ab81fc05f5ba0724c2020a12a151 gcc/testsuite/gcc.dg/torture/stackalign/alloca-1.c 2d416072232dd69f1b2a756bbb4d1dfd gcc/testsuite/gcc.dg/torture/stackalign/alloca-2.c *************** d26396401dfe20236d8bef41e255057f gcc/te *** 36599,36604 **** --- 36826,36836 ---- 531467a7bd70ca05a3efab1589e94109 gcc/testsuite/gcc.dg/tree-ssa/pr84859.c 7b0e32d77316039c03b0187b750dcbd7 gcc/testsuite/gcc.dg/tree-ssa/pr84969.c a4316b6eac65dac735695e27081a1367 gcc/testsuite/gcc.dg/tree-ssa/pr87022.c + a8e99357ccf139e15cb199f14791dd62 gcc/testsuite/gcc.dg/tree-ssa/pr89546.c + 2a36aca5f712a030aa778e7ae5777731 gcc/testsuite/gcc.dg/tree-ssa/pr89725.c + e9230122742d9f2e19bb99dcd54db233 gcc/testsuite/gcc.dg/tree-ssa/pr89872.c + d23898ffe25f214674f480b4b21f7ebb gcc/testsuite/gcc.dg/tree-ssa/pr91091-1.c + 7dfc09abf1b28ac3735cb4bd89a16ccd gcc/testsuite/gcc.dg/tree-ssa/pr92930.c e6c9f2dd9d7405dee4bfd5d6d0fc455f gcc/testsuite/gcc.dg/tree-ssa/pred-1.c 90c3c1a872e4566cc043c50e818ef036 gcc/testsuite/gcc.dg/tree-ssa/predcom-1.c ec45787b9b781da6181e7960a8cb76f0 gcc/testsuite/gcc.dg/tree-ssa/predcom-2.c *************** ad0c910858cba8a5b3996305d7d5447d gcc/te *** 36670,36676 **** fb8e1542fc1472c62c777c39fb27803a gcc/testsuite/gcc.dg/tree-ssa/reassoc-40.c 0945a4a5876e31c0c04a5dcd26ecb09b gcc/testsuite/gcc.dg/tree-ssa/reassoc-41.c 854b9533e402a2c0f1a5576704a59839 gcc/testsuite/gcc.dg/tree-ssa/reassoc-42.c ! 8f4fa30012d9e79c1fb9b5737c9d60c3 gcc/testsuite/gcc.dg/tree-ssa/reassoc-43.c 40306bba57979317f1b6ac5abc1c61aa gcc/testsuite/gcc.dg/tree-ssa/reassoc-44.c 43cedee8ba1282cf6b6558cafbaf9c24 gcc/testsuite/gcc.dg/tree-ssa/reassoc-45.c c75bffd403ebb6298962402a14677298 gcc/testsuite/gcc.dg/tree-ssa/reassoc-5.c --- 36902,36908 ---- fb8e1542fc1472c62c777c39fb27803a gcc/testsuite/gcc.dg/tree-ssa/reassoc-40.c 0945a4a5876e31c0c04a5dcd26ecb09b gcc/testsuite/gcc.dg/tree-ssa/reassoc-41.c 854b9533e402a2c0f1a5576704a59839 gcc/testsuite/gcc.dg/tree-ssa/reassoc-42.c ! bc54a55ac78e555806e7b448f49728b0 gcc/testsuite/gcc.dg/tree-ssa/reassoc-43.c 40306bba57979317f1b6ac5abc1c61aa gcc/testsuite/gcc.dg/tree-ssa/reassoc-44.c 43cedee8ba1282cf6b6558cafbaf9c24 gcc/testsuite/gcc.dg/tree-ssa/reassoc-45.c c75bffd403ebb6298962402a14677298 gcc/testsuite/gcc.dg/tree-ssa/reassoc-5.c *************** d3cb4389fc5f2080a551e055e7014893 gcc/te *** 36940,36945 **** --- 37172,37178 ---- 1a1969c9cac274e4a1b0151359849f0c gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-61.c 4d704b1ed6e02c20a1479c44b5ab50eb gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-62.c fe887a26d5f3f55d50823a788a80b191 gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-7.c + 2814bc2e5bf683800ae6bddc9f23c38c gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-78.c ee8929c75a08d3026beb2a71adce80fa gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-8.c 6c8e375b119ce1b63e19eed89459c12f gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-9.c 2957dc80c49929e08096f70c96f5df81 gcc/testsuite/gcc.dg/tree-ssa/ssa-hoist-1.c *************** dbcccd12dda553ecb5a906b8fe24ab00 gcc/te *** 37215,37220 **** --- 37448,37454 ---- 016029e7b08dbc8fe1d266551df2fdd3 gcc/testsuite/gcc.dg/tree-ssa/writeonly.c 22eb0b8eeae794a6956326b2c9383fb2 gcc/testsuite/gcc.dg/trunc-1.c dcc8ff133faffd3fe561dfe431569a07 gcc/testsuite/gcc.dg/tsan/pr88030.c + 65ac9eca3bcd49137d096a4f2573e2e2 gcc/testsuite/gcc.dg/tsan/pr90208-2.c f0d64000e95966a7c1501c28b23c98e9 gcc/testsuite/gcc.dg/tsan/tsan.exp 01ec42502b146041504a5ab811e7f3b1 gcc/testsuite/gcc.dg/two-types-1.c 95ad9b7c791f67ee2f4be1bd942e6718 gcc/testsuite/gcc.dg/two-types-10.c *************** c611b4ad3ec4bad367027a6ab1ef6505 gcc/te *** 37306,37312 **** c47999a5663fbe110a3d4134c92050c2 gcc/testsuite/gcc.dg/uninit-17-O0.c 728401b250e40769899aeaa5eb3c4f2e gcc/testsuite/gcc.dg/uninit-17.c 997ae4c527f3facdc5684123c0d1cddb gcc/testsuite/gcc.dg/uninit-18.c ! d9386e462790d6362e63704bf981cd41 gcc/testsuite/gcc.dg/uninit-19.c 668c58e2312b2988b8c85c02786bdbeb gcc/testsuite/gcc.dg/uninit-2-O0.c e7bbbf0090661e8a065ace2511f8f195 gcc/testsuite/gcc.dg/uninit-2.c ddfc3a41edab799f26758dadfa5a4d09 gcc/testsuite/gcc.dg/uninit-20.c --- 37540,37546 ---- c47999a5663fbe110a3d4134c92050c2 gcc/testsuite/gcc.dg/uninit-17-O0.c 728401b250e40769899aeaa5eb3c4f2e gcc/testsuite/gcc.dg/uninit-17.c 997ae4c527f3facdc5684123c0d1cddb gcc/testsuite/gcc.dg/uninit-18.c ! 266b9ed38dd712e0100f6a39a1764857 gcc/testsuite/gcc.dg/uninit-19.c 668c58e2312b2988b8c85c02786bdbeb gcc/testsuite/gcc.dg/uninit-2-O0.c e7bbbf0090661e8a065ace2511f8f195 gcc/testsuite/gcc.dg/uninit-2.c ddfc3a41edab799f26758dadfa5a4d09 gcc/testsuite/gcc.dg/uninit-20.c *************** e5914ec194abe834db8656483a92fcdc gcc/te *** 37351,37356 **** --- 37585,37591 ---- e37d87bcbc2425be943ff59a8baa223d gcc/testsuite/gcc.dg/uninit-pr81782.c 0dc3986883a797fc93fd1e233ab39838 gcc/testsuite/gcc.dg/uninit-pr81897-2.c 2cff9b0e356693e6320ee7ba4d4f02c2 gcc/testsuite/gcc.dg/uninit-pr81897.c + bc12979aeecbec0cc9fe92fcb51c30b9 gcc/testsuite/gcc.dg/uninit-pr89296.c 2e2b2ca64d1c3db87c75755a21b4bc06 gcc/testsuite/gcc.dg/uninit-pred-2_a.c 7d67cd7432d67994c6642a61e0020d9e gcc/testsuite/gcc.dg/uninit-pred-2_b.c dc20b95e0c82e7593d7e562b3b1e5aaf gcc/testsuite/gcc.dg/uninit-pred-2_c.c *************** ddb0d9d02246d260424316fc51c4b34f gcc/te *** 37373,37379 **** ae9f63955208be4c16b0ba30bd16f5b4 gcc/testsuite/gcc.dg/uninit-pred-7_c.c 7a3eae1faebb33a9f5f883ebc298164a gcc/testsuite/gcc.dg/uninit-pred-7_d.c 108959c442d69cdf432f24175e7af3ad gcc/testsuite/gcc.dg/uninit-pred-8_a.c ! e1adecfd191ddb35b4dca5ed05ca11de gcc/testsuite/gcc.dg/uninit-pred-8_b.c 48dec70277ff9a8f83aba472bc7a6ea6 gcc/testsuite/gcc.dg/uninit-pred-8_c.c 096e58c93515dd3678c391930e20efb7 gcc/testsuite/gcc.dg/uninit-pred-8_d.c f8c4f61a7dcf75600a176b4dab26db57 gcc/testsuite/gcc.dg/uninit-pred-9_a.c --- 37608,37614 ---- ae9f63955208be4c16b0ba30bd16f5b4 gcc/testsuite/gcc.dg/uninit-pred-7_c.c 7a3eae1faebb33a9f5f883ebc298164a gcc/testsuite/gcc.dg/uninit-pred-7_d.c 108959c442d69cdf432f24175e7af3ad gcc/testsuite/gcc.dg/uninit-pred-8_a.c ! 4f416029f00110db5c76cdc97e97568f gcc/testsuite/gcc.dg/uninit-pred-8_b.c 48dec70277ff9a8f83aba472bc7a6ea6 gcc/testsuite/gcc.dg/uninit-pred-8_c.c 096e58c93515dd3678c391930e20efb7 gcc/testsuite/gcc.dg/uninit-pred-8_d.c f8c4f61a7dcf75600a176b4dab26db57 gcc/testsuite/gcc.dg/uninit-pred-9_a.c *************** f746ae3bf44586fbe281fa0651586662 gcc/te *** 37522,37527 **** --- 37757,37763 ---- cc1dd9969065b3ef679c1331eea3b974 gcc/testsuite/gcc.dg/vect/bb-slp-pr81635-2.c ba61bac9283801e9b73dee15e5669f8a gcc/testsuite/gcc.dg/vect/bb-slp-pr81635-3.c 0a3a3c00f359e5410f5697d124bdd5ca gcc/testsuite/gcc.dg/vect/bb-slp-pr81635-4.c + a689d9ca07b59620e68b3c142ebeb12e gcc/testsuite/gcc.dg/vect/bb-slp-pr90006.c 5428e4471ece92d28564b1d30192ed87 gcc/testsuite/gcc.dg/vect/bb-slp-subgroups-1.c 892d0604340291572dec6ee6deee1f79 gcc/testsuite/gcc.dg/vect/bb-slp-subgroups-2.c ac97f8715430e9981d35fdaf30359bcb gcc/testsuite/gcc.dg/vect/bb-slp-subgroups-3.c *************** e5c69077d0a36436aad2e8772386c7b9 gcc/te *** 37946,37951 **** --- 38182,38189 ---- 3f00aa8bd4647b819ebad8742aae55ff gcc/testsuite/gcc.dg/vect/pr81196.c 9f6e75e9dbf6ab44b15e511f1ec5060c gcc/testsuite/gcc.dg/vect/pr81410.c 5d2ab81a9406e2000bbd06f6aba15b52 gcc/testsuite/gcc.dg/vect/pr81633.c + 29c150b7cf40ec651f6b59e757f2e5f6 gcc/testsuite/gcc.dg/vect/pr81740-1.c + 30064cf11164bcd330c5ef0687269582 gcc/testsuite/gcc.dg/vect/pr81740-2.c b01d1cf10e6bd44acf483b58e22aced4 gcc/testsuite/gcc.dg/vect/pr81815.c bddceeb2dcbec7478439798545334dc9 gcc/testsuite/gcc.dg/vect/pr82108.c 13fb523d8fb02882b90caadcfa00e949 gcc/testsuite/gcc.dg/vect/pr82289.c *************** dec135e959be35a2676395dffb879be7 gcc/te *** 37971,37976 **** --- 38209,38222 ---- 7674336c5d1b951d7050cb96ac3739f9 gcc/testsuite/gcc.dg/vect/pr87288-3.c 706ffeb725a655c10c3af015fa40d1ea gcc/testsuite/gcc.dg/vect/pr88903-1.c 3fa6b0486dc4b237da9bc2ffa11dd19e gcc/testsuite/gcc.dg/vect/pr88903-2.c + e886cbd86390cdb32bee3af3fdb38317 gcc/testsuite/gcc.dg/vect/pr90018.c + ac67ac2c3d8711dd155a41624852b861 gcc/testsuite/gcc.dg/vect/pr91293-1.c + db3576e77c43de369e47976aecb1d53c gcc/testsuite/gcc.dg/vect/pr91293-2.c + 37fe9fcd52d12f73ee435eb9aa6d1c71 gcc/testsuite/gcc.dg/vect/pr91293-3.c + 6ff42a5a4a3e60344beb4ee415f9fa95 gcc/testsuite/gcc.dg/vect/pr91665.c + 8592f5133853519281066e3cdcdc9082 gcc/testsuite/gcc.dg/vect/pr92420.c + 9314244e8dd2629fd52faec10e7e5f47 gcc/testsuite/gcc.dg/vect/pr92723.c + 867fed4c196d4d64384bffad366ae916 gcc/testsuite/gcc.dg/vect/pr93767.c 32d06c886c85516fbdce4ca1bd516496 gcc/testsuite/gcc.dg/vect/section-anchors-pr27770.c d7c598d838a7c98392febc88239e2769 gcc/testsuite/gcc.dg/vect/section-anchors-vect-69.c cd2f0240aaa18dda8ac3a18459c93d29 gcc/testsuite/gcc.dg/vect/slp-1.c *************** e4a970a6789a84727813478c59877533 gcc/te *** 38063,38069 **** c77542cf1371fae8cf65124b4c29b25b gcc/testsuite/gcc.dg/vect/slp-reduc-6.c 62e9316c7cbab5a448977f3e9bf89472 gcc/testsuite/gcc.dg/vect/slp-reduc-7.c 030cb8061ca9614b756c8f4471116e37 gcc/testsuite/gcc.dg/vect/slp-reduc-8.c ! ff21e08c6d4a28efb0abd3587fa89dc4 gcc/testsuite/gcc.dg/vect/slp-reduc-sad.c 0ec5265308cf0a1fd6bfb6502f0e83f3 gcc/testsuite/gcc.dg/vect/slp-widen-mult-half.c b1336a4a12ea0ec587c41f16332879bc gcc/testsuite/gcc.dg/vect/slp-widen-mult-s16.c 31669e2cb35c18913f0b7f913f2a0f63 gcc/testsuite/gcc.dg/vect/slp-widen-mult-u8.c --- 38309,38315 ---- c77542cf1371fae8cf65124b4c29b25b gcc/testsuite/gcc.dg/vect/slp-reduc-6.c 62e9316c7cbab5a448977f3e9bf89472 gcc/testsuite/gcc.dg/vect/slp-reduc-7.c 030cb8061ca9614b756c8f4471116e37 gcc/testsuite/gcc.dg/vect/slp-reduc-8.c ! 7caf9c505d57c40f3c61b7b29427a0e3 gcc/testsuite/gcc.dg/vect/slp-reduc-sad.c 0ec5265308cf0a1fd6bfb6502f0e83f3 gcc/testsuite/gcc.dg/vect/slp-widen-mult-half.c b1336a4a12ea0ec587c41f16332879bc gcc/testsuite/gcc.dg/vect/slp-widen-mult-s16.c 31669e2cb35c18913f0b7f913f2a0f63 gcc/testsuite/gcc.dg/vect/slp-widen-mult-u8.c *************** c8c679e672173f52fbc0d86757b5c05a gcc/te *** 39718,39727 **** --- 39964,39985 ---- face3a8c6631236fedad3dce5526b762 gcc/testsuite/gcc.target/aarch64/ngc.c fb19dd57034e67da13f2a5b22815fcc5 gcc/testsuite/gcc.target/aarch64/no-inline-lrint_1.c 56f1cae94d74d605f3127ff54df58e5e gcc/testsuite/gcc.target/aarch64/no-inline-lrint_2.c + 9567b5cb1744b0c5a301604d3a25bbc2 gcc/testsuite/gcc.target/aarch64/no-inline-lrint_3.c a8bddbe3eece3831dd80ac4cdf09f85e gcc/testsuite/gcc.target/aarch64/nofp_1.c 16f10ec9128105b137b7139eec150171 gcc/testsuite/gcc.target/aarch64/noplt_1.c a08d94353bf55af1d22441a406d830ca gcc/testsuite/gcc.target/aarch64/noplt_2.c 5adbb32c5ec104efca72061e09229b8f gcc/testsuite/gcc.target/aarch64/noplt_3.c + 5d43e2829488a18473d4b2ca37cdaf82 gcc/testsuite/gcc.target/aarch64/nosplit-di-const-volatile_1.c + 773bc5b0a8368679f7d4856edfb4d60f gcc/testsuite/gcc.target/aarch64/options_set_1.c + d6e1d0cb7cb44f50985db131c62ba20b gcc/testsuite/gcc.target/aarch64/options_set_10.c + 38913b9d93786135bbb9f14461fcb591 gcc/testsuite/gcc.target/aarch64/options_set_2.c + 7f4c8da035a3fac4e823b922b071f373 gcc/testsuite/gcc.target/aarch64/options_set_3.c + 6acdd0168da65a1ce59810d19a1bda89 gcc/testsuite/gcc.target/aarch64/options_set_4.c + 8f27bf551906208d070df1b7012a68a2 gcc/testsuite/gcc.target/aarch64/options_set_5.c + 18a48c819a40a0d0c0bb86b8cb3ccab2 gcc/testsuite/gcc.target/aarch64/options_set_6.c + 3c7fc6e40b171e0b03c095ccf5773192 gcc/testsuite/gcc.target/aarch64/options_set_7.c + 51f0102245f943732739fa2da8b863ee gcc/testsuite/gcc.target/aarch64/options_set_8.c + df4e11a3114d2114f873039e70aa26eb gcc/testsuite/gcc.target/aarch64/options_set_9.c 2ba9e0951fadcf5ce5f2eab080c09a68 gcc/testsuite/gcc.target/aarch64/orr_imm_1.c 03797fef944cc43885e1c80c25f368e4 gcc/testsuite/gcc.target/aarch64/pic-constantpool1.c 8084b7f8a23ba9dc5bb389d20d29ec1b gcc/testsuite/gcc.target/aarch64/pic-small.c *************** aa2dfd18bc6784e0bc7ee00c3ef8561a gcc/te *** 39777,39782 **** --- 40035,40041 ---- 61509ec6c4ac78da70369f76797f43be gcc/testsuite/gcc.target/aarch64/pr81647.c 83d999153e7b99641d3f07b79d3dd12f gcc/testsuite/gcc.target/aarch64/pr83370.c d1d34ae8edbb84b094c7f011971b77f4 gcc/testsuite/gcc.target/aarch64/pr84252.c + 476fb6d37ab03368b4eead6712633cd2 gcc/testsuite/gcc.target/aarch64/pr90075.c d3e6defa85b5cd4bb506306377e59a53 gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_1.c 1f95766b4ed5bfb5f2cf1f168a607a8d gcc/testsuite/gcc.target/aarch64/predefine_large.c d38e476730748c653068e7cb2d8d6ca6 gcc/testsuite/gcc.target/aarch64/predefine_small.c *************** b36471f8edbf2a11ce23359823ecc10b gcc/te *** 40819,40824 **** --- 41078,41084 ---- e6d1333accc73a351e98b7ad842cd2be gcc/testsuite/gcc.target/alpha/pr83628-1.c 2052308560c0cb7bee41dddbff1ae5f4 gcc/testsuite/gcc.target/alpha/pr83628-2.c 38c58f9ce3fd2fd442a1637ac9e5e8bd gcc/testsuite/gcc.target/alpha/pr83628-3.c + a28c8b957006268fb63ac90eaea21d90 gcc/testsuite/gcc.target/alpha/pr86984.c 5821aa7e8ef51d9e9f03077c43721bd0 gcc/testsuite/gcc.target/alpha/sqrt.c 96315e3201d2fa31fb4cbdf30fb2ba4d gcc/testsuite/gcc.target/arc/abitest.S a125f0012bfc0fdad155c9b9bcc0f009 gcc/testsuite/gcc.target/arc/abitest.h *************** a7f2e5349eb3677d4e532197beb261b8 gcc/te *** 41015,41020 **** --- 41275,41281 ---- 70d3af1373b3a49fb1912dca6e377274 gcc/testsuite/gcc.target/arm/acle/crc32d.c 21b20cecbc6689dc6367a96e210b956e gcc/testsuite/gcc.target/arm/acle/crc32h.c 2d7c8358817ecb57e689202c2e4f2dd6 gcc/testsuite/gcc.target/arm/acle/crc32w.c + 8e835118eed3d1e8f3b8108aac735957 gcc/testsuite/gcc.target/arm/acle/crc_hf_1.c 15caa7f54c3a3e06d97de61aaaa7ca1c gcc/testsuite/gcc.target/arm/acle/ldc.c 343921f8186546d1f5253679431b890b gcc/testsuite/gcc.target/arm/acle/ldc2.c deee7c31c5c250e8d2a4897962cdea6b gcc/testsuite/gcc.target/arm/acle/ldc2l.c *************** d721a88ae72a8be261b58663490fc7ee gcc/te *** 41247,41252 **** --- 41508,41514 ---- 14c1154266333682f985fe7c6c6e3911 gcc/testsuite/gcc.target/arm/eliminate.c 35daa2bef7020b26f98b70184aa411d4 gcc/testsuite/gcc.target/arm/empty_fiq_handler.c 78487646e9710e62b0d506909e9588a8 gcc/testsuite/gcc.target/arm/epilog-1.c + 98721ddb43f41d55892aac39cc051828 gcc/testsuite/gcc.target/arm/f16_f64_conv_no_dp.c af1ccf2d19987a11d4e08cd9cccf8a69 gcc/testsuite/gcc.target/arm/fixed-point-exec.c 30d8dad9a97da5758da204e1f71d1aa1 gcc/testsuite/gcc.target/arm/fixed_float_conversion.c 6619cf7c22b0ec3c6ca6626d69a8f826 gcc/testsuite/gcc.target/arm/flip-thumb.c *************** c3c03d98bf1110fec6902ef64b984fde gcc/te *** 41641,41648 **** --- 41903,41915 ---- f8d96076841643c7c01ef5410173dbad gcc/testsuite/gcc.target/arm/pr83712.c 18ff5a03c344c3f612c5c9241ebc0d0e gcc/testsuite/gcc.target/arm/pr84826.c 9ceeccdcbe7c4f80a03690b8e3133f43 gcc/testsuite/gcc.target/arm/pr85173.c + 33227127167a7e170af10f0beecbff03 gcc/testsuite/gcc.target/arm/pr86487.c 40076045a4c00e49c70de6a7a08bea67 gcc/testsuite/gcc.target/arm/pr86640.c + 13b419ece183c8289f8cd381a21bd825 gcc/testsuite/gcc.target/arm/pr88167-1.c + 061a3fd61673c5c82f24f6000121e426 gcc/testsuite/gcc.target/arm/pr88167-2.c c11a83f6e8e6cfecb2d201bb9832efb3 gcc/testsuite/gcc.target/arm/pr88648-asm-syntax-unified.c + eb13a55564e5e8fb2982994c3b17a08c gcc/testsuite/gcc.target/arm/pr89190.c + 7e118390a8f6adc60508c71323d3a526 gcc/testsuite/gcc.target/arm/pr89222.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 *************** ab15d222e706bd85c87c037d1e9b6f51 gcc/te *** 42582,42587 **** --- 42849,42855 ---- 15722fba52fd43dd64c47b080c1c307c gcc/testsuite/gcc.target/i386/avx-pr80286.c 0c470227f4a8ce9ace3b799a8ebecbc0 gcc/testsuite/gcc.target/i386/avx-pr80846.c cb21d2e64c04a9daab66338cc0a66e65 gcc/testsuite/gcc.target/i386/avx-pr82370.c + 9b926829d7de933c61b0300157acbfc5 gcc/testsuite/gcc.target/i386/avx-pr93637.c 4e3d37bb04b99394790fa9e8caddf790 gcc/testsuite/gcc.target/i386/avx-recip-vec.c 02ae18a66bd7b76f7a651b896f066b70 gcc/testsuite/gcc.target/i386/avx-reduc-1.c 901c452df22c91b2a6a7b58fc968d5f4 gcc/testsuite/gcc.target/i386/avx-rint-sfix-2-vec.c *************** f55df70acaaa1a05030d45495848eb2b gcc/te *** 43520,43531 **** 1db2c2106138cc396b1ae8c512625b33 gcc/testsuite/gcc.target/i386/avx5124vnniw-vp4dpwssd-2.c 5052cdd63fbafc27cd3d7534458acaec gcc/testsuite/gcc.target/i386/avx5124vnniw-vp4dpwssds-1.c 925a068450d57f20740e5ce6e8fe217e gcc/testsuite/gcc.target/i386/avx5124vnniw-vp4dpwssds-2.c ! 9de875f6f41e554337ea12937f31b749 gcc/testsuite/gcc.target/i386/avx512bitalg-vpopcntb-1.c ! fb81b2b2a3a46912d73cc1760be004e7 gcc/testsuite/gcc.target/i386/avx512bitalg-vpopcntb.c ! 199af992e17bd9c64dcfa9985d1f367e gcc/testsuite/gcc.target/i386/avx512bitalg-vpopcntbvl.c ! 8af06593173fa44cb3ccf5e8a4d0ee1a gcc/testsuite/gcc.target/i386/avx512bitalg-vpopcntw-1.c ! 80398fed0e3d0fb221f2b8b497ff4150 gcc/testsuite/gcc.target/i386/avx512bitalg-vpopcntw.c ! 2321f4d32ab673621ab22cd88183f167 gcc/testsuite/gcc.target/i386/avx512bitalg-vpopcntwvl.c eabafa4926a7abff1e6146a7ef0143e0 gcc/testsuite/gcc.target/i386/avx512bitalg-vpshufbitqmb-1.c 358bee5b8508f8bec0558e9193d60046 gcc/testsuite/gcc.target/i386/avx512bitalg-vpshufbitqmb.c b2b1fe9e25a1a50c9e88e7a8d168d328 gcc/testsuite/gcc.target/i386/avx512bitalgvl-vpopcntb-1.c --- 43788,43799 ---- 1db2c2106138cc396b1ae8c512625b33 gcc/testsuite/gcc.target/i386/avx5124vnniw-vp4dpwssd-2.c 5052cdd63fbafc27cd3d7534458acaec gcc/testsuite/gcc.target/i386/avx5124vnniw-vp4dpwssds-1.c 925a068450d57f20740e5ce6e8fe217e gcc/testsuite/gcc.target/i386/avx5124vnniw-vp4dpwssds-2.c ! 84a11e540e8533df61152a30c873a575 gcc/testsuite/gcc.target/i386/avx512bitalg-vpopcntb-1.c ! d728d0693656bb9b505f505356762d3c gcc/testsuite/gcc.target/i386/avx512bitalg-vpopcntb.c ! 7f84f82c7512e69110cd9ace71cf5f78 gcc/testsuite/gcc.target/i386/avx512bitalg-vpopcntbvl.c ! 2840f678f86d3934d9e12bd4efe274c8 gcc/testsuite/gcc.target/i386/avx512bitalg-vpopcntw-1.c ! 137fee4b6bc1f1276f3a325244117c02 gcc/testsuite/gcc.target/i386/avx512bitalg-vpopcntw.c ! 0ed417774de76c917c5a1a3494fb4bdd gcc/testsuite/gcc.target/i386/avx512bitalg-vpopcntwvl.c eabafa4926a7abff1e6146a7ef0143e0 gcc/testsuite/gcc.target/i386/avx512bitalg-vpshufbitqmb-1.c 358bee5b8508f8bec0558e9193d60046 gcc/testsuite/gcc.target/i386/avx512bitalg-vpshufbitqmb.c b2b1fe9e25a1a50c9e88e7a8d168d328 gcc/testsuite/gcc.target/i386/avx512bitalgvl-vpopcntb-1.c *************** a27fb111df1b083f6396bafe5a66337b gcc/te *** 43588,43593 **** --- 43856,43863 ---- e35d933dd19222a47493fe48e2676f39 gcc/testsuite/gcc.target/i386/avx512bw-pr85090-3.c 6e21df3d0e9193e9625eed725e327919 gcc/testsuite/gcc.target/i386/avx512bw-pr85169.c c3f19932e24d2aa723b1d3fc00ae4836 gcc/testsuite/gcc.target/i386/avx512bw-pr87138.c + f43b98d89586a44186b9c785eedf7a28 gcc/testsuite/gcc.target/i386/avx512bw-pr91150.c + e8db4d816e2c3378fdfdbb76bcefc8d4 gcc/testsuite/gcc.target/i386/avx512bw-pr93673.c 186b4d26f65c47b5b328795efe473c71 gcc/testsuite/gcc.target/i386/avx512bw-vdbpsadbw-1.c aa76e419ea439da7ae72280b04d232b8 gcc/testsuite/gcc.target/i386/avx512bw-vdbpsadbw-2.c c8ba4cce715fd7698d0bd8d7cc7eca78 gcc/testsuite/gcc.target/i386/avx512bw-vmovdqu16-1.c *************** ab945e2a7f2066639ab19534fdb0271b gcc/te *** 43729,43743 **** ce62431e0d6dc730be7080f0cdba44c2 gcc/testsuite/gcc.target/i386/avx512bw-vpmovm2b-2.c bae2525291d77b14d3c948717486e172 gcc/testsuite/gcc.target/i386/avx512bw-vpmovm2w-1.c 2d631a58d4ba9d40cb0081f84837581b gcc/testsuite/gcc.target/i386/avx512bw-vpmovm2w-2.c ! 06a3164dbd380706d2da61d543128d87 gcc/testsuite/gcc.target/i386/avx512bw-vpmovswb-1.c d89a3e7fea8841425db8f8334b6bf852 gcc/testsuite/gcc.target/i386/avx512bw-vpmovswb-2.c 8a56f5d9d1e0901d2961599ce258247b gcc/testsuite/gcc.target/i386/avx512bw-vpmovsxbw-1.c ed602259785dd505ce43fedc83608fa2 gcc/testsuite/gcc.target/i386/avx512bw-vpmovsxbw-2.c ! 871ff4f86a33d5c9bbbb34ce309c5f9e gcc/testsuite/gcc.target/i386/avx512bw-vpmovuswb-1.c 082edd4008d3b3a00b57e8d3ea996a89 gcc/testsuite/gcc.target/i386/avx512bw-vpmovuswb-2.c 678e81e4832220102333a7d756adaadd gcc/testsuite/gcc.target/i386/avx512bw-vpmovw2m-1.c 9504524787b82a0ccf486f89f4fe27e1 gcc/testsuite/gcc.target/i386/avx512bw-vpmovw2m-2.c ! ff492e91d9f879ceaaad2e456e4a220e gcc/testsuite/gcc.target/i386/avx512bw-vpmovwb-1.c 7d6fcb3c926679157d1535ecb9ef00af gcc/testsuite/gcc.target/i386/avx512bw-vpmovwb-2.c 36fd23835105aebbfe3ccb58e069edda gcc/testsuite/gcc.target/i386/avx512bw-vpmovzxbw-1.c 6d3d5643ba38c610b31450cf8057ed44 gcc/testsuite/gcc.target/i386/avx512bw-vpmovzxbw-2.c --- 43999,44013 ---- ce62431e0d6dc730be7080f0cdba44c2 gcc/testsuite/gcc.target/i386/avx512bw-vpmovm2b-2.c bae2525291d77b14d3c948717486e172 gcc/testsuite/gcc.target/i386/avx512bw-vpmovm2w-1.c 2d631a58d4ba9d40cb0081f84837581b gcc/testsuite/gcc.target/i386/avx512bw-vpmovm2w-2.c ! 66b7371c44a2141bc879c8295f24662c gcc/testsuite/gcc.target/i386/avx512bw-vpmovswb-1.c d89a3e7fea8841425db8f8334b6bf852 gcc/testsuite/gcc.target/i386/avx512bw-vpmovswb-2.c 8a56f5d9d1e0901d2961599ce258247b gcc/testsuite/gcc.target/i386/avx512bw-vpmovsxbw-1.c ed602259785dd505ce43fedc83608fa2 gcc/testsuite/gcc.target/i386/avx512bw-vpmovsxbw-2.c ! 8c716e1e77b74aecf16d86bbff7fb082 gcc/testsuite/gcc.target/i386/avx512bw-vpmovuswb-1.c 082edd4008d3b3a00b57e8d3ea996a89 gcc/testsuite/gcc.target/i386/avx512bw-vpmovuswb-2.c 678e81e4832220102333a7d756adaadd gcc/testsuite/gcc.target/i386/avx512bw-vpmovw2m-1.c 9504524787b82a0ccf486f89f4fe27e1 gcc/testsuite/gcc.target/i386/avx512bw-vpmovw2m-2.c ! 7d06d207fbd0d03584e33f481722e2be gcc/testsuite/gcc.target/i386/avx512bw-vpmovwb-1.c 7d6fcb3c926679157d1535ecb9ef00af gcc/testsuite/gcc.target/i386/avx512bw-vpmovwb-2.c 36fd23835105aebbfe3ccb58e069edda gcc/testsuite/gcc.target/i386/avx512bw-vpmovzxbw-1.c 6d3d5643ba38c610b31450cf8057ed44 gcc/testsuite/gcc.target/i386/avx512bw-vpmovzxbw-2.c *************** d79dbf020eaec36e633ca9fe66abc687 gcc/te *** 43850,43855 **** --- 44120,44126 ---- 5c96173f399e38ddd940558c0971cefa gcc/testsuite/gcc.target/i386/avx512dq-pr77476.c 11ee8aa3053087e52b57627c5e78c508 gcc/testsuite/gcc.target/i386/avx512dq-pr81532.c 8f0c61768e5bacf2b0e2ff43d584735d gcc/testsuite/gcc.target/i386/avx512dq-pr82855.c + 5b7eeade63f43c643092ab9e82d0bc38 gcc/testsuite/gcc.target/i386/avx512dq-pr93673.c 802a65b817227165abdd16614cc84b66 gcc/testsuite/gcc.target/i386/avx512dq-vandnpd-1.c 16658064864d12d7e0b7ea05daac767c gcc/testsuite/gcc.target/i386/avx512dq-vandnpd-2.c f106641a7d12e3bd58bae9ca7a4d556b gcc/testsuite/gcc.target/i386/avx512dq-vandnps-1.c *************** f5e2d9cb20058374157f0683dddeff73 gcc/te *** 44092,44097 **** --- 44363,44369 ---- 8f7bb029bc3fd998efd8ccadf1f0edf2 gcc/testsuite/gcc.target/i386/avx512f-pr85169.c 33ef0191b116f2207f8cae72da53f074 gcc/testsuite/gcc.target/i386/avx512f-pr85177.c 44b94a02b283cd9b531e1679a63bb550 gcc/testsuite/gcc.target/i386/avx512f-pr85255.c + d02e54fef14f48afcc720ef0004da5fa gcc/testsuite/gcc.target/i386/avx512f-pr93673.c c03d8cf4fa3fd17be806ad4e6adc4bca gcc/testsuite/gcc.target/i386/avx512f-prefer.c fa779c05cab9a2378601e3ad5ae642ef gcc/testsuite/gcc.target/i386/avx512f-reduce-op-1.c ada32523be27898684e961dc8a530319 gcc/testsuite/gcc.target/i386/avx512f-rint-sfix-vec-1.c *************** c75f41a84b0ff9e1454ea517888cf42e gcc/te *** 44826,44831 **** --- 45098,45105 ---- 901b5f592de42b8641315e7a0e470c78 gcc/testsuite/gcc.target/i386/avx512vbmi-vpermt2b-2.c da943fec8529ab4219ae92fa7701f4f3 gcc/testsuite/gcc.target/i386/avx512vbmi-vpmultishiftqb-1.c b3bb92860a7a7725c03afa6bd022047f gcc/testsuite/gcc.target/i386/avx512vbmi-vpmultishiftqb-2.c + 894c1afa27bde11c6d50e1f6fae905b8 gcc/testsuite/gcc.target/i386/avx512vbmi2-vpshld-1.c + 1a47d56ff1d6271c07878c0fee5ba0e6 gcc/testsuite/gcc.target/i386/avx512vbmi2-vpshrd-1.c 00c640a9ee145099cd26543b8b9bfcff gcc/testsuite/gcc.target/i386/avx512vl-abs-copysign-1.c d2d79308516c8d8c17653303db1b5237 gcc/testsuite/gcc.target/i386/avx512vl-abs-copysign-2.c 84a6c4a5cbbf76f5118a4fa4d8e45dbf gcc/testsuite/gcc.target/i386/avx512vl-aesdec-2.c *************** e3cc31b3308cdb56423451f2cd8c2a00 gcc/te *** 44867,44872 **** --- 45141,45147 ---- 7cff0350d919ed5edc42e841b11e38f2 gcc/testsuite/gcc.target/i386/avx512vl-pr82370.c 22c31bf03678131c3d0a583fba1ee269 gcc/testsuite/gcc.target/i386/avx512vl-pr87214-1.c dd0303ef457dc2b0fdc13d8c6e3f9345 gcc/testsuite/gcc.target/i386/avx512vl-pr87214-2.c + e83e4ca7bfde31c45ab7a663d2cbb1ee gcc/testsuite/gcc.target/i386/avx512vl-pr93670.c a7e85788730f7acc7e5174c636d29676 gcc/testsuite/gcc.target/i386/avx512vl-vaddpd-1.c 2b0c748a58e54ffa4102710cc467b33b gcc/testsuite/gcc.target/i386/avx512vl-vaddpd-2.c df4c1c2e223dab18c858a16ca0d5bb83 gcc/testsuite/gcc.target/i386/avx512vl-vaddps-1.c *************** e95da9727388a59b0b2ebe9d1ee7d278 gcc/te *** 45543,45552 **** c292ba048c97e84fe04aa26984af35f1 gcc/testsuite/gcc.target/i386/avx512vl-vxorpd-2.c 91c9b414d4e752a1bdfcd70fc683eb70 gcc/testsuite/gcc.target/i386/avx512vl-vxorps-2.c e8b40df1b29caa7e7a5ad3533f175e18 gcc/testsuite/gcc.target/i386/avx512vlbw-pr82370.c ! f6b7d0b72d217c57bd0c953b18c2bb51 gcc/testsuite/gcc.target/i386/avx512vpopcntdq-vpopcntd-1.c ! 3f0e9e21f8daf76273838121c569322a gcc/testsuite/gcc.target/i386/avx512vpopcntdq-vpopcntd.c ! 302654a622ec78f477d30938f066623b gcc/testsuite/gcc.target/i386/avx512vpopcntdq-vpopcntq-1.c ! 88ad44c8930b8f8ccba5c508e25d4bfa gcc/testsuite/gcc.target/i386/avx512vpopcntdq-vpopcntq.c fa2414b7f0b02ba46bfc1187b11b0120 gcc/testsuite/gcc.target/i386/avx512vpopcntdqvl-vpopcntd-1.c 17d28bf7cef176269dc5873687b13c9f gcc/testsuite/gcc.target/i386/avx512vpopcntdqvl-vpopcntq-1.c 5da8354c1b0f081b6c64be550d4b604e gcc/testsuite/gcc.target/i386/avxfp-1.c --- 45818,45827 ---- c292ba048c97e84fe04aa26984af35f1 gcc/testsuite/gcc.target/i386/avx512vl-vxorpd-2.c 91c9b414d4e752a1bdfcd70fc683eb70 gcc/testsuite/gcc.target/i386/avx512vl-vxorps-2.c e8b40df1b29caa7e7a5ad3533f175e18 gcc/testsuite/gcc.target/i386/avx512vlbw-pr82370.c ! 4ee014789b932f3aea1da6e759de7e75 gcc/testsuite/gcc.target/i386/avx512vpopcntdq-vpopcntd-1.c ! 848d7f2507183d53d35a08030c471c3e gcc/testsuite/gcc.target/i386/avx512vpopcntdq-vpopcntd.c ! d8084141e791dfdf62ee3dc66173d458 gcc/testsuite/gcc.target/i386/avx512vpopcntdq-vpopcntq-1.c ! 776a22660c657e8df374084201fce5f6 gcc/testsuite/gcc.target/i386/avx512vpopcntdq-vpopcntq.c fa2414b7f0b02ba46bfc1187b11b0120 gcc/testsuite/gcc.target/i386/avx512vpopcntdqvl-vpopcntd-1.c 17d28bf7cef176269dc5873687b13c9f gcc/testsuite/gcc.target/i386/avx512vpopcntdqvl-vpopcntq-1.c 5da8354c1b0f081b6c64be550d4b604e gcc/testsuite/gcc.target/i386/avxfp-1.c *************** e2f92fc61b085e4497461eff83299ca3 gcc/te *** 45671,45695 **** 952021d619f2d303a2b0e49db7c8ff04 gcc/testsuite/gcc.target/i386/cet-notrack-3.c 5c49d05a89027d834db9e8a1a3fcdb75 gcc/testsuite/gcc.target/i386/cet-notrack-4a.c 23e59cfc2a2ff42cf3c52d39115e995a gcc/testsuite/gcc.target/i386/cet-notrack-4b.c ! b1ee419bd7c9ff903b2b13c165490544 gcc/testsuite/gcc.target/i386/cet-notrack-5a.c ! 213f3220e27f73cd096deee29bfe795a gcc/testsuite/gcc.target/i386/cet-notrack-5b.c 6cc33f7183c2ffe0f20e2fa470b4e950 gcc/testsuite/gcc.target/i386/cet-notrack-6a.c ! 5f1bfc9956dcdc071cf8a8b695cbc0f1 gcc/testsuite/gcc.target/i386/cet-notrack-6b.c f46cdc03f831aa997cbc8fa392d93334 gcc/testsuite/gcc.target/i386/cet-notrack-7.c ! dc077e746c37527c5597c2b179544c74 gcc/testsuite/gcc.target/i386/cet-notrack-icf-1.c ! 335fe180a1ba4ffa720a6e9ebf12b263 gcc/testsuite/gcc.target/i386/cet-notrack-icf-2.c ! e4c654c0e4db35ad4940163e3ba44ecf gcc/testsuite/gcc.target/i386/cet-notrack-icf-3.c ! abba25302d24634f3ddae070ea2fb58d gcc/testsuite/gcc.target/i386/cet-notrack-icf-4.c b8e1eda2f252f129a90e54617fa39500 gcc/testsuite/gcc.target/i386/cet-property-1.c f03688bba56369ec92f324db56599b3d gcc/testsuite/gcc.target/i386/cet-property-2.c a4dff4664eff59fc1d1d6ac49e52a6b6 gcc/testsuite/gcc.target/i386/cet-rdssp-1.c 30e87cc5b4f9a47bb19c047aa978eede gcc/testsuite/gcc.target/i386/cet-sjlj-1.c 6a05c49ca46aa3dbc8ba88fa2f003a28 gcc/testsuite/gcc.target/i386/cet-sjlj-2.c ! 935dcef0d444f5fc49aab71a46277269 gcc/testsuite/gcc.target/i386/cet-sjlj-3.c 468e8aa10ace6b5e1389e5c01cbdb8f2 gcc/testsuite/gcc.target/i386/cet-sjlj-4.c ! 931d0e144a7b6f768acd12086fbb8cfb gcc/testsuite/gcc.target/i386/cet-sjlj-5.c fe18bceea056fa7c5ce2c0eb9fd0f2ce gcc/testsuite/gcc.target/i386/cet-sjlj-6a.c ! f057c0e2b7799367849b89b799a5ec98 gcc/testsuite/gcc.target/i386/cet-sjlj-6b.c a2960f70e9092f35ab7846d97bc2cd2a gcc/testsuite/gcc.target/i386/cet-switch-1.c d9248423c9f1c716a36c066054a7f5b9 gcc/testsuite/gcc.target/i386/cet-switch-2.c b20d49e3df7ecba263d6a023f199461f gcc/testsuite/gcc.target/i386/cet-switch-3.c --- 45946,45970 ---- 952021d619f2d303a2b0e49db7c8ff04 gcc/testsuite/gcc.target/i386/cet-notrack-3.c 5c49d05a89027d834db9e8a1a3fcdb75 gcc/testsuite/gcc.target/i386/cet-notrack-4a.c 23e59cfc2a2ff42cf3c52d39115e995a gcc/testsuite/gcc.target/i386/cet-notrack-4b.c ! bded049788a0336bba8e18d79c809023 gcc/testsuite/gcc.target/i386/cet-notrack-5a.c ! 5241539010053ebc2e34eeda477d9d8e gcc/testsuite/gcc.target/i386/cet-notrack-5b.c 6cc33f7183c2ffe0f20e2fa470b4e950 gcc/testsuite/gcc.target/i386/cet-notrack-6a.c ! d41dd713d6dd7428c1d052ef2972f941 gcc/testsuite/gcc.target/i386/cet-notrack-6b.c f46cdc03f831aa997cbc8fa392d93334 gcc/testsuite/gcc.target/i386/cet-notrack-7.c ! a81e13973980d88cc966d202e3240a0a gcc/testsuite/gcc.target/i386/cet-notrack-icf-1.c ! e420c76b5d51167be532aea06e242b7d gcc/testsuite/gcc.target/i386/cet-notrack-icf-2.c ! 8314a1039bf8725bf8863476b57fe857 gcc/testsuite/gcc.target/i386/cet-notrack-icf-3.c ! 8f1538b43a15c0827f66b6f4352ef5fb gcc/testsuite/gcc.target/i386/cet-notrack-icf-4.c b8e1eda2f252f129a90e54617fa39500 gcc/testsuite/gcc.target/i386/cet-property-1.c f03688bba56369ec92f324db56599b3d gcc/testsuite/gcc.target/i386/cet-property-2.c a4dff4664eff59fc1d1d6ac49e52a6b6 gcc/testsuite/gcc.target/i386/cet-rdssp-1.c 30e87cc5b4f9a47bb19c047aa978eede gcc/testsuite/gcc.target/i386/cet-sjlj-1.c 6a05c49ca46aa3dbc8ba88fa2f003a28 gcc/testsuite/gcc.target/i386/cet-sjlj-2.c ! 0ce34b19fb1aba3fae48ca22781d12e2 gcc/testsuite/gcc.target/i386/cet-sjlj-3.c 468e8aa10ace6b5e1389e5c01cbdb8f2 gcc/testsuite/gcc.target/i386/cet-sjlj-4.c ! 90c8ac5897434d5e30c476a51d6a1fe4 gcc/testsuite/gcc.target/i386/cet-sjlj-5.c fe18bceea056fa7c5ce2c0eb9fd0f2ce gcc/testsuite/gcc.target/i386/cet-sjlj-6a.c ! 5cd340cda5b41736cb38e2a525269e74 gcc/testsuite/gcc.target/i386/cet-sjlj-6b.c a2960f70e9092f35ab7846d97bc2cd2a gcc/testsuite/gcc.target/i386/cet-switch-1.c d9248423c9f1c716a36c066054a7f5b9 gcc/testsuite/gcc.target/i386/cet-switch-2.c b20d49e3df7ecba263d6a023f199461f gcc/testsuite/gcc.target/i386/cet-switch-3.c *************** a8f61a3e9626bdd65b4e124dbc719d3e gcc/te *** 45883,45889 **** 41b53063e22afc0a435659c465424d74 gcc/testsuite/gcc.target/i386/fpcvt-2.c fc83f958b3df91c520e859127c479d26 gcc/testsuite/gcc.target/i386/fpcvt-3.c f4728a5ddd8f5b7d2932dd853b2fc88f gcc/testsuite/gcc.target/i386/fpcvt-4.c ! de21850aa1ee59ff7fed86c89e17eb4a gcc/testsuite/gcc.target/i386/fpprec-1.c c7969e1cd5d8b5cc915431d457857508 gcc/testsuite/gcc.target/i386/funcspec-1.c 6806422c170b295fd8ff09ca22b12150 gcc/testsuite/gcc.target/i386/funcspec-10.c c1320fd604803bc04257c984f1e3ba77 gcc/testsuite/gcc.target/i386/funcspec-11.c --- 46158,46164 ---- 41b53063e22afc0a435659c465424d74 gcc/testsuite/gcc.target/i386/fpcvt-2.c fc83f958b3df91c520e859127c479d26 gcc/testsuite/gcc.target/i386/fpcvt-3.c f4728a5ddd8f5b7d2932dd853b2fc88f gcc/testsuite/gcc.target/i386/fpcvt-4.c ! 7b2c5d3679acd1583e1591dbf6d4c2e5 gcc/testsuite/gcc.target/i386/fpprec-1.c c7969e1cd5d8b5cc915431d457857508 gcc/testsuite/gcc.target/i386/funcspec-1.c 6806422c170b295fd8ff09ca22b12150 gcc/testsuite/gcc.target/i386/funcspec-10.c c1320fd604803bc04257c984f1e3ba77 gcc/testsuite/gcc.target/i386/funcspec-11.c *************** d21f379846343509bea073a20fab4286 gcc/te *** 45896,45905 **** 35655de5c9348f2a36254312a8d17908 gcc/testsuite/gcc.target/i386/funcspec-7.c c5cbddeb1b01f35a7fa7f281fb2acdb4 gcc/testsuite/gcc.target/i386/funcspec-8.c 98162f894173cc3f53a1739d65f4341d gcc/testsuite/gcc.target/i386/funcspec-9.c ! a01d3229673b2eb02bbfb6d1191f0b4a gcc/testsuite/gcc.target/i386/fuse-caller-save-rec.c b24def76cda5e6910ee6d0acbaa240e6 gcc/testsuite/gcc.target/i386/fuse-caller-save-xmm-run.c ! d9dbff8ba7e41565da26487dba05d168 gcc/testsuite/gcc.target/i386/fuse-caller-save-xmm.c ! 2d33bd1acc40ca1c46ab6778a9ee92ac gcc/testsuite/gcc.target/i386/fuse-caller-save.c 374b8a1c71832c58fa214de004488fce gcc/testsuite/gcc.target/i386/fxrstor-1.c 4ba171e5929e217bf7404c8b2936f4dd gcc/testsuite/gcc.target/i386/fxrstor64-1.c 997710cd1065bc38da6deb8c74781d45 gcc/testsuite/gcc.target/i386/fxsave-1.c --- 46171,46180 ---- 35655de5c9348f2a36254312a8d17908 gcc/testsuite/gcc.target/i386/funcspec-7.c c5cbddeb1b01f35a7fa7f281fb2acdb4 gcc/testsuite/gcc.target/i386/funcspec-8.c 98162f894173cc3f53a1739d65f4341d gcc/testsuite/gcc.target/i386/funcspec-9.c ! 3a08303eb38d70d9bd8e13a2c173ac97 gcc/testsuite/gcc.target/i386/fuse-caller-save-rec.c b24def76cda5e6910ee6d0acbaa240e6 gcc/testsuite/gcc.target/i386/fuse-caller-save-xmm-run.c ! bf2ba8b379ebd6007b1d051966393d53 gcc/testsuite/gcc.target/i386/fuse-caller-save-xmm.c ! 2b0fb9cbf57f10cb2e97ffa7daa9ca55 gcc/testsuite/gcc.target/i386/fuse-caller-save.c 374b8a1c71832c58fa214de004488fce gcc/testsuite/gcc.target/i386/fxrstor-1.c 4ba171e5929e217bf7404c8b2936f4dd gcc/testsuite/gcc.target/i386/fxrstor64-1.c 997710cd1065bc38da6deb8c74781d45 gcc/testsuite/gcc.target/i386/fxsave-1.c *************** b56cbb83f01d0feeec0ec874e60a703c gcc/te *** 45974,45992 **** cdd25f9aac1f47c227bf3e42b258efa9 gcc/testsuite/gcc.target/i386/incoming-7.c 74e35cf742c4e2fe9ce50213ed289958 gcc/testsuite/gcc.target/i386/incoming-8.c 9be1a58062ffa2d8454af884da1b9f81 gcc/testsuite/gcc.target/i386/incoming-9.c ! 05d3ff7fd6d107eff7cfa9af54aed600 gcc/testsuite/gcc.target/i386/indirect-thunk-1.c 20988adf9b08c4b293517a2c73863343 gcc/testsuite/gcc.target/i386/indirect-thunk-10.c a7b1d57cf31d0eab2d7d39d8e1e4464d gcc/testsuite/gcc.target/i386/indirect-thunk-11.c 932137e6ed9cc1dd3810fc7ce20c629a gcc/testsuite/gcc.target/i386/indirect-thunk-12.c ! d5a10c340aca1e4c1b2116dc0bc19ebe gcc/testsuite/gcc.target/i386/indirect-thunk-2.c ! 4d5fc6b525071b2c53d5f7bd50a1cd89 gcc/testsuite/gcc.target/i386/indirect-thunk-3.c ! fbd8e0dce417f40298be825ed78f88c9 gcc/testsuite/gcc.target/i386/indirect-thunk-4.c 76b5340f3d1cae758f7f24f209df6970 gcc/testsuite/gcc.target/i386/indirect-thunk-5.c 44ba2c34bc32936af532c39182517a5f gcc/testsuite/gcc.target/i386/indirect-thunk-6.c ! 63f3f75fb9218c46a8907df2585e5a34 gcc/testsuite/gcc.target/i386/indirect-thunk-7.c 136c6b3bb1163a3077d4207bfc4e5275 gcc/testsuite/gcc.target/i386/indirect-thunk-8.c c6d529ddda0429e0c528b2de3c8384d4 gcc/testsuite/gcc.target/i386/indirect-thunk-9.c ! e506d2eeeb5b8b6b43de5c106e80ef80 gcc/testsuite/gcc.target/i386/indirect-thunk-attr-1.c b346e03904cb1d652c2c4820cca183ee gcc/testsuite/gcc.target/i386/indirect-thunk-attr-10.c 4bdf208508a160ea7a3791b56b304575 gcc/testsuite/gcc.target/i386/indirect-thunk-attr-11.c 5e81f089db4d854be34315d7e483471e gcc/testsuite/gcc.target/i386/indirect-thunk-attr-12.c --- 46249,46267 ---- cdd25f9aac1f47c227bf3e42b258efa9 gcc/testsuite/gcc.target/i386/incoming-7.c 74e35cf742c4e2fe9ce50213ed289958 gcc/testsuite/gcc.target/i386/incoming-8.c 9be1a58062ffa2d8454af884da1b9f81 gcc/testsuite/gcc.target/i386/incoming-9.c ! adb09d5162a99729c58768a1bbd44763 gcc/testsuite/gcc.target/i386/indirect-thunk-1.c 20988adf9b08c4b293517a2c73863343 gcc/testsuite/gcc.target/i386/indirect-thunk-10.c a7b1d57cf31d0eab2d7d39d8e1e4464d gcc/testsuite/gcc.target/i386/indirect-thunk-11.c 932137e6ed9cc1dd3810fc7ce20c629a gcc/testsuite/gcc.target/i386/indirect-thunk-12.c ! c95e46383fd5a4501004a0bc1f5d9d21 gcc/testsuite/gcc.target/i386/indirect-thunk-2.c ! 9ff9f61cd5b668186b7c213dca7378ae gcc/testsuite/gcc.target/i386/indirect-thunk-3.c ! 7519f59c10ed77932ed2015e31053234 gcc/testsuite/gcc.target/i386/indirect-thunk-4.c 76b5340f3d1cae758f7f24f209df6970 gcc/testsuite/gcc.target/i386/indirect-thunk-5.c 44ba2c34bc32936af532c39182517a5f gcc/testsuite/gcc.target/i386/indirect-thunk-6.c ! cd9517f2fb2890df6ac085a32cef6533 gcc/testsuite/gcc.target/i386/indirect-thunk-7.c 136c6b3bb1163a3077d4207bfc4e5275 gcc/testsuite/gcc.target/i386/indirect-thunk-8.c c6d529ddda0429e0c528b2de3c8384d4 gcc/testsuite/gcc.target/i386/indirect-thunk-9.c ! 5f543478181e42734efbd6110e7a3598 gcc/testsuite/gcc.target/i386/indirect-thunk-attr-1.c b346e03904cb1d652c2c4820cca183ee gcc/testsuite/gcc.target/i386/indirect-thunk-attr-10.c 4bdf208508a160ea7a3791b56b304575 gcc/testsuite/gcc.target/i386/indirect-thunk-attr-11.c 5e81f089db4d854be34315d7e483471e gcc/testsuite/gcc.target/i386/indirect-thunk-attr-12.c *************** a4d4ac47a9c336b9947886236539baea gcc/te *** 45994,46032 **** 106f345e11b8b4cded15dbf3ffb2edb0 gcc/testsuite/gcc.target/i386/indirect-thunk-attr-14.c a4d96121729449511a36dec6e52a2d54 gcc/testsuite/gcc.target/i386/indirect-thunk-attr-15.c 87be5d0cddfe925ec07c32de7dd7dcac gcc/testsuite/gcc.target/i386/indirect-thunk-attr-16.c ! ea5b37cade05b968b2f5aae50077c1c3 gcc/testsuite/gcc.target/i386/indirect-thunk-attr-2.c ! ee3b180c37ee9f060fe5b24fbacc428f gcc/testsuite/gcc.target/i386/indirect-thunk-attr-3.c ! e852a496ae80ad82a0595c6f008a2722 gcc/testsuite/gcc.target/i386/indirect-thunk-attr-4.c ! 3c36cf61aba8f95f05132704b4b0c8eb gcc/testsuite/gcc.target/i386/indirect-thunk-attr-5.c ! 0bf52c88118e706a56766cfe59df0852 gcc/testsuite/gcc.target/i386/indirect-thunk-attr-6.c ! c1a69bca2e988ac9383792e0f01d065e gcc/testsuite/gcc.target/i386/indirect-thunk-attr-7.c ! 867bd0927104666fdf41c8c325a2553d gcc/testsuite/gcc.target/i386/indirect-thunk-attr-8.c f062bd94d2bcc6229905c541b481a03c gcc/testsuite/gcc.target/i386/indirect-thunk-attr-9.c ! 77b1a8e1b258b90e1edbf0d45372c0eb gcc/testsuite/gcc.target/i386/indirect-thunk-bnd-1.c ! d58705acef59a328f4fd1bbe1a065bac gcc/testsuite/gcc.target/i386/indirect-thunk-bnd-2.c 6b017ce0cbb85638db969dbc3bd5bf0e gcc/testsuite/gcc.target/i386/indirect-thunk-bnd-3.c 57fbd8dfbb47b45fbd1ce000c16c7a6c gcc/testsuite/gcc.target/i386/indirect-thunk-bnd-4.c ! 14cc4f9a9b2dd94edd821f84af94c611 gcc/testsuite/gcc.target/i386/indirect-thunk-extern-1.c 4a99e43607f0c6aa8988113aa56bacae gcc/testsuite/gcc.target/i386/indirect-thunk-extern-10.c ! 4a1f3c4792dd58316fcbf552deda210a gcc/testsuite/gcc.target/i386/indirect-thunk-extern-2.c ! 1bbe5649136f8a47208ce67e71058493 gcc/testsuite/gcc.target/i386/indirect-thunk-extern-3.c ! 8995ae15651c704262997baa0032794a gcc/testsuite/gcc.target/i386/indirect-thunk-extern-4.c d60595421b98710f0053736975cb92fb gcc/testsuite/gcc.target/i386/indirect-thunk-extern-5.c 159efa6bc07479836c1f52e007ec64f0 gcc/testsuite/gcc.target/i386/indirect-thunk-extern-6.c ! b3b67e4893c9cef21a178bd6d24de60d gcc/testsuite/gcc.target/i386/indirect-thunk-extern-7.c 99f3e5d8d0922ca800161322c831a20a gcc/testsuite/gcc.target/i386/indirect-thunk-extern-8.c 0485e0ab743074b88468ebcd125a49b8 gcc/testsuite/gcc.target/i386/indirect-thunk-extern-9.c ! d908699f85e4c95b098f3d81dbba9a45 gcc/testsuite/gcc.target/i386/indirect-thunk-inline-1.c ! 4b8df590855bc29c6f9a503d85024db8 gcc/testsuite/gcc.target/i386/indirect-thunk-inline-2.c ! 2942c6699b3b2e99c37686f596473393 gcc/testsuite/gcc.target/i386/indirect-thunk-inline-3.c ! 8c08ad924ba0e02e7ff6522ade53773b gcc/testsuite/gcc.target/i386/indirect-thunk-inline-4.c 22d3ec31148d7eb42f889f412e80b98e gcc/testsuite/gcc.target/i386/indirect-thunk-inline-5.c 4bb39d2b0069f6a250bb165c0280899d gcc/testsuite/gcc.target/i386/indirect-thunk-inline-6.c ! 097bfd363392d403f5385d77cbb64786 gcc/testsuite/gcc.target/i386/indirect-thunk-inline-7.c ! 1a18d20db658bd8f06db72e826e24451 gcc/testsuite/gcc.target/i386/indirect-thunk-register-1.c ! 2f7b88c05e6f84c135d8684048b1ddfb gcc/testsuite/gcc.target/i386/indirect-thunk-register-2.c ! 0f53eb2f8dd4745fc0d56597a3a5cc39 gcc/testsuite/gcc.target/i386/indirect-thunk-register-3.c ! cc84faa83bbaff46af08a97446ceeeb8 gcc/testsuite/gcc.target/i386/indirect-thunk-register-4.c ee5ee3c3feb8c1952691f98991ee7be3 gcc/testsuite/gcc.target/i386/indjmp-1.c aa8a4b5daac0c21a379120ce3ab4e865 gcc/testsuite/gcc.target/i386/inline-mcpy.c e72f30e619db24586870d8d3878cd987 gcc/testsuite/gcc.target/i386/inline_error.c --- 46269,46307 ---- 106f345e11b8b4cded15dbf3ffb2edb0 gcc/testsuite/gcc.target/i386/indirect-thunk-attr-14.c a4d96121729449511a36dec6e52a2d54 gcc/testsuite/gcc.target/i386/indirect-thunk-attr-15.c 87be5d0cddfe925ec07c32de7dd7dcac gcc/testsuite/gcc.target/i386/indirect-thunk-attr-16.c ! 266256bf9c72b3811751520548dcdf0e gcc/testsuite/gcc.target/i386/indirect-thunk-attr-2.c ! 7ad61ec0982e9eba391693dbb5e52d1c gcc/testsuite/gcc.target/i386/indirect-thunk-attr-3.c ! 7acc4f7264d2475c20aeb874707181ee gcc/testsuite/gcc.target/i386/indirect-thunk-attr-4.c ! b97ad0329e6caafdacfeb7480b4b75cc gcc/testsuite/gcc.target/i386/indirect-thunk-attr-5.c ! c27b27ac0212566fd3133978c6ad8edf gcc/testsuite/gcc.target/i386/indirect-thunk-attr-6.c ! 9e211cadb1b686a1d6b8c68737f2cc8f gcc/testsuite/gcc.target/i386/indirect-thunk-attr-7.c ! 1a3da150db1b16fc41bda9bbd7ca308e gcc/testsuite/gcc.target/i386/indirect-thunk-attr-8.c f062bd94d2bcc6229905c541b481a03c gcc/testsuite/gcc.target/i386/indirect-thunk-attr-9.c ! 248485e93728454351ce9e7bd278b507 gcc/testsuite/gcc.target/i386/indirect-thunk-bnd-1.c ! c2a04a6c09ea9da2269bab141681c226 gcc/testsuite/gcc.target/i386/indirect-thunk-bnd-2.c 6b017ce0cbb85638db969dbc3bd5bf0e gcc/testsuite/gcc.target/i386/indirect-thunk-bnd-3.c 57fbd8dfbb47b45fbd1ce000c16c7a6c gcc/testsuite/gcc.target/i386/indirect-thunk-bnd-4.c ! b56dd85b92863436bb371da8d9f1a9b8 gcc/testsuite/gcc.target/i386/indirect-thunk-extern-1.c 4a99e43607f0c6aa8988113aa56bacae gcc/testsuite/gcc.target/i386/indirect-thunk-extern-10.c ! 2965e739e22d2a2f074cf21684e44d79 gcc/testsuite/gcc.target/i386/indirect-thunk-extern-2.c ! 642fe8dc37b80cd5a23db87f2790d7da gcc/testsuite/gcc.target/i386/indirect-thunk-extern-3.c ! a7eb6eedf20a23f9562103441bfe762e gcc/testsuite/gcc.target/i386/indirect-thunk-extern-4.c d60595421b98710f0053736975cb92fb gcc/testsuite/gcc.target/i386/indirect-thunk-extern-5.c 159efa6bc07479836c1f52e007ec64f0 gcc/testsuite/gcc.target/i386/indirect-thunk-extern-6.c ! 7caad64af2c8b081cc9641db901f52f1 gcc/testsuite/gcc.target/i386/indirect-thunk-extern-7.c 99f3e5d8d0922ca800161322c831a20a gcc/testsuite/gcc.target/i386/indirect-thunk-extern-8.c 0485e0ab743074b88468ebcd125a49b8 gcc/testsuite/gcc.target/i386/indirect-thunk-extern-9.c ! dc38272c2c77f004e9b1432854810cc0 gcc/testsuite/gcc.target/i386/indirect-thunk-inline-1.c ! 3647393dca68e3247168db40d40dfddc gcc/testsuite/gcc.target/i386/indirect-thunk-inline-2.c ! c0f49c5ea58f441879a0a937ede627ef gcc/testsuite/gcc.target/i386/indirect-thunk-inline-3.c ! 577426cf82a5f996238328bf79562260 gcc/testsuite/gcc.target/i386/indirect-thunk-inline-4.c 22d3ec31148d7eb42f889f412e80b98e gcc/testsuite/gcc.target/i386/indirect-thunk-inline-5.c 4bb39d2b0069f6a250bb165c0280899d gcc/testsuite/gcc.target/i386/indirect-thunk-inline-6.c ! 9b18301c6819350bef178c74ce5003b1 gcc/testsuite/gcc.target/i386/indirect-thunk-inline-7.c ! efda0af05107f5f099c13c03e1157e44 gcc/testsuite/gcc.target/i386/indirect-thunk-register-1.c ! a09ada0e82af6f6e6522d77d6b3e549d gcc/testsuite/gcc.target/i386/indirect-thunk-register-2.c ! 995443abdd47a45dcd059145549ffe13 gcc/testsuite/gcc.target/i386/indirect-thunk-register-3.c ! 2589f31cac8d58723b7156ade58d680a gcc/testsuite/gcc.target/i386/indirect-thunk-register-4.c ee5ee3c3feb8c1952691f98991ee7be3 gcc/testsuite/gcc.target/i386/indjmp-1.c aa8a4b5daac0c21a379120ce3ab4e865 gcc/testsuite/gcc.target/i386/inline-mcpy.c e72f30e619db24586870d8d3878cd987 gcc/testsuite/gcc.target/i386/inline_error.c *************** cda0d89452347311cc45a79be2d8f0fc gcc/te *** 46200,46211 **** 536862ceddae932e3d7da830f0866d31 gcc/testsuite/gcc.target/i386/memcpy-3.c 39eae588cd264db47b4b4188c56710e7 gcc/testsuite/gcc.target/i386/memcpy-strategy-1.c 29f6565471ceb4dea82eb41bb79559df gcc/testsuite/gcc.target/i386/memcpy-strategy-2.c ! 36eea93d2314b17dabcb2b0a81e809d9 gcc/testsuite/gcc.target/i386/memcpy-strategy-3.c 6e857b4eb94b8707c380e73efcbc5a51 gcc/testsuite/gcc.target/i386/memcpy-strategy-4.c c311ee7acf008e98e58f5984f29e567b gcc/testsuite/gcc.target/i386/memcpy-vector_loop-1.c c84ec8a2cd4608e33d447c561108ce97 gcc/testsuite/gcc.target/i386/memcpy-vector_loop-2.c 40cce91585f47cde61390171cd489668 gcc/testsuite/gcc.target/i386/memset-1.c ! 8dc0b20158a4bbdad650a8874321918c gcc/testsuite/gcc.target/i386/memset-strategy-1.c e34fc4954adf255e63dd959604f68e95 gcc/testsuite/gcc.target/i386/memset-strategy-2.c abacd2e1491b7c40915d4be18c0229b4 gcc/testsuite/gcc.target/i386/memset-vector_loop-1.c 87dbca58e427b20c0f83b7a2aefbd38a gcc/testsuite/gcc.target/i386/memset-vector_loop-2.c --- 46475,46486 ---- 536862ceddae932e3d7da830f0866d31 gcc/testsuite/gcc.target/i386/memcpy-3.c 39eae588cd264db47b4b4188c56710e7 gcc/testsuite/gcc.target/i386/memcpy-strategy-1.c 29f6565471ceb4dea82eb41bb79559df gcc/testsuite/gcc.target/i386/memcpy-strategy-2.c ! 9724a363e64e9b37caa5ac0cf2159afd gcc/testsuite/gcc.target/i386/memcpy-strategy-3.c 6e857b4eb94b8707c380e73efcbc5a51 gcc/testsuite/gcc.target/i386/memcpy-strategy-4.c c311ee7acf008e98e58f5984f29e567b gcc/testsuite/gcc.target/i386/memcpy-vector_loop-1.c c84ec8a2cd4608e33d447c561108ce97 gcc/testsuite/gcc.target/i386/memcpy-vector_loop-2.c 40cce91585f47cde61390171cd489668 gcc/testsuite/gcc.target/i386/memset-1.c ! 5d42d8053ea9c0f90ccef1a5662638be gcc/testsuite/gcc.target/i386/memset-strategy-1.c e34fc4954adf255e63dd959604f68e95 gcc/testsuite/gcc.target/i386/memset-strategy-2.c abacd2e1491b7c40915d4be18c0229b4 gcc/testsuite/gcc.target/i386/memset-vector_loop-1.c 87dbca58e427b20c0f83b7a2aefbd38a gcc/testsuite/gcc.target/i386/memset-vector_loop-2.c *************** bccc40fa95a11c992c5319581f1c269f gcc/te *** 46596,46602 **** b6587e8091b873e052b86981b4c6dd26 gcc/testsuite/gcc.target/i386/pclmul-avx-check.h 56f7ac50c182627b5551065184b25a3b gcc/testsuite/gcc.target/i386/pclmul-check.h 15dd7e15fc38c0bad00692ec554b7cd1 gcc/testsuite/gcc.target/i386/pclmulqdq.c ! 8b3b679a09af74c65842ad3923421a1f gcc/testsuite/gcc.target/i386/pconfig-1.c 9679e778097966e5b39d1c4130b0ee74 gcc/testsuite/gcc.target/i386/pentium4-not-mull.c 51cadc9814c437e72abf8293afd36241 gcc/testsuite/gcc.target/i386/perm-concat.c 6b3a29397edcea192308598d8a9d0cce gcc/testsuite/gcc.target/i386/pic-1.c --- 46871,46877 ---- b6587e8091b873e052b86981b4c6dd26 gcc/testsuite/gcc.target/i386/pclmul-avx-check.h 56f7ac50c182627b5551065184b25a3b gcc/testsuite/gcc.target/i386/pclmul-check.h 15dd7e15fc38c0bad00692ec554b7cd1 gcc/testsuite/gcc.target/i386/pclmulqdq.c ! 242d92e5ef4346cc2cfc13adcf2f3314 gcc/testsuite/gcc.target/i386/pconfig-1.c 9679e778097966e5b39d1c4130b0ee74 gcc/testsuite/gcc.target/i386/pentium4-not-mull.c 51cadc9814c437e72abf8293afd36241 gcc/testsuite/gcc.target/i386/perm-concat.c 6b3a29397edcea192308598d8a9d0cce gcc/testsuite/gcc.target/i386/pic-1.c *************** e8b5b0802fdf96fc410ecd02fd9f6c85 gcc/te *** 46643,46649 **** fdacb6b61a5d36e161500b14166654ae gcc/testsuite/gcc.target/i386/pr21101.c 6043d0b4998dd913e2d9e533a24f6a55 gcc/testsuite/gcc.target/i386/pr21291.c 95f61d1360614e076d6888229ba0588f gcc/testsuite/gcc.target/i386/pr21518.c ! a4e2299ab741326b41b7c96d680454dc gcc/testsuite/gcc.target/i386/pr22076.c 7c75138083b8282a0a6352ac179a89b4 gcc/testsuite/gcc.target/i386/pr22141.c 8f2b174cc8f2156d82ca023e56a0b480 gcc/testsuite/gcc.target/i386/pr22152.c 8ba2071af1172c3cd6d8259c589bc794 gcc/testsuite/gcc.target/i386/pr22362.c --- 46918,46924 ---- fdacb6b61a5d36e161500b14166654ae gcc/testsuite/gcc.target/i386/pr21101.c 6043d0b4998dd913e2d9e533a24f6a55 gcc/testsuite/gcc.target/i386/pr21291.c 95f61d1360614e076d6888229ba0588f gcc/testsuite/gcc.target/i386/pr21518.c ! 873aea068e102b2d11c7796945eba0e6 gcc/testsuite/gcc.target/i386/pr22076.c 7c75138083b8282a0a6352ac179a89b4 gcc/testsuite/gcc.target/i386/pr22141.c 8f2b174cc8f2156d82ca023e56a0b480 gcc/testsuite/gcc.target/i386/pr22152.c 8ba2071af1172c3cd6d8259c589bc794 gcc/testsuite/gcc.target/i386/pr22362.c *************** e99eb064d503f38b5a9c419915b38ae9 gcc/te *** 46660,46666 **** d0e5cc510ff9f517c83e2f7086ecb411 gcc/testsuite/gcc.target/i386/pr24178.c 7757504bdc3b5bd70de1a5960fb48a38 gcc/testsuite/gcc.target/i386/pr24306.c 32fe0462a1b53d3fc2901ef49c868f00 gcc/testsuite/gcc.target/i386/pr24315.c ! 9e228011509a5ea1e0aa6c774b08d522 gcc/testsuite/gcc.target/i386/pr24414.c 7374a381241b2f4065e5ce84cfc03f77 gcc/testsuite/gcc.target/i386/pr25196.c e2e1fa15682cd42c52206538adc05f64 gcc/testsuite/gcc.target/i386/pr25254.c 303aec7f9e7bd15228b804c19e082f1e gcc/testsuite/gcc.target/i386/pr25293.c --- 46935,46941 ---- d0e5cc510ff9f517c83e2f7086ecb411 gcc/testsuite/gcc.target/i386/pr24178.c 7757504bdc3b5bd70de1a5960fb48a38 gcc/testsuite/gcc.target/i386/pr24306.c 32fe0462a1b53d3fc2901ef49c868f00 gcc/testsuite/gcc.target/i386/pr24315.c ! 0f58cd327f51c6024b5baa09e289c4e1 gcc/testsuite/gcc.target/i386/pr24414.c 7374a381241b2f4065e5ce84cfc03f77 gcc/testsuite/gcc.target/i386/pr25196.c e2e1fa15682cd42c52206538adc05f64 gcc/testsuite/gcc.target/i386/pr25254.c 303aec7f9e7bd15228b804c19e082f1e gcc/testsuite/gcc.target/i386/pr25293.c *************** a07b3ac10c2e8d8960d5f94aacc75325 gcc/te *** 46695,46708 **** 9b916b67c68cce873259ce7198b6593b gcc/testsuite/gcc.target/i386/pr32065-1.c 694842da5eb4c5254d8b4bfe1dc8c111 gcc/testsuite/gcc.target/i386/pr32065-2.c 1f9ce93e6d6ec25c764294b90cdb8d4a gcc/testsuite/gcc.target/i386/pr32191.c ! 22203c7ad5e43b79eb21de05c3452845 gcc/testsuite/gcc.target/i386/pr32219-1.c ! 55289efe9ecdd9f86bee8fb362351170 gcc/testsuite/gcc.target/i386/pr32219-2.c ! 78624072da7312f0eb3cca7f219f416a gcc/testsuite/gcc.target/i386/pr32219-3.c ! 3300f67245e33576cce58d6bc96e779c gcc/testsuite/gcc.target/i386/pr32219-4.c ! 8ea5bd47a0cead9c4356e12ff6b5dcef gcc/testsuite/gcc.target/i386/pr32219-5.c ! efa58ffb44f624da36aeac4c205d0d78 gcc/testsuite/gcc.target/i386/pr32219-6.c ! a63c6aefa093092a5201851c6a0ebc55 gcc/testsuite/gcc.target/i386/pr32219-7.c ! 07c126afe0aa2853ccc8538da083fd19 gcc/testsuite/gcc.target/i386/pr32219-8.c 0d754f3296fed9daf149740a268d8931 gcc/testsuite/gcc.target/i386/pr32219-9.c d165bed09148366aaa31f611e7089751 gcc/testsuite/gcc.target/i386/pr32268.c 23769d8ea259071995070dc88b8cefc7 gcc/testsuite/gcc.target/i386/pr32280-1.c --- 46970,46983 ---- 9b916b67c68cce873259ce7198b6593b gcc/testsuite/gcc.target/i386/pr32065-1.c 694842da5eb4c5254d8b4bfe1dc8c111 gcc/testsuite/gcc.target/i386/pr32065-2.c 1f9ce93e6d6ec25c764294b90cdb8d4a gcc/testsuite/gcc.target/i386/pr32191.c ! 3ef466a500bee78557e9f8543d11be2f gcc/testsuite/gcc.target/i386/pr32219-1.c ! 79a2e189766746b2f0f07d4459e83e18 gcc/testsuite/gcc.target/i386/pr32219-2.c ! 324eb5d6acff05e4f8056c7dbee9683c gcc/testsuite/gcc.target/i386/pr32219-3.c ! 31e1ff1e1dea7eb33b16e3b0e7b51cc1 gcc/testsuite/gcc.target/i386/pr32219-4.c ! b4936c47ad27f5cfcac7ada484a24cac gcc/testsuite/gcc.target/i386/pr32219-5.c ! 786db7c45dc2a6ae29200eac1b80c7d3 gcc/testsuite/gcc.target/i386/pr32219-6.c ! 89fc6d77f9488a3112b71f1d23bc8864 gcc/testsuite/gcc.target/i386/pr32219-7.c ! 51cdace97592cf8fb6a08aa60c3eb253 gcc/testsuite/gcc.target/i386/pr32219-8.c 0d754f3296fed9daf149740a268d8931 gcc/testsuite/gcc.target/i386/pr32219-9.c d165bed09148366aaa31f611e7089751 gcc/testsuite/gcc.target/i386/pr32268.c 23769d8ea259071995070dc88b8cefc7 gcc/testsuite/gcc.target/i386/pr32280-1.c *************** b17093c3bfb7dce01e2961b9007a74f1 gcc/te *** 46777,46784 **** 302fd577a2a020db1af8817a3e4168ac gcc/testsuite/gcc.target/i386/pr38824.c cc52fb6e855215f99580b9fa0002669f gcc/testsuite/gcc.target/i386/pr38931.c 776dfcacbe92f325df29c325a1a39d91 gcc/testsuite/gcc.target/i386/pr38988.c ! c8d1ff9429ba4604dabba902390d2bb7 gcc/testsuite/gcc.target/i386/pr39013-1.c ! 209afdf599b8ee30768436785833894b gcc/testsuite/gcc.target/i386/pr39013-2.c 1441ac15d0d7e61256bb4a348e29d6cf gcc/testsuite/gcc.target/i386/pr39058.c b11c8e619e3aa58383c3682c25436e38 gcc/testsuite/gcc.target/i386/pr39082-1.c 94f116f1e5835fc4ff466f7510f151e4 gcc/testsuite/gcc.target/i386/pr39139.c --- 47052,47059 ---- 302fd577a2a020db1af8817a3e4168ac gcc/testsuite/gcc.target/i386/pr38824.c cc52fb6e855215f99580b9fa0002669f gcc/testsuite/gcc.target/i386/pr38931.c 776dfcacbe92f325df29c325a1a39d91 gcc/testsuite/gcc.target/i386/pr38988.c ! 139b8a82970c0216c2382ef1c3fafd48 gcc/testsuite/gcc.target/i386/pr39013-1.c ! 8ed5e3e1acfe24d9701317573d9c1a1b gcc/testsuite/gcc.target/i386/pr39013-2.c 1441ac15d0d7e61256bb4a348e29d6cf gcc/testsuite/gcc.target/i386/pr39058.c b11c8e619e3aa58383c3682c25436e38 gcc/testsuite/gcc.target/i386/pr39082-1.c 94f116f1e5835fc4ff466f7510f151e4 gcc/testsuite/gcc.target/i386/pr39139.c *************** e96e89bee2b35c95b790aab0af5d4c57 gcc/te *** 46949,46955 **** d6e516d1e403892d4cc4985025b0655a gcc/testsuite/gcc.target/i386/pr49715-1.c f2fc960bed4e328a5f9df7a309ea139d gcc/testsuite/gcc.target/i386/pr49715-2.c f7ab73a2fd4f6a3dd974d04abb4a16b0 gcc/testsuite/gcc.target/i386/pr49781-1.c ! a1b436434f76fdc1fde0e433a1c5b3b4 gcc/testsuite/gcc.target/i386/pr49866.c f6f60a959460e8b78dd6402b43af4809 gcc/testsuite/gcc.target/i386/pr49920.c 4e2731d8a8d0fba23d5859b02be21702 gcc/testsuite/gcc.target/i386/pr49927.c 4e15899cf7cde94f403bc044accb5f22 gcc/testsuite/gcc.target/i386/pr50038.c --- 47224,47230 ---- d6e516d1e403892d4cc4985025b0655a gcc/testsuite/gcc.target/i386/pr49715-1.c f2fc960bed4e328a5f9df7a309ea139d gcc/testsuite/gcc.target/i386/pr49715-2.c f7ab73a2fd4f6a3dd974d04abb4a16b0 gcc/testsuite/gcc.target/i386/pr49781-1.c ! 60f4b57b6b6a4d210042d2f56e1d33cf gcc/testsuite/gcc.target/i386/pr49866.c f6f60a959460e8b78dd6402b43af4809 gcc/testsuite/gcc.target/i386/pr49920.c 4e2731d8a8d0fba23d5859b02be21702 gcc/testsuite/gcc.target/i386/pr49927.c 4e15899cf7cde94f403bc044accb5f22 gcc/testsuite/gcc.target/i386/pr50038.c *************** aff7074250516571a07457eace3f2639 gcc/te *** 46965,46981 **** e2c5c9c01d62f181543c46c15e625efc gcc/testsuite/gcc.target/i386/pr51236.c cc3feb019a23f31f22f8d90ea35306a2 gcc/testsuite/gcc.target/i386/pr51393.c feae34d686df3d5dc6348f1e08292d5f gcc/testsuite/gcc.target/i386/pr51987.c ! 9e2c6dc3ff1a53066110e22a1b8878fa gcc/testsuite/gcc.target/i386/pr52146.c fa01242d5badde4691345c598d6cad72 gcc/testsuite/gcc.target/i386/pr52171.c ef886cc6e383e494a854c7e9478d4347 gcc/testsuite/gcc.target/i386/pr52252-atom.c 66960d383ca0ec04f2cfc2ce546d9746 gcc/testsuite/gcc.target/i386/pr52252-core.c e90dc7f0b1e6d26c11b5224430e328db gcc/testsuite/gcc.target/i386/pr52330.c ! 663a04de8e14ab888ac539e83abb3848 gcc/testsuite/gcc.target/i386/pr52698.c 0c3fdc1f40423ab5e185c0b1d9df7215 gcc/testsuite/gcc.target/i386/pr52736.c d5747936af421343d3d26320d8dd18a6 gcc/testsuite/gcc.target/i386/pr52754.c ! f3734af93c1735fb407310153bbcc265 gcc/testsuite/gcc.target/i386/pr52857-1.c ! 3c73c51d0b4edd63528474f20107a721 gcc/testsuite/gcc.target/i386/pr52857-2.c ! 8567c3e77e9c76d198a3c6cdfdd49a41 gcc/testsuite/gcc.target/i386/pr52876.c ae96f2a6ec3876560fe977282760bda7 gcc/testsuite/gcc.target/i386/pr52882.c 908f895d749fbe4b41db70b705b92270 gcc/testsuite/gcc.target/i386/pr52883.c 7cd607f59acbf5495f51e7f583bdfaaf gcc/testsuite/gcc.target/i386/pr53249.c --- 47240,47256 ---- e2c5c9c01d62f181543c46c15e625efc gcc/testsuite/gcc.target/i386/pr51236.c cc3feb019a23f31f22f8d90ea35306a2 gcc/testsuite/gcc.target/i386/pr51393.c feae34d686df3d5dc6348f1e08292d5f gcc/testsuite/gcc.target/i386/pr51987.c ! 28bbe8fb8e03847360d72e655a04541c gcc/testsuite/gcc.target/i386/pr52146.c fa01242d5badde4691345c598d6cad72 gcc/testsuite/gcc.target/i386/pr52171.c ef886cc6e383e494a854c7e9478d4347 gcc/testsuite/gcc.target/i386/pr52252-atom.c 66960d383ca0ec04f2cfc2ce546d9746 gcc/testsuite/gcc.target/i386/pr52252-core.c e90dc7f0b1e6d26c11b5224430e328db gcc/testsuite/gcc.target/i386/pr52330.c ! c48d1106f891da8cb9f2181a389e01b7 gcc/testsuite/gcc.target/i386/pr52698.c 0c3fdc1f40423ab5e185c0b1d9df7215 gcc/testsuite/gcc.target/i386/pr52736.c d5747936af421343d3d26320d8dd18a6 gcc/testsuite/gcc.target/i386/pr52754.c ! 517bbfb07279a94cd6901ed62f114aa9 gcc/testsuite/gcc.target/i386/pr52857-1.c ! 2d8dc92c147e4d0bcabd8dc699be03f3 gcc/testsuite/gcc.target/i386/pr52857-2.c ! 95e57e45c052d6f02d8aa1f9d072f874 gcc/testsuite/gcc.target/i386/pr52876.c ae96f2a6ec3876560fe977282760bda7 gcc/testsuite/gcc.target/i386/pr52882.c 908f895d749fbe4b41db70b705b92270 gcc/testsuite/gcc.target/i386/pr52883.c 7cd607f59acbf5495f51e7f583bdfaaf gcc/testsuite/gcc.target/i386/pr53249.c *************** fd40b61a82fba3ab0c6bb50cfedfb117 gcc/te *** 46991,47001 **** 438890bd8588325bfdd31602ae74f65c gcc/testsuite/gcc.target/i386/pr53425-1.c 384ba022d2854e096a4ab0f145961c51 gcc/testsuite/gcc.target/i386/pr53425-2.c b39743561f1aade37b33835b241fb062 gcc/testsuite/gcc.target/i386/pr53623.c ! fab0d7a06b537344b89206ac0118ede7 gcc/testsuite/gcc.target/i386/pr53698.c 7a5c747070caa41b5e773ef449165641 gcc/testsuite/gcc.target/i386/pr53712.c a9790955f72731a48e8cc07e79081c86 gcc/testsuite/gcc.target/i386/pr53759.c b845585001d3aa1599603bf8f8438393 gcc/testsuite/gcc.target/i386/pr53907.c ! a1bce0d57b6fd35c2faf04c2f80d6550 gcc/testsuite/gcc.target/i386/pr54157.c dba42c939904ce7e33213ea822d41659 gcc/testsuite/gcc.target/i386/pr54400.c 414b8adf659b6e0fae2493215e4c8e43 gcc/testsuite/gcc.target/i386/pr54445-1.c f69bb6692a438b6c4c3ae59e8151f9e5 gcc/testsuite/gcc.target/i386/pr54445-2.c --- 47266,47276 ---- 438890bd8588325bfdd31602ae74f65c gcc/testsuite/gcc.target/i386/pr53425-1.c 384ba022d2854e096a4ab0f145961c51 gcc/testsuite/gcc.target/i386/pr53425-2.c b39743561f1aade37b33835b241fb062 gcc/testsuite/gcc.target/i386/pr53623.c ! 179de2cb7520586109384b9edf5a9b30 gcc/testsuite/gcc.target/i386/pr53698.c 7a5c747070caa41b5e773ef449165641 gcc/testsuite/gcc.target/i386/pr53712.c a9790955f72731a48e8cc07e79081c86 gcc/testsuite/gcc.target/i386/pr53759.c b845585001d3aa1599603bf8f8438393 gcc/testsuite/gcc.target/i386/pr53907.c ! c6b9296a558aaf5187a02addf73c05d0 gcc/testsuite/gcc.target/i386/pr54157.c dba42c939904ce7e33213ea822d41659 gcc/testsuite/gcc.target/i386/pr54400.c 414b8adf659b6e0fae2493215e4c8e43 gcc/testsuite/gcc.target/i386/pr54445-1.c f69bb6692a438b6c4c3ae59e8151f9e5 gcc/testsuite/gcc.target/i386/pr54445-2.c *************** f69bb6692a438b6c4c3ae59e8151f9e5 gcc/te *** 47003,47012 **** 49bc157be86e0960ae4e4637c5986069 gcc/testsuite/gcc.target/i386/pr54592.c 6d7b053bbb28bb9e1a4e8c1967a60835 gcc/testsuite/gcc.target/i386/pr54694.c c502c143bfe08e286784446e3a530233 gcc/testsuite/gcc.target/i386/pr54703.c ! 94c3ae931dcc50fe3b4806ac10d8b49d gcc/testsuite/gcc.target/i386/pr55049-1.c ! e64fab110c29e7a7dac4eab53a510cd4 gcc/testsuite/gcc.target/i386/pr55093.c ! 971529c1cb0a306601d8a61d4df7716c gcc/testsuite/gcc.target/i386/pr55116-1.c ! 9fa9c0c5f09f31e76035778e3bf46b4f gcc/testsuite/gcc.target/i386/pr55116-2.c 850e83f914a40f18a2e5580f476368ec gcc/testsuite/gcc.target/i386/pr55130.c 815f3e59894f23400b8f65f47018b0a6 gcc/testsuite/gcc.target/i386/pr55141.c f87cf0427662776b6b805de195141d67 gcc/testsuite/gcc.target/i386/pr55142-1.c --- 47278,47287 ---- 49bc157be86e0960ae4e4637c5986069 gcc/testsuite/gcc.target/i386/pr54592.c 6d7b053bbb28bb9e1a4e8c1967a60835 gcc/testsuite/gcc.target/i386/pr54694.c c502c143bfe08e286784446e3a530233 gcc/testsuite/gcc.target/i386/pr54703.c ! f9b778e3b98dfbae81a8d9edc0e6e7f0 gcc/testsuite/gcc.target/i386/pr55049-1.c ! 2d60942307fe4e7e807550a8a784f351 gcc/testsuite/gcc.target/i386/pr55093.c ! 65f2fe2ece7ea124fb44ac3412f502b0 gcc/testsuite/gcc.target/i386/pr55116-1.c ! daa42859823476fca1b35a79f1daabe0 gcc/testsuite/gcc.target/i386/pr55116-2.c 850e83f914a40f18a2e5580f476368ec gcc/testsuite/gcc.target/i386/pr55130.c 815f3e59894f23400b8f65f47018b0a6 gcc/testsuite/gcc.target/i386/pr55141.c f87cf0427662776b6b805de195141d67 gcc/testsuite/gcc.target/i386/pr55142-1.c *************** b4fb0c886229835ec55bd681f831812b gcc/te *** 47028,47034 **** 2d3d0716987d79a9b2427e2e7237c420 gcc/testsuite/gcc.target/i386/pr55512-4.c ed1ba8dd30b6e7d0c41497405b5c6d08 gcc/testsuite/gcc.target/i386/pr55590-1.c f36e5b68f83ad7f55d170085ad4c4fff gcc/testsuite/gcc.target/i386/pr55590-2.c ! 3a737ef7a5b3519c35502247ffe7f87c gcc/testsuite/gcc.target/i386/pr55597.c 05e04dbd1677ad71dcef52e0ba2805c7 gcc/testsuite/gcc.target/i386/pr55672.c f10a165430aeef45c61d11278003318d gcc/testsuite/gcc.target/i386/pr55686.c 12194a8a936bb0fdc429c4ad3ad689df gcc/testsuite/gcc.target/i386/pr55775.c --- 47303,47309 ---- 2d3d0716987d79a9b2427e2e7237c420 gcc/testsuite/gcc.target/i386/pr55512-4.c ed1ba8dd30b6e7d0c41497405b5c6d08 gcc/testsuite/gcc.target/i386/pr55590-1.c f36e5b68f83ad7f55d170085ad4c4fff gcc/testsuite/gcc.target/i386/pr55590-2.c ! bdfd75705a8ed1ae370d0e6397e89e61 gcc/testsuite/gcc.target/i386/pr55597.c 05e04dbd1677ad71dcef52e0ba2805c7 gcc/testsuite/gcc.target/i386/pr55672.c f10a165430aeef45c61d11278003318d gcc/testsuite/gcc.target/i386/pr55686.c 12194a8a936bb0fdc429c4ad3ad689df gcc/testsuite/gcc.target/i386/pr55775.c *************** af5df137e86c7cfd11e8d68f07c8d25c gcc/te *** 47130,47139 **** 0c2d582f00adc7472660160cba8ba19b gcc/testsuite/gcc.target/i386/pr59839.c d1a0e61387e72001b140b22cec7d1a93 gcc/testsuite/gcc.target/i386/pr59874-1.c 5e70c91e6aef9c124836dbc1d66c0bdc gcc/testsuite/gcc.target/i386/pr59874-2.c ! 2ec6baf4aeb86d68a84163d2477d428e gcc/testsuite/gcc.target/i386/pr59874-3.c 918053d5181acfecc88c708f27f8f436 gcc/testsuite/gcc.target/i386/pr59880.c b87fe1f8e7496a37c4723f6e51a2ea39 gcc/testsuite/gcc.target/i386/pr59927.c ! 45e03a75da61788fe5e604ebad69b06f gcc/testsuite/gcc.target/i386/pr59929.c fb96b888f73b2dddf89b41b3dbc9da0e gcc/testsuite/gcc.target/i386/pr60077-1.c 87f9b9773ac7d3c76e952ed8199c7a7c gcc/testsuite/gcc.target/i386/pr60077-2.c ca6424ec4af0910766ce85dcf738c0c9 gcc/testsuite/gcc.target/i386/pr60205-1.c --- 47405,47414 ---- 0c2d582f00adc7472660160cba8ba19b gcc/testsuite/gcc.target/i386/pr59839.c d1a0e61387e72001b140b22cec7d1a93 gcc/testsuite/gcc.target/i386/pr59874-1.c 5e70c91e6aef9c124836dbc1d66c0bdc gcc/testsuite/gcc.target/i386/pr59874-2.c ! aeab82c6005d256c58b161b65c623187 gcc/testsuite/gcc.target/i386/pr59874-3.c 918053d5181acfecc88c708f27f8f436 gcc/testsuite/gcc.target/i386/pr59880.c b87fe1f8e7496a37c4723f6e51a2ea39 gcc/testsuite/gcc.target/i386/pr59927.c ! 64ee275f9d63edbf1b06ed2ca865a50b gcc/testsuite/gcc.target/i386/pr59929.c fb96b888f73b2dddf89b41b3dbc9da0e gcc/testsuite/gcc.target/i386/pr60077-1.c 87f9b9773ac7d3c76e952ed8199c7a7c gcc/testsuite/gcc.target/i386/pr60077-2.c ca6424ec4af0910766ce85dcf738c0c9 gcc/testsuite/gcc.target/i386/pr60205-1.c *************** a2283164e9ac8a9ecb6ab0a475ca6ce4 gcc/te *** 47162,47168 **** c2ad80ced67848aa724c64790fae16e7 gcc/testsuite/gcc.target/i386/pr61423.c c862a3c17ff7c49e42a7fd543dbaf3ab gcc/testsuite/gcc.target/i386/pr61446.c 41c81c5a9c11d9139ad858d341f4ab52 gcc/testsuite/gcc.target/i386/pr61572.c ! 3f4cbdecf1917a066aa3efa5412627d9 gcc/testsuite/gcc.target/i386/pr61599-1.c e12bd6c5d5e4249892681c3ca63428e6 gcc/testsuite/gcc.target/i386/pr61599-2.c 2ee0efa258974320c9447d777ed0cd1e gcc/testsuite/gcc.target/i386/pr61794.c 0af95498db628ce9ab87f06bcc3818c2 gcc/testsuite/gcc.target/i386/pr61801.c --- 47437,47443 ---- c2ad80ced67848aa724c64790fae16e7 gcc/testsuite/gcc.target/i386/pr61423.c c862a3c17ff7c49e42a7fd543dbaf3ab gcc/testsuite/gcc.target/i386/pr61446.c 41c81c5a9c11d9139ad858d341f4ab52 gcc/testsuite/gcc.target/i386/pr61572.c ! 051e752e6f5f3b5c6c426d1626da2a1e gcc/testsuite/gcc.target/i386/pr61599-1.c e12bd6c5d5e4249892681c3ca63428e6 gcc/testsuite/gcc.target/i386/pr61599-2.c 2ee0efa258974320c9447d777ed0cd1e gcc/testsuite/gcc.target/i386/pr61794.c 0af95498db628ce9ab87f06bcc3818c2 gcc/testsuite/gcc.target/i386/pr61801.c *************** c401b2b80062c0d9567f773adca682d1 gcc/te *** 47178,47184 **** c5d5a6e45cbe795c19e3ccb075e2c353 gcc/testsuite/gcc.target/i386/pr63495.c d411131829e4182bcd0f01c491669453 gcc/testsuite/gcc.target/i386/pr63527.c 50ea06065d2e674f38033361f71fea26 gcc/testsuite/gcc.target/i386/pr63534.c ! b94984e7c628f56d531f92149504a0ed gcc/testsuite/gcc.target/i386/pr63538.c 561aeb698494e71bb2a1de5b9848f5f5 gcc/testsuite/gcc.target/i386/pr63542-1.c c2179fbbe68a40ce1e3486b98db6a47f gcc/testsuite/gcc.target/i386/pr63542-2.c 9c17e1a161d05dcffaa896376c5ecc02 gcc/testsuite/gcc.target/i386/pr63563.c --- 47453,47459 ---- c5d5a6e45cbe795c19e3ccb075e2c353 gcc/testsuite/gcc.target/i386/pr63495.c d411131829e4182bcd0f01c491669453 gcc/testsuite/gcc.target/i386/pr63527.c 50ea06065d2e674f38033361f71fea26 gcc/testsuite/gcc.target/i386/pr63534.c ! 30aaae44143ac2a44f16e0db0cec0af6 gcc/testsuite/gcc.target/i386/pr63538.c 561aeb698494e71bb2a1de5b9848f5f5 gcc/testsuite/gcc.target/i386/pr63542-1.c c2179fbbe68a40ce1e3486b98db6a47f gcc/testsuite/gcc.target/i386/pr63542-2.c 9c17e1a161d05dcffaa896376c5ecc02 gcc/testsuite/gcc.target/i386/pr63563.c *************** e70e8eb63cff3610044e38fdad89e34b gcc/te *** 47200,47206 **** 516133a673f4f174a446f2fc7a80e412 gcc/testsuite/gcc.target/i386/pr64114.c 06cb0e7a72d6bb5683ff9652a80c6ae9 gcc/testsuite/gcc.target/i386/pr64291-1.c 2b7674a20e784b4cf390cb695a576dfe gcc/testsuite/gcc.target/i386/pr64291-2.c ! 49608ce01a9e0d30d5e69f3723ac732a gcc/testsuite/gcc.target/i386/pr64317.c 062641897c1f576f8e34f6685a28feab gcc/testsuite/gcc.target/i386/pr64386.c 4ab995a39be1d9f6ab51bed74868b4d9 gcc/testsuite/gcc.target/i386/pr64387.c 7f461e790905a6a59c18169efe63b087 gcc/testsuite/gcc.target/i386/pr64393.c --- 47475,47481 ---- 516133a673f4f174a446f2fc7a80e412 gcc/testsuite/gcc.target/i386/pr64114.c 06cb0e7a72d6bb5683ff9652a80c6ae9 gcc/testsuite/gcc.target/i386/pr64291-1.c 2b7674a20e784b4cf390cb695a576dfe gcc/testsuite/gcc.target/i386/pr64291-2.c ! e05ae6facbbbf26826893a785e206bc4 gcc/testsuite/gcc.target/i386/pr64317.c 062641897c1f576f8e34f6685a28feab gcc/testsuite/gcc.target/i386/pr64386.c 4ab995a39be1d9f6ab51bed74868b4d9 gcc/testsuite/gcc.target/i386/pr64387.c 7f461e790905a6a59c18169efe63b087 gcc/testsuite/gcc.target/i386/pr64393.c *************** a26eeafdab2d0e6340c7d268ec090c8c gcc/te *** 47237,47242 **** --- 47512,47518 ---- bac2b79055e3298741ce9969d7ee6b11 gcc/testsuite/gcc.target/i386/pr65671.c c4ad4fe09848c714ef20bd7b3bec80c3 gcc/testsuite/gcc.target/i386/pr65693.c 2ea7c4202a1e5497cafa1c5ff17ba1ae gcc/testsuite/gcc.target/i386/pr65753.c + 78cbe4007cdbf9c2e9d9906666e65340 gcc/testsuite/gcc.target/i386/pr65782.c 6f6047a71bbe57979dd5ffb6dbc92efa gcc/testsuite/gcc.target/i386/pr65871-1.c 4e9323ac4312d95a31dedce674927010 gcc/testsuite/gcc.target/i386/pr65871-2.c 5775c5a6318f1243ca0d6b370dfa80a8 gcc/testsuite/gcc.target/i386/pr65871-3.c *************** d77f5c5aaeda2ba3b6d6e23d3ff452ed gcc/te *** 47269,47275 **** 9691b9fb2206de681ed083de689c89c7 gcc/testsuite/gcc.target/i386/pr66334.c 7e1d59ce8293eee1a626a8693fdb6e4f gcc/testsuite/gcc.target/i386/pr66412.c bbcc4bad6e85470b150a7b32458d3e35 gcc/testsuite/gcc.target/i386/pr66424.c ! a15e6d4602a8708a08f7528489b4c898 gcc/testsuite/gcc.target/i386/pr66470.c adcb62c54481141a24a282aa3efd51eb gcc/testsuite/gcc.target/i386/pr66473.c a90810efc19810051c42bbf05fc2f72b gcc/testsuite/gcc.target/i386/pr66560-1.c e67da57ff2aa6286b42715d71c873ffa gcc/testsuite/gcc.target/i386/pr66560-2.c --- 47545,47551 ---- 9691b9fb2206de681ed083de689c89c7 gcc/testsuite/gcc.target/i386/pr66334.c 7e1d59ce8293eee1a626a8693fdb6e4f gcc/testsuite/gcc.target/i386/pr66412.c bbcc4bad6e85470b150a7b32458d3e35 gcc/testsuite/gcc.target/i386/pr66424.c ! 19bb97a482a9e3d01f67c4fe65bfdb96 gcc/testsuite/gcc.target/i386/pr66470.c adcb62c54481141a24a282aa3efd51eb gcc/testsuite/gcc.target/i386/pr66473.c a90810efc19810051c42bbf05fc2f72b gcc/testsuite/gcc.target/i386/pr66560-1.c e67da57ff2aa6286b42715d71c873ffa gcc/testsuite/gcc.target/i386/pr66560-2.c *************** ab260630154714d6a92fa264356ec077 gcc/te *** 47291,47298 **** 2736f559d9ed3001d877f7450d819853 gcc/testsuite/gcc.target/i386/pr66818.c 3a8525427a2c06a8b1267e82570c0b32 gcc/testsuite/gcc.target/i386/pr66819-1.c 706dbaecc1d6996b81f72c1443d9709e gcc/testsuite/gcc.target/i386/pr66819-2.c ! 3b93308bdecf42fb2c2176aa9e4b5b1e gcc/testsuite/gcc.target/i386/pr66819-3.c ! c775a183cd78571eb1b5fb056475ab2a gcc/testsuite/gcc.target/i386/pr66819-4.c a085a03f3e2cb2efe81768c469c38448 gcc/testsuite/gcc.target/i386/pr66819-5.c 977ca8ebf3373ba11feedebeb69aea2c gcc/testsuite/gcc.target/i386/pr66821.c 32a7bc9b1156780a17e61321fa5d0b20 gcc/testsuite/gcc.target/i386/pr66824.c --- 47567,47574 ---- 2736f559d9ed3001d877f7450d819853 gcc/testsuite/gcc.target/i386/pr66818.c 3a8525427a2c06a8b1267e82570c0b32 gcc/testsuite/gcc.target/i386/pr66819-1.c 706dbaecc1d6996b81f72c1443d9709e gcc/testsuite/gcc.target/i386/pr66819-2.c ! 84d18626653364c4aeae9aa54f1304e1 gcc/testsuite/gcc.target/i386/pr66819-3.c ! 6f5c7f70b4c803c33e6e9c040c4e1d69 gcc/testsuite/gcc.target/i386/pr66819-4.c a085a03f3e2cb2efe81768c469c38448 gcc/testsuite/gcc.target/i386/pr66819-5.c 977ca8ebf3373ba11feedebeb69aea2c gcc/testsuite/gcc.target/i386/pr66821.c 32a7bc9b1156780a17e61321fa5d0b20 gcc/testsuite/gcc.target/i386/pr66824.c *************** c3b077ecd7c86d02b425005a9cb043c1 gcc/te *** 47328,47334 **** 20023d24d21d62dd6789da2589104070 gcc/testsuite/gcc.target/i386/pr67963-2.c 139b1bdb98e3296f9ddee0838954fe94 gcc/testsuite/gcc.target/i386/pr67963-3.c 1821cb97402be7ffe7bdc5f23f8e3199 gcc/testsuite/gcc.target/i386/pr67985-1.c ! 4212d7a5843c1b880161949554647739 gcc/testsuite/gcc.target/i386/pr67985-2.c 4f7ff503d6a736a2ea199675c6262322 gcc/testsuite/gcc.target/i386/pr67985-3.c 4f8f5573505d9b60bab0ee48c5fe922f gcc/testsuite/gcc.target/i386/pr67995-1.c e5e29507fd1dff3f68bf471a7ebabe04 gcc/testsuite/gcc.target/i386/pr67995-2.c --- 47604,47610 ---- 20023d24d21d62dd6789da2589104070 gcc/testsuite/gcc.target/i386/pr67963-2.c 139b1bdb98e3296f9ddee0838954fe94 gcc/testsuite/gcc.target/i386/pr67963-3.c 1821cb97402be7ffe7bdc5f23f8e3199 gcc/testsuite/gcc.target/i386/pr67985-1.c ! dd5ee7ef74ea9dfe9ed9da3e757be1a2 gcc/testsuite/gcc.target/i386/pr67985-2.c 4f7ff503d6a736a2ea199675c6262322 gcc/testsuite/gcc.target/i386/pr67985-3.c 4f8f5573505d9b60bab0ee48c5fe922f gcc/testsuite/gcc.target/i386/pr67995-1.c e5e29507fd1dff3f68bf471a7ebabe04 gcc/testsuite/gcc.target/i386/pr67995-2.c *************** fb74d73535ae13841ad274eed8746e1d gcc/te *** 47468,47474 **** 1b44db35f8df9b2763028de6125de9e3 gcc/testsuite/gcc.target/i386/pr70738-4.c 61eaf57653733d78911ae6debba297f3 gcc/testsuite/gcc.target/i386/pr70738-5.c 2c2031d1591def6dc255c3c4e1b5ea98 gcc/testsuite/gcc.target/i386/pr70738-6.c ! a12202905bd4ab853068b48a260a39fc gcc/testsuite/gcc.target/i386/pr70738-7.c 3a1ef414c243d704288672ae2ed719ae gcc/testsuite/gcc.target/i386/pr70738-8.c b79c0bcdf58f6e1bba3f6620fefa6f0f gcc/testsuite/gcc.target/i386/pr70738-9.c b8aaa1c61d237ea27d230f6584ce5adf gcc/testsuite/gcc.target/i386/pr70750-1.c --- 47744,47750 ---- 1b44db35f8df9b2763028de6125de9e3 gcc/testsuite/gcc.target/i386/pr70738-4.c 61eaf57653733d78911ae6debba297f3 gcc/testsuite/gcc.target/i386/pr70738-5.c 2c2031d1591def6dc255c3c4e1b5ea98 gcc/testsuite/gcc.target/i386/pr70738-6.c ! 234057751bd4af4434ba4b09c32e7465 gcc/testsuite/gcc.target/i386/pr70738-7.c 3a1ef414c243d704288672ae2ed719ae gcc/testsuite/gcc.target/i386/pr70738-8.c b79c0bcdf58f6e1bba3f6620fefa6f0f gcc/testsuite/gcc.target/i386/pr70738-9.c b8aaa1c61d237ea27d230f6584ce5adf gcc/testsuite/gcc.target/i386/pr70750-1.c *************** b4e9ddfcff5392084623bc865a470f0d gcc/te *** 47476,47483 **** 3ac0ee054148d8f590a224e725fc0e89 gcc/testsuite/gcc.target/i386/pr70799-1.c b27b2690cfdc8b79c2ce0f89b171b834 gcc/testsuite/gcc.target/i386/pr70799-2.c f353395bccf918949658ea5606b5bc6e gcc/testsuite/gcc.target/i386/pr70799-3.c - 45f696c5d0f8378ebb4864d2a8c6b652 gcc/testsuite/gcc.target/i386/pr70799-4.c - 17303f2a45401efd58622846a6deecb2 gcc/testsuite/gcc.target/i386/pr70799-5.c 4a1998a131bd50329d33a11477629de5 gcc/testsuite/gcc.target/i386/pr70821.c 1003b2af30448864252327bd08ddb57b gcc/testsuite/gcc.target/i386/pr70858.c c4f6a31f14b030cd9290db1df9495760 gcc/testsuite/gcc.target/i386/pr70876.c --- 47752,47757 ---- *************** c912bb68571e4d5714afa27a8a0bbfbb gcc/te *** 47518,47524 **** 6b0d02fbe2f46273848e2a4f2e1562cb gcc/testsuite/gcc.target/i386/pr77761.c e24e16431564ae1db7f06ba62681abaa gcc/testsuite/gcc.target/i386/pr77833.c e5be6cf6d0060be81cbbeb24d1b45ac8 gcc/testsuite/gcc.target/i386/pr77856.c ! ddcb7f5cb340f4cab23fd0392eed65ce gcc/testsuite/gcc.target/i386/pr77881.c ebdf78610e5253029e5305e68875b6c9 gcc/testsuite/gcc.target/i386/pr77991.c e92468cd3d6db284b41cbd24c3b82524 gcc/testsuite/gcc.target/i386/pr78035.c a0f1a716d3aa44f2dbe260d265da5118 gcc/testsuite/gcc.target/i386/pr78037.c --- 47792,47798 ---- 6b0d02fbe2f46273848e2a4f2e1562cb gcc/testsuite/gcc.target/i386/pr77761.c e24e16431564ae1db7f06ba62681abaa gcc/testsuite/gcc.target/i386/pr77833.c e5be6cf6d0060be81cbbeb24d1b45ac8 gcc/testsuite/gcc.target/i386/pr77856.c ! 93e914077bc0a0fec60293774cf1fb84 gcc/testsuite/gcc.target/i386/pr77881.c ebdf78610e5253029e5305e68875b6c9 gcc/testsuite/gcc.target/i386/pr77991.c e92468cd3d6db284b41cbd24c3b82524 gcc/testsuite/gcc.target/i386/pr78035.c a0f1a716d3aa44f2dbe260d265da5118 gcc/testsuite/gcc.target/i386/pr78037.c *************** ec965c6c04e6eccada8b8ad3ae3be837 gcc/te *** 47679,47689 **** d7c0264a0141e7dada7356837078fe1f gcc/testsuite/gcc.target/i386/pr82628.c af640e6417bda894b964dcafe04ebb19 gcc/testsuite/gcc.target/i386/pr82659-1.c 74ed9ea54350e72c8ff175a0019a05fd gcc/testsuite/gcc.target/i386/pr82659-2.c ! aa2558037d3d720202a8c600f3aa47aa gcc/testsuite/gcc.target/i386/pr82659-3.c 5e76a6f37dea0349d6e7aa6a97a1f7a6 gcc/testsuite/gcc.target/i386/pr82659-4.c 49f4dfdcf0385c77c063607993abc8c4 gcc/testsuite/gcc.target/i386/pr82659-5.c ad0f59e4fe0e9407ebaddb65a2989530 gcc/testsuite/gcc.target/i386/pr82659-6.c ! d759476918b912aa5fa84cdf06f95aba gcc/testsuite/gcc.target/i386/pr82662.c ee329bea3f1c92f52009173ce2dce510 gcc/testsuite/gcc.target/i386/pr82673.c 63efe3801cd250766ce11b7933f4bcf7 gcc/testsuite/gcc.target/i386/pr82699-1.c 36c9132901555db6d76239335b5a9d5a gcc/testsuite/gcc.target/i386/pr82699-2.c --- 47953,47963 ---- d7c0264a0141e7dada7356837078fe1f gcc/testsuite/gcc.target/i386/pr82628.c af640e6417bda894b964dcafe04ebb19 gcc/testsuite/gcc.target/i386/pr82659-1.c 74ed9ea54350e72c8ff175a0019a05fd gcc/testsuite/gcc.target/i386/pr82659-2.c ! 00e3537b81b03eeb4a7565828f61b2fd gcc/testsuite/gcc.target/i386/pr82659-3.c 5e76a6f37dea0349d6e7aa6a97a1f7a6 gcc/testsuite/gcc.target/i386/pr82659-4.c 49f4dfdcf0385c77c063607993abc8c4 gcc/testsuite/gcc.target/i386/pr82659-5.c ad0f59e4fe0e9407ebaddb65a2989530 gcc/testsuite/gcc.target/i386/pr82659-6.c ! e73aed461dc16fd9b7669c6321cda770 gcc/testsuite/gcc.target/i386/pr82662.c ee329bea3f1c92f52009173ce2dce510 gcc/testsuite/gcc.target/i386/pr82673.c 63efe3801cd250766ce11b7933f4bcf7 gcc/testsuite/gcc.target/i386/pr82699-1.c 36c9132901555db6d76239335b5a9d5a gcc/testsuite/gcc.target/i386/pr82699-2.c *************** bfc63737303c346862df5e9d8928d4f0 gcc/te *** 47770,47775 **** --- 48044,48050 ---- 51e373c9a10bdce46b6bd839fecfedeb gcc/testsuite/gcc.target/i386/pr85508.c c9b6441c0d7b7f884874e0499b1458cd gcc/testsuite/gcc.target/i386/pr85511.c d57c15d8d315998b09f9cd1a9f85541d gcc/testsuite/gcc.target/i386/pr85593.c + 15df978a52bf5f2e4062a114c41b47db gcc/testsuite/gcc.target/i386/pr85860.c dd2eb8b8e0da9871c78cecc6af291003 gcc/testsuite/gcc.target/i386/pr85934.c c19a9d9e41959574f6c21d72429137da gcc/testsuite/gcc.target/i386/pr85950.c 2360ffb748aff9fb6627cff8522f74d8 gcc/testsuite/gcc.target/i386/pr85984.c *************** e89855e4afbc8be3009567aa4b7ef483 gcc/te *** 47782,47787 **** --- 48057,48063 ---- c2ca631fa7bb41bff427b4c2a6a6aaa1 gcc/testsuite/gcc.target/i386/pr87198.c 4bcf1f2404bf83c2e402690653adf2bc gcc/testsuite/gcc.target/i386/pr87370.c 640f95ee3bcfcdd3ddddf350e70a219e gcc/testsuite/gcc.target/i386/pr87550.c + b91162801f7d0d6af855bd692e22ab63 gcc/testsuite/gcc.target/i386/pr87853.c 4b54801016bc4b3cc228ac7dd70de407 gcc/testsuite/gcc.target/i386/pr87928.c 8aa15a462c33644313684b33656a3512 gcc/testsuite/gcc.target/i386/pr88416.c 561c19e980c43266fc4b3d3a28fe8bc2 gcc/testsuite/gcc.target/i386/pr88418.c *************** c2ca631fa7bb41bff427b4c2a6a6aaa1 gcc/te *** 47790,47795 **** --- 48066,48102 ---- f32a1aef3d374a5b4ad42047396a3805 gcc/testsuite/gcc.target/i386/pr88938.c 141169b2e8ff64bdba2208ca1feb4a7c gcc/testsuite/gcc.target/i386/pr88948.c 956a0e340ae4dfe5721ba6a3ab98969f gcc/testsuite/gcc.target/i386/pr89290.c + 741d1c44cbb9ba8dfdfc363a84b46d20 gcc/testsuite/gcc.target/i386/pr89523-1a.c + bcb8ff722b8b594bcfd9075d37eaff6f gcc/testsuite/gcc.target/i386/pr89523-1b.c + 1a7b71dea5f1b81b4c20d53bd27d1604 gcc/testsuite/gcc.target/i386/pr89523-2.c + c477d7333d280aa9ba0232f363826175 gcc/testsuite/gcc.target/i386/pr89523-3.c + 37d95d0f23ac1bfc04510b1a7b4a0ed7 gcc/testsuite/gcc.target/i386/pr89523-4.c + b9dc216c8935f73126bb07b75ef58c82 gcc/testsuite/gcc.target/i386/pr89523-5.c + 21b4d2c258f9255ac099efdcceba396c gcc/testsuite/gcc.target/i386/pr89523-6.c + 104a2416e74048f45915a5e09656c2aa gcc/testsuite/gcc.target/i386/pr89523-7.c + fa633632e627d7c0fcb34ba2673e196b gcc/testsuite/gcc.target/i386/pr89523-8.c + aab7cb035d0456e2d0bf25f7f53cfd30 gcc/testsuite/gcc.target/i386/pr89523-9.c + 8c3d1b44db7a8ab2be0a823e6604c679 gcc/testsuite/gcc.target/i386/pr89684.c + 673b7f390c915c1784df3e6226b2ea65 gcc/testsuite/gcc.target/i386/pr89827.c + 246798e6fdd75c72604b74965a056935 gcc/testsuite/gcc.target/i386/pr89848.c + 17b51e3fde50f413030ac13d4da5f92d gcc/testsuite/gcc.target/i386/pr89902.c + e225d6b5ab365db1e6c8d7a75e04345d gcc/testsuite/gcc.target/i386/pr89903.c + f529a8c1dee59aa4275d01977b57a0f2 gcc/testsuite/gcc.target/i386/pr89945.c + 2b740660f12ab9c7636b35db2ec19c55 gcc/testsuite/gcc.target/i386/pr89965.c + c04294701860868605e6d4177d1f5a28 gcc/testsuite/gcc.target/i386/pr90193.c + 71daed2fce58de22bfa193c1d29d8205 gcc/testsuite/gcc.target/i386/pr90547.c + 82fd34c6f4f79a15f4144b67a4507d26 gcc/testsuite/gcc.target/i386/pr90867.c + 1d0e83324035b21be27951b192325a1c gcc/testsuite/gcc.target/i386/pr90899.c + 214e297c0a7eb9cbfdb0fe5aaefdfaa2 gcc/testsuite/gcc.target/i386/pr91131.c + aabdcb10437f47e089de6bb37a6dd901 gcc/testsuite/gcc.target/i386/pr91298-1.c + adfc05287817683065c60617c1638c3b gcc/testsuite/gcc.target/i386/pr91298-2.c + b1033a73e69ce631508fb5810b3eb39c gcc/testsuite/gcc.target/i386/pr91623.c + acc82a5b459bf1433e5f0d6d4849c00a gcc/testsuite/gcc.target/i386/pr91704.c + b7cac4959f15ba45f067fec51fddab75 gcc/testsuite/gcc.target/i386/pr92615.c + 62ade5dc105d6119dff3a6aa23ee6a45 gcc/testsuite/gcc.target/i386/pr93088.c + 0cbbfb6a80b114bf60fcfd0fce913fdb gcc/testsuite/gcc.target/i386/pr93656.c + 77b9ee8512c8e923363a5e2d927e99b1 gcc/testsuite/gcc.target/i386/pr93696-1.c + b35da961377f3aa60ef57bb47462f48e gcc/testsuite/gcc.target/i386/pr93696-2.c 849234c7a569c1e86023244bc5561263 gcc/testsuite/gcc.target/i386/pr9771-1.c 24ceb6d5f3f5cde4b9d852839bdb98ae gcc/testsuite/gcc.target/i386/prefetchw-1.c f11f4731c396f099373c033ab016a64f gcc/testsuite/gcc.target/i386/prefetchwt1-1.c *************** e2839913fadc6a00676c8f02deb3f59e gcc/te *** 47818,47849 **** 27b94da412b0e514a304cb667a1125f1 gcc/testsuite/gcc.target/i386/regparm-stdcall.c f460909450afd8b803c32061496a4d75 gcc/testsuite/gcc.target/i386/regparm.c e47bbd1acfd37236fccff011d4c82e82 gcc/testsuite/gcc.target/i386/reload-1.c ! e7bdddab413e9342ceea674dcc11efa9 gcc/testsuite/gcc.target/i386/ret-thunk-1.c ! 07608fba857fa4155e300a8ab038eb73 gcc/testsuite/gcc.target/i386/ret-thunk-10.c ! 0e917c21adaa8ed8f2ef1aba8e2f74dd gcc/testsuite/gcc.target/i386/ret-thunk-11.c ! f586d3b6d44cf751b4c96abd41d73a53 gcc/testsuite/gcc.target/i386/ret-thunk-12.c ! c7716ba4d15d568304b3d15fa4dd1efa gcc/testsuite/gcc.target/i386/ret-thunk-13.c ! a115b1a64b3d2e61e179f8cb9c41c216 gcc/testsuite/gcc.target/i386/ret-thunk-14.c ! 1001b8218da78b5babe016a4811af780 gcc/testsuite/gcc.target/i386/ret-thunk-15.c ! eab910bbf14695323d54cd2754f6c13c gcc/testsuite/gcc.target/i386/ret-thunk-16.c cc34b9f508b9c8334f3288b096cb78f7 gcc/testsuite/gcc.target/i386/ret-thunk-17.c 7d462469a74829644f625dfd13e56245 gcc/testsuite/gcc.target/i386/ret-thunk-18.c 43b59ba2c7eee4d8d807697e3b13092c gcc/testsuite/gcc.target/i386/ret-thunk-19.c ! dd35d0e1f55e30827da00a7a3b72f2fc gcc/testsuite/gcc.target/i386/ret-thunk-2.c f3573edd139415913734286a945036c2 gcc/testsuite/gcc.target/i386/ret-thunk-20.c b2806d5288ed6597c93c3c78b98f8d80 gcc/testsuite/gcc.target/i386/ret-thunk-21.c ! 2c5f8484e1fe3ff717433984bd9e430e gcc/testsuite/gcc.target/i386/ret-thunk-22.c ! 224c4a6a3890adb17f39118b19a33a3b gcc/testsuite/gcc.target/i386/ret-thunk-23.c ! 0ec08e1985573ff0205c8a7332d5f386 gcc/testsuite/gcc.target/i386/ret-thunk-24.c ! 97183e70692a615a0923a028c6a93205 gcc/testsuite/gcc.target/i386/ret-thunk-25.c 5c8cf1edc83ad31d94dba18df2541bd3 gcc/testsuite/gcc.target/i386/ret-thunk-26.c ! fd5c5e9bb01a2b8dc7c5f900d1d87998 gcc/testsuite/gcc.target/i386/ret-thunk-3.c ! ca53ce2b9665ac27d11a2ef828928360 gcc/testsuite/gcc.target/i386/ret-thunk-4.c ! b0ef8962f326b0e0b7e4311f2dc69a16 gcc/testsuite/gcc.target/i386/ret-thunk-5.c ! c7853edb1c95703c93c35ebe12f833be gcc/testsuite/gcc.target/i386/ret-thunk-6.c ! b51e205421f10208d462405cedb0f344 gcc/testsuite/gcc.target/i386/ret-thunk-7.c ! 848e6463fd3be83bbddee8c7c6dbfdf3 gcc/testsuite/gcc.target/i386/ret-thunk-8.c ! 2f2c6e5c76f0d73d3f69a5c58a4ddf1d gcc/testsuite/gcc.target/i386/ret-thunk-9.c fe7ee8a9110596ef272c4f9b6ad8adad gcc/testsuite/gcc.target/i386/retarg.c 7a1e62697051aa68ade1f41fac61f6f8 gcc/testsuite/gcc.target/i386/rop1.c 63bd489c03ce382cdba38349c30041ad gcc/testsuite/gcc.target/i386/rotate-1.c --- 48125,48156 ---- 27b94da412b0e514a304cb667a1125f1 gcc/testsuite/gcc.target/i386/regparm-stdcall.c f460909450afd8b803c32061496a4d75 gcc/testsuite/gcc.target/i386/regparm.c e47bbd1acfd37236fccff011d4c82e82 gcc/testsuite/gcc.target/i386/reload-1.c ! 9205036382fb9371e714bf429d4a169a gcc/testsuite/gcc.target/i386/ret-thunk-1.c ! 5c518b4de98553182b09eb3872117c87 gcc/testsuite/gcc.target/i386/ret-thunk-10.c ! e37a168c17859bf43f180a3cb76b47dc gcc/testsuite/gcc.target/i386/ret-thunk-11.c ! 7fde81ddca4708120e5f5125ba9c9fbf gcc/testsuite/gcc.target/i386/ret-thunk-12.c ! 14d89c82cb35544a32336240ef58c500 gcc/testsuite/gcc.target/i386/ret-thunk-13.c ! 8165c1fc58be1608397622f39d926c07 gcc/testsuite/gcc.target/i386/ret-thunk-14.c ! 03f2947228ea023c8f8d07076c33eb4c gcc/testsuite/gcc.target/i386/ret-thunk-15.c ! 18e90525f1abe3c52128427f9fb39b3e gcc/testsuite/gcc.target/i386/ret-thunk-16.c cc34b9f508b9c8334f3288b096cb78f7 gcc/testsuite/gcc.target/i386/ret-thunk-17.c 7d462469a74829644f625dfd13e56245 gcc/testsuite/gcc.target/i386/ret-thunk-18.c 43b59ba2c7eee4d8d807697e3b13092c gcc/testsuite/gcc.target/i386/ret-thunk-19.c ! a1802923debe6064d056b780f4ee6111 gcc/testsuite/gcc.target/i386/ret-thunk-2.c f3573edd139415913734286a945036c2 gcc/testsuite/gcc.target/i386/ret-thunk-20.c b2806d5288ed6597c93c3c78b98f8d80 gcc/testsuite/gcc.target/i386/ret-thunk-21.c ! 29d69e15cf5da161b7801ded9cd2d41c gcc/testsuite/gcc.target/i386/ret-thunk-22.c ! 4b91204f1e7fb9ce122819bf38a258c0 gcc/testsuite/gcc.target/i386/ret-thunk-23.c ! 80f22614da15e0c6c503229e825594bb gcc/testsuite/gcc.target/i386/ret-thunk-24.c ! 3fbc6374d7bea54c795b6b7f151f22ae gcc/testsuite/gcc.target/i386/ret-thunk-25.c 5c8cf1edc83ad31d94dba18df2541bd3 gcc/testsuite/gcc.target/i386/ret-thunk-26.c ! 32bd7ac2d14f8f3a3b38d58c04171c4f gcc/testsuite/gcc.target/i386/ret-thunk-3.c ! c0e1cf033713f4d9f46705d898afe08a gcc/testsuite/gcc.target/i386/ret-thunk-4.c ! 3eaad5daa9f6529dc9f4448e224a4c08 gcc/testsuite/gcc.target/i386/ret-thunk-5.c ! d51fd9f2d7e7069d77886270f69d0f12 gcc/testsuite/gcc.target/i386/ret-thunk-6.c ! 4234854200abfc91e34d2fc53f42eff3 gcc/testsuite/gcc.target/i386/ret-thunk-7.c ! 6f9c6a5223282b22bc65105d4a0e7e53 gcc/testsuite/gcc.target/i386/ret-thunk-8.c ! 7a7a1d5a4517a13ebf3484508670a5bf gcc/testsuite/gcc.target/i386/ret-thunk-9.c fe7ee8a9110596ef272c4f9b6ad8adad gcc/testsuite/gcc.target/i386/retarg.c 7a1e62697051aa68ade1f41fac61f6f8 gcc/testsuite/gcc.target/i386/rop1.c 63bd489c03ce382cdba38349c30041ad gcc/testsuite/gcc.target/i386/rotate-1.c *************** b5540c2e6c4aa6f5730ae17876c12e1f gcc/te *** 47901,47909 **** cc8a162617784a2e883a5e726d28ebde gcc/testsuite/gcc.target/i386/sse-1.c 31f7ce4356be3b5523e49df7d4ad0951 gcc/testsuite/gcc.target/i386/sse-10.c 49bde97b271274cb2bc26697ce2b19be gcc/testsuite/gcc.target/i386/sse-11.c ! 769a782b181b404f593c14e1409cb073 gcc/testsuite/gcc.target/i386/sse-12.c ! 16ef70df28911136173a027d49658b59 gcc/testsuite/gcc.target/i386/sse-13.c ! 3ce8f5debc77ff8df28cbea0e8d2dd93 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 --- 48208,48216 ---- cc8a162617784a2e883a5e726d28ebde gcc/testsuite/gcc.target/i386/sse-1.c 31f7ce4356be3b5523e49df7d4ad0951 gcc/testsuite/gcc.target/i386/sse-10.c 49bde97b271274cb2bc26697ce2b19be gcc/testsuite/gcc.target/i386/sse-11.c ! 0fda9371039ad1a80f11530a4dcd4d85 gcc/testsuite/gcc.target/i386/sse-12.c ! d262b68507761e7e55065b2d5c463117 gcc/testsuite/gcc.target/i386/sse-13.c ! 32e48ea71901a395330059ac83c2744e gcc/testsuite/gcc.target/i386/sse-14.c 92ad37b5ad7426d489b1b6f1ba0f41ea gcc/testsuite/gcc.target/i386/sse-15.c 2e7b115c4bd7984925f1a8d17a5faf67 gcc/testsuite/gcc.target/i386/sse-16.c f660e67b22cb44e6a6b38a247b1d78c3 gcc/testsuite/gcc.target/i386/sse-17.c *************** f660e67b22cb44e6a6b38a247b1d78c3 gcc/te *** 47912,47918 **** bb148b6e9dd40de90aed723794e38216 gcc/testsuite/gcc.target/i386/sse-2.c c23a0ea446a060d55e49e48429513f7d gcc/testsuite/gcc.target/i386/sse-20.c d5e7e4c7d488a953399d853e48aa484e gcc/testsuite/gcc.target/i386/sse-21.c ! 5cd4bb713088bd28562449e528363b63 gcc/testsuite/gcc.target/i386/sse-22.c 1c2df57cb3d7d6a3daf4084135ba9b1b gcc/testsuite/gcc.target/i386/sse-22a.c e384d95774132b2ab442fe5313b7517f gcc/testsuite/gcc.target/i386/sse-23.c 3fe1d48ff9d52631da56f04cc922a9cb gcc/testsuite/gcc.target/i386/sse-24.c --- 48219,48225 ---- bb148b6e9dd40de90aed723794e38216 gcc/testsuite/gcc.target/i386/sse-2.c c23a0ea446a060d55e49e48429513f7d gcc/testsuite/gcc.target/i386/sse-20.c d5e7e4c7d488a953399d853e48aa484e gcc/testsuite/gcc.target/i386/sse-21.c ! 69e76211c38f1ddffa433f9a96955061 gcc/testsuite/gcc.target/i386/sse-22.c 1c2df57cb3d7d6a3daf4084135ba9b1b gcc/testsuite/gcc.target/i386/sse-22a.c e384d95774132b2ab442fe5313b7517f gcc/testsuite/gcc.target/i386/sse-23.c 3fe1d48ff9d52631da56f04cc922a9cb gcc/testsuite/gcc.target/i386/sse-24.c *************** d6fca7d0a14d69c06eab7b10a94824aa gcc/te *** 48364,48370 **** 7f01eb1d223c56a0d719d6be43a7369b gcc/testsuite/gcc.target/i386/stack-check-19.c ca5571ee490db85826dd15cbfd5c6555 gcc/testsuite/gcc.target/i386/stack-prot-guard.c 79da87a540843a0e1db2e7c3a4c97b4a gcc/testsuite/gcc.target/i386/stack-prot-kernel.c ! e978e3862d24eaf222b97c35818e8ea3 gcc/testsuite/gcc.target/i386/stack-prot-sym.c 734f9c675c89f8938b16af80f2c9e1b8 gcc/testsuite/gcc.target/i386/stack-realign-win.c f005410b5bda86af8a785a48fccbbc30 gcc/testsuite/gcc.target/i386/stack-realign.c f2432fa4e94240719fb29b95541fb57b gcc/testsuite/gcc.target/i386/stack-usage-realign.c --- 48671,48677 ---- 7f01eb1d223c56a0d719d6be43a7369b gcc/testsuite/gcc.target/i386/stack-check-19.c ca5571ee490db85826dd15cbfd5c6555 gcc/testsuite/gcc.target/i386/stack-prot-guard.c 79da87a540843a0e1db2e7c3a4c97b4a gcc/testsuite/gcc.target/i386/stack-prot-kernel.c ! d4a0de32b5fc72f0848beec394a4cb3e gcc/testsuite/gcc.target/i386/stack-prot-sym.c 734f9c675c89f8938b16af80f2c9e1b8 gcc/testsuite/gcc.target/i386/stack-realign-win.c f005410b5bda86af8a785a48fccbbc30 gcc/testsuite/gcc.target/i386/stack-realign.c f2432fa4e94240719fb29b95541fb57b gcc/testsuite/gcc.target/i386/stack-usage-realign.c *************** f32d0d602b6f58b940bf95892b0db34a gcc/te *** 48492,48499 **** 44fec3573c80bd08c5d402045b97645b gcc/testsuite/gcc.target/i386/warn-vect-op-1.c 374df7a1c2f21fcd160b142454a349e7 gcc/testsuite/gcc.target/i386/warn-vect-op-2.c 66d1d77278077916978319dc1f32ebb7 gcc/testsuite/gcc.target/i386/warn-vect-op-3.c ! 6c062d7e0d068b5f99caee590a530a90 gcc/testsuite/gcc.target/i386/wbinvd-1.c ! 5bf54bb626ab3fa4b6aa8a79a9c66456 gcc/testsuite/gcc.target/i386/wbnoinvd-1.c a2033299875112ec8a8d46645cf7d9b0 gcc/testsuite/gcc.target/i386/wmul-1.c 4ad4e72fa1607f98dfaf4b54d6bb5d32 gcc/testsuite/gcc.target/i386/wmul-2.c 27ad6112330741456181c2be05f60c1f gcc/testsuite/gcc.target/i386/wmul-3.c --- 48799,48806 ---- 44fec3573c80bd08c5d402045b97645b gcc/testsuite/gcc.target/i386/warn-vect-op-1.c 374df7a1c2f21fcd160b142454a349e7 gcc/testsuite/gcc.target/i386/warn-vect-op-2.c 66d1d77278077916978319dc1f32ebb7 gcc/testsuite/gcc.target/i386/warn-vect-op-3.c ! 732431c1122c6fec401dab5065f048c2 gcc/testsuite/gcc.target/i386/wbinvd-1.c ! efca2d14ddeeb4b9d4b258a40c5017ef gcc/testsuite/gcc.target/i386/wbnoinvd-1.c a2033299875112ec8a8d46645cf7d9b0 gcc/testsuite/gcc.target/i386/wmul-1.c 4ad4e72fa1607f98dfaf4b54d6bb5d32 gcc/testsuite/gcc.target/i386/wmul-2.c 27ad6112330741456181c2be05f60c1f gcc/testsuite/gcc.target/i386/wmul-3.c *************** cc9f6556f139a09d0fde4192c4bd5898 gcc/te *** 48774,48779 **** --- 49081,49089 ---- 15a6a09f926d9cadc5efa71d9a537bd9 gcc/testsuite/gcc.target/mips/call-saved-7.c b6598997f99e11ea5cde760f16bc51b8 gcc/testsuite/gcc.target/mips/call-saved-8.c 5ef31c16124e446128af2ccfc80a1ceb gcc/testsuite/gcc.target/mips/call-saved-9.c + 251d8644980f5886f8aeb79798fe635a gcc/testsuite/gcc.target/mips/cfgcleanup-jalr1.c + 848a10454fcc4968030b6fee3060abfe gcc/testsuite/gcc.target/mips/cfgcleanup-jalr2.c + ae780e823d07817d6b6704ba974cdd01 gcc/testsuite/gcc.target/mips/cfgcleanup-jalr3.c 0e811556243ef05a090351b71010af15 gcc/testsuite/gcc.target/mips/clear-cache-1.c 10c7701a3904364c72d3dc09d3612abd gcc/testsuite/gcc.target/mips/clear-cache-2.c 44d569798a91e2c06f1ea5e924b754dc gcc/testsuite/gcc.target/mips/code-readable-1.c *************** b55929dabbb4b0c1f9cfa4c6e4b0c589 gcc/te *** 48814,48819 **** --- 49124,49134 ---- 344d6cf89f1a8075ade946556c121579 gcc/testsuite/gcc.target/mips/dsp-no-lhx.c 054b59c240c0a05c0533b4653555ae5d gcc/testsuite/gcc.target/mips/dspr2-MULT.c 25cca6d613a8cece43e1219e700d9cec gcc/testsuite/gcc.target/mips/dspr2-MULTU.c + e9ef81a89f459482496a3c1471c1986f gcc/testsuite/gcc.target/mips/dwarfregtable-1.c + 830c9f4e30e0ba0bc84b1a3baa6f42f4 gcc/testsuite/gcc.target/mips/dwarfregtable-2.c + 11bff7641c0c758d7c30257dc468db79 gcc/testsuite/gcc.target/mips/dwarfregtable-3.c + 03fe5459ac3f6802a18085e01248c384 gcc/testsuite/gcc.target/mips/dwarfregtable-4.c + c8083c4579b9c1fbfcd99780e8ae96c7 gcc/testsuite/gcc.target/mips/dwarfregtable.h 6f9e51b8c25866e2827e7200aab30706 gcc/testsuite/gcc.target/mips/ext-1.c a0f0152f684621e3c5d9fb7f4592097f gcc/testsuite/gcc.target/mips/ext-2.c c5e7f849981b87558b7a06bbb5c10d92 gcc/testsuite/gcc.target/mips/ext-3.c *************** f5708a14d24fa3ec5113806245448661 gcc/te *** 48890,48895 **** --- 49205,49211 ---- 5dd1ae591090d75e1b427f8aa22f3d0c gcc/testsuite/gcc.target/mips/gcc-have-sync-compare-and-swap-4.c 0b11ee2c842b84b4bc066e44c1cdb1d4 gcc/testsuite/gcc.target/mips/get-fcsr-1.c 0b438608d3e1f6097d6deafb8cc1adcc gcc/testsuite/gcc.target/mips/get-fcsr-2.c + 3e8c2c752342d245655270615111d225 gcc/testsuite/gcc.target/mips/get-fcsr-3.c 16d43ceaf979632be1e1d4b9aa8de52c gcc/testsuite/gcc.target/mips/inline-memcpy-1.c b5002e9e5369181413c9ffddd38c11f9 gcc/testsuite/gcc.target/mips/inline-memcpy-2.c 4bb37f55e916928ff7048e252937636b gcc/testsuite/gcc.target/mips/inline-memcpy-3.c *************** e673ccfc74205709a2572a5600a74ef8 gcc/te *** 49023,49028 **** --- 49339,49346 ---- 5866667840ee5a0f66ed2572999e9116 gcc/testsuite/gcc.target/mips/msa-builtins-err.c 5b2c6ad1cf12ab0a6723c98b20dcae7e gcc/testsuite/gcc.target/mips/msa-builtins.c 2eadbb80b2f27ea5dec2927523282eac gcc/testsuite/gcc.target/mips/msa-dotp.c + 27a766579a6d69bf5da7215900f5c157 gcc/testsuite/gcc.target/mips/msa-fmadd-n64.c + 6ca28b1dbd353df15b9215ec8b8ac903 gcc/testsuite/gcc.target/mips/msa-fmadd-o32.c 4aeaa4b74503d004f53a0c826972e294 gcc/testsuite/gcc.target/mips/msa-fp-cc.c 742c80a0278cc84958d4742348970683 gcc/testsuite/gcc.target/mips/msa-minmax.c ca4d4a3ec4e436ef21672b91f010b939 gcc/testsuite/gcc.target/mips/msa.c *************** f7e7c3525d555350473e6eaeb20a763c gcc/te *** 49550,49556 **** 85dc85078f2d2ae86f55b273d87d2c08 gcc/testsuite/gcc.target/powerpc/bcd-1.c f55a4a424770bf4f75c2fa11fd36c033 gcc/testsuite/gcc.target/powerpc/bcd-2.c 34d1c9b3182933bf7fe8dce899d2dd24 gcc/testsuite/gcc.target/powerpc/bcd-3.c ! b2d687bbb31ba5dec8bf205866996794 gcc/testsuite/gcc.target/powerpc/bfp/bfp.exp 50b9b13be56cde20a9deafd8957022cb gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-eq-0.c ed537806770a6bd863695dc3c1c6db97 gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-eq-1.c 27f640c3dd0f153836274fa2c0d5960d gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-eq-2.c --- 49868,49874 ---- 85dc85078f2d2ae86f55b273d87d2c08 gcc/testsuite/gcc.target/powerpc/bcd-1.c f55a4a424770bf4f75c2fa11fd36c033 gcc/testsuite/gcc.target/powerpc/bcd-2.c 34d1c9b3182933bf7fe8dce899d2dd24 gcc/testsuite/gcc.target/powerpc/bcd-3.c ! ada899d02eb4b2c56d583447a5e513af gcc/testsuite/gcc.target/powerpc/bfp/bfp.exp 50b9b13be56cde20a9deafd8957022cb gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-eq-0.c ed537806770a6bd863695dc3c1c6db97 gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-eq-1.c 27f640c3dd0f153836274fa2c0d5960d gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-eq-2.c *************** c0744700061ef044f794d3f292f70fe4 gcc/te *** 49681,49687 **** ac6fbf41ad19d891d3fdc790fb5f2b79 gcc/testsuite/gcc.target/powerpc/bmi-tzcnt-2.c 2522f354a88ffbf69670aeb86a40c3f2 gcc/testsuite/gcc.target/powerpc/bmi2-bzhi32-1.c df37e5d6c28140935347c611bd06ef2f gcc/testsuite/gcc.target/powerpc/bmi2-bzhi64-1.c ! 6c24934247952ffbe4809eed3841df92 gcc/testsuite/gcc.target/powerpc/bmi2-bzhi64-1a.c ba01782a183ed1c8acdfca0a5aee5de9 gcc/testsuite/gcc.target/powerpc/bmi2-check.h 63f721848571ec5e6b0029b3c1bdde19 gcc/testsuite/gcc.target/powerpc/bmi2-mulx32-1.c beeee58dc54e517ac38855a0e08962de gcc/testsuite/gcc.target/powerpc/bmi2-mulx32-2.c --- 49999,50005 ---- ac6fbf41ad19d891d3fdc790fb5f2b79 gcc/testsuite/gcc.target/powerpc/bmi-tzcnt-2.c 2522f354a88ffbf69670aeb86a40c3f2 gcc/testsuite/gcc.target/powerpc/bmi2-bzhi32-1.c df37e5d6c28140935347c611bd06ef2f gcc/testsuite/gcc.target/powerpc/bmi2-bzhi64-1.c ! 5494775912b2f1707b37b40517b48f4a gcc/testsuite/gcc.target/powerpc/bmi2-bzhi64-1a.c ba01782a183ed1c8acdfca0a5aee5de9 gcc/testsuite/gcc.target/powerpc/bmi2-check.h 63f721848571ec5e6b0029b3c1bdde19 gcc/testsuite/gcc.target/powerpc/bmi2-mulx32-1.c beeee58dc54e517ac38855a0e08962de gcc/testsuite/gcc.target/powerpc/bmi2-mulx32-2.c *************** a12779173ff410afc2edfb105cc93f42 gcc/te *** 49718,49724 **** 77f4cc7ca27ab5f1eaac6d0ad22a87aa gcc/testsuite/gcc.target/powerpc/builtins-1.fold.h 2343bc1b52052bc05d5d1fb1abd7a42f gcc/testsuite/gcc.target/powerpc/builtins-1.h 4a21cfa6efc194e065396e8eee656f75 gcc/testsuite/gcc.target/powerpc/builtins-2-p9-runnable.c ! f2a1b1e6b9938f58e73b467b021816af gcc/testsuite/gcc.target/powerpc/builtins-2.c 305cb8266fcbbefc92f5b16dff7646ce gcc/testsuite/gcc.target/powerpc/builtins-3-p8.c 0573a9a7baf98bab25999128bfa831bd gcc/testsuite/gcc.target/powerpc/builtins-3-p9-runnable.c a934e482b46e519d71ca5abd85d5c3f8 gcc/testsuite/gcc.target/powerpc/builtins-3-p9.c --- 50036,50042 ---- 77f4cc7ca27ab5f1eaac6d0ad22a87aa gcc/testsuite/gcc.target/powerpc/builtins-1.fold.h 2343bc1b52052bc05d5d1fb1abd7a42f gcc/testsuite/gcc.target/powerpc/builtins-1.h 4a21cfa6efc194e065396e8eee656f75 gcc/testsuite/gcc.target/powerpc/builtins-2-p9-runnable.c ! 2630988418f250e16cc8ecfe908c023a gcc/testsuite/gcc.target/powerpc/builtins-2.c 305cb8266fcbbefc92f5b16dff7646ce gcc/testsuite/gcc.target/powerpc/builtins-3-p8.c 0573a9a7baf98bab25999128bfa831bd gcc/testsuite/gcc.target/powerpc/builtins-3-p9-runnable.c a934e482b46e519d71ca5abd85d5c3f8 gcc/testsuite/gcc.target/powerpc/builtins-3-p9.c *************** caf3aba39c0565b4369f2e0263b16af5 gcc/te *** 49767,49773 **** 4b60a8662648a73cedee85dd08e278eb gcc/testsuite/gcc.target/powerpc/cprophard.c 90d6297f496119a66def439f404c01cb gcc/testsuite/gcc.target/powerpc/cpu-builtin-1.c 81b6f286dd2f5fda45d87e46682a7d3a gcc/testsuite/gcc.target/powerpc/cr_shrink-wrap.c ! 74216269f1f99492649a898d8eb5b78d gcc/testsuite/gcc.target/powerpc/crypto-builtin-1.c 553c685b2707b80e1320960a0027f71a gcc/testsuite/gcc.target/powerpc/crypto-builtin-2.c 4e3992362b37b544083ac6eaeaa1acca gcc/testsuite/gcc.target/powerpc/ctz-1.c 9266181f224f779baa6b98a2f3b171e8 gcc/testsuite/gcc.target/powerpc/ctz-2.c --- 50085,50091 ---- 4b60a8662648a73cedee85dd08e278eb gcc/testsuite/gcc.target/powerpc/cprophard.c 90d6297f496119a66def439f404c01cb gcc/testsuite/gcc.target/powerpc/cpu-builtin-1.c 81b6f286dd2f5fda45d87e46682a7d3a gcc/testsuite/gcc.target/powerpc/cr_shrink-wrap.c ! 724786c133f0de0287754f6221210ce2 gcc/testsuite/gcc.target/powerpc/crypto-builtin-1.c 553c685b2707b80e1320960a0027f71a gcc/testsuite/gcc.target/powerpc/crypto-builtin-2.c 4e3992362b37b544083ac6eaeaa1acca gcc/testsuite/gcc.target/powerpc/ctz-1.c 9266181f224f779baa6b98a2f3b171e8 gcc/testsuite/gcc.target/powerpc/ctz-2.c *************** a531e6d5d781e8f5b8f3987351a73f4f gcc/te *** 49776,49781 **** --- 50094,50100 ---- dff00811bdc4a0d32afb132f16084b8c gcc/testsuite/gcc.target/powerpc/darn-0.c a3b7e0d3cc77ae3e0b0aea94e91b58e5 gcc/testsuite/gcc.target/powerpc/darn-1.c 3a484a34727d320db4da25fdd45adeeb gcc/testsuite/gcc.target/powerpc/darn-2.c + 7f5ef611c24ec8821112bbf698514fe7 gcc/testsuite/gcc.target/powerpc/darn-3.c 965986b227062a2b8c664c916a71ad45 gcc/testsuite/gcc.target/powerpc/darwin-abi-1.c 9a0e4836781f28669ddca26eb214c2b2 gcc/testsuite/gcc.target/powerpc/darwin-abi-10.c 66e5cfd1b7491e37c0ef258d09b6634d gcc/testsuite/gcc.target/powerpc/darwin-abi-11.c *************** dc2cf23b07f8ee916ff7449cc8184804 gcc/te *** 49788,49794 **** 077c78cf99209d89283cbb5bddc4cb00 gcc/testsuite/gcc.target/powerpc/darwin-abi-7.c fbafe20fb642af275b59d470cbb84ac9 gcc/testsuite/gcc.target/powerpc/darwin-abi-8.c 0f82424f87427f46ef95b80a9c04784a gcc/testsuite/gcc.target/powerpc/darwin-abi-9.c ! f8920aee2833fd404308e7134a58361a gcc/testsuite/gcc.target/powerpc/darwin-bool-1.c d898994d2dd12e123fcb756d46aed2c4 gcc/testsuite/gcc.target/powerpc/darwin-bool-2.c 4d1a56e3fa08f8cd9ab9a96132d6f7a7 gcc/testsuite/gcc.target/powerpc/darwin-ehreturn-1.c e5a3f954e535f339c4a0f35fc50c6302 gcc/testsuite/gcc.target/powerpc/darwin-longdouble.c --- 50107,50113 ---- 077c78cf99209d89283cbb5bddc4cb00 gcc/testsuite/gcc.target/powerpc/darwin-abi-7.c fbafe20fb642af275b59d470cbb84ac9 gcc/testsuite/gcc.target/powerpc/darwin-abi-8.c 0f82424f87427f46ef95b80a9c04784a gcc/testsuite/gcc.target/powerpc/darwin-abi-9.c ! 42da5af8a68c5b53856fefe7531c3a1f gcc/testsuite/gcc.target/powerpc/darwin-bool-1.c d898994d2dd12e123fcb756d46aed2c4 gcc/testsuite/gcc.target/powerpc/darwin-bool-2.c 4d1a56e3fa08f8cd9ab9a96132d6f7a7 gcc/testsuite/gcc.target/powerpc/darwin-ehreturn-1.c e5a3f954e535f339c4a0f35fc50c6302 gcc/testsuite/gcc.target/powerpc/darwin-longdouble.c *************** edc590c61b2a5fd6c1f8da5e10b52099 gcc/te *** 49808,49814 **** 918f43d2707c381ec6a3c8f95d06ba7a gcc/testsuite/gcc.target/powerpc/dfp-td-2.c d29a538f7ef7ada44a91b35380ca809c gcc/testsuite/gcc.target/powerpc/dfp-td-3.c f99e26532b9bfe0b24631290281df325 gcc/testsuite/gcc.target/powerpc/dfp-td.c ! 48e31f401a0a5b5f767e49474ee68ab7 gcc/testsuite/gcc.target/powerpc/dfp/dfp.exp 03cc7e47a4479ec2055b9af5a2055522 gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-0.c e04d4ab9986d2eb2e4b508bb6566bb66 gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-1.c 8f82047dd5d13bd7808101a6cae2f96a gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-10.c --- 50127,50133 ---- 918f43d2707c381ec6a3c8f95d06ba7a gcc/testsuite/gcc.target/powerpc/dfp-td-2.c d29a538f7ef7ada44a91b35380ca809c gcc/testsuite/gcc.target/powerpc/dfp-td-3.c f99e26532b9bfe0b24631290281df325 gcc/testsuite/gcc.target/powerpc/dfp-td.c ! 9cb78bb8586a8258dc9c600feb2548ce gcc/testsuite/gcc.target/powerpc/dfp/dfp.exp 03cc7e47a4479ec2055b9af5a2055522 gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-0.c e04d4ab9986d2eb2e4b508bb6566bb66 gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-1.c 8f82047dd5d13bd7808101a6cae2f96a gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-10.c *************** aecbb30f163d5f651b0975a0fa8c5e71 gcc/te *** 50152,50158 **** fb85288628e320243d8a8147e9bac540 gcc/testsuite/gcc.target/powerpc/mmx-psrld-1.c 86c54000cf078efa4c7173547f0af1d8 gcc/testsuite/gcc.target/powerpc/mmx-psrlw-1.c 55bb37adcf290bc3905eb1d50905dbde gcc/testsuite/gcc.target/powerpc/mmx-psubb-2.c ! 172eb4d242b69715a127f3ff03a7a428 gcc/testsuite/gcc.target/powerpc/mmx-psubd-2.c d57ca77ac7b576914b615bb8e32d703a gcc/testsuite/gcc.target/powerpc/mmx-psubsb-1.c d6a742c11f93c2bcf3b615a4f04963c9 gcc/testsuite/gcc.target/powerpc/mmx-psubsw-1.c f8dcc8076832e6da6725b6a50e130dad gcc/testsuite/gcc.target/powerpc/mmx-psubusb-1.c --- 50471,50477 ---- fb85288628e320243d8a8147e9bac540 gcc/testsuite/gcc.target/powerpc/mmx-psrld-1.c 86c54000cf078efa4c7173547f0af1d8 gcc/testsuite/gcc.target/powerpc/mmx-psrlw-1.c 55bb37adcf290bc3905eb1d50905dbde gcc/testsuite/gcc.target/powerpc/mmx-psubb-2.c ! 90529c812f2854954927b49e2008eb86 gcc/testsuite/gcc.target/powerpc/mmx-psubd-2.c d57ca77ac7b576914b615bb8e32d703a gcc/testsuite/gcc.target/powerpc/mmx-psubsb-1.c d6a742c11f93c2bcf3b615a4f04963c9 gcc/testsuite/gcc.target/powerpc/mmx-psubsw-1.c f8dcc8076832e6da6725b6a50e130dad gcc/testsuite/gcc.target/powerpc/mmx-psubusb-1.c *************** acdb85d1e6351c6dda55142bbb79b8be gcc/te *** 50257,50263 **** 384725f498b861af6f8bed0530eeac73 gcc/testsuite/gcc.target/powerpc/ppc-fmadd-1.c b49bfc8892e32ccd4715b924f41106d6 gcc/testsuite/gcc.target/powerpc/ppc-fmadd-2.c 90d042fffee10d77e01ab7cf9fcbb7c1 gcc/testsuite/gcc.target/powerpc/ppc-fmadd-3.c ! 6225aa701ea238d6bc3b5ad76ce51526 gcc/testsuite/gcc.target/powerpc/ppc-fortran/ppc-fortran.exp cd849caf869859f7f2e720c8b398cd3a gcc/testsuite/gcc.target/powerpc/ppc-fortran/pr80108-1.f90 1a62bdfc178bf86d15b16a17a9630d50 gcc/testsuite/gcc.target/powerpc/ppc-fpconv-1.c 99555fa75b23b831a7288cf5b7c9e9da gcc/testsuite/gcc.target/powerpc/ppc-fpconv-10.c --- 50576,50582 ---- 384725f498b861af6f8bed0530eeac73 gcc/testsuite/gcc.target/powerpc/ppc-fmadd-1.c b49bfc8892e32ccd4715b924f41106d6 gcc/testsuite/gcc.target/powerpc/ppc-fmadd-2.c 90d042fffee10d77e01ab7cf9fcbb7c1 gcc/testsuite/gcc.target/powerpc/ppc-fmadd-3.c ! 6caca55b748879ddda33666fbb753c12 gcc/testsuite/gcc.target/powerpc/ppc-fortran/ppc-fortran.exp cd849caf869859f7f2e720c8b398cd3a gcc/testsuite/gcc.target/powerpc/ppc-fortran/pr80108-1.f90 1a62bdfc178bf86d15b16a17a9630d50 gcc/testsuite/gcc.target/powerpc/ppc-fpconv-1.c 99555fa75b23b831a7288cf5b7c9e9da gcc/testsuite/gcc.target/powerpc/ppc-fpconv-10.c *************** b5f67a5154b009c6dec03e4ced76145b gcc/te *** 50388,50394 **** 90631e1f2929b792894198b96774c9fc gcc/testsuite/gcc.target/powerpc/pr63354.c 04a0032cc5edd0bc278f243f6959cd70 gcc/testsuite/gcc.target/powerpc/pr63491.c b5e8ef9958a6aa3dfdb0759b64d46722 gcc/testsuite/gcc.target/powerpc/pr64019.c ! b5d79d6bf4e28d0d317e05267972c454 gcc/testsuite/gcc.target/powerpc/pr64205.c ce56e41279d8db54c64a5fd047e0cfcf gcc/testsuite/gcc.target/powerpc/pr64505.c 564b9b7942b8363816b2ed8864ac1b7a gcc/testsuite/gcc.target/powerpc/pr65058.c a284d0dacfcd6f771fef90d01d3a6372 gcc/testsuite/gcc.target/powerpc/pr65456.c --- 50707,50713 ---- 90631e1f2929b792894198b96774c9fc gcc/testsuite/gcc.target/powerpc/pr63354.c 04a0032cc5edd0bc278f243f6959cd70 gcc/testsuite/gcc.target/powerpc/pr63491.c b5e8ef9958a6aa3dfdb0759b64d46722 gcc/testsuite/gcc.target/powerpc/pr64019.c ! b046ef8139fb2996a14da78fc4d5d49a gcc/testsuite/gcc.target/powerpc/pr64205.c ce56e41279d8db54c64a5fd047e0cfcf gcc/testsuite/gcc.target/powerpc/pr64505.c 564b9b7942b8363816b2ed8864ac1b7a gcc/testsuite/gcc.target/powerpc/pr65058.c a284d0dacfcd6f771fef90d01d3a6372 gcc/testsuite/gcc.target/powerpc/pr65456.c *************** faf2ed46677346059dd2b7fd42254985 gcc/te *** 50409,50414 **** --- 50728,50737 ---- 3b3600883b142990a643f5b787bb22cb gcc/testsuite/gcc.target/powerpc/pr69548.c c12c18f334b92db27768fc61c21a1b4a gcc/testsuite/gcc.target/powerpc/pr69946.c 03eb7b91e6fcf641d03ca949346d2dc9 gcc/testsuite/gcc.target/powerpc/pr69969.c + 325a069d871f180ee18e5ae4b3e8fadf gcc/testsuite/gcc.target/powerpc/pr70010-1.c + 41104bdcf432978b1bb8217791c89c23 gcc/testsuite/gcc.target/powerpc/pr70010-3.c + f04c5add43326054cacbb6544404890d gcc/testsuite/gcc.target/powerpc/pr70010-4.c + 9fb845b29067ab4979f300fb551b5702 gcc/testsuite/gcc.target/powerpc/pr70010.c 7b679fd8b036308859824a29a78c13fd gcc/testsuite/gcc.target/powerpc/pr70117.c 222fda9019693e635c2d63ebdda27d2b gcc/testsuite/gcc.target/powerpc/pr70640.c 0a81f0b3117fb4f77424c3bc81a2a663 gcc/testsuite/gcc.target/powerpc/pr70669.c *************** c9b0e6a1691a38bdd6d5045a4df02574 gcc/te *** 50426,50432 **** 43bb198cb008845fd64b0a0f340be13c gcc/testsuite/gcc.target/powerpc/pr71698.c 140c404b55422d7f1ea527d9803d6b5f gcc/testsuite/gcc.target/powerpc/pr71720.c d9ccfe0048f3d64bbe5861c9aea6294f gcc/testsuite/gcc.target/powerpc/pr71763.c ! a1a29a276bb3f6f8436c361b1ef31e74 gcc/testsuite/gcc.target/powerpc/pr71785.c 743729f568d85b4bd156413e92dea820 gcc/testsuite/gcc.target/powerpc/pr71805.c 10c2cc153d28f4b411dd877ecf747261 gcc/testsuite/gcc.target/powerpc/pr71977-1.c 3c9ef43b11806c6399ebc3c9458c2ec3 gcc/testsuite/gcc.target/powerpc/pr71977-2.c --- 50749,50755 ---- 43bb198cb008845fd64b0a0f340be13c gcc/testsuite/gcc.target/powerpc/pr71698.c 140c404b55422d7f1ea527d9803d6b5f gcc/testsuite/gcc.target/powerpc/pr71720.c d9ccfe0048f3d64bbe5861c9aea6294f gcc/testsuite/gcc.target/powerpc/pr71763.c ! 1a2ab1b5ac9370a9c043f60e7d47c0b8 gcc/testsuite/gcc.target/powerpc/pr71785.c 743729f568d85b4bd156413e92dea820 gcc/testsuite/gcc.target/powerpc/pr71805.c 10c2cc153d28f4b411dd877ecf747261 gcc/testsuite/gcc.target/powerpc/pr71977-1.c 3c9ef43b11806c6399ebc3c9458c2ec3 gcc/testsuite/gcc.target/powerpc/pr71977-2.c *************** e16e95e49a068e3c198ca05f1f517f27 gcc/te *** 50467,50473 **** 467b382b65b1ebbac6326ad8455010b0 gcc/testsuite/gcc.target/powerpc/pr79799-4.c 6fb3807ef298bd1214fdd2135b1c617a gcc/testsuite/gcc.target/powerpc/pr79799-5.c e88cc112bb1e58cac7a9d9b275f446e1 gcc/testsuite/gcc.target/powerpc/pr79907.c ! 1f37d371237a2549ab8743e019930f85 gcc/testsuite/gcc.target/powerpc/pr79909.c 5cf4cc3547cf50f1b1d82e4e1a8f3f42 gcc/testsuite/gcc.target/powerpc/pr79916.c c4116b75f2059a7e1bab2e403b724598 gcc/testsuite/gcc.target/powerpc/pr79947.c 8fe70e669118bfd74ac64bf553741d89 gcc/testsuite/gcc.target/powerpc/pr79951.c --- 50790,50796 ---- 467b382b65b1ebbac6326ad8455010b0 gcc/testsuite/gcc.target/powerpc/pr79799-4.c 6fb3807ef298bd1214fdd2135b1c617a gcc/testsuite/gcc.target/powerpc/pr79799-5.c e88cc112bb1e58cac7a9d9b275f446e1 gcc/testsuite/gcc.target/powerpc/pr79907.c ! 839e8b59fffd1864e14e5cdcca752621 gcc/testsuite/gcc.target/powerpc/pr79909.c 5cf4cc3547cf50f1b1d82e4e1a8f3f42 gcc/testsuite/gcc.target/powerpc/pr79916.c c4116b75f2059a7e1bab2e403b724598 gcc/testsuite/gcc.target/powerpc/pr79947.c 8fe70e669118bfd74ac64bf553741d89 gcc/testsuite/gcc.target/powerpc/pr79951.c *************** f2403ecf9bc868f8ced8c5516eebb625 gcc/te *** 50475,50481 **** f3c185b1d8600748afca8de2e673d9d4 gcc/testsuite/gcc.target/powerpc/pr80098-2.c 5ad121df1443ca4f01565b0e4dc9152d gcc/testsuite/gcc.target/powerpc/pr80098-3.c e3724d1b8faf6dcacb8d047defe64496 gcc/testsuite/gcc.target/powerpc/pr80101-1.c ! 66ae7647dd692b6ddc6355ddda4f0fa6 gcc/testsuite/gcc.target/powerpc/pr80125.c 0c08f4c83d90538f2c1ff74965ce6a2b gcc/testsuite/gcc.target/powerpc/pr80210-2.c 32dc6ec7c4a1a3cefe2efbb3b602ef2c gcc/testsuite/gcc.target/powerpc/pr80210.c c74100b0e24e645cbd51ff8d93f11730 gcc/testsuite/gcc.target/powerpc/pr80246.c --- 50798,50804 ---- f3c185b1d8600748afca8de2e673d9d4 gcc/testsuite/gcc.target/powerpc/pr80098-2.c 5ad121df1443ca4f01565b0e4dc9152d gcc/testsuite/gcc.target/powerpc/pr80098-3.c e3724d1b8faf6dcacb8d047defe64496 gcc/testsuite/gcc.target/powerpc/pr80101-1.c ! d898a03a0134d7a17ff89a9859557dc9 gcc/testsuite/gcc.target/powerpc/pr80125.c 0c08f4c83d90538f2c1ff74965ce6a2b gcc/testsuite/gcc.target/powerpc/pr80210-2.c 32dc6ec7c4a1a3cefe2efbb3b602ef2c gcc/testsuite/gcc.target/powerpc/pr80210.c c74100b0e24e645cbd51ff8d93f11730 gcc/testsuite/gcc.target/powerpc/pr80246.c *************** d86d5375cd27e7c265ce5093d761b62e gcc/te *** 50540,50546 **** --- 50863,50879 ---- 8b275f7c4459d196031008305f80704f gcc/testsuite/gcc.target/powerpc/pr87496-1.c 5afbc71c04a26008e3fa99dce0a9f392 gcc/testsuite/gcc.target/powerpc/pr87496-2.c cf1e47fa56707db6216ed5de8f6df09f gcc/testsuite/gcc.target/powerpc/pr87496-3.c + a3fcebbcc49f4e8e80184966262e4f7c gcc/testsuite/gcc.target/powerpc/pr87532-mc.c + 5fd4bcc0443a583aade647593b461bf0 gcc/testsuite/gcc.target/powerpc/pr87532.c + cb0a8c588bb900030e2258e13d748a25 gcc/testsuite/gcc.target/powerpc/pr88100.c dd95a2250e2db6dba5532882d6c626fd gcc/testsuite/gcc.target/powerpc/pr88965.c + c37f43ea14b9c2771195287a84b61d7f gcc/testsuite/gcc.target/powerpc/pr89424-0.c + 641d52f8caa1635a7b47a9370f9b19ed gcc/testsuite/gcc.target/powerpc/pr89765-mc.c + 212a3d50b8d112a6d4111e1f90023028 gcc/testsuite/gcc.target/powerpc/pr91275.c + 7448525e70a4c28a22cd002cbe417693 gcc/testsuite/gcc.target/powerpc/pr92090-2.c + 0572cf2070522083edcd09bb76b49b46 gcc/testsuite/gcc.target/powerpc/pr92090.c + 6ed2bd11c87cb97b53a02a6da437dd68 gcc/testsuite/gcc.target/powerpc/pr93073.c + 3ba8ef2a92d4982a4dc0e12f6d60290b gcc/testsuite/gcc.target/powerpc/pure-builtin-redundant-load.c fb5aed78c31f2dd1317f24c4fa7835bb gcc/testsuite/gcc.target/powerpc/quad-atomic.c 4c4c29d599264356e1c6bc46cac8a876 gcc/testsuite/gcc.target/powerpc/r2_shrink-wrap.c 171a411d14f30e8450dc3f2ef38b1bd7 gcc/testsuite/gcc.target/powerpc/recip-1.c *************** ea174970897965faf63723778a9865af gcc/te *** 50586,50598 **** 6d1873d2fbd2d019218b78d3b706b27b gcc/testsuite/gcc.target/powerpc/sad-vectorize-2.c 76c0fa8a6799cc205e741501f506d07e gcc/testsuite/gcc.target/powerpc/sad-vectorize-3.c 17056c52f1056b5b1839e452c96d0fa8 gcc/testsuite/gcc.target/powerpc/sad-vectorize-4.c ! e8409a903c25e73258a07cc7263f0fff gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-1.c 15bd7d0b1c9766ac9c14300c015d5793 gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-2.c fecbca1485084d70d917631126a31ef1 gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-3.c 440a279cd4b54a0d56f1725ad5e57d55 gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-4.c ef8eb7cbf624be95837254f86c894d5b gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-5.c 24a2f6cdda4929c5eaa245cc358ce7c6 gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-6.c ! ca1b282ad40b24683e13c46737288d7e gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-7.c f66a7c7a9b7cdd49a6b9860dbb16d90a gcc/testsuite/gcc.target/powerpc/savres.c 3584a721dbb6f8ff33bc626409267e7d gcc/testsuite/gcc.target/powerpc/sd-pwr6.c a3970046e11425ef91be8092d326328d gcc/testsuite/gcc.target/powerpc/sd-vsx.c --- 50919,50931 ---- 6d1873d2fbd2d019218b78d3b706b27b gcc/testsuite/gcc.target/powerpc/sad-vectorize-2.c 76c0fa8a6799cc205e741501f506d07e gcc/testsuite/gcc.target/powerpc/sad-vectorize-3.c 17056c52f1056b5b1839e452c96d0fa8 gcc/testsuite/gcc.target/powerpc/sad-vectorize-4.c ! 117d3bda48a47bac18d3fc69aafa9bc5 gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-1.c 15bd7d0b1c9766ac9c14300c015d5793 gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-2.c fecbca1485084d70d917631126a31ef1 gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-3.c 440a279cd4b54a0d56f1725ad5e57d55 gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-4.c ef8eb7cbf624be95837254f86c894d5b gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-5.c 24a2f6cdda4929c5eaa245cc358ce7c6 gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-6.c ! 97459dfff65ecd5b32b5428b110a3cbb gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-7.c f66a7c7a9b7cdd49a6b9860dbb16d90a gcc/testsuite/gcc.target/powerpc/savres.c 3584a721dbb6f8ff33bc626409267e7d gcc/testsuite/gcc.target/powerpc/sd-pwr6.c a3970046e11425ef91be8092d326328d gcc/testsuite/gcc.target/powerpc/sd-vsx.c *************** b3e9870bc5d831fd67c299ee87dfb2f7 gcc/te *** 50611,50617 **** 31d586e0441dc6ae2d999f97d64dcf92 gcc/testsuite/gcc.target/powerpc/spe-vector-memcpy.c aefbc9c117b311a9394883e9c890efb9 gcc/testsuite/gcc.target/powerpc/spe-vector-memset.c 9d9e8d8282ff5bb95e77c7a31c2efd6f gcc/testsuite/gcc.target/powerpc/spe1.c ! 88922713d728acf906b95c66645c2539 gcc/testsuite/gcc.target/powerpc/spec-barr-1.c 6c4e50344a9a562f1cda2882cd52818d gcc/testsuite/gcc.target/powerpc/sse-addps-1.c 118abacb2b8996a6812b8329848c72f6 gcc/testsuite/gcc.target/powerpc/sse-addss-1.c 047b7ea1716e0312c4be53b318dcb9d8 gcc/testsuite/gcc.target/powerpc/sse-andnps-1.c --- 50944,50950 ---- 31d586e0441dc6ae2d999f97d64dcf92 gcc/testsuite/gcc.target/powerpc/spe-vector-memcpy.c aefbc9c117b311a9394883e9c890efb9 gcc/testsuite/gcc.target/powerpc/spe-vector-memset.c 9d9e8d8282ff5bb95e77c7a31c2efd6f gcc/testsuite/gcc.target/powerpc/spe1.c ! 9f7405e90e6c4a12a3fadad7f8e97b82 gcc/testsuite/gcc.target/powerpc/spec-barr-1.c 6c4e50344a9a562f1cda2882cd52818d gcc/testsuite/gcc.target/powerpc/sse-addps-1.c 118abacb2b8996a6812b8329848c72f6 gcc/testsuite/gcc.target/powerpc/sse-addss-1.c 047b7ea1716e0312c4be53b318dcb9d8 gcc/testsuite/gcc.target/powerpc/sse-andnps-1.c *************** e35651111f46b8456024a97df88e8c67 gcc/te *** 50816,50822 **** f420517d07cdb4deff1e9937f6e5d432 gcc/testsuite/gcc.target/powerpc/sse2-xorpd-1.c c4da621e2f792bd21112c40ff73a206d gcc/testsuite/gcc.target/powerpc/ssp-1.c 28df2b90767c1ab9ffd06127b47b30f9 gcc/testsuite/gcc.target/powerpc/ssp-2.c ! c9be7e0cc9ba390460928b1de506fa70 gcc/testsuite/gcc.target/powerpc/stabs-attrib-vect-darwin.c ab241355ba77c8e163b05eb81f33d1c5 gcc/testsuite/gcc.target/powerpc/stack-limit.c a59ee456442fb848ede07589c0a6bb6e gcc/testsuite/gcc.target/powerpc/swaps-p8-1.c f9cfd48e5324b92443f64a93e5c47140 gcc/testsuite/gcc.target/powerpc/swaps-p8-10.c --- 51149,51155 ---- f420517d07cdb4deff1e9937f6e5d432 gcc/testsuite/gcc.target/powerpc/sse2-xorpd-1.c c4da621e2f792bd21112c40ff73a206d gcc/testsuite/gcc.target/powerpc/ssp-1.c 28df2b90767c1ab9ffd06127b47b30f9 gcc/testsuite/gcc.target/powerpc/ssp-2.c ! 13c6ee4934b094179a2336371362f10d gcc/testsuite/gcc.target/powerpc/stabs-attrib-vect-darwin.c ab241355ba77c8e163b05eb81f33d1c5 gcc/testsuite/gcc.target/powerpc/stack-limit.c a59ee456442fb848ede07589c0a6bb6e gcc/testsuite/gcc.target/powerpc/swaps-p8-1.c f9cfd48e5324b92443f64a93e5c47140 gcc/testsuite/gcc.target/powerpc/swaps-p8-10.c *************** c896734b9eeb5426643c95d554b3c537 gcc/te *** 50916,50921 **** --- 51249,51257 ---- 54b4e79e3e68990bbb35785a9baebefe gcc/testsuite/gcc.target/powerpc/vec-extract-v16qi-df.c 17dc541115d43f98928aa98aec2e8966 gcc/testsuite/gcc.target/powerpc/vec-extract-v16qi.c fa4d484cedb3e830a8c4ed23fcac60f1 gcc/testsuite/gcc.target/powerpc/vec-extract-v16qiu-df.c + 715dd2ff2b925703cee51c3591a11a39 gcc/testsuite/gcc.target/powerpc/vec-extract-v16qiu-v2.h + 1642c9c56d8fc26c4a00e52271e9aa62 gcc/testsuite/gcc.target/powerpc/vec-extract-v16qiu-v2a.c + fa2b56f4604687d4c40b1dc0dcaf0a93 gcc/testsuite/gcc.target/powerpc/vec-extract-v16qiu-v2b.c 0cf0efad9beb904fc660081db1e08b5b gcc/testsuite/gcc.target/powerpc/vec-extract-v16qiu.c 3e12eaa72b1a5951659db6fa313cc678 gcc/testsuite/gcc.target/powerpc/vec-extract-v2df.c ed5d771bd86a170ce802a098b04be68b gcc/testsuite/gcc.target/powerpc/vec-extract-v2di.c *************** aaeb960a2e271bc474363e9917aecb51 gcc/te *** 51077,51089 **** --- 51413,51473 ---- 588084e34957bfd3309007d462d75b67 gcc/testsuite/gcc.target/powerpc/vsx-7-be.c dda33ad7be60f57b58ed431fa32786d2 gcc/testsuite/gcc.target/powerpc/vsx-7.h b707e1f72127566e2aa7521320d4818f gcc/testsuite/gcc.target/powerpc/vsx-builtin-1.c + 746a6949d77db46dfd9f2e1e8fec69ae gcc/testsuite/gcc.target/powerpc/vsx-builtin-10a.c + ee3ef7928ea6e74901f53131d408b023 gcc/testsuite/gcc.target/powerpc/vsx-builtin-10b.c + 9d682d5a5fd031d3e41611dbc8838f10 gcc/testsuite/gcc.target/powerpc/vsx-builtin-10c.c + 3dc8ccf65d4614d0c682d9459a4b1620 gcc/testsuite/gcc.target/powerpc/vsx-builtin-10d.c + 1bdbd00004403d369e96bc57687fe65b gcc/testsuite/gcc.target/powerpc/vsx-builtin-11a.c + 4d688d6cc30f1fc3c08737845ddab784 gcc/testsuite/gcc.target/powerpc/vsx-builtin-11b.c + d8de4a1238d67cb93380cea219a1c4a1 gcc/testsuite/gcc.target/powerpc/vsx-builtin-11c.c + f6cbf8e71f48a7a75897e540e89b4fd2 gcc/testsuite/gcc.target/powerpc/vsx-builtin-11d.c + 1ebbfe9fa476b355b9e13099e7b50ec7 gcc/testsuite/gcc.target/powerpc/vsx-builtin-12a.c + d7651b4972f66a6d7723f6db28e98dd4 gcc/testsuite/gcc.target/powerpc/vsx-builtin-12b.c + 14caae2cbbe03ad25daed350e6b3a6dd gcc/testsuite/gcc.target/powerpc/vsx-builtin-12c.c + 44033307838f447152183070116da9ec gcc/testsuite/gcc.target/powerpc/vsx-builtin-12d.c + 538d3cf96986b862419784127e5e291d gcc/testsuite/gcc.target/powerpc/vsx-builtin-13a.c + 0b7e8c580b33ced4e69da2f49d78a4b9 gcc/testsuite/gcc.target/powerpc/vsx-builtin-13b.c + 70521d0c42ddccdf8e09cdeed533bdec gcc/testsuite/gcc.target/powerpc/vsx-builtin-13c.c + 429c38af99dff70d9a830a4de4ecac6d gcc/testsuite/gcc.target/powerpc/vsx-builtin-13d.c + f78214f727e056cb438aa1dc4f19c735 gcc/testsuite/gcc.target/powerpc/vsx-builtin-14a.c + 6d407c44e65dacb9f32753308a3fc6e8 gcc/testsuite/gcc.target/powerpc/vsx-builtin-14b.c + 8444014ba0811419ad1dc54a94835cc3 gcc/testsuite/gcc.target/powerpc/vsx-builtin-14c.c + f8ff6fdf4e4d9c21651204401d90dbb6 gcc/testsuite/gcc.target/powerpc/vsx-builtin-14d.c + f6fa5f193712221d9f11af0ddc252276 gcc/testsuite/gcc.target/powerpc/vsx-builtin-15a.c + da132fcd19023e902814c2c6c3d3e728 gcc/testsuite/gcc.target/powerpc/vsx-builtin-15b.c + 7ff64276f648cac42ab55f4a33abc049 gcc/testsuite/gcc.target/powerpc/vsx-builtin-15c.c + 04ac76b0b1f69b6e2d06d182954ee632 gcc/testsuite/gcc.target/powerpc/vsx-builtin-15d.c + 0df772c46c802870a93dbc5b775249bf gcc/testsuite/gcc.target/powerpc/vsx-builtin-16a.c + c9315e5014dc595cb7bb80a684e77d47 gcc/testsuite/gcc.target/powerpc/vsx-builtin-16b.c + 555d256392e00f41da27e30bfb6b2140 gcc/testsuite/gcc.target/powerpc/vsx-builtin-16c.c + 99f7a0d1d3d3f422c095ece91811cf66 gcc/testsuite/gcc.target/powerpc/vsx-builtin-16d.c + 5c7ef9406c168be4ac15c2543a1475cb gcc/testsuite/gcc.target/powerpc/vsx-builtin-17a.c + 7ddf389b2cf068432671b0739b2b8457 gcc/testsuite/gcc.target/powerpc/vsx-builtin-17b.c + efc4c39d238a4eb46e670b94cdfc9834 gcc/testsuite/gcc.target/powerpc/vsx-builtin-17c.c + efc4c39d238a4eb46e670b94cdfc9834 gcc/testsuite/gcc.target/powerpc/vsx-builtin-17d.c + a114b00aa5a1b18273f1299e1fc08afe gcc/testsuite/gcc.target/powerpc/vsx-builtin-18a.c + 23c41691997a3ea06df29aef360ae13b gcc/testsuite/gcc.target/powerpc/vsx-builtin-18b.c + ee3bc99955a32918aed1906ad772e2c9 gcc/testsuite/gcc.target/powerpc/vsx-builtin-18c.c + ac19be27b979d134fa38e21eff9da1d5 gcc/testsuite/gcc.target/powerpc/vsx-builtin-18d.c + 6576ab9009c0a3a1175ff644b5490d1d gcc/testsuite/gcc.target/powerpc/vsx-builtin-19a.c + 5d3014e34a036f0024487d6be5274ab0 gcc/testsuite/gcc.target/powerpc/vsx-builtin-19b.c + ef6577fd84945078b4cef14e99d50716 gcc/testsuite/gcc.target/powerpc/vsx-builtin-19c.c + eb41712c0a85d75f7ad259f45c035835 gcc/testsuite/gcc.target/powerpc/vsx-builtin-19d.c 48340c75e0602ad1923b6940b4c23e61 gcc/testsuite/gcc.target/powerpc/vsx-builtin-2.c + d128b18a20f2a55978e519508f48f1ae gcc/testsuite/gcc.target/powerpc/vsx-builtin-20a.c + 462d58bd5e0209dd5d6550bfae0c2311 gcc/testsuite/gcc.target/powerpc/vsx-builtin-20b.c + 6481e7c45c6c95a23feaca3286bf3c1d gcc/testsuite/gcc.target/powerpc/vsx-builtin-20c.c + 42b7bc847179c4ef1e6e7142bb27bf11 gcc/testsuite/gcc.target/powerpc/vsx-builtin-20d.c 5684c60d3a35f107d7f0f5b4b4a7876a gcc/testsuite/gcc.target/powerpc/vsx-builtin-3.c e51201063924b6407317c441d400073d gcc/testsuite/gcc.target/powerpc/vsx-builtin-4.c 7e66f87dd06b95da1686ec402326cda3 gcc/testsuite/gcc.target/powerpc/vsx-builtin-5.c 4193c32bf9ad46a7f16d0519d29c38d0 gcc/testsuite/gcc.target/powerpc/vsx-builtin-6.c 93a224e2e5e545039eac6aa09d4a1897 gcc/testsuite/gcc.target/powerpc/vsx-builtin-7.c 66ac24fd431ded59ec3ab33526bcf6e2 gcc/testsuite/gcc.target/powerpc/vsx-builtin-8.c + 33633751eb0bfabbb2951a0070770508 gcc/testsuite/gcc.target/powerpc/vsx-builtin-9a.c + 2e9c4b2355be46611bfe42e4a9f8d1f3 gcc/testsuite/gcc.target/powerpc/vsx-builtin-9b.c + 1e35ead3525b068deff65ea3783111ee gcc/testsuite/gcc.target/powerpc/vsx-builtin-9c.c + 2d6ebc881e5a0f8f968a2999b0706911 gcc/testsuite/gcc.target/powerpc/vsx-builtin-9d.c d3469962c4213b0187a321587ac8965b gcc/testsuite/gcc.target/powerpc/vsx-extract-1.c f6fa44988b5f5b91a692ad90d5722e4b gcc/testsuite/gcc.target/powerpc/vsx-extract-2.c 4b2dc66c2fc3e7e7ec27087bb497b6a8 gcc/testsuite/gcc.target/powerpc/vsx-extract-3.c *************** aae6afd4d9a2054d572638ee18a6836a gcc/te *** 51127,51132 **** --- 51511,51518 ---- ea0ee90903900008dafd89bff7612b2f gcc/testsuite/gcc.target/powerpc/warn-2.c a416d38760a620b535b56c151a15e3f4 gcc/testsuite/gcc.target/powerpc/warn-lvsl-lvsr.c 14c90f84d8058b60faff46b00c097a9c gcc/testsuite/gcc.target/riscv/pr84660.c + 1a434ff3440a676fb4f4c586bf3152e5 gcc/testsuite/gcc.target/riscv/pr93202.c + b78c980bec602c6a91ac1bc85320f39f gcc/testsuite/gcc.target/riscv/promote-type-for-libcall.c e38cc032ecb8846b9483954c34ed88b9 gcc/testsuite/gcc.target/riscv/riscv.exp 6bd569a0881471228538a06acf78338a gcc/testsuite/gcc.target/riscv/save-restore-1.c 150aa4eb381ea8572b1fe3f201704777 gcc/testsuite/gcc.target/riscv/shift-and-1.c *************** d127ee93571cc359b60fa89c63392525 gcc/te *** 51317,51322 **** --- 51703,51711 ---- 8b4969fbf314851ec142b17e9a328088 gcc/testsuite/gcc.target/s390/pr80725.c 735bf8da0d759e7de791e71467439655 gcc/testsuite/gcc.target/s390/pr81534.c d8d4be7f8d46a289e2ef8e7db7fd3f21 gcc/testsuite/gcc.target/s390/pr84295.c + f61f4c2353779a8836bca364a80c1221 gcc/testsuite/gcc.target/s390/pr89775-1.c + b379cd03e188ebd20fb6bfd9e811a8f6 gcc/testsuite/gcc.target/s390/pr89775-2.c + f4792ece0a0aff8add8968cae67374ad gcc/testsuite/gcc.target/s390/pr93908.c f9de3c4e9d9e8c3a707e1f51e48901b6 gcc/testsuite/gcc.target/s390/return-addr1.c 5368e8759352b798ae1db6bc79919aa2 gcc/testsuite/gcc.target/s390/return-addr2.c f974e5ff639dd74404435089c4a7a5b2 gcc/testsuite/gcc.target/s390/risbg-ll-1.c *************** f8fda1b5b427ecffec0a8835386c4342 gcc/te *** 51413,51418 **** --- 51802,51808 ---- 9e482ff5796d7aa27f6f404a18462f13 gcc/testsuite/gcc.target/s390/target-attribute/tpragma-struct-vx-2.c 201a36e4a6548d10d83352d305b4284a gcc/testsuite/gcc.target/s390/tf_to_di-1.c 8a6c46e492362a7ae789676034c82a23 gcc/testsuite/gcc.target/s390/vector/int128-1.c + 4fefdb80366d27b600c5e726a3b722da gcc/testsuite/gcc.target/s390/vector/pr92950.c f8ddf98d23fed8fdb81fc0b6b8a34fa4 gcc/testsuite/gcc.target/s390/vector/stpcpy-1.c c6799efe253acc955e2b9dcf44075d99 gcc/testsuite/gcc.target/s390/vector/vcond-shift.c 8fa9b68cf0196b4198ce00a304191744 gcc/testsuite/gcc.target/s390/vector/vec-abi-1.c *************** f6942a3fba9c800bffade3bb79196479 gcc/te *** 51446,51451 **** --- 51836,51842 ---- 9854e916ee33c3d55eb8860c8a3fed74 gcc/testsuite/gcc.target/s390/vector/vec-nopeel-2.c 03ba06d58e7f65b8e47eace2aff32bda gcc/testsuite/gcc.target/s390/vector/vec-scalar-cmp-1.c 8de36944e18edbbcc735c9baad533f52 gcc/testsuite/gcc.target/s390/vector/vec-shift-1.c + 0f81f716920700cba16fc05e47df6d56 gcc/testsuite/gcc.target/s390/vector/vec-shift-2.c cea49877a5895e80cb13491b6cdfa2a2 gcc/testsuite/gcc.target/s390/vector/vec-sub-1.c db4e2b1f6b0441e2f2f64b6e141245cd gcc/testsuite/gcc.target/s390/vector/vec-vcond-1.c 3820ec0689c3262f947212e6f357e08c gcc/testsuite/gcc.target/s390/vector/vec-vrepi-1.c *************** dc95f2902df894907c8cd4f00960f509 gcc/te *** 51459,51464 **** --- 51850,51856 ---- c5f2f4df3f7c11977663ad182d69c2a7 gcc/testsuite/gcc.target/s390/zvector/pr82322.c 2a1b20d2e3e33de7b491ea6c0228526b gcc/testsuite/gcc.target/s390/zvector/pr82463.c 7915a7e0fd1a86504253e59af42ac369 gcc/testsuite/gcc.target/s390/zvector/pr82465.c + 52639af19eb9820f01b9c5381a9fc995 gcc/testsuite/gcc.target/s390/zvector/vec-addc-u128.c 6924d62f235015dbe0a12e676b094f6d gcc/testsuite/gcc.target/s390/zvector/vec-cmp-1.c c16bd7eec0ebe296eddd356e2f483cf9 gcc/testsuite/gcc.target/s390/zvector/vec-cmp-2.c ccdf3c2d3031ce42906139030ba856e1 gcc/testsuite/gcc.target/s390/zvector/vec-dbl-math-compile-1.c *************** bb6fff430ecdcaea1d62ba4c832fde59 gcc/te *** 51476,51481 **** --- 51868,51875 ---- bf9a16bf1a11dc3b1eaf16828c088c55 gcc/testsuite/gcc.target/s390/zvector/vec-splat-1.c fca18383b3db4c77fba6885b30964e40 gcc/testsuite/gcc.target/s390/zvector/vec-splat-2.c f9fc274321010fadf7fa7d7821f483f8 gcc/testsuite/gcc.target/s390/zvector/vec-test-mask-1.c + c9c377c12e8e370ccdc50badddb742a9 gcc/testsuite/gcc.target/s390/zvector/xl-xst-align-1.c + 6a18a0aed0d4fd99218171cc20a57b5c gcc/testsuite/gcc.target/s390/zvector/xl-xst-align-2.c 5b19f136f3d036d31d3dafbc132611a5 gcc/testsuite/gcc.target/sh/20080410-1.c 18bf963df8ed3145d8ccd6e57533f4c2 gcc/testsuite/gcc.target/sh/attr-isr-nosave_low_regs.c d660e4c3dbd871b5fbe35dfe7edcf660 gcc/testsuite/gcc.target/sh/attr-isr-trap_exit.c *************** ffba4a644f6c776dd608a5285349bff8 gcc/te *** 51703,51709 **** a67458660c2ef2010f128fdaa4faaa86 gcc/testsuite/gcc.target/sparc/20160104-1.c 22f916e859ece29a91c18dffaca9e14b gcc/testsuite/gcc.target/sparc/20160104-2.c 3d69d4562d0fbb323ff101a9d3271e9a gcc/testsuite/gcc.target/sparc/20160229-1.c ! f105a9c71ffd58f541747bfe25ebdc89 gcc/testsuite/gcc.target/sparc/20161111-1.c 5b34d024151ffbbd5c3b91733a663c88 gcc/testsuite/gcc.target/sparc/20170205-1.c e470b0a0d1a056b60c3915a6dfcfd4ae gcc/testsuite/gcc.target/sparc/20170228-1.c 44373c57181608413fc07f3ec0e2ad6e gcc/testsuite/gcc.target/sparc/align.c --- 52097,52103 ---- a67458660c2ef2010f128fdaa4faaa86 gcc/testsuite/gcc.target/sparc/20160104-1.c 22f916e859ece29a91c18dffaca9e14b gcc/testsuite/gcc.target/sparc/20160104-2.c 3d69d4562d0fbb323ff101a9d3271e9a gcc/testsuite/gcc.target/sparc/20160229-1.c ! 5b143c3e46fe04901dc0f5da126d1e44 gcc/testsuite/gcc.target/sparc/20161111-1.c 5b34d024151ffbbd5c3b91733a663c88 gcc/testsuite/gcc.target/sparc/20170205-1.c e470b0a0d1a056b60c3915a6dfcfd4ae gcc/testsuite/gcc.target/sparc/20170228-1.c 44373c57181608413fc07f3ec0e2ad6e gcc/testsuite/gcc.target/sparc/align.c *************** b1be720ed5de1c44dcf4d1074acf5aca gcc/te *** 51774,51784 **** 7ed645966d10b2ee1cf5a112329c903c gcc/testsuite/gcc.target/sparc/movcc-2.c 06ebc1bfb7ebac800bc8e13a4c96ecdc gcc/testsuite/gcc.target/sparc/niagara7-align.c 27bc21317eeddefa4b9cc41e1c4e363c gcc/testsuite/gcc.target/sparc/noresult.c ! 019b2c91e8d69c544c8425875f80963c gcc/testsuite/gcc.target/sparc/overflow-1.c ! 0d159b72526aa6fb4b1565064261c3d5 gcc/testsuite/gcc.target/sparc/overflow-2.c ! 95b57084fc558c6304bd40676e58d06f gcc/testsuite/gcc.target/sparc/overflow-3.c ! 98179c824edead00452d8a21e782b843 gcc/testsuite/gcc.target/sparc/overflow-4.c ! 1090302dbbf7408448094723169c43c7 gcc/testsuite/gcc.target/sparc/overflow-5.c 0e446c8782cfda1bf1b2b7467cdf43af gcc/testsuite/gcc.target/sparc/pdist-2.c 77281e86e797be1ef8a0784c9a4db58a gcc/testsuite/gcc.target/sparc/pdist-3.c 178b0f750e337f74871710d17257944f gcc/testsuite/gcc.target/sparc/pdist.c --- 52168,52178 ---- 7ed645966d10b2ee1cf5a112329c903c gcc/testsuite/gcc.target/sparc/movcc-2.c 06ebc1bfb7ebac800bc8e13a4c96ecdc gcc/testsuite/gcc.target/sparc/niagara7-align.c 27bc21317eeddefa4b9cc41e1c4e363c gcc/testsuite/gcc.target/sparc/noresult.c ! a54091faea7a1abd6cd4fbd0ef1b4336 gcc/testsuite/gcc.target/sparc/overflow-1.c ! d0fc65bbbe891276a96818aa810ee61a gcc/testsuite/gcc.target/sparc/overflow-2.c ! 6a5bc56eee4379cd67f7fd68d7a6ab79 gcc/testsuite/gcc.target/sparc/overflow-3.c ! 472aca3a2431c01ce39d9f08e3132cc6 gcc/testsuite/gcc.target/sparc/overflow-4.c ! 1b81df368ab2a7263804157f620da8fb gcc/testsuite/gcc.target/sparc/overflow-5.c 0e446c8782cfda1bf1b2b7467cdf43af gcc/testsuite/gcc.target/sparc/pdist-2.c 77281e86e797be1ef8a0784c9a4db58a gcc/testsuite/gcc.target/sparc/pdist-3.c 178b0f750e337f74871710d17257944f gcc/testsuite/gcc.target/sparc/pdist.c *************** d3c71d269c1b4265e86c5ace1089e848 gcc/te *** 51942,51949 **** b43e5e8d171dcdbec5cac42b0b9a298c gcc/testsuite/gcc.target/x86_64/abi/avx/test_passing_m256.c ff732b27c9bb0c5b99ccccb31d12d3ea gcc/testsuite/gcc.target/x86_64/abi/avx/test_passing_structs.c d02989c16f0d1cd0951fe435483c550e gcc/testsuite/gcc.target/x86_64/abi/avx/test_passing_unions.c ! e0cbb0807f6e9896214abcfc73d00e2d gcc/testsuite/gcc.target/x86_64/abi/avx512f/abi-avx512f.exp 2cf03d73572ce81dab43dcceeeacf5c4 gcc/testsuite/gcc.target/x86_64/abi/avx512f/args.h 341c91bf54efad299e2f11e9329738fa gcc/testsuite/gcc.target/x86_64/abi/avx512f/asm-support.S 1c4dc628c680a1d3ad4767c3a1455499 gcc/testsuite/gcc.target/x86_64/abi/avx512f/avx512f-check.h 75a0b911edb2a39978caadbf2c750015 gcc/testsuite/gcc.target/x86_64/abi/avx512f/test_m512_returning.c --- 52336,52344 ---- b43e5e8d171dcdbec5cac42b0b9a298c gcc/testsuite/gcc.target/x86_64/abi/avx/test_passing_m256.c ff732b27c9bb0c5b99ccccb31d12d3ea gcc/testsuite/gcc.target/x86_64/abi/avx/test_passing_structs.c d02989c16f0d1cd0951fe435483c550e gcc/testsuite/gcc.target/x86_64/abi/avx/test_passing_unions.c ! a47b674925018aecf8fe60a15de04b2c gcc/testsuite/gcc.target/x86_64/abi/avx512f/abi-avx512f.exp 2cf03d73572ce81dab43dcceeeacf5c4 gcc/testsuite/gcc.target/x86_64/abi/avx512f/args.h + c79ac297933c3dae25e3f797420d1814 gcc/testsuite/gcc.target/x86_64/abi/avx512f/asm-support-darwin.s 341c91bf54efad299e2f11e9329738fa gcc/testsuite/gcc.target/x86_64/abi/avx512f/asm-support.S 1c4dc628c680a1d3ad4767c3a1455499 gcc/testsuite/gcc.target/x86_64/abi/avx512f/avx512f-check.h 75a0b911edb2a39978caadbf2c750015 gcc/testsuite/gcc.target/x86_64/abi/avx512f/test_m512_returning.c *************** fd47cb2ee3abca7f4ec8637b9e9e793b gcc/te *** 52447,52452 **** --- 52842,52848 ---- 6d3f169e1cbf329f60af4c22a88530ea gcc/testsuite/gfortran.dg/allocate_with_arrayspec_1.f90 bff4f86cadc34cdb60ab04c217d46dbd gcc/testsuite/gfortran.dg/allocate_with_mold_1.f90 9f39ddc177a6f3ff474548de040842f7 gcc/testsuite/gfortran.dg/allocate_with_mold_2.f90 + f4cacbb7fc7a73c4dc452abb4169a708 gcc/testsuite/gfortran.dg/allocate_with_mold_3.f90 8525309ee0a25fc4ec16a87c02a27e9a gcc/testsuite/gfortran.dg/allocate_with_source_1.f90 31f46b6f8cf8a1610b258ea73d0033de gcc/testsuite/gfortran.dg/allocate_with_source_10.f08 3e69f8fb58e06a24fc9934b0040bc33c gcc/testsuite/gfortran.dg/allocate_with_source_11.f08 *************** fe3a537d232e11c904ccb01a3aab7662 gcc/te *** 52482,52487 **** --- 52878,52884 ---- 12f3d33d5ae0d7cf655d8f39f073d9a9 gcc/testsuite/gfortran.dg/allocate_zerosize_2.f90 ce98de1957479e069ab10632545c5afa gcc/testsuite/gfortran.dg/allocate_zerosize_3.f 6a729cf1f6bf67aa0e2493345f68e5fc gcc/testsuite/gfortran.dg/altreturn_1.f90 + 35675d46dde8f42af0dccd6d6054d457 gcc/testsuite/gfortran.dg/altreturn_10.f90 7cbc1f043d9ba68898b8a84dff22a6f7 gcc/testsuite/gfortran.dg/altreturn_2.f90 ab15f72b5cb8d2d12ce756b7de1444a2 gcc/testsuite/gfortran.dg/altreturn_3.f90 b852529cec3b92b7d12cc9eec0f3559f gcc/testsuite/gfortran.dg/altreturn_4.f90 *************** b852529cec3b92b7d12cc9eec0f3559f gcc/te *** 52489,52494 **** --- 52886,52893 ---- 9b31f9f4ca2bcd7c062e04bc30721dc3 gcc/testsuite/gfortran.dg/altreturn_6.f90 eae1c01e9cd07e06f5b2053c9c8e8d0c gcc/testsuite/gfortran.dg/altreturn_7.f90 60795209d96fe6d73334d162b3138c27 gcc/testsuite/gfortran.dg/altreturn_8.f90 + 14f153f4930c4715ce36663b7f2859d1 gcc/testsuite/gfortran.dg/altreturn_9_0.f90 + 3c92d543d83475baecb2a7bac4775a08 gcc/testsuite/gfortran.dg/altreturn_9_1.f90 5efcafe8829b585812ac42002ce9079c gcc/testsuite/gfortran.dg/ambiguous_reference_1.f90 407349fe5dc0dd80df43de2e773a4cab gcc/testsuite/gfortran.dg/ambiguous_reference_2.f90 4a2d243fa69596ed5111843ecb20b347 gcc/testsuite/gfortran.dg/ambiguous_specific_1.f90 *************** a265bfcab0ca803759d6c4d3ea6defd8 gcc/te *** 52519,52524 **** --- 52918,52924 ---- 9a6dc039d47b29ccb678823eb76c7e6c gcc/testsuite/gfortran.dg/argument_checking_8.f90 ae5c0c1a40358f4209139ab1ba4c93a1 gcc/testsuite/gfortran.dg/argument_checking_9.f90 f2050f4ab1ae68ef71906c613ddc6d03 gcc/testsuite/gfortran.dg/arith_divide.f + e91a18d295c64b6421d9e76487338fa8 gcc/testsuite/gfortran.dg/arith_divide_2.f90 3130a308b1d1471577ea44bf582c1bec gcc/testsuite/gfortran.dg/arith_divide_no_check.f 9f88f5ececa8e91571e1a769c9375575 gcc/testsuite/gfortran.dg/arithmetic_if.f90 ad54c15b47e17edab3af8726783901c3 gcc/testsuite/gfortran.dg/arithmetic_overflow_1.f90 *************** a7a4d71734bf9559e09017fe4616e065 gcc/te *** 52657,52663 **** 28bbca8fc062ad301c676d4eb94d000d gcc/testsuite/gfortran.dg/assign-debug.f90 7ad5faf60f3a1cebebfbb2c9e52516d7 gcc/testsuite/gfortran.dg/assign.f90 4fd44d78ecb3264e1dd3d6bbb0ca8ea6 gcc/testsuite/gfortran.dg/assign_1.f90 ! 4238529233bdbb0f1537f457bf9ba682 gcc/testsuite/gfortran.dg/assign_10.f90 d13716000aff2182530213b6daeb5f10 gcc/testsuite/gfortran.dg/assign_2.f90 a0494aa37ce786eddcb2107da73e9e9d gcc/testsuite/gfortran.dg/assign_3.f90 bd3eaa5ee0e2bbe2c28826271bd7069f gcc/testsuite/gfortran.dg/assign_4.f --- 53057,53063 ---- 28bbca8fc062ad301c676d4eb94d000d gcc/testsuite/gfortran.dg/assign-debug.f90 7ad5faf60f3a1cebebfbb2c9e52516d7 gcc/testsuite/gfortran.dg/assign.f90 4fd44d78ecb3264e1dd3d6bbb0ca8ea6 gcc/testsuite/gfortran.dg/assign_1.f90 ! 2fadd08fe3904fa5e7b9e433747dd9e5 gcc/testsuite/gfortran.dg/assign_10.f90 d13716000aff2182530213b6daeb5f10 gcc/testsuite/gfortran.dg/assign_2.f90 a0494aa37ce786eddcb2107da73e9e9d gcc/testsuite/gfortran.dg/assign_3.f90 bd3eaa5ee0e2bbe2c28826271bd7069f gcc/testsuite/gfortran.dg/assign_4.f *************** a1f5f0d8423367d45fe9382b407ce7e9 gcc/te *** 52706,52711 **** --- 53106,53113 ---- c410bfd5d1fc6723876f3438e819ed8b gcc/testsuite/gfortran.dg/associate_40.f90 19375128aa6055d022377a669a7dffcf gcc/testsuite/gfortran.dg/associate_41.f90 9a37c444f19b419083ffbbdcc1e8eb59 gcc/testsuite/gfortran.dg/associate_44.f90 + 47ae1500d4b97d431462d23e9c5895d0 gcc/testsuite/gfortran.dg/associate_48.f90 + c73b6100086b4db74c5f70aa2b7a9af6 gcc/testsuite/gfortran.dg/associate_49.f90 5dfaf5e9c3d8b8b8f835046ca42ccbf4 gcc/testsuite/gfortran.dg/associate_5.f03 fe80c25bfc4d1e630472420bac3dc836 gcc/testsuite/gfortran.dg/associate_6.f03 ac2154aefe0a4ce981b3fa252235e2dd gcc/testsuite/gfortran.dg/associate_7.f03 *************** cdbd174fba27a1cc2fe42d6e10b97afd gcc/te *** 52772,52778 **** 8bf64bb3c49e7fe58c386a66c599504b gcc/testsuite/gfortran.dg/assumed_size_refs_3.f90 3e96e44672f88b56bd72f233716f03cd gcc/testsuite/gfortran.dg/assumed_size_refs_4.f90 6637ca606075a490a8af76882f9b6797 gcc/testsuite/gfortran.dg/assumed_type_1.f90 ! a6cc14805164447521e48dfbdeed7a0b gcc/testsuite/gfortran.dg/assumed_type_2.f90 27b0b5ad82abb1d06990db9025f0c992 gcc/testsuite/gfortran.dg/assumed_type_3.f90 efe423227b9fdac2ac81898e5770a7d9 gcc/testsuite/gfortran.dg/assumed_type_4.f90 4700aa6f851cace7a18c8476fe6d6872 gcc/testsuite/gfortran.dg/assumed_type_5.f90 --- 53174,53180 ---- 8bf64bb3c49e7fe58c386a66c599504b gcc/testsuite/gfortran.dg/assumed_size_refs_3.f90 3e96e44672f88b56bd72f233716f03cd gcc/testsuite/gfortran.dg/assumed_size_refs_4.f90 6637ca606075a490a8af76882f9b6797 gcc/testsuite/gfortran.dg/assumed_type_1.f90 ! 11c5f5af0c06889c560a709287c4d73e gcc/testsuite/gfortran.dg/assumed_type_2.f90 27b0b5ad82abb1d06990db9025f0c992 gcc/testsuite/gfortran.dg/assumed_type_3.f90 efe423227b9fdac2ac81898e5770a7d9 gcc/testsuite/gfortran.dg/assumed_type_4.f90 4700aa6f851cace7a18c8476fe6d6872 gcc/testsuite/gfortran.dg/assumed_type_5.f90 *************** ec29931f9b3f84e65c0addc59ccb39bf gcc/te *** 52913,52918 **** --- 53315,53324 ---- 0cc03e2fd3571908f49f70d6dabaa128 gcc/testsuite/gfortran.dg/binding_label_tests_28.f90 fbe4a90945f5cbcde230db8b880a4d7a gcc/testsuite/gfortran.dg/binding_label_tests_29.f90 3da0c43e404ea44650ab9a963fa41bee gcc/testsuite/gfortran.dg/binding_label_tests_3.f03 + e9eb0ce619abe6c5f23f938496878cff gcc/testsuite/gfortran.dg/binding_label_tests_30.f90 + c0d788f5fa3898fea232e169e1b1fbd0 gcc/testsuite/gfortran.dg/binding_label_tests_31.f90 + d2102c94673affc257d3e7376d873240 gcc/testsuite/gfortran.dg/binding_label_tests_32.f90 + 71cba30c6667a8dc0eed115b1e1f658d gcc/testsuite/gfortran.dg/binding_label_tests_33.f90 91cd6ad63a324b639449d9463b1a1e66 gcc/testsuite/gfortran.dg/binding_label_tests_4.f03 27695dee78547e7050f28a42fe933cf4 gcc/testsuite/gfortran.dg/binding_label_tests_5.f03 07f203142fb7f0e2e9ab4fdd1b57c16f gcc/testsuite/gfortran.dg/binding_label_tests_6.f03 *************** bd6eb17303abbc4e9007d3120de885aa gcc/te *** 52940,52945 **** --- 53346,53352 ---- 467e3192431dc9f382e940356a5e9e31 gcc/testsuite/gfortran.dg/block_name_1.f90 af3c12f2a878273c530d8127f9dea7fb gcc/testsuite/gfortran.dg/block_name_2.f90 d9e1d07ea9cf0a2f95002225bdeea245 gcc/testsuite/gfortran.dg/blockdata_1.f90 + 7dd308b3ba190467e90bfb36452b2778 gcc/testsuite/gfortran.dg/blockdata_11.f90 d7ced503ea09a16752521a1f4b1fddc8 gcc/testsuite/gfortran.dg/blockdata_2.f90 8f473f427228b27b02d4863c73894c8b gcc/testsuite/gfortran.dg/blockdata_3.f90 e8876e93b76b208250265dc7c4145e96 gcc/testsuite/gfortran.dg/blockdata_4.f90 *************** d1b107332fd2ca83ba6ac402e54202d6 gcc/te *** 53120,53125 **** --- 53527,53533 ---- ef5c9b71cfe2a7ae0c7eda3f4213cb68 gcc/testsuite/gfortran.dg/c_ptr_tests_16.f90 ac91e127e05ae13da7cec3fc1053a789 gcc/testsuite/gfortran.dg/c_ptr_tests_17.f90 7a873f03774fb774534f537314416225 gcc/testsuite/gfortran.dg/c_ptr_tests_18.f90 + 98fb1fadfe2e07ccdc842d472fd09e95 gcc/testsuite/gfortran.dg/c_ptr_tests_19.f90 19526fb6a19b0628fb7a70b634ebe98d gcc/testsuite/gfortran.dg/c_ptr_tests_5.f03 f6be312d40aa69afff5a2130cf70acb9 gcc/testsuite/gfortran.dg/c_ptr_tests_7.f03 7aa5685a7f16644136d0f0d20953db0f gcc/testsuite/gfortran.dg/c_ptr_tests_7_driver.c *************** f644d887f39031b5af20b0a57a7894c4 gcc/te *** 53197,53203 **** 7552d7512b3e8d60918c3a81c9b7fb02 gcc/testsuite/gfortran.dg/char_pointer_assign_3.f90 96b30f56a9de104b5d79a66d116b672a gcc/testsuite/gfortran.dg/char_pointer_assign_4.f90 37eb7ba9eb77543854f7607067c520c8 gcc/testsuite/gfortran.dg/char_pointer_assign_5.f90 ! 05bbfce165dd596cf7612b34c8952dac gcc/testsuite/gfortran.dg/char_pointer_assign_6.f90 dd8a633154df2c14213e24aa617b08a2 gcc/testsuite/gfortran.dg/char_pointer_assign_icb_1.f90 ddf9f77e66c4a8135a264b7cc863b0b6 gcc/testsuite/gfortran.dg/char_pointer_comp_assign.f90 064ebf7ad523c69997a5cd603b66eb56 gcc/testsuite/gfortran.dg/char_pointer_dependency.f90 --- 53605,53611 ---- 7552d7512b3e8d60918c3a81c9b7fb02 gcc/testsuite/gfortran.dg/char_pointer_assign_3.f90 96b30f56a9de104b5d79a66d116b672a gcc/testsuite/gfortran.dg/char_pointer_assign_4.f90 37eb7ba9eb77543854f7607067c520c8 gcc/testsuite/gfortran.dg/char_pointer_assign_5.f90 ! 28d4409e03b02cb11c0c9a869cc23b95 gcc/testsuite/gfortran.dg/char_pointer_assign_6.f90 dd8a633154df2c14213e24aa617b08a2 gcc/testsuite/gfortran.dg/char_pointer_assign_icb_1.f90 ddf9f77e66c4a8135a264b7cc863b0b6 gcc/testsuite/gfortran.dg/char_pointer_comp_assign.f90 064ebf7ad523c69997a5cd603b66eb56 gcc/testsuite/gfortran.dg/char_pointer_dependency.f90 *************** ced365db03e0b33ad236199eb1a30741 gcc/te *** 53214,53219 **** --- 53622,53628 ---- a8c885ea4e0c6bc88f0ace8c9441b54c gcc/testsuite/gfortran.dg/char_result_16.f90 b04e8da3ed092a0886eb038f4181da94 gcc/testsuite/gfortran.dg/char_result_17.f90 c57ff1e13c323e08a3d7e31aaad2177d gcc/testsuite/gfortran.dg/char_result_18.f90 + c23be0d92be5574c5c53b96a89405886 gcc/testsuite/gfortran.dg/char_result_19.f90 b9fd5c26379f980be6e5d0375d100c1d gcc/testsuite/gfortran.dg/char_result_2.f90 7b4ed16894be70d364eb086487f8813f gcc/testsuite/gfortran.dg/char_result_3.f90 cf6f60622f81de4bec4a3308815ca361 gcc/testsuite/gfortran.dg/char_result_4.f90 *************** a9d96fe47ff920da6b8376da1113bd80 gcc/te *** 53222,53227 **** --- 53631,53637 ---- 8028b8274946e7feb9f3d4850e17af3f gcc/testsuite/gfortran.dg/char_result_7.f90 b0dc2d0a6ea7474b02cb85a70b3ad102 gcc/testsuite/gfortran.dg/char_result_8.f90 5093ae73a32a476b807d4a5128b4ed80 gcc/testsuite/gfortran.dg/char_result_9.f90 + 1ced3da36308e54e5d306659bf14b653 gcc/testsuite/gfortran.dg/char_result_mod_19.f90 053c33c2d1200e52cbe9a4ae1b95d7c3 gcc/testsuite/gfortran.dg/char_spread_1.f90 4506436296784a8aec337002f8009e99 gcc/testsuite/gfortran.dg/char_transpose_1.f90 b63e59c90ea7e532d83d3417eab591c7 gcc/testsuite/gfortran.dg/char_type_len.f90 *************** f3d0c2f9dd3430fcde70c063f5f1f609 gcc/te *** 53253,53258 **** --- 53663,53669 ---- a172ca937d7924e5b9285065ca6b21dd gcc/testsuite/gfortran.dg/charlen_14.f90 d4173ba9944470c8a1ee298c68c8c1d5 gcc/testsuite/gfortran.dg/charlen_15.f90 b83b7e261a9a0e3827f879ddb426c6e0 gcc/testsuite/gfortran.dg/charlen_16.f90 + 6789f241b90393509e933466d0ce37dd gcc/testsuite/gfortran.dg/charlen_17.f90 8611f395b5429bd54cab0aef125f4641 gcc/testsuite/gfortran.dg/chkbits.f90 8f0b4ff7bcb5c59492a4c90c9a6af8c7 gcc/testsuite/gfortran.dg/chmod_1.f90 012967ce36e9117ef73d95a30a332d60 gcc/testsuite/gfortran.dg/chmod_2.f90 *************** d6c98e30022f3526561612d15bd04f8d gcc/te *** 53325,53330 **** --- 53736,53742 ---- a8f104492778b738ac5730dd1605432a gcc/testsuite/gfortran.dg/class_67.f90 63b1355ac520a42bac806d64920510a4 gcc/testsuite/gfortran.dg/class_68.f90 cc0c048415b8d0593fe7e5b164763dc7 gcc/testsuite/gfortran.dg/class_7.f03 + cd9759177f83fe4b6a6a007850b05c80 gcc/testsuite/gfortran.dg/class_70.f03 765b5ae237d318aee8909def266c457e gcc/testsuite/gfortran.dg/class_8.f03 6ad3d2ed9f82c5534e18375c93ce8c03 gcc/testsuite/gfortran.dg/class_9.f03 eff35de84f2c16f8b8abcbc407237414 gcc/testsuite/gfortran.dg/class_alias.f90 *************** aedf93982d6c056c9d1650f5e7e4d506 gcc/te *** 53406,53416 **** 0383efb987613ad7ba5897bf853a7c3d gcc/testsuite/gfortran.dg/coarray/allocate_errgmsg.f90 21f18575fa619cf0b7fba877cb8db97f gcc/testsuite/gfortran.dg/coarray/atomic_1.f90 0268d93e6cda40e43a982efb5b3db96a gcc/testsuite/gfortran.dg/coarray/atomic_2.f90 ! 49ad97d1f9e8ba586a9b2a1b9c3bea16 gcc/testsuite/gfortran.dg/coarray/caf.exp a8535ad2a515ec0df0ef730df6f14831 gcc/testsuite/gfortran.dg/coarray/codimension.f90 5458460c74c7764eb6fc6ca41f3520cb gcc/testsuite/gfortran.dg/coarray/codimension_2.f90 9604ece34279ee35811c44344503ca51 gcc/testsuite/gfortran.dg/coarray/codimension_2a.f90 c2fcd3c1508ec38085828e5481ea280c gcc/testsuite/gfortran.dg/coarray/codimension_2b.f90 ee39ad592286c583f1d1379691059313 gcc/testsuite/gfortran.dg/coarray/coindexed_1.f90 f3a5dbd5b18b49f30a47e9c6ddf0ef10 gcc/testsuite/gfortran.dg/coarray/collectives_1.f90 57d5669b2d7c4384f4f2cbf7f42c55e5 gcc/testsuite/gfortran.dg/coarray/collectives_2.f90 --- 53818,53829 ---- 0383efb987613ad7ba5897bf853a7c3d gcc/testsuite/gfortran.dg/coarray/allocate_errgmsg.f90 21f18575fa619cf0b7fba877cb8db97f gcc/testsuite/gfortran.dg/coarray/atomic_1.f90 0268d93e6cda40e43a982efb5b3db96a gcc/testsuite/gfortran.dg/coarray/atomic_2.f90 ! b03c71938184484c82032e53aac66469 gcc/testsuite/gfortran.dg/coarray/caf.exp a8535ad2a515ec0df0ef730df6f14831 gcc/testsuite/gfortran.dg/coarray/codimension.f90 5458460c74c7764eb6fc6ca41f3520cb gcc/testsuite/gfortran.dg/coarray/codimension_2.f90 9604ece34279ee35811c44344503ca51 gcc/testsuite/gfortran.dg/coarray/codimension_2a.f90 c2fcd3c1508ec38085828e5481ea280c gcc/testsuite/gfortran.dg/coarray/codimension_2b.f90 + 138b64ab66402dec923a5ed290f9cddc gcc/testsuite/gfortran.dg/coarray/codimension_3.f90 ee39ad592286c583f1d1379691059313 gcc/testsuite/gfortran.dg/coarray/coindexed_1.f90 f3a5dbd5b18b49f30a47e9c6ddf0ef10 gcc/testsuite/gfortran.dg/coarray/collectives_1.f90 57d5669b2d7c4384f4f2cbf7f42c55e5 gcc/testsuite/gfortran.dg/coarray/collectives_2.f90 *************** fd555c460e9a2fe3d73c2849790b7206 gcc/te *** 53519,53524 **** --- 53932,53938 ---- eda6cad3c6c6f004e3137cf3e30aedf1 gcc/testsuite/gfortran.dg/coarray_alloc_with_implicit_sync_2.f90 964249eae6cd40820f1f28256a0bf3aa gcc/testsuite/gfortran.dg/coarray_allocate_1.f90 0224c1e3add89d8da53743943781c0d8 gcc/testsuite/gfortran.dg/coarray_allocate_10.f08 + 89da7a5247ec226a9d595e4ee6bbbab8 gcc/testsuite/gfortran.dg/coarray_allocate_11.f90 8c719d89a1e3531bbdb311dfa763167b gcc/testsuite/gfortran.dg/coarray_allocate_2.f08 c2616fae76af07a79e5d72322ffa2b9f gcc/testsuite/gfortran.dg/coarray_allocate_3.f08 e63a013eba2d6fe4cbef12573cb14e52 gcc/testsuite/gfortran.dg/coarray_allocate_4.f08 *************** d8b0925104e27edfd7554327aec7e656 gcc/te *** 53553,53558 **** --- 53967,53973 ---- 3868ecdad997c64216510129983de4eb gcc/testsuite/gfortran.dg/coarray_collectives_8.f90 e7f7c38c4530db86c8bf560b1800b017 gcc/testsuite/gfortran.dg/coarray_collectives_9.f90 967c97a8edd55b3e24d9f53bacf51ab2 gcc/testsuite/gfortran.dg/coarray_critical_1.f90 + f24b69052d445ea075f93eefed61e789 gcc/testsuite/gfortran.dg/coarray_data_1.f90 9548b18ea57c3895468bd270375183d8 gcc/testsuite/gfortran.dg/coarray_dependency_1.f90 ae24a8ba632b111617b5af3d9ec9ed23 gcc/testsuite/gfortran.dg/coarray_event_1.f08 fbd2090d586a51d16a8ccd3d6c9359e6 gcc/testsuite/gfortran.dg/coarray_event_2.f08 *************** c2d3fe3d7d640f7941cc2bc632a62dae gcc/te *** 53873,53878 **** --- 54288,54296 ---- 6217eeab1004e9ef8c744d031931d8f6 gcc/testsuite/gfortran.dg/deferred_character_21.f90 c555d5fb27ed4c78dd43072cce33f4dd gcc/testsuite/gfortran.dg/deferred_character_22.f90 8711c9282d7601e5aaa4a9f3dd7b5b43 gcc/testsuite/gfortran.dg/deferred_character_3.f90 + f405c538ee221b34e2094a843f78c12a gcc/testsuite/gfortran.dg/deferred_character_32.f90 + 5f82ae5d302549ef737253722a910e61 gcc/testsuite/gfortran.dg/deferred_character_33.f90 + c8ca7a67e0b9c502e7883c6187a3b1f3 gcc/testsuite/gfortran.dg/deferred_character_33a.f90 5eede6c791f6d272034f9b84850ac6af gcc/testsuite/gfortran.dg/deferred_character_4.f90 981b809300de368e8fac65be4b40099c gcc/testsuite/gfortran.dg/deferred_character_5.f90 b8df78111bec4d4d4b97da6a15228361 gcc/testsuite/gfortran.dg/deferred_character_6.f90 *************** b708a831578a6c876ea16b95695f6103 gcc/te *** 53952,53957 **** --- 54370,54376 ---- 590a99c4ec44cc37aa92b225e93d6e87 gcc/testsuite/gfortran.dg/dependency_5.f90 05077d112c5b175bda81d3ed2d1d2318 gcc/testsuite/gfortran.dg/dependency_50.f90 e3dcdcb7fb8e68b8ccf780af3eb56518 gcc/testsuite/gfortran.dg/dependency_51.f90 + 4e12ffe31088cb1a780ebbce0ec059ef gcc/testsuite/gfortran.dg/dependency_53.f90 03218919538313b26e09fa1b8f0efda0 gcc/testsuite/gfortran.dg/dependency_6.f90 699f1378f5c1fcdc54eb21fdb4a59be1 gcc/testsuite/gfortran.dg/dependency_7.f90 89a3206dfabae1e31ea62ec7fa264ee6 gcc/testsuite/gfortran.dg/dependency_8.f90 *************** dd5ecf2c74eaa6c3f2c981a9dcb2caa3 gcc/te *** 54008,54014 **** b522fadd1464db48d2fe8165d2a66e70 gcc/testsuite/gfortran.dg/derived_sub.f90 652fa12d630d17b29894c33b10c6b1b8 gcc/testsuite/gfortran.dg/dev_null.F90 94ce3208dac145ea14fc3f821f662788 gcc/testsuite/gfortran.dg/dfloat_1.f90 ! 6225aa701ea238d6bc3b5ad76ce51526 gcc/testsuite/gfortran.dg/dg.exp cf9206e8c02e17079f63e1e6860bdb3b gcc/testsuite/gfortran.dg/dim_range_1.f90 9233bdc80c05466b893a5980013b72e8 gcc/testsuite/gfortran.dg/dim_sum_1.f90 a0eae83f56a58410e0887f2da41f7c3b gcc/testsuite/gfortran.dg/dim_sum_2.f90 --- 54427,54433 ---- b522fadd1464db48d2fe8165d2a66e70 gcc/testsuite/gfortran.dg/derived_sub.f90 652fa12d630d17b29894c33b10c6b1b8 gcc/testsuite/gfortran.dg/dev_null.F90 94ce3208dac145ea14fc3f821f662788 gcc/testsuite/gfortran.dg/dfloat_1.f90 ! 6caca55b748879ddda33666fbb753c12 gcc/testsuite/gfortran.dg/dg.exp cf9206e8c02e17079f63e1e6860bdb3b gcc/testsuite/gfortran.dg/dim_range_1.f90 9233bdc80c05466b893a5980013b72e8 gcc/testsuite/gfortran.dg/dim_sum_1.f90 a0eae83f56a58410e0887f2da41f7c3b gcc/testsuite/gfortran.dg/dim_sum_2.f90 *************** cc944e9209313a0d97bd7bed7198665c gcc/te *** 54058,54063 **** --- 54477,54484 ---- 7d8c65a65d2d7c5bd8b9ada9a3dd140b gcc/testsuite/gfortran.dg/do_pointer_1.f90 8458b67d26bd265665097f2319d6e2f1 gcc/testsuite/gfortran.dg/do_subscript_1.f90 d37e7d4d6baf021e73df70552ca853bf gcc/testsuite/gfortran.dg/do_subscript_2.f90 + 554ac42462f9f2205e5a0ddfebcdc939 gcc/testsuite/gfortran.dg/do_subscript_5.f90 + f4c22f8620f9cf0541b8ca7a3458969d gcc/testsuite/gfortran.dg/do_subscript_6.f90 a7c723754d10ef5541785fffb91b0578 gcc/testsuite/gfortran.dg/do_while_1.f90 23e59fcc0f241300d3822da5f55f6ab5 gcc/testsuite/gfortran.dg/dollar_edit_descriptor_1.f eeb8d6e07dce7e2db9e441c445bdd3ac gcc/testsuite/gfortran.dg/dollar_edit_descriptor_2.f *************** f10c4681bf625e46adae521a3de13a48 gcc/te *** 54101,54106 **** --- 54522,54528 ---- 35086916aa824faf23502f48784f4bc6 gcc/testsuite/gfortran.dg/dtio_31.f03 32c2c08c7f3e58e80c57128aa1e2b13d gcc/testsuite/gfortran.dg/dtio_32.f03 c9bae3926493665cd6a3a6bca4b52e53 gcc/testsuite/gfortran.dg/dtio_33.f90 + 5f453b52ee72bd864f1fc70730289b71 gcc/testsuite/gfortran.dg/dtio_34.f90 98feff72bfe6f9469278b8b049519af2 gcc/testsuite/gfortran.dg/dtio_4.f90 5f7b1d1f57ac24dc9129e7dc2e9bc2f4 gcc/testsuite/gfortran.dg/dtio_5.f90 5c6704b3b1b7266ea126e709df28bebe gcc/testsuite/gfortran.dg/dtio_6.f90 *************** fe5fde412958e201197383cf5ae0b542 gcc/te *** 54213,54218 **** --- 54635,54641 ---- dde6c08dab677880bb894b2143cf090b gcc/testsuite/gfortran.dg/entry_2.f90 df7fd6f7581d27330f0013f9a3246e99 gcc/testsuite/gfortran.dg/entry_20.f90 72628f114c4fb8fab6905f4a0f29e09f gcc/testsuite/gfortran.dg/entry_21.f90 + 37e5c5438d0e0514b44e64686d3843da gcc/testsuite/gfortran.dg/entry_22.f90 0f79e5c423680a19e0f1ac49f4a91670 gcc/testsuite/gfortran.dg/entry_3.f90 b38bdeb67849d262a6ff0a7a985e1835 gcc/testsuite/gfortran.dg/entry_4.f90 d9c60fad31625139f9e0a67c69d59e59 gcc/testsuite/gfortran.dg/entry_5.f90 *************** ab0027e37c53e4de2faf80a49af5c70e gcc/te *** 54242,54247 **** --- 54665,54671 ---- 13491ddbf6de8262d5d57552a484c85e gcc/testsuite/gfortran.dg/eof_3.f90 80cd70fc61c375df2fe8a3fcac7a55a4 gcc/testsuite/gfortran.dg/eof_4.f90 0a5c2dd5647ff9c0a031479cb94312f1 gcc/testsuite/gfortran.dg/eof_5.f90 + b11c3fe23be2c52dc0068ce168f7f903 gcc/testsuite/gfortran.dg/eof_6.f90 b2cbcfb2f5b6181bb94c3c59ec9d0da3 gcc/testsuite/gfortran.dg/eor_1.f90 aebb8d08fc0b290e576f86423f6ca59f gcc/testsuite/gfortran.dg/eor_handling_1.f90 294ba1a377b97aa6a9b5e6d2fdfefbae gcc/testsuite/gfortran.dg/eor_handling_2.f90 *************** d5c2becdf2a2a9b3476dac72cfc54877 gcc/te *** 54327,54335 **** --- 54751,54761 ---- 3485cc1f6803a287f97032484eec3440 gcc/testsuite/gfortran.dg/extends_type_of_3.f90 df764dd66e24cfa5a1af1a03b983104b gcc/testsuite/gfortran.dg/external_implicit_none.f90 4eca303332980555d4132fbdc52d774a gcc/testsuite/gfortran.dg/external_initializer.f90 + bd779906b016bd335bbb19a449289c47 gcc/testsuite/gfortran.dg/external_procedure_4.f90 e858d42afb6c6feb41d75f84594d0e1f gcc/testsuite/gfortran.dg/external_procedures_1.f90 ecf30036a6f1dd697da6f19c378c5e40 gcc/testsuite/gfortran.dg/external_procedures_2.f90 2625befedf617cfcf62cbf2931fb6f60 gcc/testsuite/gfortran.dg/external_procedures_3.f90 + d7fb3c16ee0239f71660d451f48ce2e9 gcc/testsuite/gfortran.dg/external_procedures_4.f90 6c1ffa5a3f385ca7c11b01e8727a6d29 gcc/testsuite/gfortran.dg/extract_recip_1.f ed7c54ff7c06dfabebe92f99baeee987 gcc/testsuite/gfortran.dg/f2003_inquire_1.f03 dd95bc708540876ec31e17fe2d04eb8b gcc/testsuite/gfortran.dg/f2003_io_1.f03 *************** aa76dde0c8f8c461af7f6702bc38655e gcc/te *** 54377,54388 **** 7777e7da27f0f204cb380c5791769371 gcc/testsuite/gfortran.dg/finalize_24.f90 ee54ae40d5eeac0613d226e05644ee24 gcc/testsuite/gfortran.dg/finalize_25.f90 41d2ab1f1acf2bfddbbdceb10c9ae399 gcc/testsuite/gfortran.dg/finalize_27.f90 ! efc9cd9348a3f56180139e80d960002c gcc/testsuite/gfortran.dg/finalize_28.f90 990865cd966f264913b80c5f4aac4498 gcc/testsuite/gfortran.dg/finalize_29.f08 fd6f56591cff43978fb9e37af994eec0 gcc/testsuite/gfortran.dg/finalize_3.f03 e100c711627c65e22ec895f123885efe gcc/testsuite/gfortran.dg/finalize_30.f90 bf2746f6ebfcb7ed0ee105a55caf722b gcc/testsuite/gfortran.dg/finalize_31.f90 5fc1e3c1d9863bacaa0e67ce6c523324 gcc/testsuite/gfortran.dg/finalize_32.f90 92b4ca27645d88cb11543d720382b004 gcc/testsuite/gfortran.dg/finalize_4.f03 ce817f495edb0ac306d6ae1052014e67 gcc/testsuite/gfortran.dg/finalize_5.f03 00394d3b18b9e094a6751225fef04a51 gcc/testsuite/gfortran.dg/finalize_6.f90 --- 54803,54815 ---- 7777e7da27f0f204cb380c5791769371 gcc/testsuite/gfortran.dg/finalize_24.f90 ee54ae40d5eeac0613d226e05644ee24 gcc/testsuite/gfortran.dg/finalize_25.f90 41d2ab1f1acf2bfddbbdceb10c9ae399 gcc/testsuite/gfortran.dg/finalize_27.f90 ! d30e2b4888cd7deaa0b011ec6dc2730a gcc/testsuite/gfortran.dg/finalize_28.f90 990865cd966f264913b80c5f4aac4498 gcc/testsuite/gfortran.dg/finalize_29.f08 fd6f56591cff43978fb9e37af994eec0 gcc/testsuite/gfortran.dg/finalize_3.f03 e100c711627c65e22ec895f123885efe gcc/testsuite/gfortran.dg/finalize_30.f90 bf2746f6ebfcb7ed0ee105a55caf722b gcc/testsuite/gfortran.dg/finalize_31.f90 5fc1e3c1d9863bacaa0e67ce6c523324 gcc/testsuite/gfortran.dg/finalize_32.f90 + bf28fc2ddb1347b5d4cd2aac68cccbc5 gcc/testsuite/gfortran.dg/finalize_34.f90 92b4ca27645d88cb11543d720382b004 gcc/testsuite/gfortran.dg/finalize_4.f03 ce817f495edb0ac306d6ae1052014e67 gcc/testsuite/gfortran.dg/finalize_5.f03 00394d3b18b9e094a6751225fef04a51 gcc/testsuite/gfortran.dg/finalize_6.f90 *************** dff0c4a3dcd2aac51063c6e05c6d4665 gcc/te *** 54800,54809 **** afef16c2771512fb51bd89dace9f7c11 gcc/testsuite/gfortran.dg/goacc/pr77765.f90 fc686524ed127ce392011e6c6d596cb9 gcc/testsuite/gfortran.dg/goacc/pr78027.f90 77b32efd84a7f238f0fa5166b3b2fde1 gcc/testsuite/gfortran.dg/goacc/pr84217.f90 ! 98021166ee2b55420ca83360835ea78c gcc/testsuite/gfortran.dg/goacc/pr84963.f90 967e76184bab415f5ccaee3e8855e4e6 gcc/testsuite/gfortran.dg/goacc/pr85701.f90 69951fe9d02325aab83893b15f14ee22 gcc/testsuite/gfortran.dg/goacc/pr85702.f90 fff3ef606b07a0c12c2323afa6fe446d gcc/testsuite/gfortran.dg/goacc/pr85703.f90 93028fbaf2e1d8a3907db1cacb627cf7 gcc/testsuite/gfortran.dg/goacc/private-1.f95 24e251dd88a9ea6377e535f5ee5f31ed gcc/testsuite/gfortran.dg/goacc/private-2.f95 a70416eb409bcd3ad178b3d0127d84e8 gcc/testsuite/gfortran.dg/goacc/private-3.f95 --- 55227,55238 ---- afef16c2771512fb51bd89dace9f7c11 gcc/testsuite/gfortran.dg/goacc/pr77765.f90 fc686524ed127ce392011e6c6d596cb9 gcc/testsuite/gfortran.dg/goacc/pr78027.f90 77b32efd84a7f238f0fa5166b3b2fde1 gcc/testsuite/gfortran.dg/goacc/pr84217.f90 ! 1a37f54ea403d36fae4f50d189f5369b gcc/testsuite/gfortran.dg/goacc/pr84963.f90 967e76184bab415f5ccaee3e8855e4e6 gcc/testsuite/gfortran.dg/goacc/pr85701.f90 69951fe9d02325aab83893b15f14ee22 gcc/testsuite/gfortran.dg/goacc/pr85702.f90 fff3ef606b07a0c12c2323afa6fe446d gcc/testsuite/gfortran.dg/goacc/pr85703.f90 + a2ead21242a28e48fc0d90b3af1c1ff7 gcc/testsuite/gfortran.dg/goacc/pr93329.f90 + f456cdcfbddab6f8bef5a32a8ae942c7 gcc/testsuite/gfortran.dg/goacc/pr93463.f90 93028fbaf2e1d8a3907db1cacb627cf7 gcc/testsuite/gfortran.dg/goacc/private-1.f95 24e251dd88a9ea6377e535f5ee5f31ed gcc/testsuite/gfortran.dg/goacc/private-2.f95 a70416eb409bcd3ad178b3d0127d84e8 gcc/testsuite/gfortran.dg/goacc/private-3.f95 *************** f5bcea31678114301e0da9c5d60bb564 gcc/te *** 54996,55001 **** --- 55425,55434 ---- 900e29bb957f49d5b8cee27818655396 gcc/testsuite/gfortran.dg/gomp/pr85313.f90 793bc6a890f694516d4634a933a5cb43 gcc/testsuite/gfortran.dg/gomp/pr85703.f90 474faa53ddfedb432c4594b4df78d3f3 gcc/testsuite/gfortran.dg/gomp/pr88377.f90 + 5ec5bffb9591a9ffd391899e3384e8c4 gcc/testsuite/gfortran.dg/gomp/pr89621.f90 + 6399dd6d481972c65426ae5a0fe674a2 gcc/testsuite/gfortran.dg/gomp/pr89651.f90 + 1365d33484c21cf6b603f60889b019a4 gcc/testsuite/gfortran.dg/gomp/pr92977.f90 + 6db6e7072dccd0be789b6dc9bd2a586c gcc/testsuite/gfortran.dg/gomp/pr93555.f90 b4be3f9de7631846875a711ae9b67293 gcc/testsuite/gfortran.dg/gomp/proc_ptr_1.f90 87885556568e657ef4c936c53e1c7305 gcc/testsuite/gfortran.dg/gomp/proc_ptr_2.f90 59e444df8ec8f5ea9859b5aef4d75865 gcc/testsuite/gfortran.dg/gomp/reduction1.f90 *************** c525cee40cfdc1d7f1dda5cf299fdde9 gcc/te *** 55008,55013 **** --- 55441,55447 ---- bb19e54aafc9016401c4797e4cb0d75d gcc/testsuite/gfortran.dg/gomp/sharing-2.f90 31d6e090f7c514b28f2656086d853df7 gcc/testsuite/gfortran.dg/gomp/sharing-3.f90 b3d1280c39c6cae9dddab498b1e1eeb4 gcc/testsuite/gfortran.dg/gomp/sharing-4.f90 + 3c3ee23796192e475b1597bfe4ae9d72 gcc/testsuite/gfortran.dg/gomp/target-parallel1.f90 919bd1d4b3eea35828ead5f8cf204a98 gcc/testsuite/gfortran.dg/gomp/target1.f90 b75e4a6eaec211becf176c75768a3f3d gcc/testsuite/gfortran.dg/gomp/target2.f90 4a93baff2b168f10d86571d18de637ba gcc/testsuite/gfortran.dg/gomp/target3.f90 *************** e6c37a9def09433a6a2f8bc1d9220133 gcc/te *** 55180,55186 **** cc7201a9525a4793e8bf391d30c3653d gcc/testsuite/gfortran.dg/ichar_1.f90 8201f75f0deee5480134fc16f1113f0c gcc/testsuite/gfortran.dg/ichar_2.f90 b614ce421f97fb4ab6fa10f1f1c47ab0 gcc/testsuite/gfortran.dg/ichar_3.f90 ! 21b47d43ccf27f4a5059937e0e63487b gcc/testsuite/gfortran.dg/ieee/ieee.exp 0099e59ef340f8e2088656dfac86c17f gcc/testsuite/gfortran.dg/ieee/ieee_1.F90 629e2eea5e2091391dc3e08bcadcb8cd gcc/testsuite/gfortran.dg/ieee/ieee_2.f90 b15c44040c4efe2f8b119bb3df34f610 gcc/testsuite/gfortran.dg/ieee/ieee_3.f90 --- 55614,55620 ---- cc7201a9525a4793e8bf391d30c3653d gcc/testsuite/gfortran.dg/ichar_1.f90 8201f75f0deee5480134fc16f1113f0c gcc/testsuite/gfortran.dg/ichar_2.f90 b614ce421f97fb4ab6fa10f1f1c47ab0 gcc/testsuite/gfortran.dg/ichar_3.f90 ! 1e4464058af03b6740816d16aec922f6 gcc/testsuite/gfortran.dg/ieee/ieee.exp 0099e59ef340f8e2088656dfac86c17f gcc/testsuite/gfortran.dg/ieee/ieee_1.F90 629e2eea5e2091391dc3e08bcadcb8cd gcc/testsuite/gfortran.dg/ieee/ieee_2.f90 b15c44040c4efe2f8b119bb3df34f610 gcc/testsuite/gfortran.dg/ieee/ieee_3.f90 *************** b4d472d28fc0ac004218dc87eb241306 gcc/te *** 55444,55449 **** --- 55878,55884 ---- b3de2cdb7dfd995e8d4a97fabcc29a38 gcc/testsuite/gfortran.dg/interface_abstract_2.f90 e797a26594e33f4316a85af1fe223cbc gcc/testsuite/gfortran.dg/interface_abstract_3.f90 a30d85d2601e16438a18162122cbc190 gcc/testsuite/gfortran.dg/interface_abstract_4.f90 + bb1e6a032a10a9e1ff7d9a5d79c13aa6 gcc/testsuite/gfortran.dg/interface_abstract_5.f90 33a2f608c30f217c3799ca2ecec2ffec gcc/testsuite/gfortran.dg/interface_assignment_1.f90 4f0c646f0732570a97ff9a9dc8755be6 gcc/testsuite/gfortran.dg/interface_assignment_2.f90 91f77567fb0079c826db40c2ce9296c0 gcc/testsuite/gfortran.dg/interface_assignment_3.f90 *************** a50aae7296164245305033ac9ad76f9e gcc/te *** 55684,55692 **** cce764967a53580b4da5528603b77e0c gcc/testsuite/gfortran.dg/lto/20091015-1_1.f b15d12ceedaec19ba0c3dccda0ff8ff3 gcc/testsuite/gfortran.dg/lto/20091015-1_2.f 22260f45e69e095269c5ce9ffd573fdd gcc/testsuite/gfortran.dg/lto/20091016-1_0.f90 ! 4f2edde20f8cc5e9648cbd641c65f4b0 gcc/testsuite/gfortran.dg/lto/20091028-1_0.f90 3347d22ad57680bea0046ec09834ace3 gcc/testsuite/gfortran.dg/lto/20091028-1_1.c ! 4f2edde20f8cc5e9648cbd641c65f4b0 gcc/testsuite/gfortran.dg/lto/20091028-2_0.f90 132111f4eb309b2a60ee09bdd249ad57 gcc/testsuite/gfortran.dg/lto/20091028-2_1.c a712ac9ff8597986399f0e39238ae03d gcc/testsuite/gfortran.dg/lto/20100110-1_0.f90 a359cbb68407bfc3d0394abe1fbff589 gcc/testsuite/gfortran.dg/lto/20100222-1_0.f03 --- 56119,56127 ---- cce764967a53580b4da5528603b77e0c gcc/testsuite/gfortran.dg/lto/20091015-1_1.f b15d12ceedaec19ba0c3dccda0ff8ff3 gcc/testsuite/gfortran.dg/lto/20091015-1_2.f 22260f45e69e095269c5ce9ffd573fdd gcc/testsuite/gfortran.dg/lto/20091016-1_0.f90 ! f485672dc63fa62c9200ae105fae2521 gcc/testsuite/gfortran.dg/lto/20091028-1_0.f90 3347d22ad57680bea0046ec09834ace3 gcc/testsuite/gfortran.dg/lto/20091028-1_1.c ! f485672dc63fa62c9200ae105fae2521 gcc/testsuite/gfortran.dg/lto/20091028-2_0.f90 132111f4eb309b2a60ee09bdd249ad57 gcc/testsuite/gfortran.dg/lto/20091028-2_1.c a712ac9ff8597986399f0e39238ae03d gcc/testsuite/gfortran.dg/lto/20100110-1_0.f90 a359cbb68407bfc3d0394abe1fbff589 gcc/testsuite/gfortran.dg/lto/20100222-1_0.f03 *************** a9d014274eb56078098dae3d4f9a8fe7 gcc/te *** 55729,55734 **** --- 56164,56171 ---- a8ba679c6307cb7e937915e91616c861 gcc/testsuite/gfortran.dg/lto/pr60635_1.c f4d0f3a9eea039a45f8f40d5a4d52efb gcc/testsuite/gfortran.dg/lto/pr79108_0.f90 fa332a69f92c8cb51e4ce0ae67697034 gcc/testsuite/gfortran.dg/lto/pr84645_0.f90 + ba08aed6efe11198caa459b3c16a5ccd gcc/testsuite/gfortran.dg/lto/pr87689_0.f + a05a13a27c2b09cdc9cd3c6a8b7bf7a4 gcc/testsuite/gfortran.dg/lto/pr87689_1.f f5272c5b4153fa5ce60b4c526701d273 gcc/testsuite/gfortran.dg/lto/pr89084_0.f90 e05291f83b2b7501a2be29b7516a5330 gcc/testsuite/gfortran.dg/make_unit.f90 b49070ec831f64c85f249772acd9a59f gcc/testsuite/gfortran.dg/malloc_free_1.f90 *************** ccf25bc57c7fd0870f3fa7fea60340a6 gcc/te *** 56072,56078 **** 16d9cc312dc3603f84627c0edcbc49a2 gcc/testsuite/gfortran.dg/nint_2.f90 f867bd2d1caf94b8344ac3386b825ea1 gcc/testsuite/gfortran.dg/nint_p7.f90 03b84fc5eca43cc5d1a0b1a93937da73 gcc/testsuite/gfortran.dg/no_arg_check_1.f90 ! dc211466d922cffe5d004141df4e7358 gcc/testsuite/gfortran.dg/no_arg_check_2.f90 b737c11615e1c006ec919afcf954359a gcc/testsuite/gfortran.dg/no_arg_check_3.f90 549a1f2c46b7c149d7bd62f485d2e1a9 gcc/testsuite/gfortran.dg/no_range_check_1.f90 1b8a194599702e6446e415880e67121d gcc/testsuite/gfortran.dg/no_range_check_2.f90 --- 56509,56515 ---- 16d9cc312dc3603f84627c0edcbc49a2 gcc/testsuite/gfortran.dg/nint_2.f90 f867bd2d1caf94b8344ac3386b825ea1 gcc/testsuite/gfortran.dg/nint_p7.f90 03b84fc5eca43cc5d1a0b1a93937da73 gcc/testsuite/gfortran.dg/no_arg_check_1.f90 ! b56a2bf137a35e30eaea8c232cf2c5f1 gcc/testsuite/gfortran.dg/no_arg_check_2.f90 b737c11615e1c006ec919afcf954359a gcc/testsuite/gfortran.dg/no_arg_check_3.f90 549a1f2c46b7c149d7bd62f485d2e1a9 gcc/testsuite/gfortran.dg/no_range_check_1.f90 1b8a194599702e6446e415880e67121d gcc/testsuite/gfortran.dg/no_range_check_2.f90 *************** f67cfd0ae4d38f1ca5dc8d7f6e954087 gcc/te *** 56218,56224 **** 7efa911fe665f45456e6943844302ac0 gcc/testsuite/gfortran.dg/pdt_28.f03 68b10a194ff6797eee8ecb042129b08f gcc/testsuite/gfortran.dg/pdt_29.f03 467e7b0f7ffea3a05b9ac591c2ac05ee gcc/testsuite/gfortran.dg/pdt_3.f03 ! b01b9ceba6ffee67e956395356b126b5 gcc/testsuite/gfortran.dg/pdt_4.f03 c5c92af1413fa2462f388d2ff5077773 gcc/testsuite/gfortran.dg/pdt_5.f03 65d2ad728417ad3174fc1ce2b51a458d gcc/testsuite/gfortran.dg/pdt_6.f03 d2c9dae0c6e2385c5712aba8e12a70ba gcc/testsuite/gfortran.dg/pdt_7.f03 --- 56655,56661 ---- 7efa911fe665f45456e6943844302ac0 gcc/testsuite/gfortran.dg/pdt_28.f03 68b10a194ff6797eee8ecb042129b08f gcc/testsuite/gfortran.dg/pdt_29.f03 467e7b0f7ffea3a05b9ac591c2ac05ee gcc/testsuite/gfortran.dg/pdt_3.f03 ! 17fa57111f7b9c176c9f9fdf95c974cf gcc/testsuite/gfortran.dg/pdt_4.f03 c5c92af1413fa2462f388d2ff5077773 gcc/testsuite/gfortran.dg/pdt_5.f03 65d2ad728417ad3174fc1ce2b51a458d gcc/testsuite/gfortran.dg/pdt_6.f03 d2c9dae0c6e2385c5712aba8e12a70ba gcc/testsuite/gfortran.dg/pdt_7.f03 *************** c621629f10feffbfa9fef1441a610e53 gcc/te *** 56228,56233 **** --- 56665,56671 ---- b836f09e53badc9a7066eb5692c28f74 gcc/testsuite/gfortran.dg/pointer_2.f90 620a59a97d6aa806a934ba7f7e67e932 gcc/testsuite/gfortran.dg/pointer_array_1.f90 000bda2be477bacf7d759c20e3ac3709 gcc/testsuite/gfortran.dg/pointer_array_10.f90 + b5def0f17324245ee6df5dd8e854aa7c gcc/testsuite/gfortran.dg/pointer_array_11.f90 770f1ab071468199cc11d39d277e60e0 gcc/testsuite/gfortran.dg/pointer_array_2.f90 c17f47cef447c9ed69614ec0daa92b54 gcc/testsuite/gfortran.dg/pointer_array_3.f90 dfcbac44563ca824b08d9aae911c293a gcc/testsuite/gfortran.dg/pointer_array_4.f90 *************** ae06d6761f5e36e2c2e46067aa089b8e gcc/te *** 56284,56289 **** --- 56722,56728 ---- 057bd7ad221bf91e2f022c2984e20cd7 gcc/testsuite/gfortran.dg/pointer_intent_5.f90 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 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 *************** eea87284cbfbd1719101caddb4ac38a8 gcc/te *** 56616,56621 **** --- 57055,57062 ---- b9749045f7e8d01ce770bef143077398 gcc/testsuite/gfortran.dg/pr69055.f90 4dfe5b03dbae8d8845caac4e7f7c0a89 gcc/testsuite/gfortran.dg/pr69155.f90 ed38cfd514aa0a70b18745aff4616ca3 gcc/testsuite/gfortran.dg/pr69395.f90 + 76138edfc2f50c95b9776fd1ddbf7633 gcc/testsuite/gfortran.dg/pr69455_1.f90 + 4888552ee29a6b2e46e1b22d0f8a8483 gcc/testsuite/gfortran.dg/pr69455_2.f90 39a58b86266ffa82ee6ef911ebf3cb11 gcc/testsuite/gfortran.dg/pr69497.f90 96518037a7c5060a69f1bee697816618 gcc/testsuite/gfortran.dg/pr69514_1.f90 cdcc7573cb338d6147f60cd5f685cd75 gcc/testsuite/gfortran.dg/pr69514_2.f90 *************** d085febf0a75173f181533e5b551f555 gcc/te *** 56673,56678 **** --- 57114,57120 ---- b41dce20e2213fb234886325f924905e gcc/testsuite/gfortran.dg/pr77460.f90 6762f5900b24ec775d86ad379332cdf0 gcc/testsuite/gfortran.dg/pr77498.f 7ac13d0d1a6ccb282debcd0ac4bf69fd gcc/testsuite/gfortran.dg/pr77506.f90 + ad1a51ce4bd4b4e49f9cb40f0178b2ad gcc/testsuite/gfortran.dg/pr77583.f90 a99d6d5592ea6b962b6a45223a22a17f gcc/testsuite/gfortran.dg/pr77612.f90 a0e0cbaff470d13a9247b4f6f66572d6 gcc/testsuite/gfortran.dg/pr77694.f90 f55a4e8f8a1e79f11c9cd9ad6d9eca57 gcc/testsuite/gfortran.dg/pr77719.f90 *************** cf956ba7ea568a1ec1e49d5d32949c70 gcc/te *** 56741,56746 **** --- 57183,57189 ---- bc3e0be49dbdfdfc634c8f0f2c908763 gcc/testsuite/gfortran.dg/pr85779_3.f90 e09a0ecad84cbee49613c16f8e8538ce gcc/testsuite/gfortran.dg/pr85780.f90 7e172a3cf8434a7c33b01add4617e601 gcc/testsuite/gfortran.dg/pr85786.f90 + 725e595013765639d219c2012948cd9d gcc/testsuite/gfortran.dg/pr85797.f90 e85019fafc2465365ffe52752040d464 gcc/testsuite/gfortran.dg/pr85798.f90 6de8b7c7567dcceb9bbbf46563935272 gcc/testsuite/gfortran.dg/pr85816.f90 052b31eec86fd95fce096fa3b0045dd3 gcc/testsuite/gfortran.dg/pr85895.f90 *************** f869901e299fbf4e6f33c18ce815c592 gcc/te *** 56767,56772 **** --- 57210,57216 ---- d146cb10030ff5567e3df552e1bd60a4 gcc/testsuite/gfortran.dg/pr88228.f90 ffb8d9ff34082ead6726f89479443062 gcc/testsuite/gfortran.dg/pr88249.f90 4dd42b9875f04e7bc7994da3c131e6f7 gcc/testsuite/gfortran.dg/pr88269.f90 + 59707ae53901796c5cd87fb13024c36e gcc/testsuite/gfortran.dg/pr88326.f90 a6709fec1b9ffa0ab96eeb80f8d6c18d gcc/testsuite/gfortran.dg/pr88467.f90 ed9d93ecae79fa041852ef045ccc680f gcc/testsuite/gfortran.dg/pr88902.f90 6fbe7e10b6b494411afcbe3af2c67208 gcc/testsuite/gfortran.dg/pr88932.f90 *************** ed9d93ecae79fa041852ef045ccc680f gcc/te *** 56774,56779 **** --- 57218,57232 ---- d0e021239a321dbde0c39d7f370068c8 gcc/testsuite/gfortran.dg/pr89077.f90 a2461a16a54c67eb1031deda70d3c512 gcc/testsuite/gfortran.dg/pr89084.f90 be4f5532cbaa58d083d822b627ffe5de gcc/testsuite/gfortran.dg/pr89253.f + eb191e16157f03cba56fb00422bb2852 gcc/testsuite/gfortran.dg/pr89266.f90 + 3d3ae675ea53199229afe3e1ab0a247a gcc/testsuite/gfortran.dg/pr89492.f90 + 7ebf7d753067f8fb33a012241af298a7 gcc/testsuite/gfortran.dg/pr89664.f90 + 0f56216a9f2ba335e597bae5f9f746ff gcc/testsuite/gfortran.dg/pr91660_1.f90 + 5af600dd01897e512804e99050dc44dc gcc/testsuite/gfortran.dg/pr91660_2.f90 + 7383008a151433faa521410955d94a9f gcc/testsuite/gfortran.dg/pr92629.f90 + 4f42dad4b149f18ca843630273713f7d gcc/testsuite/gfortran.dg/pr92781.f90 + 5ae8cd18044c6e382e1d73b60781e2f9 gcc/testsuite/gfortran.dg/pr93714_1.f90 + 1709f1232d61b6638bf2d8db392c7ed9 gcc/testsuite/gfortran.dg/pr93714_2.f90 891574fabddfbfea0c1fe4cf0cd69927 gcc/testsuite/gfortran.dg/predcom-1.f 20a411a7e5a57891297c4c6a96d92009 gcc/testsuite/gfortran.dg/predcom-2.f 93166017899716f4c3742eda5aaf4087 gcc/testsuite/gfortran.dg/predict-1.f90 *************** b4b03f1c1fdfb443168b64ca0b187ea5 gcc/te *** 56879,56884 **** --- 57332,57338 ---- a50ed014f3fd628f8e8e8e09f44f8c0f gcc/testsuite/gfortran.dg/proc_ptr_49.f90 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 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 *************** deda23d08864e8fd5de581142c84d0c3 gcc/te *** 56981,56986 **** --- 57435,57441 ---- 389e953b7230302dc01a242926959fa7 gcc/testsuite/gfortran.dg/ptr_func_assign_4.f08 8610f62acf79505ce9c955532780ae20 gcc/testsuite/gfortran.dg/ptr_func_assign_5.f08 1bdd54ec3c3cda30429d4442e8a439e5 gcc/testsuite/gfortran.dg/public_private_module.f90 + 23cd71f83283e2da0ce59ea093161e45 gcc/testsuite/gfortran.dg/public_private_module_10.f90 53bfb4bd5468c34fc1b1a819ebc75855 gcc/testsuite/gfortran.dg/public_private_module_2.f90 d103e889cb7d81b0f6805dbfc1c68c26 gcc/testsuite/gfortran.dg/public_private_module_3.f90 84ea34192deaf0c1463e5796a16847a2 gcc/testsuite/gfortran.dg/public_private_module_4.f90 *************** d3b8cb87c0d4560033de0eefb87ccd93 gcc/te *** 57348,57353 **** --- 57803,57809 ---- 4d184b91375f44c5b92a49fa87c9a38e gcc/testsuite/gfortran.dg/spread_scalar_source.f90 1d00f5b498cd877e60af5bf7a6780831 gcc/testsuite/gfortran.dg/spread_shape_1.f90 4a6636fb35b05d54b152a2bb04221e10 gcc/testsuite/gfortran.dg/spread_size_limit.f90 + c8b716cee316206a2cc9482d0e553937 gcc/testsuite/gfortran.dg/spread_size_limit_2.f90 660cebcc8ffff86cb4ccb16d81f894fb gcc/testsuite/gfortran.dg/spread_zerosize_1.f90 c261a331f783e0e77510fea0a4181472 gcc/testsuite/gfortran.dg/stat_1.f90 3fe235d1f1fd3811931f6728caac65ba gcc/testsuite/gfortran.dg/stat_2.f90 *************** ce5a21a69bff33360348e98834eb26dd gcc/te *** 57382,57387 **** --- 57838,57844 ---- 809108ab99d66e4cd3c97f5907f5e42d gcc/testsuite/gfortran.dg/streamio_15.f90 5c471a5a2baacf7f5d3e95c36897d15f gcc/testsuite/gfortran.dg/streamio_16.f90 c6e6702db98bfd0226defb828dc129a4 gcc/testsuite/gfortran.dg/streamio_17.f90 + 8ebdb4c891eb318f95a6a53df8df8d8f gcc/testsuite/gfortran.dg/streamio_18.f90 30fbe8f82f3ae117749d33f0cbecb0f9 gcc/testsuite/gfortran.dg/streamio_2.f90 ecc66620574916f4b154ee3802866490 gcc/testsuite/gfortran.dg/streamio_3.f90 ab6b23d963a5b8985972c2fa89516a18 gcc/testsuite/gfortran.dg/streamio_4.f90 *************** dccf53db514265c48f2c92d1e6aa8319 gcc/te *** 57474,57480 **** --- 57931,57939 ---- 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 + d70c4e1e8f42a46a15e94a00e17aa3c6 gcc/testsuite/gfortran.dg/substr_simplify.f90 a925dc24dc88f988a2c3d72d6db706b6 gcc/testsuite/gfortran.dg/substring_equivalence.f90 84bf7759315587d026e1a8e2d80563a7 gcc/testsuite/gfortran.dg/substring_integer_index.f90 84e210a9e07675721302c604b7c706f8 gcc/testsuite/gfortran.dg/sum_init_expr.f03 *************** fdabd8c65dcb8fb1bfe06c29c937c219 gcc/te *** 57514,57519 **** --- 57973,57979 ---- 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 76406e3436f42466e7735ed9f5762bd7 gcc/testsuite/gfortran.dg/transfer_class_1.f90 7f1199fe5fa90085dcbb4f81cbcf7062 gcc/testsuite/gfortran.dg/transfer_class_2.f90 dc67674921059cc6c14a48ba9f6e8515 gcc/testsuite/gfortran.dg/transfer_hollerith_1.f90 *************** fca7571238596b88ba0b767cd69041d7 gcc/te *** 57531,57536 **** --- 57991,57997 ---- 30d8f168d50a2e4c7035918791efd17a 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 *************** aca4fbb65d8aa4cc8ec405a43a78098c gcc/te *** 57546,57552 **** 478c89f389bf3278481bc92533e8e66c gcc/testsuite/gfortran.dg/transpose_conjg_1.f90 3cf036b7034efaa23bd3d26ca8cf3283 gcc/testsuite/gfortran.dg/transpose_intrinsic_func_call_1.f90 85db2a6cf6ca2d6c94792c2d028ff272 gcc/testsuite/gfortran.dg/transpose_optimization_1.f90 ! 0183f1f27db7f01b77f107cb71a2b9f8 gcc/testsuite/gfortran.dg/transpose_optimization_2.f90 32ed89d0a0d70ae9ee467c7ecd483ca3 gcc/testsuite/gfortran.dg/transpose_reshape_r10.f90 250cd83d324826e163003cc65309e6c3 gcc/testsuite/gfortran.dg/trim_1.f90 f7b65ba4a0bca5d191b122de209dc237 gcc/testsuite/gfortran.dg/trim_optimize_1.f90 --- 58007,58013 ---- 478c89f389bf3278481bc92533e8e66c gcc/testsuite/gfortran.dg/transpose_conjg_1.f90 3cf036b7034efaa23bd3d26ca8cf3283 gcc/testsuite/gfortran.dg/transpose_intrinsic_func_call_1.f90 85db2a6cf6ca2d6c94792c2d028ff272 gcc/testsuite/gfortran.dg/transpose_optimization_1.f90 ! 358cd12cdc753d32fd54c9213d9dedea gcc/testsuite/gfortran.dg/transpose_optimization_2.f90 32ed89d0a0d70ae9ee467c7ecd483ca3 gcc/testsuite/gfortran.dg/transpose_reshape_r10.f90 250cd83d324826e163003cc65309e6c3 gcc/testsuite/gfortran.dg/trim_1.f90 f7b65ba4a0bca5d191b122de209dc237 gcc/testsuite/gfortran.dg/trim_optimize_1.f90 *************** c9aa879c6243649372231ee73da80c1e gcc/te *** 57942,57947 **** --- 58403,58409 ---- 15fa84e625f28950bc33d8fb0e272b85 gcc/testsuite/gfortran.dg/warn_concat.f90 660f5862b298d573d0321c73779e592e gcc/testsuite/gfortran.dg/warn_conversion.f90 00a4641c6351986a62b8f159ce6f9439 gcc/testsuite/gfortran.dg/warn_conversion_10.f90 + 77594e02b3df3882dd2d9f120c38d247 gcc/testsuite/gfortran.dg/warn_conversion_11.f90 f0b0e40083e166f0ec356c0f059cdb13 gcc/testsuite/gfortran.dg/warn_conversion_2.f90 fb059aee8dd3ce08978867270c115969 gcc/testsuite/gfortran.dg/warn_conversion_3.f90 a6384af219923cae21fd5bb664966ed6 gcc/testsuite/gfortran.dg/warn_conversion_4.f90 *************** faef1baec47674d096569b4803422d64 gcc/te *** 57966,57971 **** --- 58428,58434 ---- 9cdfca84c19b8b4bfd5f9be4a921f068 gcc/testsuite/gfortran.dg/warn_unused_dummy_argument_2.f90 62c8995bb923620e3509b9bd179b618c gcc/testsuite/gfortran.dg/warn_unused_dummy_argument_3.f90 fa2d697a6cf010eb6e082b1cf14cfb0a gcc/testsuite/gfortran.dg/warn_unused_dummy_argument_4.f90 + 1d37c013db4796b65d121229b6e04f40 gcc/testsuite/gfortran.dg/warn_unused_dummy_argument_5.f90 a889821a76a43cd0bc42032f92d62143 gcc/testsuite/gfortran.dg/warn_unused_function.f90 babf649d09171c4fca19c8092348ee07 gcc/testsuite/gfortran.dg/warn_unused_function_2.f90 ae95981491a9741922c27b078d9a628c gcc/testsuite/gfortran.dg/warn_unused_function_3.f90 *************** fdc5c0f5bfa9d58cdbb7272feaecb4af gcc/te *** 58014,58020 **** 70c32c74c38503b11d76209ea975e9c6 gcc/testsuite/gfortran.dg/whole_file_27.f90 ddf222fc2848fa957e7eafad525da8cf gcc/testsuite/gfortran.dg/whole_file_28.f90 778a633219af44fd7b4bc705c65ec21d gcc/testsuite/gfortran.dg/whole_file_29.f90 ! 259df12b5cdf16785e9988be7ab29d1d gcc/testsuite/gfortran.dg/whole_file_3.f90 b7d9cdec49b9afb853813b5a2ff7f5f1 gcc/testsuite/gfortran.dg/whole_file_30.f90 432f4a4ea6314fb586cbe60e7e00b992 gcc/testsuite/gfortran.dg/whole_file_31.f90 718adbcddbaba5cba08cb65b9205bf0d gcc/testsuite/gfortran.dg/whole_file_32.f90 --- 58477,58483 ---- 70c32c74c38503b11d76209ea975e9c6 gcc/testsuite/gfortran.dg/whole_file_27.f90 ddf222fc2848fa957e7eafad525da8cf gcc/testsuite/gfortran.dg/whole_file_28.f90 778a633219af44fd7b4bc705c65ec21d gcc/testsuite/gfortran.dg/whole_file_29.f90 ! aa5730f748bcb341ebf32527d2a991dc gcc/testsuite/gfortran.dg/whole_file_3.f90 b7d9cdec49b9afb853813b5a2ff7f5f1 gcc/testsuite/gfortran.dg/whole_file_30.f90 432f4a4ea6314fb586cbe60e7e00b992 gcc/testsuite/gfortran.dg/whole_file_31.f90 718adbcddbaba5cba08cb65b9205bf0d gcc/testsuite/gfortran.dg/whole_file_32.f90 *************** d9ed5d8d94cefc81f6e8f1e096e44c85 gcc/te *** 59170,59175 **** --- 59633,59642 ---- fa0a217ef7773f18e2100deca65155e8 gcc/testsuite/gnat.dg/lto22_pkg1.ads 42c63ff6c62141b282c3de6014c66376 gcc/testsuite/gnat.dg/lto22_pkg2.adb 57519860c7ff9212e8c352b54168aebc gcc/testsuite/gnat.dg/lto22_pkg2.ads + 63d4886915d7f10386bf9acb4c27545a gcc/testsuite/gnat.dg/lto24.adb + 800283c5dd0dcc98963845af2f46f5b1 gcc/testsuite/gnat.dg/lto24_pkg1.ads + 6cc6cb14bbcba172d4f4eeb357613237 gcc/testsuite/gnat.dg/lto24_pkg2.adb + 14d0b11f260b0d1752208a98b741658a gcc/testsuite/gnat.dg/lto24_pkg2.ads 2acb4cc31994f1569a3db6ac6613928d gcc/testsuite/gnat.dg/lto4.adb 9b38247c8e825c514f87e2965d931dad gcc/testsuite/gnat.dg/lto4.ads 959fb8bdf4cd1c34347ecfbab19ea60b gcc/testsuite/gnat.dg/lto5.adb *************** d16b401f2569252322b029a9d9d46660 gcc/te *** 59405,59410 **** --- 59872,59884 ---- 171652ff2445bf77470aad3b1813c128 gcc/testsuite/gnat.dg/opt75_pkg.adb 9e51efca60984c35df4c64350a47bff5 gcc/testsuite/gnat.dg/opt75_pkg.ads 90baaf4f1b57f6747f43b4610fe3607e gcc/testsuite/gnat.dg/opt76.adb + d1bcfaeaae0a6dbe3248535b956be6d7 gcc/testsuite/gnat.dg/opt77.adb + 1ce7614297d8a27ea8c22d1efc301918 gcc/testsuite/gnat.dg/opt77_pkg.adb + 11b5c5bc594e85bc8913acab363de886 gcc/testsuite/gnat.dg/opt77_pkg.ads + e5a3ed1e22544fabd7373b9901867e8d gcc/testsuite/gnat.dg/opt78.adb + adc1ab66941bc2e3b9b25c8018243b94 gcc/testsuite/gnat.dg/opt78.ads + 28f8a31ef39e342b6fe77d5ca75e672a gcc/testsuite/gnat.dg/opt79.adb + fe74354507a5e664cd6533def9371a61 gcc/testsuite/gnat.dg/opt79.ads 81951fc84d3d36131be8aca4f80c113b gcc/testsuite/gnat.dg/opt7_pkg.ads 9df643a09a85f1f88656c303fed9ef56 gcc/testsuite/gnat.dg/opt8.adb 328d673eb1b44dc8fd4fcd430ebc2ddf gcc/testsuite/gnat.dg/opt8.ads *************** db9002fdffbd11c6e835ef0c4498b353 gcc/te *** 59625,59630 **** --- 60099,60109 ---- 618e7c90ac781c992b7ebddc98d98640 gcc/testsuite/gnat.dg/specs/array1.ads abe14a1ac8ff19714a07b9e460b5fa25 gcc/testsuite/gnat.dg/specs/array2.ads 14136d47dc533d20d89e8d5247fcfc0b gcc/testsuite/gnat.dg/specs/array3.ads + 5c542287a15abeb4725c59aa2130eed2 gcc/testsuite/gnat.dg/specs/array4.ads + 57678da02b32a8c9d3600d402756ff1d gcc/testsuite/gnat.dg/specs/array5.ads + 8a35e508f92ae8cfc2bf7f553c3a11da gcc/testsuite/gnat.dg/specs/array5_pkg1.ads + 65f73b5444cd39e6751236739aa9ae10 gcc/testsuite/gnat.dg/specs/array5_pkg2-g.ads + 0b740b5110495d8d3401e65ea953524e gcc/testsuite/gnat.dg/specs/array5_pkg2.ads 18531dc960411dab820aa7279791f03a gcc/testsuite/gnat.dg/specs/array_no_def_init.ads 2d9efbd53366881b4d205fa4d00c2cc9 gcc/testsuite/gnat.dg/specs/atomic1.ads 636354bb2ccefb57f0e24237c3cc5727 gcc/testsuite/gnat.dg/specs/atomic2.ads *************** a4163ebad9ef247ba8b7b1254fd6d607 gcc/te *** 59994,59999 **** --- 60473,60479 ---- 51d39366d7755a33c9ff787d8568f480 gcc/testsuite/gnat.dg/unchecked_convert10.adb 8f01f788b80bedc6e97ff8cf3cdb7dea gcc/testsuite/gnat.dg/unchecked_convert11.adb 5cf6fa7f6f3b4166ca6c74f38d58c7bb gcc/testsuite/gnat.dg/unchecked_convert12.adb + db83ca8da3226bea725ce43acaee8ba1 gcc/testsuite/gnat.dg/unchecked_convert13.adb e0b42cd0bffe14a0454e6947c1576b0d gcc/testsuite/gnat.dg/unchecked_convert2.adb ab71b7c411a24b92bc4692458e82095e gcc/testsuite/gnat.dg/unchecked_convert3.adb d11f3831351000de17c86545b36e9825 gcc/testsuite/gnat.dg/unchecked_convert4.adb *************** a708f9e3767ed1076dcbe9bf9202276f gcc/te *** 61428,61434 **** d92cb3e1ca384ebd58aaa338e2ea20ea gcc/testsuite/lib/plugin-support.exp 32b31bdb6b5fc80de3de9971550aecd0 gcc/testsuite/lib/profopt.exp 7552821ef1b74c74838216d6469987ee gcc/testsuite/lib/prune.exp ! b5bfbe74c3d87ea643e58b43da042805 gcc/testsuite/lib/scanasm.exp c2081b5aed4c76bfaae467387f62438a gcc/testsuite/lib/scandump.exp 04ca404890233243eb647c6bf77e4a24 gcc/testsuite/lib/scanipa.exp ddefd72c6263d00ab5296309ca73181b gcc/testsuite/lib/scanlang.exp --- 61908,61914 ---- d92cb3e1ca384ebd58aaa338e2ea20ea gcc/testsuite/lib/plugin-support.exp 32b31bdb6b5fc80de3de9971550aecd0 gcc/testsuite/lib/profopt.exp 7552821ef1b74c74838216d6469987ee gcc/testsuite/lib/prune.exp ! e848558218a209090983820db372f6ff gcc/testsuite/lib/scanasm.exp c2081b5aed4c76bfaae467387f62438a gcc/testsuite/lib/scandump.exp 04ca404890233243eb647c6bf77e4a24 gcc/testsuite/lib/scanipa.exp ddefd72c6263d00ab5296309ca73181b gcc/testsuite/lib/scanlang.exp *************** d4f13cbd7469ff86299e34adc8f06bea gcc/te *** 61436,61442 **** 8a317f68f0d1e94ff7dbdfcfbe8ae0fb gcc/testsuite/lib/scantree.exp 07ca5814aec67eb6ed534d9dd52f3eec gcc/testsuite/lib/target-libpath.exp 5682b9a0ff87b238280adf3fe197e404 gcc/testsuite/lib/target-supports-dg.exp ! 3349879f5169417750a1a5ff94a5d0ff gcc/testsuite/lib/target-supports.exp a9d44f9fd714411fce92289acdd8488b gcc/testsuite/lib/target-utils.exp 9e059b60a69a5b27cfcdacb9d4a2395e gcc/testsuite/lib/timeout-dg.exp 625975eac95de5690fe871409e0458aa gcc/testsuite/lib/timeout.exp --- 61916,61922 ---- 8a317f68f0d1e94ff7dbdfcfbe8ae0fb gcc/testsuite/lib/scantree.exp 07ca5814aec67eb6ed534d9dd52f3eec gcc/testsuite/lib/target-libpath.exp 5682b9a0ff87b238280adf3fe197e404 gcc/testsuite/lib/target-supports-dg.exp ! feb4c8a818b1c4225b98cd47adefaf96 gcc/testsuite/lib/target-supports.exp a9d44f9fd714411fce92289acdd8488b gcc/testsuite/lib/target-utils.exp 9e059b60a69a5b27cfcdacb9d4a2395e gcc/testsuite/lib/timeout-dg.exp 625975eac95de5690fe871409e0458aa gcc/testsuite/lib/timeout.exp *************** ac0b35dcfcf72480c040349b2b8a874b gcc/te *** 61499,61505 **** 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 ! cca9a4ce8eba1acccfd6ad6cb92b40e7 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 --- 61979,61985 ---- 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 ! 4e97c54d7299a5d421e1a64c670f075c 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 *************** b93884370065d3c94f7fc005e43f7756 gcc/te *** 61556,61562 **** 000a9198807c2e4ce1ba284e1a6e79ed gcc/testsuite/obj-c++.dg/gnu-runtime-3.mm a19c2dad4a197a57d5e1bd9cd0135705 gcc/testsuite/obj-c++.dg/invalid-method-2.mm 9c81b01209a656cc36ac861574867c96 gcc/testsuite/obj-c++.dg/invalid-type-1.mm ! f8e8a6e463c96943e1055a954a109c82 gcc/testsuite/obj-c++.dg/isa-field-1.mm de4ec57b2d55fc5567fd5f9b20445ea0 gcc/testsuite/obj-c++.dg/ivar-invalid-type-1.mm e9e1c689bbfe17a7c0ca833caf159485 gcc/testsuite/obj-c++.dg/ivar-list-semi.mm 866b783936346966eabc68e8d5f4e78f gcc/testsuite/obj-c++.dg/ivar-problem-1.mm --- 62036,62042 ---- 000a9198807c2e4ce1ba284e1a6e79ed gcc/testsuite/obj-c++.dg/gnu-runtime-3.mm a19c2dad4a197a57d5e1bd9cd0135705 gcc/testsuite/obj-c++.dg/invalid-method-2.mm 9c81b01209a656cc36ac861574867c96 gcc/testsuite/obj-c++.dg/invalid-type-1.mm ! 9aa795d86a9b5053208440819dc1082c gcc/testsuite/obj-c++.dg/isa-field-1.mm de4ec57b2d55fc5567fd5f9b20445ea0 gcc/testsuite/obj-c++.dg/ivar-invalid-type-1.mm e9e1c689bbfe17a7c0ca833caf159485 gcc/testsuite/obj-c++.dg/ivar-list-semi.mm 866b783936346966eabc68e8d5f4e78f gcc/testsuite/obj-c++.dg/ivar-problem-1.mm *************** b6a4bff612a08ec461838ac1b3bd23f1 gcc/te *** 61606,61612 **** 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 ! e415aeb15f15e2eedb7356be8f6a959e gcc/testsuite/obj-c++.dg/objc-gc-3.mm bd3b42583db47ebcc7fac037f85f00ed gcc/testsuite/obj-c++.dg/overload-1.mm 1cfb07f2eb35f604a99dcbe63a567416 gcc/testsuite/obj-c++.dg/plugin/diagnostic-test-expressions-1.mm 37471f00c435e2be34b4817d8e9407fb gcc/testsuite/obj-c++.dg/plugin/plugin.exp --- 62086,62092 ---- 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 ! 89a8d8bbc4cfd9231f6b6ff845399672 gcc/testsuite/obj-c++.dg/objc-gc-3.mm bd3b42583db47ebcc7fac037f85f00ed gcc/testsuite/obj-c++.dg/overload-1.mm 1cfb07f2eb35f604a99dcbe63a567416 gcc/testsuite/obj-c++.dg/plugin/diagnostic-test-expressions-1.mm 37471f00c435e2be34b4817d8e9407fb gcc/testsuite/obj-c++.dg/plugin/plugin.exp *************** e9acacfeddf9f5b3fcc7bd49ae2063e8 gcc/te *** 61713,61719 **** 1dc4342beadfe6f7bc0c6e08dd15ce24 gcc/testsuite/obj-c++.dg/proto-lossage-4.mm 40b981421154ac96e17299bce5569949 gcc/testsuite/obj-c++.dg/proto-lossage-5.mm fd29bc4e26ebfbde2219d16bcd57ff44 gcc/testsuite/obj-c++.dg/proto-lossage-6.mm ! 6975286133171cd693b6f659097de913 gcc/testsuite/obj-c++.dg/proto-lossage-7.mm 4cd57b67eb48bda4d17d7be6cbbf3651 gcc/testsuite/obj-c++.dg/proto-qual-1.mm cf4aa34add213bab910de4918a4bb01d gcc/testsuite/obj-c++.dg/protocol-forward-1.mm 30d24d440a6063d356f6a53af5141ba5 gcc/testsuite/obj-c++.dg/protocol-forward-2.mm --- 62193,62199 ---- 1dc4342beadfe6f7bc0c6e08dd15ce24 gcc/testsuite/obj-c++.dg/proto-lossage-4.mm 40b981421154ac96e17299bce5569949 gcc/testsuite/obj-c++.dg/proto-lossage-5.mm fd29bc4e26ebfbde2219d16bcd57ff44 gcc/testsuite/obj-c++.dg/proto-lossage-6.mm ! eae4cc9bd17a2b79453bdeeec666557b gcc/testsuite/obj-c++.dg/proto-lossage-7.mm 4cd57b67eb48bda4d17d7be6cbbf3651 gcc/testsuite/obj-c++.dg/proto-qual-1.mm cf4aa34add213bab910de4918a4bb01d gcc/testsuite/obj-c++.dg/protocol-forward-1.mm 30d24d440a6063d356f6a53af5141ba5 gcc/testsuite/obj-c++.dg/protocol-forward-2.mm *************** caaf3448e346d63b2c9d138c397e34ea gcc/te *** 61722,61728 **** 5e94c540e8c80f67f410219fbbb8290c gcc/testsuite/obj-c++.dg/protocol-optional-1.mm 92402d5d0ed140a870d7d3438040c1fa gcc/testsuite/obj-c++.dg/protocol-qualifier-1.mm 3acfbf9e5283f39582515ae6ee0f8bcc gcc/testsuite/obj-c++.dg/protocol-qualifier-2.mm ! b9c660822a38aa2cdfe0b52e7d3afeca gcc/testsuite/obj-c++.dg/qual-types-1.mm 1a1c40979049410f20a8586a0ba7d7bd gcc/testsuite/obj-c++.dg/selector-1.mm 9279cef4a3631f9e5ab0c052ea83de89 gcc/testsuite/obj-c++.dg/selector-2.mm daf831313c6bd7f1fd5054f723b79a65 gcc/testsuite/obj-c++.dg/selector-3.mm --- 62202,62208 ---- 5e94c540e8c80f67f410219fbbb8290c gcc/testsuite/obj-c++.dg/protocol-optional-1.mm 92402d5d0ed140a870d7d3438040c1fa gcc/testsuite/obj-c++.dg/protocol-qualifier-1.mm 3acfbf9e5283f39582515ae6ee0f8bcc gcc/testsuite/obj-c++.dg/protocol-qualifier-2.mm ! 6e84ef17eb796596422af8c47eab548d gcc/testsuite/obj-c++.dg/qual-types-1.mm 1a1c40979049410f20a8586a0ba7d7bd gcc/testsuite/obj-c++.dg/selector-1.mm 9279cef4a3631f9e5ab0c052ea83de89 gcc/testsuite/obj-c++.dg/selector-2.mm daf831313c6bd7f1fd5054f723b79a65 gcc/testsuite/obj-c++.dg/selector-3.mm *************** c7256230d1e3f8e9c93d3614935b69bc gcc/te *** 61732,61756 **** 9359d93417f401fddd8bdbb1bd3bae20 gcc/testsuite/obj-c++.dg/selector-warn-1.mm d2caa0c9e2ed2954ba9e33d87f726293 gcc/testsuite/obj-c++.dg/set-not-used-1.mm f0ce3863165308c6c7b05b1e48b6231d gcc/testsuite/obj-c++.dg/standard-headers.mm ! 4c5901302ebb869ad2843e5bd9b59f85 gcc/testsuite/obj-c++.dg/strings/const-cfstring-2.mm ! 944b45f8bae04534787888f64340973c gcc/testsuite/obj-c++.dg/strings/const-cfstring-5.mm 21b76d31bad8ab2bce32ce3f5fceff78 gcc/testsuite/obj-c++.dg/strings/const-str-1.mm ! 88a204f313d69410fede9a1fadead584 gcc/testsuite/obj-c++.dg/strings/const-str-12.mm 71d1ca70f87be11f4325a5b06987bb9b gcc/testsuite/obj-c++.dg/strings/const-str-2.mm c2f326ebd57afc69cfee9d8f6b441323 gcc/testsuite/obj-c++.dg/strings/const-str-5.mm a9aabe53382bdf1de0612f8bcf7ef0eb gcc/testsuite/obj-c++.dg/strings/const-str-6.mm 4a89061dc402adc311f94d3659a6eaa2 gcc/testsuite/obj-c++.dg/strings/strings-1.mm acda44b06216ac119f6bf3a2e4b8cb98 gcc/testsuite/obj-c++.dg/strings/strings-2.mm 27d43539135f45463462f9f8179c085b gcc/testsuite/obj-c++.dg/strings/strings.exp ! 581ec601f0a03f162804a727e94271f1 gcc/testsuite/obj-c++.dg/stubify-1.mm ! 7158cf8b003c2491d8aaa20750064528 gcc/testsuite/obj-c++.dg/stubify-2.mm 0827dd859e38ad893f65d76bf7a5b5e1 gcc/testsuite/obj-c++.dg/super-class-1.mm 348dead166b98af1745eea549652a4e0 gcc/testsuite/obj-c++.dg/super-class-2.mm 5f7cf7eb1290cd0ac7cc810aca461fcb gcc/testsuite/obj-c++.dg/super-dealloc-1.mm 43c780cbecdb5565a2bda8b0795d5cf8 gcc/testsuite/obj-c++.dg/super-dealloc-2.mm 6d77d7810e6a1711e9c3e10911fdf7f5 gcc/testsuite/obj-c++.dg/sync-2.mm c1db611d2e6bb0f9226c7b773e41bec6 gcc/testsuite/obj-c++.dg/sync-3.mm ! 7539455b61449559a26b90acb57c727d gcc/testsuite/obj-c++.dg/syntax-error-1.mm 76c552ffde73821d35ce37029bf52fb7 gcc/testsuite/obj-c++.dg/syntax-error-10.mm fcc3247af976d648bb2eb1348d0828a8 gcc/testsuite/obj-c++.dg/syntax-error-2.mm 6090398b844ba0e695f8af2946ade6c8 gcc/testsuite/obj-c++.dg/syntax-error-3.mm --- 62212,62236 ---- 9359d93417f401fddd8bdbb1bd3bae20 gcc/testsuite/obj-c++.dg/selector-warn-1.mm d2caa0c9e2ed2954ba9e33d87f726293 gcc/testsuite/obj-c++.dg/set-not-used-1.mm f0ce3863165308c6c7b05b1e48b6231d gcc/testsuite/obj-c++.dg/standard-headers.mm ! 7e38b7f41e74e8e27b3445e6b2742b38 gcc/testsuite/obj-c++.dg/strings/const-cfstring-2.mm ! 0c2da165989aa0dcb159a4c853f22f0c gcc/testsuite/obj-c++.dg/strings/const-cfstring-5.mm 21b76d31bad8ab2bce32ce3f5fceff78 gcc/testsuite/obj-c++.dg/strings/const-str-1.mm ! 9219f4c10d317f25c9ea0169dd8103d3 gcc/testsuite/obj-c++.dg/strings/const-str-12.mm 71d1ca70f87be11f4325a5b06987bb9b gcc/testsuite/obj-c++.dg/strings/const-str-2.mm c2f326ebd57afc69cfee9d8f6b441323 gcc/testsuite/obj-c++.dg/strings/const-str-5.mm a9aabe53382bdf1de0612f8bcf7ef0eb gcc/testsuite/obj-c++.dg/strings/const-str-6.mm 4a89061dc402adc311f94d3659a6eaa2 gcc/testsuite/obj-c++.dg/strings/strings-1.mm acda44b06216ac119f6bf3a2e4b8cb98 gcc/testsuite/obj-c++.dg/strings/strings-2.mm 27d43539135f45463462f9f8179c085b gcc/testsuite/obj-c++.dg/strings/strings.exp ! 054e0ceae2ad0ae2533b291b1f1d50ab gcc/testsuite/obj-c++.dg/stubify-1.mm ! 562d9abba7e00b15773964756d58bb73 gcc/testsuite/obj-c++.dg/stubify-2.mm 0827dd859e38ad893f65d76bf7a5b5e1 gcc/testsuite/obj-c++.dg/super-class-1.mm 348dead166b98af1745eea549652a4e0 gcc/testsuite/obj-c++.dg/super-class-2.mm 5f7cf7eb1290cd0ac7cc810aca461fcb gcc/testsuite/obj-c++.dg/super-dealloc-1.mm 43c780cbecdb5565a2bda8b0795d5cf8 gcc/testsuite/obj-c++.dg/super-dealloc-2.mm 6d77d7810e6a1711e9c3e10911fdf7f5 gcc/testsuite/obj-c++.dg/sync-2.mm c1db611d2e6bb0f9226c7b773e41bec6 gcc/testsuite/obj-c++.dg/sync-3.mm ! ba3476a2e316e27a60e763e08de4047c gcc/testsuite/obj-c++.dg/syntax-error-1.mm 76c552ffde73821d35ce37029bf52fb7 gcc/testsuite/obj-c++.dg/syntax-error-10.mm fcc3247af976d648bb2eb1348d0828a8 gcc/testsuite/obj-c++.dg/syntax-error-2.mm 6090398b844ba0e695f8af2946ade6c8 gcc/testsuite/obj-c++.dg/syntax-error-3.mm *************** d951d115e8add5e2e78e8e2e56aebc7f gcc/te *** 61782,61797 **** 7212556766805451a098e554a8ab648e gcc/testsuite/obj-c++.dg/tls/trivial.m 1131c9137e46b5311c2d803288f2e4d0 gcc/testsuite/obj-c++.dg/too-many-args.mm f597ed597da282f891b8ffceb585991a gcc/testsuite/obj-c++.dg/torture/dg-torture.exp ! 1f7b520d7df4159bcf567388c99dd690 gcc/testsuite/obj-c++.dg/torture/strings/const-cfstring-1.mm e42495f1f3ad6ec8f920137751c3f8f7 gcc/testsuite/obj-c++.dg/torture/strings/const-cfstring-3.mm d2c0463e1e05d168d9d004c74cec0610 gcc/testsuite/obj-c++.dg/torture/strings/const-cfstring-4.mm ! 3f540974a4f92e1b3375aa8bcbca7e8c gcc/testsuite/obj-c++.dg/torture/strings/const-str-10.mm ! bc7815bb9a08dccb57fe4e22b74eb729 gcc/testsuite/obj-c++.dg/torture/strings/const-str-11.mm 78b70f1aad125fecbbe161087e6dbc54 gcc/testsuite/obj-c++.dg/torture/strings/const-str-3.mm 3b2c597aefd84853b16f8cd8438ff907 gcc/testsuite/obj-c++.dg/torture/strings/const-str-4.mm 71862e2dfd32f32cc37bc2b6300c0cab gcc/testsuite/obj-c++.dg/torture/strings/const-str-7.mm 69c47926ef31db0bb79c5cd3cea4fa0b gcc/testsuite/obj-c++.dg/torture/strings/const-str-8.mm ! 019ec55674cd5d821fa8a7357a379cfc gcc/testsuite/obj-c++.dg/torture/strings/const-str-9.mm 38bba22e495d1876db60c1ae29146fbe gcc/testsuite/obj-c++.dg/torture/strings/string1.mm 8dd3aed68da5e5d82a5d8b4a4adc4f36 gcc/testsuite/obj-c++.dg/torture/strings/strings.exp 6f6356dbcb53d22602416e8919a2b428 gcc/testsuite/obj-c++.dg/torture/tls/diag-1.mm --- 62262,62277 ---- 7212556766805451a098e554a8ab648e gcc/testsuite/obj-c++.dg/tls/trivial.m 1131c9137e46b5311c2d803288f2e4d0 gcc/testsuite/obj-c++.dg/too-many-args.mm f597ed597da282f891b8ffceb585991a gcc/testsuite/obj-c++.dg/torture/dg-torture.exp ! 18512c71e6c59489aec1ea811d7b29ca gcc/testsuite/obj-c++.dg/torture/strings/const-cfstring-1.mm e42495f1f3ad6ec8f920137751c3f8f7 gcc/testsuite/obj-c++.dg/torture/strings/const-cfstring-3.mm d2c0463e1e05d168d9d004c74cec0610 gcc/testsuite/obj-c++.dg/torture/strings/const-cfstring-4.mm ! 541efcfce4c4c1d5e4fd413e651be954 gcc/testsuite/obj-c++.dg/torture/strings/const-str-10.mm ! 6bbd83dc19102b02dff97c3c7b8e0b1f gcc/testsuite/obj-c++.dg/torture/strings/const-str-11.mm 78b70f1aad125fecbbe161087e6dbc54 gcc/testsuite/obj-c++.dg/torture/strings/const-str-3.mm 3b2c597aefd84853b16f8cd8438ff907 gcc/testsuite/obj-c++.dg/torture/strings/const-str-4.mm 71862e2dfd32f32cc37bc2b6300c0cab gcc/testsuite/obj-c++.dg/torture/strings/const-str-7.mm 69c47926ef31db0bb79c5cd3cea4fa0b gcc/testsuite/obj-c++.dg/torture/strings/const-str-8.mm ! a826eb6d88698556688b1008a86574a6 gcc/testsuite/obj-c++.dg/torture/strings/const-str-9.mm 38bba22e495d1876db60c1ae29146fbe gcc/testsuite/obj-c++.dg/torture/strings/string1.mm 8dd3aed68da5e5d82a5d8b4a4adc4f36 gcc/testsuite/obj-c++.dg/torture/strings/strings.exp 6f6356dbcb53d22602416e8919a2b428 gcc/testsuite/obj-c++.dg/torture/tls/diag-1.mm *************** f1f7032c657f1d2102a3760375786139 gcc/te *** 61801,61807 **** 15c44338c7d7fb6b44ce86f191a67e0b gcc/testsuite/obj-c++.dg/torture/tls/tls.exp 7212556766805451a098e554a8ab648e gcc/testsuite/obj-c++.dg/torture/tls/trivial.mm 94ba53b983b1168f471db7bb452a1c0f gcc/testsuite/obj-c++.dg/torture/trivial.mm ! 0ee0a10f43d74ab7a6dd476560668484 gcc/testsuite/obj-c++.dg/try-catch-1.mm 49889360a17310a94a0d85c87ca03271 gcc/testsuite/obj-c++.dg/try-catch-10.mm 65b30ce3fa7e707247f859f7235dcc28 gcc/testsuite/obj-c++.dg/try-catch-11.mm 0547cf34f9cf4f3a578623b4ceb22a99 gcc/testsuite/obj-c++.dg/try-catch-12.mm --- 62281,62287 ---- 15c44338c7d7fb6b44ce86f191a67e0b gcc/testsuite/obj-c++.dg/torture/tls/tls.exp 7212556766805451a098e554a8ab648e gcc/testsuite/obj-c++.dg/torture/tls/trivial.mm 94ba53b983b1168f471db7bb452a1c0f gcc/testsuite/obj-c++.dg/torture/trivial.mm ! d12d35759dcf7e68cf1f2f74be5f250e gcc/testsuite/obj-c++.dg/try-catch-1.mm 49889360a17310a94a0d85c87ca03271 gcc/testsuite/obj-c++.dg/try-catch-10.mm 65b30ce3fa7e707247f859f7235dcc28 gcc/testsuite/obj-c++.dg/try-catch-11.mm 0547cf34f9cf4f3a578623b4ceb22a99 gcc/testsuite/obj-c++.dg/try-catch-12.mm *************** c4a6f12cba3fe479319845130b67dda9 gcc/te *** 61811,61817 **** 749123fd933ccbf7d2de0ef981fa5ab2 gcc/testsuite/obj-c++.dg/try-catch-16.mm 58a893072e046f31600a1fb4411b6288 gcc/testsuite/obj-c++.dg/try-catch-17.mm 59ff3d087e1f9cb2e8a2e8509e556580 gcc/testsuite/obj-c++.dg/try-catch-2.mm ! 43b5b40eade6043d78005dfce2cdc085 gcc/testsuite/obj-c++.dg/try-catch-3.mm ab26c644da07ff6820be7567e0d98660 gcc/testsuite/obj-c++.dg/try-catch-4.mm f80dc47b629cb94d0cd311a6a7f315f1 gcc/testsuite/obj-c++.dg/try-catch-5.mm f4f1fe6c960ffa81d0cccc1460f1b58a gcc/testsuite/obj-c++.dg/try-catch-6.mm --- 62291,62297 ---- 749123fd933ccbf7d2de0ef981fa5ab2 gcc/testsuite/obj-c++.dg/try-catch-16.mm 58a893072e046f31600a1fb4411b6288 gcc/testsuite/obj-c++.dg/try-catch-17.mm 59ff3d087e1f9cb2e8a2e8509e556580 gcc/testsuite/obj-c++.dg/try-catch-2.mm ! eef49412ec0a3bd9b5061e48b0699ddc gcc/testsuite/obj-c++.dg/try-catch-3.mm ab26c644da07ff6820be7567e0d98660 gcc/testsuite/obj-c++.dg/try-catch-4.mm f80dc47b629cb94d0cd311a6a7f315f1 gcc/testsuite/obj-c++.dg/try-catch-5.mm f4f1fe6c960ffa81d0cccc1460f1b58a gcc/testsuite/obj-c++.dg/try-catch-6.mm *************** cbd8c5394b3188c8a0b698fffb29e761 gcc/te *** 61823,61828 **** --- 62303,62343 ---- 5748db698f0b8ee6bafe285e6df3dc32 gcc/testsuite/obj-c++.dg/warn5.mm 677e021d0f4c6a2c24627bc9093ea7d6 gcc/testsuite/obj-c++.dg/warn6.mm cf1e5660ee1cd060f1bf1da012306d6b gcc/testsuite/obj-c++.dg/warn7.mm + acc13fee5a886f5ea6ca2841da59effe gcc/testsuite/objc-obj-c++-shared/CF-CFString.h + 11d92670c2906d6a6ff898a559b8b9fc gcc/testsuite/objc-obj-c++-shared/F-NSArray.h + d7fcf22c3ed31b17539b9acb07183a26 gcc/testsuite/objc-obj-c++-shared/F-NSAutoreleasePool.h + 8f45c73e7c5775b1214ade32c069ffb4 gcc/testsuite/objc-obj-c++-shared/F-NSObject.h + 6fe1b4da0d636ea9e7ff339f5d788f5c gcc/testsuite/objc-obj-c++-shared/F-NSString.h + 81d7286975fc4f7945939a6f5f27727f gcc/testsuite/objc-obj-c++-shared/F-NSValue.h + f5cd47052262fe168dc6074f5baa871d gcc/testsuite/objc-obj-c++-shared/GNUStep/CoreFoundation/CFArray.h + df22b832fd1cc14252d6af54be4e2abb gcc/testsuite/objc-obj-c++-shared/GNUStep/CoreFoundation/CFAvailability.h + f6312f509cfa047b5f10bffa0664b5f8 gcc/testsuite/objc-obj-c++-shared/GNUStep/CoreFoundation/CFBase.h + ff366f1b6f27a24776e1b04ef8575c79 gcc/testsuite/objc-obj-c++-shared/GNUStep/CoreFoundation/CFCharacterSet.h + b93796d43374fb75c98817ab2d070c2a gcc/testsuite/objc-obj-c++-shared/GNUStep/CoreFoundation/CFData.h + bb366f8c5324fa271b2faf2780fc3d89 gcc/testsuite/objc-obj-c++-shared/GNUStep/CoreFoundation/CFDictionary.h + d99c4c5f8d9ddf7f2c9f6ab6e25a2a9b gcc/testsuite/objc-obj-c++-shared/GNUStep/CoreFoundation/CFLocale.h + 1edd852f3dddf0434acf9cba8ded4136 gcc/testsuite/objc-obj-c++-shared/GNUStep/CoreFoundation/CFString.h + 6f8cd6c02cece30d49c0e12ff9cfa0a9 gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSArray.h + e16387e01018d3d54a2f32822682dac1 gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSAutoreleasePool.h + 4f3dd54a0c640d2b15ee1f79a8f18369 gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSDate.h + 54ffd1bfa79cf5dc99b3df101a7cd2e6 gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSEnumerator.h + 68c1d47ef6919edabb48b6f50f1a237d gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSGeometry.h + dc1b5416df768725686ab6df95dc7a40 gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSObjCRuntime.h + 5696d61d4f4781658d55b84d5095e034 gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSObject.h + 6b38d99bc66484db832fe9f58f7b8c5b gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSRange.h + b029cb9e81a51e8cdb7b9fbfdd1644a8 gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSString.h + 2ced4f29467fa9b3b9c6fbcd7bba5d7d gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSValue.h + d8cf0532b45f771bf4dad006de162370 gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSZone.h + fc876a83da2209b2d6ac280c346f3b68 gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/GNUstep.h + 441214db918256e063a2835c335a0c7d gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/GSBlocks.h + e27796bdadfcc590ea14bdfd2593ce1b gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/GSConfig.h + 705b21cf4d531ccad6b716a5c3de0c38 gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/GSObjCRuntime.h + dc8c5ec7b9abe64c54eabc2d60a81066 gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/GSVersionMacros.h + 3dbb9411c2d6b397d1b9f1da3c06eb09 gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/NSArray+GNUstepBase.h + 5932e7455edfc6960112ad2ac6d02b71 gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/NSMutableString+GNUstepBase.h + 4ab4e247b27f5d3d833cd13973c34222 gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/NSNumber+GNUstepBase.h + a08e081524ab6799e394768da76968d3 gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/NSObject+GNUstepBase.h + ce8c053d2554352e55b35ae330cd5126 gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/NSString+GNUstepBase.h 1aca10b408347876905ccdeb2ec47665 gcc/testsuite/objc-obj-c++-shared/TestsuiteObject.h 08a1d6008be828f1fe9360c7a07244db gcc/testsuite/objc-obj-c++-shared/TestsuiteObject.m ac76ddcf9ed6ab3c92c31559244da096 gcc/testsuite/objc-obj-c++-shared/next-abi.h *************** d41bdbf8fd720cd2fb1c999d1e580ba5 gcc/te *** 61911,61917 **** e8f3db69a8847b70c8bc969edd78dbb2 gcc/testsuite/objc.dg/encode-5.m 1296445554abff012ff56b38392805d1 gcc/testsuite/objc.dg/encode-6-next.m e53ead1c08985bdb0849e450194e9b99 gcc/testsuite/objc.dg/encode-6.m ! 6080da2594c39158f3f4b1344700903b gcc/testsuite/objc.dg/encode-7-next-64bit.m ec0c203eb500e86f1c38d60a10728024 gcc/testsuite/objc.dg/encode-7-next.m 9ab782c949f890c6873d2669830a2e31 gcc/testsuite/objc.dg/encode-7.m 429d40f99aa6566cade774190e6fc983 gcc/testsuite/objc.dg/encode-8.m --- 62426,62432 ---- e8f3db69a8847b70c8bc969edd78dbb2 gcc/testsuite/objc.dg/encode-5.m 1296445554abff012ff56b38392805d1 gcc/testsuite/objc.dg/encode-6-next.m e53ead1c08985bdb0849e450194e9b99 gcc/testsuite/objc.dg/encode-6.m ! ef255acbd6a15fb634d112de0566ec86 gcc/testsuite/objc.dg/encode-7-next-64bit.m ec0c203eb500e86f1c38d60a10728024 gcc/testsuite/objc.dg/encode-7-next.m 9ab782c949f890c6873d2669830a2e31 gcc/testsuite/objc.dg/encode-7.m 429d40f99aa6566cade774190e6fc983 gcc/testsuite/objc.dg/encode-8.m *************** fa1ab496151791f4ef05043e7c0b673c gcc/te *** 61970,61983 **** 75cc55de841b4de6d06a46e13f5f7bfe gcc/testsuite/objc.dg/gnu-runtime-1.m a10c57561f5023d1bc5813fb62b15e8f gcc/testsuite/objc.dg/gnu-runtime-2.m cf495a272fe911f953544354d7af49e2 gcc/testsuite/objc.dg/gnu-runtime-3.m ! 5af5796e26fc687bf55b3d9f3ed9238f gcc/testsuite/objc.dg/headers.m f1920dcb3d447ac1425163a2d1e6c0d2 gcc/testsuite/objc.dg/id-1.m ! c6f4519ae7cdde25ce603a24cab9f418 gcc/testsuite/objc.dg/image-info.m f642d96cba4255caca5622eae71014c4 gcc/testsuite/objc.dg/incomplete-type-1.m 7965f2dab76d401f8398a30bcae85653 gcc/testsuite/objc.dg/invalid-method-1.m 172bebf6092a27228381556a110f96cb gcc/testsuite/objc.dg/invalid-method-2.m cfd869df9840f625e801db2e67f1e182 gcc/testsuite/objc.dg/invalid-type-1.m ! f8e8a6e463c96943e1055a954a109c82 gcc/testsuite/objc.dg/isa-field-1.m 55075563ae55f61bfee5e587702549a9 gcc/testsuite/objc.dg/ivar-extra-semicolon.m 27b57b11e7787adb45c687e6d7a063bc gcc/testsuite/objc.dg/ivar-invalid-type-1.m 642cb67d94deb494988c902d20ef41d6 gcc/testsuite/objc.dg/ivar-problem-1.m --- 62485,62499 ---- 75cc55de841b4de6d06a46e13f5f7bfe gcc/testsuite/objc.dg/gnu-runtime-1.m a10c57561f5023d1bc5813fb62b15e8f gcc/testsuite/objc.dg/gnu-runtime-2.m cf495a272fe911f953544354d7af49e2 gcc/testsuite/objc.dg/gnu-runtime-3.m ! 6610c198e68db214bca9de5a0f6cfdec gcc/testsuite/objc.dg/headers.m f1920dcb3d447ac1425163a2d1e6c0d2 gcc/testsuite/objc.dg/id-1.m ! 697c9889104dbd42200e3eaeb739692d gcc/testsuite/objc.dg/image-info.m f642d96cba4255caca5622eae71014c4 gcc/testsuite/objc.dg/incomplete-type-1.m + aa8ef11d7fa1e8fe899b665ebe7a4f23 gcc/testsuite/objc.dg/instancetype-0.m 7965f2dab76d401f8398a30bcae85653 gcc/testsuite/objc.dg/invalid-method-1.m 172bebf6092a27228381556a110f96cb gcc/testsuite/objc.dg/invalid-method-2.m cfd869df9840f625e801db2e67f1e182 gcc/testsuite/objc.dg/invalid-type-1.m ! 9ad91bf3e53fa36e2556a5ddd4eb378e gcc/testsuite/objc.dg/isa-field-1.m 55075563ae55f61bfee5e587702549a9 gcc/testsuite/objc.dg/ivar-extra-semicolon.m 27b57b11e7787adb45c687e6d7a063bc gcc/testsuite/objc.dg/ivar-invalid-type-1.m 642cb67d94deb494988c902d20ef41d6 gcc/testsuite/objc.dg/ivar-problem-1.m *************** a0a34ff20eea5cde5cc34cb5d51d4e4f gcc/te *** 62018,62024 **** 9153d82237cc99af905bfcb58426980b gcc/testsuite/objc.dg/method-3.m 1857e378233cbdb0ef09315d0ee04fc9 gcc/testsuite/objc.dg/method-4.m 8f76938d87b469c207104bcf02c7f39b gcc/testsuite/objc.dg/method-5.m ! cc0bfd17577d76434dbf0c4690d50b55 gcc/testsuite/objc.dg/method-6.m 1d4f49a7f4d9f57ba0929cecbd7a7f28 gcc/testsuite/objc.dg/method-7.m 172164daa5b2292983d23e0e5d5a94eb gcc/testsuite/objc.dg/method-8.m b534c3ae3ab49fe3be9e7560d558fdf3 gcc/testsuite/objc.dg/method-9.m --- 62534,62540 ---- 9153d82237cc99af905bfcb58426980b gcc/testsuite/objc.dg/method-3.m 1857e378233cbdb0ef09315d0ee04fc9 gcc/testsuite/objc.dg/method-4.m 8f76938d87b469c207104bcf02c7f39b gcc/testsuite/objc.dg/method-5.m ! fca76256e166f37586eb06f56a9f0622 gcc/testsuite/objc.dg/method-6.m 1d4f49a7f4d9f57ba0929cecbd7a7f28 gcc/testsuite/objc.dg/method-7.m 172164daa5b2292983d23e0e5d5a94eb gcc/testsuite/objc.dg/method-8.m b534c3ae3ab49fe3be9e7560d558fdf3 gcc/testsuite/objc.dg/method-9.m *************** ba9c85f123a269332f97289544f0c272 gcc/te *** 62039,62052 **** 1e68654789c238dc1eaf9e923fe49822 gcc/testsuite/objc.dg/naming-6.m ab539e16480243bccd13cb0ab5c05a26 gcc/testsuite/objc.dg/naming-7.m dab2c64c5d57ebdc0ca4b496b1db48a2 gcc/testsuite/objc.dg/next-runtime-1.m ! 7bdacce2d25fc27ed41077ddc1cb6a7e gcc/testsuite/objc.dg/no-extra-load.m 5aa0d8665f3838cd2d663fc71be4933d gcc/testsuite/objc.dg/objc-fast-4.m 6e3afeaf5baf2e68de83a0896e550b27 gcc/testsuite/objc.dg/objc-foreach-1.m d7940785b72ab02856b58bf8b4c3d710 gcc/testsuite/objc.dg/objc-foreach-2.m b0a4bc88be3fcbba334ad86617c9724e gcc/testsuite/objc.dg/objc-foreach-3.m ! 12235d0aec67d729a9f040e360810e9c gcc/testsuite/objc.dg/objc-foreach-4.m ! 3b7013081c6c015d989ef0bde95be007 gcc/testsuite/objc.dg/objc-foreach-5.m ! f531c9a9d8f9e24e5d1b5e0d059e3392 gcc/testsuite/objc.dg/objc-gc-4.m e2b871afc37f1772b337d989244b97c6 gcc/testsuite/objc.dg/objc-nofilename-1.m 6eed5537eae24ed6634c3706c12f2114 gcc/testsuite/objc.dg/param-1.m 8c15bc469e56fdb17a7b24540bf21491 gcc/testsuite/objc.dg/pch/interface-1.hs --- 62555,62568 ---- 1e68654789c238dc1eaf9e923fe49822 gcc/testsuite/objc.dg/naming-6.m ab539e16480243bccd13cb0ab5c05a26 gcc/testsuite/objc.dg/naming-7.m dab2c64c5d57ebdc0ca4b496b1db48a2 gcc/testsuite/objc.dg/next-runtime-1.m ! 46857bb9920377daaab90747aabd7ff3 gcc/testsuite/objc.dg/no-extra-load.m 5aa0d8665f3838cd2d663fc71be4933d gcc/testsuite/objc.dg/objc-fast-4.m 6e3afeaf5baf2e68de83a0896e550b27 gcc/testsuite/objc.dg/objc-foreach-1.m d7940785b72ab02856b58bf8b4c3d710 gcc/testsuite/objc.dg/objc-foreach-2.m 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 ! b4dd9e0cb9ae65f4f31c256f03bc08df gcc/testsuite/objc.dg/objc-gc-4.m e2b871afc37f1772b337d989244b97c6 gcc/testsuite/objc.dg/objc-nofilename-1.m 6eed5537eae24ed6634c3706c12f2114 gcc/testsuite/objc.dg/param-1.m 8c15bc469e56fdb17a7b24540bf21491 gcc/testsuite/objc.dg/pch/interface-1.hs *************** d165610dbbfad82f6af91eab9b66d300 gcc/te *** 62162,62168 **** 2891bbb5e156296e3ee3040d4a7c833e gcc/testsuite/objc.dg/proto-lossage-4.m 40b981421154ac96e17299bce5569949 gcc/testsuite/objc.dg/proto-lossage-5.m d26b84bd4fece35e5ae1ec9a7c6d4f15 gcc/testsuite/objc.dg/proto-lossage-6.m ! 6975286133171cd693b6f659097de913 gcc/testsuite/objc.dg/proto-lossage-7.m 604faba6fd06b505d44d4837836124fa gcc/testsuite/objc.dg/proto-qual-1.m 4afd2785a0050e517e5c3818d2d5ea46 gcc/testsuite/objc.dg/protocol-forward-1.m 30d24d440a6063d356f6a53af5141ba5 gcc/testsuite/objc.dg/protocol-forward-2.m --- 62678,62684 ---- 2891bbb5e156296e3ee3040d4a7c833e gcc/testsuite/objc.dg/proto-lossage-4.m 40b981421154ac96e17299bce5569949 gcc/testsuite/objc.dg/proto-lossage-5.m d26b84bd4fece35e5ae1ec9a7c6d4f15 gcc/testsuite/objc.dg/proto-lossage-6.m ! 43743498fb7683ea796ffd482ace42c9 gcc/testsuite/objc.dg/proto-lossage-7.m 604faba6fd06b505d44d4837836124fa gcc/testsuite/objc.dg/proto-qual-1.m 4afd2785a0050e517e5c3818d2d5ea46 gcc/testsuite/objc.dg/protocol-forward-1.m 30d24d440a6063d356f6a53af5141ba5 gcc/testsuite/objc.dg/protocol-forward-2.m *************** e435b5f971ceb7adfd4ad4a826e98257 gcc/te *** 62197,62222 **** 44c850eb724ab694c1eea579910821bd gcc/testsuite/objc.dg/static-1.m 911d824641cc5460f0bb8428edcd155b gcc/testsuite/objc.dg/stret-1.m 581f8e860f7f1e705a6b0235823fa173 gcc/testsuite/objc.dg/stret-2.m ! 48dbd5e4f3a80cc5653bb873d59cd3b4 gcc/testsuite/objc.dg/strings/const-cfstring-2.m ! 944b45f8bae04534787888f64340973c gcc/testsuite/objc.dg/strings/const-cfstring-5.m 21b76d31bad8ab2bce32ce3f5fceff78 gcc/testsuite/objc.dg/strings/const-str-1.m 24ad853ec86d75ab828e6fc36156ce31 gcc/testsuite/objc.dg/strings/const-str-12.m ! 88a204f313d69410fede9a1fadead584 gcc/testsuite/objc.dg/strings/const-str-12b.m 11e6b8b6d3e9f318be035ef31f291e33 gcc/testsuite/objc.dg/strings/const-str-2.m 2ea7be2c8319bbf91f203eb9e01c5520 gcc/testsuite/objc.dg/strings/const-str-5.m 1b52a4aa3cd0d5062e03b48964ddcb0b gcc/testsuite/objc.dg/strings/const-str-6.m 4a89061dc402adc311f94d3659a6eaa2 gcc/testsuite/objc.dg/strings/strings-1.m 5406714e0710bd54d86b2186d1cb98fa gcc/testsuite/objc.dg/strings/strings-2.m ff654aadda87037110073b4a855a875f gcc/testsuite/objc.dg/strings/strings.exp ! e725bc4ca7d60a0fa96e088c77b44ba3 gcc/testsuite/objc.dg/stubify-1.m ! b9a053b6534bf53cd94aa5a5ae0b528c gcc/testsuite/objc.dg/stubify-2.m 7e68d7fe39ddc6065769f26089764fd6 gcc/testsuite/objc.dg/super-class-1.m ba3105737585d465268d9bf41481fa06 gcc/testsuite/objc.dg/super-class-2.m a1b0dd9c9fb200a066255256ef572225 gcc/testsuite/objc.dg/super-class-3.m c71fc5d6430c26f90154d279a0e4420e gcc/testsuite/objc.dg/super-class-4.m 5f7cf7eb1290cd0ac7cc810aca461fcb gcc/testsuite/objc.dg/super-dealloc-1.m 43c780cbecdb5565a2bda8b0795d5cf8 gcc/testsuite/objc.dg/super-dealloc-2.m ! e806ea4ccd7ce77b9958611b5c803146 gcc/testsuite/objc.dg/symtab-1.m 2a986a873850ef622badcc1eb9048d4a gcc/testsuite/objc.dg/sync-1.m 6d77d7810e6a1711e9c3e10911fdf7f5 gcc/testsuite/objc.dg/sync-2.m a7c71308c349df3308ea10cfd5c4cfc2 gcc/testsuite/objc.dg/sync-3.m --- 62713,62738 ---- 44c850eb724ab694c1eea579910821bd gcc/testsuite/objc.dg/static-1.m 911d824641cc5460f0bb8428edcd155b gcc/testsuite/objc.dg/stret-1.m 581f8e860f7f1e705a6b0235823fa173 gcc/testsuite/objc.dg/stret-2.m ! d14e2bc0e149efd8ad9b13c9f1e48081 gcc/testsuite/objc.dg/strings/const-cfstring-2.m ! 0c2da165989aa0dcb159a4c853f22f0c gcc/testsuite/objc.dg/strings/const-cfstring-5.m 21b76d31bad8ab2bce32ce3f5fceff78 gcc/testsuite/objc.dg/strings/const-str-1.m 24ad853ec86d75ab828e6fc36156ce31 gcc/testsuite/objc.dg/strings/const-str-12.m ! 3cb4e420b65ce84056d2b8bd0ebe50d5 gcc/testsuite/objc.dg/strings/const-str-12b.m 11e6b8b6d3e9f318be035ef31f291e33 gcc/testsuite/objc.dg/strings/const-str-2.m 2ea7be2c8319bbf91f203eb9e01c5520 gcc/testsuite/objc.dg/strings/const-str-5.m 1b52a4aa3cd0d5062e03b48964ddcb0b gcc/testsuite/objc.dg/strings/const-str-6.m 4a89061dc402adc311f94d3659a6eaa2 gcc/testsuite/objc.dg/strings/strings-1.m 5406714e0710bd54d86b2186d1cb98fa gcc/testsuite/objc.dg/strings/strings-2.m ff654aadda87037110073b4a855a875f gcc/testsuite/objc.dg/strings/strings.exp ! 1028fef4f6067cf3ed3015cb12843bec gcc/testsuite/objc.dg/stubify-1.m ! 14f47f9629e885bc51130d3b4d8a5ffb gcc/testsuite/objc.dg/stubify-2.m 7e68d7fe39ddc6065769f26089764fd6 gcc/testsuite/objc.dg/super-class-1.m ba3105737585d465268d9bf41481fa06 gcc/testsuite/objc.dg/super-class-2.m a1b0dd9c9fb200a066255256ef572225 gcc/testsuite/objc.dg/super-class-3.m c71fc5d6430c26f90154d279a0e4420e gcc/testsuite/objc.dg/super-class-4.m 5f7cf7eb1290cd0ac7cc810aca461fcb gcc/testsuite/objc.dg/super-dealloc-1.m 43c780cbecdb5565a2bda8b0795d5cf8 gcc/testsuite/objc.dg/super-dealloc-2.m ! 0005d93b4fc8f12225545818fc4dfcec gcc/testsuite/objc.dg/symtab-1.m 2a986a873850ef622badcc1eb9048d4a gcc/testsuite/objc.dg/sync-1.m 6d77d7810e6a1711e9c3e10911fdf7f5 gcc/testsuite/objc.dg/sync-2.m a7c71308c349df3308ea10cfd5c4cfc2 gcc/testsuite/objc.dg/sync-3.m *************** d91e4283788de5085566af47d25f5008 gcc/te *** 62231,62246 **** 1131c9137e46b5311c2d803288f2e4d0 gcc/testsuite/objc.dg/too-many-args.m 83b83c80f3982d5e93c47bed6dd2a88a gcc/testsuite/objc.dg/torture/dg-torture.exp be65f96db9eb7870d002772ea73b79da gcc/testsuite/objc.dg/torture/forward-1.m ! eb414f8a7531ed8a420a1a6ee919602f gcc/testsuite/objc.dg/torture/strings/const-cfstring-1.m e42495f1f3ad6ec8f920137751c3f8f7 gcc/testsuite/objc.dg/torture/strings/const-cfstring-3.m d2c0463e1e05d168d9d004c74cec0610 gcc/testsuite/objc.dg/torture/strings/const-cfstring-4.m ! c00db2a33ee79619d0d18ec1bec143d2 gcc/testsuite/objc.dg/torture/strings/const-str-10.m ! 870aba766852dd810f3d097bf57286e0 gcc/testsuite/objc.dg/torture/strings/const-str-11.m 11f5cd130f549cf602c1bb2004fba283 gcc/testsuite/objc.dg/torture/strings/const-str-3.m 95175d9f569f2455a67d3a042a9b49e5 gcc/testsuite/objc.dg/torture/strings/const-str-4.m 38dc4c1d8bffabc69a852320760c79a3 gcc/testsuite/objc.dg/torture/strings/const-str-7.m 3e0b925a0c58f41da0dff25baae98066 gcc/testsuite/objc.dg/torture/strings/const-str-8.m ! c240b028053e462ac058c3f830ba0503 gcc/testsuite/objc.dg/torture/strings/const-str-9.m a8a9f4264b042cb130bb43f35157c620 gcc/testsuite/objc.dg/torture/strings/string1.m f559fec747b34a07335a33efaef1d635 gcc/testsuite/objc.dg/torture/strings/string2.m 8d3378c509e4ec126b88298049f5b787 gcc/testsuite/objc.dg/torture/strings/string3.m --- 62747,62762 ---- 1131c9137e46b5311c2d803288f2e4d0 gcc/testsuite/objc.dg/too-many-args.m 83b83c80f3982d5e93c47bed6dd2a88a gcc/testsuite/objc.dg/torture/dg-torture.exp be65f96db9eb7870d002772ea73b79da gcc/testsuite/objc.dg/torture/forward-1.m ! 4f20d39a7f1dfacf39a8a1b732ad2c1c gcc/testsuite/objc.dg/torture/strings/const-cfstring-1.m e42495f1f3ad6ec8f920137751c3f8f7 gcc/testsuite/objc.dg/torture/strings/const-cfstring-3.m d2c0463e1e05d168d9d004c74cec0610 gcc/testsuite/objc.dg/torture/strings/const-cfstring-4.m ! c59ca8cb9643a4bd47ad25eacc428bee gcc/testsuite/objc.dg/torture/strings/const-str-10.m ! 3931c6df3b0f09e852f74dc856992284 gcc/testsuite/objc.dg/torture/strings/const-str-11.m 11f5cd130f549cf602c1bb2004fba283 gcc/testsuite/objc.dg/torture/strings/const-str-3.m 95175d9f569f2455a67d3a042a9b49e5 gcc/testsuite/objc.dg/torture/strings/const-str-4.m 38dc4c1d8bffabc69a852320760c79a3 gcc/testsuite/objc.dg/torture/strings/const-str-7.m 3e0b925a0c58f41da0dff25baae98066 gcc/testsuite/objc.dg/torture/strings/const-str-8.m ! d1d93c13e62106809a456f06ea348f2d gcc/testsuite/objc.dg/torture/strings/const-str-9.m a8a9f4264b042cb130bb43f35157c620 gcc/testsuite/objc.dg/torture/strings/string1.m f559fec747b34a07335a33efaef1d635 gcc/testsuite/objc.dg/torture/strings/string2.m 8d3378c509e4ec126b88298049f5b787 gcc/testsuite/objc.dg/torture/strings/string3.m *************** d2d07c2ebcb90350a34d2a0a2a215530 gcc/te *** 62274,62282 **** 8c73a8da87197ef7c9627087e4a0abdc gcc/testsuite/objc.dg/va-meth-1.m ad588be086756c7bce570ed5a28030b0 gcc/testsuite/objc.dg/volatile-1.m 5b030d8bcb22dedd984e8d8dae17cfb6 gcc/testsuite/objc.dg/weak-1.m ! c6f92ed8e0845d4f49274791f11f8632 gcc/testsuite/objc.dg/zero-link-1.m ! 665cb537ffd18b494c34ac2bd13e3f52 gcc/testsuite/objc.dg/zero-link-2.m ! a86dde4579f2a917b3ba4488f0c82a58 gcc/testsuite/objc.dg/zero-link-3.m 0d71c48c831bf5882b80c4cd6ca9d9d8 gcc/testsuite/objc/compile/20011211-1.m 9b70591be7f91f15d0a53c89bdc94bf4 gcc/testsuite/objc/compile/20060406-1.m 63390432ecf16f7577842ecf7fce9e42 gcc/testsuite/objc/compile/compile.exp --- 62790,62798 ---- 8c73a8da87197ef7c9627087e4a0abdc gcc/testsuite/objc.dg/va-meth-1.m ad588be086756c7bce570ed5a28030b0 gcc/testsuite/objc.dg/volatile-1.m 5b030d8bcb22dedd984e8d8dae17cfb6 gcc/testsuite/objc.dg/weak-1.m ! f0a85fb06bc40a59b3b67e37b68bf8a9 gcc/testsuite/objc.dg/zero-link-1.m ! 19e680c142e29f8a7a584e91ac7b7056 gcc/testsuite/objc.dg/zero-link-2.m ! af0fd8f33da4a0b997aa6096000deff3 gcc/testsuite/objc.dg/zero-link-3.m 0d71c48c831bf5882b80c4cd6ca9d9d8 gcc/testsuite/objc/compile/20011211-1.m 9b70591be7f91f15d0a53c89bdc94bf4 gcc/testsuite/objc/compile/20060406-1.m 63390432ecf16f7577842ecf7fce9e42 gcc/testsuite/objc/compile/compile.exp *************** c5c9ff03c8513ded25ac3a967b48085a gcc/ti *** 62412,62418 **** 7b9d3e33b917199158b977af4c108355 gcc/timevar.def 3c23c5ab690742eb1792aaab452d0439 gcc/timevar.h 494c54b7d1757cab69e8bd45419d9791 gcc/tlink.c ! 26c822a669875d2c2fc227678929740d gcc/toplev.c f96d6de70f3f0590828430414de64703 gcc/toplev.h 0cd669bd159aec9d7dce1b30ceacd581 gcc/tracer.c a31e20be1f17efb9449295d8115b8e44 gcc/tracer.h --- 62928,62934 ---- 7b9d3e33b917199158b977af4c108355 gcc/timevar.def 3c23c5ab690742eb1792aaab452d0439 gcc/timevar.h 494c54b7d1757cab69e8bd45419d9791 gcc/tlink.c ! afe25656522654a5081b204c230a50c6 gcc/toplev.c f96d6de70f3f0590828430414de64703 gcc/toplev.h 0cd669bd159aec9d7dce1b30ceacd581 gcc/tracer.c a31e20be1f17efb9449295d8115b8e44 gcc/tracer.h *************** b073b36289942334fccdeb4d24ff9439 gcc/tr *** 62421,62439 **** ce824f0d0f96ea15352bec5c3455e176 gcc/tree-affine.c b5ed1742deb1ddcfd19853bacd23df0c gcc/tree-affine.h 549ba70a91042bce1b00d4e4991302e8 gcc/tree-call-cdce.c ! ceedc0af5d637b239ea9413c79c8a5de gcc/tree-cfg.c 6812214afe0d37d4881606855f992f2e gcc/tree-cfg.h ! b29c65f5752d09d1b4cab9355704b298 gcc/tree-cfgcleanup.c ! 19662777bb8b601c7711286936133e81 gcc/tree-cfgcleanup.h 3edd81a1b44e3317af2d1f1ea439b154 gcc/tree-chkp-opt.c 35266a6f0ff4b2b78c22e1ed7ff7c10f gcc/tree-chkp.c 3e2dde29d3501136096958570a5113ba gcc/tree-chkp.h ! 6da4d86f966abd025911c1df7671ff6b gcc/tree-chrec.c ! b3894073e587c4c8d29f0edcfbe0b34b gcc/tree-chrec.h bc876107600f96dcbf52f8767caaa70b gcc/tree-complex.c ! f728bb81422cfad65f2070cbac4d0163 gcc/tree-core.h ! 7dbe62be7f1fa5014950c1d703764d95 gcc/tree-data-ref.c ! 14d4baf16cedad6bee8b2c7a19621032 gcc/tree-data-ref.h e4ebe06aec52a07fea129dd62c885552 gcc/tree-dfa.c 6630d3c22ad7f58a6038456404da34f2 gcc/tree-dfa.h 346ce5448fc1d59e42c687eed1e064c2 gcc/tree-diagnostic.c --- 62937,62955 ---- ce824f0d0f96ea15352bec5c3455e176 gcc/tree-affine.c b5ed1742deb1ddcfd19853bacd23df0c gcc/tree-affine.h 549ba70a91042bce1b00d4e4991302e8 gcc/tree-call-cdce.c ! 80f002a3c4b67e0d5e3bc42a982dddbb gcc/tree-cfg.c 6812214afe0d37d4881606855f992f2e gcc/tree-cfg.h ! e9a8e0fc4544b8d5a1c000f7c44a17d2 gcc/tree-cfgcleanup.c ! 1ccb42c1a71a6cef259bbb43fdf59510 gcc/tree-cfgcleanup.h 3edd81a1b44e3317af2d1f1ea439b154 gcc/tree-chkp-opt.c 35266a6f0ff4b2b78c22e1ed7ff7c10f gcc/tree-chkp.c 3e2dde29d3501136096958570a5113ba gcc/tree-chkp.h ! 32a9eea0a6507e081c454ace10b33fce gcc/tree-chrec.c ! 2b59943c49c3cfc2f978309529d29ae7 gcc/tree-chrec.h bc876107600f96dcbf52f8767caaa70b gcc/tree-complex.c ! d3aa4a0e848de780933d9a2c60edcc35 gcc/tree-core.h ! bc07790a93ab70e11861129989658dfa gcc/tree-data-ref.c ! a3e422756ca583f08f941bf2df394fc8 gcc/tree-data-ref.h e4ebe06aec52a07fea129dd62c885552 gcc/tree-dfa.c 6630d3c22ad7f58a6038456404da34f2 gcc/tree-dfa.h 346ce5448fc1d59e42c687eed1e064c2 gcc/tree-diagnostic.c *************** e4ebe06aec52a07fea129dd62c885552 gcc/tr *** 62445,62454 **** 98f97a51a7fe1663cabe8b5c2994ae44 gcc/tree-emutls.c 7f719d0f8f75a12b72ef5745d8d8a697 gcc/tree-hash-traits.h 03cb0c4b258ea53578fa8138e1cc5372 gcc/tree-hasher.h ! 37387628580470e7d51c967495e7ba7c gcc/tree-if-conv.c e80967aedf2457305e0aff6c41d9cc9a gcc/tree-if-conv.h ! 30b9b45db1447a6b21d4bb898b04a607 gcc/tree-inline.c ! efe74ab43ea19b414cfaafab72bfa0aa gcc/tree-inline.h dd830fdd8c80ae21257316bb6a5c1222 gcc/tree-into-ssa.c e440c1749aab3001199704be2d30efca gcc/tree-into-ssa.h e38fb6ceb8f4f44ec45d6b4d3ed1a7ac gcc/tree-iterator.c --- 62961,62970 ---- 98f97a51a7fe1663cabe8b5c2994ae44 gcc/tree-emutls.c 7f719d0f8f75a12b72ef5745d8d8a697 gcc/tree-hash-traits.h 03cb0c4b258ea53578fa8138e1cc5372 gcc/tree-hasher.h ! 0e845e0309702d7e4a0f78de95455f30 gcc/tree-if-conv.c e80967aedf2457305e0aff6c41d9cc9a gcc/tree-if-conv.h ! 1db201ab61b09a0a77f0937e8b4f4d3d gcc/tree-inline.c ! d8608398054096e82c09098dbe89039c gcc/tree-inline.h dd830fdd8c80ae21257316bb6a5c1222 gcc/tree-into-ssa.c e440c1749aab3001199704be2d30efca gcc/tree-into-ssa.h e38fb6ceb8f4f44ec45d6b4d3ed1a7ac gcc/tree-iterator.c *************** e38fb6ceb8f4f44ec45d6b4d3ed1a7ac gcc/tr *** 62457,62500 **** 636a9ae0fea02548a7142a269ed40039 gcc/tree-nested.c 47ed5446a111478fa7dee5eec3c96f69 gcc/tree-nested.h bf4fae554ec2382d216fd2781876cdb3 gcc/tree-nrv.c ! 4b85a9124fd1b7f5de196e5140a4baee gcc/tree-object-size.c e9b423e15a82c54595b215e4305612f0 gcc/tree-object-size.h ! 6947fc4bd173552a2bd4b8392cbe3cab gcc/tree-outof-ssa.c 251e6b365cf0a560cb73bbdbdfadc456 gcc/tree-outof-ssa.h 77d0e442f31ed32355cc700c1268c05c gcc/tree-parloops.c a88b6325c8d27f1be5d33fefae43dd13 gcc/tree-parloops.h ac9e8a0de63ab275489d211a3a796392 gcc/tree-pass.h ee4074b4f4c0c58f5f0847dee454736c gcc/tree-phinodes.c 25c97c740c9f8dde32ef1d129df03b76 gcc/tree-phinodes.h ! d488d515791dfc8ba7a88d74bacbe54d gcc/tree-predcom.c 1865e59171c3c3d2c7ddea0db0c4de91 gcc/tree-pretty-print.c dc34864230a643baba022d69a49744b2 gcc/tree-pretty-print.h e0a6ac48b1fc19d386fb63fcf3d98fcb gcc/tree-profile.c ! 0c2cb1fc1ee0521b0cfe4101383a03c7 gcc/tree-scalar-evolution.c 1df2143b3f0cb1ce22d2cfa583874fb2 gcc/tree-scalar-evolution.h ! 29a357d0cd24c2b1df800cbb0ceef84e gcc/tree-sra.c ! af72f578e72eb426bb6bf973587a6e5f gcc/tree-ssa-address.c 2961f3256d67a49c5142d98c7daf1b0b gcc/tree-ssa-address.h 03a0356dae1b8008b3f08a662eff1e6b gcc/tree-ssa-alias.c 50cabeffb777e9a0048455215798d0e1 gcc/tree-ssa-alias.h ! f1bf468e669f701c4fe3e40627368b9a gcc/tree-ssa-ccp.c b93c5df974f247818960f3e25694de0a gcc/tree-ssa-ccp.h 18ffc4935353a2a91a561cc5d2731daa gcc/tree-ssa-coalesce.c 3dc60007c5d00a63cdbaa8ef066efb47 gcc/tree-ssa-coalesce.h ! 11e218ab19ca0364993d6fe59a2ab516 gcc/tree-ssa-copy.c 1584b70280e8cf485ee6bdfdaefba0cd gcc/tree-ssa-dce.c bdaaee6c48f269500d1c76712f0caf86 gcc/tree-ssa-dce.h ! cf5eb33e89e86d0da9b4893fc7e22e95 gcc/tree-ssa-dom.c 43fe745538b891ae59c3dd8f125ed47c gcc/tree-ssa-dom.h fcf371db4cdac403edbb5ecc1cac91af gcc/tree-ssa-dse.c ! cedeb40fa8dc851a09938f6034e628c0 gcc/tree-ssa-forwprop.c ! 9a0ef789018a8eed18431615fc075af3 gcc/tree-ssa-ifcombine.c 98c63bbf0ac6b3825216eeb39444b6b5 gcc/tree-ssa-live.c 511bbde3fb207a200f12733094eaa532 gcc/tree-ssa-live.h ! c687c45eeec499f866ea3dc172ded6cd gcc/tree-ssa-loop-ch.c da467bf0a58425a7e437393a71122636 gcc/tree-ssa-loop-im.c ! 7515b95d7e8a694ad591b8a5f8ee6d77 gcc/tree-ssa-loop-ivcanon.c ! dbdcf3716a4415e0023d2a8cc50c3c5f gcc/tree-ssa-loop-ivopts.c b24a34706d28c13a5c55498688e0f588 gcc/tree-ssa-loop-ivopts.h d8daffca48c8b9ab6c7a7221b0bf3ba5 gcc/tree-ssa-loop-manip.c 6787dc4f74dd9bf5d729f97deb59dd5b gcc/tree-ssa-loop-manip.h --- 62973,63016 ---- 636a9ae0fea02548a7142a269ed40039 gcc/tree-nested.c 47ed5446a111478fa7dee5eec3c96f69 gcc/tree-nested.h bf4fae554ec2382d216fd2781876cdb3 gcc/tree-nrv.c ! 2219510d12f1fb203159695ca883bcb6 gcc/tree-object-size.c e9b423e15a82c54595b215e4305612f0 gcc/tree-object-size.h ! b98b034a0a0cfeb37639c9f12089994a gcc/tree-outof-ssa.c 251e6b365cf0a560cb73bbdbdfadc456 gcc/tree-outof-ssa.h 77d0e442f31ed32355cc700c1268c05c gcc/tree-parloops.c a88b6325c8d27f1be5d33fefae43dd13 gcc/tree-parloops.h ac9e8a0de63ab275489d211a3a796392 gcc/tree-pass.h ee4074b4f4c0c58f5f0847dee454736c gcc/tree-phinodes.c 25c97c740c9f8dde32ef1d129df03b76 gcc/tree-phinodes.h ! 08a79e82130c51a7471070f85d896879 gcc/tree-predcom.c 1865e59171c3c3d2c7ddea0db0c4de91 gcc/tree-pretty-print.c dc34864230a643baba022d69a49744b2 gcc/tree-pretty-print.h e0a6ac48b1fc19d386fb63fcf3d98fcb gcc/tree-profile.c ! 1e50f5bafbc74b5b84531e3fe002816d gcc/tree-scalar-evolution.c 1df2143b3f0cb1ce22d2cfa583874fb2 gcc/tree-scalar-evolution.h ! 254b8e30617798cd8557c0e45ec4f319 gcc/tree-sra.c ! 6a83ab6dc23a144cc6e85e83ab3caec4 gcc/tree-ssa-address.c 2961f3256d67a49c5142d98c7daf1b0b gcc/tree-ssa-address.h 03a0356dae1b8008b3f08a662eff1e6b gcc/tree-ssa-alias.c 50cabeffb777e9a0048455215798d0e1 gcc/tree-ssa-alias.h ! cb899be9520f29b97eafe0c06badb112 gcc/tree-ssa-ccp.c b93c5df974f247818960f3e25694de0a gcc/tree-ssa-ccp.h 18ffc4935353a2a91a561cc5d2731daa gcc/tree-ssa-coalesce.c 3dc60007c5d00a63cdbaa8ef066efb47 gcc/tree-ssa-coalesce.h ! 383607d444be3f03255871493e5dec90 gcc/tree-ssa-copy.c 1584b70280e8cf485ee6bdfdaefba0cd gcc/tree-ssa-dce.c bdaaee6c48f269500d1c76712f0caf86 gcc/tree-ssa-dce.h ! bb08c221693a801942cc9f43a1f9b4d1 gcc/tree-ssa-dom.c 43fe745538b891ae59c3dd8f125ed47c gcc/tree-ssa-dom.h fcf371db4cdac403edbb5ecc1cac91af gcc/tree-ssa-dse.c ! f39227fda5b937e7a807e908f4ca6508 gcc/tree-ssa-forwprop.c ! 98070f7420ffb3521468838b41dcd403 gcc/tree-ssa-ifcombine.c 98c63bbf0ac6b3825216eeb39444b6b5 gcc/tree-ssa-live.c 511bbde3fb207a200f12733094eaa532 gcc/tree-ssa-live.h ! 1e1dfb0708259a95206b54645e0713e3 gcc/tree-ssa-loop-ch.c da467bf0a58425a7e437393a71122636 gcc/tree-ssa-loop-im.c ! 1bf08fa3f0fe61e504044160ff139795 gcc/tree-ssa-loop-ivcanon.c ! ca010f2a9e0b32eb913cf94e6d02c800 gcc/tree-ssa-loop-ivopts.c b24a34706d28c13a5c55498688e0f588 gcc/tree-ssa-loop-ivopts.h d8daffca48c8b9ab6c7a7221b0bf3ba5 gcc/tree-ssa-loop-manip.c 6787dc4f74dd9bf5d729f97deb59dd5b gcc/tree-ssa-loop-manip.h *************** be566f69fed68625ba16bcf888b31312 gcc/tr *** 62505,62528 **** 176933e1ce86bcabf1a33c149f14796e gcc/tree-ssa-loop-unswitch.c 7114410589ddaa7669db456897cc5ae6 gcc/tree-ssa-loop.c 3ed2e9566c2046e9841d3694ecbc85a3 gcc/tree-ssa-loop.h ! de3408b04e3c239d1920d5f5c84bfb04 gcc/tree-ssa-math-opts.c 686469c12c5b0b9858a19d6be32db183 gcc/tree-ssa-operands.c 53e8a3e97330ba181edb03d5cbad277e gcc/tree-ssa-operands.h f3e4edc8603185c711541a617916d3dd gcc/tree-ssa-phionlycprop.c ! f51fdf0f76e21a5cae07dcfda480c88d gcc/tree-ssa-phiopt.c ! 4b717782b2d97de53ca9cf3ff6b74c3a gcc/tree-ssa-phiprop.c ! a7a1c92875fef0ab7c9a1eadf1956864 gcc/tree-ssa-pre.c fca8fdd22ddedbd6bf99aa8adedfe00d gcc/tree-ssa-propagate.c 8de30f7dccca5b37e76745c3f11f0df7 gcc/tree-ssa-propagate.h ! 828cd2bacd5c010f8521f672e5fe232d gcc/tree-ssa-reassoc.c ! 798bfacd4214dd8368f2fa332afe4e1a gcc/tree-ssa-sccvn.c ! 300e778ffea51f198c086f5be52a4978 gcc/tree-ssa-sccvn.h c2fbccd0fc4bd7fd2f03ff926418cfaa gcc/tree-ssa-scopedtables.c 670c490967a3463f58cb8e4381a5488c gcc/tree-ssa-scopedtables.h ! a40b0cfb359cb2a010d76f22f61db81c gcc/tree-ssa-sink.c ! 3f4d45ba75da6e5ac5b60cd9ed624494 gcc/tree-ssa-strlen.c efd7ceb242b48012fb5c272ed908e7db gcc/tree-ssa-strlen.h ! 78031b2f3e2929aa546947e884cc163c gcc/tree-ssa-structalias.c 1bcaf6452b4514470ce72f846188cb79 gcc/tree-ssa-tail-merge.c 5c94cdc798a80b3e229a1f4133946e67 gcc/tree-ssa-ter.c 247a650230c7d35508b2ebe441d65830 gcc/tree-ssa-ter.h --- 63021,63044 ---- 176933e1ce86bcabf1a33c149f14796e gcc/tree-ssa-loop-unswitch.c 7114410589ddaa7669db456897cc5ae6 gcc/tree-ssa-loop.c 3ed2e9566c2046e9841d3694ecbc85a3 gcc/tree-ssa-loop.h ! 932ce5d4e0f5d4ffabad27e883fd7e3a gcc/tree-ssa-math-opts.c 686469c12c5b0b9858a19d6be32db183 gcc/tree-ssa-operands.c 53e8a3e97330ba181edb03d5cbad277e gcc/tree-ssa-operands.h f3e4edc8603185c711541a617916d3dd gcc/tree-ssa-phionlycprop.c ! 3158be3c7dfca1cba445dc432149f948 gcc/tree-ssa-phiopt.c ! 0168aec5f52ca083e03e4e70b533f299 gcc/tree-ssa-phiprop.c ! 9e65fda1d9b3e2181ec40a15ee9c2a10 gcc/tree-ssa-pre.c fca8fdd22ddedbd6bf99aa8adedfe00d gcc/tree-ssa-propagate.c 8de30f7dccca5b37e76745c3f11f0df7 gcc/tree-ssa-propagate.h ! 396075d70a90391cf1b5f812ce8bdafe gcc/tree-ssa-reassoc.c ! 22d97e3f1beb0d0c0fe6b8a43fef4153 gcc/tree-ssa-sccvn.c ! 6af1801f44f6cf548c6eb38c930d3488 gcc/tree-ssa-sccvn.h c2fbccd0fc4bd7fd2f03ff926418cfaa gcc/tree-ssa-scopedtables.c 670c490967a3463f58cb8e4381a5488c gcc/tree-ssa-scopedtables.h ! 1607c221cadaaacabe929f4625eaf5b4 gcc/tree-ssa-sink.c ! 7850aed8782559198bb0bac7774acb03 gcc/tree-ssa-strlen.c efd7ceb242b48012fb5c272ed908e7db gcc/tree-ssa-strlen.h ! 894d3c9c1e442a62fa78a61d033be4af gcc/tree-ssa-structalias.c 1bcaf6452b4514470ce72f846188cb79 gcc/tree-ssa-tail-merge.c 5c94cdc798a80b3e229a1f4133946e67 gcc/tree-ssa-ter.c 247a650230c7d35508b2ebe441d65830 gcc/tree-ssa-ter.h *************** e8fc403b81e4a7fdbd073ce71eb45e1d gcc/tr *** 62535,62566 **** 45842e3a0183c230915d8f2e0e5258f8 gcc/tree-ssa-uninit.c c143c84c2e88bd78b87e0bde15879472 gcc/tree-ssa.c caea81e6f2839d094a100791fb9ec6ae gcc/tree-ssa.h ! 2b944d03c500740eabfb356744b88293 gcc/tree-ssanames.c 1b87e3247b58babbed39ff66bef600b8 gcc/tree-ssanames.h 8193a7f9aaf5116eb0c34b19ca038cf2 gcc/tree-stdarg.c 2135d8d0c4f5b9c2ff2504e907dc874d gcc/tree-stdarg.h ! da38e1a49d5c6f8fc43a6d1fb79ad2ab gcc/tree-streamer-in.c ! 713e427afeea81ccabf38a0e773a7d60 gcc/tree-streamer-out.c c456a11cada23fb2127f5259f4537e34 gcc/tree-streamer.c d9a2bd6dded27bebc37d7c2bc156524d gcc/tree-streamer.h 61435a95b57e17ee81c1454fe3be5110 gcc/tree-switch-conversion.c ! 5906b90c55e0463d667d5af5e8379b3c gcc/tree-tailcall.c ! 7b295b407b1b938e63dd36ee88769558 gcc/tree-vect-data-refs.c 4c848ebc4b65251ac231a86ed2911448 gcc/tree-vect-generic.c 91fc7e04bb827833ad082ad8bb75fc9e gcc/tree-vect-loop-manip.c ! 64793d7e9857535e5bcf65ca016ca9eb gcc/tree-vect-loop.c ! 1df304065324e663625d332fc94ba156 gcc/tree-vect-patterns.c ! 9767931bc5c4b507dafb3a4de3ebf307 gcc/tree-vect-slp.c ! fa410fe117a64f8f75d2b9f039d0564e gcc/tree-vect-stmts.c e035d135a4ebda8d67b856410b198921 gcc/tree-vector-builder.c ! fbd200943bb098b7b20bed8aca29dcb0 gcc/tree-vector-builder.h 4a231e763a7f6f010133585b68978eaa gcc/tree-vectorizer.c 3047b7d099527e5f9a217a59ba4048c1 gcc/tree-vectorizer.h ! 9733d870bf3d765c5ca8aa226d23df50 gcc/tree-vrp.c 1e25c89f27af241e417f5e2d758fa93a gcc/tree-vrp.h ! 4aee43bf09fb341bfae1271677698fc1 gcc/tree.c 73344dcb00ff6e62d367712374b32414 gcc/tree.def ! 93b9e4d204efdabbfeac0373a6a02c1e gcc/tree.h 9df11f16b55536bbbdb8d4febc6319f5 gcc/treestruct.def 1ad3fdcbf70aa43b2c9312df6e814061 gcc/tsan.c ef6f8fd7131e05972fe682fe7422638d gcc/tsan.h --- 63051,63082 ---- 45842e3a0183c230915d8f2e0e5258f8 gcc/tree-ssa-uninit.c c143c84c2e88bd78b87e0bde15879472 gcc/tree-ssa.c caea81e6f2839d094a100791fb9ec6ae gcc/tree-ssa.h ! 44f488e6d6e7bc6b863627fa96396e92 gcc/tree-ssanames.c 1b87e3247b58babbed39ff66bef600b8 gcc/tree-ssanames.h 8193a7f9aaf5116eb0c34b19ca038cf2 gcc/tree-stdarg.c 2135d8d0c4f5b9c2ff2504e907dc874d gcc/tree-stdarg.h ! 3a1067ec37405f5c206a8c24e8099b16 gcc/tree-streamer-in.c ! 20ac612fc3f3aa853dc2bd44843e548f gcc/tree-streamer-out.c c456a11cada23fb2127f5259f4537e34 gcc/tree-streamer.c d9a2bd6dded27bebc37d7c2bc156524d gcc/tree-streamer.h 61435a95b57e17ee81c1454fe3be5110 gcc/tree-switch-conversion.c ! 9e291f8b9c7c552a4f683f19f572e283 gcc/tree-tailcall.c ! d25da1e67d99b36b1d21b111dd3e7004 gcc/tree-vect-data-refs.c 4c848ebc4b65251ac231a86ed2911448 gcc/tree-vect-generic.c 91fc7e04bb827833ad082ad8bb75fc9e gcc/tree-vect-loop-manip.c ! 28608870720d936883b74bd06be653cb gcc/tree-vect-loop.c ! 2615bf10027553420c79a5bedf058c74 gcc/tree-vect-patterns.c ! 6d06535b3171d783190e3f2e1e3ad0f0 gcc/tree-vect-slp.c ! 9d46ca6bf6b78a1104ad73e2ecb45145 gcc/tree-vect-stmts.c e035d135a4ebda8d67b856410b198921 gcc/tree-vector-builder.c ! 9ca4531f0f46631b14b6495a86342cf8 gcc/tree-vector-builder.h 4a231e763a7f6f010133585b68978eaa gcc/tree-vectorizer.c 3047b7d099527e5f9a217a59ba4048c1 gcc/tree-vectorizer.h ! a7e9409068852aebec1cd0d9a9003f68 gcc/tree-vrp.c 1e25c89f27af241e417f5e2d758fa93a gcc/tree-vrp.h ! 509c5ee3910ddf3fb44de486c26da9fc gcc/tree.c 73344dcb00ff6e62d367712374b32414 gcc/tree.def ! 5d2ed473422539ea37c15396620ebf28 gcc/tree.h 9df11f16b55536bbbdb8d4febc6319f5 gcc/treestruct.def 1ad3fdcbf70aa43b2c9312df6e814061 gcc/tsan.c ef6f8fd7131e05972fe682fe7422638d gcc/tsan.h *************** d7127cb536c5c2255d3c01e12c54da06 gcc/va *** 62575,62582 **** 2aab7148d720804ec91b091b4f33995c gcc/valtrack.h 05a8999b49775e63ae140b2a5acb2824 gcc/value-prof.c b3b39f12e3f09758de35f6e4d0d50e0c gcc/value-prof.h ! 139c1e0f6efc6133e60e02c1a80f0234 gcc/var-tracking.c ! 1bd8163a83927b1d4da5e2e2ba2b48bd gcc/varasm.c 3bba6cf1d877e25e32ba561be9844970 gcc/varasm.h 5a2a89ce3a2b3375c8e1dc96d3928cce gcc/varpool.c 08677e5c9772c4d0129648f259eae830 gcc/vec-perm-indices.c --- 63091,63098 ---- 2aab7148d720804ec91b091b4f33995c gcc/valtrack.h 05a8999b49775e63ae140b2a5acb2824 gcc/value-prof.c b3b39f12e3f09758de35f6e4d0d50e0c gcc/value-prof.h ! b6bec4e9c73c68513a2e2d234d529c99 gcc/var-tracking.c ! 8fd5bd3dc2975189031541a2568d6673 gcc/varasm.c 3bba6cf1d877e25e32ba561be9844970 gcc/varasm.h 5a2a89ce3a2b3375c8e1dc96d3928cce gcc/varpool.c 08677e5c9772c4d0129648f259eae830 gcc/vec-perm-indices.c *************** d3423359c8bfd615274fffedfd6e224a gcc/ve *** 62588,62594 **** 206ce76c6ce744048f99fdcc938dc713 gcc/version.h bd908587aa86e13de9b43c92158b2654 gcc/vmsdbg.h 284d2b1e7808087cf6ee2865d7ae5d3e gcc/vmsdbgout.c ! fbffa447250f3583f99948f186c3c828 gcc/vr-values.c 494d1cece340246b2f88fcb08390e32c gcc/vr-values.h ed635f0900933cab641be37c384ad5b3 gcc/vtable-verify.c 6e9e207b95a2b3a4c6e796dde85573cf gcc/vtable-verify.h --- 63104,63110 ---- 206ce76c6ce744048f99fdcc938dc713 gcc/version.h bd908587aa86e13de9b43c92158b2654 gcc/vmsdbg.h 284d2b1e7808087cf6ee2865d7ae5d3e gcc/vmsdbgout.c ! de31bc7b242307fe5c9815602e6f5338 gcc/vr-values.c 494d1cece340246b2f88fcb08390e32c gcc/vr-values.h ed635f0900933cab641be37c384ad5b3 gcc/vtable-verify.c 6e9e207b95a2b3a4c6e796dde85573cf gcc/vtable-verify.h *************** f201eaf3a05a76ee9e9aebfa200dbd44 gcc/wi *** 62599,62611 **** fe9e18c439a31c611d835fc962b19fe0 gcc/wide-int.cc f5153b535728560e3880688e236fff93 gcc/wide-int.h 9a63654193e6cbafcc12996b4a8ebeb4 gcc/xcoff.h ! e21f4268bb304b5533df2cac46df25ed gcc/xcoffout.c ! f2988b9b6e6e66e3c09aa846bb0a3f90 gcc/xcoffout.h ! 52ab538406c3ba2bd8cdad72044bdb9a gnattools/ChangeLog aaa671ca98fa9f94bfedd0ab395c5505 gnattools/Makefile.in c59f18e88cbf4b04095185094daf9a84 gnattools/configure eb3f980bf11ec11e25ddc6f29983830a gnattools/configure.ac ! 509950a6cdd41ae5d80bafa73b9bd9ec gotools/ChangeLog de4d8f820a2712a1e3e9800f0a5b3d67 gotools/Makefile.am 9716fa007cae9d8c7b74c157449246e1 gotools/Makefile.in 7e23031e2e274aaa07b61c1e8f18dc99 gotools/README --- 63115,63127 ---- fe9e18c439a31c611d835fc962b19fe0 gcc/wide-int.cc f5153b535728560e3880688e236fff93 gcc/wide-int.h 9a63654193e6cbafcc12996b4a8ebeb4 gcc/xcoff.h ! 95701684d1c01cfa6dd15392993dbccb gcc/xcoffout.c ! b5ab93f3b93266da254908923f4d64e3 gcc/xcoffout.h ! c9faebb76e2406334180a4ff5bd2b2b5 gnattools/ChangeLog aaa671ca98fa9f94bfedd0ab395c5505 gnattools/Makefile.in c59f18e88cbf4b04095185094daf9a84 gnattools/configure eb3f980bf11ec11e25ddc6f29983830a gnattools/configure.ac ! 552c83db7731afddff608c26834ab29a gotools/ChangeLog de4d8f820a2712a1e3e9800f0a5b3d67 gotools/Makefile.am 9716fa007cae9d8c7b74c157449246e1 gotools/Makefile.in 7e23031e2e274aaa07b61c1e8f18dc99 gotools/README *************** c4e8176c1964a5ebe0a55900f2141299 gotool *** 62617,62623 **** eb2aeb3a6cffe7b26a8f1c8a2da23dcd gotools/gofmt.1 59530bdf33659b29e73d4adb9f9f6552 include/COPYING d32239bcb673463ab874e80d47fae504 include/COPYING3 ! da8d7da7c5bcf4c5b0d35bebf0cb3f3b include/ChangeLog 4263432a72ff47ed8bf420208ee7eea5 include/ChangeLog-9103 a43d76108493b20da790f953f829c6a5 include/ChangeLog.jit f70613c5e950c483a27bfa7eb0402116 include/ansidecl.h --- 63133,63139 ---- eb2aeb3a6cffe7b26a8f1c8a2da23dcd gotools/gofmt.1 59530bdf33659b29e73d4adb9f9f6552 include/COPYING d32239bcb673463ab874e80d47fae504 include/COPYING3 ! eb38c004517064e35212dee9dc66f3b8 include/ChangeLog 4263432a72ff47ed8bf420208ee7eea5 include/ChangeLog-9103 a43d76108493b20da790f953f829c6a5 include/ChangeLog.jit f70613c5e950c483a27bfa7eb0402116 include/ansidecl.h *************** d985ab01898df8d0fd88d101cbad7f25 includ *** 62642,62648 **** 24e907d23829b166ecd782579cc8ea10 include/hsa.h b3c5fa00fb401092d926b6443579d686 include/leb128.h 6265413b4ad7b4acbb600439fc255766 include/libiberty.h ! de94e5207678971c47448f1ef37dcf47 include/longlong.h 355be0b1dc4559409ec784e971f279a3 include/lto-symtab.h 4f03f3474216e21ef5cabd131bd5e78b include/md5.h de14c7a5d8d1ce55fda864a08a3d1990 include/objalloc.h --- 63158,63164 ---- 24e907d23829b166ecd782579cc8ea10 include/hsa.h b3c5fa00fb401092d926b6443579d686 include/leb128.h 6265413b4ad7b4acbb600439fc255766 include/libiberty.h ! 7ba94abdcd253ff3256a7d65be4122ae include/longlong.h 355be0b1dc4559409ec784e971f279a3 include/lto-symtab.h 4f03f3474216e21ef5cabd131bd5e78b include/md5.h de14c7a5d8d1ce55fda864a08a3d1990 include/objalloc.h *************** cc08cd4cddc61e66bc488bd71ebc3572 includ *** 62662,62668 **** 14385d807191a7ad0a4a4a103756a3a6 include/xregex2.h dcaace4a60bd6d7cd29251ac4849575d include/xtensa-config.h 361482dd6b5b5eb7090fff3986fba68a install-sh ! f4bec89b3fe46968040e5ab5a6227deb intl/ChangeLog cad1d6fab2274517783de7433c0faa74 intl/Makefile.in 6ec998bb4716c744bf8185e607f69301 intl/README 76ca170a525d5b84d90f0478fe788931 intl/VERSION --- 63178,63184 ---- 14385d807191a7ad0a4a4a103756a3a6 include/xregex2.h dcaace4a60bd6d7cd29251ac4849575d include/xtensa-config.h 361482dd6b5b5eb7090fff3986fba68a install-sh ! 2b24c93c03679a16e5739271c0616765 intl/ChangeLog cad1d6fab2274517783de7433c0faa74 intl/Makefile.in 6ec998bb4716c744bf8185e607f69301 intl/README 76ca170a525d5b84d90f0478fe788931 intl/VERSION *************** d50a8c6c5b41089930accbdce767d3c0 intl/p *** 62704,62715 **** b4758a0194e3e41362b939911472ce62 intl/relocatable.c bedade7bcfc3bc5eb09a2c6844f637f3 intl/relocatable.h 43f287d082528203fc85c1d2d81bf30d intl/textdomain.c ! 22629ee110cf27e18eef10d0828e02da libada/ChangeLog db6a3dbf8982da7bdb6f5751dbd4220d libada/Makefile.in 93014f4dcca5072ee02feb9d5e0b9332 libada/configure 542c75154d0bab6cb8cf52e857cbee5f libada/configure.ac 46d3fe6da7a771cc2d5420c4137a6861 libatomic/.gitignore ! b5c624bce7d71bc2a5b9e9418b782312 libatomic/ChangeLog bab8e570f9b81dac64cd8140e7293848 libatomic/Makefile.am 016c688d522ef7663f914e8c2c61af54 libatomic/Makefile.in 27dd743f20b2729e63803be4b6d17776 libatomic/acinclude.m4 --- 63220,63231 ---- b4758a0194e3e41362b939911472ce62 intl/relocatable.c bedade7bcfc3bc5eb09a2c6844f637f3 intl/relocatable.h 43f287d082528203fc85c1d2d81bf30d intl/textdomain.c ! 4ef87e148c56f2961b1f72320d33e6f2 libada/ChangeLog db6a3dbf8982da7bdb6f5751dbd4220d libada/Makefile.in 93014f4dcca5072ee02feb9d5e0b9332 libada/configure 542c75154d0bab6cb8cf52e857cbee5f libada/configure.ac 46d3fe6da7a771cc2d5420c4137a6861 libatomic/.gitignore ! 9984d5bfa30d67eafbe9c78a9f580476 libatomic/ChangeLog bab8e570f9b81dac64cd8140e7293848 libatomic/Makefile.am 016c688d522ef7663f914e8c2c61af54 libatomic/Makefile.in 27dd743f20b2729e63803be4b6d17776 libatomic/acinclude.m4 *************** d04f86e742ddfedb71fb4a3d0ceede39 libato *** 62734,62741 **** 5b12e87c113261066be9ae46f6e6c21f libatomic/config/rtems/lock.c 0ab581d09f5c9f35fec15bf82097e678 libatomic/config/s390/exch_n.c 314380f1bdc39e8fd18d47ecd444349d libatomic/config/x86/fenv.c ! d5499ef0cdc2a3ece18d23aa1924f26f libatomic/config/x86/host-config.h ! 8c357c770abf452a9e048c1c760fb67e libatomic/config/x86/init.c 405849fce69e46e708821c861987cea0 libatomic/configure a6171e8793791f95b15ab91c746b11ec libatomic/configure.ac 9541e5ae9ca8e45e4ab7ee8455adb584 libatomic/configure.tgt --- 63250,63257 ---- 5b12e87c113261066be9ae46f6e6c21f libatomic/config/rtems/lock.c 0ab581d09f5c9f35fec15bf82097e678 libatomic/config/s390/exch_n.c 314380f1bdc39e8fd18d47ecd444349d libatomic/config/x86/fenv.c ! 9ffdef1c5d87f24609160ad2bbfc93a0 libatomic/config/x86/host-config.h ! 5dec6070c7a0397c031a5839fefd70ef libatomic/config/x86/init.c 405849fce69e46e708821c861987cea0 libatomic/configure a6171e8793791f95b15ab91c746b11ec libatomic/configure.ac 9541e5ae9ca8e45e4ab7ee8455adb584 libatomic/configure.tgt *************** c03a072efac9b30f8f8429ac52fd246b libato *** 62795,62801 **** 8a7308fda7ed1543cb9e3be0f8e47bce libatomic/testsuite/libatomic.c/atomic-store-5.c 40618200985a15bcba64f871863da498 libatomic/testsuite/libatomic.c/c.exp 97b0c9cdfcb733664bdf4efe0f5dc449 libatomic/testsuite/libatomic.c/generic-2.c ! fca85f6cbdf4b709a5a8c868bd5b6bd2 libbacktrace/ChangeLog eb3a88b53140eb234a99a4b3a55e56bf libbacktrace/ChangeLog.jit ad25c936950517ab39514411d44f1c4e libbacktrace/Makefile.am 1a3441233d4403c0924c2303de6ebfd4 libbacktrace/Makefile.in --- 63311,63317 ---- 8a7308fda7ed1543cb9e3be0f8e47bce libatomic/testsuite/libatomic.c/atomic-store-5.c 40618200985a15bcba64f871863da498 libatomic/testsuite/libatomic.c/c.exp 97b0c9cdfcb733664bdf4efe0f5dc449 libatomic/testsuite/libatomic.c/generic-2.c ! f5b16a1a52feb79438e4843acb3e5920 libbacktrace/ChangeLog eb3a88b53140eb234a99a4b3a55e56bf libbacktrace/ChangeLog.jit ad25c936950517ab39514411d44f1c4e libbacktrace/Makefile.am 1a3441233d4403c0924c2303de6ebfd4 libbacktrace/Makefile.in *************** dbe2e11593f3102953f57ee51a60695f libbac *** 62834,62840 **** 8f36e84a19a6895e5de34668be47906f libbacktrace/unknown.c 76d9ac93dae8cb5d9ab7f770c5c33d59 libbacktrace/xcoff.c abb1e3c205164a92fc76bc8e9f7447b7 libbacktrace/ztest.c ! c3d188ea5aadbbe6e6c569d99ed0639b libcc1/ChangeLog 70cc59d5aaf376266e5614d3e43f1907 libcc1/Makefile.am fe9ad920449dc057290126f8611fe395 libcc1/Makefile.in 5f253fc15bb29a40419f12ce42f92147 libcc1/aclocal.m4 --- 63350,63356 ---- 8f36e84a19a6895e5de34668be47906f libbacktrace/unknown.c 76d9ac93dae8cb5d9ab7f770c5c33d59 libbacktrace/xcoff.c abb1e3c205164a92fc76bc8e9f7447b7 libbacktrace/ztest.c ! 1a4e787a0650b091e8e93d6e491010f2 libcc1/ChangeLog 70cc59d5aaf376266e5614d3e43f1907 libcc1/Makefile.am fe9ad920449dc057290126f8611fe395 libcc1/Makefile.in 5f253fc15bb29a40419f12ce42f92147 libcc1/aclocal.m4 *************** b5ada73fbc6a19380bf513b3790335f5 libcc1 *** 62863,62869 **** c6f9b1f960acb9cf871a06c4f935912b libcc1/names.hh 49d258234dff741a726cf0043a954f95 libcc1/rpc.hh 9dbb43e8d518ce0857f62abd7167ae08 libcc1/status.hh ! a531903cc1511bc4c3634f85bc891598 libcpp/ChangeLog 2bd831b17997584e38305782cebe6948 libcpp/ChangeLog.jit d2dac1b8128e62b1d6295cb9b74bbb14 libcpp/Makefile.in efb9decde4743620252ededfe7310a3d libcpp/aclocal.m4 --- 63379,63385 ---- c6f9b1f960acb9cf871a06c4f935912b libcc1/names.hh 49d258234dff741a726cf0043a954f95 libcc1/rpc.hh 9dbb43e8d518ce0857f62abd7167ae08 libcc1/status.hh ! 38b32f54f691fd7c1b8cb486b194166d libcpp/ChangeLog 2bd831b17997584e38305782cebe6948 libcpp/ChangeLog.jit d2dac1b8128e62b1d6295cb9b74bbb14 libcpp/Makefile.in efb9decde4743620252ededfe7310a3d libcpp/aclocal.m4 *************** efb9decde4743620252ededfe7310a3d libcpp *** 62872,62878 **** 7eb9e6e3b2606f2c140419da02733ff7 libcpp/configure 73b767fba0a1de33253732df4197743c libcpp/configure.ac 04fe8da82e27a7848109482e22884813 libcpp/directives-only.c ! d1bb6329c43c19bfad6e938f1c72be90 libcpp/directives.c b56a38589c174867ac11e0e3c2dc4707 libcpp/errors.c 4188aa2608cd2f002abf684aef847ea3 libcpp/expr.c 7a1b45e6b7f022562b43647046f3a060 libcpp/files.c --- 63388,63394 ---- 7eb9e6e3b2606f2c140419da02733ff7 libcpp/configure 73b767fba0a1de33253732df4197743c libcpp/configure.ac 04fe8da82e27a7848109482e22884813 libcpp/directives-only.c ! 0ac50590447f29879f5f5c57e21586b1 libcpp/directives.c b56a38589c174867ac11e0e3c2dc4707 libcpp/errors.c 4188aa2608cd2f002abf684aef847ea3 libcpp/expr.c 7a1b45e6b7f022562b43647046f3a060 libcpp/files.c *************** b1fcb4f298a8708a28f9fe4dbf855d77 libcpp *** 62882,62897 **** 9d150861d643f7fad1e4719edbc940a0 libcpp/include/line-map.h fa76ed3877ad4129127c5ae931c65811 libcpp/include/mkdeps.h 6b6e26f811660777d1617f7bbc354078 libcpp/include/symtab.h ! f66a125c666db415d08e8cc438043e0d libcpp/init.c ! 6e3214db2e9fb91358bc66199df63467 libcpp/internal.h b5ad79d0629d14c73cc766d3d47f85e6 libcpp/lex.c ! c773b9017e7af21eb40b7b60623894ec libcpp/line-map.c eba197e195fb1c007bf0724c8bed75ea libcpp/location-example.txt 9f391357162982e2304266f63bfa1497 libcpp/macro.c f22cafdb8ea5106643a28cf941c5fc0e libcpp/makeucnid.c c36f661613f171be8fee3d72b7e1c09f libcpp/mkdeps.c 94eab18602c5e57b824e51964fff7446 libcpp/pch.c ! 9060b22b9c0ffa56d23955e84e120bbe libcpp/po/ChangeLog eb8d613ca08cf1cce8d884839b51d450 libcpp/po/be.gmo ff3e5011d3f58f27c539ffb7b0db5898 libcpp/po/be.po 7757431651664b1e9c06c78d93bfd77c libcpp/po/ca.gmo --- 63398,63413 ---- 9d150861d643f7fad1e4719edbc940a0 libcpp/include/line-map.h fa76ed3877ad4129127c5ae931c65811 libcpp/include/mkdeps.h 6b6e26f811660777d1617f7bbc354078 libcpp/include/symtab.h ! eb523d5e10ec63c7303424692348ba3e libcpp/init.c ! 95cb671038cd63cc51001078082253e4 libcpp/internal.h b5ad79d0629d14c73cc766d3d47f85e6 libcpp/lex.c ! e7bbc8afc731ab25cf8fa9bb634de875 libcpp/line-map.c eba197e195fb1c007bf0724c8bed75ea libcpp/location-example.txt 9f391357162982e2304266f63bfa1497 libcpp/macro.c f22cafdb8ea5106643a28cf941c5fc0e libcpp/makeucnid.c c36f661613f171be8fee3d72b7e1c09f libcpp/mkdeps.c 94eab18602c5e57b824e51964fff7446 libcpp/pch.c ! 3b78b133885fa2417f1c19d40e263df0 libcpp/po/ChangeLog eb8d613ca08cf1cce8d884839b51d450 libcpp/po/be.gmo ff3e5011d3f58f27c539ffb7b0db5898 libcpp/po/be.po 7757431651664b1e9c06c78d93bfd77c libcpp/po/ca.gmo *************** da0e27c48fd0ce5f2d3e37e41af99cf2 libcpp *** 62941,62952 **** 36946b653677056e322ef20e95f6b80e libcpp/ucnid.h 80847d07e519c55c76ac9e1a89b0b7e8 libcpp/ucnid.tab a6c2b3de06c7424706b16f4c206396a1 libdecnumber/.gitignore ! 43c5e997d744f578c996eee34b78f323 libdecnumber/ChangeLog 2bd831b17997584e38305782cebe6948 libdecnumber/ChangeLog.jit 57ec341dbbf2ad937be2f9a710932b57 libdecnumber/Makefile.in b9ab907f769f0664ed31991a9c9bf3bb libdecnumber/aclocal.m4 728c92a81977f6b1ce57146d7a66076c libdecnumber/bid/bid-dpd.h ! 12230c29a88550a7f662f60696680206 libdecnumber/bid/bid2dpd_dpd2bid.c e6d087e338c023920a35188158b74578 libdecnumber/bid/bid2dpd_dpd2bid.h ea69a6d83c0278792d3acc4f6b069c82 libdecnumber/bid/decimal128.c 47afd72790bc284aceb5a23597cc6146 libdecnumber/bid/decimal128.h --- 63457,63468 ---- 36946b653677056e322ef20e95f6b80e libcpp/ucnid.h 80847d07e519c55c76ac9e1a89b0b7e8 libcpp/ucnid.tab a6c2b3de06c7424706b16f4c206396a1 libdecnumber/.gitignore ! 4997554a0c80f688c98bbced33f9882a libdecnumber/ChangeLog 2bd831b17997584e38305782cebe6948 libdecnumber/ChangeLog.jit 57ec341dbbf2ad937be2f9a710932b57 libdecnumber/Makefile.in b9ab907f769f0664ed31991a9c9bf3bb libdecnumber/aclocal.m4 728c92a81977f6b1ce57146d7a66076c libdecnumber/bid/bid-dpd.h ! 8dd7f7e592ee8a3ad328f2f06da6a3ab libdecnumber/bid/bid2dpd_dpd2bid.c e6d087e338c023920a35188158b74578 libdecnumber/bid/bid2dpd_dpd2bid.h ea69a6d83c0278792d3acc4f6b069c82 libdecnumber/bid/decimal128.c 47afd72790bc284aceb5a23597cc6146 libdecnumber/bid/decimal128.h *************** a97c47969dfc92a7666dfe3c2e1e1448 libdec *** 63004,63010 **** 1b3ac8f16152273c87e1f2ec5f887016 libdecnumber/dpd/decimal64.c e2fdfe70083dbc8a6bec996d90813407 libdecnumber/dpd/decimal64.h 0f6db29710e7075c2fd62bc4478b3b8d libdecnumber/dpd/decimal64Symbols.h ! c2e457389cdecdfaf74f306983773edd libffi/ChangeLog ba66fc19311348d373ec271be939a659 libffi/ChangeLog.libffi fbbc216bc25d759a72ea3e6d734af56b libffi/ChangeLog.libgcj d946d2b97454ad50a1dbfbf48923c5be libffi/ChangeLog.v1 --- 63520,63526 ---- 1b3ac8f16152273c87e1f2ec5f887016 libdecnumber/dpd/decimal64.c e2fdfe70083dbc8a6bec996d90813407 libdecnumber/dpd/decimal64.h 0f6db29710e7075c2fd62bc4478b3b8d libdecnumber/dpd/decimal64Symbols.h ! db8c6a9e001d9636f9bdde6369235478 libffi/ChangeLog ba66fc19311348d373ec271be939a659 libffi/ChangeLog.libffi fbbc216bc25d759a72ea3e6d734af56b libffi/ChangeLog.libgcj d946d2b97454ad50a1dbfbf48923c5be libffi/ChangeLog.v1 *************** d47c79b281339983862a8e52d8c73f0f libffi *** 63361,63369 **** 291be426192f460f6a07dfe1c96ab094 libffi/testsuite/libffi.special/special.exp 93fc3ea311b79f64004992807ce75d1e libffi/testsuite/libffi.special/unwindtest.cc 185d0795017fbbe253a13db8e34085f9 libffi/testsuite/libffi.special/unwindtest_ffi_call.cc ! 2a9d28374375b7e9d65bf7553fa99696 libgcc/ChangeLog 709335298d900a72f48092ad0056f60d libgcc/Makefile.in ! 5d9265327c85f8961ccb448fa2c53f45 libgcc/config.host dbd4c68a64e3be09ab49bad953cf29cd libgcc/config.in 36e58f05f226663c441c805c4042fdea libgcc/config/aarch64/aarch64-unwind.h f85b457b3c170683ab135af0907ac329 libgcc/config/aarch64/crtfastmath.c --- 63877,63885 ---- 291be426192f460f6a07dfe1c96ab094 libffi/testsuite/libffi.special/special.exp 93fc3ea311b79f64004992807ce75d1e libffi/testsuite/libffi.special/unwindtest.cc 185d0795017fbbe253a13db8e34085f9 libffi/testsuite/libffi.special/unwindtest_ffi_call.cc ! 9c6de87ff987688cb18792f60abe8001 libgcc/ChangeLog 709335298d900a72f48092ad0056f60d libgcc/Makefile.in ! 63d545dbb6993f45f6befde63b5c059c libgcc/config.host dbd4c68a64e3be09ab49bad953cf29cd libgcc/config.in 36e58f05f226663c441c805c4042fdea libgcc/config/aarch64/aarch64-unwind.h f85b457b3c170683ab135af0907ac329 libgcc/config/aarch64/crtfastmath.c *************** ff9dfacf1d2fe2fe2be328831f559783 libgcc *** 63732,63738 **** b271243f3ea668919b7aa0bc58063de6 libgcc/config/ia64/vms-unwind.h 6a404f703b0a7e76acc46ccaae1d725d libgcc/config/iq2000/lib2funcs.c 102f7dad8ad6b54434a1b8313d1e42c4 libgcc/config/iq2000/t-iq2000 ! 8d6eadc39c920ffda809c8f3988b9307 libgcc/config/libbid/ChangeLog bc4a84dca1d7640acb8977fddc50b727 libgcc/config/libbid/_addsub_dd.c ad8b5daba470d3a6579d78248ffa7c92 libgcc/config/libbid/_addsub_sd.c eec7e38d96b43c9118b42fc3cbee2a5f libgcc/config/libbid/_addsub_td.c --- 64248,64254 ---- b271243f3ea668919b7aa0bc58063de6 libgcc/config/ia64/vms-unwind.h 6a404f703b0a7e76acc46ccaae1d725d libgcc/config/iq2000/lib2funcs.c 102f7dad8ad6b54434a1b8313d1e42c4 libgcc/config/iq2000/t-iq2000 ! d566fe501eff320711aa884c63299cff libgcc/config/libbid/ChangeLog bc4a84dca1d7640acb8977fddc50b727 libgcc/config/libbid/_addsub_dd.c ad8b5daba470d3a6579d78248ffa7c92 libgcc/config/libbid/_addsub_sd.c eec7e38d96b43c9118b42fc3cbee2a5f libgcc/config/libbid/_addsub_td.c *************** b8976f2dd9f18cb249502ba793c2155d libgcc *** 64260,64272 **** 6bc2cab83a131e477cf374b606f1d239 libgcc/config/nvptx/nvptx-malloc.h 63522f5e1f92380eaa6ef2c752d6b6de libgcc/config/nvptx/reduction.c dffcd9969bf41775f6581a1dd31f351f libgcc/config/nvptx/t-nvptx ! c7cc3cf12f9adba6e11b9f036e67fb36 libgcc/config/pa/fptr.c b5ea7db9f2a22b5b7b8f31f6f8edd956 libgcc/config/pa/gthr-dce.h beadcbb36e29db4af5eb65522e70813e libgcc/config/pa/hpux-unwind.h ! c54c3a2c39e79a12c73ddf0c5e37b6fd libgcc/config/pa/lib2funcs.S ! 786047114461066d0f8e61d0bc18c31e libgcc/config/pa/linux-atomic.c a7dec62b6949025d65111d42c351ea73 libgcc/config/pa/linux-unwind.h ! d997b655dbdb8f99d36e0f0c34755d19 libgcc/config/pa/milli64.S dce608a3c87e08193d64cbdaa54e2233 libgcc/config/pa/pa64-hpux-lib.h ecb2861bf5e34f2220ef551dc49b81c5 libgcc/config/pa/quadlib.c 37555ac91c34eff5b83f116fb104e0bb libgcc/config/pa/stublib.c --- 64776,64788 ---- 6bc2cab83a131e477cf374b606f1d239 libgcc/config/nvptx/nvptx-malloc.h 63522f5e1f92380eaa6ef2c752d6b6de libgcc/config/nvptx/reduction.c dffcd9969bf41775f6581a1dd31f351f libgcc/config/nvptx/t-nvptx ! f71f80474fdd53053ad958491625dce2 libgcc/config/pa/fptr.c b5ea7db9f2a22b5b7b8f31f6f8edd956 libgcc/config/pa/gthr-dce.h beadcbb36e29db4af5eb65522e70813e libgcc/config/pa/hpux-unwind.h ! bd6278e65bcb4be370bf702870cb93ca libgcc/config/pa/lib2funcs.S ! 64ffeebe235a4fa4d6dbf2fcede3d6f1 libgcc/config/pa/linux-atomic.c a7dec62b6949025d65111d42c351ea73 libgcc/config/pa/linux-unwind.h ! b998ee4ab00780117eee52757de2defd libgcc/config/pa/milli64.S dce608a3c87e08193d64cbdaa54e2233 libgcc/config/pa/pa64-hpux-lib.h ecb2861bf5e34f2220ef551dc49b81c5 libgcc/config/pa/quadlib.c 37555ac91c34eff5b83f116fb104e0bb libgcc/config/pa/stublib.c *************** e04fe3d20b9a5c6c4cf56cd67382a1ad libgcc *** 64346,64352 **** 6e2a071fe17f9ac12ea2fa2f412fbc69 libgcc/config/rs6000/darwin-gpsave.S 6eb18581e71673540bbfcb96372ee6fb libgcc/config/rs6000/darwin-tramp.S 9d1aadd59f952cd852c0f483affc8f89 libgcc/config/rs6000/darwin-unwind.h ! 0a63e8624e12851e29c9935e23fc3f49 libgcc/config/rs6000/darwin-vecsave.S ae33e115f78bec8c83666519f341bb32 libgcc/config/rs6000/darwin-world.S 553b5b3861d8220121a4c020091396a8 libgcc/config/rs6000/e500crtres32gpr.S 9be7cb0a472ef2e70a76844966c79f20 libgcc/config/rs6000/e500crtres64gpr.S --- 64862,64868 ---- 6e2a071fe17f9ac12ea2fa2f412fbc69 libgcc/config/rs6000/darwin-gpsave.S 6eb18581e71673540bbfcb96372ee6fb libgcc/config/rs6000/darwin-tramp.S 9d1aadd59f952cd852c0f483affc8f89 libgcc/config/rs6000/darwin-unwind.h ! 6d7d0965769d3f1aaf7165f903a37838 libgcc/config/rs6000/darwin-vecsave.S ae33e115f78bec8c83666519f341bb32 libgcc/config/rs6000/darwin-world.S 553b5b3861d8220121a4c020091396a8 libgcc/config/rs6000/e500crtres32gpr.S 9be7cb0a472ef2e70a76844966c79f20 libgcc/config/rs6000/e500crtres64gpr.S *************** ae9fbb2d21d9ac45513f6d3df94f3d59 libgcc *** 64394,64401 **** 6dcccb0e93492b49bd7e2a1bfc2175c2 libgcc/config/rs6000/sol-cn.S 8e65197842ba39fd658038728475e572 libgcc/config/rs6000/t-aix-cxa 0d6637a7e112c021e7ce371918c7659c libgcc/config/rs6000/t-crtstuff ! fbf232aa523ca2f4bcf139e827eba2da libgcc/config/rs6000/t-darwin ! d7cdc73d7a8e658f872ea07474837bc2 libgcc/config/rs6000/t-darwin64 6bcbbeccaa021da0a7d1bdbd456a3435 libgcc/config/rs6000/t-e500v1-fp ef7d3fefd129fa59acb1b31acbb29702 libgcc/config/rs6000/t-e500v2-fp f9c993d20fe30bd0ec55ec5caf62518d libgcc/config/rs6000/t-float128 --- 64910,64917 ---- 6dcccb0e93492b49bd7e2a1bfc2175c2 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 6bcbbeccaa021da0a7d1bdbd456a3435 libgcc/config/rs6000/t-e500v1-fp ef7d3fefd129fa59acb1b31acbb29702 libgcc/config/rs6000/t-e500v2-fp f9c993d20fe30bd0ec55ec5caf62518d libgcc/config/rs6000/t-float128 *************** ada9a39786da3b2e999f7440a17a1ed7 libgcc *** 64502,64508 **** 7f567bcd22705a965e07f79e8f68ebaa libgcc/config/stormy16/umodsi3.c f199b38114ce849b77b38bd475d72cff libgcc/config/t-crtfm 060a49bb5c4a53a2125123d4cbd571de libgcc/config/t-crtstuff-pic ! d642b4a8c7de2f18dad59fd567c521f0 libgcc/config/t-darwin ee7ad6460936fc6f3f89ecb711376477 libgcc/config/t-dfprules d747115cbcc2bd56b6b4f73c350c2ae3 libgcc/config/t-eh-dw2-dip b9d08c1cbead9131f216accd515ec32c libgcc/config/t-fdpbit --- 65018,65024 ---- 7f567bcd22705a965e07f79e8f68ebaa libgcc/config/stormy16/umodsi3.c f199b38114ce849b77b38bd475d72cff libgcc/config/t-crtfm 060a49bb5c4a53a2125123d4cbd571de libgcc/config/t-crtstuff-pic ! 4062850a39423731508ce332c6f06273 libgcc/config/t-darwin ee7ad6460936fc6f3f89ecb711376477 libgcc/config/t-dfprules d747115cbcc2bd56b6b4f73c350c2ae3 libgcc/config/t-eh-dw2-dip b9d08c1cbead9131f216accd515ec32c libgcc/config/t-fdpbit *************** f5e07b4d53f51bc6c745e21ee9160a2e libgcc *** 64752,64758 **** 0aa8ba2bb5350d77b57720aaa4f27d15 libgcc/vtv_end_preinit.c 61dd4e929b7360c913bb73da6785fc3d libgcc/vtv_start.c ff8ccb48fa2495fe0bf8e6e56992bceb libgcc/vtv_start_preinit.c ! f6c020cf9e5ef65b87c8e52ca596cbd2 libgfortran/ChangeLog 9aca36338382e5b4b730e7779170b24d libgfortran/ChangeLog-2002 80d3edc880c2da0b7a2beec2e2c4f774 libgfortran/ChangeLog-2003 9f0239429993a5e64ed793eb6c55a5c1 libgfortran/ChangeLog-2004 --- 65268,65274 ---- 0aa8ba2bb5350d77b57720aaa4f27d15 libgcc/vtv_end_preinit.c 61dd4e929b7360c913bb73da6785fc3d libgcc/vtv_start.c ff8ccb48fa2495fe0bf8e6e56992bceb libgcc/vtv_start_preinit.c ! e907e3a5cebdb7ab92a457c294213155 libgfortran/ChangeLog 9aca36338382e5b4b730e7779170b24d libgfortran/ChangeLog-2002 80d3edc880c2da0b7a2beec2e2c4f774 libgfortran/ChangeLog-2003 9f0239429993a5e64ed793eb6c55a5c1 libgfortran/ChangeLog-2004 *************** f281a90f9c3ce551256344af337248ae libgfo *** 65407,65413 **** 60e1efa124856c90bf75f4aad4025c3a libgfortran/intrinsics/pack_generic.c be06b0a84413d3b2b040a27a23ba5f7a libgfortran/intrinsics/perror.c 78d85f8c99956917c9b5c8fc6235a06b libgfortran/intrinsics/rand.c ! 7ddd95cfefbf679622cf9f4bf55d81a4 libgfortran/intrinsics/random.c e9d4d53f546d779165363d6cbbf22939 libgfortran/intrinsics/rename.c 3db3158352d9096ba80d3da676d5db0c libgfortran/intrinsics/reshape_generic.c 3a7470aaa3be1e4df83d6008a1e5b203 libgfortran/intrinsics/reshape_packed.c --- 65923,65929 ---- 60e1efa124856c90bf75f4aad4025c3a libgfortran/intrinsics/pack_generic.c be06b0a84413d3b2b040a27a23ba5f7a libgfortran/intrinsics/perror.c 78d85f8c99956917c9b5c8fc6235a06b libgfortran/intrinsics/rand.c ! b5a081a00caaee9aa73309710fff7883 libgfortran/intrinsics/random.c e9d4d53f546d779165363d6cbbf22939 libgfortran/intrinsics/rename.c 3db3158352d9096ba80d3da676d5db0c libgfortran/intrinsics/reshape_generic.c 3a7470aaa3be1e4df83d6008a1e5b203 libgfortran/intrinsics/reshape_packed.c *************** f77170aa2a6af7a3e505b0950757e872 libgfo *** 65429,65435 **** 875c553f6b7f68a0b3698c459f2ff88c libgfortran/intrinsics/umask.c 3c8116b91a5fd4ed6c84c584e857b7ef libgfortran/intrinsics/unlink.c 5885b48f8e6cab42ede8bcf96f813d1b libgfortran/intrinsics/unpack_generic.c ! f953b4a58d3d5ca49fe330eb6fea5d8a libgfortran/io/close.c 7dc50bbffc606e5b1e695795c170369f libgfortran/io/fbuf.c 71e0d0ad94bfa124b31a26e49b51dd0c libgfortran/io/fbuf.h e735bc6badd6c15280405038275f0f91 libgfortran/io/file_pos.c --- 65945,65951 ---- 875c553f6b7f68a0b3698c459f2ff88c libgfortran/intrinsics/umask.c 3c8116b91a5fd4ed6c84c584e857b7ef libgfortran/intrinsics/unlink.c 5885b48f8e6cab42ede8bcf96f813d1b libgfortran/intrinsics/unpack_generic.c ! 0a07b6d424f03fa180d7f3884ca6d101 libgfortran/io/close.c 7dc50bbffc606e5b1e695795c170369f libgfortran/io/fbuf.c 71e0d0ad94bfa124b31a26e49b51dd0c libgfortran/io/fbuf.h e735bc6badd6c15280405038275f0f91 libgfortran/io/file_pos.c *************** ea6f74ca36ed9b8e4e0a090302ae62aa libgfo *** 65443,65455 **** 9b8a2a4d030a28a0fa32ea9648934dcc libgfortran/io/open.c 8540963a24bd87b37cd3e2ef3befd25c libgfortran/io/read.c 1c7c4368a1a6cc4cbc206abd1c68934a libgfortran/io/size_from_kind.c ! 805204503103abc8ebd77e5bd8c9c059 libgfortran/io/transfer.c 4c2c7eafd2d0335795f53c1a63829e6d libgfortran/io/transfer128.c a5f94c6e898523027475fd1beb16a402 libgfortran/io/unit.c cbaca42a11a35b340e7747c7b7f7c1e3 libgfortran/io/unix.c b693858bb490e3d3f86b419ea3032f26 libgfortran/io/unix.h 9495872a16d6a83a19d5a8fc03d5b16d libgfortran/io/write.c ! a3f7ebbaec0ece4c4e796216190466fc libgfortran/io/write_float.def 72d31c0b0a88f4512eb82ff83ef87081 libgfortran/kinds-override.h 148d6fdc81e9892fcefbd1674b4c53ad libgfortran/libgfortran.h 2527bb19b82f08b34038b07b172d029d libgfortran/libgfortran.spec.in --- 65959,65971 ---- 9b8a2a4d030a28a0fa32ea9648934dcc libgfortran/io/open.c 8540963a24bd87b37cd3e2ef3befd25c libgfortran/io/read.c 1c7c4368a1a6cc4cbc206abd1c68934a libgfortran/io/size_from_kind.c ! 54e95bb0fa5a895f20024a2b63993048 libgfortran/io/transfer.c 4c2c7eafd2d0335795f53c1a63829e6d libgfortran/io/transfer128.c a5f94c6e898523027475fd1beb16a402 libgfortran/io/unit.c cbaca42a11a35b340e7747c7b7f7c1e3 libgfortran/io/unix.c b693858bb490e3d3f86b419ea3032f26 libgfortran/io/unix.h 9495872a16d6a83a19d5a8fc03d5b16d libgfortran/io/write.c ! 747eefe2a4a0305fbba138e3a51439ff libgfortran/io/write_float.def 72d31c0b0a88f4512eb82ff83ef87081 libgfortran/kinds-override.h 148d6fdc81e9892fcefbd1674b4c53ad libgfortran/libgfortran.h 2527bb19b82f08b34038b07b172d029d libgfortran/libgfortran.spec.in *************** d5b66d8ff7aa9646e9241ce25683afa2 libgo/ *** 69018,69024 **** 5399e70b49321ce881a655dfb4603d1e libgo/testsuite/gotest ead4e721beb57b319fcd7da8ddf10705 libgo/testsuite/lib/libgo.exp 6df485581d2f02246f41b5ca46f5bb5d libgo/testsuite/libgo.testmain/testmain.exp ! cf3ef5823fe7f9ff3a9aa440a161ff3a libgomp/ChangeLog 0d55aa862aee66efdc5f8d62c94ff8fb libgomp/ChangeLog.graphite 55534454ed4bb50459c2c58ed02cad59 libgomp/Makefile.am 3afa7de402313c9d3311755688e27cb8 libgomp/Makefile.in --- 69534,69540 ---- 5399e70b49321ce881a655dfb4603d1e libgo/testsuite/gotest ead4e721beb57b319fcd7da8ddf10705 libgo/testsuite/lib/libgo.exp 6df485581d2f02246f41b5ca46f5bb5d libgo/testsuite/libgo.testmain/testmain.exp ! 370546b4039c878b21b170fb9e888aab libgomp/ChangeLog 0d55aa862aee66efdc5f8d62c94ff8fb libgomp/ChangeLog.graphite 55534454ed4bb50459c2c58ed02cad59 libgomp/Makefile.am 3afa7de402313c9d3311755688e27cb8 libgomp/Makefile.in *************** f2e3abab1161390ec02492ee5b386de5 libgom *** 69141,69147 **** f621c54e42a9b1406b5504019f903c37 libgomp/oacc-async.c bbc40b6692c1f59483277e4ba216f818 libgomp/oacc-cuda.c c74e3d61fec95f38c9108b806e56b9f6 libgomp/oacc-host.c ! 4f9369afa10eee8c313c8c66cf4348a2 libgomp/oacc-init.c d508015b7fb857c3609bb4c7b3303862 libgomp/oacc-int.h 341eae5f7b1634b92a12c974d8a6d3d4 libgomp/oacc-mem.c ea43fa08f78f7529c0ce0b9aff4b279d libgomp/oacc-parallel.c --- 69657,69663 ---- f621c54e42a9b1406b5504019f903c37 libgomp/oacc-async.c bbc40b6692c1f59483277e4ba216f818 libgomp/oacc-cuda.c c74e3d61fec95f38c9108b806e56b9f6 libgomp/oacc-host.c ! 6657447954f717cda92ae02d6fb19ce9 libgomp/oacc-init.c d508015b7fb857c3609bb4c7b3303862 libgomp/oacc-int.h 341eae5f7b1634b92a12c974d8a6d3d4 libgomp/oacc-mem.c ea43fa08f78f7529c0ce0b9aff4b279d libgomp/oacc-parallel.c *************** a3adecb174d96c98b914adb0813e2d1b libgom *** 69149,69155 **** 63bc8475de67440376af5da9991171d2 libgomp/oacc-plugin.h 82168b0aa8cd6cc22be4951f50aa70c4 libgomp/omp.h.in 761eee4353e7277065b0368e8be8915f libgomp/omp_lib.f90.in ! b9354d509f77a26fa976240e5dd8e8c0 libgomp/omp_lib.h.in 1dae47d97eec74bc20f12e69e90001c9 libgomp/openacc.f90 899b1b3af2790454645ed900385c1f59 libgomp/openacc.h bd287e782ca9ca3513b447031eeaf99a libgomp/openacc_lib.h --- 69665,69671 ---- 63bc8475de67440376af5da9991171d2 libgomp/oacc-plugin.h 82168b0aa8cd6cc22be4951f50aa70c4 libgomp/omp.h.in 761eee4353e7277065b0368e8be8915f libgomp/omp_lib.f90.in ! e7e1d9f584e33d567bf600978c0658b3 libgomp/omp_lib.h.in 1dae47d97eec74bc20f12e69e90001c9 libgomp/openacc.f90 899b1b3af2790454645ed900385c1f59 libgomp/openacc.h bd287e782ca9ca3513b447031eeaf99a libgomp/openacc_lib.h *************** d9a7298e78e8ea76741e66f95462261f libgom *** 69159,69165 **** b9f214e88e1727770afc1f9db29f2319 libgomp/plugin/configfrag.ac e16d8b74c66c42dfe1bfefef13b0a64f libgomp/plugin/cuda/cuda.h 16ed69fb21aeb5b329cbba3aca7ba1ef libgomp/plugin/hsa_ext_finalize.h ! b443b99c012094178fcb8fa2e9b63345 libgomp/plugin/plugin-hsa.c d0d22cb1f268380e88de92d2f38f0f68 libgomp/plugin/plugin-nvptx.c 349b1c204295e4c3de8a51e5c2bd1deb libgomp/priority_queue.c dca40fe9954326a1c856393514df27be libgomp/priority_queue.h --- 69675,69681 ---- b9f214e88e1727770afc1f9db29f2319 libgomp/plugin/configfrag.ac e16d8b74c66c42dfe1bfefef13b0a64f libgomp/plugin/cuda/cuda.h 16ed69fb21aeb5b329cbba3aca7ba1ef libgomp/plugin/hsa_ext_finalize.h ! 4c7a0750082c9a13b601af21e0d065d1 libgomp/plugin/plugin-hsa.c d0d22cb1f268380e88de92d2f38f0f68 libgomp/plugin/plugin-nvptx.c 349b1c204295e4c3de8a51e5c2bd1deb libgomp/priority_queue.c dca40fe9954326a1c856393514df27be libgomp/priority_queue.h *************** cae1fc2a9354c3a86718128ae4ce239b libgom *** 69398,69403 **** --- 69914,69921 ---- 325bc05f5a92dc21b7b2f0ecf33f9322 libgomp/testsuite/libgomp.c++/udr-18.C 72c7ea67ff8ae2b015a95ae0229913a7 libgomp/testsuite/libgomp.c++/udr-19.C d781578fb089699e0ef346a39952f9ba libgomp/testsuite/libgomp.c++/udr-2.C + 5b4b50c570b25d55796124f11168988d libgomp/testsuite/libgomp.c++/udr-20.C + 66c3ee1d97bf98787c71112cad84a23b libgomp/testsuite/libgomp.c++/udr-21.C 9fbc10fae7a305b6bd8fea38417fa68d libgomp/testsuite/libgomp.c++/udr-3.C ea9d7efadb5b2c25e305ce1e8aee8d04 libgomp/testsuite/libgomp.c++/udr-4.C 237e9df073e4ccf5adf875c41f053cb2 libgomp/testsuite/libgomp.c++/udr-5.C *************** f8306bcde3b73b14f3e4d12cc73d9544 libgom *** 69408,69413 **** --- 69926,69932 ---- 025dfca2b02c470cf7f46afb552c078c libgomp/testsuite/libgomp.c-c++-common/cancel-taskgroup-1.c 4066b4a4600721101ac384b659311782 libgomp/testsuite/libgomp.c-c++-common/pr81875.c 08611a968d3d5d8544391a554aa64d2e libgomp/testsuite/libgomp.c-c++-common/pr83046.c + bbbd1b345adde5e2b11d48880c03841d libgomp/testsuite/libgomp.c-c++-common/pr93515.c a33f34c1b9c57d52227eae6f7812f713 libgomp/testsuite/libgomp.c/affinity-1.c 1158aba9f91c847a376587e1a9d453a0 libgomp/testsuite/libgomp.c/affinity-2.c 5b7669d833c280f2eb266ac1f26d1462 libgomp/testsuite/libgomp.c/appendix-a/a.15.1.c *************** e768743d2af95f59780e3418077b7e1e libgom *** 69674,69679 **** --- 70193,70199 ---- 5996dc15da52a000b77c153bb70588f6 libgomp/testsuite/libgomp.c/pr81687-2.c ed00c0e197dcbbf46f44ea320b473f78 libgomp/testsuite/libgomp.c/pr86660.c 98b922b1cdf2f28ae03ab1ce3c81629a libgomp/testsuite/libgomp.c/pr89002.c + c809670e9df5e9371adcd7582c352fe5 libgomp/testsuite/libgomp.c/pr90811.c 2a0a447db3ae892c0c62b0136b00360e libgomp/testsuite/libgomp.c/priority.c ea7c9e74bda402b1663a903b26400fab libgomp/testsuite/libgomp.c/private-1.c a594cebdf052900dd0c8792068e14d85 libgomp/testsuite/libgomp.c/reduction-1.c *************** f34e0c37442a4a7019dadca0b34ac11d libgom *** 69821,69826 **** --- 70341,70347 ---- 2c2ab56c5741226dd3be35ac891385a6 libgomp/testsuite/libgomp.fortran/associate1.f90 b4c15022416962dcec51efe75df665a7 libgomp/testsuite/libgomp.fortran/associate2.f90 4a53fa8fb79d2d9f8e1498e0bc47f999 libgomp/testsuite/libgomp.fortran/associate3.f90 + 0cf6fc87987dbd18ee6f54a20ad2c091 libgomp/testsuite/libgomp.fortran/atomic1.f90 4d455a0a3b8e0006a359454c3fb17aec libgomp/testsuite/libgomp.fortran/cancel-do-1.f90 dd51543eb89b458e7a62739bd9e26d57 libgomp/testsuite/libgomp.fortran/cancel-do-2.f90 7f4a53305903de225bc7d7bb581cb477 libgomp/testsuite/libgomp.fortran/cancel-parallel-1.f90 *************** ee7521ad4aa9a4706a403ccbc2d58f80 libgom *** 70457,70463 **** ca78ca2ee2a528893865330c2b0d05bc libgomp/testsuite/libgomp.oacc-fortran/subarrays-2.f90 e8a3245c095430c8ef2413afe2ee4c48 libgomp/testsuite/libgomp.oacc-fortran/update-1.f90 c67ec2e385386e9cd884ca6e2db70c96 libgomp/work.c ! 3ca1f762d3fcf50d35e5e2aa7518df2a libhsail-rt/ChangeLog 9147b482b39962a71e580b4a8265285e libhsail-rt/Makefile.am a38674477ad0a784b375b84f710eb630 libhsail-rt/Makefile.in de97a355fadb5753d182cbcf06b1b33a libhsail-rt/README --- 70978,70984 ---- ca78ca2ee2a528893865330c2b0d05bc libgomp/testsuite/libgomp.oacc-fortran/subarrays-2.f90 e8a3245c095430c8ef2413afe2ee4c48 libgomp/testsuite/libgomp.oacc-fortran/update-1.f90 c67ec2e385386e9cd884ca6e2db70c96 libgomp/work.c ! 3a74498c146f6cca323f027256d53c1c libhsail-rt/ChangeLog 9147b482b39962a71e580b4a8265285e libhsail-rt/Makefile.am a38674477ad0a784b375b84f710eb630 libhsail-rt/Makefile.in de97a355fadb5753d182cbcf06b1b33a libhsail-rt/README *************** cf2af200b91048d551f109843d246196 libhsa *** 70484,70490 **** ef9f05873915c22cae79ef5545355353 libhsail-rt/target-config.h.in 99c2e5e712b990ee07be10f53e41f3fb libiberty/.gitignore a916467b91076e631dd8edb7424769c7 libiberty/COPYING.LIB ! bef9bd7a66030a5c682adf3ed9857cee libiberty/ChangeLog 347c31392973de6a4872d540c1718dc1 libiberty/ChangeLog.jit b7d09397fa5854702176b44d5620224c libiberty/Makefile.in c68dbf7834af4281ebd84caa3fd54680 libiberty/README --- 71005,71011 ---- ef9f05873915c22cae79ef5545355353 libhsail-rt/target-config.h.in 99c2e5e712b990ee07be10f53e41f3fb libiberty/.gitignore a916467b91076e631dd8edb7424769c7 libiberty/COPYING.LIB ! 2f36ddd07144d5ad74967cc7eefbdee6 libiberty/ChangeLog 347c31392973de6a4872d540c1718dc1 libiberty/ChangeLog.jit b7d09397fa5854702176b44d5620224c libiberty/Makefile.in c68dbf7834af4281ebd84caa3fd54680 libiberty/README *************** d2fbd69c4dbaecd5d4ebdb169daee6a8 libibe *** 70589,70595 **** 284bb7a096480b355b75c337086220a2 libiberty/sigsetmask.c 82761d9f6573203298572c35ae6a8d92 libiberty/simple-object-coff.c 86c2b58dcbca0ddaa516e65b95e84ce1 libiberty/simple-object-common.h ! 37d33a83da9a8c0944417404c809f648 libiberty/simple-object-elf.c 93dd698684effc8a4f33cd522941397d libiberty/simple-object-mach-o.c 8b384697dd6c0500a48a8deda57ab756 libiberty/simple-object-xcoff.c f483c26c131a53ee3dec5a5f4e7272d9 libiberty/simple-object.c --- 71110,71116 ---- 284bb7a096480b355b75c337086220a2 libiberty/sigsetmask.c 82761d9f6573203298572c35ae6a8d92 libiberty/simple-object-coff.c 86c2b58dcbca0ddaa516e65b95e84ce1 libiberty/simple-object-common.h ! 63150cd353e99f4832cacdb8fb335367 libiberty/simple-object-elf.c 93dd698684effc8a4f33cd522941397d libiberty/simple-object-mach-o.c 8b384697dd6c0500a48a8deda57ab756 libiberty/simple-object-xcoff.c f483c26c131a53ee3dec5a5f4e7272d9 libiberty/simple-object.c *************** b2c289eb14e9197dcad172f3acba12b7 libibe *** 70648,70654 **** 6f774a92661ca4a067f1691a7925524b libiberty/xstrerror.c 1c473960735644ebe9746b641c8fc08b libiberty/xstrndup.c 5c487ad9b00e5ed38ae0f00fc04f7463 libiberty/xvasprintf.c ! 91ad7eeb875b4f72987b78735ab6ea8d libitm/ChangeLog f0841cbe677cca223ebc3864c6840fb3 libitm/Makefile.am e1255afd6132994f7f06afc4d668acc8 libitm/Makefile.in 61fc1a86d6e23c6680a7d504a4f424d3 libitm/aatree.cc --- 71169,71175 ---- 6f774a92661ca4a067f1691a7925524b libiberty/xstrerror.c 1c473960735644ebe9746b641c8fc08b libiberty/xstrndup.c 5c487ad9b00e5ed38ae0f00fc04f7463 libiberty/xvasprintf.c ! 3b44c35cc69d4a0653427938ae1afcf9 libitm/ChangeLog f0841cbe677cca223ebc3864c6840fb3 libitm/Makefile.am e1255afd6132994f7f06afc4d668acc8 libitm/Makefile.in 61fc1a86d6e23c6680a7d504a4f424d3 libitm/aatree.cc *************** d158bc2daf89b4f087badcf1148937e6 libitm *** 70691,70697 **** 27ac1998f82c019272804ff36175661c libitm/config/powerpc/target.h fc8320f2db766eeb3285280bf7e9847d libitm/config/s390/sjlj.S 4e9b2ba8f77bb3ba3bc50bae5687b84f libitm/config/s390/target.h ! 54af1e24e8c388275cac131330420c7a libitm/config/sh/sjlj.S 93a74d9d8780e66998c35d4c7dc859b6 libitm/config/sh/target.h ef804fc5a94e57d0e7cb5304cb1d8b24 libitm/config/sparc/sjlj.S 0d89c5d7efa71aba071c7a1a85b94907 libitm/config/sparc/target.h --- 71212,71218 ---- 27ac1998f82c019272804ff36175661c libitm/config/powerpc/target.h fc8320f2db766eeb3285280bf7e9847d libitm/config/s390/sjlj.S 4e9b2ba8f77bb3ba3bc50bae5687b84f libitm/config/s390/target.h ! bb4b01fb330a967d0a001ea8dcdc766b libitm/config/sh/sjlj.S 93a74d9d8780e66998c35d4c7dc859b6 libitm/config/sh/target.h ef804fc5a94e57d0e7cb5304cb1d8b24 libitm/config/sparc/sjlj.S 0d89c5d7efa71aba071c7a1a85b94907 libitm/config/sparc/target.h *************** b4e503ecfdccc9f13da8f73eeb6f23a9 libitm *** 70751,70757 **** ef24198422c19f99b0c41be6a16f7081 libitm/testsuite/libitm.c/txrelease.c 5a07467ef2e51e7198096e55045bc668 libitm/useraction.cc ea804fc9b7f5665938cb44285cad0633 libitm/util.cc ! 15f11eadd6f413409d0c21582f82e045 libmpx/ChangeLog 08c39b0de69ded1b0ec0d079e8ffa278 libmpx/Makefile.am dd63e64acaa22d5f260d305a19d7c84e libmpx/Makefile.in 59ba4807cf0f71eba4361c3be341ae58 libmpx/acinclude.m4 --- 71272,71278 ---- ef24198422c19f99b0c41be6a16f7081 libitm/testsuite/libitm.c/txrelease.c 5a07467ef2e51e7198096e55045bc668 libitm/useraction.cc ea804fc9b7f5665938cb44285cad0633 libitm/util.cc ! cb5bea23612c0c783a6784776a7f288d libmpx/ChangeLog 08c39b0de69ded1b0ec0d079e8ffa278 libmpx/Makefile.am dd63e64acaa22d5f260d305a19d7c84e libmpx/Makefile.in 59ba4807cf0f71eba4361c3be341ae58 libmpx/acinclude.m4 *************** d2fc1c363920a36ea4f3927fa646eab8 libmpx *** 70774,70780 **** e7c62aca341ea472234d7cb0bc4af328 libmpx/mpxwrap/libmpxwrappers.map 240daa7f37ceeb22e331595ac7363fe8 libmpx/mpxwrap/libtool-version 84b2ae6cc72d1bc6af32bbf75fdf747b libmpx/mpxwrap/mpx_wrappers.c ! c37a482476813f9e41e2acdf180ef176 libobjc/ChangeLog 7d008332e098e2af6624d9758e85926f libobjc/Makefile.in 93d27f8450c569cd7cea0063fff63376 libobjc/NXConstStr.m 45674d682d9d5737541bca6a0836270d libobjc/Object.m --- 71295,71301 ---- e7c62aca341ea472234d7cb0bc4af328 libmpx/mpxwrap/libmpxwrappers.map 240daa7f37ceeb22e331595ac7363fe8 libmpx/mpxwrap/libtool-version 84b2ae6cc72d1bc6af32bbf75fdf747b libmpx/mpxwrap/mpx_wrappers.c ! cdcc0a53558a043a19b9f9ede88b2ae8 libobjc/ChangeLog 7d008332e098e2af6624d9758e85926f libobjc/Makefile.in 93d27f8450c569cd7cea0063fff63376 libobjc/NXConstStr.m 45674d682d9d5737541bca6a0836270d libobjc/Object.m *************** f81efea7a2f6cf641b42ff3e410bbf9d libobj *** 70831,70837 **** 66dcc830fd378f3cb8e075e37ac22af3 libobjc/selector.c 0395b628d68612c1d62d72a0607b04b6 libobjc/sendmsg.c 3bc9da57ef6f3dbcf87349c9c17c40b5 libobjc/thr.c ! d88e6824feae22f48cfc94d9321618d8 liboffloadmic/ChangeLog 04abd6719c66f08c91fbd9f04b69d3f5 liboffloadmic/Makefile.am 30b43aa8aba9a4769f58028e2f0424f7 liboffloadmic/Makefile.in 49cb389d7dff64b95e25b4d7e85c7ecf liboffloadmic/aclocal.m4 --- 71352,71358 ---- 66dcc830fd378f3cb8e075e37ac22af3 libobjc/selector.c 0395b628d68612c1d62d72a0607b04b6 libobjc/sendmsg.c 3bc9da57ef6f3dbcf87349c9c17c40b5 libobjc/thr.c ! 27f5ed228df886bbfd4cb4a3f61ee7d2 liboffloadmic/ChangeLog 04abd6719c66f08c91fbd9f04b69d3f5 liboffloadmic/Makefile.am 30b43aa8aba9a4769f58028e2f0424f7 liboffloadmic/Makefile.in 49cb389d7dff64b95e25b4d7e85c7ecf liboffloadmic/aclocal.m4 *************** b1def68202639bd452fb59aea3371fe4 liboff *** 70920,70926 **** cc603cdf253cc686bfcee192bb7630df liboffloadmic/runtime/orsl-lite/lib/orsl-lite.c dff5c8575c49d6aa71e549b0fa021479 liboffloadmic/runtime/orsl-lite/version.txt a916467b91076e631dd8edb7424769c7 libquadmath/COPYING.LIB ! 81f5b09d81bf165f9ac08757e710af3e libquadmath/ChangeLog 31439f2092557562291450eceb31cd0f libquadmath/Makefile.am eb6557055ad3027b4e6b039c86d570da libquadmath/Makefile.in d9afbc1f1e04c7e461265ff9323cc6f4 libquadmath/acinclude.m4 --- 71441,71447 ---- cc603cdf253cc686bfcee192bb7630df liboffloadmic/runtime/orsl-lite/lib/orsl-lite.c dff5c8575c49d6aa71e549b0fa021479 liboffloadmic/runtime/orsl-lite/version.txt a916467b91076e631dd8edb7424769c7 libquadmath/COPYING.LIB ! 1df96a9ff3279c0fba1a61e2601540d3 libquadmath/ChangeLog 31439f2092557562291450eceb31cd0f libquadmath/Makefile.am eb6557055ad3027b4e6b039c86d570da libquadmath/Makefile.in d9afbc1f1e04c7e461265ff9323cc6f4 libquadmath/acinclude.m4 *************** e1960c6cccb78a5a2d60bdfe428c9d1b libqua *** 71044,71050 **** d2588a7f4e04e453e8926777100a5490 libquadmath/printf/submul_1.c 9d08eb52806ffe1fdfcb466db72f6b1b libquadmath/quadmath-imp.h 50709da39971589779199b3433120e3e libquadmath/quadmath-rounding-mode.h ! ac7ffb6b3b54d00b65c653d8207b9ed5 libquadmath/quadmath.h fc051f1b6573329e749733b661b30677 libquadmath/quadmath.map 95a02a6553e7ab525a199590417d4af9 libquadmath/quadmath_weak.h e766022f8615b72cbc38335d262e9d3d libquadmath/strtod/grouping.h --- 71565,71571 ---- d2588a7f4e04e453e8926777100a5490 libquadmath/printf/submul_1.c 9d08eb52806ffe1fdfcb466db72f6b1b libquadmath/quadmath-imp.h 50709da39971589779199b3433120e3e libquadmath/quadmath-rounding-mode.h ! 6656317fe45e1ed0025877f456cfcf1b libquadmath/quadmath.h fc051f1b6573329e749733b661b30677 libquadmath/quadmath.map 95a02a6553e7ab525a199590417d4af9 libquadmath/quadmath_weak.h e766022f8615b72cbc38335d262e9d3d libquadmath/strtod/grouping.h *************** e766022f8615b72cbc38335d262e9d3d libqua *** 71052,71058 **** a81cc82679e80c86cfbd5575867450d0 libquadmath/strtod/strtod_l.c da808e110fc09ebd41ebd405790a70df libquadmath/strtod/strtoflt128.c d15a18f7c46ba2add6148edc5b7563c0 libquadmath/strtod/tens_in_limb.c ! 85eaf866d58177e5328068c54a2ab78c libsanitizer/ChangeLog c5b0b63dd90ad073654139697e69d009 libsanitizer/HOWTO_MERGE 0249c37748936faf5b1efd5789587909 libsanitizer/LICENSE.TXT f11d8e68ccf5dbd2281333342f0cea86 libsanitizer/LOCAL_PATCHES --- 71573,71579 ---- a81cc82679e80c86cfbd5575867450d0 libquadmath/strtod/strtod_l.c da808e110fc09ebd41ebd405790a70df libquadmath/strtod/strtoflt128.c d15a18f7c46ba2add6148edc5b7563c0 libquadmath/strtod/tens_in_limb.c ! 30b55ecbce5b36154bf0d5a9eed3eaa0 libsanitizer/ChangeLog c5b0b63dd90ad073654139697e69d009 libsanitizer/HOWTO_MERGE 0249c37748936faf5b1efd5789587909 libsanitizer/LICENSE.TXT f11d8e68ccf5dbd2281333342f0cea86 libsanitizer/LOCAL_PATCHES *************** ba863cde49bfd0852ac8471c23fff987 libsan *** 71271,71278 **** 12e351892dc0c5187a76637811e4fe78 libsanitizer/sanitizer_common/sanitizer_platform_limits_linux.cc bf83351f76a21b8e31a7b0ddb90d4f25 libsanitizer/sanitizer_common/sanitizer_platform_limits_netbsd.cc 6f015933e239a9b36914e7fef5350cb5 libsanitizer/sanitizer_common/sanitizer_platform_limits_netbsd.h ! 91e6a839321ad7efc8d499cec67d69dc libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc ! 5014bd63f0884ec761d7a9531521fe1b libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h cb36de7c4a74dc34a8c607ba59d67421 libsanitizer/sanitizer_common/sanitizer_posix.cc e14dd858b7329762ae6f0903a60bf243 libsanitizer/sanitizer_common/sanitizer_posix.h ef33962167fb3a32a0c968bf2cf8ae44 libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cc --- 71792,71799 ---- 12e351892dc0c5187a76637811e4fe78 libsanitizer/sanitizer_common/sanitizer_platform_limits_linux.cc bf83351f76a21b8e31a7b0ddb90d4f25 libsanitizer/sanitizer_common/sanitizer_platform_limits_netbsd.cc 6f015933e239a9b36914e7fef5350cb5 libsanitizer/sanitizer_common/sanitizer_platform_limits_netbsd.h ! 9afcfcca97d088141aca58d3cc2c17db libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc ! a097fa15a6c35b297bb9ad1eaacfb918 libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h cb36de7c4a74dc34a8c607ba59d67421 libsanitizer/sanitizer_common/sanitizer_posix.cc e14dd858b7329762ae6f0903a60bf243 libsanitizer/sanitizer_common/sanitizer_posix.h ef33962167fb3a32a0c968bf2cf8ae44 libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cc *************** c5879d18c940a4f39d0fa273fd180cec libsan *** 71426,71432 **** 46e3b6415e85a8bbfc9c5ea5256eba29 libsanitizer/ubsan/ubsan_win_dll_thunk.cc a42bfadb27dcd986b87e4c05b987ec4f libsanitizer/ubsan/ubsan_win_dynamic_runtime_thunk.cc fbe131ba54e0deb0af35869b10c45e4a libsanitizer/ubsan/ubsan_win_weak_interception.cc ! c934970cb657c0dc63e394e43ce0893e libssp/ChangeLog 2fbb6d42c9219e5a15363976ae7ba49e libssp/Makefile.am b0a50bbb91d3f61cc74b49b8b438feda libssp/Makefile.in 3f58b0fe2019cd8e6090e6d5d51d233e libssp/aclocal.m4 --- 71947,71953 ---- 46e3b6415e85a8bbfc9c5ea5256eba29 libsanitizer/ubsan/ubsan_win_dll_thunk.cc a42bfadb27dcd986b87e4c05b987ec4f libsanitizer/ubsan/ubsan_win_dynamic_runtime_thunk.cc fbe131ba54e0deb0af35869b10c45e4a libsanitizer/ubsan/ubsan_win_weak_interception.cc ! 65d9504e75cf1be2e4f4e7e5ab9d40b5 libssp/ChangeLog 2fbb6d42c9219e5a15363976ae7ba49e libssp/Makefile.am b0a50bbb91d3f61cc74b49b8b438feda libssp/Makefile.in 3f58b0fe2019cd8e6090e6d5d51d233e libssp/aclocal.m4 *************** d039df3e0460a3ce2b6abaa4400e2119 libssp *** 71455,71461 **** 7c46bef1a3dc65ab5b4618934d31d669 libssp/strncpy-chk.c 760e66133a54c359be987217ce04682b libssp/vsnprintf-chk.c 09019d4ee8eb193fa49db0552d95d655 libssp/vsprintf-chk.c ! 38289c9d65ca5f386d25cc96acedf6ba libstdc++-v3/ChangeLog 7aa6c40440a44fcf5ec94c066160c2f8 libstdc++-v3/ChangeLog-1998 7aff86600b6a1ed3fa87305075a92db0 libstdc++-v3/ChangeLog-1999 a6f28e8fc9bb07696a9e068b439a3a87 libstdc++-v3/ChangeLog-2000 --- 71976,71982 ---- 7c46bef1a3dc65ab5b4618934d31d669 libssp/strncpy-chk.c 760e66133a54c359be987217ce04682b libssp/vsnprintf-chk.c 09019d4ee8eb193fa49db0552d95d655 libssp/vsprintf-chk.c ! 20354a64d2f97f17afc9d3b04f473b56 libstdc++-v3/ChangeLog 7aa6c40440a44fcf5ec94c066160c2f8 libstdc++-v3/ChangeLog-1998 7aff86600b6a1ed3fa87305075a92db0 libstdc++-v3/ChangeLog-1999 a6f28e8fc9bb07696a9e068b439a3a87 libstdc++-v3/ChangeLog-2000 *************** b331fae97e334afde1bd5fa125610458 libstd *** 71477,71487 **** 7bafaec51877b01c0fa5a1c20b004559 libstdc++-v3/ChangeLog-2016 ced62eb7e4ae82690abb361aefcea876 libstdc++-v3/ChangeLog-2017 880a8ed9312c3d9bbe45d15bdbd7c540 libstdc++-v3/Makefile.am ! b2454ab35b74b502f57f8b441b533f05 libstdc++-v3/Makefile.in f372af73db4ac0ad88e43199e1f29e08 libstdc++-v3/README ! 0de3e35634cddecd9a98ce1b3b240b42 libstdc++-v3/acinclude.m4 2a88f1fcc47abc6e54fb44954da2919a libstdc++-v3/aclocal.m4 ! 87fbeac1c46b6e1f23aa3f0066fef94f libstdc++-v3/config.h.in d8ee8534629ad067e967bc0a0a30a4f5 libstdc++-v3/config/abi/compatibility.h b4bb5d911464a4e5ce4e8d2fbde122b5 libstdc++-v3/config/abi/post/aarch64-linux-gnu/baseline_symbols.txt f5bfb76447e675a88fa1dbb27d052e72 libstdc++-v3/config/abi/post/alpha-linux-gnu/baseline_symbols.txt --- 71998,72008 ---- 7bafaec51877b01c0fa5a1c20b004559 libstdc++-v3/ChangeLog-2016 ced62eb7e4ae82690abb361aefcea876 libstdc++-v3/ChangeLog-2017 880a8ed9312c3d9bbe45d15bdbd7c540 libstdc++-v3/Makefile.am ! 4a11534587dfd46e34df85d46cffacc3 libstdc++-v3/Makefile.in f372af73db4ac0ad88e43199e1f29e08 libstdc++-v3/README ! 43446d458a3c26875a73a6a5837cd97c libstdc++-v3/acinclude.m4 2a88f1fcc47abc6e54fb44954da2919a libstdc++-v3/aclocal.m4 ! 452c1b32d3e4b9ac04aaea9528008998 libstdc++-v3/config.h.in d8ee8534629ad067e967bc0a0a30a4f5 libstdc++-v3/config/abi/compatibility.h b4bb5d911464a4e5ce4e8d2fbde122b5 libstdc++-v3/config/abi/post/aarch64-linux-gnu/baseline_symbols.txt f5bfb76447e675a88fa1dbb27d052e72 libstdc++-v3/config/abi/post/alpha-linux-gnu/baseline_symbols.txt *************** b340310bcafdb96731e994002e89ae1d libstd *** 71600,71606 **** e3a2165e12fb7d45c8b29b0ad54160e2 libstdc++-v3/config/os/bsd/darwin/ctype_configure_char.cc fb34842d90928c4410e9069a4b9b05d4 libstdc++-v3/config/os/bsd/darwin/ctype_inline.h 84facc9314919abcf0d9a74786c7e9ca libstdc++-v3/config/os/bsd/darwin/os_defines.h ! 96acc6c320b15094b860bd727d99a90f libstdc++-v3/config/os/bsd/darwin/ppc-extra.ver 8dc8e1c026e08e8584d4c932710ba2bf libstdc++-v3/config/os/bsd/dragonfly/ctype_base.h c3906565fd05f5eaff287781db2b7790 libstdc++-v3/config/os/bsd/dragonfly/ctype_configure_char.cc 7cbe6f8482d1c579c1a27322f08164a2 libstdc++-v3/config/os/bsd/dragonfly/ctype_inline.h --- 72121,72127 ---- e3a2165e12fb7d45c8b29b0ad54160e2 libstdc++-v3/config/os/bsd/darwin/ctype_configure_char.cc fb34842d90928c4410e9069a4b9b05d4 libstdc++-v3/config/os/bsd/darwin/ctype_inline.h 84facc9314919abcf0d9a74786c7e9ca libstdc++-v3/config/os/bsd/darwin/os_defines.h ! 64eaf8f8fdcbdbe03f5e656342cb13dc libstdc++-v3/config/os/bsd/darwin/ppc-extra.ver 8dc8e1c026e08e8584d4c932710ba2bf libstdc++-v3/config/os/bsd/dragonfly/ctype_base.h c3906565fd05f5eaff287781db2b7790 libstdc++-v3/config/os/bsd/dragonfly/ctype_configure_char.cc 7cbe6f8482d1c579c1a27322f08164a2 libstdc++-v3/config/os/bsd/dragonfly/ctype_inline.h *************** f1a91225f9eb6e6ad04e3b1950bfecc5 libstd *** 71671,71682 **** 48d9e86ad4ef42901bd75da6d033735d libstdc++-v3/config/os/vxworks/ctype_configure_char.cc 69b3ded0fef25251ec3cc455c63ccb35 libstdc++-v3/config/os/vxworks/ctype_inline.h 9ab732d9a797dc9f1e4b3737a660a811 libstdc++-v3/config/os/vxworks/os_defines.h ! a30626827cfc39ca916f92f9ad9f265a libstdc++-v3/configure ! 2dc4794c156921badcc27653de5e01c3 libstdc++-v3/configure.ac 011a5e201f8d9c1d58f79a6e76f94900 libstdc++-v3/configure.host f4237aa0d451589ec49f489c2f4a3d26 libstdc++-v3/crossconfig.m4 ! a73416d547c6e45dc617080622b99327 libstdc++-v3/doc/Makefile.am ! e336a04070b2b4a61b3eab18b428e7b9 libstdc++-v3/doc/Makefile.in 3f7ff07f68cc7610addc1921bc125548 libstdc++-v3/doc/doxygen/Intro.3 52a6a337155d5af357625d178eca46b8 libstdc++-v3/doc/doxygen/doxygroups.cc 520db39aef0e2a59418132af88b897ed libstdc++-v3/doc/doxygen/mainpage.html --- 72192,72203 ---- 48d9e86ad4ef42901bd75da6d033735d libstdc++-v3/config/os/vxworks/ctype_configure_char.cc 69b3ded0fef25251ec3cc455c63ccb35 libstdc++-v3/config/os/vxworks/ctype_inline.h 9ab732d9a797dc9f1e4b3737a660a811 libstdc++-v3/config/os/vxworks/os_defines.h ! 4306eed0b221872faa90f82dba904600 libstdc++-v3/configure ! 72e4890e69e80c885b055559df8d5545 libstdc++-v3/configure.ac 011a5e201f8d9c1d58f79a6e76f94900 libstdc++-v3/configure.host f4237aa0d451589ec49f489c2f4a3d26 libstdc++-v3/crossconfig.m4 ! 31981bd8fa960e039dc88ae3619aa496 libstdc++-v3/doc/Makefile.am ! 5caa6d645187727a7029f62582fe9371 libstdc++-v3/doc/Makefile.in 3f7ff07f68cc7610addc1921bc125548 libstdc++-v3/doc/doxygen/Intro.3 52a6a337155d5af357625d178eca46b8 libstdc++-v3/doc/doxygen/doxygroups.cc 520db39aef0e2a59418132af88b897ed libstdc++-v3/doc/doxygen/mainpage.html *************** ee599e042e0ab46c3d78dd8675b8ba7f libstd *** 71687,71693 **** edf4fe529876f5d89b6d9b73fe2569dc libstdc++-v3/doc/html/api.html fd168dc2b2d0c12b1e17b40ffec96390 libstdc++-v3/doc/html/bk02.html 47886ba7da131bf3cbf81a27cada5f6f libstdc++-v3/doc/html/bk03.html ! bb09d30aca2fbea5a1c4cc2d0f1ccf1b 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 --- 72208,72214 ---- edf4fe529876f5d89b6d9b73fe2569dc libstdc++-v3/doc/html/api.html fd168dc2b2d0c12b1e17b40ffec96390 libstdc++-v3/doc/html/bk02.html 47886ba7da131bf3cbf81a27cada5f6f libstdc++-v3/doc/html/bk03.html ! 1d6878273835d3cad196580169aa5f42 libstdc++-v3/doc/html/faq.html 1ae70f0bf94464b036515d333fff8ab2 libstdc++-v3/doc/html/images/confdeps.png d7f63b43e9f4c39cf71de7585de522ee libstdc++-v3/doc/html/images/pbds_balls_and_bins.png 22eedc841676a98f8ae8b95131ac4d7e libstdc++-v3/doc/html/images/pbds_binary_priority_queue_int_push.png *************** d7249eb4d31bd107d0b09ea3c80cb723 libstd *** 71767,71778 **** 1d86b338a316806c80b250eb132ac6dd libstdc++-v3/doc/html/images/pbds_tree_text_lor_find.png 33bc39e8f2d47f3d490d7ca7d4832b43 libstdc++-v3/doc/html/images/pbds_trie_node_updator_policy_cd.png df705f3839120dcb896e9839cf3404d0 libstdc++-v3/doc/html/images/pbds_update_seq_diagram.png ! 1e18c95592576257635f20334f859574 libstdc++-v3/doc/html/index.html 52a798524b2b09bcf01d7715562cb609 libstdc++-v3/doc/html/manual/abi.html 4ce10e27356ac31a5b7962aecbeb3638 libstdc++-v3/doc/html/manual/algorithms.html ! 398b32669587014a18d6aaf46f12c664 libstdc++-v3/doc/html/manual/api.html 54dd1e43f1bd7c3e8db1a59012fff57d libstdc++-v3/doc/html/manual/appendix.html ! 2e203459294270410e5c5c7c6dca5cd5 libstdc++-v3/doc/html/manual/appendix_contributing.html 0b45d6195986f5092b2354c1f678a790 libstdc++-v3/doc/html/manual/appendix_free.html 31b030eb32be4f6fa6ea75f183787741 libstdc++-v3/doc/html/manual/appendix_gfdl.html 6f716660c6221f5daa1a8841e82d3f97 libstdc++-v3/doc/html/manual/appendix_gpl.html --- 72288,72299 ---- 1d86b338a316806c80b250eb132ac6dd libstdc++-v3/doc/html/images/pbds_tree_text_lor_find.png 33bc39e8f2d47f3d490d7ca7d4832b43 libstdc++-v3/doc/html/images/pbds_trie_node_updator_policy_cd.png df705f3839120dcb896e9839cf3404d0 libstdc++-v3/doc/html/images/pbds_update_seq_diagram.png ! 3f37debbdfaf68920cfd09ade2778e62 libstdc++-v3/doc/html/index.html 52a798524b2b09bcf01d7715562cb609 libstdc++-v3/doc/html/manual/abi.html 4ce10e27356ac31a5b7962aecbeb3638 libstdc++-v3/doc/html/manual/algorithms.html ! 53e7bcd18f9ae12f54c63412fa0d3193 libstdc++-v3/doc/html/manual/api.html 54dd1e43f1bd7c3e8db1a59012fff57d libstdc++-v3/doc/html/manual/appendix.html ! fd7e395b897066e7d5a445e73654946e libstdc++-v3/doc/html/manual/appendix_contributing.html 0b45d6195986f5092b2354c1f678a790 libstdc++-v3/doc/html/manual/appendix_free.html 31b030eb32be4f6fa6ea75f183787741 libstdc++-v3/doc/html/manual/appendix_gfdl.html 6f716660c6221f5daa1a8841e82d3f97 libstdc++-v3/doc/html/manual/appendix_gpl.html *************** b8ac9fc2f2cfcaed0450c79e2fb01569 libstd *** 71782,71800 **** 5861d1e084df31a36567b1e081c3deab libstdc++-v3/doc/html/manual/backwards.html eed66bf6108dd329e892b6e813b80906 libstdc++-v3/doc/html/manual/bitmap_allocator.html 9492db633acbfab53feaff0b37361e68 libstdc++-v3/doc/html/manual/bitmap_allocator_impl.html ! 617d14df4ed322e4e385a561514b8703 libstdc++-v3/doc/html/manual/bugs.html cc3700f2fde50987f186f23abf98a7b1 libstdc++-v3/doc/html/manual/concept_checking.html f3a54a6315d716742603d33f454f2c19 libstdc++-v3/doc/html/manual/concurrency.html ef792a711c76c67c86fc2fa8174c2980 libstdc++-v3/doc/html/manual/configure.html 4bccee4ac05257d0c5dfc90aeee91604 libstdc++-v3/doc/html/manual/containers.html c7e40c1085e414b3b4d5896db4013205 libstdc++-v3/doc/html/manual/containers_and_c.html ! 012dc3d3a4e5423c2fba69d5a3949d93 libstdc++-v3/doc/html/manual/debug.html 1bd34529d162b6f3a08d5f2ea4943c6a libstdc++-v3/doc/html/manual/debug_mode.html 1cdde24f16865575b93bcb86156f70e5 libstdc++-v3/doc/html/manual/debug_mode_design.html fc2f4ac9d9c05ca8c4dce6b46e259f97 libstdc++-v3/doc/html/manual/debug_mode_semantics.html 33325138d9fa5d5628cdb1dd11cdef77 libstdc++-v3/doc/html/manual/debug_mode_using.html 7bcc35e818f9360d10ecfe70e4dedcc0 libstdc++-v3/doc/html/manual/diagnostics.html ! 5d2be4d0f89a3d3eecb4938446c14d0d libstdc++-v3/doc/html/manual/documentation_hacking.html c472d3d333cea10a613a5177af5b053a libstdc++-v3/doc/html/manual/dynamic_memory.html 55666dfa05ec7aae2596d6968f6fdb38 libstdc++-v3/doc/html/manual/errno.html f5df2458b52ebaa400811787cbf348fa libstdc++-v3/doc/html/manual/ext_algorithms.html --- 72303,72321 ---- 5861d1e084df31a36567b1e081c3deab libstdc++-v3/doc/html/manual/backwards.html eed66bf6108dd329e892b6e813b80906 libstdc++-v3/doc/html/manual/bitmap_allocator.html 9492db633acbfab53feaff0b37361e68 libstdc++-v3/doc/html/manual/bitmap_allocator_impl.html ! 1eb6c197cbe4bdf5207bb356fb05e3a7 libstdc++-v3/doc/html/manual/bugs.html cc3700f2fde50987f186f23abf98a7b1 libstdc++-v3/doc/html/manual/concept_checking.html f3a54a6315d716742603d33f454f2c19 libstdc++-v3/doc/html/manual/concurrency.html ef792a711c76c67c86fc2fa8174c2980 libstdc++-v3/doc/html/manual/configure.html 4bccee4ac05257d0c5dfc90aeee91604 libstdc++-v3/doc/html/manual/containers.html c7e40c1085e414b3b4d5896db4013205 libstdc++-v3/doc/html/manual/containers_and_c.html ! a408b4344cc2b3b611b51146c0bab9a9 libstdc++-v3/doc/html/manual/debug.html 1bd34529d162b6f3a08d5f2ea4943c6a libstdc++-v3/doc/html/manual/debug_mode.html 1cdde24f16865575b93bcb86156f70e5 libstdc++-v3/doc/html/manual/debug_mode_design.html fc2f4ac9d9c05ca8c4dce6b46e259f97 libstdc++-v3/doc/html/manual/debug_mode_semantics.html 33325138d9fa5d5628cdb1dd11cdef77 libstdc++-v3/doc/html/manual/debug_mode_using.html 7bcc35e818f9360d10ecfe70e4dedcc0 libstdc++-v3/doc/html/manual/diagnostics.html ! b1d4fb4eeb86d59b38cb63212d07818d libstdc++-v3/doc/html/manual/documentation_hacking.html c472d3d333cea10a613a5177af5b053a libstdc++-v3/doc/html/manual/dynamic_memory.html 55666dfa05ec7aae2596d6968f6fdb38 libstdc++-v3/doc/html/manual/errno.html f5df2458b52ebaa400811787cbf348fa libstdc++-v3/doc/html/manual/ext_algorithms.html *************** cf360e652a99b60dfce0e335b47297ed libstd *** 71814,71829 **** 33d3eb7f9e6575fa00d986ec17944e53 libstdc++-v3/doc/html/manual/facets.html 9b06f8b16b4ba69e1269f98bb22377f2 libstdc++-v3/doc/html/manual/fstreams.html b404abb1e78a27e8a8980eb14ec27bab libstdc++-v3/doc/html/manual/generalized_numeric_operations.html ! acb39f8542b4e2f3cc728f2eb4d5b033 libstdc++-v3/doc/html/manual/index.html 8687facb6d19ccc2a663efbc50e745a1 libstdc++-v3/doc/html/manual/internals.html ! c7ffc4ff6594f9e3dfeec284f8f782bd libstdc++-v3/doc/html/manual/intro.html 46de5aefef02b8c599fc816bea53ae67 libstdc++-v3/doc/html/manual/io.html 371c9928b1459cd70fcfc48407cf26cd libstdc++-v3/doc/html/manual/io_and_c.html 32f6d6929349f8f96de44fbdd842ed48 libstdc++-v3/doc/html/manual/iterators.html ae9b2e57903953c857a0a2314010036c libstdc++-v3/doc/html/manual/license.html 69cfb7ea1d69c38e3d673ba9f4a7c3ba libstdc++-v3/doc/html/manual/localization.html 9d7282a3a92209b987a91b15973414af libstdc++-v3/doc/html/manual/make.html ! 3b674a669ec6dd2e0ead0f69e70b7e3e libstdc++-v3/doc/html/manual/memory.html 4970f8a0270bd70ee4f48d19c4782afc libstdc++-v3/doc/html/manual/mt_allocator.html 0ade9da6c1a80afa0f9e498caea2faf9 libstdc++-v3/doc/html/manual/mt_allocator_design.html 6cedc0933aa9ffe31dbea517db997b9e libstdc++-v3/doc/html/manual/mt_allocator_ex_multi.html --- 72335,72350 ---- 33d3eb7f9e6575fa00d986ec17944e53 libstdc++-v3/doc/html/manual/facets.html 9b06f8b16b4ba69e1269f98bb22377f2 libstdc++-v3/doc/html/manual/fstreams.html b404abb1e78a27e8a8980eb14ec27bab libstdc++-v3/doc/html/manual/generalized_numeric_operations.html ! bc780181f389c6b3d6df1d6db2eed1db libstdc++-v3/doc/html/manual/index.html 8687facb6d19ccc2a663efbc50e745a1 libstdc++-v3/doc/html/manual/internals.html ! 3075a7173dc7bc563de7d38c3ad573e3 libstdc++-v3/doc/html/manual/intro.html 46de5aefef02b8c599fc816bea53ae67 libstdc++-v3/doc/html/manual/io.html 371c9928b1459cd70fcfc48407cf26cd libstdc++-v3/doc/html/manual/io_and_c.html 32f6d6929349f8f96de44fbdd842ed48 libstdc++-v3/doc/html/manual/iterators.html ae9b2e57903953c857a0a2314010036c libstdc++-v3/doc/html/manual/license.html 69cfb7ea1d69c38e3d673ba9f4a7c3ba libstdc++-v3/doc/html/manual/localization.html 9d7282a3a92209b987a91b15973414af libstdc++-v3/doc/html/manual/make.html ! c3177ad892394c3c73d9031f9dfdf2de libstdc++-v3/doc/html/manual/memory.html 4970f8a0270bd70ee4f48d19c4782afc libstdc++-v3/doc/html/manual/mt_allocator.html 0ade9da6c1a80afa0f9e498caea2faf9 libstdc++-v3/doc/html/manual/mt_allocator_design.html 6cedc0933aa9ffe31dbea517db997b9e libstdc++-v3/doc/html/manual/mt_allocator_ex_multi.html *************** dc012f6bbeb24332ca023dc15d6da9cf libstd *** 71853,71859 **** 94a606d009c84c4160e2b0557563c305 libstdc++-v3/doc/html/manual/source_code_style.html f875f3f4cddfe4fee6aff2308ccb4563 libstdc++-v3/doc/html/manual/source_design_notes.html f87298c8974ee33f2519348430b786ae libstdc++-v3/doc/html/manual/source_organization.html ! 03fea86a208c4262035bf9dbde66db33 libstdc++-v3/doc/html/manual/status.html 9e6cce6bed38f62648e12eb77363d1fc libstdc++-v3/doc/html/manual/std_contents.html dbb5f81a9e8864374fbb835eaa4e8b0d libstdc++-v3/doc/html/manual/streambufs.html 47e6a6ef4752e7c7e3ecb2a4948a7514 libstdc++-v3/doc/html/manual/strings.html --- 72374,72380 ---- 94a606d009c84c4160e2b0557563c305 libstdc++-v3/doc/html/manual/source_code_style.html f875f3f4cddfe4fee6aff2308ccb4563 libstdc++-v3/doc/html/manual/source_design_notes.html f87298c8974ee33f2519348430b786ae libstdc++-v3/doc/html/manual/source_organization.html ! 1db2f93b4d29e46b97b3de3269410c2c libstdc++-v3/doc/html/manual/status.html 9e6cce6bed38f62648e12eb77363d1fc libstdc++-v3/doc/html/manual/std_contents.html dbb5f81a9e8864374fbb835eaa4e8b0d libstdc++-v3/doc/html/manual/streambufs.html 47e6a6ef4752e7c7e3ecb2a4948a7514 libstdc++-v3/doc/html/manual/strings.html *************** d8ac0a9de0b3b518111ccdd44d818898 libstd *** 71863,71875 **** 4a391d50650e0936164a93b67285659a libstdc++-v3/doc/html/manual/test.html c39b927efcec5ac84139c1490c8ef320 libstdc++-v3/doc/html/manual/traits.html 530b96535baacfe35df2e65f9dfe7efc libstdc++-v3/doc/html/manual/unordered_associative.html ! 32ec434b69d695939737049fe27503d8 libstdc++-v3/doc/html/manual/using.html 4738b5033faff66c317159aea346263a libstdc++-v3/doc/html/manual/using_concurrency.html 79fb9de4a4c89a913a76e1828500499d libstdc++-v3/doc/html/manual/using_dual_abi.html 4868e3591133577974ca85a537dbd8a0 libstdc++-v3/doc/html/manual/using_dynamic_or_shared.html 3f1b2fcb0f6064ea3b698623f2b6a79a libstdc++-v3/doc/html/manual/using_exceptions.html 285c6675e034c05d5dc06a6adb81ce0a libstdc++-v3/doc/html/manual/using_headers.html ! 842198c1e138c0f4d83ceb71239f3f83 libstdc++-v3/doc/html/manual/using_macros.html ccc3b1a320ccc49a977c80546610195b libstdc++-v3/doc/html/manual/using_namespaces.html d881fcffb799c09a28d8174ccb1326a2 libstdc++-v3/doc/html/manual/utilities.html 1453b0f54e347d9a8b835f76b3566678 libstdc++-v3/doc/xml/api.xml --- 72384,72396 ---- 4a391d50650e0936164a93b67285659a libstdc++-v3/doc/html/manual/test.html c39b927efcec5ac84139c1490c8ef320 libstdc++-v3/doc/html/manual/traits.html 530b96535baacfe35df2e65f9dfe7efc libstdc++-v3/doc/html/manual/unordered_associative.html ! d6aa1435948dab765630f0f1a0c5a539 libstdc++-v3/doc/html/manual/using.html 4738b5033faff66c317159aea346263a libstdc++-v3/doc/html/manual/using_concurrency.html 79fb9de4a4c89a913a76e1828500499d libstdc++-v3/doc/html/manual/using_dual_abi.html 4868e3591133577974ca85a537dbd8a0 libstdc++-v3/doc/html/manual/using_dynamic_or_shared.html 3f1b2fcb0f6064ea3b698623f2b6a79a libstdc++-v3/doc/html/manual/using_exceptions.html 285c6675e034c05d5dc06a6adb81ce0a libstdc++-v3/doc/html/manual/using_headers.html ! 40287e92698ce05919d5df2d4048ae4a libstdc++-v3/doc/html/manual/using_macros.html ccc3b1a320ccc49a977c80546610195b libstdc++-v3/doc/html/manual/using_namespaces.html d881fcffb799c09a28d8174ccb1326a2 libstdc++-v3/doc/html/manual/utilities.html 1453b0f54e347d9a8b835f76b3566678 libstdc++-v3/doc/xml/api.xml *************** d881fcffb799c09a28d8174ccb1326a2 libstd *** 71877,71883 **** f5a41d4f7585b850b3182fc5f4888f93 libstdc++-v3/doc/xml/book.txml 95d1335e76860d53246f3e400231ec38 libstdc++-v3/doc/xml/chapter.txml 7f8c520dc83013026c671c5c342f73e2 libstdc++-v3/doc/xml/class.txml ! 562b1a6a1588ee3cb0962b635b88ec57 libstdc++-v3/doc/xml/faq.xml 0408e04957d20fcb2a1048c482230ec0 libstdc++-v3/doc/xml/gnu/fdl-1.3.xml df4574d04d7f029398ab0183832017b6 libstdc++-v3/doc/xml/gnu/gpl-3.0.xml 18a6390297702ec8fd75cbcc525d2005 libstdc++-v3/doc/xml/images/confdeps.dot --- 72398,72404 ---- f5a41d4f7585b850b3182fc5f4888f93 libstdc++-v3/doc/xml/book.txml 95d1335e76860d53246f3e400231ec38 libstdc++-v3/doc/xml/chapter.txml 7f8c520dc83013026c671c5c342f73e2 libstdc++-v3/doc/xml/class.txml ! 898d8d638c878045b8e5910dd2490fbd libstdc++-v3/doc/xml/faq.xml 0408e04957d20fcb2a1048c482230ec0 libstdc++-v3/doc/xml/gnu/fdl-1.3.xml df4574d04d7f029398ab0183832017b6 libstdc++-v3/doc/xml/gnu/gpl-3.0.xml 18a6390297702ec8fd75cbcc525d2005 libstdc++-v3/doc/xml/images/confdeps.dot *************** f63bfdc03ba2b82c74864f02206d7c52 libstd *** 72059,72066 **** df705f3839120dcb896e9839cf3404d0 libstdc++-v3/doc/xml/images/pbds_update_seq_diagram.png e62e6443c3944d0bf1096caa89a8afd5 libstdc++-v3/doc/xml/manual/abi.xml 6a68f07a8b8abd9e65846432ed52d646 libstdc++-v3/doc/xml/manual/algorithms.xml ! b34d89b4b055b80aa37e1a235b78e48a libstdc++-v3/doc/xml/manual/allocator.xml ! b06c7d4934846623f43ca218d68492c7 libstdc++-v3/doc/xml/manual/appendix_contributing.xml 2de6516b70a1010a37be27c15ddf0a51 libstdc++-v3/doc/xml/manual/appendix_free.xml fddfbac311009ebd3056c4edd7ee522a libstdc++-v3/doc/xml/manual/appendix_porting.xml e0b6ea09e982758f8a79d0d165939943 libstdc++-v3/doc/xml/manual/atomics.xml --- 72580,72587 ---- df705f3839120dcb896e9839cf3404d0 libstdc++-v3/doc/xml/images/pbds_update_seq_diagram.png e62e6443c3944d0bf1096caa89a8afd5 libstdc++-v3/doc/xml/manual/abi.xml 6a68f07a8b8abd9e65846432ed52d646 libstdc++-v3/doc/xml/manual/algorithms.xml ! 982605b324ce3fea88249425bd91cb27 libstdc++-v3/doc/xml/manual/allocator.xml ! 7118d1ee7ac88107708c3feaedcf0475 libstdc++-v3/doc/xml/manual/appendix_contributing.xml 2de6516b70a1010a37be27c15ddf0a51 libstdc++-v3/doc/xml/manual/appendix_free.xml fddfbac311009ebd3056c4edd7ee522a libstdc++-v3/doc/xml/manual/appendix_porting.xml e0b6ea09e982758f8a79d0d165939943 libstdc++-v3/doc/xml/manual/atomics.xml *************** e0b6ea09e982758f8a79d0d165939943 libstd *** 72074,72087 **** f13297d479322bdb5fffc34f5fb1c5c8 libstdc++-v3/doc/xml/manual/configure.xml 139c2ae43b623fb7b87cb11a75145b74 libstdc++-v3/doc/xml/manual/containers.xml 35d8bc77747044001636800a86dbac24 libstdc++-v3/doc/xml/manual/ctype.xml ! e7a9590bfa29f2842a602c7d9281e8df libstdc++-v3/doc/xml/manual/debug.xml c2b5fe8f3aba75d63e43dedc1c66c9a1 libstdc++-v3/doc/xml/manual/debug_mode.xml f0323e43ff8fc1ca28dcdfae61b6cb19 libstdc++-v3/doc/xml/manual/diagnostics.xml ! b7c5460dc18afa7e663f7540ff0183c3 libstdc++-v3/doc/xml/manual/documentation_hacking.xml ! b0d87530af583d9830a22217a8b95ec6 libstdc++-v3/doc/xml/manual/evolution.xml 7744489eb14a334faa20ba3a6f3ab6eb libstdc++-v3/doc/xml/manual/extensions.xml 26083dec441281888a23365de5567180 libstdc++-v3/doc/xml/manual/internals.xml ! e948a4e814706e8a1cf2678e8685d24b libstdc++-v3/doc/xml/manual/intro.xml 82d01f11ebf848dc64a611a829ef5a38 libstdc++-v3/doc/xml/manual/io.xml bab548248426e0e90cdc1436ff5b87de libstdc++-v3/doc/xml/manual/iterators.xml 5d3e282d89ac0af0f7752f88466a9d39 libstdc++-v3/doc/xml/manual/locale.xml --- 72595,72608 ---- f13297d479322bdb5fffc34f5fb1c5c8 libstdc++-v3/doc/xml/manual/configure.xml 139c2ae43b623fb7b87cb11a75145b74 libstdc++-v3/doc/xml/manual/containers.xml 35d8bc77747044001636800a86dbac24 libstdc++-v3/doc/xml/manual/ctype.xml ! 4906f9b3ace8b160c77a6f2fe898b2d7 libstdc++-v3/doc/xml/manual/debug.xml c2b5fe8f3aba75d63e43dedc1c66c9a1 libstdc++-v3/doc/xml/manual/debug_mode.xml f0323e43ff8fc1ca28dcdfae61b6cb19 libstdc++-v3/doc/xml/manual/diagnostics.xml ! d984a744ab516d20830812d56b9016b1 libstdc++-v3/doc/xml/manual/documentation_hacking.xml ! 6ab875936288100809d417afc1b3a52e libstdc++-v3/doc/xml/manual/evolution.xml 7744489eb14a334faa20ba3a6f3ab6eb libstdc++-v3/doc/xml/manual/extensions.xml 26083dec441281888a23365de5567180 libstdc++-v3/doc/xml/manual/internals.xml ! 9f6a7d6b431dab6fca59f7e7b4332cb6 libstdc++-v3/doc/xml/manual/intro.xml 82d01f11ebf848dc64a611a829ef5a38 libstdc++-v3/doc/xml/manual/io.xml bab548248426e0e90cdc1436ff5b87de libstdc++-v3/doc/xml/manual/iterators.xml 5d3e282d89ac0af0f7752f88466a9d39 libstdc++-v3/doc/xml/manual/locale.xml *************** e2b6426957c60c385c84e7b5143089ce libstd *** 72094,72120 **** f5a9e21e4b5cd0ffa74991fccf970f9a libstdc++-v3/doc/xml/manual/policy_data_structures_biblio.xml 4e49a8e041ae187579c7683d4b840fc4 libstdc++-v3/doc/xml/manual/prerequisites.xml 5cca2fce9e94a0243e546e0c59792f87 libstdc++-v3/doc/xml/manual/profile_mode.xml ! d86ab4ddaebc9752d3a71f23cc8879cb libstdc++-v3/doc/xml/manual/shared_ptr.xml ! b9249e4e0a9c66b4d575b78ae1000432 libstdc++-v3/doc/xml/manual/spine.xml ! dbbc0a4ffa7e564eb59e5595a11a7511 libstdc++-v3/doc/xml/manual/status_cxx1998.xml ! 3859d81c49dcfa127c564d5070831837 libstdc++-v3/doc/xml/manual/status_cxx2011.xml ! ab2024fae49f12d36b19759a519a671e libstdc++-v3/doc/xml/manual/status_cxx2014.xml ! e21501333f0942ffb6c2247520601bfd libstdc++-v3/doc/xml/manual/status_cxx2017.xml 3c72998c4574690fac280c058a0db757 libstdc++-v3/doc/xml/manual/status_cxxis29124.xml ! 0328d8bf2d7935051ce9dc880ef63b6d libstdc++-v3/doc/xml/manual/status_cxxtr1.xml ! 716409ea4f3fdc47d1b88cc8ac63b392 libstdc++-v3/doc/xml/manual/status_cxxtr24733.xml 1ea4904f13ba196db9689534b653622f libstdc++-v3/doc/xml/manual/strings.xml c564c4399f854273d5814b3c57d3d591 libstdc++-v3/doc/xml/manual/support.xml ba5b083d25092e77bbb681596ab0b11b libstdc++-v3/doc/xml/manual/test.xml b3e6db24172a20bdef96a05a3ea26101 libstdc++-v3/doc/xml/manual/test_policy_data_structures.xml ! d1df6cf8566e0849b93ef09d379f44ba libstdc++-v3/doc/xml/manual/using.xml cc84d1c1a7a9491f46a3e463fcd8aa26 libstdc++-v3/doc/xml/manual/using_exceptions.xml 43b751639aa82dbcd414b6c628beefac libstdc++-v3/doc/xml/manual/utilities.xml e4b5f6193fcb7008a4f52448e594cd82 libstdc++-v3/doc/xml/spine.xml bd966b4a0df6f2a84f9770525581d45c libstdc++-v3/doc/xsl/customization.xsl.in fa0fbb589f8e3959f474ba45b0758902 libstdc++-v3/fragment.am ! bb5466e8fc887cf49e367453bdf67793 libstdc++-v3/include/Makefile.am ! 8476bdbc86d6a16f08562ac91884fbea libstdc++-v3/include/Makefile.in 824b6f034ff0dc823441ea8a5102c218 libstdc++-v3/include/backward/auto_ptr.h 3173cd6674451da5a8446b58212eac46 libstdc++-v3/include/backward/backward_warning.h c6390a6ec1f7ad8a28676a016a710ea9 libstdc++-v3/include/backward/binders.h --- 72615,72641 ---- f5a9e21e4b5cd0ffa74991fccf970f9a libstdc++-v3/doc/xml/manual/policy_data_structures_biblio.xml 4e49a8e041ae187579c7683d4b840fc4 libstdc++-v3/doc/xml/manual/prerequisites.xml 5cca2fce9e94a0243e546e0c59792f87 libstdc++-v3/doc/xml/manual/profile_mode.xml ! d006612b2e21ab181c25bc88697b4543 libstdc++-v3/doc/xml/manual/shared_ptr.xml ! 4fa9d6b0b90d56a3b6ae65a55acee46f libstdc++-v3/doc/xml/manual/spine.xml ! 877f5d6cbc888f6bf7380de2df7fff0b libstdc++-v3/doc/xml/manual/status_cxx1998.xml ! 13589b3b7a8153fae2bc5778a839b8f6 libstdc++-v3/doc/xml/manual/status_cxx2011.xml ! 10b9b8546c822fa0cf6546ff3d2fe0f9 libstdc++-v3/doc/xml/manual/status_cxx2014.xml ! d971f2134692eecf360d3a232f5a20e8 libstdc++-v3/doc/xml/manual/status_cxx2017.xml 3c72998c4574690fac280c058a0db757 libstdc++-v3/doc/xml/manual/status_cxxis29124.xml ! b58a95c04b6624c679274ee4dc65f792 libstdc++-v3/doc/xml/manual/status_cxxtr1.xml ! 9ef471042d64693d26c5564a6fd62c95 libstdc++-v3/doc/xml/manual/status_cxxtr24733.xml 1ea4904f13ba196db9689534b653622f libstdc++-v3/doc/xml/manual/strings.xml c564c4399f854273d5814b3c57d3d591 libstdc++-v3/doc/xml/manual/support.xml ba5b083d25092e77bbb681596ab0b11b libstdc++-v3/doc/xml/manual/test.xml b3e6db24172a20bdef96a05a3ea26101 libstdc++-v3/doc/xml/manual/test_policy_data_structures.xml ! 3834c3df4993761d19192be161446a89 libstdc++-v3/doc/xml/manual/using.xml cc84d1c1a7a9491f46a3e463fcd8aa26 libstdc++-v3/doc/xml/manual/using_exceptions.xml 43b751639aa82dbcd414b6c628beefac libstdc++-v3/doc/xml/manual/utilities.xml e4b5f6193fcb7008a4f52448e594cd82 libstdc++-v3/doc/xml/spine.xml bd966b4a0df6f2a84f9770525581d45c libstdc++-v3/doc/xsl/customization.xsl.in fa0fbb589f8e3959f474ba45b0758902 libstdc++-v3/fragment.am ! 8d79662dccb577652dacc017a24ec092 libstdc++-v3/include/Makefile.am ! 7584abc71b8c30804be3650d2cfe6262 libstdc++-v3/include/Makefile.in 824b6f034ff0dc823441ea8a5102c218 libstdc++-v3/include/backward/auto_ptr.h 3173cd6674451da5a8446b58212eac46 libstdc++-v3/include/backward/backward_warning.h c6390a6ec1f7ad8a28676a016a710ea9 libstdc++-v3/include/backward/binders.h *************** b77b16ec692bec45274d9725b52396a7 libstd *** 72136,72163 **** ee61876f1a08650c8cb54b01596fa309 libstdc++-v3/include/bits/boost_concept_check.h 1af59f5b03be3fe0a399e335023c0a77 libstdc++-v3/include/bits/c++0x_warning.h d19a4045cca4c9a42c017f45e39ef8e2 libstdc++-v3/include/bits/c++config ! 5ac7e06316503f5138168c437308004b libstdc++-v3/include/bits/char_traits.h 8d612eed8a1bb508c2be589fd5d5ad36 libstdc++-v3/include/bits/codecvt.h be03bc53a8e7e8ef4d08595b7c6c042b libstdc++-v3/include/bits/concept_check.h 0ea42d88c60f94eaa0626f129217880b libstdc++-v3/include/bits/cpp_type_traits.h 579ba795e972b8e232783b3fbdf69b21 libstdc++-v3/include/bits/deque.tcc 378a3d72a39bdc6f9608fe0f52366be4 libstdc++-v3/include/bits/enable_special_members.h 17d43a9147ace6b7f169fbd03f12ebec libstdc++-v3/include/bits/forward_list.h ! 91db2da1e550d157dfe296faa77605bc libstdc++-v3/include/bits/forward_list.tcc 825484d3eed81a051ebd04f350795e60 libstdc++-v3/include/bits/fs_dir.h 9a1fee79c1324e54eb10a4f266a517e3 libstdc++-v3/include/bits/fs_fwd.h 2ea08c1f3b40763ada96c07482b05d64 libstdc++-v3/include/bits/fs_ops.h ! 8ce36a619b5d1e53df9d348b4cdc8ad9 libstdc++-v3/include/bits/fs_path.h f0b42df9f4ad86cf8e82027100b870ce libstdc++-v3/include/bits/fstream.tcc d8c24430761323aac9575d7e781aca2e libstdc++-v3/include/bits/functexcept.h 42f22c27e688f6a3c83ceb3298843db4 libstdc++-v3/include/bits/functional_hash.h 8b3f4b87ab86cbf2f3a91470ab50a25e libstdc++-v3/include/bits/gslice.h f5178df22711ac096d9cc4db4f4b9b79 libstdc++-v3/include/bits/gslice_array.h ! e782021f8649adcba63ef5254b2bcfe7 libstdc++-v3/include/bits/hashtable.h ! 5a8a238ffe72b24e18de666041cc9510 libstdc++-v3/include/bits/hashtable_policy.h 27c5b607f868444ab1a42cab63fa645a libstdc++-v3/include/bits/indirect_array.h a5d6623036d7695651b3182e4f3f9564 libstdc++-v3/include/bits/invoke.h ! dc35b85fd51dd992b210cc4791281112 libstdc++-v3/include/bits/ios_base.h 9615665b74c1633b5c617ae63c8b8f55 libstdc++-v3/include/bits/istream.tcc d04a6eb3bd754b9da8c1970cad4f92e9 libstdc++-v3/include/bits/list.tcc 2b896e047b761d874e85530c264b0cf6 libstdc++-v3/include/bits/locale_classes.h --- 72657,72684 ---- ee61876f1a08650c8cb54b01596fa309 libstdc++-v3/include/bits/boost_concept_check.h 1af59f5b03be3fe0a399e335023c0a77 libstdc++-v3/include/bits/c++0x_warning.h d19a4045cca4c9a42c017f45e39ef8e2 libstdc++-v3/include/bits/c++config ! 7d7584276876c0fef19574dcc7587321 libstdc++-v3/include/bits/char_traits.h 8d612eed8a1bb508c2be589fd5d5ad36 libstdc++-v3/include/bits/codecvt.h be03bc53a8e7e8ef4d08595b7c6c042b libstdc++-v3/include/bits/concept_check.h 0ea42d88c60f94eaa0626f129217880b libstdc++-v3/include/bits/cpp_type_traits.h 579ba795e972b8e232783b3fbdf69b21 libstdc++-v3/include/bits/deque.tcc 378a3d72a39bdc6f9608fe0f52366be4 libstdc++-v3/include/bits/enable_special_members.h 17d43a9147ace6b7f169fbd03f12ebec libstdc++-v3/include/bits/forward_list.h ! 5be9eb1be4103828c1ae9bfaf7e50613 libstdc++-v3/include/bits/forward_list.tcc 825484d3eed81a051ebd04f350795e60 libstdc++-v3/include/bits/fs_dir.h 9a1fee79c1324e54eb10a4f266a517e3 libstdc++-v3/include/bits/fs_fwd.h 2ea08c1f3b40763ada96c07482b05d64 libstdc++-v3/include/bits/fs_ops.h ! b9fa942b114cc626ff948a5181593778 libstdc++-v3/include/bits/fs_path.h f0b42df9f4ad86cf8e82027100b870ce libstdc++-v3/include/bits/fstream.tcc d8c24430761323aac9575d7e781aca2e libstdc++-v3/include/bits/functexcept.h 42f22c27e688f6a3c83ceb3298843db4 libstdc++-v3/include/bits/functional_hash.h 8b3f4b87ab86cbf2f3a91470ab50a25e libstdc++-v3/include/bits/gslice.h f5178df22711ac096d9cc4db4f4b9b79 libstdc++-v3/include/bits/gslice_array.h ! 8b0170edc52601584a60055437f5bc41 libstdc++-v3/include/bits/hashtable.h ! eecf6b65c7cc9e55179a18a2a4376b5c libstdc++-v3/include/bits/hashtable_policy.h 27c5b607f868444ab1a42cab63fa645a libstdc++-v3/include/bits/indirect_array.h a5d6623036d7695651b3182e4f3f9564 libstdc++-v3/include/bits/invoke.h ! 79e468046b15b7e678a32615a6f807fc libstdc++-v3/include/bits/ios_base.h 9615665b74c1633b5c617ae63c8b8f55 libstdc++-v3/include/bits/istream.tcc d04a6eb3bd754b9da8c1970cad4f92e9 libstdc++-v3/include/bits/list.tcc 2b896e047b761d874e85530c264b0cf6 libstdc++-v3/include/bits/locale_classes.h *************** a68fdeb650c7928567d29bbb4a195f1e libstd *** 72169,72175 **** 467e493380e0fc1fe119b80519078bbb libstdc++-v3/include/bits/locale_facets_nonio.tcc a65f214b141f99ad16986ac14ae4a202 libstdc++-v3/include/bits/localefwd.h e7bef767d52c08c97ca23bd74cf2a9d7 libstdc++-v3/include/bits/mask_array.h ! b056fbe0be8e4eab3c88886c9b07d9f5 libstdc++-v3/include/bits/memoryfwd.h 128148bb393c406c4ea1bcdaed893374 libstdc++-v3/include/bits/move.h be3241c16ff00130d0f388a27b29f455 libstdc++-v3/include/bits/node_handle.h 32ee79166bff8791f54597f62e80bd65 libstdc++-v3/include/bits/ostream.tcc --- 72690,72696 ---- 467e493380e0fc1fe119b80519078bbb libstdc++-v3/include/bits/locale_facets_nonio.tcc a65f214b141f99ad16986ac14ae4a202 libstdc++-v3/include/bits/localefwd.h e7bef767d52c08c97ca23bd74cf2a9d7 libstdc++-v3/include/bits/mask_array.h ! 4552c7d90533bedc4789ee24efd9cf0c libstdc++-v3/include/bits/memoryfwd.h 128148bb393c406c4ea1bcdaed893374 libstdc++-v3/include/bits/move.h be3241c16ff00130d0f388a27b29f455 libstdc++-v3/include/bits/node_handle.h 32ee79166bff8791f54597f62e80bd65 libstdc++-v3/include/bits/ostream.tcc *************** be3241c16ff00130d0f388a27b29f455 libstd *** 72179,72186 **** c4488885b044d9477796f6d04761c9e8 libstdc++-v3/include/bits/predefined_ops.h 16a059fd89d0979f4e145ff937c59d40 libstdc++-v3/include/bits/ptr_traits.h 3b4411cbde9b0f1eb19c2753c599c4b1 libstdc++-v3/include/bits/quoted_string.h ! beb35a8f7801e76406479cd5a6118b71 libstdc++-v3/include/bits/random.h ! 1f5c3e28eb4a4285665fe05bd9ed9c1d libstdc++-v3/include/bits/random.tcc 8bdb239bf5c7047cbf4cd795d5d510af libstdc++-v3/include/bits/range_access.h cfbaf8364aabdb3d0b2dea1751e1d158 libstdc++-v3/include/bits/refwrap.h 7c82c3987abc7d110ba74fdf77b7adde libstdc++-v3/include/bits/regex.h --- 72700,72707 ---- c4488885b044d9477796f6d04761c9e8 libstdc++-v3/include/bits/predefined_ops.h 16a059fd89d0979f4e145ff937c59d40 libstdc++-v3/include/bits/ptr_traits.h 3b4411cbde9b0f1eb19c2753c599c4b1 libstdc++-v3/include/bits/quoted_string.h ! 746f95cebb39740d04f3c86176cd0ff1 libstdc++-v3/include/bits/random.h ! 1b183e735667b15de349819092a23b79 libstdc++-v3/include/bits/random.tcc 8bdb239bf5c7047cbf4cd795d5d510af libstdc++-v3/include/bits/range_access.h cfbaf8364aabdb3d0b2dea1751e1d158 libstdc++-v3/include/bits/refwrap.h 7c82c3987abc7d110ba74fdf77b7adde libstdc++-v3/include/bits/regex.h *************** acd1c54326b04738c23b893ba8a03da2 libstd *** 72205,72211 **** 8e9a1e44fe60f090a9de986a264180ec libstdc++-v3/include/bits/std_function.h 6a4c091e5d4670705e42d4fff51ca42a libstdc++-v3/include/bits/std_mutex.h 52ea3eafc6a0b82ae28b19432ed6df52 libstdc++-v3/include/bits/stl_algo.h ! f6b70f6cfa24dadc62702723b2cfa5aa libstdc++-v3/include/bits/stl_algobase.h 543595f245ff5dae7fc0594cdc71787c libstdc++-v3/include/bits/stl_bvector.h 6e7a77a27553aaec7319f0a44c932a2b libstdc++-v3/include/bits/stl_construct.h 806b2285c88044954824630c7d4c963c libstdc++-v3/include/bits/stl_deque.h --- 72726,72732 ---- 8e9a1e44fe60f090a9de986a264180ec libstdc++-v3/include/bits/std_function.h 6a4c091e5d4670705e42d4fff51ca42a libstdc++-v3/include/bits/std_mutex.h 52ea3eafc6a0b82ae28b19432ed6df52 libstdc++-v3/include/bits/stl_algo.h ! 24c9000c6ab9a256322ebe8e9e10af91 libstdc++-v3/include/bits/stl_algobase.h 543595f245ff5dae7fc0594cdc71787c libstdc++-v3/include/bits/stl_bvector.h 6e7a77a27553aaec7319f0a44c932a2b libstdc++-v3/include/bits/stl_construct.h 806b2285c88044954824630c7d4c963c libstdc++-v3/include/bits/stl_deque.h *************** acff23e53d46e1656eb31daaba4239ef libstd *** 72220,72244 **** d12c97b7d4a808b1ec90ac1e0f89032f libstdc++-v3/include/bits/stl_multiset.h 05e0abfeae12a74ba5ac9472da9af143 libstdc++-v3/include/bits/stl_numeric.h 9a7996187125e471e26ca57a6c9f4c5e libstdc++-v3/include/bits/stl_pair.h ! 61cee169653c366cb8c62a6bc6024d87 libstdc++-v3/include/bits/stl_queue.h 7440af9ddf694a046490dfc95a69fa19 libstdc++-v3/include/bits/stl_raw_storage_iter.h 65b9b3808c35cc6b9603c38adf3f597a libstdc++-v3/include/bits/stl_relops.h f35b569901b86e6fa10afef0c6e0ea68 libstdc++-v3/include/bits/stl_set.h 28f7d715c34d075b4a09f832b70ff21c libstdc++-v3/include/bits/stl_stack.h becd4a09d374f38cd74aa3cc036142bf libstdc++-v3/include/bits/stl_tempbuf.h ! bcb30518cfcf10a2f5b0602bbe79d77e libstdc++-v3/include/bits/stl_tree.h ! 6aebd022faef1992c9ae9a5624e85f73 libstdc++-v3/include/bits/stl_uninitialized.h ! 0df8966cad4fc9590818953d7c4d2f05 libstdc++-v3/include/bits/stl_vector.h 37903d1831e37a8dcc2087d9716a2d10 libstdc++-v3/include/bits/stream_iterator.h 885101d2111686dfd9be5e25b6afd378 libstdc++-v3/include/bits/streambuf.tcc f571c93455866a2aa9ce45453f590765 libstdc++-v3/include/bits/streambuf_iterator.h 9ecb8637c8767c261f5e6db77dc6f1fc libstdc++-v3/include/bits/string_view.tcc c6673a8a7af82b8a7e980c02724ca737 libstdc++-v3/include/bits/stringfwd.h 846e9490b0b182309ef44970dec9d148 libstdc++-v3/include/bits/uniform_int_dist.h ! 9c22c0e5dcbc9f0c910a1b38c1ee79a5 libstdc++-v3/include/bits/unique_ptr.h fbaa0cafd2c8c11c35e35d9704640bbb libstdc++-v3/include/bits/unordered_map.h 6e08c43bc64c22eb4dbc866f82137d1e libstdc++-v3/include/bits/unordered_set.h ! 3e69e6010dff16c4ae67ac39a7af9f9e libstdc++-v3/include/bits/uses_allocator.h da4aa1ea8bbb9e3dfd2428ad29b0fe65 libstdc++-v3/include/bits/valarray_after.h 50632c2f73e0c96b92685887b1f60897 libstdc++-v3/include/bits/valarray_array.h d5149f7d6aecaba61bb4767cea6e2b9d libstdc++-v3/include/bits/valarray_array.tcc --- 72741,72765 ---- d12c97b7d4a808b1ec90ac1e0f89032f libstdc++-v3/include/bits/stl_multiset.h 05e0abfeae12a74ba5ac9472da9af143 libstdc++-v3/include/bits/stl_numeric.h 9a7996187125e471e26ca57a6c9f4c5e libstdc++-v3/include/bits/stl_pair.h ! 3052990516f6cc48d664976ac39cbb4d libstdc++-v3/include/bits/stl_queue.h 7440af9ddf694a046490dfc95a69fa19 libstdc++-v3/include/bits/stl_raw_storage_iter.h 65b9b3808c35cc6b9603c38adf3f597a libstdc++-v3/include/bits/stl_relops.h f35b569901b86e6fa10afef0c6e0ea68 libstdc++-v3/include/bits/stl_set.h 28f7d715c34d075b4a09f832b70ff21c libstdc++-v3/include/bits/stl_stack.h becd4a09d374f38cd74aa3cc036142bf libstdc++-v3/include/bits/stl_tempbuf.h ! 8e80c9aa0c13a357aa7aa6a8a23f7962 libstdc++-v3/include/bits/stl_tree.h ! 2158a719e2acfb47947dab1979fb71d4 libstdc++-v3/include/bits/stl_uninitialized.h ! ba305a1e10d49c66b3a70acbb63616a6 libstdc++-v3/include/bits/stl_vector.h 37903d1831e37a8dcc2087d9716a2d10 libstdc++-v3/include/bits/stream_iterator.h 885101d2111686dfd9be5e25b6afd378 libstdc++-v3/include/bits/streambuf.tcc f571c93455866a2aa9ce45453f590765 libstdc++-v3/include/bits/streambuf_iterator.h 9ecb8637c8767c261f5e6db77dc6f1fc libstdc++-v3/include/bits/string_view.tcc c6673a8a7af82b8a7e980c02724ca737 libstdc++-v3/include/bits/stringfwd.h 846e9490b0b182309ef44970dec9d148 libstdc++-v3/include/bits/uniform_int_dist.h ! b9ddda222b683150743e50849d9e35eb libstdc++-v3/include/bits/unique_ptr.h fbaa0cafd2c8c11c35e35d9704640bbb libstdc++-v3/include/bits/unordered_map.h 6e08c43bc64c22eb4dbc866f82137d1e libstdc++-v3/include/bits/unordered_set.h ! 3dd628bc68b162211c8169c5063378ff libstdc++-v3/include/bits/uses_allocator.h da4aa1ea8bbb9e3dfd2428ad29b0fe65 libstdc++-v3/include/bits/valarray_after.h 50632c2f73e0c96b92685887b1f60897 libstdc++-v3/include/bits/valarray_array.h d5149f7d6aecaba61bb4767cea6e2b9d libstdc++-v3/include/bits/valarray_array.tcc *************** b7deb76eacc249755ed84107bea2b0a3 libstd *** 72369,72381 **** 46f13b4ad1ec44acc6e045f4f35736d3 libstdc++-v3/include/decimal/decimal 67025aa6536dc7818f5a79d7b8b476fe libstdc++-v3/include/decimal/decimal.h 5964679cc87c0993f190904cdadde174 libstdc++-v3/include/experimental/algorithm ! ff88ab1be594b84feb6e198a94a6048a libstdc++-v3/include/experimental/any 5b4fe84e61da5736f46e163c8cf5087a libstdc++-v3/include/experimental/array 79ee96cb97cdec6c2fa004402bd85cc3 libstdc++-v3/include/experimental/bits/erase_if.h b31d223fc4e81e9ca56007031aa84a92 libstdc++-v3/include/experimental/bits/fs_dir.h 609183f8496329cd1d5de92646da7b85 libstdc++-v3/include/experimental/bits/fs_fwd.h 7e96d237e463194566951fa93b5dab6b libstdc++-v3/include/experimental/bits/fs_ops.h ! d3a9682350fbd67e4641d880a021e499 libstdc++-v3/include/experimental/bits/fs_path.h 44bafbb8e568fec7452ca1bd97588957 libstdc++-v3/include/experimental/bits/lfts_config.h bb4f41e864b9f643e813a777cbb2cd69 libstdc++-v3/include/experimental/bits/shared_ptr.h ef4ee263c638c988bd3fc807cba960e9 libstdc++-v3/include/experimental/bits/string_view.tcc --- 72890,72902 ---- 46f13b4ad1ec44acc6e045f4f35736d3 libstdc++-v3/include/decimal/decimal 67025aa6536dc7818f5a79d7b8b476fe libstdc++-v3/include/decimal/decimal.h 5964679cc87c0993f190904cdadde174 libstdc++-v3/include/experimental/algorithm ! 577b08b98bea9fe825e9240456602045 libstdc++-v3/include/experimental/any 5b4fe84e61da5736f46e163c8cf5087a libstdc++-v3/include/experimental/array 79ee96cb97cdec6c2fa004402bd85cc3 libstdc++-v3/include/experimental/bits/erase_if.h b31d223fc4e81e9ca56007031aa84a92 libstdc++-v3/include/experimental/bits/fs_dir.h 609183f8496329cd1d5de92646da7b85 libstdc++-v3/include/experimental/bits/fs_fwd.h 7e96d237e463194566951fa93b5dab6b libstdc++-v3/include/experimental/bits/fs_ops.h ! 3d0a0d2e02e7879a99dc57240d9a90f3 libstdc++-v3/include/experimental/bits/fs_path.h 44bafbb8e568fec7452ca1bd97588957 libstdc++-v3/include/experimental/bits/lfts_config.h bb4f41e864b9f643e813a777cbb2cd69 libstdc++-v3/include/experimental/bits/shared_ptr.h ef4ee263c638c988bd3fc807cba960e9 libstdc++-v3/include/experimental/bits/string_view.tcc *************** a1814009155738d2bd8aebefc8eb9f49 libstd *** 72401,72407 **** 3e2536dc86edb3612332af8370d9d773 libstdc++-v3/include/experimental/string_view 0a83f7784deca0367daa540e31d44684 libstdc++-v3/include/experimental/system_error 495957705bd6aafc528b12e339a6f2ae libstdc++-v3/include/experimental/tuple ! c68fc607d1088fb6ed554e0245c5d2b3 libstdc++-v3/include/experimental/type_traits 77e5979fd3f2cf6081eb13739149100e libstdc++-v3/include/experimental/unordered_map fd404bc6dae5c740f48b48ae45dc7d36 libstdc++-v3/include/experimental/unordered_set bace8556784b47dd9d766e2b26056829 libstdc++-v3/include/experimental/utility --- 72922,72928 ---- 3e2536dc86edb3612332af8370d9d773 libstdc++-v3/include/experimental/string_view 0a83f7784deca0367daa540e31d44684 libstdc++-v3/include/experimental/system_error 495957705bd6aafc528b12e339a6f2ae libstdc++-v3/include/experimental/tuple ! 9f8e5fc6f27453d1e15a88429390636d libstdc++-v3/include/experimental/type_traits 77e5979fd3f2cf6081eb13739149100e libstdc++-v3/include/experimental/unordered_map fd404bc6dae5c740f48b48ae45dc7d36 libstdc++-v3/include/experimental/unordered_set bace8556784b47dd9d766e2b26056829 libstdc++-v3/include/experimental/utility *************** ee69eb8f56fe19bafb340403c14cad0d libstd *** 72770,72776 **** f8bcc5741ac9a1b2aa7235833330596f libstdc++-v3/include/profile/unordered_set c671d4e818721717d360a33348a156d9 libstdc++-v3/include/profile/vector b7ce8ff19118e4439858424fc3f511c9 libstdc++-v3/include/std/algorithm ! b0fc006535604478a847effde8829616 libstdc++-v3/include/std/any 94c58e3f2ae6f4e6e64f764f1634080e libstdc++-v3/include/std/array 367f35f83cb8377555ffdde1a1ba14a4 libstdc++-v3/include/std/atomic 2d2c76909d20cdf1de724b00a22f8cbb libstdc++-v3/include/std/bitset --- 73291,73297 ---- f8bcc5741ac9a1b2aa7235833330596f libstdc++-v3/include/profile/unordered_set c671d4e818721717d360a33348a156d9 libstdc++-v3/include/profile/vector b7ce8ff19118e4439858424fc3f511c9 libstdc++-v3/include/std/algorithm ! 0a6014e9ca88fad798c638afdc43c010 libstdc++-v3/include/std/any 94c58e3f2ae6f4e6e64f764f1634080e libstdc++-v3/include/std/array 367f35f83cb8377555ffdde1a1ba14a4 libstdc++-v3/include/std/atomic 2d2c76909d20cdf1de724b00a22f8cbb libstdc++-v3/include/std/bitset *************** df98684350120e7dc5f4fc26aa2d4336 libstd *** 72798,72805 **** 5f8c74a78988a14e1e9bd2383f64b266 libstdc++-v3/include/std/memory 47bc968221d76ad5996568fb865cacb4 libstdc++-v3/include/std/mutex 6e94db557f82107cbb74f1ca12998f44 libstdc++-v3/include/std/numeric ! 78b6f754e097ae8b62ae3cf30e27db06 libstdc++-v3/include/std/optional ! 353b0091928699d6d4fb7de2174affac libstdc++-v3/include/std/ostream 5c07c809e30daa621aad47af606418d9 libstdc++-v3/include/std/queue 19877a6114456d0e963351ed8931e06b libstdc++-v3/include/std/random 9ca4942b926d18243634c2f25fe9f6c6 libstdc++-v3/include/std/ratio --- 73319,73326 ---- 5f8c74a78988a14e1e9bd2383f64b266 libstdc++-v3/include/std/memory 47bc968221d76ad5996568fb865cacb4 libstdc++-v3/include/std/mutex 6e94db557f82107cbb74f1ca12998f44 libstdc++-v3/include/std/numeric ! 294e237db1bbcb93d872f73b327ce1e2 libstdc++-v3/include/std/optional ! ab23ebdaecd898050ca509020dfe8e92 libstdc++-v3/include/std/ostream 5c07c809e30daa621aad47af606418d9 libstdc++-v3/include/std/queue 19877a6114456d0e963351ed8931e06b libstdc++-v3/include/std/random 9ca4942b926d18243634c2f25fe9f6c6 libstdc++-v3/include/std/ratio *************** e7044bfbebc23a3cf56057a6f775bc7d libstd *** 72816,72828 **** 25f1a2ea5a112e54baf0fca4c0586df4 libstdc++-v3/include/std/system_error a6180f359e18686c8179dd4f253fa945 libstdc++-v3/include/std/thread eb4742b9d7f8a67c927c000f4f08bdaf libstdc++-v3/include/std/tuple ! a8552ad955f107bda56e6bbdbb0e0228 libstdc++-v3/include/std/type_traits 575649d6d1cac2dd7972306d2502a5a9 libstdc++-v3/include/std/typeindex b7dfff7bcde643270c02b328f66afb20 libstdc++-v3/include/std/unordered_map fcd40d278ab3aab699a63ff199c72d7a libstdc++-v3/include/std/unordered_set e659d4d7c28d849fe648eae206bed6cc libstdc++-v3/include/std/utility 44f678755394b2ba7ea2edc8c4855a22 libstdc++-v3/include/std/valarray ! 1f8d4f874bd0e4bb6e7c7a8637996bb0 libstdc++-v3/include/std/variant 03eaa11fbda7bb8fd9885fa88a16fbe1 libstdc++-v3/include/std/vector 46a122be7109715c35fa8247ce567ea6 libstdc++-v3/include/tr1/array 63a659b3cb9e797beff37ab1cef1c1f8 libstdc++-v3/include/tr1/bessel_function.tcc --- 73337,73349 ---- 25f1a2ea5a112e54baf0fca4c0586df4 libstdc++-v3/include/std/system_error a6180f359e18686c8179dd4f253fa945 libstdc++-v3/include/std/thread eb4742b9d7f8a67c927c000f4f08bdaf libstdc++-v3/include/std/tuple ! ef098d21691a6886513cc2555555bc20 libstdc++-v3/include/std/type_traits 575649d6d1cac2dd7972306d2502a5a9 libstdc++-v3/include/std/typeindex b7dfff7bcde643270c02b328f66afb20 libstdc++-v3/include/std/unordered_map fcd40d278ab3aab699a63ff199c72d7a libstdc++-v3/include/std/unordered_set e659d4d7c28d849fe648eae206bed6cc libstdc++-v3/include/std/utility 44f678755394b2ba7ea2edc8c4855a22 libstdc++-v3/include/std/valarray ! 1a31782b22cdeed127bb6a7e0016ba00 libstdc++-v3/include/std/variant 03eaa11fbda7bb8fd9885fa88a16fbe1 libstdc++-v3/include/std/vector 46a122be7109715c35fa8247ce567ea6 libstdc++-v3/include/tr1/array 63a659b3cb9e797beff37ab1cef1c1f8 libstdc++-v3/include/tr1/bessel_function.tcc *************** aadea4e15e5b46de0052e4c929066597 libstd *** 72888,72899 **** c1a9fea5cddca696a0f9a6b46d2b63bd libstdc++-v3/include/tr1/wctype.h c711079dbdf3fbc37ec013da1d73ea3f libstdc++-v3/include/tr2/bool_set 17673c46d7c0b0a06c22ac1812c0ff4b libstdc++-v3/include/tr2/bool_set.tcc ! 62313536dfb939e5be3238c2bc9773de libstdc++-v3/include/tr2/dynamic_bitset ! 8436d63d88c46f8ecd693850aa58646c libstdc++-v3/include/tr2/dynamic_bitset.tcc c15ef53984b01a6fa752f8244f33bbc0 libstdc++-v3/include/tr2/ratio 2cb08e2a102d6fb867e5b016e26168ef libstdc++-v3/include/tr2/type_traits 35723d649e2938008f801ff0c392a967 libstdc++-v3/libsupc++/Makefile.am ! 4bc24ec516b7a02cdc96cb39864c3b55 libstdc++-v3/libsupc++/Makefile.in 631f21736305bc4ae54ef33e0ce49835 libstdc++-v3/libsupc++/array_type_info.cc 688eaa2b5aef0e352ad3f28c00a12468 libstdc++-v3/libsupc++/atexit_arm.cc a00f3abb4b3304aff4800cb0435a33c0 libstdc++-v3/libsupc++/atexit_thread.cc --- 73409,73420 ---- c1a9fea5cddca696a0f9a6b46d2b63bd libstdc++-v3/include/tr1/wctype.h c711079dbdf3fbc37ec013da1d73ea3f libstdc++-v3/include/tr2/bool_set 17673c46d7c0b0a06c22ac1812c0ff4b libstdc++-v3/include/tr2/bool_set.tcc ! d0f2fe23dc0fc087564e071283341737 libstdc++-v3/include/tr2/dynamic_bitset ! dc2f764b089d9e566895649ba57ca9f7 libstdc++-v3/include/tr2/dynamic_bitset.tcc c15ef53984b01a6fa752f8244f33bbc0 libstdc++-v3/include/tr2/ratio 2cb08e2a102d6fb867e5b016e26168ef libstdc++-v3/include/tr2/type_traits 35723d649e2938008f801ff0c392a967 libstdc++-v3/libsupc++/Makefile.am ! 04dc60053f0bf829b3794194c1c36d9a libstdc++-v3/libsupc++/Makefile.in 631f21736305bc4ae54ef33e0ce49835 libstdc++-v3/libsupc++/array_type_info.cc 688eaa2b5aef0e352ad3f28c00a12468 libstdc++-v3/libsupc++/atexit_arm.cc a00f3abb4b3304aff4800cb0435a33c0 libstdc++-v3/libsupc++/atexit_thread.cc *************** a0f90044fdf7e6011c6eb7927f28221a libstd *** 72904,72910 **** 2bd523a39c0264e62dad84c7e1d0d2a5 libstdc++-v3/libsupc++/bad_cast.cc cf5f64d5397e30f49c5789cbfd7c8688 libstdc++-v3/libsupc++/bad_typeid.cc 6e24c5cf0922dca2e84819b1c5131cf0 libstdc++-v3/libsupc++/class_type_info.cc ! 5b9c0e54d648d34402fb923663ecf789 libstdc++-v3/libsupc++/cxxabi.h 89c79c1be5d0424e33e3f1fa775eeaed libstdc++-v3/libsupc++/cxxabi_forced.h 011902ba1a9d14ad750b8d185e16c2ff libstdc++-v3/libsupc++/cxxabi_init_exception.h eed5419771d32658a76afe8eec054108 libstdc++-v3/libsupc++/del_op.cc --- 73425,73431 ---- 2bd523a39c0264e62dad84c7e1d0d2a5 libstdc++-v3/libsupc++/bad_cast.cc cf5f64d5397e30f49c5789cbfd7c8688 libstdc++-v3/libsupc++/bad_typeid.cc 6e24c5cf0922dca2e84819b1c5131cf0 libstdc++-v3/libsupc++/class_type_info.cc ! f8c55db4e145b33f10365e66223947b6 libstdc++-v3/libsupc++/cxxabi.h 89c79c1be5d0424e33e3f1fa775eeaed libstdc++-v3/libsupc++/cxxabi_forced.h 011902ba1a9d14ad750b8d185e16c2ff libstdc++-v3/libsupc++/cxxabi_init_exception.h eed5419771d32658a76afe8eec054108 libstdc++-v3/libsupc++/del_op.cc *************** f8b4475f27d2a49f23ca2915db2aa1a2 libstd *** 72937,72951 **** c7cf8027d4c2462452b21c7637b63208 libstdc++-v3/libsupc++/eh_type.cc 7b56e34582ba823c33a7c442878a47c3 libstdc++-v3/libsupc++/eh_unex_handler.cc 427b1d41bbac3a6682f9efe261dbe2c2 libstdc++-v3/libsupc++/enum_type_info.cc ! 7ade5a8c17b101bef641ffcf11fccacf libstdc++-v3/libsupc++/exception 34861721c4e6489755e5972a55794d34 libstdc++-v3/libsupc++/exception.h c2de4a15fee39a464b4195a4d743df96 libstdc++-v3/libsupc++/exception_defines.h 25d44782b686509a9fc5c8aaa8066643 libstdc++-v3/libsupc++/exception_ptr.h 33b9711053b5013082dcd01ff6886553 libstdc++-v3/libsupc++/function_type_info.cc 15da917c7e92611ca228f73691b30d73 libstdc++-v3/libsupc++/fundamental_type_info.cc e8b4a9f0184d46c812afe3d4438008ed libstdc++-v3/libsupc++/guard.cc ! c96d8729200a8bf030a734e9e9ed0ead libstdc++-v3/libsupc++/guard_error.cc ! 111e07c0b209346cbc5004483c2152b2 libstdc++-v3/libsupc++/hash_bytes.cc 18b00c9d367c5f25dd72f0af8dc43339 libstdc++-v3/libsupc++/hash_bytes.h 74d6ff3721b8e641a241c5f5cdd38c1a libstdc++-v3/libsupc++/initializer_list 11da6d9eb3e8eec38c2e995a3a8c6329 libstdc++-v3/libsupc++/nested_exception.cc --- 73458,73472 ---- c7cf8027d4c2462452b21c7637b63208 libstdc++-v3/libsupc++/eh_type.cc 7b56e34582ba823c33a7c442878a47c3 libstdc++-v3/libsupc++/eh_unex_handler.cc 427b1d41bbac3a6682f9efe261dbe2c2 libstdc++-v3/libsupc++/enum_type_info.cc ! 86384f6999514dd3a508aaa03a9517d4 libstdc++-v3/libsupc++/exception 34861721c4e6489755e5972a55794d34 libstdc++-v3/libsupc++/exception.h c2de4a15fee39a464b4195a4d743df96 libstdc++-v3/libsupc++/exception_defines.h 25d44782b686509a9fc5c8aaa8066643 libstdc++-v3/libsupc++/exception_ptr.h 33b9711053b5013082dcd01ff6886553 libstdc++-v3/libsupc++/function_type_info.cc 15da917c7e92611ca228f73691b30d73 libstdc++-v3/libsupc++/fundamental_type_info.cc e8b4a9f0184d46c812afe3d4438008ed libstdc++-v3/libsupc++/guard.cc ! 3466933aedfa6e76ac1f96e7d647c32b libstdc++-v3/libsupc++/guard_error.cc ! a02c42932bbaa28e1e5661328cff5926 libstdc++-v3/libsupc++/hash_bytes.cc 18b00c9d367c5f25dd72f0af8dc43339 libstdc++-v3/libsupc++/hash_bytes.h 74d6ff3721b8e641a241c5f5cdd38c1a libstdc++-v3/libsupc++/initializer_list 11da6d9eb3e8eec38c2e995a3a8c6329 libstdc++-v3/libsupc++/nested_exception.cc *************** ceff39d5a5a0e636f3769816d9de7d97 libstd *** 72953,72959 **** da8ecc0aad6bb85c8749a418747d4f25 libstdc++-v3/libsupc++/new b929c7855e2a39856dc6bc912f5757c9 libstdc++-v3/libsupc++/new_handler.cc 9a8b6e3bde9862a50e22f3e17e18057e libstdc++-v3/libsupc++/new_op.cc ! 974bf27b054955ec98007fe708b6016b libstdc++-v3/libsupc++/new_opa.cc ff0051268537a430520f52ce98b01451 libstdc++-v3/libsupc++/new_opant.cc 61c65763931abb56e989c083c9552591 libstdc++-v3/libsupc++/new_opnt.cc 896cf33a18cdcc1f27cf70cd8a10e8a3 libstdc++-v3/libsupc++/new_opv.cc --- 73474,73480 ---- da8ecc0aad6bb85c8749a418747d4f25 libstdc++-v3/libsupc++/new b929c7855e2a39856dc6bc912f5757c9 libstdc++-v3/libsupc++/new_handler.cc 9a8b6e3bde9862a50e22f3e17e18057e libstdc++-v3/libsupc++/new_op.cc ! d0c10c8607fbe4707f51346370559bce libstdc++-v3/libsupc++/new_opa.cc ff0051268537a430520f52ce98b01451 libstdc++-v3/libsupc++/new_opant.cc 61c65763931abb56e989c083c9552591 libstdc++-v3/libsupc++/new_opnt.cc 896cf33a18cdcc1f27cf70cd8a10e8a3 libstdc++-v3/libsupc++/new_opv.cc *************** b767ca21604431bdeb9f4a8a0874b380 libstd *** 72976,72994 **** e20ecaecb4cdf35f272eb9bf14e2ee4d libstdc++-v3/libsupc++/vtv_stubs.cc 6e1809e9ac8f237378ab1ebc1b99fb6a libstdc++-v3/linkage.m4 84db6d4c2c607fc0a4ecffdf29fe3244 libstdc++-v3/po/Makefile.am ! 69d23076b3ef37404d682b622b0fe049 libstdc++-v3/po/Makefile.in 1a96a7fbff96968443fda669ce95ff1f libstdc++-v3/po/POTFILES.in fa9de930263a3a95827ef51abac81302 libstdc++-v3/po/de.po 5f4aac1893406c9cd07f2e72300c0fe2 libstdc++-v3/po/fr.po dc2f2463bb52c0e7ff931af1f4312ac1 libstdc++-v3/po/libstdc++.pot 85017a56b34879df688618b79df6e396 libstdc++-v3/po/string_literals.cc db33018f9a0c153cdacbad74d90cd744 libstdc++-v3/python/Makefile.am ! 97daaf288d7206432fe42cf501f297b9 libstdc++-v3/python/Makefile.in b42ce5546cb46bbbd486454dc2b29343 libstdc++-v3/python/hook.in 68b329da9893e34099c7d8ad5cb9c940 libstdc++-v3/python/libstdcxx/__init__.py 016d8953f53a812b7ce03d94d76fb15d libstdc++-v3/python/libstdcxx/v6/__init__.py 99ba46a5bcbdbe5f72c1daf7be1dbee1 libstdc++-v3/python/libstdcxx/v6/printers.py ! 415ba9594feeee0d643a6d665fdb61d8 libstdc++-v3/python/libstdcxx/v6/xmethods.py b1441422cec6381d9285b7681b666124 libstdc++-v3/scripts/check_compile 533e594add6e79910b0e557ba690fac6 libstdc++-v3/scripts/check_performance f480e111db2d50194a3e1f7014c9f422 libstdc++-v3/scripts/create_testsuite_files --- 73497,73515 ---- e20ecaecb4cdf35f272eb9bf14e2ee4d libstdc++-v3/libsupc++/vtv_stubs.cc 6e1809e9ac8f237378ab1ebc1b99fb6a libstdc++-v3/linkage.m4 84db6d4c2c607fc0a4ecffdf29fe3244 libstdc++-v3/po/Makefile.am ! 1127b75d7181fb8fed8177ceaef833a2 libstdc++-v3/po/Makefile.in 1a96a7fbff96968443fda669ce95ff1f libstdc++-v3/po/POTFILES.in fa9de930263a3a95827ef51abac81302 libstdc++-v3/po/de.po 5f4aac1893406c9cd07f2e72300c0fe2 libstdc++-v3/po/fr.po dc2f2463bb52c0e7ff931af1f4312ac1 libstdc++-v3/po/libstdc++.pot 85017a56b34879df688618b79df6e396 libstdc++-v3/po/string_literals.cc db33018f9a0c153cdacbad74d90cd744 libstdc++-v3/python/Makefile.am ! 4d5248438c6b7e741b55fd8d359b9d42 libstdc++-v3/python/Makefile.in b42ce5546cb46bbbd486454dc2b29343 libstdc++-v3/python/hook.in 68b329da9893e34099c7d8ad5cb9c940 libstdc++-v3/python/libstdcxx/__init__.py 016d8953f53a812b7ce03d94d76fb15d libstdc++-v3/python/libstdcxx/v6/__init__.py 99ba46a5bcbdbe5f72c1daf7be1dbee1 libstdc++-v3/python/libstdcxx/v6/printers.py ! 8b5e4c30c0cefaf21b1a71d0e78e6961 libstdc++-v3/python/libstdcxx/v6/xmethods.py b1441422cec6381d9285b7681b666124 libstdc++-v3/scripts/check_compile 533e594add6e79910b0e557ba690fac6 libstdc++-v3/scripts/check_performance f480e111db2d50194a3e1f7014c9f422 libstdc++-v3/scripts/create_testsuite_files *************** e8e7773bc629a008b2813ee507a0dab6 libstd *** 73001,73010 **** 80b6ff44b325c6b6d113435d8eea4b76 libstdc++-v3/scripts/make_graph.py 3564a0b925e650a7d2cc2ec7f2e7379f libstdc++-v3/scripts/run_doxygen 7579350b0ac0412cb42e9c354485ebd9 libstdc++-v3/scripts/testsuite_flags.in ! 419845487b408bcd0d6ca0fe211976b7 libstdc++-v3/src/Makefile.am ! ec24c6a9fddf30e4c267e32d40f70226 libstdc++-v3/src/Makefile.in b126c7ff261f4aba9341c48f67a51ffd libstdc++-v3/src/c++11/Makefile.am ! 3037cac2cfd247a2cbee6d0c656b6e4c libstdc++-v3/src/c++11/Makefile.in 8112dfc874427401d41b79800ca28310 libstdc++-v3/src/c++11/chrono.cc 8c0d8622888eca7a4ad7dbe143468562 libstdc++-v3/src/c++11/codecvt.cc d0837fc9a3d11fc292e0f58c3afa791b libstdc++-v3/src/c++11/compatibility-atomic-c++0x.cc --- 73522,73531 ---- 80b6ff44b325c6b6d113435d8eea4b76 libstdc++-v3/scripts/make_graph.py 3564a0b925e650a7d2cc2ec7f2e7379f libstdc++-v3/scripts/run_doxygen 7579350b0ac0412cb42e9c354485ebd9 libstdc++-v3/scripts/testsuite_flags.in ! 7a18372cc58f2bd5438e86c050fb5b01 libstdc++-v3/src/Makefile.am ! 636e9590282765d2756c5d83fdfb2ce4 libstdc++-v3/src/Makefile.in b126c7ff261f4aba9341c48f67a51ffd libstdc++-v3/src/c++11/Makefile.am ! 9d7ef415444d5dbaa326c0ac0b687df4 libstdc++-v3/src/c++11/Makefile.in 8112dfc874427401d41b79800ca28310 libstdc++-v3/src/c++11/chrono.cc 8c0d8622888eca7a4ad7dbe143468562 libstdc++-v3/src/c++11/codecvt.cc d0837fc9a3d11fc292e0f58c3afa791b libstdc++-v3/src/c++11/compatibility-atomic-c++0x.cc *************** c6ecb548eb9548bbca645925e1c40ce3 libstd *** 73062,73069 **** 4587c2b594addc57375201e4e2840954 libstdc++-v3/src/c++11/wlocale-inst.cc 467cd61a70c7fa3add6dd732ea7337eb libstdc++-v3/src/c++11/wstring-inst.cc 0043b48b6d4240791b6e5ea75f289cb7 libstdc++-v3/src/c++11/wstring-io-inst.cc 1d2f0306e22a3d0994a31f96a82a81b2 libstdc++-v3/src/c++98/Makefile.am ! d5bb909c195f394c648f3348ab48a65d libstdc++-v3/src/c++98/Makefile.in 1af7d1431070d1191ba0c26958292bd0 libstdc++-v3/src/c++98/allocator-inst.cc 5fe119083458d53e6e7ca04fafae39b8 libstdc++-v3/src/c++98/bitmap_allocator.cc 9cac9377c40f34f7b6fe46eaaca4a8ff libstdc++-v3/src/c++98/codecvt.cc --- 73583,73591 ---- 4587c2b594addc57375201e4e2840954 libstdc++-v3/src/c++11/wlocale-inst.cc 467cd61a70c7fa3add6dd732ea7337eb libstdc++-v3/src/c++11/wstring-inst.cc 0043b48b6d4240791b6e5ea75f289cb7 libstdc++-v3/src/c++11/wstring-io-inst.cc + 9cca3cfd93f43b9ff610bb85aa008108 libstdc++-v3/src/c++17/Makefile.in 1d2f0306e22a3d0994a31f96a82a81b2 libstdc++-v3/src/c++98/Makefile.am ! 9c30c9090b85588185c27028c3a8044d libstdc++-v3/src/c++98/Makefile.in 1af7d1431070d1191ba0c26958292bd0 libstdc++-v3/src/c++98/allocator-inst.cc 5fe119083458d53e6e7ca04fafae39b8 libstdc++-v3/src/c++98/bitmap_allocator.cc 9cac9377c40f34f7b6fe46eaaca4a8ff libstdc++-v3/src/c++98/codecvt.cc *************** cd207df6b3d9119d15141821428b8880 libstd *** 73091,73097 **** a73d3f645f57edd4eb3f65b4bf81ce83 libstdc++-v3/src/c++98/list_associated.cc fe2779d51dc3f5946c0fd6e6161c052d libstdc++-v3/src/c++98/locale.cc 8245e7b134954624f2d08a252b401a62 libstdc++-v3/src/c++98/locale_facets.cc ! 41ef48fbe68d90a9bd34be86c5aa540f libstdc++-v3/src/c++98/locale_init.cc 66505fa4b47baf73218e00ee1664d7e8 libstdc++-v3/src/c++98/localename.cc e8752c5b5eb8f73b5fa3edc854be6af5 libstdc++-v3/src/c++98/math_stubs_float.cc e39b0e232c9f087d063de8b5fded3928 libstdc++-v3/src/c++98/math_stubs_long_double.cc --- 73613,73619 ---- a73d3f645f57edd4eb3f65b4bf81ce83 libstdc++-v3/src/c++98/list_associated.cc fe2779d51dc3f5946c0fd6e6161c052d libstdc++-v3/src/c++98/locale.cc 8245e7b134954624f2d08a252b401a62 libstdc++-v3/src/c++98/locale_facets.cc ! d0e1f9d8fc309d2cbf5ef69a9c73ae71 libstdc++-v3/src/c++98/locale_init.cc 66505fa4b47baf73218e00ee1664d7e8 libstdc++-v3/src/c++98/localename.cc e8752c5b5eb8f73b5fa3edc854be6af5 libstdc++-v3/src/c++98/math_stubs_float.cc e39b0e232c9f087d063de8b5fded3928 libstdc++-v3/src/c++98/math_stubs_long_double.cc *************** eea5fd36e43cb312dbfe5794f87127ee libstd *** 73105,73111 **** cb756de7d9060d64e44b929f62034fc2 libstdc++-v3/src/c++98/tree.cc 7c64ecadd9161b822f13fae2d5fac83e libstdc++-v3/src/c++98/valarray.cc e2ff5e34304224a747e3d1204249289a libstdc++-v3/src/filesystem/Makefile.am ! 491ffb297c12cd9e24b7a455e1085482 libstdc++-v3/src/filesystem/Makefile.in b26f36b095ce739a3477f3a0d9344cb5 libstdc++-v3/src/filesystem/cow-dir.cc ee1a255b00a8af7777d83264abb18c3a libstdc++-v3/src/filesystem/cow-ops.cc 93702fda212378b01a6e67f4ce5afbde libstdc++-v3/src/filesystem/cow-path.cc --- 73627,73633 ---- cb756de7d9060d64e44b929f62034fc2 libstdc++-v3/src/c++98/tree.cc 7c64ecadd9161b822f13fae2d5fac83e libstdc++-v3/src/c++98/valarray.cc e2ff5e34304224a747e3d1204249289a libstdc++-v3/src/filesystem/Makefile.am ! 417ce2b87db17db607271c0a08a6a70f libstdc++-v3/src/filesystem/Makefile.in b26f36b095ce739a3477f3a0d9344cb5 libstdc++-v3/src/filesystem/cow-dir.cc ee1a255b00a8af7777d83264abb18c3a libstdc++-v3/src/filesystem/cow-ops.cc 93702fda212378b01a6e67f4ce5afbde libstdc++-v3/src/filesystem/cow-path.cc *************** fb2efeb60fd8c764483e34d6c089ccc2 libstd *** 73113,73125 **** 24939d6b9b46c6886fdff3896ded6268 libstdc++-v3/src/filesystem/cow-std-ops.cc 30373fbc8bce18c2e7a9df73a784a6c8 libstdc++-v3/src/filesystem/cow-std-path.cc b74d6594f0374085c9300b092775aeb1 libstdc++-v3/src/filesystem/dir-common.h ! 7d47eafed9b0df004eb5196272d725ce libstdc++-v3/src/filesystem/dir.cc 767020a0dd8a279cae757fdccf19282d libstdc++-v3/src/filesystem/ops-common.h ! 698057c19fd4e05437ddcd69df91aacc libstdc++-v3/src/filesystem/ops.cc ! 95d8ca3a8ad78a09ca269a347b27fd4a libstdc++-v3/src/filesystem/path.cc ! 9157503d4bc833a58de7ade9a0c4a95f libstdc++-v3/src/filesystem/std-dir.cc ! c4f7bd8c26838b5329dc9cf61831c6cd libstdc++-v3/src/filesystem/std-ops.cc ! e2c0685a024031fd4e3a49501dcc1664 libstdc++-v3/src/filesystem/std-path.cc 0601bf78d93bd1788214ede5de7c02ad libstdc++-v3/src/shared/hashtable-aux.cc 3d8476b40375b3b047530c4521769b00 libstdc++-v3/testsuite/17_intro/freestanding.cc 4d2ce97c9adf17a612622ccde5efdd9c libstdc++-v3/testsuite/17_intro/headers/c++1998/49745.cc --- 73635,73647 ---- 24939d6b9b46c6886fdff3896ded6268 libstdc++-v3/src/filesystem/cow-std-ops.cc 30373fbc8bce18c2e7a9df73a784a6c8 libstdc++-v3/src/filesystem/cow-std-path.cc b74d6594f0374085c9300b092775aeb1 libstdc++-v3/src/filesystem/dir-common.h ! 0ba6dc1bba1992ff09540ea197e6e1d2 libstdc++-v3/src/filesystem/dir.cc 767020a0dd8a279cae757fdccf19282d libstdc++-v3/src/filesystem/ops-common.h ! fd209da361963a27b764d35d6c21f424 libstdc++-v3/src/filesystem/ops.cc ! 840192d6fdc056f927bc41e1ecf34142 libstdc++-v3/src/filesystem/path.cc ! 8b15763484fcff6f0941f922a04de0e9 libstdc++-v3/src/filesystem/std-dir.cc ! 2a26384fadbd439562782b6e30b2b16d libstdc++-v3/src/filesystem/std-ops.cc ! 06d014f6e5811ebdcb3f1ca84a5f71a2 libstdc++-v3/src/filesystem/std-path.cc 0601bf78d93bd1788214ede5de7c02ad libstdc++-v3/src/shared/hashtable-aux.cc 3d8476b40375b3b047530c4521769b00 libstdc++-v3/testsuite/17_intro/freestanding.cc 4d2ce97c9adf17a612622ccde5efdd9c libstdc++-v3/testsuite/17_intro/headers/c++1998/49745.cc *************** cc67ba58cdcf2fa16c7fddc0e1845cc9 libstd *** 73151,73157 **** 99c7bab5cf77f9d7d103460f12fbf954 libstdc++-v3/testsuite/17_intro/headers/c++2014/operator_names.cc 033f3e052d6bd92f3dc3281f0adca3d5 libstdc++-v3/testsuite/17_intro/headers/c++2014/stdc++.cc 3fbe5f48befda0a7ae41578ffb062112 libstdc++-v3/testsuite/17_intro/headers/c++2014/stdc++_multiple_inclusion.cc ! ca154df990b1f3a4735132aea2e95e7c libstdc++-v3/testsuite/17_intro/names.cc 357540b6cc78c6c371c3e93cb428b27b libstdc++-v3/testsuite/17_intro/shared_with_static_deps.cc 1e043a78bac9deb4ffe351f12b341c04 libstdc++-v3/testsuite/17_intro/static.cc 6c6837d18fc37f57bbc58b567dffa584 libstdc++-v3/testsuite/17_intro/tag_type_explicit_ctor.cc --- 73673,73679 ---- 99c7bab5cf77f9d7d103460f12fbf954 libstdc++-v3/testsuite/17_intro/headers/c++2014/operator_names.cc 033f3e052d6bd92f3dc3281f0adca3d5 libstdc++-v3/testsuite/17_intro/headers/c++2014/stdc++.cc 3fbe5f48befda0a7ae41578ffb062112 libstdc++-v3/testsuite/17_intro/headers/c++2014/stdc++_multiple_inclusion.cc ! feb127da5e32f0a9df2bceed3d106531 libstdc++-v3/testsuite/17_intro/names.cc 357540b6cc78c6c371c3e93cb428b27b libstdc++-v3/testsuite/17_intro/shared_with_static_deps.cc 1e043a78bac9deb4ffe351f12b341c04 libstdc++-v3/testsuite/17_intro/static.cc 6c6837d18fc37f57bbc58b567dffa584 libstdc++-v3/testsuite/17_intro/tag_type_explicit_ctor.cc *************** fa68920fbdbc5db01e9aad92559f70f3 libstd *** 73159,73164 **** --- 73681,73687 ---- 7d3c14c3e18f6f1fb63219918baa8e80 libstdc++-v3/testsuite/17_intro/using_namespace_std_exp_neg.cc cdc28410e5294149a309fff57df35e17 libstdc++-v3/testsuite/17_intro/using_namespace_std_tr1_neg.cc cd369277a10b3b5d7f91c6e97f9e2416 libstdc++-v3/testsuite/18_support/50594.cc + 2f87c47ecadaa7e8377f15d2db944354 libstdc++-v3/testsuite/18_support/51333.cc f43b1286355794fbc19db326c21cdf0f libstdc++-v3/testsuite/18_support/aligned_alloc/aligned_alloc.cc bc370f76a2ea2999ef7d12d8fc757cd4 libstdc++-v3/testsuite/18_support/bad_alloc/cons_virtual_derivation.cc 7d2d56171f5077d1428d6f9a39bc63bc libstdc++-v3/testsuite/18_support/bad_alloc/what.cc *************** ed2537353b7b140a34cd433efe390177 libstd *** 73387,73393 **** dcea191c8d87737588370196323afc6e libstdc++-v3/testsuite/20_util/any/cons/in_place.cc 8a21b66009ff6f60cba16f59056d3d8a libstdc++-v3/testsuite/20_util/any/cons/nontrivial.cc 761224dbe50b54dbe89d5702f39f484d libstdc++-v3/testsuite/20_util/any/make_any.cc ! 44c81d38c248ba6c04f6bbbb5b2f9f10 libstdc++-v3/testsuite/20_util/any/misc/any_cast.cc 47069e16ce00f3c36757ccedc1f2dc41 libstdc++-v3/testsuite/20_util/any/misc/any_cast_neg.cc 6c2d9e722f0f83536158347f8f69c681 libstdc++-v3/testsuite/20_util/any/misc/any_cast_no_rtti.cc dab7e55421df6d039979bbd32e75db40 libstdc++-v3/testsuite/20_util/any/misc/swap.cc --- 73910,73916 ---- dcea191c8d87737588370196323afc6e libstdc++-v3/testsuite/20_util/any/cons/in_place.cc 8a21b66009ff6f60cba16f59056d3d8a libstdc++-v3/testsuite/20_util/any/cons/nontrivial.cc 761224dbe50b54dbe89d5702f39f484d libstdc++-v3/testsuite/20_util/any/make_any.cc ! 7ae90e4f16760190711693fd8a2dd01c libstdc++-v3/testsuite/20_util/any/misc/any_cast.cc 47069e16ce00f3c36757ccedc1f2dc41 libstdc++-v3/testsuite/20_util/any/misc/any_cast_neg.cc 6c2d9e722f0f83536158347f8f69c681 libstdc++-v3/testsuite/20_util/any/misc/any_cast_no_rtti.cc dab7e55421df6d039979bbd32e75db40 libstdc++-v3/testsuite/20_util/any/misc/swap.cc *************** c8ad557be78347ce88107b471eacce96 libstd *** 73438,73446 **** 19c91034a01eb56d3d60cdb22c8e3082 libstdc++-v3/testsuite/20_util/bind/socket.cc b924bc529ce784068a2fb7c08bbfdcb0 libstdc++-v3/testsuite/20_util/bool_constant/requirements.cc 5d7dbd2eab7307a6017fe100aef24bae libstdc++-v3/testsuite/20_util/common_type/requirements/alias_decl.cc ! d5b38502a319774fc7360710cdf63785 libstdc++-v3/testsuite/20_util/common_type/requirements/explicit_instantiation.cc ! d5e7d50216fbae397b93b56f1ba1f4bd libstdc++-v3/testsuite/20_util/common_type/requirements/sfinae_friendly_1.cc ! 11325d6641efe9587975de750a992c31 libstdc++-v3/testsuite/20_util/common_type/requirements/sfinae_friendly_2.cc 6bc06a273df2dabdd47e3614835daf83 libstdc++-v3/testsuite/20_util/common_type/requirements/typedefs-1.cc 2a433e3a6b0152522fbe0fd8efc7d3a2 libstdc++-v3/testsuite/20_util/common_type/requirements/typedefs-2.cc 13aef816cb5b4c342945fdc528cf77b2 libstdc++-v3/testsuite/20_util/conditional/requirements/alias_decl.cc --- 73961,73969 ---- 19c91034a01eb56d3d60cdb22c8e3082 libstdc++-v3/testsuite/20_util/bind/socket.cc b924bc529ce784068a2fb7c08bbfdcb0 libstdc++-v3/testsuite/20_util/bool_constant/requirements.cc 5d7dbd2eab7307a6017fe100aef24bae libstdc++-v3/testsuite/20_util/common_type/requirements/alias_decl.cc ! 25e626bfcc2469f986006fe355a205ca libstdc++-v3/testsuite/20_util/common_type/requirements/explicit_instantiation.cc ! 89b9a8ee0399046ed8ad5aa090aadf0a libstdc++-v3/testsuite/20_util/common_type/requirements/sfinae_friendly_1.cc ! d108bda84736fbff3ad4bca3fd7487ab libstdc++-v3/testsuite/20_util/common_type/requirements/sfinae_friendly_2.cc 6bc06a273df2dabdd47e3614835daf83 libstdc++-v3/testsuite/20_util/common_type/requirements/typedefs-1.cc 2a433e3a6b0152522fbe0fd8efc7d3a2 libstdc++-v3/testsuite/20_util/common_type/requirements/typedefs-2.cc 13aef816cb5b4c342945fdc528cf77b2 libstdc++-v3/testsuite/20_util/conditional/requirements/alias_decl.cc *************** c0a38d0fcccfac4ead39c9a15fd731d5 libstd *** 73585,73590 **** --- 74108,74114 ---- 02eb313d6e9dd13cf1662604c6a6f45a libstdc++-v3/testsuite/20_util/hash/52931.cc c2dc3f28d0935423a6fe187b7bb63966 libstdc++-v3/testsuite/20_util/hash/60970.cc 5cff0c5e33300b9f5a3f70e70fb086b7 libstdc++-v3/testsuite/20_util/hash/84998.cc + 4eaefc7af2963267cf693a946b55afe9 libstdc++-v3/testsuite/20_util/hash/89629.cc b57f09e4d4f0857ef2399e08258f68be libstdc++-v3/testsuite/20_util/hash/chi2_q_bit_flip_set.cc b83eb9b74655ef0695e50e595f19f404 libstdc++-v3/testsuite/20_util/hash/chi2_q_bit_string_set.cc d9070e3783eb6f437f00415a8d1f2f25 libstdc++-v3/testsuite/20_util/hash/chi2_q_document_words.cc *************** a5e184714ddd867798fa94c2ebe2c9fe libstd *** 73655,73662 **** 34bee5445a2e040a512b487bc5f46268 libstdc++-v3/testsuite/20_util/is_constructible/80812.cc ee9f238d298fefd12b4b321d39224dd8 libstdc++-v3/testsuite/20_util/is_constructible/requirements/explicit_instantiation.cc 28cb77c131abfb3a47871a75d1dbc4f4 libstdc++-v3/testsuite/20_util/is_constructible/requirements/typedefs.cc ! 239da8f9ba7f0a51066686760560f8e7 libstdc++-v3/testsuite/20_util/is_constructible/value-2.cc ! f3b4924bf0f593add6e2b108cc406432 libstdc++-v3/testsuite/20_util/is_constructible/value.cc b3ef5ee32480fe6a6f4b26acc5b44c72 libstdc++-v3/testsuite/20_util/is_convertible/requirements/explicit_instantiation.cc cd70ec5a9ae06842631fd8fa31348220 libstdc++-v3/testsuite/20_util/is_convertible/requirements/typedefs.cc 31fd24a4e5e09b17fe8ac964de567d64 libstdc++-v3/testsuite/20_util/is_convertible/value.cc --- 74179,74186 ---- 34bee5445a2e040a512b487bc5f46268 libstdc++-v3/testsuite/20_util/is_constructible/80812.cc ee9f238d298fefd12b4b321d39224dd8 libstdc++-v3/testsuite/20_util/is_constructible/requirements/explicit_instantiation.cc 28cb77c131abfb3a47871a75d1dbc4f4 libstdc++-v3/testsuite/20_util/is_constructible/requirements/typedefs.cc ! e901c995c7d1daad30b971b8bfc79d64 libstdc++-v3/testsuite/20_util/is_constructible/value-2.cc ! e0167ce0367de637cc920121881479e7 libstdc++-v3/testsuite/20_util/is_constructible/value.cc b3ef5ee32480fe6a6f4b26acc5b44c72 libstdc++-v3/testsuite/20_util/is_convertible/requirements/explicit_instantiation.cc cd70ec5a9ae06842631fd8fa31348220 libstdc++-v3/testsuite/20_util/is_convertible/requirements/typedefs.cc 31fd24a4e5e09b17fe8ac964de567d64 libstdc++-v3/testsuite/20_util/is_convertible/value.cc *************** cd70ec5a9ae06842631fd8fa31348220 libstd *** 73668,73674 **** bc127212fc71d16a83f8dd277d9d2286 libstdc++-v3/testsuite/20_util/is_copy_constructible/value.cc ce6191e946d6e8c2707829c222fac733 libstdc++-v3/testsuite/20_util/is_default_constructible/requirements/explicit_instantiation.cc fc6fa1ac2b3b46ed747864b880fe1529 libstdc++-v3/testsuite/20_util/is_default_constructible/requirements/typedefs.cc ! 80746c5a9a8bb074a5cc3b28be8d475d libstdc++-v3/testsuite/20_util/is_default_constructible/value.cc 9e366844f4b37e4a2f4eed512be1801b libstdc++-v3/testsuite/20_util/is_destructible/requirements/explicit_instantiation.cc 4f931ec7ae80104f7fdf1120ca1940d4 libstdc++-v3/testsuite/20_util/is_destructible/requirements/typedefs.cc 5a57187988c412b935b2a809f8179638 libstdc++-v3/testsuite/20_util/is_destructible/value.cc --- 74192,74198 ---- bc127212fc71d16a83f8dd277d9d2286 libstdc++-v3/testsuite/20_util/is_copy_constructible/value.cc ce6191e946d6e8c2707829c222fac733 libstdc++-v3/testsuite/20_util/is_default_constructible/requirements/explicit_instantiation.cc fc6fa1ac2b3b46ed747864b880fe1529 libstdc++-v3/testsuite/20_util/is_default_constructible/requirements/typedefs.cc ! 8b9de5356c593a93d26adbe03be78d84 libstdc++-v3/testsuite/20_util/is_default_constructible/value.cc 9e366844f4b37e4a2f4eed512be1801b libstdc++-v3/testsuite/20_util/is_destructible/requirements/explicit_instantiation.cc 4f931ec7ae80104f7fdf1120ca1940d4 libstdc++-v3/testsuite/20_util/is_destructible/requirements/typedefs.cc 5a57187988c412b935b2a809f8179638 libstdc++-v3/testsuite/20_util/is_destructible/value.cc *************** c6cb4f2b8d52b4fa40deb7de9c33ae8e libstd *** 73749,73755 **** f7b131d81bcf74d7bac7f77161e2230b libstdc++-v3/testsuite/20_util/is_nothrow_invocable/requirements/explicit_instantiation_ext.cc 0fac290cf59185c0930c249dc1dedaf1 libstdc++-v3/testsuite/20_util/is_nothrow_invocable/requirements/typedefs.cc ef86e41f91053adf190cf1a1e10dad79 libstdc++-v3/testsuite/20_util/is_nothrow_invocable/requirements/typedefs_ext.cc ! 7c3d1231001023333290ff7dc1a34e5e libstdc++-v3/testsuite/20_util/is_nothrow_invocable/value.cc 6542600f8d8e44db336a2da4ce2d0583 libstdc++-v3/testsuite/20_util/is_nothrow_invocable/value_ext.cc 5678e84f30bc3374f6270dab990cd7e2 libstdc++-v3/testsuite/20_util/is_nothrow_move_assignable/requirements/explicit_instantiation.cc 99b6db1eb0ad0964623487177eaec29f libstdc++-v3/testsuite/20_util/is_nothrow_move_assignable/requirements/typedefs.cc --- 74273,74279 ---- f7b131d81bcf74d7bac7f77161e2230b libstdc++-v3/testsuite/20_util/is_nothrow_invocable/requirements/explicit_instantiation_ext.cc 0fac290cf59185c0930c249dc1dedaf1 libstdc++-v3/testsuite/20_util/is_nothrow_invocable/requirements/typedefs.cc ef86e41f91053adf190cf1a1e10dad79 libstdc++-v3/testsuite/20_util/is_nothrow_invocable/requirements/typedefs_ext.cc ! 2a5ee39066e865be5c70999b384488ef libstdc++-v3/testsuite/20_util/is_nothrow_invocable/value.cc 6542600f8d8e44db336a2da4ce2d0583 libstdc++-v3/testsuite/20_util/is_nothrow_invocable/value_ext.cc 5678e84f30bc3374f6270dab990cd7e2 libstdc++-v3/testsuite/20_util/is_nothrow_move_assignable/requirements/explicit_instantiation.cc 99b6db1eb0ad0964623487177eaec29f libstdc++-v3/testsuite/20_util/is_nothrow_move_assignable/requirements/typedefs.cc *************** e1993f7ba83873b0bc325ab53d7945a5 libstd *** 73818,73824 **** 3676d3b93dede30cd71d29ddee2da137 libstdc++-v3/testsuite/20_util/is_trivially_assignable/value.cc 5449805a77d02588c19c8ce49b897721 libstdc++-v3/testsuite/20_util/is_trivially_constructible/requirements/explicit_instantiation.cc b51a3623284386948e01231b23c4ef38 libstdc++-v3/testsuite/20_util/is_trivially_constructible/requirements/typedefs.cc ! 5661baa554e7c5e4e2f7e5ef003310f9 libstdc++-v3/testsuite/20_util/is_trivially_constructible/value.cc bd8a59605dcba36e84a77e314311784f libstdc++-v3/testsuite/20_util/is_trivially_copy_assignable/requirements/explicit_instantiation.cc a9944cb6258882c860bb9b3be6a11c4b libstdc++-v3/testsuite/20_util/is_trivially_copy_assignable/requirements/typedefs.cc cb9579523ffa9c296b89783726f12d16 libstdc++-v3/testsuite/20_util/is_trivially_copy_assignable/value.cc --- 74342,74348 ---- 3676d3b93dede30cd71d29ddee2da137 libstdc++-v3/testsuite/20_util/is_trivially_assignable/value.cc 5449805a77d02588c19c8ce49b897721 libstdc++-v3/testsuite/20_util/is_trivially_constructible/requirements/explicit_instantiation.cc b51a3623284386948e01231b23c4ef38 libstdc++-v3/testsuite/20_util/is_trivially_constructible/requirements/typedefs.cc ! e7c8b1b7df738b3925e8ac759207a579 libstdc++-v3/testsuite/20_util/is_trivially_constructible/value.cc bd8a59605dcba36e84a77e314311784f libstdc++-v3/testsuite/20_util/is_trivially_copy_assignable/requirements/explicit_instantiation.cc a9944cb6258882c860bb9b3be6a11c4b libstdc++-v3/testsuite/20_util/is_trivially_copy_assignable/requirements/typedefs.cc cb9579523ffa9c296b89783726f12d16 libstdc++-v3/testsuite/20_util/is_trivially_copy_assignable/value.cc *************** d6d497226001b84e608e9ad011d12b2b libstd *** 73830,73836 **** d8bd2e65a1413c61a4179037f30e0405 libstdc++-v3/testsuite/20_util/is_trivially_copyable/value.cc c26f9cd364efb1be39a4c57ec5999a52 libstdc++-v3/testsuite/20_util/is_trivially_default_constructible/requirements/explicit_instantiation.cc 4df7a1bc5c3761cbdb938eaac8a774d9 libstdc++-v3/testsuite/20_util/is_trivially_default_constructible/requirements/typedefs.cc ! e280e832a0a51788f3df8403c161fe48 libstdc++-v3/testsuite/20_util/is_trivially_default_constructible/value.cc e922716c292da2ea6cf386549d32c0bc libstdc++-v3/testsuite/20_util/is_trivially_destructible/requirements/explicit_instantiation.cc 0b84ac5f5cc1c0b0367832c8bdb9087c libstdc++-v3/testsuite/20_util/is_trivially_destructible/requirements/typedefs.cc 04d79d317e28dc93cf7112d85d0dbba0 libstdc++-v3/testsuite/20_util/is_trivially_destructible/value.cc --- 74354,74360 ---- d8bd2e65a1413c61a4179037f30e0405 libstdc++-v3/testsuite/20_util/is_trivially_copyable/value.cc c26f9cd364efb1be39a4c57ec5999a52 libstdc++-v3/testsuite/20_util/is_trivially_default_constructible/requirements/explicit_instantiation.cc 4df7a1bc5c3761cbdb938eaac8a774d9 libstdc++-v3/testsuite/20_util/is_trivially_default_constructible/requirements/typedefs.cc ! a6a41ab6541b50d3c92389d44330385e libstdc++-v3/testsuite/20_util/is_trivially_default_constructible/value.cc e922716c292da2ea6cf386549d32c0bc libstdc++-v3/testsuite/20_util/is_trivially_destructible/requirements/explicit_instantiation.cc 0b84ac5f5cc1c0b0367832c8bdb9087c libstdc++-v3/testsuite/20_util/is_trivially_destructible/requirements/typedefs.cc 04d79d317e28dc93cf7112d85d0dbba0 libstdc++-v3/testsuite/20_util/is_trivially_destructible/value.cc *************** c0e1b293aaefc3b0ee8098fa1bc758d7 libstd *** 73902,73908 **** dc4e6ac4c094dbcf83f1f12e9b8c8023 libstdc++-v3/testsuite/20_util/optional/constexpr/observers/1.cc 09175ba95eced101e7be251cf2678168 libstdc++-v3/testsuite/20_util/optional/constexpr/observers/2.cc 6a4f8534150351919cabaef08e105b62 libstdc++-v3/testsuite/20_util/optional/constexpr/observers/3.cc ! 46bf1d9af774a1f6b654420bb614845b libstdc++-v3/testsuite/20_util/optional/constexpr/observers/4.cc c00fff8e62f8953fe5486158c51074c8 libstdc++-v3/testsuite/20_util/optional/constexpr/observers/5.cc f242602d013cb71a054abd4c5e455607 libstdc++-v3/testsuite/20_util/optional/constexpr/relops/1.cc cc6a00e5c60d2b53003fac8d3881c3bb libstdc++-v3/testsuite/20_util/optional/constexpr/relops/2.cc --- 74426,74432 ---- dc4e6ac4c094dbcf83f1f12e9b8c8023 libstdc++-v3/testsuite/20_util/optional/constexpr/observers/1.cc 09175ba95eced101e7be251cf2678168 libstdc++-v3/testsuite/20_util/optional/constexpr/observers/2.cc 6a4f8534150351919cabaef08e105b62 libstdc++-v3/testsuite/20_util/optional/constexpr/observers/3.cc ! b66ae8e2d11c8fad6f67349625c0d9df libstdc++-v3/testsuite/20_util/optional/constexpr/observers/4.cc c00fff8e62f8953fe5486158c51074c8 libstdc++-v3/testsuite/20_util/optional/constexpr/observers/5.cc f242602d013cb71a054abd4c5e455607 libstdc++-v3/testsuite/20_util/optional/constexpr/relops/1.cc cc6a00e5c60d2b53003fac8d3881c3bb libstdc++-v3/testsuite/20_util/optional/constexpr/relops/2.cc *************** cf77f78604b6146e6bdc4ce0edc3f7da libstd *** 73917,73923 **** f37ef6d81000bb0a530a664a91842d4a libstdc++-v3/testsuite/20_util/optional/observers/1.cc 94b5b142265de4cda53f6171a5cbe369 libstdc++-v3/testsuite/20_util/optional/observers/2.cc 4c29d80534358c9f991791734a4b9795 libstdc++-v3/testsuite/20_util/optional/observers/3.cc ! 0f9f503e3ba553218f6629f2804820aa libstdc++-v3/testsuite/20_util/optional/observers/4.cc 8796bef4e2f03df43bc996fed54c72c6 libstdc++-v3/testsuite/20_util/optional/observers/5.cc bbfbbbbd09733cba96822ac4d7dedd1c libstdc++-v3/testsuite/20_util/optional/observers/6.cc 166d2606eaaee19dbf8d2f00f847b8fa libstdc++-v3/testsuite/20_util/optional/relops/1.cc --- 74441,74447 ---- f37ef6d81000bb0a530a664a91842d4a libstdc++-v3/testsuite/20_util/optional/observers/1.cc 94b5b142265de4cda53f6171a5cbe369 libstdc++-v3/testsuite/20_util/optional/observers/2.cc 4c29d80534358c9f991791734a4b9795 libstdc++-v3/testsuite/20_util/optional/observers/3.cc ! 6d1cbddd86e9f84a378b5e74879836ab libstdc++-v3/testsuite/20_util/optional/observers/4.cc 8796bef4e2f03df43bc996fed54c72c6 libstdc++-v3/testsuite/20_util/optional/observers/5.cc bbfbbbbd09733cba96822ac4d7dedd1c libstdc++-v3/testsuite/20_util/optional/observers/6.cc 166d2606eaaee19dbf8d2f00f847b8fa libstdc++-v3/testsuite/20_util/optional/relops/1.cc *************** e91b4bd07c82ba988422b73bed116160 libstd *** 74044,74051 **** a26314d509914bf6b8a3b34629c1e3a3 libstdc++-v3/testsuite/20_util/scoped_allocator/3.cc 9b0e75588ca9cbaa8b35ec0c76d1e5f0 libstdc++-v3/testsuite/20_util/scoped_allocator/65279.cc f43ab512c372b665a0a24b7cd50d106c libstdc++-v3/testsuite/20_util/scoped_allocator/69114.cc ! c6142ee0a29a7b41216e755cb4c93b89 libstdc++-v3/testsuite/20_util/scoped_allocator/69293_neg.cc e1d77ef5b3b7a83ff3d2f00513e78106 libstdc++-v3/testsuite/20_util/scoped_allocator/construct_pair.cc c46ddc47cc3b0714596005ffb97c03f3 libstdc++-v3/testsuite/20_util/scoped_allocator/outermost.cc 4fb38daf6b78f9a84a6d55024e3b7a47 libstdc++-v3/testsuite/20_util/scoped_allocator/propagation.cc 3812da962f5af5e02504c3f27c2b5c2a libstdc++-v3/testsuite/20_util/scoped_allocator/requirements/explicit_instantiation.cc --- 74568,74576 ---- a26314d509914bf6b8a3b34629c1e3a3 libstdc++-v3/testsuite/20_util/scoped_allocator/3.cc 9b0e75588ca9cbaa8b35ec0c76d1e5f0 libstdc++-v3/testsuite/20_util/scoped_allocator/65279.cc f43ab512c372b665a0a24b7cd50d106c libstdc++-v3/testsuite/20_util/scoped_allocator/69114.cc ! c8e06d724d2b9daa4fea130fd1bab429 libstdc++-v3/testsuite/20_util/scoped_allocator/69293_neg.cc e1d77ef5b3b7a83ff3d2f00513e78106 libstdc++-v3/testsuite/20_util/scoped_allocator/construct_pair.cc + 9a0a9a13d40a3588368e4a6759e452d9 libstdc++-v3/testsuite/20_util/scoped_allocator/dr2586.cc c46ddc47cc3b0714596005ffb97c03f3 libstdc++-v3/testsuite/20_util/scoped_allocator/outermost.cc 4fb38daf6b78f9a84a6d55024e3b7a47 libstdc++-v3/testsuite/20_util/scoped_allocator/propagation.cc 3812da962f5af5e02504c3f27c2b5c2a libstdc++-v3/testsuite/20_util/scoped_allocator/requirements/explicit_instantiation.cc *************** f80ddf8215ff699da2c9c05cbb28c2fd libstd *** 74201,74207 **** 6d37a6c516aa1d7ddad5f0ce5d8e2c41 libstdc++-v3/testsuite/20_util/tuple/cons/48476.cc 64cdd6d89387ab07c0839f6897e1694c libstdc++-v3/testsuite/20_util/tuple/cons/66338.cc 10e9db1fe2c454993dc4f1a56d9c35e8 libstdc++-v3/testsuite/20_util/tuple/cons/allocator_with_any.cc ! 43128d3a007de88940c8f0afe1bd80f7 libstdc++-v3/testsuite/20_util/tuple/cons/allocators.cc 764cef886bd43a9d53cb1f44a224127f libstdc++-v3/testsuite/20_util/tuple/cons/assignment.cc 38be1bb9e0717fbb641b42a31f71cc9f libstdc++-v3/testsuite/20_util/tuple/cons/big_tuples.cc 998ae00e699c737b806cec41ab638a1f libstdc++-v3/testsuite/20_util/tuple/cons/constexpr-2.cc --- 74726,74732 ---- 6d37a6c516aa1d7ddad5f0ce5d8e2c41 libstdc++-v3/testsuite/20_util/tuple/cons/48476.cc 64cdd6d89387ab07c0839f6897e1694c libstdc++-v3/testsuite/20_util/tuple/cons/66338.cc 10e9db1fe2c454993dc4f1a56d9c35e8 libstdc++-v3/testsuite/20_util/tuple/cons/allocator_with_any.cc ! 36ecedd36d698a14c2a8fcec9ef0e5cf libstdc++-v3/testsuite/20_util/tuple/cons/allocators.cc 764cef886bd43a9d53cb1f44a224127f libstdc++-v3/testsuite/20_util/tuple/cons/assignment.cc 38be1bb9e0717fbb641b42a31f71cc9f libstdc++-v3/testsuite/20_util/tuple/cons/big_tuples.cc 998ae00e699c737b806cec41ab638a1f libstdc++-v3/testsuite/20_util/tuple/cons/constexpr-2.cc *************** e117f13086c13e2ba3df110996d3b7fa libstd *** 74256,74262 **** 5ff588b783030acfc61ae193d809940c libstdc++-v3/testsuite/20_util/underlying_type/requirements/typedefs-2.cc cb2bfb16a6a9bd9f04c6c60346718c54 libstdc++-v3/testsuite/20_util/unique_ptr/54351.cc 0d6251c39605ffb055857e967d0005dd libstdc++-v3/testsuite/20_util/unique_ptr/assign/48635.cc ! 87ecfa32e7b5d05ea2e238f7340d5636 libstdc++-v3/testsuite/20_util/unique_ptr/assign/48635_neg.cc a3829cf8a45d228fe9d014726d70d4ac libstdc++-v3/testsuite/20_util/unique_ptr/assign/assign_neg.cc b86eb4f95eb3723e429026bf3f9cdfb3 libstdc++-v3/testsuite/20_util/unique_ptr/assign/cv_qual.cc 94e2acf2dce72db5225fbbacdf5510d5 libstdc++-v3/testsuite/20_util/unique_ptr/assign/move.cc --- 74781,74788 ---- 5ff588b783030acfc61ae193d809940c libstdc++-v3/testsuite/20_util/underlying_type/requirements/typedefs-2.cc cb2bfb16a6a9bd9f04c6c60346718c54 libstdc++-v3/testsuite/20_util/unique_ptr/54351.cc 0d6251c39605ffb055857e967d0005dd libstdc++-v3/testsuite/20_util/unique_ptr/assign/48635.cc ! 1bcafc530706d1433a3a65fa547950a9 libstdc++-v3/testsuite/20_util/unique_ptr/assign/48635_neg.cc ! 8fb0f2007f9a8170e29b505990a47cf0 libstdc++-v3/testsuite/20_util/unique_ptr/assign/91308.cc a3829cf8a45d228fe9d014726d70d4ac libstdc++-v3/testsuite/20_util/unique_ptr/assign/assign_neg.cc b86eb4f95eb3723e429026bf3f9cdfb3 libstdc++-v3/testsuite/20_util/unique_ptr/assign/cv_qual.cc 94e2acf2dce72db5225fbbacdf5510d5 libstdc++-v3/testsuite/20_util/unique_ptr/assign/move.cc *************** fd7d55cf83371c9e9d621d3002317b94 libstd *** 74271,74277 **** fee70f9567da3a2ef36276312783aa88 libstdc++-v3/testsuite/20_util/unique_ptr/cons/constexpr.cc 533eb72b606258139e7514cd4c689b78 libstdc++-v3/testsuite/20_util/unique_ptr/cons/convertible_neg.cc 95b11a7eef8ff4c10c5b97475301fc1d libstdc++-v3/testsuite/20_util/unique_ptr/cons/cv_qual.cc ! 7a700ba3162017cbcc26390eed140ed7 libstdc++-v3/testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc d2b877e8db50f8fa08ca966a3c81291c libstdc++-v3/testsuite/20_util/unique_ptr/cons/deduction_neg.cc 6426ae19422b4abbe024d0d4b4785a2f libstdc++-v3/testsuite/20_util/unique_ptr/cons/default.cc bee7be33cdf693573fffc08c157838b9 libstdc++-v3/testsuite/20_util/unique_ptr/cons/incomplete.cc --- 74797,74803 ---- fee70f9567da3a2ef36276312783aa88 libstdc++-v3/testsuite/20_util/unique_ptr/cons/constexpr.cc 533eb72b606258139e7514cd4c689b78 libstdc++-v3/testsuite/20_util/unique_ptr/cons/convertible_neg.cc 95b11a7eef8ff4c10c5b97475301fc1d libstdc++-v3/testsuite/20_util/unique_ptr/cons/cv_qual.cc ! 9da882f2d65df223848fd665b58eb36d libstdc++-v3/testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc d2b877e8db50f8fa08ca966a3c81291c libstdc++-v3/testsuite/20_util/unique_ptr/cons/deduction_neg.cc 6426ae19422b4abbe024d0d4b4785a2f libstdc++-v3/testsuite/20_util/unique_ptr/cons/default.cc bee7be33cdf693573fffc08c157838b9 libstdc++-v3/testsuite/20_util/unique_ptr/cons/incomplete.cc *************** bbebe5bc011885ad0f0b60e4f5e29033 libstd *** 74289,74294 **** --- 74815,74821 ---- fd493e0e5d685bba46521cfb4ed1e84c libstdc++-v3/testsuite/20_util/unique_ptr/hash/1.cc a1cdc46132a4eb3b88fcceec1b59eef9 libstdc++-v3/testsuite/20_util/unique_ptr/modifiers/43183.cc b5719d509c61b35e606a9cf865a5770a libstdc++-v3/testsuite/20_util/unique_ptr/modifiers/48398.cc + 652a945e3e33dd9445a13cebd0009ed8 libstdc++-v3/testsuite/20_util/unique_ptr/modifiers/93562.cc 4254768bebc6945b5eb03abeb7ab60ff libstdc++-v3/testsuite/20_util/unique_ptr/modifiers/cv_qual.cc d964cc89f00d447d127000b27606cdb2 libstdc++-v3/testsuite/20_util/unique_ptr/modifiers/reset_neg.cc 91cf7374799d8332580fa75fd5036ba3 libstdc++-v3/testsuite/20_util/unique_ptr/requirements/explicit_instantiation/explicit_instantiation.cc *************** ca69a45b7c9b170b487095106ad60531 libstd *** 74299,74306 **** bdc18fecd9027b83de5c74a9a2a17a2e libstdc++-v3/testsuite/20_util/unique_ptr/specialized_algorithms/swap.cc f232c317b13b105a87147eeacf89d1d5 libstdc++-v3/testsuite/20_util/unique_ptr/specialized_algorithms/swap_cxx17.cc 7b35ddf7d24210a38efa58fae7d5d710 libstdc++-v3/testsuite/20_util/uses_allocator/69114.cc ! 4f89e8cb8eaad0dd99bcb3a628362515 libstdc++-v3/testsuite/20_util/uses_allocator/69293_neg.cc ! 9b9c4af925f555a05d569ac0f330c91f libstdc++-v3/testsuite/20_util/uses_allocator/cons_neg.cc 36575c5c0f8106eb535914376afa8cc7 libstdc++-v3/testsuite/20_util/uses_allocator/construction.cc ffd1f920ce5d07355393fddfcd00356f libstdc++-v3/testsuite/20_util/uses_allocator/requirements/explicit_instantiation.cc 6c8d6b0569dd8dd87422d8478bd35bd9 libstdc++-v3/testsuite/20_util/uses_allocator/requirements/typedefs.cc --- 74826,74833 ---- bdc18fecd9027b83de5c74a9a2a17a2e libstdc++-v3/testsuite/20_util/unique_ptr/specialized_algorithms/swap.cc f232c317b13b105a87147eeacf89d1d5 libstdc++-v3/testsuite/20_util/unique_ptr/specialized_algorithms/swap_cxx17.cc 7b35ddf7d24210a38efa58fae7d5d710 libstdc++-v3/testsuite/20_util/uses_allocator/69114.cc ! 12b6abf76b2dbc3e7c36c9ceceedd092 libstdc++-v3/testsuite/20_util/uses_allocator/69293_neg.cc ! ef650152ada62d7ba46138f57422e9f0 libstdc++-v3/testsuite/20_util/uses_allocator/cons_neg.cc 36575c5c0f8106eb535914376afa8cc7 libstdc++-v3/testsuite/20_util/uses_allocator/construction.cc ffd1f920ce5d07355393fddfcd00356f libstdc++-v3/testsuite/20_util/uses_allocator/requirements/explicit_instantiation.cc 6c8d6b0569dd8dd87422d8478bd35bd9 libstdc++-v3/testsuite/20_util/uses_allocator/requirements/typedefs.cc *************** ffd1f920ce5d07355393fddfcd00356f libstd *** 74310,74316 **** 607aa2f9940ef542a06a4e33fd69a96b libstdc++-v3/testsuite/20_util/variant/85183.cc 87b33824a235eca13356293fda90c89b libstdc++-v3/testsuite/20_util/variant/86874.cc 5dfa07d9513e33f1fb46f85d6c9a9040 libstdc++-v3/testsuite/20_util/variant/any.cc ! 78686e68a5fdb7ab0a72bcf32d78e6e7 libstdc++-v3/testsuite/20_util/variant/compile.cc 75e2ca0044681e55785f1949fc6677d5 libstdc++-v3/testsuite/20_util/variant/deduction.cc a8518acf11f1427f9c470465bd65a52e libstdc++-v3/testsuite/20_util/variant/hash.cc 376efd260ad9bbf6de4de519c6049b36 libstdc++-v3/testsuite/20_util/variant/index_type.cc --- 74837,74843 ---- 607aa2f9940ef542a06a4e33fd69a96b libstdc++-v3/testsuite/20_util/variant/85183.cc 87b33824a235eca13356293fda90c89b libstdc++-v3/testsuite/20_util/variant/86874.cc 5dfa07d9513e33f1fb46f85d6c9a9040 libstdc++-v3/testsuite/20_util/variant/any.cc ! 3a6507f5c1907fa3d26327f69d279ef4 libstdc++-v3/testsuite/20_util/variant/compile.cc 75e2ca0044681e55785f1949fc6677d5 libstdc++-v3/testsuite/20_util/variant/deduction.cc a8518acf11f1427f9c470465bd65a52e libstdc++-v3/testsuite/20_util/variant/hash.cc 376efd260ad9bbf6de4de519c6049b36 libstdc++-v3/testsuite/20_util/variant/index_type.cc *************** dfd8058c798fbe325b5bd8140bcca4fb libstd *** 74628,74633 **** --- 75155,75161 ---- 49ae415d00483574240fa3d99b95d63d libstdc++-v3/testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc 10ee68cf9c90c5708fe983b5bdefc221 libstdc++-v3/testsuite/21_strings/basic_string_view/operations/substr/wchar_t/83511.cc 5d93952eb3d4997f13486b39df2e0ba0 libstdc++-v3/testsuite/21_strings/basic_string_view/operators/char/2.cc + 4908512d59a8e3b2e410ccc38ba2705e libstdc++-v3/testsuite/21_strings/basic_string_view/operators/char/89446.cc a734cbdf8949c90c23f4b09b361f3305 libstdc++-v3/testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc 15c7d5bed6043124195f71158e468c13 libstdc++-v3/testsuite/21_strings/basic_string_view/range_access/char/1.cc 3e64b266315f4396a46c4aef92098b1d libstdc++-v3/testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc *************** fdce0ee37576b469d90f78b6210626aa libstd *** 75468,75474 **** 11f831ed76fbf7dc616371699927489a libstdc++-v3/testsuite/23_containers/forward_list/allocator/swap.cc af454948aa829a23fdfa216e96ae8021 libstdc++-v3/testsuite/23_containers/forward_list/capacity/1.cc 95411b8726b6525fbf86208581538928 libstdc++-v3/testsuite/23_containers/forward_list/capacity/resize_size.cc ! 418ddd51f5b95994a371b8b969c76fd8 libstdc++-v3/testsuite/23_containers/forward_list/comparable.cc 2700909a190dde56cb1c4eff1009f300 libstdc++-v3/testsuite/23_containers/forward_list/cons/1.cc 6d4b5d62991231b98629ff777450b01b libstdc++-v3/testsuite/23_containers/forward_list/cons/10.cc 23f9124fd869502a84991368366b8830 libstdc++-v3/testsuite/23_containers/forward_list/cons/11.cc --- 75996,76002 ---- 11f831ed76fbf7dc616371699927489a libstdc++-v3/testsuite/23_containers/forward_list/allocator/swap.cc af454948aa829a23fdfa216e96ae8021 libstdc++-v3/testsuite/23_containers/forward_list/capacity/1.cc 95411b8726b6525fbf86208581538928 libstdc++-v3/testsuite/23_containers/forward_list/capacity/resize_size.cc ! 6d598f7660eb689ce73a4e188dc2c1dc libstdc++-v3/testsuite/23_containers/forward_list/comparable.cc 2700909a190dde56cb1c4eff1009f300 libstdc++-v3/testsuite/23_containers/forward_list/cons/1.cc 6d4b5d62991231b98629ff777450b01b libstdc++-v3/testsuite/23_containers/forward_list/cons/10.cc 23f9124fd869502a84991368366b8830 libstdc++-v3/testsuite/23_containers/forward_list/cons/11.cc *************** a633c782d23cb7199bf027aaf02137d9 libstd *** 75536,75541 **** --- 76064,76070 ---- 0a9f4a8d4a48d152ac396d182d2f994c libstdc++-v3/testsuite/23_containers/forward_list/operations/5.cc f5a51a140f4c9a945478c86ca3147e17 libstdc++-v3/testsuite/23_containers/forward_list/operations/6.cc 7ccd109239cfb70b7f412a059e33fe12 libstdc++-v3/testsuite/23_containers/forward_list/operations/7.cc + 2582009bfec0cfdae2cbb12d5e9d1425 libstdc++-v3/testsuite/23_containers/forward_list/operations/90105.cc 2e898b2be369782a1a999d0fee932cf7 libstdc++-v3/testsuite/23_containers/forward_list/operations/remove_freed.cc bf8932fdddb81e3e8c33d2d99fb46089 libstdc++-v3/testsuite/23_containers/forward_list/range_access.cc 3ec1ee6c2abea43b06c858f557533326 libstdc++-v3/testsuite/23_containers/forward_list/requirements/citerators.cc *************** f92b4d069878169afcf9df98874d1030 libstd *** 75698,75704 **** 036186d057ce9866c23e744d860209dd libstdc++-v3/testsuite/23_containers/map/18604.cc 506897298774fb990be179aae91947c1 libstdc++-v3/testsuite/23_containers/map/23781_neg.cc 8387147eb5ef7bab14191bfc2c0f56ab libstdc++-v3/testsuite/23_containers/map/48101-2_neg.cc ! a665795e7cb6ddb3bf1cd256de06979f libstdc++-v3/testsuite/23_containers/map/48101_neg.cc a73b3e9518118adfe5b247ca42883607 libstdc++-v3/testsuite/23_containers/map/56613.cc e11a2ec484ac51a97fa2bf5603a37d08 libstdc++-v3/testsuite/23_containers/map/58764.cc 3b3efc1996a1f4a53994844d9d3de11b libstdc++-v3/testsuite/23_containers/map/59872.cc --- 76227,76233 ---- 036186d057ce9866c23e744d860209dd libstdc++-v3/testsuite/23_containers/map/18604.cc 506897298774fb990be179aae91947c1 libstdc++-v3/testsuite/23_containers/map/23781_neg.cc 8387147eb5ef7bab14191bfc2c0f56ab libstdc++-v3/testsuite/23_containers/map/48101-2_neg.cc ! 3a60c587710041178e44d1c2b6ce711e libstdc++-v3/testsuite/23_containers/map/48101_neg.cc a73b3e9518118adfe5b247ca42883607 libstdc++-v3/testsuite/23_containers/map/56613.cc e11a2ec484ac51a97fa2bf5603a37d08 libstdc++-v3/testsuite/23_containers/map/58764.cc 3b3efc1996a1f4a53994844d9d3de11b libstdc++-v3/testsuite/23_containers/map/59872.cc *************** ee615db23935df14ef4ce7b6f32db785 libstd *** 75786,75792 **** db8df6cb8a43e2b410c1c9c19917b065 libstdc++-v3/testsuite/23_containers/multimap/14340.cc eed7cbf88734f2a3fe96255f205cd08b libstdc++-v3/testsuite/23_containers/multimap/23781_neg.cc c730ab539e7f19642bf9d78b5aa55f6c libstdc++-v3/testsuite/23_containers/multimap/48101-2_neg.cc ! b27117a94b81b776572dd6b27e3859be libstdc++-v3/testsuite/23_containers/multimap/48101_neg.cc bf7d5b56860f7a8c63fae7b940bf6b7d libstdc++-v3/testsuite/23_containers/multimap/58764.cc 0f48d4d54426223d8abb5f18dbaf5ad6 libstdc++-v3/testsuite/23_containers/multimap/allocator/copy.cc 2157364773c6f0a5ac884ad6a3169699 libstdc++-v3/testsuite/23_containers/multimap/allocator/copy_assign.cc --- 76315,76321 ---- db8df6cb8a43e2b410c1c9c19917b065 libstdc++-v3/testsuite/23_containers/multimap/14340.cc eed7cbf88734f2a3fe96255f205cd08b libstdc++-v3/testsuite/23_containers/multimap/23781_neg.cc c730ab539e7f19642bf9d78b5aa55f6c libstdc++-v3/testsuite/23_containers/multimap/48101-2_neg.cc ! 24afe707107737889c6fe305a8ffd498 libstdc++-v3/testsuite/23_containers/multimap/48101_neg.cc bf7d5b56860f7a8c63fae7b940bf6b7d libstdc++-v3/testsuite/23_containers/multimap/58764.cc 0f48d4d54426223d8abb5f18dbaf5ad6 libstdc++-v3/testsuite/23_containers/multimap/allocator/copy.cc 2157364773c6f0a5ac884ad6a3169699 libstdc++-v3/testsuite/23_containers/multimap/allocator/copy_assign.cc *************** ee674edc14301f6e58e49e597c45ca5e libstd *** 75856,75862 **** e5513ccf38ceb64c14b3938488527906 libstdc++-v3/testsuite/23_containers/multiset/14340.cc c4d0a1f01434484fb29dc8c57d54b4b5 libstdc++-v3/testsuite/23_containers/multiset/23781_neg.cc 92a96ebe21192cb65ad28fda0079a3de libstdc++-v3/testsuite/23_containers/multiset/48101-2_neg.cc ! 8a01ad9498fb26ee2e9049bde9ab4bd4 libstdc++-v3/testsuite/23_containers/multiset/48101_neg.cc 52a6223703555f7ebbaaffe088b06c02 libstdc++-v3/testsuite/23_containers/multiset/58764.cc a50b4d3a94496a37f6d9a3d5355fbd50 libstdc++-v3/testsuite/23_containers/multiset/allocator/copy.cc 135fab35e86168bc04da2c5aa1bdc559 libstdc++-v3/testsuite/23_containers/multiset/allocator/copy_assign.cc --- 76385,76391 ---- e5513ccf38ceb64c14b3938488527906 libstdc++-v3/testsuite/23_containers/multiset/14340.cc c4d0a1f01434484fb29dc8c57d54b4b5 libstdc++-v3/testsuite/23_containers/multiset/23781_neg.cc 92a96ebe21192cb65ad28fda0079a3de libstdc++-v3/testsuite/23_containers/multiset/48101-2_neg.cc ! f40adb48efd05255ed141234d2e0c364 libstdc++-v3/testsuite/23_containers/multiset/48101_neg.cc 52a6223703555f7ebbaaffe088b06c02 libstdc++-v3/testsuite/23_containers/multiset/58764.cc a50b4d3a94496a37f6d9a3d5355fbd50 libstdc++-v3/testsuite/23_containers/multiset/allocator/copy.cc 135fab35e86168bc04da2c5aa1bdc559 libstdc++-v3/testsuite/23_containers/multiset/allocator/copy_assign.cc *************** ee11adc3a0267b6206e764dd401cf44e libstd *** 75924,75929 **** --- 76453,76459 ---- 5b38094824dc16c8c29d878c1cf080f5 libstdc++-v3/testsuite/23_containers/priority_queue/77528.cc 0c45c759a9c047bf771f8cbdbb1cbcb1 libstdc++-v3/testsuite/23_containers/priority_queue/allocator.cc 73e87c518935b675788f61ab9e9ff6ac libstdc++-v3/testsuite/23_containers/priority_queue/deduction.cc + d935a8ceb6ee9024a81581d78574a605 libstdc++-v3/testsuite/23_containers/priority_queue/dr2537.cc 0ac0c8bf338350dc125fc27a278c6d19 libstdc++-v3/testsuite/23_containers/priority_queue/members/7161.cc 8a8cee85ba42bcb1224a5bc52d9ca649 libstdc++-v3/testsuite/23_containers/priority_queue/moveable.cc cbe8cc79f8cdefbf0cf6f883eea08581 libstdc++-v3/testsuite/23_containers/priority_queue/requirements/constructible.cc *************** a16981324a994365fdb13ecb5b8b2aad libstd *** 75945,75952 **** e19a9f60df0a3e78b5aaa08a3c9e785e libstdc++-v3/testsuite/23_containers/set/18604.cc c87096b72fdcb83b48ecc4e22ee3880d libstdc++-v3/testsuite/23_containers/set/23781_neg.cc 5fae4b2938fdb12cca104edfb3c1ea75 libstdc++-v3/testsuite/23_containers/set/48101-2_neg.cc ! 437f8fea8115d4ae5a53b38639865e69 libstdc++-v3/testsuite/23_containers/set/48101_neg.cc 980d2f616bbb1f59b943008eab1126b5 libstdc++-v3/testsuite/23_containers/set/58764.cc c4b7f2e842a50aeae436a871c5946c9a libstdc++-v3/testsuite/23_containers/set/allocator/71964.cc 91964c53f95e418b337c5cb205c397f9 libstdc++-v3/testsuite/23_containers/set/allocator/copy.cc 5c1eb028c247c235f2ac0056a1037dcc libstdc++-v3/testsuite/23_containers/set/allocator/copy_assign.cc --- 76475,76483 ---- e19a9f60df0a3e78b5aaa08a3c9e785e libstdc++-v3/testsuite/23_containers/set/18604.cc c87096b72fdcb83b48ecc4e22ee3880d libstdc++-v3/testsuite/23_containers/set/23781_neg.cc 5fae4b2938fdb12cca104edfb3c1ea75 libstdc++-v3/testsuite/23_containers/set/48101-2_neg.cc ! ef12a854aa3e4692b5b1b7e47158e6fc libstdc++-v3/testsuite/23_containers/set/48101_neg.cc 980d2f616bbb1f59b943008eab1126b5 libstdc++-v3/testsuite/23_containers/set/58764.cc + d1d49b41675997219f39e670fdfbdf0c libstdc++-v3/testsuite/23_containers/set/85965.cc c4b7f2e842a50aeae436a871c5946c9a libstdc++-v3/testsuite/23_containers/set/allocator/71964.cc 91964c53f95e418b337c5cb205c397f9 libstdc++-v3/testsuite/23_containers/set/allocator/copy.cc 5c1eb028c247c235f2ac0056a1037dcc libstdc++-v3/testsuite/23_containers/set/allocator/copy_assign.cc *************** bac724d37dbe3d26e36800b2fd3cdef8 libstd *** 76026,76032 **** cb92d4a16aaa3e0212d51daa15a727a7 libstdc++-v3/testsuite/23_containers/stack/requirements/typedefs.cc 562d59a3678df51167e112bf864bd4c1 libstdc++-v3/testsuite/23_containers/stack/requirements/uses_allocator.cc f942eb4cad9f35f823331d7981ec618d libstdc++-v3/testsuite/23_containers/unordered_map/48101-2_neg.cc ! 1b9a7057b112a8990bb4694ccefa99cf libstdc++-v3/testsuite/23_containers/unordered_map/48101_neg.cc 68113270aec5e36d6d3290b17ed7a4df libstdc++-v3/testsuite/23_containers/unordered_map/55043.cc 613adb0359a1d90a7bf1e76c2322b438 libstdc++-v3/testsuite/23_containers/unordered_map/59548.cc 8321846f7f82d87f7f939febc30a5bd2 libstdc++-v3/testsuite/23_containers/unordered_map/allocator/copy.cc --- 76557,76563 ---- cb92d4a16aaa3e0212d51daa15a727a7 libstdc++-v3/testsuite/23_containers/stack/requirements/typedefs.cc 562d59a3678df51167e112bf864bd4c1 libstdc++-v3/testsuite/23_containers/stack/requirements/uses_allocator.cc f942eb4cad9f35f823331d7981ec618d libstdc++-v3/testsuite/23_containers/unordered_map/48101-2_neg.cc ! 434b5092ff75988c804dcb50218cfd5b libstdc++-v3/testsuite/23_containers/unordered_map/48101_neg.cc 68113270aec5e36d6d3290b17ed7a4df libstdc++-v3/testsuite/23_containers/unordered_map/55043.cc 613adb0359a1d90a7bf1e76c2322b438 libstdc++-v3/testsuite/23_containers/unordered_map/59548.cc 8321846f7f82d87f7f939febc30a5bd2 libstdc++-v3/testsuite/23_containers/unordered_map/allocator/copy.cc *************** c709be529793865ca1c60a7c9977fd55 libstd *** 76118,76124 **** b0150c9747406d73fe9c5ddc43dbe2a5 libstdc++-v3/testsuite/23_containers/unordered_map/requirements/explicit_instantiation/5.cc b7d32ef1d9d91301237bbd287f96e7cb libstdc++-v3/testsuite/23_containers/unordered_map/requirements/typedefs.cc c9676d8d0aec83b8e6370c30cfe090bd libstdc++-v3/testsuite/23_containers/unordered_multimap/48101-2_neg.cc ! afde1979e2d9ab58e4fa185a5855981c libstdc++-v3/testsuite/23_containers/unordered_multimap/48101_neg.cc 136f0fd7955cfba79f608767d44c4d05 libstdc++-v3/testsuite/23_containers/unordered_multimap/55043.cc aa95467c048dc1f338ee92b94b2dd292 libstdc++-v3/testsuite/23_containers/unordered_multimap/allocator/copy.cc b35d951a5ff0eff0aba071ad9e8983ce libstdc++-v3/testsuite/23_containers/unordered_multimap/allocator/copy_assign.cc --- 76649,76655 ---- b0150c9747406d73fe9c5ddc43dbe2a5 libstdc++-v3/testsuite/23_containers/unordered_map/requirements/explicit_instantiation/5.cc b7d32ef1d9d91301237bbd287f96e7cb libstdc++-v3/testsuite/23_containers/unordered_map/requirements/typedefs.cc c9676d8d0aec83b8e6370c30cfe090bd libstdc++-v3/testsuite/23_containers/unordered_multimap/48101-2_neg.cc ! 0d7551a97cdb96bd2b680bd5d16d4963 libstdc++-v3/testsuite/23_containers/unordered_multimap/48101_neg.cc 136f0fd7955cfba79f608767d44c4d05 libstdc++-v3/testsuite/23_containers/unordered_multimap/55043.cc aa95467c048dc1f338ee92b94b2dd292 libstdc++-v3/testsuite/23_containers/unordered_multimap/allocator/copy.cc b35d951a5ff0eff0aba071ad9e8983ce libstdc++-v3/testsuite/23_containers/unordered_multimap/allocator/copy_assign.cc *************** f0eae8af5a5d1485a630d856cf073eb5 libstd *** 76202,76208 **** e405fb432073b9f6fd7c8a43642df36f libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/explicit_instantiation/5.cc d21ceeb7c7c6d758fbe0a8a09b752666 libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/typedefs.cc 9cba97bf7e1f201fef1fcfec49f3afc7 libstdc++-v3/testsuite/23_containers/unordered_multiset/48101-2_neg.cc ! f71f25dd0102a4d51f0e2ddfd970462b libstdc++-v3/testsuite/23_containers/unordered_multiset/48101_neg.cc a936407774ca2d4ef8864115572a6ed4 libstdc++-v3/testsuite/23_containers/unordered_multiset/55043.cc 89d9696694a4458608916880c4bf9a4d libstdc++-v3/testsuite/23_containers/unordered_multiset/allocator/copy.cc bcb179811b302a93a42479f28884ed39 libstdc++-v3/testsuite/23_containers/unordered_multiset/allocator/copy_assign.cc --- 76733,76739 ---- e405fb432073b9f6fd7c8a43642df36f libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/explicit_instantiation/5.cc d21ceeb7c7c6d758fbe0a8a09b752666 libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/typedefs.cc 9cba97bf7e1f201fef1fcfec49f3afc7 libstdc++-v3/testsuite/23_containers/unordered_multiset/48101-2_neg.cc ! 4ca3c7716521382a1b468debbebf76e9 libstdc++-v3/testsuite/23_containers/unordered_multiset/48101_neg.cc a936407774ca2d4ef8864115572a6ed4 libstdc++-v3/testsuite/23_containers/unordered_multiset/55043.cc 89d9696694a4458608916880c4bf9a4d libstdc++-v3/testsuite/23_containers/unordered_multiset/allocator/copy.cc bcb179811b302a93a42479f28884ed39 libstdc++-v3/testsuite/23_containers/unordered_multiset/allocator/copy_assign.cc *************** c3e5d53517e01006418201673bb9ab01 libstd *** 76278,76290 **** b8eb4b4f0823c08b2f8a51dfaeea6fbc libstdc++-v3/testsuite/23_containers/unordered_multiset/requirements/explicit_instantiation/5.cc cf6ddf2772375ece01426c09008399f7 libstdc++-v3/testsuite/23_containers/unordered_multiset/requirements/typedefs.cc 0836c1cef12ad3449a1559fe2c5aa337 libstdc++-v3/testsuite/23_containers/unordered_set/48101-2_neg.cc ! 379f7f4d91e4e80506d99360570e30db libstdc++-v3/testsuite/23_containers/unordered_set/48101_neg.cc bda8efa68f0f300361afa662b76639fc libstdc++-v3/testsuite/23_containers/unordered_set/55043.cc 4fdfce80af2da4a93c37aa3959979185 libstdc++-v3/testsuite/23_containers/unordered_set/56267-2.cc 558cf60eca0016a67d0c4a4a8754ffff libstdc++-v3/testsuite/23_containers/unordered_set/56267.cc ce66a0bc5d2a126f4c1ce8f8a6c9179e libstdc++-v3/testsuite/23_containers/unordered_set/56278.cc 983aed75d530a4aa61f55edf38cd84b5 libstdc++-v3/testsuite/23_containers/unordered_set/61143.cc 6ea841e1e55c38c21f5abcf6893f29b1 libstdc++-v3/testsuite/23_containers/unordered_set/63456.cc 2eb4678b447646da664adda6e8b3124f libstdc++-v3/testsuite/23_containers/unordered_set/allocator/copy.cc 3cf21deaba4e25d459305684a3322b8b libstdc++-v3/testsuite/23_containers/unordered_set/allocator/copy_assign.cc a698fbcee2da73af797dfa2ff7fe21b7 libstdc++-v3/testsuite/23_containers/unordered_set/allocator/ext_ptr.cc --- 76809,76822 ---- b8eb4b4f0823c08b2f8a51dfaeea6fbc libstdc++-v3/testsuite/23_containers/unordered_multiset/requirements/explicit_instantiation/5.cc cf6ddf2772375ece01426c09008399f7 libstdc++-v3/testsuite/23_containers/unordered_multiset/requirements/typedefs.cc 0836c1cef12ad3449a1559fe2c5aa337 libstdc++-v3/testsuite/23_containers/unordered_set/48101-2_neg.cc ! f86e4f24867c2cf4bd07ec3eb68eaff2 libstdc++-v3/testsuite/23_containers/unordered_set/48101_neg.cc bda8efa68f0f300361afa662b76639fc libstdc++-v3/testsuite/23_containers/unordered_set/55043.cc 4fdfce80af2da4a93c37aa3959979185 libstdc++-v3/testsuite/23_containers/unordered_set/56267-2.cc 558cf60eca0016a67d0c4a4a8754ffff libstdc++-v3/testsuite/23_containers/unordered_set/56267.cc ce66a0bc5d2a126f4c1ce8f8a6c9179e libstdc++-v3/testsuite/23_containers/unordered_set/56278.cc 983aed75d530a4aa61f55edf38cd84b5 libstdc++-v3/testsuite/23_containers/unordered_set/61143.cc 6ea841e1e55c38c21f5abcf6893f29b1 libstdc++-v3/testsuite/23_containers/unordered_set/63456.cc + 7b09154a05fe6222e87173a6dead7b2d libstdc++-v3/testsuite/23_containers/unordered_set/85965.cc 2eb4678b447646da664adda6e8b3124f libstdc++-v3/testsuite/23_containers/unordered_set/allocator/copy.cc 3cf21deaba4e25d459305684a3322b8b libstdc++-v3/testsuite/23_containers/unordered_set/allocator/copy_assign.cc a698fbcee2da73af797dfa2ff7fe21b7 libstdc++-v3/testsuite/23_containers/unordered_set/allocator/ext_ptr.cc *************** d8a41dec254cfb26f4efbb64f757f5c5 libstd *** 77175,77181 **** 150d39370e00e36ba7f7f5936eafdd60 libstdc++-v3/testsuite/26_numerics/headers/cmath/functions_global_c++17.cc 026edfa7cd685d0219435564e9a9165e libstdc++-v3/testsuite/26_numerics/headers/cmath/functions_std.cc 81bb4e8d816ca813278503256edf2a85 libstdc++-v3/testsuite/26_numerics/headers/cmath/functions_std_c++17.cc ! 07defa45c1fa99e6a1ed8adad0bf4204 libstdc++-v3/testsuite/26_numerics/headers/cmath/hypot.cc 619e1013780958f3d1a43f3d1a59c3e4 libstdc++-v3/testsuite/26_numerics/headers/cmath/macros.cc 2f28d06d7989d0f4981ab470e43ebdaa libstdc++-v3/testsuite/26_numerics/headers/cmath/overloads.cc ee5ebb05a5575f5fefbf0a8f4abe7a32 libstdc++-v3/testsuite/26_numerics/headers/cmath/overloads_c++0x_neg.cc --- 77707,77713 ---- 150d39370e00e36ba7f7f5936eafdd60 libstdc++-v3/testsuite/26_numerics/headers/cmath/functions_global_c++17.cc 026edfa7cd685d0219435564e9a9165e libstdc++-v3/testsuite/26_numerics/headers/cmath/functions_std.cc 81bb4e8d816ca813278503256edf2a85 libstdc++-v3/testsuite/26_numerics/headers/cmath/functions_std_c++17.cc ! 0d662be29400ef66512c233cdd0bccb7 libstdc++-v3/testsuite/26_numerics/headers/cmath/hypot.cc 619e1013780958f3d1a43f3d1a59c3e4 libstdc++-v3/testsuite/26_numerics/headers/cmath/macros.cc 2f28d06d7989d0f4981ab470e43ebdaa libstdc++-v3/testsuite/26_numerics/headers/cmath/overloads.cc ee5ebb05a5575f5fefbf0a8f4abe7a32 libstdc++-v3/testsuite/26_numerics/headers/cmath/overloads_c++0x_neg.cc *************** c7c484d24f2c0ed09c7450eb0367000f libstd *** 77411,77417 **** b97afcf969d15cc46cbd16b0b8dfa434 libstdc++-v3/testsuite/26_numerics/random/poisson_distribution/operators/values.cc ddee65372702dcbe42b6c92aedd5f180 libstdc++-v3/testsuite/26_numerics/random/poisson_distribution/requirements/explicit_instantiation/1.cc 2721ada822954bd385d9e450d45c9ae5 libstdc++-v3/testsuite/26_numerics/random/poisson_distribution/requirements/typedefs.cc ! 81d0a65cc33d66de1aef613713ef5a6e libstdc++-v3/testsuite/26_numerics/random/pr60037-neg.cc 79834f7bfd50512b2dcc68c12f572400 libstdc++-v3/testsuite/26_numerics/random/random_device/cons/default.cc ac71ee04e1231fa1890d5103c2c84adc libstdc++-v3/testsuite/26_numerics/random/random_device/cons/token.cc b926245686cadb267ebd5ea61da1254b libstdc++-v3/testsuite/26_numerics/random/random_device/requirements/typedefs.cc --- 77943,77949 ---- b97afcf969d15cc46cbd16b0b8dfa434 libstdc++-v3/testsuite/26_numerics/random/poisson_distribution/operators/values.cc ddee65372702dcbe42b6c92aedd5f180 libstdc++-v3/testsuite/26_numerics/random/poisson_distribution/requirements/explicit_instantiation/1.cc 2721ada822954bd385d9e450d45c9ae5 libstdc++-v3/testsuite/26_numerics/random/poisson_distribution/requirements/typedefs.cc ! 95674fbf58ab2242e6f8706a18764965 libstdc++-v3/testsuite/26_numerics/random/pr60037-neg.cc 79834f7bfd50512b2dcc68c12f572400 libstdc++-v3/testsuite/26_numerics/random/random_device/cons/default.cc ac71ee04e1231fa1890d5103c2c84adc libstdc++-v3/testsuite/26_numerics/random/random_device/cons/token.cc b926245686cadb267ebd5ea61da1254b libstdc++-v3/testsuite/26_numerics/random/random_device/requirements/typedefs.cc *************** f2bf21b06f33801dc1feecb4afeaa64c libstd *** 78257,78266 **** 7b041aa20fe10f4195f6274e6fce7cfd libstdc++-v3/testsuite/27_io/basic_stringstream/str/wchar_t/4.cc d607b0a2b67456cddf26dbf3f3d8c134 libstdc++-v3/testsuite/27_io/filesystem/directory_entry/86597.cc 3829cc13e1fdd0bab7798e0299aa207d libstdc++-v3/testsuite/27_io/filesystem/file_status/1.cc 66a3cf9ca186f16807d3251cae4008f9 libstdc++-v3/testsuite/27_io/filesystem/iterators/directory_iterator.cc 21f3a9ca0bffba3d2a34d06dbb0ab7e8 libstdc++-v3/testsuite/27_io/filesystem/iterators/pop.cc 23343661d584d190aa1dfc7902635d25 libstdc++-v3/testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc ! f37e137761fac5d31bd363b1358f3598 libstdc++-v3/testsuite/27_io/filesystem/operations/absolute.cc 3c9c02d4ede1868be1f84f9947361acf libstdc++-v3/testsuite/27_io/filesystem/operations/canonical.cc a887b16caa3fadd0149da529feb5ef3b libstdc++-v3/testsuite/27_io/filesystem/operations/copy.cc a6fc48e370c97136b93b4d60da06cba7 libstdc++-v3/testsuite/27_io/filesystem/operations/copy_file.cc --- 78789,78799 ---- 7b041aa20fe10f4195f6274e6fce7cfd libstdc++-v3/testsuite/27_io/basic_stringstream/str/wchar_t/4.cc d607b0a2b67456cddf26dbf3f3d8c134 libstdc++-v3/testsuite/27_io/filesystem/directory_entry/86597.cc 3829cc13e1fdd0bab7798e0299aa207d libstdc++-v3/testsuite/27_io/filesystem/file_status/1.cc + 2b20b2d15c2bb38db55a36bad39df3be libstdc++-v3/testsuite/27_io/filesystem/iterators/caching.cc 66a3cf9ca186f16807d3251cae4008f9 libstdc++-v3/testsuite/27_io/filesystem/iterators/directory_iterator.cc 21f3a9ca0bffba3d2a34d06dbb0ab7e8 libstdc++-v3/testsuite/27_io/filesystem/iterators/pop.cc 23343661d584d190aa1dfc7902635d25 libstdc++-v3/testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc ! 49cf33d8027438b7113188acd60aed95 libstdc++-v3/testsuite/27_io/filesystem/operations/absolute.cc 3c9c02d4ede1868be1f84f9947361acf libstdc++-v3/testsuite/27_io/filesystem/operations/canonical.cc a887b16caa3fadd0149da529feb5ef3b libstdc++-v3/testsuite/27_io/filesystem/operations/copy.cc a6fc48e370c97136b93b4d60da06cba7 libstdc++-v3/testsuite/27_io/filesystem/operations/copy_file.cc *************** d947178516657a8cb233a9a19ae24516 libstd *** 78278,78284 **** 33550d2e57ebd0cbe61b174f0405ff74 libstdc++-v3/testsuite/27_io/filesystem/operations/read_symlink.cc 4abcf07bddc541d6928bc3a94eca4749 libstdc++-v3/testsuite/27_io/filesystem/operations/relative.cc fcda569eb73f03035565926297f637b0 libstdc++-v3/testsuite/27_io/filesystem/operations/remove.cc ! e3a3027d3dd93e897d2770568820cbda libstdc++-v3/testsuite/27_io/filesystem/operations/remove_all.cc 932f80a010ec0d99e74f616705221fb5 libstdc++-v3/testsuite/27_io/filesystem/operations/space.cc bbd863acf30fa570bf4e9aad439457f7 libstdc++-v3/testsuite/27_io/filesystem/operations/status.cc 48535a368eb67f4dc3105b33db2ab8d3 libstdc++-v3/testsuite/27_io/filesystem/operations/symlink_status.cc --- 78811,78817 ---- 33550d2e57ebd0cbe61b174f0405ff74 libstdc++-v3/testsuite/27_io/filesystem/operations/read_symlink.cc 4abcf07bddc541d6928bc3a94eca4749 libstdc++-v3/testsuite/27_io/filesystem/operations/relative.cc fcda569eb73f03035565926297f637b0 libstdc++-v3/testsuite/27_io/filesystem/operations/remove.cc ! 645e266d3361d4e7167565d3a779a900 libstdc++-v3/testsuite/27_io/filesystem/operations/remove_all.cc 932f80a010ec0d99e74f616705221fb5 libstdc++-v3/testsuite/27_io/filesystem/operations/space.cc bbd863acf30fa570bf4e9aad439457f7 libstdc++-v3/testsuite/27_io/filesystem/operations/status.cc 48535a368eb67f4dc3105b33db2ab8d3 libstdc++-v3/testsuite/27_io/filesystem/operations/symlink_status.cc *************** bbd863acf30fa570bf4e9aad439457f7 libstd *** 78287,78299 **** 2695d733396cbaa1654ccdd60d27fb51 libstdc++-v3/testsuite/27_io/filesystem/path/append/path.cc 66d1b417c6c469331f02c1bf8d9838c6 libstdc++-v3/testsuite/27_io/filesystem/path/append/source.cc 745664709078f13870ab58bc6e42da6b libstdc++-v3/testsuite/27_io/filesystem/path/assign/assign.cc ! a844d427bb1d9cd556b0e28d7239b2ce libstdc++-v3/testsuite/27_io/filesystem/path/assign/copy.cc 27a7a60c1f1480f039e979af768517e4 libstdc++-v3/testsuite/27_io/filesystem/path/compare/compare.cc f128e4f619cc23592ed68faca3925b80 libstdc++-v3/testsuite/27_io/filesystem/path/compare/path.cc d7ebd8759252cbcd8edecdecc811e053 libstdc++-v3/testsuite/27_io/filesystem/path/compare/strings.cc 3a4a7bdb581ab38d10bf13aaf9df6a91 libstdc++-v3/testsuite/27_io/filesystem/path/concat/path.cc e4933d72dada5335be05afa8e82b7cb0 libstdc++-v3/testsuite/27_io/filesystem/path/concat/strings.cc ! 7d86eee52072b8a1407d4be1828049e8 libstdc++-v3/testsuite/27_io/filesystem/path/construct/80762.cc dfb5784845c7b0f246c4ba7cc07133fb libstdc++-v3/testsuite/27_io/filesystem/path/construct/copy.cc 6ec359becf6ac1a030cc1495200857c5 libstdc++-v3/testsuite/27_io/filesystem/path/construct/default.cc 001093139d844b28a47457ab91a0c22c libstdc++-v3/testsuite/27_io/filesystem/path/construct/format.cc --- 78820,78833 ---- 2695d733396cbaa1654ccdd60d27fb51 libstdc++-v3/testsuite/27_io/filesystem/path/append/path.cc 66d1b417c6c469331f02c1bf8d9838c6 libstdc++-v3/testsuite/27_io/filesystem/path/append/source.cc 745664709078f13870ab58bc6e42da6b libstdc++-v3/testsuite/27_io/filesystem/path/assign/assign.cc ! 79bcd0109f5e3b903d3c5f55e2cc0b77 libstdc++-v3/testsuite/27_io/filesystem/path/assign/copy.cc 27a7a60c1f1480f039e979af768517e4 libstdc++-v3/testsuite/27_io/filesystem/path/compare/compare.cc f128e4f619cc23592ed68faca3925b80 libstdc++-v3/testsuite/27_io/filesystem/path/compare/path.cc d7ebd8759252cbcd8edecdecc811e053 libstdc++-v3/testsuite/27_io/filesystem/path/compare/strings.cc 3a4a7bdb581ab38d10bf13aaf9df6a91 libstdc++-v3/testsuite/27_io/filesystem/path/concat/path.cc e4933d72dada5335be05afa8e82b7cb0 libstdc++-v3/testsuite/27_io/filesystem/path/concat/strings.cc ! dbd5a6225f9630d1e0bda039598c0398 libstdc++-v3/testsuite/27_io/filesystem/path/construct/80762.cc ! 0256393cf8a9dcbf5417817134f6b861 libstdc++-v3/testsuite/27_io/filesystem/path/construct/90634.cc dfb5784845c7b0f246c4ba7cc07133fb libstdc++-v3/testsuite/27_io/filesystem/path/construct/copy.cc 6ec359becf6ac1a030cc1495200857c5 libstdc++-v3/testsuite/27_io/filesystem/path/construct/default.cc 001093139d844b28a47457ab91a0c22c libstdc++-v3/testsuite/27_io/filesystem/path/construct/format.cc *************** db777e2df8ce6a2dfb3873d51e4b72a3 libstd *** 78306,78312 **** 72b70d86dd4d26403f432ec29329cfce libstdc++-v3/testsuite/27_io/filesystem/path/decompose/relative_path.cc 47b63736332a6b1e5d2571c3468bdf28 libstdc++-v3/testsuite/27_io/filesystem/path/decompose/root_directory.cc 799ea9bb966fa20a2d5fcc2b0ecddf95 libstdc++-v3/testsuite/27_io/filesystem/path/decompose/root_name.cc ! 0c85b5809ea0f8d19ec82bc17a3022b7 libstdc++-v3/testsuite/27_io/filesystem/path/decompose/root_path.cc a0558516315a769544711b53f2782dd3 libstdc++-v3/testsuite/27_io/filesystem/path/decompose/stem.cc 6b80be7b634437b3e1d38ab536a6d986 libstdc++-v3/testsuite/27_io/filesystem/path/generation/normal.cc 7a8c48769b0dc0f6587511096ac86139 libstdc++-v3/testsuite/27_io/filesystem/path/generation/normal2.cc --- 78840,78846 ---- 72b70d86dd4d26403f432ec29329cfce libstdc++-v3/testsuite/27_io/filesystem/path/decompose/relative_path.cc 47b63736332a6b1e5d2571c3468bdf28 libstdc++-v3/testsuite/27_io/filesystem/path/decompose/root_directory.cc 799ea9bb966fa20a2d5fcc2b0ecddf95 libstdc++-v3/testsuite/27_io/filesystem/path/decompose/root_name.cc ! 41f8721c61771ad478b2ccdca7090db9 libstdc++-v3/testsuite/27_io/filesystem/path/decompose/root_path.cc a0558516315a769544711b53f2782dd3 libstdc++-v3/testsuite/27_io/filesystem/path/decompose/stem.cc 6b80be7b634437b3e1d38ab536a6d986 libstdc++-v3/testsuite/27_io/filesystem/path/generation/normal.cc 7a8c48769b0dc0f6587511096ac86139 libstdc++-v3/testsuite/27_io/filesystem/path/generation/normal2.cc *************** ff9fdf92c14e503e245052c1ac1f3fc3 libstd *** 79033,79039 **** 8065039a8ecd272e507f29466c512206 libstdc++-v3/testsuite/30_threads/unique_lock/requirements/explicit_instantiation.cc d8f8888f1e07f092d3e7268f5c594d34 libstdc++-v3/testsuite/30_threads/unique_lock/requirements/typedefs.cc 042e568a03bf149f527a8ad56ab46553 libstdc++-v3/testsuite/Makefile.am ! e01204b5f6bd14329bf69a546ce82190 libstdc++-v3/testsuite/Makefile.in 376a77df1037e10a14ab4a3e79a301f6 libstdc++-v3/testsuite/abi/30586.cc 3ddbd6e8e0d483ee800f6c1127902325 libstdc++-v3/testsuite/abi/cxx_runtime_only_linkage.cc 338e6ddcbb7389dedebbd966c4d728e9 libstdc++-v3/testsuite/abi/demangle/abi_examples/01.cc --- 79567,79573 ---- 8065039a8ecd272e507f29466c512206 libstdc++-v3/testsuite/30_threads/unique_lock/requirements/explicit_instantiation.cc d8f8888f1e07f092d3e7268f5c594d34 libstdc++-v3/testsuite/30_threads/unique_lock/requirements/typedefs.cc 042e568a03bf149f527a8ad56ab46553 libstdc++-v3/testsuite/Makefile.am ! f2bd08165395f0ca807d5be049f37370 libstdc++-v3/testsuite/Makefile.in 376a77df1037e10a14ab4a3e79a301f6 libstdc++-v3/testsuite/abi/30586.cc 3ddbd6e8e0d483ee800f6c1127902325 libstdc++-v3/testsuite/abi/cxx_runtime_only_linkage.cc 338e6ddcbb7389dedebbd966c4d728e9 libstdc++-v3/testsuite/abi/demangle/abi_examples/01.cc *************** fbc728ca502275c1d2f1ffec147ad1e5 libstd *** 79210,79217 **** c590f9cd4ee7f44cda4c4c611dddc806 libstdc++-v3/testsuite/experimental/any/cons/2.cc da1a32ef4c9d7cf96a9873917326aca6 libstdc++-v3/testsuite/experimental/any/cons/aligned.cc 1cea0c2eac04cc972f5869df06fc9770 libstdc++-v3/testsuite/experimental/any/cons/nontrivial.cc ! 942cec615567a000ecc78539890aea4f libstdc++-v3/testsuite/experimental/any/misc/any_cast.cc ! 687e6d8685c250d317bcbfc09ed11a50 libstdc++-v3/testsuite/experimental/any/misc/any_cast_neg.cc 0cef74745bb3144cfc5ca296528dc1f9 libstdc++-v3/testsuite/experimental/any/misc/any_cast_no_rtti.cc 36e4ebc8edbc974b95f3c0311f29315f libstdc++-v3/testsuite/experimental/any/misc/swap.cc 343d811bf0253cd2ae2870bb82c9a54e libstdc++-v3/testsuite/experimental/any/modifiers/1.cc --- 79744,79751 ---- c590f9cd4ee7f44cda4c4c611dddc806 libstdc++-v3/testsuite/experimental/any/cons/2.cc da1a32ef4c9d7cf96a9873917326aca6 libstdc++-v3/testsuite/experimental/any/cons/aligned.cc 1cea0c2eac04cc972f5869df06fc9770 libstdc++-v3/testsuite/experimental/any/cons/nontrivial.cc ! 825c5230ba87e5b9e81b09a10e6f2fce libstdc++-v3/testsuite/experimental/any/misc/any_cast.cc ! 28035a20277aa421cba1ecb82e476614 libstdc++-v3/testsuite/experimental/any/misc/any_cast_neg.cc 0cef74745bb3144cfc5ca296528dc1f9 libstdc++-v3/testsuite/experimental/any/misc/any_cast_no_rtti.cc 36e4ebc8edbc974b95f3c0311f29315f libstdc++-v3/testsuite/experimental/any/misc/swap.cc 343d811bf0253cd2ae2870bb82c9a54e libstdc++-v3/testsuite/experimental/any/modifiers/1.cc *************** b75de3c62da47e80e881cad01524b683 libstd *** 79243,79249 **** 519b1f2c820d88bd00d29c92d5ffc621 libstdc++-v3/testsuite/experimental/filesystem/operations/permissions.cc 036a82a52bd5fd7636e2fd113168542d libstdc++-v3/testsuite/experimental/filesystem/operations/read_symlink.cc de6590a0c818a1a299514ab5e4c47712 libstdc++-v3/testsuite/experimental/filesystem/operations/remove.cc ! 350a4f286d648ae39bd1547bd94d32c5 libstdc++-v3/testsuite/experimental/filesystem/operations/remove_all.cc 1ecb7facd18a43c15be322da8c64e658 libstdc++-v3/testsuite/experimental/filesystem/operations/space.cc 0ae6cf05a1907c284964caacba61f251 libstdc++-v3/testsuite/experimental/filesystem/operations/status.cc 23e705f6a6166b60be1ff9d7a46c032c libstdc++-v3/testsuite/experimental/filesystem/operations/temp_directory_path.cc --- 79777,79783 ---- 519b1f2c820d88bd00d29c92d5ffc621 libstdc++-v3/testsuite/experimental/filesystem/operations/permissions.cc 036a82a52bd5fd7636e2fd113168542d libstdc++-v3/testsuite/experimental/filesystem/operations/read_symlink.cc de6590a0c818a1a299514ab5e4c47712 libstdc++-v3/testsuite/experimental/filesystem/operations/remove.cc ! a3323a839f2202661c8c430aaa7167ec libstdc++-v3/testsuite/experimental/filesystem/operations/remove_all.cc 1ecb7facd18a43c15be322da8c64e658 libstdc++-v3/testsuite/experimental/filesystem/operations/space.cc 0ae6cf05a1907c284964caacba61f251 libstdc++-v3/testsuite/experimental/filesystem/operations/status.cc 23e705f6a6166b60be1ff9d7a46c032c libstdc++-v3/testsuite/experimental/filesystem/operations/temp_directory_path.cc *************** ec5104c53cae8714ade74fd2e5fa82c7 libstd *** 79255,79261 **** 49e3dda894fdfa1da5931b2b62d11146 libstdc++-v3/testsuite/experimental/filesystem/path/compare/strings.cc e3f148f8535035b62c1639c8b5f195d2 libstdc++-v3/testsuite/experimental/filesystem/path/concat/path.cc 9555406ac3519179fd10ed320229d613 libstdc++-v3/testsuite/experimental/filesystem/path/concat/strings.cc ! 34086f642cd5072c1599396b2ac2319e libstdc++-v3/testsuite/experimental/filesystem/path/construct/80762.cc e28b874a136da3935a91b573c0035b9d libstdc++-v3/testsuite/experimental/filesystem/path/construct/copy.cc 6b68d43f6c649f3f42a9408b0cf25b48 libstdc++-v3/testsuite/experimental/filesystem/path/construct/default.cc 08b28fe5e34d71b699d90e1f76a77718 libstdc++-v3/testsuite/experimental/filesystem/path/construct/locale.cc --- 79789,79796 ---- 49e3dda894fdfa1da5931b2b62d11146 libstdc++-v3/testsuite/experimental/filesystem/path/compare/strings.cc e3f148f8535035b62c1639c8b5f195d2 libstdc++-v3/testsuite/experimental/filesystem/path/concat/path.cc 9555406ac3519179fd10ed320229d613 libstdc++-v3/testsuite/experimental/filesystem/path/concat/strings.cc ! 72e8574cca4672a711a4f8af16b9cfd0 libstdc++-v3/testsuite/experimental/filesystem/path/construct/80762.cc ! b799a2264a508cb17bf5e42d58f4aa6a libstdc++-v3/testsuite/experimental/filesystem/path/construct/90634.cc e28b874a136da3935a91b573c0035b9d libstdc++-v3/testsuite/experimental/filesystem/path/construct/copy.cc 6b68d43f6c649f3f42a9408b0cf25b48 libstdc++-v3/testsuite/experimental/filesystem/path/construct/default.cc 08b28fe5e34d71b699d90e1f76a77718 libstdc++-v3/testsuite/experimental/filesystem/path/construct/locale.cc *************** dee2e931e406bed949129ff75a17d49a libstd *** 79336,79341 **** --- 79871,79877 ---- 53d343d6ffb01123f090bc970ed1488c libstdc++-v3/testsuite/experimental/memory_resource/70966.cc 3564c40a83ece37ec52b71a08c5ae5b2 libstdc++-v3/testsuite/experimental/memory_resource/null_memory_resource.cc 70a02fc665a26f4c82c3cb211fd64842 libstdc++-v3/testsuite/experimental/memory_resource/resource_adaptor.cc + dc08d014bb78b01ed1539a4b46e05b48 libstdc++-v3/testsuite/experimental/names.cc 18d50bdf4289aeb0bf6a31bc4490409a libstdc++-v3/testsuite/experimental/numeric/77801.cc 32554723afd983b142c1b230427e232a libstdc++-v3/testsuite/experimental/numeric/gcd.cc 83ce73e66b7920c0ffc5f8984e56d028 libstdc++-v3/testsuite/experimental/numeric/lcm.cc *************** fbed2394b1ff5feb95132667e69c5998 libstd *** 80659,80665 **** --- 81195,81206 ---- ef001f0d957ce337d55af2fb8a95b6dd libstdc++-v3/testsuite/tr2/direct_bases/requirements/explicit_instantiation.cc f6e437553963652cdd06b26dee368dba libstdc++-v3/testsuite/tr2/direct_bases/requirements/typedefs.cc 5480d74b1b769e1258bebfe9bc88dd27 libstdc++-v3/testsuite/tr2/direct_bases/value.cc + f627b801f76df3b9b3617855769dd497 libstdc++-v3/testsuite/tr2/dynamic_bitset/cmp.cc + 55b17815da3734a92aabf30752f4c282 libstdc++-v3/testsuite/tr2/dynamic_bitset/cons.cc + 6671d3e9585abbb1e56141510a0fc388 libstdc++-v3/testsuite/tr2/dynamic_bitset/copy.cc + 16179fe5ad0342cfee85f57bae428e2e libstdc++-v3/testsuite/tr2/dynamic_bitset/move.cc 1e78a4d58edbea13708990395508bd0f libstdc++-v3/testsuite/tr2/dynamic_bitset/pr58729.cc + f6df263b2b53ef17d5d912257af81895 libstdc++-v3/testsuite/tr2/dynamic_bitset/pr92059.cc c57a213c84c3a84071e015f5c914d241 libstdc++-v3/testsuite/tr2/headers/all.cc a307e5594e85b3ba1df993337c5dfc0b libstdc++-v3/testsuite/tr2/headers/using_namespace_std_tr2.cc d835e5788ab73e1877cc520b447851fb libstdc++-v3/testsuite/util/common_type/assoc/common_type.hpp *************** e61577889746cc25cd6def82c20b20b5 libstd *** 80768,80774 **** b9786ae67fc6bc45bd0881cffd4d100d libstdc++-v3/testsuite/util/testsuite_fs.h 99f5f9498e49119361a7d0e234ed529b libstdc++-v3/testsuite/util/testsuite_greedy_ops.h 81a074e7f132053455bf40e9ea4fa373 libstdc++-v3/testsuite/util/testsuite_hooks.cc ! 3747a35ea3b98bc812853fe47a05370e libstdc++-v3/testsuite/util/testsuite_hooks.h 9551cf948cace73120327b858e4eec55 libstdc++-v3/testsuite/util/testsuite_io.h 8cba7b6b963469cfc75e96f134110bf8 libstdc++-v3/testsuite/util/testsuite_iterators.h 048aa2b91996cea75f31425b5b3cf318 libstdc++-v3/testsuite/util/testsuite_new_operators.h --- 81309,81315 ---- b9786ae67fc6bc45bd0881cffd4d100d libstdc++-v3/testsuite/util/testsuite_fs.h 99f5f9498e49119361a7d0e234ed529b libstdc++-v3/testsuite/util/testsuite_greedy_ops.h 81a074e7f132053455bf40e9ea4fa373 libstdc++-v3/testsuite/util/testsuite_hooks.cc ! 6b51897d5d33338bf0c7d307507c726d libstdc++-v3/testsuite/util/testsuite_hooks.h 9551cf948cace73120327b858e4eec55 libstdc++-v3/testsuite/util/testsuite_io.h 8cba7b6b963469cfc75e96f134110bf8 libstdc++-v3/testsuite/util/testsuite_iterators.h 048aa2b91996cea75f31425b5b3cf318 libstdc++-v3/testsuite/util/testsuite_new_operators.h *************** e9aa2dcc7750d26597f66e5ebdc64403 libstd *** 80779,80788 **** 9e77ccd2ace36f958b3057d8059f137f libstdc++-v3/testsuite/util/testsuite_rvalref.h 592cce736d6f4f682292de6b8e296334 libstdc++-v3/testsuite/util/testsuite_shared.cc 7a6e2897f57f1d9bb58553b5043894dd libstdc++-v3/testsuite/util/testsuite_tr1.h ! c273496d495fdc36798b672086a5b73e libstdc++-v3/testsuite/util/thread/all.h b950d655469c477755252b1e18009596 libtool-ldflags 7a2b83d2d625a4022b9213ceb75f5897 libtool.m4 ! bb50880c17d09a9c3ace98abf4d803d3 libvtv/ChangeLog 62df3278e2c3686ef285c68fe1c5270e libvtv/Makefile.am c5ab21da757717eb9e3848285510342f libvtv/Makefile.in 3b765c4f4a0a0f606db1472bce2b8d29 libvtv/acinclude.m4 --- 81320,81329 ---- 9e77ccd2ace36f958b3057d8059f137f libstdc++-v3/testsuite/util/testsuite_rvalref.h 592cce736d6f4f682292de6b8e296334 libstdc++-v3/testsuite/util/testsuite_shared.cc 7a6e2897f57f1d9bb58553b5043894dd libstdc++-v3/testsuite/util/testsuite_tr1.h ! 952e0c703344bcec6fb9eba05d87366b libstdc++-v3/testsuite/util/thread/all.h b950d655469c477755252b1e18009596 libtool-ldflags 7a2b83d2d625a4022b9213ceb75f5897 libtool.m4 ! 657677b49f06f2e87a60c6ab78ad6dff libvtv/ChangeLog 62df3278e2c3686ef285c68fe1c5270e libvtv/Makefile.am c5ab21da757717eb9e3848285510342f libvtv/Makefile.in 3b765c4f4a0a0f606db1472bce2b8d29 libvtv/acinclude.m4 *************** a333fb4ae821fecf21da4dad5cb360da libvtv *** 80865,80871 **** 6fc06e8da97cd20ded65bfed889dd9aa libvtv/vtv_utils.h 247597a3fcc5b5aa8bd923351c59d853 ltgcc.m4 4e65f2f6a05f5eca82ba79c6363aa3db ltmain.sh ! 06bd271361ca108350b35499de045625 lto-plugin/ChangeLog 1d51b0f01f4db0f88d302ab0d691514e lto-plugin/Makefile.am 3bd8be597a6d5934a69399816aec878a lto-plugin/Makefile.in b8a21afb1f79664ea28d8892b4907746 lto-plugin/aclocal.m4 --- 81406,81412 ---- 6fc06e8da97cd20ded65bfed889dd9aa libvtv/vtv_utils.h 247597a3fcc5b5aa8bd923351c59d853 ltgcc.m4 4e65f2f6a05f5eca82ba79c6363aa3db ltmain.sh ! e310d10f4c4f15973763e6a9a29eb407 lto-plugin/ChangeLog 1d51b0f01f4db0f88d302ab0d691514e lto-plugin/Makefile.am 3bd8be597a6d5934a69399816aec878a lto-plugin/Makefile.in b8a21afb1f79664ea28d8892b4907746 lto-plugin/aclocal.m4 *************** dee72a6a60e99528b0d17bf3ff9a1e15 ltopti *** 80878,80888 **** bc2f6032c98896249eadb56177c7d357 ltsugar.m4 c30cd33c496505f13d9fbdb6970c7c33 ltversion.m4 293853a13b7e218e3a4342cf85fbbf25 lt~obsolete.m4 ! 821537afa4ba7f20fad799db2838be31 maintainer-scripts/ChangeLog 33c7bc2d2c55956dfac85a05d8a80eff maintainer-scripts/README e70ffb6559f8817db41ee1e69bc60287 maintainer-scripts/branch_changer.py f954f8d3f5f899a163a5e92282c95602 maintainer-scripts/crontab ! c000625815118b3a8b9893a9dc527f42 maintainer-scripts/gcc_release 4b1217d62242596f1d1b439c25dce68f maintainer-scripts/generate_libstdcxx_web_docs 33d97164a8610c7abf67eff7d28f47ff maintainer-scripts/maintainer-addresses 8aa3b579aba0b56914756f540ff4406e maintainer-scripts/update_version_svn --- 81419,81429 ---- bc2f6032c98896249eadb56177c7d357 ltsugar.m4 c30cd33c496505f13d9fbdb6970c7c33 ltversion.m4 293853a13b7e218e3a4342cf85fbbf25 lt~obsolete.m4 ! 780e1ae63b669f887f5987e338653918 maintainer-scripts/ChangeLog 33c7bc2d2c55956dfac85a05d8a80eff maintainer-scripts/README e70ffb6559f8817db41ee1e69bc60287 maintainer-scripts/branch_changer.py f954f8d3f5f899a163a5e92282c95602 maintainer-scripts/crontab ! e7d62fdf7e9b9c42001cbac1e18789a5 maintainer-scripts/gcc_release 4b1217d62242596f1d1b439c25dce68f maintainer-scripts/generate_libstdcxx_web_docs 33d97164a8610c7abf67eff7d28f47ff maintainer-scripts/maintainer-addresses 8aa3b579aba0b56914756f540ff4406e maintainer-scripts/update_version_svn *************** fbe2467afef81c41c166173adeb0ee20 mkdep *** 80895,80901 **** cf2baa0854f564a7785307e79f155efc symlink-tree cb06c1be6a41d68b0a65e0c1a91752bc ylwrap 03bf3ba8089f4bf475ef4035cf316a47 zlib/CMakeLists.txt ! 496bc0bbcf797324dc2b4c2c3de1d54a zlib/ChangeLog 2effeeacadeab8edd2c3c4ae856f019d zlib/ChangeLog.gcj 0e9a37be8e3b85cc0ccf60504064c297 zlib/ChangeLog.jit b7a1991f01daea3efe108a215c5514a5 zlib/FAQ --- 81436,81442 ---- cf2baa0854f564a7785307e79f155efc symlink-tree cb06c1be6a41d68b0a65e0c1a91752bc ylwrap 03bf3ba8089f4bf475ef4035cf316a47 zlib/CMakeLists.txt ! 9722ea3a13b0df32679a7cefea7abaff zlib/ChangeLog 2effeeacadeab8edd2c3c4ae856f019d zlib/ChangeLog.gcj 0e9a37be8e3b85cc0ccf60504064c297 zlib/ChangeLog.jit b7a1991f01daea3efe108a215c5514a5 zlib/FAQ diff -Nrcpad gcc-8.3.0/NEWS gcc-8.4.0/NEWS *** gcc-8.3.0/NEWS Fri Feb 22 14:22:42 2019 --- gcc-8.4.0/NEWS Wed Mar 4 08:32:41 2020 *************** see ONEWS. *** 8,31 **** http://gcc.gnu.org/gcc-8/index.html GCC 8 Release Series ! Feb 22, 2019 The [1]GNU project and the GCC developers are pleased to announce the ! release of GCC 8.3. This release is a bug-fix release, containing fixes for regressions in ! GCC 8.2 relative to previous releases of GCC. Release History GCC 8.3 ! Feb 22, 2019 ([2]changes, [3]documentation) GCC 8.2 ! Jul 14, 2018 ([4]changes, [5]documentation) GCC 8.1 ! May 2, 2018 ([6]changes, [7]documentation) References and Acknowledgements --- 8,34 ---- 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 *************** References and Acknowledgements *** 33,88 **** 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 SVN server. 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 ! 2019-02-22[20]. References 1. http://www.gnu.org/ 2. http://gcc.gnu.org/gcc-8/changes.html ! 3. http://gcc.gnu.org/onlinedocs/8.3.0/ 4. http://gcc.gnu.org/gcc-8/changes.html ! 5. http://gcc.gnu.org/onlinedocs/8.2.0/ 6. http://gcc.gnu.org/gcc-8/changes.html ! 7. http://gcc.gnu.org/onlinedocs/8.1.0/ ! 8. http://gcc.gnu.org/gcc-8/buildstat.html ! 9. http://gcc.gnu.org/onlinedocs/gcc-8.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/svn.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-8/changes.html GCC 8 Release Series --- 36,94 ---- 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 *************** Caveats *** 105,111 **** std::make_exception_ptr should be used instead. * Support for the powerpc*-*-*spe* target ports which have been recently unmaintained and untested in GCC has been declared ! obsolete in GCC 8 as announced [3]here. Unless there is activity to revive them, the next release of GCC will have their sources permanently removed. --- 111,117 ---- std::make_exception_ptr should be used instead. * Support for the powerpc*-*-*spe* target ports which have been recently unmaintained and untested in GCC has been declared ! obsolete in GCC 8 as [3]announced. Unless there is activity to revive them, the next release of GCC will have their sources permanently removed. *************** ctor >()' from 'map + + Backport: + 2018-05-01 Jim Wilson + + * gcc_update: Check for .git as a file. + + 2019-08-16 Uros Bizjak + + * test_summary: Do not escape "=". + 2019-02-22 Release Manager * GCC 8.3.0 released. diff -Nrcpad gcc-8.3.0/contrib/gcc_update gcc-8.4.0/contrib/gcc_update *** gcc-8.3.0/contrib/gcc_update Tue Nov 28 10:35:37 2017 --- gcc-8.4.0/contrib/gcc_update Wed Mar 4 08:29:59 2020 *************** p *** 286,292 **** esac # Check for known version control systems. ! if [ -d .git ]; then GCC_GIT=${GCC_GIT-${GIT-git}} vcs_type="git" elif [ -d .hg ]; then --- 286,292 ---- esac # Check for known version control systems. ! if [ -d .git ] || [ -f .git ]; then GCC_GIT=${GCC_GIT-${GIT-git}} vcs_type="git" elif [ -d .hg ]; then diff -Nrcpad gcc-8.3.0/contrib/header-tools/ChangeLog gcc-8.4.0/contrib/header-tools/ChangeLog *** gcc-8.3.0/contrib/header-tools/ChangeLog Fri Feb 22 14:20:37 2019 --- gcc-8.4.0/contrib/header-tools/ChangeLog Wed Mar 4 08:30:30 2020 *************** *** 1,3 **** --- 1,7 ---- + 2020-03-04 Release Manager + + * GCC 8.4.0 released. + 2019-02-22 Release Manager * GCC 8.3.0 released. diff -Nrcpad gcc-8.3.0/contrib/reghunt/ChangeLog gcc-8.4.0/contrib/reghunt/ChangeLog *** gcc-8.3.0/contrib/reghunt/ChangeLog Fri Feb 22 14:20:37 2019 --- gcc-8.4.0/contrib/reghunt/ChangeLog Wed Mar 4 08:30:30 2020 *************** *** 1,3 **** --- 1,7 ---- + 2020-03-04 Release Manager + + * GCC 8.4.0 released. + 2019-02-22 Release Manager * GCC 8.3.0 released. diff -Nrcpad gcc-8.3.0/contrib/regression/ChangeLog gcc-8.4.0/contrib/regression/ChangeLog *** gcc-8.3.0/contrib/regression/ChangeLog Fri Feb 22 14:20:37 2019 --- gcc-8.4.0/contrib/regression/ChangeLog Wed Mar 4 08:30:30 2020 *************** *** 1,3 **** --- 1,7 ---- + 2020-03-04 Release Manager + + * GCC 8.4.0 released. + 2019-02-22 Release Manager * GCC 8.3.0 released. diff -Nrcpad gcc-8.3.0/contrib/test_summary gcc-8.4.0/contrib/test_summary *** gcc-8.3.0/contrib/test_summary Wed Mar 21 08:47:12 2018 --- gcc-8.4.0/contrib/test_summary Wed Mar 4 08:29:59 2020 *************** NR == 1 { *** 127,133 **** if (lang == "") lang = " "$2" "; else lang = " "; } $2 == "version" { save = $0; $1 = ""; $2 = ""; version = $0; gsub(/^ */, "", version); gsub(/\r$/, "", version); $0 = save; } ! /\===.*Summary/ { print ""; print; blanks=1; } /tests ===/ || /^(Target|Host|Native)/ || $2 == "version" { print; blanks=1; } /^(XPASS|FAIL|UNRESOLVED|WARNING|ERROR|# of )/ { sub ("\r", ""); print; } /^using:/ { print ""; print; print ""; } --- 127,133 ---- if (lang == "") lang = " "$2" "; else lang = " "; } $2 == "version" { save = $0; $1 = ""; $2 = ""; version = $0; gsub(/^ */, "", version); gsub(/\r$/, "", version); $0 = save; } ! /===.*Summary/ { print ""; print; blanks=1; } /tests ===/ || /^(Target|Host|Native)/ || $2 == "version" { print; blanks=1; } /^(XPASS|FAIL|UNRESOLVED|WARNING|ERROR|# of )/ { sub ("\r", ""); print; } /^using:/ { print ""; print; print ""; } diff -Nrcpad gcc-8.3.0/fixincludes/ChangeLog gcc-8.4.0/fixincludes/ChangeLog *** gcc-8.3.0/fixincludes/ChangeLog Fri Feb 22 14:20:37 2019 --- gcc-8.4.0/fixincludes/ChangeLog Wed Mar 4 08:30:30 2020 *************** *** 1,3 **** --- 1,75 ---- + 2020-03-04 Release Manager + + * GCC 8.4.0 released. + + 2020-01-01 John David Anglin + + Backport from mainline + 2019-12-30 John David Anglin + + PR libgomp/93066 + * inclhack.def (hpux_c99_inttypes3): Fix defines for INTPTR_MAX + and UINTPTR_MAX, and missing define for SIZE_MAX. + * fixincl.x: Regenerate. + * tests/base/inttypes.h: Update for above fix. + + 2019-08-25 Iain Sandoe + + Backport from mainline. + 2019-08-18 C.G. Dogan + Iain Sandoe + + PR target/83531 + * inclhack.def (darwin_api_availability): New; strip leading + underscores from API_XXXX defines. + * fixincl.x: Regenerate. + * tests/base/os/availability.h: New file. + + 2019-08-24 Iain Sandoe + + Backport from mainline. + 2019-06-21 Iain Sandoe + + * inclhack.def: Replace the complex test using __STRICT_ANSI__ and + __STDC_VERSION__ with a test using __DARWIN_NO_LONG_LONG. + Ensure that the top level math.h uses <> to wrap included headers + rather than "". + * fixincl.x: Regenerated. + * tests/base/architecture/ppc/math.h: Update test to include the + __DARWIN_NO_LONG_LONG case. + + 2019-08-24 Iain Sandoe + + Backport from mainline. + 2019-06-21 Iain Sandoe + + * inclhack.def: Guard __has_attribute and __has_extension in + os/base.h. + Guard Apple blocks syntax in dispatch/object.h. + * fixincl.x: Regenerate. + * tests/base/dispatch/object.h: New file. + * tests/base/os/base.h: New file. + + 2019-06-01 Iain Sandoe + + Backport from mainline. + 2019-05-11 Iain Sandoe + + PR bootstrap/89864 + * inclhack.def (darwin_ucred__Atomic): Do not supply test_text + for wrap fixes. + * fixincl.x: Regenerated. + + Backport from mainline. + 2019-04-18 Erik Schnetter + Jakub Jelinek + Iain Sandoe + + PR bootstrap/89864 + * inclhack.def (darwin_ucred__Atomic): New, work around _Atomic keyword + use in headers included by C++. + * fixincl.x: Regenerated. + 2019-02-22 Release Manager * GCC 8.3.0 released. diff -Nrcpad gcc-8.3.0/fixincludes/fixincl.x gcc-8.4.0/fixincludes/fixincl.x *** gcc-8.3.0/fixincludes/fixincl.x Thu Feb 22 16:12:26 2018 --- gcc-8.4.0/fixincludes/fixincl.x Wed Mar 4 08:29:59 2020 *************** *** 2,12 **** * * DO NOT EDIT THIS FILE (fixincl.x) * ! * It has been AutoGen-ed February 22, 2018 at 03:46:51 PM by AutoGen 5.18 * From the definitions inclhack.def * and the template file fixincl */ ! /* DO NOT SVN-MERGE THIS FILE, EITHER Thu Feb 22 15:46:51 UTC 2018 * * You must regenerate it. Use the ./genfixes script. * --- 2,12 ---- * * DO NOT EDIT THIS FILE (fixincl.x) * ! * It has been AutoGen-ed January 1, 2020 at 12:04:04 PM by AutoGen 5.18.16 * From the definitions inclhack.def * and the template file fixincl */ ! /* DO NOT SVN-MERGE THIS FILE, EITHER Wed Jan 1 12:04:05 EST 2020 * * You must regenerate it. Use the ./genfixes script. * *************** *** 15,21 **** * certain ANSI-incompatible system header files which are fixed to work * correctly with ANSI C and placed in a directory that GNU C will search. * ! * This file contains 249 fixup descriptions. * * See README for more information. * --- 15,21 ---- * certain ANSI-incompatible system header files which are fixed to work * correctly with ANSI C and placed in a directory that GNU C will search. * ! * This file contains 255 fixup descriptions. * * See README for more information. * *************** static const char* apzAab_Darwin7_9_Long *** 269,274 **** --- 269,324 ---- /* * * * * * * * * * * * * * * * * * * * * * * * * * * + * Description of Darwin_Api_Availability fix + */ + tSCC zDarwin_Api_AvailabilityName[] = + "darwin_api_availability"; + + /* + * File name selection pattern + */ + tSCC zDarwin_Api_AvailabilityList[] = + "os/availability.h\0"; + /* + * Machine/OS name selection pattern + */ + tSCC* apzDarwin_Api_AvailabilityMachs[] = { + "*-*-darwin*", + (const char*)NULL }; + + /* + * content selection pattern - do fix if pattern found + */ + tSCC zDarwin_Api_AvailabilitySelect0[] = + " *#define __API_AVAILABLE.*\n\ + *#define __API_DEPRECATED.*\n\ + *#define __API_DEPRECATED_WITH_REPLACEMENT.*\n\ + *#define __API_UNAVAILABLE.*\n"; + + /* + * content bypass pattern - skip fix if pattern found + */ + tSCC zDarwin_Api_AvailabilityBypass0[] = + "__IPHONE_OS_VERSION_MIN_REQUIRED"; + + #define DARWIN_API_AVAILABILITY_TEST_CT 2 + static tTestDesc aDarwin_Api_AvailabilityTests[] = { + { TT_NEGREP, zDarwin_Api_AvailabilityBypass0, (regex_t*)NULL }, + { TT_EGREP, zDarwin_Api_AvailabilitySelect0, (regex_t*)NULL }, }; + + /* + * Fix Command Arguments for Darwin_Api_Availability + */ + static const char* apzDarwin_Api_AvailabilityPatch[] = { + "format", + " #define API_AVAILABLE(...)\n\ + #define API_DEPRECATED(...)\n\ + #define API_DEPRECATED_WITH_REPLACEMENT(...)\n\ + #define API_UNAVAILABLE(...)\n", + (char*)NULL }; + + /* * * * * * * * * * * * * * * * * * * * * * * * * * + * * Description of Aab_Fd_Zero_Asm_Posix_Types_H fix */ tSCC zAab_Fd_Zero_Asm_Posix_Types_HName[] = *************** tSCC zDarwin_9_Long_Double_Funcs_2List[] *** 2598,2604 **** * Machine/OS name selection pattern */ tSCC* apzDarwin_9_Long_Double_Funcs_2Machs[] = { ! "*-*-darwin7.9*", (const char*)NULL }; /* --- 2648,2654 ---- * Machine/OS name selection pattern */ tSCC* apzDarwin_9_Long_Double_Funcs_2Machs[] = { ! "*-*-darwin*", (const char*)NULL }; /* *************** static const char* apzDarwin_Gcc4_Breaka *** 2704,2709 **** --- 2754,2795 ---- /* * * * * * * * * * * * * * * * * * * * * * * * * * * + * Description of Darwin_Ll_Funcs_Avail fix + */ + tSCC zDarwin_Ll_Funcs_AvailName[] = + "darwin_ll_funcs_avail"; + + /* + * File name selection pattern + */ + tSCC zDarwin_Ll_Funcs_AvailList[] = + "architecture/ppc/math.h\0architecture/i386/math.h\0"; + /* + * Machine/OS name selection pattern + */ + tSCC* apzDarwin_Ll_Funcs_AvailMachs[] = { + "*-*-darwin*", + (const char*)NULL }; + + /* + * content selection pattern - do fix if pattern found + */ + tSCC zDarwin_Ll_Funcs_AvailSelect0[] = + "#if[^_]*__STDC_VERSION__[^_]*__STDC_VERSION__[^1]*199901L[^_]*__STRICT_ANSI__[^_]*__GNUC__[^)]*"; + + #define DARWIN_LL_FUNCS_AVAIL_TEST_CT 1 + static tTestDesc aDarwin_Ll_Funcs_AvailTests[] = { + { TT_EGREP, zDarwin_Ll_Funcs_AvailSelect0, (regex_t*)NULL }, }; + + /* + * Fix Command Arguments for Darwin_Ll_Funcs_Avail + */ + static const char* apzDarwin_Ll_Funcs_AvailPatch[] = { sed_cmd_z, + "-e", "s/#if[^_]*__STDC_VERSION__[^_]*__STDC_VERSION__[^_]*199901L[^_]*__STRICT_ANSI__[^_]*__GNUC__[^\\)]*)/#if !(__DARWIN_NO_LONG_LONG)/", + (char*)NULL }; + + /* * * * * * * * * * * * * * * * * * * * * * * * * * + * * Description of Darwin_Longjmp_Noreturn fix */ tSCC zDarwin_Longjmp_NoreturnName[] = *************** static const char* apzDarwin_Os_Trace_3P *** 2866,2871 **** --- 2952,3037 ---- /* * * * * * * * * * * * * * * * * * * * * * * * * * * + * Description of Darwin_Os_Base_1 fix + */ + tSCC zDarwin_Os_Base_1Name[] = + "darwin_os_base_1"; + + /* + * File name selection pattern + */ + tSCC zDarwin_Os_Base_1List[] = + "os/base.h\0"; + /* + * Machine/OS name selection pattern + */ + tSCC* apzDarwin_Os_Base_1Machs[] = { + "*-*-darwin*", + (const char*)NULL }; + + /* + * content selection pattern - do fix if pattern found + */ + tSCC zDarwin_Os_Base_1Select0[] = + "#define __has_attribute.*\n\ + #endif"; + + #define DARWIN_OS_BASE_1_TEST_CT 1 + static tTestDesc aDarwin_Os_Base_1Tests[] = { + { TT_EGREP, zDarwin_Os_Base_1Select0, (regex_t*)NULL }, }; + + /* + * Fix Command Arguments for Darwin_Os_Base_1 + */ + static const char* apzDarwin_Os_Base_1Patch[] = { + "format", + "%0\n\ + #ifndef __has_extension\n\ + #define __has_extension(x) 0\n\ + #endif", + (char*)NULL }; + + /* * * * * * * * * * * * * * * * * * * * * * * * * * + * + * Description of Darwin_Dispatch_Object_1 fix + */ + tSCC zDarwin_Dispatch_Object_1Name[] = + "darwin_dispatch_object_1"; + + /* + * File name selection pattern + */ + tSCC zDarwin_Dispatch_Object_1List[] = + "dispatch/object.h\0"; + /* + * Machine/OS name selection pattern + */ + tSCC* apzDarwin_Dispatch_Object_1Machs[] = { + "*-*-darwin*", + (const char*)NULL }; + + /* + * content selection pattern - do fix if pattern found + */ + tSCC zDarwin_Dispatch_Object_1Select0[] = + "typedef void.*\\^dispatch_block_t.*"; + + #define DARWIN_DISPATCH_OBJECT_1_TEST_CT 1 + static tTestDesc aDarwin_Dispatch_Object_1Tests[] = { + { TT_EGREP, zDarwin_Dispatch_Object_1Select0, (regex_t*)NULL }, }; + + /* + * Fix Command Arguments for Darwin_Dispatch_Object_1 + */ + static const char* apzDarwin_Dispatch_Object_1Patch[] = { + "format", + "#if __BLOCKS__\n\ + %0\n\ + #endif", + (char*)NULL }; + + /* * * * * * * * * * * * * * * * * * * * * * * * * * + * * Description of Darwin_Private_Extern fix */ tSCC zDarwin_Private_ExternName[] = *************** static const char* apzDarwin_Stdint_7Pat *** 3222,3227 **** --- 3388,3435 ---- /* * * * * * * * * * * * * * * * * * * * * * * * * * * + * Description of Darwin_Ucred__Atomic fix + */ + tSCC zDarwin_Ucred__AtomicName[] = + "darwin_ucred__Atomic"; + + /* + * File name selection pattern + */ + tSCC zDarwin_Ucred__AtomicList[] = + "sys/ucred.h\0"; + /* + * Machine/OS name selection pattern + */ + tSCC* apzDarwin_Ucred__AtomicMachs[] = { + "*-*-darwin*", + (const char*)NULL }; + + /* + * content selection pattern - do fix if pattern found + */ + tSCC zDarwin_Ucred__AtomicSelect0[] = + "_Atomic"; + + #define DARWIN_UCRED__ATOMIC_TEST_CT 1 + static tTestDesc aDarwin_Ucred__AtomicTests[] = { + { TT_EGREP, zDarwin_Ucred__AtomicSelect0, (regex_t*)NULL }, }; + + /* + * Fix Command Arguments for Darwin_Ucred__Atomic + */ + static const char* apzDarwin_Ucred__AtomicPatch[] = { + "wrap", + "#if (__STDC_VERSION__ < 201112L) || defined(__cplusplus)\n\ + # define _Atomic volatile\n\ + #endif\n", + "#if (__STDC_VERSION__ < 201112L) || defined(__cplusplus)\n\ + # undef _Atomic\n\ + #endif\n", + (char*)NULL }; + + /* * * * * * * * * * * * * * * * * * * * * * * * * * + * * Description of Dec_Intern_Asm fix */ tSCC zDec_Intern_AsmName[] = *************** static const char* apzHpux_C99_Inttypes2 *** 4889,4894 **** --- 5097,5151 ---- /* * * * * * * * * * * * * * * * * * * * * * * * * * * + * Description of Hpux_C99_Inttypes3 fix + */ + tSCC zHpux_C99_Inttypes3Name[] = + "hpux_c99_inttypes3"; + + /* + * File name selection pattern + */ + tSCC zHpux_C99_Inttypes3List[] = + "inttypes.h\0"; + /* + * Machine/OS name selection pattern + */ + tSCC* apzHpux_C99_Inttypes3Machs[] = { + "hppa*-hp-hpux11*", + (const char*)NULL }; + + /* + * content selection pattern - do fix if pattern found + */ + tSCC zHpux_C99_Inttypes3Select0[] = + "#define[ \t]INTPTR_MAX[ \t]*\n\ + #define[ \t]UINTPTR_MAX[ \t]*\n"; + + #define HPUX_C99_INTTYPES3_TEST_CT 1 + static tTestDesc aHpux_C99_Inttypes3Tests[] = { + { TT_EGREP, zHpux_C99_Inttypes3Select0, (regex_t*)NULL }, }; + + /* + * Fix Command Arguments for Hpux_C99_Inttypes3 + */ + static const char* apzHpux_C99_Inttypes3Patch[] = { + "format", + "#undef SIZE_MAX\n\ + #define SIZE_MAX __SIZE_MAX__\n\ + #ifdef __INTPTR_MAX__\n\ + # undef INTPTR_MAX\n\ + # define INTPTR_MAX __INTPTR_MAX__\n\ + # undef INTPTR_MIN\n\ + # define INTPTR_MIN (-INTPTR_MAX - 1)\n\ + #endif\n\ + #ifdef __UINTPTR_MAX__\n\ + # undef UINTPTR_MAX\n\ + # define UINTPTR_MAX __UINTPTR_MAX__\n\ + #endif\n", + (char*)NULL }; + + /* * * * * * * * * * * * * * * * * * * * * * * * * * + * * Description of Hpux_Ctype_Macros fix */ tSCC zHpux_Ctype_MacrosName[] = *************** static const char* apzX11_SprintfPatch[] *** 10099,10107 **** * * List of all fixes */ ! #define REGEX_COUNT 287 #define MACH_LIST_SIZE_LIMIT 187 ! #define FIX_COUNT 249 /* * Enumerate the fixes --- 10356,10364 ---- * * List of all fixes */ ! #define REGEX_COUNT 294 #define MACH_LIST_SIZE_LIMIT 187 ! #define FIX_COUNT 255 /* * Enumerate the fixes *************** typedef enum { *** 10110,10115 **** --- 10367,10373 ---- AAB_AIX_STDIO_FIXIDX, AAB_AIX_FCNTL_FIXIDX, AAB_DARWIN7_9_LONG_DOUBLE_FUNCS_FIXIDX, + DARWIN_API_AVAILABILITY_FIXIDX, AAB_FD_ZERO_ASM_POSIX_TYPES_H_FIXIDX, AAB_FD_ZERO_GNU_TYPES_H_FIXIDX, AAB_FD_ZERO_SELECTBITS_H_FIXIDX, *************** typedef enum { *** 10171,10180 **** --- 10429,10441 ---- DARWIN_9_LONG_DOUBLE_FUNCS_2_FIXIDX, DARWIN_EXTERNC_FIXIDX, DARWIN_GCC4_BREAKAGE_FIXIDX, + DARWIN_LL_FUNCS_AVAIL_FIXIDX, DARWIN_LONGJMP_NORETURN_FIXIDX, DARWIN_OS_TRACE_1_FIXIDX, DARWIN_OS_TRACE_2_FIXIDX, DARWIN_OS_TRACE_3_FIXIDX, + DARWIN_OS_BASE_1_FIXIDX, + DARWIN_DISPATCH_OBJECT_1_FIXIDX, DARWIN_PRIVATE_EXTERN_FIXIDX, DARWIN_STDINT_1_FIXIDX, DARWIN_STDINT_2_FIXIDX, *************** typedef enum { *** 10183,10188 **** --- 10444,10450 ---- DARWIN_STDINT_5_FIXIDX, DARWIN_STDINT_6_FIXIDX, DARWIN_STDINT_7_FIXIDX, + DARWIN_UCRED__ATOMIC_FIXIDX, DEC_INTERN_ASM_FIXIDX, DJGPP_WCHAR_H_FIXIDX, ECD_CURSOR_FIXIDX, *************** typedef enum { *** 10224,10229 **** --- 10486,10492 ---- HPUX_C99_INTPTR_FIXIDX, HPUX_C99_INTTYPES_FIXIDX, HPUX_C99_INTTYPES2_FIXIDX, + HPUX_C99_INTTYPES3_FIXIDX, HPUX_CTYPE_MACROS_FIXIDX, HPUX_EXTERN_ERRNO_FIXIDX, HPUX_HTONL_FIXIDX, *************** tFixDesc fixDescList[ FIX_COUNT ] = { *** 10374,10379 **** --- 10637,10647 ---- AAB_DARWIN7_9_LONG_DOUBLE_FUNCS_TEST_CT, FD_MACH_ONLY | FD_REPLACEMENT, aAab_Darwin7_9_Long_Double_FuncsTests, apzAab_Darwin7_9_Long_Double_FuncsPatch, 0 }, + { zDarwin_Api_AvailabilityName, zDarwin_Api_AvailabilityList, + apzDarwin_Api_AvailabilityMachs, + DARWIN_API_AVAILABILITY_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, + aDarwin_Api_AvailabilityTests, apzDarwin_Api_AvailabilityPatch, 0 }, + { zAab_Fd_Zero_Asm_Posix_Types_HName, zAab_Fd_Zero_Asm_Posix_Types_HList, apzAab_Fd_Zero_Asm_Posix_Types_HMachs, AAB_FD_ZERO_ASM_POSIX_TYPES_H_TEST_CT, FD_MACH_ONLY | FD_REPLACEMENT, *************** tFixDesc fixDescList[ FIX_COUNT ] = { *** 10679,10684 **** --- 10947,10957 ---- DARWIN_GCC4_BREAKAGE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, aDarwin_Gcc4_BreakageTests, apzDarwin_Gcc4_BreakagePatch, 0 }, + { zDarwin_Ll_Funcs_AvailName, zDarwin_Ll_Funcs_AvailList, + apzDarwin_Ll_Funcs_AvailMachs, + DARWIN_LL_FUNCS_AVAIL_TEST_CT, FD_MACH_ONLY, + aDarwin_Ll_Funcs_AvailTests, apzDarwin_Ll_Funcs_AvailPatch, 0 }, + { zDarwin_Longjmp_NoreturnName, zDarwin_Longjmp_NoreturnList, apzDarwin_Longjmp_NoreturnMachs, DARWIN_LONGJMP_NORETURN_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, *************** tFixDesc fixDescList[ FIX_COUNT ] = { *** 10699,10704 **** --- 10972,10987 ---- DARWIN_OS_TRACE_3_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, aDarwin_Os_Trace_3Tests, apzDarwin_Os_Trace_3Patch, 0 }, + { zDarwin_Os_Base_1Name, zDarwin_Os_Base_1List, + apzDarwin_Os_Base_1Machs, + DARWIN_OS_BASE_1_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, + aDarwin_Os_Base_1Tests, apzDarwin_Os_Base_1Patch, 0 }, + + { zDarwin_Dispatch_Object_1Name, zDarwin_Dispatch_Object_1List, + apzDarwin_Dispatch_Object_1Machs, + DARWIN_DISPATCH_OBJECT_1_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, + aDarwin_Dispatch_Object_1Tests, apzDarwin_Dispatch_Object_1Patch, 0 }, + { zDarwin_Private_ExternName, zDarwin_Private_ExternList, apzDarwin_Private_ExternMachs, DARWIN_PRIVATE_EXTERN_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, *************** tFixDesc fixDescList[ FIX_COUNT ] = { *** 10739,10744 **** --- 11022,11032 ---- DARWIN_STDINT_7_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, aDarwin_Stdint_7Tests, apzDarwin_Stdint_7Patch, 0 }, + { zDarwin_Ucred__AtomicName, zDarwin_Ucred__AtomicList, + apzDarwin_Ucred__AtomicMachs, + DARWIN_UCRED__ATOMIC_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, + aDarwin_Ucred__AtomicTests, apzDarwin_Ucred__AtomicPatch, 0 }, + { zDec_Intern_AsmName, zDec_Intern_AsmList, apzDec_Intern_AsmMachs, DEC_INTERN_ASM_TEST_CT, FD_MACH_ONLY, *************** tFixDesc fixDescList[ FIX_COUNT ] = { *** 10944,10949 **** --- 11232,11242 ---- HPUX_C99_INTTYPES2_TEST_CT, FD_MACH_ONLY, aHpux_C99_Inttypes2Tests, apzHpux_C99_Inttypes2Patch, 0 }, + { zHpux_C99_Inttypes3Name, zHpux_C99_Inttypes3List, + apzHpux_C99_Inttypes3Machs, + HPUX_C99_INTTYPES3_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, + aHpux_C99_Inttypes3Tests, apzHpux_C99_Inttypes3Patch, 0 }, + { zHpux_Ctype_MacrosName, zHpux_Ctype_MacrosList, apzHpux_Ctype_MacrosMachs, HPUX_CTYPE_MACROS_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, diff -Nrcpad gcc-8.3.0/fixincludes/inclhack.def gcc-8.4.0/fixincludes/inclhack.def *** gcc-8.3.0/fixincludes/inclhack.def Thu Feb 22 16:12:26 2018 --- gcc-8.4.0/fixincludes/inclhack.def Wed Mar 4 08:29:59 2020 *************** fix = { *** 195,200 **** --- 195,227 ---- }; /* + * SDKs for 10.13 and 10.14 omit the definitions for API_AVAILABLE where + * __attribute__((availability)) is not supported. + */ + fix = { + hackname = darwin_api_availability; + mach = "*-*-darwin*"; + files = os/availability.h; + bypass = "__IPHONE_OS_VERSION_MIN_REQUIRED"; + select = + " *#define __API_AVAILABLE.*\n" + " *#define __API_DEPRECATED.*\n" + " *#define __API_DEPRECATED_WITH_REPLACEMENT.*\n" + " *#define __API_UNAVAILABLE.*\n"; + c_fix = format; + c_fix_arg = + " #define API_AVAILABLE(...)\n" + " #define API_DEPRECATED(...)\n" + " #define API_DEPRECATED_WITH_REPLACEMENT(...)\n" + " #define API_UNAVAILABLE(...)\n"; + test_text = + "#define __API_AVAILABLE(...)\n" + "#define __API_DEPRECATED(...)\n" + "#define __API_DEPRECATED_WITH_REPLACEMENT(...)\n" + "#define __API_UNAVAILABLE(...)\n"; + }; + + /* * This fixes __FD_ZERO bug for linux 2.x.y (x <= 2 && y <= some n) */ fix = { *************** fix = { *** 1268,1279 **** }; /* ! * For the AAB_darwin7_9_long_double_funcs fix to be useful, ! * you have to not use "" includes. */ fix = { hackname = darwin_9_long_double_funcs_2; ! mach = "*-*-darwin7.9*"; files = math.h; select = '#include[ \t]+\"'; c_fix = format; --- 1295,1306 ---- }; /* ! * For the AAB_darwin7_9_long_double_funcs fix (and later fixes for long long) ! * to be useful, the main math.h must use <> and not "" includes. */ fix = { hackname = darwin_9_long_double_funcs_2; ! mach = "*-*-darwin*"; files = math.h; select = '#include[ \t]+\"'; c_fix = format; *************** fix = { *** 1281,1287 **** c_fix_arg = '([ \t]*#[ \t]*include[ \t]+)"([a-z0-9/]+)\.h"'; ! test_text = '#include "architecture/ppc/math.h"'; }; /* --- 1308,1314 ---- c_fix_arg = '([ \t]*#[ \t]*include[ \t]+)"([a-z0-9/]+)\.h"'; ! test_text = '#include '; }; /* *************** fix = { *** 1325,1330 **** --- 1352,1373 ---- }; /* + * math.h hides the long long functions that are available on the system for + * 10.5 and 10.6 SDKs, we expect to use them in G++ without specifying a value + * for __STDC_VERSION__, or switching __STRICT_ANSI__ off. + */ + fix = { + hackname = darwin_ll_funcs_avail; + mach = "*-*-darwin*"; + files = architecture/ppc/math.h, architecture/i386/math.h; + select = "#if[^_]*__STDC_VERSION__[^_]*__STDC_VERSION__[^1]*199901L[^_]*" + "__STRICT_ANSI__[^_]*__GNUC__[^\)]*"; + sed = "s/#if[^_]*__STDC_VERSION__[^_]*__STDC_VERSION__[^_]*199901L[^_]*" + "__STRICT_ANSI__[^_]*__GNUC__[^\\)]*\)/#if\ !\(__DARWIN_NO_LONG_LONG\)/"; + test_text = "#if\ !(__DARWIN_NO_LONG_LONG)"; + }; + + /* * Before Mac OS X 10.8 doesn't mark longjump noreturn. */ fix = { *************** fix = { *** 1396,1401 **** --- 1439,1487 ---- }; /* + * In macOS 10.10 , doesn't have __has_extension guarded. + */ + fix = { + hackname = darwin_os_base_1; + mach = "*-*-darwin*"; + files = os/base.h; + select = <<- OS_BASE_1_SEL + #define __has_attribute.* + #endif + OS_BASE_1_SEL; + c_fix = format; + c_fix_arg = <<- OS_BASE_1_FIX + %0 + #ifndef __has_extension + #define __has_extension(x) 0 + #endif + OS_BASE_1_FIX; + test_text = <<- OS_BASE_1_TEST + #define __has_attribute(x) 0 + #endif + + #if __GNUC__ + OS_BASE_1_TEST; + }; + + /* + * In macOS 10.10 , has unguarded block syntax. + */ + fix = { + hackname = darwin_dispatch_object_1; + mach = "*-*-darwin*"; + files = dispatch/object.h; + select = "typedef void.*\\^dispatch_block_t.*"; + c_fix = format; + c_fix_arg = "#if __BLOCKS__\n%0\n#endif"; + test_text = <<- DISPATCH_OBJECT_1_TEST + typedef void (^dispatch_block_t)(void); + + __BEGIN_DECLS + DISPATCH_OBJECT_1_TEST; + }; + + /* * __private_extern__ doesn't exist in FSF GCC. Even if it did, * why would you ever put it in a system header file? */ *************** fix = { *** 1592,1597 **** --- 1678,1702 ---- "#define UINTMAX_C(v) (v ## ULL)"; }; + /* The SDK included with XCode 10.2 has the file that uses the + C11 _Atomic keyword (exposing it to C++ code). The work-around here follows + the header in declaring the entity volatile when _Atomic is not available. + */ + fix = { + hackname = darwin_ucred__Atomic; + mach = "*-*-darwin*"; + files = sys/ucred.h; + select = "_Atomic"; + c_fix = wrap; + c_fix_arg = "#if (__STDC_VERSION__ < 201112L) || defined(__cplusplus)\n" + "# define _Atomic volatile\n" + "#endif\n"; + c_fix_arg = "#if (__STDC_VERSION__ < 201112L) || defined(__cplusplus)\n" + "# undef _Atomic\n" + "#endif\n"; + test_text = ""; /* Don't provide this for wrap fixes. */ + }; + /* * Fix on Digital UNIX V4.0: * It contains a prototype for a DEC C internal asm() function, *************** fix = { *** 2453,2458 **** --- 2558,2589 ---- }; /* + * Fix broken and missing defines in inttypes.h + */ + fix = { + hackname = hpux_c99_inttypes3; + mach = "hppa*-hp-hpux11*"; + files = inttypes.h; + select = "#define[ \t]INTPTR_MAX[ \t]*\n" + "#define[ \t]UINTPTR_MAX[ \t]*\n"; + c_fix = format; + c_fix_arg = "#undef SIZE_MAX\n" + "#define SIZE_MAX __SIZE_MAX__\n" + "#ifdef __INTPTR_MAX__\n" + "# undef INTPTR_MAX\n" + "# define INTPTR_MAX __INTPTR_MAX__\n" + "# undef INTPTR_MIN\n" + "# define INTPTR_MIN (-INTPTR_MAX - 1)\n" + "#endif\n" + "#ifdef __UINTPTR_MAX__\n" + "# undef UINTPTR_MAX\n" + "# define UINTPTR_MAX __UINTPTR_MAX__\n" + "#endif\n"; + test_text = "#define INTPTR_MAX\n" + "#define UINTPTR_MAX\n"; + }; + + /* * Fix hpux broken ctype macros */ fix = { diff -Nrcpad gcc-8.3.0/fixincludes/tests/base/architecture/ppc/math.h gcc-8.4.0/fixincludes/tests/base/architecture/ppc/math.h *** gcc-8.3.0/fixincludes/tests/base/architecture/ppc/math.h Mon Oct 29 16:44:34 2012 --- gcc-8.4.0/fixincludes/tests/base/architecture/ppc/math.h Wed Mar 4 08:29:59 2020 *************** *** 12,14 **** --- 12,19 ---- #if defined( BROKEN_NAN_CHECK ) #if 1 #endif /* BROKEN_NAN_CHECK */ + + + #if defined( DARWIN_LL_FUNCS_AVAIL_CHECK ) + #if !(__DARWIN_NO_LONG_LONG) + #endif /* DARWIN_LL_FUNCS_AVAIL_CHECK */ diff -Nrcpad gcc-8.3.0/fixincludes/tests/base/dispatch/object.h gcc-8.4.0/fixincludes/tests/base/dispatch/object.h *** gcc-8.3.0/fixincludes/tests/base/dispatch/object.h Thu Jan 1 00:00:00 1970 --- gcc-8.4.0/fixincludes/tests/base/dispatch/object.h Wed Mar 4 08:29:59 2020 *************** *** 0 **** --- 1,18 ---- + /* DO NOT EDIT THIS FILE. + + It has been auto-edited by fixincludes from: + + "fixinc/tests/inc/dispatch/object.h" + + This had to be done to correct non-standard usages in the + original, manufacturer supplied header file. */ + + + + #if defined( DARWIN_DISPATCH_OBJECT_1_CHECK ) + #if __BLOCKS__ + typedef void (^dispatch_block_t)(void); + #endif + + __BEGIN_DECLS + #endif /* DARWIN_DISPATCH_OBJECT_1_CHECK */ diff -Nrcpad gcc-8.3.0/fixincludes/tests/base/inttypes.h gcc-8.4.0/fixincludes/tests/base/inttypes.h *** gcc-8.3.0/fixincludes/tests/base/inttypes.h Tue Apr 28 15:17:49 2009 --- gcc-8.4.0/fixincludes/tests/base/inttypes.h Wed Mar 4 08:29:59 2020 *************** *** 16,18 **** --- 16,35 ---- #define UINT32_C(__c) __CONCAT__(__c,u) #endif /* HPUX_C99_INTTYPES_CHECK */ + + + #if defined( HPUX_C99_INTTYPES3_CHECK ) + #undef SIZE_MAX + #define SIZE_MAX __SIZE_MAX__ + #ifdef __INTPTR_MAX__ + # undef INTPTR_MAX + # define INTPTR_MAX __INTPTR_MAX__ + # undef INTPTR_MIN + # define INTPTR_MIN (-INTPTR_MAX - 1) + #endif + #ifdef __UINTPTR_MAX__ + # undef UINTPTR_MAX + # define UINTPTR_MAX __UINTPTR_MAX__ + #endif + + #endif /* HPUX_C99_INTTYPES3_CHECK */ diff -Nrcpad gcc-8.3.0/fixincludes/tests/base/os/availability.h gcc-8.4.0/fixincludes/tests/base/os/availability.h *** gcc-8.3.0/fixincludes/tests/base/os/availability.h Thu Jan 1 00:00:00 1970 --- gcc-8.4.0/fixincludes/tests/base/os/availability.h Wed Mar 4 08:29:59 2020 *************** *** 0 **** --- 1,18 ---- + /* DO NOT EDIT THIS FILE. + + It has been auto-edited by fixincludes from: + + "fixinc/tests/inc/os/availability.h" + + This had to be done to correct non-standard usages in the + original, manufacturer supplied header file. */ + + + + #if defined( DARWIN_API_AVAILABILITY_CHECK ) + #define API_AVAILABLE(...) + #define API_DEPRECATED(...) + #define API_DEPRECATED_WITH_REPLACEMENT(...) + #define API_UNAVAILABLE(...) + + #endif /* DARWIN_API_AVAILABILITY_CHECK */ diff -Nrcpad gcc-8.3.0/fixincludes/tests/base/os/base.h gcc-8.4.0/fixincludes/tests/base/os/base.h *** gcc-8.3.0/fixincludes/tests/base/os/base.h Thu Jan 1 00:00:00 1970 --- gcc-8.4.0/fixincludes/tests/base/os/base.h Wed Mar 4 08:29:59 2020 *************** *** 0 **** --- 1,20 ---- + /* DO NOT EDIT THIS FILE. + + It has been auto-edited by fixincludes from: + + "fixinc/tests/inc/os/base.h" + + This had to be done to correct non-standard usages in the + original, manufacturer supplied header file. */ + + + + #if defined( DARWIN_OS_BASE_1_CHECK ) + #define __has_attribute(x) 0 + #endif + #ifndef __has_extension + #define __has_extension(x) 0 + #endif + + #if __GNUC__ + #endif /* DARWIN_OS_BASE_1_CHECK */ diff -Nrcpad gcc-8.3.0/gcc/BASE-VER gcc-8.4.0/gcc/BASE-VER *** gcc-8.3.0/gcc/BASE-VER Fri Feb 22 14:20:37 2019 --- gcc-8.4.0/gcc/BASE-VER Wed Mar 4 08:30:30 2020 *************** *** 1 **** ! 8.3.0 --- 1 ---- ! 8.4.0 diff -Nrcpad gcc-8.3.0/gcc/ChangeLog gcc-8.4.0/gcc/ChangeLog *** gcc-8.3.0/gcc/ChangeLog Fri Feb 22 14:20:37 2019 --- gcc-8.4.0/gcc/ChangeLog Wed Mar 4 08:30:30 2020 *************** *** 1,3 **** --- 1,3126 ---- + 2020-03-04 Release Manager + + * GCC 8.4.0 released. + + 2020-03-02 Martin Liska + + Backport from mainline + 2020-02-28 Martin Liska + + PR other/93965 + * configure.ac: Improve detection of ld_date by requiring + either two dashes or none. + * configure: Regenerate. + + 2020-02-29 Peter Bergner + + Revert + 2020-02-20 Peter Bergner + + PR target/93658 + * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Handle VSX + vector modes. + + 2020-02-03 Michael Meissner + + * config/rs6000/rs6000.c (get_vector_offset): New helper function + to calculate the offset in memory from the start of a vector of a + particular element. Add code to keep the element number in + bounds if the element number is variable. + (rs6000_adjust_vec_address): Move calculation of offset of the + vector element to get_vector_offset. + (rs6000_split_vec_extract_var): Do not do the initial AND of + element here, move the code to get_vector_offset. + + 2020-02-05 Michael Meissner + + PR target/93568 + * config/rs6000/rs6000.c (get_vector_offset): Fix Q constraint assert + to use MEM. + + 2020-01-06 Michael Meissner + + * config/rs6000/vsx.md (vsx_extract__var, VSX_D iterator): + Use 'Q' for doing vector extract from memory. + (vsx_extract_v4sf_var): Use 'Q' for doing vector extract from + memory. + (vsx_extract__var, VSX_EXTRACT_I iterator): Use 'Q' for + doing vector extract from memory. + (vsx_extract__mode_var): Use 'Q' for doing vector + extract from memory. + + 2020-02-26 Carl Love + + PR target/91276 + * doc/extend.texi (PowerPC AltiVec Built-in Functions): The + builtin-function name __builtin_crypto_vpmsumb is only for the + vector unsigned short arguments. It is also listed as the name of + the built-in for arguments vector unsigned short, + vector unsigned int and vector unsigned long long built-ins. The + name of the builtins for these arguments should be: + __builtin_crypto_vpmsumh, __builtin_crypto_vpmsumw and + __builtin_crypto_vpmsumd respectively. + + 2020-02-26 Jakub Jelinek + + PR tree-optimization/93820 + * gimple-ssa-store-merging.c (check_no_overlap): Change RHS_CODE + argument to ALL_INTEGER_CST_P boolean. + (imm_store_chain_info::try_coalesce_bswap): Adjust caller. + (imm_store_chain_info::coalesce_immediate_stores): Likewise. Handle + adjacent INTEGER_CST store into merged_store->only_constants like + overlapping one. + + 2020-02-25 Jakub Jelinek + + PR rtl-optimization/93908 + * combine.c (find_split_point): For store into ZERO_EXTRACT, and src + with mask. + + 2019-02-25 Eric Botcazou + + * dwarf2out.c (dwarf2out_size_function): Run in early-DWARF mode. + + 2020-02-25 Roman Zhuykov + + Backport from master + 2020-02-24 Roman Zhuykov + + * doc/install.texi (--enable-checking): Properly document current + behavior. + (--enable-stage1-checking): Minor clarification about bootstrap. + + 2020-02-25 Richard Sandiford + + Backport from mainline + 2020-02-19 Richard Sandiford + + PR tree-optimization/93767 + * tree-vect-data-refs.c (vect_compile_time_alias): Remove the + access-size bias from the offset calculations for negative strides. + + 2020-02-25 Richard Sandiford + + Backport from mainline + 2020-01-28 Richard Sandiford + + PR tree-optimization/93434 + * tree-predcom.c (split_data_refs_to_components): Record which + components have had aliasing loads removed. Prevent store-store + commoning for all such components. + + 2020-02-25 Richard Sandiford + + Backport from mainline + 2019-12-05 Richard Sandiford + + PR middle-end/92768 + * tree-core.h (OEP_BITWISE): New flag. + * fold-const.c (operand_compare::operand_equal_p): Handle it. + * tree-vector-builder.h (tree_vector_builder::equal_p): Pass it. + + 2020-02-25 Richard Sandiford + + Backport from mainline + 2019-11-11 Richard Sandiford + + PR tree-optimization/92420 + * tree-vect-stmts.c (get_negative_load_store_type): Move further + up file. + (get_group_load_store_type): Use it for reversed SLP accesses. + + 2020-02-25 Richard Sandiford + + Backport from mainline + 2019-08-09 Richard Sandiford + + PR middle-end/90313 + * tree-tailcall.c (find_tail_calls): Reject calls that might + read from an escaped RESULT_DECL. + + 2020-02-24 Jason Merrill + + PR c++/92003 + * symtab.c (symtab_node::nonzero_address): A DECL_COMDAT decl has + non-zero address even if weak and not yet defined. + + 2020-02-23 Peter Bergner + + Backport from master + 2020-02-20 Peter Bergner + + PR target/93658 + * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Handle VSX + vector modes. + + 2020-02-23 Peter Bergner + + Backport from master + 2020-02-03 Michael Meissner + + * config/rs6000/rs6000.c (get_vector_offset): New helper function + to calculate the offset in memory from the start of a vector of a + particular element. Add code to keep the element number in + bounds if the element number is variable. + (rs6000_adjust_vec_address): Move calculation of offset of the + vector element to get_vector_offset. + (rs6000_split_vec_extract_var): Do not do the initial AND of + element here, move the code to get_vector_offset. + + Backport from master + 2020-02-05 Michael Meissner + + PR target/93568 + * config/rs6000/rs6000.c (get_vector_offset): Fix Q constraint assert + to use MEM. + + 2020-02-23 Peter Bergner + + Backport from master + 2020-01-06 Michael Meissner + + * config/rs6000/vsx.md (vsx_extract__var, VSX_D iterator): + Use 'Q' for doing vector extract from memory. + (vsx_extract_v4sf_var): Use 'Q' for doing vector extract from + memory. + (vsx_extract__var, VSX_EXTRACT_I iterator): Use 'Q' for + doing vector extract from memory. + (vsx_extract__mode_var): Use 'Q' for doing vector + extract from memory. + + 2020-02-21 John David Anglin + + * gcc/config/pa/pa.c (pa_function_value): Fix check for word and + double-word size when handling aggregate return values. + * gcc/config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Fix to indicate + that homogeneous SFmode and DFmode aggregates are passed and returned + in general registers. + + 2020-02-20 Uroš Bizjak + + PR target/93828 + * config/i386/mmx.md (*vec_extractv2sf_1): Match source operand + to destination operand for shufps alternative. + (*vec_extractv2si_1): Ditto. + + 2020-02-20 Bernd Edlinger + + * collect2.c (tool_cleanup): Avoid calling not signal-safe + functions. + (maybe_run_lto_and_relink): Avoid possible signal handler + access to unintialzed memory (lto_o_files). + + 2020-02-20 H.J. Lu + + Backport from master + 2020-02-13 H.J. Lu + + PR target/93656 + * config/i386/i386.c (ix86_trampoline_init): Skip ENDBR32 at + the target function entry. + + 2020-02-17 Richard Biener + + Backport from mainline + 2020-01-22 Richard Biener + + PR tree-optimization/93381 + * tree-ssa-structalias.c (find_func_aliases): Assume offsetting + throughout, handle all conversions the same. + + 2020-02-17 Richard Biener + + Backport from mainline + 2020-01-28 Richard Biener + + PR tree-optimization/93439 + * tree-parloops.c (create_loop_fn): Move clique bookkeeping... + * tree-cfg.c (move_sese_region_to_fn): ... here. + (verify_types_in_gimple_reference): Verify used cliques are + tracked. + + 2020-02-17 Richard Biener + + Backport from mainline + 2020-01-09 Richard Biener + + PR middle-end/93054 + * gimplify.c (gimplify_expr): Deal with NOP definitions. + + 2020-02-17 Richard Biener + + Backport from mainline + 2020-01-20 Richard Biener + + PR debug/92763 + * dwarf2out.c (prune_unused_types): Unconditionally mark + called function DIEs. + + 2020-02-17 Richard Biener + + Backport from mainline + 2019-11-29 Richard Biener + + PR tree-optimization/92704 + * tree-if-conv.c (combine_blocks): Deal with virtual PHIs + in loops performing only loads. + + 2020-02-17 Richard Biener + + Backport from mainline + 2019-11-27 Richard Biener + + PR middle-end/92674 + * tree-inline.c (expand_call_inline): Delay purging EH/abnormal + edges and instead record blocks in bitmap. + (gimple_expand_calls_inline): Adjust. + (fold_marked_statements): Delay EH cleanup until all folding is + done. + (optimize_inline_calls): Do EH/abnormal cleanup for calls after + inlining finished. + + 2020-02-14 Hongtao Liu + + PR target/93724 + * config/i386/avx512vbmi2intrin.h + (_mm512_shrdi_epi16, _mm512_mask_shrdi_epi16, + _mm512_maskz_shrdi_epi16, _mm512_shrdi_epi32, + _mm512_mask_shrdi_epi32, _mm512_maskz_shrdi_epi32, + _m512_shrdi_epi64, _m512_mask_shrdi_epi64, + _m512_maskz_shrdi_epi64, _mm512_shldi_epi16, + _mm512_mask_shldi_epi16, _mm512_maskz_shldi_epi16, + _mm512_shldi_epi32, _mm512_mask_shldi_epi32, + _mm512_maskz_shldi_epi32, _mm512_shldi_epi64, + _mm512_mask_shldi_epi64, _mm512_maskz_shldi_epi64): Fix typo + of lacking a closing parenthesis. + * config/i386/avx512vbmi2vlintrin.h + (_mm256_shrdi_epi16, _mm256_mask_shrdi_epi16, + _mm256_maskz_shrdi_epi16, _mm256_shrdi_epi32, + _mm256_mask_shrdi_epi32, _mm256_maskz_shrdi_epi32, + _m256_shrdi_epi64, _m256_mask_shrdi_epi64, + _m256_maskz_shrdi_epi64, _mm256_shldi_epi16, + _mm256_mask_shldi_epi16, _mm256_maskz_shldi_epi16, + _mm256_shldi_epi32, _mm256_mask_shldi_epi32, + _mm256_maskz_shldi_epi32, _mm256_shldi_epi64, + _mm256_mask_shldi_epi64, _mm256_maskz_shldi_epi64, + _mm_shrdi_epi16, _mm_mask_shrdi_epi16, + _mm_maskz_shrdi_epi16, _mm_shrdi_epi32, + _mm_mask_shrdi_epi32, _mm_maskz_shrdi_epi32, + _mm_shrdi_epi64, _mm_mask_shrdi_epi64, + _m_maskz_shrdi_epi64, _mm_shldi_epi16, + _mm_mask_shldi_epi16, _mm_maskz_shldi_epi16, + _mm_shldi_epi32, _mm_mask_shldi_epi32, + _mm_maskz_shldi_epi32, _mm_shldi_epi64, + _mm_mask_shldi_epi64, _mm_maskz_shldi_epi64): Ditto. + + 2020-02-15 Jakub Jelinek + + PR tree-optimization/93744 + * match.pd (((m1 >/=/<= m2) * d -> (m1 >/=/<= m2) ? d : 0): For + GENERIC, make sure @2 in the first and @1 in the other patterns has no + side-effects. + + 2020-02-14 Eric Botcazou + + PR target/93704 + * config/sparc/sparc.c (eligible_for_call_delay): Test HAVE_GNU_LD in + conjunction with TARGET_GNU_TLS in early return. + + 2020-02-14 Jakub Jelinek + + Backported from mainline + 2020-02-13 Jakub Jelinek + + PR target/93696 + * config/i386/avx512bitalgintrin.h (_mm512_mask_popcnt_epi8, + _mm512_mask_popcnt_epi16, _mm256_mask_popcnt_epi8, + _mm256_mask_popcnt_epi16, _mm_mask_popcnt_epi8, + _mm_mask_popcnt_epi16): Rename __B argument to __A and __A to __W, + pass __A to the builtin followed by __W instead of __A followed by + __B. + * config/i386/avx512vpopcntdqintrin.h (_mm512_mask_popcnt_epi32, + _mm512_mask_popcnt_epi64): Likewise. + * config/i386/avx512vpopcntdqvlintrin.h (_mm_mask_popcnt_epi32, + _mm256_mask_popcnt_epi32, _mm_mask_popcnt_epi64, + _mm256_mask_popcnt_epi64): Likewise. + + PR target/93673 + * config/i386/sse.md (k): Drop mode from last operand and + use const_0_to_255_operand predicate instead of immediate_operand. + (avx512dq_fpclass, + avx512dq_vmfpclass, + vgf2p8affineinvqb_, + vgf2p8affineqb_): Drop mode from + const_0_to_255_operand predicated operands. + + 2020-02-12 Jakub Jelinek + + PR target/93670 + * config/i386/sse.md (VI48F_256_DQ): New mode iterator. + (avx512vl_vextractf128): Use it instead of VI48F_256. Remove + TARGET_AVX512DQ from condition. + (vec_extract_lo_): Use + instead of in condition. If + TARGET_AVX512DQ is false, emit vextract*64x4 instead of + vextract*32x8. + (vec_extract_lo_): Drop + from condition. + + 2020-02-10 Jakub Jelinek + + PR target/93637 + * config/i386/sse.md (VI_256_AVX2): New mode iterator. + (vcond_mask_): Use it instead of VI_256. + Change condition from TARGET_AVX2 to TARGET_AVX. + + 2020-02-08 Uroš Bizjak + Jakub Jelinek + + PR target/65782 + * config/i386/i386.h (CALL_USED_REGISTERS): Make + xmm16-xmm31 call-used even in 64-bit ms-abi. + + 2020-02-06 Jakub Jelinek + + PR libgomp/93515 + * omp-low.c (use_pointer_for_field): For nested constructs, also + look for map clauses on target construct. + (scan_omp_1_stmt) : Bump temporarily + taskreg_nesting_level. + + 2020-02-05 Jakub Jelinek + + PR middle-end/93555 + * omp-simd-clone.c (expand_simd_clones): If simd_clone_mangle or + simd_clone_create failed when i == 0, adjust clone->nargs by + clone->inbranch. + + 2020-01-30 Jakub Jelinek + + PR middle-end/93505 + * combine.c (simplify_comparison) : Punt on out of range + rotate counts. + + 2020-01-23 Jakub Jelinek + + PR rtl-optimization/93402 + * postreload.c (reload_combine_recognize_pattern): Don't try to adjust + USE insns. + + 2020-01-22 Jakub Jelinek + + PR target/91298 + * output.h (assemble_name_resolve): Declare. + * varasm.c (assemble_name_resolve): New function. + (assemble_name): Use it. + * config/i386/i386.h (ASM_OUTPUT_SYMBOL_REF): Define. + + 2020-01-21 Jakub Jelinek + + PR target/93333 + * config/riscv/riscv.c (riscv_rtx_costs) : Verify + the last two operands are CONST_INT_P before using them as such. + + PR target/93073 + * config/rs6000/rs6000.c (rs6000_emit_cmove): If using fsel, punt for + compare_mode other than SFmode or DFmode. + + 2020-01-09 Jakub Jelinek + + PR inline-asm/93202 + * config/riscv/riscv.c (riscv_print_operand_reloc): Use + output_operand_lossage instead of gcc_unreachable. + * doc/md.texi (riscv f constraint): Fix typo. + + 2020-01-03 Jakub Jelinek + + PR rtl-optimization/93088 + * loop-iv.c (find_single_def_src): Punt after looking through + 128 reg copies for regs with single definitions. Move definitions + to first uses. + + 2020-01-02 Jakub Jelinek + + PR ipa/93087 + * predict.c (compute_function_frequency): Don't call + warn_function_cold on functions that already have cold attribute. + + 2019-12-14 Jakub Jelinek + + PR ipa/92357 + * ipa-fnsummary.c (ipa_fn_summary_write): Use + lto_symtab_encoder_iterator with lsei_start_function_in_partition and + lsei_next_function_in_partition instead of walking all cgraph nodes + in encoder. + + PR tree-optimization/92930 + * ipa-pure-const.c (special_builtin_state): Don't handle + BUILT_IN_APPLY. + + 2019-12-12 Jakub Jelinek + + PR target/92904 + * config/i386/i386.c (ix86_gimplify_va_arg): If need_intregs and + not need_temp, decrease alignment of the read because the GPR save + area only guarantees 8-byte alignment. + + 2019-12-11 Jakub Jelinek + + PR target/92723 + * tree-vect-patterns.c (vect_recog_rotate_pattern): If dt is not + vect_internal_def, use oprnd1 as is, without trying to cast it. + Formatting fix. + + 2019-11-27 Jakub Jelinek + + PR debug/92664 + * dwarf2out.c (lookup_filename): Use "" instead of "". + + 2019-11-23 Jakub Jelinek + + PR target/92615 + * config/i386/i386.c (ix86_md_asm_adjust): If dest_mode is + GET_MODE (dest), is not QImode, using ZERO_EXTEND and dest is not + register_operand, force x into register before storing it into dest. + Formatting fix. + + 2020-02-14 Richard Biener + + Backport from mainline + PR middle-end/93246 + * alias.c (record_component_aliases): Take superset to record + into, recurse for alias-set zero fields. + (record_component_aliases): New oveerload wrapping around the above. + + 2020-02-11 Tamar Christina + + Backport from mainline + 2020-01-31 Tamar Christina + + PR rtl-optimization/91838 + * simplify-rtx.c (simplify_binary_operation_1): Update LSHIFTRT case + to truncate if allowed or reject combination. + + 2020-01-27 Wilco Dijkstra + + PR target/92692 + * config/aarch64/aarch64.c (aarch64_split_compare_and_swap) + Add assert to ensure prolog has been emitted. + (aarch64_split_atomic_op): Likewise. + * config/aarch64/atomics.md (aarch64_compare_and_swap) + Use epilogue_completed rather than reload_completed. + (aarch64_atomic_exchange): Likewise. + (aarch64_atomic_): Likewise. + (atomic_nand): Likewise. + (aarch64_atomic_fetch_): Likewise. + (atomic_fetch_nand): Likewise. + (aarch64_atomic__fetch): Likewise. + (atomic_nand_fetch): Likewise. + + 2020-01-19 Eric S. Raymond + Sandra Loosemore + + Backport from mainline: + + 2020-01-19 Eric S. Raymond + + * doc/contribute.texi: Update for SVN -> Git transition. + * doc/install.texi: Likewise. + + 2020-01-15 Martin Liska + + Backport from mainline + 2019-04-14 Jan Hubicka + + PR lto/89358 + * ipa-devirt.c (skip_in_fields_list_p): New. + (odr_types_equivalent_p): Use it. + + 2020-01-10 Martin Jambor + + Backport from mainline + 2019-12-17 Martin Jambor + + PR ipa/92971 + * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Fix + definition of values, release memory on exit. + + 2020-01-09 Martin Liska + + Backport from mainline + 2019-12-12 Jan Hubicka + + * ipa-prop.c (read_ipcp_transformation_info): Fix undefined ordering + of execution of function call parameters. + + 2020-01-08 Georg-Johann Lay + + Backport from 2020-01-08 trunk r279995. + + Add -nodevicespecs option for avr. + + PR target/93182 + * config/avr/avr.opt (-nodevicespecs): New driver option. + * config/avr/driver-avr.c (avr_devicespecs_file): Only issue + "-specs=device-specs/..." if that option is not set. + * doc/invoke.texi (AVR Options) <-nodevicespecs>: Document. + + 2020-01-06 John David Anglin + + * config/pa/pa.md: Revert change to use ordered_comparison_operator + instead of cmpib_comparison_operator in cmpib patterns. + * config/pa/predicates.md (cmpib_comparison_operator): Revert removal + of cmpib_comparison_operator. Revise comment. + + 2020-01-01 John David Anglin + + PR target/93111 + * config/pa/pa.md (scc): Use ordered_comparison_operator instead of + comparison_operator in B and S integer comparisons. Likewise, use + ordered_comparison_operator instead of cmpib_comparison_operator in + cmpib patterns. + * config/pa/predicates.md (cmpib_comparison_operator): Remove. + + 2019-12-28 Iain Sandoe + + Backport from mainline. + 2019-12-14 Iain Sandoe + + * config/darwin.h (DARWIN_EXTRA_SPECS): Add new + bundle spec. (DARWIN_BUNDLE1_SPEC): New. + (STARTFILE_SPEC): Use darwin bundle spec. + * config/rs6000/darwin.h (DARWIN_BUNDLE1_SPEC): New. + (DARWIN_DYLIB1_SPEC): Delete duplicate. + + 2019-12-20 Roman Zhuykov + + Backport from mainline + 2019-12-13 Roman Zhuykov + + PR rtl-optimization/92591 + * modulo-sched.c (ps_add_node_check_conflicts): Improve checking + for history > 0 case. + * params.def (sms-dfa-history): Limit to 16. + + 2019-12-19 Georg-Johann Lay + + Backport support for some AVR devices from avrxmega3 family + from SVN trunk r279309, r278387, r278389, r278478. + + PR target/92545 + * config/avr/avr-arch.h (avr_mcu_t) : New field. + * config/avr/avr-devices.c (avr_mcu_types): Adjust initializers. + * config/avr/avr-mcus.def (AVR_MCU): Add respective field. + * config/avr/gen-avr-mmcu-specs.c (print_mcu) + <*cpp, *cpp_mcu, *cpp_avrlibc, *link_pm_base_address>: Emit code + for spec definitions. + * config/avr/gen-avr-mmcu-texi.c: Rewrite. + * doc/avr-mmcu.texi: Regenerate. + + 2019-12-17 Andreas Krebbel + + Backport from mainline + 2019-12-16 Andreas Krebbel + + PR target/92950 + * config/s390/vector.md ("mov" for V_8): Replace lh, lhy, + and lhrl with llc. + + 2019-12-02 Wilco Dijkstra + + * config/aarch64/aarch64-cores.def (ares): Define. + (cortex-a76): Likewise. + (neoverse-n1): Likewise. + * config/aarch64/aarch64-tune.md: Regenerate. + * doc/invoke.texi (AArch64 Options): Document ares, cortex-a75 and + neoverse-n1. + + 2019-11-29 David Malcolm + + PR driver/89014 + * config/aarch64/driver-aarch64.c (host_detect_local_cpu): Fix + use-after-free of the result of + aarch64_get_extension_string_for_isa_flags. + + 2019-11-21 Jakub Jelinek + + PR tree-optimization/91355 + * tree-ssa-sink.c (select_best_block): Use >= rather than > + for early_bb scaled count with best_bb count comparison. + + Backported from mainline + 2019-11-20 Jakub Jelinek + + PR middle-end/90840 + * expmed.c (store_bit_field_1): Handle the case where op0 is not a MEM + and has a mode that doesn't have corresponding integral type. + + PR target/90867 + * config/i386/i386.c (ix86_valid_target_attribute_tree): Don't + clear opts->x_ix86_isa_flags{,2} here... + (ix86_valid_target_attribute_inner_p): ... but here when seeing + arch=. Also clear opts->x_ix86_isa_flags{,2}_explicit. + + PR c/90898 + * tree-ssa-ccp.c (insert_clobber_before_stack_restore): Remove + assertion. + (insert_clobbers_for_var): Fix a typo in function comment. + + 2019-11-19 Jakub Jelinek + + PR middle-end/91450 + * internal-fn.c (expand_mul_overflow): For s1 * s2 -> ur, if one + operand is negative and one non-negative, compare the non-negative + one against 0 rather than comparing s1 & s2 against 0. Otherwise, + don't compare (s1 & s2) == 0, but compare separately both s1 == 0 + and s2 == 0, unless one of them is known to be negative. Remove + tem2 variable, use tem where tem2 has been used before. + + 2019-11-08 Jakub Jelinek + + PR c++/92384 + * function.c (assign_parm_setup_block, assign_parm_setup_stack): Don't + copy TYPE_EMPTY_P arguments from data->entry_parm to data->stack_parm + slot. + (assign_parms): For TREE_ADDRESSABLE parms with TYPE_EMPTY_P type + force creation of a unique data.stack_parm slot. + + 2019-10-17 Jakub Jelinek + + PR tree-optimization/92056 + * tree-object-size.c (cond_expr_object_size): Return early if then_ + processing resulted in unknown size. + + 2019-09-07 Jakub Jelinek + + PR tree-optimization/91665 + * tree-vect-loop.c (vectorizable_reduction): Punt if base has type + incompatible with the type of PHI result. + + 2019-09-06 Jakub Jelinek + + * function.c (assign_parm_find_data_types): Use RECORD_OR_UNION_TYPE_P + before testing TYPE_TRANSPARENT_AGGR. + * calls.c (initialize_argument_information, load_register_parameters): + Likewise. + + 2019-09-05 Jakub Jelinek + + PR middle-end/91001 + PR middle-end/91105 + PR middle-end/91106 + * calls.c (load_register_parameters): For TYPE_TRANSPARENT_AGGR + types, use type of their first field instead of type of + args[i].tree_value. + + 2019-09-01 Jakub Jelinek + + PR middle-end/91623 + * optabs.c (expand_vec_cond_expr): If op0 is a VECTOR_CST and only + EQ_EXPR/NE_EXPR is supported, verify that op0 only contains + zeros or negative elements and use NE_EXPR instead of LT_EXPR against + zero vector. + + 2019-11-20 Peter Bergner + + Backport from mainline + 2019-11-07 Peter Bergner + + PR other/92090 + * config/rs6000/predicates.md (input_operand): Allow MODE_PARTIAL_INT + modes for integer constants. + + 2019-11-19 Eric Botcazou + + * doc/invoke.texi (-gno-internal-reset-location-views): Fix typo. + + 2019-11-14 Martin Liska + + Backport from mainline + 2019-11-14 Martin Liska + + PR target/92389 + * config/i386/i386.h: Add PTA_AVX512VPOPCNTDQ to + PTA_ICELAKE_CLIENT which is later interited by + PTA_ICELAKE_SERVER and PTA_TIGERLAKE. + + 2019-11-13 Dragan Mladjenovic + + Backport from mainline + * config/mips/mips.md (rotr3): Sanitize the constant argument + instead of asserting its value. + + 2019-11-11 H.J. Lu + + Backport from trunk: + PR target/87833 + * config/i386/intelmic-mkoffload.c (prepare_target_image): Put + -fPIC and -shared the last to create offload image. + + 2019-11-11 Thomas Schwinge + + Backport from trunk: + * gimplify.c (gimplify_scan_omp_clauses): Assert 'offset2' instead + of 'offset'. + + Backport from trunk: + * Makefile.in (LANG_CONFIGUREFRAGS): Define. + (config.status): Use/depend on it. + * configure.ac (all_lang_configurefrags): Track, 'AC_SUBST'. + * configure: Regenerate. + + 2019-11-09 John David Anglin + + Backport from mainline + 2019-11-07 John David Anglin + + * config/pa/pa.md (memory_barrier): Revise to use ldcw barriers. + Enhance comment. + (memory_barrier_coherent, memory_barrier_64, memory_barrier_32): New + insn patterns using ldcw instruction. + (memory_barrier): Remove insn pattern using sync instruction. + * config/pa/pa.opt (coherent-ldcw): New option. + (ordered): New option. + + 2019-11-08 Eric Botcazou + + PR target/92095 + * config/sparc/sparc-protos.h (output_load_pcrel_sym): Declare. + * config/sparc/sparc.c (sparc_cannot_force_const_mem): Revert latest + change. + (got_helper_needed): New static variable. + (output_load_pcrel_sym): New function. + (get_pc_thunk_name): Remove after inlining... + (load_got_register): ...here. Rework the initialization of the GOT + register and of the GOT helper. + (save_local_or_in_reg_p): Test the REGNO of the GOT register. + (sparc_file_end): Test got_helper_needed to decide whether the GOT + helper must be emitted. Use output_asm_insn instead of fprintf. + (sparc_init_pic_reg): In PIC mode, always initialize the PIC register + if optimization is enabled. + * config/sparc/sparc.md (load_pcrel_sym): Emit the assembly + by calling output_load_pcrel_sym. + + 2019-11-06 John David Anglin + + Backport from mainline + 2018-09-19 John David Anglin + + PR rtl-optimization/85458 + * config/pa/pa.c (pa_adjust_priority): Delete. + (TARGET_SCHED_ADJUST_PRIORITY): Delete define. + + 2019-11-05 Segher Boessenkool + + Backport from trunk + 2019-10-24 Segher Boessenkool + + * config/rs6000/altivec.md (altivec_vavgu): Rename to... + (uavg3_ceil): ... This. + (altivec_vavgs): Rename to... + (avg3_ceil): ... This. + * config/rs6000/rs6000-builtin.def (VAVGUB, VAVGSB, VAVGUH, VAVGSH, + VAVGUW, VAVGSW): Adjust. + + 2019-11-05 Segher Boessenkool + + Backport from trunk + 2019-10-26 Segher Boessenkool + + PR target/91289 + * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Don't add an + immediate to r0; use r11 instead. Save and restore r11 to r0 around + this. + + 2019-11-04 John David Anglin + + Backport from mainline + 2019-10-03 John David Anglin + + * config/pa/pa.h (MAX_PCREL17F_OFFSET): Adjust. + + 2019-11-04 John David Anglin + + Backport from mainline + 2019-10-03 John David Anglin + + * config/pa/pa.c (pa_output_call): Remove 64-bit sibcall sequence. + (pa_attr_length_call): Adjust length for 64-bit plabel sequence. + + 2019-11-04 John David Anglin + + Backport from mainline + 2019-10-12 John David Anglin + + * config/pa/pa.c (pa_output_call): Load descriptor address to register + %r22. Load function address before global pointer. + (pa_attr_length_indirect_call): Adjust length of inline versions of + $$dyncall. + (pa_output_indirect_call): Remove fast inline version of $$dyncall + before normal cases. Update inline $$dyncall sequences to preserve + function descriptor address in register %r22. + (TRAMPOLINE_CODE_SIZE): Adjust. + (pa_asm_trampoline_template): Revise 32-bit trampoline. Don't assume + register %r22 contains trampoline address. + (pa_trampoline_init): Adjust offsets. + (pa_trampoline_adjust_address): Likewise. + * config/pa/pa.h (TRAMPOLINE_SIZE): Adjust 32-bit size. + + 2019-10-17 John David Anglin + + * config/pa/pa.c (pa_output_indirect_call): Fix typos in last change. + + 2019-11-1 Delia Burduv + + Backport from trunk + 2019-02-20 Andre Vieira + + PR target/86487 + * lra-constraints.c(uses_hard_regs_p): Fix handling of + paradoxical SUBREGS. + + 2019-10-31 Iain Sandoe + + Backport from mainline + 2019-10-13 Iain Sandoe + + * config/darwin.c (machopic_indirection_name): Rework the + function to emit linker-visible symbols only for indirections + in the data section. Clean up the code and update comments. + + 2019-10-31 Iain Sandoe + + Backport from mainline + 2019-10-09 Iain Sandoe + + * config/darwin.c (darwin_override_options): Make the check for + Objective-C ABI version more specific for 64bit code. + + Backport from mainline + 2019-10-06 Iain Sandoe + + * config/darwin.c (darwin_override_options): Adjust objective-c + ABI version error messages to avoid punctuation and contracted + negations. + + 2019-10-31 Iain Sandoe + + Backport from mainline + 2019-07-03 Iain Sandoe + + * config/darwin.h (REAL_LIBGCC_SPEC): Adjust for earlier Darwin. + (STARTFILE_SPEC): Split crt3 into a separate spec. + (DARWIN_EXTRA_SPECS): Add crt2 and crt3 spec. + (DARWIN_CRT2_SPEC): New. + (DARWIN_CRT3_SPEC): New. + (MIN_LD64_OMIT_STUBS): Revise to 62.1. + * config/rs6000/darwin.h (DARWIN_CRT2_SPEC): Revise conditions. + (DARWIN_CRT3_SPEC): New. + + 2019-10-31 Iain Sandoe + + Backport from mainline + 2019-06-27 Iain Sandoe + + * config/rs6000/darwin.h (ENDFILE_SPEC): Correct whitespace in the + spec. + + Backport from mainline + 2019-06-25 Iain Sandoe + + * config/rs6000/darwin.h (ENDFILE_SPEC): New. + + 2019-10-31 Iain Sandoe + + Backport from mainline + 2019-06-18 Iain Sandoe + + * config/darwin.c (darwin_emit_unwind_label): New default to false. + (darwin_override_options): Set darwin_emit_unwind_label as needed. + + 2019-10-31 Iain Sandoe + + Backport from mainline + 2019-08-13 Iain Sandoe + + * config/darwin.c (machopic_indirect_call_target): Rename symbol stub + flag. + (darwin_override_options): Likewise. + * config/darwin.h: Likewise. + * config/darwin.opt: Likewise. + * config/i386/i386.c (output_pic_addr_const): Likewise. + * config/rs6000/darwin.h: Likewise. + * config/rs6000/rs6000.c (rs6000_call_darwin_1): Likewise. + * config/i386/darwin.h (TARGET_MACHO_PICSYM_STUBS): Rename to ... + ... this TARGET_MACHO_SYMBOL_STUBS. + (FUNCTION_PROFILER):Likewise. + * config/i386/i386.h: Likewise. + + Backport from mainline + 2019-06-16 Iain Sandoe + + * config/darwin.c (machopic_indirect_call_target): Use renamed + darwin_picsymbol_stubs to decide on output. + (darwin_override_options): Handle darwin_picsymbol_stubs. + * config/darwin.h (MIN_LD64_OMIT_STUBS): New. + (LD64_VERSION): Revise default. + * config/darwin.opt: (mpic-symbol-stubs): New option. + (darwin_picsymbol_stubs): New variable. + * config/i386/darwin.h (TARGET_MACHO_BRANCH_ISLANDS): + rename to TARGET_MACHO_PICSYM_STUBS. + * config/i386/i386.c (output_pic_addr_const): Likewise. + * config/i386/i386.h Likewise. + * config/rs6000/darwin.h: Likewise. + * config/rs6000/rs6000.c (rs6000_call_darwin_1): Use renamed + darwin_picsymbol_stubs. + + 2019-10-31 Iain Sandoe + + Backport from mainline + 2019-06-27 Iain Sandoe + + * config/rs6000/rs6000.c (darwin_rs6000_override_options): Honour + user-specified float mode choice for kernel mode code. + + 2019-10-31 Iain Sandoe + + Backport from mainline + 2019-06-23 Iain Sandoe + + * config/rs6000/darwin.h: Handle GCC target pragma. + + 2019-10-30 Dragan Mladjenovic + + Backport from mainline + 2019-07-09 Dragan Mladjenovic + + * cfgcleanup.c (old_insns_match_p): Check if used hard regs set is equal + for both call instructions. + + 2019-10-28 Iain Sandoe + + Backport from mainline + 2019-10-17 Iain Sandoe + + PR target/65342 + * config/rs6000/darwin.md (movdi_low, movsi_low_st): Delete. + (movdi_low_st): Delete. + * config/rs6000/rs6000.c + (darwin_rs6000_legitimate_lo_sum_const_p): New. + (mem_operand_gpr): Validate Mach-O LO_SUM cases separately. + * config/rs6000/rs6000.md (movsi_low): Delete. + + 2019-10-28 Iain Sandoe + + Backport from mainline + 2019-10-12 Iain Sandoe + + PR target/67183 + * config/darwin.c (machopic_indirection): New field to flag + non-lazy-symbol-pointers in the data section. + (machopic_indirection_name): Compute if an indirection should + appear in the data section. + (machopic_output_data_section_indirection): New callback split + from machopic_output_indirection. + (machopic_output_stub_indirection): Likewise. + (machopic_output_indirection): Retain the code for non-lazy + symbol pointers in their regular section. + (machopic_finish): Use the new callbacks to order the indirection + output. + + 2019-10-28 Iain Sandoe + + Backport from mainline + 2019-10-12 Iain Sandoe + + * config/darwin-protos.h (machopic_finish): Delete. + * config/darwin.c (machopic_finish): Make static. + + Backport from mainline + 2019-10-09 Iain Sandoe + + * config/darwin.c (machopic_indirect_data_reference): Set flag to + indicate that the new symbol is an indirection. + (machopic_indirect_call_target): Likewise. + * config/darwin.h (MACHO_SYMBOL_FLAG_INDIRECTION): New. + (MACHO_SYMBOL_INDIRECTION_P): New. + (MACHO_SYMBOL_FLAG_STATIC): Adjust bit number. + + Backport from mainline + 2019-10-08 Iain Sandoe + + * config/darwin.c (machopic_indirect_data_reference): Check for + required indirections before making direct access to defined + values. + (machopic_output_indirection): Place the indirected pointes for + required indirections into the non-lazy symbol pointers section. + (darwin_encode_section_info): + * config/darwin.h (MACHO_SYMBOL_FLAG_MUST_INDIRECT): New. + (MACHO_SYMBOL_MUST_INDIRECT_P): New. + + Backport from mainline + 2019-10-07 Iain Sandoe + + * config/darwin.c (machopic_output_indirection): Don't put + hidden symbol indirections into the .data section, use the + non-lazy symbol pointers section as normal. + (darwin_encode_section_info): Record if a symbol is hidden. + * config/darwin.h (MACHO_SYMBOL_FLAG_HIDDEN_VIS): New. + (MACHO_SYMBOL_HIDDEN_VIS_P): New. + + Backport from mainline + 2019-10-07 Iain Sandoe + + * config/darwin.c (machopic_symbol_defined_p): Use symbol flag + predicates instead of accessing bits directly. + (machopic_indirect_call_target): Likewise. + (machopic_output_indirection): Likewise. + (darwin_encode_section_info): Improve description. Use renamed + symbol flags. Use predicate macros for variables and functions. + * config/darwin.h: + Rename MACHO_SYMBOL_VARIABLE to MACHO_SYMBOL_FLAG_VARIABLE. + Rename MACHO_SYMBOL_DEFINED to MACHO_SYMBOL_FLAG_DEFINED. + Rename MACHO_SYMBOL_STATIC to MACHO_SYMBOL_FLAG_STATIC. + (MACHO_SYMBOL_VARIABLE_P): New. + (MACHO_SYMBOL_DEFINED_P):New. + (MACHO_SYMBOL_STATIC_P): New. + * config/i386/darwin.h (MACHO_SYMBOL_FLAG_VARIABLE): Delete. + (SYMBOL_FLAG_SUBT_DEP): New. + * config/rs6000/darwin.h (SYMBOL_FLAG_SUBT_DEP): New. + + 2019-10-28 Iain Sandoe + + Backport from mainline + 2019-10-05 Iain Sandoe + + PR target/59888 + * config/darwin.c (darwin_rodata_section): Add relocation flag, + choose const_data section for constants with relocations. + (machopic_select_section): Pass relocation flag to + darwin_rodata_section (). + + 2019-10-28 Iain Sandoe + + Backport from mainline + 2019-09-21 Iain Sandoe + + * config/darwin.c (machopic_legitimize_pic_address): Check + for lra, rather than reload. + + 2019-10-28 Peter Bergner + Jiufu Guo + + PR target/70010 + * config/rs6000/rs6000.c (rs6000_can_inline_p): Prohibit inlining if + the callee explicitly disables some isa_flags the caller is using. + + 2019-10-25 Iain Sandoe + + * config/rs6000/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN):Guard + against out of range max skip or log values. + + 2019-10-25 Richard Earnshaw + + Backport from mainline + 2019-05-08 Mihail Ionescu + Richard Earnshaw + PR target/88167 + * config/arm/arm.c (thumb1_prologue_unused_call_clobbered_lo_regs): New + function. + (thumb1_epilogue_unused_call_clobbered_lo_regs): New function. + (thumb1_compute_save_core_reg_mask): Don't force a spare work + register if both the epilogue and prologue can use call-clobbered + regs. + (thumb1_unexpanded_epilogue): Use + thumb1_epilogue_unused_call_clobbered_lo_regs. Reverse the logic for + picking temporaries for restoring high regs to match that of the + prologue where possible. + (thumb1_expand_prologue): Add any usable call-clobbered low registers to + the list of work registers. Detect if the return address is still live + at the end of the prologue and avoid using it for a work register if so. + If the return address is not live, add LR to the list of pushable regs + after the first pass. + + 2019-10-23 Peter Bergner + + Backport from mainline + 2019-10-08 Tulio Magno Quites Machado Filho + + * config.gcc: Move -L usage from LINK_OS_EXTRA_SPEC32 and + LINK_OS_EXTRA_SPEC64 to MD_STARTFILE_PREFIX and + MD_STARTFILE_PREFIX_1 when using --with-advance-toolchain. + + 2019-10-23 Richard Biener + + Backport from mainline + 2019-10-17 Richard Biener + + PR debug/91887 + * dwarf2out.c (gen_formal_parameter_die): Also try to match + context_die against a DW_TAG_GNU_formal_parameter_pack parent. + + 2019-09-19 Richard Biener + + PR tree-optimization/91812 + * tree-ssa-phiprop.c (propagate_with_phi): Do not replace + volatile loads. + + 2019-09-17 Richard Biener + + PR debug/91772 + * dwarf2out.c (dwarf2out_late_global_decl): If early dwarf + was missing generate locations only once. + + 2019-10-23 Eric Botcazou + + PR tree-optimization/92131 + * tree-vrp.c (extract_range_from_plus_minus_expr): If the resulting + range would be symbolic, drop to varying for any explicit overflow + in the constant part or if neither range is a singleton. + + 2019-10-20 Iain Sandoe + + Backport from mainline + 2019-10-03 Iain Sandoe + + PR target/87243 + * config/darwin-driver.c (maybe_get_sysroot_from_sdkroot): New. + (darwin_driver_init): Use the sysroot provided by SDKROOT when that + is available and the user has not set one on the command line. + + 2019-10-20 Iain Sandoe + + Backport from mainline + 2019-07-03 Iain Sandoe + + * config/darwin.h (DRIVER_SELF_SPECS): Remove the linker cases. + (RDYNAMIC): Rename to, DARWIN_RDYNAMIC. + (DARWIN_PIE_SPEC, DARWIN_NOPIE_SPEC): Adjust to remove the Xlinker + clauses. + (LINK_COMMAND_SPEC_A): Add DARWIN_RDYNAMIC, DARWIN_PIE_SPEC and + DARWIN_NOPIE_SPEC. + + Backport from mainline + 2019-06-19 Iain Sandoe + + * config/darwin.h (DRIVER_SELF_SPECS): Add RDYNAMIC, DARWIN_PIE_SPEC + and DARWIN_NOPIE_SPEC. + (RDYNAMIC): New, modified from DARWIN_EXPORT_DYNAMIC. + (DARWIN_PIE_SPEC): Collate from darwin.h and darwin9.h. + (DARWIN_NOPIE_SPEC): Collate from darwin10.h. + (DARWIN_NOCOMPACT_UNWIND): New from darwin10.h + (DARWIN_EXPORT_DYNAMIC): Delete. + * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Move no_compact_unwind + and pie options processing to darwin.h. + * config/darwin9.h (DARWIN_PIE_SPEC): Move pie processing to darwin.h + + 2019-10-18 Georg-Johann Lay + + Backport from 2019-10-18 trunk r277143. + + PR target/86040 + * config/avr/avr.c (avr_out_lpm): Do not shortcut-return. + + 2019-10-17 Segher Boessenkool + + Backport from trunk + 2019-03-15 Segher Boessenkool + + PR rtl-optimization/89721 + * lra-constraints (invariant_p): Return false if side_effects_p holds. + + 2019-10-17 Richard Earnshaw + + Backport from mainline + 2019-05-03 Richard Earnshaw + + PR target/89400 + * config/arm/arm.md (unaligned_loadsi): Add variant for thumb1. + Restrict 'all' variant to 32-bit configurations. + (unaligned_loadhiu): Likewise. + (unaligned_storehi): Likewise. + (unaligned_storesi): Likewise. + (unaligned_loadhis): Disable when compiling for thumb1. + + 2019-10-14 Will Schmidt + + Backport from trunk + 2019-09-26 Will Schmidt + + * config/rs6000/rs6000-builtin.def: (LVSL, LVSR, LVEBX, LVEHX, + LVEWX, LVXL, LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI, + LVXL_V16QI, LVX, LVX_V1TI, LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI, + LVX_V8HI, LVX_V16QI, LVLX, LVLXL, LVRX, LVRXL, LXSDX, LXVD2X_V1TI, + LXVD2X_V2DF, LXVD2X_V2DI, LXVDSX, LXVW4X_V4SF, LXVW4X_V4SI, + LXVW4X_V8HI, LXVW4X_V16QI, LD_ELEMREV_V1TI, LD_ELEMREV_V2DF, + LD_ELEMREV_V2DI, LD_ELEMREV_V4SF, LD_ELEMREV_V4SI, LD_ELEMREV_V8HI, + LD_ELEMREV_V16QI): Use the PURE attribute. + + 2019-10-10 Uroš Bizjak + + PR target/92022 + * config/alpha/alpha.c (alpha_handle_trap_shadows): Skip DEBUG_INSN. + + 2019-10-10 Oleg Endo + + Backport from mainline + 2019-10-10 Oleg Endo + + PR target/88630 + * config/sh/sh.h (TARGET_FPU_SH4_300): New macro. + * config/sh/sh.c (sh_option_override): Enable fsca and fsrra insns + also for TARGET_FPU_SH4_300. + (sh_emit_mode_set): Check for TARGET_FPU_SH4_300 instead of + TARGET_SH4_300. + * config/sh/sh.md (toggle_pr): Add TARGET_FPU_SH4_300 condition. + (negsf2): Expand to either negsf2_fpscr or negsf2_no_fpscr. + (*negsf2_i): Split into ... + (negsf2_fpscr, negsf2_no_fpscr): ... these new patterns. + (abssf2): Expand to either abssf2_fpsc or abssf2_no_fpsc. + (**abssf2_i): Split into ... + (abssf2_fpscr, abssf2_no_fpscr): ... these new patterns. + (negdf2): Expand to either negdf2_fpscr or negdf2_no_fpscr. + (*negdf2_i): Split into ... + (negdf2_fpscr, negdf2_no_fpscr): ... these new patterns. + (absdf2): Expand to either absdf2_fpscr or absdf2_no_fpsc. + (**abssf2_i): Split into ... + (absdf2_fpscr, absdf2_no_fpscr): ... these new patterns. + + 2019-10-07 Bill Schmidt + + Backport from mainline + 2019-10-01 Bill Schmidt + + PR target/91275 + * config/rs6000/rs6000-p8swap.c (rtx_is_swappable_p): Don't swap + vpmsumd. + + 2019-10-01 Oleg Endo + + Backport from mainline + + 2019-10-01 Oleg Endo + + PR target/88562 + * config/sh/sh.c (sh_extending_set_of_reg::use_as_extended_reg): Use + sh_check_add_incdec_notes to preserve REG_INC notes when replacing + a memory access insn. + + 2019-10-01 Kyrylo Tkachov + + Backport from mainline + 2019-09-24 Kyrylo Tkachov + + * config/aarch64/aarch64.md (mov): Don't call + aarch64_split_dimode_const_store on volatile MEM. + + 2019-10-01 Eric Botcazou + + PR target/91854 + Backport from mainline + 2019-09-20 Eric Botcazou + + PR target/91269 + * config/sparc/sparc.h (HARD_REGNO_CALLER_SAVE_MODE): Define. + + 2019-09-28 Oleg Endo + + Backport from mainline + 2019-09-28 Oleg Endo + + PR target/80672 + * config/sh/sh.c (parse_validate_atomic_model_option): Use + std::string::compare instead of std::string::find. + + 2019-09-28 Oleg Endo + + Backport from mainline + 2018-07-15 Jeff Law + + PR target/85993 + * config/sh/sh.c (output_mi_thunk): Remove dead conditional + block. + + 2019-09-26 Iain Sandoe + + Backport from mainline + 2019-06-16 Iain Sandoe + + * config/darwin.opt (prebind, noprebind, seglinkedit, + noseglinkedit): Add RejectNegative. + + Backport from mainline + 2019-06-14 Iain Sandoe + + * config/darwin.opt: Add RejectNegative where needed, reorder + and add minimal functional descriptions. + + 2019-09-25 Kyrylo Tkachov + + Backport from mainline + 2019-08-22 Kyrylo Tkachov + + * config/arm/arm_acle.h: Use arch=armv8-a+crc+simd pragma for CRC32 + intrinsics if __ARM_FP. + Use __ARM_FEATURE_CRC32 ifdef guard. + + 2019-09-23 Max Filippov + + Backport from mainline + 2019-06-18 Max Filippov + + * config/xtensa/xtensa.c (xtensa_expand_prologue): Add stack + pointer adjustment for the case of no callee-saved registers and + stack frame bigger than 128 bytes. + + 2019-09-20 John David Anglin + + * config/pa/pa.c (pa_trampoline_init): Remove spurious extended + character. + + 2019-09-20 Andreas Krebbel + + Backport from mainline + 2019-06-06 Andreas Krebbel + + PR rtl-optimization/88751 + * ira.c (ira): Use the number of the actually referenced registers + when calculating the threshold. + + 2019-09-11 Eric Botcazou + + PR rtl-optimization/89795 + * rtlanal.c (nonzero_bits1) : Do not propagate results from + inner REGs to paradoxical SUBREGs if WORD_REGISTER_OPERATIONS is set. + + 2019-09-09 Jakub Jelinek + + PR target/87853 + * config/i386/emmintrin.h (_mm_cmpeq_epi8): Use casts to __v16qi + instead of __v16qs. + + PR target/91704 + * config/i386/avxintrin.h (__v32qs): New typedef. + * config/i386/avx2intrin.h (_mm256_cmpgt_epi8): Use casts to __v32qs + instead of __v32qi. + + 2019-09-04 Wilco Dijkstra + + Backport from mainline + 2019-08-13 Wilco Dijkstra + + PR target/81800 + * gcc/config/aarch64/aarch64.md (lrint): Disable lrint pattern if GPF + operand is larger than a long int. + + 2019-09-03 Iain Sandoe + + Backport from mainline + 2019-08-23 Iain Sandoe + + PR pch/61250 + * ggc-page.c (ggc_pch_read): Read the ggc_pch_ondisk structure + and issue any diagnostics needed before collecting the pre-PCH + state. + + 2019-09-01 Eric Botcazou + + PR target/91472 + * config/sparc/sparc.c (sparc_cannot_force_const_mem): Return true + during LRA/reload in PIC mode if the PIC register hasn't been used yet. + (sparc_pic_register_p): Test reload_in_progress for consistency's sake. + + 2019-08-30 Richard Biener + + Backport from mainline + 2019-06-21 Richard Biener + + PR tree-optimization/90930 + * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Set visited + flag on new stmts to avoid re-processing them. + + 2019-05-27 Richard Biener + + PR tree-optimization/90637 + * tree-ssa-sink.c (statement_sink_location): Honor the + computed sink location for single-uses. + + 2019-08-30 Richard Biener + + Backport from mainline + 2019-07-08 Richard Biener + + PR tree-optimization/91108 + * tree-ssa-sccvn.c: Include builtins.h. + (vn_reference_lookup_3): Use only alignment constraints to + verify same-valued store disambiguation. + + 2019-08-30 Segher Boessenkool + + Backport from trunk + 2019-08-22 Segher Boessenkool + + PR target/91481 + * config/rs6000/rs6000.md (unspec): Delete UNSPEC_DARN, UNSPEC_DARN_32, + and UNSPEC_DARN_RAW. + (unspecv): New enumerator values UNSPECV_DARN, UNSPECV_DARN_32, and + UNSPECV_DARN_RAW. + (darn_32): Use an unspec_volatile, and UNSPECV_DARN_32. + (darn_raw): Use an unspec_volatile, and UNSPECV_DARN_RAW. + (darn): Use an unspec_volatile, and UNSPECV_DARN. + + 2019-08-30 Segher Boessenkool + + Backport from trunk + 2019-08-22 Segher Boessenkool + + * config/rs6000/altivec.md (unspec): Delete UNSPEC_DARN, UNSPEC_DARN_32, + UNSPEC_DARN_RAW, UNSPEC_CMPRB, UNSPEC_CMPRB2, UNSPEC_CMPEQB; move to... + * config/rs6000/rs6000.md (unspec): ... here. + * config/rs6000/altivec.md (darn_32, darn_raw, darn, cmprb, + *cmprb_internal, setb_signed, setb_unsigned, cmprb2, *cmprb2_internal, + cmpeqb, *cmpeqb_internal): Delete, move to... + * config/rs6000/rs6000.md (darn_32, darn_raw, darn, cmprb, + *cmprb_internal, setb_signed, setb_unsigned, cmprb2, *cmprb2_internal, + cmpeqb, *cmpeqb_internal): ... here. + + 2019-08-30 Richard Biener + + Backport from mainline + 2019-01-07 Richard Sandiford + + PR middle-end/88567 + * tree-vect-loop.c (get_initial_defs_for_reduction): Pass the + output vector directly to duplicate_and_interleave instead of + going through a temporary. Postpone insertion of ctor_seq to + the end of the loop. + + 2018-12-04 Richard Biener + + PR tree-optimization/88315 + * tree-vect-loop.c (get_initial_defs_for_reduction): Simplify + and fix initialization vector for SAD and DOT_PROD SLP reductions. + + 2019-08-30 Richard Biener + + Backport from mainline + 2019-06-18 Richard Biener + + PR debug/90900 + * cfgexpand.c (expand_debug_expr): Treat NOTE_P DECL_RTL + as if optimized away. + + 2019-04-29 Richard Biener + + PR tree-optimization/90278 + * tree-ssa-forwprop.c (pass_forwprop::execute): Transfer/clean + EH on comparison simplification. + + 2019-04-25 Richard Biener + + PR middle-end/90194 + * match.pd: Add pattern to simplify view-conversion of an + empty constructor. + + 2019-08-30 Richard Biener + + Backport from mainline + 2019-08-12 Richard Biener + + PR lto/91375 + * tree.c (free_lang_data_in_type): Do not free TYPE_BINFO dependent on + flag_devirtualize. + + 2019-07-31 Richard Biener + + PR tree-optimization/91293 + * tree-vect-slp.c (vect_build_slp_tree_2): Do not swap operands + of reduction stmts. + + 2019-07-31 Richard Biener + + PR tree-optimization/91280 + * tree-ssa-structalias.c (get_constraint_for_component_ref): + Decompose MEM_REF manually for offset handling. + + 2019-07-19 Richard Biener + + PR tree-optimization/91200 + * tree-ssa-phiopt.c (cond_store_replacement): Check we have + no PHI nodes in middle-bb. + + 2019-07-15 Richard Biener + + PR middle-end/91162 + * tree-cfg.c (move_block_to_fn): When releasing a virtual PHI + node make sure to replace all uses with something valid. + + 2019-07-11 Richard Biener + + PR middle-end/91131 + * gimplify.c (gimplify_compound_literal_expr): Force a temporary + when the object is volatile and we have not cleared it even though + there are no nonzero elements. + + 2019-07-10 Richard Biener + + PR tree-optimization/91126 + * tree-ssa-sccvn.c (vn_reference_lookup_3): Adjust + native encoding offset for BYTES_BIG_ENDIAN. + + 2019-08-30 Richard Biener + + * lto-streamer.h (LTO_minor_version): Bump. + + Backport from mainline + 2019-05-06 Richard Biener + + PR tree-optimization/90328 + * tree-data-ref.h (dr_may_alias_p): Pass in the actual loop nest. + * tree-data-ref.c (dr_may_alias_p): Check whether the clique + is valid in the loop nest before using it. + (initialize_data_dependence_relation): Adjust. + * graphite-scop-detection.c (build_alias_set): Pass the SCOP enclosing + loop as loop-nest to dr_may_alias_p. + + 2019-03-08 Richard Biener + + PR middle-end/89578 + * cfgloop.h (struct loop): Add owned_clique field. + * cfgloopmanip.c (copy_loop_info): Copy it. + * tree-cfg.c (gimple_duplicate_bb): Do not remap owned_clique + cliques. + * tree-inline.c (copy_loops): Remap owned_clique. + * lto-streamer-in.c (input_cfg): Stream owned_clique. + * lto-streamer-out.c (output_cfg): Likewise. + + 2019-02-22 Richard Biener + + PR tree-optimization/87609 + * tree-cfg.c (gimple_duplicate_bb): Only remap inlined cliques. + + 2019-02-22 Richard Biener + + PR middle-end/87609 + * cfghooks.h (dependence_hash): New typedef. + (struct copy_bb_data): New type. + (cfg_hooks::duplicate_block): Adjust to take a copy_bb_data argument. + (duplicate_block): Likewise. + * cfghooks.c (duplicate_block): Pass down copy_bb_data. + (copy_bbs): Create and pass down copy_bb_data. + * cfgrtl.c (cfg_layout_duplicate_bb): Adjust. + (rtl_duplicate_bb): Likewise. + * tree-cfg.c (gimple_duplicate_bb): If the copy_bb_data arg is not NULL + remap dependence info. + + 2019-02-22 Richard Biener + + PR tree-optimization/87609 + * tree-core.h (tree_base): Document special clique values. + * tree-inline.c (remap_dependence_clique): Do not use the + special clique value of one. + (maybe_set_dependence_info): Use clique one. + (clear_dependence_clique): New callback. + (compute_dependence_clique): Clear clique one from all refs + before assigning it (again). + + 2019-08-30 Bin Cheng + + Backport from mainline + 2019-07-18 Bin Cheng + + PR tree-optimization/91137 + * tree-ssa-loop-ivopts.c (struct ivopts_data): New field. + (tree_ssa_iv_optimize_init, alloc_iv, tree_ssa_iv_optimize_finalize): + Init, use and fini the above new field. + (determine_base_object_1): New function. + (determine_base_object): Reimplement using walk_tree. + + 2019-08-30 Richard Biener + + Backport from mainline + 2019-04-09 Richard Sandiford + + * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Always + use gimple_expr_type for load and store calls. Skip over the + condition argument in a conditional internal function. + Protect use of TREE_INT_CST_LOW. + + 2019-04-08 Richard Biener + + PR tree-optimization/90006 + * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Handle + calls like lrint. + + 2019-04-01 Bin Cheng + + PR tree-optimization/89725 + * tree-chrec.c (chrec_contains_symbols): New parameter. Handle outer + loop's chrec as invariant symbol. + * tree-chrec.h (chrec_contains_symbols): New parameter. + * tree-data-ref.c (analyze_miv_subscript): Pass new argument. + (build_classic_dist_vector_1, add_other_self_distances): Bypass access + function of loops not in DDR's loop_nest. + + 2019-03-26 Bin Cheng + + PR tree-optimization/81740 + * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): + In case of outer loop vectorization, check for backward dependence + at the inner loop if outer loop dependence is reversed. + + 2019-08-30 Richard Biener + + Backport from mainline + 2019-04-24 Richard Biener + + PR middle-end/90213 + * gimple-fold.c (fold_const_aggregate_ref_1): Do multiplication + by size and BITS_PER_UNIT on poly-wide-ints. + + 2019-04-11 Richard Biener + + PR tree-optimization/90020 + * tree-ssa-sccvn.c (vn_reference_may_trap): New function. + * tree-ssa-sccvn.h (vn_reference_may_trap): Declare. + * tree-ssa-pre.c (compute_avail): Use it to not put + possibly trapping references after a call that might not + return into EXP_GEN. + * gcse.c (compute_hash_table_work): Do not elide + marking a block containing a call if the call might not + return. + + 2019-08-29 Iain Sandoe + + Backport from mainline + 2019-07-24 Iain Sandoe + + PR bootstrap/87030 + * config/i386/darwin.h (REAL_LIBGCC_SPEC): Revert change from r273749. + + PR bootstrap/87030 + * config/i386/darwin.h (REAL_LIBGCC_SPEC): Move from here... + * config/i386/darwin32-biarch.h .. to here. + * config/i386/darwin64-biarch.h: Adjust comments. + * config/rs6000/darwin32-biarch.h: Likewise. + * config/rs6000/darwin64-biarch.h: Likewise. + * config.gcc: Missed commit from r273746 + (*-*-darwin*): Don't include CPU t-darwin here. + (i[34567]86-*-darwin*): Adjust to use biarch files. Produce + an error message if i686-darwin configuration is attempted for + Darwin >= 18. + + Backport from mainline + 2019-07-23 Iain Sandoe + + PR bootstrap/87030 + * config.gcc (*-*-darwin*): Don't include CPU t-darwin here. + (i[34567]86-*-darwin*): Adjust to use biarch files. Produce + an error message if i686-darwin configuration is attempted for + Darwin >= 18. + (x86_64-*-darwin*): Switch to single multilib for Darwin >= 18. + (powerpc-*-darwin*): Use biarch files where needed. + (powerpc64-*-darwin*): Likewise. + * config/i386/darwin.h (REAL_LIBGCC_SPEC): Move to new biarch file. + (DARWIN_ARCH_SPEC, DARWIN_SUBARCH_SPEC): Revise for default single + arch case. + * config/i386/darwin32-biarch.h: New. + * config/i386/darwin64.h: Rename. + * gcc/config/i386/darwin64-biarch.h: To this. + * config/i386/t-darwin: Rename. + * gcc/config/i386/t-darwin32-biarch: To this. + * config/i386/t-darwin64: Rename. + * gcc/config/i386/t-darwin64-biarch: To this. + * config/rs6000/darwin32-biarch.h: New. + * config/rs6000/darwin64.h: Rename. + * config/rs6000/darwin64-biarch.h: To this. + (DARWIN_ARCH_SPEC, DARWIN_SUBARCH_SPEC): Revise for default single + arch case. + * config/rs6000/t-darwin8: Rename. + * config/rs6000/t-darwin32-biarch: To this. + * config/rs6000/t-darwin64 Rename. + * config/rs6000/t-darwin64-biarch: To this. + + 2019-08-29 Jakub Jelinek + + Backported from mainline + 2019-07-30 Jakub Jelinek + + PR target/91150 + * config/i386/i386.c (expand_vec_perm_blend): Change mask type + from unsigned to unsigned HOST_WIDE_INT. For E_V64QImode cast + comparison to unsigned HOST_WIDE_INT before shifting it left. + + 2019-07-04 Jakub Jelinek + + PR middle-end/78884 + * gimplify.c (struct gimplify_omp_ctx): Add add_safelen1 member. + (gimplify_bind_expr): If seeing TREE_ADDRESSABLE VLA inside of simd + loop body, set ctx->add_safelen1 instead of making it GOVD_PRIVATE. + (gimplify_adjust_omp_clauses): Add safelen (1) clause if + ctx->add_safelen1 is set. + + PR rtl-optimization/90756 + * explow.c (promote_ssa_mode): Always use TYPE_MODE, don't bypass it + for VECTOR_TYPE_P. + + 2019-06-12 Jakub Jelinek + + PR c/90760 + * symtab.c (symtab_node::set_section): Allow being called on aliases + as long as they aren't analyzed yet. + + 2019-06-05 Jakub Jelinek + + PR debug/90733 + * var-tracking.c (vt_expand_loc_callback): Don't create raw subregs + with VOIDmode inner operands. + + 2019-04-19 Jakub Jelinek + + PR middle-end/90139 + * tree-outof-ssa.c (get_temp_reg): If reg_mode is BLKmode, return + assign_temp instead of gen_reg_rtx. + + 2019-08-27 Iain Sandoe + + Backport from mainline + 2019-07-07 Iain Sandoe + + * config/darwin.c (darwin_override_options): Make a final check on PIC + options. + + 2019-08-27 Iain Sandoe + + Backport from mainline + 2019-07-07 Iain Sandoe + * config/darwin.c (darwin_override_options): Don't jam symbol stubs + on for kernel code. + + 2019-08-27 Iain Sandoe + + Backport from mainline + 2019-06-27 Iain Sandoe + + * config/rs6000/rs6000.c (darwin_rs6000_override_options): Do not + use longcall for 64b code. + + 2019-08-27 Iain Sandoe + + Backport from mainline + 2019-08-18 Iain Sandoe + + * config/rs6000/darwin.h (TARGET_OS_CPP_BUILTINS): Add asserts + for cpu and machine. Factor 64/32b builtins. + + Backport from mainline + 2019-06-23 Iain Sandoe + + * config/rs6000/darwin.h: (__PPC__, __PPC64__): New. + + 2019-08-25 Iain Sandoe + + Backport from mainline + 2019-06-19 Iain Sandoe + + * config/darwin-driver.c (darwin_driver_init): Fix off-by-one errors + in computing the number of options to be moved. + + Backport from mainline + 2019-06-13 Iain Sandoe + + * config/darwin-driver.c (validate_macosx_version_min): New. + (darwin_default_min_version): Cleanup and validate supplied version. + (darwin_driver_init): Likewise and push cleaned version into opts. + + 2019-08-25 Uroš Bizjak + + PR target/91533 + Backport from mainline + 2019-06-30 Uroš Bizjak + + * config/i386/sse.md (ssse3_abs2): Rename from abs2. + * config/i386/i386-builtin.def (__builtin_ia32_pabsb): + Use CODE_FOR_ssse3_absv8qi2. + (__builtin_ia32_pabsw): Use CODE_FOR_ssse3_absv4hi2. + (__builtin_ia32_pabsd): Use CODE_FOR_ssse3_absv2si2. + + 2019-08-23 Mihailo Stojanovic + + Backport from mainline + 2019-08-23 Mihailo Stojanovic + + * config/mips/mips.md (mips_get_fcsr, *mips_get_fcsr): Use SI + machine mode for unspec_volatile operand. + + 2019-08-22 Iain Sandoe + + Backport from mainline + 2018-12-23 Iain Sandoe + + * config/i386/darwin.h (TARGET_ASM_OUTPUT_IDENT): New. + + 2019-08-22 Iain Sandoe + + Backport from mainline + 2019-05-31 Iain Sandoe + + * config/i386/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): New. + + 2019-08-22 Iain Sandoe + + Backport from mainline + 2019-05-18 Iain Sandoe + + * config/darwin-c.c (darwin_register_objc_includes): Do not + prepend the sysroot when building gnu-runtime header search + paths. + + 2019-08-22 Iain Sandoe + + Backport from mainline + 2019-05-18 Iain Sandoe + + * config/darwin.c (darwin_file_end): Use switch_to_section () + instead of direct output of the asm. + + 2019-08-20 Eric Botcazou + + PR rtl-optimization/91347 + * dse.c (scan_insn): Call add_wild_read for non-const/memset tail calls + before reload if HARD_FRAME_POINTER_IS_ARG_POINTER. + + 2019-08-16 Iain Sandoe + + Backport from mainline + 2019-04-21 Iain Sandoe + + * config/rs6000/rs6000.md (group_end_nop): Emit insn register + names using operand format, rather than hard-wired. + (speculation_barrier): Likewise. + + 2019-08-14 Iain Sandoe + + Backport from mainline + 2018-08-22 Iain Sandoe + + * config/darwin.h (LINK_COMMAND_SPEC_A): Update lto options + to match gcc/gcc.c. + + 2019-08-05 Kito Cheng + + Backport from mainline + 2019-08-05 Kito Cheng + + * config/riscv/riscv.c (riscv_promote_function_mode): New. + (TARGET_PROMOTE_FUNCTION_MODE): Use riscv_promote_function_mode. + + 2019-08-04 Segher Boessenkool + + Backport from trunk + 2019-05-02 Segher Boessenkool + + * config/rs6000/rs6000.c (rs6000_dbx_register_number): Return the + correct numbers for TFHAR, TFIAR, TEXASR. + + 2019-07-23 Matthew Beliveau + + Backported from mainline + 2019-07-16 Jeff Law + + PR rtl-optimization/91173 + * tree-ssa-address.c (addr_for_mem_ref): If the base is an + SSA_NAME with a constant value, fold its value into the offset + and clear the base before calling gen_addr_rtx. + * g++.dg/pr91173.C: New test. + + 2019-07-23 Richard Biener + + PR debug/91231 + * lto-streamer-in.c (input_function): Drop inline-entry markers + that ended up with an unknown location block. + + 2019-07-22 Martin Liska + + Backport from mainline + 2019-07-22 Martin Liska + + PR driver/91172 + * opts-common.c (decode_cmdline_option): Decode + argument of -Werror and check it for a wrong language. + * opts-global.c (complain_wrong_lang): Remove such case. + + 2019-07-21 Richard Sandiford + + Backport from mainline + 2019-07-10 Richard Sandiford + + * fold-const.c (fold_relational_const): Fix folding of + vector-to-scalar NE_EXPRs. + (test_vector_folding): Add more tests. + + 2019-07-19 Jason Merrill + + PR c++/82081 - tail call optimization breaks noexcept + * tree-tailcall.c (find_tail_calls): Don't turn a call from a + nothrow function to a might-throw function into a tail call. + + 2019-07-16 Wilco Dijkstra + + Backport from mainline + PR target/89222 + * config/arm/arm.md (movsi): Use targetm.cannot_force_const_mem + to decide when to split off a non-zero offset from a symbol. + * config/arm/arm.c (arm_cannot_force_const_mem): Disallow offsets + in function symbols. + + 2019-07-16 Wilco Dijkstra + + Backport from mainline + 2019-02-13 Wilco Dijkstra + PR target/89190 + * config/arm/arm.c (ldm_stm_operation_p) Set + addr_reg_in_reglist correctly for first register. + (load_multiple_sequence): Remove dead base check. + (gen_ldm_seq): Correctly set write_back for Thumb-1. + + 2019-07-15 Andreas Krebbel + + Backport from mainline + 2019-07-01 Andreas Krebbel + + * config/s390/vector.md: Fix shift count operand printing. + + 2019-07-15 Wilco Dijkstra + + Backport from mainline + 2019-01-23 Bin Cheng + Steve Ellcey + + PR target/85711 + * recog.c (address_operand): Return false on wrong mode for address. + (constrain_operands): Check for mode with 'p' constraint. + + 2019-07-12 Eric Botcazou + + PR rtl-optimization/91136 + * df-core.c (ACCESSING REFS): Fix typos in comment. + * resource.c (mark_target_live_reg): Add artificial defs that occur at + the beginning of the block to the initial set of live registers. + + 2019-07-04 Martin Liska + + Backport from mainline + 2019-07-03 Martin Liska + + PR middle-end/90899 + * multiple_target.c (create_dispatcher_calls): Add to comdat + group only if set for ifunc. + + 2019-06-28 Jeff Law + + Backport from mainline + 2019-06-21 Jeff Law + + PR tree-optimization/90949 + * tree-ssa-copy.c (fini_copy_prop): Use reset_flow_sensitive_info. + * tree-ssanames.c (reset_flow_sensitive_info): Reset non-null state. + + 2019-06-26 Martin Jambor + + Backport from mainline + 2019-06-25 Martin Jambor + + PR ipa/90939 + * ipa-cp.c (ipcp_bits_lattice::meet_with): Remove assert. + + 2019-06-26 Rainer Orth + + Backport from mainline + 2019-06-17 Rainer Orth + + * configure.ac (ld_vers) <*-*-solaris2*>: Remove support for + alternative Solaris 11.4 format. + * configure: Regenerate. + + 2019-06-16 Jeff Law + + Backport from mainline + 2019-06-16 Prachi Godbole + Robert Suchanek + * config/mips/mips.c (mips_expand_builtin_insn): Swap the 1st + and 3rd operands of the fmadd/fmsub/maddv builtin. + + 2019-06-16 John David Anglin + + PR middle-end/64242 + * config/pa/pa.md (nonlocal_goto): Restore frame pointer last. Add + frame clobbers and schedule block. + (builtin_longjmp): Likewise. + + 2019-06-11 Jakub Jelinek + + PR target/90811 + * config/nvptx/nvptx.c (nvptx_output_softstack_switch): Use and.b%d + instead of and.u%d. + + 2019-06-07 John David Anglin + + PR target/90751 + * config/pa/pa-linux.h (ASM_DECLARE_FUNCTION_NAME): Update comment. + Call pa_output_function_label. + (TARGET_ASM_FUNCTION_PROLOGUE): define. + * config/pa/pa-protos.h (pa_output_function_label): Declare. + * config/pa/pa.c (pa_output_function_prologue): Add ATTRIBUTE_UNUSED + to declaration. + (pa_linux_output_function_prologue): Declare. + (TARGET_ASM_FUNCTION_PROLOGUE): Delete define. + (pa_output_function_label): New. + (pa_output_function_prologue): Revise to use pa_output_function_label. + (pa_linux_output_function_prologue): New. + * config/pa/pa.h (TARGET_ASM_FUNCTION_PROLOGUE): Define. + + 2019-06-07 Iain Sandoe + + Backport from mainline. + 2019-05-12 Iain Sandoe + + PR target/82920 + * config/i386/darwin.h (CC1_SPEC): Report -mx32 as an error for + Darwin. + + 2019-06-07 Iain Sandoe + + Backport from mainline. + 2019-05-12 Iain Sandoe + + PR target/82920 + * config/i386/i386.c (ix86_output_jmp_thunk_or_indirect): New. + (ix86_output_indirect_branch_via_reg): Use output mechanism + accounting for __USER_LABEL_PREFIX__. + (ix86_output_indirect_branch_via_push): Likewise. + (ix86_output_function_return): Likewise. + (ix86_output_indirect_function_return): Likewise. + + 2019-05-30 Jakub Jelinek + + * tree-predcom.c (is_inv_store_elimination_chain): Fix a typo - lenght + to length. + + 2019-05-29 Jakub Jelinek + + PR fortran/90329 + * lto-streamer.h (LTO_minor_version): Bump to 2. + + Backported from mainline + 2019-05-16 Jakub Jelinek + + PR fortran/90329 + * tree-core.h (struct tree_decl_common): Document + decl_nonshareable_flag for PARM_DECLs. + * tree.h (DECL_HIDDEN_STRING_LENGTH): Define. + * calls.c (expand_call): Don't try tail call if caller + has any DECL_HIDDEN_STRING_LENGTH PARM_DECLs that are or might be + passed on the stack and callee needs to pass any arguments on the + stack. + * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use + else if instead of series of mutually exclusive ifs. Handle + DECL_HIDDEN_STRING_LENGTH for PARM_DECLs. + * tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise. + + 2019-05-28 John David Anglin + + * config/pa/pa.c (hppa_profile_hook): Remove offset adjustment. + + 2019-05-27 Eric Botcazou + + * dwarf2out.c (resolve_args_picking_1): Deal with DW_OP_GNU_addr_index + and DW_OP_GNU_const_index opcodes. + + 2019-05-24 John David Anglin + + PR target/90530 + * config/pa/pa.c (pa_can_change_mode_class): Accept mode changes from + DImode to SImode in floating-point registers on 64-bit target. + * config/pa/pa.md (umulsidi3): Change nonimmediate_operand to + register_operand in xmpyu patterns. + + 2019-05-24 Martin Liska + + Backport from mainline + 2019-05-23 Martin Liska + + PR sanitizer/90570 + * gimplify.c (gimplify_target_expr): Skip TREE_STATIC target + expression similarly to gimplify_decl_expr. + + 2019-05-23 Uroš Bizjak + + Backport from mainline + 2019-05-21 Uroš Bizjak + + * config/i386/cpuid.h (__cpuid): For 32bit targets, zero + %ebx and %ecx bafore calling cpuid with leaf 1 or + non-constant leaf argument. + + 2019-05-21 Uroš Bizjak + + PR target/90547 + * config/i386/i386.md (anddi_1 to andsi_1_zext splitter): + Avoid calling gen_lowpart with CONST operand. + + 2019-05-21 Sebastian Huber + + Backported from mainline + 2019-05-16 Sebastian Huber + + * config/arm/t-rtems: Replace ARMv7-M multilibs with Cortex-M + multilibs. + + 2019-05-20 Jeff Law + + Backport from mainline + 2019-05-17 Dragan Mladjenovic + + * config/mips/mips.c (mips_dwarf_frame_reg_mode): Replace + TARGET_FLOAT64 with !TARGET_FLOAT32, thus handling both fp64 + and fpxx modes. + + 2019-05-16 Kelvin Nilsen + + Backport from mainline. + 2019-05-07 Kelvin Nilsen + + PR target/89765 + * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): + In handling of ALTIVEC_BUILTIN_VEC_INSERT, use modular arithmetic + to compute vector element selector for both constant and variable + operands. + + 2019-05-15 David Edelsohn + + Backport from mainline + 2019-04-11 David Edelsohn + * xcoffout.h (xcoff_private_rodata_section_name): Declare. + * xcoffout.c (xcoff_private_rodata_section_name): Define. + * config/rs6000/rs6000.c (rs6000_xcoff_asm_init_sections): Create + read_only_private_data_section using coff_private_rodata_section_name. + (rs6000_xcoff_file_start): Generate coff_private_rodata_section_name. + + 2018-12-04 David Edelsohn + 2018-12-13 David Edelsohn + PR target/61976 + * config/rs6000/rs6000.c (rs6000_function_arg): Don't pass aggregates + in FPRs on AIX. Ensure type is non-NULL. + (rs6000_arg_partial_bytes): Same. + + 2019-05-14 Martin Liska + + Backport from mainline + 2019-05-13 Martin Liska + + PR gcov-profile/90380 + * gcov.c (handle_cycle): Do not support zero cycle count, + it should not be possible. + (path_contains_zero_cycle_arc): New function. + (circuit): Ignore zero cycle arc counts. + + 2019-05-14 Martin Liska + + Backport from mainline + 2019-05-13 Martin Liska + + PR gcov-profile/90380 + * gcov.c (enum loop_type): Remove the enum and + the operator. + (handle_cycle): Assert that we should not reach + a negative count. + (circuit): Use loop_found instead of a tri-state loop_type. + (get_cycles_count): Do not handle NEGATIVE_LOOP as it can't + happen. + + 2019-05-11 Andreas Tobler + + Backport from mainline. + 2019-04-25 Andreas Tobler + + * config/i386/freebsd64.h: Add bits for 32-bit multilib support. + * config/i386/t-freebsd64: New file. + * config.gcc: Add the t-freebsd64 for multilib support. + + 2019-05-08 Kelvin Nilsen + + Backport from mainline. + 2019-05-06 Kelvin Nilsen + + PR target/89424 + * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add + handling of V1TImode. + + 2019-05-06 Richard Biener + + PR bootstrap/90359 + Backport from mainline + 2019-03-11 Jakub Jelinek + + PR middle-end/89655 + PR bootstrap/89656 + * vr-values.c (vr_values::update_value_range): If + old_vr->varying_p (), don't update it, make new_vr also VARYING + and return false. + + 2019-05-03 Richard Biener + + Backport from mainline + 2019-03-14 Richard Biener + + PR middle-end/89698 + * fold-const.c (operand_equal_p): For INDIRECT_REF check + that the access types are similar. + + 2019-03-07 Richard Biener + + PR tree-optimization/89595 + * tree-ssa-dom.c (dom_opt_dom_walker::optimize_stmt): Take + stmt iterator as reference, take boolean output parameter to + indicate whether the stmt was removed and thus the iterator + already advanced. + (dom_opt_dom_walker::before_dom_children): Re-iterate over + stmts created by folding. + + 2019-03-14 Richard Biener + + PR tree-optimization/89710 + * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use + safe_dyn_cast. + + 2019-04-15 Richard Biener + + PR tree-optimization/90071 + * tree-ssa-reassoc.c (init_range_entry): Do not pick up + abnormal operands from def stmts. + + 2018-08-20 Bernd Edlinger + + PR target/86984 + * expr.c (expand_assignment): Assert that bitpos is positive. + (store_field): Likewise + (expand_expr_real_1): Make sure that bitpos is positive. + * config/alpha/alpha.h (CONSTANT_ADDRESS_P): Avoid signed + integer overflow. + + 2019-03-14 Richard Biener + + PR target/89711 + * config/i386/i386.c (make_resolver_func): Properly set + DECL_CONTEXT on the RESULT_DECL. + * config/rs6000/rs6000.c (make_resolver_func): Likewise. + + 2019-04-30 Jakub Jelinek + + Backported from mainline + 2019-04-24 Jakub Jelinek + + PR target/90193 + * rtl.c (classify_insn): Return JUMP_INSN for asm goto. + * emit-rtl.c (try_split): Copy over REG_LABEL_TARGET. + + PR target/90187 + * config/i386/i386.c (ix86_expand_sse_fp_minmax): Force if_true into + a register if both if_true and if_false are MEMs. + + PR tree-optimization/90208 + * tree-cfg.c (remove_bb): Move forced labels from removed bbs + after labels of new_bb, not before them. + + 2019-04-16 Jakub Jelinek + + PR rtl-optimization/90082 + * dce.c (can_delete_call): New function. + (deletable_insn_p, mark_insn): Use it. + + PR tree-optimization/90090 + * tree-ssa-math-opts.c (is_division_by): Ignore divisions that can + throw internally. + (is_division_by_square): Likewise. Formatting fix. + + 2019-04-12 Jakub Jelinek + + PR rtl-optimization/89965 + * dce.c: Include rtl-iter.h. + (struct check_argument_load_data): New type. + (check_argument_load): New function. + (find_call_stack_args): Check for loads from stack slots still tracked + in sp_bytes and punt if any is found. + + PR c/89946 + * varasm.c (assemble_start_function): Don't use tree_fits_uhwi_p + and gcc_unreachable if it fails, just call tree_to_uhwi which + verifies that too. Test TREE_CHAIN instead of list_length > 1. + Start warning message with a lower-case letter. Formatting fixes. + + PR rtl-optimization/90026 + * cfgcleanup.c (try_optimize_cfg): When removing empty bb with no + successors, look for BARRIERs inside of the whole BB_FOOTER chain + rather than just at the start of it. If e->src BB_FOOTER is not NULL + in cfglayout mode, use emit_barrier_after_bb. + + 2019-04-11 Jakub Jelinek + + PR rtl-optimization/89965 + * dce.c (sp_based_mem_offset): New function. + (find_call_stack_args): Use sp_based_mem_offset. + + 2019-04-10 Jakub Jelinek + + PR c++/90010 + * gimple-ssa-sprintf.c (target_to_host): Fix handling of targstr + with strlen in between hostsz-3 and hostsz-1 inclusive when no + translation is needed, and when translation is needed, only append + ... if the string length is hostsz or more bytes long. Avoid using + strncpy or strcat. + + 2019-04-09 Jakub Jelinek + + PR tree-optimization/89998 + * gimple-ssa-sprintf.c (try_substitute_return_value): Use lhs type + instead of integer_type_node if possible, don't add ranges if return + type is not compatible with int. + * gimple-fold.c (gimple_fold_builtin_sprintf, + gimple_fold_builtin_snprintf): Use lhs type instead of hardcoded + integer_type_node. + + 2019-03-29 Jakub Jelinek + + PR c/89872 + * gimplify.c (gimplify_compound_literal_expr): Don't optimize a + non-addressable complit into its initializer if it is volatile. + + 2019-03-28 Jakub Jelinek + + PR middle-end/89621 + * tree-inline.h (struct copy_body_data): Add + dont_remap_vla_if_no_change flag. + * tree-inline.c (remap_type_3, remap_type_2): New functions. + (remap_type): Don't remap vla types if id->dont_remap_vla_if_no_change + and remap_type_2 returns false. + * omp-low.c (new_omp_context): Set ctx->cb.dont_remap_vla_if_no_change. + + 2019-03-20 Jakub Jelinek + + PR target/89752 + * lra-constraints.c (process_alt_operands) : For BLKmode, don't + update this_alternative nor this_alternative_set. + + 2019-03-19 Jakub Jelinek + + PR rtl-optimization/89768 + * loop-unroll.c (unroll_loop_constant_iterations): Use gen_int_mode + instead of GEN_INT. + (unroll_loop_runtime_iterations): Likewise. + + PR target/89752 + * gimplify.c (gimplify_asm_expr): For output argument with + TREE_ADDRESSABLE type, clear allows_reg if it allows memory, otherwise + diagnose error. + + PR target/89726 + * config/i386/i386.c (ix86_expand_floorceildf_32): In ceil + compensation use x2 += 1 instead of x2 -= -1 and when honoring + signed zeros, do another copysign after the compensation. + + 2019-03-15 Jakub Jelinek + + PR debug/89704 + * dwarf2out.c (add_const_value_attribute): Return false for MINUS, + SIGN_EXTEND and ZERO_EXTEND. + + 2019-03-14 Jakub Jelinek + + PR ipa/89684 + * multiple_target.c (create_dispatcher_calls): Change + references_to_redirect from vector of ipa_ref * to vector of ipa_ref. + In the node->iterate_referring loop, push *ref rather than ref, call + ref->remove_reference () and always pass 0 to iterate_referring. + + PR rtl-optimization/89679 + * expmed.c (expand_mult_const): Don't add a REG_EQUAL note if it + would contain a paradoxical SUBREG. + + PR tree-optimization/89703 + * tree-ssa-strlen.c (valid_builtin_call): Punt if stmt call types + aren't compatible also with builtin_decl_explicit. Check pure + or non-pure status of BUILT_IN_STR{{,N}CMP,N{LEN,{CAT,CPY}{,_CHK}}} + and BUILT_IN_STPNCPY{,_CHK}. + + 2019-03-13 Jakub Jelinek + + PR debug/89498 + * dwarf2out.c (size_of_die): For dw_val_class_view_list always use + DWARF_OFFSET_SIZE. + (value_format): For dw_val_class_view_list never use DW_FORM_loclistx. + + PR middle-end/88588 + * omp-simd-clone.c (ipa_simd_modify_stmt_ops): Handle PHI args. + (ipa_simd_modify_function_body): Handle PHIs. + + 2019-03-12 Jakub Jelinek + + PR middle-end/89663 + * builtins.c (expand_builtin_int_roundingfn, + expand_builtin_int_roundingfn_2): Return NULL_RTX instead of + gcc_unreachable if validate_arglist fails. + + 2019-03-09 Jakub Jelinek + + PR c/88568 + * attribs.c (handle_dll_attribute): Don't clear TREE_STATIC for + dllimport on VAR_DECLs with RECORD_TYPE or UNION_TYPE DECL_CONTEXT. + + 2019-03-05 Jakub Jelinek + + PR target/89587 + * config/rs6000/t-linux (MULTIARCH_DIRNAME): Set to non-empty only + if_multiarch. + + PR middle-end/89590 + * builtins.c (maybe_emit_free_warning): Punt if free doesn't have + exactly one argument. + + 2019-02-28 Jakub Jelinek + + PR c/89520 + * convert.c (convert_to_real_1, convert_to_integer_1): Punt for + builtins if they don't have a single scalar floating point argument. + Formatting fixes. + + 2019-02-20 Jakub Jelinek + + PR middle-end/89412 + * expr.c (expand_assignment): If result is a MEM, use change_address + instead of simplify_gen_subreg. + + 2019-02-20 Jakub Jelinek + David Malcolm + + PR middle-end/89091 + * fold-const.c (decode_field_reference): Return NULL_TREE if + lang_hooks.types.type_for_size returns NULL. Check it before + overwriting *exp_. Use return NULL_TREE instead of return 0. + + 2019-02-20 Jakub Jelinek + + PR middle-end/88074 + PR middle-end/89415 + * toplev.c (do_compile): Double the emin/emax exponents to workaround + buggy mpc_norm. + + 2019-02-19 Richard Biener + + PR middle-end/88074 + * toplev.c (do_compile): Initialize mpfr's exponent range + based on available float modes. + + 2019-04-30 Ramana Radhakrishnan + + Backport from mainline. + 2019-04-30 Ramana Radhakrishnan + PR target/86538 + * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): + Define __ARM_FEATURE_ATOMICS. + + 2019-04-30 Srinath Parvathaneni + + Backport from mainline + 2018-12-11 Richard Earnshaw + + PR target/37369 + * config/aarch64/iterators.md (sizem1): Add sizes for + SFmode and DFmode. + (Vbtype): Add SFmode mapping. + * config/aarch64/aarch64.md (copysigndf3, copysignsf3): Delete. + (copysign3): New expand pattern. + (copysign3_insn): New insn pattern. + + 2019-04-29 Richard Sandiford + + Backport from mainline: + 2019-01-25 Richard Sandiford + + PR middle-end/89037 + * varasm.c (output_constructor_bitfield): Use wi::extract_uhwi + instead of accessing TREE_INT_CST_ELT directly. + + 2019-04-29 Richard Sandiford + + Backport from mainline: + 2018-08-23 Richard Sandiford + + PR target/85910 + * config/aarch64/aarch64.c (aarch64_expand_vec_perm_const_1): Fix + aarch64_evpc_tbl guard. + + 2019-04-29 Richard Sandiford + + Backport from mainline: + 2019-03-08 Richard Sandiford + + PR debug/89631 + * dwarf2cfi.c (dwarf2out_frame_debug_expr): Use CONST_POLY_INT + instead of POLY_INT_CST. + + 2019-04-26 Roman Zhuykov + + Backport from mainline + 2019-04-23 Roman Zhuykov + + PR rtl-optimization/87979 + * modulo-sched.c (sms_schedule): Start ii value "mii" should + not equal zero. + + PR rtl-optimization/84032 + * modulo-sched.c (ps_insn_find_column): Change condition so that + branch will always be the last insn in a row inside partial + schedule. + + 2019-04-19 Pat Haugen + + Backport from mainline: + 2019-04-16 Pat Haugen + + PR target/84369 + * config/rs6000/power9.md: Add store forwarding bypass. + + 2019-04-17 Martin Jambor + + Backport from mainline + 2019-03-10 Martin Jambor + + PR tree-optimization/85762 + PR tree-optimization/87008 + PR tree-optimization/85459 + * tree-sra.c (contains_vce_or_bfcref_p): New parameter, set the bool + it points to if there is a type changing MEM_REF. Adjust all callers. + (build_accesses_from_assign): Disable total scalarization if + contains_vce_or_bfcref_p returns true through the new parameter, for + both rhs and lhs. + + 2019-04-17 Kelvin Nilsen + + Backport from mainline + 2019-03-15 Kelvin Nilsen + + PR target/87532 + * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): + When handling vec_extract, use modular arithmetic to allow + constant selectors greater than vector length. + * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Allow + V1TImode vectors to have constant selector values greater than 0. + Use modular arithmetic to compute vector index. + (rs6000_split_vec_extract_var): Use modular arithmetic to compute + index for in-memory vectors. Correct code generation for + in-register vectors. Use inner mode of vector rather than mode of + destination for move instruction. + (altivec_expand_vec_ext_builtin): Use modular arithmetic to + compute index. + + 2019-04-12 Kelvin Nilsen + + PR target/87532 + * config/rs6000/vsx.md (*vsx_extract__mode_var): + Use QI inner mode with V16QI vector mode. + + 2019-04-15 Martin Jambor + + Backport from mainline + 2019-04-15 Martin Jambor + + PR ipa/89693 + * cgraph.c (clone_of_p): Loop over clone chain for each step in + the thunk chain. + + 2019-04-15 Martin Liska + + Backport from mainline + 2019-01-18 Martin Liska + Richard Biener + + PR middle-end/88587 + * cgraph.h (create_version_clone_with_body): Add new argument + with attributes. + * cgraphclones.c (cgraph_node::create_version_clone): Add + DECL_ATTRIBUTES to a newly created decl. And call + valid_attribute_p so that proper cl_target_optimization_node + is set for the newly created declaration. + * multiple_target.c (create_target_clone): Set DECL_ATTRIBUTES + for declaration. + (expand_target_clones): Do not call valid_attribute_p, it must + be already done. + * tree-inline.c (copy_decl_for_dup_finish): Reset mode for + vector types. + + 2019-04-11 Richard Biener + + PR tree-optimization/90018 + * tree-vect-data-refs.c (vect_preserves_scalar_order_p): + Test both SLP and interleaving variants. + + 2019-04-10 Matthew Malcomson + + PR target/90024 + * config/arm/arm.c (neon_valid_immediate): Disallow VOIDmode parameter. + * config/arm/constraints.md (Dm, DN, Dn): Split previous Dn constraint + into three. + * config/arm/neon.md (*neon_mov): Account for TImode and DImode + differences directly. + (*smax3_neon, vashl3, vashr3_imm): Use Dm constraint. + + 2019-04-07 Uroš Bizjak + + PR target/89945 + * config/i386/i386.md (anddi_1 to andsi_1_zext splitter): + Avoid calling gen_lowpart with SYMBOL_REF and LABEL_REF operand. + + 2019-04-04 Martin Sebor + + PR middle-end/89934 + * gimple-ssa-warn-restrict.c (builtin_access::builtin_access): Bail + out if the number of arguments is less than expected. + + 2019-04-03 Richard Biener + + PR lto/89896 + * lto-wrapper.c (run_gcc): Avoid implicit rules making + the all target phony. + + 2019-04-02 Uroš Bizjak + + PR target/89902 + PR target/89903 + * config/i386/i386.c (dimode_scalar_to_vector_candidate_p): + Return false for variable DImode shifts. + (dimode_scalar_chain::compute_convert_gain): Do not handle + register count operand in variable DImode shifts. + (dimode_scalar_chain::make_vector_copies): Remove support to copy + count argument of a variable shift instruction to a vector register. + (dimode_scalar_chain::convert_reg): Remove support to convert + count argument of a variable shift instruction. + + 2019-03-29 Kugan Vivekanandarajah + + Backport from mainline + 2019-03-29 Kugan Vivekanandarajah + Eric Botcazou + + PR rtl-optimization/89862 + * rtl.h (word_register_operation_p): Exclude CONST_INT from operations + that operates on the full registers for WORD_REGISTER_OPERATIONS + architectures. + + 2019-03-28 Uroš Bizjak + + PR target/89848 + * config/i386/i386.c (dimode_scalar_chain::make_vector_copies): + Also process XEXP (src, 0) of a shift insn. + + 2019-03-28 Martin Liska + + Backport from mainline + 2018-11-05 Martin Liska + + PR web/87829 + * doc/invoke.texi: Remove options that are + not disabled with -Os. + + 2019-03-26 Uroš Bizjak + + PR target/89827 + * config/i386/i386.c (dimode_scalar_chain::convert_reg): + Also process XEXP (src, 0) of a shift insn. + + 2019-03-25 Andreas Krebbel + + Backport from mainline + 2019-03-20 Andreas Krebbel + + PR target/89775 + * config/s390/s390.c (global_not_special_regno_p): Move to make it + available to ... + (s390_optimize_register_info): Use global_not_special_regno_p to + check for global regs. + + 2019-03-22 Bill Schmidt + + Backport from mainline + 2019-03-22 Bill Schmidt + + * config/rs6000/mmintrin.h (_mm_sub_pi32): Fix typo. + + 2019-03-21 Bill Schmidt + + Backport from mainline + 2019-03-08 Bill Schmidt + + * config/rs6000/rs6000-p8swap.c (rs6000_analyze_swaps): Rebuild + ud- and du-chains between phases. + + 2019-03-19 Richard Biener + + PR debug/88389 + * opts.c (finish_options): Disable -gsplit-dwarf when doing LTO. + + 2019-03-19 Eric Botcazou + + PR rtl-optimization/89753 + * loop-unroll.c (decide_unroll_constant_iterations): Make guard for + explicit unrolling factor even more robust. + + 2019-03-18 Martin Sebor + + PR middle-end/88273 + * gimple-ssa-warn-restrict.c (builtin_memref::extend_offset_range): + Handle anti-ranges the same as no range at all. + + 2019-03-18 Martin Jambor + + Backport from mainline + 2019-03-18 Martin Jambor + + PR tree-optimization/89546 + * tree-sra.c (propagate_subaccesses_across_link): Requeue new_acc if + any propagation to its children took place. + + 2019-03-17 H.J. Lu + + Backport from mainline + 2019-03-14 H.J. Lu + + PR target/89523 + * config/i386/i386.c (ix86_print_operand): Handle 'M' to add + addr32 prefix to VSIB address for X32. + * config/i386/sse.md (*avx512pf_gatherpfsf_mask): Prepend + "%M2" to opcode. + (*avx512pf_gatherpfdf_mask): Likewise. + (*avx512pf_scatterpfsf_mask): Likewise. + (*avx512pf_scatterpfdf_mask): Likewise. + (*avx2_gathersi): Prepend "%M3" to opcode. + (*avx2_gathersi_2): Prepend "%M2" to opcode. + (*avx2_gatherdi): Prepend "%M3" to opcode. + (*avx2_gatherdi_2): Prepend "%M2" to opcode. + (*avx2_gatherdi_3): Prepend "%M3" to opcode. + (*avx2_gatherdi_4): Prepend "%M2" to opcode.` + (*avx512f_gathersi): Prepend "%M4" to opcode. + (*avx512f_gathersi_2): Prepend "%M3" to opcode. + (*avx512f_gatherdi): Prepend "%M4" to opcode. + (*avx512f_gatherdi_2): Prepend "%M3" to opcode. + (*avx512f_scattersi): Prepend "%M0" to opcode. + (*avx512f_scatterdi): Likewise. + + 2019-03-15 Richard Biener + + Backport from mainline + 2018-11-30 Jakub Jelinek + + PR testsuite/85368 + * params.def (PARAM_LOGICAL_OP_NON_SHORT_CIRCUIT): New param. + * tree-ssa-ifcombine.c (ifcombine_ifandif): If + --param logical-op-non-short-circuit is present, override + LOGICAL_OP_NON_SHORT_CIRCUIT value from the param. + * fold-const.c (fold_range_test, fold_truth_andor): Likewise. + + 2019-03-15 Martin Liska + + PR other/89712 + * doc/invoke.texi: Remove -fdump-class-hierarchy option. + + 2019-03-14 Martin Jambor + + Backport from mainline + 2019-03-07 Martin Jambor + + PR lto/87525 + * ipa-cp.c (perform_estimation_of_a_value): Account zero time benefit + for extern inline functions. + + 2019-03-14 Richard Biener + + PR middle-end/89572 + * tree-scalar-evolution.c (get_loop_exit_condition): Use + safe_dyn_cast. + * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables): + Use gimple_location_safe. + + 2019-03-13 Vladimir Makarov + + PR target/85860 + * lra-constraints.c (inherit_in_ebb): Update + potential_reload_hard_regs along with live_hard_regs. + + 2019-03-14 Richard Biener + + Backport from mainline + 2019-03-13 Richard Biener + + PR middle-end/89677 + * tree-scalar-evolution.c (simplify_peeled_chrec): Do not + throw FP expressions at tree-affine. + + 2019-03-01 Richard Biener + + PR middle-end/89497 + * tree-cfgcleanup.h (cleanup_tree_cfg): Add SSA update flags + argument, defaulted to zero. + * passes.c (execute_function_todo): Pass down SSA update flags + to cleanup_tree_cfg. + * tree-cfgcleanup.c: Include tree-into-ssa.h and tree-cfgcleanup.h. + (cleanup_tree_cfg_1): After cleanup_control_flow_pre update SSA + form if requested. + (cleanup_tree_cfg_noloop): Pass down SSA update flags. + (cleanup_tree_cfg): Get and pass down SSA update flags. + + 2019-02-18 Richard Biener + + PR tree-optimization/89296 + * tree-ssa-loop-ch.c (ch_base::copy_headers): Restrict setting + of no-warning flag to cases that might emit the bogus warning. + + 2019-03-13 Andreas Krebbel + + Backport from mainline + 2019-03-11 Andreas Krebbel + + * config/s390/s390.c (s390_expand_builtin): Do the copy_to_reg not + only on the else branch. + + 2019-03-13 Andreas Krebbel + + Backport from mainline + 2019-02-07 Andreas Krebbel + + * config/s390/s390-builtin-types.def: Add new types. + * config/s390/s390-builtins.def: (s390_vec_xl, s390_vec_xld2) + (s390_vec_xlw4): Make the memory operand into a const pointer. + (s390_vec_xld2, s390_vec_xlw4): Add a variant for single precision + float. + * config/s390/s390-c.c (s390_expand_overloaded_builtin): Generate + a new vector type with the alignment of the scalar memory operand. + + 2019-03-12 Richard Biener + + PR tree-optimization/89664 + * tree-ssa-math-opts.c (execute_cse_reciprocals_1): Properly + free the occurance tree after the early out. + + 2019-03-12 Andre Vieira + + Backport from mainline + 2019-03-08 Andre Vieira + + * config/arm/arm.h (TARGET_FP16_TO_DOUBLE): Add TARGET_VFP_DOUBLE + requirement. + + 2019-03-11 Eric Botcazou + + PR rtl-optimization/89588 + * loop-unroll.c (decide_unroll_constant_iterations): Make guard for + explicit unrolling factor more robust. + + 2019-03-11 Martin Liska + + Backport from mainline + 2019-03-08 Martin Liska + + PR target/86952 + * config/i386/i386.c (ix86_option_override_internal): Disable + jump tables when retpolines are used. + + 2019-03-11 Martin Liska + + Backport from mainline + 2019-02-11 David Malcolm + + PR lto/88147 + * input.c (selftest::test_line_offset_overflow): New selftest. + (selftest::input_c_tests): Call it. + + 2019-03-08 Martin Jambor + + Backport from mainline + 2019-03-07 Martin Jambor + + PR ipa/88235 + * cgraph.h (cgraph_node): New inline method former_thunk_p. + * cgraph.c (cgraph_node::dump): Dump a note if node is a former thunk. + (clone_of_p): Treat expanded thunks like thunks, be optimistic if they + have multiple callees. At the end check if declarations match as + opposed to cgraph_nodes. + + 2019-03-06 Tamar Christina + + Backport from trunk. + 2019-02-25 Tamar Christina + + PR target/88530 + * common/config/aarch64/aarch64-common.c + (struct aarch64_option_extension): Add is_synthetic. + (all_extensions): Use it. + (TARGET_OPTION_INIT_STRUCT): Define hook. + (struct gcc_targetm_common): Moved to end. + (all_extensions_by_on): New. + (opt_ext_cmp, typedef opt_ext): New. + (aarch64_option_init_struct): New. + (aarch64_contains_opt): New. + (aarch64_get_extension_string_for_isa_flags): Output smallest set. + * config/aarch64/aarch64-option-extensions.def + (AARCH64_OPT_EXTENSION): Explicitly include AES and SHA2 in crypto. + (fp, simd, crc, lse, fp16, rcpc, rdma, dotprod, aes, sha2, sha3, + sm4, fp16fml, sve): + Set is_synthetic to false. + (crypto): Set is_synthetic to true. + * config/aarch64/driver-aarch64.c (AARCH64_OPT_EXTENSION): Add + SYNTHETIC. + + 2019-03-06 Tamar Christina + + Backport from trunk. + 2019-02-28 Tamar Christina + + PR target/88530 + * config/aarch64/aarch64-option-extensions.def: Document it. + * config/aarch64/driver-aarch64.c (host_detect_local_cpu): Skip feature + if empty hwcaps. + + 2019-03-06 Xiong Hu Luo + + Backport of r268834 from mainline to gcc-8-branch. + 2019-02-13 Xiong Hu Luo + + * config/rs6000/altivec.h (vec_sbox_be, vec_cipher_be, + vec_cipherlast_be, vec_ncipher_be, vec_ncipherlast_be): New #defines. + * config/rs6000/crypto.md (CR_vqdi): New define_mode_iterator. + (crypto_vsbox_, crypto__): New define_insns. + * config/rs6000/rs6000-builtin.def (VSBOX_BE): New BU_CRYPTO_1. + (VCIPHER_BE, VCIPHERLAST_BE, VNCIPHER_BE, VNCIPHERLAST_BE): + New BU_CRYPTO_2. + * config/rs6000/rs6000.c (builtin_function_type) + : New switch options. + * doc/extend.texi (vec_sbox_be, vec_cipher_be, vec_cipherlast_be, + vec_ncipher_be, vec_ncipherlast_be): New builtin functions. + + 2019-03-05 Richard Biener + + Backport from mainline + 2019-02-26 Richard Biener + + PR tree-optimization/89505 + * tree-ssa-structalias.c (compute_dependence_clique): Make sure + to handle restrict pointed-to vars with multiple subvars + correctly. + + 2019-03-01 Tamar Christina + + PR target/89517 + * config/aarch64/aarch64-option-extensions.def (fp, simd, crypto, + fp16): Collapse line. + + 2019-03-01 Richard Biener + + Backport from mainline + 2019-03-01 Jakub Jelinek + + PR bootstrap/89539 + * dwarf2out.c (output_comdat_type_unit): Add ATTRIBUTE_UNUSED to + early_lto_debug argument. + + 2019-02-27 Richard Biener + + PR debug/88878 + * dwarf2out.c (use_debug_types): Disable when in_lto_p. + + 2019-02-27 Richard Biener + + PR debug/88878 + * dwarf2out.c (output_comdat_type_unit): Add early_lto_debug + parameter, prefix section name with .gnu.debuglto_ if true. + (dwarf2out_finish): Pass false to output_comdat_type_unit. + (dwarf2out_early_finish): Pass true to output_comdat_type_unit. + + 2019-02-27 Richard Biener + + PR debug/89514 + * dwarf2out.c (size_of_die): Key on AT_ref (a)->comdat_type_p + rather than on use_debug_types, doing what output_die does. + (value_format): Likewise. + + 2019-02-28 Eric Botcazou + + PR tree-optimization/89536 + * tree-ssa-dom.c (edge_info::derive_equivalences) : Test + only whether bit #0 of the value is 0 instead of the entire value. + + 2019-02-28 Li Jia He + + Backport from trunk + 2019-02-20 Li Jia He + + PR target/88100 + * gcc/config/rs6000/rs6000.c (rs6000_gimple_fold_builtin) + : Don't convert the operand before + range checking it. + + 2019-02-27 Uroš Bizjak + + PR target/89397 + * config/i386/i386.c (ix86_atomic_assign_expand_fenv): Check + TARGET_SSE in addition to TARGET_SSE_MATH. + + (ix86_excess_precision): Ditto. + (ix86_float_exceptions_rounding_supported_p): Ditto. + (use_rsqrt_p): Ditto. + * config/i386/sse.md (rsqrt2): Ditto. + + 2019-02-27 Jakub Jelinek + + Backported from mainline + 2019-02-18 Jakub Jelinek + + PR target/89361 + * config/s390/s390.c (s390_indirect_branch_attrvalue, + s390_indirect_branch_settings): Define unconditionally. + (s390_set_current_function): Likewise, but guard the whole body except + the s390_indirect_branch_settings call with + #if S390_USE_TARGET_ATTRIBUTE. + (TARGET_SET_CURRENT_FUNCTION): Redefine unconditionally. + + 2019-02-26 Eric Botcazou + + Backport from mainline + 2019-02-19 Eric Botcazou + + * rtlanal.c (get_initial_register_offset): Fall back to the estimate + as long as the epilogue isn't completed. + + 2019-02-26 Eric Botcazou + + * tree-ssa-dom.c (edge_info::derive_equivalences) : Fix + and move around comment. + : Likewise. + : Add specific handling for boolean types. + + 2019-02-24 Alan Modra + + PR target/89271 + * config/rs6000/rs6000.md (_ split): Check for an int + output reg on add insn. + (tf_ split): Likewise. Match predicates with insn. + + 2019-02-22 Jakub Jelinek + + * BASE-VER: Set to 8.3.1. + 2019-02-22 Release Manager * GCC 8.3.0 released. *************** *** 568,574 **** Backport from mainline 2018-11-20 Richard Biener ! PR tree-optimization/88105 * tree-ssa-dom.c (pass_dominator::execute): Do not walk backedges. --- 3691,3697 ---- Backport from mainline 2018-11-20 Richard Biener ! PR tree-optimization/88105 * tree-ssa-dom.c (pass_dominator::execute): Do not walk backedges. diff -Nrcpad gcc-8.3.0/gcc/DATESTAMP gcc-8.4.0/gcc/DATESTAMP *** gcc-8.3.0/gcc/DATESTAMP Fri Feb 22 00:16:15 2019 --- gcc-8.4.0/gcc/DATESTAMP Wed Mar 4 08:30:00 2020 *************** *** 1 **** ! 20190222 --- 1 ---- ! 20200304 diff -Nrcpad gcc-8.3.0/gcc/Makefile.in gcc-8.4.0/gcc/Makefile.in *** gcc-8.3.0/gcc/Makefile.in Fri Mar 9 15:24:44 2018 --- gcc-8.4.0/gcc/Makefile.in Wed Mar 4 08:30:00 2020 *************** endif *** 1114,1119 **** --- 1114,1120 ---- # Support for additional languages (other than C). # C can be supported this way too (leave for later). + LANG_CONFIGUREFRAGS = @all_lang_configurefrags@ LANG_MAKEFRAGS = @all_lang_makefrags@ # Used by gcc/jit/Make-lang.in *************** cstamp-h: config.in config.status *** 1877,1883 **** # Really, really stupid make features, such as SUN's KEEP_STATE, may force # a target to build even if it is up-to-date. So we must verify that # config.status does not exist before failing. ! config.status: $(srcdir)/configure $(srcdir)/config.gcc @if [ ! -f config.status ] ; then \ echo You must configure gcc. Look at http://gcc.gnu.org/install/ for details.; \ false; \ --- 1878,1884 ---- # Really, really stupid make features, such as SUN's KEEP_STATE, may force # a target to build even if it is up-to-date. So we must verify that # config.status does not exist before failing. ! config.status: $(srcdir)/configure $(srcdir)/config.gcc $(LANG_CONFIGUREFRAGS) @if [ ! -f config.status ] ; then \ echo You must configure gcc. Look at http://gcc.gnu.org/install/ for details.; \ false; \ diff -Nrcpad gcc-8.3.0/gcc/ada/ChangeLog gcc-8.4.0/gcc/ada/ChangeLog *** gcc-8.3.0/gcc/ada/ChangeLog Fri Feb 22 14:20:37 2019 --- gcc-8.4.0/gcc/ada/ChangeLog Wed Mar 4 08:30:30 2020 *************** *** 1,3 **** --- 1,115 ---- + 2020-03-04 Release Manager + + * GCC 8.4.0 released. + + 2019-11-25 Eric Botcazou + + PR ada/92575 + * expect.c (__gnat_expect_poll [VMS, HPUX]): Fix typo. + + 2019-10-12 Eric Botcazou + + PR ada/91995 + * sem_ch8.adb (Chain_Use_Clause): Remove second argument in calls + to Defining_Entity. + * sem_elab.adb (Find_Unit_Entity): Likewise. Deal with N_Subunit + here in lieu of in Defining_Entity. + * sem_spark.adb (Check_Callable_Body): Likewise. + (Check_Package_Body): Likewise. + * sem_util.ads (Defining_Entity): Remove 2nd and 3th parameters. + * sem_util.adb (Defining_Entity): Remove 2nd and 3th parameters, + and adjust accordingly. Deal with N_Compilation_Unit. + + 2019-10-11 Eric Botcazou + + * gcc-interface/decl.c (annotate_value) : Really test the + sign of the value when deciding to build a NEGATE_EXPR. + : Remove redundant line. + : Do the negation here. + + 2019-09-23 Eric Botcazou + + * gcc-interface/trans.c (Attribute_to_gnu): Test Can_Use_Internal_Rep + on the underlying type of the node. + (Call_to_gnu): Likewise with the type of the prefix. + + 2019-09-01 Iain Sandoe + + Backport from mainline. + 2019-07-02 Iain Sandoe + + * libgnat/system-darwin-ppc.ads: Set Stack_Check_Probes True for + PPC Darwin. + + 2019-08-05 Iain Sandoe + + Backport from mainline. + 2019-06-30 Iain Sandoe + + * gnatlink.adb (Link_Step): Push -shared-libgcc explicitly, when it + is the target default (unless overidden by the static flag). + When the user has put an instance of shared/static-libgcc do not push + a duplicate of this. + + 2019-06-29 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity): Beep up comment on SAVED, + and tweak comment on the assertion about the scopes of Itypes. Do not + skip the regular processing for Itypes that are E_Record_Subtype with + a Cloned_Subtype. Get the Cloned_Subtype for every E_Record_Subtype + if the type is dummy and hasn't got its own freeze node. + : Save again the DECL of the Cloned_Subtype, if any. + : Save again the DECL of the equivalent type. + (Gigi_Equivalent_Type) : New case. + + 2019-06-29 Eric Botcazou + + * gcc-interface/trans.c (mark_visited_r): Set TYPE_SIZES_GIMPLIFIED on + the main variant of a type, if any. + + 2019-06-29 Eric Botcazou + + * gcc-interface/decl.c (set_nonaliased_component_on_array_type): Add + missing guard for the presence of TYPE_CANONICAL. + (set_reverse_storage_order_on_array_type): Likewise. + + 2019-06-17 Arnaud Charlet + + PR ada/80590 + * exp_ch9.adb (Expand_N_Delay_Relative_Statement): Swap the two + conditions to avoid a unnecessary exception propagation in the default + case. + + 2019-05-28 Eric Botcazou + + * gcc-interface/trans.c (walk_nesting_tree): New static function. + (finalize_nrv): Use it to walk the entire nesting tree. + + 2019-05-27 Eric Botcazou + + * gcc-interface/utils.c (maybe_pad_type): Issue the warning for the + specific case of component types preferably. + + 2019-05-27 Eric Botcazou + + * gcc-interface/trans.c (Call_to_gnu): Use the unpadded type when + putting back an intermediate conversion the type of the actuals. + + 2019-05-07 Rainer Orth + + * gcc-interface/Makefile.in (install-gcc-specs): Use foreach. + Honor DESTDIR. + + 2019-02-23 Eric Botcazou + + PR ada/89349 + Backport from mainline + 2018-05-25 Arnaud Charlet + + * osint.ads (Unknown_Attributes): No longer pretend this is a constant. + (No_File_Info_Cache): Initialize separately. + * osint.adb (No_File_Info_Cache): Update initializer. + 2019-02-22 Release Manager * GCC 8.3.0 released. diff -Nrcpad gcc-8.3.0/gcc/ada/exp_ch9.adb gcc-8.4.0/gcc/ada/exp_ch9.adb *** gcc-8.3.0/gcc/ada/exp_ch9.adb Thu Jan 11 08:55:25 2018 --- gcc-8.4.0/gcc/ada/exp_ch9.adb Wed Mar 4 08:30:00 2020 *************** package body Exp_Ch9 is *** 8144,8161 **** Proc : Entity_Id; begin ! -- Try to use System.Relative_Delays.Delay_For only if available. This ! -- is the implementation used on restricted platforms when Ada.Calendar ! -- is not available. ! if RTE_Available (RO_RD_Delay_For) then ! Proc := RTE (RO_RD_Delay_For); ! -- Otherwise, use Ada.Calendar.Delays.Delay_For and emit an error ! -- message if not available. else ! Proc := RTE (RO_CA_Delay_For); end if; Rewrite (N, --- 8144,8160 ---- Proc : Entity_Id; begin ! -- Try to use Ada.Calendar.Delays.Delay_For if available. ! if RTE_Available (RO_CA_Delay_For) then ! Proc := RTE (RO_CA_Delay_For); ! -- Otherwise, use System.Relative_Delays.Delay_For and emit an error ! -- message if not available. This is the implementation used on ! -- restricted platforms when Ada.Calendar is not available. else ! Proc := RTE (RO_RD_Delay_For); end if; Rewrite (N, diff -Nrcpad gcc-8.3.0/gcc/ada/expect.c gcc-8.4.0/gcc/ada/expect.c *** gcc-8.3.0/gcc/ada/expect.c Thu Jan 11 08:55:25 2018 --- gcc-8.4.0/gcc/ada/expect.c Wed Mar 4 08:30:00 2020 *************** __gnat_expect_poll (int *fd, *** 265,271 **** if ((status & 1) != 1) { ready = -1; ! dead_process = i + 1; return ready; } } --- 265,271 ---- if ((status & 1) != 1) { ready = -1; ! *dead_process = i + 1; return ready; } } *************** __gnat_expect_poll (int *fd, *** 450,456 **** if (ei.request == TIOCCLOSE) { ioctl (fd[i], TIOCREQSET, &ei); ! dead_process = i + 1; return -1; } --- 450,456 ---- if (ei.request == TIOCCLOSE) { ioctl (fd[i], TIOCREQSET, &ei); ! *dead_process = i + 1; return -1; } diff -Nrcpad gcc-8.3.0/gcc/ada/gcc-interface/Makefile.in gcc-8.4.0/gcc/ada/gcc-interface/Makefile.in *** gcc-8.3.0/gcc/ada/gcc-interface/Makefile.in Wed Mar 7 12:10:24 2018 --- gcc-8.4.0/gcc/ada/gcc-interface/Makefile.in Wed Mar 4 08:30:00 2020 *************** gnatlink-re: ../stamp-tools gnatmake-re *** 2285,2293 **** install-gcc-specs: # Install all the requested GCC spec files. ! for f in $(GCC_SPEC_FILES); do \ ! $(INSTALL_DATA_DATE) $(srcdir)/ada/$$f $(libsubdir)/; \ ! done install-gnatlib: ../stamp-gnatlib-$(RTSDIR) install-gcc-specs $(RMDIR) $(DESTDIR)$(ADA_RTL_OBJ_DIR) --- 2285,2292 ---- install-gcc-specs: # Install all the requested GCC spec files. ! $(foreach f,$(GCC_SPEC_FILES), \ ! $(INSTALL_DATA_DATE) $(srcdir)/ada/$(f) $(DESTDIR)$(libsubdir)/;) install-gnatlib: ../stamp-gnatlib-$(RTSDIR) install-gcc-specs $(RMDIR) $(DESTDIR)$(ADA_RTL_OBJ_DIR) diff -Nrcpad gcc-8.3.0/gcc/ada/gcc-interface/decl.c gcc-8.4.0/gcc/ada/gcc-interface/decl.c *** gcc-8.3.0/gcc/ada/gcc-interface/decl.c Sun Jan 27 18:10:46 2019 --- gcc-8.4.0/gcc/ada/gcc-interface/decl.c Wed Mar 4 08:30:00 2020 *************** gnat_to_gnu_entity (Entity_Id gnat_entit *** 295,301 **** tree gnu_size = NULL_TREE; /* Contains the GCC name to be used for the GCC node. */ tree gnu_entity_name; ! /* True if we have already saved gnu_decl as a GNAT association. */ bool saved = false; /* True if we incremented defer_incomplete_level. */ bool this_deferred = false; --- 295,304 ---- tree gnu_size = NULL_TREE; /* Contains the GCC name to be used for the GCC node. */ tree gnu_entity_name; ! /* True if we have already saved gnu_decl as a GNAT association. This can ! also be used to purposely avoid making such an association but this use ! case ought not to be applied to types because it can break the deferral ! mechanism implemented for access types. */ bool saved = false; /* True if we incremented defer_incomplete_level. */ bool this_deferred = false; *************** gnat_to_gnu_entity (Entity_Id gnat_entit *** 312,325 **** /* Since a use of an Itype is a definition, process it as such if it is in the main unit, except for E_Access_Subtype because it's actually a use ! of its base type, and for E_Record_Subtype with cloned subtype because ! it's actually a use of the cloned subtype, see below. */ if (!definition && is_type && Is_Itype (gnat_entity) ! && !(kind == E_Access_Subtype ! || (kind == E_Record_Subtype ! && Present (Cloned_Subtype (gnat_entity)))) && !present_gnu_tree (gnat_entity) && In_Extended_Main_Code_Unit (gnat_entity)) { --- 315,325 ---- /* Since a use of an Itype is a definition, process it as such if it is in the main unit, except for E_Access_Subtype because it's actually a use ! of its base type, see below. */ if (!definition && is_type && Is_Itype (gnat_entity) ! && Ekind (gnat_entity) != E_Access_Subtype && !present_gnu_tree (gnat_entity) && In_Extended_Main_Code_Unit (gnat_entity)) { *************** gnat_to_gnu_entity (Entity_Id gnat_entit *** 362,368 **** } /* This abort means the Itype has an incorrect scope, i.e. that its ! scope does not correspond to the subprogram it is declared in. */ gcc_unreachable (); } --- 362,368 ---- } /* This abort means the Itype has an incorrect scope, i.e. that its ! scope does not correspond to the subprogram it is first used in. */ gcc_unreachable (); } *************** gnat_to_gnu_entity (Entity_Id gnat_entit *** 371,377 **** In that case, we will abort below when we try to save a new GCC tree for this object. We also need to handle the case of getting a dummy type when a Full_View exists but be careful so as not to trigger its ! premature elaboration. */ if ((!definition || (is_type && imported_p)) && present_gnu_tree (gnat_entity)) { --- 371,379 ---- In that case, we will abort below when we try to save a new GCC tree for this object. We also need to handle the case of getting a dummy type when a Full_View exists but be careful so as not to trigger its ! premature elaboration. Likewise for a cloned subtype without its own ! freeze node, which typically happens when a generic gets instantiated ! on an incomplete or private type. */ if ((!definition || (is_type && imported_p)) && present_gnu_tree (gnat_entity)) { *************** gnat_to_gnu_entity (Entity_Id gnat_entit *** 385,391 **** || No (Freeze_Node (Full_View (gnat_entity))))) { gnu_decl ! = gnat_to_gnu_entity (Full_View (gnat_entity), NULL_TREE, false); save_gnu_tree (gnat_entity, NULL_TREE, false); save_gnu_tree (gnat_entity, gnu_decl, false); } --- 387,409 ---- || No (Freeze_Node (Full_View (gnat_entity))))) { gnu_decl ! = gnat_to_gnu_entity (Full_View (gnat_entity), NULL_TREE, ! false); ! save_gnu_tree (gnat_entity, NULL_TREE, false); ! save_gnu_tree (gnat_entity, gnu_decl, false); ! } ! ! if (TREE_CODE (gnu_decl) == TYPE_DECL ! && TYPE_IS_DUMMY_P (TREE_TYPE (gnu_decl)) ! && Ekind (gnat_entity) == E_Record_Subtype ! && No (Freeze_Node (gnat_entity)) ! && Present (Cloned_Subtype (gnat_entity)) ! && (present_gnu_tree (Cloned_Subtype (gnat_entity)) ! || No (Freeze_Node (Cloned_Subtype (gnat_entity))))) ! { ! gnu_decl ! = gnat_to_gnu_entity (Cloned_Subtype (gnat_entity), NULL_TREE, ! false); save_gnu_tree (gnat_entity, NULL_TREE, false); save_gnu_tree (gnat_entity, gnu_decl, false); } *************** gnat_to_gnu_entity (Entity_Id gnat_entit *** 3367,3379 **** case E_Record_Subtype: /* If Cloned_Subtype is Present it means this record subtype has identical layout to that type or subtype and we should use ! that GCC type for this one. The front end guarantees that the component list is shared. */ if (Present (Cloned_Subtype (gnat_entity))) { gnu_decl = gnat_to_gnu_entity (Cloned_Subtype (gnat_entity), NULL_TREE, false); ! saved = true; break; } --- 3385,3397 ---- case E_Record_Subtype: /* If Cloned_Subtype is Present it means this record subtype has identical layout to that type or subtype and we should use ! that GCC type for this one. The front-end guarantees that the component list is shared. */ if (Present (Cloned_Subtype (gnat_entity))) { gnu_decl = gnat_to_gnu_entity (Cloned_Subtype (gnat_entity), NULL_TREE, false); ! maybe_present = true; break; } *************** gnat_to_gnu_entity (Entity_Id gnat_entit *** 3787,3794 **** case E_Access_Subtype: /* We treat this as identical to its base type; any constraint is meaningful only to the front-end. */ ! gnu_decl = gnat_to_gnu_entity (Etype (gnat_entity), NULL_TREE, false); ! saved = true; /* The designated subtype must be elaborated as well, if it does not have its own freeze node. But designated subtypes created --- 3805,3812 ---- case E_Access_Subtype: /* We treat this as identical to its base type; any constraint is meaningful only to the front-end. */ ! gnu_decl = gnat_to_gnu_entity (gnat_equiv_type, NULL_TREE, false); ! maybe_present = true; /* The designated subtype must be elaborated as well, if it does not have its own freeze node. But designated subtypes created *************** Gigi_Equivalent_Type (Entity_Id gnat_ent *** 4974,4979 **** --- 4992,5001 ---- gnat_equiv = Equivalent_Type (gnat_entity); break; + case E_Access_Subtype: + gnat_equiv = Etype (gnat_entity); + break; + case E_Class_Wide_Type: gnat_equiv = Root_Type (gnat_entity); break; *************** static void *** 6065,6071 **** set_nonaliased_component_on_array_type (tree type) { TYPE_NONALIASED_COMPONENT (type) = 1; ! TYPE_NONALIASED_COMPONENT (TYPE_CANONICAL (type)) = 1; } /* Set TYPE_REVERSE_STORAGE_ORDER on an array type built by means of --- 6087,6094 ---- set_nonaliased_component_on_array_type (tree type) { TYPE_NONALIASED_COMPONENT (type) = 1; ! if (TYPE_CANONICAL (type)) ! TYPE_NONALIASED_COMPONENT (TYPE_CANONICAL (type)) = 1; } /* Set TYPE_REVERSE_STORAGE_ORDER on an array type built by means of *************** static void *** 6075,6081 **** set_reverse_storage_order_on_array_type (tree type) { TYPE_REVERSE_STORAGE_ORDER (type) = 1; ! TYPE_REVERSE_STORAGE_ORDER (TYPE_CANONICAL (type)) = 1; } /* Return true if DISCR1 and DISCR2 represent the same discriminant. */ --- 6098,6105 ---- set_reverse_storage_order_on_array_type (tree type) { TYPE_REVERSE_STORAGE_ORDER (type) = 1; ! if (TYPE_CANONICAL (type)) ! TYPE_REVERSE_STORAGE_ORDER (TYPE_CANONICAL (type)) = 1; } /* Return true if DISCR1 and DISCR2 represent the same discriminant. */ *************** annotate_value (tree gnu_size) *** 8083,8091 **** { case INTEGER_CST: /* For negative values, build NEGATE_EXPR of the opposite. Such values ! can appear for discriminants in expressions for variants. Note that, ! sizetype being unsigned, we don't directly use tree_int_cst_sgn. */ ! if (tree_int_cst_sign_bit (gnu_size)) { tree t = wide_int_to_tree (sizetype, -wi::to_wide (gnu_size)); tcode = Negate_Expr; --- 8107,8114 ---- { case INTEGER_CST: /* For negative values, build NEGATE_EXPR of the opposite. Such values ! can appear for discriminants in expressions for variants. */ ! if (tree_int_cst_sgn (gnu_size) < 0) { tree t = wide_int_to_tree (sizetype, -wi::to_wide (gnu_size)); tcode = Negate_Expr; *************** annotate_value (tree gnu_size) *** 8163,8171 **** && tree_int_cst_sign_bit (TREE_OPERAND (gnu_size, 1))) { tcode = Minus_Expr; ! ops[0] = annotate_value (TREE_OPERAND (gnu_size, 0)); ! wide_int op1 = -wi::to_wide (TREE_OPERAND (gnu_size, 1)); ! ops[1] = annotate_value (wide_int_to_tree (sizetype, op1)); break; } --- 8186,8193 ---- && tree_int_cst_sign_bit (TREE_OPERAND (gnu_size, 1))) { tcode = Minus_Expr; ! wide_int wop1 = -wi::to_wide (TREE_OPERAND (gnu_size, 1)); ! ops[1] = annotate_value (wide_int_to_tree (sizetype, wop1)); break; } *************** annotate_value (tree gnu_size) *** 8206,8214 **** Such values can appear in expressions with aligning patterns. */ if (TREE_CODE (TREE_OPERAND (gnu_size, 1)) == INTEGER_CST) { ! wide_int op1 = wi::sext (wi::to_wide (TREE_OPERAND (gnu_size, 1)), ! TYPE_PRECISION (sizetype)); ! ops[1] = annotate_value (wide_int_to_tree (sizetype, op1)); } break; --- 8228,8236 ---- Such values can appear in expressions with aligning patterns. */ if (TREE_CODE (TREE_OPERAND (gnu_size, 1)) == INTEGER_CST) { ! wide_int wop1 = -wi::to_wide (TREE_OPERAND (gnu_size, 1)); ! tree op1 = wide_int_to_tree (sizetype, wop1); ! ops[1] = annotate_value (build1 (NEGATE_EXPR, sizetype, op1)); } break; diff -Nrcpad gcc-8.3.0/gcc/ada/gcc-interface/trans.c gcc-8.4.0/gcc/ada/gcc-interface/trans.c *** gcc-8.3.0/gcc/ada/gcc-interface/trans.c Fri Feb 8 11:07:36 2019 --- gcc-8.4.0/gcc/ada/gcc-interface/trans.c Wed Mar 4 08:30:00 2020 *************** Attribute_to_gnu (Node_Id gnat_node, tre *** 1720,1751 **** /* For other address attributes applied to a nested function, find an inner ADDR_EXPR and annotate it so that we can issue a useful warning with -Wtrampolines. */ ! else if (TREE_CODE (TREE_TYPE (gnu_prefix)) == FUNCTION_TYPE) { ! gnu_expr = remove_conversions (gnu_result, false); ! ! if (TREE_CODE (gnu_expr) == ADDR_EXPR ! && decl_function_context (TREE_OPERAND (gnu_expr, 0))) ! { ! set_expr_location_from_node (gnu_expr, gnat_node); ! /* Also check the inlining status. */ ! check_inlining_for_nested_subprog (TREE_OPERAND (gnu_expr, 0)); ! /* Moreover, for 'Access or 'Unrestricted_Access with non- ! foreign-compatible representation, mark the ADDR_EXPR so ! that we can build a descriptor instead of a trampoline. */ ! if ((attribute == Attr_Access ! || attribute == Attr_Unrestricted_Access) ! && targetm.calls.custom_function_descriptors > 0 ! && Can_Use_Internal_Rep (Etype (gnat_node))) ! FUNC_ADDR_BY_DESCRIPTOR (gnu_expr) = 1; ! /* Otherwise, we need to check that we are not violating the ! No_Implicit_Dynamic_Code restriction. */ ! else if (targetm.calls.custom_function_descriptors != 0) ! Check_Implicit_Dynamic_Code_Allowed (gnat_node); ! } } break; --- 1720,1748 ---- /* For other address attributes applied to a nested function, find an inner ADDR_EXPR and annotate it so that we can issue a useful warning with -Wtrampolines. */ ! else if (TREE_CODE (TREE_TYPE (gnu_prefix)) == FUNCTION_TYPE ! && (gnu_expr = remove_conversions (gnu_result, false)) ! && TREE_CODE (gnu_expr) == ADDR_EXPR ! && decl_function_context (TREE_OPERAND (gnu_expr, 0))) { ! set_expr_location_from_node (gnu_expr, gnat_node); ! /* Also check the inlining status. */ ! check_inlining_for_nested_subprog (TREE_OPERAND (gnu_expr, 0)); ! /* Moreover, for 'Access or 'Unrestricted_Access with non- ! foreign-compatible representation, mark the ADDR_EXPR so ! that we can build a descriptor instead of a trampoline. */ ! if ((attribute == Attr_Access ! || attribute == Attr_Unrestricted_Access) ! && targetm.calls.custom_function_descriptors > 0 ! && Can_Use_Internal_Rep (Underlying_Type (Etype (gnat_node)))) ! FUNC_ADDR_BY_DESCRIPTOR (gnu_expr) = 1; ! /* Otherwise, we need to check that we are not violating the ! No_Implicit_Dynamic_Code restriction. */ ! else if (targetm.calls.custom_function_descriptors != 0) ! Check_Implicit_Dynamic_Code_Allowed (gnat_node); } break; *************** finalize_nrv_unc_r (tree *tp, int *walk_ *** 3534,3539 **** --- 3531,3550 ---- return NULL_TREE; } + /* Apply FUNC to all the sub-trees of nested functions in NODE. FUNC is called + with the DATA and the address of each sub-tree. If FUNC returns a non-NULL + value, the traversal is stopped. */ + + static void + walk_nesting_tree (struct cgraph_node *node, walk_tree_fn func, void *data) + { + for (node = node->nested; node; node = node->next_nested) + { + walk_tree_without_duplicates (&DECL_SAVED_TREE (node->decl), func, data); + walk_nesting_tree (node, func, data); + } + } + /* Finalize the Named Return Value optimization for FNDECL. The NRV bitmap contains the candidates for Named Return Value and OTHER is a list of the other return values. GNAT_RET is a representative return node. */ *************** finalize_nrv_unc_r (tree *tp, int *walk_ *** 3541,3547 **** static void finalize_nrv (tree fndecl, bitmap nrv, vec *other, Node_Id gnat_ret) { - struct cgraph_node *node; struct nrv_data data; walk_tree_fn func; unsigned int i; --- 3552,3557 ---- *************** finalize_nrv (tree fndecl, bitmap nrv, v *** 3562,3571 **** return; /* Prune also the candidates that are referenced by nested functions. */ ! node = cgraph_node::get_create (fndecl); ! for (node = node->nested; node; node = node->next_nested) ! walk_tree_without_duplicates (&DECL_SAVED_TREE (node->decl), prune_nrv_r, ! &data); if (bitmap_empty_p (nrv)) return; --- 3572,3578 ---- return; /* Prune also the candidates that are referenced by nested functions. */ ! walk_nesting_tree (cgraph_node::get_create (fndecl), prune_nrv_r, &data); if (bitmap_empty_p (nrv)) return; *************** Call_to_gnu (Node_Id gnat_node, tree *gn *** 4308,4314 **** /* If the access type doesn't require foreign-compatible representation, be prepared for descriptors. */ if (targetm.calls.custom_function_descriptors > 0 ! && Can_Use_Internal_Rep (Etype (Prefix (Name (gnat_node))))) by_descriptor = true; } else if (Nkind (Name (gnat_node)) == N_Attribute_Reference) --- 4315,4322 ---- /* If the access type doesn't require foreign-compatible representation, be prepared for descriptors. */ if (targetm.calls.custom_function_descriptors > 0 ! && Can_Use_Internal_Rep ! (Underlying_Type (Etype (Prefix (Name (gnat_node)))))) by_descriptor = true; } else if (Nkind (Name (gnat_node)) == N_Attribute_Reference) *************** Call_to_gnu (Node_Id gnat_node, tree *gn *** 4575,4581 **** since the parent is a procedure call, so put it back here. Note that we might have a dummy type here if the actual is the dereference of a pointer to it, but that's OK if the formal is passed by reference. */ ! tree gnu_actual_type = gnat_to_gnu_type (Etype (gnat_actual)); if (TYPE_IS_DUMMY_P (gnu_actual_type)) gcc_assert (is_true_formal_parm && DECL_BY_REF_P (gnu_formal)); else if (suppress_type_conversion --- 4583,4589 ---- since the parent is a procedure call, so put it back here. Note that we might have a dummy type here if the actual is the dereference of a pointer to it, but that's OK if the formal is passed by reference. */ ! tree gnu_actual_type = get_unpadded_type (Etype (gnat_actual)); if (TYPE_IS_DUMMY_P (gnu_actual_type)) gcc_assert (is_true_formal_parm && DECL_BY_REF_P (gnu_formal)); else if (suppress_type_conversion *************** mark_visited_r (tree *tp, int *walk_subt *** 8167,8174 **** else if (!TYPE_IS_DUMMY_P (t)) TREE_VISITED (t) = 1; if (TYPE_P (t)) ! TYPE_SIZES_GIMPLIFIED (t) = 1; return NULL_TREE; } --- 8175,8183 ---- else if (!TYPE_IS_DUMMY_P (t)) TREE_VISITED (t) = 1; + /* The test in gimplify_type_sizes is on the main variant. */ if (TYPE_P (t)) ! TYPE_SIZES_GIMPLIFIED (TYPE_MAIN_VARIANT (t)) = 1; return NULL_TREE; } diff -Nrcpad gcc-8.3.0/gcc/ada/gcc-interface/utils.c gcc-8.4.0/gcc/ada/gcc-interface/utils.c *** gcc-8.3.0/gcc/ada/gcc-interface/utils.c Fri Feb 8 11:20:57 2019 --- gcc-8.4.0/gcc/ada/gcc-interface/utils.c Wed Mar 4 08:30:00 2020 *************** built: *** 1519,1532 **** generated for some other corresponding source entity. */ if (Comes_From_Source (gnat_entity)) { ! if (Present (gnat_error_node)) ! post_error_ne_tree ("{^ }bits of & unused?", ! gnat_error_node, gnat_entity, ! size_diffop (size, orig_size)); ! else if (is_component_type) post_error_ne_tree ("component of& padded{ by ^ bits}?", gnat_entity, gnat_entity, size_diffop (size, orig_size)); } } --- 1519,1532 ---- generated for some other corresponding source entity. */ if (Comes_From_Source (gnat_entity)) { ! if (is_component_type) post_error_ne_tree ("component of& padded{ by ^ bits}?", gnat_entity, gnat_entity, size_diffop (size, orig_size)); + else if (Present (gnat_error_node)) + post_error_ne_tree ("{^ }bits of & unused?", + gnat_error_node, gnat_entity, + size_diffop (size, orig_size)); } } diff -Nrcpad gcc-8.3.0/gcc/ada/gnatlink.adb gcc-8.4.0/gcc/ada/gnatlink.adb *** gcc-8.3.0/gcc/ada/gnatlink.adb Fri Mar 23 23:20:59 2018 --- gcc-8.4.0/gcc/ada/gnatlink.adb Wed Mar 4 08:30:00 2020 *************** begin *** 1882,1887 **** --- 1882,1888 ---- Clean_Link_Option_Set : declare J : Natural; Shared_Libgcc_Seen : Boolean := False; + Static_Libgcc_Seen : Boolean := False; begin J := Linker_Options.First; *************** begin *** 1903,1909 **** end if; end if; ! -- Remove duplicate -shared-libgcc switch if Linker_Options.Table (J).all = Shared_Libgcc_String then if Shared_Libgcc_Seen then --- 1904,1910 ---- end if; end if; ! -- Remove duplicate -shared-libgcc switches if Linker_Options.Table (J).all = Shared_Libgcc_String then if Shared_Libgcc_Seen then *************** begin *** 1917,1922 **** --- 1918,1937 ---- end if; end if; + -- Remove duplicate -static-libgcc switches + + if Linker_Options.Table (J).all = Static_Libgcc_String then + if Static_Libgcc_Seen then + Linker_Options.Table (J .. Linker_Options.Last - 1) := + Linker_Options.Table (J + 1 .. Linker_Options.Last); + Linker_Options.Decrement_Last; + Num_Args := Num_Args - 1; + + else + Static_Libgcc_Seen := True; + end if; + end if; + -- Here we just check for a canonical form that matches the -- pragma Linker_Options set in the NT runtime. *************** begin *** 1948,1961 **** --- 1963,1989 ---- -- libgcc, if gcc is not called with -shared-libgcc, call it -- with -static-libgcc, as there are some platforms where one -- of these two switches is compulsory to link. + -- Don't push extra switches if we already saw one. if Shared_Libgcc_Default = 'T' and then not Shared_Libgcc_Seen + and then not Static_Libgcc_Seen then Linker_Options.Increment_Last; Linker_Options.Table (Linker_Options.Last) := Static_Libgcc; Num_Args := Num_Args + 1; end if; + + -- Likewise, the reverse. + + if Shared_Libgcc_Default = 'H' + and then not Static_Libgcc_Seen + and then not Shared_Libgcc_Seen + then + Linker_Options.Increment_Last; + Linker_Options.Table (Linker_Options.Last) := Shared_Libgcc; + Num_Args := Num_Args + 1; + end if; end if; end Clean_Link_Option_Set; diff -Nrcpad gcc-8.3.0/gcc/ada/libgnat/system-darwin-ppc.ads gcc-8.4.0/gcc/ada/libgnat/system-darwin-ppc.ads *** gcc-8.3.0/gcc/ada/libgnat/system-darwin-ppc.ads Thu Jan 11 08:55:25 2018 --- gcc-8.4.0/gcc/ada/libgnat/system-darwin-ppc.ads Wed Mar 4 08:30:00 2020 *************** private *** 158,164 **** Preallocated_Stacks : constant Boolean := False; Signed_Zeros : constant Boolean := True; Stack_Check_Default : constant Boolean := False; ! Stack_Check_Probes : constant Boolean := False; Stack_Check_Limits : constant Boolean := False; Support_Aggregates : constant Boolean := True; Support_Atomic_Primitives : constant Boolean := Word_Size = 64; --- 158,164 ---- Preallocated_Stacks : constant Boolean := False; Signed_Zeros : constant Boolean := True; Stack_Check_Default : constant Boolean := False; ! Stack_Check_Probes : constant Boolean := True; Stack_Check_Limits : constant Boolean := False; Support_Aggregates : constant Boolean := True; Support_Atomic_Primitives : constant Boolean := Word_Size = 64; diff -Nrcpad gcc-8.3.0/gcc/ada/osint.adb gcc-8.4.0/gcc/ada/osint.adb *** gcc-8.3.0/gcc/ada/osint.adb Thu Jan 11 08:55:25 2018 --- gcc-8.4.0/gcc/ada/osint.adb Wed Mar 4 08:30:00 2020 *************** package body Osint is *** 250,257 **** Attr : aliased File_Attributes; end record; ! No_File_Info_Cache : constant File_Info_Cache := ! (No_File, Unknown_Attributes); package File_Name_Hash_Table is new GNAT.HTable.Simple_HTable ( Header_Num => File_Hash_Num, --- 250,256 ---- Attr : aliased File_Attributes; end record; ! No_File_Info_Cache : constant File_Info_Cache := (No_File, (others => 0)); package File_Name_Hash_Table is new GNAT.HTable.Simple_HTable ( Header_Num => File_Hash_Num, diff -Nrcpad gcc-8.3.0/gcc/ada/osint.ads gcc-8.4.0/gcc/ada/osint.ads *** gcc-8.3.0/gcc/ada/osint.ads Thu Jan 11 08:55:25 2018 --- gcc-8.4.0/gcc/ada/osint.ads Wed Mar 4 08:30:00 2020 *************** package Osint is *** 255,264 **** -- from the disk and then cached in the File_Attributes parameter (possibly -- along with other values). ! type File_Attributes is private; ! Unknown_Attributes : constant File_Attributes; -- A cache for various attributes for a file (length, accessibility,...) ! -- This must be initialized to Unknown_Attributes prior to the first call. function Is_Directory (Name : C_File_Name; --- 255,280 ---- -- from the disk and then cached in the File_Attributes parameter (possibly -- along with other values). ! File_Attributes_Size : constant Natural := 32; ! -- This should be big enough to fit a "struct file_attributes" on any ! -- system. It doesn't cause any malfunction if it is too big (which avoids ! -- the need for either mapping the struct exactly or importing the sizeof ! -- from C, which would result in dynamic code). However, it does waste ! -- space (e.g. when a component of this type appears in a record, if it is ! -- unnecessarily large). Note: for runtime units, use System.OS_Constants. ! -- SIZEOF_struct_file_attributes instead, which has the exact value. ! ! type File_Attributes is ! array (1 .. File_Attributes_Size) ! of System.Storage_Elements.Storage_Element; ! for File_Attributes'Alignment use Standard'Maximum_Alignment; ! ! Unknown_Attributes : File_Attributes; -- A cache for various attributes for a file (length, accessibility,...) ! -- Will be initialized properly at elaboration (for efficiency later on, ! -- avoid function calls every time we want to reset the attributes) prior ! -- to the first usage. We cannot make it constant since the compiler may ! -- put it in a read-only section. function Is_Directory (Name : C_File_Name; *************** private *** 754,775 **** -- detected, the file being written is deleted, and a fatal error is -- signalled. - File_Attributes_Size : constant Natural := 32; - -- This should be big enough to fit a "struct file_attributes" on any - -- system. It doesn't cause any malfunction if it is too big (which avoids - -- the need for either mapping the struct exactly or importing the sizeof - -- from C, which would result in dynamic code). However, it does waste - -- space (e.g. when a component of this type appears in a record, if it is - -- unnecessarily large). Note: for runtime units, use System.OS_Constants. - -- SIZEOF_struct_file_attributes instead, which has the exact value. - - type File_Attributes is - array (1 .. File_Attributes_Size) - of System.Storage_Elements.Storage_Element; - for File_Attributes'Alignment use Standard'Maximum_Alignment; - - Unknown_Attributes : constant File_Attributes := (others => 0); - -- Will be initialized properly at elaboration (for efficiency later on, - -- avoid function calls every time we want to reset the attributes). - end Osint; --- 770,773 ---- diff -Nrcpad gcc-8.3.0/gcc/ada/sem_ch8.adb gcc-8.4.0/gcc/ada/sem_ch8.adb *** gcc-8.3.0/gcc/ada/sem_ch8.adb Thu Jan 11 08:55:25 2018 --- gcc-8.4.0/gcc/ada/sem_ch8.adb Wed Mar 4 08:30:00 2020 *************** package body Sem_Ch8 is *** 4259,4274 **** -- Common case for compilation unit ! elsif Defining_Entity (N => Parent (N), ! Empty_On_Errors => True) = Current_Scope ! then null; else -- If declaration appears in some other scope, it must be in some -- parent unit when compiling a child. ! Pack := Defining_Entity (Parent (N), Empty_On_Errors => True); if not In_Open_Scopes (Pack) then null; --- 4259,4272 ---- -- Common case for compilation unit ! elsif Defining_Entity (Parent (N)) = Current_Scope then null; else -- If declaration appears in some other scope, it must be in some -- parent unit when compiling a child. ! Pack := Defining_Entity (Parent (N)); if not In_Open_Scopes (Pack) then null; diff -Nrcpad gcc-8.3.0/gcc/ada/sem_elab.adb gcc-8.4.0/gcc/ada/sem_elab.adb *** gcc-8.3.0/gcc/ada/sem_elab.adb Thu Jan 11 08:55:25 2018 --- gcc-8.4.0/gcc/ada/sem_elab.adb Wed Mar 4 08:30:00 2020 *************** package body Sem_Elab is *** 5544,5556 **** N_Procedure_Instantiation) and then Nkind (Context) = N_Compilation_Unit then ! return ! Related_Instance (Defining_Entity (N, Concurrent_Subunit => True)); -- Otherwise the proper entity is the defining entity else ! return Defining_Entity (N, Concurrent_Subunit => True); end if; end Find_Unit_Entity; --- 5544,5566 ---- N_Procedure_Instantiation) and then Nkind (Context) = N_Compilation_Unit then ! return Related_Instance (Defining_Entity (N)); ! ! -- The unit denotes a concurrent body acting as a subunit. Such bodies ! -- are generally rewritten into null statements. The proper entity is ! -- that of the "original node". ! ! elsif Nkind (N) = N_Subunit ! and then Nkind (Proper_Body (N)) = N_Null_Statement ! and then Nkind_In (Original_Node (Proper_Body (N)), N_Protected_Body, ! N_Task_Body) ! then ! return Defining_Entity (Original_Node (Proper_Body (N))); -- Otherwise the proper entity is the defining entity else ! return Defining_Entity (N); end if; end Find_Unit_Entity; diff -Nrcpad gcc-8.3.0/gcc/ada/sem_spark.adb gcc-8.4.0/gcc/ada/sem_spark.adb *** gcc-8.3.0/gcc/ada/sem_spark.adb Thu Jan 11 08:55:25 2018 --- gcc-8.4.0/gcc/ada/sem_spark.adb Wed Mar 4 08:30:00 2020 *************** package body Sem_SPARK is *** 971,977 **** if Present (SPARK_Pragma (Defining_Entity (Body_N))) then if Get_SPARK_Mode_From_Annotation ! (SPARK_Pragma (Defining_Entity (Body_N, False))) /= Opt.On then return; end if; --- 971,977 ---- if Present (SPARK_Pragma (Defining_Entity (Body_N))) then if Get_SPARK_Mode_From_Annotation ! (SPARK_Pragma (Defining_Entity (Body_N))) /= Opt.On then return; end if; *************** package body Sem_SPARK is *** 2379,2385 **** CorSp : Node_Id; begin ! if Present (SPARK_Pragma (Defining_Entity (Pack, False))) then if Get_SPARK_Mode_From_Annotation (SPARK_Pragma (Defining_Entity (Pack))) /= Opt.On then --- 2379,2385 ---- CorSp : Node_Id; begin ! if Present (SPARK_Pragma (Defining_Entity (Pack))) then if Get_SPARK_Mode_From_Annotation (SPARK_Pragma (Defining_Entity (Pack))) /= Opt.On then diff -Nrcpad gcc-8.3.0/gcc/ada/sem_util.adb gcc-8.4.0/gcc/ada/sem_util.adb *** gcc-8.3.0/gcc/ada/sem_util.adb Thu Jan 11 08:55:57 2018 --- gcc-8.4.0/gcc/ada/sem_util.adb Wed Mar 4 08:30:00 2020 *************** package body Sem_Util is *** 5714,5724 **** -- Defining_Entity -- --------------------- ! function Defining_Entity ! (N : Node_Id; ! Empty_On_Errors : Boolean := False; ! Concurrent_Subunit : Boolean := False) return Entity_Id ! is begin case Nkind (N) is when N_Abstract_Subprogram_Declaration --- 5714,5720 ---- -- Defining_Entity -- --------------------- ! function Defining_Entity (N : Node_Id) return Entity_Id is begin case Nkind (N) is when N_Abstract_Subprogram_Declaration *************** package body Sem_Util is *** 5769,5792 **** => return Defining_Identifier (N); ! when N_Subunit => ! declare ! Bod : constant Node_Id := Proper_Body (N); ! Orig_Bod : constant Node_Id := Original_Node (Bod); ! ! begin ! -- Retrieve the entity of the original protected or task body ! -- if requested by the caller. ! if Concurrent_Subunit ! and then Nkind (Bod) = N_Null_Statement ! and then Nkind_In (Orig_Bod, N_Protected_Body, N_Task_Body) ! then ! return Defining_Entity (Orig_Bod); ! else ! return Defining_Entity (Bod); ! end if; ! end; when N_Function_Instantiation | N_Function_Specification --- 5765,5775 ---- => return Defining_Identifier (N); ! when N_Compilation_Unit => ! return Defining_Entity (Unit (N)); ! when N_Subunit => ! return Defining_Entity (Proper_Body (N)); when N_Function_Instantiation | N_Function_Specification *************** package body Sem_Util is *** 5812,5825 **** -- can continue semantic analysis. elsif Nam = Error then ! if Empty_On_Errors then ! return Empty; ! else ! Err := Make_Temporary (Sloc (N), 'T'); ! Set_Defining_Unit_Name (N, Err); ! return Err; ! end if; -- If not an entity, get defining identifier --- 5795,5804 ---- -- can continue semantic analysis. elsif Nam = Error then ! Err := Make_Temporary (Sloc (N), 'T'); ! Set_Defining_Unit_Name (N, Err); ! return Err; -- If not an entity, get defining identifier *************** package body Sem_Util is *** 5834,5844 **** return Entity (Identifier (N)); when others => ! if Empty_On_Errors then ! return Empty; ! else ! raise Program_Error; ! end if; end case; end Defining_Entity; --- 5813,5819 ---- return Entity (Identifier (N)); when others => ! raise Program_Error; end case; end Defining_Entity; diff -Nrcpad gcc-8.3.0/gcc/ada/sem_util.ads gcc-8.4.0/gcc/ada/sem_util.ads *** gcc-8.3.0/gcc/ada/sem_util.ads Thu Jan 11 08:55:57 2018 --- gcc-8.4.0/gcc/ada/sem_util.ads Wed Mar 4 08:30:00 2020 *************** package Sem_Util is *** 543,552 **** -- in the case of a descendant of a generic formal type (returns Int'Last -- instead of 0). ! function Defining_Entity ! (N : Node_Id; ! Empty_On_Errors : Boolean := False; ! Concurrent_Subunit : Boolean := False) return Entity_Id; -- Given a declaration N, returns the associated defining entity. If the -- declaration has a specification, the entity is obtained from the -- specification. If the declaration has a defining unit name, then the --- 543,549 ---- -- in the case of a descendant of a generic formal type (returns Int'Last -- instead of 0). ! function Defining_Entity (N : Node_Id) return Entity_Id; -- Given a declaration N, returns the associated defining entity. If the -- declaration has a specification, the entity is obtained from the -- specification. If the declaration has a defining unit name, then the *************** package Sem_Util is *** 557,578 **** -- local entities declared during loop expansion. These entities need -- debugging information, generated through Qualify_Entity_Names, and -- the loop declaration must be placed in the table Name_Qualify_Units. - -- - -- Set flag Empty_On_Error to change the behavior of this routine as - -- follows: - -- - -- * True - A declaration that lacks a defining entity returns Empty. - -- A node that does not allow for a defining entity returns Empty. - -- - -- * False - A declaration that lacks a defining entity is given a new - -- internally generated entity which is subsequently returned. A node - -- that does not allow for a defining entity raises Program_Error. - -- - -- The former semantics is appropriate for the back end; the latter - -- semantics is appropriate for the front end. - -- - -- Set flag Concurrent_Subunit to handle rewritings of concurrent bodies - -- which act as subunits. Such bodies are generally rewritten as null. function Denotes_Discriminant (N : Node_Id; --- 554,559 ---- diff -Nrcpad gcc-8.3.0/gcc/alias.c gcc-8.4.0/gcc/alias.c *** gcc-8.3.0/gcc/alias.c Fri Apr 6 08:30:52 2018 --- gcc-8.4.0/gcc/alias.c Wed Mar 4 08:30:00 2020 *************** record_alias_subset (alias_set_type supe *** 1194,1208 **** } } ! /* Record that component types of TYPE, if any, are part of that type for aliasing purposes. For record types, we only record component types for fields that are not marked non-addressable. For array types, we only record the component type if it is not marked non-aliased. */ void ! record_component_aliases (tree type) { - alias_set_type superset = get_alias_set (type); tree field; if (superset == 0) --- 1194,1207 ---- } } ! /* Record that component types of TYPE, if any, are part of SUPERSET for aliasing purposes. For record types, we only record component types for fields that are not marked non-addressable. For array types, we only record the component type if it is not marked non-aliased. */ void ! record_component_aliases (tree type, alias_set_type superset) { tree field; if (superset == 0) *************** record_component_aliases (tree type) *** 1252,1258 **** == get_alias_set (TREE_TYPE (field))); } ! record_alias_subset (superset, get_alias_set (t)); } break; --- 1251,1271 ---- == get_alias_set (TREE_TYPE (field))); } ! alias_set_type set = get_alias_set (t); ! record_alias_subset (superset, set); ! /* If the field has alias-set zero make sure to still record ! any componets of it. This makes sure that for ! struct A { ! struct B { ! int i; ! char c[4]; ! } b; ! }; ! in C++ even though 'B' has alias-set zero because ! TYPE_TYPELESS_STORAGE is set, 'A' has the alias-set of ! 'int' as subset. */ ! if (set == 0) ! record_component_aliases (t, superset); } break; *************** record_component_aliases (tree type) *** 1268,1273 **** --- 1281,1299 ---- } } + /* Record that component types of TYPE, if any, are part of that type for + aliasing purposes. For record types, we only record component types + for fields that are not marked non-addressable. For array types, we + only record the component type if it is not marked non-aliased. */ + + void + record_component_aliases (tree type) + { + alias_set_type superset = get_alias_set (type); + record_component_aliases (type, superset); + } + + /* Allocate an alias set for use in storing and reading from the varargs spill area. */ diff -Nrcpad gcc-8.3.0/gcc/attribs.c gcc-8.4.0/gcc/attribs.c *** gcc-8.3.0/gcc/attribs.c Thu Feb 7 14:26:06 2019 --- gcc-8.4.0/gcc/attribs.c Wed Mar 4 08:30:00 2020 *************** handle_dll_attribute (tree * pnode, tree *** 1685,1692 **** a function global scope, unless declared static. */ if (current_function_decl != NULL_TREE && !TREE_STATIC (node)) TREE_PUBLIC (node) = 1; ! /* Clear TREE_STATIC because DECL_EXTERNAL is set. */ ! TREE_STATIC (node) = 0; } if (*no_add_attrs == false) --- 1685,1695 ---- a function global scope, unless declared static. */ if (current_function_decl != NULL_TREE && !TREE_STATIC (node)) TREE_PUBLIC (node) = 1; ! /* Clear TREE_STATIC because DECL_EXTERNAL is set, unless ! it is a C++ static data member. */ ! if (DECL_CONTEXT (node) == NULL_TREE ! || !RECORD_OR_UNION_TYPE_P (DECL_CONTEXT (node))) ! TREE_STATIC (node) = 0; } if (*no_add_attrs == false) diff -Nrcpad gcc-8.3.0/gcc/brig/ChangeLog gcc-8.4.0/gcc/brig/ChangeLog *** gcc-8.3.0/gcc/brig/ChangeLog Fri Feb 22 14:20:37 2019 --- gcc-8.4.0/gcc/brig/ChangeLog Wed Mar 4 08:30:30 2020 *************** *** 1,3 **** --- 1,7 ---- + 2020-03-04 Release Manager + + * GCC 8.4.0 released. + 2019-02-22 Release Manager * GCC 8.3.0 released. diff -Nrcpad gcc-8.3.0/gcc/builtins.c gcc-8.4.0/gcc/builtins.c *** gcc-8.3.0/gcc/builtins.c Tue Apr 17 20:22:50 2018 --- gcc-8.4.0/gcc/builtins.c Wed Mar 4 08:30:00 2020 *************** expand_builtin_int_roundingfn (tree exp, *** 2560,2566 **** tree arg; if (!validate_arglist (exp, REAL_TYPE, VOID_TYPE)) ! gcc_unreachable (); arg = CALL_EXPR_ARG (exp, 0); --- 2560,2566 ---- tree arg; if (!validate_arglist (exp, REAL_TYPE, VOID_TYPE)) ! return NULL_RTX; arg = CALL_EXPR_ARG (exp, 0); *************** expand_builtin_int_roundingfn_2 (tree ex *** 2696,2702 **** enum built_in_function fallback_fn = BUILT_IN_NONE; if (!validate_arglist (exp, REAL_TYPE, VOID_TYPE)) ! gcc_unreachable (); arg = CALL_EXPR_ARG (exp, 0); --- 2696,2702 ---- enum built_in_function fallback_fn = BUILT_IN_NONE; if (!validate_arglist (exp, REAL_TYPE, VOID_TYPE)) ! return NULL_RTX; arg = CALL_EXPR_ARG (exp, 0); *************** maybe_emit_sprintf_chk_warning (tree exp *** 10088,10093 **** --- 10088,10096 ---- static void maybe_emit_free_warning (tree exp) { + if (call_expr_nargs (exp) != 1) + return; + tree arg = CALL_EXPR_ARG (exp, 0); STRIP_NOPS (arg); diff -Nrcpad gcc-8.3.0/gcc/c/ChangeLog gcc-8.4.0/gcc/c/ChangeLog *** gcc-8.3.0/gcc/c/ChangeLog Fri Feb 22 14:20:37 2019 --- gcc-8.4.0/gcc/c/ChangeLog Wed Mar 4 08:30:30 2020 *************** *** 1,3 **** --- 1,109 ---- + 2020-03-04 Release Manager + + * GCC 8.4.0 released. + + 2020-02-14 Jakub Jelinek + + Backported from mainline + 2020-02-13 Jakub Jelinek + + PR c/93576 + * c-decl.c (grokdeclarator): If this_size_varies, only push size into + *expr if it has side effects. + + 2020-01-22 Joseph Myers + + Backport from mainline: + 2020-01-22 Joseph Myers + + PR c/93348 + * c-typeck.c (build_c_cast): Call remove_c_maybe_const_expr on + argument with integer operands. + + 2020-01-15 Joseph Myers + + Backport from mainline: + 2020-01-15 Joseph Myers + + PR c/93072 + * c-decl.c (pushdecl): Use TREE_PUBLIC, not DECL_EXTERNAL, to + determine whether to set DECL_CONTEXT. + + 2020-01-14 Joseph Myers + + Backport from mainline: + 2020-01-13 Joseph Myers + + PR c/93241 + * c-typeck.c (build_c_cast): Check for expressions with integer + operands that can occur in an unevaluated part of an integer + constant expression and call note_integer_operands as needed. + + 2019-11-21 Jakub Jelinek + + Backported from mainline + 2019-08-09 Jakub Jelinek + + PR c/91401 + * c-parser.c (c_parser_omp_clause_dist_schedule): Fix up typos in the + check_no_duplicate_clause call. Comment it out, instead emit a + warning for duplicate dist_schedule clauses. + + 2019-09-03 Iain Sandoe + + Backport from mainline. + 2019-08-23 Iain Sandoe + + PR pch/61250 + * c-parser.c (c_parse_file): Call c_common_no_more_pch () + after determining that the first token is not + PRAGMA_GCC_PCH_PREPROCESS. + + 2019-08-29 Jakub Jelinek + + Backported from mainline + 2019-04-26 Jakub Jelinek + + PR debug/90197 + * c-tree.h (c_finish_loop): Add 2 further location_t arguments. + * c-parser.c (c_parser_while_statement): Adjust c_finish_loop caller. + (c_parser_do_statement): Likewise. + (c_parser_for_statement): Likewise. Formatting fixes. + * c-typeck.c (c_finish_loop): Add COND_LOCUS and INCR_LOCUS arguments, + emit DEBUG_BEGIN_STMTs if needed. + + 2019-07-21 Richard Sandiford + + Backport from mainline + 2019-07-18 Richard Sandiford + + PR c/53633 + * c-decl.c (finish_function): Check targetm.warn_func_return + before issuing a -Wreturn-type warning. + + 2019-04-30 Jakub Jelinek + + Backported from mainline + 2019-04-19 Jakub Jelinek + + PR c++/90108 + * c-decl.c (merge_decls): If remove is main variant and + DECL_ORIGINAL_TYPE is some other type, remove a DECL_ORIGINAL_TYPE + variant that has newdecl as TYPE_NAME if any. + + 2019-04-12 Jakub Jelinek + + PR c/89933 + * c-decl.c (merge_decls): When newdecl's type is its main variant, + don't try to remove it from the variant list, but instead assert + it has no variants. + + 2019-03-19 Jakub Jelinek + + PR c/89734 + * c-decl.c (grokdeclarator): Call c_build_qualified_type on function + return type even if quals_used is 0. Formatting fixes. + 2019-02-22 Release Manager * GCC 8.3.0 released. diff -Nrcpad gcc-8.3.0/gcc/c/c-decl.c gcc-8.4.0/gcc/c/c-decl.c *** gcc-8.3.0/gcc/c/c-decl.c Tue Jan 15 20:32:00 2019 --- gcc-8.4.0/gcc/c/c-decl.c Wed Mar 4 08:30:00 2020 *************** merge_decls (tree newdecl, tree olddecl, *** 2352,2364 **** if (TYPE_NAME (TREE_TYPE (newdecl)) == newdecl) { tree remove = TREE_TYPE (newdecl); ! for (tree t = TYPE_MAIN_VARIANT (remove); ; ! t = TYPE_NEXT_VARIANT (t)) ! if (TYPE_NEXT_VARIANT (t) == remove) ! { ! TYPE_NEXT_VARIANT (t) = TYPE_NEXT_VARIANT (remove); ! break; ! } } } --- 2352,2384 ---- if (TYPE_NAME (TREE_TYPE (newdecl)) == newdecl) { tree remove = TREE_TYPE (newdecl); ! if (TYPE_MAIN_VARIANT (remove) == remove) ! { ! gcc_assert (TYPE_NEXT_VARIANT (remove) == NULL_TREE); ! /* If remove is the main variant, no need to remove that ! from the list. One of the DECL_ORIGINAL_TYPE ! variants, e.g. created for aligned attribute, might still ! refer to the newdecl TYPE_DECL though, so remove that one ! in that case. */ ! if (DECL_ORIGINAL_TYPE (newdecl) ! && DECL_ORIGINAL_TYPE (newdecl) != remove) ! for (tree t = TYPE_MAIN_VARIANT (DECL_ORIGINAL_TYPE (newdecl)); ! t; t = TYPE_MAIN_VARIANT (t)) ! if (TYPE_NAME (TYPE_NEXT_VARIANT (t)) == newdecl) ! { ! TYPE_NEXT_VARIANT (t) ! = TYPE_NEXT_VARIANT (TYPE_NEXT_VARIANT (t)); ! break; ! } ! } ! else ! for (tree t = TYPE_MAIN_VARIANT (remove); ; ! t = TYPE_NEXT_VARIANT (t)) ! if (TYPE_NEXT_VARIANT (t) == remove) ! { ! TYPE_NEXT_VARIANT (t) = TYPE_NEXT_VARIANT (remove); ! break; ! } } } *************** pushdecl (tree x) *** 2864,2870 **** unless they have initializers (which generate code). */ if (current_function_decl && (!VAR_OR_FUNCTION_DECL_P (x) ! || DECL_INITIAL (x) || !DECL_EXTERNAL (x))) DECL_CONTEXT (x) = current_function_decl; /* Anonymous decls are just inserted in the scope. */ --- 2884,2890 ---- unless they have initializers (which generate code). */ if (current_function_decl && (!VAR_OR_FUNCTION_DECL_P (x) ! || DECL_INITIAL (x) || !TREE_PUBLIC (x))) DECL_CONTEXT (x) = current_function_decl; /* Anonymous decls are just inserted in the scope. */ *************** grokdeclarator (const struct c_declarato *** 6207,6217 **** } if (this_size_varies) { ! if (*expr) ! *expr = build2 (COMPOUND_EXPR, TREE_TYPE (size), ! *expr, size); ! else ! *expr = size; *expr_const_operands &= size_maybe_const; } } --- 6227,6240 ---- } if (this_size_varies) { ! if (TREE_SIDE_EFFECTS (size)) ! { ! if (*expr) ! *expr = build2 (COMPOUND_EXPR, TREE_TYPE (size), ! *expr, size); ! else ! *expr = size; ! } *expr_const_operands &= size_maybe_const; } } *************** grokdeclarator (const struct c_declarato *** 6436,6445 **** quals_used &= TYPE_QUAL_ATOMIC; if (quals_used && VOID_TYPE_P (type) && really_funcdef) pedwarn (specs_loc, 0, ! "function definition has qualified void return type"); else warning_at (specs_loc, OPT_Wignored_qualifiers, ! "type qualifiers ignored on function return type"); /* Ensure an error for restrict on invalid types; the DR#423 resolution is not entirely clear about --- 6459,6470 ---- quals_used &= TYPE_QUAL_ATOMIC; if (quals_used && VOID_TYPE_P (type) && really_funcdef) pedwarn (specs_loc, 0, ! "function definition has qualified void " ! "return type"); else warning_at (specs_loc, OPT_Wignored_qualifiers, ! "type qualifiers ignored on function " ! "return type"); /* Ensure an error for restrict on invalid types; the DR#423 resolution is not entirely clear about *************** grokdeclarator (const struct c_declarato *** 6449,6456 **** && (!POINTER_TYPE_P (type) || !C_TYPE_OBJECT_OR_INCOMPLETE_P (TREE_TYPE (type)))) error_at (loc, "invalid use of %"); ! if (quals_used) ! type = c_build_qualified_type (type, quals_used); } type_quals = TYPE_UNQUALIFIED; --- 6474,6480 ---- && (!POINTER_TYPE_P (type) || !C_TYPE_OBJECT_OR_INCOMPLETE_P (TREE_TYPE (type)))) error_at (loc, "invalid use of %"); ! type = c_build_qualified_type (type, quals_used); } type_quals = TYPE_UNQUALIFIED; *************** finish_function (void) *** 9485,9491 **** && !C_FUNCTION_IMPLICIT_INT (fndecl) /* Normally, with -Wreturn-type, flow will complain, but we might optimize out static functions. */ ! && !TREE_PUBLIC (fndecl)) { warning (OPT_Wreturn_type, "no return statement in function returning non-void"); --- 9509,9516 ---- && !C_FUNCTION_IMPLICIT_INT (fndecl) /* Normally, with -Wreturn-type, flow will complain, but we might optimize out static functions. */ ! && !TREE_PUBLIC (fndecl) ! && targetm.warn_func_return (fndecl)) { warning (OPT_Wreturn_type, "no return statement in function returning non-void"); diff -Nrcpad gcc-8.3.0/gcc/c/c-parser.c gcc-8.4.0/gcc/c/c-parser.c *** gcc-8.3.0/gcc/c/c-parser.c Thu Feb 7 14:58:21 2019 --- gcc-8.4.0/gcc/c/c-parser.c Wed Mar 4 08:30:00 2020 *************** c_parser_while_statement (c_parser *pars *** 5933,5939 **** location_t loc_after_labels; bool open_brace = c_parser_next_token_is (parser, CPP_OPEN_BRACE); body = c_parser_c99_block_statement (parser, if_p, &loc_after_labels); ! c_finish_loop (loc, cond, NULL, body, c_break_label, c_cont_label, true); add_stmt (c_end_compound_stmt (loc, block, flag_isoc99)); c_parser_maybe_reclassify_token (parser); --- 5933,5940 ---- location_t loc_after_labels; bool open_brace = c_parser_next_token_is (parser, CPP_OPEN_BRACE); body = c_parser_c99_block_statement (parser, if_p, &loc_after_labels); ! c_finish_loop (loc, loc, cond, UNKNOWN_LOCATION, NULL, body, ! c_break_label, c_cont_label, true); add_stmt (c_end_compound_stmt (loc, block, flag_isoc99)); c_parser_maybe_reclassify_token (parser); *************** c_parser_do_statement (c_parser *parser, *** 5978,5983 **** --- 5979,5985 ---- c_break_label = save_break; new_cont = c_cont_label; c_cont_label = save_cont; + location_t cond_loc = c_parser_peek_token (parser)->location; cond = c_parser_paren_condition (parser); if (ivdep && cond != error_mark_node) cond = build3 (ANNOTATE_EXPR, TREE_TYPE (cond), cond, *************** c_parser_do_statement (c_parser *parser, *** 5991,5997 **** build_int_cst (integer_type_node, unroll)); if (!c_parser_require (parser, CPP_SEMICOLON, "expected %<;%>")) c_parser_skip_to_end_of_block_or_statement (parser); ! c_finish_loop (loc, cond, NULL, body, new_break, new_cont, false); add_stmt (c_end_compound_stmt (loc, block, flag_isoc99)); } --- 5993,6000 ---- build_int_cst (integer_type_node, unroll)); if (!c_parser_require (parser, CPP_SEMICOLON, "expected %<;%>")) c_parser_skip_to_end_of_block_or_statement (parser); ! c_finish_loop (loc, cond_loc, cond, UNKNOWN_LOCATION, NULL, body, ! new_break, new_cont, false); add_stmt (c_end_compound_stmt (loc, block, flag_isoc99)); } *************** c_parser_for_statement (c_parser *parser *** 6064,6070 **** /* Silence the bogus uninitialized warning. */ tree collection_expression = NULL; location_t loc = c_parser_peek_token (parser)->location; ! location_t for_loc = c_parser_peek_token (parser)->location; bool is_foreach_statement = false; gcc_assert (c_parser_next_token_is_keyword (parser, RID_FOR)); token_indent_info for_tinfo --- 6067,6075 ---- /* Silence the bogus uninitialized warning. */ tree collection_expression = NULL; location_t loc = c_parser_peek_token (parser)->location; ! location_t for_loc = loc; ! location_t cond_loc = UNKNOWN_LOCATION; ! location_t incr_loc = UNKNOWN_LOCATION; bool is_foreach_statement = false; gcc_assert (c_parser_next_token_is_keyword (parser, RID_FOR)); token_indent_info for_tinfo *************** c_parser_for_statement (c_parser *parser *** 6098,6104 **** c_parser_consume_token (parser); is_foreach_statement = true; if (check_for_loop_decls (for_loc, true) == NULL_TREE) ! c_parser_error (parser, "multiple iterating variables in fast enumeration"); } else check_for_loop_decls (for_loc, flag_isoc99); --- 6103,6110 ---- c_parser_consume_token (parser); is_foreach_statement = true; if (check_for_loop_decls (for_loc, true) == NULL_TREE) ! c_parser_error (parser, "multiple iterating variables in " ! "fast enumeration"); } else check_for_loop_decls (for_loc, flag_isoc99); *************** c_parser_for_statement (c_parser *parser *** 6128,6134 **** c_parser_consume_token (parser); is_foreach_statement = true; if (check_for_loop_decls (for_loc, true) == NULL_TREE) ! c_parser_error (parser, "multiple iterating variables in fast enumeration"); } else check_for_loop_decls (for_loc, flag_isoc99); --- 6134,6141 ---- c_parser_consume_token (parser); is_foreach_statement = true; if (check_for_loop_decls (for_loc, true) == NULL_TREE) ! c_parser_error (parser, "multiple iterating variables in " ! "fast enumeration"); } else check_for_loop_decls (for_loc, flag_isoc99); *************** c_parser_for_statement (c_parser *parser *** 6150,6164 **** c_parser_consume_token (parser); is_foreach_statement = true; if (! lvalue_p (init_expression)) ! c_parser_error (parser, "invalid iterating variable in fast enumeration"); ! object_expression = c_fully_fold (init_expression, false, NULL); } else { ce = convert_lvalue_to_rvalue (loc, ce, true, false); init_expression = ce.value; c_finish_expr_stmt (loc, init_expression); ! c_parser_skip_until_found (parser, CPP_SEMICOLON, "expected %<;%>"); } } } --- 6157,6174 ---- c_parser_consume_token (parser); is_foreach_statement = true; if (! lvalue_p (init_expression)) ! c_parser_error (parser, "invalid iterating variable in " ! "fast enumeration"); ! object_expression ! = c_fully_fold (init_expression, false, NULL); } else { ce = convert_lvalue_to_rvalue (loc, ce, true, false); init_expression = ce.value; c_finish_expr_stmt (loc, init_expression); ! c_parser_skip_until_found (parser, CPP_SEMICOLON, ! "expected %<;%>"); } } } *************** c_parser_for_statement (c_parser *parser *** 6167,6184 **** gcc_assert (!parser->objc_could_be_foreach_context); if (!is_foreach_statement) { if (c_parser_next_token_is (parser, CPP_SEMICOLON)) { if (ivdep) { ! c_parser_error (parser, "missing loop condition in loop with " ! "% pragma"); cond = error_mark_node; } else if (unroll) { ! c_parser_error (parser, "missing loop condition in loop with " ! "% pragma"); cond = error_mark_node; } else --- 6177,6195 ---- gcc_assert (!parser->objc_could_be_foreach_context); if (!is_foreach_statement) { + cond_loc = c_parser_peek_token (parser)->location; if (c_parser_next_token_is (parser, CPP_SEMICOLON)) { if (ivdep) { ! c_parser_error (parser, "missing loop condition in loop " ! "with % pragma"); cond = error_mark_node; } else if (unroll) { ! c_parser_error (parser, "missing loop condition in loop " ! "with % pragma"); cond = error_mark_node; } else *************** c_parser_for_statement (c_parser *parser *** 6207,6217 **** /* Parse the increment expression (the third expression in a for-statement). In the case of a foreach-statement, this is the expression that follows the 'in'. */ if (c_parser_next_token_is (parser, CPP_CLOSE_PAREN)) { if (is_foreach_statement) { ! c_parser_error (parser, "missing collection in fast enumeration"); collection_expression = error_mark_node; } else --- 6218,6230 ---- /* Parse the increment expression (the third expression in a for-statement). In the case of a foreach-statement, this is the expression that follows the 'in'. */ + loc = incr_loc = c_parser_peek_token (parser)->location; if (c_parser_next_token_is (parser, CPP_CLOSE_PAREN)) { if (is_foreach_statement) { ! c_parser_error (parser, ! "missing collection in fast enumeration"); collection_expression = error_mark_node; } else *************** c_parser_for_statement (c_parser *parser *** 6220,6227 **** else { if (is_foreach_statement) ! collection_expression = c_fully_fold (c_parser_expression (parser).value, ! false, NULL); else { struct c_expr ce = c_parser_expression (parser); --- 6233,6240 ---- else { if (is_foreach_statement) ! collection_expression ! = c_fully_fold (c_parser_expression (parser).value, false, NULL); else { struct c_expr ce = c_parser_expression (parser); *************** c_parser_for_statement (c_parser *parser *** 6244,6253 **** body = c_parser_c99_block_statement (parser, if_p, &loc_after_labels); if (is_foreach_statement) ! objc_finish_foreach_loop (loc, object_expression, collection_expression, body, c_break_label, c_cont_label); else ! c_finish_loop (loc, cond, incr, body, c_break_label, c_cont_label, true); ! add_stmt (c_end_compound_stmt (loc, block, flag_isoc99 || c_dialect_objc ())); c_parser_maybe_reclassify_token (parser); token_indent_info next_tinfo --- 6257,6270 ---- body = c_parser_c99_block_statement (parser, if_p, &loc_after_labels); if (is_foreach_statement) ! objc_finish_foreach_loop (for_loc, object_expression, ! collection_expression, body, c_break_label, ! c_cont_label); else ! c_finish_loop (for_loc, cond_loc, cond, incr_loc, incr, body, ! c_break_label, c_cont_label, true); ! add_stmt (c_end_compound_stmt (for_loc, block, ! flag_isoc99 || c_dialect_objc ())); c_parser_maybe_reclassify_token (parser); token_indent_info next_tinfo *************** c_parser_omp_clause_dist_schedule (c_par *** 13832,13838 **** c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, "expected %<,%> or %<)%>"); ! check_no_duplicate_clause (list, OMP_CLAUSE_SCHEDULE, "schedule"); if (t == error_mark_node) return list; --- 13849,13858 ---- c_parser_skip_until_found (parser, CPP_CLOSE_PAREN, "expected %<,%> or %<)%>"); ! /* check_no_duplicate_clause (list, OMP_CLAUSE_DIST_SCHEDULE, ! "dist_schedule"); */ ! if (omp_find_clause (list, OMP_CLAUSE_DIST_SCHEDULE)) ! warning_at (loc, 0, "too many %qs clauses", "dist_schedule"); if (t == error_mark_node) return list; *************** c_parse_file (void) *** 18461,18466 **** --- 18481,18488 ---- if (c_parser_peek_token (&tparser)->pragma_kind == PRAGMA_GCC_PCH_PREPROCESS) c_parser_pragma_pch_preprocess (&tparser); + else + c_common_no_more_pch (); the_parser = ggc_alloc (); *the_parser = tparser; diff -Nrcpad gcc-8.3.0/gcc/c/c-tree.h gcc-8.4.0/gcc/c/c-tree.h *** gcc-8.3.0/gcc/c/c-tree.h Wed Jan 2 22:34:36 2019 --- gcc-8.4.0/gcc/c/c-tree.h Wed Mar 4 08:30:00 2020 *************** extern int c_types_compatible_p (tree, t *** 684,690 **** extern tree c_begin_compound_stmt (bool); extern tree c_end_compound_stmt (location_t, tree, bool); extern void c_finish_if_stmt (location_t, tree, tree, tree); ! extern void c_finish_loop (location_t, tree, tree, tree, tree, tree, bool); extern tree c_begin_stmt_expr (void); extern tree c_finish_stmt_expr (location_t, tree); extern tree c_process_expr_stmt (location_t, tree); --- 684,691 ---- extern tree c_begin_compound_stmt (bool); extern tree c_end_compound_stmt (location_t, tree, bool); extern void c_finish_if_stmt (location_t, tree, tree, tree); ! extern void c_finish_loop (location_t, location_t, tree, location_t, tree, ! tree, tree, tree, bool); extern tree c_begin_stmt_expr (void); extern tree c_finish_stmt_expr (location_t, tree); extern tree c_process_expr_stmt (location_t, tree); diff -Nrcpad gcc-8.3.0/gcc/c/c-typeck.c gcc-8.4.0/gcc/c/c-typeck.c *** gcc-8.3.0/gcc/c/c-typeck.c Wed Jan 2 22:34:36 2019 --- gcc-8.4.0/gcc/c/c-typeck.c Wed Mar 4 08:30:00 2020 *************** build_c_cast (location_t loc, tree type, *** 5538,5547 **** --- 5538,5551 ---- { tree value; + bool int_operands = EXPR_INT_CONST_OPERANDS (expr); + if (TREE_CODE (expr) == EXCESS_PRECISION_EXPR) expr = TREE_OPERAND (expr, 0); value = expr; + if (int_operands) + value = remove_c_maybe_const_expr (value); if (type == error_mark_node || expr == error_mark_node) return error_mark_node; *************** build_c_cast (location_t loc, tree type, *** 5772,5777 **** --- 5776,5789 ---- || TREE_CODE (expr) == COMPLEX_CST))) value = build1 (NOP_EXPR, type, value); + /* If the expression has integer operands and so can occur in an + unevaluated part of an integer constant expression, ensure the + return value reflects this. */ + if (int_operands + && INTEGRAL_TYPE_P (type) + && !EXPR_INT_CONST_OPERANDS (value)) + value = note_integer_operands (value); + protected_set_expr_location (value, loc); return value; } *************** c_finish_if_stmt (location_t if_locus, t *** 10528,10538 **** the beginning of the loop. COND is the loop condition. COND_IS_FIRST is false for DO loops. INCR is the FOR increment expression. BODY is the statement controlled by the loop. BLAB is the break label. CLAB is ! the continue label. Everything is allowed to be NULL. */ void ! c_finish_loop (location_t start_locus, tree cond, tree incr, tree body, ! tree blab, tree clab, bool cond_is_first) { tree entry = NULL, exit = NULL, t; --- 10540,10553 ---- the beginning of the loop. COND is the loop condition. COND_IS_FIRST is false for DO loops. INCR is the FOR increment expression. BODY is the statement controlled by the loop. BLAB is the break label. CLAB is ! the continue label. Everything is allowed to be NULL. ! COND_LOCUS is the location of the loop condition, INCR_LOCUS is the ! location of the FOR increment expression. */ void ! c_finish_loop (location_t start_locus, location_t cond_locus, tree cond, ! location_t incr_locus, tree incr, tree body, tree blab, ! tree clab, bool cond_is_first) { tree entry = NULL, exit = NULL, t; *************** c_finish_loop (location_t start_locus, t *** 10574,10585 **** } t = build_and_jump (&blab); ! if (cond_is_first) ! exit = fold_build3_loc (start_locus, ! COND_EXPR, void_type_node, cond, exit, t); ! else ! exit = fold_build3_loc (input_location, ! COND_EXPR, void_type_node, cond, exit, t); } else { --- 10589,10596 ---- } t = build_and_jump (&blab); ! exit = fold_build3_loc (cond_is_first ? start_locus : input_location, ! COND_EXPR, void_type_node, cond, exit, t); } else { *************** c_finish_loop (location_t start_locus, t *** 10600,10608 **** if (clab) add_stmt (build1 (LABEL_EXPR, void_type_node, clab)); if (incr) ! add_stmt (incr); if (entry) add_stmt (entry); if (exit) add_stmt (exit); if (blab) --- 10611,10633 ---- if (clab) add_stmt (build1 (LABEL_EXPR, void_type_node, clab)); if (incr) ! { ! if (MAY_HAVE_DEBUG_MARKER_STMTS && incr_locus != UNKNOWN_LOCATION) ! { ! t = build0 (DEBUG_BEGIN_STMT, void_type_node); ! SET_EXPR_LOCATION (t, incr_locus); ! add_stmt (t); ! } ! add_stmt (incr); ! } if (entry) add_stmt (entry); + if (MAY_HAVE_DEBUG_MARKER_STMTS && cond_locus != UNKNOWN_LOCATION) + { + t = build0 (DEBUG_BEGIN_STMT, void_type_node); + SET_EXPR_LOCATION (t, cond_locus); + add_stmt (t); + } if (exit) add_stmt (exit); if (blab) diff -Nrcpad gcc-8.3.0/gcc/c-family/ChangeLog gcc-8.4.0/gcc/c-family/ChangeLog *** gcc-8.3.0/gcc/c-family/ChangeLog Fri Feb 22 14:20:37 2019 --- gcc-8.4.0/gcc/c-family/ChangeLog Wed Mar 4 08:30:30 2020 *************** *** 1,3 **** --- 1,67 ---- + 2020-03-04 Release Manager + + * GCC 8.4.0 released. + + 2020-02-14 Jakub Jelinek + + Backported from mainline + 2019-11-26 Jakub Jelinek + + PR c++/61414 + * c-attribs.c (handle_mode_attribute): Add mode attribute to + ENUMERAL_TYPEs. + + 2019-09-03 Iain Sandoe + + Backport from mainline + 2019-08-23 Iain Sandoe + + PR pch/61250 + * c-lex.c (c_lex_with_flags): Don't call + c_common_no_more_pch () from here. + + 2019-08-30 Richard Biener + + Backport from mainline + 2019-05-15 Richard Biener + + PR c/90474 + * c-common.c (c_common_mark_addressable_vec): Also mark + a COMPOUND_LITERAL_EXPR_DECL addressable similar to + c_mark_addressable. + + 2019-08-29 Jakub Jelinek + + Backported from mainline + 2019-06-25 Jakub Jelinek + + PR sanitizer/90954 + * c-omp.c (c_finish_omp_atomic): Allow tree_invariant_p in addition + to SAVE_EXPR in first operand of a COMPOUND_EXPR. + + 2019-05-22 Eric Botcazou + + Backport from mainline + 2018-05-10 Eric Botcazou + + PR c++/85400 + * c-attribs.c (handle_visibility_attribute): Do not set no_add_attrs. + + 2019-04-30 Jakub Jelinek + + Backported from mainline + 2019-04-12 Jakub Jelinek + + PR c/89946 + * c-attribs.c (handle_patchable_function_entry_attribute): Add + function comment. Warn if arguments of the attribute are not positive + integer constants. + + 2019-04-09 Eric Botcazou + + * c-ada-spec.c (print_destructor): Deal with deleting destructors. + (dump_ada_declaration) : Likewise. + 2019-02-22 Release Manager * GCC 8.3.0 released. diff -Nrcpad gcc-8.3.0/gcc/c-family/c-ada-spec.c gcc-8.4.0/gcc/c-family/c-ada-spec.c *** gcc-8.3.0/gcc/c-family/c-ada-spec.c Fri Jun 1 08:36:35 2018 --- gcc-8.4.0/gcc/c-family/c-ada-spec.c Wed Mar 4 08:30:00 2020 *************** print_destructor (pretty_printer *buffer *** 2686,2691 **** --- 2686,2693 ---- tree decl_name = DECL_NAME (TYPE_NAME (type)); pp_string (buffer, "Delete_"); + if (strncmp (IDENTIFIER_POINTER (DECL_NAME (t)), "__dt_del", 8) == 0) + pp_string (buffer, "And_Free_"); pp_ada_tree_identifier (buffer, decl_name, t, 0, false); } *************** dump_ada_declaration (pretty_printer *bu *** 2937,2945 **** if (DECL_ARTIFICIAL (t)) return 0; ! /* Only consider constructors/destructors for complete objects. */ if (strncmp (IDENTIFIER_POINTER (decl_name), "__ct_comp", 9) != 0 ! && strncmp (IDENTIFIER_POINTER (decl_name), "__dt_comp", 9) != 0) return 0; } --- 2939,2948 ---- if (DECL_ARTIFICIAL (t)) return 0; ! /* Only consider complete constructors and deleting destructors. */ if (strncmp (IDENTIFIER_POINTER (decl_name), "__ct_comp", 9) != 0 ! && strncmp (IDENTIFIER_POINTER (decl_name), "__dt_comp", 9) != 0 ! && strncmp (IDENTIFIER_POINTER (decl_name), "__dt_del", 8) != 0) return 0; } diff -Nrcpad gcc-8.3.0/gcc/c-family/c-attribs.c gcc-8.4.0/gcc/c-family/c-attribs.c *** gcc-8.3.0/gcc/c-family/c-attribs.c Mon Jul 16 11:57:10 2018 --- gcc-8.4.0/gcc/c-family/c-attribs.c Wed Mar 4 08:30:00 2020 *************** handle_mode_attribute (tree *node, tree *** 1650,1655 **** --- 1650,1656 ---- typefm = make_signed_type (TYPE_PRECISION (typefm)); TREE_TYPE (typefm) = type; } + *no_add_attrs = false; } else if (VECTOR_MODE_P (mode) ? TREE_CODE (type) != TREE_CODE (TREE_TYPE (typefm)) *************** handle_visibility_attribute (tree *node, *** 2310,2323 **** static tree handle_tls_model_attribute (tree *node, tree name, tree args, ! int ARG_UNUSED (flags), bool *no_add_attrs) { tree id; tree decl = *node; enum tls_model kind; - *no_add_attrs = true; - if (!VAR_P (decl) || !DECL_THREAD_LOCAL_P (decl)) { warning (OPT_Wattributes, "%qE attribute ignored", name); --- 2311,2323 ---- static tree handle_tls_model_attribute (tree *node, tree name, tree args, ! int ARG_UNUSED (flags), ! bool *ARG_UNUSED (no_add_attrs)) { tree id; tree decl = *node; enum tls_model kind; if (!VAR_P (decl) || !DECL_THREAD_LOCAL_P (decl)) { warning (OPT_Wattributes, "%qE attribute ignored", name); *************** handle_fallthrough_attribute (tree *, tr *** 3562,3570 **** return NULL_TREE; } static tree ! handle_patchable_function_entry_attribute (tree *, tree, tree, int, bool *) { ! /* Nothing to be done here. */ return NULL_TREE; } --- 3562,3589 ---- return NULL_TREE; } + /* Handle a "patchable_function_entry" attributes; arguments as in + struct attribute_spec.handler. */ + static tree ! handle_patchable_function_entry_attribute (tree *, tree name, tree args, ! int, bool *no_add_attrs) { ! for (; args; args = TREE_CHAIN (args)) ! { ! tree val = TREE_VALUE (args); ! if (val && TREE_CODE (val) != IDENTIFIER_NODE ! && TREE_CODE (val) != FUNCTION_DECL) ! val = default_conversion (val); ! ! if (!tree_fits_uhwi_p (val)) ! { ! warning (OPT_Wattributes, ! "%qE attribute argument %qE is not an integer constant", ! name, val); ! *no_add_attrs = true; ! return NULL_TREE; ! } ! } return NULL_TREE; } diff -Nrcpad gcc-8.3.0/gcc/c-family/c-common.c gcc-8.4.0/gcc/c-family/c-common.c *** gcc-8.3.0/gcc/c-family/c-common.c Wed Jun 20 16:08:14 2018 --- gcc-8.4.0/gcc/c-family/c-common.c Wed Mar 4 08:30:00 2020 *************** c_common_mark_addressable_vec (tree t) *** 6440,6445 **** --- 6440,6447 ---- return; if (!VAR_P (t) || !DECL_HARD_REGISTER (t)) TREE_ADDRESSABLE (t) = 1; + if (TREE_CODE (t) == COMPOUND_LITERAL_EXPR) + TREE_ADDRESSABLE (COMPOUND_LITERAL_EXPR_DECL (t)) = 1; } diff -Nrcpad gcc-8.3.0/gcc/c-family/c-lex.c gcc-8.4.0/gcc/c-family/c-lex.c *** gcc-8.3.0/gcc/c-family/c-lex.c Thu Jan 18 13:17:37 2018 --- gcc-8.4.0/gcc/c-family/c-lex.c Wed Mar 4 08:30:00 2020 *************** enum cpp_ttype *** 392,398 **** c_lex_with_flags (tree *value, location_t *loc, unsigned char *cpp_flags, int lex_flags) { - static bool no_more_pch; const cpp_token *tok; enum cpp_ttype type; unsigned char add_flags = 0; --- 392,397 ---- *************** c_lex_with_flags (tree *value, location_ *** 626,637 **** if (cpp_flags) *cpp_flags = tok->flags | add_flags; - if (!no_more_pch) - { - no_more_pch = true; - c_common_no_more_pch (); - } - timevar_pop (TV_CPP); return type; --- 625,630 ---- diff -Nrcpad gcc-8.3.0/gcc/c-family/c-omp.c gcc-8.4.0/gcc/c-family/c-omp.c *** gcc-8.3.0/gcc/c-family/c-omp.c Thu Feb 7 14:37:26 2019 --- gcc-8.4.0/gcc/c-family/c-omp.c Wed Mar 4 08:30:00 2020 *************** c_finish_omp_atomic (location_t loc, enu *** 300,306 **** if (TREE_CODE (x) == COMPOUND_EXPR) { pre = TREE_OPERAND (x, 0); ! gcc_assert (TREE_CODE (pre) == SAVE_EXPR); x = TREE_OPERAND (x, 1); } gcc_assert (TREE_CODE (x) == MODIFY_EXPR); --- 300,306 ---- if (TREE_CODE (x) == COMPOUND_EXPR) { pre = TREE_OPERAND (x, 0); ! gcc_assert (TREE_CODE (pre) == SAVE_EXPR || tree_invariant_p (pre)); x = TREE_OPERAND (x, 1); } gcc_assert (TREE_CODE (x) == MODIFY_EXPR); diff -Nrcpad gcc-8.3.0/gcc/calls.c gcc-8.4.0/gcc/calls.c *** gcc-8.3.0/gcc/calls.c Tue Aug 28 11:43:22 2018 --- gcc-8.4.0/gcc/calls.c Wed Mar 4 08:30:00 2020 *************** initialize_argument_information (int num *** 2078,2085 **** /* If TYPE is a transparent union or record, pass things the way we would pass the first field of the union or record. We have already verified that the modes are the same. */ ! if ((TREE_CODE (type) == UNION_TYPE || TREE_CODE (type) == RECORD_TYPE) ! && TYPE_TRANSPARENT_AGGR (type)) type = TREE_TYPE (first_field (type)); /* Decide where to pass this arg. --- 2078,2084 ---- /* If TYPE is a transparent union or record, pass things the way we would pass the first field of the union or record. We have already verified that the modes are the same. */ ! if (RECORD_OR_UNION_TYPE_P (type) && TYPE_TRANSPARENT_AGGR (type)) type = TREE_TYPE (first_field (type)); /* Decide where to pass this arg. *************** load_register_parameters (struct arg_dat *** 2873,2878 **** --- 2872,2880 ---- poly_int64 size = 0; HOST_WIDE_INT const_size = 0; rtx_insn *before_arg = get_last_insn (); + tree type = TREE_TYPE (args[i].tree_value); + if (RECORD_OR_UNION_TYPE_P (type) && TYPE_TRANSPARENT_AGGR (type)) + type = TREE_TYPE (first_field (type)); /* Set non-negative if we must move a word at a time, even if just one word (e.g, partial == 4 && mode == DFmode). Set to -1 if we just use a normal move insn. This value can be *************** load_register_parameters (struct arg_dat *** 2885,2895 **** gcc_assert (partial % UNITS_PER_WORD == 0); nregs = partial / UNITS_PER_WORD; } ! else if (TYPE_MODE (TREE_TYPE (args[i].tree_value)) == BLKmode) { /* Variable-sized parameters should be described by a PARALLEL instead. */ ! const_size = int_size_in_bytes (TREE_TYPE (args[i].tree_value)); gcc_assert (const_size >= 0); nregs = (const_size + (UNITS_PER_WORD - 1)) / UNITS_PER_WORD; size = const_size; --- 2887,2897 ---- gcc_assert (partial % UNITS_PER_WORD == 0); nregs = partial / UNITS_PER_WORD; } ! else if (TYPE_MODE (type) == BLKmode) { /* Variable-sized parameters should be described by a PARALLEL instead. */ ! const_size = int_size_in_bytes (type); gcc_assert (const_size >= 0); nregs = (const_size + (UNITS_PER_WORD - 1)) / UNITS_PER_WORD; size = const_size; *************** load_register_parameters (struct arg_dat *** 3016,3023 **** if (GET_CODE (reg) == PARALLEL) use_group_regs (call_fusage, reg); else if (nregs == -1) ! use_reg_mode (call_fusage, reg, ! TYPE_MODE (TREE_TYPE (args[i].tree_value))); else if (nregs > 0) use_regs (call_fusage, REGNO (reg), nregs); } --- 3018,3024 ---- if (GET_CODE (reg) == PARALLEL) use_group_regs (call_fusage, reg); else if (nregs == -1) ! use_reg_mode (call_fusage, reg, TYPE_MODE (type)); else if (nregs > 0) use_regs (call_fusage, REGNO (reg), nregs); } *************** expand_call (tree exp, rtx target, int i *** 3754,3759 **** --- 3755,3782 ---- || dbg_cnt (tail_call) == false) try_tail_call = 0; + /* Workaround buggy C/C++ wrappers around Fortran routines with + character(len=constant) arguments if the hidden string length arguments + are passed on the stack; if the callers forget to pass those arguments, + attempting to tail call in such routines leads to stack corruption. + Avoid tail calls in functions where at least one such hidden string + length argument is passed (partially or fully) on the stack in the + caller and the callee needs to pass any arguments on the stack. + See PR90329. */ + if (try_tail_call && maybe_ne (args_size.constant, 0)) + for (tree arg = DECL_ARGUMENTS (current_function_decl); + arg; arg = DECL_CHAIN (arg)) + if (DECL_HIDDEN_STRING_LENGTH (arg) && DECL_INCOMING_RTL (arg)) + { + subrtx_iterator::array_type array; + FOR_EACH_SUBRTX (iter, array, DECL_INCOMING_RTL (arg), NONCONST) + if (MEM_P (*iter)) + { + try_tail_call = 0; + break; + } + } + /* If the user has marked the function as requiring tail-call optimization, attempt it. */ if (must_tail_call) diff -Nrcpad gcc-8.3.0/gcc/cfgcleanup.c gcc-8.4.0/gcc/cfgcleanup.c *** gcc-8.3.0/gcc/cfgcleanup.c Tue Jan 8 10:20:17 2019 --- gcc-8.4.0/gcc/cfgcleanup.c Wed Mar 4 08:30:00 2020 *************** along with GCC; see the file COPYING3. *** 53,58 **** --- 53,59 ---- #include "dce.h" #include "dbgcnt.h" #include "rtl-iter.h" + #include "regs.h" #define FORWARDER_BLOCK_P(BB) ((BB)->flags & BB_FORWARDER_BLOCK) *************** old_insns_match_p (int mode ATTRIBUTE_UN *** 1217,1222 **** --- 1218,1231 ---- } } } + + HARD_REG_SET i1_used, i2_used; + + get_call_reg_set_usage (i1, &i1_used, call_used_reg_set); + get_call_reg_set_usage (i2, &i2_used, call_used_reg_set); + + if (!hard_reg_set_equal_p (i1_used, i2_used)) + return dir_none; } /* If both i1 and i2 are frame related, verify all the CFA notes *************** try_optimize_cfg (int mode) *** 2705,2727 **** if (current_ir_type () == IR_RTL_CFGLAYOUT) { ! if (BB_FOOTER (b) ! && BARRIER_P (BB_FOOTER (b))) FOR_EACH_EDGE (e, ei, b->preds) ! if ((e->flags & EDGE_FALLTHRU) ! && BB_FOOTER (e->src) == NULL) { ! if (BB_FOOTER (b)) { BB_FOOTER (e->src) = BB_FOOTER (b); BB_FOOTER (b) = NULL; } else ! { ! start_sequence (); ! BB_FOOTER (e->src) = emit_barrier (); ! end_sequence (); ! } } } else --- 2714,2736 ---- if (current_ir_type () == IR_RTL_CFGLAYOUT) { ! rtx_insn *insn; ! for (insn = BB_FOOTER (b); ! insn; insn = NEXT_INSN (insn)) ! if (BARRIER_P (insn)) ! break; ! if (insn) FOR_EACH_EDGE (e, ei, b->preds) ! if ((e->flags & EDGE_FALLTHRU)) { ! if (BB_FOOTER (b) ! && BB_FOOTER (e->src) == NULL) { BB_FOOTER (e->src) = BB_FOOTER (b); BB_FOOTER (b) = NULL; } else ! emit_barrier_after_bb (e->src); } } else diff -Nrcpad gcc-8.3.0/gcc/cfgexpand.c gcc-8.4.0/gcc/cfgexpand.c *** gcc-8.3.0/gcc/cfgexpand.c Sun Nov 11 17:36:23 2018 --- gcc-8.4.0/gcc/cfgexpand.c Wed Mar 4 08:30:00 2020 *************** expand_debug_expr (tree exp) *** 4323,4329 **** op0 = DECL_RTL_IF_SET (exp); /* This decl was probably optimized away. */ ! if (!op0) { if (!VAR_P (exp) || DECL_EXTERNAL (exp) --- 4323,4333 ---- op0 = DECL_RTL_IF_SET (exp); /* This decl was probably optimized away. */ ! if (!op0 ! /* At least label RTXen are sometimes replaced by ! NOTE_INSN_DELETED_LABEL. Any notes here are not ! handled by copy_rtx. */ ! || NOTE_P (op0)) { if (!VAR_P (exp) || DECL_EXTERNAL (exp) diff -Nrcpad gcc-8.3.0/gcc/cfghooks.c gcc-8.4.0/gcc/cfghooks.c *** gcc-8.3.0/gcc/cfghooks.c Wed Jan 3 10:03:58 2018 --- gcc-8.4.0/gcc/cfghooks.c Wed Mar 4 08:30:00 2020 *************** can_duplicate_block_p (const_basic_block *** 1066,1072 **** AFTER. */ basic_block ! duplicate_block (basic_block bb, edge e, basic_block after) { edge s, n; basic_block new_bb; --- 1066,1072 ---- AFTER. */ basic_block ! duplicate_block (basic_block bb, edge e, basic_block after, copy_bb_data *id) { edge s, n; basic_block new_bb; *************** duplicate_block (basic_block bb, edge e, *** 1082,1088 **** gcc_checking_assert (can_duplicate_block_p (bb)); ! new_bb = cfg_hooks->duplicate_block (bb); if (after) move_block_after (new_bb, after); --- 1082,1088 ---- gcc_checking_assert (can_duplicate_block_p (bb)); ! new_bb = cfg_hooks->duplicate_block (bb, id); if (after) move_block_after (new_bb, after); *************** copy_bbs (basic_block *bbs, unsigned n, *** 1337,1342 **** --- 1337,1343 ---- unsigned i, j; basic_block bb, new_bb, dom_bb; edge e; + copy_bb_data id; /* Mark the blocks to be copied. This is used by edge creation hooks to decide whether to reallocate PHI nodes capacity to avoid reallocating *************** copy_bbs (basic_block *bbs, unsigned n, *** 1349,1355 **** { /* Duplicate. */ bb = bbs[i]; ! new_bb = new_bbs[i] = duplicate_block (bb, NULL, after); after = new_bb; if (bb->loop_father) { --- 1350,1356 ---- { /* Duplicate. */ bb = bbs[i]; ! new_bb = new_bbs[i] = duplicate_block (bb, NULL, after, &id); after = new_bb; if (bb->loop_father) { diff -Nrcpad gcc-8.3.0/gcc/cfghooks.h gcc-8.4.0/gcc/cfghooks.h *** gcc-8.3.0/gcc/cfghooks.h Wed Jan 3 10:03:58 2018 --- gcc-8.4.0/gcc/cfghooks.h Wed Mar 4 08:30:00 2020 *************** struct profile_record *** 54,59 **** --- 54,72 ---- bool run; }; + typedef int_hash dependence_hash; + + /* Optional data for duplicate_block. */ + + struct copy_bb_data + { + copy_bb_data() : dependence_map (NULL) {} + ~copy_bb_data () { delete dependence_map; } + + /* A map from the copied BBs dependence info cliques to + equivalents in the BBs duplicated to. */ + hash_map *dependence_map; + }; struct cfg_hooks { *************** struct cfg_hooks *** 112,118 **** bool (*can_duplicate_block_p) (const_basic_block a); /* Duplicate block A. */ ! basic_block (*duplicate_block) (basic_block a); /* Higher level functions representable by primitive operations above if we didn't have some oddities in RTL and Tree representations. */ --- 125,131 ---- bool (*can_duplicate_block_p) (const_basic_block a); /* Duplicate block A. */ ! basic_block (*duplicate_block) (basic_block a, copy_bb_data *); /* Higher level functions representable by primitive operations above if we didn't have some oddities in RTL and Tree representations. */ *************** extern void tidy_fallthru_edges (void); *** 227,233 **** extern void predict_edge (edge e, enum br_predictor predictor, int probability); extern bool predicted_by_p (const_basic_block bb, enum br_predictor predictor); extern bool can_duplicate_block_p (const_basic_block); ! extern basic_block duplicate_block (basic_block, edge, basic_block); extern bool block_ends_with_call_p (basic_block bb); extern bool empty_block_p (basic_block); extern basic_block split_block_before_cond_jump (basic_block); --- 240,247 ---- extern void predict_edge (edge e, enum br_predictor predictor, int probability); extern bool predicted_by_p (const_basic_block bb, enum br_predictor predictor); extern bool can_duplicate_block_p (const_basic_block); ! extern basic_block duplicate_block (basic_block, edge, basic_block, ! copy_bb_data * = NULL); extern bool block_ends_with_call_p (basic_block bb); extern bool empty_block_p (basic_block); extern basic_block split_block_before_cond_jump (basic_block); diff -Nrcpad gcc-8.3.0/gcc/cfgloop.h gcc-8.4.0/gcc/cfgloop.h *** gcc-8.3.0/gcc/cfgloop.h Fri Apr 13 08:59:05 2018 --- gcc-8.4.0/gcc/cfgloop.h Wed Mar 4 08:30:00 2020 *************** struct GTY ((chain_next ("%h.next"))) lo *** 227,232 **** --- 227,236 ---- Other values means unroll with the given unrolling factor. */ unsigned short unroll; + /* If this loop was inlined the main clique of the callee which does + not need remapping when copying the loop body. */ + unsigned short owned_clique; + /* For SIMD loops, this is a unique identifier of the loop, referenced by IFN_GOMP_SIMD_VF, IFN_GOMP_SIMD_LANE and IFN_GOMP_SIMD_LAST_LANE builtins. */ diff -Nrcpad gcc-8.3.0/gcc/cfgloopmanip.c gcc-8.4.0/gcc/cfgloopmanip.c *** gcc-8.3.0/gcc/cfgloopmanip.c Fri Apr 13 08:59:05 2018 --- gcc-8.4.0/gcc/cfgloopmanip.c Wed Mar 4 08:30:00 2020 *************** copy_loop_info (struct loop *loop, struc *** 1019,1024 **** --- 1019,1025 ---- target->warned_aggressive_loop_optimizations |= loop->warned_aggressive_loop_optimizations; target->in_oacc_kernels_region = loop->in_oacc_kernels_region; + target->owned_clique = loop->owned_clique; } /* Copies copy of LOOP as subloop of TARGET loop, placing newly diff -Nrcpad gcc-8.3.0/gcc/cfgrtl.c gcc-8.4.0/gcc/cfgrtl.c *** gcc-8.3.0/gcc/cfgrtl.c Thu Feb 14 11:25:18 2019 --- gcc-8.4.0/gcc/cfgrtl.c Wed Mar 4 08:30:00 2020 *************** duplicate_insn_chain (rtx_insn *from, rt *** 4233,4239 **** /* Create a duplicate of the basic block BB. */ static basic_block ! cfg_layout_duplicate_bb (basic_block bb) { rtx_insn *insn; basic_block new_bb; --- 4233,4239 ---- /* Create a duplicate of the basic block BB. */ static basic_block ! cfg_layout_duplicate_bb (basic_block bb, copy_bb_data *) { rtx_insn *insn; basic_block new_bb; *************** rtl_can_remove_branch_p (const_edge e) *** 5059,5067 **** } static basic_block ! rtl_duplicate_bb (basic_block bb) { ! bb = cfg_layout_duplicate_bb (bb); bb->aux = NULL; return bb; } --- 5059,5067 ---- } static basic_block ! rtl_duplicate_bb (basic_block bb, copy_bb_data *id) { ! bb = cfg_layout_duplicate_bb (bb, id); bb->aux = NULL; return bb; } diff -Nrcpad gcc-8.3.0/gcc/cgraph.c gcc-8.4.0/gcc/cgraph.c *** gcc-8.3.0/gcc/cgraph.c Mon May 28 13:44:18 2018 --- gcc-8.4.0/gcc/cgraph.c Wed Mar 4 08:30:00 2020 *************** cgraph_node::collect_callers (void) *** 3007,3048 **** return redirect_callers; } ! /* Return TRUE if NODE2 a clone of NODE or is equivalent to it. */ static bool clone_of_p (cgraph_node *node, cgraph_node *node2) { - bool skipped_thunk = false; node = node->ultimate_alias_target (); node2 = node2->ultimate_alias_target (); /* There are no virtual clones of thunks so check former_clone_of or if we might have skipped thunks because this adjustments are no longer necessary. */ ! while (node->thunk.thunk_p) { - if (node2->former_clone_of == node->decl) - return true; if (!node->thunk.this_adjusting) return false; node = node->callees->callee->ultimate_alias_target (); - skipped_thunk = true; - } - if (skipped_thunk) - { if (!node2->clone.args_to_skip || !bitmap_bit_p (node2->clone.args_to_skip, 0)) return false; if (node2->former_clone_of == node->decl) return true; ! else if (!node2->clone_of) ! return false; } ! while (node != node2 && node2) ! node2 = node2->clone_of; ! return node2 != NULL; } /* Verify edge count and frequency. */ --- 3007,3061 ---- return redirect_callers; } ! ! /* Return TRUE if NODE2 a clone of NODE or is equivalent to it. Return ! optimistically true if this cannot be determined. */ static bool clone_of_p (cgraph_node *node, cgraph_node *node2) { node = node->ultimate_alias_target (); node2 = node2->ultimate_alias_target (); + if (node2->clone_of == node + || node2->former_clone_of == node->decl) + return true; + + if (!node->thunk.thunk_p && !node->former_thunk_p ()) + { + while (node2 && node->decl != node2->decl) + node2 = node2->clone_of; + return node2 != NULL; + } + /* There are no virtual clones of thunks so check former_clone_of or if we might have skipped thunks because this adjustments are no longer necessary. */ ! while (node->thunk.thunk_p || node->former_thunk_p ()) { if (!node->thunk.this_adjusting) return false; + /* In case of instrumented expanded thunks, which can have multiple calls + in them, we do not know how to continue and just have to be + optimistic. */ + if (node->callees->next_callee) + return true; node = node->callees->callee->ultimate_alias_target (); if (!node2->clone.args_to_skip || !bitmap_bit_p (node2->clone.args_to_skip, 0)) return false; if (node2->former_clone_of == node->decl) return true; ! ! cgraph_node *n2 = node2; ! while (n2 && node->decl != n2->decl) ! n2 = n2->clone_of; ! if (n2) ! return true; } ! return false; } /* Verify edge count and frequency. */ diff -Nrcpad gcc-8.3.0/gcc/cgraph.h gcc-8.4.0/gcc/cgraph.h *** gcc-8.3.0/gcc/cgraph.h Mon May 28 13:44:18 2018 --- gcc-8.4.0/gcc/cgraph.h Wed Mar 4 08:30:00 2020 *************** public: *** 997,1008 **** If non-NULL BLOCK_TO_COPY determine what basic blocks to copy. If non_NULL NEW_ENTRY determine new entry BB of the clone. Return the new version's cgraph node. */ cgraph_node *create_version_clone_with_body (vec redirect_callers, vec *tree_map, bitmap args_to_skip, bool skip_return, bitmap bbs_to_copy, basic_block new_entry_block, ! const char *clone_name); /* Insert a new cgraph_function_version_info node into cgraph_fnver_htab corresponding to cgraph_node. */ --- 997,1013 ---- If non-NULL BLOCK_TO_COPY determine what basic blocks to copy. If non_NULL NEW_ENTRY determine new entry BB of the clone. + If TARGET_ATTRIBUTES is non-null, when creating a new declaration, + add the attributes to DECL_ATTRIBUTES. And call valid_attribute_p + that will promote value of the attribute DECL_FUNCTION_SPECIFIC_TARGET + of the declaration. + Return the new version's cgraph node. */ cgraph_node *create_version_clone_with_body (vec redirect_callers, vec *tree_map, bitmap args_to_skip, bool skip_return, bitmap bbs_to_copy, basic_block new_entry_block, ! const char *clone_name, tree target_attributes = NULL_TREE); /* Insert a new cgraph_function_version_info node into cgraph_fnver_htab corresponding to cgraph_node. */ *************** public: *** 1258,1263 **** --- 1263,1271 ---- Note that at WPA stage, the function body may not be present in memory. */ inline bool has_gimple_body_p (void); + /* Return true if this node represents a former, i.e. an expanded, thunk. */ + inline bool former_thunk_p (void); + /* Return true if function should be optimized for size. */ bool optimize_for_size_p (void); *************** cgraph_node::has_gimple_body_p (void) *** 2858,2863 **** --- 2866,2881 ---- return definition && !thunk.thunk_p && !alias; } + /* Return true if this node represents a former, i.e. an expanded, thunk. */ + + inline bool + cgraph_node::former_thunk_p (void) + { + return (!thunk.thunk_p + && (thunk.fixed_offset + || thunk.virtual_offset_p)); + } + /* Walk all functions with body defined. */ #define FOR_EACH_FUNCTION_WITH_GIMPLE_BODY(node) \ for ((node) = symtab->first_function_with_gimple_body (); (node); \ diff -Nrcpad gcc-8.3.0/gcc/cgraphclones.c gcc-8.4.0/gcc/cgraphclones.c *** gcc-8.3.0/gcc/cgraphclones.c Thu Jan 18 16:26:54 2018 --- gcc-8.4.0/gcc/cgraphclones.c Wed Mar 4 08:30:00 2020 *************** cgraph_node::create_version_clone (tree *** 938,943 **** --- 938,948 ---- If non-NULL BLOCK_TO_COPY determine what basic blocks to copy. If non_NULL NEW_ENTRY determine new entry BB of the clone. + If TARGET_ATTRIBUTES is non-null, when creating a new declaration, + add the attributes to DECL_ATTRIBUTES. And call valid_attribute_p + that will promote value of the attribute DECL_FUNCTION_SPECIFIC_TARGET + of the declaration. + Return the new version's cgraph node. */ cgraph_node * *************** cgraph_node::create_version_clone_with_b *** 945,951 **** (vec redirect_callers, vec *tree_map, bitmap args_to_skip, bool skip_return, bitmap bbs_to_copy, basic_block new_entry_block, ! const char *suffix) { tree old_decl = decl; cgraph_node *new_version_node = NULL; --- 950,956 ---- (vec redirect_callers, vec *tree_map, bitmap args_to_skip, bool skip_return, bitmap bbs_to_copy, basic_block new_entry_block, ! const char *suffix, tree target_attributes) { tree old_decl = decl; cgraph_node *new_version_node = NULL; *************** cgraph_node::create_version_clone_with_b *** 968,973 **** --- 973,991 ---- SET_DECL_ASSEMBLER_NAME (new_decl, DECL_NAME (new_decl)); SET_DECL_RTL (new_decl, NULL); + if (target_attributes) + { + DECL_ATTRIBUTES (new_decl) = target_attributes; + + location_t saved_loc = input_location; + tree v = TREE_VALUE (target_attributes); + input_location = DECL_SOURCE_LOCATION (new_decl); + bool r = targetm.target_option.valid_attribute_p (new_decl, NULL, v, 0); + input_location = saved_loc; + if (!r) + return NULL; + } + /* When the old decl was a con-/destructor make sure the clone isn't. */ DECL_STATIC_CONSTRUCTOR (new_decl) = 0; DECL_STATIC_DESTRUCTOR (new_decl) = 0; diff -Nrcpad gcc-8.3.0/gcc/collect2.c gcc-8.4.0/gcc/collect2.c *** gcc-8.3.0/gcc/collect2.c Fri Jun 22 14:52:11 2018 --- gcc-8.4.0/gcc/collect2.c Wed Mar 4 08:30:00 2020 *************** static void scan_prog_file (const char * *** 382,387 **** --- 382,391 ---- void tool_cleanup (bool from_signal) { + /* maybe_unlink may call notice, which is not signal safe. */ + if (from_signal) + debug = false; + if (c_file != 0 && c_file[0]) maybe_unlink (c_file); *************** maybe_run_lto_and_relink (char **lto_ld_ *** 741,747 **** ++num_files; } ! lto_o_files = XNEWVEC (char *, num_files + 1); lto_o_files[num_files] = NULL; start = XOBFINISH (&temporary_obstack, char *); for (i = 0; i < num_files; ++i) --- 745,754 ---- ++num_files; } ! /* signal handler may access uninitialized memory ! and delete whatever it points to, if lto_o_files ! is not allocated with calloc. */ ! lto_o_files = XCNEWVEC (char *, num_files + 1); lto_o_files[num_files] = NULL; start = XOBFINISH (&temporary_obstack, char *); for (i = 0; i < num_files; ++i) diff -Nrcpad gcc-8.3.0/gcc/combine.c gcc-8.4.0/gcc/combine.c *** gcc-8.3.0/gcc/combine.c Thu Feb 14 23:12:26 2019 --- gcc-8.4.0/gcc/combine.c Wed Mar 4 08:30:00 2020 *************** find_split_point (rtx *loc, rtx_insn *in *** 5037,5046 **** { HOST_WIDE_INT pos = INTVAL (XEXP (SET_DEST (x), 2)); unsigned HOST_WIDE_INT len = INTVAL (XEXP (SET_DEST (x), 1)); - unsigned HOST_WIDE_INT src = INTVAL (SET_SRC (x)); rtx dest = XEXP (SET_DEST (x), 0); ! unsigned HOST_WIDE_INT mask ! = (HOST_WIDE_INT_1U << len) - 1; rtx or_mask; if (BITS_BIG_ENDIAN) --- 5037,5045 ---- { HOST_WIDE_INT pos = INTVAL (XEXP (SET_DEST (x), 2)); unsigned HOST_WIDE_INT len = INTVAL (XEXP (SET_DEST (x), 1)); rtx dest = XEXP (SET_DEST (x), 0); ! unsigned HOST_WIDE_INT mask = (HOST_WIDE_INT_1U << len) - 1; ! unsigned HOST_WIDE_INT src = INTVAL (SET_SRC (x)) & mask; rtx or_mask; if (BITS_BIG_ENDIAN) *************** simplify_comparison (enum rtx_code code, *** 12318,12324 **** bit. This will be converted into a ZERO_EXTRACT. */ if (const_op == 0 && sign_bit_comparison_p && CONST_INT_P (XEXP (op0, 1)) ! && mode_width <= HOST_BITS_PER_WIDE_INT) { op0 = simplify_and_const_int (NULL_RTX, mode, XEXP (op0, 0), (HOST_WIDE_INT_1U --- 12317,12324 ---- bit. This will be converted into a ZERO_EXTRACT. */ if (const_op == 0 && sign_bit_comparison_p && CONST_INT_P (XEXP (op0, 1)) ! && mode_width <= HOST_BITS_PER_WIDE_INT ! && UINTVAL (XEXP (op0, 1)) < mode_width) { op0 = simplify_and_const_int (NULL_RTX, mode, XEXP (op0, 0), (HOST_WIDE_INT_1U diff -Nrcpad gcc-8.3.0/gcc/common/config/aarch64/aarch64-common.c gcc-8.4.0/gcc/common/config/aarch64/aarch64-common.c *** gcc-8.3.0/gcc/common/config/aarch64/aarch64-common.c Tue Mar 27 09:26:16 2018 --- gcc-8.4.0/gcc/common/config/aarch64/aarch64-common.c Wed Mar 4 08:30:00 2020 *************** *** 41,46 **** --- 41,48 ---- #undef TARGET_OPTION_OPTIMIZATION_TABLE #define TARGET_OPTION_OPTIMIZATION_TABLE aarch_option_optimization_table + #undef TARGET_OPTION_INIT_STRUCT + #define TARGET_OPTION_INIT_STRUCT aarch64_option_init_struct /* Set default optimization options. */ static const struct default_options aarch_option_optimization_table[] = *************** aarch64_handle_option (struct gcc_option *** 113,120 **** } } - struct gcc_targetm_common targetm_common = TARGETM_COMMON_INITIALIZER; - /* An ISA extension in the co-processor and main instruction set space. */ struct aarch64_option_extension { --- 115,120 ---- *************** struct aarch64_option_extension *** 122,136 **** const unsigned long flag_canonical; const unsigned long flags_on; const unsigned long flags_off; }; /* ISA extensions in AArch64. */ static const struct aarch64_option_extension all_extensions[] = { ! #define AARCH64_OPT_EXTENSION(NAME, FLAG_CANONICAL, FLAGS_ON, FLAGS_OFF, Z) \ ! {NAME, FLAG_CANONICAL, FLAGS_ON, FLAGS_OFF}, #include "config/aarch64/aarch64-option-extensions.def" ! {NULL, 0, 0, 0} }; struct processor_name_to_arch --- 122,149 ---- const unsigned long flag_canonical; const unsigned long flags_on; const unsigned long flags_off; + const bool is_synthetic; }; /* ISA extensions in AArch64. */ static const struct aarch64_option_extension all_extensions[] = { ! #define AARCH64_OPT_EXTENSION(NAME, FLAG_CANONICAL, FLAGS_ON, FLAGS_OFF, \ ! SYNTHETIC, Z) \ ! {NAME, FLAG_CANONICAL, FLAGS_ON, FLAGS_OFF, SYNTHETIC}, #include "config/aarch64/aarch64-option-extensions.def" ! {NULL, 0, 0, 0, false} ! }; ! ! /* A copy of the ISA extensions list for AArch64 sorted by the popcount of ! bits and extension turned on. Cached for efficiency. */ ! static struct aarch64_option_extension all_extensions_by_on[] = ! { ! #define AARCH64_OPT_EXTENSION(NAME, FLAG_CANONICAL, FLAGS_ON, FLAGS_OFF, \ ! SYNTHETIC, Z) \ ! {NAME, FLAG_CANONICAL, FLAGS_ON, FLAGS_OFF, SYNTHETIC}, ! #include "config/aarch64/aarch64-option-extensions.def" ! {NULL, 0, 0, 0, false} }; struct processor_name_to_arch *************** aarch64_parse_extension (const char *str *** 232,237 **** --- 245,320 ---- return AARCH64_PARSE_OK; } + /* Comparer to sort aarch64's feature extensions by population count. Largest + first. */ + + typedef const struct aarch64_option_extension opt_ext; + + int opt_ext_cmp (const void* a, const void* b) + { + opt_ext *opt_a = (opt_ext *)a; + opt_ext *opt_b = (opt_ext *)b; + + /* We consider the total set of bits an options turns on to be the union of + the singleton set containing the option itself and the set of options it + turns on as a dependency. As an example +dotprod turns on FL_DOTPROD and + FL_SIMD. As such the set of bits represented by this option is + {FL_DOTPROD, FL_SIMD}. */ + unsigned long total_flags_a = opt_a->flag_canonical & opt_a->flags_on; + unsigned long total_flags_b = opt_b->flag_canonical & opt_b->flags_on; + int popcnt_a = popcount_hwi ((HOST_WIDE_INT)total_flags_a); + int popcnt_b = popcount_hwi ((HOST_WIDE_INT)total_flags_b); + int order = popcnt_b - popcnt_a; + + /* If they have the same amount of bits set, give it a more + deterministic ordering by using the value of the bits themselves. */ + if (order == 0) + return total_flags_b - total_flags_a; + + return order; + } + + /* Implement TARGET_OPTION_INIT_STRUCT. */ + + static void + aarch64_option_init_struct (struct gcc_options *opts ATTRIBUTE_UNUSED) + { + /* Sort the extensions based on how many bits they set, order the larger + counts first. We sort the list because this makes processing the + feature bits O(n) instead of O(n^2). While n is small, the function + to calculate the feature strings is called on every options push, + pop and attribute change (arm_neon headers, lto etc all cause this to + happen quite frequently). It is a trade-off between time and space and + so time won. */ + int n_extensions + = sizeof (all_extensions) / sizeof (struct aarch64_option_extension); + qsort (&all_extensions_by_on, n_extensions, + sizeof (struct aarch64_option_extension), opt_ext_cmp); + } + + /* Checks to see if enough bits from the option OPT are enabled in + ISA_FLAG_BITS to be able to replace the individual options with the + canonicalized version of the option. This is done based on two rules: + + 1) Synthetic groups, such as +crypto we only care about the bits that are + turned on. e.g. +aes+sha2 can be replaced with +crypto. + + 2) Options that themselves have a bit, such as +rdma, in this case, all the + feature bits they turn on must be available and the bit for the option + itself must be. In this case it's effectively a reduction rather than a + grouping. e.g. +fp+simd is not enough to turn on +rdma, for that you would + need +rdma+fp+simd which is reduced down to +rdma. + */ + + static bool + aarch64_contains_opt (unsigned long isa_flag_bits, opt_ext *opt) + { + unsigned long flags_check + = opt->is_synthetic ? opt->flags_on : opt->flag_canonical; + + return (isa_flag_bits & flags_check) == flags_check; + } + /* Return a string representation of ISA_FLAGS. DEFAULT_ARCH_FLAGS gives the default set of flags which are implied by whatever -march we'd put out. Our job is to figure out the minimal set of "+" and *************** aarch64_get_extension_string_for_isa_fla *** 245,270 **** const struct aarch64_option_extension *opt = NULL; std::string outstr = ""; ! /* Pass one: Find all the things we need to turn on. As a special case, ! we always want to put out +crc if it is enabled. */ ! for (opt = all_extensions; opt->name != NULL; opt++) ! if ((isa_flags & opt->flag_canonical ! && !(default_arch_flags & opt->flag_canonical)) ! || (default_arch_flags & opt->flag_canonical ! && opt->flag_canonical == AARCH64_ISA_CRC)) ! { ! outstr += "+"; ! outstr += opt->name; ! } ! /* Pass two: Find all the things we need to turn off. */ ! for (opt = all_extensions; opt->name != NULL; opt++) ! if ((~isa_flags) & opt->flag_canonical ! && !((~default_arch_flags) & opt->flag_canonical)) { ! outstr += "+no"; ! outstr += opt->name; } return outstr; } --- 328,424 ---- const struct aarch64_option_extension *opt = NULL; std::string outstr = ""; ! unsigned long isa_flag_bits = isa_flags; ! /* Pass one: Minimize the search space by reducing the set of options ! to the smallest set that still turns on the same features as before in ! conjunction with the bits that are turned on by default for the selected ! architecture. */ ! for (opt = all_extensions_by_on; opt->name != NULL; opt++) ! { ! /* If the bit is on by default, then all the options it turns on are also ! on by default due to the transitive dependencies. ! ! If the option is enabled explicitly in the set then we need to emit ! an option for it. Since this list is sorted by extensions setting the ! largest number of featers first, we can be sure that nothing else will ! ever need to set the bits we already set. Consider the following ! situation: ! ! Feat1 = A + B + C ! Feat2 = A + B ! Feat3 = A + D ! Feat4 = B + C ! Feat5 = C ! ! The following results are expected: ! ! A + C = A + Feat5 ! B + C = Feat4 ! Feat4 + A = Feat1 ! Feat2 + Feat5 = Feat1 ! Feat1 + C = Feat1 ! Feat3 + Feat4 = Feat1 + D ! ! This search assumes that all invidual feature bits are use visible, ! in other words the user must be able to do +A, +B, +C and +D. */ ! if (aarch64_contains_opt (isa_flag_bits | default_arch_flags, opt)) { ! /* We remove all the dependent bits, to prevent them from being turned ! on twice. This only works because we assume that all there are ! individual options to set all bits standalone. */ ! isa_flag_bits &= ~opt->flags_on; ! isa_flag_bits |= opt->flag_canonical; } + } + + /* By toggling bits on and off, we may have set bits on that are already + enabled by default. So we mask the default set out so we don't emit an + option for them. Instead of checking for this each time during Pass One + we just mask all default bits away at the end. */ + isa_flag_bits &= ~default_arch_flags; + + /* We now have the smallest set of features we need to process. A subsequent + linear scan of the bits in isa_flag_bits will allow us to print the ext + names. However as a special case if CRC was enabled before, always print + it. This is required because some CPUs have an incorrect specification + in older assemblers. Even though CRC should be the default for these + cases the -mcpu values won't turn it on. */ + if (isa_flags & AARCH64_ISA_CRC) + isa_flag_bits |= AARCH64_ISA_CRC; + + /* Pass Two: + Print the option names that we're sure we must turn on. These are only + optional extension names. Mandatory ones have already been removed and + ones we explicitly want off have been too. */ + for (opt = all_extensions_by_on; opt->name != NULL; opt++) + { + if (isa_flag_bits & opt->flag_canonical) + { + outstr += "+"; + outstr += opt->name; + } + } + + /* Pass Three: + Print out a +no for any mandatory extension that we are + turning off. By this point aarch64_parse_extension would have ensured + that any optional extensions are turned off. The only things left are + things that can't be turned off usually, e.g. something that is on by + default because it's mandatory and we want it off. For turning off bits + we don't guarantee the smallest set of flags, but instead just emit all + options the user has specified. + + The assembler requires all + to be printed before +no. */ + for (opt = all_extensions_by_on; opt->name != NULL; opt++) + { + if ((~isa_flags) & opt->flag_canonical + && !((~default_arch_flags) & opt->flag_canonical)) + { + outstr += "+no"; + outstr += opt->name; + } + } return outstr; } *************** aarch64_rewrite_mcpu (int argc, const ch *** 345,349 **** --- 499,505 ---- return aarch64_rewrite_selected_cpu (argv[argc - 1]); } + struct gcc_targetm_common targetm_common = TARGETM_COMMON_INITIALIZER; + #undef AARCH64_CPU_NAME_LENGTH diff -Nrcpad gcc-8.3.0/gcc/config/aarch64/aarch64-c.c gcc-8.4.0/gcc/config/aarch64/aarch64-c.c *** gcc-8.3.0/gcc/config/aarch64/aarch64-c.c Sat Jan 13 17:50:35 2018 --- gcc-8.4.0/gcc/config/aarch64/aarch64-c.c Wed Mar 4 08:30:00 2020 *************** aarch64_update_cpp_builtins (cpp_reader *** 146,151 **** --- 146,152 ---- builtin_define_with_int_value ("__ARM_FEATURE_SVE_BITS", bits); } + aarch64_def_or_undef (TARGET_LSE, "__ARM_FEATURE_ATOMICS", pfile); aarch64_def_or_undef (TARGET_AES, "__ARM_FEATURE_AES", pfile); aarch64_def_or_undef (TARGET_SHA2, "__ARM_FEATURE_SHA2", pfile); aarch64_def_or_undef (TARGET_SHA3, "__ARM_FEATURE_SHA3", pfile); diff -Nrcpad gcc-8.3.0/gcc/config/aarch64/aarch64-cores.def gcc-8.4.0/gcc/config/aarch64/aarch64-cores.def *** gcc-8.3.0/gcc/config/aarch64/aarch64-cores.def Wed Jan 3 10:03:58 2018 --- gcc-8.4.0/gcc/config/aarch64/aarch64-cores.def Wed Mar 4 08:30:00 2020 *************** AARCH64_CORE("thunderx2t99", thunderx2t *** 85,90 **** --- 85,93 ---- /* ARM ('A') cores. */ AARCH64_CORE("cortex-a55", cortexa55, cortexa53, 8_2A, AARCH64_FL_FOR_ARCH8_2 | AARCH64_FL_F16 | AARCH64_FL_RCPC | AARCH64_FL_DOTPROD, cortexa53, 0x41, 0xd05, -1) AARCH64_CORE("cortex-a75", cortexa75, cortexa57, 8_2A, AARCH64_FL_FOR_ARCH8_2 | AARCH64_FL_F16 | AARCH64_FL_RCPC | AARCH64_FL_DOTPROD, cortexa73, 0x41, 0xd0a, -1) + AARCH64_CORE("cortex-a76", cortexa76, cortexa57, 8_2A, AARCH64_FL_FOR_ARCH8_2 | AARCH64_FL_F16 | AARCH64_FL_RCPC | AARCH64_FL_DOTPROD, cortexa72, 0x41, 0xd0b, -1) + AARCH64_CORE("ares", ares, cortexa57, 8_2A, AARCH64_FL_FOR_ARCH8_2 | AARCH64_FL_F16 | AARCH64_FL_RCPC | AARCH64_FL_DOTPROD, cortexa72, 0x41, 0xd0c, -1) + AARCH64_CORE("neoverse-n1", neoversen1,cortexa57, 8_2A, AARCH64_FL_FOR_ARCH8_2 | AARCH64_FL_F16 | AARCH64_FL_RCPC | AARCH64_FL_DOTPROD, cortexa72, 0x41, 0xd0c, -1) /* ARMv8.3-A Architecture Processors. */ diff -Nrcpad gcc-8.3.0/gcc/config/aarch64/aarch64-option-extensions.def gcc-8.4.0/gcc/config/aarch64/aarch64-option-extensions.def *** gcc-8.3.0/gcc/config/aarch64/aarch64-option-extensions.def Sat Jan 13 17:50:35 2018 --- gcc-8.4.0/gcc/config/aarch64/aarch64-option-extensions.def Wed Mar 4 08:30:00 2020 *************** *** 21,108 **** Before using #include to read this file, define a macro: ! AARCH64_OPT_EXTENSION(EXT_NAME, FLAG_CANONICAL, FLAGS_ON, FLAGS_OFF, FEATURE_STRING) ! EXT_NAME is the name of the extension, represented as a string constant. ! FLAGS_CANONICAL is the canonical internal name for this flag. ! FLAGS_ON are the bitwise-or of the features that enabling the extension ! adds, or zero if enabling this extension has no effect on other features. ! FLAGS_OFF are the bitwise-or of the features that disabling the extension ! removes, or zero if disabling this extension has no effect on other ! features. ! FEAT_STRING is a string containing the entries in the 'Features' field of ! /proc/cpuinfo on a GNU/Linux system that correspond to this architecture ! extension being available. Sometimes multiple entries are needed to enable ! the extension (for example, the 'crypto' extension depends on four ! entries: aes, pmull, sha1, sha2 being present). In that case this field ! should contain a space (" ") separated list of the strings in 'Features' ! that are required. Their order is not important. */ /* Enabling "fp" just enables "fp". Disabling "fp" also disables "simd", "crypto", "fp16", "aes", "sha2", "sha3", sm3/sm4 and "sve". */ ! AARCH64_OPT_EXTENSION("fp", AARCH64_FL_FP, 0, AARCH64_FL_SIMD | AARCH64_FL_CRYPTO |\ ! AARCH64_FL_F16 | AARCH64_FL_AES | AARCH64_FL_SHA2 |\ ! AARCH64_FL_SHA3 | AARCH64_FL_SM4 | AARCH64_FL_SVE, "fp") /* Enabling "simd" also enables "fp". Disabling "simd" also disables "crypto", "dotprod", "aes", "sha2", "sha3", "sm3/sm4" and "sve". */ ! AARCH64_OPT_EXTENSION("simd", AARCH64_FL_SIMD, AARCH64_FL_FP, AARCH64_FL_CRYPTO |\ ! AARCH64_FL_DOTPROD | AARCH64_FL_AES | AARCH64_FL_SHA2 |\ ! AARCH64_FL_SHA3 | AARCH64_FL_SM4 | AARCH64_FL_SVE, ! "asimd") ! /* Enabling "crypto" also enables "fp" and "simd". Disabling "crypto" disables "crypto", "aes", "sha2", "sha3" and "sm3/sm4". */ ! AARCH64_OPT_EXTENSION("crypto", AARCH64_FL_CRYPTO, AARCH64_FL_FP | AARCH64_FL_SIMD,\ ! AARCH64_FL_AES | AARCH64_FL_SHA2 |AARCH64_FL_SHA3 | AARCH64_FL_SM4,\ ! "aes pmull sha1 sha2") /* Enabling or disabling "crc" only changes "crc". */ ! AARCH64_OPT_EXTENSION("crc", AARCH64_FL_CRC, 0, 0, "crc32") /* Enabling or disabling "lse" only changes "lse". */ ! AARCH64_OPT_EXTENSION("lse", AARCH64_FL_LSE, 0, 0, "atomics") /* Enabling "fp16" also enables "fp". Disabling "fp16" disables "fp16", "fp16fml" and "sve". */ ! AARCH64_OPT_EXTENSION("fp16", AARCH64_FL_F16, AARCH64_FL_FP, ! AARCH64_FL_F16FML | AARCH64_FL_SVE, "fphp asimdhp") /* Enabling or disabling "rcpc" only changes "rcpc". */ ! AARCH64_OPT_EXTENSION("rcpc", AARCH64_FL_RCPC, 0, 0, "lrcpc") /* Enabling "rdma" also enables "fp", "simd". Disabling "rdma" just disables "rdma". */ ! AARCH64_OPT_EXTENSION("rdma", AARCH64_FL_RDMA, AARCH64_FL_FP | AARCH64_FL_SIMD, 0, "asimdrdm") /* Enabling "dotprod" also enables "simd". Disabling "dotprod" only disables "dotprod". */ ! AARCH64_OPT_EXTENSION("dotprod", AARCH64_FL_DOTPROD, AARCH64_FL_SIMD, 0, "asimddp") /* Enabling "aes" also enables "simd". Disabling "aes" just disables "aes". */ ! AARCH64_OPT_EXTENSION("aes", AARCH64_FL_AES, AARCH64_FL_SIMD, 0, "aes") /* Enabling "sha2" also enables "simd". Disabling "sha2" just disables "sha2". */ ! AARCH64_OPT_EXTENSION("sha2", AARCH64_FL_SHA2, AARCH64_FL_SIMD, 0, "sha1 sha2") /* Enabling "sha3" enables "simd" and "sha2". Disabling "sha3" just disables "sha3". */ ! AARCH64_OPT_EXTENSION("sha3", AARCH64_FL_SHA3, AARCH64_FL_SIMD | AARCH64_FL_SHA2, 0, "sha3 sha512") /* Enabling "sm4" also enables "simd". Disabling "sm4" just disables "sm4". */ ! AARCH64_OPT_EXTENSION("sm4", AARCH64_FL_SM4, AARCH64_FL_SIMD, 0, "sm3 sm4") /* Enabling "fp16fml" also enables "fp" and "fp16". Disabling "fp16fml" just disables "fp16fml". */ ! AARCH64_OPT_EXTENSION("fp16fml", AARCH64_FL_F16FML, AARCH64_FL_FP | AARCH64_FL_F16, 0, "asimdfml") /* Enabling "sve" also enables "fp16", "fp" and "simd". Disabling "sve" just disables "sve". */ ! AARCH64_OPT_EXTENSION("sve", AARCH64_FL_SVE, AARCH64_FL_FP | AARCH64_FL_SIMD | AARCH64_FL_F16, 0, "sve") #undef AARCH64_OPT_EXTENSION --- 21,117 ---- Before using #include to read this file, define a macro: ! AARCH64_OPT_EXTENSION(EXT_NAME, FLAG_CANONICAL, FLAGS_ON, FLAGS_OFF, ! SYNTHETIC, FEATURE_STRING) ! - EXT_NAME is the name of the extension, represented as a string constant. ! - FLAGS_CANONICAL is the canonical internal name for this flag. ! - FLAGS_ON are the bitwise-or of the features that enabling the extension ! adds, or zero if enabling this extension has no effect on other features. ! - FLAGS_OFF are the bitwise-or of the features that disabling the extension ! removes, or zero if disabling this extension has no effect on other ! features. ! - SYNTHETIC is a boolean to indicate whether the option is a purely synthetic ! grouping of options and that the option itself has no feature bit (e.g. ! crypto). This is used to determine when sum of the individual options in ! FLAGS_ON can be replaced by FLAG_CANONICAL in options minimization. If the ! group is synthetic then they can be replaced when all options in FLAGS_ON ! are enabled, otherwise they can only be replaced when ! FLAGS_ON | FLAG_CANONICAL are enabled. ! - FEAT_STRING is a string containing the entries in the 'Features' field of ! /proc/cpuinfo on a GNU/Linux system that correspond to this architecture ! extension being available. Sometimes multiple entries are needed to enable ! the extension (for example, the 'crypto' extension depends on four ! entries: aes, pmull, sha1, sha2 being present). In that case this field ! should contain a space (" ") separated list of the strings in 'Features' ! that are required. Their order is not important. An empty string means ! do not detect this feature during auto detection. */ ! ! /* NOTE: This file is being parsed by config.gcc and so the ! AARCH64_OPT_EXTENSION must adhere to a strict format: ! 1) No space between the AARCH64_OPT_EXTENSION and the opening (. ! 2) No space between the opening ( and the extension name. ! 3) No space after the extension name before the ,. ! 4) Spaces are only allowed after a , and around |. ! 5) Everything must be on one line. */ /* Enabling "fp" just enables "fp". Disabling "fp" also disables "simd", "crypto", "fp16", "aes", "sha2", "sha3", sm3/sm4 and "sve". */ ! AARCH64_OPT_EXTENSION("fp", AARCH64_FL_FP, 0, AARCH64_FL_SIMD | AARCH64_FL_CRYPTO | AARCH64_FL_F16 | AARCH64_FL_AES | AARCH64_FL_SHA2 | AARCH64_FL_SHA3 | AARCH64_FL_SM4 | AARCH64_FL_SVE, false, "fp") /* Enabling "simd" also enables "fp". Disabling "simd" also disables "crypto", "dotprod", "aes", "sha2", "sha3", "sm3/sm4" and "sve". */ ! AARCH64_OPT_EXTENSION("simd", AARCH64_FL_SIMD, AARCH64_FL_FP, AARCH64_FL_CRYPTO | AARCH64_FL_DOTPROD | AARCH64_FL_AES | AARCH64_FL_SHA2 | AARCH64_FL_SHA3 | AARCH64_FL_SM4 | AARCH64_FL_SVE, false, "asimd") ! /* Enabling "crypto" also enables "fp", "simd", "aes" and "sha2". Disabling "crypto" disables "crypto", "aes", "sha2", "sha3" and "sm3/sm4". */ ! AARCH64_OPT_EXTENSION("crypto", AARCH64_FL_CRYPTO, AARCH64_FL_FP | AARCH64_FL_SIMD | AARCH64_FL_AES | AARCH64_FL_SHA2, AARCH64_FL_AES | AARCH64_FL_SHA2 |AARCH64_FL_SHA3 | AARCH64_FL_SM4, true, "aes pmull sha1 sha2") /* Enabling or disabling "crc" only changes "crc". */ ! AARCH64_OPT_EXTENSION("crc", AARCH64_FL_CRC, 0, 0, false, "crc32") /* Enabling or disabling "lse" only changes "lse". */ ! AARCH64_OPT_EXTENSION("lse", AARCH64_FL_LSE, 0, 0, false, "atomics") /* Enabling "fp16" also enables "fp". Disabling "fp16" disables "fp16", "fp16fml" and "sve". */ ! AARCH64_OPT_EXTENSION("fp16", AARCH64_FL_F16, AARCH64_FL_FP, AARCH64_FL_F16FML | AARCH64_FL_SVE, false, "fphp asimdhp") /* Enabling or disabling "rcpc" only changes "rcpc". */ ! AARCH64_OPT_EXTENSION("rcpc", AARCH64_FL_RCPC, 0, 0, false, "lrcpc") /* Enabling "rdma" also enables "fp", "simd". Disabling "rdma" just disables "rdma". */ ! AARCH64_OPT_EXTENSION("rdma", AARCH64_FL_RDMA, AARCH64_FL_FP | AARCH64_FL_SIMD, 0, false, "asimdrdm") /* Enabling "dotprod" also enables "simd". Disabling "dotprod" only disables "dotprod". */ ! AARCH64_OPT_EXTENSION("dotprod", AARCH64_FL_DOTPROD, AARCH64_FL_SIMD, 0, false, "asimddp") /* Enabling "aes" also enables "simd". Disabling "aes" just disables "aes". */ ! AARCH64_OPT_EXTENSION("aes", AARCH64_FL_AES, AARCH64_FL_SIMD, 0, false, "aes") /* Enabling "sha2" also enables "simd". Disabling "sha2" just disables "sha2". */ ! AARCH64_OPT_EXTENSION("sha2", AARCH64_FL_SHA2, AARCH64_FL_SIMD, 0, false, "sha1 sha2") /* Enabling "sha3" enables "simd" and "sha2". Disabling "sha3" just disables "sha3". */ ! AARCH64_OPT_EXTENSION("sha3", AARCH64_FL_SHA3, AARCH64_FL_SIMD | AARCH64_FL_SHA2, 0, false, "sha3 sha512") /* Enabling "sm4" also enables "simd". Disabling "sm4" just disables "sm4". */ ! AARCH64_OPT_EXTENSION("sm4", AARCH64_FL_SM4, AARCH64_FL_SIMD, 0, false, "sm3 sm4") /* Enabling "fp16fml" also enables "fp" and "fp16". Disabling "fp16fml" just disables "fp16fml". */ ! AARCH64_OPT_EXTENSION("fp16fml", AARCH64_FL_F16FML, AARCH64_FL_FP | AARCH64_FL_F16, 0, false, "asimdfml") /* Enabling "sve" also enables "fp16", "fp" and "simd". Disabling "sve" just disables "sve". */ ! AARCH64_OPT_EXTENSION("sve", AARCH64_FL_SVE, AARCH64_FL_FP | AARCH64_FL_SIMD | AARCH64_FL_F16, 0, false, "sve") #undef AARCH64_OPT_EXTENSION diff -Nrcpad gcc-8.3.0/gcc/config/aarch64/aarch64-tune.md gcc-8.4.0/gcc/config/aarch64/aarch64-tune.md *** gcc-8.3.0/gcc/config/aarch64/aarch64-tune.md Fri Feb 22 14:22:13 2019 --- gcc-8.4.0/gcc/config/aarch64/aarch64-tune.md Wed Mar 4 08:32:12 2020 *************** *** 1,5 **** ;; -*- buffer-read-only: t -*- ;; Generated automatically by gentune.sh from aarch64-cores.def (define_attr "tune" ! "cortexa35,cortexa53,cortexa57,cortexa72,cortexa73,thunderx,thunderxt88p1,thunderxt88,thunderxt81,thunderxt83,xgene1,falkor,qdf24xx,exynosm1,thunderx2t99p1,vulcan,thunderx2t99,cortexa55,cortexa75,saphira,cortexa57cortexa53,cortexa72cortexa53,cortexa73cortexa35,cortexa73cortexa53,cortexa75cortexa55" (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" ! "cortexa35,cortexa53,cortexa57,cortexa72,cortexa73,thunderx,thunderxt88p1,thunderxt88,thunderxt81,thunderxt83,xgene1,falkor,qdf24xx,exynosm1,thunderx2t99p1,vulcan,thunderx2t99,cortexa55,cortexa75,cortexa76,ares,neoversen1,saphira,cortexa57cortexa53,cortexa72cortexa53,cortexa73cortexa35,cortexa73cortexa53,cortexa75cortexa55" (const (symbol_ref "((enum attr_tune) aarch64_tune)"))) diff -Nrcpad gcc-8.3.0/gcc/config/aarch64/aarch64.c gcc-8.4.0/gcc/config/aarch64/aarch64.c *** gcc-8.3.0/gcc/config/aarch64/aarch64.c Tue Jan 8 10:11:29 2019 --- gcc-8.4.0/gcc/config/aarch64/aarch64.c Wed Mar 4 08:30:00 2020 *************** aarch64_gen_atomic_cas (rtx rval, rtx me *** 14336,14341 **** --- 14336,14344 ---- void aarch64_split_compare_and_swap (rtx operands[]) { + /* Split after prolog/epilog to avoid interactions with shrinkwrapping. */ + gcc_assert (epilogue_completed); + rtx rval, mem, oldval, newval, scratch; machine_mode mode; bool is_weak; *************** void *** 14680,14685 **** --- 14683,14691 ---- aarch64_split_atomic_op (enum rtx_code code, rtx old_out, rtx new_out, rtx mem, rtx value, rtx model_rtx, rtx cond) { + /* Split after prolog/epilog to avoid interactions with shrinkwrapping. */ + gcc_assert (epilogue_completed); + machine_mode mode = GET_MODE (mem); machine_mode wmode = (mode == DImode ? DImode : SImode); const enum memmodel model = memmodel_from_int (INTVAL (model_rtx)); *************** aarch64_expand_vec_perm_const_1 (struct *** 15623,15629 **** return true; if (d->vec_flags == VEC_SVE_DATA) return aarch64_evpc_sve_tbl (d); ! else if (d->vec_flags == VEC_SVE_DATA) return aarch64_evpc_tbl (d); } return false; --- 15629,15635 ---- return true; if (d->vec_flags == VEC_SVE_DATA) return aarch64_evpc_sve_tbl (d); ! else if (d->vec_flags == VEC_ADVSIMD) return aarch64_evpc_tbl (d); } return false; diff -Nrcpad gcc-8.3.0/gcc/config/aarch64/aarch64.md gcc-8.4.0/gcc/config/aarch64/aarch64.md *** gcc-8.3.0/gcc/config/aarch64/aarch64.md Tue Apr 24 16:58:49 2018 --- gcc-8.4.0/gcc/config/aarch64/aarch64.md Wed Mar 4 08:30:00 2020 *************** *** 189,194 **** --- 189,195 ---- UNSPEC_CLASTB UNSPEC_FADDA UNSPEC_REV_SUBREG + UNSPEC_COPYSIGN ]) (define_c_enum "unspecv" [ *************** *** 974,981 **** (match_operand:GPI 1 "general_operand" ""))] "" " ! if (MEM_P (operands[0]) && CONST_INT_P (operands[1]) ! && mode == DImode && aarch64_split_dimode_const_store (operands[0], operands[1])) DONE; --- 975,982 ---- (match_operand:GPI 1 "general_operand" ""))] "" " ! if (MEM_P (operands[0]) && !MEM_VOLATILE_P (operands[0]) ! && CONST_INT_P (operands[1]) && mode == DImode && aarch64_split_dimode_const_store (operands[0], operands[1])) DONE; *************** *** 5412,5418 **** [(match_operand:GPI 0 "register_operand") (match_operand:GPF 1 "register_operand")] "TARGET_FLOAT ! && ((GET_MODE_SIZE (mode) <= GET_MODE_SIZE (mode)) || !flag_trapping_math || flag_fp_int_builtin_inexact)" { rtx cvt = gen_reg_rtx (mode); --- 5413,5419 ---- [(match_operand:GPI 0 "register_operand") (match_operand:GPF 1 "register_operand")] "TARGET_FLOAT ! && ((GET_MODE_BITSIZE (mode) <= LONG_TYPE_SIZE) || !flag_trapping_math || flag_fp_int_builtin_inexact)" { rtx cvt = gen_reg_rtx (mode); *************** *** 5427,5475 **** ;; LDR d2, #(1 << 63) ;; BSL v2.8b, [y], [x] ;; ! ;; or another, equivalent, sequence using one of BSL/BIT/BIF. ! ;; aarch64_simd_bsldf will select the best suited of these instructions ! ;; to generate based on register allocation, and knows how to partially ! ;; constant fold based on the values of X and Y, so expand through that. ! (define_expand "copysigndf3" ! [(match_operand:DF 0 "register_operand") ! (match_operand:DF 1 "register_operand") ! (match_operand:DF 2 "register_operand")] "TARGET_FLOAT && TARGET_SIMD" { ! rtx mask = gen_reg_rtx (DImode); ! emit_move_insn (mask, GEN_INT (HOST_WIDE_INT_1U << 63)); ! emit_insn (gen_aarch64_simd_bsldf (operands[0], mask, ! operands[2], operands[1])); DONE; } ) ! ;; As above, but we must first get to a 64-bit value if we wish to use ! ;; aarch64_simd_bslv2sf. ! ! (define_expand "copysignsf3" ! [(match_operand:SF 0 "register_operand") ! (match_operand:SF 1 "register_operand") ! (match_operand:SF 2 "register_operand")] "TARGET_FLOAT && TARGET_SIMD" ! { ! rtx v_bitmask = gen_reg_rtx (V2SImode); ! ! /* Juggle modes to get us in to a vector mode for BSL. */ ! rtx op1 = lowpart_subreg (DImode, operands[1], SFmode); ! rtx op2 = lowpart_subreg (V2SFmode, operands[2], SFmode); ! rtx tmp = gen_reg_rtx (V2SFmode); ! emit_move_insn (v_bitmask, ! aarch64_simd_gen_const_vector_dup (V2SImode, ! HOST_WIDE_INT_M1U << 31)); ! emit_insn (gen_aarch64_simd_bslv2sf (tmp, v_bitmask, op2, op1)); ! emit_move_insn (operands[0], lowpart_subreg (SFmode, tmp, V2SFmode)); ! DONE; ! } ) ;; For xorsign (x, y), we want to generate: ;; ;; LDR d2, #1<<63 --- 5428,5475 ---- ;; LDR d2, #(1 << 63) ;; BSL v2.8b, [y], [x] ;; ! ;; or another, equivalent, sequence using one of BSL/BIT/BIF. Because ! ;; we expect these operations to nearly always operate on ! ;; floating-point values, we do not want the operation to be ! ;; simplified into a bit-field insert operation that operates on the ! ;; integer side, since typically that would involve three inter-bank ! ;; register copies. As we do not expect copysign to be followed by ! ;; other logical operations on the result, it seems preferable to keep ! ;; this as an unspec operation, rather than exposing the underlying ! ;; logic to the compiler. ! (define_expand "copysign3" ! [(match_operand:GPF 0 "register_operand") ! (match_operand:GPF 1 "register_operand") ! (match_operand:GPF 2 "register_operand")] "TARGET_FLOAT && TARGET_SIMD" { ! rtx bitmask = gen_reg_rtx (mode); ! emit_move_insn (bitmask, GEN_INT (HOST_WIDE_INT_M1U ! << (GET_MODE_BITSIZE (mode) - 1))); ! emit_insn (gen_copysign3_insn (operands[0], operands[1], operands[2], ! bitmask)); DONE; } ) ! (define_insn "copysign3_insn" ! [(set (match_operand:GPF 0 "register_operand" "=w,w,w,r") ! (unspec:GPF [(match_operand:GPF 1 "register_operand" "w,0,w,r") ! (match_operand:GPF 2 "register_operand" "w,w,0,0") ! (match_operand: 3 "register_operand" ! "0,w,w,X")] ! UNSPEC_COPYSIGN))] "TARGET_FLOAT && TARGET_SIMD" ! "@ ! bsl\\t%0., %2., %1. ! bit\\t%0., %2., %3. ! bif\\t%0., %1., %3. ! bfxil\\t%0, %1, #0, " ! [(set_attr "type" "neon_bsl,neon_bsl,neon_bsl,bfm")] ) + ;; For xorsign (x, y), we want to generate: ;; ;; LDR d2, #1<<63 diff -Nrcpad gcc-8.3.0/gcc/config/aarch64/atomics.md gcc-8.4.0/gcc/config/aarch64/atomics.md *** gcc-8.3.0/gcc/config/aarch64/atomics.md Wed Jan 3 10:03:58 2018 --- gcc-8.4.0/gcc/config/aarch64/atomics.md Wed Mar 4 08:30:00 2020 *************** *** 53,59 **** (clobber (match_scratch:SI 7 "=&r"))] "" "#" ! "&& reload_completed" [(const_int 0)] { aarch64_split_compare_and_swap (operands); --- 53,59 ---- (clobber (match_scratch:SI 7 "=&r"))] "" "#" ! "&& epilogue_completed" [(const_int 0)] { aarch64_split_compare_and_swap (operands); *************** *** 77,83 **** (clobber (match_scratch:SI 7 "=&r"))] "" "#" ! "&& reload_completed" [(const_int 0)] { aarch64_split_compare_and_swap (operands); --- 77,83 ---- (clobber (match_scratch:SI 7 "=&r"))] "" "#" ! "&& epilogue_completed" [(const_int 0)] { aarch64_split_compare_and_swap (operands); *************** *** 169,175 **** (clobber (match_scratch:SI 4 "=&r"))] "" "#" ! "&& reload_completed" [(const_int 0)] { aarch64_split_atomic_op (SET, operands[0], NULL, operands[1], --- 169,175 ---- (clobber (match_scratch:SI 4 "=&r"))] "" "#" ! "&& epilogue_completed" [(const_int 0)] { aarch64_split_atomic_op (SET, operands[0], NULL, operands[1], *************** *** 230,236 **** (clobber (match_scratch:SI 4 "=&r"))] "" "#" ! "&& reload_completed" [(const_int 0)] { aarch64_split_atomic_op (, NULL, operands[3], operands[0], --- 230,236 ---- (clobber (match_scratch:SI 4 "=&r"))] "" "#" ! "&& epilogue_completed" [(const_int 0)] { aarch64_split_atomic_op (, NULL, operands[3], operands[0], *************** *** 271,277 **** (clobber (match_scratch:SI 4 "=&r"))] "" "#" ! "&& reload_completed" [(const_int 0)] { aarch64_split_atomic_op (NOT, NULL, operands[3], operands[0], --- 271,277 ---- (clobber (match_scratch:SI 4 "=&r"))] "" "#" ! "&& epilogue_completed" [(const_int 0)] { aarch64_split_atomic_op (NOT, NULL, operands[3], operands[0], *************** *** 317,323 **** (clobber (match_scratch:SI 5 "=&r"))] "" "#" ! "&& reload_completed" [(const_int 0)] { aarch64_split_atomic_op (, operands[0], operands[4], operands[1], --- 317,323 ---- (clobber (match_scratch:SI 5 "=&r"))] "" "#" ! "&& epilogue_completed" [(const_int 0)] { aarch64_split_atomic_op (, operands[0], operands[4], operands[1], *************** *** 361,367 **** (clobber (match_scratch:SI 5 "=&r"))] "" "#" ! "&& reload_completed" [(const_int 0)] { aarch64_split_atomic_op (NOT, operands[0], operands[4], operands[1], --- 361,367 ---- (clobber (match_scratch:SI 5 "=&r"))] "" "#" ! "&& epilogue_completed" [(const_int 0)] { aarch64_split_atomic_op (NOT, operands[0], operands[4], operands[1], *************** *** 408,414 **** (clobber (match_scratch:SI 4 "=&r"))] "" "#" ! "&& reload_completed" [(const_int 0)] { aarch64_split_atomic_op (, NULL, operands[0], operands[1], --- 408,414 ---- (clobber (match_scratch:SI 4 "=&r"))] "" "#" ! "&& epilogue_completed" [(const_int 0)] { aarch64_split_atomic_op (, NULL, operands[0], operands[1], *************** *** 455,461 **** (clobber (match_scratch:SI 4 "=&r"))] "" "#" ! "&& reload_completed" [(const_int 0)] { aarch64_split_atomic_op (NOT, NULL, operands[0], operands[1], --- 455,461 ---- (clobber (match_scratch:SI 4 "=&r"))] "" "#" ! "&& epilogue_completed" [(const_int 0)] { aarch64_split_atomic_op (NOT, NULL, operands[0], operands[1], diff -Nrcpad gcc-8.3.0/gcc/config/aarch64/driver-aarch64.c gcc-8.4.0/gcc/config/aarch64/driver-aarch64.c *** gcc-8.3.0/gcc/config/aarch64/driver-aarch64.c Wed Jan 3 10:03:58 2018 --- gcc-8.4.0/gcc/config/aarch64/driver-aarch64.c Wed Mar 4 08:30:00 2020 *************** struct aarch64_arch_extension *** 36,42 **** const char *feat_string; }; ! #define AARCH64_OPT_EXTENSION(EXT_NAME, FLAG_CANONICAL, FLAGS_ON, FLAGS_OFF, FEATURE_STRING) \ { EXT_NAME, FLAG_CANONICAL, FEATURE_STRING }, static struct aarch64_arch_extension aarch64_extensions[] = { --- 36,43 ---- const char *feat_string; }; ! #define AARCH64_OPT_EXTENSION(EXT_NAME, FLAG_CANONICAL, FLAGS_ON, FLAGS_OFF, \ ! SYNTHETIC, FEATURE_STRING) \ { EXT_NAME, FLAG_CANONICAL, FEATURE_STRING }, static struct aarch64_arch_extension aarch64_extensions[] = { *************** host_detect_local_cpu (int argc, const c *** 178,184 **** unsigned int variants[2] = { ALL_VARIANTS, ALL_VARIANTS }; unsigned int n_variants = 0; bool processed_exts = false; - const char *ext_string = ""; unsigned long extension_flags = 0; unsigned long default_flags = 0; --- 179,184 ---- *************** host_detect_local_cpu (int argc, const c *** 249,275 **** { for (i = 0; i < num_exts; i++) { ! char *p = NULL; ! char *feat_string ! = concat (aarch64_extensions[i].feat_string, NULL); bool enabled = true; /* This may be a multi-token feature string. We need ! to match all parts, which could be in any order. ! If this isn't a multi-token feature string, strtok is ! just going to return a pointer to feat_string. */ ! p = strtok (feat_string, " "); ! while (p != NULL) { ! if (strstr (buf, p) == NULL) { /* Failed to match this token. Turn off the features we'd otherwise enable. */ enabled = false; break; } ! p = strtok (NULL, " "); } if (enabled) extension_flags |= aarch64_extensions[i].flag; --- 249,283 ---- { for (i = 0; i < num_exts; i++) { ! const char *p = aarch64_extensions[i].feat_string; ! ! /* If the feature contains no HWCAPS string then ignore it for the ! auto detection. */ ! if (*p == '\0') ! continue; ! bool enabled = true; /* This may be a multi-token feature string. We need ! to match all parts, which could be in any order. */ ! size_t len = strlen (buf); ! do { ! const char *end = strchr (p, ' '); ! if (end == NULL) ! end = strchr (p, '\0'); ! if (memmem (buf, len, p, end - p) == NULL) { /* Failed to match this token. Turn off the features we'd otherwise enable. */ enabled = false; break; } ! if (*end == '\0') ! break; ! p = end + 1; } + while (1); if (enabled) extension_flags |= aarch64_extensions[i].flag; *************** host_detect_local_cpu (int argc, const c *** 348,370 **** if (tune) return res; ! ext_string ! = aarch64_get_extension_string_for_isa_flags (extension_flags, ! default_flags).c_str (); ! ! res = concat (res, ext_string, NULL); return res; not_found: { /* If detection fails we ignore the option. ! Clean up and return empty string. */ if (f) fclose (f); ! return ""; } } --- 356,379 ---- if (tune) return res; ! { ! std::string extension ! = aarch64_get_extension_string_for_isa_flags (extension_flags, ! default_flags); ! res = concat (res, extension.c_str (), NULL); ! } return res; not_found: { /* If detection fails we ignore the option. ! Clean up and return NULL. */ if (f) fclose (f); ! return NULL; } } diff -Nrcpad gcc-8.3.0/gcc/config/aarch64/iterators.md gcc-8.4.0/gcc/config/aarch64/iterators.md *** gcc-8.3.0/gcc/config/aarch64/iterators.md Tue Apr 24 16:58:49 2018 --- gcc-8.4.0/gcc/config/aarch64/iterators.md Wed Mar 4 08:30:00 2020 *************** *** 578,584 **** (define_mode_attr sizen [(QI "8") (HI "16") (SI "32") (DI "64")]) ;; Give the ordinal of the MSB in the mode ! (define_mode_attr sizem1 [(QI "#7") (HI "#15") (SI "#31") (DI "#63")]) ;; Attribute to describe constants acceptable in logical operations (define_mode_attr lconst [(SI "K") (DI "L")]) --- 578,585 ---- (define_mode_attr sizen [(QI "8") (HI "16") (SI "32") (DI "64")]) ;; Give the ordinal of the MSB in the mode ! (define_mode_attr sizem1 [(QI "#7") (HI "#15") (SI "#31") (DI "#63") ! (HF "#15") (SF "#31") (DF "#63")]) ;; Attribute to describe constants acceptable in logical operations (define_mode_attr lconst [(SI "K") (DI "L")]) *************** *** 664,670 **** (V8HF "16b") (V2SF "8b") (V4SF "16b") (V2DF "16b") (DI "8b") (DF "8b") ! (SI "8b")]) ;; Define element mode for each vector mode. (define_mode_attr VEL [(V8QI "QI") (V16QI "QI") (VNx16QI "QI") --- 665,671 ---- (V8HF "16b") (V2SF "8b") (V4SF "16b") (V2DF "16b") (DI "8b") (DF "8b") ! (SI "8b") (SF "8b")]) ;; Define element mode for each vector mode. (define_mode_attr VEL [(V8QI "QI") (V16QI "QI") (VNx16QI "QI") diff -Nrcpad gcc-8.3.0/gcc/config/alpha/alpha.c gcc-8.4.0/gcc/config/alpha/alpha.c *** gcc-8.3.0/gcc/config/alpha/alpha.c Thu Jan 17 17:37:52 2019 --- gcc-8.4.0/gcc/config/alpha/alpha.c Wed Mar 4 08:30:00 2020 *************** alpha_handle_trap_shadows (void) *** 8835,8840 **** --- 8835,8843 ---- case CODE_LABEL: goto close_shadow; + case DEBUG_INSN: + break; + default: gcc_unreachable (); } diff -Nrcpad gcc-8.3.0/gcc/config/alpha/alpha.h gcc-8.4.0/gcc/config/alpha/alpha.h *** gcc-8.3.0/gcc/config/alpha/alpha.h Wed Jan 3 10:03:58 2018 --- gcc-8.4.0/gcc/config/alpha/alpha.h Wed Mar 4 08:30:00 2020 *************** enum reg_class { *** 678,684 **** #define CONSTANT_ADDRESS_P(X) \ (CONST_INT_P (X) \ ! && (unsigned HOST_WIDE_INT) (INTVAL (X) + 0x8000) < 0x10000) /* The macros REG_OK_FOR..._P assume that the arg is a REG rtx and check its validity for a certain class. --- 678,684 ---- #define CONSTANT_ADDRESS_P(X) \ (CONST_INT_P (X) \ ! && (UINTVAL (X) + 0x8000) < 0x10000) /* The macros REG_OK_FOR..._P assume that the arg is a REG rtx and check its validity for a certain class. diff -Nrcpad gcc-8.3.0/gcc/config/arm/arm.c gcc-8.4.0/gcc/config/arm/arm.c *** gcc-8.3.0/gcc/config/arm/arm.c Mon Feb 11 09:26:31 2019 --- gcc-8.4.0/gcc/config/arm/arm.c Wed Mar 4 08:30:00 2020 *************** static bool *** 8879,8889 **** arm_cannot_force_const_mem (machine_mode mode ATTRIBUTE_UNUSED, rtx x) { rtx base, offset; ! if (ARM_OFFSETS_MUST_BE_WITHIN_SECTIONS_P) { ! split_const (x, &base, &offset); ! if (GET_CODE (base) == SYMBOL_REF && !offset_within_block_p (base, INTVAL (offset))) return true; } --- 8879,8894 ---- arm_cannot_force_const_mem (machine_mode mode ATTRIBUTE_UNUSED, rtx x) { rtx base, offset; + split_const (x, &base, &offset); ! if (SYMBOL_REF_P (base)) { ! /* Function symbols cannot have an offset due to the Thumb bit. */ ! if ((SYMBOL_REF_FLAGS (base) & SYMBOL_FLAG_FUNCTION) ! && INTVAL (offset) != 0) ! return true; ! ! if (ARM_OFFSETS_MUST_BE_WITHIN_SECTIONS_P && !offset_within_block_p (base, INTVAL (offset))) return true; } *************** neon_valid_immediate (rtx op, machine_mo *** 11930,11937 **** else { n_elts = 1; ! if (mode == VOIDmode) ! mode = DImode; } innersize = GET_MODE_UNIT_SIZE (mode); --- 11935,11941 ---- else { n_elts = 1; ! gcc_assert (mode != VOIDmode); } innersize = GET_MODE_UNIT_SIZE (mode); *************** ldm_stm_operation_p (rtx op, bool load, *** 13095,13100 **** --- 13099,13107 ---- if (load && (REGNO (reg) == SP_REGNUM) && (REGNO (addr) != SP_REGNUM)) return false; + if (regno == REGNO (addr)) + addr_reg_in_reglist = true; + for (; i < count; i++) { elt = XVECEXP (op, 0, i); *************** load_multiple_sequence (rtx *operands, i *** 13289,13295 **** int unsorted_regs[MAX_LDM_STM_OPS]; HOST_WIDE_INT unsorted_offsets[MAX_LDM_STM_OPS]; int order[MAX_LDM_STM_OPS]; - rtx base_reg_rtx = NULL; int base_reg = -1; int i, ldm_case; --- 13296,13301 ---- *************** load_multiple_sequence (rtx *operands, i *** 13334,13340 **** if (i == 0) { base_reg = REGNO (reg); - base_reg_rtx = reg; if (TARGET_THUMB1 && base_reg > LAST_LO_REGNUM) return 0; } --- 13340,13345 ---- *************** load_multiple_sequence (rtx *operands, i *** 13393,13402 **** *load_offset = unsorted_offsets[order[0]]; } - if (TARGET_THUMB1 - && !peep2_reg_dead_p (nops, base_reg_rtx)) - return 0; - if (unsorted_offsets[order[0]] == 0) ldm_case = 1; /* ldmia */ else if (TARGET_ARM && unsorted_offsets[order[0]] == 4) --- 13398,13403 ---- *************** gen_ldm_seq (rtx *operands, int nops, bo *** 13772,13780 **** if (TARGET_THUMB1) { - gcc_assert (peep2_reg_dead_p (nops, base_reg_rtx)); gcc_assert (ldm_case == 1 || ldm_case == 5); ! write_back = TRUE; } if (ldm_case == 5) --- 13773,13789 ---- if (TARGET_THUMB1) { gcc_assert (ldm_case == 1 || ldm_case == 5); ! ! /* Thumb-1 ldm uses writeback except if the base is loaded. */ ! write_back = true; ! for (i = 0; i < nops; i++) ! if (base_reg == regs[i]) ! write_back = false; ! ! /* Ensure the base is dead if it is updated. */ ! if (write_back && !peep2_reg_dead_p (nops, base_reg_rtx)) ! return false; } if (ldm_case == 5) *************** gen_ldm_seq (rtx *operands, int nops, bo *** 13782,13789 **** rtx newbase = TARGET_THUMB1 ? base_reg_rtx : gen_rtx_REG (SImode, regs[0]); emit_insn (gen_addsi3 (newbase, base_reg_rtx, GEN_INT (offset))); offset = 0; ! if (!TARGET_THUMB1) ! base_reg_rtx = newbase; } for (i = 0; i < nops; i++) --- 13791,13797 ---- rtx newbase = TARGET_THUMB1 ? base_reg_rtx : gen_rtx_REG (SImode, regs[0]); emit_insn (gen_addsi3 (newbase, base_reg_rtx, GEN_INT (offset))); offset = 0; ! base_reg_rtx = newbase; } for (i = 0; i < nops; i++) *************** arm_compute_save_core_reg_mask (void) *** 19508,19513 **** --- 19516,19550 ---- return save_reg_mask; } + /* Return a mask for the call-clobbered low registers that are unused + at the end of the prologue. */ + static unsigned long + thumb1_prologue_unused_call_clobbered_lo_regs (void) + { + unsigned long mask = 0; + + for (int reg = 0; reg <= LAST_LO_REGNUM; reg++) + if (!callee_saved_reg_p (reg) + && !REGNO_REG_SET_P (df_get_live_out (ENTRY_BLOCK_PTR_FOR_FN (cfun)), + reg)) + mask |= 1 << reg; + return mask; + } + + /* Similarly for the start of the epilogue. */ + static unsigned long + thumb1_epilogue_unused_call_clobbered_lo_regs (void) + { + unsigned long mask = 0; + + for (int reg = 0; reg <= LAST_LO_REGNUM; reg++) + if (!callee_saved_reg_p (reg) + && !REGNO_REG_SET_P (df_get_live_in (EXIT_BLOCK_PTR_FOR_FN (cfun)), + reg)) + mask |= 1 << reg; + return mask; + } + /* Compute a bit mask of which core registers need to be saved on the stack for the current function. */ static unsigned long *************** thumb1_compute_save_core_reg_mask (void) *** 19539,19548 **** if (mask & 0xff || thumb_force_lr_save ()) mask |= (1 << LR_REGNUM); ! /* Make sure we have a low work register if we need one. ! We will need one if we are going to push a high register, ! but we are not currently intending to push a low register. */ if ((mask & 0xff) == 0 && ((mask & 0x0f00) || TARGET_BACKTRACE)) { /* Use thumb_find_work_register to choose which register --- 19576,19594 ---- if (mask & 0xff || thumb_force_lr_save ()) mask |= (1 << LR_REGNUM); ! bool call_clobbered_scratch ! = (thumb1_prologue_unused_call_clobbered_lo_regs () ! && thumb1_epilogue_unused_call_clobbered_lo_regs ()); ! ! /* Make sure we have a low work register if we need one. We will ! need one if we are going to push a high register, but we are not ! currently intending to push a low register. However if both the ! prologue and epilogue have a spare call-clobbered low register, ! then we won't need to find an additional work register. It does ! not need to be the same register in the prologue and ! epilogue. */ if ((mask & 0xff) == 0 + && !call_clobbered_scratch && ((mask & 0x0f00) || TARGET_BACKTRACE)) { /* Use thumb_find_work_register to choose which register *************** thumb1_unexpanded_epilogue (void) *** 24768,24779 **** unsigned long mask = live_regs_mask & 0xff; int next_hi_reg; ! /* The available low registers depend on the size of the value we are ! returning. */ ! if (size <= 12) ! mask |= 1 << 3; ! if (size <= 8) ! mask |= 1 << 2; if (mask == 0) /* Oh dear! We have no low registers into which we can pop --- 24814,24820 ---- unsigned long mask = live_regs_mask & 0xff; int next_hi_reg; ! mask |= thumb1_epilogue_unused_call_clobbered_lo_regs (); if (mask == 0) /* Oh dear! We have no low registers into which we can pop *************** thumb1_unexpanded_epilogue (void) *** 24781,24787 **** internal_error ("no low registers available for popping high registers"); ! for (next_hi_reg = 8; next_hi_reg < 13; next_hi_reg++) if (live_regs_mask & (1 << next_hi_reg)) break; --- 24822,24828 ---- internal_error ("no low registers available for popping high registers"); ! for (next_hi_reg = 12; next_hi_reg > LAST_LO_REGNUM; next_hi_reg--) if (live_regs_mask & (1 << next_hi_reg)) break; *************** thumb1_unexpanded_epilogue (void) *** 24789,24795 **** { /* Find lo register(s) into which the high register(s) can be popped. */ ! for (regno = 0; regno <= LAST_LO_REGNUM; regno++) { if (mask & (1 << regno)) high_regs_pushed--; --- 24830,24836 ---- { /* Find lo register(s) into which the high register(s) can be popped. */ ! for (regno = LAST_LO_REGNUM; regno >= 0; regno--) { if (mask & (1 << regno)) high_regs_pushed--; *************** thumb1_unexpanded_epilogue (void) *** 24797,24816 **** break; } ! mask &= (2 << regno) - 1; /* A noop if regno == 8 */ /* Pop the values into the low register(s). */ thumb_pop (asm_out_file, mask); /* Move the value(s) into the high registers. */ ! for (regno = 0; regno <= LAST_LO_REGNUM; regno++) { if (mask & (1 << regno)) { asm_fprintf (asm_out_file, "\tmov\t%r, %r\n", next_hi_reg, regno); ! for (next_hi_reg++; next_hi_reg < 13; next_hi_reg++) if (live_regs_mask & (1 << next_hi_reg)) break; } --- 24838,24859 ---- break; } ! if (high_regs_pushed == 0 && regno >= 0) ! mask &= ~((1 << regno) - 1); /* Pop the values into the low register(s). */ thumb_pop (asm_out_file, mask); /* Move the value(s) into the high registers. */ ! for (regno = LAST_LO_REGNUM; regno >= 0; regno--) { if (mask & (1 << regno)) { asm_fprintf (asm_out_file, "\tmov\t%r, %r\n", next_hi_reg, regno); ! for (next_hi_reg--; next_hi_reg > LAST_LO_REGNUM; ! next_hi_reg--) if (live_regs_mask & (1 << next_hi_reg)) break; } *************** thumb1_expand_prologue (void) *** 25192,25201 **** break; /* Here we need to mask out registers used for passing arguments ! even if they can be pushed. This is to avoid using them to stash the high ! registers. Such kind of stash may clobber the use of arguments. */ pushable_regs = l_mask & (~arg_regs_mask); ! if (lr_needs_saving) pushable_regs &= ~(1 << LR_REGNUM); if (pushable_regs == 0) --- 25235,25254 ---- break; /* Here we need to mask out registers used for passing arguments ! even if they can be pushed. This is to avoid using them to ! stash the high registers. Such kind of stash may clobber the ! use of arguments. */ pushable_regs = l_mask & (~arg_regs_mask); ! pushable_regs |= thumb1_prologue_unused_call_clobbered_lo_regs (); ! ! /* Normally, LR can be used as a scratch register once it has been ! saved; but if the function examines its own return address then ! the value is still live and we need to avoid using it. */ ! bool return_addr_live ! = REGNO_REG_SET_P (df_get_live_out (ENTRY_BLOCK_PTR_FOR_FN (cfun)), ! LR_REGNUM); ! ! if (lr_needs_saving || return_addr_live) pushable_regs &= ~(1 << LR_REGNUM); if (pushable_regs == 0) *************** thumb1_expand_prologue (void) *** 25236,25241 **** --- 25289,25299 ---- push_mask |= 1 << LR_REGNUM; real_regs_mask |= 1 << LR_REGNUM; lr_needs_saving = false; + /* If the return address is not live at this point, we + can add LR to the list of registers that we can use + for pushes. */ + if (!return_addr_live) + pushable_regs |= 1 << LR_REGNUM; } insn = thumb1_emit_multi_reg_push (push_mask, real_regs_mask); diff -Nrcpad gcc-8.3.0/gcc/config/arm/arm.h gcc-8.4.0/gcc/config/arm/arm.h *** gcc-8.3.0/gcc/config/arm/arm.h Thu Mar 22 17:24:41 2018 --- gcc-8.4.0/gcc/config/arm/arm.h Wed Mar 4 08:30:00 2020 *************** extern tree arm_fp16_type_node; *** 191,197 **** /* FPU supports converting between HFmode and DFmode in a single hardware step. */ #define TARGET_FP16_TO_DOUBLE \ ! (TARGET_HARD_FLOAT && (TARGET_FP16 && TARGET_VFP5)) /* FPU supports fused-multiply-add operations. */ #define TARGET_FMA (bitmap_bit_p (arm_active_target.isa, isa_bit_vfpv4)) --- 191,197 ---- /* FPU supports converting between HFmode and DFmode in a single hardware step. */ #define TARGET_FP16_TO_DOUBLE \ ! (TARGET_HARD_FLOAT && TARGET_FP16 && TARGET_VFP5 && TARGET_VFP_DOUBLE) /* FPU supports fused-multiply-add operations. */ #define TARGET_FMA (bitmap_bit_p (arm_active_target.isa, isa_bit_vfpv4)) diff -Nrcpad gcc-8.3.0/gcc/config/arm/arm.md gcc-8.4.0/gcc/config/arm/arm.md *** gcc-8.3.0/gcc/config/arm/arm.md Fri Mar 23 16:43:43 2018 --- gcc-8.4.0/gcc/config/arm/arm.md Wed Mar 4 08:30:00 2020 *************** *** 4448,4509 **** ; ARMv6+ unaligned load/store instructions (used for packed structure accesses). (define_insn "unaligned_loadsi" ! [(set (match_operand:SI 0 "s_register_operand" "=l,r") ! (unspec:SI [(match_operand:SI 1 "memory_operand" "Uw,m")] UNSPEC_UNALIGNED_LOAD))] "unaligned_access" ! "ldr%?\t%0, %1\t@ unaligned" ! [(set_attr "arch" "t2,any") ! (set_attr "length" "2,4") ! (set_attr "predicable" "yes") ! (set_attr "predicable_short_it" "yes,no") (set_attr "type" "load_4")]) (define_insn "unaligned_loadhis" [(set (match_operand:SI 0 "s_register_operand" "=r") (sign_extend:SI (unspec:HI [(match_operand:HI 1 "memory_operand" "Uh")] UNSPEC_UNALIGNED_LOAD)))] ! "unaligned_access" "ldrsh%?\t%0, %1\t@ unaligned" [(set_attr "predicable" "yes") (set_attr "type" "load_byte")]) (define_insn "unaligned_loadhiu" ! [(set (match_operand:SI 0 "s_register_operand" "=l,r") (zero_extend:SI ! (unspec:HI [(match_operand:HI 1 "memory_operand" "Uw,m")] UNSPEC_UNALIGNED_LOAD)))] "unaligned_access" ! "ldrh%?\t%0, %1\t@ unaligned" ! [(set_attr "arch" "t2,any") ! (set_attr "length" "2,4") ! (set_attr "predicable" "yes") ! (set_attr "predicable_short_it" "yes,no") (set_attr "type" "load_byte")]) (define_insn "unaligned_storesi" ! [(set (match_operand:SI 0 "memory_operand" "=Uw,m") ! (unspec:SI [(match_operand:SI 1 "s_register_operand" "l,r")] UNSPEC_UNALIGNED_STORE))] "unaligned_access" ! "str%?\t%1, %0\t@ unaligned" ! [(set_attr "arch" "t2,any") ! (set_attr "length" "2,4") ! (set_attr "predicable" "yes") ! (set_attr "predicable_short_it" "yes,no") (set_attr "type" "store_4")]) (define_insn "unaligned_storehi" ! [(set (match_operand:HI 0 "memory_operand" "=Uw,m") ! (unspec:HI [(match_operand:HI 1 "s_register_operand" "l,r")] UNSPEC_UNALIGNED_STORE))] "unaligned_access" ! "strh%?\t%1, %0\t@ unaligned" ! [(set_attr "arch" "t2,any") ! (set_attr "length" "2,4") ! (set_attr "predicable" "yes") ! (set_attr "predicable_short_it" "yes,no") (set_attr "type" "store_4")]) --- 4448,4525 ---- ; ARMv6+ unaligned load/store instructions (used for packed structure accesses). (define_insn "unaligned_loadsi" ! [(set (match_operand:SI 0 "s_register_operand" "=l,l,r") ! (unspec:SI [(match_operand:SI 1 "memory_operand" "m,Uw,m")] UNSPEC_UNALIGNED_LOAD))] "unaligned_access" ! "@ ! ldr\t%0, %1\t@ unaligned ! ldr%?\t%0, %1\t@ unaligned ! ldr%?\t%0, %1\t@ unaligned" ! [(set_attr "arch" "t1,t2,32") ! (set_attr "length" "2,2,4") ! (set_attr "predicable" "no,yes,yes") ! (set_attr "predicable_short_it" "no,yes,no") (set_attr "type" "load_4")]) + ;; The 16-bit Thumb1 variant of ldrsh requires two registers in the + ;; address (there's no immediate format). That's tricky to support + ;; here and we don't really need this pattern for that case, so only + ;; enable for 32-bit ISAs. (define_insn "unaligned_loadhis" [(set (match_operand:SI 0 "s_register_operand" "=r") (sign_extend:SI (unspec:HI [(match_operand:HI 1 "memory_operand" "Uh")] UNSPEC_UNALIGNED_LOAD)))] ! "unaligned_access && TARGET_32BIT" "ldrsh%?\t%0, %1\t@ unaligned" [(set_attr "predicable" "yes") (set_attr "type" "load_byte")]) (define_insn "unaligned_loadhiu" ! [(set (match_operand:SI 0 "s_register_operand" "=l,l,r") (zero_extend:SI ! (unspec:HI [(match_operand:HI 1 "memory_operand" "m,Uw,m")] UNSPEC_UNALIGNED_LOAD)))] "unaligned_access" ! "@ ! ldrh\t%0, %1\t@ unaligned ! ldrh%?\t%0, %1\t@ unaligned ! ldrh%?\t%0, %1\t@ unaligned" ! [(set_attr "arch" "t1,t2,32") ! (set_attr "length" "2,2,4") ! (set_attr "predicable" "no,yes,yes") ! (set_attr "predicable_short_it" "no,yes,no") (set_attr "type" "load_byte")]) (define_insn "unaligned_storesi" ! [(set (match_operand:SI 0 "memory_operand" "=m,Uw,m") ! (unspec:SI [(match_operand:SI 1 "s_register_operand" "l,l,r")] UNSPEC_UNALIGNED_STORE))] "unaligned_access" ! "@ ! str\t%1, %0\t@ unaligned ! str%?\t%1, %0\t@ unaligned ! str%?\t%1, %0\t@ unaligned" ! [(set_attr "arch" "t1,t2,32") ! (set_attr "length" "2,2,4") ! (set_attr "predicable" "no,yes,yes") ! (set_attr "predicable_short_it" "no,yes,no") (set_attr "type" "store_4")]) (define_insn "unaligned_storehi" ! [(set (match_operand:HI 0 "memory_operand" "=m,Uw,m") ! (unspec:HI [(match_operand:HI 1 "s_register_operand" "l,l,r")] UNSPEC_UNALIGNED_STORE))] "unaligned_access" ! "@ ! strh\t%1, %0\t@ unaligned ! strh%?\t%1, %0\t@ unaligned ! strh%?\t%1, %0\t@ unaligned" ! [(set_attr "arch" "t1,t2,32") ! (set_attr "length" "2,2,4") ! (set_attr "predicable" "no,yes,yes") ! (set_attr "predicable_short_it" "no,yes,no") (set_attr "type" "store_4")]) *************** *** 5976,6027 **** } } ! if (ARM_OFFSETS_MUST_BE_WITHIN_SECTIONS_P) { ! split_const (operands[1], &base, &offset); ! if (GET_CODE (base) == SYMBOL_REF ! && !offset_within_block_p (base, INTVAL (offset))) ! { ! tmp = can_create_pseudo_p () ? gen_reg_rtx (SImode) : operands[0]; ! emit_move_insn (tmp, base); ! emit_insn (gen_addsi3 (operands[0], tmp, offset)); ! DONE; ! } } /* Recognize the case where operand[1] is a reference to thread-local ! data and load its address to a register. */ if (arm_tls_referenced_p (operands[1])) ! { ! rtx tmp = operands[1]; ! rtx addend = NULL; ! ! if (GET_CODE (tmp) == CONST && GET_CODE (XEXP (tmp, 0)) == PLUS) ! { ! addend = XEXP (XEXP (tmp, 0), 1); ! tmp = XEXP (XEXP (tmp, 0), 0); ! } ! ! gcc_assert (GET_CODE (tmp) == SYMBOL_REF); ! gcc_assert (SYMBOL_REF_TLS_MODEL (tmp) != 0); ! ! tmp = legitimize_tls_address (tmp, ! !can_create_pseudo_p () ? operands[0] : 0); ! if (addend) ! { ! tmp = gen_rtx_PLUS (SImode, tmp, addend); ! tmp = force_operand (tmp, operands[0]); ! } ! operands[1] = tmp; ! } else if (flag_pic && (CONSTANT_P (operands[1]) || symbol_mentioned_p (operands[1]) || label_mentioned_p (operands[1]))) ! operands[1] = legitimize_pic_address (operands[1], SImode, ! (!can_create_pseudo_p () ! ? operands[0] ! : 0)); } " ) --- 5992,6020 ---- } } ! split_const (operands[1], &base, &offset); ! if (INTVAL (offset) != 0 ! && targetm.cannot_force_const_mem (SImode, operands[1])) { ! tmp = can_create_pseudo_p () ? gen_reg_rtx (SImode) : operands[0]; ! emit_move_insn (tmp, base); ! emit_insn (gen_addsi3 (operands[0], tmp, offset)); ! DONE; } + tmp = can_create_pseudo_p () ? NULL_RTX : operands[0]; + /* Recognize the case where operand[1] is a reference to thread-local ! data and load its address to a register. Offsets have been split off ! already. */ if (arm_tls_referenced_p (operands[1])) ! operands[1] = legitimize_tls_address (operands[1], tmp); else if (flag_pic && (CONSTANT_P (operands[1]) || symbol_mentioned_p (operands[1]) || label_mentioned_p (operands[1]))) ! operands[1] = ! legitimize_pic_address (operands[1], SImode, tmp); } " ) diff -Nrcpad gcc-8.3.0/gcc/config/arm/arm_acle.h gcc-8.4.0/gcc/config/arm/arm_acle.h *** gcc-8.3.0/gcc/config/arm/arm_acle.h Fri Jun 8 08:18:43 2018 --- gcc-8.4.0/gcc/config/arm/arm_acle.h Wed Mar 4 08:30:00 2020 *************** __arm_mrrc2 (const unsigned int __coproc *** 174,181 **** #endif /* (!__thumb__ || __thumb2__) && __ARM_ARCH >= 4. */ #pragma GCC push_options ! #if __ARM_ARCH >= 8 #pragma GCC target ("arch=armv8-a+crc") __extension__ static __inline uint32_t __attribute__ ((__always_inline__)) __crc32b (uint32_t __a, uint8_t __b) --- 174,185 ---- #endif /* (!__thumb__ || __thumb2__) && __ARM_ARCH >= 4. */ #pragma GCC push_options ! #ifdef __ARM_FEATURE_CRC32 ! #ifdef __ARM_FP ! #pragma GCC target ("arch=armv8-a+crc+simd") ! #else #pragma GCC target ("arch=armv8-a+crc") + #endif __extension__ static __inline uint32_t __attribute__ ((__always_inline__)) __crc32b (uint32_t __a, uint8_t __b) *************** __crc32cd (uint32_t __a, uint64_t __b) *** 235,241 **** } #endif ! #endif /* __ARM_ARCH >= 8. */ #pragma GCC pop_options #ifdef __cplusplus --- 239,245 ---- } #endif ! #endif /* __ARM_FEATURE_CRC32 */ #pragma GCC pop_options #ifdef __cplusplus diff -Nrcpad gcc-8.3.0/gcc/config/arm/constraints.md gcc-8.4.0/gcc/config/arm/constraints.md *** gcc-8.3.0/gcc/config/arm/constraints.md Wed Jan 3 10:03:58 2018 --- gcc-8.4.0/gcc/config/arm/constraints.md Wed Mar 4 08:30:00 2020 *************** *** 31,37 **** ;; 'H' was previously used for FPA. ;; The following multi-letter normal constraints have been used: ! ;; in ARM/Thumb-2 state: Da, Db, Dc, Dd, Dn, Dl, DL, Do, Dv, Dy, Di, Dt, Dp, Dz ;; in Thumb-1 state: Pa, Pb, Pc, Pd, Pe ;; in Thumb-2 state: Pj, PJ, Ps, Pt, Pu, Pv, Pw, Px, Py ;; in all states: Pf --- 31,38 ---- ;; 'H' was previously used for FPA. ;; The following multi-letter normal constraints have been used: ! ;; in ARM/Thumb-2 state: Da, Db, Dc, Dd, Dn, DN, Dm, Dl, DL, Do, Dv, Dy, Di, ! ;; Dt, Dp, Dz ;; in Thumb-1 state: Pa, Pb, Pc, Pd, Pe ;; in Thumb-2 state: Pj, PJ, Ps, Pt, Pu, Pv, Pw, Px, Py ;; in all states: Pf *************** *** 294,307 **** (and (match_code "const_double,const_int") (match_test "TARGET_32BIT && arm_const_double_by_immediates (op)"))) ! (define_constraint "Dn" "@internal ! In ARM/Thumb-2 state a const_vector or const_int which can be loaded with a ! Neon vmov immediate instruction." ! (and (match_code "const_vector,const_int") (match_test "TARGET_32BIT && imm_for_neon_mov_operand (op, GET_MODE (op))"))) (define_constraint "Dl" "@internal In ARM/Thumb-2 state a const_vector which can be used with a Neon vorr or --- 295,322 ---- (and (match_code "const_double,const_int") (match_test "TARGET_32BIT && arm_const_double_by_immediates (op)"))) ! (define_constraint "Dm" "@internal ! In ARM/Thumb-2 state a const_vector which can be loaded with a Neon vmov ! immediate instruction." ! (and (match_code "const_vector") (match_test "TARGET_32BIT && imm_for_neon_mov_operand (op, GET_MODE (op))"))) + (define_constraint "Dn" + "@internal + In ARM/Thumb-2 state a DImode const_int which can be loaded with a Neon vmov + immediate instruction." + (and (match_code "const_int") + (match_test "TARGET_32BIT && imm_for_neon_mov_operand (op, DImode)"))) + + (define_constraint "DN" + "@internal + In ARM/Thumb-2 state a TImode const_int which can be loaded with a Neon vmov + immediate instruction." + (and (match_code "const_int") + (match_test "TARGET_32BIT && imm_for_neon_mov_operand (op, TImode)"))) + (define_constraint "Dl" "@internal In ARM/Thumb-2 state a const_vector which can be used with a Neon vorr or diff -Nrcpad gcc-8.3.0/gcc/config/arm/neon.md gcc-8.4.0/gcc/config/arm/neon.md *** gcc-8.3.0/gcc/config/arm/neon.md Fri Nov 23 12:20:20 2018 --- gcc-8.4.0/gcc/config/arm/neon.md Wed Mar 4 08:30:00 2020 *************** *** 25,38 **** (define_insn "*neon_mov" [(set (match_operand:VDX 0 "nonimmediate_operand" ! "=w,Un,w, w, ?r,?w,?r,?r, ?Us") (match_operand:VDX 1 "general_operand" ! " w,w, Dn,Uni, w, r, r, Usi,r"))] "TARGET_NEON && (register_operand (operands[0], mode) || register_operand (operands[1], mode))" { ! if (which_alternative == 2) { int width, is_valid; static char templ[40]; --- 25,38 ---- (define_insn "*neon_mov" [(set (match_operand:VDX 0 "nonimmediate_operand" ! "=w,Un,w, w, w, ?r,?w,?r,?r, ?Us") (match_operand:VDX 1 "general_operand" ! " w,w, Dm,Dn,Uni, w, r, r, Usi,r"))] "TARGET_NEON && (register_operand (operands[0], mode) || register_operand (operands[1], mode))" { ! if (which_alternative == 2 || which_alternative == 3) { int width, is_valid; static char templ[40]; *************** *** 53,83 **** switch (which_alternative) { case 0: return "vmov\t%P0, %P1 @ "; ! case 1: case 3: return output_move_neon (operands); ! case 2: gcc_unreachable (); ! case 4: return "vmov\t%Q0, %R0, %P1 @ "; ! case 5: return "vmov\t%P0, %Q1, %R1 @ "; default: return output_move_double (operands, true, NULL); } } [(set_attr "type" "neon_move,neon_store1_1reg,neon_move,\ ! neon_load1_1reg, neon_to_gp,neon_from_gp,mov_reg,\ ! neon_load1_2reg, neon_store1_2reg") ! (set_attr "length" "4,4,4,4,4,4,8,8,8") ! (set_attr "arm_pool_range" "*,*,*,1020,*,*,*,1020,*") ! (set_attr "thumb2_pool_range" "*,*,*,1018,*,*,*,1018,*") ! (set_attr "neg_pool_range" "*,*,*,1004,*,*,*,1004,*")]) (define_insn "*neon_mov" [(set (match_operand:VQXMOV 0 "nonimmediate_operand" ! "=w,Un,w, w, ?r,?w,?r,?r, ?Us") (match_operand:VQXMOV 1 "general_operand" ! " w,w, Dn,Uni, w, r, r, Usi, r"))] "TARGET_NEON && (register_operand (operands[0], mode) || register_operand (operands[1], mode))" { ! if (which_alternative == 2) { int width, is_valid; static char templ[40]; --- 53,84 ---- switch (which_alternative) { case 0: return "vmov\t%P0, %P1 @ "; ! case 1: case 4: return output_move_neon (operands); ! case 2: case 3: gcc_unreachable (); ! case 5: return "vmov\t%Q0, %R0, %P1 @ "; ! case 6: return "vmov\t%P0, %Q1, %R1 @ "; default: return output_move_double (operands, true, NULL); } } [(set_attr "type" "neon_move,neon_store1_1reg,neon_move,\ ! neon_move,neon_load1_1reg, neon_to_gp,\ ! neon_from_gp,mov_reg,neon_load1_2reg,\ ! neon_store1_2reg") ! (set_attr "length" "4,4,4,4,4,4,4,8,8,8") ! (set_attr "arm_pool_range" "*,*,*,*,1020,*,*,*,1020,*") ! (set_attr "thumb2_pool_range" "*,*,*,*,1018,*,*,*,1018,*") ! (set_attr "neg_pool_range" "*,*,*,*,1004,*,*,*,1004,*")]) (define_insn "*neon_mov" [(set (match_operand:VQXMOV 0 "nonimmediate_operand" ! "=w,Un,w, w, w, ?r,?w,?r,?r, ?Us") (match_operand:VQXMOV 1 "general_operand" ! " w,w, Dm,DN,Uni, w, r, r, Usi, r"))] "TARGET_NEON && (register_operand (operands[0], mode) || register_operand (operands[1], mode))" { ! if (which_alternative == 2 || which_alternative == 3) { int width, is_valid; static char templ[40]; *************** *** 98,117 **** switch (which_alternative) { case 0: return "vmov\t%q0, %q1 @ "; ! case 1: case 3: return output_move_neon (operands); ! case 2: gcc_unreachable (); ! case 4: return "vmov\t%Q0, %R0, %e1 @ \;vmov\t%J0, %K0, %f1"; ! case 5: return "vmov\t%e0, %Q1, %R1 @ \;vmov\t%f0, %J1, %K1"; default: return output_move_quad (operands); } } [(set_attr "type" "neon_move_q,neon_store2_2reg_q,neon_move_q,\ ! neon_load2_2reg_q,neon_to_gp_q,neon_from_gp_q,\ ! mov_reg,neon_load1_4reg,neon_store1_4reg") ! (set_attr "length" "4,8,4,8,8,8,16,8,16") ! (set_attr "arm_pool_range" "*,*,*,1020,*,*,*,1020,*") ! (set_attr "thumb2_pool_range" "*,*,*,1018,*,*,*,1018,*") ! (set_attr "neg_pool_range" "*,*,*,996,*,*,*,996,*")]) /* We define these mov expanders to match the standard mov$a optab to prevent the mid-end from trying to do a subreg for these modes which is the most --- 99,118 ---- switch (which_alternative) { case 0: return "vmov\t%q0, %q1 @ "; ! case 1: case 4: return output_move_neon (operands); ! case 2: case 3: gcc_unreachable (); ! case 5: return "vmov\t%Q0, %R0, %e1 @ \;vmov\t%J0, %K0, %f1"; ! case 6: return "vmov\t%e0, %Q1, %R1 @ \;vmov\t%f0, %J1, %K1"; default: return output_move_quad (operands); } } [(set_attr "type" "neon_move_q,neon_store2_2reg_q,neon_move_q,\ ! neon_move_q,neon_load2_2reg_q,neon_to_gp_q,\ ! neon_from_gp_q,mov_reg,neon_load1_4reg,neon_store1_4reg") ! (set_attr "length" "4,8,4,4,8,8,8,16,8,16") ! (set_attr "arm_pool_range" "*,*,*,*,1020,*,*,*,1020,*") ! (set_attr "thumb2_pool_range" "*,*,*,*,1018,*,*,*,1018,*") ! (set_attr "neg_pool_range" "*,*,*,*,996,*,*,*,996,*")]) /* We define these mov expanders to match the standard mov$a optab to prevent the mid-end from trying to do a subreg for these modes which is the most *************** *** 1033,1039 **** (define_insn "vashl3" [(set (match_operand:VDQIW 0 "s_register_operand" "=w,w") (ashift:VDQIW (match_operand:VDQIW 1 "s_register_operand" "w,w") ! (match_operand:VDQIW 2 "imm_lshift_or_reg_neon" "w,Dn")))] "TARGET_NEON" { switch (which_alternative) --- 1034,1040 ---- (define_insn "vashl3" [(set (match_operand:VDQIW 0 "s_register_operand" "=w,w") (ashift:VDQIW (match_operand:VDQIW 1 "s_register_operand" "w,w") ! (match_operand:VDQIW 2 "imm_lshift_or_reg_neon" "w,Dm")))] "TARGET_NEON" { switch (which_alternative) *************** *** 1052,1058 **** (define_insn "vashr3_imm" [(set (match_operand:VDQIW 0 "s_register_operand" "=w") (ashiftrt:VDQIW (match_operand:VDQIW 1 "s_register_operand" "w") ! (match_operand:VDQIW 2 "imm_for_neon_rshift_operand" "Dn")))] "TARGET_NEON" { return neon_output_shift_immediate ("vshr", 's', &operands[2], --- 1053,1059 ---- (define_insn "vashr3_imm" [(set (match_operand:VDQIW 0 "s_register_operand" "=w") (ashiftrt:VDQIW (match_operand:VDQIW 1 "s_register_operand" "w") ! (match_operand:VDQIW 2 "imm_for_neon_rshift_operand" "Dm")))] "TARGET_NEON" { return neon_output_shift_immediate ("vshr", 's', &operands[2], *************** *** 1065,1071 **** (define_insn "vlshr3_imm" [(set (match_operand:VDQIW 0 "s_register_operand" "=w") (lshiftrt:VDQIW (match_operand:VDQIW 1 "s_register_operand" "w") ! (match_operand:VDQIW 2 "imm_for_neon_rshift_operand" "Dn")))] "TARGET_NEON" { return neon_output_shift_immediate ("vshr", 'u', &operands[2], --- 1066,1072 ---- (define_insn "vlshr3_imm" [(set (match_operand:VDQIW 0 "s_register_operand" "=w") (lshiftrt:VDQIW (match_operand:VDQIW 1 "s_register_operand" "w") ! (match_operand:VDQIW 2 "imm_for_neon_rshift_operand" "Dm")))] "TARGET_NEON" { return neon_output_shift_immediate ("vshr", 'u', &operands[2], diff -Nrcpad gcc-8.3.0/gcc/config/arm/t-rtems gcc-8.4.0/gcc/config/arm/t-rtems *** gcc-8.3.0/gcc/config/arm/t-rtems Fri Jun 16 21:05:46 2017 --- gcc-8.4.0/gcc/config/arm/t-rtems Wed Mar 4 08:30:00 2020 *************** MULTILIB_DIRNAMES += eb *** 17,24 **** MULTILIB_OPTIONS += mthumb MULTILIB_DIRNAMES += thumb ! MULTILIB_OPTIONS += march=armv5te+fp/march=armv6-m/march=armv7-a/march=armv7-a+simd/march=armv7-r/march=armv7-r+fp/march=armv7-m/march=armv7e-m+fp/march=armv7e-m+fp.dp ! MULTILIB_DIRNAMES += armv5te+fp armv6-m armv7-a armv7-a+simd armv7-r armv7-r+fp armv7-m armv7e-m+fp armv7e-m+fp.dp MULTILIB_OPTIONS += mfloat-abi=hard MULTILIB_DIRNAMES += hard --- 17,24 ---- MULTILIB_OPTIONS += mthumb MULTILIB_DIRNAMES += thumb ! MULTILIB_OPTIONS += march=armv5te+fp/march=armv6-m/march=armv7-a/march=armv7-a+simd/march=armv7-r/march=armv7-r+fp/mcpu=cortex-m3/mcpu=cortex-m4/mcpu=cortex-m4+nofp/mcpu=cortex-m7 ! MULTILIB_DIRNAMES += armv5te+fp armv6-m armv7-a armv7-a+simd armv7-r armv7-r+fp cortex-m3 cortex-m4 cortex-m4+nofp cortex-m7 MULTILIB_OPTIONS += mfloat-abi=hard MULTILIB_DIRNAMES += hard *************** MULTILIB_REQUIRED += mthumb/march=armv7- *** 31,37 **** MULTILIB_REQUIRED += mthumb/march=armv7-a MULTILIB_REQUIRED += mthumb/march=armv7-r+fp/mfloat-abi=hard MULTILIB_REQUIRED += mthumb/march=armv7-r ! MULTILIB_REQUIRED += mthumb/march=armv7e-m+fp/mfloat-abi=hard ! MULTILIB_REQUIRED += mthumb/march=armv7e-m+fp.dp/mfloat-abi=hard ! MULTILIB_REQUIRED += mthumb/march=armv7-m MULTILIB_REQUIRED += mthumb --- 31,38 ---- MULTILIB_REQUIRED += mthumb/march=armv7-a MULTILIB_REQUIRED += mthumb/march=armv7-r+fp/mfloat-abi=hard MULTILIB_REQUIRED += mthumb/march=armv7-r ! MULTILIB_REQUIRED += mthumb/mcpu=cortex-m3 ! MULTILIB_REQUIRED += mthumb/mcpu=cortex-m4/mfloat-abi=hard ! MULTILIB_REQUIRED += mthumb/mcpu=cortex-m4+nofp ! MULTILIB_REQUIRED += mthumb/mcpu=cortex-m7/mfloat-abi=hard MULTILIB_REQUIRED += mthumb diff -Nrcpad gcc-8.3.0/gcc/config/avr/avr-arch.h gcc-8.4.0/gcc/config/avr/avr-arch.h *** gcc-8.3.0/gcc/config/avr/avr-arch.h Wed Jan 3 10:03:58 2018 --- gcc-8.4.0/gcc/config/avr/avr-arch.h Wed Mar 4 08:30:00 2020 *************** typedef struct *** 126,131 **** --- 126,134 ---- /* Flash size in bytes. */ int flash_size; + + /* Offset where flash is seen in the RAM address space. */ + int flash_pm_offset; } avr_mcu_t; /* AVR device specific features. diff -Nrcpad gcc-8.3.0/gcc/config/avr/avr-devices.c gcc-8.4.0/gcc/config/avr/avr-devices.c *** gcc-8.3.0/gcc/config/avr/avr-devices.c Wed Jan 3 10:03:58 2018 --- gcc-8.4.0/gcc/config/avr/avr-devices.c Wed Mar 4 08:30:00 2020 *************** avr_texinfo[] = *** 76,82 **** "the @code{MOVW} instruction." }, { ARCH_AVR3, "``Classic'' devices with 16@tie{}KiB up to 64@tie{}KiB of " ! " program memory." }, { ARCH_AVR31, "``Classic'' devices with 128@tie{}KiB of program memory." }, { ARCH_AVR35, --- 76,82 ---- "the @code{MOVW} instruction." }, { ARCH_AVR3, "``Classic'' devices with 16@tie{}KiB up to 64@tie{}KiB of " ! "program memory." }, { ARCH_AVR31, "``Classic'' devices with 128@tie{}KiB of program memory." }, { ARCH_AVR35, *************** avr_texinfo[] = *** 117,128 **** const avr_mcu_t avr_mcu_types[] = { ! #define AVR_MCU(NAME, ARCH, DEV_ATTRIBUTE, MACRO, DATA_SEC, TEXT_SEC, FLASH_SIZE)\ ! { NAME, ARCH, DEV_ATTRIBUTE, MACRO, DATA_SEC, TEXT_SEC, FLASH_SIZE }, #include "avr-mcus.def" #undef AVR_MCU /* End of list. */ ! { NULL, ARCH_UNKNOWN, AVR_ISA_NONE, NULL, 0, 0, 0 } }; --- 117,128 ---- const avr_mcu_t avr_mcu_types[] = { ! #define AVR_MCU(NAME, ARCH, DEV_ATTRIBUTE, MACRO, DATA_SEC, TEXT_SEC, FLASH_SIZE, PMOFF) \ ! { NAME, ARCH, DEV_ATTRIBUTE, MACRO, DATA_SEC, TEXT_SEC, FLASH_SIZE, PMOFF }, #include "avr-mcus.def" #undef AVR_MCU /* End of list. */ ! { NULL, ARCH_UNKNOWN, AVR_ISA_NONE, NULL, 0, 0, 0, 0 } }; diff -Nrcpad gcc-8.3.0/gcc/config/avr/avr-mcus.def gcc-8.4.0/gcc/config/avr/avr-mcus.def *** gcc-8.3.0/gcc/config/avr/avr-mcus.def Wed Jan 3 10:03:58 2018 --- gcc-8.4.0/gcc/config/avr/avr-mcus.def Wed Mar 4 08:30:00 2020 *************** *** 23,29 **** This will regenerate / update the following source files: - - $(srcdir)/config/avr/t-multilib - $(srcdir)/doc/avr-mmcu.texi After that, rebuild everything and check-in the new sources to the repo. --- 23,28 ---- *************** *** 36,373 **** Before including this file, define a macro: ! AVR_MCU (NAME, ARCH, DEV_ATTRIBUTE, MACRO, DATA_SEC, N_FLASH) where the arguments are the fields of avr_mcu_t: ! NAME Name of the device as specified by -mmcu=. Also ! used by DRIVER_SELF_SPECS and gen-avr-mmcu-specs.c for ! - the name of the device specific specs file ! in -specs=device-specs/spec- ! - the name of the startup file crt.o ! - to link the device library by means of -l ! ARCH Specifies the multilib variant together with AVR_SHORT_SP ! DEV_ATTRIBUTE Specifies the device specific features ! - additional ISA, short SP, errata skip etc., ! MACRO If NULL, this is a core and not a device. If non-NULL, ! supply respective built-in macro. ! DATA_START First address of SRAM, used in -Tdata=. ! TEXT_START First address of Flash, used in -Ttext=. ! FLASH_SIZE Flash size in bytes. "avr2" must be first for the "0" default to work as intended. */ /* Classic, <= 8K. */ ! AVR_MCU ("avr2", ARCH_AVR2, AVR_ERRATA_SKIP, NULL, 0x0060, 0x0, 0x60000) ! AVR_MCU ("at90s2313", ARCH_AVR2, AVR_SHORT_SP, "__AVR_AT90S2313__", 0x0060, 0x0, 0x800) ! AVR_MCU ("at90s2323", ARCH_AVR2, AVR_SHORT_SP, "__AVR_AT90S2323__", 0x0060, 0x0, 0x800) ! AVR_MCU ("at90s2333", ARCH_AVR2, AVR_SHORT_SP, "__AVR_AT90S2333__", 0x0060, 0x0, 0x800) ! AVR_MCU ("at90s2343", ARCH_AVR2, AVR_SHORT_SP, "__AVR_AT90S2343__", 0x0060, 0x0, 0x800) ! AVR_MCU ("attiny22", ARCH_AVR2, AVR_SHORT_SP, "__AVR_ATtiny22__", 0x0060, 0x0, 0x800) ! AVR_MCU ("attiny26", ARCH_AVR2, AVR_SHORT_SP, "__AVR_ATtiny26__", 0x0060, 0x0, 0x800) ! AVR_MCU ("at90s4414", ARCH_AVR2, AVR_ISA_NONE, "__AVR_AT90S4414__", 0x0060, 0x0, 0x1000) ! AVR_MCU ("at90s4433", ARCH_AVR2, AVR_SHORT_SP, "__AVR_AT90S4433__", 0x0060, 0x0, 0x1000) ! AVR_MCU ("at90s4434", ARCH_AVR2, AVR_ISA_NONE, "__AVR_AT90S4434__", 0x0060, 0x0, 0x1000) ! AVR_MCU ("at90s8515", ARCH_AVR2, AVR_ERRATA_SKIP, "__AVR_AT90S8515__", 0x0060, 0x0, 0x2000) ! AVR_MCU ("at90c8534", ARCH_AVR2, AVR_ISA_NONE, "__AVR_AT90C8534__", 0x0060, 0x0, 0x2000) ! AVR_MCU ("at90s8535", ARCH_AVR2, AVR_ISA_NONE, "__AVR_AT90S8535__", 0x0060, 0x0, 0x2000) /* Classic + MOVW, <= 8K. */ ! AVR_MCU ("avr25", ARCH_AVR25, AVR_ISA_NONE, NULL, 0x0060, 0x0, 0x2000) ! AVR_MCU ("ata5272", ARCH_AVR25, AVR_ISA_NONE, "__AVR_ATA5272__", 0x0100, 0x0, 0x2000) ! AVR_MCU ("ata6616c", ARCH_AVR25, AVR_ISA_NONE, "__AVR_ATA6616C__", 0x0100, 0x0, 0x2000) ! AVR_MCU ("attiny13", ARCH_AVR25, AVR_SHORT_SP, "__AVR_ATtiny13__", 0x0060, 0x0, 0x400) ! AVR_MCU ("attiny13a", ARCH_AVR25, AVR_SHORT_SP, "__AVR_ATtiny13A__", 0x0060, 0x0, 0x400) ! AVR_MCU ("attiny2313", ARCH_AVR25, AVR_SHORT_SP, "__AVR_ATtiny2313__", 0x0060, 0x0, 0x800) ! AVR_MCU ("attiny2313a", ARCH_AVR25, AVR_SHORT_SP, "__AVR_ATtiny2313A__", 0x0060, 0x0, 0x800) ! AVR_MCU ("attiny24", ARCH_AVR25, AVR_SHORT_SP, "__AVR_ATtiny24__", 0x0060, 0x0, 0x800) ! AVR_MCU ("attiny24a", ARCH_AVR25, AVR_SHORT_SP, "__AVR_ATtiny24A__", 0x0060, 0x0, 0x800) ! AVR_MCU ("attiny4313", ARCH_AVR25, AVR_ISA_NONE, "__AVR_ATtiny4313__", 0x0060, 0x0, 0x1000) ! AVR_MCU ("attiny44", ARCH_AVR25, AVR_ISA_NONE, "__AVR_ATtiny44__", 0x0060, 0x0, 0x1000) ! AVR_MCU ("attiny44a", ARCH_AVR25, AVR_ISA_NONE, "__AVR_ATtiny44A__", 0x0060, 0x0, 0x1000) ! AVR_MCU ("attiny441", ARCH_AVR25, AVR_ISA_NONE, "__AVR_ATtiny441__", 0x0100, 0x0, 0x1000) ! AVR_MCU ("attiny84", ARCH_AVR25, AVR_ISA_NONE, "__AVR_ATtiny84__", 0x0060, 0x0, 0x2000) ! AVR_MCU ("attiny84a", ARCH_AVR25, AVR_ISA_NONE, "__AVR_ATtiny84A__", 0x0060, 0x0, 0x2000) ! AVR_MCU ("attiny25", ARCH_AVR25, AVR_SHORT_SP, "__AVR_ATtiny25__", 0x0060, 0x0, 0x800) ! AVR_MCU ("attiny45", ARCH_AVR25, AVR_ISA_NONE, "__AVR_ATtiny45__", 0x0060, 0x0, 0x1000) ! AVR_MCU ("attiny85", ARCH_AVR25, AVR_ISA_NONE, "__AVR_ATtiny85__", 0x0060, 0x0, 0x2000) ! AVR_MCU ("attiny261", ARCH_AVR25, AVR_SHORT_SP, "__AVR_ATtiny261__", 0x0060, 0x0, 0x800) ! AVR_MCU ("attiny261a", ARCH_AVR25, AVR_SHORT_SP, "__AVR_ATtiny261A__", 0x0060, 0x0, 0x800) ! AVR_MCU ("attiny461", ARCH_AVR25, AVR_ISA_NONE, "__AVR_ATtiny461__", 0x0060, 0x0, 0x1000) ! AVR_MCU ("attiny461a", ARCH_AVR25, AVR_ISA_NONE, "__AVR_ATtiny461A__", 0x0060, 0x0, 0x1000) ! AVR_MCU ("attiny861", ARCH_AVR25, AVR_ISA_NONE, "__AVR_ATtiny861__", 0x0060, 0x0, 0x2000) ! AVR_MCU ("attiny861a", ARCH_AVR25, AVR_ISA_NONE, "__AVR_ATtiny861A__", 0x0060, 0x0, 0x2000) ! AVR_MCU ("attiny43u", ARCH_AVR25, AVR_ISA_NONE, "__AVR_ATtiny43U__", 0x0060, 0x0, 0x1000) ! AVR_MCU ("attiny87", ARCH_AVR25, AVR_ISA_NONE, "__AVR_ATtiny87__", 0x0100, 0x0, 0x2000) ! AVR_MCU ("attiny48", ARCH_AVR25, AVR_ISA_NONE, "__AVR_ATtiny48__", 0x0100, 0x0, 0x1000) ! AVR_MCU ("attiny88", ARCH_AVR25, AVR_ISA_NONE, "__AVR_ATtiny88__", 0x0100, 0x0, 0x2000) ! AVR_MCU ("attiny828", ARCH_AVR25, AVR_ISA_NONE, "__AVR_ATtiny828__", 0x0100, 0x0, 0x2000) ! AVR_MCU ("attiny841", ARCH_AVR25, AVR_ISA_NONE, "__AVR_ATtiny841__", 0x0100, 0x0, 0x2000) ! AVR_MCU ("at86rf401", ARCH_AVR25, AVR_ISA_NONE, "__AVR_AT86RF401__", 0x0060, 0x0, 0x800) /* Classic, > 8K, <= 64K. */ ! AVR_MCU ("avr3", ARCH_AVR3, AVR_ISA_NONE, NULL, 0x0060, 0x0, 0x6000) ! AVR_MCU ("at43usb355", ARCH_AVR3, AVR_ISA_NONE, "__AVR_AT43USB355__", 0x0060, 0x0, 0x6000) ! AVR_MCU ("at76c711", ARCH_AVR3, AVR_ISA_NONE, "__AVR_AT76C711__", 0x0060, 0x0, 0x4000) /* Classic, == 128K. */ ! AVR_MCU ("avr31", ARCH_AVR31, AVR_ERRATA_SKIP, NULL, 0x0060, 0x0, 0x20000) ! AVR_MCU ("atmega103", ARCH_AVR31, AVR_ERRATA_SKIP, "__AVR_ATmega103__", 0x0060, 0x0, 0x20000) ! AVR_MCU ("at43usb320", ARCH_AVR31, AVR_ISA_NONE, "__AVR_AT43USB320__", 0x0060, 0x0, 0x10000) /* Classic + MOVW + JMP/CALL. */ ! AVR_MCU ("avr35", ARCH_AVR35, AVR_ISA_NONE, NULL, 0x0100, 0x0, 0x4000) ! AVR_MCU ("ata5505", ARCH_AVR35, AVR_ISA_NONE, "__AVR_ATA5505__", 0x0100, 0x0, 0x4000) ! AVR_MCU ("ata6617c", ARCH_AVR35, AVR_ISA_NONE, "__AVR_ATA6617C__", 0x0100, 0x0, 0x4000) ! AVR_MCU ("ata664251", ARCH_AVR35, AVR_ISA_NONE, "__AVR_ATA664251__", 0x0100, 0x0, 0x4000) ! AVR_MCU ("at90usb82", ARCH_AVR35, AVR_ISA_NONE, "__AVR_AT90USB82__", 0x0100, 0x0, 0x2000) ! AVR_MCU ("at90usb162", ARCH_AVR35, AVR_ISA_NONE, "__AVR_AT90USB162__", 0x0100, 0x0, 0x4000) ! AVR_MCU ("atmega8u2", ARCH_AVR35, AVR_ISA_NONE, "__AVR_ATmega8U2__", 0x0100, 0x0, 0x2000) ! AVR_MCU ("atmega16u2", ARCH_AVR35, AVR_ISA_NONE, "__AVR_ATmega16U2__", 0x0100, 0x0, 0x4000) ! AVR_MCU ("atmega32u2", ARCH_AVR35, AVR_ISA_NONE, "__AVR_ATmega32U2__", 0x0100, 0x0, 0x8000) ! AVR_MCU ("attiny167", ARCH_AVR35, AVR_ISA_NONE, "__AVR_ATtiny167__", 0x0100, 0x0, 0x4000) ! AVR_MCU ("attiny1634", ARCH_AVR35, AVR_ISA_NONE, "__AVR_ATtiny1634__", 0x0100, 0x0, 0x4000) /* Enhanced, <= 8K. */ ! AVR_MCU ("avr4", ARCH_AVR4, AVR_ISA_NONE, NULL, 0x0060, 0x0, 0x2000) ! AVR_MCU ("ata6285", ARCH_AVR4, AVR_ISA_NONE, "__AVR_ATA6285__", 0x0100, 0x0, 0x2000) ! AVR_MCU ("ata6286", ARCH_AVR4, AVR_ISA_NONE, "__AVR_ATA6286__", 0x0100, 0x0, 0x2000) ! AVR_MCU ("ata6289", ARCH_AVR4, AVR_ISA_NONE, "__AVR_ATA6289__", 0x0100, 0x0, 0x2000) ! AVR_MCU ("ata6612c", ARCH_AVR4, AVR_ISA_NONE, "__AVR_ATA6612C__", 0x0100, 0x0, 0x2000) ! AVR_MCU ("atmega8", ARCH_AVR4, AVR_ISA_NONE, "__AVR_ATmega8__", 0x0060, 0x0, 0x2000) ! AVR_MCU ("atmega8a", ARCH_AVR4, AVR_ISA_NONE, "__AVR_ATmega8A__", 0x0060, 0x0, 0x2000) ! AVR_MCU ("atmega48", ARCH_AVR4, AVR_ISA_NONE, "__AVR_ATmega48__", 0x0100, 0x0, 0x1000) ! AVR_MCU ("atmega48a", ARCH_AVR4, AVR_ISA_NONE, "__AVR_ATmega48A__", 0x0100, 0x0, 0x1000) ! AVR_MCU ("atmega48p", ARCH_AVR4, AVR_ISA_NONE, "__AVR_ATmega48P__", 0x0100, 0x0, 0x1000) ! AVR_MCU ("atmega48pa", ARCH_AVR4, AVR_ISA_NONE, "__AVR_ATmega48PA__", 0x0100, 0x0, 0x1000) ! AVR_MCU ("atmega48pb", ARCH_AVR4, AVR_ISA_NONE, "__AVR_ATmega48PB__", 0x0100, 0x0, 0x1000) ! AVR_MCU ("atmega88", ARCH_AVR4, AVR_ISA_NONE, "__AVR_ATmega88__", 0x0100, 0x0, 0x2000) ! AVR_MCU ("atmega88a", ARCH_AVR4, AVR_ISA_NONE, "__AVR_ATmega88A__", 0x0100, 0x0, 0x2000) ! AVR_MCU ("atmega88p", ARCH_AVR4, AVR_ISA_NONE, "__AVR_ATmega88P__", 0x0100, 0x0, 0x2000) ! AVR_MCU ("atmega88pa", ARCH_AVR4, AVR_ISA_NONE, "__AVR_ATmega88PA__", 0x0100, 0x0, 0x2000) ! AVR_MCU ("atmega88pb", ARCH_AVR4, AVR_ISA_NONE, "__AVR_ATmega88PB__", 0x0100, 0x0, 0x2000) ! AVR_MCU ("atmega8515", ARCH_AVR4, AVR_ISA_NONE, "__AVR_ATmega8515__", 0x0060, 0x0, 0x2000) ! AVR_MCU ("atmega8535", ARCH_AVR4, AVR_ISA_NONE, "__AVR_ATmega8535__", 0x0060, 0x0, 0x2000) ! AVR_MCU ("atmega8hva", ARCH_AVR4, AVR_ISA_NONE, "__AVR_ATmega8HVA__", 0x0100, 0x0, 0x2000) ! AVR_MCU ("at90pwm1", ARCH_AVR4, AVR_ISA_NONE, "__AVR_AT90PWM1__", 0x0100, 0x0, 0x2000) ! AVR_MCU ("at90pwm2", ARCH_AVR4, AVR_ISA_NONE, "__AVR_AT90PWM2__", 0x0100, 0x0, 0x2000) ! AVR_MCU ("at90pwm2b", ARCH_AVR4, AVR_ISA_NONE, "__AVR_AT90PWM2B__", 0x0100, 0x0, 0x2000) ! AVR_MCU ("at90pwm3", ARCH_AVR4, AVR_ISA_NONE, "__AVR_AT90PWM3__", 0x0100, 0x0, 0x2000) ! AVR_MCU ("at90pwm3b", ARCH_AVR4, AVR_ISA_NONE, "__AVR_AT90PWM3B__", 0x0100, 0x0, 0x2000) ! AVR_MCU ("at90pwm81", ARCH_AVR4, AVR_ISA_NONE, "__AVR_AT90PWM81__", 0x0100, 0x0, 0x2000) /* Enhanced, > 8K, <= 64K. */ ! AVR_MCU ("avr5", ARCH_AVR5, AVR_ISA_NONE, NULL, 0x0060, 0x0, 0x4000) ! AVR_MCU ("ata5702m322", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATA5702M322__", 0x0200, 0x0, 0x10000) ! AVR_MCU ("ata5782", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATA5782__", 0x0200, 0x8000, 0xd000) ! AVR_MCU ("ata5790", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATA5790__", 0x0100, 0x0, 0x4000) ! AVR_MCU ("ata5790n", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATA5790N__", 0x0100, 0x0, 0x4000) ! AVR_MCU ("ata5791", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATA5791__", 0x0100, 0x0, 0x4000) ! AVR_MCU ("ata5795", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATA5795__", 0x0100, 0x0, 0x2000) ! AVR_MCU ("ata5831", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATA5831__", 0x0200, 0x8000, 0xd000) ! AVR_MCU ("ata6613c", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATA6613C__", 0x0100, 0x0, 0x4000) ! AVR_MCU ("ata6614q", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATA6614Q__", 0x0100, 0x0, 0x8000) ! AVR_MCU ("ata8210", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATA8210__", 0x0200, 0x8000, 0xd000) ! AVR_MCU ("ata8510", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATA8510__", 0x0200, 0x8000, 0xd000) ! AVR_MCU ("atmega16", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega16__", 0x0060, 0x0, 0x4000) ! AVR_MCU ("atmega16a", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega16A__", 0x0060, 0x0, 0x4000) ! AVR_MCU ("atmega161", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega161__", 0x0060, 0x0, 0x4000) ! AVR_MCU ("atmega162", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega162__", 0x0100, 0x0, 0x4000) ! AVR_MCU ("atmega163", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega163__", 0x0060, 0x0, 0x4000) ! AVR_MCU ("atmega164a", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega164A__", 0x0100, 0x0, 0x4000) ! AVR_MCU ("atmega164p", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega164P__", 0x0100, 0x0, 0x4000) ! AVR_MCU ("atmega164pa", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega164PA__", 0x0100, 0x0, 0x4000) ! AVR_MCU ("atmega165", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega165__", 0x0100, 0x0, 0x4000) ! AVR_MCU ("atmega165a", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega165A__", 0x0100, 0x0, 0x4000) ! AVR_MCU ("atmega165p", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega165P__", 0x0100, 0x0, 0x4000) ! AVR_MCU ("atmega165pa", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega165PA__", 0x0100, 0x0, 0x4000) ! AVR_MCU ("atmega168", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega168__", 0x0100, 0x0, 0x4000) ! AVR_MCU ("atmega168a", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega168A__", 0x0100, 0x0, 0x4000) ! AVR_MCU ("atmega168p", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega168P__", 0x0100, 0x0, 0x4000) ! AVR_MCU ("atmega168pa", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega168PA__", 0x0100, 0x0, 0x4000) ! AVR_MCU ("atmega168pb", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega168PB__", 0x0100, 0x0, 0x4000) ! AVR_MCU ("atmega169", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega169__", 0x0100, 0x0, 0x4000) ! AVR_MCU ("atmega169a", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega169A__", 0x0100, 0x0, 0x4000) ! AVR_MCU ("atmega169p", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega169P__", 0x0100, 0x0, 0x4000) ! AVR_MCU ("atmega169pa", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega169PA__", 0x0100, 0x0, 0x4000) ! AVR_MCU ("atmega16hvb", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega16HVB__", 0x0100, 0x0, 0x4000) ! AVR_MCU ("atmega16hvbrevb", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega16HVBREVB__", 0x0100, 0x0, 0x4000) ! AVR_MCU ("atmega16m1", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega16M1__", 0x0100, 0x0, 0x4000) ! AVR_MCU ("atmega16u4", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega16U4__", 0x0100, 0x0, 0x4000) ! AVR_MCU ("atmega32a", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega32A__", 0x0060, 0x0, 0x8000) ! AVR_MCU ("atmega32", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega32__", 0x0060, 0x0, 0x8000) ! AVR_MCU ("atmega323", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega323__", 0x0060, 0x0, 0x8000) ! AVR_MCU ("atmega324a", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega324A__", 0x0100, 0x0, 0x8000) ! AVR_MCU ("atmega324p", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega324P__", 0x0100, 0x0, 0x8000) ! AVR_MCU ("atmega324pa", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega324PA__", 0x0100, 0x0, 0x8000) ! AVR_MCU ("atmega325", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega325__", 0x0100, 0x0, 0x8000) ! AVR_MCU ("atmega325a", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega325A__", 0x0100, 0x0, 0x8000) ! AVR_MCU ("atmega325p", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega325P__", 0x0100, 0x0, 0x8000) ! AVR_MCU ("atmega325pa", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega325PA__", 0x0100, 0x0, 0x8000) ! AVR_MCU ("atmega3250", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega3250__", 0x0100, 0x0, 0x8000) ! AVR_MCU ("atmega3250a", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega3250A__", 0x0100, 0x0, 0x8000) ! AVR_MCU ("atmega3250p", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega3250P__", 0x0100, 0x0, 0x8000) ! AVR_MCU ("atmega3250pa", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega3250PA__", 0x0100, 0x0, 0x8000) ! AVR_MCU ("atmega328", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega328__", 0x0100, 0x0, 0x8000) ! AVR_MCU ("atmega328p", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega328P__", 0x0100, 0x0, 0x8000) ! AVR_MCU ("atmega328pb", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega328PB__", 0x0100, 0x0, 0x8000) ! AVR_MCU ("atmega329", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega329__", 0x0100, 0x0, 0x8000) ! AVR_MCU ("atmega329a", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega329A__", 0x0100, 0x0, 0x8000) ! AVR_MCU ("atmega329p", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega329P__", 0x0100, 0x0, 0x8000) ! AVR_MCU ("atmega329pa", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega329PA__", 0x0100, 0x0, 0x8000) ! AVR_MCU ("atmega3290", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega3290__", 0x0100, 0x0, 0x8000) ! AVR_MCU ("atmega3290a", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega3290A__", 0x0100, 0x0, 0x8000) ! AVR_MCU ("atmega3290p", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega3290P__", 0x0100, 0x0, 0x8000) ! AVR_MCU ("atmega3290pa", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega3290PA__", 0x0100, 0x0, 0x8000) ! AVR_MCU ("atmega32c1", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega32C1__", 0x0100, 0x0, 0x8000) ! AVR_MCU ("atmega32m1", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega32M1__", 0x0100, 0x0, 0x8000) ! AVR_MCU ("atmega32u4", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega32U4__", 0x0100, 0x0, 0x8000) ! AVR_MCU ("atmega32u6", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega32U6__", 0x0100, 0x0, 0x8000) ! AVR_MCU ("atmega406", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega406__", 0x0100, 0x0, 0xa000) ! AVR_MCU ("atmega64", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega64__", 0x0100, 0x0, 0x10000) ! AVR_MCU ("atmega64a", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega64A__", 0x0100, 0x0, 0x10000) ! AVR_MCU ("atmega640", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega640__", 0x0200, 0x0, 0x10000) ! AVR_MCU ("atmega644", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega644__", 0x0100, 0x0, 0x10000) ! AVR_MCU ("atmega644a", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega644A__", 0x0100, 0x0, 0x10000) ! AVR_MCU ("atmega644p", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega644P__", 0x0100, 0x0, 0x10000) ! AVR_MCU ("atmega644pa", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega644PA__", 0x0100, 0x0, 0x10000) ! AVR_MCU ("atmega645", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega645__", 0x0100, 0x0, 0x10000) ! AVR_MCU ("atmega645a", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega645A__", 0x0100, 0x0, 0x10000) ! AVR_MCU ("atmega645p", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega645P__", 0x0100, 0x0, 0x10000) ! AVR_MCU ("atmega6450", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega6450__", 0x0100, 0x0, 0x10000) ! AVR_MCU ("atmega6450a", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega6450A__", 0x0100, 0x0, 0x10000) ! AVR_MCU ("atmega6450p", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega6450P__", 0x0100, 0x0, 0x10000) ! AVR_MCU ("atmega649", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega649__", 0x0100, 0x0, 0x10000) ! AVR_MCU ("atmega649a", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega649A__", 0x0100, 0x0, 0x10000) ! AVR_MCU ("atmega649p", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega649P__", 0x0100, 0x0, 0x10000) ! AVR_MCU ("atmega6490", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega6490__", 0x0100, 0x0, 0x10000) ! AVR_MCU ("atmega16hva", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega16HVA__", 0x0100, 0x0, 0x4000) ! AVR_MCU ("atmega16hva2", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega16HVA2__", 0x0100, 0x0, 0x4000) ! AVR_MCU ("atmega32hvb", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega32HVB__", 0x0100, 0x0, 0x8000) ! AVR_MCU ("atmega6490a", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega6490A__", 0x0100, 0x0, 0x10000) ! AVR_MCU ("atmega6490p", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega6490P__", 0x0100, 0x0, 0x10000) ! AVR_MCU ("atmega64c1", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega64C1__", 0x0100, 0x0, 0x10000) ! AVR_MCU ("atmega64m1", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega64M1__", 0x0100, 0x0, 0x10000) ! AVR_MCU ("atmega64hve", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega64HVE__", 0x0100, 0x0, 0x10000) ! AVR_MCU ("atmega64hve2", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega64HVE2__", 0x0100, 0x0, 0x10000) ! AVR_MCU ("atmega64rfr2", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega64RFR2__", 0x0200, 0x0, 0x10000) ! AVR_MCU ("atmega644rfr2", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega644RFR2__", 0x0200, 0x0, 0x10000) ! AVR_MCU ("atmega32hvbrevb", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega32HVBREVB__", 0x0100, 0x0, 0x8000) ! AVR_MCU ("at90can32", ARCH_AVR5, AVR_ISA_NONE, "__AVR_AT90CAN32__", 0x0100, 0x0, 0x8000) ! AVR_MCU ("at90can64", ARCH_AVR5, AVR_ISA_NONE, "__AVR_AT90CAN64__", 0x0100, 0x0, 0x10000) ! AVR_MCU ("at90pwm161", ARCH_AVR5, AVR_ISA_NONE, "__AVR_AT90PWM161__", 0x0100, 0x0, 0x4000) ! AVR_MCU ("at90pwm216", ARCH_AVR5, AVR_ISA_NONE, "__AVR_AT90PWM216__", 0x0100, 0x0, 0x4000) ! AVR_MCU ("at90pwm316", ARCH_AVR5, AVR_ISA_NONE, "__AVR_AT90PWM316__", 0x0100, 0x0, 0x4000) ! AVR_MCU ("at90scr100", ARCH_AVR5, AVR_ISA_NONE, "__AVR_AT90SCR100__", 0x0100, 0x0, 0x10000) ! AVR_MCU ("at90usb646", ARCH_AVR5, AVR_ISA_NONE, "__AVR_AT90USB646__", 0x0100, 0x0, 0x10000) ! AVR_MCU ("at90usb647", ARCH_AVR5, AVR_ISA_NONE, "__AVR_AT90USB647__", 0x0100, 0x0, 0x10000) ! AVR_MCU ("at94k", ARCH_AVR5, AVR_ISA_NONE, "__AVR_AT94K__", 0x0060, 0x0, 0x8000) ! AVR_MCU ("m3000", ARCH_AVR5, AVR_ISA_NONE, "__AVR_M3000__", 0x1000, 0x0, 0x10000) /* Enhanced, == 128K. */ ! AVR_MCU ("avr51", ARCH_AVR51, AVR_ISA_NONE, NULL, 0x0100, 0x0, 0x20000) ! AVR_MCU ("atmega128", ARCH_AVR51, AVR_ISA_NONE, "__AVR_ATmega128__", 0x0100, 0x0, 0x20000) ! AVR_MCU ("atmega128a", ARCH_AVR51, AVR_ISA_NONE, "__AVR_ATmega128A__", 0x0100, 0x0, 0x20000) ! AVR_MCU ("atmega1280", ARCH_AVR51, AVR_ISA_NONE, "__AVR_ATmega1280__", 0x0200, 0x0, 0x20000) ! AVR_MCU ("atmega1281", ARCH_AVR51, AVR_ISA_NONE, "__AVR_ATmega1281__", 0x0200, 0x0, 0x20000) ! AVR_MCU ("atmega1284", ARCH_AVR51, AVR_ISA_NONE, "__AVR_ATmega1284__", 0x0100, 0x0, 0x20000) ! AVR_MCU ("atmega1284p", ARCH_AVR51, AVR_ISA_NONE, "__AVR_ATmega1284P__", 0x0100, 0x0, 0x20000) ! AVR_MCU ("atmega128rfa1", ARCH_AVR51, AVR_ISA_NONE, "__AVR_ATmega128RFA1__", 0x0200, 0x0, 0x20000) ! AVR_MCU ("atmega128rfr2", ARCH_AVR51, AVR_ISA_NONE, "__AVR_ATmega128RFR2__", 0x0200, 0x0, 0x20000) ! AVR_MCU ("atmega1284rfr2", ARCH_AVR51, AVR_ISA_NONE, "__AVR_ATmega1284RFR2__", 0x0200, 0x0, 0x20000) ! AVR_MCU ("at90can128", ARCH_AVR51, AVR_ISA_NONE, "__AVR_AT90CAN128__", 0x0100, 0x0, 0x20000) ! AVR_MCU ("at90usb1286", ARCH_AVR51, AVR_ISA_NONE, "__AVR_AT90USB1286__", 0x0100, 0x0, 0x20000) ! AVR_MCU ("at90usb1287", ARCH_AVR51, AVR_ISA_NONE, "__AVR_AT90USB1287__", 0x0100, 0x0, 0x20000) /* 3-Byte PC. */ ! AVR_MCU ("avr6", ARCH_AVR6, AVR_ISA_NONE, NULL, 0x0200, 0x0, 0x40000) ! AVR_MCU ("atmega2560", ARCH_AVR6, AVR_ISA_NONE, "__AVR_ATmega2560__", 0x0200, 0x0, 0x40000) ! AVR_MCU ("atmega2561", ARCH_AVR6, AVR_ISA_NONE, "__AVR_ATmega2561__", 0x0200, 0x0, 0x40000) ! AVR_MCU ("atmega256rfr2", ARCH_AVR6, AVR_ISA_NONE, "__AVR_ATmega256RFR2__", 0x0200, 0x0, 0x40000) ! AVR_MCU ("atmega2564rfr2", ARCH_AVR6, AVR_ISA_NONE, "__AVR_ATmega2564RFR2__", 0x0200, 0x0, 0x40000) /* Xmega, 16K <= Flash < 64K, RAM <= 64K */ ! AVR_MCU ("avrxmega2", ARCH_AVRXMEGA2, AVR_ISA_NONE, NULL, 0x2000, 0x0, 0x9000) ! AVR_MCU ("atxmega8e5", ARCH_AVRXMEGA2, AVR_ISA_NONE, "__AVR_ATxmega8E5__", 0x2000, 0x0, 0x2800) ! AVR_MCU ("atxmega16a4", ARCH_AVRXMEGA2, AVR_ISA_NONE, "__AVR_ATxmega16A4__", 0x2000, 0x0, 0x5000) ! AVR_MCU ("atxmega16d4", ARCH_AVRXMEGA2, AVR_ISA_NONE, "__AVR_ATxmega16D4__", 0x2000, 0x0, 0x5000) ! AVR_MCU ("atxmega16e5", ARCH_AVRXMEGA2, AVR_ISA_NONE, "__AVR_ATxmega16E5__", 0x2000, 0x0, 0x5000) ! AVR_MCU ("atxmega32a4", ARCH_AVRXMEGA2, AVR_ISA_NONE, "__AVR_ATxmega32A4__", 0x2000, 0x0, 0x9000) ! AVR_MCU ("atxmega32c3", ARCH_AVRXMEGA2, AVR_ISA_RMW, "__AVR_ATxmega32C3__", 0x2000, 0x0, 0x9000) ! AVR_MCU ("atxmega32d3", ARCH_AVRXMEGA2, AVR_ISA_NONE, "__AVR_ATxmega32D3__", 0x2000, 0x0, 0x9000) ! AVR_MCU ("atxmega32d4", ARCH_AVRXMEGA2, AVR_ISA_NONE, "__AVR_ATxmega32D4__", 0x2000, 0x0, 0x9000) ! AVR_MCU ("atxmega16a4u", ARCH_AVRXMEGA2, AVR_ISA_RMW, "__AVR_ATxmega16A4U__", 0x2000, 0x0, 0x5000) ! AVR_MCU ("atxmega16c4", ARCH_AVRXMEGA2, AVR_ISA_RMW, "__AVR_ATxmega16C4__", 0x2000, 0x0, 0x5000) ! AVR_MCU ("atxmega32a4u", ARCH_AVRXMEGA2, AVR_ISA_RMW, "__AVR_ATxmega32A4U__", 0x2000, 0x0, 0x9000) ! AVR_MCU ("atxmega32c4", ARCH_AVRXMEGA2, AVR_ISA_RMW, "__AVR_ATxmega32C4__", 0x2000, 0x0, 0x9000) ! AVR_MCU ("atxmega32e5", ARCH_AVRXMEGA2, AVR_ISA_NONE, "__AVR_ATxmega32E5__", 0x2000, 0x0, 0x9000) /* Xmega, Flash + RAM < 64K, flash visible in RAM address space */ ! AVR_MCU ("avrxmega3", ARCH_AVRXMEGA3, AVR_ISA_NONE, NULL, 0x3f00, 0x0, 0x8000) ! AVR_MCU ("attiny212", ARCH_AVRXMEGA3, AVR_ISA_RCALL, "__AVR_ATtiny212__", 0x3f80, 0x0, 0x800) ! AVR_MCU ("attiny214", ARCH_AVRXMEGA3, AVR_ISA_RCALL, "__AVR_ATtiny214__", 0x3f80, 0x0, 0x800) ! AVR_MCU ("attiny412", ARCH_AVRXMEGA3, AVR_ISA_RCALL, "__AVR_ATtiny412__", 0x3f00, 0x0, 0x1000) ! AVR_MCU ("attiny414", ARCH_AVRXMEGA3, AVR_ISA_RCALL, "__AVR_ATtiny414__", 0x3f00, 0x0, 0x1000) ! AVR_MCU ("attiny416", ARCH_AVRXMEGA3, AVR_ISA_RCALL, "__AVR_ATtiny416__", 0x3f00, 0x0, 0x1000) ! AVR_MCU ("attiny417", ARCH_AVRXMEGA3, AVR_ISA_RCALL, "__AVR_ATtiny417__", 0x3f00, 0x0, 0x1000) ! AVR_MCU ("attiny814", ARCH_AVRXMEGA3, AVR_ISA_RCALL, "__AVR_ATtiny814__", 0x3e00, 0x0, 0x2000) ! AVR_MCU ("attiny816", ARCH_AVRXMEGA3, AVR_ISA_RCALL, "__AVR_ATtiny816__", 0x3e00, 0x0, 0x2000) ! AVR_MCU ("attiny817", ARCH_AVRXMEGA3, AVR_ISA_RCALL, "__AVR_ATtiny817__", 0x3e00, 0x0, 0x2000) ! AVR_MCU ("attiny1614", ARCH_AVRXMEGA3, AVR_ISA_NONE, "__AVR_ATtiny1614__", 0x3800, 0x0, 0x4000) ! AVR_MCU ("attiny1616", ARCH_AVRXMEGA3, AVR_ISA_NONE, "__AVR_ATtiny1616__", 0x3800, 0x0, 0x4000) ! AVR_MCU ("attiny1617", ARCH_AVRXMEGA3, AVR_ISA_NONE, "__AVR_ATtiny1617__", 0x3800, 0x0, 0x4000) ! AVR_MCU ("attiny3214", ARCH_AVRXMEGA3, AVR_ISA_NONE, "__AVR_ATtiny3214__", 0x3800, 0x0, 0x8000) ! AVR_MCU ("attiny3216", ARCH_AVRXMEGA3, AVR_ISA_NONE, "__AVR_ATtiny3216__", 0x3800, 0x0, 0x8000) ! AVR_MCU ("attiny3217", ARCH_AVRXMEGA3, AVR_ISA_NONE, "__AVR_ATtiny3217__", 0x3800, 0x0, 0x8000) /* Xmega, 64K < Flash <= 128K, RAM <= 64K */ ! AVR_MCU ("avrxmega4", ARCH_AVRXMEGA4, AVR_ISA_NONE, NULL, 0x2000, 0x0, 0x11000) ! AVR_MCU ("atxmega64a3", ARCH_AVRXMEGA4, AVR_ISA_NONE, "__AVR_ATxmega64A3__", 0x2000, 0x0, 0x11000) ! AVR_MCU ("atxmega64d3", ARCH_AVRXMEGA4, AVR_ISA_NONE, "__AVR_ATxmega64D3__", 0x2000, 0x0, 0x11000) ! AVR_MCU ("atxmega64a3u", ARCH_AVRXMEGA4, AVR_ISA_RMW, "__AVR_ATxmega64A3U__", 0x2000, 0x0, 0x11000) ! AVR_MCU ("atxmega64a4u", ARCH_AVRXMEGA4, AVR_ISA_RMW, "__AVR_ATxmega64A4U__", 0x2000, 0x0, 0x11000) ! AVR_MCU ("atxmega64b1", ARCH_AVRXMEGA4, AVR_ISA_RMW, "__AVR_ATxmega64B1__", 0x2000, 0x0, 0x11000) ! AVR_MCU ("atxmega64b3", ARCH_AVRXMEGA4, AVR_ISA_RMW, "__AVR_ATxmega64B3__", 0x2000, 0x0, 0x11000) ! AVR_MCU ("atxmega64c3", ARCH_AVRXMEGA4, AVR_ISA_RMW, "__AVR_ATxmega64C3__", 0x2000, 0x0, 0x11000) ! AVR_MCU ("atxmega64d4", ARCH_AVRXMEGA4, AVR_ISA_NONE, "__AVR_ATxmega64D4__", 0x2000, 0x0, 0x11000) /* Xmega, 64K < Flash <= 128K, RAM > 64K */ ! AVR_MCU ("avrxmega5", ARCH_AVRXMEGA5, AVR_ISA_NONE, NULL, 0x2000, 0x0, 0x11000) ! AVR_MCU ("atxmega64a1", ARCH_AVRXMEGA5, AVR_ISA_NONE, "__AVR_ATxmega64A1__", 0x2000, 0x0, 0x11000) ! AVR_MCU ("atxmega64a1u", ARCH_AVRXMEGA5, AVR_ISA_RMW, "__AVR_ATxmega64A1U__", 0x2000, 0x0, 0x11000) /* Xmega, 128K < Flash, RAM <= 64K */ ! AVR_MCU ("avrxmega6", ARCH_AVRXMEGA6, AVR_ISA_NONE, NULL, 0x2000, 0x0, 0x60000) ! AVR_MCU ("atxmega128a3", ARCH_AVRXMEGA6, AVR_ISA_NONE, "__AVR_ATxmega128A3__", 0x2000, 0x0, 0x22000) ! AVR_MCU ("atxmega128d3", ARCH_AVRXMEGA6, AVR_ISA_NONE, "__AVR_ATxmega128D3__", 0x2000, 0x0, 0x22000) ! AVR_MCU ("atxmega192a3", ARCH_AVRXMEGA6, AVR_ISA_NONE, "__AVR_ATxmega192A3__", 0x2000, 0x0, 0x32000) ! AVR_MCU ("atxmega192d3", ARCH_AVRXMEGA6, AVR_ISA_NONE, "__AVR_ATxmega192D3__", 0x2000, 0x0, 0x32000) ! AVR_MCU ("atxmega256a3", ARCH_AVRXMEGA6, AVR_ISA_NONE, "__AVR_ATxmega256A3__", 0x2000, 0x0, 0x42000) ! AVR_MCU ("atxmega256a3b", ARCH_AVRXMEGA6, AVR_ISA_NONE, "__AVR_ATxmega256A3B__", 0x2000, 0x0, 0x42000) ! AVR_MCU ("atxmega256a3bu", ARCH_AVRXMEGA6, AVR_ISA_NONE, "__AVR_ATxmega256A3BU__", 0x2000, 0x0, 0x42000) ! AVR_MCU ("atxmega256d3", ARCH_AVRXMEGA6, AVR_ISA_NONE, "__AVR_ATxmega256D3__", 0x2000, 0x0, 0x42000) ! AVR_MCU ("atxmega128a3u", ARCH_AVRXMEGA6, AVR_ISA_RMW, "__AVR_ATxmega128A3U__", 0x2000, 0x0, 0x22000) ! AVR_MCU ("atxmega128b1", ARCH_AVRXMEGA6, AVR_ISA_RMW, "__AVR_ATxmega128B1__", 0x2000, 0x0, 0x22000) ! AVR_MCU ("atxmega128b3", ARCH_AVRXMEGA6, AVR_ISA_RMW, "__AVR_ATxmega128B3__", 0x2000, 0x0, 0x22000) ! AVR_MCU ("atxmega128c3", ARCH_AVRXMEGA6, AVR_ISA_RMW, "__AVR_ATxmega128C3__", 0x2000, 0x0, 0x22000) ! AVR_MCU ("atxmega128d4", ARCH_AVRXMEGA6, AVR_ISA_NONE, "__AVR_ATxmega128D4__", 0x2000, 0x0, 0x22000) ! AVR_MCU ("atxmega192a3u", ARCH_AVRXMEGA6, AVR_ISA_RMW, "__AVR_ATxmega192A3U__", 0x2000, 0x0, 0x32000) ! AVR_MCU ("atxmega192c3", ARCH_AVRXMEGA6, AVR_ISA_RMW, "__AVR_ATxmega192C3__", 0x2000, 0x0, 0x32000) ! AVR_MCU ("atxmega256a3u", ARCH_AVRXMEGA6, AVR_ISA_RMW, "__AVR_ATxmega256A3U__", 0x2000, 0x0, 0x42000) ! AVR_MCU ("atxmega256c3", ARCH_AVRXMEGA6, AVR_ISA_RMW, "__AVR_ATxmega256C3__", 0x2000, 0x0, 0x42000) ! AVR_MCU ("atxmega384c3", ARCH_AVRXMEGA6, AVR_ISA_RMW, "__AVR_ATxmega384C3__", 0x2000, 0x0, 0x62000) ! AVR_MCU ("atxmega384d3", ARCH_AVRXMEGA6, AVR_ISA_NONE, "__AVR_ATxmega384D3__", 0x2000, 0x0, 0x62000) /* Xmega, 128K < Flash, RAM > 64K RAM. */ ! AVR_MCU ("avrxmega7", ARCH_AVRXMEGA7, AVR_ISA_NONE, NULL, 0x2000, 0x0, 0x22000) ! AVR_MCU ("atxmega128a1", ARCH_AVRXMEGA7, AVR_ISA_NONE, "__AVR_ATxmega128A1__", 0x2000, 0x0, 0x22000) ! AVR_MCU ("atxmega128a1u", ARCH_AVRXMEGA7, AVR_ISA_RMW, "__AVR_ATxmega128A1U__", 0x2000, 0x0, 0x22000) ! AVR_MCU ("atxmega128a4u", ARCH_AVRXMEGA7, AVR_ISA_RMW, "__AVR_ATxmega128A4U__", 0x2000, 0x0, 0x22000) /* Tiny family */ ! AVR_MCU ("avrtiny", ARCH_AVRTINY, AVR_ISA_NONE, NULL, 0x0040, 0x0, 0x400) ! AVR_MCU ("attiny4", ARCH_AVRTINY, AVR_ISA_LDS, "__AVR_ATtiny4__", 0x0040, 0x0, 0x200) ! AVR_MCU ("attiny5", ARCH_AVRTINY, AVR_ISA_LDS, "__AVR_ATtiny5__", 0x0040, 0x0, 0x200) ! AVR_MCU ("attiny9", ARCH_AVRTINY, AVR_ISA_LDS, "__AVR_ATtiny9__", 0x0040, 0x0, 0x400) ! AVR_MCU ("attiny10", ARCH_AVRTINY, AVR_ISA_LDS, "__AVR_ATtiny10__", 0x0040, 0x0, 0x400) ! AVR_MCU ("attiny20", ARCH_AVRTINY, AVR_ISA_LDS, "__AVR_ATtiny20__", 0x0040, 0x0, 0x800) ! AVR_MCU ("attiny40", ARCH_AVRTINY, AVR_ISA_NONE, "__AVR_ATtiny40__", 0x0040, 0x0, 0x1000) /* Assembler only. */ ! AVR_MCU ("avr1", ARCH_AVR1, AVR_ISA_NONE, NULL, 0x0060, 0x0, 0x400) ! AVR_MCU ("at90s1200", ARCH_AVR1, AVR_ISA_NONE, "__AVR_AT90S1200__", 0x0060, 0x0, 0x400) ! AVR_MCU ("attiny11", ARCH_AVR1, AVR_ISA_NONE, "__AVR_ATtiny11__", 0x0060, 0x0, 0x400) ! AVR_MCU ("attiny12", ARCH_AVR1, AVR_ISA_NONE, "__AVR_ATtiny12__", 0x0060, 0x0, 0x400) ! AVR_MCU ("attiny15", ARCH_AVR1, AVR_ISA_NONE, "__AVR_ATtiny15__", 0x0060, 0x0, 0x400) ! AVR_MCU ("attiny28", ARCH_AVR1, AVR_ISA_NONE, "__AVR_ATtiny28__", 0x0060, 0x0, 0x800) --- 35,398 ---- Before including this file, define a macro: ! AVR_MCU (NAME, ARCH, ATTR, MACRO, TDATA, TTEXT, FLASH_SIZE, PM_OFFSET) where the arguments are the fields of avr_mcu_t: ! NAME Name of the device as specified by -mmcu=. Also ! used by DRIVER_SELF_SPECS and gen-avr-mmcu-specs.c for ! - the name of the device specific specs file ! in -specs=device-specs/spec- ! - the name of the startup file crt.o ! - the name of the device library to be linked with -l ! ARCH Specifies the multilib variant together with AVR_SHORT_SP ! ATTR Specifies the device specific features ! - additional ISA, short SP, errata skip etc., ! MACRO If NULL, this is a core and not a device. If non-NULL, ! supply respective built-in macro. ! TDATA First address of SRAM, used in -Tdata=. ! TTEXT First address of Flash, used in -Ttext=. ! FLASH_SIZE ! Flash size in bytes. ! ! PM_OFFSET ! Either 0x0 or the offset where flash memory is mirrored ! into the RAM address space accessible by LD, LDD and LDS. ! This is only needed if that value deviates from the ! value for the respective device family. "avr2" must be first for the "0" default to work as intended. */ /* Classic, <= 8K. */ ! AVR_MCU ("avr2", ARCH_AVR2, AVR_ERRATA_SKIP, NULL, 0x0060, 0x0, 0x60000, 0) ! AVR_MCU ("at90s2313", ARCH_AVR2, AVR_SHORT_SP, "__AVR_AT90S2313__", 0x0060, 0x0, 0x800, 0) ! AVR_MCU ("at90s2323", ARCH_AVR2, AVR_SHORT_SP, "__AVR_AT90S2323__", 0x0060, 0x0, 0x800, 0) ! AVR_MCU ("at90s2333", ARCH_AVR2, AVR_SHORT_SP, "__AVR_AT90S2333__", 0x0060, 0x0, 0x800, 0) ! AVR_MCU ("at90s2343", ARCH_AVR2, AVR_SHORT_SP, "__AVR_AT90S2343__", 0x0060, 0x0, 0x800, 0) ! AVR_MCU ("attiny22", ARCH_AVR2, AVR_SHORT_SP, "__AVR_ATtiny22__", 0x0060, 0x0, 0x800, 0) ! AVR_MCU ("attiny26", ARCH_AVR2, AVR_SHORT_SP, "__AVR_ATtiny26__", 0x0060, 0x0, 0x800, 0) ! AVR_MCU ("at90s4414", ARCH_AVR2, AVR_ISA_NONE, "__AVR_AT90S4414__", 0x0060, 0x0, 0x1000, 0) ! AVR_MCU ("at90s4433", ARCH_AVR2, AVR_SHORT_SP, "__AVR_AT90S4433__", 0x0060, 0x0, 0x1000, 0) ! AVR_MCU ("at90s4434", ARCH_AVR2, AVR_ISA_NONE, "__AVR_AT90S4434__", 0x0060, 0x0, 0x1000, 0) ! AVR_MCU ("at90s8515", ARCH_AVR2, AVR_ERRATA_SKIP, "__AVR_AT90S8515__", 0x0060, 0x0, 0x2000, 0) ! AVR_MCU ("at90c8534", ARCH_AVR2, AVR_ISA_NONE, "__AVR_AT90C8534__", 0x0060, 0x0, 0x2000, 0) ! AVR_MCU ("at90s8535", ARCH_AVR2, AVR_ISA_NONE, "__AVR_AT90S8535__", 0x0060, 0x0, 0x2000, 0) /* Classic + MOVW, <= 8K. */ ! AVR_MCU ("avr25", ARCH_AVR25, AVR_ISA_NONE, NULL, 0x0060, 0x0, 0x2000, 0) ! AVR_MCU ("ata5272", ARCH_AVR25, AVR_ISA_NONE, "__AVR_ATA5272__", 0x0100, 0x0, 0x2000, 0) ! AVR_MCU ("ata6616c", ARCH_AVR25, AVR_ISA_NONE, "__AVR_ATA6616C__", 0x0100, 0x0, 0x2000, 0) ! AVR_MCU ("attiny13", ARCH_AVR25, AVR_SHORT_SP, "__AVR_ATtiny13__", 0x0060, 0x0, 0x400, 0) ! AVR_MCU ("attiny13a", ARCH_AVR25, AVR_SHORT_SP, "__AVR_ATtiny13A__", 0x0060, 0x0, 0x400, 0) ! AVR_MCU ("attiny2313", ARCH_AVR25, AVR_SHORT_SP, "__AVR_ATtiny2313__", 0x0060, 0x0, 0x800, 0) ! AVR_MCU ("attiny2313a", ARCH_AVR25, AVR_SHORT_SP, "__AVR_ATtiny2313A__", 0x0060, 0x0, 0x800, 0) ! AVR_MCU ("attiny24", ARCH_AVR25, AVR_SHORT_SP, "__AVR_ATtiny24__", 0x0060, 0x0, 0x800, 0) ! AVR_MCU ("attiny24a", ARCH_AVR25, AVR_SHORT_SP, "__AVR_ATtiny24A__", 0x0060, 0x0, 0x800, 0) ! AVR_MCU ("attiny4313", ARCH_AVR25, AVR_ISA_NONE, "__AVR_ATtiny4313__", 0x0060, 0x0, 0x1000, 0) ! AVR_MCU ("attiny44", ARCH_AVR25, AVR_ISA_NONE, "__AVR_ATtiny44__", 0x0060, 0x0, 0x1000, 0) ! AVR_MCU ("attiny44a", ARCH_AVR25, AVR_ISA_NONE, "__AVR_ATtiny44A__", 0x0060, 0x0, 0x1000, 0) ! AVR_MCU ("attiny441", ARCH_AVR25, AVR_ISA_NONE, "__AVR_ATtiny441__", 0x0100, 0x0, 0x1000, 0) ! AVR_MCU ("attiny84", ARCH_AVR25, AVR_ISA_NONE, "__AVR_ATtiny84__", 0x0060, 0x0, 0x2000, 0) ! AVR_MCU ("attiny84a", ARCH_AVR25, AVR_ISA_NONE, "__AVR_ATtiny84A__", 0x0060, 0x0, 0x2000, 0) ! AVR_MCU ("attiny25", ARCH_AVR25, AVR_SHORT_SP, "__AVR_ATtiny25__", 0x0060, 0x0, 0x800, 0) ! AVR_MCU ("attiny45", ARCH_AVR25, AVR_ISA_NONE, "__AVR_ATtiny45__", 0x0060, 0x0, 0x1000, 0) ! AVR_MCU ("attiny85", ARCH_AVR25, AVR_ISA_NONE, "__AVR_ATtiny85__", 0x0060, 0x0, 0x2000, 0) ! AVR_MCU ("attiny261", ARCH_AVR25, AVR_SHORT_SP, "__AVR_ATtiny261__", 0x0060, 0x0, 0x800, 0) ! AVR_MCU ("attiny261a", ARCH_AVR25, AVR_SHORT_SP, "__AVR_ATtiny261A__", 0x0060, 0x0, 0x800, 0) ! AVR_MCU ("attiny461", ARCH_AVR25, AVR_ISA_NONE, "__AVR_ATtiny461__", 0x0060, 0x0, 0x1000, 0) ! AVR_MCU ("attiny461a", ARCH_AVR25, AVR_ISA_NONE, "__AVR_ATtiny461A__", 0x0060, 0x0, 0x1000, 0) ! AVR_MCU ("attiny861", ARCH_AVR25, AVR_ISA_NONE, "__AVR_ATtiny861__", 0x0060, 0x0, 0x2000, 0) ! AVR_MCU ("attiny861a", ARCH_AVR25, AVR_ISA_NONE, "__AVR_ATtiny861A__", 0x0060, 0x0, 0x2000, 0) ! AVR_MCU ("attiny43u", ARCH_AVR25, AVR_ISA_NONE, "__AVR_ATtiny43U__", 0x0060, 0x0, 0x1000, 0) ! AVR_MCU ("attiny87", ARCH_AVR25, AVR_ISA_NONE, "__AVR_ATtiny87__", 0x0100, 0x0, 0x2000, 0) ! AVR_MCU ("attiny48", ARCH_AVR25, AVR_ISA_NONE, "__AVR_ATtiny48__", 0x0100, 0x0, 0x1000, 0) ! AVR_MCU ("attiny88", ARCH_AVR25, AVR_ISA_NONE, "__AVR_ATtiny88__", 0x0100, 0x0, 0x2000, 0) ! AVR_MCU ("attiny828", ARCH_AVR25, AVR_ISA_NONE, "__AVR_ATtiny828__", 0x0100, 0x0, 0x2000, 0) ! AVR_MCU ("attiny841", ARCH_AVR25, AVR_ISA_NONE, "__AVR_ATtiny841__", 0x0100, 0x0, 0x2000, 0) ! AVR_MCU ("at86rf401", ARCH_AVR25, AVR_ISA_NONE, "__AVR_AT86RF401__", 0x0060, 0x0, 0x800, 0) /* Classic, > 8K, <= 64K. */ ! AVR_MCU ("avr3", ARCH_AVR3, AVR_ISA_NONE, NULL, 0x0060, 0x0, 0x6000, 0) ! AVR_MCU ("at43usb355", ARCH_AVR3, AVR_ISA_NONE, "__AVR_AT43USB355__", 0x0060, 0x0, 0x6000, 0) ! AVR_MCU ("at76c711", ARCH_AVR3, AVR_ISA_NONE, "__AVR_AT76C711__", 0x0060, 0x0, 0x4000, 0) /* Classic, == 128K. */ ! AVR_MCU ("avr31", ARCH_AVR31, AVR_ERRATA_SKIP, NULL, 0x0060, 0x0, 0x20000, 0) ! AVR_MCU ("atmega103", ARCH_AVR31, AVR_ERRATA_SKIP, "__AVR_ATmega103__", 0x0060, 0x0, 0x20000, 0) ! AVR_MCU ("at43usb320", ARCH_AVR31, AVR_ISA_NONE, "__AVR_AT43USB320__", 0x0060, 0x0, 0x10000, 0) /* Classic + MOVW + JMP/CALL. */ ! AVR_MCU ("avr35", ARCH_AVR35, AVR_ISA_NONE, NULL, 0x0100, 0x0, 0x4000, 0) ! AVR_MCU ("ata5505", ARCH_AVR35, AVR_ISA_NONE, "__AVR_ATA5505__", 0x0100, 0x0, 0x4000, 0) ! AVR_MCU ("ata6617c", ARCH_AVR35, AVR_ISA_NONE, "__AVR_ATA6617C__", 0x0100, 0x0, 0x4000, 0) ! AVR_MCU ("ata664251", ARCH_AVR35, AVR_ISA_NONE, "__AVR_ATA664251__", 0x0100, 0x0, 0x4000, 0) ! AVR_MCU ("at90usb82", ARCH_AVR35, AVR_ISA_NONE, "__AVR_AT90USB82__", 0x0100, 0x0, 0x2000, 0) ! AVR_MCU ("at90usb162", ARCH_AVR35, AVR_ISA_NONE, "__AVR_AT90USB162__", 0x0100, 0x0, 0x4000, 0) ! AVR_MCU ("atmega8u2", ARCH_AVR35, AVR_ISA_NONE, "__AVR_ATmega8U2__", 0x0100, 0x0, 0x2000, 0) ! AVR_MCU ("atmega16u2", ARCH_AVR35, AVR_ISA_NONE, "__AVR_ATmega16U2__", 0x0100, 0x0, 0x4000, 0) ! AVR_MCU ("atmega32u2", ARCH_AVR35, AVR_ISA_NONE, "__AVR_ATmega32U2__", 0x0100, 0x0, 0x8000, 0) ! AVR_MCU ("attiny167", ARCH_AVR35, AVR_ISA_NONE, "__AVR_ATtiny167__", 0x0100, 0x0, 0x4000, 0) ! AVR_MCU ("attiny1634", ARCH_AVR35, AVR_ISA_NONE, "__AVR_ATtiny1634__", 0x0100, 0x0, 0x4000, 0) /* Enhanced, <= 8K. */ ! AVR_MCU ("avr4", ARCH_AVR4, AVR_ISA_NONE, NULL, 0x0060, 0x0, 0x2000, 0) ! AVR_MCU ("ata6285", ARCH_AVR4, AVR_ISA_NONE, "__AVR_ATA6285__", 0x0100, 0x0, 0x2000, 0) ! AVR_MCU ("ata6286", ARCH_AVR4, AVR_ISA_NONE, "__AVR_ATA6286__", 0x0100, 0x0, 0x2000, 0) ! AVR_MCU ("ata6289", ARCH_AVR4, AVR_ISA_NONE, "__AVR_ATA6289__", 0x0100, 0x0, 0x2000, 0) ! AVR_MCU ("ata6612c", ARCH_AVR4, AVR_ISA_NONE, "__AVR_ATA6612C__", 0x0100, 0x0, 0x2000, 0) ! AVR_MCU ("atmega8", ARCH_AVR4, AVR_ISA_NONE, "__AVR_ATmega8__", 0x0060, 0x0, 0x2000, 0) ! AVR_MCU ("atmega8a", ARCH_AVR4, AVR_ISA_NONE, "__AVR_ATmega8A__", 0x0060, 0x0, 0x2000, 0) ! AVR_MCU ("atmega48", ARCH_AVR4, AVR_ISA_NONE, "__AVR_ATmega48__", 0x0100, 0x0, 0x1000, 0) ! AVR_MCU ("atmega48a", ARCH_AVR4, AVR_ISA_NONE, "__AVR_ATmega48A__", 0x0100, 0x0, 0x1000, 0) ! AVR_MCU ("atmega48p", ARCH_AVR4, AVR_ISA_NONE, "__AVR_ATmega48P__", 0x0100, 0x0, 0x1000, 0) ! AVR_MCU ("atmega48pa", ARCH_AVR4, AVR_ISA_NONE, "__AVR_ATmega48PA__", 0x0100, 0x0, 0x1000, 0) ! AVR_MCU ("atmega48pb", ARCH_AVR4, AVR_ISA_NONE, "__AVR_ATmega48PB__", 0x0100, 0x0, 0x1000, 0) ! AVR_MCU ("atmega88", ARCH_AVR4, AVR_ISA_NONE, "__AVR_ATmega88__", 0x0100, 0x0, 0x2000, 0) ! AVR_MCU ("atmega88a", ARCH_AVR4, AVR_ISA_NONE, "__AVR_ATmega88A__", 0x0100, 0x0, 0x2000, 0) ! AVR_MCU ("atmega88p", ARCH_AVR4, AVR_ISA_NONE, "__AVR_ATmega88P__", 0x0100, 0x0, 0x2000, 0) ! AVR_MCU ("atmega88pa", ARCH_AVR4, AVR_ISA_NONE, "__AVR_ATmega88PA__", 0x0100, 0x0, 0x2000, 0) ! AVR_MCU ("atmega88pb", ARCH_AVR4, AVR_ISA_NONE, "__AVR_ATmega88PB__", 0x0100, 0x0, 0x2000, 0) ! AVR_MCU ("atmega8515", ARCH_AVR4, AVR_ISA_NONE, "__AVR_ATmega8515__", 0x0060, 0x0, 0x2000, 0) ! AVR_MCU ("atmega8535", ARCH_AVR4, AVR_ISA_NONE, "__AVR_ATmega8535__", 0x0060, 0x0, 0x2000, 0) ! AVR_MCU ("atmega8hva", ARCH_AVR4, AVR_ISA_NONE, "__AVR_ATmega8HVA__", 0x0100, 0x0, 0x2000, 0) ! AVR_MCU ("at90pwm1", ARCH_AVR4, AVR_ISA_NONE, "__AVR_AT90PWM1__", 0x0100, 0x0, 0x2000, 0) ! AVR_MCU ("at90pwm2", ARCH_AVR4, AVR_ISA_NONE, "__AVR_AT90PWM2__", 0x0100, 0x0, 0x2000, 0) ! AVR_MCU ("at90pwm2b", ARCH_AVR4, AVR_ISA_NONE, "__AVR_AT90PWM2B__", 0x0100, 0x0, 0x2000, 0) ! AVR_MCU ("at90pwm3", ARCH_AVR4, AVR_ISA_NONE, "__AVR_AT90PWM3__", 0x0100, 0x0, 0x2000, 0) ! AVR_MCU ("at90pwm3b", ARCH_AVR4, AVR_ISA_NONE, "__AVR_AT90PWM3B__", 0x0100, 0x0, 0x2000, 0) ! AVR_MCU ("at90pwm81", ARCH_AVR4, AVR_ISA_NONE, "__AVR_AT90PWM81__", 0x0100, 0x0, 0x2000, 0) /* Enhanced, > 8K, <= 64K. */ ! AVR_MCU ("avr5", ARCH_AVR5, AVR_ISA_NONE, NULL, 0x0060, 0x0, 0x4000, 0) ! AVR_MCU ("ata5702m322", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATA5702M322__", 0x0200, 0x0, 0x10000, 0) ! AVR_MCU ("ata5782", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATA5782__", 0x0200, 0x8000, 0xd000, 0) ! AVR_MCU ("ata5790", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATA5790__", 0x0100, 0x0, 0x4000, 0) ! AVR_MCU ("ata5790n", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATA5790N__", 0x0100, 0x0, 0x4000, 0) ! AVR_MCU ("ata5791", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATA5791__", 0x0100, 0x0, 0x4000, 0) ! AVR_MCU ("ata5795", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATA5795__", 0x0100, 0x0, 0x2000, 0) ! AVR_MCU ("ata5831", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATA5831__", 0x0200, 0x8000, 0xd000, 0) ! AVR_MCU ("ata6613c", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATA6613C__", 0x0100, 0x0, 0x4000, 0) ! AVR_MCU ("ata6614q", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATA6614Q__", 0x0100, 0x0, 0x8000, 0) ! AVR_MCU ("ata8210", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATA8210__", 0x0200, 0x8000, 0xd000, 0) ! AVR_MCU ("ata8510", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATA8510__", 0x0200, 0x8000, 0xd000, 0) ! AVR_MCU ("atmega16", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega16__", 0x0060, 0x0, 0x4000, 0) ! AVR_MCU ("atmega16a", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega16A__", 0x0060, 0x0, 0x4000, 0) ! AVR_MCU ("atmega161", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega161__", 0x0060, 0x0, 0x4000, 0) ! AVR_MCU ("atmega162", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega162__", 0x0100, 0x0, 0x4000, 0) ! AVR_MCU ("atmega163", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega163__", 0x0060, 0x0, 0x4000, 0) ! AVR_MCU ("atmega164a", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega164A__", 0x0100, 0x0, 0x4000, 0) ! AVR_MCU ("atmega164p", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega164P__", 0x0100, 0x0, 0x4000, 0) ! AVR_MCU ("atmega164pa", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega164PA__", 0x0100, 0x0, 0x4000, 0) ! AVR_MCU ("atmega165", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega165__", 0x0100, 0x0, 0x4000, 0) ! AVR_MCU ("atmega165a", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega165A__", 0x0100, 0x0, 0x4000, 0) ! AVR_MCU ("atmega165p", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega165P__", 0x0100, 0x0, 0x4000, 0) ! AVR_MCU ("atmega165pa", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega165PA__", 0x0100, 0x0, 0x4000, 0) ! AVR_MCU ("atmega168", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega168__", 0x0100, 0x0, 0x4000, 0) ! AVR_MCU ("atmega168a", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega168A__", 0x0100, 0x0, 0x4000, 0) ! AVR_MCU ("atmega168p", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega168P__", 0x0100, 0x0, 0x4000, 0) ! AVR_MCU ("atmega168pa", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega168PA__", 0x0100, 0x0, 0x4000, 0) ! AVR_MCU ("atmega168pb", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega168PB__", 0x0100, 0x0, 0x4000, 0) ! AVR_MCU ("atmega169", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega169__", 0x0100, 0x0, 0x4000, 0) ! AVR_MCU ("atmega169a", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega169A__", 0x0100, 0x0, 0x4000, 0) ! AVR_MCU ("atmega169p", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega169P__", 0x0100, 0x0, 0x4000, 0) ! AVR_MCU ("atmega169pa", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega169PA__", 0x0100, 0x0, 0x4000, 0) ! AVR_MCU ("atmega16hvb", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega16HVB__", 0x0100, 0x0, 0x4000, 0) ! AVR_MCU ("atmega16hvbrevb", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega16HVBREVB__", 0x0100, 0x0, 0x4000, 0) ! AVR_MCU ("atmega16m1", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega16M1__", 0x0100, 0x0, 0x4000, 0) ! AVR_MCU ("atmega16u4", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega16U4__", 0x0100, 0x0, 0x4000, 0) ! AVR_MCU ("atmega32a", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega32A__", 0x0060, 0x0, 0x8000, 0) ! AVR_MCU ("atmega32", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega32__", 0x0060, 0x0, 0x8000, 0) ! AVR_MCU ("atmega323", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega323__", 0x0060, 0x0, 0x8000, 0) ! AVR_MCU ("atmega324a", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega324A__", 0x0100, 0x0, 0x8000, 0) ! AVR_MCU ("atmega324p", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega324P__", 0x0100, 0x0, 0x8000, 0) ! AVR_MCU ("atmega324pa", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega324PA__", 0x0100, 0x0, 0x8000, 0) ! AVR_MCU ("atmega325", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega325__", 0x0100, 0x0, 0x8000, 0) ! AVR_MCU ("atmega325a", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega325A__", 0x0100, 0x0, 0x8000, 0) ! AVR_MCU ("atmega325p", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega325P__", 0x0100, 0x0, 0x8000, 0) ! AVR_MCU ("atmega325pa", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega325PA__", 0x0100, 0x0, 0x8000, 0) ! AVR_MCU ("atmega3250", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega3250__", 0x0100, 0x0, 0x8000, 0) ! AVR_MCU ("atmega3250a", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega3250A__", 0x0100, 0x0, 0x8000, 0) ! AVR_MCU ("atmega3250p", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega3250P__", 0x0100, 0x0, 0x8000, 0) ! AVR_MCU ("atmega3250pa", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega3250PA__", 0x0100, 0x0, 0x8000, 0) ! AVR_MCU ("atmega328", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega328__", 0x0100, 0x0, 0x8000, 0) ! AVR_MCU ("atmega328p", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega328P__", 0x0100, 0x0, 0x8000, 0) ! AVR_MCU ("atmega328pb", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega328PB__", 0x0100, 0x0, 0x8000, 0) ! AVR_MCU ("atmega329", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega329__", 0x0100, 0x0, 0x8000, 0) ! AVR_MCU ("atmega329a", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega329A__", 0x0100, 0x0, 0x8000, 0) ! AVR_MCU ("atmega329p", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega329P__", 0x0100, 0x0, 0x8000, 0) ! AVR_MCU ("atmega329pa", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega329PA__", 0x0100, 0x0, 0x8000, 0) ! AVR_MCU ("atmega3290", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega3290__", 0x0100, 0x0, 0x8000, 0) ! AVR_MCU ("atmega3290a", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega3290A__", 0x0100, 0x0, 0x8000, 0) ! AVR_MCU ("atmega3290p", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega3290P__", 0x0100, 0x0, 0x8000, 0) ! AVR_MCU ("atmega3290pa", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega3290PA__", 0x0100, 0x0, 0x8000, 0) ! AVR_MCU ("atmega32c1", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega32C1__", 0x0100, 0x0, 0x8000, 0) ! AVR_MCU ("atmega32m1", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega32M1__", 0x0100, 0x0, 0x8000, 0) ! AVR_MCU ("atmega32u4", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega32U4__", 0x0100, 0x0, 0x8000, 0) ! AVR_MCU ("atmega32u6", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega32U6__", 0x0100, 0x0, 0x8000, 0) ! AVR_MCU ("atmega406", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega406__", 0x0100, 0x0, 0xa000, 0) ! AVR_MCU ("atmega64", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega64__", 0x0100, 0x0, 0x10000, 0) ! AVR_MCU ("atmega64a", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega64A__", 0x0100, 0x0, 0x10000, 0) ! AVR_MCU ("atmega640", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega640__", 0x0200, 0x0, 0x10000, 0) ! AVR_MCU ("atmega644", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega644__", 0x0100, 0x0, 0x10000, 0) ! AVR_MCU ("atmega644a", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega644A__", 0x0100, 0x0, 0x10000, 0) ! AVR_MCU ("atmega644p", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega644P__", 0x0100, 0x0, 0x10000, 0) ! AVR_MCU ("atmega644pa", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega644PA__", 0x0100, 0x0, 0x10000, 0) ! AVR_MCU ("atmega645", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega645__", 0x0100, 0x0, 0x10000, 0) ! AVR_MCU ("atmega645a", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega645A__", 0x0100, 0x0, 0x10000, 0) ! AVR_MCU ("atmega645p", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega645P__", 0x0100, 0x0, 0x10000, 0) ! AVR_MCU ("atmega6450", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega6450__", 0x0100, 0x0, 0x10000, 0) ! AVR_MCU ("atmega6450a", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega6450A__", 0x0100, 0x0, 0x10000, 0) ! AVR_MCU ("atmega6450p", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega6450P__", 0x0100, 0x0, 0x10000, 0) ! AVR_MCU ("atmega649", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega649__", 0x0100, 0x0, 0x10000, 0) ! AVR_MCU ("atmega649a", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega649A__", 0x0100, 0x0, 0x10000, 0) ! AVR_MCU ("atmega649p", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega649P__", 0x0100, 0x0, 0x10000, 0) ! AVR_MCU ("atmega6490", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega6490__", 0x0100, 0x0, 0x10000, 0) ! AVR_MCU ("atmega16hva", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega16HVA__", 0x0100, 0x0, 0x4000, 0) ! AVR_MCU ("atmega16hva2", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega16HVA2__", 0x0100, 0x0, 0x4000, 0) ! AVR_MCU ("atmega32hvb", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega32HVB__", 0x0100, 0x0, 0x8000, 0) ! AVR_MCU ("atmega6490a", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega6490A__", 0x0100, 0x0, 0x10000, 0) ! AVR_MCU ("atmega6490p", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega6490P__", 0x0100, 0x0, 0x10000, 0) ! AVR_MCU ("atmega64c1", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega64C1__", 0x0100, 0x0, 0x10000, 0) ! AVR_MCU ("atmega64m1", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega64M1__", 0x0100, 0x0, 0x10000, 0) ! AVR_MCU ("atmega64hve", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega64HVE__", 0x0100, 0x0, 0x10000, 0) ! AVR_MCU ("atmega64hve2", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega64HVE2__", 0x0100, 0x0, 0x10000, 0) ! AVR_MCU ("atmega64rfr2", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega64RFR2__", 0x0200, 0x0, 0x10000, 0) ! AVR_MCU ("atmega644rfr2", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega644RFR2__", 0x0200, 0x0, 0x10000, 0) ! AVR_MCU ("atmega32hvbrevb", ARCH_AVR5, AVR_ISA_NONE, "__AVR_ATmega32HVBREVB__", 0x0100, 0x0, 0x8000, 0) ! AVR_MCU ("at90can32", ARCH_AVR5, AVR_ISA_NONE, "__AVR_AT90CAN32__", 0x0100, 0x0, 0x8000, 0) ! AVR_MCU ("at90can64", ARCH_AVR5, AVR_ISA_NONE, "__AVR_AT90CAN64__", 0x0100, 0x0, 0x10000, 0) ! AVR_MCU ("at90pwm161", ARCH_AVR5, AVR_ISA_NONE, "__AVR_AT90PWM161__", 0x0100, 0x0, 0x4000, 0) ! AVR_MCU ("at90pwm216", ARCH_AVR5, AVR_ISA_NONE, "__AVR_AT90PWM216__", 0x0100, 0x0, 0x4000, 0) ! AVR_MCU ("at90pwm316", ARCH_AVR5, AVR_ISA_NONE, "__AVR_AT90PWM316__", 0x0100, 0x0, 0x4000, 0) ! AVR_MCU ("at90scr100", ARCH_AVR5, AVR_ISA_NONE, "__AVR_AT90SCR100__", 0x0100, 0x0, 0x10000, 0) ! AVR_MCU ("at90usb646", ARCH_AVR5, AVR_ISA_NONE, "__AVR_AT90USB646__", 0x0100, 0x0, 0x10000, 0) ! AVR_MCU ("at90usb647", ARCH_AVR5, AVR_ISA_NONE, "__AVR_AT90USB647__", 0x0100, 0x0, 0x10000, 0) ! AVR_MCU ("at94k", ARCH_AVR5, AVR_ISA_NONE, "__AVR_AT94K__", 0x0060, 0x0, 0x8000, 0) ! AVR_MCU ("m3000", ARCH_AVR5, AVR_ISA_NONE, "__AVR_M3000__", 0x1000, 0x0, 0x10000, 0) /* Enhanced, == 128K. */ ! AVR_MCU ("avr51", ARCH_AVR51, AVR_ISA_NONE, NULL, 0x0100, 0x0, 0x20000, 0) ! AVR_MCU ("atmega128", ARCH_AVR51, AVR_ISA_NONE, "__AVR_ATmega128__", 0x0100, 0x0, 0x20000, 0) ! AVR_MCU ("atmega128a", ARCH_AVR51, AVR_ISA_NONE, "__AVR_ATmega128A__", 0x0100, 0x0, 0x20000, 0) ! AVR_MCU ("atmega1280", ARCH_AVR51, AVR_ISA_NONE, "__AVR_ATmega1280__", 0x0200, 0x0, 0x20000, 0) ! AVR_MCU ("atmega1281", ARCH_AVR51, AVR_ISA_NONE, "__AVR_ATmega1281__", 0x0200, 0x0, 0x20000, 0) ! AVR_MCU ("atmega1284", ARCH_AVR51, AVR_ISA_NONE, "__AVR_ATmega1284__", 0x0100, 0x0, 0x20000, 0) ! AVR_MCU ("atmega1284p", ARCH_AVR51, AVR_ISA_NONE, "__AVR_ATmega1284P__", 0x0100, 0x0, 0x20000, 0) ! AVR_MCU ("atmega128rfa1", ARCH_AVR51, AVR_ISA_NONE, "__AVR_ATmega128RFA1__", 0x0200, 0x0, 0x20000, 0) ! AVR_MCU ("atmega128rfr2", ARCH_AVR51, AVR_ISA_NONE, "__AVR_ATmega128RFR2__", 0x0200, 0x0, 0x20000, 0) ! AVR_MCU ("atmega1284rfr2", ARCH_AVR51, AVR_ISA_NONE, "__AVR_ATmega1284RFR2__", 0x0200, 0x0, 0x20000, 0) ! AVR_MCU ("at90can128", ARCH_AVR51, AVR_ISA_NONE, "__AVR_AT90CAN128__", 0x0100, 0x0, 0x20000, 0) ! AVR_MCU ("at90usb1286", ARCH_AVR51, AVR_ISA_NONE, "__AVR_AT90USB1286__", 0x0100, 0x0, 0x20000, 0) ! AVR_MCU ("at90usb1287", ARCH_AVR51, AVR_ISA_NONE, "__AVR_AT90USB1287__", 0x0100, 0x0, 0x20000, 0) /* 3-Byte PC. */ ! AVR_MCU ("avr6", ARCH_AVR6, AVR_ISA_NONE, NULL, 0x0200, 0x0, 0x40000, 0) ! AVR_MCU ("atmega2560", ARCH_AVR6, AVR_ISA_NONE, "__AVR_ATmega2560__", 0x0200, 0x0, 0x40000, 0) ! AVR_MCU ("atmega2561", ARCH_AVR6, AVR_ISA_NONE, "__AVR_ATmega2561__", 0x0200, 0x0, 0x40000, 0) ! AVR_MCU ("atmega256rfr2", ARCH_AVR6, AVR_ISA_NONE, "__AVR_ATmega256RFR2__", 0x0200, 0x0, 0x40000, 0) ! AVR_MCU ("atmega2564rfr2", ARCH_AVR6, AVR_ISA_NONE, "__AVR_ATmega2564RFR2__", 0x0200, 0x0, 0x40000, 0) /* Xmega, 16K <= Flash < 64K, RAM <= 64K */ ! AVR_MCU ("avrxmega2", ARCH_AVRXMEGA2, AVR_ISA_NONE, NULL, 0x2000, 0x0, 0x9000, 0) ! AVR_MCU ("atxmega8e5", ARCH_AVRXMEGA2, AVR_ISA_NONE, "__AVR_ATxmega8E5__", 0x2000, 0x0, 0x2800, 0) ! AVR_MCU ("atxmega16a4", ARCH_AVRXMEGA2, AVR_ISA_NONE, "__AVR_ATxmega16A4__", 0x2000, 0x0, 0x5000, 0) ! AVR_MCU ("atxmega16d4", ARCH_AVRXMEGA2, AVR_ISA_NONE, "__AVR_ATxmega16D4__", 0x2000, 0x0, 0x5000, 0) ! AVR_MCU ("atxmega16e5", ARCH_AVRXMEGA2, AVR_ISA_NONE, "__AVR_ATxmega16E5__", 0x2000, 0x0, 0x5000, 0) ! AVR_MCU ("atxmega32a4", ARCH_AVRXMEGA2, AVR_ISA_NONE, "__AVR_ATxmega32A4__", 0x2000, 0x0, 0x9000, 0) ! AVR_MCU ("atxmega32c3", ARCH_AVRXMEGA2, AVR_ISA_RMW, "__AVR_ATxmega32C3__", 0x2000, 0x0, 0x9000, 0) ! AVR_MCU ("atxmega32d3", ARCH_AVRXMEGA2, AVR_ISA_NONE, "__AVR_ATxmega32D3__", 0x2000, 0x0, 0x9000, 0) ! AVR_MCU ("atxmega32d4", ARCH_AVRXMEGA2, AVR_ISA_NONE, "__AVR_ATxmega32D4__", 0x2000, 0x0, 0x9000, 0) ! AVR_MCU ("atxmega16a4u", ARCH_AVRXMEGA2, AVR_ISA_RMW, "__AVR_ATxmega16A4U__", 0x2000, 0x0, 0x5000, 0) ! AVR_MCU ("atxmega16c4", ARCH_AVRXMEGA2, AVR_ISA_RMW, "__AVR_ATxmega16C4__", 0x2000, 0x0, 0x5000, 0) ! AVR_MCU ("atxmega32a4u", ARCH_AVRXMEGA2, AVR_ISA_RMW, "__AVR_ATxmega32A4U__", 0x2000, 0x0, 0x9000, 0) ! AVR_MCU ("atxmega32c4", ARCH_AVRXMEGA2, AVR_ISA_RMW, "__AVR_ATxmega32C4__", 0x2000, 0x0, 0x9000, 0) ! AVR_MCU ("atxmega32e5", ARCH_AVRXMEGA2, AVR_ISA_NONE, "__AVR_ATxmega32E5__", 0x2000, 0x0, 0x9000, 0) /* Xmega, Flash + RAM < 64K, flash visible in RAM address space */ ! AVR_MCU ("avrxmega3", ARCH_AVRXMEGA3, AVR_ISA_NONE, NULL, 0x3f00, 0x0, 0x8000, 0) ! AVR_MCU ("attiny202", ARCH_AVRXMEGA3, AVR_ISA_RCALL, "__AVR_ATtiny202__", 0x3f80, 0x0, 0x800, 0x8000) ! AVR_MCU ("attiny204", ARCH_AVRXMEGA3, AVR_ISA_RCALL, "__AVR_ATtiny204__", 0x3f80, 0x0, 0x800, 0x8000) ! AVR_MCU ("attiny402", ARCH_AVRXMEGA3, AVR_ISA_RCALL, "__AVR_ATtiny402__", 0x3f00, 0x0, 0x1000, 0x8000) ! AVR_MCU ("attiny404", ARCH_AVRXMEGA3, AVR_ISA_RCALL, "__AVR_ATtiny404__", 0x3f00, 0x0, 0x1000, 0x8000) ! AVR_MCU ("attiny406", ARCH_AVRXMEGA3, AVR_ISA_RCALL, "__AVR_ATtiny406__", 0x3f00, 0x0, 0x1000, 0x8000) ! AVR_MCU ("attiny804", ARCH_AVRXMEGA3, AVR_ISA_RCALL, "__AVR_ATtiny804__", 0x3e00, 0x0, 0x2000, 0x8000) ! AVR_MCU ("attiny806", ARCH_AVRXMEGA3, AVR_ISA_RCALL, "__AVR_ATtiny806__", 0x3e00, 0x0, 0x2000, 0x8000) ! AVR_MCU ("attiny807", ARCH_AVRXMEGA3, AVR_ISA_RCALL, "__AVR_ATtiny807__", 0x3e00, 0x0, 0x2000, 0x8000) ! AVR_MCU ("attiny1604", ARCH_AVRXMEGA3, AVR_ISA_NONE, "__AVR_ATtiny1604__", 0x3c00, 0x0, 0x4000, 0x8000) ! AVR_MCU ("attiny1606", ARCH_AVRXMEGA3, AVR_ISA_NONE, "__AVR_ATtiny1606__", 0x3c00, 0x0, 0x4000, 0x8000) ! AVR_MCU ("attiny1607", ARCH_AVRXMEGA3, AVR_ISA_NONE, "__AVR_ATtiny1607__", 0x3c00, 0x0, 0x4000, 0x8000) ! AVR_MCU ("attiny212", ARCH_AVRXMEGA3, AVR_ISA_RCALL, "__AVR_ATtiny212__", 0x3f80, 0x0, 0x800, 0x8000) ! AVR_MCU ("attiny214", ARCH_AVRXMEGA3, AVR_ISA_RCALL, "__AVR_ATtiny214__", 0x3f80, 0x0, 0x800, 0x8000) ! AVR_MCU ("attiny412", ARCH_AVRXMEGA3, AVR_ISA_RCALL, "__AVR_ATtiny412__", 0x3f00, 0x0, 0x1000, 0x8000) ! AVR_MCU ("attiny414", ARCH_AVRXMEGA3, AVR_ISA_RCALL, "__AVR_ATtiny414__", 0x3f00, 0x0, 0x1000, 0x8000) ! AVR_MCU ("attiny416", ARCH_AVRXMEGA3, AVR_ISA_RCALL, "__AVR_ATtiny416__", 0x3f00, 0x0, 0x1000, 0x8000) ! AVR_MCU ("attiny417", ARCH_AVRXMEGA3, AVR_ISA_RCALL, "__AVR_ATtiny417__", 0x3f00, 0x0, 0x1000, 0x8000) ! AVR_MCU ("attiny814", ARCH_AVRXMEGA3, AVR_ISA_RCALL, "__AVR_ATtiny814__", 0x3e00, 0x0, 0x2000, 0x8000) ! AVR_MCU ("attiny816", ARCH_AVRXMEGA3, AVR_ISA_RCALL, "__AVR_ATtiny816__", 0x3e00, 0x0, 0x2000, 0x8000) ! AVR_MCU ("attiny817", ARCH_AVRXMEGA3, AVR_ISA_RCALL, "__AVR_ATtiny817__", 0x3e00, 0x0, 0x2000, 0x8000) ! AVR_MCU ("attiny1614", ARCH_AVRXMEGA3, AVR_ISA_NONE, "__AVR_ATtiny1614__", 0x3800, 0x0, 0x4000, 0x8000) ! AVR_MCU ("attiny1616", ARCH_AVRXMEGA3, AVR_ISA_NONE, "__AVR_ATtiny1616__", 0x3800, 0x0, 0x4000, 0x8000) ! AVR_MCU ("attiny1617", ARCH_AVRXMEGA3, AVR_ISA_NONE, "__AVR_ATtiny1617__", 0x3800, 0x0, 0x4000, 0x8000) ! AVR_MCU ("attiny3214", ARCH_AVRXMEGA3, AVR_ISA_NONE, "__AVR_ATtiny3214__", 0x3800, 0x0, 0x8000, 0x8000) ! AVR_MCU ("attiny3216", ARCH_AVRXMEGA3, AVR_ISA_NONE, "__AVR_ATtiny3216__", 0x3800, 0x0, 0x8000, 0x8000) ! AVR_MCU ("attiny3217", ARCH_AVRXMEGA3, AVR_ISA_NONE, "__AVR_ATtiny3217__", 0x3800, 0x0, 0x8000, 0x8000) ! AVR_MCU ("atmega808", ARCH_AVRXMEGA3, AVR_ISA_RCALL, "__AVR_ATmega808__", 0x3c00, 0x0, 0x2000, 0x4000) ! AVR_MCU ("atmega809", ARCH_AVRXMEGA3, AVR_ISA_RCALL, "__AVR_ATmega809__", 0x3c00, 0x0, 0x2000, 0x4000) ! AVR_MCU ("atmega1608", ARCH_AVRXMEGA3, AVR_ISA_NONE, "__AVR_ATmega1608__", 0x3800, 0x0, 0x4000, 0x4000) ! AVR_MCU ("atmega1609", ARCH_AVRXMEGA3, AVR_ISA_NONE, "__AVR_ATmega1609__", 0x3800, 0x0, 0x4000, 0x4000) ! AVR_MCU ("atmega3208", ARCH_AVRXMEGA3, AVR_ISA_NONE, "__AVR_ATmega3208__", 0x3800, 0x0, 0x8000, 0x4000) ! AVR_MCU ("atmega3209", ARCH_AVRXMEGA3, AVR_ISA_NONE, "__AVR_ATmega3209__", 0x3800, 0x0, 0x8000, 0x4000) ! AVR_MCU ("atmega4808", ARCH_AVRXMEGA3, AVR_ISA_NONE, "__AVR_ATmega4808__", 0x2800, 0x0, 0xc000, 0x4000) ! AVR_MCU ("atmega4809", ARCH_AVRXMEGA3, AVR_ISA_NONE, "__AVR_ATmega4809__", 0x2800, 0x0, 0xc000, 0x4000) /* Xmega, 64K < Flash <= 128K, RAM <= 64K */ ! AVR_MCU ("avrxmega4", ARCH_AVRXMEGA4, AVR_ISA_NONE, NULL, 0x2000, 0x0, 0x11000, 0) ! AVR_MCU ("atxmega64a3", ARCH_AVRXMEGA4, AVR_ISA_NONE, "__AVR_ATxmega64A3__", 0x2000, 0x0, 0x11000, 0) ! AVR_MCU ("atxmega64d3", ARCH_AVRXMEGA4, AVR_ISA_NONE, "__AVR_ATxmega64D3__", 0x2000, 0x0, 0x11000, 0) ! AVR_MCU ("atxmega64a3u", ARCH_AVRXMEGA4, AVR_ISA_RMW, "__AVR_ATxmega64A3U__", 0x2000, 0x0, 0x11000, 0) ! AVR_MCU ("atxmega64a4u", ARCH_AVRXMEGA4, AVR_ISA_RMW, "__AVR_ATxmega64A4U__", 0x2000, 0x0, 0x11000, 0) ! AVR_MCU ("atxmega64b1", ARCH_AVRXMEGA4, AVR_ISA_RMW, "__AVR_ATxmega64B1__", 0x2000, 0x0, 0x11000, 0) ! AVR_MCU ("atxmega64b3", ARCH_AVRXMEGA4, AVR_ISA_RMW, "__AVR_ATxmega64B3__", 0x2000, 0x0, 0x11000, 0) ! AVR_MCU ("atxmega64c3", ARCH_AVRXMEGA4, AVR_ISA_RMW, "__AVR_ATxmega64C3__", 0x2000, 0x0, 0x11000, 0) ! AVR_MCU ("atxmega64d4", ARCH_AVRXMEGA4, AVR_ISA_NONE, "__AVR_ATxmega64D4__", 0x2000, 0x0, 0x11000, 0) /* Xmega, 64K < Flash <= 128K, RAM > 64K */ ! AVR_MCU ("avrxmega5", ARCH_AVRXMEGA5, AVR_ISA_NONE, NULL, 0x2000, 0x0, 0x11000, 0) ! AVR_MCU ("atxmega64a1", ARCH_AVRXMEGA5, AVR_ISA_NONE, "__AVR_ATxmega64A1__", 0x2000, 0x0, 0x11000, 0) ! AVR_MCU ("atxmega64a1u", ARCH_AVRXMEGA5, AVR_ISA_RMW, "__AVR_ATxmega64A1U__", 0x2000, 0x0, 0x11000, 0) /* Xmega, 128K < Flash, RAM <= 64K */ ! AVR_MCU ("avrxmega6", ARCH_AVRXMEGA6, AVR_ISA_NONE, NULL, 0x2000, 0x0, 0x60000, 0) ! AVR_MCU ("atxmega128a3", ARCH_AVRXMEGA6, AVR_ISA_NONE, "__AVR_ATxmega128A3__", 0x2000, 0x0, 0x22000, 0) ! AVR_MCU ("atxmega128d3", ARCH_AVRXMEGA6, AVR_ISA_NONE, "__AVR_ATxmega128D3__", 0x2000, 0x0, 0x22000, 0) ! AVR_MCU ("atxmega192a3", ARCH_AVRXMEGA6, AVR_ISA_NONE, "__AVR_ATxmega192A3__", 0x2000, 0x0, 0x32000, 0) ! AVR_MCU ("atxmega192d3", ARCH_AVRXMEGA6, AVR_ISA_NONE, "__AVR_ATxmega192D3__", 0x2000, 0x0, 0x32000, 0) ! AVR_MCU ("atxmega256a3", ARCH_AVRXMEGA6, AVR_ISA_NONE, "__AVR_ATxmega256A3__", 0x2000, 0x0, 0x42000, 0) ! AVR_MCU ("atxmega256a3b", ARCH_AVRXMEGA6, AVR_ISA_NONE, "__AVR_ATxmega256A3B__", 0x2000, 0x0, 0x42000, 0) ! AVR_MCU ("atxmega256a3bu", ARCH_AVRXMEGA6, AVR_ISA_NONE, "__AVR_ATxmega256A3BU__", 0x2000, 0x0, 0x42000, 0) ! AVR_MCU ("atxmega256d3", ARCH_AVRXMEGA6, AVR_ISA_NONE, "__AVR_ATxmega256D3__", 0x2000, 0x0, 0x42000, 0) ! AVR_MCU ("atxmega128a3u", ARCH_AVRXMEGA6, AVR_ISA_RMW, "__AVR_ATxmega128A3U__", 0x2000, 0x0, 0x22000, 0) ! AVR_MCU ("atxmega128b1", ARCH_AVRXMEGA6, AVR_ISA_RMW, "__AVR_ATxmega128B1__", 0x2000, 0x0, 0x22000, 0) ! AVR_MCU ("atxmega128b3", ARCH_AVRXMEGA6, AVR_ISA_RMW, "__AVR_ATxmega128B3__", 0x2000, 0x0, 0x22000, 0) ! AVR_MCU ("atxmega128c3", ARCH_AVRXMEGA6, AVR_ISA_RMW, "__AVR_ATxmega128C3__", 0x2000, 0x0, 0x22000, 0) ! AVR_MCU ("atxmega128d4", ARCH_AVRXMEGA6, AVR_ISA_NONE, "__AVR_ATxmega128D4__", 0x2000, 0x0, 0x22000, 0) ! AVR_MCU ("atxmega192a3u", ARCH_AVRXMEGA6, AVR_ISA_RMW, "__AVR_ATxmega192A3U__", 0x2000, 0x0, 0x32000, 0) ! AVR_MCU ("atxmega192c3", ARCH_AVRXMEGA6, AVR_ISA_RMW, "__AVR_ATxmega192C3__", 0x2000, 0x0, 0x32000, 0) ! AVR_MCU ("atxmega256a3u", ARCH_AVRXMEGA6, AVR_ISA_RMW, "__AVR_ATxmega256A3U__", 0x2000, 0x0, 0x42000, 0) ! AVR_MCU ("atxmega256c3", ARCH_AVRXMEGA6, AVR_ISA_RMW, "__AVR_ATxmega256C3__", 0x2000, 0x0, 0x42000, 0) ! AVR_MCU ("atxmega384c3", ARCH_AVRXMEGA6, AVR_ISA_RMW, "__AVR_ATxmega384C3__", 0x2000, 0x0, 0x62000, 0) ! AVR_MCU ("atxmega384d3", ARCH_AVRXMEGA6, AVR_ISA_NONE, "__AVR_ATxmega384D3__", 0x2000, 0x0, 0x62000, 0) /* Xmega, 128K < Flash, RAM > 64K RAM. */ ! AVR_MCU ("avrxmega7", ARCH_AVRXMEGA7, AVR_ISA_NONE, NULL, 0x2000, 0x0, 0x22000, 0) ! AVR_MCU ("atxmega128a1", ARCH_AVRXMEGA7, AVR_ISA_NONE, "__AVR_ATxmega128A1__", 0x2000, 0x0, 0x22000, 0) ! AVR_MCU ("atxmega128a1u", ARCH_AVRXMEGA7, AVR_ISA_RMW, "__AVR_ATxmega128A1U__", 0x2000, 0x0, 0x22000, 0) ! AVR_MCU ("atxmega128a4u", ARCH_AVRXMEGA7, AVR_ISA_RMW, "__AVR_ATxmega128A4U__", 0x2000, 0x0, 0x22000, 0) /* Tiny family */ ! AVR_MCU ("avrtiny", ARCH_AVRTINY, AVR_ISA_NONE, NULL, 0x0040, 0x0, 0x400, 0) ! AVR_MCU ("attiny4", ARCH_AVRTINY, AVR_ISA_LDS, "__AVR_ATtiny4__", 0x0040, 0x0, 0x200, 0) ! AVR_MCU ("attiny5", ARCH_AVRTINY, AVR_ISA_LDS, "__AVR_ATtiny5__", 0x0040, 0x0, 0x200, 0) ! AVR_MCU ("attiny9", ARCH_AVRTINY, AVR_ISA_LDS, "__AVR_ATtiny9__", 0x0040, 0x0, 0x400, 0) ! AVR_MCU ("attiny10", ARCH_AVRTINY, AVR_ISA_LDS, "__AVR_ATtiny10__", 0x0040, 0x0, 0x400, 0) ! AVR_MCU ("attiny20", ARCH_AVRTINY, AVR_ISA_LDS, "__AVR_ATtiny20__", 0x0040, 0x0, 0x800, 0) ! AVR_MCU ("attiny40", ARCH_AVRTINY, AVR_ISA_NONE, "__AVR_ATtiny40__", 0x0040, 0x0, 0x1000, 0) /* Assembler only. */ ! AVR_MCU ("avr1", ARCH_AVR1, AVR_ISA_NONE, NULL, 0x0060, 0x0, 0x400, 0) ! AVR_MCU ("at90s1200", ARCH_AVR1, AVR_ISA_NONE, "__AVR_AT90S1200__", 0x0060, 0x0, 0x400, 0) ! AVR_MCU ("attiny11", ARCH_AVR1, AVR_ISA_NONE, "__AVR_ATtiny11__", 0x0060, 0x0, 0x400, 0) ! AVR_MCU ("attiny12", ARCH_AVR1, AVR_ISA_NONE, "__AVR_ATtiny12__", 0x0060, 0x0, 0x400, 0) ! AVR_MCU ("attiny15", ARCH_AVR1, AVR_ISA_NONE, "__AVR_ATtiny15__", 0x0060, 0x0, 0x400, 0) ! AVR_MCU ("attiny28", ARCH_AVR1, AVR_ISA_NONE, "__AVR_ATtiny28__", 0x0060, 0x0, 0x800, 0) diff -Nrcpad gcc-8.3.0/gcc/config/avr/avr.c gcc-8.4.0/gcc/config/avr/avr.c *** gcc-8.3.0/gcc/config/avr/avr.c Thu Feb 1 15:54:20 2018 --- gcc-8.4.0/gcc/config/avr/avr.c Wed Mar 4 08:30:00 2020 *************** avr_out_lpm (rtx_insn *insn, rtx *op, in *** 3797,3809 **** gcc_unreachable(); case 1: ! return avr_asm_len ("%4lpm %0,%a2", xop, plen, 1); case 2: if (REGNO (dest) == REG_Z) ! return avr_asm_len ("%4lpm %5,%a2+" CR_TAB ! "%4lpm %B0,%a2" CR_TAB ! "mov %A0,%5", xop, plen, 3); else { avr_asm_len ("%4lpm %A0,%a2+" CR_TAB --- 3797,3810 ---- gcc_unreachable(); case 1: ! avr_asm_len ("%4lpm %0,%a2", xop, plen, 1); ! break; case 2: if (REGNO (dest) == REG_Z) ! avr_asm_len ("%4lpm %5,%a2+" CR_TAB ! "%4lpm %B0,%a2" CR_TAB ! "mov %A0,%5", xop, plen, 3); else { avr_asm_len ("%4lpm %A0,%a2+" CR_TAB *************** avr_out_lpm (rtx_insn *insn, rtx *op, in *** 3832,3840 **** "%4lpm %B0,%a2+", xop, plen, 2); if (REGNO (dest) == REG_Z - 2) ! return avr_asm_len ("%4lpm %5,%a2+" CR_TAB ! "%4lpm %C0,%a2" CR_TAB ! "mov %D0,%5", xop, plen, 3); else { avr_asm_len ("%4lpm %C0,%a2+" CR_TAB --- 3833,3841 ---- "%4lpm %B0,%a2+", xop, plen, 2); if (REGNO (dest) == REG_Z - 2) ! avr_asm_len ("%4lpm %5,%a2+" CR_TAB ! "%4lpm %C0,%a2" CR_TAB ! "mov %D0,%5", xop, plen, 3); else { avr_asm_len ("%4lpm %C0,%a2+" CR_TAB diff -Nrcpad gcc-8.3.0/gcc/config/avr/avr.opt gcc-8.4.0/gcc/config/avr/avr.opt *** gcc-8.3.0/gcc/config/avr/avr.opt Tue Jan 9 10:38:45 2018 --- gcc-8.4.0/gcc/config/avr/avr.opt Wed Mar 4 08:30:00 2020 *************** Assume that all data in static storage c *** 118,120 **** --- 118,124 ---- nodevicelib Driver Target Report RejectNegative Do not link against the device-specific library lib.a. + + nodevicespecs + Driver Target Report RejectNegative + Do not use the device-specific specs file device-specs/specs-. diff -Nrcpad gcc-8.3.0/gcc/config/avr/driver-avr.c gcc-8.4.0/gcc/config/avr/driver-avr.c *** gcc-8.3.0/gcc/config/avr/driver-avr.c Wed Jan 3 10:03:58 2018 --- gcc-8.4.0/gcc/config/avr/driver-avr.c Wed Mar 4 08:30:00 2020 *************** along with GCC; see the file COPYING3. *** 26,33 **** #include "diagnostic.h" #include "tm.h" ! // Remove -nodevicelib from the command line if not needed ! #define X_NODEVLIB "%\n" "#\n" "# will include the desired device header. For ATmega8A the supplement\n" ! "# to *cpp would read\n" "#\n" "# -D__AVR_DEV_LIB_NAME__=m8a\n" "\n"; --- 97,103 ---- "# #include \n" "#\n" "# will include the desired device header. For ATmega8A the supplement\n" ! "# to *cpp_avrlibc would read\n" "#\n" "# -D__AVR_DEV_LIB_NAME__=m8a\n" "\n"; *************** print_mcu (const avr_mcu_t *mcu) *** 140,145 **** --- 132,145 ---- bool rcall = (mcu->dev_attribute & AVR_ISA_RCALL); bool is_arch = mcu->macro == NULL; bool is_device = ! is_arch; + int flash_pm_offset = 0; + + if (arch->flash_pm_offset + && mcu->flash_pm_offset + && mcu->flash_pm_offset != arch->flash_pm_offset) + { + flash_pm_offset = mcu->flash_pm_offset; + } if (is_arch && (ARCH_AVR2 == arch_id *************** print_mcu (const avr_mcu_t *mcu) *** 253,259 **** fprintf (f, "*link_relax:\n\t%s\n\n", LINK_RELAX_SPEC); ! fprintf (f, "*link_arch:\n\t%s\n\n", LINK_ARCH_SPEC); if (is_device) { --- 253,263 ---- fprintf (f, "*link_relax:\n\t%s\n\n", LINK_RELAX_SPEC); ! fprintf (f, "*link_arch:\n\t%s", LINK_ARCH_SPEC); ! if (is_device ! && flash_pm_offset) ! fprintf (f, " --defsym=__RODATA_PM_OFFSET__=0x%x", flash_pm_offset); ! fprintf (f, "\n\n"); if (is_device) { *************** print_mcu (const avr_mcu_t *mcu) *** 281,290 **** #if defined (WITH_AVRLIBC) fprintf (f, "%s\n", help_dev_lib_name); #endif // WITH_AVRLIBC fprintf (f, "*cpp:\n"); ! fprintf (f, "\t-D%s -D__AVR_DEVICE_NAME__=%s", mcu->macro, mcu->name); fprintf (f, "\n\n"); } --- 285,310 ---- #if defined (WITH_AVRLIBC) fprintf (f, "%s\n", help_dev_lib_name); + + fprintf (f, "*cpp_avrlibc:\n"); + fprintf (f, "\t-D__AVR_DEVICE_NAME__=%s", mcu->name); + fprintf (f, "\n\n"); #endif // WITH_AVRLIBC + fprintf (f, "*cpp_mcu:\n"); + fprintf (f, "\t-D%s", mcu->macro); + if (flash_pm_offset) + { + fprintf (f, " -U__AVR_PM_BASE_ADDRESS__"); + fprintf (f, " -D__AVR_PM_BASE_ADDRESS__=0x%x", flash_pm_offset); + } + fprintf (f, "\n\n"); + fprintf (f, "*cpp:\n"); ! fprintf (f, "\t%%(cpp_mcu)"); ! #if defined (WITH_AVRLIBC) ! fprintf (f, " %%(cpp_avrlibc)"); ! #endif // WITH_AVRLIBC fprintf (f, "\n\n"); } diff -Nrcpad gcc-8.3.0/gcc/config/avr/gen-avr-mmcu-texi.c gcc-8.4.0/gcc/config/avr/gen-avr-mmcu-texi.c *** gcc-8.3.0/gcc/config/avr/gen-avr-mmcu-texi.c Wed Jan 3 10:03:58 2018 --- gcc-8.4.0/gcc/config/avr/gen-avr-mmcu-texi.c Wed Mar 4 08:30:00 2020 *************** *** 25,32 **** #include "avr-devices.c" ! static const char* ! mcu_name[sizeof avr_mcu_types / sizeof avr_mcu_types[0]]; static int letter (char c) { --- 25,32 ---- #include "avr-devices.c" ! static const avr_mcu_t* ! mcus[sizeof avr_mcu_types / sizeof avr_mcu_types[0]]; static int letter (char c) { *************** static int digit (char c) *** 39,62 **** } static int comparator (const void *va, const void *vb) { ! const char *a = *(const char* const*) va; ! const char *b = *(const char* const*) vb; while (*a && *b) { ! /* Make letters smaller than digits so that `atmega16a' follows ! `atmega16' without `atmega161' etc. between them. */ ! ! if (letter (*a) && digit (*b)) ! return -1; ! ! if (digit (*a) && letter (*b)) ! return 1; if (*a != *b) ! return *a - *b; a++; b++; --- 39,121 ---- } static int + str_prefix_p (const char *str, const char *prefix) + { + return strncmp (str, prefix, strlen (prefix)) == 0; + } + + + /* Used by string comparator to group MCUs by their + name prefix like "attiny" or "atmega". */ + + static int + c_prefix (const char *str) + { + static const char *const prefixes[] = + { + "attiny", "atmega", "atxmega", "ata", "at90" + }; + + int i, n = (int) (sizeof (prefixes) / sizeof (*prefixes)); + + for (i = 0; i < n; i++) + if (str_prefix_p (str, prefixes[i])) + return i; + + return n; + } + + + /* If A starts a group of digits, return their value as a number. */ + + static int + c_number (const char *a) + { + int val = 0; + + if (digit (*a) && ! digit (*(a-1))) + { + while (digit (*a)) + val = 10 * val + (*a++) - '0'; + } + + return val; + } + + + /* Compare two MCUs and order them for easy lookup. */ + + static int comparator (const void *va, const void *vb) { ! const avr_mcu_t *mcu_a = *(const avr_mcu_t* const*) va; ! const avr_mcu_t *mcu_b = *(const avr_mcu_t* const*) vb; ! const char *a = mcu_a->name; ! const char *b = mcu_b->name; ! ! // First, group MCUs according to their pure-letter prefix. ! ! int c = c_prefix (a) - c_prefix (b); ! if (c) ! return c; ! ! // Second, if their prefixes are the same, group according to ! // their flash size. ! ! c = (int) mcu_a->flash_size - (int) mcu_b->flash_size; ! if (c) ! return c; ! ! // Third, group according to aligned groups of digits. while (*a && *b) { ! c = c_number (a) - c_number (b); ! if (c) ! return c; if (*a != *b) ! return *a - *b; a++; b++; *************** print_mcus (size_t n_mcus) *** 74,94 **** if (!n_mcus) return; ! qsort (mcu_name, n_mcus, sizeof (char*), comparator); printf ("@*@var{mcu}@tie{}="); for (i = 0; i < n_mcus; i++) { ! printf (" @code{%s}%s", mcu_name[i], i == n_mcus-1 ? ".\n\n" : ","); ! if (i && !strcmp (mcu_name[i], mcu_name[i-1])) ! { ! /* Sanity-check: Fail on devices that are present more than once. */ ! duplicate = 1; ! fprintf (stderr, "error: duplicate device: %s\n", mcu_name[i]); ! } } if (duplicate) --- 133,153 ---- if (!n_mcus) return; ! qsort (mcus, n_mcus, sizeof (avr_mcu_t*), comparator); printf ("@*@var{mcu}@tie{}="); for (i = 0; i < n_mcus; i++) { ! printf (" @code{%s}%s", mcus[i]->name, i == n_mcus-1 ? ".\n\n" : ","); ! if (i && !strcmp (mcus[i]->name, mcus[i-1]->name)) ! { ! // Sanity-check: Fail on devices that are present more than once. ! duplicate = 1; ! fprintf (stderr, "error: duplicate device: %s\n", mcus[i]->name); ! } } if (duplicate) *************** int main (void) *** 104,116 **** printf ("@c Copyright (C) 2012-2018 Free Software Foundation, Inc.\n"); printf ("@c This is part of the GCC manual.\n"); printf ("@c For copying conditions, see the file " ! "gcc/doc/include/fdl.texi.\n\n"); printf ("@c This file is generated automatically using\n"); printf ("@c gcc/config/avr/gen-avr-mmcu-texi.c from:\n"); ! printf ("@c gcc/config/avr/avr-arch.h\n"); ! printf ("@c gcc/config/avr/avr-devices.c\n"); ! printf ("@c gcc/config/avr/avr-mcus.def\n\n"); printf ("@c Please do not edit manually.\n\n"); --- 163,175 ---- printf ("@c Copyright (C) 2012-2018 Free Software Foundation, Inc.\n"); printf ("@c This is part of the GCC manual.\n"); printf ("@c For copying conditions, see the file " ! "gcc/doc/include/fdl.texi.\n\n"); printf ("@c This file is generated automatically using\n"); printf ("@c gcc/config/avr/gen-avr-mmcu-texi.c from:\n"); ! printf ("@c gcc/config/avr/avr-arch.h\n"); ! printf ("@c gcc/config/avr/avr-devices.c\n"); ! printf ("@c gcc/config/avr/avr-mcus.def\n\n"); printf ("@c Please do not edit manually.\n\n"); *************** int main (void) *** 119,140 **** for (mcu = avr_mcu_types; mcu->name; mcu++) { if (mcu->macro == NULL) ! { ! arch_id = mcu->arch_id; ! ! /* Start a new architecture: Flush the MCUs collected so far. */ ! print_mcus (n_mcus); ! n_mcus = 0; ! for (i = 0; i < sizeof (avr_texinfo) / sizeof (*avr_texinfo); i++) ! if (arch_id == avr_texinfo[i].arch_id) ! printf ("@item %s\n%s\n", mcu->name, avr_texinfo[i].texinfo); ! } else if (arch_id == (enum avr_arch_id) mcu->arch_id) ! { ! mcu_name[n_mcus++] = mcu->name; ! } } print_mcus (n_mcus); --- 178,198 ---- for (mcu = avr_mcu_types; mcu->name; mcu++) { if (mcu->macro == NULL) ! { ! arch_id = mcu->arch_id; ! // Start a new architecture: Flush the MCUs collected so far. ! print_mcus (n_mcus); ! n_mcus = 0; ! for (i = 0; i < sizeof (avr_texinfo) / sizeof (*avr_texinfo); i++) ! if (arch_id == avr_texinfo[i].arch_id) ! printf ("@item %s\n%s\n", mcu->name, avr_texinfo[i].texinfo); ! } else if (arch_id == (enum avr_arch_id) mcu->arch_id) ! { ! mcus[n_mcus++] = mcu; ! } } print_mcus (n_mcus); diff -Nrcpad gcc-8.3.0/gcc/config/darwin-c.c gcc-8.4.0/gcc/config/darwin-c.c *** gcc-8.3.0/gcc/config/darwin-c.c Wed Jan 3 10:03:58 2018 --- gcc-8.4.0/gcc/config/darwin-c.c Wed Mar 4 08:30:00 2020 *************** static const char *framework_defaults [] *** 463,503 **** /* Register the GNU objective-C runtime include path if STDINC. */ void ! darwin_register_objc_includes (const char *sysroot, const char *iprefix, ! int stdinc) { ! const char *fname; ! size_t len; ! /* We do not do anything if we do not want the standard includes. */ ! if (!stdinc) ! return; ! ! fname = GCC_INCLUDE_DIR "-gnu-runtime"; ! ! /* Register the GNU OBJC runtime include path if we are compiling OBJC ! with GNU-runtime. */ ! if (c_dialect_objc () && !flag_next_runtime) { char *str; ! /* See if our directory starts with the standard prefix. "Translate" them, i.e. replace /usr/local/lib/gcc... with IPREFIX and search them first. */ ! if (iprefix && (len = cpp_GCC_INCLUDE_DIR_len) != 0 && !sysroot && !strncmp (fname, cpp_GCC_INCLUDE_DIR, len)) { str = concat (iprefix, fname + len, NULL); ! /* FIXME: wrap the headers for C++awareness. */ ! add_path (str, INC_SYSTEM, /*c++aware=*/false, false); } ! /* Should this directory start with the sysroot? */ ! if (sysroot) ! str = concat (sysroot, fname, NULL); ! else ! str = update_path (fname, ""); ! ! add_path (str, INC_SYSTEM, /*c++aware=*/false, false); } } --- 463,494 ---- /* Register the GNU objective-C runtime include path if STDINC. */ void ! darwin_register_objc_includes (const char *sysroot ATTRIBUTE_UNUSED, ! const char *iprefix, int stdinc) { ! /* If we want standard includes; Register the GNU OBJC runtime include ! path if we are compiling OBJC with GNU-runtime. ! This path is compiler-relative, we don't want to prepend the sysroot ! since it's not expected to find the headers there. */ ! if (stdinc && c_dialect_objc () && !flag_next_runtime) { + const char *fname = GCC_INCLUDE_DIR "-gnu-runtime"; char *str; ! size_t len; ! ! /* See if our directory starts with the standard prefix. "Translate" them, i.e. replace /usr/local/lib/gcc... with IPREFIX and search them first. */ ! if (iprefix && (len = cpp_GCC_INCLUDE_DIR_len) != 0 && !strncmp (fname, cpp_GCC_INCLUDE_DIR, len)) { str = concat (iprefix, fname + len, NULL); ! add_path (str, INC_SYSTEM, /*c++aware=*/true, false); } ! str = update_path (fname, ""); ! add_path (str, INC_SYSTEM, /*c++aware=*/true, false); } } diff -Nrcpad gcc-8.3.0/gcc/config/darwin-driver.c gcc-8.4.0/gcc/config/darwin-driver.c *** gcc-8.3.0/gcc/config/darwin-driver.c Wed Jan 3 10:03:58 2018 --- gcc-8.4.0/gcc/config/darwin-driver.c Wed Mar 4 08:30:00 2020 *************** along with GCC; see the file COPYING3. *** 26,31 **** --- 26,116 ---- #include "opts.h" #include "diagnostic-core.h" + /* Validate a version string (either given on the command line or, perhaps + as MACOSX_DEPLOYMENT_TARGET). + + The specs %version-compare() function doesn't accept leading '0' on + numbers so strip them out. Do sanity checking here too. + + Return: + * original string means it was OK and we didn't want to change it. + * new string means it was OK but we rewrote it to avoid possible format + problems. + * NULL means we didn't like what we saw. + */ + + static const char * + validate_macosx_version_min (const char *version_str) + { + size_t version_len; + unsigned long major, minor, tiny = 0; + char *end; + const char *old_version = version_str; + bool need_rewrite = false; + + version_len = strlen (version_str); + if (version_len < 4) /* The minimum would be 10.x */ + return NULL; + + /* Version string must consist of digits and periods only. */ + if (strspn (version_str, "0123456789.") != version_len) + return NULL; + + if (!ISDIGIT (version_str[0]) || !ISDIGIT (version_str[version_len - 1])) + return NULL; + + if (version_str[0] == '0') + need_rewrite = true; + + major = strtoul (version_str, &end, 10); + version_str = end + ((*end == '.') ? 1 : 0); + + if (major != 10) /* So far .. all MacOS 10 ... */ + return NULL; + + /* Version string components must be present and numeric. */ + if (!ISDIGIT (version_str[0])) + return NULL; + + /* If we have one or more leading zeros on a component, then rewrite the + version string. */ + if (version_str[0] == '0' && version_str[1] != '\0' + && version_str[1] != '.') + need_rewrite = true; + + minor = strtoul (version_str, &end, 10); + version_str = end + ((*end == '.') ? 1 : 0); + if (minor > 99) + return NULL; + + /* If 'tiny' is present it must be numeric. */ + if (*end != '\0' && !ISDIGIT (version_str[0])) + return NULL; + + /* If we have one or more leading zeros on a component, then rewrite the + version string. */ + if (*end != '\0' && version_str[0] == '0' + && version_str[1] != '\0') + need_rewrite = true; + + tiny = strtoul (version_str, &end, 10); + if (tiny > 99) + return NULL; + + /* Version string must contain no more than three tokens. */ + if (*end != '\0') + return NULL; + + if (need_rewrite) + { + char *new_version; + asprintf (&new_version, "10.%lu.%lu", minor, tiny); + return new_version; + } + + return old_version; + } + #ifndef CROSS_DIRECTORY_STRUCTURE #include #include "xregex.h" *************** darwin_default_min_version (void) *** 114,129 **** if (new_flag != NULL) { ! size_t len = strlen (new_flag); ! if (len > 128) { /* Arbitrary limit, number should be like xx.yy.zz */ ! warning (0, "couldn%'t understand version %s\n", new_flag); ! return NULL; ! } ! new_flag = xstrndup (new_flag, len); } return new_flag; } /* 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 --- 199,237 ---- if (new_flag != NULL) { ! const char *checked = validate_macosx_version_min (new_flag); ! if (checked == NULL) ! { ! warning (0, "couldn%'t understand version %s\n", new_flag); ! return NULL; ! } ! new_flag = xstrndup (checked, strlen (checked)); } return new_flag; } + /* See if we can find the sysroot from the SDKROOT environment variable. */ + + static const char * + maybe_get_sysroot_from_sdkroot () + { + const char *maybe_sysroot = getenv ("SDKROOT"); + + /* We'll use the same rules as the clang driver, for compatibility. + 1) The path must be absolute + 2) Ignore "/", that is the default anyway and we do not want the + sysroot semantics to be applied to it. + 3) It must exist (actually, we'll check it's readable too). */ + + if (maybe_sysroot == NULL + || *maybe_sysroot != '/' + || strlen (maybe_sysroot) == 1 + || access (maybe_sysroot, R_OK) == -1) + return NULL; + + 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 *************** darwin_driver_init (unsigned int *decode *** 148,153 **** --- 256,262 ---- bool appendM64 = false; const char *vers_string = NULL; bool seen_version_min = false; + bool seen_sysroot_p = false; for (i = 1; i < *decoded_options_count; i++) { *************** darwin_driver_init (unsigned int *decode *** 175,181 **** if (*decoded_options_count > i) { memmove (*decoded_options + i, *decoded_options + i + 1, ! ((*decoded_options_count - i) * sizeof (struct cl_decoded_option))); } --i; --- 284,290 ---- if (*decoded_options_count > i) { memmove (*decoded_options + i, *decoded_options + i + 1, ! ((*decoded_options_count - i - 1) * sizeof (struct cl_decoded_option))); } --i; *************** darwin_driver_init (unsigned int *decode *** 209,215 **** case OPT_mmacosx_version_min_: seen_version_min = true; ! vers_string = xstrndup ((*decoded_options)[i].arg, 32); default: break; --- 318,346 ---- case OPT_mmacosx_version_min_: seen_version_min = true; ! vers_string = ! validate_macosx_version_min ((*decoded_options)[i].arg); ! if (vers_string == NULL) ! warning (0, "%qs is not valid for %\n", ! (*decoded_options)[i].arg); ! else if (vers_string == (*decoded_options)[i].arg) ! vers_string = xstrndup ((*decoded_options)[i].arg, 32); ! /* Now we've examined it, and verified/re-written, put it to ! one side and append later. */ ! if (*decoded_options_count > i) { ! memmove (*decoded_options + i, ! *decoded_options + i + 1, ! ((*decoded_options_count - i - 1) ! * sizeof (struct cl_decoded_option))); ! } ! --i; ! --*decoded_options_count; ! break; ! ! case OPT__sysroot_: ! case OPT_isysroot: ! seen_sysroot_p = true; ! break; default: break; *************** darwin_driver_init (unsigned int *decode *** 272,297 **** &(*decoded_options)[*decoded_options_count - 1]); } ! /* 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 (); ! if (vers_string != NULL) { ++*decoded_options_count; *decoded_options = XRESIZEVEC (struct cl_decoded_option, *decoded_options, *decoded_options_count); ! generate_option (OPT_mmacosx_version_min_, vers_string, 1, CL_DRIVER, ! &(*decoded_options)[*decoded_options_count - 1]); } } ! /* Create and push the major version for assemblers that need it. */ if (vers_string != NULL) { char *asm_major = NULL; const char *first_period = strchr(vers_string, '.'); if (first_period != NULL) --- 403,442 ---- &(*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. */ ! const char *sdkroot = maybe_get_sysroot_from_sdkroot (); ! if (sdkroot) { ++*decoded_options_count; *decoded_options = XRESIZEVEC (struct cl_decoded_option, *decoded_options, *decoded_options_count); ! generate_option (OPT__sysroot_, sdkroot, 1, CL_DRIVER, ! &(*decoded_options)[*decoded_options_count - 1]); } } ! ! /* 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 (); ! ! /* Create and push a cleaned up version, plus the major version for ! assemblers and other cases that need it. */ if (vers_string != NULL) { + ++*decoded_options_count; + *decoded_options = XRESIZEVEC (struct cl_decoded_option, + *decoded_options, + *decoded_options_count); + generate_option (OPT_mmacosx_version_min_, vers_string, 1, CL_DRIVER, + &(*decoded_options)[*decoded_options_count - 1]); + char *asm_major = NULL; const char *first_period = strchr(vers_string, '.'); if (first_period != NULL) diff -Nrcpad gcc-8.3.0/gcc/config/darwin-protos.h gcc-8.4.0/gcc/config/darwin-protos.h *** gcc-8.3.0/gcc/config/darwin-protos.h Wed Jan 3 10:03:58 2018 --- gcc-8.4.0/gcc/config/darwin-protos.h Wed Mar 4 08:30:00 2020 *************** extern void darwin_set_default_type_attr *** 53,60 **** #endif /* TREE_CODE */ - extern void machopic_finish (FILE *); - extern int machopic_reloc_rw_mask (void); extern section *machopic_select_section (tree, int, unsigned HOST_WIDE_INT); --- 53,58 ---- diff -Nrcpad gcc-8.3.0/gcc/config/darwin.c gcc-8.4.0/gcc/config/darwin.c *** gcc-8.3.0/gcc/config/darwin.c Wed Dec 5 10:36:34 2018 --- gcc-8.4.0/gcc/config/darwin.c Wed Mar 4 08:30:00 2020 *************** along with GCC; see the file COPYING3. *** 74,88 **** setting the second word in the .non_lazy_symbol_pointer data structure to symbol. See indirect_data for the code that handles the extra indirection, and machopic_output_indirection and its use ! of MACHO_SYMBOL_STATIC for the code that handles @code{static} symbol indirection. */ - /* For darwin >= 9 (OSX 10.5) the linker is capable of making the necessary - branch islands and we no longer need to emit darwin stubs. - However, if we are generating code for earlier systems (or for use in the - kernel) the stubs might still be required, and this will be set true. */ - int darwin_emit_branch_islands = false; - typedef struct GTY(()) cdtor_record { rtx symbol; int priority; /* [con/de]structor priority */ --- 74,82 ---- setting the second word in the .non_lazy_symbol_pointer data structure to symbol. See indirect_data for the code that handles the extra indirection, and machopic_output_indirection and its use ! of MACHO_SYMBOL_FLAG_STATIC for the code that handles @code{static} symbol indirection. */ typedef struct GTY(()) cdtor_record { rtx symbol; int priority; /* [con/de]structor priority */ *************** int generating_for_darwin_version ; *** 104,109 **** --- 98,107 ---- for weak or single-definition items. */ static bool ld_uses_coal_sects = false; + /* Very old (ld_classic) linkers need a symbol to mark the start of + each FDE. */ + static bool ld_needs_eh_markers = false; + /* Section names. */ section * darwin_sections[NUM_DARWIN_SECTIONS]; *************** name_needs_quotes (const char *name) *** 249,255 **** int machopic_symbol_defined_p (rtx sym_ref) { ! if (SYMBOL_REF_FLAGS (sym_ref) & MACHO_SYMBOL_FLAG_DEFINED) return true; /* If a symbol references local and is not an extern to this --- 247,253 ---- int machopic_symbol_defined_p (rtx sym_ref) { ! if (MACHO_SYMBOL_DEFINED_P (sym_ref)) return true; /* If a symbol references local and is not an extern to this *************** machopic_symbol_defined_p (rtx sym_ref) *** 258,264 **** { /* If the symbol references a variable and the variable is a common symbol, then this symbol is not defined. */ ! if (SYMBOL_REF_FLAGS (sym_ref) & MACHO_SYMBOL_FLAG_VARIABLE) { tree decl = SYMBOL_REF_DECL (sym_ref); if (!decl) --- 256,262 ---- { /* If the symbol references a variable and the variable is a common symbol, then this symbol is not defined. */ ! if (MACHO_SYMBOL_VARIABLE_P (sym_ref)) { tree decl = SYMBOL_REF_DECL (sym_ref); if (!decl) *************** typedef struct GTY ((for_user)) machopic *** 454,459 **** --- 452,464 ---- bool stub_p; /* True iff this stub or pointer has been referenced. */ bool used; + /* True iff a non-lazy symbol pointer should be emitted into the .data + section, rather than the non-lazy symbol pointers section. The cases + for which this occurred seem to have been unintentional, and later + toolchains emit all of the indirections to the 'usual' section. We + are keeping this in case it is necessary to preserve compatibility with + older toolchains. */ + bool nlsp_in_data_section; } machopic_indirection; struct indirection_hasher : ggc_ptr_hash *************** indirection_hasher::equal (machopic_indi *** 488,494 **** /* Return the name of the non-lazy pointer (if STUB_P is false) or stub (if STUB_B is true) corresponding to the given name. ! If we have a situation like: global_weak_symbol: .... --- 493,499 ---- /* Return the name of the non-lazy pointer (if STUB_P is false) or stub (if STUB_B is true) corresponding to the given name. ! PR71767 - If we have a situation like: global_weak_symbol: .... *************** Lnon_weak_local: *** 497,532 **** ld64 will be unable to split this into two atoms (because the "L" makes the second symbol 'invisible'). This means that legitimate direct accesses ! to the second symbol will appear to be non-allowed direct accesses to an ! atom of type weak, global which are not allowed. ! ! To avoid this, we make the indirections have a leading 'l' (lower-case L) ! which has a special meaning: linker can see this and use it to determine ! atoms, but it is not placed into the final symbol table. ! The implementation here is somewhat heavy-handed in that it will also mark ! indirections to the __IMPORT,__pointers section the same way which is ! really unnecessary, since ld64 _can_ split those into atoms as they are ! fixed size. FIXME: determine if this is a penalty worth extra code to ! fix. */ const char * machopic_indirection_name (rtx sym_ref, bool stub_p) { - char *buffer; const char *name = XSTR (sym_ref, 0); ! size_t namelen = strlen (name); ! machopic_indirection *p; ! bool needs_quotes; ! const char *suffix; ! char L_or_l = 'L'; ! const char *prefix = user_label_prefix; ! const char *quote = ""; ! tree id; ! ! id = maybe_get_identifier (name); if (id) { tree id_orig = id; --- 502,523 ---- ld64 will be unable to split this into two atoms (because the "L" makes the second symbol 'invisible'). This means that legitimate direct accesses ! to the second symbol will appear to be direct accesses to an atom of type ! weak, global which are not allowed. ! To avoid this, we make any data-section indirections have a leading 'l' ! (lower-case L) which has a special meaning: linker can see this and use ! it to determine atoms, but it is not placed into the final symbol table. + Symbols in the non-lazy symbol pointers section (or stubs) do not have this + problem because ld64 already knows the size of each entry. */ const char * machopic_indirection_name (rtx sym_ref, bool stub_p) { const char *name = XSTR (sym_ref, 0); ! tree id = maybe_get_identifier (name); if (id) { tree id_orig = id; *************** machopic_indirection_name (rtx sym_ref, *** 534,576 **** while (IDENTIFIER_TRANSPARENT_ALIAS (id)) id = TREE_CHAIN (id); if (id != id_orig) ! { ! name = IDENTIFIER_POINTER (id); ! namelen = strlen (name); ! } } if (name[0] == '*') { prefix = ""; ++name; - --namelen; - } - - needs_quotes = name_needs_quotes (name); - if (needs_quotes) - { - quote = "\""; } ! if (stub_p) ! suffix = STUB_SUFFIX; ! else ! { ! suffix = NON_LAZY_POINTER_SUFFIX; ! /* Let the linker see this. */ ! L_or_l = 'l'; ! } ! buffer = XALLOCAVEC (char, 2 /* strlen ("&L") or ("&l") */ ! + strlen (prefix) ! + namelen ! + strlen (suffix) ! + 2 * strlen (quote) ! + 1 /* '\0' */); /* Construct the name of the non-lazy pointer or stub. */ ! sprintf (buffer, "&%s%c%s%s%s%s", quote, L_or_l, prefix, name, suffix, quote); if (!machopic_indirections) machopic_indirections = hash_table::create_ggc (37); --- 525,571 ---- while (IDENTIFIER_TRANSPARENT_ALIAS (id)) id = TREE_CHAIN (id); if (id != id_orig) ! name = IDENTIFIER_POINTER (id); } + const char *prefix = user_label_prefix; + /* If we are emitting the label 'verbatim' then omit the U_L_P and count + the name without the leading '*'. */ if (name[0] == '*') { prefix = ""; ++name; } ! /* Here we are undoing a number of causes that placed some indirections ! (apparently erroneously) into the .data section. Specifically, some ! symbols that are ABI mandated indirections and some hidden symbols ! were being placed there - which cause difficulties with later ! versions of ld64. Iff (after these checks) some symbol still gets an ! indirection in the data section, we want to adjust the indirection ! name to be linker visible to deal with PR71767 (notes above). */ ! bool nlsp_in_data_section = ! ! MACHO_SYMBOL_MUST_INDIRECT_P (sym_ref) ! && ! MACHO_SYMBOL_HIDDEN_VIS_P (sym_ref) ! && (machopic_symbol_defined_p (sym_ref) || SYMBOL_REF_LOCAL_P (sym_ref)) ! && ! indirect_data (sym_ref); ! const char *suffix = stub_p ? STUB_SUFFIX : NON_LAZY_POINTER_SUFFIX; ! /* If the indirection is in the data section, let the linker see it. */ ! char L_or_l = (!stub_p && nlsp_in_data_section) ? 'l' : 'L'; ! /* We have mangled symbols with spaces and punctuation which typically ! need surrounding in quotes for the assembler to consume them. */ ! const char *quote = name_needs_quotes (name) ? "\"" : ""; ! char *buffer = XALLOCAVEC (char, 2 /* strlen ("&L") or ("&l") */ ! + strlen (prefix) ! + strlen (name) ! + strlen (suffix) ! + 2 * strlen (quote) ! + 1 /* '\0' */); /* Construct the name of the non-lazy pointer or stub. */ ! sprintf (buffer, "&%s%c%s%s%s%s", quote, L_or_l, prefix, name, ! suffix, quote); if (!machopic_indirections) machopic_indirections = hash_table::create_ggc (37); *************** machopic_indirection_name (rtx sym_ref, *** 579,588 **** = machopic_indirections->find_slot_with_hash (buffer, htab_hash_string (buffer), INSERT); if (*slot) ! { ! p = *slot; ! } else { p = ggc_alloc (); --- 574,582 ---- = machopic_indirections->find_slot_with_hash (buffer, htab_hash_string (buffer), INSERT); + machopic_indirection *p; if (*slot) ! p = *slot; else { p = ggc_alloc (); *************** machopic_indirection_name (rtx sym_ref, *** 590,595 **** --- 584,590 ---- p->ptr_name = xstrdup (buffer); p->stub_p = stub_p; p->used = false; + p->nlsp_in_data_section = nlsp_in_data_section; *slot = p; } *************** machopic_indirect_data_reference (rtx or *** 665,671 **** /* some other cpu -- writeme! */ gcc_unreachable (); } ! else if (defined) { rtx offset = NULL; if (DARWIN_PPC || HAVE_lo_sum) --- 660,666 ---- /* some other cpu -- writeme! */ gcc_unreachable (); } ! else if (defined && ! MACHO_SYMBOL_MUST_INDIRECT_P (orig)) { rtx offset = NULL; if (DARWIN_PPC || HAVE_lo_sum) *************** machopic_indirect_data_reference (rtx or *** 707,712 **** --- 702,708 ---- machopic_indirection_name (orig, /*stub_p=*/false))); SYMBOL_REF_DATA (ptr_ref) = SYMBOL_REF_DATA (orig); + SYMBOL_REF_FLAGS (ptr_ref) |= MACHO_SYMBOL_FLAG_INDIRECTION; ptr_ref = gen_const_mem (Pmode, ptr_ref); machopic_define_symbol (ptr_ref); *************** machopic_indirect_data_reference (rtx or *** 789,795 **** rtx machopic_indirect_call_target (rtx target) { ! if (! darwin_emit_branch_islands) return target; if (GET_CODE (target) != MEM) --- 785,791 ---- rtx machopic_indirect_call_target (rtx target) { ! if (! darwin_symbol_stubs) return target; if (GET_CODE (target) != MEM) *************** machopic_indirect_call_target (rtx targe *** 797,804 **** if (MACHOPIC_INDIRECT && GET_CODE (XEXP (target, 0)) == SYMBOL_REF ! && !(SYMBOL_REF_FLAGS (XEXP (target, 0)) ! & MACHO_SYMBOL_FLAG_DEFINED)) { rtx sym_ref = XEXP (target, 0); const char *stub_name = machopic_indirection_name (sym_ref, --- 793,799 ---- if (MACHOPIC_INDIRECT && GET_CODE (XEXP (target, 0)) == SYMBOL_REF ! && ! MACHO_SYMBOL_DEFINED_P (XEXP (target, 0))) { rtx sym_ref = XEXP (target, 0); const char *stub_name = machopic_indirection_name (sym_ref, *************** machopic_indirect_call_target (rtx targe *** 807,812 **** --- 802,808 ---- XEXP (target, 0) = gen_rtx_SYMBOL_REF (mode, stub_name); SYMBOL_REF_DATA (XEXP (target, 0)) = SYMBOL_REF_DATA (sym_ref); + SYMBOL_REF_FLAGS (XEXP (target, 0)) |= MACHO_SYMBOL_FLAG_INDIRECTION; MEM_READONLY_P (target) = 1; MEM_NOTRAP_P (target) = 1; } *************** machopic_legitimize_pic_address (rtx ori *** 844,850 **** { if (reg == 0) { ! gcc_assert (!reload_in_progress); reg = gen_reg_rtx (Pmode); } --- 840,846 ---- { if (reg == 0) { ! gcc_assert (!lra_in_progress); reg = gen_reg_rtx (Pmode); } *************** machopic_legitimize_pic_address (rtx ori *** 928,934 **** emit_use (gen_rtx_REG (Pmode, PIC_OFFSET_TABLE_REGNUM)); #endif ! if (reload_in_progress) df_set_regs_ever_live (REGNO (pic), true); pic_ref = gen_rtx_PLUS (Pmode, pic, machopic_gen_offset (XEXP (orig, 0))); --- 924,930 ---- emit_use (gen_rtx_REG (Pmode, PIC_OFFSET_TABLE_REGNUM)); #endif ! if (lra_in_progress) df_set_regs_ever_live (REGNO (pic), true); pic_ref = gen_rtx_PLUS (Pmode, pic, machopic_gen_offset (XEXP (orig, 0))); *************** machopic_legitimize_pic_address (rtx ori *** 952,958 **** if (reg == 0) { ! gcc_assert (!reload_in_progress); reg = gen_reg_rtx (Pmode); } --- 948,954 ---- if (reg == 0) { ! gcc_assert (!lra_in_progress); reg = gen_reg_rtx (Pmode); } *************** machopic_legitimize_pic_address (rtx ori *** 998,1004 **** #if 0 emit_use (pic_offset_table_rtx); #endif ! if (reload_in_progress) df_set_regs_ever_live (REGNO (pic), true); pic_ref = gen_rtx_PLUS (Pmode, pic, --- 994,1000 ---- #if 0 emit_use (pic_offset_table_rtx); #endif ! if (lra_in_progress) df_set_regs_ever_live (REGNO (pic), true); pic_ref = gen_rtx_PLUS (Pmode, pic, *************** machopic_legitimize_pic_address (rtx ori *** 1075,1203 **** return pic_ref; } ! /* Output the stub or non-lazy pointer in *SLOT, if it has been used. ! DATA is the FILE* for assembly output. Called from ! htab_traverse. */ int ! machopic_output_indirection (machopic_indirection **slot, FILE *asm_out_file) { machopic_indirection *p = *slot; - rtx symbol; - const char *sym_name; - const char *ptr_name; ! if (!p->used) return 1; ! symbol = p->symbol; ! sym_name = XSTR (symbol, 0); ! ptr_name = p->ptr_name; ! if (p->stub_p) ! { ! char *sym; ! char *stub; ! tree id; ! id = maybe_get_identifier (sym_name); ! if (id) ! { ! tree id_orig = id; ! while (IDENTIFIER_TRANSPARENT_ALIAS (id)) ! id = TREE_CHAIN (id); ! if (id != id_orig) ! sym_name = IDENTIFIER_POINTER (id); ! } ! sym = XALLOCAVEC (char, strlen (sym_name) + 2); ! if (sym_name[0] == '*' || sym_name[0] == '&') ! strcpy (sym, sym_name + 1); ! else if (sym_name[0] == '-' || sym_name[0] == '+') ! strcpy (sym, sym_name); ! else ! sprintf (sym, "%s%s", user_label_prefix, sym_name); ! stub = XALLOCAVEC (char, strlen (ptr_name) + 2); ! if (ptr_name[0] == '*' || ptr_name[0] == '&') ! strcpy (stub, ptr_name + 1); ! else ! sprintf (stub, "%s%s", user_label_prefix, ptr_name); ! machopic_output_stub (asm_out_file, sym, stub); ! } ! else if (! indirect_data (symbol) ! && (machopic_symbol_defined_p (symbol) ! || SYMBOL_REF_LOCAL_P (symbol))) { ! switch_to_section (data_section); ! assemble_align (GET_MODE_ALIGNMENT (Pmode)); ! assemble_label (asm_out_file, ptr_name); ! assemble_integer (gen_rtx_SYMBOL_REF (Pmode, sym_name), ! GET_MODE_SIZE (Pmode), ! GET_MODE_ALIGNMENT (Pmode), 1); } else ! { ! rtx init = const0_rtx; ! switch_to_section (darwin_sections[machopic_nl_symbol_ptr_section]); ! /* Mach-O symbols are passed around in code through indirect ! references and the original symbol_ref hasn't passed through ! the generic handling and reference-catching in ! output_operand, so we need to manually mark weak references ! as such. */ ! if (SYMBOL_REF_WEAK (symbol)) ! { ! tree decl = SYMBOL_REF_DECL (symbol); ! gcc_assert (DECL_P (decl)); ! if (decl != NULL_TREE ! && DECL_EXTERNAL (decl) && TREE_PUBLIC (decl) ! /* Handle only actual external-only definitions, not ! e.g. extern inline code or variables for which ! storage has been allocated. */ ! && !TREE_STATIC (decl)) ! { ! fputs ("\t.weak_reference ", asm_out_file); ! assemble_name (asm_out_file, sym_name); ! fputc ('\n', asm_out_file); ! } ! } ! assemble_name (asm_out_file, ptr_name); ! fprintf (asm_out_file, ":\n"); ! fprintf (asm_out_file, "\t.indirect_symbol "); ! assemble_name (asm_out_file, sym_name); ! fprintf (asm_out_file, "\n"); ! /* Variables that are marked with MACHO_SYMBOL_STATIC need to ! have their symbol name instead of 0 in the second entry of ! the non-lazy symbol pointer data structure when they are ! defined. This allows the runtime to rebind newer instances ! of the translation unit with the original instance of the ! symbol. */ ! if ((SYMBOL_REF_FLAGS (symbol) & MACHO_SYMBOL_STATIC) ! && machopic_symbol_defined_p (symbol)) ! init = gen_rtx_SYMBOL_REF (Pmode, sym_name); ! assemble_integer (init, GET_MODE_SIZE (Pmode), ! GET_MODE_ALIGNMENT (Pmode), 1); } return 1; } ! void machopic_finish (FILE *asm_out_file) { ! if (machopic_indirections) ! machopic_indirections ! ->traverse_noresize (asm_out_file); } int --- 1071,1230 ---- return pic_ref; } ! /* Callbacks to output the stub or non-lazy pointers. ! Each works on the item in *SLOT,if it has been used. ! DATA is the FILE* for assembly output. ! Called from htab_traverses, invoked from machopic_finish(). */ int ! machopic_output_data_section_indirection (machopic_indirection **slot, ! FILE *asm_out_file) { machopic_indirection *p = *slot; ! if (!p->used || !p->nlsp_in_data_section) return 1; ! rtx symbol = p->symbol; ! /* The original symbol name. */ ! const char *sym_name = XSTR (symbol, 0); ! /* The name of the indirection symbol. */ ! const char *ptr_name = p->ptr_name; ! switch_to_section (data_section); ! assemble_align (GET_MODE_ALIGNMENT (Pmode)); ! assemble_label (asm_out_file, ptr_name); ! assemble_integer (gen_rtx_SYMBOL_REF (Pmode, sym_name), ! GET_MODE_SIZE (Pmode), ! GET_MODE_ALIGNMENT (Pmode), 1); ! return 1; ! } ! int ! machopic_output_stub_indirection (machopic_indirection **slot, ! FILE *asm_out_file) ! { ! machopic_indirection *p = *slot; ! if (!p->used || !p->stub_p) ! return 1; ! rtx symbol = p->symbol; ! /* The original symbol name. */ ! const char *sym_name = XSTR (symbol, 0); ! /* The name of the stub symbol. */ ! const char *ptr_name = p->ptr_name; ! tree id = maybe_get_identifier (sym_name); ! if (id) { ! tree id_orig = id; ! ! while (IDENTIFIER_TRANSPARENT_ALIAS (id)) ! id = TREE_CHAIN (id); ! if (id != id_orig) ! sym_name = IDENTIFIER_POINTER (id); } + + char *sym = XALLOCAVEC (char, strlen (sym_name) + 2); + if (sym_name[0] == '*' || sym_name[0] == '&') + strcpy (sym, sym_name + 1); + else if (sym_name[0] == '-' || sym_name[0] == '+') + strcpy (sym, sym_name); else ! sprintf (sym, "%s%s", user_label_prefix, sym_name); ! char *stub = XALLOCAVEC (char, strlen (ptr_name) + 2); ! if (ptr_name[0] == '*' || ptr_name[0] == '&') ! strcpy (stub, ptr_name + 1); ! else ! sprintf (stub, "%s%s", user_label_prefix, ptr_name); ! machopic_output_stub (asm_out_file, sym, stub); ! return 1; ! } ! int ! machopic_output_indirection (machopic_indirection **slot, FILE *asm_out_file) ! { ! machopic_indirection *p = *slot; ! if (!p->used || p->stub_p || p->nlsp_in_data_section) ! return 1; ! rtx symbol = p->symbol; ! /* The original symbol name. */ ! const char *sym_name = XSTR (symbol, 0); ! /* The nonlazy-stub symbol name. */ ! const char *ptr_name = p->ptr_name; ! switch_to_section (darwin_sections[machopic_nl_symbol_ptr_section]); ! /* Mach-O symbols are passed around in code through indirect references and ! the original symbol_ref hasn't passed through the generic handling and ! reference-catching in output_operand, so we need to manually mark weak ! references as such. */ ! ! if (SYMBOL_REF_WEAK (symbol)) ! { ! tree decl = SYMBOL_REF_DECL (symbol); ! gcc_checking_assert (DECL_P (decl)); ! ! if (decl != NULL_TREE ! && DECL_EXTERNAL (decl) && TREE_PUBLIC (decl) ! /* Handle only actual external-only definitions, not ! e.g. extern inline code or variables for which ! storage has been allocated. */ ! && !TREE_STATIC (decl)) ! { ! fputs ("\t.weak_reference ", asm_out_file); ! assemble_name (asm_out_file, sym_name); ! fputc ('\n', asm_out_file); ! } } + assemble_name (asm_out_file, ptr_name); + fprintf (asm_out_file, ":\n"); + + fprintf (asm_out_file, "\t.indirect_symbol "); + assemble_name (asm_out_file, sym_name); + fprintf (asm_out_file, "\n"); + + /* Variables that are marked with MACHO_SYMBOL_FLAG_STATIC need to + have their symbol name instead of 0 in the second entry of + the non-lazy symbol pointer data structure when they are + defined. This allows the runtime to rebind newer instances + of the translation unit with the original instance of the + symbol. */ + + rtx init = const0_rtx; + if (MACHO_SYMBOL_STATIC_P (symbol) && machopic_symbol_defined_p (symbol)) + init = gen_rtx_SYMBOL_REF (Pmode, sym_name); + + assemble_integer (init, GET_MODE_SIZE (Pmode), + GET_MODE_ALIGNMENT (Pmode), 1); + return 1; } ! static void machopic_finish (FILE *asm_out_file) { ! if (!machopic_indirections) ! return; ! ! /* First output an symbol indirections that have been placed into .data ! (we don't expect these now). */ ! machopic_indirections->traverse_noresize ! (asm_out_file); ! ! machopic_indirections->traverse_noresize ! (asm_out_file); ! ! machopic_indirections->traverse_noresize ! (asm_out_file); } int *************** machopic_operand_p (rtx op) *** 1212,1236 **** && XINT (XEXP (op, 0), 1) == UNSPEC_MACHOPIC_OFFSET); } ! /* This function records whether a given name corresponds to a defined ! or undefined function or variable, for machopic_classify_ident to ! use later. */ void ! darwin_encode_section_info (tree decl, rtx rtl, int first ATTRIBUTE_UNUSED) { ! rtx sym_ref; ! /* Do the standard encoding things first. */ default_encode_section_info (decl, rtl, first); ! if (TREE_CODE (decl) != FUNCTION_DECL && TREE_CODE (decl) != VAR_DECL) return; ! sym_ref = XEXP (rtl, 0); ! if (TREE_CODE (decl) == VAR_DECL) SYMBOL_REF_FLAGS (sym_ref) |= MACHO_SYMBOL_FLAG_VARIABLE; if (!DECL_EXTERNAL (decl) && (!TREE_PUBLIC (decl) || !DECL_WEAK (decl)) && ! lookup_attribute ("weakref", DECL_ATTRIBUTES (decl)) --- 1239,1289 ---- && XINT (XEXP (op, 0), 1) == UNSPEC_MACHOPIC_OFFSET); } ! /* This function: ! computes and caches a series of flags that characterise the symbol's ! properties that affect Mach-O code gen (including accidental cases ! from older toolchains). ! ! TODO: ! Here we also need to do enough analysis to determine if a symbol's ! name needs to be made linker-visible. This is more tricky - since ! it depends on whether we've previously seen a global weak definition ! in the same section. ! */ void ! darwin_encode_section_info (tree decl, rtx rtl, int first) { ! /* Careful not to prod global register variables. */ ! if (!MEM_P (rtl)) ! return; ! /* Do the standard encoding things first; this sets: ! SYMBOL_FLAG_FUNCTION, ! SYMBOL_FLAG_LOCAL, (binds_local_p) ! TLS_MODEL, SYMBOL_FLAG_SMALL ! SYMBOL_FLAG_EXTERNAL. */ default_encode_section_info (decl, rtl, first); ! if (! VAR_OR_FUNCTION_DECL_P (decl)) return; ! rtx sym_ref = XEXP (rtl, 0); ! if (VAR_P (decl)) SYMBOL_REF_FLAGS (sym_ref) |= MACHO_SYMBOL_FLAG_VARIABLE; + /* Only really common if there's no initialiser. */ + bool really_common_p = (DECL_COMMON (decl) + && (DECL_INITIAL (decl) == NULL + || (!in_lto_p + && DECL_INITIAL (decl) == error_mark_node))); + + /* For Darwin, if we have specified visibility and it's not the default + that's counted 'hidden'. */ + if (DECL_VISIBILITY_SPECIFIED (decl) + && DECL_VISIBILITY (decl) != VISIBILITY_DEFAULT) + SYMBOL_REF_FLAGS (sym_ref) |= MACHO_SYMBOL_FLAG_HIDDEN_VIS; + if (!DECL_EXTERNAL (decl) && (!TREE_PUBLIC (decl) || !DECL_WEAK (decl)) && ! lookup_attribute ("weakref", DECL_ATTRIBUTES (decl)) *************** darwin_encode_section_info (tree decl, r *** 1241,1247 **** SYMBOL_REF_FLAGS (sym_ref) |= MACHO_SYMBOL_FLAG_DEFINED; if (! TREE_PUBLIC (decl)) ! SYMBOL_REF_FLAGS (sym_ref) |= MACHO_SYMBOL_STATIC; } void --- 1294,1306 ---- SYMBOL_REF_FLAGS (sym_ref) |= MACHO_SYMBOL_FLAG_DEFINED; if (! TREE_PUBLIC (decl)) ! SYMBOL_REF_FLAGS (sym_ref) |= MACHO_SYMBOL_FLAG_STATIC; ! ! /* Short cut check for Darwin 'must indirect' rules. */ ! if (really_common_p ! || (DECL_WEAK (decl) && ! MACHO_SYMBOL_HIDDEN_VIS_P (sym_ref)) ! || lookup_attribute ("weakref", DECL_ATTRIBUTES (decl))) ! SYMBOL_REF_FLAGS (sym_ref) |= MACHO_SYMBOL_FLAG_MUST_INDIRECT; } void *************** darwin_mark_decl_preserved (const char * *** 1258,1269 **** } static section * ! darwin_rodata_section (int use_coal, bool zsize) { return (use_coal ? darwin_sections[const_coal_section] : (zsize ? darwin_sections[zobj_const_section] ! : darwin_sections[const_section])); } static section * --- 1317,1329 ---- } static section * ! darwin_rodata_section (int use_coal, bool zsize, int reloc) { return (use_coal ? darwin_sections[const_coal_section] : (zsize ? darwin_sections[zobj_const_section] ! : reloc ? darwin_sections[const_data_section] ! : darwin_sections[const_section])); } static section * *************** machopic_select_section (tree decl, *** 1556,1562 **** case SECCAT_RODATA: case SECCAT_SRODATA: ! base_section = darwin_rodata_section (use_coal, zsize); break; case SECCAT_RODATA_MERGE_STR: --- 1616,1622 ---- case SECCAT_RODATA: case SECCAT_SRODATA: ! base_section = darwin_rodata_section (use_coal, zsize, reloc); break; case SECCAT_RODATA_MERGE_STR: *************** darwin_emit_unwind_label (FILE *file, tr *** 2092,2102 **** static int invok_count = 0; static tree last_fun_decl = NULL_TREE; ! /* We use the linker to emit the .eh labels for Darwin 9 and above. */ ! if (! for_eh || generating_for_darwin_version >= 9) return; ! /* FIXME: This only works when the eh for all sections of a function is emitted at the same time. If that changes, we would need to use a lookup table of some form to determine what to do. Also, we should emit the unadorned label for the partition containing the public label for a --- 2152,2162 ---- static int invok_count = 0; static tree last_fun_decl = NULL_TREE; ! /* Modern linkers can produce distinct FDEs without compiler support. */ ! if (! for_eh || ! ld_needs_eh_markers) return; ! /* FIXME: This only works when the eh for all sections of a function are emitted at the same time. If that changes, we would need to use a lookup table of some form to determine what to do. Also, we should emit the unadorned label for the partition containing the public label for a *************** darwin_file_end (void) *** 2945,2956 **** if (flag_objc_abi >= 2) { flags = 16; ! output_section_asm_op ! (darwin_sections[objc2_image_info_section]->unnamed.data); } else ! output_section_asm_op ! (darwin_sections[objc_image_info_section]->unnamed.data); ASM_OUTPUT_ALIGN (asm_out_file, 2); fputs ("L_OBJC_ImageInfo:\n", asm_out_file); --- 3005,3014 ---- if (flag_objc_abi >= 2) { flags = 16; ! switch_to_section (darwin_sections[objc2_image_info_section]); } else ! switch_to_section (darwin_sections[objc_image_info_section]); ASM_OUTPUT_ALIGN (asm_out_file, 2); fputs ("L_OBJC_ImageInfo:\n", asm_out_file); *************** darwin_override_options (void) *** 3156,3172 **** : (generating_for_darwin_version >= 9) ? 1 : 0); - /* Objective-C family ABI 2 is only valid for next/m64 at present. */ if (global_options_set.x_flag_objc_abi && flag_next_runtime) { ! if (TARGET_64BIT && global_options.x_flag_objc_abi < 2) ! error_at (UNKNOWN_LOCATION, "%<-fobjc-abi-version%> >= 2 must be" ! " used for %<-m64%> targets with" ! " %<-fnext-runtime%>"); ! if (!TARGET_64BIT && global_options.x_flag_objc_abi >= 2) ! error_at (UNKNOWN_LOCATION, "%<-fobjc-abi-version%> >= 2 is not" ! " supported on %<-m32%> targets with" ! " %<-fnext-runtime%>"); } /* Don't emit DWARF3/4 unless specifically selected. This is a --- 3214,3232 ---- : (generating_for_darwin_version >= 9) ? 1 : 0); if (global_options_set.x_flag_objc_abi && flag_next_runtime) { ! if (TARGET_64BIT && global_options.x_flag_objc_abi != 2) ! /* The Objective-C family ABI 2 is the only valid version NeXT/m64. */ ! error_at (UNKNOWN_LOCATION, ! "%<-fobjc-abi-version%> 2 must be used for 64 bit targets" ! " with %<-fnext-runtime%>"); ! else if (!TARGET_64BIT && global_options.x_flag_objc_abi >= 2) ! /* ABI versions 0 and 1 are the only valid versions NeXT/m32. */ ! error_at (UNKNOWN_LOCATION, ! "%<-fobjc-abi-version%> %d is not supported for 32 bit" ! " targets with %<-fnext-runtime%>", ! global_options.x_flag_objc_abi); } /* Don't emit DWARF3/4 unless specifically selected. This is a *************** darwin_override_options (void) *** 3242,3249 **** /* so no tables either.. */ flag_unwind_tables = 0; flag_asynchronous_unwind_tables = 0; - /* We still need to emit branch islands for kernel context. */ - darwin_emit_branch_islands = true; } if (flag_var_tracking_uninit == 0 --- 3302,3307 ---- *************** darwin_override_options (void) *** 3253,3258 **** --- 3311,3318 ---- && write_symbols == DWARF2_DEBUG) flag_var_tracking_uninit = flag_var_tracking; + /* Final check on PCI options; for Darwin these are not dependent on the PIE + ones, although PIE does require PIC to support it. */ if (MACHO_DYNAMIC_NO_PIC_P) { if (flag_pic) *************** darwin_override_options (void) *** 3261,3277 **** " %<-fpie%> or %<-fPIE%>"); flag_pic = 0; } ! else if (flag_pic == 1) { ! /* Darwin's -fpic is -fPIC. */ flag_pic = 2; } ! /* It is assumed that branch island stubs are needed for earlier systems. */ ! if (generating_for_darwin_version < 9) ! darwin_emit_branch_islands = true; ! else ! emit_aligned_common = true; /* Later systems can support aligned common. */ /* The c_dialect...() macros are not available to us here. */ darwin_running_cxx = (strstr (lang_hooks.name, "C++") != 0); --- 3321,3372 ---- " %<-fpie%> or %<-fPIE%>"); flag_pic = 0; } ! else if (flag_pic == 1 ! || (flag_pic == 0 && !(flag_mkernel || flag_apple_kext))) { ! /* Darwin's -fpic is -fPIC. ! We only support "static" code in the kernel and kernel exts. */ flag_pic = 2; } ! /* Linkers >= ld64-62.1 (at least) are capable of making the necessary PIC ! indirections and we no longer need to emit pic symbol stubs. ! However, if we are generating code for earlier ones (or for use in the ! kernel) the stubs might still be required, and this will be set true. ! If the user sets it on or off - then that takes precedence. ! ! Linkers that don't need stubs, don't need the EH symbol markers either. ! */ ! ! if (!global_options_set.x_darwin_symbol_stubs) ! { ! if (darwin_target_linker) ! { ! if (strverscmp (darwin_target_linker, MIN_LD64_OMIT_STUBS) < 0) ! { ! darwin_symbol_stubs = true; ! ld_needs_eh_markers = true; ! } ! } ! else if (generating_for_darwin_version < 9) ! { ! /* If we don't know the linker version and we're targeting an old ! system, we know no better than to assume the use of an earlier ! linker. */ ! darwin_symbol_stubs = true; ! ld_needs_eh_markers = true; ! } ! } ! else if (DARWIN_X86 && darwin_symbol_stubs && TARGET_64BIT) ! { ! inform (input_location, ! "%<-msymbol-stubs%> is not required for 64b code (ignored)"); ! darwin_symbol_stubs = false; ! } ! ! if (generating_for_darwin_version >= 9) ! /* Later systems can support aligned common. */ ! emit_aligned_common = true; /* The c_dialect...() macros are not available to us here. */ darwin_running_cxx = (strstr (lang_hooks.name, "C++") != 0); diff -Nrcpad gcc-8.3.0/gcc/config/darwin.h gcc-8.4.0/gcc/config/darwin.h *** gcc-8.3.0/gcc/config/darwin.h Sun Dec 23 20:55:39 2018 --- gcc-8.4.0/gcc/config/darwin.h Wed Mar 4 08:30:00 2020 *************** extern GTY(()) int darwin_ms_struct; *** 129,134 **** --- 129,152 ---- "%{gsplit-dwarf:%ngsplit-dwarf is not supported on this platform } \ %= 10.5 mmacosx-version-min= -pie) }} " + + #define DARWIN_NOPIE_SPEC \ + "%{no-pie|fno-pie|fno-PIE: \ + %:version-compare(>= 10.7 mmacosx-version-min= -no_pie) }" + #define DARWIN_CC1_SPEC \ "%{findirect-virtual-calls: -fapple-kext} %= 10.6 mmacosx-version-min= -no_compact_unwind) " ! ! /* In Darwin linker specs we can put -lcrt0.o and ld will search the library ! path for crt0.o or -lcrtx.a and it will search for for libcrtx.a. As for ! other ports, we can also put xxx.{o,a}%s and get the appropriate complete ! startfile absolute directory. This latter point is important when we want ! to override ld's rule of .dylib being found ahead of .a and the user wants ! the convenience library to be linked. */ ! ! /* The LINK_COMMAND spec is mostly a clone of the standard LINK_COMMAND_SPEC, ! plus precomp, libtool, and fat build additions. In general, random Darwin linker flags should go into LINK_SPEC instead of LINK_COMMAND_SPEC. The command spec is better for specifying the handling of options understood by generic Unix linkers, and for positional arguments like libraries. */ #define LINK_COMMAND_SPEC_A \ "%{!fdump=*:%{!fsyntax-only:%{!c:%{!M:%{!MM:%{!E:%{!S:\ %(linker)" \ LINK_PLUGIN_SPEC \ "%{flto*:% 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 }" ! /* We specify crt0.o as -lcrt0.o so that ld will search the library path. ! ! crt3.o provides __cxa_atexit on systems that don't have it. Since ! it's only used with C++, which requires passing -shared-libgcc, key ! off that to avoid unnecessarily adding a destructor to every ! powerpc program built. */ #undef STARTFILE_SPEC #define STARTFILE_SPEC \ ! "%{Zdynamiclib: %(darwin_dylib1) %{fgnu-tm: -lcrttms.o}} \ ! %{!Zdynamiclib:%{Zbundle:%{!static: \ ! %:version-compare(< 10.6 mmacosx-version-min= -lbundle1.o) \ ! %{fgnu-tm: -lcrttms.o}}} \ %{!Zbundle:%{pg:%{static:-lgcrt0.o} \ %{!static:%{object:-lgcrt0.o} \ %{!object:%{preload:-lgcrt0.o} \ --- 360,401 ---- /* Support -mmacosx-version-min by supplying different (stub) libgcc_s.dylib libraries to link against, and by not linking against libgcc_s on ! earlier-than-10.3.9. 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. ! Note that by default, except as above, -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). ! The static version of the current libgcc unwinder (which differs from the ! implementation in libunwind.dylib on systems Darwin10 [10.6]+) can be used ! by specifying -static-libgcc. ! ! If libgcc_eh is linked against, it has to be before -lgcc, because it might need symbols from -lgcc. */ + #undef REAL_LIBGCC_SPEC #define REAL_LIBGCC_SPEC \ "%{static-libgcc|static: -lgcc_eh -lgcc; \ ! shared-libgcc|fexceptions|fobjc-exceptions|fgnu-runtime: \ ! %: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) \ ! %: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} \ *************** extern GTY(()) int darwin_ms_struct; *** 380,386 **** %{!object:%{preload:-lcrt0.o} \ %{!preload: %(darwin_crt1) \ %(darwin_crt2)}}}}}} \ ! %{shared-libgcc:%:version-compare(< 10.5 mmacosx-version-min= crt3.o%s)}" /* We want a destructor last in the list. */ #define TM_DESTRUCTOR "%{fgnu-tm: -lcrttme.o}" --- 407,413 ---- %{!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}" *************** extern GTY(()) int darwin_ms_struct; *** 388,398 **** #define DARWIN_EXTRA_SPECS \ { "darwin_crt1", DARWIN_CRT1_SPEC }, \ ! { "darwin_dylib1", DARWIN_DYLIB1_SPEC }, ! ! #define DARWIN_DYLIB1_SPEC \ ! "%:version-compare(!> 10.5 mmacosx-version-min= -ldylib1.o) \ ! %:version-compare(>< 10.5 10.6 mmacosx-version-min= -ldylib1.10.5.o)" #define DARWIN_CRT1_SPEC \ "%:version-compare(!> 10.5 mmacosx-version-min= -lcrt1.o) \ --- 415,424 ---- #define DARWIN_EXTRA_SPECS \ { "darwin_crt1", DARWIN_CRT1_SPEC }, \ ! { "darwin_crt2", DARWIN_CRT2_SPEC }, \ ! { "darwin_crt3", DARWIN_CRT3_SPEC }, \ ! { "darwin_dylib1", DARWIN_DYLIB1_SPEC }, \ ! { "darwin_bundle1", DARWIN_BUNDLE1_SPEC }, #define DARWIN_CRT1_SPEC \ "%:version-compare(!> 10.5 mmacosx-version-min= -lcrt1.o) \ *************** extern GTY(()) int darwin_ms_struct; *** 400,405 **** --- 426,449 ---- %:version-compare(>< 10.6 10.8 mmacosx-version-min= -lcrt1.10.6.o) \ %{fgnu-tm: -lcrttms.o}" + #define DARWIN_CRT2_SPEC "" + + /* crt3.o provides __cxa_atexit on systems that don't have it (and a fix + up for faulty versions on 10.4). Since it's only used with C++, which + requires passing -shared-libgcc, key off that to avoid unnecessarily + adding a destructor to every program built for 10.4 or earlier. */ + + #define DARWIN_CRT3_SPEC \ + "%{shared-libgcc:%:version-compare(< 10.5 mmacosx-version-min= crt3.o%s)}" + + #define DARWIN_DYLIB1_SPEC \ + "%:version-compare(!> 10.5 mmacosx-version-min= -ldylib1.o) \ + %:version-compare(>< 10.5 10.6 mmacosx-version-min= -ldylib1.10.5.o)" + + #define DARWIN_BUNDLE1_SPEC \ + "%{!static:%:version-compare(< 10.6 mmacosx-version-min= -lbundle1.o) \ + %{fgnu-tm: -lcrttms.o}}" + #ifdef HAVE_AS_MMACOSX_VERSION_MIN_OPTION /* Emit macosx version (but only major). */ #define ASM_MMACOSX_VERSION_MIN_SPEC \ *************** extern GTY(()) section * darwin_sections *** 765,785 **** #undef TARGET_ASM_MARK_DECL_PRESERVED #define TARGET_ASM_MARK_DECL_PRESERVED darwin_mark_decl_preserved ! /* Set on a symbol with SYMBOL_FLAG_FUNCTION or ! MACHO_SYMBOL_FLAG_VARIABLE to indicate that the function or ! variable has been defined in this translation unit. ! When porting Mach-O to new architectures you need to make ! sure these aren't clobbered by the backend. */ ! #define MACHO_SYMBOL_FLAG_VARIABLE (SYMBOL_FLAG_MACH_DEP) ! #define MACHO_SYMBOL_FLAG_DEFINED ((SYMBOL_FLAG_MACH_DEP) << 1) /* Set on a symbol to indicate when fix-and-continue style code generation is being used and the symbol refers to a static symbol that should be rebound from new instances of a translation unit to the original instance of the data. */ ! #define MACHO_SYMBOL_STATIC ((SYMBOL_FLAG_MACH_DEP) << 2) /* Symbolic names for various things we might know about a symbol. */ --- 809,860 ---- #undef TARGET_ASM_MARK_DECL_PRESERVED #define TARGET_ASM_MARK_DECL_PRESERVED darwin_mark_decl_preserved ! /* Any port using this header needs to define the first available ! subtarget symbol bit: SYMBOL_FLAG_SUBT_DEP. */ ! /* Is a variable. */ ! #define MACHO_SYMBOL_FLAG_VARIABLE (SYMBOL_FLAG_SUBT_DEP) ! #define MACHO_SYMBOL_VARIABLE_P(RTX) \ ! ((SYMBOL_REF_FLAGS (RTX) & MACHO_SYMBOL_FLAG_VARIABLE) != 0) ! ! /* Set on a symbol that must be indirected, even when there is a ! definition in the TU. The ABI mandates that common symbols are so ! indirected, as are weak. If 'fix-and-continue' is operational then ! data symbols might also be. */ ! ! #define MACHO_SYMBOL_FLAG_MUST_INDIRECT ((SYMBOL_FLAG_SUBT_DEP) << 1) ! #define MACHO_SYMBOL_MUST_INDIRECT_P(RTX) \ ! ((SYMBOL_REF_FLAGS (RTX) & MACHO_SYMBOL_FLAG_MUST_INDIRECT) != 0) ! ! /* Set on a symbol with SYMBOL_FLAG_FUNCTION or MACHO_SYMBOL_FLAG_VARIABLE ! to indicate that the function or variable is considered defined in this ! translation unit. */ ! ! #define MACHO_SYMBOL_FLAG_DEFINED ((SYMBOL_FLAG_SUBT_DEP) << 2) ! #define MACHO_SYMBOL_DEFINED_P(RTX) \ ! ((SYMBOL_REF_FLAGS (RTX) & MACHO_SYMBOL_FLAG_DEFINED) != 0) ! ! /* Set on a symbol that has specified non-default visibility. */ ! ! #define MACHO_SYMBOL_FLAG_HIDDEN_VIS ((SYMBOL_FLAG_SUBT_DEP) << 3) ! #define MACHO_SYMBOL_HIDDEN_VIS_P(RTX) \ ! ((SYMBOL_REF_FLAGS (RTX) & MACHO_SYMBOL_FLAG_HIDDEN_VIS) != 0) ! ! /* Set on a symbol that is a pic stub or symbol indirection (i.e. the ! L_xxxxx${stub,non_lazy_ptr,lazy_ptr}. */ ! ! #define MACHO_SYMBOL_FLAG_INDIRECTION ((SYMBOL_FLAG_SUBT_DEP) << 5) ! #define MACHO_SYMBOL_INDIRECTION_P(RTX) \ ! ((SYMBOL_REF_FLAGS (RTX) & MACHO_SYMBOL_FLAG_INDIRECTION) != 0) /* Set on a symbol to indicate when fix-and-continue style code generation is being used and the symbol refers to a static symbol that should be rebound from new instances of a translation unit to the original instance of the data. */ ! #define MACHO_SYMBOL_FLAG_STATIC ((SYMBOL_FLAG_SUBT_DEP) << 6) ! #define MACHO_SYMBOL_STATIC_P(RTX) \ ! ((SYMBOL_REF_FLAGS (RTX) & MACHO_SYMBOL_FLAG_STATIC) != 0) /* Symbolic names for various things we might know about a symbol. */ *************** extern void darwin_driver_init (unsigned *** 972,979 **** _tested_ version known to support this so far. */ #define MIN_LD64_NO_COAL_SECTS "236.4" #ifndef LD64_VERSION ! #define LD64_VERSION "85.2" #else #define DEF_LD64 LD64_VERSION #endif --- 1047,1058 ---- _tested_ version known to support this so far. */ #define MIN_LD64_NO_COAL_SECTS "236.4" + /* From at least version 62.1, ld64 can build symbol indirection stubs as + needed, and there is no need for the compiler to emit them. */ + #define MIN_LD64_OMIT_STUBS "85.2" + #ifndef LD64_VERSION ! #define LD64_VERSION "62.1" #else #define DEF_LD64 LD64_VERSION #endif diff -Nrcpad gcc-8.3.0/gcc/config/darwin.opt gcc-8.4.0/gcc/config/darwin.opt *** gcc-8.3.0/gcc/config/darwin.opt Wed Jan 3 10:03:58 2018 --- gcc-8.4.0/gcc/config/darwin.opt Wed Mar 4 08:30:00 2020 *************** *** 18,257 **** ; along with GCC; see the file COPYING3. If not see ; . ! ; Various linker options have a -Z added so that they can get to specs ! ; processing without interference. Note that an option name with a ! ; prefix that matches another option name, that also takes an ! ; argument, being mapped to a -Z linker option, needs to be modified ! ; so the prefix is different, otherwise a '*' after the shorter option ! ; will match with the longer one. all_load ! Driver Alias(Zall_load) allowable_client ! Driver Separate Alias(Zallowable_client) arch Driver RejectNegative Separate arch_errors_fatal ! Driver Alias(Zarch_errors_fatal) asm_macosx_version_min= Driver RejectNegative Joined bind_at_load ! Driver Alias(Zbind_at_load) bundle ! Driver Alias(Zbundle) bundle_loader ! Driver Separate Alias(Zbundle_loader) ! dead_strip ! Driver Alias(Zdead_strip) ! dependency-file ! C ObjC C++ ObjC++ Separate Alias(MF) MissingArgError(missing filename after %qs) dylib_file Driver Separate Alias(Zdylib_file) dylinker ! Driver dynamic ! Driver Alias(Zdynamic) dynamiclib ! Driver Alias(Zdynamiclib) exported_symbols_list ! Driver Separate Alias(Zexported_symbols_list) filelist Driver RejectNegative Separate findirect-virtual-calls Driver RejectNegative flat_namespace Driver RejectNegative Alias(Zflat_namespace) force_cpusubtype_ALL Driver RejectNegative Alias(Zforce_cpusubtype_ALL) force_flat_namespace Driver RejectNegative Alias(Zforce_flat_namespace) framework Driver RejectNegative Separate fterminated-vtables Driver RejectNegative gfull Driver RejectNegative gused Driver RejectNegative headerpad_max_install_names ! Driver image_base ! Driver Separate Alias(Zimage_base) init ! Driver Separate Alias(Zinit) install_name ! Driver Separate Alias(Zinstall_name) keep_private_externs ! Driver ! ! mconstant-cfstrings ! Target Report Var(darwin_constant_cfstrings) Init(1) ! Generate compile-time CFString objects. multi_module Driver RejectNegative Alias(Zmulti_module) multiply_defined Driver RejectNegative Separate Alias(Zmultiply_defined) multiply_defined_unused Driver RejectNegative Separate Alias(Zmultiplydefinedunused) no_dead_strip_inits_and_terms ! Driver Alias(Zno_dead_strip_inits_and_terms) nofixprebinding ! Driver nomultidefs ! Driver noprebind ! Driver noseglinkedit ! Driver object ! Driver prebind ! Driver prebind_all_twolevel_modules ! Driver preload ! Driver private_bundle ! Driver pthread ! Driver rdynamic ! Driver seg_addr_table ! Driver Separate Alias(Zseg_addr_table) seg_addr_table_filename ! Driver Separate Alias(Zfn_seg_addr_table_filename) segaddr ! Driver Separate Args(2) Alias(Zsegaddr) seglinkedit ! Driver segs_read_only_addr ! Driver Separate Alias(Zsegs_read_only_addr) segs_read_write_addr ! Driver Separate Alias(Zsegs_read_write_addr) single_module ! Driver Alias(Zsingle_module) twolevel_namespace ! Driver twolevel_namespace_hints ! Driver umbrella ! Driver Separate Alias(Zumbrella) unexported_symbols_list ! Driver Separate Alias(Zunexported_symbols_list) weak_reference_mismatches ! Driver Separate Alias(Zweak_reference_mismatches) whatsloaded ! Driver whyload ! Driver y ! Driver Joined Mach ! Driver ! ! Wnonportable-cfstrings ! Target Report Var(darwin_warn_nonportable_cfstrings) Init(1) Warning ! Warn if constant CFString objects contain non-portable characters. ! ! ; Use new-style pic stubs if this is true, x86 only so far. ! matt-stubs ! Target Report Var(darwin_macho_att_stub) Init(1) ! Generate AT&T-style stubs for Mach-O. ! ! mdynamic-no-pic ! Target Common Report Mask(MACHO_DYNAMIC_NO_PIC) ! Generate code suitable for executables (NOT shared libs). ! ! mfix-and-continue ! Target Report Var(darwin_fix_and_continue) ! Generate code suitable for fast turn around debugging. ! ! ; The Init here is for the convenience of GCC developers, so that cc1 ! ; and cc1plus don't crash if no -mmacosx-version-min is passed. The ! ; driver will always pass a -mmacosx-version-min, so in normal use the ! ; Init is never used. ! mmacosx-version-min= ! Target Joined Report Var(darwin_macosx_version_min) Init(DEF_MIN_OSX_VERSION) ! The earliest MacOS X version on which this program will run. ! ! mone-byte-bool ! Target RejectNegative Report Var(darwin_one_byte_bool) ! Set sizeof(bool) to 1. ! ! fapple-kext ! Target Report C++ Var(flag_apple_kext) ! Generate code for darwin loadable kernel extensions. ! ! mkernel ! Target Report Var(flag_mkernel) ! Generate code for the kernel or loadable kernel extensions. ! ! iframework ! Target RejectNegative C ObjC C++ ObjC++ Joined Separate ! -iframework Add to the end of the system framework include path. ! X ! Driver Zall_load Driver --- 18,399 ---- ; along with GCC; see the file COPYING3. If not see ; . ! ; We have a lot of Driver options, many of which are obsolete or very very ! ; rarely used so, to keep this file easier to manage: ! ! ; Please place all Non-driver options first (in alphabetical order), followed ! ; by Driver-only options. ! ! ; Non-driver options. ! ! dependency-file ! C ObjC C++ ObjC++ Separate Alias(MF) MissingArgError(missing filename after %qs) ! ! fapple-kext ! Target Report C++ Var(flag_apple_kext) ! Generate code for darwin loadable kernel extensions. ! ! iframework ! Target RejectNegative C ObjC C++ ObjC++ Joined Separate ! -iframework Add to the end of the system framework include path. ! ! mconstant-cfstrings ! Target Report Var(darwin_constant_cfstrings) Init(1) ! Generate compile-time CFString objects. ! ! Wnonportable-cfstrings ! Target Report Var(darwin_warn_nonportable_cfstrings) Init(1) Warning ! Warn if constant CFString objects contain non-portable characters. ! ! ; Use new-style pic stubs if this is true, x86 only so far. ! matt-stubs ! Target Report Var(darwin_macho_att_stub) Init(1) ! Generate AT&T-style stubs for Mach-O. ! ! mdynamic-no-pic ! Target Common Report Mask(MACHO_DYNAMIC_NO_PIC) ! Generate code suitable for executables (NOT shared libs). ! ! mfix-and-continue ! Target Report Var(darwin_fix_and_continue) ! Generate code suitable for fast turn around debugging. ! ! mkernel ! Target Report Var(flag_mkernel) ! Generate code for the kernel or loadable kernel extensions. ! ! ; The Init here is for the convenience of GCC developers, so that cc1 ! ; and cc1plus don't crash if no -mmacosx-version-min is passed. The ! ; driver will always pass a -mmacosx-version-min, so in normal use the ! ; Init is never used. ! mmacosx-version-min= ! Target RejectNegative Joined Report Var(darwin_macosx_version_min) Init(DEF_MIN_OSX_VERSION) ! The earliest MacOS X version on which this program will run. ! ! ; Really, only relevant to PowerPC which has a 4 byte bool by default. ! mone-byte-bool ! Target RejectNegative Report Var(darwin_one_byte_bool) ! Set sizeof(bool) to 1. ! ! msymbol-stubs ! Target Report Var(darwin_symbol_stubs) Init(0) ! Force generation of external symbol indirection stubs. ! ! ; Some code-gen may be improved / adjusted if the linker is sufficiently modern. ! mtarget-linker= ! Target RejectNegative Joined Report Alias(mtarget-linker) ! ! mtarget-linker ! Target RejectNegative Joined Separate Report Var(darwin_target_linker) Init(LD64_VERSION) ! The version of ld64 in use for this toolchain. ! ! ; Driver options. all_load ! Driver RejectNegative Alias(Zall_load) ! Loads all members of archive libraries allowable_client ! Driver RejectNegative Separate Alias(Zallowable_client) ! -allowable_client The output dylib is private to the client(s) named arch Driver RejectNegative Separate + -arch Specify that the output file should be generated for architecture \"name\" arch_errors_fatal ! Driver RejectNegative Alias(Zarch_errors_fatal) ! Mismatches between file architecture and the \"-arch\" are errors instead of warnings asm_macosx_version_min= Driver RejectNegative Joined + The earliest MacOS X version on which this program will run (formatted for the assembler) bind_at_load ! Driver RejectNegative Alias(Zbind_at_load) ! Produce an output file that will bind symbols on load, rather than lazily. bundle ! Driver RejectNegative Alias(Zbundle) ! Produce a Mach-O bundle (file type MH_BUNDLE) bundle_loader ! Driver RejectNegative Separate Alias(Zbundle_loader) ! -bundle_loader Treat \"executable\" (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 ! -client_name Enable the executable being built to link against a private dylib (using allowable_client) ! compatibility_version ! Driver RejectNegative Separate ! -compatibility_version Set the minimum version for the client interface. Clients must record a greater number than this or the binding will fail at runtime ! ! current_version ! Driver RejectNegative Separate ! -current_version Set the current version for the library. ! ! 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 ! Produce a Mach-O dylinker (file type MH_DYLINKER), only used for building dyld. ! ! dylinker_install_name ! Driver RejectNegative Separate ! -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 Global symbols in \"filename\" will be exported from the linked output file, any symbols not mentioned will be treated as hidden. filelist Driver RejectNegative Separate + Supply a list of objects to be linked from a file, rather than the command line findirect-virtual-calls Driver RejectNegative + 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 information and resolve symbols in the discovery order for loaded libs. framework Driver RejectNegative Separate + -framework The linker should search for the named framework in the framework search path. fterminated-vtables Driver RejectNegative + Used for generating code for some older kernel revisions. gfull Driver RejectNegative + Abbreviation for \"-g -fno-eliminate-unused-debug-symbols\" gused Driver RejectNegative + Abbreviation for \"-g -feliminate-unused-debug-symbols\" headerpad_max_install_names ! Driver RejectNegative ! Automatically adds space for longer path names in load commands (up to MAXPATHLEN) image_base ! Driver RejectNegative Separate Alias(Zimage_base) ! -image_base
Choose a base address for a dylib or bundle. init ! Driver RejectNegative Separate Alias(Zinit) ! -init The symbol \"symbol_name\" 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 ! Driver RejectNegative ! 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) The linker never dead strips these items, so the option is not needed. nofixprebinding ! Driver RejectNegative ! (Obsolete after 10.3.9) Set MH_NOPREFIXBINDING, in an exectuable. nomultidefs ! Driver RejectNegative ! (Obsolete after 10.4) Set MH_NOMULTIDEFS in an umbrella framework. noprebind ! Driver RejectNegative Negative(prebind) ! (Obsolete) LD_PREBIND is no longer supported. noseglinkedit ! Driver RejectNegative Negative(seglinkedit) ! (Obsolete) This is the default. object ! Driver RejectNegative ! ! pagezero_size ! Driver RejectNegative Separate ! -pagezero_size size Allows setting the page 0 size to 4kb for certain special cases. prebind ! Driver RejectNegative Negative(noprebind) ! (Obsolete) LD_PREBIND is no longer supported. prebind_all_twolevel_modules ! Driver RejectNegative ! (Obsolete) LD_PREBIND is no longer supported. preload ! Driver RejectNegative ! Produces a Mach-O file suitable for embedded/ROM use. private_bundle ! Driver RejectNegative ! (Obsolete) Allowed linking to proceed with \"-flat_namespace\" when a linked bundle contained a symbol also exported from the main executable. pthread ! Driver RejectNegative rdynamic ! Driver RejectNegative ! Synonym for \"-export-dynamic\" for linker versions that support it. ! ! read_only_relocs ! Driver RejectNegative Separate ! -read_only_relocs This will allow relocs in read-only pages (not advisable). ! ! sectalign ! Driver RejectNegative Separate Args(3) ! -sectalign Set section \"sectname\" in segment \"segname\" to have alignment \"value\" which must be an integral power of two expressed in hexadecimal form. ! ! sectcreate ! Driver RejectNegative Separate Args(3) ! -sectcreate Create section \"sectname\" in segment \"segname\" from the contents of \"file\". ! ! sectobjectsymbols ! Driver RejectNegative Separate Args(2) ! (Obsolete) -sectobjectsymbols Setting a local symbol at the start of a section is no longer supported. ! ! sectorder ! Driver RejectNegative Separate Args(3) ! (Obsolete) -sectorder orderfile 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, \"file\" 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 ! Driver RejectNegative Separate ! Synonym for \"image_base\" segaddr ! Driver RejectNegative Separate Args(2) Alias(Zsegaddr) ! -segaddr
Set the base address of segment \"name\" to \"address\" which must be aligned to a page boundary (currently 4kb). ! ! ; This is only usable by the ld_classic linker. ! segcreate ! Driver RejectNegative Separate Args(3) ! (Obsolete, ld_classic only) -sectcreate segname sectname file seglinkedit ! Driver RejectNegative Negative(noseglinkedit) ! (Obsolete) Object files with LINKEDIT sections are no longer supported. ! ! segprot ! Driver RejectNegative Separate Args(3) ! -segprot max_prot init_prot The protection values are \"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 address Allows specifying the address of the read only portion of a dylib. segs_read_write_addr ! Driver RejectNegative Separate Alias(Zsegs_read_write_addr) ! -segs_read_write_addr address Allows specifying the address of the read/write portion of a dylib. single_module ! Driver RejectNegative Alias(Zsingle_module) ! (Obsolete) This is the default. ! ! sub_library ! Driver RejectNegative Separate ! -sub_library Library named \"name\" will be re-exported (only useful for dylibs). ! ! sub_umbrella ! Driver RejectNegative Separate ! -sub_umbrella Framework named \"name\" will be re-exported (only useful for dylibs). twolevel_namespace ! Driver RejectNegative ! This is the default twolevel_namespace_hints ! Driver RejectNegative ! Specifies content that can speed up dynamic loading when the binaries are unchanged. umbrella ! Driver RejectNegative Separate Alias(Zumbrella) ! -umbrella The specified framework will be re-exported. ! ! undefined ! Driver RejectNegative Separate ! -undefined Specify the handling for undefined symbols (default is error). unexported_symbols_list ! Driver RejectNegative Separate Alias(Zunexported_symbols_list) ! -unexported_symbols_list Don't export global symbols listed in filename. 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 ! Driver RejectNegative ! Logs the object files the linker loads whyload ! Driver RejectNegative ! Logs which symbol(s) caused an object to be loaded. ! ! ;(Obsolete, ignored) Strip symbols starting with "L", this is the default. ! X ! Driver RejectNegative y ! Driver RejectNegative Joined ! (Obsolete, ignored) Old support similar to whyload. 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 *************** Driver Separate *** 343,404 **** Zweak_reference_mismatches Driver Separate - client_name - Driver Separate - - compatibility_version - Driver Separate - - current_version - Driver Separate - - dylinker_install_name - Driver Separate - - pagezero_size - Driver Separate - - read_only_relocs - Driver Separate - - sectalign - Driver Separate Args(3) - - sectcreate - Driver Separate Args(3) - - sectobjectsymbols - Driver Separate Args(2) - - sectorder - Driver Separate Args(3) - - seg1addr - Driver Separate - - segcreate - Driver Separate Args(3) - - segprot - Driver Separate Args(3) - - segs_read_only_addr - Driver Separate - - segs_read_write_addr - Driver Separate - - sub_library - Driver Separate - - sub_umbrella - Driver Separate - - ; Certain aspects of code-gen may be improved / adjusted if the version of ld64 - ; is sufficiently modern. - mtarget-linker - Target RejectNegative Joined Separate Report Var(darwin_target_linker) Init(LD64_VERSION) - The version of ld64 in use for this toolchain. - - undefined - Driver Separate --- 485,487 ---- diff -Nrcpad gcc-8.3.0/gcc/config/darwin10.h gcc-8.4.0/gcc/config/darwin10.h *** gcc-8.3.0/gcc/config/darwin10.h Wed Jan 3 10:03:58 2018 --- gcc-8.4.0/gcc/config/darwin10.h Wed Mar 4 08:30:00 2020 *************** You should have received a copy of the G *** 18,34 **** along with GCC; see the file COPYING3. If not see . */ ! /* Fix PR41260 by passing -no_compact_unwind on darwin10 and later until ! unwinder in libSystem is fixed to digest new epilog unwinding notes. - Fix PR47558 by linking against libSystem ahead of libgcc_ext. */ #undef LINK_GCC_C_SEQUENCE_SPEC #define LINK_GCC_C_SEQUENCE_SPEC \ ! "%:version-compare(>= 10.6 mmacosx-version-min= -no_compact_unwind) \ ! %{!static:%{!static-libgcc: \ ! %:version-compare(>= 10.6 mmacosx-version-min= -lSystem) } } \ ! %{fno-pic|fno-PIC|fno-pie|fno-PIE|fapple-kext|mkernel|static|mdynamic-no-pic: \ ! %:version-compare(>= 10.7 mmacosx-version-min= -no_pie) } %G %L" #undef DEF_MIN_OSX_VERSION #define DEF_MIN_OSX_VERSION "10.6" --- 18,30 ---- along with GCC; see the file COPYING3. If not see . */ ! /* Fix PR47558 by linking against libSystem ahead of libgcc_ext. */ #undef LINK_GCC_C_SEQUENCE_SPEC #define LINK_GCC_C_SEQUENCE_SPEC \ ! "%{!static:%{!static-libgcc: \ ! %:version-compare(>= 10.6 mmacosx-version-min= -lSystem) } } \ ! %G %L" #undef DEF_MIN_OSX_VERSION #define DEF_MIN_OSX_VERSION "10.6" diff -Nrcpad gcc-8.3.0/gcc/config/darwin9.h gcc-8.4.0/gcc/config/darwin9.h *** gcc-8.3.0/gcc/config/darwin9.h Wed Jan 3 10:03:58 2018 --- gcc-8.4.0/gcc/config/darwin9.h Wed Mar 4 08:30:00 2020 *************** along with GCC; see the file COPYING3. *** 35,46 **** /* Tell collect2 to run dsymutil for us as necessary. */ #define COLLECT_RUN_DSYMUTIL 1 - #undef DARWIN_PIE_SPEC - #define DARWIN_PIE_SPEC \ - "%{fpie|pie|fPIE: \ - %{mdynamic-no-pic: %n'-mdynamic-no-pic' overrides '-pie', '-fpie' or '-fPIE'; \ - :-pie}}" - /* Only ask as for debug data if the debug style is stabs (since as doesn't yet generate dwarf.) */ --- 35,40 ---- diff -Nrcpad gcc-8.3.0/gcc/config/i386/avx2intrin.h gcc-8.4.0/gcc/config/i386/avx2intrin.h *** gcc-8.3.0/gcc/config/i386/avx2intrin.h Wed Jan 3 10:03:58 2018 --- gcc-8.4.0/gcc/config/i386/avx2intrin.h Wed Mar 4 08:30:00 2020 *************** extern __inline __m256i *** 258,264 **** __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) _mm256_cmpgt_epi8 (__m256i __A, __m256i __B) { ! return (__m256i) ((__v32qi)__A > (__v32qi)__B); } extern __inline __m256i --- 258,264 ---- __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) _mm256_cmpgt_epi8 (__m256i __A, __m256i __B) { ! return (__m256i) ((__v32qs)__A > (__v32qs)__B); } extern __inline __m256i diff -Nrcpad gcc-8.3.0/gcc/config/i386/avx512bitalgintrin.h gcc-8.4.0/gcc/config/i386/avx512bitalgintrin.h *** gcc-8.3.0/gcc/config/i386/avx512bitalgintrin.h Wed Jul 11 21:02:54 2018 --- gcc-8.4.0/gcc/config/i386/avx512bitalgintrin.h Wed Mar 4 08:30:00 2020 *************** _mm512_popcnt_epi16 (__m512i __A) *** 61,70 **** extern __inline __m512i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) ! _mm512_mask_popcnt_epi8 (__m512i __A, __mmask64 __U, __m512i __B) { return (__m512i) __builtin_ia32_vpopcountb_v64qi_mask ((__v64qi) __A, ! (__v64qi) __B, (__mmask64) __U); } --- 61,70 ---- extern __inline __m512i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) ! _mm512_mask_popcnt_epi8 (__m512i __W, __mmask64 __U, __m512i __A) { return (__m512i) __builtin_ia32_vpopcountb_v64qi_mask ((__v64qi) __A, ! (__v64qi) __W, (__mmask64) __U); } *************** _mm512_maskz_popcnt_epi8 (__mmask64 __U, *** 79,88 **** } extern __inline __m512i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) ! _mm512_mask_popcnt_epi16 (__m512i __A, __mmask32 __U, __m512i __B) { return (__m512i) __builtin_ia32_vpopcountw_v32hi_mask ((__v32hi) __A, ! (__v32hi) __B, (__mmask32) __U); } --- 79,88 ---- } extern __inline __m512i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) ! _mm512_mask_popcnt_epi16 (__m512i __W, __mmask32 __U, __m512i __A) { return (__m512i) __builtin_ia32_vpopcountw_v32hi_mask ((__v32hi) __A, ! (__v32hi) __W, (__mmask32) __U); } *************** _mm512_mask_bitshuffle_epi64_mask (__mma *** 127,136 **** extern __inline __m256i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) ! _mm256_mask_popcnt_epi8 (__m256i __A, __mmask32 __U, __m256i __B) { return (__m256i) __builtin_ia32_vpopcountb_v32qi_mask ((__v32qi) __A, ! (__v32qi) __B, (__mmask32) __U); } --- 127,136 ---- extern __inline __m256i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) ! _mm256_mask_popcnt_epi8 (__m256i __W, __mmask32 __U, __m256i __A) { return (__m256i) __builtin_ia32_vpopcountb_v32qi_mask ((__v32qi) __A, ! (__v32qi) __W, (__mmask32) __U); } *************** _mm_popcnt_epi16 (__m128i __A) *** 222,231 **** extern __inline __m256i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) ! _mm256_mask_popcnt_epi16 (__m256i __A, __mmask16 __U, __m256i __B) { return (__m256i) __builtin_ia32_vpopcountw_v16hi_mask ((__v16hi) __A, ! (__v16hi) __B, (__mmask16) __U); } --- 222,231 ---- extern __inline __m256i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) ! _mm256_mask_popcnt_epi16 (__m256i __W, __mmask16 __U, __m256i __A) { return (__m256i) __builtin_ia32_vpopcountw_v16hi_mask ((__v16hi) __A, ! (__v16hi) __W, (__mmask16) __U); } *************** _mm256_maskz_popcnt_epi16 (__mmask16 __U *** 241,250 **** extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) ! _mm_mask_popcnt_epi8 (__m128i __A, __mmask16 __U, __m128i __B) { return (__m128i) __builtin_ia32_vpopcountb_v16qi_mask ((__v16qi) __A, ! (__v16qi) __B, (__mmask16) __U); } --- 241,250 ---- extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) ! _mm_mask_popcnt_epi8 (__m128i __W, __mmask16 __U, __m128i __A) { return (__m128i) __builtin_ia32_vpopcountb_v16qi_mask ((__v16qi) __A, ! (__v16qi) __W, (__mmask16) __U); } *************** _mm_maskz_popcnt_epi8 (__mmask16 __U, __ *** 259,268 **** } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) ! _mm_mask_popcnt_epi16 (__m128i __A, __mmask8 __U, __m128i __B) { return (__m128i) __builtin_ia32_vpopcountw_v8hi_mask ((__v8hi) __A, ! (__v8hi) __B, (__mmask8) __U); } --- 259,268 ---- } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) ! _mm_mask_popcnt_epi16 (__m128i __W, __mmask8 __U, __m128i __A) { return (__m128i) __builtin_ia32_vpopcountw_v8hi_mask ((__v8hi) __A, ! (__v8hi) __W, (__mmask8) __U); } diff -Nrcpad gcc-8.3.0/gcc/config/i386/avx512vbmi2intrin.h gcc-8.4.0/gcc/config/i386/avx512vbmi2intrin.h *** gcc-8.3.0/gcc/config/i386/avx512vbmi2intrin.h Wed Jan 3 10:03:58 2018 --- gcc-8.4.0/gcc/config/i386/avx512vbmi2intrin.h Wed Mar 4 08:30:00 2020 *************** _mm512_maskz_shldi_epi64 (__mmask8 __A, *** 151,200 **** #else #define _mm512_shrdi_epi16(A, B, C) \ ((__m512i) __builtin_ia32_vpshrd_v32hi ((__v32hi)(__m512i)(A), \ ! (__v32hi)(__m512i)(B),(int)(C)) #define _mm512_shrdi_epi32(A, B, C) \ ((__m512i) __builtin_ia32_vpshrd_v16si ((__v16si)(__m512i)(A), \ ! (__v16si)(__m512i)(B),(int)(C)) #define _mm512_mask_shrdi_epi32(A, B, C, D, E) \ ((__m512i) __builtin_ia32_vpshrd_v16si_mask ((__v16si)(__m512i)(C), \ ! (__v16si)(__m512i)(D), (int)(E), (__v16si)(__m512i)(A),(__mmask16)(B)) #define _mm512_maskz_shrdi_epi32(A, B, C, D) \ ! ((__m512i) __builtin_ia32_vpshrd_v16si_mask ((__v16si)(__m512i)(B), \ ! (__v16si)(__m512i)(C),(int)(D), \ ! (__v16si)(__m512i)_mm512_setzero_si512 (), (__mmask16)(A)) #define _mm512_shrdi_epi64(A, B, C) \ ((__m512i) __builtin_ia32_vpshrd_v8di ((__v8di)(__m512i)(A), \ ! (__v8di)(__m512i)(B),(int)(C)) #define _mm512_mask_shrdi_epi64(A, B, C, D, E) \ ((__m512i) __builtin_ia32_vpshrd_v8di_mask ((__v8di)(__m512i)(C), \ ! (__v8di)(__m512i)(D), (int)(E), (__v8di)(__m512i)(A),(__mmask8)(B)) #define _mm512_maskz_shrdi_epi64(A, B, C, D) \ ! ((__m512i) __builtin_ia32_vpshrd_v8di_mask ((__v8di)(__m512i)(B), \ ! (__v8di)(__m512i)(C),(int)(D), \ ! (__v8di)(__m512i)_mm512_setzero_si512 (), (__mmask8)(A)) #define _mm512_shldi_epi16(A, B, C) \ ((__m512i) __builtin_ia32_vpshld_v32hi ((__v32hi)(__m512i)(A), \ ! (__v32hi)(__m512i)(B),(int)(C)) #define _mm512_shldi_epi32(A, B, C) \ ! ((__m512i) __builtin_ia32_vpshld_v16si ((__v16si)(__m512i)(A), \ ! (__v16si)(__m512i)(B),(int)(C)) #define _mm512_mask_shldi_epi32(A, B, C, D, E) \ ((__m512i) __builtin_ia32_vpshld_v16si_mask ((__v16si)(__m512i)(C), \ ! (__v16si)(__m512i)(D), (int)(E), (__v16si)(__m512i)(A),(__mmask16)(B)) #define _mm512_maskz_shldi_epi32(A, B, C, D) \ ! ((__m512i) __builtin_ia32_vpshld_v16si_mask ((__v16si)(__m512i)(B), \ ! (__v16si)(__m512i)(C),(int)(D), \ ! (__v16si)(__m512i)_mm512_setzero_si512 (), (__mmask16)(A)) #define _mm512_shldi_epi64(A, B, C) \ ((__m512i) __builtin_ia32_vpshld_v8di ((__v8di)(__m512i)(A), \ ! (__v8di)(__m512i)(B),(int)(C)) #define _mm512_mask_shldi_epi64(A, B, C, D, E) \ ((__m512i) __builtin_ia32_vpshld_v8di_mask ((__v8di)(__m512i)(C), \ ! (__v8di)(__m512i)(D), (int)(E), (__v8di)(__m512i)(A),(__mmask8)(B)) #define _mm512_maskz_shldi_epi64(A, B, C, D) \ ! ((__m512i) __builtin_ia32_vpshld_v8di_mask ((__v8di)(__m512i)(B), \ ! (__v8di)(__m512i)(C),(int)(D), \ ! (__v8di)(__m512i)_mm512_setzero_si512 (), (__mmask8)(A)) #endif extern __inline __m512i --- 151,218 ---- #else #define _mm512_shrdi_epi16(A, B, C) \ ((__m512i) __builtin_ia32_vpshrd_v32hi ((__v32hi)(__m512i)(A), \ ! (__v32hi)(__m512i)(B),(int)(C))) #define _mm512_shrdi_epi32(A, B, C) \ ((__m512i) __builtin_ia32_vpshrd_v16si ((__v16si)(__m512i)(A), \ ! (__v16si)(__m512i)(B),(int)(C))) #define _mm512_mask_shrdi_epi32(A, B, C, D, E) \ ((__m512i) __builtin_ia32_vpshrd_v16si_mask ((__v16si)(__m512i)(C), \ ! (__v16si)(__m512i)(D), \ ! (int)(E), \ ! (__v16si)(__m512i)(A), \ ! (__mmask16)(B))) #define _mm512_maskz_shrdi_epi32(A, B, C, D) \ ! ((__m512i) \ ! __builtin_ia32_vpshrd_v16si_mask ((__v16si)(__m512i)(B), \ ! (__v16si)(__m512i)(C),(int)(D), \ ! (__v16si)(__m512i)_mm512_setzero_si512 (), \ ! (__mmask16)(A))) #define _mm512_shrdi_epi64(A, B, C) \ ((__m512i) __builtin_ia32_vpshrd_v8di ((__v8di)(__m512i)(A), \ ! (__v8di)(__m512i)(B),(int)(C))) #define _mm512_mask_shrdi_epi64(A, B, C, D, E) \ ((__m512i) __builtin_ia32_vpshrd_v8di_mask ((__v8di)(__m512i)(C), \ ! (__v8di)(__m512i)(D), (int)(E), \ ! (__v8di)(__m512i)(A), \ ! (__mmask8)(B))) #define _mm512_maskz_shrdi_epi64(A, B, C, D) \ ! ((__m512i) \ ! __builtin_ia32_vpshrd_v8di_mask ((__v8di)(__m512i)(B), \ ! (__v8di)(__m512i)(C),(int)(D), \ ! (__v8di)(__m512i)_mm512_setzero_si512 (), \ ! (__mmask8)(A))) #define _mm512_shldi_epi16(A, B, C) \ ((__m512i) __builtin_ia32_vpshld_v32hi ((__v32hi)(__m512i)(A), \ ! (__v32hi)(__m512i)(B),(int)(C))) #define _mm512_shldi_epi32(A, B, C) \ ! ((__m512i) __builtin_ia32_vpshld_v16si ((__v16si)(__m512i)(A), \ ! (__v16si)(__m512i)(B),(int)(C))) #define _mm512_mask_shldi_epi32(A, B, C, D, E) \ ((__m512i) __builtin_ia32_vpshld_v16si_mask ((__v16si)(__m512i)(C), \ ! (__v16si)(__m512i)(D), \ ! (int)(E), \ ! (__v16si)(__m512i)(A), \ ! (__mmask16)(B))) #define _mm512_maskz_shldi_epi32(A, B, C, D) \ ! ((__m512i) \ ! __builtin_ia32_vpshld_v16si_mask ((__v16si)(__m512i)(B), \ ! (__v16si)(__m512i)(C),(int)(D), \ ! (__v16si)(__m512i)_mm512_setzero_si512 (), \ ! (__mmask16)(A))) #define _mm512_shldi_epi64(A, B, C) \ ((__m512i) __builtin_ia32_vpshld_v8di ((__v8di)(__m512i)(A), \ ! (__v8di)(__m512i)(B), (int)(C))) #define _mm512_mask_shldi_epi64(A, B, C, D, E) \ ((__m512i) __builtin_ia32_vpshld_v8di_mask ((__v8di)(__m512i)(C), \ ! (__v8di)(__m512i)(D), (int)(E), \ ! (__v8di)(__m512i)(A), \ ! (__mmask8)(B))) #define _mm512_maskz_shldi_epi64(A, B, C, D) \ ! ((__m512i) \ ! __builtin_ia32_vpshld_v8di_mask ((__v8di)(__m512i)(B), \ ! (__v8di)(__m512i)(C),(int)(D), \ ! (__v8di)(__m512i)_mm512_setzero_si512 (), \ ! (__mmask8)(A))) #endif extern __inline __m512i *************** _mm512_maskz_shldi_epi16 (__mmask32 __A, *** 474,491 **** #else #define _mm512_mask_shrdi_epi16(A, B, C, D, E) \ ((__m512i) __builtin_ia32_vpshrd_v32hi_mask ((__v32hi)(__m512i)(C), \ ! (__v32hi)(__m512i)(D), (int)(E), (__v32hi)(__m512i)(A),(__mmask32)(B)) #define _mm512_maskz_shrdi_epi16(A, B, C, D) \ ! ((__m512i) __builtin_ia32_vpshrd_v32hi_mask ((__v32hi)(__m512i)(B), \ ! (__v32hi)(__m512i)(C),(int)(D), \ ! (__v32hi)(__m512i)_mm512_setzero_si512 (), (__mmask32)(A)) #define _mm512_mask_shldi_epi16(A, B, C, D, E) \ ((__m512i) __builtin_ia32_vpshld_v32hi_mask ((__v32hi)(__m512i)(C), \ ! (__v32hi)(__m512i)(D), (int)(E), (__v32hi)(__m512i)(A),(__mmask32)(B)) #define _mm512_maskz_shldi_epi16(A, B, C, D) \ ! ((__m512i) __builtin_ia32_vpshld_v32hi_mask ((__v32hi)(__m512i)(B), \ ! (__v32hi)(__m512i)(C),(int)(D), \ ! (__v32hi)(__m512i)_mm512_setzero_si512 (), (__mmask32)(A)) #endif extern __inline __m512i --- 492,519 ---- #else #define _mm512_mask_shrdi_epi16(A, B, C, D, E) \ ((__m512i) __builtin_ia32_vpshrd_v32hi_mask ((__v32hi)(__m512i)(C), \ ! (__v32hi)(__m512i)(D), \ ! (int)(E), \ ! (__v32hi)(__m512i)(A), \ ! (__mmask32)(B))) #define _mm512_maskz_shrdi_epi16(A, B, C, D) \ ! ((__m512i) \ ! __builtin_ia32_vpshrd_v32hi_mask ((__v32hi)(__m512i)(B), \ ! (__v32hi)(__m512i)(C),(int)(D), \ ! (__v32hi)(__m512i)_mm512_setzero_si512 (), \ ! (__mmask32)(A))) #define _mm512_mask_shldi_epi16(A, B, C, D, E) \ ((__m512i) __builtin_ia32_vpshld_v32hi_mask ((__v32hi)(__m512i)(C), \ ! (__v32hi)(__m512i)(D), \ ! (int)(E), \ ! (__v32hi)(__m512i)(A), \ ! (__mmask32)(B))) #define _mm512_maskz_shldi_epi16(A, B, C, D) \ ! ((__m512i) \ ! __builtin_ia32_vpshld_v32hi_mask ((__v32hi)(__m512i)(B), \ ! (__v32hi)(__m512i)(C),(int)(D), \ ! (__v32hi)(__m512i)_mm512_setzero_si512 (), \ ! (__mmask32)(A))) #endif extern __inline __m512i diff -Nrcpad gcc-8.3.0/gcc/config/i386/avx512vbmi2vlintrin.h gcc-8.4.0/gcc/config/i386/avx512vbmi2vlintrin.h *** gcc-8.3.0/gcc/config/i386/avx512vbmi2vlintrin.h Wed Jul 11 21:02:54 2018 --- gcc-8.4.0/gcc/config/i386/avx512vbmi2vlintrin.h Wed Mar 4 08:30:00 2020 *************** _mm_shldi_epi64 (__m128i __A, __m128i __ *** 498,621 **** #else #define _mm256_shrdi_epi16(A, B, C) \ ((__m256i) __builtin_ia32_vpshrd_v16hi ((__v16hi)(__m256i)(A), \ ! (__v16hi)(__m256i)(B),(int)(C)) #define _mm256_mask_shrdi_epi16(A, B, C, D, E) \ ((__m256i) __builtin_ia32_vpshrd_v16hi_mask ((__v16hi)(__m256i)(C), \ ! (__v16hi)(__m256i)(D), (int)(E), (__v16hi)(__m256i)(A),(__mmask16)(B)) #define _mm256_maskz_shrdi_epi16(A, B, C, D) \ ! ((__m256i) __builtin_ia32_vpshrd_v16hi_mask ((__v16hi)(__m256i)(B), \ ! (__v16hi)(__m256i)(C),(int)(D), \ ! (__v16hi)(__m256i)_mm256_setzero_si256 (), (__mmask16)(A)) #define _mm256_shrdi_epi32(A, B, C) \ ((__m256i) __builtin_ia32_vpshrd_v8si ((__v8si)(__m256i)(A), \ ! (__v8si)(__m256i)(B),(int)(C)) #define _mm256_mask_shrdi_epi32(A, B, C, D, E) \ ((__m256i) __builtin_ia32_vpshrd_v8si_mask ((__v8si)(__m256i)(C), \ ! (__v8si)(__m256i)(D), (int)(E), (__v8si)(__m256i)(A),(__mmask8)(B)) #define _mm256_maskz_shrdi_epi32(A, B, C, D) \ ! ((__m256i) __builtin_ia32_vpshrd_v8si_mask ((__v8si)(__m256i)(B), \ ! (__v8si)(__m256i)(C),(int)(D), \ ! (__v8si)(__m256i)_mm256_setzero_si256 (), (__mmask8)(A)) #define _mm256_shrdi_epi64(A, B, C) \ ((__m256i) __builtin_ia32_vpshrd_v4di ((__v4di)(__m256i)(A), \ ! (__v4di)(__m256i)(B),(int)(C)) #define _mm256_mask_shrdi_epi64(A, B, C, D, E) \ ((__m256i) __builtin_ia32_vpshrd_v4di_mask ((__v4di)(__m256i)(C), \ ! (__v4di)(__m256i)(D), (int)(E), (__v4di)(__m256i)(A),(__mmask8)(B)) #define _mm256_maskz_shrdi_epi64(A, B, C, D) \ ! ((__m256i) __builtin_ia32_vpshrd_v4di_mask ((__v4di)(__m256i)(B), \ ! (__v4di)(__m256i)(C),(int)(D), \ ! (__v4di)(__m256i)_mm256_setzero_si256 (), (__mmask8)(A)) #define _mm_shrdi_epi16(A, B, C) \ ((__m128i) __builtin_ia32_vpshrd_v8hi ((__v8hi)(__m128i)(A), \ ! (__v8hi)(__m128i)(B),(int)(C)) #define _mm_mask_shrdi_epi16(A, B, C, D, E) \ ((__m128i) __builtin_ia32_vpshrd_v8hi_mask ((__v8hi)(__m128i)(C), \ ! (__v8hi)(__m128i)(D), (int)(E), (__v8hi)(__m128i)(A),(__mmask8)(B)) #define _mm_maskz_shrdi_epi16(A, B, C, D) \ ! ((__m128i) __builtin_ia32_vpshrd_v8hi_mask ((__v8hi)(__m128i)(B), \ ! (__v8hi)(__m128i)(C),(int)(D), \ ! (__v8hi)(__m128i)_mm_setzero_si128 (), (__mmask8)(A)) #define _mm_shrdi_epi32(A, B, C) \ ((__m128i) __builtin_ia32_vpshrd_v4si ((__v4si)(__m128i)(A), \ ! (__v4si)(__m128i)(B),(int)(C)) #define _mm_mask_shrdi_epi32(A, B, C, D, E) \ ! ((__m128i) __builtin_ia32_vpshrd_v4si_mask ((__v4si)(__m128i)(C), \ ! (__v4si)(__m128i)(D), (int)(E), (__v4si)(__m128i)(A),(__mmask8)(B)) #define _mm_maskz_shrdi_epi32(A, B, C, D) \ ! ((__m128i) __builtin_ia32_vpshrd_v4si_mask ((__v4si)(__m128i)(B), \ ! (__v4si)(__m128i)(C),(int)(D), \ ! (__v4si)(__m128i)_mm_setzero_si128 (), (__mmask8)(A)) #define _mm_shrdi_epi64(A, B, C) \ ((__m128i) __builtin_ia32_vpshrd_v2di ((__v2di)(__m128i)(A), \ ! (__v2di)(__m128i)(B),(int)(C)) #define _mm_mask_shrdi_epi64(A, B, C, D, E) \ ((__m128i) __builtin_ia32_vpshrd_v2di_mask ((__v2di)(__m128i)(C), \ ! (__v2di)(__m128i)(D), (int)(E), (__v2di)(__m128i)(A),(__mmask8)(B)) #define _mm_maskz_shrdi_epi64(A, B, C, D) \ ! ((__m128i) __builtin_ia32_vpshrd_v2di_mask ((__v2di)(__m128i)(B), \ ! (__v2di)(__m128i)(C),(int)(D), \ ! (__v2di)(__m128i)_mm_setzero_si128 (), (__mmask8)(A)) #define _mm256_shldi_epi16(A, B, C) \ ((__m256i) __builtin_ia32_vpshld_v16hi ((__v16hi)(__m256i)(A), \ ! (__v16hi)(__m256i)(B),(int)(C)) #define _mm256_mask_shldi_epi16(A, B, C, D, E) \ ((__m256i) __builtin_ia32_vpshld_v16hi_mask ((__v16hi)(__m256i)(C), \ ! (__v16hi)(__m256i)(D), (int)(E), (__v16hi)(__m256i)(A),(__mmask16)(B)) #define _mm256_maskz_shldi_epi16(A, B, C, D) \ ! ((__m256i) __builtin_ia32_vpshld_v16hi_mask ((__v16hi)(__m256i)(B), \ ! (__v16hi)(__m256i)(C),(int)(D), \ ! (__v16hi)(__m256i)_mm256_setzero_si256 (), (__mmask16)(A)) #define _mm256_shldi_epi32(A, B, C) \ ((__m256i) __builtin_ia32_vpshld_v8si ((__v8si)(__m256i)(A), \ ! (__v8si)(__m256i)(B),(int)(C)) #define _mm256_mask_shldi_epi32(A, B, C, D, E) \ ((__m256i) __builtin_ia32_vpshld_v8si_mask ((__v8si)(__m256i)(C), \ ! (__v8si)(__m256i)(D), (int)(E), (__v8si)(__m256i)(A),(__mmask8)(B)) #define _mm256_maskz_shldi_epi32(A, B, C, D) \ ! ((__m256i) __builtin_ia32_vpshld_v8si_mask ((__v8si)(__m256i)(B), \ ! (__v8si)(__m256i)(C),(int)(D), \ ! (__v8si)(__m256i)_mm256_setzero_si256 (), (__mmask8)(A)) #define _mm256_shldi_epi64(A, B, C) \ ((__m256i) __builtin_ia32_vpshld_v4di ((__v4di)(__m256i)(A), \ ! (__v4di)(__m256i)(B),(int)(C)) #define _mm256_mask_shldi_epi64(A, B, C, D, E) \ ((__m256i) __builtin_ia32_vpshld_v4di_mask ((__v4di)(__m256i)(C), \ ! (__v4di)(__m256i)(D), (int)(E), (__v4di)(__m256i)(A),(__mmask8)(B)) #define _mm256_maskz_shldi_epi64(A, B, C, D) \ ! ((__m256i) __builtin_ia32_vpshld_v4di_mask ((__v4di)(__m256i)(B), \ ! (__v4di)(__m256i)(C),(int)(D), \ ! (__v4di)(__m256i)_mm256_setzero_si256 (), (__mmask8)(A)) #define _mm_shldi_epi16(A, B, C) \ ((__m128i) __builtin_ia32_vpshld_v8hi ((__v8hi)(__m128i)(A), \ ! (__v8hi)(__m128i)(B),(int)(C)) #define _mm_mask_shldi_epi16(A, B, C, D, E) \ ((__m128i) __builtin_ia32_vpshld_v8hi_mask ((__v8hi)(__m128i)(C), \ ! (__v8hi)(__m128i)(D), (int)(E), (__v8hi)(__m128i)(A),(__mmask8)(B)) #define _mm_maskz_shldi_epi16(A, B, C, D) \ ! ((__m128i) __builtin_ia32_vpshld_v8hi_mask ((__v8hi)(__m128i)(B), \ ! (__v8hi)(__m128i)(C),(int)(D), \ ! (__v8hi)(__m128i)_mm_setzero_si128 (), (__mmask8)(A)) #define _mm_shldi_epi32(A, B, C) \ ((__m128i) __builtin_ia32_vpshld_v4si ((__v4si)(__m128i)(A), \ ! (__v4si)(__m128i)(B),(int)(C)) #define _mm_mask_shldi_epi32(A, B, C, D, E) \ ((__m128i) __builtin_ia32_vpshld_v4si_mask ((__v4si)(__m128i)(C), \ ! (__v4si)(__m128i)(D), (int)(E), (__v4si)(__m128i)(A),(__mmask8)(B)) #define _mm_maskz_shldi_epi32(A, B, C, D) \ ! ((__m128i) __builtin_ia32_vpshld_v4si_mask ((__v4si)(__m128i)(B), \ ! (__v4si)(__m128i)(C),(int)(D), \ ! (__v4si)(__m128i)_mm_setzero_si128 (), (__mmask8)(A)) #define _mm_shldi_epi64(A, B, C) \ ((__m128i) __builtin_ia32_vpshld_v2di ((__v2di)(__m128i)(A), \ ! (__v2di)(__m128i)(B),(int)(C)) #define _mm_mask_shldi_epi64(A, B, C, D, E) \ ((__m128i) __builtin_ia32_vpshld_v2di_mask ((__v2di)(__m128i)(C), \ ! (__v2di)(__m128i)(D), (int)(E), (__v2di)(__m128i)(A),(__mmask8)(B)) #define _mm_maskz_shldi_epi64(A, B, C, D) \ ! ((__m128i) __builtin_ia32_vpshld_v2di_mask ((__v2di)(__m128i)(B), \ ! (__v2di)(__m128i)(C),(int)(D), \ ! (__v2di)(__m128i)_mm_setzero_si128 (), (__mmask8)(A)) #endif extern __inline __m256i --- 498,672 ---- #else #define _mm256_shrdi_epi16(A, B, C) \ ((__m256i) __builtin_ia32_vpshrd_v16hi ((__v16hi)(__m256i)(A), \ ! (__v16hi)(__m256i)(B),(int)(C))) #define _mm256_mask_shrdi_epi16(A, B, C, D, E) \ ((__m256i) __builtin_ia32_vpshrd_v16hi_mask ((__v16hi)(__m256i)(C), \ ! (__v16hi)(__m256i)(D), \ ! (int)(E), \ ! (__v16hi)(__m256i)(A), \ ! (__mmask16)(B))) #define _mm256_maskz_shrdi_epi16(A, B, C, D) \ ! ((__m256i) \ ! __builtin_ia32_vpshrd_v16hi_mask ((__v16hi)(__m256i)(B), \ ! (__v16hi)(__m256i)(C),(int)(D), \ ! (__v16hi)(__m256i)_mm256_setzero_si256 (), \ ! (__mmask16)(A))) #define _mm256_shrdi_epi32(A, B, C) \ ((__m256i) __builtin_ia32_vpshrd_v8si ((__v8si)(__m256i)(A), \ ! (__v8si)(__m256i)(B),(int)(C))) #define _mm256_mask_shrdi_epi32(A, B, C, D, E) \ ((__m256i) __builtin_ia32_vpshrd_v8si_mask ((__v8si)(__m256i)(C), \ ! (__v8si)(__m256i)(D), \ ! (int)(E), \ ! (__v8si)(__m256i)(A), \ ! (__mmask8)(B))) #define _mm256_maskz_shrdi_epi32(A, B, C, D) \ ! ((__m256i) \ ! __builtin_ia32_vpshrd_v8si_mask ((__v8si)(__m256i)(B), \ ! (__v8si)(__m256i)(C),(int)(D), \ ! (__v8si)(__m256i)_mm256_setzero_si256 (), \ ! (__mmask8)(A))) #define _mm256_shrdi_epi64(A, B, C) \ ((__m256i) __builtin_ia32_vpshrd_v4di ((__v4di)(__m256i)(A), \ ! (__v4di)(__m256i)(B),(int)(C))) #define _mm256_mask_shrdi_epi64(A, B, C, D, E) \ ((__m256i) __builtin_ia32_vpshrd_v4di_mask ((__v4di)(__m256i)(C), \ ! (__v4di)(__m256i)(D), (int)(E), \ ! (__v4di)(__m256i)(A), \ ! (__mmask8)(B))) #define _mm256_maskz_shrdi_epi64(A, B, C, D) \ ! ((__m256i) \ ! __builtin_ia32_vpshrd_v4di_mask ((__v4di)(__m256i)(B), \ ! (__v4di)(__m256i)(C),(int)(D), \ ! (__v4di)(__m256i)_mm256_setzero_si256 (), \ ! (__mmask8)(A))) #define _mm_shrdi_epi16(A, B, C) \ ((__m128i) __builtin_ia32_vpshrd_v8hi ((__v8hi)(__m128i)(A), \ ! (__v8hi)(__m128i)(B),(int)(C))) #define _mm_mask_shrdi_epi16(A, B, C, D, E) \ ((__m128i) __builtin_ia32_vpshrd_v8hi_mask ((__v8hi)(__m128i)(C), \ ! (__v8hi)(__m128i)(D), (int)(E), \ ! (__v8hi)(__m128i)(A), \ ! (__mmask8)(B))) #define _mm_maskz_shrdi_epi16(A, B, C, D) \ ! ((__m128i) \ ! __builtin_ia32_vpshrd_v8hi_mask ((__v8hi)(__m128i)(B), \ ! (__v8hi)(__m128i)(C),(int)(D), \ ! (__v8hi)(__m128i)_mm_setzero_si128 (), \ ! (__mmask8)(A))) #define _mm_shrdi_epi32(A, B, C) \ ((__m128i) __builtin_ia32_vpshrd_v4si ((__v4si)(__m128i)(A), \ ! (__v4si)(__m128i)(B),(int)(C))) #define _mm_mask_shrdi_epi32(A, B, C, D, E) \ ! ((__m128i) __builtin_ia32_vpshrd_v4si_mask ((__v4si)(__m128i)(C), \ ! (__v4si)(__m128i)(D), (int)(E), \ ! (__v4si)(__m128i)(A), \ ! (__mmask8)(B))) #define _mm_maskz_shrdi_epi32(A, B, C, D) \ ! ((__m128i) \ ! __builtin_ia32_vpshrd_v4si_mask ((__v4si)(__m128i)(B), \ ! (__v4si)(__m128i)(C),(int)(D), \ ! (__v4si)(__m128i)_mm_setzero_si128 (), \ ! (__mmask8)(A))) #define _mm_shrdi_epi64(A, B, C) \ ((__m128i) __builtin_ia32_vpshrd_v2di ((__v2di)(__m128i)(A), \ ! (__v2di)(__m128i)(B),(int)(C))) #define _mm_mask_shrdi_epi64(A, B, C, D, E) \ ((__m128i) __builtin_ia32_vpshrd_v2di_mask ((__v2di)(__m128i)(C), \ ! (__v2di)(__m128i)(D), (int)(E), \ ! (__v2di)(__m128i)(A), \ ! (__mmask8)(B))) #define _mm_maskz_shrdi_epi64(A, B, C, D) \ ! ((__m128i) \ ! __builtin_ia32_vpshrd_v2di_mask ((__v2di)(__m128i)(B), \ ! (__v2di)(__m128i)(C),(int)(D), \ ! (__v2di)(__m128i)_mm_setzero_si128 (), \ ! (__mmask8)(A))) #define _mm256_shldi_epi16(A, B, C) \ ((__m256i) __builtin_ia32_vpshld_v16hi ((__v16hi)(__m256i)(A), \ ! (__v16hi)(__m256i)(B),(int)(C))) #define _mm256_mask_shldi_epi16(A, B, C, D, E) \ ((__m256i) __builtin_ia32_vpshld_v16hi_mask ((__v16hi)(__m256i)(C), \ ! (__v16hi)(__m256i)(D), \ ! (int)(E), \ ! (__v16hi)(__m256i)(A), \ ! (__mmask16)(B))) #define _mm256_maskz_shldi_epi16(A, B, C, D) \ ! ((__m256i) \ ! __builtin_ia32_vpshld_v16hi_mask ((__v16hi)(__m256i)(B), \ ! (__v16hi)(__m256i)(C),(int)(D), \ ! (__v16hi)(__m256i)_mm256_setzero_si256 (), \ ! (__mmask16)(A))) #define _mm256_shldi_epi32(A, B, C) \ ((__m256i) __builtin_ia32_vpshld_v8si ((__v8si)(__m256i)(A), \ ! (__v8si)(__m256i)(B),(int)(C))) #define _mm256_mask_shldi_epi32(A, B, C, D, E) \ ((__m256i) __builtin_ia32_vpshld_v8si_mask ((__v8si)(__m256i)(C), \ ! (__v8si)(__m256i)(D), (int)(E), \ ! (__v8si)(__m256i)(A), \ ! (__mmask8)(B))) #define _mm256_maskz_shldi_epi32(A, B, C, D) \ ! ((__m256i) \ ! __builtin_ia32_vpshld_v8si_mask ((__v8si)(__m256i)(B), \ ! (__v8si)(__m256i)(C),(int)(D), \ ! (__v8si)(__m256i)_mm256_setzero_si256 (), \ ! (__mmask8)(A))) #define _mm256_shldi_epi64(A, B, C) \ ((__m256i) __builtin_ia32_vpshld_v4di ((__v4di)(__m256i)(A), \ ! (__v4di)(__m256i)(B),(int)(C))) #define _mm256_mask_shldi_epi64(A, B, C, D, E) \ ((__m256i) __builtin_ia32_vpshld_v4di_mask ((__v4di)(__m256i)(C), \ ! (__v4di)(__m256i)(D), (int)(E), \ ! (__v4di)(__m256i)(A), \ ! (__mmask8)(B))) #define _mm256_maskz_shldi_epi64(A, B, C, D) \ ! ((__m256i) \ ! __builtin_ia32_vpshld_v4di_mask ((__v4di)(__m256i)(B), \ ! (__v4di)(__m256i)(C),(int)(D), \ ! (__v4di)(__m256i)_mm256_setzero_si256 (), \ ! (__mmask8)(A))) #define _mm_shldi_epi16(A, B, C) \ ((__m128i) __builtin_ia32_vpshld_v8hi ((__v8hi)(__m128i)(A), \ ! (__v8hi)(__m128i)(B),(int)(C))) #define _mm_mask_shldi_epi16(A, B, C, D, E) \ ((__m128i) __builtin_ia32_vpshld_v8hi_mask ((__v8hi)(__m128i)(C), \ ! (__v8hi)(__m128i)(D), (int)(E), \ ! (__v8hi)(__m128i)(A), \ ! (__mmask8)(B))) #define _mm_maskz_shldi_epi16(A, B, C, D) \ ! ((__m128i) \ ! __builtin_ia32_vpshld_v8hi_mask ((__v8hi)(__m128i)(B), \ ! (__v8hi)(__m128i)(C),(int)(D), \ ! (__v8hi)(__m128i)_mm_setzero_si128 (), \ ! (__mmask8)(A))) #define _mm_shldi_epi32(A, B, C) \ ((__m128i) __builtin_ia32_vpshld_v4si ((__v4si)(__m128i)(A), \ ! (__v4si)(__m128i)(B),(int)(C))) #define _mm_mask_shldi_epi32(A, B, C, D, E) \ ((__m128i) __builtin_ia32_vpshld_v4si_mask ((__v4si)(__m128i)(C), \ ! (__v4si)(__m128i)(D), (int)(E), \ ! (__v4si)(__m128i)(A), \ ! (__mmask8)(B))) #define _mm_maskz_shldi_epi32(A, B, C, D) \ ! ((__m128i) \ ! __builtin_ia32_vpshld_v4si_mask ((__v4si)(__m128i)(B), \ ! (__v4si)(__m128i)(C),(int)(D), \ ! (__v4si)(__m128i)_mm_setzero_si128 (), \ ! (__mmask8)(A))) #define _mm_shldi_epi64(A, B, C) \ ((__m128i) __builtin_ia32_vpshld_v2di ((__v2di)(__m128i)(A), \ ! (__v2di)(__m128i)(B),(int)(C))) #define _mm_mask_shldi_epi64(A, B, C, D, E) \ ((__m128i) __builtin_ia32_vpshld_v2di_mask ((__v2di)(__m128i)(C), \ ! (__v2di)(__m128i)(D), (int)(E), \ ! (__v2di)(__m128i)(A), \ ! (__mmask8)(B))) #define _mm_maskz_shldi_epi64(A, B, C, D) \ ! ((__m128i) \ ! __builtin_ia32_vpshld_v2di_mask ((__v2di)(__m128i)(B), \ ! (__v2di)(__m128i)(C),(int)(D), \ ! (__v2di)(__m128i)_mm_setzero_si128 (), \ ! (__mmask8)(A))) #endif extern __inline __m256i diff -Nrcpad gcc-8.3.0/gcc/config/i386/avx512vpopcntdqintrin.h gcc-8.4.0/gcc/config/i386/avx512vpopcntdqintrin.h *** gcc-8.3.0/gcc/config/i386/avx512vpopcntdqintrin.h Wed Jan 3 10:03:58 2018 --- gcc-8.4.0/gcc/config/i386/avx512vpopcntdqintrin.h Wed Mar 4 08:30:00 2020 *************** _mm512_popcnt_epi32 (__m512i __A) *** 43,52 **** extern __inline __m512i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) ! _mm512_mask_popcnt_epi32 (__m512i __A, __mmask16 __U, __m512i __B) { return (__m512i) __builtin_ia32_vpopcountd_v16si_mask ((__v16si) __A, ! (__v16si) __B, (__mmask16) __U); } --- 43,52 ---- extern __inline __m512i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) ! _mm512_mask_popcnt_epi32 (__m512i __W, __mmask16 __U, __m512i __A) { return (__m512i) __builtin_ia32_vpopcountd_v16si_mask ((__v16si) __A, ! (__v16si) __W, (__mmask16) __U); } *************** _mm512_popcnt_epi64 (__m512i __A) *** 69,78 **** extern __inline __m512i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) ! _mm512_mask_popcnt_epi64 (__m512i __A, __mmask8 __U, __m512i __B) { return (__m512i) __builtin_ia32_vpopcountq_v8di_mask ((__v8di) __A, ! (__v8di) __B, (__mmask8) __U); } --- 69,78 ---- extern __inline __m512i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) ! _mm512_mask_popcnt_epi64 (__m512i __W, __mmask8 __U, __m512i __A) { return (__m512i) __builtin_ia32_vpopcountq_v8di_mask ((__v8di) __A, ! (__v8di) __W, (__mmask8) __U); } diff -Nrcpad gcc-8.3.0/gcc/config/i386/avx512vpopcntdqvlintrin.h gcc-8.4.0/gcc/config/i386/avx512vpopcntdqvlintrin.h *** gcc-8.3.0/gcc/config/i386/avx512vpopcntdqvlintrin.h Wed Jan 3 10:03:58 2018 --- gcc-8.4.0/gcc/config/i386/avx512vpopcntdqvlintrin.h Wed Mar 4 08:30:00 2020 *************** _mm_popcnt_epi32 (__m128i __A) *** 43,52 **** extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) ! _mm_mask_popcnt_epi32 (__m128i __A, __mmask16 __U, __m128i __B) { return (__m128i) __builtin_ia32_vpopcountd_v4si_mask ((__v4si) __A, ! (__v4si) __B, (__mmask16) __U); } --- 43,52 ---- extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) ! _mm_mask_popcnt_epi32 (__m128i __W, __mmask16 __U, __m128i __A) { return (__m128i) __builtin_ia32_vpopcountd_v4si_mask ((__v4si) __A, ! (__v4si) __W, (__mmask16) __U); } *************** _mm256_popcnt_epi32 (__m256i __A) *** 69,78 **** extern __inline __m256i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) ! _mm256_mask_popcnt_epi32 (__m256i __A, __mmask16 __U, __m256i __B) { return (__m256i) __builtin_ia32_vpopcountd_v8si_mask ((__v8si) __A, ! (__v8si) __B, (__mmask16) __U); } --- 69,78 ---- extern __inline __m256i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) ! _mm256_mask_popcnt_epi32 (__m256i __W, __mmask16 __U, __m256i __A) { return (__m256i) __builtin_ia32_vpopcountd_v8si_mask ((__v8si) __A, ! (__v8si) __W, (__mmask16) __U); } *************** _mm_popcnt_epi64 (__m128i __A) *** 95,104 **** extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) ! _mm_mask_popcnt_epi64 (__m128i __A, __mmask8 __U, __m128i __B) { return (__m128i) __builtin_ia32_vpopcountq_v2di_mask ((__v2di) __A, ! (__v2di) __B, (__mmask8) __U); } --- 95,104 ---- extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) ! _mm_mask_popcnt_epi64 (__m128i __W, __mmask8 __U, __m128i __A) { return (__m128i) __builtin_ia32_vpopcountq_v2di_mask ((__v2di) __A, ! (__v2di) __W, (__mmask8) __U); } *************** _mm256_popcnt_epi64 (__m256i __A) *** 121,130 **** extern __inline __m256i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) ! _mm256_mask_popcnt_epi64 (__m256i __A, __mmask8 __U, __m256i __B) { return (__m256i) __builtin_ia32_vpopcountq_v4di_mask ((__v4di) __A, ! (__v4di) __B, (__mmask8) __U); } --- 121,130 ---- extern __inline __m256i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) ! _mm256_mask_popcnt_epi64 (__m256i __W, __mmask8 __U, __m256i __A) { return (__m256i) __builtin_ia32_vpopcountq_v4di_mask ((__v4di) __A, ! (__v4di) __W, (__mmask8) __U); } *************** _mm256_maskz_popcnt_epi64 (__mmask8 __U, *** 144,147 **** #endif /* __DISABLE_AVX512VPOPCNTDQVL__ */ #endif /* _AVX512VPOPCNTDQVLINTRIN_H_INCLUDED */ - --- 144,146 ---- diff -Nrcpad gcc-8.3.0/gcc/config/i386/avxintrin.h gcc-8.4.0/gcc/config/i386/avxintrin.h *** gcc-8.3.0/gcc/config/i386/avxintrin.h Wed Jan 3 10:03:58 2018 --- gcc-8.4.0/gcc/config/i386/avxintrin.h Wed Mar 4 08:30:00 2020 *************** typedef unsigned int __v8su __attribute_ *** 47,52 **** --- 47,53 ---- typedef short __v16hi __attribute__ ((__vector_size__ (32))); typedef unsigned short __v16hu __attribute__ ((__vector_size__ (32))); typedef char __v32qi __attribute__ ((__vector_size__ (32))); + typedef signed char __v32qs __attribute__ ((__vector_size__ (32))); typedef unsigned char __v32qu __attribute__ ((__vector_size__ (32))); /* The Intel API is flexible enough that we must allow aliasing with other diff -Nrcpad gcc-8.3.0/gcc/config/i386/cpuid.h gcc-8.4.0/gcc/config/i386/cpuid.h *** gcc-8.3.0/gcc/config/i386/cpuid.h Thu Apr 19 15:08:02 2018 --- gcc-8.4.0/gcc/config/i386/cpuid.h Wed Mar 4 08:30:00 2020 *************** *** 178,187 **** --- 178,204 ---- #define signature_VORTEX_ecx 0x436f5320 #define signature_VORTEX_edx 0x36387865 + #ifndef __x86_64__ + /* At least one cpu (Winchip 2) does not set %ebx and %ecx + for cpuid leaf 1. Forcibly zero the two registers before + calling cpuid as a precaution. */ + #define __cpuid(level, a, b, c, d) \ + do { \ + if (__builtin_constant_p (level) && (level) != 1) \ + __asm__ ("cpuid\n\t" \ + : "=a" (a), "=b" (b), "=c" (c), "=d" (d) \ + : "0" (level)); \ + else \ + __asm__ ("cpuid\n\t" \ + : "=a" (a), "=b" (b), "=c" (c), "=d" (d) \ + : "0" (level), "1" (0), "2" (0)); \ + } while (0) + #else #define __cpuid(level, a, b, c, d) \ __asm__ ("cpuid\n\t" \ : "=a" (a), "=b" (b), "=c" (c), "=d" (d) \ : "0" (level)) + #endif #define __cpuid_count(level, count, a, b, c, d) \ __asm__ ("cpuid\n\t" \ diff -Nrcpad gcc-8.3.0/gcc/config/i386/darwin.h gcc-8.4.0/gcc/config/i386/darwin.h *** gcc-8.3.0/gcc/config/i386/darwin.h Sun Dec 23 20:34:13 2018 --- gcc-8.4.0/gcc/config/i386/darwin.h Wed Mar 4 08:30:00 2020 *************** along with GCC; see the file COPYING3. *** 47,58 **** 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) \ --- 47,59 ---- 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) \ *************** along with GCC; see the file COPYING3. *** 88,101 **** #undef WCHAR_TYPE_SIZE #define WCHAR_TYPE_SIZE 32 ! /* Generate branch islands stubs if this is true. */ ! extern int darwin_emit_branch_islands; ! ! #undef TARGET_MACHO_BRANCH_ISLANDS ! #define TARGET_MACHO_BRANCH_ISLANDS darwin_emit_branch_islands /* For compatibility with OSX system tools, use the new style of pic stub ! if this is set. */ #undef MACHOPIC_ATT_STUB #define MACHOPIC_ATT_STUB (darwin_macho_att_stub) --- 89,100 ---- #undef WCHAR_TYPE_SIZE #define WCHAR_TYPE_SIZE 32 ! /* Generate pic symbol indirection stubs if this is true. */ ! #undef TARGET_MACHO_SYMBOL_STUBS ! #define TARGET_MACHO_SYMBOL_STUBS (darwin_symbol_stubs) /* For compatibility with OSX system tools, use the new style of pic stub ! if this is set (default). */ #undef MACHOPIC_ATT_STUB #define MACHOPIC_ATT_STUB (darwin_macho_att_stub) *************** extern int darwin_emit_branch_islands; *** 130,136 **** #undef CC1_SPEC #define CC1_SPEC "%(cc1_cpu) \ %{!mkernel:%{!static:%{!mdynamic-no-pic:-fPIC}}} \ ! %{g: %{!fno-eliminate-unused-debug-symbols: -feliminate-unused-debug-symbols }} " \ DARWIN_CC1_SPEC #undef ASM_SPEC --- 129,136 ---- #undef CC1_SPEC #define CC1_SPEC "%(cc1_cpu) \ %{!mkernel:%{!static:%{!mdynamic-no-pic:-fPIC}}} \ ! %{g: %{!fno-eliminate-unused-debug-symbols: -feliminate-unused-debug-symbols }} \ ! %{mx32:%eDarwin is not an mx32 platform}" \ DARWIN_CC1_SPEC #undef ASM_SPEC *************** extern int darwin_emit_branch_islands; *** 138,146 **** " ASM_OPTIONS " -force_cpusubtype_ALL \ %{static}" ASM_MMACOSX_VERSION_MIN_SPEC - #define DARWIN_ARCH_SPEC "%{m64:x86_64;:i386}" - #define DARWIN_SUBARCH_SPEC DARWIN_ARCH_SPEC - #undef ENDFILE_SPEC #define ENDFILE_SPEC \ "%{Ofast|ffast-math|funsafe-math-optimizations:crtfastmath.o%s} \ --- 138,143 ---- *************** extern int darwin_emit_branch_islands; *** 148,159 **** %{mpc64:crtprec64.o%s} \ %{mpc80:crtprec80.o%s}" TM_DESTRUCTOR #undef SUBTARGET_EXTRA_SPECS #define SUBTARGET_EXTRA_SPECS \ DARWIN_EXTRA_SPECS \ ! { "darwin_arch", DARWIN_ARCH_SPEC }, \ { "darwin_crt2", "" }, \ ! { "darwin_subarch", DARWIN_SUBARCH_SPEC }, /* The Darwin assembler mostly follows AT&T syntax. */ #undef ASSEMBLER_DIALECT --- 145,159 ---- %{mpc64:crtprec64.o%s} \ %{mpc80:crtprec80.o%s}" TM_DESTRUCTOR + /* We default to x86_64 for single-arch builds, bi-arch overrides. */ + #define DARWIN_ARCH_SPEC "x86_64" + #undef SUBTARGET_EXTRA_SPECS #define SUBTARGET_EXTRA_SPECS \ DARWIN_EXTRA_SPECS \ ! { "darwin_arch", DARWIN_ARCH_SPEC }, \ { "darwin_crt2", "" }, \ ! { "darwin_subarch", DARWIN_ARCH_SPEC }, /* The Darwin assembler mostly follows AT&T syntax. */ #undef ASSEMBLER_DIALECT *************** extern int darwin_emit_branch_islands; *** 219,237 **** } \ } while (0) /* Darwin profiling -- call mcount. */ #undef FUNCTION_PROFILER #define FUNCTION_PROFILER(FILE, LABELNO) \ ! do { \ ! if (TARGET_MACHO_BRANCH_ISLANDS \ ! && MACHOPIC_INDIRECT && !TARGET_64BIT) \ ! { \ ! const char *name = machopic_mcount_stub_name (); \ ! fprintf (FILE, "\tcall %s\n", name+1); /* skip '&' */ \ ! machopic_validate_stub_or_non_lazy_ptr (name); \ ! } \ ! else fprintf (FILE, "\tcall mcount\n"); \ ! } while (0) #define C_COMMON_OVERRIDE_OPTIONS \ do { \ --- 219,254 ---- } \ } while (0) + #ifdef HAVE_GAS_MAX_SKIP_P2ALIGN + #define ASM_OUTPUT_MAX_SKIP_ALIGN(FILE,LOG,MAX_SKIP) \ + do { \ + if ((LOG) != 0) { \ + if ((MAX_SKIP) == 0 || (MAX_SKIP) >= (1 << (LOG)) - 1) \ + fprintf ((FILE), "\t.p2align %d\n", (LOG)); \ + else \ + fprintf ((FILE), "\t.p2align %d,,%d\n", (LOG), (MAX_SKIP)); \ + } \ + } while (0) + #endif + + /* Darwin x86 assemblers support the .ident directive. */ + + #undef TARGET_ASM_OUTPUT_IDENT + #define TARGET_ASM_OUTPUT_IDENT default_asm_output_ident_directive + /* Darwin profiling -- call mcount. */ #undef FUNCTION_PROFILER #define FUNCTION_PROFILER(FILE, LABELNO) \ ! do { \ ! if (TARGET_MACHO_SYMBOL_STUBS \ ! && MACHOPIC_INDIRECT && !TARGET_64BIT) \ ! { \ ! const char *name = machopic_mcount_stub_name (); \ ! fprintf (FILE, "\tcall %s\n", name+1); /* skip '&' */ \ ! machopic_validate_stub_or_non_lazy_ptr (name); \ ! } \ ! else fprintf (FILE, "\tcall mcount\n"); \ ! } while (0) #define C_COMMON_OVERRIDE_OPTIONS \ do { \ *************** do { \ *** 304,313 **** } \ } ! /* This needs to move since i386 uses the first flag and other flags are ! used in Mach-O. */ ! #undef MACHO_SYMBOL_FLAG_VARIABLE ! #define MACHO_SYMBOL_FLAG_VARIABLE ((SYMBOL_FLAG_MACH_DEP) << 3) #undef MACHOPIC_NL_SYMBOL_PTR_SECTION #define MACHOPIC_NL_SYMBOL_PTR_SECTION \ --- 321,328 ---- } \ } ! /* First available SYMBOL flag bit for use by subtargets. */ ! #define SYMBOL_FLAG_SUBT_DEP (SYMBOL_FLAG_MACH_DEP << 5) #undef MACHOPIC_NL_SYMBOL_PTR_SECTION #define MACHOPIC_NL_SYMBOL_PTR_SECTION \ diff -Nrcpad gcc-8.3.0/gcc/config/i386/darwin32-biarch.h gcc-8.4.0/gcc/config/i386/darwin32-biarch.h *** gcc-8.3.0/gcc/config/i386/darwin32-biarch.h Thu Jan 1 00:00:00 1970 --- gcc-8.4.0/gcc/config/i386/darwin32-biarch.h Wed Mar 4 08:30:00 2020 *************** *** 0 **** --- 1,58 ---- + /* Target definitions for i386 running Darwin with a 32b host and supporting + a 64b multilib. + Copyright (C) 2019 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 + . */ + + #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 + + #undef SUBTARGET_EXTRA_SPECS + #define SUBTARGET_EXTRA_SPECS \ + DARWIN_EXTRA_SPECS \ + { "darwin_arch", DARWIN_ARCH_SPEC }, \ + { "darwin_crt2", "" }, \ + { "darwin_subarch", DARWIN_SUBARCH_SPEC }, diff -Nrcpad gcc-8.3.0/gcc/config/i386/darwin64-biarch.h gcc-8.4.0/gcc/config/i386/darwin64-biarch.h *** gcc-8.3.0/gcc/config/i386/darwin64-biarch.h Thu Jan 1 00:00:00 1970 --- gcc-8.4.0/gcc/config/i386/darwin64-biarch.h Wed Mar 4 08:30:00 2020 *************** *** 0 **** --- 1,59 ---- + /* Target definitions for x86_64 running Darwin with a 64b host supporting a + 32b multilib. + Copyright (C) 2006-2019 Free Software Foundation, Inc. + Contributed by Apple Computer 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 + . */ + + #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 + + #undef SUBTARGET_EXTRA_SPECS + #define SUBTARGET_EXTRA_SPECS \ + DARWIN_EXTRA_SPECS \ + { "darwin_arch", DARWIN_ARCH_SPEC }, \ + { "darwin_crt2", "" }, \ + { "darwin_subarch", DARWIN_SUBARCH_SPEC }, diff -Nrcpad gcc-8.3.0/gcc/config/i386/darwin64.h gcc-8.4.0/gcc/config/i386/darwin64.h *** gcc-8.3.0/gcc/config/i386/darwin64.h Wed Jan 3 10:03:58 2018 --- gcc-8.4.0/gcc/config/i386/darwin64.h Thu Jan 1 00:00:00 1970 *************** *** 1,58 **** - /* Target definitions for x86_64 running Darwin. - Copyright (C) 2006-2018 Free Software Foundation, Inc. - Contributed by Apple Computer 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 - . */ - - #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 - - #undef SUBTARGET_EXTRA_SPECS - #define SUBTARGET_EXTRA_SPECS \ - DARWIN_EXTRA_SPECS \ - { "darwin_arch", DARWIN_ARCH_SPEC }, \ - { "darwin_crt2", "" }, \ - { "darwin_subarch", DARWIN_SUBARCH_SPEC }, --- 0 ---- diff -Nrcpad gcc-8.3.0/gcc/config/i386/emmintrin.h gcc-8.4.0/gcc/config/i386/emmintrin.h *** gcc-8.3.0/gcc/config/i386/emmintrin.h Thu Dec 13 14:42:43 2018 --- gcc-8.4.0/gcc/config/i386/emmintrin.h Wed Mar 4 08:30:00 2020 *************** _mm_xor_si128 (__m128i __A, __m128i __B) *** 1296,1302 **** extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cmpeq_epi8 (__m128i __A, __m128i __B) { ! return (__m128i) ((__v16qs)__A == (__v16qs)__B); } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 1296,1302 ---- extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cmpeq_epi8 (__m128i __A, __m128i __B) { ! return (__m128i) ((__v16qi)__A == (__v16qi)__B); } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) diff -Nrcpad gcc-8.3.0/gcc/config/i386/freebsd64.h gcc-8.4.0/gcc/config/i386/freebsd64.h *** gcc-8.3.0/gcc/config/i386/freebsd64.h Wed Jan 3 10:03:58 2018 --- gcc-8.4.0/gcc/config/i386/freebsd64.h Wed Mar 4 08:30:00 2020 *************** along with GCC; see the file COPYING3. *** 31,37 **** #undef LINK_SPEC #define LINK_SPEC "\ ! %{m32:-m elf_i386_fbsd} \ %{p:%nconsider using '-pg' instead of '-p' with gprof(1)} \ %{v:-V} \ %{assert*} %{R*} %{rpath*} %{defsym*} \ --- 31,37 ---- #undef LINK_SPEC #define LINK_SPEC "\ ! %{m32:-m elf_i386_fbsd}%{!m32:-m elf_x86_64_fbsd} \ %{p:%nconsider using '-pg' instead of '-p' with gprof(1)} \ %{v:-V} \ %{assert*} %{R*} %{rpath*} %{defsym*} \ *************** along with GCC; see the file COPYING3. *** 42,44 **** --- 42,47 ---- -dynamic-linker %(fbsd_dynamic_linker) } \ %{static:-Bstatic}} \ %{symbolic:-Bsymbolic}" + + #undef MULTILIB_DEFAULTS + #define MULTILIB_DEFAULTS { "m64" } diff -Nrcpad gcc-8.3.0/gcc/config/i386/i386-builtin.def gcc-8.4.0/gcc/config/i386/i386-builtin.def *** gcc-8.3.0/gcc/config/i386/i386-builtin.def Thu Oct 11 17:41:33 2018 --- gcc-8.4.0/gcc/config/i386/i386-builtin.def Wed Mar 4 08:30:00 2020 *************** BDESC (OPTION_MASK_ISA_SSE3, CODE_FOR_ss *** 806,816 **** /* SSSE3 */ BDESC (OPTION_MASK_ISA_SSSE3, CODE_FOR_absv16qi2, "__builtin_ia32_pabsb128", IX86_BUILTIN_PABSB128, UNKNOWN, (int) V16QI_FTYPE_V16QI) ! BDESC (OPTION_MASK_ISA_SSSE3 | OPTION_MASK_ISA_MMX, CODE_FOR_absv8qi2, "__builtin_ia32_pabsb", IX86_BUILTIN_PABSB, UNKNOWN, (int) V8QI_FTYPE_V8QI) BDESC (OPTION_MASK_ISA_SSSE3, CODE_FOR_absv8hi2, "__builtin_ia32_pabsw128", IX86_BUILTIN_PABSW128, UNKNOWN, (int) V8HI_FTYPE_V8HI) ! BDESC (OPTION_MASK_ISA_SSSE3 | OPTION_MASK_ISA_MMX, CODE_FOR_absv4hi2, "__builtin_ia32_pabsw", IX86_BUILTIN_PABSW, UNKNOWN, (int) V4HI_FTYPE_V4HI) BDESC (OPTION_MASK_ISA_SSSE3, CODE_FOR_absv4si2, "__builtin_ia32_pabsd128", IX86_BUILTIN_PABSD128, UNKNOWN, (int) V4SI_FTYPE_V4SI) ! BDESC (OPTION_MASK_ISA_SSSE3 | OPTION_MASK_ISA_MMX, CODE_FOR_absv2si2, "__builtin_ia32_pabsd", IX86_BUILTIN_PABSD, UNKNOWN, (int) V2SI_FTYPE_V2SI) BDESC (OPTION_MASK_ISA_SSSE3, CODE_FOR_ssse3_phaddwv8hi3, "__builtin_ia32_phaddw128", IX86_BUILTIN_PHADDW128, UNKNOWN, (int) V8HI_FTYPE_V8HI_V8HI) BDESC (OPTION_MASK_ISA_SSSE3 | OPTION_MASK_ISA_MMX, CODE_FOR_ssse3_phaddwv4hi3, "__builtin_ia32_phaddw", IX86_BUILTIN_PHADDW, UNKNOWN, (int) V4HI_FTYPE_V4HI_V4HI) --- 806,816 ---- /* SSSE3 */ BDESC (OPTION_MASK_ISA_SSSE3, CODE_FOR_absv16qi2, "__builtin_ia32_pabsb128", IX86_BUILTIN_PABSB128, UNKNOWN, (int) V16QI_FTYPE_V16QI) ! BDESC (OPTION_MASK_ISA_SSSE3 | OPTION_MASK_ISA_MMX, CODE_FOR_ssse3_absv8qi2, "__builtin_ia32_pabsb", IX86_BUILTIN_PABSB, UNKNOWN, (int) V8QI_FTYPE_V8QI) BDESC (OPTION_MASK_ISA_SSSE3, CODE_FOR_absv8hi2, "__builtin_ia32_pabsw128", IX86_BUILTIN_PABSW128, UNKNOWN, (int) V8HI_FTYPE_V8HI) ! BDESC (OPTION_MASK_ISA_SSSE3 | OPTION_MASK_ISA_MMX, CODE_FOR_ssse3_absv4hi2, "__builtin_ia32_pabsw", IX86_BUILTIN_PABSW, UNKNOWN, (int) V4HI_FTYPE_V4HI) BDESC (OPTION_MASK_ISA_SSSE3, CODE_FOR_absv4si2, "__builtin_ia32_pabsd128", IX86_BUILTIN_PABSD128, UNKNOWN, (int) V4SI_FTYPE_V4SI) ! BDESC (OPTION_MASK_ISA_SSSE3 | OPTION_MASK_ISA_MMX, CODE_FOR_ssse3_absv2si2, "__builtin_ia32_pabsd", IX86_BUILTIN_PABSD, UNKNOWN, (int) V2SI_FTYPE_V2SI) BDESC (OPTION_MASK_ISA_SSSE3, CODE_FOR_ssse3_phaddwv8hi3, "__builtin_ia32_phaddw128", IX86_BUILTIN_PHADDW128, UNKNOWN, (int) V8HI_FTYPE_V8HI_V8HI) BDESC (OPTION_MASK_ISA_SSSE3 | OPTION_MASK_ISA_MMX, CODE_FOR_ssse3_phaddwv4hi3, "__builtin_ia32_phaddw", IX86_BUILTIN_PHADDW, UNKNOWN, (int) V4HI_FTYPE_V4HI_V4HI) diff -Nrcpad gcc-8.3.0/gcc/config/i386/i386.c gcc-8.4.0/gcc/config/i386/i386.c *** gcc-8.3.0/gcc/config/i386/i386.c Thu Feb 14 07:38:52 2019 --- gcc-8.4.0/gcc/config/i386/i386.c Wed Mar 4 08:30:00 2020 *************** dimode_scalar_to_vector_candidate_p (rtx *** 1024,1039 **** case ASHIFT: case LSHIFTRT: ! if (!REG_P (XEXP (src, 1)) ! && (!SUBREG_P (XEXP (src, 1)) ! || SUBREG_BYTE (XEXP (src, 1)) != 0 ! || !REG_P (SUBREG_REG (XEXP (src, 1)))) ! && (!CONST_INT_P (XEXP (src, 1)) ! || !IN_RANGE (INTVAL (XEXP (src, 1)), 0, 63))) ! return false; ! ! if (GET_MODE (XEXP (src, 1)) != QImode ! && !CONST_INT_P (XEXP (src, 1))) return false; break; --- 1024,1031 ---- case ASHIFT: case LSHIFTRT: ! if (!CONST_INT_P (XEXP (src, 1)) ! || !IN_RANGE (INTVAL (XEXP (src, 1)), 0, 63)) return false; break; *************** dimode_scalar_chain::compute_convert_gai *** 1630,1644 **** { if (CONST_INT_P (XEXP (src, 0))) gain -= vector_const_cost (XEXP (src, 0)); ! if (CONST_INT_P (XEXP (src, 1))) ! { ! gain += ix86_cost->shift_const; ! if (INTVAL (XEXP (src, 1)) >= 32) ! gain -= COSTS_N_INSNS (1); ! } ! else ! /* Additional gain for omitting two CMOVs. */ ! gain += ix86_cost->shift_var + COSTS_N_INSNS (2); } else if (GET_CODE (src) == PLUS || GET_CODE (src) == MINUS --- 1622,1631 ---- { if (CONST_INT_P (XEXP (src, 0))) gain -= vector_const_cost (XEXP (src, 0)); ! ! gain += ix86_cost->shift_const; ! if (INTVAL (XEXP (src, 1)) >= 32) ! gain -= COSTS_N_INSNS (1); } else if (GET_CODE (src) == PLUS || GET_CODE (src) == MINUS *************** dimode_scalar_chain::make_vector_copies *** 1754,1813 **** { rtx reg = regno_reg_rtx[regno]; rtx vreg = gen_reg_rtx (DImode); - bool count_reg = false; df_ref ref; for (ref = DF_REG_DEF_CHAIN (regno); ref; ref = DF_REF_NEXT_REG (ref)) if (!bitmap_bit_p (insns, DF_REF_INSN_UID (ref))) { - df_ref use; - - /* Detect the count register of a shift instruction. */ - for (use = DF_REG_USE_CHAIN (regno); use; use = DF_REF_NEXT_REG (use)) - if (bitmap_bit_p (insns, DF_REF_INSN_UID (use))) - { - rtx_insn *insn = DF_REF_INSN (use); - rtx def_set = single_set (insn); - - gcc_assert (def_set); - - rtx src = SET_SRC (def_set); - - if ((GET_CODE (src) == ASHIFT - || GET_CODE (src) == ASHIFTRT - || GET_CODE (src) == LSHIFTRT) - && !CONST_INT_P (XEXP (src, 1)) - && reg_or_subregno (XEXP (src, 1)) == regno) - count_reg = true; - } - start_sequence (); - if (count_reg) - { - rtx qreg = gen_lowpart (QImode, reg); - rtx tmp = gen_reg_rtx (SImode); - - if (TARGET_ZERO_EXTEND_WITH_AND - && optimize_function_for_speed_p (cfun)) - { - emit_move_insn (tmp, const0_rtx); - emit_insn (gen_movstrictqi - (gen_lowpart (QImode, tmp), qreg)); - } - else - emit_insn (gen_rtx_SET - (tmp, gen_rtx_ZERO_EXTEND (SImode, qreg))); ! if (!TARGET_INTER_UNIT_MOVES_TO_VEC) ! { ! rtx slot = assign_386_stack_local (SImode, SLOT_STV_TEMP); ! emit_move_insn (slot, tmp); ! tmp = copy_rtx (slot); ! } ! ! emit_insn (gen_zero_extendsidi2 (vreg, tmp)); ! } ! else if (!TARGET_INTER_UNIT_MOVES_TO_VEC) { rtx tmp = assign_386_stack_local (DImode, SLOT_STV_TEMP); emit_move_insn (adjust_address (tmp, SImode, 0), --- 1741,1754 ---- { rtx reg = regno_reg_rtx[regno]; rtx vreg = gen_reg_rtx (DImode); df_ref ref; for (ref = DF_REG_DEF_CHAIN (regno); ref; ref = DF_REF_NEXT_REG (ref)) if (!bitmap_bit_p (insns, DF_REF_INSN_UID (ref))) { start_sequence (); ! if (!TARGET_INTER_UNIT_MOVES_TO_VEC) { rtx tmp = assign_386_stack_local (DImode, SLOT_STV_TEMP); emit_move_insn (adjust_address (tmp, SImode, 0), *************** dimode_scalar_chain::make_vector_copies *** 1855,1876 **** if (bitmap_bit_p (insns, DF_REF_INSN_UID (ref))) { rtx_insn *insn = DF_REF_INSN (ref); - if (count_reg) - { - rtx def_set = single_set (insn); - gcc_assert (def_set); ! rtx src = SET_SRC (def_set); ! ! if ((GET_CODE (src) == ASHIFT ! || GET_CODE (src) == ASHIFTRT ! || GET_CODE (src) == LSHIFTRT) ! && !CONST_INT_P (XEXP (src, 1)) ! && reg_or_subregno (XEXP (src, 1)) == regno) ! XEXP (src, 1) = vreg; ! } ! else ! replace_with_subreg_in_insn (insn, reg, vreg); if (dump_file) fprintf (dump_file, " Replaced r%d with r%d in insn %d\n", --- 1796,1803 ---- if (bitmap_bit_p (insns, DF_REF_INSN_UID (ref))) { rtx_insn *insn = DF_REF_INSN (ref); ! replace_with_subreg_in_insn (insn, reg, vreg); if (dump_file) fprintf (dump_file, " Replaced r%d with r%d in insn %d\n", *************** dimode_scalar_chain::convert_reg (unsign *** 1973,2014 **** rtx src = SET_SRC (def_set); rtx dst = SET_DEST (def_set); ! if ((GET_CODE (src) == ASHIFT ! || GET_CODE (src) == ASHIFTRT ! || GET_CODE (src) == LSHIFTRT) ! && !CONST_INT_P (XEXP (src, 1)) ! && reg_or_subregno (XEXP (src, 1)) == regno) ! { ! rtx tmp2 = gen_reg_rtx (V2DImode); ! ! start_sequence (); ! ! if (TARGET_SSE4_1) ! emit_insn (gen_sse4_1_zero_extendv2qiv2di2 ! (tmp2, gen_rtx_SUBREG (V16QImode, reg, 0))); ! else ! { ! rtx vec_cst ! = gen_rtx_CONST_VECTOR (V2DImode, ! gen_rtvec (2, GEN_INT (0xff), ! const0_rtx)); ! vec_cst ! = validize_mem (force_const_mem (V2DImode, vec_cst)); ! ! emit_insn (gen_rtx_SET ! (tmp2, ! gen_rtx_AND (V2DImode, ! gen_rtx_SUBREG (V2DImode, reg, 0), ! vec_cst))); ! } ! rtx_insn *seq = get_insns (); ! end_sequence (); ! ! emit_insn_before (seq, insn); ! ! XEXP (src, 1) = gen_rtx_SUBREG (DImode, tmp2, 0); ! } ! else if (!MEM_P (dst) || !REG_P (src)) replace_with_subreg_in_insn (insn, reg, reg); bitmap_clear_bit (conv, INSN_UID (insn)); --- 1900,1906 ---- rtx src = SET_SRC (def_set); rtx dst = SET_DEST (def_set); ! if (!MEM_P (dst) || !REG_P (src)) replace_with_subreg_in_insn (insn, reg, reg); bitmap_clear_bit (conv, INSN_UID (insn)); *************** ix86_option_override_internal (bool main *** 3488,3494 **** | PTA_AVX512VBMI | PTA_AVX512IFMA | PTA_SHA; const wide_int_bitmask PTA_ICELAKE_CLIENT = PTA_CANNONLAKE | PTA_AVX512VNNI | PTA_GFNI | PTA_VAES | PTA_AVX512VBMI2 | PTA_VPCLMULQDQ | PTA_AVX512BITALG ! | PTA_RDPID | PTA_CLWB; const wide_int_bitmask PTA_ICELAKE_SERVER = PTA_ICELAKE_CLIENT | PTA_PCONFIG | PTA_WBNOINVD; const wide_int_bitmask PTA_KNL = PTA_BROADWELL | PTA_AVX512PF | PTA_AVX512ER --- 3380,3386 ---- | PTA_AVX512VBMI | PTA_AVX512IFMA | PTA_SHA; const wide_int_bitmask PTA_ICELAKE_CLIENT = PTA_CANNONLAKE | PTA_AVX512VNNI | PTA_GFNI | PTA_VAES | PTA_AVX512VBMI2 | PTA_VPCLMULQDQ | PTA_AVX512BITALG ! | PTA_RDPID | PTA_CLWB | PTA_AVX512VPOPCNTDQ; const wide_int_bitmask PTA_ICELAKE_SERVER = PTA_ICELAKE_CLIENT | PTA_PCONFIG | PTA_WBNOINVD; const wide_int_bitmask PTA_KNL = PTA_BROADWELL | PTA_AVX512PF | PTA_AVX512ER *************** ix86_option_override_internal (bool main *** 4958,4963 **** --- 4850,4861 ---- opts->x_param_values, opts_set->x_param_values); + /* PR86952: jump table usage with retpolines is slow. + The PR provides some numbers about the slowness. */ + if (ix86_indirect_branch != indirect_branch_keep + && !opts_set->x_flag_jump_tables) + opts->x_flag_jump_tables = 0; + return true; } *************** ix86_valid_target_attribute_inner_p (tre *** 5552,5558 **** ret = false; } else ! p_strings[opt] = xstrdup (p + opt_len); } else if (type == ix86_opt_enum) --- 5450,5474 ---- ret = false; } else ! { ! p_strings[opt] = xstrdup (p + opt_len); ! if (opt == IX86_FUNCTION_SPECIFIC_ARCH) ! { ! /* If arch= is set, clear all bits in x_ix86_isa_flags, ! except for ISA_64BIT, ABI_64, ABI_X32, and CODE16 ! and all bits in x_ix86_isa_flags2. */ ! opts->x_ix86_isa_flags &= (OPTION_MASK_ISA_64BIT ! | OPTION_MASK_ABI_64 ! | OPTION_MASK_ABI_X32 ! | OPTION_MASK_CODE16); ! opts->x_ix86_isa_flags_explicit &= (OPTION_MASK_ISA_64BIT ! | OPTION_MASK_ABI_64 ! | OPTION_MASK_ABI_X32 ! | OPTION_MASK_CODE16); ! opts->x_ix86_isa_flags2 = 0; ! opts->x_ix86_isa_flags2_explicit = 0; ! } ! } } else if (type == ix86_opt_enum) *************** ix86_valid_target_attribute_tree (tree a *** 5627,5644 **** /* If we are using the default tune= or arch=, undo the string assigned, and use the default. */ if (option_strings[IX86_FUNCTION_SPECIFIC_ARCH]) ! { ! opts->x_ix86_arch_string ! = ggc_strdup (option_strings[IX86_FUNCTION_SPECIFIC_ARCH]); ! ! /* If arch= is set, clear all bits in x_ix86_isa_flags, ! except for ISA_64BIT, ABI_64, ABI_X32, and CODE16. */ ! opts->x_ix86_isa_flags &= (OPTION_MASK_ISA_64BIT ! | OPTION_MASK_ABI_64 ! | OPTION_MASK_ABI_X32 ! | OPTION_MASK_CODE16); ! opts->x_ix86_isa_flags2 = 0; ! } else if (!orig_arch_specified) opts->x_ix86_arch_string = NULL; --- 5543,5550 ---- /* If we are using the default tune= or arch=, undo the string assigned, and use the default. */ if (option_strings[IX86_FUNCTION_SPECIFIC_ARCH]) ! opts->x_ix86_arch_string ! = ggc_strdup (option_strings[IX86_FUNCTION_SPECIFIC_ARCH]); else if (!orig_arch_specified) opts->x_ix86_arch_string = NULL; *************** ix86_gimplify_va_arg (tree valist, tree *** 10099,10104 **** --- 10005,10011 ---- tree ptrtype; machine_mode nat_mode; unsigned int arg_boundary; + unsigned int type_align; /* Only 64bit target needs something special. */ if (is_va_list_char_pointer (TREE_TYPE (valist))) *************** ix86_gimplify_va_arg (tree valist, tree *** 10156,10161 **** --- 10063,10069 ---- /* Pull the value out of the saved registers. */ addr = create_tmp_var (ptr_type_node, "addr"); + type_align = TYPE_ALIGN (type); if (container) { *************** ix86_gimplify_va_arg (tree valist, tree *** 10326,10331 **** --- 10234,10242 ---- t = build2 (PLUS_EXPR, TREE_TYPE (gpr), gpr, build_int_cst (TREE_TYPE (gpr), needed_intregs * 8)); gimplify_assign (gpr, t, pre_p); + /* The GPR save area guarantees only 8-byte alignment. */ + if (!need_temp) + type_align = MIN (type_align, 64); } if (needed_sseregs) *************** ix86_gimplify_va_arg (tree valist, tree *** 10370,10375 **** --- 10281,10287 ---- if (container) gimple_seq_add_stmt (pre_p, gimple_build_label (lab_over)); + type = build_aligned_type (type, type_align); ptrtype = build_pointer_type_for_mode (type, ptr_mode, true); addr = fold_convert (ptrtype, addr); *************** output_pic_addr_const (FILE *file, rtx x *** 17313,17319 **** break; case SYMBOL_REF: ! if (TARGET_64BIT || ! TARGET_MACHO_BRANCH_ISLANDS) output_addr_const (file, x); else { --- 17225,17231 ---- break; case SYMBOL_REF: ! if (TARGET_64BIT || ! TARGET_MACHO_SYMBOL_STUBS) output_addr_const (file, x); else { *************** print_reg (rtx x, int code, FILE *file) *** 18121,18126 **** --- 18033,18039 ---- ; -- print a semicolon (after prefixes due to bug in older gas). ~ -- print "i" if TARGET_AVX2, "f" otherwise. ^ -- print addr32 prefix if TARGET_64BIT and Pmode != word_mode + M -- print addr32 prefix for TARGET_X32 with VSIB address. ! -- print MPX prefix for jxx/call/ret instructions if required. */ *************** ix86_print_operand (FILE *file, rtx x, i *** 18668,18673 **** --- 18581,18606 ---- putc (TARGET_AVX2 ? 'i' : 'f', file); return; + case 'M': + if (TARGET_X32) + { + /* NB: 32-bit indices in VSIB address are sign-extended + to 64 bits. In x32, if 32-bit address 0xf7fa3010 is + sign-extended to 0xfffffffff7fa3010 which is invalid + address. Add addr32 prefix if there is no base + register nor symbol. */ + bool ok; + struct ix86_address parts; + ok = ix86_decompose_address (x, &parts); + gcc_assert (ok && parts.index == NULL_RTX); + if (parts.base == NULL_RTX + && (parts.disp == NULL_RTX + || !symbolic_operand (parts.disp, + GET_MODE (parts.disp)))) + fputs ("addr32 ", file); + } + return; + case '^': if (TARGET_64BIT && Pmode != word_mode) fputs ("addr32 ", file); *************** ix86_expand_sse_fp_minmax (rtx dest, enu *** 24062,24067 **** --- 23995,24002 ---- else { code = is_min ? SMIN : SMAX; + if (MEM_P (if_true) && MEM_P (if_false)) + if_true = force_reg (mode, if_true); tmp = gen_rtx_fmt_ee (code, mode, if_true, if_false); } *************** ix86_nopic_noplt_attribute_p (rtx call_o *** 28757,28762 **** --- 28692,28716 ---- return false; } + /* Helper to output the jmp/call. */ + static void + ix86_output_jmp_thunk_or_indirect (const char *thunk_name, + enum indirect_thunk_prefix need_prefix, + const int regno) + { + if (thunk_name != NULL) + { + if (need_prefix == indirect_thunk_prefix_bnd) + fprintf (asm_out_file, "\tbnd jmp\t"); + else + fprintf (asm_out_file, "\tjmp\t"); + assemble_name (asm_out_file, thunk_name); + putc ('\n', asm_out_file); + } + else + output_indirect_thunk (need_prefix, regno); + } + /* Output indirect branch via a call and return thunk. CALL_OP is a register which contains the branch target. XASM is the assembly template for CALL_OP. Branch is a tail call if SIBCALL_P is true. *************** ix86_output_indirect_branch_via_reg (rtx *** 28798,28822 **** thunk_name = NULL; if (sibcall_p) ! { ! if (thunk_name != NULL) ! { ! if (need_prefix == indirect_thunk_prefix_bnd) ! fprintf (asm_out_file, "\tbnd jmp\t%s\n", thunk_name); ! else ! fprintf (asm_out_file, "\tjmp\t%s\n", thunk_name); ! } ! else ! output_indirect_thunk (need_prefix, regno); ! } else { if (thunk_name != NULL) { if (need_prefix == indirect_thunk_prefix_bnd) ! fprintf (asm_out_file, "\tbnd call\t%s\n", thunk_name); else ! fprintf (asm_out_file, "\tcall\t%s\n", thunk_name); return; } --- 28752,28768 ---- thunk_name = NULL; if (sibcall_p) ! ix86_output_jmp_thunk_or_indirect (thunk_name, need_prefix, regno); else { if (thunk_name != NULL) { if (need_prefix == indirect_thunk_prefix_bnd) ! fprintf (asm_out_file, "\tbnd call\t"); else ! fprintf (asm_out_file, "\tcall\t"); ! assemble_name (asm_out_file, thunk_name); ! putc ('\n', asm_out_file); return; } *************** ix86_output_indirect_branch_via_reg (rtx *** 28840,28854 **** ASM_OUTPUT_INTERNAL_LABEL (asm_out_file, indirectlabel1); ! if (thunk_name != NULL) ! { ! if (need_prefix == indirect_thunk_prefix_bnd) ! fprintf (asm_out_file, "\tbnd jmp\t%s\n", thunk_name); ! else ! fprintf (asm_out_file, "\tjmp\t%s\n", thunk_name); ! } ! else ! output_indirect_thunk (need_prefix, regno); ASM_OUTPUT_INTERNAL_LABEL (asm_out_file, indirectlabel2); --- 28786,28792 ---- ASM_OUTPUT_INTERNAL_LABEL (asm_out_file, indirectlabel1); ! ix86_output_jmp_thunk_or_indirect (thunk_name, need_prefix, regno); ASM_OUTPUT_INTERNAL_LABEL (asm_out_file, indirectlabel2); *************** ix86_output_indirect_branch_via_push (rt *** 28913,28927 **** if (sibcall_p) { output_asm_insn (push_buf, &call_op); ! if (thunk_name != NULL) ! { ! if (need_prefix == indirect_thunk_prefix_bnd) ! fprintf (asm_out_file, "\tbnd jmp\t%s\n", thunk_name); ! else ! fprintf (asm_out_file, "\tjmp\t%s\n", thunk_name); ! } ! else ! output_indirect_thunk (need_prefix, regno); } else { --- 28851,28857 ---- if (sibcall_p) { output_asm_insn (push_buf, &call_op); ! ix86_output_jmp_thunk_or_indirect (thunk_name, need_prefix, regno); } else { *************** ix86_output_indirect_branch_via_push (rt *** 28980,28994 **** output_asm_insn (push_buf, &call_op); ! if (thunk_name != NULL) ! { ! if (need_prefix == indirect_thunk_prefix_bnd) ! fprintf (asm_out_file, "\tbnd jmp\t%s\n", thunk_name); ! else ! fprintf (asm_out_file, "\tjmp\t%s\n", thunk_name); ! } ! else ! output_indirect_thunk (need_prefix, regno); ASM_OUTPUT_INTERNAL_LABEL (asm_out_file, indirectlabel2); --- 28910,28916 ---- output_asm_insn (push_buf, &call_op); ! ix86_output_jmp_thunk_or_indirect (thunk_name, need_prefix, regno); ASM_OUTPUT_INTERNAL_LABEL (asm_out_file, indirectlabel2); *************** ix86_output_function_return (bool long_p *** 29057,29069 **** if (need_prefix == indirect_thunk_prefix_bnd) { indirect_return_bnd_needed |= need_thunk; ! fprintf (asm_out_file, "\tbnd jmp\t%s\n", thunk_name); } else { indirect_return_needed |= need_thunk; ! fprintf (asm_out_file, "\tjmp\t%s\n", thunk_name); } } else output_indirect_thunk (need_prefix, INVALID_REGNUM); --- 28979,28993 ---- if (need_prefix == indirect_thunk_prefix_bnd) { indirect_return_bnd_needed |= need_thunk; ! fprintf (asm_out_file, "\tbnd jmp\t"); } else { indirect_return_needed |= need_thunk; ! fprintf (asm_out_file, "\tjmp\t"); } + assemble_name (asm_out_file, thunk_name); + putc ('\n', asm_out_file); } else output_indirect_thunk (need_prefix, INVALID_REGNUM); *************** ix86_output_indirect_function_return (rt *** 29104,29110 **** indirect_return_via_cx_bnd = true; indirect_thunks_bnd_used |= 1 << CX_REG; } ! fprintf (asm_out_file, "\tbnd jmp\t%s\n", thunk_name); } else { --- 29028,29034 ---- indirect_return_via_cx_bnd = true; indirect_thunks_bnd_used |= 1 << CX_REG; } ! fprintf (asm_out_file, "\tbnd jmp\t"); } else { *************** ix86_output_indirect_function_return (rt *** 29113,29120 **** indirect_return_via_cx = true; indirect_thunks_used |= 1 << CX_REG; } ! fprintf (asm_out_file, "\tjmp\t%s\n", thunk_name); } } else output_indirect_thunk (need_prefix, regno); --- 29037,29046 ---- indirect_return_via_cx = true; indirect_thunks_used |= 1 << CX_REG; } ! fprintf (asm_out_file, "\tjmp\t"); } + assemble_name (asm_out_file, thunk_name); + putc ('\n', asm_out_file); } else output_indirect_thunk (need_prefix, regno); *************** ix86_trampoline_init (rtx m_tramp, tree *** 30553,30561 **** the stack, we need to skip the first insn which pushes the (call-saved) register static chain; this push is 1 byte. */ offset += 5; disp = expand_binop (SImode, sub_optab, fnaddr, plus_constant (Pmode, XEXP (m_tramp, 0), ! offset - (MEM_P (chain) ? 1 : 0)), NULL_RTX, 1, OPTAB_DIRECT); emit_move_insn (mem, disp); } --- 30479,30492 ---- the stack, we need to skip the first insn which pushes the (call-saved) register static chain; this push is 1 byte. */ offset += 5; + int skip = MEM_P (chain) ? 1 : 0; + /* Skip ENDBR32 at the entry of the target function. */ + if (need_endbr + && !cgraph_node::get (fndecl)->only_called_directly_p ()) + skip += 4; disp = expand_binop (SImode, sub_optab, fnaddr, plus_constant (Pmode, XEXP (m_tramp, 0), ! offset - skip), NULL_RTX, 1, OPTAB_DIRECT); emit_move_insn (mem, disp); } *************** make_resolver_func (const tree default_d *** 32923,32928 **** --- 32854,32860 ---- } /* Build result decl and add to function_decl. */ t = build_decl (UNKNOWN_LOCATION, RESULT_DECL, NULL_TREE, ptr_type_node); + DECL_CONTEXT (t) = decl; DECL_ARTIFICIAL (t) = 1; DECL_IGNORED_P (t) = 1; DECL_RESULT (decl) = t; *************** ix86_vectorize_builtin_scatter (const_tr *** 39641,39647 **** static bool use_rsqrt_p () { ! return (TARGET_SSE_MATH && flag_finite_math_only && !flag_trapping_math && flag_unsafe_math_optimizations); --- 39573,39579 ---- static bool use_rsqrt_p () { ! return (TARGET_SSE && TARGET_SSE_MATH && flag_finite_math_only && !flag_trapping_math && flag_unsafe_math_optimizations); *************** ix86_md_asm_adjust (vec &outputs, v *** 44853,44863 **** { x = force_reg (dest_mode, const0_rtx); ! emit_insn (gen_movstrictqi ! (gen_lowpart (QImode, x), destqi)); } else ! x = gen_rtx_ZERO_EXTEND (dest_mode, destqi); } if (dest_mode != GET_MODE (dest)) --- 44785,44799 ---- { x = force_reg (dest_mode, const0_rtx); ! emit_insn (gen_movstrictqi (gen_lowpart (QImode, x), destqi)); } else ! { ! x = gen_rtx_ZERO_EXTEND (dest_mode, destqi); ! if (dest_mode == GET_MODE (dest) ! && !register_operand (dest, GET_MODE (dest))) ! x = force_reg (dest_mode, x); ! } } if (dest_mode != GET_MODE (dest)) *************** ix86_expand_floorceildf_32 (rtx operand0 *** 45705,45712 **** x2 -= 1; Compensate. Ceil: if (x2 < x) ! x2 -= -1; ! return x2; */ machine_mode mode = GET_MODE (operand0); rtx xa, TWO52, tmp, one, res, mask; --- 45641,45650 ---- x2 -= 1; Compensate. Ceil: if (x2 < x) ! x2 += 1; ! if (HONOR_SIGNED_ZEROS (mode)) ! x2 = copysign (x2, x); ! return x2; */ machine_mode mode = GET_MODE (operand0); rtx xa, TWO52, tmp, one, res, mask; *************** ix86_expand_floorceildf_32 (rtx operand0 *** 45732,45748 **** /* xa = copysign (xa, operand1) */ ix86_sse_copysign_to_positive (xa, xa, res, mask); ! /* generate 1.0 or -1.0 */ ! one = force_reg (mode, ! const_double_from_real_value (do_floor ! ? dconst1 : dconstm1, mode)); /* Compensate: xa = xa - (xa > operand1 ? 1 : 0) */ tmp = ix86_expand_sse_compare_mask (UNGT, xa, res, !do_floor); emit_insn (gen_rtx_SET (tmp, gen_rtx_AND (mode, one, tmp))); ! /* We always need to subtract here to preserve signed zero. */ ! tmp = expand_simple_binop (mode, MINUS, xa, tmp, NULL_RTX, 0, OPTAB_DIRECT); emit_move_insn (res, tmp); emit_label (label); --- 45670,45685 ---- /* xa = copysign (xa, operand1) */ ix86_sse_copysign_to_positive (xa, xa, res, mask); ! /* generate 1.0 */ ! one = force_reg (mode, const_double_from_real_value (dconst1, mode)); /* Compensate: xa = xa - (xa > operand1 ? 1 : 0) */ tmp = ix86_expand_sse_compare_mask (UNGT, xa, res, !do_floor); emit_insn (gen_rtx_SET (tmp, gen_rtx_AND (mode, one, tmp))); ! tmp = expand_simple_binop (mode, do_floor ? MINUS : PLUS, xa, tmp, NULL_RTX, 0, OPTAB_DIRECT); + if (!do_floor && HONOR_SIGNED_ZEROS (mode)) + ix86_sse_copysign_to_positive (tmp, tmp, res, mask); emit_move_insn (res, tmp); emit_label (label); *************** static bool *** 46379,46385 **** expand_vec_perm_blend (struct expand_vec_perm_d *d) { machine_mode mmode, vmode = d->vmode; ! unsigned i, mask, nelt = d->nelt; rtx target, op0, op1, maskop, x; rtx rperm[32], vperm; --- 46316,46323 ---- expand_vec_perm_blend (struct expand_vec_perm_d *d) { machine_mode mmode, vmode = d->vmode; ! unsigned i, nelt = d->nelt; ! unsigned HOST_WIDE_INT mask; rtx target, op0, op1, maskop, x; rtx rperm[32], vperm; *************** expand_vec_perm_blend (struct expand_vec *** 46433,46439 **** case E_V16SImode: case E_V8DImode: for (i = 0; i < nelt; ++i) ! mask |= (d->perm[i] >= nelt) << i; break; case E_V2DImode: --- 46371,46377 ---- case E_V16SImode: case E_V8DImode: for (i = 0; i < nelt; ++i) ! mask |= ((unsigned HOST_WIDE_INT) (d->perm[i] >= nelt)) << i; break; case E_V2DImode: *************** ix86_float_exceptions_rounding_supported *** 50999,51005 **** there is no adddf3 pattern (since x87 floating point only has XFmode operations) so the default hook implementation gets this wrong. */ ! return TARGET_80387 || TARGET_SSE_MATH; } /* Implement TARGET_ATOMIC_ASSIGN_EXPAND_FENV. */ --- 50937,50943 ---- there is no adddf3 pattern (since x87 floating point only has XFmode operations) so the default hook implementation gets this wrong. */ ! return TARGET_80387 || (TARGET_SSE && TARGET_SSE_MATH); } /* Implement TARGET_ATOMIC_ASSIGN_EXPAND_FENV. */ *************** ix86_float_exceptions_rounding_supported *** 51007,51013 **** static void ix86_atomic_assign_expand_fenv (tree *hold, tree *clear, tree *update) { ! if (!TARGET_80387 && !TARGET_SSE_MATH) return; tree exceptions_var = create_tmp_var_raw (integer_type_node); if (TARGET_80387) --- 50945,50951 ---- static void ix86_atomic_assign_expand_fenv (tree *hold, tree *clear, tree *update) { ! if (!TARGET_80387 && !(TARGET_SSE && TARGET_SSE_MATH)) return; tree exceptions_var = create_tmp_var_raw (integer_type_node); if (TARGET_80387) *************** ix86_atomic_assign_expand_fenv (tree *ho *** 51042,51048 **** tree update_fldenv = build_call_expr (fldenv, 1, fenv_addr); *update = build2 (COMPOUND_EXPR, void_type_node, *update, update_fldenv); } ! if (TARGET_SSE_MATH) { tree mxcsr_orig_var = create_tmp_var_raw (unsigned_type_node); tree mxcsr_mod_var = create_tmp_var_raw (unsigned_type_node); --- 50980,50986 ---- tree update_fldenv = build_call_expr (fldenv, 1, fenv_addr); *update = build2 (COMPOUND_EXPR, void_type_node, *update, update_fldenv); } ! if (TARGET_SSE && TARGET_SSE_MATH) { tree mxcsr_orig_var = create_tmp_var_raw (unsigned_type_node); tree mxcsr_mod_var = create_tmp_var_raw (unsigned_type_node); *************** ix86_excess_precision (enum excess_preci *** 51399,51405 **** return FLT_EVAL_METHOD_PROMOTE_TO_FLOAT; else if (!TARGET_MIX_SSE_I387) { ! if (!TARGET_SSE_MATH) return FLT_EVAL_METHOD_PROMOTE_TO_LONG_DOUBLE; else if (TARGET_SSE2) return FLT_EVAL_METHOD_PROMOTE_TO_FLOAT; --- 51337,51343 ---- return FLT_EVAL_METHOD_PROMOTE_TO_FLOAT; else if (!TARGET_MIX_SSE_I387) { ! if (!(TARGET_SSE && TARGET_SSE_MATH)) return FLT_EVAL_METHOD_PROMOTE_TO_LONG_DOUBLE; else if (TARGET_SSE2) return FLT_EVAL_METHOD_PROMOTE_TO_FLOAT; diff -Nrcpad gcc-8.3.0/gcc/config/i386/i386.h gcc-8.4.0/gcc/config/i386/i386.h *** gcc-8.3.0/gcc/config/i386/i386.h Sun Nov 18 20:41:32 2018 --- gcc-8.4.0/gcc/config/i386/i386.h Wed Mar 4 08:30:00 2020 *************** extern tree x86_mfence; *** 621,627 **** /* Replace MACH-O, ifdefs by in-line tests, where possible. (a) Macros defined in config/i386/darwin.h */ #define TARGET_MACHO 0 ! #define TARGET_MACHO_BRANCH_ISLANDS 0 #define MACHOPIC_ATT_STUB 0 /* (b) Macros defined in config/darwin.h */ #define MACHO_DYNAMIC_NO_PIC_P 0 --- 621,627 ---- /* Replace MACH-O, ifdefs by in-line tests, where possible. (a) Macros defined in config/i386/darwin.h */ #define TARGET_MACHO 0 ! #define TARGET_MACHO_SYMBOL_STUBS 0 #define MACHOPIC_ATT_STUB 0 /* (b) Macros defined in config/darwin.h */ #define MACHO_DYNAMIC_NO_PIC_P 0 *************** extern const char *host_detect_local_cpu *** 1062,1070 **** /*xmm8,xmm9,xmm10,xmm11,xmm12,xmm13,xmm14,xmm15*/ \ 6, 6, 6, 6, 6, 6, 6, 6, \ /*xmm16,xmm17,xmm18,xmm19,xmm20,xmm21,xmm22,xmm23*/ \ ! 6, 6, 6, 6, 6, 6, 6, 6, \ /*xmm24,xmm25,xmm26,xmm27,xmm28,xmm29,xmm30,xmm31*/ \ ! 6, 6, 6, 6, 6, 6, 6, 6, \ /* k0, k1, k2, k3, k4, k5, k6, k7*/ \ 1, 1, 1, 1, 1, 1, 1, 1, \ /* b0, b1, b2, b3*/ \ --- 1062,1070 ---- /*xmm8,xmm9,xmm10,xmm11,xmm12,xmm13,xmm14,xmm15*/ \ 6, 6, 6, 6, 6, 6, 6, 6, \ /*xmm16,xmm17,xmm18,xmm19,xmm20,xmm21,xmm22,xmm23*/ \ ! 1, 1, 1, 1, 1, 1, 1, 1, \ /*xmm24,xmm25,xmm26,xmm27,xmm28,xmm29,xmm30,xmm31*/ \ ! 1, 1, 1, 1, 1, 1, 1, 1, \ /* k0, k1, k2, k3, k4, k5, k6, k7*/ \ 1, 1, 1, 1, 1, 1, 1, 1, \ /* b0, b1, b2, b3*/ \ *************** extern int const svr4_dbx_register_map[F *** 2227,2232 **** --- 2227,2257 ---- #define ASM_OUTPUT_FUNCTION_LABEL(FILE, NAME, DECL) \ ix86_asm_output_function_label ((FILE), (NAME), (DECL)) + /* A C statement (sans semicolon) to output a reference to SYMBOL_REF SYM. + If not defined, assemble_name will be used to output the name of the + symbol. This macro may be used to modify the way a symbol is referenced + depending on information encoded by TARGET_ENCODE_SECTION_INFO. */ + + #ifndef ASM_OUTPUT_SYMBOL_REF + #define ASM_OUTPUT_SYMBOL_REF(FILE, SYM) \ + do { \ + const char *name \ + = assemble_name_resolve (XSTR (x, 0)); \ + /* In -masm=att wrap identifiers that start with $ \ + into parens. */ \ + if (ASSEMBLER_DIALECT == ASM_ATT \ + && name[0] == '$' \ + && user_label_prefix[0] == '\0') \ + { \ + fputc ('(', (FILE)); \ + assemble_name_raw ((FILE), name); \ + fputc (')', (FILE)); \ + } \ + else \ + assemble_name_raw ((FILE), name); \ + } while (0) + #endif + /* Under some conditions we need jump tables in the text section, because the assembler cannot handle label differences between sections. This is the case for x86_64 on Mach-O for example. */ diff -Nrcpad gcc-8.3.0/gcc/config/i386/i386.md gcc-8.4.0/gcc/config/i386/i386.md *** gcc-8.3.0/gcc/config/i386/i386.md Tue Jan 8 09:56:36 2019 --- gcc-8.4.0/gcc/config/i386/i386.md Wed Mar 4 08:30:00 2020 *************** *** 8942,8948 **** [(parallel [(set (match_dup 0) (zero_extend:DI (and:SI (match_dup 1) (match_dup 2)))) (clobber (reg:CC FLAGS_REG))])] ! "operands[2] = gen_lowpart (SImode, operands[2]);") ;; See comment for addsi_1_zext why we do use nonimmediate_operand (define_insn "*andsi_1_zext" --- 8942,8965 ---- [(parallel [(set (match_dup 0) (zero_extend:DI (and:SI (match_dup 1) (match_dup 2)))) (clobber (reg:CC FLAGS_REG))])] ! { ! if (GET_CODE (operands[2]) == SYMBOL_REF ! || GET_CODE (operands[2]) == LABEL_REF) ! { ! operands[2] = shallow_copy_rtx (operands[2]); ! PUT_MODE (operands[2], SImode); ! } ! else if (GET_CODE (operands[2]) == CONST) ! { ! /* (const:DI (plus:DI (symbol_ref:DI ("...")) (const_int N))) */ ! operands[2] = copy_rtx (operands[2]); ! PUT_MODE (operands[2], SImode); ! PUT_MODE (XEXP (operands[2], 0), SImode); ! PUT_MODE (XEXP (XEXP (operands[2], 0), 0), SImode); ! } ! else ! operands[2] = gen_lowpart (SImode, operands[2]); ! }) ;; See comment for addsi_1_zext why we do use nonimmediate_operand (define_insn "*andsi_1_zext" diff -Nrcpad gcc-8.3.0/gcc/config/i386/intelmic-mkoffload.c gcc-8.4.0/gcc/config/i386/intelmic-mkoffload.c *** gcc-8.3.0/gcc/config/i386/intelmic-mkoffload.c Wed Jan 3 10:03:58 2018 --- gcc-8.4.0/gcc/config/i386/intelmic-mkoffload.c Wed Mar 4 08:30:00 2020 *************** prepare_target_image (const char *target *** 453,460 **** if (verbose) obstack_ptr_grow (&argv_obstack, "-v"); obstack_ptr_grow (&argv_obstack, "-xlto"); - obstack_ptr_grow (&argv_obstack, "-shared"); - obstack_ptr_grow (&argv_obstack, "-fPIC"); obstack_ptr_grow (&argv_obstack, opt1); for (int i = 1; i < argc; i++) { --- 453,458 ---- *************** prepare_target_image (const char *target *** 466,471 **** --- 464,472 ---- if (!out_obj_filename) fatal_error (input_location, "output file not specified"); obstack_ptr_grow (&argv_obstack, opt2); + /* NB: Put -fPIC and -shared the last to create shared library. */ + obstack_ptr_grow (&argv_obstack, "-fPIC"); + obstack_ptr_grow (&argv_obstack, "-shared"); obstack_ptr_grow (&argv_obstack, "-o"); obstack_ptr_grow (&argv_obstack, target_so_filename); compile_for_target (&argv_obstack); diff -Nrcpad gcc-8.3.0/gcc/config/i386/mmx.md gcc-8.4.0/gcc/config/i386/mmx.md *** gcc-8.3.0/gcc/config/i386/mmx.md Wed Jan 3 10:03:58 2018 --- gcc-8.4.0/gcc/config/i386/mmx.md Wed Mar 4 08:30:00 2020 *************** *** 608,620 **** (define_insn "*vec_extractv2sf_1" [(set (match_operand:SF 0 "nonimmediate_operand" "=y,x,x,y,x,f,r") (vec_select:SF ! (match_operand:V2SF 1 "nonimmediate_operand" " 0,x,x,o,o,o,o") (parallel [(const_int 1)])))] "TARGET_MMX && !(MEM_P (operands[0]) && MEM_P (operands[1]))" "@ punpckhdq\t%0, %0 %vmovshdup\t{%1, %0|%0, %1} ! shufps\t{$0xe5, %1, %0|%0, %1, 0xe5} # # # --- 608,620 ---- (define_insn "*vec_extractv2sf_1" [(set (match_operand:SF 0 "nonimmediate_operand" "=y,x,x,y,x,f,r") (vec_select:SF ! (match_operand:V2SF 1 "nonimmediate_operand" " 0,x,0,o,o,o,o") (parallel [(const_int 1)])))] "TARGET_MMX && !(MEM_P (operands[0]) && MEM_P (operands[1]))" "@ punpckhdq\t%0, %0 %vmovshdup\t{%1, %0|%0, %1} ! shufps\t{$0xe5, %0, %0|%0, %0, 0xe5} # # # *************** *** 1302,1314 **** (define_insn "*vec_extractv2si_1" [(set (match_operand:SI 0 "nonimmediate_operand" "=y,x,x,y,x,r") (vec_select:SI ! (match_operand:V2SI 1 "nonimmediate_operand" " 0,x,x,o,o,o") (parallel [(const_int 1)])))] "TARGET_MMX && !(MEM_P (operands[0]) && MEM_P (operands[1]))" "@ punpckhdq\t%0, %0 %vpshufd\t{$0xe5, %1, %0|%0, %1, 0xe5} ! shufps\t{$0xe5, %1, %0|%0, %1, 0xe5} # # #" --- 1302,1314 ---- (define_insn "*vec_extractv2si_1" [(set (match_operand:SI 0 "nonimmediate_operand" "=y,x,x,y,x,r") (vec_select:SI ! (match_operand:V2SI 1 "nonimmediate_operand" " 0,x,0,o,o,o") (parallel [(const_int 1)])))] "TARGET_MMX && !(MEM_P (operands[0]) && MEM_P (operands[1]))" "@ punpckhdq\t%0, %0 %vpshufd\t{$0xe5, %1, %0|%0, %1, 0xe5} ! shufps\t{$0xe5, %0, %0|%0, %0, 0xe5} # # #" diff -Nrcpad gcc-8.3.0/gcc/config/i386/sse.md gcc-8.4.0/gcc/config/i386/sse.md *** gcc-8.3.0/gcc/config/i386/sse.md Thu Feb 7 14:42:54 2019 --- gcc-8.4.0/gcc/config/i386/sse.md Wed Mar 4 08:30:00 2020 *************** *** 1537,1543 **** [(set (match_operand:SWI1248_AVX512BWDQ 0 "register_operand" "=k") (any_lshift:SWI1248_AVX512BWDQ (match_operand:SWI1248_AVX512BWDQ 1 "register_operand" "k") ! (match_operand:QI 2 "immediate_operand" "n"))) (unspec [(const_int 0)] UNSPEC_MASKOP)] "TARGET_AVX512F" "k\t{%2, %1, %0|%0, %1, %2}" --- 1537,1543 ---- [(set (match_operand:SWI1248_AVX512BWDQ 0 "register_operand" "=k") (any_lshift:SWI1248_AVX512BWDQ (match_operand:SWI1248_AVX512BWDQ 1 "register_operand" "k") ! (match_operand 2 "const_0_to_255_operand" "n"))) (unspec [(const_int 0)] UNSPEC_MASKOP)] "TARGET_AVX512F" "k\t{%2, %1, %0|%0, %1, %2}" *************** *** 1908,1914 **** [(set (match_operand:VF1_128_256 0 "register_operand") (unspec:VF1_128_256 [(match_operand:VF1_128_256 1 "vector_operand")] UNSPEC_RSQRT))] ! "TARGET_SSE_MATH" { ix86_emit_swsqrtsf (operands[0], operands[1], mode, true); DONE; --- 1908,1914 ---- [(set (match_operand:VF1_128_256 0 "register_operand") (unspec:VF1_128_256 [(match_operand:VF1_128_256 1 "vector_operand")] UNSPEC_RSQRT))] ! "TARGET_SSE && TARGET_SSE_MATH" { ix86_emit_swsqrtsf (operands[0], operands[1], mode, true); DONE; *************** *** 3075,3087 **** (match_operand: 3 "register_operand")))] "TARGET_AVX512BW") (define_expand "vcond_mask_" ! [(set (match_operand:VI_256 0 "register_operand") ! (vec_merge:VI_256 ! (match_operand:VI_256 1 "nonimmediate_operand") ! (match_operand:VI_256 2 "vector_move_operand") (match_operand: 3 "register_operand")))] ! "TARGET_AVX2" { ix86_expand_sse_movcc (operands[0], operands[3], operands[1], operands[2]); --- 3075,3093 ---- (match_operand: 3 "register_operand")))] "TARGET_AVX512BW") + ;; As vcondv4div4df and vcondv8siv8sf are enabled already with TARGET_AVX, + ;; and their condition can be folded late into a constant, we need to + ;; support vcond_mask_v4div4di and vcond_mask_v8siv8si for TARGET_AVX. + (define_mode_iterator VI_256_AVX2 [(V32QI "TARGET_AVX2") (V16HI "TARGET_AVX2") + V8SI V4DI]) + (define_expand "vcond_mask_" ! [(set (match_operand:VI_256_AVX2 0 "register_operand") ! (vec_merge:VI_256_AVX2 ! (match_operand:VI_256_AVX2 1 "nonimmediate_operand") ! (match_operand:VI_256_AVX2 2 "vector_move_operand") (match_operand: 3 "register_operand")))] ! "TARGET_AVX" { ix86_expand_sse_movcc (operands[0], operands[3], operands[1], operands[2]); *************** *** 7599,7611 **** (set_attr "prefix" "evex") (set_attr "mode" "")]) (define_expand "avx512vl_vextractf128" [(match_operand: 0 "nonimmediate_operand") ! (match_operand:VI48F_256 1 "register_operand") (match_operand:SI 2 "const_0_to_1_operand") (match_operand: 3 "vector_move_operand") (match_operand:QI 4 "register_operand")] ! "TARGET_AVX512DQ && TARGET_AVX512VL" { rtx (*insn)(rtx, rtx, rtx, rtx); rtx dest = operands[0]; --- 7605,7620 ---- (set_attr "prefix" "evex") (set_attr "mode" "")]) + (define_mode_iterator VI48F_256_DQ + [V8SI V8SF (V4DI "TARGET_AVX512DQ") (V4DF "TARGET_AVX512DQ")]) + (define_expand "avx512vl_vextractf128" [(match_operand: 0 "nonimmediate_operand") ! (match_operand:VI48F_256_DQ 1 "register_operand") (match_operand:SI 2 "const_0_to_1_operand") (match_operand: 3 "vector_move_operand") (match_operand:QI 4 "register_operand")] ! "TARGET_AVX512VL" { rtx (*insn)(rtx, rtx, rtx, rtx); rtx dest = operands[0]; *************** *** 7673,7686 **** (const_int 4) (const_int 5) (const_int 6) (const_int 7)])))] "TARGET_AVX512F ! && && ( || !(MEM_P (operands[0]) && MEM_P (operands[1])))" { if ( || (!TARGET_AVX512VL && !REG_P (operands[0]) && EXT_REX_SSE_REG_P (operands[1]))) ! return "vextract32x8\t{$0x0, %1, %0|%0, %1, 0x0}"; else return "#"; } --- 7682,7700 ---- (const_int 4) (const_int 5) (const_int 6) (const_int 7)])))] "TARGET_AVX512F ! && && ( || !(MEM_P (operands[0]) && MEM_P (operands[1])))" { if ( || (!TARGET_AVX512VL && !REG_P (operands[0]) && EXT_REX_SSE_REG_P (operands[1]))) ! { ! if (TARGET_AVX512DQ) ! return "vextract32x8\t{$0x0, %1, %0|%0, %1, 0x0}"; ! else ! return "vextract64x4\t{$0x0, %1, %0|%0, %1, 0x0}"; ! } else return "#"; } *************** *** 7790,7796 **** (parallel [(const_int 0) (const_int 1) (const_int 2) (const_int 3)])))] "TARGET_AVX ! && && && ( || !(MEM_P (operands[0]) && MEM_P (operands[1])))" { if () --- 7804,7810 ---- (parallel [(const_int 0) (const_int 1) (const_int 2) (const_int 3)])))] "TARGET_AVX ! && && ( || !(MEM_P (operands[0]) && MEM_P (operands[1])))" { if () *************** *** 15172,15178 **** } }) ! (define_insn "abs2" [(set (match_operand:MMXMODEI 0 "register_operand" "=y") (abs:MMXMODEI (match_operand:MMXMODEI 1 "nonimmediate_operand" "ym")))] --- 15186,15192 ---- } }) ! (define_insn "ssse3_abs2" [(set (match_operand:MMXMODEI 0 "register_operand" "=y") (abs:MMXMODEI (match_operand:MMXMODEI 1 "nonimmediate_operand" "ym")))] *************** *** 16271,16279 **** case 3: /* %X5 so that we don't emit any *WORD PTR for -masm=intel, as gas changed what it requires incompatibly. */ ! return "vgatherpf0ps\t{%5%{%0%}|%X5%{%0%}}"; case 2: ! return "vgatherpf1ps\t{%5%{%0%}|%X5%{%0%}}"; default: gcc_unreachable (); } --- 16285,16293 ---- case 3: /* %X5 so that we don't emit any *WORD PTR for -masm=intel, as gas changed what it requires incompatibly. */ ! return "%M2vgatherpf0ps\t{%5%{%0%}|%X5%{%0%}}"; case 2: ! return "%M2vgatherpf1ps\t{%5%{%0%}|%X5%{%0%}}"; default: gcc_unreachable (); } *************** *** 16318,16326 **** case 3: /* %X5 so that we don't emit any *WORD PTR for -masm=intel, as gas changed what it requires incompatibly. */ ! return "vgatherpf0pd\t{%5%{%0%}|%X5%{%0%}}"; case 2: ! return "vgatherpf1pd\t{%5%{%0%}|%X5%{%0%}}"; default: gcc_unreachable (); } --- 16332,16340 ---- case 3: /* %X5 so that we don't emit any *WORD PTR for -masm=intel, as gas changed what it requires incompatibly. */ ! return "%M2vgatherpf0pd\t{%5%{%0%}|%X5%{%0%}}"; case 2: ! return "%M2vgatherpf1pd\t{%5%{%0%}|%X5%{%0%}}"; default: gcc_unreachable (); } *************** *** 16366,16375 **** case 7: /* %X5 so that we don't emit any *WORD PTR for -masm=intel, as gas changed what it requires incompatibly. */ ! return "vscatterpf0ps\t{%5%{%0%}|%X5%{%0%}}"; case 2: case 6: ! return "vscatterpf1ps\t{%5%{%0%}|%X5%{%0%}}"; default: gcc_unreachable (); } --- 16380,16389 ---- case 7: /* %X5 so that we don't emit any *WORD PTR for -masm=intel, as gas changed what it requires incompatibly. */ ! return "%M2vscatterpf0ps\t{%5%{%0%}|%X5%{%0%}}"; case 2: case 6: ! return "%M2vscatterpf1ps\t{%5%{%0%}|%X5%{%0%}}"; default: gcc_unreachable (); } *************** *** 16415,16424 **** case 7: /* %X5 so that we don't emit any *WORD PTR for -masm=intel, as gas changed what it requires incompatibly. */ ! return "vscatterpf0pd\t{%5%{%0%}|%X5%{%0%}}"; case 2: case 6: ! return "vscatterpf1pd\t{%5%{%0%}|%X5%{%0%}}"; default: gcc_unreachable (); } --- 16429,16438 ---- case 7: /* %X5 so that we don't emit any *WORD PTR for -masm=intel, as gas changed what it requires incompatibly. */ ! return "%M2vscatterpf0pd\t{%5%{%0%}|%X5%{%0%}}"; case 2: case 6: ! return "%M2vscatterpf1pd\t{%5%{%0%}|%X5%{%0%}}"; default: gcc_unreachable (); } *************** *** 19157,19163 **** UNSPEC_GATHER)) (clobber (match_scratch:VEC_GATHER_MODE 1 "=&x"))] "TARGET_AVX2" ! "vgatherd\t{%1, %7, %0|%0, %7, %1}" [(set_attr "type" "ssemov") (set_attr "prefix" "vex") (set_attr "mode" "")]) --- 19171,19177 ---- UNSPEC_GATHER)) (clobber (match_scratch:VEC_GATHER_MODE 1 "=&x"))] "TARGET_AVX2" ! "%M3vgatherd\t{%1, %7, %0|%0, %7, %1}" [(set_attr "type" "ssemov") (set_attr "prefix" "vex") (set_attr "mode" "")]) *************** *** 19177,19183 **** UNSPEC_GATHER)) (clobber (match_scratch:VEC_GATHER_MODE 1 "=&x"))] "TARGET_AVX2" ! "vgatherd\t{%1, %6, %0|%0, %6, %1}" [(set_attr "type" "ssemov") (set_attr "prefix" "vex") (set_attr "mode" "")]) --- 19191,19197 ---- UNSPEC_GATHER)) (clobber (match_scratch:VEC_GATHER_MODE 1 "=&x"))] "TARGET_AVX2" ! "%M2vgatherd\t{%1, %6, %0|%0, %6, %1}" [(set_attr "type" "ssemov") (set_attr "prefix" "vex") (set_attr "mode" "")]) *************** *** 19218,19224 **** UNSPEC_GATHER)) (clobber (match_scratch:VEC_GATHER_MODE 1 "=&x"))] "TARGET_AVX2" ! "vgatherq\t{%5, %7, %2|%2, %7, %5}" [(set_attr "type" "ssemov") (set_attr "prefix" "vex") (set_attr "mode" "")]) --- 19232,19238 ---- UNSPEC_GATHER)) (clobber (match_scratch:VEC_GATHER_MODE 1 "=&x"))] "TARGET_AVX2" ! "%M3vgatherq\t{%5, %7, %2|%2, %7, %5}" [(set_attr "type" "ssemov") (set_attr "prefix" "vex") (set_attr "mode" "")]) *************** *** 19240,19247 **** "TARGET_AVX2" { if (mode != mode) ! return "vgatherq\t{%4, %6, %x0|%x0, %6, %4}"; ! return "vgatherq\t{%4, %6, %0|%0, %6, %4}"; } [(set_attr "type" "ssemov") (set_attr "prefix" "vex") --- 19254,19261 ---- "TARGET_AVX2" { if (mode != mode) ! return "%M2vgatherq\t{%4, %6, %x0|%x0, %6, %4}"; ! return "%M2vgatherq\t{%4, %6, %0|%0, %6, %4}"; } [(set_attr "type" "ssemov") (set_attr "prefix" "vex") *************** *** 19265,19271 **** (const_int 2) (const_int 3)]))) (clobber (match_scratch:VI4F_256 1 "=&x"))] "TARGET_AVX2" ! "vgatherq\t{%5, %7, %0|%0, %7, %5}" [(set_attr "type" "ssemov") (set_attr "prefix" "vex") (set_attr "mode" "")]) --- 19279,19285 ---- (const_int 2) (const_int 3)]))) (clobber (match_scratch:VI4F_256 1 "=&x"))] "TARGET_AVX2" ! "%M3vgatherq\t{%5, %7, %0|%0, %7, %5}" [(set_attr "type" "ssemov") (set_attr "prefix" "vex") (set_attr "mode" "")]) *************** *** 19288,19294 **** (const_int 2) (const_int 3)]))) (clobber (match_scratch:VI4F_256 1 "=&x"))] "TARGET_AVX2" ! "vgatherq\t{%4, %6, %0|%0, %6, %4}" [(set_attr "type" "ssemov") (set_attr "prefix" "vex") (set_attr "mode" "")]) --- 19302,19308 ---- (const_int 2) (const_int 3)]))) (clobber (match_scratch:VI4F_256 1 "=&x"))] "TARGET_AVX2" ! "%M2vgatherq\t{%4, %6, %0|%0, %6, %4}" [(set_attr "type" "ssemov") (set_attr "prefix" "vex") (set_attr "mode" "")]) *************** *** 19328,19334 **** "TARGET_AVX512F" ;; %X6 so that we don't emit any *WORD PTR for -masm=intel, as ;; gas changed what it requires incompatibly. ! "vgatherd\t{%6, %0%{%2%}|%0%{%2%}, %X6}" [(set_attr "type" "ssemov") (set_attr "prefix" "evex") (set_attr "mode" "")]) --- 19342,19348 ---- "TARGET_AVX512F" ;; %X6 so that we don't emit any *WORD PTR for -masm=intel, as ;; gas changed what it requires incompatibly. ! "%M4vgatherd\t{%6, %0%{%2%}|%0%{%2%}, %X6}" [(set_attr "type" "ssemov") (set_attr "prefix" "evex") (set_attr "mode" "")]) *************** *** 19349,19355 **** "TARGET_AVX512F" ;; %X5 so that we don't emit any *WORD PTR for -masm=intel, as ;; gas changed what it requires incompatibly. ! "vgatherd\t{%5, %0%{%1%}|%0%{%1%}, %X5}" [(set_attr "type" "ssemov") (set_attr "prefix" "evex") (set_attr "mode" "")]) --- 19363,19369 ---- "TARGET_AVX512F" ;; %X5 so that we don't emit any *WORD PTR for -masm=intel, as ;; gas changed what it requires incompatibly. ! "%M3vgatherd\t{%5, %0%{%1%}|%0%{%1%}, %X5}" [(set_attr "type" "ssemov") (set_attr "prefix" "evex") (set_attr "mode" "")]) *************** *** 19390,19396 **** "TARGET_AVX512F" ;; %X6 so that we don't emit any *WORD PTR for -masm=intel, as ;; gas changed what it requires incompatibly. ! "vgatherq\t{%6, %1%{%2%}|%1%{%2%}, %X6}" [(set_attr "type" "ssemov") (set_attr "prefix" "evex") (set_attr "mode" "")]) --- 19404,19410 ---- "TARGET_AVX512F" ;; %X6 so that we don't emit any *WORD PTR for -masm=intel, as ;; gas changed what it requires incompatibly. ! "%M4vgatherq\t{%6, %1%{%2%}|%1%{%2%}, %X6}" [(set_attr "type" "ssemov") (set_attr "prefix" "evex") (set_attr "mode" "")]) *************** *** 19415,19425 **** if (mode != mode) { if ( != 64) ! return "vgatherq\t{%5, %x0%{%1%}|%x0%{%1%}, %X5}"; else ! return "vgatherq\t{%5, %t0%{%1%}|%t0%{%1%}, %X5}"; } ! return "vgatherq\t{%5, %0%{%1%}|%0%{%1%}, %X5}"; } [(set_attr "type" "ssemov") (set_attr "prefix" "evex") --- 19429,19439 ---- if (mode != mode) { if ( != 64) ! return "%M3vgatherq\t{%5, %x0%{%1%}|%x0%{%1%}, %X5}"; else ! return "%M3vgatherq\t{%5, %t0%{%1%}|%t0%{%1%}, %X5}"; } ! return "%M3vgatherq\t{%5, %0%{%1%}|%0%{%1%}, %X5}"; } [(set_attr "type" "ssemov") (set_attr "prefix" "evex") *************** *** 19458,19464 **** "TARGET_AVX512F" ;; %X5 so that we don't emit any *WORD PTR for -masm=intel, as ;; gas changed what it requires incompatibly. ! "vscatterd\t{%3, %5%{%1%}|%X5%{%1%}, %3}" [(set_attr "type" "ssemov") (set_attr "prefix" "evex") (set_attr "mode" "")]) --- 19472,19478 ---- "TARGET_AVX512F" ;; %X5 so that we don't emit any *WORD PTR for -masm=intel, as ;; gas changed what it requires incompatibly. ! "%M0vscatterd\t{%3, %5%{%1%}|%X5%{%1%}, %3}" [(set_attr "type" "ssemov") (set_attr "prefix" "evex") (set_attr "mode" "")]) *************** *** 19496,19502 **** "TARGET_AVX512F" ;; %X5 so that we don't emit any *WORD PTR for -masm=intel, as ;; gas changed what it requires incompatibly. ! "vscatterq\t{%3, %5%{%1%}|%X5%{%1%}, %3}" [(set_attr "type" "ssemov") (set_attr "prefix" "evex") (set_attr "mode" "")]) --- 19510,19516 ---- "TARGET_AVX512F" ;; %X5 so that we don't emit any *WORD PTR for -masm=intel, as ;; gas changed what it requires incompatibly. ! "%M0vscatterq\t{%3, %5%{%1%}|%X5%{%1%}, %3}" [(set_attr "type" "ssemov") (set_attr "prefix" "evex") (set_attr "mode" "")]) *************** *** 19636,19642 **** [(set (match_operand: 0 "register_operand" "=Yk") (unspec: [(match_operand:VF_AVX512VL 1 "register_operand" "v") ! (match_operand:QI 2 "const_0_to_255_operand" "n")] UNSPEC_FPCLASS))] "TARGET_AVX512DQ" "vfpclass\t{%2, %1, %0|%0, %1, %2}"; --- 19650,19656 ---- [(set (match_operand: 0 "register_operand" "=Yk") (unspec: [(match_operand:VF_AVX512VL 1 "register_operand" "v") ! (match_operand 2 "const_0_to_255_operand" "n")] UNSPEC_FPCLASS))] "TARGET_AVX512DQ" "vfpclass\t{%2, %1, %0|%0, %1, %2}"; *************** *** 19650,19656 **** (and: (unspec: [(match_operand:VF_128 1 "register_operand" "v") ! (match_operand:QI 2 "const_0_to_255_operand" "n")] UNSPEC_FPCLASS) (const_int 1)))] "TARGET_AVX512DQ" --- 19664,19670 ---- (and: (unspec: [(match_operand:VF_128 1 "register_operand" "v") ! (match_operand 2 "const_0_to_255_operand" "n")] UNSPEC_FPCLASS) (const_int 1)))] "TARGET_AVX512DQ" *************** *** 20255,20261 **** (unspec:VI1_AVX512F [(match_operand:VI1_AVX512F 1 "register_operand" "%0,x,v") (match_operand:VI1_AVX512F 2 "nonimmediate_operand" "xBm,xm,vm") ! (match_operand:QI 3 "const_0_to_255_operand" "n,n,n")] UNSPEC_GF2P8AFFINEINV))] "TARGET_GFNI" "@ --- 20269,20275 ---- (unspec:VI1_AVX512F [(match_operand:VI1_AVX512F 1 "register_operand" "%0,x,v") (match_operand:VI1_AVX512F 2 "nonimmediate_operand" "xBm,xm,vm") ! (match_operand 3 "const_0_to_255_operand" "n,n,n")] UNSPEC_GF2P8AFFINEINV))] "TARGET_GFNI" "@ *************** *** 20273,20279 **** (unspec:VI1_AVX512F [(match_operand:VI1_AVX512F 1 "register_operand" "%0,x,v") (match_operand:VI1_AVX512F 2 "nonimmediate_operand" "xBm,xm,vm") ! (match_operand:QI 3 "const_0_to_255_operand" "n,n,n")] UNSPEC_GF2P8AFFINE))] "TARGET_GFNI" "@ --- 20287,20293 ---- (unspec:VI1_AVX512F [(match_operand:VI1_AVX512F 1 "register_operand" "%0,x,v") (match_operand:VI1_AVX512F 2 "nonimmediate_operand" "xBm,xm,vm") ! (match_operand 3 "const_0_to_255_operand" "n,n,n")] UNSPEC_GF2P8AFFINE))] "TARGET_GFNI" "@ diff -Nrcpad gcc-8.3.0/gcc/config/i386/t-darwin gcc-8.4.0/gcc/config/i386/t-darwin *** gcc-8.3.0/gcc/config/i386/t-darwin Wed Nov 2 15:23:48 2011 --- gcc-8.4.0/gcc/config/i386/t-darwin Thu Jan 1 00:00:00 1970 *************** *** 1,2 **** - MULTILIB_OPTIONS = m64 - MULTILIB_DIRNAMES = x86_64 --- 0 ---- diff -Nrcpad gcc-8.3.0/gcc/config/i386/t-darwin32-biarch gcc-8.4.0/gcc/config/i386/t-darwin32-biarch *** gcc-8.3.0/gcc/config/i386/t-darwin32-biarch Thu Jan 1 00:00:00 1970 --- gcc-8.4.0/gcc/config/i386/t-darwin32-biarch Wed Mar 4 08:30:00 2020 *************** *** 0 **** --- 1,2 ---- + MULTILIB_OPTIONS = m64 + MULTILIB_DIRNAMES = x86_64 diff -Nrcpad gcc-8.3.0/gcc/config/i386/t-darwin64 gcc-8.4.0/gcc/config/i386/t-darwin64 *** gcc-8.3.0/gcc/config/i386/t-darwin64 Wed Nov 2 15:23:48 2011 --- gcc-8.4.0/gcc/config/i386/t-darwin64 Thu Jan 1 00:00:00 1970 *************** *** 1,2 **** - MULTILIB_OPTIONS = m32 - MULTILIB_DIRNAMES = i386 --- 0 ---- diff -Nrcpad gcc-8.3.0/gcc/config/i386/t-darwin64-biarch gcc-8.4.0/gcc/config/i386/t-darwin64-biarch *** gcc-8.3.0/gcc/config/i386/t-darwin64-biarch Thu Jan 1 00:00:00 1970 --- gcc-8.4.0/gcc/config/i386/t-darwin64-biarch Wed Mar 4 08:30:00 2020 *************** *** 0 **** --- 1,2 ---- + MULTILIB_OPTIONS = m32 + MULTILIB_DIRNAMES = i386 diff -Nrcpad gcc-8.3.0/gcc/config/i386/t-freebsd64 gcc-8.4.0/gcc/config/i386/t-freebsd64 *** gcc-8.3.0/gcc/config/i386/t-freebsd64 Thu Jan 1 00:00:00 1970 --- gcc-8.4.0/gcc/config/i386/t-freebsd64 Wed Mar 4 08:30:00 2020 *************** *** 0 **** --- 1,30 ---- + # Copyright (C) 2019 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 32-bit libraries are found in /usr/lib32 + + # To support i386 and x86-64, the directory structrue + # should be: + # + # /lib has x86-64 libraries. + # /lib32 has i386 libraries. + # + + MULTILIB_OPTIONS = m32 + MULTILIB_DIRNAMES = 32 + MULTILIB_OSDIRNAMES = ../lib32 diff -Nrcpad gcc-8.3.0/gcc/config/mips/mips.c gcc-8.4.0/gcc/config/mips/mips.c *** gcc-8.3.0/gcc/config/mips/mips.c Thu Mar 1 11:37:35 2018 --- gcc-8.4.0/gcc/config/mips/mips.c Wed Mar 4 08:30:00 2020 *************** mips_dwarf_frame_reg_mode (int regno) *** 9532,9538 **** { machine_mode mode = default_dwarf_frame_reg_mode (regno); ! if (FP_REG_P (regno) && mips_abi == ABI_32 && TARGET_FLOAT64) mode = SImode; return mode; --- 9532,9538 ---- { machine_mode mode = default_dwarf_frame_reg_mode (regno); ! if (FP_REG_P (regno) && mips_abi == ABI_32 && !TARGET_FLOAT32) mode = SImode; return mode; *************** mips_expand_builtin_insn (enum insn_code *** 16788,16793 **** --- 16788,16806 ---- std::swap (ops[1], ops[2]); break; + case CODE_FOR_msa_maddv_b: + case CODE_FOR_msa_maddv_h: + case CODE_FOR_msa_maddv_w: + case CODE_FOR_msa_maddv_d: + case CODE_FOR_msa_fmadd_w: + case CODE_FOR_msa_fmadd_d: + case CODE_FOR_msa_fmsub_w: + case CODE_FOR_msa_fmsub_d: + /* fma(a, b, c) results into (a * b + c), however builtin_msa_fmadd expects + it to be (a + b * c). Swap the 1st and 3rd operands. */ + std::swap (ops[1], ops[3]); + break; + case CODE_FOR_msa_slli_b: case CODE_FOR_msa_slli_h: case CODE_FOR_msa_slli_w: diff -Nrcpad gcc-8.3.0/gcc/config/mips/mips.md gcc-8.4.0/gcc/config/mips/mips.md *** gcc-8.3.0/gcc/config/mips/mips.md Wed Jan 3 10:03:58 2018 --- gcc-8.4.0/gcc/config/mips/mips.md Wed Mar 4 08:30:00 2020 *************** *** 5772,5779 **** "ISA_HAS_ROR" { if (CONST_INT_P (operands[2])) ! gcc_assert (INTVAL (operands[2]) >= 0 ! && INTVAL (operands[2]) < GET_MODE_BITSIZE (mode)); return "ror\t%0,%1,%2"; } --- 5772,5779 ---- "ISA_HAS_ROR" { if (CONST_INT_P (operands[2])) ! operands[2] = GEN_INT (INTVAL (operands[2]) ! & (GET_MODE_BITSIZE (mode) - 1)); return "ror\t%0,%1,%2"; } *************** *** 7502,7508 **** ;; __builtin_mips_get_fcsr: move the FCSR into operand 0. (define_expand "mips_get_fcsr" [(set (match_operand:SI 0 "register_operand") ! (unspec_volatile [(const_int 0)] UNSPEC_GET_FCSR))] "TARGET_HARD_FLOAT_ABI" { if (TARGET_MIPS16) --- 7502,7508 ---- ;; __builtin_mips_get_fcsr: move the FCSR into operand 0. (define_expand "mips_get_fcsr" [(set (match_operand:SI 0 "register_operand") ! (unspec_volatile:SI [(const_int 0)] UNSPEC_GET_FCSR))] "TARGET_HARD_FLOAT_ABI" { if (TARGET_MIPS16) *************** *** 7514,7520 **** (define_insn "*mips_get_fcsr" [(set (match_operand:SI 0 "register_operand" "=d") ! (unspec_volatile [(const_int 0)] UNSPEC_GET_FCSR))] "TARGET_HARD_FLOAT" "cfc1\t%0,$31") --- 7514,7520 ---- (define_insn "*mips_get_fcsr" [(set (match_operand:SI 0 "register_operand" "=d") ! (unspec_volatile:SI [(const_int 0)] UNSPEC_GET_FCSR))] "TARGET_HARD_FLOAT" "cfc1\t%0,$31") diff -Nrcpad gcc-8.3.0/gcc/config/nvptx/nvptx.c gcc-8.4.0/gcc/config/nvptx/nvptx.c *** gcc-8.3.0/gcc/config/nvptx/nvptx.c Fri Apr 20 13:46:07 2018 --- gcc-8.4.0/gcc/config/nvptx/nvptx.c Wed Mar 4 08:30:00 2020 *************** nvptx_output_softstack_switch (FILE *fil *** 1377,1383 **** fputs (";\n", file); if (!CONST_INT_P (size) || UINTVAL (align) > GET_MODE_SIZE (DImode)) fprintf (file, ! "\t\tand.u%d %%r%d, %%r%d, -" HOST_WIDE_INT_PRINT_DEC ";\n", bits, regno, regno, UINTVAL (align)); } if (cfun->machine->has_softstack) --- 1377,1383 ---- fputs (";\n", file); if (!CONST_INT_P (size) || UINTVAL (align) > GET_MODE_SIZE (DImode)) fprintf (file, ! "\t\tand.b%d %%r%d, %%r%d, -" HOST_WIDE_INT_PRINT_DEC ";\n", bits, regno, regno, UINTVAL (align)); } if (cfun->machine->has_softstack) diff -Nrcpad gcc-8.3.0/gcc/config/pa/pa-linux.h gcc-8.4.0/gcc/config/pa/pa-linux.h *** gcc-8.3.0/gcc/config/pa/pa-linux.h Sun May 27 21:54:27 2018 --- gcc-8.4.0/gcc/config/pa/pa-linux.h Wed Mar 4 08:30:00 2020 *************** along with GCC; see the file COPYING3. *** 101,107 **** /* FIXME: Hacked from the one so that we avoid multiple labels in a function declaration (since pa.c seems determined to do ! it differently) */ #undef ASM_DECLARE_FUNCTION_NAME #define ASM_DECLARE_FUNCTION_NAME(FILE, NAME, DECL) \ --- 101,107 ---- /* FIXME: Hacked from the one so that we avoid multiple labels in a function declaration (since pa.c seems determined to do ! it differently). */ #undef ASM_DECLARE_FUNCTION_NAME #define ASM_DECLARE_FUNCTION_NAME(FILE, NAME, DECL) \ *************** along with GCC; see the file COPYING3. *** 109,117 **** --- 109,122 ---- { \ ASM_OUTPUT_TYPE_DIRECTIVE (FILE, NAME, "function"); \ ASM_DECLARE_RESULT (FILE, DECL_RESULT (DECL)); \ + pa_output_function_label (FILE); \ } \ while (0) + /* Output function prologue for linux. */ + #undef TARGET_ASM_FUNCTION_PROLOGUE + #define TARGET_ASM_FUNCTION_PROLOGUE pa_linux_output_function_prologue + /* As well as globalizing the label, we need to encode the label to ensure a plabel is generated in an indirect call. */ diff -Nrcpad gcc-8.3.0/gcc/config/pa/pa-protos.h gcc-8.4.0/gcc/config/pa/pa-protos.h *** gcc-8.3.0/gcc/config/pa/pa-protos.h Tue Jan 16 14:47:49 2018 --- gcc-8.4.0/gcc/config/pa/pa-protos.h Wed Mar 4 08:30:00 2020 *************** extern void pa_asm_output_aligned_local *** 108,112 **** --- 108,113 ---- extern void pa_hpux_asm_output_external (FILE *, tree, const char *); extern HOST_WIDE_INT pa_initial_elimination_offset (int, int); extern HOST_WIDE_INT pa_function_arg_size (machine_mode, const_tree); + extern void pa_output_function_label (FILE *); extern const int pa_magic_milli[]; diff -Nrcpad gcc-8.3.0/gcc/config/pa/pa.c gcc-8.4.0/gcc/config/pa/pa.c *** gcc-8.3.0/gcc/config/pa/pa.c Sun Jul 29 15:54:08 2018 --- gcc-8.4.0/gcc/config/pa/pa.c Wed Mar 4 08:30:00 2020 *************** static void set_reg_plus_d (int, int, HO *** 118,128 **** static rtx pa_function_value (const_tree, const_tree, bool); static rtx pa_libcall_value (machine_mode, const_rtx); static bool pa_function_value_regno_p (const unsigned int); ! static void pa_output_function_prologue (FILE *); static void update_total_code_bytes (unsigned int); static void pa_output_function_epilogue (FILE *); static int pa_adjust_cost (rtx_insn *, int, rtx_insn *, int, unsigned int); - static int pa_adjust_priority (rtx_insn *, int); static int pa_issue_rate (void); static int pa_reloc_rw_mask (void); static void pa_som_asm_init_sections (void) ATTRIBUTE_UNUSED; --- 118,128 ---- static rtx pa_function_value (const_tree, const_tree, bool); static rtx pa_libcall_value (machine_mode, const_rtx); static bool pa_function_value_regno_p (const unsigned int); ! static void pa_output_function_prologue (FILE *) ATTRIBUTE_UNUSED; ! static void pa_linux_output_function_prologue (FILE *) ATTRIBUTE_UNUSED; static void update_total_code_bytes (unsigned int); static void pa_output_function_epilogue (FILE *); static int pa_adjust_cost (rtx_insn *, int, rtx_insn *, int, unsigned int); static int pa_issue_rate (void); static int pa_reloc_rw_mask (void); static void pa_som_asm_init_sections (void) ATTRIBUTE_UNUSED; *************** static size_t n_deferred_plabels = 0; *** 263,270 **** #undef TARGET_ASM_INTEGER #define TARGET_ASM_INTEGER pa_assemble_integer - #undef TARGET_ASM_FUNCTION_PROLOGUE - #define TARGET_ASM_FUNCTION_PROLOGUE pa_output_function_prologue #undef TARGET_ASM_FUNCTION_EPILOGUE #define TARGET_ASM_FUNCTION_EPILOGUE pa_output_function_epilogue --- 263,268 ---- *************** static size_t n_deferred_plabels = 0; *** 280,287 **** #undef TARGET_SCHED_ADJUST_COST #define TARGET_SCHED_ADJUST_COST pa_adjust_cost - #undef TARGET_SCHED_ADJUST_PRIORITY - #define TARGET_SCHED_ADJUST_PRIORITY pa_adjust_priority #undef TARGET_SCHED_ISSUE_RATE #define TARGET_SCHED_ISSUE_RATE pa_issue_rate --- 278,283 ---- *************** pa_compute_frame_size (poly_int64 size, *** 3842,3857 **** & ~(PREFERRED_STACK_BOUNDARY / BITS_PER_UNIT - 1)); } ! /* On HP-PA, move-double insns between fpu and cpu need an 8-byte block ! of memory. If any fpu reg is used in the function, we allocate ! such a block here, at the bottom of the frame, just in case it's needed. ! ! If this function is a leaf procedure, then we may choose not ! to do a "save" insn. The decision about whether or not ! to do this is made in regclass.c. */ ! static void ! pa_output_function_prologue (FILE *file) { /* The function's label and associated .PROC must never be separated and must be output *after* any profiling declarations --- 3838,3847 ---- & ~(PREFERRED_STACK_BOUNDARY / BITS_PER_UNIT - 1)); } ! /* Output function label, and associated .PROC and .CALLINFO statements. */ ! void ! pa_output_function_label (FILE *file) { /* The function's label and associated .PROC must never be separated and must be output *after* any profiling declarations *************** pa_output_function_prologue (FILE *file) *** 3897,3903 **** --- 3887,3908 ---- fprintf (file, ",ENTRY_FR=%d", fr_saved + 11); fputs ("\n\t.ENTRY\n", file); + } + + /* Output function prologue. */ + + static void + pa_output_function_prologue (FILE *file) + { + pa_output_function_label (file); + remove_useless_addtr_insns (0); + } + /* The label is output by ASM_DECLARE_FUNCTION_NAME on linux. */ + + static void + pa_linux_output_function_prologue (FILE *file ATTRIBUTE_UNUSED) + { remove_useless_addtr_insns (0); } *************** output_deferred_profile_counters (void) *** 4569,4578 **** void hppa_profile_hook (int label_no) { - /* We use SImode for the address of the function in both 32 and - 64-bit code to avoid having to provide DImode versions of the - lcla2 and load_offset_label_address insn patterns. */ - rtx reg = gen_reg_rtx (SImode); rtx_code_label *label_rtx = gen_label_rtx (); int reg_parm_stack_space = REG_PARM_STACK_SPACE (NULL_TREE); rtx arg_bytes, begin_label_rtx, mcount, sym; --- 4574,4579 ---- *************** hppa_profile_hook (int label_no) *** 4604,4621 **** if (!use_mcount_pcrel_call) { /* The address of the function is loaded into %r25 with an instruction- ! relative sequence that avoids the use of relocations. The sequence ! is split so that the load_offset_label_address instruction can ! occupy the delay slot of the call to _mcount. */ if (TARGET_PA_20) ! emit_insn (gen_lcla2 (reg, label_rtx)); else ! emit_insn (gen_lcla1 (reg, label_rtx)); ! ! emit_insn (gen_load_offset_label_address (gen_rtx_REG (SImode, 25), ! reg, ! begin_label_rtx, ! label_rtx)); } if (!NO_DEFERRED_PROFILE_COUNTERS) --- 4605,4617 ---- if (!use_mcount_pcrel_call) { /* The address of the function is loaded into %r25 with an instruction- ! relative sequence that avoids the use of relocations. We use SImode ! for the address of the function in both 32 and 64-bit code to avoid ! having to provide DImode versions of the lcla2 pattern. */ if (TARGET_PA_20) ! emit_insn (gen_lcla2 (gen_rtx_REG (SImode, 25), label_rtx)); else ! emit_insn (gen_lcla1 (gen_rtx_REG (SImode, 25), label_rtx)); } if (!NO_DEFERRED_PROFILE_COUNTERS) *************** pa_adjust_cost (rtx_insn *insn, int dep_ *** 4992,5028 **** } } - /* Adjust scheduling priorities. We use this to try and keep addil - and the next use of %r1 close together. */ - static int - pa_adjust_priority (rtx_insn *insn, int priority) - { - rtx set = single_set (insn); - rtx src, dest; - if (set) - { - src = SET_SRC (set); - dest = SET_DEST (set); - if (GET_CODE (src) == LO_SUM - && symbolic_operand (XEXP (src, 1), VOIDmode) - && ! read_only_operand (XEXP (src, 1), VOIDmode)) - priority >>= 3; - - else if (GET_CODE (src) == MEM - && GET_CODE (XEXP (src, 0)) == LO_SUM - && symbolic_operand (XEXP (XEXP (src, 0), 1), VOIDmode) - && ! read_only_operand (XEXP (XEXP (src, 0), 1), VOIDmode)) - priority >>= 1; - - else if (GET_CODE (dest) == MEM - && GET_CODE (XEXP (dest, 0)) == LO_SUM - && symbolic_operand (XEXP (XEXP (dest, 0), 1), VOIDmode) - && ! read_only_operand (XEXP (XEXP (dest, 0), 1), VOIDmode)) - priority >>= 3; - } - return priority; - } - /* The 700 can only issue a single insn at a time. The 7XXX processors can issue two insns at a time. The 8000 can issue 4 insns at a time. */ --- 4988,4993 ---- *************** pa_attr_length_call (rtx_insn *insn, int *** 7888,7894 **** /* 64-bit plabel sequence. */ else if (TARGET_64BIT && !local_call) ! length += sibcall ? 28 : 24; /* non-pic long absolute branch sequence. */ else if ((TARGET_LONG_ABS_CALL || local_call) && !flag_pic) --- 7853,7859 ---- /* 64-bit plabel sequence. */ else if (TARGET_64BIT && !local_call) ! length += 24; /* non-pic long absolute branch sequence. */ else if ((TARGET_LONG_ABS_CALL || local_call) && !flag_pic) *************** pa_output_call (rtx_insn *insn, rtx call *** 7960,7997 **** xoperands[0] = pa_get_deferred_plabel (call_dest); xoperands[1] = gen_label_rtx (); ! /* If this isn't a sibcall, we put the load of %r27 into the ! delay slot. We can't do this in a sibcall as we don't ! have a second call-clobbered scratch register available. ! We don't need to do anything when generating fast indirect ! calls. */ ! if (seq_length != 0 && !sibcall) { final_scan_insn (NEXT_INSN (insn), asm_out_file, optimize, 0, NULL); /* Now delete the delay insn. */ SET_INSN_DELETED (NEXT_INSN (insn)); - seq_length = 0; } output_asm_insn ("addil LT'%0,%%r27", xoperands); output_asm_insn ("ldd RT'%0(%%r1),%%r1", xoperands); output_asm_insn ("ldd 0(%%r1),%%r1", xoperands); ! ! if (sibcall) ! { ! output_asm_insn ("ldd 24(%%r1),%%r27", xoperands); ! output_asm_insn ("ldd 16(%%r1),%%r1", xoperands); ! output_asm_insn ("bve (%%r1)", xoperands); ! } ! else ! { ! output_asm_insn ("ldd 16(%%r1),%%r2", xoperands); ! output_asm_insn ("bve,l (%%r2),%%r2", xoperands); ! output_asm_insn ("ldd 24(%%r1),%%r27", xoperands); ! seq_length = 1; ! } } else { --- 7925,7948 ---- xoperands[0] = pa_get_deferred_plabel (call_dest); xoperands[1] = gen_label_rtx (); ! /* Put the load of %r27 into the delay slot. We don't need to ! do anything when generating fast indirect calls. */ ! if (seq_length != 0) { final_scan_insn (NEXT_INSN (insn), asm_out_file, optimize, 0, NULL); /* Now delete the delay insn. */ SET_INSN_DELETED (NEXT_INSN (insn)); } output_asm_insn ("addil LT'%0,%%r27", xoperands); output_asm_insn ("ldd RT'%0(%%r1),%%r1", xoperands); output_asm_insn ("ldd 0(%%r1),%%r1", xoperands); ! output_asm_insn ("ldd 16(%%r1),%%r2", xoperands); ! output_asm_insn ("bve,l (%%r2),%%r2", xoperands); ! output_asm_insn ("ldd 24(%%r1),%%r27", xoperands); ! seq_length = 1; } else { *************** pa_output_call (rtx_insn *insn, rtx call *** 8084,8103 **** { output_asm_insn ("addil LT'%0,%%r19", xoperands); output_asm_insn ("ldw RT'%0(%%r1),%%r1", xoperands); ! output_asm_insn ("ldw 0(%%r1),%%r1", xoperands); } else { output_asm_insn ("addil LR'%0-$global$,%%r27", xoperands); ! output_asm_insn ("ldw RR'%0-$global$(%%r1),%%r1", xoperands); } ! output_asm_insn ("bb,>=,n %%r1,30,.+16", xoperands); ! output_asm_insn ("depi 0,31,2,%%r1", xoperands); ! output_asm_insn ("ldw 4(%%sr0,%%r1),%%r19", xoperands); ! output_asm_insn ("ldw 0(%%sr0,%%r1),%%r1", xoperands); if (!sibcall && !TARGET_PA_20) { --- 8035,8056 ---- { output_asm_insn ("addil LT'%0,%%r19", xoperands); output_asm_insn ("ldw RT'%0(%%r1),%%r1", xoperands); ! output_asm_insn ("ldw 0(%%r1),%%r22", xoperands); } else { output_asm_insn ("addil LR'%0-$global$,%%r27", xoperands); ! output_asm_insn ("ldw RR'%0-$global$(%%r1),%%r22", xoperands); } ! output_asm_insn ("bb,>=,n %%r22,30,.+16", xoperands); ! output_asm_insn ("depi 0,31,2,%%r22", xoperands); ! /* Should this be an ordered load to ensure the target ! address is loaded before the global pointer? */ ! output_asm_insn ("ldw 0(%%r22),%%r1", xoperands); ! output_asm_insn ("ldw 4(%%r22),%%r19", xoperands); if (!sibcall && !TARGET_PA_20) { *************** pa_attr_length_indirect_call (rtx_insn * *** 8190,8199 **** if (TARGET_PORTABLE_RUNTIME) return 16; - /* Inline version of $$dyncall. */ - if ((TARGET_NO_SPACE_REGS || TARGET_PA_20) && !optimize_size) - return 20; - if (!TARGET_LONG_CALLS && ((TARGET_PA_20 && !TARGET_SOM && distance < 7600000) || distance < MAX_PCREL17F_OFFSET)) --- 8143,8148 ---- *************** pa_attr_length_indirect_call (rtx_insn * *** 8203,8214 **** if (!flag_pic) return 12; ! /* Inline version of $$dyncall. */ ! if (TARGET_NO_SPACE_REGS || TARGET_PA_20) ! return 20; ! if (!optimize_size) ! return 36; /* Long PIC pc-relative call. */ return 20; --- 8152,8166 ---- if (!flag_pic) return 12; ! /* Inline versions of $$dyncall. */ if (!optimize_size) ! { ! if (TARGET_NO_SPACE_REGS) ! return 28; ! ! if (TARGET_PA_20) ! return 32; ! } /* Long PIC pc-relative call. */ return 20; *************** pa_output_indirect_call (rtx_insn *insn, *** 8246,8267 **** return "blr %%r0,%%r2\n\tbv,n %%r0(%%r31)"; } - /* Maybe emit a fast inline version of $$dyncall. */ - if ((TARGET_NO_SPACE_REGS || TARGET_PA_20) && !optimize_size) - { - output_asm_insn ("bb,>=,n %%r22,30,.+12\n\t" - "ldw 2(%%r22),%%r19\n\t" - "ldw -2(%%r22),%%r22", xoperands); - pa_output_arg_descriptor (insn); - if (TARGET_NO_SPACE_REGS) - { - if (TARGET_PA_20) - return "bve,l,n (%%r22),%%r2\n\tnop"; - return "ble 0(%%sr4,%%r22)\n\tcopy %%r31,%%r2"; - } - return "bve,l (%%r22),%%r2\n\tstw %%r2,-24(%%sp)"; - } - /* Now the normal case -- we can reach $$dyncall directly or we're sure that we can get there via a long-branch stub. --- 8198,8203 ---- *************** pa_output_indirect_call (rtx_insn *insn, *** 8290,8324 **** return "ble R'$$dyncall(%%sr4,%%r2)\n\tcopy %%r31,%%r2"; } ! /* Maybe emit a fast inline version of $$dyncall. The long PIC ! pc-relative call sequence is five instructions. The inline PA 2.0 ! version of $$dyncall is also five instructions. The PA 1.X versions ! are longer but still an overall win. */ ! if (TARGET_NO_SPACE_REGS || TARGET_PA_20 || !optimize_size) { - output_asm_insn ("bb,>=,n %%r22,30,.+12\n\t" - "ldw 2(%%r22),%%r19\n\t" - "ldw -2(%%r22),%%r22", xoperands); if (TARGET_NO_SPACE_REGS) { pa_output_arg_descriptor (insn); ! if (TARGET_PA_20) ! return "bve,l,n (%%r22),%%r2\n\tnop"; ! return "ble 0(%%sr4,%%r22)\n\tcopy %%r31,%%r2"; } if (TARGET_PA_20) { pa_output_arg_descriptor (insn); ! return "bve,l (%%r22),%%r2\n\tstw %%r2,-24(%%sp)"; } - output_asm_insn ("bl .+8,%%r2\n\t" - "ldo 16(%%r2),%%r2\n\t" - "ldsid (%%r22),%%r1\n\t" - "mtsp %%r1,%%sr0", xoperands); - pa_output_arg_descriptor (insn); - return "be 0(%%sr0,%%r22)\n\tstw %%r2,-24(%%sp)"; } ! /* We need a long PIC call to $$dyncall. */ xoperands[0] = gen_rtx_SYMBOL_REF (Pmode, "$$dyncall"); xoperands[1] = gen_rtx_REG (Pmode, 2); --- 8226,8265 ---- return "ble R'$$dyncall(%%sr4,%%r2)\n\tcopy %%r31,%%r2"; } ! /* The long PIC pc-relative call sequence is five instructions. So, ! let's use an inline version of $$dyncall when the calling sequence ! has a roughly similar number of instructions and we are not optimizing ! for size. We need two instructions to load the return pointer plus ! the $$dyncall implementation. */ ! if (!optimize_size) { if (TARGET_NO_SPACE_REGS) { pa_output_arg_descriptor (insn); ! output_asm_insn ("bl .+8,%%r2\n\t" ! "ldo 20(%%r2),%%r2\n\t" ! "extru,<> %%r22,30,1,%%r0\n\t" ! "bv,n %%r0(%%r22)\n\t" ! "ldw -2(%%r22),%%r21\n\t" ! "bv %%r0(%%r21)\n\t" ! "ldw 2(%%r22),%%r19", xoperands); ! return ""; } if (TARGET_PA_20) { pa_output_arg_descriptor (insn); ! output_asm_insn ("bl .+8,%%r2\n\t" ! "ldo 24(%%r2),%%r2\n\t" ! "stw %%r2,-24(%%sp)\n\t" ! "extru,<> %r22,30,1,%%r0\n\t" ! "bve,n (%%r22)\n\t" ! "ldw -2(%%r22),%%r21\n\t" ! "bve (%%r21)\n\t" ! "ldw 2(%%r22),%%r19", xoperands); ! return ""; } } ! /* We need a long PIC call to $$dyncall. */ xoperands[0] = gen_rtx_SYMBOL_REF (Pmode, "$$dyncall"); xoperands[1] = gen_rtx_REG (Pmode, 2); *************** pa_function_value (const_tree valtype, *** 9398,9404 **** HOST_WIDE_INT valsize = int_size_in_bytes (valtype); /* Handle aggregates that fit exactly in a word or double word. */ ! if ((valsize & (UNITS_PER_WORD - 1)) == 0) return gen_rtx_REG (TYPE_MODE (valtype), 28); if (TARGET_64BIT) --- 9339,9345 ---- HOST_WIDE_INT valsize = int_size_in_bytes (valtype); /* Handle aggregates that fit exactly in a word or double word. */ ! if (valsize == UNITS_PER_WORD || valsize == 2 * UNITS_PER_WORD) return gen_rtx_REG (TYPE_MODE (valtype), 28); if (TARGET_64BIT) *************** pa_can_change_mode_class (machine_mode f *** 10039,10048 **** /* There is no way to load QImode or HImode values directly from memory to a FP register. SImode loads to the FP registers are not zero extended. On the 64-bit target, this conflicts with the definition ! of LOAD_EXTEND_OP. Thus, we can't allow changing between modes with ! different sizes in the floating-point registers. */ if (MAYBE_FP_REG_CLASS_P (rclass)) ! return false; /* TARGET_HARD_REGNO_MODE_OK places modes with sizes larger than a word in specific sets of registers. Thus, we cannot allow changing --- 9980,9990 ---- /* There is no way to load QImode or HImode values directly from memory to a FP register. SImode loads to the FP registers are not zero extended. On the 64-bit target, this conflicts with the definition ! of LOAD_EXTEND_OP. Thus, we reject all mode changes in the FP registers ! except for DImode to SImode on the 64-bit target. It is handled by ! register renaming in pa_print_operand. */ if (MAYBE_FP_REG_CLASS_P (rclass)) ! return TARGET_64BIT && from == DImode && to == SImode; /* TARGET_HARD_REGNO_MODE_OK places modes with sizes larger than a word in specific sets of registers. Thus, we cannot allow changing *************** pa_modes_tieable_p (machine_mode mode1, *** 10076,10082 **** /* Length in units of the trampoline instruction code. */ ! #define TRAMPOLINE_CODE_SIZE (TARGET_64BIT ? 24 : (TARGET_PA_20 ? 32 : 40)) /* Output assembler code for a block containing the constant parts --- 10018,10024 ---- /* Length in units of the trampoline instruction code. */ ! #define TRAMPOLINE_CODE_SIZE (TARGET_64BIT ? 24 : (TARGET_PA_20 ? 36 : 48)) /* Output assembler code for a block containing the constant parts *************** pa_asm_trampoline_template (FILE *f) *** 10097,10123 **** { if (!TARGET_64BIT) { - fputs ("\tldw 36(%r22),%r21\n", f); - fputs ("\tbb,>=,n %r21,30,.+16\n", f); - if (ASSEMBLER_DIALECT == 0) - fputs ("\tdepi 0,31,2,%r21\n", f); - else - fputs ("\tdepwi 0,31,2,%r21\n", f); - fputs ("\tldw 4(%r21),%r19\n", f); - fputs ("\tldw 0(%r21),%r21\n", f); if (TARGET_PA_20) { ! fputs ("\tbve (%r21)\n", f); ! fputs ("\tldw 40(%r22),%r29\n", f); fputs ("\t.word 0\n", f); fputs ("\t.word 0\n", f); } else { fputs ("\tldsid (%r21),%r1\n", f); fputs ("\tmtsp %r1,%sr0\n", f); ! fputs ("\tbe 0(%sr0,%r21)\n", f); ! fputs ("\tldw 40(%r22),%r29\n", f); } fputs ("\t.word 0\n", f); fputs ("\t.word 0\n", f); --- 10039,10084 ---- { if (!TARGET_64BIT) { if (TARGET_PA_20) { ! fputs ("\tmfia %r20\n", f); ! fputs ("\tldw 48(%r20),%r22\n", f); ! fputs ("\tcopy %r22,%r21\n", f); ! fputs ("\tbb,>=,n %r22,30,.+16\n", f); ! fputs ("\tdepwi 0,31,2,%r22\n", f); ! fputs ("\tldw 0(%r22),%r21\n", f); ! fputs ("\tldw 4(%r22),%r19\n", f); ! fputs ("\tbve (%r21)\n", f); ! fputs ("\tldw 52(%r1),%r29\n", f); ! fputs ("\t.word 0\n", f); fputs ("\t.word 0\n", f); fputs ("\t.word 0\n", f); } else { + if (ASSEMBLER_DIALECT == 0) + { + fputs ("\tbl .+8,%r20\n", f); + fputs ("\tdepi 0,31,2,%r20\n", f); + } + else + { + fputs ("\tb,l .+8,%r20\n", f); + fputs ("\tdepwi 0,31,2,%r20\n", f); + } + fputs ("\tldw 40(%r20),%r22\n", f); + fputs ("\tcopy %r22,%r21\n", f); + fputs ("\tbb,>=,n %r22,30,.+16\n", f); + if (ASSEMBLER_DIALECT == 0) + fputs ("\tdepi 0,31,2,%r22\n", f); + else + fputs ("\tdepwi 0,31,2,%r22\n", f); + fputs ("\tldw 0(%r22),%r21\n", f); + fputs ("\tldw 4(%r22),%r19\n", f); fputs ("\tldsid (%r21),%r1\n", f); fputs ("\tmtsp %r1,%sr0\n", f); ! fputs ("\tbe 0(%sr0,%r21)\n", f); ! fputs ("\tldw 44(%r20),%r29\n", f); } fputs ("\t.word 0\n", f); fputs ("\t.word 0\n", f); *************** pa_asm_trampoline_template (FILE *f) *** 10131,10141 **** fputs ("\t.dword 0\n", f); fputs ("\t.dword 0\n", f); fputs ("\tmfia %r31\n", f); ! fputs ("\tldd 24(%r31),%r1\n", f); ! fputs ("\tldd 24(%r1),%r27\n", f); ! fputs ("\tldd 16(%r1),%r1\n", f); ! fputs ("\tbve (%r1)\n", f); fputs ("\tldd 32(%r31),%r31\n", f); fputs ("\t.dword 0 ; fptr\n", f); fputs ("\t.dword 0 ; static link\n", f); } --- 10092,10102 ---- fputs ("\t.dword 0\n", f); fputs ("\t.dword 0\n", f); fputs ("\tmfia %r31\n", f); ! fputs ("\tldd 24(%r31),%r27\n", f); fputs ("\tldd 32(%r31),%r31\n", f); + fputs ("\tldd 16(%r27),%r1\n", f); + fputs ("\tbve (%r1)\n", f); + fputs ("\tldd 24(%r27),%r27\n", f); fputs ("\t.dword 0 ; fptr\n", f); fputs ("\t.dword 0 ; static link\n", f); } *************** pa_asm_trampoline_template (FILE *f) *** 10145,10154 **** FNADDR is an RTX for the address of the function's pure code. CXT is an RTX for the static chain value for the function. ! Move the function address to the trampoline template at offset 36. ! Move the static chain value to trampoline template at offset 40. ! Move the trampoline address to trampoline template at offset 44. ! Move r19 to trampoline template at offset 48. The latter two words create a plabel for the indirect call to the trampoline. A similar sequence is used for the 64-bit port but the plabel is --- 10106,10115 ---- FNADDR is an RTX for the address of the function's pure code. CXT is an RTX for the static chain value for the function. ! Move the function address to the trampoline template at offset 48. ! Move the static chain value to trampoline template at offset 52. ! Move the trampoline address to trampoline template at offset 56. ! Move r19 to trampoline template at offset 60. The latter two words create a plabel for the indirect call to the trampoline. A similar sequence is used for the 64-bit port but the plabel is *************** pa_trampoline_init (rtx m_tramp, tree fn *** 10174,10188 **** if (!TARGET_64BIT) { ! tmp = adjust_address (m_tramp, Pmode, 36); emit_move_insn (tmp, fnaddr); ! tmp = adjust_address (m_tramp, Pmode, 40); emit_move_insn (tmp, chain_value); /* Create a fat pointer for the trampoline. */ ! tmp = adjust_address (m_tramp, Pmode, 44); emit_move_insn (tmp, r_tramp); ! tmp = adjust_address (m_tramp, Pmode, 48); emit_move_insn (tmp, gen_rtx_REG (Pmode, 19)); /* fdc and fic only use registers for the address to flush, --- 10135,10149 ---- if (!TARGET_64BIT) { ! tmp = adjust_address (m_tramp, Pmode, 48); emit_move_insn (tmp, fnaddr); ! tmp = adjust_address (m_tramp, Pmode, 52); emit_move_insn (tmp, chain_value); /* Create a fat pointer for the trampoline. */ ! tmp = adjust_address (m_tramp, Pmode, 56); emit_move_insn (tmp, r_tramp); ! tmp = adjust_address (m_tramp, Pmode, 60); emit_move_insn (tmp, gen_rtx_REG (Pmode, 19)); /* fdc and fic only use registers for the address to flush, *************** pa_trampoline_init (rtx m_tramp, tree fn *** 10234,10253 **** } #ifdef HAVE_ENABLE_EXECUTE_STACK !  emit_library_call (gen_rtx_SYMBOL_REF (Pmode, "__enable_execute_stack"), LCT_NORMAL, VOIDmode, XEXP (m_tramp, 0), Pmode); #endif } /* Perform any machine-specific adjustment in the address of the trampoline. ADDR contains the address that was passed to pa_trampoline_init. ! Adjust the trampoline address to point to the plabel at offset 44. */ static rtx pa_trampoline_adjust_address (rtx addr) { if (!TARGET_64BIT) ! addr = memory_address (Pmode, plus_constant (Pmode, addr, 46)); return addr; } --- 10195,10214 ---- } #ifdef HAVE_ENABLE_EXECUTE_STACK ! emit_library_call (gen_rtx_SYMBOL_REF (Pmode, "__enable_execute_stack"), LCT_NORMAL, VOIDmode, XEXP (m_tramp, 0), Pmode); #endif } /* Perform any machine-specific adjustment in the address of the trampoline. ADDR contains the address that was passed to pa_trampoline_init. ! Adjust the trampoline address to point to the plabel at offset 56. */ static rtx pa_trampoline_adjust_address (rtx addr) { if (!TARGET_64BIT) ! addr = memory_address (Pmode, plus_constant (Pmode, addr, 58)); return addr; } diff -Nrcpad gcc-8.3.0/gcc/config/pa/pa.h gcc-8.4.0/gcc/config/pa/pa.h *** gcc-8.3.0/gcc/config/pa/pa.h Sun Jul 29 15:54:08 2018 --- gcc-8.4.0/gcc/config/pa/pa.h Wed Mar 4 08:30:00 2020 *************** extern int may_call_alloca; *** 689,695 **** /* Length in units of the trampoline for entering a nested function. */ ! #define TRAMPOLINE_SIZE (TARGET_64BIT ? 72 : 52) /* Alignment required by the trampoline. */ --- 689,695 ---- /* Length in units of the trampoline for entering a nested function. */ ! #define TRAMPOLINE_SIZE (TARGET_64BIT ? 72 : 64) /* Alignment required by the trampoline. */ *************** do { \ *** 1293,1304 **** #endif /* The maximum offset in bytes for a PA 1.X pc-relative call to the ! head of the preceding stub table. The selected offsets have been ! chosen so that approximately one call stub is allocated for every ! 86.7 instructions. A long branch stub is two instructions when ! not generating PIC code. For HP-UX and ELF targets, PIC stubs are ! seven and four instructions, respectively. */ ! #define MAX_PCREL17F_OFFSET \ ! (flag_pic ? (TARGET_HPUX ? 198164 : 221312) : 240000) #define NEED_INDICATE_EXEC_STACK 0 --- 1293,1306 ---- #endif /* The maximum offset in bytes for a PA 1.X pc-relative call to the ! head of the preceding stub table. A long branch stub is two or three ! instructions for non-PIC and PIC, respectively. Import stubs are ! seven and five instructions for HP-UX and ELF targets, respectively. ! The default stub group size for ELF targets is 217856 bytes. ! FIXME: We need an option to set the maximum offset. */ ! #define MAX_PCREL17F_OFFSET (TARGET_HPUX ? 198164 : 217856) #define NEED_INDICATE_EXEC_STACK 0 + + /* Output default function prologue for hpux. */ + #define TARGET_ASM_FUNCTION_PROLOGUE pa_output_function_prologue diff -Nrcpad gcc-8.3.0/gcc/config/pa/pa.md gcc-8.4.0/gcc/config/pa/pa.md *** gcc-8.3.0/gcc/config/pa/pa.md Thu Sep 20 01:07:42 2018 --- gcc-8.4.0/gcc/config/pa/pa.md Wed Mar 4 08:30:00 2020 *************** *** 765,771 **** (define_insn "scc" [(set (match_operand:SI 0 "register_operand" "=r") ! (match_operator:SI 3 "comparison_operator" [(match_operand:SI 1 "reg_or_0_operand" "rM") (match_operand:SI 2 "arith11_operand" "rI")]))] "" --- 765,771 ---- (define_insn "scc" [(set (match_operand:SI 0 "register_operand" "=r") ! (match_operator:SI 3 "ordered_comparison_operator" [(match_operand:SI 1 "reg_or_0_operand" "rM") (match_operand:SI 2 "arith11_operand" "rI")]))] "" *************** *** 775,781 **** (define_insn "" [(set (match_operand:DI 0 "register_operand" "=r") ! (match_operator:DI 3 "comparison_operator" [(match_operand:DI 1 "reg_or_0_operand" "rM") (match_operand:DI 2 "arith11_operand" "rI")]))] "TARGET_64BIT" --- 775,781 ---- (define_insn "" [(set (match_operand:DI 0 "register_operand" "=r") ! (match_operator:DI 3 "ordered_comparison_operator" [(match_operand:DI 1 "reg_or_0_operand" "rM") (match_operand:DI 2 "arith11_operand" "rI")]))] "TARGET_64BIT" *************** *** 785,794 **** (define_insn "iorscc" [(set (match_operand:SI 0 "register_operand" "=r") ! (ior:SI (match_operator:SI 3 "comparison_operator" [(match_operand:SI 1 "reg_or_0_operand" "rM") (match_operand:SI 2 "arith11_operand" "rI")]) ! (match_operator:SI 6 "comparison_operator" [(match_operand:SI 4 "reg_or_0_operand" "rM") (match_operand:SI 5 "arith11_operand" "rI")])))] "" --- 785,794 ---- (define_insn "iorscc" [(set (match_operand:SI 0 "register_operand" "=r") ! (ior:SI (match_operator:SI 3 "ordered_comparison_operator" [(match_operand:SI 1 "reg_or_0_operand" "rM") (match_operand:SI 2 "arith11_operand" "rI")]) ! (match_operator:SI 6 "ordered_comparison_operator" [(match_operand:SI 4 "reg_or_0_operand" "rM") (match_operand:SI 5 "arith11_operand" "rI")])))] "" *************** *** 798,807 **** (define_insn "" [(set (match_operand:DI 0 "register_operand" "=r") ! (ior:DI (match_operator:DI 3 "comparison_operator" [(match_operand:DI 1 "reg_or_0_operand" "rM") (match_operand:DI 2 "arith11_operand" "rI")]) ! (match_operator:DI 6 "comparison_operator" [(match_operand:DI 4 "reg_or_0_operand" "rM") (match_operand:DI 5 "arith11_operand" "rI")])))] "TARGET_64BIT" --- 798,807 ---- (define_insn "" [(set (match_operand:DI 0 "register_operand" "=r") ! (ior:DI (match_operator:DI 3 "ordered_comparison_operator" [(match_operand:DI 1 "reg_or_0_operand" "rM") (match_operand:DI 2 "arith11_operand" "rI")]) ! (match_operator:DI 6 "ordered_comparison_operator" [(match_operand:DI 4 "reg_or_0_operand" "rM") (match_operand:DI 5 "arith11_operand" "rI")])))] "TARGET_64BIT" *************** *** 813,819 **** ;; from an scc insn (negscc and incscc). (define_insn "negscc" [(set (match_operand:SI 0 "register_operand" "=r") ! (neg:SI (match_operator:SI 3 "comparison_operator" [(match_operand:SI 1 "reg_or_0_operand" "rM") (match_operand:SI 2 "arith11_operand" "rI")])))] "" --- 813,819 ---- ;; from an scc insn (negscc and incscc). (define_insn "negscc" [(set (match_operand:SI 0 "register_operand" "=r") ! (neg:SI (match_operator:SI 3 "ordered_comparison_operator" [(match_operand:SI 1 "reg_or_0_operand" "rM") (match_operand:SI 2 "arith11_operand" "rI")])))] "" *************** *** 823,829 **** (define_insn "" [(set (match_operand:DI 0 "register_operand" "=r") ! (neg:DI (match_operator:DI 3 "comparison_operator" [(match_operand:DI 1 "reg_or_0_operand" "rM") (match_operand:DI 2 "arith11_operand" "rI")])))] "TARGET_64BIT" --- 823,829 ---- (define_insn "" [(set (match_operand:DI 0 "register_operand" "=r") ! (neg:DI (match_operator:DI 3 "ordered_comparison_operator" [(match_operand:DI 1 "reg_or_0_operand" "rM") (match_operand:DI 2 "arith11_operand" "rI")])))] "TARGET_64BIT" *************** *** 904,910 **** (define_insn "incscc" [(set (match_operand:SI 0 "register_operand" "=r,r") ! (plus:SI (match_operator:SI 4 "comparison_operator" [(match_operand:SI 2 "register_operand" "r,r") (match_operand:SI 3 "arith11_operand" "rI,rI")]) (match_operand:SI 1 "register_operand" "0,?r")))] --- 904,910 ---- (define_insn "incscc" [(set (match_operand:SI 0 "register_operand" "=r,r") ! (plus:SI (match_operator:SI 4 "ordered_comparison_operator" [(match_operand:SI 2 "register_operand" "r,r") (match_operand:SI 3 "arith11_operand" "rI,rI")]) (match_operand:SI 1 "register_operand" "0,?r")))] *************** *** 917,923 **** (define_insn "" [(set (match_operand:DI 0 "register_operand" "=r,r") ! (plus:DI (match_operator:DI 4 "comparison_operator" [(match_operand:DI 2 "register_operand" "r,r") (match_operand:DI 3 "arith11_operand" "rI,rI")]) (match_operand:DI 1 "register_operand" "0,?r")))] --- 917,923 ---- (define_insn "" [(set (match_operand:DI 0 "register_operand" "=r,r") ! (plus:DI (match_operator:DI 4 "ordered_comparison_operator" [(match_operand:DI 2 "register_operand" "r,r") (match_operand:DI 3 "arith11_operand" "rI,rI")]) (match_operand:DI 1 "register_operand" "0,?r")))] *************** *** 1062,1068 **** (define_insn "decscc" [(set (match_operand:SI 0 "register_operand" "=r,r") (minus:SI (match_operand:SI 1 "register_operand" "0,?r") ! (match_operator:SI 4 "comparison_operator" [(match_operand:SI 2 "register_operand" "r,r") (match_operand:SI 3 "arith11_operand" "rI,rI")])))] "" --- 1062,1068 ---- (define_insn "decscc" [(set (match_operand:SI 0 "register_operand" "=r,r") (minus:SI (match_operand:SI 1 "register_operand" "0,?r") ! (match_operator:SI 4 "ordered_comparison_operator" [(match_operand:SI 2 "register_operand" "r,r") (match_operand:SI 3 "arith11_operand" "rI,rI")])))] "" *************** *** 1075,1081 **** (define_insn "" [(set (match_operand:DI 0 "register_operand" "=r,r") (minus:DI (match_operand:DI 1 "register_operand" "0,?r") ! (match_operator:DI 4 "comparison_operator" [(match_operand:DI 2 "register_operand" "r,r") (match_operand:DI 3 "arith11_operand" "rI,rI")])))] "TARGET_64BIT" --- 1075,1081 ---- (define_insn "" [(set (match_operand:DI 0 "register_operand" "=r,r") (minus:DI (match_operand:DI 1 "register_operand" "0,?r") ! (match_operator:DI 4 "ordered_comparison_operator" [(match_operand:DI 2 "register_operand" "r,r") (match_operand:DI 3 "arith11_operand" "rI,rI")])))] "TARGET_64BIT" *************** *** 1242,1248 **** (define_expand "movsicc" [(set (match_operand:SI 0 "register_operand" "") (if_then_else:SI ! (match_operand 1 "comparison_operator" "") (match_operand:SI 2 "reg_or_cint_move_operand" "") (match_operand:SI 3 "reg_or_cint_move_operand" "")))] "" --- 1242,1248 ---- (define_expand "movsicc" [(set (match_operand:SI 0 "register_operand" "") (if_then_else:SI ! (match_operand 1 "ordered_comparison_operator" "") (match_operand:SI 2 "reg_or_cint_move_operand" "") (match_operand:SI 3 "reg_or_cint_move_operand" "")))] "" *************** *** 1264,1270 **** (define_insn "" [(set (match_operand:SI 0 "register_operand" "=r,r,r,r") (if_then_else:SI ! (match_operator 2 "comparison_operator" [(match_operand:SI 3 "register_operand" "r,r,r,r") (match_operand:SI 4 "arith11_operand" "rI,rI,rI,rI")]) (match_operand:SI 1 "reg_or_cint_move_operand" "0,J,N,K") --- 1264,1270 ---- (define_insn "" [(set (match_operand:SI 0 "register_operand" "=r,r,r,r") (if_then_else:SI ! (match_operator 2 "ordered_comparison_operator" [(match_operand:SI 3 "register_operand" "r,r,r,r") (match_operand:SI 4 "arith11_operand" "rI,rI,rI,rI")]) (match_operand:SI 1 "reg_or_cint_move_operand" "0,J,N,K") *************** *** 1281,1287 **** (define_insn "" [(set (match_operand:SI 0 "register_operand" "=r,r,r,r,r,r,r,r") (if_then_else:SI ! (match_operator 5 "comparison_operator" [(match_operand:SI 3 "register_operand" "r,r,r,r,r,r,r,r") (match_operand:SI 4 "arith11_operand" "rI,rI,rI,rI,rI,rI,rI,rI")]) (match_operand:SI 1 "reg_or_cint_move_operand" "0,0,0,0,r,J,N,K") --- 1281,1287 ---- (define_insn "" [(set (match_operand:SI 0 "register_operand" "=r,r,r,r,r,r,r,r") (if_then_else:SI ! (match_operator 5 "ordered_comparison_operator" [(match_operand:SI 3 "register_operand" "r,r,r,r,r,r,r,r") (match_operand:SI 4 "arith11_operand" "rI,rI,rI,rI,rI,rI,rI,rI")]) (match_operand:SI 1 "reg_or_cint_move_operand" "0,0,0,0,r,J,N,K") *************** *** 1302,1308 **** (define_expand "movdicc" [(set (match_operand:DI 0 "register_operand" "") (if_then_else:DI ! (match_operand 1 "comparison_operator" "") (match_operand:DI 2 "reg_or_cint_move_operand" "") (match_operand:DI 3 "reg_or_cint_move_operand" "")))] "TARGET_64BIT" --- 1302,1308 ---- (define_expand "movdicc" [(set (match_operand:DI 0 "register_operand" "") (if_then_else:DI ! (match_operand 1 "ordered_comparison_operator" "") (match_operand:DI 2 "reg_or_cint_move_operand" "") (match_operand:DI 3 "reg_or_cint_move_operand" "")))] "TARGET_64BIT" *************** *** 1318,1324 **** (define_insn "" [(set (match_operand:DI 0 "register_operand" "=r,r,r,r,r") (if_then_else:DI ! (match_operator 2 "comparison_operator" [(match_operand:DI 3 "register_operand" "r,r,r,r,r") (match_operand:DI 4 "arith11_operand" "rI,rI,rI,rI,rI")]) (match_operand:DI 1 "reg_or_cint_move_operand" "0,r,J,N,K") --- 1318,1324 ---- (define_insn "" [(set (match_operand:DI 0 "register_operand" "=r,r,r,r,r") (if_then_else:DI ! (match_operator 2 "ordered_comparison_operator" [(match_operand:DI 3 "register_operand" "r,r,r,r,r") (match_operand:DI 4 "arith11_operand" "rI,rI,rI,rI,rI")]) (match_operand:DI 1 "reg_or_cint_move_operand" "0,r,J,N,K") *************** *** 1336,1342 **** (define_insn "" [(set (match_operand:DI 0 "register_operand" "=r,r,r,r,r,r,r,r") (if_then_else:DI ! (match_operator 5 "comparison_operator" [(match_operand:DI 3 "register_operand" "r,r,r,r,r,r,r,r") (match_operand:DI 4 "arith11_operand" "rI,rI,rI,rI,rI,rI,rI,rI")]) (match_operand:DI 1 "reg_or_cint_move_operand" "0,0,0,0,r,J,N,K") --- 1336,1342 ---- (define_insn "" [(set (match_operand:DI 0 "register_operand" "=r,r,r,r,r,r,r,r") (if_then_else:DI ! (match_operator 5 "ordered_comparison_operator" [(match_operand:DI 3 "register_operand" "r,r,r,r,r,r,r,r") (match_operand:DI 4 "arith11_operand" "rI,rI,rI,rI,rI,rI,rI,rI")]) (match_operand:DI 1 "reg_or_cint_move_operand" "0,0,0,0,r,J,N,K") *************** *** 1413,1419 **** (define_insn "" [(set (pc) (if_then_else ! (match_operator 3 "comparison_operator" [(match_operand:SI 1 "reg_or_0_operand" "rM") (match_operand:SI 2 "arith5_operand" "rL")]) (label_ref (match_operand 0 "" "")) --- 1413,1419 ---- (define_insn "" [(set (pc) (if_then_else ! (match_operator 3 "ordered_comparison_operator" [(match_operand:SI 1 "reg_or_0_operand" "rM") (match_operand:SI 2 "arith5_operand" "rL")]) (label_ref (match_operand 0 "" "")) *************** *** 1442,1448 **** (define_insn "" [(set (pc) (if_then_else ! (match_operator 3 "comparison_operator" [(match_operand:SI 1 "reg_or_0_operand" "rM") (match_operand:SI 2 "arith5_operand" "rL")]) (pc) --- 1442,1448 ---- (define_insn "" [(set (pc) (if_then_else ! (match_operator 3 "ordered_comparison_operator" [(match_operand:SI 1 "reg_or_0_operand" "rM") (match_operand:SI 2 "arith5_operand" "rL")]) (pc) *************** *** 1469,1475 **** (define_insn "" [(set (pc) (if_then_else ! (match_operator 3 "comparison_operator" [(match_operand:DI 1 "reg_or_0_operand" "rM") (match_operand:DI 2 "reg_or_0_operand" "rM")]) (label_ref (match_operand 0 "" "")) --- 1469,1475 ---- (define_insn "" [(set (pc) (if_then_else ! (match_operator 3 "ordered_comparison_operator" [(match_operand:DI 1 "reg_or_0_operand" "rM") (match_operand:DI 2 "reg_or_0_operand" "rM")]) (label_ref (match_operand 0 "" "")) *************** *** 1498,1504 **** (define_insn "" [(set (pc) (if_then_else ! (match_operator 3 "comparison_operator" [(match_operand:DI 1 "reg_or_0_operand" "rM") (match_operand:DI 2 "reg_or_0_operand" "rM")]) (pc) --- 1498,1504 ---- (define_insn "" [(set (pc) (if_then_else ! (match_operator 3 "ordered_comparison_operator" [(match_operand:DI 1 "reg_or_0_operand" "rM") (match_operand:DI 2 "reg_or_0_operand" "rM")]) (pc) *************** *** 5319,5326 **** (define_insn "umulsidi3" [(set (match_operand:DI 0 "register_operand" "=f") ! (mult:DI (zero_extend:DI (match_operand:SI 1 "nonimmediate_operand" "f")) ! (zero_extend:DI (match_operand:SI 2 "nonimmediate_operand" "f"))))] "TARGET_PA_11 && ! TARGET_DISABLE_FPREGS && ! TARGET_SOFT_FLOAT" "xmpyu %1,%2,%0" [(set_attr "type" "fpmuldbl") --- 5319,5326 ---- (define_insn "umulsidi3" [(set (match_operand:DI 0 "register_operand" "=f") ! (mult:DI (zero_extend:DI (match_operand:SI 1 "register_operand" "f")) ! (zero_extend:DI (match_operand:SI 2 "register_operand" "f"))))] "TARGET_PA_11 && ! TARGET_DISABLE_FPREGS && ! TARGET_SOFT_FLOAT" "xmpyu %1,%2,%0" [(set_attr "type" "fpmuldbl") *************** *** 5328,5334 **** (define_insn "" [(set (match_operand:DI 0 "register_operand" "=f") ! (mult:DI (zero_extend:DI (match_operand:SI 1 "nonimmediate_operand" "f")) (match_operand:DI 2 "uint32_operand" "f")))] "TARGET_PA_11 && ! TARGET_DISABLE_FPREGS && ! TARGET_SOFT_FLOAT && !TARGET_64BIT" "xmpyu %1,%R2,%0" --- 5328,5334 ---- (define_insn "" [(set (match_operand:DI 0 "register_operand" "=f") ! (mult:DI (zero_extend:DI (match_operand:SI 1 "register_operand" "f")) (match_operand:DI 2 "uint32_operand" "f")))] "TARGET_PA_11 && ! TARGET_DISABLE_FPREGS && ! TARGET_SOFT_FLOAT && !TARGET_64BIT" "xmpyu %1,%R2,%0" *************** *** 5337,5343 **** (define_insn "" [(set (match_operand:DI 0 "register_operand" "=f") ! (mult:DI (zero_extend:DI (match_operand:SI 1 "nonimmediate_operand" "f")) (match_operand:DI 2 "uint32_operand" "f")))] "TARGET_PA_11 && ! TARGET_DISABLE_FPREGS && ! TARGET_SOFT_FLOAT && TARGET_64BIT" "xmpyu %1,%2R,%0" --- 5337,5343 ---- (define_insn "" [(set (match_operand:DI 0 "register_operand" "=f") ! (mult:DI (zero_extend:DI (match_operand:SI 1 "register_operand" "f")) (match_operand:DI 2 "uint32_operand" "f")))] "TARGET_PA_11 && ! TARGET_DISABLE_FPREGS && ! TARGET_SOFT_FLOAT && TARGET_64BIT" "xmpyu %1,%2R,%0" *************** *** 6904,6924 **** rtx stack = operands[2]; rtx fp = operands[3]; - lab = copy_to_reg (lab); - emit_clobber (gen_rtx_MEM (BLKmode, gen_rtx_SCRATCH (VOIDmode))); emit_clobber (gen_rtx_MEM (BLKmode, hard_frame_pointer_rtx)); ! /* Restore the frame pointer. The virtual_stack_vars_rtx is saved ! instead of the hard_frame_pointer_rtx in the save area. As a ! result, an extra instruction is needed to adjust for the offset ! of the virtual stack variables and the hard frame pointer. */ ! if (GET_CODE (fp) != REG) ! fp = force_reg (Pmode, fp); ! emit_move_insn (hard_frame_pointer_rtx, plus_constant (Pmode, fp, -8)); emit_stack_restore (SAVE_NONLOCAL, stack); emit_use (hard_frame_pointer_rtx); emit_use (stack_pointer_rtx); --- 6904,6927 ---- rtx stack = operands[2]; rtx fp = operands[3]; emit_clobber (gen_rtx_MEM (BLKmode, gen_rtx_SCRATCH (VOIDmode))); emit_clobber (gen_rtx_MEM (BLKmode, hard_frame_pointer_rtx)); ! lab = copy_to_reg (lab); + /* Restore the stack and frame pointers. The virtual_stack_vars_rtx + is saved instead of the hard_frame_pointer_rtx in the save area. + As a result, an extra instruction is needed to adjust for the offset + of the virtual stack variables and the hard frame pointer. */ + fp = copy_to_reg (fp); emit_stack_restore (SAVE_NONLOCAL, stack); + /* Ensure the frame pointer move is not optimized. */ + emit_insn (gen_blockage ()); + emit_clobber (hard_frame_pointer_rtx); + emit_clobber (frame_pointer_rtx); + emit_move_insn (hard_frame_pointer_rtx, plus_constant (Pmode, fp, -8)); + emit_use (hard_frame_pointer_rtx); emit_use (stack_pointer_rtx); *************** add,l %2,%3,%3\;bv,n %%r0(%3)" *** 8695,8717 **** emit_clobber (gen_rtx_MEM (BLKmode, gen_rtx_SCRATCH (VOIDmode))); emit_clobber (gen_rtx_MEM (BLKmode, hard_frame_pointer_rtx)); - /* Restore the frame pointer. The virtual_stack_vars_rtx is saved - instead of the hard_frame_pointer_rtx in the save area. We need - to adjust for the offset between these two values. */ - if (GET_CODE (fp) != REG) - fp = force_reg (Pmode, fp); - emit_move_insn (hard_frame_pointer_rtx, plus_constant (Pmode, fp, -8)); - - /* This bit is the same as expand_builtin_longjmp. */ - emit_stack_restore (SAVE_NONLOCAL, stack); - emit_use (hard_frame_pointer_rtx); - emit_use (stack_pointer_rtx); - /* Load the label we are jumping through into r1 so that we know where to look for it when we get back to setjmp's function for restoring the gp. */ emit_move_insn (pv, lab); /* Prevent the insns above from being scheduled into the delay slot of the interspace jump because the space register could change. */ emit_insn (gen_blockage ()); --- 8698,8723 ---- emit_clobber (gen_rtx_MEM (BLKmode, gen_rtx_SCRATCH (VOIDmode))); emit_clobber (gen_rtx_MEM (BLKmode, hard_frame_pointer_rtx)); /* Load the label we are jumping through into r1 so that we know where to look for it when we get back to setjmp's function for restoring the gp. */ emit_move_insn (pv, lab); + /* Restore the stack and frame pointers. The virtual_stack_vars_rtx + is saved instead of the hard_frame_pointer_rtx in the save area. + We need to adjust for the offset between these two values. */ + fp = copy_to_reg (fp); + emit_stack_restore (SAVE_NONLOCAL, stack); + + /* Ensure the frame pointer move is not optimized. */ + emit_insn (gen_blockage ()); + emit_clobber (hard_frame_pointer_rtx); + emit_clobber (frame_pointer_rtx); + emit_move_insn (hard_frame_pointer_rtx, plus_constant (Pmode, fp, -8)); + + emit_use (hard_frame_pointer_rtx); + emit_use (stack_pointer_rtx); + /* Prevent the insns above from being scheduled into the delay slot of the interspace jump because the space register could change. */ emit_insn (gen_blockage ()); *************** add,l %2,%3,%3\;bv,n %%r0(%3)" *** 9056,9062 **** (define_insn "decrement_and_branch_until_zero" [(set (pc) (if_then_else ! (match_operator 2 "comparison_operator" [(plus:SI (match_operand:SI 0 "reg_before_reload_operand" "+!r,!*f,*Q") (match_operand:SI 1 "int5_operand" "L,L,L")) --- 9062,9068 ---- (define_insn "decrement_and_branch_until_zero" [(set (pc) (if_then_else ! (match_operator 2 "ordered_comparison_operator" [(plus:SI (match_operand:SI 0 "reg_before_reload_operand" "+!r,!*f,*Q") (match_operand:SI 1 "int5_operand" "L,L,L")) *************** add,l %2,%3,%3\;bv,n %%r0(%3)" *** 10085,10107 **** (set_attr "length" "4,16")]) ;; PA 2.0 hardware supports out-of-order execution of loads and stores, so ! ;; we need a memory barrier to enforce program order for memory references. ! ;; Since we want PA 1.x code to be PA 2.0 compatible, we also need the ! ;; barrier when generating PA 1.x code. (define_expand "memory_barrier" ! [(set (match_dup 0) ! (unspec:BLK [(match_dup 0)] UNSPEC_MEMORY_BARRIER))] "" { ! operands[0] = gen_rtx_MEM (BLKmode, gen_rtx_SCRATCH (Pmode)); MEM_VOLATILE_P (operands[0]) = 1; }) ! (define_insn "*memory_barrier" [(set (match_operand:BLK 0 "" "") ! (unspec:BLK [(match_dup 0)] UNSPEC_MEMORY_BARRIER))] ! "" ! "sync" [(set_attr "type" "binary") (set_attr "length" "4")]) --- 10091,10145 ---- (set_attr "length" "4,16")]) ;; PA 2.0 hardware supports out-of-order execution of loads and stores, so ! ;; we need memory barriers to enforce program order for memory references ! ;; when the TLB and PSW O bits are not set. We assume all PA 2.0 systems ! ;; are weakly ordered since neither HP-UX or Linux set the PSW O bit. Since ! ;; we want PA 1.x code to be PA 2.0 compatible, we also need barriers when ! ;; generating PA 1.x code even though all PA 1.x systems are strongly ordered. ! ! ;; When barriers are needed, we use a strongly ordered ldcw instruction as ! ;; the barrier. Most PA 2.0 targets are cache coherent. In that case, we ! ;; can use the coherent cache control hint and avoid aligning the ldcw ! ;; address. In spite of its description, it is not clear that the sync ! ;; instruction works as a barrier. (define_expand "memory_barrier" ! [(parallel ! [(set (match_dup 0) (unspec:BLK [(match_dup 0)] UNSPEC_MEMORY_BARRIER)) ! (clobber (match_dup 1))])] "" { ! /* We don't need a barrier if the target uses ordered memory references. */ ! if (TARGET_ORDERED) ! FAIL; ! operands[1] = gen_reg_rtx (Pmode); ! operands[0] = gen_rtx_MEM (BLKmode, operands[1]); MEM_VOLATILE_P (operands[0]) = 1; }) ! (define_insn "*memory_barrier_coherent" [(set (match_operand:BLK 0 "" "") ! (unspec:BLK [(match_dup 0)] UNSPEC_MEMORY_BARRIER)) ! (clobber (match_operand 1 "pmode_register_operand" "=r"))] ! "TARGET_PA_20 && TARGET_COHERENT_LDCW" ! "ldcw,co 0(%%sp),%1" [(set_attr "type" "binary") (set_attr "length" "4")]) + + (define_insn "*memory_barrier_64" + [(set (match_operand:BLK 0 "" "") + (unspec:BLK [(match_dup 0)] UNSPEC_MEMORY_BARRIER)) + (clobber (match_operand 1 "pmode_register_operand" "=&r"))] + "TARGET_64BIT" + "ldo 15(%%sp),%1\n\tdepd %%r0,63,3,%1\n\tldcw 0(%1),%1" + [(set_attr "type" "binary") + (set_attr "length" "12")]) + + (define_insn "*memory_barrier_32" + [(set (match_operand:BLK 0 "" "") + (unspec:BLK [(match_dup 0)] UNSPEC_MEMORY_BARRIER)) + (clobber (match_operand 1 "pmode_register_operand" "=&r"))] + "" + "ldo 15(%%sp),%1\n\t{dep|depw} %%r0,31,3,%1\n\tldcw 0(%1),%1" + [(set_attr "type" "binary") + (set_attr "length" "12")]) diff -Nrcpad gcc-8.3.0/gcc/config/pa/pa.opt gcc-8.4.0/gcc/config/pa/pa.opt *** gcc-8.3.0/gcc/config/pa/pa.opt Wed Jan 3 10:03:58 2018 --- gcc-8.4.0/gcc/config/pa/pa.opt Wed Mar 4 08:30:00 2020 *************** mcaller-copies *** 45,50 **** --- 45,54 ---- Target Report Mask(CALLER_COPIES) Caller copies function arguments passed by hidden reference. + mcoherent-ldcw + Target Report Var(TARGET_COHERENT_LDCW) Init(1) + Use ldcw/ldcd coherent cache-control hint. + mdisable-fpregs Target Report Mask(DISABLE_FPREGS) Disable FP regs. *************** mno-space-regs *** 90,95 **** --- 94,103 ---- Target RejectNegative Report Mask(NO_SPACE_REGS) Disable space regs. + mordered + Target Report Var(TARGET_ORDERED) Init(0) + Assume memory references are ordered and barriers are not needed. + mpa-risc-1-0 Target RejectNegative Generate PA1.0 code. diff -Nrcpad gcc-8.3.0/gcc/config/pa/predicates.md gcc-8.4.0/gcc/config/pa/predicates.md *** gcc-8.3.0/gcc/config/pa/predicates.md Thu Feb 1 17:12:28 2018 --- gcc-8.4.0/gcc/config/pa/predicates.md Wed Mar 4 08:30:00 2020 *************** *** 662,669 **** (and (match_code "symbol_ref") (match_test "SYMBOL_REF_TLS_MODEL (op) == TLS_MODEL_LOCAL_EXEC"))) ! ;; True iff this is a comparison operator. This allows the use of ! ;; MATCH_OPERATOR to recognize all the branch insns. (define_predicate "cmpib_comparison_operator" (match_code "eq,ne,lt,le,leu,gt,gtu,ge")) --- 662,669 ---- (and (match_code "symbol_ref") (match_test "SYMBOL_REF_TLS_MODEL (op) == TLS_MODEL_LOCAL_EXEC"))) ! ;; True iff OP is an operator suitable for use in a double-word cmpib ! ;; instruction. (define_predicate "cmpib_comparison_operator" (match_code "eq,ne,lt,le,leu,gt,gtu,ge")) diff -Nrcpad gcc-8.3.0/gcc/config/pa/som.h gcc-8.4.0/gcc/config/pa/som.h *** gcc-8.3.0/gcc/config/pa/som.h Wed Jan 17 00:09:44 2018 --- gcc-8.4.0/gcc/config/pa/som.h Wed Mar 4 08:30:00 2020 *************** do { \ *** 98,105 **** #define ASM_DECLARE_FUNCTION_NAME(FILE, NAME, DECL) \ ! do { tree fntype = TREE_TYPE (TREE_TYPE (DECL)); \ ! tree tree_type = TREE_TYPE (DECL); \ tree parm; \ int i; \ if (TREE_PUBLIC (DECL) || TARGET_GAS) \ --- 98,105 ---- #define ASM_DECLARE_FUNCTION_NAME(FILE, NAME, DECL) \ ! do { tree tree_type = TREE_TYPE (DECL); \ ! tree fntype = TREE_TYPE (tree_type); \ tree parm; \ int i; \ if (TREE_PUBLIC (DECL) || TARGET_GAS) \ *************** do { \ *** 121,129 **** { \ tree type = DECL_ARG_TYPE (parm); \ machine_mode mode = TYPE_MODE (type); \ ! if (mode == SFmode && ! TARGET_SOFT_FLOAT) \ fprintf (FILE, ",ARGW%d=FR", i++); \ ! else if (mode == DFmode && ! TARGET_SOFT_FLOAT) \ { \ if (i <= 2) \ { \ --- 121,131 ---- { \ tree type = DECL_ARG_TYPE (parm); \ machine_mode mode = TYPE_MODE (type); \ ! if (!AGGREGATE_TYPE_P (type) \ ! && mode == SFmode && ! TARGET_SOFT_FLOAT) \ fprintf (FILE, ",ARGW%d=FR", i++); \ ! else if (!AGGREGATE_TYPE_P (type) \ ! && mode == DFmode && ! TARGET_SOFT_FLOAT) \ { \ if (i <= 2) \ { \ *************** do { \ *** 158,166 **** for (; i < 4; i++) \ fprintf (FILE, ",ARGW%d=GR", i); \ } \ ! if (TYPE_MODE (fntype) == DFmode && ! TARGET_SOFT_FLOAT) \ fputs (DFMODE_RETURN_STRING, FILE); \ ! else if (TYPE_MODE (fntype) == SFmode && ! TARGET_SOFT_FLOAT) \ fputs (SFMODE_RETURN_STRING, FILE); \ else if (fntype != void_type_node) \ fputs (",RTNVAL=GR", FILE); \ --- 160,172 ---- for (; i < 4; i++) \ fprintf (FILE, ",ARGW%d=GR", i); \ } \ ! if (!AGGREGATE_TYPE_P (fntype) \ ! && TYPE_MODE (fntype) == DFmode \ ! && ! TARGET_SOFT_FLOAT) \ fputs (DFMODE_RETURN_STRING, FILE); \ ! else if (!AGGREGATE_TYPE_P (fntype) \ ! && TYPE_MODE (fntype) == SFmode \ ! && ! TARGET_SOFT_FLOAT) \ fputs (SFMODE_RETURN_STRING, FILE); \ else if (fntype != void_type_node) \ fputs (",RTNVAL=GR", FILE); \ diff -Nrcpad gcc-8.3.0/gcc/config/riscv/riscv.c gcc-8.4.0/gcc/config/riscv/riscv.c *** gcc-8.3.0/gcc/config/riscv/riscv.c Fri Apr 20 19:03:19 2018 --- gcc-8.4.0/gcc/config/riscv/riscv.c Wed Mar 4 08:30:00 2020 *************** riscv_rtx_costs (rtx x, machine_mode mod *** 1515,1521 **** case ZERO_EXTRACT: /* This is an SImode shift. */ ! if (outer_code == SET && (INTVAL (XEXP (x, 2)) > 0) && (INTVAL (XEXP (x, 1)) + INTVAL (XEXP (x, 2)) == 32)) { *total = COSTS_N_INSNS (SINGLE_SHIFT_COST); --- 1515,1524 ---- case ZERO_EXTRACT: /* This is an SImode shift. */ ! if (outer_code == SET ! && CONST_INT_P (XEXP (x, 1)) ! && CONST_INT_P (XEXP (x, 2)) ! && (INTVAL (XEXP (x, 2)) > 0) && (INTVAL (XEXP (x, 1)) + INTVAL (XEXP (x, 2)) == 32)) { *total = COSTS_N_INSNS (SINGLE_SHIFT_COST); *************** riscv_print_operand_reloc (FILE *file, r *** 2932,2938 **** break; default: ! gcc_unreachable (); } fprintf (file, "%s(", reloc); --- 2935,2942 ---- break; default: ! output_operand_lossage ("invalid use of '%%%c'", hi_reloc ? 'h' : 'R'); ! return; } fprintf (file, "%s(", reloc); *************** riscv_constant_alignment (const_tree exp *** 4389,4394 **** --- 4393,4424 ---- return align; } + /* Implement TARGET_PROMOTE_FUNCTION_MODE. */ + + /* This function is equivalent to default_promote_function_mode_always_promote + except that it returns a promoted mode even if type is NULL_TREE. This is + needed by libcalls which have no type (only a mode) such as fixed conversion + routines that take a signed or unsigned char/short/int argument and convert + it to a fixed type. */ + + static machine_mode + riscv_promote_function_mode (const_tree type ATTRIBUTE_UNUSED, + machine_mode mode, + int *punsignedp ATTRIBUTE_UNUSED, + const_tree fntype ATTRIBUTE_UNUSED, + int for_return ATTRIBUTE_UNUSED) + { + int unsignedp; + + if (type != NULL_TREE) + return promote_mode (type, mode, punsignedp); + + unsignedp = *punsignedp; + PROMOTE_MODE (mode, unsignedp, type); + *punsignedp = unsignedp; + return mode; + } + /* Initialize the GCC target structure. */ #undef TARGET_ASM_ALIGNED_HI_OP #define TARGET_ASM_ALIGNED_HI_OP "\t.half\t" *************** riscv_constant_alignment (const_tree exp *** 4430,4436 **** #define TARGET_EXPAND_BUILTIN_VA_START riscv_va_start #undef TARGET_PROMOTE_FUNCTION_MODE ! #define TARGET_PROMOTE_FUNCTION_MODE default_promote_function_mode_always_promote #undef TARGET_RETURN_IN_MEMORY #define TARGET_RETURN_IN_MEMORY riscv_return_in_memory --- 4460,4466 ---- #define TARGET_EXPAND_BUILTIN_VA_START riscv_va_start #undef TARGET_PROMOTE_FUNCTION_MODE ! #define TARGET_PROMOTE_FUNCTION_MODE riscv_promote_function_mode #undef TARGET_RETURN_IN_MEMORY #define TARGET_RETURN_IN_MEMORY riscv_return_in_memory diff -Nrcpad gcc-8.3.0/gcc/config/rs6000/altivec.h gcc-8.4.0/gcc/config/rs6000/altivec.h *** gcc-8.3.0/gcc/config/rs6000/altivec.h Wed Mar 14 17:38:15 2018 --- gcc-8.4.0/gcc/config/rs6000/altivec.h Wed Mar 4 08:30:00 2020 *************** *** 418,423 **** --- 418,428 ---- #define vec_vupkhsw __builtin_vec_vupkhsw #define vec_vupklsw __builtin_vec_vupklsw #define vec_revb __builtin_vec_revb + #define vec_sbox_be __builtin_crypto_vsbox_be + #define vec_cipher_be __builtin_crypto_vcipher_be + #define vec_cipherlast_be __builtin_crypto_vcipherlast_be + #define vec_ncipher_be __builtin_crypto_vncipher_be + #define vec_ncipherlast_be __builtin_crypto_vncipherlast_be #endif #ifdef __POWER9_VECTOR__ diff -Nrcpad gcc-8.3.0/gcc/config/rs6000/altivec.md gcc-8.4.0/gcc/config/rs6000/altivec.md *** gcc-8.3.0/gcc/config/rs6000/altivec.md Tue Mar 20 17:25:09 2018 --- gcc-8.4.0/gcc/config/rs6000/altivec.md Wed Mar 4 08:30:00 2020 *************** *** 80,88 **** UNSPEC_VUPKHPX UNSPEC_VUPKLPX UNSPEC_CONVERT_4F32_8I16 - UNSPEC_DARN - UNSPEC_DARN_32 - UNSPEC_DARN_RAW UNSPEC_DST UNSPEC_DSTT UNSPEC_DSTST --- 80,85 ---- *************** *** 161,169 **** UNSPEC_BCDADD UNSPEC_BCDSUB UNSPEC_BCD_OVERFLOW - UNSPEC_CMPRB - UNSPEC_CMPRB2 - UNSPEC_CMPEQB UNSPEC_VRLMI UNSPEC_VRLNM ]) --- 158,163 ---- *************** *** 581,587 **** [(set_attr "type" "vecsimple")]) ;; ! (define_insn "altivec_vavgu" [(set (match_operand:VI 0 "register_operand" "=v") (unspec:VI [(match_operand:VI 1 "register_operand" "v") (match_operand:VI 2 "register_operand" "v")] --- 575,581 ---- [(set_attr "type" "vecsimple")]) ;; ! (define_insn "uavg3_ceil" [(set (match_operand:VI 0 "register_operand" "=v") (unspec:VI [(match_operand:VI 1 "register_operand" "v") (match_operand:VI 2 "register_operand" "v")] *************** *** 590,596 **** "vavgu %0,%1,%2" [(set_attr "type" "vecsimple")]) ! (define_insn "altivec_vavgs" [(set (match_operand:VI 0 "register_operand" "=v") (unspec:VI [(match_operand:VI 1 "register_operand" "v") (match_operand:VI 2 "register_operand" "v")] --- 584,590 ---- "vavgu %0,%1,%2" [(set_attr "type" "vecsimple")]) ! (define_insn "avg3_ceil" [(set (match_operand:VI 0 "register_operand" "=v") (unspec:VI [(match_operand:VI 1 "register_operand" "v") (match_operand:VI 2 "register_operand" "v")] *************** *** 4317,4539 **** [(set_attr "length" "4") (set_attr "type" "vecsimple")]) - (define_insn "darn_32" - [(set (match_operand:SI 0 "register_operand" "=r") - (unspec:SI [(const_int 0)] UNSPEC_DARN_32))] - "TARGET_P9_MISC" - "darn %0,0" - [(set_attr "type" "integer")]) - - (define_insn "darn_raw" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(const_int 0)] UNSPEC_DARN_RAW))] - "TARGET_P9_MISC && TARGET_64BIT" - "darn %0,2" - [(set_attr "type" "integer")]) - - (define_insn "darn" - [(set (match_operand:DI 0 "register_operand" "=r") - (unspec:DI [(const_int 0)] UNSPEC_DARN))] - "TARGET_P9_MISC && TARGET_64BIT" - "darn %0,1" - [(set_attr "type" "integer")]) - - ;; Test byte within range. - ;; - ;; The bytes of operand 1 are organized as xx:xx:xx:vv, where xx - ;; represents a byte whose value is ignored in this context and - ;; vv, the least significant byte, holds the byte value that is to - ;; be tested for membership within the range specified by operand 2. - ;; The bytes of operand 2 are organized as xx:xx:hi:lo. - ;; - ;; Return in target register operand 0 a value of 1 if lo <= vv and - ;; vv <= hi. Otherwise, set register operand 0 to 0. - ;; - ;; Though the instructions to which this expansion maps operate on - ;; 64-bit registers, the current implementation only operates on - ;; SI-mode operands as the high-order bits provide no information - ;; that is not already available in the low-order bits. To avoid the - ;; costs of data widening operations, future enhancements might allow - ;; DI mode for operand 0 and/or might allow operand 1 to be QI mode. - (define_expand "cmprb" - [(set (match_dup 3) - (unspec:CC [(match_operand:SI 1 "gpc_reg_operand" "r") - (match_operand:SI 2 "gpc_reg_operand" "r")] - UNSPEC_CMPRB)) - (set (match_operand:SI 0 "gpc_reg_operand" "=r") - (if_then_else:SI (lt (match_dup 3) - (const_int 0)) - (const_int -1) - (if_then_else (gt (match_dup 3) - (const_int 0)) - (const_int 1) - (const_int 0))))] - "TARGET_P9_MISC" - { - operands[3] = gen_reg_rtx (CCmode); - }) - - ;; The bytes of operand 1 are organized as xx:xx:xx:vv, where xx - ;; represents a byte whose value is ignored in this context and - ;; vv, the least significant byte, holds the byte value that is to - ;; be tested for membership within the range specified by operand 2. - ;; The bytes of operand 2 are organized as xx:xx:hi:lo. - ;; - ;; Set bit 1 (the GT bit, 0x4) of CR register operand 0 to 1 if - ;; lo <= vv and vv <= hi. Otherwise, set the GT bit to 0. The other - ;; 3 bits of the target CR register are all set to 0. - (define_insn "*cmprb_internal" - [(set (match_operand:CC 0 "cc_reg_operand" "=y") - (unspec:CC [(match_operand:SI 1 "gpc_reg_operand" "r") - (match_operand:SI 2 "gpc_reg_operand" "r")] - UNSPEC_CMPRB))] - "TARGET_P9_MISC" - "cmprb %0,0,%1,%2" - [(set_attr "type" "logical")]) - - ;; Set operand 0 register to -1 if the LT bit (0x8) of condition - ;; register operand 1 is on. Otherwise, set operand 0 register to 1 - ;; if the GT bit (0x4) of condition register operand 1 is on. - ;; Otherwise, set operand 0 to 0. Note that the result stored into - ;; register operand 0 is non-zero iff either the LT or GT bits are on - ;; within condition register operand 1. - (define_insn "setb_signed" - [(set (match_operand:SI 0 "gpc_reg_operand" "=r") - (if_then_else:SI (lt (match_operand:CC 1 "cc_reg_operand" "y") - (const_int 0)) - (const_int -1) - (if_then_else (gt (match_dup 1) - (const_int 0)) - (const_int 1) - (const_int 0))))] - "TARGET_P9_MISC" - "setb %0,%1" - [(set_attr "type" "logical")]) - - (define_insn "setb_unsigned" - [(set (match_operand:SI 0 "gpc_reg_operand" "=r") - (if_then_else:SI (ltu (match_operand:CCUNS 1 "cc_reg_operand" "y") - (const_int 0)) - (const_int -1) - (if_then_else (gtu (match_dup 1) - (const_int 0)) - (const_int 1) - (const_int 0))))] - "TARGET_P9_MISC" - "setb %0,%1" - [(set_attr "type" "logical")]) - - ;; Test byte within two ranges. - ;; - ;; The bytes of operand 1 are organized as xx:xx:xx:vv, where xx - ;; represents a byte whose value is ignored in this context and - ;; vv, the least significant byte, holds the byte value that is to - ;; be tested for membership within the range specified by operand 2. - ;; The bytes of operand 2 are organized as hi_1:lo_1:hi_2:lo_2. - ;; - ;; Return in target register operand 0 a value of 1 if (lo_1 <= vv and - ;; vv <= hi_1) or if (lo_2 <= vv and vv <= hi_2). Otherwise, set register - ;; operand 0 to 0. - ;; - ;; Though the instructions to which this expansion maps operate on - ;; 64-bit registers, the current implementation only operates on - ;; SI-mode operands as the high-order bits provide no information - ;; that is not already available in the low-order bits. To avoid the - ;; costs of data widening operations, future enhancements might allow - ;; DI mode for operand 0 and/or might allow operand 1 to be QI mode. - (define_expand "cmprb2" - [(set (match_dup 3) - (unspec:CC [(match_operand:SI 1 "gpc_reg_operand" "r") - (match_operand:SI 2 "gpc_reg_operand" "r")] - UNSPEC_CMPRB2)) - (set (match_operand:SI 0 "gpc_reg_operand" "=r") - (if_then_else:SI (lt (match_dup 3) - (const_int 0)) - (const_int -1) - (if_then_else (gt (match_dup 3) - (const_int 0)) - (const_int 1) - (const_int 0))))] - "TARGET_P9_MISC" - { - operands[3] = gen_reg_rtx (CCmode); - }) - - ;; The bytes of operand 1 are organized as xx:xx:xx:vv, where xx - ;; represents a byte whose value is ignored in this context and - ;; vv, the least significant byte, holds the byte value that is to - ;; be tested for membership within the ranges specified by operand 2. - ;; The bytes of operand 2 are organized as hi_1:lo_1:hi_2:lo_2. - ;; - ;; Set bit 1 (the GT bit, 0x4) of CR register operand 0 to 1 if - ;; (lo_1 <= vv and vv <= hi_1) or if (lo_2 <= vv and vv <= hi_2). - ;; Otherwise, set the GT bit to 0. The other 3 bits of the target - ;; CR register are all set to 0. - (define_insn "*cmprb2_internal" - [(set (match_operand:CC 0 "cc_reg_operand" "=y") - (unspec:CC [(match_operand:SI 1 "gpc_reg_operand" "r") - (match_operand:SI 2 "gpc_reg_operand" "r")] - UNSPEC_CMPRB2))] - "TARGET_P9_MISC" - "cmprb %0,1,%1,%2" - [(set_attr "type" "logical")]) - - ;; Test byte membership within set of 8 bytes. - ;; - ;; The bytes of operand 1 are organized as xx:xx:xx:vv, where xx - ;; represents a byte whose value is ignored in this context and - ;; vv, the least significant byte, holds the byte value that is to - ;; be tested for membership within the set specified by operand 2. - ;; The bytes of operand 2 are organized as e0:e1:e2:e3:e4:e5:e6:e7. - ;; - ;; Return in target register operand 0 a value of 1 if vv equals one - ;; of the values e0, e1, e2, e3, e4, e5, e6, or e7. Otherwise, set - ;; register operand 0 to 0. Note that the 8 byte values held within - ;; operand 2 need not be unique. - ;; - ;; Though the instructions to which this expansion maps operate on - ;; 64-bit registers, the current implementation requires that operands - ;; 0 and 1 have mode SI as the high-order bits provide no information - ;; that is not already available in the low-order bits. To avoid the - ;; costs of data widening operations, future enhancements might allow - ;; DI mode for operand 0 and/or might allow operand 1 to be QI mode. - (define_expand "cmpeqb" - [(set (match_dup 3) - (unspec:CC [(match_operand:SI 1 "gpc_reg_operand" "r") - (match_operand:DI 2 "gpc_reg_operand" "r")] - UNSPEC_CMPEQB)) - (set (match_operand:SI 0 "gpc_reg_operand" "=r") - (if_then_else:SI (lt (match_dup 3) - (const_int 0)) - (const_int -1) - (if_then_else (gt (match_dup 3) - (const_int 0)) - (const_int 1) - (const_int 0))))] - "TARGET_P9_MISC && TARGET_64BIT" - { - operands[3] = gen_reg_rtx (CCmode); - }) - - ;; The bytes of operand 1 are organized as xx:xx:xx:vv, where xx - ;; represents a byte whose value is ignored in this context and - ;; vv, the least significant byte, holds the byte value that is to - ;; be tested for membership within the set specified by operand 2. - ;; The bytes of operand 2 are organized as e0:e1:e2:e3:e4:e5:e6:e7. - ;; - ;; Set bit 1 (the GT bit, 0x4) of CR register operand 0 to 1 if vv - ;; equals one of the values e0, e1, e2, e3, e4, e5, e6, or e7. Otherwise, - ;; set the GT bit to zero. The other 3 bits of the target CR register - ;; are all set to 0. - (define_insn "*cmpeqb_internal" - [(set (match_operand:CC 0 "cc_reg_operand" "=y") - (unspec:CC [(match_operand:SI 1 "gpc_reg_operand" "r") - (match_operand:DI 2 "gpc_reg_operand" "r")] - UNSPEC_CMPEQB))] - "TARGET_P9_MISC && TARGET_64BIT" - "cmpeqb %0,%1,%2" - [(set_attr "type" "logical")]) - (define_expand "bcd_" [(parallel [(set (reg:CCFP CR6_REGNO) (compare:CCFP --- 4311,4316 ---- diff -Nrcpad gcc-8.3.0/gcc/config/rs6000/crypto.md gcc-8.4.0/gcc/config/rs6000/crypto.md *** gcc-8.3.0/gcc/config/rs6000/crypto.md Wed Jan 3 10:03:58 2018 --- gcc-8.4.0/gcc/config/rs6000/crypto.md Wed Mar 4 08:30:00 2020 *************** *** 48,53 **** --- 48,56 ---- ;; Iterator for VSHASIGMAD/VSHASIGMAW (define_mode_iterator CR_hash [V4SI V2DI]) + ;; Iterator for VSBOX/VCIPHER/VNCIPHER/VCIPHERLAST/VNCIPHERLAST + (define_mode_iterator CR_vqdi [V16QI V2DI]) + ;; Iterator for the other crypto functions (define_int_iterator CR_code [UNSPEC_VCIPHER UNSPEC_VNCIPHER *************** *** 60,69 **** (UNSPEC_VNCIPHERLAST "vncipherlast")]) ;; 2 operand crypto instructions ! (define_insn "crypto_" ! [(set (match_operand:V2DI 0 "register_operand" "=v") ! (unspec:V2DI [(match_operand:V2DI 1 "register_operand" "v") ! (match_operand:V2DI 2 "register_operand" "v")] CR_code))] "TARGET_CRYPTO" " %0,%1,%2" --- 63,72 ---- (UNSPEC_VNCIPHERLAST "vncipherlast")]) ;; 2 operand crypto instructions ! (define_insn "crypto__" ! [(set (match_operand:CR_vqdi 0 "register_operand" "=v") ! (unspec:CR_vqdi [(match_operand:CR_vqdi 1 "register_operand" "v") ! (match_operand:CR_vqdi 2 "register_operand" "v")] CR_code))] "TARGET_CRYPTO" " %0,%1,%2" *************** *** 90,98 **** [(set_attr "type" "vecperm")]) ;; 1 operand crypto instruction ! (define_insn "crypto_vsbox" ! [(set (match_operand:V2DI 0 "register_operand" "=v") ! (unspec:V2DI [(match_operand:V2DI 1 "register_operand" "v")] UNSPEC_VSBOX))] "TARGET_CRYPTO" "vsbox %0,%1" --- 93,101 ---- [(set_attr "type" "vecperm")]) ;; 1 operand crypto instruction ! (define_insn "crypto_vsbox_" ! [(set (match_operand:CR_vqdi 0 "register_operand" "=v") ! (unspec:CR_vqdi [(match_operand:CR_vqdi 1 "register_operand" "v")] UNSPEC_VSBOX))] "TARGET_CRYPTO" "vsbox %0,%1" diff -Nrcpad gcc-8.3.0/gcc/config/rs6000/darwin.h gcc-8.4.0/gcc/config/rs6000/darwin.h *** gcc-8.3.0/gcc/config/rs6000/darwin.h Sun Oct 28 10:02:06 2018 --- gcc-8.4.0/gcc/config/rs6000/darwin.h Wed Mar 4 08:30:00 2020 *************** *** 53,69 **** #define TARGET_OS_CPP_BUILTINS() \ do \ { \ - if (!TARGET_64BIT) builtin_define ("__ppc__"); \ - if (TARGET_64BIT) builtin_define ("__ppc64__"); \ builtin_define ("__POWERPC__"); \ builtin_define ("__NATURAL_ALIGNMENT__"); \ darwin_cpp_builtins (pfile); \ } \ while (0) - /* Generate branch islands stubs if this is true. */ - extern int darwin_emit_branch_islands; - #define SUBTARGET_OVERRIDE_OPTIONS darwin_rs6000_override_options () #define C_COMMON_OVERRIDE_OPTIONS do { \ --- 53,80 ---- #define TARGET_OS_CPP_BUILTINS() \ do \ { \ builtin_define ("__POWERPC__"); \ + builtin_define ("__PPC__"); \ + if (TARGET_64BIT) \ + { \ + builtin_define ("__ppc64__"); \ + builtin_define ("__PPC64__"); \ + builtin_define ("__powerpc64__"); \ + builtin_assert ("cpu=powerpc64"); \ + builtin_assert ("machine=powerpc64"); \ + } \ + else \ + { \ + builtin_define ("__ppc__"); \ + builtin_define_std ("PPC"); \ + builtin_assert ("cpu=powerpc"); \ + builtin_assert ("machine=powerpc"); \ + } \ builtin_define ("__NATURAL_ALIGNMENT__"); \ darwin_cpp_builtins (pfile); \ } \ while (0) #define SUBTARGET_OVERRIDE_OPTIONS darwin_rs6000_override_options () #define C_COMMON_OVERRIDE_OPTIONS do { \ *************** extern int darwin_emit_branch_islands; *** 98,108 **** % 10.4 mmacosx-version-min= crt2.o%s)}" #undef SUBTARGET_EXTRA_SPECS #define SUBTARGET_EXTRA_SPECS \ --- 127,177 ---- mcpu=970:ppc970; \ mcpu=power4:ppc970; \ mcpu=G5:ppc970; \ ! :ppc}" ! /* We need to jam the crt to 10.5 for 10.6 (Rosetta) use. */ ! #undef DARWIN_CRT1_SPEC ! #define DARWIN_CRT1_SPEC \ ! "%:version-compare(!> 10.5 mmacosx-version-min= -lcrt1.o) \ ! %:version-compare(>< 10.5 10.7 mmacosx-version-min= -lcrt1.10.5.o) \ ! %{fgnu-tm: -lcrttms.o}" ! ! /* crt2.o is at least partially required for 10.3.x and earlier. ! It deals with registration of the unwind frames, where this is not ! automatically provided by the system. So we need it for any case that ! might use exceptions. */ ! #undef DARWIN_CRT2_SPEC #define DARWIN_CRT2_SPEC \ ! "%{!m64:%{shared-libgcc|static-libstdc++|fexceptions|fobjc-exceptions|fgnu-runtime: \ ! %:version-compare(!> 10.4 mmacosx-version-min= crt2.o%s) \ ! }}" ! ! /* crt3 deals with providing cxa_atexit on earlier systems (or fixing it up, ! for broken versions). It's only needed for c++ code, so we can make it ! conditional on shared-libgcc since that's forced on for c++. */ ! #undef DARWIN_CRT3_SPEC ! #define DARWIN_CRT3_SPEC \ ! "%{!m64:%{shared-libgcc|static-libstdc++: \ ! %:version-compare(>< 10.4 10.5 mmacosx-version-min= crt3.o%s) \ ! %:version-compare(!> 10.4 mmacosx-version-min= crt3_2.o%s) \ ! }}" ! ! /* As for crt1, we need to force the dylib crt for 10.6. */ ! #undef DARWIN_DYLIB1_SPEC ! #define DARWIN_DYLIB1_SPEC \ ! "%:version-compare(!> 10.5 mmacosx-version-min= -ldylib1.o) \ ! %:version-compare(>< 10.5 10.7 mmacosx-version-min= -ldylib1.10.5.o)" ! ! /* Likewise, the bundle crt. */ ! #undef DARWIN_BUNDLE1_SPEC ! #define DARWIN_BUNDLE1_SPEC \ ! "%{!static:%:version-compare(< 10.7 mmacosx-version-min= -lbundle1.o) \ ! %{fgnu-tm: -lcrttms.o}}" ! ! /* The PPC regs save/restore functions are leaves and could, conceivably ! be used by the tm destructor. */ ! #undef ENDFILE_SPEC ! #define ENDFILE_SPEC TM_DESTRUCTOR " -lef_ppc" #undef SUBTARGET_EXTRA_SPECS #define SUBTARGET_EXTRA_SPECS \ *************** extern int darwin_emit_branch_islands; *** 265,273 **** /* This is supported in cctools 465 and later. The macro test above prevents using it in earlier build environments. */ #define ASM_OUTPUT_MAX_SKIP_ALIGN(FILE,LOG,MAX_SKIP) \ ! if ((LOG) != 0) \ { \ ! if ((MAX_SKIP) == 0) \ fprintf ((FILE), "\t.p2align %d\n", (LOG)); \ else \ fprintf ((FILE), "\t.p2align %d,,%d\n", (LOG), (MAX_SKIP)); \ --- 315,323 ---- /* This is supported in cctools 465 and later. The macro test above prevents using it in earlier build environments. */ #define ASM_OUTPUT_MAX_SKIP_ALIGN(FILE,LOG,MAX_SKIP) \ ! if ((LOG) > 0) \ { \ ! if ((MAX_SKIP) <= 0) \ fprintf ((FILE), "\t.p2align %d\n", (LOG)); \ else \ fprintf ((FILE), "\t.p2align %d,,%d\n", (LOG), (MAX_SKIP)); \ *************** extern int darwin_emit_branch_islands; *** 382,387 **** --- 432,438 ---- do \ { \ DARWIN_REGISTER_TARGET_PRAGMAS(); \ + targetm.target_option.pragma_parse = rs6000_pragma_target_parse; \ targetm.resolve_overloaded_builtin = altivec_resolve_overloaded_builtin; \ } \ while (0) *************** do { \ *** 441,446 **** --- 492,500 ---- this will need to be modified similar to the x86 case. */ #define TARGET_FOLD_BUILTIN SUBTARGET_FOLD_BUILTIN + /* First available SYMBOL flag bit for use by subtargets. */ + #define SYMBOL_FLAG_SUBT_DEP (SYMBOL_FLAG_MACH_DEP) + /* Use standard DWARF numbering for DWARF debugging information. */ #define RS6000_USE_DWARF_NUMBERING diff -Nrcpad gcc-8.3.0/gcc/config/rs6000/darwin.md gcc-8.4.0/gcc/config/rs6000/darwin.md *** gcc-8.3.0/gcc/config/rs6000/darwin.md Thu Feb 22 01:09:18 2018 --- gcc-8.4.0/gcc/config/rs6000/darwin.md Wed Mar 4 08:30:00 2020 *************** You should have received a copy of the G *** 137,174 **** [(set_attr "type" "store") (set_attr "length" "4")]) - ;; 64-bit MachO load/store support - (define_insn "movdi_low" - [(set (match_operand:DI 0 "gpc_reg_operand" "=r,*!d") - (mem:DI (lo_sum:DI (match_operand:DI 1 "gpc_reg_operand" "b,b") - (match_operand 2 "" ""))))] - "TARGET_MACHO && TARGET_64BIT" - "@ - ld %0,lo16(%2)(%1) - lfd %0,lo16(%2)(%1)" - [(set_attr "type" "load") - (set_attr "length" "4")]) - - (define_insn "movsi_low_st" - [(set (mem:SI (lo_sum:SI (match_operand:SI 1 "gpc_reg_operand" "b") - (match_operand 2 "" ""))) - (match_operand:SI 0 "gpc_reg_operand" "r"))] - "TARGET_MACHO && ! TARGET_64BIT" - "stw %0,lo16(%2)(%1)" - [(set_attr "type" "store") - (set_attr "length" "4")]) - - (define_insn "movdi_low_st" - [(set (mem:DI (lo_sum:DI (match_operand:DI 1 "gpc_reg_operand" "b,b") - (match_operand 2 "" ""))) - (match_operand:DI 0 "gpc_reg_operand" "r,*!d"))] - "TARGET_MACHO && TARGET_64BIT" - "@ - std %0,lo16(%2)(%1) - stfd %0,lo16(%2)(%1)" - [(set_attr "type" "store") - (set_attr "length" "4")]) - ;; Mach-O PIC trickery. (define_expand "macho_high" [(set (match_operand 0 "") --- 137,142 ---- diff -Nrcpad gcc-8.3.0/gcc/config/rs6000/darwin32-biarch.h gcc-8.4.0/gcc/config/rs6000/darwin32-biarch.h *** gcc-8.3.0/gcc/config/rs6000/darwin32-biarch.h Thu Jan 1 00:00:00 1970 --- gcc-8.4.0/gcc/config/rs6000/darwin32-biarch.h Wed Mar 4 08:30:00 2020 *************** *** 0 **** --- 1,49 ---- + /* Target definitions for PowerPC running Darwin (Mac OS X) for a 32b host + with a 64b miultilib. + Copyright (C) 2019 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 + . */ + + #undef DARWIN_ARCH_SPEC + #define DARWIN_ARCH_SPEC "%{m64:ppc64;:ppc}" + + #undef DARWIN_SUBARCH_SPEC + #define DARWIN_SUBARCH_SPEC " \ + %{m64: ppc64} \ + %{!m64: \ + %{mcpu=601:ppc601; \ + mcpu=603:ppc603; \ + mcpu=603e:ppc603; \ + mcpu=604:ppc604; \ + mcpu=604e:ppc604e; \ + mcpu=740:ppc750; \ + mcpu=750:ppc750; \ + mcpu=G3:ppc750; \ + mcpu=7400:ppc7400; \ + mcpu=G4:ppc7400; \ + mcpu=7450:ppc7450; \ + mcpu=970:ppc970; \ + mcpu=power4:ppc970; \ + mcpu=G5:ppc970; \ + :ppc}}" + + #undef SUBTARGET_EXTRA_SPECS + #define SUBTARGET_EXTRA_SPECS \ + DARWIN_EXTRA_SPECS \ + { "darwin_arch", DARWIN_ARCH_SPEC }, \ + { "darwin_crt2", DARWIN_CRT2_SPEC }, \ + { "darwin_subarch", DARWIN_SUBARCH_SPEC }, diff -Nrcpad gcc-8.3.0/gcc/config/rs6000/darwin64-biarch.h gcc-8.4.0/gcc/config/rs6000/darwin64-biarch.h *** gcc-8.3.0/gcc/config/rs6000/darwin64-biarch.h Thu Jan 1 00:00:00 1970 --- gcc-8.4.0/gcc/config/rs6000/darwin64-biarch.h Wed Mar 4 08:30:00 2020 *************** *** 0 **** --- 1,38 ---- + /* Target definitions for PowerPC64 running Darwin (Mac OS X) for a 64b host + supporting a 32b multilib. + Copyright (C) 2006-2019 Free Software Foundation, Inc. + Contributed by Apple Computer 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 + . */ + + #undef TARGET_DEFAULT + #define TARGET_DEFAULT (MASK_POWERPC64 | MASK_64BIT \ + | MASK_MULTIPLE | MASK_PPC_GFXOPT) + + #undef DARWIN_ARCH_SPEC + #define DARWIN_ARCH_SPEC "%{m32:ppc;:ppc64}" + + /* Actually, there's really only 970 as an active option. */ + #undef DARWIN_SUBARCH_SPEC + #define DARWIN_SUBARCH_SPEC DARWIN_ARCH_SPEC + + #undef SUBTARGET_EXTRA_SPECS + #define SUBTARGET_EXTRA_SPECS \ + DARWIN_EXTRA_SPECS \ + { "darwin_arch", DARWIN_ARCH_SPEC }, \ + { "darwin_crt2", "" }, \ + { "darwin_subarch", DARWIN_SUBARCH_SPEC }, diff -Nrcpad gcc-8.3.0/gcc/config/rs6000/darwin64.h gcc-8.4.0/gcc/config/rs6000/darwin64.h *** gcc-8.3.0/gcc/config/rs6000/darwin64.h Wed Jan 3 10:03:58 2018 --- gcc-8.4.0/gcc/config/rs6000/darwin64.h Thu Jan 1 00:00:00 1970 *************** *** 1,32 **** - /* Target definitions for PowerPC running Darwin (Mac OS X). - Copyright (C) 2006-2018 Free Software Foundation, Inc. - Contributed by Apple Computer 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 - . */ - - #undef TARGET_DEFAULT - #define TARGET_DEFAULT (MASK_POWERPC64 | MASK_64BIT \ - | MASK_MULTIPLE | MASK_PPC_GFXOPT) - - #undef DARWIN_ARCH_SPEC - #define DARWIN_ARCH_SPEC "%{m32:ppc;:ppc64}" - - #undef DARWIN_SUBARCH_SPEC - #define DARWIN_SUBARCH_SPEC DARWIN_ARCH_SPEC - - #undef DARWIN_CRT2_SPEC - #define DARWIN_CRT2_SPEC "" --- 0 ---- diff -Nrcpad gcc-8.3.0/gcc/config/rs6000/mmintrin.h gcc-8.4.0/gcc/config/rs6000/mmintrin.h *** gcc-8.3.0/gcc/config/rs6000/mmintrin.h Tue Apr 3 19:06:28 2018 --- gcc-8.4.0/gcc/config/rs6000/mmintrin.h Wed Mar 4 08:30:00 2020 *************** _mm_sub_pi32 (__m64 __m1, __m64 __m2) *** 581,587 **** extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _m_psubd (__m64 __m1, __m64 __m2) { ! return _mm_add_pi32 (__m1, __m2); } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 581,587 ---- extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _m_psubd (__m64 __m1, __m64 __m2) { ! return _mm_sub_pi32 (__m1, __m2); } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) diff -Nrcpad gcc-8.3.0/gcc/config/rs6000/power9.md gcc-8.4.0/gcc/config/rs6000/power9.md *** gcc-8.3.0/gcc/config/rs6000/power9.md Mon Jan 15 23:02:03 2018 --- gcc-8.4.0/gcc/config/rs6000/power9.md Wed Mar 4 08:30:00 2020 *************** *** 236,241 **** --- 236,244 ---- (eq_attr "cpu" "power9")) "DU_super_power9,LSU_pair_power9") + ; Store forwarding latency is 6 + (define_bypass 6 "power9-*store*" "power9-*load*") + (define_insn_reservation "power9-larx" 4 (and (eq_attr "type" "load_l") (eq_attr "cpu" "power9")) diff -Nrcpad gcc-8.3.0/gcc/config/rs6000/predicates.md gcc-8.4.0/gcc/config/rs6000/predicates.md *** gcc-8.3.0/gcc/config/rs6000/predicates.md Wed Feb 7 23:42:51 2018 --- gcc-8.4.0/gcc/config/rs6000/predicates.md Wed Mar 4 08:30:00 2020 *************** *** 1085,1092 **** return 1; /* Allow any integer constant. */ ! if (GET_MODE_CLASS (mode) == MODE_INT ! && CONST_SCALAR_INT_P (op)) return 1; /* Allow easy vector constants. */ --- 1085,1091 ---- return 1; /* Allow any integer constant. */ ! if (SCALAR_INT_MODE_P (mode) && CONST_SCALAR_INT_P (op)) return 1; /* Allow easy vector constants. */ diff -Nrcpad gcc-8.3.0/gcc/config/rs6000/rs6000-builtin.def gcc-8.4.0/gcc/config/rs6000/rs6000-builtin.def *** gcc-8.3.0/gcc/config/rs6000/rs6000-builtin.def Fri Jun 22 14:11:56 2018 --- gcc-8.4.0/gcc/config/rs6000/rs6000-builtin.def Wed Mar 4 08:30:00 2020 *************** BU_ALTIVEC_2 (VADDUWS, "vadduws", *** 1048,1059 **** BU_ALTIVEC_2 (VADDSWS, "vaddsws", CONST, altivec_vaddsws) BU_ALTIVEC_2 (VAND, "vand", CONST, andv4si3) BU_ALTIVEC_2 (VANDC, "vandc", CONST, andcv4si3) ! BU_ALTIVEC_2 (VAVGUB, "vavgub", CONST, altivec_vavgub) ! BU_ALTIVEC_2 (VAVGSB, "vavgsb", CONST, altivec_vavgsb) ! BU_ALTIVEC_2 (VAVGUH, "vavguh", CONST, altivec_vavguh) ! BU_ALTIVEC_2 (VAVGSH, "vavgsh", CONST, altivec_vavgsh) ! BU_ALTIVEC_2 (VAVGUW, "vavguw", CONST, altivec_vavguw) ! BU_ALTIVEC_2 (VAVGSW, "vavgsw", CONST, altivec_vavgsw) BU_ALTIVEC_2 (VCFUX, "vcfux", CONST, altivec_vcfux) BU_ALTIVEC_2 (VCFSX, "vcfsx", CONST, altivec_vcfsx) BU_ALTIVEC_2 (VCMPBFP, "vcmpbfp", CONST, altivec_vcmpbfp) --- 1048,1059 ---- BU_ALTIVEC_2 (VADDSWS, "vaddsws", CONST, altivec_vaddsws) BU_ALTIVEC_2 (VAND, "vand", CONST, andv4si3) BU_ALTIVEC_2 (VANDC, "vandc", CONST, andcv4si3) ! BU_ALTIVEC_2 (VAVGUB, "vavgub", CONST, uavgv16qi3_ceil) ! BU_ALTIVEC_2 (VAVGSB, "vavgsb", CONST, avgv16qi3_ceil) ! BU_ALTIVEC_2 (VAVGUH, "vavguh", CONST, uavgv8hi3_ceil) ! BU_ALTIVEC_2 (VAVGSH, "vavgsh", CONST, avgv8hi3_ceil) ! BU_ALTIVEC_2 (VAVGUW, "vavguw", CONST, uavgv4si3_ceil) ! BU_ALTIVEC_2 (VAVGSW, "vavgsw", CONST, avgv4si3_ceil) BU_ALTIVEC_2 (VCFUX, "vcfux", CONST, altivec_vcfux) BU_ALTIVEC_2 (VCFSX, "vcfsx", CONST, altivec_vcfsx) BU_ALTIVEC_2 (VCMPBFP, "vcmpbfp", CONST, altivec_vcmpbfp) *************** BU_ALTIVEC_X (MTVSCR, "mtvscr", MIS *** 1223,1248 **** BU_ALTIVEC_X (MFVSCR, "mfvscr", MISC) BU_ALTIVEC_X (DSSALL, "dssall", MISC) BU_ALTIVEC_X (DSS, "dss", MISC) ! BU_ALTIVEC_X (LVSL, "lvsl", MEM) ! BU_ALTIVEC_X (LVSR, "lvsr", MEM) ! BU_ALTIVEC_X (LVEBX, "lvebx", MEM) ! BU_ALTIVEC_X (LVEHX, "lvehx", MEM) ! BU_ALTIVEC_X (LVEWX, "lvewx", MEM) ! BU_ALTIVEC_X (LVXL, "lvxl", MEM) ! BU_ALTIVEC_X (LVXL_V2DF, "lvxl_v2df", MEM) ! BU_ALTIVEC_X (LVXL_V2DI, "lvxl_v2di", MEM) ! BU_ALTIVEC_X (LVXL_V4SF, "lvxl_v4sf", MEM) ! BU_ALTIVEC_X (LVXL_V4SI, "lvxl_v4si", MEM) ! BU_ALTIVEC_X (LVXL_V8HI, "lvxl_v8hi", MEM) ! BU_ALTIVEC_X (LVXL_V16QI, "lvxl_v16qi", MEM) ! BU_ALTIVEC_X (LVX, "lvx", MEM) ! BU_ALTIVEC_X (LVX_V1TI, "lvx_v1ti", MEM) ! BU_ALTIVEC_X (LVX_V2DF, "lvx_v2df", MEM) ! BU_ALTIVEC_X (LVX_V2DI, "lvx_v2di", MEM) ! BU_ALTIVEC_X (LVX_V4SF, "lvx_v4sf", MEM) ! BU_ALTIVEC_X (LVX_V4SI, "lvx_v4si", MEM) ! BU_ALTIVEC_X (LVX_V8HI, "lvx_v8hi", MEM) ! BU_ALTIVEC_X (LVX_V16QI, "lvx_v16qi", MEM) BU_ALTIVEC_X (STVX, "stvx", MEM) BU_ALTIVEC_X (STVX_V2DF, "stvx_v2df", MEM) BU_ALTIVEC_X (STVX_V2DI, "stvx_v2di", MEM) --- 1223,1248 ---- BU_ALTIVEC_X (MFVSCR, "mfvscr", MISC) BU_ALTIVEC_X (DSSALL, "dssall", MISC) BU_ALTIVEC_X (DSS, "dss", MISC) ! BU_ALTIVEC_X (LVSL, "lvsl", PURE) ! BU_ALTIVEC_X (LVSR, "lvsr", PURE) ! BU_ALTIVEC_X (LVEBX, "lvebx", PURE) ! BU_ALTIVEC_X (LVEHX, "lvehx", PURE) ! BU_ALTIVEC_X (LVEWX, "lvewx", PURE) ! BU_ALTIVEC_X (LVXL, "lvxl", PURE) ! BU_ALTIVEC_X (LVXL_V2DF, "lvxl_v2df", PURE) ! BU_ALTIVEC_X (LVXL_V2DI, "lvxl_v2di", PURE) ! BU_ALTIVEC_X (LVXL_V4SF, "lvxl_v4sf", PURE) ! BU_ALTIVEC_X (LVXL_V4SI, "lvxl_v4si", PURE) ! BU_ALTIVEC_X (LVXL_V8HI, "lvxl_v8hi", PURE) ! BU_ALTIVEC_X (LVXL_V16QI, "lvxl_v16qi", PURE) ! BU_ALTIVEC_X (LVX, "lvx", PURE) ! BU_ALTIVEC_X (LVX_V1TI, "lvx_v1ti", PURE) ! BU_ALTIVEC_X (LVX_V2DF, "lvx_v2df", PURE) ! BU_ALTIVEC_X (LVX_V2DI, "lvx_v2di", PURE) ! BU_ALTIVEC_X (LVX_V4SF, "lvx_v4sf", PURE) ! BU_ALTIVEC_X (LVX_V4SI, "lvx_v4si", PURE) ! BU_ALTIVEC_X (LVX_V8HI, "lvx_v8hi", PURE) ! BU_ALTIVEC_X (LVX_V16QI, "lvx_v16qi", PURE) BU_ALTIVEC_X (STVX, "stvx", MEM) BU_ALTIVEC_X (STVX_V2DF, "stvx_v2df", MEM) BU_ALTIVEC_X (STVX_V2DI, "stvx_v2di", MEM) *************** BU_ALTIVEC_X (STVX_V4SF, "stvx_v4sf", *** 1250,1259 **** BU_ALTIVEC_X (STVX_V4SI, "stvx_v4si", MEM) BU_ALTIVEC_X (STVX_V8HI, "stvx_v8hi", MEM) BU_ALTIVEC_X (STVX_V16QI, "stvx_v16qi", MEM) ! BU_ALTIVEC_C (LVLX, "lvlx", MEM) ! BU_ALTIVEC_C (LVLXL, "lvlxl", MEM) ! BU_ALTIVEC_C (LVRX, "lvrx", MEM) ! BU_ALTIVEC_C (LVRXL, "lvrxl", MEM) BU_ALTIVEC_X (STVEBX, "stvebx", MEM) BU_ALTIVEC_X (STVEHX, "stvehx", MEM) BU_ALTIVEC_X (STVEWX, "stvewx", MEM) --- 1250,1259 ---- BU_ALTIVEC_X (STVX_V4SI, "stvx_v4si", MEM) BU_ALTIVEC_X (STVX_V8HI, "stvx_v8hi", MEM) BU_ALTIVEC_X (STVX_V16QI, "stvx_v16qi", MEM) ! BU_ALTIVEC_C (LVLX, "lvlx", PURE) ! BU_ALTIVEC_C (LVLXL, "lvlxl", PURE) ! BU_ALTIVEC_C (LVRX, "lvrx", PURE) ! BU_ALTIVEC_C (LVRXL, "lvrxl", PURE) BU_ALTIVEC_X (STVEBX, "stvebx", MEM) BU_ALTIVEC_X (STVEHX, "stvehx", MEM) BU_ALTIVEC_X (STVEWX, "stvewx", MEM) *************** BU_VSX_P (XVCMPGEDP_P, "xvcmpgedp_ *** 1764,1778 **** BU_VSX_P (XVCMPGTDP_P, "xvcmpgtdp_p", CONST, vector_gt_v2df_p) /* VSX builtins that are handled as special cases. */ ! BU_VSX_X (LXSDX, "lxsdx", MEM) ! BU_VSX_X (LXVD2X_V1TI, "lxvd2x_v1ti", MEM) ! BU_VSX_X (LXVD2X_V2DF, "lxvd2x_v2df", MEM) ! BU_VSX_X (LXVD2X_V2DI, "lxvd2x_v2di", MEM) ! BU_VSX_X (LXVDSX, "lxvdsx", MEM) ! BU_VSX_X (LXVW4X_V4SF, "lxvw4x_v4sf", MEM) ! BU_VSX_X (LXVW4X_V4SI, "lxvw4x_v4si", MEM) ! BU_VSX_X (LXVW4X_V8HI, "lxvw4x_v8hi", MEM) ! BU_VSX_X (LXVW4X_V16QI, "lxvw4x_v16qi", MEM) BU_VSX_X (STXSDX, "stxsdx", MEM) BU_VSX_X (STXVD2X_V1TI, "stxvd2x_v1ti", MEM) BU_VSX_X (STXVD2X_V2DF, "stxvd2x_v2df", MEM) --- 1764,1778 ---- BU_VSX_P (XVCMPGTDP_P, "xvcmpgtdp_p", CONST, vector_gt_v2df_p) /* VSX builtins that are handled as special cases. */ ! BU_VSX_X (LXSDX, "lxsdx", PURE) ! BU_VSX_X (LXVD2X_V1TI, "lxvd2x_v1ti", PURE) ! BU_VSX_X (LXVD2X_V2DF, "lxvd2x_v2df", PURE) ! BU_VSX_X (LXVD2X_V2DI, "lxvd2x_v2di", PURE) ! BU_VSX_X (LXVDSX, "lxvdsx", PURE) ! BU_VSX_X (LXVW4X_V4SF, "lxvw4x_v4sf", PURE) ! BU_VSX_X (LXVW4X_V4SI, "lxvw4x_v4si", PURE) ! BU_VSX_X (LXVW4X_V8HI, "lxvw4x_v8hi", PURE) ! BU_VSX_X (LXVW4X_V16QI, "lxvw4x_v16qi", PURE) BU_VSX_X (STXSDX, "stxsdx", MEM) BU_VSX_X (STXVD2X_V1TI, "stxvd2x_v1ti", MEM) BU_VSX_X (STXVD2X_V2DF, "stxvd2x_v2df", MEM) *************** BU_VSX_X (STXVW4X_V4SF, "stxvw4x_v *** 1781,1793 **** BU_VSX_X (STXVW4X_V4SI, "stxvw4x_v4si", MEM) BU_VSX_X (STXVW4X_V8HI, "stxvw4x_v8hi", MEM) BU_VSX_X (STXVW4X_V16QI, "stxvw4x_v16qi", MEM) ! BU_VSX_X (LD_ELEMREV_V1TI, "ld_elemrev_v1ti", MEM) ! BU_VSX_X (LD_ELEMREV_V2DF, "ld_elemrev_v2df", MEM) ! BU_VSX_X (LD_ELEMREV_V2DI, "ld_elemrev_v2di", MEM) ! BU_VSX_X (LD_ELEMREV_V4SF, "ld_elemrev_v4sf", MEM) ! BU_VSX_X (LD_ELEMREV_V4SI, "ld_elemrev_v4si", MEM) ! BU_VSX_X (LD_ELEMREV_V8HI, "ld_elemrev_v8hi", MEM) ! BU_VSX_X (LD_ELEMREV_V16QI, "ld_elemrev_v16qi", MEM) BU_VSX_X (ST_ELEMREV_V1TI, "st_elemrev_v1ti", MEM) BU_VSX_X (ST_ELEMREV_V2DF, "st_elemrev_v2df", MEM) BU_VSX_X (ST_ELEMREV_V2DI, "st_elemrev_v2di", MEM) --- 1781,1793 ---- BU_VSX_X (STXVW4X_V4SI, "stxvw4x_v4si", MEM) BU_VSX_X (STXVW4X_V8HI, "stxvw4x_v8hi", MEM) BU_VSX_X (STXVW4X_V16QI, "stxvw4x_v16qi", MEM) ! BU_VSX_X (LD_ELEMREV_V1TI, "ld_elemrev_v1ti", PURE) ! BU_VSX_X (LD_ELEMREV_V2DF, "ld_elemrev_v2df", PURE) ! BU_VSX_X (LD_ELEMREV_V2DI, "ld_elemrev_v2di", PURE) ! BU_VSX_X (LD_ELEMREV_V4SF, "ld_elemrev_v4sf", PURE) ! BU_VSX_X (LD_ELEMREV_V4SI, "ld_elemrev_v4si", PURE) ! BU_VSX_X (LD_ELEMREV_V8HI, "ld_elemrev_v8hi", PURE) ! BU_VSX_X (LD_ELEMREV_V16QI, "ld_elemrev_v16qi", PURE) BU_VSX_X (ST_ELEMREV_V1TI, "st_elemrev_v1ti", MEM) BU_VSX_X (ST_ELEMREV_V2DF, "st_elemrev_v2df", MEM) BU_VSX_X (ST_ELEMREV_V2DI, "st_elemrev_v2di", MEM) *************** BU_P9_OVERLOAD_2 (CMPRB2, "byte_in_eithe *** 2442,2454 **** BU_P9_OVERLOAD_2 (CMPEQB, "byte_in_set") /* 1 argument crypto functions. */ ! BU_CRYPTO_1 (VSBOX, "vsbox", CONST, crypto_vsbox) /* 2 argument crypto functions. */ ! BU_CRYPTO_2 (VCIPHER, "vcipher", CONST, crypto_vcipher) ! BU_CRYPTO_2 (VCIPHERLAST, "vcipherlast", CONST, crypto_vcipherlast) ! BU_CRYPTO_2 (VNCIPHER, "vncipher", CONST, crypto_vncipher) ! BU_CRYPTO_2 (VNCIPHERLAST, "vncipherlast", CONST, crypto_vncipherlast) BU_CRYPTO_2A (VPMSUMB, "vpmsumb", CONST, crypto_vpmsumb) BU_CRYPTO_2A (VPMSUMH, "vpmsumh", CONST, crypto_vpmsumh) BU_CRYPTO_2A (VPMSUMW, "vpmsumw", CONST, crypto_vpmsumw) --- 2442,2463 ---- BU_P9_OVERLOAD_2 (CMPEQB, "byte_in_set") /* 1 argument crypto functions. */ ! BU_CRYPTO_1 (VSBOX, "vsbox", CONST, crypto_vsbox_v2di) ! BU_CRYPTO_1 (VSBOX_BE, "vsbox_be", CONST, crypto_vsbox_v16qi) /* 2 argument crypto functions. */ ! BU_CRYPTO_2 (VCIPHER, "vcipher", CONST, crypto_vcipher_v2di) ! BU_CRYPTO_2 (VCIPHER_BE, "vcipher_be", CONST, crypto_vcipher_v16qi) ! BU_CRYPTO_2 (VCIPHERLAST, "vcipherlast", ! CONST, crypto_vcipherlast_v2di) ! BU_CRYPTO_2 (VCIPHERLAST_BE, "vcipherlast_be", ! CONST, crypto_vcipherlast_v16qi) ! BU_CRYPTO_2 (VNCIPHER, "vncipher", CONST, crypto_vncipher_v2di) ! BU_CRYPTO_2 (VNCIPHER_BE, "vncipher_be", CONST, crypto_vncipher_v16qi) ! BU_CRYPTO_2 (VNCIPHERLAST, "vncipherlast", ! CONST, crypto_vncipherlast_v2di) ! BU_CRYPTO_2 (VNCIPHERLAST_BE, "vncipherlast_be", ! CONST, crypto_vncipherlast_v16qi) BU_CRYPTO_2A (VPMSUMB, "vpmsumb", CONST, crypto_vpmsumb) BU_CRYPTO_2A (VPMSUMH, "vpmsumh", CONST, crypto_vpmsumh) BU_CRYPTO_2A (VPMSUMW, "vpmsumw", CONST, crypto_vpmsumw) diff -Nrcpad gcc-8.3.0/gcc/config/rs6000/rs6000-c.c gcc-8.4.0/gcc/config/rs6000/rs6000-c.c *** gcc-8.3.0/gcc/config/rs6000/rs6000-c.c Tue Feb 5 19:42:57 2019 --- gcc-8.4.0/gcc/config/rs6000/rs6000-c.c Wed Mar 4 08:30:00 2020 *************** altivec_resolve_overloaded_builtin (loca *** 6605,6616 **** arg2 = fold_for_warn (arg2); ! /* If the second argument is an integer constant, if the value is in ! the expected range, generate the built-in code if we can. We need ! 64-bit and direct move to extract the small integer vectors. */ ! if (TREE_CODE (arg2) == INTEGER_CST ! && wi::ltu_p (wi::to_wide (arg2), nunits)) { switch (mode) { default: --- 6605,6618 ---- arg2 = fold_for_warn (arg2); ! /* If the second argument is an integer constant, generate ! the built-in code if we can. We need 64-bit and direct ! move to extract the small integer vectors. */ ! if (TREE_CODE (arg2) == INTEGER_CST) { + wide_int selector = wi::to_wide (arg2); + selector = wi::umod_trunc (selector, nunits); + arg2 = wide_int_to_tree (TREE_TYPE (arg2), selector); switch (mode) { default: *************** altivec_resolve_overloaded_builtin (loca *** 6785,6795 **** /* If we can use the VSX xxpermdi instruction, use that for insert. */ mode = TYPE_MODE (arg1_type); if ((mode == V2DFmode || mode == V2DImode) && VECTOR_UNIT_VSX_P (mode) ! && TREE_CODE (arg2) == INTEGER_CST ! && wi::ltu_p (wi::to_wide (arg2), 2)) { tree call = NULL_TREE; if (mode == V2DFmode) call = rs6000_builtin_decls[VSX_BUILTIN_VEC_SET_V2DF]; else if (mode == V2DImode) --- 6787,6799 ---- /* If we can use the VSX xxpermdi instruction, use that for insert. */ mode = TYPE_MODE (arg1_type); if ((mode == V2DFmode || mode == V2DImode) && VECTOR_UNIT_VSX_P (mode) ! && TREE_CODE (arg2) == INTEGER_CST) { + wide_int selector = wi::to_wide (arg2); + selector = wi::umod_trunc (selector, 2); tree call = NULL_TREE; + arg2 = wide_int_to_tree (TREE_TYPE (arg2), selector); if (mode == V2DFmode) call = rs6000_builtin_decls[VSX_BUILTIN_VEC_SET_V2DF]; else if (mode == V2DImode) *************** altivec_resolve_overloaded_builtin (loca *** 6801,6811 **** return build_call_expr (call, 3, arg1, arg0, arg2); } else if (mode == V1TImode && VECTOR_UNIT_VSX_P (mode) ! && TREE_CODE (arg2) == INTEGER_CST ! && wi::eq_p (wi::to_wide (arg2), 0)) { tree call = rs6000_builtin_decls[VSX_BUILTIN_VEC_SET_V1TI]; /* Note, __builtin_vec_insert_ has vector and scalar types reversed. */ return build_call_expr (call, 3, arg1, arg0, arg2); --- 6805,6816 ---- return build_call_expr (call, 3, arg1, arg0, arg2); } else if (mode == V1TImode && VECTOR_UNIT_VSX_P (mode) ! && TREE_CODE (arg2) == INTEGER_CST) { tree call = rs6000_builtin_decls[VSX_BUILTIN_VEC_SET_V1TI]; + wide_int selector = wi::zero(32); + arg2 = wide_int_to_tree (TREE_TYPE (arg2), selector); /* Note, __builtin_vec_insert_ has vector and scalar types reversed. */ return build_call_expr (call, 3, arg1, arg0, arg2); *************** altivec_resolve_overloaded_builtin (loca *** 6813,6822 **** /* Build *(((arg1_inner_type*)&(vector type){arg1})+arg2) = arg0. */ arg1_inner_type = TREE_TYPE (arg1_type); ! arg2 = build_binary_op (loc, BIT_AND_EXPR, arg2, ! build_int_cst (TREE_TYPE (arg2), ! TYPE_VECTOR_SUBPARTS (arg1_type) ! - 1), 0); decl = build_decl (loc, VAR_DECL, NULL_TREE, arg1_type); DECL_EXTERNAL (decl) = 0; TREE_PUBLIC (decl) = 0; --- 6818,6830 ---- /* Build *(((arg1_inner_type*)&(vector type){arg1})+arg2) = arg0. */ arg1_inner_type = TREE_TYPE (arg1_type); ! if (TYPE_VECTOR_SUBPARTS (arg1_type) == 1) ! arg2 = build_int_cst (TREE_TYPE (arg2), 0); ! else ! arg2 = build_binary_op (loc, BIT_AND_EXPR, arg2, ! build_int_cst (TREE_TYPE (arg2), ! TYPE_VECTOR_SUBPARTS (arg1_type) ! - 1), 0); decl = build_decl (loc, VAR_DECL, NULL_TREE, arg1_type); DECL_EXTERNAL (decl) = 0; TREE_PUBLIC (decl) = 0; diff -Nrcpad gcc-8.3.0/gcc/config/rs6000/rs6000-p8swap.c gcc-8.4.0/gcc/config/rs6000/rs6000-p8swap.c *** gcc-8.3.0/gcc/config/rs6000/rs6000-p8swap.c Tue Apr 24 16:05:19 2018 --- gcc-8.4.0/gcc/config/rs6000/rs6000-p8swap.c Wed Mar 4 08:30:00 2020 *************** rtx_is_swappable_p (rtx op, unsigned int *** 792,797 **** --- 792,802 ---- case UNSPEC_REDUC_PLUS: case UNSPEC_REDUC: return 1; + case UNSPEC_VPMSUM: + /* vpmsumd is not swappable, but vpmsum[bhw] are. */ + if (GET_MODE (op) == V2DImode) + return 0; + break; } } *************** rs6000_analyze_swaps (function *fun) *** 2317,2323 **** --- 2322,2335 ---- /* Pre-pass to recombine lvx and stvx patterns so we don't lose info. */ recombine_lvx_stvx_patterns (fun); + + /* Rebuild ud- and du-chains. */ + df_remove_problem (df_chain); df_process_deferred_rescans (); + df_set_flags (DF_RD_PRUNE_DEAD_DEFS); + df_chain_add_problem (DF_DU_CHAIN | DF_UD_CHAIN); + df_analyze (); + df_set_flags (DF_DEFER_INSN_RESCAN); /* Allocate structure to represent webs of insns. */ insn_entry = XCNEWVEC (swap_web_entry, get_max_uid ()); diff -Nrcpad gcc-8.3.0/gcc/config/rs6000/rs6000.c gcc-8.4.0/gcc/config/rs6000/rs6000.c *** gcc-8.3.0/gcc/config/rs6000/rs6000.c Wed Feb 13 19:20:56 2019 --- gcc-8.4.0/gcc/config/rs6000/rs6000.c Wed Mar 4 08:30:00 2020 *************** darwin_rs6000_override_options (void) *** 3880,3889 **** rs6000_isa_flags |= OPTION_MASK_POWERPC64; warning (0, "%qs requires PowerPC64 architecture, enabling", "-m64"); } if (flag_mkernel) { rs6000_default_long_calls = 1; ! rs6000_isa_flags |= OPTION_MASK_SOFT_FLOAT; } /* Make -m64 imply -maltivec. Darwin's 64-bit ABI includes --- 3880,3901 ---- rs6000_isa_flags |= OPTION_MASK_POWERPC64; warning (0, "%qs requires PowerPC64 architecture, enabling", "-m64"); } + + /* The linkers [ld64] that support 64Bit do not need the JBSR longcall + optimisation, and will not work with the most generic case (where the + symbol is undefined external, but there is no symbl stub). */ + if (TARGET_64BIT) + rs6000_default_long_calls = 0; + + /* ld_classic is (so far) still used for kernel (static) code, and supports + the JBSR longcall / branch islands. */ if (flag_mkernel) { rs6000_default_long_calls = 1; ! ! /* Allow a kext author to do -mkernel -mhard-float. */ ! if (! (rs6000_isa_flags_explicit & OPTION_MASK_SOFT_FLOAT)) ! rs6000_isa_flags |= OPTION_MASK_SOFT_FLOAT; } /* Make -m64 imply -maltivec. Darwin's 64-bit ABI includes *************** rs6000_expand_vector_extract (rtx target *** 7374,7380 **** default: break; case E_V1TImode: - gcc_assert (INTVAL (elt) == 0 && inner_mode == TImode); emit_move_insn (target, gen_lowpart (TImode, vec)); break; case E_V2DFmode: --- 7386,7391 ---- *************** rs6000_expand_vector_extract (rtx target *** 7425,7430 **** --- 7436,7445 ---- switch (mode) { + case E_V1TImode: + emit_move_insn (target, gen_lowpart (TImode, vec)); + return; + case E_V2DFmode: emit_insn (gen_vsx_extract_v2df_var (target, vec, elt)); return; *************** rs6000_expand_vector_extract (rtx target *** 7454,7471 **** } } - gcc_assert (CONST_INT_P (elt)); - /* Allocate mode-sized buffer. */ mem = assign_stack_temp (mode, GET_MODE_SIZE (mode)); emit_move_insn (mem, vec); ! /* Add offset to field within buffer matching vector element. */ ! mem = adjust_address_nv (mem, inner_mode, ! INTVAL (elt) * GET_MODE_SIZE (inner_mode)); ! emit_move_insn (target, adjust_address_nv (mem, inner_mode, 0)); } /* Helper function to return the register number of a RTX. */ --- 7469,7500 ---- } } /* Allocate mode-sized buffer. */ mem = assign_stack_temp (mode, GET_MODE_SIZE (mode)); emit_move_insn (mem, vec); + if (CONST_INT_P (elt)) + { + int modulo_elt = INTVAL (elt) % GET_MODE_NUNITS (mode); ! /* Add offset to field within buffer matching vector element. */ ! mem = adjust_address_nv (mem, inner_mode, ! modulo_elt * GET_MODE_SIZE (inner_mode)); ! emit_move_insn (target, adjust_address_nv (mem, inner_mode, 0)); ! } ! else ! { ! unsigned int ele_size = GET_MODE_SIZE (inner_mode); ! rtx num_ele_m1 = GEN_INT (GET_MODE_NUNITS (mode) - 1); ! rtx new_addr = gen_reg_rtx (Pmode); ! elt = gen_rtx_AND (Pmode, elt, num_ele_m1); ! if (ele_size > 1) ! elt = gen_rtx_MULT (Pmode, elt, GEN_INT (ele_size)); ! new_addr = gen_rtx_PLUS (Pmode, XEXP (mem, 0), elt); ! new_addr = change_address (mem, inner_mode, new_addr); ! emit_move_insn (target, new_addr); ! } } /* Helper function to return the register number of a RTX. */ *************** rs6000_split_vec_extract_var (rtx dest, *** 7646,7652 **** rtx tmp_altivec) { machine_mode mode = GET_MODE (src); ! machine_mode scalar_mode = GET_MODE (dest); unsigned scalar_size = GET_MODE_SIZE (scalar_mode); int byte_shift = exact_log2 (scalar_size); --- 7675,7681 ---- rtx tmp_altivec) { machine_mode mode = GET_MODE (src); ! machine_mode scalar_mode = GET_MODE_INNER (GET_MODE (src)); unsigned scalar_size = GET_MODE_SIZE (scalar_mode); int byte_shift = exact_log2 (scalar_size); *************** rs6000_split_vec_extract_var (rtx dest, *** 7657,7662 **** --- 7686,7695 ---- systems. */ if (MEM_P (src)) { + int num_elements = GET_MODE_NUNITS (mode); + rtx num_ele_m1 = GEN_INT (num_elements - 1); + + emit_insn (gen_anddi3 (element, element, num_ele_m1)); gcc_assert (REG_P (tmp_gpr)); emit_move_insn (dest, rs6000_adjust_vec_address (dest, src, element, tmp_gpr, scalar_mode)); *************** rs6000_split_vec_extract_var (rtx dest, *** 7665,7671 **** else if (REG_P (src) || SUBREG_P (src)) { ! int bit_shift = byte_shift + 3; rtx element2; int dest_regno = regno_or_subregno (dest); int src_regno = regno_or_subregno (src); --- 7698,7706 ---- else if (REG_P (src) || SUBREG_P (src)) { ! int num_elements = GET_MODE_NUNITS (mode); ! int bits_in_element = mode_to_bits (GET_MODE_INNER (mode)); ! int bit_shift = 7 - exact_log2 (num_elements); rtx element2; int dest_regno = regno_or_subregno (dest); int src_regno = regno_or_subregno (src); *************** rs6000_split_vec_extract_var (rtx dest, *** 7741,7747 **** { if (!VECTOR_ELT_ORDER_BIG) { ! rtx num_ele_m1 = GEN_INT (GET_MODE_NUNITS (mode) - 1); emit_insn (gen_anddi3 (tmp_gpr, element, num_ele_m1)); emit_insn (gen_subdi3 (tmp_gpr, num_ele_m1, tmp_gpr)); --- 7776,7782 ---- { if (!VECTOR_ELT_ORDER_BIG) { ! rtx num_ele_m1 = GEN_INT (num_elements - 1); emit_insn (gen_anddi3 (tmp_gpr, element, num_ele_m1)); emit_insn (gen_subdi3 (tmp_gpr, num_ele_m1, tmp_gpr)); *************** rs6000_split_vec_extract_var (rtx dest, *** 7799,7806 **** emit_insn (gen_vsx_vslo_v2di (tmp_altivec_di, src_v2di, tmp_altivec)); emit_move_insn (tmp_gpr_di, tmp_altivec_di); ! emit_insn (gen_ashrdi3 (tmp_gpr_di, tmp_gpr_di, ! GEN_INT (64 - (8 * scalar_size)))); return; } --- 7834,7841 ---- emit_insn (gen_vsx_vslo_v2di (tmp_altivec_di, src_v2di, tmp_altivec)); emit_move_insn (tmp_gpr_di, tmp_altivec_di); ! emit_insn (gen_lshrdi3 (tmp_gpr_di, tmp_gpr_di, ! GEN_INT (64 - bits_in_element))); return; } *************** address_offset (rtx op) *** 8223,8228 **** --- 8258,8358 ---- return NULL_RTX; } + /* This tests that a lo_sum {constant, symbol, symbol+offset} is valid for + the mode. If we can't find (or don't know) the alignment of the symbol + we assume (optimistically) that it's sufficiently aligned [??? maybe we + should be pessimistic]. Offsets are validated in the same way as for + reg + offset. */ + static bool + darwin_rs6000_legitimate_lo_sum_const_p (rtx x, machine_mode mode) + { + 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; + + if (GET_CODE (x) == PLUS) + { + sym = XEXP (x, 0); + if (! SYMBOL_REF_P (sym)) + return false; + if (!CONST_INT_P (XEXP (x, 1))) + return false; + offset = INTVAL (XEXP (x, 1)); + } + else if (SYMBOL_REF_P (x)) + sym = x; + else if (CONST_INT_P (x)) + offset = INTVAL (x); + else if (GET_CODE (x) == LABEL_REF) + offset = 0; // We assume code labels are Pmode aligned + else + return false; // not sure what we have here. + + /* If we don't know the alignment of the thing to which the symbol refers, + we assume optimistically it is "enough". + ??? maybe we should be pessimistic instead. */ + unsigned align = 0; + + if (sym) + { + tree decl = SYMBOL_REF_DECL (sym); + #if TARGET_MACHO + if (MACHO_SYMBOL_INDIRECTION_P (sym)) + /* The decl in an indirection symbol is the original one, which might + be less aligned than the indirection. Our indirections are always + pointer-aligned. */ + ; + else + #endif + if (decl && DECL_ALIGN (decl)) + align = DECL_ALIGN_UNIT (decl); + } + + unsigned int extra = 0; + switch (mode) + { + case E_DFmode: + case E_DDmode: + case E_DImode: + /* If we are using VSX scalar loads, restrict ourselves to reg+reg + addressing. */ + if (VECTOR_MEM_VSX_P (mode)) + return false; + + if (!TARGET_POWERPC64) + extra = 4; + else if ((offset & 3) || (align & 3)) + return false; + break; + + case E_TFmode: + case E_IFmode: + case E_KFmode: + case E_TDmode: + case E_TImode: + case E_PTImode: + extra = 8; + if (!TARGET_POWERPC64) + extra = 12; + else if ((offset & 3) || (align & 3)) + return false; + break; + + default: + break; + } + + /* We only care if the access(es) would cause a change to the high part. */ + offset = ((offset & 0xffff) ^ 0x8000) - 0x8000; + return IN_RANGE (offset, -(HOST_WIDE_INT_1 << 15), + (HOST_WIDE_INT_1 << 15) - 1 - extra); + } + /* Return true if the MEM operand is a memory operand suitable for use with a (full width, possibly multiple) gpr load/store. On powerpc64 this means the offset must be divisible by 4. *************** mem_operand_gpr (rtx op, machine_mode mo *** 8257,8263 **** && legitimate_indirect_address_p (XEXP (addr, 0), false)) return true; ! /* Don't allow non-offsettable addresses. See PRs 83969 and 84279. */ if (!rs6000_offsettable_memref_p (op, mode, false)) return false; --- 8387,8399 ---- && legitimate_indirect_address_p (XEXP (addr, 0), false)) return true; ! /* We need to look through Mach-O PIC unspecs to determine if a lo_sum is ! really OK. Doing this early avoids teaching all the other machinery ! about them. */ ! if (TARGET_MACHO && GET_CODE (addr) == LO_SUM) ! return darwin_rs6000_legitimate_lo_sum_const_p (XEXP (addr, 1), mode); ! ! /* Only allow offsettable addresses. See PRs 83969 and 84279. */ if (!rs6000_offsettable_memref_p (op, mode, false)) return false; *************** rs6000_function_arg (cumulative_args_t c *** 12592,12598 **** if (elt_mode == TDmode && (cum->fregno % 2) == 1) cum->fregno++; ! if (USE_FP_FOR_ARG_P (cum, elt_mode)) { rtx rvec[GP_ARG_NUM_REG + AGGR_ARG_NUM_REG + 1]; rtx r, off; --- 12728,12736 ---- if (elt_mode == TDmode && (cum->fregno % 2) == 1) cum->fregno++; ! if (USE_FP_FOR_ARG_P (cum, elt_mode) ! && !(TARGET_AIX && !TARGET_ELF ! && type != NULL && AGGREGATE_TYPE_P (type))) { rtx rvec[GP_ARG_NUM_REG + AGGR_ARG_NUM_REG + 1]; rtx r, off; *************** rs6000_arg_partial_bytes (cumulative_arg *** 12728,12734 **** align_words = rs6000_parm_start (mode, type, cum->words); ! if (USE_FP_FOR_ARG_P (cum, elt_mode)) { unsigned long n_fpreg = (GET_MODE_SIZE (elt_mode) + 7) >> 3; --- 12866,12874 ---- align_words = rs6000_parm_start (mode, type, cum->words); ! if (USE_FP_FOR_ARG_P (cum, elt_mode) ! && !(TARGET_AIX && !TARGET_ELF ! && type != NULL && AGGREGATE_TYPE_P (type))) { unsigned long n_fpreg = (GET_MODE_SIZE (elt_mode) + 7) >> 3; *************** altivec_expand_vec_ext_builtin (tree exp *** 15417,15425 **** op0 = expand_normal (arg0); op1 = expand_normal (arg1); - /* Call get_element_number to validate arg1 if it is a constant. */ if (TREE_CODE (arg1) == INTEGER_CST) ! (void) get_element_number (TREE_TYPE (arg0), arg1); tmode = TYPE_MODE (TREE_TYPE (TREE_TYPE (arg0))); mode0 = TYPE_MODE (TREE_TYPE (arg0)); --- 15557,15573 ---- op0 = expand_normal (arg0); op1 = expand_normal (arg1); if (TREE_CODE (arg1) == INTEGER_CST) ! { ! unsigned HOST_WIDE_INT elt; ! unsigned HOST_WIDE_INT size = TYPE_VECTOR_SUBPARTS (TREE_TYPE (arg0)); ! unsigned int truncated_selector; ! /* Even if !tree_fits_uhwi_p (arg1)), TREE_INT_CST_LOW (arg0) ! returns low-order bits of INTEGER_CST for modulo indexing. */ ! elt = TREE_INT_CST_LOW (arg1); ! truncated_selector = elt % size; ! op1 = GEN_INT (truncated_selector); ! } tmode = TYPE_MODE (TREE_TYPE (TREE_TYPE (arg0))); mode0 = TYPE_MODE (TREE_TYPE (arg0)); *************** rs6000_gimple_fold_builtin (gimple_stmt_ *** 16765,16787 **** case ALTIVEC_BUILTIN_VSPLTISH: case ALTIVEC_BUILTIN_VSPLTISW: { - int size; - - if (fn_code == ALTIVEC_BUILTIN_VSPLTISB) - size = 8; - else if (fn_code == ALTIVEC_BUILTIN_VSPLTISH) - size = 16; - else - size = 32; - arg0 = gimple_call_arg (stmt, 0); lhs = gimple_call_lhs (stmt); /* Only fold the vec_splat_*() if the lower bits of arg 0 is a 5-bit signed constant in range -16 to +15. */ if (TREE_CODE (arg0) != INTEGER_CST ! || !IN_RANGE (sext_hwi(TREE_INT_CST_LOW (arg0), size), ! -16, 15)) return false; gimple_seq stmts = NULL; location_t loc = gimple_location (stmt); --- 16913,16925 ---- case ALTIVEC_BUILTIN_VSPLTISH: case ALTIVEC_BUILTIN_VSPLTISW: { arg0 = gimple_call_arg (stmt, 0); lhs = gimple_call_lhs (stmt); /* Only fold the vec_splat_*() if the lower bits of arg 0 is a 5-bit signed constant in range -16 to +15. */ if (TREE_CODE (arg0) != INTEGER_CST ! || !IN_RANGE (TREE_INT_CST_LOW (arg0), -16, 15)) return false; gimple_seq stmts = NULL; location_t loc = gimple_location (stmt); *************** builtin_function_type (machine_mode mode *** 18261,18266 **** --- 18399,18405 ---- { /* unsigned 1 argument functions. */ case CRYPTO_BUILTIN_VSBOX: + case CRYPTO_BUILTIN_VSBOX_BE: case P8V_BUILTIN_VGBBD: case MISC_BUILTIN_CDTBCD: case MISC_BUILTIN_CBCDTD: *************** builtin_function_type (machine_mode mode *** 18276,18284 **** --- 18415,18427 ---- case ALTIVEC_BUILTIN_VMULOUH: case P8V_BUILTIN_VMULOUW: case CRYPTO_BUILTIN_VCIPHER: + case CRYPTO_BUILTIN_VCIPHER_BE: case CRYPTO_BUILTIN_VCIPHERLAST: + case CRYPTO_BUILTIN_VCIPHERLAST_BE: case CRYPTO_BUILTIN_VNCIPHER: + case CRYPTO_BUILTIN_VNCIPHER_BE: case CRYPTO_BUILTIN_VNCIPHERLAST: + case CRYPTO_BUILTIN_VNCIPHERLAST_BE: case CRYPTO_BUILTIN_VPMSUMB: case CRYPTO_BUILTIN_VPMSUMH: case CRYPTO_BUILTIN_VPMSUMW: *************** print_operand (FILE *file, rtx x, int co *** 21883,21889 **** { const char *name = XSTR (x, 0); #if TARGET_MACHO ! if (darwin_emit_branch_islands && MACHOPIC_INDIRECT && machopic_classify_symbol (x) == MACHOPIC_UNDEFINED_FUNCTION) name = machopic_indirection_name (x, /*stub_p=*/true); --- 22026,22032 ---- { const char *name = XSTR (x, 0); #if TARGET_MACHO ! if (darwin_symbol_stubs && MACHOPIC_INDIRECT && machopic_classify_symbol (x) == MACHOPIC_UNDEFINED_FUNCTION) name = machopic_indirection_name (x, /*stub_p=*/true); *************** rs6000_emit_cmove (rtx dest, rtx op, rtx *** 23408,23413 **** --- 23551,23561 ---- /* At this point we know we can use fsel. */ + /* Don't allow compare_mode other than SFmode or DFmode, for others there + is no fsel instruction. */ + if (compare_mode != SFmode && compare_mode != DFmode) + return 0; + /* Reduce the comparison to a comparison against zero. */ if (! is_against_zero) { *************** rs6000_emit_allocate_stack (HOST_WIDE_IN *** 25996,26005 **** stack_limit_rtx, GEN_INT (size))); ! emit_insn (gen_elf_high (tmp_reg, toload)); ! emit_insn (gen_elf_low (tmp_reg, tmp_reg, toload)); ! emit_insn (gen_cond_trap (LTU, stack_reg, tmp_reg, ! const0_rtx)); } else warning (0, "stack limit expression is not supported"); --- 26144,26157 ---- stack_limit_rtx, GEN_INT (size))); ! /* We cannot use r0 with elf_low. Lamely solve this problem by ! moving registers around. */ ! rtx r11_reg = gen_rtx_REG (Pmode, 11); ! emit_move_insn (tmp_reg, r11_reg); ! emit_insn (gen_elf_high (r11_reg, toload)); ! emit_insn (gen_elf_low (r11_reg, r11_reg, toload)); ! emit_insn (gen_cond_trap (LTU, stack_reg, r11_reg, const0_rtx)); ! emit_move_insn (r11_reg, tmp_reg); } else warning (0, "stack limit expression is not supported"); *************** output_call (rtx_insn *insn, rtx *operan *** 33632,33638 **** int cookie_operand_number) { static char buf[256]; ! if (darwin_emit_branch_islands && GET_CODE (operands[dest_operand_number]) == SYMBOL_REF && (INTVAL (operands[cookie_operand_number]) & CALL_LONG)) { --- 33784,33790 ---- int cookie_operand_number) { static char buf[256]; ! if (darwin_symbol_stubs && GET_CODE (operands[dest_operand_number]) == SYMBOL_REF && (INTVAL (operands[cookie_operand_number]) & CALL_LONG)) { *************** rs6000_xcoff_asm_init_sections (void) *** 34192,34197 **** --- 34344,34353 ---- rs6000_xcoff_output_readwrite_section_asm_op, &xcoff_private_data_section_name); + read_only_private_data_section + = get_unnamed_section (0, rs6000_xcoff_output_readonly_section_asm_op, + &xcoff_private_rodata_section_name); + tls_data_section = get_unnamed_section (SECTION_TLS, rs6000_xcoff_output_tls_section_asm_op, *************** rs6000_xcoff_asm_init_sections (void) *** 34202,34211 **** rs6000_xcoff_output_tls_section_asm_op, &xcoff_private_data_section_name); - read_only_private_data_section - = get_unnamed_section (0, rs6000_xcoff_output_readonly_section_asm_op, - &xcoff_private_data_section_name); - toc_section = get_unnamed_section (0, rs6000_xcoff_output_toc_section_asm_op, NULL); --- 34358,34363 ---- *************** rs6000_xcoff_file_start (void) *** 34386,34391 **** --- 34538,34545 ---- main_input_filename, ".bss_"); rs6000_gen_section_name (&xcoff_private_data_section_name, main_input_filename, ".rw_"); + rs6000_gen_section_name (&xcoff_private_rodata_section_name, + main_input_filename, ".rop_"); rs6000_gen_section_name (&xcoff_read_only_section_name, main_input_filename, ".ro_"); rs6000_gen_section_name (&xcoff_tls_data_section_name, *************** rs6000_init_dwarf_reg_sizes_extra (tree *** 36605,36614 **** unsigned int rs6000_dbx_register_number (unsigned int regno, unsigned int format) { ! /* Except for the above, we use the internal number for non-DWARF ! debug information, and also for .eh_frame. */ if ((format == 0 && write_symbols != DWARF2_DEBUG) || format == 2) ! return regno; /* On some platforms, we use the standard DWARF register numbering for .debug_info and .debug_frame. */ --- 36759,36778 ---- unsigned int rs6000_dbx_register_number (unsigned int regno, unsigned int format) { ! /* We use the GCC 7 (and before) internal number for non-DWARF debug ! information, and also for .eh_frame. */ if ((format == 0 && write_symbols != DWARF2_DEBUG) || format == 2) ! { ! /* Translate the regnos to their numbers in GCC 7 (and before). */ ! if (regno == TFHAR_REGNO) ! regno = 114; ! else if (regno == TFIAR_REGNO) ! regno = 115; ! else if (regno == TEXASR_REGNO) ! regno = 116; ! ! return regno; ! } /* On some platforms, we use the standard DWARF register numbering for .debug_info and .debug_frame. */ *************** rs6000_dbx_register_number (unsigned int *** 36635,36640 **** --- 36799,36810 ---- return 356; if (regno == VSCR_REGNO) return 67; + if (regno == TFHAR_REGNO) + return 228; + if (regno == TFIAR_REGNO) + return 229; + if (regno == TEXASR_REGNO) + return 230; #endif return regno; } *************** make_resolver_func (const tree default_d *** 37840,37845 **** --- 38010,38016 ---- /* Build result decl and add to function_decl. */ tree t = build_decl (UNKNOWN_LOCATION, RESULT_DECL, NULL_TREE, ptr_type_node); + DECL_CONTEXT (t) = decl; DECL_ARTIFICIAL (t) = 1; DECL_IGNORED_P (t) = 1; DECL_RESULT (decl) = t; *************** rs6000_can_inline_p (tree caller, tree c *** 38061,38085 **** tree caller_tree = DECL_FUNCTION_SPECIFIC_TARGET (caller); tree callee_tree = DECL_FUNCTION_SPECIFIC_TARGET (callee); ! /* If callee has no option attributes, then it is ok to inline. */ if (!callee_tree) ret = true; - /* If caller has no option attributes, but callee does then it is not ok to - inline. */ - else if (!caller_tree) - ret = false; - else { ! struct cl_target_option *caller_opts = TREE_TARGET_OPTION (caller_tree); struct cl_target_option *callee_opts = TREE_TARGET_OPTION (callee_tree); ! /* Callee's options should a subset of the caller's, i.e. a vsx function ! can inline an altivec function but a non-vsx function can't inline a ! vsx function. */ ! if ((caller_opts->x_rs6000_isa_flags & callee_opts->x_rs6000_isa_flags) ! == callee_opts->x_rs6000_isa_flags) ret = true; } --- 38232,38262 ---- tree caller_tree = DECL_FUNCTION_SPECIFIC_TARGET (caller); tree callee_tree = DECL_FUNCTION_SPECIFIC_TARGET (callee); ! /* If the callee has no option attributes, then it is ok to inline. */ if (!callee_tree) ret = true; else { ! HOST_WIDE_INT caller_isa; struct cl_target_option *callee_opts = TREE_TARGET_OPTION (callee_tree); + HOST_WIDE_INT callee_isa = callee_opts->x_rs6000_isa_flags; + HOST_WIDE_INT explicit_isa = callee_opts->x_rs6000_isa_flags_explicit; ! /* If the caller has option attributes, then use them. ! Otherwise, use the command line options. */ ! if (caller_tree) ! caller_isa = TREE_TARGET_OPTION (caller_tree)->x_rs6000_isa_flags; ! else ! caller_isa = rs6000_isa_flags; ! ! /* 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 ! callee has explicitly enabled or disabled, then we must enforce that ! the callee's and caller's options match exactly; see PR70010. */ ! if (((caller_isa & callee_isa) == callee_isa) ! && (caller_isa & explicit_isa) == (callee_isa & explicit_isa)) ret = true; } diff -Nrcpad gcc-8.3.0/gcc/config/rs6000/rs6000.md gcc-8.4.0/gcc/config/rs6000/rs6000.md *** gcc-8.3.0/gcc/config/rs6000/rs6000.md Thu Feb 14 19:03:54 2019 --- gcc-8.4.0/gcc/config/rs6000/rs6000.md Wed Mar 4 08:30:00 2020 *************** *** 136,141 **** --- 136,144 ---- UNSPEC_LSQ UNSPEC_FUSION_GPR UNSPEC_STACK_CHECK + UNSPEC_CMPRB + UNSPEC_CMPRB2 + UNSPEC_CMPEQB UNSPEC_FUSION_P9 UNSPEC_FUSION_ADDIS UNSPEC_ADD_ROUND_TO_ODD *************** *** 162,167 **** --- 165,173 ---- UNSPECV_EH_RR ; eh_reg_restore UNSPECV_ISYNC ; isync instruction UNSPECV_MFTB ; move from time base + UNSPECV_DARN ; darn 1 (deliver a random number) + UNSPECV_DARN_32 ; darn 2 + UNSPECV_DARN_RAW ; darn 0 UNSPECV_NLGR ; non-local goto receiver UNSPECV_MFFS ; Move from FPSCR UNSPECV_MTFSF ; Move to FPSCR Fields *************** *** 6692,6705 **** ;; do the load 16-bits at a time. We could do this by loading from memory, ;; and this is even supposed to be faster, but it is simpler not to get ;; integers in the TOC. - (define_insn "movsi_low" - [(set (match_operand:SI 0 "gpc_reg_operand" "=r") - (mem:SI (lo_sum:SI (match_operand:SI 1 "gpc_reg_operand" "b") - (match_operand 2 "" ""))))] - "TARGET_MACHO && ! TARGET_64BIT" - "lwz %0,lo16(%2)(%1)" - [(set_attr "type" "load") - (set_attr "length" "4")]) ;; MR LA LWZ LFIWZX LXSIWZX ;; STW STFIWX STXSIWX LI LIS --- 6698,6703 ---- *************** *** 12594,12608 **** [(unspec [(const_int 0)] UNSPEC_GRP_END_NOP)] "" { ! if (rs6000_tune == PROCESSOR_POWER6) ! return "ori 1,1,0"; ! return "ori 2,2,0"; }) (define_insn "rs6000_speculation_barrier" [(unspec_volatile:BLK [(const_int 0)] UNSPECV_SPEC_BARRIER)] "" ! "ori 31,31,0") ;; Define the subtract-one-and-jump insns, starting with the template ;; so loop.c knows what to generate. --- 12592,12609 ---- [(unspec [(const_int 0)] UNSPEC_GRP_END_NOP)] "" { ! operands[0] = gen_rtx_REG (Pmode, ! rs6000_tune == PROCESSOR_POWER6 ? 1 : 2); ! return "ori %0,%0,0"; }) (define_insn "rs6000_speculation_barrier" [(unspec_volatile:BLK [(const_int 0)] UNSPECV_SPEC_BARRIER)] "" ! { ! operands[0] = gen_rtx_REG (Pmode, 31); ! return "ori %0,%0,0"; ! }) ;; Define the subtract-one-and-jump insns, starting with the template ;; so loop.c knows what to generate. *************** *** 12699,12705 **** const0_rtx); emit_insn (gen_rtx_SET (operands[3], gen_rtx_COMPARE (CCmode, operands[1], const1_rtx))); ! if (gpc_reg_operand (operands[0], mode)) emit_insn (gen_add3 (operands[0], operands[1], constm1_rtx)); else { --- 12700,12706 ---- const0_rtx); emit_insn (gen_rtx_SET (operands[3], gen_rtx_COMPARE (CCmode, operands[1], const1_rtx))); ! if (int_reg_operand (operands[0], mode)) emit_insn (gen_add3 (operands[0], operands[1], constm1_rtx)); else { *************** *** 12768,12774 **** (const_int 0)])) (match_operand 4) (match_operand 5))) ! (set (match_operand:P 6 "int_reg_operand") (plus:P (match_dup 0) (const_int -1))) (clobber (match_scratch:P 7)) --- 12769,12775 ---- (const_int 0)])) (match_operand 4) (match_operand 5))) ! (set (match_operand:P 6 "nonimmediate_operand") (plus:P (match_dup 0) (const_int -1))) (clobber (match_scratch:P 7)) *************** *** 12801,12807 **** else emit_insn (gen_cceq_ior_compare_complement (operands[9], andexpr, ctrcmpcc, operands[8], cccmp, ccin)); ! if (gpc_reg_operand (operands[0], mode)) emit_insn (gen_add3 (ctrout, ctr, constm1_rtx)); else { --- 12802,12808 ---- else emit_insn (gen_cceq_ior_compare_complement (operands[9], andexpr, ctrcmpcc, operands[8], cccmp, ccin)); ! if (int_reg_operand (ctrout, mode)) emit_insn (gen_add3 (ctrout, ctr, constm1_rtx)); else { *************** *** 14597,14603 **** --- 14598,14822 ---- "xscmpuqp %0,%1,%2" [(set_attr "type" "veccmp") (set_attr "size" "128")]) + + ;; Miscellaneous ISA 3.0 (power9) instructions + + (define_insn "darn_32" + [(set (match_operand:SI 0 "register_operand" "=r") + (unspec_volatile:SI [(const_int 0)] UNSPECV_DARN_32))] + "TARGET_P9_MISC" + "darn %0,0" + [(set_attr "type" "integer")]) + (define_insn "darn_raw" + [(set (match_operand:DI 0 "register_operand" "=r") + (unspec_volatile:DI [(const_int 0)] UNSPECV_DARN_RAW))] + "TARGET_P9_MISC && TARGET_64BIT" + "darn %0,2" + [(set_attr "type" "integer")]) + + (define_insn "darn" + [(set (match_operand:DI 0 "register_operand" "=r") + (unspec_volatile:DI [(const_int 0)] UNSPECV_DARN))] + "TARGET_P9_MISC && TARGET_64BIT" + "darn %0,1" + [(set_attr "type" "integer")]) + + ;; Test byte within range. + ;; + ;; The bytes of operand 1 are organized as xx:xx:xx:vv, where xx + ;; represents a byte whose value is ignored in this context and + ;; vv, the least significant byte, holds the byte value that is to + ;; be tested for membership within the range specified by operand 2. + ;; The bytes of operand 2 are organized as xx:xx:hi:lo. + ;; + ;; Return in target register operand 0 a value of 1 if lo <= vv and + ;; vv <= hi. Otherwise, set register operand 0 to 0. + ;; + ;; Though the instructions to which this expansion maps operate on + ;; 64-bit registers, the current implementation only operates on + ;; SI-mode operands as the high-order bits provide no information + ;; that is not already available in the low-order bits. To avoid the + ;; costs of data widening operations, future enhancements might allow + ;; DI mode for operand 0 and/or might allow operand 1 to be QI mode. + (define_expand "cmprb" + [(set (match_dup 3) + (unspec:CC [(match_operand:SI 1 "gpc_reg_operand" "r") + (match_operand:SI 2 "gpc_reg_operand" "r")] + UNSPEC_CMPRB)) + (set (match_operand:SI 0 "gpc_reg_operand" "=r") + (if_then_else:SI (lt (match_dup 3) + (const_int 0)) + (const_int -1) + (if_then_else (gt (match_dup 3) + (const_int 0)) + (const_int 1) + (const_int 0))))] + "TARGET_P9_MISC" + { + operands[3] = gen_reg_rtx (CCmode); + }) + + ;; The bytes of operand 1 are organized as xx:xx:xx:vv, where xx + ;; represents a byte whose value is ignored in this context and + ;; vv, the least significant byte, holds the byte value that is to + ;; be tested for membership within the range specified by operand 2. + ;; The bytes of operand 2 are organized as xx:xx:hi:lo. + ;; + ;; Set bit 1 (the GT bit, 0x4) of CR register operand 0 to 1 if + ;; lo <= vv and vv <= hi. Otherwise, set the GT bit to 0. The other + ;; 3 bits of the target CR register are all set to 0. + (define_insn "*cmprb_internal" + [(set (match_operand:CC 0 "cc_reg_operand" "=y") + (unspec:CC [(match_operand:SI 1 "gpc_reg_operand" "r") + (match_operand:SI 2 "gpc_reg_operand" "r")] + UNSPEC_CMPRB))] + "TARGET_P9_MISC" + "cmprb %0,0,%1,%2" + [(set_attr "type" "logical")]) + + ;; Set operand 0 register to -1 if the LT bit (0x8) of condition + ;; register operand 1 is on. Otherwise, set operand 0 register to 1 + ;; if the GT bit (0x4) of condition register operand 1 is on. + ;; Otherwise, set operand 0 to 0. Note that the result stored into + ;; register operand 0 is non-zero iff either the LT or GT bits are on + ;; within condition register operand 1. + (define_insn "setb_signed" + [(set (match_operand:SI 0 "gpc_reg_operand" "=r") + (if_then_else:SI (lt (match_operand:CC 1 "cc_reg_operand" "y") + (const_int 0)) + (const_int -1) + (if_then_else (gt (match_dup 1) + (const_int 0)) + (const_int 1) + (const_int 0))))] + "TARGET_P9_MISC" + "setb %0,%1" + [(set_attr "type" "logical")]) + + (define_insn "setb_unsigned" + [(set (match_operand:SI 0 "gpc_reg_operand" "=r") + (if_then_else:SI (ltu (match_operand:CCUNS 1 "cc_reg_operand" "y") + (const_int 0)) + (const_int -1) + (if_then_else (gtu (match_dup 1) + (const_int 0)) + (const_int 1) + (const_int 0))))] + "TARGET_P9_MISC" + "setb %0,%1" + [(set_attr "type" "logical")]) + + ;; Test byte within two ranges. + ;; + ;; The bytes of operand 1 are organized as xx:xx:xx:vv, where xx + ;; represents a byte whose value is ignored in this context and + ;; vv, the least significant byte, holds the byte value that is to + ;; be tested for membership within the range specified by operand 2. + ;; The bytes of operand 2 are organized as hi_1:lo_1:hi_2:lo_2. + ;; + ;; Return in target register operand 0 a value of 1 if (lo_1 <= vv and + ;; vv <= hi_1) or if (lo_2 <= vv and vv <= hi_2). Otherwise, set register + ;; operand 0 to 0. + ;; + ;; Though the instructions to which this expansion maps operate on + ;; 64-bit registers, the current implementation only operates on + ;; SI-mode operands as the high-order bits provide no information + ;; that is not already available in the low-order bits. To avoid the + ;; costs of data widening operations, future enhancements might allow + ;; DI mode for operand 0 and/or might allow operand 1 to be QI mode. + (define_expand "cmprb2" + [(set (match_dup 3) + (unspec:CC [(match_operand:SI 1 "gpc_reg_operand" "r") + (match_operand:SI 2 "gpc_reg_operand" "r")] + UNSPEC_CMPRB2)) + (set (match_operand:SI 0 "gpc_reg_operand" "=r") + (if_then_else:SI (lt (match_dup 3) + (const_int 0)) + (const_int -1) + (if_then_else (gt (match_dup 3) + (const_int 0)) + (const_int 1) + (const_int 0))))] + "TARGET_P9_MISC" + { + operands[3] = gen_reg_rtx (CCmode); + }) + + ;; The bytes of operand 1 are organized as xx:xx:xx:vv, where xx + ;; represents a byte whose value is ignored in this context and + ;; vv, the least significant byte, holds the byte value that is to + ;; be tested for membership within the ranges specified by operand 2. + ;; The bytes of operand 2 are organized as hi_1:lo_1:hi_2:lo_2. + ;; + ;; Set bit 1 (the GT bit, 0x4) of CR register operand 0 to 1 if + ;; (lo_1 <= vv and vv <= hi_1) or if (lo_2 <= vv and vv <= hi_2). + ;; Otherwise, set the GT bit to 0. The other 3 bits of the target + ;; CR register are all set to 0. + (define_insn "*cmprb2_internal" + [(set (match_operand:CC 0 "cc_reg_operand" "=y") + (unspec:CC [(match_operand:SI 1 "gpc_reg_operand" "r") + (match_operand:SI 2 "gpc_reg_operand" "r")] + UNSPEC_CMPRB2))] + "TARGET_P9_MISC" + "cmprb %0,1,%1,%2" + [(set_attr "type" "logical")]) + + ;; Test byte membership within set of 8 bytes. + ;; + ;; The bytes of operand 1 are organized as xx:xx:xx:vv, where xx + ;; represents a byte whose value is ignored in this context and + ;; vv, the least significant byte, holds the byte value that is to + ;; be tested for membership within the set specified by operand 2. + ;; The bytes of operand 2 are organized as e0:e1:e2:e3:e4:e5:e6:e7. + ;; + ;; Return in target register operand 0 a value of 1 if vv equals one + ;; of the values e0, e1, e2, e3, e4, e5, e6, or e7. Otherwise, set + ;; register operand 0 to 0. Note that the 8 byte values held within + ;; operand 2 need not be unique. + ;; + ;; Though the instructions to which this expansion maps operate on + ;; 64-bit registers, the current implementation requires that operands + ;; 0 and 1 have mode SI as the high-order bits provide no information + ;; that is not already available in the low-order bits. To avoid the + ;; costs of data widening operations, future enhancements might allow + ;; DI mode for operand 0 and/or might allow operand 1 to be QI mode. + (define_expand "cmpeqb" + [(set (match_dup 3) + (unspec:CC [(match_operand:SI 1 "gpc_reg_operand" "r") + (match_operand:DI 2 "gpc_reg_operand" "r")] + UNSPEC_CMPEQB)) + (set (match_operand:SI 0 "gpc_reg_operand" "=r") + (if_then_else:SI (lt (match_dup 3) + (const_int 0)) + (const_int -1) + (if_then_else (gt (match_dup 3) + (const_int 0)) + (const_int 1) + (const_int 0))))] + "TARGET_P9_MISC && TARGET_64BIT" + { + operands[3] = gen_reg_rtx (CCmode); + }) + + ;; The bytes of operand 1 are organized as xx:xx:xx:vv, where xx + ;; represents a byte whose value is ignored in this context and + ;; vv, the least significant byte, holds the byte value that is to + ;; be tested for membership within the set specified by operand 2. + ;; The bytes of operand 2 are organized as e0:e1:e2:e3:e4:e5:e6:e7. + ;; + ;; Set bit 1 (the GT bit, 0x4) of CR register operand 0 to 1 if vv + ;; equals one of the values e0, e1, e2, e3, e4, e5, e6, or e7. Otherwise, + ;; set the GT bit to zero. The other 3 bits of the target CR register + ;; are all set to 0. + (define_insn "*cmpeqb_internal" + [(set (match_operand:CC 0 "cc_reg_operand" "=y") + (unspec:CC [(match_operand:SI 1 "gpc_reg_operand" "r") + (match_operand:DI 2 "gpc_reg_operand" "r")] + UNSPEC_CMPEQB))] + "TARGET_P9_MISC && TARGET_64BIT" + "cmpeqb %0,%1,%2" + [(set_attr "type" "logical")]) (include "sync.md") diff -Nrcpad gcc-8.3.0/gcc/config/rs6000/t-darwin32-biarch gcc-8.4.0/gcc/config/rs6000/t-darwin32-biarch *** gcc-8.3.0/gcc/config/rs6000/t-darwin32-biarch Thu Jan 1 00:00:00 1970 --- gcc-8.4.0/gcc/config/rs6000/t-darwin32-biarch Wed Mar 4 08:30:00 2020 *************** *** 0 **** --- 1,3 ---- + # 64-bit libraries can only be built in Darwin 8.x or later. + MULTILIB_OPTIONS = m64 + MULTILIB_DIRNAMES = ppc64 diff -Nrcpad gcc-8.3.0/gcc/config/rs6000/t-darwin64 gcc-8.4.0/gcc/config/rs6000/t-darwin64 *** gcc-8.3.0/gcc/config/rs6000/t-darwin64 Wed Nov 2 15:23:48 2011 --- gcc-8.4.0/gcc/config/rs6000/t-darwin64 Thu Jan 1 00:00:00 1970 *************** *** 1,2 **** - MULTILIB_OPTIONS = m32 - MULTILIB_DIRNAMES = ppc --- 0 ---- diff -Nrcpad gcc-8.3.0/gcc/config/rs6000/t-darwin64-biarch gcc-8.4.0/gcc/config/rs6000/t-darwin64-biarch *** gcc-8.3.0/gcc/config/rs6000/t-darwin64-biarch Thu Jan 1 00:00:00 1970 --- gcc-8.4.0/gcc/config/rs6000/t-darwin64-biarch Wed Mar 4 08:30:00 2020 *************** *** 0 **** --- 1,2 ---- + MULTILIB_OPTIONS = m32 + MULTILIB_DIRNAMES = ppc diff -Nrcpad gcc-8.3.0/gcc/config/rs6000/t-darwin8 gcc-8.4.0/gcc/config/rs6000/t-darwin8 *** gcc-8.3.0/gcc/config/rs6000/t-darwin8 Thu Sep 29 00:42:21 2005 --- gcc-8.4.0/gcc/config/rs6000/t-darwin8 Thu Jan 1 00:00:00 1970 *************** *** 1,3 **** - # 64-bit libraries can only be built in Darwin 8.x or later. - MULTILIB_OPTIONS = m64 - MULTILIB_DIRNAMES = ppc64 --- 0 ---- diff -Nrcpad gcc-8.3.0/gcc/config/rs6000/t-linux gcc-8.4.0/gcc/config/rs6000/t-linux *** gcc-8.3.0/gcc/config/rs6000/t-linux Tue Jun 13 17:14:25 2017 --- gcc-8.4.0/gcc/config/rs6000/t-linux Wed Mar 4 08:30:00 2020 *************** ifeq (,$(filter $(with_cpu),$(SOFT_FLOAT *** 4,10 **** ifneq (,$(findstring powerpc64,$(target))) MULTILIB_OSDIRNAMES := .=../lib64$(call if_multiarch,:powerpc64-linux-gnu) else ! MULTIARCH_DIRNAME := powerpc-linux-gnu endif ifneq (,$(findstring powerpcle,$(target))) MULTIARCH_DIRNAME := $(subst -linux,le-linux,$(MULTIARCH_DIRNAME)) --- 4,10 ---- ifneq (,$(findstring powerpc64,$(target))) MULTILIB_OSDIRNAMES := .=../lib64$(call if_multiarch,:powerpc64-linux-gnu) else ! MULTIARCH_DIRNAME := $(call if_multiarch,powerpc-linux-gnu) endif ifneq (,$(findstring powerpcle,$(target))) MULTIARCH_DIRNAME := $(subst -linux,le-linux,$(MULTIARCH_DIRNAME)) diff -Nrcpad gcc-8.3.0/gcc/config/rs6000/vsx.md gcc-8.4.0/gcc/config/rs6000/vsx.md *** gcc-8.3.0/gcc/config/rs6000/vsx.md Mon Feb 4 16:47:12 2019 --- gcc-8.4.0/gcc/config/rs6000/vsx.md Wed Mar 4 08:30:00 2020 *************** *** 3756,3764 **** DONE; }) ! (define_insn_and_split "*vsx_extract___var" ! [(set (match_operand:SDI 0 "gpc_reg_operand" "=r,r,r") ! (zero_extend:SDI (unspec: [(match_operand:VSX_EXTRACT_I 1 "input_operand" "wK,v,m") (match_operand:DI 2 "gpc_reg_operand" "r,r,r")] --- 3756,3764 ---- DONE; }) ! (define_insn_and_split "*vsx_extract__mode_var" ! [(set (match_operand: 0 "gpc_reg_operand" "=r,r,r") ! (zero_extend: (unspec: [(match_operand:VSX_EXTRACT_I 1 "input_operand" "wK,v,m") (match_operand:DI 2 "gpc_reg_operand" "r,r,r")] *************** *** 3770,3776 **** "&& reload_completed" [(const_int 0)] { ! machine_mode smode = mode; rs6000_split_vec_extract_var (gen_rtx_REG (smode, REGNO (operands[0])), operands[1], operands[2], operands[3], operands[4]); --- 3770,3776 ---- "&& reload_completed" [(const_int 0)] { ! machine_mode smode = mode; rs6000_split_vec_extract_var (gen_rtx_REG (smode, REGNO (operands[0])), operands[1], operands[2], operands[3], operands[4]); diff -Nrcpad gcc-8.3.0/gcc/config/s390/s390-builtin-types.def gcc-8.4.0/gcc/config/s390/s390-builtin-types.def *** gcc-8.3.0/gcc/config/s390/s390-builtin-types.def Tue Jun 5 07:30:59 2018 --- gcc-8.4.0/gcc/config/s390/s390-builtin-types.def Wed Mar 4 08:30:00 2020 *************** DEF_FN_TYPE_2 (BT_FN_V4SF_FLT_INT, BT_V4 *** 260,265 **** --- 260,266 ---- DEF_FN_TYPE_2 (BT_FN_V4SF_V4SF_UCHAR, BT_V4SF, BT_V4SF, BT_UCHAR) DEF_FN_TYPE_2 (BT_FN_V4SF_V4SF_V4SF, BT_V4SF, BT_V4SF, BT_V4SF) DEF_FN_TYPE_2 (BT_FN_V4SI_BV4SI_V4SI, BT_V4SI, BT_BV4SI, BT_V4SI) + DEF_FN_TYPE_2 (BT_FN_V4SI_INT_VOIDCONSTPTR, BT_V4SI, BT_INT, BT_VOIDCONSTPTR) DEF_FN_TYPE_2 (BT_FN_V4SI_INT_VOIDPTR, BT_V4SI, BT_INT, BT_VOIDPTR) DEF_FN_TYPE_2 (BT_FN_V4SI_UV4SI_UV4SI, BT_V4SI, BT_UV4SI, BT_UV4SI) DEF_FN_TYPE_2 (BT_FN_V4SI_V2DI_V2DI, BT_V4SI, BT_V2DI, BT_V2DI) *************** DEF_OV_TYPE (BT_OV_USHORT_UV8HI_INT, BT_ *** 492,497 **** --- 493,499 ---- DEF_OV_TYPE (BT_OV_UV16QI_BV16QI_BV16QI, BT_UV16QI, BT_BV16QI, BT_BV16QI) DEF_OV_TYPE (BT_OV_UV16QI_BV16QI_BV16QI_INTPTR, BT_UV16QI, BT_BV16QI, BT_BV16QI, BT_INTPTR) DEF_OV_TYPE (BT_OV_UV16QI_BV16QI_UV16QI, BT_UV16QI, BT_BV16QI, BT_UV16QI) + DEF_OV_TYPE (BT_OV_UV16QI_LONG_UCHARCONSTPTR, BT_UV16QI, BT_LONG, BT_UCHARCONSTPTR) DEF_OV_TYPE (BT_OV_UV16QI_LONG_UCHARPTR, BT_UV16QI, BT_LONG, BT_UCHARPTR) DEF_OV_TYPE (BT_OV_UV16QI_UCHAR, BT_UV16QI, BT_UCHAR) DEF_OV_TYPE (BT_OV_UV16QI_UCHARCONSTPTR, BT_UV16QI, BT_UCHARCONSTPTR) *************** DEF_OV_TYPE (BT_OV_UV16QI_UV8HI_UV8HI_IN *** 523,528 **** --- 525,531 ---- DEF_OV_TYPE (BT_OV_UV16QI_V16QI, BT_UV16QI, BT_V16QI) DEF_OV_TYPE (BT_OV_UV16QI_V8HI_V8HI, BT_UV16QI, BT_V8HI, BT_V8HI) DEF_OV_TYPE (BT_OV_UV2DI_BV2DI_UV2DI, BT_UV2DI, BT_BV2DI, BT_UV2DI) + DEF_OV_TYPE (BT_OV_UV2DI_LONG_ULONGLONGCONSTPTR, BT_UV2DI, BT_LONG, BT_ULONGLONGCONSTPTR) DEF_OV_TYPE (BT_OV_UV2DI_LONG_ULONGLONGPTR, BT_UV2DI, BT_LONG, BT_ULONGLONGPTR) DEF_OV_TYPE (BT_OV_UV2DI_ULONGLONG, BT_UV2DI, BT_ULONGLONG) DEF_OV_TYPE (BT_OV_UV2DI_ULONGLONGCONSTPTR, BT_UV2DI, BT_ULONGLONGCONSTPTR) *************** DEF_OV_TYPE (BT_OV_UV2DI_V2DI, BT_UV2DI, *** 556,561 **** --- 559,566 ---- DEF_OV_TYPE (BT_OV_UV4SI_BV4SI_BV4SI, BT_UV4SI, BT_BV4SI, BT_BV4SI) DEF_OV_TYPE (BT_OV_UV4SI_BV4SI_BV4SI_INTPTR, BT_UV4SI, BT_BV4SI, BT_BV4SI, BT_INTPTR) DEF_OV_TYPE (BT_OV_UV4SI_BV4SI_UV4SI, BT_UV4SI, BT_BV4SI, BT_UV4SI) + DEF_OV_TYPE (BT_OV_UV4SI_LONG_FLTPTR, BT_UV4SI, BT_LONG, BT_FLTPTR) + DEF_OV_TYPE (BT_OV_UV4SI_LONG_UINTCONSTPTR, BT_UV4SI, BT_LONG, BT_UINTCONSTPTR) DEF_OV_TYPE (BT_OV_UV4SI_LONG_UINTPTR, BT_UV4SI, BT_LONG, BT_UINTPTR) DEF_OV_TYPE (BT_OV_UV4SI_UINT, BT_UV4SI, BT_UINT) DEF_OV_TYPE (BT_OV_UV4SI_UINTCONSTPTR, BT_UV4SI, BT_UINTCONSTPTR) *************** DEF_OV_TYPE (BT_OV_UV4SI_V4SI, BT_UV4SI, *** 593,598 **** --- 598,604 ---- DEF_OV_TYPE (BT_OV_UV8HI_BV8HI_BV8HI, BT_UV8HI, BT_BV8HI, BT_BV8HI) DEF_OV_TYPE (BT_OV_UV8HI_BV8HI_BV8HI_INTPTR, BT_UV8HI, BT_BV8HI, BT_BV8HI, BT_INTPTR) DEF_OV_TYPE (BT_OV_UV8HI_BV8HI_UV8HI, BT_UV8HI, BT_BV8HI, BT_UV8HI) + DEF_OV_TYPE (BT_OV_UV8HI_LONG_USHORTCONSTPTR, BT_UV8HI, BT_LONG, BT_USHORTCONSTPTR) DEF_OV_TYPE (BT_OV_UV8HI_LONG_USHORTPTR, BT_UV8HI, BT_LONG, BT_USHORTPTR) DEF_OV_TYPE (BT_OV_UV8HI_USHORT, BT_UV8HI, BT_USHORT) DEF_OV_TYPE (BT_OV_UV8HI_USHORTCONSTPTR, BT_UV8HI, BT_USHORTCONSTPTR) *************** DEF_OV_TYPE (BT_OV_UV8HI_UV8HI_V8HI, BT_ *** 626,631 **** --- 632,638 ---- DEF_OV_TYPE (BT_OV_UV8HI_V4SI_V4SI, BT_UV8HI, BT_V4SI, BT_V4SI) DEF_OV_TYPE (BT_OV_UV8HI_V8HI, BT_UV8HI, BT_V8HI) DEF_OV_TYPE (BT_OV_V16QI_BV16QI_V16QI, BT_V16QI, BT_BV16QI, BT_V16QI) + DEF_OV_TYPE (BT_OV_V16QI_LONG_SCHARCONSTPTR, BT_V16QI, BT_LONG, BT_SCHARCONSTPTR) DEF_OV_TYPE (BT_OV_V16QI_LONG_SCHARPTR, BT_V16QI, BT_LONG, BT_SCHARPTR) DEF_OV_TYPE (BT_OV_V16QI_SCHAR, BT_V16QI, BT_SCHAR) DEF_OV_TYPE (BT_OV_V16QI_SCHARCONSTPTR, BT_V16QI, BT_SCHARCONSTPTR) *************** DEF_OV_TYPE (BT_OV_V2DF_DBLCONSTPTR_UINT *** 660,665 **** --- 667,673 ---- DEF_OV_TYPE (BT_OV_V2DF_DBLCONSTPTR_USHORT, BT_V2DF, BT_DBLCONSTPTR, BT_USHORT) DEF_OV_TYPE (BT_OV_V2DF_DBL_INT, BT_V2DF, BT_DBL, BT_INT) DEF_OV_TYPE (BT_OV_V2DF_DBL_V2DF_INT, BT_V2DF, BT_DBL, BT_V2DF, BT_INT) + DEF_OV_TYPE (BT_OV_V2DF_LONG_DBLCONSTPTR, BT_V2DF, BT_LONG, BT_DBLCONSTPTR) DEF_OV_TYPE (BT_OV_V2DF_LONG_DBLPTR, BT_V2DF, BT_LONG, BT_DBLPTR) DEF_OV_TYPE (BT_OV_V2DF_UV2DI, BT_V2DF, BT_UV2DI) DEF_OV_TYPE (BT_OV_V2DF_UV2DI_INT, BT_V2DF, BT_UV2DI, BT_INT) *************** DEF_OV_TYPE (BT_OV_V2DI_LONGLONGCONSTPTR *** 687,692 **** --- 695,701 ---- DEF_OV_TYPE (BT_OV_V2DI_LONGLONG_INT, BT_V2DI, BT_LONGLONG, BT_INT) DEF_OV_TYPE (BT_OV_V2DI_LONGLONG_LONGLONG, BT_V2DI, BT_LONGLONG, BT_LONGLONG) DEF_OV_TYPE (BT_OV_V2DI_LONGLONG_V2DI_INT, BT_V2DI, BT_LONGLONG, BT_V2DI, BT_INT) + DEF_OV_TYPE (BT_OV_V2DI_LONG_LONGLONGCONSTPTR, BT_V2DI, BT_LONG, BT_LONGLONGCONSTPTR) DEF_OV_TYPE (BT_OV_V2DI_LONG_LONGLONGPTR, BT_V2DI, BT_LONG, BT_LONGLONGPTR) DEF_OV_TYPE (BT_OV_V2DI_V16QI, BT_V2DI, BT_V16QI) DEF_OV_TYPE (BT_OV_V2DI_V2DI, BT_V2DI, BT_V2DI) *************** DEF_OV_TYPE (BT_OV_V4SF_FLTCONSTPTR_UINT *** 716,722 **** DEF_OV_TYPE (BT_OV_V4SF_FLTCONSTPTR_USHORT, BT_V4SF, BT_FLTCONSTPTR, BT_USHORT) DEF_OV_TYPE (BT_OV_V4SF_FLT_INT, BT_V4SF, BT_FLT, BT_INT) DEF_OV_TYPE (BT_OV_V4SF_FLT_V4SF_INT, BT_V4SF, BT_FLT, BT_V4SF, BT_INT) ! DEF_OV_TYPE (BT_OV_V4SF_LONG_FLTPTR, BT_V4SF, BT_LONG, BT_FLTPTR) DEF_OV_TYPE (BT_OV_V4SF_V4SF, BT_V4SF, BT_V4SF) DEF_OV_TYPE (BT_OV_V4SF_V4SF_BV4SI, BT_V4SF, BT_V4SF, BT_BV4SI) DEF_OV_TYPE (BT_OV_V4SF_V4SF_UCHAR, BT_V4SF, BT_V4SF, BT_UCHAR) --- 725,731 ---- DEF_OV_TYPE (BT_OV_V4SF_FLTCONSTPTR_USHORT, BT_V4SF, BT_FLTCONSTPTR, BT_USHORT) DEF_OV_TYPE (BT_OV_V4SF_FLT_INT, BT_V4SF, BT_FLT, BT_INT) DEF_OV_TYPE (BT_OV_V4SF_FLT_V4SF_INT, BT_V4SF, BT_FLT, BT_V4SF, BT_INT) ! DEF_OV_TYPE (BT_OV_V4SF_LONG_FLTCONSTPTR, BT_V4SF, BT_LONG, BT_FLTCONSTPTR) DEF_OV_TYPE (BT_OV_V4SF_V4SF, BT_V4SF, BT_V4SF) DEF_OV_TYPE (BT_OV_V4SF_V4SF_BV4SI, BT_V4SF, BT_V4SF, BT_BV4SI) DEF_OV_TYPE (BT_OV_V4SF_V4SF_UCHAR, BT_V4SF, BT_V4SF, BT_UCHAR) *************** DEF_OV_TYPE (BT_OV_V4SI_INTCONSTPTR_UINT *** 737,742 **** --- 746,752 ---- DEF_OV_TYPE (BT_OV_V4SI_INTCONSTPTR_USHORT, BT_V4SI, BT_INTCONSTPTR, BT_USHORT) DEF_OV_TYPE (BT_OV_V4SI_INT_INT, BT_V4SI, BT_INT, BT_INT) DEF_OV_TYPE (BT_OV_V4SI_INT_V4SI_INT, BT_V4SI, BT_INT, BT_V4SI, BT_INT) + DEF_OV_TYPE (BT_OV_V4SI_LONG_INTCONSTPTR, BT_V4SI, BT_LONG, BT_INTCONSTPTR) DEF_OV_TYPE (BT_OV_V4SI_LONG_INTPTR, BT_V4SI, BT_LONG, BT_INTPTR) DEF_OV_TYPE (BT_OV_V4SI_UV4SI_V4SI_V4SI, BT_V4SI, BT_UV4SI, BT_V4SI, BT_V4SI) DEF_OV_TYPE (BT_OV_V4SI_V2DI_V2DI, BT_V4SI, BT_V2DI, BT_V2DI) *************** DEF_OV_TYPE (BT_OV_V4SI_V8HI, BT_V4SI, B *** 764,769 **** --- 774,780 ---- DEF_OV_TYPE (BT_OV_V4SI_V8HI_V8HI, BT_V4SI, BT_V8HI, BT_V8HI) DEF_OV_TYPE (BT_OV_V4SI_V8HI_V8HI_V4SI, BT_V4SI, BT_V8HI, BT_V8HI, BT_V4SI) DEF_OV_TYPE (BT_OV_V8HI_BV8HI_V8HI, BT_V8HI, BT_BV8HI, BT_V8HI) + DEF_OV_TYPE (BT_OV_V8HI_LONG_SHORTCONSTPTR, BT_V8HI, BT_LONG, BT_SHORTCONSTPTR) DEF_OV_TYPE (BT_OV_V8HI_LONG_SHORTPTR, BT_V8HI, BT_LONG, BT_SHORTPTR) DEF_OV_TYPE (BT_OV_V8HI_SHORT, BT_V8HI, BT_SHORT) DEF_OV_TYPE (BT_OV_V8HI_SHORTCONSTPTR, BT_V8HI, BT_SHORTCONSTPTR) *************** DEF_OV_TYPE (BT_OV_VOID_UV16QI_UCHARPTR_ *** 802,807 **** --- 813,819 ---- DEF_OV_TYPE (BT_OV_VOID_UV2DI_LONG_ULONGLONGPTR, BT_VOID, BT_UV2DI, BT_LONG, BT_ULONGLONGPTR) DEF_OV_TYPE (BT_OV_VOID_UV2DI_ULONGLONGPTR_UINT, BT_VOID, BT_UV2DI, BT_ULONGLONGPTR, BT_UINT) DEF_OV_TYPE (BT_OV_VOID_UV2DI_UV2DI_ULONGLONGPTR_ULONGLONG, BT_VOID, BT_UV2DI, BT_UV2DI, BT_ULONGLONGPTR, BT_ULONGLONG) + DEF_OV_TYPE (BT_OV_VOID_UV4SI_LONG_FLTPTR, BT_VOID, BT_UV4SI, BT_LONG, BT_FLTPTR) DEF_OV_TYPE (BT_OV_VOID_UV4SI_LONG_UINTPTR, BT_VOID, BT_UV4SI, BT_LONG, BT_UINTPTR) DEF_OV_TYPE (BT_OV_VOID_UV4SI_UINTPTR_UINT, BT_VOID, BT_UV4SI, BT_UINTPTR, BT_UINT) DEF_OV_TYPE (BT_OV_VOID_UV4SI_UV4SI_UINTPTR_ULONGLONG, BT_VOID, BT_UV4SI, BT_UV4SI, BT_UINTPTR, BT_ULONGLONG) diff -Nrcpad gcc-8.3.0/gcc/config/s390/s390-builtins.def gcc-8.4.0/gcc/config/s390/s390-builtins.def *** gcc-8.3.0/gcc/config/s390/s390-builtins.def Thu Dec 13 12:04:46 2018 --- gcc-8.4.0/gcc/config/s390/s390-builtins.def Wed Mar 4 08:30:00 2020 *************** B_DEF (s390_vgmh, *** 328,363 **** B_DEF (s390_vgmf, vec_genmaskv4si, 0, B_VX, O1_U8 | O2_U8, BT_FN_UV4SI_UCHAR_UCHAR) B_DEF (s390_vgmg, vec_genmaskv2di, 0, B_VX, O1_U8 | O2_U8, BT_FN_UV2DI_UCHAR_UCHAR) ! OB_DEF (s390_vec_xl, s390_vec_xl_s8, s390_vec_xl_dbl, B_VX, BT_FN_V4SI_INT_VOIDPTR) ! OB_DEF_VAR (s390_vec_xl_s8, MAX, 0, O1_LIT, BT_OV_V16QI_LONG_SCHARPTR) /* vl */ ! OB_DEF_VAR (s390_vec_xl_u8, MAX, 0, O1_LIT, BT_OV_UV16QI_LONG_UCHARPTR) /* vl */ ! OB_DEF_VAR (s390_vec_xl_s16, MAX, 0, O1_LIT, BT_OV_V8HI_LONG_SHORTPTR) /* vl */ ! OB_DEF_VAR (s390_vec_xl_u16, MAX, 0, O1_LIT, BT_OV_UV8HI_LONG_USHORTPTR) /* vl */ ! OB_DEF_VAR (s390_vec_xl_s32, MAX, 0, O1_LIT, BT_OV_V4SI_LONG_INTPTR) /* vl */ ! OB_DEF_VAR (s390_vec_xl_u32, MAX, 0, O1_LIT, BT_OV_UV4SI_LONG_UINTPTR) /* vl */ ! OB_DEF_VAR (s390_vec_xl_s64, MAX, 0, O1_LIT, BT_OV_V2DI_LONG_LONGLONGPTR) /* vl */ ! OB_DEF_VAR (s390_vec_xl_u64, MAX, 0, O1_LIT, BT_OV_UV2DI_LONG_ULONGLONGPTR) /* vl */ ! OB_DEF_VAR (s390_vec_xl_flt, MAX, 0, O1_LIT, BT_OV_V4SF_LONG_FLTPTR) /* vl */ ! OB_DEF_VAR (s390_vec_xl_dbl, MAX, 0, O1_LIT, BT_OV_V2DF_LONG_DBLPTR) /* vl */ ! OB_DEF (s390_vec_xld2, s390_vec_xld2_s8, s390_vec_xld2_dbl, B_DEP | B_VX, BT_FN_V4SI_INT_VOIDPTR) ! OB_DEF_VAR (s390_vec_xld2_s8, MAX, 0, O1_LIT, BT_OV_V16QI_LONG_SCHARPTR) /* vl */ ! OB_DEF_VAR (s390_vec_xld2_u8, MAX, 0, O1_LIT, BT_OV_UV16QI_LONG_UCHARPTR) /* vl */ ! OB_DEF_VAR (s390_vec_xld2_s16, MAX, 0, O1_LIT, BT_OV_V8HI_LONG_SHORTPTR) /* vl */ ! OB_DEF_VAR (s390_vec_xld2_u16, MAX, 0, O1_LIT, BT_OV_UV8HI_LONG_USHORTPTR) /* vl */ ! OB_DEF_VAR (s390_vec_xld2_s32, MAX, 0, O1_LIT, BT_OV_V4SI_LONG_INTPTR) /* vl */ ! OB_DEF_VAR (s390_vec_xld2_u32, MAX, 0, O1_LIT, BT_OV_UV4SI_LONG_UINTPTR) /* vl */ ! OB_DEF_VAR (s390_vec_xld2_s64, MAX, 0, O1_LIT, BT_OV_V2DI_LONG_LONGLONGPTR) /* vl */ ! OB_DEF_VAR (s390_vec_xld2_u64, MAX, 0, O1_LIT, BT_OV_UV2DI_LONG_ULONGLONGPTR) /* vl */ ! OB_DEF_VAR (s390_vec_xld2_dbl, MAX, 0, O1_LIT, BT_OV_V2DF_LONG_DBLPTR) /* vl */ ! OB_DEF (s390_vec_xlw4, s390_vec_xlw4_s8, s390_vec_xlw4_u32, B_DEP | B_VX, BT_FN_V4SI_INT_VOIDPTR) ! OB_DEF_VAR (s390_vec_xlw4_s8, MAX, 0, O1_LIT, BT_OV_V16QI_LONG_SCHARPTR) /* vl */ ! OB_DEF_VAR (s390_vec_xlw4_u8, MAX, 0, O1_LIT, BT_OV_UV16QI_LONG_UCHARPTR) /* vl */ ! OB_DEF_VAR (s390_vec_xlw4_s16, MAX, 0, O1_LIT, BT_OV_V8HI_LONG_SHORTPTR) /* vl */ ! OB_DEF_VAR (s390_vec_xlw4_u16, MAX, 0, O1_LIT, BT_OV_UV8HI_LONG_USHORTPTR) /* vl */ ! OB_DEF_VAR (s390_vec_xlw4_s32, MAX, 0, O1_LIT, BT_OV_V4SI_LONG_INTPTR) /* vl */ ! OB_DEF_VAR (s390_vec_xlw4_u32, MAX, 0, O1_LIT, BT_OV_UV4SI_LONG_UINTPTR) /* vl */ OB_DEF (s390_vec_splats, s390_vec_splats_s8, s390_vec_splats_dbl,B_VX, BT_FN_OV4SI_INT) OB_DEF_VAR (s390_vec_splats_s8, s390_vlrepb, 0, 0, BT_OV_V16QI_SCHAR) --- 328,365 ---- B_DEF (s390_vgmf, vec_genmaskv4si, 0, B_VX, O1_U8 | O2_U8, BT_FN_UV4SI_UCHAR_UCHAR) B_DEF (s390_vgmg, vec_genmaskv2di, 0, B_VX, O1_U8 | O2_U8, BT_FN_UV2DI_UCHAR_UCHAR) ! OB_DEF (s390_vec_xl, s390_vec_xl_s8, s390_vec_xl_dbl, B_VX, BT_FN_V4SI_INT_VOIDCONSTPTR) ! OB_DEF_VAR (s390_vec_xl_s8, MAX, 0, O1_LIT, BT_OV_V16QI_LONG_SCHARCONSTPTR) /* vl */ ! OB_DEF_VAR (s390_vec_xl_u8, MAX, 0, O1_LIT, BT_OV_UV16QI_LONG_UCHARCONSTPTR) /* vl */ ! OB_DEF_VAR (s390_vec_xl_s16, MAX, 0, O1_LIT, BT_OV_V8HI_LONG_SHORTCONSTPTR) /* vl */ ! OB_DEF_VAR (s390_vec_xl_u16, MAX, 0, O1_LIT, BT_OV_UV8HI_LONG_USHORTCONSTPTR) /* vl */ ! OB_DEF_VAR (s390_vec_xl_s32, MAX, 0, O1_LIT, BT_OV_V4SI_LONG_INTCONSTPTR) /* vl */ ! OB_DEF_VAR (s390_vec_xl_u32, MAX, 0, O1_LIT, BT_OV_UV4SI_LONG_UINTCONSTPTR) /* vl */ ! OB_DEF_VAR (s390_vec_xl_s64, MAX, 0, O1_LIT, BT_OV_V2DI_LONG_LONGLONGCONSTPTR) /* vl */ ! OB_DEF_VAR (s390_vec_xl_u64, MAX, 0, O1_LIT, BT_OV_UV2DI_LONG_ULONGLONGCONSTPTR) /* vl */ ! OB_DEF_VAR (s390_vec_xl_flt, MAX, 0, O1_LIT, BT_OV_V4SF_LONG_FLTCONSTPTR) /* vl */ ! OB_DEF_VAR (s390_vec_xl_dbl, MAX, 0, O1_LIT, BT_OV_V2DF_LONG_DBLCONSTPTR) /* vl */ ! OB_DEF (s390_vec_xld2, s390_vec_xld2_s8, s390_vec_xld2_dbl, B_DEP | B_VX, BT_FN_V4SI_INT_VOIDCONSTPTR) ! OB_DEF_VAR (s390_vec_xld2_s8, MAX, 0, O1_LIT, BT_OV_V16QI_LONG_SCHARCONSTPTR) /* vl */ ! OB_DEF_VAR (s390_vec_xld2_u8, MAX, 0, O1_LIT, BT_OV_UV16QI_LONG_UCHARCONSTPTR) /* vl */ ! OB_DEF_VAR (s390_vec_xld2_s16, MAX, 0, O1_LIT, BT_OV_V8HI_LONG_SHORTCONSTPTR) /* vl */ ! OB_DEF_VAR (s390_vec_xld2_u16, MAX, 0, O1_LIT, BT_OV_UV8HI_LONG_USHORTCONSTPTR) /* vl */ ! OB_DEF_VAR (s390_vec_xld2_s32, MAX, 0, O1_LIT, BT_OV_V4SI_LONG_INTCONSTPTR) /* vl */ ! OB_DEF_VAR (s390_vec_xld2_u32, MAX, 0, O1_LIT, BT_OV_UV4SI_LONG_UINTCONSTPTR) /* vl */ ! OB_DEF_VAR (s390_vec_xld2_s64, MAX, 0, O1_LIT, BT_OV_V2DI_LONG_LONGLONGCONSTPTR) /* vl */ ! OB_DEF_VAR (s390_vec_xld2_u64, MAX, 0, O1_LIT, BT_OV_UV2DI_LONG_ULONGLONGCONSTPTR) /* vl */ ! OB_DEF_VAR (s390_vec_xld2_flt, MAX, B_VXE, O1_LIT, BT_OV_V4SF_LONG_FLTCONSTPTR) /* vl */ ! OB_DEF_VAR (s390_vec_xld2_dbl, MAX, 0, O1_LIT, BT_OV_V2DF_LONG_DBLCONSTPTR) /* vl */ ! OB_DEF (s390_vec_xlw4, s390_vec_xlw4_s8, s390_vec_xlw4_flt, B_DEP | B_VX, BT_FN_V4SI_INT_VOIDCONSTPTR) ! OB_DEF_VAR (s390_vec_xlw4_s8, MAX, 0, O1_LIT, BT_OV_V16QI_LONG_SCHARCONSTPTR) /* vl */ ! OB_DEF_VAR (s390_vec_xlw4_u8, MAX, 0, O1_LIT, BT_OV_UV16QI_LONG_UCHARCONSTPTR) /* vl */ ! OB_DEF_VAR (s390_vec_xlw4_s16, MAX, 0, O1_LIT, BT_OV_V8HI_LONG_SHORTCONSTPTR) /* vl */ ! OB_DEF_VAR (s390_vec_xlw4_u16, MAX, 0, O1_LIT, BT_OV_UV8HI_LONG_USHORTCONSTPTR) /* vl */ ! OB_DEF_VAR (s390_vec_xlw4_s32, MAX, 0, O1_LIT, BT_OV_V4SI_LONG_INTCONSTPTR) /* vl */ ! OB_DEF_VAR (s390_vec_xlw4_u32, MAX, 0, O1_LIT, BT_OV_UV4SI_LONG_UINTCONSTPTR) /* vl */ ! OB_DEF_VAR (s390_vec_xlw4_flt, MAX, B_VXE, O1_LIT, BT_OV_V4SF_LONG_FLTCONSTPTR) /* vl */ OB_DEF (s390_vec_splats, s390_vec_splats_s8, s390_vec_splats_dbl,B_VX, BT_FN_OV4SI_INT) OB_DEF_VAR (s390_vec_splats_s8, s390_vlrepb, 0, 0, BT_OV_V16QI_SCHAR) *************** OB_DEF_VAR (s390_vec_xstd2_s64, *** 746,758 **** OB_DEF_VAR (s390_vec_xstd2_u64, MAX, 0, O2_LIT, BT_OV_VOID_UV2DI_LONG_ULONGLONGPTR) /* vst */ OB_DEF_VAR (s390_vec_xstd2_dbl, MAX, 0, O2_LIT, BT_OV_VOID_V2DF_LONG_DBLPTR) /* vst */ ! OB_DEF (s390_vec_xstw4, s390_vec_xstw4_s8, s390_vec_xstw4_u32, B_DEP | B_VX, BT_FN_VOID_OV4SI_INT_VOIDPTR) OB_DEF_VAR (s390_vec_xstw4_s8, MAX, 0, O2_LIT, BT_OV_VOID_V16QI_LONG_SCHARPTR) /* vst */ OB_DEF_VAR (s390_vec_xstw4_u8, MAX, 0, O2_LIT, BT_OV_VOID_UV16QI_LONG_UCHARPTR) /* vst */ OB_DEF_VAR (s390_vec_xstw4_s16, MAX, 0, O2_LIT, BT_OV_VOID_V8HI_LONG_SHORTPTR) /* vst */ OB_DEF_VAR (s390_vec_xstw4_u16, MAX, 0, O2_LIT, BT_OV_VOID_UV8HI_LONG_USHORTPTR) /* vst */ OB_DEF_VAR (s390_vec_xstw4_s32, MAX, 0, O2_LIT, BT_OV_VOID_V4SI_LONG_INTPTR) /* vst */ OB_DEF_VAR (s390_vec_xstw4_u32, MAX, 0, O2_LIT, BT_OV_VOID_UV4SI_LONG_UINTPTR) /* vst */ OB_DEF (s390_vec_store_len, s390_vec_store_len_s8,s390_vec_store_len_dbl,B_VX, BT_FN_VOID_OV4SI_VOIDPTR_UINT) OB_DEF_VAR (s390_vec_store_len_s8, s390_vstl, 0, 0, BT_OV_VOID_V16QI_SCHARPTR_UINT) --- 748,761 ---- OB_DEF_VAR (s390_vec_xstd2_u64, MAX, 0, O2_LIT, BT_OV_VOID_UV2DI_LONG_ULONGLONGPTR) /* vst */ OB_DEF_VAR (s390_vec_xstd2_dbl, MAX, 0, O2_LIT, BT_OV_VOID_V2DF_LONG_DBLPTR) /* vst */ ! OB_DEF (s390_vec_xstw4, s390_vec_xstw4_s8, s390_vec_xstw4_flt, B_DEP | B_VX, BT_FN_VOID_OV4SI_INT_VOIDPTR) OB_DEF_VAR (s390_vec_xstw4_s8, MAX, 0, O2_LIT, BT_OV_VOID_V16QI_LONG_SCHARPTR) /* vst */ OB_DEF_VAR (s390_vec_xstw4_u8, MAX, 0, O2_LIT, BT_OV_VOID_UV16QI_LONG_UCHARPTR) /* vst */ OB_DEF_VAR (s390_vec_xstw4_s16, MAX, 0, O2_LIT, BT_OV_VOID_V8HI_LONG_SHORTPTR) /* vst */ OB_DEF_VAR (s390_vec_xstw4_u16, MAX, 0, O2_LIT, BT_OV_VOID_UV8HI_LONG_USHORTPTR) /* vst */ OB_DEF_VAR (s390_vec_xstw4_s32, MAX, 0, O2_LIT, BT_OV_VOID_V4SI_LONG_INTPTR) /* vst */ OB_DEF_VAR (s390_vec_xstw4_u32, MAX, 0, O2_LIT, BT_OV_VOID_UV4SI_LONG_UINTPTR) /* vst */ + OB_DEF_VAR (s390_vec_xstw4_flt, MAX, B_VXE, O2_LIT, BT_OV_VOID_V4SF_LONG_FLTPTR) /* vst */ OB_DEF (s390_vec_store_len, s390_vec_store_len_s8,s390_vec_store_len_dbl,B_VX, BT_FN_VOID_OV4SI_VOIDPTR_UINT) OB_DEF_VAR (s390_vec_store_len_s8, s390_vstl, 0, 0, BT_OV_VOID_V16QI_SCHARPTR_UINT) diff -Nrcpad gcc-8.3.0/gcc/config/s390/s390-c.c gcc-8.4.0/gcc/config/s390/s390-c.c *** gcc-8.3.0/gcc/config/s390/s390-c.c Wed Jan 3 10:03:58 2018 --- gcc-8.4.0/gcc/config/s390/s390-c.c Wed Mar 4 08:30:00 2020 *************** s390_expand_overloaded_builtin (location *** 477,492 **** case S390_OVERLOADED_BUILTIN_s390_vec_xl: case S390_OVERLOADED_BUILTIN_s390_vec_xld2: case S390_OVERLOADED_BUILTIN_s390_vec_xlw4: ! return build2 (MEM_REF, return_type, ! fold_build_pointer_plus ((*arglist)[1], (*arglist)[0]), ! build_int_cst (TREE_TYPE ((*arglist)[1]), 0)); case S390_OVERLOADED_BUILTIN_s390_vec_xst: case S390_OVERLOADED_BUILTIN_s390_vec_xstd2: case S390_OVERLOADED_BUILTIN_s390_vec_xstw4: ! return build2 (MODIFY_EXPR, TREE_TYPE((*arglist)[0]), ! build1 (INDIRECT_REF, TREE_TYPE((*arglist)[0]), ! fold_build_pointer_plus ((*arglist)[2], (*arglist)[1])), ! (*arglist)[0]); case S390_OVERLOADED_BUILTIN_s390_vec_load_pair: return build_constructor_va (return_type, 2, NULL_TREE, (*arglist)[0], --- 477,506 ---- case S390_OVERLOADED_BUILTIN_s390_vec_xl: case S390_OVERLOADED_BUILTIN_s390_vec_xld2: case S390_OVERLOADED_BUILTIN_s390_vec_xlw4: ! { ! /* Build a vector type with the alignment of the source ! location in order to enable correct alignment hints to be ! generated for vl. */ ! tree mem_type = build_aligned_type (return_type, ! TYPE_ALIGN (TREE_TYPE (TREE_TYPE ((*arglist)[1])))); ! return build2 (MEM_REF, mem_type, ! fold_build_pointer_plus ((*arglist)[1], (*arglist)[0]), ! build_int_cst (TREE_TYPE ((*arglist)[1]), 0)); ! } case S390_OVERLOADED_BUILTIN_s390_vec_xst: case S390_OVERLOADED_BUILTIN_s390_vec_xstd2: case S390_OVERLOADED_BUILTIN_s390_vec_xstw4: ! { ! /* Build a vector type with the alignment of the target ! location in order to enable correct alignment hints to be ! generated for vst. */ ! tree mem_type = build_aligned_type (TREE_TYPE((*arglist)[0]), ! TYPE_ALIGN (TREE_TYPE (TREE_TYPE ((*arglist)[2])))); ! return build2 (MODIFY_EXPR, mem_type, ! build1 (INDIRECT_REF, mem_type, ! fold_build_pointer_plus ((*arglist)[2], (*arglist)[1])), ! (*arglist)[0]); ! } case S390_OVERLOADED_BUILTIN_s390_vec_load_pair: return build_constructor_va (return_type, 2, NULL_TREE, (*arglist)[0], diff -Nrcpad gcc-8.3.0/gcc/config/s390/s390.c gcc-8.4.0/gcc/config/s390/s390.c *** gcc-8.3.0/gcc/config/s390/s390.c Fri Oct 19 08:53:39 2018 --- gcc-8.4.0/gcc/config/s390/s390.c Wed Mar 4 08:30:00 2020 *************** s390_expand_builtin (tree exp, rtx targe *** 937,942 **** --- 937,944 ---- continue; } + /* A memory operand is rejected by the memory_operand predicate. + Try making the address legal by copying it into a register. */ if (MEM_P (op[arity]) && insn_op->predicate == memory_operand && (GET_MODE (XEXP (op[arity], 0)) == Pmode *************** s390_expand_builtin (tree exp, rtx targe *** 960,969 **** { op[arity] = tmp_rtx; } ! else if (GET_MODE (op[arity]) == insn_op->mode ! || GET_MODE (op[arity]) == VOIDmode ! || (insn_op->predicate == address_operand ! && GET_MODE (op[arity]) == Pmode)) { /* An address_operand usually has VOIDmode in the expander so we cannot use this. */ --- 962,975 ---- { op[arity] = tmp_rtx; } ! ! /* The predicate rejects the operand although the mode is fine. ! Copy the operand to register. */ ! if (!insn_op->predicate (op[arity], insn_op->mode) ! && (GET_MODE (op[arity]) == insn_op->mode ! || GET_MODE (op[arity]) == VOIDmode ! || (insn_op->predicate == address_operand ! && GET_MODE (op[arity]) == Pmode))) { /* An address_operand usually has VOIDmode in the expander so we cannot use this. */ *************** s390_register_info () *** 10106,10111 **** --- 10112,10132 ---- s390_register_info_stdarg_gpr (); } + /* Return true if REGNO is a global register, but not one + of the special ones that need to be saved/restored in anyway. */ + + static inline bool + global_not_special_regno_p (int regno) + { + return (global_regs[regno] + /* These registers are special and need to be + restored in any case. */ + && !(regno == STACK_POINTER_REGNUM + || regno == RETURN_REGNUM + || regno == BASE_REGNUM + || (flag_pic && regno == (int)PIC_OFFSET_TABLE_REGNUM))); + } + /* This function is called by s390_optimize_prologue in order to get rid of unnecessary GPR save/restore instructions. The register info for the GPRs is re-computed and the ranges are re-calculated. */ *************** s390_optimize_register_info () *** 10121,10128 **** s390_regs_ever_clobbered (clobbered_regs); for (i = 0; i < 32; i++) ! clobbered_regs[i] = clobbered_regs[i] && !global_regs[i]; /* There is still special treatment needed for cases invisible to s390_regs_ever_clobbered. */ --- 10142,10151 ---- s390_regs_ever_clobbered (clobbered_regs); + /* Global registers do not need to be saved and restored unless it + is one of our special regs. (r12, r13, r14, or r15). */ for (i = 0; i < 32; i++) ! clobbered_regs[i] = clobbered_regs[i] && !global_not_special_regno_p (i); /* There is still special treatment needed for cases invisible to s390_regs_ever_clobbered. */ *************** restore_fpr (rtx base, int offset, int r *** 10876,10896 **** return emit_move_insn (gen_rtx_REG (DFmode, regnum), addr); } - /* Return true if REGNO is a global register, but not one - of the special ones that need to be saved/restored in anyway. */ - - static inline bool - global_not_special_regno_p (int regno) - { - return (global_regs[regno] - /* These registers are special and need to be - restored in any case. */ - && !(regno == STACK_POINTER_REGNUM - || regno == RETURN_REGNUM - || regno == BASE_REGNUM - || (flag_pic && regno == (int)PIC_OFFSET_TABLE_REGNUM))); - } - /* Generate insn to save registers FIRST to LAST into the register save area located at offset OFFSET relative to register BASE. */ --- 10899,10904 ---- *************** s390_can_inline_p (tree caller, tree cal *** 16039,16044 **** --- 16047,16053 ---- return ret; } + #endif /* Set VAL to correct enum value according to the indirect-branch or function-return attribute in ATTR. */ *************** s390_indirect_branch_settings (tree fnde *** 16112,16117 **** --- 16121,16127 ---- s390_indirect_branch_attrvalue (attr, &cfun->machine->function_return_mem); } + #if S390_USE_TARGET_ATTRIBUTE /* Restore targets globals from NEW_TREE and invalidate s390_previous_fndecl cache. */ *************** s390_activate_target_options (tree new_t *** 16127,16132 **** --- 16137,16143 ---- TREE_TARGET_GLOBALS (new_tree) = save_target_globals_default_opts (); s390_previous_fndecl = NULL_TREE; } + #endif /* Establish appropriate back-end context for processing the function FNDECL. The argument might be NULL to indicate processing at top *************** s390_activate_target_options (tree new_t *** 16134,16139 **** --- 16145,16151 ---- static void s390_set_current_function (tree fndecl) { + #if S390_USE_TARGET_ATTRIBUTE /* Only change the context if the function changes. This hook is called several times in the course of compiling a function, and we don't want to slow things down too much or call target_reinit when it isn't safe. */ *************** s390_set_current_function (tree fndecl) *** 16165,16174 **** if (old_tree != new_tree) s390_activate_target_options (new_tree); s390_previous_fndecl = fndecl; ! s390_indirect_branch_settings (fndecl); } - #endif /* Implement TARGET_USE_BY_PIECES_INFRASTRUCTURE_P. */ --- 16177,16185 ---- if (old_tree != new_tree) s390_activate_target_options (new_tree); s390_previous_fndecl = fndecl; ! #endif s390_indirect_branch_settings (fndecl); } /* Implement TARGET_USE_BY_PIECES_INFRASTRUCTURE_P. */ *************** s390_case_values_threshold (void) *** 16907,16916 **** #undef TARGET_ASM_FILE_END #define TARGET_ASM_FILE_END s390_asm_file_end - #if S390_USE_TARGET_ATTRIBUTE #undef TARGET_SET_CURRENT_FUNCTION #define TARGET_SET_CURRENT_FUNCTION s390_set_current_function #undef TARGET_OPTION_VALID_ATTRIBUTE_P #define TARGET_OPTION_VALID_ATTRIBUTE_P s390_valid_target_attribute_p --- 16918,16927 ---- #undef TARGET_ASM_FILE_END #define TARGET_ASM_FILE_END s390_asm_file_end #undef TARGET_SET_CURRENT_FUNCTION #define TARGET_SET_CURRENT_FUNCTION s390_set_current_function + #if S390_USE_TARGET_ATTRIBUTE #undef TARGET_OPTION_VALID_ATTRIBUTE_P #define TARGET_OPTION_VALID_ATTRIBUTE_P s390_valid_target_attribute_p diff -Nrcpad gcc-8.3.0/gcc/config/s390/vector.md gcc-8.4.0/gcc/config/s390/vector.md *** gcc-8.3.0/gcc/config/s390/vector.md Wed Jan 3 10:03:58 2018 --- gcc-8.4.0/gcc/config/s390/vector.md Wed Mar 4 08:30:00 2020 *************** *** 289,297 **** ; However, this would probably be slower. (define_insn "mov" ! [(set (match_operand:V_8 0 "nonimmediate_operand" "=v,v,d,v,R, v, v, v, v,d, Q, S, Q, S, d, d,d,d,d,R,T") ! (match_operand:V_8 1 "general_operand" " v,d,v,R,v,j00,jm1,jyy,jxx,d,j00,j00,jm1,jm1,j00,jm1,R,T,b,d,d"))] ! "" "@ vlr\t%v0,%v1 vlvgb\t%v0,%1,0 --- 289,297 ---- ; However, this would probably be slower. (define_insn "mov" ! [(set (match_operand:V_8 0 "nonimmediate_operand" "=v,v,d,v,R, v, v, v, v,d, Q, S, Q, S, d, d,d,R,T") ! (match_operand:V_8 1 "general_operand" " v,d,v,R,v,j00,jm1,jyy,jxx,d,j00,j00,jm1,jm1,j00,jm1,T,d,d"))] ! "TARGET_VX" "@ vlr\t%v0,%v1 vlvgb\t%v0,%1,0 *************** *** 309,320 **** mviy\t%0,-1 lhi\t%0,0 lhi\t%0,-1 ! lh\t%0,%1 ! lhy\t%0,%1 ! lhrl\t%0,%1 stc\t%1,%0 stcy\t%1,%0" ! [(set_attr "op_type" "VRR,VRS,VRS,VRX,VRX,VRI,VRI,VRI,VRI,RR,SI,SIY,SI,SIY,RI,RI,RX,RXY,RIL,RX,RXY")]) (define_insn "mov" [(set (match_operand:V_16 0 "nonimmediate_operand" "=v,v,d,v,R, v, v, v, v,d, Q, Q, d, d,d,d,d,R,T,b") --- 309,318 ---- mviy\t%0,-1 lhi\t%0,0 lhi\t%0,-1 ! llc\t%0,%1 stc\t%1,%0 stcy\t%1,%0" ! [(set_attr "op_type" "VRR,VRS,VRS,VRX,VRX,VRI,VRI,VRI,VRI,RR,SI,SIY,SI,SIY,RI,RI,RXY,RX,RXY")]) (define_insn "mov" [(set (match_operand:V_16 0 "nonimmediate_operand" "=v,v,d,v,R, v, v, v, v,d, Q, Q, d, d,d,d,d,R,T,b") *************** *** 944,950 **** (VEC_SHIFTS:VI (match_operand:VI 1 "register_operand" "v") (match_operand:SI 2 "nonmemory_operand" "an")))] "TARGET_VX" ! "\t%v0,%v1,%Y2" [(set_attr "op_type" "VRS")]) ; Shift each element by corresponding vector element --- 942,948 ---- (VEC_SHIFTS:VI (match_operand:VI 1 "register_operand" "v") (match_operand:SI 2 "nonmemory_operand" "an")))] "TARGET_VX" ! "\t%v0,%v1," [(set_attr "op_type" "VRS")]) ; Shift each element by corresponding vector element diff -Nrcpad gcc-8.3.0/gcc/config/sh/sh.c gcc-8.4.0/gcc/config/sh/sh.c *** gcc-8.3.0/gcc/config/sh/sh.c Mon Feb 19 21:58:04 2018 --- gcc-8.4.0/gcc/config/sh/sh.c Wed Mar 4 08:30:00 2020 *************** got_mode_name:; *** 736,742 **** { if (tokens[i] == "strict") ret.strict = true; ! else if (tokens[i].find ("gbr-offset=") == 0) { std::string offset_str = tokens[i].substr (strlen ("gbr-offset=")); ret.tcb_gbr_offset = integral_argument (offset_str.c_str ()); --- 736,742 ---- { if (tokens[i] == "strict") ret.strict = true; ! else if (!tokens[i].compare (0, strlen ("gbr-offset="), "gbr-offset=")) { std::string offset_str = tokens[i].substr (strlen ("gbr-offset=")); ret.tcb_gbr_offset = integral_argument (offset_str.c_str ()); *************** sh_option_override (void) *** 957,967 **** if (flag_unsafe_math_optimizations) { /* Enable fsca insn for SH4A if not otherwise specified by the user. */ ! if (global_options_set.x_TARGET_FSCA == 0 && TARGET_SH4A_FP) TARGET_FSCA = 1; /* Enable fsrra insn for SH4A if not otherwise specified by the user. */ ! if (global_options_set.x_TARGET_FSRRA == 0 && TARGET_SH4A_FP) TARGET_FSRRA = 1; } --- 957,969 ---- if (flag_unsafe_math_optimizations) { /* Enable fsca insn for SH4A if not otherwise specified by the user. */ ! if (global_options_set.x_TARGET_FSCA == 0 ! && (TARGET_SH4A_FP || TARGET_FPU_SH4_300)) TARGET_FSCA = 1; /* Enable fsrra insn for SH4A if not otherwise specified by the user. */ ! if (global_options_set.x_TARGET_FSRRA == 0 ! && (TARGET_SH4A_FP || TARGET_FPU_SH4_300)) TARGET_FSRRA = 1; } *************** sh_output_mi_thunk (FILE *file, tree thu *** 10875,10886 **** emit_insn (gen_add2_insn (scratch0, GEN_INT (vcall_offset))); offset_addr = scratch0; } - else if (scratch0 != scratch1) - { - emit_move_insn (scratch1, GEN_INT (vcall_offset)); - emit_insn (gen_add2_insn (scratch0, scratch1)); - offset_addr = scratch0; - } else gcc_unreachable (); /* FIXME */ emit_load_ptr (scratch0, offset_addr); --- 10877,10882 ---- *************** sh_extending_set_of_reg::use_as_extended *** 12077,12085 **** rtx r = gen_reg_rtx (SImode); rtx_insn* i0; if (from_mode == QImode) ! i0 = emit_insn_after (gen_extendqisi2 (r, set_src), insn); else if (from_mode == HImode) ! i0 = emit_insn_after (gen_extendhisi2 (r, set_src), insn); else gcc_unreachable (); --- 12073,12083 ---- rtx r = gen_reg_rtx (SImode); rtx_insn* i0; if (from_mode == QImode) ! i0 = sh_check_add_incdec_notes ( ! emit_insn_after (gen_extendqisi2 (r, set_src), insn)); else if (from_mode == HImode) ! i0 = sh_check_add_incdec_notes ( ! emit_insn_after (gen_extendhisi2 (r, set_src), insn)); else gcc_unreachable (); *************** static void *** 12497,12503 **** sh_emit_mode_set (int entity ATTRIBUTE_UNUSED, int mode, int prev_mode, HARD_REG_SET regs_live ATTRIBUTE_UNUSED) { ! if ((TARGET_SH4A_FP || TARGET_SH4_300) && prev_mode != FP_MODE_NONE && prev_mode != mode) { emit_insn (gen_toggle_pr ()); --- 12495,12501 ---- sh_emit_mode_set (int entity ATTRIBUTE_UNUSED, int mode, int prev_mode, HARD_REG_SET regs_live ATTRIBUTE_UNUSED) { ! if ((TARGET_SH4A_FP || TARGET_FPU_SH4_300) && prev_mode != FP_MODE_NONE && prev_mode != mode) { emit_insn (gen_toggle_pr ()); diff -Nrcpad gcc-8.3.0/gcc/config/sh/sh.h gcc-8.4.0/gcc/config/sh/sh.h *** gcc-8.3.0/gcc/config/sh/sh.h Wed Jan 3 21:42:42 2018 --- gcc-8.4.0/gcc/config/sh/sh.h Wed Mar 4 08:30:00 2020 *************** extern int code_for_indirect_jump_scratc *** 69,74 **** --- 69,76 ---- FPU is disabled (which makes it compatible with SH4al-dsp). */ #define TARGET_SH4A_FP (TARGET_SH4A && TARGET_FPU_ANY) + /* True if the FPU is a SH4-300 variant. */ + #define TARGET_FPU_SH4_300 (TARGET_FPU_ANY && TARGET_SH4_300) /* This is not used by the SH2E calling convention */ #define TARGET_VARARGS_PRETEND_ARGS(FUN_DECL) \ diff -Nrcpad gcc-8.3.0/gcc/config/sh/sh.md gcc-8.4.0/gcc/config/sh/sh.md *** gcc-8.3.0/gcc/config/sh/sh.md Wed Jan 3 10:03:58 2018 --- gcc-8.4.0/gcc/config/sh/sh.md Wed Mar 4 08:30:00 2020 *************** *** 9163,9169 **** (xor:SI (reg:SI FPSCR_REG) (const_int FPSCR_PR))) (set (reg:SI FPSCR_MODES_REG) (unspec_volatile:SI [(const_int 0)] UNSPECV_FPSCR_MODES))] ! "TARGET_SH4A_FP" "fpchg" [(set_attr "type" "fpscr_toggle")]) --- 9163,9169 ---- (xor:SI (reg:SI FPSCR_REG) (const_int FPSCR_PR))) (set (reg:SI FPSCR_MODES_REG) (unspec_volatile:SI [(const_int 0)] UNSPECV_FPSCR_MODES))] ! "TARGET_SH4A_FP || TARGET_FPU_SH4_300" "fpchg" [(set_attr "type" "fpscr_toggle")]) *************** *** 9391,9405 **** (define_expand "negsf2" [(set (match_operand:SF 0 "fp_arith_reg_operand") (neg:SF (match_operand:SF 1 "fp_arith_reg_operand")))] ! "TARGET_SH2E") ! (define_insn "*negsf2_i" [(set (match_operand:SF 0 "fp_arith_reg_operand" "=f") (neg:SF (match_operand:SF 1 "fp_arith_reg_operand" "0")))] ! "TARGET_SH2E" "fneg %0" [(set_attr "type" "fmove")]) (define_expand "sqrtsf2" [(set (match_operand:SF 0 "fp_arith_reg_operand" "") (sqrt:SF (match_operand:SF 1 "fp_arith_reg_operand" "")))] --- 9391,9421 ---- (define_expand "negsf2" [(set (match_operand:SF 0 "fp_arith_reg_operand") (neg:SF (match_operand:SF 1 "fp_arith_reg_operand")))] ! "TARGET_FPU_ANY" ! { ! if (TARGET_FPU_SH4_300) ! emit_insn (gen_negsf2_fpscr (operands[0], operands[1])); ! else ! emit_insn (gen_negsf2_no_fpscr (operands[0], operands[1])); ! DONE; ! }) ! (define_insn "negsf2_no_fpscr" [(set (match_operand:SF 0 "fp_arith_reg_operand" "=f") (neg:SF (match_operand:SF 1 "fp_arith_reg_operand" "0")))] ! "TARGET_FPU_ANY && !TARGET_FPU_SH4_300" "fneg %0" [(set_attr "type" "fmove")]) + (define_insn "negsf2_fpscr" + [(set (match_operand:SF 0 "fp_arith_reg_operand" "=f") + (neg:SF (match_operand:SF 1 "fp_arith_reg_operand" "0"))) + (use (reg:SI FPSCR_MODES_REG))] + "TARGET_FPU_SH4_300" + "fneg %0" + [(set_attr "type" "fmove") + (set_attr "fp_mode" "single")]) + (define_expand "sqrtsf2" [(set (match_operand:SF 0 "fp_arith_reg_operand" "") (sqrt:SF (match_operand:SF 1 "fp_arith_reg_operand" "")))] *************** *** 9489,9503 **** (define_expand "abssf2" [(set (match_operand:SF 0 "fp_arith_reg_operand") (abs:SF (match_operand:SF 1 "fp_arith_reg_operand")))] ! "TARGET_SH2E") ! (define_insn "*abssf2_i" [(set (match_operand:SF 0 "fp_arith_reg_operand" "=f") (abs:SF (match_operand:SF 1 "fp_arith_reg_operand" "0")))] ! "TARGET_SH2E" "fabs %0" [(set_attr "type" "fmove")]) (define_expand "adddf3" [(set (match_operand:DF 0 "fp_arith_reg_operand" "") (plus:DF (match_operand:DF 1 "fp_arith_reg_operand" "") --- 9505,9535 ---- (define_expand "abssf2" [(set (match_operand:SF 0 "fp_arith_reg_operand") (abs:SF (match_operand:SF 1 "fp_arith_reg_operand")))] ! "TARGET_FPU_ANY" ! { ! if (TARGET_FPU_SH4_300) ! emit_insn (gen_abssf2_fpscr (operands[0], operands[1])); ! else ! emit_insn (gen_abssf2_no_fpscr (operands[0], operands[1])); ! DONE; ! }) ! (define_insn "abssf2_no_fpscr" [(set (match_operand:SF 0 "fp_arith_reg_operand" "=f") (abs:SF (match_operand:SF 1 "fp_arith_reg_operand" "0")))] ! "TARGET_FPU_ANY && !TARGET_FPU_SH4_300" "fabs %0" [(set_attr "type" "fmove")]) + (define_insn "abssf2_fpscr" + [(set (match_operand:SF 0 "fp_arith_reg_operand" "=f") + (abs:SF (match_operand:SF 1 "fp_arith_reg_operand" "0"))) + (use (reg:SI FPSCR_MODES_REG))] + "TARGET_FPU_SH4_300" + "fabs %0" + [(set_attr "type" "fmove") + (set_attr "fp_mode" "single")]) + (define_expand "adddf3" [(set (match_operand:DF 0 "fp_arith_reg_operand" "") (plus:DF (match_operand:DF 1 "fp_arith_reg_operand" "") *************** *** 9673,9684 **** (define_expand "negdf2" [(set (match_operand:DF 0 "fp_arith_reg_operand") (neg:DF (match_operand:DF 1 "fp_arith_reg_operand")))] ! "TARGET_FPU_DOUBLE") ! (define_insn "*negdf2_i" [(set (match_operand:DF 0 "fp_arith_reg_operand" "=f") (neg:DF (match_operand:DF 1 "fp_arith_reg_operand" "0")))] ! "TARGET_FPU_DOUBLE" "fneg %0" [(set_attr "type" "fmove")]) --- 9705,9732 ---- (define_expand "negdf2" [(set (match_operand:DF 0 "fp_arith_reg_operand") (neg:DF (match_operand:DF 1 "fp_arith_reg_operand")))] ! "TARGET_FPU_DOUBLE" ! { ! if (TARGET_FPU_SH4_300) ! emit_insn (gen_negdf2_fpscr (operands[0], operands[1])); ! else ! emit_insn (gen_negdf2_no_fpscr (operands[0], operands[1])); ! DONE; ! }) ! (define_insn "negdf2_fpscr" ! [(set (match_operand:DF 0 "fp_arith_reg_operand" "=f") ! (neg:DF (match_operand:DF 1 "fp_arith_reg_operand" "0"))) ! (use (reg:SI FPSCR_MODES_REG))] ! "TARGET_FPU_SH4_300" ! "fneg %0" ! [(set_attr "type" "fmove") ! (set_attr "fp_mode" "double")]) ! ! (define_insn "negdf2_no_fpscr" [(set (match_operand:DF 0 "fp_arith_reg_operand" "=f") (neg:DF (match_operand:DF 1 "fp_arith_reg_operand" "0")))] ! "TARGET_FPU_DOUBLE && !TARGET_FPU_SH4_300" "fneg %0" [(set_attr "type" "fmove")]) *************** *** 9704,9718 **** (define_expand "absdf2" [(set (match_operand:DF 0 "fp_arith_reg_operand") (abs:DF (match_operand:DF 1 "fp_arith_reg_operand")))] ! "TARGET_FPU_DOUBLE") ! (define_insn "*absdf2_i" [(set (match_operand:DF 0 "fp_arith_reg_operand" "=f") (abs:DF (match_operand:DF 1 "fp_arith_reg_operand" "0")))] ! "TARGET_FPU_DOUBLE" "fabs %0" [(set_attr "type" "fmove")]) (define_expand "extendsfdf2" [(set (match_operand:DF 0 "fp_arith_reg_operand" "") (float_extend:DF (match_operand:SF 1 "fpul_operand" "")))] --- 9752,9782 ---- (define_expand "absdf2" [(set (match_operand:DF 0 "fp_arith_reg_operand") (abs:DF (match_operand:DF 1 "fp_arith_reg_operand")))] ! "TARGET_FPU_DOUBLE" ! { ! if (TARGET_FPU_SH4_300) ! emit_insn (gen_absdf2_fpscr (operands[0], operands[1])); ! else ! emit_insn (gen_absdf2_no_fpscr (operands[0], operands[1])); ! DONE; ! }) ! (define_insn "absdf2_no_fpscr" [(set (match_operand:DF 0 "fp_arith_reg_operand" "=f") (abs:DF (match_operand:DF 1 "fp_arith_reg_operand" "0")))] ! "TARGET_FPU_DOUBLE && !TARGET_FPU_SH4_300" "fabs %0" [(set_attr "type" "fmove")]) + (define_insn "absdf2_fpscr" + [(set (match_operand:DF 0 "fp_arith_reg_operand" "=f") + (abs:DF (match_operand:DF 1 "fp_arith_reg_operand" "0"))) + (use (reg:SI FPSCR_MODES_REG))] + "TARGET_FPU_SH4_300" + "fabs %0" + [(set_attr "type" "fmove") + (set_attr "fp_mode" "double")]) + (define_expand "extendsfdf2" [(set (match_operand:DF 0 "fp_arith_reg_operand" "") (float_extend:DF (match_operand:SF 1 "fpul_operand" "")))] diff -Nrcpad gcc-8.3.0/gcc/config/sparc/sparc-protos.h gcc-8.4.0/gcc/config/sparc/sparc-protos.h *** gcc-8.3.0/gcc/config/sparc/sparc-protos.h Wed Jan 3 10:03:58 2018 --- gcc-8.4.0/gcc/config/sparc/sparc-protos.h Wed Mar 4 08:30:00 2020 *************** extern void sparc_split_reg_mem (rtx, rt *** 69,74 **** --- 69,75 ---- extern void sparc_split_mem_reg (rtx, rtx, machine_mode); extern int sparc_split_reg_reg_legitimate (rtx, rtx); extern void sparc_split_reg_reg (rtx, rtx, machine_mode); + extern const char *output_load_pcrel_sym (rtx *); extern const char *output_ubranch (rtx, rtx_insn *); extern const char *output_cbranch (rtx, rtx, int, int, int, rtx_insn *); extern const char *output_return (rtx_insn *); diff -Nrcpad gcc-8.3.0/gcc/config/sparc/sparc.c gcc-8.4.0/gcc/config/sparc/sparc.c *** gcc-8.3.0/gcc/config/sparc/sparc.c Mon Feb 4 11:14:05 2019 --- gcc-8.4.0/gcc/config/sparc/sparc.c Wed Mar 4 08:30:00 2020 *************** eligible_for_call_delay (rtx_insn *trial *** 3967,3977 **** if (get_attr_in_branch_delay (trial) == IN_BRANCH_DELAY_FALSE) return 0; ! /* Binutils allows ! call __tls_get_addr, %tgd_call (foo) ! add %l7, %o0, %o0, %tgd_add (foo) ! while Sun as/ld does not. */ ! if (TARGET_GNU_TLS || !TARGET_TLS) return 1; pat = PATTERN (trial); --- 3967,3974 ---- if (get_attr_in_branch_delay (trial) == IN_BRANCH_DELAY_FALSE) return 0; ! /* The only problematic cases are TLS sequences with Sun as/ld. */ ! if ((TARGET_GNU_TLS && HAVE_GNU_LD) || !TARGET_TLS) return 1; pat = PATTERN (trial); *************** sparc_cannot_force_const_mem (machine_mo *** 4238,4246 **** } /* Global Offset Table support. */ - static GTY(()) rtx got_helper_rtx = NULL_RTX; - static GTY(()) rtx got_register_rtx = NULL_RTX; static GTY(()) rtx got_symbol_rtx = NULL_RTX; /* Return the SYMBOL_REF for the Global Offset Table. */ --- 4235,4245 ---- } /* Global Offset Table support. */ static GTY(()) rtx got_symbol_rtx = NULL_RTX; + static GTY(()) rtx got_register_rtx = NULL_RTX; + static GTY(()) rtx got_helper_rtx = NULL_RTX; + + static GTY(()) bool got_helper_needed = false; /* Return the SYMBOL_REF for the Global Offset Table. */ *************** sparc_got (void) *** 4253,4279 **** return got_symbol_rtx; } - #ifdef HAVE_GAS_HIDDEN - # define USE_HIDDEN_LINKONCE 1 - #else - # define USE_HIDDEN_LINKONCE 0 - #endif - - static void - get_pc_thunk_name (char name[32], unsigned int regno) - { - const char *reg_name = reg_names[regno]; - - /* Skip the leading '%' as that cannot be used in a - symbol name. */ - reg_name += 1; - - if (USE_HIDDEN_LINKONCE) - sprintf (name, "__sparc_get_pc_thunk.%s", reg_name); - else - ASM_GENERATE_INTERNAL_LABEL (name, "LADDPC", regno); - } - /* Wrapper around the load_pcrel_sym{si,di} patterns. */ static rtx --- 4252,4257 ---- *************** gen_load_pcrel_sym (rtx op0, rtx op1, rt *** 4293,4322 **** return insn; } /* Emit code to load the GOT register. */ void load_got_register (void) { ! if (!got_register_rtx) ! got_register_rtx = gen_rtx_REG (Pmode, GLOBAL_OFFSET_TABLE_REGNUM); if (TARGET_VXWORKS_RTP) ! emit_insn (gen_vxworks_load_got ()); else { /* The GOT symbol is subject to a PC-relative relocation so we need a helper function to add the PC value and thus get the final value. */ if (!got_helper_rtx) { char name[32]; ! get_pc_thunk_name (name, GLOBAL_OFFSET_TABLE_REGNUM); got_helper_rtx = gen_rtx_SYMBOL_REF (Pmode, ggc_strdup (name)); } ! emit_insn (gen_load_pcrel_sym (got_register_rtx, sparc_got (), ! got_helper_rtx)); } } /* Ensure that we are not using patterns that are not OK with PIC. */ --- 4271,4348 ---- return insn; } + /* Output the load_pcrel_sym{si,di} patterns. */ + + const char * + output_load_pcrel_sym (rtx *operands) + { + if (flag_delayed_branch) + { + output_asm_insn ("sethi\t%%hi(%a1-4), %0", operands); + output_asm_insn ("call\t%a2", operands); + output_asm_insn (" add\t%0, %%lo(%a1+4), %0", operands); + } + else + { + output_asm_insn ("sethi\t%%hi(%a1-8), %0", operands); + output_asm_insn ("add\t%0, %%lo(%a1-4), %0", operands); + output_asm_insn ("call\t%a2", operands); + output_asm_insn (" nop", NULL); + } + + if (operands[2] == got_helper_rtx) + got_helper_needed = true; + + return ""; + } + + #ifdef HAVE_GAS_HIDDEN + # define USE_HIDDEN_LINKONCE 1 + #else + # define USE_HIDDEN_LINKONCE 0 + #endif + /* Emit code to load the GOT register. */ void load_got_register (void) { ! rtx insn; if (TARGET_VXWORKS_RTP) ! { ! if (!got_register_rtx) ! got_register_rtx = pic_offset_table_rtx; ! ! insn = gen_vxworks_load_got (); ! } else { + if (!got_register_rtx) + got_register_rtx = gen_rtx_REG (Pmode, GLOBAL_OFFSET_TABLE_REGNUM); + /* The GOT symbol is subject to a PC-relative relocation so we need a helper function to add the PC value and thus get the final value. */ if (!got_helper_rtx) { char name[32]; ! ! /* Skip the leading '%' as that cannot be used in a symbol name. */ ! if (USE_HIDDEN_LINKONCE) ! sprintf (name, "__sparc_get_pc_thunk.%s", ! reg_names[REGNO (got_register_rtx)] + 1); ! else ! ASM_GENERATE_INTERNAL_LABEL (name, "LADDPC", ! REGNO (got_register_rtx)); ! got_helper_rtx = gen_rtx_SYMBOL_REF (Pmode, ggc_strdup (name)); } ! insn ! = gen_load_pcrel_sym (got_register_rtx, sparc_got (), got_helper_rtx); } + + emit_insn (insn); } /* Ensure that we are not using patterns that are not OK with PIC. */ *************** sparc_pic_register_p (rtx x) *** 4452,4458 **** return true; if (!HARD_REGISTER_P (pic_offset_table_rtx) ! && (HARD_REGISTER_P (x) || lra_in_progress) && ORIGINAL_REGNO (x) == REGNO (pic_offset_table_rtx)) return true; --- 4478,4484 ---- return true; if (!HARD_REGISTER_P (pic_offset_table_rtx) ! && (HARD_REGISTER_P (x) || lra_in_progress || reload_in_progress) && ORIGINAL_REGNO (x) == REGNO (pic_offset_table_rtx)) return true; *************** save_local_or_in_reg_p (unsigned int reg *** 5468,5474 **** return true; /* GOT register (%l7) if needed. */ ! if (regno == GLOBAL_OFFSET_TABLE_REGNUM && got_register_rtx) return true; /* If the function accesses prior frames, the frame pointer and the return --- 5494,5500 ---- return true; /* GOT register (%l7) if needed. */ ! if (got_register_rtx && regno == REGNO (got_register_rtx)) return true; /* If the function accesses prior frames, the frame pointer and the return *************** static void *** 12449,12458 **** sparc_file_end (void) { /* If we need to emit the special GOT helper function, do so now. */ ! if (got_helper_rtx) { const char *name = XSTR (got_helper_rtx, 0); - const char *reg_name = reg_names[GLOBAL_OFFSET_TABLE_REGNUM]; #ifdef DWARF2_UNWIND_INFO bool do_cfi; #endif --- 12475,12483 ---- sparc_file_end (void) { /* If we need to emit the special GOT helper function, do so now. */ ! if (got_helper_needed) { const char *name = XSTR (got_helper_rtx, 0); #ifdef DWARF2_UNWIND_INFO bool do_cfi; #endif *************** sparc_file_end (void) *** 12489,12505 **** #ifdef DWARF2_UNWIND_INFO do_cfi = dwarf2out_do_cfi_asm (); if (do_cfi) ! fprintf (asm_out_file, "\t.cfi_startproc\n"); #endif if (flag_delayed_branch) ! fprintf (asm_out_file, "\tjmp\t%%o7+8\n\t add\t%%o7, %s, %s\n", ! reg_name, reg_name); else ! fprintf (asm_out_file, "\tadd\t%%o7, %s, %s\n\tjmp\t%%o7+8\n\t nop\n", ! reg_name, reg_name); #ifdef DWARF2_UNWIND_INFO if (do_cfi) ! fprintf (asm_out_file, "\t.cfi_endproc\n"); #endif } --- 12514,12535 ---- #ifdef DWARF2_UNWIND_INFO do_cfi = dwarf2out_do_cfi_asm (); if (do_cfi) ! output_asm_insn (".cfi_startproc", NULL); #endif if (flag_delayed_branch) ! { ! output_asm_insn ("jmp\t%%o7+8", NULL); ! output_asm_insn (" add\t%%o7, %0, %0", &got_register_rtx); ! } else ! { ! output_asm_insn ("add\t%%o7, %0, %0", &got_register_rtx); ! output_asm_insn ("jmp\t%%o7+8", NULL); ! output_asm_insn (" nop", NULL); ! } #ifdef DWARF2_UNWIND_INFO if (do_cfi) ! output_asm_insn (".cfi_endproc", NULL); #endif } *************** sparc_init_pic_reg (void) *** 13005,13011 **** edge entry_edge; rtx_insn *seq; ! if (!crtl->uses_pic_offset_table) return; start_sequence (); --- 13035,13044 ---- edge entry_edge; rtx_insn *seq; ! /* In PIC mode, we need to always initialize the PIC register if optimization ! is enabled, because we are called from IRA and LRA may later force things ! to the constant pool for optimization purposes. */ ! if (!flag_pic || (!crtl->uses_pic_offset_table && !optimize)) return; start_sequence (); diff -Nrcpad gcc-8.3.0/gcc/config/sparc/sparc.h gcc-8.4.0/gcc/config/sparc/sparc.h *** gcc-8.3.0/gcc/config/sparc/sparc.h Mon Feb 4 11:14:05 2019 --- gcc-8.4.0/gcc/config/sparc/sparc.h Wed Mar 4 08:30:00 2020 *************** extern enum cmodel sparc_cmodel; *** 748,753 **** --- 748,760 ---- register window instruction in the prologue. */ #define HARD_REGNO_RENAME_OK(FROM, TO) ((FROM) != 1) + /* Select a register mode required for caller save of hard regno REGNO. + Contrary to what is documented, the default is not the smallest suitable + mode but the largest suitable mode for the given (REGNO, NREGS) pair and + it quickly creates paradoxical subregs that can be problematic. */ + #define HARD_REGNO_CALLER_SAVE_MODE(REGNO, NREGS, MODE) \ + ((MODE) == VOIDmode ? choose_hard_reg_mode (REGNO, NREGS, false) : (MODE)) + /* Specify the registers used for certain standard purposes. The values of these macros are register numbers. */ diff -Nrcpad gcc-8.3.0/gcc/config/sparc/sparc.md gcc-8.4.0/gcc/config/sparc/sparc.md *** gcc-8.3.0/gcc/config/sparc/sparc.md Wed Jan 9 14:48:45 2019 --- gcc-8.4.0/gcc/config/sparc/sparc.md Wed Mar 4 08:30:00 2020 *************** *** 1601,1610 **** (clobber (reg:P O7_REG))] "REGNO (operands[0]) == INTVAL (operands[3])" { ! if (flag_delayed_branch) ! return "sethi\t%%hi(%a1-4), %0\n\tcall\t%a2\n\t add\t%0, %%lo(%a1+4), %0"; ! else ! return "sethi\t%%hi(%a1-8), %0\n\tadd\t%0, %%lo(%a1-4), %0\n\tcall\t%a2\n\t nop"; } [(set (attr "type") (const_string "multi")) (set (attr "length") --- 1601,1607 ---- (clobber (reg:P O7_REG))] "REGNO (operands[0]) == INTVAL (operands[3])" { ! return output_load_pcrel_sym (operands); } [(set (attr "type") (const_string "multi")) (set (attr "length") diff -Nrcpad gcc-8.3.0/gcc/config/xtensa/xtensa.c gcc-8.4.0/gcc/config/xtensa/xtensa.c *** gcc-8.3.0/gcc/config/xtensa/xtensa.c Tue Sep 4 17:53:22 2018 --- gcc-8.4.0/gcc/config/xtensa/xtensa.c Wed Mar 4 08:30:00 2020 *************** xtensa_expand_prologue (void) *** 2862,2868 **** gen_rtx_SET (mem, reg)); } } ! if (total_size > 1024) { rtx tmp_reg = gen_rtx_REG (Pmode, A9_REG); emit_move_insn (tmp_reg, GEN_INT (total_size - --- 2862,2869 ---- gen_rtx_SET (mem, reg)); } } ! if (total_size > 1024 ! || (!callee_save_size && total_size > 128)) { rtx tmp_reg = gen_rtx_REG (Pmode, A9_REG); emit_move_insn (tmp_reg, GEN_INT (total_size - diff -Nrcpad gcc-8.3.0/gcc/config.gcc gcc-8.4.0/gcc/config.gcc *** gcc-8.3.0/gcc/config.gcc Tue Jan 29 15:31:10 2019 --- gcc-8.4.0/gcc/config.gcc Wed Mar 4 08:30:00 2020 *************** x86_cpus="generic intel" *** 647,653 **** # Common parts for widely ported systems. case ${target} in *-*-darwin*) ! tmake_file="t-darwin ${cpu_type}/t-darwin" tm_file="${tm_file} darwin.h" case ${target} in *-*-darwin9*) --- 647,653 ---- # Common parts for widely ported systems. case ${target} in *-*-darwin*) ! tmake_file="t-darwin " tm_file="${tm_file} darwin.h" case ${target} in *-*-darwin9*) *************** hppa[12]*-*-hpux11*) *** 1479,1494 **** dwarf2=no fi ;; i[34567]86-*-darwin*) need_64bit_isa=yes # Baseline choice for a machine that allows m64 support. with_cpu=${with_cpu:-core2} tmake_file="${tmake_file} t-slibgcc" ;; x86_64-*-darwin*) with_cpu=${with_cpu:-core2} ! tmake_file="${tmake_file} ${cpu_type}/t-darwin64 t-slibgcc" ! tm_file="${tm_file} ${cpu_type}/darwin64.h" ;; i[34567]86-*-elfiamcu) tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/iamcu.h" --- 1479,1503 ---- dwarf2=no fi ;; + i[34567]86-*-darwin1[89]*) + echo "Error: 32bit target is not supported after Darwin17" 1>&2 + ;; i[34567]86-*-darwin*) need_64bit_isa=yes # Baseline choice for a machine that allows m64 support. with_cpu=${with_cpu:-core2} + 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" ;; x86_64-*-darwin*) with_cpu=${with_cpu:-core2} ! tmake_file="${tmake_file} ${cpu_type}/t-darwin64-biarch t-slibgcc" ! tm_file="${tm_file} ${cpu_type}/darwin64-biarch.h" ;; i[34567]86-*-elfiamcu) tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/iamcu.h" *************** pdp11-*-*) *** 2386,2401 **** # extra_headers= # ;; powerpc-*-darwin*) ! extra_options="${extra_options} rs6000/darwin.opt" case ${target} in ! *-darwin1[0-9]* | *-darwin[8-9]*) ! tmake_file="${tmake_file} rs6000/t-darwin8" ! tm_file="${tm_file} rs6000/darwin8.h" ;; *-darwin7*) ! tm_file="${tm_file} rs6000/darwin7.h" ;; ! *-darwin[0-6]*) ;; esac tmake_file="${tmake_file} t-slibgcc" --- 2395,2417 ---- # extra_headers= # ;; powerpc-*-darwin*) ! extra_options="${extra_options} ${cpu_type}/darwin.opt" case ${target} in ! *-darwin1[0-9]* | *-darwin9*) ! tmake_file="${tmake_file} ${cpu_type}/t-darwin32-biarch" ! tm_file="${tm_file} ${cpu_type}/darwin32-biarch.h" ! ;; ! *-darwin8*) ! tmake_file="${tmake_file} ${cpu_type}/t-darwin32-biarch" ! tm_file="${tm_file} ${cpu_type}/darwin32-biarch.h" ! tm_file="${tm_file} ${cpu_type}/darwin8.h" ;; *-darwin7*) ! tm_file="${tm_file} ${cpu_type}/darwin7.h" ;; ! *-darwin[456]*) ! # Earlier - ingle arch, with 32b only ! # OS X 10.0, the first edition is Darwin4 ;; esac tmake_file="${tmake_file} t-slibgcc" *************** powerpc-*-darwin*) *** 2403,2410 **** ;; powerpc64-*-darwin*) extra_options="${extra_options} ${cpu_type}/darwin.opt" ! tmake_file="${tmake_file} ${cpu_type}/t-darwin64 t-slibgcc" ! tm_file="${tm_file} ${cpu_type}/darwin8.h ${cpu_type}/darwin64.h" extra_headers=altivec.h ;; powerpc*-*-freebsd*) --- 2419,2426 ---- ;; powerpc64-*-darwin*) extra_options="${extra_options} ${cpu_type}/darwin.opt" ! tmake_file="${tmake_file} ${cpu_type}/t-darwin64-biarch t-slibgcc" ! tm_file="${tm_file} ${cpu_type}/darwin64-biarch.h" extra_headers=altivec.h ;; powerpc*-*-freebsd*) *************** case "${target}" in *** 4447,4460 **** echo "#undef LINK_OS_EXTRA_SPEC32" echo "#define LINK_OS_EXTRA_SPEC32" \ "\"%(link_os_new_dtags)" \ ! "-rpath $prefix/lib -rpath $at/lib" \ ! "-L $prefix/lib -L $at/lib\"" echo echo "#undef LINK_OS_EXTRA_SPEC64" echo "#define LINK_OS_EXTRA_SPEC64" \ "\"%(link_os_new_dtags)" \ ! "-rpath $prefix/lib64 -rpath $at/lib64" \ ! "-L $prefix/lib64 -L $at/lib64\"" echo echo "#undef LINK_OS_NEW_DTAGS_SPEC" echo "#define LINK_OS_NEW_DTAGS_SPEC" \ --- 4463,4474 ---- echo "#undef LINK_OS_EXTRA_SPEC32" echo "#define LINK_OS_EXTRA_SPEC32" \ "\"%(link_os_new_dtags)" \ ! "-rpath $prefix/lib -rpath $at/lib\"" echo echo "#undef LINK_OS_EXTRA_SPEC64" echo "#define LINK_OS_EXTRA_SPEC64" \ "\"%(link_os_new_dtags)" \ ! "-rpath $prefix/lib64 -rpath $at/lib64\"" echo echo "#undef LINK_OS_NEW_DTAGS_SPEC" echo "#define LINK_OS_NEW_DTAGS_SPEC" \ *************** case "${target}" in *** 4467,4473 **** echo "#define MD_EXEC_PREFIX \"$at/bin/\"" echo echo "#undef MD_STARTFILE_PREFIX" ! echo "#define MD_STARTFILE_PREFIX \"$at/lib/\"") \ > advance-toolchain.h else echo "Unknown advance-toolchain $with_advance_toolchain" --- 4481,4490 ---- echo "#define MD_EXEC_PREFIX \"$at/bin/\"" echo echo "#undef MD_STARTFILE_PREFIX" ! echo "#define MD_STARTFILE_PREFIX \"$prefix/lib/\"" ! echo ! echo "#undef MD_STARTFILE_PREFIX_1" ! echo "#define MD_STARTFILE_PREFIX_1 \"$at/lib/\"") \ > advance-toolchain.h else echo "Unknown advance-toolchain $with_advance_toolchain" *************** case ${target} in *** 4676,4682 **** ;; i[34567]86-*-dragonfly* | x86_64-*-dragonfly*) ;; ! i[34567]86-*-freebsd* | x86_64-*-freebsd*) ;; ia64*-*-linux*) ;; --- 4693,4702 ---- ;; i[34567]86-*-dragonfly* | x86_64-*-dragonfly*) ;; ! i[34567]86-*-freebsd*) ! ;; ! x86_64-*-freebsd*) ! tmake_file="${tmake_file} i386/t-freebsd64" ;; ia64*-*-linux*) ;; diff -Nrcpad gcc-8.3.0/gcc/configure gcc-8.4.0/gcc/configure *** gcc-8.3.0/gcc/configure Wed Apr 18 09:46:58 2018 --- gcc-8.4.0/gcc/configure Wed Mar 4 08:32:12 2020 *************** build_exeext *** 666,671 **** --- 666,672 ---- all_selected_languages all_languages all_lang_makefrags + all_lang_configurefrags all_gtfiles all_compilers srcdir *************** else *** 18448,18454 **** lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF ! #line 18451 "configure" #include "confdefs.h" #if HAVE_DLFCN_H --- 18449,18455 ---- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF ! #line 18452 "configure" #include "confdefs.h" #if HAVE_DLFCN_H *************** else *** 18554,18560 **** lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF ! #line 18557 "configure" #include "confdefs.h" #if HAVE_DLFCN_H --- 18555,18561 ---- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF ! #line 18558 "configure" #include "confdefs.h" #if HAVE_DLFCN_H *************** if test $in_tree_ld != yes ; then *** 22784,22790 **** ld_vers=`echo $ld_ver | sed -n \ -e 's,^.*[ ]\([0-9][0-9]*\.[0-9][0-9]*.*\)$,\1,p'` fi ! ld_date=`echo $ld_ver | sed -n 's,^.*\([2-9][0-9][0-9][0-9]\)[-]*\([01][0-9]\)[-]*\([0-3][0-9]\).*$,\1\2\3,p'` ld_vers_major=`expr "$ld_vers" : '\([0-9]*\)'` ld_vers_minor=`expr "$ld_vers" : '[0-9]*\.\([0-9]*\)'` ld_vers_patch=`expr "$ld_vers" : '[0-9]*\.[0-9]*\.\([0-9]*\)'` --- 22785,22791 ---- ld_vers=`echo $ld_ver | sed -n \ -e 's,^.*[ ]\([0-9][0-9]*\.[0-9][0-9]*.*\)$,\1,p'` fi ! ld_date=`echo $ld_ver | sed -n 's,^.*\([2-9][0-9][0-9][0-9]\)\(-*\)\([01][0-9]\)\2\([0-3][0-9]\).*$,\1\3\4,p'` ld_vers_major=`expr "$ld_vers" : '\([0-9]*\)'` ld_vers_minor=`expr "$ld_vers" : '[0-9]*\.\([0-9]*\)'` ld_vers_patch=`expr "$ld_vers" : '[0-9]*\.[0-9]*\.\([0-9]*\)'` *************** if test $in_tree_ld != yes ; then *** 22799,22815 **** # # ld: Software Generation Utilities - Solaris Link Editors: 5.11-1.1701:onnv-ab196087-6931056-03/25/10 # - # In Solaris 11.4, this was changed to - # - # ld: Solaris ELF Utilities: 11.4-1.3123 - # # ld and ld.so.1 are guaranteed to be updated in lockstep, so ld version # numbers can be used in ld.so.1 feature checks even if a different # linker is configured. ld_ver=`$gcc_cv_ld -V 2>&1` ! if echo "$ld_ver" | $EGREP 'Solaris Link Editors|Solaris ELF Utilities' > /dev/null; then ld_vers=`echo $ld_ver | sed -n \ ! -e 's,^.*: \(5\|1[0-9]\)\.[0-9][0-9]*-\([0-9]\.[0-9][0-9]*\).*$,\2,p'` ld_vers_major=`expr "$ld_vers" : '\([0-9]*\)'` ld_vers_minor=`expr "$ld_vers" : '[0-9]*\.\([0-9]*\)'` fi --- 22800,22812 ---- # # ld: Software Generation Utilities - Solaris Link Editors: 5.11-1.1701:onnv-ab196087-6931056-03/25/10 # # ld and ld.so.1 are guaranteed to be updated in lockstep, so ld version # numbers can be used in ld.so.1 feature checks even if a different # linker is configured. ld_ver=`$gcc_cv_ld -V 2>&1` ! if echo "$ld_ver" | grep 'Solaris Link Editors' > /dev/null; then ld_vers=`echo $ld_ver | sed -n \ ! -e 's,^.*: 5\.[0-9][0-9]*-\([0-9]\.[0-9][0-9]*\).*$,\1,p'` ld_vers_major=`expr "$ld_vers" : '\([0-9]*\)'` ld_vers_minor=`expr "$ld_vers" : '[0-9]*\.\([0-9]*\)'` fi *************** lang_tree_files= *** 29516,29522 **** all_languages= all_compilers= all_outputs='Makefile' ! # List of language makefile fragments. all_lang_makefrags= # Additional files for gengtype all_gtfiles="$target_gtfiles" --- 29513,29520 ---- all_languages= all_compilers= all_outputs='Makefile' ! # List of language configure and makefile fragments. ! all_lang_configurefrags= all_lang_makefrags= # Additional files for gengtype all_gtfiles="$target_gtfiles" *************** do *** 29602,29607 **** --- 29600,29606 ---- esac $ok || continue + all_lang_configurefrags="$all_lang_configurefrags \$(srcdir)/$gcc_subdir/config-lang.in" all_lang_makefrags="$all_lang_makefrags \$(srcdir)/$gcc_subdir/Make-lang.in" if test -f $srcdir/$gcc_subdir/lang.opt; then lang_opt_files="$lang_opt_files $srcdir/$gcc_subdir/lang.opt" *************** fi *** 29705,29710 **** --- 29704,29710 ---- + diff -Nrcpad gcc-8.3.0/gcc/configure.ac gcc-8.4.0/gcc/configure.ac *** gcc-8.3.0/gcc/configure.ac Wed Apr 18 09:46:58 2018 --- gcc-8.4.0/gcc/configure.ac Wed Mar 4 08:30:00 2020 *************** if test $in_tree_ld != yes ; then *** 2580,2586 **** ld_vers=`echo $ld_ver | sed -n \ -e 's,^.*[ ]\([0-9][0-9]*\.[0-9][0-9]*.*\)$,\1,p'` fi ! ld_date=`echo $ld_ver | sed -n 's,^.*\([2-9][0-9][0-9][0-9]\)[-]*\([01][0-9]\)[-]*\([0-3][0-9]\).*$,\1\2\3,p'` ld_vers_major=`expr "$ld_vers" : '\([0-9]*\)'` ld_vers_minor=`expr "$ld_vers" : '[0-9]*\.\([0-9]*\)'` ld_vers_patch=`expr "$ld_vers" : '[0-9]*\.[0-9]*\.\([0-9]*\)'` --- 2580,2586 ---- ld_vers=`echo $ld_ver | sed -n \ -e 's,^.*[ ]\([0-9][0-9]*\.[0-9][0-9]*.*\)$,\1,p'` fi ! ld_date=`echo $ld_ver | sed -n 's,^.*\([2-9][0-9][0-9][0-9]\)\(-*\)\([01][0-9]\)\2\([0-3][0-9]\).*$,\1\3\4,p'` ld_vers_major=`expr "$ld_vers" : '\([0-9]*\)'` ld_vers_minor=`expr "$ld_vers" : '[0-9]*\.\([0-9]*\)'` ld_vers_patch=`expr "$ld_vers" : '[0-9]*\.[0-9]*\.\([0-9]*\)'` *************** if test $in_tree_ld != yes ; then *** 2595,2611 **** # # ld: Software Generation Utilities - Solaris Link Editors: 5.11-1.1701:onnv-ab196087-6931056-03/25/10 # - # In Solaris 11.4, this was changed to - # - # ld: Solaris ELF Utilities: 11.4-1.3123 - # # ld and ld.so.1 are guaranteed to be updated in lockstep, so ld version # numbers can be used in ld.so.1 feature checks even if a different # linker is configured. ld_ver=`$gcc_cv_ld -V 2>&1` ! if echo "$ld_ver" | $EGREP 'Solaris Link Editors|Solaris ELF Utilities' > /dev/null; then ld_vers=`echo $ld_ver | sed -n \ ! -e 's,^.*: \(5\|1[0-9]\)\.[0-9][0-9]*-\([0-9]\.[0-9][0-9]*\).*$,\2,p'` ld_vers_major=`expr "$ld_vers" : '\([0-9]*\)'` ld_vers_minor=`expr "$ld_vers" : '[0-9]*\.\([0-9]*\)'` fi --- 2595,2607 ---- # # ld: Software Generation Utilities - Solaris Link Editors: 5.11-1.1701:onnv-ab196087-6931056-03/25/10 # # ld and ld.so.1 are guaranteed to be updated in lockstep, so ld version # numbers can be used in ld.so.1 feature checks even if a different # linker is configured. ld_ver=`$gcc_cv_ld -V 2>&1` ! if echo "$ld_ver" | grep 'Solaris Link Editors' > /dev/null; then ld_vers=`echo $ld_ver | sed -n \ ! -e 's,^.*: 5\.[0-9][0-9]*-\([0-9]\.[0-9][0-9]*\).*$,\1,p'` ld_vers_major=`expr "$ld_vers" : '\([0-9]*\)'` ld_vers_minor=`expr "$ld_vers" : '[0-9]*\.\([0-9]*\)'` fi *************** lang_tree_files= *** 6143,6149 **** all_languages= all_compilers= all_outputs='Makefile' ! # List of language makefile fragments. all_lang_makefrags= # Additional files for gengtype all_gtfiles="$target_gtfiles" --- 6139,6146 ---- all_languages= all_compilers= all_outputs='Makefile' ! # List of language configure and makefile fragments. ! all_lang_configurefrags= all_lang_makefrags= # Additional files for gengtype all_gtfiles="$target_gtfiles" *************** changequote([,])dnl *** 6231,6236 **** --- 6228,6234 ---- esac $ok || continue + all_lang_configurefrags="$all_lang_configurefrags \$(srcdir)/$gcc_subdir/config-lang.in" all_lang_makefrags="$all_lang_makefrags \$(srcdir)/$gcc_subdir/Make-lang.in" if test -f $srcdir/$gcc_subdir/lang.opt; then lang_opt_files="$lang_opt_files $srcdir/$gcc_subdir/lang.opt" *************** AC_SUBST(subdirs) *** 6332,6337 **** --- 6330,6336 ---- AC_SUBST(srcdir) AC_SUBST(all_compilers) AC_SUBST(all_gtfiles) + AC_SUBST(all_lang_configurefrags) AC_SUBST(all_lang_makefrags) AC_SUBST(all_languages) AC_SUBST(all_selected_languages) diff -Nrcpad gcc-8.3.0/gcc/convert.c gcc-8.4.0/gcc/convert.c *** gcc-8.3.0/gcc/convert.c Mon Apr 16 08:31:23 2018 --- gcc-8.4.0/gcc/convert.c Wed Mar 4 08:30:00 2020 *************** convert_to_real_1 (tree type, tree expr, *** 193,204 **** CASE_MATHFN (FABS) CASE_MATHFN (LOGB) #undef CASE_MATHFN { tree arg0 = strip_float_extensions (CALL_EXPR_ARG (expr, 0)); tree newtype = type; ! /* We have (outertype)sqrt((innertype)x). Choose the wider mode from ! the both as the safe type for operation. */ if (TYPE_PRECISION (TREE_TYPE (arg0)) > TYPE_PRECISION (type)) newtype = TREE_TYPE (arg0); --- 193,207 ---- CASE_MATHFN (FABS) CASE_MATHFN (LOGB) #undef CASE_MATHFN + if (call_expr_nargs (expr) != 1 + || !SCALAR_FLOAT_TYPE_P (TREE_TYPE (CALL_EXPR_ARG (expr, 0)))) + break; { tree arg0 = strip_float_extensions (CALL_EXPR_ARG (expr, 0)); tree newtype = type; ! /* We have (outertype)sqrt((innertype)x). Choose the wider mode ! from the both as the safe type for operation. */ if (TYPE_PRECISION (TREE_TYPE (arg0)) > TYPE_PRECISION (type)) newtype = TREE_TYPE (arg0); *************** convert_to_integer_1 (tree type, tree ex *** 592,598 **** CASE_FLT_FN (BUILT_IN_ROUND): CASE_FLT_FN_FLOATN_NX (BUILT_IN_ROUND): /* Only convert in ISO C99 mode and with -fno-math-errno. */ ! if (!targetm.libc_has_function (function_c99_misc) || flag_errno_math) break; if (outprec < TYPE_PRECISION (integer_type_node) || (outprec == TYPE_PRECISION (integer_type_node) --- 595,602 ---- CASE_FLT_FN (BUILT_IN_ROUND): CASE_FLT_FN_FLOATN_NX (BUILT_IN_ROUND): /* Only convert in ISO C99 mode and with -fno-math-errno. */ ! if (!targetm.libc_has_function (function_c99_misc) ! || flag_errno_math) break; if (outprec < TYPE_PRECISION (integer_type_node) || (outprec == TYPE_PRECISION (integer_type_node) *************** convert_to_integer_1 (tree type, tree ex *** 615,621 **** CASE_FLT_FN (BUILT_IN_RINT): CASE_FLT_FN_FLOATN_NX (BUILT_IN_RINT): /* Only convert in ISO C99 mode and with -fno-math-errno. */ ! if (!targetm.libc_has_function (function_c99_misc) || flag_errno_math) break; if (outprec < TYPE_PRECISION (integer_type_node) || (outprec == TYPE_PRECISION (integer_type_node) --- 619,626 ---- CASE_FLT_FN (BUILT_IN_RINT): CASE_FLT_FN_FLOATN_NX (BUILT_IN_RINT): /* Only convert in ISO C99 mode and with -fno-math-errno. */ ! if (!targetm.libc_has_function (function_c99_misc) ! || flag_errno_math) break; if (outprec < TYPE_PRECISION (integer_type_node) || (outprec == TYPE_PRECISION (integer_type_node) *************** convert_to_integer_1 (tree type, tree ex *** 631,644 **** CASE_FLT_FN (BUILT_IN_TRUNC): CASE_FLT_FN_FLOATN_NX (BUILT_IN_TRUNC): ! return convert_to_integer_1 (type, CALL_EXPR_ARG (s_expr, 0), dofold); default: break; } ! if (fn) ! { tree newexpr = build_call_expr (fn, 1, CALL_EXPR_ARG (s_expr, 0)); return convert_to_integer_1 (type, newexpr, dofold); } --- 636,655 ---- CASE_FLT_FN (BUILT_IN_TRUNC): CASE_FLT_FN_FLOATN_NX (BUILT_IN_TRUNC): ! if (call_expr_nargs (s_expr) != 1 ! || !SCALAR_FLOAT_TYPE_P (TREE_TYPE (CALL_EXPR_ARG (s_expr, 0)))) ! break; ! return convert_to_integer_1 (type, CALL_EXPR_ARG (s_expr, 0), ! dofold); default: break; } ! if (fn ! && call_expr_nargs (s_expr) == 1 ! && SCALAR_FLOAT_TYPE_P (TREE_TYPE (CALL_EXPR_ARG (s_expr, 0)))) ! { tree newexpr = build_call_expr (fn, 1, CALL_EXPR_ARG (s_expr, 0)); return convert_to_integer_1 (type, newexpr, dofold); } *************** convert_to_integer_1 (tree type, tree ex *** 668,674 **** break; } ! if (fn) { tree newexpr = build_call_expr (fn, 1, CALL_EXPR_ARG (s_expr, 0)); return convert_to_integer_1 (type, newexpr, dofold); --- 679,687 ---- break; } ! if (fn ! && call_expr_nargs (s_expr) == 1 ! && SCALAR_FLOAT_TYPE_P (TREE_TYPE (CALL_EXPR_ARG (s_expr, 0)))) { tree newexpr = build_call_expr (fn, 1, CALL_EXPR_ARG (s_expr, 0)); return convert_to_integer_1 (type, newexpr, dofold); diff -Nrcpad gcc-8.3.0/gcc/cp/ChangeLog gcc-8.4.0/gcc/cp/ChangeLog *** gcc-8.3.0/gcc/cp/ChangeLog Fri Feb 22 14:20:37 2019 --- gcc-8.4.0/gcc/cp/ChangeLog Wed Mar 4 08:30:30 2020 *************** *** 1,3 **** --- 1,512 ---- + 2020-03-04 Release Manager + + * GCC 8.4.0 released. + + 2020-02-26 Jakub Jelinek + + PR c++/93905 + Backported from mainline + 2018-11-04 Jason Merrill + + * constexpr.c (cxx_eval_outermost_constant_expr): Don't wrap a + CONSTRUCTOR if one was passed in. + + 2020-02-26 Marek Polacek + + PR c++/90998 - ICE with copy elision in init by ctor and -Wconversion. + * call.c (joust): Don't attempt to warn if ->second_conv is null. + + 2020-02-26 Jason Merrill + + PR c++/86521 - C++17 copy elision in initialization by constructor. + * call.c (joust_maybe_elide_copy): New. + (joust): Call it. + + 2020-02-26 Jason Merrill + + PR c++/90546 + * call.c (build_user_type_conversion_1): Allow a template conversion + returning an rvalue reference to bind directly to an lvalue. + + 2020-02-26 Jason Merrill + + PR c++/86521 - wrong overload resolution with ref-qualifiers. + * call.c (build_user_type_conversion_1): Don't use a conversion to a + reference of the wrong rvalueness for direct binding. + + 2020-02-25 Jason Merrill + + PR c++/89831 - error with qualified-id in const member function. + * semantics.c (finish_non_static_data_member): Use object cv-quals + in scoped case, too. + + 2020-02-25 Jason Merrill + + PR c++/88380 - wrong-code with flexible array and NSDMI. + * typeck2.c (process_init_constructor_record): Skip flexarrays. + + 2020-02-25 Jason Merrill + + PR c++/87685 - generic lambda 'this' capture error. + * lambda.c (lambda_expr_this_capture): Change add_capture_p to int. + (maybe_generic_this_capture): Pass -1. + + 2020-02-25 Jason Merrill + + PR c++/87554 - ICE with extern template and reference member. + * decl.c (cp_finish_decl): Don't set DECL_INITIAL of external vars. + + 2020-02-25 Alexandre Oliva + + PR c++/86747 + * pt.c (tsubst_friend_class): Enter tsubsted class context. + + 2020-02-25 Jason Merrill + + PR c++/86429 - constexpr variable in lambda. + PR c++/82643 + PR c++/87327 + * constexpr.c (cxx_eval_constant_expression): In a lambda function, + try evaluating the captured variable directly. + + 2020-02-25 Jason Merrill + + * cp-tree.h (TYPE_REF_P): New. + + 2020-02-25 Jason Merrill + + PR c++/87748 - substitution failure error with decltype. + * pt.c (most_specialized_partial_spec): Clear + processing_template_decl. + + 2020-02-25 Jason Merrill + + PR c++/87480 - decltype of member access in default template arg + * pt.c (type_unification_real): Accept a dependent result in + template context. + + 2020-02-25 Jason Merrill + + PR c++/88394 - ICE with VLA init-capture. + * lambda.c (is_normal_capture_proxy): Check DECL_CAPTURED_VARIABLE. + + 2019-02-05 Alexandre Oliva + + PR c++/87770 + * pt.c (instantiates_primary_template_p): New. + (type_dependent_expression_p): Use it. + + 2020-02-25 Marek Polacek + + PR c++/92745 - bogus error when initializing array of vectors. + * decl.c (reshape_init_r): For a nested compound literal, do + call reshape_init_{class,array,vector}. + + 2020-02-25 Jason Merrill + + PR c++/89917 - ICE with lambda in variadic mem-init. + * pt.c (make_pack_expansion): Change type_pack_expansion_p to false. + + 2020-02-24 Jason Merrill + + PR c++/90951 + * constexpr.c (cxx_eval_array_reference): {}-initialize missing + elements instead of value-initializing them. + + 2020-02-24 Jason Merrill + + PR c++/93140 + * pt.c (tsubst_decl) [PARM_DECL]: Check cp_unevaluated_operand in + handling of TREE_CHAIN for empty pack. + + 2020-02-24 Jason Merrill + + PR c++/92852 + * constexpr.c (maybe_constant_value): Don't unshare if the cached + value is the same as the argument. + + 2020-02-14 Jakub Jelinek + + PR c++/61414 + * class.c (enum_min_precision): Change prec type from int to int &. + + 2020-02-14 Jakub Jelinek + + Backported from mainline + 2020-01-17 Jakub Jelinek + + PR c++/93228 + * parser.c (cp_parser_template_name): Look up deprecated attribute + in DECL_TEMPLATE_RESULT or its type's attributes. + + 2019-12-26 Jakub Jelinek + + PR c++/92438 + * parser.c (cp_parser_constructor_declarator_p): If open paren + is followed by RID_ATTRIBUTE, skip over the attribute tokens and + try to parse type specifier. + + 2019-12-20 Jakub Jelinek + + PR c++/92992 + * call.c (convert_arg_to_ellipsis): For decltype(nullptr) arguments + that have side-effects use cp_build_compound_expr. + + 2019-12-03 Jakub Jelinek + + PR c++/92732 + * typeck2.c (digest_nsdmi_init): For bitfields, use + DECL_BIT_FIELD_TYPE instead of TREE_TYPE. + + 2019-11-29 Jakub Jelinek + + PR c++/60228 + * parser.c (cp_parser_omp_declare_reduction_exprs): If + processing_template_decl, wrap the combiner or initializer + into EXPR_STMT. + * decl.c (start_preparsed_function): Don't start a lambda scope + for DECL_OMP_DECLARE_REDUCTION_P functions. + (finish_function): Don't finish a lambda scope for + DECL_OMP_DECLARE_REDUCTION_P functions, nor cp_fold_function + them nor cp_genericize them. + * mangle.c (decl_mangling_context): Look through + DECL_OMP_DECLARE_REDUCTION_P functions. + * semantics.c (expand_or_defer_fn_1): For DECL_OMP_DECLARE_REDUCTION_P + functions, use tentative linkage, don't keep their bodies with + -fkeep-inline-functions and return false at the end. + + 2019-11-27 Jakub Jelinek + + PR c++/92524 + * tree.c (replace_placeholders_r): Don't walk constructor elts with + RANGE_EXPR indexes. + + 2019-11-26 Jakub Jelinek + + PR c++/92648 + * parser.c (cp_parser_std_attribute): For unknown attributes, + skip balanced token seq instead of trying to parse + attribute-argument-clause as expression list. + + PR c++/61414 + * class.c (enum_to_min_precision): New hash_map. + (enum_min_precision): New function. + (check_bitfield_decl): Use it. + + 2019-11-21 Jakub Jelinek + Jason Merrill + + PR c++/90842 + * parser.c (cp_parser_decl_specifier_seq): For concept or typedef + break early if CP_PARSER_FLAGS_ONLY_MUTABLE_OR_CONSTEXPR. + For type specifiers, set CP_PARSER_FLAGS_NO_TYPE_DEFINITIONS + if CP_PARSER_FLAGS_ONLY_MUTABLE_OR_CONSTEXPR is set. + + 2020-01-27 Nathan Sidwell + + PR c++/91826 + * name-lookup.c (is_ancestor): Allow CHILD to be a namespace alias. + + 2020-01-24 Jason Merrill + + PR c++/92852 - ICE with generic lambda and reference var. + * constexpr.c (maybe_constant_value): Likewise. + + 2019-12-11 Jason Merrill + + PR c++/92859 - ADL and bit-field. + * name-lookup.c: Use unlowered_expr_type. + + 2019-11-21 Jakub Jelinek + + Backported from mainline + 2019-10-22 Jakub Jelinek + + PR tree-optimization/85887 + * decl.c (expand_static_init): Drop ECF_LEAF from __cxa_guard_acquire + and __cxa_guard_release. + + 2019-10-29 Jakub Jelinek + + PR c++/92201 + * cp-gimplify.c (cp_gimplify_expr): If gimplify_to_rvalue changes the + function pointer type, re-add cast to the original one. + + 2019-10-04 Jakub Jelinek + + PR c++/91974 + * cp-gimplify.c (cp_gimplify_expr) : For + -fstrong-eval-order ensure CALL_EXPR_FN side-effects are evaluated + before any arguments. Additionally, ensure CALL_EXPR_FN that isn't + invariant nor OBJ_TYPE_REF nor SSA_NAME is forced into a temporary. + + 2019-08-09 Jakub Jelinek + + PR c/91401 + * parser.c (cp_parser_omp_clause_dist_schedule): Comment out the + check_no_duplicate_clause call, instead emit a warning for duplicate + dist_schedule clauses. + + 2019-11-05 Jason Merrill + + PR c++/88075 + * parser.c (cp_parser_decl_specifier_seq): Support C++20 + concept-definition syntax without 'bool'. + + 2019-10-22 Marek Polacek + + Backported from mainline + 2019-10-21 Marek Polacek + + PR c++/92106 - ICE with structured bindings and -Wreturn-local-addr. + * typeck.c (maybe_warn_about_returning_address_of_local): Avoid + recursing on null initializer and return false instead. + + 2019-09-03 Iain Sandoe + + Backported from mainline + 2019-08-23 Iain Sandoe + + PR pch/61250 + * parser.c (cp_parser_initial_pragma): Call c_common_no_more_pch () + after determining that the first token is not + PRAGMA_GCC_PCH_PREPROCESS. + + 2019-08-30 Richard Biener + + Backport from mainline + 2019-02-21 Richard Biener + + PR middle-end/89392 + * vtable-class-hierarchy.c (vtv_generate_init_routine): Do not + make symtab process new functions here. + + 2019-08-29 Jakub Jelinek + + Backported from mainline + 2019-06-21 Jakub Jelinek + + PR c++/90950 + * semantics.c (finish_omp_clauses): Don't reject references to + incomplete types if processing_template_decl. + + 2019-05-15 Jakub Jelinek + + PR debug/90197 + * cp-gimplify.c (genericize_cp_loop): Emit a DEBUG_BEGIN_STMT + before the condition (or if missing or constant non-zero at the end + of the loop. Emit a DEBUG_BEGIN_STMT before the increment expression + if any. Don't call protected_set_expr_location on incr if it already + has a location. + + 2019-05-10 Jakub Jelinek + + PR pch/90326 + * config-lang.in (gtfiles): Remove c-family/c-lex.c, add + c-family/c-cppbuiltin.c. + + 2019-08-15 Jonathan Wakely + + Backport from mainline. + 2019-08-14 Jonathan Wakely + + PR c++/91436 + * name-lookup.c (get_std_name_hint): Fix min_dialect field for + complex_literals and make_unique entries. + + 2019-08-01 Marek Polacek + + Backported from mainline + 2018-06-12 Jason Merrill + + PR c++/86098 - ICE with template placeholder for TTP. + * typeck.c (structural_comptypes) [TEMPLATE_TYPE_PARM]: Check + CLASS_PLACEHOLDER_TEMPLATE. + + 2019-06-11 Jakub Jelinek + + PR c++/90810 + * init.c (constant_value_1): Handle VECTOR_CST DECL_INITIAL for + !DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P decls like CONSTRUCTOR. + + 2019-05-22 Eric Botcazou + + Backport from mainline + 2018-05-10 Eric Botcazou + + PR c++/85400 + * decl2.c (adjust_var_decl_tls_model): New static function. + (comdat_linkage): Call it on a variable. + (maybe_make_one_only): Likewise. + + 2019-05-20 Jonathan Wakely + + Backported from mainline + 2019-05-20 Jonathan Wakely + + PR c++/90532 Ensure __is_constructible(T[]) is false + * method.c (is_xible_helper): Return error_mark_node for construction + of an array of unknown bound. + + 2019-05-07 Marek Polacek + + Backported from mainline + 2019-02-27 Marek Polacek + + PR c++/88857 - ICE with value-initialization of argument in template. + * call.c (convert_like_real): Don't call build_value_init in template. + + 2019-03-25 Marek Polacek + + PR c++/89214 - ICE when initializing aggregates with bases. + * typeck2.c (digest_init_r): Warn about object slicing instead of + crashing. + + 2019-02-27 Marek Polacek + + PR c++/89511 - ICE with using-declaration and unscoped enumerator. + * parser.c (cp_parser_using_declaration): For an unscoped enum + only use its context if it's not a function declaration. + + 2019-03-25 Marek Polacek + + PR c++/89705 - ICE with reference binding with conversion function. + * call.c (reference_binding): If the result of the conversion function + is a prvalue of non-class type, use the cv-unqualified type. + + 2019-03-29 Marek Polacek + + PR c++/89876 - ICE with deprecated conversion. + * call.c (convert_like_real): Only give warnings with tf_warning. + + 2019-04-30 Jakub Jelinek + + Backported from mainline + 2019-04-19 Jakub Jelinek + + PR c++/90108 + * decl.c (duplicate_decls): If remove is main variant and + DECL_ORIGINAL_TYPE is some other type, remove a DECL_ORIGINAL_TYPE + variant that has newdecl as TYPE_NAME if any. + + 2019-04-12 Jakub Jelinek + + PR c/89933 + * decl.c (duplicate_decls): When newdecl's type is its main variant, + don't try to remove it from the variant list, but instead assert + it has no variants. + + 2019-03-29 Jakub Jelinek + + PR sanitizer/89869 + * typeck.c: Include gimplify.h. + (cp_build_modify_expr) : Unshare rhs before using it + for second time. Formatting fixes. + + 2019-03-26 Jakub Jelinek + + PR c++/89796 + * semantics.c (finish_omp_atomic): Add warning_sentinel for + -Wunused-value around finish_expr_stmt call. + + 2019-03-22 Jakub Jelinek + + PR c++/60702 + * cp-tree.h (get_tls_wrapper_fn): Remove declaration. + (maybe_get_tls_wrapper_call): Declare. + * decl2.c (get_tls_wrapper_fn): Make static. + (maybe_get_tls_wrapper_call): New function. + * typeck.c (build_class_member_access_expr): Handle accesses to TLS + variables. + * semantics.c (finish_qualified_id_expr): Likewise. + (finish_id_expression_1): Use maybe_get_tls_wrapper_call. + * pt.c (tsubst_copy_and_build): Likewise. + + 2019-03-21 Jakub Jelinek + + PR c++/89767 + * parser.c (cp_parser_lambda_introducer): Add ids and first_capture_id + variables, check for duplicates in this function. + * lambda.c (add_capture): Don't check for duplicates nor use + IDENTIFIER_MARKED. + (register_capture_members): Don't clear IDENTIFIER_MARKED here. + + 2019-03-14 Jakub Jelinek + + PR c++/89512 + * semantics.c (finish_qualified_id_expr): Reject variable templates. + + 2019-03-06 Jakub Jelinek + + PR c++/87148 + * init.c (build_value_init_noctor): Ignore flexible array members. + + 2019-02-20 Jakub Jelinek + + PR c++/89403 + * decl2.c (c_parse_final_cleanups): Move TREE_ASM_WRITTEN setting + for flag_syntax_only from here... + * semantics.c (expand_or_defer_fn_1): ... here. + + PR c++/89405 + * decl.c (maybe_commonize_var): When clearing TREE_PUBLIC and + DECL_COMMON, set DECL_INTERFACE_KNOWN. + + 2019-03-08 Jason Merrill + + PR c++/88820 - ICE with CTAD and member template used in DMI. + * pt.c (do_class_deduction): Handle parm used as its own arg. + + PR c++/88869 - C++17 ICE with CTAD and explicit specialization. + * pt.c (do_class_deduction): Don't include explicit specialization + args in outer_args. + + PR c++/88419 - C++17 ICE with class template arg deduction. + * pt.c (make_template_placeholder): Set TYPE_CANONICAL after + CLASS_PLACEHOLDER_TEMPLATE. + + PR c++/88690 - C++17 ICE with empty base in aggregate. + * typeck2.c (process_init_constructor_record): Skip trivial + initialization of an empty base. + + PR c++/87921 - wrong error with inline static data member. + * decl2.c (c_parse_final_cleanups): Don't force out uninstantiated + inline static data members. + + PR c++/89381 - implicit copy and using-declaration. + * class.c (classtype_has_move_assign_or_move_ctor_p): Don't consider + op= brought in by a using-declaration. + + PR c++/89576 - if constexpr of lambda capture. + * semantics.c (maybe_convert_cond): Do convert a non-dependent + condition in a template. + * typeck.c (condition_conversion): Handle being called in a + template. + + PR c++/89422 - ICE with -g and lambda in default arg in template. + * pt.c (tsubst_function_decl): SET_DECL_FRIEND_CONTEXT sooner. + + PR c++/87513 - 'sorry' mangling PMF template-id. + * mangle.c (write_expression): Handle SCOPE_REF to BASELINK. + + PR c++/88183 - ICE with .* fold-expression. + * pt.c (fold_expression) [DOTSTAR_EXPR]: Remove special handling. + + 2019-03-07 Jakub Jelinek + + PR c++/89585 + * parser.c (cp_parser_asm_definition): Parse asm qualifiers even + at toplevel, but diagnose them. + + 2019-02-26 Marek Polacek + + Backported from mainline + 2019-02-11 Marek Polacek + + PR c++/89212 - ICE converting nullptr to pointer-to-member-function. + * pt.c (tsubst_copy_and_build) : Return early for + null member pointer value. + 2019-02-22 Release Manager * GCC 8.3.0 released. diff -Nrcpad gcc-8.3.0/gcc/cp/call.c gcc-8.4.0/gcc/cp/call.c *** gcc-8.3.0/gcc/cp/call.c Wed Feb 6 15:36:20 2019 --- gcc-8.4.0/gcc/cp/call.c Wed Mar 4 08:30:00 2020 *************** reference_binding (tree rto, tree rfrom, *** 1767,1772 **** --- 1767,1775 ---- && DECL_CONV_FN_P (t->cand->fn)) { tree ftype = TREE_TYPE (TREE_TYPE (t->cand->fn)); + /* A prvalue of non-class type is cv-unqualified. */ + if (TREE_CODE (ftype) != REFERENCE_TYPE && !CLASS_TYPE_P (ftype)) + ftype = cv_unqualified (ftype); int sflags = (flags|LOOKUP_NO_CONVERSION)&~LOOKUP_NO_TEMP_BIND; conversion *new_second = reference_binding (rto, ftype, NULL_TREE, c_cast_p, *************** build_user_type_conversion_1 (tree totyp *** 3892,3897 **** --- 3895,3910 ---- cand->reason = arg_conversion_rejection (NULL_TREE, -2, rettype, totype); } + else if (TYPE_REF_P (totype) && !ics->rvaluedness_matches_p + /* Limit this to non-templates for now (PR90546). */ + && !cand->template_decl + && TREE_CODE (TREE_TYPE (totype)) != FUNCTION_TYPE) + { + /* If we are called to convert to a reference type, we are trying + to find a direct binding per [over.match.ref], so rvaluedness + must match for non-functions. */ + cand->viable = 0; + } else if (DECL_NONCONVERTING_P (cand->fn) && ics->rank > cr_exact) { *************** convert_like_real (conversion *convs, tr *** 6775,6781 **** /* If we're initializing from {}, it's value-initialization. */ if (BRACE_ENCLOSED_INITIALIZER_P (expr) && CONSTRUCTOR_NELTS (expr) == 0 ! && TYPE_HAS_DEFAULT_CONSTRUCTOR (totype)) { bool direct = CONSTRUCTOR_IS_DIRECT_INIT (expr); if (abstract_virtuals_error_sfinae (NULL_TREE, totype, complain)) --- 6788,6795 ---- /* If we're initializing from {}, it's value-initialization. */ if (BRACE_ENCLOSED_INITIALIZER_P (expr) && CONSTRUCTOR_NELTS (expr) == 0 ! && TYPE_HAS_DEFAULT_CONSTRUCTOR (totype) ! && !processing_template_decl) { bool direct = CONSTRUCTOR_IS_DIRECT_INIT (expr); if (abstract_virtuals_error_sfinae (NULL_TREE, totype, complain)) *************** convert_like_real (conversion *convs, tr *** 7110,7116 **** case ck_qual: /* Warn about deprecated conversion if appropriate. */ ! string_conv_p (totype, expr, 1); break; case ck_ptr: --- 7124,7131 ---- case ck_qual: /* Warn about deprecated conversion if appropriate. */ ! if (complain & tf_warning) ! string_conv_p (totype, expr, 1); break; case ck_ptr: *************** convert_arg_to_ellipsis (tree arg, tsubs *** 7175,7181 **** arg = convert_to_real_nofold (double_type_node, arg); } else if (NULLPTR_TYPE_P (arg_type)) ! arg = null_pointer_node; else if (INTEGRAL_OR_ENUMERATION_TYPE_P (arg_type)) { if (SCOPED_ENUM_P (arg_type)) --- 7190,7201 ---- arg = convert_to_real_nofold (double_type_node, arg); } else if (NULLPTR_TYPE_P (arg_type)) ! { ! if (TREE_SIDE_EFFECTS (arg)) ! arg = cp_build_compound_expr (arg, null_pointer_node, complain); ! else ! arg = null_pointer_node; ! } else if (INTEGRAL_OR_ENUMERATION_TYPE_P (arg_type)) { if (SCOPED_ENUM_P (arg_type)) *************** add_warning (struct z_candidate *winner, *** 10037,10042 **** --- 10057,10089 ---- winner->warnings = cw; } + /* CAND is a constructor candidate in joust in C++17 and up. If it copies a + prvalue returned from a conversion function, replace CAND with the candidate + for the conversion and return true. Otherwise, return false. */ + + static bool + joust_maybe_elide_copy (z_candidate *&cand) + { + tree fn = cand->fn; + if (!DECL_COPY_CONSTRUCTOR_P (fn) && !DECL_MOVE_CONSTRUCTOR_P (fn)) + return false; + conversion *conv = cand->convs[0]; + gcc_checking_assert (conv->kind == ck_ref_bind); + conv = next_conversion (conv); + if (conv->kind == ck_user && !TYPE_REF_P (conv->type)) + { + gcc_checking_assert (same_type_ignoring_top_level_qualifiers_p + (conv->type, DECL_CONTEXT (fn))); + z_candidate *uc = conv->cand; + if (DECL_CONV_FN_P (uc->fn)) + { + cand = uc; + return true; + } + } + return false; + } + /* Compare two candidates for overloading as described in [over.match.best]. Return values: *************** joust (struct z_candidate *cand1, struct *** 10117,10122 **** --- 10164,10190 ---- } } + /* Handle C++17 copy elision in [over.match.ctor] (direct-init) context. The + standard currently says that only constructors are candidates, but if one + copies a prvalue returned by a conversion function we want to treat the + conversion as the candidate instead. + + Clang does something similar, as discussed at + http://lists.isocpp.org/core/2017/10/3166.php + http://lists.isocpp.org/core/2019/03/5721.php */ + int elided_tiebreaker = 0; + if (len == 1 && cxx_dialect >= cxx17 + && DECL_P (cand1->fn) + && DECL_COMPLETE_CONSTRUCTOR_P (cand1->fn) + && !(cand1->flags & LOOKUP_ONLYCONVERTING)) + { + bool elided1 = joust_maybe_elide_copy (cand1); + bool elided2 = joust_maybe_elide_copy (cand2); + /* As a tiebreaker below we will prefer a constructor to a conversion + operator exposed this way. */ + elided_tiebreaker = elided2 - elided1; + } + for (i = 0; i < len; ++i) { conversion *t1 = cand1->convs[i + off1]; *************** joust (struct z_candidate *cand1, struct *** 10172,10178 **** either between a constructor and a conversion op, or between two conversion ops. */ if ((complain & tf_warning) ! && winner && warn_conversion && cand1->second_conv && (!DECL_CONSTRUCTOR_P (cand1->fn) || !DECL_CONSTRUCTOR_P (cand2->fn)) && winner != compare_ics (cand1->second_conv, cand2->second_conv)) { --- 10240,10248 ---- either between a constructor and a conversion op, or between two conversion ops. */ if ((complain & tf_warning) ! /* In C++17, the constructor might have been elided, which means that ! an originally null ->second_conv could become non-null. */ ! && winner && warn_conversion && cand1->second_conv && cand2->second_conv && (!DECL_CONSTRUCTOR_P (cand1->fn) || !DECL_CONSTRUCTOR_P (cand2->fn)) && winner != compare_ics (cand1->second_conv, cand2->second_conv)) { *************** joust (struct z_candidate *cand1, struct *** 10225,10230 **** --- 10295,10305 ---- if (winner) return winner; + /* Put this tiebreaker first, so that we don't try to look at second_conv of + a constructor candidate that doesn't have one. */ + if (elided_tiebreaker) + return elided_tiebreaker; + /* DR 495 moved this tiebreaker above the template ones. */ /* or, if not that, the context is an initialization by user-defined conversion (see diff -Nrcpad gcc-8.3.0/gcc/cp/class.c gcc-8.4.0/gcc/cp/class.c *** gcc-8.3.0/gcc/cp/class.c Thu Feb 14 23:17:51 2019 --- gcc-8.4.0/gcc/cp/class.c Wed Mar 4 08:30:00 2020 *************** add_implicitly_declared_members (tree t, *** 3195,3200 **** --- 3195,3254 ---- } } + /* Cache of enum_min_precision values. */ + static GTY((deletable)) hash_map *enum_to_min_precision; + + /* Return the minimum precision of a bit-field needed to store all + enumerators of ENUMERAL_TYPE TYPE. */ + + static int + enum_min_precision (tree type) + { + type = TYPE_MAIN_VARIANT (type); + /* For unscoped enums without fixed underlying type and without mode + attribute we can just use precision of the underlying type. */ + if (UNSCOPED_ENUM_P (type) + && !ENUM_FIXED_UNDERLYING_TYPE_P (type) + && !lookup_attribute ("mode", TYPE_ATTRIBUTES (type))) + return TYPE_PRECISION (ENUM_UNDERLYING_TYPE (type)); + + if (enum_to_min_precision == NULL) + enum_to_min_precision = hash_map::create_ggc (37); + + bool existed; + int &prec = enum_to_min_precision->get_or_insert (type, &existed); + if (existed) + return prec; + + tree minnode, maxnode; + if (TYPE_VALUES (type)) + { + minnode = maxnode = NULL_TREE; + for (tree values = TYPE_VALUES (type); + values; values = TREE_CHAIN (values)) + { + tree decl = TREE_VALUE (values); + tree value = DECL_INITIAL (decl); + if (value == error_mark_node) + value = integer_zero_node; + if (!minnode) + minnode = maxnode = value; + else if (tree_int_cst_lt (maxnode, value)) + maxnode = value; + else if (tree_int_cst_lt (value, minnode)) + minnode = value; + } + } + else + minnode = maxnode = integer_zero_node; + + signop sgn = tree_int_cst_sgn (minnode) >= 0 ? UNSIGNED : SIGNED; + int lowprec = tree_int_cst_min_precision (minnode, sgn); + int highprec = tree_int_cst_min_precision (maxnode, sgn); + prec = MAX (lowprec, highprec); + return prec; + } + /* FIELD is a bit-field. We are finishing the processing for its enclosing type. Issue any appropriate messages and set appropriate flags. Returns false if an error has been diagnosed. */ *************** check_bitfield_decl (tree field) *** 3255,3261 **** "width of %qD exceeds its type", field); else if (TREE_CODE (type) == ENUMERAL_TYPE) { ! int prec = TYPE_PRECISION (ENUM_UNDERLYING_TYPE (type)); if (compare_tree_int (w, prec) < 0) warning_at (DECL_SOURCE_LOCATION (field), 0, "%qD is too small to hold all values of %q#T", --- 3309,3315 ---- "width of %qD exceeds its type", field); else if (TREE_CODE (type) == ENUMERAL_TYPE) { ! int prec = enum_min_precision (type); if (compare_tree_int (w, prec) < 0) warning_at (DECL_SOURCE_LOCATION (field), 0, "%qD is too small to hold all values of %q#T", *************** classtype_has_move_assign_or_move_ctor_p *** 5171,5177 **** for (ovl_iterator iter (get_class_binding_direct (t, assign_op_identifier)); iter; ++iter) ! if ((!user_p || !DECL_ARTIFICIAL (*iter)) && move_fn_p (*iter)) return true; return false; --- 5225,5233 ---- for (ovl_iterator iter (get_class_binding_direct (t, assign_op_identifier)); iter; ++iter) ! if ((!user_p || !DECL_ARTIFICIAL (*iter)) ! && DECL_CONTEXT (*iter) == t ! && move_fn_p (*iter)) return true; return false; diff -Nrcpad gcc-8.3.0/gcc/cp/config-lang.in gcc-8.4.0/gcc/cp/config-lang.in *** gcc-8.3.0/gcc/cp/config-lang.in Wed Jan 3 10:03:58 2018 --- gcc-8.4.0/gcc/cp/config-lang.in Wed Mar 4 08:30:00 2020 *************** gtfiles="\ *** 37,43 **** \$(srcdir)/c-family/c-pragma.h \$(srcdir)/cp/decl.h \ \$(srcdir)/cp/parser.h \ \$(srcdir)/c-family/c-common.c \$(srcdir)/c-family/c-format.c \ ! \$(srcdir)/c-family/c-lex.c \$(srcdir)/c-family/c-pragma.c \ \$(srcdir)/cp/call.c \$(srcdir)/cp/class.c \$(srcdir)/cp/constexpr.c \ \$(srcdir)/cp/cp-gimplify.c \ \$(srcdir)/cp/cp-lang.c \$(srcdir)/cp/cp-objcp-common.c \ --- 37,43 ---- \$(srcdir)/c-family/c-pragma.h \$(srcdir)/cp/decl.h \ \$(srcdir)/cp/parser.h \ \$(srcdir)/c-family/c-common.c \$(srcdir)/c-family/c-format.c \ ! \$(srcdir)/c-family/c-cppbuiltin.c \$(srcdir)/c-family/c-pragma.c \ \$(srcdir)/cp/call.c \$(srcdir)/cp/class.c \$(srcdir)/cp/constexpr.c \ \$(srcdir)/cp/cp-gimplify.c \ \$(srcdir)/cp/cp-lang.c \$(srcdir)/cp/cp-objcp-common.c \ diff -Nrcpad gcc-8.3.0/gcc/cp/constexpr.c gcc-8.4.0/gcc/cp/constexpr.c *** gcc-8.3.0/gcc/cp/constexpr.c Wed Feb 6 15:29:14 2019 --- gcc-8.4.0/gcc/cp/constexpr.c Wed Mar 4 08:30:00 2020 *************** cxx_eval_array_reference (const constexp *** 2486,2493 **** } /* If it's within the array bounds but doesn't have an explicit ! initializer, it's value-initialized. */ ! tree val = build_value_init (elem_type, tf_warning_or_error); return cxx_eval_constant_expression (ctx, val, lval, non_constant_p, overflow_p); } --- 2486,2501 ---- } /* If it's within the array bounds but doesn't have an explicit ! initializer, it's initialized from {}. But use build_value_init ! directly for non-aggregates to avoid creating a garbage CONSTRUCTOR. */ ! tree val; ! 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); ! } ! else ! val = build_value_init (elem_type, tf_warning_or_error); return cxx_eval_constant_expression (ctx, val, lval, non_constant_p, overflow_p); } *************** cxx_eval_constant_expression (const cons *** 4155,4162 **** case VAR_DECL: if (DECL_HAS_VALUE_EXPR_P (t)) ! return cxx_eval_constant_expression (ctx, DECL_VALUE_EXPR (t), ! lval, non_constant_p, overflow_p); /* fall through */ case CONST_DECL: /* We used to not check lval for CONST_DECL, but darwin.c uses --- 4163,4191 ---- case VAR_DECL: if (DECL_HAS_VALUE_EXPR_P (t)) ! { ! if (is_normal_capture_proxy (t) ! && current_function_decl == DECL_CONTEXT (t)) ! { ! /* Function parms aren't constexpr within the function ! definition, so don't try to look at the closure. But if the ! captured variable is constant, try to evaluate it directly. */ ! r = DECL_CAPTURED_VARIABLE (t); ! tree type = TREE_TYPE (t); ! if (TYPE_REF_P (type) != TYPE_REF_P (TREE_TYPE (r))) ! { ! /* Adjust r to match the reference-ness of t. */ ! if (TYPE_REF_P (type)) ! r = build_address (r); ! else ! r = convert_from_reference (r); ! } ! } ! else ! r = DECL_VALUE_EXPR (t); ! return cxx_eval_constant_expression (ctx, r, lval, non_constant_p, ! overflow_p); ! } /* fall through */ case CONST_DECL: /* We used to not check lval for CONST_DECL, but darwin.c uses *************** cxx_eval_outermost_constant_expr (tree t *** 4969,4983 **** if (TREE_CODE (t) == TARGET_EXPR && TARGET_EXPR_INITIAL (t) == r) return t; ! else { r = get_target_expr (r); TREE_CONSTANT (r) = true; - return r; } } ! else ! return r; } /* Returns true if T is a valid subexpression of a constant expression, --- 4998,5010 ---- if (TREE_CODE (t) == TARGET_EXPR && TARGET_EXPR_INITIAL (t) == r) return t; ! else if (TREE_CODE (t) != CONSTRUCTOR) { r = get_target_expr (r); TREE_CONSTANT (r) = true; } } ! return r; } /* Returns true if T is a valid subexpression of a constant expression, *************** maybe_constant_value (tree t, tree decl) *** 5107,5113 **** if (cv_cache == NULL) cv_cache = hash_map::create_ggc (101); if (tree *cached = cv_cache->get (t)) ! return *cached; r = cxx_eval_outermost_constant_expr (t, true, true, decl); gcc_checking_assert (r == t --- 5134,5148 ---- if (cv_cache == NULL) cv_cache = hash_map::create_ggc (101); if (tree *cached = cv_cache->get (t)) ! { ! r = *cached; ! if (r != t) ! { ! r = unshare_expr_without_location (r); ! protected_set_expr_location (r, EXPR_LOCATION (t)); ! } ! return r; ! } r = cxx_eval_outermost_constant_expr (t, true, true, decl); gcc_checking_assert (r == t diff -Nrcpad gcc-8.3.0/gcc/cp/cp-gimplify.c gcc-8.4.0/gcc/cp/cp-gimplify.c *** gcc-8.3.0/gcc/cp/cp-gimplify.c Tue Jan 8 10:22:44 2019 --- gcc-8.4.0/gcc/cp/cp-gimplify.c Wed Mar 4 08:30:00 2020 *************** genericize_cp_loop (tree *stmt_p, locati *** 202,218 **** tree blab, clab; tree exit = NULL; tree stmt_list = NULL; blab = begin_bc_block (bc_break, start_locus); clab = begin_bc_block (bc_continue, start_locus); ! protected_set_expr_location (incr, start_locus); cp_walk_tree (&cond, cp_genericize_r, data, NULL); cp_walk_tree (&body, cp_genericize_r, data, NULL); cp_walk_tree (&incr, cp_genericize_r, data, NULL); *walk_subtrees = 0; if (cond && TREE_CODE (cond) != INTEGER_CST) { /* If COND is constant, don't bother building an exit. If it's false, --- 202,227 ---- tree blab, clab; tree exit = NULL; tree stmt_list = NULL; + tree debug_begin = NULL; blab = begin_bc_block (bc_break, start_locus); clab = begin_bc_block (bc_continue, start_locus); ! if (EXPR_LOCATION (incr) == UNKNOWN_LOCATION) ! protected_set_expr_location (incr, start_locus); cp_walk_tree (&cond, cp_genericize_r, data, NULL); cp_walk_tree (&body, cp_genericize_r, data, NULL); cp_walk_tree (&incr, cp_genericize_r, data, NULL); *walk_subtrees = 0; + if (MAY_HAVE_DEBUG_MARKER_STMTS + && (!cond || !integer_zerop (cond))) + { + debug_begin = build0 (DEBUG_BEGIN_STMT, void_type_node); + SET_EXPR_LOCATION (debug_begin, EXPR_LOC_OR_LOC (cond, start_locus)); + } + if (cond && TREE_CODE (cond) != INTEGER_CST) { /* If COND is constant, don't bother building an exit. If it's false, *************** genericize_cp_loop (tree *stmt_p, locati *** 225,234 **** } if (exit && cond_is_first) ! append_to_statement_list (exit, &stmt_list); append_to_statement_list (body, &stmt_list); finish_bc_block (&stmt_list, bc_continue, clab); ! append_to_statement_list (incr, &stmt_list); if (exit && !cond_is_first) append_to_statement_list (exit, &stmt_list); --- 234,257 ---- } if (exit && cond_is_first) ! { ! append_to_statement_list (debug_begin, &stmt_list); ! debug_begin = NULL_TREE; ! append_to_statement_list (exit, &stmt_list); ! } append_to_statement_list (body, &stmt_list); finish_bc_block (&stmt_list, bc_continue, clab); ! if (incr) ! { ! if (MAY_HAVE_DEBUG_MARKER_STMTS) ! { ! tree d = build0 (DEBUG_BEGIN_STMT, void_type_node); ! SET_EXPR_LOCATION (d, EXPR_LOC_OR_LOC (incr, start_locus)); ! append_to_statement_list (d, &stmt_list); ! } ! append_to_statement_list (incr, &stmt_list); ! } ! append_to_statement_list (debug_begin, &stmt_list); if (exit && !cond_is_first) append_to_statement_list (exit, &stmt_list); *************** cp_gimplify_expr (tree *expr_p, gimple_s *** 752,757 **** --- 775,801 ---- case CALL_EXPR: ret = GS_OK; + if (flag_strong_eval_order == 2 + && CALL_EXPR_FN (*expr_p) + && cp_get_callee_fndecl_nofold (*expr_p) == NULL_TREE) + { + tree fnptrtype = TREE_TYPE (CALL_EXPR_FN (*expr_p)); + enum gimplify_status t + = gimplify_expr (&CALL_EXPR_FN (*expr_p), pre_p, NULL, + is_gimple_call_addr, fb_rvalue); + if (t == GS_ERROR) + ret = GS_ERROR; + else if (is_gimple_variable (CALL_EXPR_FN (*expr_p)) + && TREE_CODE (CALL_EXPR_FN (*expr_p)) != SSA_NAME) + CALL_EXPR_FN (*expr_p) + = get_initialized_tmp_var (CALL_EXPR_FN (*expr_p), pre_p, + NULL); + /* GIMPLE considers most pointer conversion useless, but for + calls we actually care about the exact function pointer type. */ + if (t != GS_ERROR && TREE_TYPE (CALL_EXPR_FN (*expr_p)) != fnptrtype) + CALL_EXPR_FN (*expr_p) + = build1 (NOP_EXPR, fnptrtype, CALL_EXPR_FN (*expr_p)); + } if (!CALL_EXPR_FN (*expr_p)) /* Internal function call. */; else if (CALL_EXPR_REVERSE_ARGS (*expr_p)) diff -Nrcpad gcc-8.3.0/gcc/cp/cp-tree.h gcc-8.4.0/gcc/cp/cp-tree.h *** gcc-8.3.0/gcc/cp/cp-tree.h Mon Feb 11 21:49:37 2019 --- gcc-8.4.0/gcc/cp/cp-tree.h Wed Mar 4 08:30:00 2020 *************** more_aggr_init_expr_args_p (const aggr_i *** 4254,4259 **** --- 4254,4263 ---- #define TYPE_PTR_P(NODE) \ (TREE_CODE (NODE) == POINTER_TYPE) + /* Returns true if NODE is a reference. */ + #define TYPE_REF_P(NODE) \ + (TREE_CODE (NODE) == REFERENCE_TYPE) + /* Returns true if NODE is an object type: [basic.types] *************** extern tree cp_build_parm_decl (tree, *** 6390,6396 **** extern tree get_guard (tree); extern tree get_guard_cond (tree, bool); extern tree set_guard (tree); ! extern tree get_tls_wrapper_fn (tree); extern void mark_needed (tree); extern bool decl_needed_p (tree); extern void note_vague_linkage_fn (tree); --- 6394,6400 ---- extern tree get_guard (tree); extern tree get_guard_cond (tree, bool); extern tree set_guard (tree); ! extern tree maybe_get_tls_wrapper_call (tree); extern void mark_needed (tree); extern bool decl_needed_p (tree); extern void note_vague_linkage_fn (tree); *************** extern bool is_capture_proxy (tree); *** 7019,7025 **** extern bool is_normal_capture_proxy (tree); extern bool is_constant_capture_proxy (tree); extern void register_capture_members (tree); ! extern tree lambda_expr_this_capture (tree, bool); extern void maybe_generic_this_capture (tree, tree); extern tree maybe_resolve_dummy (tree, bool); extern tree current_nonlambda_function (void); --- 7023,7029 ---- extern bool is_normal_capture_proxy (tree); extern bool is_constant_capture_proxy (tree); extern void register_capture_members (tree); ! extern tree lambda_expr_this_capture (tree, int); extern void maybe_generic_this_capture (tree, tree); extern tree maybe_resolve_dummy (tree, bool); extern tree current_nonlambda_function (void); diff -Nrcpad gcc-8.3.0/gcc/cp/decl.c gcc-8.4.0/gcc/cp/decl.c *** gcc-8.3.0/gcc/cp/decl.c Tue Feb 5 18:57:26 2019 --- gcc-8.4.0/gcc/cp/decl.c Wed Mar 4 08:30:00 2020 *************** next_arg:; *** 2163,2175 **** if (TYPE_NAME (TREE_TYPE (newdecl)) == newdecl) { tree remove = TREE_TYPE (newdecl); ! for (tree t = TYPE_MAIN_VARIANT (remove); ; ! t = TYPE_NEXT_VARIANT (t)) ! if (TYPE_NEXT_VARIANT (t) == remove) ! { ! TYPE_NEXT_VARIANT (t) = TYPE_NEXT_VARIANT (remove); ! break; ! } } } else if (merge_attr) --- 2163,2195 ---- if (TYPE_NAME (TREE_TYPE (newdecl)) == newdecl) { tree remove = TREE_TYPE (newdecl); ! if (TYPE_MAIN_VARIANT (remove) == remove) ! { ! gcc_assert (TYPE_NEXT_VARIANT (remove) == NULL_TREE); ! /* If remove is the main variant, no need to remove that ! from the list. One of the DECL_ORIGINAL_TYPE ! variants, e.g. created for aligned attribute, might still ! refer to the newdecl TYPE_DECL though, so remove that one ! in that case. */ ! if (tree orig = DECL_ORIGINAL_TYPE (newdecl)) ! if (orig != remove) ! for (tree t = TYPE_MAIN_VARIANT (orig); t; ! t = TYPE_MAIN_VARIANT (t)) ! if (TYPE_NAME (TYPE_NEXT_VARIANT (t)) == newdecl) ! { ! TYPE_NEXT_VARIANT (t) ! = TYPE_NEXT_VARIANT (TYPE_NEXT_VARIANT (t)); ! break; ! } ! } ! else ! for (tree t = TYPE_MAIN_VARIANT (remove); ; ! t = TYPE_NEXT_VARIANT (t)) ! if (TYPE_NEXT_VARIANT (t) == remove) ! { ! TYPE_NEXT_VARIANT (t) = TYPE_NEXT_VARIANT (remove); ! break; ! } } } else if (merge_attr) *************** maybe_commonize_var (tree decl) *** 5616,5621 **** --- 5636,5642 ---- be merged. */ TREE_PUBLIC (decl) = 0; DECL_COMMON (decl) = 0; + DECL_INTERFACE_KNOWN (decl) = 1; const char *msg; if (DECL_INLINE_VAR_P (decl)) msg = G_("sorry: semantics of inline variable " *************** reshape_init_r (tree type, reshape_iter *** 6141,6154 **** by the front end. Here we have e.g. {.__pfn=0B, .__delta=0}, which is missing outermost braces. We should warn below, and one of the routines below will wrap it in additional { }. */; ! /* For a nested compound literal, there is no need to reshape since ! we called reshape_init in finish_compound_literal, before calling ! digest_init. */ ! else if (COMPOUND_LITERAL_P (init) ! /* Similarly, a CONSTRUCTOR of the target's type is a ! previously digested initializer. */ ! || same_type_ignoring_top_level_qualifiers_p (type, ! init_type)) { ++d->cur; gcc_assert (!BRACE_ENCLOSED_INITIALIZER_P (init)); --- 6162,6174 ---- by the front end. Here we have e.g. {.__pfn=0B, .__delta=0}, which is missing outermost braces. We should warn below, and one of the routines below will wrap it in additional { }. */; ! /* For a nested compound literal, proceed to specialized routines, ! to handle initialization of arrays and similar. */ ! else if (COMPOUND_LITERAL_P (init)) ! gcc_assert (!BRACE_ENCLOSED_INITIALIZER_P (init)); ! /* A CONSTRUCTOR of the target's type is a previously ! digested initializer. */ ! else if (same_type_ignoring_top_level_qualifiers_p (type, init_type)) { ++d->cur; gcc_assert (!BRACE_ENCLOSED_INITIALIZER_P (init)); *************** cp_finish_decl (tree decl, tree init, bo *** 7281,7288 **** && ! (DECL_LANG_SPECIFIC (decl) && DECL_NOT_REALLY_EXTERN (decl))) { ! if (init) ! DECL_INITIAL (decl) = init; } /* A variable definition. */ else if (DECL_FUNCTION_SCOPE_P (decl) && !TREE_STATIC (decl)) --- 7301,7307 ---- && ! (DECL_LANG_SPECIFIC (decl) && DECL_NOT_REALLY_EXTERN (decl))) { ! /* check_initializer will have done any constant initialization. */ } /* A variable definition. */ else if (DECL_FUNCTION_SCOPE_P (decl) && !TREE_STATIC (decl)) *************** expand_static_init (tree decl, tree init *** 8326,8339 **** (acquire_name, build_function_type_list (integer_type_node, TREE_TYPE (guard_addr), NULL_TREE), ! NULL_TREE, ECF_NOTHROW | ECF_LEAF); if (!release_fn || !abort_fn) vfntype = build_function_type_list (void_type_node, TREE_TYPE (guard_addr), NULL_TREE); if (!release_fn) release_fn = push_library_fn (release_name, vfntype, NULL_TREE, ! ECF_NOTHROW | ECF_LEAF); if (!abort_fn) abort_fn = push_library_fn (abort_name, vfntype, NULL_TREE, ECF_NOTHROW | ECF_LEAF); --- 8345,8358 ---- (acquire_name, build_function_type_list (integer_type_node, TREE_TYPE (guard_addr), NULL_TREE), ! NULL_TREE, ECF_NOTHROW); if (!release_fn || !abort_fn) vfntype = build_function_type_list (void_type_node, TREE_TYPE (guard_addr), NULL_TREE); if (!release_fn) release_fn = push_library_fn (release_name, vfntype, NULL_TREE, ! ECF_NOTHROW); if (!abort_fn) abort_fn = push_library_fn (abort_name, vfntype, NULL_TREE, ECF_NOTHROW | ECF_LEAF); *************** start_preparsed_function (tree decl1, tr *** 15346,15352 **** && !implicit_default_ctor_p (decl1)) cp_ubsan_maybe_initialize_vtbl_ptrs (current_class_ptr); ! start_lambda_scope (decl1); return true; } --- 15365,15372 ---- && !implicit_default_ctor_p (decl1)) cp_ubsan_maybe_initialize_vtbl_ptrs (current_class_ptr); ! if (!DECL_OMP_DECLARE_REDUCTION_P (decl1)) ! start_lambda_scope (decl1); return true; } *************** finish_function (bool inline_p) *** 15739,15745 **** if (fndecl == NULL_TREE) return error_mark_node; ! finish_lambda_scope (); if (c_dialect_objc ()) objc_finish_function (); --- 15759,15766 ---- if (fndecl == NULL_TREE) return error_mark_node; ! if (!DECL_OMP_DECLARE_REDUCTION_P (fndecl)) ! finish_lambda_scope (); if (c_dialect_objc ()) objc_finish_function (); *************** finish_function (bool inline_p) *** 15856,15862 **** invoke_plugin_callbacks (PLUGIN_PRE_GENERICIZE, fndecl); /* Perform delayed folding before NRV transformation. */ ! if (!processing_template_decl) cp_fold_function (fndecl); /* Set up the named return value optimization, if we can. Candidate --- 15877,15883 ---- invoke_plugin_callbacks (PLUGIN_PRE_GENERICIZE, fndecl); /* Perform delayed folding before NRV transformation. */ ! if (!processing_template_decl && !DECL_OMP_DECLARE_REDUCTION_P (fndecl)) cp_fold_function (fndecl); /* Set up the named return value optimization, if we can. Candidate *************** finish_function (bool inline_p) *** 15965,15971 **** if (!processing_template_decl) { struct language_function *f = DECL_SAVED_FUNCTION_DATA (fndecl); ! cp_genericize (fndecl); /* Clear out the bits we don't need. */ f->x_current_class_ptr = NULL; f->x_current_class_ref = NULL; --- 15986,15993 ---- if (!processing_template_decl) { struct language_function *f = DECL_SAVED_FUNCTION_DATA (fndecl); ! if (!DECL_OMP_DECLARE_REDUCTION_P (fndecl)) ! cp_genericize (fndecl); /* Clear out the bits we don't need. */ f->x_current_class_ptr = NULL; f->x_current_class_ref = NULL; diff -Nrcpad gcc-8.3.0/gcc/cp/decl2.c gcc-8.4.0/gcc/cp/decl2.c *** gcc-8.3.0/gcc/cp/decl2.c Thu Jul 12 19:37:11 2018 --- gcc-8.4.0/gcc/cp/decl2.c Wed Mar 4 08:30:00 2020 *************** mark_vtable_entries (tree decl) *** 1838,1843 **** --- 1838,1854 ---- } } + /* Adjust the TLS model on variable DECL if need be, typically after + the linkage of DECL has been modified. */ + + static void + adjust_var_decl_tls_model (tree decl) + { + if (CP_DECL_THREAD_LOCAL_P (decl) + && !lookup_attribute ("tls_model", DECL_ATTRIBUTES (decl))) + set_decl_tls_model (decl, decl_default_tls_model (decl)); + } + /* Set DECL up to have the closest approximation of "initialized common" linkage available. */ *************** comdat_linkage (tree decl) *** 1888,1893 **** --- 1899,1907 ---- if (TREE_PUBLIC (decl)) DECL_COMDAT (decl) = 1; + + if (VAR_P (decl)) + adjust_var_decl_tls_model (decl); } /* For win32 we also want to put explicit instantiations in *************** maybe_make_one_only (tree decl) *** 1926,1931 **** --- 1940,1947 ---- /* Mark it needed so we don't forget to emit it. */ node->forced_by_abi = true; TREE_USED (decl) = 1; + + adjust_var_decl_tls_model (decl); } } } *************** get_tls_init_fn (tree var) *** 3357,3363 **** VAR and then returns a reference to VAR. The wrapper function is used in place of VAR everywhere VAR is mentioned. */ ! tree get_tls_wrapper_fn (tree var) { /* Only C++11 TLS vars need this wrapper fn. */ --- 3373,3379 ---- VAR and then returns a reference to VAR. The wrapper function is used in place of VAR everywhere VAR is mentioned. */ ! static tree get_tls_wrapper_fn (tree var) { /* Only C++11 TLS vars need this wrapper fn. */ *************** get_tls_wrapper_fn (tree var) *** 3409,3414 **** --- 3425,3446 ---- return fn; } + /* If EXPR is a thread_local variable that should be wrapped by init + wrapper function, return a call to that function, otherwise return + NULL. */ + + tree + maybe_get_tls_wrapper_call (tree expr) + { + if (VAR_P (expr) + && !processing_template_decl + && !cp_unevaluated_operand + && CP_DECL_THREAD_LOCAL_P (expr)) + if (tree wrap = get_tls_wrapper_fn (expr)) + return build_cxx_call (wrap, 0, NULL, tf_warning_or_error); + return NULL; + } + /* At EOF, generate the definition for the TLS wrapper function FN: T& var_wrapper() { *************** c_parse_final_cleanups (void) *** 4888,4898 **** /* Generate RTL for this function now that we know we need it. */ expand_or_defer_fn (decl); - /* If we're compiling -fsyntax-only pretend that this - function has been written out so that we don't try to - expand it again. */ - if (flag_syntax_only) - TREE_ASM_WRITTEN (decl) = 1; reconsider = true; } } --- 4920,4925 ---- *************** c_parse_final_cleanups (void) *** 4905,4911 **** { if (var_finalized_p (decl) || DECL_REALLY_EXTERN (decl) /* Don't write it out if we haven't seen a definition. */ ! || (DECL_IN_AGGR_P (decl) && !DECL_INLINE_VAR_P (decl))) continue; import_export_decl (decl); /* If this static data member is needed, provide it to the --- 4932,4941 ---- { if (var_finalized_p (decl) || DECL_REALLY_EXTERN (decl) /* Don't write it out if we haven't seen a definition. */ ! || (DECL_IN_AGGR_P (decl) && !DECL_INLINE_VAR_P (decl)) ! /* Or haven't instantiated it. */ ! || (DECL_TEMPLATE_INSTANTIATION (decl) ! && !DECL_TEMPLATE_INSTANTIATED (decl))) continue; import_export_decl (decl); /* If this static data member is needed, provide it to the diff -Nrcpad gcc-8.3.0/gcc/cp/init.c gcc-8.4.0/gcc/cp/init.c *** gcc-8.3.0/gcc/cp/init.c Tue Jan 8 10:20:57 2019 --- gcc-8.4.0/gcc/cp/init.c Wed Mar 4 08:30:00 2020 *************** build_value_init_noctor (tree type, tsub *** 419,424 **** --- 419,433 ---- if (ftype == error_mark_node) continue; + /* Ignore flexible array members for value initialization. */ + if (TREE_CODE (ftype) == ARRAY_TYPE + && !COMPLETE_TYPE_P (ftype) + && !TYPE_DOMAIN (ftype) + && COMPLETE_TYPE_P (TREE_TYPE (ftype)) + && (next_initializable_field (DECL_CHAIN (field)) + == NULL_TREE)) + continue; + /* We could skip vfields and fields of types with user-defined constructors, but I think that won't improve performance at all; it should be simpler in general just *************** constant_value_1 (tree decl, bool strict *** 2269,2276 **** || TREE_CODE (init) == STRING_CST))) break; /* Don't return a CONSTRUCTOR for a variable with partial run-time ! initialization, since it doesn't represent the entire value. */ ! if (TREE_CODE (init) == CONSTRUCTOR && !DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P (decl)) break; /* If the variable has a dynamic initializer, don't use its --- 2278,2288 ---- || TREE_CODE (init) == STRING_CST))) break; /* Don't return a CONSTRUCTOR for a variable with partial run-time ! initialization, since it doesn't represent the entire value. ! Similarly for VECTOR_CSTs created by cp_folding those ! CONSTRUCTORs. */ ! if ((TREE_CODE (init) == CONSTRUCTOR ! || TREE_CODE (init) == VECTOR_CST) && !DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P (decl)) break; /* If the variable has a dynamic initializer, don't use its diff -Nrcpad gcc-8.3.0/gcc/cp/lambda.c gcc-8.4.0/gcc/cp/lambda.c *** gcc-8.3.0/gcc/cp/lambda.c Fri Feb 8 14:50:03 2019 --- gcc-8.4.0/gcc/cp/lambda.c Wed Mar 4 08:30:00 2020 *************** is_normal_capture_proxy (tree decl) *** 278,297 **** /* It's not a capture proxy. */ return false; ! if (variably_modified_type_p (TREE_TYPE (decl), NULL_TREE)) ! /* VLA capture. */ ! return true; ! ! /* It is a capture proxy, is it a normal capture? */ ! tree val = DECL_VALUE_EXPR (decl); ! if (val == error_mark_node) ! return true; ! ! if (TREE_CODE (val) == ADDR_EXPR) ! val = TREE_OPERAND (val, 0); ! gcc_assert (TREE_CODE (val) == COMPONENT_REF); ! val = TREE_OPERAND (val, 1); ! return DECL_NORMAL_CAPTURE_P (val); } /* Returns true iff DECL is a capture proxy for a normal capture --- 278,285 ---- /* It's not a capture proxy. */ return false; ! return (DECL_LANG_SPECIFIC (decl) ! && DECL_CAPTURED_VARIABLE (decl)); } /* Returns true iff DECL is a capture proxy for a normal capture *************** add_capture (tree lambda, tree id, tree *** 612,630 **** IDENTIFIER_LENGTH (id) + 1); name = get_identifier (buf); - /* If TREE_TYPE isn't set, we're still in the introducer, so check - for duplicates. */ - if (!LAMBDA_EXPR_CLOSURE (lambda)) - { - if (IDENTIFIER_MARKED (name)) - { - pedwarn (input_location, 0, - "already captured %qD in lambda expression", id); - return NULL_TREE; - } - IDENTIFIER_MARKED (name) = true; - } - if (variadic) type = make_pack_expansion (type); --- 600,605 ---- *************** register_capture_members (tree captures) *** 685,692 **** if (PACK_EXPANSION_P (field)) field = PACK_EXPANSION_PATTERN (field); - /* We set this in add_capture to avoid duplicates. */ - IDENTIFIER_MARKED (DECL_NAME (field)) = false; finish_member_declaration (field); } --- 660,665 ---- *************** add_default_capture (tree lambda_stack, *** 732,741 **** /* Return the capture pertaining to a use of 'this' in LAMBDA, in the form of an INDIRECT_REF, possibly adding it through default ! capturing, if ADD_CAPTURE_P is true. */ tree ! lambda_expr_this_capture (tree lambda, bool add_capture_p) { tree result; --- 705,715 ---- /* Return the capture pertaining to a use of 'this' in LAMBDA, in the form of an INDIRECT_REF, possibly adding it through default ! capturing, if ADD_CAPTURE_P is nonzero. If ADD_CAPTURE_P is negative, ! try to capture but don't complain if we can't. */ tree ! lambda_expr_this_capture (tree lambda, int add_capture_p) { tree result; *************** lambda_expr_this_capture (tree lambda, b *** 831,837 **** result = this_capture; else if (!this_capture) { ! if (add_capture_p) { error ("% was not captured for this lambda function"); result = error_mark_node; --- 805,811 ---- result = this_capture; else if (!this_capture) { ! if (add_capture_p == 1) { error ("% was not captured for this lambda function"); result = error_mark_node; *************** maybe_generic_this_capture (tree object, *** 935,941 **** && DECL_NONSTATIC_MEMBER_FUNCTION_P (*iter)) { /* Found a non-static member. Capture this. */ ! lambda_expr_this_capture (lam, true); break; } } --- 909,915 ---- && DECL_NONSTATIC_MEMBER_FUNCTION_P (*iter)) { /* Found a non-static member. Capture this. */ ! lambda_expr_this_capture (lam, /*maybe*/-1); break; } } diff -Nrcpad gcc-8.3.0/gcc/cp/mangle.c gcc-8.4.0/gcc/cp/mangle.c *** gcc-8.3.0/gcc/cp/mangle.c Wed Apr 18 05:17:26 2018 --- gcc-8.4.0/gcc/cp/mangle.c Wed Mar 4 08:30:00 2020 *************** decl_mangling_context (tree decl) *** 875,881 **** else if (template_type_parameter_p (decl)) /* template type parms have no mangling context. */ return NULL_TREE; ! return CP_DECL_CONTEXT (decl); } /* ::= --- 875,890 ---- else if (template_type_parameter_p (decl)) /* template type parms have no mangling context. */ return NULL_TREE; ! ! tcontext = CP_DECL_CONTEXT (decl); ! ! /* Ignore the artificial declare reduction functions. */ ! if (tcontext ! && TREE_CODE (tcontext) == FUNCTION_DECL ! && DECL_OMP_DECLARE_REDUCTION_P (tcontext)) ! return decl_mangling_context (tcontext); ! ! return tcontext; } /* ::= *************** write_expression (tree expr) *** 3047,3053 **** { scope = TREE_OPERAND (expr, 0); member = TREE_OPERAND (expr, 1); ! gcc_assert (!BASELINK_P (member)); } else { --- 3056,3063 ---- { scope = TREE_OPERAND (expr, 0); member = TREE_OPERAND (expr, 1); ! if (BASELINK_P (member)) ! member = BASELINK_FUNCTIONS (member); } else { diff -Nrcpad gcc-8.3.0/gcc/cp/method.c gcc-8.4.0/gcc/cp/method.c *** gcc-8.3.0/gcc/cp/method.c Tue Jan 8 09:55:26 2019 --- gcc-8.4.0/gcc/cp/method.c Wed Mar 4 08:30:00 2020 *************** is_xible_helper (enum tree_code code, tr *** 1201,1206 **** --- 1201,1208 ---- expr = assignable_expr (to, from); else if (trivial && from && TREE_CHAIN (from)) return error_mark_node; // only 0- and 1-argument ctors can be trivial + else if (TREE_CODE (to) == ARRAY_TYPE && !TYPE_DOMAIN (to)) + return error_mark_node; // can't construct an array of unknown bound else expr = constructible_expr (to, from); return expr; diff -Nrcpad gcc-8.3.0/gcc/cp/name-lookup.c gcc-8.4.0/gcc/cp/name-lookup.c *** gcc-8.3.0/gcc/cp/name-lookup.c Thu Feb 14 23:02:45 2019 --- gcc-8.4.0/gcc/cp/name-lookup.c Wed Mar 4 08:30:00 2020 *************** name_lookup::adl_expr (tree expr) *** 907,913 **** if (TREE_TYPE (expr) != unknown_type_node) { ! adl_type (TREE_TYPE (expr)); return; } --- 907,913 ---- if (TREE_TYPE (expr) != unknown_type_node) { ! adl_type (unlowered_expr_type (expr)); return; } *************** is_nested_namespace (tree ancestor, tree *** 4198,4235 **** return ancestor == descendant; } ! /* Returns true if ROOT (a namespace, class, or function) encloses ! CHILD. CHILD may be either a class type or a namespace. */ bool is_ancestor (tree root, tree child) { ! gcc_assert ((TREE_CODE (root) == NAMESPACE_DECL ! || TREE_CODE (root) == FUNCTION_DECL ! || CLASS_TYPE_P (root))); ! gcc_assert ((TREE_CODE (child) == NAMESPACE_DECL ! || CLASS_TYPE_P (child))); ! /* The global namespace encloses everything. */ if (root == global_namespace) return true; ! /* Search until we reach namespace scope. */ while (TREE_CODE (child) != NAMESPACE_DECL) { /* If we've reached the ROOT, it encloses CHILD. */ if (root == child) return true; /* Go out one level. */ if (TYPE_P (child)) child = TYPE_NAME (child); child = CP_DECL_CONTEXT (child); } ! if (TREE_CODE (root) == NAMESPACE_DECL) ! return is_nested_namespace (root, child); ! return false; } /* Enter the class or namespace scope indicated by T suitable for name --- 4198,4243 ---- return ancestor == descendant; } ! /* Returns true if ROOT (a non-alias namespace, class, or function) ! encloses CHILD. CHILD may be either a class type or a namespace ! (maybe alias). */ bool is_ancestor (tree root, tree child) { ! gcc_checking_assert ((TREE_CODE (root) == NAMESPACE_DECL ! && !DECL_NAMESPACE_ALIAS (root)) ! || TREE_CODE (root) == FUNCTION_DECL ! || CLASS_TYPE_P (root)); ! gcc_checking_assert (TREE_CODE (child) == NAMESPACE_DECL ! || CLASS_TYPE_P (child)); ! /* The global namespace encloses everything. Early-out for the ! common case. */ if (root == global_namespace) return true; ! /* Search CHILD until we reach namespace scope. */ while (TREE_CODE (child) != NAMESPACE_DECL) { /* If we've reached the ROOT, it encloses CHILD. */ if (root == child) return true; + /* Go out one level. */ if (TYPE_P (child)) child = TYPE_NAME (child); child = CP_DECL_CONTEXT (child); } ! if (TREE_CODE (root) != NAMESPACE_DECL) ! /* Failed to meet the non-namespace we were looking for. */ ! return false; ! if (tree alias = DECL_NAMESPACE_ALIAS (child)) ! child = alias; ! ! return is_nested_namespace (root, child); } /* Enter the class or namespace scope indicated by T suitable for name *************** get_std_name_hint (const char *name) *** 5509,5515 **** {"bitset", "", cxx11}, /* . */ {"complex", "", cxx98}, ! {"complex_literals", "", cxx98}, /* . */ {"condition_variable", "", cxx11}, {"condition_variable_any", "", cxx11}, --- 5517,5523 ---- {"bitset", "", cxx11}, /* . */ {"complex", "", cxx98}, ! {"complex_literals", "", cxx14}, /* . */ {"condition_variable", "", cxx11}, {"condition_variable_any", "", cxx11}, *************** get_std_name_hint (const char *name) *** 5571,5577 **** {"multimap", "", cxx98}, /* . */ {"make_shared", "", cxx11}, ! {"make_unique", "", cxx11}, {"shared_ptr", "", cxx11}, {"unique_ptr", "", cxx11}, {"weak_ptr", "", cxx11}, --- 5579,5585 ---- {"multimap", "", cxx98}, /* . */ {"make_shared", "", cxx11}, ! {"make_unique", "", cxx14}, {"shared_ptr", "", cxx11}, {"unique_ptr", "", cxx11}, {"weak_ptr", "", cxx11}, diff -Nrcpad gcc-8.3.0/gcc/cp/parser.c gcc-8.4.0/gcc/cp/parser.c *** gcc-8.3.0/gcc/cp/parser.c Tue Jan 8 10:25:54 2019 --- gcc-8.4.0/gcc/cp/parser.c Wed Mar 4 08:30:00 2020 *************** static bool cp_parser_init_statement_p *** 2646,2651 **** --- 2646,2652 ---- (cp_parser *); static bool cp_parser_skip_to_closing_square_bracket (cp_parser *); + static size_t cp_parser_skip_balanced_tokens (cp_parser *, size_t); /* Concept-related syntactic transformations */ *************** cp_parser_lambda_introducer (cp_parser* *** 10266,10271 **** --- 10267,10277 ---- first = false; } + hash_set *ids = NULL; + #if GCC_VERSION >= 8000 + char ids_buf[sizeof (hash_set) + __alignof__ (hash_set) - 1]; + #endif + tree first_capture_id = NULL_TREE; while (cp_lexer_next_token_is_not (parser->lexer, CPP_CLOSE_SQUARE)) { cp_token* capture_token; *************** cp_parser_lambda_introducer (cp_parser* *** 10301,10311 **** pedwarn (loc, 0, "explicit by-copy capture of % redundant " "with by-copy capture default"); cp_lexer_consume_token (parser->lexer); ! add_capture (lambda_expr, ! /*id=*/this_identifier, ! /*initializer=*/finish_this_expr (), ! /*by_reference_p=*/true, ! explicit_init_p); continue; } --- 10307,10320 ---- pedwarn (loc, 0, "explicit by-copy capture of % redundant " "with by-copy capture default"); cp_lexer_consume_token (parser->lexer); ! if (LAMBDA_EXPR_THIS_CAPTURE (lambda_expr)) ! pedwarn (input_location, 0, ! "already captured %qD in lambda expression", ! this_identifier); ! else ! add_capture (lambda_expr, /*id=*/this_identifier, ! /*initializer=*/finish_this_expr (), ! /*by_reference_p=*/true, explicit_init_p); continue; } *************** cp_parser_lambda_introducer (cp_parser* *** 10319,10329 **** "-std=c++17 or -std=gnu++17"); cp_lexer_consume_token (parser->lexer); cp_lexer_consume_token (parser->lexer); ! add_capture (lambda_expr, ! /*id=*/this_identifier, ! /*initializer=*/finish_this_expr (), ! /*by_reference_p=*/false, ! explicit_init_p); continue; } --- 10328,10341 ---- "-std=c++17 or -std=gnu++17"); cp_lexer_consume_token (parser->lexer); cp_lexer_consume_token (parser->lexer); ! if (LAMBDA_EXPR_THIS_CAPTURE (lambda_expr)) ! pedwarn (input_location, 0, ! "already captured %qD in lambda expression", ! this_identifier); ! else ! add_capture (lambda_expr, /*id=*/this_identifier, ! /*initializer=*/finish_this_expr (), ! /*by_reference_p=*/false, explicit_init_p); continue; } *************** cp_parser_lambda_introducer (cp_parser* *** 10445,10455 **** "default", capture_id); } ! add_capture (lambda_expr, ! capture_id, ! capture_init_expr, ! /*by_reference_p=*/capture_kind == BY_REFERENCE, ! explicit_init_p); /* If there is any qualification still in effect, clear it now; we will be starting fresh with the next capture. */ --- 10457,10491 ---- "default", capture_id); } ! /* Check for duplicates. ! Optimize for the zero or one explicit captures cases and only create ! the hash_set after adding second capture. */ ! bool found = false; ! if (ids && ids->elements ()) ! found = ids->add (capture_id); ! else if (first_capture_id == NULL_TREE) ! first_capture_id = capture_id; ! else if (capture_id == first_capture_id) ! found = true; ! else ! { ! #if GCC_VERSION >= 8000 ! ids = new (ids_buf ! + (-(uintptr_t) ids_buf ! & (__alignof__ (hash_set ) - 1))) hash_set ; ! #else ! ids = new hash_set ; ! #endif ! ids->add (first_capture_id); ! ids->add (capture_id); ! } ! if (found) ! pedwarn (input_location, 0, ! "already captured %qD in lambda expression", capture_id); ! else ! add_capture (lambda_expr, capture_id, capture_init_expr, ! /*by_reference_p=*/capture_kind == BY_REFERENCE, ! explicit_init_p); /* If there is any qualification still in effect, clear it now; we will be starting fresh with the next capture. */ *************** cp_parser_lambda_introducer (cp_parser* *** 10458,10463 **** --- 10494,10506 ---- parser->object_scope = NULL_TREE; } + if (ids) + #if GCC_VERSION >= 8000 + ids->~hash_set (); + #else + delete ids; + #endif + cp_parser_require (parser, CPP_CLOSE_SQUARE, RT_CLOSE_SQUARE); } *************** cp_parser_decl_specifier_seq (cp_parser* *** 13510,13515 **** --- 13553,13571 ---- case RID_CONCEPT: ds = ds_concept; cp_lexer_consume_token (parser->lexer); + + if (flags & CP_PARSER_FLAGS_ONLY_MUTABLE_OR_CONSTEXPR) + break; + + /* In C++20 a concept definition is just 'concept name = expr;' + Support that syntax by pretending we've seen 'bool'. */ + if (cp_lexer_next_token_is (parser->lexer, CPP_NAME) + && cp_lexer_nth_token_is (parser->lexer, 2, CPP_EQ)) + { + cp_parser_set_decl_spec_type (decl_specs, boolean_type_node, + token, /*type_definition*/false); + decl_specs->any_type_specifiers_p = true; + } break; /* function-specifier: *************** cp_parser_decl_specifier_seq (cp_parser* *** 13528,13533 **** --- 13584,13593 ---- ds = ds_typedef; /* Consume the token. */ cp_lexer_consume_token (parser->lexer); + + if (flags & CP_PARSER_FLAGS_ONLY_MUTABLE_OR_CONSTEXPR) + break; + /* A constructor declarator cannot appear in a typedef. */ constructor_possible_p = false; /* The "typedef" keyword can only occur in a declaration; we *************** cp_parser_decl_specifier_seq (cp_parser* *** 13622,13627 **** --- 13682,13690 ---- bool is_cv_qualifier; tree type_spec; + if (flags & CP_PARSER_FLAGS_ONLY_MUTABLE_OR_CONSTEXPR) + flags |= CP_PARSER_FLAGS_NO_TYPE_DEFINITIONS; + type_spec = cp_parser_type_specifier (parser, flags, decl_specs, *************** cp_parser_template_name (cp_parser* pars *** 16103,16109 **** { if (TREE_DEPRECATED (decl) && deprecated_state != DEPRECATED_SUPPRESS) ! warn_deprecated_use (decl, NULL_TREE); } else { --- 16166,16182 ---- { if (TREE_DEPRECATED (decl) && deprecated_state != DEPRECATED_SUPPRESS) ! { ! tree d = DECL_TEMPLATE_RESULT (decl); ! tree attr; ! if (TREE_CODE (d) == TYPE_DECL) ! attr = lookup_attribute ("deprecated", ! TYPE_ATTRIBUTES (TREE_TYPE (d))); ! else ! attr = lookup_attribute ("deprecated", ! DECL_ATTRIBUTES (d)); ! warn_deprecated_use (decl, attr); ! } } else { *************** cp_parser_using_declaration (cp_parser* *** 18773,18779 **** /*is_declaration=*/true); if (!qscope) qscope = global_namespace; ! else if (UNSCOPED_ENUM_P (qscope)) qscope = CP_TYPE_CONTEXT (qscope); if (access_declaration_p && cp_parser_error_occurred (parser)) --- 18846,18853 ---- /*is_declaration=*/true); if (!qscope) qscope = global_namespace; ! else if (UNSCOPED_ENUM_P (qscope) ! && !TYPE_FUNCTION_SCOPE_P (qscope)) qscope = CP_TYPE_CONTEXT (qscope); if (access_declaration_p && cp_parser_error_occurred (parser)) *************** cp_parser_asm_definition (cp_parser* par *** 19125,19132 **** location_t volatile_loc = UNKNOWN_LOCATION; location_t inline_loc = UNKNOWN_LOCATION; location_t goto_loc = UNKNOWN_LOCATION; ! if (cp_parser_allow_gnu_extensions_p (parser) && parser->in_function_body) for (;;) { cp_token *token = cp_lexer_peek_token (parser->lexer); --- 19199,19207 ---- location_t volatile_loc = UNKNOWN_LOCATION; location_t inline_loc = UNKNOWN_LOCATION; location_t goto_loc = UNKNOWN_LOCATION; + location_t first_loc = UNKNOWN_LOCATION; ! if (cp_parser_allow_gnu_extensions_p (parser)) for (;;) { cp_token *token = cp_lexer_peek_token (parser->lexer); *************** cp_parser_asm_definition (cp_parser* par *** 19152,19157 **** --- 19227,19234 ---- } else inline_loc = loc; + if (!first_loc) + first_loc = loc; cp_lexer_consume_token (parser->lexer); continue; *************** cp_parser_asm_definition (cp_parser* par *** 19163,19168 **** --- 19240,19247 ---- } else goto_loc = loc; + if (!first_loc) + first_loc = loc; cp_lexer_consume_token (parser->lexer); continue; *************** cp_parser_asm_definition (cp_parser* par *** 19182,19187 **** --- 19261,19272 ---- bool inline_p = (inline_loc != UNKNOWN_LOCATION); bool goto_p = (goto_loc != UNKNOWN_LOCATION); + if (!parser->in_function_body && (inline_p || goto_p)) + { + error_at (first_loc, "asm qualifier outside of function body"); + inline_p = goto_p = false; + } + /* Look for the opening `('. */ if (!cp_parser_require (parser, CPP_OPEN_PAREN, RT_OPEN_PAREN)) return; *************** cp_parser_std_attribute (cp_parser *pars *** 25326,25331 **** --- 25411,25427 ---- /* A GNU attribute that takes an identifier in parameter. */ attr_flag = id_attr; + const attribute_spec *as + = lookup_attribute_spec (TREE_PURPOSE (attribute)); + if (as == NULL) + { + /* For unknown attributes, just skip balanced tokens instead of + trying to parse the arguments. */ + for (size_t n = cp_parser_skip_balanced_tokens (parser, 1) - 1; n; --n) + cp_lexer_consume_token (parser->lexer); + return attribute; + } + vec = cp_parser_parenthesized_expression_list (parser, attr_flag, /*cast_p=*/false, /*allow_expansion_p=*/true, *************** cp_parser_constructor_declarator_p (cp_p *** 26725,26736 **** /* A parameter declaration begins with a decl-specifier, which is either the "attribute" keyword, a storage class specifier, or (usually) a type-specifier. */ ! && !cp_lexer_next_token_is_decl_specifier_keyword (parser->lexer)) { tree type; tree pushed_scope = NULL_TREE; unsigned saved_num_template_parameter_lists; /* Names appearing in the type-specifier should be looked up in the scope of the class. */ if (current_class_type) --- 26821,26847 ---- /* A parameter declaration begins with a decl-specifier, which is either the "attribute" keyword, a storage class specifier, or (usually) a type-specifier. */ ! && (!cp_lexer_next_token_is_decl_specifier_keyword (parser->lexer) ! /* GNU attributes can actually appear both at the start of ! a parameter and parenthesized declarator. ! S (__attribute__((unused)) int); ! is a constructor, but ! S (__attribute__((unused)) foo) (int); ! is a function declaration. */ ! || (cp_parser_allow_gnu_extensions_p (parser) ! && cp_next_tokens_can_be_gnu_attribute_p (parser)))) { tree type; tree pushed_scope = NULL_TREE; unsigned saved_num_template_parameter_lists; + if (cp_next_tokens_can_be_gnu_attribute_p (parser)) + { + unsigned int n = cp_parser_skip_gnu_attributes_opt (parser, 1); + while (--n) + cp_lexer_consume_token (parser->lexer); + } + /* Names appearing in the type-specifier should be looked up in the scope of the class. */ if (current_class_type) *************** cp_parser_omp_clause_dist_schedule (cp_p *** 33599,33606 **** else if (!cp_parser_require (parser, CPP_CLOSE_PAREN, RT_COMMA_CLOSE_PAREN)) goto resync_fail; ! check_no_duplicate_clause (list, OMP_CLAUSE_DIST_SCHEDULE, "dist_schedule", ! location); OMP_CLAUSE_CHAIN (c) = list; return c; --- 33710,33719 ---- else if (!cp_parser_require (parser, CPP_CLOSE_PAREN, RT_COMMA_CLOSE_PAREN)) goto resync_fail; ! /* check_no_duplicate_clause (list, OMP_CLAUSE_DIST_SCHEDULE, ! "dist_schedule", location); */ ! if (omp_find_clause (list, OMP_CLAUSE_DIST_SCHEDULE)) ! warning_at (location, 0, "too many %qs clauses", "dist_schedule"); OMP_CLAUSE_CHAIN (c) = list; return c; *************** cp_parser_omp_declare_reduction_exprs (t *** 37527,37532 **** --- 37640,37647 ---- combiner = cp_parser_expression (parser); finish_expr_stmt (combiner); block = finish_omp_structured_block (block); + if (processing_template_decl) + block = build_stmt (input_location, EXPR_STMT, block); add_stmt (block); if (!cp_parser_require (parser, CPP_CLOSE_PAREN, RT_CLOSE_PAREN)) *************** cp_parser_omp_declare_reduction_exprs (t *** 37629,37634 **** --- 37744,37751 ---- block = finish_omp_structured_block (block); cp_walk_tree (&block, cp_remove_omp_priv_cleanup_stmt, omp_priv, NULL); + if (processing_template_decl) + block = build_stmt (input_location, EXPR_STMT, block); add_stmt (block); if (ctor) *************** cp_parser_initial_pragma (cp_token *firs *** 38680,38686 **** cp_lexer_get_preprocessor_token (NULL, first_token); if (cp_parser_pragma_kind (first_token) != PRAGMA_GCC_PCH_PREPROCESS) ! return; cp_lexer_get_preprocessor_token (NULL, first_token); if (first_token->type == CPP_STRING) --- 38797,38806 ---- cp_lexer_get_preprocessor_token (NULL, first_token); if (cp_parser_pragma_kind (first_token) != PRAGMA_GCC_PCH_PREPROCESS) ! { ! c_common_no_more_pch (); ! return; ! } cp_lexer_get_preprocessor_token (NULL, first_token); if (first_token->type == CPP_STRING) diff -Nrcpad gcc-8.3.0/gcc/cp/pt.c gcc-8.4.0/gcc/cp/pt.c *** gcc-8.3.0/gcc/cp/pt.c Thu Feb 14 23:14:56 2019 --- gcc-8.4.0/gcc/cp/pt.c Wed Mar 4 08:30:00 2020 *************** template_class_depth (tree type) *** 398,403 **** --- 398,433 ---- return depth; } + /* Return TRUE if NODE instantiates a template that has arguments of + its own, be it directly a primary template or indirectly through a + partial specializations. */ + static bool + instantiates_primary_template_p (tree node) + { + tree tinfo = get_template_info (node); + if (!tinfo) + return false; + + tree tmpl = TI_TEMPLATE (tinfo); + if (PRIMARY_TEMPLATE_P (tmpl)) + return true; + + if (!DECL_TEMPLATE_SPECIALIZATION (tmpl)) + return false; + + /* So now we know we have a specialization, but it could be a full + or a partial specialization. To tell which, compare the depth of + its template arguments with those of its context. */ + + tree ctxt = DECL_CONTEXT (tmpl); + tree ctinfo = get_template_info (ctxt); + if (!ctinfo) + return true; + + return (TMPL_ARGS_DEPTH (TI_ARGS (tinfo)) + > TMPL_ARGS_DEPTH (TI_ARGS (ctinfo))); + } + /* Subroutine of maybe_begin_member_template_processing. Returns true if processing DECL needs us to push template parms. */ *************** make_pack_expansion (tree arg, tsubst_fl *** 3944,3950 **** class expansion. */ ppd.visited = new hash_set; ppd.parameter_packs = ¶meter_packs; ! ppd.type_pack_expansion_p = true; gcc_assert (TYPE_P (TREE_PURPOSE (arg))); cp_walk_tree (&TREE_PURPOSE (arg), &find_parameter_packs_r, &ppd, ppd.visited); --- 3974,3980 ---- class expansion. */ ppd.visited = new hash_set; ppd.parameter_packs = ¶meter_packs; ! ppd.type_pack_expansion_p = false; gcc_assert (TYPE_P (TREE_PURPOSE (arg))); cp_walk_tree (&TREE_PURPOSE (arg), &find_parameter_packs_r, &ppd, ppd.visited); *************** tsubst_friend_class (tree friend_tmpl, t *** 10550,10556 **** if (TREE_CODE (context) == NAMESPACE_DECL) push_nested_namespace (context); else ! push_nested_class (context); tmpl = lookup_name_real (DECL_NAME (friend_tmpl), /*prefer_type=*/false, /*non_class=*/false, /*block_p=*/false, --- 10580,10589 ---- if (TREE_CODE (context) == NAMESPACE_DECL) push_nested_namespace (context); else ! { ! context = tsubst (context, args, tf_error, NULL_TREE); ! push_nested_class (context); ! } tmpl = lookup_name_real (DECL_NAME (friend_tmpl), /*prefer_type=*/false, /*non_class=*/false, /*block_p=*/false, *************** fold_expression (tree t, tree left, tree *** 11732,11739 **** { case COMPOUND_EXPR: return build_x_compound_expr (input_location, left, right, complain); - case DOTSTAR_EXPR: - return build_m_component_ref (left, right, complain); default: return build_x_binary_op (input_location, code, left, TREE_CODE (left), --- 11765,11770 ---- *************** tsubst_function_decl (tree t, tree args, *** 13023,13028 **** --- 13054,13064 ---- set_constraints (r, ci); } + if (DECL_FRIEND_P (t) && DECL_FRIEND_CONTEXT (t)) + SET_DECL_FRIEND_CONTEXT (r, + tsubst (DECL_FRIEND_CONTEXT (t), + args, complain, in_decl)); + /* Set up the DECL_TEMPLATE_INFO for R. There's no need to do this in the special friend case mentioned above where GEN_TMPL is NULL. */ *************** tsubst_function_decl (tree t, tree args, *** 13084,13094 **** && !grok_op_properties (r, /*complain=*/true)) return error_mark_node; - if (DECL_FRIEND_P (t) && DECL_FRIEND_CONTEXT (t)) - SET_DECL_FRIEND_CONTEXT (r, - tsubst (DECL_FRIEND_CONTEXT (t), - args, complain, in_decl)); - /* Possibly limit visibility based on template args. */ DECL_VISIBILITY (r) = VISIBILITY_DEFAULT; if (DECL_VISIBILITY_SPECIFIED (t)) --- 13120,13125 ---- *************** tsubst_decl (tree t, tree args, tsubst_f *** 13360,13366 **** /* Zero-length parameter packs are boring. Just substitute into the chain. */ ! if (len == 0) RETURN (tsubst (TREE_CHAIN (t), args, complain, TREE_CHAIN (t))); } --- 13391,13397 ---- /* Zero-length parameter packs are boring. Just substitute into the chain. */ ! if (len == 0 && !cp_unevaluated_operand) RETURN (tsubst (TREE_CHAIN (t), args, complain, TREE_CHAIN (t))); } *************** tsubst_copy_and_build (tree t, *** 18797,18802 **** --- 18828,18839 ---- looked up by digest_init. */ process_index_p = !(type && MAYBE_CLASS_TYPE_P (type)); + if (null_member_pointer_value_p (t)) + { + gcc_assert (same_type_p (type, TREE_TYPE (t))); + RETURN (t); + } + n = vec_safe_copy (CONSTRUCTOR_ELTS (t)); newlen = vec_safe_length (n); FOR_EACH_VEC_SAFE_ELT (n, idx, ce) *************** tsubst_copy_and_build (tree t, *** 18890,18906 **** { tree r = tsubst_copy (t, args, complain, in_decl); /* ??? We're doing a subset of finish_id_expression here. */ ! if (VAR_P (r) ! && !processing_template_decl ! && !cp_unevaluated_operand ! && (TREE_STATIC (r) || DECL_EXTERNAL (r)) ! && CP_DECL_THREAD_LOCAL_P (r)) ! { ! if (tree wrap = get_tls_wrapper_fn (r)) ! /* Replace an evaluated use of the thread_local variable with ! a call to its wrapper. */ ! r = build_cxx_call (wrap, 0, NULL, tf_warning_or_error); ! } else if (outer_automatic_var_p (r)) r = process_outer_var_ref (r, complain); --- 18927,18936 ---- { tree r = tsubst_copy (t, args, complain, in_decl); /* ??? We're doing a subset of finish_id_expression here. */ ! if (tree wrap = maybe_get_tls_wrapper_call (r)) ! /* Replace an evaluated use of the thread_local variable with ! a call to its wrapper. */ ! r = wrap; else if (outer_automatic_var_p (r)) r = process_outer_var_ref (r, complain); *************** type_unification_real (tree tparms, *** 20465,20472 **** } else { tree substed = NULL_TREE; ! if (saw_undeduced == 1 && processing_template_decl == 0) { /* First instatiate in template context, in case we still depend on undeduced template parameters. */ --- 20495,20509 ---- } else { + /* Even if the call is happening in template context, getting + here means it's non-dependent, and a default argument is + considered a separate definition under [temp.decls], so we can + do this substitution without processing_template_decl. This + is important if the default argument contains something that + might be instantiation-dependent like access (87480). */ + processing_template_decl_sentinel s; tree substed = NULL_TREE; ! if (saw_undeduced == 1) { /* First instatiate in template context, in case we still depend on undeduced template parameters. */ *************** most_specialized_partial_spec (tree targ *** 22982,22987 **** --- 23019,23029 ---- args = INNERMOST_TEMPLATE_ARGS (args); } + /* The caller hasn't called push_to_top_level yet, but we need + get_partial_spec_bindings to be done in non-template context so that we'll + fully resolve everything. */ + processing_template_decl_sentinel ptds; + for (t = DECL_TEMPLATE_SPECIALIZATIONS (main_tmpl); t; t = TREE_CHAIN (t)) { tree spec_args; *************** type_dependent_expression_p (tree expres *** 25169,25175 **** that come from the template-id; the template arguments for the enclosing class do not make it type-dependent unless they are used in the type of the decl. */ ! if (PRIMARY_TEMPLATE_P (DECL_TI_TEMPLATE (expression)) && (any_dependent_template_arguments_p (INNERMOST_TEMPLATE_ARGS (DECL_TI_ARGS (expression))))) return true; --- 25211,25217 ---- that come from the template-id; the template arguments for the enclosing class do not make it type-dependent unless they are used in the type of the decl. */ ! if (instantiates_primary_template_p (expression) && (any_dependent_template_arguments_p (INNERMOST_TEMPLATE_ARGS (DECL_TI_ARGS (expression))))) return true; *************** make_auto (void) *** 25998,26005 **** tree make_template_placeholder (tree tmpl) { ! tree t = make_auto_1 (DECL_NAME (tmpl), true); CLASS_PLACEHOLDER_TEMPLATE (t) = tmpl; return t; } --- 26040,26049 ---- tree make_template_placeholder (tree tmpl) { ! tree t = make_auto_1 (DECL_NAME (tmpl), false); CLASS_PLACEHOLDER_TEMPLATE (t) = tmpl; + /* Our canonical type depends on the placeholder. */ + TYPE_CANONICAL (t) = canonical_type_parameter (t); return t; } *************** do_class_deduction (tree ptype, tree tmp *** 26534,26539 **** --- 26578,26586 ---- error ("non-class template %qT used without template arguments", tmpl); return error_mark_node; } + if (init && TREE_TYPE (init) == ptype) + /* Using the template parm as its own argument. */ + return ptype; tree type = TREE_TYPE (tmpl); *************** do_class_deduction (tree ptype, tree tmp *** 26601,26607 **** tree outer_args = NULL_TREE; if (DECL_CLASS_SCOPE_P (tmpl) ! && CLASSTYPE_TEMPLATE_INFO (DECL_CONTEXT (tmpl))) { outer_args = CLASSTYPE_TI_ARGS (DECL_CONTEXT (tmpl)); type = TREE_TYPE (most_general_template (tmpl)); --- 26648,26654 ---- tree outer_args = NULL_TREE; if (DECL_CLASS_SCOPE_P (tmpl) ! && CLASSTYPE_TEMPLATE_INSTANTIATION (DECL_CONTEXT (tmpl))) { outer_args = CLASSTYPE_TI_ARGS (DECL_CONTEXT (tmpl)); type = TREE_TYPE (most_general_template (tmpl)); diff -Nrcpad gcc-8.3.0/gcc/cp/semantics.c gcc-8.4.0/gcc/cp/semantics.c *** gcc-8.3.0/gcc/cp/semantics.c Thu Feb 7 14:40:13 2019 --- gcc-8.4.0/gcc/cp/semantics.c Wed Mar 4 08:30:00 2020 *************** maybe_convert_cond (tree cond) *** 645,654 **** return NULL_TREE; /* Wait until we instantiate templates before doing conversion. */ ! if (processing_template_decl) return cond; ! if (warn_sequence_point) verify_sequence_points (cond); /* Do the conversion. */ --- 645,657 ---- return NULL_TREE; /* Wait until we instantiate templates before doing conversion. */ ! if (processing_template_decl ! && (type_dependent_expression_p (cond) ! /* For GCC 8 only convert non-dependent condition in a lambda. */ ! || !current_lambda_expr ())) return cond; ! if (warn_sequence_point && !processing_template_decl) verify_sequence_points (cond); /* Do the conversion. */ *************** finish_non_static_data_member (tree decl *** 1841,1847 **** if (current_class_ptr) TREE_USED (current_class_ptr) = 1; ! if (processing_template_decl && !qualifying_scope) { tree type = TREE_TYPE (decl); --- 1844,1850 ---- if (current_class_ptr) TREE_USED (current_class_ptr) = 1; ! if (processing_template_decl) { tree type = TREE_TYPE (decl); *************** finish_non_static_data_member (tree decl *** 1862,1878 **** type = cp_build_qualified_type (type, quals); } ! ret = (convert_from_reference ! (build_min (COMPONENT_REF, type, object, decl, NULL_TREE))); } /* If PROCESSING_TEMPLATE_DECL is nonzero here, then ! QUALIFYING_SCOPE is also non-null. Wrap this in a SCOPE_REF ! for now. */ ! else if (processing_template_decl) ! ret = build_qualified_name (TREE_TYPE (decl), ! qualifying_scope, ! decl, ! /*template_p=*/false); else { tree access_type = TREE_TYPE (object); --- 1865,1880 ---- type = cp_build_qualified_type (type, quals); } ! if (qualifying_scope) ! /* Wrap this in a SCOPE_REF for now. */ ! ret = build_qualified_name (type, qualifying_scope, decl, ! /*template_p=*/false); ! else ! ret = (convert_from_reference ! (build_min (COMPONENT_REF, type, object, decl, NULL_TREE))); } /* If PROCESSING_TEMPLATE_DECL is nonzero here, then ! QUALIFYING_SCOPE is also non-null. */ else { tree access_type = TREE_TYPE (object); *************** finish_qualified_id_expr (tree qualifyin *** 2099,2104 **** --- 2101,2114 ---- expr = build_offset_ref (qualifying_class, expr, /*address_p=*/false, complain); } + else if (!template_p + && TREE_CODE (expr) == TEMPLATE_DECL + && !DECL_FUNCTION_TEMPLATE_P (expr)) + { + if (complain & tf_error) + error ("%qE missing template arguments", expr); + return error_mark_node; + } else { /* In a template, return a SCOPE_REF for most qualified-ids *************** finish_qualified_id_expr (tree qualifyin *** 2114,2119 **** --- 2124,2131 ---- expr = build_qualified_name (TREE_TYPE (expr), qualifying_class, expr, template_p); + else if (tree wrap = maybe_get_tls_wrapper_call (expr)) + expr = wrap; expr = convert_from_reference (expr); } *************** finish_id_expression (tree id_expression *** 3709,3726 **** *non_integral_constant_expression_p = true; } ! tree wrap; ! if (VAR_P (decl) ! && !cp_unevaluated_operand ! && !processing_template_decl ! && (TREE_STATIC (decl) || DECL_EXTERNAL (decl)) ! && CP_DECL_THREAD_LOCAL_P (decl) ! && (wrap = get_tls_wrapper_fn (decl))) ! { ! /* Replace an evaluated use of the thread_local variable with ! a call to its wrapper. */ ! decl = build_cxx_call (wrap, 0, NULL, tf_warning_or_error); ! } else if (TREE_CODE (decl) == TEMPLATE_ID_EXPR && !dependent_p && variable_template_p (TREE_OPERAND (decl, 0))) --- 3721,3730 ---- *non_integral_constant_expression_p = true; } ! if (tree wrap = maybe_get_tls_wrapper_call (decl)) ! /* Replace an evaluated use of the thread_local variable with ! a call to its wrapper. */ ! decl = wrap; else if (TREE_CODE (decl) == TEMPLATE_ID_EXPR && !dependent_p && variable_template_p (TREE_OPERAND (decl, 0))) *************** expand_or_defer_fn_1 (tree fn) *** 4229,4235 **** if (DECL_INTERFACE_KNOWN (fn)) /* We've already made a decision as to how this function will be handled. */; ! else if (!at_eof) tentative_decl_linkage (fn); else import_export_decl (fn); --- 4233,4239 ---- if (DECL_INTERFACE_KNOWN (fn)) /* We've already made a decision as to how this function will be handled. */; ! else if (!at_eof || DECL_OMP_DECLARE_REDUCTION_P (fn)) tentative_decl_linkage (fn); else import_export_decl (fn); *************** expand_or_defer_fn_1 (tree fn) *** 4240,4245 **** --- 4244,4250 ---- be emitted; there may be callers in other DLLs. */ if (DECL_DECLARED_INLINE_P (fn) && !DECL_REALLY_EXTERN (fn) + && !DECL_OMP_DECLARE_REDUCTION_P (fn) && (flag_keep_inline_functions || (flag_keep_inline_dllexport && lookup_attribute ("dllexport", DECL_ATTRIBUTES (fn))))) *************** expand_or_defer_fn_1 (tree fn) *** 4265,4270 **** --- 4270,4283 ---- /* There's no reason to do any of the work here if we're only doing semantic analysis; this code just generates RTL. */ if (flag_syntax_only) + { + /* Pretend that this function has been written out so that we don't try + to expand it again. */ + TREE_ASM_WRITTEN (fn) = 1; + return false; + } + + if (DECL_OMP_DECLARE_REDUCTION_P (fn)) return false; return true; *************** finish_omp_clauses (tree clauses, enum c *** 7305,7311 **** t = require_complete_type (t); if (t == error_mark_node) remove = true; ! else if (TREE_CODE (TREE_TYPE (t)) == REFERENCE_TYPE && !complete_type_or_else (TREE_TYPE (TREE_TYPE (t)), t)) remove = true; } --- 7318,7325 ---- t = require_complete_type (t); if (t == error_mark_node) remove = true; ! else if (!processing_template_decl ! && TREE_CODE (TREE_TYPE (t)) == REFERENCE_TYPE && !complete_type_or_else (TREE_TYPE (TREE_TYPE (t)), t)) remove = true; } *************** finish_omp_atomic (enum tree_code code, *** 8452,8457 **** --- 8466,8476 ---- stmt = build2 (OMP_ATOMIC, void_type_node, integer_zero_node, stmt); OMP_ATOMIC_SEQ_CST (stmt) = seq_cst; } + + /* Avoid -Wunused-value warnings here, the whole construct has side-effects + and even if it might be wrapped from fold-const.c or c-omp.c wrapped + in some tree that appears to be unused, the value is not unused. */ + warning_sentinel w (warn_unused_value); finish_expr_stmt (stmt); } diff -Nrcpad gcc-8.3.0/gcc/cp/tree.c gcc-8.4.0/gcc/cp/tree.c *** gcc-8.3.0/gcc/cp/tree.c Sun Jan 27 20:31:37 2019 --- gcc-8.4.0/gcc/cp/tree.c Wed Mar 4 08:30:00 2020 *************** replace_placeholders_r (tree* t, int* wa *** 3192,3197 **** --- 3192,3202 ---- tree type = TREE_TYPE (*valp); tree subob = obj; + /* Elements with RANGE_EXPR index shouldn't have any + placeholders in them. */ + if (ce->index && TREE_CODE (ce->index) == RANGE_EXPR) + continue; + if (TREE_CODE (*valp) == CONSTRUCTOR && AGGREGATE_TYPE_P (type)) { diff -Nrcpad gcc-8.3.0/gcc/cp/typeck.c gcc-8.4.0/gcc/cp/typeck.c *** gcc-8.3.0/gcc/cp/typeck.c Thu Feb 7 14:33:51 2019 --- gcc-8.4.0/gcc/cp/typeck.c Wed Mar 4 08:30:00 2020 *************** along with GCC; see the file COPYING3. *** 40,45 **** --- 40,46 ---- #include "stringpool.h" #include "attribs.h" #include "asan.h" + #include "gimplify.h" static tree cp_build_addr_expr_strict (tree, tsubst_flags_t); static tree cp_build_function_call (tree, tree, tsubst_flags_t); *************** structural_comptypes (tree t1, tree t2, *** 1383,1388 **** --- 1384,1394 ---- template parameters set, they can't be equal. */ if (!comp_template_parms_position (t1, t2)) return false; + /* If T1 and T2 don't represent the same class template deduction, + they aren't equal. */ + if (CLASS_PLACEHOLDER_TEMPLATE (t1) + != CLASS_PLACEHOLDER_TEMPLATE (t2)) + return false; /* Constrained 'auto's are distinct from parms that don't have the same constraints. */ if (!equivalent_placeholder_constraints (t1, t2)) *************** build_class_member_access_expr (cp_expr *** 2437,2442 **** --- 2443,2454 ---- /* A static data member. */ result = member; mark_exp_read (object); + + if (tree wrap = maybe_get_tls_wrapper_call (result)) + /* Replace an evaluated use of the thread_local variable with + a call to its wrapper. */ + result = wrap; + /* If OBJECT has side-effects, they are supposed to occur. */ if (TREE_SIDE_EFFECTS (object)) result = build2 (COMPOUND_EXPR, TREE_TYPE (result), object, result); *************** cp_truthvalue_conversion (tree expr) *** 5747,5764 **** return c_common_truthvalue_conversion (input_location, expr); } ! /* Just like cp_truthvalue_conversion, but we want a CLEANUP_POINT_EXPR. */ tree condition_conversion (tree expr) { tree t; - /* Anything that might happen in a template should go through - maybe_convert_cond. */ - gcc_assert (!processing_template_decl); t = perform_implicit_conversion_flags (boolean_type_node, expr, tf_warning_or_error, LOOKUP_NORMAL); ! t = fold_build_cleanup_point_expr (boolean_type_node, t); return t; } --- 5759,5775 ---- return c_common_truthvalue_conversion (input_location, expr); } ! /* Just like cp_truthvalue_conversion, but we want a CLEANUP_POINT_EXPR. This ! is a low-level function; most callers should use maybe_convert_cond. */ tree condition_conversion (tree expr) { tree t; t = perform_implicit_conversion_flags (boolean_type_node, expr, tf_warning_or_error, LOOKUP_NORMAL); ! if (!processing_template_decl) ! t = fold_build_cleanup_point_expr (boolean_type_node, t); return t; } *************** cp_build_modify_expr (location_t loc, tr *** 7983,7990 **** /* Produce (a ? (b = rhs) : (c = rhs)) except that the RHS goes through a save-expr so the code to compute it is only emitted once. */ - tree cond; - if (VOID_TYPE_P (TREE_TYPE (rhs))) { if (complain & tf_error) --- 7994,7999 ---- *************** cp_build_modify_expr (location_t loc, tr *** 7999,8011 **** if (!lvalue_or_else (lhs, lv_assign, complain)) return error_mark_node; ! cond = build_conditional_expr ! (input_location, TREE_OPERAND (lhs, 0), ! cp_build_modify_expr (loc, TREE_OPERAND (lhs, 1), ! modifycode, rhs, complain), ! cp_build_modify_expr (loc, TREE_OPERAND (lhs, 2), ! modifycode, rhs, complain), ! complain); if (cond == error_mark_node) return cond; --- 8008,8028 ---- if (!lvalue_or_else (lhs, lv_assign, complain)) return error_mark_node; ! tree op1 = cp_build_modify_expr (loc, TREE_OPERAND (lhs, 1), ! modifycode, rhs, complain); ! /* When sanitizing undefined behavior, even when rhs doesn't need ! stabilization at this point, the sanitization might add extra ! SAVE_EXPRs in there and so make sure there is no tree sharing ! in the rhs, otherwise those SAVE_EXPRs will have initialization ! only in one of the two branches. */ ! if (sanitize_flags_p (SANITIZE_UNDEFINED ! | SANITIZE_UNDEFINED_NONDEFAULT)) ! rhs = unshare_expr (rhs); ! tree op2 = cp_build_modify_expr (loc, TREE_OPERAND (lhs, 2), ! modifycode, rhs, complain); ! tree cond = build_conditional_expr (input_location, ! TREE_OPERAND (lhs, 0), op1, op2, ! complain); if (cond == error_mark_node) return cond; *************** maybe_warn_about_returning_address_of_lo *** 9092,9099 **** tree base = DECL_DECOMP_BASE (whats_returned); if (TREE_CODE (TREE_TYPE (base)) == REFERENCE_TYPE) { ! tree init = DECL_INITIAL (base); ! return maybe_warn_about_returning_address_of_local (init); } } if (TREE_CODE (valtype) == REFERENCE_TYPE) --- 9109,9118 ---- tree base = DECL_DECOMP_BASE (whats_returned); if (TREE_CODE (TREE_TYPE (base)) == REFERENCE_TYPE) { ! if (tree init = DECL_INITIAL (base)) ! return maybe_warn_about_returning_address_of_local (init); ! else ! return false; } } if (TREE_CODE (valtype) == REFERENCE_TYPE) diff -Nrcpad gcc-8.3.0/gcc/cp/typeck2.c gcc-8.4.0/gcc/cp/typeck2.c *** gcc-8.3.0/gcc/cp/typeck2.c Wed Jun 27 03:06:43 2018 --- gcc-8.4.0/gcc/cp/typeck2.c Wed Mar 4 08:30:00 2020 *************** digest_init_r (tree type, tree init, int *** 1142,1149 **** { tree elt = CONSTRUCTOR_ELT (init, 0)->value; if (reference_related_p (type, TREE_TYPE (elt))) ! /* We should have fixed this in reshape_init. */ ! gcc_unreachable (); } if (BRACE_ENCLOSED_INITIALIZER_P (init) --- 1142,1170 ---- { tree elt = CONSTRUCTOR_ELT (init, 0)->value; if (reference_related_p (type, TREE_TYPE (elt))) ! { ! /* In C++17, aggregates can have bases, thus participate in ! aggregate initialization. In the following case: ! ! struct B { int c; }; ! struct D : B { }; ! D d{{D{{42}}}}; ! ! there's an extra set of braces, so the D temporary initializes ! the first element of d, which is the B base subobject. The base ! of type B is copy-initialized from the D temporary, causing ! object slicing. */ ! tree field = next_initializable_field (TYPE_FIELDS (type)); ! if (field && DECL_FIELD_IS_BASE (field)) ! { ! if (warning_at (loc, 0, "initializing a base class of type %qT " ! "results in object slicing", TREE_TYPE (field))) ! inform (loc, "remove %<{ }%> around initializer"); ! } ! else ! /* We should have fixed this in reshape_init. */ ! gcc_unreachable (); ! } } if (BRACE_ENCLOSED_INITIALIZER_P (init) *************** digest_nsdmi_init (tree decl, tree init, *** 1203,1208 **** --- 1224,1231 ---- gcc_assert (TREE_CODE (decl) == FIELD_DECL); tree type = TREE_TYPE (decl); + if (DECL_BIT_FIELD_TYPE (decl)) + type = DECL_BIT_FIELD_TYPE (decl); int flags = LOOKUP_IMPLICIT; if (DIRECT_LIST_INIT_P (init)) flags = LOOKUP_NORMAL; *************** process_init_constructor_record (tree ty *** 1515,1526 **** else return PICFLAG_ERRONEOUS; } /* Warn when some struct elements are implicitly initialized ! to zero. However, avoid issuing the warning for flexible ! array members since they need not have any elements. */ ! if ((TREE_CODE (fldtype) != ARRAY_TYPE || TYPE_DOMAIN (fldtype)) ! && (complain & tf_warning) && !EMPTY_CONSTRUCTOR_P (init)) warning (OPT_Wmissing_field_initializers, "missing initializer for member %qD", field); --- 1538,1552 ---- else return PICFLAG_ERRONEOUS; } + /* Do nothing for flexible array members since they need not have any + elements. Don't worry about 'skipped' because a flexarray has to + be the last field. */ + else if (TREE_CODE (fldtype) == ARRAY_TYPE && !TYPE_DOMAIN (fldtype)) + continue; /* Warn when some struct elements are implicitly initialized ! to zero. */ ! if ((complain & tf_warning) && !EMPTY_CONSTRUCTOR_P (init)) warning (OPT_Wmissing_field_initializers, "missing initializer for member %qD", field); *************** process_init_constructor_record (tree ty *** 1538,1543 **** --- 1564,1576 ---- } } + if (DECL_SIZE (field) && integer_zerop (DECL_SIZE (field)) + && !TREE_SIDE_EFFECTS (next)) + /* Don't add trivial initialization of an empty base/field to the + constructor, as they might not be ordered the way the back-end + expects. */ + continue; + /* If this is a bitfield, now convert to the lowered type. */ if (type != TREE_TYPE (field)) next = cp_convert_and_check (TREE_TYPE (field), next, complain); diff -Nrcpad gcc-8.3.0/gcc/cp/vtable-class-hierarchy.c gcc-8.4.0/gcc/cp/vtable-class-hierarchy.c *** gcc-8.3.0/gcc/cp/vtable-class-hierarchy.c Wed Jan 3 10:03:58 2018 --- gcc-8.4.0/gcc/cp/vtable-class-hierarchy.c Wed Mar 4 08:30:00 2020 *************** vtv_generate_init_routine (void) *** 1191,1198 **** gimplify_function_tree (vtv_fndecl); cgraph_node::add_new_function (vtv_fndecl, false); - symtab->process_new_functions (); - if (flag_vtable_verify == VTV_PREINIT_PRIORITY && !TARGET_PECOFF) assemble_vtv_preinit_initializer (vtv_fndecl); --- 1191,1196 ---- diff -Nrcpad gcc-8.3.0/gcc/dce.c gcc-8.4.0/gcc/dce.c *** gcc-8.3.0/gcc/dce.c Thu Feb 14 13:57:52 2019 --- gcc-8.4.0/gcc/dce.c Wed Mar 4 08:30:00 2020 *************** along with GCC; see the file COPYING3. *** 35,40 **** --- 35,41 ---- #include "valtrack.h" #include "tree-pass.h" #include "dbgcnt.h" + #include "rtl-iter.h" /* ------------------------------------------------------------------------- *************** deletable_insn_p_1 (rtx body) *** 86,91 **** --- 87,118 ---- } } + /* Don't delete calls that may throw if we cannot do so. */ + + static bool + can_delete_call (rtx_insn *insn) + { + if (cfun->can_delete_dead_exceptions && can_alter_cfg) + return true; + if (!insn_nothrow_p (insn)) + return false; + if (can_alter_cfg) + return true; + /* If we can't alter cfg, even when the call can't throw exceptions, it + might have EDGE_ABNORMAL_CALL edges and so we shouldn't delete such + calls. */ + gcc_assert (CALL_P (insn)); + if (BLOCK_FOR_INSN (insn) && BB_END (BLOCK_FOR_INSN (insn)) == insn) + { + edge e; + edge_iterator ei; + + FOR_EACH_EDGE (e, ei, BLOCK_FOR_INSN (insn)->succs) + if ((e->flags & EDGE_ABNORMAL_CALL) != 0) + return false; + } + return true; + } /* Return true if INSN is a normal instruction that can be deleted by the DCE pass. */ *************** deletable_insn_p (rtx_insn *insn, bool f *** 110,117 **** && (RTL_CONST_OR_PURE_CALL_P (insn) && !RTL_LOOPING_CONST_OR_PURE_CALL_P (insn)) /* Don't delete calls that may throw if we cannot do so. */ ! && ((cfun->can_delete_dead_exceptions && can_alter_cfg) ! || insn_nothrow_p (insn))) return find_call_stack_args (as_a (insn), false, fast, arg_stores); --- 137,143 ---- && (RTL_CONST_OR_PURE_CALL_P (insn) && !RTL_LOOPING_CONST_OR_PURE_CALL_P (insn)) /* Don't delete calls that may throw if we cannot do so. */ ! && can_delete_call (insn)) return find_call_stack_args (as_a (insn), false, fast, arg_stores); *************** mark_insn (rtx_insn *insn, bool fast) *** 204,211 **** && !SIBLING_CALL_P (insn) && (RTL_CONST_OR_PURE_CALL_P (insn) && !RTL_LOOPING_CONST_OR_PURE_CALL_P (insn)) ! && ((cfun->can_delete_dead_exceptions && can_alter_cfg) ! || insn_nothrow_p (insn))) find_call_stack_args (as_a (insn), true, fast, NULL); } } --- 230,236 ---- && !SIBLING_CALL_P (insn) && (RTL_CONST_OR_PURE_CALL_P (insn) && !RTL_LOOPING_CONST_OR_PURE_CALL_P (insn)) ! && can_delete_call (insn)) find_call_stack_args (as_a (insn), true, fast, NULL); } } *************** check_argument_store (HOST_WIDE_INT size *** 265,270 **** --- 290,389 ---- return true; } + /* If MEM has sp address, return 0, if it has sp + const address, + return that const, if it has reg address where reg is set to sp + const + and FAST is false, return const, otherwise return + INTTYPE_MINUMUM (HOST_WIDE_INT). */ + + static HOST_WIDE_INT + sp_based_mem_offset (rtx_call_insn *call_insn, const_rtx mem, bool fast) + { + HOST_WIDE_INT off = 0; + rtx addr = XEXP (mem, 0); + if (GET_CODE (addr) == PLUS + && REG_P (XEXP (addr, 0)) + && CONST_INT_P (XEXP (addr, 1))) + { + off = INTVAL (XEXP (addr, 1)); + addr = XEXP (addr, 0); + } + if (addr == stack_pointer_rtx) + return off; + + if (!REG_P (addr) || fast) + return INTTYPE_MINIMUM (HOST_WIDE_INT); + + /* If not fast, use chains to see if addr wasn't set to sp + offset. */ + df_ref use; + FOR_EACH_INSN_USE (use, call_insn) + if (rtx_equal_p (addr, DF_REF_REG (use))) + break; + + if (use == NULL) + return INTTYPE_MINIMUM (HOST_WIDE_INT); + + struct df_link *defs; + for (defs = DF_REF_CHAIN (use); defs; defs = defs->next) + if (! DF_REF_IS_ARTIFICIAL (defs->ref)) + break; + + if (defs == NULL) + return INTTYPE_MINIMUM (HOST_WIDE_INT); + + rtx set = single_set (DF_REF_INSN (defs->ref)); + if (!set) + return INTTYPE_MINIMUM (HOST_WIDE_INT); + + if (GET_CODE (SET_SRC (set)) != PLUS + || XEXP (SET_SRC (set), 0) != stack_pointer_rtx + || !CONST_INT_P (XEXP (SET_SRC (set), 1))) + return INTTYPE_MINIMUM (HOST_WIDE_INT); + + off += INTVAL (XEXP (SET_SRC (set), 1)); + return off; + } + + /* Data for check_argument_load called via note_uses. */ + struct check_argument_load_data { + bitmap sp_bytes; + HOST_WIDE_INT min_sp_off, max_sp_off; + rtx_call_insn *call_insn; + bool fast; + bool load_found; + }; + + /* Helper function for find_call_stack_args. Check if there are + any loads from the argument slots in between the const/pure call + and store to the argument slot, set LOAD_FOUND if any is found. */ + + static void + check_argument_load (rtx *loc, void *data) + { + struct check_argument_load_data *d + = (struct check_argument_load_data *) data; + subrtx_iterator::array_type array; + FOR_EACH_SUBRTX (iter, array, *loc, NONCONST) + { + const_rtx mem = *iter; + HOST_WIDE_INT size; + if (MEM_P (mem) + && MEM_SIZE_KNOWN_P (mem) + && MEM_SIZE (mem).is_constant (&size)) + { + HOST_WIDE_INT off = sp_based_mem_offset (d->call_insn, mem, d->fast); + if (off != INTTYPE_MINIMUM (HOST_WIDE_INT) + && off < d->max_sp_off + && off + size > d->min_sp_off) + for (HOST_WIDE_INT byte = MAX (off, d->min_sp_off); + byte < MIN (off + size, d->max_sp_off); byte++) + if (bitmap_bit_p (d->sp_bytes, byte - d->min_sp_off)) + { + d->load_found = true; + return; + } + } + } + } /* Try to find all stack stores of CALL_INSN arguments if ACCUMULATE_OUTGOING_ARGS. If all stack stores have been found *************** find_call_stack_args (rtx_call_insn *cal *** 302,359 **** if (GET_CODE (XEXP (p, 0)) == USE && MEM_P (XEXP (XEXP (p, 0), 0))) { ! rtx mem = XEXP (XEXP (p, 0), 0), addr; ! HOST_WIDE_INT off = 0, size; if (!MEM_SIZE_KNOWN_P (mem) || !MEM_SIZE (mem).is_constant (&size)) return false; ! addr = XEXP (mem, 0); ! if (GET_CODE (addr) == PLUS ! && REG_P (XEXP (addr, 0)) ! && CONST_INT_P (XEXP (addr, 1))) ! { ! off = INTVAL (XEXP (addr, 1)); ! addr = XEXP (addr, 0); ! } ! if (addr != stack_pointer_rtx) ! { ! if (!REG_P (addr)) ! return false; ! /* If not fast, use chains to see if addr wasn't set to ! sp + offset. */ ! if (!fast) ! { ! df_ref use; ! struct df_link *defs; ! rtx set; ! ! FOR_EACH_INSN_USE (use, call_insn) ! if (rtx_equal_p (addr, DF_REF_REG (use))) ! break; ! ! if (use == NULL) ! return false; ! ! for (defs = DF_REF_CHAIN (use); defs; defs = defs->next) ! if (! DF_REF_IS_ARTIFICIAL (defs->ref)) ! break; ! ! if (defs == NULL) ! return false; ! ! set = single_set (DF_REF_INSN (defs->ref)); ! if (!set) ! return false; ! ! if (GET_CODE (SET_SRC (set)) != PLUS ! || XEXP (SET_SRC (set), 0) != stack_pointer_rtx ! || !CONST_INT_P (XEXP (SET_SRC (set), 1))) ! return false; ! ! off += INTVAL (XEXP (SET_SRC (set), 1)); ! } ! else ! return false; ! } min_sp_off = MIN (min_sp_off, off); max_sp_off = MAX (max_sp_off, off + size); } --- 421,433 ---- if (GET_CODE (XEXP (p, 0)) == USE && MEM_P (XEXP (XEXP (p, 0), 0))) { ! rtx mem = XEXP (XEXP (p, 0), 0); ! HOST_WIDE_INT size; if (!MEM_SIZE_KNOWN_P (mem) || !MEM_SIZE (mem).is_constant (&size)) return false; ! HOST_WIDE_INT off = sp_based_mem_offset (call_insn, mem, fast); ! if (off == INTTYPE_MINIMUM (HOST_WIDE_INT)) ! return false; min_sp_off = MIN (min_sp_off, off); max_sp_off = MAX (max_sp_off, off + size); } *************** find_call_stack_args (rtx_call_insn *cal *** 369,419 **** if (GET_CODE (XEXP (p, 0)) == USE && MEM_P (XEXP (XEXP (p, 0), 0))) { ! rtx mem = XEXP (XEXP (p, 0), 0), addr; ! HOST_WIDE_INT off = 0, byte, size; /* Checked in the previous iteration. */ ! size = MEM_SIZE (mem).to_constant (); ! addr = XEXP (mem, 0); ! if (GET_CODE (addr) == PLUS ! && REG_P (XEXP (addr, 0)) ! && CONST_INT_P (XEXP (addr, 1))) ! { ! off = INTVAL (XEXP (addr, 1)); ! addr = XEXP (addr, 0); ! } ! if (addr != stack_pointer_rtx) ! { ! df_ref use; ! struct df_link *defs; ! rtx set; ! ! FOR_EACH_INSN_USE (use, call_insn) ! if (rtx_equal_p (addr, DF_REF_REG (use))) ! break; ! ! for (defs = DF_REF_CHAIN (use); defs; defs = defs->next) ! if (! DF_REF_IS_ARTIFICIAL (defs->ref)) ! break; ! ! set = single_set (DF_REF_INSN (defs->ref)); ! off += INTVAL (XEXP (SET_SRC (set), 1)); ! } ! for (byte = off; byte < off + size; byte++) ! { ! if (!bitmap_set_bit (sp_bytes, byte - min_sp_off)) ! gcc_unreachable (); ! } } /* Walk backwards, looking for argument stores. The search stops ! when seeing another call, sp adjustment or memory store other than ! argument store. */ ret = false; for (insn = PREV_INSN (call_insn); insn; insn = prev_insn) { - rtx set, mem, addr; - HOST_WIDE_INT off; - if (insn == BB_HEAD (BLOCK_FOR_INSN (call_insn))) prev_insn = NULL; else --- 443,466 ---- if (GET_CODE (XEXP (p, 0)) == USE && MEM_P (XEXP (XEXP (p, 0), 0))) { ! rtx mem = XEXP (XEXP (p, 0), 0); /* Checked in the previous iteration. */ ! HOST_WIDE_INT size = MEM_SIZE (mem).to_constant (); ! HOST_WIDE_INT off = sp_based_mem_offset (call_insn, mem, fast); ! gcc_checking_assert (off != INTTYPE_MINIMUM (HOST_WIDE_INT)); ! for (HOST_WIDE_INT byte = off; byte < off + size; byte++) ! if (!bitmap_set_bit (sp_bytes, byte - min_sp_off)) ! gcc_unreachable (); } /* Walk backwards, looking for argument stores. The search stops ! when seeing another call, sp adjustment, memory store other than ! argument store or a read from an argument stack slot. */ ! struct check_argument_load_data data ! = { sp_bytes, min_sp_off, max_sp_off, call_insn, fast, false }; ret = false; for (insn = PREV_INSN (call_insn); insn; insn = prev_insn) { if (insn == BB_HEAD (BLOCK_FOR_INSN (call_insn))) prev_insn = NULL; else *************** find_call_stack_args (rtx_call_insn *cal *** 425,485 **** if (!NONDEBUG_INSN_P (insn)) continue; ! set = single_set (insn); if (!set || SET_DEST (set) == stack_pointer_rtx) break; if (!MEM_P (SET_DEST (set))) continue; ! mem = SET_DEST (set); ! addr = XEXP (mem, 0); ! off = 0; ! if (GET_CODE (addr) == PLUS ! && REG_P (XEXP (addr, 0)) ! && CONST_INT_P (XEXP (addr, 1))) ! { ! off = INTVAL (XEXP (addr, 1)); ! addr = XEXP (addr, 0); ! } ! if (addr != stack_pointer_rtx) ! { ! if (!REG_P (addr)) ! break; ! if (!fast) ! { ! df_ref use; ! struct df_link *defs; ! rtx set; ! ! FOR_EACH_INSN_USE (use, insn) ! if (rtx_equal_p (addr, DF_REF_REG (use))) ! break; ! ! if (use == NULL) ! break; ! ! for (defs = DF_REF_CHAIN (use); defs; defs = defs->next) ! if (! DF_REF_IS_ARTIFICIAL (defs->ref)) ! break; ! ! if (defs == NULL) ! break; ! ! set = single_set (DF_REF_INSN (defs->ref)); ! if (!set) ! break; ! ! if (GET_CODE (SET_SRC (set)) != PLUS ! || XEXP (SET_SRC (set), 0) != stack_pointer_rtx ! || !CONST_INT_P (XEXP (SET_SRC (set), 1))) ! break; ! ! off += INTVAL (XEXP (SET_SRC (set), 1)); ! } ! else ! break; ! } HOST_WIDE_INT size; if (!MEM_SIZE_KNOWN_P (mem) --- 472,492 ---- if (!NONDEBUG_INSN_P (insn)) continue; ! rtx set = single_set (insn); if (!set || SET_DEST (set) == stack_pointer_rtx) break; + note_uses (&PATTERN (insn), check_argument_load, &data); + if (data.load_found) + break; + if (!MEM_P (SET_DEST (set))) continue; ! rtx mem = SET_DEST (set); ! HOST_WIDE_INT off = sp_based_mem_offset (call_insn, mem, fast); ! if (off == INTTYPE_MINIMUM (HOST_WIDE_INT)) ! break; HOST_WIDE_INT size; if (!MEM_SIZE_KNOWN_P (mem) diff -Nrcpad gcc-8.3.0/gcc/df-core.c gcc-8.4.0/gcc/df-core.c *** gcc-8.3.0/gcc/df-core.c Wed Jan 3 10:03:58 2018 --- gcc-8.4.0/gcc/df-core.c Wed Mar 4 08:30:00 2020 *************** There are 4 ways to obtain access to ref *** 298,309 **** Artificial defs and uses occur both at the beginning and ends of blocks. ! For blocks that area at the destination of eh edges, the artificial uses and defs occur at the beginning. The defs relate to the registers specified in EH_RETURN_DATA_REGNO and the uses ! relate to the registers specified in ED_USES. Logically these defs and uses should really occur along the eh edge, but there is ! no convenient way to do this. Artificial edges that occur at the beginning of the block have the DF_REF_AT_TOP flag set. Artificial uses occur at the end of all blocks. These arise from --- 298,309 ---- Artificial defs and uses occur both at the beginning and ends of blocks. ! For blocks that are at the destination of eh edges, the artificial uses and defs occur at the beginning. The defs relate to the registers specified in EH_RETURN_DATA_REGNO and the uses ! relate to the registers specified in EH_USES. Logically these defs and uses should really occur along the eh edge, but there is ! no convenient way to do this. Artificial defs that occur at the beginning of the block have the DF_REF_AT_TOP flag set. Artificial uses occur at the end of all blocks. These arise from diff -Nrcpad gcc-8.3.0/gcc/doc/avr-mmcu.texi gcc-8.4.0/gcc/doc/avr-mmcu.texi *** gcc-8.3.0/gcc/doc/avr-mmcu.texi Wed Jan 3 10:03:58 2018 --- gcc-8.4.0/gcc/doc/avr-mmcu.texi Wed Mar 4 08:30:00 2020 *************** *** 4,12 **** @c This file is generated automatically using @c gcc/config/avr/gen-avr-mmcu-texi.c from: ! @c gcc/config/avr/avr-arch.h ! @c gcc/config/avr/avr-devices.c ! @c gcc/config/avr/avr-mcus.def @c Please do not edit manually. --- 4,12 ---- @c This file is generated automatically using @c gcc/config/avr/gen-avr-mmcu-texi.c from: ! @c gcc/config/avr/avr-arch.h ! @c gcc/config/avr/avr-devices.c ! @c gcc/config/avr/avr-mcus.def @c Please do not edit manually. *************** *** 14,28 **** @item avr2 ``Classic'' devices with up to 8@tie{}KiB of program memory. ! @*@var{mcu}@tie{}= @code{attiny22}, @code{attiny26}, @code{at90c8534}, @code{at90s2313}, @code{at90s2323}, @code{at90s2333}, @code{at90s2343}, @code{at90s4414}, @code{at90s4433}, @code{at90s4434}, @code{at90s8515}, @code{at90s8535}. @item avr25 ``Classic'' devices with up to 8@tie{}KiB of program memory and with the @code{MOVW} instruction. ! @*@var{mcu}@tie{}= @code{ata5272}, @code{ata6616c}, @code{attiny13}, @code{attiny13a}, @code{attiny2313}, @code{attiny2313a}, @code{attiny24}, @code{attiny24a}, @code{attiny25}, @code{attiny261}, @code{attiny261a}, @code{attiny43u}, @code{attiny4313}, @code{attiny44}, @code{attiny44a}, @code{attiny441}, @code{attiny45}, @code{attiny461}, @code{attiny461a}, @code{attiny48}, @code{attiny828}, @code{attiny84}, @code{attiny84a}, @code{attiny841}, @code{attiny85}, @code{attiny861}, @code{attiny861a}, @code{attiny87}, @code{attiny88}, @code{at86rf401}. @item avr3 ! ``Classic'' devices with 16@tie{}KiB up to 64@tie{}KiB of program memory. ! @*@var{mcu}@tie{}= @code{at43usb355}, @code{at76c711}. @item avr31 ``Classic'' devices with 128@tie{}KiB of program memory. --- 14,28 ---- @item avr2 ``Classic'' devices with up to 8@tie{}KiB of program memory. ! @*@var{mcu}@tie{}= @code{attiny22}, @code{attiny26}, @code{at90s2313}, @code{at90s2323}, @code{at90s2333}, @code{at90s2343}, @code{at90s4414}, @code{at90s4433}, @code{at90s4434}, @code{at90c8534}, @code{at90s8515}, @code{at90s8535}. @item avr25 ``Classic'' devices with up to 8@tie{}KiB of program memory and with the @code{MOVW} instruction. ! @*@var{mcu}@tie{}= @code{attiny13}, @code{attiny13a}, @code{attiny24}, @code{attiny24a}, @code{attiny25}, @code{attiny261}, @code{attiny261a}, @code{attiny2313}, @code{attiny2313a}, @code{attiny43u}, @code{attiny44}, @code{attiny44a}, @code{attiny45}, @code{attiny48}, @code{attiny441}, @code{attiny461}, @code{attiny461a}, @code{attiny4313}, @code{attiny84}, @code{attiny84a}, @code{attiny85}, @code{attiny87}, @code{attiny88}, @code{attiny828}, @code{attiny841}, @code{attiny861}, @code{attiny861a}, @code{ata5272}, @code{ata6616c}, @code{at86rf401}. @item avr3 ! ``Classic'' devices with 16@tie{}KiB up to 64@tie{}KiB of program memory. ! @*@var{mcu}@tie{}= @code{at76c711}, @code{at43usb355}. @item avr31 ``Classic'' devices with 128@tie{}KiB of program memory. *************** *** 30,44 **** @item avr35 ``Classic'' devices with 16@tie{}KiB up to 64@tie{}KiB of program memory and with the @code{MOVW} instruction. ! @*@var{mcu}@tie{}= @code{ata5505}, @code{ata6617c}, @code{ata664251}, @code{atmega16u2}, @code{atmega32u2}, @code{atmega8u2}, @code{attiny1634}, @code{attiny167}, @code{at90usb162}, @code{at90usb82}. @item avr4 ``Enhanced'' devices with up to 8@tie{}KiB of program memory. ! @*@var{mcu}@tie{}= @code{ata6285}, @code{ata6286}, @code{ata6289}, @code{ata6612c}, @code{atmega48}, @code{atmega48a}, @code{atmega48p}, @code{atmega48pa}, @code{atmega48pb}, @code{atmega8}, @code{atmega8a}, @code{atmega8hva}, @code{atmega8515}, @code{atmega8535}, @code{atmega88}, @code{atmega88a}, @code{atmega88p}, @code{atmega88pa}, @code{atmega88pb}, @code{at90pwm1}, @code{at90pwm2}, @code{at90pwm2b}, @code{at90pwm3}, @code{at90pwm3b}, @code{at90pwm81}. @item avr5 ``Enhanced'' devices with 16@tie{}KiB up to 64@tie{}KiB of program memory. ! @*@var{mcu}@tie{}= @code{ata5702m322}, @code{ata5782}, @code{ata5790}, @code{ata5790n}, @code{ata5791}, @code{ata5795}, @code{ata5831}, @code{ata6613c}, @code{ata6614q}, @code{ata8210}, @code{ata8510}, @code{atmega16}, @code{atmega16a}, @code{atmega16hva}, @code{atmega16hva2}, @code{atmega16hvb}, @code{atmega16hvbrevb}, @code{atmega16m1}, @code{atmega16u4}, @code{atmega161}, @code{atmega162}, @code{atmega163}, @code{atmega164a}, @code{atmega164p}, @code{atmega164pa}, @code{atmega165}, @code{atmega165a}, @code{atmega165p}, @code{atmega165pa}, @code{atmega168}, @code{atmega168a}, @code{atmega168p}, @code{atmega168pa}, @code{atmega168pb}, @code{atmega169}, @code{atmega169a}, @code{atmega169p}, @code{atmega169pa}, @code{atmega32}, @code{atmega32a}, @code{atmega32c1}, @code{atmega32hvb}, @code{atmega32hvbrevb}, @code{atmega32m1}, @code{atmega32u4}, @code{atmega32u6}, @code{atmega323}, @code{atmega324a}, @code{atmega324p}, @code{atmega324pa}, @code{atmega325}, @code{atmega325a}, @code{atmega325p}, @code{atmega325pa}, @code{atmega3250}, @code{atmega3250a}, @code{atmega3250p}, @code{atmega3250pa}, @code{atmega328}, @code{atmega328p}, @code{atmega328pb}, @code{atmega329}, @code{atmega329a}, @code{atmega329p}, @code{atmega329pa}, @code{atmega3290}, @code{atmega3290a}, @code{atmega3290p}, @code{atmega3290pa}, @code{atmega406}, @code{atmega64}, @code{atmega64a}, @code{atmega64c1}, @code{atmega64hve}, @code{atmega64hve2}, @code{atmega64m1}, @code{atmega64rfr2}, @code{atmega640}, @code{atmega644}, @code{atmega644a}, @code{atmega644p}, @code{atmega644pa}, @code{atmega644rfr2}, @code{atmega645}, @code{atmega645a}, @code{atmega645p}, @code{atmega6450}, @code{atmega6450a}, @code{atmega6450p}, @code{atmega649}, @code{atmega649a}, @code{atmega649p}, @code{atmega6490}, @code{atmega6490a}, @code{atmega6490p}, @code{at90can32}, @code{at90can64}, @code{at90pwm161}, @code{at90pwm216}, @code{at90pwm316}, @code{at90scr100}, @code{at90usb646}, @code{at90usb647}, @code{at94k}, @code{m3000}. @item avr51 ``Enhanced'' devices with 128@tie{}KiB of program memory. --- 30,44 ---- @item avr35 ``Classic'' devices with 16@tie{}KiB up to 64@tie{}KiB of program memory and with the @code{MOVW} instruction. ! @*@var{mcu}@tie{}= @code{attiny167}, @code{attiny1634}, @code{atmega8u2}, @code{atmega16u2}, @code{atmega32u2}, @code{ata5505}, @code{ata6617c}, @code{ata664251}, @code{at90usb82}, @code{at90usb162}. @item avr4 ``Enhanced'' devices with up to 8@tie{}KiB of program memory. ! @*@var{mcu}@tie{}= @code{atmega48}, @code{atmega48a}, @code{atmega48p}, @code{atmega48pa}, @code{atmega48pb}, @code{atmega8}, @code{atmega8a}, @code{atmega8hva}, @code{atmega88}, @code{atmega88a}, @code{atmega88p}, @code{atmega88pa}, @code{atmega88pb}, @code{atmega8515}, @code{atmega8535}, @code{ata6285}, @code{ata6286}, @code{ata6289}, @code{ata6612c}, @code{at90pwm1}, @code{at90pwm2}, @code{at90pwm2b}, @code{at90pwm3}, @code{at90pwm3b}, @code{at90pwm81}. @item avr5 ``Enhanced'' devices with 16@tie{}KiB up to 64@tie{}KiB of program memory. ! @*@var{mcu}@tie{}= @code{atmega16}, @code{atmega16a}, @code{atmega16hva}, @code{atmega16hva2}, @code{atmega16hvb}, @code{atmega16hvbrevb}, @code{atmega16m1}, @code{atmega16u4}, @code{atmega161}, @code{atmega162}, @code{atmega163}, @code{atmega164a}, @code{atmega164p}, @code{atmega164pa}, @code{atmega165}, @code{atmega165a}, @code{atmega165p}, @code{atmega165pa}, @code{atmega168}, @code{atmega168a}, @code{atmega168p}, @code{atmega168pa}, @code{atmega168pb}, @code{atmega169}, @code{atmega169a}, @code{atmega169p}, @code{atmega169pa}, @code{atmega32}, @code{atmega32a}, @code{atmega32c1}, @code{atmega32hvb}, @code{atmega32hvbrevb}, @code{atmega32m1}, @code{atmega32u4}, @code{atmega32u6}, @code{atmega323}, @code{atmega324a}, @code{atmega324p}, @code{atmega324pa}, @code{atmega325}, @code{atmega325a}, @code{atmega325p}, @code{atmega325pa}, @code{atmega328}, @code{atmega328p}, @code{atmega328pb}, @code{atmega329}, @code{atmega329a}, @code{atmega329p}, @code{atmega329pa}, @code{atmega3250}, @code{atmega3250a}, @code{atmega3250p}, @code{atmega3250pa}, @code{atmega3290}, @code{atmega3290a}, @code{atmega3290p}, @code{atmega3290pa}, @code{atmega406}, @code{atmega64}, @code{atmega64a}, @code{atmega64c1}, @code{atmega64hve}, @code{atmega64hve2}, @code{atmega64m1}, @code{atmega64rfr2}, @code{atmega640}, @code{atmega644}, @code{atmega644a}, @code{atmega644p}, @code{atmega644pa}, @code{atmega644rfr2}, @code{atmega645}, @code{atmega645a}, @code{atmega645p}, @code{atmega649}, @code{atmega649a}, @code{atmega649p}, @code{atmega6450}, @code{atmega6450a}, @code{atmega6450p}, @code{atmega6490}, @code{atmega6490a}, @code{atmega6490p}, @code{ata5795}, @code{ata5790}, @code{ata5790n}, @code{ata5791}, @code{ata6613c}, @code{ata6614q}, @code{ata5782}, @code{ata5831}, @code{ata8210}, @code{ata8510}, @code{ata5702m322}, @code{at90pwm161}, @code{at90pwm216}, @code{at90pwm316}, @code{at90can32}, @code{at90can64}, @code{at90scr100}, @code{at90usb646}, @code{at90usb647}, @code{at94k}, @code{m3000}. @item avr51 ``Enhanced'' devices with 128@tie{}KiB of program memory. *************** *** 50,60 **** @item avrxmega2 ``XMEGA'' devices with more than 8@tie{}KiB and up to 64@tie{}KiB of program memory. ! @*@var{mcu}@tie{}= @code{atxmega16a4}, @code{atxmega16a4u}, @code{atxmega16c4}, @code{atxmega16d4}, @code{atxmega16e5}, @code{atxmega32a4}, @code{atxmega32a4u}, @code{atxmega32c3}, @code{atxmega32c4}, @code{atxmega32d3}, @code{atxmega32d4}, @code{atxmega32e5}, @code{atxmega8e5}. @item avrxmega3 ``XMEGA'' devices with up to 64@tie{}KiB of combined program memory and RAM, and with program memory visible in the RAM address space. ! @*@var{mcu}@tie{}= @code{attiny1614}, @code{attiny1616}, @code{attiny1617}, @code{attiny212}, @code{attiny214}, @code{attiny3214}, @code{attiny3216}, @code{attiny3217}, @code{attiny412}, @code{attiny414}, @code{attiny416}, @code{attiny417}, @code{attiny814}, @code{attiny816}, @code{attiny817}. @item avrxmega4 ``XMEGA'' devices with more than 64@tie{}KiB and up to 128@tie{}KiB of program memory. --- 50,60 ---- @item avrxmega2 ``XMEGA'' devices with more than 8@tie{}KiB and up to 64@tie{}KiB of program memory. ! @*@var{mcu}@tie{}= @code{atxmega8e5}, @code{atxmega16a4}, @code{atxmega16a4u}, @code{atxmega16c4}, @code{atxmega16d4}, @code{atxmega16e5}, @code{atxmega32a4}, @code{atxmega32a4u}, @code{atxmega32c3}, @code{atxmega32c4}, @code{atxmega32d3}, @code{atxmega32d4}, @code{atxmega32e5}. @item avrxmega3 ``XMEGA'' devices with up to 64@tie{}KiB of combined program memory and RAM, and with program memory visible in the RAM address space. ! @*@var{mcu}@tie{}= @code{attiny202}, @code{attiny204}, @code{attiny212}, @code{attiny214}, @code{attiny402}, @code{attiny404}, @code{attiny406}, @code{attiny412}, @code{attiny414}, @code{attiny416}, @code{attiny417}, @code{attiny804}, @code{attiny806}, @code{attiny807}, @code{attiny814}, @code{attiny816}, @code{attiny817}, @code{attiny1604}, @code{attiny1606}, @code{attiny1607}, @code{attiny1614}, @code{attiny1616}, @code{attiny1617}, @code{attiny3214}, @code{attiny3216}, @code{attiny3217}, @code{atmega808}, @code{atmega809}, @code{atmega1608}, @code{atmega1609}, @code{atmega3208}, @code{atmega3209}, @code{atmega4808}, @code{atmega4809}. @item avrxmega4 ``XMEGA'' devices with more than 64@tie{}KiB and up to 128@tie{}KiB of program memory. *************** *** 74,80 **** @item avrtiny ``TINY'' Tiny core devices with 512@tie{}B up to 4@tie{}KiB of program memory. ! @*@var{mcu}@tie{}= @code{attiny10}, @code{attiny20}, @code{attiny4}, @code{attiny40}, @code{attiny5}, @code{attiny9}. @item avr1 This ISA is implemented by the minimal AVR core and supported for assembler only. --- 74,80 ---- @item avrtiny ``TINY'' Tiny core devices with 512@tie{}B up to 4@tie{}KiB of program memory. ! @*@var{mcu}@tie{}= @code{attiny4}, @code{attiny5}, @code{attiny9}, @code{attiny10}, @code{attiny20}, @code{attiny40}. @item avr1 This ISA is implemented by the minimal AVR core and supported for assembler only. diff -Nrcpad gcc-8.3.0/gcc/doc/contribute.texi gcc-8.4.0/gcc/doc/contribute.texi *** gcc-8.3.0/gcc/doc/contribute.texi Wed Jan 3 10:03:58 2018 --- gcc-8.4.0/gcc/doc/contribute.texi Wed Mar 4 08:30:00 2020 *************** *** 6,13 **** @chapter Contributing to GCC Development If you would like to help pretest GCC releases to assure they work well, ! current development sources are available by SVN (see ! @uref{http://gcc.gnu.org/svn.html}). Source and binary snapshots are also available for FTP; see @uref{http://gcc.gnu.org/snapshots.html}. If you would like to work on improvements to GCC, please read the --- 6,13 ---- @chapter Contributing to GCC Development If you would like to help pretest GCC releases to assure they work well, ! current development sources are available via Git (see ! @uref{http://gcc.gnu.org/git.html}). Source and binary snapshots are also available for FTP; see @uref{http://gcc.gnu.org/snapshots.html}. If you would like to work on improvements to GCC, please read the diff -Nrcpad gcc-8.3.0/gcc/doc/cpp.1 gcc-8.4.0/gcc/doc/cpp.1 *** gcc-8.3.0/gcc/doc/cpp.1 Fri Feb 22 14:23:15 2019 --- gcc-8.4.0/gcc/doc/cpp.1 Wed Mar 4 08:33:13 2020 *************** *** 133,139 **** .\" ======================================================================== .\" .IX Title "CPP 1" ! .TH CPP 1 "2019-02-22" "gcc-8.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 "2020-03-04" "gcc-8.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 diff -Nrcpad gcc-8.3.0/gcc/doc/extend.texi gcc-8.4.0/gcc/doc/extend.texi *** gcc-8.3.0/gcc/doc/extend.texi Thu Feb 7 14:43:41 2019 --- gcc-8.4.0/gcc/doc/extend.texi Wed Mar 4 08:30:00 2020 *************** If the cryptographic instructions are en *** 19708,19727 **** --- 19708,19740 ---- @smallexample vector unsigned long long __builtin_crypto_vsbox (vector unsigned long long); + vector unsigned char vec_sbox_be (vector unsigned char); + vector unsigned long long __builtin_crypto_vcipher (vector unsigned long long, vector unsigned long long); + vector unsigned char vec_cipher_be (vector unsigned char, vector unsigned char); + vector unsigned long long __builtin_crypto_vcipherlast (vector unsigned long long, vector unsigned long long); + vector unsigned char vec_cipherlast_be (vector unsigned char, + vector unsigned char); + vector unsigned long long __builtin_crypto_vncipher (vector unsigned long long, vector unsigned long long); + vector unsigned char vec_ncipher_be (vector unsigned char, + vector unsigned char); + vector unsigned long long __builtin_crypto_vncipherlast (vector unsigned long long, vector unsigned long long); + vector unsigned char vec_ncipherlast_be (vector unsigned char, + vector unsigned char); + vector unsigned char __builtin_crypto_vpermxor (vector unsigned char, vector unsigned char, vector unsigned char); *************** vector unsigned long long __builtin_cryp *** 19741,19753 **** vector unsigned char __builtin_crypto_vpmsumb (vector unsigned char, vector unsigned char); ! vector unsigned short __builtin_crypto_vpmsumb (vector unsigned short, vector unsigned short); ! vector unsigned int __builtin_crypto_vpmsumb (vector unsigned int, vector unsigned int); ! vector unsigned long long __builtin_crypto_vpmsumb (vector unsigned long long, vector unsigned long long); vector unsigned long long __builtin_crypto_vshasigmad --- 19754,19766 ---- vector unsigned char __builtin_crypto_vpmsumb (vector unsigned char, vector unsigned char); ! vector unsigned short __builtin_crypto_vpmsumh (vector unsigned short, vector unsigned short); ! vector unsigned int __builtin_crypto_vpmsumw (vector unsigned int, vector unsigned int); ! vector unsigned long long __builtin_crypto_vpmsumd (vector unsigned long long, vector unsigned long long); vector unsigned long long __builtin_crypto_vshasigmad diff -Nrcpad gcc-8.3.0/gcc/doc/fsf-funding.7 gcc-8.4.0/gcc/doc/fsf-funding.7 *** gcc-8.3.0/gcc/doc/fsf-funding.7 Fri Feb 22 14:23:15 2019 --- gcc-8.4.0/gcc/doc/fsf-funding.7 Wed Mar 4 08:33:13 2020 *************** *** 133,139 **** .\" ======================================================================== .\" .IX Title "FSF-FUNDING 7" ! .TH FSF-FUNDING 7 "2019-02-22" "gcc-8.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 "2020-03-04" "gcc-8.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 diff -Nrcpad gcc-8.3.0/gcc/doc/g++.1 gcc-8.4.0/gcc/doc/g++.1 *** gcc-8.3.0/gcc/doc/g++.1 Fri Feb 22 14:35:28 2019 --- gcc-8.4.0/gcc/doc/g++.1 Wed Mar 4 08:45:25 2020 *************** *** 133,139 **** .\" ======================================================================== .\" .IX Title "GCC 1" ! .TH GCC 1 "2019-02-22" "gcc-8.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 "2020-03-04" "gcc-8.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. *** 571,578 **** \&\fB\-fdisable\-tree\-\fR\fIpass_name\fR \&\fB\-fdisable\-tree\-\fR\fIpass-name\fR\fB=\fR\fIrange-list\fR \&\fB\-fdump\-noaddr \-fdump\-unnumbered \-fdump\-unnumbered\-links ! \&\-fdump\-class\-hierarchy\fR[\fB\-\fR\fIn\fR] ! \&\fB\-fdump\-final\-insns\fR[\fB=\fR\fIfile\fR] \&\fB\-fdump\-ipa\-all \-fdump\-ipa\-cgraph \-fdump\-ipa\-inline \&\-fdump\-lang\-all \&\-fdump\-lang\-\fR\fIswitch\fR --- 571,577 ---- \&\fB\-fdisable\-tree\-\fR\fIpass_name\fR \&\fB\-fdisable\-tree\-\fR\fIpass-name\fR\fB=\fR\fIrange-list\fR \&\fB\-fdump\-noaddr \-fdump\-unnumbered \-fdump\-unnumbered\-links ! \&\-fdump\-final\-insns\fR[\fB=\fR\fIfile\fR] \&\fB\-fdump\-ipa\-all \-fdump\-ipa\-cgraph \-fdump\-ipa\-inline \&\-fdump\-lang\-all \&\-fdump\-lang\-\fR\fIswitch\fR *************** in the following sections. *** 689,695 **** \&\-mn_flash=\fR\fIsize\fR \fB\-mno\-interrupts \&\-mmain\-is\-OS_task \-mrelax \-mrmw \-mstrict\-X \-mtiny\-stack \&\-mfract\-convert\-truncate ! \&\-mshort\-calls \-nodevicelib \&\-Waddr\-space\-convert \-Wmisspelled\-isr\fR .Sp \&\fIBlackfin Options\fR --- 688,694 ---- \&\-mn_flash=\fR\fIsize\fR \fB\-mno\-interrupts \&\-mmain\-is\-OS_task \-mrelax \-mrmw \-mstrict\-X \-mtiny\-stack \&\-mfract\-convert\-truncate ! \&\-mshort\-calls \-nodevicelib \-nodevicespecs \&\-Waddr\-space\-convert \-Wmisspelled\-isr\fR .Sp \&\fIBlackfin Options\fR *************** would be rendered unable to decode locat *** 6864,6871 **** .IP "\fB\-ginternal\-reset\-location\-views\fR" 4 .IX Item "-ginternal-reset-location-views" .PD 0 ! .IP "\fB\-gnointernal\-reset\-location\-views\fR" 4 ! .IX Item "-gnointernal-reset-location-views" .PD Attempt to determine location views that can be omitted from location view lists. This requires the compiler to have very accurate insn --- 6863,6870 ---- .IP "\fB\-ginternal\-reset\-location\-views\fR" 4 .IX Item "-ginternal-reset-location-views" .PD 0 ! .IP "\fB\-gno\-internal\-reset\-location\-views\fR" 4 ! .IX Item "-gno-internal-reset-location-views" .PD Attempt to determine location views that can be omitted from location view lists. This requires the compiler to have very accurate insn *************** do not typically increase code size. *** 7153,7160 **** .Sp \&\fB\-Os\fR disables the following optimization flags: \&\fB\-falign\-functions \-falign\-jumps \-falign\-loops ! \&\-falign\-labels \-freorder\-blocks \-freorder\-blocks\-algorithm=stc ! \&\-freorder\-blocks\-and\-partition \-fprefetch\-loop\-arrays\fR .Sp It also enables \fB\-finline\-functions\fR, causes the compiler to tune for code size rather than execution speed, and performs further optimizations --- 7152,7158 ---- .Sp \&\fB\-Os\fR disables the following optimization flags: \&\fB\-falign\-functions \-falign\-jumps \-falign\-loops ! \&\-falign\-labels \-fprefetch\-loop\-arrays\fR .Sp It also enables \fB\-finline\-functions\fR, causes the compiler to tune for code size rather than execution speed, and performs further optimizations *************** Specify the name of the target processor *** 14232,14237 **** --- 14230,14236 ---- performance of the code. Permissible values for this option are: \&\fBgeneric\fR, \fBcortex\-a35\fR, \fBcortex\-a53\fR, \fBcortex\-a55\fR, \&\fBcortex\-a57\fR, \fBcortex\-a72\fR, \fBcortex\-a73\fR, \fBcortex\-a75\fR, + \&\fBcortex\-a76\fR, \fBares\fR, \fBneoverse\-n1\fR \&\fBexynos\-m1\fR, \fBfalkor\fR, \fBqdf24xx\fR, \fBsaphira\fR, \&\fBxgene1\fR, \fBvulcan\fR, \fBthunderx\fR, \&\fBthunderxt88\fR, \fBthunderxt88p1\fR, \fBthunderxt81\fR, *************** The default for this option is@tie{}\fBa *** 16155,16171 **** .el .IP "\f(CWavr2\fR" 4 .IX Item "avr2" \&\*(L"Classic\*(R" devices with up to 8@tie{}KiB of program memory. ! \&\fImcu\fR\f(CW@tie\fR{}= \f(CW\*(C`attiny22\*(C'\fR, \f(CW\*(C`attiny26\*(C'\fR, \f(CW\*(C`at90c8534\*(C'\fR, \f(CW\*(C`at90s2313\*(C'\fR, \f(CW\*(C`at90s2323\*(C'\fR, \f(CW\*(C`at90s2333\*(C'\fR, \f(CW\*(C`at90s2343\*(C'\fR, \f(CW\*(C`at90s4414\*(C'\fR, \f(CW\*(C`at90s4433\*(C'\fR, \f(CW\*(C`at90s4434\*(C'\fR, \f(CW\*(C`at90s8515\*(C'\fR, \f(CW\*(C`at90s8535\*(C'\fR. .ie n .IP """avr25""" 4 .el .IP "\f(CWavr25\fR" 4 .IX Item "avr25" \&\*(L"Classic\*(R" devices with up to 8@tie{}KiB of program memory and with the \f(CW\*(C`MOVW\*(C'\fR instruction. ! \&\fImcu\fR\f(CW@tie\fR{}= \f(CW\*(C`ata5272\*(C'\fR, \f(CW\*(C`ata6616c\*(C'\fR, \f(CW\*(C`attiny13\*(C'\fR, \f(CW\*(C`attiny13a\*(C'\fR, \f(CW\*(C`attiny2313\*(C'\fR, \f(CW\*(C`attiny2313a\*(C'\fR, \f(CW\*(C`attiny24\*(C'\fR, \f(CW\*(C`attiny24a\*(C'\fR, \f(CW\*(C`attiny25\*(C'\fR, \f(CW\*(C`attiny261\*(C'\fR, \f(CW\*(C`attiny261a\*(C'\fR, \f(CW\*(C`attiny43u\*(C'\fR, \f(CW\*(C`attiny4313\*(C'\fR, \f(CW\*(C`attiny44\*(C'\fR, \f(CW\*(C`attiny44a\*(C'\fR, \f(CW\*(C`attiny441\*(C'\fR, \f(CW\*(C`attiny45\*(C'\fR, \f(CW\*(C`attiny461\*(C'\fR, \f(CW\*(C`attiny461a\*(C'\fR, \f(CW\*(C`attiny48\*(C'\fR, \f(CW\*(C`attiny828\*(C'\fR, \f(CW\*(C`attiny84\*(C'\fR, \f(CW\*(C`attiny84a\*(C'\fR, \f(CW\*(C`attiny841\*(C'\fR, \f(CW\*(C`attiny85\*(C'\fR, \f(CW\*(C`attiny861\*(C'\fR, \f(CW\*(C`attiny861a\*(C'\fR, \f(CW\*(C`attiny87\*(C'\fR, \f(CW\*(C`attiny88\*(C'\fR, \f(CW\*(C`at86rf401\*(C'\fR. .ie n .IP """avr3""" 4 .el .IP "\f(CWavr3\fR" 4 .IX Item "avr3" ! \&\*(L"Classic\*(R" devices with 16@tie{}KiB up to 64@tie{}KiB of program memory. ! \&\fImcu\fR\f(CW@tie\fR{}= \f(CW\*(C`at43usb355\*(C'\fR, \f(CW\*(C`at76c711\*(C'\fR. .ie n .IP """avr31""" 4 .el .IP "\f(CWavr31\fR" 4 .IX Item "avr31" --- 16154,16170 ---- .el .IP "\f(CWavr2\fR" 4 .IX Item "avr2" \&\*(L"Classic\*(R" devices with up to 8@tie{}KiB of program memory. ! \&\fImcu\fR\f(CW@tie\fR{}= \f(CW\*(C`attiny22\*(C'\fR, \f(CW\*(C`attiny26\*(C'\fR, \f(CW\*(C`at90s2313\*(C'\fR, \f(CW\*(C`at90s2323\*(C'\fR, \f(CW\*(C`at90s2333\*(C'\fR, \f(CW\*(C`at90s2343\*(C'\fR, \f(CW\*(C`at90s4414\*(C'\fR, \f(CW\*(C`at90s4433\*(C'\fR, \f(CW\*(C`at90s4434\*(C'\fR, \f(CW\*(C`at90c8534\*(C'\fR, \f(CW\*(C`at90s8515\*(C'\fR, \f(CW\*(C`at90s8535\*(C'\fR. .ie n .IP """avr25""" 4 .el .IP "\f(CWavr25\fR" 4 .IX Item "avr25" \&\*(L"Classic\*(R" devices with up to 8@tie{}KiB of program memory and with the \f(CW\*(C`MOVW\*(C'\fR instruction. ! \&\fImcu\fR\f(CW@tie\fR{}= \f(CW\*(C`attiny13\*(C'\fR, \f(CW\*(C`attiny13a\*(C'\fR, \f(CW\*(C`attiny24\*(C'\fR, \f(CW\*(C`attiny24a\*(C'\fR, \f(CW\*(C`attiny25\*(C'\fR, \f(CW\*(C`attiny261\*(C'\fR, \f(CW\*(C`attiny261a\*(C'\fR, \f(CW\*(C`attiny2313\*(C'\fR, \f(CW\*(C`attiny2313a\*(C'\fR, \f(CW\*(C`attiny43u\*(C'\fR, \f(CW\*(C`attiny44\*(C'\fR, \f(CW\*(C`attiny44a\*(C'\fR, \f(CW\*(C`attiny45\*(C'\fR, \f(CW\*(C`attiny48\*(C'\fR, \f(CW\*(C`attiny441\*(C'\fR, \f(CW\*(C`attiny461\*(C'\fR, \f(CW\*(C`attiny461a\*(C'\fR, \f(CW\*(C`attiny4313\*(C'\fR, \f(CW\*(C`attiny84\*(C'\fR, \f(CW\*(C`attiny84a\*(C'\fR, \f(CW\*(C`attiny85\*(C'\fR, \f(CW\*(C`attiny87\*(C'\fR, \f(CW\*(C`attiny88\*(C'\fR, \f(CW\*(C`attiny828\*(C'\fR, \f(CW\*(C`attiny841\*(C'\fR, \f(CW\*(C`attiny861\*(C'\fR, \f(CW\*(C`attiny861a\*(C'\fR, \f(CW\*(C`ata5272\*(C'\fR, \f(CW\*(C`ata6616c\*(C'\fR, \f(CW\*(C`at86rf401\*(C'\fR. .ie n .IP """avr3""" 4 .el .IP "\f(CWavr3\fR" 4 .IX Item "avr3" ! \&\*(L"Classic\*(R" devices with 16@tie{}KiB up to 64@tie{}KiB of program memory. ! \&\fImcu\fR\f(CW@tie\fR{}= \f(CW\*(C`at76c711\*(C'\fR, \f(CW\*(C`at43usb355\*(C'\fR. .ie n .IP """avr31""" 4 .el .IP "\f(CWavr31\fR" 4 .IX Item "avr31" *************** The default for this option is@tie{}\fBa *** 16175,16191 **** .el .IP "\f(CWavr35\fR" 4 .IX Item "avr35" \&\*(L"Classic\*(R" devices with 16@tie{}KiB up to 64@tie{}KiB of program memory and with the \f(CW\*(C`MOVW\*(C'\fR instruction. ! \&\fImcu\fR\f(CW@tie\fR{}= \f(CW\*(C`ata5505\*(C'\fR, \f(CW\*(C`ata6617c\*(C'\fR, \f(CW\*(C`ata664251\*(C'\fR, \f(CW\*(C`atmega16u2\*(C'\fR, \f(CW\*(C`atmega32u2\*(C'\fR, \f(CW\*(C`atmega8u2\*(C'\fR, \f(CW\*(C`attiny1634\*(C'\fR, \f(CW\*(C`attiny167\*(C'\fR, \f(CW\*(C`at90usb162\*(C'\fR, \f(CW\*(C`at90usb82\*(C'\fR. .ie n .IP """avr4""" 4 .el .IP "\f(CWavr4\fR" 4 .IX Item "avr4" \&\*(L"Enhanced\*(R" devices with up to 8@tie{}KiB of program memory. ! \&\fImcu\fR\f(CW@tie\fR{}= \f(CW\*(C`ata6285\*(C'\fR, \f(CW\*(C`ata6286\*(C'\fR, \f(CW\*(C`ata6289\*(C'\fR, \f(CW\*(C`ata6612c\*(C'\fR, \f(CW\*(C`atmega48\*(C'\fR, \f(CW\*(C`atmega48a\*(C'\fR, \f(CW\*(C`atmega48p\*(C'\fR, \f(CW\*(C`atmega48pa\*(C'\fR, \f(CW\*(C`atmega48pb\*(C'\fR, \f(CW\*(C`atmega8\*(C'\fR, \f(CW\*(C`atmega8a\*(C'\fR, \f(CW\*(C`atmega8hva\*(C'\fR, \f(CW\*(C`atmega8515\*(C'\fR, \f(CW\*(C`atmega8535\*(C'\fR, \f(CW\*(C`atmega88\*(C'\fR, \f(CW\*(C`atmega88a\*(C'\fR, \f(CW\*(C`atmega88p\*(C'\fR, \f(CW\*(C`atmega88pa\*(C'\fR, \f(CW\*(C`atmega88pb\*(C'\fR, \f(CW\*(C`at90pwm1\*(C'\fR, \f(CW\*(C`at90pwm2\*(C'\fR, \f(CW\*(C`at90pwm2b\*(C'\fR, \f(CW\*(C`at90pwm3\*(C'\fR, \f(CW\*(C`at90pwm3b\*(C'\fR, \f(CW\*(C`at90pwm81\*(C'\fR. .ie n .IP """avr5""" 4 .el .IP "\f(CWavr5\fR" 4 .IX Item "avr5" \&\*(L"Enhanced\*(R" devices with 16@tie{}KiB up to 64@tie{}KiB of program memory. ! \&\fImcu\fR\f(CW@tie\fR{}= \f(CW\*(C`ata5702m322\*(C'\fR, \f(CW\*(C`ata5782\*(C'\fR, \f(CW\*(C`ata5790\*(C'\fR, \f(CW\*(C`ata5790n\*(C'\fR, \f(CW\*(C`ata5791\*(C'\fR, \f(CW\*(C`ata5795\*(C'\fR, \f(CW\*(C`ata5831\*(C'\fR, \f(CW\*(C`ata6613c\*(C'\fR, \f(CW\*(C`ata6614q\*(C'\fR, \f(CW\*(C`ata8210\*(C'\fR, \f(CW\*(C`ata8510\*(C'\fR, \f(CW\*(C`atmega16\*(C'\fR, \f(CW\*(C`atmega16a\*(C'\fR, \f(CW\*(C`atmega16hva\*(C'\fR, \f(CW\*(C`atmega16hva2\*(C'\fR, \f(CW\*(C`atmega16hvb\*(C'\fR, \f(CW\*(C`atmega16hvbrevb\*(C'\fR, \f(CW\*(C`atmega16m1\*(C'\fR, \f(CW\*(C`atmega16u4\*(C'\fR, \f(CW\*(C`atmega161\*(C'\fR, \f(CW\*(C`atmega162\*(C'\fR, \f(CW\*(C`atmega163\*(C'\fR, \f(CW\*(C`atmega164a\*(C'\fR, \f(CW\*(C`atmega164p\*(C'\fR, \f(CW\*(C`atmega164pa\*(C'\fR, \f(CW\*(C`atmega165\*(C'\fR, \f(CW\*(C`atmega165a\*(C'\fR, \f(CW\*(C`atmega165p\*(C'\fR, \f(CW\*(C`atmega165pa\*(C'\fR, \f(CW\*(C`atmega168\*(C'\fR, \f(CW\*(C`atmega168a\*(C'\fR, \f(CW\*(C`atmega168p\*(C'\fR, \f(CW\*(C`atmega168pa\*(C'\fR, \f(CW\*(C`atmega168pb\*(C'\fR, \f(CW\*(C`atmega169\*(C'\fR, \f(CW\*(C`atmega169a\*(C'\fR, \f(CW\*(C`atmega169p\*(C'\fR, \f(CW\*(C`atmega169pa\*(C'\fR, \f(CW\*(C`atmega32\*(C'\fR, \f(CW\*(C`atmega32a\*(C'\fR, \f(CW\*(C`atmega32c1\*(C'\fR, \f(CW\*(C`atmega32hvb\*(C'\fR, \f(CW\*(C`atmega32hvbrevb\*(C'\fR, \f(CW\*(C`atmega32m1\*(C'\fR, \f(CW\*(C`atmega32u4\*(C'\fR, \f(CW\*(C`atmega32u6\*(C'\fR, \f(CW\*(C`atmega323\*(C'\fR, \f(CW\*(C`atmega324a\*(C'\fR, \f(CW\*(C`atmega324p\*(C'\fR, \f(CW\*(C`atmega324pa\*(C'\fR, \f(CW\*(C`atmega325\*(C'\fR, \f(CW\*(C`atmega325a\*(C'\fR, \f(CW\*(C`atmega325p\*(C'\fR, \f(CW\*(C`atmega325pa\*(C'\fR, \f(CW\*(C`atmega3250\*(C'\fR, \f(CW\*(C`atmega3250a\*(C'\fR, \f(CW\*(C`atmega3250p\*(C'\fR, \f(CW\*(C`atmega3250pa\*(C'\fR, \f(CW\*(C`atmega328\*(C'\fR, \f(CW\*(C`atmega328p\*(C'\fR, \f(CW\*(C`atmega328pb\*(C'\fR, \f(CW\*(C`atmega329\*(C'\fR, \f(CW\*(C`atmega329a\*(C'\fR, \f(CW\*(C`atmega329p\*(C'\fR, \f(CW\*(C`atmega329pa\*(C'\fR, \f(CW\*(C`atmega3290\*(C'\fR, \f(CW\*(C`atmega3290a\*(C'\fR, \f(CW\*(C`atmega3290p\*(C'\fR, \f(CW\*(C`atmega3290pa\*(C'\fR, \f(CW\*(C`atmega406\*(C'\fR, \f(CW\*(C`atmega64\*(C'\fR, \f(CW\*(C`atmega64a\*(C'\fR, \f(CW\*(C`atmega64c1\*(C'\fR, \f(CW\*(C`atmega64hve\*(C'\fR, \f(CW\*(C`atmega64hve2\*(C'\fR, \f(CW\*(C`atmega64m1\*(C'\fR, \f(CW\*(C`atmega64rfr2\*(C'\fR, \f(CW\*(C`atmega640\*(C'\fR, \f(CW\*(C`atmega644\*(C'\fR, \f(CW\*(C`atmega644a\*(C'\fR, \f(CW\*(C`atmega644p\*(C'\fR, \f(CW\*(C`atmega644pa\*(C'\fR, \f(CW\*(C`atmega644rfr2\*(C'\fR, \f(CW\*(C`atmega645\*(C'\fR, \f(CW\*(C`atmega645a\*(C'\fR, \f(CW\*(C`atmega645p\*(C'\fR, \f(CW\*(C`atmega6450\*(C'\fR, \f(CW\*(C`atmega6450a\*(C'\fR, \f(CW\*(C`atmega6450p\*(C'\fR, \f(CW\*(C`atmega649\*(C'\fR, \f(CW\*(C`atmega649a\*(C'\fR, \f(CW\*(C`atmega649p\*(C'\fR, \f(CW\*(C`atmega6490\*(C'\fR, \f(CW\*(C`atmega6490a\*(C'\fR, \f(CW\*(C`atmega6490p\*(C'\fR, \f(CW\*(C`at90can32\*(C'\fR, \f(CW\*(C`at90can64\*(C'\fR, \f(CW\*(C`at90pwm161\*(C'\fR, \f(CW\*(C`at90pwm216\*(C'\fR, \f(CW\*(C`at90pwm316\*(C'\fR, \f(CW\*(C`at90scr100\*(C'\fR, \f(CW\*(C`at90usb646\*(C'\fR, \f(CW\*(C`at90usb647\*(C'\fR, \f(CW\*(C`at94k\*(C'\fR, \f(CW\*(C`m3000\*(C'\fR. .ie n .IP """avr51""" 4 .el .IP "\f(CWavr51\fR" 4 .IX Item "avr51" --- 16174,16190 ---- .el .IP "\f(CWavr35\fR" 4 .IX Item "avr35" \&\*(L"Classic\*(R" devices with 16@tie{}KiB up to 64@tie{}KiB of program memory and with the \f(CW\*(C`MOVW\*(C'\fR instruction. ! \&\fImcu\fR\f(CW@tie\fR{}= \f(CW\*(C`attiny167\*(C'\fR, \f(CW\*(C`attiny1634\*(C'\fR, \f(CW\*(C`atmega8u2\*(C'\fR, \f(CW\*(C`atmega16u2\*(C'\fR, \f(CW\*(C`atmega32u2\*(C'\fR, \f(CW\*(C`ata5505\*(C'\fR, \f(CW\*(C`ata6617c\*(C'\fR, \f(CW\*(C`ata664251\*(C'\fR, \f(CW\*(C`at90usb82\*(C'\fR, \f(CW\*(C`at90usb162\*(C'\fR. .ie n .IP """avr4""" 4 .el .IP "\f(CWavr4\fR" 4 .IX Item "avr4" \&\*(L"Enhanced\*(R" devices with up to 8@tie{}KiB of program memory. ! \&\fImcu\fR\f(CW@tie\fR{}= \f(CW\*(C`atmega48\*(C'\fR, \f(CW\*(C`atmega48a\*(C'\fR, \f(CW\*(C`atmega48p\*(C'\fR, \f(CW\*(C`atmega48pa\*(C'\fR, \f(CW\*(C`atmega48pb\*(C'\fR, \f(CW\*(C`atmega8\*(C'\fR, \f(CW\*(C`atmega8a\*(C'\fR, \f(CW\*(C`atmega8hva\*(C'\fR, \f(CW\*(C`atmega88\*(C'\fR, \f(CW\*(C`atmega88a\*(C'\fR, \f(CW\*(C`atmega88p\*(C'\fR, \f(CW\*(C`atmega88pa\*(C'\fR, \f(CW\*(C`atmega88pb\*(C'\fR, \f(CW\*(C`atmega8515\*(C'\fR, \f(CW\*(C`atmega8535\*(C'\fR, \f(CW\*(C`ata6285\*(C'\fR, \f(CW\*(C`ata6286\*(C'\fR, \f(CW\*(C`ata6289\*(C'\fR, \f(CW\*(C`ata6612c\*(C'\fR, \f(CW\*(C`at90pwm1\*(C'\fR, \f(CW\*(C`at90pwm2\*(C'\fR, \f(CW\*(C`at90pwm2b\*(C'\fR, \f(CW\*(C`at90pwm3\*(C'\fR, \f(CW\*(C`at90pwm3b\*(C'\fR, \f(CW\*(C`at90pwm81\*(C'\fR. .ie n .IP """avr5""" 4 .el .IP "\f(CWavr5\fR" 4 .IX Item "avr5" \&\*(L"Enhanced\*(R" devices with 16@tie{}KiB up to 64@tie{}KiB of program memory. ! \&\fImcu\fR\f(CW@tie\fR{}= \f(CW\*(C`atmega16\*(C'\fR, \f(CW\*(C`atmega16a\*(C'\fR, \f(CW\*(C`atmega16hva\*(C'\fR, \f(CW\*(C`atmega16hva2\*(C'\fR, \f(CW\*(C`atmega16hvb\*(C'\fR, \f(CW\*(C`atmega16hvbrevb\*(C'\fR, \f(CW\*(C`atmega16m1\*(C'\fR, \f(CW\*(C`atmega16u4\*(C'\fR, \f(CW\*(C`atmega161\*(C'\fR, \f(CW\*(C`atmega162\*(C'\fR, \f(CW\*(C`atmega163\*(C'\fR, \f(CW\*(C`atmega164a\*(C'\fR, \f(CW\*(C`atmega164p\*(C'\fR, \f(CW\*(C`atmega164pa\*(C'\fR, \f(CW\*(C`atmega165\*(C'\fR, \f(CW\*(C`atmega165a\*(C'\fR, \f(CW\*(C`atmega165p\*(C'\fR, \f(CW\*(C`atmega165pa\*(C'\fR, \f(CW\*(C`atmega168\*(C'\fR, \f(CW\*(C`atmega168a\*(C'\fR, \f(CW\*(C`atmega168p\*(C'\fR, \f(CW\*(C`atmega168pa\*(C'\fR, \f(CW\*(C`atmega168pb\*(C'\fR, \f(CW\*(C`atmega169\*(C'\fR, \f(CW\*(C`atmega169a\*(C'\fR, \f(CW\*(C`atmega169p\*(C'\fR, \f(CW\*(C`atmega169pa\*(C'\fR, \f(CW\*(C`atmega32\*(C'\fR, \f(CW\*(C`atmega32a\*(C'\fR, \f(CW\*(C`atmega32c1\*(C'\fR, \f(CW\*(C`atmega32hvb\*(C'\fR, \f(CW\*(C`atmega32hvbrevb\*(C'\fR, \f(CW\*(C`atmega32m1\*(C'\fR, \f(CW\*(C`atmega32u4\*(C'\fR, \f(CW\*(C`atmega32u6\*(C'\fR, \f(CW\*(C`atmega323\*(C'\fR, \f(CW\*(C`atmega324a\*(C'\fR, \f(CW\*(C`atmega324p\*(C'\fR, \f(CW\*(C`atmega324pa\*(C'\fR, \f(CW\*(C`atmega325\*(C'\fR, \f(CW\*(C`atmega325a\*(C'\fR, \f(CW\*(C`atmega325p\*(C'\fR, \f(CW\*(C`atmega325pa\*(C'\fR, \f(CW\*(C`atmega328\*(C'\fR, \f(CW\*(C`atmega328p\*(C'\fR, \f(CW\*(C`atmega328pb\*(C'\fR, \f(CW\*(C`atmega329\*(C'\fR, \f(CW\*(C`atmega329a\*(C'\fR, \f(CW\*(C`atmega329p\*(C'\fR, \f(CW\*(C`atmega329pa\*(C'\fR, \f(CW\*(C`atmega3250\*(C'\fR, \f(CW\*(C`atmega3250a\*(C'\fR, \f(CW\*(C`atmega3250p\*(C'\fR, \f(CW\*(C`atmega3250pa\*(C'\fR, \f(CW\*(C`atmega3290\*(C'\fR, \f(CW\*(C`atmega3290a\*(C'\fR, \f(CW\*(C`atmega3290p\*(C'\fR, \f(CW\*(C`atmega3290pa\*(C'\fR, \f(CW\*(C`atmega406\*(C'\fR, \f(CW\*(C`atmega64\*(C'\fR, \f(CW\*(C`atmega64a\*(C'\fR, \f(CW\*(C`atmega64c1\*(C'\fR, \f(CW\*(C`atmega64hve\*(C'\fR, \f(CW\*(C`atmega64hve2\*(C'\fR, \f(CW\*(C`atmega64m1\*(C'\fR, \f(CW\*(C`atmega64rfr2\*(C'\fR, \f(CW\*(C`atmega640\*(C'\fR, \f(CW\*(C`atmega644\*(C'\fR, \f(CW\*(C`atmega644a\*(C'\fR, \f(CW\*(C`atmega644p\*(C'\fR, \f(CW\*(C`atmega644pa\*(C'\fR, \f(CW\*(C`atmega644rfr2\*(C'\fR, \f(CW\*(C`atmega645\*(C'\fR, \f(CW\*(C`atmega645a\*(C'\fR, \f(CW\*(C`atmega645p\*(C'\fR, \f(CW\*(C`atmega649\*(C'\fR, \f(CW\*(C`atmega649a\*(C'\fR, \f(CW\*(C`atmega649p\*(C'\fR, \f(CW\*(C`atmega6450\*(C'\fR, \f(CW\*(C`atmega6450a\*(C'\fR, \f(CW\*(C`atmega6450p\*(C'\fR, \f(CW\*(C`atmega6490\*(C'\fR, \f(CW\*(C`atmega6490a\*(C'\fR, \f(CW\*(C`atmega6490p\*(C'\fR, \f(CW\*(C`ata5795\*(C'\fR, \f(CW\*(C`ata5790\*(C'\fR, \f(CW\*(C`ata5790n\*(C'\fR, \f(CW\*(C`ata5791\*(C'\fR, \f(CW\*(C`ata6613c\*(C'\fR, \f(CW\*(C`ata6614q\*(C'\fR, \f(CW\*(C`ata5782\*(C'\fR, \f(CW\*(C`ata5831\*(C'\fR, \f(CW\*(C`ata8210\*(C'\fR, \f(CW\*(C`ata8510\*(C'\fR, \f(CW\*(C`ata5702m322\*(C'\fR, \f(CW\*(C`at90pwm161\*(C'\fR, \f(CW\*(C`at90pwm216\*(C'\fR, \f(CW\*(C`at90pwm316\*(C'\fR, \f(CW\*(C`at90can32\*(C'\fR, \f(CW\*(C`at90can64\*(C'\fR, \f(CW\*(C`at90scr100\*(C'\fR, \f(CW\*(C`at90usb646\*(C'\fR, \f(CW\*(C`at90usb647\*(C'\fR, \f(CW\*(C`at94k\*(C'\fR, \f(CW\*(C`m3000\*(C'\fR. .ie n .IP """avr51""" 4 .el .IP "\f(CWavr51\fR" 4 .IX Item "avr51" *************** The default for this option is@tie{}\fBa *** 16200,16211 **** .el .IP "\f(CWavrxmega2\fR" 4 .IX Item "avrxmega2" \&\*(L"\s-1XMEGA\*(R"\s0 devices with more than 8@tie{}KiB and up to 64@tie{}KiB of program memory. ! \&\fImcu\fR\f(CW@tie\fR{}= \f(CW\*(C`atxmega16a4\*(C'\fR, \f(CW\*(C`atxmega16a4u\*(C'\fR, \f(CW\*(C`atxmega16c4\*(C'\fR, \f(CW\*(C`atxmega16d4\*(C'\fR, \f(CW\*(C`atxmega16e5\*(C'\fR, \f(CW\*(C`atxmega32a4\*(C'\fR, \f(CW\*(C`atxmega32a4u\*(C'\fR, \f(CW\*(C`atxmega32c3\*(C'\fR, \f(CW\*(C`atxmega32c4\*(C'\fR, \f(CW\*(C`atxmega32d3\*(C'\fR, \f(CW\*(C`atxmega32d4\*(C'\fR, \f(CW\*(C`atxmega32e5\*(C'\fR, \f(CW\*(C`atxmega8e5\*(C'\fR. .ie n .IP """avrxmega3""" 4 .el .IP "\f(CWavrxmega3\fR" 4 .IX Item "avrxmega3" \&\*(L"\s-1XMEGA\*(R"\s0 devices with up to 64@tie{}KiB of combined program memory and \s-1RAM,\s0 and with program memory visible in the \s-1RAM\s0 address space. ! \&\fImcu\fR\f(CW@tie\fR{}= \f(CW\*(C`attiny1614\*(C'\fR, \f(CW\*(C`attiny1616\*(C'\fR, \f(CW\*(C`attiny1617\*(C'\fR, \f(CW\*(C`attiny212\*(C'\fR, \f(CW\*(C`attiny214\*(C'\fR, \f(CW\*(C`attiny3214\*(C'\fR, \f(CW\*(C`attiny3216\*(C'\fR, \f(CW\*(C`attiny3217\*(C'\fR, \f(CW\*(C`attiny412\*(C'\fR, \f(CW\*(C`attiny414\*(C'\fR, \f(CW\*(C`attiny416\*(C'\fR, \f(CW\*(C`attiny417\*(C'\fR, \f(CW\*(C`attiny814\*(C'\fR, \f(CW\*(C`attiny816\*(C'\fR, \f(CW\*(C`attiny817\*(C'\fR. .ie n .IP """avrxmega4""" 4 .el .IP "\f(CWavrxmega4\fR" 4 .IX Item "avrxmega4" --- 16199,16210 ---- .el .IP "\f(CWavrxmega2\fR" 4 .IX Item "avrxmega2" \&\*(L"\s-1XMEGA\*(R"\s0 devices with more than 8@tie{}KiB and up to 64@tie{}KiB of program memory. ! \&\fImcu\fR\f(CW@tie\fR{}= \f(CW\*(C`atxmega8e5\*(C'\fR, \f(CW\*(C`atxmega16a4\*(C'\fR, \f(CW\*(C`atxmega16a4u\*(C'\fR, \f(CW\*(C`atxmega16c4\*(C'\fR, \f(CW\*(C`atxmega16d4\*(C'\fR, \f(CW\*(C`atxmega16e5\*(C'\fR, \f(CW\*(C`atxmega32a4\*(C'\fR, \f(CW\*(C`atxmega32a4u\*(C'\fR, \f(CW\*(C`atxmega32c3\*(C'\fR, \f(CW\*(C`atxmega32c4\*(C'\fR, \f(CW\*(C`atxmega32d3\*(C'\fR, \f(CW\*(C`atxmega32d4\*(C'\fR, \f(CW\*(C`atxmega32e5\*(C'\fR. .ie n .IP """avrxmega3""" 4 .el .IP "\f(CWavrxmega3\fR" 4 .IX Item "avrxmega3" \&\*(L"\s-1XMEGA\*(R"\s0 devices with up to 64@tie{}KiB of combined program memory and \s-1RAM,\s0 and with program memory visible in the \s-1RAM\s0 address space. ! \&\fImcu\fR\f(CW@tie\fR{}= \f(CW\*(C`attiny202\*(C'\fR, \f(CW\*(C`attiny204\*(C'\fR, \f(CW\*(C`attiny212\*(C'\fR, \f(CW\*(C`attiny214\*(C'\fR, \f(CW\*(C`attiny402\*(C'\fR, \f(CW\*(C`attiny404\*(C'\fR, \f(CW\*(C`attiny406\*(C'\fR, \f(CW\*(C`attiny412\*(C'\fR, \f(CW\*(C`attiny414\*(C'\fR, \f(CW\*(C`attiny416\*(C'\fR, \f(CW\*(C`attiny417\*(C'\fR, \f(CW\*(C`attiny804\*(C'\fR, \f(CW\*(C`attiny806\*(C'\fR, \f(CW\*(C`attiny807\*(C'\fR, \f(CW\*(C`attiny814\*(C'\fR, \f(CW\*(C`attiny816\*(C'\fR, \f(CW\*(C`attiny817\*(C'\fR, \f(CW\*(C`attiny1604\*(C'\fR, \f(CW\*(C`attiny1606\*(C'\fR, \f(CW\*(C`attiny1607\*(C'\fR, \f(CW\*(C`attiny1614\*(C'\fR, \f(CW\*(C`attiny1616\*(C'\fR, \f(CW\*(C`attiny1617\*(C'\fR, \f(CW\*(C`attiny3214\*(C'\fR, \f(CW\*(C`attiny3216\*(C'\fR, \f(CW\*(C`attiny3217\*(C'\fR, \f(CW\*(C`atmega808\*(C'\fR, \f(CW\*(C`atmega809\*(C'\fR, \f(CW\*(C`atmega1608\*(C'\fR, \f(CW\*(C`atmega1609\*(C'\fR, \f(CW\*(C`atmega3208\*(C'\fR, \f(CW\*(C`atmega3209\*(C'\fR, \f(CW\*(C`atmega4808\*(C'\fR, \f(CW\*(C`atmega4809\*(C'\fR. .ie n .IP """avrxmega4""" 4 .el .IP "\f(CWavrxmega4\fR" 4 .IX Item "avrxmega4" *************** The default for this option is@tie{}\fBa *** 16230,16236 **** .el .IP "\f(CWavrtiny\fR" 4 .IX Item "avrtiny" \&\*(L"\s-1TINY\*(R"\s0 Tiny core devices with 512@tie{}B up to 4@tie{}KiB of program memory. ! \&\fImcu\fR\f(CW@tie\fR{}= \f(CW\*(C`attiny10\*(C'\fR, \f(CW\*(C`attiny20\*(C'\fR, \f(CW\*(C`attiny4\*(C'\fR, \f(CW\*(C`attiny40\*(C'\fR, \f(CW\*(C`attiny5\*(C'\fR, \f(CW\*(C`attiny9\*(C'\fR. .ie n .IP """avr1""" 4 .el .IP "\f(CWavr1\fR" 4 .IX Item "avr1" --- 16229,16235 ---- .el .IP "\f(CWavrtiny\fR" 4 .IX Item "avrtiny" \&\*(L"\s-1TINY\*(R"\s0 Tiny core devices with 512@tie{}B up to 4@tie{}KiB of program memory. ! \&\fImcu\fR\f(CW@tie\fR{}= \f(CW\*(C`attiny4\*(C'\fR, \f(CW\*(C`attiny5\*(C'\fR, \f(CW\*(C`attiny9\*(C'\fR, \f(CW\*(C`attiny10\*(C'\fR, \f(CW\*(C`attiny20\*(C'\fR, \f(CW\*(C`attiny40\*(C'\fR. .ie n .IP """avr1""" 4 .el .IP "\f(CWavr1\fR" 4 .IX Item "avr1" *************** Allow to use truncation instead of round *** 16365,16370 **** --- 16364,16375 ---- .IP "\fB\-nodevicelib\fR" 4 .IX Item "-nodevicelib" Don't link against AVR-LibC's device specific library \f(CW\*(C`lib.a\*(C'\fR. + .IP "\fB\-nodevicespecs\fR" 4 + .IX Item "-nodevicespecs" + Don't add \fB\-specs=device\-specs/specs\-\fR to the compiler driver's + command line. The user takes responsibility for supplying the sub-processes + like compiler proper, assembler and linker with appropriate command line + options. .IP "\fB\-Waddr\-space\-convert\fR" 4 .IX Item "-Waddr-space-convert" Warn about conversions between address spaces in the case where the diff -Nrcpad gcc-8.3.0/gcc/doc/gcc.1 gcc-8.4.0/gcc/doc/gcc.1 *** gcc-8.3.0/gcc/doc/gcc.1 Fri Feb 22 14:35:28 2019 --- gcc-8.4.0/gcc/doc/gcc.1 Wed Mar 4 08:45:25 2020 *************** *** 133,139 **** .\" ======================================================================== .\" .IX Title "GCC 1" ! .TH GCC 1 "2019-02-22" "gcc-8.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 "2020-03-04" "gcc-8.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. *** 571,578 **** \&\fB\-fdisable\-tree\-\fR\fIpass_name\fR \&\fB\-fdisable\-tree\-\fR\fIpass-name\fR\fB=\fR\fIrange-list\fR \&\fB\-fdump\-noaddr \-fdump\-unnumbered \-fdump\-unnumbered\-links ! \&\-fdump\-class\-hierarchy\fR[\fB\-\fR\fIn\fR] ! \&\fB\-fdump\-final\-insns\fR[\fB=\fR\fIfile\fR] \&\fB\-fdump\-ipa\-all \-fdump\-ipa\-cgraph \-fdump\-ipa\-inline \&\-fdump\-lang\-all \&\-fdump\-lang\-\fR\fIswitch\fR --- 571,577 ---- \&\fB\-fdisable\-tree\-\fR\fIpass_name\fR \&\fB\-fdisable\-tree\-\fR\fIpass-name\fR\fB=\fR\fIrange-list\fR \&\fB\-fdump\-noaddr \-fdump\-unnumbered \-fdump\-unnumbered\-links ! \&\-fdump\-final\-insns\fR[\fB=\fR\fIfile\fR] \&\fB\-fdump\-ipa\-all \-fdump\-ipa\-cgraph \-fdump\-ipa\-inline \&\-fdump\-lang\-all \&\-fdump\-lang\-\fR\fIswitch\fR *************** in the following sections. *** 689,695 **** \&\-mn_flash=\fR\fIsize\fR \fB\-mno\-interrupts \&\-mmain\-is\-OS_task \-mrelax \-mrmw \-mstrict\-X \-mtiny\-stack \&\-mfract\-convert\-truncate ! \&\-mshort\-calls \-nodevicelib \&\-Waddr\-space\-convert \-Wmisspelled\-isr\fR .Sp \&\fIBlackfin Options\fR --- 688,694 ---- \&\-mn_flash=\fR\fIsize\fR \fB\-mno\-interrupts \&\-mmain\-is\-OS_task \-mrelax \-mrmw \-mstrict\-X \-mtiny\-stack \&\-mfract\-convert\-truncate ! \&\-mshort\-calls \-nodevicelib \-nodevicespecs \&\-Waddr\-space\-convert \-Wmisspelled\-isr\fR .Sp \&\fIBlackfin Options\fR *************** would be rendered unable to decode locat *** 6864,6871 **** .IP "\fB\-ginternal\-reset\-location\-views\fR" 4 .IX Item "-ginternal-reset-location-views" .PD 0 ! .IP "\fB\-gnointernal\-reset\-location\-views\fR" 4 ! .IX Item "-gnointernal-reset-location-views" .PD Attempt to determine location views that can be omitted from location view lists. This requires the compiler to have very accurate insn --- 6863,6870 ---- .IP "\fB\-ginternal\-reset\-location\-views\fR" 4 .IX Item "-ginternal-reset-location-views" .PD 0 ! .IP "\fB\-gno\-internal\-reset\-location\-views\fR" 4 ! .IX Item "-gno-internal-reset-location-views" .PD Attempt to determine location views that can be omitted from location view lists. This requires the compiler to have very accurate insn *************** do not typically increase code size. *** 7153,7160 **** .Sp \&\fB\-Os\fR disables the following optimization flags: \&\fB\-falign\-functions \-falign\-jumps \-falign\-loops ! \&\-falign\-labels \-freorder\-blocks \-freorder\-blocks\-algorithm=stc ! \&\-freorder\-blocks\-and\-partition \-fprefetch\-loop\-arrays\fR .Sp It also enables \fB\-finline\-functions\fR, causes the compiler to tune for code size rather than execution speed, and performs further optimizations --- 7152,7158 ---- .Sp \&\fB\-Os\fR disables the following optimization flags: \&\fB\-falign\-functions \-falign\-jumps \-falign\-loops ! \&\-falign\-labels \-fprefetch\-loop\-arrays\fR .Sp It also enables \fB\-finline\-functions\fR, causes the compiler to tune for code size rather than execution speed, and performs further optimizations *************** Specify the name of the target processor *** 14232,14237 **** --- 14230,14236 ---- performance of the code. Permissible values for this option are: \&\fBgeneric\fR, \fBcortex\-a35\fR, \fBcortex\-a53\fR, \fBcortex\-a55\fR, \&\fBcortex\-a57\fR, \fBcortex\-a72\fR, \fBcortex\-a73\fR, \fBcortex\-a75\fR, + \&\fBcortex\-a76\fR, \fBares\fR, \fBneoverse\-n1\fR \&\fBexynos\-m1\fR, \fBfalkor\fR, \fBqdf24xx\fR, \fBsaphira\fR, \&\fBxgene1\fR, \fBvulcan\fR, \fBthunderx\fR, \&\fBthunderxt88\fR, \fBthunderxt88p1\fR, \fBthunderxt81\fR, *************** The default for this option is@tie{}\fBa *** 16155,16171 **** .el .IP "\f(CWavr2\fR" 4 .IX Item "avr2" \&\*(L"Classic\*(R" devices with up to 8@tie{}KiB of program memory. ! \&\fImcu\fR\f(CW@tie\fR{}= \f(CW\*(C`attiny22\*(C'\fR, \f(CW\*(C`attiny26\*(C'\fR, \f(CW\*(C`at90c8534\*(C'\fR, \f(CW\*(C`at90s2313\*(C'\fR, \f(CW\*(C`at90s2323\*(C'\fR, \f(CW\*(C`at90s2333\*(C'\fR, \f(CW\*(C`at90s2343\*(C'\fR, \f(CW\*(C`at90s4414\*(C'\fR, \f(CW\*(C`at90s4433\*(C'\fR, \f(CW\*(C`at90s4434\*(C'\fR, \f(CW\*(C`at90s8515\*(C'\fR, \f(CW\*(C`at90s8535\*(C'\fR. .ie n .IP """avr25""" 4 .el .IP "\f(CWavr25\fR" 4 .IX Item "avr25" \&\*(L"Classic\*(R" devices with up to 8@tie{}KiB of program memory and with the \f(CW\*(C`MOVW\*(C'\fR instruction. ! \&\fImcu\fR\f(CW@tie\fR{}= \f(CW\*(C`ata5272\*(C'\fR, \f(CW\*(C`ata6616c\*(C'\fR, \f(CW\*(C`attiny13\*(C'\fR, \f(CW\*(C`attiny13a\*(C'\fR, \f(CW\*(C`attiny2313\*(C'\fR, \f(CW\*(C`attiny2313a\*(C'\fR, \f(CW\*(C`attiny24\*(C'\fR, \f(CW\*(C`attiny24a\*(C'\fR, \f(CW\*(C`attiny25\*(C'\fR, \f(CW\*(C`attiny261\*(C'\fR, \f(CW\*(C`attiny261a\*(C'\fR, \f(CW\*(C`attiny43u\*(C'\fR, \f(CW\*(C`attiny4313\*(C'\fR, \f(CW\*(C`attiny44\*(C'\fR, \f(CW\*(C`attiny44a\*(C'\fR, \f(CW\*(C`attiny441\*(C'\fR, \f(CW\*(C`attiny45\*(C'\fR, \f(CW\*(C`attiny461\*(C'\fR, \f(CW\*(C`attiny461a\*(C'\fR, \f(CW\*(C`attiny48\*(C'\fR, \f(CW\*(C`attiny828\*(C'\fR, \f(CW\*(C`attiny84\*(C'\fR, \f(CW\*(C`attiny84a\*(C'\fR, \f(CW\*(C`attiny841\*(C'\fR, \f(CW\*(C`attiny85\*(C'\fR, \f(CW\*(C`attiny861\*(C'\fR, \f(CW\*(C`attiny861a\*(C'\fR, \f(CW\*(C`attiny87\*(C'\fR, \f(CW\*(C`attiny88\*(C'\fR, \f(CW\*(C`at86rf401\*(C'\fR. .ie n .IP """avr3""" 4 .el .IP "\f(CWavr3\fR" 4 .IX Item "avr3" ! \&\*(L"Classic\*(R" devices with 16@tie{}KiB up to 64@tie{}KiB of program memory. ! \&\fImcu\fR\f(CW@tie\fR{}= \f(CW\*(C`at43usb355\*(C'\fR, \f(CW\*(C`at76c711\*(C'\fR. .ie n .IP """avr31""" 4 .el .IP "\f(CWavr31\fR" 4 .IX Item "avr31" --- 16154,16170 ---- .el .IP "\f(CWavr2\fR" 4 .IX Item "avr2" \&\*(L"Classic\*(R" devices with up to 8@tie{}KiB of program memory. ! \&\fImcu\fR\f(CW@tie\fR{}= \f(CW\*(C`attiny22\*(C'\fR, \f(CW\*(C`attiny26\*(C'\fR, \f(CW\*(C`at90s2313\*(C'\fR, \f(CW\*(C`at90s2323\*(C'\fR, \f(CW\*(C`at90s2333\*(C'\fR, \f(CW\*(C`at90s2343\*(C'\fR, \f(CW\*(C`at90s4414\*(C'\fR, \f(CW\*(C`at90s4433\*(C'\fR, \f(CW\*(C`at90s4434\*(C'\fR, \f(CW\*(C`at90c8534\*(C'\fR, \f(CW\*(C`at90s8515\*(C'\fR, \f(CW\*(C`at90s8535\*(C'\fR. .ie n .IP """avr25""" 4 .el .IP "\f(CWavr25\fR" 4 .IX Item "avr25" \&\*(L"Classic\*(R" devices with up to 8@tie{}KiB of program memory and with the \f(CW\*(C`MOVW\*(C'\fR instruction. ! \&\fImcu\fR\f(CW@tie\fR{}= \f(CW\*(C`attiny13\*(C'\fR, \f(CW\*(C`attiny13a\*(C'\fR, \f(CW\*(C`attiny24\*(C'\fR, \f(CW\*(C`attiny24a\*(C'\fR, \f(CW\*(C`attiny25\*(C'\fR, \f(CW\*(C`attiny261\*(C'\fR, \f(CW\*(C`attiny261a\*(C'\fR, \f(CW\*(C`attiny2313\*(C'\fR, \f(CW\*(C`attiny2313a\*(C'\fR, \f(CW\*(C`attiny43u\*(C'\fR, \f(CW\*(C`attiny44\*(C'\fR, \f(CW\*(C`attiny44a\*(C'\fR, \f(CW\*(C`attiny45\*(C'\fR, \f(CW\*(C`attiny48\*(C'\fR, \f(CW\*(C`attiny441\*(C'\fR, \f(CW\*(C`attiny461\*(C'\fR, \f(CW\*(C`attiny461a\*(C'\fR, \f(CW\*(C`attiny4313\*(C'\fR, \f(CW\*(C`attiny84\*(C'\fR, \f(CW\*(C`attiny84a\*(C'\fR, \f(CW\*(C`attiny85\*(C'\fR, \f(CW\*(C`attiny87\*(C'\fR, \f(CW\*(C`attiny88\*(C'\fR, \f(CW\*(C`attiny828\*(C'\fR, \f(CW\*(C`attiny841\*(C'\fR, \f(CW\*(C`attiny861\*(C'\fR, \f(CW\*(C`attiny861a\*(C'\fR, \f(CW\*(C`ata5272\*(C'\fR, \f(CW\*(C`ata6616c\*(C'\fR, \f(CW\*(C`at86rf401\*(C'\fR. .ie n .IP """avr3""" 4 .el .IP "\f(CWavr3\fR" 4 .IX Item "avr3" ! \&\*(L"Classic\*(R" devices with 16@tie{}KiB up to 64@tie{}KiB of program memory. ! \&\fImcu\fR\f(CW@tie\fR{}= \f(CW\*(C`at76c711\*(C'\fR, \f(CW\*(C`at43usb355\*(C'\fR. .ie n .IP """avr31""" 4 .el .IP "\f(CWavr31\fR" 4 .IX Item "avr31" *************** The default for this option is@tie{}\fBa *** 16175,16191 **** .el .IP "\f(CWavr35\fR" 4 .IX Item "avr35" \&\*(L"Classic\*(R" devices with 16@tie{}KiB up to 64@tie{}KiB of program memory and with the \f(CW\*(C`MOVW\*(C'\fR instruction. ! \&\fImcu\fR\f(CW@tie\fR{}= \f(CW\*(C`ata5505\*(C'\fR, \f(CW\*(C`ata6617c\*(C'\fR, \f(CW\*(C`ata664251\*(C'\fR, \f(CW\*(C`atmega16u2\*(C'\fR, \f(CW\*(C`atmega32u2\*(C'\fR, \f(CW\*(C`atmega8u2\*(C'\fR, \f(CW\*(C`attiny1634\*(C'\fR, \f(CW\*(C`attiny167\*(C'\fR, \f(CW\*(C`at90usb162\*(C'\fR, \f(CW\*(C`at90usb82\*(C'\fR. .ie n .IP """avr4""" 4 .el .IP "\f(CWavr4\fR" 4 .IX Item "avr4" \&\*(L"Enhanced\*(R" devices with up to 8@tie{}KiB of program memory. ! \&\fImcu\fR\f(CW@tie\fR{}= \f(CW\*(C`ata6285\*(C'\fR, \f(CW\*(C`ata6286\*(C'\fR, \f(CW\*(C`ata6289\*(C'\fR, \f(CW\*(C`ata6612c\*(C'\fR, \f(CW\*(C`atmega48\*(C'\fR, \f(CW\*(C`atmega48a\*(C'\fR, \f(CW\*(C`atmega48p\*(C'\fR, \f(CW\*(C`atmega48pa\*(C'\fR, \f(CW\*(C`atmega48pb\*(C'\fR, \f(CW\*(C`atmega8\*(C'\fR, \f(CW\*(C`atmega8a\*(C'\fR, \f(CW\*(C`atmega8hva\*(C'\fR, \f(CW\*(C`atmega8515\*(C'\fR, \f(CW\*(C`atmega8535\*(C'\fR, \f(CW\*(C`atmega88\*(C'\fR, \f(CW\*(C`atmega88a\*(C'\fR, \f(CW\*(C`atmega88p\*(C'\fR, \f(CW\*(C`atmega88pa\*(C'\fR, \f(CW\*(C`atmega88pb\*(C'\fR, \f(CW\*(C`at90pwm1\*(C'\fR, \f(CW\*(C`at90pwm2\*(C'\fR, \f(CW\*(C`at90pwm2b\*(C'\fR, \f(CW\*(C`at90pwm3\*(C'\fR, \f(CW\*(C`at90pwm3b\*(C'\fR, \f(CW\*(C`at90pwm81\*(C'\fR. .ie n .IP """avr5""" 4 .el .IP "\f(CWavr5\fR" 4 .IX Item "avr5" \&\*(L"Enhanced\*(R" devices with 16@tie{}KiB up to 64@tie{}KiB of program memory. ! \&\fImcu\fR\f(CW@tie\fR{}= \f(CW\*(C`ata5702m322\*(C'\fR, \f(CW\*(C`ata5782\*(C'\fR, \f(CW\*(C`ata5790\*(C'\fR, \f(CW\*(C`ata5790n\*(C'\fR, \f(CW\*(C`ata5791\*(C'\fR, \f(CW\*(C`ata5795\*(C'\fR, \f(CW\*(C`ata5831\*(C'\fR, \f(CW\*(C`ata6613c\*(C'\fR, \f(CW\*(C`ata6614q\*(C'\fR, \f(CW\*(C`ata8210\*(C'\fR, \f(CW\*(C`ata8510\*(C'\fR, \f(CW\*(C`atmega16\*(C'\fR, \f(CW\*(C`atmega16a\*(C'\fR, \f(CW\*(C`atmega16hva\*(C'\fR, \f(CW\*(C`atmega16hva2\*(C'\fR, \f(CW\*(C`atmega16hvb\*(C'\fR, \f(CW\*(C`atmega16hvbrevb\*(C'\fR, \f(CW\*(C`atmega16m1\*(C'\fR, \f(CW\*(C`atmega16u4\*(C'\fR, \f(CW\*(C`atmega161\*(C'\fR, \f(CW\*(C`atmega162\*(C'\fR, \f(CW\*(C`atmega163\*(C'\fR, \f(CW\*(C`atmega164a\*(C'\fR, \f(CW\*(C`atmega164p\*(C'\fR, \f(CW\*(C`atmega164pa\*(C'\fR, \f(CW\*(C`atmega165\*(C'\fR, \f(CW\*(C`atmega165a\*(C'\fR, \f(CW\*(C`atmega165p\*(C'\fR, \f(CW\*(C`atmega165pa\*(C'\fR, \f(CW\*(C`atmega168\*(C'\fR, \f(CW\*(C`atmega168a\*(C'\fR, \f(CW\*(C`atmega168p\*(C'\fR, \f(CW\*(C`atmega168pa\*(C'\fR, \f(CW\*(C`atmega168pb\*(C'\fR, \f(CW\*(C`atmega169\*(C'\fR, \f(CW\*(C`atmega169a\*(C'\fR, \f(CW\*(C`atmega169p\*(C'\fR, \f(CW\*(C`atmega169pa\*(C'\fR, \f(CW\*(C`atmega32\*(C'\fR, \f(CW\*(C`atmega32a\*(C'\fR, \f(CW\*(C`atmega32c1\*(C'\fR, \f(CW\*(C`atmega32hvb\*(C'\fR, \f(CW\*(C`atmega32hvbrevb\*(C'\fR, \f(CW\*(C`atmega32m1\*(C'\fR, \f(CW\*(C`atmega32u4\*(C'\fR, \f(CW\*(C`atmega32u6\*(C'\fR, \f(CW\*(C`atmega323\*(C'\fR, \f(CW\*(C`atmega324a\*(C'\fR, \f(CW\*(C`atmega324p\*(C'\fR, \f(CW\*(C`atmega324pa\*(C'\fR, \f(CW\*(C`atmega325\*(C'\fR, \f(CW\*(C`atmega325a\*(C'\fR, \f(CW\*(C`atmega325p\*(C'\fR, \f(CW\*(C`atmega325pa\*(C'\fR, \f(CW\*(C`atmega3250\*(C'\fR, \f(CW\*(C`atmega3250a\*(C'\fR, \f(CW\*(C`atmega3250p\*(C'\fR, \f(CW\*(C`atmega3250pa\*(C'\fR, \f(CW\*(C`atmega328\*(C'\fR, \f(CW\*(C`atmega328p\*(C'\fR, \f(CW\*(C`atmega328pb\*(C'\fR, \f(CW\*(C`atmega329\*(C'\fR, \f(CW\*(C`atmega329a\*(C'\fR, \f(CW\*(C`atmega329p\*(C'\fR, \f(CW\*(C`atmega329pa\*(C'\fR, \f(CW\*(C`atmega3290\*(C'\fR, \f(CW\*(C`atmega3290a\*(C'\fR, \f(CW\*(C`atmega3290p\*(C'\fR, \f(CW\*(C`atmega3290pa\*(C'\fR, \f(CW\*(C`atmega406\*(C'\fR, \f(CW\*(C`atmega64\*(C'\fR, \f(CW\*(C`atmega64a\*(C'\fR, \f(CW\*(C`atmega64c1\*(C'\fR, \f(CW\*(C`atmega64hve\*(C'\fR, \f(CW\*(C`atmega64hve2\*(C'\fR, \f(CW\*(C`atmega64m1\*(C'\fR, \f(CW\*(C`atmega64rfr2\*(C'\fR, \f(CW\*(C`atmega640\*(C'\fR, \f(CW\*(C`atmega644\*(C'\fR, \f(CW\*(C`atmega644a\*(C'\fR, \f(CW\*(C`atmega644p\*(C'\fR, \f(CW\*(C`atmega644pa\*(C'\fR, \f(CW\*(C`atmega644rfr2\*(C'\fR, \f(CW\*(C`atmega645\*(C'\fR, \f(CW\*(C`atmega645a\*(C'\fR, \f(CW\*(C`atmega645p\*(C'\fR, \f(CW\*(C`atmega6450\*(C'\fR, \f(CW\*(C`atmega6450a\*(C'\fR, \f(CW\*(C`atmega6450p\*(C'\fR, \f(CW\*(C`atmega649\*(C'\fR, \f(CW\*(C`atmega649a\*(C'\fR, \f(CW\*(C`atmega649p\*(C'\fR, \f(CW\*(C`atmega6490\*(C'\fR, \f(CW\*(C`atmega6490a\*(C'\fR, \f(CW\*(C`atmega6490p\*(C'\fR, \f(CW\*(C`at90can32\*(C'\fR, \f(CW\*(C`at90can64\*(C'\fR, \f(CW\*(C`at90pwm161\*(C'\fR, \f(CW\*(C`at90pwm216\*(C'\fR, \f(CW\*(C`at90pwm316\*(C'\fR, \f(CW\*(C`at90scr100\*(C'\fR, \f(CW\*(C`at90usb646\*(C'\fR, \f(CW\*(C`at90usb647\*(C'\fR, \f(CW\*(C`at94k\*(C'\fR, \f(CW\*(C`m3000\*(C'\fR. .ie n .IP """avr51""" 4 .el .IP "\f(CWavr51\fR" 4 .IX Item "avr51" --- 16174,16190 ---- .el .IP "\f(CWavr35\fR" 4 .IX Item "avr35" \&\*(L"Classic\*(R" devices with 16@tie{}KiB up to 64@tie{}KiB of program memory and with the \f(CW\*(C`MOVW\*(C'\fR instruction. ! \&\fImcu\fR\f(CW@tie\fR{}= \f(CW\*(C`attiny167\*(C'\fR, \f(CW\*(C`attiny1634\*(C'\fR, \f(CW\*(C`atmega8u2\*(C'\fR, \f(CW\*(C`atmega16u2\*(C'\fR, \f(CW\*(C`atmega32u2\*(C'\fR, \f(CW\*(C`ata5505\*(C'\fR, \f(CW\*(C`ata6617c\*(C'\fR, \f(CW\*(C`ata664251\*(C'\fR, \f(CW\*(C`at90usb82\*(C'\fR, \f(CW\*(C`at90usb162\*(C'\fR. .ie n .IP """avr4""" 4 .el .IP "\f(CWavr4\fR" 4 .IX Item "avr4" \&\*(L"Enhanced\*(R" devices with up to 8@tie{}KiB of program memory. ! \&\fImcu\fR\f(CW@tie\fR{}= \f(CW\*(C`atmega48\*(C'\fR, \f(CW\*(C`atmega48a\*(C'\fR, \f(CW\*(C`atmega48p\*(C'\fR, \f(CW\*(C`atmega48pa\*(C'\fR, \f(CW\*(C`atmega48pb\*(C'\fR, \f(CW\*(C`atmega8\*(C'\fR, \f(CW\*(C`atmega8a\*(C'\fR, \f(CW\*(C`atmega8hva\*(C'\fR, \f(CW\*(C`atmega88\*(C'\fR, \f(CW\*(C`atmega88a\*(C'\fR, \f(CW\*(C`atmega88p\*(C'\fR, \f(CW\*(C`atmega88pa\*(C'\fR, \f(CW\*(C`atmega88pb\*(C'\fR, \f(CW\*(C`atmega8515\*(C'\fR, \f(CW\*(C`atmega8535\*(C'\fR, \f(CW\*(C`ata6285\*(C'\fR, \f(CW\*(C`ata6286\*(C'\fR, \f(CW\*(C`ata6289\*(C'\fR, \f(CW\*(C`ata6612c\*(C'\fR, \f(CW\*(C`at90pwm1\*(C'\fR, \f(CW\*(C`at90pwm2\*(C'\fR, \f(CW\*(C`at90pwm2b\*(C'\fR, \f(CW\*(C`at90pwm3\*(C'\fR, \f(CW\*(C`at90pwm3b\*(C'\fR, \f(CW\*(C`at90pwm81\*(C'\fR. .ie n .IP """avr5""" 4 .el .IP "\f(CWavr5\fR" 4 .IX Item "avr5" \&\*(L"Enhanced\*(R" devices with 16@tie{}KiB up to 64@tie{}KiB of program memory. ! \&\fImcu\fR\f(CW@tie\fR{}= \f(CW\*(C`atmega16\*(C'\fR, \f(CW\*(C`atmega16a\*(C'\fR, \f(CW\*(C`atmega16hva\*(C'\fR, \f(CW\*(C`atmega16hva2\*(C'\fR, \f(CW\*(C`atmega16hvb\*(C'\fR, \f(CW\*(C`atmega16hvbrevb\*(C'\fR, \f(CW\*(C`atmega16m1\*(C'\fR, \f(CW\*(C`atmega16u4\*(C'\fR, \f(CW\*(C`atmega161\*(C'\fR, \f(CW\*(C`atmega162\*(C'\fR, \f(CW\*(C`atmega163\*(C'\fR, \f(CW\*(C`atmega164a\*(C'\fR, \f(CW\*(C`atmega164p\*(C'\fR, \f(CW\*(C`atmega164pa\*(C'\fR, \f(CW\*(C`atmega165\*(C'\fR, \f(CW\*(C`atmega165a\*(C'\fR, \f(CW\*(C`atmega165p\*(C'\fR, \f(CW\*(C`atmega165pa\*(C'\fR, \f(CW\*(C`atmega168\*(C'\fR, \f(CW\*(C`atmega168a\*(C'\fR, \f(CW\*(C`atmega168p\*(C'\fR, \f(CW\*(C`atmega168pa\*(C'\fR, \f(CW\*(C`atmega168pb\*(C'\fR, \f(CW\*(C`atmega169\*(C'\fR, \f(CW\*(C`atmega169a\*(C'\fR, \f(CW\*(C`atmega169p\*(C'\fR, \f(CW\*(C`atmega169pa\*(C'\fR, \f(CW\*(C`atmega32\*(C'\fR, \f(CW\*(C`atmega32a\*(C'\fR, \f(CW\*(C`atmega32c1\*(C'\fR, \f(CW\*(C`atmega32hvb\*(C'\fR, \f(CW\*(C`atmega32hvbrevb\*(C'\fR, \f(CW\*(C`atmega32m1\*(C'\fR, \f(CW\*(C`atmega32u4\*(C'\fR, \f(CW\*(C`atmega32u6\*(C'\fR, \f(CW\*(C`atmega323\*(C'\fR, \f(CW\*(C`atmega324a\*(C'\fR, \f(CW\*(C`atmega324p\*(C'\fR, \f(CW\*(C`atmega324pa\*(C'\fR, \f(CW\*(C`atmega325\*(C'\fR, \f(CW\*(C`atmega325a\*(C'\fR, \f(CW\*(C`atmega325p\*(C'\fR, \f(CW\*(C`atmega325pa\*(C'\fR, \f(CW\*(C`atmega328\*(C'\fR, \f(CW\*(C`atmega328p\*(C'\fR, \f(CW\*(C`atmega328pb\*(C'\fR, \f(CW\*(C`atmega329\*(C'\fR, \f(CW\*(C`atmega329a\*(C'\fR, \f(CW\*(C`atmega329p\*(C'\fR, \f(CW\*(C`atmega329pa\*(C'\fR, \f(CW\*(C`atmega3250\*(C'\fR, \f(CW\*(C`atmega3250a\*(C'\fR, \f(CW\*(C`atmega3250p\*(C'\fR, \f(CW\*(C`atmega3250pa\*(C'\fR, \f(CW\*(C`atmega3290\*(C'\fR, \f(CW\*(C`atmega3290a\*(C'\fR, \f(CW\*(C`atmega3290p\*(C'\fR, \f(CW\*(C`atmega3290pa\*(C'\fR, \f(CW\*(C`atmega406\*(C'\fR, \f(CW\*(C`atmega64\*(C'\fR, \f(CW\*(C`atmega64a\*(C'\fR, \f(CW\*(C`atmega64c1\*(C'\fR, \f(CW\*(C`atmega64hve\*(C'\fR, \f(CW\*(C`atmega64hve2\*(C'\fR, \f(CW\*(C`atmega64m1\*(C'\fR, \f(CW\*(C`atmega64rfr2\*(C'\fR, \f(CW\*(C`atmega640\*(C'\fR, \f(CW\*(C`atmega644\*(C'\fR, \f(CW\*(C`atmega644a\*(C'\fR, \f(CW\*(C`atmega644p\*(C'\fR, \f(CW\*(C`atmega644pa\*(C'\fR, \f(CW\*(C`atmega644rfr2\*(C'\fR, \f(CW\*(C`atmega645\*(C'\fR, \f(CW\*(C`atmega645a\*(C'\fR, \f(CW\*(C`atmega645p\*(C'\fR, \f(CW\*(C`atmega649\*(C'\fR, \f(CW\*(C`atmega649a\*(C'\fR, \f(CW\*(C`atmega649p\*(C'\fR, \f(CW\*(C`atmega6450\*(C'\fR, \f(CW\*(C`atmega6450a\*(C'\fR, \f(CW\*(C`atmega6450p\*(C'\fR, \f(CW\*(C`atmega6490\*(C'\fR, \f(CW\*(C`atmega6490a\*(C'\fR, \f(CW\*(C`atmega6490p\*(C'\fR, \f(CW\*(C`ata5795\*(C'\fR, \f(CW\*(C`ata5790\*(C'\fR, \f(CW\*(C`ata5790n\*(C'\fR, \f(CW\*(C`ata5791\*(C'\fR, \f(CW\*(C`ata6613c\*(C'\fR, \f(CW\*(C`ata6614q\*(C'\fR, \f(CW\*(C`ata5782\*(C'\fR, \f(CW\*(C`ata5831\*(C'\fR, \f(CW\*(C`ata8210\*(C'\fR, \f(CW\*(C`ata8510\*(C'\fR, \f(CW\*(C`ata5702m322\*(C'\fR, \f(CW\*(C`at90pwm161\*(C'\fR, \f(CW\*(C`at90pwm216\*(C'\fR, \f(CW\*(C`at90pwm316\*(C'\fR, \f(CW\*(C`at90can32\*(C'\fR, \f(CW\*(C`at90can64\*(C'\fR, \f(CW\*(C`at90scr100\*(C'\fR, \f(CW\*(C`at90usb646\*(C'\fR, \f(CW\*(C`at90usb647\*(C'\fR, \f(CW\*(C`at94k\*(C'\fR, \f(CW\*(C`m3000\*(C'\fR. .ie n .IP """avr51""" 4 .el .IP "\f(CWavr51\fR" 4 .IX Item "avr51" *************** The default for this option is@tie{}\fBa *** 16200,16211 **** .el .IP "\f(CWavrxmega2\fR" 4 .IX Item "avrxmega2" \&\*(L"\s-1XMEGA\*(R"\s0 devices with more than 8@tie{}KiB and up to 64@tie{}KiB of program memory. ! \&\fImcu\fR\f(CW@tie\fR{}= \f(CW\*(C`atxmega16a4\*(C'\fR, \f(CW\*(C`atxmega16a4u\*(C'\fR, \f(CW\*(C`atxmega16c4\*(C'\fR, \f(CW\*(C`atxmega16d4\*(C'\fR, \f(CW\*(C`atxmega16e5\*(C'\fR, \f(CW\*(C`atxmega32a4\*(C'\fR, \f(CW\*(C`atxmega32a4u\*(C'\fR, \f(CW\*(C`atxmega32c3\*(C'\fR, \f(CW\*(C`atxmega32c4\*(C'\fR, \f(CW\*(C`atxmega32d3\*(C'\fR, \f(CW\*(C`atxmega32d4\*(C'\fR, \f(CW\*(C`atxmega32e5\*(C'\fR, \f(CW\*(C`atxmega8e5\*(C'\fR. .ie n .IP """avrxmega3""" 4 .el .IP "\f(CWavrxmega3\fR" 4 .IX Item "avrxmega3" \&\*(L"\s-1XMEGA\*(R"\s0 devices with up to 64@tie{}KiB of combined program memory and \s-1RAM,\s0 and with program memory visible in the \s-1RAM\s0 address space. ! \&\fImcu\fR\f(CW@tie\fR{}= \f(CW\*(C`attiny1614\*(C'\fR, \f(CW\*(C`attiny1616\*(C'\fR, \f(CW\*(C`attiny1617\*(C'\fR, \f(CW\*(C`attiny212\*(C'\fR, \f(CW\*(C`attiny214\*(C'\fR, \f(CW\*(C`attiny3214\*(C'\fR, \f(CW\*(C`attiny3216\*(C'\fR, \f(CW\*(C`attiny3217\*(C'\fR, \f(CW\*(C`attiny412\*(C'\fR, \f(CW\*(C`attiny414\*(C'\fR, \f(CW\*(C`attiny416\*(C'\fR, \f(CW\*(C`attiny417\*(C'\fR, \f(CW\*(C`attiny814\*(C'\fR, \f(CW\*(C`attiny816\*(C'\fR, \f(CW\*(C`attiny817\*(C'\fR. .ie n .IP """avrxmega4""" 4 .el .IP "\f(CWavrxmega4\fR" 4 .IX Item "avrxmega4" --- 16199,16210 ---- .el .IP "\f(CWavrxmega2\fR" 4 .IX Item "avrxmega2" \&\*(L"\s-1XMEGA\*(R"\s0 devices with more than 8@tie{}KiB and up to 64@tie{}KiB of program memory. ! \&\fImcu\fR\f(CW@tie\fR{}= \f(CW\*(C`atxmega8e5\*(C'\fR, \f(CW\*(C`atxmega16a4\*(C'\fR, \f(CW\*(C`atxmega16a4u\*(C'\fR, \f(CW\*(C`atxmega16c4\*(C'\fR, \f(CW\*(C`atxmega16d4\*(C'\fR, \f(CW\*(C`atxmega16e5\*(C'\fR, \f(CW\*(C`atxmega32a4\*(C'\fR, \f(CW\*(C`atxmega32a4u\*(C'\fR, \f(CW\*(C`atxmega32c3\*(C'\fR, \f(CW\*(C`atxmega32c4\*(C'\fR, \f(CW\*(C`atxmega32d3\*(C'\fR, \f(CW\*(C`atxmega32d4\*(C'\fR, \f(CW\*(C`atxmega32e5\*(C'\fR. .ie n .IP """avrxmega3""" 4 .el .IP "\f(CWavrxmega3\fR" 4 .IX Item "avrxmega3" \&\*(L"\s-1XMEGA\*(R"\s0 devices with up to 64@tie{}KiB of combined program memory and \s-1RAM,\s0 and with program memory visible in the \s-1RAM\s0 address space. ! \&\fImcu\fR\f(CW@tie\fR{}= \f(CW\*(C`attiny202\*(C'\fR, \f(CW\*(C`attiny204\*(C'\fR, \f(CW\*(C`attiny212\*(C'\fR, \f(CW\*(C`attiny214\*(C'\fR, \f(CW\*(C`attiny402\*(C'\fR, \f(CW\*(C`attiny404\*(C'\fR, \f(CW\*(C`attiny406\*(C'\fR, \f(CW\*(C`attiny412\*(C'\fR, \f(CW\*(C`attiny414\*(C'\fR, \f(CW\*(C`attiny416\*(C'\fR, \f(CW\*(C`attiny417\*(C'\fR, \f(CW\*(C`attiny804\*(C'\fR, \f(CW\*(C`attiny806\*(C'\fR, \f(CW\*(C`attiny807\*(C'\fR, \f(CW\*(C`attiny814\*(C'\fR, \f(CW\*(C`attiny816\*(C'\fR, \f(CW\*(C`attiny817\*(C'\fR, \f(CW\*(C`attiny1604\*(C'\fR, \f(CW\*(C`attiny1606\*(C'\fR, \f(CW\*(C`attiny1607\*(C'\fR, \f(CW\*(C`attiny1614\*(C'\fR, \f(CW\*(C`attiny1616\*(C'\fR, \f(CW\*(C`attiny1617\*(C'\fR, \f(CW\*(C`attiny3214\*(C'\fR, \f(CW\*(C`attiny3216\*(C'\fR, \f(CW\*(C`attiny3217\*(C'\fR, \f(CW\*(C`atmega808\*(C'\fR, \f(CW\*(C`atmega809\*(C'\fR, \f(CW\*(C`atmega1608\*(C'\fR, \f(CW\*(C`atmega1609\*(C'\fR, \f(CW\*(C`atmega3208\*(C'\fR, \f(CW\*(C`atmega3209\*(C'\fR, \f(CW\*(C`atmega4808\*(C'\fR, \f(CW\*(C`atmega4809\*(C'\fR. .ie n .IP """avrxmega4""" 4 .el .IP "\f(CWavrxmega4\fR" 4 .IX Item "avrxmega4" *************** The default for this option is@tie{}\fBa *** 16230,16236 **** .el .IP "\f(CWavrtiny\fR" 4 .IX Item "avrtiny" \&\*(L"\s-1TINY\*(R"\s0 Tiny core devices with 512@tie{}B up to 4@tie{}KiB of program memory. ! \&\fImcu\fR\f(CW@tie\fR{}= \f(CW\*(C`attiny10\*(C'\fR, \f(CW\*(C`attiny20\*(C'\fR, \f(CW\*(C`attiny4\*(C'\fR, \f(CW\*(C`attiny40\*(C'\fR, \f(CW\*(C`attiny5\*(C'\fR, \f(CW\*(C`attiny9\*(C'\fR. .ie n .IP """avr1""" 4 .el .IP "\f(CWavr1\fR" 4 .IX Item "avr1" --- 16229,16235 ---- .el .IP "\f(CWavrtiny\fR" 4 .IX Item "avrtiny" \&\*(L"\s-1TINY\*(R"\s0 Tiny core devices with 512@tie{}B up to 4@tie{}KiB of program memory. ! \&\fImcu\fR\f(CW@tie\fR{}= \f(CW\*(C`attiny4\*(C'\fR, \f(CW\*(C`attiny5\*(C'\fR, \f(CW\*(C`attiny9\*(C'\fR, \f(CW\*(C`attiny10\*(C'\fR, \f(CW\*(C`attiny20\*(C'\fR, \f(CW\*(C`attiny40\*(C'\fR. .ie n .IP """avr1""" 4 .el .IP "\f(CWavr1\fR" 4 .IX Item "avr1" *************** Allow to use truncation instead of round *** 16365,16370 **** --- 16364,16375 ---- .IP "\fB\-nodevicelib\fR" 4 .IX Item "-nodevicelib" Don't link against AVR-LibC's device specific library \f(CW\*(C`lib.a\*(C'\fR. + .IP "\fB\-nodevicespecs\fR" 4 + .IX Item "-nodevicespecs" + Don't add \fB\-specs=device\-specs/specs\-\fR to the compiler driver's + command line. The user takes responsibility for supplying the sub-processes + like compiler proper, assembler and linker with appropriate command line + options. .IP "\fB\-Waddr\-space\-convert\fR" 4 .IX Item "-Waddr-space-convert" Warn about conversions between address spaces in the case where the diff -Nrcpad gcc-8.3.0/gcc/doc/gcc.info gcc-8.4.0/gcc/doc/gcc.info *** gcc-8.3.0/gcc/doc/gcc.info Fri Feb 22 14:35:37 2019 --- gcc-8.4.0/gcc/doc/gcc.info Wed Mar 4 08:45:33 2020 *************** Introduction *** 58,64 **** 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 8.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. --- 58,64 ---- 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 8.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. *************** _Developer Options_ *** 872,878 **** -fdisable-tree-PASS_NAME -fdisable-tree-PASS-NAME=RANGE-LIST -fdump-noaddr -fdump-unnumbered -fdump-unnumbered-links - -fdump-class-hierarchy[-N] -fdump-final-insns[=FILE] -fdump-ipa-all -fdump-ipa-cgraph -fdump-ipa-inline -fdump-lang-all --- 872,877 ---- *************** _Machine-Dependent Options_ *** 992,998 **** -mn_flash=SIZE -mno-interrupts -mmain-is-OS_task -mrelax -mrmw -mstrict-X -mtiny-stack -mfract-convert-truncate ! -mshort-calls -nodevicelib -Waddr-space-convert -Wmisspelled-isr _Blackfin Options_ --- 991,997 ---- -mn_flash=SIZE -mno-interrupts -mmain-is-OS_task -mrelax -mrmw -mstrict-X -mtiny-stack -mfract-convert-truncate ! -mshort-calls -nodevicelib -nodevicespecs -Waddr-space-convert -Wmisspelled-isr _Blackfin Options_ *************** experience. *** 6790,6796 **** rendered unable to decode location lists using it. '-ginternal-reset-location-views' ! '-gnointernal-reset-location-views' Attempt to determine location views that can be omitted from location view lists. This requires the compiler to have very accurate insn length estimates, which isn't always the case, and it --- 6789,6795 ---- rendered unable to decode location lists using it. '-ginternal-reset-location-views' ! '-gno-internal-reset-location-views' Attempt to determine location views that can be omitted from location view lists. This requires the compiler to have very accurate insn length estimates, which isn't always the case, and it *************** find out the exact set of optimizations *** 7074,7081 **** '-Os' disables the following optimization flags: -falign-functions -falign-jumps -falign-loops ! -falign-labels -freorder-blocks -freorder-blocks-algorithm=stc ! -freorder-blocks-and-partition -fprefetch-loop-arrays It also enables '-finline-functions', causes the compiler to tune for code size rather than execution speed, and performs further --- 7073,7079 ---- '-Os' disables the following optimization flags: -falign-functions -falign-jumps -falign-loops ! -falign-labels -fprefetch-loop-arrays It also enables '-finline-functions', causes the compiler to tune for code size rather than execution speed, and performs further *************** These options are defined for AArch64 im *** 14075,14085 **** the performance of the code. Permissible values for this option are: 'generic', 'cortex-a35', 'cortex-a53', 'cortex-a55', 'cortex-a57', 'cortex-a72', 'cortex-a73', 'cortex-a75', ! 'exynos-m1', 'falkor', 'qdf24xx', 'saphira', 'xgene1', 'vulcan', ! 'thunderx', 'thunderxt88', 'thunderxt88p1', 'thunderxt81', ! 'thunderxt83', 'thunderx2t99', 'cortex-a57.cortex-a53', ! 'cortex-a72.cortex-a53', 'cortex-a73.cortex-a35', ! 'cortex-a73.cortex-a53', 'cortex-a75.cortex-a55', 'native'. The values 'cortex-a57.cortex-a53', 'cortex-a72.cortex-a53', 'cortex-a73.cortex-a35', 'cortex-a73.cortex-a53', --- 14073,14084 ---- the performance of the code. Permissible values for this option are: 'generic', 'cortex-a35', 'cortex-a53', 'cortex-a55', 'cortex-a57', 'cortex-a72', 'cortex-a73', 'cortex-a75', ! 'cortex-a76', 'ares', 'neoverse-n1' 'exynos-m1', 'falkor', ! 'qdf24xx', 'saphira', 'xgene1', 'vulcan', 'thunderx', ! 'thunderxt88', 'thunderxt88p1', 'thunderxt81', 'thunderxt83', ! 'thunderx2t99', 'cortex-a57.cortex-a53', 'cortex-a72.cortex-a53', ! 'cortex-a73.cortex-a35', 'cortex-a73.cortex-a53', ! 'cortex-a75.cortex-a55', 'native'. The values 'cortex-a57.cortex-a53', 'cortex-a72.cortex-a53', 'cortex-a73.cortex-a35', 'cortex-a73.cortex-a53', *************** These options are defined for AVR implem *** 15822,15846 **** 'avr2' "Classic" devices with up to 8 KiB of program memory. ! MCU = 'attiny22', 'attiny26', 'at90c8534', 'at90s2313', ! 'at90s2323', 'at90s2333', 'at90s2343', 'at90s4414', ! 'at90s4433', 'at90s4434', 'at90s8515', 'at90s8535'. 'avr25' "Classic" devices with up to 8 KiB of program memory and with the 'MOVW' instruction. ! MCU = 'ata5272', 'ata6616c', 'attiny13', 'attiny13a', ! 'attiny2313', 'attiny2313a', 'attiny24', 'attiny24a', ! 'attiny25', 'attiny261', 'attiny261a', 'attiny43u', ! 'attiny4313', 'attiny44', 'attiny44a', 'attiny441', ! 'attiny45', 'attiny461', 'attiny461a', 'attiny48', ! 'attiny828', 'attiny84', 'attiny84a', 'attiny841', 'attiny85', ! 'attiny861', 'attiny861a', 'attiny87', 'attiny88', ! 'at86rf401'. 'avr3' "Classic" devices with 16 KiB up to 64 KiB of program memory. ! MCU = 'at43usb355', 'at76c711'. 'avr31' "Classic" devices with 128 KiB of program memory. --- 15821,15844 ---- 'avr2' "Classic" devices with up to 8 KiB of program memory. ! MCU = 'attiny22', 'attiny26', 'at90s2313', 'at90s2323', ! 'at90s2333', 'at90s2343', 'at90s4414', 'at90s4433', ! 'at90s4434', 'at90c8534', 'at90s8515', 'at90s8535'. 'avr25' "Classic" devices with up to 8 KiB of program memory and with the 'MOVW' instruction. ! MCU = 'attiny13', 'attiny13a', 'attiny24', 'attiny24a', ! 'attiny25', 'attiny261', 'attiny261a', 'attiny2313', ! 'attiny2313a', 'attiny43u', 'attiny44', 'attiny44a', ! 'attiny45', 'attiny48', 'attiny441', 'attiny461', ! 'attiny461a', 'attiny4313', 'attiny84', 'attiny84a', ! 'attiny85', 'attiny87', 'attiny88', 'attiny828', 'attiny841', ! 'attiny861', 'attiny861a', 'ata5272', 'ata6616c', 'at86rf401'. 'avr3' "Classic" devices with 16 KiB up to 64 KiB of program memory. ! MCU = 'at76c711', 'at43usb355'. 'avr31' "Classic" devices with 128 KiB of program memory. *************** These options are defined for AVR implem *** 15849,15896 **** 'avr35' "Classic" devices with 16 KiB up to 64 KiB of program memory and with the 'MOVW' instruction. ! MCU = 'ata5505', 'ata6617c', 'ata664251', 'atmega16u2', ! 'atmega32u2', 'atmega8u2', 'attiny1634', 'attiny167', ! 'at90usb162', 'at90usb82'. 'avr4' "Enhanced" devices with up to 8 KiB of program memory. ! MCU = 'ata6285', 'ata6286', 'ata6289', 'ata6612c', 'atmega48', ! 'atmega48a', 'atmega48p', 'atmega48pa', 'atmega48pb', ! 'atmega8', 'atmega8a', 'atmega8hva', 'atmega8515', ! 'atmega8535', 'atmega88', 'atmega88a', 'atmega88p', ! 'atmega88pa', 'atmega88pb', 'at90pwm1', 'at90pwm2', ! 'at90pwm2b', 'at90pwm3', 'at90pwm3b', 'at90pwm81'. 'avr5' "Enhanced" devices with 16 KiB up to 64 KiB of program memory. ! MCU = 'ata5702m322', 'ata5782', 'ata5790', 'ata5790n', ! 'ata5791', 'ata5795', 'ata5831', 'ata6613c', 'ata6614q', ! 'ata8210', 'ata8510', 'atmega16', 'atmega16a', 'atmega16hva', ! 'atmega16hva2', 'atmega16hvb', 'atmega16hvbrevb', ! 'atmega16m1', 'atmega16u4', 'atmega161', 'atmega162', ! 'atmega163', 'atmega164a', 'atmega164p', 'atmega164pa', ! 'atmega165', 'atmega165a', 'atmega165p', 'atmega165pa', ! 'atmega168', 'atmega168a', 'atmega168p', 'atmega168pa', ! 'atmega168pb', 'atmega169', 'atmega169a', 'atmega169p', ! 'atmega169pa', 'atmega32', 'atmega32a', 'atmega32c1', ! 'atmega32hvb', 'atmega32hvbrevb', 'atmega32m1', 'atmega32u4', ! 'atmega32u6', 'atmega323', 'atmega324a', 'atmega324p', ! 'atmega324pa', 'atmega325', 'atmega325a', 'atmega325p', ! 'atmega325pa', 'atmega3250', 'atmega3250a', 'atmega3250p', ! 'atmega3250pa', 'atmega328', 'atmega328p', 'atmega328pb', ! 'atmega329', 'atmega329a', 'atmega329p', 'atmega329pa', ! 'atmega3290', 'atmega3290a', 'atmega3290p', 'atmega3290pa', ! 'atmega406', 'atmega64', 'atmega64a', 'atmega64c1', ! 'atmega64hve', 'atmega64hve2', 'atmega64m1', 'atmega64rfr2', ! 'atmega640', 'atmega644', 'atmega644a', 'atmega644p', ! 'atmega644pa', 'atmega644rfr2', 'atmega645', 'atmega645a', ! 'atmega645p', 'atmega6450', 'atmega6450a', 'atmega6450p', ! 'atmega649', 'atmega649a', 'atmega649p', 'atmega6490', ! 'atmega6490a', 'atmega6490p', 'at90can32', 'at90can64', ! 'at90pwm161', 'at90pwm216', 'at90pwm316', 'at90scr100', ! 'at90usb646', 'at90usb647', 'at94k', 'm3000'. 'avr51' "Enhanced" devices with 128 KiB of program memory. --- 15847,15894 ---- 'avr35' "Classic" devices with 16 KiB up to 64 KiB of program memory and with the 'MOVW' instruction. ! MCU = 'attiny167', 'attiny1634', 'atmega8u2', 'atmega16u2', ! 'atmega32u2', 'ata5505', 'ata6617c', 'ata664251', 'at90usb82', ! 'at90usb162'. 'avr4' "Enhanced" devices with up to 8 KiB of program memory. ! MCU = 'atmega48', 'atmega48a', 'atmega48p', 'atmega48pa', ! 'atmega48pb', 'atmega8', 'atmega8a', 'atmega8hva', 'atmega88', ! 'atmega88a', 'atmega88p', 'atmega88pa', 'atmega88pb', ! 'atmega8515', 'atmega8535', 'ata6285', 'ata6286', 'ata6289', ! 'ata6612c', 'at90pwm1', 'at90pwm2', 'at90pwm2b', 'at90pwm3', ! 'at90pwm3b', 'at90pwm81'. 'avr5' "Enhanced" devices with 16 KiB up to 64 KiB of program memory. ! MCU = 'atmega16', 'atmega16a', 'atmega16hva', 'atmega16hva2', ! 'atmega16hvb', 'atmega16hvbrevb', 'atmega16m1', 'atmega16u4', ! 'atmega161', 'atmega162', 'atmega163', 'atmega164a', ! 'atmega164p', 'atmega164pa', 'atmega165', 'atmega165a', ! 'atmega165p', 'atmega165pa', 'atmega168', 'atmega168a', ! 'atmega168p', 'atmega168pa', 'atmega168pb', 'atmega169', ! 'atmega169a', 'atmega169p', 'atmega169pa', 'atmega32', ! 'atmega32a', 'atmega32c1', 'atmega32hvb', 'atmega32hvbrevb', ! 'atmega32m1', 'atmega32u4', 'atmega32u6', 'atmega323', ! 'atmega324a', 'atmega324p', 'atmega324pa', 'atmega325', ! 'atmega325a', 'atmega325p', 'atmega325pa', 'atmega328', ! 'atmega328p', 'atmega328pb', 'atmega329', 'atmega329a', ! 'atmega329p', 'atmega329pa', 'atmega3250', 'atmega3250a', ! 'atmega3250p', 'atmega3250pa', 'atmega3290', 'atmega3290a', ! 'atmega3290p', 'atmega3290pa', 'atmega406', 'atmega64', ! 'atmega64a', 'atmega64c1', 'atmega64hve', 'atmega64hve2', ! 'atmega64m1', 'atmega64rfr2', 'atmega640', 'atmega644', ! 'atmega644a', 'atmega644p', 'atmega644pa', 'atmega644rfr2', ! 'atmega645', 'atmega645a', 'atmega645p', 'atmega649', ! 'atmega649a', 'atmega649p', 'atmega6450', 'atmega6450a', ! 'atmega6450p', 'atmega6490', 'atmega6490a', 'atmega6490p', ! 'ata5795', 'ata5790', 'ata5790n', 'ata5791', 'ata6613c', ! 'ata6614q', 'ata5782', 'ata5831', 'ata8210', 'ata8510', ! 'ata5702m322', 'at90pwm161', 'at90pwm216', 'at90pwm316', ! 'at90can32', 'at90can64', 'at90scr100', 'at90usb646', ! 'at90usb647', 'at94k', 'm3000'. 'avr51' "Enhanced" devices with 128 KiB of program memory. *************** These options are defined for AVR implem *** 15908,15926 **** 'avrxmega2' "XMEGA" devices with more than 8 KiB and up to 64 KiB of program memory. ! MCU = 'atxmega16a4', 'atxmega16a4u', 'atxmega16c4', ! 'atxmega16d4', 'atxmega16e5', 'atxmega32a4', 'atxmega32a4u', ! 'atxmega32c3', 'atxmega32c4', 'atxmega32d3', 'atxmega32d4', ! 'atxmega32e5', 'atxmega8e5'. 'avrxmega3' "XMEGA" devices with up to 64 KiB of combined program memory and RAM, and with program memory visible in the RAM address space. ! MCU = 'attiny1614', 'attiny1616', 'attiny1617', 'attiny212', ! 'attiny214', 'attiny3214', 'attiny3216', 'attiny3217', ! 'attiny412', 'attiny414', 'attiny416', 'attiny417', ! 'attiny814', 'attiny816', 'attiny817'. 'avrxmega4' "XMEGA" devices with more than 64 KiB and up to 128 KiB of --- 15906,15929 ---- 'avrxmega2' "XMEGA" devices with more than 8 KiB and up to 64 KiB of program memory. ! MCU = 'atxmega8e5', 'atxmega16a4', 'atxmega16a4u', ! 'atxmega16c4', 'atxmega16d4', 'atxmega16e5', 'atxmega32a4', ! 'atxmega32a4u', 'atxmega32c3', 'atxmega32c4', 'atxmega32d3', ! 'atxmega32d4', 'atxmega32e5'. 'avrxmega3' "XMEGA" devices with up to 64 KiB of combined program memory and RAM, and with program memory visible in the RAM address space. ! MCU = 'attiny202', 'attiny204', 'attiny212', 'attiny214', ! 'attiny402', 'attiny404', 'attiny406', 'attiny412', ! 'attiny414', 'attiny416', 'attiny417', 'attiny804', ! 'attiny806', 'attiny807', 'attiny814', 'attiny816', ! 'attiny817', 'attiny1604', 'attiny1606', 'attiny1607', ! 'attiny1614', 'attiny1616', 'attiny1617', 'attiny3214', ! 'attiny3216', 'attiny3217', 'atmega808', 'atmega809', ! 'atmega1608', 'atmega1609', 'atmega3208', 'atmega3209', ! 'atmega4808', 'atmega4809'. 'avrxmega4' "XMEGA" devices with more than 64 KiB and up to 128 KiB of *************** These options are defined for AVR implem *** 15952,15959 **** 'avrtiny' "TINY" Tiny core devices with 512 B up to 4 KiB of program memory. ! MCU = 'attiny10', 'attiny20', 'attiny4', 'attiny40', ! 'attiny5', 'attiny9'. 'avr1' This ISA is implemented by the minimal AVR core and supported --- 15955,15962 ---- 'avrtiny' "TINY" Tiny core devices with 512 B up to 4 KiB of program memory. ! MCU = 'attiny4', 'attiny5', 'attiny9', 'attiny10', 'attiny20', ! 'attiny40'. 'avr1' This ISA is implemented by the minimal AVR core and supported *************** These options are defined for AVR implem *** 16081,16086 **** --- 16084,16095 ---- '-nodevicelib' Don't link against AVR-LibC's device specific library 'lib.a'. + '-nodevicespecs' + Don't add '-specs=device-specs/specs-' to the compiler + driver's command line. The user takes responsibility for supplying + the sub-processes like compiler proper, assembler and linker with + appropriate command line options. + '-Waddr-space-convert' Warn about conversions between address spaces in the case where the resulting address space is not contained in the incoming address *************** _RL78--'config/rl78/constraints.md'_ *** 37728,37734 **** _RISC-V--'config/riscv/constraints.md'_ 'f' ! A floating-point register (if availiable). 'I' An I-type 12-bit signed immediate. --- 37737,37743 ---- _RISC-V--'config/riscv/constraints.md'_ 'f' ! A floating-point register (if available). 'I' An I-type 12-bit signed immediate. *************** char' reverses the bytes in the whole wo *** 47355,47374 **** --- 47364,47396 ---- vector unsigned long long __builtin_crypto_vsbox (vector unsigned long long); + vector unsigned char vec_sbox_be (vector unsigned char); + vector unsigned long long __builtin_crypto_vcipher (vector unsigned long long, vector unsigned long long); + vector unsigned char vec_cipher_be (vector unsigned char, vector unsigned char); + vector unsigned long long __builtin_crypto_vcipherlast (vector unsigned long long, vector unsigned long long); + vector unsigned char vec_cipherlast_be (vector unsigned char, + vector unsigned char); + vector unsigned long long __builtin_crypto_vncipher (vector unsigned long long, vector unsigned long long); + vector unsigned char vec_ncipher_be (vector unsigned char, + vector unsigned char); + vector unsigned long long __builtin_crypto_vncipherlast (vector unsigned long long, vector unsigned long long); + vector unsigned char vec_ncipherlast_be (vector unsigned char, + vector unsigned char); + vector unsigned char __builtin_crypto_vpermxor (vector unsigned char, vector unsigned char, vector unsigned char); *************** char' reverses the bytes in the whole wo *** 47388,47400 **** vector unsigned char __builtin_crypto_vpmsumb (vector unsigned char, vector unsigned char); ! vector unsigned short __builtin_crypto_vpmsumb (vector unsigned short, vector unsigned short); ! vector unsigned int __builtin_crypto_vpmsumb (vector unsigned int, vector unsigned int); ! vector unsigned long long __builtin_crypto_vpmsumb (vector unsigned long long, vector unsigned long long); vector unsigned long long __builtin_crypto_vshasigmad --- 47410,47422 ---- vector unsigned char __builtin_crypto_vpmsumb (vector unsigned char, vector unsigned char); ! vector unsigned short __builtin_crypto_vpmsumh (vector unsigned short, vector unsigned short); ! vector unsigned int __builtin_crypto_vpmsumw (vector unsigned int, vector unsigned int); ! vector unsigned long long __builtin_crypto_vpmsumd (vector unsigned long long, vector unsigned long long); vector unsigned long long __builtin_crypto_vshasigmad *************** File: gcc.info, Node: Contributing, Ne *** 54945,54952 **** ********************************** If you would like to help pretest GCC releases to assure they work well, ! current development sources are available by SVN (see ! ). Source and binary snapshots are also available for FTP; see . If you would like to work on improvements to GCC, please read the --- 54967,54974 ---- ********************************** If you would like to help pretest GCC releases to assure they work well, ! current development sources are available via Git (see ! ). Source and binary snapshots are also available for FTP; see . If you would like to work on improvements to GCC, please read the *************** look up both forms. *** 57549,57556 **** * Menu: * ###: Overall Options. (line 204) ! * -fipa-bit-cp: Optimize Options. (line 1026) ! * -fipa-vrp: Optimize Options. (line 1031) * -mfunction-return: x86 Options. (line 1305) * -mindirect-branch: x86 Options. (line 1286) * -mindirect-branch-register: x86 Options. (line 1320) --- 57571,57578 ---- * Menu: * ###: Overall Options. (line 204) ! * -fipa-bit-cp: Optimize Options. (line 1025) ! * -fipa-vrp: Optimize Options. (line 1030) * -mfunction-return: x86 Options. (line 1305) * -mindirect-branch: x86 Options. (line 1286) * -mindirect-branch-register: x86 Options. (line 1320) *************** look up both forms. *** 57635,57664 **** * fabi-version: C++ Dialect Options. (line 24) * fada-spec-parent: Overall Options. (line 384) ! * faggressive-loop-optimizations: Optimize Options. (line 524) ! * falign-functions: Optimize Options. (line 1537) ! * falign-jumps: Optimize Options. (line 1595) ! * falign-labels: Optimize Options. (line 1562) ! * falign-loops: Optimize Options. (line 1581) * faligned-new: C++ Dialect Options. (line 105) * fallow-parameterless-variadic-functions: C Dialect Options. (line 233) * fasan-shadow-offset: Instrumentation Options. (line 380) ! * fassociative-math: Optimize Options. (line 2077) * fasynchronous-unwind-tables: Code Gen Options. (line 156) ! * fauto-inc-dec: Optimize Options. (line 546) ! * fauto-profile: Optimize Options. (line 1956) * fbounds-check: Instrumentation Options. (line 453) ! * fbranch-probabilities: Optimize Options. (line 2222) ! * fbranch-target-load-optimize: Optimize Options. (line 2358) ! * fbranch-target-load-optimize2: Optimize Options. (line 2364) ! * fbtr-bb-exclusive: Optimize Options. (line 2368) * fcall-saved: Code Gen Options. (line 454) * fcall-used: Code Gen Options. (line 440) ! * fcaller-saves: Optimize Options. (line 904) * fcf-protection: Instrumentation Options. (line 581) * fcheck-new: C++ Dialect Options. --- 57657,57686 ---- * fabi-version: C++ Dialect Options. (line 24) * fada-spec-parent: Overall Options. (line 384) ! * faggressive-loop-optimizations: Optimize Options. (line 523) ! * falign-functions: Optimize Options. (line 1536) ! * falign-jumps: Optimize Options. (line 1594) ! * falign-labels: Optimize Options. (line 1561) ! * falign-loops: Optimize Options. (line 1580) * faligned-new: C++ Dialect Options. (line 105) * fallow-parameterless-variadic-functions: C Dialect Options. (line 233) * fasan-shadow-offset: Instrumentation Options. (line 380) ! * fassociative-math: Optimize Options. (line 2076) * fasynchronous-unwind-tables: Code Gen Options. (line 156) ! * fauto-inc-dec: Optimize Options. (line 545) ! * fauto-profile: Optimize Options. (line 1955) * fbounds-check: Instrumentation Options. (line 453) ! * fbranch-probabilities: Optimize Options. (line 2221) ! * fbranch-target-load-optimize: Optimize Options. (line 2357) ! * fbranch-target-load-optimize2: Optimize Options. (line 2363) ! * fbtr-bb-exclusive: Optimize Options. (line 2367) * fcall-saved: Code Gen Options. (line 454) * fcall-used: Code Gen Options. (line 440) ! * fcaller-saves: Optimize Options. (line 903) * fcf-protection: Instrumentation Options. (line 581) * fcheck-new: C++ Dialect Options. *************** look up both forms. *** 57700,57745 **** (line 541) * fchkp-use-wrappers: Instrumentation Options. (line 574) ! * fcode-hoisting: Optimize Options. (line 945) ! * fcombine-stack-adjustments: Optimize Options. (line 916) * fcommon: Common Variable Attributes. (line 118) * fcompare-debug: Developer Options. (line 727) * fcompare-debug-second: Developer Options. (line 753) ! * fcompare-elim: Optimize Options. (line 1909) * fconcepts: C++ Dialect Options. (line 124) * fcond-mismatch: C Dialect Options. (line 384) ! * fconserve-stack: Optimize Options. (line 935) * fconstant-string-class: Objective-C and Objective-C++ Dialect Options. (line 30) * fconstexpr-depth: C++ Dialect Options. (line 131) * fconstexpr-loop-limit: C++ Dialect Options. (line 137) ! * fcprop-registers: Optimize Options. (line 1921) ! * fcrossjumping: Optimize Options. (line 539) ! * fcse-follow-jumps: Optimize Options. (line 460) ! * fcse-skip-blocks: Optimize Options. (line 469) ! * fcx-fortran-rules: Optimize Options. (line 2209) ! * fcx-limited-range: Optimize Options. (line 2197) ! * fdata-sections: Optimize Options. (line 2329) * fdbg-cnt: Developer Options. (line 863) * fdbg-cnt-list: Developer Options. (line 860) ! * fdce: Optimize Options. (line 552) * fdebug-cpp: Preprocessor Options. (line 448) * fdebug-prefix-map: Debugging Options. (line 137) * fdebug-types-section: Debugging Options. (line 183) ! * fdeclone-ctor-dtor: Optimize Options. (line 575) * fdeduce-init-list: C++ Dialect Options. (line 142) ! * fdelayed-branch: Optimize Options. (line 728) * fdelete-dead-exceptions: Code Gen Options. (line 141) ! * fdelete-null-pointer-checks: Optimize Options. (line 586) ! * fdevirtualize: Optimize Options. (line 607) ! * fdevirtualize-at-ltrans: Optimize Options. (line 624) ! * fdevirtualize-speculatively: Optimize Options. (line 614) * fdiagnostics-color: Diagnostic Message Formatting Options. (line 35) * fdiagnostics-generate-patch: Diagnostic Message Formatting Options. --- 57722,57767 ---- (line 541) * fchkp-use-wrappers: Instrumentation Options. (line 574) ! * fcode-hoisting: Optimize Options. (line 944) ! * fcombine-stack-adjustments: Optimize Options. (line 915) * fcommon: Common Variable Attributes. (line 118) * fcompare-debug: Developer Options. (line 727) * fcompare-debug-second: Developer Options. (line 753) ! * fcompare-elim: Optimize Options. (line 1908) * fconcepts: C++ Dialect Options. (line 124) * fcond-mismatch: C Dialect Options. (line 384) ! * fconserve-stack: Optimize Options. (line 934) * fconstant-string-class: Objective-C and Objective-C++ Dialect Options. (line 30) * fconstexpr-depth: C++ Dialect Options. (line 131) * fconstexpr-loop-limit: C++ Dialect Options. (line 137) ! * fcprop-registers: Optimize Options. (line 1920) ! * fcrossjumping: Optimize Options. (line 538) ! * fcse-follow-jumps: Optimize Options. (line 459) ! * fcse-skip-blocks: Optimize Options. (line 468) ! * fcx-fortran-rules: Optimize Options. (line 2208) ! * fcx-limited-range: Optimize Options. (line 2196) ! * fdata-sections: Optimize Options. (line 2328) * fdbg-cnt: Developer Options. (line 863) * fdbg-cnt-list: Developer Options. (line 860) ! * fdce: Optimize Options. (line 551) * fdebug-cpp: Preprocessor Options. (line 448) * fdebug-prefix-map: Debugging Options. (line 137) * fdebug-types-section: Debugging Options. (line 183) ! * fdeclone-ctor-dtor: Optimize Options. (line 574) * fdeduce-init-list: C++ Dialect Options. (line 142) ! * fdelayed-branch: Optimize Options. (line 727) * fdelete-dead-exceptions: Code Gen Options. (line 141) ! * fdelete-null-pointer-checks: Optimize Options. (line 585) ! * fdevirtualize: Optimize Options. (line 606) ! * fdevirtualize-at-ltrans: Optimize Options. (line 623) ! * fdevirtualize-speculatively: Optimize Options. (line 613) * fdiagnostics-color: Diagnostic Message Formatting Options. (line 35) * fdiagnostics-generate-patch: Diagnostic Message Formatting Options. *************** look up both forms. *** 57761,57767 **** (line 223) * fdollars-in-identifiers <1>: Interoperation. (line 141) * fdpic: SH Options. (line 388) ! * fdse: Optimize Options. (line 556) * fdump-ada-spec: Overall Options. (line 379) * fdump-final-insns: Developer Options. (line 721) * fdump-go-spec: Overall Options. (line 388) --- 57783,57789 ---- (line 223) * fdollars-in-identifiers <1>: Interoperation. (line 141) * fdpic: SH Options. (line 388) ! * fdse: Optimize Options. (line 555) * fdump-ada-spec: Overall Options. (line 379) * fdump-final-insns: Developer Options. (line 721) * fdump-go-spec: Overall Options. (line 388) *************** look up both forms. *** 57844,57850 **** * fdump-unnumbered: Developer Options. (line 262) * fdump-unnumbered-links: Developer Options. (line 268) * fdwarf2-cfi-asm: Debugging Options. (line 388) ! * fearly-inlining: Optimize Options. (line 305) * felide-type: Diagnostic Message Formatting Options. (line 198) * feliminate-unused-debug-symbols: Debugging Options. (line 118) --- 57866,57872 ---- * fdump-unnumbered: Developer Options. (line 262) * fdump-unnumbered-links: Developer Options. (line 268) * fdwarf2-cfi-asm: Debugging Options. (line 388) ! * fearly-inlining: Optimize Options. (line 304) * felide-type: Diagnostic Message Formatting Options. (line 198) * feliminate-unused-debug-symbols: Debugging Options. (line 118) *************** look up both forms. *** 57855,57882 **** * femit-struct-debug-reduced: Debugging Options. (line 332) * fenable-: Developer Options. (line 564) * fexceptions: Code Gen Options. (line 119) ! * fexcess-precision: Optimize Options. (line 2003) * fexec-charset: Preprocessor Options. (line 266) ! * fexpensive-optimizations: Optimize Options. (line 631) * fext-numeric-literals: C++ Dialect Options. (line 695) * fextended-identifiers: Preprocessor Options. (line 226) * fextern-tls-init: C++ Dialect Options. (line 195) ! * ffast-math: Optimize Options. (line 2027) ! * ffat-lto-objects: Optimize Options. (line 1886) * ffile-prefix-map: Overall Options. (line 359) ! * ffinite-math-only: Optimize Options. (line 2104) * ffix-and-continue: Darwin Options. (line 104) * ffixed: Code Gen Options. (line 428) ! * ffloat-store: Optimize Options. (line 1989) * ffloat-store <1>: Disappointments. (line 77) * ffor-scope: C++ Dialect Options. (line 216) ! * fforward-propagate: Optimize Options. (line 213) ! * ffp-contract: Optimize Options. (line 222) * ffreestanding: Standards. (line 94) * ffreestanding <1>: C Dialect Options. (line 302) * ffreestanding <2>: Warning Options. (line 294) --- 57877,57904 ---- * femit-struct-debug-reduced: Debugging Options. (line 332) * fenable-: Developer Options. (line 564) * fexceptions: Code Gen Options. (line 119) ! * fexcess-precision: Optimize Options. (line 2002) * fexec-charset: Preprocessor Options. (line 266) ! * fexpensive-optimizations: Optimize Options. (line 630) * fext-numeric-literals: C++ Dialect Options. (line 695) * fextended-identifiers: Preprocessor Options. (line 226) * fextern-tls-init: C++ Dialect Options. (line 195) ! * ffast-math: Optimize Options. (line 2026) ! * ffat-lto-objects: Optimize Options. (line 1885) * ffile-prefix-map: Overall Options. (line 359) ! * ffinite-math-only: Optimize Options. (line 2103) * ffix-and-continue: Darwin Options. (line 104) * ffixed: Code Gen Options. (line 428) ! * ffloat-store: Optimize Options. (line 1988) * ffloat-store <1>: Disappointments. (line 77) * ffor-scope: C++ Dialect Options. (line 216) ! * fforward-propagate: Optimize Options. (line 212) ! * ffp-contract: Optimize Options. (line 221) * ffreestanding: Standards. (line 94) * ffreestanding <1>: C Dialect Options. (line 302) * ffreestanding <2>: Warning Options. (line 294) *************** look up both forms. *** 57884,57913 **** (line 283) * ffriend-injection: C++ Dialect Options. (line 163) ! * ffunction-sections: Optimize Options. (line 2329) ! * fgcse: Optimize Options. (line 483) ! * fgcse-after-reload: Optimize Options. (line 519) ! * fgcse-las: Optimize Options. (line 512) ! * fgcse-lm: Optimize Options. (line 494) ! * fgcse-sm: Optimize Options. (line 503) * fgimple: C Dialect Options. (line 288) * fgnu-runtime: Objective-C and Objective-C++ Dialect Options. (line 39) * fgnu-tm: C Dialect Options. (line 341) * fgnu89-inline: C Dialect Options. (line 178) ! * fgraphite-identity: Optimize Options. (line 1147) ! * fhoist-adjacent-loads: Optimize Options. (line 975) * fhosted: C Dialect Options. (line 294) ! * fif-conversion: Optimize Options. (line 560) ! * fif-conversion2: Optimize Options. (line 569) * filelist: Darwin Options. (line 196) * findirect-data: Darwin Options. (line 104) ! * findirect-inlining: Optimize Options. (line 277) * finhibit-size-directive: Code Gen Options. (line 261) ! * finline-functions: Optimize Options. (line 286) ! * finline-functions-called-once: Optimize Options. (line 297) ! * finline-limit: Optimize Options. (line 321) ! * finline-small-functions: Optimize Options. (line 268) * finput-charset: Preprocessor Options. (line 279) * finstrument-functions: Instrumentation Options. --- 57906,57935 ---- (line 283) * ffriend-injection: C++ Dialect Options. (line 163) ! * ffunction-sections: Optimize Options. (line 2328) ! * fgcse: Optimize Options. (line 482) ! * fgcse-after-reload: Optimize Options. (line 518) ! * fgcse-las: Optimize Options. (line 511) ! * fgcse-lm: Optimize Options. (line 493) ! * fgcse-sm: Optimize Options. (line 502) * fgimple: C Dialect Options. (line 288) * fgnu-runtime: Objective-C and Objective-C++ Dialect Options. (line 39) * fgnu-tm: C Dialect Options. (line 341) * fgnu89-inline: C Dialect Options. (line 178) ! * fgraphite-identity: Optimize Options. (line 1146) ! * fhoist-adjacent-loads: Optimize Options. (line 974) * fhosted: C Dialect Options. (line 294) ! * fif-conversion: Optimize Options. (line 559) ! * fif-conversion2: Optimize Options. (line 568) * filelist: Darwin Options. (line 196) * findirect-data: Darwin Options. (line 104) ! * findirect-inlining: Optimize Options. (line 276) * finhibit-size-directive: Code Gen Options. (line 261) ! * finline-functions: Optimize Options. (line 285) ! * finline-functions-called-once: Optimize Options. (line 296) ! * finline-limit: Optimize Options. (line 320) ! * finline-small-functions: Optimize Options. (line 267) * finput-charset: Preprocessor Options. (line 279) * finstrument-functions: Instrumentation Options. *************** look up both forms. *** 57918,57963 **** (line 809) * finstrument-functions-exclude-function-list: Instrumentation Options. (line 830) ! * fipa-cp: Optimize Options. (line 1008) ! * fipa-cp-clone: Optimize Options. (line 1016) ! * fipa-icf: Optimize Options. (line 1036) ! * fipa-profile: Optimize Options. (line 1000) ! * fipa-pta: Optimize Options. (line 994) ! * fipa-pure-const: Optimize Options. (line 986) ! * fipa-ra: Optimize Options. (line 922) ! * fipa-reference: Optimize Options. (line 990) ! * fipa-sra: Optimize Options. (line 314) ! * fira-algorithm: Optimize Options. (line 665) ! * fira-hoist-pressure: Optimize Options. (line 694) ! * fira-loop-pressure: Optimize Options. (line 701) ! * fira-region: Optimize Options. (line 673) * fira-verbose: Developer Options. (line 790) ! * fisolate-erroneous-paths-attribute: Optimize Options. (line 1058) ! * fisolate-erroneous-paths-dereference: Optimize Options. (line 1050) * fivar-visibility: Objective-C and Objective-C++ Dialect Options. (line 161) ! * fivopts: Optimize Options. (line 1258) ! * fkeep-inline-functions: Optimize Options. (line 352) * fkeep-inline-functions <1>: Inline. (line 51) ! * fkeep-static-consts: Optimize Options. (line 363) ! * fkeep-static-functions: Optimize Options. (line 359) * flat_namespace: Darwin Options. (line 196) * flax-vector-conversions: C Dialect Options. (line 389) * fleading-underscore: Code Gen Options. (line 484) ! * flive-range-shrinkage: Optimize Options. (line 660) * flocal-ivars: Objective-C and Objective-C++ Dialect Options. (line 152) ! * floop-block: Optimize Options. (line 1141) ! * floop-interchange: Optimize Options. (line 1221) ! * floop-nest-optimize: Optimize Options. (line 1155) ! * floop-parallelize-all: Optimize Options. (line 1161) ! * floop-strip-mine: Optimize Options. (line 1141) ! * floop-unroll-and-jam: Optimize Options. (line 1237) ! * flra-remat: Optimize Options. (line 721) ! * flto: Optimize Options. (line 1650) ! * flto-compression-level: Optimize Options. (line 1860) ! * flto-odr-type-merging: Optimize Options. (line 1855) ! * flto-partition: Optimize Options. (line 1841) * flto-report: Developer Options. (line 796) * flto-report-wpa: Developer Options. (line 804) * fmacro-prefix-map: Preprocessor Options. --- 57940,57985 ---- (line 809) * finstrument-functions-exclude-function-list: Instrumentation Options. (line 830) ! * fipa-cp: Optimize Options. (line 1007) ! * fipa-cp-clone: Optimize Options. (line 1015) ! * fipa-icf: Optimize Options. (line 1035) ! * fipa-profile: Optimize Options. (line 999) ! * fipa-pta: Optimize Options. (line 993) ! * fipa-pure-const: Optimize Options. (line 985) ! * fipa-ra: Optimize Options. (line 921) ! * fipa-reference: Optimize Options. (line 989) ! * fipa-sra: Optimize Options. (line 313) ! * fira-algorithm: Optimize Options. (line 664) ! * fira-hoist-pressure: Optimize Options. (line 693) ! * fira-loop-pressure: Optimize Options. (line 700) ! * fira-region: Optimize Options. (line 672) * fira-verbose: Developer Options. (line 790) ! * fisolate-erroneous-paths-attribute: Optimize Options. (line 1057) ! * fisolate-erroneous-paths-dereference: Optimize Options. (line 1049) * fivar-visibility: Objective-C and Objective-C++ Dialect Options. (line 161) ! * fivopts: Optimize Options. (line 1257) ! * fkeep-inline-functions: Optimize Options. (line 351) * fkeep-inline-functions <1>: Inline. (line 51) ! * fkeep-static-consts: Optimize Options. (line 362) ! * fkeep-static-functions: Optimize Options. (line 358) * flat_namespace: Darwin Options. (line 196) * flax-vector-conversions: C Dialect Options. (line 389) * fleading-underscore: Code Gen Options. (line 484) ! * flive-range-shrinkage: Optimize Options. (line 659) * flocal-ivars: Objective-C and Objective-C++ Dialect Options. (line 152) ! * floop-block: Optimize Options. (line 1140) ! * floop-interchange: Optimize Options. (line 1220) ! * floop-nest-optimize: Optimize Options. (line 1154) ! * floop-parallelize-all: Optimize Options. (line 1160) ! * floop-strip-mine: Optimize Options. (line 1140) ! * floop-unroll-and-jam: Optimize Options. (line 1236) ! * flra-remat: Optimize Options. (line 720) ! * flto: Optimize Options. (line 1649) ! * flto-compression-level: Optimize Options. (line 1859) ! * flto-odr-type-merging: Optimize Options. (line 1854) ! * flto-partition: Optimize Options. (line 1840) * flto-report: Developer Options. (line 796) * flto-report-wpa: Developer Options. (line 804) * fmacro-prefix-map: Preprocessor Options. *************** look up both forms. *** 57965,57978 **** * fmax-errors: Warning Options. (line 18) * fmem-report: Developer Options. (line 808) * fmem-report-wpa: Developer Options. (line 812) ! * fmerge-all-constants: Optimize Options. (line 382) ! * fmerge-constants: Optimize Options. (line 372) * fmerge-debug-strings: Debugging Options. (line 130) * fmessage-length: Diagnostic Message Formatting Options. (line 14) ! * fmodulo-sched: Optimize Options. (line 393) ! * fmodulo-sched-allow-regmoves: Optimize Options. (line 398) ! * fmove-loop-invariants: Optimize Options. (line 2315) * fms-extensions: C Dialect Options. (line 356) * fms-extensions <1>: C++ Dialect Options. (line 250) --- 57987,58000 ---- * fmax-errors: Warning Options. (line 18) * fmem-report: Developer Options. (line 808) * fmem-report-wpa: Developer Options. (line 812) ! * fmerge-all-constants: Optimize Options. (line 381) ! * fmerge-constants: Optimize Options. (line 371) * fmerge-debug-strings: Debugging Options. (line 130) * fmessage-length: Diagnostic Message Formatting Options. (line 14) ! * fmodulo-sched: Optimize Options. (line 392) ! * fmodulo-sched-allow-regmoves: Optimize Options. (line 397) ! * fmove-loop-invariants: Optimize Options. (line 2314) * fms-extensions: C Dialect Options. (line 356) * fms-extensions <1>: C++ Dialect Options. (line 250) *************** look up both forms. *** 57986,57992 **** * fno-access-control: C++ Dialect Options. (line 101) * fno-asm: C Dialect Options. (line 240) ! * fno-branch-count-reg: Optimize Options. (line 405) * fno-builtin: C Dialect Options. (line 254) * fno-builtin <1>: Warning Options. (line 294) * fno-builtin <2>: Common Function Attributes. --- 58008,58014 ---- * fno-access-control: C++ Dialect Options. (line 101) * fno-asm: C Dialect Options. (line 240) ! * fno-branch-count-reg: Optimize Options. (line 404) * fno-builtin: C Dialect Options. (line 254) * fno-builtin <1>: Warning Options. (line 294) * fno-builtin <2>: Common Function Attributes. *************** look up both forms. *** 58037,58043 **** * fno-compare-debug: Developer Options. (line 727) * fno-debug-types-section: Debugging Options. (line 183) * fno-default-inline: Inline. (line 68) ! * fno-defer-pop: Optimize Options. (line 205) * fno-diagnostics-show-caret: Diagnostic Message Formatting Options. (line 124) * fno-diagnostics-show-option: Diagnostic Message Formatting Options. --- 58059,58065 ---- * fno-compare-debug: Developer Options. (line 727) * fno-debug-types-section: Debugging Options. (line 183) * fno-default-inline: Inline. (line 68) ! * fno-defer-pop: Optimize Options. (line 204) * fno-diagnostics-show-caret: Diagnostic Message Formatting Options. (line 124) * fno-diagnostics-show-option: Diagnostic Message Formatting Options. *************** look up both forms. *** 58056,58067 **** (line 195) * fno-for-scope: C++ Dialect Options. (line 216) ! * fno-fp-int-builtin-inexact: Optimize Options. (line 2176) ! * fno-function-cse: Optimize Options. (line 420) * fno-gnu-keywords: C++ Dialect Options. (line 227) * fno-gnu-unique: Code Gen Options. (line 162) ! * fno-guess-branch-probability: Optimize Options. (line 1426) * fno-ident: Code Gen Options. (line 258) * fno-implement-inlines: C++ Dialect Options. (line 245) --- 58078,58089 ---- (line 195) * fno-for-scope: C++ Dialect Options. (line 216) ! * fno-fp-int-builtin-inexact: Optimize Options. (line 2175) ! * fno-function-cse: Optimize Options. (line 419) * fno-gnu-keywords: C++ Dialect Options. (line 227) * fno-gnu-unique: Code Gen Options. (line 162) ! * fno-guess-branch-probability: Optimize Options. (line 1425) * fno-ident: Code Gen Options. (line 258) * fno-implement-inlines: C++ Dialect Options. (line 245) *************** look up both forms. *** 58072,58086 **** (line 233) * fno-implicit-templates <1>: Template Instantiation. (line 118) ! * fno-inline: Optimize Options. (line 260) ! * fno-ira-share-save-slots: Optimize Options. (line 709) ! * fno-ira-share-spill-slots: Optimize Options. (line 715) * fno-jump-tables: Code Gen Options. (line 420) ! * fno-keep-inline-dllexport: Optimize Options. (line 346) ! * fno-lifetime-dse: Optimize Options. (line 645) * fno-local-ivars: Objective-C and Objective-C++ Dialect Options. (line 152) ! * fno-math-errno: Optimize Options. (line 2041) * fno-merge-debug-strings: Debugging Options. (line 130) * fno-nil-receivers: Objective-C and Objective-C++ Dialect Options. (line 49) --- 58094,58108 ---- (line 233) * fno-implicit-templates <1>: Template Instantiation. (line 118) ! * fno-inline: Optimize Options. (line 259) ! * fno-ira-share-save-slots: Optimize Options. (line 708) ! * fno-ira-share-spill-slots: Optimize Options. (line 714) * fno-jump-tables: Code Gen Options. (line 420) ! * fno-keep-inline-dllexport: Optimize Options. (line 345) ! * fno-lifetime-dse: Optimize Options. (line 644) * fno-local-ivars: Objective-C and Objective-C++ Dialect Options. (line 152) ! * fno-math-errno: Optimize Options. (line 2040) * fno-merge-debug-strings: Debugging Options. (line 130) * fno-nil-receivers: Objective-C and Objective-C++ Dialect Options. (line 49) *************** look up both forms. *** 58090,58121 **** (line 284) * fno-optional-diags: C++ Dialect Options. (line 288) ! * fno-peephole: Optimize Options. (line 1417) ! * fno-peephole2: Optimize Options. (line 1417) * fno-plt: Code Gen Options. (line 402) * fno-pretty-templates: C++ Dialect Options. (line 298) ! * fno-printf-return-value: Optimize Options. (line 1394) * fno-rtti: C++ Dialect Options. (line 315) * fno-sanitize-recover: Instrumentation Options. (line 389) * fno-sanitize=all: Instrumentation Options. (line 374) ! * fno-sched-interblock: Optimize Options. (line 754) ! * fno-sched-spec: Optimize Options. (line 759) * fno-set-stack-executable: x86 Windows Options. (line 46) * fno-show-column: Diagnostic Message Formatting Options. (line 210) * fno-signed-bitfields: C Dialect Options. (line 422) ! * fno-signed-zeros: Optimize Options. (line 2116) * fno-stack-limit: Instrumentation Options. (line 686) * fno-threadsafe-statics: C++ Dialect Options. (line 365) ! * fno-toplevel-reorder: Optimize Options. (line 1616) ! * fno-trapping-math: Optimize Options. (line 2126) * fno-unsigned-bitfields: C Dialect Options. (line 422) * fno-use-cxa-get-exception-ptr: C++ Dialect Options. (line 378) --- 58112,58143 ---- (line 284) * fno-optional-diags: C++ Dialect Options. (line 288) ! * fno-peephole: Optimize Options. (line 1416) ! * fno-peephole2: Optimize Options. (line 1416) * fno-plt: Code Gen Options. (line 402) * fno-pretty-templates: C++ Dialect Options. (line 298) ! * fno-printf-return-value: Optimize Options. (line 1393) * fno-rtti: C++ Dialect Options. (line 315) * fno-sanitize-recover: Instrumentation Options. (line 389) * fno-sanitize=all: Instrumentation Options. (line 374) ! * fno-sched-interblock: Optimize Options. (line 753) ! * fno-sched-spec: Optimize Options. (line 758) * fno-set-stack-executable: x86 Windows Options. (line 46) * fno-show-column: Diagnostic Message Formatting Options. (line 210) * fno-signed-bitfields: C Dialect Options. (line 422) ! * fno-signed-zeros: Optimize Options. (line 2115) * fno-stack-limit: Instrumentation Options. (line 686) * fno-threadsafe-statics: C++ Dialect Options. (line 365) ! * fno-toplevel-reorder: Optimize Options. (line 1615) ! * fno-trapping-math: Optimize Options. (line 2125) * fno-unsigned-bitfields: C Dialect Options. (line 422) * fno-use-cxa-get-exception-ptr: C++ Dialect Options. (line 378) *************** look up both forms. *** 58127,58133 **** (line 314) * fno-writable-relocated-rdata: x86 Windows Options. (line 53) ! * fno-zero-initialized-in-bss: Optimize Options. (line 431) * fnon-call-exceptions: Code Gen Options. (line 133) * fnothrow-opt: C++ Dialect Options. (line 273) --- 58149,58155 ---- (line 314) * fno-writable-relocated-rdata: x86 Windows Options. (line 53) ! * fno-zero-initialized-in-bss: Optimize Options. (line 430) * fnon-call-exceptions: Code Gen Options. (line 133) * fnothrow-opt: C++ Dialect Options. (line 273) *************** look up both forms. *** 58145,58162 **** (line 110) * fobjc-std: Objective-C and Objective-C++ Dialect Options. (line 119) ! * fomit-frame-pointer: Optimize Options. (line 233) * fopenacc: C Dialect Options. (line 313) * fopenacc-dim: C Dialect Options. (line 322) * fopenmp: C Dialect Options. (line 328) * fopenmp-simd: C Dialect Options. (line 337) * fopt-info: Developer Options. (line 453) ! * foptimize-sibling-calls: Optimize Options. (line 248) ! * foptimize-strlen: Optimize Options. (line 253) * force_cpusubtype_ALL: Darwin Options. (line 135) * force_flat_namespace: Darwin Options. (line 196) * fpack-struct: Code Gen Options. (line 471) ! * fpartial-inlining: Optimize Options. (line 1370) * fpatchable-function-entry: Instrumentation Options. (line 842) * fpcc-struct-return: Code Gen Options. (line 175) --- 58167,58184 ---- (line 110) * fobjc-std: Objective-C and Objective-C++ Dialect Options. (line 119) ! * fomit-frame-pointer: Optimize Options. (line 232) * fopenacc: C Dialect Options. (line 313) * fopenacc-dim: C Dialect Options. (line 322) * fopenmp: C Dialect Options. (line 328) * fopenmp-simd: C Dialect Options. (line 337) * fopt-info: Developer Options. (line 453) ! * foptimize-sibling-calls: Optimize Options. (line 247) ! * foptimize-strlen: Optimize Options. (line 252) * force_cpusubtype_ALL: Darwin Options. (line 135) * force_flat_namespace: Darwin Options. (line 196) * fpack-struct: Code Gen Options. (line 471) ! * fpartial-inlining: Optimize Options. (line 1369) * fpatchable-function-entry: Instrumentation Options. (line 842) * fpcc-struct-return: Code Gen Options. (line 175) *************** look up both forms. *** 58165,58171 **** (line 289) * fpch-preprocess: Preprocessor Options. (line 297) ! * fpeel-loops: Optimize Options. (line 2307) * fpermissive: C++ Dialect Options. (line 293) * fpermitted-flt-eval-methods: C Dialect Options. (line 195) --- 58187,58193 ---- (line 289) * fpch-preprocess: Preprocessor Options. (line 297) ! * fpeel-loops: Optimize Options. (line 2306) * fpermissive: C++ Dialect Options. (line 293) * fpermitted-flt-eval-methods: C Dialect Options. (line 195) *************** look up both forms. *** 58181,58188 **** * fplugin-arg: Overall Options. (line 375) * fpost-ipa-mem-report: Developer Options. (line 817) * fpre-ipa-mem-report: Developer Options. (line 816) ! * fpredictive-commoning: Optimize Options. (line 1377) ! * fprefetch-loop-arrays: Optimize Options. (line 1384) * fpreprocessed: Preprocessor Options. (line 189) * fprofile-abs-path: Instrumentation Options. --- 58203,58210 ---- * fplugin-arg: Overall Options. (line 375) * fpost-ipa-mem-report: Developer Options. (line 817) * fpre-ipa-mem-report: Developer Options. (line 816) ! * fpredictive-commoning: Optimize Options. (line 1376) ! * fprefetch-loop-arrays: Optimize Options. (line 1383) * fpreprocessed: Preprocessor Options. (line 189) * fprofile-abs-path: Instrumentation Options. *************** look up both forms. *** 58190,58217 **** * fprofile-arcs: Instrumentation Options. (line 31) * fprofile-arcs <1>: Other Builtins. (line 425) ! * fprofile-correction: Optimize Options. (line 1928) * fprofile-dir: Instrumentation Options. (line 113) * fprofile-generate: Instrumentation Options. (line 124) ! * fprofile-reorder-functions: Optimize Options. (line 2249) * fprofile-report: Developer Options. (line 821) * fprofile-update: Instrumentation Options. (line 141) ! * fprofile-use: Optimize Options. (line 1936) ! * fprofile-values: Optimize Options. (line 2240) * fpu: RX Options. (line 17) * frandom-seed: Developer Options. (line 638) ! * freciprocal-math: Optimize Options. (line 2094) * frecord-gcc-switches: Code Gen Options. (line 347) ! * free: Optimize Options. (line 637) * freg-struct-return: Code Gen Options. (line 193) ! * frename-registers: Optimize Options. (line 2266) ! * freorder-blocks: Optimize Options. (line 1443) ! * freorder-blocks-algorithm: Optimize Options. (line 1449) ! * freorder-blocks-and-partition: Optimize Options. (line 1460) ! * freorder-functions: Optimize Options. (line 1477) * freplace-objc-classes: Objective-C and Objective-C++ Dialect Options. (line 130) * frepo: C++ Dialect Options. --- 58212,58239 ---- * fprofile-arcs: Instrumentation Options. (line 31) * fprofile-arcs <1>: Other Builtins. (line 425) ! * fprofile-correction: Optimize Options. (line 1927) * fprofile-dir: Instrumentation Options. (line 113) * fprofile-generate: Instrumentation Options. (line 124) ! * fprofile-reorder-functions: Optimize Options. (line 2248) * fprofile-report: Developer Options. (line 821) * fprofile-update: Instrumentation Options. (line 141) ! * fprofile-use: Optimize Options. (line 1935) ! * fprofile-values: Optimize Options. (line 2239) * fpu: RX Options. (line 17) * frandom-seed: Developer Options. (line 638) ! * freciprocal-math: Optimize Options. (line 2093) * frecord-gcc-switches: Code Gen Options. (line 347) ! * free: Optimize Options. (line 636) * freg-struct-return: Code Gen Options. (line 193) ! * frename-registers: Optimize Options. (line 2265) ! * freorder-blocks: Optimize Options. (line 1442) ! * freorder-blocks-algorithm: Optimize Options. (line 1448) ! * freorder-blocks-and-partition: Optimize Options. (line 1459) ! * freorder-functions: Optimize Options. (line 1476) * freplace-objc-classes: Objective-C and Objective-C++ Dialect Options. (line 130) * frepo: C++ Dialect Options. *************** look up both forms. *** 58219,58227 **** * frepo <1>: Template Instantiation. (line 94) * freport-bug: Developer Options. (line 258) ! * frerun-cse-after-loop: Optimize Options. (line 477) ! * freschedule-modulo-scheduled-loops: Optimize Options. (line 853) ! * frounding-math: Optimize Options. (line 2141) * fsanitize-address-use-after-scope: Instrumentation Options. (line 425) * fsanitize-coverage=trace-cmp: Instrumentation Options. --- 58241,58249 ---- * frepo <1>: Template Instantiation. (line 94) * freport-bug: Developer Options. (line 258) ! * frerun-cse-after-loop: Optimize Options. (line 476) ! * freschedule-modulo-scheduled-loops: Optimize Options. (line 852) ! * frounding-math: Optimize Options. (line 2140) * fsanitize-address-use-after-scope: Instrumentation Options. (line 425) * fsanitize-coverage=trace-cmp: Instrumentation Options. *************** look up both forms. *** 58292,58319 **** (line 258) * fsanitize=vptr: Instrumentation Options. (line 349) ! * fsched-critical-path-heuristic: Optimize Options. (line 819) ! * fsched-dep-count-heuristic: Optimize Options. (line 846) ! * fsched-group-heuristic: Optimize Options. (line 813) ! * fsched-last-insn-heuristic: Optimize Options. (line 839) ! * fsched-pressure: Optimize Options. (line 764) ! * fsched-rank-heuristic: Optimize Options. (line 832) ! * fsched-spec-insn-heuristic: Optimize Options. (line 825) ! * fsched-spec-load: Optimize Options. (line 773) ! * fsched-spec-load-dangerous: Optimize Options. (line 778) ! * fsched-stalled-insns: Optimize Options. (line 784) ! * fsched-stalled-insns-dep: Optimize Options. (line 794) * fsched-verbose: Developer Options. (line 550) ! * fsched2-use-superblocks: Optimize Options. (line 803) ! * fschedule-fusion: Optimize Options. (line 2276) ! * fschedule-insns: Optimize Options. (line 735) ! * fschedule-insns2: Optimize Options. (line 745) ! * fsection-anchors: Optimize Options. (line 2376) ! * fsel-sched-pipelining: Optimize Options. (line 866) ! * fsel-sched-pipelining-outer-loops: Optimize Options. (line 871) ! * fselective-scheduling: Optimize Options. (line 858) ! * fselective-scheduling2: Optimize Options. (line 862) ! * fsemantic-interposition: Optimize Options. (line 876) * fshort-enums: Code Gen Options. (line 211) * fshort-enums <1>: Structures unions enumerations and bit-fields implementation. (line 48) --- 58314,58341 ---- (line 258) * fsanitize=vptr: Instrumentation Options. (line 349) ! * fsched-critical-path-heuristic: Optimize Options. (line 818) ! * fsched-dep-count-heuristic: Optimize Options. (line 845) ! * fsched-group-heuristic: Optimize Options. (line 812) ! * fsched-last-insn-heuristic: Optimize Options. (line 838) ! * fsched-pressure: Optimize Options. (line 763) ! * fsched-rank-heuristic: Optimize Options. (line 831) ! * fsched-spec-insn-heuristic: Optimize Options. (line 824) ! * fsched-spec-load: Optimize Options. (line 772) ! * fsched-spec-load-dangerous: Optimize Options. (line 777) ! * fsched-stalled-insns: Optimize Options. (line 783) ! * fsched-stalled-insns-dep: Optimize Options. (line 793) * fsched-verbose: Developer Options. (line 550) ! * fsched2-use-superblocks: Optimize Options. (line 802) ! * fschedule-fusion: Optimize Options. (line 2275) ! * fschedule-insns: Optimize Options. (line 734) ! * fschedule-insns2: Optimize Options. (line 744) ! * fsection-anchors: Optimize Options. (line 2375) ! * fsel-sched-pipelining: Optimize Options. (line 865) ! * fsel-sched-pipelining-outer-loops: Optimize Options. (line 870) ! * fselective-scheduling: Optimize Options. (line 857) ! * fselective-scheduling2: Optimize Options. (line 861) ! * fsemantic-interposition: Optimize Options. (line 875) * fshort-enums: Code Gen Options. (line 211) * fshort-enums <1>: Structures unions enumerations and bit-fields implementation. (line 48) *************** look up both forms. *** 58321,58348 **** (line 235) * fshort-enums <3>: Non-bugs. (line 42) * fshort-wchar: Code Gen Options. (line 221) ! * fshrink-wrap: Optimize Options. (line 893) ! * fshrink-wrap-separate: Optimize Options. (line 898) ! * fsignaling-nans: Optimize Options. (line 2161) * fsigned-bitfields: C Dialect Options. (line 422) * fsigned-bitfields <1>: Non-bugs. (line 57) * fsigned-char: C Dialect Options. (line 412) * fsigned-char <1>: Characters implementation. (line 31) ! * fsimd-cost-model: Optimize Options. (line 1330) ! * fsingle-precision-constant: Optimize Options. (line 2193) * fsized-deallocation: C++ Dialect Options. (line 325) ! * fsplit-ivs-in-unroller: Optimize Options. (line 1351) ! * fsplit-loops: Optimize Options. (line 2319) ! * fsplit-paths: Optimize Options. (line 1346) * fsplit-stack: Instrumentation Options. (line 703) * fsplit-stack <1>: Common Function Attributes. (line 592) ! * fsplit-wide-types: Optimize Options. (line 452) ! * fssa-backprop: Optimize Options. (line 1081) ! * fssa-phiopt: Optimize Options. (line 1087) * fsso-struct: C Dialect Options. (line 428) * fstack-check: Instrumentation Options. (line 629) --- 58343,58370 ---- (line 235) * fshort-enums <3>: Non-bugs. (line 42) * fshort-wchar: Code Gen Options. (line 221) ! * fshrink-wrap: Optimize Options. (line 892) ! * fshrink-wrap-separate: Optimize Options. (line 897) ! * fsignaling-nans: Optimize Options. (line 2160) * fsigned-bitfields: C Dialect Options. (line 422) * fsigned-bitfields <1>: Non-bugs. (line 57) * fsigned-char: C Dialect Options. (line 412) * fsigned-char <1>: Characters implementation. (line 31) ! * fsimd-cost-model: Optimize Options. (line 1329) ! * fsingle-precision-constant: Optimize Options. (line 2192) * fsized-deallocation: C++ Dialect Options. (line 325) ! * fsplit-ivs-in-unroller: Optimize Options. (line 1350) ! * fsplit-loops: Optimize Options. (line 2318) ! * fsplit-paths: Optimize Options. (line 1345) * fsplit-stack: Instrumentation Options. (line 703) * fsplit-stack <1>: Common Function Attributes. (line 592) ! * fsplit-wide-types: Optimize Options. (line 451) ! * fssa-backprop: Optimize Options. (line 1080) ! * fssa-phiopt: Optimize Options. (line 1086) * fsso-struct: C Dialect Options. (line 428) * fstack-check: Instrumentation Options. (line 629) *************** look up both forms. *** 58363,58371 **** * fstack-usage: Developer Options. (line 825) * fstack_reuse: Code Gen Options. (line 15) * fstats: Developer Options. (line 854) ! * fstdarg-opt: Optimize Options. (line 2372) ! * fstore-merging: Optimize Options. (line 1282) ! * fstrict-aliasing: Optimize Options. (line 1490) * fstrict-enums: C++ Dialect Options. (line 335) * fstrict-overflow: Code Gen Options. (line 115) --- 58385,58393 ---- * fstack-usage: Developer Options. (line 825) * fstack_reuse: Code Gen Options. (line 15) * fstats: Developer Options. (line 854) ! * fstdarg-opt: Optimize Options. (line 2371) ! * fstore-merging: Optimize Options. (line 1281) ! * fstrict-aliasing: Optimize Options. (line 1489) * fstrict-enums: C++ Dialect Options. (line 335) * fstrict-overflow: Code Gen Options. (line 115) *************** look up both forms. *** 58382,58435 **** (line 356) * ftest-coverage: Instrumentation Options. (line 98) ! * fthread-jumps: Optimize Options. (line 443) * ftime-report: Developer Options. (line 782) * ftime-report-details: Developer Options. (line 786) * ftls-model: Code Gen Options. (line 495) ! * ftracer: Optimize Options. (line 2284) * ftrack-macro-expansion: Preprocessor Options. (line 240) * ftrampolines: Code Gen Options. (line 506) * ftrapv: Code Gen Options. (line 91) ! * ftree-bit-ccp: Optimize Options. (line 1070) ! * ftree-builtin-call-dce: Optimize Options. (line 1108) ! * ftree-ccp: Optimize Options. (line 1076) ! * ftree-ch: Optimize Options. (line 1128) ! * ftree-coalesce-vars: Optimize Options. (line 1167) ! * ftree-copy-prop: Optimize Options. (line 981) ! * ftree-dce: Optimize Options. (line 1104) ! * ftree-dominator-opts: Optimize Options. (line 1114) ! * ftree-dse: Optimize Options. (line 1121) ! * ftree-forwprop: Optimize Options. (line 960) ! * ftree-fre: Optimize Options. (line 964) ! * ftree-loop-distribute-patterns: Optimize Options. (line 1201) ! * ftree-loop-distribution: Optimize Options. (line 1184) ! * ftree-loop-if-convert: Optimize Options. (line 1177) ! * ftree-loop-im: Optimize Options. (line 1243) ! * ftree-loop-ivcanon: Optimize Options. (line 1252) ! * ftree-loop-linear: Optimize Options. (line 1141) ! * ftree-loop-optimize: Optimize Options. (line 1135) ! * ftree-loop-vectorize: Optimize Options. (line 1308) ! * ftree-parallelize-loops: Optimize Options. (line 1263) ! * ftree-partial-pre: Optimize Options. (line 956) ! * ftree-phiprop: Optimize Options. (line 971) ! * ftree-pre: Optimize Options. (line 952) ! * ftree-pta: Optimize Options. (line 1272) ! * ftree-reassoc: Optimize Options. (line 941) ! * ftree-sink: Optimize Options. (line 1066) ! * ftree-slp-vectorize: Optimize Options. (line 1312) ! * ftree-slsr: Optimize Options. (line 1297) ! * ftree-sra: Optimize Options. (line 1276) ! * ftree-switch-conversion: Optimize Options. (line 1091) ! * ftree-tail-merge: Optimize Options. (line 1096) ! * ftree-ter: Optimize Options. (line 1289) ! * ftree-vectorize: Optimize Options. (line 1303) ! * ftree-vrp: Optimize Options. (line 1337) ! * funconstrained-commons: Optimize Options. (line 533) ! * funit-at-a-time: Optimize Options. (line 1609) ! * funroll-all-loops: Optimize Options. (line 2301) ! * funroll-loops: Optimize Options. (line 2291) ! * funsafe-math-optimizations: Optimize Options. (line 2059) * funsigned-bitfields: C Dialect Options. (line 422) * funsigned-bitfields <1>: Structures unions enumerations and bit-fields implementation. (line 17) --- 58404,58457 ---- (line 356) * ftest-coverage: Instrumentation Options. (line 98) ! * fthread-jumps: Optimize Options. (line 442) * ftime-report: Developer Options. (line 782) * ftime-report-details: Developer Options. (line 786) * ftls-model: Code Gen Options. (line 495) ! * ftracer: Optimize Options. (line 2283) * ftrack-macro-expansion: Preprocessor Options. (line 240) * ftrampolines: Code Gen Options. (line 506) * ftrapv: Code Gen Options. (line 91) ! * ftree-bit-ccp: Optimize Options. (line 1069) ! * ftree-builtin-call-dce: Optimize Options. (line 1107) ! * ftree-ccp: Optimize Options. (line 1075) ! * ftree-ch: Optimize Options. (line 1127) ! * ftree-coalesce-vars: Optimize Options. (line 1166) ! * ftree-copy-prop: Optimize Options. (line 980) ! * ftree-dce: Optimize Options. (line 1103) ! * ftree-dominator-opts: Optimize Options. (line 1113) ! * ftree-dse: Optimize Options. (line 1120) ! * ftree-forwprop: Optimize Options. (line 959) ! * ftree-fre: Optimize Options. (line 963) ! * ftree-loop-distribute-patterns: Optimize Options. (line 1200) ! * ftree-loop-distribution: Optimize Options. (line 1183) ! * ftree-loop-if-convert: Optimize Options. (line 1176) ! * ftree-loop-im: Optimize Options. (line 1242) ! * ftree-loop-ivcanon: Optimize Options. (line 1251) ! * ftree-loop-linear: Optimize Options. (line 1140) ! * ftree-loop-optimize: Optimize Options. (line 1134) ! * ftree-loop-vectorize: Optimize Options. (line 1307) ! * ftree-parallelize-loops: Optimize Options. (line 1262) ! * ftree-partial-pre: Optimize Options. (line 955) ! * ftree-phiprop: Optimize Options. (line 970) ! * ftree-pre: Optimize Options. (line 951) ! * ftree-pta: Optimize Options. (line 1271) ! * ftree-reassoc: Optimize Options. (line 940) ! * ftree-sink: Optimize Options. (line 1065) ! * ftree-slp-vectorize: Optimize Options. (line 1311) ! * ftree-slsr: Optimize Options. (line 1296) ! * ftree-sra: Optimize Options. (line 1275) ! * ftree-switch-conversion: Optimize Options. (line 1090) ! * ftree-tail-merge: Optimize Options. (line 1095) ! * ftree-ter: Optimize Options. (line 1288) ! * ftree-vectorize: Optimize Options. (line 1302) ! * ftree-vrp: Optimize Options. (line 1336) ! * funconstrained-commons: Optimize Options. (line 532) ! * funit-at-a-time: Optimize Options. (line 1608) ! * funroll-all-loops: Optimize Options. (line 2300) ! * funroll-loops: Optimize Options. (line 2290) ! * funsafe-math-optimizations: Optimize Options. (line 2058) * funsigned-bitfields: C Dialect Options. (line 422) * funsigned-bitfields <1>: Structures unions enumerations and bit-fields implementation. (line 17) *************** look up both forms. *** 58437,58469 **** * funsigned-char: C Dialect Options. (line 394) * funsigned-char <1>: Characters implementation. (line 31) ! * funswitch-loops: Optimize Options. (line 2323) * funwind-tables: Code Gen Options. (line 149) * fuse-cxa-atexit: C++ Dialect Options. (line 371) * fuse-ld=bfd: Link Options. (line 25) * fuse-ld=gold: Link Options. (line 28) ! * fuse-linker-plugin: Optimize Options. (line 1868) * fvar-tracking: Debugging Options. (line 147) * fvar-tracking-assignments: Debugging Options. (line 157) * fvar-tracking-assignments-toggle: Developer Options. (line 774) ! * fvariable-expansion-in-unroller: Optimize Options. (line 1365) ! * fvect-cost-model: Optimize Options. (line 1316) * fverbose-asm: Code Gen Options. (line 268) * fvisibility: Code Gen Options. (line 530) * fvisibility-inlines-hidden: C++ Dialect Options. (line 383) * fvisibility-ms-compat: C++ Dialect Options. (line 411) ! * fvpt: Optimize Options. (line 2256) * fvtable-verify: Instrumentation Options. (line 721) * fvtv-counts: Instrumentation Options. (line 757) * fvtv-debug: Instrumentation Options. (line 744) ! * fweb: Optimize Options. (line 1628) ! * fwhole-program: Optimize Options. (line 1639) * fwide-exec-charset: Preprocessor Options. (line 271) * fworking-directory: Preprocessor Options. --- 58459,58491 ---- * funsigned-char: C Dialect Options. (line 394) * funsigned-char <1>: Characters implementation. (line 31) ! * funswitch-loops: Optimize Options. (line 2322) * funwind-tables: Code Gen Options. (line 149) * fuse-cxa-atexit: C++ Dialect Options. (line 371) * fuse-ld=bfd: Link Options. (line 25) * fuse-ld=gold: Link Options. (line 28) ! * fuse-linker-plugin: Optimize Options. (line 1867) * fvar-tracking: Debugging Options. (line 147) * fvar-tracking-assignments: Debugging Options. (line 157) * fvar-tracking-assignments-toggle: Developer Options. (line 774) ! * fvariable-expansion-in-unroller: Optimize Options. (line 1364) ! * fvect-cost-model: Optimize Options. (line 1315) * fverbose-asm: Code Gen Options. (line 268) * fvisibility: Code Gen Options. (line 530) * fvisibility-inlines-hidden: C++ Dialect Options. (line 383) * fvisibility-ms-compat: C++ Dialect Options. (line 411) ! * fvpt: Optimize Options. (line 2255) * fvtable-verify: Instrumentation Options. (line 721) * fvtv-counts: Instrumentation Options. (line 757) * fvtv-debug: Instrumentation Options. (line 744) ! * fweb: Optimize Options. (line 1627) ! * fwhole-program: Optimize Options. (line 1638) * fwide-exec-charset: Preprocessor Options. (line 271) * fworking-directory: Preprocessor Options. *************** look up both forms. *** 58679,58691 **** * mabort-on-noreturn: ARM Options. (line 606) * mabs=2008: MIPS Options. (line 299) * mabs=legacy: MIPS Options. (line 299) ! * mabsdata: AVR Options. (line 159) * mabsdiff: MeP Options. (line 7) * mabshi: PDP-11 Options. (line 55) * mac0: PDP-11 Options. (line 16) * macc-4: FRV Options. (line 139) * macc-8: FRV Options. (line 143) ! * maccumulate-args: AVR Options. (line 166) * maccumulate-outgoing-args: SH Options. (line 314) * maccumulate-outgoing-args <1>: x86 Options. (line 1007) * maddress-mode=long: x86 Options. (line 1380) --- 58701,58713 ---- * mabort-on-noreturn: ARM Options. (line 606) * mabs=2008: MIPS Options. (line 299) * mabs=legacy: MIPS Options. (line 299) ! * mabsdata: AVR Options. (line 163) * mabsdiff: MeP Options. (line 7) * mabshi: PDP-11 Options. (line 55) * 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 1007) * maddress-mode=long: x86 Options. (line 1380) *************** look up both forms. *** 58850,58856 **** * mbranch-cheap: PDP-11 Options. (line 65) * mbranch-cost: Adapteva Epiphany Options. (line 18) ! * mbranch-cost <1>: AVR Options. (line 181) * mbranch-cost <2>: MIPS Options. (line 751) * mbranch-cost <3>: RISC-V Options. (line 9) * mbranch-cost=NUM: SH Options. (line 334) --- 58872,58878 ---- * mbranch-cheap: PDP-11 Options. (line 65) * mbranch-cost: Adapteva Epiphany Options. (line 18) ! * mbranch-cost <1>: AVR Options. (line 185) * mbranch-cost <2>: MIPS Options. (line 751) * mbranch-cost <3>: RISC-V Options. (line 9) * mbranch-cost=NUM: SH Options. (line 334) *************** look up both forms. *** 58893,58899 **** (line 591) * mcall-netbsd <3>: RS/6000 and PowerPC Options. (line 595) ! * mcall-prologues: AVR Options. (line 186) * mcall-sysv: PowerPC SPE Options. (line 338) * mcall-sysv <1>: RS/6000 and PowerPC Options. --- 58915,58921 ---- (line 591) * mcall-netbsd <3>: RS/6000 and PowerPC Options. (line 595) ! * mcall-prologues: AVR Options. (line 190) * mcall-sysv: PowerPC SPE Options. (line 338) * mcall-sysv <1>: RS/6000 and PowerPC Options. *************** look up both forms. *** 58973,58979 **** * mcop64: MeP Options. (line 56) * mcorea: Blackfin Options. (line 154) * mcoreb: Blackfin Options. (line 161) ! * mcpu: AArch64 Options. (line 173) * mcpu <1>: ARC Options. (line 18) * mcpu <2>: ARM Options. (line 477) * mcpu <3>: CRIS Options. (line 10) --- 58995,59001 ---- * mcop64: MeP Options. (line 56) * mcorea: Blackfin Options. (line 154) * mcoreb: Blackfin Options. (line 161) ! * mcpu: AArch64 Options. (line 174) * mcpu <1>: ARC Options. (line 18) * mcpu <2>: ARM Options. (line 477) * mcpu <3>: CRIS Options. (line 10) *************** look up both forms. *** 59167,59173 **** * mfp16-format: ARM Options. (line 584) * mfp32: MIPS Options. (line 257) * mfp64: MIPS Options. (line 260) ! * mfpmath: Optimize Options. (line 2020) * mfpmath <1>: x86 Options. (line 400) * mfpr-32: FRV Options. (line 15) * mfpr-64: FRV Options. (line 19) --- 59189,59195 ---- * mfp16-format: ARM Options. (line 584) * mfp32: MIPS Options. (line 257) * mfp64: MIPS Options. (line 260) ! * mfpmath: Optimize Options. (line 2019) * mfpmath <1>: x86 Options. (line 400) * mfpr-32: FRV Options. (line 15) * mfpr-64: FRV Options. (line 19) *************** look up both forms. *** 59181,59187 **** * mfpu <4>: SPARC Options. (line 34) * mfpu <5>: Visium Options. (line 19) * mfpxx: MIPS Options. (line 263) ! * mfract-convert-truncate: AVR Options. (line 273) * mframe-header-opt: MIPS Options. (line 851) * mfriz: RS/6000 and PowerPC Options. (line 913) --- 59203,59209 ---- * mfpu <4>: SPARC Options. (line 34) * mfpu <5>: Visium Options. (line 19) * mfpxx: MIPS Options. (line 263) ! * mfract-convert-truncate: AVR Options. (line 277) * mframe-header-opt: MIPS Options. (line 851) * mfriz: RS/6000 and PowerPC Options. (line 913) *************** look up both forms. *** 59213,59219 **** * mg13: RL78 Options. (line 62) * mg14: RL78 Options. (line 62) * mgas: HPPA Options. (line 75) ! * mgas-isr-prologues: AVR Options. (line 190) * mgcc-abi: V850 Options. (line 148) * mgeneral-regs-only: AArch64 Options. (line 24) * mgeneral-regs-only <1>: x86 Options. (line 1281) --- 59235,59241 ---- * mg13: RL78 Options. (line 62) * mg14: RL78 Options. (line 62) * mgas: HPPA Options. (line 75) ! * mgas-isr-prologues: AVR Options. (line 194) * mgcc-abi: V850 Options. (line 148) * mgeneral-regs-only: AArch64 Options. (line 24) * mgeneral-regs-only <1>: x86 Options. (line 1281) *************** look up both forms. *** 59310,59316 **** * mint32: CR16 Options. (line 22) * mint32 <1>: H8/300 Options. (line 38) * mint32 <2>: PDP-11 Options. (line 44) ! * mint8: AVR Options. (line 200) * minterlink-compressed: MIPS Options. (line 134) * minterlink-mips16: MIPS Options. (line 146) * mio-volatile: MeP Options. (line 74) --- 59332,59338 ---- * mint32: CR16 Options. (line 22) * mint32 <1>: H8/300 Options. (line 38) * mint32 <2>: PDP-11 Options. (line 44) ! * mint8: AVR Options. (line 204) * minterlink-compressed: MIPS Options. (line 134) * minterlink-mips16: MIPS Options. (line 146) * mio-volatile: MeP Options. (line 74) *************** look up both forms. *** 59432,59438 **** * mmac_d16: ARC Options. (line 623) * mmad: MIPS Options. (line 588) * mmadd4: MIPS Options. (line 866) ! * mmain-is-OS_task: AVR Options. (line 206) * mmainkernel: Nvidia PTX Options. (line 13) * mmalloc64: VMS Options. (line 17) * mmax: DEC Alpha Options. (line 163) --- 59454,59460 ---- * mmac_d16: ARC Options. (line 623) * mmad: MIPS Options. (line 588) * mmadd4: MIPS Options. (line 866) ! * mmain-is-OS_task: AVR Options. (line 210) * mmainkernel: Nvidia PTX Options. (line 13) * mmalloc64: VMS Options. (line 17) * mmax: DEC Alpha Options. (line 163) *************** look up both forms. *** 59503,59509 **** (line 666) * mmwaitx: x86 Options. (line 759) * mn: H8/300 Options. (line 20) ! * mn-flash: AVR Options. (line 211) * mnan=2008: MIPS Options. (line 319) * mnan=legacy: MIPS Options. (line 319) * mneon-for-64bits: ARM Options. (line 767) --- 59525,59531 ---- (line 666) * mmwaitx: x86 Options. (line 759) * mn: H8/300 Options. (line 20) ! * mn-flash: AVR Options. (line 215) * mnan=2008: MIPS Options. (line 319) * mnan=legacy: MIPS Options. (line 319) * mneon-for-64bits: ARM Options. (line 767) *************** look up both forms. *** 59672,59678 **** * mno-int32: PDP-11 Options. (line 40) * mno-interlink-compressed: MIPS Options. (line 134) * mno-interlink-mips16: MIPS Options. (line 146) ! * mno-interrupts: AVR Options. (line 214) * mno-isel: PowerPC SPE Options. (line 79) * mno-isel <1>: RS/6000 and PowerPC Options. --- 59694,59700 ---- * mno-int32: PDP-11 Options. (line 40) * mno-interlink-compressed: MIPS Options. (line 134) * mno-interlink-mips16: MIPS Options. (line 146) ! * mno-interrupts: AVR Options. (line 218) * mno-isel: PowerPC SPE Options. (line 79) * mno-isel <1>: RS/6000 and PowerPC Options. *************** look up both forms. *** 59743,59749 **** * mno-paired: RS/6000 and PowerPC Options. (line 204) * mno-paired-single: MIPS Options. (line 369) ! * mno-pc-relative-literal-loads: AArch64 Options. (line 203) * mno-perf-ext: NDS32 Options. (line 30) * mno-perf-ext <1>: NDS32 Options. (line 36) * mno-perf-ext <2>: NDS32 Options. (line 42) --- 59765,59771 ---- * mno-paired: RS/6000 and PowerPC Options. (line 204) * mno-paired-single: MIPS Options. (line 369) ! * mno-pc-relative-literal-loads: AArch64 Options. (line 204) * mno-perf-ext: NDS32 Options. (line 30) * mno-perf-ext <1>: NDS32 Options. (line 36) * mno-perf-ext <2>: NDS32 Options. (line 42) *************** look up both forms. *** 59930,59936 **** * mone-byte-bool: Darwin Options. (line 90) * moptimize: Nvidia PTX Options. (line 17) * moptimize-membar: FRV Options. (line 244) ! * moverride: AArch64 Options. (line 190) * MP: Preprocessor Options. (line 132) * mpa-risc-1-0: HPPA Options. (line 19) --- 59952,59958 ---- * mone-byte-bool: Darwin Options. (line 90) * moptimize: Nvidia PTX Options. (line 17) * moptimize-membar: FRV Options. (line 244) ! * moverride: AArch64 Options. (line 191) * MP: Preprocessor Options. (line 132) * mpa-risc-1-0: HPPA Options. (line 19) *************** look up both forms. *** 59943,59949 **** * mpaired: RS/6000 and PowerPC Options. (line 204) * mpaired-single: MIPS Options. (line 369) ! * mpc-relative-literal-loads: AArch64 Options. (line 203) * mpc32: x86 Options. (line 627) * mpc64: x86 Options. (line 627) * mpc80: x86 Options. (line 627) --- 59965,59971 ---- * mpaired: RS/6000 and PowerPC Options. (line 204) * mpaired-single: MIPS Options. (line 369) ! * mpc-relative-literal-loads: AArch64 Options. (line 204) * mpc32: x86 Options. (line 627) * mpc64: x86 Options. (line 627) * mpc80: x86 Options. (line 627) *************** look up both forms. *** 60049,60055 **** * mregnames <1>: RS/6000 and PowerPC Options. (line 782) * mregparm: x86 Options. (line 594) ! * mrelax: AVR Options. (line 218) * mrelax <1>: H8/300 Options. (line 9) * mrelax <2>: MN10300 Options. (line 46) * mrelax <3>: MSP430 Options. (line 58) --- 60071,60077 ---- * mregnames <1>: RS/6000 and PowerPC Options. (line 782) * mregparm: x86 Options. (line 594) ! * mrelax: AVR Options. (line 222) * mrelax <1>: H8/300 Options. (line 9) * mrelax <2>: MN10300 Options. (line 46) * mrelax <3>: MSP430 Options. (line 58) *************** look up both forms. *** 60075,60081 **** * mrgf-banked-regs: ARC Options. (line 304) * mrh850-abi: V850 Options. (line 127) * mrl78: RL78 Options. (line 62) ! * mrmw: AVR Options. (line 232) * mrtd: M680x0 Options. (line 236) * mrtd <1>: x86 Options. (line 570) * mrtd <2>: x86 Function Attributes. --- 60097,60103 ---- * mrgf-banked-regs: ARC Options. (line 304) * mrh850-abi: V850 Options. (line 127) * mrl78: RL78 Options. (line 62) ! * mrmw: AVR Options. (line 236) * mrtd: M680x0 Options. (line 236) * mrtd <1>: x86 Options. (line 570) * mrtd <2>: x86 Function Attributes. *************** look up both forms. *** 60168,60177 **** * msha: x86 Options. (line 723) * mshared-library-id: Blackfin Options. (line 100) * mshort: M680x0 Options. (line 216) ! * mshort-calls: AVR Options. (line 236) * mshstk: x86 Options. (line 886) * msign-extend-enabled: LM32 Options. (line 18) ! * msign-return-address: AArch64 Options. (line 209) * msilicon-errata: MSP430 Options. (line 102) * msilicon-errata-warn: MSP430 Options. (line 106) * msim: Blackfin Options. (line 36) --- 60190,60199 ---- * msha: x86 Options. (line 723) * mshared-library-id: Blackfin Options. (line 100) * mshort: M680x0 Options. (line 216) ! * mshort-calls: AVR Options. (line 240) * mshstk: x86 Options. (line 886) * msign-extend-enabled: LM32 Options. (line 18) ! * msign-return-address: AArch64 Options. (line 210) * msilicon-errata: MSP430 Options. (line 102) * msilicon-errata-warn: MSP430 Options. (line 106) * msim: Blackfin Options. (line 36) *************** look up both forms. *** 60243,60249 **** * msoft-float <14>: x86 Options. (line 469) * msoft-quad-float: SPARC Options. (line 59) * msoft-stack: Nvidia PTX Options. (line 21) ! * msp8: AVR Options. (line 243) * mspace: V850 Options. (line 30) * mspe: PowerPC SPE Options. (line 88) --- 60265,60271 ---- * msoft-float <14>: x86 Options. (line 469) * msoft-quad-float: SPARC Options. (line 59) * msoft-stack: Nvidia PTX Options. (line 21) ! * msp8: AVR Options. (line 247) * mspace: V850 Options. (line 30) * mspe: PowerPC SPE Options. (line 88) *************** look up both forms. *** 60305,60318 **** * mstrict-align <3>: RISC-V Options. (line 80) * mstrict-align <4>: RS/6000 and PowerPC Options. (line 461) ! * mstrict-X: AVR Options. (line 256) * mstring-compare-inline-limit: RS/6000 and PowerPC Options. (line 766) * mstringop-strategy=ALG: x86 Options. (line 1159) * mstructure-size-boundary: ARM Options. (line 590) * msubxc: SPARC Options. (line 288) * msv-mode: Visium Options. (line 52) ! * msve-vector-bits: AArch64 Options. (line 216) * msvr4-struct-return: PowerPC SPE Options. (line 375) * msvr4-struct-return <1>: RS/6000 and PowerPC Options. --- 60327,60340 ---- * mstrict-align <3>: RISC-V Options. (line 80) * mstrict-align <4>: RS/6000 and PowerPC Options. (line 461) ! * mstrict-X: AVR Options. (line 260) * mstring-compare-inline-limit: RS/6000 and PowerPC Options. (line 766) * mstringop-strategy=ALG: x86 Options. (line 1159) * mstructure-size-boundary: ARM Options. (line 590) * msubxc: SPARC Options. (line 288) * msv-mode: Visium Options. (line 52) ! * msve-vector-bits: AArch64 Options. (line 217) * msvr4-struct-return: PowerPC SPE Options. (line 375) * msvr4-struct-return <1>: RS/6000 and PowerPC Options. *************** look up both forms. *** 60337,60343 **** * mthreads: x86 Options. (line 1015) * mthumb: ARM Options. (line 678) * mthumb-interwork: ARM Options. (line 24) ! * mtiny-stack: AVR Options. (line 270) * mtiny=: MeP Options. (line 125) * mTLS: FRV Options. (line 90) * mtls: FRV Options. (line 94) --- 60359,60365 ---- * mthreads: x86 Options. (line 1015) * mthumb: ARM Options. (line 678) * mthumb-interwork: ARM Options. (line 24) ! * mtiny-stack: AVR Options. (line 274) * mtiny=: MeP Options. (line 125) * mTLS: FRV Options. (line 90) * mtls: FRV Options. (line 94) *************** look up both forms. *** 60430,60436 **** (line 894) * mveclibabi <1>: x86 Options. (line 947) * mvect8-ret-in-mem: x86 Options. (line 615) ! * mverbose-cost-dump: AArch64 Options. (line 198) * mverbose-cost-dump <1>: ARM Options. (line 796) * mvirt: MIPS Options. (line 406) * mvis: SPARC Options. (line 221) --- 60452,60458 ---- (line 894) * mveclibabi <1>: x86 Options. (line 947) * mvect8-ret-in-mem: x86 Options. (line 615) ! * mverbose-cost-dump: AArch64 Options. (line 199) * mverbose-cost-dump <1>: ARM Options. (line 796) * mvirt: MIPS Options. (line 406) * mvis: SPARC Options. (line 221) *************** look up both forms. *** 60515,60521 **** * noall_load: Darwin Options. (line 196) * nocpp: MIPS Options. (line 612) * nodefaultlibs: Link Options. (line 68) ! * nodevicelib: AVR Options. (line 277) * nofixprebinding: Darwin Options. (line 196) * nofpu: RX Options. (line 17) * nolibdld: HPPA Options. (line 188) --- 60537,60544 ---- * noall_load: Darwin Options. (line 196) * nocpp: MIPS Options. (line 612) * nodefaultlibs: Link Options. (line 68) ! * nodevicelib: AVR Options. (line 281) ! * nodevicespecs: AVR Options. (line 284) * nofixprebinding: Darwin Options. (line 196) * nofpu: RX Options. (line 17) * nolibdld: HPPA Options. (line 188) *************** look up both forms. *** 60536,60550 **** * O1: Optimize Options. (line 39) * O2: Optimize Options. (line 92) * O3: Optimize Options. (line 141) ! * Ofast: Optimize Options. (line 177) ! * Og: Optimize Options. (line 184) * Os: Optimize Options. (line 164) * p: Instrumentation Options. (line 19) * P: Preprocessor Options. (line 361) * pagezero_size: Darwin Options. (line 196) ! * param: Optimize Options. (line 2400) * pass-exit-codes: Overall Options. (line 326) * pedantic: Standards. (line 13) * pedantic <1>: Warning Options. (line 80) --- 60559,60573 ---- * O1: Optimize Options. (line 39) * O2: Optimize Options. (line 92) * O3: Optimize Options. (line 141) ! * Ofast: Optimize Options. (line 176) ! * Og: Optimize Options. (line 183) * Os: Optimize Options. (line 164) * p: Instrumentation Options. (line 19) * P: Preprocessor Options. (line 361) * pagezero_size: Darwin Options. (line 196) ! * param: Optimize Options. (line 2399) * pass-exit-codes: Overall Options. (line 326) * pedantic: Standards. (line 13) * pedantic <1>: Warning Options. (line 80) *************** look up both forms. *** 60670,60676 **** (line 455) * Wabi-tag: C++ Dialect Options. (line 559) ! * Waddr-space-convert: AVR Options. (line 280) * Waddress: Warning Options. (line 2299) * Waggregate-return: Warning Options. (line 2335) * Waggressive-loop-optimizations: Warning Options. (line 2340) --- 60693,60699 ---- (line 455) * Wabi-tag: C++ Dialect Options. (line 559) ! * Waddr-space-convert: AVR Options. (line 290) * Waddress: Warning Options. (line 2299) * Waggregate-return: Warning Options. (line 2335) * Waggressive-loop-optimizations: Warning Options. (line 2340) *************** look up both forms. *** 60812,60818 **** * Wmissing-include-dirs: Warning Options. (line 756) * Wmissing-parameter-type: Warning Options. (line 2376) * Wmissing-prototypes: Warning Options. (line 2384) ! * Wmisspelled-isr: AVR Options. (line 285) * Wmultichar: Warning Options. (line 2434) * Wmultiple-inheritance: C++ Dialect Options. (line 792) --- 60835,60841 ---- * Wmissing-include-dirs: Warning Options. (line 756) * Wmissing-parameter-type: Warning Options. (line 2376) * Wmissing-prototypes: Warning Options. (line 2384) ! * Wmisspelled-isr: AVR Options. (line 295) * Wmultichar: Warning Options. (line 2434) * Wmultiple-inheritance: C++ Dialect Options. (line 792) *************** Keyword Index *** 61247,61254 **** * + in constraint: Modifiers. (line 12) * -lgcc, use with -nodefaultlibs: Link Options. (line 91) * -lgcc, use with -nostdlib: Link Options. (line 91) ! * -march feature modifiers: AArch64 Options. (line 238) ! * -mcpu feature modifiers: AArch64 Options. (line 238) * -nodefaultlibs and unresolved references: Link Options. (line 91) * -nostdlib and unresolved references: Link Options. (line 91) * .sdata/.sdata2 references (PowerPC): PowerPC SPE Options. --- 61270,61277 ---- * + in constraint: Modifiers. (line 12) * -lgcc, use with -nodefaultlibs: Link Options. (line 91) * -lgcc, use with -nostdlib: Link Options. (line 91) ! * -march feature modifiers: AArch64 Options. (line 239) ! * -mcpu feature modifiers: AArch64 Options. (line 239) * -nodefaultlibs and unresolved references: Link Options. (line 91) * -nostdlib and unresolved references: Link Options. (line 91) * .sdata/.sdata2 references (PowerPC): PowerPC SPE Options. *************** Keyword Index *** 62196,62202 **** (line 9) * eightbit_data variable attribute, H8/300: H8/300 Variable Attributes. (line 9) ! * EIND: AVR Options. (line 291) * either function attribute, MSP430: MSP430 Function Attributes. (line 53) * either variable attribute, MSP430: MSP430 Variable Attributes. --- 62219,62225 ---- (line 9) * eightbit_data variable attribute, H8/300: H8/300 Variable Attributes. (line 9) ! * EIND: AVR Options. (line 301) * either function attribute, MSP430: MSP430 Function Attributes. (line 53) * either variable attribute, MSP430: MSP430 Variable Attributes. *************** Keyword Index *** 62297,62303 **** * flexible array members: Zero Length. (line 6) * float as function value type: Incompatibilities. (line 141) * floating point precision: Disappointments. (line 68) ! * floating-point precision: Optimize Options. (line 1993) * floor: Other Builtins. (line 6) * floorf: Other Builtins. (line 6) * floorl: Other Builtins. (line 6) --- 62320,62326 ---- * flexible array members: Zero Length. (line 6) * float as function value type: Incompatibilities. (line 141) * floating point precision: Disappointments. (line 68) ! * floating-point precision: Optimize Options. (line 1992) * floor: Other Builtins. (line 6) * floorf: Other Builtins. (line 6) * floorl: Other Builtins. (line 6) *************** Keyword Index *** 63129,63138 **** * 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 402) ! * RAMPX: AVR Options. (line 402) ! * RAMPY: AVR Options. (line 402) ! * RAMPZ: AVR Options. (line 402) * range1 GCC_COLORS capability: Diagnostic Message Formatting Options. (line 81) * range2 GCC_COLORS capability: Diagnostic Message Formatting Options. --- 63152,63161 ---- * 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 412) ! * RAMPX: AVR Options. (line 412) ! * RAMPY: AVR Options. (line 412) ! * RAMPZ: AVR Options. (line 412) * range1 GCC_COLORS capability: Diagnostic Message Formatting Options. (line 81) * range2 GCC_COLORS capability: Diagnostic Message Formatting Options. *************** Node: G++ and GCC3947 *** 63874,64275 **** Node: Standards6012 Node: Invoking GCC19170 Node: Option Summary23371 ! Node: Overall Options75951 ! Node: Invoking G++90943 ! Node: C Dialect Options92466 ! Node: C++ Dialect Options111330 ! Node: Objective-C and Objective-C++ Dialect Options148314 ! Node: Diagnostic Message Formatting Options159544 ! Node: Warning Options168356 ! Ref: Wtrigraphs254515 ! Node: Debugging Options291102 ! Node: Optimize Options309977 ! Ref: Type-punning373770 ! Node: Instrumentation Options465508 ! Node: Preprocessor Options507673 ! Ref: dashMF512520 ! Ref: fdollars-in-identifiers517099 ! Node: Assembler Options529349 ! Node: Link Options530040 ! Ref: Link Options-Footnote-1544355 ! Node: Directory Options544691 ! Node: Code Gen Options553094 ! Node: Developer Options581759 ! Node: Submodel Options620671 ! Node: AArch64 Options622429 ! Ref: aarch64-feature-modifiers632893 ! Node: Adapteva Epiphany Options635284 ! Node: ARC Options641231 ! Node: ARM Options662148 ! Node: AVR Options697104 ! Node: Blackfin Options721134 ! Node: C6X Options729028 ! Node: CRIS Options730571 ! Node: CR16 Options734310 ! Node: Darwin Options735221 ! Node: DEC Alpha Options742661 ! Node: FR30 Options754277 ! Node: FT32 Options754842 ! Node: FRV Options755788 ! Node: GNU/Linux Options762552 ! Node: H8/300 Options763933 ! Node: HPPA Options765385 ! Node: IA-64 Options774917 ! Node: LM32 Options783045 ! Node: M32C Options783568 ! Node: M32R/D Options784841 ! Node: M680x0 Options788386 ! Node: MCore Options802538 ! Node: MeP Options804040 ! Node: MicroBlaze Options808000 ! Node: MIPS Options810786 ! Node: MMIX Options846238 ! Node: MN10300 Options848715 ! Node: Moxie Options851256 ! Node: MSP430 Options851743 ! Node: NDS32 Options856447 ! Node: Nios II Options858617 ! Node: Nvidia PTX Options870780 ! Node: PDP-11 Options873042 ! Node: picoChip Options874739 ! Node: PowerPC Options876877 ! Node: PowerPC SPE Options877105 ! Node: RISC-V Options905611 ! Node: RL78 Options909995 ! Node: RS/6000 and PowerPC Options913770 ! Node: RX Options955751 ! Node: S/390 and zSeries Options964353 ! Node: Score Options974818 ! Node: SH Options975667 ! Node: Solaris 2 Options990809 ! Node: SPARC Options992047 ! Node: SPU Options1007668 ! Node: System V Options1012607 ! Node: TILE-Gx Options1013433 ! Node: TILEPro Options1014451 ! Node: V850 Options1014955 ! Node: VAX Options1021642 ! Node: Visium Options1022180 ! Node: VMS Options1024488 ! Node: VxWorks Options1025304 ! Node: x86 Options1026456 ! Node: x86 Windows Options1085196 ! Node: Xstormy16 Options1088001 ! Node: Xtensa Options1088295 ! Node: zSeries Options1093444 ! Node: Spec Files1093640 ! Node: Environment Variables1115798 ! Node: Precompiled Headers1124524 ! Node: C Implementation1130530 ! Node: Translation implementation1132220 ! Node: Environment implementation1132811 ! Node: Identifiers implementation1133365 ! Node: Characters implementation1134451 ! Node: Integers implementation1138101 ! Node: Floating point implementation1140150 ! Node: Arrays and pointers implementation1143213 ! Ref: Arrays and pointers implementation-Footnote-11144673 ! Node: Hints implementation1144799 ! Node: Structures unions enumerations and bit-fields implementation1146294 ! Node: Qualifiers implementation1148518 ! Node: Declarators implementation1150298 ! Node: Statements implementation1150639 ! Node: Preprocessing directives implementation1150965 ! Node: Library functions implementation1153286 ! Node: Architecture implementation1153935 ! Node: Locale-specific behavior implementation1155580 ! Node: C++ Implementation1155885 ! Node: Conditionally-supported behavior1157168 ! Node: Exception handling1157785 ! Node: C Extensions1158252 ! Node: Statement Exprs1163453 ! Node: Local Labels1167930 ! Node: Labels as Values1170903 ! Ref: Labels as Values-Footnote-11173430 ! Node: Nested Functions1173615 ! Node: Constructing Calls1177573 ! Node: Typeof1182290 ! Node: Conditionals1186219 ! Node: __int1281187108 ! Node: Long Long1187633 ! Node: Complex1189109 ! Node: Floating Types1191877 ! Node: Half-Precision1195344 ! Node: Decimal Float1197755 ! Node: Hex Floats1199609 ! Node: Fixed-Point1200646 ! Node: Named Address Spaces1203904 ! Ref: AVR Named Address Spaces1204590 ! Node: Zero Length1211613 ! Node: Empty Structures1214653 ! Node: Variable Length1215059 ! Node: Variadic Macros1217777 ! Node: Escaped Newlines1220155 ! Node: Subscripting1221016 ! Node: Pointer Arith1221741 ! Node: Pointers to Arrays1222315 ! Node: Initializers1223060 ! Node: Compound Literals1223561 ! Node: Designated Inits1227128 ! Node: Case Ranges1230864 ! Node: Cast to Union1231545 ! Node: Mixed Declarations1232671 ! Node: Function Attributes1233181 ! Node: Common Function Attributes1236569 ! Node: AArch64 Function Attributes1288078 ! Node: ARC Function Attributes1293484 ! Node: ARM Function Attributes1295806 ! Node: AVR Function Attributes1300611 ! Node: Blackfin Function Attributes1305146 ! Node: CR16 Function Attributes1307644 ! Node: Epiphany Function Attributes1308171 ! Node: H8/300 Function Attributes1310923 ! Node: IA-64 Function Attributes1312119 ! Node: M32C Function Attributes1313161 ! Node: M32R/D Function Attributes1315499 ! Node: m68k Function Attributes1316973 ! Node: MCORE Function Attributes1317917 ! Node: MeP Function Attributes1318728 ! Node: MicroBlaze Function Attributes1320029 ! Node: Microsoft Windows Function Attributes1321536 ! Node: MIPS Function Attributes1326105 ! Node: MSP430 Function Attributes1331723 ! Node: NDS32 Function Attributes1335571 ! Node: Nios II Function Attributes1337995 ! Node: Nvidia PTX Function Attributes1339292 ! Node: PowerPC Function Attributes1339907 ! Node: RISC-V Function Attributes1346962 ! Node: RL78 Function Attributes1347781 ! Node: RX Function Attributes1349020 ! Node: S/390 Function Attributes1351568 ! Node: SH Function Attributes1353396 ! Node: SPU Function Attributes1356817 ! Node: Symbian OS Function Attributes1357625 ! Node: V850 Function Attributes1357962 ! Node: Visium Function Attributes1358507 ! Node: x86 Function Attributes1359035 ! Node: Xstormy16 Function Attributes1380258 ! Node: Variable Attributes1380765 ! Node: Common Variable Attributes1382254 ! Node: ARC Variable Attributes1396022 ! Node: AVR Variable Attributes1396404 ! Node: Blackfin Variable Attributes1401566 ! Node: H8/300 Variable Attributes1402424 ! Node: IA-64 Variable Attributes1403497 ! Node: M32R/D Variable Attributes1404248 ! Node: MeP Variable Attributes1405031 ! Node: Microsoft Windows Variable Attributes1407124 ! Node: MSP430 Variable Attributes1409577 ! Node: Nvidia PTX Variable Attributes1410778 ! Node: PowerPC Variable Attributes1411395 ! Node: RL78 Variable Attributes1411952 ! Node: SPU Variable Attributes1412370 ! Node: V850 Variable Attributes1412735 ! Node: x86 Variable Attributes1413367 ! Node: Xstormy16 Variable Attributes1414423 ! Node: Type Attributes1414993 ! Node: Common Type Attributes1416337 ! Node: ARC Type Attributes1433186 ! Node: ARM Type Attributes1433658 ! Node: MeP Type Attributes1434440 ! Node: PowerPC Type Attributes1434842 ! Node: SPU Type Attributes1435831 ! Node: x86 Type Attributes1436250 ! Node: Label Attributes1437238 ! Node: Enumerator Attributes1439171 ! Node: Statement Attributes1440490 ! Node: Attribute Syntax1441973 ! Node: Function Prototypes1453231 ! Node: C++ Comments1455011 ! Node: Dollar Signs1455530 ! Node: Character Escapes1455995 ! Node: Alignment1456279 ! Node: Inline1457651 ! Node: Volatiles1462468 ! Node: Using Assembly Language with C1465367 ! Node: Basic Asm1466604 ! Node: Extended Asm1471964 ! Ref: Volatile1476051 ! Ref: AssemblerTemplate1480136 ! Ref: OutputOperands1484374 ! Ref: FlagOutputOperands1491325 ! Ref: InputOperands1493354 ! Ref: Clobbers and Scratch Registers1497622 ! Ref: GotoLabels1505778 ! Ref: x86Operandmodifiers1507913 ! Ref: x86floatingpointasmoperands1510114 ! Node: Constraints1513443 ! Node: Simple Constraints1514549 ! Node: Multi-Alternative1521863 ! Node: Modifiers1523538 ! Node: Machine Constraints1526336 ! Node: Asm Labels1586137 ! Node: Explicit Register Variables1587757 ! Ref: Explicit Reg Vars1587971 ! Node: Global Register Variables1588580 ! Ref: Global Reg Vars1588788 ! Node: Local Register Variables1592640 ! Ref: Local Reg Vars1592860 ! Node: Size of an asm1596167 ! Node: Alternate Keywords1597645 ! Node: Incomplete Enums1599144 ! Node: Function Names1599901 ! Node: Return Address1601799 ! Node: Vector Extensions1605740 ! Node: Offsetof1613035 ! Node: __sync Builtins1613868 ! Node: __atomic Builtins1620309 ! Node: Integer Overflow Builtins1633790 ! Node: x86 specific memory model extensions for transactional memory1640266 ! Node: Object Size Checking1641532 ! Node: Pointer Bounds Checker builtins1647571 ! Node: Other Builtins1653573 ! Node: Target Builtins1694714 ! Node: AArch64 Built-in Functions1696372 ! Node: Alpha Built-in Functions1696827 ! Node: Altera Nios II Built-in Functions1699875 ! Node: ARC Built-in Functions1704244 ! Node: ARC SIMD Built-in Functions1709456 ! Node: ARM iWMMXt Built-in Functions1718352 ! Node: ARM C Language Extensions (ACLE)1725348 ! Node: ARM Floating Point Status and Control Intrinsics1726687 ! Node: ARM ARMv8-M Security Extensions1727172 ! Node: AVR Built-in Functions1728517 ! Node: Blackfin Built-in Functions1732278 ! Node: FR-V Built-in Functions1732897 ! Node: Argument Types1733765 ! Node: Directly-mapped Integer Functions1735519 ! Node: Directly-mapped Media Functions1736603 ! Node: Raw read/write Functions1744809 ! Node: Other Built-in Functions1745717 ! Node: MIPS DSP Built-in Functions1746903 ! Node: MIPS Paired-Single Support1759400 ! Node: MIPS Loongson Built-in Functions1760899 ! Node: Paired-Single Arithmetic1767421 ! Node: Paired-Single Built-in Functions1768369 ! Node: MIPS-3D Built-in Functions1771036 ! Node: MIPS SIMD Architecture (MSA) Support1776414 ! Node: MIPS SIMD Architecture Built-in Functions1779254 ! Node: Other MIPS Built-in Functions1806084 ! Node: MSP430 Built-in Functions1807093 ! Node: NDS32 Built-in Functions1808494 ! Node: picoChip Built-in Functions1809787 ! Node: PowerPC Built-in Functions1811130 ! Node: PowerPC AltiVec/VSX Built-in Functions1845611 ! Node: PowerPC Hardware Transactional Memory Built-in Functions2014639 ! Node: PowerPC Atomic Memory Operation Functions2023150 ! Node: RX Built-in Functions2025685 ! Node: S/390 System z Built-in Functions2029703 ! Node: SH Built-in Functions2034933 ! Node: SPARC VIS Built-in Functions2036661 ! Node: SPU Built-in Functions2045190 ! Node: TI C6X Built-in Functions2046907 ! Node: TILE-Gx Built-in Functions2047932 ! Node: TILEPro Built-in Functions2049051 ! Node: x86 Built-in Functions2050151 ! Node: x86 transactional memory intrinsics2111423 ! Node: x86 control-flow protection intrinsics2114690 ! Node: Target Format Checks2116461 ! Node: Solaris Format Checks2116893 ! Node: Darwin Format Checks2117319 ! Node: Pragmas2118137 ! Node: AArch64 Pragmas2118910 ! Node: ARM Pragmas2119367 ! Node: M32C Pragmas2119994 ! Node: MeP Pragmas2121066 ! Node: RS/6000 and PowerPC Pragmas2123134 ! Node: S/390 Pragmas2123874 ! Node: Darwin Pragmas2124440 ! Node: Solaris Pragmas2125493 ! Node: Symbol-Renaming Pragmas2126657 ! Node: Structure-Layout Pragmas2128273 ! Node: Weak Pragmas2130553 ! Node: Diagnostic Pragmas2131288 ! Node: Visibility Pragmas2134397 ! Node: Push/Pop Macro Pragmas2135082 ! Node: Function Specific Option Pragmas2136055 ! Node: Loop-Specific Pragmas2137924 ! Node: Unnamed Fields2139524 ! Node: Thread-Local2141721 ! Node: C99 Thread-Local Edits2143827 ! Node: C++98 Thread-Local Edits2145825 ! Node: Binary constants2149270 ! Node: C++ Extensions2149941 ! Node: C++ Volatiles2151571 ! Node: Restricted Pointers2153919 ! Node: Vague Linkage2155510 ! Node: C++ Interface2159133 ! Ref: C++ Interface-Footnote-12162930 ! Node: Template Instantiation2163068 ! Node: Bound member functions2170551 ! Node: C++ Attributes2172083 ! Node: Function Multiversioning2176155 ! Node: Type Traits2177962 ! Node: C++ Concepts2184727 ! Node: Deprecated Features2186226 ! Node: Backwards Compatibility2188317 ! Node: Objective-C2190151 ! Node: GNU Objective-C runtime API2190758 ! Node: Modern GNU Objective-C runtime API2191765 ! Node: Traditional GNU Objective-C runtime API2194201 ! Node: Executing code before main2194928 ! Node: What you can and what you cannot do in +load2197672 ! Node: Type encoding2200042 ! Node: Legacy type encoding2205183 ! Node: @encode2206273 ! Node: Method signatures2206818 ! Node: Garbage Collection2208810 ! Node: Constant string objects2211500 ! Node: compatibility_alias2214009 ! Node: Exceptions2214734 ! Node: Synchronization2217444 ! Node: Fast enumeration2218628 ! Node: Using fast enumeration2218940 ! Node: c99-like fast enumeration syntax2220151 ! Node: Fast enumeration details2220854 ! Node: Fast enumeration protocol2223194 ! Node: Messaging with the GNU Objective-C runtime2226346 ! Node: Dynamically registering methods2227718 ! Node: Forwarding hook2229409 ! Node: Compatibility2232450 ! Node: Gcov2239006 ! Node: Gcov Intro2239541 ! Node: Invoking Gcov2242259 ! Node: Gcov and Optimization2263204 ! Node: Gcov Data Files2266573 ! Node: Cross-profiling2267990 ! Node: Gcov-tool2269844 ! Node: Gcov-tool Intro2270269 ! Node: Invoking Gcov-tool2272239 ! Node: Gcov-dump2274817 ! Node: Gcov-dump Intro2275139 ! Node: Invoking Gcov-dump2275406 ! Node: Trouble2276075 ! Node: Actual Bugs2277493 ! Node: Interoperation2277940 ! Node: Incompatibilities2284831 ! Node: Fixed Headers2292983 ! Node: Standard Libraries2294641 ! Node: Disappointments2296013 ! Node: C++ Misunderstandings2300372 ! Node: Static Definitions2301183 ! Node: Name lookup2302236 ! Ref: Name lookup-Footnote-12307017 ! Node: Temporaries2307206 ! Node: Copy Assignment2309182 ! Node: Non-bugs2310989 ! Node: Warnings and Errors2321495 ! Node: Bugs2323257 ! Node: Bug Criteria2323724 ! Node: Bug Reporting2325934 ! Node: Service2326152 ! Node: Contributing2326971 ! Node: Funding2327711 ! Node: GNU Project2330201 ! Node: Copying2330847 ! Node: GNU Free Documentation License2368356 ! Node: Contributors2393474 ! Node: Option Index2434409 ! Node: Keyword Index2699110  End Tag Table --- 63897,64298 ---- Node: Standards6012 Node: Invoking GCC19170 Node: Option Summary23371 ! Node: Overall Options75929 ! Node: Invoking G++90921 ! Node: C Dialect Options92444 ! Node: C++ Dialect Options111308 ! Node: Objective-C and Objective-C++ Dialect Options148292 ! Node: Diagnostic Message Formatting Options159522 ! Node: Warning Options168334 ! Ref: Wtrigraphs254493 ! Node: Debugging Options291080 ! Node: Optimize Options309956 ! Ref: Type-punning373658 ! Node: Instrumentation Options465396 ! Node: Preprocessor Options507561 ! Ref: dashMF512408 ! Ref: fdollars-in-identifiers516987 ! Node: Assembler Options529237 ! Node: Link Options529928 ! Ref: Link Options-Footnote-1544243 ! Node: Directory Options544579 ! Node: Code Gen Options552982 ! Node: Developer Options581647 ! Node: Submodel Options620559 ! Node: AArch64 Options622317 ! Ref: aarch64-feature-modifiers632822 ! Node: Adapteva Epiphany Options635213 ! Node: ARC Options641160 ! Node: ARM Options662077 ! Node: AVR Options697033 ! Node: Blackfin Options721625 ! Node: C6X Options729519 ! Node: CRIS Options731062 ! Node: CR16 Options734801 ! Node: Darwin Options735712 ! Node: DEC Alpha Options743152 ! Node: FR30 Options754768 ! Node: FT32 Options755333 ! Node: FRV Options756279 ! Node: GNU/Linux Options763043 ! Node: H8/300 Options764424 ! Node: HPPA Options765876 ! Node: IA-64 Options775408 ! Node: LM32 Options783536 ! Node: M32C Options784059 ! Node: M32R/D Options785332 ! Node: M680x0 Options788877 ! Node: MCore Options803029 ! Node: MeP Options804531 ! Node: MicroBlaze Options808491 ! Node: MIPS Options811277 ! Node: MMIX Options846729 ! Node: MN10300 Options849206 ! Node: Moxie Options851747 ! Node: MSP430 Options852234 ! Node: NDS32 Options856938 ! Node: Nios II Options859108 ! Node: Nvidia PTX Options871271 ! Node: PDP-11 Options873533 ! Node: picoChip Options875230 ! Node: PowerPC Options877368 ! Node: PowerPC SPE Options877596 ! Node: RISC-V Options906102 ! Node: RL78 Options910486 ! Node: RS/6000 and PowerPC Options914261 ! Node: RX Options956242 ! Node: S/390 and zSeries Options964844 ! Node: Score Options975309 ! Node: SH Options976158 ! Node: Solaris 2 Options991300 ! Node: SPARC Options992538 ! Node: SPU Options1008159 ! Node: System V Options1013098 ! Node: TILE-Gx Options1013924 ! Node: TILEPro Options1014942 ! Node: V850 Options1015446 ! Node: VAX Options1022133 ! Node: Visium Options1022671 ! Node: VMS Options1024979 ! Node: VxWorks Options1025795 ! Node: x86 Options1026947 ! Node: x86 Windows Options1085687 ! Node: Xstormy16 Options1088492 ! Node: Xtensa Options1088786 ! Node: zSeries Options1093935 ! Node: Spec Files1094131 ! Node: Environment Variables1116289 ! Node: Precompiled Headers1125015 ! Node: C Implementation1131021 ! Node: Translation implementation1132711 ! Node: Environment implementation1133302 ! Node: Identifiers implementation1133856 ! Node: Characters implementation1134942 ! Node: Integers implementation1138592 ! Node: Floating point implementation1140641 ! Node: Arrays and pointers implementation1143704 ! Ref: Arrays and pointers implementation-Footnote-11145164 ! Node: Hints implementation1145290 ! Node: Structures unions enumerations and bit-fields implementation1146785 ! Node: Qualifiers implementation1149009 ! Node: Declarators implementation1150789 ! Node: Statements implementation1151130 ! Node: Preprocessing directives implementation1151456 ! Node: Library functions implementation1153777 ! Node: Architecture implementation1154426 ! Node: Locale-specific behavior implementation1156071 ! Node: C++ Implementation1156376 ! Node: Conditionally-supported behavior1157659 ! Node: Exception handling1158276 ! Node: C Extensions1158743 ! Node: Statement Exprs1163944 ! Node: Local Labels1168421 ! Node: Labels as Values1171394 ! Ref: Labels as Values-Footnote-11173921 ! Node: Nested Functions1174106 ! Node: Constructing Calls1178064 ! Node: Typeof1182781 ! Node: Conditionals1186710 ! Node: __int1281187599 ! Node: Long Long1188124 ! Node: Complex1189600 ! Node: Floating Types1192368 ! Node: Half-Precision1195835 ! Node: Decimal Float1198246 ! Node: Hex Floats1200100 ! Node: Fixed-Point1201137 ! Node: Named Address Spaces1204395 ! Ref: AVR Named Address Spaces1205081 ! Node: Zero Length1212104 ! Node: Empty Structures1215144 ! Node: Variable Length1215550 ! Node: Variadic Macros1218268 ! Node: Escaped Newlines1220646 ! Node: Subscripting1221507 ! Node: Pointer Arith1222232 ! Node: Pointers to Arrays1222806 ! Node: Initializers1223551 ! Node: Compound Literals1224052 ! Node: Designated Inits1227619 ! Node: Case Ranges1231355 ! Node: Cast to Union1232036 ! Node: Mixed Declarations1233162 ! Node: Function Attributes1233672 ! Node: Common Function Attributes1237060 ! Node: AArch64 Function Attributes1288569 ! Node: ARC Function Attributes1293975 ! Node: ARM Function Attributes1296297 ! Node: AVR Function Attributes1301102 ! Node: Blackfin Function Attributes1305637 ! Node: CR16 Function Attributes1308135 ! Node: Epiphany Function Attributes1308662 ! Node: H8/300 Function Attributes1311414 ! Node: IA-64 Function Attributes1312610 ! Node: M32C Function Attributes1313652 ! Node: M32R/D Function Attributes1315990 ! Node: m68k Function Attributes1317464 ! Node: MCORE Function Attributes1318408 ! Node: MeP Function Attributes1319219 ! Node: MicroBlaze Function Attributes1320520 ! Node: Microsoft Windows Function Attributes1322027 ! Node: MIPS Function Attributes1326596 ! Node: MSP430 Function Attributes1332214 ! Node: NDS32 Function Attributes1336062 ! Node: Nios II Function Attributes1338486 ! Node: Nvidia PTX Function Attributes1339783 ! Node: PowerPC Function Attributes1340398 ! Node: RISC-V Function Attributes1347453 ! Node: RL78 Function Attributes1348272 ! Node: RX Function Attributes1349511 ! Node: S/390 Function Attributes1352059 ! Node: SH Function Attributes1353887 ! Node: SPU Function Attributes1357308 ! Node: Symbian OS Function Attributes1358116 ! Node: V850 Function Attributes1358453 ! Node: Visium Function Attributes1358998 ! Node: x86 Function Attributes1359526 ! Node: Xstormy16 Function Attributes1380749 ! Node: Variable Attributes1381256 ! Node: Common Variable Attributes1382745 ! Node: ARC Variable Attributes1396513 ! Node: AVR Variable Attributes1396895 ! Node: Blackfin Variable Attributes1402057 ! Node: H8/300 Variable Attributes1402915 ! Node: IA-64 Variable Attributes1403988 ! Node: M32R/D Variable Attributes1404739 ! Node: MeP Variable Attributes1405522 ! Node: Microsoft Windows Variable Attributes1407615 ! Node: MSP430 Variable Attributes1410068 ! Node: Nvidia PTX Variable Attributes1411269 ! Node: PowerPC Variable Attributes1411886 ! Node: RL78 Variable Attributes1412443 ! Node: SPU Variable Attributes1412861 ! Node: V850 Variable Attributes1413226 ! Node: x86 Variable Attributes1413858 ! Node: Xstormy16 Variable Attributes1414914 ! Node: Type Attributes1415484 ! Node: Common Type Attributes1416828 ! Node: ARC Type Attributes1433677 ! Node: ARM Type Attributes1434149 ! Node: MeP Type Attributes1434931 ! Node: PowerPC Type Attributes1435333 ! Node: SPU Type Attributes1436322 ! Node: x86 Type Attributes1436741 ! Node: Label Attributes1437729 ! Node: Enumerator Attributes1439662 ! Node: Statement Attributes1440981 ! Node: Attribute Syntax1442464 ! Node: Function Prototypes1453722 ! Node: C++ Comments1455502 ! Node: Dollar Signs1456021 ! Node: Character Escapes1456486 ! Node: Alignment1456770 ! Node: Inline1458142 ! Node: Volatiles1462959 ! Node: Using Assembly Language with C1465858 ! Node: Basic Asm1467095 ! Node: Extended Asm1472455 ! Ref: Volatile1476542 ! Ref: AssemblerTemplate1480627 ! Ref: OutputOperands1484865 ! Ref: FlagOutputOperands1491816 ! Ref: InputOperands1493845 ! Ref: Clobbers and Scratch Registers1498113 ! Ref: GotoLabels1506269 ! Ref: x86Operandmodifiers1508404 ! Ref: x86floatingpointasmoperands1510605 ! Node: Constraints1513934 ! Node: Simple Constraints1515040 ! Node: Multi-Alternative1522354 ! Node: Modifiers1524029 ! Node: Machine Constraints1526827 ! Node: Asm Labels1586627 ! Node: Explicit Register Variables1588247 ! Ref: Explicit Reg Vars1588461 ! Node: Global Register Variables1589070 ! Ref: Global Reg Vars1589278 ! Node: Local Register Variables1593130 ! Ref: Local Reg Vars1593350 ! Node: Size of an asm1596657 ! Node: Alternate Keywords1598135 ! Node: Incomplete Enums1599634 ! Node: Function Names1600391 ! Node: Return Address1602289 ! Node: Vector Extensions1606230 ! Node: Offsetof1613525 ! Node: __sync Builtins1614358 ! Node: __atomic Builtins1620799 ! Node: Integer Overflow Builtins1634280 ! Node: x86 specific memory model extensions for transactional memory1640756 ! Node: Object Size Checking1642022 ! Node: Pointer Bounds Checker builtins1648061 ! Node: Other Builtins1654063 ! Node: Target Builtins1695204 ! Node: AArch64 Built-in Functions1696862 ! Node: Alpha Built-in Functions1697317 ! Node: Altera Nios II Built-in Functions1700365 ! Node: ARC Built-in Functions1704734 ! Node: ARC SIMD Built-in Functions1709946 ! Node: ARM iWMMXt Built-in Functions1718842 ! Node: ARM C Language Extensions (ACLE)1725838 ! Node: ARM Floating Point Status and Control Intrinsics1727177 ! Node: ARM ARMv8-M Security Extensions1727662 ! Node: AVR Built-in Functions1729007 ! Node: Blackfin Built-in Functions1732768 ! Node: FR-V Built-in Functions1733387 ! Node: Argument Types1734255 ! Node: Directly-mapped Integer Functions1736009 ! Node: Directly-mapped Media Functions1737093 ! Node: Raw read/write Functions1745299 ! Node: Other Built-in Functions1746207 ! Node: MIPS DSP Built-in Functions1747393 ! Node: MIPS Paired-Single Support1759890 ! Node: MIPS Loongson Built-in Functions1761389 ! Node: Paired-Single Arithmetic1767911 ! Node: Paired-Single Built-in Functions1768859 ! Node: MIPS-3D Built-in Functions1771526 ! Node: MIPS SIMD Architecture (MSA) Support1776904 ! Node: MIPS SIMD Architecture Built-in Functions1779744 ! Node: Other MIPS Built-in Functions1806574 ! Node: MSP430 Built-in Functions1807583 ! Node: NDS32 Built-in Functions1808984 ! Node: picoChip Built-in Functions1810277 ! Node: PowerPC Built-in Functions1811620 ! Node: PowerPC AltiVec/VSX Built-in Functions1846101 ! Node: PowerPC Hardware Transactional Memory Built-in Functions2015683 ! Node: PowerPC Atomic Memory Operation Functions2024194 ! Node: RX Built-in Functions2026729 ! Node: S/390 System z Built-in Functions2030747 ! Node: SH Built-in Functions2035977 ! Node: SPARC VIS Built-in Functions2037705 ! Node: SPU Built-in Functions2046234 ! Node: TI C6X Built-in Functions2047951 ! Node: TILE-Gx Built-in Functions2048976 ! Node: TILEPro Built-in Functions2050095 ! Node: x86 Built-in Functions2051195 ! Node: x86 transactional memory intrinsics2112467 ! Node: x86 control-flow protection intrinsics2115734 ! Node: Target Format Checks2117505 ! Node: Solaris Format Checks2117937 ! Node: Darwin Format Checks2118363 ! Node: Pragmas2119181 ! Node: AArch64 Pragmas2119954 ! Node: ARM Pragmas2120411 ! Node: M32C Pragmas2121038 ! Node: MeP Pragmas2122110 ! Node: RS/6000 and PowerPC Pragmas2124178 ! Node: S/390 Pragmas2124918 ! Node: Darwin Pragmas2125484 ! Node: Solaris Pragmas2126537 ! Node: Symbol-Renaming Pragmas2127701 ! Node: Structure-Layout Pragmas2129317 ! Node: Weak Pragmas2131597 ! Node: Diagnostic Pragmas2132332 ! Node: Visibility Pragmas2135441 ! Node: Push/Pop Macro Pragmas2136126 ! Node: Function Specific Option Pragmas2137099 ! Node: Loop-Specific Pragmas2138968 ! Node: Unnamed Fields2140568 ! Node: Thread-Local2142765 ! Node: C99 Thread-Local Edits2144871 ! Node: C++98 Thread-Local Edits2146869 ! Node: Binary constants2150314 ! Node: C++ Extensions2150985 ! Node: C++ Volatiles2152615 ! Node: Restricted Pointers2154963 ! Node: Vague Linkage2156554 ! Node: C++ Interface2160177 ! Ref: C++ Interface-Footnote-12163974 ! Node: Template Instantiation2164112 ! Node: Bound member functions2171595 ! Node: C++ Attributes2173127 ! Node: Function Multiversioning2177199 ! Node: Type Traits2179006 ! Node: C++ Concepts2185771 ! Node: Deprecated Features2187270 ! Node: Backwards Compatibility2189361 ! Node: Objective-C2191195 ! Node: GNU Objective-C runtime API2191802 ! Node: Modern GNU Objective-C runtime API2192809 ! Node: Traditional GNU Objective-C runtime API2195245 ! Node: Executing code before main2195972 ! Node: What you can and what you cannot do in +load2198716 ! Node: Type encoding2201086 ! Node: Legacy type encoding2206227 ! Node: @encode2207317 ! Node: Method signatures2207862 ! Node: Garbage Collection2209854 ! Node: Constant string objects2212544 ! Node: compatibility_alias2215053 ! Node: Exceptions2215778 ! Node: Synchronization2218488 ! Node: Fast enumeration2219672 ! Node: Using fast enumeration2219984 ! Node: c99-like fast enumeration syntax2221195 ! Node: Fast enumeration details2221898 ! Node: Fast enumeration protocol2224238 ! Node: Messaging with the GNU Objective-C runtime2227390 ! Node: Dynamically registering methods2228762 ! Node: Forwarding hook2230453 ! Node: Compatibility2233494 ! Node: Gcov2240050 ! Node: Gcov Intro2240585 ! Node: Invoking Gcov2243303 ! Node: Gcov and Optimization2264248 ! Node: Gcov Data Files2267617 ! Node: Cross-profiling2269034 ! Node: Gcov-tool2270888 ! Node: Gcov-tool Intro2271313 ! Node: Invoking Gcov-tool2273283 ! Node: Gcov-dump2275861 ! Node: Gcov-dump Intro2276183 ! Node: Invoking Gcov-dump2276450 ! Node: Trouble2277119 ! Node: Actual Bugs2278537 ! Node: Interoperation2278984 ! Node: Incompatibilities2285875 ! Node: Fixed Headers2294027 ! Node: Standard Libraries2295685 ! Node: Disappointments2297057 ! Node: C++ Misunderstandings2301416 ! Node: Static Definitions2302227 ! Node: Name lookup2303280 ! Ref: Name lookup-Footnote-12308061 ! Node: Temporaries2308250 ! Node: Copy Assignment2310226 ! Node: Non-bugs2312033 ! Node: Warnings and Errors2322539 ! Node: Bugs2324301 ! Node: Bug Criteria2324768 ! Node: Bug Reporting2326978 ! Node: Service2327196 ! Node: Contributing2328015 ! Node: Funding2328756 ! Node: GNU Project2331246 ! Node: Copying2331892 ! Node: GNU Free Documentation License2369401 ! Node: Contributors2394519 ! Node: Option Index2435454 ! Node: Keyword Index2700228  End Tag Table diff -Nrcpad gcc-8.3.0/gcc/doc/gccinstall.info gcc-8.4.0/gcc/doc/gccinstall.info *** gcc-8.3.0/gcc/doc/gccinstall.info Fri Feb 22 14:35:27 2019 --- gcc-8.4.0/gcc/doc/gccinstall.info Wed Mar 4 08:45:24 2020 *************** Perl version between 5.6.1 and 5.6.24 *** 210,217 **** Necessary when regenerating 'Makefile' dependencies in libiberty. Necessary when regenerating 'libiberty/functions.texi'. Necessary when generating manpages from Texinfo manuals. Used by various ! scripts to generate some files included in SVN (mainly ! Unicode-related and rarely changing) from source tables. Used by 'automake'. --- 210,217 ---- Necessary when regenerating 'Makefile' dependencies in libiberty. Necessary when regenerating 'libiberty/functions.texi'. Necessary when generating manpages from Texinfo manuals. Used by various ! scripts to generate some files included in the source repository ! (mainly Unicode-related and rarely changing) from source tables. Used by 'automake'. *************** Flex version 2.5.4 (or later) *** 328,335 **** Necessary when modifying '*.l' files. Necessary to build GCC during development because the generated ! output files are not included in the SVN repository. They are ! included in releases. Texinfo version 4.7 (or later) --- 328,335 ---- Necessary when modifying '*.l' files. Necessary to build GCC during development because the generated ! output files are not included in the version-controlled source ! repository. They are included in releases. Texinfo version 4.7 (or later) *************** Texinfo version 4.7 (or later) *** 341,348 **** is required for 'make pdf'. Necessary to build GCC documentation during development because the ! generated output files are not included in the SVN repository. ! They are included in releases. TeX (any working version) --- 341,348 ---- is required for 'make pdf'. Necessary to build GCC documentation during development because the ! generated output files are not included in the repository. They ! are included in releases. TeX (any working version) *************** Sphinx version 1.0 (or later) *** 355,365 **** Necessary to regenerate 'jit/docs/_build/texinfo' from the '.rst' files in the directories below 'jit/docs'. ! SVN (any version) SSH (any version) ! Necessary to access the SVN repository. Public releases and weekly ! snapshots of the development sources are also available via FTP. GNU diffutils version 2.7 (or later) --- 355,366 ---- 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) *************** File: gccinstall.info, Node: Downloadin *** 376,383 **** 3 Downloading GCC ***************** ! GCC is distributed via SVN and FTP tarballs compressed with 'gzip' or ! 'bzip2'. Please refer to the releases web page for information on how to obtain GCC. --- 377,384 ---- 3 Downloading GCC ***************** ! GCC is distributed via git and via HTTPS as tarballs compressed with ! 'gzip' or 'bzip2'. Please refer to the releases web page for information on how to obtain GCC. *************** native and cross targets. *** 419,427 **** We use SRCDIR to refer to the toplevel source directory for GCC; we use OBJDIR to refer to the toplevel build/object directory. ! If you obtained the sources via SVN, SRCDIR must refer to the top ! 'gcc' directory, the one where the 'MAINTAINERS' file can be found, and ! not its 'gcc' subdirectory, otherwise the build will fail. If either SRCDIR or OBJDIR is located on an automounted NFS file system, the shell's built-in 'pwd' command will return temporary --- 420,429 ---- We use SRCDIR to refer to the toplevel source directory for GCC; we use OBJDIR to refer to the toplevel build/object directory. ! If you obtained the sources by cloning the repository, SRCDIR must ! refer to the top 'gcc' directory, the one where the 'MAINTAINERS' file ! can be found, and not its 'gcc' subdirectory, otherwise the build will ! fail. If either SRCDIR or OBJDIR is located on an automounted NFS file system, the shell's built-in 'pwd' command will return temporary *************** option. *** 1234,1243 **** '--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 SVN development tree. When building GCC ! from that development tree, or from one of our snapshots, those ! generated files are placed in your build directory, which allows ! for the source to be in a readonly directory. If you configure with '--enable-generated-files-in-srcdir' then those generated files will go into the source directory. This is --- 1236,1246 ---- '--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, or from one of our ! snapshots, those generated files are placed in your build ! directory, which allows for the source to be in a readonly ! directory. If you configure with '--enable-generated-files-in-srcdir' then those generated files will go into the source directory. This is *************** option. *** 1490,1529 **** '-Werror' are controlled by the Makefiles. '--enable-checking' '--enable-checking=LIST' ! When you specify this option, the compiler is built to perform ! internal consistency checks of the requested complexity. This does ! not change the generated code, but adds error checking within the ! compiler. This will slow down the compiler and may only work ! properly if you are building the compiler with GCC. This is ! 'yes,extra' by default when building from SVN or snapshots, but ! 'release' for releases. The default for building the stage1 ! compiler is 'yes'. More control over the checks may be had by ! specifying LIST. The categories of checks available are 'yes' ! (most common checks 'assert,misc,tree,gc,rtlflag,runtime'), 'no' (no checks at all), 'all' (all but 'valgrind'), 'release' (cheapest ! checks 'assert,runtime') or 'none' (same as 'no'). Individual ! checks can be enabled with these flags 'assert', 'df', 'fold', ! 'gc', 'gcac', 'misc', 'rtl', 'rtlflag', 'runtime', 'tree', 'extra' ! and 'valgrind'. 'extra' adds for 'misc' checking extra checks that ! might affect code generation and should therefore not differ ! between stage1 and later stages. The 'valgrind' check requires the external 'valgrind' simulator, ! available from . The 'df', 'rtl', 'gcac' and ! 'valgrind' checks are very expensive. To disable all checking, ! '--disable-checking' or '--enable-checking=none' must be explicitly ! requested. Disabling assertions will make the compiler and runtime ! slightly faster but increase the risk of undetected internal errors ! causing wrong code to be generated. '--disable-stage1-checking' '--enable-stage1-checking' '--enable-stage1-checking=LIST' ! If no '--enable-checking' option is specified the stage1 compiler ! will be built with 'yes' checking enabled, otherwise the stage1 ! checking flags are the same as specified by '--enable-checking'. ! To build the stage1 compiler with different checking options use '--enable-stage1-checking'. The list of checking options is the same as for '--enable-checking'. If your system is too slow or too small to bootstrap a released compiler with checking for stage1 --- 1493,1545 ---- '-Werror' are 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 properly if you are building the compiler with ! GCC. ! ! When the option is not specified, the active set of checks depends ! on context. Namely, bootstrap stage 1 defaults to ! '--enable-checking=yes', builds from release branches or release ! archives default to '--enable-checking=release', and otherwise ! '--enable-checking=yes,extra' is used. When the option is ! specified without a LIST, the result is the same as ! '--enable-checking=yes'. Likewise, '--disable-checking' is ! equivalent to '--enable-checking=no'. ! ! The categories of checks available in LIST are 'yes' (most common ! checks 'assert,misc,gc,gimple,rtlflag,runtime,tree,types'), 'no' (no checks at all), 'all' (all but 'valgrind'), 'release' (cheapest ! checks 'assert,runtime') or 'none' (same as 'no'). 'release' ! checks are always on and to disable them '--disable-checking' or ! '--enable-checking=no[,]' must be explicitly ! requested. Disabling assertions makes the compiler and runtime ! slightly faster but increases the risk of undetected internal ! errors causing wrong code to be generated. ! ! Individual checks can be enabled with these flags: 'assert', 'df', ! 'extra', 'fold', 'gc', 'gcac', 'gimple', 'misc', 'rtl', 'rtlflag', ! 'runtime', 'tree', 'types' and 'valgrind'. 'extra' extends 'misc' ! checking with extra checks that might affect code generation and ! should therefore not differ between stage1 and later stages in ! bootstrap. The 'valgrind' check requires the external 'valgrind' simulator, ! available from . The 'rtl' checks are ! expensive and the 'df', 'gcac' and 'valgrind' checks are very ! 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 '--enable-checking'. To build ! the stage1 compiler with different checking options use '--enable-stage1-checking'. The list of checking options is the same as for '--enable-checking'. If your system is too slow or too small to bootstrap a released compiler with checking for stage1 *************** occur, this could be the cause. *** 2047,2063 **** The solution is not to use such a directory for building GCC. ! Similarly, when building from SVN or snapshots, or if you modify ! '*.l' files, you need the Flex lexical analyzer generator installed. If ! you do not modify '*.l' files, releases contain the Flex-generated files ! and you do not need Flex installed to build them. There is still one ! Flex-based lexical analyzer (part of the build machinery, not of GCC ! itself) that is used even if you only build the C front end. ! When building from SVN or snapshots, or if you modify Texinfo ! documentation, you need version 4.7 or later of Texinfo installed if you ! want Info documentation to be regenerated. Releases contain Info ! documentation pre-built for the unmodified documentation in the release. 5.1 Building a native compiler ============================== --- 2063,2081 ---- The solution is not to use such a directory for building GCC. ! Similarly, when building from the source repository or snapshots, or ! if you modify '*.l' files, you need the Flex lexical analyzer generator ! installed. If you do not modify '*.l' files, releases contain the ! Flex-generated files and you do not need Flex installed to build them. ! There is still one Flex-based lexical analyzer (part of the build ! machinery, not of GCC itself) that is used even if you only build the C ! front end. ! When building from the source repository or snapshots, or if you ! modify Texinfo documentation, you need version 4.7 or later of Texinfo ! installed if you want Info documentation to be regenerated. Releases ! contain Info documentation pre-built for the unmodified documentation in ! the release. 5.1 Building a native compiler ============================== *************** Concept Index *** 4583,4589 **** * Menu: * Binaries: Binaries. (line 6) ! * build_configargs: Configuration. (line 1553) * Configuration: Configuration. (line 6) * configurations supported by GCC: Configurations. (line 6) * Downloading GCC: Downloading the source. --- 4601,4607 ---- * Menu: * Binaries: Binaries. (line 6) ! * build_configargs: Configuration. (line 1568) * Configuration: Configuration. (line 6) * configurations supported by GCC: Configurations. (line 6) * Downloading GCC: Downloading the source. *************** Concept Index *** 4593,4599 **** * FDL, GNU Free Documentation License: GNU Free Documentation License. (line 6) * Host specific installation: Specific. (line 6) ! * host_configargs: Configuration. (line 1557) * Installing GCC: Binaries: Binaries. (line 6) * Installing GCC: Building: Building. (line 6) * Installing GCC: Configuration: Configuration. (line 6) --- 4611,4617 ---- * FDL, GNU Free Documentation License: GNU Free Documentation License. (line 6) * Host specific installation: Specific. (line 6) ! * host_configargs: Configuration. (line 1572) * Installing GCC: Binaries: Binaries. (line 6) * Installing GCC: Building: Building. (line 6) * Installing GCC: Configuration: Configuration. (line 6) *************** Concept Index *** 4603,4609 **** * Specific installation notes: Specific. (line 6) * Target specific installation: Specific. (line 6) * Target specific installation notes: Specific. (line 6) ! * target_configargs: Configuration. (line 1561) * Testing: Testing. (line 6) * Testsuite: Testing. (line 6) --- 4621,4627 ---- * Specific installation notes: Specific. (line 6) * Target specific installation: Specific. (line 6) * Target specific installation notes: Specific. (line 6) ! * target_configargs: Configuration. (line 1576) * Testing: Testing. (line 6) * Testsuite: Testing. (line 6) *************** Tag Table: *** 4613,4713 **** Node: Top1696 Node: Installing GCC2254 Node: Prerequisites3888 ! Node: Downloading the source14444 ! Node: Configuration16106 ! Ref: with-gnu-as31706 ! Ref: with-as32601 ! Ref: with-gnu-ld34014 ! Ref: WithAixSoname54473 ! Ref: AixLdCommand55134 ! Node: Building90171 ! Node: Testing106502 ! Node: Final install114374 ! Node: Binaries119674 ! Node: Specific120801 ! Ref: aarch64-x-x121308 ! Ref: alpha-x-x122740 ! Ref: amd64-x-solaris210123149 ! Ref: arc-x-elf32123252 ! Ref: arc-linux-uclibc123428 ! Ref: arm-x-eabi123569 ! Ref: avr123822 ! Ref: bfin124403 ! Ref: cr16124645 ! Ref: cris125061 ! Ref: dos125759 ! Ref: epiphany-x-elf126082 ! Ref: x-x-freebsd126187 ! Ref: ft32-x-elf127987 ! Ref: h8300-hms128085 ! Ref: hppa-hp-hpux128437 ! Ref: hppa-hp-hpux10130809 ! Ref: hppa-hp-hpux11131222 ! Ref: x-x-linux-gnu136624 ! Ref: ix86-x-linux136817 ! Ref: ix86-x-solaris210137130 ! Ref: ia64-x-linux138475 ! Ref: ia64-x-hpux139245 ! Ref: x-ibm-aix139800 ! Ref: TransferAixShobj143462 ! Ref: iq2000-x-elf147272 ! Ref: lm32-x-elf147412 ! Ref: lm32-x-uclinux147516 ! Ref: m32c-x-elf147644 ! Ref: m32r-x-elf147746 ! Ref: m68k-x-x147848 ! Ref: m68k-x-uclinux148886 ! Ref: microblaze-x-elf149131 ! Ref: mips-x-x149250 ! Ref: moxie-x-elf151160 ! Ref: msp430-x-elf151207 ! Ref: nds32le-x-elf151310 ! Ref: nds32be-x-elf151382 ! Ref: nvptx-x-none151451 ! Ref: powerpc-x-x152014 ! Ref: powerpc-x-darwin152205 ! Ref: powerpc-x-elf152699 ! Ref: powerpc-x-linux-gnu152784 ! Ref: powerpc-x-netbsd152879 ! Ref: powerpc-x-eabisim152967 ! Ref: powerpc-x-eabi153093 ! Ref: powerpcle-x-elf153169 ! Ref: powerpcle-x-eabisim153261 ! Ref: powerpcle-x-eabi153394 ! Ref: rl78-x-elf153477 ! Ref: riscv32-x-elf153583 ! Ref: riscv32-x-linux153793 ! Ref: riscv64-x-elf153971 ! Ref: riscv64-x-linux154181 ! Ref: rx-x-elf154359 ! Ref: s390-x-linux154405 ! Ref: s390x-x-linux154477 ! Ref: s390x-ibm-tpf154564 ! Ref: x-x-solaris2154695 ! Ref: sparc-x-x158562 ! Ref: sparc-sun-solaris2159064 ! Ref: sparc-sun-solaris210160203 ! Ref: sparc-x-linux160578 ! Ref: sparc64-x-solaris2160609 ! Ref: sparcv9-x-solaris2160942 ! Ref: c6x-x-x161029 ! Ref: tilegx-*-linux161121 ! Ref: tilegxbe-*-linux161263 ! Ref: tilepro-*-linux161406 ! Ref: visium-x-elf161527 ! Ref: x-x-vxworks161635 ! Ref: x86-64-x-x163158 ! Ref: x86-64-x-solaris210163486 ! Ref: xtensa-x-elf164150 ! Ref: xtensa-x-linux164821 ! Ref: windows165162 ! Ref: x-x-cygwin167003 ! Ref: x-x-mingw32167556 ! Ref: older167782 ! Ref: elf169899 ! Node: Old170157 ! Node: Configurations173290 ! Node: GNU Free Documentation License176828 ! Node: Concept Index201956  End Tag Table --- 4631,4731 ---- Node: Top1696 Node: Installing GCC2254 Node: Prerequisites3888 ! Node: Downloading the source14491 ! Node: Configuration16162 ! Ref: with-gnu-as31780 ! Ref: with-as32675 ! Ref: with-gnu-ld34088 ! Ref: WithAixSoname54559 ! Ref: AixLdCommand55220 ! Node: Building90687 ! Node: Testing107053 ! Node: Final install114925 ! Node: Binaries120225 ! Node: Specific121352 ! Ref: aarch64-x-x121859 ! Ref: alpha-x-x123291 ! Ref: amd64-x-solaris210123700 ! Ref: arc-x-elf32123803 ! Ref: arc-linux-uclibc123979 ! Ref: arm-x-eabi124120 ! Ref: avr124373 ! Ref: bfin124954 ! Ref: cr16125196 ! Ref: cris125612 ! Ref: dos126310 ! Ref: epiphany-x-elf126633 ! Ref: x-x-freebsd126738 ! Ref: ft32-x-elf128538 ! Ref: h8300-hms128636 ! Ref: hppa-hp-hpux128988 ! Ref: hppa-hp-hpux10131360 ! Ref: hppa-hp-hpux11131773 ! Ref: x-x-linux-gnu137175 ! Ref: ix86-x-linux137368 ! Ref: ix86-x-solaris210137681 ! Ref: ia64-x-linux139026 ! Ref: ia64-x-hpux139796 ! Ref: x-ibm-aix140351 ! Ref: TransferAixShobj144013 ! Ref: iq2000-x-elf147823 ! Ref: lm32-x-elf147963 ! Ref: lm32-x-uclinux148067 ! Ref: m32c-x-elf148195 ! Ref: m32r-x-elf148297 ! Ref: m68k-x-x148399 ! Ref: m68k-x-uclinux149437 ! Ref: microblaze-x-elf149682 ! Ref: mips-x-x149801 ! Ref: moxie-x-elf151711 ! Ref: msp430-x-elf151758 ! Ref: nds32le-x-elf151861 ! Ref: nds32be-x-elf151933 ! Ref: nvptx-x-none152002 ! Ref: powerpc-x-x152565 ! Ref: powerpc-x-darwin152756 ! Ref: powerpc-x-elf153250 ! Ref: powerpc-x-linux-gnu153335 ! Ref: powerpc-x-netbsd153430 ! Ref: powerpc-x-eabisim153518 ! Ref: powerpc-x-eabi153644 ! Ref: powerpcle-x-elf153720 ! Ref: powerpcle-x-eabisim153812 ! Ref: powerpcle-x-eabi153945 ! Ref: rl78-x-elf154028 ! Ref: riscv32-x-elf154134 ! Ref: riscv32-x-linux154344 ! Ref: riscv64-x-elf154522 ! Ref: riscv64-x-linux154732 ! Ref: rx-x-elf154910 ! Ref: s390-x-linux154956 ! Ref: s390x-x-linux155028 ! Ref: s390x-ibm-tpf155115 ! Ref: x-x-solaris2155246 ! Ref: sparc-x-x159113 ! Ref: sparc-sun-solaris2159615 ! Ref: sparc-sun-solaris210160754 ! Ref: sparc-x-linux161129 ! Ref: sparc64-x-solaris2161160 ! Ref: sparcv9-x-solaris2161493 ! Ref: c6x-x-x161580 ! Ref: tilegx-*-linux161672 ! Ref: tilegxbe-*-linux161814 ! Ref: tilepro-*-linux161957 ! Ref: visium-x-elf162078 ! Ref: x-x-vxworks162186 ! Ref: x86-64-x-x163709 ! Ref: x86-64-x-solaris210164037 ! Ref: xtensa-x-elf164701 ! Ref: xtensa-x-linux165372 ! Ref: windows165713 ! Ref: x-x-cygwin167554 ! Ref: x-x-mingw32168107 ! Ref: older168333 ! Ref: elf170450 ! Node: Old170708 ! Node: Configurations173841 ! Node: GNU Free Documentation License177379 ! Node: Concept Index202507  End Tag Table diff -Nrcpad gcc-8.3.0/gcc/doc/gccint.info gcc-8.4.0/gcc/doc/gccint.info *** gcc-8.3.0/gcc/doc/gccint.info Fri Feb 22 14:35:37 2019 --- gcc-8.4.0/gcc/doc/gccint.info Wed Mar 4 08:45:35 2020 *************** 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 8.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 8.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: Contributing, *** 118,125 **** ********************************* If you would like to help pretest GCC releases to assure they work well, ! current development sources are available by SVN (see ! ). Source and binary snapshots are also available for FTP; see . If you would like to work on improvements to GCC, please read the --- 118,125 ---- ********************************* If you would like to help pretest GCC releases to assure they work well, ! current development sources are available via Git (see ! ). Source and binary snapshots are also available for FTP; see . If you would like to work on improvements to GCC, please read the *************** _RL78--'config/rl78/constraints.md'_ *** 23293,23299 **** _RISC-V--'config/riscv/constraints.md'_ 'f' ! A floating-point register (if availiable). 'I' An I-type 12-bit signed immediate. --- 23293,23299 ---- _RISC-V--'config/riscv/constraints.md'_ 'f' ! A floating-point register (if available). 'I' An I-type 12-bit signed immediate. *************** Concept Index *** 53937,54196 **** Tag Table: Node: Top1789 Node: Contributing5024 ! Node: Portability5753 ! Node: Interface7541 ! Node: Libgcc10582 ! Node: Integer library routines12409 ! Node: Soft float library routines19377 ! Node: Decimal float library routines31315 ! Node: Fixed-point fractional library routines47073 ! Node: Exception handling routines147469 ! Node: Miscellaneous routines148576 ! Node: Languages150696 ! Node: Source Tree152243 ! Node: Configure Terms152825 ! Node: Top Level155781 ! Node: gcc Directory159211 ! Node: Subdirectories160163 ! Node: Configuration162331 ! Node: Config Fragments163051 ! Node: System Config164276 ! Node: Configuration Files165212 ! Node: Build167828 ! Node: Makefile168240 ! Ref: Makefile-Footnote-1175015 ! Ref: Makefile-Footnote-2175162 ! Node: Library Files175236 ! Node: Headers175798 ! Node: Documentation177881 ! Node: Texinfo Manuals178740 ! Node: Man Page Generation181069 ! Node: Miscellaneous Docs182982 ! Node: Front End184369 ! Node: Front End Directory188043 ! Node: Front End Config189359 ! Node: Front End Makefile192195 ! Node: Back End195963 ! Node: Testsuites200849 ! Node: Test Idioms201838 ! Node: Test Directives205236 ! Node: Directives205763 ! Node: Selectors216529 ! Node: Effective-Target Keywords217885 ! Ref: arm_fp_ok228449 ! Ref: arm_neon_ok229531 ! Ref: arm_neon_ok_no_float_abi229700 ! Ref: arm_neonv2_ok229867 ! Ref: arm_fp16_ok230034 ! Ref: arm_neon_fp16_ok230376 ! Ref: arm_vfp3_ok231252 ! Ref: arm_v8_1a_neon_ok231678 ! Ref: arm_v8_2a_fp16_scalar_ok232106 ! Ref: arm_v8_2a_fp16_neon_ok232557 ! Ref: arm_v8_2a_dotprod_neon_ok233032 ! Ref: arm_fp16fml_neon_ok233452 ! Ref: arm_coproc1_ok234294 ! Ref: arm_coproc2_ok234420 ! Ref: arm_coproc3_ok234648 ! Ref: stack_size_et244897 ! Node: Add Options247200 ! Ref: arm_fp16_ieee248218 ! Ref: arm_fp16_alternative248473 ! Ref: stack_size_ao250724 ! Node: Require Support250973 ! Node: Final Actions253802 ! Node: Ada Tests259461 ! Node: C Tests260624 ! Node: LTO Testing264996 ! Node: gcov Testing266639 ! Node: profopt Testing269629 ! Node: compat Testing271344 ! Node: Torture Tests275584 ! Node: GIMPLE Tests277218 ! Node: RTL Tests278461 ! Node: Options279767 ! Node: Option file format280208 ! Node: Option properties287197 ! Node: Passes301171 ! Node: Parsing pass301987 ! Node: Gimplification pass305515 ! Node: Pass manager307348 ! Node: Tree SSA passes309194 ! Node: RTL passes330736 ! Node: Optimization info343000 ! Node: Dump setup343819 ! Node: Optimization groups344948 ! Node: Dump files and streams345927 ! Node: Dump output verbosity347125 ! Node: Dump types348181 ! Node: Dump examples349671 ! Node: poly_int351152 ! Node: Overview of poly_int352632 ! Node: Consequences of using poly_int355236 ! Node: Comparisons involving poly_int356871 ! Node: Comparison functions for poly_int358509 ! Node: Properties of the poly_int comparisons359716 ! Node: Comparing potentially-unordered poly_ints362158 ! Node: Comparing ordered poly_ints363069 ! Node: Checking for a poly_int marker value365093 ! Node: Range checks on poly_ints365942 ! Node: Sorting poly_ints368596 ! Node: Arithmetic on poly_ints369369 ! Node: Using poly_int with C++ arithmetic operators370170 ! Node: wi arithmetic on poly_ints371701 ! Node: Division of poly_ints372553 ! Node: Other poly_int arithmetic374060 ! Node: Alignment of poly_ints375466 ! Node: Computing bounds on poly_ints378743 ! Node: Converting poly_ints379524 ! Node: Miscellaneous poly_int routines383071 ! Node: Guidelines for using poly_int383711 ! Node: GENERIC388643 ! Node: Deficiencies390521 ! Node: Tree overview390762 ! Node: Macros and Functions394886 ! Node: Identifiers395711 ! Node: Containers397320 ! Node: Types398477 ! Node: Declarations410551 ! Node: Working with declarations411046 ! Node: Internal structure416650 ! Node: Current structure hierarchy417034 ! Node: Adding new DECL node types419127 ! Node: Attributes423411 ! Node: Expression trees424655 ! Node: Constant expressions426409 ! Node: Storage References432501 ! Node: Unary and Binary Expressions436020 ! Node: Vectors456706 ! Node: Statements462375 ! Node: Basic Statements462907 ! Node: Blocks467534 ! Node: Statement Sequences469235 ! Node: Empty Statements469568 ! Node: Jumps470142 ! Node: Cleanups470795 ! Node: OpenMP472562 ! Node: OpenACC478407 ! Node: Functions479448 ! Node: Function Basics479919 ! Node: Function Properties483603 ! Node: Language-dependent trees486384 ! Node: C and C++ Trees487271 ! Node: Types for C++490175 ! Node: Namespaces495145 ! Node: Classes498251 ! Node: Functions for C++503159 ! Node: Statements for C++509410 ! Node: C++ Expressions517463 ! Node: Java Trees518968 ! Node: GIMPLE519081 ! Node: Tuple representation522746 ! Node: Class hierarchy of GIMPLE statements529706 ! Node: GIMPLE instruction set534694 ! Node: GIMPLE Exception Handling536326 ! Node: Temporaries538238 ! Ref: Temporaries-Footnote-1539556 ! Node: Operands539621 ! Node: Compound Expressions540382 ! Node: Compound Lvalues540616 ! Node: Conditional Expressions541378 ! Node: Logical Operators542037 ! Node: Manipulating GIMPLE statements549385 ! Node: Tuple specific accessors555321 ! Node: GIMPLE_ASM556100 ! Node: GIMPLE_ASSIGN558483 ! Node: GIMPLE_BIND563187 ! Node: GIMPLE_CALL565001 ! Node: GIMPLE_CATCH569144 ! Node: GIMPLE_COND570294 ! Node: GIMPLE_DEBUG573089 ! Node: GIMPLE_EH_FILTER577687 ! Node: GIMPLE_LABEL579250 ! Node: GIMPLE_GOTO579863 ! Node: GIMPLE_NOP580386 ! Node: GIMPLE_OMP_ATOMIC_LOAD580748 ! Node: GIMPLE_OMP_ATOMIC_STORE581744 ! Node: GIMPLE_OMP_CONTINUE582443 ! Node: GIMPLE_OMP_CRITICAL583922 ! Node: GIMPLE_OMP_FOR584916 ! Node: GIMPLE_OMP_MASTER588332 ! Node: GIMPLE_OMP_ORDERED588710 ! Node: GIMPLE_OMP_PARALLEL589104 ! Node: GIMPLE_OMP_RETURN591873 ! Node: GIMPLE_OMP_SECTION592518 ! Node: GIMPLE_OMP_SECTIONS593178 ! Node: GIMPLE_OMP_SINGLE594788 ! Node: GIMPLE_PHI595734 ! Node: GIMPLE_RESX597013 ! Node: GIMPLE_RETURN597732 ! Node: GIMPLE_SWITCH598306 ! Node: GIMPLE_TRY600181 ! Node: GIMPLE_WITH_CLEANUP_EXPR601953 ! Node: GIMPLE sequences602832 ! Node: Sequence iterators606038 ! Node: Adding a new GIMPLE statement code614495 ! Node: Statement and operand traversals615840 ! Node: Tree SSA618432 ! Node: Annotations620220 ! Node: SSA Operands620625 ! Node: SSA634700 ! Node: Alias analysis644406 ! Node: Memory model648180 ! Node: RTL649539 ! Node: RTL Objects651727 ! Node: RTL Classes655611 ! Node: Accessors660743 ! Node: Special Accessors662916 ! Node: Flags668703 ! Node: Machine Modes683966 ! Node: Constants701499 ! Node: Regs and Memory712778 ! Node: Arithmetic732030 ! Node: Comparisons742076 ! Node: Bit-Fields746368 ! Node: Vector Operations747920 ! Node: Conversions749953 ! Node: RTL Declarations754451 ! Node: Side Effects755295 ! Node: Incdec772306 ! Node: Assembler775642 ! Node: Debug Information777187 ! Node: Insns779114 ! Node: Calls807007 ! Node: Sharing809600 ! Node: Reading RTL812795 ! Node: Control Flow813786 ! Node: Basic Blocks815555 ! Node: Edges821009 ! Node: Profile information829628 ! Node: Maintaining the CFG834312 ! Node: Liveness information840080 ! Node: Loop Analysis and Representation842206 ! Node: Loop representation843242 ! Node: Loop querying850805 ! Node: Loop manipulation853626 ! Node: LCSSA855962 ! Node: Scalar evolutions858031 ! Node: loop-iv861275 ! Node: Number of iterations863197 ! Node: Dependency analysis867278 ! Node: Machine Desc873629 ! Node: Overview876192 ! Node: Patterns878232 ! Node: Example882541 ! Node: RTL Template884002 ! Node: Output Template894658 ! Node: Output Statement898839 ! Node: Predicates903178 ! Node: Machine-Independent Predicates906096 ! Node: Defining Predicates911040 ! Node: Constraints917003 ! Node: Simple Constraints918472 ! Node: Multi-Alternative931312 ! Node: Class Preferences934521 ! Node: Modifiers935413 ! Node: Machine Constraints940146 Node: Disable Insn Alternatives1002836 Node: Define Constraints1006328 Node: C Constraint Interface1013723 --- 53937,54196 ---- Tag Table: Node: Top1789 Node: Contributing5024 ! Node: Portability5754 ! Node: Interface7542 ! Node: Libgcc10583 ! Node: Integer library routines12410 ! Node: Soft float library routines19378 ! Node: Decimal float library routines31316 ! Node: Fixed-point fractional library routines47074 ! Node: Exception handling routines147470 ! Node: Miscellaneous routines148577 ! Node: Languages150697 ! Node: Source Tree152244 ! Node: Configure Terms152826 ! Node: Top Level155782 ! Node: gcc Directory159212 ! Node: Subdirectories160164 ! Node: Configuration162332 ! Node: Config Fragments163052 ! Node: System Config164277 ! Node: Configuration Files165213 ! Node: Build167829 ! Node: Makefile168241 ! Ref: Makefile-Footnote-1175016 ! Ref: Makefile-Footnote-2175163 ! Node: Library Files175237 ! Node: Headers175799 ! Node: Documentation177882 ! Node: Texinfo Manuals178741 ! Node: Man Page Generation181070 ! Node: Miscellaneous Docs182983 ! Node: Front End184370 ! Node: Front End Directory188044 ! Node: Front End Config189360 ! Node: Front End Makefile192196 ! Node: Back End195964 ! Node: Testsuites200850 ! Node: Test Idioms201839 ! Node: Test Directives205237 ! Node: Directives205764 ! Node: Selectors216530 ! Node: Effective-Target Keywords217886 ! Ref: arm_fp_ok228450 ! Ref: arm_neon_ok229532 ! Ref: arm_neon_ok_no_float_abi229701 ! Ref: arm_neonv2_ok229868 ! Ref: arm_fp16_ok230035 ! Ref: arm_neon_fp16_ok230377 ! Ref: arm_vfp3_ok231253 ! Ref: arm_v8_1a_neon_ok231679 ! Ref: arm_v8_2a_fp16_scalar_ok232107 ! Ref: arm_v8_2a_fp16_neon_ok232558 ! Ref: arm_v8_2a_dotprod_neon_ok233033 ! Ref: arm_fp16fml_neon_ok233453 ! Ref: arm_coproc1_ok234295 ! Ref: arm_coproc2_ok234421 ! Ref: arm_coproc3_ok234649 ! Ref: stack_size_et244898 ! Node: Add Options247201 ! Ref: arm_fp16_ieee248219 ! Ref: arm_fp16_alternative248474 ! Ref: stack_size_ao250725 ! Node: Require Support250974 ! Node: Final Actions253803 ! Node: Ada Tests259462 ! Node: C Tests260625 ! Node: LTO Testing264997 ! Node: gcov Testing266640 ! Node: profopt Testing269630 ! Node: compat Testing271345 ! Node: Torture Tests275585 ! Node: GIMPLE Tests277219 ! Node: RTL Tests278462 ! Node: Options279768 ! Node: Option file format280209 ! Node: Option properties287198 ! Node: Passes301172 ! Node: Parsing pass301988 ! Node: Gimplification pass305516 ! Node: Pass manager307349 ! Node: Tree SSA passes309195 ! Node: RTL passes330737 ! Node: Optimization info343001 ! Node: Dump setup343820 ! Node: Optimization groups344949 ! Node: Dump files and streams345928 ! Node: Dump output verbosity347126 ! Node: Dump types348182 ! Node: Dump examples349672 ! Node: poly_int351153 ! Node: Overview of poly_int352633 ! Node: Consequences of using poly_int355237 ! Node: Comparisons involving poly_int356872 ! Node: Comparison functions for poly_int358510 ! Node: Properties of the poly_int comparisons359717 ! Node: Comparing potentially-unordered poly_ints362159 ! Node: Comparing ordered poly_ints363070 ! Node: Checking for a poly_int marker value365094 ! Node: Range checks on poly_ints365943 ! Node: Sorting poly_ints368597 ! Node: Arithmetic on poly_ints369370 ! Node: Using poly_int with C++ arithmetic operators370171 ! Node: wi arithmetic on poly_ints371702 ! Node: Division of poly_ints372554 ! Node: Other poly_int arithmetic374061 ! Node: Alignment of poly_ints375467 ! Node: Computing bounds on poly_ints378744 ! Node: Converting poly_ints379525 ! Node: Miscellaneous poly_int routines383072 ! Node: Guidelines for using poly_int383712 ! Node: GENERIC388644 ! Node: Deficiencies390522 ! Node: Tree overview390763 ! Node: Macros and Functions394887 ! Node: Identifiers395712 ! Node: Containers397321 ! Node: Types398478 ! Node: Declarations410552 ! Node: Working with declarations411047 ! Node: Internal structure416651 ! Node: Current structure hierarchy417035 ! Node: Adding new DECL node types419128 ! Node: Attributes423412 ! Node: Expression trees424656 ! Node: Constant expressions426410 ! Node: Storage References432502 ! Node: Unary and Binary Expressions436021 ! Node: Vectors456707 ! Node: Statements462376 ! Node: Basic Statements462908 ! Node: Blocks467535 ! Node: Statement Sequences469236 ! Node: Empty Statements469569 ! Node: Jumps470143 ! Node: Cleanups470796 ! Node: OpenMP472563 ! Node: OpenACC478408 ! Node: Functions479449 ! Node: Function Basics479920 ! Node: Function Properties483604 ! Node: Language-dependent trees486385 ! Node: C and C++ Trees487272 ! Node: Types for C++490176 ! Node: Namespaces495146 ! Node: Classes498252 ! Node: Functions for C++503160 ! Node: Statements for C++509411 ! Node: C++ Expressions517464 ! Node: Java Trees518969 ! Node: GIMPLE519082 ! Node: Tuple representation522747 ! Node: Class hierarchy of GIMPLE statements529707 ! Node: GIMPLE instruction set534695 ! Node: GIMPLE Exception Handling536327 ! Node: Temporaries538239 ! Ref: Temporaries-Footnote-1539557 ! Node: Operands539622 ! Node: Compound Expressions540383 ! Node: Compound Lvalues540617 ! Node: Conditional Expressions541379 ! Node: Logical Operators542038 ! Node: Manipulating GIMPLE statements549386 ! Node: Tuple specific accessors555322 ! Node: GIMPLE_ASM556101 ! Node: GIMPLE_ASSIGN558484 ! Node: GIMPLE_BIND563188 ! Node: GIMPLE_CALL565002 ! Node: GIMPLE_CATCH569145 ! Node: GIMPLE_COND570295 ! Node: GIMPLE_DEBUG573090 ! Node: GIMPLE_EH_FILTER577688 ! Node: GIMPLE_LABEL579251 ! Node: GIMPLE_GOTO579864 ! Node: GIMPLE_NOP580387 ! Node: GIMPLE_OMP_ATOMIC_LOAD580749 ! Node: GIMPLE_OMP_ATOMIC_STORE581745 ! Node: GIMPLE_OMP_CONTINUE582444 ! Node: GIMPLE_OMP_CRITICAL583923 ! Node: GIMPLE_OMP_FOR584917 ! Node: GIMPLE_OMP_MASTER588333 ! Node: GIMPLE_OMP_ORDERED588711 ! Node: GIMPLE_OMP_PARALLEL589105 ! Node: GIMPLE_OMP_RETURN591874 ! Node: GIMPLE_OMP_SECTION592519 ! Node: GIMPLE_OMP_SECTIONS593179 ! Node: GIMPLE_OMP_SINGLE594789 ! Node: GIMPLE_PHI595735 ! Node: GIMPLE_RESX597014 ! Node: GIMPLE_RETURN597733 ! Node: GIMPLE_SWITCH598307 ! Node: GIMPLE_TRY600182 ! Node: GIMPLE_WITH_CLEANUP_EXPR601954 ! Node: GIMPLE sequences602833 ! Node: Sequence iterators606039 ! Node: Adding a new GIMPLE statement code614496 ! Node: Statement and operand traversals615841 ! Node: Tree SSA618433 ! Node: Annotations620221 ! Node: SSA Operands620626 ! Node: SSA634701 ! Node: Alias analysis644407 ! Node: Memory model648181 ! Node: RTL649540 ! Node: RTL Objects651728 ! Node: RTL Classes655612 ! Node: Accessors660744 ! Node: Special Accessors662917 ! Node: Flags668704 ! Node: Machine Modes683967 ! Node: Constants701500 ! Node: Regs and Memory712779 ! Node: Arithmetic732031 ! Node: Comparisons742077 ! Node: Bit-Fields746369 ! Node: Vector Operations747921 ! Node: Conversions749954 ! Node: RTL Declarations754452 ! Node: Side Effects755296 ! Node: Incdec772307 ! Node: Assembler775643 ! Node: Debug Information777188 ! Node: Insns779115 ! Node: Calls807008 ! Node: Sharing809601 ! Node: Reading RTL812796 ! Node: Control Flow813787 ! Node: Basic Blocks815556 ! Node: Edges821010 ! Node: Profile information829629 ! Node: Maintaining the CFG834313 ! Node: Liveness information840081 ! Node: Loop Analysis and Representation842207 ! Node: Loop representation843243 ! Node: Loop querying850806 ! Node: Loop manipulation853627 ! Node: LCSSA855963 ! Node: Scalar evolutions858032 ! Node: loop-iv861276 ! Node: Number of iterations863198 ! Node: Dependency analysis867279 ! Node: Machine Desc873630 ! Node: Overview876193 ! Node: Patterns878233 ! Node: Example882542 ! Node: RTL Template884003 ! Node: Output Template894659 ! Node: Output Statement898840 ! Node: Predicates903179 ! Node: Machine-Independent Predicates906097 ! Node: Defining Predicates911041 ! Node: Constraints917004 ! Node: Simple Constraints918473 ! Node: Multi-Alternative931313 ! Node: Class Preferences934522 ! Node: Modifiers935414 ! Node: Machine Constraints940147 Node: Disable Insn Alternatives1002836 Node: Define Constraints1006328 Node: C Constraint Interface1013723 diff -Nrcpad gcc-8.3.0/gcc/doc/gcov-dump.1 gcc-8.4.0/gcc/doc/gcov-dump.1 *** gcc-8.3.0/gcc/doc/gcov-dump.1 Fri Feb 22 14:23:15 2019 --- gcc-8.4.0/gcc/doc/gcov-dump.1 Wed Mar 4 08:33:13 2020 *************** *** 133,139 **** .\" ======================================================================== .\" .IX Title "GCOV-DUMP 1" ! .TH GCOV-DUMP 1 "2019-02-22" "gcc-8.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 "2020-03-04" "gcc-8.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 diff -Nrcpad gcc-8.3.0/gcc/doc/gcov-tool.1 gcc-8.4.0/gcc/doc/gcov-tool.1 *** gcc-8.3.0/gcc/doc/gcov-tool.1 Fri Feb 22 14:23:15 2019 --- gcc-8.4.0/gcc/doc/gcov-tool.1 Wed Mar 4 08:33:13 2020 *************** *** 133,139 **** .\" ======================================================================== .\" .IX Title "GCOV-TOOL 1" ! .TH GCOV-TOOL 1 "2019-02-22" "gcc-8.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 "2020-03-04" "gcc-8.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 diff -Nrcpad gcc-8.3.0/gcc/doc/gcov.1 gcc-8.4.0/gcc/doc/gcov.1 *** gcc-8.3.0/gcc/doc/gcov.1 Fri Feb 22 14:23:15 2019 --- gcc-8.4.0/gcc/doc/gcov.1 Wed Mar 4 08:33:13 2020 *************** *** 133,139 **** .\" ======================================================================== .\" .IX Title "GCOV 1" ! .TH GCOV 1 "2019-02-22" "gcc-8.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 "2020-03-04" "gcc-8.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 diff -Nrcpad gcc-8.3.0/gcc/doc/gfdl.7 gcc-8.4.0/gcc/doc/gfdl.7 *** gcc-8.3.0/gcc/doc/gfdl.7 Fri Feb 22 14:23:15 2019 --- gcc-8.4.0/gcc/doc/gfdl.7 Wed Mar 4 08:33:13 2020 *************** *** 133,139 **** .\" ======================================================================== .\" .IX Title "GFDL 7" ! .TH GFDL 7 "2019-02-22" "gcc-8.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 "2020-03-04" "gcc-8.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 diff -Nrcpad gcc-8.3.0/gcc/doc/gfortran.1 gcc-8.4.0/gcc/doc/gfortran.1 *** gcc-8.3.0/gcc/doc/gfortran.1 Fri Feb 22 14:35:27 2019 --- gcc-8.4.0/gcc/doc/gfortran.1 Wed Mar 4 08:45:24 2020 *************** *** 133,139 **** .\" ======================================================================== .\" .IX Title "GFORTRAN 1" ! .TH GFORTRAN 1 "2019-02-22" "gcc-8.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 "2020-03-04" "gcc-8.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 *************** by type. Explanations are in the follow *** 228,234 **** .IP "\fICode Generation Options\fR" 4 .IX Item "Code Generation Options" \&\fB\-faggressive\-function\-elimination \-fblas\-matmul\-limit=\fR\fIn\fR ! \&\fB\-fbounds\-check \-fcheck\-array\-temporaries \&\-fcheck=\fR\fI\fR \&\fB\-fcoarray=\fR\fI\fR \fB\-fexternal\-blas \-ff2c \&\-ffrontend\-loop\-interchange --- 228,235 ---- .IP "\fICode Generation Options\fR" 4 .IX Item "Code Generation Options" \&\fB\-faggressive\-function\-elimination \-fblas\-matmul\-limit=\fR\fIn\fR ! \&\fB\-fbounds\-check \-ftail\-call\-workaround \-ftail\-call\-workaround=\fR\fIn\fR ! \&\fB\-fcheck\-array\-temporaries \&\-fcheck=\fR\fI\fR \&\fB\-fcoarray=\fR\fI\fR \fB\-fexternal\-blas \-ff2c \&\-ffrontend\-loop\-interchange *************** warnings for generated array temporaries *** 1327,1332 **** --- 1328,1368 ---- .IP "\fB\-fbounds\-check\fR" 4 .IX Item "-fbounds-check" Deprecated alias for \fB\-fcheck=bounds\fR. + .IP "\fB\-ftail\-call\-workaround\fR" 4 + .IX Item "-ftail-call-workaround" + .PD 0 + .IP "\fB\-ftail\-call\-workaround=\fR\fIn\fR" 4 + .IX Item "-ftail-call-workaround=n" + .PD + Some C interfaces to Fortran codes violate the gfortran \s-1ABI\s0 by + omitting the hidden character length arguments as described in + This can lead to crashes + because pushing arguments for tail calls can overflow the stack. + .Sp + To provide a workaround for existing binary packages, this option + disables tail call optimization for gfortran procedures with character + arguments. With \fB\-ftail\-call\-workaround=2\fR tail call optimization + is disabled in all gfortran procedures with character arguments, + with \fB\-ftail\-call\-workaround=1\fR or equivalent + \&\fB\-ftail\-call\-workaround\fR only in gfortran procedures with character + arguments that call implicitly prototyped procedures. + .Sp + Using this option can lead to problems including crashes due to + insufficient stack space. + .Sp + It is \fIvery strongly\fR recommended to fix the code in question. + The \fB\-fc\-prototypes\-external\fR option can be used to generate + prototypes which conform to gfortran's \s-1ABI,\s0 for inclusion in the + source code. + .Sp + Support for this option will likely be withdrawn in a future release + of gfortran. + .Sp + The negative form, \fB\-fno\-tail\-call\-workaround\fR or equivalent + \&\fB\-ftail\-call\-workaround=0\fR, can be used to disable this option. + .Sp + Default is currently \fB\-ftail\-call\-workaround\fR, this will change + in future releases. .IP "\fB\-fcheck\-array\-temporaries\fR" 4 .IX Item "-fcheck-array-temporaries" Deprecated alias for \fB\-fcheck=array\-temps\fR. diff -Nrcpad gcc-8.3.0/gcc/doc/gpl.7 gcc-8.4.0/gcc/doc/gpl.7 *** gcc-8.3.0/gcc/doc/gpl.7 Fri Feb 22 14:23:15 2019 --- gcc-8.4.0/gcc/doc/gpl.7 Wed Mar 4 08:33:13 2020 *************** *** 133,139 **** .\" ======================================================================== .\" .IX Title "GPL 7" ! .TH GPL 7 "2019-02-22" "gcc-8.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 "2020-03-04" "gcc-8.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 diff -Nrcpad gcc-8.3.0/gcc/doc/install.texi gcc-8.4.0/gcc/doc/install.texi *** gcc-8.3.0/gcc/doc/install.texi Fri Feb 8 09:05:40 2019 --- gcc-8.4.0/gcc/doc/install.texi Wed Mar 4 08:30:00 2020 *************** and up works. *** 335,342 **** Necessary when regenerating @file{Makefile} dependencies in libiberty. Necessary when regenerating @file{libiberty/functions.texi}. Necessary when generating manpages from Texinfo manuals. ! Used by various scripts to generate some files included in SVN (mainly ! Unicode-related and rarely changing) from source tables. Used by @command{automake}. --- 335,343 ---- Necessary when regenerating @file{Makefile} dependencies in libiberty. Necessary when regenerating @file{libiberty/functions.texi}. Necessary when generating manpages from Texinfo manuals. ! Used by various scripts to generate some files included in the source ! repository (mainly Unicode-related and rarely changing) from source ! tables. Used by @command{automake}. *************** Necessary to regenerate the top level @f *** 461,468 **** Necessary when modifying @file{*.l} files. Necessary to build GCC during development because the generated output ! files are not included in the SVN repository. They are included in ! releases. @item Texinfo version 4.7 (or later) --- 462,469 ---- Necessary when modifying @file{*.l} files. Necessary to build GCC during development because the generated output ! files are not included in the version-controlled source repository. ! They are included in releases. @item Texinfo version 4.7 (or later) *************** create printable documentation in DVI or *** 474,480 **** 4.8 or later is required for @command{make pdf}. Necessary to build GCC documentation during development because the ! generated output files are not included in the SVN repository. They are included in releases. @item @TeX{} (any working version) --- 475,481 ---- 4.8 or later is required for @command{make pdf}. Necessary to build GCC documentation during development because the ! generated output files are not included in the repository. They are included in releases. @item @TeX{} (any working version) *************** DVI or PDF files, respectively. *** 488,498 **** Necessary to regenerate @file{jit/docs/_build/texinfo} from the @file{.rst} files in the directories below @file{jit/docs}. ! @item SVN (any version) @itemx SSH (any version) ! Necessary to access the SVN repository. Public releases and weekly ! snapshots of the development sources are also available via FTP@. @item GNU diffutils version 2.7 (or later) --- 489,499 ---- Necessary to regenerate @file{jit/docs/_build/texinfo} from the @file{.rst} files in the directories below @file{jit/docs}. ! @item git (any version) @itemx SSH (any version) ! Necessary to access the source repository. Public releases and weekly ! snapshots of the development sources are also available via HTTPS@. @item GNU diffutils version 2.7 (or later) *************** own sources. *** 526,534 **** @cindex Downloading GCC @cindex Downloading the Source ! GCC is distributed via @uref{http://gcc.gnu.org/svn.html,,SVN} and FTP ! tarballs compressed with @command{gzip} or ! @command{bzip2}. Please refer to the @uref{http://gcc.gnu.org/releases.html,,releases web page} for information on how to obtain GCC@. --- 527,534 ---- @cindex Downloading GCC @cindex Downloading the Source ! GCC is distributed via @uref{http://gcc.gnu.org/git.html,,git} and via ! HTTPS as tarballs compressed with @command{gzip} or @command{bzip2}. Please refer to the @uref{http://gcc.gnu.org/releases.html,,releases web page} for information on how to obtain GCC@. *************** for both native and cross targets. *** 586,594 **** We use @var{srcdir} to refer to the toplevel source directory for GCC; we use @var{objdir} to refer to the toplevel build/object directory. ! If you obtained the sources via SVN, @var{srcdir} must refer to the top ! @file{gcc} directory, the one where the @file{MAINTAINERS} file can be ! found, and not its @file{gcc} subdirectory, otherwise the build will fail. If either @var{srcdir} or @var{objdir} is located on an automounted NFS file system, the shell's built-in @command{pwd} command will return --- 586,595 ---- We use @var{srcdir} to refer to the toplevel source directory for GCC; we use @var{objdir} to refer to the toplevel build/object directory. ! If you obtained the sources by cloning the repository, @var{srcdir} ! must refer to the top @file{gcc} directory, the one where the ! @file{MAINTAINERS} file can be found, and not its @file{gcc} ! subdirectory, otherwise the build will fail. If either @var{srcdir} or @var{objdir} is located on an automounted NFS file system, the shell's built-in @command{pwd} command will return *************** with @option{--enable-bootstrap}. *** 1476,1482 **** @item --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 SVN development tree. When building GCC from that development tree, or from one of our snapshots, those generated files are placed in your build directory, which allows for the source to be in a readonly directory. --- 1477,1483 ---- @item --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, or from one of our snapshots, those generated files are placed in your build directory, which allows for the source to be in a readonly directory. *************** final releases. The specific files whic *** 1762,1802 **** controlled by the Makefiles. @item --enable-checking @itemx --enable-checking=@var{list} ! When you specify this option, the compiler is built to perform internal ! consistency checks of the requested complexity. This does not change the ! generated code, but adds error checking within the compiler. This will ! slow down the compiler and may only work properly if you are building ! the compiler with GCC@. This is @samp{yes,extra} by default when building ! from SVN or snapshots, but @samp{release} for releases. The default ! for building the stage1 compiler is @samp{yes}. More control ! over the checks may be had by specifying @var{list}. The categories of ! checks available are @samp{yes} (most common checks ! @samp{assert,misc,tree,gc,rtlflag,runtime}), @samp{no} (no checks at ! all), @samp{all} (all but @samp{valgrind}), @samp{release} (cheapest ! checks @samp{assert,runtime}) or @samp{none} (same as @samp{no}). ! Individual checks can be enabled with these flags @samp{assert}, ! @samp{df}, @samp{fold}, @samp{gc}, @samp{gcac}, @samp{misc}, @samp{rtl}, ! @samp{rtlflag}, @samp{runtime}, @samp{tree}, @samp{extra} and @samp{valgrind}. ! @samp{extra} adds for @samp{misc} checking extra checks that might affect ! code generation and should therefore not differ between stage1 and later ! stages. ! The @samp{valgrind} check requires the external @command{valgrind} ! simulator, available from @uref{http://valgrind.org/}. The ! @samp{df}, @samp{rtl}, @samp{gcac} and @samp{valgrind} checks are very expensive. ! To disable all checking, @samp{--disable-checking} or ! @samp{--enable-checking=none} must be explicitly requested. Disabling ! assertions will make the compiler and runtime slightly faster but ! increase the risk of undetected internal errors causing wrong code to be ! generated. @item --disable-stage1-checking @itemx --enable-stage1-checking @itemx --enable-stage1-checking=@var{list} ! If no @option{--enable-checking} option is specified the stage1 ! compiler will be built with @samp{yes} checking enabled, otherwise ! the stage1 checking flags are the same as specified by @option{--enable-checking}. To build the stage1 compiler with different checking options use @option{--enable-stage1-checking}. The list of checking options is the same as for @option{--enable-checking}. --- 1763,1812 ---- controlled by the Makefiles. @item --enable-checking + @itemx --disable-checking @itemx --enable-checking=@var{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 ! properly if you are building the compiler with GCC@. ! When the option is not specified, the active set of checks depends on context. ! Namely, bootstrap stage 1 defaults to @samp{--enable-checking=yes}, builds ! from release branches or release archives default to ! @samp{--enable-checking=release}, and otherwise ! @samp{--enable-checking=yes,extra} is used. When the option is ! specified without a @var{list}, the result is the same as ! @samp{--enable-checking=yes}. Likewise, @samp{--disable-checking} is ! equivalent to @samp{--enable-checking=no}. ! ! The categories of checks available in @var{list} are @samp{yes} (most common ! checks @samp{assert,misc,gc,gimple,rtlflag,runtime,tree,types}), @samp{no} ! (no checks at all), @samp{all} (all but @samp{valgrind}), @samp{release} ! (cheapest checks @samp{assert,runtime}) or @samp{none} (same as @samp{no}). ! @samp{release} checks are always on and to disable them ! @samp{--disable-checking} or @samp{--enable-checking=no[,]} ! must be explicitly requested. Disabling assertions makes the compiler and ! runtime slightly faster but increases the risk of undetected internal errors ! causing wrong code to be generated. ! ! Individual checks can be enabled with these flags: @samp{assert}, @samp{df}, ! @samp{extra}, @samp{fold}, @samp{gc}, @samp{gcac}, @samp{gimple}, ! @samp{misc}, @samp{rtl}, @samp{rtlflag}, @samp{runtime}, @samp{tree}, ! @samp{types} and @samp{valgrind}. @samp{extra} extends @samp{misc} ! checking with extra checks that might affect code generation and should ! therefore not differ between stage1 and later stages in bootstrap. ! ! The @samp{valgrind} check requires the external @command{valgrind} simulator, ! available from @uref{http://valgrind.org/}. The @samp{rtl} checks are ! expensive and the @samp{df}, @samp{gcac} and @samp{valgrind} checks are very ! expensive. @item --disable-stage1-checking @itemx --enable-stage1-checking @itemx --enable-stage1-checking=@var{list} ! This option affects only bootstrap build. If no @option{--enable-checking} ! option is specified the stage1 compiler is built with @samp{yes} checking ! enabled, otherwise the stage1 checking flags are the same as specified by @option{--enable-checking}. To build the stage1 compiler with different checking options use @option{--enable-stage1-checking}. The list of checking options is the same as for @option{--enable-checking}. *************** that type mismatches occur, this could b *** 2345,2351 **** The solution is not to use such a directory for building GCC@. ! Similarly, when building from SVN or snapshots, or if you modify @file{*.l} files, you need the Flex lexical analyzer generator installed. If you do not modify @file{*.l} files, releases contain the Flex-generated files and you do not need Flex installed to build --- 2355,2361 ---- The solution is not to use such a directory for building GCC@. ! Similarly, when building from the source repository or snapshots, or if you modify @file{*.l} files, you need the Flex lexical analyzer generator installed. If you do not modify @file{*.l} files, releases contain the Flex-generated files and you do not need Flex installed to build *************** them. There is still one Flex-based lex *** 2353,2359 **** build machinery, not of GCC itself) that is used even if you only build the C front end. ! When building from SVN or snapshots, or if you modify Texinfo documentation, you need version 4.7 or later of Texinfo installed if you want Info documentation to be regenerated. Releases contain Info documentation pre-built for the unmodified documentation in the release. --- 2363,2369 ---- build machinery, not of GCC itself) that is used even if you only build the C front end. ! When building from the source repository or snapshots, or if you modify Texinfo documentation, you need version 4.7 or later of Texinfo installed if you want Info documentation to be regenerated. Releases contain Info documentation pre-built for the unmodified documentation in the release. diff -Nrcpad gcc-8.3.0/gcc/doc/invoke.texi gcc-8.4.0/gcc/doc/invoke.texi *** gcc-8.3.0/gcc/doc/invoke.texi Thu Feb 14 23:08:18 2019 --- gcc-8.4.0/gcc/doc/invoke.texi Wed Mar 4 08:30:00 2020 *************** Objective-C and Objective-C++ Dialects}. *** 554,560 **** -fdisable-tree-@var{pass_name} @gol -fdisable-tree-@var{pass-name}=@var{range-list} @gol -fdump-noaddr -fdump-unnumbered -fdump-unnumbered-links @gol - -fdump-class-hierarchy@r{[}-@var{n}@r{]} @gol -fdump-final-insns@r{[}=@var{file}@r{]} @gol -fdump-ipa-all -fdump-ipa-cgraph -fdump-ipa-inline @gol -fdump-lang-all @gol --- 554,559 ---- *************** Objective-C and Objective-C++ Dialects}. *** 677,683 **** -mn_flash=@var{size} -mno-interrupts @gol -mmain-is-OS_task -mrelax -mrmw -mstrict-X -mtiny-stack @gol -mfract-convert-truncate @gol ! -mshort-calls -nodevicelib @gol -Waddr-space-convert -Wmisspelled-isr} @emph{Blackfin Options} --- 676,682 ---- -mn_flash=@var{size} -mno-interrupts @gol -mmain-is-OS_task -mrelax -mrmw -mstrict-X -mtiny-stack @gol -mfract-convert-truncate @gol ! -mshort-calls -nodevicelib -nodevicespecs @gol -Waddr-space-convert -Wmisspelled-isr} @emph{Blackfin Options} *************** consumers are not expected to support th *** 7374,7380 **** would be rendered unable to decode location lists using it. @item -ginternal-reset-location-views ! @itemx -gnointernal-reset-location-views @opindex ginternal-reset-location-views @opindex gno-internal-reset-location-views Attempt to determine location views that can be omitted from location --- 7373,7379 ---- would be rendered unable to decode location lists using it. @item -ginternal-reset-location-views ! @itemx -gno-internal-reset-location-views @opindex ginternal-reset-location-views @opindex gno-internal-reset-location-views Attempt to determine location views that can be omitted from location *************** do not typically increase code size. *** 7681,7688 **** @option{-Os} disables the following optimization flags: @gccoptlist{-falign-functions -falign-jumps -falign-loops @gol ! -falign-labels -freorder-blocks -freorder-blocks-algorithm=stc @gol ! -freorder-blocks-and-partition -fprefetch-loop-arrays} It also enables @option{-finline-functions}, causes the compiler to tune for code size rather than execution speed, and performs further optimizations --- 7680,7686 ---- @option{-Os} disables the following optimization flags: @gccoptlist{-falign-functions -falign-jumps -falign-loops @gol ! -falign-labels -fprefetch-loop-arrays} It also enables @option{-finline-functions}, causes the compiler to tune for code size rather than execution speed, and performs further optimizations *************** Specify the name of the target processor *** 14749,14754 **** --- 14747,14753 ---- performance of the code. Permissible values for this option are: @samp{generic}, @samp{cortex-a35}, @samp{cortex-a53}, @samp{cortex-a55}, @samp{cortex-a57}, @samp{cortex-a72}, @samp{cortex-a73}, @samp{cortex-a75}, + @samp{cortex-a76}, @samp{ares}, @samp{neoverse-n1} @samp{exynos-m1}, @samp{falkor}, @samp{qdf24xx}, @samp{saphira}, @samp{xgene1}, @samp{vulcan}, @samp{thunderx}, @samp{thunderxt88}, @samp{thunderxt88p1}, @samp{thunderxt81}, *************** Allow to use truncation instead of round *** 16887,16892 **** --- 16886,16898 ---- @opindex nodevicelib Don't link against AVR-LibC's device specific library @code{lib.a}. + @item -nodevicespecs + @opindex nodevicespecs + Don't add @option{-specs=device-specs/specs-} to the compiler driver's + command line. The user takes responsibility for supplying the sub-processes + like compiler proper, assembler and linker with appropriate command line + options. + @item -Waddr-space-convert @opindex Waddr-space-convert Warn about conversions between address spaces in the case where the diff -Nrcpad gcc-8.3.0/gcc/doc/md.texi gcc-8.4.0/gcc/doc/md.texi *** gcc-8.3.0/gcc/doc/md.texi Tue Apr 10 15:49:59 2018 --- gcc-8.4.0/gcc/doc/md.texi Wed Mar 4 08:30:00 2020 *************** The @code{X} register. *** 3392,3398 **** @table @code @item f ! A floating-point register (if availiable). @item I An I-type 12-bit signed immediate. --- 3392,3398 ---- @table @code @item f ! A floating-point register (if available). @item I An I-type 12-bit signed immediate. diff -Nrcpad gcc-8.3.0/gcc/dse.c gcc-8.4.0/gcc/dse.c *** gcc-8.3.0/gcc/dse.c Tue Apr 17 21:38:45 2018 --- gcc-8.4.0/gcc/dse.c Wed Mar 4 08:30:00 2020 *************** scan_insn (bb_info_t bb_info, rtx_insn * *** 2515,2524 **** clear_rhs_from_active_local_stores (); } } ! else if (SIBLING_CALL_P (insn) && reload_completed) /* Arguments for a sibling call that are pushed to memory are passed using the incoming argument pointer of the current function. After ! reload that might be (and likely is) frame pointer based. */ add_wild_read (bb_info); else /* Every other call, including pure functions, may read any memory --- 2515,2527 ---- clear_rhs_from_active_local_stores (); } } ! else if (SIBLING_CALL_P (insn) ! && (reload_completed || HARD_FRAME_POINTER_IS_ARG_POINTER)) /* Arguments for a sibling call that are pushed to memory are passed using the incoming argument pointer of the current function. After ! reload that might be (and likely is) frame pointer based. And, if ! it is a frame pointer on the target, even before reload we need to ! kill frame pointer based stores. */ add_wild_read (bb_info); else /* Every other call, including pure functions, may read any memory diff -Nrcpad gcc-8.3.0/gcc/dwarf2cfi.c gcc-8.4.0/gcc/dwarf2cfi.c *** gcc-8.3.0/gcc/dwarf2cfi.c Fri Jan 19 22:36:04 2018 --- gcc-8.4.0/gcc/dwarf2cfi.c Wed Mar 4 08:30:00 2020 *************** dwarf2out_frame_debug_expr (rtx expr) *** 1762,1768 **** /* Rule 6 */ case CONST_INT: ! case POLY_INT_CST: cur_trace->cfa_temp.reg = dwf_regno (dest); cur_trace->cfa_temp.offset = rtx_to_poly_int64 (src); break; --- 1762,1768 ---- /* Rule 6 */ case CONST_INT: ! case CONST_POLY_INT: cur_trace->cfa_temp.reg = dwf_regno (dest); cur_trace->cfa_temp.offset = rtx_to_poly_int64 (src); break; diff -Nrcpad gcc-8.3.0/gcc/dwarf2out.c gcc-8.4.0/gcc/dwarf2out.c *** gcc-8.3.0/gcc/dwarf2out.c Fri Feb 8 14:34:49 2019 --- gcc-8.4.0/gcc/dwarf2out.c Wed Mar 4 08:30:00 2020 *************** const struct gcc_debug_hooks dwarf2_line *** 2875,2883 **** separate comdat sections since the linker will then be able to remove duplicates. But not all tools support .debug_types sections yet. For Dwarf V5 or higher .debug_types doesn't exist any more, ! it is DW_UT_type unit type in .debug_info section. */ ! #define use_debug_types (dwarf_version >= 4 && flag_debug_types_section) /* Various DIE's use offsets relative to the beginning of the .debug_info section to refer to each other. */ --- 2875,2887 ---- separate comdat sections since the linker will then be able to remove duplicates. But not all tools support .debug_types sections yet. For Dwarf V5 or higher .debug_types doesn't exist any more, ! it is DW_UT_type unit type in .debug_info section. For late LTO ! debug there should be almost no types emitted so avoid enabling ! -fdebug-types-section there. */ ! #define use_debug_types (dwarf_version >= 4 \ ! && flag_debug_types_section \ ! && !in_lto_p) /* Various DIE's use offsets relative to the beginning of the .debug_info section to refer to each other. */ *************** static void output_die_abbrevs (unsigned *** 3713,3719 **** static void output_die (dw_die_ref); static void output_compilation_unit_header (enum dwarf_unit_type); static void output_comp_unit (dw_die_ref, int, const unsigned char *); ! static void output_comdat_type_unit (comdat_type_node *); static const char *dwarf2_name (tree, int); static void add_pubname (tree, dw_die_ref); static void add_enumerator_pubname (const char *, dw_die_ref); --- 3717,3723 ---- static void output_die (dw_die_ref); static void output_compilation_unit_header (enum dwarf_unit_type); static void output_comp_unit (dw_die_ref, int, const unsigned char *); ! static void output_comdat_type_unit (comdat_type_node *, bool); static const char *dwarf2_name (tree, int); static void add_pubname (tree, dw_die_ref); static void add_enumerator_pubname (const char *, dw_die_ref); *************** size_of_die (dw_die_ref die) *** 9339,9345 **** } break; case dw_val_class_loc_list: - case dw_val_class_view_list: if (dwarf_split_debug_info && dwarf_version >= 5) { gcc_assert (AT_loc_list (a)->num_assigned); --- 9343,9348 ---- *************** size_of_die (dw_die_ref die) *** 9348,9353 **** --- 9351,9359 ---- else size += DWARF_OFFSET_SIZE; break; + case dw_val_class_view_list: + size += DWARF_OFFSET_SIZE; + break; case dw_val_class_range_list: if (value_format (a) == DW_FORM_rnglistx) { *************** size_of_die (dw_die_ref die) *** 9425,9431 **** we use DW_FORM_ref_addr. In DWARF2, DW_FORM_ref_addr is sized by target address length, whereas in DWARF3 it's always sized as an offset. */ ! if (use_debug_types) size += DWARF_TYPE_SIGNATURE_SIZE; else if (dwarf_version == 2) size += DWARF2_ADDR_SIZE; --- 9431,9437 ---- we use DW_FORM_ref_addr. In DWARF2, DW_FORM_ref_addr is sized by target address length, whereas in DWARF3 it's always sized as an offset. */ ! if (AT_ref (a)->comdat_type_p) size += DWARF_TYPE_SIGNATURE_SIZE; else if (dwarf_version == 2) size += DWARF2_ADDR_SIZE; *************** value_format (dw_attr_node *a) *** 9721,9732 **** gcc_unreachable (); } case dw_val_class_loc_list: - case dw_val_class_view_list: if (dwarf_split_debug_info && dwarf_version >= 5 && AT_loc_list (a)->num_assigned) return DW_FORM_loclistx; /* FALLTHRU */ case dw_val_class_range_list: /* For range lists in DWARF 5, use DW_FORM_rnglistx from .debug_info.dwo but in .debug_info use DW_FORM_sec_offset, which is shorter if we --- 9727,9738 ---- gcc_unreachable (); } case dw_val_class_loc_list: if (dwarf_split_debug_info && dwarf_version >= 5 && AT_loc_list (a)->num_assigned) return DW_FORM_loclistx; /* FALLTHRU */ + case dw_val_class_view_list: case dw_val_class_range_list: /* For range lists in DWARF 5, use DW_FORM_rnglistx from .debug_info.dwo but in .debug_info use DW_FORM_sec_offset, which is shorter if we *************** value_format (dw_attr_node *a) *** 9869,9875 **** return DW_FORM_flag; case dw_val_class_die_ref: if (AT_ref_external (a)) ! return use_debug_types ? DW_FORM_ref_sig8 : DW_FORM_ref_addr; else return DW_FORM_ref; case dw_val_class_fde_ref: --- 9875,9886 ---- return DW_FORM_flag; case dw_val_class_die_ref: if (AT_ref_external (a)) ! { ! if (AT_ref (a)->comdat_type_p) ! return DW_FORM_ref_sig8; ! else ! return DW_FORM_ref_addr; ! } else return DW_FORM_ref; case dw_val_class_fde_ref: *************** output_skeleton_debug_sections (dw_die_r *** 11217,11223 **** /* Output a comdat type unit DIE and its children. */ static void ! output_comdat_type_unit (comdat_type_node *node) { const char *secname; char *tmp; --- 11228,11235 ---- /* Output a comdat type unit DIE and its children. */ static void ! output_comdat_type_unit (comdat_type_node *node, ! bool early_lto_debug ATTRIBUTE_UNUSED) { const char *secname; char *tmp; *************** output_comdat_type_unit (comdat_type_nod *** 11244,11257 **** if (dwarf_version >= 5) { if (!dwarf_split_debug_info) ! secname = ".debug_info"; else ! secname = ".debug_info.dwo"; } else if (!dwarf_split_debug_info) ! secname = ".debug_types"; else ! secname = ".debug_types.dwo"; tmp = XALLOCAVEC (char, 4 + DWARF_TYPE_SIGNATURE_SIZE * 2); sprintf (tmp, dwarf_version >= 5 ? "wi." : "wt."); --- 11256,11271 ---- if (dwarf_version >= 5) { if (!dwarf_split_debug_info) ! secname = early_lto_debug ? DEBUG_LTO_INFO_SECTION : DEBUG_INFO_SECTION; else ! secname = (early_lto_debug ! ? DEBUG_LTO_DWO_INFO_SECTION : DEBUG_DWO_INFO_SECTION); } else if (!dwarf_split_debug_info) ! secname = early_lto_debug ? ".gnu.debuglto_.debug_types" : ".debug_types"; else ! secname = (early_lto_debug ! ? ".gnu.debuglto_.debug_types.dwo" : ".debug_types.dwo"); tmp = XALLOCAVEC (char, 4 + DWARF_TYPE_SIGNATURE_SIZE * 2); sprintf (tmp, dwarf_version >= 5 ? "wi." : "wt."); *************** resolve_args_picking_1 (dw_loc_descr_ref *** 17879,17884 **** --- 17893,17900 ---- case DW_OP_push_object_address: case DW_OP_call_frame_cfa: case DW_OP_GNU_variable_value: + case DW_OP_GNU_addr_index: + case DW_OP_GNU_const_index: ++frame_offset_; break; *************** add_const_value_attribute (dw_die_ref di *** 19661,19666 **** --- 19677,19685 ---- case HIGH: case CONST_FIXED: + case MINUS: + case SIGN_EXTEND: + case ZERO_EXTEND: return false; case MEM: *************** gen_formal_parameter_die (tree node, tre *** 22202,22220 **** /* If the contexts differ, we may not be talking about the same thing. ??? When in LTO the DIE parent is the "abstract" copy and the ! context_die is the specification "copy". But this whole block ! should eventually be no longer needed. */ ! if (parm_die && parm_die->die_parent != context_die && !in_lto_p) { ! if (!DECL_ABSTRACT_P (node)) ! { ! /* This can happen when creating an inlined instance, in ! which case we need to create a new DIE that will get ! annotated with DW_AT_abstract_origin. */ ! parm_die = NULL; ! } ! else ! gcc_unreachable (); } if (parm_die && parm_die->die_parent == NULL) --- 22221,22238 ---- /* If the contexts differ, we may not be talking about the same thing. ??? When in LTO the DIE parent is the "abstract" copy and the ! context_die is the specification "copy". */ ! if (parm_die ! && parm_die->die_parent != context_die ! && (parm_die->die_parent->die_tag != DW_TAG_GNU_formal_parameter_pack ! || parm_die->die_parent->die_parent != context_die) ! && !in_lto_p) { ! gcc_assert (!DECL_ABSTRACT_P (node)); ! /* This can happen when creating a concrete instance, in ! which case we need to create a new DIE that will get ! annotated with DW_AT_abstract_origin. */ ! parm_die = NULL; } if (parm_die && parm_die->die_parent == NULL) *************** dwarf2out_late_global_decl (tree decl) *** 26573,26588 **** { dw_die_ref die = lookup_decl_die (decl); ! /* We may have to generate early debug late for LTO in case debug was not enabled at compile-time or the target doesn't support the LTO early debug scheme. */ if (! die && in_lto_p) ! { ! dwarf2out_decl (decl); ! die = lookup_decl_die (decl); ! } ! ! if (die) { /* We get called via the symtab code invoking late_global_decl for symbols that are optimized out. --- 26591,26602 ---- { dw_die_ref die = lookup_decl_die (decl); ! /* We may have to generate full debug late for LTO in case debug was not enabled at compile-time or the target doesn't support the LTO early debug scheme. */ if (! die && in_lto_p) ! dwarf2out_decl (decl); ! else if (die) { /* We get called via the symtab code invoking late_global_decl for symbols that are optimized out. *************** lookup_filename (const char *file_name) *** 26985,26990 **** --- 26999,27007 ---- if (!file_name) return NULL; + if (!file_name[0]) + file_name = ""; + dwarf_file_data **slot = file_table->find_slot_with_hash (file_name, htab_hash_string (file_name), INSERT); *************** dwarf2out_inline_entry (tree block) *** 27610,27615 **** --- 27627,27633 ---- static void dwarf2out_size_function (tree decl) { + set_early_dwarf s; function_to_dwarf_procedure (decl); } *************** prune_unused_types (void) *** 29410,29418 **** for (i = 0; base_types.iterate (i, &base_type); i++) prune_unused_types_mark (base_type, 1); ! /* For -fvar-tracking-assignments, also set the mark on nodes that could be ! referenced by DW_TAG_call_site DW_AT_call_origin (i.e. direct call ! callees). */ cgraph_node *cnode; FOR_EACH_FUNCTION (cnode) if (cnode->referred_to_p (false)) --- 29428,29436 ---- for (i = 0; base_types.iterate (i, &base_type); i++) prune_unused_types_mark (base_type, 1); ! /* Also set the mark on nodes that could be referenced by ! DW_TAG_call_site DW_AT_call_origin (i.e. direct call callees) or ! by DW_TAG_inlined_subroutine origins. */ cgraph_node *cnode; FOR_EACH_FUNCTION (cnode) if (cnode->referred_to_p (false)) *************** prune_unused_types (void) *** 29421,29428 **** if (die == NULL || die->die_mark) continue; for (cgraph_edge *e = cnode->callers; e; e = e->next_caller) ! if (e->caller != cnode ! && opt_for_fn (e->caller->decl, flag_var_tracking_assignments)) { prune_unused_types_mark (die, 1); break; --- 29439,29445 ---- if (die == NULL || die->die_mark) continue; for (cgraph_edge *e = cnode->callers; e; e = e->next_caller) ! if (e->caller != cnode) { prune_unused_types_mark (die, 1); break; *************** dwarf2out_finish (const char *) *** 31398,31404 **** ? dl_section_ref : debug_skeleton_line_section_label)); ! output_comdat_type_unit (ctnode); *slot = ctnode; } --- 31415,31421 ---- ? dl_section_ref : debug_skeleton_line_section_label)); ! output_comdat_type_unit (ctnode, false); *slot = ctnode; } *************** dwarf2out_early_finish (const char *file *** 32039,32045 **** ? debug_line_section_label : debug_skeleton_line_section_label)); ! output_comdat_type_unit (ctnode); *slot = ctnode; } --- 32056,32062 ---- ? debug_line_section_label : debug_skeleton_line_section_label)); ! output_comdat_type_unit (ctnode, true); *slot = ctnode; } diff -Nrcpad gcc-8.3.0/gcc/emit-rtl.c gcc-8.4.0/gcc/emit-rtl.c *** gcc-8.3.0/gcc/emit-rtl.c Fri Mar 23 20:55:40 2018 --- gcc-8.4.0/gcc/emit-rtl.c Wed Mar 4 08:30:00 2020 *************** try_split (rtx pat, rtx_insn *trial, int *** 3940,3945 **** --- 3940,3946 ---- break; case REG_NON_LOCAL_GOTO: + case REG_LABEL_TARGET: for (insn = insn_last; insn != NULL_RTX; insn = PREV_INSN (insn)) { if (JUMP_P (insn)) diff -Nrcpad gcc-8.3.0/gcc/explow.c gcc-8.4.0/gcc/explow.c *** gcc-8.3.0/gcc/explow.c Tue Apr 10 09:58:57 2018 --- gcc-8.4.0/gcc/explow.c Wed Mar 4 08:30:00 2020 *************** promote_ssa_mode (const_tree name, int * *** 893,908 **** tree type = TREE_TYPE (name); int unsignedp = TYPE_UNSIGNED (type); ! machine_mode mode = TYPE_MODE (type); ! ! /* Bypass TYPE_MODE when it maps vector modes to BLKmode. */ ! if (mode == BLKmode) ! { ! gcc_assert (VECTOR_TYPE_P (type)); ! mode = type->type_common.mode; ! } ! ! machine_mode pmode = promote_mode (type, mode, &unsignedp); if (punsignedp) *punsignedp = unsignedp; --- 893,899 ---- tree type = TREE_TYPE (name); int unsignedp = TYPE_UNSIGNED (type); ! machine_mode pmode = promote_mode (type, TYPE_MODE (type), &unsignedp); if (punsignedp) *punsignedp = unsignedp; diff -Nrcpad gcc-8.3.0/gcc/expmed.c gcc-8.4.0/gcc/expmed.c *** gcc-8.3.0/gcc/expmed.c Wed Sep 5 07:23:00 2018 --- gcc-8.4.0/gcc/expmed.c Wed Mar 4 08:30:00 2020 *************** store_bit_field_1 (rtx str_rtx, poly_uin *** 838,843 **** --- 838,864 ---- if (MEM_P (op0)) op0 = adjust_bitfield_address_size (op0, op0_mode.else_blk (), 0, MEM_SIZE (op0)); + else if (!op0_mode.exists ()) + { + if (ibitnum == 0 + && known_eq (ibitsize, GET_MODE_BITSIZE (GET_MODE (op0))) + && MEM_P (value) + && !reverse) + { + value = adjust_address (value, GET_MODE (op0), 0); + emit_move_insn (op0, value); + return true; + } + if (!fallback_p) + return false; + rtx temp = assign_stack_temp (GET_MODE (op0), + GET_MODE_SIZE (GET_MODE (op0))); + emit_move_insn (temp, op0); + store_bit_field_1 (temp, bitsize, bitnum, 0, 0, fieldmode, value, + reverse, fallback_p); + emit_move_insn (op0, temp); + return true; + } else op0 = gen_lowpart (op0_mode.require (), op0); } *************** expand_mult_const (machine_mode mode, rt *** 3352,3364 **** tem = gen_lowpart (nmode, op0); } ! insn = get_last_insn (); ! wide_int wval_so_far ! = wi::uhwi (val_so_far, ! GET_MODE_PRECISION (as_a (nmode))); ! rtx c = immed_wide_int_const (wval_so_far, nmode); ! set_dst_reg_note (insn, REG_EQUAL, gen_rtx_MULT (nmode, tem, c), ! accum_inner); } } --- 3373,3392 ---- tem = gen_lowpart (nmode, op0); } ! /* Don't add a REG_EQUAL note if tem is a paradoxical SUBREG. ! In that case, only the low bits of accum would be guaranteed to ! be equal to the content of the REG_EQUAL note, the upper bits ! can be anything. */ ! if (!paradoxical_subreg_p (tem)) ! { ! insn = get_last_insn (); ! wide_int wval_so_far ! = wi::uhwi (val_so_far, ! GET_MODE_PRECISION (as_a (nmode))); ! rtx c = immed_wide_int_const (wval_so_far, nmode); ! set_dst_reg_note (insn, REG_EQUAL, gen_rtx_MULT (nmode, tem, c), ! accum_inner); ! } } } diff -Nrcpad gcc-8.3.0/gcc/expr.c gcc-8.4.0/gcc/expr.c *** gcc-8.3.0/gcc/expr.c Thu Feb 7 14:35:30 2019 --- gcc-8.4.0/gcc/expr.c Wed Mar 4 08:30:00 2020 *************** expand_assignment (tree to, tree from, b *** 5187,5195 **** } else { ! rtx from_rtx ! = simplify_gen_subreg (to_mode, result, ! TYPE_MODE (TREE_TYPE (from)), 0); if (from_rtx) { emit_move_insn (XEXP (to_rtx, 0), --- 5187,5199 ---- } else { ! rtx from_rtx; ! if (MEM_P (result)) ! from_rtx = change_address (result, to_mode, NULL_RTX); ! else ! from_rtx ! = simplify_gen_subreg (to_mode, result, ! TYPE_MODE (TREE_TYPE (from)), 0); if (from_rtx) { emit_move_insn (XEXP (to_rtx, 0), *************** expand_assignment (tree to, tree from, b *** 5258,5263 **** --- 5262,5268 ---- MEM_VOLATILE_P (to_rtx) = 1; } + gcc_checking_assert (known_ge (bitpos, 0)); if (optimize_bitfield_assignment_op (bitsize, bitpos, bitregion_start, bitregion_end, mode1, to_rtx, to, from, *************** store_field (rtx target, poly_int64 bits *** 7115,7120 **** --- 7120,7126 ---- } /* Store the value in the bitfield. */ + gcc_assert (known_ge (bitpos, 0)); store_bit_field (target, bitsize, bitpos, bitregion_start, bitregion_end, mode, temp, reverse); *************** expand_expr_real_1 (tree exp, rtx target *** 10658,10663 **** --- 10664,10677 ---- mode2 = CONSTANT_P (op0) ? TYPE_MODE (TREE_TYPE (tem)) : GET_MODE (op0); + /* Make sure bitpos is not negative, it can wreak havoc later. */ + if (maybe_lt (bitpos, 0)) + { + gcc_checking_assert (offset == NULL_TREE); + offset = size_int (bits_to_bytes_round_down (bitpos)); + bitpos = num_trailing_bits (bitpos); + } + /* If we have either an offset, a BLKmode result, or a reference outside the underlying object, we must force it to memory. Such a case can occur in Ada if we have unchecked conversion *************** expand_expr_real_1 (tree exp, rtx target *** 10906,10911 **** --- 10920,10926 ---- && GET_MODE_CLASS (ext_mode) == MODE_INT) reversep = TYPE_REVERSE_STORAGE_ORDER (type); + gcc_checking_assert (known_ge (bitpos, 0)); op0 = extract_bit_field (op0, bitsize, bitpos, unsignedp, (modifier == EXPAND_STACK_PARM ? NULL_RTX : target), diff -Nrcpad gcc-8.3.0/gcc/fold-const.c gcc-8.4.0/gcc/fold-const.c *** gcc-8.3.0/gcc/fold-const.c Thu Feb 14 10:04:35 2019 --- gcc-8.4.0/gcc/fold-const.c Wed Mar 4 08:30:00 2020 *************** combine_comparisons (location_t loc, *** 2894,2899 **** --- 2894,2904 ---- If OEP_LEXICOGRAPHIC is set, then also handle expressions with side-effects such as MODIFY_EXPR, RETURN_EXPR, as well as STATEMENT_LISTs. + If OEP_BITWISE is set, then require the values to be bitwise identical + rather than simply numerically equal. Do not take advantage of things + like math-related flags or undefined behavior; only return true for + values that are provably bitwise identical in all circumstances. + Unless OEP_MATCH_SIDE_EFFECTS is set, the function returns false on any operand with side effect. This is unnecesarily conservative in the case we know that arg0 and arg1 are in disjoint code paths (such as in *************** operand_equal_p (const_tree arg0, const_ *** 2937,2942 **** --- 2942,2952 ---- if (!TREE_TYPE (arg0) || !TREE_TYPE (arg1)) return 0; + /* Bitwise identity makes no sense if the values have different layouts. */ + if ((flags & OEP_BITWISE) + && !tree_nop_conversion_p (TREE_TYPE (arg0), TREE_TYPE (arg1))) + return 0; + /* We cannot consider pointers to different address space equal. */ if (POINTER_TYPE_P (TREE_TYPE (arg0)) && POINTER_TYPE_P (TREE_TYPE (arg1)) *************** operand_equal_p (const_tree arg0, const_ *** 3069,3076 **** if (real_identical (&TREE_REAL_CST (arg0), &TREE_REAL_CST (arg1))) return 1; ! ! if (!HONOR_SIGNED_ZEROS (arg0)) { /* If we do not distinguish between signed and unsigned zero, consider them equal. */ --- 3079,3085 ---- if (real_identical (&TREE_REAL_CST (arg0), &TREE_REAL_CST (arg1))) return 1; ! if (!(flags & OEP_BITWISE) && !HONOR_SIGNED_ZEROS (arg0)) { /* If we do not distinguish between signed and unsigned zero, consider them equal. */ *************** operand_equal_p (const_tree arg0, const_ *** 3122,3128 **** break; } ! if (flags & OEP_ONLY_CONST) return 0; /* Define macros to test an operand from arg0 and arg1 for equality and a --- 3131,3139 ---- break; } ! /* Don't handle more cases for OEP_BITWISE, since we can't guarantee that ! two instances of undefined behavior will give identical results. */ ! if (flags & (OEP_ONLY_CONST | OEP_BITWISE)) return 0; /* Define macros to test an operand from arg0 and arg1 for equality and a *************** operand_equal_p (const_tree arg0, const_ *** 3179,3188 **** switch (TREE_CODE (arg0)) { case INDIRECT_REF: ! if (!(flags & OEP_ADDRESS_OF) ! && (TYPE_ALIGN (TREE_TYPE (arg0)) ! != TYPE_ALIGN (TREE_TYPE (arg1)))) ! return 0; flags &= ~OEP_ADDRESS_OF; return OP_SAME (0); --- 3190,3205 ---- switch (TREE_CODE (arg0)) { case INDIRECT_REF: ! if (!(flags & OEP_ADDRESS_OF)) ! { ! if (TYPE_ALIGN (TREE_TYPE (arg0)) ! != TYPE_ALIGN (TREE_TYPE (arg1))) ! return 0; ! /* Verify that the access types are compatible. */ ! if (TYPE_MAIN_VARIANT (TREE_TYPE (arg0)) ! != TYPE_MAIN_VARIANT (TREE_TYPE (arg1))) ! return 0; ! } flags &= ~OEP_ADDRESS_OF; return OP_SAME (0); *************** decode_field_reference (location_t loc, *** 4239,4245 **** There are problems with FP fields since the type_for_size call below can fail for, e.g., XFmode. */ if (! INTEGRAL_TYPE_P (TREE_TYPE (exp))) ! return 0; /* We are interested in the bare arrangement of bits, so strip everything that doesn't affect the machine mode. However, record the type of the --- 4256,4262 ---- There are problems with FP fields since the type_for_size call below can fail for, e.g., XFmode. */ if (! INTEGRAL_TYPE_P (TREE_TYPE (exp))) ! return NULL_TREE; /* We are interested in the bare arrangement of bits, so strip everything that doesn't affect the machine mode. However, record the type of the *************** decode_field_reference (location_t loc, *** 4255,4261 **** exp = TREE_OPERAND (exp, 0); STRIP_NOPS (exp); STRIP_NOPS (and_mask); if (TREE_CODE (and_mask) != INTEGER_CST) ! return 0; } poly_int64 poly_bitsize, poly_bitpos; --- 4272,4278 ---- exp = TREE_OPERAND (exp, 0); STRIP_NOPS (exp); STRIP_NOPS (and_mask); if (TREE_CODE (and_mask) != INTEGER_CST) ! return NULL_TREE; } poly_int64 poly_bitsize, poly_bitpos; *************** decode_field_reference (location_t loc, *** 4271,4277 **** || (! AGGREGATE_TYPE_P (TREE_TYPE (inner)) && compare_tree_int (TYPE_SIZE (TREE_TYPE (inner)), *pbitpos + *pbitsize) < 0)) ! return 0; *exp_ = exp; --- 4288,4298 ---- || (! AGGREGATE_TYPE_P (TREE_TYPE (inner)) && compare_tree_int (TYPE_SIZE (TREE_TYPE (inner)), *pbitpos + *pbitsize) < 0)) ! return NULL_TREE; ! ! unsigned_type = lang_hooks.types.type_for_size (*pbitsize, 1); ! if (unsigned_type == NULL_TREE) ! return NULL_TREE; *exp_ = exp; *************** decode_field_reference (location_t loc, *** 4282,4288 **** *punsignedp = TYPE_UNSIGNED (outer_type); /* Compute the mask to access the bitfield. */ - unsigned_type = lang_hooks.types.type_for_size (*pbitsize, 1); precision = TYPE_PRECISION (unsigned_type); mask = build_int_cst_type (unsigned_type, -1); --- 4303,4308 ---- *************** fold_range_test (location_t loc, enum tr *** 5515,5526 **** /* On machines where the branch cost is expensive, if this is a short-circuited branch and the underlying object on both sides is the same, make a non-short-circuit operation. */ ! else if (LOGICAL_OP_NON_SHORT_CIRCUIT ! && !flag_sanitize_coverage ! && lhs != 0 && rhs != 0 ! && (code == TRUTH_ANDIF_EXPR ! || code == TRUTH_ORIF_EXPR) ! && operand_equal_p (lhs, rhs, 0)) { /* If simple enough, just rewrite. Otherwise, make a SAVE_EXPR unless we are at top level or LHS contains a PLACEHOLDER_EXPR, in --- 5535,5549 ---- /* On machines where the branch cost is expensive, if this is a short-circuited branch and the underlying object on both sides is the same, make a non-short-circuit operation. */ ! bool logical_op_non_short_circuit = LOGICAL_OP_NON_SHORT_CIRCUIT; ! if (PARAM_VALUE (PARAM_LOGICAL_OP_NON_SHORT_CIRCUIT) != -1) ! logical_op_non_short_circuit ! = PARAM_VALUE (PARAM_LOGICAL_OP_NON_SHORT_CIRCUIT); ! if (logical_op_non_short_circuit ! && !flag_sanitize_coverage ! && lhs != 0 && rhs != 0 ! && (code == TRUTH_ANDIF_EXPR || code == TRUTH_ORIF_EXPR) ! && operand_equal_p (lhs, rhs, 0)) { /* If simple enough, just rewrite. Otherwise, make a SAVE_EXPR unless we are at top level or LHS contains a PLACEHOLDER_EXPR, in *************** fold_truth_andor (location_t loc, enum t *** 8165,8171 **** if ((tem = fold_truth_andor_1 (loc, code, type, arg0, arg1)) != 0) return tem; ! if (LOGICAL_OP_NON_SHORT_CIRCUIT && !flag_sanitize_coverage && (code == TRUTH_AND_EXPR || code == TRUTH_ANDIF_EXPR --- 8188,8198 ---- if ((tem = fold_truth_andor_1 (loc, code, type, arg0, arg1)) != 0) return tem; ! bool logical_op_non_short_circuit = LOGICAL_OP_NON_SHORT_CIRCUIT; ! if (PARAM_VALUE (PARAM_LOGICAL_OP_NON_SHORT_CIRCUIT) != -1) ! logical_op_non_short_circuit ! = PARAM_VALUE (PARAM_LOGICAL_OP_NON_SHORT_CIRCUIT); ! if (logical_op_non_short_circuit && !flag_sanitize_coverage && (code == TRUTH_AND_EXPR || code == TRUTH_ANDIF_EXPR *************** fold_relational_const (enum tree_code co *** 13994,14006 **** { tree elem0 = VECTOR_CST_ELT (op0, i); tree elem1 = VECTOR_CST_ELT (op1, i); ! tree tmp = fold_relational_const (code, type, elem0, elem1); if (tmp == NULL_TREE) return NULL_TREE; if (integer_zerop (tmp)) ! return constant_boolean_node (false, type); } ! return constant_boolean_node (true, type); } tree_vector_builder elts; if (!elts.new_binary_operation (type, op0, op1, false)) --- 14021,14033 ---- { tree elem0 = VECTOR_CST_ELT (op0, i); tree elem1 = VECTOR_CST_ELT (op1, i); ! tree tmp = fold_relational_const (EQ_EXPR, type, elem0, elem1); if (tmp == NULL_TREE) return NULL_TREE; if (integer_zerop (tmp)) ! return constant_boolean_node (code == NE_EXPR, type); } ! return constant_boolean_node (code == EQ_EXPR, type); } tree_vector_builder elts; if (!elts.new_binary_operation (type, op0, op1, false)) *************** test_vector_folding () *** 14671,14676 **** --- 14698,14704 ---- tree type = build_vector_type (inner_type, 4); tree zero = build_zero_cst (type); tree one = build_one_cst (type); + tree index = build_index_vector (type, 0, 1); /* Verify equality tests that return a scalar boolean result. */ tree res_type = boolean_type_node; *************** test_vector_folding () *** 14678,14683 **** --- 14706,14718 ---- ASSERT_TRUE (integer_nonzerop (fold_build2 (EQ_EXPR, res_type, zero, zero))); ASSERT_TRUE (integer_nonzerop (fold_build2 (NE_EXPR, res_type, zero, one))); ASSERT_FALSE (integer_nonzerop (fold_build2 (NE_EXPR, res_type, one, one))); + ASSERT_TRUE (integer_nonzerop (fold_build2 (NE_EXPR, res_type, index, one))); + ASSERT_FALSE (integer_nonzerop (fold_build2 (EQ_EXPR, res_type, + index, one))); + ASSERT_FALSE (integer_nonzerop (fold_build2 (NE_EXPR, res_type, + index, index))); + ASSERT_TRUE (integer_nonzerop (fold_build2 (EQ_EXPR, res_type, + index, index))); } /* Verify folding of VEC_DUPLICATE_EXPRs. */ diff -Nrcpad gcc-8.3.0/gcc/fortran/ChangeLog gcc-8.4.0/gcc/fortran/ChangeLog *** gcc-8.3.0/gcc/fortran/ChangeLog Fri Feb 22 14:20:37 2019 --- gcc-8.4.0/gcc/fortran/ChangeLog Wed Mar 4 08:30:30 2020 *************** *** 1,3 **** --- 1,525 ---- + 2020-03-04 Release Manager + + * GCC 8.4.0 released. + + 2020-02-19 Mark Eggleston + + Backported from mainline + 2020-02-18 Mark Eggleston + + PR fortran/93714 + * expr.c (gfc_check_pointer_assign): Move check for + matching character length to after checking the lvalue + attributes for target or pointer. + + 2020-02-14 Jakub Jelinek + + Backported from mainline + 2020-01-29 Jakub Jelinek + + PR fortran/93463 + * openmp.c (oacc_code_to_statement): Handle + EXEC_OACC_{ROUTINE,UPDATE,WAIT,CACHE,{ENTER,EXIT}_DATA,DECLARE}. + + 2020-01-22 Jakub Jelinek + + * parse.c (parse_omp_structured_block): Handle ST_OMP_TARGET_PARALLEL. + * trans-openmp.c (gfc_trans_omp_target) + : Call pushlevel first. + + PR fortran/93329 + * openmp.c (omp_code_to_statement): Handle remaining EXEC_OMP_* + cases. + + 2019-12-19 Jakub Jelinek + + PR fortran/92977 + * frontend-passes.c (in_omp_atomic): New variable. + (cfe_expr_0, matmul_to_var_expr, matmul_temp_args, + inline_matmul_assign): Don't optimize in EXEC_OMP_ATOMIC. + (optimize_namespace): Clear in_omp_atomic. + (gfc_code_walker): Set in_omp_atomic for EXEC_OMP_ATOMIC, save/restore + it around. + + 2019-12-11 Jakub Jelinek + + PR fortran/92899 + * trans-openmp.c (gfc_trans_omp_atomic): For GFC_OMP_ATOMIC_SWAP, + do look through conversion on expr2 if any. + + 2019-12-05 Jakub Jelinek + + PR fortran/92781 + * trans-decl.c (gfc_get_symbol_decl): If sym->backend_decl is + current_function_decl, add length to current rather than parent + function and expect DECL_CONTEXT (length) to be current_function_decl. + + 2019-11-27 Jakub Jelinek + + PR fortran/91944 + * simplify.c (gfc_simplify_spread): Check gfc_init_expr_flag instead + of gfc_current_ns->sym_root->n.sym->attr.flavor == FL_PARAMETER. + + 2020-02-03 Tobias Burnus + + Backported from mainline + 2020-02-03 Tobias Burnus + + PR fortran/93541 + * intrinisic.texi (OpenMP Modules OMP_LIB and OMP_LIB_KINDS): + Add undocumented parameters from omp_lib.f90.in. + + 2020-01-10 Tobias Burnus + + Backported from mainline + 2020-01-09 Tobias Burnus + + PR fortran/84135 + * array.c (gfc_set_array_spec): Fix shifting of codimensions + when adding a dimension. + * decl.c (merge_array_spec): Ditto. Fix using correct codimensions. + + 2019-12-30 Thomas Koenig + + Backport from trunk + PR fortran/92961 + * gfortran.h (gfc_seen_div0): Add declaration. + * arith.h (gfc_seen_div0): Add definition. + (eval_intrinsic): For integer division by zero, set gfc_seen_div0. + * decl.c (variable_decl): If resolution resp. simplification + fails for array spec and a division of zero error has been + seen, return MATCH_ERROR. + + 2019-11-29 Harald Anlauf + + Backport from mainline + PR fortran/92629 + * simplify.c (convert_mpz_to_unsigned): Skip assert for argument + range when -fno-range-check is specified. + + 2019-11-10 Thomas Koenig + + Backport from trunk + PR fortran/92113 + * trans-decl.c (gfc_get_symbol_decl): If __def_init actually + contains a value, put it into the read-only section. + + 2019-10-27 Paul Thomas + + Backport from mainline + PR fortran/86248 + * resolve.c (flag_fn_result_spec): Correct a typo before the + function declaration. + * trans-decl.c (gfc_sym_identifier): Boost the length of 'name' + to allow for all variants. Simplify the code by using a pointer + to the symbol's proc_name and taking the return out of each of + the conditional branches. Allow symbols with fn_result_spec set + that do not come from a procedure namespace and have a module + name to go through the non-fn_result_spec branch. + + 2019-10-18 Steven G. Kargl + + PR fortran/69455 + * trans-decl.c (generate_local_decl): Avoid misconstructed + intrinsic modules in a BLOCK construct. + + 2019-10-07 Thomas Koenig + + Backport from trunk + PR fortran/84487 + * trans-decl.c (gfc_get_symbol_decl): For __def_init, set + DECL_ARTIFICAL and do not set TREE_READONLY. + + 2019-09-28 Paul Thomas + + Backport from mainline + PR fortran/91588 + * expr.c (check_inquiry): Remove extended component refs by + using symbol pointers. If a function argument is an associate + variable with a constant target, copy the target expression in + place of the argument expression. Check that the charlen is not + NULL before using the string length. + + 2019-09-18 Thomas Koenig + + Backport from trunk + PR fortran/91550 + * frontend-passes.c (do_subscript): If step equals + zero, a previuos error has been reported; do nothing + in this case. + * resolve.c (gfc_resolve_iterator): Move error checking + after type conversion. + + 2019-09-15 Thomas Koenig + + Backport from trunk + PR fortran/91557 + * trans-decl.c (generate_local_decl): Do not warn if the symbol + is artificial. + * trans-types.c (get_formal_from_actual_arglist): Set artificial + attribute on dummy arguments. + + 2013-08-13 Thomas Koenig + + Backport from trunk + PR fortran/90563 + * frontend-passes.c (insert_index): Suppress errors while + simplifying the resulting expression. + + 2019-08-02 Thomas Koenig + Paul Thomas + + Backport from trunk + PR fortran/90786 + PR fortran/90813 + * trans-expr.c (pointer_assignment_is_proc_pointer) Remove as + it is very simple and only called from one place. + (gfc_trans_pointer_assignment): Rename non_proc_pointer_assign + as non_proc_ptr_assign. Assign to it directly, rather than call + to above, deleted function and use gfc_expr_attr instead of + only checking the reference chain. + * trans-decl.c (sym_identifier): New function. + (mangled_identifier): New function, doing most of the work + of gfc_sym_mangled_identifier. + (gfc_sym_mangled_identifier): Use mangled_identifier. Add mangled + identifier to global symbol table. + (get_proc_pointer_decl): Use backend decl from global identifier + if present. + + 2019-07-07 Paul Thomas + + Backport from trunk + PR fortran/91077 + * trans-array.c (gfc_conv_scalarized_array_ref) Delete code + that gave symbol backend decl for subref arrays. + + 2019-06-21 Thomas Koenig + + Backport from trunk + PR fortran/90937 + * trans-types.c (get_formal_from_actual_arglist): Get symbol from + current namespace so it will be freed later. If symbol is of type + character, get an empty character length. + + 2019-06-12 Thomas Koenig + Tomáš Trnka + + Backport from trunk + PR fortran/90744 + * trans-types.c (get_formal_from_actual_arglist): Unset typespec + flags which make no sense for procedures without explicit + interface. + + 2019-06-10 Paul Thomas + + Backport from trunk + PR fortran/90498 + * trans-stmt.c (trans_associate_var) Do not use the saved + descriptor if the expression is a COMPONENT_REF. + + 2019-06-09 Paul Thomas + + Backport from trunk + PR fortran/57284 + * resolve.c (find_array_spec): If this is a class expression + and the symbol and component array specs are the same, this is + not an error. + *trans-intrinsic.c (gfc_conv_intrinsic_size): If a class symbol + argument, has no namespace, it has come from the interface + mapping and the _data component must be accessed directly. + + 2019-05-30 Marek Polacek + + * lang.opt (ftail-call-workaround): Fix a typo. + + 2019-05-30 Jakub Jelinek + + * lang.opt (ftail-call-workaround=): Fix a typo - lenghts to lengths. + + 2019-05-29 Jakub Jelinek + + PR fortran/90329 + Backported from mainline + 2019-05-29 Jakub Jelinek + + PR fortran/90329 + * lang.opt (fbroken-callers): Remove. + (ftail-call-workaround, ftail-call-workaround=): New options. + * gfortran.h (struct gfc_namespace): Add implicit_interface_calls. + * interface.c (gfc_procedure_use): Set implicit_interface_calls + for calls to implicit interface procedures. + * trans-decl.c (create_function_arglist): Use flag_tail_call_workaround + instead of flag_broken_callers. If it is not 2, also require + sym->ns->implicit_interface_calls. + * invoke.texi (fbroken-callers): Remove documentation. + (ftail-call-workaround, ftail-call-workaround=): Document. + + 2019-05-19 Thomas Koenig + + PR fortran/90329 + * invoke.texi: Document -fbroken-callers. + * lang.opt: Add -fbroken-callers. + * trans-decl.c (create_function_arglist): Only set + DECL_HIDDEN_STRING_LENGTH if flag_broken_callers is set. + + 2019-05-16 Jakub Jelinek + + PR fortran/90329 + * trans-decl.c (create_function_arglist): Set + DECL_HIDDEN_STRING_LENGTH on hidden string length PARM_DECLs if + len is constant. + + 2019-04-30 Jakub Jelinek + + Backported from mainline + 2019-03-11 Jakub Jelinek + + PR fortran/89651 + * trans-openmp.c (gfc_omp_clause_default_ctor): Set TREE_NO_WARNING + on decl if adding COND_EXPR for allocatable. + (gfc_omp_clause_copy_ctor): Set TREE_NO_WARNING on dest. + + 2019-04-24 Paul Thomas + + Backport from mainline + PR fortran/87127 + * resolve.c (check_host_association): If an external function + is typed but not declared explicitly to be external, change the + old symbol from a variable to an external function. + + 2019-04-14 Thomas Koenig + + Backport from trunk + PR fortran/87352 + * gfortran.h (gfc_component): Add finalized field. + * class.c (finalize_component): If the component is already + finalized, return early. Set component->finalized on exit. + + 2019-04-14 Thomas Koenig + + Backport from trunk + PR fortran/89981 + * resolve.c (resolve_global_procedure): If the global symbol is an + ENTRY, also look up its name among the entries. + + 2019-04-10 Harald Anlauf + + Backport from trunk + PR fortran/89904 + * check.c (gfc_check_transfer): Reject procedures as actual + arguments for SOURCE and MOLD of TRANSFER intrinsic. + + 2019-03-31 Harald Anlauf + + PR fortran/83515 + PR fortran/85797 + * trans-types.c (gfc_typenode_for_spec): Handle conversion for + procedure pointers. + * target-memory.c (gfc_element_size): Handle size determination + for procedure pointers. + + 2019-03-30 Thomas Koenig + + PR fortran/78865 + Backport from trunk + * interface.c (compare_actual_formal): Change errors about + missing or extra to gfc_error_now to make sure they are issued. + Change "spec" to "specifier" in message. + * resolve.c (resolve_global_procedure): Also check for mismatching + interface with global symbols if the namespace has already been + resolved. + + 2019-03-24 Janus Weil + + PR fortran/71861 + Backport from trunk + * symbol.c (check_conflict): ABSTRACT attribute conflicts with + INTRINSIC attribute. + + 2019-03-23 Thomas Koenig + + PR fortran/68009 + Backport from trunk + * iresolve.c: Include trans.h. + (gfc_resolve_fe_runtine_error): Set backend_decl on + resolved_sym. + + 2019-03-17 Thomas Koenig + + PR fortran/84394 + Backport from trunk + * symbol.c (gfc_add_subroutine): If we are encountering a + subrtoutine within a BLOCK DATA and the name starts with an + underscore, do not check. + + 2019-03-16 Thomas Koenig + + PR fortran/66089 + Backport from trunk + * trans-array.c (gfc_scalar_elemental_arg_saved_as_reference): + Return false if a scalar tempoary is needed. + (gfc_walk_variable_expr): Fix up class refs. + + 2019-03-16 Thomas Koenig + + PR fortran/66695 + PR fortran/77746 + PR fortran/79485 + Backport from trunk + * gfortran.h (gfc_symbol): Add bind_c component. + (gfc_get_gsymbol): Add argument bind_c. + * decl.c (add_global_entry): Add bind_c argument to + gfc_get_symbol. + * parse.c (parse_block_data): Likewise. + (parse_module): Likewise. + (add_global_procedure): Likewise. + (add_global_program): Likewise. + * resolve.c (resolve_common_blocks): Likewise. + (resolve_global_procedure): Likewise. + (gfc_verify_binding_labels): Likewise. + * symbol.c (gfc_get_gsymbol): Add argument bind_c. Set bind_c + in gsym. + * trans-decl.c (gfc_get_module_backend_decl): Add bind_c argument + to gfc_get_symbol. + (gfc_get_extern_function_decl): If the sym has a binding label + and it cannot be found in the global symbol tabel, it is the wrong + one and vice versa. + + 2019-03-13 Thomas Koenig + + PR fortran/87673 + Backport from trunk + * match.c (gfc_match_type_spec): Remove call to + gfc_resolve_expr for character length. + + 2019-03-10 Thomas Koenig + + PR fortran/71544 + Backport from trunk + * trans-types.c (gfc_typenode_for_spec) Set ts->is_c_interop of + C_PTR and C_FUNPTR. + (create_fn_spec): Mark argument as escaping if ts->is_c_interop is set. + + 2019-03-10 Thomas Koenig + Steven G. Kargl + + PR fortran/87734 + Backort from trunk + * symbol.c (gfc_add_procedure): Only throw an error if the + procedure has not been declared either PUBLIC or PRIVATE. + * resolve.c (is_illegal_recursion): Remove an assert(). + + 2019-03-06 Harald Anlauf + + Backport from trunk + PR fortran/71203 + * expr.c (simplify_const_ref): Avoid null pointer dereference. + + 2019-03-06 Thomas Koenig + + PR fortran/72714 + Backport from trunk + * resolve.c (resolve_allocate_expr): Add some tests for coarrays. + + 2019-03-03 Harald Anlauf + + Backport from trunk + PR fortran/89077 + * decl.c (gfc_set_constant_character_len): Clear original string + representation after padding has been performed to target length. + * resolve.c (gfc_resolve_substring_charlen): Check substring + length for constantness prior to general calculation of length. + + 2019-03-03 Harald Anlauf + Steven G. Kargl + + Backport from trunk + PR fortran/77583 + * symbol.c (check_conflict): Check for valid procedure name + passed to error reporting routine. + + 2019-03-03 Thomas Koenig + + PR fortran/89174 + Backport from trunk + * trans-expr.c (gfc_find_and_cut_at_last_class_ref): Add is_mold + to garguments. If we are dealing with a MOLD, call + gfc_expr_to_initialize(). + * trans-stmt.c (gfc_trans_allocate): For MOLD, pass is_mold=true + to gfc_find_and_cut_at_last_class_ref. + * trans.h (gfc_find_and_cut_at_last_class_ref): Add optional + argument is_mold with default false. + + 2019-03-03 Thomas Koenig + + PR fortran/87689 + Backport from trunk + * gfortran.dg/lto/20091028-1_0.f90: Add -Wno-lto-type-mismatch to + options. + * gfortran.dg/lto/20091028-2_0.f90: Likewise. + * gfortran.dg/lto/pr87689_0.f: New file. + * gfortran.dg/lto/pr87689_1.f: New file. + * gfortran.dg/altreturn_9_0.f90: New file. + * gfortran.dg/altreturn_9_1.f90: New file. + + 2019-03-02 Jerry DeLisle + + Backport from trunk + PR fortran/84387 + * trans-io.c (transfer_expr): Do not return if there are no + components to the derived type or class. + + 2019-03-02 Harald Anlauf + + Backport from trunk + PR fortran/89516 + * check.c (gfc_calculate_transfer_sizes): Correct checks for cases + where storage size of elements of MOLD is 0. + + PR fortran/89492 + * check.c (gfc_calculate_transfer_sizes): Handle cases where + storage size of elements of MOLD is 0. + + PR fortran/89266 + PR fortran/88326 + * target-memory.c (gfc_element_size): Return false if element size + cannot be determined; element size is returned separately. + (gfc_target_expr_size): Return false if expression size cannot be + determined; expression size is returned separately. + * target-memory.h: Adjust prototypes. + * check.c (gfc_calculate_transfer_sizes): Adjust references to + gfc_target_expr_size, gfc_element_size. + * arith.c (hollerith2representation): Likewise. + * class.c (find_intrinsic_vtab): Likewise. + * simplify.c (gfc_simplify_sizeof): Likewise. + + 2019-02-23 Thomas Koenig + + PR fortran/86119 + Backport from trunk + * class.c (gfc_get_len_component): Add argument k for kind. + If the kind of the resulting expression is not equal to k, + convert it. + * gfortran.h (gfc_len_component): Adjust prototype. + * simplify.c (gfc_simplify_len): Pass kind to + gfc_get_len_component. + + 2019-02-23 Paul Thomas + + Backport from trunk + PR fortran/88117 + * resolve.c (deferred_op_assign): Return if the lhs expression + has the pointer attribute. + + 2019-02-22 Thomas Koenig + + PR fortran/71066 + Backport from trunk + * trans-decl.c (generate_coarray_sym_init): For an array + constructor in a DATA statement of a coarray variable, set the + rank to 1 to avoid confusion later on. If the constructor + contains only one value, use that for initiailizig. + 2019-02-22 Release Manager * GCC 8.3.0 released. diff -Nrcpad gcc-8.3.0/gcc/fortran/arith.c gcc-8.4.0/gcc/fortran/arith.c *** gcc-8.3.0/gcc/fortran/arith.c Sat Feb 2 16:53:28 2019 --- gcc-8.4.0/gcc/fortran/arith.c Wed Mar 4 08:30:00 2020 *************** along with GCC; see the file COPYING3. *** 32,37 **** --- 32,39 ---- #include "target-memory.h" #include "constructor.h" + bool gfc_seen_div0; + /* MPFR does not have a direct replacement for mpz_set_f() from GMP. It's easily implemented with a few calls though. */ *************** eval_intrinsic (gfc_intrinsic_op op, *** 1615,1620 **** --- 1617,1626 ---- gfc_error (gfc_arith_error (rc), &op1->where); if (rc == ARITH_OVERFLOW) goto done; + + if (rc == ARITH_DIV0 && op2->ts.type == BT_INTEGER) + gfc_seen_div0 = true; + return NULL; } *************** gfc_character2character (gfc_expr *src, *** 2548,2557 **** static void hollerith2representation (gfc_expr *result, gfc_expr *src) { ! int src_len, result_len; src_len = src->representation.length - src->ts.u.pad; ! result_len = gfc_target_expr_size (result); if (src_len > result_len) { --- 2554,2563 ---- static void hollerith2representation (gfc_expr *result, gfc_expr *src) { ! size_t src_len, result_len; src_len = src->representation.length - src->ts.u.pad; ! gfc_target_expr_size (result, &result_len); if (src_len > result_len) { diff -Nrcpad gcc-8.3.0/gcc/fortran/array.c gcc-8.4.0/gcc/fortran/array.c *** gcc-8.3.0/gcc/fortran/array.c Sun Dec 16 17:00:33 2018 --- gcc-8.4.0/gcc/fortran/array.c Wed Mar 4 08:30:00 2020 *************** gfc_set_array_spec (gfc_symbol *sym, gfc *** 849,855 **** sym->as->cray_pointee = as->cray_pointee; sym->as->cp_was_assumed = as->cp_was_assumed; ! for (i = 0; i < sym->as->corank; i++) { sym->as->lower[as->rank + i] = sym->as->lower[i]; sym->as->upper[as->rank + i] = sym->as->upper[i]; --- 849,855 ---- sym->as->cray_pointee = as->cray_pointee; sym->as->cp_was_assumed = as->cp_was_assumed; ! for (i = sym->as->corank - 1; i >= 0; i--) { sym->as->lower[as->rank + i] = sym->as->lower[i]; sym->as->upper[as->rank + i] = sym->as->upper[i]; diff -Nrcpad gcc-8.3.0/gcc/fortran/check.c gcc-8.4.0/gcc/fortran/check.c *** gcc-8.3.0/gcc/fortran/check.c Fri May 11 17:29:14 2018 --- gcc-8.4.0/gcc/fortran/check.c Wed Mar 4 08:30:00 2020 *************** gfc_calculate_transfer_sizes (gfc_expr * *** 5413,5428 **** return false; /* Calculate the size of the source. */ ! *source_size = gfc_target_expr_size (source); ! if (*source_size == 0) return false; /* Determine the size of the element. */ ! result_elt_size = gfc_element_size (mold); ! if (result_elt_size == 0) return false; ! if (mold->expr_type == EXPR_ARRAY || mold->rank || size) { int result_length; --- 5413,5453 ---- return false; /* Calculate the size of the source. */ ! if (!gfc_target_expr_size (source, source_size)) return false; /* Determine the size of the element. */ ! if (!gfc_element_size (mold, &result_elt_size)) return false; ! /* If the storage size of SOURCE is greater than zero and MOLD is an array, ! * a scalar with the type and type parameters of MOLD shall not have a ! * storage size equal to zero. ! * If MOLD is a scalar and SIZE is absent, the result is a scalar. ! * If MOLD is an array and SIZE is absent, the result is an array and of ! * rank one. Its size is as small as possible such that its physical ! * 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 % " ! "argument has size greater than 0", &mold->where); ! return false; ! } ! ! if (result_elt_size == 0 && *source_size == 0 && !size) ! { ! *result_size = 0; ! if (result_length_p) ! *result_length_p = 0; ! return true; ! } ! ! if ((result_elt_size > 0 && (mold->expr_type == EXPR_ARRAY || mold->rank)) ! || size) { int result_length; *************** gfc_check_transfer (gfc_expr *source, gf *** 5452,5457 **** --- 5477,5502 ---- size_t source_size; size_t result_size; + /* SOURCE shall be a scalar or array of any type. */ + if (source->ts.type == BT_PROCEDURE + && source->symtree->n.sym->attr.subroutine == 1) + { + gfc_error ("% argument of % intrinsic at %L " + "must not be a %s", &source->where, + gfc_basic_typename (source->ts.type)); + return false; + } + + /* MOLD shall be a scalar or array of any type. */ + if (mold->ts.type == BT_PROCEDURE + && mold->symtree->n.sym->attr.subroutine == 1) + { + gfc_error ("% argument of % intrinsic at %L " + "must not be a %s", &mold->where, + gfc_basic_typename (mold->ts.type)); + return false; + } + if (mold->ts.type == BT_HOLLERITH) { gfc_error ("% argument of % intrinsic at %L must not be" *************** gfc_check_transfer (gfc_expr *source, gf *** 5459,5464 **** --- 5504,5511 ---- return false; } + /* SIZE (optional) shall be an integer scalar. The corresponding actual + argument shall not be an optional dummy argument. */ if (size != NULL) { if (!type_check (size, 2, BT_INTEGER)) diff -Nrcpad gcc-8.3.0/gcc/fortran/class.c gcc-8.4.0/gcc/fortran/class.c *** gcc-8.3.0/gcc/fortran/class.c Thu Mar 1 08:56:31 2018 --- gcc-8.4.0/gcc/fortran/class.c Wed Mar 4 08:30:00 2020 *************** gfc_intrinsic_hash_value (gfc_typespec * *** 561,567 **** ref to the _len component. */ gfc_expr * ! gfc_get_len_component (gfc_expr *e) { gfc_expr *ptr; gfc_ref *ref, **last; --- 561,567 ---- ref to the _len component. */ gfc_expr * ! gfc_get_len_component (gfc_expr *e, int k) { gfc_expr *ptr; gfc_ref *ref, **last; *************** gfc_get_len_component (gfc_expr *e) *** 586,591 **** --- 586,599 ---- } /* And replace if with a ref to the _len component. */ gfc_add_len_component (ptr); + if (k != ptr->ts.kind) + { + gfc_typespec ts; + gfc_clear_ts (&ts); + ts.type = BT_INTEGER; + ts.kind = k; + gfc_convert_type_warn (ptr, &ts, 2, 0); + } return ptr; } *************** finalize_component (gfc_expr *expr, gfc_ *** 899,904 **** --- 907,915 ---- if (!comp_is_finalizable (comp)) return; + if (comp->finalized) + return; + e = gfc_copy_expr (expr); if (!e->ref) e->ref = ref = gfc_get_ref (); *************** finalize_component (gfc_expr *expr, gfc_ *** 1026,1031 **** --- 1037,1043 ---- sub_ns); gfc_free_expr (e); } + comp->finalized = true; } *************** find_intrinsic_vtab (gfc_typespec *ts) *** 2661,2666 **** --- 2673,2679 ---- gfc_namespace *sub_ns; gfc_namespace *contained; gfc_expr *e; + size_t e_size; gfc_get_symbol (name, ns, &vtype); if (!gfc_add_flavor (&vtype->attr, FL_DERIVED, NULL, *************** find_intrinsic_vtab (gfc_typespec *ts) *** 2695,2705 **** e = gfc_get_expr (); e->ts = *ts; e->expr_type = EXPR_VARIABLE; c->initializer = gfc_get_int_expr (gfc_size_kind, NULL, ! ts->type == BT_CHARACTER ! ? ts->kind ! : gfc_element_size (e)); gfc_free_expr (e); /* Add component _extends. */ --- 2708,2720 ---- e = gfc_get_expr (); e->ts = *ts; e->expr_type = EXPR_VARIABLE; + if (ts->type == BT_CHARACTER) + e_size = ts->kind; + else + gfc_element_size (e, &e_size); c->initializer = gfc_get_int_expr (gfc_size_kind, NULL, ! e_size); gfc_free_expr (e); /* Add component _extends. */ diff -Nrcpad gcc-8.3.0/gcc/fortran/decl.c gcc-8.4.0/gcc/fortran/decl.c *** gcc-8.3.0/gcc/fortran/decl.c Sun Feb 10 20:01:15 2019 --- gcc-8.4.0/gcc/fortran/decl.c Wed Mar 4 08:30:00 2020 *************** done: *** 838,845 **** static bool merge_array_spec (gfc_array_spec *from, gfc_array_spec *to, bool copy) { - int i, j; - if ((from->type == AS_ASSUMED_RANK && to->corank) || (to->type == AS_ASSUMED_RANK && from->corank)) { --- 838,843 ---- *************** merge_array_spec (gfc_array_spec *from, *** 854,871 **** to->cray_pointee = from->cray_pointee; to->cp_was_assumed = from->cp_was_assumed; ! for (i = 0; i < to->corank; i++) { /* Do not exceed the limits on lower[] and upper[]. gfortran cleans up elsewhere. */ ! j = from->rank + i; if (j >= GFC_MAX_DIMENSIONS) break; to->lower[j] = to->lower[i]; to->upper[j] = to->upper[i]; } ! for (i = 0; i < from->rank; i++) { if (copy) { --- 852,869 ---- to->cray_pointee = from->cray_pointee; to->cp_was_assumed = from->cp_was_assumed; ! for (int i = to->corank - 1; i >= 0; i--) { /* Do not exceed the limits on lower[] and upper[]. gfortran cleans up elsewhere. */ ! int j = from->rank + i; if (j >= GFC_MAX_DIMENSIONS) break; to->lower[j] = to->lower[i]; to->upper[j] = to->upper[i]; } ! for (int i = 0; i < from->rank; i++) { if (copy) { *************** merge_array_spec (gfc_array_spec *from, *** 884,906 **** to->corank = from->corank; to->cotype = from->cotype; ! for (i = 0; i < from->corank; i++) { /* Do not exceed the limits on lower[] and upper[]. gfortran cleans up elsewhere. */ ! j = to->rank + i; if (j >= GFC_MAX_DIMENSIONS) break; if (copy) { ! to->lower[j] = gfc_copy_expr (from->lower[i]); ! to->upper[j] = gfc_copy_expr (from->upper[i]); } else { ! to->lower[j] = from->lower[i]; ! to->upper[j] = from->upper[i]; } } } --- 882,905 ---- to->corank = from->corank; to->cotype = from->cotype; ! for (int i = 0; i < from->corank; i++) { /* Do not exceed the limits on lower[] and upper[]. gfortran cleans up elsewhere. */ ! int k = from->rank + i; ! int j = to->rank + i; if (j >= GFC_MAX_DIMENSIONS) break; if (copy) { ! to->lower[j] = gfc_copy_expr (from->lower[k]); ! to->upper[j] = gfc_copy_expr (from->upper[k]); } else { ! to->lower[j] = from->lower[k]; ! to->upper[j] = from->upper[k]; } } } *************** gfc_set_constant_character_len (gfc_char *** 1678,1683 **** --- 1677,1690 ---- free (expr->value.character.string); expr->value.character.string = s; expr->value.character.length = len; + /* If explicit representation was given, clear it + as it is no longer needed after padding. */ + if (expr->representation.length) + { + expr->representation.length = 0; + free (expr->representation.string); + expr->representation.string = NULL; + } } } *************** variable_decl (int elem) *** 2415,2420 **** --- 2422,2429 ---- goto cleanup; } + gfc_seen_div0 = false; + /* F2018:C830 (R816) An explicit-shape-spec whose bounds are not constant expressions shall appear only in a subprogram, derived type definition, BLOCK construct, or interface body. */ *************** variable_decl (int elem) *** 2431,2437 **** for (int i = 0; i < as->rank; i++) { e = gfc_copy_expr (as->lower[i]); ! gfc_resolve_expr (e); gfc_simplify_expr (e, 0); if (e && (e->expr_type != EXPR_CONSTANT)) { --- 2440,2451 ---- for (int i = 0; i < as->rank; i++) { e = gfc_copy_expr (as->lower[i]); ! if (!gfc_resolve_expr (e) && gfc_seen_div0) ! { ! m = MATCH_ERROR; ! goto cleanup; ! } ! gfc_simplify_expr (e, 0); if (e && (e->expr_type != EXPR_CONSTANT)) { *************** variable_decl (int elem) *** 2441,2447 **** gfc_free_expr (e); e = gfc_copy_expr (as->upper[i]); ! gfc_resolve_expr (e); gfc_simplify_expr (e, 0); if (e && (e->expr_type != EXPR_CONSTANT)) { --- 2455,2466 ---- gfc_free_expr (e); e = gfc_copy_expr (as->upper[i]); ! if (!gfc_resolve_expr (e) && gfc_seen_div0) ! { ! m = MATCH_ERROR; ! goto cleanup; ! } ! gfc_simplify_expr (e, 0); if (e && (e->expr_type != EXPR_CONSTANT)) { *************** variable_decl (int elem) *** 2467,2473 **** if (e->expr_type != EXPR_CONSTANT) { n = gfc_copy_expr (e); ! gfc_simplify_expr (n, 1); if (n->expr_type == EXPR_CONSTANT) gfc_replace_expr (e, n); else --- 2486,2497 ---- if (e->expr_type != EXPR_CONSTANT) { n = gfc_copy_expr (e); ! if (!gfc_simplify_expr (n, 1) && gfc_seen_div0) ! { ! m = MATCH_ERROR; ! goto cleanup; ! } ! if (n->expr_type == EXPR_CONSTANT) gfc_replace_expr (e, n); else *************** variable_decl (int elem) *** 2477,2483 **** if (e->expr_type != EXPR_CONSTANT) { n = gfc_copy_expr (e); ! gfc_simplify_expr (n, 1); if (n->expr_type == EXPR_CONSTANT) gfc_replace_expr (e, n); else --- 2501,2512 ---- if (e->expr_type != EXPR_CONSTANT) { n = gfc_copy_expr (e); ! if (!gfc_simplify_expr (n, 1) && gfc_seen_div0) ! { ! m = MATCH_ERROR; ! goto cleanup; ! } ! if (n->expr_type == EXPR_CONSTANT) gfc_replace_expr (e, n); else *************** variable_decl (int elem) *** 2805,2810 **** --- 2834,2840 ---- cleanup: /* Free stuff up and return. */ + gfc_seen_div0 = false; gfc_free_expr (initializer); gfc_free_array_spec (as); *************** gfc_match_decl_type_spec (gfc_typespec * *** 3891,3897 **** return MATCH_YES; } - m = gfc_match (" type ("); matched_type = (m == MATCH_YES); if (matched_type) --- 3921,3926 ---- *************** gfc_match_decl_type_spec (gfc_typespec * *** 3940,3946 **** m = MATCH_YES; if (matched_type && m == MATCH_YES && gfc_match_char (')') != MATCH_YES) ! m = MATCH_ERROR; return m; } --- 3969,3978 ---- m = MATCH_YES; if (matched_type && m == MATCH_YES && gfc_match_char (')') != MATCH_YES) ! { ! gfc_error ("Malformed type-spec at %C"); ! return MATCH_ERROR; ! } return m; } *************** gfc_match_decl_type_spec (gfc_typespec * *** 3963,3970 **** && !gfc_notify_std (GFC_STD_F2008, "TYPE with " "intrinsic-type-spec at %C")) return MATCH_ERROR; if (matched_type && gfc_match_char (')') != MATCH_YES) ! return MATCH_ERROR; ts->type = BT_REAL; ts->kind = gfc_default_double_kind; --- 3995,4006 ---- && !gfc_notify_std (GFC_STD_F2008, "TYPE with " "intrinsic-type-spec at %C")) return MATCH_ERROR; + if (matched_type && gfc_match_char (')') != MATCH_YES) ! { ! gfc_error ("Malformed type-spec at %C"); ! return MATCH_ERROR; ! } ts->type = BT_REAL; ts->kind = gfc_default_double_kind; *************** gfc_match_decl_type_spec (gfc_typespec * *** 3994,4000 **** return MATCH_ERROR; if (matched_type && gfc_match_char (')') != MATCH_YES) ! return MATCH_ERROR; ts->type = BT_COMPLEX; ts->kind = gfc_default_double_kind; --- 4030,4039 ---- return MATCH_ERROR; if (matched_type && gfc_match_char (')') != MATCH_YES) ! { ! gfc_error ("Malformed type-spec at %C"); ! return MATCH_ERROR; ! } ts->type = BT_COMPLEX; ts->kind = gfc_default_double_kind; *************** gfc_match_decl_type_spec (gfc_typespec * *** 4015,4021 **** if (m == MATCH_ERROR) return m; ! m = gfc_match_char (')'); } if (m != MATCH_YES) --- 4054,4066 ---- if (m == MATCH_ERROR) return m; ! gfc_gobble_whitespace (); ! if (gfc_peek_ascii_char () != ')') ! { ! gfc_error ("Malformed type-spec at %C"); ! return MATCH_ERROR; ! } ! m = gfc_match_char (')'); /* Burn closing ')'. */ } if (m != MATCH_YES) *************** add_global_entry (const char *name, cons *** 7156,7162 **** name is a global identifier. */ if (!binding_label || gfc_notification_std (GFC_STD_F2008)) { ! s = gfc_get_gsymbol (name); if (s->defined || (s->type != GSYM_UNKNOWN && s->type != type)) { --- 7201,7207 ---- name is a global identifier. */ if (!binding_label || gfc_notification_std (GFC_STD_F2008)) { ! s = gfc_get_gsymbol (name, false); if (s->defined || (s->type != GSYM_UNKNOWN && s->type != type)) { *************** add_global_entry (const char *name, cons *** 7178,7184 **** && (!gfc_notification_std (GFC_STD_F2008) || strcmp (name, binding_label) != 0)) { ! s = gfc_get_gsymbol (binding_label); if (s->defined || (s->type != GSYM_UNKNOWN && s->type != type)) { --- 7223,7229 ---- && (!gfc_notification_std (GFC_STD_F2008) || strcmp (name, binding_label) != 0)) { ! s = gfc_get_gsymbol (binding_label, true); if (s->defined || (s->type != GSYM_UNKNOWN && s->type != type)) { diff -Nrcpad gcc-8.3.0/gcc/fortran/expr.c gcc-8.4.0/gcc/fortran/expr.c *** gcc-8.3.0/gcc/fortran/expr.c Sun Feb 10 18:30:01 2019 --- gcc-8.4.0/gcc/fortran/expr.c Wed Mar 4 08:30:00 2020 *************** simplify_const_ref (gfc_expr *p) *** 1784,1791 **** string_len = 0; if (!p->ts.u.cl) ! p->ts.u.cl = gfc_new_charlen (p->symtree->n.sym->ns, ! NULL); else gfc_free_expr (p->ts.u.cl->length); --- 1784,1797 ---- string_len = 0; if (!p->ts.u.cl) ! { ! if (p->symtree) ! p->ts.u.cl = gfc_new_charlen (p->symtree->n.sym->ns, ! NULL); ! else ! p->ts.u.cl = gfc_new_charlen (gfc_current_ns, ! NULL); ! } else gfc_free_expr (p->ts.u.cl->length); *************** check_inquiry (gfc_expr *e, int not_rest *** 2390,2395 **** --- 2396,2403 ---- int i = 0; gfc_actual_arglist *ap; + gfc_symbol *sym; + gfc_symbol *asym; if (!e->value.function.isym || !e->value.function.isym->inquiry) *************** check_inquiry (gfc_expr *e, int not_rest *** 2399,2418 **** if (e->symtree == NULL) return MATCH_NO; ! if (e->symtree->n.sym->from_intmod) { ! if (e->symtree->n.sym->from_intmod == INTMOD_ISO_FORTRAN_ENV ! && e->symtree->n.sym->intmod_sym_id != ISOFORTRAN_COMPILER_OPTIONS ! && e->symtree->n.sym->intmod_sym_id != ISOFORTRAN_COMPILER_VERSION) return MATCH_NO; ! if (e->symtree->n.sym->from_intmod == INTMOD_ISO_C_BINDING ! && e->symtree->n.sym->intmod_sym_id != ISOCBINDING_C_SIZEOF) return MATCH_NO; } else { ! name = e->symtree->n.sym->name; functions = (gfc_option.warn_std & GFC_STD_F2003) ? inquiry_func_f2003 : inquiry_func_f95; --- 2407,2428 ---- if (e->symtree == NULL) return MATCH_NO; ! sym = e->symtree->n.sym; ! ! if (sym->from_intmod) { ! if (sym->from_intmod == INTMOD_ISO_FORTRAN_ENV ! && sym->intmod_sym_id != ISOFORTRAN_COMPILER_OPTIONS ! && sym->intmod_sym_id != ISOFORTRAN_COMPILER_VERSION) return MATCH_NO; ! if (sym->from_intmod == INTMOD_ISO_C_BINDING ! && sym->intmod_sym_id != ISOCBINDING_C_SIZEOF) return MATCH_NO; } else { ! name = sym->name; functions = (gfc_option.warn_std & GFC_STD_F2003) ? inquiry_func_f2003 : inquiry_func_f95; *************** check_inquiry (gfc_expr *e, int not_rest *** 2434,2474 **** if (!ap->expr) continue; if (ap->expr->ts.type == BT_UNKNOWN) { ! if (ap->expr->symtree->n.sym->ts.type == BT_UNKNOWN ! && !gfc_set_default_type (ap->expr->symtree->n.sym, 0, gfc_current_ns)) return MATCH_NO; ! ap->expr->ts = ap->expr->symtree->n.sym->ts; } ! /* Assumed character length will not reduce to a constant expression ! with LEN, as required by the standard. */ ! if (i == 5 && not_restricted && ap->expr->symtree ! && ap->expr->symtree->n.sym->ts.type == BT_CHARACTER ! && (ap->expr->symtree->n.sym->ts.u.cl->length == NULL ! || ap->expr->symtree->n.sym->ts.deferred)) ! { ! gfc_error ("Assumed or deferred character length variable %qs " ! "in constant expression at %L", ! ap->expr->symtree->n.sym->name, ! &ap->expr->where); ! return MATCH_ERROR; ! } ! else if (not_restricted && !gfc_check_init_expr (ap->expr)) ! return MATCH_ERROR; ! if (not_restricted == 0 ! && ap->expr->expr_type != EXPR_VARIABLE ! && !check_restricted (ap->expr)) return MATCH_ERROR; ! if (not_restricted == 0 ! && ap->expr->expr_type == EXPR_VARIABLE ! && ap->expr->symtree->n.sym->attr.dummy ! && ap->expr->symtree->n.sym->attr.optional) ! return MATCH_NO; } return MATCH_YES; --- 2444,2491 ---- if (!ap->expr) continue; + asym = ap->expr->symtree ? ap->expr->symtree->n.sym : NULL; + if (ap->expr->ts.type == BT_UNKNOWN) { ! if (asym && asym->ts.type == BT_UNKNOWN ! && !gfc_set_default_type (asym, 0, gfc_current_ns)) return MATCH_NO; ! ap->expr->ts = asym->ts; } ! if (asym && asym->assoc && asym->assoc->target ! && asym->assoc->target->expr_type == EXPR_CONSTANT) ! { ! gfc_free_expr (ap->expr); ! ap->expr = gfc_copy_expr (asym->assoc->target); ! } ! /* Assumed character length will not reduce to a constant expression ! with LEN, as required by the standard. */ ! if (i == 5 && not_restricted && asym ! && asym->ts.type == BT_CHARACTER ! && ((asym->ts.u.cl && asym->ts.u.cl->length == NULL) ! || asym->ts.deferred)) ! { ! gfc_error ("Assumed or deferred character length variable %qs " ! "in constant expression at %L", ! asym->name, &ap->expr->where); return MATCH_ERROR; + } + else if (not_restricted && !gfc_check_init_expr (ap->expr)) + return MATCH_ERROR; ! if (not_restricted == 0 ! && ap->expr->expr_type != EXPR_VARIABLE ! && !check_restricted (ap->expr)) ! return MATCH_ERROR; ! ! if (not_restricted == 0 ! && ap->expr->expr_type == EXPR_VARIABLE ! && asym->attr.dummy && asym->attr.optional) ! return MATCH_NO; } return MATCH_YES; *************** gfc_check_pointer_assign (gfc_expr *lval *** 3878,3890 **** if (rvalue->expr_type == EXPR_NULL) return true; - if (lvalue->ts.type == BT_CHARACTER) - { - bool t = gfc_check_same_strlen (lvalue, rvalue, "pointer assignment"); - if (!t) - return false; - } - if (rvalue->expr_type == EXPR_VARIABLE && is_subref_array (rvalue)) lvalue->symtree->n.sym->attr.subref_array_pointer = 1; --- 3895,3900 ---- *************** gfc_check_pointer_assign (gfc_expr *lval *** 3940,3945 **** --- 3950,3962 ---- } } + if (lvalue->ts.type == BT_CHARACTER) + { + bool t = gfc_check_same_strlen (lvalue, rvalue, "pointer assignment"); + if (!t) + return false; + } + if (is_pure && gfc_impure_variable (rvalue->symtree->n.sym)) { gfc_error ("Bad target in pointer assignment in PURE " diff -Nrcpad gcc-8.3.0/gcc/fortran/frontend-passes.c gcc-8.4.0/gcc/fortran/frontend-passes.c *** gcc-8.3.0/gcc/fortran/frontend-passes.c Sat Dec 22 19:19:14 2018 --- gcc-8.4.0/gcc/fortran/frontend-passes.c Wed Mar 4 08:30:00 2020 *************** static int forall_level; *** 93,98 **** --- 93,102 ---- static bool in_omp_workshare; + /* Keep track of whether we are within an OMP atomic. */ + + static bool in_omp_atomic; + /* Keep track of whether we are within a WHERE statement. */ static bool in_where; *************** cfe_expr_0 (gfc_expr **e, int *walk_subt *** 864,872 **** gfc_expr *newvar; gfc_expr **ei, **ej; ! /* Don't do this optimization within OMP workshare or ASSOC lists. */ ! if (in_omp_workshare || in_assoc_list) { *walk_subtrees = 0; return 0; --- 868,876 ---- gfc_expr *newvar; gfc_expr **ei, **ej; ! /* Don't do this optimization within OMP workshare/atomic or ASSOC lists. */ ! if (in_omp_workshare || in_omp_atomic || in_assoc_list) { *walk_subtrees = 0; return 0; *************** optimize_namespace (gfc_namespace *ns) *** 1415,1420 **** --- 1419,1425 ---- iterator_level = 0; in_assoc_list = false; in_omp_workshare = false; + in_omp_atomic = false; if (flag_frontend_optimize) { *************** insert_index (gfc_expr *e, gfc_symbol *s *** 2461,2467 **** --- 2466,2477 ---- data.sym = sym; mpz_init_set (data.val, val); gfc_expr_walker (&n, callback_insert_index, (void *) &data); + + /* Suppress errors here - we could get errors here such as an + out of bounds access for arrays, see PR 90563. */ + gfc_push_suppress_errors (); gfc_simplify_expr (n, 0); + gfc_pop_suppress_errors (); if (n->expr_type == EXPR_CONSTANT) { *************** do_subscript (gfc_expr **e) *** 2511,2516 **** --- 2521,2527 ---- bool have_do_start, have_do_end; bool error_not_proven; int warn; + int sgn; dl = lp->c; if (dl == NULL) *************** do_subscript (gfc_expr **e) *** 2539,2545 **** Do not warn in this case. */ if (dl->ext.iterator->step->expr_type == EXPR_CONSTANT) ! mpz_init_set (do_step, dl->ext.iterator->step->value.integer); else continue; --- 2550,2565 ---- Do not warn in this case. */ if (dl->ext.iterator->step->expr_type == EXPR_CONSTANT) ! { ! sgn = mpz_cmp_ui (dl->ext.iterator->step->value.integer, 0); ! /* This can happen, but then the error has been ! reported previusly. */ ! if (sgn == 0) ! continue; ! ! mpz_init_set (do_step, dl->ext.iterator->step->value.integer); ! } ! else continue; *************** do_subscript (gfc_expr **e) *** 2563,2568 **** --- 2583,2598 ---- if (!have_do_start && !have_do_end) return 0; + /* No warning inside a zero-trip loop. */ + if (have_do_start && have_do_end) + { + int cmp; + + cmp = mpz_cmp (do_end, do_start); + if ((sgn > 0 && cmp < 0) || (sgn < 0 && cmp > 0)) + break; + } + /* May have to correct the end value if the step does not equal one. */ if (have_do_start && have_do_end && mpz_cmp_ui (do_step, 1) != 0) *************** matmul_to_var_expr (gfc_expr **ep, int * *** 2726,2732 **** return 0; if (forall_level > 0 || iterator_level > 0 || in_omp_workshare ! || in_where || in_assoc_list) return 0; /* Check if this is already in the form c = matmul(a,b). */ --- 2756,2762 ---- return 0; if (forall_level > 0 || iterator_level > 0 || in_omp_workshare ! || in_omp_atomic || in_where || in_assoc_list) return 0; /* Check if this is already in the form c = matmul(a,b). */ *************** matmul_temp_args (gfc_code **c, int *wal *** 2788,2794 **** return 0; if (forall_level > 0 || iterator_level > 0 || in_omp_workshare ! || in_where) return 0; /* This has some duplication with inline_matmul_assign. This --- 2818,2824 ---- return 0; if (forall_level > 0 || iterator_level > 0 || in_omp_workshare ! || in_omp_atomic || in_where) return 0; /* This has some duplication with inline_matmul_assign. This *************** inline_matmul_assign (gfc_code **c, int *** 3718,3724 **** /* For now don't do anything in OpenMP workshare, it confuses its translation, which expects only the allowed statements in there. We should figure out how to parallelize this eventually. */ ! if (in_omp_workshare) return 0; expr1 = co->expr1; --- 3748,3754 ---- /* For now don't do anything in OpenMP workshare, it confuses its translation, which expects only the allowed statements in there. We should figure out how to parallelize this eventually. */ ! if (in_omp_workshare || in_omp_atomic) return 0; expr1 = co->expr1; *************** gfc_code_walker (gfc_code **c, walk_code *** 4530,4535 **** --- 4560,4566 ---- gfc_code *co; gfc_association_list *alist; bool saved_in_omp_workshare; + bool saved_in_omp_atomic; bool saved_in_where; /* There might be statement insertions before the current code, *************** gfc_code_walker (gfc_code **c, walk_code *** 4537,4542 **** --- 4568,4574 ---- co = *c; saved_in_omp_workshare = in_omp_workshare; + saved_in_omp_atomic = in_omp_atomic; saved_in_where = in_where; switch (co->op) *************** gfc_code_walker (gfc_code **c, walk_code *** 4734,4739 **** --- 4766,4775 ---- WALK_SUBEXPR (co->ext.dt->extra_comma); break; + case EXEC_OMP_ATOMIC: + in_omp_atomic = true; + break; + case EXEC_OMP_PARALLEL: case EXEC_OMP_PARALLEL_DO: case EXEC_OMP_PARALLEL_DO_SIMD: *************** gfc_code_walker (gfc_code **c, walk_code *** 4851,4856 **** --- 4887,4893 ---- select_level --; in_omp_workshare = saved_in_omp_workshare; + in_omp_atomic = saved_in_omp_atomic; in_where = saved_in_where; } } diff -Nrcpad gcc-8.3.0/gcc/fortran/gfortran.h gcc-8.4.0/gcc/fortran/gfortran.h *** gcc-8.3.0/gcc/fortran/gfortran.h Sun Feb 10 18:30:01 2019 --- gcc-8.4.0/gcc/fortran/gfortran.h Wed Mar 4 08:30:00 2020 *************** typedef struct gfc_component *** 1080,1085 **** --- 1080,1086 ---- struct gfc_typebound_proc *tb; /* When allocatable/pointer and in a coarray the associated token. */ tree caf_token; + bool finalized; } gfc_component; *************** typedef struct gfc_namespace *** 1856,1861 **** --- 1857,1865 ---- /* Set to 1 for !$ACC ROUTINE namespaces. */ unsigned oacc_routine:1; + + /* Set to 1 if there are any calls to procedures with implicit interface. */ + unsigned implicit_interface_calls:1; } gfc_namespace; *************** typedef struct gfc_gsymbol *** 1883,1888 **** --- 1887,1893 ---- enum gfc_symbol_type type; int defined, used; + bool bind_c; locus where; gfc_namespace *ns; } *************** void gfc_arith_done_1 (void); *** 2900,2905 **** --- 2905,2912 ---- arith gfc_check_integer_range (mpz_t p, int kind); bool gfc_check_character_range (gfc_char_t, int); + extern bool gfc_seen_div0; + /* trans-types.c */ bool gfc_check_any_c_kind (gfc_typespec *); int gfc_validate_kind (bt, int, bool); *************** void gfc_enforce_clean_symbol_state (voi *** 3059,3065 **** void gfc_free_dt_list (void); ! gfc_gsymbol *gfc_get_gsymbol (const char *); gfc_gsymbol *gfc_find_gsymbol (gfc_gsymbol *, const char *); gfc_gsymbol *gfc_find_case_gsymbol (gfc_gsymbol *, const char *); --- 3066,3072 ---- void gfc_free_dt_list (void); ! gfc_gsymbol *gfc_get_gsymbol (const char *, bool bind_c); gfc_gsymbol *gfc_find_gsymbol (gfc_gsymbol *, const char *); gfc_gsymbol *gfc_find_case_gsymbol (gfc_gsymbol *, const char *); *************** bool gfc_is_class_scalar_expr (gfc_expr *** 3426,3432 **** bool gfc_is_class_container_ref (gfc_expr *e); gfc_expr *gfc_class_initializer (gfc_typespec *, gfc_expr *); unsigned int gfc_hash_value (gfc_symbol *); ! gfc_expr *gfc_get_len_component (gfc_expr *e); bool gfc_build_class_symbol (gfc_typespec *, symbol_attribute *, gfc_array_spec **); gfc_symbol *gfc_find_derived_vtab (gfc_symbol *); --- 3433,3439 ---- bool gfc_is_class_container_ref (gfc_expr *e); gfc_expr *gfc_class_initializer (gfc_typespec *, gfc_expr *); unsigned int gfc_hash_value (gfc_symbol *); ! gfc_expr *gfc_get_len_component (gfc_expr *e, int); bool gfc_build_class_symbol (gfc_typespec *, symbol_attribute *, gfc_array_spec **); gfc_symbol *gfc_find_derived_vtab (gfc_symbol *); diff -Nrcpad gcc-8.3.0/gcc/fortran/gfortran.info gcc-8.4.0/gcc/fortran/gfortran.info *** gcc-8.3.0/gcc/fortran/gfortran.info Fri Feb 22 14:35:30 2019 --- gcc-8.4.0/gcc/fortran/gfortran.info Wed Mar 4 08:45:27 2020 *************** _Interoperability Options_ *** 493,499 **** _Code Generation Options_ *Note Options for code generation conventions: Code Gen Options. -faggressive-function-elimination -fblas-matmul-limit=N ! -fbounds-check -fcheck-array-temporaries -fcheck= -fcoarray= -fexternal-blas -ff2c -ffrontend-loop-interchange --- 493,500 ---- _Code Generation Options_ *Note Options for code generation conventions: Code Gen Options. -faggressive-function-elimination -fblas-matmul-limit=N ! -fbounds-check -ftail-call-workaround -ftail-call-workaround=N ! -fcheck-array-temporaries -fcheck= -fcoarray= -fexternal-blas -ff2c -ffrontend-loop-interchange *************** the other form by either removing 'no-' *** 1604,1609 **** --- 1605,1641 ---- '-fbounds-check' Deprecated alias for '-fcheck=bounds'. + '-ftail-call-workaround' + '-ftail-call-workaround=N' + Some C interfaces to Fortran codes violate the gfortran ABI by + omitting the hidden character length arguments as described in + *Note Argument passing conventions::. This can lead to crashes + because pushing arguments for tail calls can overflow the stack. + + To provide a workaround for existing binary packages, this option + disables tail call optimization for gfortran procedures with + character arguments. With '-ftail-call-workaround=2' tail call + optimization is disabled in all gfortran procedures with character + arguments, with '-ftail-call-workaround=1' or equivalent + '-ftail-call-workaround' only in gfortran procedures with character + arguments that call implicitly prototyped procedures. + + Using this option can lead to problems including crashes due to + insufficient stack space. + + It is _very strongly_ recommended to fix the code in question. The + '-fc-prototypes-external' option can be used to generate prototypes + which conform to gfortran's ABI, for inclusion in the source code. + + Support for this option will likely be withdrawn in a future + release of gfortran. + + The negative form, '-fno-tail-call-workaround' or equivalent + '-ftail-call-workaround=0', can be used to disable this option. + + Default is currently '-ftail-call-workaround', this will change in + future releases. + '-fcheck-array-temporaries' Deprecated alias for '-fcheck=array-temps'. *************** v4.5 (http://www.openmp.org/wp-content/u *** 19277,19282 **** --- 19309,19315 ---- constants: 'omp_lock_kind' + 'omp_lock_hint_kind' 'omp_nest_lock_kind' 'omp_proc_bind_kind' 'omp_sched_kind' *************** is '201511'. *** 19303,19308 **** --- 19336,19350 ---- 'omp_proc_bind_close' 'omp_proc_bind_spread' + The following scalar integer named constants are of the kind + 'omp_lock_hint_kind': + + 'omp_lock_hint_none' + 'omp_lock_hint_uncontended' + 'omp_lock_hint_contended' + 'omp_lock_hint_nonspeculative' + 'omp_lock_hint_speculative' +  File: gfortran.info, Node: OpenACC Module OPENACC, Prev: OpenMP Modules OMP_LIB and OMP_LIB_KINDS, Up: Intrinsic Modules *************** both forms. *** 20790,20803 **** (line 154) * dU: Preprocessing Options. (line 44) ! * faggressive-function-elimination: Code Gen Options. (line 367) ! * falign-commons: Code Gen Options. (line 340) * fall-intrinsics: Fortran Dialect Options. (line 17) ! * fblas-matmul-limit: Code Gen Options. (line 274) * fbounds-check: Code Gen Options. (line 198) * fcheck: Code Gen Options. (line 141) ! * fcheck-array-temporaries: Code Gen Options. (line 201) * fcoarray: Code Gen Options. (line 127) * fconvert=CONVERSION: Runtime Options. (line 10) * fcray-pointer: Fortran Dialect Options. --- 20832,20845 ---- (line 154) * dU: Preprocessing Options. (line 44) ! * faggressive-function-elimination: Code Gen Options. (line 398) ! * falign-commons: Code Gen Options. (line 371) * fall-intrinsics: Fortran Dialect Options. (line 17) ! * fblas-matmul-limit: Code Gen Options. (line 305) * fbounds-check: Code Gen Options. (line 198) * fcheck: Code Gen Options. (line 141) ! * fcheck-array-temporaries: Code Gen Options. (line 232) * fcoarray: Code Gen Options. (line 127) * fconvert=CONVERSION: Runtime Options. (line 10) * fcray-pointer: Fortran Dialect Options. *************** both forms. *** 20831,20837 **** * fdump-fortran-optimized: Debugging Options. (line 18) * fdump-fortran-original: Debugging Options. (line 10) * fdump-parse-tree: Debugging Options. (line 25) ! * fexternal-blas: Code Gen Options. (line 266) * ff2c: Code Gen Options. (line 25) * ffixed-form: Fortran Dialect Options. (line 11) --- 20873,20879 ---- * fdump-fortran-optimized: Debugging Options. (line 18) * fdump-fortran-original: Debugging Options. (line 10) * fdump-parse-tree: Debugging Options. (line 25) ! * fexternal-blas: Code Gen Options. (line 297) * ff2c: Code Gen Options. (line 25) * ffixed-form: Fortran Dialect Options. (line 11) *************** both forms. *** 20845,20878 **** (line 104) * fimplicit-none: Fortran Dialect Options. (line 115) ! * finit-character: Code Gen Options. (line 309) ! * finit-derived: Code Gen Options. (line 309) ! * finit-integer: Code Gen Options. (line 309) ! * finit-local-zero: Code Gen Options. (line 309) ! * finit-logical: Code Gen Options. (line 309) ! * finit-real: Code Gen Options. (line 309) ! * finline-matmul-limit: Code Gen Options. (line 285) * finteger-4-integer-8: Fortran Dialect Options. (line 194) * fintrinsic-modules-path DIR: Directory Options. (line 36) ! * fmax-array-constructor: Code Gen Options. (line 204) * fmax-errors=N: Error and Warning Options. (line 27) * fmax-identifier-length=N: Fortran Dialect Options. (line 111) ! * fmax-stack-var-size: Code Gen Options. (line 222) * fmax-subrecord-length=LENGTH: Runtime Options. (line 29) * fmodule-private: Fortran Dialect Options. (line 86) * fno-automatic: Code Gen Options. (line 15) * fno-backtrace: Debugging Options. (line 69) ! * fno-protect-parens: Code Gen Options. (line 352) * fno-underscoring: Code Gen Options. (line 54) * fopenacc: Fortran Dialect Options. (line 124) * fopenmp: Fortran Dialect Options. (line 135) ! * fpack-derived: Code Gen Options. (line 244) * fpp: Preprocessing Options. (line 12) * frange-check: Fortran Dialect Options. --- 20887,20920 ---- (line 104) * fimplicit-none: Fortran Dialect Options. (line 115) ! * finit-character: Code Gen Options. (line 340) ! * finit-derived: Code Gen Options. (line 340) ! * finit-integer: Code Gen Options. (line 340) ! * finit-local-zero: Code Gen Options. (line 340) ! * finit-logical: Code Gen Options. (line 340) ! * finit-real: Code Gen Options. (line 340) ! * finline-matmul-limit: Code Gen Options. (line 316) * finteger-4-integer-8: Fortran Dialect Options. (line 194) * fintrinsic-modules-path DIR: Directory Options. (line 36) ! * fmax-array-constructor: Code Gen Options. (line 235) * fmax-errors=N: Error and Warning Options. (line 27) * fmax-identifier-length=N: Fortran Dialect Options. (line 111) ! * fmax-stack-var-size: Code Gen Options. (line 253) * fmax-subrecord-length=LENGTH: Runtime Options. (line 29) * fmodule-private: Fortran Dialect Options. (line 86) * fno-automatic: Code Gen Options. (line 15) * fno-backtrace: Debugging Options. (line 69) ! * fno-protect-parens: Code Gen Options. (line 383) * fno-underscoring: Code Gen Options. (line 54) * fopenacc: Fortran Dialect Options. (line 124) * fopenmp: Fortran Dialect Options. (line 135) ! * fpack-derived: Code Gen Options. (line 275) * fpp: Preprocessing Options. (line 12) * frange-check: Fortran Dialect Options. *************** both forms. *** 20889,20905 **** (line 209) * freal-8-real-4: Fortran Dialect Options. (line 209) ! * frealloc-lhs: Code Gen Options. (line 361) * frecord-marker=LENGTH: Runtime Options. (line 21) ! * frecursive: Code Gen Options. (line 299) ! * frepack-arrays: Code Gen Options. (line 250) ! * frontend-loop-interchange: Code Gen Options. (line 384) ! * frontend-optimize: Code Gen Options. (line 375) * fsecond-underscore: Code Gen Options. (line 110) ! * fshort-enums: Code Gen Options. (line 260) * fshort-enums <1>: Fortran 2003 status. (line 93) * fsign-zero: Runtime Options. (line 34) ! * fstack-arrays: Code Gen Options. (line 236) * fsyntax-only: Error and Warning Options. (line 33) * ftest-forall-temp: Fortran Dialect Options. --- 20931,20947 ---- (line 209) * freal-8-real-4: Fortran Dialect Options. (line 209) ! * frealloc-lhs: Code Gen Options. (line 392) * frecord-marker=LENGTH: Runtime Options. (line 21) ! * frecursive: Code Gen Options. (line 330) ! * frepack-arrays: Code Gen Options. (line 281) ! * frontend-loop-interchange: Code Gen Options. (line 415) ! * frontend-optimize: Code Gen Options. (line 406) * fsecond-underscore: Code Gen Options. (line 110) ! * fshort-enums: Code Gen Options. (line 291) * fshort-enums <1>: Fortran 2003 status. (line 93) * fsign-zero: Runtime Options. (line 34) ! * fstack-arrays: Code Gen Options. (line 267) * fsyntax-only: Error and Warning Options. (line 33) * ftest-forall-temp: Fortran Dialect Options. *************** both forms. *** 20934,20939 **** --- 20976,20982 ---- * static-libgfortran: Link Options. (line 11) * std=STD option: Fortran Dialect Options. (line 220) + * tail-call-workaround: Code Gen Options. (line 202) * UNAME: Preprocessing Options. (line 185) * undef: Preprocessing Options. *************** Keyword Index *** 21060,21066 **** (line 71) * alignment of COMMON blocks: Error and Warning Options. (line 226) ! * alignment of COMMON blocks <1>: Code Gen Options. (line 340) * ALL: ALL. (line 6) * all warnings: Error and Warning Options. (line 62) --- 21103,21109 ---- (line 71) * alignment of COMMON blocks: Error and Warning Options. (line 226) ! * alignment of COMMON blocks <1>: Code Gen Options. (line 371) * ALL: ALL. (line 6) * all warnings: Error and Warning Options. (line 62) *************** Keyword Index *** 21574,21580 **** * elapsed time <1>: SECNDS. (line 6) * elapsed time <2>: SECOND. (line 6) * Elimination of functions with identical argument lists: Code Gen Options. ! (line 367) * ENCODE: ENCODE and DECODE statements. (line 6) * ENUM statement: Fortran 2003 status. (line 93) --- 21617,21623 ---- * elapsed time <1>: SECNDS. (line 6) * elapsed time <2>: SECOND. (line 6) * Elimination of functions with identical argument lists: Code Gen Options. ! (line 398) * ENCODE: ENCODE and DECODE statements. (line 6) * ENUM statement: Fortran 2003 status. (line 93) *************** Keyword Index *** 21694,21700 **** * FPUTC: FPUTC. (line 6) * FRACTION: FRACTION. (line 6) * FREE: FREE. (line 6) ! * Front-end optimization: Code Gen Options. (line 375) * FSEEK: FSEEK. (line 6) * FSTAT: FSTAT. (line 6) * FTELL: FTELL. (line 6) --- 21737,21743 ---- * FPUTC: FPUTC. (line 6) * FRACTION: FRACTION. (line 6) * FREE: FREE. (line 6) ! * Front-end optimization: Code Gen Options. (line 406) * FSEEK: FSEEK. (line 6) * FSTAT: FSTAT. (line 6) * FTELL: FTELL. (line 6) *************** Keyword Index *** 21913,21919 **** * login name: GETLOG. (line 6) * LOG_GAMMA: LOG_GAMMA. (line 6) * LONG: LONG. (line 6) ! * loop interchange, Fortran: Code Gen Options. (line 384) * loop interchange, warning: Error and Warning Options. (line 135) * LSHIFT: LSHIFT. (line 6) --- 21956,21962 ---- * login name: GETLOG. (line 6) * LOG_GAMMA: LOG_GAMMA. (line 6) * LONG: LONG. (line 6) ! * loop interchange, Fortran: Code Gen Options. (line 415) * loop interchange, warning: Error and Warning Options. (line 135) * LSHIFT: LSHIFT. (line 6) *************** Keyword Index *** 22132,22138 **** * RANK: RANK. (line 6) * rank: RANK. (line 6) * re-association of parenthesized expressions: Code Gen Options. ! (line 352) * read character, stream mode: FGET. (line 6) * read character, stream mode <1>: FGETC. (line 6) * READONLY: Extended I/O specifiers. --- 22175,22181 ---- * RANK: RANK. (line 6) * rank: RANK. (line 6) * re-association of parenthesized expressions: Code Gen Options. ! (line 383) * read character, stream mode: FGET. (line 6) * read character, stream mode <1>: FGETC. (line 6) * READONLY: Extended I/O specifiers. *************** Keyword Index *** 22146,22152 **** * real number, relative spacing <1>: SPACING. (line 6) * real number, scale: SCALE. (line 6) * real number, set exponent: SET_EXPONENT. (line 6) ! * Reallocate the LHS in assignments: Code Gen Options. (line 361) * Reallocate the LHS in assignments, notification: Error and Warning Options. (line 236) * REALPART: REAL. (line 6) --- 22189,22195 ---- * real number, relative spacing <1>: SPACING. (line 6) * real number, scale: SCALE. (line 6) * real number, set exponent: SET_EXPONENT. (line 6) ! * Reallocate the LHS in assignments: Code Gen Options. (line 392) * Reallocate the LHS in assignments, notification: Error and Warning Options. (line 236) * REALPART: REAL. (line 6) *************** Keyword Index *** 22157,22163 **** * Reduction, XOR: PARITY. (line 6) * remainder: MOD. (line 6) * RENAME: RENAME. (line 6) ! * repacking arrays: Code Gen Options. (line 250) * REPEAT: REPEAT. (line 6) * RESHAPE: RESHAPE. (line 6) * REWIND: Read/Write after EOF marker. --- 22200,22206 ---- * Reduction, XOR: PARITY. (line 6) * remainder: MOD. (line 6) * RENAME: RENAME. (line 6) ! * repacking arrays: Code Gen Options. (line 281) * REPEAT: REPEAT. (line 6) * RESHAPE: RESHAPE. (line 6) * REWIND: Read/Write after EOF marker. *************** Keyword Index *** 22266,22272 **** (line 6) * STRUCTURE: STRUCTURE and RECORD. (line 6) ! * structure packing: Code Gen Options. (line 244) * subrecord: File format of unformatted sequential files. (line 6) * subscript checking: Code Gen Options. (line 141) --- 22309,22315 ---- (line 6) * STRUCTURE: STRUCTURE and RECORD. (line 6) ! * structure packing: Code Gen Options. (line 275) * subrecord: File format of unformatted sequential files. (line 6) * subscript checking: Code Gen Options. (line 141) *************** Node: Standards15191 *** 22495,22937 **** Node: Varying Length Character Strings16578 Node: Invoking GNU Fortran17330 Node: Option Summary19164 ! Node: Fortran Dialect Options23044 ! Node: Preprocessing Options34610 ! Node: Error and Warning Options42851 ! Node: Debugging Options54600 ! Node: Directory Options58629 ! Node: Link Options60064 ! Node: Runtime Options60690 ! Node: Code Gen Options62597 ! Node: Interoperability Options80464 ! Node: Environment Variables81504 ! Node: Runtime82117 ! Node: TMPDIR83151 ! Node: GFORTRAN_STDIN_UNIT83821 ! Node: GFORTRAN_STDOUT_UNIT84203 ! Node: GFORTRAN_STDERR_UNIT84604 ! Node: GFORTRAN_UNBUFFERED_ALL85006 ! Node: GFORTRAN_UNBUFFERED_PRECONNECTED85537 ! Node: GFORTRAN_SHOW_LOCUS86181 ! Node: GFORTRAN_OPTIONAL_PLUS86677 ! Node: GFORTRAN_LIST_SEPARATOR87155 ! Node: GFORTRAN_CONVERT_UNIT87763 ! Node: GFORTRAN_ERROR_BACKTRACE90618 ! Node: Fortran standards status91175 ! Node: Fortran 2003 status91467 ! Node: Fortran 2008 status96706 ! Node: TS 29113 status102080 ! Node: TS 18508 status103079 ! Node: Fortran 2018 status103894 ! Node: Compiler Characteristics104513 ! Node: KIND Type Parameters105186 ! Node: Internal representation of LOGICAL variables106614 ! Node: Thread-safety of the runtime library107474 ! Node: Data consistency and durability109877 ! Node: Files opened without an explicit ACTION= specifier112990 ! Node: File operations on symbolic links113681 ! Node: File format of unformatted sequential files114801 ! Node: Extensions117148 ! Node: Extensions implemented in GNU Fortran117753 ! Node: Old-style kind specifications119649 ! Node: Old-style variable initialization120751 ! Node: Extensions to namelist122063 ! Node: X format descriptor without count field124366 ! Node: Commas in FORMAT specifications124893 ! Node: Missing period in FORMAT specifications125410 ! Node: I/O item lists125972 ! Node: Q exponent-letter126357 ! Node: BOZ literal constants126955 ! Node: Real array indices129534 ! Node: Unary operators129833 ! Node: Implicitly convert LOGICAL and INTEGER values130247 ! Node: Hollerith constants support131206 ! Node: Cray pointers132978 ! Node: CONVERT specifier138425 ! Node: OpenMP140420 ! Node: OpenACC142678 ! Node: Argument list functions143987 ! Node: Read/Write after EOF marker145630 ! Node: STRUCTURE and RECORD146233 ! Node: UNION and MAP151320 ! Node: Type variants for integer intrinsics154288 ! Node: AUTOMATIC and STATIC attributes156183 ! Node: Extended math intrinsics157717 ! Node: Form feed as whitespace159513 ! Node: TYPE as an alias for PRINT160059 ! Node: %LOC as an rvalue160524 ! Node: .XOR. operator161171 ! Node: Bitwise logical operators161571 ! Node: Extended I/O specifiers163072 ! Node: Legacy PARAMETER statements166792 ! Node: Default exponents167397 ! Node: Extensions not implemented in GNU Fortran167749 ! Node: ENCODE and DECODE statements168694 ! Node: Variable FORMAT expressions170025 ! Node: Alternate complex function syntax171130 ! Node: Volatile COMMON blocks171680 ! Node: OPEN( ... NAME=)172182 ! Node: Mixed-Language Programming172584 ! Node: Interoperability with C173164 ! Node: Intrinsic Types174498 ! Node: Derived Types and struct175494 ! Node: Interoperable Global Variables176852 ! Node: Interoperable Subroutines and Functions178127 ! Node: Working with Pointers181921 ! Node: Further Interoperability of Fortran with C186397 ! Node: GNU Fortran Compiler Directives189751 ! Node: ATTRIBUTES directive190041 ! Node: UNROLL directive193229 ! Node: Non-Fortran Main Program193736 ! Node: _gfortran_set_args195924 ! Node: _gfortran_set_options196862 ! Node: _gfortran_set_convert200469 ! Node: _gfortran_set_record_marker201337 ! Node: _gfortran_set_fpe202147 ! Node: _gfortran_set_max_subrecord_length203345 ! Node: Naming and argument-passing conventions204268 ! Node: Naming conventions204987 ! Node: Argument passing conventions206459 ! Node: Coarray Programming211764 ! Node: Type and enum ABI Documentation212011 ! Node: caf_token_t212309 ! Node: caf_register_t212545 ! Node: caf_deregister_t213756 ! Node: caf_reference_t214258 ! Node: caf_team_t218582 ! Node: Function ABI Documentation218881 ! Node: _gfortran_caf_init221331 ! Node: _gfortran_caf_finish222757 ! Node: _gfortran_caf_this_image223696 ! Node: _gfortran_caf_num_images224451 ! Node: _gfortran_caf_image_status225562 ! Node: _gfortran_caf_failed_images226682 ! Node: _gfortran_caf_stopped_images227852 ! Node: _gfortran_caf_register229025 ! Node: _gfortran_caf_deregister233207 ! Node: _gfortran_caf_is_present234813 ! Node: _gfortran_caf_send235892 ! Node: _gfortran_caf_get239082 ! Node: _gfortran_caf_sendget242163 ! Node: _gfortran_caf_send_by_ref246074 ! Node: _gfortran_caf_get_by_ref249683 ! Node: _gfortran_caf_sendget_by_ref253202 ! Node: _gfortran_caf_lock257498 ! Node: _gfortran_caf_unlock259284 ! Node: _gfortran_caf_event_post260765 ! Node: _gfortran_caf_event_wait262214 ! Node: _gfortran_caf_event_query264321 ! Node: _gfortran_caf_sync_all265652 ! Node: _gfortran_caf_sync_images266580 ! Node: _gfortran_caf_sync_memory268115 ! Node: _gfortran_caf_error_stop269107 ! Node: _gfortran_caf_error_stop_str269711 ! Node: _gfortran_caf_fail_image270416 ! Node: _gfortran_caf_atomic_define270952 ! Node: _gfortran_caf_atomic_ref272267 ! Node: _gfortran_caf_atomic_cas273571 ! Node: _gfortran_caf_atomic_op275332 ! Node: _gfortran_caf_co_broadcast277434 ! Node: _gfortran_caf_co_max278539 ! Node: _gfortran_caf_co_min280165 ! Node: _gfortran_caf_co_sum281785 ! Node: _gfortran_caf_co_reduce283325 ! Node: Intrinsic Procedures285969 ! Node: Introduction to Intrinsics303025 ! Node: ABORT305375 ! Node: ABS306120 ! Node: ACCESS308070 ! Node: ACHAR310000 ! Node: ACOS311204 ! Node: ACOSD312490 ! Node: ACOSH313802 ! Node: ADJUSTL314798 ! Node: ADJUSTR315740 ! Node: AIMAG316690 ! Node: AINT318062 ! Node: ALARM319668 ! Node: ALL321300 ! Node: ALLOCATED323224 ! Node: AND324363 ! Node: ANINT325662 ! Node: ANY327159 ! Node: ASIN329085 ! Node: ASIND330360 ! Node: ASINH331658 ! Node: ASSOCIATED332664 ! Node: ATAN335675 ! Node: ATAND337125 ! Node: ATAN2338595 ! Node: ATAN2D340458 ! Node: ATANH342432 ! Node: ATOMIC_ADD343438 ! Node: ATOMIC_AND344970 ! Node: ATOMIC_CAS346558 ! Node: ATOMIC_DEFINE348417 ! Node: ATOMIC_FETCH_ADD350136 ! Node: ATOMIC_FETCH_AND351936 ! Node: ATOMIC_FETCH_OR353726 ! Node: ATOMIC_FETCH_XOR355503 ! Node: ATOMIC_OR357286 ! Node: ATOMIC_REF358871 ! Node: ATOMIC_XOR360767 ! Node: BACKTRACE362352 ! Node: BESSEL_J0362932 ! Node: BESSEL_J1363948 ! Node: BESSEL_JN364965 ! Node: BESSEL_Y0366790 ! Node: BESSEL_Y1367745 ! Node: BESSEL_YN368700 ! Node: BGE370531 ! Node: BGT371223 ! Node: BIT_SIZE371873 ! Node: BLE372695 ! Node: BLT373377 ! Node: BTEST374015 ! Node: C_ASSOCIATED375472 ! Node: C_F_POINTER376683 ! Node: C_F_PROCPOINTER378118 ! Node: C_FUNLOC379625 ! Node: C_LOC380996 ! Node: C_SIZEOF382275 ! Node: CEILING383688 ! Node: CHAR384696 ! Node: CHDIR385908 ! Node: CHMOD387082 ! Node: CMPLX388997 ! Node: CO_BROADCAST390440 ! Node: CO_MAX392213 ! Node: CO_MIN394093 ! Node: CO_REDUCE395959 ! Node: CO_SUM399462 ! Node: COMMAND_ARGUMENT_COUNT401369 ! Node: COMPILER_OPTIONS402286 ! Node: COMPILER_VERSION403312 ! Node: COMPLEX404276 ! Node: CONJG405415 ! Node: COS406471 ! Node: COSD407926 ! Node: COSH409375 ! Node: COTAN410558 ! Node: COTAND411697 ! Node: COUNT412876 ! Node: CPU_TIME414901 ! Node: CSHIFT416258 ! Node: CTIME417918 ! Node: DATE_AND_TIME419426 ! Node: DBLE421906 ! Node: DCMPLX422701 ! Node: DIGITS423883 ! Node: DIM424850 ! Node: DOT_PRODUCT426131 ! Node: DPROD427774 ! Node: DREAL428701 ! Node: DSHIFTL429367 ! Node: DSHIFTR430700 ! Node: DTIME432034 ! Node: EOSHIFT434849 ! Node: EPSILON436922 ! Node: ERF437649 ! Node: ERFC438430 ! Node: ERFC_SCALED439240 ! Node: ETIME439933 ! Node: EVENT_QUERY442172 ! Node: EXECUTE_COMMAND_LINE443761 ! Node: EXIT446356 ! Node: EXP447234 ! Node: EXPONENT448487 ! Node: EXTENDS_TYPE_OF449251 ! Node: FDATE450109 ! Node: FGET451595 ! Node: FGETC453422 ! Node: FLOOR455230 ! Node: FLUSH456219 ! Node: FNUM458098 ! Node: FPUT458823 ! Node: FPUTC460457 ! Node: FRACTION462238 ! Node: FREE463142 ! Node: FSEEK463985 ! Node: FSTAT466291 ! Node: FTELL467378 ! Node: GAMMA468360 ! Node: GERROR469414 ! Node: GETARG470136 ! Node: GET_COMMAND471909 ! Node: GET_COMMAND_ARGUMENT473283 ! Node: GETCWD475331 ! Node: GETENV476311 ! Node: GET_ENVIRONMENT_VARIABLE477743 ! Node: GETGID479906 ! Node: GETLOG480443 ! Node: GETPID481305 ! Node: GETUID482035 ! Node: GMTIME482551 ! Node: HOSTNM484311 ! Node: HUGE485232 ! Node: HYPOT485954 ! Node: IACHAR486780 ! Node: IALL487948 ! Node: IAND489433 ! Node: IANY491006 ! Node: IARGC492500 ! Node: IBCLR493521 ! Node: IBITS494769 ! Node: IBSET496273 ! Node: ICHAR497516 ! Node: IDATE499686 ! Node: IEOR500986 ! Node: IERRNO502452 ! Node: IMAGE_INDEX503001 ! Node: INDEX intrinsic504029 ! Node: INT505555 ! Node: INT2507314 ! Node: INT8508082 ! Node: IOR508797 ! Node: IPARITY510239 ! Node: IRAND511771 ! Node: IS_IOSTAT_END513130 ! Node: IS_IOSTAT_EOR514229 ! Node: ISATTY515358 ! Node: ISHFT516141 ! Node: ISHFTC517710 ! Node: ISNAN519517 ! Node: ITIME520284 ! Node: KILL521582 ! Node: KIND522667 ! Node: LBOUND523513 ! Node: LCOBOUND524851 ! Node: LEADZ525986 ! Node: LEN526847 ! Node: LEN_TRIM528143 ! Node: LGE529131 ! Node: LGT530644 ! Node: LINK532122 ! Node: LLE533161 ! Node: LLT534661 ! Node: LNBLNK536132 ! Node: LOC536910 ! Node: LOG537642 ! Node: LOG10538987 ! Node: LOG_GAMMA539977 ! Node: LOGICAL541079 ! Node: LONG541891 ! Node: LSHIFT542649 ! Node: LSTAT543735 ! Node: LTIME544935 ! Node: MALLOC546617 ! Node: MASKL548079 ! Node: MASKR548846 ! Node: MATMUL549616 ! Node: MAX550789 ! Node: MAXEXPONENT552324 ! Node: MAXLOC553141 ! Node: MAXVAL555482 ! Node: MCLOCK557122 ! Node: MCLOCK8558145 ! Node: MERGE559375 ! Node: MERGE_BITS560127 ! Node: MIN560992 ! Node: MINEXPONENT562530 ! Node: MINLOC563161 ! Node: MINVAL565533 ! Node: MOD567186 ! Node: MODULO569350 ! Node: MOVE_ALLOC570653 ! Node: MVBITS571686 ! Node: NEAREST573338 ! Node: NEW_LINE574438 ! Node: NINT575211 ! Node: NORM2576632 ! Node: NOT577774 ! Node: NULL578944 ! Node: NUM_IMAGES579852 ! Node: OR581553 ! Node: PACK582839 ! Node: PARITY584847 ! Node: PERROR586068 ! Node: POPCNT586693 ! Node: POPPAR587565 ! Node: PRECISION588619 ! Node: PRESENT589506 ! Node: PRODUCT590618 ! Node: RADIX592152 ! Node: RAN592964 ! Node: RAND593420 ! Node: RANDOM_NUMBER594755 ! Node: RANDOM_SEED595969 ! Node: RANGE598418 ! Node: RANK599099 ! Node: REAL599880 ! Node: RENAME601869 ! Node: REPEAT602891 ! Node: RESHAPE603619 ! Node: RRSPACING605086 ! Node: RSHIFT605779 ! Node: SAME_TYPE_AS606919 ! Node: SCALE607751 ! Node: SCAN608532 ! Node: SECNDS610090 ! Node: SECOND611182 ! Node: SELECTED_CHAR_KIND612058 ! Node: SELECTED_INT_KIND613653 ! Node: SELECTED_REAL_KIND614830 ! Node: SET_EXPONENT617507 ! Node: SHAPE618504 ! Node: SHIFTA619928 ! Node: SHIFTL620892 ! Node: SHIFTR621729 ! Node: SIGN622567 ! Node: SIGNAL623793 ! Node: SIN625299 ! Node: SIND626390 ! Node: SINH627719 ! Node: SIZE628732 ! Node: SIZEOF630051 ! Node: SLEEP631706 ! Node: SPACING632267 ! Node: SPREAD633281 ! Node: SQRT634432 ! Node: SRAND635764 ! Node: STAT636998 ! Node: STORAGE_SIZE640166 ! Node: SUM641045 ! Node: SYMLNK642537 ! Node: SYSTEM643672 ! Node: SYSTEM_CLOCK644927 ! Node: TAN647757 ! Node: TAND648828 ! Node: TANH649912 ! Node: THIS_IMAGE651087 ! Node: TIME653387 ! Node: TIME8654558 ! Node: TINY655757 ! Node: TRAILZ656358 ! Node: TRANSFER657176 ! Node: TRANSPOSE659212 ! Node: TRIM659902 ! Node: TTYNAM660760 ! Node: UBOUND661678 ! Node: UCOBOUND663068 ! Node: UMASK664205 ! Node: UNLINK664887 ! Node: UNPACK665867 ! Node: VERIFY667162 ! Node: XOR668891 ! Node: Intrinsic Modules670264 ! Node: ISO_FORTRAN_ENV670553 ! Node: ISO_C_BINDING674956 ! Node: IEEE modules678662 ! Node: OpenMP Modules OMP_LIB and OMP_LIB_KINDS679805 ! Node: OpenACC Module OPENACC681345 ! Node: Contributing682272 ! Node: Contributors683126 ! Node: Projects684757 ! Node: Proposed Extensions685564 ! Node: Copying687574 ! Node: GNU Free Documentation License725120 ! Node: Funding750244 ! Node: Option Index752770 ! Node: Keyword Index770499  End Tag Table --- 22538,22980 ---- Node: Varying Length Character Strings16578 Node: Invoking GNU Fortran17330 Node: Option Summary19164 ! Node: Fortran Dialect Options23102 ! Node: Preprocessing Options34668 ! Node: Error and Warning Options42909 ! Node: Debugging Options54658 ! Node: Directory Options58687 ! Node: Link Options60122 ! Node: Runtime Options60748 ! Node: Code Gen Options62655 ! Node: Interoperability Options81967 ! Node: Environment Variables83007 ! Node: Runtime83620 ! Node: TMPDIR84654 ! Node: GFORTRAN_STDIN_UNIT85324 ! Node: GFORTRAN_STDOUT_UNIT85706 ! Node: GFORTRAN_STDERR_UNIT86107 ! Node: GFORTRAN_UNBUFFERED_ALL86509 ! Node: GFORTRAN_UNBUFFERED_PRECONNECTED87040 ! Node: GFORTRAN_SHOW_LOCUS87684 ! Node: GFORTRAN_OPTIONAL_PLUS88180 ! Node: GFORTRAN_LIST_SEPARATOR88658 ! Node: GFORTRAN_CONVERT_UNIT89266 ! Node: GFORTRAN_ERROR_BACKTRACE92121 ! Node: Fortran standards status92678 ! Node: Fortran 2003 status92970 ! Node: Fortran 2008 status98209 ! Node: TS 29113 status103583 ! Node: TS 18508 status104582 ! Node: Fortran 2018 status105397 ! Node: Compiler Characteristics106016 ! Node: KIND Type Parameters106689 ! Node: Internal representation of LOGICAL variables108117 ! Node: Thread-safety of the runtime library108977 ! Node: Data consistency and durability111380 ! Node: Files opened without an explicit ACTION= specifier114493 ! Node: File operations on symbolic links115184 ! Node: File format of unformatted sequential files116304 ! Node: Extensions118651 ! Node: Extensions implemented in GNU Fortran119256 ! Node: Old-style kind specifications121152 ! Node: Old-style variable initialization122254 ! Node: Extensions to namelist123566 ! Node: X format descriptor without count field125869 ! Node: Commas in FORMAT specifications126396 ! Node: Missing period in FORMAT specifications126913 ! Node: I/O item lists127475 ! Node: Q exponent-letter127860 ! Node: BOZ literal constants128458 ! Node: Real array indices131037 ! Node: Unary operators131336 ! Node: Implicitly convert LOGICAL and INTEGER values131750 ! Node: Hollerith constants support132709 ! Node: Cray pointers134481 ! Node: CONVERT specifier139928 ! Node: OpenMP141923 ! Node: OpenACC144181 ! Node: Argument list functions145490 ! Node: Read/Write after EOF marker147133 ! Node: STRUCTURE and RECORD147736 ! Node: UNION and MAP152823 ! Node: Type variants for integer intrinsics155791 ! Node: AUTOMATIC and STATIC attributes157686 ! Node: Extended math intrinsics159220 ! Node: Form feed as whitespace161016 ! Node: TYPE as an alias for PRINT161562 ! Node: %LOC as an rvalue162027 ! Node: .XOR. operator162674 ! Node: Bitwise logical operators163074 ! Node: Extended I/O specifiers164575 ! Node: Legacy PARAMETER statements168295 ! Node: Default exponents168900 ! Node: Extensions not implemented in GNU Fortran169252 ! Node: ENCODE and DECODE statements170197 ! Node: Variable FORMAT expressions171528 ! Node: Alternate complex function syntax172633 ! Node: Volatile COMMON blocks173183 ! Node: OPEN( ... NAME=)173685 ! Node: Mixed-Language Programming174087 ! Node: Interoperability with C174667 ! Node: Intrinsic Types176001 ! Node: Derived Types and struct176997 ! Node: Interoperable Global Variables178355 ! Node: Interoperable Subroutines and Functions179630 ! Node: Working with Pointers183424 ! Node: Further Interoperability of Fortran with C187900 ! Node: GNU Fortran Compiler Directives191254 ! Node: ATTRIBUTES directive191544 ! Node: UNROLL directive194732 ! Node: Non-Fortran Main Program195239 ! Node: _gfortran_set_args197427 ! Node: _gfortran_set_options198365 ! Node: _gfortran_set_convert201972 ! Node: _gfortran_set_record_marker202840 ! Node: _gfortran_set_fpe203650 ! Node: _gfortran_set_max_subrecord_length204848 ! Node: Naming and argument-passing conventions205771 ! Node: Naming conventions206490 ! Node: Argument passing conventions207962 ! Node: Coarray Programming213267 ! Node: Type and enum ABI Documentation213514 ! Node: caf_token_t213812 ! Node: caf_register_t214048 ! Node: caf_deregister_t215259 ! Node: caf_reference_t215761 ! Node: caf_team_t220085 ! Node: Function ABI Documentation220384 ! Node: _gfortran_caf_init222834 ! Node: _gfortran_caf_finish224260 ! Node: _gfortran_caf_this_image225199 ! Node: _gfortran_caf_num_images225954 ! Node: _gfortran_caf_image_status227065 ! Node: _gfortran_caf_failed_images228185 ! Node: _gfortran_caf_stopped_images229355 ! Node: _gfortran_caf_register230528 ! Node: _gfortran_caf_deregister234710 ! Node: _gfortran_caf_is_present236316 ! Node: _gfortran_caf_send237395 ! Node: _gfortran_caf_get240585 ! Node: _gfortran_caf_sendget243666 ! Node: _gfortran_caf_send_by_ref247577 ! Node: _gfortran_caf_get_by_ref251186 ! Node: _gfortran_caf_sendget_by_ref254705 ! Node: _gfortran_caf_lock259001 ! Node: _gfortran_caf_unlock260787 ! Node: _gfortran_caf_event_post262268 ! Node: _gfortran_caf_event_wait263717 ! Node: _gfortran_caf_event_query265824 ! Node: _gfortran_caf_sync_all267155 ! Node: _gfortran_caf_sync_images268083 ! Node: _gfortran_caf_sync_memory269618 ! Node: _gfortran_caf_error_stop270610 ! Node: _gfortran_caf_error_stop_str271214 ! Node: _gfortran_caf_fail_image271919 ! Node: _gfortran_caf_atomic_define272455 ! Node: _gfortran_caf_atomic_ref273770 ! Node: _gfortran_caf_atomic_cas275074 ! Node: _gfortran_caf_atomic_op276835 ! Node: _gfortran_caf_co_broadcast278937 ! Node: _gfortran_caf_co_max280042 ! Node: _gfortran_caf_co_min281668 ! Node: _gfortran_caf_co_sum283288 ! Node: _gfortran_caf_co_reduce284828 ! Node: Intrinsic Procedures287472 ! Node: Introduction to Intrinsics304528 ! Node: ABORT306878 ! Node: ABS307623 ! Node: ACCESS309573 ! Node: ACHAR311503 ! Node: ACOS312707 ! Node: ACOSD313993 ! Node: ACOSH315305 ! Node: ADJUSTL316301 ! Node: ADJUSTR317243 ! Node: AIMAG318193 ! Node: AINT319565 ! Node: ALARM321171 ! Node: ALL322803 ! Node: ALLOCATED324727 ! Node: AND325866 ! Node: ANINT327165 ! Node: ANY328662 ! Node: ASIN330588 ! Node: ASIND331863 ! Node: ASINH333161 ! Node: ASSOCIATED334167 ! Node: ATAN337178 ! Node: ATAND338628 ! Node: ATAN2340098 ! Node: ATAN2D341961 ! Node: ATANH343935 ! Node: ATOMIC_ADD344941 ! Node: ATOMIC_AND346473 ! Node: ATOMIC_CAS348061 ! Node: ATOMIC_DEFINE349920 ! Node: ATOMIC_FETCH_ADD351639 ! Node: ATOMIC_FETCH_AND353439 ! Node: ATOMIC_FETCH_OR355229 ! Node: ATOMIC_FETCH_XOR357006 ! Node: ATOMIC_OR358789 ! Node: ATOMIC_REF360374 ! Node: ATOMIC_XOR362270 ! Node: BACKTRACE363855 ! Node: BESSEL_J0364435 ! Node: BESSEL_J1365451 ! Node: BESSEL_JN366468 ! Node: BESSEL_Y0368293 ! Node: BESSEL_Y1369248 ! Node: BESSEL_YN370203 ! Node: BGE372034 ! Node: BGT372726 ! Node: BIT_SIZE373376 ! Node: BLE374198 ! Node: BLT374880 ! Node: BTEST375518 ! Node: C_ASSOCIATED376975 ! Node: C_F_POINTER378186 ! Node: C_F_PROCPOINTER379621 ! Node: C_FUNLOC381128 ! Node: C_LOC382499 ! Node: C_SIZEOF383778 ! Node: CEILING385191 ! Node: CHAR386199 ! Node: CHDIR387411 ! Node: CHMOD388585 ! Node: CMPLX390500 ! Node: CO_BROADCAST391943 ! Node: CO_MAX393716 ! Node: CO_MIN395596 ! Node: CO_REDUCE397462 ! Node: CO_SUM400965 ! Node: COMMAND_ARGUMENT_COUNT402872 ! Node: COMPILER_OPTIONS403789 ! Node: COMPILER_VERSION404815 ! Node: COMPLEX405779 ! Node: CONJG406918 ! Node: COS407974 ! Node: COSD409429 ! Node: COSH410878 ! Node: COTAN412061 ! Node: COTAND413200 ! Node: COUNT414379 ! Node: CPU_TIME416404 ! Node: CSHIFT417761 ! Node: CTIME419421 ! Node: DATE_AND_TIME420929 ! Node: DBLE423409 ! Node: DCMPLX424204 ! Node: DIGITS425386 ! Node: DIM426353 ! Node: DOT_PRODUCT427634 ! Node: DPROD429277 ! Node: DREAL430204 ! Node: DSHIFTL430870 ! Node: DSHIFTR432203 ! Node: DTIME433537 ! Node: EOSHIFT436352 ! Node: EPSILON438425 ! Node: ERF439152 ! Node: ERFC439933 ! Node: ERFC_SCALED440743 ! Node: ETIME441436 ! Node: EVENT_QUERY443675 ! Node: EXECUTE_COMMAND_LINE445264 ! Node: EXIT447859 ! Node: EXP448737 ! Node: EXPONENT449990 ! Node: EXTENDS_TYPE_OF450754 ! Node: FDATE451612 ! Node: FGET453098 ! Node: FGETC454925 ! Node: FLOOR456733 ! Node: FLUSH457722 ! Node: FNUM459601 ! Node: FPUT460326 ! Node: FPUTC461960 ! Node: FRACTION463741 ! Node: FREE464645 ! Node: FSEEK465488 ! Node: FSTAT467794 ! Node: FTELL468881 ! Node: GAMMA469863 ! Node: GERROR470917 ! Node: GETARG471639 ! Node: GET_COMMAND473412 ! Node: GET_COMMAND_ARGUMENT474786 ! Node: GETCWD476834 ! Node: GETENV477814 ! Node: GET_ENVIRONMENT_VARIABLE479246 ! Node: GETGID481409 ! Node: GETLOG481946 ! Node: GETPID482808 ! Node: GETUID483538 ! Node: GMTIME484054 ! Node: HOSTNM485814 ! Node: HUGE486735 ! Node: HYPOT487457 ! Node: IACHAR488283 ! Node: IALL489451 ! Node: IAND490936 ! Node: IANY492509 ! Node: IARGC494003 ! Node: IBCLR495024 ! Node: IBITS496272 ! Node: IBSET497776 ! Node: ICHAR499019 ! Node: IDATE501189 ! Node: IEOR502489 ! Node: IERRNO503955 ! Node: IMAGE_INDEX504504 ! Node: INDEX intrinsic505532 ! Node: INT507058 ! Node: INT2508817 ! Node: INT8509585 ! Node: IOR510300 ! Node: IPARITY511742 ! Node: IRAND513274 ! Node: IS_IOSTAT_END514633 ! Node: IS_IOSTAT_EOR515732 ! Node: ISATTY516861 ! Node: ISHFT517644 ! Node: ISHFTC519213 ! Node: ISNAN521020 ! Node: ITIME521787 ! Node: KILL523085 ! Node: KIND524170 ! Node: LBOUND525016 ! Node: LCOBOUND526354 ! Node: LEADZ527489 ! Node: LEN528350 ! Node: LEN_TRIM529646 ! Node: LGE530634 ! Node: LGT532147 ! Node: LINK533625 ! Node: LLE534664 ! Node: LLT536164 ! Node: LNBLNK537635 ! Node: LOC538413 ! Node: LOG539145 ! Node: LOG10540490 ! Node: LOG_GAMMA541480 ! Node: LOGICAL542582 ! Node: LONG543394 ! Node: LSHIFT544152 ! Node: LSTAT545238 ! Node: LTIME546438 ! Node: MALLOC548120 ! Node: MASKL549582 ! Node: MASKR550349 ! Node: MATMUL551119 ! Node: MAX552292 ! Node: MAXEXPONENT553827 ! Node: MAXLOC554644 ! Node: MAXVAL556985 ! Node: MCLOCK558625 ! Node: MCLOCK8559648 ! Node: MERGE560878 ! Node: MERGE_BITS561630 ! Node: MIN562495 ! Node: MINEXPONENT564033 ! Node: MINLOC564664 ! Node: MINVAL567036 ! Node: MOD568689 ! Node: MODULO570853 ! Node: MOVE_ALLOC572156 ! Node: MVBITS573189 ! Node: NEAREST574841 ! Node: NEW_LINE575941 ! Node: NINT576714 ! Node: NORM2578135 ! Node: NOT579277 ! Node: NULL580447 ! Node: NUM_IMAGES581355 ! Node: OR583056 ! Node: PACK584342 ! Node: PARITY586350 ! Node: PERROR587571 ! Node: POPCNT588196 ! Node: POPPAR589068 ! Node: PRECISION590122 ! Node: PRESENT591009 ! Node: PRODUCT592121 ! Node: RADIX593655 ! Node: RAN594467 ! Node: RAND594923 ! Node: RANDOM_NUMBER596258 ! Node: RANDOM_SEED597472 ! Node: RANGE599921 ! Node: RANK600602 ! Node: REAL601383 ! Node: RENAME603372 ! Node: REPEAT604394 ! Node: RESHAPE605122 ! Node: RRSPACING606589 ! Node: RSHIFT607282 ! Node: SAME_TYPE_AS608422 ! Node: SCALE609254 ! Node: SCAN610035 ! Node: SECNDS611593 ! Node: SECOND612685 ! Node: SELECTED_CHAR_KIND613561 ! Node: SELECTED_INT_KIND615156 ! Node: SELECTED_REAL_KIND616333 ! Node: SET_EXPONENT619010 ! Node: SHAPE620007 ! Node: SHIFTA621431 ! Node: SHIFTL622395 ! Node: SHIFTR623232 ! Node: SIGN624070 ! Node: SIGNAL625296 ! Node: SIN626802 ! Node: SIND627893 ! Node: SINH629222 ! Node: SIZE630235 ! Node: SIZEOF631554 ! Node: SLEEP633209 ! Node: SPACING633770 ! Node: SPREAD634784 ! Node: SQRT635935 ! Node: SRAND637267 ! Node: STAT638501 ! Node: STORAGE_SIZE641669 ! Node: SUM642548 ! Node: SYMLNK644040 ! Node: SYSTEM645175 ! Node: SYSTEM_CLOCK646430 ! Node: TAN649260 ! Node: TAND650331 ! Node: TANH651415 ! Node: THIS_IMAGE652590 ! Node: TIME654890 ! Node: TIME8656061 ! Node: TINY657260 ! Node: TRAILZ657861 ! Node: TRANSFER658679 ! Node: TRANSPOSE660715 ! Node: TRIM661405 ! Node: TTYNAM662263 ! Node: UBOUND663181 ! Node: UCOBOUND664571 ! Node: UMASK665708 ! Node: UNLINK666390 ! Node: UNPACK667370 ! Node: VERIFY668665 ! Node: XOR670394 ! Node: Intrinsic Modules671767 ! Node: ISO_FORTRAN_ENV672056 ! Node: ISO_C_BINDING676459 ! Node: IEEE modules680165 ! Node: OpenMP Modules OMP_LIB and OMP_LIB_KINDS681308 ! Node: OpenACC Module OPENACC683091 ! Node: Contributing684018 ! Node: Contributors684872 ! Node: Projects686503 ! Node: Proposed Extensions687310 ! Node: Copying689320 ! Node: GNU Free Documentation License726866 ! Node: Funding751990 ! Node: Option Index754516 ! Node: Keyword Index772318  End Tag Table diff -Nrcpad gcc-8.3.0/gcc/fortran/interface.c gcc-8.4.0/gcc/fortran/interface.c *** gcc-8.3.0/gcc/fortran/interface.c Sat Feb 2 16:35:47 2019 --- gcc-8.4.0/gcc/fortran/interface.c Wed Mar 4 08:30:00 2020 *************** compare_actual_formal (gfc_actual_arglis *** 2941,2957 **** if (f->sym == NULL) { if (where) ! gfc_error ("Missing alternate return spec in subroutine call " ! "at %L", where); return false; } if (a->expr == NULL) { if (where) ! gfc_error ("Unexpected alternate return spec in subroutine " ! "call at %L", where); return false; } --- 2941,2959 ---- if (f->sym == NULL) { + /* These errors have to be issued, otherwise an ICE can occur. + See PR 78865. */ if (where) ! gfc_error_now ("Missing alternate return specifier in subroutine " ! "call at %L", where); return false; } if (a->expr == NULL) { if (where) ! gfc_error_now ("Unexpected alternate return specifier in " ! "subroutine call at %L", where); return false; } *************** gfc_procedure_use (gfc_symbol *sym, gfc_ *** 3655,3660 **** --- 3657,3663 ---- gfc_warning (OPT_Wimplicit_procedure, "Procedure %qs called at %L is not explicitly declared", sym->name, where); + gfc_find_proc_namespace (sym->ns)->implicit_interface_calls = 1; } if (sym->attr.if_source == IFSRC_UNKNOWN) diff -Nrcpad gcc-8.3.0/gcc/fortran/intrinsic.texi gcc-8.4.0/gcc/fortran/intrinsic.texi *** gcc-8.3.0/gcc/fortran/intrinsic.texi Wed Mar 14 00:56:48 2018 --- gcc-8.4.0/gcc/fortran/intrinsic.texi Wed Mar 4 08:30:00 2020 *************** named constants: *** 14825,14830 **** --- 14825,14831 ---- @table @asis @item @code{omp_lock_kind} + @item @code{omp_lock_hint_kind} @item @code{omp_nest_lock_kind} @item @code{omp_proc_bind_kind} @item @code{omp_sched_kind} *************** kind @code{omp_proc_bind_kind}: *** 14856,14861 **** --- 14857,14872 ---- @item @code{omp_proc_bind_spread} @end table + The following scalar integer named constants are of the + kind @code{omp_lock_hint_kind}: + + @table @asis + @item @code{omp_lock_hint_none} + @item @code{omp_lock_hint_uncontended} + @item @code{omp_lock_hint_contended} + @item @code{omp_lock_hint_nonspeculative} + @item @code{omp_lock_hint_speculative} + @end table @node OpenACC Module OPENACC diff -Nrcpad gcc-8.3.0/gcc/fortran/invoke.texi gcc-8.4.0/gcc/fortran/invoke.texi *** gcc-8.3.0/gcc/fortran/invoke.texi Wed Jan 3 09:17:54 2018 --- gcc-8.4.0/gcc/fortran/invoke.texi Wed Mar 4 08:30:00 2020 *************** and warnings}. *** 181,187 **** @item Code Generation Options @xref{Code Gen Options,,Options for code generation conventions}. @gccoptlist{-faggressive-function-elimination -fblas-matmul-limit=@var{n} @gol ! -fbounds-check -fcheck-array-temporaries @gol -fcheck=@var{} @gol -fcoarray=@var{} -fexternal-blas -ff2c -ffrontend-loop-interchange @gol --- 181,188 ---- @item Code Generation Options @xref{Code Gen Options,,Options for code generation conventions}. @gccoptlist{-faggressive-function-elimination -fblas-matmul-limit=@var{n} @gol ! -fbounds-check -ftail-call-workaround -ftail-call-workaround=@var{n} @gol ! -fcheck-array-temporaries @gol -fcheck=@var{} @gol -fcoarray=@var{} -fexternal-blas -ff2c -ffrontend-loop-interchange @gol *************** warnings for generated array temporaries *** 1580,1585 **** --- 1581,1619 ---- @c Note: This option is also referred in gcc's manpage Deprecated alias for @option{-fcheck=bounds}. + @item -ftail-call-workaround + @itemx -ftail-call-workaround=@var{n} + @opindex @code{tail-call-workaround} + Some C interfaces to Fortran codes violate the gfortran ABI by + omitting the hidden character length arguments as described in + @xref{Argument passing conventions}. This can lead to crashes + because pushing arguments for tail calls can overflow the stack. + + To provide a workaround for existing binary packages, this option + disables tail call optimization for gfortran procedures with character + arguments. With @option{-ftail-call-workaround=2} tail call optimization + is disabled in all gfortran procedures with character arguments, + with @option{-ftail-call-workaround=1} or equivalent + @option{-ftail-call-workaround} only in gfortran procedures with character + arguments that call implicitly prototyped procedures. + + Using this option can lead to problems including crashes due to + insufficient stack space. + + It is @emph{very strongly} recommended to fix the code in question. + The @option{-fc-prototypes-external} option can be used to generate + prototypes which conform to gfortran's ABI, for inclusion in the + source code. + + Support for this option will likely be withdrawn in a future release + of gfortran. + + The negative form, @option{-fno-tail-call-workaround} or equivalent + @option{-ftail-call-workaround=0}, can be used to disable this option. + + Default is currently @option{-ftail-call-workaround}, this will change + in future releases. + @item -fcheck-array-temporaries @opindex @code{fcheck-array-temporaries} Deprecated alias for @option{-fcheck=array-temps}. diff -Nrcpad gcc-8.3.0/gcc/fortran/iresolve.c gcc-8.4.0/gcc/fortran/iresolve.c *** gcc-8.3.0/gcc/fortran/iresolve.c Wed Mar 14 00:56:48 2018 --- gcc-8.4.0/gcc/fortran/iresolve.c Wed Mar 4 08:30:00 2020 *************** along with GCC; see the file COPYING3. *** 35,40 **** --- 35,41 ---- #include "intrinsic.h" #include "constructor.h" #include "arith.h" + #include "trans.h" /* Given printf-like arguments, return a stable version of the result string. *************** gfc_resolve_fe_runtime_error (gfc_code * *** 2377,2382 **** --- 2378,2387 ---- a->name = "%VAL"; c->resolved_sym = gfc_get_intrinsic_sub_symbol (name); + /* We set the backend_decl here because runtime_error is a + variadic function and we would use the wrong calling + convention otherwise. */ + c->resolved_sym->backend_decl = gfor_fndecl_runtime_error; } void diff -Nrcpad gcc-8.3.0/gcc/fortran/lang.opt gcc-8.4.0/gcc/fortran/lang.opt *** gcc-8.3.0/gcc/fortran/lang.opt Wed Jan 3 10:03:58 2018 --- gcc-8.4.0/gcc/fortran/lang.opt Wed Mar 4 08:30:00 2020 *************** fsign-zero *** 742,747 **** --- 742,754 ---- Fortran Var(flag_sign_zero) Init(1) Apply negative sign to zero values. + ftail-call-workaround + Fortran Alias(ftail-call-workaround=,1,0) + + ftail-call-workaround= + Fortran RejectNegative Joined UInteger IntegerRange(0, 2) Var(flag_tail_call_workaround) Init(1) + Disallow tail call optimization when a calling routine may have omitted character lengths. + funderscoring Fortran Var(flag_underscoring) Init(1) Append underscores to externally visible names. diff -Nrcpad gcc-8.3.0/gcc/fortran/match.c gcc-8.4.0/gcc/fortran/match.c *** gcc-8.3.0/gcc/fortran/match.c Sun Dec 9 19:51:59 2018 --- gcc-8.4.0/gcc/fortran/match.c Wed Mar 4 08:30:00 2020 *************** gfc_match_type_spec (gfc_typespec *ts) *** 2105,2112 **** ts->type = BT_CHARACTER; m = gfc_match_char_spec (ts); - if (ts->u.cl && ts->u.cl->length) - gfc_resolve_expr (ts->u.cl->length); if (m == MATCH_NO) m = MATCH_YES; --- 2105,2110 ---- diff -Nrcpad gcc-8.3.0/gcc/fortran/openmp.c gcc-8.4.0/gcc/fortran/openmp.c *** gcc-8.3.0/gcc/fortran/openmp.c Mon Nov 5 14:10:16 2018 --- gcc-8.4.0/gcc/fortran/openmp.c Wed Mar 4 08:30:00 2020 *************** omp_code_to_statement (gfc_code *code) *** 5689,5694 **** --- 5689,5769 ---- return ST_OMP_PARALLEL_WORKSHARE; case EXEC_OMP_DO: return ST_OMP_DO; + case EXEC_OMP_ATOMIC: + return ST_OMP_ATOMIC; + case EXEC_OMP_BARRIER: + return ST_OMP_BARRIER; + case EXEC_OMP_CANCEL: + return ST_OMP_CANCEL; + case EXEC_OMP_CANCELLATION_POINT: + return ST_OMP_CANCELLATION_POINT; + case EXEC_OMP_FLUSH: + return ST_OMP_FLUSH; + case EXEC_OMP_DISTRIBUTE: + return ST_OMP_DISTRIBUTE; + case EXEC_OMP_DISTRIBUTE_PARALLEL_DO: + return ST_OMP_DISTRIBUTE_PARALLEL_DO; + case EXEC_OMP_DISTRIBUTE_PARALLEL_DO_SIMD: + return ST_OMP_DISTRIBUTE_PARALLEL_DO_SIMD; + case EXEC_OMP_DISTRIBUTE_SIMD: + return ST_OMP_DISTRIBUTE_SIMD; + case EXEC_OMP_DO_SIMD: + return ST_OMP_DO_SIMD; + case EXEC_OMP_SIMD: + return ST_OMP_SIMD; + case EXEC_OMP_TARGET: + return ST_OMP_TARGET; + case EXEC_OMP_TARGET_DATA: + return ST_OMP_TARGET_DATA; + case EXEC_OMP_TARGET_ENTER_DATA: + return ST_OMP_TARGET_ENTER_DATA; + case EXEC_OMP_TARGET_EXIT_DATA: + return ST_OMP_TARGET_EXIT_DATA; + case EXEC_OMP_TARGET_PARALLEL: + return ST_OMP_TARGET_PARALLEL; + case EXEC_OMP_TARGET_PARALLEL_DO: + return ST_OMP_TARGET_PARALLEL_DO; + case EXEC_OMP_TARGET_PARALLEL_DO_SIMD: + return ST_OMP_TARGET_PARALLEL_DO_SIMD; + case EXEC_OMP_TARGET_SIMD: + return ST_OMP_TARGET_SIMD; + case EXEC_OMP_TARGET_TEAMS: + return ST_OMP_TARGET_TEAMS; + case EXEC_OMP_TARGET_TEAMS_DISTRIBUTE: + return ST_OMP_TARGET_TEAMS_DISTRIBUTE; + case EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO: + return ST_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO; + case EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD: + return ST_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD; + case EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_SIMD: + return ST_OMP_TARGET_TEAMS_DISTRIBUTE_SIMD; + case EXEC_OMP_TARGET_UPDATE: + return ST_OMP_TARGET_UPDATE; + case EXEC_OMP_TASKGROUP: + return ST_OMP_TASKGROUP; + case EXEC_OMP_TASKLOOP: + return ST_OMP_TASKLOOP; + case EXEC_OMP_TASKLOOP_SIMD: + return ST_OMP_TASKLOOP_SIMD; + case EXEC_OMP_TASKWAIT: + return ST_OMP_TASKWAIT; + case EXEC_OMP_TASKYIELD: + return ST_OMP_TASKYIELD; + case EXEC_OMP_TEAMS: + return ST_OMP_TEAMS; + case EXEC_OMP_TEAMS_DISTRIBUTE: + return ST_OMP_TEAMS_DISTRIBUTE; + case EXEC_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO: + return ST_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO; + case EXEC_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD: + return ST_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD; + case EXEC_OMP_TEAMS_DISTRIBUTE_SIMD: + return ST_OMP_TEAMS_DISTRIBUTE_SIMD; + case EXEC_OMP_PARALLEL_DO: + return ST_OMP_PARALLEL_DO; + case EXEC_OMP_PARALLEL_DO_SIMD: + return ST_OMP_PARALLEL_DO_SIMD; + default: gcc_unreachable (); } *************** oacc_code_to_statement (gfc_code *code) *** 5715,5720 **** --- 5790,5809 ---- return ST_OACC_LOOP; case EXEC_OACC_ATOMIC: return ST_OACC_ATOMIC; + case EXEC_OACC_ROUTINE: + return ST_OACC_ROUTINE; + case EXEC_OACC_UPDATE: + return ST_OACC_UPDATE; + case EXEC_OACC_WAIT: + return ST_OACC_WAIT; + case EXEC_OACC_CACHE: + return ST_OACC_CACHE; + case EXEC_OACC_ENTER_DATA: + return ST_OACC_ENTER_DATA; + case EXEC_OACC_EXIT_DATA: + return ST_OACC_EXIT_DATA; + case EXEC_OACC_DECLARE: + return ST_OACC_DECLARE; default: gcc_unreachable (); } diff -Nrcpad gcc-8.3.0/gcc/fortran/parse.c gcc-8.4.0/gcc/fortran/parse.c *** gcc-8.3.0/gcc/fortran/parse.c Fri Jun 15 14:03:00 2018 --- gcc-8.4.0/gcc/fortran/parse.c Wed Mar 4 08:30:00 2020 *************** parse_omp_structured_block (gfc_statemen *** 5073,5078 **** --- 5073,5081 ---- case ST_OMP_TARGET_DATA: omp_end_st = ST_OMP_END_TARGET_DATA; break; + case ST_OMP_TARGET_PARALLEL: + omp_end_st = ST_OMP_END_TARGET_PARALLEL; + break; case ST_OMP_TARGET_TEAMS: omp_end_st = ST_OMP_END_TARGET_TEAMS; break; *************** parse_block_data (void) *** 5830,5836 **** } else { ! s = gfc_get_gsymbol (gfc_new_block->name); if (s->defined || (s->type != GSYM_UNKNOWN && s->type != GSYM_BLOCK_DATA)) gfc_global_used (s, &gfc_new_block->declared_at); --- 5833,5839 ---- } else { ! s = gfc_get_gsymbol (gfc_new_block->name, false); if (s->defined || (s->type != GSYM_UNKNOWN && s->type != GSYM_BLOCK_DATA)) gfc_global_used (s, &gfc_new_block->declared_at); *************** parse_module (void) *** 5912,5918 **** gfc_gsymbol *s; bool error; ! s = gfc_get_gsymbol (gfc_new_block->name); if (s->defined || (s->type != GSYM_UNKNOWN && s->type != GSYM_MODULE)) gfc_global_used (s, &gfc_new_block->declared_at); else --- 5915,5921 ---- gfc_gsymbol *s; bool error; ! s = gfc_get_gsymbol (gfc_new_block->name, false); if (s->defined || (s->type != GSYM_UNKNOWN && s->type != GSYM_MODULE)) gfc_global_used (s, &gfc_new_block->declared_at); else *************** add_global_procedure (bool sub) *** 5976,5982 **** name is a global identifier. */ if (!gfc_new_block->binding_label || gfc_notification_std (GFC_STD_F2008)) { ! s = gfc_get_gsymbol (gfc_new_block->name); if (s->defined || (s->type != GSYM_UNKNOWN --- 5979,5985 ---- name is a global identifier. */ if (!gfc_new_block->binding_label || gfc_notification_std (GFC_STD_F2008)) { ! s = gfc_get_gsymbol (gfc_new_block->name, false); if (s->defined || (s->type != GSYM_UNKNOWN *************** add_global_procedure (bool sub) *** 6001,6007 **** && (!gfc_notification_std (GFC_STD_F2008) || strcmp (gfc_new_block->name, gfc_new_block->binding_label) != 0)) { ! s = gfc_get_gsymbol (gfc_new_block->binding_label); if (s->defined || (s->type != GSYM_UNKNOWN --- 6004,6010 ---- && (!gfc_notification_std (GFC_STD_F2008) || strcmp (gfc_new_block->name, gfc_new_block->binding_label) != 0)) { ! s = gfc_get_gsymbol (gfc_new_block->binding_label, true); if (s->defined || (s->type != GSYM_UNKNOWN *************** add_global_program (void) *** 6033,6039 **** if (gfc_new_block == NULL) return; ! s = gfc_get_gsymbol (gfc_new_block->name); if (s->defined || (s->type != GSYM_UNKNOWN && s->type != GSYM_PROGRAM)) gfc_global_used (s, &gfc_new_block->declared_at); --- 6036,6042 ---- if (gfc_new_block == NULL) return; ! s = gfc_get_gsymbol (gfc_new_block->name, false); if (s->defined || (s->type != GSYM_UNKNOWN && s->type != GSYM_PROGRAM)) gfc_global_used (s, &gfc_new_block->declared_at); diff -Nrcpad gcc-8.3.0/gcc/fortran/resolve.c gcc-8.4.0/gcc/fortran/resolve.c *** gcc-8.3.0/gcc/fortran/resolve.c Sun Jan 27 18:02:17 2019 --- gcc-8.4.0/gcc/fortran/resolve.c Wed Mar 4 08:30:00 2020 *************** resolve_common_blocks (gfc_symtree *comm *** 1045,1051 **** } if (!gsym) { ! gsym = gfc_get_gsymbol (common_root->n.common->name); gsym->type = GSYM_COMMON; gsym->where = common_root->n.common->where; gsym->defined = 1; --- 1045,1051 ---- } if (!gsym) { ! gsym = gfc_get_gsymbol (common_root->n.common->name, false); gsym->type = GSYM_COMMON; gsym->where = common_root->n.common->where; gsym->defined = 1; *************** resolve_common_blocks (gfc_symtree *comm *** 1067,1073 **** } if (!gsym) { ! gsym = gfc_get_gsymbol (common_root->n.common->binding_label); gsym->type = GSYM_COMMON; gsym->where = common_root->n.common->where; gsym->defined = 1; --- 1067,1073 ---- } if (!gsym) { ! gsym = gfc_get_gsymbol (common_root->n.common->binding_label, true); gsym->type = GSYM_COMMON; gsym->where = common_root->n.common->where; gsym->defined = 1; *************** is_illegal_recursion (gfc_symbol* sym, g *** 1681,1688 **** || gfc_fl_struct (sym->attr.flavor)) return false; - gcc_assert (sym->attr.flavor == FL_PROCEDURE); - /* If we've got an ENTRY, find real procedure. */ if (sym->attr.entry && sym->ns->entries) proc_sym = sym->ns->entries->sym; --- 1681,1686 ---- *************** resolve_global_procedure (gfc_symbol *sy *** 2484,2490 **** type = sub ? GSYM_SUBROUTINE : GSYM_FUNCTION; ! gsym = gfc_get_gsymbol (sym->binding_label ? sym->binding_label : sym->name); if ((gsym->type != GSYM_UNKNOWN && gsym->type != type)) gfc_global_used (gsym, where); --- 2482,2489 ---- type = sub ? GSYM_SUBROUTINE : GSYM_FUNCTION; ! gsym = gfc_get_gsymbol (sym->binding_label ? sym->binding_label : sym->name, ! sym->binding_label != NULL); if ((gsym->type != GSYM_UNKNOWN && gsym->type != type)) gfc_global_used (gsym, where); *************** resolve_global_procedure (gfc_symbol *sy *** 2494,2557 **** && gsym->type != GSYM_UNKNOWN && !gsym->binding_label && gsym->ns - && gsym->ns->resolved != -1 && gsym->ns->proc_name && not_in_recursive (sym, gsym->ns) && not_entry_self_reference (sym, gsym->ns)) { gfc_symbol *def_sym; /* Resolve the gsymbol namespace if needed. */ ! if (!gsym->ns->resolved) { ! gfc_dt_list *old_dt_list; ! /* Stash away derived types so that the backend_decls do not ! get mixed up. */ ! old_dt_list = gfc_derived_types; ! gfc_derived_types = NULL; ! gfc_resolve (gsym->ns); ! /* Store the new derived types with the global namespace. */ ! if (gfc_derived_types) ! gsym->ns->derived_types = gfc_derived_types; ! /* Restore the derived types of this namespace. */ ! gfc_derived_types = old_dt_list; ! } ! /* Make sure that translation for the gsymbol occurs before ! the procedure currently being resolved. */ ! ns = gfc_global_ns_list; ! for (; ns && ns != gsym->ns; ns = ns->sibling) ! { ! if (ns->sibling == gsym->ns) { ! ns->sibling = gsym->ns->sibling; ! gsym->ns->sibling = gfc_global_ns_list; ! gfc_global_ns_list = gsym->ns; ! break; } - } - - def_sym = gsym->ns->proc_name; ! /* This can happen if a binding name has been specified. */ ! if (gsym->binding_label && gsym->sym_name != def_sym->name) ! gfc_find_symbol (gsym->sym_name, gsym->ns, 0, &def_sym); ! if (def_sym->attr.entry_master) ! { ! gfc_entry_list *entry; ! for (entry = gsym->ns->entries; entry; entry = entry->next) ! if (strcmp (entry->sym->name, sym->name) == 0) ! { ! def_sym = entry->sym; ! break; ! } } - if (sym->attr.function && !gfc_compare_types (&sym->ts, &def_sym->ts)) { gfc_error ("Return type mismatch of function %qs at %L (%s/%s)", --- 2493,2556 ---- && gsym->type != GSYM_UNKNOWN && !gsym->binding_label && gsym->ns && gsym->ns->proc_name && not_in_recursive (sym, gsym->ns) && not_entry_self_reference (sym, gsym->ns)) { gfc_symbol *def_sym; + def_sym = gsym->ns->proc_name; /* Resolve the gsymbol namespace if needed. */ ! if (gsym->ns->resolved != -1) { ! if (!gsym->ns->resolved) ! { ! gfc_dt_list *old_dt_list; ! /* Stash away derived types so that the backend_decls ! do not get mixed up. */ ! old_dt_list = gfc_derived_types; ! gfc_derived_types = NULL; ! gfc_resolve (gsym->ns); ! /* Store the new derived types with the global namespace. */ ! if (gfc_derived_types) ! gsym->ns->derived_types = gfc_derived_types; ! /* Restore the derived types of this namespace. */ ! gfc_derived_types = old_dt_list; ! } ! /* Make sure that translation for the gsymbol occurs before ! the procedure currently being resolved. */ ! ns = gfc_global_ns_list; ! for (; ns && ns != gsym->ns; ns = ns->sibling) { ! if (ns->sibling == gsym->ns) ! { ! ns->sibling = gsym->ns->sibling; ! gsym->ns->sibling = gfc_global_ns_list; ! gfc_global_ns_list = gsym->ns; ! break; ! } } ! /* This can happen if a binding name has been specified. */ ! if (gsym->binding_label && gsym->sym_name != def_sym->name) ! gfc_find_symbol (gsym->sym_name, gsym->ns, 0, &def_sym); ! if (def_sym->attr.entry_master || def_sym->attr.entry) ! { ! gfc_entry_list *entry; ! for (entry = gsym->ns->entries; entry; entry = entry->next) ! if (strcmp (entry->sym->name, sym->name) == 0) ! { ! def_sym = entry->sym; ! break; ! } ! } } if (sym->attr.function && !gfc_compare_types (&sym->ts, &def_sym->ts)) { gfc_error ("Return type mismatch of function %qs at %L (%s/%s)", *************** find_array_spec (gfc_expr *e) *** 4633,4641 **** gfc_array_spec *as; gfc_component *c; gfc_ref *ref; if (e->symtree->n.sym->ts.type == BT_CLASS) ! as = CLASS_DATA (e->symtree->n.sym)->as; else as = e->symtree->n.sym->as; --- 4632,4644 ---- gfc_array_spec *as; gfc_component *c; gfc_ref *ref; + bool class_as = false; if (e->symtree->n.sym->ts.type == BT_CLASS) ! { ! as = CLASS_DATA (e->symtree->n.sym)->as; ! class_as = true; ! } else as = e->symtree->n.sym->as; *************** find_array_spec (gfc_expr *e) *** 4654,4660 **** c = ref->u.c.component; if (c->attr.dimension) { ! if (as != NULL) gfc_internal_error ("find_array_spec(): unused as(1)"); as = c->as; } --- 4657,4663 ---- c = ref->u.c.component; if (c->attr.dimension) { ! if (as != NULL && !(class_as && as == c->as)) gfc_internal_error ("find_array_spec(): unused as(1)"); as = c->as; } *************** gfc_resolve_substring_charlen (gfc_expr *** 4881,4886 **** --- 4884,4890 ---- gfc_ref *char_ref; gfc_expr *start, *end; gfc_typespec *ts = NULL; + mpz_t diff; for (char_ref = e->ref; char_ref; char_ref = char_ref->next) { *************** gfc_resolve_substring_charlen (gfc_expr *** 4932,4942 **** return; } ! /* Length = (end - start + 1). */ ! e->ts.u.cl->length = gfc_subtract (end, start); ! e->ts.u.cl->length = gfc_add (e->ts.u.cl->length, ! gfc_get_int_expr (gfc_charlen_int_kind, ! NULL, 1)); /* F2008, 6.4.1: Both the starting point and the ending point shall be within the range 1, 2, ..., n unless the starting point exceeds --- 4936,4960 ---- return; } ! /* Length = (end - start + 1). ! Check first whether it has a constant length. */ ! if (gfc_dep_difference (end, start, &diff)) ! { ! gfc_expr *len = gfc_get_constant_expr (BT_INTEGER, gfc_charlen_int_kind, ! &e->where); ! ! mpz_add_ui (len->value.integer, diff, 1); ! mpz_clear (diff); ! e->ts.u.cl->length = len; ! /* The check for length < 0 is handled below */ ! } ! else ! { ! e->ts.u.cl->length = gfc_subtract (end, start); ! e->ts.u.cl->length = gfc_add (e->ts.u.cl->length, ! gfc_get_int_expr (gfc_charlen_int_kind, ! NULL, 1)); ! } /* F2008, 6.4.1: Both the starting point and the ending point shall be within the range 1, 2, ..., n unless the starting point exceeds *************** resolve_procedure: *** 5615,5625 **** /* Checks to see that the correct symbol has been host associated. ! The only situation where this arises is that in which a twice ! contained function is parsed after the host association is made. ! Therefore, on detecting this, change the symbol in the expression ! and convert the array reference into an actual arglist if the old ! symbol is a variable. */ static bool check_host_association (gfc_expr *e) { --- 5633,5646 ---- /* Checks to see that the correct symbol has been host associated. ! The only situations where this arises are: ! (i) That in which a twice contained function is parsed after ! the host association is made. On detecting this, change ! the symbol in the expression and convert the array reference ! into an actual arglist if the old symbol is a variable; or ! (ii) That in which an external function is typed but not declared ! explcitly to be external. Here, the old symbol is changed ! from a variable to an external function. */ static bool check_host_association (gfc_expr *e) { *************** check_host_association (gfc_expr *e) *** 5709,5714 **** --- 5730,5755 ---- gfc_resolve_expr (e); sym->refs++; } + /* This case corresponds to a call, from a block or a contained + procedure, to an external function, which has not been declared + as being external in the main program but has been typed. */ + else if (sym && old_sym != sym + && !e->ref + && sym->ts.type == BT_UNKNOWN + && old_sym->ts.type != BT_UNKNOWN + && sym->attr.flavor == FL_PROCEDURE + && old_sym->attr.flavor == FL_VARIABLE + && sym->ns->parent == old_sym->ns + && sym->ns->proc_name + && (sym->ns->proc_name->attr.flavor == FL_LABEL + || sym->ns->proc_name->attr.flavor == FL_PROCEDURE)) + { + old_sym->attr.flavor = FL_PROCEDURE; + old_sym->attr.external = 1; + old_sym->attr.function = 1; + old_sym->result = old_sym; + gfc_resolve_expr (e); + } } /* This might have changed! */ return e->expr_type == EXPR_FUNCTION; *************** gfc_resolve_iterator (gfc_iterator *iter *** 6888,6906 **** "Step expression in DO loop")) return false; - if (iter->step->expr_type == EXPR_CONSTANT) - { - if ((iter->step->ts.type == BT_INTEGER - && mpz_cmp_ui (iter->step->value.integer, 0) == 0) - || (iter->step->ts.type == BT_REAL - && mpfr_sgn (iter->step->value.real) == 0)) - { - gfc_error ("Step expression in DO loop at %L cannot be zero", - &iter->step->where); - return false; - } - } - /* Convert start, end, and step to the same type as var. */ if (iter->start->ts.kind != iter->var->ts.kind || iter->start->ts.type != iter->var->ts.type) --- 6929,6934 ---- *************** gfc_resolve_iterator (gfc_iterator *iter *** 6914,6919 **** --- 6942,6960 ---- || iter->step->ts.type != iter->var->ts.type) gfc_convert_type (iter->step, &iter->var->ts, 1); + if (iter->step->expr_type == EXPR_CONSTANT) + { + if ((iter->step->ts.type == BT_INTEGER + && mpz_cmp_ui (iter->step->value.integer, 0) == 0) + || (iter->step->ts.type == BT_REAL + && mpfr_sgn (iter->step->value.real) == 0)) + { + gfc_error ("Step expression in DO loop at %L cannot be zero", + &iter->step->where); + return false; + } + } + if (iter->start->expr_type == EXPR_CONSTANT && iter->end->expr_type == EXPR_CONSTANT && iter->step->expr_type == EXPR_CONSTANT) *************** gfc_expr_to_initialize (gfc_expr *e) *** 7215,7220 **** --- 7256,7265 ---- for (ref = result->ref; ref; ref = ref->next) if (ref->type == REF_ARRAY && ref->next == NULL) { + if (ref->u.ar.dimen == 0 + && ref->u.ar.as && ref->u.ar.as->corank) + return result; + ref->u.ar.type = AR_FULL; for (i = 0; i < ref->u.ar.dimen; i++) *************** resolve_allocate_expr (gfc_expr *e, gfc_ *** 7640,7652 **** if (codimension) for (i = ar->dimen; i < ar->dimen + ar->codimen; i++) ! if (ar->dimen_type[i] == DIMEN_THIS_IMAGE) ! { ! gfc_error ("Coarray specification required in ALLOCATE statement " ! "at %L", &e->where); ! goto failure; ! } for (i = 0; i < ar->dimen; i++) { if (ar->type == AR_ELEMENT || ar->type == AR_FULL) --- 7685,7738 ---- if (codimension) for (i = ar->dimen; i < ar->dimen + ar->codimen; i++) ! { ! switch (ar->dimen_type[i]) ! { ! case DIMEN_THIS_IMAGE: ! gfc_error ("Coarray specification required in ALLOCATE statement " ! "at %L", &e->where); ! goto failure; + case DIMEN_RANGE: + if (ar->start[i] == 0 || ar->end[i] == 0) + { + /* If ar->stride[i] is NULL, we issued a previous error. */ + if (ar->stride[i] == NULL) + gfc_error ("Bad array specification in ALLOCATE statement " + "at %L", &e->where); + goto failure; + } + else if (gfc_dep_compare_expr (ar->start[i], ar->end[i]) == 1) + { + gfc_error ("Upper cobound is less than lower cobound at %L", + &ar->start[i]->where); + goto failure; + } + break; + + case DIMEN_ELEMENT: + if (ar->start[i]->expr_type == EXPR_CONSTANT) + { + gcc_assert (ar->start[i]->ts.type == BT_INTEGER); + if (mpz_cmp_si (ar->start[i]->value.integer, 1) < 0) + { + gfc_error ("Upper cobound is less than lower cobound " + " of 1 at %L", &ar->start[i]->where); + goto failure; + } + } + break; + + case DIMEN_STAR: + break; + + default: + gfc_error ("Bad array specification in ALLOCATE statement at %L", + &e->where); + goto failure; + + } + } for (i = 0; i < ar->dimen; i++) { if (ar->type == AR_ELEMENT || ar->type == AR_FULL) *************** deferred_op_assign (gfc_code **code, gfc *** 11011,11016 **** --- 11097,11105 ---- if (!gfc_check_dependency ((*code)->expr1, (*code)->expr2, 1)) return false; + if (gfc_expr_attr ((*code)->expr1).pointer) + return false; + tmp_expr = get_temp_from_expr ((*code)->expr1, ns); tmp_expr->where = (*code)->loc; *************** gfc_verify_binding_labels (gfc_symbol *s *** 11647,11653 **** && (gsym->type == GSYM_FUNCTION || gsym->type == GSYM_SUBROUTINE))) { if (!gsym) ! gsym = gfc_get_gsymbol (sym->binding_label); gsym->where = sym->declared_at; gsym->sym_name = sym->name; gsym->binding_label = sym->binding_label; --- 11736,11742 ---- && (gsym->type == GSYM_FUNCTION || gsym->type == GSYM_SUBROUTINE))) { if (!gsym) ! gsym = gfc_get_gsymbol (sym->binding_label, true); gsym->where = sym->declared_at; gsym->sym_name = sym->name; gsym->binding_label = sym->binding_label; *************** resolve_equivalence (gfc_equiv *eq) *** 16266,16273 **** } ! /* Function called by resolve_fntype to flag other symbol used in the ! length type parameter specification of function resuls. */ static bool flag_fn_result_spec (gfc_expr *expr, --- 16355,16362 ---- } ! /* Function called by resolve_fntype to flag other symbols used in the ! length type parameter specification of function results. */ static bool flag_fn_result_spec (gfc_expr *expr, diff -Nrcpad gcc-8.3.0/gcc/fortran/simplify.c gcc-8.4.0/gcc/fortran/simplify.c *** gcc-8.3.0/gcc/fortran/simplify.c Sun Dec 16 17:00:33 2018 --- gcc-8.4.0/gcc/fortran/simplify.c Wed Mar 4 08:30:00 2020 *************** convert_mpz_to_unsigned (mpz_t x, int bi *** 169,176 **** } else { ! /* Confirm that no bits above the signed range are set. */ ! gcc_assert (mpz_scan1 (x, bitsize-1) == ULONG_MAX); } } --- 169,178 ---- } else { ! /* Confirm that no bits above the signed range are set if we ! are doing range checking. */ ! if (flag_range_check != 0) ! gcc_assert (mpz_scan1 (x, bitsize-1) == ULONG_MAX); } } *************** gfc_simplify_len (gfc_expr *e, gfc_expr *** 4469,4475 **** /* The expression in assoc->target points to a ref to the _data component of the unlimited polymorphic entity. To get the _len component the last _data ref needs to be stripped and a ref to the _len component added. */ ! return gfc_get_len_component (e->symtree->n.sym->assoc->target); else return NULL; } --- 4471,4477 ---- /* The expression in assoc->target points to a ref to the _data component of the unlimited polymorphic entity. To get the _len component the last _data ref needs to be stripped and a ref to the _len component added. */ ! return gfc_get_len_component (e->symtree->n.sym->assoc->target, k); else return NULL; } *************** gfc_simplify_sizeof (gfc_expr *x) *** 6921,6926 **** --- 6923,6929 ---- { gfc_expr *result = NULL; mpz_t array_size; + size_t res_size; if (x->ts.type == BT_CLASS || x->ts.deferred) return NULL; *************** gfc_simplify_sizeof (gfc_expr *x) *** 6936,6942 **** result = gfc_get_constant_expr (BT_INTEGER, gfc_index_integer_kind, &x->where); ! mpz_set_si (result->value.integer, gfc_target_expr_size (x)); return result; } --- 6939,6946 ---- result = gfc_get_constant_expr (BT_INTEGER, gfc_index_integer_kind, &x->where); ! gfc_target_expr_size (x, &res_size); ! mpz_set_si (result->value.integer, res_size); return result; } *************** gfc_simplify_storage_size (gfc_expr *x, *** 6950,6955 **** --- 6954,6960 ---- { gfc_expr *result = NULL; int k; + size_t siz; if (x->ts.type == BT_CLASS || x->ts.deferred) return NULL; *************** gfc_simplify_storage_size (gfc_expr *x, *** 6965,6971 **** result = gfc_get_constant_expr (BT_INTEGER, k, &x->where); ! mpz_set_si (result->value.integer, gfc_element_size (x)); mpz_mul_ui (result->value.integer, result->value.integer, BITS_PER_UNIT); return range_check (result, "STORAGE_SIZE"); --- 6970,6977 ---- result = gfc_get_constant_expr (BT_INTEGER, k, &x->where); ! gfc_element_size (x, &siz); ! mpz_set_si (result->value.integer, siz); mpz_mul_ui (result->value.integer, result->value.integer, BITS_PER_UNIT); return range_check (result, "STORAGE_SIZE"); *************** gfc_simplify_spread (gfc_expr *source, g *** 7164,7170 **** nelem = mpz_get_si (size) * ncopies; if (nelem > flag_max_array_constructor) { ! if (gfc_current_ns->sym_root->n.sym->attr.flavor == FL_PARAMETER) { gfc_error ("The number of elements (%d) in the array constructor " "at %L requires an increase of the allowed %d upper " --- 7170,7176 ---- nelem = mpz_get_si (size) * ncopies; if (nelem > flag_max_array_constructor) { ! if (gfc_init_expr_flag) { gfc_error ("The number of elements (%d) in the array constructor " "at %L requires an increase of the allowed %d upper " diff -Nrcpad gcc-8.3.0/gcc/fortran/symbol.c gcc-8.4.0/gcc/fortran/symbol.c *** gcc-8.3.0/gcc/fortran/symbol.c Sat Jun 9 18:02:56 2018 --- gcc-8.4.0/gcc/fortran/symbol.c Wed Mar 4 08:30:00 2020 *************** check_conflict (symbol_attribute *attr, *** 522,528 **** /* The copying of procedure dummy arguments for module procedures in a submodule occur whilst the current state is COMP_CONTAINS. It is necessary, therefore, to let this through. */ ! if (attr->dummy && (attr->function || attr->subroutine) && gfc_current_state () == COMP_CONTAINS && !(gfc_new_block && gfc_new_block->abr_modproc_decl)) --- 522,528 ---- /* The copying of procedure dummy arguments for module procedures in a submodule occur whilst the current state is COMP_CONTAINS. It is necessary, therefore, to let this through. */ ! if (name && attr->dummy && (attr->function || attr->subroutine) && gfc_current_state () == COMP_CONTAINS && !(gfc_new_block && gfc_new_block->abr_modproc_decl)) *************** check_conflict (symbol_attribute *attr, *** 554,559 **** --- 554,560 ---- conf (external, intrinsic); conf (entry, intrinsic); + conf (abstract, intrinsic); if ((attr->if_source == IFSRC_DECL && !attr->procedure) || attr->contained) conf (external, subroutine); *************** gfc_add_subroutine (symbol_attribute *at *** 1685,1691 **** return false; attr->subroutine = 1; ! return check_conflict (attr, name, where); } --- 1686,1700 ---- return false; attr->subroutine = 1; ! ! /* If we are looking at a BLOCK DATA statement and we encounter a ! name with a leading underscore (which must be ! compiler-generated), do not check. See PR 84394. */ ! ! if (name && *name != '_' && gfc_current_state () != COMP_BLOCK_DATA) ! return check_conflict (attr, name, where); ! else ! return true; } *************** gfc_add_procedure (symbol_attribute *att *** 1801,1807 **** if (where == NULL) where = &gfc_current_locus; ! if (attr->proc != PROC_UNKNOWN && !attr->module_procedure) { if (attr->proc == PROC_ST_FUNCTION && t == PROC_INTERNAL && !gfc_notification_std (GFC_STD_F2008)) --- 1810,1817 ---- if (where == NULL) where = &gfc_current_locus; ! if (attr->proc != PROC_UNKNOWN && !attr->module_procedure ! && attr->access == ACCESS_UNKNOWN) { if (attr->proc == PROC_ST_FUNCTION && t == PROC_INTERNAL && !gfc_notification_std (GFC_STD_F2008)) *************** gsym_compare (void *_s1, void *_s2) *** 4352,4358 **** /* Get a global symbol, creating it if it doesn't exist. */ gfc_gsymbol * ! gfc_get_gsymbol (const char *name) { gfc_gsymbol *s; --- 4362,4368 ---- /* Get a global symbol, creating it if it doesn't exist. */ gfc_gsymbol * ! gfc_get_gsymbol (const char *name, bool bind_c) { gfc_gsymbol *s; *************** gfc_get_gsymbol (const char *name) *** 4363,4368 **** --- 4373,4379 ---- s = XCNEW (gfc_gsymbol); s->type = GSYM_UNKNOWN; s->name = gfc_get_string ("%s", name); + s->bind_c = bind_c; gfc_insert_bbt (&gfc_gsym_root, s, gsym_compare); diff -Nrcpad gcc-8.3.0/gcc/fortran/target-memory.c gcc-8.4.0/gcc/fortran/target-memory.c *** gcc-8.3.0/gcc/fortran/target-memory.c Thu Mar 1 11:06:18 2018 --- gcc-8.4.0/gcc/fortran/target-memory.c Wed Mar 4 08:30:00 2020 *************** size_character (gfc_charlen_t length, in *** 73,98 **** /* Return the size of a single element of the given expression. ! Identical to gfc_target_expr_size for scalars. */ ! size_t ! gfc_element_size (gfc_expr *e) { tree type; switch (e->ts.type) { case BT_INTEGER: ! return size_integer (e->ts.kind); case BT_REAL: ! return size_float (e->ts.kind); case BT_COMPLEX: ! return size_complex (e->ts.kind); case BT_LOGICAL: ! return size_logical (e->ts.kind); case BT_CHARACTER: if (e->expr_type == EXPR_CONSTANT) ! return size_character (e->value.character.length, e->ts.kind); else if (e->ts.u.cl != NULL && e->ts.u.cl->length != NULL && e->ts.u.cl->length->expr_type == EXPR_CONSTANT && e->ts.u.cl->length->ts.type == BT_INTEGER) --- 73,102 ---- /* Return the size of a single element of the given expression. ! Equivalent to gfc_target_expr_size for scalars. */ ! bool ! gfc_element_size (gfc_expr *e, size_t *siz) { tree type; switch (e->ts.type) { case BT_INTEGER: ! *siz = size_integer (e->ts.kind); ! return true; case BT_REAL: ! *siz = size_float (e->ts.kind); ! return true; case BT_COMPLEX: ! *siz = size_complex (e->ts.kind); ! return true; case BT_LOGICAL: ! *siz = size_logical (e->ts.kind); ! return true; case BT_CHARACTER: if (e->expr_type == EXPR_CONSTANT) ! *siz = size_character (e->value.character.length, e->ts.kind); else if (e->ts.u.cl != NULL && e->ts.u.cl->length != NULL && e->ts.u.cl->length->expr_type == EXPR_CONSTANT && e->ts.u.cl->length->ts.type == BT_INTEGER) *************** gfc_element_size (gfc_expr *e) *** 100,116 **** HOST_WIDE_INT length; gfc_extract_hwi (e->ts.u.cl->length, &length); ! return size_character (length, e->ts.kind); } else ! return 0; case BT_HOLLERITH: ! return e->representation.length; case BT_DERIVED: case BT_CLASS: case BT_VOID: case BT_ASSUMED: { /* Determine type size without clobbering the typespec for ISO C binding types. */ --- 104,126 ---- HOST_WIDE_INT length; gfc_extract_hwi (e->ts.u.cl->length, &length); ! *siz = size_character (length, e->ts.kind); } else ! { ! *siz = 0; ! return false; ! } ! return true; case BT_HOLLERITH: ! *siz = e->representation.length; ! return true; case BT_DERIVED: case BT_CLASS: case BT_VOID: case BT_ASSUMED: + case BT_PROCEDURE: { /* Determine type size without clobbering the typespec for ISO C binding types. */ *************** gfc_element_size (gfc_expr *e) *** 120,155 **** type = gfc_typenode_for_spec (&ts); size = int_size_in_bytes (type); gcc_assert (size >= 0); ! return size; } default: gfc_internal_error ("Invalid expression in gfc_element_size."); ! return 0; } } /* Return the size of an expression in its target representation. */ ! size_t ! gfc_target_expr_size (gfc_expr *e) { mpz_t tmp; ! size_t asz; gcc_assert (e != NULL); if (e->rank) { if (gfc_array_size (e, &tmp)) asz = mpz_get_ui (tmp); else ! asz = 0; } else asz = 1; ! return asz * gfc_element_size (e); } --- 130,172 ---- type = gfc_typenode_for_spec (&ts); size = int_size_in_bytes (type); gcc_assert (size >= 0); ! *siz = size; } + return true; default: gfc_internal_error ("Invalid expression in gfc_element_size."); ! *siz = 0; ! return false; } + return true; } /* Return the size of an expression in its target representation. */ ! bool ! gfc_target_expr_size (gfc_expr *e, size_t *size) { mpz_t tmp; ! size_t asz, el_size; gcc_assert (e != NULL); + *size = 0; if (e->rank) { if (gfc_array_size (e, &tmp)) asz = mpz_get_ui (tmp); else ! return false; } else asz = 1; ! if (!gfc_element_size (e, &el_size)) ! return false; ! *size = asz * el_size; ! return true; } *************** expr_to_char (gfc_expr *e, locus *loc, *** 675,681 **** /* Otherwise, use the target-memory machinery to write a bitwise image, appropriate to the target, in a buffer and check off the initialized part of the buffer. */ ! len = gfc_target_expr_size (e); buffer = (unsigned char*)alloca (len); len = gfc_target_encode_expr (e, buffer, len); --- 692,698 ---- /* Otherwise, use the target-memory machinery to write a bitwise image, appropriate to the target, in a buffer and check off the initialized part of the buffer. */ ! gfc_target_expr_size (e, &len); buffer = (unsigned char*)alloca (len); len = gfc_target_encode_expr (e, buffer, len); *************** gfc_merge_initializers (gfc_typespec ts, *** 722,728 **** for (c = gfc_constructor_first (e->value.constructor); c; c = gfc_constructor_next (c)) { ! size_t elt_size = gfc_target_expr_size (c->expr); if (mpz_cmp_si (c->offset, 0) != 0) len = elt_size * (size_t)mpz_get_si (c->offset); --- 739,747 ---- for (c = gfc_constructor_first (e->value.constructor); c; c = gfc_constructor_next (c)) { ! size_t elt_size; ! ! gfc_target_expr_size (c->expr, &elt_size); if (mpz_cmp_si (c->offset, 0) != 0) len = elt_size * (size_t)mpz_get_si (c->offset); diff -Nrcpad gcc-8.3.0/gcc/fortran/target-memory.h gcc-8.4.0/gcc/fortran/target-memory.h *** gcc-8.3.0/gcc/fortran/target-memory.h Mon Jan 22 13:31:08 2018 --- gcc-8.4.0/gcc/fortran/target-memory.h Wed Mar 4 08:30:00 2020 *************** along with GCC; see the file COPYING3. *** 24,31 **** /* Convert a BOZ to REAL or COMPLEX. */ bool gfc_convert_boz (gfc_expr *, gfc_typespec *); ! size_t gfc_element_size (gfc_expr *); ! size_t gfc_target_expr_size (gfc_expr *); /* Write a constant expression in binary form to a target buffer. */ size_t gfc_encode_character (int, size_t, const gfc_char_t *, unsigned char *, --- 24,31 ---- /* Convert a BOZ to REAL or COMPLEX. */ bool gfc_convert_boz (gfc_expr *, gfc_typespec *); ! bool gfc_element_size (gfc_expr *, size_t *); ! bool gfc_target_expr_size (gfc_expr *, size_t *); /* Write a constant expression in binary form to a target buffer. */ size_t gfc_encode_character (int, size_t, const gfc_char_t *, unsigned char *, diff -Nrcpad gcc-8.3.0/gcc/fortran/trans-array.c gcc-8.4.0/gcc/fortran/trans-array.c *** gcc-8.3.0/gcc/fortran/trans-array.c Tue Feb 5 21:12:41 2019 --- gcc-8.4.0/gcc/fortran/trans-array.c Wed Mar 4 08:30:00 2020 *************** gfc_trans_create_temp_array (stmtblock_t *** 1164,1169 **** --- 1164,1170 ---- tree nelem; tree cond; tree or_expr; + tree elemsize; tree class_expr = NULL_TREE; int n, dim, tmp_dim; int total_dim = 0; *************** gfc_trans_create_temp_array (stmtblock_t *** 1329,1349 **** } } /* Get the size of the array. */ if (size && !callee_alloc) { - tree elemsize; /* If or_expr is true, then the extent in at least one dimension is zero and the size is set to zero. */ size = fold_build3_loc (input_location, COND_EXPR, gfc_array_index_type, or_expr, gfc_index_zero_node, size); nelem = size; - if (class_expr == NULL_TREE) - elemsize = fold_convert (gfc_array_index_type, - TYPE_SIZE_UNIT (gfc_get_element_type (type))); - else - elemsize = gfc_class_vtab_size_get (class_expr); size = fold_build2_loc (input_location, MULT_EXPR, gfc_array_index_type, size, elemsize); --- 1330,1350 ---- } } + if (class_expr == NULL_TREE) + elemsize = fold_convert (gfc_array_index_type, + TYPE_SIZE_UNIT (gfc_get_element_type (type))); + else + elemsize = gfc_class_vtab_size_get (class_expr); + /* Get the size of the array. */ if (size && !callee_alloc) { /* If or_expr is true, then the extent in at least one dimension is zero and the size is set to zero. */ size = fold_build3_loc (input_location, COND_EXPR, gfc_array_index_type, or_expr, gfc_index_zero_node, size); nelem = size; size = fold_build2_loc (input_location, MULT_EXPR, gfc_array_index_type, size, elemsize); *************** gfc_trans_create_temp_array (stmtblock_t *** 1354,1359 **** --- 1355,1364 ---- size = NULL_TREE; } + /* Set the span. */ + tmp = fold_convert (gfc_array_index_type, elemsize); + gfc_conv_descriptor_span_set (pre, desc, tmp); + gfc_trans_allocate_array_storage (pre, post, info, size, nelem, initial, dynamic, dealloc); *************** gfc_scalar_elemental_arg_saved_as_refere *** 2652,2657 **** --- 2657,2665 ---- if (ss_info->type != GFC_SS_REFERENCE) return false; + if (ss_info->data.scalar.needs_temporary) + return false; + /* If the actual argument can be absent (in other words, it can be a NULL reference), don't try to evaluate it; pass instead the reference directly. */ *************** gfc_conv_scalarized_array_ref (gfc_se * *** 3414,3423 **** if (build_class_array_ref (se, base, index)) return; ! if (expr && ((is_subref_array (expr) ! && GFC_DESCRIPTOR_TYPE_P (TREE_TYPE (info->descriptor))) ! || (expr->ts.deferred && (expr->expr_type == EXPR_VARIABLE ! || expr->expr_type == EXPR_FUNCTION)))) decl = expr->symtree->n.sym->backend_decl; /* A pointer array component can be detected from its field decl. Fix --- 3422,3429 ---- if (build_class_array_ref (se, base, index)) return; ! if (expr && (expr->ts.deferred && (expr->expr_type == EXPR_VARIABLE ! || expr->expr_type == EXPR_FUNCTION))) decl = expr->symtree->n.sym->backend_decl; /* A pointer array component can be detected from its field decl. Fix *************** gfc_is_reallocatable_lhs (gfc_expr *expr *** 9527,9535 **** if (sym->ts.type == BT_CLASS && !sym->attr.associate_var && CLASS_DATA (sym)->attr.allocatable ! && expr->ref && expr->ref->type == REF_COMPONENT ! && strcmp (expr->ref->u.c.component->name, "_data") == 0 ! && expr->ref->next == NULL) return true; /* An allocatable variable. */ --- 9533,9547 ---- if (sym->ts.type == BT_CLASS && !sym->attr.associate_var && CLASS_DATA (sym)->attr.allocatable ! && expr->ref ! && ((expr->ref->type == REF_ARRAY && expr->ref->u.ar.type == AR_FULL ! && expr->ref->next == NULL) ! || (expr->ref->type == REF_COMPONENT ! && strcmp (expr->ref->u.c.component->name, "_data") == 0 ! && (expr->ref->next == NULL ! || (expr->ref->next->type == REF_ARRAY ! && expr->ref->next->u.ar.type == AR_FULL ! && expr->ref->next->next == NULL))))) return true; /* An allocatable variable. */ *************** gfc_walk_variable_expr (gfc_ss * ss, gfc *** 10350,10355 **** --- 10362,10369 ---- { gfc_ref *ref; + gfc_fix_class_refs (expr); + for (ref = expr->ref; ref; ref = ref->next) if (ref->type == REF_ARRAY && ref->u.ar.type != AR_ELEMENT) break; diff -Nrcpad gcc-8.3.0/gcc/fortran/trans-decl.c gcc-8.4.0/gcc/fortran/trans-decl.c *** gcc-8.3.0/gcc/fortran/trans-decl.c Thu Feb 7 14:52:41 2019 --- gcc-8.4.0/gcc/fortran/trans-decl.c Wed Mar 4 08:30:00 2020 *************** gfc_get_label_decl (gfc_st_label * lp) *** 342,405 **** } } ! /* Convert a gfc_symbol to an identifier of the same name. */ ! ! static tree ! gfc_sym_identifier (gfc_symbol * sym) { if (sym->attr.is_main_program && strcmp (sym->name, "main") == 0) ! return (get_identifier ("MAIN__")); else ! return (get_identifier (sym->name)); } ! ! /* Construct mangled name from symbol name. */ static tree ! gfc_sym_mangled_identifier (gfc_symbol * sym) { ! char name[GFC_MAX_MANGLED_SYMBOL_LEN + 1]; /* Prevent the mangling of identifiers that have an assigned binding label (mainly those that are bind(c)). */ if (sym->attr.is_bind_c == 1 && sym->binding_label) ! return get_identifier (sym->binding_label); ! if (!sym->fn_result_spec) { if (sym->module == NULL) ! return gfc_sym_identifier (sym); else ! { ! snprintf (name, sizeof name, "__%s_MOD_%s", sym->module, sym->name); ! return get_identifier (name); ! } } else { /* This is an entity that is actually local to a module procedure that appears in the result specification expression. Since sym->module will be a zero length string, we use ns->proc_name ! instead. */ ! if (sym->ns->proc_name && sym->ns->proc_name->module) ! { ! snprintf (name, sizeof name, "__%s_MOD__%s_PROC_%s", ! sym->ns->proc_name->module, ! sym->ns->proc_name->name, ! sym->name); ! return get_identifier (name); ! } else ! { ! snprintf (name, sizeof name, "__%s_PROC_%s", ! sym->ns->proc_name->name, sym->name); ! return get_identifier (name); ! } } } /* Construct mangled function name from symbol name. */ --- 342,427 ---- } } + /* Return the name of an identifier. */ ! static const char * ! sym_identifier (gfc_symbol *sym) { if (sym->attr.is_main_program && strcmp (sym->name, "main") == 0) ! return "MAIN__"; else ! return sym->name; } ! /* Convert a gfc_symbol to an identifier of the same name. */ static tree ! gfc_sym_identifier (gfc_symbol * sym) { ! return get_identifier (sym_identifier (sym)); ! } + /* Construct mangled name from symbol name. */ + + static const char * + mangled_identifier (gfc_symbol *sym) + { + gfc_symbol *proc = sym->ns->proc_name; + static char name[3*GFC_MAX_MANGLED_SYMBOL_LEN + 14]; /* Prevent the mangling of identifiers that have an assigned binding label (mainly those that are bind(c)). */ + if (sym->attr.is_bind_c == 1 && sym->binding_label) ! return sym->binding_label; ! if (!sym->fn_result_spec ! || (sym->module && !(proc && proc->attr.flavor == FL_PROCEDURE))) { if (sym->module == NULL) ! return sym_identifier (sym); else ! snprintf (name, sizeof name, "__%s_MOD_%s", sym->module, sym->name); } else { /* This is an entity that is actually local to a module procedure that appears in the result specification expression. Since sym->module will be a zero length string, we use ns->proc_name ! to provide the module name instead. */ ! if (proc && proc->module) ! snprintf (name, sizeof name, "__%s_MOD__%s_PROC_%s", ! proc->module, proc->name, sym->name); else ! snprintf (name, sizeof name, "__%s_PROC_%s", ! proc->name, sym->name); } + + return name; } + /* Get mangled identifier, adding the symbol to the global table if + it is not yet already there. */ + + static tree + gfc_sym_mangled_identifier (gfc_symbol * sym) + { + tree result; + gfc_gsymbol *gsym; + const char *name; + + name = mangled_identifier (sym); + result = get_identifier (name); + + gsym = gfc_find_gsymbol (gfc_gsym_root, name); + if (gsym == NULL) + { + gsym = gfc_get_gsymbol (name, false); + gsym->ns = sym->ns; + gsym->sym_name = sym->name; + } + + return result; + } /* Construct mangled function name from symbol name. */ *************** gfc_get_module_backend_decl (gfc_symbol *** 839,845 **** { if (!gsym) { ! gsym = gfc_get_gsymbol (sym->module); gsym->type = GSYM_MODULE; gsym->ns = gfc_get_namespace (NULL, 0); } --- 861,867 ---- { if (!gsym) { ! gsym = gfc_get_gsymbol (sym->module, false); gsym->type = GSYM_MODULE; gsym->ns = gfc_get_namespace (NULL, 0); } *************** gfc_get_symbol_decl (gfc_symbol * sym) *** 1604,1618 **** /* Add the string length to the same context as the symbol. */ if (DECL_CONTEXT (length) == NULL_TREE) { ! if (DECL_CONTEXT (sym->backend_decl) ! == current_function_decl) gfc_add_decl_to_function (length); else gfc_add_decl_to_parent_function (length); } ! gcc_assert (DECL_CONTEXT (sym->backend_decl) ! == DECL_CONTEXT (length)); gfc_defer_symbol_init (sym); } --- 1626,1643 ---- /* Add the string length to the same context as the symbol. */ if (DECL_CONTEXT (length) == NULL_TREE) { ! if (sym->backend_decl == current_function_decl ! || (DECL_CONTEXT (sym->backend_decl) ! == current_function_decl)) gfc_add_decl_to_function (length); else gfc_add_decl_to_parent_function (length); } ! gcc_assert (sym->backend_decl == current_function_decl ! ? DECL_CONTEXT (length) == current_function_decl ! : (DECL_CONTEXT (sym->backend_decl) ! == DECL_CONTEXT (length))); gfc_defer_symbol_init (sym); } *************** gfc_get_symbol_decl (gfc_symbol * sym) *** 1863,1871 **** if (sym->attr.associate_var) GFC_DECL_ASSOCIATE_VAR_P (decl) = 1; ! if (sym->attr.vtab ! || (sym->name[0] == '_' && strncmp ("__def_init", sym->name, 10) == 0)) ! TREE_READONLY (decl) = 1; return decl; } --- 1888,1905 ---- if (sym->attr.associate_var) GFC_DECL_ASSOCIATE_VAR_P (decl) = 1; ! /* We only mark __def_init as read-only if it actually has an ! initializer so it does not needlessly take up space in the ! read-only section and can go into the BSS instead, see PR 84487. ! Marking this as artificial means that OpenMP will treat this as ! predetermined shared. */ ! ! if (sym->attr.vtab || strncmp ("__def_init", sym->name, 10) == 0) ! { ! DECL_ARTIFICIAL (decl) = 1; ! if (sym->attr.vtab || sym->value) ! TREE_READONLY (decl) = 1; ! } return decl; } *************** get_proc_pointer_decl (gfc_symbol *sym) *** 1905,1910 **** --- 1939,1960 ---- tree decl; tree attributes; + if (sym->module || sym->fn_result_spec) + { + const char *name; + gfc_gsymbol *gsym; + + name = mangled_identifier (sym); + gsym = gfc_find_gsymbol (gfc_gsym_root, name); + if (gsym != NULL) + { + gfc_symbol *s; + gfc_find_symbol (sym->name, gsym->ns, 0, &s); + if (s && s->backend_decl) + return s->backend_decl; + } + } + decl = sym->backend_decl; if (decl) return decl; *************** get_proc_pointer_decl (gfc_symbol *sym) *** 1977,1983 **** /* Get a basic decl for an external function. */ tree ! gfc_get_extern_function_decl (gfc_symbol * sym) { tree type; tree fndecl; --- 2027,2033 ---- /* Get a basic decl for an external function. */ tree ! gfc_get_extern_function_decl (gfc_symbol * sym, gfc_actual_arglist *actual_args) { tree type; tree fndecl; *************** gfc_get_extern_function_decl (gfc_symbol *** 2002,2010 **** return get_proc_pointer_decl (sym); /* See if this is an external procedure from the same file. If so, ! return the backend_decl. */ ! gsym = gfc_find_gsymbol (gfc_gsym_root, sym->binding_label ! ? sym->binding_label : sym->name); if (gsym && !gsym->defined) gsym = NULL; --- 2052,2073 ---- return get_proc_pointer_decl (sym); /* See if this is an external procedure from the same file. If so, ! return the backend_decl. If we are looking at a BIND(C) ! procedure and the symbol is not BIND(C), or vice versa, we ! haven't found the right procedure. */ ! ! if (sym->binding_label) ! { ! gsym = gfc_find_gsymbol (gfc_gsym_root, sym->binding_label); ! if (gsym && !gsym->bind_c) ! gsym = NULL; ! } ! else ! { ! gsym = gfc_find_gsymbol (gfc_gsym_root, sym->name); ! if (gsym && gsym->bind_c) ! gsym = NULL; ! } if (gsym && !gsym->defined) gsym = NULL; *************** module_sym: *** 2150,2156 **** mangled_name = gfc_sym_mangled_function_id (sym); } ! type = gfc_get_function_type (sym); fndecl = build_decl (input_location, FUNCTION_DECL, name, type); --- 2213,2219 ---- mangled_name = gfc_sym_mangled_function_id (sym); } ! type = gfc_get_function_type (sym, actual_args); fndecl = build_decl (input_location, FUNCTION_DECL, name, type); *************** create_function_arglist (gfc_symbol * sy *** 2500,2505 **** --- 2563,2579 ---- TREE_READONLY (length) = 1; gfc_finish_decl (length); + /* Marking the length DECL_HIDDEN_STRING_LENGTH will lead + to tail calls being disabled. Only do that if we + potentially have broken callers. */ + if (flag_tail_call_workaround + && f->sym->ts.u.cl + && f->sym->ts.u.cl->length + && f->sym->ts.u.cl->length->expr_type == EXPR_CONSTANT + && (flag_tail_call_workaround == 2 + || f->sym->ns->implicit_interface_calls)) + DECL_HIDDEN_STRING_LENGTH (length) = 1; + /* Remember the passed value. */ if (!f->sym->ts.u.cl || f->sym->ts.u.cl->passed_length) { *************** generate_coarray_sym_init (gfc_symbol *s *** 5384,5389 **** --- 5458,5490 ---- /* Handle "static" initializer. */ if (sym->value) { + if (sym->value->expr_type == EXPR_ARRAY) + { + gfc_constructor *c, *cnext; + + /* Test if the array has more than one element. */ + c = gfc_constructor_first (sym->value->value.constructor); + gcc_assert (c); /* Empty constructor should not happen here. */ + cnext = gfc_constructor_next (c); + + if (cnext) + { + /* An EXPR_ARRAY with a rank > 1 here has to come from a + DATA statement. Set its rank here as not to confuse + the following steps. */ + sym->value->rank = 1; + } + else + { + /* There is only a single value in the constructor, use + it directly for the assignment. */ + gfc_expr *new_expr; + new_expr = gfc_copy_expr (c->expr); + gfc_free_expr (sym->value); + sym->value = new_expr; + } + } + sym->attr.pointer = 1; tmp = gfc_trans_assignment (gfc_lval_expr_from_sym (sym), sym->value, true, false); *************** generate_local_decl (gfc_symbol * sym) *** 5628,5636 **** } else if (warn_unused_dummy_argument) { ! gfc_warning (OPT_Wunused_dummy_argument, ! "Unused dummy argument %qs at %L", sym->name, ! &sym->declared_at); if (sym->backend_decl != NULL_TREE) TREE_NO_WARNING(sym->backend_decl) = 1; } --- 5729,5739 ---- } else if (warn_unused_dummy_argument) { ! if (!sym->attr.artificial) ! gfc_warning (OPT_Wunused_dummy_argument, ! "Unused dummy argument %qs at %L", sym->name, ! &sym->declared_at); ! if (sym->backend_decl != NULL_TREE) TREE_NO_WARNING(sym->backend_decl) = 1; } *************** generate_local_decl (gfc_symbol * sym) *** 5722,5728 **** if (sym->ns && sym->ns->construct_entities) { ! if (sym->attr.referenced) gfc_get_symbol_decl (sym); sym->mark = 1; } --- 5825,5838 ---- if (sym->ns && sym->ns->construct_entities) { ! /* Construction of the intrinsic modules within a BLOCK ! construct, where ONLY and RENAMED entities are included, ! seems to be bogus. This is a workaround that can be removed ! if someone ever takes on the task to creating full-fledge ! modules. See PR 69455. */ ! if (sym->attr.referenced ! && sym->from_intmod != INTMOD_ISO_C_BINDING ! && sym->from_intmod != INTMOD_ISO_FORTRAN_ENV) gfc_get_symbol_decl (sym); sym->mark = 1; } diff -Nrcpad gcc-8.3.0/gcc/fortran/trans-expr.c gcc-8.4.0/gcc/fortran/trans-expr.c *** gcc-8.3.0/gcc/fortran/trans-expr.c Sun Feb 3 14:50:07 2019 --- gcc-8.4.0/gcc/fortran/trans-expr.c Wed Mar 4 08:30:00 2020 *************** gfc_vptr_size_get (tree vptr) *** 352,358 **** of refs following. */ gfc_expr * ! gfc_find_and_cut_at_last_class_ref (gfc_expr *e) { gfc_expr *base_expr; gfc_ref *ref, *class_ref, *tail = NULL, *array_ref; --- 352,358 ---- of refs following. */ gfc_expr * ! gfc_find_and_cut_at_last_class_ref (gfc_expr *e, bool is_mold) { gfc_expr *base_expr; gfc_ref *ref, *class_ref, *tail = NULL, *array_ref; *************** gfc_find_and_cut_at_last_class_ref (gfc_ *** 394,400 **** e->ref = NULL; } ! base_expr = gfc_copy_expr (e); /* Restore the original tail expression. */ if (class_ref) --- 394,403 ---- e->ref = NULL; } ! if (is_mold) ! base_expr = gfc_expr_to_initialize (e); ! else ! base_expr = gfc_copy_expr (e); /* Restore the original tail expression. */ if (class_ref) *************** conv_base_obj_fcn_val (gfc_se * se, tree *** 3834,3840 **** static void ! conv_function_val (gfc_se * se, gfc_symbol * sym, gfc_expr * expr) { tree tmp; --- 3837,3844 ---- static void ! conv_function_val (gfc_se * se, gfc_symbol * sym, gfc_expr * expr, ! gfc_actual_arglist *actual_args) { tree tmp; *************** conv_function_val (gfc_se * se, gfc_symb *** 3852,3858 **** else { if (!sym->backend_decl) ! sym->backend_decl = gfc_get_extern_function_decl (sym); TREE_USED (sym->backend_decl) = 1; --- 3856,3862 ---- else { if (!sym->backend_decl) ! sym->backend_decl = gfc_get_extern_function_decl (sym, actual_args); TREE_USED (sym->backend_decl) = 1; *************** gfc_conv_procedure_call (gfc_se * se, gf *** 6276,6282 **** /* Generate the actual call. */ if (base_object == NULL_TREE) ! conv_function_val (se, sym, expr); else conv_base_obj_fcn_val (se, base_object, expr); --- 6280,6286 ---- /* Generate the actual call. */ if (base_object == NULL_TREE) ! conv_function_val (se, sym, expr, args); else conv_base_obj_fcn_val (se, base_object, expr); *************** trans_caf_token_assign (gfc_se *lse, gfc *** 8385,8407 **** } } - /* Indentify class valued proc_pointer assignments. */ - - static bool - pointer_assignment_is_proc_pointer (gfc_expr * expr1, gfc_expr * expr2) - { - gfc_ref * ref; - - ref = expr1->ref; - while (ref && ref->next) - ref = ref->next; - - return ref && ref->type == REF_COMPONENT - && ref->u.c.component->attr.proc_pointer - && expr2->expr_type == EXPR_VARIABLE - && expr2->symtree->n.sym->attr.flavor == FL_PROCEDURE; - } - /* Do everything that is needed for a CLASS function expr2. */ --- 8389,8394 ---- *************** gfc_trans_pointer_assignment (gfc_expr * *** 8454,8460 **** tree desc; tree tmp; tree expr1_vptr = NULL_TREE; ! bool scalar, non_proc_pointer_assign; gfc_ss *ss; gfc_start_block (&block); --- 8441,8447 ---- tree desc; tree tmp; tree expr1_vptr = NULL_TREE; ! bool scalar, non_proc_ptr_assign; gfc_ss *ss; gfc_start_block (&block); *************** gfc_trans_pointer_assignment (gfc_expr * *** 8462,8468 **** gfc_init_se (&lse, NULL); /* Usually testing whether this is not a proc pointer assignment. */ ! non_proc_pointer_assign = !pointer_assignment_is_proc_pointer (expr1, expr2); /* Check whether the expression is a scalar or not; we cannot use expr1->rank as it can be nonzero for proc pointers. */ --- 8449,8457 ---- gfc_init_se (&lse, NULL); /* Usually testing whether this is not a proc pointer assignment. */ ! non_proc_ptr_assign = !(gfc_expr_attr (expr1).proc_pointer ! && expr2->expr_type == EXPR_VARIABLE ! && expr2->symtree->n.sym->attr.flavor == FL_PROCEDURE); /* Check whether the expression is a scalar or not; we cannot use expr1->rank as it can be nonzero for proc pointers. */ *************** gfc_trans_pointer_assignment (gfc_expr * *** 8472,8478 **** gfc_free_ss_chain (ss); if (expr1->ts.type == BT_DERIVED && expr2->ts.type == BT_CLASS ! && expr2->expr_type != EXPR_FUNCTION && non_proc_pointer_assign) { gfc_add_data_component (expr2); /* The following is required as gfc_add_data_component doesn't --- 8461,8467 ---- gfc_free_ss_chain (ss); if (expr1->ts.type == BT_DERIVED && expr2->ts.type == BT_CLASS ! && expr2->expr_type != EXPR_FUNCTION && non_proc_ptr_assign) { gfc_add_data_component (expr2); /* The following is required as gfc_add_data_component doesn't *************** gfc_trans_pointer_assignment (gfc_expr * *** 8492,8498 **** else gfc_conv_expr (&rse, expr2); ! if (non_proc_pointer_assign && expr1->ts.type == BT_CLASS) { trans_class_vptr_len_assignment (&block, expr1, expr2, &rse, NULL, NULL); --- 8481,8487 ---- else gfc_conv_expr (&rse, expr2); ! if (non_proc_ptr_assign && expr1->ts.type == BT_CLASS) { trans_class_vptr_len_assignment (&block, expr1, expr2, &rse, NULL, NULL); diff -Nrcpad gcc-8.3.0/gcc/fortran/trans-intrinsic.c gcc-8.4.0/gcc/fortran/trans-intrinsic.c *** gcc-8.3.0/gcc/fortran/trans-intrinsic.c Fri May 25 22:06:57 2018 --- gcc-8.4.0/gcc/fortran/trans-intrinsic.c Wed Mar 4 08:30:00 2020 *************** gfc_conv_intrinsic_size (gfc_se * se, gf *** 6820,6825 **** --- 6820,6827 ---- tree fncall0; tree fncall1; gfc_se argse; + gfc_expr *e; + gfc_symbol *sym = NULL; gfc_init_se (&argse, NULL); actual = expr->value.function.actual; *************** gfc_conv_intrinsic_size (gfc_se * se, gf *** 6827,6838 **** if (actual->expr->ts.type == BT_CLASS) gfc_add_class_array_ref (actual->expr); argse.data_not_needed = 1; ! if (gfc_is_class_array_function (actual->expr)) { /* For functions that return a class array conv_expr_descriptor is not able to get the descriptor right. Therefore this special case. */ ! gfc_conv_expr_reference (&argse, actual->expr); argse.expr = gfc_build_addr_expr (NULL_TREE, gfc_class_data_get (argse.expr)); } --- 6829,6859 ---- if (actual->expr->ts.type == BT_CLASS) gfc_add_class_array_ref (actual->expr); + e = actual->expr; + + /* These are emerging from the interface mapping, when a class valued + function appears as the rhs in a realloc on assign statement, where + the size of the result is that of one of the actual arguments. */ + if (e->expr_type == EXPR_VARIABLE + && e->symtree->n.sym->ns == NULL /* This is distinctive! */ + && e->symtree->n.sym->ts.type == BT_CLASS + && e->ref && e->ref->type == REF_COMPONENT + && strcmp (e->ref->u.c.component->name, "_data") == 0) + sym = e->symtree->n.sym; + argse.data_not_needed = 1; ! if (gfc_is_class_array_function (e)) { /* For functions that return a class array conv_expr_descriptor is not able to get the descriptor right. Therefore this special case. */ ! gfc_conv_expr_reference (&argse, e); ! argse.expr = gfc_build_addr_expr (NULL_TREE, ! gfc_class_data_get (argse.expr)); ! } ! else if (sym && sym->backend_decl) ! { ! gcc_assert (GFC_CLASS_TYPE_P (TREE_TYPE (sym->backend_decl))); ! argse.expr = sym->backend_decl; argse.expr = gfc_build_addr_expr (NULL_TREE, gfc_class_data_get (argse.expr)); } diff -Nrcpad gcc-8.3.0/gcc/fortran/trans-io.c gcc-8.4.0/gcc/fortran/trans-io.c *** gcc-8.3.0/gcc/fortran/trans-io.c Wed Mar 28 11:59:06 2018 --- gcc-8.4.0/gcc/fortran/trans-io.c Wed Mar 4 08:30:00 2020 *************** transfer_expr (gfc_se * se, gfc_typespec *** 2408,2415 **** case_bt_struct: case BT_CLASS: - if (ts->u.derived->components == NULL) - return; if (gfc_bt_struct (ts->type) || ts->type == BT_CLASS) { gfc_symbol *derived; --- 2408,2413 ---- diff -Nrcpad gcc-8.3.0/gcc/fortran/trans-openmp.c gcc-8.4.0/gcc/fortran/trans-openmp.c *** gcc-8.3.0/gcc/fortran/trans-openmp.c Tue Jan 8 10:18:34 2019 --- gcc-8.4.0/gcc/fortran/trans-openmp.c Wed Mar 4 08:30:00 2020 *************** gfc_omp_clause_default_ctor (tree clause *** 548,553 **** --- 548,556 ---- build3_loc (input_location, COND_EXPR, void_type_node, cond, then_b, else_b)); + /* Avoid -W*uninitialized warnings. */ + if (DECL_P (decl)) + TREE_NO_WARNING (decl) = 1; } else gfc_add_expr_to_block (&block, then_b); *************** gfc_omp_clause_copy_ctor (tree clause, t *** 654,659 **** --- 657,665 ---- gfc_add_expr_to_block (&block, build3_loc (input_location, COND_EXPR, void_type_node, cond, then_b, else_b)); + /* Avoid -W*uninitialized warnings. */ + if (DECL_P (dest)) + TREE_NO_WARNING (dest) = 1; return gfc_finish_block (&block); } *************** gfc_trans_omp_atomic (gfc_code *code) *** 3176,3182 **** expr2 = code->expr2; if (((atomic_code->ext.omp_atomic & GFC_OMP_ATOMIC_MASK) != GFC_OMP_ATOMIC_WRITE) - && (atomic_code->ext.omp_atomic & GFC_OMP_ATOMIC_SWAP) == 0 && expr2->expr_type == EXPR_FUNCTION && expr2->value.function.isym && expr2->value.function.isym->id == GFC_ISYM_CONVERSION) --- 3182,3187 ---- *************** gfc_trans_omp_target (gfc_code *code) *** 4740,4745 **** --- 4745,4751 ---- { stmtblock_t iblock; + pushlevel (); gfc_start_block (&iblock); tree inner_clauses = gfc_trans_omp_clauses (&block, &clausesa[GFC_OMP_SPLIT_PARALLEL], diff -Nrcpad gcc-8.3.0/gcc/fortran/trans-stmt.c gcc-8.4.0/gcc/fortran/trans-stmt.c *** gcc-8.3.0/gcc/fortran/trans-stmt.c Mon Oct 8 13:02:36 2018 --- gcc-8.4.0/gcc/fortran/trans-stmt.c Wed Mar 4 08:30:00 2020 *************** trans_associate_var (gfc_symbol *sym, gf *** 1842,1848 **** { if (e->symtree && DECL_LANG_SPECIFIC (e->symtree->n.sym->backend_decl) ! && GFC_DECL_SAVED_DESCRIPTOR (e->symtree->n.sym->backend_decl)) /* Use the original class descriptor stored in the saved descriptor to get the target_expr. */ target_expr = --- 1842,1849 ---- { if (e->symtree && DECL_LANG_SPECIFIC (e->symtree->n.sym->backend_decl) ! && GFC_DECL_SAVED_DESCRIPTOR (e->symtree->n.sym->backend_decl) ! && TREE_CODE (target_expr) != COMPONENT_REF) /* Use the original class descriptor stored in the saved descriptor to get the target_expr. */ target_expr = *************** gfc_trans_allocate (gfc_code * code) *** 6606,6612 **** /* Use class_init_assign to initialize expr. */ gfc_code *ini; ini = gfc_get_code (EXEC_INIT_ASSIGN); ! ini->expr1 = gfc_find_and_cut_at_last_class_ref (expr); tmp = gfc_trans_class_init_assign (ini); gfc_free_statements (ini); gfc_add_expr_to_block (&block, tmp); --- 6607,6613 ---- /* Use class_init_assign to initialize expr. */ gfc_code *ini; ini = gfc_get_code (EXEC_INIT_ASSIGN); ! ini->expr1 = gfc_find_and_cut_at_last_class_ref (expr, true); tmp = gfc_trans_class_init_assign (ini); gfc_free_statements (ini); gfc_add_expr_to_block (&block, tmp); diff -Nrcpad gcc-8.3.0/gcc/fortran/trans-types.c gcc-8.4.0/gcc/fortran/trans-types.c *** gcc-8.3.0/gcc/fortran/trans-types.c Sun May 13 18:07:54 2018 --- gcc-8.4.0/gcc/fortran/trans-types.c Wed Mar 4 08:30:00 2020 *************** gfc_typenode_for_spec (gfc_typespec * sp *** 1213,1219 **** { spec->type = BT_INTEGER; spec->kind = gfc_index_integer_kind; ! spec->f90_type = BT_VOID; } break; case BT_VOID: --- 1213,1220 ---- { spec->type = BT_INTEGER; spec->kind = gfc_index_integer_kind; ! spec->f90_type = BT_VOID; ! spec->is_c_interop = 1; /* Mark as escaping later. */ } break; case BT_VOID: *************** gfc_typenode_for_spec (gfc_typespec * sp *** 1230,1235 **** --- 1231,1239 ---- basetype = pfunc_type_node; } break; + case BT_PROCEDURE: + basetype = pfunc_type_node; + break; default: gcc_unreachable (); } *************** create_fn_spec (gfc_symbol *sym, tree fn *** 2978,2984 **** || f->sym->ts.u.derived->attr.pointer_comp)) || (f->sym->ts.type == BT_CLASS && (CLASS_DATA (f->sym)->ts.u.derived->attr.proc_pointer_comp ! || CLASS_DATA (f->sym)->ts.u.derived->attr.pointer_comp))) spec[spec_len++] = '.'; else if (f->sym->attr.intent == INTENT_IN) spec[spec_len++] = 'r'; --- 2982,2989 ---- || f->sym->ts.u.derived->attr.pointer_comp)) || (f->sym->ts.type == BT_CLASS && (CLASS_DATA (f->sym)->ts.u.derived->attr.proc_pointer_comp ! || CLASS_DATA (f->sym)->ts.u.derived->attr.pointer_comp)) ! || (f->sym->ts.type == BT_INTEGER && f->sym->ts.is_c_interop)) spec[spec_len++] = '.'; else if (f->sym->attr.intent == INTENT_IN) spec[spec_len++] = 'r'; *************** create_fn_spec (gfc_symbol *sym, tree fn *** 2991,2999 **** return build_type_attribute_variant (fntype, tmp); } tree ! gfc_get_function_type (gfc_symbol * sym) { tree type; vec *typelist = NULL; --- 2996,3060 ---- return build_type_attribute_variant (fntype, tmp); } + /* Helper function - if we do not find an interface for a procedure, + construct it from the actual arglist. Luckily, this can only + happen for call by reference, so the information we actually need + to provide (and which would be impossible to guess from the call + itself) is not actually needed. */ + + static void + get_formal_from_actual_arglist (gfc_symbol *sym, gfc_actual_arglist *actual_args) + { + gfc_actual_arglist *a; + gfc_formal_arglist **f; + gfc_symbol *s; + char name[GFC_MAX_SYMBOL_LEN + 1]; + static int var_num; + + f = &sym->formal; + for (a = actual_args; a != NULL; a = a->next) + { + (*f) = gfc_get_formal_arglist (); + if (a->expr) + { + snprintf (name, GFC_MAX_SYMBOL_LEN, "_formal_%d", var_num ++); + gfc_get_symbol (name, gfc_current_ns, &s); + if (a->expr->ts.type == BT_PROCEDURE) + { + s->attr.flavor = FL_PROCEDURE; + } + else + { + s->ts = a->expr->ts; + + if (s->ts.type == BT_CHARACTER) + s->ts.u.cl = gfc_get_charlen (); + + s->ts.deferred = 0; + s->ts.is_iso_c = 0; + s->ts.is_c_interop = 0; + s->attr.flavor = FL_VARIABLE; + if (a->expr->rank > 0) + { + s->attr.dimension = 1; + s->as = gfc_get_array_spec (); + s->as->type = AS_ASSUMED_SIZE; + } + } + s->attr.dummy = 1; + s->attr.artificial = 1; + s->attr.intent = INTENT_UNKNOWN; + (*f)->sym = s; + } + else /* If a->expr is NULL, this is an alternate rerturn. */ + (*f)->sym = NULL; + + f = &((*f)->next); + } + } tree ! gfc_get_function_type (gfc_symbol * sym, gfc_actual_arglist *actual_args) { tree type; vec *typelist = NULL; *************** gfc_get_function_type (gfc_symbol * sym) *** 3051,3056 **** --- 3112,3121 ---- vec_safe_push (typelist, build_pointer_type(gfc_charlen_type_node)); } } + if (sym->backend_decl == error_mark_node && actual_args != NULL + && sym->formal == NULL && (sym->attr.proc == PROC_EXTERNAL + || sym->attr.proc == PROC_UNKNOWN)) + get_formal_from_actual_arglist (sym, actual_args); /* Build the argument types for the function. */ for (f = gfc_sym_get_dummy_args (sym); f; f = f->next) diff -Nrcpad gcc-8.3.0/gcc/fortran/trans-types.h gcc-8.4.0/gcc/fortran/trans-types.h *** gcc-8.3.0/gcc/fortran/trans-types.h Thu Jan 25 19:09:40 2018 --- gcc-8.4.0/gcc/fortran/trans-types.h Wed Mar 4 08:30:00 2020 *************** tree gfc_sym_type (gfc_symbol *); *** 88,94 **** tree gfc_typenode_for_spec (gfc_typespec *, int c = 0); int gfc_copy_dt_decls_ifequal (gfc_symbol *, gfc_symbol *, bool); ! tree gfc_get_function_type (gfc_symbol *); tree gfc_type_for_size (unsigned, int); tree gfc_type_for_mode (machine_mode, int); --- 88,94 ---- tree gfc_typenode_for_spec (gfc_typespec *, int c = 0); int gfc_copy_dt_decls_ifequal (gfc_symbol *, gfc_symbol *, bool); ! tree gfc_get_function_type (gfc_symbol *, gfc_actual_arglist *args = NULL); tree gfc_type_for_size (unsigned, int); tree gfc_type_for_mode (machine_mode, int); diff -Nrcpad gcc-8.3.0/gcc/fortran/trans.h gcc-8.4.0/gcc/fortran/trans.h *** gcc-8.3.0/gcc/fortran/trans.h Sat Jun 9 14:15:53 2018 --- gcc-8.4.0/gcc/fortran/trans.h Wed Mar 4 08:30:00 2020 *************** tree gfc_class_data_get (tree); *** 412,418 **** tree gfc_class_vptr_get (tree); tree gfc_class_len_get (tree); tree gfc_class_len_or_zero_get (tree); ! gfc_expr * gfc_find_and_cut_at_last_class_ref (gfc_expr *); /* Get an accessor to the class' vtab's * field, when a class handle is available. */ tree gfc_class_vtab_hash_get (tree); --- 412,418 ---- tree gfc_class_vptr_get (tree); tree gfc_class_len_get (tree); tree gfc_class_len_or_zero_get (tree); ! gfc_expr * gfc_find_and_cut_at_last_class_ref (gfc_expr *, bool is_mold = false); /* Get an accessor to the class' vtab's * field, when a class handle is available. */ tree gfc_class_vtab_hash_get (tree); *************** void gfc_merge_block_scope (stmtblock_t *** 579,585 **** tree gfc_get_label_decl (gfc_st_label *); /* Return the decl for an external function. */ ! tree gfc_get_extern_function_decl (gfc_symbol *); /* Return the decl for a function. */ tree gfc_get_function_decl (gfc_symbol *); --- 579,586 ---- tree gfc_get_label_decl (gfc_st_label *); /* Return the decl for an external function. */ ! tree gfc_get_extern_function_decl (gfc_symbol *, ! gfc_actual_arglist *args = NULL); /* Return the decl for a function. */ tree gfc_get_function_decl (gfc_symbol *); diff -Nrcpad gcc-8.3.0/gcc/function.c gcc-8.4.0/gcc/function.c *** gcc-8.3.0/gcc/function.c Sat Dec 15 12:05:08 2018 --- gcc-8.4.0/gcc/function.c Wed Mar 4 08:30:00 2020 *************** assign_parm_find_data_types (struct assi *** 2477,2484 **** /* If the parm is to be passed as a transparent union or record, use the type of the first field for the tests below. We have already verified that the modes are the same. */ ! if ((TREE_CODE (passed_type) == UNION_TYPE ! || TREE_CODE (passed_type) == RECORD_TYPE) && TYPE_TRANSPARENT_AGGR (passed_type)) passed_type = TREE_TYPE (first_field (passed_type)); --- 2477,2483 ---- /* If the parm is to be passed as a transparent union or record, use the type of the first field for the tests below. We have already verified that the modes are the same. */ ! if (RECORD_OR_UNION_TYPE_P (passed_type) && TYPE_TRANSPARENT_AGGR (passed_type)) passed_type = TREE_TYPE (first_field (passed_type)); *************** assign_parm_setup_block (struct assign_p *** 3098,3104 **** move_block_from_reg (REGNO (entry_parm), mem, size_stored / UNITS_PER_WORD); } ! else if (data->stack_parm == 0) { push_to_sequence2 (all->first_conversion_insn, all->last_conversion_insn); emit_block_move (stack_parm, data->entry_parm, GEN_INT (size), --- 3097,3103 ---- move_block_from_reg (REGNO (entry_parm), mem, size_stored / UNITS_PER_WORD); } ! else if (data->stack_parm == 0 && !TYPE_EMPTY_P (data->passed_type)) { push_to_sequence2 (all->first_conversion_insn, all->last_conversion_insn); emit_block_move (stack_parm, data->entry_parm, GEN_INT (size), *************** assign_parm_setup_stack (struct assign_p *** 3474,3480 **** dest = validize_mem (copy_rtx (data->stack_parm)); src = validize_mem (copy_rtx (data->entry_parm)); ! if (MEM_P (src)) { /* Use a block move to handle potentially misaligned entry_parm. */ if (!to_conversion) --- 3473,3481 ---- dest = validize_mem (copy_rtx (data->stack_parm)); src = validize_mem (copy_rtx (data->entry_parm)); ! if (TYPE_EMPTY_P (data->passed_type)) ! /* Empty types don't really need to be copied. */; ! else if (MEM_P (src)) { /* Use a block move to handle potentially misaligned entry_parm. */ if (!to_conversion) *************** assign_parms (tree fndecl) *** 3749,3754 **** --- 3750,3765 ---- { assign_parm_find_stack_rtl (parm, &data); assign_parm_adjust_entry_rtl (&data); + /* For arguments that occupy no space in the parameter + passing area, have non-zero size and have address taken, + force creation of a stack slot so that they have distinct + address from other parameters. */ + if (TYPE_EMPTY_P (data.passed_type) + && TREE_ADDRESSABLE (parm) + && data.entry_parm == data.stack_parm + && MEM_P (data.entry_parm) + && int_size_in_bytes (data.passed_type)) + data.stack_parm = NULL_RTX; } if (!POINTER_BOUNDS_TYPE_P (data.passed_type)) { diff -Nrcpad gcc-8.3.0/gcc/gcov.c gcc-8.4.0/gcc/gcov.c *** gcc-8.3.0/gcc/gcov.c Tue Sep 18 09:32:09 2018 --- gcc-8.4.0/gcc/gcov.c Wed Mar 4 08:30:00 2020 *************** bool function_info::group_line_p (unsign *** 604,630 **** typedef vector arc_vector_t; typedef vector block_vector_t; - /* Enum with types of loop in CFG. */ - - enum loop_type - { - NO_LOOP = 0, - LOOP = 1, - NEGATIVE_LOOP = 3 - }; - - /* Loop_type operator that merges two values: A and B. */ - - inline loop_type& operator |= (loop_type& a, loop_type b) - { - return a = static_cast (a | b); - } - /* Handle cycle identified by EDGES, where the function finds minimum cs_count and subtract the value from all counts. The subtracted value is added to COUNT. Returns type of loop. */ ! static loop_type handle_cycle (const arc_vector_t &edges, int64_t &count) { /* Find the minimum edge of the cycle, and reduce all nodes in the cycle by --- 604,614 ---- typedef vector arc_vector_t; typedef vector block_vector_t; /* Handle cycle identified by EDGES, where the function finds minimum cs_count and subtract the value from all counts. The subtracted value is added to COUNT. Returns type of loop. */ ! static void handle_cycle (const arc_vector_t &edges, int64_t &count) { /* Find the minimum edge of the cycle, and reduce all nodes in the cycle by *************** handle_cycle (const arc_vector_t &edges, *** 640,646 **** for (unsigned i = 0; i < edges.size (); i++) edges[i]->cs_count -= cycle_count; ! return cycle_count < 0 ? NEGATIVE_LOOP : LOOP; } /* Unblock a block U from BLOCKED. Apart from that, iterate all blocks --- 624,630 ---- for (unsigned i = 0; i < edges.size (); i++) edges[i]->cs_count -= cycle_count; ! gcc_assert (cycle_count > 0); } /* Unblock a block U from BLOCKED. Apart from that, iterate all blocks *************** unblock (const block_info *u, block_vect *** 666,682 **** unblock (*it, blocked, block_lists); } /* Find circuit going to block V, PATH is provisional seen cycle. BLOCKED is vector of blocked vertices, BLOCK_LISTS contains vertices blocked by a block. COUNT is accumulated count of the current LINE. Returns what type of loop it contains. */ ! static loop_type circuit (block_info *v, arc_vector_t &path, block_info *start, block_vector_t &blocked, vector &block_lists, line_info &linfo, int64_t &count) { ! loop_type result = NO_LOOP; /* Add v to the block list. */ gcc_assert (find (blocked.begin (), blocked.end (), v) == blocked.end ()); --- 650,677 ---- unblock (*it, blocked, block_lists); } + /* Return true when PATH contains a zero cycle arc count. */ + + static bool + path_contains_zero_cycle_arc (arc_vector_t &path) + { + for (unsigned i = 0; i < path.size (); i++) + if (path[i]->cs_count == 0) + return true; + return false; + } + /* Find circuit going to block V, PATH is provisional seen cycle. BLOCKED is vector of blocked vertices, BLOCK_LISTS contains vertices blocked by a block. COUNT is accumulated count of the current LINE. Returns what type of loop it contains. */ ! static bool circuit (block_info *v, arc_vector_t &path, block_info *start, block_vector_t &blocked, vector &block_lists, line_info &linfo, int64_t &count) { ! bool loop_found = false; /* Add v to the block list. */ gcc_assert (find (blocked.begin (), blocked.end (), v) == blocked.end ()); *************** circuit (block_info *v, arc_vector_t &pa *** 686,711 **** for (arc_info *arc = v->succ; arc; arc = arc->succ_next) { block_info *w = arc->dst; ! if (w < start || !linfo.has_block (w)) continue; path.push_back (arc); if (w == start) ! /* Cycle has been found. */ ! result |= handle_cycle (path, count); ! else if (find (blocked.begin (), blocked.end (), w) == blocked.end ()) ! result |= circuit (w, path, start, blocked, block_lists, linfo, count); path.pop_back (); } ! if (result != NO_LOOP) unblock (v, blocked, block_lists); else for (arc_info *arc = v->succ; arc; arc = arc->succ_next) { block_info *w = arc->dst; ! if (w < start || !linfo.has_block (w)) continue; size_t index --- 681,715 ---- for (arc_info *arc = v->succ; arc; arc = arc->succ_next) { block_info *w = arc->dst; ! if (w < start ! || arc->cs_count == 0 ! || !linfo.has_block (w)) continue; path.push_back (arc); if (w == start) ! { ! /* Cycle has been found. */ ! handle_cycle (path, count); ! loop_found = true; ! } ! else if (!path_contains_zero_cycle_arc (path) ! && find (blocked.begin (), blocked.end (), w) == blocked.end ()) ! loop_found |= circuit (w, path, start, blocked, block_lists, linfo, ! count); path.pop_back (); } ! if (loop_found) unblock (v, blocked, block_lists); else for (arc_info *arc = v->succ; arc; arc = arc->succ_next) { block_info *w = arc->dst; ! if (w < start ! || arc->cs_count == 0 ! || !linfo.has_block (w)) continue; size_t index *************** circuit (block_info *v, arc_vector_t &pa *** 716,729 **** list.push_back (v); } ! return result; } ! /* Find cycles for a LINFO. If HANDLE_NEGATIVE_CYCLES is set and the line ! contains a negative loop, then perform the same function once again. */ static gcov_type ! get_cycles_count (line_info &linfo, bool handle_negative_cycles = true) { /* Note that this algorithm works even if blocks aren't in sorted order. Each iteration of the circuit detection is completely independent --- 720,732 ---- list.push_back (v); } ! return loop_found; } ! /* Find cycles for a LINFO. */ static gcov_type ! get_cycles_count (line_info &linfo) { /* Note that this algorithm works even if blocks aren't in sorted order. Each iteration of the circuit detection is completely independent *************** get_cycles_count (line_info &linfo, bool *** 731,737 **** Therefore, operating on a permuted order (i.e., non-sorted) only has the effect of permuting the output cycles. */ ! loop_type result = NO_LOOP; gcov_type count = 0; for (vector::iterator it = linfo.blocks.begin (); it != linfo.blocks.end (); it++) --- 734,740 ---- Therefore, operating on a permuted order (i.e., non-sorted) only has the effect of permuting the output cycles. */ ! bool loop_found = false; gcov_type count = 0; for (vector::iterator it = linfo.blocks.begin (); it != linfo.blocks.end (); it++) *************** get_cycles_count (line_info &linfo, bool *** 739,752 **** arc_vector_t path; block_vector_t blocked; vector block_lists; ! result |= circuit (*it, path, *it, blocked, block_lists, linfo, ! count); } - /* If we have a negative cycle, repeat the find_cycles routine. */ - if (result == NEGATIVE_LOOP && handle_negative_cycles) - count += get_cycles_count (linfo, false); - return count; } --- 742,751 ---- arc_vector_t path; block_vector_t blocked; vector block_lists; ! loop_found |= circuit (*it, path, *it, blocked, block_lists, linfo, ! count); } return count; } diff -Nrcpad gcc-8.3.0/gcc/gcse.c gcc-8.4.0/gcc/gcse.c *** gcc-8.3.0/gcc/gcse.c Sun Jan 27 17:36:30 2019 --- gcc-8.4.0/gcc/gcse.c Wed Mar 4 08:30:00 2020 *************** compute_hash_table_work (struct gcse_has *** 1532,1538 **** 0, regno, hrsi) record_last_reg_set_info (insn, regno); ! if (! RTL_CONST_OR_PURE_CALL_P (insn)) record_last_mem_set_info (insn); } --- 1532,1539 ---- 0, regno, hrsi) record_last_reg_set_info (insn, regno); ! if (! RTL_CONST_OR_PURE_CALL_P (insn) ! || RTL_LOOPING_CONST_OR_PURE_CALL_P (insn)) record_last_mem_set_info (insn); } diff -Nrcpad gcc-8.3.0/gcc/gengtype-lex.c gcc-8.4.0/gcc/gengtype-lex.c *** gcc-8.3.0/gcc/gengtype-lex.c Fri Feb 22 14:23:15 2019 --- gcc-8.4.0/gcc/gengtype-lex.c Wed Mar 4 08:33:13 2020 *************** int yy_flex_debug = 0; *** 1192,1198 **** #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET char *yytext; ! #line 1 "/d/gcc-8.3.0/gcc-8.3.0/gcc/gengtype-lex.l" /* -*- indented-text -*- */ /* Process source files and output type information. Copyright (C) 2002-2018 Free Software Foundation, Inc. --- 1192,1198 ---- #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET char *yytext; ! #line 1 "/d/gcc-8.4.0/gcc-8.4.0/gcc/gengtype-lex.l" /* -*- indented-text -*- */ /* Process source files and output type information. Copyright (C) 2002-2018 Free Software Foundation, Inc. *************** You should have received a copy of the G *** 1213,1219 **** along with GCC; see the file COPYING3. If not see . */ #define YY_NO_INPUT 1 ! #line 24 "/d/gcc-8.3.0/gcc-8.3.0/gcc/gengtype-lex.l" #ifdef HOST_GENERATOR_FILE #include "config.h" #define GENERATOR_FILE 1 --- 1213,1219 ---- along with GCC; see the file COPYING3. If not see . */ #define YY_NO_INPUT 1 ! #line 24 "/d/gcc-8.4.0/gcc-8.4.0/gcc/gengtype-lex.l" #ifdef HOST_GENERATOR_FILE #include "config.h" #define GENERATOR_FILE 1 *************** YY_DECL *** 1465,1471 **** } { ! #line 66 "/d/gcc-8.3.0/gcc-8.3.0/gcc/gengtype-lex.l" /* Do this on entry to yylex(): */ *yylval = 0; --- 1465,1471 ---- } { ! #line 66 "/d/gcc-8.4.0/gcc-8.4.0/gcc/gengtype-lex.l" /* Do this on entry to yylex(): */ *yylval = 0; *************** YY_LINENO_REWIND_TO(yy_cp - 1); *** 1537,1543 **** (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 77 "/d/gcc-8.3.0/gcc-8.3.0/gcc/gengtype-lex.l" { BEGIN(in_struct); return TYPEDEF; --- 1537,1543 ---- (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 77 "/d/gcc-8.4.0/gcc-8.4.0/gcc/gengtype-lex.l" { BEGIN(in_struct); return TYPEDEF; *************** YY_LINENO_REWIND_TO(yy_cp - 1); *** 1550,1556 **** (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 81 "/d/gcc-8.3.0/gcc-8.3.0/gcc/gengtype-lex.l" { BEGIN(in_struct); return STRUCT; --- 1550,1556 ---- (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 81 "/d/gcc-8.4.0/gcc-8.4.0/gcc/gengtype-lex.l" { BEGIN(in_struct); return STRUCT; *************** YY_LINENO_REWIND_TO(yy_cp - 1); *** 1563,1569 **** (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 85 "/d/gcc-8.3.0/gcc-8.3.0/gcc/gengtype-lex.l" { BEGIN(in_struct); return UNION; --- 1563,1569 ---- (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 85 "/d/gcc-8.4.0/gcc-8.4.0/gcc/gengtype-lex.l" { BEGIN(in_struct); return UNION; *************** YY_LINENO_REWIND_TO(yy_cp - 1); *** 1576,1582 **** (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 89 "/d/gcc-8.3.0/gcc-8.3.0/gcc/gengtype-lex.l" { BEGIN(in_struct); return STRUCT; --- 1576,1582 ---- (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 89 "/d/gcc-8.4.0/gcc-8.4.0/gcc/gengtype-lex.l" { BEGIN(in_struct); return STRUCT; *************** YY_LINENO_REWIND_TO(yy_cp - 1); *** 1589,1595 **** (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 93 "/d/gcc-8.3.0/gcc-8.3.0/gcc/gengtype-lex.l" { BEGIN(in_struct); return EXTERN; --- 1589,1595 ---- (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 93 "/d/gcc-8.4.0/gcc-8.4.0/gcc/gengtype-lex.l" { BEGIN(in_struct); return EXTERN; *************** YY_LINENO_REWIND_TO(yy_cp - 1); *** 1602,1608 **** (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 97 "/d/gcc-8.3.0/gcc-8.3.0/gcc/gengtype-lex.l" { BEGIN(in_struct); return STATIC; --- 1602,1608 ---- (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 97 "/d/gcc-8.4.0/gcc-8.4.0/gcc/gengtype-lex.l" { BEGIN(in_struct); return STATIC; *************** YY_RULE_SETUP *** 1613,1637 **** case 7: YY_RULE_SETUP ! #line 105 "/d/gcc-8.3.0/gcc-8.3.0/gcc/gengtype-lex.l" { BEGIN(in_struct_comment); } YY_BREAK case 8: /* rule 8 can match eol */ YY_RULE_SETUP ! #line 106 "/d/gcc-8.3.0/gcc-8.3.0/gcc/gengtype-lex.l" { lexer_line.line++; } YY_BREAK case 9: /* rule 9 can match eol */ YY_RULE_SETUP ! #line 108 "/d/gcc-8.3.0/gcc-8.3.0/gcc/gengtype-lex.l" { update_lineno (yytext, yyleng); } YY_BREAK case 10: /* rule 10 can match eol */ YY_RULE_SETUP ! #line 109 "/d/gcc-8.3.0/gcc-8.3.0/gcc/gengtype-lex.l" { lexer_line.line++; } YY_BREAK case 11: --- 1613,1637 ---- case 7: YY_RULE_SETUP ! #line 105 "/d/gcc-8.4.0/gcc-8.4.0/gcc/gengtype-lex.l" { BEGIN(in_struct_comment); } YY_BREAK case 8: /* rule 8 can match eol */ YY_RULE_SETUP ! #line 106 "/d/gcc-8.4.0/gcc-8.4.0/gcc/gengtype-lex.l" { lexer_line.line++; } YY_BREAK case 9: /* rule 9 can match eol */ YY_RULE_SETUP ! #line 108 "/d/gcc-8.4.0/gcc-8.4.0/gcc/gengtype-lex.l" { update_lineno (yytext, yyleng); } YY_BREAK case 10: /* rule 10 can match eol */ YY_RULE_SETUP ! #line 109 "/d/gcc-8.4.0/gcc-8.4.0/gcc/gengtype-lex.l" { lexer_line.line++; } YY_BREAK case 11: *************** YY_LINENO_REWIND_TO(yy_bp + 5); *** 1641,1647 **** (yy_c_buf_p) = yy_cp = yy_bp + 5; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 111 "/d/gcc-8.3.0/gcc-8.3.0/gcc/gengtype-lex.l" /* don't care */ YY_BREAK case 12: --- 1641,1647 ---- (yy_c_buf_p) = yy_cp = yy_bp + 5; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 111 "/d/gcc-8.4.0/gcc-8.4.0/gcc/gengtype-lex.l" /* don't care */ YY_BREAK case 12: *************** case 12: *** 1650,1666 **** YY_LINENO_REWIND_TO(yy_cp - 1); (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ ! #line 113 "/d/gcc-8.3.0/gcc-8.3.0/gcc/gengtype-lex.l" case 13: /* rule 13 can match eol */ ! #line 114 "/d/gcc-8.3.0/gcc-8.3.0/gcc/gengtype-lex.l" case 14: /* rule 14 can match eol */ ! #line 115 "/d/gcc-8.3.0/gcc-8.3.0/gcc/gengtype-lex.l" case 15: /* rule 15 can match eol */ YY_RULE_SETUP ! #line 115 "/d/gcc-8.3.0/gcc-8.3.0/gcc/gengtype-lex.l" { *yylval = XDUPVAR (const char, yytext, yyleng, yyleng + 1); return IGNORABLE_CXX_KEYWORD; --- 1650,1666 ---- YY_LINENO_REWIND_TO(yy_cp - 1); (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ ! #line 113 "/d/gcc-8.4.0/gcc-8.4.0/gcc/gengtype-lex.l" case 13: /* rule 13 can match eol */ ! #line 114 "/d/gcc-8.4.0/gcc-8.4.0/gcc/gengtype-lex.l" case 14: /* rule 14 can match eol */ ! #line 115 "/d/gcc-8.4.0/gcc-8.4.0/gcc/gengtype-lex.l" case 15: /* rule 15 can match eol */ YY_RULE_SETUP ! #line 115 "/d/gcc-8.4.0/gcc-8.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); *** 1673,1679 **** (yy_c_buf_p) = yy_cp = yy_bp + 3; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 119 "/d/gcc-8.3.0/gcc-8.3.0/gcc/gengtype-lex.l" { return GTY_TOKEN; } YY_BREAK case 17: --- 1673,1679 ---- (yy_c_buf_p) = yy_cp = yy_bp + 3; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 119 "/d/gcc-8.4.0/gcc-8.4.0/gcc/gengtype-lex.l" { return GTY_TOKEN; } YY_BREAK case 17: *************** YY_LINENO_REWIND_TO(yy_bp + 5); *** 1683,1689 **** (yy_c_buf_p) = yy_cp = yy_bp + 5; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 120 "/d/gcc-8.3.0/gcc-8.3.0/gcc/gengtype-lex.l" { return UNION; } YY_BREAK case 18: --- 1683,1689 ---- (yy_c_buf_p) = yy_cp = yy_bp + 5; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 120 "/d/gcc-8.4.0/gcc-8.4.0/gcc/gengtype-lex.l" { return UNION; } YY_BREAK case 18: *************** YY_LINENO_REWIND_TO(yy_bp + 6); *** 1693,1699 **** (yy_c_buf_p) = yy_cp = yy_bp + 6; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 121 "/d/gcc-8.3.0/gcc-8.3.0/gcc/gengtype-lex.l" { return STRUCT; } YY_BREAK case 19: --- 1693,1699 ---- (yy_c_buf_p) = yy_cp = yy_bp + 6; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 121 "/d/gcc-8.4.0/gcc-8.4.0/gcc/gengtype-lex.l" { return STRUCT; } YY_BREAK case 19: *************** YY_LINENO_REWIND_TO(yy_bp + 5); *** 1703,1709 **** (yy_c_buf_p) = yy_cp = yy_bp + 5; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 122 "/d/gcc-8.3.0/gcc-8.3.0/gcc/gengtype-lex.l" { return STRUCT; } YY_BREAK case 20: --- 1703,1709 ---- (yy_c_buf_p) = yy_cp = yy_bp + 5; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 122 "/d/gcc-8.4.0/gcc-8.4.0/gcc/gengtype-lex.l" { return STRUCT; } YY_BREAK case 20: *************** YY_LINENO_REWIND_TO(yy_bp + 7); *** 1713,1719 **** (yy_c_buf_p) = yy_cp = yy_bp + 7; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 123 "/d/gcc-8.3.0/gcc-8.3.0/gcc/gengtype-lex.l" { return TYPEDEF; } YY_BREAK case 21: --- 1713,1719 ---- (yy_c_buf_p) = yy_cp = yy_bp + 7; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 123 "/d/gcc-8.4.0/gcc-8.4.0/gcc/gengtype-lex.l" { return TYPEDEF; } YY_BREAK case 21: *************** YY_LINENO_REWIND_TO(yy_bp + 4); *** 1723,1729 **** (yy_c_buf_p) = yy_cp = yy_bp + 4; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 124 "/d/gcc-8.3.0/gcc-8.3.0/gcc/gengtype-lex.l" { return ENUM; } YY_BREAK case 22: --- 1723,1729 ---- (yy_c_buf_p) = yy_cp = yy_bp + 4; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 124 "/d/gcc-8.4.0/gcc-8.4.0/gcc/gengtype-lex.l" { return ENUM; } YY_BREAK case 22: *************** YY_LINENO_REWIND_TO(yy_bp + 9); *** 1733,1739 **** (yy_c_buf_p) = yy_cp = yy_bp + 9; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 125 "/d/gcc-8.3.0/gcc-8.3.0/gcc/gengtype-lex.l" { return PTR_ALIAS; } YY_BREAK case 23: --- 1733,1739 ---- (yy_c_buf_p) = yy_cp = yy_bp + 9; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 125 "/d/gcc-8.4.0/gcc-8.4.0/gcc/gengtype-lex.l" { return PTR_ALIAS; } YY_BREAK case 23: *************** YY_LINENO_REWIND_TO(yy_bp + 10); *** 1743,1749 **** (yy_c_buf_p) = yy_cp = yy_bp + 10; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 126 "/d/gcc-8.3.0/gcc-8.3.0/gcc/gengtype-lex.l" { return NESTED_PTR; } YY_BREAK case 24: --- 1743,1749 ---- (yy_c_buf_p) = yy_cp = yy_bp + 10; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 126 "/d/gcc-8.4.0/gcc-8.4.0/gcc/gengtype-lex.l" { return NESTED_PTR; } YY_BREAK case 24: *************** YY_LINENO_REWIND_TO(yy_bp + 4); *** 1753,1764 **** (yy_c_buf_p) = yy_cp = yy_bp + 4; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 127 "/d/gcc-8.3.0/gcc-8.3.0/gcc/gengtype-lex.l" { return USER_GTY; } YY_BREAK case 25: YY_RULE_SETUP ! #line 128 "/d/gcc-8.3.0/gcc-8.3.0/gcc/gengtype-lex.l" { return NUM; } YY_BREAK case 26: --- 1753,1764 ---- (yy_c_buf_p) = yy_cp = yy_bp + 4; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 127 "/d/gcc-8.4.0/gcc-8.4.0/gcc/gengtype-lex.l" { return USER_GTY; } YY_BREAK case 25: YY_RULE_SETUP ! #line 128 "/d/gcc-8.4.0/gcc-8.4.0/gcc/gengtype-lex.l" { return NUM; } YY_BREAK case 26: *************** case 26: *** 1767,1777 **** YY_LINENO_REWIND_TO(yy_cp - 1); (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ ! #line 131 "/d/gcc-8.3.0/gcc-8.3.0/gcc/gengtype-lex.l" case 27: /* rule 27 can match eol */ YY_RULE_SETUP ! #line 131 "/d/gcc-8.3.0/gcc-8.3.0/gcc/gengtype-lex.l" { size_t len; --- 1767,1777 ---- YY_LINENO_REWIND_TO(yy_cp - 1); (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ ! #line 131 "/d/gcc-8.4.0/gcc-8.4.0/gcc/gengtype-lex.l" case 27: /* rule 27 can match eol */ YY_RULE_SETUP ! #line 131 "/d/gcc-8.4.0/gcc-8.4.0/gcc/gengtype-lex.l" { size_t len; *************** YY_LINENO_REWIND_TO(yy_cp - 1); *** 1790,1796 **** (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 142 "/d/gcc-8.3.0/gcc-8.3.0/gcc/gengtype-lex.l" { *yylval = XDUPVAR (const char, yytext, yyleng, yyleng+1); return ID; --- 1790,1796 ---- (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 142 "/d/gcc-8.4.0/gcc-8.4.0/gcc/gengtype-lex.l" { *yylval = XDUPVAR (const char, yytext, yyleng, yyleng+1); return ID; *************** YY_RULE_SETUP *** 1799,1805 **** case 29: /* rule 29 can match eol */ YY_RULE_SETUP ! #line 147 "/d/gcc-8.3.0/gcc-8.3.0/gcc/gengtype-lex.l" { *yylval = XDUPVAR (const char, yytext+1, yyleng-2, yyleng-1); return STRING; --- 1799,1805 ---- case 29: /* rule 29 can match eol */ YY_RULE_SETUP ! #line 147 "/d/gcc-8.4.0/gcc-8.4.0/gcc/gengtype-lex.l" { *yylval = XDUPVAR (const char, yytext+1, yyleng-2, yyleng-1); return STRING; *************** YY_RULE_SETUP *** 1809,1815 **** case 30: /* rule 30 can match eol */ YY_RULE_SETUP ! #line 152 "/d/gcc-8.3.0/gcc-8.3.0/gcc/gengtype-lex.l" { *yylval = XDUPVAR (const char, yytext+1, yyleng-2, yyleng-1); return ARRAY; --- 1809,1815 ---- case 30: /* rule 30 can match eol */ YY_RULE_SETUP ! #line 152 "/d/gcc-8.4.0/gcc-8.4.0/gcc/gengtype-lex.l" { *yylval = XDUPVAR (const char, yytext+1, yyleng-2, yyleng-1); return ARRAY; *************** YY_RULE_SETUP *** 1818,1824 **** case 31: /* rule 31 can match eol */ YY_RULE_SETUP ! #line 156 "/d/gcc-8.3.0/gcc-8.3.0/gcc/gengtype-lex.l" { *yylval = XDUPVAR (const char, yytext+1, yyleng-2, yyleng); return CHAR; --- 1818,1824 ---- case 31: /* rule 31 can match eol */ YY_RULE_SETUP ! #line 156 "/d/gcc-8.4.0/gcc-8.4.0/gcc/gengtype-lex.l" { *yylval = XDUPVAR (const char, yytext+1, yyleng-2, yyleng); return CHAR; *************** YY_RULE_SETUP *** 1826,1849 **** YY_BREAK case 32: YY_RULE_SETUP ! #line 161 "/d/gcc-8.3.0/gcc-8.3.0/gcc/gengtype-lex.l" { return ELLIPSIS; } YY_BREAK case 33: YY_RULE_SETUP ! #line 162 "/d/gcc-8.3.0/gcc-8.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 165 "/d/gcc-8.3.0/gcc-8.3.0/gcc/gengtype-lex.l" {lexer_line.line++;} YY_BREAK case 35: YY_RULE_SETUP ! #line 167 "/d/gcc-8.3.0/gcc-8.3.0/gcc/gengtype-lex.l" { error_at_line (&lexer_line, "unexpected character `%s'", yytext); } --- 1826,1849 ---- YY_BREAK case 32: YY_RULE_SETUP ! #line 161 "/d/gcc-8.4.0/gcc-8.4.0/gcc/gengtype-lex.l" { return ELLIPSIS; } YY_BREAK case 33: YY_RULE_SETUP ! #line 162 "/d/gcc-8.4.0/gcc-8.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 165 "/d/gcc-8.4.0/gcc-8.4.0/gcc/gengtype-lex.l" {lexer_line.line++;} YY_BREAK case 35: YY_RULE_SETUP ! #line 167 "/d/gcc-8.4.0/gcc-8.4.0/gcc/gengtype-lex.l" { error_at_line (&lexer_line, "unexpected character `%s'", yytext); } *************** YY_RULE_SETUP *** 1851,1886 **** case 36: YY_RULE_SETUP ! #line 172 "/d/gcc-8.3.0/gcc-8.3.0/gcc/gengtype-lex.l" { BEGIN(in_comment); } YY_BREAK case 37: /* rule 37 can match eol */ YY_RULE_SETUP ! #line 173 "/d/gcc-8.3.0/gcc-8.3.0/gcc/gengtype-lex.l" { lexer_line.line++; } YY_BREAK case 38: /* rule 38 can match eol */ YY_RULE_SETUP ! #line 174 "/d/gcc-8.3.0/gcc-8.3.0/gcc/gengtype-lex.l" { lexer_line.line++; } YY_BREAK case 39: ! #line 176 "/d/gcc-8.3.0/gcc-8.3.0/gcc/gengtype-lex.l" case 40: /* rule 40 can match eol */ ! #line 177 "/d/gcc-8.3.0/gcc-8.3.0/gcc/gengtype-lex.l" case 41: /* rule 41 can match eol */ YY_RULE_SETUP ! #line 177 "/d/gcc-8.3.0/gcc-8.3.0/gcc/gengtype-lex.l" /* do nothing */ YY_BREAK case 42: /* rule 42 can match eol */ YY_RULE_SETUP ! #line 178 "/d/gcc-8.3.0/gcc-8.3.0/gcc/gengtype-lex.l" { update_lineno (yytext, yyleng); } YY_BREAK case 43: --- 1851,1886 ---- case 36: YY_RULE_SETUP ! #line 172 "/d/gcc-8.4.0/gcc-8.4.0/gcc/gengtype-lex.l" { BEGIN(in_comment); } YY_BREAK case 37: /* rule 37 can match eol */ YY_RULE_SETUP ! #line 173 "/d/gcc-8.4.0/gcc-8.4.0/gcc/gengtype-lex.l" { lexer_line.line++; } YY_BREAK case 38: /* rule 38 can match eol */ YY_RULE_SETUP ! #line 174 "/d/gcc-8.4.0/gcc-8.4.0/gcc/gengtype-lex.l" { lexer_line.line++; } YY_BREAK case 39: ! #line 176 "/d/gcc-8.4.0/gcc-8.4.0/gcc/gengtype-lex.l" case 40: /* rule 40 can match eol */ ! #line 177 "/d/gcc-8.4.0/gcc-8.4.0/gcc/gengtype-lex.l" case 41: /* rule 41 can match eol */ YY_RULE_SETUP ! #line 177 "/d/gcc-8.4.0/gcc-8.4.0/gcc/gengtype-lex.l" /* do nothing */ YY_BREAK case 42: /* rule 42 can match eol */ YY_RULE_SETUP ! #line 178 "/d/gcc-8.4.0/gcc-8.4.0/gcc/gengtype-lex.l" { update_lineno (yytext, yyleng); } YY_BREAK case 43: *************** YY_LINENO_REWIND_TO(yy_bp + 1); *** 1890,1910 **** (yy_c_buf_p) = yy_cp = yy_bp + 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 179 "/d/gcc-8.3.0/gcc-8.3.0/gcc/gengtype-lex.l" /* do nothing */ YY_BREAK case 44: /* rule 44 can match eol */ YY_RULE_SETUP ! #line 182 "/d/gcc-8.3.0/gcc-8.3.0/gcc/gengtype-lex.l" { lexer_line.line++; } YY_BREAK case 45: ! #line 184 "/d/gcc-8.3.0/gcc-8.3.0/gcc/gengtype-lex.l" case 46: YY_RULE_SETUP ! #line 184 "/d/gcc-8.3.0/gcc-8.3.0/gcc/gengtype-lex.l" /* do nothing */ YY_BREAK case 47: --- 1890,1910 ---- (yy_c_buf_p) = yy_cp = yy_bp + 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 179 "/d/gcc-8.4.0/gcc-8.4.0/gcc/gengtype-lex.l" /* do nothing */ YY_BREAK case 44: /* rule 44 can match eol */ YY_RULE_SETUP ! #line 182 "/d/gcc-8.4.0/gcc-8.4.0/gcc/gengtype-lex.l" { lexer_line.line++; } YY_BREAK case 45: ! #line 184 "/d/gcc-8.4.0/gcc-8.4.0/gcc/gengtype-lex.l" case 46: YY_RULE_SETUP ! #line 184 "/d/gcc-8.4.0/gcc-8.4.0/gcc/gengtype-lex.l" /* do nothing */ YY_BREAK case 47: *************** YY_LINENO_REWIND_TO(yy_bp + 1); *** 1914,1938 **** (yy_c_buf_p) = yy_cp = yy_bp + 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 185 "/d/gcc-8.3.0/gcc-8.3.0/gcc/gengtype-lex.l" /* do nothing */ YY_BREAK case 48: YY_RULE_SETUP ! #line 188 "/d/gcc-8.3.0/gcc-8.3.0/gcc/gengtype-lex.l" { BEGIN(INITIAL); } YY_BREAK case 49: YY_RULE_SETUP ! #line 189 "/d/gcc-8.3.0/gcc-8.3.0/gcc/gengtype-lex.l" { BEGIN(in_struct); } YY_BREAK case 50: ! #line 192 "/d/gcc-8.3.0/gcc-8.3.0/gcc/gengtype-lex.l" case 51: YY_RULE_SETUP ! #line 192 "/d/gcc-8.3.0/gcc-8.3.0/gcc/gengtype-lex.l" { error_at_line (&lexer_line, "unterminated comment or string; unexpected EOF"); --- 1914,1938 ---- (yy_c_buf_p) = yy_cp = yy_bp + 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 185 "/d/gcc-8.4.0/gcc-8.4.0/gcc/gengtype-lex.l" /* do nothing */ YY_BREAK case 48: YY_RULE_SETUP ! #line 188 "/d/gcc-8.4.0/gcc-8.4.0/gcc/gengtype-lex.l" { BEGIN(INITIAL); } YY_BREAK case 49: YY_RULE_SETUP ! #line 189 "/d/gcc-8.4.0/gcc-8.4.0/gcc/gengtype-lex.l" { BEGIN(in_struct); } YY_BREAK case 50: ! #line 192 "/d/gcc-8.4.0/gcc-8.4.0/gcc/gengtype-lex.l" case 51: YY_RULE_SETUP ! #line 192 "/d/gcc-8.4.0/gcc-8.4.0/gcc/gengtype-lex.l" { error_at_line (&lexer_line, "unterminated comment or string; unexpected EOF"); *************** YY_RULE_SETUP *** 1941,1952 **** case 52: /* rule 52 can match eol */ YY_RULE_SETUP ! #line 197 "/d/gcc-8.3.0/gcc-8.3.0/gcc/gengtype-lex.l" /* do nothing */ YY_BREAK case 53: YY_RULE_SETUP ! #line 199 "/d/gcc-8.3.0/gcc-8.3.0/gcc/gengtype-lex.l" YY_FATAL_ERROR( "flex scanner jammed" ); YY_BREAK #line 1948 "gengtype-lex.c" --- 1941,1952 ---- case 52: /* rule 52 can match eol */ YY_RULE_SETUP ! #line 197 "/d/gcc-8.4.0/gcc-8.4.0/gcc/gengtype-lex.l" /* do nothing */ YY_BREAK case 53: YY_RULE_SETUP ! #line 199 "/d/gcc-8.4.0/gcc-8.4.0/gcc/gengtype-lex.l" YY_FATAL_ERROR( "flex scanner jammed" ); YY_BREAK #line 1948 "gengtype-lex.c" *************** void yyfree (void * ptr ) *** 2920,2926 **** #define YYTABLES_NAME "yytables" ! #line 199 "/d/gcc-8.3.0/gcc-8.3.0/gcc/gengtype-lex.l" --- 2920,2926 ---- #define YYTABLES_NAME "yytables" ! #line 199 "/d/gcc-8.4.0/gcc-8.4.0/gcc/gengtype-lex.l" diff -Nrcpad gcc-8.3.0/gcc/ggc-page.c gcc-8.4.0/gcc/ggc-page.c *** gcc-8.3.0/gcc/ggc-page.c Wed Jan 3 10:03:58 2018 --- gcc-8.4.0/gcc/ggc-page.c Wed Mar 4 08:30:00 2020 *************** ggc_pch_read (FILE *f, void *addr) *** 2555,2560 **** --- 2555,2563 ---- count_old_page_tables = G.by_depth_in_use; + if (fread (&d, sizeof (d), 1, f) != 1) + fatal_error (input_location, "cannot read PCH file: %m"); + /* We've just read in a PCH file. So, every object that used to be allocated is now free. */ clear_marks (); *************** ggc_pch_read (FILE *f, void *addr) *** 2583,2590 **** /* Allocate the appropriate page-table entries for the pages read from the PCH file. */ - if (fread (&d, sizeof (d), 1, f) != 1) - fatal_error (input_location, "can%'t read PCH file: %m"); for (i = 0; i < NUM_ORDERS; i++) { --- 2586,2591 ---- diff -Nrcpad gcc-8.3.0/gcc/gimple-fold.c gcc-8.4.0/gcc/gimple-fold.c *** gcc-8.3.0/gcc/gimple-fold.c Fri Jul 13 13:36:35 2018 --- gcc-8.4.0/gcc/gimple-fold.c Wed Mar 4 08:30:00 2020 *************** gimple_fold_builtin_sprintf (gimple_stmt *** 3031,3041 **** gimple_seq stmts = NULL; gimple *repl = gimple_build_call (fn, 2, dest, fmt); gimple_seq_add_stmt_without_update (&stmts, repl); ! if (gimple_call_lhs (stmt)) { ! repl = gimple_build_assign (gimple_call_lhs (stmt), ! build_int_cst (integer_type_node, ! strlen (fmt_str))); gimple_seq_add_stmt_without_update (&stmts, repl); gsi_replace_with_seq_vops (gsi, stmts); /* gsi now points at the assignment to the lhs, get a --- 3031,3040 ---- gimple_seq stmts = NULL; gimple *repl = gimple_build_call (fn, 2, dest, fmt); gimple_seq_add_stmt_without_update (&stmts, repl); ! if (tree lhs = gimple_call_lhs (stmt)) { ! repl = gimple_build_assign (lhs, build_int_cst (TREE_TYPE (lhs), ! strlen (fmt_str))); gimple_seq_add_stmt_without_update (&stmts, repl); gsi_replace_with_seq_vops (gsi, stmts); /* gsi now points at the assignment to the lhs, get a *************** gimple_fold_builtin_sprintf (gimple_stmt *** 3079,3090 **** gimple_seq stmts = NULL; gimple *repl = gimple_build_call (fn, 2, dest, orig); gimple_seq_add_stmt_without_update (&stmts, repl); ! if (gimple_call_lhs (stmt)) { ! if (!useless_type_conversion_p (integer_type_node, TREE_TYPE (orig_len))) ! orig_len = fold_convert (integer_type_node, orig_len); ! repl = gimple_build_assign (gimple_call_lhs (stmt), orig_len); gimple_seq_add_stmt_without_update (&stmts, repl); gsi_replace_with_seq_vops (gsi, stmts); /* gsi now points at the assignment to the lhs, get a --- 3078,3089 ---- gimple_seq stmts = NULL; gimple *repl = gimple_build_call (fn, 2, dest, orig); gimple_seq_add_stmt_without_update (&stmts, repl); ! if (tree lhs = gimple_call_lhs (stmt)) { ! if (!useless_type_conversion_p (TREE_TYPE (lhs), TREE_TYPE (orig_len))) ! orig_len = fold_convert (TREE_TYPE (lhs), orig_len); ! repl = gimple_build_assign (lhs, orig_len); gimple_seq_add_stmt_without_update (&stmts, repl); gsi_replace_with_seq_vops (gsi, stmts); /* gsi now points at the assignment to the lhs, get a *************** gimple_fold_builtin_snprintf (gimple_stm *** 3164,3173 **** gimple_seq stmts = NULL; gimple *repl = gimple_build_call (fn, 2, dest, fmt); gimple_seq_add_stmt_without_update (&stmts, repl); ! if (gimple_call_lhs (stmt)) { ! repl = gimple_build_assign (gimple_call_lhs (stmt), ! build_int_cst (integer_type_node, len)); gimple_seq_add_stmt_without_update (&stmts, repl); gsi_replace_with_seq_vops (gsi, stmts); /* gsi now points at the assignment to the lhs, get a --- 3163,3172 ---- gimple_seq stmts = NULL; gimple *repl = gimple_build_call (fn, 2, dest, fmt); gimple_seq_add_stmt_without_update (&stmts, repl); ! if (tree lhs = gimple_call_lhs (stmt)) { ! repl = gimple_build_assign (lhs, ! build_int_cst (TREE_TYPE (lhs), len)); gimple_seq_add_stmt_without_update (&stmts, repl); gsi_replace_with_seq_vops (gsi, stmts); /* gsi now points at the assignment to the lhs, get a *************** gimple_fold_builtin_snprintf (gimple_stm *** 3216,3227 **** gimple_seq stmts = NULL; gimple *repl = gimple_build_call (fn, 2, dest, orig); gimple_seq_add_stmt_without_update (&stmts, repl); ! if (gimple_call_lhs (stmt)) { ! if (!useless_type_conversion_p (integer_type_node, TREE_TYPE (orig_len))) ! orig_len = fold_convert (integer_type_node, orig_len); ! repl = gimple_build_assign (gimple_call_lhs (stmt), orig_len); gimple_seq_add_stmt_without_update (&stmts, repl); gsi_replace_with_seq_vops (gsi, stmts); /* gsi now points at the assignment to the lhs, get a --- 3215,3226 ---- gimple_seq stmts = NULL; gimple *repl = gimple_build_call (fn, 2, dest, orig); gimple_seq_add_stmt_without_update (&stmts, repl); ! if (tree lhs = gimple_call_lhs (stmt)) { ! if (!useless_type_conversion_p (TREE_TYPE (lhs), TREE_TYPE (orig_len))) ! orig_len = fold_convert (TREE_TYPE (lhs), orig_len); ! repl = gimple_build_assign (lhs, orig_len); gimple_seq_add_stmt_without_update (&stmts, repl); gsi_replace_with_seq_vops (gsi, stmts); /* gsi now points at the assignment to the lhs, get a *************** fold_const_aggregate_ref_1 (tree t, tree *** 6721,6734 **** = wi::sext (wi::to_poly_offset (idx) - wi::to_poly_offset (low_bound), TYPE_PRECISION (TREE_TYPE (idx))); ! if (woffset.to_shwi (&offset)) { - /* TODO: This code seems wrong, multiply then check - to see if it fits. */ - offset *= tree_to_uhwi (unit_size); - offset *= BITS_PER_UNIT; - base = TREE_OPERAND (t, 0); ctor = get_base_constructor (base, &offset, valueize); /* Empty constructor. Always fold to 0. */ --- 6720,6729 ---- = wi::sext (wi::to_poly_offset (idx) - wi::to_poly_offset (low_bound), TYPE_PRECISION (TREE_TYPE (idx))); ! woffset *= tree_to_uhwi (unit_size); ! woffset *= BITS_PER_UNIT; if (woffset.to_shwi (&offset)) { base = TREE_OPERAND (t, 0); ctor = get_base_constructor (base, &offset, valueize); /* Empty constructor. Always fold to 0. */ diff -Nrcpad gcc-8.3.0/gcc/gimple-ssa-sprintf.c gcc-8.4.0/gcc/gimple-ssa-sprintf.c *** gcc-8.3.0/gcc/gimple-ssa-sprintf.c Sat Jul 14 21:32:10 2018 --- gcc-8.4.0/gcc/gimple-ssa-sprintf.c Wed Mar 4 08:30:00 2020 *************** target_to_host (char *hostr, size_t host *** 376,384 **** overlong strings just like the translated strings are. */ if (target_to_host_charmap['\0'] == 1) { ! strncpy (hostr, targstr, hostsz - 4); ! if (strlen (targstr) >= hostsz) ! strcpy (hostr + hostsz - 4, "..."); return hostr; } --- 376,389 ---- overlong strings just like the translated strings are. */ if (target_to_host_charmap['\0'] == 1) { ! size_t len = strlen (targstr); ! if (len >= hostsz) ! { ! memcpy (hostr, targstr, hostsz - 4); ! strcpy (hostr + hostsz - 4, "..."); ! } ! else ! memcpy (hostr, targstr, len + 1); return hostr; } *************** target_to_host (char *hostr, size_t host *** 392,401 **** if (!*targstr) break; ! if (size_t (ph - hostr) == hostsz - 4) { ! *ph = '\0'; ! strcat (ph, "..."); break; } } --- 397,405 ---- if (!*targstr) break; ! if (size_t (ph - hostr) == hostsz) { ! strcpy (ph - 4, "..."); break; } } *************** try_substitute_return_value (gimple_stmt *** 3662,3671 **** are badly declared. */ && !stmt_ends_bb_p (info.callstmt)) { ! tree cst = build_int_cst (integer_type_node, retval[0]); ! if (lhs == NULL_TREE ! && info.nowrite) { /* Remove the call to the bounded function with a zero size (e.g., snprintf(0, 0, "%i", 123)) if there is no lhs. */ --- 3666,3675 ---- are badly declared. */ && !stmt_ends_bb_p (info.callstmt)) { ! tree cst = build_int_cst (lhs ? TREE_TYPE (lhs) : integer_type_node, ! retval[0]); ! if (lhs == NULL_TREE && info.nowrite) { /* Remove the call to the bounded function with a zero size (e.g., snprintf(0, 0, "%i", 123)) if there is no lhs. */ *************** try_substitute_return_value (gimple_stmt *** 3706,3712 **** } } } ! else if (lhs) { bool setrange = false; --- 3710,3716 ---- } } } ! else if (lhs && types_compatible_p (TREE_TYPE (lhs), integer_type_node)) { bool setrange = false; diff -Nrcpad gcc-8.3.0/gcc/gimple-ssa-store-merging.c gcc-8.4.0/gcc/gimple-ssa-store-merging.c *** gcc-8.3.0/gcc/gimple-ssa-store-merging.c Mon Nov 5 14:12:15 2018 --- gcc-8.4.0/gcc/gimple-ssa-store-merging.c Wed Mar 4 08:30:00 2020 *************** gather_bswap_load_refs (vec *refs, *** 2308,2315 **** /* Check if there are any stores in M_STORE_INFO after index I (where M_STORE_INFO must be sorted by sort_by_bitpos) that overlap a potential group ending with END that have their order ! smaller than LAST_ORDER. RHS_CODE is the kind of store in the ! group. Return true if there are no such stores. Consider: MEM[(long long int *)p_28] = 0; MEM[(long long int *)p_28 + 8B] = 0; --- 2308,2316 ---- /* Check if there are any stores in M_STORE_INFO after index I (where M_STORE_INFO must be sorted by sort_by_bitpos) that overlap a potential group ending with END that have their order ! smaller than LAST_ORDER. ALL_INTEGER_CST_P is true if ! all the stores already merged and the one under consideration ! have rhs_code of INTEGER_CST. Return true if there are no such stores. Consider: MEM[(long long int *)p_28] = 0; MEM[(long long int *)p_28 + 8B] = 0; *************** gather_bswap_load_refs (vec *refs, *** 2332,2344 **** the MEM[(long long int *)p_28 + 8B] = 0; would now be before it, so we need to refuse merging MEM[(long long int *)p_28 + 8B] = 0; into the group. That way it will be its own store group and will ! not be touched. If RHS_CODE is INTEGER_CST and there are overlapping INTEGER_CST stores, those are mergeable using merge_overlapping, so don't return false for those. */ static bool check_no_overlap (vec m_store_info, unsigned int i, ! enum tree_code rhs_code, unsigned int last_order, unsigned HOST_WIDE_INT end) { unsigned int len = m_store_info.length (); --- 2333,2345 ---- the MEM[(long long int *)p_28 + 8B] = 0; would now be before it, so we need to refuse merging MEM[(long long int *)p_28 + 8B] = 0; into the group. That way it will be its own store group and will ! not be touched. If ALL_INTEGER_CST_P and there are overlapping INTEGER_CST stores, those are mergeable using merge_overlapping, so don't return false for those. */ static bool check_no_overlap (vec m_store_info, unsigned int i, ! bool all_integer_cst_p, unsigned int last_order, unsigned HOST_WIDE_INT end) { unsigned int len = m_store_info.length (); *************** check_no_overlap (vecbitpos >= end) break; if (info->order < last_order ! && (rhs_code != INTEGER_CST || info->rhs_code != INTEGER_CST)) return false; } return true; --- 2349,2355 ---- if (info->bitpos >= end) break; if (info->order < last_order ! && (!all_integer_cst_p || info->rhs_code != INTEGER_CST)) return false; } return true; *************** imm_store_chain_info::try_coalesce_bswap *** 2501,2507 **** if (n.base_addr == NULL_TREE && !is_gimple_val (n.src)) return false; ! if (!check_no_overlap (m_store_info, last, LROTATE_EXPR, last_order, end)) return false; /* Don't handle memory copy this way if normal non-bswap processing --- 2502,2508 ---- if (n.base_addr == NULL_TREE && !is_gimple_val (n.src)) return false; ! if (!check_no_overlap (m_store_info, last, false, last_order, end)) return false; /* Don't handle memory copy this way if normal non-bswap processing *************** imm_store_chain_info::coalesce_immediate *** 2649,2655 **** |---store 2---| Overlapping stores. */ else if (IN_RANGE (info->bitpos, merged_store->start, ! merged_store->start + merged_store->width - 1)) { /* Only allow overlapping stores of constants. */ if (info->rhs_code == INTEGER_CST --- 2650,2662 ---- |---store 2---| Overlapping stores. */ else if (IN_RANGE (info->bitpos, merged_store->start, ! merged_store->start + merged_store->width - 1) ! /* |---store 1---||---store 2---| ! Handle also the consecutive INTEGER_CST stores case here, ! as we have here the code to deal with overlaps. */ ! || (info->bitregion_start <= merged_store->bitregion_end ! && info->rhs_code == INTEGER_CST ! && merged_store->stores[0]->rhs_code == INTEGER_CST)) { /* Only allow overlapping stores of constants. */ if (info->rhs_code == INTEGER_CST *************** imm_store_chain_info::coalesce_immediate *** 2660,2667 **** unsigned HOST_WIDE_INT end = MAX (merged_store->start + merged_store->width, info->bitpos + info->bitsize); ! if (check_no_overlap (m_store_info, i, INTEGER_CST, ! last_order, end)) { /* check_no_overlap call above made sure there are no overlapping stores with non-INTEGER_CST rhs_code --- 2667,2673 ---- unsigned HOST_WIDE_INT end = MAX (merged_store->start + merged_store->width, info->bitpos + info->bitsize); ! if (check_no_overlap (m_store_info, i, true, last_order, end)) { /* check_no_overlap call above made sure there are no overlapping stores with non-INTEGER_CST rhs_code *************** imm_store_chain_info::coalesce_immediate *** 2821,2827 **** && (infof->ops[1].base_addr ? compatible_load_p (merged_store, info, base_addr, 1) : !info->ops[1].base_addr) ! && check_no_overlap (m_store_info, i, info->rhs_code, MAX (merged_store->last_order, info->order), MAX (merged_store->start --- 2827,2833 ---- && (infof->ops[1].base_addr ? compatible_load_p (merged_store, info, base_addr, 1) : !info->ops[1].base_addr) ! && check_no_overlap (m_store_info, i, false, MAX (merged_store->last_order, info->order), MAX (merged_store->start diff -Nrcpad gcc-8.3.0/gcc/gimple-ssa-warn-restrict.c gcc-8.4.0/gcc/gimple-ssa-warn-restrict.c *** gcc-8.3.0/gcc/gimple-ssa-warn-restrict.c Fri Apr 20 23:43:51 2018 --- gcc-8.4.0/gcc/gimple-ssa-warn-restrict.c Wed Mar 4 08:30:00 2020 *************** builtin_memref::extend_offset_range (tre *** 314,326 **** offrange[0] += offset_int::from (min, SIGNED); offrange[1] += offset_int::from (max, SIGNED); } - else if (rng == VR_ANTI_RANGE) - { - offrange[0] += offset_int::from (max + 1, SIGNED); - offrange[1] += offset_int::from (min - 1, SIGNED); - } else { gimple *stmt = SSA_NAME_DEF_STMT (offset); tree type; if (is_gimple_assign (stmt) --- 314,322 ---- offrange[0] += offset_int::from (min, SIGNED); offrange[1] += offset_int::from (max, SIGNED); } else { + /* Handle an anti-range the same as no range at all. */ gimple *stmt = SSA_NAME_DEF_STMT (offset); tree type; if (is_gimple_assign (stmt) *************** builtin_access::builtin_access (gcall *c *** 702,707 **** --- 698,707 ---- offset_int bounds[2] = { maxobjsize, maxobjsize }; if (dstref->strbounded_p) { + unsigned nargs = gimple_call_num_args (call); + if (nargs <= sizeargno) + return; + tree size = gimple_call_arg (call, sizeargno); tree range[2]; if (get_size_range (size, range, true)) diff -Nrcpad gcc-8.3.0/gcc/gimplify.c gcc-8.4.0/gcc/gimplify.c *** gcc-8.3.0/gcc/gimplify.c Thu Feb 7 14:44:31 2019 --- gcc-8.4.0/gcc/gimplify.c Wed Mar 4 08:30:00 2020 *************** struct gimplify_omp_ctx *** 191,196 **** --- 191,197 ---- bool target_map_scalars_firstprivate; bool target_map_pointers_as_0len_arrays; bool target_firstprivatize_array_bases; + bool add_safelen1; }; static struct gimplify_ctx *gimplify_ctxp; *************** gimplify_bind_expr (tree *expr_p, gimple *** 1294,1305 **** || splay_tree_lookup (ctx->variables, (splay_tree_key) t) == NULL)) { if (ctx->region_type == ORT_SIMD && TREE_ADDRESSABLE (t) && !TREE_STATIC (t)) ! omp_add_variable (ctx, t, GOVD_PRIVATE | GOVD_SEEN); ! else ! omp_add_variable (ctx, t, GOVD_LOCAL | GOVD_SEEN); } DECL_SEEN_IN_BIND_EXPR_P (t) = 1; --- 1295,1311 ---- || splay_tree_lookup (ctx->variables, (splay_tree_key) t) == NULL)) { + int flag = GOVD_LOCAL; if (ctx->region_type == ORT_SIMD && TREE_ADDRESSABLE (t) && !TREE_STATIC (t)) ! { ! if (TREE_CODE (DECL_SIZE_UNIT (t)) != INTEGER_CST) ! ctx->add_safelen1 = true; ! else ! flag = GOVD_PRIVATE; ! } ! omp_add_variable (ctx, t, flag | GOVD_SEEN); } DECL_SEEN_IN_BIND_EXPR_P (t) = 1; *************** gimplify_compound_literal_expr (tree *ex *** 4650,4655 **** --- 4656,4662 ---- otherwise we'd generate a new temporary, and we can as well just use the decl we already have. */ else if (!TREE_ADDRESSABLE (decl) + && !TREE_THIS_VOLATILE (decl) && init && (fallback & fb_lvalue) == 0 && gimple_test_f (init)) *************** gimplify_init_constructor (tree *expr_p, *** 4946,4952 **** one field to assign, initialize the target from a temporary. */ if (TREE_THIS_VOLATILE (object) && !TREE_ADDRESSABLE (type) ! && num_nonzero_elements > 0 && vec_safe_length (elts) > 1) { tree temp = create_tmp_var (TYPE_MAIN_VARIANT (type)); --- 4953,4959 ---- one field to assign, initialize the target from a temporary. */ if (TREE_THIS_VOLATILE (object) && !TREE_ADDRESSABLE (type) ! && (num_nonzero_elements > 0 || !cleared) && vec_safe_length (elts) > 1) { tree temp = create_tmp_var (TYPE_MAIN_VARIANT (type)); *************** gimplify_asm_expr (tree *expr_p, gimple_ *** 6144,6149 **** --- 6151,6169 ---- is_inout = false; } + /* If we can't make copies, we can only accept memory. */ + if (TREE_ADDRESSABLE (TREE_TYPE (TREE_VALUE (link)))) + { + if (allows_mem) + allows_reg = 0; + else + { + error ("impossible constraint in %"); + error ("non-memory output %d must stay in memory", i); + return GS_ERROR; + } + } + if (!allows_reg && allows_mem) mark_addressable (TREE_VALUE (link)); *************** gimplify_target_expr (tree *expr_p, gimp *** 6639,6644 **** --- 6659,6665 ---- } if (asan_poisoned_variables && DECL_ALIGN (temp) <= MAX_SUPPORTED_STACK_ALIGNMENT + && !TREE_STATIC (temp) && dbg_cnt (asan_use_after_scope) && !gimplify_omp_ctxp) { *************** gimplify_scan_omp_clauses (tree *list_p, *** 8160,8167 **** break; if (scp) continue; ! gcc_assert (offset == NULL_TREE ! || poly_int_tree_p (offset)); tree d1 = OMP_CLAUSE_DECL (*sc); tree d2 = OMP_CLAUSE_DECL (c); while (TREE_CODE (d1) == ARRAY_REF) --- 8181,8188 ---- break; if (scp) continue; ! gcc_assert (offset2 == NULL_TREE ! || poly_int_tree_p (offset2)); tree d1 = OMP_CLAUSE_DECL (*sc); tree d2 = OMP_CLAUSE_DECL (c); while (TREE_CODE (d1) == ARRAY_REF) *************** gimplify_adjust_omp_clauses (gimple_seq *** 9011,9016 **** --- 9032,9050 ---- omp_find_stores_op, &wi); } } + + if (ctx->add_safelen1) + { + /* If there are VLAs in the body of simd loop, prevent + vectorization. */ + gcc_assert (ctx->region_type == ORT_SIMD); + c = build_omp_clause (UNKNOWN_LOCATION, OMP_CLAUSE_SAFELEN); + OMP_CLAUSE_SAFELEN_EXPR (c) = integer_one_node; + OMP_CLAUSE_CHAIN (c) = *list_p; + *list_p = c; + list_p = &OMP_CLAUSE_CHAIN (c); + } + while ((c = *list_p) != NULL) { splay_tree_node n; *************** gimplify_expr (tree *expr_p, gimple_seq *** 12534,12540 **** { /* Avoid the extra copy if possible. */ *expr_p = create_tmp_reg (TREE_TYPE (name)); ! gimple_set_lhs (SSA_NAME_DEF_STMT (name), *expr_p); release_ssa_name (name); } } --- 12568,12575 ---- { /* Avoid the extra copy if possible. */ *expr_p = create_tmp_reg (TREE_TYPE (name)); ! if (!gimple_nop_p (SSA_NAME_DEF_STMT (name))) ! gimple_set_lhs (SSA_NAME_DEF_STMT (name), *expr_p); release_ssa_name (name); } } diff -Nrcpad gcc-8.3.0/gcc/go/ChangeLog gcc-8.4.0/gcc/go/ChangeLog *** gcc-8.3.0/gcc/go/ChangeLog Fri Feb 22 14:20:37 2019 --- gcc-8.4.0/gcc/go/ChangeLog Wed Mar 4 08:30:30 2020 *************** *** 1,3 **** --- 1,7 ---- + 2020-03-04 Release Manager + + * GCC 8.4.0 released. + 2019-02-22 Release Manager * GCC 8.3.0 released. diff -Nrcpad gcc-8.3.0/gcc/graphite-scop-detection.c gcc-8.4.0/gcc/graphite-scop-detection.c *** gcc-8.3.0/gcc/graphite-scop-detection.c Fri Jan 25 10:12:37 2019 --- gcc-8.4.0/gcc/graphite-scop-detection.c Wed Mar 4 08:30:00 2020 *************** build_alias_set (scop_p scop) *** 1414,1422 **** int i, j; int *all_vertices; FOR_EACH_VEC_ELT (scop->drs, i, dr1) for (j = i+1; scop->drs.iterate (j, &dr2); j++) ! if (dr_may_alias_p (dr1->dr, dr2->dr, true)) { /* Dependences in the same alias set need to be handled by just looking at DR_ACCESS_FNs. */ --- 1414,1426 ---- int i, j; int *all_vertices; + struct loop *nest + = find_common_loop (scop->scop_info->region.entry->dest->loop_father, + scop->scop_info->region.exit->src->loop_father); + FOR_EACH_VEC_ELT (scop->drs, i, dr1) for (j = i+1; scop->drs.iterate (j, &dr2); j++) ! if (dr_may_alias_p (dr1->dr, dr2->dr, nest)) { /* Dependences in the same alias set need to be handled by just looking at DR_ACCESS_FNs. */ diff -Nrcpad gcc-8.3.0/gcc/input.c gcc-8.4.0/gcc/input.c *** gcc-8.3.0/gcc/input.c Wed Mar 14 13:58:13 2018 --- gcc-8.4.0/gcc/input.c Wed Mar 4 08:30:00 2020 *************** for_each_line_table_case (void (*testcas *** 3538,3543 **** --- 3538,3571 ---- ASSERT_EQ (num_cases_tested, 2 * 12); } + /* Verify that when presented with a consecutive pair of locations with + a very large line offset, we don't attempt to consolidate them into + a single ordinary linemap where the line offsets within the line map + would lead to overflow (PR lto/88147). */ + + static void + test_line_offset_overflow () + { + line_table_test ltt (line_table_case (5, 0)); + + linemap_add (line_table, LC_ENTER, false, "foo.c", 0); + linemap_line_start (line_table, 1, 100); + location_t loc_a = linemap_line_start (line_table, 2578, 255); + assert_loceq ("foo.c", 2578, 0, loc_a); + + const line_map_ordinary *ordmap_a = LINEMAPS_LAST_ORDINARY_MAP (line_table); + ASSERT_EQ (ordmap_a->m_column_and_range_bits, 13); + ASSERT_EQ (ordmap_a->m_range_bits, 5); + + location_t loc_b = linemap_line_start (line_table, 404198, 512); + assert_loceq ("foo.c", 404198, 0, loc_b); + + /* We should have started a new linemap, rather than attempting to store + a very large line offset. */ + const line_map_ordinary *ordmap_b = LINEMAPS_LAST_ORDINARY_MAP (line_table); + ASSERT_NE (ordmap_a, ordmap_b); + } + /* Run all of the selftests within this file. */ void *************** input_c_tests () *** 3577,3582 **** --- 3605,3612 ---- for_each_line_table_case (test_lexer_char_constants); test_reading_source_line (); + + test_line_offset_overflow (); } } // namespace selftest diff -Nrcpad gcc-8.3.0/gcc/internal-fn.c gcc-8.4.0/gcc/internal-fn.c *** gcc-8.3.0/gcc/internal-fn.c Tue Feb 20 14:44:24 2018 --- gcc-8.4.0/gcc/internal-fn.c Wed Mar 4 08:30:00 2020 *************** expand_mul_overflow (location_t loc, tre *** 1385,1391 **** /* s1 * s2 -> ur */ if (!uns0_p && !uns1_p && unsr_p) { ! rtx tem, tem2; switch (pos_neg0 | pos_neg1) { case 1: /* Both operands known to be non-negative. */ --- 1385,1391 ---- /* s1 * s2 -> ur */ if (!uns0_p && !uns1_p && unsr_p) { ! rtx tem; switch (pos_neg0 | pos_neg1) { case 1: /* Both operands known to be non-negative. */ *************** expand_mul_overflow (location_t loc, tre *** 1415,1424 **** ops.op2 = NULL_TREE; ops.location = loc; res = expand_expr_real_2 (&ops, NULL_RTX, mode, EXPAND_NORMAL); ! tem = expand_binop (mode, and_optab, op0, op1, NULL_RTX, false, ! OPTAB_LIB_WIDEN); ! do_compare_rtx_and_jump (tem, const0_rtx, EQ, true, mode, ! NULL_RTX, NULL, done_label, profile_probability::very_likely ()); goto do_error_label; } --- 1415,1422 ---- ops.op2 = NULL_TREE; ops.location = loc; res = expand_expr_real_2 (&ops, NULL_RTX, mode, EXPAND_NORMAL); ! do_compare_rtx_and_jump (pos_neg0 == 1 ? op0 : op1, const0_rtx, EQ, ! true, mode, NULL_RTX, NULL, done_label, profile_probability::very_likely ()); goto do_error_label; } *************** expand_mul_overflow (location_t loc, tre *** 1449,1464 **** arg1 = error_mark_node; emit_jump (do_main_label); emit_label (after_negate_label); ! tem2 = expand_binop (mode, xor_optab, op0, op1, NULL_RTX, false, ! OPTAB_LIB_WIDEN); ! do_compare_rtx_and_jump (tem2, const0_rtx, GE, false, mode, NULL_RTX, ! NULL, do_main_label, profile_probability::very_likely ()); /* One argument is negative here, the other positive. This overflows always, unless one of the arguments is 0. But if e.g. s2 is 0, (U) s1 * 0 doesn't overflow, whatever s1 is, thus we can keep do_main code oring in overflow as is. */ ! do_compare_rtx_and_jump (tem, const0_rtx, EQ, true, mode, NULL_RTX, ! NULL, do_main_label, profile_probability::very_likely ()); expand_arith_set_overflow (lhs, target); emit_label (do_main_label); goto do_main; --- 1447,1469 ---- arg1 = error_mark_node; emit_jump (do_main_label); emit_label (after_negate_label); ! tem = expand_binop (mode, xor_optab, op0, op1, NULL_RTX, false, ! OPTAB_LIB_WIDEN); ! do_compare_rtx_and_jump (tem, const0_rtx, GE, false, mode, NULL_RTX, ! NULL, do_main_label, ! profile_probability::very_likely ()); /* One argument is negative here, the other positive. This overflows always, unless one of the arguments is 0. But if e.g. s2 is 0, (U) s1 * 0 doesn't overflow, whatever s1 is, thus we can keep do_main code oring in overflow as is. */ ! if (pos_neg0 != 2) ! do_compare_rtx_and_jump (op0, const0_rtx, EQ, true, mode, NULL_RTX, ! NULL, do_main_label, ! profile_probability::very_unlikely ()); ! if (pos_neg1 != 2) ! do_compare_rtx_and_jump (op1, const0_rtx, EQ, true, mode, NULL_RTX, ! NULL, do_main_label, ! profile_probability::very_unlikely ()); expand_arith_set_overflow (lhs, target); emit_label (do_main_label); goto do_main; diff -Nrcpad gcc-8.3.0/gcc/ipa-cp.c gcc-8.4.0/gcc/ipa-cp.c *** gcc-8.3.0/gcc/ipa-cp.c Thu Feb 14 11:24:45 2019 --- gcc-8.4.0/gcc/ipa-cp.c Wed Mar 4 08:30:00 2020 *************** ipcp_bits_lattice::meet_with (ipcp_bits_ *** 1082,1088 **** if (TREE_CODE_CLASS (code) == tcc_binary) { tree type = TREE_TYPE (operand); - gcc_assert (INTEGRAL_TYPE_P (type)); widest_int o_value, o_mask; get_value_and_mask (operand, &o_value, &o_mask); --- 1082,1087 ---- *************** perform_estimation_of_a_value (cgraph_no *** 2852,2862 **** base_time -= time; if (base_time > 65535) base_time = 65535; ! time_benefit = base_time.to_int () ! + devirtualization_time_bonus (node, known_csts, known_contexts, ! known_aggs_ptrs) ! + hint_time_bonus (hints) ! + removable_params_cost + est_move_cost; gcc_checking_assert (size >=0); /* The inliner-heuristics based estimates may think that in certain --- 2851,2868 ---- base_time -= time; if (base_time > 65535) base_time = 65535; ! ! /* Extern inline functions have no cloning local time benefits because they ! will be inlined anyway. The only reason to clone them is if it enables ! optimization in any of the functions they call. */ ! if (DECL_EXTERNAL (node->decl) && DECL_DECLARED_INLINE_P (node->decl)) ! time_benefit = 0; ! else ! time_benefit = base_time.to_int () ! + devirtualization_time_bonus (node, known_csts, known_contexts, ! known_aggs_ptrs) ! + hint_time_bonus (hints) ! + removable_params_cost + est_move_cost; gcc_checking_assert (size >=0); /* The inliner-heuristics based estimates may think that in certain *************** cgraph_edge_brings_all_agg_vals_for_node *** 4471,4477 **** for (i = 0; i < count; i++) { - static vec values = vec(); struct ipcp_param_lattices *plats; bool interesting = false; for (struct ipa_agg_replacement_value *av = aggval; av; av = av->next) --- 4477,4482 ---- *************** cgraph_edge_brings_all_agg_vals_for_node *** 4487,4493 **** if (plats->aggs_bottom) return false; ! values = intersect_aggregates_with_edge (cs, i, values); if (!values.exists ()) return false; --- 4492,4499 ---- if (plats->aggs_bottom) return false; ! vec values ! = intersect_aggregates_with_edge (cs, i, vNULL); if (!values.exists ()) return false; *************** cgraph_edge_brings_all_agg_vals_for_node *** 4511,4516 **** --- 4517,4523 ---- return false; } } + values.release (); } return true; } diff -Nrcpad gcc-8.3.0/gcc/ipa-devirt.c gcc-8.4.0/gcc/ipa-devirt.c *** gcc-8.3.0/gcc/ipa-devirt.c Thu Jan 10 19:56:47 2019 --- gcc-8.4.0/gcc/ipa-devirt.c Wed Mar 4 08:30:00 2020 *************** warn_types_mismatch (tree t1, tree t2, l *** 1241,1246 **** --- 1241,1264 ---- inform (loc_t2, "the incompatible type is defined here"); } + /* Return true if T should be ignored in TYPE_FIELDS for ODR comparsion. */ + + static bool + skip_in_fields_list_p (tree t) + { + if (TREE_CODE (t) != FIELD_DECL) + return true; + /* C++ FE introduces zero sized fields depending on -std setting, see + PR89358. */ + if (DECL_SIZE (t) + && integer_zerop (DECL_SIZE (t)) + && DECL_ARTIFICIAL (t) + && DECL_IGNORED_P (t) + && !DECL_NAME (t)) + return true; + return false; + } + /* Compare T1 and T2, report ODR violations if WARN is true and set WARNED to true if anything is reported. Return true if types match. If true is returned, the types are also compatible in the sense of *************** odr_types_equivalent_p (tree t1, tree t2 *** 1525,1533 **** f1 = TREE_CHAIN (f1), f2 = TREE_CHAIN (f2)) { /* Skip non-fields. */ ! while (f1 && TREE_CODE (f1) != FIELD_DECL) f1 = TREE_CHAIN (f1); ! while (f2 && TREE_CODE (f2) != FIELD_DECL) f2 = TREE_CHAIN (f2); if (!f1 || !f2) break; --- 1543,1551 ---- f1 = TREE_CHAIN (f1), f2 = TREE_CHAIN (f2)) { /* Skip non-fields. */ ! while (f1 && skip_in_fields_list_p (f1)) f1 = TREE_CHAIN (f1); ! while (f2 && skip_in_fields_list_p (f2)) f2 = TREE_CHAIN (f2); if (!f1 || !f2) break; diff -Nrcpad gcc-8.3.0/gcc/ipa-fnsummary.c gcc-8.4.0/gcc/ipa-fnsummary.c *** gcc-8.3.0/gcc/ipa-fnsummary.c Thu Jan 25 15:32:02 2018 --- gcc-8.4.0/gcc/ipa-fnsummary.c Wed Mar 4 08:30:00 2020 *************** static void *** 3413,3436 **** ipa_fn_summary_write (void) { struct output_block *ob = create_output_block (LTO_section_ipa_fn_summary); lto_symtab_encoder_t encoder = ob->decl_state->symtab_node_encoder; unsigned int count = 0; - int i; ! for (i = 0; i < lto_symtab_encoder_size (encoder); i++) { ! symtab_node *snode = lto_symtab_encoder_deref (encoder, i); ! cgraph_node *cnode = dyn_cast (snode); ! if (cnode && cnode->definition && !cnode->alias) count++; } streamer_write_uhwi (ob, count); ! for (i = 0; i < lto_symtab_encoder_size (encoder); i++) { ! symtab_node *snode = lto_symtab_encoder_deref (encoder, i); ! cgraph_node *cnode = dyn_cast (snode); ! if (cnode && cnode->definition && !cnode->alias) { struct ipa_fn_summary *info = ipa_fn_summaries->get (cnode); struct bitpack_d bp; --- 3413,3436 ---- ipa_fn_summary_write (void) { struct output_block *ob = create_output_block (LTO_section_ipa_fn_summary); + lto_symtab_encoder_iterator lsei; lto_symtab_encoder_t encoder = ob->decl_state->symtab_node_encoder; unsigned int count = 0; ! for (lsei = lsei_start_function_in_partition (encoder); !lsei_end_p (lsei); ! lsei_next_function_in_partition (&lsei)) { ! cgraph_node *cnode = lsei_cgraph_node (lsei); ! if (cnode->definition && !cnode->alias) count++; } streamer_write_uhwi (ob, count); ! for (lsei = lsei_start_function_in_partition (encoder); !lsei_end_p (lsei); ! lsei_next_function_in_partition (&lsei)) { ! cgraph_node *cnode = lsei_cgraph_node (lsei); ! if (cnode->definition && !cnode->alias) { struct ipa_fn_summary *info = ipa_fn_summaries->get (cnode); struct bitpack_d bp; diff -Nrcpad gcc-8.3.0/gcc/ipa-prop.c gcc-8.4.0/gcc/ipa-prop.c *** gcc-8.3.0/gcc/ipa-prop.c Wed Jan 16 15:37:33 2019 --- gcc-8.4.0/gcc/ipa-prop.c Wed Mar 4 08:30:00 2020 *************** read_ipcp_transformation_info (lto_input *** 4685,4693 **** bool known = bp_unpack_value (&bp, 1); if (known) { ipa_bits *bits ! = ipa_get_ipa_bits_for_value (streamer_read_widest_int (ib), ! streamer_read_widest_int (ib)); (*ts->bits)[i] = bits; } } --- 4685,4694 ---- bool known = bp_unpack_value (&bp, 1); if (known) { + const widest_int value = streamer_read_widest_int (ib); + const widest_int mask = streamer_read_widest_int (ib); ipa_bits *bits ! = ipa_get_ipa_bits_for_value (value, mask); (*ts->bits)[i] = bits; } } diff -Nrcpad gcc-8.3.0/gcc/ipa-pure-const.c gcc-8.4.0/gcc/ipa-pure-const.c *** gcc-8.3.0/gcc/ipa-pure-const.c Thu Feb 14 11:24:45 2019 --- gcc-8.4.0/gcc/ipa-pure-const.c Wed Mar 4 08:30:00 2020 *************** special_builtin_state (enum pure_const_s *** 565,571 **** case BUILT_IN_CXA_END_CLEANUP: case BUILT_IN_EH_COPY_VALUES: case BUILT_IN_FRAME_ADDRESS: - case BUILT_IN_APPLY: case BUILT_IN_APPLY_ARGS: case BUILT_IN_ASAN_BEFORE_DYNAMIC_INIT: case BUILT_IN_ASAN_AFTER_DYNAMIC_INIT: --- 565,570 ---- diff -Nrcpad gcc-8.3.0/gcc/ira.c gcc-8.4.0/gcc/ira.c *** gcc-8.3.0/gcc/ira.c Mon Feb 5 10:47:56 2018 --- gcc-8.4.0/gcc/ira.c Wed Mar 4 08:30:00 2020 *************** ira (FILE *f) *** 5147,5152 **** --- 5147,5154 ---- int ira_max_point_before_emit; bool saved_flag_caller_saves = flag_caller_saves; enum ira_region saved_flag_ira_region = flag_ira_region; + unsigned int i; + int num_used_regs = 0; clear_bb_flags (); *************** ira (FILE *f) *** 5162,5173 **** ira_conflicts_p = optimize > 0; /* If there are too many pseudos and/or basic blocks (e.g. 10K pseudos and 10K blocks or 100K pseudos and 1K blocks), we will use simplified and faster algorithms in LRA. */ lra_simple_p = (ira_use_lra_p ! && max_reg_num () >= (1 << 26) / last_basic_block_for_fn (cfun)); if (lra_simple_p) { /* It permits to skip live range splitting in LRA. */ --- 5164,5180 ---- ira_conflicts_p = optimize > 0; + /* Determine the number of pseudos actually requiring coloring. */ + for (i = FIRST_PSEUDO_REGISTER; i < DF_REG_SIZE (df); i++) + num_used_regs += !!(DF_REG_USE_COUNT (i) + DF_REG_DEF_COUNT (i)); + /* If there are too many pseudos and/or basic blocks (e.g. 10K pseudos and 10K blocks or 100K pseudos and 1K blocks), we will use simplified and faster algorithms in LRA. */ lra_simple_p = (ira_use_lra_p ! && num_used_regs >= (1 << 26) / last_basic_block_for_fn (cfun)); ! if (lra_simple_p) { /* It permits to skip live range splitting in LRA. */ diff -Nrcpad gcc-8.3.0/gcc/jit/ChangeLog gcc-8.4.0/gcc/jit/ChangeLog *** gcc-8.3.0/gcc/jit/ChangeLog Fri Feb 22 14:20:37 2019 --- gcc-8.4.0/gcc/jit/ChangeLog Wed Mar 4 08:30:30 2020 *************** *** 1,3 **** --- 1,7 ---- + 2020-03-04 Release Manager + + * GCC 8.4.0 released. + 2019-02-22 Release Manager * GCC 8.3.0 released. diff -Nrcpad gcc-8.3.0/gcc/loop-iv.c gcc-8.4.0/gcc/loop-iv.c *** gcc-8.3.0/gcc/loop-iv.c Wed Jan 3 10:03:58 2018 --- gcc-8.4.0/gcc/loop-iv.c Wed Mar 4 08:30:00 2020 *************** simple_rhs_p (rtx rhs) *** 1380,1403 **** static rtx find_single_def_src (unsigned int regno) { ! df_ref adef; ! rtx set, src; ! for (;;) { ! rtx note; ! adef = DF_REG_DEF_CHAIN (regno); if (adef == NULL || DF_REF_NEXT_REG (adef) != NULL || DF_REF_IS_ARTIFICIAL (adef)) return NULL_RTX; ! set = single_set (DF_REF_INSN (adef)); if (set == NULL || !REG_P (SET_DEST (set)) || REGNO (SET_DEST (set)) != regno) return NULL_RTX; ! note = find_reg_equal_equiv_note (DF_REF_INSN (adef)); ! if (note && function_invariant_p (XEXP (note, 0))) { src = XEXP (note, 0); --- 1380,1402 ---- static rtx find_single_def_src (unsigned int regno) { ! rtx src = NULL_RTX; ! /* Don't look through unbounded number of single definition REG copies, ! there might be loops for sources with uninitialized variables. */ ! for (int cnt = 0; cnt < 128; cnt++) { ! df_ref adef = DF_REG_DEF_CHAIN (regno); if (adef == NULL || DF_REF_NEXT_REG (adef) != NULL || DF_REF_IS_ARTIFICIAL (adef)) return NULL_RTX; ! rtx set = single_set (DF_REF_INSN (adef)); if (set == NULL || !REG_P (SET_DEST (set)) || REGNO (SET_DEST (set)) != regno) return NULL_RTX; ! rtx note = find_reg_equal_equiv_note (DF_REF_INSN (adef)); if (note && function_invariant_p (XEXP (note, 0))) { src = XEXP (note, 0); diff -Nrcpad gcc-8.3.0/gcc/loop-unroll.c gcc-8.4.0/gcc/loop-unroll.c *** gcc-8.3.0/gcc/loop-unroll.c Wed Jan 3 10:03:58 2018 --- gcc-8.4.0/gcc/loop-unroll.c Wed Mar 4 08:30:00 2020 *************** decide_unroll_constant_iterations (struc *** 399,405 **** { /* However we cannot unroll completely at the RTL level a loop with constant number of iterations; it should have been peeled instead. */ ! if ((unsigned) loop->unroll - 1 > desc->niter - 2) { if (dump_file) fprintf (dump_file, ";; Loop should have been peeled\n"); --- 399,405 ---- { /* However we cannot unroll completely at the RTL level a loop with constant number of iterations; it should have been peeled instead. */ ! if (desc->niter == 0 || (unsigned) loop->unroll > desc->niter - 1) { if (dump_file) fprintf (dump_file, ";; Loop should have been peeled\n"); *************** unroll_loop_constant_iterations (struct *** 651,657 **** if (loop->any_likely_upper_bound) loop->nb_iterations_likely_upper_bound = wi::udiv_trunc (loop->nb_iterations_likely_upper_bound, max_unroll + 1); ! desc->niter_expr = GEN_INT (desc->niter); /* Remove the edges. */ FOR_EACH_VEC_ELT (remove_edges, i, e) --- 651,657 ---- if (loop->any_likely_upper_bound) loop->nb_iterations_likely_upper_bound = wi::udiv_trunc (loop->nb_iterations_likely_upper_bound, max_unroll + 1); ! desc->niter_expr = gen_int_mode (desc->niter, desc->mode); /* Remove the edges. */ FOR_EACH_VEC_ELT (remove_edges, i, e) *************** unroll_loop_runtime_iterations (struct l *** 1019,1027 **** preheader = split_edge (loop_preheader_edge (loop)); /* Add in count of edge from switch block. */ preheader->count += iter_count; ! branch_code = compare_and_jump_seq (copy_rtx (niter), GEN_INT (j), EQ, ! block_label (preheader), p, ! NULL); /* We rely on the fact that the compare and jump cannot be optimized out, and hence the cfg we create is correct. */ --- 1019,1027 ---- preheader = split_edge (loop_preheader_edge (loop)); /* Add in count of edge from switch block. */ preheader->count += iter_count; ! branch_code = compare_and_jump_seq (copy_rtx (niter), ! gen_int_mode (j, desc->mode), EQ, ! block_label (preheader), p, NULL); /* We rely on the fact that the compare and jump cannot be optimized out, and hence the cfg we create is correct. */ diff -Nrcpad gcc-8.3.0/gcc/lra-constraints.c gcc-8.4.0/gcc/lra-constraints.c *** gcc-8.3.0/gcc/lra-constraints.c Thu Mar 29 18:29:12 2018 --- gcc-8.4.0/gcc/lra-constraints.c Wed Mar 4 08:30:00 2020 *************** uses_hard_regs_p (rtx x, HARD_REG_SET se *** 1774,1787 **** return false; code = GET_CODE (x); mode = GET_MODE (x); if (code == SUBREG) { mode = wider_subreg_mode (x); ! x = SUBREG_REG (x); ! code = GET_CODE (x); } ! if (REG_P (x)) { x_hard_regno = get_hard_regno (x, true); return (x_hard_regno >= 0 --- 1774,1797 ---- return false; code = GET_CODE (x); mode = GET_MODE (x); + if (code == SUBREG) { + /* For all SUBREGs we want to check whether the full multi-register + overlaps the set. For normal SUBREGs this means 'get_hard_regno' of + the inner register, for paradoxical SUBREGs this means the + 'get_hard_regno' of the full SUBREG and for complete SUBREGs either is + fine. Use the wider mode for all cases. */ + rtx subreg = SUBREG_REG (x); mode = wider_subreg_mode (x); ! if (mode == GET_MODE (subreg)) ! { ! x = subreg; ! code = GET_CODE (x); ! } } ! if (REG_P (x) || SUBREG_P (x)) { x_hard_regno = get_hard_regno (x, true); return (x_hard_regno >= 0 *************** process_alt_operands (int only_alternati *** 2315,2320 **** --- 2325,2332 ---- break; reg: + if (mode == BLKmode) + break; this_alternative = reg_class_subunion[this_alternative][cl]; IOR_HARD_REG_SET (this_alternative_set, reg_class_contents[cl]); *************** process_alt_operands (int only_alternati *** 2325,2332 **** IOR_HARD_REG_SET (this_costly_alternative_set, reg_class_contents[cl]); } - if (mode == BLKmode) - break; winreg = true; if (REG_P (op)) { --- 2337,2342 ---- *************** invariant_p (const_rtx x) *** 5767,5772 **** --- 5777,5785 ---- enum rtx_code code; int i, j; + if (side_effects_p (x)) + return false; + code = GET_CODE (x); mode = GET_MODE (x); if (code == SUBREG) *************** inherit_in_ebb (rtx_insn *head, rtx_insn *** 6293,6298 **** --- 6306,6312 ---- add_to_hard_reg_set (&s, PSEUDO_REGNO_MODE (dst_regno), reg_renumber[dst_regno]); AND_COMPL_HARD_REG_SET (live_hard_regs, s); + AND_COMPL_HARD_REG_SET (potential_reload_hard_regs, s); } /* We should invalidate potential inheritance or splitting for the current insn usages to the next diff -Nrcpad gcc-8.3.0/gcc/lto/ChangeLog gcc-8.4.0/gcc/lto/ChangeLog *** gcc-8.3.0/gcc/lto/ChangeLog Fri Feb 22 14:20:37 2019 --- gcc-8.4.0/gcc/lto/ChangeLog Wed Mar 4 08:30:30 2020 *************** *** 1,3 **** --- 1,16 ---- + 2020-03-04 Release Manager + + * GCC 8.4.0 released. + + 2020-01-20 Martin Liska + + Backport from mainline + 2020-01-16 Martin Liska + + * lto-partition.c (lto_balanced_map): Remember + best_noreorder_pos and then restore to it + when we revert. + 2019-02-22 Release Manager * GCC 8.3.0 released. diff -Nrcpad gcc-8.3.0/gcc/lto/lto-partition.c gcc-8.4.0/gcc/lto/lto-partition.c *** gcc-8.3.0/gcc/lto/lto-partition.c Mon Jun 25 17:20:09 2018 --- gcc-8.4.0/gcc/lto/lto-partition.c Wed Mar 4 08:30:00 2020 *************** void *** 507,512 **** --- 507,513 ---- lto_balanced_map (int n_lto_partitions, int max_partition_size) { int n_varpool_nodes = 0, varpool_pos = 0, best_varpool_pos = 0; + int best_noreorder_pos = 0; auto_vec order (symtab->cgraph_count); auto_vec noreorder; auto_vec varpool_order; *************** lto_balanced_map (int n_lto_partitions, *** 769,774 **** --- 770,776 ---- best_i = i; best_n_nodes = lto_symtab_encoder_size (partition->encoder); best_varpool_pos = varpool_pos; + best_noreorder_pos = noreorder_pos; } if (symtab->dump_file) fprintf (symtab->dump_file, "Step %i: added %s/%i, size %i, " *************** lto_balanced_map (int n_lto_partitions, *** 789,794 **** --- 791,797 ---- i - best_i, best_i); undo_partition (partition, best_n_nodes); varpool_pos = best_varpool_pos; + noreorder_pos = best_noreorder_pos; } gcc_assert (best_size == partition->insns); i = best_i; diff -Nrcpad gcc-8.3.0/gcc/lto-streamer-in.c gcc-8.4.0/gcc/lto-streamer-in.c *** gcc-8.3.0/gcc/lto-streamer-in.c Wed Jan 3 21:43:02 2018 --- gcc-8.4.0/gcc/lto-streamer-in.c Wed Mar 4 08:30:00 2020 *************** input_cfg (struct lto_input_block *ib, s *** 826,831 **** --- 826,832 ---- /* Read OMP SIMD related info. */ loop->safelen = streamer_read_hwi (ib); loop->unroll = streamer_read_hwi (ib); + loop->owned_clique = streamer_read_hwi (ib); loop->dont_vectorize = streamer_read_hwi (ib); loop->force_vectorize = streamer_read_hwi (ib); loop->simduid = stream_read_tree (ib, data_in); *************** input_function (tree fn_decl, struct dat *** 1131,1136 **** --- 1132,1145 ---- ? !MAY_HAVE_DEBUG_MARKER_STMTS : !MAY_HAVE_DEBUG_BIND_STMTS)) remove = true; + /* In case the linemap overflows locations can be dropped + to zero. Thus do not keep nonsensical inline entry markers + we'd later ICE on. */ + tree block; + if (gimple_debug_inline_entry_p (stmt) + && (block = gimple_block (stmt)) + && !inlined_function_outer_scope_p (block)) + remove = true; if (is_gimple_call (stmt) && gimple_call_internal_p (stmt)) { diff -Nrcpad gcc-8.3.0/gcc/lto-streamer-out.c gcc-8.4.0/gcc/lto-streamer-out.c *** gcc-8.3.0/gcc/lto-streamer-out.c Fri Feb 8 14:34:49 2019 --- gcc-8.4.0/gcc/lto-streamer-out.c Wed Mar 4 08:30:00 2020 *************** output_cfg (struct output_block *ob, str *** 1945,1950 **** --- 1945,1951 ---- /* Write OMP SIMD related info. */ streamer_write_hwi (ob, loop->safelen); streamer_write_hwi (ob, loop->unroll); + streamer_write_hwi (ob, loop->owned_clique); streamer_write_hwi (ob, loop->dont_vectorize); streamer_write_hwi (ob, loop->force_vectorize); stream_write_tree (ob, loop->simduid, true); diff -Nrcpad gcc-8.3.0/gcc/lto-streamer.h gcc-8.4.0/gcc/lto-streamer.h *** gcc-8.3.0/gcc/lto-streamer.h Wed Feb 13 11:24:28 2019 --- gcc-8.4.0/gcc/lto-streamer.h Wed Mar 4 08:30:00 2020 *************** along with GCC; see the file COPYING3. *** 121,127 **** form followed by the data for the string. */ #define LTO_major_version 7 ! #define LTO_minor_version 1 typedef unsigned char lto_decl_flags_t; --- 121,127 ---- form followed by the data for the string. */ #define LTO_major_version 7 ! #define LTO_minor_version 3 typedef unsigned char lto_decl_flags_t; diff -Nrcpad gcc-8.3.0/gcc/lto-wrapper.c gcc-8.4.0/gcc/lto-wrapper.c *** gcc-8.3.0/gcc/lto-wrapper.c Sun Jan 6 15:51:45 2019 --- gcc-8.4.0/gcc/lto-wrapper.c Wed Mar 4 08:30:00 2020 *************** cont: *** 1669,1675 **** struct pex_obj *pex; char jobs[32]; ! fprintf (mstream, "all:"); for (i = 0; i < nr; ++i) { int j = ltrans_priorities[i*2 + 1]; --- 1669,1677 ---- struct pex_obj *pex; char jobs[32]; ! fprintf (mstream, ! ".PHONY: all\n" ! "all:"); for (i = 0; i < nr; ++i) { int j = ltrans_priorities[i*2 + 1]; diff -Nrcpad gcc-8.3.0/gcc/match.pd gcc-8.4.0/gcc/match.pd *** gcc-8.3.0/gcc/match.pd Mon Nov 5 14:11:32 2018 --- gcc-8.4.0/gcc/match.pd Wed Mar 4 08:30:00 2020 *************** DEFINE_INT_AND_FLOAT_ROUND_FN (RINT) *** 1229,1235 **** (for cmp (gt lt ge le) (simplify (mult (convert (cmp @0 @1)) @2) ! (cond (cmp @0 @1) @2 { build_zero_cst (type); }))) /* For integral types with undefined overflow and C != 0 fold x * C EQ/NE y * C into x EQ/NE y. */ --- 1229,1236 ---- (for cmp (gt lt ge le) (simplify (mult (convert (cmp @0 @1)) @2) ! (if (GIMPLE || !TREE_SIDE_EFFECTS (@2)) ! (cond (cmp @0 @1) @2 { build_zero_cst (type); })))) /* For integral types with undefined overflow and C != 0 fold x * C EQ/NE y * C into x EQ/NE y. */ *************** DEFINE_INT_AND_FLOAT_ROUND_FN (RINT) *** 2406,2411 **** --- 2407,2419 ---- && TYPE_UNSIGNED (TREE_TYPE (@1))))) (view_convert @1))) + /* Simplify a view-converted empty constructor. */ + (simplify + (view_convert CONSTRUCTOR@0) + (if (TREE_CODE (@0) != SSA_NAME + && CONSTRUCTOR_NELTS (@0) == 0) + { build_zero_cst (type); })) + /* Re-association barriers around constants and other re-association barriers can be removed. */ (simplify diff -Nrcpad gcc-8.3.0/gcc/modulo-sched.c gcc-8.4.0/gcc/modulo-sched.c *** gcc-8.3.0/gcc/modulo-sched.c Tue Jan 9 08:03:45 2018 --- gcc-8.4.0/gcc/modulo-sched.c Wed Mar 4 08:30:00 2020 *************** sms_schedule (void) *** 1605,1610 **** --- 1605,1611 ---- mii = 1; /* Need to pass some estimate of mii. */ rec_mii = sms_order_nodes (g, mii, node_order, &max_asap); mii = MAX (res_MII (g), rec_mii); + mii = MAX (mii, 1); maxii = MAX (max_asap, MAXII_FACTOR * mii); if (dump_file) *************** ps_insn_find_column (partial_schedule_pt *** 3004,3012 **** last_must_precede = next_ps_i; } /* The closing branch must be the last in the row. */ ! if (must_precede ! && bitmap_bit_p (must_precede, next_ps_i->id) ! && JUMP_P (ps_rtl_insn (ps, next_ps_i->id))) return false; last_in_row = next_ps_i; --- 3005,3011 ---- last_must_precede = next_ps_i; } /* The closing branch must be the last in the row. */ ! if (JUMP_P (ps_rtl_insn (ps, next_ps_i->id))) return false; last_in_row = next_ps_i; *************** ps_add_node_check_conflicts (partial_sch *** 3210,3216 **** int c, sbitmap must_precede, sbitmap must_follow) { ! int has_conflicts = 0; ps_insn_ptr ps_i; /* First add the node to the PS, if this succeeds check for --- 3209,3215 ---- int c, sbitmap must_precede, sbitmap must_follow) { ! int i, first, amount, has_conflicts = 0; ps_insn_ptr ps_i; /* First add the node to the PS, if this succeeds check for *************** ps_add_node_check_conflicts (partial_sch *** 3218,3240 **** if (! (ps_i = add_node_to_ps (ps, n, c, must_precede, must_follow))) return NULL; /* Failed to insert the node at the given cycle. */ ! has_conflicts = ps_has_conflicts (ps, c, c) ! || (ps->history > 0 ! && ps_has_conflicts (ps, ! c - ps->history, ! c + ps->history)); ! ! /* Try different issue slots to find one that the given node can be ! scheduled in without conflicts. */ ! while (has_conflicts) { if (! ps_insn_advance_column (ps, ps_i, must_follow)) break; - has_conflicts = ps_has_conflicts (ps, c, c) - || (ps->history > 0 - && ps_has_conflicts (ps, - c - ps->history, - c + ps->history)); } if (has_conflicts) --- 3217,3248 ---- if (! (ps_i = add_node_to_ps (ps, n, c, must_precede, must_follow))) return NULL; /* Failed to insert the node at the given cycle. */ ! while (1) { + has_conflicts = ps_has_conflicts (ps, c, c); + if (ps->history > 0 && !has_conflicts) + { + /* Check all 2h+1 intervals, starting from c-2h..c up to c..2h, + but not more than ii intervals. */ + first = c - ps->history; + amount = 2 * ps->history + 1; + if (amount > ps->ii) + amount = ps->ii; + for (i = first; i < first + amount; i++) + { + has_conflicts = ps_has_conflicts (ps, + i - ps->history, + i + ps->history); + if (has_conflicts) + break; + } + } + if (!has_conflicts) + break; + /* Try different issue slots to find one that the given node can be + scheduled in without conflicts. */ if (! ps_insn_advance_column (ps, ps_i, must_follow)) break; } if (has_conflicts) diff -Nrcpad gcc-8.3.0/gcc/multiple_target.c gcc-8.4.0/gcc/multiple_target.c *** gcc-8.3.0/gcc/multiple_target.c Tue Apr 17 05:40:39 2018 --- gcc-8.4.0/gcc/multiple_target.c Wed Mar 4 08:30:00 2020 *************** create_dispatcher_calls (struct cgraph_n *** 103,112 **** inode->resolve_alias (cgraph_node::get (resolver_decl)); auto_vec edges_to_redirect; ! auto_vec references_to_redirect; ! for (unsigned i = 0; node->iterate_referring (i, ref); i++) ! references_to_redirect.safe_push (ref); /* We need to remember NEXT_CALLER as it could be modified in the loop. */ for (cgraph_edge *e = node->callers; e ; e = e->next_caller) --- 103,118 ---- inode->resolve_alias (cgraph_node::get (resolver_decl)); auto_vec edges_to_redirect; ! /* We need to capture the references by value rather than just pointers to them ! and remove them right away, as removing them later would invalidate what ! some other reference pointers point to. */ ! auto_vec references_to_redirect; ! while (node->iterate_referring (0, ref)) ! { ! references_to_redirect.safe_push (*ref); ! ref->remove_reference (); ! } /* We need to remember NEXT_CALLER as it could be modified in the loop. */ for (cgraph_edge *e = node->callers; e ; e = e->next_caller) *************** create_dispatcher_calls (struct cgraph_n *** 146,160 **** } symtab_node *source = ref->referring; - ref->remove_reference (); source->create_reference (inode, IPA_REF_ADDR); } else if (ref->use == IPA_REF_ALIAS) { symtab_node *source = ref->referring; - ref->remove_reference (); source->create_reference (inode, IPA_REF_ALIAS); ! source->add_to_same_comdat_group (inode); } else gcc_unreachable (); --- 152,165 ---- } symtab_node *source = ref->referring; source->create_reference (inode, IPA_REF_ADDR); } else if (ref->use == IPA_REF_ALIAS) { symtab_node *source = ref->referring; source->create_reference (inode, IPA_REF_ALIAS); ! if (inode->get_comdat_group ()) ! source->add_to_same_comdat_group (inode); } else gcc_unreachable (); *************** create_new_asm_name (char *old_asm_name, *** 294,300 **** /* Creates target clone of NODE. */ static cgraph_node * ! create_target_clone (cgraph_node *node, bool definition, char *name) { cgraph_node *new_node; --- 299,306 ---- /* Creates target clone of NODE. */ static cgraph_node * ! create_target_clone (cgraph_node *node, bool definition, char *name, ! tree attributes) { cgraph_node *new_node; *************** create_target_clone (cgraph_node *node, *** 303,315 **** new_node = node->create_version_clone_with_body (vNULL, NULL, NULL, false, NULL, NULL, ! name); new_node->force_output = true; } else { tree new_decl = copy_node (node->decl); new_node = cgraph_node::get_create (new_decl); /* Generate a new name for the new version. */ symtab->change_decl_assembler_name (new_node->decl, clone_function_name (node->decl, --- 309,324 ---- new_node = node->create_version_clone_with_body (vNULL, NULL, NULL, false, NULL, NULL, ! name, attributes); ! if (new_node == NULL) ! return NULL; new_node->force_output = true; } else { tree new_decl = copy_node (node->decl); new_node = cgraph_node::get_create (new_decl); + DECL_ATTRIBUTES (new_decl) = attributes; /* Generate a new name for the new version. */ symtab->change_decl_assembler_name (new_node->decl, clone_function_name (node->decl, *************** expand_target_clones (struct cgraph_node *** 399,420 **** create_new_asm_name (attr, suffix); /* Create new target clone. */ - cgraph_node *new_node = create_target_clone (node, definition, suffix); - new_node->local.local = false; - XDELETEVEC (suffix); - - /* Set new attribute for the clone. */ tree attributes = make_attribute ("target", attr, ! DECL_ATTRIBUTES (new_node->decl)); ! DECL_ATTRIBUTES (new_node->decl) = attributes; ! location_t saved_loc = input_location; ! input_location = DECL_SOURCE_LOCATION (node->decl); ! if (!targetm.target_option.valid_attribute_p (new_node->decl, NULL, ! TREE_VALUE (attributes), ! 0)) return false; - input_location = saved_loc; decl2_v = new_node->function_version (); if (decl2_v != NULL) continue; --- 408,423 ---- create_new_asm_name (attr, suffix); /* Create new target clone. */ tree attributes = make_attribute ("target", attr, ! DECL_ATTRIBUTES (node->decl)); ! ! cgraph_node *new_node = create_target_clone (node, definition, suffix, ! attributes); ! if (new_node == NULL) return false; + new_node->local.local = false; + XDELETEVEC (suffix); decl2_v = new_node->function_version (); if (decl2_v != NULL) continue; *************** expand_target_clones (struct cgraph_node *** 441,453 **** DECL_ATTRIBUTES (node->decl)); DECL_ATTRIBUTES (node->decl) = attributes; node->local.local = false; ! location_t saved_loc = input_location; ! input_location = DECL_SOURCE_LOCATION (node->decl); ! bool ret ! = targetm.target_option.valid_attribute_p (node->decl, NULL, ! TREE_VALUE (attributes), 0); ! input_location = saved_loc; ! return ret; } static unsigned int --- 444,450 ---- DECL_ATTRIBUTES (node->decl)); DECL_ATTRIBUTES (node->decl) = attributes; node->local.local = false; ! return true; } static unsigned int diff -Nrcpad gcc-8.3.0/gcc/objc/ChangeLog gcc-8.4.0/gcc/objc/ChangeLog *** gcc-8.3.0/gcc/objc/ChangeLog Fri Feb 22 14:20:37 2019 --- gcc-8.4.0/gcc/objc/ChangeLog Wed Mar 4 08:30:30 2020 *************** *** 1,3 **** --- 1,26 ---- + 2020-03-04 Release Manager + + * GCC 8.4.0 released. + + 2019-08-29 Jakub Jelinek + + Backported from mainline + 2019-05-10 Jakub Jelinek + + PR pch/90326 + * config-lang.in (gtfiles): Add c-family/c-format.c. + + 2019-08-28 Iain Sandoe + + Backport from mainline. + 2019-05-18 Iain Sandoe + + * objc/objc-act.h (OCTI_INSTANCE_TYPE, OCTI_INSTANCETYPE_NAME): New. + (objc_global_trees): Add instance type and name. + (INSTANCE_TYPEDEF_NAME): New. + * objc/objc-act.c (synth_module_prologue): Build decls for + objc_instancetype_type and objc_instancetype_name. + 2019-02-22 Release Manager * GCC 8.3.0 released. diff -Nrcpad gcc-8.3.0/gcc/objc/config-lang.in gcc-8.4.0/gcc/objc/config-lang.in *** gcc-8.3.0/gcc/objc/config-lang.in Wed Jan 3 10:03:58 2018 --- gcc-8.4.0/gcc/objc/config-lang.in Wed Mar 4 08:30:00 2020 *************** lang_requires="c" *** 35,38 **** # Order is important. If you change this list, make sure you test # building without C++ as well; that is, remove the gcc/cp directory, # and build with --enable-languages=c,objc. ! gtfiles="\$(srcdir)/objc/objc-map.h \$(srcdir)/c-family/c-objc.h \$(srcdir)/objc/objc-act.h \$(srcdir)/objc/objc-act.c \$(srcdir)/objc/objc-runtime-shared-support.c \$(srcdir)/objc/objc-gnu-runtime-abi-01.c \$(srcdir)/objc/objc-next-runtime-abi-01.c \$(srcdir)/objc/objc-next-runtime-abi-02.c \$(srcdir)/c/c-parser.h \$(srcdir)/c/c-parser.c \$(srcdir)/c/c-tree.h \$(srcdir)/c/c-decl.c \$(srcdir)/c/c-lang.h \$(srcdir)/c/c-objc-common.c \$(srcdir)/c-family/c-common.c \$(srcdir)/c-family/c-common.h \$(srcdir)/c-family/c-cppbuiltin.c \$(srcdir)/c-family/c-pragma.h \$(srcdir)/c-family/c-pragma.c" --- 35,38 ---- # Order is important. If you change this list, make sure you test # building without C++ as well; that is, remove the gcc/cp directory, # and build with --enable-languages=c,objc. ! gtfiles="\$(srcdir)/objc/objc-map.h \$(srcdir)/c-family/c-objc.h \$(srcdir)/objc/objc-act.h \$(srcdir)/objc/objc-act.c \$(srcdir)/objc/objc-runtime-shared-support.c \$(srcdir)/objc/objc-gnu-runtime-abi-01.c \$(srcdir)/objc/objc-next-runtime-abi-01.c \$(srcdir)/objc/objc-next-runtime-abi-02.c \$(srcdir)/c/c-parser.h \$(srcdir)/c/c-parser.c \$(srcdir)/c/c-tree.h \$(srcdir)/c/c-decl.c \$(srcdir)/c/c-lang.h \$(srcdir)/c/c-objc-common.c \$(srcdir)/c-family/c-common.c \$(srcdir)/c-family/c-common.h \$(srcdir)/c-family/c-cppbuiltin.c \$(srcdir)/c-family/c-pragma.h \$(srcdir)/c-family/c-pragma.c \$(srcdir)/c-family/c-format.c" diff -Nrcpad gcc-8.3.0/gcc/objc/objc-act.c gcc-8.4.0/gcc/objc/objc-act.c *** gcc-8.3.0/gcc/objc/objc-act.c Fri Apr 20 12:55:36 2018 --- gcc-8.4.0/gcc/objc/objc-act.c Wed Mar 4 08:30:00 2020 *************** synth_module_prologue (void) *** 2944,2955 **** objc_class_reference = xref_tag (RECORD_TYPE, objc_class_id); objc_object_type = build_pointer_type (objc_object_reference); objc_class_type = build_pointer_type (objc_class_reference); objc_object_name = get_identifier (OBJECT_TYPEDEF_NAME); objc_class_name = get_identifier (CLASS_TYPEDEF_NAME); ! /* Declare the 'id' and 'Class' typedefs. */ type = lang_hooks.decls.pushdecl (build_decl (input_location, TYPE_DECL, objc_object_name, --- 2944,2957 ---- objc_class_reference = xref_tag (RECORD_TYPE, objc_class_id); objc_object_type = build_pointer_type (objc_object_reference); + objc_instancetype_type = build_pointer_type (objc_object_reference); objc_class_type = build_pointer_type (objc_class_reference); objc_object_name = get_identifier (OBJECT_TYPEDEF_NAME); + objc_instancetype_name = get_identifier (INSTANCE_TYPEDEF_NAME); objc_class_name = get_identifier (CLASS_TYPEDEF_NAME); ! /* Declare the 'id', 'instancetype' and 'Class' typedefs. */ type = lang_hooks.decls.pushdecl (build_decl (input_location, TYPE_DECL, objc_object_name, *************** synth_module_prologue (void) *** 2957,2962 **** --- 2959,2970 ---- TREE_NO_WARNING (type) = 1; type = lang_hooks.decls.pushdecl (build_decl (input_location, + TYPE_DECL, + objc_instancetype_name, + objc_instancetype_type)); + TREE_NO_WARNING (type) = 1; + + type = lang_hooks.decls.pushdecl (build_decl (input_location, TYPE_DECL, objc_class_name, objc_class_type)); diff -Nrcpad gcc-8.3.0/gcc/objc/objc-act.h gcc-8.4.0/gcc/objc/objc-act.h *** gcc-8.3.0/gcc/objc/objc-act.h Wed Jan 3 10:03:58 2018 --- gcc-8.4.0/gcc/objc/objc-act.h Wed Mar 4 08:30:00 2020 *************** enum objc_tree_index *** 313,318 **** --- 313,319 ---- OCTI_SUPER_TYPE, OCTI_SEL_TYPE, OCTI_ID_TYPE, + OCTI_INSTANCE_TYPE, OCTI_CLS_TYPE, OCTI_NST_TYPE, OCTI_PROTO_TYPE, *************** enum objc_tree_index *** 368,373 **** --- 369,375 ---- OCTI_OBJ_ID, OCTI_CLS_ID, OCTI_ID_NAME, + OCTI_INSTANCETYPE_NAME, OCTI_CLASS_NAME, OCTI_CNST_STR_ID, OCTI_CNST_STR_TYPE, *************** extern GTY(()) tree objc_global_trees[OC *** 443,448 **** --- 445,451 ---- #define objc_super_type objc_global_trees[OCTI_SUPER_TYPE] #define objc_selector_type objc_global_trees[OCTI_SEL_TYPE] #define objc_object_type objc_global_trees[OCTI_ID_TYPE] + #define objc_instancetype_type objc_global_trees[OCTI_INSTANCE_TYPE] #define objc_class_type objc_global_trees[OCTI_CLS_TYPE] #define objc_instance_type objc_global_trees[OCTI_NST_TYPE] #define objc_protocol_type objc_global_trees[OCTI_PROTO_TYPE] *************** extern GTY(()) tree objc_global_trees[OC *** 570,576 **** #define objc_object_id objc_global_trees[OCTI_OBJ_ID] #define objc_class_id objc_global_trees[OCTI_CLS_ID] ! #define objc_object_name objc_global_trees[OCTI_ID_NAME] #define objc_class_name objc_global_trees[OCTI_CLASS_NAME] /* Constant string classes. */ --- 573,580 ---- #define objc_object_id objc_global_trees[OCTI_OBJ_ID] #define objc_class_id objc_global_trees[OCTI_CLS_ID] ! #define objc_object_name objc_global_trees[OCTI_ID_NAME] ! #define objc_instancetype_name objc_global_trees[OCTI_INSTANCETYPE_NAME] #define objc_class_name objc_global_trees[OCTI_CLASS_NAME] /* Constant string classes. */ *************** extern GTY(()) tree objc_global_trees[OC *** 608,613 **** --- 612,618 ---- /* Reserved tag definitions. */ #define OBJECT_TYPEDEF_NAME "id" + #define INSTANCE_TYPEDEF_NAME "instancetype" #define CLASS_TYPEDEF_NAME "Class" #define TAG_OBJECT "objc_object" diff -Nrcpad gcc-8.3.0/gcc/objcp/ChangeLog gcc-8.4.0/gcc/objcp/ChangeLog *** gcc-8.3.0/gcc/objcp/ChangeLog Fri Feb 22 14:20:37 2019 --- gcc-8.4.0/gcc/objcp/ChangeLog Wed Mar 4 08:30:30 2020 *************** *** 1,3 **** --- 1,15 ---- + 2020-03-04 Release Manager + + * GCC 8.4.0 released. + + 2019-08-29 Jakub Jelinek + + Backported from mainline + 2019-05-10 Jakub Jelinek + + PR pch/90326 + * config-lang.in (gtfiles): Don't add c-family/c-cppbuiltin.c. + 2019-02-22 Release Manager * GCC 8.3.0 released. diff -Nrcpad gcc-8.3.0/gcc/objcp/config-lang.in gcc-8.4.0/gcc/objcp/config-lang.in *** gcc-8.3.0/gcc/objcp/config-lang.in Wed Jan 3 10:03:58 2018 --- gcc-8.4.0/gcc/objcp/config-lang.in Wed Mar 4 08:30:00 2020 *************** gtfiles="$(. $srcdir/cp/config-lang.in ; *** 52,58 **** gtfiles="$gtfiles \ \$(srcdir)/objc/objc-act.h \ \$(srcdir)/objc/objc-map.h \ - \$(srcdir)/c-family/c-cppbuiltin.c \ \$(srcdir)/objc/objc-act.c \ \$(srcdir)/objc/objc-gnu-runtime-abi-01.c \ \$(srcdir)/objc/objc-next-runtime-abi-01.c \ --- 52,57 ---- diff -Nrcpad gcc-8.3.0/gcc/omp-low.c gcc-8.4.0/gcc/omp-low.c *** gcc-8.3.0/gcc/omp-low.c Mon Nov 5 14:07:47 2018 --- gcc-8.4.0/gcc/omp-low.c Wed Mar 4 08:30:00 2020 *************** use_pointer_for_field (tree decl, omp_co *** 404,421 **** omp_context *up; for (up = shared_ctx->outer; up; up = up->outer) ! if (is_taskreg_ctx (up) && maybe_lookup_decl (decl, up)) break; if (up) { tree c; ! for (c = gimple_omp_taskreg_clauses (up->stmt); ! c; c = OMP_CLAUSE_CHAIN (c)) ! if (OMP_CLAUSE_CODE (c) == OMP_CLAUSE_SHARED ! && OMP_CLAUSE_DECL (c) == decl) ! break; if (c) goto maybe_mark_addressable_and_ret; --- 404,433 ---- omp_context *up; for (up = shared_ctx->outer; up; up = up->outer) ! if ((is_taskreg_ctx (up) ! || (gimple_code (up->stmt) == GIMPLE_OMP_TARGET ! && is_gimple_omp_offloaded (up->stmt))) ! && maybe_lookup_decl (decl, up)) break; if (up) { tree c; ! if (gimple_code (up->stmt) == GIMPLE_OMP_TARGET) ! { ! for (c = gimple_omp_target_clauses (up->stmt); ! c; c = OMP_CLAUSE_CHAIN (c)) ! if (OMP_CLAUSE_CODE (c) == OMP_CLAUSE_MAP ! && OMP_CLAUSE_DECL (c) == decl) ! break; ! } ! else ! for (c = gimple_omp_taskreg_clauses (up->stmt); ! c; c = OMP_CLAUSE_CHAIN (c)) ! if (OMP_CLAUSE_CODE (c) == OMP_CLAUSE_SHARED ! && OMP_CLAUSE_DECL (c) == decl) ! break; if (c) goto maybe_mark_addressable_and_ret; *************** new_omp_context (gimple *stmt, omp_conte *** 851,856 **** --- 863,869 ---- ctx->cb.copy_decl = omp_copy_decl; ctx->cb.eh_lp_nr = 0; ctx->cb.transform_call_graph_edges = CB_CGE_MOVE; + ctx->cb.dont_remap_vla_if_no_change = true; ctx->depth = 1; } *************** scan_omp_1_stmt (gimple_stmt_iterator *g *** 3173,3179 **** break; case GIMPLE_OMP_TARGET: ! scan_omp_target (as_a (stmt), ctx); break; case GIMPLE_OMP_TEAMS: --- 3186,3199 ---- break; case GIMPLE_OMP_TARGET: ! if (is_gimple_omp_offloaded (stmt)) ! { ! taskreg_nesting_level++; ! scan_omp_target (as_a (stmt), ctx); ! taskreg_nesting_level--; ! } ! else ! scan_omp_target (as_a (stmt), ctx); break; case GIMPLE_OMP_TEAMS: diff -Nrcpad gcc-8.3.0/gcc/omp-simd-clone.c gcc-8.4.0/gcc/omp-simd-clone.c *** gcc-8.3.0/gcc/omp-simd-clone.c Thu Feb 7 14:45:41 2019 --- gcc-8.4.0/gcc/omp-simd-clone.c Wed Mar 4 08:30:00 2020 *************** ipa_simd_modify_stmt_ops (tree *tp, int *** 868,873 **** --- 868,885 ---- if (tp != orig_tp) { + if (gimple_code (info->stmt) == GIMPLE_PHI + && cand + && TREE_CODE (*orig_tp) == ADDR_EXPR + && TREE_CODE (TREE_OPERAND (*orig_tp, 0)) == PARM_DECL + && cand->alias_ptr_type) + { + gcc_assert (TREE_CODE (cand->alias_ptr_type) == SSA_NAME); + *orig_tp = cand->alias_ptr_type; + info->modified = true; + return NULL_TREE; + } + repl = build_fold_addr_expr (repl); gimple *stmt; if (is_gimple_debug (info->stmt)) *************** ipa_simd_modify_stmt_ops (tree *tp, int *** 884,890 **** stmt = gimple_build_assign (make_ssa_name (TREE_TYPE (repl)), repl); repl = gimple_assign_lhs (stmt); } ! gimple_stmt_iterator gsi = gsi_for_stmt (info->stmt); gsi_insert_before (&gsi, stmt, GSI_SAME_STMT); *orig_tp = repl; } --- 896,913 ---- stmt = gimple_build_assign (make_ssa_name (TREE_TYPE (repl)), repl); repl = gimple_assign_lhs (stmt); } ! gimple_stmt_iterator gsi; ! if (gimple_code (info->stmt) == GIMPLE_PHI) ! { ! gsi = gsi_after_labels (single_succ (ENTRY_BLOCK_PTR_FOR_FN (cfun))); ! /* Cache SSA_NAME for next time. */ ! if (cand ! && TREE_CODE (*orig_tp) == ADDR_EXPR ! && TREE_CODE (TREE_OPERAND (*orig_tp, 0)) == PARM_DECL) ! cand->alias_ptr_type = repl; ! } ! else ! gsi = gsi_for_stmt (info->stmt); gsi_insert_before (&gsi, stmt, GSI_SAME_STMT); *orig_tp = repl; } *************** ipa_simd_modify_function_body (struct cg *** 985,990 **** --- 1008,1038 ---- { gimple_stmt_iterator gsi; + for (gsi = gsi_start_phis (bb); !gsi_end_p (gsi); gsi_next (&gsi)) + { + gphi *phi = as_a (gsi_stmt (gsi)); + int i, n = gimple_phi_num_args (phi); + info.stmt = phi; + struct walk_stmt_info wi; + memset (&wi, 0, sizeof (wi)); + info.modified = false; + wi.info = &info; + for (i = 0; i < n; ++i) + { + int walk_subtrees = 1; + tree arg = gimple_phi_arg_def (phi, i); + tree op = arg; + ipa_simd_modify_stmt_ops (&op, &walk_subtrees, &wi); + if (op != arg) + { + SET_PHI_ARG_DEF (phi, i, op); + gcc_assert (TREE_CODE (op) == SSA_NAME); + if (gimple_phi_arg_edge (phi, i)->flags & EDGE_ABNORMAL) + SSA_NAME_OCCURS_IN_ABNORMAL_PHI (op) = 1; + } + } + } + gsi = gsi_start_bb (bb); while (!gsi_end_p (gsi)) { *************** expand_simd_clones (struct cgraph_node * *** 1661,1674 **** already. */ tree id = simd_clone_mangle (node, clone); if (id == NULL_TREE) ! continue; /* Only when we are sure we want to create the clone actually clone the function (or definitions) or create another extern FUNCTION_DECL (for prototypes without definitions). */ struct cgraph_node *n = simd_clone_create (node); if (n == NULL) ! continue; n->simdclone = clone; clone->origin = node; --- 1709,1730 ---- already. */ tree id = simd_clone_mangle (node, clone); if (id == NULL_TREE) ! { ! if (i == 0) ! clone->nargs += clone->inbranch; ! continue; ! } /* Only when we are sure we want to create the clone actually clone the function (or definitions) or create another extern FUNCTION_DECL (for prototypes without definitions). */ struct cgraph_node *n = simd_clone_create (node); if (n == NULL) ! { ! if (i == 0) ! clone->nargs += clone->inbranch; ! continue; ! } n->simdclone = clone; clone->origin = node; diff -Nrcpad gcc-8.3.0/gcc/optabs.c gcc-8.4.0/gcc/optabs.c *** gcc-8.3.0/gcc/optabs.c Thu Feb 14 07:40:33 2019 --- gcc-8.4.0/gcc/optabs.c Wed Mar 4 08:30:00 2020 *************** expand_vec_cond_expr (tree vec_cond_type *** 5778,5783 **** --- 5778,5802 ---- icode = get_vcond_icode (mode, cmp_op_mode, unsignedp); if (icode == CODE_FOR_nothing) { + if (tcode == LT_EXPR + && op0a == op0 + && TREE_CODE (op0) == VECTOR_CST) + { + /* A VEC_COND_EXPR condition could be folded from EQ_EXPR/NE_EXPR + into a constant when only get_vcond_eq_icode is supported. + Verify < 0 and != 0 behave the same and change it to NE_EXPR. */ + unsigned HOST_WIDE_INT nelts; + if (!VECTOR_CST_NELTS (op0).is_constant (&nelts)) + { + if (VECTOR_CST_STEPPED_P (op0)) + return 0; + nelts = vector_cst_encoded_nelts (op0); + } + for (unsigned int i = 0; i < nelts; ++i) + if (tree_int_cst_sgn (vector_cst_elt (op0, i)) == 1) + return 0; + tcode = NE_EXPR; + } if (tcode == EQ_EXPR || tcode == NE_EXPR) icode = get_vcond_eq_icode (mode, cmp_op_mode); if (icode == CODE_FOR_nothing) diff -Nrcpad gcc-8.3.0/gcc/opts-common.c gcc-8.4.0/gcc/opts-common.c *** gcc-8.3.0/gcc/opts-common.c Wed Jan 3 10:03:58 2018 --- gcc-8.4.0/gcc/opts-common.c Wed Mar 4 08:30:00 2020 *************** decode_cmdline_option (const char **argv *** 463,469 **** extra_args = 0; ! opt_index = find_opt (argv[0] + 1, lang_mask); i = 0; while (opt_index == OPT_SPECIAL_unknown && i < ARRAY_SIZE (option_map)) --- 463,470 ---- extra_args = 0; ! const char *opt_value = argv[0] + 1; ! opt_index = find_opt (opt_value, lang_mask); i = 0; while (opt_index == OPT_SPECIAL_unknown && i < ARRAY_SIZE (option_map)) *************** decode_cmdline_option (const char **argv *** 666,671 **** --- 667,689 ---- /* Check if this is a switch for a different front end. */ if (!option_ok_for_language (option, lang_mask)) errors |= CL_ERR_WRONG_LANG; + else if (strcmp (option->opt_text, "-Werror=") == 0 + && strchr (opt_value, ',') == NULL) + { + /* Verify that -Werror argument is a valid warning + for a language. */ + char *werror_arg = xstrdup (opt_value + 6); + werror_arg[0] = 'W'; + + size_t warning_index = find_opt (werror_arg, lang_mask); + if (warning_index != OPT_SPECIAL_unknown) + { + const struct cl_option *warning_option + = &cl_options[warning_index]; + if (!option_ok_for_language (warning_option, lang_mask)) + errors |= CL_ERR_WRONG_LANG; + } + } /* Convert the argument to lowercase if appropriate. */ if (arg && option->cl_tolower) diff -Nrcpad gcc-8.3.0/gcc/opts-global.c gcc-8.4.0/gcc/opts-global.c *** gcc-8.3.0/gcc/opts-global.c Thu Jan 18 13:17:37 2018 --- gcc-8.4.0/gcc/opts-global.c Wed Mar 4 08:30:00 2020 *************** complain_wrong_lang (const struct cl_dec *** 103,112 **** text, bad_lang); else if (lang_mask == CL_DRIVER) gcc_unreachable (); ! else /* Eventually this should become a hard error IMO. */ warning (0, "command line option %qs is valid for %s but not for %s", text, ok_langs, bad_lang); free (ok_langs); free (bad_lang); --- 103,116 ---- text, bad_lang); else if (lang_mask == CL_DRIVER) gcc_unreachable (); ! else if (ok_langs[0] != '\0') /* Eventually this should become a hard error IMO. */ warning (0, "command line option %qs is valid for %s but not for %s", text, ok_langs, bad_lang); + else + /* Happens for -Werror=warning_name. */ + warning (0, "%<-Werror=%> argument %qs is not valid for %s", + text, bad_lang); free (ok_langs); free (bad_lang); diff -Nrcpad gcc-8.3.0/gcc/opts.c gcc-8.4.0/gcc/opts.c *** gcc-8.3.0/gcc/opts.c Thu Jan 31 10:00:26 2019 --- gcc-8.4.0/gcc/opts.c Wed Mar 4 08:30:00 2020 *************** finish_options (struct gcc_options *opts *** 922,927 **** --- 922,935 ---- "linker plugin"); opts->x_flag_fat_lto_objects = 1; } + + /* -gsplit-dwarf isn't compatible with LTO, see PR88389. */ + if (opts->x_dwarf_split_debug_info) + { + inform (loc, "%<-gsplit-dwarf%> is not supported with LTO," + " disabling"); + opts->x_dwarf_split_debug_info = 0; + } } /* We initialize opts->x_flag_split_stack to -1 so that targets can set a diff -Nrcpad gcc-8.3.0/gcc/output.h gcc-8.4.0/gcc/output.h *** gcc-8.3.0/gcc/output.h Fri Feb 9 05:47:24 2018 --- gcc-8.4.0/gcc/output.h Wed Mar 4 08:30:00 2020 *************** extern void assemble_label (FILE *, cons *** 240,245 **** --- 240,251 ---- addition of an underscore). */ extern void assemble_name_raw (FILE *, const char *); + /* Return NAME that should actually be emitted, looking through + transparent aliases. If NAME refers to an entity that is also + represented as a tree (like a function or variable), mark the entity + as referenced. */ + extern const char *assemble_name_resolve (const char *); + /* Like assemble_name_raw, but should be used when NAME might refer to an entity that is also represented as a tree (like a function or variable). If NAME does refer to such an entity, that entity will diff -Nrcpad gcc-8.3.0/gcc/params.def gcc-8.4.0/gcc/params.def *** gcc-8.3.0/gcc/params.def Mon Feb 19 09:54:09 2018 --- gcc-8.4.0/gcc/params.def Wed Mar 4 08:30:00 2020 *************** DEFPARAM(PARAM_SMS_MIN_SC, *** 387,393 **** DEFPARAM(PARAM_SMS_DFA_HISTORY, "sms-dfa-history", "The number of cycles the swing modulo scheduler considers when checking conflicts using DFA.", ! 0, 0, 0) DEFPARAM(PARAM_SMS_LOOP_AVERAGE_COUNT_THRESHOLD, "sms-loop-average-count-threshold", "A threshold on the average loop count considered by the swing modulo scheduler.", --- 387,393 ---- DEFPARAM(PARAM_SMS_DFA_HISTORY, "sms-dfa-history", "The number of cycles the swing modulo scheduler considers when checking conflicts using DFA.", ! 0, 0, 16) DEFPARAM(PARAM_SMS_LOOP_AVERAGE_COUNT_THRESHOLD, "sms-loop-average-count-threshold", "A threshold on the average loop count considered by the swing modulo scheduler.", *************** DEFPARAM(PARAM_AVOID_FMA_MAX_BITS, *** 1331,1336 **** --- 1331,1341 ---- "Maximum number of bits for which we avoid creating FMAs.", 0, 0, 512) + DEFPARAM(PARAM_LOGICAL_OP_NON_SHORT_CIRCUIT, + "logical-op-non-short-circuit", + "True if a non-short-circuit operation is optimal.", + -1, -1, 1) + /* Local variables: diff -Nrcpad gcc-8.3.0/gcc/passes.c gcc-8.4.0/gcc/passes.c *** gcc-8.3.0/gcc/passes.c Thu Feb 7 14:27:09 2019 --- gcc-8.4.0/gcc/passes.c Wed Mar 4 08:30:00 2020 *************** execute_function_todo (function *fn, voi *** 1944,1950 **** /* Always cleanup the CFG before trying to update SSA. */ if (flags & TODO_cleanup_cfg) { ! cleanup_tree_cfg (); /* When cleanup_tree_cfg merges consecutive blocks, it may perform some simplistic propagation when removing single --- 1944,1950 ---- /* Always cleanup the CFG before trying to update SSA. */ if (flags & TODO_cleanup_cfg) { ! cleanup_tree_cfg (flags & TODO_update_ssa_any); /* When cleanup_tree_cfg merges consecutive blocks, it may perform some simplistic propagation when removing single diff -Nrcpad gcc-8.3.0/gcc/po/ChangeLog gcc-8.4.0/gcc/po/ChangeLog *** gcc-8.3.0/gcc/po/ChangeLog Fri Feb 22 14:20:37 2019 --- gcc-8.4.0/gcc/po/ChangeLog Wed Mar 4 08:30:30 2020 *************** *** 1,3 **** --- 1,7 ---- + 2020-03-04 Release Manager + + * GCC 8.4.0 released. + 2019-02-22 Release Manager * GCC 8.3.0 released. diff -Nrcpad gcc-8.3.0/gcc/postreload.c gcc-8.4.0/gcc/postreload.c *** gcc-8.3.0/gcc/postreload.c Fri Mar 16 21:01:16 2018 --- gcc-8.4.0/gcc/postreload.c Wed Mar 4 08:30:01 2020 *************** reload_combine_recognize_pattern (rtx_in *** 1076,1081 **** --- 1076,1085 ---- struct reg_use *use = reg_state[regno].reg_use + i; if (GET_MODE (*use->usep) != mode) return false; + /* Don't try to adjust (use (REGX)). */ + if (GET_CODE (PATTERN (use->insn)) == USE + && &XEXP (PATTERN (use->insn), 0) == use->usep) + return false; } /* Look for (set (REGX) (CONST_INT)) diff -Nrcpad gcc-8.3.0/gcc/predict.c gcc-8.4.0/gcc/predict.c *** gcc-8.3.0/gcc/predict.c Tue Mar 20 14:14:17 2018 --- gcc-8.4.0/gcc/predict.c Wed Mar 4 08:30:01 2020 *************** compute_function_frequency (void) *** 3740,3751 **** if (profile_status_for_fn (cfun) != PROFILE_READ) { int flags = flags_from_decl_or_type (current_function_decl); ! if ((ENTRY_BLOCK_PTR_FOR_FN (cfun)->count.ipa_p () ! && ENTRY_BLOCK_PTR_FOR_FN (cfun)->count.ipa() == profile_count::zero ()) ! || lookup_attribute ("cold", DECL_ATTRIBUTES (current_function_decl)) ! != NULL) { ! node->frequency = NODE_FREQUENCY_UNLIKELY_EXECUTED; warn_function_cold (current_function_decl); } else if (lookup_attribute ("hot", DECL_ATTRIBUTES (current_function_decl)) --- 3740,3753 ---- if (profile_status_for_fn (cfun) != PROFILE_READ) { int flags = flags_from_decl_or_type (current_function_decl); ! if (lookup_attribute ("cold", DECL_ATTRIBUTES (current_function_decl)) ! != NULL) ! node->frequency = NODE_FREQUENCY_UNLIKELY_EXECUTED; ! else if (ENTRY_BLOCK_PTR_FOR_FN (cfun)->count.ipa_p () ! && (ENTRY_BLOCK_PTR_FOR_FN (cfun)->count.ipa () ! == profile_count::zero ())) { ! node->frequency = NODE_FREQUENCY_UNLIKELY_EXECUTED; warn_function_cold (current_function_decl); } else if (lookup_attribute ("hot", DECL_ATTRIBUTES (current_function_decl)) diff -Nrcpad gcc-8.3.0/gcc/recog.c gcc-8.4.0/gcc/recog.c *** gcc-8.3.0/gcc/recog.c Fri Mar 9 18:50:56 2018 --- gcc-8.4.0/gcc/recog.c Wed Mar 4 08:30:01 2020 *************** general_operand (rtx op, machine_mode mo *** 1070,1075 **** --- 1070,1080 ---- int address_operand (rtx op, machine_mode mode) { + /* Wrong mode for an address expr. */ + if (GET_MODE (op) != VOIDmode + && ! SCALAR_INT_MODE_P (GET_MODE (op))) + return false; + return memory_address_p (mode, op); } *************** constrain_operands (int strict, alternat *** 2695,2704 **** /* p is used for address_operands. When we are called by gen_reload, no one will have checked that the address is strictly valid, i.e., that all pseudos requiring hard regs ! have gotten them. */ ! if (strict <= 0 ! || (strict_memory_address_p (recog_data.operand_mode[opno], ! op))) win = 1; break; --- 2700,2712 ---- /* p is used for address_operands. When we are called by gen_reload, no one will have checked that the address is strictly valid, i.e., that all pseudos requiring hard regs ! have gotten them. We also want to make sure we have a ! valid mode. */ ! if ((GET_MODE (op) == VOIDmode ! || SCALAR_INT_MODE_P (GET_MODE (op))) ! && (strict <= 0 ! || (strict_memory_address_p ! (recog_data.operand_mode[opno], op)))) win = 1; break; diff -Nrcpad gcc-8.3.0/gcc/resource.c gcc-8.4.0/gcc/resource.c *** gcc-8.3.0/gcc/resource.c Fri Mar 2 23:47:56 2018 --- gcc-8.4.0/gcc/resource.c Wed Mar 4 08:30:01 2020 *************** mark_target_live_regs (rtx_insn *insns, *** 969,977 **** --- 969,981 ---- { regset regs_live = DF_LR_IN (BASIC_BLOCK_FOR_FN (cfun, b)); rtx_insn *start_insn, *stop_insn; + df_ref def; /* Compute hard regs live at start of block. */ REG_SET_TO_HARD_REG_SET (current_live_regs, regs_live); + FOR_EACH_ARTIFICIAL_DEF (def, b) + if (DF_REF_FLAGS (def) & DF_REF_AT_TOP) + SET_HARD_REG_BIT (current_live_regs, DF_REF_REGNO (def)); /* Get starting and ending insn, handling the case where each might be a SEQUENCE. */ diff -Nrcpad gcc-8.3.0/gcc/rtl.c gcc-8.4.0/gcc/rtl.c *** gcc-8.3.0/gcc/rtl.c Wed Jan 3 10:03:58 2018 --- gcc-8.4.0/gcc/rtl.c Wed Mar 4 08:30:01 2020 *************** classify_insn (rtx x) *** 731,736 **** --- 731,738 ---- 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) { if (GET_CODE (SET_DEST (x)) == PC) *************** classify_insn (rtx x) *** 757,762 **** --- 759,767 ---- return CALL_INSN; 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 if (GET_CODE (x) == MATCH_OPERAND diff -Nrcpad gcc-8.3.0/gcc/rtl.h gcc-8.4.0/gcc/rtl.h *** gcc-8.3.0/gcc/rtl.h Sun Jan 27 17:36:30 2019 --- gcc-8.4.0/gcc/rtl.h Wed Mar 4 08:30:01 2020 *************** word_register_operation_p (const_rtx x) *** 4355,4360 **** --- 4355,4361 ---- { switch (GET_CODE (x)) { + case CONST_INT: case ROTATE: case ROTATERT: case SIGN_EXTRACT: diff -Nrcpad gcc-8.3.0/gcc/rtlanal.c gcc-8.4.0/gcc/rtlanal.c *** gcc-8.3.0/gcc/rtlanal.c Tue Nov 20 09:03:03 2018 --- gcc-8.4.0/gcc/rtlanal.c Wed Mar 4 08:30:01 2020 *************** get_initial_register_offset (int from, i *** 358,367 **** if (to == from) return 0; ! /* It is not safe to call INITIAL_ELIMINATION_OFFSET ! before the reload pass. We need to give at least ! an estimation for the resulting frame size. */ ! if (! reload_completed) { offset1 = crtl->outgoing_args_size + get_frame_size (); #if !STACK_GROWS_DOWNWARD --- 358,367 ---- if (to == from) return 0; ! /* It is not safe to call INITIAL_ELIMINATION_OFFSET before the epilogue ! is completed, but we need to give at least an estimate for the stack ! pointer based on the frame size. */ ! if (!epilogue_completed) { offset1 = crtl->outgoing_args_size + get_frame_size (); #if !STACK_GROWS_DOWNWARD *************** nonzero_bits1 (const_rtx x, scalar_int_m *** 4756,4762 **** || ((extend_op = load_extend_op (inner_mode)) == SIGN_EXTEND ? val_signbit_known_set_p (inner_mode, nonzero) : extend_op != ZERO_EXTEND) ! || (!MEM_P (SUBREG_REG (x)) && !REG_P (SUBREG_REG (x)))) && xmode_width > inner_width) nonzero |= (GET_MODE_MASK (GET_MODE (x)) & ~GET_MODE_MASK (inner_mode)); --- 4756,4762 ---- || ((extend_op = load_extend_op (inner_mode)) == SIGN_EXTEND ? val_signbit_known_set_p (inner_mode, nonzero) : extend_op != ZERO_EXTEND) ! || !MEM_P (SUBREG_REG (x))) && xmode_width > inner_width) nonzero |= (GET_MODE_MASK (GET_MODE (x)) & ~GET_MODE_MASK (inner_mode)); diff -Nrcpad gcc-8.3.0/gcc/simplify-rtx.c gcc-8.4.0/gcc/simplify-rtx.c *** gcc-8.3.0/gcc/simplify-rtx.c Fri Apr 13 19:39:11 2018 --- gcc-8.4.0/gcc/simplify-rtx.c Wed Mar 4 08:30:01 2020 *************** simplify_binary_operation_1 (enum rtx_co *** 3493,3501 **** { rtx tmp = gen_int_shift_amount (inner_mode, INTVAL (XEXP (SUBREG_REG (op0), 1)) + INTVAL (op1)); ! tmp = simplify_gen_binary (code, inner_mode, ! XEXP (SUBREG_REG (op0), 0), ! tmp); return lowpart_subreg (int_mode, tmp, inner_mode); } --- 3493,3513 ---- { rtx tmp = gen_int_shift_amount (inner_mode, INTVAL (XEXP (SUBREG_REG (op0), 1)) + INTVAL (op1)); ! ! /* Combine would usually zero out the value when combining two ! local shifts and the range becomes larger or equal to the mode. ! However since we fold away one of the shifts here combine won't ! see it so we should immediately zero the result if it's out of ! range. */ ! if (code == LSHIFTRT ! && INTVAL (tmp) >= GET_MODE_BITSIZE (inner_mode)) ! tmp = const0_rtx; ! else ! tmp = simplify_gen_binary (code, ! inner_mode, ! XEXP (SUBREG_REG (op0), 0), ! tmp); ! return lowpart_subreg (int_mode, tmp, inner_mode); } diff -Nrcpad gcc-8.3.0/gcc/symtab.c gcc-8.4.0/gcc/symtab.c *** gcc-8.3.0/gcc/symtab.c Mon Jun 11 18:56:56 2018 --- gcc-8.4.0/gcc/symtab.c Wed Mar 4 08:30:01 2020 *************** symtab_node::set_section (symtab_node *n *** 1546,1552 **** void symtab_node::set_section (const char *section) { ! gcc_assert (!this->alias); call_for_symbol_and_aliases (symtab_node::set_section, const_cast(section), true); } --- 1546,1552 ---- void symtab_node::set_section (const char *section) { ! gcc_assert (!this->alias || !this->analyzed); call_for_symbol_and_aliases (symtab_node::set_section, const_cast(section), true); } *************** symtab_node::nonzero_address () *** 1948,1969 **** bind to NULL. This is on by default on embedded targets only. Otherwise all non-WEAK symbols must be defined and thus non-NULL or ! linking fails. Important case of WEAK we want to do well are comdats. ! Those are handled by later check for definition. When parsing, beware the cases when WEAK attribute is added later. */ ! if (!DECL_WEAK (decl) && flag_delete_null_pointer_checks) { refuse_visibility_changes = true; return true; } ! /* If target is defined and either comdat or not extern, we know it will be output and thus it will bind to non-NULL. Play safe for flag_delete_null_pointer_checks where weak definition may be re-defined by NULL. */ ! if (definition && (!DECL_EXTERNAL (decl) || DECL_COMDAT (decl)) && (flag_delete_null_pointer_checks || !DECL_WEAK (decl))) { if (!DECL_WEAK (decl)) --- 1948,1969 ---- bind to NULL. This is on by default on embedded targets only. Otherwise all non-WEAK symbols must be defined and thus non-NULL or ! linking fails. Important case of WEAK we want to do well are comdats, ! which also must be defined somewhere. When parsing, beware the cases when WEAK attribute is added later. */ ! if ((!DECL_WEAK (decl) || DECL_COMDAT (decl)) && flag_delete_null_pointer_checks) { refuse_visibility_changes = true; return true; } ! /* If target is defined and not extern, we know it will be output and thus it will bind to non-NULL. Play safe for flag_delete_null_pointer_checks where weak definition may be re-defined by NULL. */ ! if (definition && !DECL_EXTERNAL (decl) && (flag_delete_null_pointer_checks || !DECL_WEAK (decl))) { if (!DECL_WEAK (decl)) diff -Nrcpad gcc-8.3.0/gcc/testsuite/ChangeLog gcc-8.4.0/gcc/testsuite/ChangeLog *** gcc-8.3.0/gcc/testsuite/ChangeLog Fri Feb 22 14:20:37 2019 --- gcc-8.4.0/gcc/testsuite/ChangeLog Wed Mar 4 08:30:30 2020 *************** *** 1,3 **** --- 1,2648 ---- + 2020-03-04 Release Manager + + * GCC 8.4.0 released. + + 2020-02-29 Peter Bergner + + Revert + 2020-02-20 Peter Bergner + + PR target/93658 + * gcc.target/powerpc/pr93658.c: New test. + * gcc.target/powerpc/vsx-vector-6-le.c: Update fragile insn count. + + 2020-02-26 Jakub Jelinek + + PR tree-optimization/93820 + * gcc.dg/pr93820.c: New test. + + 2020-02-26 Jakub Jelinek + + PR c++/93905 + * g++.dg/cpp0x/pr93905.C: New test. + + 2020-02-26 Marek Polacek + + PR c++/90998 - ICE with copy elision in init by ctor and -Wconversion. + * g++.dg/cpp0x/overload-conv-4.C: New test. + + 2020-02-25 Alexandre Oliva + + PR c++/86747 + * g++.dg/pr86747.C: New. + + 2019-02-05 Alexandre Oliva + + PR c++/87770 + * g++.dg/pr87770.C: New. + + 2020-02-25 Marek Polacek + Jakub Jelinek + + PR c++/92745 + * g++.dg/cpp0x/initlist118.C: New test. + * g++.dg/cpp0x/initlist118.C: Add -Wno-psabi -w to dg-options. + + 2020-02-25 Jakub Jelinek + + PR rtl-optimization/93908 + * gcc.c-torture/execute/pr93908.c: New test. + + 2019-02-25 Eric Botcazou + + * gnat.dg/lto24.adb: New test. + * gnat.dg/lto24_pkg1.ads: New helper. + * gnat.dg/lto24_pkg2.ad[sb]: Likewise. + + 2020-02-25 Richard Sandiford + + Backport from mainline + 2020-02-19 Richard Sandiford + + PR tree-optimization/93767 + * gcc.dg/vect/pr93767.c: New test. + + 2020-02-25 Richard Sandiford + + PR tree-optimization/93434 + * gcc.c-torture/execute/pr93434.c: New test. + + 2020-02-25 Richard Sandiford + + PR middle-end/92768 + * gcc.dg/pr92768.c: New test. + + 2020-02-25 Richard Sandiford + + PR tree-optimization/92420 + * gcc.dg/vect/pr92420.c: New test. + + 2020-02-25 Richard Sandiford + + PR middle-end/90313 + * g++.dg/torture/pr90313.cc: New test. + + 2020-02-23 Peter Bergner + + Backport from master + 2020-02-20 Peter Bergner + + PR target/93658 + * gcc.target/powerpc/pr93658.c: New test. + * gcc.target/powerpc/vsx-vector-6-le.c: Update fragile insn count. + + 2020-02-20 H.J. Lu + + Backport from master + 2020-02-13 H.J. Lu + + PR target/93656 + * gcc.target/i386/pr93656.c: New test. + + 2020-02-19 Mark Eggleston + + * typebound_call_22.d03 : Remove xfail clause. + + 2020-02-19 Mark Eggleston + + Backported from mainline + 2020-02-18 Mark Eggleston + + PR fortran/93714 + * gfortran.dg/char_pointer_assign_6.f90: Look for no target + message instead of length mismatch. + * gfortran.dg/pr93714_1.f90 + * gfortran.dg/pr93714_2.f90 + + 2020-02-18 Hongtao Liu + + * g++.dg/other/i386-2.C: Add -mavx512vbmi2. + * g++.dg/other/i386-3.C: Ditto. + + 2020-02-17 Richard Biener + + Backport from mainline + 2020-01-22 Richard Biener + + PR tree-optimization/93381 + * gcc.dg/torture/pr93381.c: New testcase. + + 2020-02-17 Richard Biener + + Backport from mainline + 2020-01-28 Richard Biener + + PR tree-optimization/93439 + * gfortran.dg/graphite/pr93439.f90: New testcase. + + 2020-02-17 Richard Biener + + Backport from mainline + 2020-01-09 Richard Biener + + PR middle-end/93054 + * gcc.dg/pr93054.c: New testcase. + + 2020-02-17 Richard Biener + + Backport from mainline + 2020-01-20 Richard Biener + + PR debug/92763 + * g++.dg/debug/pr92763.C: New testcase. + + 2020-02-17 Richard Biener + + Backport from mainline + 2019-11-29 Richard Biener + + PR tree-optimization/92704 + * gcc.dg/torture/pr92704.c: New testcase. + + 2020-02-14 Hongtao Liu + + * gcc.target/i386/avx512vbmi2-vpshld-1.c: New test. + * gcc.target/i386/avx512vbmi2-vpshrd-1.c: Ditto. + * gcc.target/i386/sse-12.c: Add -mavx512vbmi2. + * gcc.target/i386/sse-13.c: Ditto. + * gcc.target/i386/sse-14.c: Add -mavx512vbmi2 and tests. + * gcc.target/i386/sse-22.c: Ditto. + + 2020-02-15 Jakub Jelinek + + PR tree-optimization/93744 + * gcc.c-torture/execute/pr93744-1.c: New test. + * gcc.c-torture/execute/pr93744-2.c: New test. + * gcc.c-torture/execute/pr93744-3.c: New test. + + 2020-02-14 Jakub Jelinek + + PR c++/61414 + * g++.dg/cpp0x/enum39.C: New test. + + 2020-02-14 Jakub Jelinek + + Backported from mainline + 2020-02-13 Jakub Jelinek + + PR c/93576 + * gcc.dg/pr93576.c: New test. + + PR target/93696 + * gcc.target/i386/pr93696-1.c: New test. + * gcc.target/i386/pr93696-2.c: New test. + * gcc.target/i386/avx512bitalg-vpopcntw-1.c (TEST): Fix argument order + of _mm*_mask_popcnt_*. + * gcc.target/i386/avx512vpopcntdq-vpopcntq-1.c (TEST): Likewise. + * gcc.target/i386/avx512vpopcntdq-vpopcntd-1.c (TEST): Likewise. + * gcc.target/i386/avx512bitalg-vpopcntb-1.c (TEST): Likewise. + * gcc.target/i386/avx512bitalg-vpopcntb.c (foo): Likewise. + * gcc.target/i386/avx512bitalg-vpopcntbvl.c (foo): Likewise. + * gcc.target/i386/avx512vpopcntdq-vpopcntd.c (foo): Likewise. + * gcc.target/i386/avx512bitalg-vpopcntwvl.c (foo): Likewise. + * gcc.target/i386/avx512bitalg-vpopcntw.c (foo): Likewise. + * gcc.target/i386/avx512vpopcntdq-vpopcntq.c (foo): Likewise. + + PR target/93673 + * gcc.target/i386/avx512f-pr93673.c: New test. + * gcc.target/i386/avx512dq-pr93673.c: New test. + * gcc.target/i386/avx512bw-pr93673.c: New test. + + 2020-02-12 Jakub Jelinek + + PR target/93670 + * gcc.target/i386/avx512vl-pr93670.c: New test. + + 2020-02-10 Jakub Jelinek + + PR target/93637 + * gcc.target/i386/avx-pr93637.c: New test. + + 2020-02-08 UroÅ¡ Bizjak + Jakub Jelinek + + PR target/65782 + * gcc.target/i386/pr65782.c: New test. + + 2020-02-05 Jakub Jelinek + + PR middle-end/93555 + * c-c++-common/gomp/pr93555-1.c: New test. + * c-c++-common/gomp/pr93555-2.c: New test. + * gfortran.dg/gomp/pr93555.f90: New test. + + 2020-01-30 Jakub Jelinek + + PR middle-end/93505 + * gcc.c-torture/compile/pr93505.c: New test. + + 2020-01-29 Jakub Jelinek + + PR fortran/93463 + * gfortran.dg/goacc/pr93463.f90: New test. + + 2020-01-23 Jakub Jelinek + + PR rtl-optimization/93402 + * gcc.c-torture/execute/pr93402.c: New test. + + 2020-01-22 Jakub Jelinek + + PR target/91298 + * gcc.target/i386/pr91298-1.c: New test. + * gcc.target/i386/pr91298-2.c: New test. + + * gfortran.dg/gomp/target-parallel1.f90: New test. + * gfortran.dg/goacc/pr93329.f90: Enable commented out target parallel + test. + + PR fortran/93329 + * gfortran.dg/goacc/pr93329.f90: New test. + + 2020-01-21 Jakub Jelinek + + PR target/93333 + * gcc.c-torture/compile/pr93333.c: New test. + + PR target/93073 + * gcc.target/powerpc/pr93073.c: New test. + + 2020-01-17 Jakub Jelinek + + PR c++/93228 + * g++.dg/cpp1y/attr-deprecated-3.C: New test. + + 2020-01-09 Jakub Jelinek + + PR inline-asm/93202 + * gcc.target/riscv/pr93202.c: New test. + + 2020-01-03 Jakub Jelinek + + PR rtl-optimization/93088 + * gcc.target/i386/pr93088.c: New test. + + 2020-01-02 Jakub Jelinek + + PR ipa/93087 + * c-c++-common/cold-1.c: New test. + + 2019-12-26 Jakub Jelinek + + PR c++/92438 + * g++.dg/ext/attrib61.C: New test. + + 2019-12-20 Jakub Jelinek + + PR c++/92992 + * g++.dg/cpp0x/nullptr45.C: New test. + + 2019-12-19 Jakub Jelinek + + PR fortran/92977 + * gfortran.dg/gomp/pr92977.f90: New test. + + 2019-12-14 Jakub Jelinek + + PR tree-optimization/92930 + * gcc.dg/tree-ssa/pr92930.c: New test. + + 2019-12-12 Jakub Jelinek + + PR target/92904 + * gcc.c-torture/execute/pr92904.c: New test. + + 2019-12-11 Jakub Jelinek + + PR target/92723 + * gcc.dg/vect/pr92723.c: New test. + + 2019-12-05 Jakub Jelinek + + PR fortran/92781 + * gfortran.dg/pr92781.f90: New test. + + 2019-12-03 Jakub Jelinek + + PR c++/92732 + * g++.dg/cpp2a/bitfield3.C: Don't expect narrowing conversion + warnings. + * g++.dg/cpp2a/bitfield4.C: New test. + + 2019-11-29 Jakub Jelinek + + PR c++/60228 + * g++.dg/gomp/openmp-simd-2.C: Don't expect bodies for + DECL_OMP_DECLARE_REDUCTION_P functions. + + 2019-11-27 Jakub Jelinek + + PR fortran/91944 + * gfortran.dg/spread_size_limit_2.f90: New test. + + PR c++/92524 + * g++.dg/cpp0x/pr92524.C: New test. + + 2019-11-26 Jakub Jelinek + + PR c++/92648 + * g++.dg/cpp0x/gen-attrs-71.C: New test. + + PR c++/61414 + * g++.dg/cpp0x/enum23.C: Remove xfail. + * g++.dg/cpp0x/enum28.C: New test. + + 2019-11-23 Jakub Jelinek + + PR target/92615 + * gcc.target/i386/pr92615.c: New test. + + 2019-11-21 Jakub Jelinek + + PR c++/90842 + * g++.dg/cpp1y/lambda-generic-90842.C: New test. + + 2020-01-20 Richard Biener + + Backport from mainline + PR middle-end/93246 + * g++.dg/torture/pr93246.C: New testcase. + + 2020-02-11 Tamar Christina + + Backport from mainline + 2020-01-31 Tamar Christina + Jakub Jelinek + + PR rtl-optimization/91838 + * g++.dg/opt/pr91838.C: New test. + + 2020-01-23 Thomas Schwinge + + Backport: + 2019-04-16 Dominique d'Humieres + + * g++.dg/lto/pr89358_0.C: Replace dg-* with dg-lto-*. + + 2020-01-22 Joseph Myers + + Backport from mainline: + 2020-01-22 Joseph Myers + + PR c/93348 + * gcc.c-torture/compile/pr93348-1.c: New test. + + 2020-01-15 Joseph Myers + + Backport from mainline: + 2020-01-15 Joseph Myers + + PR c/93072 + * gcc.dg/inline-42.c, gcc.dg/inline-43.c: New tests. + + 2020-01-15 Iain Sandoe + + Backport from mainline. + 2020-01-05 Iain Sandoe + + * gcc.dg/darwin-version-1.c: Adjust test to use different + options for Darwin4-9 and Darwin10+. + + 2020-01-15 Martin Liska + + Backport from mainline + 2019-04-14 Jan Hubicka + + PR lto/89358 + * g++.dg/lto/pr89358_0.C: New testcase. + * g++.dg/lto/pr89358_1.C: New testcase. + + 2020-01-14 Joseph Myers + + Backport from mainline: + 2020-01-13 Joseph Myers + + PR c/93241 + * gcc.dg/c11-static-assert-10.c, gcc.dg/c99-const-expr-15.c: New + tests. + + 2020-01-13 Joseph Myers + + Backport from mainline: + 2019-12-09 Joseph Myers + + PR middle-end/91226 + * gcc.dg/dfp/bid-non-canonical-d128-1.c, + gcc.dg/dfp/bid-non-canonical-d128-2.c, + gcc.dg/dfp/bid-non-canonical-d128-3.c, + gcc.dg/dfp/bid-non-canonical-d128-4.c, + gcc.dg/dfp/bid-non-canonical-d32-1.c, + gcc.dg/dfp/bid-non-canonical-d32-2.c, + gcc.dg/dfp/bid-non-canonical-d64-1.c, + gcc.dg/dfp/bid-non-canonical-d64-2.c: New tests. + + 2020-01-10 Martin Jambor + + Backport from mainline + 2019-12-17 Martin Jambor + + PR ipa/92971 + * gcc.dg/ipa/ipcp-agg-12.c: New test. + + 2020-01-10 Tobias Burnus + + Backported from mainline + 2020-01-09 Tobias Burnus + + PR fortran/84135 + * gfortran.dg/coarray/codimension_3.f90: New. + + 2019-12-30 Thomas Koenig + + Backport from trunk + PR fortran/92961 + * gfortran.dg/arith_divide_2.f90: New test. + + 2019-12-20 Roman Zhuykov + + * gcc.dg/pr92951-1.c: Rename to ... + * gcc.dg/pr92591-1.c: ... this. + * gcc.dg/pr92951-2.c: Rename to ... + * gcc.dg/pr92591-2.c: ... this. + + 2019-12-20 Roman Zhuykov + + Backport from mainline + 2019-12-13 Roman Zhuykov + + PR rtl-optimization/92591 + * gcc.dg/pr92951-1.c: New test. + * gcc.dg/pr92951-2.c: New test. + + 2019-12-17 Andreas Krebbel + + Backport from mainline + 2019-12-16 Andreas Krebbel + + PR target/92950 + * gcc.target/s390/vector/pr92950.c: New test. + + 2019-11-29 Harald Anlauf + + Backport from mainline + PR fortran/92629 + * gfortran.dg/pr92629.f90: New testcase. + + 2019-11-29 Tobias Burnus + + Backport from mainline + 2019-11-29 Tobias Burnus + + PR ipa/84963 + * gfortran.dg/goacc/pr84963.f90: Use dg-additional-options not + dg-options as otherwise -fopenacc is not used. + + 2019-11-26 Jerry DeLisle + + Backport from trunk + PR fortran/92100 + gfortran.dg/streamio_18.f90: New test. + + 2019-11-25 Thomas Koenig + Harald Anlauf + + Backport from trunk + PR fortran/92569 + * gfortran.dg/eof_6.f90: New test. + + 2019-11-21 Jakub Jelinek + + PR tree-optimization/91355 + * g++.dg/torture/pr91355.C: New test. + + Backported from mainline + 2019-11-20 Jakub Jelinek + + PR middle-end/90840 + * gcc.c-torture/compile/pr90840.c: New test. + + PR target/90867 + * gcc.target/i386/pr90867.c: New test. + + PR c/90898 + * gcc.dg/pr90898.c: New test. + + 2019-11-19 Jakub Jelinek + + PR middle-end/91450 + * gcc.c-torture/execute/pr91450-1.c: New test. + * gcc.c-torture/execute/pr91450-2.c: New test. + + 2019-11-08 Jakub Jelinek + + PR c++/92384 + * g++.dg/torture/pr92384.C: New test. + + 2019-10-31 Jakub Jelinek + + PR preprocessor/92296 + * c-c++-common/cpp/pr92296-1.c: New test. + * c-c++-common/cpp/pr92296-2.c: New test. + + 2019-10-29 Jakub Jelinek + + PR c++/92201 + * g++.dg/other/pr92201.C: New test. + + 2019-10-17 Jakub Jelinek + + PR tree-optimization/92056 + * gcc.c-torture/compile/pr92056.c: New test. + + 2019-10-04 Jakub Jelinek + + PR c++/91974 + * g++.dg/cpp1z/eval-order5.C: New test. + + 2019-09-07 Jakub Jelinek + + PR tree-optimization/91665 + * gcc.dg/vect/pr91665.c: New test. + + 2019-09-05 Jakub Jelinek + + PR middle-end/91001 + PR middle-end/91105 + PR middle-end/91106 + * gcc.c-torture/compile/pr91001.c: New test. + + 2019-09-01 Jakub Jelinek + + PR middle-end/91623 + * gcc.target/i386/pr91623.c: New test. + + 2019-08-09 Jakub Jelinek + + PR c/91401 + * c-c++-common/gomp/pr91401-1.c: New test. + * c-c++-common/gomp/pr91401-2.c: New test. + + 2019-11-20 Peter Bergner + + Backport from mainline + 2019-11-13 David Edelsohn + + * gcc.target/powerpc/pr92090.c: Limit -mbig to powerpc64le-*-*. + * gcc.target/powerpc/pr92090-2.c: Likewise. + + 2019-11-07 Peter Bergner + + PR other/92090 + * gcc.target/powerpc/pr92090-2.c: New test. + + 2019-11-07 Peter Bergner + + PR other/92090 + * gcc.target/powerpc/pr92090.c: New test. + + 2019-11-08 Eric Botcazou + + * gcc.c-torture/compile/20191108-1.c: New test. + * gcc.target/sparc/overflow-1.c: Add -fno-pie to the options. + * gcc.target/sparc/overflow-2.c: Likewise. + * gcc.target/sparc/overflow-3.c: Likewise. + * gcc.target/sparc/overflow-4.c: Likewise. + * gcc.target/sparc/overflow-5.c: Likewise. + + 2019-11-05 Iain Sandoe + + Backport from mainline. + 2019-06-20 Iain Sandoe + + * obj-c++.dg/stubify-1.mm: Adjust options and scan-asm checks. + * obj-c++.dg/stubify-2.mm: Likewise. + * objc.dg/stubify-1.m: Likewise. + * objc.dg/stubify-2.m: Likewise. + + 2019-11-03 Iain Sandoe + + PR c++/79274 + * g++.dg/tls/pr77285-2.C: XFAIL test for Darwin. + + 2019-11-02 Iain Sandoe + + Backport from mainline + 2019-06-13 Iain Sandoe + + * gcc.dg/pr90760.c: Require alias support. + + 2019-11-01 Delia Burduv + + Backport from trunk + 2019-02-20 Andre Vieira + + PR target/86487 + * gcc.target/arm/pr86487.c: New. + + 2019-10-31 Iain Sandoe + + Backport from mainline. + 2019-10-22 Iain Sandoe + + * gcc.dg/Wnonnull.c: Provide prototypes for strlen and memcpy. + Use __SIZE_TYPE__ instead of size_t. + + Backport from mainline. + 2019-10-19 Iain Sandoe + + * gcc.dg/Wnonnull.c: Add attributed function declarations for + memcpy and strlen for Darwin. + + 2019-10-31 Iain Sandoe + + Backport from mainline. + 2019-10-13 Iain Sandoe + + * gcc.target/i386/indirect-thunk-1.c: Allow 'l' or 'L' in + indirection label prefix, for Darwin. + * gcc.target/i386/indirect-thunk-2.c: Likewise. + * gcc.target/i386/indirect-thunk-3.c: Likewise. + * gcc.target/i386/indirect-thunk-4.c: Likewise. + * gcc.target/i386/indirect-thunk-attr-1.c: Likewise. + * gcc.target/i386/indirect-thunk-attr-2.c: Likewise. + * gcc.target/i386/indirect-thunk-attr-3.c: Likewise. + * gcc.target/i386/indirect-thunk-attr-4.c: Likewise. + * gcc.target/i386/indirect-thunk-attr-5.c: Likewise. + * gcc.target/i386/indirect-thunk-attr-6.c: Likewise. + * gcc.target/i386/indirect-thunk-extern-1.c: Likewise. + * gcc.target/i386/indirect-thunk-extern-2.c: Likewise. + * gcc.target/i386/indirect-thunk-extern-3.c: Likewise. + * gcc.target/i386/indirect-thunk-extern-4.c: Likewise. + * gcc.target/i386/indirect-thunk-inline-1.c: Likewise. + * gcc.target/i386/indirect-thunk-inline-2.c: Likewise. + * gcc.target/i386/indirect-thunk-inline-3.c: Likewise. + * gcc.target/i386/indirect-thunk-inline-4.c: Likewise. + * gcc.target/i386/pr32219-2.c: Likewise. + * gcc.target/i386/pr32219-3.c: Likewise. + * gcc.target/i386/pr32219-4.c: Likewise. + * gcc.target/i386/pr32219-7.c: Likewise. + * gcc.target/i386/pr32219-8.c: Likewise. + * gcc.target/i386/ret-thunk-14.c: Likewise. + * gcc.target/i386/ret-thunk-15.c: Likewise. + * gcc.target/i386/ret-thunk-9.c: Likewise. + + 2019-10-31 Iain Sandoe + + Backport from mainline. + 2019-08-13 Iain Sandoe + + * obj-c++.dg/stubify-1.mm: Rename symbol stub option. + * obj-c++.dg/stubify-2.mm: Likewise. + * objc.dg/stubify-1.m: Likewise. + * objc.dg/stubify-2.m: Likewise. + + 2019-10-31 Iain Sandoe + + Backport from mainline. + 2019-05-15 Iain Sandoe + + * lib/target-supports.exp + (check_effective_target_powerpc_p8vector_ok): No support for Darwin. + (check_effective_target_powerpc_p9vector_ok): Likewise. + (check_effective_target_powerpc_float128_sw_ok): Likewise. + (check_effective_target_powerpc_float128_hw_ok): Likewise. + (check_effective_target_powerpc_vsx_ok): Likewise. + * gcc.target/powerpc/bfp/bfp.exp: Don't try to run this for Darwin. + * gcc.target/powerpc/dfp/dfp.exp: Likewise. + + 2019-10-30 Dragan Mladjenovic + + Backport from mainline + 2019-07-09 Dragan Mladjenovic + + * gcc.target/mips/cfgcleanup-jalr1.c: New test. + * gcc.target/mips/cfgcleanup-jalr2.c: New test. + * gcc.target/mips/cfgcleanup-jalr3.c: New test. + + 2019-10-28 Iain Sandoe + + * gcc.c-torture/compile/pr72802.c: Skip for Darwin. + + 2019-10-28 Jiufu Guo + + Backport from mainline + PR target/70010 + * gcc.target/powerpc/pr70010.c: Add -Wno-psabi and -mvsx. + + 2019-10-28 Peter Bergner + Jiufu Guo + + PR target/70010 + * gcc.target/powerpc/pr70010.c: New test. + * gcc.target/powerpc/pr70010-1.c: New test. + * gcc.target/powerpc/pr70010-3.c: New test. + * gcc.target/powerpc/pr70010-4.c: New test. + + 2019-10-27 Paul Thomas + + Backport from mainline + PR fortran/86248 + * gfortran.dg/char_result_19.f90 : New test. + * gfortran.dg/char_result_mod_19.f90 : Module for the new test. + + 2019-10-25 Richard Earnshaw + + Backport from mainline + 2019-05-08 Mihail Ionescu + Richard Earnshaw + PR target/88167 + * gcc.target/arm/pr88167-1.c: New test. + * gcc.target/arm/pr88167-2.c: New test. + + 2019-10-23 Richard Biener + + Backport from mainline + 2019-10-17 Richard Biener + + PR debug/91887 + * g++.dg/debug/dwarf2/pr91887.C: New testcase. + + 2019-09-19 Richard Biener + + PR tree-optimization/91812 + * gcc.dg/torture/pr91812.c: New testcase. + + 2019-10-23 Eric Botcazou + + * gcc.c-torture/execute/20191023-1.c: New test. + + 2019-10-18 Steven G. Kargl + + PR fortran/69455 + * gfortran.dg/pr69455_1.f90: New test. + * gfortran.dg/pr69455_2.f90: Ditto. + + 2019-10-17 Bill Schmidt + + Backport from mainline + 2019-10-15 Bill Schmidt + + PR target/92093 + * gcc.target/powerpc/pr91275.c: Fix type and endian issues. + + 2019-10-14 Will Schmidt + + Backport from trunk. + 2019-09-26 Will Schmidt + + * gcc.target/powerpc/pure-builtin-redundant-load.c: New. + + 2019-10-10 UroÅ¡ Bizjak + + PR target/92022 + * g++.dg/pr92022.C: New test. + + 2019-10-07 Thomas Koenig + + Backport from trunk + PR fortran/84487 + * gfortran.dg/typebound_call_22.f03: xfail. + + 2019-10-07 Bill Schmidt + + Backport from mainline + 2019-10-01 Bill Schmidt + + PR target/91275 + * gcc.target/powerpc/pr91275.c: New. + + 2019-10-01 Kyrylo Tkachov + + Backport from mainline + 2019-09-24 Kyrylo Tkachov + + * gcc.target/aarch64/nosplit-di-const-volatile_1.c: New test. + + 2019-10-01 Eric Botcazou + + * gcc.dg/pr91854.c: New test. + + 2019-09-28 Paul Thomas + + Backport from mainline + PR fortran/91588 + * gfortran.dg/associate_49.f90 : New test. + + 2019-09-25 Kyrylo Tkachov + + Backport from mainline + 2019-08-22 Kyrylo Tkachov + + * gcc.target/arm/acle/crc_hf_1.c: New test. + + 2019-09-20 Iain Sandoe + + Backport from mainline. + 2019-05-11 Iain Sandoe + + PR testsuite/81058 + * gcc.target/i386/avx512bw-vpmovswb-1.c: Use regular data section + for variables on Darwin, rather than common. + * gcc.target/i386/avx512bw-vpmovuswb-1.c: Likewise. + * gcc.target/i386/avx512bw-vpmovwb-1.c: Likewise. + + 2019-09-18 Thomas Koenig + + Backport from trunk + PR fortran/91550 + * gfortran.dg/do_subscript_6.f90: New test. + + 2019-09-15 Thomas Koenig + + Backport from trunk + PR fortran/91557 + * gfortran.dg/warn_unused_dummy_argument_5.f90: New test. + + 2019-09-11 Eric Botcazou + + * gcc.target/sparc/20161111-1.c: XFAIL redundant zero-extension test. + + 2019-09-09 Jakub Jelinek + + PR target/87853 + * gcc.target/i386/pr87853.c: New test. + + PR target/91704 + * gcc.target/i386/pr91704.c: New test. + + 2019-09-05 Steven G. Kargl + + PR fortran/91660 + * gfortran.dg/pdt_4.f03: Fix invalid code. + * gfortran.dg/pr91660_1.f90: New test. + * gfortran.dg/pr91660_2.f90: Ditto. + + 2019-09-04 Wilco Dijkstra + + Backport from mainline + 2019-08-13 Wilco Dijkstra + + PR target/81800 + * gcc.target/aarch64/no-inline-lrint_3.c: New test. + + 2019-09-02 Richard Biener + + PR testsuite/91619 + * gcc.dg/vect/pr81740-2.c: Restrict to vect_hw_misalign. + + 2019-09-01 Iain Sandoe + + Backport from mainline. + 2019-06-15 Iain Sandoe + + PR objc/90709 + * obj-c++.dg/proto-lossage-7.mm: Use proxy headers. + * obj-c++.dg/strings/const-cfstring-2.mm: Likewise. + * obj-c++.dg/strings/const-cfstring-5.mm: Likewise + * obj-c++.dg/strings/const-str-12.mm: Likewise. + * obj-c++.dg/syntax-error-1.mm: Likewise. + * obj-c++.dg/torture/strings/const-cfstring-1.mm: Likewise. + * obj-c++.dg/torture/strings/const-str-10.mm: Likewise. + * obj-c++.dg/torture/strings/const-str-11.mm: Likewise. + * obj-c++.dg/torture/strings/const-str-9.mm: Likewise. + * obj-c++.dg/cxx-ivars-3.mm: Skip on later Darwin, where the 10.4 API + in no longer supported, also on m64 where there's no meaning to it. + * obj-c++.dg/isa-field-1.mm: Suppress unwanted warning, add comment why. + * obj-c++.dg/objc-gc-3.mm: Skip for Darwin > 16, the API use is an error + there. + * obj-c++.dg/qual-types-1.mm: Prune a spurious l64 warning. + * obj-c++.dg/stubify-1.mm: Tidy up after better compiler warnings. + * obj-c++.dg/stubify-2.mm: Likewise. + * obj-c++.dg/try-catch-1.mm: Likewise. + * obj-c++.dg/try-catch-3.mm: Likewise. + + Backport from mainline. + 2019-06-15 Iain Sandoe + + PR objc/90709 + * objc.dg/encode-7-next-64bit.m: Use proxy headers. + * objc.dg/image-info.m: Likewise. + * objc.dg/method-6.m: Likewise. + * objc.dg/no-extra-load.m: Likewise. + * objc.dg/objc-foreach-4.m: Likewise. + * objc.dg/objc-foreach-5.m: Likewise. + * objc.dg/proto-lossage-7.m: Likewise. + * objc.dg/strings/const-cfstring-2.m: Likewise. + * objc.dg/strings/const-cfstring-5.m: Likewise. + * objc.dg/strings/const-str-12b.m: Likewise. + * objc.dg/symtab-1.m: Likewise. + * objc.dg/torture/strings/const-cfstring-1.m: Likewise. + * objc.dg/torture/strings/const-str-10.m: Likewise. + * objc.dg/torture/strings/const-str-11.m: Likewise. + * objc.dg/torture/strings/const-str-9.m: Likewise. + * objc.dg/zero-link-1.m: Likewise. + * objc.dg/zero-link-2.m: Likewise. + * objc.dg/zero-link-3.m: Likewise. + * objc.dg/isa-field-1.m: Suppress unwanted warning, add comment why. + * objc.dg/headers.m: XFAIL for Darwin14-19. + * objc.dg/objc-gc-4.m: Skip for Darwin > 16, the API use is an error + there. + + Backport from mainline. + 2019-06-15 Iain Sandoe + + PR objc/90709 + * objc-obj-c++-shared/CF-CFString.h: New. + * objc-obj-c++-shared/F-NSArray.h: New. + * objc-obj-c++-shared/F-NSAutoreleasePool.h: New. + * objc-obj-c++-shared/F-NSObject.h: New. + * objc-obj-c++-shared/F-NSString.h: New. + * objc-obj-c++-shared/F-NSValue.h: New. + * objc-obj-c++-shared/GNUStep/CoreFoundation/CFArray.h: New. + * objc-obj-c++-shared/GNUStep/CoreFoundation/CFAvailability.h: New. + * objc-obj-c++-shared/GNUStep/CoreFoundation/CFBase.h: New. + * objc-obj-c++-shared/GNUStep/CoreFoundation/CFCharacterSet.h: New. + * objc-obj-c++-shared/GNUStep/CoreFoundation/CFData.h: New. + * objc-obj-c++-shared/GNUStep/CoreFoundation/CFDictionary.h: New. + * objc-obj-c++-shared/GNUStep/CoreFoundation/CFLocale.h: New. + * objc-obj-c++-shared/GNUStep/CoreFoundation/CFString.h: New. + * objc-obj-c++-shared/GNUStep/Foundation/NSArray.h: New. + * objc-obj-c++-shared/GNUStep/Foundation/NSAutoreleasePool.h: New. + * objc-obj-c++-shared/GNUStep/Foundation/NSDate.h: New. + * objc-obj-c++-shared/GNUStep/Foundation/NSEnumerator.h: New. + * objc-obj-c++-shared/GNUStep/Foundation/NSGeometry.h: New. + * objc-obj-c++-shared/GNUStep/Foundation/NSObjCRuntime.h: New. + * objc-obj-c++-shared/GNUStep/Foundation/NSObject.h: New. + * objc-obj-c++-shared/GNUStep/Foundation/NSRange.h: New. + * objc-obj-c++-shared/GNUStep/Foundation/NSString.h: New. + * objc-obj-c++-shared/GNUStep/Foundation/NSValue.h: New. + * objc-obj-c++-shared/GNUStep/Foundation/NSZone.h: New. + * objc-obj-c++-shared/GNUStep/GNUstepBase/GNUstep.h: New. + * objc-obj-c++-shared/GNUStep/GNUstepBase/GSBlocks.h: New. + * objc-obj-c++-shared/GNUStep/GNUstepBase/GSConfig.h: New. + * objc-obj-c++-shared/GNUStep/GNUstepBase/GSObjCRuntime.h: New. + * objc-obj-c++-shared/GNUStep/GNUstepBase/GSVersionMacros.h: New. + * objc-obj-c++-shared/GNUStep/GNUstepBase/NSArray+GNUstepBase.h: New. + * objc-obj-c++-shared/GNUStep/GNUstepBase/NSMutableString+GNUstepBase.h: + New. + * objc-obj-c++-shared/GNUStep/GNUstepBase/NSNumber+GNUstepBase.h: New. + * objc-obj-c++-shared/GNUStep/GNUstepBase/NSObject+GNUstepBase.h: New. + * objc-obj-c++-shared/GNUStep/GNUstepBase/NSString+GNUstepBase.h: New. + + 2019-09-01 Iain Sandoe + + Backport from mainline. + 2019-07-27 Iain Sandoe + + * gcc.target/powerpc/bmi2-bzhi64-1a.c: Add options to enable altivec + and vsx. + + 2019-09-01 Iain Sandoe + + Backport from mainline. + 2019-07-25 Iain Sandoe + + PR gcov-profile/91087 + * g++.dg/gcov/pr16855.C: Xfail the count lines for the DTORs and the + "final" line for the failure summaries. Adjust source layout so that + dejagnu xfail expressions work. + + 2019-09-01 Iain Sandoe + + Backport from mainline. + 2019-07-13 Iain Sandoe + + * gcc.target/powerpc/stabs-attrib-vect-darwin.c: Require stabs + support. + + 2019-09-01 Iain Sandoe + + Backport from mainline. + 2019-06-24 Iain Sandoe + + * gcc.target/powerpc/safe-indirect-jump-1.c: Skip for Darwin. + * gcc.target/powerpc/safe-indirect-jump-7.c: Likewise. + + 2019-09-01 Iain Sandoe + + Backport from mainline. + 2019-04-15 Dominique d'Humieres + + PR tree-optimization/90020 + * gcc.dg/torture/pr90020.c: Add linker options for darwin. + + 2019-09-01 Iain Sandoe + + Backport from mainline. + 2019-05-10 Iain Sandoe + + * gcc.target/x86_64/abi/avx512f/abi-avx512f.exp: Darwin is + now tested. + * gcc.target/x86_64/abi/avx512f/asm-support-darwin.s: New. + + 2019-09-01 Eric Botcazou + + * gcc.c-torture/execute/20190901-1.c: New test. + + 2019-08-31 Iain Sandoe + + Backport from mainline. + 2019-06-24 Iain Sandoe + + * gcc.target/powerpc/spec-barr-1.c: Adjust scan assembler regex + to recognise Darwin's register names. + + 2019-08-31 Iain Sandoe + + Backport from mainline. + 2019-06-24 Iain Sandoe + + * gcc.dg/cpp/isysroot-1.c: Use as the test header. + * gcc.dg/cpp/usr/include/stdio.h: Rename... + * gcc.dg/cpp/usr/include/example.h: ... to this. + + 2019-08-31 Iain Sandoe + + Backport from mainline. + 2019-06-23 Iain Sandoe + + * gcc.target/powerpc/builtins-2.c: Require VSX hardware support. + + 2019-08-31 Iain Sandoe + + Backport from mainline. + 2019-06-23 Iain Sandoe + + * gcc.target/powerpc/pr80125.c (foo): Use an unsigned char + vector explicitly for the vec_perm. + + 2019-08-31 Iain Sandoe + + Backport from mainline. + 2019-06-23 Iain Sandoe + + * gcc.target/powerpc/pr71785.c: For Darwin, make test non-PIC, + expect the out-of-line GPR restore, and test specifically for + absence of branches to local labels. + + 2019-08-31 Iain Sandoe + + Backport from mainline. + 2019-06-22 Iain Sandoe + + * gcc.target/powerpc/pr64205.c: Require effective target dfp. + * gcc.target/powerpc/pr79909.c: Likewise. + + 2019-08-31 Iain Sandoe + + Backport from mainline. + 2019-06-22 Iain Sandoe + + * gcc.target/powerpc/darwin-bool-1.c: Suppress the pedantic + warning about _Bool. + + 2019-08-31 Iain Sandoe + + Backport from mainline. + 2019-06-13 Iain Sandoe + + * g++.dg/pr71694.C: Use non-PIC codegen for Darwin m32. + + 2019-08-31 Iain Sandoe + + Backport from mainline. + 2019-06-13 Iain Sandoe + + * gcc.dg/darwin-minversion-1.c: Use compile rather than link/run. + * gcc.dg/darwin-minversion-2.c: Likewise. + + 2019-08-31 Iain Sandoe + + Backport from mainline. + 2019-06-11 Iain Sandoe + + PR testsuite/65364 + * gcc.dg/uninit-19.c (fn1): Adjust target condition for Darwin. + (fn2): Likewise. + + 2019-08-31 Iain Sandoe + + Backport from mainline. + 2019-06-06 Iain Sandoe + + * g++.dg/cpp0x/alignas4.C: Amend test to check for zerofill syntax + on Darwin. + + 2019-08-31 Segher Boessenkool + + PR target/91481 + * gcc.target/powerpc/darn-3.c: Fix testcase. + + 2019-08-30 Iain Sandoe + + Backport from mainline. + 2019-06-01 Iain Sandoe + + PR target/90698 + * gcc.target/i386/pr49866.c: XFAIL for Darwin. + * gcc.target/i386/pr63538.c: Likewise. + * gcc.target/i386/pr61599-1.c: Skip for Darwin. + + 2019-08-30 Iain Sandoe + + Backport from mainline. + 2019-05-31 Iain Sandoe + + * g++.dg/cpp0x/pr84497.C: Require alias support. + + 2019-08-30 Iain Sandoe + + Backport from mainline. + 2019-05-30 Iain Sandoe + + * gcc.target/i386/stack-prot-sym.c: Require native TLS support. + + 2019-08-30 Iain Sandoe + + Backport from mainline. + 2019-05-27 Iain Sandoe + + * gcc.target/i386/pr22076.c: Adjust options to + match codegen expected by the scan-asms. + + 2019-08-30 Iain Sandoe + + Backport from mainline. + 2019-05-26 Iain Sandoe + + * gcc.target/i386/pr39013-1.c: Adjust scan-asms for PIE to + account for PIC code on Darwin. + * gcc.target/i386/pr39013-2.c: Likewise. + * gcc.target/i386/pr64317.c: Likewise. + + 2019-08-30 Iain Sandoe + + Backport from mainline. + 2019-05-25 Iain Sandoe + + * gcc.target/i386/pr59874-3.c: Use the spelling of popcnt + expected for Darwin. + + 2019-08-30 Iain Sandoe + + Backport from mainline. + 2019-05-25 Iain Sandoe + + * gcc.target/i386/pr82659-3.c: Require alias support. + + 2019-08-30 Iain Sandoe + + Backport from mainline. + 2019-05-24 Iain Sandoe + + * gcc.target/i386/pconfig-1.c: Scan for the string in the generated + code, not in comments or miscellaneous directives. + * gcc.target/i386/wbinvd-1.c: Likewise. + * gcc.target/i386/wbnoinvd-1.c: Likewise. + * gcc.target/i386/pr66819-3.c: Specifically, check that there is no + call to "bar". + * gcc.target/i386/pr66819-4.c: Likewise. + * gcc.target/i386/pr82662.c + + 2019-08-30 Iain Sandoe + + Backport from mainline. + 2019-05-24 Iain Sandoe + + * gcc.target/i386/pr67985-2.c: Adjust label checks for + Darwin. + * gcc.target/i386/pr77881.c: Likewise. + + 2019-08-30 Iain Sandoe + + Backport from mainline. + 2019-05-24 Iain Sandoe + + * gcc.target/i386/pr70738-7.c: Likewise. + * gcc.target/i386/pr24414.c: Likewise. + + 2019-08-30 Iain Sandoe + + Backport from mainline. + 2019-05-23 Iain Sandoe + + PR rtl-optimisation/64895 + * gcc.target/i386/fuse-caller-save-rec.c: Remove XFAILs. + * gcc.target/i386/fuse-caller-save.c: Likewise. + * gcc.target/i386/fuse-caller-save-xmm.c: Adjust tests for + PIC cases, remove XFAILs. + + 2019-08-30 Richard Biener + + Backport from mainline + 2019-07-08 Richard Biener + + PR tree-optimization/91108 + * gcc.dg/tree-ssa/pr91091-1.c: New testcase. + * gcc.dg/tree-ssa/ssa-fre-78.c: Likewise. + + 2019-08-30 Segher Boessenkool + + Backport from trunk + 2019-08-23 Segher Boessenkool + + PR target/91481 + * gcc.target/powerpc/darn-3.c: New testcase. + + 2019-08-30 Richard Biener + + Backport from mainline + 2018-12-04 Richard Biener + + PR tree-optimization/88315 + * gcc.dg/vect/slp-reduc-sad.c: Adjust to provide non-trivial + initial value. + + 2019-08-30 Richard Biener + + Backport from mainline + 2019-06-18 Richard Biener + + PR debug/90900 + * gcc.dg/gomp/pr90900.c: New testcase. + + 2019-04-29 Richard Biener + + PR tree-optimization/90278 + * gcc.dg/torture/pr90278.c: New testcase. + + 2019-04-25 Richard Biener + + PR middle-end/90194 + * g++.dg/torture/pr90194.C: New testcase. + + 2019-08-30 Richard Biener + + Backport from mainline + 2019-07-31 Richard Biener + + PR tree-optimization/91293 + * gcc.dg/vect/pr91293-1.c: New testcase. + * gcc.dg/vect/pr91293-2.c: Likewise. + * gcc.dg/vect/pr91293-3.c: Likewise. + + 2019-07-31 Richard Biener + + PR tree-optimization/91280 + * g++.dg/torture/pr91280.C: New testcase. + + 2019-07-19 Richard Biener + + PR tree-optimization/91200 + * gcc.dg/torture/pr91200.c: New testcase. + + 2019-07-15 Richard Biener + + PR middle-end/91162 + * gcc.dg/autopar/pr91162.c: New testcase. + + 2019-07-11 Richard Biener + + PR middle-end/91131 + * gcc.target/i386/pr91131.c: New testcase. + + 2019-07-10 Richard Biener + + PR tree-optimization/91126 + * gcc.dg/torture/pr91126.c: New testcase. + + 2019-08-30 Richard Biener + + Backport from mainline + 2019-05-06 Richard Biener + + PR tree-optimization/90328 + * gcc.dg/torture/pr90328.c: New testcase. + + 2019-02-22 Richard Biener + + PR middle-end/87609 + * gcc.dg/torture/restrict-7.c: New testcase. + + 2019-08-30 Bin Cheng + + Backport from mainline + 2019-07-18 Bin Cheng + + PR tree-optimization/91137 + * gcc.c-torture/execute/pr91137.c: New test. + + 2019-08-30 Richard Biener + + Backport from mainline + 2019-04-08 Richard Biener + + PR tree-optimization/90006 + * gcc.dg/vect/bb-slp-pr90006.c: New testcase. + + 2019-04-01 Bin Cheng + + PR tree-optimization/89725 + * gcc.dg/tree-ssa/pr89725.c: New test. + + 2019-03-26 Bin Cheng + + PR tree-optimization/81740 + * gcc.dg/vect/pr81740-1.c: New testcase. + * gcc.dg/vect/pr81740-2.c: Likewise. + + 2019-08-30 Richard Biener + + Backport from mainline + 2019-04-11 Richard Biener + + PR tree-optimization/90020 + * gcc.dg/torture/pr90020.c: New testcase. + + 2019-08-29 Iain Sandoe + + Backport from mainline. + 2019-05-22 Iain Sandoe + + PR testsuite/27221 + * g++.dg/ext/alignof2.C: XFAIL for 32bit Darwin. + + 2019-08-29 Iain Sandoe + + Backport from mainline. + 2019-05-21 Iain Sandoe + + PR testsuite/67958 + * gcc.target/i386/pr32219-1.c: Adjust scan-asms for Darwin, comment + the differences. + * gcc.target/i386/pr32219-2.c: Likewise. + * gcc.target/i386/pr32219-3.c: Likewise. + * gcc.target/i386/pr32219-4.c: Likewise. + * gcc.target/i386/pr32219-5.c: Likewise. + * gcc.target/i386/pr32219-6.c: Likewise. + * gcc.target/i386/pr32219-7.c: Likewise. + * gcc.target/i386/pr32219-8.c: Likewise. + + 2019-08-29 Jakub Jelinek + + Backported from mainline + 2019-07-30 Jakub Jelinek + + PR target/91150 + * gcc.target/i386/avx512bw-pr91150.c: New test. + + 2019-07-04 Jakub Jelinek + + PR middle-end/78884 + * gcc.dg/gomp/pr78884.c: New test. + + PR rtl-optimization/90756 + * gcc.dg/pr90756.c: New test. + + 2019-06-25 Jakub Jelinek + + PR sanitizer/90954 + * c-c++-common/gomp/pr90954.c: New test. + + 2019-06-21 Jakub Jelinek + + PR c++/90950 + * g++.dg/gomp/lastprivate-1.C: New test. + + 2019-06-12 Jakub Jelinek + + PR c/90760 + * gcc.dg/pr90760.c: New test. + + 2019-06-05 Jakub Jelinek + + PR debug/90733 + * gcc.dg/pr90733.c: New test. + + 2019-05-10 Jakub Jelinek + + PR pch/90326 + * g++.dg/pch/pr90326.C: New test. + * g++.dg/pch/pr90326.Hs: New file. + + 2019-04-19 Jakub Jelinek + + PR middle-end/90139 + * gcc.c-torture/compile/pr90139.c: New test. + + 2019-08-28 Iain Sandoe + + Backport from mainline. + 2019-05-21 Iain Sandoe + + PR target/63891 + * gcc.dg/darwin-weakimport-3.c: Adjust options and explain + the reasons. + + 2019-08-28 Iain Sandoe + + Backport from mainline. + 2019-05-20 Iain Sandoe + + PR testsuite/58321 + * gcc.target/i386/memcpy-strategy-3.c: Adjust count for Darwin and + add a comment as to the reason for the difference. + * gcc.target/i386/memset-strategy-1.c: Likewise. + + 2019-08-28 Iain Sandoe + + Backport from mainline. + 2019-05-18 Iain Sandoe + + * objc.dg/instancetype-0.m: New. + + 2019-08-25 Iain Sandoe + + Backport from mainline. + 2019-06-13 Iain Sandoe + + * gcc.dg/darwin-minversion-link.c: New test. + + 2019-08-23 Mihailo Stojanovic + + * gcc.target/mips/get-fcsr-3.c: New test. + + 2019-08-20 Eric Botcazou + + * gcc.c-torture/execute/20190820-1.c: New test. + + 2019-08-15 Jonathan Wakely + + Backport from mainline. + 2019-08-14 Jonathan Wakely + + PR c++/91436 + * g++.dg/lookup/missing-std-include-5.C: Limit test to C++14 and up. + * g++.dg/lookup/missing-std-include-6.C: Don't check make_unique in + test that runs for C++11. + * g++.dg/lookup/missing-std-include-8.C: Check make_unique here. + + 2019-08-14 Iain Sandoe + + Backport from mainline. + 2019-05-02 Iain Sandoe + + * g++.dg/ext/instantiate2.C: Remove special-casing for Darwin. + + 2013-08-13 Thomas Koenig + + Backport from trunk + PR fortran/90563 + * gfortran.dg/do_subscript_5.f90: New test. + + 2019-08-05 Kito Cheng + + Backport from mainline + 2019-08-05 Kito Cheng + + * gcc.target/riscv/promote-type-for-libcall.c: New. + + 2019-08-02 Thomas Koenig + Paul Thomas + + Backport from trunk + PR fortran/90786 + PR fortran/90813 + * gfortran.dg/proc_ptr_51.f90: New test. + + 2019-07-22 Martin Liska + + Backport from mainline + 2019-07-22 Martin Liska + + PR driver/91172 + * gcc.dg/pr91172.c: New test. + + 2019-07-21 Richard Sandiford + + Backport from mainline + 2019-07-18 Richard Sandiford + + * c-c++-common/pr53633-2.c: New test. + + 2019-07-16 Wilco Dijkstra + + Backport from mainline + PR target/89222 + * gcc.target/arm/pr89222.c: Add new test. + + 2019-07-16 Wilco Dijkstra + + Backport from mainline + 2019-02-04 Wilco Dijkstra + PR target/89190 + * gcc.target/arm/pr89190.c: New test. + + 2019-07-15 Andreas Krebbel + + Backport from mainline + 2019-07-01 Andreas Krebbel + + * gcc.target/s390/vector/vec-shift-2.c: New test. + + 2019-07-12 Wilco Dijkstra + + PR testsuite/78529 + * gcc.c-torture/execute/builtins/builtins.exp: Add -fno-ipa-ra. + + 2019-07-07 Paul Thomas + + Backport from trunk + PR fortran/91077 + * gfortran.dg/pointer_array_11.f90 : New test. + + 2019-07-04 Chenghua Xu + + Backported from mainline. + * gcc.target/mips/mips-fmadd.c: Rename to ... + * gcc.target/mips/mips-fmadd-o32.c: ... Here; add abi=32. + * gcc.target/mips/mips-fmadd-n64.c: New. + + 2019-07-04 Martin Liska + + Backport from mainline + 2019-07-03 Martin Liska + + PR middle-end/90899 + * gcc.target/i386/pr90899.c: New test. + + 2019-06-29 Eric Botcazou + + * gnat.dg/specs/array5.ads: New test. + * gnat.dg/specs/array5_pkg1.ads: New helper. + * gnat.dg/specs/array5_pkg2.ads: Likewise. + * gnat.dg/specs/array5_pkg2-g.ads: Likewise. + + 2019-06-21 Jeff Law + + Backport fom mainline + 2019-06-21 Jeff Law + + PR tree-optimization/90949 + * gcc.c-torture/execute/pr90949.c: New test. + + 2019-06-21 Thomas Koenig + + Backport from trunk + PR fortran/90937 + * gfortran.dg/external_procedure_4.f90: New test. + + 2019-06-16 Jeff Law + + Backported from mainline + 2019-05-31 Dragan Mladjenovic + * gcc.target/mips/msa-fmadd.c: New. + + 2019-06-12 Thomas Koenig + Tomáš Trnka + + Backport from trunk + PR fortran/90744 + * gfortran.dg/deferred_character_33.f90: New test. + * gfortran.dg/deferred_character_33a.f90: New test. + + 2019-06-11 Jakub Jelinek + + PR c++/90810 + * g++.dg/ext/vector37.C: New test. + + 2019-06-10 Paul Thomas + + Backport from trunk + PR fortran/90498 + * gfortran.dg/associate_48.f90 : New test. + + 2019-06-09 Paul Thomas + + Backport from trunk + PR fortran/57284 + * gfortran.dg/assign_10.f90: Bump up counts of "atmp". + * gfortran.dg/transpose_optimization_2.f90: Ditto + + 2019-06-09 Paul Thomas + + Backport from trunk + PR fortran/57284 + * gfortran.dg/class_70.f03 + + 2019-06-07 John David Anglin + + * lib/scanasm.exp (dg-function-on-line): Add pattern for hppa*-*-linux*. + + 2019-06-07 Iain Sandoe + + PR target/82920 + * gcc.target/i386/indirect-thunk-bnd-1.c: Adjust scan-asms for Darwin, + do not use -fno-pic on Darwin. + * gcc.target/i386/indirect-thunk-bnd-2.c: Likewise. + * gcc.target/i386/ret-thunk-25.c: Skip for Darwin, which has a + different ABI for returning this category of complex value. + + 2019-06-07 Iain Sandoe + + Backport from mainline. + 2019-05-15 Iain Sandoe + + PR target/82920 + * g++.dg/cet-notrack-1.C: Adjust scan assembler for Darwin. + * gcc.target/i386/cet-notrack-5a.c: Likewise. + * gcc.target/i386/cet-notrack-5b.c: Likewise. + * gcc.target/i386/cet-notrack-6b.c: Likewise. + * gcc.target/i386/cet-notrack-icf-1.c: Likewise. + * gcc.target/i386/cet-notrack-icf-2.c: Likewise. + * gcc.target/i386/cet-notrack-icf-3.c: Likewise. + * gcc.target/i386/cet-notrack-icf-4.c: Likewise. + * gcc.target/i386/cet-sjlj-3.c: Likewise. + * gcc.target/i386/cet-sjlj-5.c: Likewise. + + 2019-06-07 Iain Sandoe + + Backport from mainline. + 2019-05-14 Iain Sandoe + + PR target/82920 + * gcc.target/i386/cet-sjlj-6b.c: Require effective target x32. + * gcc.target/i386/pr52146.c: Likewise. + * gcc.target/i386/pr52698.c: Likewise. + * gcc.target/i386/pr52857-1.c: Likewise. + * gcc.target/i386/pr52857-2.c: Likewise. + * gcc.target/i386/pr52876.c: Likewise. + * gcc.target/i386/pr53698.c: Likewise. + * gcc.target/i386/pr54157.c: Likewise. + * gcc.target/i386/pr55049-1.c: Likewise. + * gcc.target/i386/pr55093.c: Likewise. + * gcc.target/i386/pr55116-1.c: Likewise. + * gcc.target/i386/pr55116-2.c: Likewise. + * gcc.target/i386/pr55597.c: Likewise. + * gcc.target/i386/pr59929.c: Likewise. + * gcc.target/i386/pr66470.c: Likewise. + + 2019-06-07 Iain Sandoe + + Backport from mainline. + 2019-05-12 Iain Sandoe + Dominique d'Humieres + + PR target/82920 + * gcc.target/i386/indirect-thunk-1.c: Adjust scan-asms for Darwin, + do not use -fno-pic on Darwin. + * gcc.target/i386/indirect-thunk-2.c: Likewise. + * gcc.target/i386/indirect-thunk-3.c: Likewise. + * gcc.target/i386/indirect-thunk-4.c: Likewise. + * gcc.target/i386/indirect-thunk-7.c: Likewise. + * gcc.target/i386/indirect-thunk-attr-1.c: Likewise. + * gcc.target/i386/indirect-thunk-attr-2.c: Likewise. + * gcc.target/i386/indirect-thunk-attr-3.c: Likewise. + * gcc.target/i386/indirect-thunk-attr-4.c: Likewise. + * gcc.target/i386/indirect-thunk-attr-5.c: Likewise. + * gcc.target/i386/indirect-thunk-attr-6.c: Likewise. + * gcc.target/i386/indirect-thunk-attr-7.c: Likewise. + * gcc.target/i386/indirect-thunk-attr-8.c: Likewise. + * gcc.target/i386/indirect-thunk-extern-1.c: Likewise. + * gcc.target/i386/indirect-thunk-extern-2.c: Likewise. + * gcc.target/i386/indirect-thunk-extern-3.c: Likewise. + * gcc.target/i386/indirect-thunk-extern-4.c: Likewise. + * gcc.target/i386/indirect-thunk-extern-7.c: Likewise. + * gcc.target/i386/indirect-thunk-inline-1.c: Likewise. + * gcc.target/i386/indirect-thunk-inline-2.c: Likewise. + * gcc.target/i386/indirect-thunk-inline-3.c: Likewise. + * gcc.target/i386/indirect-thunk-inline-4.c: Likewise. + * gcc.target/i386/indirect-thunk-inline-7.c: Likewise. + * gcc.target/i386/indirect-thunk-register-1.c: Likewise. + * gcc.target/i386/indirect-thunk-register-2.c: Likewise. + * gcc.target/i386/indirect-thunk-register-3.c: Likewise. + * gcc.target/i386/indirect-thunk-register-4.c: Likewise. + * gcc.target/i386/ret-thunk-1.c: Likewise. + * gcc.target/i386/ret-thunk-10.c: Likewise. + * gcc.target/i386/ret-thunk-11.c: Likewise. + * gcc.target/i386/ret-thunk-12.c: Likewise. + * gcc.target/i386/ret-thunk-13.c: Likewise. + * gcc.target/i386/ret-thunk-14.c: Likewise. + * gcc.target/i386/ret-thunk-15.c: Likewise. + * gcc.target/i386/ret-thunk-16.c: Likewise. + * gcc.target/i386/ret-thunk-2.c: Likewise. + * gcc.target/i386/ret-thunk-22.c: Likewise. + * gcc.target/i386/ret-thunk-23.c: Likewise. + * gcc.target/i386/ret-thunk-24.c: Likewise. + * gcc.target/i386/ret-thunk-3.c: Likewise. + * gcc.target/i386/ret-thunk-4.c: Likewise. + * gcc.target/i386/ret-thunk-5.c: Likewise. + * gcc.target/i386/ret-thunk-6.c: Likewise. + * gcc.target/i386/ret-thunk-7.c: Likewise. + * gcc.target/i386/ret-thunk-8.c: Likewise. + * gcc.target/i386/ret-thunk-9.c: Likewise. + + 2019-05-28 Eric Botcazou + + * gnat.dg/opt79.ad[sb]: New test. + + 2019-05-27 Eric Botcazou + + * gnat.dg/specs/array4.ads: New test. + + 2019-05-27 Eric Botcazou + + * gnat.dg/unchecked_convert13.adb: New test. + + 2019-05-24 Martin Liska + + Backport from mainline + 2019-05-23 Martin Liska + + PR sanitizer/90570 + * g++.dg/asan/pr90570.C: New test. + + 2019-05-23 Eric Botcazou + + * gnat.dg/opt78.ad[sb]: New test. + + 2019-05-23 UroÅ¡ Bizjak + + Backported from mainline + 2019-05-21 UroÅ¡ Bizjak + + PR target/90547 + * gcc.target/i386/pr90547.c: New test. + + 2019-05-22 Eric Botcazou + + * g++.dg/tls/pr85400.C: New test. + + 2019-05-20 Jeff Law + + Backported from mainline + 2019-05-17 Dragan Mladjenovic + + * g++.dg/eh/o32-fp.C: New. + * gcc.target/mips/dwarfregtable-1.c: New. + * gcc.target/mips/dwarfregtable-2.c: New. + * gcc.target/mips/dwarfregtable-3.c: New. + * gcc.target/mips/dwarfregtable-4.c: New. + * gcc.target/mips/dwarfregtable.h: New. + + 2019-05-20 Jonathan Wakely + + Backported from mainline + 2019-05-20 Jonathan Wakely + + PR c++/90532 Ensure __is_constructible(T[]) is false + * g++.dg/ext/90532.C: New test. + + 2019-05-16 Kelvin Nilsen + + Backport from mainline. + 2019-05-07 Kelvin Nilsen + + PR target/89765 + * gcc.target/powerpc/pr89765-mc.c: New test. + * gcc.target/powerpc/vsx-builtin-10c.c: New test. + * gcc.target/powerpc/vsx-builtin-10d.c: New test. + * gcc.target/powerpc/vsx-builtin-11c.c: New test. + * gcc.target/powerpc/vsx-builtin-11d.c: New test. + * gcc.target/powerpc/vsx-builtin-12c.c: New test. + * gcc.target/powerpc/vsx-builtin-12d.c: New test. + * gcc.target/powerpc/vsx-builtin-13c.c: New test. + * gcc.target/powerpc/vsx-builtin-13d.c: New test. + * gcc.target/powerpc/vsx-builtin-14c.c: New test. + * gcc.target/powerpc/vsx-builtin-14d.c: New test. + * gcc.target/powerpc/vsx-builtin-15c.c: New test. + * gcc.target/powerpc/vsx-builtin-15d.c: New test. + * gcc.target/powerpc/vsx-builtin-16c.c: New test. + * gcc.target/powerpc/vsx-builtin-16d.c: New test. + * gcc.target/powerpc/vsx-builtin-17c.c: New test. + * gcc.target/powerpc/vsx-builtin-17d.c: New test. + * gcc.target/powerpc/vsx-builtin-18c.c: New test. + * gcc.target/powerpc/vsx-builtin-18d.c: New test. + * gcc.target/powerpc/vsx-builtin-19c.c: New test. + * gcc.target/powerpc/vsx-builtin-19d.c: New test. + * gcc.target/powerpc/vsx-builtin-20c.c: New test. + * gcc.target/powerpc/vsx-builtin-20d.c: New test. + * gcc.target/powerpc/vsx-builtin-9c.c: New test. + * gcc.target/powerpc/vsx-builtin-9d.c: New test. + + 2019-05-08 Kelvin Nilsen + + Backport from mainline. + 2019-05-06 Kelvin Nilsen + + PR target/89424 + * gcc.target/powerpc/pr89424-0.c: New test. + * gcc.target/powerpc/vsx-builtin-13a.c: Define macro PR89424 to + enable testing of newly patched capability. + * gcc.target/powerpc/vsx-builtin-13b.c: Likewise. + * gcc.target/powerpc/vsx-builtin-20a.c: Likewise. + * gcc.target/powerpc/vsx-builtin-20b.c: Likewise. + + 2019-05-06 Richard Biener + + PR bootstrap/90359 + Backport from mainline + 2019-03-11 Jakub Jelinek + + PR middle-end/89655 + PR bootstrap/89656 + * gcc.c-torture/compile/pr89655.c: New test. + + 2019-05-03 Richard Biener + + Backport from mainline + 2019-03-14 Richard Biener + + PR middle-end/89698 + * g++.dg/torture/pr89698.C: New testcase. + + 2019-03-07 Richard Biener + + PR tree-optimization/89595 + * gcc.dg/torture/pr89595.c: New testcase. + + 2019-03-14 Richard Biener + + PR tree-optimization/89710 + * gcc.dg/torture/pr89710.c: New testcase. + + 2019-04-15 Richard Biener + + PR tree-optimization/90071 + * gcc.dg/torture/pr90071.c: New testcase. + + 2018-08-20 Bernd Edlinger + + PR target/86984 + * gcc.target/alpha/pr86984.c: New test. + + 2019-04-30 Jakub Jelinek + + Backported from mainline + 2019-04-24 Jakub Jelinek + + PR target/90193 + * gcc.target/i386/pr90193.c: New test. + + PR target/90187 + * g++.dg/opt/pr90187.C: New test. + + PR tree-optimization/90208 + * gcc.dg/tsan/pr90208-2.c: New test. + + 2019-04-19 Jakub Jelinek + + PR c++/90108 + * c-c++-common/pr90108.c: New test. + + 2019-04-16 Jakub Jelinek + + PR rtl-optimization/90082 + * gcc.dg/pr90082.c: New test. + + PR tree-optimization/90090 + * g++.dg/opt/pr90090.C: New test. + + 2019-04-12 Jakub Jelinek + + PR c/89933 + * c-c++-common/pr89933.c: New test. + + PR rtl-optimization/89965 + * gcc.target/i386/pr89965.c: New test. + + PR c/89946 + * c-c++-common/pr89946.c: New test. + + PR rtl-optimization/90026 + * g++.dg/opt/pr90026.C: New test. + + 2019-04-10 Jakub Jelinek + + PR c++/90010 + * gcc.dg/pr90010.c: New test. + + 2019-04-09 Jakub Jelinek + + PR tree-optimization/89998 + * gcc.c-torture/compile/pr89998-1.c: New test. + * gcc.c-torture/compile/pr89998-2.c: New test. + + 2019-03-29 Jakub Jelinek + + PR sanitizer/89869 + * g++.dg/ubsan/vptr-14.C: New test. + + PR c/89872 + * gcc.dg/tree-ssa/pr89872.c: New test. + + 2019-03-28 Jakub Jelinek + + PR middle-end/89621 + * gfortran.dg/gomp/pr89621.f90: New test. + + 2019-03-26 Jakub Jelinek + + PR c++/89796 + * g++.dg/gomp/pr89796.C: New test. + * gcc.dg/gomp/pr89796.c: New test. + + 2019-03-25 Jakub Jelinek + + PR c++/60702 + * g++.dg/tls/thread_local11.C: Remove scan-tree-dump-times directives + for _ZTH* calls. + * g++.dg/tls/thread_local11a.C: New test. + + 2019-03-22 Jakub Jelinek + + PR c++/60702 + * g++.dg/tls/thread_local11.C: New test. + * g++.dg/tls/thread_local11.h: New test. + * g++.dg/tls/thread_local12a.C: New test. + * g++.dg/tls/thread_local12b.C: New test. + * g++.dg/tls/thread_local12c.C: New test. + * g++.dg/tls/thread_local12d.C: New test. + * g++.dg/tls/thread_local12e.C: New test. + * g++.dg/tls/thread_local12f.C: New test. + * g++.dg/tls/thread_local12g.C: New test. + * g++.dg/tls/thread_local12h.C: New test. + * g++.dg/tls/thread_local12i.C: New test. + * g++.dg/tls/thread_local12j.C: New test. + * g++.dg/tls/thread_local12k.C: New test. + * g++.dg/tls/thread_local12l.C: New test. + + 2019-03-21 Jakub Jelinek + + PR c++/89767 + * g++.dg/cpp1y/lambda-init18.C: New test. + * g++.dg/cpp1y/lambda-init19.C: New test. + * g++.dg/cpp1y/pr89767.C: New test. + + 2019-03-19 Jakub Jelinek + + PR target/89752 + * g++.dg/ext/asm15.C: Check for particular diagnostic wording. + * g++.dg/ext/asm16.C: Likewise. + * g++.dg/ext/asm17.C: New test. + + PR target/89726 + * gcc.target/i386/fpprec-1.c (x): Add 6 new constants. + (expect_round, expect_rint, expect_floor, expect_ceil, expect_trunc): + Add expected results for them. + + PR c/89734 + * gcc.dg/pr89734.c: New test. + + 2019-03-15 Jakub Jelinek + + PR debug/89704 + * gcc.dg/debug/pr89704.c: New test. + + 2019-03-14 Jakub Jelinek + + PR ipa/89684 + * gcc.target/i386/pr89684.c: New test. + + PR rtl-optimization/89679 + * gcc.dg/pr89679.c: New test. + + PR tree-optimization/89703 + * gcc.c-torture/compile/pr89703-1.c: New test. + * gcc.c-torture/compile/pr89703-2.c: New test. + + PR c++/89512 + * g++.dg/cpp1y/var-templ61.C: New test. + + 2019-03-13 Jakub Jelinek + + PR middle-end/88588 + * c-c++-common/gomp/pr88588.c: New test. + + 2019-03-12 Jakub Jelinek + + PR middle-end/89663 + * gcc.c-torture/compile/pr89663-1.c: New test. + * gcc.c-torture/compile/pr89663-2.c: New test. + + 2019-03-11 Jakub Jelinek + + PR fortran/89651 + * gfortran.dg/gomp/pr89651.f90: New test. + + 2019-03-09 Jakub Jelinek + + PR c/88568 + * g++.dg/other/pr88568.C: New test. + + 2019-03-08 Jakub Jelinek + + PR c++/82075 + * g++.dg/cpp1z/decomp49.C: New test. + + 2019-03-06 Jakub Jelinek + + PR c++/87148 + * g++.dg/ext/flexary34.C: New test. + + 2019-03-05 Jakub Jelinek + + PR middle-end/89590 + * gcc.dg/pr89590.c: New test. + + 2019-02-28 Jakub Jelinek + + PR c/89521 + * gcc.dg/pr89521-1.c: New test. + * gcc.dg/pr89521-2.c: New test. + + PR c/89520 + * gcc.dg/pr89520-1.c: New test. + * gcc.dg/pr89520-2.c: New test. + + 2019-02-20 Jakub Jelinek + + PR c++/89403 + * g++.dg/cpp0x/pr89403.C: New test. + + PR c++/89405 + * g++.dg/cpp1z/inline-var5.C: New test. + + PR middle-end/89412 + * gcc.c-torture/compile/pr89412.c: New test. + + 2019-02-20 Jakub Jelinek + David Malcolm + + PR middle-end/89091 + * gcc.dg/torture/pr89091.c: New test. + + 2019-02-20 Jakub Jelinek + + PR middle-end/88074 + PR middle-end/89415 + * gcc.dg/pr88074-2.c: New test. + + 2019-02-19 Richard Biener + + PR middle-end/88074 + * gcc.dg/pr88074.c: New testcase. + + 2019-04-30 Srinath Parvathaneni + + PR target/90075 + * gcc.target/aarch64/pr90075.c: New test. + + 2019-04-29 Richard Sandiford + + Backport from mainline: + 2019-01-25 Richard Sandiford + + PR middle-end/89037 + * gcc.dg/pr89037.c: New test. + + 2019-04-26 Roman Zhuykov + + Backport from mainline + 2019-04-23 Roman Zhuykov + + PR rtl-optimization/87979 + * gcc.dg/pr87979.c: New test. + + PR rtl-optimization/84032 + * gcc.dg/pr84032.c: New test. + + 2019-04-24 Paul Thomas + + Backport from mainline + PR fortran/87127 + * gfortran.dg/external_procedures_4.f90: New test. + + 2019-04-17 Martin Jambor + + Backport from mainline + 2019-03-10 Martin Jambor + + * g++.dg/tree-ssa/pr87008.C: New test. + * gcc.dg/guality/pr54970.c: Xfail tests querying a[0] everywhere. + + 2019-04-17 Kelvin Nilsen + + Backport from mainline + 2019-03-15 Kelvin Nilsen + + PR target/87532 + * gcc.target/powerpc/pr87532.c: New test. + * gcc.target/powerpc/vec-extract-v16qiu-v2.h: New test. + * gcc.target/powerpc/vec-extract-v16qiu-v2a.c: New test. + * gcc.target/powerpc/vec-extract-v16qiu-v2b.c: New test. + * gcc.target/powerpc/vsx-builtin-10a.c: New test. + * gcc.target/powerpc/vsx-builtin-10b.c: New test. + * gcc.target/powerpc/vsx-builtin-11a.c: New test. + * gcc.target/powerpc/vsx-builtin-11b.c: New test. + * gcc.target/powerpc/vsx-builtin-12a.c: New test. + * gcc.target/powerpc/vsx-builtin-12b.c: New test. + * gcc.target/powerpc/vsx-builtin-13a.c: New test. + * gcc.target/powerpc/vsx-builtin-13b.c: New test. + * gcc.target/powerpc/vsx-builtin-14a.c: New test. + * gcc.target/powerpc/vsx-builtin-14b.c: New test. + * gcc.target/powerpc/vsx-builtin-15a.c: New test. + * gcc.target/powerpc/vsx-builtin-15b.c: New test. + * gcc.target/powerpc/vsx-builtin-16a.c: New test. + * gcc.target/powerpc/vsx-builtin-16b.c: New test. + * gcc.target/powerpc/vsx-builtin-17a.c: New test. + * gcc.target/powerpc/vsx-builtin-17b.c: New test. + * gcc.target/powerpc/vsx-builtin-18a.c: New test. + * gcc.target/powerpc/vsx-builtin-18b.c: New test. + * gcc.target/powerpc/vsx-builtin-19a.c: New test. + * gcc.target/powerpc/vsx-builtin-19b.c: New test. + * gcc.target/powerpc/vsx-builtin-20a.c: New test. + * gcc.target/powerpc/vsx-builtin-20b.c: New test. + * gcc.target/powerpc/vsx-builtin-9a.c: New test. + * gcc.target/powerpc/vsx-builtin-9b.c: New test. + + 2019-03-19 Kelvin Nilsen + + PR target/89736 + * gcc.target/powerpc/pr87532-mc.c: Modify dejagnu directives to + restrict this test to vsx targets. + + 2019-04-15 Martin Jambor + + Backport from mainline + 2019-04-15 Martin Jambor + + * g++.dg/ipa/pr89693.C: New test. + + 2019-04-15 Martin Liska + + Backport from mainline + 2019-01-18 Martin Liska + + PR middle-end/88587 + * g++.target/i386/pr88587.C: New test. + * gcc.target/i386/mvc13.c: New test. + + 2019-04-14 Thomas Koenig + + Backport from trunk + PR fortran/87352 + * gfortran.dg/finalize_28.f90: Adjust count of __builtin_free. + * gfortran.dg/finalize_34.f90: New test. + + 2019-04-14 Thomas Koenig + + Backport from trunk + PR fortran/89981 + * gfortran.dg/entry_22.f90: New test. + + 2019-04-11 Richard Biener + + PR tree-optimization/90018 + * gcc.dg/vect/pr90018.c: New testcase. + + 2019-04-10 Harald Anlauf + + Backport from trunk + PR fortran/89904 + * gfortran.dg/pr85797.f90: Adjust testcase. + + 2019-04-10 Matthew Malcomson + + PR target/90024 + * gcc.dg/torture/neon-immediate-timode.c: New test. + + 019-04-07 UroÅ¡ Bizjak + + PR target/89945 + * gcc.target/i386/pr89945.c: New test. + + 2019-04-04 Martin Sebor + + PR middle-end/89934 + * gcc.dg/Wrestrict-19.c: New test. + * gcc.dg/Wrestrict-5.c: Add comment. Remove unused code. + + 2019-04-02 UroÅ¡ Bizjak + + PR target/89902 + PR target/89903 + * gcc.target/i386/pr70799-4.c: Remove. + * gcc.target/i386/pr70799-5.c: Remove. + * gcc.target/i386/pr89902.c: New test. + * gcc.target/i386/pr89903.c: Ditto. + + 2019-03-31 Harald Anlauf + + PR fortran/83515 + PR fortran/85797 + * gfortran.dg/pr85797.f90: New test. + + 2019-03-30 Thomas Koenig + + PR fortran/89866 + Backport from trunk + * gfortran.dg/pointer_intent_8.f90: New test. + + 2019-03-30 Thomas Koenig + + PR fortran/78865 + Backport from trunk + * gfortran.dg/altreturn_10.f90: New test. + * gfortran.dg/whole_file_3.f90: Change dg-warning to dg-error. + + 2019-03-28 UroÅ¡ Bizjak + + PR target/89848 + * gcc.target/i386/pr89848.c: New test. + + 2019-03-26 UroÅ¡ Bizjak + + PR target/89827 + * gcc.target/i386/pr89827.c: New test. + + 2019-03-25 Andreas Krebbel + + Backport from mainline + 2019-03-20 Jakub Jelinek + + PR target/89775 + * gcc.target/s390/pr89775-1.c: New test. + * gcc.target/s390/pr89775-2.c: New test. + + 2019-03-24 Janus Weil + + PR fortran/71861 + Backport from trunk + * gfortran.dg/interface_abstract_5.f90: New test case. + + 2019-03-22 Backport from mainline + + 2019-03-22 Bill Schmidt + + * gcc.target/powerpc/mmx-psubd-2.c: Test _m_psubd. + + 2019-03-21 Thomas Schwinge + + PR fortran/56408 + * gcc.target/powerpc/ppc-fortran/ppc-fortran.exp + (dg-compile-aux-modules): Fix diagnostic. + * gfortran.dg/coarray/caf.exp (dg-compile-aux-modules): Likewise. + * gfortran.dg/dg.exp (dg-compile-aux-modules): Likewise. + + PR fortran/56408 + * gfortran.dg/coarray/caf.exp (dg-compile-aux-modules): Workaround + missing nexted dg-test call support in dejaGNU 1.4.4. + + PR fortran/29383 + * gfortran.dg/ieee/ieee.exp (DEFAULT_FFLAGS): Set the same as in + other '*.exp' files. + + 2019-03-19 Eric Botcazou + + * c-c++-common/unroll-7.c: New test. + + 2019-03-18 Martin Sebor + + PR middle-end/88273 + * gcc.dg/Warray-bounds-38.c: New test. + + 2019-03-18 Martin Jambor + + Backport from mainline + 2019-03-18 Martin Jambor + + PR tree-optimization/89546 + * gcc.dg/tree-ssa/pr89546.c: New test. + + 2019-03-17 Thomas Koenig + + PR fortran/84394 + Backport from trunk + * gfortran.dg/blockdata_11.f90: New test. + + 2019-03-17 H.J. Lu + + Backport from mainline + 2019-03-14 H.J. Lu + + PR target/89523 + * gcc.target/i386/pr89523-1a.c: New test. + * gcc.target/i386/pr89523-1b.c: Likewise. + * gcc.target/i386/pr89523-2.c: Likewise. + * gcc.target/i386/pr89523-3.c: Likewise. + * gcc.target/i386/pr89523-4.c: Likewise. + * gcc.target/i386/pr89523-5.c: Likewise. + * gcc.target/i386/pr89523-6.c: Likewise. + * gcc.target/i386/pr89523-7.c: Likewise. + * gcc.target/i386/pr89523-8.c: Likewise. + * gcc.target/i386/pr89523-9.c: Likewise. + + 2019-03-16 Thomas Koenig + + PR fortran/66089 + Backport from trunk + * gfortran.dg/dependency_53.f90: New test. + * gfortran.dg/assumed_type_2.f90: Adapted tree dumps. + * gfortran.dg/no_arg_check_2.f90: Likewise. + + 2019-03-16 Thomas Koenig + + PR fortran/66695 + PR fortran/77746 + PR fortran/79485 + Backport from trunk + * gfortran.dg/binding_label_tests_30.f90: New test. + * gfortran.dg/binding_label_tests_31.f90: New test. + * gfortran.dg/binding_label_tests_32.f90: New test. + * gfortran.dg/binding_label_tests_33.f90: New test. + + 2019-03-15 Richard Biener + + Backport from mainline + 2019-03-06 Richard Biener + + PR testsuite/89551 + * gcc.dg/uninit-pred-8_b.c: Force logical-op-non-short-circuit + the way that makes the testcase PASS. + + 2019-03-14 Martin Jambor + + Backport from mainline + 2019-03-07 Martin Jambor + + PR lto/87525 + * gcc.dg/ipa/ipcp-5.c: New test. + + 2019-03-14 Richard Biener + + PR middle-end/89572 + * gcc.dg/torture/pr89572.c: New testcase. + + 2019-03-13 Thomas Koenig + + PR fortran/87673 + Backport from trunk + * gfortran.dg/charlen_17.f90: New test. + + 2019-03-13 Vladimir Makarov + + PR target/85860 + * gcc.target/i386/pr85860.c: New. + + 2019-03-14 Richard Biener + + Backport from mainline + 2019-03-13 Richard Biener + + PR middle-end/89677 + * gcc.dg/torture/pr89677.c: New testcase. + + 2019-03-01 Richard Biener + + PR middle-end/89497 + * gcc.dg/tree-ssa/reassoc-43.c: Avoid false match in regex. + * g++.dg/tree-prof/devirt.C: Scan tracer dump for foldings + that happen now earlier. + + 2019-02-18 Richard Biener + + PR tree-optimization/89296 + * gcc.dg/uninit-pr89296.c: New testcase. + + 2019-03-13 Andreas Krebbel + + Backport from mainline + 2019-03-11 Andreas Krebbel + + * gcc.target/s390/zvector/vec-addc-u128.c: New test. + + 2019-03-13 Andreas Krebbel + + Backport from mainline + 2019-02-07 Andreas Krebbel + + * gcc.target/s390/zvector/xl-xst-align-1.c: New test. + * gcc.target/s390/zvector/xl-xst-align-2.c: New test. + + 2019-03-12 Richard Biener + + PR tree-optimization/89664 + * gfortran.dg/pr89664.f90: New testcase. + + 2019-03-12 Andre Vieira + + Backport from mainline + 2019-03-08 Andre Vieira + + * gcc.target/arm/f16_f64_conv_no_dp.c: New test. + + Backport from mainline + 2019-03-11 Christophe Lyon + + * gcc.target/arm/f16_f64_conv_no_dp.c: Add arm_fp16_ok effective + target. + + 2019-03-11 Eric Botcazou + + * c-c++-common/unroll-6.c: New test. + + 2019-03-11 Martin Liska + + Backport from mainline + 2019-03-10 Rainer Orth + + * gcc.target/i386/indirect-thunk-extern-7.c: Add -fjump-tables to + dg-options. + + 2019-03-11 Martin Liska + + Backport from mainline + 2019-03-08 Martin Liska + + PR target/86952 + * gcc.target/i386/indirect-thunk-7.c: Use jump tables to match + scanned pattern. + * gcc.target/i386/indirect-thunk-inline-7.c: Likewise. + + 2019-03-10 Thomas Koenig + + PR fortran/71544 + Backport from trunk + * gfortran.dg/c_ptr_tests_19.f90: New test. + + 2019-03-10 Thomas Koenig + + PR fortran/87734 + Backport from trunk + * gfortran.dg/public_private_module_10.f90: New test. + + 2019-03-08 Martin Jambor + + Backport from mainline + 2019-03-07 Martin Jambor + + * g++.dg/ipa/pr88235.C: New test. + + 2019-03-07 Jakub Jelinek + + PR c++/89585 + * g++.dg/asm-qual-3.C: Adjust expected diagnostics. + + 2019-03-06 Harald Anlauf + + Backport from trunk + PR fortran/71203 + * gfortran.dg/substr_8.f90: New test. + + 2019-03-06 Thomas Koenig + + PR fortran/72714 + Backport from trunk + * gfortran.dg/coarray_allocate_11.f90: New test. + + 2019-03-06 Tamar Christina + + Backport from trunk. + 2019-02-25 Tamar Christina + + PR target/88530 + * common/config/aarch64/aarch64-common.c + (struct aarch64_option_extension): Add is_synthetic. + (all_extensions): Use it. + (TARGET_OPTION_INIT_STRUCT): Define hook. + (struct gcc_targetm_common): Moved to end. + (all_extensions_by_on): New. + (opt_ext_cmp, typedef opt_ext): New. + (aarch64_option_init_struct): New. + (aarch64_contains_opt): New. + (aarch64_get_extension_string_for_isa_flags): Output smallest set. + * config/aarch64/aarch64-option-extensions.def + (AARCH64_OPT_EXTENSION): Explicitly include AES and SHA2 in crypto. + (fp, simd, crc, lse, fp16, rcpc, rdma, dotprod, aes, sha2, sha3, + sm4, fp16fml, sve): + Set is_synthetic to false. + (crypto): Set is_synthetic to true. + * config/aarch64/driver-aarch64.c (AARCH64_OPT_EXTENSION): Add + SYNTHETIC. + + 2019-03-06 Tamar Christina + + Backport from trunk. + 2019-02-28 Tamar Christina + + PR target/88530 + * gcc.target/aarch64/options_set_10.c: New test. + + 2019-03-06 Xiong Hu Luo + + Backport of r268834 from mainline to gcc-8-branch. + 2019-01-23 Xiong Hu Luo + + * gcc.target/powerpc/crypto-builtin-1.c + (crypto1_be, crypto2_be, crypto3_be, crypto4_be, crypto5_be): + New testcases. + + 2019-03-05 Richard Biener + + Backport from mainline + 2019-02-26 Richard Biener + + PR tree-optimization/89505 + * gcc.dg/torture/pr89505.c: New testcase. + + 2019-03-03 Harald Anlauf + + Backport from trunk + PR fortran/89077 + * gfortran.dg/transfer_simplify_12.f90: New test. + * gfortran.dg/substr_simplify.f90: New test. + + 2019-03-03 Harald Anlauf + + Backport from trunk + PR fortran/77583 + * gfortran.dg/pr77583.f90: New test. + + 2019-03-03 Thomas Koenig + + PR fortran/89174 + Backport from trunk + * gfortran.dg/allocate_with_mold_3.f90: New test. + + 2019-03-03 Thomas Koenig + + PR fortran/87689 + Backport from trunk + * gfortran.dg/lto/20091028-1_0.f90: Add -Wno-lto-type-mismatch to + options. + * gfortran.dg/lto/20091028-2_0.f90: Likewise. + * gfortran.dg/lto/pr87689_0.f: New file. + * gfortran.dg/lto/pr87689_1.f: New file. + * gfortran.dg/altreturn_9_0.f90: New file. + * gfortran.dg/altreturn_9_1.f90: New file. + + 2019-03-02 Jerry DeLisle + + Backport from trunk + PR fortran/84387 + * gfortran.dg/dtio_34.f90: New test. + + 2019-03-02 Harald Anlauf + + Backport from trunk + PR fortran/89516 + * gfortran.dg/pr89492.f90: Adjust testcase. + * gfortran.dg/transfer_check_5.f90: New test. + + PR fortran/89492 + * gfortran.dg/pr89492.f90: New test. + + PR fortran/89266 + PR fortran/88326 + * gfortran.dg/pr89266.f90: New test. + * gfortran.dg/pr88326.f90: New test. + + 2019-02-28 Eric Botcazou + + * gcc.c-torture/execute/20190228-1.c: New test. + + 2019-02-28 Li Jia He + + Backport from trunk + 2019-02-20 Li Jia He + + PR target/88100 + * gcc/testsuite/gcc.target/powerpc/pr88100.c: New testcase. + + 2019-02-26 Eric Botcazou + + * gnat.dg/opt77.adb: New test. + * gnat.dg/opt77_pkg.ad[sb]: New helper. + + 2019-02-23 Thomas Koenig + + PR fortran/86119 + Backport from trunk + * gfortran.dg/warn_conversion_11.f90: New test. + + 2019-02-23 Paul Thomas + + Backport from trunk + PR fortran/88117 + * gfortran.dg/deferred_character_32.f90: New test + + 2019-02-12 Thomas Koenig + + PR fortran/71066 + Backport from trunk + * gfortran.dg/coarray_data_1.f90: New test. + 2019-02-22 Release Manager * GCC 8.3.0 released. diff -Nrcpad gcc-8.3.0/gcc/testsuite/c-c++-common/cold-1.c gcc-8.4.0/gcc/testsuite/c-c++-common/cold-1.c *** gcc-8.3.0/gcc/testsuite/c-c++-common/cold-1.c Thu Jan 1 00:00:00 1970 --- gcc-8.4.0/gcc/testsuite/c-c++-common/cold-1.c Wed Mar 4 08:30:01 2020 *************** *** 0 **** --- 1,22 ---- + /* PR ipa/93087 */ + /* { dg-do compile { target nonpic } } */ + /* { dg-options "-O1 -Wsuggest-attribute=cold" } */ + + extern void *getdata (void); + extern int set_error (char const *message) __attribute__((cold)); + + __attribute__((cold)) int + set_nomem (void) /* { dg-bogus "function might be candidate for attribute 'cold'" } */ + { + return set_error ("Allocation failed"); + } + + void * + getdata_or_set_error (void) + { + void *result; + result = getdata (); + if (!result) + set_nomem (); + return result; + } diff -Nrcpad gcc-8.3.0/gcc/testsuite/c-c++-common/cpp/pr92296-1.c gcc-8.4.0/gcc/testsuite/c-c++-common/cpp/pr92296-1.c *** gcc-8.3.0/gcc/testsuite/c-c++-common/cpp/pr92296-1.c Thu Jan 1 00:00:00 1970 --- gcc-8.4.0/gcc/testsuite/c-c++-common/cpp/pr92296-1.c Wed Mar 4 08:30:01 2020 *************** *** 0 **** --- 1,32 ---- + /* PR preprocessor/92296 */ + /* { dg-do preprocess } */ + + #pragma push_macro("__TIMESTAMP__") + #pragma pop_macro("__TIMESTAMP__") + + #pragma push_macro("__TIME__") + #pragma pop_macro("__TIME__") + + #pragma push_macro("__DATE__") + #pragma pop_macro("__DATE__") + + #pragma push_macro("__FILE__") + #pragma pop_macro("__FILE__") + + #pragma push_macro("__BASE_FILE__") + #pragma pop_macro("__BASE_FILE__") + + #pragma push_macro("__LINE__") + #pragma pop_macro("__LINE__") + + #pragma push_macro("__INCLUDE_LEVEL__") + #pragma pop_macro("__INCLUDE_LEVEL__") + + #pragma push_macro("__COUNTER__") + #pragma pop_macro("__COUNTER__") + + #pragma push_macro("__has_attribute") + #pragma pop_macro("__has_attribute") + + #pragma push_macro("__has_cpp_attribute") + #pragma pop_macro("__has_cpp_attribute") diff -Nrcpad gcc-8.3.0/gcc/testsuite/c-c++-common/cpp/pr92296-2.c gcc-8.4.0/gcc/testsuite/c-c++-common/cpp/pr92296-2.c *** gcc-8.3.0/gcc/testsuite/c-c++-common/cpp/pr92296-2.c Thu Jan 1 00:00:00 1970 --- gcc-8.4.0/gcc/testsuite/c-c++-common/cpp/pr92296-2.c Wed Mar 4 08:30:01 2020 *************** *** 0 **** --- 1,73 ---- + /* PR preprocessor/92296 */ + /* { dg-do preprocess } */ + /* { dg-options "-Wno-builtin-macro-redefined" } */ + + #pragma push_macro("__TIMESTAMP__") + #undef __TIMESTAMP__ + #define __TIMESTAMP__ "Thu Oct 31 12:00:00 2019" + timestamp1 = __TIMESTAMP__ + #pragma pop_macro("__TIMESTAMP__") + timestamp2 = __TIMESTAMP__ + + #pragma push_macro("__TIME__") + #undef __TIME__ + #define __TIME__ "12:00:00" + time1 = __TIME__ + #pragma pop_macro("__TIME__") + time2 = __TIME__ + + #pragma push_macro("__DATE__") + #undef __DATE__ + #define __DATE__ "Oct 31 2019" + date1 = __DATE__ + #pragma pop_macro("__DATE__") + date2 = __DATE__ + + #pragma push_macro("__FILE__") + #undef __FILE__ + #define __FILE__ "pr92296-3.c" + file1 = __FILE__ /* { dg-final { scan-file pr92296-2.i "file1 = \"pr92296-3.c\"" } } */ + #pragma pop_macro("__FILE__") + file2 = __FILE__ /* { dg-final { scan-file-not pr92296-2.i "file2 = \"pr92296-3.c\"" } } */ + + #pragma push_macro("__BASE_FILE__") + #undef __BASE_FILE__ + #define __BASE_FILE__ "pr92296-4.c" + filebase1 = __BASE_FILE__ /* { dg-final { scan-file pr92296-2.i "filebase1 = \"pr92296-4.c\"" } } */ + #pragma pop_macro("__BASE_FILE__") + filebase2 = __BASE_FILE__ /* { dg-final { scan-file-not pr92296-2.i "filebase2 = \"pr92296-4.c\"" } } */ + + #pragma push_macro("__LINE__") + #undef __LINE__ /* { dg-warning "undefining" } */ + #define __LINE__ 142 + line1 = __LINE__ /* { dg-final { scan-file pr92296-2.i "line1 = 142" } } */ + #pragma pop_macro("__LINE__") + line2 = __LINE__ /* { dg-final { scan-file pr92296-2.i "line2 = 45" } } */ + + #pragma push_macro("__INCLUDE_LEVEL__") + #undef __INCLUDE_LEVEL__ /* { dg-warning "undefining" } */ + #define __INCLUDE_LEVEL__ 42 + includelevel1 = __INCLUDE_LEVEL__ /* { dg-final { scan-file pr92296-2.i "includelevel1 = 42" } } */ + #pragma pop_macro("__INCLUDE_LEVEL__") + includelevel2 = __INCLUDE_LEVEL__ /* { dg-final { scan-file pr92296-2.i "includelevel2 = 0" } } */ + + #pragma push_macro("__COUNTER__") + #undef __COUNTER__ /* { dg-warning "undefining" } */ + #define __COUNTER__ 172 + counter1 = __COUNTER__ /* { dg-final { scan-file pr92296-2.i "counter1 = 172" } } */ + #pragma pop_macro("__COUNTER__") + counter2 = __COUNTER__ /* { dg-final { scan-file-not pr92296-2.i "counter2 = 172" } } */ + + #pragma push_macro("__has_attribute") + #undef __has_attribute /* { dg-warning "undefining" } */ + #define __has_attribute(x) 0 + hasattr1 = __has_attribute(noreturn) /* { dg-final { scan-file pr92296-2.i "hasattr1 = 0" } } */ + #pragma pop_macro("__has_attribute") + hasattr2 = __has_attribute(noreturn) /* { dg-final { scan-file-not pr92296-2.i "hasattr2 = 0" } } */ + + #pragma push_macro("__has_cpp_attribute") + #undef __has_cpp_attribute /* { dg-warning "undefining" } */ + #define __has_cpp_attribute(x) 0 + hasattrcpp1 = __has_cpp_attribute(noreturn) /* { dg-final { scan-file pr92296-2.i "hasattrcpp1 = 0" } } */ + #pragma pop_macro("__has_cpp_attribute") + hasattrcpp2 = __has_cpp_attribute(noreturn) /* { dg-final { scan-file-not pr92296-2.i "hasattrcpp2 = 0" } } */ diff -Nrcpad gcc-8.3.0/gcc/testsuite/c-c++-common/gomp/pr88588.c gcc-8.4.0/gcc/testsuite/c-c++-common/gomp/pr88588.c *** gcc-8.3.0/gcc/testsuite/c-c++-common/gomp/pr88588.c Thu Jan 1 00:00:00 1970 --- gcc-8.4.0/gcc/testsuite/c-c++-common/gomp/pr88588.c Wed Mar 4 08:30:01 2020 *************** *** 0 **** --- 1,18 ---- + /* PR middle-end/88588 */ + /* { dg-do compile } */ + /* { dg-options "-fopenmp -O1" } */ + + int *v; + + #pragma omp declare simd + void + foo (int x) + { + int *a = &x; + + for (;;) + { + *v = *a; + a = v; + } + } diff -Nrcpad gcc-8.3.0/gcc/testsuite/c-c++-common/gomp/pr90954.c gcc-8.4.0/gcc/testsuite/c-c++-common/gomp/pr90954.c *** gcc-8.3.0/gcc/testsuite/c-c++-common/gomp/pr90954.c Thu Jan 1 00:00:00 1970 --- gcc-8.4.0/gcc/testsuite/c-c++-common/gomp/pr90954.c Wed Mar 4 08:30:01 2020 *************** *** 0 **** --- 1,27 ---- + /* PR sanitizer/90954 */ + /* { dg-do compile } */ + /* { dg-options "-fopenmp -fsanitize=undefined" } */ + + float v; + int i; + + void + foo (float x, float y) + { + #pragma omp atomic + v += x / y; + } + + void + bar (int x, int y) + { + #pragma omp atomic + i += x / y; + } + + void + baz (int x, int y) + { + #pragma omp atomic + i *= (x << y); + } diff -Nrcpad gcc-8.3.0/gcc/testsuite/c-c++-common/gomp/pr91401-1.c gcc-8.4.0/gcc/testsuite/c-c++-common/gomp/pr91401-1.c *** gcc-8.3.0/gcc/testsuite/c-c++-common/gomp/pr91401-1.c Thu Jan 1 00:00:00 1970 --- gcc-8.4.0/gcc/testsuite/c-c++-common/gomp/pr91401-1.c Wed Mar 4 08:30:01 2020 *************** *** 0 **** --- 1,10 ---- + /* PR c/91401 */ + + void + foo (void) + { + int i; + #pragma omp distribute parallel for schedule (static) dist_schedule (static) + for (i = 0; i < 64; i++) + ; + } diff -Nrcpad gcc-8.3.0/gcc/testsuite/c-c++-common/gomp/pr91401-2.c gcc-8.4.0/gcc/testsuite/c-c++-common/gomp/pr91401-2.c *** gcc-8.3.0/gcc/testsuite/c-c++-common/gomp/pr91401-2.c Thu Jan 1 00:00:00 1970 --- gcc-8.4.0/gcc/testsuite/c-c++-common/gomp/pr91401-2.c Wed Mar 4 08:30:01 2020 *************** *** 0 **** --- 1,15 ---- + #pragma omp declare target + void f0 (void); + + void + f1 (void) + { + int i; + #pragma omp distribute dist_schedule(static) dist_schedule(static) /* { dg-warning "too many 'dist_schedule' clauses" } */ + for (i = 0; i < 8; ++i) + f0 (); + #pragma omp distribute dist_schedule(static,2) dist_schedule(static,4) /* { dg-warning "too many 'dist_schedule' clauses" } */ + for (i = 0; i < 8; ++i) + f0 (); + } + #pragma omp end declare target diff -Nrcpad gcc-8.3.0/gcc/testsuite/c-c++-common/gomp/pr93555-1.c gcc-8.4.0/gcc/testsuite/c-c++-common/gomp/pr93555-1.c *** gcc-8.3.0/gcc/testsuite/c-c++-common/gomp/pr93555-1.c Thu Jan 1 00:00:00 1970 --- gcc-8.4.0/gcc/testsuite/c-c++-common/gomp/pr93555-1.c Wed Mar 4 08:30:01 2020 *************** *** 0 **** --- 1,18 ---- + /* PR middle-end/93555 */ + /* { dg-do compile } */ + + #pragma omp declare simd + #pragma omp declare simd inbranch + int + foo (int x) + { + return x; + } + + #pragma omp declare simd inbranch + #pragma omp declare simd + int + bar (int x) + { + return x; + } diff -Nrcpad gcc-8.3.0/gcc/testsuite/c-c++-common/gomp/pr93555-2.c gcc-8.4.0/gcc/testsuite/c-c++-common/gomp/pr93555-2.c *** gcc-8.3.0/gcc/testsuite/c-c++-common/gomp/pr93555-2.c Thu Jan 1 00:00:00 1970 --- gcc-8.4.0/gcc/testsuite/c-c++-common/gomp/pr93555-2.c Wed Mar 4 08:30:01 2020 *************** *** 0 **** --- 1,16 ---- + /* PR middle-end/93555 */ + /* { dg-do compile } */ + + #pragma omp declare simd + #pragma omp declare simd inbranch + void + foo (void) + { + } + + #pragma omp declare simd inbranch + #pragma omp declare simd + void + bar (void) + { + } diff -Nrcpad gcc-8.3.0/gcc/testsuite/c-c++-common/pr53633-2.c gcc-8.4.0/gcc/testsuite/c-c++-common/pr53633-2.c *** gcc-8.3.0/gcc/testsuite/c-c++-common/pr53633-2.c Thu Jan 1 00:00:00 1970 --- gcc-8.4.0/gcc/testsuite/c-c++-common/pr53633-2.c Wed Mar 4 08:30:01 2020 *************** *** 0 **** --- 1,19 ---- + /* { dg-do compile } */ + /* { dg-require-effective-target naked_functions } */ + /* { dg-options "-O2 -Wall" } */ + /* Check that we do not get warnings about missing return statements + or bogus looking noreturn functions. */ + static int __attribute__((naked)) + foo (void) + { + __asm__ (""); + } + + static int __attribute__((naked,noreturn)) + bar (void) + { + __asm__ (""); + } + + int foo_caller (void) { return foo (); } + int bar_caller (void) { return bar (); } diff -Nrcpad gcc-8.3.0/gcc/testsuite/c-c++-common/pr89933.c gcc-8.4.0/gcc/testsuite/c-c++-common/pr89933.c *** gcc-8.3.0/gcc/testsuite/c-c++-common/pr89933.c Thu Jan 1 00:00:00 1970 --- gcc-8.4.0/gcc/testsuite/c-c++-common/pr89933.c Wed Mar 4 08:30:01 2020 *************** *** 0 **** --- 1,5 ---- + /* PR c/89933 */ + /* { dg-do compile } */ + + typedef unsigned int a __attribute__ ((__aligned__(8), __may_alias__)); + typedef unsigned int a __attribute__ ((__aligned__(8), __may_alias__)); diff -Nrcpad gcc-8.3.0/gcc/testsuite/c-c++-common/pr89946.c gcc-8.4.0/gcc/testsuite/c-c++-common/pr89946.c *** gcc-8.3.0/gcc/testsuite/c-c++-common/pr89946.c Thu Jan 1 00:00:00 1970 --- gcc-8.4.0/gcc/testsuite/c-c++-common/pr89946.c Wed Mar 4 08:30:01 2020 *************** *** 0 **** --- 1,7 ---- + /* PR c/89946 */ + + __attribute__((patchable_function_entry (-1))) void foo (void) {} /* { dg-warning "'patchable_function_entry' attribute argument '-1' is not an integer constant" } */ + __attribute__((patchable_function_entry (5, -5))) void bar (void) {} /* { dg-warning "'patchable_function_entry' attribute argument '-5' is not an integer constant" } */ + int i, j; + __attribute__((patchable_function_entry (i))) void baz (void) {} /* { dg-warning "'patchable_function_entry' attribute argument 'i' is not an integer constant" } */ + __attribute__((patchable_function_entry (2, j))) void qux (void) {} /* { dg-warning "'patchable_function_entry' attribute argument 'j' is not an integer constant" } */ diff -Nrcpad gcc-8.3.0/gcc/testsuite/c-c++-common/pr90108.c gcc-8.4.0/gcc/testsuite/c-c++-common/pr90108.c *** gcc-8.3.0/gcc/testsuite/c-c++-common/pr90108.c Thu Jan 1 00:00:00 1970 --- gcc-8.4.0/gcc/testsuite/c-c++-common/pr90108.c Wed Mar 4 08:30:01 2020 *************** *** 0 **** --- 1,6 ---- + /* PR c++/90108 */ + /* { dg-do compile } */ + /* { dg-options "--param ggc-min-heapsize=0" } */ + + typedef unsigned int a __attribute__ ((__aligned__(8), __may_alias__)); + typedef unsigned int a __attribute__ ((__aligned__(8), __may_alias__)); diff -Nrcpad gcc-8.3.0/gcc/testsuite/c-c++-common/unroll-6.c gcc-8.4.0/gcc/testsuite/c-c++-common/unroll-6.c *** gcc-8.3.0/gcc/testsuite/c-c++-common/unroll-6.c Thu Jan 1 00:00:00 1970 --- gcc-8.4.0/gcc/testsuite/c-c++-common/unroll-6.c Wed Mar 4 08:30:01 2020 *************** *** 0 **** --- 1,9 ---- + /* { dg-do compile } */ + /* { dg-options "-O -fno-tree-loop-optimize" } */ + + void test (void) + { + #pragma GCC unroll 2 + for (int nv = 0; nv <= 2; nv += 2) + {} + } diff -Nrcpad gcc-8.3.0/gcc/testsuite/c-c++-common/unroll-7.c gcc-8.4.0/gcc/testsuite/c-c++-common/unroll-7.c *** gcc-8.3.0/gcc/testsuite/c-c++-common/unroll-7.c Thu Jan 1 00:00:00 1970 --- gcc-8.4.0/gcc/testsuite/c-c++-common/unroll-7.c Wed Mar 4 08:30:01 2020 *************** *** 0 **** --- 1,11 ---- + /* { dg-do compile } */ + /* { dg-options "-O -fno-tree-dominator-opts" } */ + + int nv; + + void test (void) + { + #pragma GCC unroll 2 + for (nv = 0; nv < 1; ++nv) + {} + } diff -Nrcpad gcc-8.3.0/gcc/testsuite/g++.dg/asan/pr90570.C gcc-8.4.0/gcc/testsuite/g++.dg/asan/pr90570.C *** gcc-8.3.0/gcc/testsuite/g++.dg/asan/pr90570.C Thu Jan 1 00:00:00 1970 --- gcc-8.4.0/gcc/testsuite/g++.dg/asan/pr90570.C Wed Mar 4 08:30:01 2020 *************** *** 0 **** --- 1,18 ---- + /* PR sanitizer/90570 */ + /* { dg-do run } */ + + #include + + struct stru + { + std::vector v{1,2,3,4}; + int i{5}; + }; + + int main() + { + stru s1; + stru s2; + + return 0; + } diff -Nrcpad gcc-8.3.0/gcc/testsuite/g++.dg/asm-qual-3.C gcc-8.4.0/gcc/testsuite/g++.dg/asm-qual-3.C *** gcc-8.3.0/gcc/testsuite/g++.dg/asm-qual-3.C Wed Jan 2 22:34:36 2019 --- gcc-8.4.0/gcc/testsuite/g++.dg/asm-qual-3.C Wed Mar 4 08:30:01 2020 *************** *** 2,12 **** // { dg-do compile } // { dg-options "-std=gnu++98" } ! asm const (""); // { dg-error {expected '\(' before 'const'} } ! asm volatile (""); // { dg-error {expected '\(' before 'volatile'} } asm restrict (""); // { dg-error {expected '\(' before 'restrict'} } ! asm inline (""); // { dg-error {expected '\(' before 'inline'} } ! asm goto (""); // { dg-error {expected '\(' before 'goto'} } // There are many other things wrong with this code, so: // { dg-excess-errors "" } --- 2,12 ---- // { dg-do compile } // { dg-options "-std=gnu++98" } ! asm const (""); // { dg-error {'const' is not an asm qualifier} } ! asm volatile (""); asm restrict (""); // { dg-error {expected '\(' before 'restrict'} } ! asm inline (""); // { dg-error {asm qualifier outside of function body} } ! asm goto (""); // { dg-error {asm qualifier outside of function body} } // There are many other things wrong with this code, so: // { dg-excess-errors "" } diff -Nrcpad gcc-8.3.0/gcc/testsuite/g++.dg/cet-notrack-1.C gcc-8.4.0/gcc/testsuite/g++.dg/cet-notrack-1.C *** gcc-8.3.0/gcc/testsuite/g++.dg/cet-notrack-1.C Tue Apr 24 16:54:35 2018 --- gcc-8.4.0/gcc/testsuite/g++.dg/cet-notrack-1.C Wed Mar 4 08:30:01 2020 *************** *** 1,7 **** /* { dg-do compile { target i?86-*-* x86_64-*-* } } */ /* { dg-options "-fcf-protection" } */ /* { dg-final { scan-assembler "endbr32|endbr64" } } */ ! /* { dg-final { scan-assembler-times "\tcall\[ \t]+puts" 2 } } */ /* { dg-final { scan-assembler-times "notrack call\[ \t]+" 1 } } */ #include --- 1,7 ---- /* { dg-do compile { target i?86-*-* x86_64-*-* } } */ /* { dg-options "-fcf-protection" } */ /* { dg-final { scan-assembler "endbr32|endbr64" } } */ ! /* { dg-final { scan-assembler-times "\tcall\[ \t]+_?puts" 2 } } */ /* { dg-final { scan-assembler-times "notrack call\[ \t]+" 1 } } */ #include diff -Nrcpad gcc-8.3.0/gcc/testsuite/g++.dg/concepts/no-bool1.C gcc-8.4.0/gcc/testsuite/g++.dg/concepts/no-bool1.C *** gcc-8.3.0/gcc/testsuite/g++.dg/concepts/no-bool1.C Thu Jan 1 00:00:00 1970 --- gcc-8.4.0/gcc/testsuite/g++.dg/concepts/no-bool1.C Wed Mar 4 08:30:01 2020 *************** *** 0 **** --- 1,4 ---- + // { dg-do compile { target c++14 } } + // { dg-additional-options -fconcepts } + + template concept True = true; diff -Nrcpad gcc-8.3.0/gcc/testsuite/g++.dg/cpp0x/alignas4.C gcc-8.4.0/gcc/testsuite/g++.dg/cpp0x/alignas4.C *** gcc-8.3.0/gcc/testsuite/g++.dg/cpp0x/alignas4.C Tue Apr 24 15:54:56 2018 --- gcc-8.4.0/gcc/testsuite/g++.dg/cpp0x/alignas4.C Wed Mar 4 08:30:01 2020 *************** *** 1,7 **** // PR c++/59012 // { dg-do compile { target c++11 } } // { dg-final { scan-assembler "align 8" { target { { i?86-*-* x86_64-*-* } && { { ! ia32 } && { ! *-*-darwin* } } } } } } ! // { dg-final { scan-assembler "align 4" { target ia32 } } } template struct A --- 1,13 ---- // PR c++/59012 // { dg-do compile { target c++11 } } // { dg-final { scan-assembler "align 8" { target { { i?86-*-* x86_64-*-* } && { { ! ia32 } && { ! *-*-darwin* } } } } } } ! // { dg-final { scan-assembler "align 4" { target { ia32 && { ! *-*-darwin* } } } } } ! ! // Darwin produces aligned .zerofill directives for these. ! // { dg-final { scan-assembler {zerofill[^\n\r]+_a,4,2} { target { ilp32 && *-*-darwin* } } } } ! // { dg-final { scan-assembler {zerofill[^\n\r]+_a,8,3} { target { lp64 && *-*-darwin* } } } } ! // { dg-final { scan-assembler {zerofill[^\n\r]+_a2,4,2} { target { ilp32 && *-*-darwin* } } } } ! // { dg-final { scan-assembler {zerofill[^\n\r]+_a2,8,3} { target { lp64 && *-*-darwin* } } } } template struct A diff -Nrcpad gcc-8.3.0/gcc/testsuite/g++.dg/cpp0x/constexpr-array24.C gcc-8.4.0/gcc/testsuite/g++.dg/cpp0x/constexpr-array24.C *** gcc-8.3.0/gcc/testsuite/g++.dg/cpp0x/constexpr-array24.C Thu Jan 1 00:00:00 1970 --- gcc-8.4.0/gcc/testsuite/g++.dg/cpp0x/constexpr-array24.C Wed Mar 4 08:30:01 2020 *************** *** 0 **** --- 1,10 ---- + // PR c++/90951 + // { dg-do compile { target c++11 } } + + #define assert(expr) static_assert (expr, #expr) + + struct S { const char a[2]; }; + + constexpr struct S a[1][1][1] = { }; + + assert ('\0' == *a[0][0][0].a); diff -Nrcpad gcc-8.3.0/gcc/testsuite/g++.dg/cpp0x/constexpr-static13.C gcc-8.4.0/gcc/testsuite/g++.dg/cpp0x/constexpr-static13.C *** gcc-8.3.0/gcc/testsuite/g++.dg/cpp0x/constexpr-static13.C Thu Jan 1 00:00:00 1970 --- gcc-8.4.0/gcc/testsuite/g++.dg/cpp0x/constexpr-static13.C Wed Mar 4 08:30:01 2020 *************** *** 0 **** --- 1,17 ---- + // PR c++/92003 + // { dg-do compile { target c++11 } } + // { dg-prune-output "narrowing conversion" } + + constexpr char const* get_c_str() { return "abc"; } + constexpr bool use_get_c_str_in_constexpr_context{get_c_str()}; // works + + template + struct string { + static constexpr char const* c_str() { return c; } + + private: + static constexpr char c[]{Cs..., '\0'}; + }; + + constexpr char const* cstr{string<'a', 'b', 'c'>::c_str()}; + constexpr bool use_cstr_in_constexpr_context{cstr}; // doesn't work diff -Nrcpad gcc-8.3.0/gcc/testsuite/g++.dg/cpp0x/decltype-tid1.C gcc-8.4.0/gcc/testsuite/g++.dg/cpp0x/decltype-tid1.C *** gcc-8.3.0/gcc/testsuite/g++.dg/cpp0x/decltype-tid1.C Thu Jan 1 00:00:00 1970 --- gcc-8.4.0/gcc/testsuite/g++.dg/cpp0x/decltype-tid1.C Wed Mar 4 08:30:01 2020 *************** *** 0 **** --- 1,9 ---- + // PR c++/87513 + // { dg-do compile { target c++11 } } + + struct A { template void foo (); }; + template auto bar () -> decltype (&A::foo); + void foo () + { + bar<0> (); + } diff -Nrcpad gcc-8.3.0/gcc/testsuite/g++.dg/cpp0x/enum23.C gcc-8.4.0/gcc/testsuite/g++.dg/cpp0x/enum23.C *** gcc-8.3.0/gcc/testsuite/g++.dg/cpp0x/enum23.C Sat Feb 16 01:07:11 2013 --- gcc-8.4.0/gcc/testsuite/g++.dg/cpp0x/enum23.C Wed Mar 4 08:30:01 2020 *************** enum class MyEnum { A = 1 }; *** 5,9 **** struct MyClass { ! MyEnum Field1 : 3; // { dg-bogus "warning: 'MyClass::Field1' is too small" "" { xfail *-*-* } } }; --- 5,9 ---- struct MyClass { ! MyEnum Field1 : 3; // { dg-bogus "warning: 'MyClass::Field1' is too small" } }; diff -Nrcpad gcc-8.3.0/gcc/testsuite/g++.dg/cpp0x/enum38.C gcc-8.4.0/gcc/testsuite/g++.dg/cpp0x/enum38.C *** gcc-8.3.0/gcc/testsuite/g++.dg/cpp0x/enum38.C Thu Jan 1 00:00:00 1970 --- gcc-8.4.0/gcc/testsuite/g++.dg/cpp0x/enum38.C Wed Mar 4 08:30:01 2020 *************** *** 0 **** --- 1,25 ---- + // PR c++/61414 + // { dg-do compile { target c++11 } } + + enum C { C0 = -4, C1 = 3 }; + enum D { D0 = 0, D1 = 15 }; + enum class E { E0 = -4, E1 = 3 }; + enum F : unsigned { F0 = 0, F1 = 15 }; + enum __attribute__((__mode__ (__QI__))) G { G0 = -4, G1 = 3 }; + enum __attribute__((__mode__ (__HI__))) H { H0 = 0, H1 = 15 }; + + struct S + { + C a : 2; // { dg-warning "'S::a' is too small to hold all values of 'enum C'" } + C b : 3; // { dg-bogus "'S::b' is too small to hold all values of 'enum C'" } + D c : 3; // { dg-warning "'S::c' is too small to hold all values of 'enum D'" } + D d : 4; // { dg-bogus "'S::d' is too small to hold all values of 'enum D'" } + E e : 2; // { dg-warning "'S::e' is too small to hold all values of 'enum class E'" } + E f : 3; // { dg-bogus "'S::f' is too small to hold all values of 'enum class E'" } + F g : 3; // { dg-warning "'S::g' is too small to hold all values of 'enum F'" } + F h : 4; // { dg-bogus "'S::h' is too small to hold all values of 'enum F'" } + G i : 2; // { dg-warning "'S::i' is too small to hold all values of 'enum G'" } + G j : 3; // { dg-bogus "'S::j' is too small to hold all values of 'enum G'" } + H k : 3; // { dg-warning "'S::k' is too small to hold all values of 'enum H'" } + H l : 4; // { dg-bogus "'S::l' is too small to hold all values of 'enum H'" } + }; diff -Nrcpad gcc-8.3.0/gcc/testsuite/g++.dg/cpp0x/enum39.C gcc-8.4.0/gcc/testsuite/g++.dg/cpp0x/enum39.C *** gcc-8.3.0/gcc/testsuite/g++.dg/cpp0x/enum39.C Thu Jan 1 00:00:00 1970 --- gcc-8.4.0/gcc/testsuite/g++.dg/cpp0x/enum39.C Wed Mar 4 08:30:01 2020 *************** *** 0 **** --- 1,15 ---- + // PR c++/61414 + // { dg-do compile { target c++11 } } + + enum class E { E0 = -4, E1 = 3 }; + enum F : unsigned { F0 = 0, F1 = 15 }; + + struct S + { + E a : 2; // { dg-warning "'S::a' is too small to hold all values of 'enum class E'" } + E b : 2; // { dg-warning "'S::b' is too small to hold all values of 'enum class E'" } + E c : 3; // { dg-bogus "'S::c' is too small to hold all values of 'enum class E'" } + F d : 3; // { dg-warning "'S::d' is too small to hold all values of 'enum F'" } + F e : 3; // { dg-warning "'S::e' is too small to hold all values of 'enum F'" } + F f : 4; // { dg-bogus "'S::f' is too small to hold all values of 'enum F'" } + }; diff -Nrcpad gcc-8.3.0/gcc/testsuite/g++.dg/cpp0x/extern_template-5.C gcc-8.4.0/gcc/testsuite/g++.dg/cpp0x/extern_template-5.C *** gcc-8.3.0/gcc/testsuite/g++.dg/cpp0x/extern_template-5.C Thu Jan 1 00:00:00 1970 --- gcc-8.4.0/gcc/testsuite/g++.dg/cpp0x/extern_template-5.C Wed Mar 4 08:30:01 2020 *************** *** 0 **** --- 1,36 ---- + // PR c++/87554 + // { dg-options "-O" } + + template < class a > class b { + static void c(a); + static a &create() { c(instance); return mya; } + + static a mya; + + public: + static a d() { create(); return a(); } + static a &instance; + }; + template < class a > a &b< a >::instance = create(); + class e; + class f { + public: + void operator()(int g) { h(g); } + template < class a > void h(a i) { p(j, i); } + e *j; + }; + class e : public f { + public: + e(int); + }; + struct k { + int l; + }; + template < class m, class a > void p(m, a) { b< k >::d(); } + extern template class b< k >; + int n; + int o; + void test() { + e out(o); + out(n); + } diff -Nrcpad gcc-8.3.0/gcc/testsuite/g++.dg/cpp0x/fntmpdefarg11.C gcc-8.4.0/gcc/testsuite/g++.dg/cpp0x/fntmpdefarg11.C *** gcc-8.3.0/gcc/testsuite/g++.dg/cpp0x/fntmpdefarg11.C Thu Jan 1 00:00:00 1970 --- gcc-8.4.0/gcc/testsuite/g++.dg/cpp0x/fntmpdefarg11.C Wed Mar 4 08:30:01 2020 *************** *** 0 **** --- 1,15 ---- + // PR c++/87480 + // { dg-do compile { target c++11 } } + + template T&& declval(); + + template ().d)> void f(T) { } + + struct A { + double d; + }; + + template + void j(A& a) { + f(a); + } diff -Nrcpad gcc-8.3.0/gcc/testsuite/g++.dg/cpp0x/gen-attrs-71.C gcc-8.4.0/gcc/testsuite/g++.dg/cpp0x/gen-attrs-71.C *** gcc-8.3.0/gcc/testsuite/g++.dg/cpp0x/gen-attrs-71.C Thu Jan 1 00:00:00 1970 --- gcc-8.4.0/gcc/testsuite/g++.dg/cpp0x/gen-attrs-71.C Wed Mar 4 08:30:01 2020 *************** *** 0 **** --- 1,7 ---- + // PR c++/92648 + // { dg-do compile { target c++11 } } + + int a [[gnu::no_such_attribute(![!(!)!]!,;;)]]; // { dg-warning "ignored" } + int b [[no_such_namespace::nonexisting_attribute(linear(c, d : 2), reduction(*:e), linear(uval (f)))]]; // { dg-warning "ignored" } + int c [[gnu::nonexisting_attribute()]]; // { dg-warning "ignored" } + int d [[gnu::another_nonexistent_attr(1,"abcd",g+6)]]; // { dg-warning "ignored" } diff -Nrcpad gcc-8.3.0/gcc/testsuite/g++.dg/cpp0x/implicit16.C gcc-8.4.0/gcc/testsuite/g++.dg/cpp0x/implicit16.C *** gcc-8.3.0/gcc/testsuite/g++.dg/cpp0x/implicit16.C Thu Jan 1 00:00:00 1970 --- gcc-8.4.0/gcc/testsuite/g++.dg/cpp0x/implicit16.C Wed Mar 4 08:30:01 2020 *************** *** 0 **** --- 1,37 ---- + // PR c++/89381 + // { dg-do compile { target c++11 } } + + template + struct base + { + base() { } + base(const base&) { } + base(base&&) { } + base& operator=(const base&) { return *this; } + base& operator=(base&&) { return *this; } + }; + + struct foo : base + { + using base::base; + using base::operator=; + }; + + //using workaround = decltype(foo{*static_cast(0)}); + + struct bar + { + bar& operator=(foo ve) + { + value = ve; + return *this; + } + + foo value; + }; + + int main() + { + foo a; + foo b{a}; + } diff -Nrcpad gcc-8.3.0/gcc/testsuite/g++.dg/cpp0x/initlist-value4.C gcc-8.4.0/gcc/testsuite/g++.dg/cpp0x/initlist-value4.C *** gcc-8.3.0/gcc/testsuite/g++.dg/cpp0x/initlist-value4.C Thu Jan 1 00:00:00 1970 --- gcc-8.4.0/gcc/testsuite/g++.dg/cpp0x/initlist-value4.C Wed Mar 4 08:30:01 2020 *************** *** 0 **** --- 1,12 ---- + // PR c++/88857 + // { dg-do compile { target c++11 } } + + class S { int a; }; + void foo (const S &, int); + + template + void + bar () + { + foo ({}); // { dg-error "too few arguments to function" } + } diff -Nrcpad gcc-8.3.0/gcc/testsuite/g++.dg/cpp0x/initlist118.C gcc-8.4.0/gcc/testsuite/g++.dg/cpp0x/initlist118.C *** gcc-8.3.0/gcc/testsuite/g++.dg/cpp0x/initlist118.C Thu Jan 1 00:00:00 1970 --- gcc-8.4.0/gcc/testsuite/g++.dg/cpp0x/initlist118.C Wed Mar 4 08:30:01 2020 *************** *** 0 **** --- 1,26 ---- + // PR c++/92745 - bogus error when initializing array of vectors. + // { dg-do compile { target c++11 } } + // { dg-options "-Wno-psabi -w" } + + template struct c { + typedef a d[b]; + }; + + template struct array { + typename c::d e; + a operator[](long); + }; + + template + using vec4_t __attribute__((vector_size(4*sizeof(T)))) = float; + + array, 4> + transpose(array, 4> col) + { + array, 4> + ret{vec4_t{col[0][0], col[1][0], col[2][0], col[3][0]}, + vec4_t{col[0][1], col[1][1], col[2][1], col[3][1]}, + vec4_t{col[0][2], col[1][2], col[2][2], col[3][2]}, + vec4_t{col[0][3], col[1][3], col[2][3], col[3][3]}}; + return ret; + } diff -Nrcpad gcc-8.3.0/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-defarg9.C gcc-8.4.0/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-defarg9.C *** gcc-8.3.0/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-defarg9.C Thu Jan 1 00:00:00 1970 --- gcc-8.4.0/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-defarg9.C Wed Mar 4 08:30:01 2020 *************** *** 0 **** --- 1,10 ---- + // PR c++/89422 + // { dg-do compile { target c++11 } } + // { dg-additional-options -g } + + template struct S + { + friend void foo (int a = []{ return 0; }()) {} + int b; + }; + S<0> t; diff -Nrcpad gcc-8.3.0/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-variadic8.C gcc-8.4.0/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-variadic8.C *** gcc-8.3.0/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-variadic8.C Thu Jan 1 00:00:00 1970 --- gcc-8.4.0/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-variadic8.C Wed Mar 4 08:30:01 2020 *************** *** 0 **** --- 1,14 ---- + // PR c++/89917 + // { dg-do compile { target c++11 } } + + struct A + { + A(...); + }; + + template struct B : T... + { + B() : T([]{})... {} + }; + + B b; diff -Nrcpad gcc-8.3.0/gcc/testsuite/g++.dg/cpp0x/nullptr40.C gcc-8.4.0/gcc/testsuite/g++.dg/cpp0x/nullptr40.C *** gcc-8.3.0/gcc/testsuite/g++.dg/cpp0x/nullptr40.C Thu Jan 1 00:00:00 1970 --- gcc-8.4.0/gcc/testsuite/g++.dg/cpp0x/nullptr40.C Wed Mar 4 08:30:01 2020 *************** *** 0 **** --- 1,19 ---- + // PR c++/89212 + // { dg-do compile { target c++11 } } + + template using enable_if_t = int; + + template + struct p + { + template> + p(T) { } + p() = default; + }; + + struct A + { + p i = 1; + void bar(); + p j; + }; diff -Nrcpad gcc-8.3.0/gcc/testsuite/g++.dg/cpp0x/nullptr41.C gcc-8.4.0/gcc/testsuite/g++.dg/cpp0x/nullptr41.C *** gcc-8.3.0/gcc/testsuite/g++.dg/cpp0x/nullptr41.C Thu Jan 1 00:00:00 1970 --- gcc-8.4.0/gcc/testsuite/g++.dg/cpp0x/nullptr41.C Wed Mar 4 08:30:01 2020 *************** *** 0 **** --- 1,19 ---- + // PR c++/89212 + // { dg-do compile { target c++11 } } + + template using enable_if_t = int; + + template + struct p + { + template> + p(T) { } + p() = default; + }; + + struct A + { + p i = 1; + void bar(); + p j; + }; diff -Nrcpad gcc-8.3.0/gcc/testsuite/g++.dg/cpp0x/nullptr45.C gcc-8.4.0/gcc/testsuite/g++.dg/cpp0x/nullptr45.C *** gcc-8.3.0/gcc/testsuite/g++.dg/cpp0x/nullptr45.C Thu Jan 1 00:00:00 1970 --- gcc-8.4.0/gcc/testsuite/g++.dg/cpp0x/nullptr45.C Wed Mar 4 08:30:01 2020 *************** *** 0 **** --- 1,24 ---- + // PR c++/92992 + // { dg-do run { target c++11 } } + + int a; + + void + bar (int, ...) + { + } + + decltype (nullptr) + baz () + { + a++; + return nullptr; + } + + int + main () + { + bar (0, baz ()); + if (a != 1) + __builtin_abort (); + } diff -Nrcpad gcc-8.3.0/gcc/testsuite/g++.dg/cpp0x/overload-conv-3.C gcc-8.4.0/gcc/testsuite/g++.dg/cpp0x/overload-conv-3.C *** gcc-8.3.0/gcc/testsuite/g++.dg/cpp0x/overload-conv-3.C Thu Jan 1 00:00:00 1970 --- gcc-8.4.0/gcc/testsuite/g++.dg/cpp0x/overload-conv-3.C Wed Mar 4 08:30:01 2020 *************** *** 0 **** --- 1,21 ---- + // PR c++/86521 + // { dg-do compile { target c++11 } } + + template T&& move (T&); + + struct Dest { + Dest() = default; + Dest( Dest && ) = default; + Dest( Dest const & ) = delete; + }; + + struct Source { + Dest val; + operator Dest () && { return move( val ); } + operator Dest const & () const & { return val; } + }; + + int main() { + Source x; + Dest d(move(x)); // { dg-error "ambiguous" "" { target c++14_down } } + } diff -Nrcpad gcc-8.3.0/gcc/testsuite/g++.dg/cpp0x/overload-conv-4.C gcc-8.4.0/gcc/testsuite/g++.dg/cpp0x/overload-conv-4.C *** gcc-8.3.0/gcc/testsuite/g++.dg/cpp0x/overload-conv-4.C Thu Jan 1 00:00:00 1970 --- gcc-8.4.0/gcc/testsuite/g++.dg/cpp0x/overload-conv-4.C Wed Mar 4 08:30:01 2020 *************** *** 0 **** --- 1,23 ---- + // PR c++/90998 - ICE with copy elision in init by ctor and -Wconversion. + // { dg-do compile { target c++11 } } + // { dg-options "-Wconversion" } + + struct B; + + struct A { + operator B(); + }; + + struct B { + B(A const &rs); + B(B const &rs); + }; + + B + f (A x) + { + // C++14: we call B::B(A const &) + // C++17: we call A::operator B() + return B(x); // { dg-warning "choosing .A::operator B\\(\\). over .B::B\\(const A&\\)" "" { target c++17 } } + // { dg-warning "for conversion from .A. to .B." "" { target c++17 } .-1 } + } diff -Nrcpad gcc-8.3.0/gcc/testsuite/g++.dg/cpp0x/pr84497.C gcc-8.4.0/gcc/testsuite/g++.dg/cpp0x/pr84497.C *** gcc-8.3.0/gcc/testsuite/g++.dg/cpp0x/pr84497.C Mon Mar 5 13:48:43 2018 --- gcc-8.4.0/gcc/testsuite/g++.dg/cpp0x/pr84497.C Wed Mar 4 08:30:01 2020 *************** *** 1,6 **** --- 1,7 ---- // PR 84497 mismatch with thread constructor fn weakness // { dg-do compile { target c++11 } } // { dg-require-weak "" } + // { dg-require-alias "" } struct Base { diff -Nrcpad gcc-8.3.0/gcc/testsuite/g++.dg/cpp0x/pr89403.C gcc-8.4.0/gcc/testsuite/g++.dg/cpp0x/pr89403.C *** gcc-8.3.0/gcc/testsuite/g++.dg/cpp0x/pr89403.C Thu Jan 1 00:00:00 1970 --- gcc-8.4.0/gcc/testsuite/g++.dg/cpp0x/pr89403.C Wed Mar 4 08:30:01 2020 *************** *** 0 **** --- 1,18 ---- + // PR c++/89403 + // { dg-do compile { target c++11 } } + // { dg-options "-Os -fsyntax-only" } + + template + struct A : T { + constexpr A() : T() { } + }; + + template + struct B { + A b; + constexpr B() { } + }; + + struct C { struct {} s; }; + constexpr B b{}; + constexpr C c = b.b; diff -Nrcpad gcc-8.3.0/gcc/testsuite/g++.dg/cpp0x/pr92524.C gcc-8.4.0/gcc/testsuite/g++.dg/cpp0x/pr92524.C *** gcc-8.3.0/gcc/testsuite/g++.dg/cpp0x/pr92524.C Thu Jan 1 00:00:00 1970 --- gcc-8.4.0/gcc/testsuite/g++.dg/cpp0x/pr92524.C Wed Mar 4 08:30:01 2020 *************** *** 0 **** --- 1,12 ---- + // PR c++/92524 + // { dg-do compile { target c++11 } } + + struct A { char a = '*'; }; + struct B { A b[64]; }; + + void + foo () + { + A a; + B{a}; + } diff -Nrcpad gcc-8.3.0/gcc/testsuite/g++.dg/cpp0x/pr93905.C gcc-8.4.0/gcc/testsuite/g++.dg/cpp0x/pr93905.C *** gcc-8.3.0/gcc/testsuite/g++.dg/cpp0x/pr93905.C Thu Jan 1 00:00:00 1970 --- gcc-8.4.0/gcc/testsuite/g++.dg/cpp0x/pr93905.C Wed Mar 4 08:30:01 2020 *************** *** 0 **** --- 1,18 ---- + // PR c++/93905 + // { dg-do compile { target c++11 } } + + enum class E { VALUE }; + + struct B { + E e{E::VALUE}; + protected: + ~B () = default; + }; + + struct D : B {}; + + int + main () + { + D d{}; + } diff -Nrcpad gcc-8.3.0/gcc/testsuite/g++.dg/cpp0x/rv-conv2.C gcc-8.4.0/gcc/testsuite/g++.dg/cpp0x/rv-conv2.C *** gcc-8.3.0/gcc/testsuite/g++.dg/cpp0x/rv-conv2.C Thu Jan 1 00:00:00 1970 --- gcc-8.4.0/gcc/testsuite/g++.dg/cpp0x/rv-conv2.C Wed Mar 4 08:30:01 2020 *************** *** 0 **** --- 1,18 ---- + // PR c++/89705 + // { dg-do compile { target c++11 } } + + struct W { operator const volatile int(); }; + const int& rci = W(); + + struct X { operator const int(); }; + int&& rri = X(); + + struct Y { operator volatile int(); }; + int&& rri2 = Y(); + + struct Z { operator const volatile int(); }; + volatile int&& rri3 = Z(); + + enum E { A }; + struct S { operator const E(); }; + E&& rre = S(); diff -Nrcpad gcc-8.3.0/gcc/testsuite/g++.dg/cpp0x/rv-conv3.C gcc-8.4.0/gcc/testsuite/g++.dg/cpp0x/rv-conv3.C *** gcc-8.3.0/gcc/testsuite/g++.dg/cpp0x/rv-conv3.C Thu Jan 1 00:00:00 1970 --- gcc-8.4.0/gcc/testsuite/g++.dg/cpp0x/rv-conv3.C Wed Mar 4 08:30:01 2020 *************** *** 0 **** --- 1,15 ---- + // PR c++/90546 + // { dg-do link { target c++11 } } + + struct Foo { }; + void test(const Foo&) {} + Foo f; + struct Bar { + template operator T&&(); + }; + template<> Bar::operator const Foo&&() { + return static_cast(f); + } + int main() { + test(Bar{}); + } diff -Nrcpad gcc-8.3.0/gcc/testsuite/g++.dg/cpp0x/sfinae64.C gcc-8.4.0/gcc/testsuite/g++.dg/cpp0x/sfinae64.C *** gcc-8.3.0/gcc/testsuite/g++.dg/cpp0x/sfinae64.C Thu Jan 1 00:00:00 1970 --- gcc-8.4.0/gcc/testsuite/g++.dg/cpp0x/sfinae64.C Wed Mar 4 08:30:01 2020 *************** *** 0 **** --- 1,69 ---- + // PR c++/87748 + // { dg-do compile { target c++11 } } + + template T&& declval(); + template struct enable_if; + template struct enable_if { typedef T type; }; + struct true_type { static const bool value = true; }; + struct false_type { static const bool value = false; }; + + struct string + { + string (const char *p); + }; + + /// Template to map all type arguments to void, useful for SFINAE, see also WG21 N3911. + template using void_t = void; + + /// REQUIRES - Simplified version of enable_if<> to use SFINAE in function templates. + template using REQUIRES = typename ::enable_if::type; + + /// DerivesString - Check if @a T is of type 'string'. + template struct DerivesString + { + static const int value = __is_same_as (T, string); + }; + + /// Has__aida_visit__ - Check if @a T provides a member template __aida_visit__<>(Visitor). + template struct Has__aida_visit__ : false_type {}; + template + struct Has__aida_visit__().template __aida_visit__ (*(V*) 0)) >> : true_type {}; + + struct Foo { + template void __accept__ (V*); + }; + + /// Base template for Visitor classes, dispatches operator() to visit_() methods. + template + class VisitorDispatcher { + DerivedVisitor* derived () { return static_cast (this); } + protected: + typedef const char* Name; ///< Member name argument type for visit() methods. + public: + + // dispatch for calls like: visitor (field, "field"); + + template::value) > = true> + void operator() (A &a, Name n) + { return derived()->visit_string (a, n); } + }; + + class PspecVisitor : public VisitorDispatcher { + public: + void visit_string (::string &a, Name name); + }; + + int + main (int argc, char *argv[]) + { + #ifdef WITHASSERT // define this to fix g++-8.1.1 + static_assert (Has__aida_visit__::value == false, ""); + #endif + PspecVisitor v; + string str ("A string"); + v (str, "some_string"); + static_assert (Has__aida_visit__::value == false, ""); + return 0; + } + // g++ -std=gnu++14 -Wall -O2 aidavisit.cc && ./a.out diff -Nrcpad gcc-8.3.0/gcc/testsuite/g++.dg/cpp0x/using-enum-3.C gcc-8.4.0/gcc/testsuite/g++.dg/cpp0x/using-enum-3.C *** gcc-8.3.0/gcc/testsuite/g++.dg/cpp0x/using-enum-3.C Thu Jan 1 00:00:00 1970 --- gcc-8.4.0/gcc/testsuite/g++.dg/cpp0x/using-enum-3.C Wed Mar 4 08:30:01 2020 *************** *** 0 **** --- 1,21 ---- + // PR c++/89511 + // { dg-do compile { target c++11 } } + + void f () + { + enum e { a }; + using e::a; // { dg-error "not a namespace or unscoped enum" } + } + + struct S { + enum E { A }; + using E::A; // { dg-error "type .S. is not a base type for type .S." } + }; + + namespace N { + enum E { B }; + } + + struct T { + using N::E::B; // { dg-error "using-declaration for non-member at class scope" } + }; diff -Nrcpad gcc-8.3.0/gcc/testsuite/g++.dg/cpp0x/variadic-parm1.C gcc-8.4.0/gcc/testsuite/g++.dg/cpp0x/variadic-parm1.C *** gcc-8.3.0/gcc/testsuite/g++.dg/cpp0x/variadic-parm1.C Thu Jan 1 00:00:00 1970 --- gcc-8.4.0/gcc/testsuite/g++.dg/cpp0x/variadic-parm1.C Wed Mar 4 08:30:01 2020 *************** *** 0 **** --- 1,17 ---- + // PR c++/93140 + // { dg-do compile { target c++11 } } + + int + bar () + { + return 42; + } + + template + void foo (R... r, decltype (bar (r...)) x = 0) {} + + int + main () + { + foo (3); + } diff -Nrcpad gcc-8.3.0/gcc/testsuite/g++.dg/cpp1y/attr-deprecated-3.C gcc-8.4.0/gcc/testsuite/g++.dg/cpp1y/attr-deprecated-3.C *** gcc-8.3.0/gcc/testsuite/g++.dg/cpp1y/attr-deprecated-3.C Thu Jan 1 00:00:00 1970 --- gcc-8.4.0/gcc/testsuite/g++.dg/cpp1y/attr-deprecated-3.C Wed Mar 4 08:30:01 2020 *************** *** 0 **** --- 1,13 ---- + // PR c++/93228 + // { dg-do compile { target c++14 } } + + template + struct [[deprecated("foo")]] bar {}; // { dg-message "declared here" } + struct [[deprecated("baz")]] qux {}; // { dg-message "declared here" } + + void + quux () + { + bar b; // { dg-warning "is deprecated: foo" } + qux c; // { dg-warning "is deprecated: baz" } + } diff -Nrcpad gcc-8.3.0/gcc/testsuite/g++.dg/cpp1y/lambda-generic-90842.C gcc-8.4.0/gcc/testsuite/g++.dg/cpp1y/lambda-generic-90842.C *** gcc-8.3.0/gcc/testsuite/g++.dg/cpp1y/lambda-generic-90842.C Thu Jan 1 00:00:00 1970 --- gcc-8.4.0/gcc/testsuite/g++.dg/cpp1y/lambda-generic-90842.C Wed Mar 4 08:30:01 2020 *************** *** 0 **** --- 1,7 ---- + // PR c++/90842 + // { dg-do compile { target c++14 } } + + auto a = [](auto x) struct C { void foo (); } {}; // { dg-error "expected" } + // { dg-error "type-specifier invalid in lambda" "" { xfail *-*-* } .-1 } + auto b = [](auto x) mutable typedef {}; // { dg-error "'typedef' invalid in lambda" } + auto d = [](auto x) mutable friend {}; // { dg-error "'friend' invalid in lambda" } diff -Nrcpad gcc-8.3.0/gcc/testsuite/g++.dg/cpp1y/lambda-generic-const10.C gcc-8.4.0/gcc/testsuite/g++.dg/cpp1y/lambda-generic-const10.C *** gcc-8.3.0/gcc/testsuite/g++.dg/cpp1y/lambda-generic-const10.C Thu Jan 1 00:00:00 1970 --- gcc-8.4.0/gcc/testsuite/g++.dg/cpp1y/lambda-generic-const10.C Wed Mar 4 08:30:01 2020 *************** *** 0 **** --- 1,24 ---- + // PR c++/82643 + // { dg-do compile { target c++14 } } + + int main() + { + struct A { + constexpr int operator()() const { return 42; } + }; + + auto f = A(); + constexpr auto x = f(); //ok, call constexpr const non-static method + + [](auto const &f) { + constexpr auto x = f(); /*ok*/ + }(f); + + [&]() { + constexpr auto x = f(); //ko, __closure is not a constant expression + }; + + [=]() { + constexpr auto x = f(); //same ko, __closure is not a constant expression + }; + } diff -Nrcpad gcc-8.3.0/gcc/testsuite/g++.dg/cpp1y/lambda-generic-const9.C gcc-8.4.0/gcc/testsuite/g++.dg/cpp1y/lambda-generic-const9.C *** gcc-8.3.0/gcc/testsuite/g++.dg/cpp1y/lambda-generic-const9.C Thu Jan 1 00:00:00 1970 --- gcc-8.4.0/gcc/testsuite/g++.dg/cpp1y/lambda-generic-const9.C Wed Mar 4 08:30:01 2020 *************** *** 0 **** --- 1,16 ---- + // PR c++/86429 + // { dg-do compile { target c++14 } } + + struct A + { + int i; + constexpr int f(const int&) const { return i; } + }; + + void g() + { + constexpr A a = { 42 }; + [&](auto x) { + constexpr auto y = a.f(x); + }(24); + } diff -Nrcpad gcc-8.3.0/gcc/testsuite/g++.dg/cpp1y/lambda-generic-ref1.C gcc-8.4.0/gcc/testsuite/g++.dg/cpp1y/lambda-generic-ref1.C *** gcc-8.3.0/gcc/testsuite/g++.dg/cpp1y/lambda-generic-ref1.C Thu Jan 1 00:00:00 1970 --- gcc-8.4.0/gcc/testsuite/g++.dg/cpp1y/lambda-generic-ref1.C Wed Mar 4 08:30:01 2020 *************** *** 0 **** --- 1,12 ---- + // PR c++/92852 + // { dg-do compile { target c++14 } } + + struct S { int operator<<(const int &); } glob; + void foo() + { + S& message_stream = glob; + auto format = [&message_stream](auto && x) + { message_stream << x ; }; + format(3); + format(4u); + } diff -Nrcpad gcc-8.3.0/gcc/testsuite/g++.dg/cpp1y/lambda-generic-this3.C gcc-8.4.0/gcc/testsuite/g++.dg/cpp1y/lambda-generic-this3.C *** gcc-8.3.0/gcc/testsuite/g++.dg/cpp1y/lambda-generic-this3.C Thu Jan 1 00:00:00 1970 --- gcc-8.4.0/gcc/testsuite/g++.dg/cpp1y/lambda-generic-this3.C Wed Mar 4 08:30:01 2020 *************** *** 0 **** --- 1,13 ---- + // PR c++/87685 + // { dg-do compile { target c++14 } } + + struct A + { + template static void f(T) {} + void f() {} + + void foo() + { + [] (auto&& v) { A::f(v); }; // OK if parameter type is specified + } + }; diff -Nrcpad gcc-8.3.0/gcc/testsuite/g++.dg/cpp1y/lambda-init-vla1.C gcc-8.4.0/gcc/testsuite/g++.dg/cpp1y/lambda-init-vla1.C *** gcc-8.3.0/gcc/testsuite/g++.dg/cpp1y/lambda-init-vla1.C Thu Jan 1 00:00:00 1970 --- gcc-8.4.0/gcc/testsuite/g++.dg/cpp1y/lambda-init-vla1.C Wed Mar 4 08:30:01 2020 *************** *** 0 **** --- 1,12 ---- + // PR c++/88394 + // { dg-do compile { target c++14 } } + // { dg-options "" } + + void crash_me(unsigned short sz) + { + if (sz == 0) return; + + short iov[sz]; + auto fce = [&iv = iov](short value) { iv[0] = 0; }; + fce(1); + } diff -Nrcpad gcc-8.3.0/gcc/testsuite/g++.dg/cpp1y/lambda-init18.C gcc-8.4.0/gcc/testsuite/g++.dg/cpp1y/lambda-init18.C *** gcc-8.3.0/gcc/testsuite/g++.dg/cpp1y/lambda-init18.C Thu Jan 1 00:00:00 1970 --- gcc-8.4.0/gcc/testsuite/g++.dg/cpp1y/lambda-init18.C Wed Mar 4 08:30:01 2020 *************** *** 0 **** --- 1,12 ---- + // PR c++/89767 + // { dg-do compile { target c++14 } } + + void bar (int); + + void + foo () + { + int x = 0; + auto z = [x, y = [x] { bar (x); }] { y (); bar (x); }; + z (); + } diff -Nrcpad gcc-8.3.0/gcc/testsuite/g++.dg/cpp1y/lambda-init19.C gcc-8.4.0/gcc/testsuite/g++.dg/cpp1y/lambda-init19.C *** gcc-8.3.0/gcc/testsuite/g++.dg/cpp1y/lambda-init19.C Thu Jan 1 00:00:00 1970 --- gcc-8.4.0/gcc/testsuite/g++.dg/cpp1y/lambda-init19.C Wed Mar 4 08:30:01 2020 *************** *** 0 **** --- 1,15 ---- + // PR c++/89767 + // { dg-do compile { target c++14 } } + + void bar (int); + + void + foo () + { + int x = 0; + int a = 0, b = 0, c = 0, d = 0, e = 0, f = 0, g = 0, h = 0; + auto z = [x, y = [x] { bar (x); }, x] { y (); bar (x); }; // { dg-error "already captured 'x' in lambda expression" } + auto w = [x, a, b, c, d, y = [x] { bar (x); }, e, f, g, h, x] { y (); bar (x + a + b + c + d + e + f + g + h); }; // { dg-error "already captured 'x' in lambda expression" } + z (); + w (); + } diff -Nrcpad gcc-8.3.0/gcc/testsuite/g++.dg/cpp1y/pr89767.C gcc-8.4.0/gcc/testsuite/g++.dg/cpp1y/pr89767.C *** gcc-8.3.0/gcc/testsuite/g++.dg/cpp1y/pr89767.C Thu Jan 1 00:00:00 1970 --- gcc-8.4.0/gcc/testsuite/g++.dg/cpp1y/pr89767.C Wed Mar 4 08:30:01 2020 *************** *** 0 **** --- 1,32 ---- + // PR c++/89767 + // { dg-do compile { target c++14 } } + // { dg-options "-O2 -Wall" } + + template struct e { using g = d; }; + template class> using h = e; + template class i> + using j = typename h::g; + template int k(c); + template class au; + struct l { template using m = typename c::f; }; + struct s : l { using af = j *, m>; }; + template struct o; + template using q = typename o::g; + template struct r; + template struct r { typedef c aj; }; + template struct al { typename r::aj operator*(); void operator++(); }; + template + bool operator!=(al, al); + template struct ap; + template + struct ap : ap<1, as...> {}; + template struct ap {}; + template class au : public ap<0, at...> {}; + template + struct o> : o

> {}; + template struct o<0, au> { typedef ar g; }; + template constexpr ar av(ap __t) { return ar (); } + template constexpr q> aw(au __t) { av

(__t); return q> (); } + struct bg { typedef s::af af; }; + struct F { typedef al bk; bk begin(); bk end(); }; + void bo() { int t = 0; F cv; for (auto bp : cv) [t, n = k(aw<1>(bp))] {}; } diff -Nrcpad gcc-8.3.0/gcc/testsuite/g++.dg/cpp1y/var-templ61.C gcc-8.4.0/gcc/testsuite/g++.dg/cpp1y/var-templ61.C *** gcc-8.3.0/gcc/testsuite/g++.dg/cpp1y/var-templ61.C Thu Jan 1 00:00:00 1970 --- gcc-8.4.0/gcc/testsuite/g++.dg/cpp1y/var-templ61.C Wed Mar 4 08:30:01 2020 *************** *** 0 **** --- 1,20 ---- + // PR c++/89512 + // { dg-do compile { target c++14 } } + + struct A { + template + static const int a = 0; + }; + + struct B { + template + static int foo () + { + return T::a; // { dg-error "missing template arguments" } + } + }; + + int bar () + { + return B::foo (); // { dg-message "required from here" } + } diff -Nrcpad gcc-8.3.0/gcc/testsuite/g++.dg/cpp1z/aggr-base7.C gcc-8.4.0/gcc/testsuite/g++.dg/cpp1z/aggr-base7.C *** gcc-8.3.0/gcc/testsuite/g++.dg/cpp1z/aggr-base7.C Thu Jan 1 00:00:00 1970 --- gcc-8.4.0/gcc/testsuite/g++.dg/cpp1z/aggr-base7.C Wed Mar 4 08:30:01 2020 *************** *** 0 **** --- 1,8 ---- + // PR c++/88690 + // { dg-do compile { target c++11 } } + + struct A { int a = 1; }; + struct B { int b = 0; }; + struct C { C() = default; C (const C&) = delete; }; + struct D : public B, public C {}; + struct E : A { D f; } g{}; diff -Nrcpad gcc-8.3.0/gcc/testsuite/g++.dg/cpp1z/aggr-base8.C gcc-8.4.0/gcc/testsuite/g++.dg/cpp1z/aggr-base8.C *** gcc-8.3.0/gcc/testsuite/g++.dg/cpp1z/aggr-base8.C Thu Jan 1 00:00:00 1970 --- gcc-8.4.0/gcc/testsuite/g++.dg/cpp1z/aggr-base8.C Wed Mar 4 08:30:01 2020 *************** *** 0 **** --- 1,48 ---- + // PR c++/89214 + // { dg-do compile { target c++17 } } + + struct A + { + A (int); + }; + + struct BB + { + A a; + }; + + struct B : BB + { + }; + + void + foo () + { + B b1 = {42}; + B b2 = {{42}}; + B b3 = {{{42}}}; + + B b4 = B{42}; + B b5 = B{{42}}; + B b6 = B{{{42}}}; + + B b7 = {B{42}}; + B b8 = {B{{42}}}; + B b9 = {B{{{42}}}}; + + B b10 = {{B{42}}}; // { dg-warning "initializing a base class of type .BB. results in object slicing" } + B b11 = {{B{{42}}}}; // { dg-warning "initializing a base class of type .BB. results in object slicing" } + B b12 = {{B{{{42}}}}}; // { dg-warning "initializing a base class of type .BB. results in object slicing" } + + B bb1{42}; + B bb2{{42}}; + B bb3{{{42}}}; + + B bb7{B{42}}; + B bb8{B{{42}}}; + B bb9{B{{{42}}}}; + + B bb10{{B{42}}}; // { dg-warning "initializing a base class of type .BB. results in object slicing" } + B bb11{{B{{42}}}}; // { dg-warning "initializing a base class of type .BB. results in object slicing" } + B bb12{{B{{{42}}}}}; // { dg-warning "initializing a base class of type .BB. results in object slicing" } + } diff -Nrcpad gcc-8.3.0/gcc/testsuite/g++.dg/cpp1z/aggr-base9.C gcc-8.4.0/gcc/testsuite/g++.dg/cpp1z/aggr-base9.C *** gcc-8.3.0/gcc/testsuite/g++.dg/cpp1z/aggr-base9.C Thu Jan 1 00:00:00 1970 --- gcc-8.4.0/gcc/testsuite/g++.dg/cpp1z/aggr-base9.C Wed Mar 4 08:30:01 2020 *************** *** 0 **** --- 1,33 ---- + // PR c++/89214 + // { dg-do compile { target c++17 } } + + struct B { + int c; + }; + + struct D : B { }; + + void + foo () + { + D d1 = {42}; + D d2 = {{42}}; + + D d4 = D{42}; + D d5 = D{{42}}; + + D d7 = {D{42}}; + D d8 = {D{{42}}}; + + D d10 = {{D{42}}}; // { dg-warning "initializing a base class of type .B. results in object slicing" } + D d11 = {{D{{42}}}}; // { dg-warning "initializing a base class of type .B. results in object slicing" } + + D dd1{42}; + D dd2{{42}}; + + D dd7{D{42}}; + D dd8{D{{42}}}; + + D dd10{{D{42}}}; // { dg-warning "initializing a base class of type .B. results in object slicing" } + D dd11{{D{{42}}}}; // { dg-warning "initializing a base class of type .B. results in object slicing" } + } diff -Nrcpad gcc-8.3.0/gcc/testsuite/g++.dg/cpp1z/class-deduction58.C gcc-8.4.0/gcc/testsuite/g++.dg/cpp1z/class-deduction58.C *** gcc-8.3.0/gcc/testsuite/g++.dg/cpp1z/class-deduction58.C Thu Jan 1 00:00:00 1970 --- gcc-8.4.0/gcc/testsuite/g++.dg/cpp1z/class-deduction58.C Wed Mar 4 08:30:01 2020 *************** *** 0 **** --- 1,16 ---- + // PR c++/86098 + // { dg-additional-options -std=c++17 } + + template class future; + template T&& declval(); + + template