diff -Nrcpad gcc-11.2.0/ChangeLog gcc-11.3.0/ChangeLog *** gcc-11.2.0/ChangeLog Wed Jul 28 06:55:27 2021 --- gcc-11.3.0/ChangeLog Thu Apr 21 07:59:16 2022 *************** *** 1,3 **** --- 1,42 ---- + 2022-04-21 Release Manager + + * GCC 11.3.0 released. + + 2022-04-14 Iain Sandoe + + Backported from master: + 2021-11-16 Iain Sandoe + + * configure: Regenerate. + * configure.ac: Ensure that PIC (shared) defaults are set + correctly for Darwin. + + 2022-04-14 Iain Sandoe + + Backported from master: + 2021-08-18 Iain Sandoe + + * Makefile.in: Regenerate. + * Makefile.tpl: Make the state of the configured host + shared flag available to makefile fragements. + + 2022-04-14 Iain Sandoe + + * Makefile.def: Add dsymutil defs. + * Makefile.in: Regenerated. + * Makefile.tpl: Add dsymutil to flags. + * configure: Regenerated. + * configure.ac: Add dsymutil to target and build recipes. + + 2022-04-14 Iain Sandoe + + Backported from master: + 2021-07-09 Iain Sandoe + + * configure: Regenerate. + * configure.ac: Adjust cases for which it is necessary to + include the Darwin host config fragment. + 2021-07-28 Release Manager * GCC 11.2.0 released. diff -Nrcpad gcc-11.2.0/INSTALL/configure.html gcc-11.3.0/INSTALL/configure.html *** gcc-11.2.0/INSTALL/configure.html Wed Jul 28 06:55:45 2021 --- gcc-11.3.0/INSTALL/configure.html Thu Apr 21 07:59:38 2022 *************** but for the linker. *** 535,540 **** --- 535,545 ---- but for the linker.

+
--with-dsymutil=pathname
+

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

+
--with-stabs

Specify that stabs debugging information should be used instead of whatever format the host normally *************** rv64imac with lp64 and rv64imafc with lp *** 779,784 **** --- 784,806 ----

rv64ima-lp64--f,c,fc
  
+

--with-multilib-generator have an optional configuration argument + --cmodel=val for code model, this option will expand with other + config options, val is a comma separated list of possible code model, + currently we support medlow and medany. +

+

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

+
rv64ima-lp64--;--cmodel=medlow
+ 
+ +

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

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

Specify what endians to use. diff -Nrcpad gcc-11.2.0/INSTALL/specific.html gcc-11.3.0/INSTALL/specific.html *** gcc-11.2.0/INSTALL/specific.html Wed Jul 28 06:55:45 2021 --- gcc-11.3.0/INSTALL/specific.html Thu Apr 21 07:59:37 2022 *************** configure GCC for building a CR16 u *** 323,353 ****


CRIS

!

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

See “CRIS Options” in the main manual for a list of CRIS-specific options.

!

There are a few different CRIS targets: !

!
cris-axis-elf
!

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

!
cris-axis-linux-gnu
!

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

!
! !

Pre-packaged tools can be obtained from ! ftp://ftp.axis.com/pub/axis/tools/cris/compiler-kit/. More ! information about this platform is available at ! http://developer.axis.com/. !


!

DOS

Please have a look at the binaries page.

--- 323,338 ----

CRIS

!

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

See “CRIS Options” in the main manual for a list of CRIS-specific options.

!

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


!

DOS

Please have a look at the binaries page.

diff -Nrcpad gcc-11.2.0/LAST_UPDATED gcc-11.3.0/LAST_UPDATED *** gcc-11.2.0/LAST_UPDATED Wed Jul 28 06:55:44 2021 --- gcc-11.3.0/LAST_UPDATED Thu Apr 21 07:59:37 2022 *************** *** 1 **** ! Obtained from git: releases/gcc-11.2.0 revision 7ca388565af176bd4efd4f8db1e5e9e11e98ef45 --- 1 ---- ! Obtained from git: releases/gcc-11.3.0 revision 2d280e7eafc086e9df85f50ed1a6526d6a3a204d diff -Nrcpad gcc-11.2.0/MD5SUMS gcc-11.3.0/MD5SUMS *** gcc-11.2.0/MD5SUMS Wed Jul 28 07:12:03 2021 --- gcc-11.3.0/MD5SUMS Thu Apr 21 08:32:17 2022 *************** *** 1,5 **** # This file contains the MD5 checksums of the files in the ! # gcc-11.2.0.tar.xz tarball. # # Besides verifying that all files in the tarball were correctly expanded, # it also can be used to determine if any files have changed since the --- 1,5 ---- # This file contains the MD5 checksums of the files in the ! # gcc-11.3.0.tar.xz tarball. # # Besides verifying that all files in the tarball were correctly expanded, # it also can be used to determine if any files have changed since the *************** c0eb7bac11479e0032693e4e55297c40 .dir-l *** 17,46 **** fe60d87048567d4fe8c8a0ed2448bcc8 COPYING.RUNTIME d32239bcb673463ab874e80d47fae504 COPYING3 6a6a8e020838b23406c81b19c1d46df6 COPYING3.LIB ! f0e8328f1680f979abe7466d04b9c903 ChangeLog fd4ecdf5d672efe2b0e409aca9cf9446 ChangeLog.jit 09538b708302f1735f6fa05b622ecf5e ChangeLog.tree-ssa 24ab760126489e69436a43185dc3d202 INSTALL/README bc7bdcccf93f4034179af78f65536f21 INSTALL/binaries.html 47057783bb8704ed0f9a9b77196febec INSTALL/build.html ! 37bb49903b7f175a7ac91e3b1a715784 INSTALL/configure.html 4ad42e872d55de846185619a86a9acab INSTALL/download.html 2ebc451429ebe4a0f55bc64b839512fc INSTALL/finalinstall.html 035bd0aca4c9df3c4b92a8978e95a67b INSTALL/gfdl.html b6a001358f0bb55ee8a22d7fedf3a639 INSTALL/index.html b1c9de1da8a8a66ea54722abde3498b1 INSTALL/old.html 3b37510298c2b0d3e77ed664a1653da1 INSTALL/prerequisites.html ! e2911b96497bd6426cf2330f4522f638 INSTALL/specific.html 7d9e6352d151d352657bd02f0e09c3ef INSTALL/test.html ! 4d79bb41eb830675b981e9b18dc1cf31 LAST_UPDATED 863d0fffeb06d7a45df38d7836e342bd MAINTAINERS ! 91fe6d76e55d05384556a6f7f3016b2b Makefile.def ! e157ca61cd8f3cf99f8e2a0d1d9d64a1 Makefile.in ! 6815842aea43bfa1c18f9c93d480ece3 Makefile.tpl ! b04e9fddd43df47547819e1dedf1f80f NEWS 80d26bc3b1ad4f6969a96a24c9181bf5 README a657821f65bab77f4fbf3a75cdee6da9 ar-lib ! 13c06fda2945f2280c5300b592e22ed2 c++tools/ChangeLog 436118acd883073ecd4bbbc8e56f8e5c c++tools/Makefile.in c4735269d3a60846e4e67459fe4c4811 c++tools/config.h.in dc92ffb2a8f3fefb9cf3381e7474d193 c++tools/configure --- 17,46 ---- fe60d87048567d4fe8c8a0ed2448bcc8 COPYING.RUNTIME d32239bcb673463ab874e80d47fae504 COPYING3 6a6a8e020838b23406c81b19c1d46df6 COPYING3.LIB ! fad7e1929ef6bb608fa937fc5a03bb45 ChangeLog fd4ecdf5d672efe2b0e409aca9cf9446 ChangeLog.jit 09538b708302f1735f6fa05b622ecf5e ChangeLog.tree-ssa 24ab760126489e69436a43185dc3d202 INSTALL/README bc7bdcccf93f4034179af78f65536f21 INSTALL/binaries.html 47057783bb8704ed0f9a9b77196febec INSTALL/build.html ! 4e1d74971c4f88186a2f719f8119f026 INSTALL/configure.html 4ad42e872d55de846185619a86a9acab INSTALL/download.html 2ebc451429ebe4a0f55bc64b839512fc INSTALL/finalinstall.html 035bd0aca4c9df3c4b92a8978e95a67b INSTALL/gfdl.html b6a001358f0bb55ee8a22d7fedf3a639 INSTALL/index.html b1c9de1da8a8a66ea54722abde3498b1 INSTALL/old.html 3b37510298c2b0d3e77ed664a1653da1 INSTALL/prerequisites.html ! 343ae5d41e1449e92582e99bbbd039d1 INSTALL/specific.html 7d9e6352d151d352657bd02f0e09c3ef INSTALL/test.html ! 726f348a8d755b1d266468f41b9a9d0a LAST_UPDATED 863d0fffeb06d7a45df38d7836e342bd MAINTAINERS ! 8a667df3c1ab240343b2f6a644f92970 Makefile.def ! 468d396660b8969b6f51738c94ad90ef Makefile.in ! 87a68bd7215bdcd229ae57f7f8c3622f Makefile.tpl ! f95caff4339451dfc8ad6a08cd2aa87d NEWS 80d26bc3b1ad4f6969a96a24c9181bf5 README a657821f65bab77f4fbf3a75cdee6da9 ar-lib ! 9e739efdd890bfa55fe3e5546c20d6e6 c++tools/ChangeLog 436118acd883073ecd4bbbc8e56f8e5c c++tools/Makefile.in c4735269d3a60846e4e67459fe4c4811 c++tools/config.h.in dc92ffb2a8f3fefb9cf3381e7474d193 c++tools/configure *************** c7a6315035957c9c2b36f5d267723408 c++too *** 53,59 **** c64564b7c7563dae5ebe016f340c9cd9 config.guess 040359150cf11493f973a46d8a25b06b config.rpath d320a9a1a5eb63901563ae5adf268433 config.sub ! bdc8c817ecab8e09f531f15580a8b95b config/ChangeLog 0fcd4badfe2a2191778bdf5ab94aa40c config/acinclude.m4 2ea0edfde0ce5ce69b49317a5650f048 config/acx.m4 6b030f5cf640bdd401ea739f54a667f8 config/asmcfi.m4 --- 53,59 ---- c64564b7c7563dae5ebe016f340c9cd9 config.guess 040359150cf11493f973a46d8a25b06b config.rpath d320a9a1a5eb63901563ae5adf268433 config.sub ! 57ccaa30ed28f1d0ad5d75ec89dca553 config/ChangeLog 0fcd4badfe2a2191778bdf5ab94aa40c config/acinclude.m4 2ea0edfde0ce5ce69b49317a5650f048 config/acx.m4 6b030f5cf640bdd401ea739f54a667f8 config/asmcfi.m4 *************** b75e527c5a9b8dcbcfb1ac321fa244eb config *** 113,119 **** ad4ae2c604a57f5e6f53c9edc33ea1f1 config/math.m4 e10d31316e03a59577fb4ed90a670914 config/mh-alpha-linux 3fe4a576c2a75736c8da3af1d0824217 config/mh-cygwin ! 507b102116e2550175bb7f42ee3c2958 config/mh-darwin 625bacc09b9992290d94831bd7506bd0 config/mh-djgpp 8fe20cd58711408e779e723c7e4981ad config/mh-mingw cd7034dccd04e50150b14c597dd545a5 config/mh-pa --- 113,119 ---- ad4ae2c604a57f5e6f53c9edc33ea1f1 config/math.m4 e10d31316e03a59577fb4ed90a670914 config/mh-alpha-linux 3fe4a576c2a75736c8da3af1d0824217 config/mh-cygwin ! 12e3e525300d7b265337e9f2dfe0e2af config/mh-darwin 625bacc09b9992290d94831bd7506bd0 config/mh-djgpp 8fe20cd58711408e779e723c7e4981ad config/mh-mingw cd7034dccd04e50150b14c597dd545a5 config/mh-pa *************** e2dc6b4fd62b77bff96b7951ef74f78f config *** 154,162 **** 5cabffc02a90bd9698105b9eef507f11 config/warnings.m4 7ef51b0adb98e5c5f7aba46d2c7293f1 config/weakref.m4 0163b672c888aaf1c8ad3e867a0ec9f1 config/zlib.m4 ! 6ece08fe6f112e6b2473ce4edfe0c0ec configure ! 50430e57b254730537ed0ee2c1f1b644 configure.ac ! 6a07feec95537b122e2d3abae7298711 contrib/ChangeLog 5fc435c7928f858246df931ea3f3ece7 contrib/ChangeLog.jit 7af8d2979bf1a7cfa88e30d05fa22be2 contrib/ChangeLog.tree-ssa 8498c0cdfe3f444ad6f540ec9e11cbec contrib/analyze_brprob.py --- 154,162 ---- 5cabffc02a90bd9698105b9eef507f11 config/warnings.m4 7ef51b0adb98e5c5f7aba46d2c7293f1 config/weakref.m4 0163b672c888aaf1c8ad3e867a0ec9f1 config/zlib.m4 ! cb1e93e58dff05f85e66aa5c2e04475f configure ! 587878b0d48aa2561ab3250371bee056 configure.ac ! a15cac46215dff88bd5478b79e7704db contrib/ChangeLog 5fc435c7928f858246df931ea3f3ece7 contrib/ChangeLog.jit 7af8d2979bf1a7cfa88e30d05fa22be2 contrib/ChangeLog.tree-ssa 8498c0cdfe3f444ad6f540ec9e11cbec contrib/analyze_brprob.py *************** a22ccd173c2d00c00e7ad01e97342bcc contri *** 186,200 **** 080dea8d6b4a4c8c6bf8ae7b8ecf15a6 contrib/filter_gcc_for_doxygen db03e57377f9eb202b7b783eb81fe40d contrib/filter_knr2ansi.pl b038940be99369232106ef9e9b15bee3 contrib/filter_params.py ! fab64567a15634c339364ed40c013661 contrib/gcc-changelog/git_check_commit.py ! 808a559d842961c8b2d55e25b8b0b3fa contrib/gcc-changelog/git_commit.py ! af86b9eda273862a124d39ead0789324 contrib/gcc-changelog/git_email.py a9d06dee58845e59874c5f7fc58e2824 contrib/gcc-changelog/git_repository.py ! 7c56712681d1b4044c357df49c22ef75 contrib/gcc-changelog/git_update_version.py 1fcc4f18e9f9043eaea6c3c990d96d9b contrib/gcc-changelog/setup.cfg ! 4a1757a0f2085f07139e5bf4eb75fe5d contrib/gcc-changelog/test_email.py ! d7b72a8587b179340ffe7c91df42ca01 contrib/gcc-changelog/test_patches.txt ! a9296ffb5c543d65f811bd10c37fecd8 contrib/gcc-git-customization.sh dfceb883caf21f3071f7309ee0ac8a6b contrib/gcc.doxy 55236e85d8087042189b701cd05d84be contrib/gcc_build 11e43a96424d1e407bded6b3324c345c contrib/gcc_update --- 186,200 ---- 080dea8d6b4a4c8c6bf8ae7b8ecf15a6 contrib/filter_gcc_for_doxygen db03e57377f9eb202b7b783eb81fe40d contrib/filter_knr2ansi.pl b038940be99369232106ef9e9b15bee3 contrib/filter_params.py ! 65b703f51d9d7a7a56a649493e3c01b9 contrib/gcc-changelog/git_check_commit.py ! 2d072240bf6de5330608921ceb48bf43 contrib/gcc-changelog/git_commit.py ! 722c96f24ea159413d6e28c6b91a7a23 contrib/gcc-changelog/git_email.py a9d06dee58845e59874c5f7fc58e2824 contrib/gcc-changelog/git_repository.py ! b83d69417c5c5d4f873dd999bef094e1 contrib/gcc-changelog/git_update_version.py 1fcc4f18e9f9043eaea6c3c990d96d9b contrib/gcc-changelog/setup.cfg ! 7226a8eee0694eb4b73201404f06a8c2 contrib/gcc-changelog/test_email.py ! 0dce8095b39e54d03c1207f021756933 contrib/gcc-changelog/test_patches.txt ! afffb72bfd599fda78278a8c0dccfc16 contrib/gcc-git-customization.sh dfceb883caf21f3071f7309ee0ac8a6b contrib/gcc.doxy 55236e85d8087042189b701cd05d84be contrib/gcc_build 11e43a96424d1e407bded6b3324c345c contrib/gcc_update *************** dfceb883caf21f3071f7309ee0ac8a6b contri *** 202,212 **** 9cadf9c7940df721a2ba59b5adb1180e contrib/gennews 25491ab6a5a68d252f311f5a9c6f4c8f contrib/git-add-user-branch.sh 7e5729822d673e846d5ef26e1f1b8591 contrib/git-add-vendor-branch.sh ! a05c06173f9b6217a753767a1e28481c contrib/git-backport.py ! f892ea084959e4113aac868b86831912 contrib/git-commit-mklog.py 6277756eb398a594323d2d2b52962046 contrib/git-fetch-vendor.sh 59304fc08afa489baa6b920cc76dc625 contrib/gthr_supp_vxw_5x.c ! 583ec05e8423cc1a9b740646ea8e0c23 contrib/header-tools/ChangeLog 4f7d3bf5dd67c6b144a7a1ea0bb4127b contrib/header-tools/README 05ef7fb87e90ba93ee04659be072a357 contrib/header-tools/count-headers ba0485a3c721bce9e32407ef996d2a9d contrib/header-tools/gcc-order-headers --- 202,215 ---- 9cadf9c7940df721a2ba59b5adb1180e contrib/gennews 25491ab6a5a68d252f311f5a9c6f4c8f contrib/git-add-user-branch.sh 7e5729822d673e846d5ef26e1f1b8591 contrib/git-add-vendor-branch.sh ! db81d221a5a18e48788ee8984d453248 contrib/git-backport.py ! e9bac7c82bdb5f92b354d9da854d463b contrib/git-commit-mklog.py ! 6400831de9622ded00d0c379a99db5a4 contrib/git-descr.sh 6277756eb398a594323d2d2b52962046 contrib/git-fetch-vendor.sh + e462c83bdf45bf6e9b434d18fa9f66e4 contrib/git-fix-changelog.py + 6996a054c7e7aaf9f27737c3d6f2518c contrib/git-undescr.sh 59304fc08afa489baa6b920cc76dc625 contrib/gthr_supp_vxw_5x.c ! fde7eaaf5d043e049d3eef60ad615b0c contrib/header-tools/ChangeLog 4f7d3bf5dd67c6b144a7a1ea0bb4127b contrib/header-tools/README 05ef7fb87e90ba93ee04659be072a357 contrib/header-tools/count-headers ba0485a3c721bce9e32407ef996d2a9d contrib/header-tools/gcc-order-headers *************** a34668cfad9dec733354503fbc67fb24 contri *** 232,238 **** 87a19b40fbd220938cf6c23c42c255e2 contrib/prepare_patch.sh 6bc8415291f74dbbb7994622ca9a7b28 contrib/prerequisites.md5 2a7fbcbf9b708ecbd31408646f9dd122 contrib/prerequisites.sha512 ! 1d26095f21608eccd763493deda26322 contrib/reghunt/ChangeLog cf247a580e49d212518de409793db0a8 contrib/reghunt/bin/gcc-build-full 724e70ea3e80f87f2a201bbe2f1eef37 contrib/reghunt/bin/gcc-build-simple 3f2318bae7562a4ad1639e686916a545 contrib/reghunt/bin/gcc-cleanup --- 235,241 ---- 87a19b40fbd220938cf6c23c42c255e2 contrib/prepare_patch.sh 6bc8415291f74dbbb7994622ca9a7b28 contrib/prerequisites.md5 2a7fbcbf9b708ecbd31408646f9dd122 contrib/prerequisites.sha512 ! 2ec57861b5624197c06ffe94ea485ca2 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 *** 291,297 **** e2829fc4af4f433a6a328a62d5ce8066 contrib/reghunt/examples/reg-watch afd863c2ec84c906e20f9b9787b1f0fe contrib/reghunt/examples/reg-watch.awk 8955535523d4b5f48006bcb851ba9b4b contrib/reghunt/examples/testall ! 56815edf6b1a212972b2e0ba6d49e7db contrib/regression/ChangeLog 30553bfced1b2b46bf7ca01ef6ba69d1 contrib/regression/GCC_Regression_Tester.wdgt/Default.png ad38ddd771df222eb9d413e3c7f6a751 contrib/regression/GCC_Regression_Tester.wdgt/Icon.png 777bd286c147cc02861811f66b9a4440 contrib/regression/GCC_Regression_Tester.wdgt/Info.plist --- 294,300 ---- e2829fc4af4f433a6a328a62d5ce8066 contrib/reghunt/examples/reg-watch afd863c2ec84c906e20f9b9787b1f0fe contrib/reghunt/examples/reg-watch.awk 8955535523d4b5f48006bcb851ba9b4b contrib/reghunt/examples/testall ! 00346ff11b28235c16270018e1093185 contrib/regression/ChangeLog 30553bfced1b2b46bf7ca01ef6ba69d1 contrib/regression/GCC_Regression_Tester.wdgt/Default.png ad38ddd771df222eb9d413e3c7f6a751 contrib/regression/GCC_Regression_Tester.wdgt/Icon.png 777bd286c147cc02861811f66b9a4440 contrib/regression/GCC_Regression_Tester.wdgt/Info.plist *************** a0d12be401961a2557883b7c09dc71eb contri *** 331,337 **** 57440d4c6da7b6438ebfa203135f381a contrib/vimrc da7aeedeb5a86ee6f5982e559a2d6dcc contrib/warn_summary 8b59f0d0a2dcdced14765c514fbad719 depcomp ! 9efb803eead48afa4381538008903032 fixincludes/ChangeLog 6de190723745dc3f75080144dfa2215e fixincludes/Makefile.in b6e3f4950abc6e254b467063381f6473 fixincludes/README 455903ad4ff71fa5c5340ef7ae41a0e6 fixincludes/README-fixinc --- 334,340 ---- 57440d4c6da7b6438ebfa203135f381a contrib/vimrc da7aeedeb5a86ee6f5982e559a2d6dcc contrib/warn_summary 8b59f0d0a2dcdced14765c514fbad719 depcomp ! 61562441855348f5513747ba4de446c1 fixincludes/ChangeLog 6de190723745dc3f75080144dfa2215e fixincludes/Makefile.in b6e3f4950abc6e254b467063381f6473 fixincludes/README 455903ad4ff71fa5c5340ef7ae41a0e6 fixincludes/README-fixinc *************** a5e817d35ded04a0fb03999b50c0e89e fixinc *** 472,483 **** 955462b555900ecd3934223c64e21fa7 fixincludes/tests/base/types/vxTypesBase.h 8baab8698bb83c6b90ef4091c00ddc1e fixincludes/tests/base/unistd.h cdc9afb0404ea932194e623e80f3443f gcc/ABOUT-GCC-NLS ! 4920687203e45c76ccb25a0e6ef6e8ad gcc/BASE-VER 59530bdf33659b29e73d4adb9f9f6552 gcc/COPYING a916467b91076e631dd8edb7424769c7 gcc/COPYING.LIB d32239bcb673463ab874e80d47fae504 gcc/COPYING3 6a6a8e020838b23406c81b19c1d46df6 gcc/COPYING3.LIB ! 209f158d4fffca4796ee2aa7ce42fd87 gcc/ChangeLog a3b63c675afa7a655cc2bfa8a907af79 gcc/ChangeLog-1997 d9a88529352a010253c2e8fb1ed6023b gcc/ChangeLog-1998 240f08f81cb4699e8b49347db38233db gcc/ChangeLog-1999 --- 475,486 ---- 955462b555900ecd3934223c64e21fa7 fixincludes/tests/base/types/vxTypesBase.h 8baab8698bb83c6b90ef4091c00ddc1e fixincludes/tests/base/unistd.h cdc9afb0404ea932194e623e80f3443f gcc/ABOUT-GCC-NLS ! edbdfaa5c5054804fc72b34949d1cf6e gcc/BASE-VER 59530bdf33659b29e73d4adb9f9f6552 gcc/COPYING a916467b91076e631dd8edb7424769c7 gcc/COPYING.LIB d32239bcb673463ab874e80d47fae504 gcc/COPYING3 6a6a8e020838b23406c81b19c1d46df6 gcc/COPYING3.LIB ! fc634b2d32d48b149245c5eb70684c15 gcc/ChangeLog a3b63c675afa7a655cc2bfa8a907af79 gcc/ChangeLog-1997 d9a88529352a010253c2e8fb1ed6023b gcc/ChangeLog-1998 240f08f81cb4699e8b49347db38233db gcc/ChangeLog-1999 *************** fb3fadb88e1d2b3b640cfaaa5ff11780 gcc/Ch *** 510,527 **** 3eb07e0b2e542409bf73d359f7f65609 gcc/ChangeLog.ptr e13638e26743ba41e6011b76cc00d9a9 gcc/ChangeLog.tree-ssa 739ab47f6425bcea1d05e4fc0542de54 gcc/ChangeLog.tuples ! f1076df0f7a75df366061ad6f6111ab9 gcc/DATESTAMP d41d8cd98f00b204e9800998ecf8427e gcc/DEV-PHASE eb92e1ff5e982ca07e173e0eb286d243 gcc/FSFChangeLog 30e1e33411566388b3164558482dc5e6 gcc/FSFChangeLog.10 36698274bb69e2ada20f5cc434f3caa5 gcc/FSFChangeLog.11 ac51fd18e066886140aa55eab71477be gcc/LANGUAGES ! f2666ae22c3f3dcd18203bf784fd2697 gcc/Makefile.in ec6799501b2eb2923d5de6a66169dbd2 gcc/ONEWS a3349a2ff19906d526e15f8845deb002 gcc/README.Portability 7a09ff48173d234174dd04f94f3d495c gcc/acinclude.m4 6526979dd900a0b58b7691b478a91fec gcc/aclocal.m4 ! b2498c2b767f30722664fe34b3af6261 gcc/ada/ChangeLog 683be0b07dc4f64f118fd5e8ae9cb30d gcc/ada/ChangeLog-2001 7aff25efb203be4136b8776cdc812956 gcc/ada/ChangeLog-2002 cd2379152000f40157d349018fb9364d gcc/ada/ChangeLog-2003 --- 513,530 ---- 3eb07e0b2e542409bf73d359f7f65609 gcc/ChangeLog.ptr e13638e26743ba41e6011b76cc00d9a9 gcc/ChangeLog.tree-ssa 739ab47f6425bcea1d05e4fc0542de54 gcc/ChangeLog.tuples ! 6a93411f698590de2b94f169c9f6d730 gcc/DATESTAMP d41d8cd98f00b204e9800998ecf8427e gcc/DEV-PHASE eb92e1ff5e982ca07e173e0eb286d243 gcc/FSFChangeLog 30e1e33411566388b3164558482dc5e6 gcc/FSFChangeLog.10 36698274bb69e2ada20f5cc434f3caa5 gcc/FSFChangeLog.11 ac51fd18e066886140aa55eab71477be gcc/LANGUAGES ! 6ae41e7939ed3bb1f77dc4a68defae9b gcc/Makefile.in ec6799501b2eb2923d5de6a66169dbd2 gcc/ONEWS a3349a2ff19906d526e15f8845deb002 gcc/README.Portability 7a09ff48173d234174dd04f94f3d495c gcc/acinclude.m4 6526979dd900a0b58b7691b478a91fec gcc/aclocal.m4 ! 08ed911edc9c9c33433cdc5205d2a507 gcc/ada/ChangeLog 683be0b07dc4f64f118fd5e8ae9cb30d gcc/ada/ChangeLog-2001 7aff25efb203be4136b8776cdc812956 gcc/ada/ChangeLog-2002 cd2379152000f40157d349018fb9364d gcc/ada/ChangeLog-2003 *************** e886b111487071a30a52edb616ff7844 gcc/ad *** 546,558 **** 2cf41efa2dee24b2dda73018b855edd3 gcc/ada/ChangeLog.tree-ssa a2eeb36cd2de35ce6a808c67a61edb7e gcc/ada/Make-generated.in 6c9c3b4249e781ed48c7ae55e8ef9999 gcc/ada/Makefile.in ! ca59aa384f50201fc13b9609d5791786 gcc/ada/Makefile.rtl 739d1cf14f9f642cbac45cfcd1f8d75f gcc/ada/ada_get_targ.adb b3e84dc1c9a7e552156affe8808cf24e gcc/ada/adabkend.adb 25824eaa1216abca343134c0c41f3aae gcc/ada/adabkend.ads b1ff69aeaeec4fe857f859ff61a80898 gcc/ada/adadecode.c 17a8281790ea9a0497546fcef5348529 gcc/ada/adadecode.h ! aa8684368c358ae76c7540acd436dc09 gcc/ada/adaint.c 74f039c3d41e22a6a47f32d2e95a1e81 gcc/ada/adaint.h 83adc06d0be4f0196e82a5041f46b40e gcc/ada/affinity.c 35eac1459f1fd1e41615c982c2214838 gcc/ada/ali-util.adb --- 549,561 ---- 2cf41efa2dee24b2dda73018b855edd3 gcc/ada/ChangeLog.tree-ssa a2eeb36cd2de35ce6a808c67a61edb7e gcc/ada/Make-generated.in 6c9c3b4249e781ed48c7ae55e8ef9999 gcc/ada/Makefile.in ! 9ac8a754981b79ea5cbe9cd20b9c7f36 gcc/ada/Makefile.rtl 739d1cf14f9f642cbac45cfcd1f8d75f gcc/ada/ada_get_targ.adb b3e84dc1c9a7e552156affe8808cf24e gcc/ada/adabkend.adb 25824eaa1216abca343134c0c41f3aae gcc/ada/adabkend.ads b1ff69aeaeec4fe857f859ff61a80898 gcc/ada/adadecode.c 17a8281790ea9a0497546fcef5348529 gcc/ada/adadecode.h ! 20826557771d6342ab9f414523d88b32 gcc/ada/adaint.c 74f039c3d41e22a6a47f32d2e95a1e81 gcc/ada/adaint.h 83adc06d0be4f0196e82a5041f46b40e gcc/ada/affinity.c 35eac1459f1fd1e41615c982c2214838 gcc/ada/ali-util.adb *************** e7dac99a71a49294edd2cce0e9e98eee gcc/ad *** 685,691 **** 43fe2f55aa6c174d249ef5cd350e2a60 gcc/ada/exp_aggr.ads 0a7edf59a7f33642af4704eade3e97c3 gcc/ada/exp_atag.adb 7c47f5843f77312d2886a7bb632c33df gcc/ada/exp_atag.ads ! e93e0a242052965b2dfda6d6271b61b4 gcc/ada/exp_attr.adb 9cc8f6f1395030a3e1ddae2f64ef59c7 gcc/ada/exp_attr.ads aec21341801b7f40af17364da40d37d0 gcc/ada/exp_cg.adb 4739d2290f71028d3c4bc87ed372186b gcc/ada/exp_cg.ads --- 688,694 ---- 43fe2f55aa6c174d249ef5cd350e2a60 gcc/ada/exp_aggr.ads 0a7edf59a7f33642af4704eade3e97c3 gcc/ada/exp_atag.adb 7c47f5843f77312d2886a7bb632c33df gcc/ada/exp_atag.ads ! 3b068fcdae75cbbeec4f726be21a07ab gcc/ada/exp_attr.adb 9cc8f6f1395030a3e1ddae2f64ef59c7 gcc/ada/exp_attr.ads aec21341801b7f40af17364da40d37d0 gcc/ada/exp_cg.adb 4739d2290f71028d3c4bc87ed372186b gcc/ada/exp_cg.ads *************** a2d962cd2c4d8e5a92692154284b38ff gcc/ad *** 700,706 **** 9fc10f38bd720c619ada102df74ef01c gcc/ada/exp_ch2.ads b4911c9eaadfa8edbca97226db2cacd8 gcc/ada/exp_ch3.adb ed23c980ddc4646e547e4d9d797e30f2 gcc/ada/exp_ch3.ads ! 0db2e00cc4a7e536387f8b992a3f5bf5 gcc/ada/exp_ch4.adb 050a84d226682ff6b0cf73e569d48769 gcc/ada/exp_ch4.ads e23176144fd3113efb017afecfc68a90 gcc/ada/exp_ch5.adb 7bba8e3eda393994835a35015e9fa337 gcc/ada/exp_ch5.ads --- 703,709 ---- 9fc10f38bd720c619ada102df74ef01c gcc/ada/exp_ch2.ads b4911c9eaadfa8edbca97226db2cacd8 gcc/ada/exp_ch3.adb ed23c980ddc4646e547e4d9d797e30f2 gcc/ada/exp_ch3.ads ! b7c6851b08712a100cead380559a90ee gcc/ada/exp_ch4.adb 050a84d226682ff6b0cf73e569d48769 gcc/ada/exp_ch4.ads e23176144fd3113efb017afecfc68a90 gcc/ada/exp_ch5.adb 7bba8e3eda393994835a35015e9fa337 gcc/ada/exp_ch5.ads *************** f51124ba7bc12991c2598279eb2da82e gcc/ad *** 764,770 **** 009cce51246a860a5f901d2e2e7ac369 gcc/ada/frontend.adb b48a3449a29d92c0b5434a73385b1e97 gcc/ada/frontend.ads 72ca66c12963f38334507f56ace14098 gcc/ada/gcc-interface/Make-lang.in ! 03cc94c5f3b336fe349562ac069e853f gcc/ada/gcc-interface/Makefile.in 35dd49b4643582a2e1e847bc6aea01e1 gcc/ada/gcc-interface/ada-builtin-types.def f7677c298cb2f4c70ecf284c7e18cb80 gcc/ada/gcc-interface/ada-builtins.def 055be3d11fa6ccb53ffe7f8970a005ce gcc/ada/gcc-interface/ada-tree.def --- 767,773 ---- 009cce51246a860a5f901d2e2e7ac369 gcc/ada/frontend.adb b48a3449a29d92c0b5434a73385b1e97 gcc/ada/frontend.ads 72ca66c12963f38334507f56ace14098 gcc/ada/gcc-interface/Make-lang.in ! 9acbd2c7d9ca8b0c725b411f336d268d gcc/ada/gcc-interface/Makefile.in 35dd49b4643582a2e1e847bc6aea01e1 gcc/ada/gcc-interface/ada-builtin-types.def f7677c298cb2f4c70ecf284c7e18cb80 gcc/ada/gcc-interface/ada-builtins.def 055be3d11fa6ccb53ffe7f8970a005ce gcc/ada/gcc-interface/ada-tree.def *************** a21ffea82ae8a271cdcc3acbf1428099 gcc/ad *** 772,778 **** 5d0689f7acb36d977c27b633105517b7 gcc/ada/gcc-interface/ada.h 2962facaf5b9ac376e7335599112a520 gcc/ada/gcc-interface/config-lang.in 2be995167a94a991025f94bdf029b598 gcc/ada/gcc-interface/cuintp.c ! 980dc1888a763ea1563ad00bd26ccc47 gcc/ada/gcc-interface/decl.c d92dc0232ed2c36ad8969076cb25a3c8 gcc/ada/gcc-interface/gadaint.h 86b8f2bd39b4d74d80e6f6c19aa4e026 gcc/ada/gcc-interface/gigi.h c7ba118bbfa02ecb67d9a8d287beae60 gcc/ada/gcc-interface/lang-specs.h --- 775,781 ---- 5d0689f7acb36d977c27b633105517b7 gcc/ada/gcc-interface/ada.h 2962facaf5b9ac376e7335599112a520 gcc/ada/gcc-interface/config-lang.in 2be995167a94a991025f94bdf029b598 gcc/ada/gcc-interface/cuintp.c ! 56a02aa3744dcb0c162ed9cccd347c5a gcc/ada/gcc-interface/decl.c d92dc0232ed2c36ad8969076cb25a3c8 gcc/ada/gcc-interface/gadaint.h 86b8f2bd39b4d74d80e6f6c19aa4e026 gcc/ada/gcc-interface/gigi.h c7ba118bbfa02ecb67d9a8d287beae60 gcc/ada/gcc-interface/lang-specs.h *************** a1a44880269c822fbb41284003a97cb4 gcc/ad *** 781,787 **** 88ae5d221d943abb83c91d7a58188ed2 gcc/ada/gcc-interface/system.ads 189f873df9e746e3c38349dac7d6ee3c gcc/ada/gcc-interface/targtyps.c f22f4edc2eef3094d4b869d6cdaf1df5 gcc/ada/gcc-interface/trans.c ! 038baff86dbaca980ac28c76680bf887 gcc/ada/gcc-interface/utils.c 6488d2b5188bae086c45a766edd2ae20 gcc/ada/gcc-interface/utils2.c 8c17131152309ee5d6ed879c994993da gcc/ada/get_scos.adb a0c84c8e04708bbb9c8b04f7ede85477 gcc/ada/get_scos.ads --- 784,790 ---- 88ae5d221d943abb83c91d7a58188ed2 gcc/ada/gcc-interface/system.ads 189f873df9e746e3c38349dac7d6ee3c gcc/ada/gcc-interface/targtyps.c f22f4edc2eef3094d4b869d6cdaf1df5 gcc/ada/gcc-interface/trans.c ! 2ef279e28f46bda607f14cfe50ebca56 gcc/ada/gcc-interface/utils.c 6488d2b5188bae086c45a766edd2ae20 gcc/ada/gcc-interface/utils2.c 8c17131152309ee5d6ed879c994993da gcc/ada/get_scos.adb a0c84c8e04708bbb9c8b04f7ede85477 gcc/ada/get_scos.ads *************** b4b22b475378c7893f79298b3a0b6051 gcc/ad *** 1793,1800 **** ff7fb5c46035678b37916c92efd6a8e7 gcc/ada/libgnat/g-sehash.ads 2f966bd72cfa71436e132176cce0607c gcc/ada/libgnat/g-sercom.adb 2327eebf15f0161535f97e36d522c919 gcc/ada/libgnat/g-sercom.ads ! f10d7bb92b191d6ec3ca0a706ef90650 gcc/ada/libgnat/g-sercom__linux.adb ! a8558782ab0f4c0ae4a02acab7724a8f gcc/ada/libgnat/g-sercom__mingw.adb cf9f76487630b5764583300619ee100f gcc/ada/libgnat/g-sestin.ads 17abc89befd38713dbd3633a63acec05 gcc/ada/libgnat/g-sets.adb 9c2f84479da954966f31560976cc7bf8 gcc/ada/libgnat/g-sets.ads --- 1796,1803 ---- ff7fb5c46035678b37916c92efd6a8e7 gcc/ada/libgnat/g-sehash.ads 2f966bd72cfa71436e132176cce0607c gcc/ada/libgnat/g-sercom.adb 2327eebf15f0161535f97e36d522c919 gcc/ada/libgnat/g-sercom.ads ! b705ae0f7e3180ad18e69043ba6ca3c0 gcc/ada/libgnat/g-sercom__linux.adb ! 4c970d11447091933bdbe978405a45a8 gcc/ada/libgnat/g-sercom__mingw.adb cf9f76487630b5764583300619ee100f gcc/ada/libgnat/g-sestin.ads 17abc89befd38713dbd3633a63acec05 gcc/ada/libgnat/g-sets.adb 9c2f84479da954966f31560976cc7bf8 gcc/ada/libgnat/g-sets.ads *************** df3e75368abbada2ac7ac8a688c60522 gcc/ad *** 2021,2028 **** f8a4584126b444bfd4408966324ceb82 gcc/ada/libgnat/s-dlmopr.ads 7f56016df6daecd0636379768657421a gcc/ada/libgnat/s-dmotpr.ads 16105281d35bb4678544b788497c60c7 gcc/ada/libgnat/s-dsaser.ads ! c648c8ae7c1d5be12aa48bd68328b757 gcc/ada/libgnat/s-dwalin.adb ! 3b26bbad81429647fa91c78e14bbe36e gcc/ada/libgnat/s-dwalin.ads a5339ba0c6ed98a1a4836870f13db3e3 gcc/ada/libgnat/s-elaall.adb 24f36a692d305131a25e47796f5ba5bd gcc/ada/libgnat/s-elaall.ads 0dd4338cd28438a704f9186353e0e1fa gcc/ada/libgnat/s-excdeb.adb --- 2024,2031 ---- f8a4584126b444bfd4408966324ceb82 gcc/ada/libgnat/s-dlmopr.ads 7f56016df6daecd0636379768657421a gcc/ada/libgnat/s-dmotpr.ads 16105281d35bb4678544b788497c60c7 gcc/ada/libgnat/s-dsaser.ads ! bb938882d46f4af7f1ced34c616b8856 gcc/ada/libgnat/s-dwalin.adb ! bb841bdd03c7dc118596bdafa07f6f5a gcc/ada/libgnat/s-dwalin.ads a5339ba0c6ed98a1a4836870f13db3e3 gcc/ada/libgnat/s-elaall.adb 24f36a692d305131a25e47796f5ba5bd gcc/ada/libgnat/s-elaall.ads 0dd4338cd28438a704f9186353e0e1fa gcc/ada/libgnat/s-excdeb.adb *************** aa254fb95efa452bb15616e1b7bf174b gcc/ad *** 2173,2180 **** ab01a15caf9165c063e0d20a38877d4d gcc/ada/libgnat/s-mmosin__unix.ads 611b533cb01f61813d94cb23135309f6 gcc/ada/libgnat/s-multip.adb c4045ad22005510940d70e1a445db431 gcc/ada/libgnat/s-multip.ads ! 57f358fe3d35b54592c47ba86fe5b3d6 gcc/ada/libgnat/s-objrea.adb ! a36926f87fa0b574b0f018e9608a9f58 gcc/ada/libgnat/s-objrea.ads b0e9287c8eecd65d0d3b68e8cc84fa7d gcc/ada/libgnat/s-optide.adb fdc60857ea008fc2ef4dd93a4be4017b gcc/ada/libgnat/s-os_lib.adb 941a9e868e71769fb5d06f25039e0c01 gcc/ada/libgnat/s-os_lib.ads --- 2176,2183 ---- ab01a15caf9165c063e0d20a38877d4d gcc/ada/libgnat/s-mmosin__unix.ads 611b533cb01f61813d94cb23135309f6 gcc/ada/libgnat/s-multip.adb c4045ad22005510940d70e1a445db431 gcc/ada/libgnat/s-multip.ads ! c3e909dbfbec3dd425b7b004620717e1 gcc/ada/libgnat/s-objrea.adb ! bc4adc62598e23e17cc77c0cd01510ff gcc/ada/libgnat/s-objrea.ads b0e9287c8eecd65d0d3b68e8cc84fa7d gcc/ada/libgnat/s-optide.adb fdc60857ea008fc2ef4dd93a4be4017b gcc/ada/libgnat/s-os_lib.adb 941a9e868e71769fb5d06f25039e0c01 gcc/ada/libgnat/s-os_lib.ads *************** ca720fcc36cb5825933df726c2446794 gcc/ad *** 2848,2854 **** 87dd282f5584837ad701a97d0bda94f7 gcc/ada/sem_intr.ads 7a042eac334274f27f5cec6e4ca137cb gcc/ada/sem_mech.adb 4b4150c9557fa50ca8bdd5d1b30dec58 gcc/ada/sem_mech.ads ! cb7f2932818cf15296c6e54aacfba84a gcc/ada/sem_prag.adb 0a3a4d3df68490e4cafce685685a5a0a gcc/ada/sem_prag.ads 32e9334a0b8113aa45d9a739afda458b gcc/ada/sem_res.adb c18ac43b20949fd32407782bf0f69d90 gcc/ada/sem_res.ads --- 2851,2857 ---- 87dd282f5584837ad701a97d0bda94f7 gcc/ada/sem_intr.ads 7a042eac334274f27f5cec6e4ca137cb gcc/ada/sem_mech.adb 4b4150c9557fa50ca8bdd5d1b30dec58 gcc/ada/sem_mech.ads ! 1c067003a0054b7ff526f461da4259cc gcc/ada/sem_prag.adb 0a3a4d3df68490e4cafce685685a5a0a gcc/ada/sem_prag.ads 32e9334a0b8113aa45d9a739afda458b gcc/ada/sem_res.adb c18ac43b20949fd32407782bf0f69d90 gcc/ada/sem_res.ads *************** b7a90c45c5477c6b5975292eb532f64f gcc/al *** 2977,2983 **** e561a7bae0b2b221a73a390c77be757b gcc/align.h 23442a2d3df1b83bd32978d68e46bcd1 gcc/alloc-pool.c 3ec9e55d9093d096913575231b7b7943 gcc/alloc-pool.h ! 806a3e7ff9506f089e8364a5b7ab76c2 gcc/analyzer/ChangeLog 7ea5759779b2ed252edaea813907bd5a gcc/analyzer/analysis-plan.cc 4717c47360bc5772a2a5d0afdeae18e0 gcc/analyzer/analysis-plan.h 73de39c552e216c1cc1fe1e7d3513cc6 gcc/analyzer/analyzer-logging.cc --- 2980,2986 ---- e561a7bae0b2b221a73a390c77be757b gcc/align.h 23442a2d3df1b83bd32978d68e46bcd1 gcc/alloc-pool.c 3ec9e55d9093d096913575231b7b7943 gcc/alloc-pool.h ! 3700ac4b73516aef576260d2391e704d gcc/analyzer/ChangeLog 7ea5759779b2ed252edaea813907bd5a gcc/analyzer/analysis-plan.cc 4717c47360bc5772a2a5d0afdeae18e0 gcc/analyzer/analysis-plan.h 73de39c552e216c1cc1fe1e7d3513cc6 gcc/analyzer/analyzer-logging.cc *************** c4d612a96ce20b139f0d233760a0cb77 gcc/an *** 3018,3024 **** 24e3dae926e0e8df754fe8e26c7def58 gcc/analyzer/region-model-manager.cc 9faa52eb7a0589418eea7610e39ea842 gcc/analyzer/region-model-reachability.cc 0a0e9c1f4c814b36727206784fad7196 gcc/analyzer/region-model-reachability.h ! 5fa885e93e0a8587f4bc924da026b344 gcc/analyzer/region-model.cc e3f0536bf76e036335b94f367751d88f gcc/analyzer/region-model.h 3cc645a582a40be05f73777684522788 gcc/analyzer/region.cc 821031b2cb42153e649f270612c73ce9 gcc/analyzer/region.h --- 3021,3027 ---- 24e3dae926e0e8df754fe8e26c7def58 gcc/analyzer/region-model-manager.cc 9faa52eb7a0589418eea7610e39ea842 gcc/analyzer/region-model-reachability.cc 0a0e9c1f4c814b36727206784fad7196 gcc/analyzer/region-model-reachability.h ! d1223839f9414ea0ab78d438abbce07a gcc/analyzer/region-model.cc e3f0536bf76e036335b94f367751d88f gcc/analyzer/region-model.h 3cc645a582a40be05f73777684522788 gcc/analyzer/region.cc 821031b2cb42153e649f270612c73ce9 gcc/analyzer/region.h *************** b49b0004f99fd470658a7d0207bc8917 gcc/an *** 3042,3051 **** 185fe9c53545064ee1e53b91358f7de7 gcc/analyzer/trimmed-graph.cc 74a5cb5dcaf4cfb2dce05019ec345914 gcc/analyzer/trimmed-graph.h 4dc5fb48242295b1a20860e9026ef907 gcc/array-traits.h ! a44d34fc91236820a8048065a4f8e614 gcc/asan.c 487ef86d71c549a16efa36238b86952f gcc/asan.h 542d06ea0e3478abe23c1efa8f3be1c9 gcc/attr-fnspec.h ! 79f85909d231df2b55b901167b16e644 gcc/attribs.c b62a19a18359e023c63a5a045f9d97dd gcc/attribs.h 0abcbaaeab3b080c913716fca5d4a9fd gcc/auto-inc-dec.c 2eef15ab83617fc37f40877b720394d9 gcc/auto-profile.c --- 3045,3054 ---- 185fe9c53545064ee1e53b91358f7de7 gcc/analyzer/trimmed-graph.cc 74a5cb5dcaf4cfb2dce05019ec345914 gcc/analyzer/trimmed-graph.h 4dc5fb48242295b1a20860e9026ef907 gcc/array-traits.h ! eb3c809269737f7f4c3b94e4a2bd8dbf gcc/asan.c 487ef86d71c549a16efa36238b86952f gcc/asan.h 542d06ea0e3478abe23c1efa8f3be1c9 gcc/attr-fnspec.h ! 56f7fa0363ae129223b5eb125d069fea gcc/attribs.c b62a19a18359e023c63a5a045f9d97dd gcc/attribs.h 0abcbaaeab3b080c913716fca5d4a9fd gcc/auto-inc-dec.c 2eef15ab83617fc37f40877b720394d9 gcc/auto-profile.c *************** d0ab00f1b3fc80f5bfda75adc6c362d6 gcc/bb *** 3057,3063 **** 49ad33d59190a283fb4c85a41861b83a gcc/bitmap.c 08cf7dff98e7181511efc1517f735186 gcc/bitmap.h 6b9e1cb83032742218edd1600590d286 gcc/brig-builtins.def ! 3184e263a3fdbb8dae62ade6fd0856da gcc/brig/ChangeLog 32f54aacbd7e3a02140d36f7e8f58da6 gcc/brig/Make-lang.in 966892b9e3cc742708ffb50160e7ea6f gcc/brig/brig-builtins.h 0676a7ca45684ceb5fbde93beb5b3950 gcc/brig/brig-c.h --- 3060,3066 ---- 49ad33d59190a283fb4c85a41861b83a gcc/bitmap.c 08cf7dff98e7181511efc1517f735186 gcc/bitmap.h 6b9e1cb83032742218edd1600590d286 gcc/brig-builtins.def ! 155f6d9e8fbc91e6580a8d2a5a0d988d gcc/brig/ChangeLog 32f54aacbd7e3a02140d36f7e8f58da6 gcc/brig/Make-lang.in 966892b9e3cc742708ffb50160e7ea6f gcc/brig/brig-builtins.h 0676a7ca45684ceb5fbde93beb5b3950 gcc/brig/brig-c.h *************** a1cc43f2d0aedbd5540d15c4ec568a8d gcc/br *** 3101,3133 **** 746844ca02d1cafc9fb4b3f354b3dc78 gcc/brig/lang.opt 1b7da82494d0c161ca60a8de1b55195a gcc/builtin-attrs.def 0fb3ced35d472c83b8689686b224ad01 gcc/builtin-types.def ! 320867fa50be133b36428b59b15c4a94 gcc/builtins.c ae94d8196a803d4a2c69cded88dbbb76 gcc/builtins.def f501faddb738e7422e75672d29bfc823 gcc/builtins.h ! 7013e93ee79be6b8caac4bec9567014a gcc/c-family/ChangeLog ea3fa1f4d7390a105fa3caab4f79aaf7 gcc/c-family/ChangeLog.gimple-classes ff19b079a30065b282983bff90d28fe1 gcc/c-family/c-ada-spec.c aaefdc238734ee62a127bef557ad07e3 gcc/c-family/c-ada-spec.h 815dd7c5b46ef4b50d5e40c0da6700c7 gcc/c-family/c-attribs.c ! 57f6c7ce4089c15002cdc50a7abe5acc gcc/c-family/c-common.c e46ad48dbbcefe97d0490955db40eddf gcc/c-family/c-common.def dfe16edb3b81b111e6c4034e30b62631 gcc/c-family/c-common.h ! 6e9e06501cc27a2058a421843d2dfd09 gcc/c-family/c-cppbuiltin.c e8d118aa27a40cfef46375271877c458 gcc/c-family/c-dump.c ! 4500270427ab612e2b2c86f8bca2616e gcc/c-family/c-format.c 24ddc77a1aaacd70e8638b0cbeb2d12d gcc/c-family/c-format.h 77e82f3c8d0ce0df0c22bbf84684cd21 gcc/c-family/c-gimplify.c 47cae120dbbc6dc65b3d06445c7ffd2c gcc/c-family/c-indentation.c d0a5008a37b6b90aad01170ec4597384 gcc/c-family/c-indentation.h 987a47512367efd11640028189ddd6da gcc/c-family/c-lex.c 5be62f7688c8de29dc7aa9faf1367d40 gcc/c-family/c-objc.h ! c4bf621294fcadfd3001becb5d34473c gcc/c-family/c-omp.c ! b400b3781898b623a6b61c01f8e7e6f2 gcc/c-family/c-opts.c 0c3e87810e8edfc7c91b38b0958fe994 gcc/c-family/c-pch.c 094ea467499de4520c5a2f6ee1abc7e0 gcc/c-family/c-ppoutput.c ff199d71952d05520517d7906169f3ff gcc/c-family/c-pragma.c ae0c3df9ebba6d5955c4d243271bc4ef gcc/c-family/c-pragma.h ! 11df78e1d721f3698c04edf421c48aba gcc/c-family/c-pretty-print.c 020ff5f56ad03d7bca8b8eec66f6b106 gcc/c-family/c-pretty-print.h 4cf9dde57eca469e002941f3476f5e47 gcc/c-family/c-semantics.c 39f5e410e60e515e5090db5fa8b436e7 gcc/c-family/c-spellcheck.cc --- 3104,3136 ---- 746844ca02d1cafc9fb4b3f354b3dc78 gcc/brig/lang.opt 1b7da82494d0c161ca60a8de1b55195a gcc/builtin-attrs.def 0fb3ced35d472c83b8689686b224ad01 gcc/builtin-types.def ! f99fcf4646e7b70fc27e5eb3893e1f40 gcc/builtins.c ae94d8196a803d4a2c69cded88dbbb76 gcc/builtins.def f501faddb738e7422e75672d29bfc823 gcc/builtins.h ! a6e0fcbeafcff3f3e6f0f88984e46c7b gcc/c-family/ChangeLog ea3fa1f4d7390a105fa3caab4f79aaf7 gcc/c-family/ChangeLog.gimple-classes ff19b079a30065b282983bff90d28fe1 gcc/c-family/c-ada-spec.c aaefdc238734ee62a127bef557ad07e3 gcc/c-family/c-ada-spec.h 815dd7c5b46ef4b50d5e40c0da6700c7 gcc/c-family/c-attribs.c ! 031c235f8d46cbe87d86009060c1d846 gcc/c-family/c-common.c e46ad48dbbcefe97d0490955db40eddf gcc/c-family/c-common.def dfe16edb3b81b111e6c4034e30b62631 gcc/c-family/c-common.h ! b6e403e7f46d368695a66de3ed639255 gcc/c-family/c-cppbuiltin.c e8d118aa27a40cfef46375271877c458 gcc/c-family/c-dump.c ! 6ec458ba4f30ca4f67e8a0c37cbc852a gcc/c-family/c-format.c 24ddc77a1aaacd70e8638b0cbeb2d12d gcc/c-family/c-format.h 77e82f3c8d0ce0df0c22bbf84684cd21 gcc/c-family/c-gimplify.c 47cae120dbbc6dc65b3d06445c7ffd2c gcc/c-family/c-indentation.c d0a5008a37b6b90aad01170ec4597384 gcc/c-family/c-indentation.h 987a47512367efd11640028189ddd6da gcc/c-family/c-lex.c 5be62f7688c8de29dc7aa9faf1367d40 gcc/c-family/c-objc.h ! bf96a414cbeb69cd94bfeb88daa0056f gcc/c-family/c-omp.c ! fe74cabeb11f779eecd7428ce0eaf1b0 gcc/c-family/c-opts.c 0c3e87810e8edfc7c91b38b0958fe994 gcc/c-family/c-pch.c 094ea467499de4520c5a2f6ee1abc7e0 gcc/c-family/c-ppoutput.c ff199d71952d05520517d7906169f3ff gcc/c-family/c-pragma.c ae0c3df9ebba6d5955c4d243271bc4ef gcc/c-family/c-pragma.h ! a8a409e310da7c679cbdab6592d319d5 gcc/c-family/c-pretty-print.c 020ff5f56ad03d7bca8b8eec66f6b106 gcc/c-family/c-pretty-print.h 4cf9dde57eca469e002941f3476f5e47 gcc/c-family/c-semantics.c 39f5e410e60e515e5090db5fa8b436e7 gcc/c-family/c-spellcheck.cc *************** ae0c3df9ebba6d5955c4d243271bc4ef gcc/c- *** 3135,3170 **** 1b4bd0524aaca890cc050af5017a483d gcc/c-family/c-target-def.h 2a979b918b62205beea7e25f63c95fff gcc/c-family/c-target.def 25b2b1b67352149295b6b87a3266dbfd gcc/c-family/c-target.h ! 337b2798f48579a4ae2ea047fc7557d5 gcc/c-family/c-ubsan.c 687717e96ebfecf566b59f5ed52dd61c gcc/c-family/c-ubsan.h ! 4feb46a99117d208c6847408ae5e3a5a gcc/c-family/c-warn.c bf642fdf30770e997cdf36ff997db522 gcc/c-family/c.opt dda3a883f8b1367723b357a3494a9ad2 gcc/c-family/cppspec.c 03976e75d63506e61159cb33e38a17a4 gcc/c-family/known-headers.cc 24a64eac5a3ca85c2141b26c328e720c gcc/c-family/known-headers.h d945fcf11b0cf9b680801477d4d6dc5d gcc/c-family/name-hint.h 10c210b270bd57796c125ceacb8aacf3 gcc/c-family/stub-objc.c ! d38932aa9e477b4c3a381824987c1889 gcc/c/ChangeLog c2c16ebc27917ec274266a7f0a5de762 gcc/c/Make-lang.in 4b3d7694a2cabd663e29accad2dc49fd gcc/c/c-aux-info.c 477103be514e3fee8add675ebdf6c643 gcc/c/c-convert.c ! 54c3cd7e9167168dfadcc2032f4cf6ff gcc/c/c-decl.c 252e1c166ac85eeca88c8832c302422b gcc/c/c-errors.c ! 1780d134b036bd5b5ecee22b7e214eee gcc/c/c-fold.c ac32535d53226e7747b1f0c599af0aa6 gcc/c/c-lang.c 7679e451f36a4519a03c17b2df2b1f45 gcc/c/c-lang.h e52e3c088bd255130df86d60669a01b4 gcc/c/c-objc-common.c 6dedcac49f0945db05052a9a1ccdba34 gcc/c/c-objc-common.h ! 4646dcb74a972b498aee5234de508ad3 gcc/c/c-parser.c e8275c52f6f57f9005771a7e88cab453 gcc/c/c-parser.h 88b5db93f3375c32222a9f47e689286d gcc/c/c-tree.h ! 03b9f27e8ca1c3d094c0f1464cfb96ab gcc/c/c-typeck.c 14475dbf3b5b7a18fbbedf33d6d8b389 gcc/c/config-lang.in aa25d2829660b30c35d0853ebf4823c8 gcc/c/gccspec.c 5543668009c8b1a506c088278d56eb1f gcc/c/gimple-parser.c 11de19cdadf88dc735a98424b4446d0f gcc/c/gimple-parser.h 6e9b6512ecb2e91435f3965783d9d8a9 gcc/caller-save.c ! b83d6e68ad385c54f01c2bc1f62a9bd5 gcc/calls.c 9d7dc213758e156c7688bea530991bbb gcc/calls.h f8f30bc82844b74d9260c5b65a8df708 gcc/ccmp.c bcc5728c95c60624d67bb7472fc6bfbe gcc/ccmp.h --- 3138,3173 ---- 1b4bd0524aaca890cc050af5017a483d gcc/c-family/c-target-def.h 2a979b918b62205beea7e25f63c95fff gcc/c-family/c-target.def 25b2b1b67352149295b6b87a3266dbfd gcc/c-family/c-target.h ! 76c24983e5b87d60c98c49b5e39fd292 gcc/c-family/c-ubsan.c 687717e96ebfecf566b59f5ed52dd61c gcc/c-family/c-ubsan.h ! 4a2cb3c29a7d2f8188445559577ab548 gcc/c-family/c-warn.c bf642fdf30770e997cdf36ff997db522 gcc/c-family/c.opt dda3a883f8b1367723b357a3494a9ad2 gcc/c-family/cppspec.c 03976e75d63506e61159cb33e38a17a4 gcc/c-family/known-headers.cc 24a64eac5a3ca85c2141b26c328e720c gcc/c-family/known-headers.h d945fcf11b0cf9b680801477d4d6dc5d gcc/c-family/name-hint.h 10c210b270bd57796c125ceacb8aacf3 gcc/c-family/stub-objc.c ! ecf4e71780d21ba6285bd549d11cd5ab gcc/c/ChangeLog c2c16ebc27917ec274266a7f0a5de762 gcc/c/Make-lang.in 4b3d7694a2cabd663e29accad2dc49fd gcc/c/c-aux-info.c 477103be514e3fee8add675ebdf6c643 gcc/c/c-convert.c ! 921f0c40165ee46a2a9839c794b075b8 gcc/c/c-decl.c 252e1c166ac85eeca88c8832c302422b gcc/c/c-errors.c ! c55b3e5a9640ada3dcbf15fce3d36e8d gcc/c/c-fold.c ac32535d53226e7747b1f0c599af0aa6 gcc/c/c-lang.c 7679e451f36a4519a03c17b2df2b1f45 gcc/c/c-lang.h e52e3c088bd255130df86d60669a01b4 gcc/c/c-objc-common.c 6dedcac49f0945db05052a9a1ccdba34 gcc/c/c-objc-common.h ! fd9cc8f7a7047c24872ebbe627edde56 gcc/c/c-parser.c e8275c52f6f57f9005771a7e88cab453 gcc/c/c-parser.h 88b5db93f3375c32222a9f47e689286d gcc/c/c-tree.h ! 9d4291cceb1ce6c6bd32ede937605c34 gcc/c/c-typeck.c 14475dbf3b5b7a18fbbedf33d6d8b389 gcc/c/config-lang.in aa25d2829660b30c35d0853ebf4823c8 gcc/c/gccspec.c 5543668009c8b1a506c088278d56eb1f gcc/c/gimple-parser.c 11de19cdadf88dc735a98424b4446d0f gcc/c/gimple-parser.h 6e9b6512ecb2e91435f3965783d9d8a9 gcc/caller-save.c ! 8e298cc5c5aa2b4402f0ed79d2e9924b gcc/calls.c 9d7dc213758e156c7688bea530991bbb gcc/calls.h f8f30bc82844b74d9260c5b65a8df708 gcc/ccmp.c bcc5728c95c60624d67bb7472fc6bfbe gcc/ccmp.h *************** a3f6082ee8044d951dd495cf2599bd46 gcc/cf *** 3177,3183 **** 8d2d2838a75a74f980c02a0c1dccc6f7 gcc/cfgbuild.h a087ea8cb868ef146a0166e01834b655 gcc/cfgcleanup.c 76493c30b63093a62270af2c53f028b4 gcc/cfgcleanup.h ! 99d99b1551d84bb78ab0288309df9f81 gcc/cfgexpand.c c4c6266c4888e09280fdca3bcdd6c927 gcc/cfgexpand.h 241b624068329a0557ba643040ea7a52 gcc/cfghooks.c 2844f8c444cf87319afcc888a92372d4 gcc/cfghooks.h --- 3180,3186 ---- 8d2d2838a75a74f980c02a0c1dccc6f7 gcc/cfgbuild.h a087ea8cb868ef146a0166e01834b655 gcc/cfgcleanup.c 76493c30b63093a62270af2c53f028b4 gcc/cfgcleanup.h ! a7caec3104f1896bbb3ee04a20132035 gcc/cfgexpand.c c4c6266c4888e09280fdca3bcdd6c927 gcc/cfgexpand.h 241b624068329a0557ba643040ea7a52 gcc/cfghooks.c 2844f8c444cf87319afcc888a92372d4 gcc/cfghooks.h *************** aa71757a8881b31ac75eda23b83e392d gcc/cf *** 3186,3192 **** 532afc445fb123afc9610af6032bf074 gcc/cfgloopanal.c 11cf49613ab20334c1fc9121524d6381 gcc/cfgloopmanip.c 48131d2e7e0d663e5f4d7a8c8c2863f6 gcc/cfgloopmanip.h ! 57da497689234ac138829550215f80d5 gcc/cfgrtl.c 627d4ecbd5c5b924d8cd3e490761285c gcc/cfgrtl.h 3c76f58b3f3e0e44a99975afed43c27e gcc/cgraph.c dccdc21f74f0e2a035bc78105bec8a3e gcc/cgraph.h --- 3189,3195 ---- 532afc445fb123afc9610af6032bf074 gcc/cfgloopanal.c 11cf49613ab20334c1fc9121524d6381 gcc/cfgloopmanip.c 48131d2e7e0d663e5f4d7a8c8c2863f6 gcc/cfgloopmanip.h ! 4baf418bb54906cefac073f3ff23dd15 gcc/cfgrtl.c 627d4ecbd5c5b924d8cd3e490761285c gcc/cfgrtl.h 3c76f58b3f3e0e44a99975afed43c27e gcc/cgraph.c dccdc21f74f0e2a035bc78105bec8a3e gcc/cgraph.h *************** b49865466bbb7aec08e5fc1f12b8fee1 gcc/co *** 3198,3208 **** 35567207ddff3c6a55598c11201c07e9 gcc/collect-utils.h 2e9b2ff70bc3b01d2592857c05906fe9 gcc/collect2-aix.c 4a4133868bd2d57a5c7ee709f9bc72d5 gcc/collect2-aix.h ! a2e13c6eeb81f35dd0d4b5dcc0074bd1 gcc/collect2.c e7cf7224890831969cdba55079c3f8c5 gcc/collect2.h f7e4d84c9831e6b006e3abaf0cda296d gcc/color-macros.h ed6f48014eba9e2fdba773c6bbc66f41 gcc/combine-stack-adj.c ! f5e15d2ef2bb91d3293c334b42de702e gcc/combine.c 654752e8e1da5146591a7aa1c1503728 gcc/common.md e830d7a639390f601506579c91d429ac gcc/common.opt d39719c8a8249d7c11783eb1a99e6629 gcc/common/common-target-def.h --- 3201,3211 ---- 35567207ddff3c6a55598c11201c07e9 gcc/collect-utils.h 2e9b2ff70bc3b01d2592857c05906fe9 gcc/collect2-aix.c 4a4133868bd2d57a5c7ee709f9bc72d5 gcc/collect2-aix.h ! 93da9730bf6e1f09161d471415ab49ce gcc/collect2.c e7cf7224890831969cdba55079c3f8c5 gcc/collect2.h f7e4d84c9831e6b006e3abaf0cda296d gcc/color-macros.h ed6f48014eba9e2fdba773c6bbc66f41 gcc/combine-stack-adj.c ! a75f6f58e211cbfa8cfc60d8948c376d gcc/combine.c 654752e8e1da5146591a7aa1c1503728 gcc/common.md e830d7a639390f601506579c91d429ac gcc/common.opt d39719c8a8249d7c11783eb1a99e6629 gcc/common/common-target-def.h *************** b9e205cf83be687340f57069d2828c97 gcc/co *** 3227,3234 **** b302028eafbaf815953381baed1c74b4 gcc/common/config/frv/frv-common.c 9b09cc59d4b2abf439f40174f9576a69 gcc/common/config/gcn/gcn-common.c 4c82be520bd57ce5fdb0b57810fa90c9 gcc/common/config/h8300/h8300-common.c ! d90b3399afb50df7c96291efe28ebdd6 gcc/common/config/i386/cpuinfo.h ! 7a6ee4691af3ee68796cb72ea536dff3 gcc/common/config/i386/i386-common.c abdf89aeee73e0bc78d1c7c7096c04de gcc/common/config/i386/i386-cpuinfo.h 2b7433f285684f4da203c7d39cd60be7 gcc/common/config/i386/i386-isas.h 41afdf8ce4284f33a46b2605ce6eafc7 gcc/common/config/ia64/ia64-common.c --- 3230,3237 ---- b302028eafbaf815953381baed1c74b4 gcc/common/config/frv/frv-common.c 9b09cc59d4b2abf439f40174f9576a69 gcc/common/config/gcn/gcn-common.c 4c82be520bd57ce5fdb0b57810fa90c9 gcc/common/config/h8300/h8300-common.c ! cc097d962111af656c91ce30b31c5590 gcc/common/config/i386/cpuinfo.h ! 6dc32a89301fd0b5dcf0460900c0f84a gcc/common/config/i386/i386-common.c abdf89aeee73e0bc78d1c7c7096c04de gcc/common/config/i386/i386-cpuinfo.h 2b7433f285684f4da203c7d39cd60be7 gcc/common/config/i386/i386-isas.h 41afdf8ce4284f33a46b2605ce6eafc7 gcc/common/config/ia64/ia64-common.c *************** c90e4a6fa0f79bf807dcfbed250daa98 gcc/co *** 3249,3258 **** dcf26e1a553f369f46a4715d27f98011 gcc/common/config/pa/pa-common.c 632a5fdabf385ce711aa58e26b678e45 gcc/common/config/pdp11/pdp11-common.c dc136056beaa5131fb60de92a65b0cd4 gcc/common/config/pru/pru-common.c ! 24fac0d7166b73095a41547bb2914b43 gcc/common/config/riscv/riscv-common.c ! 8d78614e94cef65542a3c18e21fbf71a gcc/common/config/rs6000/rs6000-common.c 356ae7f15ec175ef0839a3cad41c7a8d gcc/common/config/rx/rx-common.c ! d206c0a3bb718fb9f848902d92b1ee99 gcc/common/config/s390/s390-common.c 7e2a19d57fd75e9f77c7f92f0461111f gcc/common/config/sh/sh-common.c 0d35cfa0c5b6fff1703404123f09de26 gcc/common/config/sparc/sparc-common.c f969c92621b2f91048e39bbd4160557a gcc/common/config/tilegx/tilegx-common.c --- 3252,3261 ---- dcf26e1a553f369f46a4715d27f98011 gcc/common/config/pa/pa-common.c 632a5fdabf385ce711aa58e26b678e45 gcc/common/config/pdp11/pdp11-common.c dc136056beaa5131fb60de92a65b0cd4 gcc/common/config/pru/pru-common.c ! cce42ab829b767cbf008002ca7266ee5 gcc/common/config/riscv/riscv-common.c ! b96b79061c46add3630b3c0932b23d01 gcc/common/config/rs6000/rs6000-common.c 356ae7f15ec175ef0839a3cad41c7a8d gcc/common/config/rx/rx-common.c ! f5dd8177e9c897ae8b1af68158785443 gcc/common/config/s390/s390-common.c 7e2a19d57fd75e9f77c7f92f0461111f gcc/common/config/sh/sh-common.c 0d35cfa0c5b6fff1703404123f09de26 gcc/common/config/sparc/sparc-common.c f969c92621b2f91048e39bbd4160557a gcc/common/config/tilegx/tilegx-common.c *************** adb9f88eafb276d0ce398300d4103015 gcc/co *** 3265,3281 **** b2ffc0034da9ccbf178a5e5748c52c0a gcc/compare-elim.c e4b6829ec591a11a2cb0db458fe65ff2 gcc/conditions.h cc62394ef13d37ac049f14027a48482a gcc/config.build ! 6cb82a9f7591022f08c544cb7816d7f2 gcc/config.gcc 31bf67644c4d7d8b27828e16398dc1d9 gcc/config.host ! f8cecc4150d2af30d61e6bc2deb93449 gcc/config.in 8e697813dc96ca90f5d0f4c196efe2cc gcc/config/README 1e9e77d433aa4a980b2aa08ff1ac55db gcc/config/aarch64/aarch64-arches.def 1ab879dfa2a1dd57f0cacc5494704f42 gcc/config/aarch64/aarch64-bti-insert.c 73f1d76b1e34329d429fa9dd801cea9e gcc/config/aarch64/aarch64-builtins.c ! cb3be802be5a763bd10184170ac16652 gcc/config/aarch64/aarch64-c.c e59a3f748c562e36ae56da5a4a570356 gcc/config/aarch64/aarch64-cc-fusion.cc ! 6b8131c2fbd26b7762c85c7ad0710c70 gcc/config/aarch64/aarch64-cores.def ! 2636adc152921b1cd0fe5d6edefa4ce6 gcc/config/aarch64/aarch64-cost-tables.h 7a209f0ae0add87b9144ece813928a90 gcc/config/aarch64/aarch64-d.c 89bdbb01cb73e3f0919c1d6d2ba307bb gcc/config/aarch64/aarch64-elf-raw.h f21ecc1635eb9a794f1d03cc75500f1d gcc/config/aarch64/aarch64-elf.h --- 3268,3284 ---- b2ffc0034da9ccbf178a5e5748c52c0a gcc/compare-elim.c e4b6829ec591a11a2cb0db458fe65ff2 gcc/conditions.h cc62394ef13d37ac049f14027a48482a gcc/config.build ! 186f10f255472d14437dc2b523ace799 gcc/config.gcc 31bf67644c4d7d8b27828e16398dc1d9 gcc/config.host ! de5f053f58e1109f62bcdbdef6b90b44 gcc/config.in 8e697813dc96ca90f5d0f4c196efe2cc gcc/config/README 1e9e77d433aa4a980b2aa08ff1ac55db gcc/config/aarch64/aarch64-arches.def 1ab879dfa2a1dd57f0cacc5494704f42 gcc/config/aarch64/aarch64-bti-insert.c 73f1d76b1e34329d429fa9dd801cea9e gcc/config/aarch64/aarch64-builtins.c ! 40828c1edbad134cf62039c3f3acb336 gcc/config/aarch64/aarch64-c.c e59a3f748c562e36ae56da5a4a570356 gcc/config/aarch64/aarch64-cc-fusion.cc ! 6fb063c2a47c49fad6e24534f9f99f8b gcc/config/aarch64/aarch64-cores.def ! b4d9dcbbe8caafbf9854283fbc6e3238 gcc/config/aarch64/aarch64-cost-tables.h 7a209f0ae0add87b9144ece813928a90 gcc/config/aarch64/aarch64-d.c 89bdbb01cb73e3f0919c1d6d2ba307bb gcc/config/aarch64/aarch64-elf-raw.h f21ecc1635eb9a794f1d03cc75500f1d gcc/config/aarch64/aarch64-elf.h *************** c5cb6a8b03d65fae0375198834e67a89 gcc/co *** 3289,3298 **** b94d8d3eab975242d7f1db8a1921e2d4 gcc/config/aarch64/aarch64-option-extensions.def 5070a0c7b6edddd4794f877823f6a675 gcc/config/aarch64/aarch64-opts.h bd39101ee7e523cee8589bddf788a863 gcc/config/aarch64/aarch64-passes.def ! 7a366109c1f49ff55df33391359f1aa3 gcc/config/aarch64/aarch64-protos.h f4e8ddb01a0c073af7bd47950e5052d8 gcc/config/aarch64/aarch64-simd-builtin-types.def a57e7294debe2760574e76f5405efc29 gcc/config/aarch64/aarch64-simd-builtins.def ! 88a00d0b8cb3f671c65a4040c7ea0367 gcc/config/aarch64/aarch64-simd.md 5a9f2f65b25636e30ba5254866b36124 gcc/config/aarch64/aarch64-speculation.cc 2193126f11ce458f9f1292dcf8f9f1bf gcc/config/aarch64/aarch64-sve-builtins-base.cc 2e5ac221624603ecfcaff6c29bbc8ff0 gcc/config/aarch64/aarch64-sve-builtins-base.def --- 3292,3301 ---- b94d8d3eab975242d7f1db8a1921e2d4 gcc/config/aarch64/aarch64-option-extensions.def 5070a0c7b6edddd4794f877823f6a675 gcc/config/aarch64/aarch64-opts.h bd39101ee7e523cee8589bddf788a863 gcc/config/aarch64/aarch64-passes.def ! 74161d5048d9a6a157d644ae98ba38e0 gcc/config/aarch64/aarch64-protos.h f4e8ddb01a0c073af7bd47950e5052d8 gcc/config/aarch64/aarch64-simd-builtin-types.def a57e7294debe2760574e76f5405efc29 gcc/config/aarch64/aarch64-simd-builtins.def ! 48798f4881b4294ff03e89b3573283b0 gcc/config/aarch64/aarch64-simd.md 5a9f2f65b25636e30ba5254866b36124 gcc/config/aarch64/aarch64-speculation.cc 2193126f11ce458f9f1292dcf8f9f1bf gcc/config/aarch64/aarch64-sve-builtins-base.cc 2e5ac221624603ecfcaff6c29bbc8ff0 gcc/config/aarch64/aarch64-sve-builtins-base.def *************** d7b507459d8322632f7a6054d221420c gcc/co *** 3306,3317 **** 8b07b4ea6c45579f7a06fee6c687e734 gcc/config/aarch64/aarch64-sve-builtins.cc 84e976c61e7df417c4615f873f6260d9 gcc/config/aarch64/aarch64-sve-builtins.def 2bb49c05f0be70f85d5eb7341a3fed80 gcc/config/aarch64/aarch64-sve-builtins.h ! 5e6e1dde55cd12f7db6a9092cfe77058 gcc/config/aarch64/aarch64-sve.md 024f1f15f2747beb21971036aa2e89d9 gcc/config/aarch64/aarch64-sve2.md ! 3d0ddef54fa3101a229b2cc9d1f8749a gcc/config/aarch64/aarch64-tune.md 02788d998926c5d56579837ba517a991 gcc/config/aarch64/aarch64-tuning-flags.def 9f502cdcedcd85f77d279b53ea68cfc3 gcc/config/aarch64/aarch64-vxworks.h ! 3598068f3b8a0efda55da7dff1816c2b gcc/config/aarch64/aarch64.c 0ca942e84e4b92f73aaaec7bfa1ccbc9 gcc/config/aarch64/aarch64.h 477f0cc9cbbc752a226b3a17f9a95f90 gcc/config/aarch64/aarch64.md 4923901cd53cde9dcd83c7f0dab8ef58 gcc/config/aarch64/aarch64.opt --- 3309,3320 ---- 8b07b4ea6c45579f7a06fee6c687e734 gcc/config/aarch64/aarch64-sve-builtins.cc 84e976c61e7df417c4615f873f6260d9 gcc/config/aarch64/aarch64-sve-builtins.def 2bb49c05f0be70f85d5eb7341a3fed80 gcc/config/aarch64/aarch64-sve-builtins.h ! 6cefef30f3cc1d09d20dbbb0cd69121b gcc/config/aarch64/aarch64-sve.md 024f1f15f2747beb21971036aa2e89d9 gcc/config/aarch64/aarch64-sve2.md ! 93880d302d6c66c857022719598265b0 gcc/config/aarch64/aarch64-tune.md 02788d998926c5d56579837ba517a991 gcc/config/aarch64/aarch64-tuning-flags.def 9f502cdcedcd85f77d279b53ea68cfc3 gcc/config/aarch64/aarch64-vxworks.h ! 2a4ac397720238bf00c6070f51b8869f gcc/config/aarch64/aarch64.c 0ca942e84e4b92f73aaaec7bfa1ccbc9 gcc/config/aarch64/aarch64.h 477f0cc9cbbc752a226b3a17f9a95f90 gcc/config/aarch64/aarch64.md 4923901cd53cde9dcd83c7f0dab8ef58 gcc/config/aarch64/aarch64.opt *************** d1bbf361745ec677a615eb0a11e5b715 gcc/co *** 3329,3334 **** --- 3332,3338 ---- cf52b0975e4c0d0924ed38da6a43949c gcc/config/aarch64/driver-aarch64.c 9dca576b967f36193e144d26def4a9c5 gcc/config/aarch64/falkor-tag-collision-avoidance.c 72804cc2b3f5d7e52809a06b3c251c54 gcc/config/aarch64/falkor.md + 63d0eebbd3376ae240e4547760915f66 gcc/config/aarch64/fractional-cost.h 67157c8970cb22f05a2e298f9a6b84c7 gcc/config/aarch64/geniterators.sh 9a3499491d4a8101f057a66925192785 gcc/config/aarch64/gentune.sh 05fb97992a51e3216fc9eb440e168427 gcc/config/aarch64/iterators.md *************** bafeb90dee387b017b95b6ebdf1e7d23 gcc/co *** 3414,3421 **** d48d5df954efeefe686652ee316a5ea3 gcc/config/arm/aout.h 4209093957da24b06ca8ee2328b86d08 gcc/config/arm/arm-builtins.c 4379c1e8afc18227f1b48f0dcdebd62c gcc/config/arm/arm-builtins.h ! dd2f62ee94f15716620bf57d16c6c182 gcc/config/arm/arm-c.c ! 08e7972253447f8976984f17a16daad4 gcc/config/arm/arm-cpus.in 5510fc0a22e6f1b48800e5ae75faf958 gcc/config/arm/arm-d.c e697f61ce1f19207b754f9e4e060df79 gcc/config/arm/arm-fixed.md 9f56291be317bd7c26843f3b901e70ab gcc/config/arm/arm-flags.h --- 3418,3425 ---- d48d5df954efeefe686652ee316a5ea3 gcc/config/arm/aout.h 4209093957da24b06ca8ee2328b86d08 gcc/config/arm/arm-builtins.c 4379c1e8afc18227f1b48f0dcdebd62c gcc/config/arm/arm-builtins.h ! 6d9a6f32fd86f8b88bff780a7698d580 gcc/config/arm/arm-c.c ! e007b37cee092f5b5a612a8a4871cd65 gcc/config/arm/arm-cpus.in 5510fc0a22e6f1b48800e5ae75faf958 gcc/config/arm/arm-d.c e697f61ce1f19207b754f9e4e060df79 gcc/config/arm/arm-fixed.md 9f56291be317bd7c26843f3b901e70ab gcc/config/arm/arm-flags.h *************** acae73854486ed7ab4e8e8af88c5eb58 gcc/co *** 3427,3436 **** 095ccfc0877933dc53eb40c2369fcf9a gcc/config/arm/arm-simd-builtin-types.def e15ee919dad399c4e00ca11efe4bcd94 gcc/config/arm/arm-tables.opt d70a50caf4aae1fb3ab57300fd85cd84 gcc/config/arm/arm-tune.md ! 0be7dda5efe7201376d8f411ad304ae9 gcc/config/arm/arm.c fa7937aa82161053523e64455115ac0d gcc/config/arm/arm.h ! af3b0457dd7273b7b80a453bb6461a2e gcc/config/arm/arm.md ! d11101f1b6a45893eaffa99a8fc18acf gcc/config/arm/arm.opt 4e8f8d7a828a2fafaf77c37723c261d2 gcc/config/arm/arm1020e.md d70cb415fe667cb4c7ac20d8fe3dd244 gcc/config/arm/arm1026ejs.md 6c2465b6e56604f9ea139960f9f28bc0 gcc/config/arm/arm1136jfs.md --- 3431,3440 ---- 095ccfc0877933dc53eb40c2369fcf9a gcc/config/arm/arm-simd-builtin-types.def e15ee919dad399c4e00ca11efe4bcd94 gcc/config/arm/arm-tables.opt d70a50caf4aae1fb3ab57300fd85cd84 gcc/config/arm/arm-tune.md ! a6942f87d3c677f8628741b7c277c775 gcc/config/arm/arm.c fa7937aa82161053523e64455115ac0d gcc/config/arm/arm.h ! 9b8b431e40e39b11d70fe124e6b05b1e gcc/config/arm/arm.md ! eabc54f06df24e849baa2f7e1d988bb0 gcc/config/arm/arm.opt 4e8f8d7a828a2fafaf77c37723c261d2 gcc/config/arm/arm1020e.md d70cb415fe667cb4c7ac20d8fe3dd244 gcc/config/arm/arm1026ejs.md 6c2465b6e56604f9ea139960f9f28bc0 gcc/config/arm/arm1136jfs.md *************** cbd337565b4f575afdb3dd52410870b1 gcc/co *** 3442,3452 **** b3ff620bd4c7d4f7a374b8b19c778f8b gcc/config/arm/arm_cde_builtins.def d6ade416bb7470bf6720a319a6338eea gcc/config/arm/arm_cmse.h 4f4f4a20209f5621b7e361bd1aceed91 gcc/config/arm/arm_fp16.h ! d630a4abbc6ba966b2f96e75a6cdfa4e gcc/config/arm/arm_mve.h 908c5eff411e7da1583bec9a5f5eb9f5 gcc/config/arm/arm_mve_builtins.def 88bbc52aa44aed209be04d7e97d96e42 gcc/config/arm/arm_mve_types.h ! 0d21d34455eeb1963a503ce34afb6181 gcc/config/arm/arm_neon.h ! 7a92ce6bcbb0d443fd30bb1456be63e0 gcc/config/arm/arm_neon_builtins.def d046918bcae84588bd3674d5fd1379da gcc/config/arm/arm_vfp_builtins.def d38fb86a101a0c45b14efe3c44729d0c gcc/config/arm/bpabi.h f202d6b26eae69e1d38719f4676cf1b9 gcc/config/arm/common.md --- 3446,3456 ---- b3ff620bd4c7d4f7a374b8b19c778f8b gcc/config/arm/arm_cde_builtins.def d6ade416bb7470bf6720a319a6338eea gcc/config/arm/arm_cmse.h 4f4f4a20209f5621b7e361bd1aceed91 gcc/config/arm/arm_fp16.h ! 716f36a8c4a971c05e1374fc31e74056 gcc/config/arm/arm_mve.h 908c5eff411e7da1583bec9a5f5eb9f5 gcc/config/arm/arm_mve_builtins.def 88bbc52aa44aed209be04d7e97d96e42 gcc/config/arm/arm_mve_types.h ! 359287a0a608dd167686e2ae84c54ea0 gcc/config/arm/arm_neon.h ! cbca5f0c85ad3b6ac0e5929359764930 gcc/config/arm/arm_neon_builtins.def d046918bcae84588bd3674d5fd1379da gcc/config/arm/arm_vfp_builtins.def d38fb86a101a0c45b14efe3c44729d0c gcc/config/arm/bpabi.h f202d6b26eae69e1d38719f4676cf1b9 gcc/config/arm/common.md *************** bd2045b2f5d8245c16a45237dce679a6 gcc/co *** 3492,3498 **** 64a1f7d58f31d526a6b511b59068a296 gcc/config/arm/marvell-pj4.md 43fdc3285e4cf2925affd75f5e519dda gcc/config/arm/mmintrin.h de871d10cad9745db0ca15dd6c63933a gcc/config/arm/mve.md ! 33e45b75c78ff66fdc300364f690e2ec gcc/config/arm/neon.md e602d4f71105bebaba1f0160067b903c gcc/config/arm/netbsd-eabi.h 4868137991adc2b3ed94f92b94681a5c gcc/config/arm/netbsd-elf.h cae8e4d7062cc8528b86ba742f87b233 gcc/config/arm/parsecpu.awk --- 3496,3502 ---- 64a1f7d58f31d526a6b511b59068a296 gcc/config/arm/marvell-pj4.md 43fdc3285e4cf2925affd75f5e519dda gcc/config/arm/mmintrin.h de871d10cad9745db0ca15dd6c63933a gcc/config/arm/mve.md ! 9f532768a1dd1fd1a7115fc72bbf7a88 gcc/config/arm/neon.md e602d4f71105bebaba1f0160067b903c gcc/config/arm/netbsd-eabi.h 4868137991adc2b3ed94f92b94681a5c gcc/config/arm/netbsd-elf.h cae8e4d7062cc8528b86ba742f87b233 gcc/config/arm/parsecpu.awk *************** c1ce8990c1043f299ab96a7d2c9feac2 gcc/co *** 3522,3529 **** 9bc8c1d93425150291f333f13713387d gcc/config/arm/uclinuxfdpiceabi.h 3285e4d14032fb0ae4faa2809a98b43b gcc/config/arm/unknown-elf.h 4d486054574a4f147041002f62b9faa5 gcc/config/arm/unspecs.md ! 5e5d89d88bc9f673b8438bee294f54c2 gcc/config/arm/vec-common.md ! a536f225a59e0e18e662c5792de3b578 gcc/config/arm/vfp.md 5b03ce06f03ed9738ed6cee13b1475ab gcc/config/arm/vfp11.md 77f809b2e1735d57d8681bbd8e506d7c gcc/config/arm/vxworks.h 3f347f182b169716d6be40e6781e10b4 gcc/config/arm/vxworks.opt --- 3526,3533 ---- 9bc8c1d93425150291f333f13713387d gcc/config/arm/uclinuxfdpiceabi.h 3285e4d14032fb0ae4faa2809a98b43b gcc/config/arm/unknown-elf.h 4d486054574a4f147041002f62b9faa5 gcc/config/arm/unspecs.md ! 63618d304ddef37b30a4e977d5558a61 gcc/config/arm/vec-common.md ! e03dd376edfeaf6532effda3526527c1 gcc/config/arm/vfp.md 5b03ce06f03ed9738ed6cee13b1475ab gcc/config/arm/vfp11.md 77f809b2e1735d57d8681bbd8e506d7c gcc/config/arm/vxworks.h 3f347f182b169716d6be40e6781e10b4 gcc/config/arm/vxworks.opt *************** d60f590cb6f4d4348e1e3d111785452e gcc/co *** 3658,3673 **** 50644547da413f442c233fc649602657 gcc/config/csky/t-csky-elf 75c37c753546509bef2946cf75d47653 gcc/config/csky/t-csky-linux 4495725c3c863ee081187ccfd1118a02 gcc/config/csky/t-sysroot-suffix ! 685a395c368e53ba7a4fbc601ef966a5 gcc/config/darwin-c.c bf77a54b5c52ed103705a4e960d9f814 gcc/config/darwin-d.c ! b641eb2a04d3dd69bad6a6c8694920c5 gcc/config/darwin-driver.c dbb6f1d5dc4ceaaf0fd2e5bc4bbb2a29 gcc/config/darwin-f.c 1e7f34ef6b48c907fbf5b2d5a629e957 gcc/config/darwin-ppc-ldouble-patch.def d888c4de74a969d5751349e288d4728d gcc/config/darwin-protos.h fe391a430f76c969aa3909a7239a4812 gcc/config/darwin-sections.def ! f3c161ffb8d4dc03f4e543edf272f615 gcc/config/darwin.c ! 90c1ecd7968c8d953e1a8f44a4612571 gcc/config/darwin.h ! a2d60a223a30b390f4a9b3f6c6f3a4b4 gcc/config/darwin.opt 23bab33707e2ef99310565f620c62080 gcc/config/dbx.h 04c3ad90675d44af0d58b60b7ce96c32 gcc/config/dbxcoff.h 201708cb71e4d33abc802e38b34cb75c gcc/config/dbxelf.h --- 3662,3677 ---- 50644547da413f442c233fc649602657 gcc/config/csky/t-csky-elf 75c37c753546509bef2946cf75d47653 gcc/config/csky/t-csky-linux 4495725c3c863ee081187ccfd1118a02 gcc/config/csky/t-sysroot-suffix ! a8233b75fe59757a51457ef68fe9678c gcc/config/darwin-c.c bf77a54b5c52ed103705a4e960d9f814 gcc/config/darwin-d.c ! 7c3e8c7f69a5d63e6061bdfeda0ba727 gcc/config/darwin-driver.c dbb6f1d5dc4ceaaf0fd2e5bc4bbb2a29 gcc/config/darwin-f.c 1e7f34ef6b48c907fbf5b2d5a629e957 gcc/config/darwin-ppc-ldouble-patch.def d888c4de74a969d5751349e288d4728d gcc/config/darwin-protos.h fe391a430f76c969aa3909a7239a4812 gcc/config/darwin-sections.def ! 742a51260c78210a2dd5cbd87312e6ba gcc/config/darwin.c ! 050abc87b0d8cec0efab57ee18a61c6e gcc/config/darwin.h ! 3d206af3a9f3e409c3fa42bc4e807a7b gcc/config/darwin.opt 23bab33707e2ef99310565f620c62080 gcc/config/dbx.h 04c3ad90675d44af0d58b60b7ce96c32 gcc/config/dbxcoff.h 201708cb71e4d33abc802e38b34cb75c gcc/config/dbxelf.h *************** ae85d420d4bf4958137e8cb372f3f369 gcc/co *** 3733,3750 **** a733f81349c20385c50f770a10f7de6c gcc/config/gcn/constraints.md 82b13df8b593c159805782c7dbe7fda9 gcc/config/gcn/driver-gcn.c 732098b93e714142df8252b91f3dce07 gcc/config/gcn/gcn-builtins.def ! 96b200bc289b328d2d0d2eb7da2641c2 gcc/config/gcn/gcn-hsa.h 1d42068551367c9e444a731d3bada9e4 gcc/config/gcn/gcn-modes.def ! 6dd458e9f9a8a36ba0fdf5e54d5d60a9 gcc/config/gcn/gcn-opts.h f98eab048f5a637fd467a18481b30752 gcc/config/gcn/gcn-protos.h 51d24974357a28897734b5ec5c2d6b63 gcc/config/gcn/gcn-run.c 6760b3c4adf61c7dacb360016778a0ef gcc/config/gcn/gcn-tree.c ! d42e33f803c5c56a29dab7012f66b7e6 gcc/config/gcn/gcn-valu.md ! 0c9440f5fb92d224a97f23c6c92d5e70 gcc/config/gcn/gcn.c 0a40d3d00785d82115ce3014003dfb19 gcc/config/gcn/gcn.h ! 27f2f0b461fc498e0f1ea853b4b8e5b9 gcc/config/gcn/gcn.md ! 3bbef486086d67495f98d2e7ed1133d4 gcc/config/gcn/gcn.opt ! 9891b2e85f3e7ebf68e436fe7dfe159d gcc/config/gcn/mkoffload.c 589b28de219a2e291d2de1d1c971e5a7 gcc/config/gcn/offload.h b5330a50584c27019826b271b0f61941 gcc/config/gcn/predicates.md bcfdc39d82599c4a137956732c96c957 gcc/config/gcn/t-gcn-hsa --- 3737,3754 ---- a733f81349c20385c50f770a10f7de6c gcc/config/gcn/constraints.md 82b13df8b593c159805782c7dbe7fda9 gcc/config/gcn/driver-gcn.c 732098b93e714142df8252b91f3dce07 gcc/config/gcn/gcn-builtins.def ! 714b4a4e9019c8297cfc9d081048fa5a gcc/config/gcn/gcn-hsa.h 1d42068551367c9e444a731d3bada9e4 gcc/config/gcn/gcn-modes.def ! 6961b68782327f056c423f7a6044fed9 gcc/config/gcn/gcn-opts.h f98eab048f5a637fd467a18481b30752 gcc/config/gcn/gcn-protos.h 51d24974357a28897734b5ec5c2d6b63 gcc/config/gcn/gcn-run.c 6760b3c4adf61c7dacb360016778a0ef gcc/config/gcn/gcn-tree.c ! a3cc21b7718ac9926bfb57218235776a gcc/config/gcn/gcn-valu.md ! 3e8b773f5c57e023afb6c434c097805e gcc/config/gcn/gcn.c 0a40d3d00785d82115ce3014003dfb19 gcc/config/gcn/gcn.h ! a165794717431db2cfdc9e560e45d385 gcc/config/gcn/gcn.md ! e70d28ddc1211f83878f6dcc44912420 gcc/config/gcn/gcn.opt ! 835d09167780dd01b66edb64e967079a gcc/config/gcn/mkoffload.c 589b28de219a2e291d2de1d1c971e5a7 gcc/config/gcn/offload.h b5330a50584c27019826b271b0f61941 gcc/config/gcn/predicates.md bcfdc39d82599c4a137956732c96c957 gcc/config/gcn/t-gcn-hsa *************** bce872407ffa808d0db599bc7629d590 gcc/co *** 3794,3802 **** 3c7925b05c2dab7ea7529815092e77c4 gcc/config/hpux11.opt 263b37387c22edd1eb9e96646a158fa6 gcc/config/i386/adxintrin.h 5b432e4704ce6c673a612e9ee95f8330 gcc/config/i386/ammintrin.h ! 1370c6b87459e052cf08c262cd78ff9a gcc/config/i386/amxbf16intrin.h ! 7238b88d61a2bcc3ff4690334bf34d7b gcc/config/i386/amxint8intrin.h ! 47b31af903b1397db0cc07e940b08e5b gcc/config/i386/amxtileintrin.h 191a6ecdf5316e7035dcc896f1aaaaf0 gcc/config/i386/athlon.md 1203fdf8b1487c9f925131b28b02b44b gcc/config/i386/atom.md 24b0ba3db73234857e9f4e731b3667a0 gcc/config/i386/att.h --- 3798,3806 ---- 3c7925b05c2dab7ea7529815092e77c4 gcc/config/hpux11.opt 263b37387c22edd1eb9e96646a158fa6 gcc/config/i386/adxintrin.h 5b432e4704ce6c673a612e9ee95f8330 gcc/config/i386/ammintrin.h ! 28dcfe5268c82cdc42292f182469963b gcc/config/i386/amxbf16intrin.h ! 2d9d8e73beb1902033e40d93fe7ae3bf gcc/config/i386/amxint8intrin.h ! f4ac9cdd6fe1c388fb12a3695be9e14b gcc/config/i386/amxtileintrin.h 191a6ecdf5316e7035dcc896f1aaaaf0 gcc/config/i386/athlon.md 1203fdf8b1487c9f925131b28b02b44b gcc/config/i386/atom.md 24b0ba3db73234857e9f4e731b3667a0 gcc/config/i386/att.h *************** bce872407ffa808d0db599bc7629d590 gcc/co *** 3808,3814 **** 618b88152e063926b86abd8ffa5d1a6b gcc/config/i386/avx512bitalgintrin.h 118a53e3f98f316a1cbf54453cad801f gcc/config/i386/avx512bwintrin.h fc95a6779839884b9fc3c3eecfab9669 gcc/config/i386/avx512cdintrin.h ! 24ec5926e7dab13cac695a894e4aeef1 gcc/config/i386/avx512dqintrin.h 8cc4f2851dfd47e6cbd9f8043434b618 gcc/config/i386/avx512erintrin.h 57760a73af5f476ce5071cf19e403644 gcc/config/i386/avx512fintrin.h 06c4e386cd05fafff0c2d017aa8ba05e gcc/config/i386/avx512ifmaintrin.h --- 3812,3818 ---- 618b88152e063926b86abd8ffa5d1a6b gcc/config/i386/avx512bitalgintrin.h 118a53e3f98f316a1cbf54453cad801f gcc/config/i386/avx512bwintrin.h fc95a6779839884b9fc3c3eecfab9669 gcc/config/i386/avx512cdintrin.h ! 77f8546571fb61d83fb84241a97b7fd0 gcc/config/i386/avx512dqintrin.h 8cc4f2851dfd47e6cbd9f8043434b618 gcc/config/i386/avx512erintrin.h 57760a73af5f476ce5071cf19e403644 gcc/config/i386/avx512fintrin.h 06c4e386cd05fafff0c2d017aa8ba05e gcc/config/i386/avx512ifmaintrin.h *************** a8d6049f5a5f72a7fbe3b8d4c2c0d4ba gcc/co *** 3845,3851 **** 39bdcc420e8a84a74cd5947223064b10 gcc/config/i386/clflushoptintrin.h 3e3bde0662c291cb954da4c63efe9ce7 gcc/config/i386/clwbintrin.h 0c3d45c97529fbdedb432fc823cf8a6f gcc/config/i386/clzerointrin.h ! 382547d8f3f766db06cdcffe38237ebd gcc/config/i386/constraints.md 6b090caccbe40cc7364c01d6955ae695 gcc/config/i386/core2.md 63121c44c1f55ab239d908600580e6e4 gcc/config/i386/cpuid.h d953ded987a4f0af89ae9755a0f7ef97 gcc/config/i386/cross-stdarg.h --- 3849,3855 ---- 39bdcc420e8a84a74cd5947223064b10 gcc/config/i386/clflushoptintrin.h 3e3bde0662c291cb954da4c63efe9ce7 gcc/config/i386/clwbintrin.h 0c3d45c97529fbdedb432fc823cf8a6f gcc/config/i386/clzerointrin.h ! 95f79c416a20963a9571c532e60955fc gcc/config/i386/constraints.md 6b090caccbe40cc7364c01d6955ae695 gcc/config/i386/core2.md 63121c44c1f55ab239d908600580e6e4 gcc/config/i386/cpuid.h d953ded987a4f0af89ae9755a0f7ef97 gcc/config/i386/cross-stdarg.h *************** e54ea527bab7db8b62707abf7d8590ca gcc/co *** 3856,3864 **** b5ae0a1d0b938c1efa427d0072eabbf1 gcc/config/i386/cygwin-w64.h 986fdbf17c77b47402de2e1d369fdb93 gcc/config/i386/cygwin.h aa7f76fe99be46381f2818bb1514a2f5 gcc/config/i386/cygwin.opt ! 746464bd1413bdc2ccdd62a67866f0b9 gcc/config/i386/darwin.h ! 7278e344d001e5395e9c717c5cae889a gcc/config/i386/darwin32-biarch.h ! 3b66dd00c3f0e4488dd4708e91a674b8 gcc/config/i386/darwin64-biarch.h 2361d24556fbdcd6f9f833148a1254fa gcc/config/i386/djgpp-stdint.h d04ed61f749e229f239897b3baca4938 gcc/config/i386/djgpp.c 7eef87bf6d5ed6ed58a3f49b605fa304 gcc/config/i386/djgpp.h --- 3860,3868 ---- b5ae0a1d0b938c1efa427d0072eabbf1 gcc/config/i386/cygwin-w64.h 986fdbf17c77b47402de2e1d369fdb93 gcc/config/i386/cygwin.h aa7f76fe99be46381f2818bb1514a2f5 gcc/config/i386/cygwin.opt ! b8fc0b400408d58cc2bb1539185eec9e gcc/config/i386/darwin.h ! e4db542240e16290cbdc69380f3b9dc6 gcc/config/i386/darwin32-biarch.h ! 1656f562846ff5f0c45ad1291cc82d18 gcc/config/i386/darwin64-biarch.h 2361d24556fbdcd6f9f833148a1254fa gcc/config/i386/djgpp-stdint.h d04ed61f749e229f239897b3baca4938 gcc/config/i386/djgpp.c 7eef87bf6d5ed6ed58a3f49b605fa304 gcc/config/i386/djgpp.h *************** eb87f240e280f50a4f7213e4c1693b58 gcc/co *** 3866,3872 **** 7107a1b32e7712e57535cf017a9e3b31 gcc/config/i386/dragonfly.h 66a900eaa0c5b9b9da750d357f64cc44 gcc/config/i386/driver-i386.c 3957794a408aca3d78d50443cdaa5160 gcc/config/i386/driver-mingw32.c ! e72c937e4e357eeb933f8a933c0c725c gcc/config/i386/emmintrin.h 4f000e9cad83855e36be99512cff28a1 gcc/config/i386/enqcmdintrin.h 5dca9fc8ad0373a79d14f2d2627fe342 gcc/config/i386/f16cintrin.h de22fe956565fe70e9f6e91f3a38fc99 gcc/config/i386/fma4intrin.h --- 3870,3876 ---- 7107a1b32e7712e57535cf017a9e3b31 gcc/config/i386/dragonfly.h 66a900eaa0c5b9b9da750d357f64cc44 gcc/config/i386/driver-i386.c 3957794a408aca3d78d50443cdaa5160 gcc/config/i386/driver-mingw32.c ! a58296a3ce52541fa1ec1d97d428a2d7 gcc/config/i386/emmintrin.h 4f000e9cad83855e36be99512cff28a1 gcc/config/i386/enqcmdintrin.h 5dca9fc8ad0373a79d14f2d2627fe342 gcc/config/i386/f16cintrin.h de22fe956565fe70e9f6e91f3a38fc99 gcc/config/i386/fma4intrin.h *************** f63afc859775aca634f9c3038a88a2e8 gcc/co *** 3892,3918 **** dfd31f5b9f3ae6b0f0cfbc91f34b22d3 gcc/config/i386/hresetintrin.h f416d4c1b5f76b0c32dcfa57cbef9de0 gcc/config/i386/i386-builtin-types.awk 4e99fd2d8e886c8fedca887be1ceccad gcc/config/i386/i386-builtin-types.def ! 094549bd33b7a6e8f7a4436ee1c277fb gcc/config/i386/i386-builtin.def ! 09e10002a6dc731605eff1b2b0ab61d9 gcc/config/i386/i386-builtins.c 2eb66258231da97923f18a6fb2fb2526 gcc/config/i386/i386-builtins.h ! b085fb8ef5a9a2c4378570f242a500eb gcc/config/i386/i386-c.c e87e1d322f0b5d6d0862f8b523832d11 gcc/config/i386/i386-d.c ! 34b104d5c0d6cc752b8f88ae97e77bb0 gcc/config/i386/i386-expand.c 68f53a8d27a4bdcd5018b83939e20f6c gcc/config/i386/i386-expand.h dd464cbc7d083f9311116080f270e855 gcc/config/i386/i386-features.c 86c0fda429064123819ee0155f367a5f gcc/config/i386/i386-features.h 04cdac9cb26ba183b03b6f9c7a01b792 gcc/config/i386/i386-modes.def ! 71a37d231fc675a790fdbef99427fb03 gcc/config/i386/i386-options.c fe60119ebc2cc86648e81161137ee957 gcc/config/i386/i386-options.h ! 2eee2fdc557e00fe7ae2b060d3805162 gcc/config/i386/i386-opts.h b52d1366937ad82efd6efd1590e73779 gcc/config/i386/i386-passes.def ! 8e992ffb4886e7c76cbc74f8c32676d5 gcc/config/i386/i386-protos.h ! 339f61a342dfd5be33b0d3ee3dbb5033 gcc/config/i386/i386.c ! 1d2057ad88c288c5d901a0a05b34a38e gcc/config/i386/i386.h ! 26beeebff73780e25472d13b7a481c6a gcc/config/i386/i386.md ! 8d399c6852e8afbacee177e10412b81b gcc/config/i386/i386.opt c10c5e5da62216f81b78dd46673df070 gcc/config/i386/i386elf.h ! 25a5b83a18282cf9a16fb422c7b7aa81 gcc/config/i386/ia32intrin.h fa1c19397f6d7ac84e3a77d2fd9d70bc gcc/config/i386/iamcu.h 3ce8963cf73ccf635fd53ce0930a7da5 gcc/config/i386/immintrin.h c14173e496e1e984d1b647264b8f98ab gcc/config/i386/intelmic-mkoffload.c --- 3896,3922 ---- dfd31f5b9f3ae6b0f0cfbc91f34b22d3 gcc/config/i386/hresetintrin.h f416d4c1b5f76b0c32dcfa57cbef9de0 gcc/config/i386/i386-builtin-types.awk 4e99fd2d8e886c8fedca887be1ceccad gcc/config/i386/i386-builtin-types.def ! 61439f21b1fafa107dda0a49e355123a gcc/config/i386/i386-builtin.def ! 1dc75a552c0d6998bea2786836c26452 gcc/config/i386/i386-builtins.c 2eb66258231da97923f18a6fb2fb2526 gcc/config/i386/i386-builtins.h ! e93ce5f91f999045596fda2304d9776d gcc/config/i386/i386-c.c e87e1d322f0b5d6d0862f8b523832d11 gcc/config/i386/i386-d.c ! e671600d18912b4f01a5d0fceea3d4df gcc/config/i386/i386-expand.c 68f53a8d27a4bdcd5018b83939e20f6c gcc/config/i386/i386-expand.h dd464cbc7d083f9311116080f270e855 gcc/config/i386/i386-features.c 86c0fda429064123819ee0155f367a5f gcc/config/i386/i386-features.h 04cdac9cb26ba183b03b6f9c7a01b792 gcc/config/i386/i386-modes.def ! b14988c53d21c3bf19b5d157a1503564 gcc/config/i386/i386-options.c fe60119ebc2cc86648e81161137ee957 gcc/config/i386/i386-options.h ! 6162f2f6d59de8eec399101815b311fb gcc/config/i386/i386-opts.h b52d1366937ad82efd6efd1590e73779 gcc/config/i386/i386-passes.def ! 1905e9dbeb917e8b2caf32cc98f4b5d3 gcc/config/i386/i386-protos.h ! f9a563f0072fa2e4091c35d5fe3d53c7 gcc/config/i386/i386.c ! efd333c54c81f2840c9dbb82e80e68e2 gcc/config/i386/i386.h ! 1f2ce4d81972398ffabd0e5b5795b5e4 gcc/config/i386/i386.md ! b79dc8d1e7ab48a57991e3149abf23cf gcc/config/i386/i386.opt c10c5e5da62216f81b78dd46673df070 gcc/config/i386/i386elf.h ! e54b0acb11af35cf1d05cfef525dd659 gcc/config/i386/ia32intrin.h fa1c19397f6d7ac84e3a77d2fd9d70bc gcc/config/i386/iamcu.h 3ce8963cf73ccf635fd53ce0930a7da5 gcc/config/i386/immintrin.h c14173e496e1e984d1b647264b8f98ab gcc/config/i386/intelmic-mkoffload.c *************** ed16e42326df5567034dce043d45a719 gcc/co *** 3930,3944 **** 5bd9da959ad79e849d0ded2a10415e66 gcc/config/i386/lzcntintrin.h 2cd35fa3d499c2c1e50055c513822737 gcc/config/i386/mingw-pthread.h c912f02783f7a414328c5eb819720dfc gcc/config/i386/mingw-stdint.h ! 90855d0698622212817d8825b63faa8b gcc/config/i386/mingw-w64.h 4b1f092fa8c0e01719f92b1c69851f1d gcc/config/i386/mingw-w64.opt 3a5730df9219d8ba566f353d1466e6a4 gcc/config/i386/mingw.opt ! 4f99f725b6d79818a588a196c0547503 gcc/config/i386/mingw32.h 8c2a40be98f698117815409db5755e07 gcc/config/i386/mm3dnow.h ebadd8939e5045c483e0067e83f84ea5 gcc/config/i386/mmintrin.h a4907954895f6236cf5afcdba2be40d0 gcc/config/i386/mmx.md 3ead5a3ca4f10d35ec0b1d203eaff264 gcc/config/i386/movdirintrin.h de4344ede8a257d98598f21855100331 gcc/config/i386/msformat-c.c adf3c14908d936944b2ea922606143fb gcc/config/i386/mwaitxintrin.h 0e21d66bda8a66c89768a983be7fe0c6 gcc/config/i386/netbsd-elf.h ad369093e019a0008ffcaa00fc1a9d03 gcc/config/i386/netbsd64.h --- 3934,3949 ---- 5bd9da959ad79e849d0ded2a10415e66 gcc/config/i386/lzcntintrin.h 2cd35fa3d499c2c1e50055c513822737 gcc/config/i386/mingw-pthread.h c912f02783f7a414328c5eb819720dfc gcc/config/i386/mingw-stdint.h ! b38248cde141fc9fed08e9ac46211173 gcc/config/i386/mingw-w64.h 4b1f092fa8c0e01719f92b1c69851f1d gcc/config/i386/mingw-w64.opt 3a5730df9219d8ba566f353d1466e6a4 gcc/config/i386/mingw.opt ! 9de786275129d0f546dcac922a1c671a gcc/config/i386/mingw32.h 8c2a40be98f698117815409db5755e07 gcc/config/i386/mm3dnow.h ebadd8939e5045c483e0067e83f84ea5 gcc/config/i386/mmintrin.h a4907954895f6236cf5afcdba2be40d0 gcc/config/i386/mmx.md 3ead5a3ca4f10d35ec0b1d203eaff264 gcc/config/i386/movdirintrin.h de4344ede8a257d98598f21855100331 gcc/config/i386/msformat-c.c + 1978ffb70e7e93e7a11ef43e7a27396c gcc/config/i386/mwaitintrin.h adf3c14908d936944b2ea922606143fb gcc/config/i386/mwaitxintrin.h 0e21d66bda8a66c89768a983be7fe0c6 gcc/config/i386/netbsd-elf.h ad369093e019a0008ffcaa00fc1a9d03 gcc/config/i386/netbsd64.h *************** ddcb120bd2dd518b9e9ff21da3af9092 gcc/co *** 3950,3976 **** ab0bc4d2292acd69dbbf4d7b6f0c309d gcc/config/i386/pentium.md c44e6c969a56ce15caac8fb01e42f8b6 gcc/config/i386/pkuintrin.h 635647f1ab99ee96dd5ccc07618b2098 gcc/config/i386/pmm_malloc.h ! 4f2f47252d95d07f01d45b0222278acc gcc/config/i386/pmmintrin.h b912f7a44accd114d932f1bd128eb83c gcc/config/i386/popcntintrin.h b753cd41f6fdd8ee8be1c1034d4d3e9e gcc/config/i386/ppro.md ! 0defde032cf7feecbeb11fa4b03c37ed gcc/config/i386/predicates.md 7df26c7af82cf825758be1dddd83d323 gcc/config/i386/prfchwintrin.h 6d07e8e896f2aafcdeabb31c3f68dbac gcc/config/i386/rdos.h f78da15b73fdb639b57920b0a86dd843 gcc/config/i386/rdos64.h 89c221695ee77e529de9345a4857a667 gcc/config/i386/rdseedintrin.h ce08abc4ca53730d8530efa0fc1ac873 gcc/config/i386/rtemself.h e1e11d9cd0e8002dee79ab23d590ed1a gcc/config/i386/rtmintrin.h ! 35dadf1860cbcebf78cf85dfc72f316c gcc/config/i386/serializeintrin.h 76a58cad0f61b44b8fe7d4915dd50d07 gcc/config/i386/sgxintrin.h 738791e034eae8f304812280d786951d gcc/config/i386/shaintrin.h f808dc4b45bc244b7588e4dbe292d158 gcc/config/i386/slm.md aa606ad57b003eaf3855a789cfdbdfda gcc/config/i386/smmintrin.h 86d70f5d5123563facc0d2e2dcfbd9e6 gcc/config/i386/sol2.h ! 39bf36a8ab95e644e4bf0c1adf873c88 gcc/config/i386/sse.md df2791f0495a636b555c9a5f3f9ff153 gcc/config/i386/ssemath.h fdb6c5262186a722ee43fabb890960ae gcc/config/i386/stringop.def fdbc1c329d68559ae10ad05554ed8b15 gcc/config/i386/subst.md ! 40714eeaafaab36d1c2ff83316e51a37 gcc/config/i386/sync.md 523680b87658712da91756e5298ef1b9 gcc/config/i386/sysv4.h 260160f6386fd4a4cfba109571bdc862 gcc/config/i386/t-cygming d5339d6e5a09a02383903f617230e19e gcc/config/i386/t-cygwin-w64 --- 3955,3981 ---- ab0bc4d2292acd69dbbf4d7b6f0c309d gcc/config/i386/pentium.md c44e6c969a56ce15caac8fb01e42f8b6 gcc/config/i386/pkuintrin.h 635647f1ab99ee96dd5ccc07618b2098 gcc/config/i386/pmm_malloc.h ! 92edc254628b377d78d6e9491fdce8aa gcc/config/i386/pmmintrin.h b912f7a44accd114d932f1bd128eb83c gcc/config/i386/popcntintrin.h b753cd41f6fdd8ee8be1c1034d4d3e9e gcc/config/i386/ppro.md ! a57d58241691ba144e0ba6d871a157a4 gcc/config/i386/predicates.md 7df26c7af82cf825758be1dddd83d323 gcc/config/i386/prfchwintrin.h 6d07e8e896f2aafcdeabb31c3f68dbac gcc/config/i386/rdos.h f78da15b73fdb639b57920b0a86dd843 gcc/config/i386/rdos64.h 89c221695ee77e529de9345a4857a667 gcc/config/i386/rdseedintrin.h ce08abc4ca53730d8530efa0fc1ac873 gcc/config/i386/rtemself.h e1e11d9cd0e8002dee79ab23d590ed1a gcc/config/i386/rtmintrin.h ! 62f26943a123c6b6edfd395d46c9f811 gcc/config/i386/serializeintrin.h 76a58cad0f61b44b8fe7d4915dd50d07 gcc/config/i386/sgxintrin.h 738791e034eae8f304812280d786951d gcc/config/i386/shaintrin.h f808dc4b45bc244b7588e4dbe292d158 gcc/config/i386/slm.md aa606ad57b003eaf3855a789cfdbdfda gcc/config/i386/smmintrin.h 86d70f5d5123563facc0d2e2dcfbd9e6 gcc/config/i386/sol2.h ! 3ce3a9d7e8ce3adabd84c82a66ba3692 gcc/config/i386/sse.md df2791f0495a636b555c9a5f3f9ff153 gcc/config/i386/ssemath.h fdb6c5262186a722ee43fabb890960ae gcc/config/i386/stringop.def fdbc1c329d68559ae10ad05554ed8b15 gcc/config/i386/subst.md ! 30b0ee227a655b804805737bb7342b62 gcc/config/i386/sync.md 523680b87658712da91756e5298ef1b9 gcc/config/i386/sysv4.h 260160f6386fd4a4cfba109571bdc862 gcc/config/i386/t-cygming d5339d6e5a09a02383903f617230e19e gcc/config/i386/t-cygwin-w64 *************** eede74031d50d03c3a90ce1056bf311e gcc/co *** 4008,4014 **** 376a221887c2df38da7c2c6dc81fc799 gcc/config/i386/winnt-cxx.c f1dccd3e065a37af0bc94226ffad931e gcc/config/i386/winnt-d.c 0878afa7d753dfbb613ff2eafd75c0bb gcc/config/i386/winnt-stubs.c ! 496679b182c9fab8b06275c3315d45bf gcc/config/i386/winnt.c cadb3f72418ba1b08a78435820016345 gcc/config/i386/wmmintrin.h 627c3e925a142fb6d2a14368fb637f28 gcc/config/i386/x-cygwin bae69273c5e47d61e99558ca73c4fabd gcc/config/i386/x-darwin --- 4013,4019 ---- 376a221887c2df38da7c2c6dc81fc799 gcc/config/i386/winnt-cxx.c f1dccd3e065a37af0bc94226ffad931e gcc/config/i386/winnt-d.c 0878afa7d753dfbb613ff2eafd75c0bb gcc/config/i386/winnt-stubs.c ! 9f66ca6a43e400bd35cc3d7f9f4a82c7 gcc/config/i386/winnt.c cadb3f72418ba1b08a78435820016345 gcc/config/i386/wmmintrin.h 627c3e925a142fb6d2a14368fb637f28 gcc/config/i386/x-cygwin bae69273c5e47d61e99558ca73c4fabd gcc/config/i386/x-darwin *************** e8de4d87d46a089a190cdcfd5ab996cb gcc/co *** 4021,4027 **** 83e27c2de80a1b674196a9f6c758a5a6 gcc/config/i386/x86-tune-sched-core.c 9a5ed19a8a9efd3aa8f780c637126988 gcc/config/i386/x86-tune-sched.c e4c639befde2ed972037502a8c268a95 gcc/config/i386/x86-tune.def ! 428bfd014df969c4371ae2db1254cbc7 gcc/config/i386/x86gprintrin.h 01c872023bcadf9bc3f32938f1290d99 gcc/config/i386/x86intrin.h bedb15dc5d9dc0741fa2f65684e6afc8 gcc/config/i386/xm-cygwin.h 632cea0ba390f635083b2227179602ea gcc/config/i386/xm-djgpp.h --- 4026,4032 ---- 83e27c2de80a1b674196a9f6c758a5a6 gcc/config/i386/x86-tune-sched-core.c 9a5ed19a8a9efd3aa8f780c637126988 gcc/config/i386/x86-tune-sched.c e4c639befde2ed972037502a8c268a95 gcc/config/i386/x86-tune.def ! a37907df7b82725358293d96278edc51 gcc/config/i386/x86gprintrin.h 01c872023bcadf9bc3f32938f1290d99 gcc/config/i386/x86intrin.h bedb15dc5d9dc0741fa2f65684e6afc8 gcc/config/i386/xm-cygwin.h 632cea0ba390f635083b2227179602ea gcc/config/i386/xm-djgpp.h *************** c367c0630f7f023a908b12f4b0bcd43e gcc/co *** 4233,4244 **** af514a1f925002faa534e8e9af7e4c2a gcc/config/mips/mips-fixed.md 6fe9c019b23470a4713ed97e64767ff0 gcc/config/mips/mips-ftypes.def b125f873d072e558225faced30c16710 gcc/config/mips/mips-modes.def ! d2eef2c7d7f371aedf3d94a966d813e3 gcc/config/mips/mips-msa.md 82ce3594b1b612d1465ebdab253281a5 gcc/config/mips/mips-opts.h ! af1ca632aaba0d0a534933782ef7d114 gcc/config/mips/mips-protos.h e972e6ee968c5ceea9564ce75b572eb5 gcc/config/mips/mips-ps-3d.md b47b9237ca1cdd376492147fef2ebceb gcc/config/mips/mips-tables.opt ! a50e341adc97bed7a59783ccb354cc4a gcc/config/mips/mips.c 7dde563fb33bd1ab036762c99d9e484b gcc/config/mips/mips.h cc41f5dfa824b8ebc1999709b81b6ecb gcc/config/mips/mips.md 3bafa6a814101c62b01241da0805afca gcc/config/mips/mips.opt --- 4238,4249 ---- af514a1f925002faa534e8e9af7e4c2a gcc/config/mips/mips-fixed.md 6fe9c019b23470a4713ed97e64767ff0 gcc/config/mips/mips-ftypes.def b125f873d072e558225faced30c16710 gcc/config/mips/mips-modes.def ! 5dde86fd55084be46ad7c49c01a2a1aa gcc/config/mips/mips-msa.md 82ce3594b1b612d1465ebdab253281a5 gcc/config/mips/mips-opts.h ! 1419718ff2e070b1c21d04048b50a805 gcc/config/mips/mips-protos.h e972e6ee968c5ceea9564ce75b572eb5 gcc/config/mips/mips-ps-3d.md b47b9237ca1cdd376492147fef2ebceb gcc/config/mips/mips-tables.opt ! 11732488744371fbb103be5b89157d28 gcc/config/mips/mips.c 7dde563fb33bd1ab036762c99d9e484b gcc/config/mips/mips.h cc41f5dfa824b8ebc1999709b81b6ecb gcc/config/mips/mips.md 3bafa6a814101c62b01241da0805afca gcc/config/mips/mips.opt *************** f58d4380ee68891690f4302989ce00cb gcc/co *** 4434,4440 **** 8b8ba2b5d8f7259e9e496481e0b16ca6 gcc/config/pa/constraints.md 98d71aa95ac7ee507b50b69e9588f53a gcc/config/pa/elf.h 4604d212bda13ead36e4fb031c7c151e gcc/config/pa/pa-64.h ! 1835287d499c5f20bc5971f77d8c59f2 gcc/config/pa/pa-d.c 49adb8849b89392f7c51e3bce0d7e07b gcc/config/pa/pa-hpux.h 14351757ad9891cb21df1be8f0602b45 gcc/config/pa/pa-hpux.opt 0ace1a5e8695491e017227e2317ac23e gcc/config/pa/pa-hpux10.h --- 4439,4445 ---- 8b8ba2b5d8f7259e9e496481e0b16ca6 gcc/config/pa/constraints.md 98d71aa95ac7ee507b50b69e9588f53a gcc/config/pa/elf.h 4604d212bda13ead36e4fb031c7c151e gcc/config/pa/pa-64.h ! 2fa72c163c05995731d570d007fcbc3d gcc/config/pa/pa-d.c 49adb8849b89392f7c51e3bce0d7e07b gcc/config/pa/pa-hpux.h 14351757ad9891cb21df1be8f0602b45 gcc/config/pa/pa-hpux.opt 0ace1a5e8695491e017227e2317ac23e gcc/config/pa/pa-hpux10.h *************** c1cb9c1696900e1a42acec48514f0407 gcc/co *** 4447,4461 **** b0fb9ca642462e6862d1af7601acb142 gcc/config/pa/pa-hpux1131.h 426815cf30b8a89a2704db8859a2aee6 gcc/config/pa/pa-hpux1131.opt 9eabf18ee63c9837aa080baafd4c4a1d gcc/config/pa/pa-linux.h ! f052cae9c5a228802a7d2733d556561d gcc/config/pa/pa-modes.def e20b327d30706926261c1317764ee479 gcc/config/pa/pa-netbsd.h caff43adac59469f64f1c7e4385c27d2 gcc/config/pa/pa-openbsd.h 904b7f071b6b5c7fbcd244403e468d7f gcc/config/pa/pa-opts.h ! 3dcfc38179fe177fc6950b5fcb6b8b03 gcc/config/pa/pa-protos.h ! 56b401f7a0a112b06a0c7adaab935078 gcc/config/pa/pa.c ! 23727f8173330ae59e57f891a5cec95d gcc/config/pa/pa.h ! b9512015ae56de8d929cfdaf89a15296 gcc/config/pa/pa.md ! dc7c62057067f030141ea54a0ee5f7ff gcc/config/pa/pa.opt d414dff3f6a4b50b49f81539036bff88 gcc/config/pa/pa32-linux.h 8e685ad04b0b38e5885bfcc8012cdd92 gcc/config/pa/pa32-netbsd.h dedcc9a6eddd69c21c777bb8aa7e4a57 gcc/config/pa/pa32-openbsd.h --- 4452,4466 ---- b0fb9ca642462e6862d1af7601acb142 gcc/config/pa/pa-hpux1131.h 426815cf30b8a89a2704db8859a2aee6 gcc/config/pa/pa-hpux1131.opt 9eabf18ee63c9837aa080baafd4c4a1d gcc/config/pa/pa-linux.h ! be5a8a129f69b4222d84bf8d4af4181d gcc/config/pa/pa-modes.def e20b327d30706926261c1317764ee479 gcc/config/pa/pa-netbsd.h caff43adac59469f64f1c7e4385c27d2 gcc/config/pa/pa-openbsd.h 904b7f071b6b5c7fbcd244403e468d7f gcc/config/pa/pa-opts.h ! 85dc61345aa9b8f74041dfe95eebf2e7 gcc/config/pa/pa-protos.h ! 0d77b7513676faac2b9365e1786e465c gcc/config/pa/pa.c ! c3f6aadadbf72faef69e3a2422b6e223 gcc/config/pa/pa.h ! 58b599c016970fec733bd266261ba0fd gcc/config/pa/pa.md ! 570c43b9b6987181b5756267f6cf7973 gcc/config/pa/pa.opt d414dff3f6a4b50b49f81539036bff88 gcc/config/pa/pa32-linux.h 8e685ad04b0b38e5885bfcc8012cdd92 gcc/config/pa/pa32-netbsd.h dedcc9a6eddd69c21c777bb8aa7e4a57 gcc/config/pa/pa32-openbsd.h *************** a7fdc306986a7202a2f2b209faf8f5ea gcc/co *** 4493,4505 **** 06d17121b1ca155cfd8a17344a5d3f8d gcc/config/pru/pru.md 3b98988e55ce8cf649751cd3d3bf38cd gcc/config/pru/pru.opt 10430f6518a3627421b6e41146222090 gcc/config/pru/t-pru ! 6640cd20ab489aefe5a211afafcd3692 gcc/config/riscv/arch-canonicalize 1b1e5fb14202743e68ddd48543aca24e gcc/config/riscv/constraints.md ef0028af881cf895e537c21cc4643fb8 gcc/config/riscv/elf.h de2fc9c3ace4fd5d8f5573b8bd906069 gcc/config/riscv/freebsd.h 69166b0924d5c3c2d1f7e72fa40247ae gcc/config/riscv/generic.md 1950ffa0536a23ea56ed8e99b993615e gcc/config/riscv/linux.h ! 8840f86fc173ca5b9a1f9bf8f22ed9d1 gcc/config/riscv/multilib-generator 4e629508d2e1b7aaba28f7173c7b07bb gcc/config/riscv/peephole.md 82fdb0fb5f4287f1bf506404d0ad0c41 gcc/config/riscv/pic.md 7e2a43545d38d2540fdd13ed3e22adbe gcc/config/riscv/predicates.md --- 4498,4510 ---- 06d17121b1ca155cfd8a17344a5d3f8d gcc/config/pru/pru.md 3b98988e55ce8cf649751cd3d3bf38cd gcc/config/pru/pru.opt 10430f6518a3627421b6e41146222090 gcc/config/pru/t-pru ! 724bf92da89c5b91ba44623b319a2d4e gcc/config/riscv/arch-canonicalize 1b1e5fb14202743e68ddd48543aca24e gcc/config/riscv/constraints.md ef0028af881cf895e537c21cc4643fb8 gcc/config/riscv/elf.h de2fc9c3ace4fd5d8f5573b8bd906069 gcc/config/riscv/freebsd.h 69166b0924d5c3c2d1f7e72fa40247ae gcc/config/riscv/generic.md 1950ffa0536a23ea56ed8e99b993615e gcc/config/riscv/linux.h ! 6554854b1f1d1cbdc90542ab85a1a6ad gcc/config/riscv/multilib-generator 4e629508d2e1b7aaba28f7173c7b07bb gcc/config/riscv/peephole.md 82fdb0fb5f4287f1bf506404d0ad0c41 gcc/config/riscv/pic.md 7e2a43545d38d2540fdd13ed3e22adbe gcc/config/riscv/predicates.md *************** f246e78b2654ab5d1fd33ede72f31d05 gcc/co *** 4515,4522 **** 5a056ac88b21a92249c97026dd86fb63 gcc/config/riscv/riscv-shorten-memrefs.c f60d94e10e9a0c6a4ddae1f3aae0bbc4 gcc/config/riscv/riscv-sr.c fe56b04e91c00c9e49f48d845571ab3b gcc/config/riscv/riscv-subset.h ! 36e0c095928721ac732e6cf8038d244d gcc/config/riscv/riscv.c ! 655fe146c062173f7f3977838ab24522 gcc/config/riscv/riscv.h 669de2f404329e0417902902f3dfab46 gcc/config/riscv/riscv.md eaec766078425731f12d482d8e7a7f03 gcc/config/riscv/riscv.opt 0a71dd013f158a4aa8183a3df7bfead1 gcc/config/riscv/rtems.h --- 4520,4527 ---- 5a056ac88b21a92249c97026dd86fb63 gcc/config/riscv/riscv-shorten-memrefs.c f60d94e10e9a0c6a4ddae1f3aae0bbc4 gcc/config/riscv/riscv-sr.c fe56b04e91c00c9e49f48d845571ab3b gcc/config/riscv/riscv-subset.h ! 100c0a3c8832058427f3f3ead05a0e99 gcc/config/riscv/riscv.c ! 3fae617bcb3cc8d28a0150ce3dd2831d gcc/config/riscv/riscv.h 669de2f404329e0417902902f3dfab46 gcc/config/riscv/riscv.md eaec766078425731f12d482d8e7a7f03 gcc/config/riscv/riscv.opt 0a71dd013f158a4aa8183a3df7bfead1 gcc/config/riscv/rtems.h *************** eaec766078425731f12d482d8e7a7f03 gcc/co *** 4525,4531 **** 1c27821991689abdaa7a908a0cc8dfa4 gcc/config/riscv/t-elf-multilib d8ae7bee35ef1ecd77143535da9aae78 gcc/config/riscv/t-linux 1ed181a166b1d0e206c4a4e0024cce2a gcc/config/riscv/t-linux-multilib ! 99085f9c31ac8fb14f276d774e1f8e72 gcc/config/riscv/t-riscv 7dbd61c5a07b1adefe5429a41008fda5 gcc/config/riscv/t-rtems 97a182737ed075d29be4ab1e848de420 gcc/config/riscv/t-withmultilib 0478f4e79601d91fb8ad8f210b304a7b gcc/config/riscv/t-withmultilib-generator --- 4530,4536 ---- 1c27821991689abdaa7a908a0cc8dfa4 gcc/config/riscv/t-elf-multilib d8ae7bee35ef1ecd77143535da9aae78 gcc/config/riscv/t-linux 1ed181a166b1d0e206c4a4e0024cce2a gcc/config/riscv/t-linux-multilib ! b289440a78dd64e8c68b767f483a39bc gcc/config/riscv/t-riscv 7dbd61c5a07b1adefe5429a41008fda5 gcc/config/riscv/t-rtems 97a182737ed075d29be4ab1e848de420 gcc/config/riscv/t-withmultilib 0478f4e79601d91fb8ad8f210b304a7b gcc/config/riscv/t-withmultilib-generator *************** bee6a7628f0cee352ae751f13fd603f3 gcc/co *** 4561,4568 **** ff3f6b224d4ef9f550a96131d45e0003 gcc/config/rs6000/aix64.opt d0cdfe5862d3c4d23b88f181a823e824 gcc/config/rs6000/aix71.h cc7b2251556991a7fa60f7bf6b8f4fb8 gcc/config/rs6000/aix72.h ! 04e09223433e9ab574d9f5dd098aed15 gcc/config/rs6000/altivec.h ! 6516618a378a4f2f81747852ccdb6a69 gcc/config/rs6000/altivec.md 0c189a8215a637236016075d7153c0dd gcc/config/rs6000/amo.h 8c3585d22f96b860147fbb93ebbbf06f gcc/config/rs6000/biarch64.h c82bb588a1f3b6715f005e723b02aaf9 gcc/config/rs6000/bmi2intrin.h --- 4566,4573 ---- ff3f6b224d4ef9f550a96131d45e0003 gcc/config/rs6000/aix64.opt d0cdfe5862d3c4d23b88f181a823e824 gcc/config/rs6000/aix71.h cc7b2251556991a7fa60f7bf6b8f4fb8 gcc/config/rs6000/aix72.h ! 6cf9077f7280ae45fdb83156bcbed199 gcc/config/rs6000/altivec.h ! 65b676e981a532defde7fdd5e321ffe1 gcc/config/rs6000/altivec.md 0c189a8215a637236016075d7153c0dd gcc/config/rs6000/amo.h 8c3585d22f96b860147fbb93ebbbf06f gcc/config/rs6000/biarch64.h c82bb588a1f3b6715f005e723b02aaf9 gcc/config/rs6000/bmi2intrin.h *************** f60f0b041683bd09fde61d526b77a06b gcc/co *** 4570,4584 **** fea022102d4856327a0e7478d476825d gcc/config/rs6000/cell.md 39f59e5bae022fcbbef313410d10672c gcc/config/rs6000/constraints.md 87701804dfcbf3943f2ef24c36f6b98a gcc/config/rs6000/crypto.md ! 6a0f87914108e296ad7d6c8c7fb4aef6 gcc/config/rs6000/darwin.h ! dc42f2136f2aebd9918fbf719166f4b2 gcc/config/rs6000/darwin.md d7cfb8e861e9ce70e75110e0717d4d48 gcc/config/rs6000/darwin.opt ca74b9e31768f3d073078ccbbf6db3b4 gcc/config/rs6000/darwin32-biarch.h 9a9eabe5fde024a9e8fb7da1f3065798 gcc/config/rs6000/darwin64-biarch.h 15d4fb2ad496a66a85102eac5202047a gcc/config/rs6000/darwin7.h 402972fd0d7c627a52416797c9cec3b4 gcc/config/rs6000/default64.h f4504f65de85f5d392697641ff462105 gcc/config/rs6000/dfp.md ! cb22a6d4f5872cde08f9b1d8cdbc43a9 gcc/config/rs6000/driver-rs6000.c 8f83d7c9e905cf53e85e17effff65e94 gcc/config/rs6000/e300c2c3.md e48e30df023432a0999f7219dd167766 gcc/config/rs6000/e500mc.md 15078c51a9c9340e7d7e492a0acb0d30 gcc/config/rs6000/e500mc64.md --- 4575,4589 ---- fea022102d4856327a0e7478d476825d gcc/config/rs6000/cell.md 39f59e5bae022fcbbef313410d10672c gcc/config/rs6000/constraints.md 87701804dfcbf3943f2ef24c36f6b98a gcc/config/rs6000/crypto.md ! 453ee06270ccdf4c0b6c5246ca394266 gcc/config/rs6000/darwin.h ! dd4bb9179101766c68130ca8a0c0394e gcc/config/rs6000/darwin.md d7cfb8e861e9ce70e75110e0717d4d48 gcc/config/rs6000/darwin.opt ca74b9e31768f3d073078ccbbf6db3b4 gcc/config/rs6000/darwin32-biarch.h 9a9eabe5fde024a9e8fb7da1f3065798 gcc/config/rs6000/darwin64-biarch.h 15d4fb2ad496a66a85102eac5202047a gcc/config/rs6000/darwin7.h 402972fd0d7c627a52416797c9cec3b4 gcc/config/rs6000/default64.h f4504f65de85f5d392697641ff462105 gcc/config/rs6000/dfp.md ! 5de21bde48b538036daa368e312e52be gcc/config/rs6000/driver-rs6000.c 8f83d7c9e905cf53e85e17effff65e94 gcc/config/rs6000/e300c2c3.md e48e30df023432a0999f7219dd167766 gcc/config/rs6000/e500mc.md 15078c51a9c9340e7d7e492a0acb0d30 gcc/config/rs6000/e500mc64.md *************** b106f3dd78c027be0e6fa9e040d3d7d1 gcc/co *** 4590,4597 **** bd291b65ad28211370bde89d9e88c7ae gcc/config/rs6000/emmintrin.h fbeee1c894dc51358ee6abecca818f38 gcc/config/rs6000/freebsd.h c815c61d1f8556dee28776379d38f97f gcc/config/rs6000/freebsd64.h ! 6e7d3ee00f037f42563acb8e5859581a gcc/config/rs6000/fusion.md ! 1a3fb84ad63c76605dc7383884c1646c gcc/config/rs6000/genfusion.pl c466bda58b985814fa22f4d4bc0a464a gcc/config/rs6000/genopt.sh 96ef7ba4b98df3c89168a75c71690601 gcc/config/rs6000/host-darwin.c 775ea72fb46676e26f93f160be6cc291 gcc/config/rs6000/host-ppc64-darwin.c --- 4595,4602 ---- bd291b65ad28211370bde89d9e88c7ae gcc/config/rs6000/emmintrin.h fbeee1c894dc51358ee6abecca818f38 gcc/config/rs6000/freebsd.h c815c61d1f8556dee28776379d38f97f gcc/config/rs6000/freebsd64.h ! b4f8e33b4342aea64cc25b24e2b5ce17 gcc/config/rs6000/fusion.md ! f57795fd3975e6a45558b5b8dd430631 gcc/config/rs6000/genfusion.pl c466bda58b985814fa22f4d4bc0a464a gcc/config/rs6000/genopt.sh 96ef7ba4b98df3c89168a75c71690601 gcc/config/rs6000/host-darwin.c 775ea72fb46676e26f93f160be6cc291 gcc/config/rs6000/host-ppc64-darwin.c *************** eb5963a9afac325222a3cf411425b69b gcc/co *** 4605,4611 **** b3d3483f2acc61db4751725d0556e646 gcc/config/rs6000/lynx.h 0cc3c5f9101501b8253ce3176c3ffce4 gcc/config/rs6000/milli.exp 7151c90fd6e11f55cab19007cca511bc gcc/config/rs6000/mm_malloc.h ! 3346b3beff747f20752bff067e555451 gcc/config/rs6000/mma.md c40f50dc03075bb41a64373adb30112d gcc/config/rs6000/mmintrin.h 7da8551ea5a0e205407dfa782c773ce4 gcc/config/rs6000/mpc.md 5bca07190d45ef2ade8d1a237c5ac20b gcc/config/rs6000/netbsd.h --- 4610,4616 ---- b3d3483f2acc61db4751725d0556e646 gcc/config/rs6000/lynx.h 0cc3c5f9101501b8253ce3176c3ffce4 gcc/config/rs6000/milli.exp 7151c90fd6e11f55cab19007cca511bc gcc/config/rs6000/mm_malloc.h ! d3dde08c758b098e296736f30b64afac gcc/config/rs6000/mma.md c40f50dc03075bb41a64373adb30112d gcc/config/rs6000/mmintrin.h 7da8551ea5a0e205407dfa782c773ce4 gcc/config/rs6000/mpc.md 5bca07190d45ef2ade8d1a237c5ac20b gcc/config/rs6000/netbsd.h *************** de0878750a3c4d20a063d22571380621 gcc/co *** 4622,4636 **** bb48fecf965ae77e0dd88aae5488f291 gcc/config/rs6000/ppc-asm.h 751ccf6be4b01d18f226acef853ef444 gcc/config/rs6000/ppc-auxv.h bfe475364cf3901b029f758b9ccfd8b8 gcc/config/rs6000/ppu_intrinsics.h ! a04ba28c90ef01589f85be84316d22ae gcc/config/rs6000/predicates.md 90d62e46a8384f3f606d9cacbd7fcf20 gcc/config/rs6000/rs6000-builtin.def 600d0487670d447fdf8b9c3e58e76c9a gcc/config/rs6000/rs6000-c.c ! 052eaef5451999b6377e8185c6d9798c gcc/config/rs6000/rs6000-call.c ! 29879c1a1520f921a953c4d071056f62 gcc/config/rs6000/rs6000-cpus.def 7c18f5387ecc6581faacf61631fecb37 gcc/config/rs6000/rs6000-d.c ! deb11a78a36b8fc309d4c02643f148a8 gcc/config/rs6000/rs6000-internal.h bdb01381a7509193220dbd43b881802b gcc/config/rs6000/rs6000-linux.c ! 0c6158ff1c258334189b6dc72a21677a gcc/config/rs6000/rs6000-logue.c 8d3fa7c26d80c9ee359e3991e289666e gcc/config/rs6000/rs6000-modes.def e65509760cf40241ff24df3a715c4f43 gcc/config/rs6000/rs6000-modes.h b7cac3afa5fb8f71d3b8ea1a0cd5c7ce gcc/config/rs6000/rs6000-opts.h --- 4627,4641 ---- bb48fecf965ae77e0dd88aae5488f291 gcc/config/rs6000/ppc-asm.h 751ccf6be4b01d18f226acef853ef444 gcc/config/rs6000/ppc-auxv.h bfe475364cf3901b029f758b9ccfd8b8 gcc/config/rs6000/ppu_intrinsics.h ! e03ab0dade27c849af56b6b99de13cd4 gcc/config/rs6000/predicates.md 90d62e46a8384f3f606d9cacbd7fcf20 gcc/config/rs6000/rs6000-builtin.def 600d0487670d447fdf8b9c3e58e76c9a gcc/config/rs6000/rs6000-c.c ! 92110d3957e94da0c004e1a0ebf2d849 gcc/config/rs6000/rs6000-call.c ! 928f5d55248167067486388e4cc0a56e gcc/config/rs6000/rs6000-cpus.def 7c18f5387ecc6581faacf61631fecb37 gcc/config/rs6000/rs6000-d.c ! 2d982a648287d8b1211d52b4f1335bb6 gcc/config/rs6000/rs6000-internal.h bdb01381a7509193220dbd43b881802b gcc/config/rs6000/rs6000-linux.c ! d7eb270fa829edb1e107dc421d30800a gcc/config/rs6000/rs6000-logue.c 8d3fa7c26d80c9ee359e3991e289666e gcc/config/rs6000/rs6000-modes.def e65509760cf40241ff24df3a715c4f43 gcc/config/rs6000/rs6000-modes.h b7cac3afa5fb8f71d3b8ea1a0cd5c7ce gcc/config/rs6000/rs6000-opts.h *************** b7cac3afa5fb8f71d3b8ea1a0cd5c7ce gcc/co *** 4640,4649 **** 39fa09a60604eae142447fcf0f829606 gcc/config/rs6000/rs6000-protos.h 8cfc3e1c712d5e4cef1250c605cdca98 gcc/config/rs6000/rs6000-string.c 7a14e24f9ddae251943bacda6071c833 gcc/config/rs6000/rs6000-tables.opt ! 8a668def5305a6df93d7f5ea5276e115 gcc/config/rs6000/rs6000.c ! 483840934d92215c8dd373d168ccfa4a gcc/config/rs6000/rs6000.h ! e917a603878da95c1bf65afdc0c83964 gcc/config/rs6000/rs6000.md ! 90d3f90e4f126807f2b36c8507acb91b gcc/config/rs6000/rs6000.opt c7f02424d98bd46c451c6c03893132ba gcc/config/rs6000/rs64.md 49c33d9ae6a5142ba9a3e0c617c6cdc2 gcc/config/rs6000/rtems.h b13403d0a3113444b4d47950f5cba69e gcc/config/rs6000/secureplt.h --- 4645,4654 ---- 39fa09a60604eae142447fcf0f829606 gcc/config/rs6000/rs6000-protos.h 8cfc3e1c712d5e4cef1250c605cdca98 gcc/config/rs6000/rs6000-string.c 7a14e24f9ddae251943bacda6071c833 gcc/config/rs6000/rs6000-tables.opt ! 6f928343f299cc0a238e78460e5d8611 gcc/config/rs6000/rs6000.c ! 703c5b2480408d2cecd0ae48da054aad gcc/config/rs6000/rs6000.h ! 93f46761638f204b23488e30666a914a gcc/config/rs6000/rs6000.md ! f5bccc13629fee1e5e80d2c56373e1ab gcc/config/rs6000/rs6000.opt c7f02424d98bd46c451c6c03893132ba gcc/config/rs6000/rs64.md 49c33d9ae6a5142ba9a3e0c617c6cdc2 gcc/config/rs6000/rtems.h b13403d0a3113444b4d47950f5cba69e gcc/config/rs6000/secureplt.h *************** f11925c88524d2fd457bf77944da1302 gcc/co *** 4679,4687 **** cc0cc82e1a5c2e41b283b3b890368e20 gcc/config/rs6000/titan.md e7d9802113af7f106be83e0d60f10bac gcc/config/rs6000/tmmintrin.h 5d59b8706cb4357b0b55b2b15c113f77 gcc/config/rs6000/vec_types.h ! 5008679be0acc78f2c04b92887836553 gcc/config/rs6000/vector.md 6ca279ba044eebd7d0a7d39898b605af gcc/config/rs6000/vsx.md ! 03af911a40d435aa33855b53091e91d7 gcc/config/rs6000/vxworks.h 8d88ff930fb293ccc19693f4198f0ffb gcc/config/rs6000/vxworksae.h 7dc95d3194372c5c0ac2e9b886d11097 gcc/config/rs6000/vxworksmils.h 44a93bbae0ad5aba424ba7b97cc6914d gcc/config/rs6000/x-aix --- 4684,4692 ---- cc0cc82e1a5c2e41b283b3b890368e20 gcc/config/rs6000/titan.md e7d9802113af7f106be83e0d60f10bac gcc/config/rs6000/tmmintrin.h 5d59b8706cb4357b0b55b2b15c113f77 gcc/config/rs6000/vec_types.h ! 3583e31aec012fcc7fb04420d37fb7b3 gcc/config/rs6000/vector.md 6ca279ba044eebd7d0a7d39898b605af gcc/config/rs6000/vsx.md ! f36a85a18aa0b7d63a88bb6c96ef28be gcc/config/rs6000/vxworks.h 8d88ff930fb293ccc19693f4198f0ffb gcc/config/rs6000/vxworksae.h 7dc95d3194372c5c0ac2e9b886d11097 gcc/config/rs6000/vxworksmils.h 44a93bbae0ad5aba424ba7b97cc6914d gcc/config/rs6000/x-aix *************** d2904d916d43fdc0310a752ed2a2c59f gcc/co *** 4716,4746 **** a971b3640a3d7b88d20ef0e92abf9324 gcc/config/s390/3906.md 9ebd4b5a83e1dfe318e9604fd342595b gcc/config/s390/8561.md 5a8e22ff23d87a558b94acca3b8754dd gcc/config/s390/constraints.md ! 593084f0122028311d8c27758822047c gcc/config/s390/driver-native.c eea54eb2d5be394c5e1deb85a2ce7d0d gcc/config/s390/htmintrin.h 1e94fd3732594eed7cb7c9cdd952d01d gcc/config/s390/htmxlintrin.h c9b817d15324f399218870b825623350 gcc/config/s390/linux.h ! 009310c293c086a04da4a36754fe4310 gcc/config/s390/predicates.md 450293c45cad155e0914e838978eeece gcc/config/s390/s390-builtin-types.def cd2a28a13096345b3d35041e8e4ae052 gcc/config/s390/s390-builtins.def 5eeac8eed4d5e326eaacd304a583c792 gcc/config/s390/s390-builtins.h ! 2e5a6e6316abc8b914e823218d33f1e2 gcc/config/s390/s390-c.c b8518a69c0543b0ab9a0194ccd0628c8 gcc/config/s390/s390-d.c 5b41350b22c1a027f0d29006df753cce gcc/config/s390/s390-modes.def ! 71d30cf642c8424d2074ee64e2df28fc gcc/config/s390/s390-opts.h 0cda88116bff0a5ea22724e0f749d0ea gcc/config/s390/s390-passes.def 82c0fbbcc31f177afdb9a9feec3bb485 gcc/config/s390/s390-protos.h ! 04736ea8e43e87b105e2f7b30d349f21 gcc/config/s390/s390.c ! 601754c49344531d1181e98cc26a2007 gcc/config/s390/s390.h ! f3d1623a2a959abb2186519805ff0e0b gcc/config/s390/s390.md ! 78a3ffef1c30d585c4ac165a02312e96 gcc/config/s390/s390.opt 4d1a750cc61210e4e7dacc3b05c202cb gcc/config/s390/s390intrin.h 33f73e7880d2cc346d18611e3062cb5c gcc/config/s390/s390x.h c7d66ac4bbcf504879ad210e2f9085d7 gcc/config/s390/subst.md 551847ee4c38fa1a7e95fd93cdb32f17 gcc/config/s390/t-linux64 2cfed5b3e9a6940f6f0c461e41d32dc2 gcc/config/s390/t-s390 53fb8a01a9af1fefe380f46897e0eb3b gcc/config/s390/tpf.h ! 57706f67f812a74c2275e9a1f34602c6 gcc/config/s390/tpf.md 7d6bd68ca86c3340136814011885df72 gcc/config/s390/tpf.opt feca096829a3542c6569d7395249dd54 gcc/config/s390/vecintrin.h abcbf2f33d12c6a37f4a1bb9b7a88595 gcc/config/s390/vector.md --- 4721,4751 ---- a971b3640a3d7b88d20ef0e92abf9324 gcc/config/s390/3906.md 9ebd4b5a83e1dfe318e9604fd342595b gcc/config/s390/8561.md 5a8e22ff23d87a558b94acca3b8754dd gcc/config/s390/constraints.md ! d7003f813f34d4d29acabeb362ea9ec7 gcc/config/s390/driver-native.c eea54eb2d5be394c5e1deb85a2ce7d0d gcc/config/s390/htmintrin.h 1e94fd3732594eed7cb7c9cdd952d01d gcc/config/s390/htmxlintrin.h c9b817d15324f399218870b825623350 gcc/config/s390/linux.h ! bc3eb05d9948013cf5d98708eec135d4 gcc/config/s390/predicates.md 450293c45cad155e0914e838978eeece gcc/config/s390/s390-builtin-types.def cd2a28a13096345b3d35041e8e4ae052 gcc/config/s390/s390-builtins.def 5eeac8eed4d5e326eaacd304a583c792 gcc/config/s390/s390-builtins.h ! ba17382ec005210043b92a6daf5d0204 gcc/config/s390/s390-c.c b8518a69c0543b0ab9a0194ccd0628c8 gcc/config/s390/s390-d.c 5b41350b22c1a027f0d29006df753cce gcc/config/s390/s390-modes.def ! 0a593ac49e545a9bf5dad3b9d13ffead gcc/config/s390/s390-opts.h 0cda88116bff0a5ea22724e0f749d0ea gcc/config/s390/s390-passes.def 82c0fbbcc31f177afdb9a9feec3bb485 gcc/config/s390/s390-protos.h ! 83684bdbbd2861d3047dc9d88135e070 gcc/config/s390/s390.c ! 12b0051b843bc27c918bc7a7c0621ee1 gcc/config/s390/s390.h ! b2b097d0d62128852bfcb39d7e0a8e9a gcc/config/s390/s390.md ! c1758c2e438e31db9a49f289e3d30ad1 gcc/config/s390/s390.opt 4d1a750cc61210e4e7dacc3b05c202cb gcc/config/s390/s390intrin.h 33f73e7880d2cc346d18611e3062cb5c gcc/config/s390/s390x.h c7d66ac4bbcf504879ad210e2f9085d7 gcc/config/s390/subst.md 551847ee4c38fa1a7e95fd93cdb32f17 gcc/config/s390/t-linux64 2cfed5b3e9a6940f6f0c461e41d32dc2 gcc/config/s390/t-s390 53fb8a01a9af1fefe380f46897e0eb3b gcc/config/s390/tpf.h ! 33117991a5581854d87f4c6ff4129e70 gcc/config/s390/tpf.md 7d6bd68ca86c3340136814011885df72 gcc/config/s390/tpf.opt feca096829a3542c6569d7395249dd54 gcc/config/s390/vecintrin.h abcbf2f33d12c6a37f4a1bb9b7a88595 gcc/config/s390/vector.md *************** dba7e2b89d25850ed88d3df9d908b04a gcc/co *** 4801,4806 **** --- 4806,4812 ---- 4d5da08e210ff4ae14b018ef0fdcaa12 gcc/config/sparc/freebsd.h cbcc569238f4519e913cec1cadefdc46 gcc/config/sparc/hypersparc.md caff42ee3fbdf9d4c0c898b6015d5c51 gcc/config/sparc/leon.md + 9d495003ccd8d4728e02705a8fafe134 gcc/config/sparc/leon5.md fe7084bb31e8913acc97482b438b948f gcc/config/sparc/linux.h 77c7e2f056cc6443b0a03cd2d5598258 gcc/config/sparc/linux64.h 056c173c33c18bd79ddc6d6442218676 gcc/config/sparc/long-double-switch.opt *************** bd373e4c36d4f36006262f8ad76ea34d gcc/co *** 4819,4832 **** 7f3272d43031813a458f09aea259ac77 gcc/config/sparc/sp64-elf.h a2c001107d11d64a6867b5ad3cf7b5b7 gcc/config/sparc/sparc-c.c 54653da5737fd74bb8b80866d7cf2017 gcc/config/sparc/sparc-d.c ! f41fda97335f7a023ecd43436e246ca6 gcc/config/sparc/sparc-modes.def ! b23d1fca28e4b9ff46c0ae43780f1e49 gcc/config/sparc/sparc-opts.h d133793a37112a304bbee95d6391bde1 gcc/config/sparc/sparc-passes.def 9da368e6d99a08be41e8a2859745f7d6 gcc/config/sparc/sparc-protos.h ! 0622ebefda6352e6b33d6207887ca5b8 gcc/config/sparc/sparc.c ! e8f1684102f06e96754e89e697c7a040 gcc/config/sparc/sparc.h ! ddaa24ea4ac0d4d43fc086f64dca957d gcc/config/sparc/sparc.md ! 62c5420a5eab896a62add46521e02815 gcc/config/sparc/sparc.opt b62168c8d25717e777239fb6d2c2bdf7 gcc/config/sparc/sparclet.md c87db0e52fe6f1b5721136e265bd705a gcc/config/sparc/supersparc.md 9fd1101df0273cd72c851f5a92189d8e gcc/config/sparc/sync.md --- 4825,4838 ---- 7f3272d43031813a458f09aea259ac77 gcc/config/sparc/sp64-elf.h a2c001107d11d64a6867b5ad3cf7b5b7 gcc/config/sparc/sparc-c.c 54653da5737fd74bb8b80866d7cf2017 gcc/config/sparc/sparc-d.c ! 795f2c35a8c53db6f25f4a5de7e263b8 gcc/config/sparc/sparc-modes.def ! fcb95746dc487d8860421e2c23676851 gcc/config/sparc/sparc-opts.h d133793a37112a304bbee95d6391bde1 gcc/config/sparc/sparc-passes.def 9da368e6d99a08be41e8a2859745f7d6 gcc/config/sparc/sparc-protos.h ! 33b19a596c65372140a78e376b3d6d02 gcc/config/sparc/sparc.c ! 76e709251a5150bf023bbfe87bd6697e gcc/config/sparc/sparc.h ! 7ad0daaa5ca1d1686bb621079ea25b7a gcc/config/sparc/sparc.md ! 64c3cef9b0736ca1716488a3adc1bce2 gcc/config/sparc/sparc.opt b62168c8d25717e777239fb6d2c2bdf7 gcc/config/sparc/sparclet.md c87db0e52fe6f1b5721136e265bd705a gcc/config/sparc/supersparc.md 9fd1101df0273cd72c851f5a92189d8e gcc/config/sparc/sync.md *************** ae2820ac7d43cf59e93f97657bc44c4d gcc/co *** 4970,4981 **** 828a857c6b0f3a23869e1adaeb53f3df gcc/config/vms/vms.opt d169abb7e439c5dc86b832320f47569f gcc/config/vms/x-vms 19d889677a4e78220b438c10136349ea gcc/config/vms/xm-vms.h ! dee67ec53a46a62887841142c72bb876 gcc/config/vx-common.h ee2d7624a1cf8a055beab64a9f01a8d9 gcc/config/vxworks-c.c 35ab1cb7e1a5fc52ce8d72b668a912d4 gcc/config/vxworks-dummy.h 3fa5a61490392704bd52ce26bba3a1ac gcc/config/vxworks-stdint.h 5ee1854216d708e655c076effc3235b8 gcc/config/vxworks.c ! 56aa96f581f4396a46ec78b5bce42346 gcc/config/vxworks.h 93a6417ac698f4a1b486f240a11d75b8 gcc/config/vxworks.opt d55d2805d12ce9917cb284aac8570878 gcc/config/vxworks/_vxworks-versions.h 2c7fb7482d87758a9305ce4fec4c94ea gcc/config/vxworks/_yvals-wrapper.h --- 4976,4987 ---- 828a857c6b0f3a23869e1adaeb53f3df gcc/config/vms/vms.opt d169abb7e439c5dc86b832320f47569f gcc/config/vms/x-vms 19d889677a4e78220b438c10136349ea gcc/config/vms/xm-vms.h ! a840dd8b538edf98d2ac04d7b66594af gcc/config/vx-common.h ee2d7624a1cf8a055beab64a9f01a8d9 gcc/config/vxworks-c.c 35ab1cb7e1a5fc52ce8d72b668a912d4 gcc/config/vxworks-dummy.h 3fa5a61490392704bd52ce26bba3a1ac gcc/config/vxworks-stdint.h 5ee1854216d708e655c076effc3235b8 gcc/config/vxworks.c ! 79a33886fff43b068a90b2c97d5dc5f7 gcc/config/vxworks.h 93a6417ac698f4a1b486f240a11d75b8 gcc/config/vxworks.opt d55d2805d12ce9917cb284aac8570878 gcc/config/vxworks/_vxworks-versions.h 2c7fb7482d87758a9305ce4fec4c94ea gcc/config/vxworks/_yvals-wrapper.h *************** bf27ee51add23d218ca627b3d40fda5d gcc/co *** 5004,5025 **** 1bcf98a33e1bda802125575257a30784 gcc/config/xtensa/uclinux.h 9f2e36203965b3914925884725920df2 gcc/config/xtensa/uclinux.opt 84c554b196894a50ca18c5fd8a6edf20 gcc/config/xtensa/xtensa-protos.h ! 60d5fac2ea03746ae1e18a5e2b80e5d2 gcc/config/xtensa/xtensa.c 06bc01a7ccf9f8e76a200854e3483443 gcc/config/xtensa/xtensa.h 6c6d0b85211762c11d2e72a6182bb110 gcc/config/xtensa/xtensa.md f5b73b7b0901f94c273f343137c0a387 gcc/config/xtensa/xtensa.opt ! 5d1b43078d0c2ed64e2b6d4ae291a51d gcc/configure ! d03f38e6a1b439c4cb3712906f0b9dbf gcc/configure.ac 27d42bf7c74759dfd549975615fc5068 gcc/context.c 16c3aa3c912f686f2a31e9390d85475c gcc/context.h f4ce7d4c40b8bd5fdb65296621e3c102 gcc/convert.c 70fc96b69d15408e8fdd3f28979c7efe gcc/convert.h ! 92835f17ff8a4bbd6044d57005ebfbe2 gcc/coretypes.h 165e8c92386e4de91399049eaf43a842 gcc/coroutine-builtins.def b92bf93ad5a628ce259b9055426c0cd4 gcc/coroutine-passes.cc ! cbbbaadcc62e9dd87c5fc82593b79b9f gcc/coverage.c 040e51182a2000cd08580cee4c8591c6 gcc/coverage.h ! 9c0bfa112ba0385f0e56afdbf5d9b6d3 gcc/cp/ChangeLog d271e3663538ba1f3281cab3838e92cd gcc/cp/ChangeLog-1993 f5a44adbc05521162350ca409d1d95ce gcc/cp/ChangeLog-1994 ac55db48d964cb5469ff03c1cd3ee04d gcc/cp/ChangeLog-1995 --- 5010,5031 ---- 1bcf98a33e1bda802125575257a30784 gcc/config/xtensa/uclinux.h 9f2e36203965b3914925884725920df2 gcc/config/xtensa/uclinux.opt 84c554b196894a50ca18c5fd8a6edf20 gcc/config/xtensa/xtensa-protos.h ! 648a531dd6883762e216cc9bea2507d0 gcc/config/xtensa/xtensa.c 06bc01a7ccf9f8e76a200854e3483443 gcc/config/xtensa/xtensa.h 6c6d0b85211762c11d2e72a6182bb110 gcc/config/xtensa/xtensa.md f5b73b7b0901f94c273f343137c0a387 gcc/config/xtensa/xtensa.opt ! 1ba5e43f94b8286a6f2912dbb52f200e gcc/configure ! a336102eddc61c8a86cbc237b6a0ce5c gcc/configure.ac 27d42bf7c74759dfd549975615fc5068 gcc/context.c 16c3aa3c912f686f2a31e9390d85475c gcc/context.h f4ce7d4c40b8bd5fdb65296621e3c102 gcc/convert.c 70fc96b69d15408e8fdd3f28979c7efe gcc/convert.h ! 58838e86153d7aad6779dd34024780f6 gcc/coretypes.h 165e8c92386e4de91399049eaf43a842 gcc/coroutine-builtins.def b92bf93ad5a628ce259b9055426c0cd4 gcc/coroutine-passes.cc ! bde87550feaf889731652f27f77bc587 gcc/coverage.c 040e51182a2000cd08580cee4c8591c6 gcc/coverage.h ! d3d396b1c45bdd2d8e6f37a4dc32fdda gcc/cp/ChangeLog d271e3663538ba1f3281cab3838e92cd gcc/cp/ChangeLog-1993 f5a44adbc05521162350ca409d1d95ce gcc/cp/ChangeLog-1994 ac55db48d964cb5469ff03c1cd3ee04d gcc/cp/ChangeLog-1995 *************** f6ebb1c64d8e002666e58a4da0d97ecb gcc/cp *** 5051,5110 **** c1c7801b9b0f379e702a4f6cb83972e7 gcc/cp/ChangeLog.ptr 9aa3cd9f75c785de9f51446e3f295515 gcc/cp/ChangeLog.tree-ssa 82f86a266d5edfdd6fbdee627fdfc94d gcc/cp/Make-lang.in ! cc2d6b81b578ae6bd77f7f57d41b7aeb gcc/cp/call.c 013fc77930854f5ca6df4b4955b9cd5d gcc/cp/cfns.gperf 94073c4e9f5c434dbd02f5fab8ef2fec gcc/cp/cfns.h aa4071bfecf6b015c47cdbab9841661a gcc/cp/class.c 52c149e840d6ef546324992e040dffc9 gcc/cp/config-lang.in ! a4f89dc076a8119a632887d1bee4afd8 gcc/cp/constexpr.c ! 71321986aca2d3903939ba9224e169ed gcc/cp/constraint.cc ! 97506d78cc463c0c594eabc0c6c2b023 gcc/cp/coroutines.cc ! 9b0c66b82b19325899831d79aab0c60f gcc/cp/cp-gimplify.c 9f675ade86f6f438186c3359d251522d gcc/cp/cp-lang.c 3a17e28f03f7b86b06a0f7f2f1b38ee1 gcc/cp/cp-name-hint.h ! 28f4d1cb7de533b07b26906c3ec5715e gcc/cp/cp-objcp-common.c fc5f614233d1e1aab44be266429426d9 gcc/cp/cp-objcp-common.h e5a3c0227c5d7f6f15753ecf70d86dce gcc/cp/cp-tree.def ! af96b4f73f7c7e3d7a552cd8919faec5 gcc/cp/cp-tree.h ad2891a30f319f1059b3cd8cb85c2a66 gcc/cp/cp-ubsan.c 9f7577d6131c40516642a76a3cd4b349 gcc/cp/cvt.c 80fc2cbdfb0b939d06eb0c83cec629b0 gcc/cp/cxx-pretty-print.c f217ad40ae4095f745573953940bc517 gcc/cp/cxx-pretty-print.h ! 91a4ccfe7eccc0f52408b7d840d5bdaf gcc/cp/decl.c 2ee48334d4ea854bc0b6138b17db0eca gcc/cp/decl.h ! 6f3c044c89a8aff081edbfda64a72943 gcc/cp/decl2.c babde369bad84c4348cbb81fef27de19 gcc/cp/dump.c 65e7fee5d2a2ff328b09d262bdeb3b42 gcc/cp/error.c ! 8537eb199c155d61aa36e62089b49895 gcc/cp/except.c 9ef7eb731264636da96bb3ee4f5d92bd gcc/cp/expr.c bf339c04a11eb1ff6ae77b76d8a44e0c gcc/cp/friend.c af1b9753c30b60683233adf6dc1ebed9 gcc/cp/g++spec.c ! 5b4a4ef301c4d670caa31ac28a166dd4 gcc/cp/init.c ! 4c6d184f73f5e153ec2ec81680795e3f gcc/cp/lambda.c 1b5fe425de21c6959e8fcf809a4d9bf0 gcc/cp/lang-specs.h 8b55a87f580d7fabcd05e1be8bf8678a gcc/cp/lex.c ! 20341309f9f4bfc81d9c3baa9650fb94 gcc/cp/logic.cc ! 29afb600c6cb94aa71e99e086f2e828b gcc/cp/mangle.c e9bd33d0476c27e8dc7ae163523b0c43 gcc/cp/mapper-client.cc 7e088d81d8f48a2718ab084df953d006 gcc/cp/mapper-client.h e9215833b37c3eb15eca691a16a697c2 gcc/cp/mapper-resolver.cc ! 0a308722ecaa63a6dd606ed84564da77 gcc/cp/method.c 42305a8479586d5aa1f847d57d4bf6eb gcc/cp/module.cc ! 5e460df0f03c90fb6be7c42a9f1be39f gcc/cp/name-lookup.c ! 52ba207fa7ad048f1f1071286baa8328 gcc/cp/name-lookup.h 74ef5d5c783b19f58d24af2f5d586229 gcc/cp/operators.def 135e2526b78ff7fba60e97120acd13ce gcc/cp/optimize.c ! 25d3e9a59c5c2e7a9162dd077d37de32 gcc/cp/parser.c 33e6205b133939ff76752369e76e776e gcc/cp/parser.h ! 3fcd5e1398f137dd58a392f93881e463 gcc/cp/pt.c 185afe382f5cbb5102c5c681fca68144 gcc/cp/ptree.c d406c7234ce4950b24a30a51bdfdd50a gcc/cp/rtti.c ! 8084016588b31c1e78c2f511f8f1fe23 gcc/cp/search.c ! 3a60012b90b72bea50ef5161272f3ed7 gcc/cp/semantics.c ! ced05f20c58617afa5254b0700bb7de3 gcc/cp/tree.c 7edfa58f1051f1f2f0f0b14381ef44a3 gcc/cp/type-utils.h ! 69a9e9b83b6f04d8016f864e4e668885 gcc/cp/typeck.c ! e7b9bc67e1e15a15acc5c074d1675a91 gcc/cp/typeck2.c 2106dba4a8c689a23ae0c6ed874a57e3 gcc/cp/vtable-class-hierarchy.c a1dcb34fdd7a1dfb94f27bc0ac1a9306 gcc/cppbuiltin.c 26ece193a6d338989d1c337b7137c072 gcc/cppbuiltin.h --- 5057,5116 ---- c1c7801b9b0f379e702a4f6cb83972e7 gcc/cp/ChangeLog.ptr 9aa3cd9f75c785de9f51446e3f295515 gcc/cp/ChangeLog.tree-ssa 82f86a266d5edfdd6fbdee627fdfc94d gcc/cp/Make-lang.in ! 805a74c176fc9da5c8c00650be6fa813 gcc/cp/call.c 013fc77930854f5ca6df4b4955b9cd5d gcc/cp/cfns.gperf 94073c4e9f5c434dbd02f5fab8ef2fec gcc/cp/cfns.h aa4071bfecf6b015c47cdbab9841661a gcc/cp/class.c 52c149e840d6ef546324992e040dffc9 gcc/cp/config-lang.in ! 281b240e64442eca3828a39ab3450365 gcc/cp/constexpr.c ! 2d187983f45a0e24913874acf4ab80b9 gcc/cp/constraint.cc ! 774b12ba7796f225fc0b3873743b4046 gcc/cp/coroutines.cc ! 3adde1f450aedb33649d2497891e5bc6 gcc/cp/cp-gimplify.c 9f675ade86f6f438186c3359d251522d gcc/cp/cp-lang.c 3a17e28f03f7b86b06a0f7f2f1b38ee1 gcc/cp/cp-name-hint.h ! 6546ac35987ddbbd4baddabf4a418fdc gcc/cp/cp-objcp-common.c fc5f614233d1e1aab44be266429426d9 gcc/cp/cp-objcp-common.h e5a3c0227c5d7f6f15753ecf70d86dce gcc/cp/cp-tree.def ! c15606a3bc0492328f29aebce8f255c1 gcc/cp/cp-tree.h ad2891a30f319f1059b3cd8cb85c2a66 gcc/cp/cp-ubsan.c 9f7577d6131c40516642a76a3cd4b349 gcc/cp/cvt.c 80fc2cbdfb0b939d06eb0c83cec629b0 gcc/cp/cxx-pretty-print.c f217ad40ae4095f745573953940bc517 gcc/cp/cxx-pretty-print.h ! 2113714dc6eb431ec3b698883f0a86f7 gcc/cp/decl.c 2ee48334d4ea854bc0b6138b17db0eca gcc/cp/decl.h ! 8f6d5e2435483bb9efe75ff263436eb1 gcc/cp/decl2.c babde369bad84c4348cbb81fef27de19 gcc/cp/dump.c 65e7fee5d2a2ff328b09d262bdeb3b42 gcc/cp/error.c ! ae9a51d72d46922925309791e4610beb gcc/cp/except.c 9ef7eb731264636da96bb3ee4f5d92bd gcc/cp/expr.c bf339c04a11eb1ff6ae77b76d8a44e0c gcc/cp/friend.c af1b9753c30b60683233adf6dc1ebed9 gcc/cp/g++spec.c ! b1ac51933647fe1ccb10f6135b3d52df gcc/cp/init.c ! 778410400a5a0810061bddb226c20863 gcc/cp/lambda.c 1b5fe425de21c6959e8fcf809a4d9bf0 gcc/cp/lang-specs.h 8b55a87f580d7fabcd05e1be8bf8678a gcc/cp/lex.c ! 9a5b5f363f6a7bd9716c92383bbb1288 gcc/cp/logic.cc ! df964d3c9b0c731d24d450faca820026 gcc/cp/mangle.c e9bd33d0476c27e8dc7ae163523b0c43 gcc/cp/mapper-client.cc 7e088d81d8f48a2718ab084df953d006 gcc/cp/mapper-client.h e9215833b37c3eb15eca691a16a697c2 gcc/cp/mapper-resolver.cc ! e9a208e30d27c64ecd8cf48641166778 gcc/cp/method.c 42305a8479586d5aa1f847d57d4bf6eb gcc/cp/module.cc ! 4f44ae45107fb19664c4ea6fc1f9617d gcc/cp/name-lookup.c ! 7942e2da44ee806a67fc5508fa55227c gcc/cp/name-lookup.h 74ef5d5c783b19f58d24af2f5d586229 gcc/cp/operators.def 135e2526b78ff7fba60e97120acd13ce gcc/cp/optimize.c ! 01006045247b7da33610408f203ef633 gcc/cp/parser.c 33e6205b133939ff76752369e76e776e gcc/cp/parser.h ! 3b6f3c5af64170b7fbea87816eec8423 gcc/cp/pt.c 185afe382f5cbb5102c5c681fca68144 gcc/cp/ptree.c d406c7234ce4950b24a30a51bdfdd50a gcc/cp/rtti.c ! 8cb37681d9be422bc5accc1da48d5a75 gcc/cp/search.c ! 9ed1ff9cfbe2339c04127e55d60e3ea3 gcc/cp/semantics.c ! 192df66d3d7d2e34c2ba762538f4a0a5 gcc/cp/tree.c 7edfa58f1051f1f2f0f0b14381ef44a3 gcc/cp/type-utils.h ! 925b792e840a25f5f671128d881e89f3 gcc/cp/typeck.c ! e4cc977761b34df297265283c01fd95a gcc/cp/typeck2.c 2106dba4a8c689a23ae0c6ed874a57e3 gcc/cp/vtable-class-hierarchy.c a1dcb34fdd7a1dfb94f27bc0ac1a9306 gcc/cppbuiltin.c 26ece193a6d338989d1c337b7137c072 gcc/cppbuiltin.h *************** a1dcb34fdd7a1dfb94f27bc0ac1a9306 gcc/cp *** 5115,5121 **** a7c636b547b9582524b0bd62c6178487 gcc/cselib.c 857b8e6c3caa1a049b93761fde09419a gcc/cselib.h 1ded054093de910d9786c62bc4fe8cc6 gcc/cstamp-h.in ! a074f4aac17b50728c4462ee96bead96 gcc/d/ChangeLog 86f687c485111eedca2eb048294f957e gcc/d/ChangeLog-2006 70ed1c47fd9b3f5dd95055642ed79265 gcc/d/ChangeLog-2007 a7090ab2dd83aa4f44823c17566b83ef gcc/d/ChangeLog-2008 --- 5121,5127 ---- a7c636b547b9582524b0bd62c6178487 gcc/cselib.c 857b8e6c3caa1a049b93761fde09419a gcc/cselib.h 1ded054093de910d9786c62bc4fe8cc6 gcc/cstamp-h.in ! 4851f4c4d8a370263326460fe4537aab gcc/d/ChangeLog 86f687c485111eedca2eb048294f957e gcc/d/ChangeLog-2006 70ed1c47fd9b3f5dd95055642ed79265 gcc/d/ChangeLog-2007 a7090ab2dd83aa4f44823c17566b83ef gcc/d/ChangeLog-2008 *************** e432bfc5c605ae0b1beedf0492ad40d1 gcc/d/ *** 5134,5161 **** 6898d1f79bb53b436f3709b6ff681517 gcc/d/Make-lang.in 426254b45d40584d0597c63f3fd1f889 gcc/d/README.gcc c828f621dae15ecdebcb6483cc2a359a gcc/d/config-lang.in ! 3c42dd5aa2e4e648942c684e41796bdf gcc/d/d-attribs.cc ! 32f089ccc19997cf8fe98a15c5662e70 gcc/d/d-builtins.cc ! 2741b0c6f9ed34058b8e4c6b8ae00b76 gcc/d/d-codegen.cc 75ceab1f211190aa8a607de211d92550 gcc/d/d-compiler.cc ! 82b1072428e1e4a69e409bb4e3af67a5 gcc/d/d-convert.cc c68cc8b289e0bed7991d8ba214514b52 gcc/d/d-ctfloat.cc 96e81ac3898e23a215821a9ca3faac03 gcc/d/d-diagnostic.cc 9ad7d94122a0e53b642e569ef01bd97c gcc/d/d-frontend.cc 0410f105b76530dc8ba9c7328b5a0b73 gcc/d/d-gimplify.cc 47fd25e95ab17fd0c598380f4dcf775e gcc/d/d-incpath.cc ! 8bd015b1113b59d5dd51fbe30bc3d191 gcc/d/d-lang.cc 4caed6522470a27c7bc55349d4e41997 gcc/d/d-longdouble.cc a80cf667b6cde2503c142172b86d4a32 gcc/d/d-port.cc ! 1d2f02a991ef8c5867e8d8bce66baea5 gcc/d/d-spec.cc 5a2b9ffbe1b7e05aae3752561c81df38 gcc/d/d-system.h 269cf45854f0a7573a9c0fee24922f96 gcc/d/d-target-def.h 47901d67a22e6cb06354d26f256b1f44 gcc/d/d-target.cc e510e0920097f33c1584945cb08e080f gcc/d/d-target.def bd403a5022b9229546c86481f8f9b61e gcc/d/d-target.h 03f0da7679723f02dabef26c57f6b354 gcc/d/d-tree.def ! eb76ca8e69ae4cf81fc5924f7bf08813 gcc/d/d-tree.h ! 9fb8e724c04c912b1230d8f6fbcb2083 gcc/d/decl.cc 3b33e14d54fdeb23eedefb85531d96d9 gcc/d/dmd/MERGE 56e5dec62f6a10592384f715f378eef0 gcc/d/dmd/access.c 3791d70488bc98342964c686b935b89c gcc/d/dmd/aggregate.h --- 5140,5167 ---- 6898d1f79bb53b436f3709b6ff681517 gcc/d/Make-lang.in 426254b45d40584d0597c63f3fd1f889 gcc/d/README.gcc c828f621dae15ecdebcb6483cc2a359a gcc/d/config-lang.in ! ac5afa7752655d02611f15cb06067ee5 gcc/d/d-attribs.cc ! 2859511236eb18116b8f704c0893fc82 gcc/d/d-builtins.cc ! 79699adb49367908f31e0aba2aaaa568 gcc/d/d-codegen.cc 75ceab1f211190aa8a607de211d92550 gcc/d/d-compiler.cc ! cdd16f63672008a0bf919957625a0ae1 gcc/d/d-convert.cc c68cc8b289e0bed7991d8ba214514b52 gcc/d/d-ctfloat.cc 96e81ac3898e23a215821a9ca3faac03 gcc/d/d-diagnostic.cc 9ad7d94122a0e53b642e569ef01bd97c gcc/d/d-frontend.cc 0410f105b76530dc8ba9c7328b5a0b73 gcc/d/d-gimplify.cc 47fd25e95ab17fd0c598380f4dcf775e gcc/d/d-incpath.cc ! 96052adec5c3542ca6303076367be7f9 gcc/d/d-lang.cc 4caed6522470a27c7bc55349d4e41997 gcc/d/d-longdouble.cc a80cf667b6cde2503c142172b86d4a32 gcc/d/d-port.cc ! 7706828e60cb570bd143b79764e2026a gcc/d/d-spec.cc 5a2b9ffbe1b7e05aae3752561c81df38 gcc/d/d-system.h 269cf45854f0a7573a9c0fee24922f96 gcc/d/d-target-def.h 47901d67a22e6cb06354d26f256b1f44 gcc/d/d-target.cc e510e0920097f33c1584945cb08e080f gcc/d/d-target.def bd403a5022b9229546c86481f8f9b61e gcc/d/d-target.h 03f0da7679723f02dabef26c57f6b354 gcc/d/d-tree.def ! ea5292cd7004a68b8465731456abc987 gcc/d/d-tree.h ! 70d017a7d035eb8d878bcf3b962c2237 gcc/d/decl.cc 3b33e14d54fdeb23eedefb85531d96d9 gcc/d/dmd/MERGE 56e5dec62f6a10592384f715f378eef0 gcc/d/dmd/access.c 3791d70488bc98342964c686b935b89c gcc/d/dmd/aggregate.h *************** e6183e6da7533442f308852374d80b20 gcc/d/ *** 5180,5186 **** 5328bd316bae93daf3c0c8353e1a5be7 gcc/d/dmd/cppmangle.c 50a4587df5508c17ec0ba64e907e6c2a gcc/d/dmd/ctfe.h 52d369590e7009570bb88a39be30427c gcc/d/dmd/ctfeexpr.c ! 0ec22f74a330e8f376f81bbaf6201ecd gcc/d/dmd/dcast.c a7638e93d90f022b82f6ec861081f2da gcc/d/dmd/dclass.c d33b24b30e8e31a17e3a7e39f3c67bdd gcc/d/dmd/declaration.c d23cee2b9d07116997cebcb46669827a gcc/d/dmd/declaration.h --- 5186,5192 ---- 5328bd316bae93daf3c0c8353e1a5be7 gcc/d/dmd/cppmangle.c 50a4587df5508c17ec0ba64e907e6c2a gcc/d/dmd/ctfe.h 52d369590e7009570bb88a39be30427c gcc/d/dmd/ctfeexpr.c ! 08811bc74b0e84c93dbe62167237b58e gcc/d/dmd/dcast.c a7638e93d90f022b82f6ec861081f2da gcc/d/dmd/dclass.c d33b24b30e8e31a17e3a7e39f3c67bdd gcc/d/dmd/declaration.c d23cee2b9d07116997cebcb46669827a gcc/d/dmd/declaration.h *************** d5b34f72fef968b37217c531947bc6ba gcc/d/ *** 5204,5211 **** 660ab05c0f664d6f7e48fecd034297ba gcc/d/dmd/enum.h dda2e57e23eed0e5d751a553fb16d446 gcc/d/dmd/errors.h 577fa35cc9a9391c0626f6c86b7ff946 gcc/d/dmd/escape.c ! f8df549c012657c3ebd2750f840d1d26 gcc/d/dmd/expression.c ! 11feb2ecd1b2bb9a12253457534dd5cd gcc/d/dmd/expression.h 5b8f33811a9cdce4c63c076519318ca3 gcc/d/dmd/expressionsem.c 7f44497a182abfa3fb9dc8a2759f0f64 gcc/d/dmd/func.c 584c6d25fe0605ec4df673034ed70a09 gcc/d/dmd/globals.h --- 5210,5217 ---- 660ab05c0f664d6f7e48fecd034297ba gcc/d/dmd/enum.h dda2e57e23eed0e5d751a553fb16d446 gcc/d/dmd/errors.h 577fa35cc9a9391c0626f6c86b7ff946 gcc/d/dmd/escape.c ! 64a57e95f2aafac3bedd65e080c585d9 gcc/d/dmd/expression.c ! b29b7963b6b682ffdcfde106efa2df33 gcc/d/dmd/expression.h 5b8f33811a9cdce4c63c076519318ca3 gcc/d/dmd/expressionsem.c 7f44497a182abfa3fb9dc8a2759f0f64 gcc/d/dmd/func.c 584c6d25fe0605ec4df673034ed70a09 gcc/d/dmd/globals.h *************** df2a78f5b00debf6e042e43602e9d42c gcc/d/ *** 5295,5301 **** 24197b380374c982964e1ded75baa656 gcc/d/dmd/utils.c 4f4d6813c8ea201f84a5a083a752c723 gcc/d/dmd/version.h 0ab1d21cbddf7956fc552e2637e36eb7 gcc/d/dmd/visitor.h ! 2274e8068f1518548957b614401775f3 gcc/d/expr.cc b12d8cdbe556dcc8f51b72d45078d563 gcc/d/gdc.texi 4ef002e6f38a41b929d9fb7ee2d7d853 gcc/d/imports.cc fd28164e92119c746c3971d13fd80699 gcc/d/intrinsics.cc --- 5301,5307 ---- 24197b380374c982964e1ded75baa656 gcc/d/dmd/utils.c 4f4d6813c8ea201f84a5a083a752c723 gcc/d/dmd/version.h 0ab1d21cbddf7956fc552e2637e36eb7 gcc/d/dmd/visitor.h ! 972db9b2d0b44561d878e4726d7bf38c gcc/d/expr.cc b12d8cdbe556dcc8f51b72d45078d563 gcc/d/gdc.texi 4ef002e6f38a41b929d9fb7ee2d7d853 gcc/d/imports.cc fd28164e92119c746c3971d13fd80699 gcc/d/intrinsics.cc *************** d3f48eb6291337b70a8663fea43c5e35 gcc/do *** 5356,5362 **** 218582d80c3a5be7ef0215bc9e37347d gcc/doc/configterms.texi 3f7bc37ecd638efa9217dbc8049586bd gcc/doc/contrib.texi 21f4ebe254eeaf839f14e76f6d98e0f3 gcc/doc/contribute.texi ! edbf5be7e2338dcb6a1553aa1854b2ce gcc/doc/cpp.1 9a76a8fbb00e749ffe25a45fc4151499 gcc/doc/cpp.info f65281217c508bccc04841ecdb70678e gcc/doc/cpp.texi 9fdf410cbb02057509020001009b7a76 gcc/doc/cppdiropts.texi --- 5362,5368 ---- 218582d80c3a5be7ef0215bc9e37347d gcc/doc/configterms.texi 3f7bc37ecd638efa9217dbc8049586bd gcc/doc/contrib.texi 21f4ebe254eeaf839f14e76f6d98e0f3 gcc/doc/contribute.texi ! 4be347ce540d68ba609652150fe5767b gcc/doc/cpp.1 9a76a8fbb00e749ffe25a45fc4151499 gcc/doc/cpp.info f65281217c508bccc04841ecdb70678e gcc/doc/cpp.texi 9fdf410cbb02057509020001009b7a76 gcc/doc/cppdiropts.texi *************** dab6d92d04827098dfeb7e47e827f2b5 gcc/do *** 5365,5393 **** 5d6d94ebaaee9c663ccd7de2d90928cb gcc/doc/cppinternals.texi 0b1d4f633c271ebe3278233e58d2dd20 gcc/doc/cppopts.texi 5e580ffce6393e71cea1d0f253c2235e gcc/doc/cppwarnopts.texi ! bb296a62d3558aa6c2ce48847850287c gcc/doc/extend.texi 25e9d455e6d1bd64d661a3b9b7c760d1 gcc/doc/fragments.texi b286e11fcfd62c37fae56d6d6c31d1fe gcc/doc/frontends.texi ! 6decf03d16366b2c8ddbfb87dc09fa38 gcc/doc/fsf-funding.7 ! 603f084b419bb0a5241e447ff1811ec9 gcc/doc/g++.1 ! 603f084b419bb0a5241e447ff1811ec9 gcc/doc/gcc.1 ! c6b8acb7578772717ec3850b0f336426 gcc/doc/gcc.info 1b8b50b15f7f7dfd2bfc10cf04e79196 gcc/doc/gcc.texi ! d1d5c06d1396e601462b5242e89c59e3 gcc/doc/gccinstall.info ! adfecfbdc654aa46ae1260d0cf118ad6 gcc/doc/gccint.info e0b2b9651dfdfcc12ee2da87c17e11e1 gcc/doc/gccint.texi ! 3d5a3fbf6c9dd3be219a14b562ac73a5 gcc/doc/gcov-dump.1 d9797edde2661ae0e512c8176c290ae9 gcc/doc/gcov-dump.texi ! d233190156dc0a583fc0aaf9434c62d8 gcc/doc/gcov-tool.1 ca308b028dbb9daa82d92ccca156e07b gcc/doc/gcov-tool.texi ! 0487db787981f2b70de67b505a2c43a2 gcc/doc/gcov.1 fd33c1e0e0091bc38ffbee7177921ff3 gcc/doc/gcov.texi 3bc5fab4bd53960b1121c87434e0b742 gcc/doc/generic.texi ! 32001dedc1da3d1d1966feb7eef68775 gcc/doc/gfdl.7 ! c5a6614da608de4dca87cd588dea49ac gcc/doc/gfortran.1 587484a2f8ff3cf6b292b5c044724d4b gcc/doc/gimple.texi 290370669f02bef1502ada9273e5261f gcc/doc/gnu.texi ! edd943acf83aa1299b5368a202e95cf6 gcc/doc/gpl.7 c89eb85139a4c6829a59358310920b18 gcc/doc/gty.texi 7bf48d369f1899cf21f53b06605706c6 gcc/doc/headerdirs.texi 880f6eba982285c503ae42d08a7abad8 gcc/doc/hostconfig.texi --- 5371,5399 ---- 5d6d94ebaaee9c663ccd7de2d90928cb gcc/doc/cppinternals.texi 0b1d4f633c271ebe3278233e58d2dd20 gcc/doc/cppopts.texi 5e580ffce6393e71cea1d0f253c2235e gcc/doc/cppwarnopts.texi ! 27adb8013ca72a66619395e712c36d90 gcc/doc/extend.texi 25e9d455e6d1bd64d661a3b9b7c760d1 gcc/doc/fragments.texi b286e11fcfd62c37fae56d6d6c31d1fe gcc/doc/frontends.texi ! 075239552ebe343c2bb5085533a8d05c gcc/doc/fsf-funding.7 ! 473b3a7220fc066052b0d23dab975f24 gcc/doc/g++.1 ! 473b3a7220fc066052b0d23dab975f24 gcc/doc/gcc.1 ! cd525b46194415f97726b78f6f2285dc gcc/doc/gcc.info 1b8b50b15f7f7dfd2bfc10cf04e79196 gcc/doc/gcc.texi ! 768bab962d73747ebeb6173aef123d14 gcc/doc/gccinstall.info ! adcb79b32580efc6524846726aa35b34 gcc/doc/gccint.info e0b2b9651dfdfcc12ee2da87c17e11e1 gcc/doc/gccint.texi ! 8ecc5776d3632343caeed8164ff92289 gcc/doc/gcov-dump.1 d9797edde2661ae0e512c8176c290ae9 gcc/doc/gcov-dump.texi ! 6d5d67fa1aa26eb99fab49466de7340e gcc/doc/gcov-tool.1 ca308b028dbb9daa82d92ccca156e07b gcc/doc/gcov-tool.texi ! e4e5030720d97110126eae7ee4d337b6 gcc/doc/gcov.1 fd33c1e0e0091bc38ffbee7177921ff3 gcc/doc/gcov.texi 3bc5fab4bd53960b1121c87434e0b742 gcc/doc/generic.texi ! 30a6efd42c3982776b9e98891bce5e5b gcc/doc/gfdl.7 ! 6c51c207d22bcba97d015676831faa8d gcc/doc/gfortran.1 587484a2f8ff3cf6b292b5c044724d4b gcc/doc/gimple.texi 290370669f02bef1502ada9273e5261f gcc/doc/gnu.texi ! 5a48d55bc69a52aaf35233f47bebfa85 gcc/doc/gpl.7 c89eb85139a4c6829a59358310920b18 gcc/doc/gty.texi 7bf48d369f1899cf21f53b06605706c6 gcc/doc/headerdirs.texi 880f6eba982285c503ae42d08a7abad8 gcc/doc/hostconfig.texi *************** b82b1143f78f373e3c76f6958d830869 gcc/do *** 5399,5417 **** b6389c8331319f90193f11ac084e86e4 gcc/doc/include/gpl_v3.texi 73819b3930a3d4be5d6234070d02386a gcc/doc/include/texinfo.tex 9003c1b6a06c7661deb5ffc0dd0e145f gcc/doc/install-old.texi ! 3c2b50a637ded9348363b04591715ebd gcc/doc/install.texi 532fb3c092b7b296ddcec4a99a0c475d gcc/doc/install.texi2html 2bdd76b105eea8ff35649ac4ffb8eb5d gcc/doc/interface.texi ! 73a94cc1fe05cca3adf0eb1caa1a4c77 gcc/doc/invoke.texi c0f8bb0ef887855830a3b2948920db28 gcc/doc/languages.texi 0250c30f49d52e180cf510442a084475 gcc/doc/libgcc.texi 3c5a8fa331cb442336e2ff249f1f0aee gcc/doc/loop.texi ! 7d7c955c8668218a8844e8d8f42024ef gcc/doc/lto-dump.1 45b0e2c9fe4e809535fd2665b7efe706 gcc/doc/lto-dump.texi 1e20b8193e6a33b7a5258cacf05c5634 gcc/doc/lto.texi 959966ff2c0bf27c64314d6bdc06d05a gcc/doc/makefile.texi 3c7466056002814f6c005ea620b49ed5 gcc/doc/match-and-simplify.texi ! 2d1b0c08dcb217cf0acaacd071a8d97f gcc/doc/md.texi f769222ae6869bc37b118c5be0d92d0b gcc/doc/objc.texi 76a993580876d01ee5f77b3512773a81 gcc/doc/optinfo.texi 8bf2bba12f2fb6df2869c9bebd35dc64 gcc/doc/options.texi --- 5405,5423 ---- b6389c8331319f90193f11ac084e86e4 gcc/doc/include/gpl_v3.texi 73819b3930a3d4be5d6234070d02386a gcc/doc/include/texinfo.tex 9003c1b6a06c7661deb5ffc0dd0e145f gcc/doc/install-old.texi ! 7af71caf0d189c0c71b7268793e1400f gcc/doc/install.texi 532fb3c092b7b296ddcec4a99a0c475d gcc/doc/install.texi2html 2bdd76b105eea8ff35649ac4ffb8eb5d gcc/doc/interface.texi ! 2d88c68d539e547f3a6a0d8382303341 gcc/doc/invoke.texi c0f8bb0ef887855830a3b2948920db28 gcc/doc/languages.texi 0250c30f49d52e180cf510442a084475 gcc/doc/libgcc.texi 3c5a8fa331cb442336e2ff249f1f0aee gcc/doc/loop.texi ! da6758f13cca915f0ef8e900cadb54e7 gcc/doc/lto-dump.1 45b0e2c9fe4e809535fd2665b7efe706 gcc/doc/lto-dump.texi 1e20b8193e6a33b7a5258cacf05c5634 gcc/doc/lto.texi 959966ff2c0bf27c64314d6bdc06d05a gcc/doc/makefile.texi 3c7466056002814f6c005ea620b49ed5 gcc/doc/match-and-simplify.texi ! 644d59411fcc5a411f795ed8a14af490 gcc/doc/md.texi f769222ae6869bc37b118c5be0d92d0b gcc/doc/objc.texi 76a993580876d01ee5f77b3512773a81 gcc/doc/optinfo.texi 8bf2bba12f2fb6df2869c9bebd35dc64 gcc/doc/options.texi *************** a307378c56ec70371c9a935472cbfd42 gcc/do *** 5423,5432 **** 47714e0c449e2849262ea093f2a51055 gcc/doc/service.texi 2a2424de5e45e8f0091cac3e29487994 gcc/doc/sourcebuild.texi 9881c6973427acd0eb815283b1cb2c8f gcc/doc/standards.texi ! bb5dae39d5d4c42226ea026a0a87fa42 gcc/doc/tm.texi ! 5c7aaf686519df5bac26a573155db6da gcc/doc/tm.texi.in 3bb2055106c22395abf95d30d7743e0c gcc/doc/tree-ssa.texi ! c4ec3b51062989971ecee27d9a765ace gcc/doc/trouble.texi 32028ce5e1d5119d8df72ebdf6c2ce1f gcc/doc/ux.texi c247015669b5390c3cc897117efc631a gcc/dojump.c 65b3f7a15fe3cae6dd34ae6675409c86 gcc/dojump.h --- 5429,5438 ---- 47714e0c449e2849262ea093f2a51055 gcc/doc/service.texi 2a2424de5e45e8f0091cac3e29487994 gcc/doc/sourcebuild.texi 9881c6973427acd0eb815283b1cb2c8f gcc/doc/standards.texi ! f1f267363c04ab1c0c10737bfc6fa406 gcc/doc/tm.texi ! 8bdc6e08d5f1569316a83b1f755e0d48 gcc/doc/tm.texi.in 3bb2055106c22395abf95d30d7743e0c gcc/doc/tree-ssa.texi ! 282c72a4d6f725bc853239e4ba3ad2a9 gcc/doc/trouble.texi 32028ce5e1d5119d8df72ebdf6c2ce1f gcc/doc/ux.texi c247015669b5390c3cc897117efc631a gcc/dojump.c 65b3f7a15fe3cae6dd34ae6675409c86 gcc/dojump.h *************** a0e7d76c9e6820c8c60fd7162484c1aa gcc/du *** 5443,5449 **** 8731562505e8ee4827d4bffe59b4e5e6 gcc/dwarf2asm.c b301aca61d8288586da32dd2c3e6c7ea gcc/dwarf2asm.h 301a89cf04dc4a12bb77b09ad0daa51f gcc/dwarf2cfi.c ! 4fbe15fdf617cb6b37e0e00e18233cd2 gcc/dwarf2out.c f9339d6f2072113fa5a26bc27c7764c9 gcc/dwarf2out.h c41773ac5892c49b8063e85e4cf7d803 gcc/early-remat.c 5d0344605084d3d22969ca333fe08a2e gcc/edit-context.c --- 5449,5455 ---- 8731562505e8ee4827d4bffe59b4e5e6 gcc/dwarf2asm.c b301aca61d8288586da32dd2c3e6c7ea gcc/dwarf2asm.h 301a89cf04dc4a12bb77b09ad0daa51f gcc/dwarf2cfi.c ! 91c44eafbc6d9c88d6c660c8f2282309 gcc/dwarf2out.c f9339d6f2072113fa5a26bc27c7764c9 gcc/dwarf2out.h c41773ac5892c49b8063e85e4cf7d803 gcc/early-remat.c 5d0344605084d3d22969ca333fe08a2e gcc/edit-context.c *************** fa2e545077bed02cd450f695d1d3a3bd gcc/et *** 5457,5466 **** 55e328bfde7103c0f827d2dec978b600 gcc/et-forest.h 1da50c5c4a1ecf74913f87f1a132430b gcc/except.c acf60971867c3bda77169fa63b5d9155 gcc/except.h ! 9871618d2d568c6a2b19b26d979f1ca8 gcc/exec-tool.in ! fecefee7b65371f00bf648b6b8c94a13 gcc/explow.c 4abb7d44019c01df643228a63102e0a4 gcc/explow.h ! b767401751b3ecc09cdd1d19c768f236 gcc/expmed.c 461a5c7a292b43e45d34d15a6123aa1b gcc/expmed.h 0713647c19b8efba960495ff009cf061 gcc/expr.c 8dcbd4db5ca82e1fb16c9af198cace7e gcc/expr.h --- 5463,5472 ---- 55e328bfde7103c0f827d2dec978b600 gcc/et-forest.h 1da50c5c4a1ecf74913f87f1a132430b gcc/except.c acf60971867c3bda77169fa63b5d9155 gcc/except.h ! 829e4322150b9f6d41f14010e7a57a0e gcc/exec-tool.in ! 26871eb3fbf33e5b942cb7c8c2995bd2 gcc/explow.c 4abb7d44019c01df643228a63102e0a4 gcc/explow.h ! 12ac80aeab1b9a80e5593f38c6250825 gcc/expmed.c 461a5c7a292b43e45d34d15a6123aa1b gcc/expmed.h 0713647c19b8efba960495ff009cf061 gcc/expr.c 8dcbd4db5ca82e1fb16c9af198cace7e gcc/expr.h *************** bc014c20048c035718ad5836f6097d78 gcc/fi *** 5477,5485 **** 764f38b5e7ac1b3b4079577b45cb0331 gcc/flags.h 891064e4722e3a6a11417a8a1ecd065a gcc/fold-const-call.c d74e6be78940750833ff959c0f5571bd gcc/fold-const-call.h ! 8d77611754535c377a69aec7e90c892c gcc/fold-const.c 3812bf5faa6f093ebc438439b278eb2e gcc/fold-const.h ! a62b15c5251071bad1f58f406ded0af5 gcc/fortran/ChangeLog 3330102ad3a0217cba963be6b5eefd58 gcc/fortran/ChangeLog-2002 d000ab985b1eeb1ad5749f98b8fef99f gcc/fortran/ChangeLog-2003 bf42f94f0c51dcc7d8051cc7fda1efdc gcc/fortran/ChangeLog-2004 --- 5483,5491 ---- 764f38b5e7ac1b3b4079577b45cb0331 gcc/flags.h 891064e4722e3a6a11417a8a1ecd065a gcc/fold-const-call.c d74e6be78940750833ff959c0f5571bd gcc/fold-const-call.h ! ed239488833de5f1534c1b74cd5ac146 gcc/fold-const.c 3812bf5faa6f093ebc438439b278eb2e gcc/fold-const.h ! 764205aa5c7b9934f7614881a5c9d953 gcc/fortran/ChangeLog 3330102ad3a0217cba963be6b5eefd58 gcc/fortran/ChangeLog-2002 d000ab985b1eeb1ad5749f98b8fef99f gcc/fortran/ChangeLog-2003 bf42f94f0c51dcc7d8051cc7fda1efdc gcc/fortran/ChangeLog-2004 *************** a71efd3e199a80ee07c7f350cc8fcf91 gcc/fo *** 5501,5512 **** d1595b2ed8fb2a33f6ce0dc595f4f33c gcc/fortran/ChangeLog-2020 9e0636f92243fb9b3480e27cefc96749 gcc/fortran/ChangeLog.ptr ff3a70a964289eb29172b7a5e086ee3f gcc/fortran/Make-lang.in ! c94010cef8a73c5e297afefe04caaae0 gcc/fortran/arith.c 5478da78bbb9c6f5ec6f4c291556f64b gcc/fortran/arith.h ! e10f177dc7e3d6973918a96dc5e93a56 gcc/fortran/array.c 41d9862a96a73a3888dd71dbfd6a6f48 gcc/fortran/bbt.c ! 7e156bef8298c73fb888868385fa841f gcc/fortran/check.c ! 4c8a8a5c9449c107c7e01bf7cc89b79c gcc/fortran/class.c f5d7a68caf3076d5812b149cf771093f gcc/fortran/config-lang.in 9ec79e4ff334ab1ae73233b75630f91b gcc/fortran/constructor.c 8306e6e55c16d82d8de3979194536043 gcc/fortran/constructor.h --- 5507,5518 ---- d1595b2ed8fb2a33f6ce0dc595f4f33c gcc/fortran/ChangeLog-2020 9e0636f92243fb9b3480e27cefc96749 gcc/fortran/ChangeLog.ptr ff3a70a964289eb29172b7a5e086ee3f gcc/fortran/Make-lang.in ! e4b7aeea57f8a7edeb226df1058af6ed gcc/fortran/arith.c 5478da78bbb9c6f5ec6f4c291556f64b gcc/fortran/arith.h ! 9ad68060ee5cc6a20a3bcc4eb8bf35b0 gcc/fortran/array.c 41d9862a96a73a3888dd71dbfd6a6f48 gcc/fortran/bbt.c ! 6bf670ce7c9199fae127f9c0e2f721a0 gcc/fortran/check.c ! 3717b8a023b319090152a5f6aadaff78 gcc/fortran/class.c f5d7a68caf3076d5812b149cf771093f gcc/fortran/config-lang.in 9ec79e4ff334ab1ae73233b75630f91b gcc/fortran/constructor.c 8306e6e55c16d82d8de3979194536043 gcc/fortran/constructor.h *************** b1628a6231ddb7f7e4b2cf44b836b928 gcc/fo *** 5515,5579 **** 315cf57aecb390202190f4259ba3a36b gcc/fortran/cpp.h ee7a54e5c7f7a1043642f3148aa0e591 gcc/fortran/data.c 82bc765451efda646706547a38c09487 gcc/fortran/data.h ! da0ed52348d249891050d15225213ce9 gcc/fortran/decl.c c4f73bba061adfe9eabf763a1a418e5b gcc/fortran/dependency.c d43b0d544fe709c25b81ee187b848372 gcc/fortran/dependency.h fc814ce5ee0d7b357f14b97588a3287c gcc/fortran/dump-parse-tree.c d1cd71bb3644df2833513aea82c56ad6 gcc/fortran/error.c ! d244b8d478acd9ab179b3a123f0a2721 gcc/fortran/expr.c da3a0c04f8f87fdb6697ab1965ac58bc gcc/fortran/f95-lang.c ! c377d0eec326dc4441e1837d749fd504 gcc/fortran/frontend-passes.c 61d212b06741cc79879806a53df1eaa2 gcc/fortran/gfc-diagnostic.def 862a8dcb967ce0c214bce57208763cfc gcc/fortran/gfc-internals.texi ! 8b712096f004065d234038713d5bf54e gcc/fortran/gfortran.h 83b13c91736e3468e0fe9e79cdc27a1a gcc/fortran/gfortran.info 58ec938eb719edf2ffe5dbfcce4dd1d8 gcc/fortran/gfortran.texi 13ef845dc55ae5b20f8afe50368263ea gcc/fortran/gfortranspec.c 8042dcc4cf37a109aa435902c09017d9 gcc/fortran/interface.c ! fd390ad67810010d1aa018c6907e16b8 gcc/fortran/intrinsic.c ! 43926b3d3cb608065d7e2befcc1fbe32 gcc/fortran/intrinsic.h c09f27d7a8071860d1a900d96da0ec71 gcc/fortran/intrinsic.texi c6a48e4292d1489642fbb1664cc3e6c3 gcc/fortran/invoke.texi ! 4021a600e4ca47c88cd34cf59f8691b0 gcc/fortran/io.c cfb055fb9cb1a68a9974d4b65003c3cb gcc/fortran/ioparm.def ! 04eeec6d55c2c7d0d92e7d8774c9b5f3 gcc/fortran/iresolve.c 074cd74d31e55c226d9f97157593dc3d gcc/fortran/iso-c-binding.def efbaccc5d8e94375f348176fc0781246 gcc/fortran/iso-fortran-env.def 0a1b06a8103dcc19be16396515acaa9b gcc/fortran/lang-specs.h 09e0020c10cf80b36c91236e34f4d348 gcc/fortran/lang.opt 4c92759881e572b635603ebb42a2455f gcc/fortran/libgfortran.h ! 3b603b1264d147dc2aafa48ecce668d1 gcc/fortran/match.c 7da585148fe4f59ce5a733a65b82746c gcc/fortran/match.h af7a3aa1a1204dd37e34eefa510399cd gcc/fortran/matchexp.c b3b81cd6b5386b281800a93f8e4ade0b gcc/fortran/mathbuiltins.def ! 13cec2483d7671b602f3161db57a1fb0 gcc/fortran/misc.c 34d7f6342ff4b004dd80669ed3646570 gcc/fortran/module.c 52a543b51ac574c91c996a85d775d71d gcc/fortran/openmp.c 94fda6c5e12794dcdd5f378023229c01 gcc/fortran/options.c ! 40e500513431a70c4b47d04a8d33c033 gcc/fortran/parse.c 35501e834b34f6440232d3c4c2bbd56c gcc/fortran/parse.h ! a0839b6b84bd126d6aa5148960cfdc49 gcc/fortran/primary.c ! e60f8a1af1d8b7f54ef28e1dbe55bcfd gcc/fortran/resolve.c 15654692fbf8143321f77d50d70bf5db gcc/fortran/scanner.c e878063bf09025352b6adf6b5d0ab78d gcc/fortran/scanner.h ! d3c787af94e69f46f1e85afb889fc65b gcc/fortran/simplify.c 52826d539d76cfcf3218c02df40aecf6 gcc/fortran/st.c ! c1a3de4077034d12dd68fb20cf9de471 gcc/fortran/symbol.c ! dc10ee025e16e46509e02167a75b52c8 gcc/fortran/target-memory.c 0ce203c000f89bcab4e2f2b5885ec8f5 gcc/fortran/target-memory.h ! cda9fb511974748d8fbf559fcc6b7491 gcc/fortran/trans-array.c ! 7573a17519177720f72e955cea6c4ffd gcc/fortran/trans-array.h ec0059b31f88bbb8c77c8501ca451961 gcc/fortran/trans-common.c 42b243fa66682aca47b104fdf75790a3 gcc/fortran/trans-const.c 08d74bbf02852561cf584f029734d164 gcc/fortran/trans-const.h ! 1117d5bb249f68a4a7a59f5779be8d88 gcc/fortran/trans-decl.c ! 10f4b2ff271379e6a05362365807ff3f gcc/fortran/trans-expr.c ! 2a9997dba81aa6bf21cf99d3d5359ea7 gcc/fortran/trans-intrinsic.c d442a2920715f33cb7ca72f6cf551377 gcc/fortran/trans-io.c ! 6e23d9f44ee890c10a3ee17452ee9538 gcc/fortran/trans-openmp.c ! cbe07c0d52783e66e642dca959a50e01 gcc/fortran/trans-stmt.c adac91a5c3e9a289d1e225ac37f895f2 gcc/fortran/trans-stmt.h ! a217e68738bdcc2fb42dc6d5abada5c2 gcc/fortran/trans-types.c a1fc23f04301b08a0068afcd35eff141 gcc/fortran/trans-types.h 8cbeb3565f45e859c5c085e783fa0db6 gcc/fortran/trans.c b262b4a95cd0df959a318ec78009eaeb gcc/fortran/trans.h --- 5521,5585 ---- 315cf57aecb390202190f4259ba3a36b gcc/fortran/cpp.h ee7a54e5c7f7a1043642f3148aa0e591 gcc/fortran/data.c 82bc765451efda646706547a38c09487 gcc/fortran/data.h ! bb6a608fea49bacea5ce0a917f5b9673 gcc/fortran/decl.c c4f73bba061adfe9eabf763a1a418e5b gcc/fortran/dependency.c d43b0d544fe709c25b81ee187b848372 gcc/fortran/dependency.h fc814ce5ee0d7b357f14b97588a3287c gcc/fortran/dump-parse-tree.c d1cd71bb3644df2833513aea82c56ad6 gcc/fortran/error.c ! 5a8abdc1352d538d51c02a492084d7d1 gcc/fortran/expr.c da3a0c04f8f87fdb6697ab1965ac58bc gcc/fortran/f95-lang.c ! 8353b630bdf330e4d2b8ef9df747b1df gcc/fortran/frontend-passes.c 61d212b06741cc79879806a53df1eaa2 gcc/fortran/gfc-diagnostic.def 862a8dcb967ce0c214bce57208763cfc gcc/fortran/gfc-internals.texi ! 1e9576f9f76b696a9f3ef0d67154e18d gcc/fortran/gfortran.h 83b13c91736e3468e0fe9e79cdc27a1a gcc/fortran/gfortran.info 58ec938eb719edf2ffe5dbfcce4dd1d8 gcc/fortran/gfortran.texi 13ef845dc55ae5b20f8afe50368263ea gcc/fortran/gfortranspec.c 8042dcc4cf37a109aa435902c09017d9 gcc/fortran/interface.c ! 02c410f8928702184b16506978d79946 gcc/fortran/intrinsic.c ! 2e04d6a800add4904e0bf8ba5da7b994 gcc/fortran/intrinsic.h c09f27d7a8071860d1a900d96da0ec71 gcc/fortran/intrinsic.texi c6a48e4292d1489642fbb1664cc3e6c3 gcc/fortran/invoke.texi ! 5d1f82f037a7a8c9483a449ef7c29876 gcc/fortran/io.c cfb055fb9cb1a68a9974d4b65003c3cb gcc/fortran/ioparm.def ! 3a153534afac4c41d573cf0c82caf421 gcc/fortran/iresolve.c 074cd74d31e55c226d9f97157593dc3d gcc/fortran/iso-c-binding.def efbaccc5d8e94375f348176fc0781246 gcc/fortran/iso-fortran-env.def 0a1b06a8103dcc19be16396515acaa9b gcc/fortran/lang-specs.h 09e0020c10cf80b36c91236e34f4d348 gcc/fortran/lang.opt 4c92759881e572b635603ebb42a2455f gcc/fortran/libgfortran.h ! ae2f02c68f9911672bdb3b401cb210c2 gcc/fortran/match.c 7da585148fe4f59ce5a733a65b82746c gcc/fortran/match.h af7a3aa1a1204dd37e34eefa510399cd gcc/fortran/matchexp.c b3b81cd6b5386b281800a93f8e4ade0b gcc/fortran/mathbuiltins.def ! 6f7fc5d0b4f3b65e166f5d6c5e5f9f8f gcc/fortran/misc.c 34d7f6342ff4b004dd80669ed3646570 gcc/fortran/module.c 52a543b51ac574c91c996a85d775d71d gcc/fortran/openmp.c 94fda6c5e12794dcdd5f378023229c01 gcc/fortran/options.c ! ebce0975022c83898880627b1d236b65 gcc/fortran/parse.c 35501e834b34f6440232d3c4c2bbd56c gcc/fortran/parse.h ! 9c9d88bede3c641a5faed0a5f008897c gcc/fortran/primary.c ! 0dfd0f9a0463797275cb74211f7102e6 gcc/fortran/resolve.c 15654692fbf8143321f77d50d70bf5db gcc/fortran/scanner.c e878063bf09025352b6adf6b5d0ab78d gcc/fortran/scanner.h ! ea3832e9d8c05d62f7fb910e16f84497 gcc/fortran/simplify.c 52826d539d76cfcf3218c02df40aecf6 gcc/fortran/st.c ! e5e5b5f672739daa6b4e6407f9759adf gcc/fortran/symbol.c ! 758aeef05fd4d7d6a4474397ada7c8f3 gcc/fortran/target-memory.c 0ce203c000f89bcab4e2f2b5885ec8f5 gcc/fortran/target-memory.h ! ce3ff6e2419c5377d733f854a87eb6b2 gcc/fortran/trans-array.c ! e1d78c99b48125ffad30fedc872dc207 gcc/fortran/trans-array.h ec0059b31f88bbb8c77c8501ca451961 gcc/fortran/trans-common.c 42b243fa66682aca47b104fdf75790a3 gcc/fortran/trans-const.c 08d74bbf02852561cf584f029734d164 gcc/fortran/trans-const.h ! 6f8ae55bd9f6d63f35db16c211fbac35 gcc/fortran/trans-decl.c ! 14d62d3cabdfcfd47bf63ffb587dcaca gcc/fortran/trans-expr.c ! bf366d42e4c38b769cd37f6d91680376 gcc/fortran/trans-intrinsic.c d442a2920715f33cb7ca72f6cf551377 gcc/fortran/trans-io.c ! 43be2b05b7e5fd910ea552fab87c7b34 gcc/fortran/trans-openmp.c ! eaeb250c0757adb537819cf0f257fa05 gcc/fortran/trans-stmt.c adac91a5c3e9a289d1e225ac37f895f2 gcc/fortran/trans-stmt.h ! d326420e4ce44493518e5114159f04f6 gcc/fortran/trans-types.c a1fc23f04301b08a0068afcd35eff141 gcc/fortran/trans-types.h 8cbeb3565f45e859c5c085e783fa0db6 gcc/fortran/trans.c b262b4a95cd0df959a318ec78009eaeb gcc/fortran/trans.h *************** b262b4a95cd0df959a318ec78009eaeb gcc/fo *** 5583,5589 **** a7378b0ee32d1a8103f2106f776ddeef gcc/function-abi.cc 85a682a8db05fbb8149ff43de9b26ac7 gcc/function-abi.h 3be627fea3a3a6c9f0031cdd2808bada gcc/function-tests.c ! 2d0f69dbe9e8a6d81897dc9d457b53f1 gcc/function.c d79e4923da49c9efd0d27575ebe0c3e0 gcc/function.h bc49cccf40de468c5af3f7b3077601e9 gcc/fwprop.c 628dd8bc4c3033a144ca9d7411e136d8 gcc/gcc-ar.c --- 5589,5595 ---- a7378b0ee32d1a8103f2106f776ddeef gcc/function-abi.cc 85a682a8db05fbb8149ff43de9b26ac7 gcc/function-abi.h 3be627fea3a3a6c9f0031cdd2808bada gcc/function-tests.c ! 0c8a7eb6d8a1230e14ab527edcd7c100 gcc/function.c d79e4923da49c9efd0d27575ebe0c3e0 gcc/function.h bc49cccf40de468c5af3f7b3077601e9 gcc/fwprop.c 628dd8bc4c3033a144ca9d7411e136d8 gcc/gcc-ar.c *************** bc49cccf40de468c5af3f7b3077601e9 gcc/fw *** 5592,5598 **** 219ebc9f8c4780423b0e00faf25cf15c gcc/gcc-rich-location.c 7c5eb0bd2d135dca8076b6bbc8e46fe2 gcc/gcc-rich-location.h a3ee86700ebe6da680866c325a9e6d01 gcc/gcc-symtab.h ! 320cd9937c40ca0ff5d0b89a4dcb7066 gcc/gcc.c 43c0152df742051b3b7f216ea3327943 gcc/gcc.h 90734fcaf7c44a435600bae6c4f56607 gcc/gcov-counter.def 2b180ee6c8ef5773ae1afe08e2a54ba5 gcc/gcov-dump.c --- 5598,5604 ---- 219ebc9f8c4780423b0e00faf25cf15c gcc/gcc-rich-location.c 7c5eb0bd2d135dca8076b6bbc8e46fe2 gcc/gcc-rich-location.h a3ee86700ebe6da680866c325a9e6d01 gcc/gcc-symtab.h ! 495f60d858a8cdbeca218ae37d68ebf0 gcc/gcc.c 43c0152df742051b3b7f216ea3327943 gcc/gcc.h 90734fcaf7c44a435600bae6c4f56607 gcc/gcov-counter.def 2b180ee6c8ef5773ae1afe08e2a54ba5 gcc/gcov-dump.c *************** e032de0a4f21692633427f5784f1ba2a gcc/gc *** 5600,5606 **** 61c2e6a9bd20c215b89cc0a608b46955 gcc/gcov-io.h 9afcd572ff991ca0ef8d882afb91238d gcc/gcov-iov.c 667795832b55dfdeeeba297c67c51ded gcc/gcov-tool.c ! 8a4068270d8814f765ea71e10702e412 gcc/gcov.c 9ffcae42c1998aaa1d1ad9d8513bf523 gcc/gcse-common.c 54daf4578fe36e4c52ee5e02e3543dbd gcc/gcse-common.h 8d9f85a330d647efae671bfb616adb3b gcc/gcse.c --- 5606,5612 ---- 61c2e6a9bd20c215b89cc0a608b46955 gcc/gcov-io.h 9afcd572ff991ca0ef8d882afb91238d gcc/gcov-iov.c 667795832b55dfdeeeba297c67c51ded gcc/gcov-tool.c ! 813b5200c059254d9a66c1f23d065a79 gcc/gcov.c 9ffcae42c1998aaa1d1ad9d8513bf523 gcc/gcse-common.c 54daf4578fe36e4c52ee5e02e3543dbd gcc/gcse-common.h 8d9f85a330d647efae671bfb616adb3b gcc/gcse.c *************** dd3c872700fc3cbd561dcd8da99e48d6 gcc/ge *** 5627,5633 **** 0851ab0217a3550c4694dc56da1d14a0 gcc/genextract.c d8284cac8286a7a7d64ac13ec870daa7 gcc/genflags.c 950b7513fef07bfbefb505897b6d7448 gcc/gengenrtl.c ! 7ff2ad7818fb1d801e809f52f3673d9a gcc/gengtype-lex.c 8ea8a37c0cf6f91ded53bb6db384da0d gcc/gengtype-lex.l 548a8efcdbfd7022ebabcc0492a34cf9 gcc/gengtype-parse.c 87b2b2c69bc05df6161d23040833a374 gcc/gengtype-state.c --- 5633,5639 ---- 0851ab0217a3550c4694dc56da1d14a0 gcc/genextract.c d8284cac8286a7a7d64ac13ec870daa7 gcc/genflags.c 950b7513fef07bfbefb505897b6d7448 gcc/gengenrtl.c ! 5dec9be550420ad9483c8c3f8aaea9a1 gcc/gengtype-lex.c 8ea8a37c0cf6f91ded53bb6db384da0d gcc/gengtype-lex.l 548a8efcdbfd7022ebabcc0492a34cf9 gcc/gengtype-parse.c 87b2b2c69bc05df6161d23040833a374 gcc/gengtype-state.c *************** f57cf443d784ee093c2c5ba1ab06c0bc gcc/gg *** 5653,5665 **** 7bfeded454c8971d940aa36328e9cf6d gcc/ggc-page.c ecf8d9fd8c961c7c8143950d0dffa4ad gcc/ggc-tests.c 8c4c95942af92fe1df1464e359aa00e5 gcc/ggc.h ! dcef4e7504f56e78778689f65c6435c7 gcc/gimple-array-bounds.cc ca2520162ec5b4b80e57e4f46690e4c6 gcc/gimple-array-bounds.h 0050f15d9f43589b0e2f6d2502d4f292 gcc/gimple-builder.c 6a22e0a2c2e663ac23a368e20fa1fe9c gcc/gimple-builder.h ! f8ba9cab742ed3119a01b78072b86fa9 gcc/gimple-expr.c 6b5f6aa1713f09243d1159a75ecd7976 gcc/gimple-expr.h ! 58f5238b668e7302346c8c12751df187 gcc/gimple-fold.c 19b1447666533a8e534b359325a40685 gcc/gimple-fold.h ae9c923ed2c8a79aaa3ca54a22881ef0 gcc/gimple-if-to-switch.cc 16b85d8ae65dd9edd56bbf0d38b43aa9 gcc/gimple-isel.cc --- 5659,5671 ---- 7bfeded454c8971d940aa36328e9cf6d gcc/ggc-page.c ecf8d9fd8c961c7c8143950d0dffa4ad gcc/ggc-tests.c 8c4c95942af92fe1df1464e359aa00e5 gcc/ggc.h ! 586c2cab2915e4fcfc60eef73c5aa542 gcc/gimple-array-bounds.cc ca2520162ec5b4b80e57e4f46690e4c6 gcc/gimple-array-bounds.h 0050f15d9f43589b0e2f6d2502d4f292 gcc/gimple-builder.c 6a22e0a2c2e663ac23a368e20fa1fe9c gcc/gimple-builder.h ! 036cecd86563f6394e964dc1bb605895 gcc/gimple-expr.c 6b5f6aa1713f09243d1159a75ecd7976 gcc/gimple-expr.h ! 9864da12a5fa4e9052e9a2444e49bdc1 gcc/gimple-fold.c 19b1447666533a8e534b359325a40685 gcc/gimple-fold.h ae9c923ed2c8a79aaa3ca54a22881ef0 gcc/gimple-if-to-switch.cc 16b85d8ae65dd9edd56bbf0d38b43aa9 gcc/gimple-isel.cc *************** ae9c923ed2c8a79aaa3ca54a22881ef0 gcc/gi *** 5667,5673 **** 6fd4aeb4f777fa04b054a2682011f913 gcc/gimple-iterator.h 3471799f94511265663f55a068653533 gcc/gimple-laddress.c 9aa4fcd22acca88f36a4dc821ff9751b gcc/gimple-loop-interchange.cc ! aa23525c55951890a8fda49ab63fe9fa gcc/gimple-loop-jam.c b7bd86f1e8a440a81a812eede18b61dd gcc/gimple-loop-versioning.cc 70563b4bd57a3dbe8cc827ff4e0397f2 gcc/gimple-low.c e0253d8d1270dfd7059ea3316782e941 gcc/gimple-low.h --- 5673,5679 ---- 6fd4aeb4f777fa04b054a2682011f913 gcc/gimple-iterator.h 3471799f94511265663f55a068653533 gcc/gimple-laddress.c 9aa4fcd22acca88f36a4dc821ff9751b gcc/gimple-loop-interchange.cc ! 4f9daeaa792ad229f0c1259463bf8d30 gcc/gimple-loop-jam.c b7bd86f1e8a440a81a812eede18b61dd gcc/gimple-loop-versioning.cc 70563b4bd57a3dbe8cc827ff4e0397f2 gcc/gimple-low.c e0253d8d1270dfd7059ea3316782e941 gcc/gimple-low.h *************** e0253d8d1270dfd7059ea3316782e941 gcc/gi *** 5676,5689 **** 5f9cee3b6f666df0127815986e25eda3 gcc/gimple-predict.h 0780ae9f7851e54c1063bb2e57d983ab gcc/gimple-pretty-print.c 3ff1cbafa7db47dee0ab5fd8570498e7 gcc/gimple-pretty-print.h ! 81b5b89c1008b72210a7c1173ec6a840 gcc/gimple-range-cache.cc a5f6cff42cef43846738248ba84846e3 gcc/gimple-range-cache.h 68bc95c68a5d3ef09ad9d5cb40fc7394 gcc/gimple-range-edge.cc 723ede0e82e5626cca6fcbb16ff6f571 gcc/gimple-range-edge.h 13413d7cf635bc5431995e5c77657b3c gcc/gimple-range-gori.cc f61a8ff332c742ad4bc134e6154e28c7 gcc/gimple-range-gori.h ! 4e0efc0894c1f0926d681f5f124be36d gcc/gimple-range.cc ! 2d980e6a5826d8329a850f52ac7682f2 gcc/gimple-range.h e3b577427781a76267364ec3efa54f51 gcc/gimple-ssa-backprop.c 07f08a30d5a28800e5c2ea26c217d226 gcc/gimple-ssa-evrp-analyze.c e5bfc6ff4a07f1f5591f18021b017283 gcc/gimple-ssa-evrp-analyze.h --- 5682,5695 ---- 5f9cee3b6f666df0127815986e25eda3 gcc/gimple-predict.h 0780ae9f7851e54c1063bb2e57d983ab gcc/gimple-pretty-print.c 3ff1cbafa7db47dee0ab5fd8570498e7 gcc/gimple-pretty-print.h ! 6251cb7e5299049ffc5bb28857b8fc35 gcc/gimple-range-cache.cc a5f6cff42cef43846738248ba84846e3 gcc/gimple-range-cache.h 68bc95c68a5d3ef09ad9d5cb40fc7394 gcc/gimple-range-edge.cc 723ede0e82e5626cca6fcbb16ff6f571 gcc/gimple-range-edge.h 13413d7cf635bc5431995e5c77657b3c gcc/gimple-range-gori.cc f61a8ff332c742ad4bc134e6154e28c7 gcc/gimple-range-gori.h ! 7a4d5971631f3acee678a1d6bbce867f gcc/gimple-range.cc ! 2c5c9f17c97ce09156b83e764c567987 gcc/gimple-range.h e3b577427781a76267364ec3efa54f51 gcc/gimple-ssa-backprop.c 07f08a30d5a28800e5c2ea26c217d226 gcc/gimple-ssa-evrp-analyze.c e5bfc6ff4a07f1f5591f18021b017283 gcc/gimple-ssa-evrp-analyze.h *************** f96959d86d6678e1a7fdf38b6e127bcd gcc/gi *** 5692,5698 **** b6d23698f494095d6a2998fccaa3f8b9 gcc/gimple-ssa-nonnull-compare.c aced049779ec566808a605d67e3515fc gcc/gimple-ssa-split-paths.c 1d753067436e68b37dba76eb3eb35ff8 gcc/gimple-ssa-sprintf.c ! 352c8c44167851386876c1fc86f631ab gcc/gimple-ssa-store-merging.c 3e8d8a511e1e447865e4c63ef9d1f0dc gcc/gimple-ssa-strength-reduction.c 3ac9a7ed69ad0ec6148c051f54d9a4df gcc/gimple-ssa-warn-alloca.c 3a0b8da8458ff788072a9389e1e51b1b gcc/gimple-ssa-warn-restrict.c --- 5698,5704 ---- b6d23698f494095d6a2998fccaa3f8b9 gcc/gimple-ssa-nonnull-compare.c aced049779ec566808a605d67e3515fc gcc/gimple-ssa-split-paths.c 1d753067436e68b37dba76eb3eb35ff8 gcc/gimple-ssa-sprintf.c ! dee9befafe077802d5e58f3a7762b100 gcc/gimple-ssa-store-merging.c 3e8d8a511e1e447865e4c63ef9d1f0dc gcc/gimple-ssa-strength-reduction.c 3ac9a7ed69ad0ec6148c051f54d9a4df gcc/gimple-ssa-warn-alloca.c 3a0b8da8458ff788072a9389e1e51b1b gcc/gimple-ssa-warn-restrict.c *************** cc4f6240e418b12d3aa1b0720c58934c gcc/gi *** 5703,5714 **** 1af5ae446d1fd8b5441632e7a4149331 gcc/gimple-streamer.h 7f6a6f2dbf33fae398e9a806a5c9062c gcc/gimple-walk.c 3e8f456bcdd4750b0b7c2ea2a509e3a9 gcc/gimple-walk.h ! 01a6358e04eb761e13628c3cc17a95f3 gcc/gimple.c 4817f53b0ae7f841b0a2912852140f7a gcc/gimple.def ! 4e58785096fa2390261f56f7a49c11ca gcc/gimple.h e9afce92bc9364d0b5565b93832dc4e8 gcc/gimplify-me.c 224fdd664cd0f580204dafa07a303940 gcc/gimplify-me.h ! d3b69edb04470b78bcaddc2a1a53242d gcc/gimplify.c 856b47f3f4a5bbd47b90f36cbc2fb193 gcc/gimplify.h 911cef7485ca1b6df98ae6a03e5f003a gcc/ginclude/float.h 5c63f78b341c5627e43ead0434e54a83 gcc/ginclude/iso646.h --- 5709,5720 ---- 1af5ae446d1fd8b5441632e7a4149331 gcc/gimple-streamer.h 7f6a6f2dbf33fae398e9a806a5c9062c gcc/gimple-walk.c 3e8f456bcdd4750b0b7c2ea2a509e3a9 gcc/gimple-walk.h ! 67199d51c4d34de1eb3af60b6df1343f gcc/gimple.c 4817f53b0ae7f841b0a2912852140f7a gcc/gimple.def ! 3be7edbac1a6dd8eb1720166985e3bc6 gcc/gimple.h e9afce92bc9364d0b5565b93832dc4e8 gcc/gimplify-me.c 224fdd664cd0f580204dafa07a303940 gcc/gimplify-me.h ! 284ca005300b978d37714e82aea46d93 gcc/gimplify.c 856b47f3f4a5bbd47b90f36cbc2fb193 gcc/gimplify.h 911cef7485ca1b6df98ae6a03e5f003a gcc/ginclude/float.h 5c63f78b341c5627e43ead0434e54a83 gcc/ginclude/iso646.h *************** f600ba03fe6a2c3cd6c70bcc66153eed gcc/gi *** 5725,5731 **** fd1e7b72f05881b3313665c73e2f4da9 gcc/ginclude/unwind-arm-common.h 8d9ecf0d6ef93c79623ce1d27a32a2cb gcc/ginclude/varargs.h 5081e1e198938204286d03d45535b34b gcc/glimits.h ! b2a4e9fabb68d632b4edf137ff750bf3 gcc/go/ChangeLog e905ea0930382dd7f885f6df4e826e16 gcc/go/Make-lang.in 60ea054548c83c7f66170073f9f3e74c gcc/go/README.gcc 441e07f72df962bba81b0fca4787a622 gcc/go/config-lang.in --- 5731,5737 ---- fd1e7b72f05881b3313665c73e2f4da9 gcc/ginclude/unwind-arm-common.h 8d9ecf0d6ef93c79623ce1d27a32a2cb gcc/ginclude/varargs.h 5081e1e198938204286d03d45535b34b gcc/glimits.h ! 9539e564fe28bea03e53c4372798beb9 gcc/go/ChangeLog e905ea0930382dd7f885f6df4e826e16 gcc/go/Make-lang.in 60ea054548c83c7f66170073f9f3e74c gcc/go/README.gcc 441e07f72df962bba81b0fca4787a622 gcc/go/config-lang.in *************** e905ea0930382dd7f885f6df4e826e16 gcc/go *** 5733,5739 **** 1bfe12d4d420dea782bfc43f73f50629 gcc/go/go-backend.c 36093348dc9f5bfa786624db0014386e gcc/go/go-c.h 19e44eeadca75d05b7d0722682e1268d gcc/go/go-gcc-diagnostics.cc ! f5b8f5e58f1495f1a6fa986687a114c5 gcc/go/go-gcc.cc a64e89816f7f16f13cbd044f4c56515e gcc/go/go-gcc.h c48761e2b947c22f3ca2f5eed4f8cdf9 gcc/go/go-lang.c c5d6aaa7e913ef205113a2bba2e5206f gcc/go/go-linemap.cc --- 5739,5745 ---- 1bfe12d4d420dea782bfc43f73f50629 gcc/go/go-backend.c 36093348dc9f5bfa786624db0014386e gcc/go/go-c.h 19e44eeadca75d05b7d0722682e1268d gcc/go/go-gcc-diagnostics.cc ! 7cc5c5737f3346d824976c10bdc0d692 gcc/go/go-gcc.cc a64e89816f7f16f13cbd044f4c56515e gcc/go/go-gcc.h c48761e2b947c22f3ca2f5eed4f8cdf9 gcc/go/go-lang.c c5d6aaa7e913ef205113a2bba2e5206f gcc/go/go-linemap.cc *************** c5d6aaa7e913ef205113a2bba2e5206f gcc/go *** 5741,5758 **** 3a0ebd75d30f31d898f41763a9326903 gcc/go/go-sha1.cc 5345db4cb134b73159be87b15d9d9fae gcc/go/go-system.h 5d4950ecb7b26d2c5e4e7b4e0dd74707 gcc/go/gofrontend/LICENSE ! 32c90d143f74b7a667fbca19dbfe6fea gcc/go/gofrontend/MERGE 3a55d95595a6f9e37dee53826b4daff2 gcc/go/gofrontend/PATENTS 31c16a91d82f8ad3319819ebbba2d17f gcc/go/gofrontend/README 38df5a2d45162cae2b454cd17fa8df7a gcc/go/gofrontend/ast-dump.cc 456b6d4cc785176b6e3eb0c685a93b39 gcc/go/gofrontend/ast-dump.h ! 32aa7052db47bfc5454f727796ff9e56 gcc/go/gofrontend/backend.h f4698d5111935f1c789b7efd8ed91a74 gcc/go/gofrontend/embed.cc 374636e1427f469d60b661c2c2ec21d0 gcc/go/gofrontend/escape.cc ee8753eb1d8ca2fa168f6a71d3991455 gcc/go/gofrontend/escape.h 41e47500f61f75ad228a7d51a2df529b gcc/go/gofrontend/export.cc b72c14ae63bb87f55620d747d46e54c7 gcc/go/gofrontend/export.h ! 53ac818fd78758790ee019585b6fd05f gcc/go/gofrontend/expressions.cc c87e0f8b68d6e4e8638ca14783d9c684 gcc/go/gofrontend/expressions.h bf7f8a519eadaa90804fe15cfa37ba6f gcc/go/gofrontend/go-diagnostics.cc accfd5ea41ee789e6adbaec31a228cfe gcc/go/gofrontend/go-diagnostics.h --- 5747,5764 ---- 3a0ebd75d30f31d898f41763a9326903 gcc/go/go-sha1.cc 5345db4cb134b73159be87b15d9d9fae gcc/go/go-system.h 5d4950ecb7b26d2c5e4e7b4e0dd74707 gcc/go/gofrontend/LICENSE ! aa0db5ed26a6f9c114e0fe721f06541a gcc/go/gofrontend/MERGE 3a55d95595a6f9e37dee53826b4daff2 gcc/go/gofrontend/PATENTS 31c16a91d82f8ad3319819ebbba2d17f gcc/go/gofrontend/README 38df5a2d45162cae2b454cd17fa8df7a gcc/go/gofrontend/ast-dump.cc 456b6d4cc785176b6e3eb0c685a93b39 gcc/go/gofrontend/ast-dump.h ! ea386ab9fecd1e6a9d230d51e7190683 gcc/go/gofrontend/backend.h f4698d5111935f1c789b7efd8ed91a74 gcc/go/gofrontend/embed.cc 374636e1427f469d60b661c2c2ec21d0 gcc/go/gofrontend/escape.cc ee8753eb1d8ca2fa168f6a71d3991455 gcc/go/gofrontend/escape.h 41e47500f61f75ad228a7d51a2df529b gcc/go/gofrontend/export.cc b72c14ae63bb87f55620d747d46e54c7 gcc/go/gofrontend/export.h ! d2b69e49a586b9ff0ca76cd68f00fbe5 gcc/go/gofrontend/expressions.cc c87e0f8b68d6e4e8638ca14783d9c684 gcc/go/gofrontend/expressions.h bf7f8a519eadaa90804fe15cfa37ba6f gcc/go/gofrontend/go-diagnostics.cc accfd5ea41ee789e6adbaec31a228cfe gcc/go/gofrontend/go-diagnostics.h *************** c08c0bc386a3e50faacf99daf94c080f gcc/go *** 5765,5771 **** ead5ac25b7b99d361225e0fd940e286a gcc/go/gofrontend/go-optimize.h 5b59619fab7e543c5bb28dd8a6d62793 gcc/go/gofrontend/go-sha1.h 8d64d49cf01e7d7605f32b644d82c7e1 gcc/go/gofrontend/go.cc ! bfef03c787d976e366df2da6e2b3341b gcc/go/gofrontend/gogo.cc 80b391a86b1bc3375909d0bc35db0210 gcc/go/gofrontend/gogo.h f9015ccccf7764d4c6eeae1bd5e01c7f gcc/go/gofrontend/import-archive.cc 1496f53f85d6a3a7304496aeaad6272f gcc/go/gofrontend/import.cc --- 5771,5777 ---- ead5ac25b7b99d361225e0fd940e286a gcc/go/gofrontend/go-optimize.h 5b59619fab7e543c5bb28dd8a6d62793 gcc/go/gofrontend/go-sha1.h 8d64d49cf01e7d7605f32b644d82c7e1 gcc/go/gofrontend/go.cc ! 047533e959055bdd54465d0785428331 gcc/go/gofrontend/gogo.cc 80b391a86b1bc3375909d0bc35db0210 gcc/go/gofrontend/gogo.h f9015ccccf7764d4c6eeae1bd5e01c7f gcc/go/gofrontend/import-archive.cc 1496f53f85d6a3a7304496aeaad6272f gcc/go/gofrontend/import.cc *************** e334b91562a94d1584423d0152a3408e gcc/go *** 5779,5788 **** 2c0d81f700bca5c56dfcd3a7673e2e82 gcc/go/gofrontend/runtime.cc f5457f31b072a79cb18b4a3779db3ab3 gcc/go/gofrontend/runtime.def 978a7b1924ca7f696fa5d0da3c9ccf60 gcc/go/gofrontend/runtime.h ! f966b58e11b83f1b8890c1ef9331b22e gcc/go/gofrontend/statements.cc 2eb4054e4a44955e627d6732684b0563 gcc/go/gofrontend/statements.h bfc57c7a1e73452c4b277ad13efbddbd gcc/go/gofrontend/string-dump.h ! d11a84e01a8f64d67d7cc66f98581ef7 gcc/go/gofrontend/types.cc 1f89d4553c3d2e12136f23fee3bcb4d4 gcc/go/gofrontend/types.h 3662dad559a197b0771d9930d494949d gcc/go/gofrontend/unsafe.cc 090095c2b56e6d719c7e5ec12e5daf7a gcc/go/gofrontend/wb.cc --- 5785,5794 ---- 2c0d81f700bca5c56dfcd3a7673e2e82 gcc/go/gofrontend/runtime.cc f5457f31b072a79cb18b4a3779db3ab3 gcc/go/gofrontend/runtime.def 978a7b1924ca7f696fa5d0da3c9ccf60 gcc/go/gofrontend/runtime.h ! a509ef74addeabe9aa2e0a94a18d86ed gcc/go/gofrontend/statements.cc 2eb4054e4a44955e627d6732684b0563 gcc/go/gofrontend/statements.h bfc57c7a1e73452c4b277ad13efbddbd gcc/go/gofrontend/string-dump.h ! cbf2bc3ea9e7f11e7faa815d7d19c70d gcc/go/gofrontend/types.cc 1f89d4553c3d2e12136f23fee3bcb4d4 gcc/go/gofrontend/types.h 3662dad559a197b0771d9930d494949d gcc/go/gofrontend/unsafe.cc 090095c2b56e6d719c7e5ec12e5daf7a gcc/go/gofrontend/wb.cc *************** c295442f623ae639ab0eef77ed196a06 gcc/ho *** 5829,5835 **** 47380fcad22a8fd1e1a458f7d1a9e758 gcc/hw-doloop.h 5447fa3d6d110fde15af8fa04ca0f1a1 gcc/hwint.c c753347aefd98061e32a83982d6c8f1b gcc/hwint.h ! 6226b552234a4346f0745a30bb9b8b2d gcc/ifcvt.c 5b179229655a9e1ff4addac6bd17bfd3 gcc/ifcvt.h 4a8573d35397afe052d60dc399f91959 gcc/inchash.c ff9cd748484a95fca3cf23a3ed3844e7 gcc/inchash.h --- 5835,5841 ---- 47380fcad22a8fd1e1a458f7d1a9e758 gcc/hw-doloop.h 5447fa3d6d110fde15af8fa04ca0f1a1 gcc/hwint.c c753347aefd98061e32a83982d6c8f1b gcc/hwint.h ! c344af190aeaa7efa77f8684fa1c4a76 gcc/ifcvt.c 5b179229655a9e1ff4addac6bd17bfd3 gcc/ifcvt.h 4a8573d35397afe052d60dc399f91959 gcc/inchash.c ff9cd748484a95fca3cf23a3ed3844e7 gcc/inchash.h *************** de5c239aa4766cc69fc2017ae8e7d8d1 gcc/in *** 5847,5857 **** 6aa6c9959854056e3c3e0d2587f2ef78 gcc/intl.c 0fef88b77c65fd1ec349ae84ced8a83d gcc/intl.h 57522642f0e35761146d57a1f4971ce7 gcc/ipa-comdats.c ! dbd6245c2c0bc4886f24cb2fc0f0bec6 gcc/ipa-cp.c 0ca725ecef6f1f086a5dd68523861ec2 gcc/ipa-devirt.c ! a48c5a327011724a19455045c1e16fc3 gcc/ipa-fnsummary.c f95a69b1f3983dc781ef570590f5b01d gcc/ipa-fnsummary.h ! 06396f30697409d67438cc57d0d322ee gcc/ipa-icf-gimple.c bde983e86d6dce7cfa528ed5003fbf84 gcc/ipa-icf-gimple.h f797e88796d2c2bdb45fdd0f7774f7e5 gcc/ipa-icf.c d1c62ca27392156d9ab55eb9a8c5941f gcc/ipa-icf.h --- 5853,5863 ---- 6aa6c9959854056e3c3e0d2587f2ef78 gcc/intl.c 0fef88b77c65fd1ec349ae84ced8a83d gcc/intl.h 57522642f0e35761146d57a1f4971ce7 gcc/ipa-comdats.c ! 93a53ce20489e36bf458a63b27c0d8fc gcc/ipa-cp.c 0ca725ecef6f1f086a5dd68523861ec2 gcc/ipa-devirt.c ! 66b73527284b0e13f4e5b690d066ee85 gcc/ipa-fnsummary.c f95a69b1f3983dc781ef570590f5b01d gcc/ipa-fnsummary.h ! 7c46ef6a7d9230f2798ed1ce630eeb4a gcc/ipa-icf-gimple.c bde983e86d6dce7cfa528ed5003fbf84 gcc/ipa-icf-gimple.h f797e88796d2c2bdb45fdd0f7774f7e5 gcc/ipa-icf.c d1c62ca27392156d9ab55eb9a8c5941f gcc/ipa-icf.h *************** ec72952e216f97113f1ba6e99817c9ab gcc/ip *** 5861,5889 **** a10b26f8b2cd4e43b6eb7b9c5fc18a0d gcc/ipa-inline.h 527be6d4d86fbdd9748e4c8e967604f6 gcc/ipa-modref-tree.c 0d2c0f1bc1412e346c4a96960ac25b80 gcc/ipa-modref-tree.h ! b34f26fbc3fa70ef76fb873cc646c5b2 gcc/ipa-modref.c 24571d56e05a081b381bee5973dbc170 gcc/ipa-modref.h ! d82c2737eaf8322f8ce1128a4590f1ac gcc/ipa-param-manipulation.c 0ec8c7dc1c02b4b835fb52f233bdcd80 gcc/ipa-param-manipulation.h 257879916ba7a05ee55dbe52f518dbc6 gcc/ipa-polymorphic-call.c 55afec3b06a051269d9c3495954f589c gcc/ipa-predicate.c b6c2e60f0bb50b61ffc003d4287b4a7d gcc/ipa-predicate.h 2c565d155fe9a836088f9f0b8d38b331 gcc/ipa-profile.c ! aac4c130b29692ca43a9da6332b959fc gcc/ipa-prop.c ! db43a69947e08896b0deae8af495f3f1 gcc/ipa-prop.h ! 4d75dd61a8fe7a93586454a68d715a8e gcc/ipa-pure-const.c f4b0cf2eeaf1190a6a7682b15df55bf3 gcc/ipa-ref.c b0b504a2c999e7b1ad1df73df84cfb8c gcc/ipa-ref.h 4b604c3db2c1086771ca173c0fdd97dc gcc/ipa-reference.c 9033a420e6a286037d901439da8f5ff2 gcc/ipa-reference.h e098ddbd4be0af0842f88e64e8f4466b gcc/ipa-split.c ! af919a5e7be6c2b604da2a229d762e22 gcc/ipa-sra.c 842380624d66fae05d3a693e5929ffa5 gcc/ipa-utils.c 1766c3b1f6b59b660404460b25d838d3 gcc/ipa-utils.h 9cdf0cbb22a93045634de6e5fc83cbb8 gcc/ipa-visibility.c ! 6ab4e45205e31cca2377bf609c076656 gcc/ipa.c 420f64db44a55dc486630154a503b01a gcc/ira-build.c ! 2cbce09d0852b3b962ef019a924084be gcc/ira-color.c 05ded0649c09aca2587c5e6478e40a1f gcc/ira-conflicts.c fcdecd375e9f7dcef39dfb29545d6859 gcc/ira-costs.c 90a73493c275e6fa26e716b5f9a62dcb gcc/ira-emit.c --- 5867,5895 ---- a10b26f8b2cd4e43b6eb7b9c5fc18a0d gcc/ipa-inline.h 527be6d4d86fbdd9748e4c8e967604f6 gcc/ipa-modref-tree.c 0d2c0f1bc1412e346c4a96960ac25b80 gcc/ipa-modref-tree.h ! 828eec681c95cd80a228140315eaa47d gcc/ipa-modref.c 24571d56e05a081b381bee5973dbc170 gcc/ipa-modref.h ! db0361c41637ca821b894c2d6a58dd78 gcc/ipa-param-manipulation.c 0ec8c7dc1c02b4b835fb52f233bdcd80 gcc/ipa-param-manipulation.h 257879916ba7a05ee55dbe52f518dbc6 gcc/ipa-polymorphic-call.c 55afec3b06a051269d9c3495954f589c gcc/ipa-predicate.c b6c2e60f0bb50b61ffc003d4287b4a7d gcc/ipa-predicate.h 2c565d155fe9a836088f9f0b8d38b331 gcc/ipa-profile.c ! ad3f3de29b2a55179063f8d7c1019dd3 gcc/ipa-prop.c ! 26dbfb8e2bba32dbfcc64d9bfc065969 gcc/ipa-prop.h ! 69165999b252c49cd319201d87c2ee82 gcc/ipa-pure-const.c f4b0cf2eeaf1190a6a7682b15df55bf3 gcc/ipa-ref.c b0b504a2c999e7b1ad1df73df84cfb8c gcc/ipa-ref.h 4b604c3db2c1086771ca173c0fdd97dc gcc/ipa-reference.c 9033a420e6a286037d901439da8f5ff2 gcc/ipa-reference.h e098ddbd4be0af0842f88e64e8f4466b gcc/ipa-split.c ! c1dc66d2ea8aa4cfddebdbd29cf0377a gcc/ipa-sra.c 842380624d66fae05d3a693e5929ffa5 gcc/ipa-utils.c 1766c3b1f6b59b660404460b25d838d3 gcc/ipa-utils.h 9cdf0cbb22a93045634de6e5fc83cbb8 gcc/ipa-visibility.c ! 20e523da6d0cf2dfb75b1cb15523364d gcc/ipa.c 420f64db44a55dc486630154a503b01a gcc/ira-build.c ! 294e8f4137b8651abf438ac9b9fcc8be gcc/ira-color.c 05ded0649c09aca2587c5e6478e40a1f gcc/ira-conflicts.c fcdecd375e9f7dcef39dfb29545d6859 gcc/ira-costs.c 90a73493c275e6fa26e716b5f9a62dcb gcc/ira-emit.c *************** c365b13304c481cc4b9f3145c452a198 gcc/ir *** 5893,5901 **** f2cefc86c9a11fe045772f372434ad3c gcc/ira.h a034d62871bbde98ccf4abce95e4bbd3 gcc/is-a.h dd335e7d147186c7f4aa9327f600007b gcc/iterator-utils.h ! 937f9941bceda610979be9e72665186c gcc/jit/ChangeLog 6071bdf04fb356c5ac99a99ec00c9a12 gcc/jit/ChangeLog.jit ! 5177a0b7d3558762e662b8d676cde430 gcc/jit/Make-lang.in fd0d76b6467c987f813d430a35d4760a gcc/jit/TODO.rst 7a93c8cedef319d0da7ea43c5ac5fa02 gcc/jit/config-lang.in df53fb6b84c435b56ac2cb2727b62b27 gcc/jit/docs/Makefile --- 5899,5907 ---- f2cefc86c9a11fe045772f372434ad3c gcc/ira.h a034d62871bbde98ccf4abce95e4bbd3 gcc/is-a.h dd335e7d147186c7f4aa9327f600007b gcc/iterator-utils.h ! 52a82347f59890f016cfeed79a75e907 gcc/jit/ChangeLog 6071bdf04fb356c5ac99a99ec00c9a12 gcc/jit/ChangeLog.jit ! 7da588bb30eff47e724348cf30c9b423 gcc/jit/Make-lang.in fd0d76b6467c987f813d430a35d4760a gcc/jit/TODO.rst 7a93c8cedef319d0da7ea43c5ac5fa02 gcc/jit/config-lang.in df53fb6b84c435b56ac2cb2727b62b27 gcc/jit/docs/Makefile *************** d132178089ea0320c6d2dfdcd76ea716 gcc/ji *** 5931,5938 **** 6369d2b07520cb0fc9d14082499f6be2 gcc/jit/docs/examples/tut04-toyvm/Makefile 999c1d2b92d5d71565c67854aad60e9c gcc/jit/docs/examples/tut04-toyvm/factorial.toy efe1998ded06ac3721d9ced4d96056f0 gcc/jit/docs/examples/tut04-toyvm/fibonacci.toy ! ae0ac29af361438e8685d31c71f90b2c gcc/jit/docs/examples/tut04-toyvm/toyvm.c ! 8025e30a5a8e3e1830084243004e6a70 gcc/jit/docs/examples/tut04-toyvm/toyvm.cc 3cbe9daf70398730ee60aa4caf2fc200 gcc/jit/docs/examples/tut05-bf.c 0cd2786bc335e1864971d23fc9a144b7 gcc/jit/docs/index.rst 011aca92c584ea08ce925e7ac431c80b gcc/jit/docs/internals/index.rst --- 5937,5944 ---- 6369d2b07520cb0fc9d14082499f6be2 gcc/jit/docs/examples/tut04-toyvm/Makefile 999c1d2b92d5d71565c67854aad60e9c gcc/jit/docs/examples/tut04-toyvm/factorial.toy efe1998ded06ac3721d9ced4d96056f0 gcc/jit/docs/examples/tut04-toyvm/fibonacci.toy ! f73ab292e47c142f5d6513c511c17cce gcc/jit/docs/examples/tut04-toyvm/toyvm.c ! bc97ade927d36b7b27b81ca2dc40d581 gcc/jit/docs/examples/tut04-toyvm/toyvm.cc 3cbe9daf70398730ee60aa4caf2fc200 gcc/jit/docs/examples/tut05-bf.c 0cd2786bc335e1864971d23fc9a144b7 gcc/jit/docs/index.rst 011aca92c584ea08ce925e7ac431c80b gcc/jit/docs/internals/index.rst *************** e392cf227ebf265d2cf6c0b91ff1ec63 gcc/ji *** 5961,5969 **** edf7af6ea819ca9e8808709a392fc48d gcc/jit/jit-builtins.c 74c00b718035eddae618e017e314fa0d gcc/jit/jit-builtins.h c11779a47ed270de47ed2a6154896ab2 gcc/jit/jit-common.h b6d839f613d7ba1e2049ece1005e6d9d gcc/jit/jit-logging.c 7cba46ec14b5fdbeb1b2afaa60343ae7 gcc/jit/jit-logging.h ! bb210f226e0cf65442cde3139534b6fd gcc/jit/jit-playback.c 986c94b3e1f28d1f08449933a2662721 gcc/jit/jit-playback.h 115de2434f9dac9fe426ec052bb0e781 gcc/jit/jit-recording.c 01b40c0320a54733e62039338f3329f1 gcc/jit/jit-recording.h --- 5967,5976 ---- edf7af6ea819ca9e8808709a392fc48d gcc/jit/jit-builtins.c 74c00b718035eddae618e017e314fa0d gcc/jit/jit-builtins.h c11779a47ed270de47ed2a6154896ab2 gcc/jit/jit-common.h + 1b75c79801ee8999f5470885283c2668 gcc/jit/jit-dejagnu.h b6d839f613d7ba1e2049ece1005e6d9d gcc/jit/jit-logging.c 7cba46ec14b5fdbeb1b2afaa60343ae7 gcc/jit/jit-logging.h ! 3430fd3ac8108d906e4af86cab18fc69 gcc/jit/jit-playback.c 986c94b3e1f28d1f08449933a2662721 gcc/jit/jit-playback.h 115de2434f9dac9fe426ec052bb0e781 gcc/jit/jit-recording.c 01b40c0320a54733e62039338f3329f1 gcc/jit/jit-recording.h *************** bdae38125e17ccdbcbd3740ff81dfc29 gcc/lc *** 5994,6008 **** 30b8e3e407f46ad2cb39260ec4bab9f6 gcc/lock-and-run.sh a09713569704def17fe9b152b78ba9cc gcc/loop-doloop.c 9f6ba5d7d3c36c5fbe0b75e45c60a201 gcc/loop-init.c ! 1c61f23d635715ed6a13b4e503483976 gcc/loop-invariant.c 6dcb3e50702c1fe35fd4c4afc5d49fc5 gcc/loop-iv.c e44196ccae22e5b571a6fc06b0fdda4b gcc/loop-unroll.c 4e3d14a2bb20bbfa0b2d7c513a99193d gcc/loop-unroll.h 238b4457d72f8b584d6d0aa811cd3184 gcc/lower-subreg.c 643bcadd79bc8430146b2c58a5fbdf02 gcc/lower-subreg.h ! 82ed779f8cf362b55236c12723aac541 gcc/lra-assigns.c c2e5571dfeb8184312575c2fd39a0c13 gcc/lra-coalesce.c ! 24e64007b5c904a15926fce970066a7f gcc/lra-constraints.c 4ab369c9de8d32d33099df49e6d9d1fb gcc/lra-eliminations.c 5980c281076ead34e5f20748bdaff2c0 gcc/lra-int.h 39882530244da95ee68fcf8642a261ad gcc/lra-lives.c --- 6001,6015 ---- 30b8e3e407f46ad2cb39260ec4bab9f6 gcc/lock-and-run.sh a09713569704def17fe9b152b78ba9cc gcc/loop-doloop.c 9f6ba5d7d3c36c5fbe0b75e45c60a201 gcc/loop-init.c ! 2a163cd72274af8bcfbce0e199266237 gcc/loop-invariant.c 6dcb3e50702c1fe35fd4c4afc5d49fc5 gcc/loop-iv.c e44196ccae22e5b571a6fc06b0fdda4b gcc/loop-unroll.c 4e3d14a2bb20bbfa0b2d7c513a99193d gcc/loop-unroll.h 238b4457d72f8b584d6d0aa811cd3184 gcc/lower-subreg.c 643bcadd79bc8430146b2c58a5fbdf02 gcc/lower-subreg.h ! e88f6ce06ede4edda0af58c2ba7077cd gcc/lra-assigns.c c2e5571dfeb8184312575c2fd39a0c13 gcc/lra-coalesce.c ! a6d81472aa9380f911642c153c4f493f gcc/lra-constraints.c 4ab369c9de8d32d33099df49e6d9d1fb gcc/lra-eliminations.c 5980c281076ead34e5f20748bdaff2c0 gcc/lra-int.h 39882530244da95ee68fcf8642a261ad gcc/lra-lives.c *************** e891b7eb2f83b1624be70538a0e0d189 gcc/lt *** 6020,6039 **** db7cd7675793a8855cd0550edb79177a gcc/lto-streamer-in.c 40a5c9904f9b80ca7236bd30c0679296 gcc/lto-streamer-out.c 5ad327021166fdb0ecad2661fbca70be gcc/lto-streamer.c ! 5a903cbe75cdea50d6c4d8ff5365b860 gcc/lto-streamer.h 8a45ce855be3f79e24add330a8fe9755 gcc/lto-wrapper.c ! 94be7625045cdf956b088012db5b6bd0 gcc/lto/ChangeLog d5bb42eff522196004d91ca34cfaa49b gcc/lto/Make-lang.in c1fff5b6c2a7f236e55f0d3b5cb28062 gcc/lto/common.c 71bd5c32de47c74a39491375ef7f71c5 gcc/lto/common.h 38e6a5e2f440f66a514fd524aeb49bc6 gcc/lto/config-lang.in f9f8e7b721f11cb6fda71038fa294211 gcc/lto/lang-specs.h ef551b8e8a4e1a4744f051f802241208 gcc/lto/lang.opt ! 5307cc563ba05b9628bcfcd20c7b008b gcc/lto/lto-common.c 42ff60fe4976af063eeac9ef4237318e gcc/lto/lto-common.h 618e4b7d8d607a603d4b29c305bf420a gcc/lto/lto-dump.c eee2b801c9d9d5815a706f5230cf4543 gcc/lto/lto-lang.c ! 32650b324a62c273d74bce56bdf24eb8 gcc/lto/lto-object.c 6b9c32795380fd112bdd9382d90bb966 gcc/lto/lto-partition.c 11275487d3fdff451ea5d49bac49948e gcc/lto/lto-partition.h a2ca7044cc53910baa4e330728493648 gcc/lto/lto-symtab.c --- 6027,6046 ---- db7cd7675793a8855cd0550edb79177a gcc/lto-streamer-in.c 40a5c9904f9b80ca7236bd30c0679296 gcc/lto-streamer-out.c 5ad327021166fdb0ecad2661fbca70be gcc/lto-streamer.c ! c75e2adeba7a17a10efdd07b0b9113b2 gcc/lto-streamer.h 8a45ce855be3f79e24add330a8fe9755 gcc/lto-wrapper.c ! 8d9b3cfbdf846260bb3bde211b9b30a9 gcc/lto/ChangeLog d5bb42eff522196004d91ca34cfaa49b gcc/lto/Make-lang.in c1fff5b6c2a7f236e55f0d3b5cb28062 gcc/lto/common.c 71bd5c32de47c74a39491375ef7f71c5 gcc/lto/common.h 38e6a5e2f440f66a514fd524aeb49bc6 gcc/lto/config-lang.in f9f8e7b721f11cb6fda71038fa294211 gcc/lto/lang-specs.h ef551b8e8a4e1a4744f051f802241208 gcc/lto/lang.opt ! db5b324cd51a636eeccab2d228e5999f gcc/lto/lto-common.c 42ff60fe4976af063eeac9ef4237318e gcc/lto/lto-common.h 618e4b7d8d607a603d4b29c305bf420a gcc/lto/lto-dump.c eee2b801c9d9d5815a706f5230cf4543 gcc/lto/lto-lang.c ! 6c3902a905540535829c60e3e71d211a gcc/lto/lto-object.c 6b9c32795380fd112bdd9382d90bb966 gcc/lto/lto-partition.c 11275487d3fdff451ea5d49bac49948e gcc/lto/lto-partition.h a2ca7044cc53910baa4e330728493648 gcc/lto/lto-symtab.c *************** a3d7fa7b491b3c623e8ad32109a8af10 gcc/lt *** 6044,6050 **** c0598ad047996b6b546ae37ac7961415 gcc/machmode.def 9ed2f72363a926d2750418ef5c5cf728 gcc/machmode.h 1e3feea915d17412b3e57a55c5a785e8 gcc/main.c ! 40a45b66c6047d2742f9e9a5edefa078 gcc/match.pd 4b41ba6f5c2972934928d702e6ab5c99 gcc/mcf.c 12ed5d7cdbe37098551333c0d54e68ad gcc/mem-stats-traits.h d36e5c61d9079e93d8844808c4280f3b gcc/mem-stats.h --- 6051,6057 ---- c0598ad047996b6b546ae37ac7961415 gcc/machmode.def 9ed2f72363a926d2750418ef5c5cf728 gcc/machmode.h 1e3feea915d17412b3e57a55c5a785e8 gcc/main.c ! 98f9f222d0c9d650062597b00dc2c409 gcc/match.pd 4b41ba6f5c2972934928d702e6ab5c99 gcc/mcf.c 12ed5d7cdbe37098551333c0d54e68ad gcc/mem-stats-traits.h d36e5c61d9079e93d8844808c4280f3b gcc/mem-stats.h *************** f48ef213fac95cd91d953e912e2353c5 gcc/mk *** 6055,6063 **** 7e3e688e0b70e4fd2f9ef2132d5a1ac6 gcc/mode-classes.def ffb6709ef6e104f353edb09bc1651596 gcc/mode-switching.c a98e50c063ce3f17ab72abe936f7f210 gcc/modulo-sched.c ! 182920edccd8d6d9f2ddfe9b0c117876 gcc/multiple_target.c f82c4a6b9621c8883a3eab86f0dd3768 gcc/mux-utils.h ! 4a32fd78cf46614d61122c95d9adc598 gcc/objc/ChangeLog 8a483da76277f1107ee3864484da7cfd gcc/objc/Make-lang.in 81acf2f4cbd8edc8581291e0c02e76f9 gcc/objc/config-lang.in 8ca11b02b2a9e21229f11063fb154aee gcc/objc/lang-specs.h --- 6062,6070 ---- 7e3e688e0b70e4fd2f9ef2132d5a1ac6 gcc/mode-classes.def ffb6709ef6e104f353edb09bc1651596 gcc/mode-switching.c a98e50c063ce3f17ab72abe936f7f210 gcc/modulo-sched.c ! 9b2e40398cd8e086e71e5f469b2799b7 gcc/multiple_target.c f82c4a6b9621c8883a3eab86f0dd3768 gcc/mux-utils.h ! d9ee201dfb3a9b7b93a211bfb3c65015 gcc/objc/ChangeLog 8a483da76277f1107ee3864484da7cfd gcc/objc/Make-lang.in 81acf2f4cbd8edc8581291e0c02e76f9 gcc/objc/config-lang.in 8ca11b02b2a9e21229f11063fb154aee gcc/objc/lang-specs.h *************** efc719a9d69c08a88c9ca68c3d91dea6 gcc/ob *** 6076,6082 **** 3c7320cdc77c5d2c8ad240f498e04b42 gcc/objc/objc-runtime-shared-support.c 544d016401099d9ba39ea7ddbce01333 gcc/objc/objc-runtime-shared-support.h 88490072a5d5ef2282898959e8e55de1 gcc/objc/objc-tree.def ! b2647e65174e238f4770d49e4b84639d gcc/objcp/ChangeLog 8268a2fcb604c22c75202509b0338862 gcc/objcp/Make-lang.in add0ba454d5eb83cd065d29d3f6b676a gcc/objcp/config-lang.in fbbceaf466354af7b3851fc32a591c77 gcc/objcp/lang-specs.h --- 6083,6089 ---- 3c7320cdc77c5d2c8ad240f498e04b42 gcc/objc/objc-runtime-shared-support.c 544d016401099d9ba39ea7ddbce01333 gcc/objc/objc-runtime-shared-support.h 88490072a5d5ef2282898959e8e55de1 gcc/objc/objc-tree.def ! 6476680a7d05a886660bcc342e25222b gcc/objcp/ChangeLog 8268a2fcb604c22c75202509b0338862 gcc/objcp/Make-lang.in add0ba454d5eb83cd065d29d3f6b676a gcc/objcp/config-lang.in fbbceaf466354af7b3851fc32a591c77 gcc/objcp/lang-specs.h *************** a7a0bf03aa321b1e7cc047dd65c275c4 gcc/ob *** 6087,6095 **** 7b56d1dcf3fd603f94c47c1cf6f3841a gcc/omp-builtins.def 079e9f2c902b70e61e63d018d5de4e95 gcc/omp-expand.c acdf170f52ac34b2d16d7fc8d784656e gcc/omp-expand.h ! 14463d04236a263151e6f2b4f030e49b gcc/omp-general.c 9b7e003d231715f982f2185c6971389b gcc/omp-general.h ! 3da176b2f80ed4a7a10672eda72cb5e9 gcc/omp-low.c c8a35605fb251282ba6b62d2877c47ad gcc/omp-low.h 968555a5938f5016374fc7d6fe116877 gcc/omp-oacc-kernels-decompose.cc 655ce306b6a6a7a3eafc559e46ec1feb gcc/omp-offload.c --- 6094,6102 ---- 7b56d1dcf3fd603f94c47c1cf6f3841a gcc/omp-builtins.def 079e9f2c902b70e61e63d018d5de4e95 gcc/omp-expand.c acdf170f52ac34b2d16d7fc8d784656e gcc/omp-expand.h ! 4b91eade4a6fc39a4a1bee3e8e7187c3 gcc/omp-general.c 9b7e003d231715f982f2185c6971389b gcc/omp-general.h ! 8c065ca396f861e8e44c67a018f1ad88 gcc/omp-low.c c8a35605fb251282ba6b62d2877c47ad gcc/omp-low.h 968555a5938f5016374fc7d6fe116877 gcc/omp-oacc-kernels-decompose.cc 655ce306b6a6a7a3eafc559e46ec1feb gcc/omp-offload.c *************** df80e7a26a0f6adb5d02ff9b18699a2a gcc/op *** 6108,6116 **** dcb81b8ac4afdc7cb3fd19ea5e279e5d gcc/optabs-libfuncs.h 3365c04d909aa83e33bf9f6a5de76028 gcc/optabs-query.c 3d45bbec835bec871b2db466d0150a4e gcc/optabs-query.h ! 61e13119f6a364afebb3707250f4e681 gcc/optabs-tree.c 6793a28de0c56876c2112b5d16023055 gcc/optabs-tree.h ! 76d42c8af725bc8fd95df88104ae4184 gcc/optabs.c b53437741beaf4c99ae67bb5623581dc gcc/optabs.def bb7dd65101e190027bd7f5d00537d338 gcc/optabs.h 87a1a5bcddba75fc52ca8e27664704dc gcc/optc-gen.awk --- 6115,6123 ---- dcb81b8ac4afdc7cb3fd19ea5e279e5d gcc/optabs-libfuncs.h 3365c04d909aa83e33bf9f6a5de76028 gcc/optabs-query.c 3d45bbec835bec871b2db466d0150a4e gcc/optabs-query.h ! 833eb38b58c81cfbf059cbbb6965b4c7 gcc/optabs-tree.c 6793a28de0c56876c2112b5d16023055 gcc/optabs-tree.h ! 281198130b8e66f39c5bdc3a00962acf gcc/optabs.c b53437741beaf4c99ae67bb5623581dc gcc/optabs.def bb7dd65101e190027bd7f5d00537d338 gcc/optabs.h 87a1a5bcddba75fc52ca8e27664704dc gcc/optc-gen.awk *************** e49edd063f36ca8da3c7e467dd2e72bb gcc/op *** 6128,6172 **** 529cc4ae108023927cb547f8ca02217a gcc/ordered-hash-map-tests.cc b8aef1accc1173ea4c812bb38b6d838c gcc/ordered-hash-map.h 5a1e78bb30f4fce7f27617243badc49f gcc/output.h ! 201287be8d5d5521ddad43db7104b6ee gcc/params.opt a20c703e91812007ab8b94eec673c02c gcc/pass_manager.h e733e0309389f9d07184e98b6ad9b536 gcc/passes.c 79107250ba3fffee8a8c1198fac08f35 gcc/passes.def f09db14eb185fcdd795ff7e690b607a3 gcc/plugin.c 3cc53b8d5f30aebe3f70c00e1bc4929e gcc/plugin.def 7a5190d86531b8d3fa67e8cea7db5d60 gcc/plugin.h ! 8b314fd232c6a329502a2906ce4092b4 gcc/po/ChangeLog edbad8e043a44996d844fa6a7965ea6f gcc/po/EXCLUDES f2e76d86dce1f72d4adc901bce318410 gcc/po/be.gmo ! cda79496f24eb88ef5e329facc7c3022 gcc/po/be.po 680b85df73c3595a24203e46470cab71 gcc/po/da.gmo ! 7a0ae468f025415c5f6ff611617cee58 gcc/po/da.po ! 401e5886bbaef3b0b1fb059f3f5c7729 gcc/po/de.gmo ! 6355c1a5fc964ba5917e2e38a67aff15 gcc/po/de.po 189b9d1af87594807b0d0e10036a64c3 gcc/po/el.gmo ! f82c637250cae483eee1f14ec2b5405b gcc/po/el.po bf440aba8eb74a05312b58ccf530d289 gcc/po/es.gmo ! 9d4ffd94b9d87a3d8ca89564c361221f gcc/po/es.po 7864bb17dac2262d471e713d8281391d gcc/po/exgettext 13d326d68d0562189cef7984da95acfa gcc/po/fi.gmo ! 6fb1578bc7ab6b21be4c63305c41c472 gcc/po/fi.po ! cddb0ea8254925cb8dbff431bd52f21f gcc/po/fr.gmo ! 610f76da24005a3103568a4cd53de5c1 gcc/po/fr.po 772351e0c50cb32d0067a5ce96df6dde gcc/po/gcc.pot 93a1b38e65e3c610a790c05f56e0b4c7 gcc/po/hr.gmo ! 4dc24638e3121bba3249f60db59dc700 gcc/po/hr.po 00ce488da37914ae93c162110da8fc42 gcc/po/id.gmo ! 9fd8def010cd83ffe22273242e5580ec gcc/po/id.po 7f926ece8835398e225eeb2afe24873e gcc/po/ja.gmo ! 698c44e169b32436013e843f3912cd34 gcc/po/ja.po 53742057e3aba5de16019e5240ccf1cf gcc/po/nl.gmo ! d161358956b69e9cd403c88ca5624591 gcc/po/nl.po 7838d5c61226e7bbcd591aa0b1ec6d91 gcc/po/ru.gmo ! b18966f6129d54eacc6a687631ef097d gcc/po/ru.po 8bc081540eb1f847686363280275c751 gcc/po/sr.gmo ! 4aaf813ec42d148a0c159c625f574154 gcc/po/sr.po ! df6bca70ea8ac4949dcb89242dcceb39 gcc/po/sv.gmo ! 5c693ef27a9f6484b32281d31565a0b8 gcc/po/sv.po 7e8b7655e543e71878170717144160d5 gcc/po/tr.gmo 133ea5f00a61873be00939a665dcd243 gcc/po/tr.po 31eb9b0da58652b61873eaf3e518af8f gcc/po/uk.gmo --- 6135,6179 ---- 529cc4ae108023927cb547f8ca02217a gcc/ordered-hash-map-tests.cc b8aef1accc1173ea4c812bb38b6d838c gcc/ordered-hash-map.h 5a1e78bb30f4fce7f27617243badc49f gcc/output.h ! 02d290c71b380e6229207c1d11cea4a9 gcc/params.opt a20c703e91812007ab8b94eec673c02c gcc/pass_manager.h e733e0309389f9d07184e98b6ad9b536 gcc/passes.c 79107250ba3fffee8a8c1198fac08f35 gcc/passes.def f09db14eb185fcdd795ff7e690b607a3 gcc/plugin.c 3cc53b8d5f30aebe3f70c00e1bc4929e gcc/plugin.def 7a5190d86531b8d3fa67e8cea7db5d60 gcc/plugin.h ! 7cd32b134f7041026af3fd0f94e9cfb7 gcc/po/ChangeLog edbad8e043a44996d844fa6a7965ea6f gcc/po/EXCLUDES f2e76d86dce1f72d4adc901bce318410 gcc/po/be.gmo ! ac4e50148300959070bbe8161dc44c3d gcc/po/be.po 680b85df73c3595a24203e46470cab71 gcc/po/da.gmo ! cd209a61ad16e7cd931a0de9463cc2c8 gcc/po/da.po ! 5652feae38920ea7c536d1aabecaf6b4 gcc/po/de.gmo ! 819c90fd3d4e90e218cb106d8f0fffa3 gcc/po/de.po 189b9d1af87594807b0d0e10036a64c3 gcc/po/el.gmo ! d33491ab49bccbbed36414a307dc2e2c gcc/po/el.po bf440aba8eb74a05312b58ccf530d289 gcc/po/es.gmo ! bd9b9853259dd7b907e88909b289310d gcc/po/es.po 7864bb17dac2262d471e713d8281391d gcc/po/exgettext 13d326d68d0562189cef7984da95acfa gcc/po/fi.gmo ! 6497c49deafad1bd02158573a715d662 gcc/po/fi.po ! bae835b73696971851e5ab5e4718fd16 gcc/po/fr.gmo ! ff5fcbca705ab819895923a776364dd9 gcc/po/fr.po 772351e0c50cb32d0067a5ce96df6dde gcc/po/gcc.pot 93a1b38e65e3c610a790c05f56e0b4c7 gcc/po/hr.gmo ! bf405571bd70e4e74e61e467a5b26edf gcc/po/hr.po 00ce488da37914ae93c162110da8fc42 gcc/po/id.gmo ! 9215fff2c92c12bcc03b88595bae9f46 gcc/po/id.po 7f926ece8835398e225eeb2afe24873e gcc/po/ja.gmo ! a7fe213c8e9b044ffdfa020820f18b3d gcc/po/ja.po 53742057e3aba5de16019e5240ccf1cf gcc/po/nl.gmo ! 17c967325d3bdb88a0cdf4524a0dc45f gcc/po/nl.po 7838d5c61226e7bbcd591aa0b1ec6d91 gcc/po/ru.gmo ! 69df1831786980800afb69beff6a592b gcc/po/ru.po 8bc081540eb1f847686363280275c751 gcc/po/sr.gmo ! 94f8d433e2a9cc81b713fd1a43b98247 gcc/po/sr.po ! e9194b8f95d23ce1c7b794a47eb9a182 gcc/po/sv.gmo ! 3eed1ac86eb61ee32f3ed9545a60c849 gcc/po/sv.po 7e8b7655e543e71878170717144160d5 gcc/po/tr.gmo 133ea5f00a61873be00939a665dcd243 gcc/po/tr.po 31eb9b0da58652b61873eaf3e518af8f gcc/po/uk.gmo *************** df6bca70ea8ac4949dcb89242dcceb39 gcc/po *** 6174,6182 **** 74badc940a2b0fe1c95de867f9ff00ea gcc/po/vi.gmo 9c6dcdbb9403d9ba3f850cd27abbffe4 gcc/po/vi.po b9fee1bc17d127675ad7e0c002fb483d gcc/po/zh_CN.gmo ! f604fe0ff1bcf583afb75bf7f8d263cc gcc/po/zh_CN.po 2ce773282dbd8183473fa94acc97bcc1 gcc/po/zh_TW.gmo ! d5160ddf0ca4c00edcc5017dcd405b02 gcc/po/zh_TW.po b5cf217de74bfb4c25a64c52994cfb70 gcc/poly-int-types.h 0799d24ba449e6a51e2fd9ed43c2c895 gcc/poly-int.h 64ee81daa4eca1addeddac912f6da05f gcc/postreload-gcse.c --- 6181,6189 ---- 74badc940a2b0fe1c95de867f9ff00ea gcc/po/vi.gmo 9c6dcdbb9403d9ba3f850cd27abbffe4 gcc/po/vi.po b9fee1bc17d127675ad7e0c002fb483d gcc/po/zh_CN.gmo ! 0a73c42c60500ceaecad47f35d392794 gcc/po/zh_CN.po 2ce773282dbd8183473fa94acc97bcc1 gcc/po/zh_TW.gmo ! a7e9bd5354e5a900313112268fece3ed gcc/po/zh_TW.po b5cf217de74bfb4c25a64c52994cfb70 gcc/poly-int-types.h 0799d24ba449e6a51e2fd9ed43c2c895 gcc/poly-int.h 64ee81daa4eca1addeddac912f6da05f gcc/postreload-gcse.c *************** c02193da75688acb66896e09eb244741 gcc/re *** 6206,6212 **** 2de4ba78c5390a42fd0329c2be88b8c2 gcc/read-rtl-function.c ea3522c1c481b20f1132e7405a14ac3f gcc/read-rtl-function.h f16337b3cb06bf956e8b9881213c9ca6 gcc/read-rtl.c ! b6a7e3c07ce91ee0243c2a016e2430d4 gcc/real.c 2a8c2fe81f01afe8b43a1f6a07743fd1 gcc/real.h 3cfbe5c8f6f8cb8aeeb10c0c20847942 gcc/realmpfr.c 1336428ec3de403ee3a67a32e46a2950 gcc/realmpfr.h --- 6213,6219 ---- 2de4ba78c5390a42fd0329c2be88b8c2 gcc/read-rtl-function.c ea3522c1c481b20f1132e7405a14ac3f gcc/read-rtl-function.h f16337b3cb06bf956e8b9881213c9ca6 gcc/read-rtl.c ! 9599f1d43ca1293cc811368da86d01a3 gcc/real.c 2a8c2fe81f01afe8b43a1f6a07743fd1 gcc/real.h 3cfbe5c8f6f8cb8aeeb10c0c20847942 gcc/realmpfr.c 1336428ec3de403ee3a67a32e46a2950 gcc/realmpfr.h *************** db1c9b9d3057a97aba76c18fa6e65fe3 gcc/re *** 6223,6229 **** cbb3ec9de2848e74201ddcf7756e6912 gcc/regs.h b4f529c79dd2003cb163fccdd4d12a8c gcc/regset.h 112f438c4bd1a37cd81243afadaf37b1 gcc/regstat.c ! 84939526df0225ab3d08d6c879686b42 gcc/reload.c 3d85d06e0f7956157e20afc1f42fcc4c gcc/reload.h fc737be9f0a22313bce027bb53172bbc gcc/reload1.c 0f882f5afe61c8f2d0f0b96fce3cd1d1 gcc/reorg.c --- 6230,6236 ---- cbb3ec9de2848e74201ddcf7756e6912 gcc/regs.h b4f529c79dd2003cb163fccdd4d12a8c gcc/regset.h 112f438c4bd1a37cd81243afadaf37b1 gcc/regstat.c ! 52ee4cbbdfe3502a793c22f6c717d543 gcc/reload.c 3d85d06e0f7956157e20afc1f42fcc4c gcc/reload.h fc737be9f0a22313bce027bb53172bbc gcc/reload1.c 0f882f5afe61c8f2d0f0b96fce3cd1d1 gcc/reorg.c *************** e1595b6b1a7c703394640bffc7357aa5 gcc/rt *** 6252,6260 **** 105bec65bd605c46e6821361bf1e5708 gcc/rtl-ssa/member-fns.inl fc0c483ef35b0916889eb450dec30684 gcc/rtl-ssa/movement.h 6ee04c4c4fb71b581e0a42e7b5a7a73c gcc/rtl-tests.c ! 58bca7bde7fb084efb6dfd6ce87c9dcc gcc/rtl.c 6e2727b9e2075fddcf252ad25dc6d604 gcc/rtl.def ! 36fd5e447e6324c0bac82d65b5b365a3 gcc/rtl.h f1c9464a3f3b95e046a84ab7490fa640 gcc/rtlanal.c 394592e1cbc71b6283d230cf895f1248 gcc/rtlanal.h 600140db9bd5eefa41bca935dcc1a901 gcc/rtlhash.c --- 6259,6267 ---- 105bec65bd605c46e6821361bf1e5708 gcc/rtl-ssa/member-fns.inl fc0c483ef35b0916889eb450dec30684 gcc/rtl-ssa/movement.h 6ee04c4c4fb71b581e0a42e7b5a7a73c gcc/rtl-tests.c ! dea69c3608ee51d947ef5ac67c2ca95b gcc/rtl.c 6e2727b9e2075fddcf252ad25dc6d604 gcc/rtl.def ! 7e6d263d2294090c692ce74d323d8da7 gcc/rtl.h f1c9464a3f3b95e046a84ab7490fa640 gcc/rtlanal.c 394592e1cbc71b6283d230cf895f1248 gcc/rtlanal.h 600140db9bd5eefa41bca935dcc1a901 gcc/rtlhash.c *************** d756cda29fd0d41dd981deb94691ead6 gcc/ru *** 6267,6273 **** 849a7f68c59cf805134725f6d573a12a gcc/run-rtl-passes.h 88681762ad1b72a93cd61d0ceb6922d4 gcc/sancov.c 30e67ef52139f9ecf2b0d6888b611676 gcc/sanitizer.def ! 20f2980f4e9da1cc5e45710ad173a56c gcc/sanopt.c 652586958a380c79d7c38c0636cb92cf gcc/sbitmap.c dd08726afeecf49aad987d4602b45083 gcc/sbitmap.h 5ba010d53c8923a1bfac3c71876ec3cf gcc/sched-deps.c --- 6274,6280 ---- 849a7f68c59cf805134725f6d573a12a gcc/run-rtl-passes.h 88681762ad1b72a93cd61d0ceb6922d4 gcc/sancov.c 30e67ef52139f9ecf2b0d6888b611676 gcc/sanitizer.def ! e62a73311b504f4617cb975542b8bfce gcc/sanopt.c 652586958a380c79d7c38c0636cb92cf gcc/sbitmap.c dd08726afeecf49aad987d4602b45083 gcc/sbitmap.h 5ba010d53c8923a1bfac3c71876ec3cf gcc/sched-deps.c *************** ca6c4f01ecb98f274836e166b200acdb gcc/se *** 6290,6299 **** 213896722fa74c4884070001b3a930a2 gcc/sese.c 256d72469217c4294582199ff0064ae6 gcc/sese.h 29fbb2d830b49fedf1c7c03f9afdb693 gcc/shortest-paths.h ! 5a6f3e0a703dafe4f1c3b50ce45ba3a3 gcc/shrink-wrap.c 9897b577c2ae3dd2e97acbc7f9997aa1 gcc/shrink-wrap.h 76ee65471a4687e0cc302ecc0eabc3ed gcc/signop.h ! 6de7e683f970e27c9f4bf2c69fff3868 gcc/simplify-rtx.c d725c1ed28fee55321c1c32911d4a901 gcc/sort.cc 547559932032c53f749936f4ba29219d gcc/sparseset.c b20b0d6450f782b45d5fc19a0f3afc6b gcc/sparseset.h --- 6297,6306 ---- 213896722fa74c4884070001b3a930a2 gcc/sese.c 256d72469217c4294582199ff0064ae6 gcc/sese.h 29fbb2d830b49fedf1c7c03f9afdb693 gcc/shortest-paths.h ! f5280ccc5a3572f730e3e9f2d666a2f2 gcc/shrink-wrap.c 9897b577c2ae3dd2e97acbc7f9997aa1 gcc/shrink-wrap.h 76ee65471a4687e0cc302ecc0eabc3ed gcc/signop.h ! 4fb4cd68fe24ab86377885622438650d gcc/simplify-rtx.c d725c1ed28fee55321c1c32911d4a901 gcc/sort.cc 547559932032c53f749936f4ba29219d gcc/sparseset.c b20b0d6450f782b45d5fc19a0f3afc6b gcc/sparseset.h *************** ba17f60121ba1b5f039f9dc1078b46f8 gcc/st *** 6328,6347 **** bedb42e729e5bd698d0861dc145266fb gcc/symtab-clones.h 8a9324974824a4c433f0d463bbfb69ec gcc/symtab-thunks.cc b5513d86b09f522ec7305a04036d4f3b gcc/symtab-thunks.h ! 029042861500eb0a8f1e377d8df298d2 gcc/symtab.c f013ee71feefa0d9ab11d092dab3f62c gcc/sync-builtins.def ! 91833cabb7e6cf8d404d225be6b34c76 gcc/system.h aba120075a77f6e309a720d322ee9eed gcc/target-def.h 292e1d752e2b328261c6a201aeb21faa gcc/target-globals.c 3e5db4530f6645ebcf4b051d11524230 gcc/target-globals.h 5ccf494f338932b80bf5f93892dd28e0 gcc/target-hooks-macros.h d55ca9dbaab4bc389a7da2b52a7ccd04 gcc/target-insns.def ! 4d01e5b18c408653b54b4b0c1bf8a4e4 gcc/target.def b3739b072aa976c2f9f9825ac6d07c80 gcc/target.h b71dcf011f9b95f3a705da052a95caf9 gcc/targhooks.c 104445ec4cf950b087d249c268d36edc gcc/targhooks.h f39fcaa8197187283ccfed40107b426d gcc/testsuite/.gitattributes ! 675d2fe5d11d9b3fb312a154120f335e gcc/testsuite/ChangeLog 862f04afbd87da2cc6bc432c3f28430f gcc/testsuite/ChangeLog-1993-2007 029a5d8dacd25eb5d4711452ac448e5b gcc/testsuite/ChangeLog-2008 13ac28c41d51b66b4ec40dba6bd50f39 gcc/testsuite/ChangeLog-2009 --- 6335,6354 ---- bedb42e729e5bd698d0861dc145266fb gcc/symtab-clones.h 8a9324974824a4c433f0d463bbfb69ec gcc/symtab-thunks.cc b5513d86b09f522ec7305a04036d4f3b gcc/symtab-thunks.h ! 1552f6db8056e30c357dfeec0ecdf6d0 gcc/symtab.c f013ee71feefa0d9ab11d092dab3f62c gcc/sync-builtins.def ! 487aa89152c81610d6b03aeae45f0edb gcc/system.h aba120075a77f6e309a720d322ee9eed gcc/target-def.h 292e1d752e2b328261c6a201aeb21faa gcc/target-globals.c 3e5db4530f6645ebcf4b051d11524230 gcc/target-globals.h 5ccf494f338932b80bf5f93892dd28e0 gcc/target-hooks-macros.h d55ca9dbaab4bc389a7da2b52a7ccd04 gcc/target-insns.def ! 7651332c9a341d2dd3decbd6a938d857 gcc/target.def b3739b072aa976c2f9f9825ac6d07c80 gcc/target.h b71dcf011f9b95f3a705da052a95caf9 gcc/targhooks.c 104445ec4cf950b087d249c268d36edc gcc/targhooks.h f39fcaa8197187283ccfed40107b426d gcc/testsuite/.gitattributes ! 27401e67713b44e67fb8e8100e2ef209 gcc/testsuite/ChangeLog 862f04afbd87da2cc6bc432c3f28430f gcc/testsuite/ChangeLog-1993-2007 029a5d8dacd25eb5d4711452ac448e5b gcc/testsuite/ChangeLog-2008 13ac28c41d51b66b4ec40dba6bd50f39 gcc/testsuite/ChangeLog-2009 *************** d57f0b6d660c8299b95ba02b346d2d76 gcc/te *** 9128,9146 **** 30f55184465e5031498ef7eb0d2b75e4 gcc/testsuite/c-c++-common/Wshift-count-negative-2.c d425900c0046df4dd9d326f6c8eb2d67 gcc/testsuite/c-c++-common/Wshift-count-overflow-1.c 7f7dfe9827844964aa5913a0df77bfda gcc/testsuite/c-c++-common/Wshift-count-overflow-2.c ! b4259718f4cfc2633ca66fce82e19921 gcc/testsuite/c-c++-common/Wshift-negative-value-1.c ! 9c17780b7734fb8edd8d6132d7571dea gcc/testsuite/c-c++-common/Wshift-negative-value-2.c ! 9cde469967b17467bf200952edf9872c gcc/testsuite/c-c++-common/Wshift-negative-value-3.c ! 26642fe2d9af413debdae5db59b1f3ff gcc/testsuite/c-c++-common/Wshift-negative-value-4.c 4eb245cdd007f951220ef4ce4752393f gcc/testsuite/c-c++-common/Wshift-negative-value-5.c 2ec4a0079f61044cd2556d10f9086c01 gcc/testsuite/c-c++-common/Wshift-negative-value-6.c ! 23215ac7f9da39dedf899636af7edacc gcc/testsuite/c-c++-common/Wshift-overflow-1.c ! 83d4f8080bdfbd062809fe67c5263ebe gcc/testsuite/c-c++-common/Wshift-overflow-2.c 9c03a6a952358fcf4ea17c9f5770eb36 gcc/testsuite/c-c++-common/Wshift-overflow-3.c ccf9803376f18fed70c0b2b90633ddb4 gcc/testsuite/c-c++-common/Wshift-overflow-4.c ! ba76c2340f7c7f9d54120447cf44b260 gcc/testsuite/c-c++-common/Wshift-overflow-5.c ! f8b8dcb9f64cd4f1158a36e44cdf76b7 gcc/testsuite/c-c++-common/Wshift-overflow-6.c ! d2ebf4f8689ab32e5be23f1ebf97667f gcc/testsuite/c-c++-common/Wshift-overflow-7.c 2095424b6b86a7ddbae9c94c16fa2157 gcc/testsuite/c-c++-common/Wsign-compare-1.c 40bc1e540d092c06d14dc9842ee9cd03 gcc/testsuite/c-c++-common/Wsign-conversion-1.c c7eebf2a6120dfecf1a6ae7de1f49694 gcc/testsuite/c-c++-common/Wsizeof-array-div1.c --- 9135,9162 ---- 30f55184465e5031498ef7eb0d2b75e4 gcc/testsuite/c-c++-common/Wshift-count-negative-2.c d425900c0046df4dd9d326f6c8eb2d67 gcc/testsuite/c-c++-common/Wshift-count-overflow-1.c 7f7dfe9827844964aa5913a0df77bfda gcc/testsuite/c-c++-common/Wshift-count-overflow-2.c ! e2c873f32cb250611ac293a0172ee346 gcc/testsuite/c-c++-common/Wshift-negative-value-1.c ! 6fba445c92b9950ed629192d310c29ed gcc/testsuite/c-c++-common/Wshift-negative-value-10.c ! 78eb4460866048e93bd481aa5500060d gcc/testsuite/c-c++-common/Wshift-negative-value-2.c ! 0c83b576964ab3c215f3c28cb4359f26 gcc/testsuite/c-c++-common/Wshift-negative-value-3.c ! 722f2c0b564c7e4340515aed7f9269b7 gcc/testsuite/c-c++-common/Wshift-negative-value-4.c 4eb245cdd007f951220ef4ce4752393f gcc/testsuite/c-c++-common/Wshift-negative-value-5.c 2ec4a0079f61044cd2556d10f9086c01 gcc/testsuite/c-c++-common/Wshift-negative-value-6.c ! 44b521dad3ee71efc0d8c21a07ee8c28 gcc/testsuite/c-c++-common/Wshift-negative-value-7.c ! 94692676348c71ef48c996365643e2ff gcc/testsuite/c-c++-common/Wshift-negative-value-8.c ! 1ea3b563c1990488520fc81142859f02 gcc/testsuite/c-c++-common/Wshift-negative-value-9.c ! 3d7f806b54f140ba9abdd8a91a1729b7 gcc/testsuite/c-c++-common/Wshift-overflow-1.c ! 2bbd07737f36ce91f8f3968f72e2708a gcc/testsuite/c-c++-common/Wshift-overflow-10.c ! ea144bfe8a7745b09fb88195a3210b6b gcc/testsuite/c-c++-common/Wshift-overflow-11.c ! b7da970f89748d7c226b2e0c03b1e33a gcc/testsuite/c-c++-common/Wshift-overflow-12.c ! c3095c3809f4520acbde79af92e6af17 gcc/testsuite/c-c++-common/Wshift-overflow-2.c 9c03a6a952358fcf4ea17c9f5770eb36 gcc/testsuite/c-c++-common/Wshift-overflow-3.c ccf9803376f18fed70c0b2b90633ddb4 gcc/testsuite/c-c++-common/Wshift-overflow-4.c ! 19df8fb7876aad60a36e478ee70c2d1a gcc/testsuite/c-c++-common/Wshift-overflow-5.c ! 3bc93d6eade41fcab2b83bfa4a5b2588 gcc/testsuite/c-c++-common/Wshift-overflow-6.c ! e68c59b3c604b0f464d1f4c02629a7a5 gcc/testsuite/c-c++-common/Wshift-overflow-7.c ! fc40f165305f408a7e0fc682ac4e4e21 gcc/testsuite/c-c++-common/Wshift-overflow-8.c ! f6687e96d1a359321b94d5babcf73720 gcc/testsuite/c-c++-common/Wshift-overflow-9.c 2095424b6b86a7ddbae9c94c16fa2157 gcc/testsuite/c-c++-common/Wsign-compare-1.c 40bc1e540d092c06d14dc9842ee9cd03 gcc/testsuite/c-c++-common/Wsign-conversion-1.c c7eebf2a6120dfecf1a6ae7de1f49694 gcc/testsuite/c-c++-common/Wsizeof-array-div1.c *************** edbcc39f20e5248e2b957a28e01fee51 gcc/te *** 9366,9371 **** --- 9382,9388 ---- 0ba3f576ed243d50b6d6f59a8e9daa19 gcc/testsuite/c-c++-common/builtin-clear-padding-3.c 9db04682d9ed26e120c150f32a81c167 gcc/testsuite/c-c++-common/builtin-convertvector-1.c 86e09291e64c6f0da9f5f640b3c8b994 gcc/testsuite/c-c++-common/builtin-convertvector-2.c + 4f93f0d47fecc8e0bc7299754ffe6180 gcc/testsuite/c-c++-common/builtin-convertvector-3.c 2b8aa91fb8f2e3743b68c66f3224582b gcc/testsuite/c-c++-common/builtin-has-attribute-2.c 3c94c9b2bf7483a968279a2877b70e66 gcc/testsuite/c-c++-common/builtin-has-attribute-3.c 62fb6c2ef8aad2d15856d8aa969c3438 gcc/testsuite/c-c++-common/builtin-has-attribute-4.c *************** f92a7893a9a99e42109477db09c830bd gcc/te *** 9406,9411 **** --- 9423,9429 ---- 346ea499c21962b87cb824294a83c7d5 gcc/testsuite/c-c++-common/cpp/dir-only-6.c e9e3763df2499b30da22eca4c488b15f gcc/testsuite/c-c++-common/cpp/dir-only-7.c 2f39366e508484177a054b88deafea45 gcc/testsuite/c-c++-common/cpp/dir-only-8.c + 06653ab873bcbc27520685b703402fc6 gcc/testsuite/c-c++-common/cpp/dir-only-9.c 24433a4e764e479df8f2b0fafe6a0130 gcc/testsuite/c-c++-common/cpp/endif.c 65db27307aa0cdf0b3c0323431e08a15 gcc/testsuite/c-c++-common/cpp/endif.h d320f7159ec0c49c01579cadb6132ae4 gcc/testsuite/c-c++-common/cpp/eof-1.c *************** ac27af3ea0b119b95109334b03d48ca9 gcc/te *** 9438,9443 **** --- 9456,9462 ---- 23d2256fdd9c03d95361e499c9aa5d11 gcc/testsuite/c-c++-common/cpp/openmp-define-1.c 1ba0ade791f40edbd80fddddb700282b gcc/testsuite/c-c++-common/cpp/openmp-define-2.c 88fdfa7ad0dd8169a90963238ee1847e gcc/testsuite/c-c++-common/cpp/openmp-define-3.c + fb93693065e3e66c29a51aa146b3d3fa gcc/testsuite/c-c++-common/cpp/pr104147.c c85025f0def783f70f9bb6a4ea9a23f3 gcc/testsuite/c-c++-common/cpp/pr45457.c 50c40c5b8912ad75a2e46fd06778339d gcc/testsuite/c-c++-common/cpp/pr57580.c 6b93142f33f13f29aa948ea5e779f1a0 gcc/testsuite/c-c++-common/cpp/pr58844-1.c *************** f2e2a6171e51d284aef6b4356f338ad3 gcc/te *** 9469,9474 **** --- 9488,9494 ---- 0f93514d0ad79c03edfd672fb354e619 gcc/testsuite/c-c++-common/cpp/va-opt-2.c d4400c02e16c9ce8399bebed26d20e37 gcc/testsuite/c-c++-common/cpp/va-opt-3.c ffa7f1250b7f00a641ad13c5836e4f01 gcc/testsuite/c-c++-common/cpp/va-opt-4.c + 2afcba443f0dcc8170bbf6957a6f9cad gcc/testsuite/c-c++-common/cpp/va-opt-9.c 111311014e0b7d3088a84587438910e7 gcc/testsuite/c-c++-common/cpp/va-opt-error.c eea6a019e69d78eae4d98554090253c2 gcc/testsuite/c-c++-common/cpp/va-opt-pedantic.c 170aae082482e5179e2b24f5f07b815a gcc/testsuite/c-c++-common/cpp/va-opt.c *************** e2e9daad46396f221aba14c404f30440 gcc/te *** 9502,9508 **** 2262ac229b10467a7e05b447cdea7d0f gcc/testsuite/c-c++-common/dfp/compare-special.h 5ae19ddb12150aa7b5ad2cfb552e91e1 gcc/testsuite/c-c++-common/dfp/constants-zero.c 8ebd3d3dcf5c1d0797443518d5ebcc8f gcc/testsuite/c-c++-common/dfp/convert-bfp-10.c ! b05320ab810c5ff302f1bf25671bacec gcc/testsuite/c-c++-common/dfp/convert-bfp-11.c 0df658317e126d934dbf35a413278b2e gcc/testsuite/c-c++-common/dfp/convert-bfp-12.c 0c191580ae39c29ae1ee4308791fca1b gcc/testsuite/c-c++-common/dfp/convert-bfp-13.c a0ffa308727c3b63f0b0706ba7c4f2be gcc/testsuite/c-c++-common/dfp/convert-bfp-14.c --- 9522,9528 ---- 2262ac229b10467a7e05b447cdea7d0f gcc/testsuite/c-c++-common/dfp/compare-special.h 5ae19ddb12150aa7b5ad2cfb552e91e1 gcc/testsuite/c-c++-common/dfp/constants-zero.c 8ebd3d3dcf5c1d0797443518d5ebcc8f gcc/testsuite/c-c++-common/dfp/convert-bfp-10.c ! 7faf6c06cc205bda491540b751adc498 gcc/testsuite/c-c++-common/dfp/convert-bfp-11.c 0df658317e126d934dbf35a413278b2e gcc/testsuite/c-c++-common/dfp/convert-bfp-12.c 0c191580ae39c29ae1ee4308791fca1b gcc/testsuite/c-c++-common/dfp/convert-bfp-13.c a0ffa308727c3b63f0b0706ba7c4f2be gcc/testsuite/c-c++-common/dfp/convert-bfp-14.c *************** abf2f06821ef83fd68a177bc03b2f19d gcc/te *** 9732,9737 **** --- 9752,9758 ---- 24874d772e438b20ebcc2ae6aede4234 gcc/testsuite/c-c++-common/goacc/pcopyin.c 1d90abbfb13aaf9003e6882afdf09ae2 gcc/testsuite/c-c++-common/goacc/pcopyout.c e01bc16654eb70269f569e503d5a0905 gcc/testsuite/c-c++-common/goacc/pcreate.c + 68f80b7e6dcd38f96ca6b1b1357fb2e1 gcc/testsuite/c-c++-common/goacc/pr102432.c 8813fa952a39d7fcd8c338a20bbf1a30 gcc/testsuite/c-c++-common/goacc/pr69916.c 8e1c43f24e2ef7b983cdb547f2f410a7 gcc/testsuite/c-c++-common/goacc/pr70688.c 3cab895fbfe4d9a2a6ee0aceffb2970e gcc/testsuite/c-c++-common/goacc/pr79428-1.c *************** c8eb196146424dae7866984b548de18b gcc/te *** 9904,9909 **** --- 9925,9933 ---- 6d544b90b3bb63262065e084cddafc04 gcc/testsuite/c-c++-common/gomp/pr100902-1.c 345ac275dfe65e2e8ba683d2c389ebc3 gcc/testsuite/c-c++-common/gomp/pr101535-1.c b3c3fe5a4ecc31231711cb240274d62c gcc/testsuite/c-c++-common/gomp/pr101535-2.c + 5d5843e74a197943e19c270c43a913e1 gcc/testsuite/c-c++-common/gomp/pr102431.c + 6c331d01569cfa98850571463b5b3cc7 gcc/testsuite/c-c++-common/gomp/pr102432.c + ef8ec3320ae234be32fcdfc5379eaca2 gcc/testsuite/c-c++-common/gomp/pr102640.c e16ef156ad193ef1f3cba60ad16e57ab gcc/testsuite/c-c++-common/gomp/pr51360.c 84c977571aeb43c0224137efe7f5b213 gcc/testsuite/c-c++-common/gomp/pr53580.c 28bfd873981083756a16f70fdb0b86db gcc/testsuite/c-c++-common/gomp/pr54017.c *************** a26cac5f6c3bf19d27815db147fb6b76 gcc/te *** 10101,10106 **** --- 10125,10131 ---- 28fa0dc109db1913bd5f6088442c8b67 gcc/testsuite/c-c++-common/missing-header-3.c 22d0401be580cc821a107ff58ba0adf4 gcc/testsuite/c-c++-common/missing-header-4.c 43b0969da91f5c38b8fb0ee512205d1f gcc/testsuite/c-c++-common/missing-symbol.c + a68a4cf86f443ff3cc492bde894e586e gcc/testsuite/c-c++-common/modref-dse.c 33034d99e6dfa89744a2c586900037a3 gcc/testsuite/c-c++-common/nonnull-1.c a1ccbbeb722e380d831827588c7f4d57 gcc/testsuite/c-c++-common/nonnull-2.c 56f94db4972b3a054d2adecfd106d42a gcc/testsuite/c-c++-common/nonnull-3.c *************** b0c7bf5988f0583459fa73ced65ee847 gcc/te *** 10112,10117 **** --- 10137,10145 ---- 80a177ccd304d62e86cb7f75375f0958 gcc/testsuite/c-c++-common/patchable_function_entry-error-2.c 498ddd8ad30f33954c75dc8c4bb14a15 gcc/testsuite/c-c++-common/patchable_function_entry-error-3.c ae2fa528701d8a7118d0446869032faa gcc/testsuite/c-c++-common/pr100785.c + 05e5f34e1a745d2204989ec4f256e3c7 gcc/testsuite/c-c++-common/pr101537.c + 3b77bbb422eaff74de51c6cd92512232 gcc/testsuite/c-c++-common/pr103881.c + f7797890edb72db96871a3c3582464f4 gcc/testsuite/c-c++-common/pr105186.c f5dce8e27cfb8a6bfffe57596fecb796 gcc/testsuite/c-c++-common/pr19807-1.c 325d7c32f3748e10d55ba2faba3f1ce2 gcc/testsuite/c-c++-common/pr19807-2.c fb902cfe5a28251e99c554d18fb797e4 gcc/testsuite/c-c++-common/pr19807-3.c *************** dd5142586e3d5b7dc7b3a0aec5196b3d gcc/te *** 10478,10483 **** --- 10506,10513 ---- 6733790e29253b482618d3d7ca3d459b gcc/testsuite/c-c++-common/torture/complex-sign-mul.c d61cc0116375f68235d4f54cec36629f gcc/testsuite/c-c++-common/torture/complex-sign-sub.c 4ae74720c58c8cbadc297c4a41a985fb gcc/testsuite/c-c++-common/torture/complex-sign.h + 75b3c9a6df31ced0517c8cbc745ba01b gcc/testsuite/c-c++-common/torture/pr101636.c + 72a2947bdd50352d6b0c1363882b7249 gcc/testsuite/c-c++-common/torture/pr104497.c 9f1ae2fa915c5159ec134a1894ad5cf1 gcc/testsuite/c-c++-common/torture/pr42834.c 675e839574d99a5e8a0446f66b3520ca gcc/testsuite/c-c++-common/torture/pr46137.c dad442c09041500a2c414da240f49b82 gcc/testsuite/c-c++-common/torture/pr53505.c *************** ad0210bfe2c0bf78466fbeb232c7f222 gcc/te *** 10608,10613 **** --- 10638,10644 ---- a6690a3246008f2c5cea6ca866063155 gcc/testsuite/c-c++-common/ubsan/float-cast-overflow-9.c 2474ecce86d8ab1d663e5a060e9ae5ee gcc/testsuite/c-c++-common/ubsan/float-cast.h edf61d9eda5f13ef6802aeed6ada88f8 gcc/testsuite/c-c++-common/ubsan/float-div-by-zero-1.c + 4b4093a47a88d4ed45fadb509277b422 gcc/testsuite/c-c++-common/ubsan/float-div-by-zero-2.c 2dfe9300c7c0663dfcd4b1f1892e2d6e gcc/testsuite/c-c++-common/ubsan/inline.c ff2685208629414a89fbb3161f228476 gcc/testsuite/c-c++-common/ubsan/load-bool-enum.c 3c0ae577713ec4c85f5ad514bc7596aa gcc/testsuite/c-c++-common/ubsan/nonnull-1.c *************** a0b5d18df0a804f16c6267ecf5a122ca gcc/te *** 10686,10691 **** --- 10717,10723 ---- ebe1e969e1fcbcccd3267df96d65b76a gcc/testsuite/c-c++-common/ubsan/pr64289.c fed93d1bb6b1957637e7b365b237b897 gcc/testsuite/c-c++-common/ubsan/pr64344-1.c 306c6efeca8e1593474ff905ab8ffa61 gcc/testsuite/c-c++-common/ubsan/pr64344-2.c + 2e2938d0c22b01cf1410cf980af98484 gcc/testsuite/c-c++-common/ubsan/pr64888.c b61c8d67fc16a4a400c244d8171acbc1 gcc/testsuite/c-c++-common/ubsan/pr64906.c 0278447631e1e7661d0dc1c45df16b8a gcc/testsuite/c-c++-common/ubsan/pr65081.c 84e6340179dbdb8d0683b92ea0ba82db gcc/testsuite/c-c++-common/ubsan/pr65367.c *************** a8a423a0388215f96cf72d6abf415d72 gcc/te *** 10831,10836 **** --- 10863,10869 ---- 5402422aa468b0e17faae787be45ca05 gcc/testsuite/g++.dg/DRs/dr1778.C fa21ec294f03c517a2834da0764dd305 gcc/testsuite/g++.dg/DRs/dr188.C e1ec3bf667b6fc27346a0e4a5cf1958b gcc/testsuite/g++.dg/DRs/dr1940.C + 2454fe0ea036f7272bc7658a61ac11fe gcc/testsuite/g++.dg/DRs/dr2082.C b76a9cedbf2dc42cfc090cc116dd5b23 gcc/testsuite/g++.dg/DRs/dr2137-1.C c34c077c14a731c1e76b55760a45595e gcc/testsuite/g++.dg/DRs/dr2137-2.C 3f7c4c9040359275e31ad38de5ffd272 gcc/testsuite/g++.dg/DRs/dr2237.C *************** c7c251f16058a4d4f1db8e0df28385ff gcc/te *** 10898,10904 **** 2e2b81268b12d9840736f5f280fdcd82 gcc/testsuite/g++.dg/abi/anon1.C d612831779ae34b6217159ef7510dee7 gcc/testsuite/g++.dg/abi/anon2.C 4024cd0fe696880556f4db4786e81c53 gcc/testsuite/g++.dg/abi/anon3.C ! 0347f2178e5e23ce57e71d0e23c56c10 gcc/testsuite/g++.dg/abi/anon4.C b03e050cd2306239cb18c55acf037ffa gcc/testsuite/g++.dg/abi/anon5.C 770a1857da6a05380e26eabb7f0ecb92 gcc/testsuite/g++.dg/abi/arm_cxa_vec1.C cb4ad686f7564a8666256212398d911d gcc/testsuite/g++.dg/abi/arm_cxa_vec2.C --- 10931,10937 ---- 2e2b81268b12d9840736f5f280fdcd82 gcc/testsuite/g++.dg/abi/anon1.C d612831779ae34b6217159ef7510dee7 gcc/testsuite/g++.dg/abi/anon2.C 4024cd0fe696880556f4db4786e81c53 gcc/testsuite/g++.dg/abi/anon3.C ! 33fdd2e467a8fd1571a8622c9dd56bcd gcc/testsuite/g++.dg/abi/anon4.C b03e050cd2306239cb18c55acf037ffa gcc/testsuite/g++.dg/abi/anon5.C 770a1857da6a05380e26eabb7f0ecb92 gcc/testsuite/g++.dg/abi/arm_cxa_vec1.C cb4ad686f7564a8666256212398d911d gcc/testsuite/g++.dg/abi/arm_cxa_vec2.C *************** ad6491d281aef40e7e1cf7d856f2aa05 gcc/te *** 11004,11009 **** --- 11037,11043 ---- 1258c53ab6daad5251b29f5a76d70e18 gcc/testsuite/g++.dg/abi/mangle-neon.C 6cb105420cef0cf42e64341086161402 gcc/testsuite/g++.dg/abi/mangle-regparm.C 6390442984f217030ab16eaa73d32de0 gcc/testsuite/g++.dg/abi/mangle-regparm1a.C + 32a820237871331f2e3455c6e70f6397 gcc/testsuite/g++.dg/abi/mangle-union1.C 2e043f4f1db73efd7ba04afe8375a72e gcc/testsuite/g++.dg/abi/mangle1.C e284ef1906cd5f1de0a8f3009ac761ff gcc/testsuite/g++.dg/abi/mangle10.C f4bf78334d8aab06335ad784d3baaffd gcc/testsuite/g++.dg/abi/mangle13.C *************** c7018c25d3568fc8c57341e5f27c2399 gcc/te *** 11212,11217 **** --- 11246,11253 ---- fb777e6427f4a224508112af8340c3d4 gcc/testsuite/g++.dg/asan/interception-malloc-test-1.C 5528ec64328b52adcb592f8a39c2ea36 gcc/testsuite/g++.dg/asan/interception-test-1.C 280404310b225d80bc4ec71addcc10a9 gcc/testsuite/g++.dg/asan/large-func-test-1.C + ca4a8065918a3119cb5474bacec801f2 gcc/testsuite/g++.dg/asan/pr102656.C + b03be3a03970717959df65ccdcbebe88 gcc/testsuite/g++.dg/asan/pr104449.C e472f2ce37f2b55b1358ec08717d9f08 gcc/testsuite/g++.dg/asan/pr55617.C 74a04a20e12a8acd0fd7d05742cf8d63 gcc/testsuite/g++.dg/asan/pr62017.C 505943436d80a41b5e95bf0b67db97cd gcc/testsuite/g++.dg/asan/pr64937.C *************** cb637c31f7267e6cb6c02a89a06fecf0 gcc/te *** 11508,11513 **** --- 11544,11550 ---- 79b01ce4c0ddc29b29698e41deb18cda gcc/testsuite/g++.dg/concepts/placeholder4.C c6b1dbd7752014fd21d59c3495671ca9 gcc/testsuite/g++.dg/concepts/placeholder5.C a3041d3b0ddd1e4e139656fef2568888 gcc/testsuite/g++.dg/concepts/placeholder6.C + 91bbc43bd292628bdbb650fc92890934 gcc/testsuite/g++.dg/concepts/pr105061.C bff91be12faf541761b92b8a7ac5de0f gcc/testsuite/g++.dg/concepts/pr65634.C e1b13bd2e7e5b547138d71c7e88ff143 gcc/testsuite/g++.dg/concepts/pr65636.C c793a07aee900824ca395d9ccff6ee08 gcc/testsuite/g++.dg/concepts/pr65681.C *************** ddfd6a90cf32e5a6f5b08574c034f7eb gcc/te *** 11686,11692 **** 78af0a6168ada3b1d34931291fa17911 gcc/testsuite/g++.dg/coroutines/coro-bad-alloc-00-bad-op-new.C ffc351894b467f0868dd9e3ff56e8b09 gcc/testsuite/g++.dg/coroutines/coro-bad-alloc-01-bad-op-del.C bcba22803ed3d0f8efcb00d0980effed gcc/testsuite/g++.dg/coroutines/coro-bad-alloc-02-no-op-new-nt.C ! d05a3dcbdb3d407a3799fd80d8cf3749 gcc/testsuite/g++.dg/coroutines/coro-bad-gro-00-class-gro-scalar-return.C d0ec9373b7671fe70b47e96812daa568 gcc/testsuite/g++.dg/coroutines/coro-bad-gro-01-void-gro-non-class-coro.C a50880b566fed6d07b909ccdaa5107a7 gcc/testsuite/g++.dg/coroutines/coro-bad-grooaf-00-static.C bf25ae08316051d9833582ee358711b2 gcc/testsuite/g++.dg/coroutines/coro-bad-grooaf-01-grooaf-expected.C --- 11723,11729 ---- 78af0a6168ada3b1d34931291fa17911 gcc/testsuite/g++.dg/coroutines/coro-bad-alloc-00-bad-op-new.C ffc351894b467f0868dd9e3ff56e8b09 gcc/testsuite/g++.dg/coroutines/coro-bad-alloc-01-bad-op-del.C bcba22803ed3d0f8efcb00d0980effed gcc/testsuite/g++.dg/coroutines/coro-bad-alloc-02-no-op-new-nt.C ! 5905d0bff2fe1daec08474d17a24aec6 gcc/testsuite/g++.dg/coroutines/coro-bad-gro-00-class-gro-scalar-return.C d0ec9373b7671fe70b47e96812daa568 gcc/testsuite/g++.dg/coroutines/coro-bad-gro-01-void-gro-non-class-coro.C a50880b566fed6d07b909ccdaa5107a7 gcc/testsuite/g++.dg/coroutines/coro-bad-grooaf-00-static.C bf25ae08316051d9833582ee358711b2 gcc/testsuite/g++.dg/coroutines/coro-bad-grooaf-01-grooaf-expected.C *************** cb41fef7448625fa4e0c8fd96e24fc4d gcc/te *** 11709,11714 **** --- 11746,11753 ---- 6f5627b19b794cfdd383607165c8ad4e gcc/testsuite/g++.dg/coroutines/coro1-refs-and-ctors.h 6487c0454968e62ff493f215450a35cc gcc/testsuite/g++.dg/coroutines/coro1-ret-int-yield-int.h 0338cdb719c46fedef7227899cb0ad47 gcc/testsuite/g++.dg/coroutines/coroutines.exp + 5a6ab803d16d71889bbcfbe081300785 gcc/testsuite/g++.dg/coroutines/pr102454.C + 85cc1b4c4f0e73f17a81693bed3275fa gcc/testsuite/g++.dg/coroutines/pr103328.C cbb42d13b1660a8eb1d40a3d88308140 gcc/testsuite/g++.dg/coroutines/pr93458-1-missing-traits.C d9151fc224e4913ed7ffacd748769917 gcc/testsuite/g++.dg/coroutines/pr93458-2-bad-traits.C e9b715cb41c54f5b179b4725b788e338 gcc/testsuite/g++.dg/coroutines/pr93458-3-missing-handle.C *************** bb3c9b1e81779a43b584dae48604b8d1 gcc/te *** 11892,11897 **** --- 11931,11937 ---- c41c3c60e8a193075ec6d307d58b6911 gcc/testsuite/g++.dg/cpp/paste1.C e9e3011043a9faa30c42b61fa3bdb8a8 gcc/testsuite/g++.dg/cpp/paste2.C 5e10de393d1872d51958157aa6257743 gcc/testsuite/g++.dg/cpp/pedantic-errors.C + e85c00d109986c74039e49eed3ef6e42 gcc/testsuite/g++.dg/cpp/pr103012.C ead0211c86f0bdd9b5ba312b097e6661 gcc/testsuite/g++.dg/cpp/pr23827_cxx11.C e8c9f921aabceacddf429e950c792f1d gcc/testsuite/g++.dg/cpp/pr23827_cxx98.C b087a7523d0c72cdc440e2fb7cbd71f7 gcc/testsuite/g++.dg/cpp/pr23827_cxx98_neg.C *************** e227fd117edd6417d4721f5cf77d96ca gcc/te *** 12044,12049 **** --- 12084,12090 ---- 2b6a57b666b21c32c78675b73c3c2d86 gcc/testsuite/g++.dg/cpp0x/alias-decl-70.C 3d9ba2b7ecc7fefba84ee62ec62685ca gcc/testsuite/g++.dg/cpp0x/alias-decl-72.C d5f8995eb967b699d6937c5a92465df7 gcc/testsuite/g++.dg/cpp0x/alias-decl-72a.C + 2721f38b2811c2ff06ae54c5c96790df gcc/testsuite/g++.dg/cpp0x/alias-decl-74.C 77aa48fcd9f9b9ffab08fa7ebc5d52e2 gcc/testsuite/g++.dg/cpp0x/alias-decl-8.C 0fea677a266ad89646463d41e4df0566 gcc/testsuite/g++.dg/cpp0x/alias-decl-80296.C 2b0ac9ee7e77902ee76b92dfbfcc37b3 gcc/testsuite/g++.dg/cpp0x/alias-decl-9.C *************** ef369c9d8dbd4b3ba5c764f92fc53a46 gcc/te *** 12054,12059 **** --- 12095,12101 ---- cc6f68db48a7d48195916001cb0b7b64 gcc/testsuite/g++.dg/cpp0x/alias-decl-dr1558.C 830a80101d211b99c4fce4c743aa6771 gcc/testsuite/g++.dg/cpp0x/alias-decl-enum-1.C 0b019bac5dcafdd642abe83896a7483d gcc/testsuite/g++.dg/cpp0x/alias-decl-equiv1.C + e612eae08131c21ee29889099ea83336 gcc/testsuite/g++.dg/cpp0x/alias-decl-mem1.C 42802675fdf183e36c26b59ce2188fbd gcc/testsuite/g++.dg/cpp0x/alias-decl-pmf1.C 276db5de570a4b8f2cfb42b6fc5b0a0b gcc/testsuite/g++.dg/cpp0x/alias-decl-pr92206-1.C 2a4fbf633a4b91c09573d05167888906 gcc/testsuite/g++.dg/cpp0x/alias-decl-pr92206-2.C *************** cc6f68db48a7d48195916001cb0b7b64 gcc/te *** 12062,12069 **** --- 12104,12113 ---- 2828cf381230838bedb15702c2b763f2 gcc/testsuite/g++.dg/cpp0x/alias-decl-pr96805.C 615df70052d63b7ad5ab632bb7f1f346 gcc/testsuite/g++.dg/cpp0x/alias-decl-targ1.C 4b5e85e9ef4806957401c0d1483b5450 gcc/testsuite/g++.dg/cpp0x/alias-decl-ttp1.C + 0bb3f63511b9329ed3397481d34f4eea gcc/testsuite/g++.dg/cpp0x/alias-decl-ttp2.C f5ed750984341c509996395f9c245964 gcc/testsuite/g++.dg/cpp0x/alias-decl-variadic1.C 4801ac3f92233a9abd7960d6704f81a5 gcc/testsuite/g++.dg/cpp0x/alias-decl-variadic2.C + 5b74a3057c420c4dac9d7faffd0a2d5c gcc/testsuite/g++.dg/cpp0x/alias-decl-void1.C 3160c52a8ac131b03192a1bc86ef7a35 gcc/testsuite/g++.dg/cpp0x/alignas1.C 4866e3b93b878ee0244a039b009071ca gcc/testsuite/g++.dg/cpp0x/alignas10.C cda964826837ac50113537351c4b8f2b gcc/testsuite/g++.dg/cpp0x/alignas11.C *************** d9734e67258a1ae418f1c09c99e52585 gcc/te *** 12076,12081 **** --- 12120,12126 ---- 5c210fde91e5e95aefb4df1c7ace2980 gcc/testsuite/g++.dg/cpp0x/alignas18.C c35ab3d4ee0cd5a668ae4e1f3805363e gcc/testsuite/g++.dg/cpp0x/alignas19.C f1354435b9e53f5c5d923994edebb49f gcc/testsuite/g++.dg/cpp0x/alignas2.C + 4921e2a7860d2f035f9a655f8aef21fa gcc/testsuite/g++.dg/cpp0x/alignas20.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 *************** c11fb9d024f89aea2e027172cee4bda2 gcc/te *** 12171,12176 **** --- 12216,12222 ---- 5337801b3f3b1399a7748f6f77351f43 gcc/testsuite/g++.dg/cpp0x/cond1.C 82b611352fd26c7db573eb5226ef4366 gcc/testsuite/g++.dg/cpp0x/cond2.C 49892879cc50168564ac99cc87bfb0ab gcc/testsuite/g++.dg/cpp0x/constexpr-100111.C + eeac975a1b841cef4d5a4c468314ed8c gcc/testsuite/g++.dg/cpp0x/constexpr-104472.C 3e4cac522763806230540d3da6cc5ee1 gcc/testsuite/g++.dg/cpp0x/constexpr-46336.C d079e67f3b2be485ac7aed93b70984d2 gcc/testsuite/g++.dg/cpp0x/constexpr-46420.C 329a82a822423273c0c0256fd27a6d52 gcc/testsuite/g++.dg/cpp0x/constexpr-47570.C *************** c69a3f036aa1a3b23cdbaaea842e210b gcc/te *** 12319,12325 **** 80367967b9445fd60f61c8e306a887c1 gcc/testsuite/g++.dg/cpp0x/constexpr-complex.C 81e19679cf444654f916ddfdba9dddbb gcc/testsuite/g++.dg/cpp0x/constexpr-complex2.C 91a3ed066890c479ed4178dddf5077d3 gcc/testsuite/g++.dg/cpp0x/constexpr-compound.C ! 57686e4c28abf456a6024fa8b83e9d81 gcc/testsuite/g++.dg/cpp0x/constexpr-condition.C 8581fb1eeb620cb25e1a416019fc44de gcc/testsuite/g++.dg/cpp0x/constexpr-condition2.C d0cf4047a18cf95475f57cf96be3f551 gcc/testsuite/g++.dg/cpp0x/constexpr-const1.C ab3d5e56cf6749d0ebf9a07451e3d13e gcc/testsuite/g++.dg/cpp0x/constexpr-const2.C --- 12365,12371 ---- 80367967b9445fd60f61c8e306a887c1 gcc/testsuite/g++.dg/cpp0x/constexpr-complex.C 81e19679cf444654f916ddfdba9dddbb gcc/testsuite/g++.dg/cpp0x/constexpr-complex2.C 91a3ed066890c479ed4178dddf5077d3 gcc/testsuite/g++.dg/cpp0x/constexpr-compound.C ! 52135441b6fa78f3fbe744e9f1b7e8c9 gcc/testsuite/g++.dg/cpp0x/constexpr-condition.C 8581fb1eeb620cb25e1a416019fc44de gcc/testsuite/g++.dg/cpp0x/constexpr-condition2.C d0cf4047a18cf95475f57cf96be3f551 gcc/testsuite/g++.dg/cpp0x/constexpr-const1.C ab3d5e56cf6749d0ebf9a07451e3d13e gcc/testsuite/g++.dg/cpp0x/constexpr-const2.C *************** baf44bb3bbcc1b19835fcba0732c07b8 gcc/te *** 12382,12387 **** --- 12428,12434 ---- dc35528dcc7c952d5f423188cb941644 gcc/testsuite/g++.dg/cpp0x/constexpr-empty14.C 39d49ad5520441d592a3a79408382c59 gcc/testsuite/g++.dg/cpp0x/constexpr-empty15.C a275ad66d9fc657917af98f6fe78b474 gcc/testsuite/g++.dg/cpp0x/constexpr-empty16.C + 2cb172046684cd137813e8662b4c2325 gcc/testsuite/g++.dg/cpp0x/constexpr-empty17.C aef682375c033fe1283502c7f213d6ca gcc/testsuite/g++.dg/cpp0x/constexpr-empty2.C f2be36db1d24de846eca69288f8e004a gcc/testsuite/g++.dg/cpp0x/constexpr-empty3.C 933cc130bc4ebc33fb81e8901f604e0a gcc/testsuite/g++.dg/cpp0x/constexpr-empty4.C *************** b42a56c36f2871854befe2c275e21536 gcc/te *** 12625,12630 **** --- 12672,12679 ---- cf97f1097745402b81c3380e8aa5780a gcc/testsuite/g++.dg/cpp0x/decltype-71879.C a5f546aaf002e31dc77b29dbac735473 gcc/testsuite/g++.dg/cpp0x/decltype-77338.C 52a79da77531c2f2ad078138f3cd0fd5 gcc/testsuite/g++.dg/cpp0x/decltype-96652.C + 550aca5d36a30908ce3dc407283f38e1 gcc/testsuite/g++.dg/cpp0x/decltype-bitfield1.C + d06af37faa7607eb717c9ddea0ae51f7 gcc/testsuite/g++.dg/cpp0x/decltype-bitfield2.C 56d1686eed232cf78dc19ba7e9220f8d gcc/testsuite/g++.dg/cpp0x/decltype-call1.C 3df1dfeae5659a7702340d1f4c142e85 gcc/testsuite/g++.dg/cpp0x/decltype-call2.C 94b4a0fd5edd628fe8247db245d9f0ad gcc/testsuite/g++.dg/cpp0x/decltype-call3.C *************** e0fcc12ea86ca07e002f0dd4599d71b4 gcc/te *** 13340,13345 **** --- 13389,13395 ---- 4c785ed910596fbd5f6219990b7e64e7 gcc/testsuite/g++.dg/cpp0x/lambda/lambda-deduce2.C d6d48de10340b22d46f7610d0d311ac9 gcc/testsuite/g++.dg/cpp0x/lambda/lambda-deduce3.C ed0e57a851ca002b92664b37ce17502b gcc/testsuite/g++.dg/cpp0x/lambda/lambda-defarg.C + aa85f5f850e450b7a4d7f950c70892d3 gcc/testsuite/g++.dg/cpp0x/lambda/lambda-defarg10.C be7d5784718fa8841e1936204f404bd8 gcc/testsuite/g++.dg/cpp0x/lambda/lambda-defarg2.C 22fec09efea51d124875d060379b4035 gcc/testsuite/g++.dg/cpp0x/lambda/lambda-defarg3.C ffc39c5b4c152803a184a9a8a8a77a77 gcc/testsuite/g++.dg/cpp0x/lambda/lambda-defarg4.C *************** e423ce7aafce83ac62c98b5375c8fce1 gcc/te *** 13613,13618 **** --- 13663,13672 ---- 8e3444aa5b9c9f35186b3ad1658c800d gcc/testsuite/g++.dg/cpp0x/noexcept68.C d0df5cd0a2632cf9b66f18aec0cc6e21 gcc/testsuite/g++.dg/cpp0x/noexcept69.C 02e09b143c63de3a81f9191fa6e9404d gcc/testsuite/g++.dg/cpp0x/noexcept70.C + 8c12591fc58e3959d1d0358f4a377d5a gcc/testsuite/g++.dg/cpp0x/noexcept72.C + dd169c18a4c3d9571a259e67ef8648ef gcc/testsuite/g++.dg/cpp0x/noexcept73.C + 12fa60794a927f2fea0965155d13a228 gcc/testsuite/g++.dg/cpp0x/noexcept74.C + 1f3e552c43d920f75b1dde7450f0be06 gcc/testsuite/g++.dg/cpp0x/noexcept74a.C 3bf83ccb654cedbb57a45851fb14aa9d gcc/testsuite/g++.dg/cpp0x/nolinkage1.C 6b7c91b931bbdacbbffbf9b90a79bc6a gcc/testsuite/g++.dg/cpp0x/nolinkage1.h c92e0eda44dd6b3d74960b249fa5204f gcc/testsuite/g++.dg/cpp0x/nolinkage1a.cc *************** e754c2eb76d7ab2dff572da57c588a4d gcc/te *** 13662,13667 **** --- 13716,13725 ---- 0b3784303bce9e43936f535a111b1d8f gcc/testsuite/g++.dg/cpp0x/nsdmi-template19.C d83133afa9fe5d533ed8b6cecc90cc44 gcc/testsuite/g++.dg/cpp0x/nsdmi-template2.C f900a961724b234dbae2b1dd5e2b9ae6 gcc/testsuite/g++.dg/cpp0x/nsdmi-template20.C + 55e1dee2146a8988ec9a59e858dadc99 gcc/testsuite/g++.dg/cpp0x/nsdmi-template21.C + 93773e99f41e047cdb20c1fb229d81d2 gcc/testsuite/g++.dg/cpp0x/nsdmi-template21a.C + dc4bd68cb1e4dc039dc569a75085b940 gcc/testsuite/g++.dg/cpp0x/nsdmi-template22.C + 0701f9d0d2b24244ead57a63737e416c gcc/testsuite/g++.dg/cpp0x/nsdmi-template23.C a4838f227c782d1dc8cc894a19deb0d1 gcc/testsuite/g++.dg/cpp0x/nsdmi-template3.C ecc55c2acf604366d5eab66ebf6a29dd gcc/testsuite/g++.dg/cpp0x/nsdmi-template4.C 2df81a05f5de27f3cb083ad4a290512a gcc/testsuite/g++.dg/cpp0x/nsdmi-template5.C *************** d2a1963e44488193e2d5ae183c548b2d gcc/te *** 13756,13761 **** --- 13814,13821 ---- ec3fccada021f17376f5255d71d5545b gcc/testsuite/g++.dg/cpp0x/override4.C 63a98616cfbc7aecbf849404acae0e55 gcc/testsuite/g++.dg/cpp0x/parse1.C a174690fe306aaf345b02df91c3ddebe gcc/testsuite/g++.dg/cpp0x/parse2.C + 6802ea11c1f5811ef4a3d0490040dcc1 gcc/testsuite/g++.dg/cpp0x/pr102305.C + ab53f37eb7254188dd01a8c1e25841fd gcc/testsuite/g++.dg/cpp0x/pr105256.C 26dea799d49ce223a0c4130a3c955271 gcc/testsuite/g++.dg/cpp0x/pr31431-2.C 4d1da29b669bf3178b3987abce4d58b1 gcc/testsuite/g++.dg/cpp0x/pr31431.C d65e06a3830e2b511cc25692b94615a1 gcc/testsuite/g++.dg/cpp0x/pr31432.C *************** e884bf1c365eb117bddb8cf25bb61944 gcc/te *** 14203,14208 **** --- 14263,14269 ---- 51637c7e4d8745c6a05dd4de2ac799bc gcc/testsuite/g++.dg/cpp0x/static_assert14.C ef0f59d78fc1f37751b79acad3704989 gcc/testsuite/g++.dg/cpp0x/static_assert15.C 53545b7342e66ae87c68f3a770b6a193 gcc/testsuite/g++.dg/cpp0x/static_assert16.C + a763580664ce585f23dcbf8cf13cab6a gcc/testsuite/g++.dg/cpp0x/static_assert17.C 7c94507411d8f0fcd4964618204cd929 gcc/testsuite/g++.dg/cpp0x/static_assert2.C f24eae3c4070d37d2bbcb3f45a386807 gcc/testsuite/g++.dg/cpp0x/static_assert3.C 09c6459c722f7fda152e22ef59d4e30c gcc/testsuite/g++.dg/cpp0x/static_assert4.C *************** b3ffcd3fe45fdfaefdabb2511bf9b313 gcc/te *** 14237,14242 **** --- 14298,14304 ---- f178110e8a5769a1841d717a00deee31 gcc/testsuite/g++.dg/cpp0x/trailing12.C 2781b15beed8210d1827b068b5ac9a01 gcc/testsuite/g++.dg/cpp0x/trailing13.C 7367e178eedb96b16a13ecbdeaa28d9c gcc/testsuite/g++.dg/cpp0x/trailing14.C + 7664f80091d9af3b6a9ca8c0c51b40cf gcc/testsuite/g++.dg/cpp0x/trailing15.C 8d5a5322aa6c6ee7c3b0ef623f8f23b9 gcc/testsuite/g++.dg/cpp0x/trailing2.C 112aba2c9def0d824c652cc9ddf0ff39 gcc/testsuite/g++.dg/cpp0x/trailing3.C 7dc0503315e6109d214036deeaad3329 gcc/testsuite/g++.dg/cpp0x/trailing4.C *************** f7ee372a6e85bc9010a49d3d9086a4ff gcc/te *** 14317,14322 **** --- 14379,14387 ---- c2935d37441711e00030dd4962af84b5 gcc/testsuite/g++.dg/cpp0x/variadic-104.C 0fa36631e12ec97e9e0d646888cd43ab gcc/testsuite/g++.dg/cpp0x/variadic-alias1.C 05f34d2879385095df8946531cb7c747 gcc/testsuite/g++.dg/cpp0x/variadic-alias2.C + ca37ddadc3989b47a8f871dbc75cb358 gcc/testsuite/g++.dg/cpp0x/variadic-alias5.C + 442ba0256c0aa3571579aa5a4d8d9d46 gcc/testsuite/g++.dg/cpp0x/variadic-alias6.C + b9f93dd6756e0bd64271c918d2533edc gcc/testsuite/g++.dg/cpp0x/variadic-alias7.C 8eb6bba0c4ef3e1b77151f91ce5ddeb3 gcc/testsuite/g++.dg/cpp0x/variadic-bind.C 5b99491b1ddd285caf57c8d9cc3a52aa gcc/testsuite/g++.dg/cpp0x/variadic-crash1.C 487cbd86a6922cf1b1ed0e770dfe74ee gcc/testsuite/g++.dg/cpp0x/variadic-crash2.C *************** e47543bd9482646c5c0d1023519e7eb1 gcc/te *** 14366,14371 **** --- 14431,14438 ---- 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 + b20d8acf670aad710e257d31a6938ec7 gcc/testsuite/g++.dg/cpp0x/variadic-partial2.C + f7b6e32cbed201fb5448079ea1b77a05 gcc/testsuite/g++.dg/cpp0x/variadic-partial2a.C 929e72e50917907d735e84a67d7462fa gcc/testsuite/g++.dg/cpp0x/variadic-ref1.C 0e1a5d3d60669df0ab8d526a879627f5 gcc/testsuite/g++.dg/cpp0x/variadic-rref.C ec2fde26ddf074a4393a34fcd501a0cc gcc/testsuite/g++.dg/cpp0x/variadic-sizeof1.C *************** f3e3d98fcbe616df26f26eb779c66c1f gcc/te *** 14703,14708 **** --- 14770,14782 ---- 99847692cf2ccd072e419199625ee070 gcc/testsuite/g++.dg/cpp1y/complex_literals1a.C 5f47973cdaddb1d27f6ea767e7275723 gcc/testsuite/g++.dg/cpp1y/complex_literals2.C a1995c633dded5a3445bad4fcc3b55cf gcc/testsuite/g++.dg/cpp1y/complex_literals2a.C + 5b687d1f8c5ad813ae1f4dfa3142d5ad gcc/testsuite/g++.dg/cpp1y/constexpr-101371-2.C + af7d2fcb1d1338760b009b72c73a0154 gcc/testsuite/g++.dg/cpp1y/constexpr-101371.C + 38163e8e48a0ef5705286e484b8ef3ef gcc/testsuite/g++.dg/cpp1y/constexpr-104284-1.C + 0bca7e2eccc66dcba716f560ed426eac gcc/testsuite/g++.dg/cpp1y/constexpr-104284-2.C + 596bb0c9ae27b7c107953a30347295f0 gcc/testsuite/g++.dg/cpp1y/constexpr-104284-3.C + b18c63a0e6b162de2b47ab0e61b704bd gcc/testsuite/g++.dg/cpp1y/constexpr-104284-4.C + 6193cad472a1684eae83fead9fc5d0d7 gcc/testsuite/g++.dg/cpp1y/constexpr-104513.C 2d72668eefa5659edd32ef8dabc1c48e gcc/testsuite/g++.dg/cpp1y/constexpr-50060.C 9b2030f5f70b0e913feb1b957c799f4f gcc/testsuite/g++.dg/cpp1y/constexpr-66093.C 9ecc58eab147adafbf3780c51ed706fc gcc/testsuite/g++.dg/cpp1y/constexpr-70265-1.C *************** f9177d17a8e7ca1cf52d2e3f3738490b gcc/te *** 14852,14857 **** --- 14926,14932 ---- 382c88b3557d1313cf8ea52c3a5c5e11 gcc/testsuite/g++.dg/cpp1y/cplusplus.C f8cacc42b6d0ee02c4ec28b4871b946c gcc/testsuite/g++.dg/cpp1y/cplusplus_1y.C 5b15891a6820c943437e7dcf50430c8c gcc/testsuite/g++.dg/cpp1y/decltype-auto1.C + 194055ab7fa17e843b9e74ef24b2d117 gcc/testsuite/g++.dg/cpp1y/decltype-auto5.C 516d0cef75f4267f67d755a810807bc2 gcc/testsuite/g++.dg/cpp1y/digit-sep-cxx11-neg.C 7831663fbcb0e77846ba3e5ab2442d2e gcc/testsuite/g++.dg/cpp1y/digit-sep-neg.C 2ccf049767734b973a90dea30576d8a8 gcc/testsuite/g++.dg/cpp1y/digit-sep.C *************** d91a981f54ab2a15c0e9427ccb338f24 gcc/te *** 14938,14943 **** --- 15013,15019 ---- 714b0ec0672f03bb83435eb7e8946993 gcc/testsuite/g++.dg/cpp1y/lambda-generic-this1a.C 5d6aac41102fa948ecd5b469abc35503 gcc/testsuite/g++.dg/cpp1y/lambda-generic-this2.C 5272ec327005dde6e5a2aaffb7102e42 gcc/testsuite/g++.dg/cpp1y/lambda-generic-this3.C + 85be199d2e0d4a7142fba0bb5f749ab7 gcc/testsuite/g++.dg/cpp1y/lambda-generic-this4.C 06ba6684e3759115ec5098f38667687b gcc/testsuite/g++.dg/cpp1y/lambda-generic-trailing1.C e947551033232c5abe95cce5adfd22aa gcc/testsuite/g++.dg/cpp1y/lambda-generic-udt.C 7515a5372d247dd5a94ef0626c25c2ae gcc/testsuite/g++.dg/cpp1y/lambda-generic-uneval1.C *************** f578ef92ec8a79f6e9dc1a030af56203 gcc/te *** 15221,15226 **** --- 15297,15303 ---- d9d52b8fe2f970e02f1be30318793801 gcc/testsuite/g++.dg/cpp1z/Wpessimizing-move1.C 03237ed8ef5d96f1a58edcbd6d1c7f00 gcc/testsuite/g++.dg/cpp1z/aggr-base1.C 7248748a9a13eeb2cb077c3407b109c5 gcc/testsuite/g++.dg/cpp1z/aggr-base10.C + 5a42f67c17ea24ccec45839b5086bd26 gcc/testsuite/g++.dg/cpp1z/aggr-base12.C e149ab5ecfa10339d5771953be185fa8 gcc/testsuite/g++.dg/cpp1z/aggr-base1a.C 4583da3d1eb350853a7252d4e6a3a64b gcc/testsuite/g++.dg/cpp1z/aggr-base2.C ef50bbb4c11914c6ab62d883d9099377 gcc/testsuite/g++.dg/cpp1z/aggr-base2a.C *************** daf6a1ab8d18fad76864f7a9c31adc71 gcc/te *** 15251,15257 **** --- 15328,15336 ---- 3366b9d94d7b1a6e36f4c73b5364de67 gcc/testsuite/g++.dg/cpp1z/class-deduction-spec1.C 6e5c654f918bffb16660300054fe6143 gcc/testsuite/g++.dg/cpp1z/class-deduction1.C 521dabadcf6ec5d76ee583121d751149 gcc/testsuite/g++.dg/cpp1z/class-deduction10.C + 871331a13941944f7010cfb1344eab6e gcc/testsuite/g++.dg/cpp1z/class-deduction109.C 517aaeb274419d156e09eb5a7d5b7077 gcc/testsuite/g++.dg/cpp1z/class-deduction11.C + 9f4ecb418c0bbb6f3b318882c20889a4 gcc/testsuite/g++.dg/cpp1z/class-deduction110.C 0ee09ea78093c92338c6b29bc4a5b4ba gcc/testsuite/g++.dg/cpp1z/class-deduction12.C 8033f2dbb1dc793a3fea073353a0487a gcc/testsuite/g++.dg/cpp1z/class-deduction13.C f51a81e3b0aa46f289c5ca9d3faaded6 gcc/testsuite/g++.dg/cpp1z/class-deduction14.C *************** bafa3ed0da0c14fc9337428032934f0f gcc/te *** 15472,15477 **** --- 15551,15557 ---- d0b40ed850fd3e55310fb990acbb4a46 gcc/testsuite/g++.dg/cpp1z/elide4.C c19f90a6b67cea2957e319db88a63ee3 gcc/testsuite/g++.dg/cpp1z/elide5.C 63be3b6d75aa3c2c8088552683d5245e gcc/testsuite/g++.dg/cpp1z/eval-order10.C + 3abc6084e572264410718d38beb290bb gcc/testsuite/g++.dg/cpp1z/eval-order11.C bb194d9ce590c9e5e69935ebac0f25e4 gcc/testsuite/g++.dg/cpp1z/eval-order2.C 89fdd37f4580457e23eeb34adcf4d4e0 gcc/testsuite/g++.dg/cpp1z/eval-order3.C 6d8d378fedaf65b4cb89952060799280 gcc/testsuite/g++.dg/cpp1z/eval-order4.C *************** ccfcd25cc3fcf43345e501263a74dd42 gcc/te *** 15547,15559 **** eb93f179b897016fd2cc051e599339bd gcc/testsuite/g++.dg/cpp1z/inline-var9.C 2eb7c8c6899f0df45df9a494fae11bac gcc/testsuite/g++.dg/cpp1z/lambda-__func__.C 7a8a15c87abf5409fafc54402d33a274 gcc/testsuite/g++.dg/cpp1z/lambda-inherit1.C ! 015fa9d631289b4abe8bd2e5a5af64bf gcc/testsuite/g++.dg/cpp1z/lambda-this1.C 4d5397c5628de21a519cdb9d72b6c09c gcc/testsuite/g++.dg/cpp1z/lambda-this2.C 479583a9b0a84ad094ffea6491d7d049 gcc/testsuite/g++.dg/cpp1z/lambda-this3.C f0929bbaf568d27f99846551432c2355 gcc/testsuite/g++.dg/cpp1z/lambda-this4.C b2e693257fda5fe10cbb34d955388a18 gcc/testsuite/g++.dg/cpp1z/lambda-this5.C 8eada34c37dd9c88a198df9ad47fe463 gcc/testsuite/g++.dg/cpp1z/lambda-this6.C 5c12f165e35a5895c64e657c52849d04 gcc/testsuite/g++.dg/cpp1z/lambda-this7.C 5e200a2d5bf3f215cbed7959057efae1 gcc/testsuite/g++.dg/cpp1z/launder1.C 53bc478df6abc05a4afccaa39805cab4 gcc/testsuite/g++.dg/cpp1z/launder2.C ac1986fd8c7fe4bed9f3610b5c780124 gcc/testsuite/g++.dg/cpp1z/launder3.C --- 15627,15640 ---- eb93f179b897016fd2cc051e599339bd gcc/testsuite/g++.dg/cpp1z/inline-var9.C 2eb7c8c6899f0df45df9a494fae11bac gcc/testsuite/g++.dg/cpp1z/lambda-__func__.C 7a8a15c87abf5409fafc54402d33a274 gcc/testsuite/g++.dg/cpp1z/lambda-inherit1.C ! 3877596e9514746297c5a03b47713315 gcc/testsuite/g++.dg/cpp1z/lambda-this1.C 4d5397c5628de21a519cdb9d72b6c09c gcc/testsuite/g++.dg/cpp1z/lambda-this2.C 479583a9b0a84ad094ffea6491d7d049 gcc/testsuite/g++.dg/cpp1z/lambda-this3.C f0929bbaf568d27f99846551432c2355 gcc/testsuite/g++.dg/cpp1z/lambda-this4.C b2e693257fda5fe10cbb34d955388a18 gcc/testsuite/g++.dg/cpp1z/lambda-this5.C 8eada34c37dd9c88a198df9ad47fe463 gcc/testsuite/g++.dg/cpp1z/lambda-this6.C 5c12f165e35a5895c64e657c52849d04 gcc/testsuite/g++.dg/cpp1z/lambda-this7.C + fe0e2f145516378207e79accb6ecd2fc gcc/testsuite/g++.dg/cpp1z/lambda-this8.C 5e200a2d5bf3f215cbed7959057efae1 gcc/testsuite/g++.dg/cpp1z/launder1.C 53bc478df6abc05a4afccaa39805cab4 gcc/testsuite/g++.dg/cpp1z/launder2.C ac1986fd8c7fe4bed9f3610b5c780124 gcc/testsuite/g++.dg/cpp1z/launder3.C *************** f35c40f9359deda380357490b21bcf4f gcc/te *** 15654,15659 **** --- 15735,15741 ---- 41cdf88b4e2dc9ba29ab954fd0f3d05c gcc/testsuite/g++.dg/cpp1z/static2.C 491588e8dd93d83d5049e3c332e8755f gcc/testsuite/g++.dg/cpp1z/static_assert-nomsg.C 7dd3448d4722a9ee0446db6aa3c7a0b0 gcc/testsuite/g++.dg/cpp1z/ttp1.C + 0cd62ffa5ae2d02bd665e02895b12f01 gcc/testsuite/g++.dg/cpp1z/ttp2.C 64b3f9e4e9d3f04ac339e1f86e353e9b gcc/testsuite/g++.dg/cpp1z/typename-tmpl-tmpl-parm-neg.C 784869f1e71b786f8f21d9ec4de31fa0 gcc/testsuite/g++.dg/cpp1z/typename-tmpl-tmpl-parm-ped-neg.C df4eaf51ddd73d7721c81b9a43f313c1 gcc/testsuite/g++.dg/cpp1z/typename-tmpl-tmpl-parm.C *************** fcb976b72ee32e007373a445749a9790 gcc/te *** 15672,15677 **** --- 15754,15760 ---- 5be5d7f2f40f7aea358f9007942afde2 gcc/testsuite/g++.dg/cpp1z/utf8-2a.C 744ee2159e8e7541ebf28afa0155714d gcc/testsuite/g++.dg/cpp1z/utf8-neg.C c307915525471ee8f08e6059faf237d8 gcc/testsuite/g++.dg/cpp1z/utf8.C + e8f7bd0576728e974495935283ad4f39 gcc/testsuite/g++.dg/cpp23/constexpr-nonlit7.C 94d923eb6e3e9a6e1a82b6aa88915ed5 gcc/testsuite/g++.dg/cpp23/cplusplus.C d39bcd154de40d84b2eefbe2f9697524 gcc/testsuite/g++.dg/cpp23/feat-cxx2b.C 570aa212dcff2a498d044c98fa66a858 gcc/testsuite/g++.dg/cpp23/lambda-specifiers1.C *************** f45c14802a831b4c2d66638708833b4e gcc/te *** 15704,15709 **** --- 15787,15793 ---- fdfceca1c064eeb01d47f6a29cee1f95 gcc/testsuite/g++.dg/cpp2a/attr-likely6.C 3ad5e93951baf0d22ea016ff9e7e5647 gcc/testsuite/g++.dg/cpp2a/bit-cast1.C a3d09682b891e46d2909fa15e90968be gcc/testsuite/g++.dg/cpp2a/bit-cast10.C + fc2669bf6c2d9f293b18029e7572dc94 gcc/testsuite/g++.dg/cpp2a/bit-cast15.C 1a2fa5e09ce4afea93f8549367941793 gcc/testsuite/g++.dg/cpp2a/bit-cast2.C 4cd9a6c75b7b9c06d500d33a4b70e045 gcc/testsuite/g++.dg/cpp2a/bit-cast3.C 43041147b254e878b1962b35b230ff79 gcc/testsuite/g++.dg/cpp2a/bit-cast4.C *************** dbb38d79b4b755c3350566626fdf9bd8 gcc/te *** 15721,15726 **** --- 15805,15812 ---- f185c95e6533c47459ae6a6e7821f682 gcc/testsuite/g++.dg/cpp2a/class-deduction-abbrev1.C d9bcdea082949e0c87b6954f2dd67298 gcc/testsuite/g++.dg/cpp2a/class-deduction-aggr1.C 28f5f39099d59e2a95b5239e6d85699e gcc/testsuite/g++.dg/cpp2a/class-deduction-aggr10.C + 80bb72b22049436be8e3d5b17337457b gcc/testsuite/g++.dg/cpp2a/class-deduction-aggr11.C + 1cce8d0a0bce7ccebf00c1bcf3c51eb3 gcc/testsuite/g++.dg/cpp2a/class-deduction-aggr12.C bfe691406f456aa2bf87cad44ebe9fdf gcc/testsuite/g++.dg/cpp2a/class-deduction-aggr2.C 874ea45b0464e3169c1d395e9b4c624e gcc/testsuite/g++.dg/cpp2a/class-deduction-aggr3.C f664fc9add616872e35649f615430da5 gcc/testsuite/g++.dg/cpp2a/class-deduction-aggr4.C *************** fb350867aa8cdc67b249fa261640a65d gcc/te *** 15754,15759 **** --- 15840,15847 ---- 482c7f451336e07eabe2f9835704eda8 gcc/testsuite/g++.dg/cpp2a/concepts-ca107.C ea403ba40e42238758942621a96e8847 gcc/testsuite/g++.dg/cpp2a/concepts-class.C 63ed441f3454dbb9de59b7ce9563a475 gcc/testsuite/g++.dg/cpp2a/concepts-class2.C + d19fb841ca3071b5e021ae201278d700 gcc/testsuite/g++.dg/cpp2a/concepts-class3.C + de871ba0c669234d7775a8dd50e71a82 gcc/testsuite/g++.dg/cpp2a/concepts-class4.C 23827376311292569303ff5fd4542c5c gcc/testsuite/g++.dg/cpp2a/concepts-cmath.C d6b4a2062d9072a514a787db6f02cc29 gcc/testsuite/g++.dg/cpp2a/concepts-complete1.C cb8668f19e63ee61b88c50eb36fc3645 gcc/testsuite/g++.dg/cpp2a/concepts-complete2.C *************** ac59cd12de1286d61d74c57276a780ba gcc/te *** 15805,15810 **** --- 15893,15899 ---- 921090d482556f3414f75aa90ca0fcfb gcc/testsuite/g++.dg/cpp2a/concepts-friend6.C 8fc5265429852a8c08186712fb5cc368 gcc/testsuite/g++.dg/cpp2a/concepts-friend7.C 9cc4512c24e2e9e9e5f02efffe4313b7 gcc/testsuite/g++.dg/cpp2a/concepts-friend8.C + 1d68431ad23ac3b4761a0edaca80b863 gcc/testsuite/g++.dg/cpp2a/concepts-friend9.C 99da7c31998a40b6a93d18ba7b0f8b17 gcc/testsuite/g++.dg/cpp2a/concepts-iconv1.C 1937ae9933c87a03a76c217d414991cf gcc/testsuite/g++.dg/cpp2a/concepts-inherit-ctor10.C fe1e62c95a2bf83c96a7c376426b20ce gcc/testsuite/g++.dg/cpp2a/concepts-inherit-ctor11.C *************** ce799078e9f1ff1339d260a0437f50bb gcc/te *** 15824,15829 **** --- 15913,15920 ---- 06d21d29a1465389d640dd9c6385524d gcc/testsuite/g++.dg/cpp2a/concepts-lambda15.C e4194669f093a7afc4d5ecdf72352e0f gcc/testsuite/g++.dg/cpp2a/concepts-lambda16.C 06bd50a31b004aed3b6d5dbd8ba09c45 gcc/testsuite/g++.dg/cpp2a/concepts-lambda17.C + a7e2f7d20a67204e43ab8b4439aa4e77 gcc/testsuite/g++.dg/cpp2a/concepts-lambda18.C + db4d7afa9cc5c159bbf139e868fd3544 gcc/testsuite/g++.dg/cpp2a/concepts-lambda19.C c61f89754bf19eb066c90223050eb1d6 gcc/testsuite/g++.dg/cpp2a/concepts-lambda2.C f2b845034b89685c0074632f8a1947ff gcc/testsuite/g++.dg/cpp2a/concepts-lambda3.C 6f185f0a7016ab67c7f0d4ffa7012182 gcc/testsuite/g++.dg/cpp2a/concepts-lambda4.C *************** dcc812ca298a6d2d310068abfa0d1270 gcc/te *** 15836,15841 **** --- 15927,15933 ---- 866a570be4d1afdfa0c2b5130d439bb2 gcc/testsuite/g++.dg/cpp2a/concepts-member-concept.C d12b098e52b49342652a92f712e212d7 gcc/testsuite/g++.dg/cpp2a/concepts-memfun-err.C 02865ef6ff74cb9b4108964da2da397f gcc/testsuite/g++.dg/cpp2a/concepts-memfun.C + b53c750bcf0863ab645580c6652a2f79 gcc/testsuite/g++.dg/cpp2a/concepts-memfun2.C 7f5a683e6cb36d020f2d955fd2b5662a gcc/testsuite/g++.dg/cpp2a/concepts-memtmpl1.C e09adbfcc76e9a9b156fb1128f518684 gcc/testsuite/g++.dg/cpp2a/concepts-memtmpl2.C 913d434a43b62d7d2f966fd44a4a141e gcc/testsuite/g++.dg/cpp2a/concepts-memtmpl3.C *************** db9b9a846a39244749267e6c2d9751ef gcc/te *** 15850,15855 **** --- 15942,15949 ---- 89327af296c5eb0dd5649a853dc818a7 gcc/testsuite/g++.dg/cpp2a/concepts-nonbool3.C d832de2b6b1b93adff12b06c34e84556 gcc/testsuite/g++.dg/cpp2a/concepts-nondep1.C ca398f2b2e8443dc7a94b70c83a40ca1 gcc/testsuite/g++.dg/cpp2a/concepts-nondep1a.C + 1494c15487c9bc95ba5295fa3498592b gcc/testsuite/g++.dg/cpp2a/concepts-nondep2.C + 7ceb4140c2faad64ec92d7cee1fa713b gcc/testsuite/g++.dg/cpp2a/concepts-nondep3.C 346f87c83404f356f2db97a19e1e04a2 gcc/testsuite/g++.dg/cpp2a/concepts-p1141.C 517f6d7a5f4dd6f650d5d9a39a8a2f24 gcc/testsuite/g++.dg/cpp2a/concepts-p2092.C c02adf26d58e820807cae8699c98d45a gcc/testsuite/g++.dg/cpp2a/concepts-p2113a.C *************** c2d0d078fee9a53020db24bba52afb7a gcc/te *** 15872,15877 **** --- 15966,15972 ---- d52bc31ed2109bf517ab9f47b7e08903 gcc/testsuite/g++.dg/cpp2a/concepts-placeholder7.C 8ebe9b5f46fa5edb161d44cdccda7129 gcc/testsuite/g++.dg/cpp2a/concepts-placeholder8.C fc797eabdd1dc0d22609e8841d633f99 gcc/testsuite/g++.dg/cpp2a/concepts-pmf1.C + 93d1e55f1ec8ecc0589c4cf386fc18c7 gcc/testsuite/g++.dg/cpp2a/concepts-pr104410.C 2e23f19968091d773a47c43a32a784ae gcc/testsuite/g++.dg/cpp2a/concepts-pr58500.C 07c6a4dff1357ef61c0d30b12db5c948 gcc/testsuite/g++.dg/cpp2a/concepts-pr58534.C b6ba42db630bfd3259d65662fc03aaa0 gcc/testsuite/g++.dg/cpp2a/concepts-pr58535.C *************** df7a18db64b370a45805fb151fc0de95 gcc/te *** 15899,15905 **** eade582d72f3e6b1e06dacf6ee9217ce gcc/testsuite/g++.dg/cpp2a/concepts-pr67070.C d0535f13efe2f4a56e6de25c122b35b9 gcc/testsuite/g++.dg/cpp2a/concepts-pr67147.C 0dc83269858647aa5dba5ceae232a823 gcc/testsuite/g++.dg/cpp2a/concepts-pr67148.C ! 2d2842093c20739f7b3438e8c7bdae89 gcc/testsuite/g++.dg/cpp2a/concepts-pr67178.C ad609edfa0bd5fd5ce502592f3ed81b2 gcc/testsuite/g++.dg/cpp2a/concepts-pr67210.C 595458aae83450bc59b1e7ae5d94db55 gcc/testsuite/g++.dg/cpp2a/concepts-pr67217.C c1ec010d40ead55576d4d7addbda8b52 gcc/testsuite/g++.dg/cpp2a/concepts-pr67225-1.C --- 15994,16000 ---- eade582d72f3e6b1e06dacf6ee9217ce gcc/testsuite/g++.dg/cpp2a/concepts-pr67070.C d0535f13efe2f4a56e6de25c122b35b9 gcc/testsuite/g++.dg/cpp2a/concepts-pr67147.C 0dc83269858647aa5dba5ceae232a823 gcc/testsuite/g++.dg/cpp2a/concepts-pr67148.C ! 4c1fab77a146c92c07ea41b30ef32b31 gcc/testsuite/g++.dg/cpp2a/concepts-pr67178.C ad609edfa0bd5fd5ce502592f3ed81b2 gcc/testsuite/g++.dg/cpp2a/concepts-pr67210.C 595458aae83450bc59b1e7ae5d94db55 gcc/testsuite/g++.dg/cpp2a/concepts-pr67217.C c1ec010d40ead55576d4d7addbda8b52 gcc/testsuite/g++.dg/cpp2a/concepts-pr67225-1.C *************** f1cbfc7c7a5b436ba46f015490d1f5e3 gcc/te *** 15952,15957 **** --- 16047,16053 ---- 7eeddbc465798c530d779ab3ff662f46 gcc/testsuite/g++.dg/cpp2a/concepts-pr85265.C 27d70640425a392e01875d0ec6be9397 gcc/testsuite/g++.dg/cpp2a/concepts-pr85706.C d2442a59cddf2d53ae6261852ada8b20 gcc/testsuite/g++.dg/cpp2a/concepts-pr85808.C + e39f914372d756386339c8f07831dc72 gcc/testsuite/g++.dg/cpp2a/concepts-pr85846.C 3ec7fd936ea8f9e5e43d1b44ab8f2317 gcc/testsuite/g++.dg/cpp2a/concepts-pr86002.C 80166dc2f827ff198d6fa5167ed0be5f gcc/testsuite/g++.dg/cpp2a/concepts-pr86269.C 3d1ff458b6249f9f9032ae10025f0524 gcc/testsuite/g++.dg/cpp2a/concepts-pr87441.C *************** e4824ff4a368f4083c4ab5643225d818 gcc/te *** 15960,15965 **** --- 16056,16062 ---- a1669b67bbdc997b3e18d984f69a5dd7 gcc/testsuite/g++.dg/cpp2a/concepts-pr92078.C 84e3bf69ec5b7c3c513058b3d69bfc41 gcc/testsuite/g++.dg/cpp2a/concepts-pr95497.C f14a1d093c6192fd601a94286a19cd55 gcc/testsuite/g++.dg/cpp2a/concepts-pr97093.C + f713831318164c8a8d53cee4f41a5feb gcc/testsuite/g++.dg/cpp2a/concepts-pr98394.C b643732d29e3ea4d763cb2354949bd77 gcc/testsuite/g++.dg/cpp2a/concepts-recursive-sat1.C 494a9362815e7269cd14d3b6eb900c68 gcc/testsuite/g++.dg/cpp2a/concepts-recursive-sat2.C c74823853141d61f8e8a8e1d3a3f8bd4 gcc/testsuite/g++.dg/cpp2a/concepts-recursive-sat3.C *************** de98c5b97dd70e513e1c4be84c9e9153 gcc/te *** 15984,15989 **** --- 16081,16089 ---- 533db7e7d7422951c2d0551729c35e3d gcc/testsuite/g++.dg/cpp2a/concepts-requires24.C 798127f49ece043211b259a3610451d5 gcc/testsuite/g++.dg/cpp2a/concepts-requires25.C a8200681bca98aa623d744251dada14f gcc/testsuite/g++.dg/cpp2a/concepts-requires26.C + 0d93946d4bdaa9dd958a99b19128372c gcc/testsuite/g++.dg/cpp2a/concepts-requires28.C + 9c9bfab9cfda662c9a6cf1fcf12eba12 gcc/testsuite/g++.dg/cpp2a/concepts-requires29.C + e6e703168548b58827e38ded644feb36 gcc/testsuite/g++.dg/cpp2a/concepts-requires29a.C ed7e50860b352f18084c5990524595b2 gcc/testsuite/g++.dg/cpp2a/concepts-requires3.C d3851914c01bf78597e5cb411ed0b3d5 gcc/testsuite/g++.dg/cpp2a/concepts-requires4.C 480013be0f806d0b078176447ae77360 gcc/testsuite/g++.dg/cpp2a/concepts-requires5.C *************** c66c957a03459efed336ab628ac7a020 gcc/te *** 16004,16009 **** --- 16104,16110 ---- 476e5200a2508065879f3ee51bfd73b5 gcc/testsuite/g++.dg/cpp2a/concepts-template-parm6.C 9ff1f88974ac56dba726f1074288f8e9 gcc/testsuite/g++.dg/cpp2a/concepts-template-parm8.C ec9215388b111eac1916dca163b2b4dd gcc/testsuite/g++.dg/cpp2a/concepts-template-parm9.C + ee36c7ebc03385f37bcba1c49e06c808 gcc/testsuite/g++.dg/cpp2a/concepts-this1.C 39c15f1dc604f714304d144250164089 gcc/testsuite/g++.dg/cpp2a/concepts-traits1.C c9a6ab7bc0f1947e843b9c7150ccb98c gcc/testsuite/g++.dg/cpp2a/concepts-traits2.C 82c399ad9b34b095f9489e636de58940 gcc/testsuite/g++.dg/cpp2a/concepts-ts1.C *************** ef5b971f899385a069755bce1facefe5 gcc/te *** 16014,16024 **** --- 16115,16132 ---- ac4c42a0f2fd071297e154c82dd3e5cc gcc/testsuite/g++.dg/cpp2a/concepts-ts6.C 427561cea6003909c32f28fbe3d276c7 gcc/testsuite/g++.dg/cpp2a/concepts-ttp1.C e9afe83f998c36b2fb7c1f09347d0bde gcc/testsuite/g++.dg/cpp2a/concepts-ttp2.C + 9fd760dc32683991c1046ee2a7769a0f gcc/testsuite/g++.dg/cpp2a/concepts-ttp4.C 12bfd0f0b99ab93e9f3c3ea3610ad8db gcc/testsuite/g++.dg/cpp2a/concepts-uneval1.C 728cf90d57c99021cb85c6b8dd9ffa5e gcc/testsuite/g++.dg/cpp2a/concepts-uneval2.C + b06aea4ef34a1015ed525413558ddac0 gcc/testsuite/g++.dg/cpp2a/concepts-uneval4.C + 46c88800430846d1342afc6e037103b6 gcc/testsuite/g++.dg/cpp2a/concepts-uneval5.C 0b2965d78d2aee9abfaea9a39dd0dd98 gcc/testsuite/g++.dg/cpp2a/concepts-using1.C a95dbf28241ffec87fb48912ed83e629 gcc/testsuite/g++.dg/cpp2a/concepts-using2.C 8d75a7bd1dff1e92992b77d66deb889b gcc/testsuite/g++.dg/cpp2a/concepts-using3.C + eb51a2e88a343491b3a0676b4ff623cf gcc/testsuite/g++.dg/cpp2a/concepts-var-templ1.C + c344a88e2fb58ca9d19beb62602dabc5 gcc/testsuite/g++.dg/cpp2a/concepts-var-templ1a.C + d29bcca633bb639bebf16b846292cebc gcc/testsuite/g++.dg/cpp2a/concepts-var-templ1b.C + 23bf69239423f24f23aed1a835507886 gcc/testsuite/g++.dg/cpp2a/concepts-var-templ2.C dcaf7dd2f1e98c3d3da49fbec7b5d2ab gcc/testsuite/g++.dg/cpp2a/concepts-variadic1.C 48e56d9773523969e244eb7e1261e6c1 gcc/testsuite/g++.dg/cpp2a/concepts-variadic2.C 249b3f4302b45c107e3ce9d2aebc31b4 gcc/testsuite/g++.dg/cpp2a/concepts-variadic3.C *************** bbfc0967b09bb4b2f1ace77c10c76387 gcc/te *** 16053,16058 **** --- 16161,16168 ---- cf282e3680d2137a27a9a74bced96291 gcc/testsuite/g++.dg/cpp2a/consteval18.C b25072b636670ba0bf6636ee75629f7f gcc/testsuite/g++.dg/cpp2a/consteval19.C 6053d37c0ed21135f3f081cb54bda42d gcc/testsuite/g++.dg/cpp2a/consteval2.C + 419c55859a9fd338cbd6417cdd3b15d3 gcc/testsuite/g++.dg/cpp2a/consteval26.C + 7b94006f015ce630f646bbae9c502103 gcc/testsuite/g++.dg/cpp2a/consteval27.C fc387c7b911c42cac7b695c9473df70b gcc/testsuite/g++.dg/cpp2a/consteval3.C 2d6205fea644048201c44086df527c3a gcc/testsuite/g++.dg/cpp2a/consteval4.C e71633ec506016932dc09c057d98c36c gcc/testsuite/g++.dg/cpp2a/consteval5.C *************** be6031c0bedd5678304d7154f8ea2b35 gcc/te *** 16064,16069 **** --- 16174,16180 ---- d28d3e5520803aa70919b2a4b20e6386 gcc/testsuite/g++.dg/cpp2a/constexpr-99287.C 2004a926e55a105d0f80db50528a9def gcc/testsuite/g++.dg/cpp2a/constexpr-dtor1.C cbf5d5a37bc2a85bde738f9433003a39 gcc/testsuite/g++.dg/cpp2a/constexpr-dtor10.C + 0e35a64721caa10ace15014c6a57e598 gcc/testsuite/g++.dg/cpp2a/constexpr-dtor12.C 18ceb8d2ffe5d8e310f40839d2edf0d5 gcc/testsuite/g++.dg/cpp2a/constexpr-dtor2.C 16ca73f823848454829fa2e5ea9b75f8 gcc/testsuite/g++.dg/cpp2a/constexpr-dtor3.C 780076eefadeb33a1dce586533960b80 gcc/testsuite/g++.dg/cpp2a/constexpr-dtor4.C *************** bf612b2e0a4a17b8bf679dd44dbbf19c gcc/te *** 16118,16134 **** 8f2efe7c8b150f5362a6ee3c235d3d14 gcc/testsuite/g++.dg/cpp2a/constexpr-new11.C 4b1bc923fe1171a6f3a5f32e27c87ec3 gcc/testsuite/g++.dg/cpp2a/constexpr-new12.C 897d64e74d4fec51d18faea9a304c8e5 gcc/testsuite/g++.dg/cpp2a/constexpr-new13.C ! 6340911062f801186a4ac6aa85195912 gcc/testsuite/g++.dg/cpp2a/constexpr-new14.C 8088a7cc9210263a003278c59aa0c59e gcc/testsuite/g++.dg/cpp2a/constexpr-new15.C d03c70bf2e20a7e4078f0e590a42e18a gcc/testsuite/g++.dg/cpp2a/constexpr-new16.C 8b5edf9c38364b0932161b7fd5869ae6 gcc/testsuite/g++.dg/cpp2a/constexpr-new17.C affc6e3db6b22de78239c415dfdfc947 gcc/testsuite/g++.dg/cpp2a/constexpr-new18.C ab73ad61b3eadcfd65c5bacdfba0e5d6 gcc/testsuite/g++.dg/cpp2a/constexpr-new19.C ac9bb69a57b021f97f435bdd64fdc923 gcc/testsuite/g++.dg/cpp2a/constexpr-new2.C d1fc949626e604a60a7cd826bb9fe696 gcc/testsuite/g++.dg/cpp2a/constexpr-new3.C 44e96a6cfd450fc9d40c13cc7a4e98f3 gcc/testsuite/g++.dg/cpp2a/constexpr-new4.C ! 66825681dc4cfbae4a8a300bd9102662 gcc/testsuite/g++.dg/cpp2a/constexpr-new5.C ! f219afce12bf5fd4f3da185e5ddf7bf6 gcc/testsuite/g++.dg/cpp2a/constexpr-new6.C f6fd24fce19ffd757bf721f94a36b7f4 gcc/testsuite/g++.dg/cpp2a/constexpr-new7.C d29f558af48deff313645aecd90adb8d gcc/testsuite/g++.dg/cpp2a/constexpr-new8.C 89741a348551bf62e5198e689a2cb9eb gcc/testsuite/g++.dg/cpp2a/constexpr-new9.C --- 16229,16248 ---- 8f2efe7c8b150f5362a6ee3c235d3d14 gcc/testsuite/g++.dg/cpp2a/constexpr-new11.C 4b1bc923fe1171a6f3a5f32e27c87ec3 gcc/testsuite/g++.dg/cpp2a/constexpr-new12.C 897d64e74d4fec51d18faea9a304c8e5 gcc/testsuite/g++.dg/cpp2a/constexpr-new13.C ! bb9d4356d352f35e2f1275cd7739f826 gcc/testsuite/g++.dg/cpp2a/constexpr-new14.C 8088a7cc9210263a003278c59aa0c59e gcc/testsuite/g++.dg/cpp2a/constexpr-new15.C d03c70bf2e20a7e4078f0e590a42e18a gcc/testsuite/g++.dg/cpp2a/constexpr-new16.C 8b5edf9c38364b0932161b7fd5869ae6 gcc/testsuite/g++.dg/cpp2a/constexpr-new17.C affc6e3db6b22de78239c415dfdfc947 gcc/testsuite/g++.dg/cpp2a/constexpr-new18.C ab73ad61b3eadcfd65c5bacdfba0e5d6 gcc/testsuite/g++.dg/cpp2a/constexpr-new19.C ac9bb69a57b021f97f435bdd64fdc923 gcc/testsuite/g++.dg/cpp2a/constexpr-new2.C + 56cf7b227da9e5878b8fab57be913c5e gcc/testsuite/g++.dg/cpp2a/constexpr-new20.C + c045618ca4ccc6ddfb47d7c232152a06 gcc/testsuite/g++.dg/cpp2a/constexpr-new21.C + 8f15e7c6c4a56e33628394c948bba9aa gcc/testsuite/g++.dg/cpp2a/constexpr-new22.C d1fc949626e604a60a7cd826bb9fe696 gcc/testsuite/g++.dg/cpp2a/constexpr-new3.C 44e96a6cfd450fc9d40c13cc7a4e98f3 gcc/testsuite/g++.dg/cpp2a/constexpr-new4.C ! 09667d3c51ef176269e12b2ece101f3d gcc/testsuite/g++.dg/cpp2a/constexpr-new5.C ! 09667d3c51ef176269e12b2ece101f3d gcc/testsuite/g++.dg/cpp2a/constexpr-new6.C f6fd24fce19ffd757bf721f94a36b7f4 gcc/testsuite/g++.dg/cpp2a/constexpr-new7.C d29f558af48deff313645aecd90adb8d gcc/testsuite/g++.dg/cpp2a/constexpr-new8.C 89741a348551bf62e5198e689a2cb9eb gcc/testsuite/g++.dg/cpp2a/constexpr-new9.C *************** a04c89910e58ec260c08da15567aa724 gcc/te *** 16153,16158 **** --- 16267,16273 ---- d39d73d76c96183868eeee6ef1f857f5 gcc/testsuite/g++.dg/cpp2a/constexpr-virtual16.C 3705fff5ce2b4615567efbbb0bd45eab gcc/testsuite/g++.dg/cpp2a/constexpr-virtual17.C aad62a0962b0becb6f9d460d4e8a552b gcc/testsuite/g++.dg/cpp2a/constexpr-virtual18.C + b41b1406ccaabb57748ecf4f05c3e13b gcc/testsuite/g++.dg/cpp2a/constexpr-virtual19.C 8356345162577a74b103ae82b69fde6d gcc/testsuite/g++.dg/cpp2a/constexpr-virtual2.C 387607aa06c3438be11d475781b728ae gcc/testsuite/g++.dg/cpp2a/constexpr-virtual3.C 4d58f9556b7091659bbc5730f1a2697b gcc/testsuite/g++.dg/cpp2a/constexpr-virtual4.C *************** b096e4f747004d3775e106436def90fb gcc/te *** 16176,16181 **** --- 16291,16297 ---- f0123af928ae02ae0fadf251ffb95ffb gcc/testsuite/g++.dg/cpp2a/constinit7.C ea31517e527d7eb88edeeab341ec1a8b gcc/testsuite/g++.dg/cpp2a/constinit8.C 6e6e9c5d790a5990689843e6f2ec1722 gcc/testsuite/g++.dg/cpp2a/constinit9.C + 81af0603de3c4337292c89f54ad9412f gcc/testsuite/g++.dg/cpp2a/construct_at.h 7126b921087cb1629e4184935766b627 gcc/testsuite/g++.dg/cpp2a/cplusplus.C a36a7ca1d0eff1f81629dd71a462961f gcc/testsuite/g++.dg/cpp2a/decomp1-aux.cc 97d028d9e7af8226aa281ebcad5bf29f gcc/testsuite/g++.dg/cpp2a/decomp1.C *************** e45f962710cd5503949da46156ed4ab9 gcc/te *** 16192,16197 **** --- 16308,16317 ---- b3b483cf26f0312c306ce1c7d48e001b gcc/testsuite/g++.dg/cpp2a/desig17.C c75fc09bc39f984910adbf5fac4d1df6 gcc/testsuite/g++.dg/cpp2a/desig18.C 97c50b687300c510314f41249a28b6ad gcc/testsuite/g++.dg/cpp2a/desig2.C + a6ee108d333ad358664c642b33d39e46 gcc/testsuite/g++.dg/cpp2a/desig22.C + 989b46f026a86ab54fda41f606108878 gcc/testsuite/g++.dg/cpp2a/desig23.C + 37f9adbe25dc46488b6c27d2e6505657 gcc/testsuite/g++.dg/cpp2a/desig24.C + 338ebe449657eb02c4167973adb86777 gcc/testsuite/g++.dg/cpp2a/desig25.C 9f489d7f3f58294a91f5e5ea62989f5c gcc/testsuite/g++.dg/cpp2a/desig3.C a1e304613b1097092d10ed459e46fe0c gcc/testsuite/g++.dg/cpp2a/desig4.C bf71e77b18ad9c10b7e9f64f07ee9d28 gcc/testsuite/g++.dg/cpp2a/desig5.C *************** c187aa931c17eb73cbb88ab97078392e gcc/te *** 16241,16246 **** --- 16361,16367 ---- 655dd897a255a0f79bc05d8bbd4cc03c gcc/testsuite/g++.dg/cpp2a/fn-template20.C 835ed618b64943de09c741378f2370fe gcc/testsuite/g++.dg/cpp2a/fn-template21.C 6280e6d73ec3673f4eaf69b3a23bce4b gcc/testsuite/g++.dg/cpp2a/fn-template22.C + 98f18c64e1cb5a6319dcfb95e3bbfad4 gcc/testsuite/g++.dg/cpp2a/fn-template24.C b67c0882307bae581d479d6ccd962725 gcc/testsuite/g++.dg/cpp2a/fn-template3.C 4b303717beb6d4ba59f719e006fbc2ad gcc/testsuite/g++.dg/cpp2a/fn-template4.C bc63639b07fc35a159383408739b1edd gcc/testsuite/g++.dg/cpp2a/fn-template5.C *************** f50c8e7c7812a7eade38d014e8410110 gcc/te *** 16285,16291 **** 05ee01266fc805cc3327ad09e070330c gcc/testsuite/g++.dg/cpp2a/lambda-pack-init6.C 22ec10632b049637a7cbf82f46eda177 gcc/testsuite/g++.dg/cpp2a/lambda-this1.C c09b3406a6984eced941c654f03df8b6 gcc/testsuite/g++.dg/cpp2a/lambda-this2.C ! 1e71778cc108a3420e2ae13532521955 gcc/testsuite/g++.dg/cpp2a/lambda-this3.C 7abf5ee5e303cb03e6f86befc4db72e5 gcc/testsuite/g++.dg/cpp2a/lambda-uneval1.C 8764db80a4d4bd4462720cfe04e40d95 gcc/testsuite/g++.dg/cpp2a/lambda-uneval10.C 7b52674a2e7474eb9db1b1396088d25a gcc/testsuite/g++.dg/cpp2a/lambda-uneval11.C --- 16406,16412 ---- 05ee01266fc805cc3327ad09e070330c gcc/testsuite/g++.dg/cpp2a/lambda-pack-init6.C 22ec10632b049637a7cbf82f46eda177 gcc/testsuite/g++.dg/cpp2a/lambda-this1.C c09b3406a6984eced941c654f03df8b6 gcc/testsuite/g++.dg/cpp2a/lambda-this2.C ! 58b6c8506ae6f77f9498fd7dbed8bdeb gcc/testsuite/g++.dg/cpp2a/lambda-this3.C 7abf5ee5e303cb03e6f86befc4db72e5 gcc/testsuite/g++.dg/cpp2a/lambda-uneval1.C 8764db80a4d4bd4462720cfe04e40d95 gcc/testsuite/g++.dg/cpp2a/lambda-uneval10.C 7b52674a2e7474eb9db1b1396088d25a gcc/testsuite/g++.dg/cpp2a/lambda-uneval11.C *************** e62646013a184c789932c992b3a78a00 gcc/te *** 16334,16339 **** --- 16455,16461 ---- bb9c8f19f3d33b56fadd1fd415391bad gcc/testsuite/g++.dg/cpp2a/nodiscard-reason-nonstring.C 0e71f2f5f3d4746777dace7a1bd7d922 gcc/testsuite/g++.dg/cpp2a/nodiscard-reason-only-one.C ba1604c5e001a8e2d0ac4a1d96b8ef4a gcc/testsuite/g++.dg/cpp2a/nodiscard-reason.C + d1d7235f4cc6cf0a6d3f8feaebdf482e gcc/testsuite/g++.dg/cpp2a/nodiscard1.C 92acf70265f44c6269d81727fc45ec65 gcc/testsuite/g++.dg/cpp2a/nontype-class-defarg1.C 289612441c6058a96bbc8a881af74702 gcc/testsuite/g++.dg/cpp2a/nontype-class-union1.C 3683e4a5274766aeaa901f8f9eae4859 gcc/testsuite/g++.dg/cpp2a/nontype-class1.C *************** f748a095405dd580be1ea5ce646c26bb gcc/te *** 16379,16391 **** --- 16501,16517 ---- b9a410f848c42dbbba77a1ac039bfa42 gcc/testsuite/g++.dg/cpp2a/nontype-class46.C b9ad26b9fc7017117f48b8cf78e070f9 gcc/testsuite/g++.dg/cpp2a/nontype-class47.C efded4551f49016cf2eacd2db554f14b gcc/testsuite/g++.dg/cpp2a/nontype-class48.C + d5f804b9a165b9a149f8abd1027510b5 gcc/testsuite/g++.dg/cpp2a/nontype-class49.C 1724161e3c4a13c45aa669a07a0bf4a5 gcc/testsuite/g++.dg/cpp2a/nontype-class5.C + f285697eea399206e793409d3e3967ae gcc/testsuite/g++.dg/cpp2a/nontype-class50.C + 3d2b8201f489f4abeaf39e7f23050ce6 gcc/testsuite/g++.dg/cpp2a/nontype-class50a.C 86d91c051a62b8d9f32d57f4047a6534 gcc/testsuite/g++.dg/cpp2a/nontype-class6.C c78f774590fd68025c389ab4361f5714 gcc/testsuite/g++.dg/cpp2a/nontype-class7.C 44a04e768668501da12fed78805a7d70 gcc/testsuite/g++.dg/cpp2a/nontype-class8.C bae1c36e9d9dcb762070154c47a6b3c3 gcc/testsuite/g++.dg/cpp2a/nontype-class9.C be21ab07ff4b8655deffc37a85075c52 gcc/testsuite/g++.dg/cpp2a/nontype-complex1.C 59cd71252db72b562133526c9a064fa0 gcc/testsuite/g++.dg/cpp2a/nontype-float1.C + 2f8860b65ba56ff92047be661cd8beb4 gcc/testsuite/g++.dg/cpp2a/nontype-float2.C 8958094420e548b2425f24fcc5fe5fd3 gcc/testsuite/g++.dg/cpp2a/nontype-subob1.C 03bb531700d42cc1b3d2850aaf3f6cd7 gcc/testsuite/g++.dg/cpp2a/nontype-subob2.C de60a968b199113b10c3f84c0d977aa5 gcc/testsuite/g++.dg/cpp2a/paren-init1.C *************** fa24ee04269507190905ce50ace9fb4d gcc/te *** 16507,16512 **** --- 16633,16639 ---- e6eff6554eb70bbd03e6aacbb13adf31 gcc/testsuite/g++.dg/cpp2a/spaceship-synth9.C 15d8852abeec5772820ae98eb7eaba47 gcc/testsuite/g++.dg/cpp2a/spaceship-union1.C 894dc2618d8240d82bbbd6fa81e459f0 gcc/testsuite/g++.dg/cpp2a/spaceship-vec1.C + 0970f285ffbf72900993c2240e49583b gcc/testsuite/g++.dg/cpp2a/spaceship-virtual1.C bca03d65e166f32cbeed0699c7c57e41 gcc/testsuite/g++.dg/cpp2a/spaceship-weak1.C 450162c9df6c789ff19c8cbd1f169756 gcc/testsuite/g++.dg/cpp2a/srcloc1.C 249b6495683b7831ab695dd97edb19d3 gcc/testsuite/g++.dg/cpp2a/srcloc10.C *************** e64fec6e11d681323560675ce433a296 gcc/te *** 16667,16672 **** --- 16794,16800 ---- c7ffd1dd0ae40378732be3ac8729a37c gcc/testsuite/g++.dg/debug/dwarf2/non-virtual-thunk.C abe2799d2ba99877ff9ac9491b7f3baf gcc/testsuite/g++.dg/debug/dwarf2/noreturn-function.C b3cbbd79d5ff077a6732280d76b2284e gcc/testsuite/g++.dg/debug/dwarf2/omp-fesdr.C + b117227269644a100a7a06bf2bc9bf6f gcc/testsuite/g++.dg/debug/dwarf2/pr101378.C 7054dc65c88179389afb9e79cad0df38 gcc/testsuite/g++.dg/debug/dwarf2/pr41063.C 9118e81e091fae9d3d9c8c39a846e724 gcc/testsuite/g++.dg/debug/dwarf2/pr44641.C 90028c65be83718cb8e154df1b502d99 gcc/testsuite/g++.dg/debug/dwarf2/pr45997-1.C *************** e2de0bdd91c75a83e86d8e423986c99d gcc/te *** 16996,17007 **** --- 17124,17137 ---- 43098e3dd291c59e61245771f6e306d0 gcc/testsuite/g++.dg/eh/crash1.C 5bbc5d24a72f53288620959d714d8145 gcc/testsuite/g++.dg/eh/crash2.C 365a9a74302377cb0e82e7f5f1a7bca9 gcc/testsuite/g++.dg/eh/crossjump1.C + 875bba434bfc05ffdb460fdd29bcac68 gcc/testsuite/g++.dg/eh/ctor-fntry1.C 0aa754d9c4446d12efdfc8a0736605bb gcc/testsuite/g++.dg/eh/ctor1.C 1ca64f6d54bb332c6c32d876edf896c0 gcc/testsuite/g++.dg/eh/ctor2.C 3b611e1c78c9e6e4a13c7c40be364f83 gcc/testsuite/g++.dg/eh/ctor3.C e917a91ae5be207defc427d0a079f7e9 gcc/testsuite/g++.dg/eh/dead1.C 87d9e27b3716eabb3dabd6b8b1a837e7 gcc/testsuite/g++.dg/eh/defarg1.C 6d24a241b37d9461b161f8ce01317ab8 gcc/testsuite/g++.dg/eh/delayslot1.C + 8df5b68d232832afbaddc003b31e8de2 gcc/testsuite/g++.dg/eh/delegating1.C f030d79186c78f39f9a09e546ff44eab gcc/testsuite/g++.dg/eh/delete1.C 576fca342f1265b23facee2429c2f6ce gcc/testsuite/g++.dg/eh/div.C 1521a64435be961406151b3df9665c39 gcc/testsuite/g++.dg/eh/dtor1.C *************** af5ab077811439033f9383ef557968f9 gcc/te *** 17259,17264 **** --- 17389,17395 ---- 2ac7c8bbdf5a3e29d0fe098818a73c8c gcc/testsuite/g++.dg/ext/always_inline-4.C ffdb526972a39c85890c287c92939515 gcc/testsuite/g++.dg/ext/always_inline-5.C ba52b9ac855913bbeb9477d56e50a3d7 gcc/testsuite/g++.dg/ext/anon-struct1.C + f8e1155ac1e5e2ac874ef60de1dbe74e gcc/testsuite/g++.dg/ext/anon-struct10.C 0e1fc7f945fafc3c224a24b23c1c2a76 gcc/testsuite/g++.dg/ext/anon-struct2.C 5f70b0d4a3b1e3b8a10d06d54d63f427 gcc/testsuite/g++.dg/ext/anon-struct3.C 3326283e48652640c3c66982c9b8d0ef gcc/testsuite/g++.dg/ext/anon-struct4.C *************** f6addddeaf5bf3773bacaf903a33daa7 gcc/te *** 17416,17421 **** --- 17547,17553 ---- b6c134d4646b46725f8f4f231df5349f gcc/testsuite/g++.dg/ext/attrib60.C df4711200e4e7cd7c5366aa4bdd29d74 gcc/testsuite/g++.dg/ext/attrib61.C 7fcf8dcb8e15b7e121eaede34f3aedfa gcc/testsuite/g++.dg/ext/attrib62.C + c992ba90cd524ff973d2e06226c41bfa gcc/testsuite/g++.dg/ext/attrib64.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 *************** cfb1e3d3e6cedd5cd651ea51248b3822 gcc/te *** 17543,17548 **** --- 17675,17681 ---- b619a632f099ce3dab4b1867824fb8ba gcc/testsuite/g++.dg/ext/cond2.C 35f45813a9e02081105f413dba5483a7 gcc/testsuite/g++.dg/ext/cond3.C cdc7152adabb958f4aa80615de6f6929 gcc/testsuite/g++.dg/ext/cond4.C + be6818fc4bf61c5a68bebfcc1b622d06 gcc/testsuite/g++.dg/ext/cond5.C 65a3298462ef1b7eae8f56cd64782e6f gcc/testsuite/g++.dg/ext/consteval1.C aedb0bd74d236b797fb016d0b7034db4 gcc/testsuite/g++.dg/ext/constexpr-attr-cleanup1.C 6090149115c2b20514a8f0eea93988bf gcc/testsuite/g++.dg/ext/constexpr-builtin1.C *************** c40a26618938bc351d739abd8b281498 gcc/te *** 17620,17626 **** 975001b389e49c31b484e83e1162654c gcc/testsuite/g++.dg/ext/flexary27.C c1e635c954030e7a49c5a15d469f0933 gcc/testsuite/g++.dg/ext/flexary28.C 5c2fc219d05907c7454763144bfc464d gcc/testsuite/g++.dg/ext/flexary29.C ! f66f889c43e1cd491c7d66ecdd645529 gcc/testsuite/g++.dg/ext/flexary3.C 4a3b7f4deda6d57018846db88d1d2c1e gcc/testsuite/g++.dg/ext/flexary30.C 6543d0e6126e4382512d15ed3c0df76d gcc/testsuite/g++.dg/ext/flexary31.C 3622bd11de543347af7ad43a5ee1530d gcc/testsuite/g++.dg/ext/flexary32.C --- 17753,17759 ---- 975001b389e49c31b484e83e1162654c gcc/testsuite/g++.dg/ext/flexary27.C c1e635c954030e7a49c5a15d469f0933 gcc/testsuite/g++.dg/ext/flexary28.C 5c2fc219d05907c7454763144bfc464d gcc/testsuite/g++.dg/ext/flexary29.C ! 5856020cf5487180f5f3f6e685e229bc gcc/testsuite/g++.dg/ext/flexary3.C 4a3b7f4deda6d57018846db88d1d2c1e gcc/testsuite/g++.dg/ext/flexary30.C 6543d0e6126e4382512d15ed3c0df76d gcc/testsuite/g++.dg/ext/flexary31.C 3622bd11de543347af7ad43a5ee1530d gcc/testsuite/g++.dg/ext/flexary32.C *************** b2c60991d5b6f21b7202a6d5a7c81412 gcc/te *** 17630,17636 **** --- 17763,17771 ---- da96fc262f063d29280b10e42245318e gcc/testsuite/g++.dg/ext/flexary36.C af99e27a41b2fdd9e20db6d7755a990c gcc/testsuite/g++.dg/ext/flexary37.C bdc1e53895229e84f994524314021292 gcc/testsuite/g++.dg/ext/flexary38.C + e3abdb563edb7ccc89af09138c07030d gcc/testsuite/g++.dg/ext/flexary39.C 7c5aa9e0bd6655b7c3b04f320d67e736 gcc/testsuite/g++.dg/ext/flexary4.C + 7b20dd05a975dd9f5eda50838835ac7c gcc/testsuite/g++.dg/ext/flexary40.C 55d07993cbe972abdb053af6f481f34e gcc/testsuite/g++.dg/ext/flexary5.C 992897ce6ded0ffee198a5cf85775530 gcc/testsuite/g++.dg/ext/flexary6.C df64a969f76ad8dba013343925441866 gcc/testsuite/g++.dg/ext/flexary7.C *************** f2cf0baaaf489aa15f22210e07d052d1 gcc/te *** 17690,17695 **** --- 17825,17831 ---- 4443382c2ba1abef21e5ac6b05161a19 gcc/testsuite/g++.dg/ext/integer-pack2.C c82a623a667acc283be2af5673150fd6 gcc/testsuite/g++.dg/ext/integer-pack3.C c739fd3c0527fbd970a2964c988fe2de gcc/testsuite/g++.dg/ext/integer-pack4.C + 3ca16f51f64cd6e80befc97ce779a0a4 gcc/testsuite/g++.dg/ext/integer-pack5.C 3a16bb49d1e751989bc6c5980e68cc41 gcc/testsuite/g++.dg/ext/interface1.C a6025f300298ca27e5d4454172592895 gcc/testsuite/g++.dg/ext/interface1.h 0530572db926ff489aea49718a5eabe8 gcc/testsuite/g++.dg/ext/interface1a.cc *************** c8b5af558a67cf874bb7bd69c49e93fb gcc/te *** 17747,17752 **** --- 17883,17889 ---- 76b226bf6ae177c81d4a2cf611add294 gcc/testsuite/g++.dg/ext/is_trivially_constructible4.C d78a2d4cf0d25d5c41563a855f2655c8 gcc/testsuite/g++.dg/ext/is_trivially_constructible5.C 274ba6a4204132602ce81bb35c3ad2c9 gcc/testsuite/g++.dg/ext/is_trivially_constructible6.C + 374c8d748d6f3a2ae7c4dc04efb332d4 gcc/testsuite/g++.dg/ext/is_trivially_constructible7.C 4595fa7ec3da0916bc04836cb7e0b080 gcc/testsuite/g++.dg/ext/is_trivially_copyable.C f68f695366fe576aaf12aeac3127a68d gcc/testsuite/g++.dg/ext/is_union.C db0b295df95be25a97d67c002c45679e gcc/testsuite/g++.dg/ext/ivdep-1.C *************** dcac6e7499baa3b9fea9a820caf32bd6 gcc/te *** 18025,18031 **** eb42889d7ff5930cf589d7b103805b82 gcc/testsuite/g++.dg/ext/visibility/namespace2.C add25a0c0d2bcb8abe77dc78d0e41452 gcc/testsuite/g++.dg/ext/visibility/namespace3.C 9a8d2d6de4dd65f8d370f81892ab674c gcc/testsuite/g++.dg/ext/visibility/new1.C ! f281064d572b9d936c2688733534f68b gcc/testsuite/g++.dg/ext/visibility/noPLT.C 088ee3648d1129db2680023bfe6d21ea gcc/testsuite/g++.dg/ext/visibility/overload-1.C d772efe881f5513efc48e854c86b465e gcc/testsuite/g++.dg/ext/visibility/pragma-override1.C c701eeb2a89e68678d091a7a01b3cbab gcc/testsuite/g++.dg/ext/visibility/pragma-override2.C --- 18162,18168 ---- eb42889d7ff5930cf589d7b103805b82 gcc/testsuite/g++.dg/ext/visibility/namespace2.C add25a0c0d2bcb8abe77dc78d0e41452 gcc/testsuite/g++.dg/ext/visibility/namespace3.C 9a8d2d6de4dd65f8d370f81892ab674c gcc/testsuite/g++.dg/ext/visibility/new1.C ! b47262bfbef0f34f6fc937ea1a3329d2 gcc/testsuite/g++.dg/ext/visibility/noPLT.C 088ee3648d1129db2680023bfe6d21ea gcc/testsuite/g++.dg/ext/visibility/overload-1.C d772efe881f5513efc48e854c86b465e gcc/testsuite/g++.dg/ext/visibility/pragma-override1.C c701eeb2a89e68678d091a7a01b3cbab gcc/testsuite/g++.dg/ext/visibility/pragma-override2.C *************** f810d8d490c2163100b8092bb733b17d gcc/te *** 18063,18068 **** --- 18200,18206 ---- 50a5255eedce5952a1d40d86a910db5a gcc/testsuite/g++.dg/ext/visibility/visibility-7.C 1e3d15af5ef5d1e7ce91f6fb5b2ce876 gcc/testsuite/g++.dg/ext/visibility/visibility-8.C 52a68707f7a31ec98e42c99f237d00db gcc/testsuite/g++.dg/ext/visibility/visibility-9.C + ce175ea385a92b92e4a4d666c429ce62 gcc/testsuite/g++.dg/ext/visibility/visibility-local-extern1.C fada77e89afed01f6b16c99bba16e18a gcc/testsuite/g++.dg/ext/visibility/warn2.C 3a38b55c777fae7a929a7353e32e9c85 gcc/testsuite/g++.dg/ext/visibility/warn3.C dc76fc17bcb2fe7dfe39be101a9bd6b5 gcc/testsuite/g++.dg/ext/visibility/warn4.C *************** d35e3d499f9c61083c8cc1857f8e1c17 gcc/te *** 18084,18089 **** --- 18222,18228 ---- 9b6080415288de72842bd85208414ade gcc/testsuite/g++.dg/ext/vla21.C a74556a89523d9e92d56253803605cd3 gcc/testsuite/g++.dg/ext/vla22.C 094facd4da54e59d052fc6a3d9479d29 gcc/testsuite/g++.dg/ext/vla23.C + 320764967cdf14eb97d11fff57ae0db4 gcc/testsuite/g++.dg/ext/vla24.C 6aaa10f349349a2417e726c48cb7e61e gcc/testsuite/g++.dg/ext/vla3.C aaa77e556dd365b972bc30be4df0d443 gcc/testsuite/g++.dg/ext/vla4.C cd0140e3425e97d1c4b919a0ef8b54c3 gcc/testsuite/g++.dg/ext/vla5.C *************** ab5a2e3886c2a5718ee179f9c9a446ce gcc/te *** 18150,18155 **** --- 18289,18295 ---- 50fb26ed859d201ce4b714967a5c4066 gcc/testsuite/g++.dg/goacc/firstprivate-mappings-1.C ada0b64fd084872e20f55ba767d06b29 gcc/testsuite/g++.dg/goacc/goacc.exp 4fb843954b38655551a396240e94dda0 gcc/testsuite/g++.dg/goacc/mdc.C + d597d4e7ee031afa50fadecd64ddac77 gcc/testsuite/g++.dg/goacc/pr101759.C e2e937b81f60d45e6f0fbe6cdc7207e4 gcc/testsuite/g++.dg/goacc/reference.C 18b27d379a2a779f530009ced1114ae3 gcc/testsuite/g++.dg/goacc/routine-1.C 9be1fd00ad32c627f4396d3b564fad56 gcc/testsuite/g++.dg/goacc/routine-2.C *************** f711435274df71049aa71808a78fc7a5 gcc/te *** 18271,18276 **** --- 18411,18418 ---- 5d09e3c0e650269fbab3a248edade585 gcc/testsuite/g++.dg/gomp/parallel-4.C d9a1f43ca6ac2a073e22bbbf243f300b gcc/testsuite/g++.dg/gomp/parallel-5.C 9950e1331756ada98404843c3491b239 gcc/testsuite/g++.dg/gomp/pr101516.C + 0c11b92a016ab75deb360c1427f9b571 gcc/testsuite/g++.dg/gomp/pr101759.C + 3da3560251942b44a47c6e2c267e97f2 gcc/testsuite/g++.dg/gomp/pr102431.C 539bba6df5330b7a6631eca5665a0899 gcc/testsuite/g++.dg/gomp/pr24849.C 78ea34fd7a1a2767f61a703271e7070a gcc/testsuite/g++.dg/gomp/pr25874.C 93a85a09acfdf011a86ff95fc9184a94 gcc/testsuite/g++.dg/gomp/pr25996.C *************** c083b6ec43687658fab80f7d11038fb8 gcc/te *** 18665,18670 **** --- 18807,18813 ---- 4ab5bb9dc38b78d749ba584adefbdc33 gcc/testsuite/g++.dg/init/array8.C b1c2a3438d19ab4734ef026ce6aba7fa gcc/testsuite/g++.dg/init/array9.C 590b4fffc5e2d0c7af7852413ab82a9e gcc/testsuite/g++.dg/init/assign1.C + c683e74a06917192a3b9ed9e2ec6aa08 gcc/testsuite/g++.dg/init/assign2.C 3eee77105967418a88d56f0c30243408 gcc/testsuite/g++.dg/init/attrib1.C 77338e30d92da64b5b8a53b656838268 gcc/testsuite/g++.dg/init/base1.C f3383f08918eed93161c080f618e55e8 gcc/testsuite/g++.dg/init/bitfield1.C *************** c50416bd024b7f394ccf13b2af42d6e9 gcc/te *** 19228,19233 **** --- 19371,19377 ---- 704751cfdbae3f06f685612f201610a7 gcc/testsuite/g++.dg/lookup/friend2.C 6c4b3ee38e0ef8c73906d3d6ef93c86e gcc/testsuite/g++.dg/lookup/friend20.C a484b9799b124bf970c056c966db32e6 gcc/testsuite/g++.dg/lookup/friend21.C + e5da5eba809ee821e6882a9f27fe37d6 gcc/testsuite/g++.dg/lookup/friend22.C e51e64a92ddf4c4d012cb738bf62fde5 gcc/testsuite/g++.dg/lookup/friend3.C 96ad222df48d0097eb84d66dbf37d17d gcc/testsuite/g++.dg/lookup/friend4.C 187ba092057b229619d98cf5e000c6e1 gcc/testsuite/g++.dg/lookup/friend5.C *************** f58299de078b35494d60ed1ce04894ba gcc/te *** 19317,19322 **** --- 19461,19467 ---- fd517010ca215fc30ad0d3a32a3ed3f3 gcc/testsuite/g++.dg/lookup/nested2.C f73a831dbfcd6430b723ed4198037c98 gcc/testsuite/g++.dg/lookup/new1.C 7a4d3b1fa46512441a7977635cc69fe9 gcc/testsuite/g++.dg/lookup/new2.C + 452e1ff799da032536237dfb649f6d8d gcc/testsuite/g++.dg/lookup/new3.C 72c3a9b17a32af0585fa3bf9d370c39d gcc/testsuite/g++.dg/lookup/ns1.C 8fad00e146fe0525b4a78080a95a7ca8 gcc/testsuite/g++.dg/lookup/ns2.C 326caa0ef916da51fec348c662a91f18 gcc/testsuite/g++.dg/lookup/ns3.C *************** f3edef1ce387276626f5233209353c56 gcc/te *** 19776,19781 **** --- 19921,19928 ---- 2ddbed867f8a06e5917b4b7dd8594763 gcc/testsuite/g++.dg/lto/pr95677.C d92f918a28c68fc934d26fc7ceb822b5 gcc/testsuite/g++.dg/lto/pr96591_0.C b8735311421a9557b475c780e1712295 gcc/testsuite/g++.dg/lto/pr96690_0.C + 1fa0bf497eddaf27bc8b579ea2b690fc gcc/testsuite/g++.dg/lto/pr97565_0.C + 540253034f25055f8bf0879bf3a5aff5 gcc/testsuite/g++.dg/lto/pr97565_1.C 6232508298dd20a759cf64fffbca9f5e gcc/testsuite/g++.dg/lto/v1-plugin-api-not-supported_0.C dbe30d4af4bd2caeabf4784c3ef0ca9d gcc/testsuite/g++.dg/missing-return.C 0611288c84e3f846cb789e1b0d0e7706 gcc/testsuite/g++.dg/missing-symbol-2.C *************** cf9e1c6c02a4aee1d10b86325166de66 gcc/te *** 20958,20963 **** --- 21105,21114 ---- b7d92853a5faa70c9b8f4e124609991d gcc/testsuite/g++.dg/opt/pr100148.C b599b75470b905e959a7172363b13d69 gcc/testsuite/g++.dg/opt/pr100254.C 31aad10c0131b0e4e3859efb82f712ed gcc/testsuite/g++.dg/opt/pr100852.C + 42a75325fdbce13b49d3755c902bfa38 gcc/testsuite/g++.dg/opt/pr102970.C + 4821bda808ec2c117c297e4f155752e3 gcc/testsuite/g++.dg/opt/pr104681.C + a05f3fe9e917eacdb552f9ade1d73f34 gcc/testsuite/g++.dg/opt/pr104880.C + bad9496f071793031ea4ab93b911a483 gcc/testsuite/g++.dg/opt/pr105235-1.C 2896f5b1a96dd9fabb1dbb65cb4c5921 gcc/testsuite/g++.dg/opt/pr13066-1.C 4f87f86b9f018cae74888e97468b2fe0 gcc/testsuite/g++.dg/opt/pr14029.C 8fb7e68e9e9b5eb02628e03f5333e645 gcc/testsuite/g++.dg/opt/pr14888.C *************** e549b742987ea4bf15156f2ff8b335da gcc/te *** 21655,21660 **** --- 21806,21812 ---- a0b8fd80bfd82adaa23c61a98df112fb gcc/testsuite/g++.dg/overload/builtin3.C 00a13b8822d521554dfc3d828c4b61bc gcc/testsuite/g++.dg/overload/builtin4.C 81a9a7dc5e05bdf48beb527ba53bf4fd gcc/testsuite/g++.dg/overload/builtin5.C + 1b69f2219f6792ae40411265e591182d gcc/testsuite/g++.dg/overload/builtin6.C 2808df88b455ae0dd789dc64c1e34b25 gcc/testsuite/g++.dg/overload/cond1.C 5067a4c6731aae0336243d6867599e99 gcc/testsuite/g++.dg/overload/cond2.C a0940c624da881bbf5ac3c841243c409 gcc/testsuite/g++.dg/overload/conv-op1.C *************** c6f961c7e0a3abdb6c65204f7692ed1b gcc/te *** 22147,22153 **** d2c97158a600f119f8f39017dbe65cb6 gcc/testsuite/g++.dg/parse/pr34049.C b195499fe12f3f3c5a8b1fb7605ee881 gcc/testsuite/g++.dg/parse/pr34758.C a57434275b0ab07b7a1f918fef7791bc gcc/testsuite/g++.dg/parse/pr37862.C ! 1e33667d8285f239fd589c085a2376e3 gcc/testsuite/g++.dg/parse/pr43765.C 2252cf60ba80a25df99456a82a994206 gcc/testsuite/g++.dg/parse/pr52071.C 1440b05640ed86e97c3a5a22e8fec412 gcc/testsuite/g++.dg/parse/pr55080.C 59292b594262bedc8968587696596ccd gcc/testsuite/g++.dg/parse/pr56037.C --- 22299,22305 ---- d2c97158a600f119f8f39017dbe65cb6 gcc/testsuite/g++.dg/parse/pr34049.C b195499fe12f3f3c5a8b1fb7605ee881 gcc/testsuite/g++.dg/parse/pr34758.C a57434275b0ab07b7a1f918fef7791bc gcc/testsuite/g++.dg/parse/pr37862.C ! 12fdd2d4e53c5ae1c19c96b8ccf6a98f gcc/testsuite/g++.dg/parse/pr43765.C 2252cf60ba80a25df99456a82a994206 gcc/testsuite/g++.dg/parse/pr52071.C 1440b05640ed86e97c3a5a22e8fec412 gcc/testsuite/g++.dg/parse/pr55080.C 59292b594262bedc8968587696596ccd gcc/testsuite/g++.dg/parse/pr56037.C *************** fa82b75c818bf152419737b1f56ac4fc gcc/te *** 22647,22652 **** --- 22799,22805 ---- c0c20230f9ca78ee531a757fe9c20cdc gcc/testsuite/g++.dg/spellcheck-macro-ordering-2.C c7d19bcfd6293dcc2e1b62c71b24d14e gcc/testsuite/g++.dg/spellcheck-macro-ordering.C 138b26dd96477d5ca37e93e1baad9a7f gcc/testsuite/g++.dg/spellcheck-ns.C + dea81150700765a4bf726fcbf91fe264 gcc/testsuite/g++.dg/spellcheck-pr104806.C bec792904e3254c1f1b123d9654da558 gcc/testsuite/g++.dg/spellcheck-pr77829.C 8917eaf0965b3d85de7008f1d17dee06 gcc/testsuite/g++.dg/spellcheck-pr78313.C c58af17755be032fd83d41b6fc234488 gcc/testsuite/g++.dg/spellcheck-pr78656.C *************** c68de3013fc66d5b9ca387b1f0f294ad gcc/te *** 23450,23456 **** --- 23603,23612 ---- 40b38a3d73d53481f9e1570a38ed4eab gcc/testsuite/g++.dg/template/non-dependent13.C 1600f68e67fb6396c6b980337441f30d gcc/testsuite/g++.dg/template/non-dependent14.C dcf7edf4a9b89b8e4db4df23e3c71906 gcc/testsuite/g++.dg/template/non-dependent15.C + 05ce173457f3772b248c409372ff2019 gcc/testsuite/g++.dg/template/non-dependent18.C 3ce6c8331c1ddbc56b2c89ca07992343 gcc/testsuite/g++.dg/template/non-dependent2.C + f0c450f8db48d43656ca65a653823c20 gcc/testsuite/g++.dg/template/non-dependent21.C + 3f4aec0e7128a2b9a75631b613288601 gcc/testsuite/g++.dg/template/non-dependent22.C 9c0fc4f566e5de8ff0339df3c3ef274d gcc/testsuite/g++.dg/template/non-dependent3.C c74bd06e4f01d82b6dffe8568a9f9286 gcc/testsuite/g++.dg/template/non-dependent4.C 7e000c3eaeb33b0cda5191bb78ee313d gcc/testsuite/g++.dg/template/non-dependent5.C *************** c26c19c6753e65db02ae97efd8a54af2 gcc/te *** 24075,24080 **** --- 24231,24239 ---- e425d7fc584cf8535f3eee565f58f091 gcc/testsuite/g++.dg/tls/init-1.C ec6c7e65d57e2a70cb1a6852131a0f16 gcc/testsuite/g++.dg/tls/init-2.C e9afa7cf1ac751d2df40286607549ef0 gcc/testsuite/g++.dg/tls/locations1.C + 2a8c59f8866b77fe70f624e3d722097d gcc/testsuite/g++.dg/tls/pr102496-1.C + abc37af969d1e3eb6c154521bc4614aa gcc/testsuite/g++.dg/tls/pr102496-2.C + 7e8484ec05c7aa22b9de8e440eb62ad6 gcc/testsuite/g++.dg/tls/pr102642.C abcd9d688bd97352cf2201ae04eb0bcd gcc/testsuite/g++.dg/tls/pr66808.C 5b67d09a03c0a87ddd8fb4065b354311 gcc/testsuite/g++.dg/tls/pr69000.C f4ebaa2e9bc5b065a4c81b1ec15efe2c gcc/testsuite/g++.dg/tls/pr77285-1.C *************** bbb4b68b2b55f3e5d143dfc3cb49196e gcc/te *** 24239,24244 **** --- 24398,24404 ---- 00be4e22c0324902fc2682eb7eb97766 gcc/testsuite/g++.dg/torture/builtin-clear-padding-1.C 0d7497eea071865e0a522c601884bc48 gcc/testsuite/g++.dg/torture/builtin-clear-padding-2.C bea4ac8fffc99273818cdff738206eea gcc/testsuite/g++.dg/torture/builtin-clear-padding-3.C + a311bc7bf2311aa8855ffbd171dc6632 gcc/testsuite/g++.dg/torture/builtin-clear-padding-4.C 318bc94e0ad549681cfaba4d1ff517f8 gcc/testsuite/g++.dg/torture/builtin-location.C 12bbc31ebdb5389852fb19dbc0efd9b4 gcc/testsuite/g++.dg/torture/covariant-1.C ce4f8106ed96ef070bead8ca0df02eea gcc/testsuite/g++.dg/torture/darwin-cfstring-3.C *************** ce4f8106ed96ef070bead8ca0df02eea gcc/te *** 24246,24251 **** --- 24406,24416 ---- fab1470d87fc879a4a285622c057b736 gcc/testsuite/g++.dg/torture/init-list1.C 4054dd6c177ca7971902e3ac60e34695 gcc/testsuite/g++.dg/torture/ipa-cp-1.C 37b54578dbb493ce1238308444c1008c gcc/testsuite/g++.dg/torture/ppc-ldst-array.C + ae9c2124c5383beeccdcf4ac2d3bcbd0 gcc/testsuite/g++.dg/torture/pr10148.C + 3fd9794b761154c19e5b03ca7b0727a1 gcc/testsuite/g++.dg/torture/pr102505.C + 674377855743be77a442d6fe11fc86e1 gcc/testsuite/g++.dg/torture/pr103361.C + 7bea79d22c6b5a627f409edb9e3048f3 gcc/testsuite/g++.dg/torture/pr104601.C + 55421b614773ff9e900b6ad17ffe7df3 gcc/testsuite/g++.dg/torture/pr105189.C 161154ed9f6193a2a7da119e068c3f3f gcc/testsuite/g++.dg/torture/pr27218.C a84e9fff95df4801f8e582fbc33303b8 gcc/testsuite/g++.dg/torture/pr30252.C e980bf95890544d46879b89f7aa98df6 gcc/testsuite/g++.dg/torture/pr30567.C *************** e5c358735afed9e9c54950b2b1516563 gcc/te *** 24736,24742 **** 48a21377db7e75a1f567a2a233cc0c84 gcc/testsuite/g++.dg/tree-prof/tree-prof.exp 2a1f9c8b1ccb241e4745f1e06c56fac3 gcc/testsuite/g++.dg/tree-ssa/20040317-1.C 9b3694af0b6195c5c10b4b0caa6af5a4 gcc/testsuite/g++.dg/tree-ssa/alias-access-path-1.C ! 2beabec34d757a40497771a8e2204be6 gcc/testsuite/g++.dg/tree-ssa/array-temp1.C 08d69e786b9ad4d3160a39a0d5e489fa gcc/testsuite/g++.dg/tree-ssa/block1.C 92014ea122d687546fe3649560d8b2a7 gcc/testsuite/g++.dg/tree-ssa/builtin1.C 713d6b942f1fdfec168122607d26adf6 gcc/testsuite/g++.dg/tree-ssa/calloc.C --- 24901,24907 ---- 48a21377db7e75a1f567a2a233cc0c84 gcc/testsuite/g++.dg/tree-prof/tree-prof.exp 2a1f9c8b1ccb241e4745f1e06c56fac3 gcc/testsuite/g++.dg/tree-ssa/20040317-1.C 9b3694af0b6195c5c10b4b0caa6af5a4 gcc/testsuite/g++.dg/tree-ssa/alias-access-path-1.C ! b08c03e3cfb53a5fe650ed3f65313c3a gcc/testsuite/g++.dg/tree-ssa/array-temp1.C 08d69e786b9ad4d3160a39a0d5e489fa gcc/testsuite/g++.dg/tree-ssa/block1.C 92014ea122d687546fe3649560d8b2a7 gcc/testsuite/g++.dg/tree-ssa/builtin1.C 713d6b942f1fdfec168122607d26adf6 gcc/testsuite/g++.dg/tree-ssa/calloc.C *************** ebc4dd8d7b9c346d612ab748d0d8bda0 gcc/te *** 25000,25005 **** --- 25165,25171 ---- 238c69e48fef47908a681867b7f50817 gcc/testsuite/g++.dg/ubsan/null-8.C 684067ddb47560c655180c085c6980e8 gcc/testsuite/g++.dg/ubsan/object-size-1.C 80dcb1a17f65b63cbfe2e3509439563c gcc/testsuite/g++.dg/ubsan/pr101210.C + ad6c0b4132032f21f64bfdd4836d3313 gcc/testsuite/g++.dg/ubsan/pr105093.C a654df71119821a4303cc9fe0501191b gcc/testsuite/g++.dg/ubsan/pr59250.C 420a6623146bb014dc1310134356d81f gcc/testsuite/g++.dg/ubsan/pr59306.C 79755a51c3cbb97ff48bd411272f6b08 gcc/testsuite/g++.dg/ubsan/pr59331.C *************** e7062d8b8ae34f0a4f8b5b407e180316 gcc/te *** 25106,25111 **** --- 25272,25280 ---- 2fcbc57bdfc93414220095e1211dcd11 gcc/testsuite/g++.dg/uninit-pred-loop_1.cc 0264f53339319263fc37b72714421f02 gcc/testsuite/g++.dg/vec-init-1.C ec1873d6dd21d2c7cc0b6215931efed0 gcc/testsuite/g++.dg/vect/param-max-aliased-pr26197.cc + 2f4df2b1afc45455438253ceb176020a gcc/testsuite/g++.dg/vect/pr102572.cc + 276b94843e74f8cadd0fe569be60befb gcc/testsuite/g++.dg/vect/pr102788.cc + 5cc7bcb3384dda5ac9ed1595171888bf gcc/testsuite/g++.dg/vect/pr105053.cc 02ab0e7dea4c30ddeaecb971c0b8241e gcc/testsuite/g++.dg/vect/pr19951.cc e7c5a636a280962b70166d1494223f9c gcc/testsuite/g++.dg/vect/pr21218.cc 9a0a6f56bdb2cc697abc78c901418a19 gcc/testsuite/g++.dg/vect/pr21734_1.cc *************** c0a7423fe6c8b91501b54c66ebfe3c32 gcc/te *** 25164,25170 **** 542124827fb9187c91a9422b19bbdbd5 gcc/testsuite/g++.dg/vect/pr97255.cc 59531286c9e0eca9137074a891cbae16 gcc/testsuite/g++.dg/vect/pr97347.cc ad03cf9b82f9825b989c4dbfdd8a2d38 gcc/testsuite/g++.dg/vect/pr98064.cc ! aba3bb29ee5e870ffa4ce33d7d243b2d gcc/testsuite/g++.dg/vect/pr99149.cc b9b7aeb622b8ca037050c102cf2f4775 gcc/testsuite/g++.dg/vect/pr99220.cc fc32d36182f79190004abe52c516089e gcc/testsuite/g++.dg/vect/simd-1.cc c0baf08fc01514d3f4fca19bf3fc9596 gcc/testsuite/g++.dg/vect/simd-10.cc --- 25333,25339 ---- 542124827fb9187c91a9422b19bbdbd5 gcc/testsuite/g++.dg/vect/pr97255.cc 59531286c9e0eca9137074a891cbae16 gcc/testsuite/g++.dg/vect/pr97347.cc ad03cf9b82f9825b989c4dbfdd8a2d38 gcc/testsuite/g++.dg/vect/pr98064.cc ! d069359b51fa53b7e19c17437cb21559 gcc/testsuite/g++.dg/vect/pr99149.cc b9b7aeb622b8ca037050c102cf2f4775 gcc/testsuite/g++.dg/vect/pr99220.cc fc32d36182f79190004abe52c516089e gcc/testsuite/g++.dg/vect/simd-1.cc c0baf08fc01514d3f4fca19bf3fc9596 gcc/testsuite/g++.dg/vect/simd-10.cc *************** b743913da43f9ec511faf7814e2e77c8 gcc/te *** 25217,25223 **** a48159ca7c6ab8b2c9be10d9045d0fcd gcc/testsuite/g++.dg/warn/Warray-bounds-13.C 751a532e4227b40e2fb6a1e86824d452 gcc/testsuite/g++.dg/warn/Warray-bounds-14.C 572a6d7fa549dc456ad9ccafcd0de9c3 gcc/testsuite/g++.dg/warn/Warray-bounds-15.C ! a51e59121ac395643cb3896da790dc94 gcc/testsuite/g++.dg/warn/Warray-bounds-16.C 95942f0a33d153158cb14cc46802363b gcc/testsuite/g++.dg/warn/Warray-bounds-17.C 35573117acc546f03b1b924b513e72cd gcc/testsuite/g++.dg/warn/Warray-bounds-18.C 0186412c3f9a47b93aafb28f79f2d7c7 gcc/testsuite/g++.dg/warn/Warray-bounds-19.C --- 25386,25392 ---- a48159ca7c6ab8b2c9be10d9045d0fcd gcc/testsuite/g++.dg/warn/Warray-bounds-13.C 751a532e4227b40e2fb6a1e86824d452 gcc/testsuite/g++.dg/warn/Warray-bounds-14.C 572a6d7fa549dc456ad9ccafcd0de9c3 gcc/testsuite/g++.dg/warn/Warray-bounds-15.C ! 8f5c02cdd45c1c3c413d6acbed9a3818 gcc/testsuite/g++.dg/warn/Warray-bounds-16.C 95942f0a33d153158cb14cc46802363b gcc/testsuite/g++.dg/warn/Warray-bounds-17.C 35573117acc546f03b1b924b513e72cd gcc/testsuite/g++.dg/warn/Warray-bounds-18.C 0186412c3f9a47b93aafb28f79f2d7c7 gcc/testsuite/g++.dg/warn/Warray-bounds-19.C *************** aa8ce74ba265dc04c8b67795c14ea628 gcc/te *** 25274,25279 **** --- 25443,25449 ---- 84424ecfda695823bf02ce4faf2727d9 gcc/testsuite/g++.dg/warn/Wctad-maybe-unsupported.h a1916c2510751afdcbb293e075fc4b79 gcc/testsuite/g++.dg/warn/Wctad-maybe-unsupported2.C 924d0a16e978c03688e392123f204dff gcc/testsuite/g++.dg/warn/Wctad-maybe-unsupported3.C + 0f6b09801c09e79156b9009cc3a19adc gcc/testsuite/g++.dg/warn/Wctad-maybe-unsupported4.C 2d2da24222711602624d6870a966c8b0 gcc/testsuite/g++.dg/warn/Wctor-dtor.C b75d4f8883c7ddd7a04229eea603e6d3 gcc/testsuite/g++.dg/warn/Wctor-dtor2.C 81f664dba5a025cdc726a4ce39403653 gcc/testsuite/g++.dg/warn/Wdelete-incomplete-1.C *************** c32e2d9c26f73ceab75448129f154a62 gcc/te *** 25295,25300 **** --- 25465,25471 ---- c1c94fbed68712c556c47675075fab08 gcc/testsuite/g++.dg/warn/Wduplicated-branches6.C df34a3119747a72018c056305c89abd6 gcc/testsuite/g++.dg/warn/Wduplicated-branches7.C 53e8ba692e810326b135e28115da516a gcc/testsuite/g++.dg/warn/Wduplicated-cond1.C + aee46bcb7031162dcee9c8ebe1228c6f gcc/testsuite/g++.dg/warn/Wduplicated-cond2.C 8b9cbae2542d0ee1294a9aba56467023 gcc/testsuite/g++.dg/warn/Wenum-compare-no-2.C 0159dc16051c0a3deaba6db2eeae85f8 gcc/testsuite/g++.dg/warn/Wenum-compare-no.C b141ada1b2936d65fc9a46fee390d652 gcc/testsuite/g++.dg/warn/Wenum-compare.C *************** e5e6d08567eb0a03fffadca1da754cde gcc/te *** 25345,25350 **** --- 25516,25522 ---- b383f047a6af35035ecd836253175c30 gcc/testsuite/g++.dg/warn/Wint-in-bool-context-1.C 90a871726cae9dea93ce0da4b5bb7b2c gcc/testsuite/g++.dg/warn/Wlogical-op-1.C 13ee95f1cd2836b595541e2a9917c06d gcc/testsuite/g++.dg/warn/Wlogical-op-2.C + a37debb0423a6fba06b31bb633c0794f gcc/testsuite/g++.dg/warn/Wlogical-op-3.C 0d474dffc39eac06f1ef0fff37a5792f gcc/testsuite/g++.dg/warn/Wmemset-elt-size1.C 640ad4c16d17c7bf605e6b30568da488 gcc/testsuite/g++.dg/warn/Wmemset-transposed-args-1.C 1184b1df4ae243b5ab6917e0e3b219b6 gcc/testsuite/g++.dg/warn/Wmismatched-dealloc-2.C *************** b963046db4cfda2a26e48a50fb49dc9f gcc/te *** 25361,25366 **** --- 25533,25539 ---- b306962faed01d9c7837f5c94d8fd54b gcc/testsuite/g++.dg/warn/Wmismatched-tags-6.C 4f4a6f65343802e0a210fb251cbdaaae gcc/testsuite/g++.dg/warn/Wmismatched-tags-7.C 51f559879287437f7bafa0b16b7ec7f3 gcc/testsuite/g++.dg/warn/Wmismatched-tags-8.C + dd271ecca0fa5146b807a1a4a7593846 gcc/testsuite/g++.dg/warn/Wmismatched-tags-9.C 8bb91ffb5e984d7b02129f07fd4bd69c gcc/testsuite/g++.dg/warn/Wmismatched-tags.C d3017d025f43f9093bf016847e418a34 gcc/testsuite/g++.dg/warn/Wmissing-declarations-1.C 050c0fd9eb9dcd48940d99ba2041761b gcc/testsuite/g++.dg/warn/Wmissing-field-initializers-1.C *************** de70d0aa4d300c6c495ac17ceb16bb59 gcc/te *** 25510,25515 **** --- 25683,25689 ---- 69360c98179cb5a496a4ec6c59d499f7 gcc/testsuite/g++.dg/warn/Wshadow-9.C 69732cf06a240f992b1cb5e3b86bab8d gcc/testsuite/g++.dg/warn/Wshadow-compatible-local-1.C a0b4ac370653ea8dfc5a0dc8707ab2fd gcc/testsuite/g++.dg/warn/Wshadow-compatible-local-2.C + b1368cfca8fe6539e11ab40e527ec240 gcc/testsuite/g++.dg/warn/Wshadow-compatible-local-3.C df9b1547a2690405cde83653830ec338 gcc/testsuite/g++.dg/warn/Wshadow-local-1.C 6abfb9ca38d9d4f52fad423dd3f4fc61 gcc/testsuite/g++.dg/warn/Wshadow-local-2.C 2d0be4b805c5e01751b8213ba1078140 gcc/testsuite/g++.dg/warn/Wshadow-local-3.C *************** b81dd316dd30881afe998cc16667340f gcc/te *** 25690,25695 **** --- 25864,25870 ---- 66e0712402c08575f2486cc95d89f9b2 gcc/testsuite/g++.dg/warn/Wunused-var-9.C f62d0efa105434ddb77f8584066aa865 gcc/testsuite/g++.dg/warn/Wunused-var30.C 7c73aa4b260c1d16ea9a76d2e0a28fcb gcc/testsuite/g++.dg/warn/Wuseless-cast.C + ff8ed0a4ce8ad573aa89f6b015e4a122 gcc/testsuite/g++.dg/warn/Wuseless-cast2.C 9de23321d5ac135de5ba8afa251a359a gcc/testsuite/g++.dg/warn/Wvexing-parse.C 47c8ae3dc7144acf6191de59ea2930a1 gcc/testsuite/g++.dg/warn/Wvexing-parse2.C 8a7c0f92b372b8761c8b842613d7c6a2 gcc/testsuite/g++.dg/warn/Wvexing-parse3.C *************** ee6a633cbcb41c7241335ac4002bc5bd gcc/te *** 25847,25852 **** --- 26022,26028 ---- eee589a3fa31332d5466e5037b1a870e gcc/testsuite/g++.dg/warn/pmf1.C c36be50bce1bb66a16eefbbb8eed1e5c gcc/testsuite/g++.dg/warn/pmf2.C ac14aaa010428fa00cd60d6e6bb808c0 gcc/testsuite/g++.dg/warn/pointer-integer-comparison.C + cc35779b6305bb8c111aecea1f3f7d25 gcc/testsuite/g++.dg/warn/pr101515.C adea0a023eba0c3c51b6a4894014d35a gcc/testsuite/g++.dg/warn/pr11159.C f257fca4d00c8c67aa2b9d6e43ee906f gcc/testsuite/g++.dg/warn/pr11492.C 5fab7f879534ef351718dc73d825b667 gcc/testsuite/g++.dg/warn/pr12242.C *************** e64278e516f7ebae5481e326b54f28dd gcc/te *** 29361,29366 **** --- 29537,29543 ---- 205ccdefdbb3b9b53e0013ab1c5146c0 gcc/testsuite/g++.target/arm/mve.exp fefb1ea34abe2e49510cd8293f8c14e5 gcc/testsuite/g++.target/arm/no_unique_address_1.C bb7292912fa6d506586421d0df58412b gcc/testsuite/g++.target/arm/no_unique_address_2.C + 4c06abe7b8d5bd183704907c3993392c gcc/testsuite/g++.target/arm/pr102842.C 86ce099311b8a462979885c1f82c41db gcc/testsuite/g++.target/arm/pr81497.C c66ac2233f3efac56ec64b9294b3708d gcc/testsuite/g++.target/arm/pr95726.C 881bcc41183f756e0d7cbda13b2b51df gcc/testsuite/g++.target/arm/pr99593.C *************** cc57ca4fd9c378f13126f05fd23d44f9 gcc/te *** 29422,29427 **** --- 29599,29608 ---- 1c0fbaabc2aefc10da9582b80f11789c gcc/testsuite/g++.target/i386/pr100885.C a1f1d426b1b50862a624c700e26cea03 gcc/testsuite/g++.target/i386/pr101023a.C 06163cba2fd3bcf61e06ef2a745befdb gcc/testsuite/g++.target/i386/pr101023b.C + 945955607a22f7b849c624a91c2f5c9d gcc/testsuite/g++.target/i386/pr102166.C + 186a4f48c778c8bfd308076ed5277d77 gcc/testsuite/g++.target/i386/pr102295.C + 6d6c399b53fe1c3078aa132a559fe2ab gcc/testsuite/g++.target/i386/pr102548.C + 2a03baff08b5b7bdeb8d3633c49032bb gcc/testsuite/g++.target/i386/pr103012.C 1c706f97b6d93c0124dc4a203c98f6d2 gcc/testsuite/g++.target/i386/pr57362.C db3c3a9d9f798eff6348f0813dccc376 gcc/testsuite/g++.target/i386/pr57548.C e8a006e5050e191010d1a6ecff4873a3 gcc/testsuite/g++.target/i386/pr58372.C *************** bda24fd764e95be6398892d48adf8be7 gcc/te *** 29481,29486 **** --- 29662,29668 ---- 4c45e102d6dd19ee08a476904b64542d gcc/testsuite/g++.target/riscv/pr96759.C ac37e529bda1269045c3681cc4b425dd gcc/testsuite/g++.target/riscv/pr97682.C 27530d4b7acf9021544916f3300ffbe1 gcc/testsuite/g++.target/riscv/riscv.exp + 74f02d12b4213817c3460e1eebfa9eae gcc/testsuite/g++.target/s390/mi-thunk.C 93b786c04aacd9a92606e85c55410461 gcc/testsuite/g++.target/s390/pr100281-1.C 4b5a44a1819e9404a2b1305798c19846 gcc/testsuite/g++.target/s390/pr100281-2.C 63c9cacf807bdee09a1606a202373f30 gcc/testsuite/g++.target/s390/pr94704-1.C *************** e89355b99660c53d3dac89eba0ac8986 gcc/te *** 30495,30502 **** --- 30677,30688 ---- 6a87e81aa60353be798e48130f2c4ca2 gcc/testsuite/gcc.c-torture/compile/pmt.c 048ad13954512f77d283379cc894eaed gcc/testsuite/gcc.c-torture/compile/poor.c 5dd01a3a30ba2b97a934273ca5fe3170 gcc/testsuite/gcc.c-torture/compile/pp.c + 5e2710168af4ad47d5838cfdfc0a5ecd gcc/testsuite/gcc.c-torture/compile/pr100106.c ede20faf9b203e25b39b7032970f58be gcc/testsuite/gcc.c-torture/compile/pr100305.c + dcaa1bc6d2f365241f63a018eb986a02 gcc/testsuite/gcc.c-torture/compile/pr100316.c 39dff9806811d8b2c82afb7f1bb80e27 gcc/testsuite/gcc.c-torture/compile/pr100576.c + 9c461bedf4ba5d689841294e9c5464f6 gcc/testsuite/gcc.c-torture/compile/pr101562.c + 6d13d2354182ca3dc50d8f4d6d5ed5ab gcc/testsuite/gcc.c-torture/compile/pr103813.c 33c7141fcf5b1add3ddd2be0100f1f0d gcc/testsuite/gcc.c-torture/compile/pr12517.c ec16b12ab11c499bf321be18ea59da33 gcc/testsuite/gcc.c-torture/compile/pr12578.c 86f3d5cf87d24e97aa663b79f2d0ac5d gcc/testsuite/gcc.c-torture/compile/pr12899.c *************** cf491abd2df5513193c96d9605cc5bc8 gcc/te *** 32146,32151 **** --- 32332,32338 ---- 7e81dc4cdd5c62169f611e513538c801 gcc/testsuite/gcc.c-torture/execute/bf-sign-2.c 57a7c08d79c2c2f2e65b96c5d353aad5 gcc/testsuite/gcc.c-torture/execute/bf64-1.c 98152a763419b41838c8c9d841ad29a6 gcc/testsuite/gcc.c-torture/execute/bitfld-1.c + f07696fa0951cfa132406e3311f1250c gcc/testsuite/gcc.c-torture/execute/bitfld-10.c 005d6505de633a2ed0991ac8a94c4b8e gcc/testsuite/gcc.c-torture/execute/bitfld-2.c 99a449c3b4f58a78e441a461df3f513f gcc/testsuite/gcc.c-torture/execute/bitfld-3.c f60b71cba62f24c87aeeb52ca18cf75c gcc/testsuite/gcc.c-torture/execute/bitfld-4.c *************** e854bc80f793329b6c96d31e3f80a012 gcc/te *** 32523,32528 **** --- 32710,32718 ---- 9c9024650c8b4b1672ea993228511949 gcc/testsuite/gcc.c-torture/execute/packed-aligned.c 12785ab6e086a50cd8ab9f5bdb9a9bc5 gcc/testsuite/gcc.c-torture/execute/pending-4.c 5ad23d6cafc55e78896b90e3669a14b8 gcc/testsuite/gcc.c-torture/execute/postmod-1.c + 6f562291c92a478431678da451525a90 gcc/testsuite/gcc.c-torture/execute/pr103052.c + a5b5957138d71ec5e7dbb1056f5b6cf4 gcc/testsuite/gcc.c-torture/execute/pr103255.c + 8f1a8c89149c065ac6e73140793989be gcc/testsuite/gcc.c-torture/execute/pr104814.c 7758cb727d75f4fc1c0e483d503de146 gcc/testsuite/gcc.c-torture/execute/pr15262-1.c 58dc249612dbc918d7fc4010e94deb8d gcc/testsuite/gcc.c-torture/execute/pr15262-2.c d9c36fc850771445c5e4b6ce6dae1a12 gcc/testsuite/gcc.c-torture/execute/pr15262.c *************** d79543b851bd31a8a690f71bf1604287 gcc/te *** 33677,33682 **** --- 33867,33877 ---- e9b43cdaccdcfde39febbc540e1b23a1 gcc/testsuite/gcc.dg/Wmismatched-dealloc.c a97f092c5509b2033f63d1931d689d9c gcc/testsuite/gcc.dg/Wmissing-attributes.c 4dffc6d38cc584021e126813104bef46 gcc/testsuite/gcc.dg/Wmissing-braces-fixits.c + 6d7c7c9dfb7ed5a391069ace1150a3a1 gcc/testsuite/gcc.dg/Wmissing-field-initializers-1.c + 7fb04705fb6b842cdfb76304629fee8e gcc/testsuite/gcc.dg/Wmissing-field-initializers-2.c + 153aab7b0e84ebd7b4f208653536d446 gcc/testsuite/gcc.dg/Wmissing-field-initializers-3.c + 7b242b0345ec0eeeffd2597e35af130b gcc/testsuite/gcc.dg/Wmissing-field-initializers-4.c + e029e709c13e38db907896dd09de24a0 gcc/testsuite/gcc.dg/Wmissing-field-initializers-5.c 35da4f7c3dc7c98520fafca7b32a76e7 gcc/testsuite/gcc.dg/Wmissing-parameter-type-Wextra.c fe1b12514d94c73791e0a965cfc2a6ce gcc/testsuite/gcc.dg/Wmissing-parameter-type-no.c 393ee52b1c97cbcf1ebd166d70b4ea67 gcc/testsuite/gcc.dg/Wmissing-parameter-type.c *************** d45570f5347d0d2fceb2f46d5bb28195 gcc/te *** 33690,33696 **** 78b26e55f8111808885390fc48d39f07 gcc/testsuite/gcc.dg/Wno-pointer-sign.c 86e970a811686b96a8c946217879e0b6 gcc/testsuite/gcc.dg/Wnonnull-2.c 359b700d31704492b8af3694547fa2b7 gcc/testsuite/gcc.dg/Wnonnull-3.c ! a8ed41f0035b4c09381758070ff0cc62 gcc/testsuite/gcc.dg/Wnonnull-4.c 122d168a76610b5995ed8402529d4c4d gcc/testsuite/gcc.dg/Wnonnull-5.c 349ca7e23fb9ac66e9d5e90eeec2b9bc gcc/testsuite/gcc.dg/Wnonnull-6.c 12ac8bc4beaf9edbdf04979c8dfcb9e8 gcc/testsuite/gcc.dg/Wnonnull.c --- 33885,33891 ---- 78b26e55f8111808885390fc48d39f07 gcc/testsuite/gcc.dg/Wno-pointer-sign.c 86e970a811686b96a8c946217879e0b6 gcc/testsuite/gcc.dg/Wnonnull-2.c 359b700d31704492b8af3694547fa2b7 gcc/testsuite/gcc.dg/Wnonnull-3.c ! 08895ef19d744c4f6c25826532c70aee gcc/testsuite/gcc.dg/Wnonnull-4.c 122d168a76610b5995ed8402529d4c4d gcc/testsuite/gcc.dg/Wnonnull-5.c 349ca7e23fb9ac66e9d5e90eeec2b9bc gcc/testsuite/gcc.dg/Wnonnull-6.c 12ac8bc4beaf9edbdf04979c8dfcb9e8 gcc/testsuite/gcc.dg/Wnonnull.c *************** ba09b89eacd1a1f030c52761621d27c3 gcc/te *** 33902,33907 **** --- 34097,34103 ---- a8fd1d734e0d0078a564b6c6951f3f06 gcc/testsuite/gcc.dg/Wstringop-overflow-66.c 11b9e3955ab46194825fbf5d88ba5648 gcc/testsuite/gcc.dg/Wstringop-overflow-7.c 739ccb86ac13fef9cbd1d60df950a4b5 gcc/testsuite/gcc.dg/Wstringop-overflow-8.c + 949a031e65e64751dcadeeed6b8a8c28 gcc/testsuite/gcc.dg/Wstringop-overflow-86.c efc30ea8232c5270c8cbd61b0a271ef1 gcc/testsuite/gcc.dg/Wstringop-overflow-9.c f16f5c5471020dfe24813accb55a72a7 gcc/testsuite/gcc.dg/Wstringop-overflow.c 82a023f65dab8d4e888e7b6af021dc1d gcc/testsuite/gcc.dg/Wstringop-overread-2.c *************** d82ccf26405a48ba48cf01a532ba9660 gcc/te *** 33961,33966 **** --- 34157,34164 ---- c8849c136769b4d5fe441ab284b49719 gcc/testsuite/gcc.dg/Wvla-larger-than-2.c cfa79c0ccdb4661ab37d8dd91c0b69c2 gcc/testsuite/gcc.dg/Wvla-larger-than-3.c 93fd4352fb385bc1039adcaf51e1723d gcc/testsuite/gcc.dg/Wvla-larger-than-4.c + d8079498555414ed8e20a1866a122002 gcc/testsuite/gcc.dg/Wvla-parameter-12.c + b0cbf3f973ac6c7f66e3eabc7286596e gcc/testsuite/gcc.dg/Wvla-parameter-13.c bb6bfe4639819fd02e238129b72af1c1 gcc/testsuite/gcc.dg/Wvla-parameter-2.c 62a2c486287bf98e7759d9a79900a83f gcc/testsuite/gcc.dg/Wvla-parameter-3.c 7b7fde0c88aeeb625320c956342a669d gcc/testsuite/gcc.dg/Wvla-parameter-4.c *************** fbf171c2475c36b54306b4fa689eee97 gcc/te *** 34056,34061 **** --- 34254,34260 ---- 4553c74241f2cd9efbf26371de99807d gcc/testsuite/gcc.dg/analyzer/data-model-2.c b3d1205c18024feae48af7ea2263b10a gcc/testsuite/gcc.dg/analyzer/data-model-20.c 1a7244f30f830702369a54bb48fc8aef gcc/testsuite/gcc.dg/analyzer/data-model-21.c + 99c2999efefff19cb59bd84ab2498758 gcc/testsuite/gcc.dg/analyzer/data-model-23.c e7daf7589a18b2ab24bdc2f3f62367d5 gcc/testsuite/gcc.dg/analyzer/data-model-4.c ec77a3f181dddb102f833affeab3f86a gcc/testsuite/gcc.dg/analyzer/data-model-5.c 50de8dcfc0305e565c234999fa450fed gcc/testsuite/gcc.dg/analyzer/data-model-5b.c *************** bdfc84bbf5e13810fd8696c1956e6639 gcc/te *** 34184,34189 **** --- 34383,34389 ---- 8704d0b888bfd7cbf5c7f8dfbb9f5610 gcc/testsuite/gcc.dg/analyzer/pointer-merging.c 3f583dbde80b3efe12b65cefa6758f9f gcc/testsuite/gcc.dg/analyzer/pr100011.c e0e00f8ff65a3533430a5abc47af4315 gcc/testsuite/gcc.dg/analyzer/pr100615.c + 7bab391201f50e8d8fb6965f76c3af60 gcc/testsuite/gcc.dg/analyzer/pr101962.c 4d9dda4c090b351e888380f256fdf703 gcc/testsuite/gcc.dg/analyzer/pr61861.c 3b715088546567d4c2cc30cc26417f11 gcc/testsuite/gcc.dg/analyzer/pr93032-mztools-simplified.c 9198ebbc5c221a40b5e3d9c3b8dfadad gcc/testsuite/gcc.dg/analyzer/pr93032-mztools.c *************** c3d6877dc6b6aaf933b97e6748b315cc gcc/te *** 34316,34322 **** 5c824937a2b8b50d8d983130fccd4e81 gcc/testsuite/gcc.dg/analyzer/strcmp-1.c 75d08bca79f4ac1789e8518f83e25230 gcc/testsuite/gcc.dg/analyzer/strcpy-1.c 94cb92233eb5c2bcada4066b1a45a8c5 gcc/testsuite/gcc.dg/analyzer/strdup-1.c ! 62ef5682e1c09c511b5a2f27b4cdef3f gcc/testsuite/gcc.dg/analyzer/strndup-1.c 5231cd301b8d86c62bf8321d1e5bfb4b gcc/testsuite/gcc.dg/analyzer/switch.c 5fd1467a3fda46f1c5783eb10827dc00 gcc/testsuite/gcc.dg/analyzer/symbolic-1.c 2982a3481c63231cadba1329977640bd gcc/testsuite/gcc.dg/analyzer/symbolic-2.c --- 34516,34522 ---- 5c824937a2b8b50d8d983130fccd4e81 gcc/testsuite/gcc.dg/analyzer/strcmp-1.c 75d08bca79f4ac1789e8518f83e25230 gcc/testsuite/gcc.dg/analyzer/strcpy-1.c 94cb92233eb5c2bcada4066b1a45a8c5 gcc/testsuite/gcc.dg/analyzer/strdup-1.c ! 161eff2fd6bce43bc965274c803a4857 gcc/testsuite/gcc.dg/analyzer/strndup-1.c 5231cd301b8d86c62bf8321d1e5bfb4b gcc/testsuite/gcc.dg/analyzer/switch.c 5fd1467a3fda46f1c5783eb10827dc00 gcc/testsuite/gcc.dg/analyzer/symbolic-1.c 2982a3481c63231cadba1329977640bd gcc/testsuite/gcc.dg/analyzer/symbolic-2.c *************** b83db629f91a7356b28b31cfbbc330ad gcc/te *** 34402,34413 **** 8d6052373f557446fbc2c85bbada1d63 gcc/testsuite/gcc.dg/array-const-3.c c11a907de50c52966dc3fac763e376b5 gcc/testsuite/gcc.dg/array-init-1.c f5a2800fc5f21185bd9bdbd69e270c10 gcc/testsuite/gcc.dg/array-init-2.c ! ad76181b383bac32f71b8ce6107cb0c1 gcc/testsuite/gcc.dg/array-quals-1.c 142997aec138f2b5487250ef14d6de54 gcc/testsuite/gcc.dg/array-quals-2.c 889ad8871787262fb9533d339c717e6a gcc/testsuite/gcc.dg/aru-2.c c3a77b3c243c9ea87f79d62f7db200dc gcc/testsuite/gcc.dg/asan/asan.exp b8a049317908d7e0078316ad82437346 gcc/testsuite/gcc.dg/asan/nested-1.c 738544a74dbe22f6a41201227dfe9cd9 gcc/testsuite/gcc.dg/asan/nosanitize-and-inline.c a5e988481cd66b8acf6c610b847cb713 gcc/testsuite/gcc.dg/asan/pr56417.c 0c13e4008bb665f05b030eb42e43183f gcc/testsuite/gcc.dg/asan/pr63845.c 9a45b4bebab3901180dbe2a44efcd070 gcc/testsuite/gcc.dg/asan/pr64170.c --- 34602,34615 ---- 8d6052373f557446fbc2c85bbada1d63 gcc/testsuite/gcc.dg/array-const-3.c c11a907de50c52966dc3fac763e376b5 gcc/testsuite/gcc.dg/array-init-1.c f5a2800fc5f21185bd9bdbd69e270c10 gcc/testsuite/gcc.dg/array-init-2.c ! 93602cc4baf67e85d9c438d1a69dc55d gcc/testsuite/gcc.dg/array-quals-1.c 142997aec138f2b5487250ef14d6de54 gcc/testsuite/gcc.dg/array-quals-2.c 889ad8871787262fb9533d339c717e6a gcc/testsuite/gcc.dg/aru-2.c c3a77b3c243c9ea87f79d62f7db200dc gcc/testsuite/gcc.dg/asan/asan.exp b8a049317908d7e0078316ad82437346 gcc/testsuite/gcc.dg/asan/nested-1.c 738544a74dbe22f6a41201227dfe9cd9 gcc/testsuite/gcc.dg/asan/nosanitize-and-inline.c + 62ddd0ab49b2d8a39773ae7568d8aa74 gcc/testsuite/gcc.dg/asan/pr104449.c + 3424b712fda248acb67afe3bbb5dbc46 gcc/testsuite/gcc.dg/asan/pr105214.c a5e988481cd66b8acf6c610b847cb713 gcc/testsuite/gcc.dg/asan/pr56417.c 0c13e4008bb665f05b030eb42e43183f gcc/testsuite/gcc.dg/asan/pr63845.c 9a45b4bebab3901180dbe2a44efcd070 gcc/testsuite/gcc.dg/asan/pr64170.c *************** dbed9ae96a21fcde41cfdad7cf866745 gcc/te *** 35936,35941 **** --- 36138,36144 ---- 1accdd407f6b27826cf1b2bedd767f56 gcc/testsuite/gcc.dg/cpp/pr100392.h 9e6abf813586d610c5bba47d923aaf4a gcc/testsuite/gcc.dg/cpp/pr100646-1.c 1cc56428de626da80bfe2da8848c8587 gcc/testsuite/gcc.dg/cpp/pr100646-2.c + df4a6f060fa69f67fe9841571f51274c gcc/testsuite/gcc.dg/cpp/pr101638.c 5f42a9dd480e45f484f3827b3aadb3e4 gcc/testsuite/gcc.dg/cpp/pr20348.c 7c61ccd7a1cbc88526a3a1ae591f54b6 gcc/testsuite/gcc.dg/cpp/pr20348.h 57a7826d3185767b0a94a4f1c482ddd4 gcc/testsuite/gcc.dg/cpp/pr20356.c *************** e2f52a89972160427f649396e34b1d0c gcc/te *** 36334,36339 **** --- 36537,36543 ---- edee97b42c75ecf594a2c63a31f4c416 gcc/testsuite/gcc.dg/debug/dwarf2/noreturn-function-attribute.c cbcc356a35e8a8665137c7ae64ec5914 gcc/testsuite/gcc.dg/debug/dwarf2/noreturn-function-keyword.c 937e8a07b611d24efb44f969833a3cb8 gcc/testsuite/gcc.dg/debug/dwarf2/omp-fesdr.c + 54b366032eed667161eee7783123c310 gcc/testsuite/gcc.dg/debug/dwarf2/pr103874.c 250736f38c859fc89fb993ad3155eb20 gcc/testsuite/gcc.dg/debug/dwarf2/pr29609-1.c 8f522ee214d1db3d04f240eb20eb4474 gcc/testsuite/gcc.dg/debug/dwarf2/pr29609-2.c 43696edd12f5c0c32058d1ad1012e1e8 gcc/testsuite/gcc.dg/debug/dwarf2/pr31230.c *************** ca27b118a8f01285a381ac42b5dcdcaa gcc/te *** 36386,36391 **** --- 36590,36596 ---- b3f045b532c693bbfb8cfed8c0609564 gcc/testsuite/gcc.dg/debug/dwarf2/var1.c 69e64f492a931622722ac6c811569e62 gcc/testsuite/gcc.dg/debug/dwarf2/var2.c d11dcc4e37738beb9e8be03ce7630c35 gcc/testsuite/gcc.dg/debug/enum-1.c + 3c2a32917edee1c37607a11e5414fbdf gcc/testsuite/gcc.dg/debug/pr104337.c bdf39999a5a7a4c7b1459600dff4ff14 gcc/testsuite/gcc.dg/debug/pr16676.c 6f8e864ca7f9c38a79c3578b2c75101b gcc/testsuite/gcc.dg/debug/pr26881.c feb6dc1d570a59982f88a912985ff2fa gcc/testsuite/gcc.dg/debug/pr29558.c *************** dd200537805c08a2ae3ec68cf3082eff gcc/te *** 36478,36483 **** --- 36683,36689 ---- 5c465732517ab32b5f1d49aa94330ad5 gcc/testsuite/gcc.dg/deprecated-5.c ba7e6f4007944b95dbec857fc6c74794 gcc/testsuite/gcc.dg/deprecated-6.c 9934d33b9991ddca3ef6f4c2cccdb37c gcc/testsuite/gcc.dg/deprecated.c + 8ef0c97da538b257ef5b6ce351017585 gcc/testsuite/gcc.dg/devnull-dump.c 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 *************** a0ac850750aaa6f8934dd8d86cad48b3 gcc/te *** 36541,36546 **** --- 36747,36754 ---- 9d75f75471d15ad9eab797c65fe24337 gcc/testsuite/gcc.dg/dfp/keywords-pedantic.c 5f9dce48038ce1ba660b96e948792422 gcc/testsuite/gcc.dg/dfp/keywords-reserved.c 440b3f562b43525babe2c96be973d1be gcc/testsuite/gcc.dg/dfp/operator-bitwise.c + b6f9108cd4878577de83d43be75185ce gcc/testsuite/gcc.dg/dfp/pr104510.c + 440b561ad1d9037d4559c7011d636b7a gcc/testsuite/gcc.dg/dfp/pr104557.c d8629eb8e0c765b5a7daa583cb8eedad gcc/testsuite/gcc.dg/dfp/pr31344.c b59fd600db434af135f39c38e21e2d74 gcc/testsuite/gcc.dg/dfp/pr37435.c 17353eaf91a4f3959fa168324f86f6f5 gcc/testsuite/gcc.dg/dfp/pr41049.c *************** d7769c446568c18d557180c850cf3b4a gcc/te *** 37316,37321 **** --- 37524,37530 ---- f711435274df71049aa71808a78fc7a5 gcc/testsuite/gcc.dg/gomp/parallel-3.c d9a1f43ca6ac2a073e22bbbf243f300b gcc/testsuite/gcc.dg/gomp/parallel-4.c 0f7ac2e81ae2d400d52c34aa1c0b379a gcc/testsuite/gcc.dg/gomp/pr100508.c + 410119ba8ee90eb1671f6b992533b966 gcc/testsuite/gcc.dg/gomp/pr104517.c 7a163e65fe52b23fc85f2daa18c442ee gcc/testsuite/gcc.dg/gomp/pr25874.c 597de3ed24e1bc1c650af918589d83c3 gcc/testsuite/gcc.dg/gomp/pr25989.c 0bd3e8dc860de61dd8e09229c090e1f5 gcc/testsuite/gcc.dg/gomp/pr25990.c *************** bc96d3d7a369ee1d75a9841b80312226 gcc/te *** 37824,37829 **** --- 38033,38039 ---- 4f7560385c9b3bd900cc1de342ed58bc gcc/testsuite/gcc.dg/guality/param-3.c 74ce6c60795531920ab0a680e346e657 gcc/testsuite/gcc.dg/guality/param-4.c f932e4faa7d538859c699e070447bc01 gcc/testsuite/gcc.dg/guality/param-5.c + b0deaf43b4029cf429b4a541937eefd0 gcc/testsuite/gcc.dg/guality/pr101905.c 91c528fa3ca63dee1e35b7c6d02cd258 gcc/testsuite/gcc.dg/guality/pr25967-1.c fa9ed629eec13dc2cd77fec24ea82b3c gcc/testsuite/gcc.dg/guality/pr25967-2.c 19bacc1e91869a8697eb548fb674e517 gcc/testsuite/gcc.dg/guality/pr36728-1.c *************** bbdc28908094ef1ce181532afaf1b2dc gcc/te *** 38184,38190 **** --- 38394,38404 ---- 08e3fcc3d014c7113388adead626f718 gcc/testsuite/gcc.dg/ipa/modref-1.c d183c6f1cbbc46bd9c8e5df2bbcd8795 gcc/testsuite/gcc.dg/ipa/modref-2.c 80f4453150e9ddcd8976703b7c6ee1f6 gcc/testsuite/gcc.dg/ipa/noclone-1.c + 2f6a0c132f87682f7a7a3d21a8e51243 gcc/testsuite/gcc.dg/ipa/pr100600.c 5c69058d29f4a7ea7e25487222d82209 gcc/testsuite/gcc.dg/ipa/pr101066.c + 303b00685d04afefddddce7106c02b2d gcc/testsuite/gcc.dg/ipa/pr102714.c + 07a283c50d826e50a31e66247a684841 gcc/testsuite/gcc.dg/ipa/pr103083-1.c + e738f44ee66719b5f944fb952895f40e gcc/testsuite/gcc.dg/ipa/pr103083-2.c 40bd41302666d56c4edf7330db97920e gcc/testsuite/gcc.dg/ipa/pr42706.c e4887053c792f4f78b03804c148839ce gcc/testsuite/gcc.dg/ipa/pr45644.c 6e1b4f2c5d0c0d768778da8e3b7df828 gcc/testsuite/gcc.dg/ipa/pr48195.c *************** f98a566b3b2ff6733ed676024f2fb9f5 gcc/te *** 38517,38522 **** --- 38731,38742 ---- 1eb5a5a9618f46e44dc9d6ee2a4c8bc4 gcc/testsuite/gcc.dg/lto/modref-4_1.c e1bd2be5006d2bb7a3b670af0868ffeb gcc/testsuite/gcc.dg/lto/noreturn-1_0.c 2472b5bc8466fe62188232d9fbcd9de6 gcc/testsuite/gcc.dg/lto/noreturn-1_1.c + b277b193b2a7ff104d28fbf8e50407e8 gcc/testsuite/gcc.dg/lto/pr101868_0.c + ca741859e8754c149e68fc40892d50b1 gcc/testsuite/gcc.dg/lto/pr101868_1.c + e4aec3391bc7aed1a5d886edeb277407 gcc/testsuite/gcc.dg/lto/pr101868_2.c + 02d829cec4d5ff9723124841f79edca9 gcc/testsuite/gcc.dg/lto/pr101868_3.c + 54599eb36fac6d6bc3b48bfa2a679738 gcc/testsuite/gcc.dg/lto/pr101949_0.c + eb5d2fc7242b611f019d43c7d00a7531 gcc/testsuite/gcc.dg/lto/pr101949_1.c 5192817b2492ca93ffadce3b4a5e4794 gcc/testsuite/gcc.dg/lto/pr27898_0.c c5f48897247dfaec60df4e32beffcd8e gcc/testsuite/gcc.dg/lto/pr27898_1.c 2ad724786bc4b555a7f31e8b3bf164b6 gcc/testsuite/gcc.dg/lto/pr28706_0.c *************** c1874b847baa5d41d58aa2db643143da gcc/te *** 39075,39087 **** 9724706865aec183bf418db2220222c0 gcc/testsuite/gcc.dg/plugin/diagnostic-test-string-literals-3.c 9130ee71c624765ab112b75378ac96c0 gcc/testsuite/gcc.dg/plugin/diagnostic-test-string-literals-4.c 64a62a33969a68dabd414a649151bbf0 gcc/testsuite/gcc.dg/plugin/diagnostic_group_plugin.c ! 2bd5ab6125b05a69b8dfecc2508cd912 gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_show_trees.c ! d27333a4c03b07af5222f70da018ebbf gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_inlining.c 6166699181d0af7113e8d77486e75ef4 gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_metadata.c ! 8b13b660669797ea84a1fde5ae9a24f3 gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_paths.c 064f04486c7a7bf4560482d2b4333df5 gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_show_locus.c ! aa2f82fc240f63c964a92a84c25344cf gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_string_literals.c ! 707526da84cfcfe163a5cccceed8c466 gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_tree_expression_range.c 07558668b4c054118c12c8514bb94698 gcc/testsuite/gcc.dg/plugin/dump-1.c 88c83e306ac4f214fd9bc80a3eba0054 gcc/testsuite/gcc.dg/plugin/dump-2.c 7427e09de26af0b57094c9728b35ea7d gcc/testsuite/gcc.dg/plugin/dump_plugin.c --- 39295,39307 ---- 9724706865aec183bf418db2220222c0 gcc/testsuite/gcc.dg/plugin/diagnostic-test-string-literals-3.c 9130ee71c624765ab112b75378ac96c0 gcc/testsuite/gcc.dg/plugin/diagnostic-test-string-literals-4.c 64a62a33969a68dabd414a649151bbf0 gcc/testsuite/gcc.dg/plugin/diagnostic_group_plugin.c ! ec592bfd273d806ead078d85f814e82c gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_show_trees.c ! 21a610a854c93330d4eb7c10281e5683 gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_inlining.c 6166699181d0af7113e8d77486e75ef4 gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_metadata.c ! 78302f36d90c98364f12c9362b61e53d gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_paths.c 064f04486c7a7bf4560482d2b4333df5 gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_show_locus.c ! 75006163ce7e07c7298e9e1fad560386 gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_string_literals.c ! b0b2fc226001595620383855c8eacf11 gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_tree_expression_range.c 07558668b4c054118c12c8514bb94698 gcc/testsuite/gcc.dg/plugin/dump-1.c 88c83e306ac4f214fd9bc80a3eba0054 gcc/testsuite/gcc.dg/plugin/dump-2.c 7427e09de26af0b57094c9728b35ea7d gcc/testsuite/gcc.dg/plugin/dump_plugin.c *************** ecd4e45106744489e5a78254ca44d88a gcc/te *** 39153,39163 **** --- 39373,39388 ---- 2ed4c7917cf2d830a0bb5f0d9d65e592 gcc/testsuite/gcc.dg/pr100225.c 1297b760f49fded84008e039bc67829a gcc/testsuite/gcc.dg/pr100239.c 5ca809ef622425c422640fc82af912d6 gcc/testsuite/gcc.dg/pr100414.c + 0427d40b4e082cce256dba416ad5965d gcc/testsuite/gcc.dg/pr100464.c eefdc14893bfe7e4dd2a89202733fa86 gcc/testsuite/gcc.dg/pr100509.c + 11146764fafb29a1319cb0b5d9f09044 gcc/testsuite/gcc.dg/pr100520.c 395736a8e0816a51c506968c1ca01f5d gcc/testsuite/gcc.dg/pr100563.c 0d16c3f79029d0b1d58367952a9cdfa3 gcc/testsuite/gcc.dg/pr100590.c b6d7f7ed4dde3865c140de6c031f2bda gcc/testsuite/gcc.dg/pr100619.c + 3a4aa573e35026433b0c5710fc8ceed0 gcc/testsuite/gcc.dg/pr100680.c + f44c2488d00a079c87fd11d26d428796 gcc/testsuite/gcc.dg/pr100788.c 5e25293a3107689203988f78c03ea859 gcc/testsuite/gcc.dg/pr100791.c + 62ea3571a0a58e5eef07826715647995 gcc/testsuite/gcc.dg/pr100834.c b20e922d857d70fc849642b04d8aef50 gcc/testsuite/gcc.dg/pr101062.c f18acedefe9e23843bfc481cdeb419ad gcc/testsuite/gcc.dg/pr101156.c f7653fb72f02585ca98c4cb008a53e32 gcc/testsuite/gcc.dg/pr101171.c *************** ce4c9d39348d671d75f2c9b6009262fb gcc/te *** 39165,39172 **** --- 39390,39420 ---- 36e682a40ce779df8943180980917338 gcc/testsuite/gcc.dg/pr101223.c 2eebdeb5aef44432de1498de14cbf4e6 gcc/testsuite/gcc.dg/pr101266.c 70303171ed7f5b2cba05e6b98daad2ab gcc/testsuite/gcc.dg/pr101384.c + 9437d2977418eec9749f3a9d06040a59 gcc/testsuite/gcc.dg/pr102140.c + afb36cfd0415d59db229d4058c30853f gcc/testsuite/gcc.dg/pr102224.c + 0bb85c23ffa7496538a767244947fdb2 gcc/testsuite/gcc.dg/pr102356.c + 91844853e35a7b41b30a3460cc946f81 gcc/testsuite/gcc.dg/pr102478.c + d2b6c61457f02b40823ad6f31b29f47c gcc/testsuite/gcc.dg/pr102798.c + 403235552bc51decc6aaf0f2f60e8721 gcc/testsuite/gcc.dg/pr103248.c + 5cf580820aedc778e4de76262078142d gcc/testsuite/gcc.dg/pr103587.c + 220dde695d4a28e6fb719f38a397ed0e gcc/testsuite/gcc.dg/pr103837.c + 8eab078f5fe12fd259103c4e2fa30713 gcc/testsuite/gcc.dg/pr103838.c + a4874d44c0ba05d6340ed06bc5958e53 gcc/testsuite/gcc.dg/pr103860.c 8226e377d45ef0ffeb7badfb04740ab9 gcc/testsuite/gcc.dg/pr10392-1.c + 274592903ac1b8bb26cb04aaeb7bceb4 gcc/testsuite/gcc.dg/pr104263.c + 6cdf5f889cfeab1185ff2396685e6d88 gcc/testsuite/gcc.dg/pr104288.c + c055fb27d1a723e98ef6bd9290551487 gcc/testsuite/gcc.dg/pr104511.c + 1198a55fbf04ab73754710d047131b2b gcc/testsuite/gcc.dg/pr104544.c + c04efe12f2d4a15f1ea2cae1889ba4cf gcc/testsuite/gcc.dg/pr104675-1.c + c5ab940cf751b86591b1f61af3cfdade gcc/testsuite/gcc.dg/pr104675-2.c + 3134bf3d7e786de762b2b02ad55f4dcd gcc/testsuite/gcc.dg/pr104675-3.c d8ac6e8cccf7bcb1070140ae44ef117a gcc/testsuite/gcc.dg/pr10474.c + 2968ba86ec9be073192c7975ec531fb3 gcc/testsuite/gcc.dg/pr104786.c + 8c0ed1baab74c7b05d89e60fb2786609 gcc/testsuite/gcc.dg/pr104910.c + f8d1a8342ac7db3ad1336ab098edd372 gcc/testsuite/gcc.dg/pr105094.c + 299f6a400b7fb5db65f2901e5285cc2c gcc/testsuite/gcc.dg/pr105165.c + b01f707de15442a63cdb3e32148021fd gcc/testsuite/gcc.dg/pr105211.c + 62b3efd9b859c1e2a74f5d3cfa969d33 gcc/testsuite/gcc.dg/pr105226.c 860f163dcd0b252ea3f85323bc959a7d gcc/testsuite/gcc.dg/pr11459-1.c e164a736918661d669864e3645da290c gcc/testsuite/gcc.dg/pr11492.c 3b83403729a3686d25552352bf0c4577 gcc/testsuite/gcc.dg/pr11864-1.c *************** a45d8a7ea58bf6c772c8fa0d9d6f1ca5 gcc/te *** 40527,40533 **** a777a206da2c1bfe3ba53d32fb8b2e9c gcc/testsuite/gcc.dg/pr78138.c 427e79810052c59fa2a8c9b43fbdfa29 gcc/testsuite/gcc.dg/pr78148.c 38c8c806f957a135e11b0daa90cc9de6 gcc/testsuite/gcc.dg/pr78185.c ! 5bb4c02b2f251c26191de89ac03e564b gcc/testsuite/gcc.dg/pr78213.c aa86169902d2471ece373c0dddd5232b gcc/testsuite/gcc.dg/pr78241.c 7bfaca350ee545dbe10363c435dfa736 gcc/testsuite/gcc.dg/pr78333.c 21d56f799d53b50dacd02048a1b73756 gcc/testsuite/gcc.dg/pr78384.c --- 40775,40781 ---- a777a206da2c1bfe3ba53d32fb8b2e9c gcc/testsuite/gcc.dg/pr78138.c 427e79810052c59fa2a8c9b43fbdfa29 gcc/testsuite/gcc.dg/pr78148.c 38c8c806f957a135e11b0daa90cc9de6 gcc/testsuite/gcc.dg/pr78185.c ! aecacbb64d3497c484426d338ffae43d gcc/testsuite/gcc.dg/pr78213.c aa86169902d2471ece373c0dddd5232b gcc/testsuite/gcc.dg/pr78241.c 7bfaca350ee545dbe10363c435dfa736 gcc/testsuite/gcc.dg/pr78333.c 21d56f799d53b50dacd02048a1b73756 gcc/testsuite/gcc.dg/pr78384.c *************** da28f19c06ff7662e7a7546ec852e25c gcc/te *** 40931,40937 **** b3a812009694e752663ca04925320324 gcc/testsuite/gcc.dg/pr91181.c 196c4342cb2568a603593ef3a72ee31d gcc/testsuite/gcc.dg/pr91195.c 127ca7d7d9652887fc59a33f4f13e4e0 gcc/testsuite/gcc.dg/pr91269.c ! 19862a29cf16f806e49e432992a94327 gcc/testsuite/gcc.dg/pr91441.c af691f7944d0d62cede654cf7924bf61 gcc/testsuite/gcc.dg/pr91570.c 33e7e05ba9936ecabdb9d59e8e4ff241 gcc/testsuite/gcc.dg/pr91720.c 0ce66608741e42c8178cb8a54ad1933c gcc/testsuite/gcc.dg/pr91734.c --- 41179,41185 ---- b3a812009694e752663ca04925320324 gcc/testsuite/gcc.dg/pr91181.c 196c4342cb2568a603593ef3a72ee31d gcc/testsuite/gcc.dg/pr91195.c 127ca7d7d9652887fc59a33f4f13e4e0 gcc/testsuite/gcc.dg/pr91269.c ! 4a2bd43cd7fd8e7268a408628f8e2afa gcc/testsuite/gcc.dg/pr91441.c af691f7944d0d62cede654cf7924bf61 gcc/testsuite/gcc.dg/pr91570.c 33e7e05ba9936ecabdb9d59e8e4ff241 gcc/testsuite/gcc.dg/pr91720.c 0ce66608741e42c8178cb8a54ad1933c gcc/testsuite/gcc.dg/pr91734.c *************** c72df927b15d18de0d1c05eef46be3ba gcc/te *** 41024,41029 **** --- 41272,41278 ---- c2fd25feddce893f7652a84fe5746fa4 gcc/testsuite/gcc.dg/pr94963.c 903a1bb951735666f689961e0bf5ab2a gcc/testsuite/gcc.dg/pr94968.c e4dde89601272f1b99612f3aef7cb7e5 gcc/testsuite/gcc.dg/pr95052.c + 86ccf70ae09c24fad23aa9df39072a82 gcc/testsuite/gcc.dg/pr95115.c 1feb85be5d60e05ef1bda1b1214cd644 gcc/testsuite/gcc.dg/pr95118.c 374fe6896d7f734385c9df06306a39f3 gcc/testsuite/gcc.dg/pr95133.c 130d9acc88fc75c668740cf769b79052 gcc/testsuite/gcc.dg/pr95141.c *************** c22461eed6a27d8515ea9a6c4843f9d8 gcc/te *** 41037,41045 **** ca4e49a1cf17b159d9fb78f90317403f gcc/testsuite/gcc.dg/pr95854.c 15fe6f110b98e652f1af3b94b132063a gcc/testsuite/gcc.dg/pr95857.c af3ad20732337f1695c7cc2a26807ebb gcc/testsuite/gcc.dg/pr96239.c ! 80ae6629e66d6fc96b4f8bee9d1fab64 gcc/testsuite/gcc.dg/pr96260.c 02fadbb0374dfcd02a07be839ec9bdb5 gcc/testsuite/gcc.dg/pr96298.c ! 8f40fe33f90f43ebf42e8cffda5509ad gcc/testsuite/gcc.dg/pr96307.c 0335046a3e339e020569e9abf2dfd119 gcc/testsuite/gcc.dg/pr96335.c b0c24e576cdfbf580f93fa792c734044 gcc/testsuite/gcc.dg/pr96370.c a802b5e0d50cb86641c238e173ecd7ec gcc/testsuite/gcc.dg/pr96377-1.c --- 41286,41294 ---- ca4e49a1cf17b159d9fb78f90317403f gcc/testsuite/gcc.dg/pr95854.c 15fe6f110b98e652f1af3b94b132063a gcc/testsuite/gcc.dg/pr95857.c af3ad20732337f1695c7cc2a26807ebb gcc/testsuite/gcc.dg/pr96239.c ! 8860bd1282dc5af39ed43d3ab3c675fc gcc/testsuite/gcc.dg/pr96260.c 02fadbb0374dfcd02a07be839ec9bdb5 gcc/testsuite/gcc.dg/pr96298.c ! bea42aee96625a2eb14f74da27bfb773 gcc/testsuite/gcc.dg/pr96307.c 0335046a3e339e020569e9abf2dfd119 gcc/testsuite/gcc.dg/pr96335.c b0c24e576cdfbf580f93fa792c734044 gcc/testsuite/gcc.dg/pr96370.c a802b5e0d50cb86641c238e173ecd7ec gcc/testsuite/gcc.dg/pr96377-1.c *************** d309a0c8c644885e7798b22c4789bc63 gcc/te *** 41141,41146 **** --- 41390,41398 ---- 41121635897d600e326a315863592036 gcc/testsuite/gcc.dg/pr99296.c 38a11f1689638e5cfd3cca06271ced62 gcc/testsuite/gcc.dg/pr99323-1.c cf29b4ab0f03a85493ce03864c0d7d66 gcc/testsuite/gcc.dg/pr99323-2.c + da013fc0611d4266aee473477103102e gcc/testsuite/gcc.dg/pr99578-1.c + fcdb7388a496127166d135b7cc9b48d5 gcc/testsuite/gcc.dg/pr99578-2.c + 5ae348872cbdd648ed6f940aaa17b0a7 gcc/testsuite/gcc.dg/pr99578-3.c 110164c4d9d3f245273a057dc1b1b2e8 gcc/testsuite/gcc.dg/pr99830.c 3b590df752b036d072955c45dcde9fda gcc/testsuite/gcc.dg/pr99882.c bd1dd69944d498943ec98b799196b332 gcc/testsuite/gcc.dg/pr99990.c *************** a22c0db258dd69508b2ceb6070cac172 gcc/te *** 41451,41456 **** --- 41703,41709 ---- 9821ad4cb043e8bea1647783db517677 gcc/testsuite/gcc.dg/sso-10.c 69fbd818614a3c1f7529e6e1957b7a16 gcc/testsuite/gcc.dg/sso-11.c e5a2d2cf2501ec1e111692875eb21b34 gcc/testsuite/gcc.dg/sso-14.c + ae63ef59d4955da47b8b32d066fbadb0 gcc/testsuite/gcc.dg/sso-16.c 1596e67c3fd5ccc4a9264cba4aa398c4 gcc/testsuite/gcc.dg/sso-2.c 4a6f7bb1645423ba5d23a61f98233d1d gcc/testsuite/gcc.dg/sso-3.c edaa32662275ea6100c4a0657754194a gcc/testsuite/gcc.dg/sso-4.c *************** c291ca9e80ea000b6dc33f0d7f7d34e9 gcc/te *** 42092,42099 **** f8e2abd75769f3a4ef8ad7b9914390be gcc/testsuite/gcc.dg/torture/fp-int-convert-long-double.c 9ef87b27cfee504086000e94ac29f50a gcc/testsuite/gcc.dg/torture/fp-int-convert-timode-1.c 5169357e3279d3d6cdbbba3f5f56ae06 gcc/testsuite/gcc.dg/torture/fp-int-convert-timode-2.c ! fd8e4b5780f61cf3b05303134b29baff gcc/testsuite/gcc.dg/torture/fp-int-convert-timode-3.c ! 3ce2c239552d01bdeca3fb45312a4cc2 gcc/testsuite/gcc.dg/torture/fp-int-convert-timode-4.c b433f576987f7d246553ea453e377ab9 gcc/testsuite/gcc.dg/torture/fp-int-convert-timode.c ee42b6d1749f9706fac80052d9404d0a gcc/testsuite/gcc.dg/torture/fp-int-convert.h ff646b4bbd5d24fb83db416b6482d625 gcc/testsuite/gcc.dg/torture/ftrapv-1.c --- 42345,42352 ---- f8e2abd75769f3a4ef8ad7b9914390be gcc/testsuite/gcc.dg/torture/fp-int-convert-long-double.c 9ef87b27cfee504086000e94ac29f50a gcc/testsuite/gcc.dg/torture/fp-int-convert-timode-1.c 5169357e3279d3d6cdbbba3f5f56ae06 gcc/testsuite/gcc.dg/torture/fp-int-convert-timode-2.c ! 1693262ce9bbff75614cabd11769c3bb gcc/testsuite/gcc.dg/torture/fp-int-convert-timode-3.c ! 4c8473474ab81348950cc8917d5cfdba gcc/testsuite/gcc.dg/torture/fp-int-convert-timode-4.c b433f576987f7d246553ea453e377ab9 gcc/testsuite/gcc.dg/torture/fp-int-convert-timode.c ee42b6d1749f9706fac80052d9404d0a gcc/testsuite/gcc.dg/torture/fp-int-convert.h ff646b4bbd5d24fb83db416b6482d625 gcc/testsuite/gcc.dg/torture/ftrapv-1.c *************** d0754d716d5a46b59b9bef2c75e48953 gcc/te *** 42133,42138 **** --- 42386,42392 ---- 6335c9430427e1e94a7a58bb8b0b5255 gcc/testsuite/gcc.dg/torture/pr100566.c 5f5809ecbd695f122244007bc7702241 gcc/testsuite/gcc.dg/torture/pr100672.c 42ebfa98a65c58d2b4d8a096dc9a472a gcc/testsuite/gcc.dg/torture/pr100778.c + 4b5d071569dd623054d8ee1f648c1cfe gcc/testsuite/gcc.dg/torture/pr100786.c 8b17a9d424e890ccb3124ad5ef70f837 gcc/testsuite/gcc.dg/torture/pr100923.c de1ad14692100748f699bc7db768a51d gcc/testsuite/gcc.dg/torture/pr100934.c cbce37eea923f47befb962cd2af5ac3a gcc/testsuite/gcc.dg/torture/pr101009.c *************** cbce37eea923f47befb962cd2af5ac3a gcc/te *** 42143,42148 **** --- 42397,42414 ---- ad6242e66d3dccabe71dd1502730f6d6 gcc/testsuite/gcc.dg/torture/pr101173.c 0014d80eb6a0afc3d44ff252f0d03cc7 gcc/testsuite/gcc.dg/torture/pr101229.c 556a928be1d2de2f0390088de1d6e46f gcc/testsuite/gcc.dg/torture/pr101394.c + a30561c35b626bdca950462ffda37c6f gcc/testsuite/gcc.dg/torture/pr101512.c + 0fa28c6d57d93a345fb1f4847e5bbded gcc/testsuite/gcc.dg/torture/pr102124.c + 64f75e9bd3fe7ad8c0a8ce6cdc1a6537 gcc/testsuite/gcc.dg/torture/pr102139.c + c7fa8c61aab4091ae9cc7d1dac0e5731 gcc/testsuite/gcc.dg/torture/pr102518.c + 9f1dcdf5769944ea067a3a74f74fa4f9 gcc/testsuite/gcc.dg/torture/pr102762.c + 98aa192f1dd77816cc201b3a0ee72edb gcc/testsuite/gcc.dg/torture/pr103181.c + 547891798420dac575d359e03954b283 gcc/testsuite/gcc.dg/torture/pr103204.c + 190d413f3b81d5e1b395090ae83703be gcc/testsuite/gcc.dg/torture/pr103237.c + 733762e1d02b2686fe659b417b8dcfb8 gcc/testsuite/gcc.dg/torture/pr103489.c + 66fcee07a56c19209cb4aaa0d4aaaded gcc/testsuite/gcc.dg/torture/pr103596.c + 187b7ab38abc20e5b403f44030455c53 gcc/testsuite/gcc.dg/torture/pr104402.c + a88279579fa471a64faeb41da64a9eb4 gcc/testsuite/gcc.dg/torture/pr105198.c ded4330fd1cd52783bd9b1761db038ef gcc/testsuite/gcc.dg/torture/pr16104-1.c fc265ee05da2f29f0e92804661cd1f28 gcc/testsuite/gcc.dg/torture/pr17526.c 01c583edb41b632b835aa892b9c1cb14 gcc/testsuite/gcc.dg/torture/pr17933-1.c *************** d7e0ddd1f6e09838ee75c461b357993b gcc/te *** 43230,43235 **** --- 43496,43502 ---- d5967747961c3c0e43380a4aee91e5dd gcc/testsuite/gcc.dg/torture/stackalign/vararg-1.c 43fcb5d2985d6b4e94c4aebf0392dbd4 gcc/testsuite/gcc.dg/torture/stackalign/vararg-2.c 3de9668ba2bd89837c3f7c15e1e3d7e2 gcc/testsuite/gcc.dg/torture/stackalign/vararg-3.c + 9ff09cb739592baf30552acd2b24f79f gcc/testsuite/gcc.dg/torture/tls/pr104777.c ed0fa1d073845fed5b0352c474ef8b77 gcc/testsuite/gcc.dg/torture/tls/run-gd.c df7b12dbf9d331f62fd4d971bf2212d0 gcc/testsuite/gcc.dg/torture/tls/run-ie.c 85eac160403c7fbaad14f07a01f0b507 gcc/testsuite/gcc.dg/torture/tls/run-ld.c *************** a894721a77fea7c94bacb921fa950e92 gcc/te *** 44053,44058 **** --- 44320,44326 ---- 37c95d5ee8501532edd39636e62b1144 gcc/testsuite/gcc.dg/tree-ssa/popcount5l.c 5865561cafce8352e1b97ad299ec6398 gcc/testsuite/gcc.dg/tree-ssa/popcount5ll.c 54f39b48fa6b3cbd7593e9bc52d33a21 gcc/testsuite/gcc.dg/tree-ssa/pr100278.c + d5dace55f72aa8ccb51636dff79f5ccc gcc/testsuite/gcc.dg/tree-ssa/pr101824.c 78e6c5fe63f7305009c8a79840fe20dc gcc/testsuite/gcc.dg/tree-ssa/pr13146.c eab19e0c04884cd782c9879cbe292109 gcc/testsuite/gcc.dg/tree-ssa/pr14341.c 9945ed7002a5f7d4918e8ff5eb4cb647 gcc/testsuite/gcc.dg/tree-ssa/pr14490-1.c *************** b0f2c1e77fc0cf943a631ac09484533b gcc/te *** 44464,44477 **** 19fbd9df2abfe718608c05a3b0894fea gcc/testsuite/gcc.dg/tree-ssa/pr88775-2.c e89f8e784c43baa5c307166a1b734b4b gcc/testsuite/gcc.dg/tree-ssa/pr89060.c 024ba71c905d05d7a9881facfa2c7774 gcc/testsuite/gcc.dg/tree-ssa/pr89209.c ! f3fbb68e9f7f5e47a74b1238fe1555c7 gcc/testsuite/gcc.dg/tree-ssa/pr89430-1.c ! cf8509d5da126ffa8d4cb163e7617f40 gcc/testsuite/gcc.dg/tree-ssa/pr89430-2.c ! e14a7ab024285c629369879e885230f9 gcc/testsuite/gcc.dg/tree-ssa/pr89430-3.c ! 856d06b8ec17411269229c41a17bb257 gcc/testsuite/gcc.dg/tree-ssa/pr89430-4.c ! d954c63cb9ea858c2e1f2bb5ad528e08 gcc/testsuite/gcc.dg/tree-ssa/pr89430-5.c ! 2759fec45807bdc334dcde2efa18ab27 gcc/testsuite/gcc.dg/tree-ssa/pr89430-6.c ! 4d10636d771db994027e51bdf2519358 gcc/testsuite/gcc.dg/tree-ssa/pr89430-7-comp-ref.c ! d445061f436becb6c193f97393c05d91 gcc/testsuite/gcc.dg/tree-ssa/pr89430-8-mem-ref-size.c 473050d3b0a7febd40885ba41f36c10f gcc/testsuite/gcc.dg/tree-ssa/pr89475.c df74a31199b32038f63b600b7a20a4f6 gcc/testsuite/gcc.dg/tree-ssa/pr89487.c a8e99357ccf139e15cb199f14791dd62 gcc/testsuite/gcc.dg/tree-ssa/pr89546.c --- 44732,44745 ---- 19fbd9df2abfe718608c05a3b0894fea gcc/testsuite/gcc.dg/tree-ssa/pr88775-2.c e89f8e784c43baa5c307166a1b734b4b gcc/testsuite/gcc.dg/tree-ssa/pr89060.c 024ba71c905d05d7a9881facfa2c7774 gcc/testsuite/gcc.dg/tree-ssa/pr89209.c ! e8d812d9f4cc1e5589250829f2d5788a gcc/testsuite/gcc.dg/tree-ssa/pr89430-1.c ! 48c96459dd271a728f17eda9f142d41f gcc/testsuite/gcc.dg/tree-ssa/pr89430-2.c ! 7422c22dad66116dbbe3f939acb67f5e gcc/testsuite/gcc.dg/tree-ssa/pr89430-3.c ! c9dcfce86ea7a75f19da7f8f6d50ac61 gcc/testsuite/gcc.dg/tree-ssa/pr89430-4.c ! aac3aa4a47c265bad6f6170909255777 gcc/testsuite/gcc.dg/tree-ssa/pr89430-5.c ! 1a1ae7547a6dce57014b0c3de8953a09 gcc/testsuite/gcc.dg/tree-ssa/pr89430-6.c ! 2afa928485578a2fa31d185647628f8c gcc/testsuite/gcc.dg/tree-ssa/pr89430-7-comp-ref.c ! bd8d64fa70c1f8b1ec57b7bf02930a87 gcc/testsuite/gcc.dg/tree-ssa/pr89430-8-mem-ref-size.c 473050d3b0a7febd40885ba41f36c10f gcc/testsuite/gcc.dg/tree-ssa/pr89475.c df74a31199b32038f63b600b7a20a4f6 gcc/testsuite/gcc.dg/tree-ssa/pr89487.c a8e99357ccf139e15cb199f14791dd62 gcc/testsuite/gcc.dg/tree-ssa/pr89546.c *************** baea640f2f5ede46363c43f03abd38cb gcc/te *** 44596,44601 **** --- 44864,44870 ---- 2802e4a2ba6a403181f297d6a0a30fe5 gcc/testsuite/gcc.dg/tree-ssa/pr98455.c 3725366f65490df73d15cafa94bca1d5 gcc/testsuite/gcc.dg/tree-ssa/pr98513.c 566f2cf5c36f26ba96a5827e3ad9322f gcc/testsuite/gcc.dg/tree-ssa/pr99142.c + ade2a31f339a2cef5d9ebcd9b1f2cb67 gcc/testsuite/gcc.dg/tree-ssa/pr99578-1.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 *************** a4485085185fcdf9689ad1ba99aa8d60 gcc/te *** 44822,44833 **** fc3e2aaf0b10a13e63cd6178c5dc77cb gcc/testsuite/gcc.dg/tree-ssa/ssa-copyprop-2.c 0ab53c5566862b724caea49a0b1314ac gcc/testsuite/gcc.dg/tree-ssa/ssa-dce-1.c 754437368439973765d70d8243ee96ae gcc/testsuite/gcc.dg/tree-ssa/ssa-dce-2.c ! 5d9e7dcd76108baafbbd140522e63179 gcc/testsuite/gcc.dg/tree-ssa/ssa-dce-3.c 2e7f51e62135823fd2ea40d5d9f5214a gcc/testsuite/gcc.dg/tree-ssa/ssa-dce-4.c b596f72df33a0229e9487dc91cf6fc0f gcc/testsuite/gcc.dg/tree-ssa/ssa-dce-5.c 4b92b155e06a5ac3cdfc687dd384a3df gcc/testsuite/gcc.dg/tree-ssa/ssa-dce-6.c 867e58b89d0d7e5db1ae140b1b97f4ce gcc/testsuite/gcc.dg/tree-ssa/ssa-dce-7.c b7ccd5f262237601ddd937d39599c479 gcc/testsuite/gcc.dg/tree-ssa/ssa-dce-8.c 234074b4256dac328cd0aa9b439a5d71 gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-branch-1.c e666ad14b4ed9af521fe3321b676a452 gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-ccp-1.c 8a64614ddb6fafb7fd2cde19df7908b4 gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-cse-1.c --- 45091,45103 ---- fc3e2aaf0b10a13e63cd6178c5dc77cb gcc/testsuite/gcc.dg/tree-ssa/ssa-copyprop-2.c 0ab53c5566862b724caea49a0b1314ac gcc/testsuite/gcc.dg/tree-ssa/ssa-dce-1.c 754437368439973765d70d8243ee96ae gcc/testsuite/gcc.dg/tree-ssa/ssa-dce-2.c ! d2e19123225493048816ba7880125ee7 gcc/testsuite/gcc.dg/tree-ssa/ssa-dce-3.c 2e7f51e62135823fd2ea40d5d9f5214a gcc/testsuite/gcc.dg/tree-ssa/ssa-dce-4.c b596f72df33a0229e9487dc91cf6fc0f gcc/testsuite/gcc.dg/tree-ssa/ssa-dce-5.c 4b92b155e06a5ac3cdfc687dd384a3df gcc/testsuite/gcc.dg/tree-ssa/ssa-dce-6.c 867e58b89d0d7e5db1ae140b1b97f4ce gcc/testsuite/gcc.dg/tree-ssa/ssa-dce-7.c b7ccd5f262237601ddd937d39599c479 gcc/testsuite/gcc.dg/tree-ssa/ssa-dce-8.c + fe380a1f1df354382cdc2b0804d55603 gcc/testsuite/gcc.dg/tree-ssa/ssa-dce-9.c 234074b4256dac328cd0aa9b439a5d71 gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-branch-1.c e666ad14b4ed9af521fe3321b676a452 gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-ccp-1.c 8a64614ddb6fafb7fd2cde19df7908b4 gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-cse-1.c *************** c311453bfa9e07fb29dd6981eaaf350d gcc/te *** 45672,45677 **** --- 45942,45948 ---- 5face17b7bca252af575af588f27be32 gcc/testsuite/gcc.dg/vect/bb-slp-phis-1.c f46db941b9a35f0bfa38b50d084a730c gcc/testsuite/gcc.dg/vect/bb-slp-pow-1.c f606c48752c134307bcd2f9c1b4911ce gcc/testsuite/gcc.dg/vect/bb-slp-pr100778-1.c + bdedf0ea0dbf21fbeaa20a6ae82af692 gcc/testsuite/gcc.dg/vect/bb-slp-pr101615-2.c 5472e7bf338627077f4e6ce8cce9944e gcc/testsuite/gcc.dg/vect/bb-slp-pr58135.c 36304c1d67fc912f27ddc07a124d90e1 gcc/testsuite/gcc.dg/vect/bb-slp-pr65935.c a3000cd864ecf8f7a3037fec3f0ac388 gcc/testsuite/gcc.dg/vect/bb-slp-pr69907.c *************** f458c4bd5bf3886b45d0ca62da2ba1ff gcc/te *** 45708,45766 **** 6f206346ceb24c5ac1795b0003f74f55 gcc/testsuite/gcc.dg/vect/bb-slp-subgroups-2.c f511c5e3bf05877e92e7c9fb18acc107 gcc/testsuite/gcc.dg/vect/bb-slp-subgroups-3.c d89050f03b37a25cc5ba09396bd2e9b0 gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-byte.c ! 15072285b9ae4c0a42ddd7ec021be36e gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-int.c ! 61d637d0bc8b39ec5c2141f093ac2791 gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-long.c ! 34e6806d0671df556c04e6629cef9dee gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-short.c c4f08815e53af41573a08e3ab4cea90e gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-unsigned-byte.c ! 8957c11d8028ea037575b141f1fd3ee9 gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-unsigned-int.c ! 8d6e3fd6e998b3ba6a236f5d60c5822a gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-unsigned-long.c ! 0c31eaa3219809dc8a434efa53433794 gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-unsigned-short.c ! f9b2084ed78ee25e7ec32af8c7c4d708 gcc/testsuite/gcc.dg/vect/complex/complex-add-pattern-template.c ! 58e79b51aa657aaa33b99bb42c8c75b0 gcc/testsuite/gcc.dg/vect/complex/complex-add-template.c 53c115ab260300dfb7fb6a17a5b91fb9 gcc/testsuite/gcc.dg/vect/complex/complex-mla-template.c d296c18a5121519fc5fa6c393b6ca043 gcc/testsuite/gcc.dg/vect/complex/complex-mls-template.c 62214c964d5fe67dd941ceaf38c0af04 gcc/testsuite/gcc.dg/vect/complex/complex-mul-template.c ! 8381a4bbf36b8797cab21d29bd0dd897 gcc/testsuite/gcc.dg/vect/complex/complex-operations-run.c b663bc81b4270defc2534ee4b697c313 gcc/testsuite/gcc.dg/vect/complex/complex-operations.c ! 31ab565e3c215528fcb0fc22367f0712 gcc/testsuite/gcc.dg/vect/complex/complex.exp ! 8b9ea5935d1a8a6f7846cc52dbd786f6 gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-double.c ! 1fac2509d957a3c41cd42ea28e9730c7 gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-float.c ! a1fcb4930700fa8286713231be625354 gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-half-float.c ! d495d5a7b3b10a494186932c4e4180f9 gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-double.c ! 6464bde75f93aac89cf605bbc396e937 gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-float.c ! c261c8d33c9e338be29cae4b432a6fb6 gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-half-float.c ! 5401788b5d014c57c1952baef5d92bc9 gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-double.c ! 6d80c3d1548d7fe0f516d889267fcbe9 gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-float.c ! a38494d5b58c6da7e38cc186744164ca gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-half-float.c ! 5401788b5d014c57c1952baef5d92bc9 gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-double.c ! 6d80c3d1548d7fe0f516d889267fcbe9 gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-float.c ! a38494d5b58c6da7e38cc186744164ca gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-half-float.c ! 3cca44affa86810d7b68ad9afc728d65 gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-double.c ! e3a8c3e0c9606ec8f4d628df54c30df7 gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-float.c ! 931f516cf71a7e7dae9a997d97625db2 gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-half-float.c ! d985c8a413f60190db21e79a0bd74395 gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-double.c ! beff30a2bc1de7efb520d7cbaf055545 gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-float.c ! b8a63900c733a5c9f81ec346a671b3f5 gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-half-float.c ! a19b1a27dae2b980483e6e746b4f6e25 gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-pattern-double.c ! e67c6b8e929cc0a4e70e65d597e57ba8 gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-pattern-float.c ! 93c56fba7d83fb4bb565127cf24120a0 gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-pattern-half-float.c ! aac415c17d346bf3c8c6745ba20ed6b5 gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mla-double.c ! 58c57c4b0f48228dcb0031a1ceb86dc9 gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mla-float.c ! 72c98fee94184b5cd944cbd3279cc974 gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mla-half-float.c ! aac415c17d346bf3c8c6745ba20ed6b5 gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mls-double.c ! 58c57c4b0f48228dcb0031a1ceb86dc9 gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mls-float.c ! 72c98fee94184b5cd944cbd3279cc974 gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mls-half-float.c ! c21c2776fccd2ec08a30d92f87228760 gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mul-double.c ! f168d8295936fc6829b822f75e3a0f95 gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mul-float.c ! 6b9e40d2ab960567d68e283b0ff7631e gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mul-half-float.c ! 78e81a6dd70287d480468db262815200 gcc/testsuite/gcc.dg/vect/complex/vect-complex-add-pattern-byte.c ! 09cf8fa19e44b2a3ba46c26d2e17f475 gcc/testsuite/gcc.dg/vect/complex/vect-complex-add-pattern-int.c ! e6cb5812d6e1de5ebc69c42714c47c3d gcc/testsuite/gcc.dg/vect/complex/vect-complex-add-pattern-long.c ! 23895de5ff8a5fb20050bfab14fe1273 gcc/testsuite/gcc.dg/vect/complex/vect-complex-add-pattern-short.c ! 3d847c6ddd492af1c3d6d9edb01401ac gcc/testsuite/gcc.dg/vect/complex/vect-complex-add-pattern-unsigned-byte.c ! 498cb9fbff0e69392c14f5703fc6bf41 gcc/testsuite/gcc.dg/vect/complex/vect-complex-add-pattern-unsigned-int.c ! 201eca644a52da7da3247eecfe516c51 gcc/testsuite/gcc.dg/vect/complex/vect-complex-add-pattern-unsigned-long.c ! 34bd5f5790ad8407d8cebce426efae4c gcc/testsuite/gcc.dg/vect/complex/vect-complex-add-pattern-unsigned-short.c 05fc220f1ddbdb4d47d859b5d07869e2 gcc/testsuite/gcc.dg/vect/costmodel/i386/costmodel-fast-math-vect-pr29925.c de7dd1e584604b7bdea2dc13b43ddc14 gcc/testsuite/gcc.dg/vect/costmodel/i386/costmodel-vect-31.c f460536507001609ab3aa91df1c958aa gcc/testsuite/gcc.dg/vect/costmodel/i386/costmodel-vect-33.c --- 45979,46047 ---- 6f206346ceb24c5ac1795b0003f74f55 gcc/testsuite/gcc.dg/vect/bb-slp-subgroups-2.c f511c5e3bf05877e92e7c9fb18acc107 gcc/testsuite/gcc.dg/vect/bb-slp-subgroups-3.c d89050f03b37a25cc5ba09396bd2e9b0 gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-byte.c ! 303f98baa99ca71b360bb5b490edf989 gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-int.c ! 4de1e012f6eb5ea19ca369f6fcf4e1c5 gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-long.c ! 211bc477e9c121e47269e80a88557f74 gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-short.c c4f08815e53af41573a08e3ab4cea90e gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-unsigned-byte.c ! 429950609915964e7a3cd614c65e710e gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-unsigned-int.c ! 335b50f9d0620fef3b559405e2765383 gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-unsigned-long.c ! 68b0f033eb8e82ab065c3397e55b80d8 gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-unsigned-short.c ! da01a04c92638828913a7e1b47407c8c gcc/testsuite/gcc.dg/vect/complex/complex-add-pattern-template.c ! b6ce92f01b0a8720a15a8af7995a1dde gcc/testsuite/gcc.dg/vect/complex/complex-add-template.c 53c115ab260300dfb7fb6a17a5b91fb9 gcc/testsuite/gcc.dg/vect/complex/complex-mla-template.c d296c18a5121519fc5fa6c393b6ca043 gcc/testsuite/gcc.dg/vect/complex/complex-mls-template.c 62214c964d5fe67dd941ceaf38c0af04 gcc/testsuite/gcc.dg/vect/complex/complex-mul-template.c ! 1b2da204849f9a4b044381276b99053b gcc/testsuite/gcc.dg/vect/complex/complex-operations-run.c b663bc81b4270defc2534ee4b697c313 gcc/testsuite/gcc.dg/vect/complex/complex-operations.c ! 76b26c82429e17d3ec4bfaf8e24f4530 gcc/testsuite/gcc.dg/vect/complex/complex.exp ! 6731d6a4275dee04a68d8a15040dbf9d gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-double.c ! e7e998e227aa0d1f54e5abb40415b355 gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-float.c ! 315119e00b97000fb6f371f5ae9b2515 gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-half-float.c ! 1348c7c393221492d645b88dd87e4c90 gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-double.c ! 37c05e5942cf108df1659e4ccfbe29c4 gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-float.c ! 511f2255c03b2993d7e76739c0890a7d gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-half-float.c ! 092651583077a4d3f14105ecd53b0042 gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-double.c ! 0532e123a1e9bee598bcc9fe42fb8b7f gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-float.c ! 071e3059211d80112c0ec46775e51fb0 gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-half-float.c ! 73c2928db61885a9710f725c7eca4cf3 gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-double.c ! b125fd3af935d5cc8ec4d8330aefa9d8 gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-float.c ! f625432e6319d231e8b25325f3b636c2 gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-half-float.c ! 04c2b7329d6c8e7bf861f74e0c5255b4 gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-double.c ! 5c35a2bc9c358285f18287843b89c582 gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-float.c ! c8c88ecb3145b5ae379a4eaf565e7867 gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-half-float.c ! efd6bea5941d7cfcb94db14adf7ae6bb gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-double.c ! 1e91a7d1fce917497566671d76c7cbe0 gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-float.c ! ddbb4ecae39d3ca6c8aac4a137b1703b gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-half-float.c ! 70ea9a5f6beb0a0593de856e5c5fca71 gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-pattern-double.c ! 2631aacfc2a544fb0b74a09a2593afd9 gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-pattern-float.c ! d8462c356de5e1452d1517be6b6f7f4e gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-pattern-half-float.c ! 7c5f3f1180d421a5ac299c84526ea6d2 gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mla-double.c ! 323cabdbf2c12f8d5d69a4250f10d17e gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mla-float.c ! 083b6f004442a2284ec75fb6f17ebda3 gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mla-half-float.c ! 9c918cf0b4d739de71c8dea14ea0025c gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mls-double.c ! 0c910864a9648681bf5c27a5a5043d0f gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mls-float.c ! 8e9cc748b0590d6e56b7dc7fd05aa8d5 gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mls-half-float.c ! 7c668ea9d5a3187193b0519e54ae32e9 gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mul-double.c ! ae013061562cfc8fe6a899a1496e7a72 gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mul-float.c ! e004eb218c0be56a2e2702d215c4211f gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mul-half-float.c ! 4e1876202a0dc92b35499bdd138583d4 gcc/testsuite/gcc.dg/vect/complex/pr102819-1.c ! ccf39ed31245c0fb65f9c01c6e5d3b84 gcc/testsuite/gcc.dg/vect/complex/pr102819-2.c ! 225c29797a1db0d4d58b8bd12cfee997 gcc/testsuite/gcc.dg/vect/complex/pr102819-3.c ! 224f826ef726257a899126f930a05c11 gcc/testsuite/gcc.dg/vect/complex/pr102819-4.c ! 868c072c31aee3bf9d5084f6a748d0b7 gcc/testsuite/gcc.dg/vect/complex/pr102819-5.c ! 16c545e28906ca89a6a9bbf97067ad8f gcc/testsuite/gcc.dg/vect/complex/pr102819-6.c ! c2d3c1958834ef5542166c46b1c7339b gcc/testsuite/gcc.dg/vect/complex/pr102819-7.c ! ea6917669593abb97e9cf1eeba2057fa gcc/testsuite/gcc.dg/vect/complex/pr102819-8.c ! 15cf5145d6285f1d05a5616d443c75b4 gcc/testsuite/gcc.dg/vect/complex/pr102819-9.c ! c4d0e466bb43191fd4268600967b5fdc gcc/testsuite/gcc.dg/vect/complex/pr103169.c ! 570ca4e6366a30d735a804fb6c316edc gcc/testsuite/gcc.dg/vect/complex/vect-complex-add-pattern-byte.c ! a567071450c728dd8b5541e58b73bc27 gcc/testsuite/gcc.dg/vect/complex/vect-complex-add-pattern-int.c ! ef1e47c49bc248403363127fd2733ae0 gcc/testsuite/gcc.dg/vect/complex/vect-complex-add-pattern-long.c ! 39803097953fcecb8bdaad4ea2f6de20 gcc/testsuite/gcc.dg/vect/complex/vect-complex-add-pattern-short.c ! 7ad4c85c9fefa6711da9c3e6184c822c gcc/testsuite/gcc.dg/vect/complex/vect-complex-add-pattern-unsigned-byte.c ! bcb67819eb28363a86adad46990edf31 gcc/testsuite/gcc.dg/vect/complex/vect-complex-add-pattern-unsigned-int.c ! eb33c9aba50486ac13a7328fde376230 gcc/testsuite/gcc.dg/vect/complex/vect-complex-add-pattern-unsigned-long.c ! dc4950313316b732f84a3dbc6a45f70d gcc/testsuite/gcc.dg/vect/complex/vect-complex-add-pattern-unsigned-short.c 05fc220f1ddbdb4d47d859b5d07869e2 gcc/testsuite/gcc.dg/vect/costmodel/i386/costmodel-fast-math-vect-pr29925.c de7dd1e584604b7bdea2dc13b43ddc14 gcc/testsuite/gcc.dg/vect/costmodel/i386/costmodel-vect-31.c f460536507001609ab3aa91df1c958aa gcc/testsuite/gcc.dg/vect/costmodel/i386/costmodel-vect-33.c *************** ac90ad8f4383592387ff86cb8dbd78ce gcc/te *** 45921,45926 **** --- 46202,46212 ---- 8bb8b8c5a5dd310d79c2ef7142ad2432 gcc/testsuite/gcc.dg/vect/nodump-vect-opt-info-1.c 4576ca6b9e8f8de6acab6df0d8dc72ea gcc/testsuite/gcc.dg/vect/nodump-vect-opt-info-2.c bd6686ddac4dec394f0f0af136fe8012 gcc/testsuite/gcc.dg/vect/pr101445.c + ae8b9fa809bc0868516d373dbc070b85 gcc/testsuite/gcc.dg/vect/pr101505.c + 6893aed7299a121a69eb5b9deac04ae4 gcc/testsuite/gcc.dg/vect/pr102046.c + b02b62e31de9fe3f178db0e94281db9e gcc/testsuite/gcc.dg/vect/pr103544.c + 5b80820316db69308b9fa48a7a5d642b gcc/testsuite/gcc.dg/vect/pr103864.c + 1e8e221275bfa8e8dc66a37d14f07f32 gcc/testsuite/gcc.dg/vect/pr104782.c 42d48d2ecd5682545b12ac42f879a831 gcc/testsuite/gcc.dg/vect/pr16105.c 231c99dba9475fe09525bbf6f4374124 gcc/testsuite/gcc.dg/vect/pr18308.c 3aed50f38aa86c4915d6e4b3cef91287 gcc/testsuite/gcc.dg/vect/pr18400.c *************** c803a6ba1c147c45b591a730527ab2b1 gcc/te *** 46716,46722 **** aa4e3565270dc91625de8fbda6bc864e gcc/testsuite/gcc.dg/vect/vect-multitypes-1.c f0b81a5ed7ca804a416117433fb97b42 gcc/testsuite/gcc.dg/vect/vect-multitypes-10.c 9b66722b681e4741477fb208a6fb4552 gcc/testsuite/gcc.dg/vect/vect-multitypes-11.c ! ef96765d2519e94b2dfcb63a9c1c8655 gcc/testsuite/gcc.dg/vect/vect-multitypes-12.c 37de9a2b19f10c09d87a7d4c615f0f86 gcc/testsuite/gcc.dg/vect/vect-multitypes-13.c 1d7324a988d61b4694209ca9937e079c gcc/testsuite/gcc.dg/vect/vect-multitypes-14.c c78e329614306ddfd2430617ba82c3e8 gcc/testsuite/gcc.dg/vect/vect-multitypes-15.c --- 47002,47008 ---- aa4e3565270dc91625de8fbda6bc864e gcc/testsuite/gcc.dg/vect/vect-multitypes-1.c f0b81a5ed7ca804a416117433fb97b42 gcc/testsuite/gcc.dg/vect/vect-multitypes-10.c 9b66722b681e4741477fb208a6fb4552 gcc/testsuite/gcc.dg/vect/vect-multitypes-11.c ! c211faa6630bfacdbf04eaec23ee6d9c gcc/testsuite/gcc.dg/vect/vect-multitypes-12.c 37de9a2b19f10c09d87a7d4c615f0f86 gcc/testsuite/gcc.dg/vect/vect-multitypes-13.c 1d7324a988d61b4694209ca9937e079c gcc/testsuite/gcc.dg/vect/vect-multitypes-14.c c78e329614306ddfd2430617ba82c3e8 gcc/testsuite/gcc.dg/vect/vect-multitypes-15.c *************** a5cfe0849b43ef498cda6a872be26cb6 gcc/te *** 48385,48390 **** --- 48671,48677 ---- 33eab0e3b5245e5b101b281c59cd1cae gcc/testsuite/gcc.target/aarch64/mem-shift-canonical.c 374405f39b31b6bc7351dbd0fd02dfdb gcc/testsuite/gcc.target/aarch64/memset-corner-cases.c 870a86498f49d152dd144acaf79cf544 gcc/testsuite/gcc.target/aarch64/memset-q-reg.c + f1b49fc757ca83eb4924c09365c6cf7f gcc/testsuite/gcc.target/aarch64/memset-strict-align-1.c 4eed4dd5aa94cdbafdb452fb4f2fa939 gcc/testsuite/gcc.target/aarch64/mgeneral-regs_1.c b89c285bf72a3b1d134d2ed30e7955a8 gcc/testsuite/gcc.target/aarch64/mgeneral-regs_2.c 1c6436442e97352feb4470e7662eb7ae gcc/testsuite/gcc.target/aarch64/mgeneral-regs_3.c *************** c634a3e3729a1cf014159113aaaa5923 gcc/te *** 48472,48477 **** --- 48759,48765 ---- 27e2c5c9a0bcdfebf2133e263738b146 gcc/testsuite/gcc.target/aarch64/pr100028.c 1c78040ee8384426d5334c9b28ab2f6e gcc/testsuite/gcc.target/aarch64/pr100056.c c3d44b74cbd361a863813180478ad6c8 gcc/testsuite/gcc.target/aarch64/pr100075.c + d476917b01e1a6ee9c389abac401fcf6 gcc/testsuite/gcc.target/aarch64/pr103523.c 9adb42733d9f5e2b1f2dbb364b62100d gcc/testsuite/gcc.target/aarch64/pr37780_1.c e668fb9e0d32efadd671247467dc90db gcc/testsuite/gcc.target/aarch64/pr58460.c 9023f817c07ddec673c5b546525fc184 gcc/testsuite/gcc.target/aarch64/pr60034.c *************** f247489d5a83c25a52bba3f69ccf6256 gcc/te *** 51667,51672 **** --- 51955,51963 ---- 43e7bc10a42a3debf5d1ccecc4464720 gcc/testsuite/gcc.target/aarch64/sve/popcount_1_run.c 12ecad870dc3cdd512c314f6e0ba3c08 gcc/testsuite/gcc.target/aarch64/sve/pr100048.c 63ee86524c009d4e719a2a4650fe413f gcc/testsuite/gcc.target/aarch64/sve/pr100302.c + ab7e96ffad0e120db206c2fe1d3866a9 gcc/testsuite/gcc.target/aarch64/sve/pr104474-1.c + 7730534c4e1ec8c38e74c96c2505af9f gcc/testsuite/gcc.target/aarch64/sve/pr104474-2.c + e30fd5dcda5a72ba3b2d66a5485b282a gcc/testsuite/gcc.target/aarch64/sve/pr104474-3.c 00b752a6e175de8b1a300df08f275461 gcc/testsuite/gcc.target/aarch64/sve/pr87563.c c56eeba71ad463673a1bdb30e7a94863 gcc/testsuite/gcc.target/aarch64/sve/pr87815.c f0e2b5504e3b6dcd97ff8a6d8549d00e gcc/testsuite/gcc.target/aarch64/sve/pr88834.c *************** cf7c684a14b2daa8b876c512e3599582 gcc/te *** 53520,53528 **** d5f4f823ea6fb9bc4c6e9ccba5acdb91 gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail.c c462d71e23fb07062a21f54c54d09271 gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail2.c 503e1413bdd5662d2c58a37bf84814b7 gcc/testsuite/gcc.target/arm/attr-neon-fp16.c ! e45d18a6bd453ee0583a14f1ec577ca6 gcc/testsuite/gcc.target/arm/attr-neon.c ! 0ffb1bd2df426c7f4e30d62c784338b3 gcc/testsuite/gcc.target/arm/attr-neon2.c ! d6e6da3a36344077e01b8966604337d8 gcc/testsuite/gcc.target/arm/attr-neon3.c 2fc3bc36f2a6337c4305bded55708046 gcc/testsuite/gcc.target/arm/attr-unaligned-load-ice.c ba6a1a17734115428b72a71a491695fb gcc/testsuite/gcc.target/arm/attr_arm-err.c 8ab2ce7d24547f03640f6087eb2b9be4 gcc/testsuite/gcc.target/arm/attr_arm.c --- 53811,53819 ---- d5f4f823ea6fb9bc4c6e9ccba5acdb91 gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail.c c462d71e23fb07062a21f54c54d09271 gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail2.c 503e1413bdd5662d2c58a37bf84814b7 gcc/testsuite/gcc.target/arm/attr-neon-fp16.c ! 4a4bc58114ce671d72a5c4665876477b gcc/testsuite/gcc.target/arm/attr-neon.c ! f23d0119800a017079c65170401ab2c1 gcc/testsuite/gcc.target/arm/attr-neon2.c ! 4bbb4aad24c231d5708eee737823fd9b gcc/testsuite/gcc.target/arm/attr-neon3.c 2fc3bc36f2a6337c4305bded55708046 gcc/testsuite/gcc.target/arm/attr-unaligned-load-ice.c ba6a1a17734115428b72a71a491695fb gcc/testsuite/gcc.target/arm/attr_arm-err.c 8ab2ce7d24547f03640f6087eb2b9be4 gcc/testsuite/gcc.target/arm/attr_arm.c *************** cc493670dd81332714420ec2e51f11f1 gcc/te *** 53630,53645 **** --- 53921,53944 ---- e9afe97825e8d8a0ad0f1d1ee3eba768 gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/hard/cmse-7.c ff736441775234283ea7c6b9f1742b98 gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/hard/cmse-8.c 6815b34847bb8c1d4aaf45cc5344b7b6 gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/soft/cmse-13.c + db19589d0c4e84247117453be17a73ce gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/soft/cmse-13a.c b1a9cf3bbbd541dee53394308dbecae2 gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/soft/cmse-5.c 6265d3dbb6378f6c5f9f2c8a431b93db gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/soft/cmse-7.c + f48c6bc5f8199665d88044989256a6da gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/soft/cmse-7a.c c42fcbcdb666110e68869e154ab77224 gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/soft/cmse-8.c + 3aab495c2f4a1431d76eac0d78dfa603 gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/soft/cmse-8a.c 103278679c354a109f1d358eddb30859 gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp-sp/cmse-5.c 162060f488114726d1b43a3eedb8496a gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp-sp/cmse-7.c + 5dc87c9817f7467ef3df83c11e8e53d0 gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp-sp/cmse-7a.c 09db0263f84eba86f3cc3bb4b054f575 gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp-sp/cmse-8.c + 02d3d6d6d2419da3eaddb692c3889bf1 gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp-sp/cmse-8a.c 866f1d66352909acbf56cea6bc9ad83c gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp/cmse-13.c + 6f2a81b28babe75e93ec80bef4a27d7f gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp/cmse-13a.c 128f22a56da604008370c39435f4c275 gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp/cmse-5.c b67dc35cb041e665b0436a8b3c1dbbf9 gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp/cmse-7.c + 627b693e4e8a053229d1b802e1cbed82 gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp/cmse-7a.c 3ecfaa9db2870273dd05cd02a2bd597b gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp/cmse-8.c + df829d6ec7fb9540fcbd66368f0fb17b gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp/cmse-8a.c 539f0378e45653ff2109841bd4bccc87 gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/union-1.c 895e0fb552647a0516559c1bf30963e5 gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/union-2.c ab4a6ad246ee43f02f3290436cb16703 gcc/testsuite/gcc.target/arm/cmse/mainline/8m/bitfield-4.c *************** d38897569ba0b5112694e6e1fe6662b5 gcc/te *** 53686,53694 **** c46d86d65d2d64a7a88fc4a4918fd806 gcc/testsuite/gcc.target/arm/cortex-m55-nodsp-flag-hard.c d68dd2fc1fc4947df53d60137d04cc39 gcc/testsuite/gcc.target/arm/cortex-m55-nodsp-flag-softfp.c b3f3ff81dd0095a51c242338491d533e gcc/testsuite/gcc.target/arm/cortex-m55-nodsp-nofp-flag-softfp.c ! 34f88119bcfb8ccfc660579d3195c87f gcc/testsuite/gcc.target/arm/cortex-m55-nofp-flag-hard.c ! 23a2ab86497e85a50c28e18961170088 gcc/testsuite/gcc.target/arm/cortex-m55-nofp-flag-softfp.c ! 4d25dcfec59c90cbd5fe6f86420e46b8 gcc/testsuite/gcc.target/arm/cortex-m55-nofp-nomve-flag-softfp.c 93d5324ed0381b5d6667926bc2969a6b gcc/testsuite/gcc.target/arm/cortex-m55-nomve-flag-hard.c 205627068c58abb8c13cdbfc0d7c9c01 gcc/testsuite/gcc.target/arm/cortex-m55-nomve-flag-softfp.c f6255ec99cf78afc00b3ce7f7e9a1c96 gcc/testsuite/gcc.target/arm/cortex-m55-nomve.fp-flag-hard.c --- 53985,53993 ---- c46d86d65d2d64a7a88fc4a4918fd806 gcc/testsuite/gcc.target/arm/cortex-m55-nodsp-flag-hard.c d68dd2fc1fc4947df53d60137d04cc39 gcc/testsuite/gcc.target/arm/cortex-m55-nodsp-flag-softfp.c b3f3ff81dd0095a51c242338491d533e gcc/testsuite/gcc.target/arm/cortex-m55-nodsp-nofp-flag-softfp.c ! 16bc1bcd5be07e9c50246af4c9c55723 gcc/testsuite/gcc.target/arm/cortex-m55-nofp-flag-hard.c ! 78816c4b8cd7d874f11fa54bf67c6390 gcc/testsuite/gcc.target/arm/cortex-m55-nofp-flag-softfp.c ! 3861c314865ebd17821082bfd56eb777 gcc/testsuite/gcc.target/arm/cortex-m55-nofp-nomve-flag-softfp.c 93d5324ed0381b5d6667926bc2969a6b gcc/testsuite/gcc.target/arm/cortex-m55-nomve-flag-hard.c 205627068c58abb8c13cdbfc0d7c9c01 gcc/testsuite/gcc.target/arm/cortex-m55-nomve-flag-softfp.c f6255ec99cf78afc00b3ce7f7e9a1c96 gcc/testsuite/gcc.target/arm/cortex-m55-nomve.fp-flag-hard.c *************** f6c2f6c35390e01c453145baae48aa6b gcc/te *** 53885,53892 **** f846a99fa37aa6932ef3fa1100fa2e84 gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_fp_fpu1.c a23662cdce162388aafacd6bd5ae8401 gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_fp_fpu2.c 4b3d64afb38db51bd5eac30322143dd4 gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_fp_vaddq_n.c ! 8e61c2102e6545692dba243a0a09a1f8 gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_fpu1.c ! caacbb41866e75cc6212745b2a92067c gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_fpu2.c 9b8afb9ef88ec69d20f93267dfc70f09 gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_fpu3.c 9e92f2f97d3d1ab5f56f69c957ed79d2 gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_immediates_1_n.c 5d5bd4c946d0704e8f9c836b2e2a0f59 gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_libcall1.c --- 54184,54191 ---- f846a99fa37aa6932ef3fa1100fa2e84 gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_fp_fpu1.c a23662cdce162388aafacd6bd5ae8401 gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_fp_fpu2.c 4b3d64afb38db51bd5eac30322143dd4 gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_fp_vaddq_n.c ! 132717e92c239271ccfc4f567a61fd56 gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_fpu1.c ! 7831959c4528e6a37429d37461c09bd6 gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_fpu2.c 9b8afb9ef88ec69d20f93267dfc70f09 gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_fpu3.c 9e92f2f97d3d1ab5f56f69c957ed79d2 gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_immediates_1_n.c 5d5bd4c946d0704e8f9c836b2e2a0f59 gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_libcall1.c *************** ce2ea998f70f030c1e5c5cf0f3536bd7 gcc/te *** 56543,56548 **** --- 56842,56848 ---- 852d7dad95a15e1bee77bdc0817b7192 gcc/testsuite/gcc.target/arm/peep-strd-1.c 7a1f853ca353ec3249c7750b5684b3e6 gcc/testsuite/gcc.target/arm/peep-strd-2.c ca03d4215dfd4e98fc1d17e6890fcc4a gcc/testsuite/gcc.target/arm/polytypes.c + 2f719adc3f3e3724629a17daf9bb2e71 gcc/testsuite/gcc.target/arm/pr100775.c 03b84ccc5b909e6ece59f619e9298211 gcc/testsuite/gcc.target/arm/pr19599.c 3425143e88f989a8f52f345e6237106a gcc/testsuite/gcc.target/arm/pr26702.c fc0dd660f56108005b4f0b142e94d10d gcc/testsuite/gcc.target/arm/pr37780_1.c *************** ef7228203e3de2362184e00a8c156132 gcc/te *** 56658,56664 **** 038b3bb27d1430e5bcaacffe8348eb14 gcc/testsuite/gcc.target/arm/pr69180.c 51f46e9158ad549a6f9079f849c4c10d gcc/testsuite/gcc.target/arm/pr69187.c b1f1919dcfa1287f837de2b937769050 gcc/testsuite/gcc.target/arm/pr69194.c ! ea51ac3985ec65a675e98d7486d1c3fc gcc/testsuite/gcc.target/arm/pr69245.c ecd06975766e392b211a369c6a9a3273 gcc/testsuite/gcc.target/arm/pr69307.c e5aafcaef63ec87ca861c2c3df04f753 gcc/testsuite/gcc.target/arm/pr69614.c 32fee62df6d98765a5508d0d96c9eb65 gcc/testsuite/gcc.target/arm/pr69904.c --- 56958,56964 ---- 038b3bb27d1430e5bcaacffe8348eb14 gcc/testsuite/gcc.target/arm/pr69180.c 51f46e9158ad549a6f9079f849c4c10d gcc/testsuite/gcc.target/arm/pr69187.c b1f1919dcfa1287f837de2b937769050 gcc/testsuite/gcc.target/arm/pr69194.c ! 05e46560368a7df97a4f31249ffebcc7 gcc/testsuite/gcc.target/arm/pr69245.c ecd06975766e392b211a369c6a9a3273 gcc/testsuite/gcc.target/arm/pr69307.c e5aafcaef63ec87ca861c2c3df04f753 gcc/testsuite/gcc.target/arm/pr69614.c 32fee62df6d98765a5508d0d96c9eb65 gcc/testsuite/gcc.target/arm/pr69904.c *************** d82900f431e8901b0c85c6ec6602768b gcc/te *** 56715,56721 **** fe5e1dadd9ea1e8cccb81773046e8da9 gcc/testsuite/gcc.target/arm/pr97528.c 0acfbc30986a6ae2c5d696f4f52554ec gcc/testsuite/gcc.target/arm/pr97872.c 5a0206dfb3c3b92c728997ed8090982f gcc/testsuite/gcc.target/arm/pr97969.c ! b9fad821092cbb06ef1e52d199eee0ec gcc/testsuite/gcc.target/arm/pr98636.c 8e9eaa5b1ef39697d0a8c3be3ef47e30 gcc/testsuite/gcc.target/arm/pr98931.c dfc2cd714cdc3607e121f73074613d5d gcc/testsuite/gcc.target/arm/pr99592.c ea503c77c48a0e40d96c6afcc7523f85 gcc/testsuite/gcc.target/arm/pr99596.c --- 57015,57021 ---- fe5e1dadd9ea1e8cccb81773046e8da9 gcc/testsuite/gcc.target/arm/pr97528.c 0acfbc30986a6ae2c5d696f4f52554ec gcc/testsuite/gcc.target/arm/pr97872.c 5a0206dfb3c3b92c728997ed8090982f gcc/testsuite/gcc.target/arm/pr97969.c ! d1cd03d23aee2b254c487e2374882458 gcc/testsuite/gcc.target/arm/pr98636.c 8e9eaa5b1ef39697d0a8c3be3ef47e30 gcc/testsuite/gcc.target/arm/pr98931.c dfc2cd714cdc3607e121f73074613d5d gcc/testsuite/gcc.target/arm/pr99592.c ea503c77c48a0e40d96c6afcc7523f85 gcc/testsuite/gcc.target/arm/pr99596.c *************** d1fa915a7ba92f09b7cb8676f62a0974 gcc/te *** 56730,56737 **** 69a76bf30e898a884452a47f57250f63 gcc/testsuite/gcc.target/arm/pragma_attribute.c 71ad4b41bc5bd0250d3207f161968628 gcc/testsuite/gcc.target/arm/pragma_cde.c 9116a1dcd409b76a55fc08b4255c9d50 gcc/testsuite/gcc.target/arm/pragma_cpp_fma.c ! c9e6771b67edbcdcd59fc69d96f76bd0 gcc/testsuite/gcc.target/arm/pragma_fpu_attribute.c ! 3a06abeb34fdbba108fe536aeccde735 gcc/testsuite/gcc.target/arm/pragma_fpu_attribute_2.c 5b1a9414b404b74eb5cf36760730cf83 gcc/testsuite/gcc.target/arm/pure-code/ffunction-sections.c 77b405f3713bb420ee5af292f1a977dc gcc/testsuite/gcc.target/arm/pure-code/no-casesi.c 9d45085f81b933f75aff02b4b174d596 gcc/testsuite/gcc.target/arm/pure-code/no-literal-pool-m0.c --- 57030,57037 ---- 69a76bf30e898a884452a47f57250f63 gcc/testsuite/gcc.target/arm/pragma_attribute.c 71ad4b41bc5bd0250d3207f161968628 gcc/testsuite/gcc.target/arm/pragma_cde.c 9116a1dcd409b76a55fc08b4255c9d50 gcc/testsuite/gcc.target/arm/pragma_cpp_fma.c ! 90392e1b8e06b6f5c00c86ecf249fd69 gcc/testsuite/gcc.target/arm/pragma_fpu_attribute.c ! a13d496741ee33ca9436673eb16995cf gcc/testsuite/gcc.target/arm/pragma_fpu_attribute_2.c 5b1a9414b404b74eb5cf36760730cf83 gcc/testsuite/gcc.target/arm/pure-code/ffunction-sections.c 77b405f3713bb420ee5af292f1a977dc gcc/testsuite/gcc.target/arm/pure-code/no-casesi.c 9d45085f81b933f75aff02b4b174d596 gcc/testsuite/gcc.target/arm/pure-code/no-literal-pool-m0.c *************** c8deb0a803321b5792517c2ab68fbc77 gcc/te *** 56789,56800 **** 9af7a7284428e6c37ed2db924763a994 gcc/testsuite/gcc.target/arm/simd/simd.exp be37d1c2f068a408d0dcf51da9bb2153 gcc/testsuite/gcc.target/arm/simd/vceqz_p64.c bfc8c84b4d25f4a7889d9453580915a0 gcc/testsuite/gcc.target/arm/simd/vceqzq_p64.c ! 670854419dae14ffab50446f28146414 gcc/testsuite/gcc.target/arm/simd/vdot-2-1.c ! 89549f5bddb70d175e9fdfda0028b717 gcc/testsuite/gcc.target/arm/simd/vdot-2-2.c b853367ca5af1aa50b53590e84ac3b45 gcc/testsuite/gcc.target/arm/simd/vdot-2-3.c 9a83069569a4f275e9097239583718cb gcc/testsuite/gcc.target/arm/simd/vdot-2-4.c ! ab761a33d453fab454007482f8cfc2c1 gcc/testsuite/gcc.target/arm/simd/vdot-compile.c ! 668cb3b6343fad018fd17b620f0fe981 gcc/testsuite/gcc.target/arm/simd/vdot-exec.c 35c671e24b0abfb631caf25b1a2f1d2e gcc/testsuite/gcc.target/arm/simd/vect-dot-qi.h fda45d52e2070b6f03ce26c5f2f21d9d gcc/testsuite/gcc.target/arm/simd/vect-dot-s8.c 0319dc2665b102f172d97dc610d63799 gcc/testsuite/gcc.target/arm/simd/vect-dot-u8.c --- 57089,57100 ---- 9af7a7284428e6c37ed2db924763a994 gcc/testsuite/gcc.target/arm/simd/simd.exp be37d1c2f068a408d0dcf51da9bb2153 gcc/testsuite/gcc.target/arm/simd/vceqz_p64.c bfc8c84b4d25f4a7889d9453580915a0 gcc/testsuite/gcc.target/arm/simd/vceqzq_p64.c ! 32ad7b41034573f84cb8764de3e4cd94 gcc/testsuite/gcc.target/arm/simd/vdot-2-1.c ! 5e790401373334574ec7ed45138cee3b gcc/testsuite/gcc.target/arm/simd/vdot-2-2.c b853367ca5af1aa50b53590e84ac3b45 gcc/testsuite/gcc.target/arm/simd/vdot-2-3.c 9a83069569a4f275e9097239583718cb gcc/testsuite/gcc.target/arm/simd/vdot-2-4.c ! 39022712403965f25aefb1a4a27d29f7 gcc/testsuite/gcc.target/arm/simd/vdot-compile.c ! 15e3ba6a0775358041fec969902f4389 gcc/testsuite/gcc.target/arm/simd/vdot-exec.c 35c671e24b0abfb631caf25b1a2f1d2e gcc/testsuite/gcc.target/arm/simd/vect-dot-qi.h fda45d52e2070b6f03ce26c5f2f21d9d gcc/testsuite/gcc.target/arm/simd/vect-dot-s8.c 0319dc2665b102f172d97dc610d63799 gcc/testsuite/gcc.target/arm/simd/vect-dot-u8.c *************** d8fff2cc6bc3321095b7345915e98ec1 gcc/te *** 57706,57711 **** --- 58006,58019 ---- 1e3618428f44d2aab0bc8626f96aa2c5 gcc/testsuite/gcc.target/frv/frv.exp 7b7fc5fe9c67544f0b261293730d590b gcc/testsuite/gcc.target/gcn/fpdiv.c 593ff8b862d5f30b2d336faadef6af8b gcc/testsuite/gcc.target/gcn/gcn.exp + 0ea62a0ac401e376be4dd2643553b422 gcc/testsuite/gcc.target/gcn/sram-ecc-1.c + 294892f7304e51ed7447fc2643e45348 gcc/testsuite/gcc.target/gcn/sram-ecc-2.c + 3f10465d2867369105692e397e098a18 gcc/testsuite/gcc.target/gcn/sram-ecc-3.c + d60d982cb4210c180358f523b33a4a54 gcc/testsuite/gcc.target/gcn/sram-ecc-4.c + 7dfdb0fb2674bd25f2ae262e01097a60 gcc/testsuite/gcc.target/gcn/sram-ecc-5.c + b39be000dd7931ea7f636d96b9345501 gcc/testsuite/gcc.target/gcn/sram-ecc-6.c + d8a69d1e0f8e59ede6337a9f9af06146 gcc/testsuite/gcc.target/gcn/sram-ecc-7.c + 2c882a842b59dbf26f7c106877836e56 gcc/testsuite/gcc.target/gcn/sram-ecc-8.c 1e706003dee9df5d57006e904e26af25 gcc/testsuite/gcc.target/gcn/vcc-clobber.c 84f0af82a71d1e7354056e7e80e57cc6 gcc/testsuite/gcc.target/h8300/add-2.c 216037d0da5ff83a3c5aee08d451cc6a gcc/testsuite/gcc.target/h8300/add-3.c *************** d60dbd15c646ed84efd9129d21d39b6d gcc/te *** 57855,57860 **** --- 58163,58169 ---- 7afa2ba7a106ecf4dc01a7a82fee2f49 gcc/testsuite/gcc.target/i386/amxint8-dpbusd-2.c 3eebd7a67adf970dc6eea82ff3eda30d gcc/testsuite/gcc.target/i386/amxint8-dpbuud-2.c 4e7e8638f4652613beb251daa4730463 gcc/testsuite/gcc.target/i386/amxtile-2.c + a455baf8f9990eb7494164842dce7c91 gcc/testsuite/gcc.target/i386/amxtile-3.c 8e7fab1b3f5c89155f09aabb59da8382 gcc/testsuite/gcc.target/i386/amxtile-asmatt-1.c 2629a435840ab211444b4a2af4563d8d gcc/testsuite/gcc.target/i386/amxtile-asmintel-1.c c5cfc6b01e748536e4ac5d65b3528952 gcc/testsuite/gcc.target/i386/andor-1.c *************** f5710388bf6592fabf21f6aa05044790 gcc/te *** 57924,57929 **** --- 58233,58239 ---- 3391c9dd1dd0dbbac597a660fd5fb010 gcc/testsuite/gcc.target/i386/avx-lrintf-vec.c b4097136b326678c552cf24792f79fe8 gcc/testsuite/gcc.target/i386/avx-mul-1.c 46322bf9b32fe645dd973a6bc8e8b128 gcc/testsuite/gcc.target/i386/avx-os-support.h + 649073dcb552cc5ef8392806cbe23d1c gcc/testsuite/gcc.target/i386/avx-pr102224.c 62aa13560c827f799be1941a2e6da500 gcc/testsuite/gcc.target/i386/avx-pr51581-1.c c437ae63e2540199d8c765547fc407d6 gcc/testsuite/gcc.target/i386/avx-pr51581-2.c b6e744a5c521873cc8be2dbb5f25790d gcc/testsuite/gcc.target/i386/avx-pr57233.c *************** cd50d653b82c72218798d269f8b09ed6 gcc/te *** 59086,59098 **** 598c9df1695e77a9fb8307742402f261 gcc/testsuite/gcc.target/i386/avx512bw-vpbroadcastw-2.c 527c40dc3f481c4c82a6ce9865dfbee7 gcc/testsuite/gcc.target/i386/avx512bw-vpcmpb-1.c ff58674ac01e02619e7fbb42218197ed gcc/testsuite/gcc.target/i386/avx512bw-vpcmpb-2.c ! b9c954f1ba2f2366863f70a34835a5b4 gcc/testsuite/gcc.target/i386/avx512bw-vpcmpeqb-1.c e4564a6c91e83263596c29a118ae7926 gcc/testsuite/gcc.target/i386/avx512bw-vpcmpeqb-2.c fe04b841e165c497fa1add10e40d93fc gcc/testsuite/gcc.target/i386/avx512bw-vpcmpequb-1.c f853eacd6fe074b010b1801018250a8f gcc/testsuite/gcc.target/i386/avx512bw-vpcmpequb-2.c 09fd5c97209cceb05c17b2b183ef5a42 gcc/testsuite/gcc.target/i386/avx512bw-vpcmpequw-1.c 88dc1d6c8ed0352288da53e0827c70d6 gcc/testsuite/gcc.target/i386/avx512bw-vpcmpequw-2.c ! 6949c5b4921c7cb2acd5363434128a0d gcc/testsuite/gcc.target/i386/avx512bw-vpcmpeqw-1.c 7c737ac83456e4e67434edc27247375f gcc/testsuite/gcc.target/i386/avx512bw-vpcmpeqw-2.c 075e15443cad9f73d7450b8b6087eebc gcc/testsuite/gcc.target/i386/avx512bw-vpcmpgeb-1.c 98c2aeb3b5bede2e652be2c55a0e374a gcc/testsuite/gcc.target/i386/avx512bw-vpcmpgeb-2.c --- 59396,59408 ---- 598c9df1695e77a9fb8307742402f261 gcc/testsuite/gcc.target/i386/avx512bw-vpbroadcastw-2.c 527c40dc3f481c4c82a6ce9865dfbee7 gcc/testsuite/gcc.target/i386/avx512bw-vpcmpb-1.c ff58674ac01e02619e7fbb42218197ed gcc/testsuite/gcc.target/i386/avx512bw-vpcmpb-2.c ! 526de46f6f9d6a57e8e51767b22ca73e gcc/testsuite/gcc.target/i386/avx512bw-vpcmpeqb-1.c e4564a6c91e83263596c29a118ae7926 gcc/testsuite/gcc.target/i386/avx512bw-vpcmpeqb-2.c fe04b841e165c497fa1add10e40d93fc gcc/testsuite/gcc.target/i386/avx512bw-vpcmpequb-1.c f853eacd6fe074b010b1801018250a8f gcc/testsuite/gcc.target/i386/avx512bw-vpcmpequb-2.c 09fd5c97209cceb05c17b2b183ef5a42 gcc/testsuite/gcc.target/i386/avx512bw-vpcmpequw-1.c 88dc1d6c8ed0352288da53e0827c70d6 gcc/testsuite/gcc.target/i386/avx512bw-vpcmpequw-2.c ! c76a3a98049ddbad93f81bce1cc34eb5 gcc/testsuite/gcc.target/i386/avx512bw-vpcmpeqw-1.c 7c737ac83456e4e67434edc27247375f gcc/testsuite/gcc.target/i386/avx512bw-vpcmpeqw-2.c 075e15443cad9f73d7450b8b6087eebc gcc/testsuite/gcc.target/i386/avx512bw-vpcmpgeb-1.c 98c2aeb3b5bede2e652be2c55a0e374a gcc/testsuite/gcc.target/i386/avx512bw-vpcmpgeb-2.c *************** b82e4f0ef973fa110962a5092f7b94cc gcc/te *** 59102,59114 **** 45863bb8afeb6c443bc5200ad647e223 gcc/testsuite/gcc.target/i386/avx512bw-vpcmpgeuw-2.c 98cbe8934dd38c36a303168417add729 gcc/testsuite/gcc.target/i386/avx512bw-vpcmpgew-1.c a2eeb904b2f5d64f16ddf7ab11c490b9 gcc/testsuite/gcc.target/i386/avx512bw-vpcmpgew-2.c ! 88f2d8cb8a8e6138aebe5e80c4628c30 gcc/testsuite/gcc.target/i386/avx512bw-vpcmpgtb-1.c fc24c803b6b2113f48a3e23853c90a63 gcc/testsuite/gcc.target/i386/avx512bw-vpcmpgtb-2.c bd53aea371f1e7ab52df3c2fcc0dd559 gcc/testsuite/gcc.target/i386/avx512bw-vpcmpgtub-1.c 4ff9d7ebea3bcc81251d3f8a5bc1d15b gcc/testsuite/gcc.target/i386/avx512bw-vpcmpgtub-2.c 0b9e60c9425dcc9c90880c5ea8cf1683 gcc/testsuite/gcc.target/i386/avx512bw-vpcmpgtuw-1.c d881f36193dddb01c94237e077eba525 gcc/testsuite/gcc.target/i386/avx512bw-vpcmpgtuw-2.c ! d8633a6e597eead19b399146bc3e2b53 gcc/testsuite/gcc.target/i386/avx512bw-vpcmpgtw-1.c 5ee9524c0564c8aa1b342febb8c3d7a2 gcc/testsuite/gcc.target/i386/avx512bw-vpcmpgtw-2.c 873750dc4d1e46e46881c039533b257f gcc/testsuite/gcc.target/i386/avx512bw-vpcmpleb-1.c 83bc53da868bbb4cdb1026ea5014cc56 gcc/testsuite/gcc.target/i386/avx512bw-vpcmpleb-2.c --- 59412,59424 ---- 45863bb8afeb6c443bc5200ad647e223 gcc/testsuite/gcc.target/i386/avx512bw-vpcmpgeuw-2.c 98cbe8934dd38c36a303168417add729 gcc/testsuite/gcc.target/i386/avx512bw-vpcmpgew-1.c a2eeb904b2f5d64f16ddf7ab11c490b9 gcc/testsuite/gcc.target/i386/avx512bw-vpcmpgew-2.c ! 2f9c5da37cbc2cb9f527eee22e764c11 gcc/testsuite/gcc.target/i386/avx512bw-vpcmpgtb-1.c fc24c803b6b2113f48a3e23853c90a63 gcc/testsuite/gcc.target/i386/avx512bw-vpcmpgtb-2.c bd53aea371f1e7ab52df3c2fcc0dd559 gcc/testsuite/gcc.target/i386/avx512bw-vpcmpgtub-1.c 4ff9d7ebea3bcc81251d3f8a5bc1d15b gcc/testsuite/gcc.target/i386/avx512bw-vpcmpgtub-2.c 0b9e60c9425dcc9c90880c5ea8cf1683 gcc/testsuite/gcc.target/i386/avx512bw-vpcmpgtuw-1.c d881f36193dddb01c94237e077eba525 gcc/testsuite/gcc.target/i386/avx512bw-vpcmpgtuw-2.c ! af0002b47a232b50a2fd1a083820c4ec gcc/testsuite/gcc.target/i386/avx512bw-vpcmpgtw-1.c 5ee9524c0564c8aa1b342febb8c3d7a2 gcc/testsuite/gcc.target/i386/avx512bw-vpcmpgtw-2.c 873750dc4d1e46e46881c039533b257f gcc/testsuite/gcc.target/i386/avx512bw-vpcmpleb-1.c 83bc53da868bbb4cdb1026ea5014cc56 gcc/testsuite/gcc.target/i386/avx512bw-vpcmpleb-2.c *************** c0dd86eaa0095c2b38908928d5034cf3 gcc/te *** 59627,59632 **** --- 59937,59944 ---- d787a0a2840b56339d3621983623b18d gcc/testsuite/gcc.target/i386/avx512f-or-si-zmm-5.c d35963959d5b010c3b26b967f48d3608 gcc/testsuite/gcc.target/i386/avx512f-or-si-zmm-6.c 17acbefd47a510ed96d83a23e3e4b8c3 gcc/testsuite/gcc.target/i386/avx512f-os-support.h + 7371abf8df649ac78965cd397d5f5a42 gcc/testsuite/gcc.target/i386/avx512f-pr101471.c + 9bceffe4e050aeec5dfd5c8013709ffe gcc/testsuite/gcc.target/i386/avx512f-pr101472.c 88877c518076ecdec1dba128743ad627 gcc/testsuite/gcc.target/i386/avx512f-pr57233.c 0272e0fc54cb34ee03db4b0027dbec3d gcc/testsuite/gcc.target/i386/avx512f-pr63594-1.c 381f53de01f1e9893e6903d9fac40b87 gcc/testsuite/gcc.target/i386/avx512f-pr63594-2.c *************** aaac1408b5ce290b12e396f2a7423275 gcc/te *** 60072,60080 **** b35f385754d7adcf5a33661dff6d0ee5 gcc/testsuite/gcc.target/i386/avx512f-vpclmulqdq-2.c 54663b0d44a4c576ba5aaf106a9d9ea8 gcc/testsuite/gcc.target/i386/avx512f-vpcmpd-1.c ca3cbe4bf0bd33e5b9a8b91834012346 gcc/testsuite/gcc.target/i386/avx512f-vpcmpd-2.c ! d41dcc02a8c14c48150e9a28ccaa7bbb gcc/testsuite/gcc.target/i386/avx512f-vpcmpeqd-1.c d6853934ff8391c6aea8eb369fbb6d41 gcc/testsuite/gcc.target/i386/avx512f-vpcmpeqd-2.c ! f9acd7f13aca3852119753dd9695fa14 gcc/testsuite/gcc.target/i386/avx512f-vpcmpeqq-1.c ffb2026db54e7bf1c7db73db940cfe40 gcc/testsuite/gcc.target/i386/avx512f-vpcmpeqq-2.c cfad7eacf0edede4161756346343678f gcc/testsuite/gcc.target/i386/avx512f-vpcmpequd-1.c a7ed0687d14f918e7b2a28126dd1564e gcc/testsuite/gcc.target/i386/avx512f-vpcmpequd-2.c --- 60384,60392 ---- b35f385754d7adcf5a33661dff6d0ee5 gcc/testsuite/gcc.target/i386/avx512f-vpclmulqdq-2.c 54663b0d44a4c576ba5aaf106a9d9ea8 gcc/testsuite/gcc.target/i386/avx512f-vpcmpd-1.c ca3cbe4bf0bd33e5b9a8b91834012346 gcc/testsuite/gcc.target/i386/avx512f-vpcmpd-2.c ! 4a0b6a1b300ae1c484b8811362ed18f7 gcc/testsuite/gcc.target/i386/avx512f-vpcmpeqd-1.c d6853934ff8391c6aea8eb369fbb6d41 gcc/testsuite/gcc.target/i386/avx512f-vpcmpeqd-2.c ! 5004fd492cca60d7446526871b902c7b gcc/testsuite/gcc.target/i386/avx512f-vpcmpeqq-1.c ffb2026db54e7bf1c7db73db940cfe40 gcc/testsuite/gcc.target/i386/avx512f-vpcmpeqq-2.c cfad7eacf0edede4161756346343678f gcc/testsuite/gcc.target/i386/avx512f-vpcmpequd-1.c a7ed0687d14f918e7b2a28126dd1564e gcc/testsuite/gcc.target/i386/avx512f-vpcmpequd-2.c *************** ace615b2239ebda8b04d57fb3dd9c902 gcc/te *** 60088,60096 **** 9b67cfcd016b4f114c24fdd3ea5ac9b1 gcc/testsuite/gcc.target/i386/avx512f-vpcmpgeud-2.c 2e568f2f20af62ba1e756d62a8159a0a gcc/testsuite/gcc.target/i386/avx512f-vpcmpgeuq-1.c 677dafc30e2c32a2144b2139533f2db0 gcc/testsuite/gcc.target/i386/avx512f-vpcmpgeuq-2.c ! ddc440c0511a8967c3693b9a681ff87a gcc/testsuite/gcc.target/i386/avx512f-vpcmpgtd-1.c bd110a6af386a35002710b701fdf4a39 gcc/testsuite/gcc.target/i386/avx512f-vpcmpgtd-2.c ! bf1772f3a0cb4566857e360f5eb358cc gcc/testsuite/gcc.target/i386/avx512f-vpcmpgtq-1.c c65f3ed9955cb3c6d6630f04c06c055e gcc/testsuite/gcc.target/i386/avx512f-vpcmpgtq-2.c 7291ad1630408b42d0017a9e34002f46 gcc/testsuite/gcc.target/i386/avx512f-vpcmpgtud-1.c 8d9ff7f79681cc7cfe828a8184468d68 gcc/testsuite/gcc.target/i386/avx512f-vpcmpgtud-2.c --- 60400,60408 ---- 9b67cfcd016b4f114c24fdd3ea5ac9b1 gcc/testsuite/gcc.target/i386/avx512f-vpcmpgeud-2.c 2e568f2f20af62ba1e756d62a8159a0a gcc/testsuite/gcc.target/i386/avx512f-vpcmpgeuq-1.c 677dafc30e2c32a2144b2139533f2db0 gcc/testsuite/gcc.target/i386/avx512f-vpcmpgeuq-2.c ! 3a4d88496414b29a1468121ab9e60026 gcc/testsuite/gcc.target/i386/avx512f-vpcmpgtd-1.c bd110a6af386a35002710b701fdf4a39 gcc/testsuite/gcc.target/i386/avx512f-vpcmpgtd-2.c ! 173e1c3fca8e3d61057fcfcb6f25e00f gcc/testsuite/gcc.target/i386/avx512f-vpcmpgtq-1.c c65f3ed9955cb3c6d6630f04c06c055e gcc/testsuite/gcc.target/i386/avx512f-vpcmpgtq-2.c 7291ad1630408b42d0017a9e34002f46 gcc/testsuite/gcc.target/i386/avx512f-vpcmpgtud-1.c 8d9ff7f79681cc7cfe828a8184468d68 gcc/testsuite/gcc.target/i386/avx512f-vpcmpgtud-2.c *************** c0ef55ca688d812ce21255d44fb1a7d9 gcc/te *** 60540,60545 **** --- 60852,60858 ---- c1fc8c403bea321e9edbec8f46fe2fd8 gcc/testsuite/gcc.target/i386/avx512vl-or-si-ymm-1.c 5eaf41121795442d2f0736d687d1f1e5 gcc/testsuite/gcc.target/i386/avx512vl-pack-1.c 994c768ea6f011cb5852de30a104bd2e gcc/testsuite/gcc.target/i386/avx512vl-pack-2.c + 94073157c7c18d465b0898342cfaf127 gcc/testsuite/gcc.target/i386/avx512vl-pr101472.c 1ce70da2226efd6f3d5d92c101fb79d9 gcc/testsuite/gcc.target/i386/avx512vl-pr79299-1.c e3cc31b3308cdb56423451f2cd8c2a00 gcc/testsuite/gcc.target/i386/avx512vl-pr79299-2.c 7cff0350d919ed5edc42e841b11e38f2 gcc/testsuite/gcc.target/i386/avx512vl-pr82370.c *************** cd857c56f1a6f4a6714e145144145e41 gcc/te *** 60835,60843 **** 0330c591ce0afdf87a34311e1ba7be93 gcc/testsuite/gcc.target/i386/avx512vl-vpcmpd-1.c 0bc34b4a04332da118d323d0c85c1e02 gcc/testsuite/gcc.target/i386/avx512vl-vpcmpd-2.c 61e2f702b60e5952a8b040117acfa2dc gcc/testsuite/gcc.target/i386/avx512vl-vpcmpeqb-2.c ! f386ea8be92438c1387f913afbd1d329 gcc/testsuite/gcc.target/i386/avx512vl-vpcmpeqd-1.c 30282bfbce0d80a1c6236203901a82b0 gcc/testsuite/gcc.target/i386/avx512vl-vpcmpeqd-2.c ! edd43a0ac740cce27af9902a33fc45e8 gcc/testsuite/gcc.target/i386/avx512vl-vpcmpeqq-1.c 8e5dc0632852f73edd4b7c87c3ec1ffe gcc/testsuite/gcc.target/i386/avx512vl-vpcmpeqq-2.c 34b199460d019bcceb635c7293b2d409 gcc/testsuite/gcc.target/i386/avx512vl-vpcmpequb-2.c a7017e6a015a7a922088dbe07205b9df gcc/testsuite/gcc.target/i386/avx512vl-vpcmpequd-1.c --- 61148,61156 ---- 0330c591ce0afdf87a34311e1ba7be93 gcc/testsuite/gcc.target/i386/avx512vl-vpcmpd-1.c 0bc34b4a04332da118d323d0c85c1e02 gcc/testsuite/gcc.target/i386/avx512vl-vpcmpd-2.c 61e2f702b60e5952a8b040117acfa2dc gcc/testsuite/gcc.target/i386/avx512vl-vpcmpeqb-2.c ! ccb846b28442adff8cddf40e762fc170 gcc/testsuite/gcc.target/i386/avx512vl-vpcmpeqd-1.c 30282bfbce0d80a1c6236203901a82b0 gcc/testsuite/gcc.target/i386/avx512vl-vpcmpeqd-2.c ! 7336e9978d33721a01aa6636a28803be gcc/testsuite/gcc.target/i386/avx512vl-vpcmpeqq-1.c 8e5dc0632852f73edd4b7c87c3ec1ffe gcc/testsuite/gcc.target/i386/avx512vl-vpcmpeqq-2.c 34b199460d019bcceb635c7293b2d409 gcc/testsuite/gcc.target/i386/avx512vl-vpcmpequb-2.c a7017e6a015a7a922088dbe07205b9df gcc/testsuite/gcc.target/i386/avx512vl-vpcmpequd-1.c *************** a530d29994e1e42afeb1335af87cd6c7 gcc/te *** 60859,60867 **** b23fc9cfdc226b3b43b3e8733e86a1be gcc/testsuite/gcc.target/i386/avx512vl-vpcmpgeuw-2.c 753f655bba28c15253493e74a4cb6e8d gcc/testsuite/gcc.target/i386/avx512vl-vpcmpgew-2.c 05d8bed70b1a3a80022e1ab6e08a5def gcc/testsuite/gcc.target/i386/avx512vl-vpcmpgtb-2.c ! 6a316472f89be1c7f3dea2c028eba838 gcc/testsuite/gcc.target/i386/avx512vl-vpcmpgtd-1.c 15b541e379c1f114378100100df0d4de gcc/testsuite/gcc.target/i386/avx512vl-vpcmpgtd-2.c ! 88fdc0b74843f8c566a9bbc6ca779e0f gcc/testsuite/gcc.target/i386/avx512vl-vpcmpgtq-1.c 5c2f6fdc945a8a334a4a3f8ae287ee35 gcc/testsuite/gcc.target/i386/avx512vl-vpcmpgtq-2.c cf836c489d6d9804a96eec54b032c212 gcc/testsuite/gcc.target/i386/avx512vl-vpcmpgtub-2.c 52f89865915e64e3abae1181e4fafecb gcc/testsuite/gcc.target/i386/avx512vl-vpcmpgtud-1.c --- 61172,61180 ---- b23fc9cfdc226b3b43b3e8733e86a1be gcc/testsuite/gcc.target/i386/avx512vl-vpcmpgeuw-2.c 753f655bba28c15253493e74a4cb6e8d gcc/testsuite/gcc.target/i386/avx512vl-vpcmpgew-2.c 05d8bed70b1a3a80022e1ab6e08a5def gcc/testsuite/gcc.target/i386/avx512vl-vpcmpgtb-2.c ! 56f9e3faa84044a0f297709102c813fe gcc/testsuite/gcc.target/i386/avx512vl-vpcmpgtd-1.c 15b541e379c1f114378100100df0d4de gcc/testsuite/gcc.target/i386/avx512vl-vpcmpgtd-2.c ! c896d2a004826dfcac5d7c89dcfe7416 gcc/testsuite/gcc.target/i386/avx512vl-vpcmpgtq-1.c 5c2f6fdc945a8a334a4a3f8ae287ee35 gcc/testsuite/gcc.target/i386/avx512vl-vpcmpgtq-2.c cf836c489d6d9804a96eec54b032c212 gcc/testsuite/gcc.target/i386/avx512vl-vpcmpgtub-2.c 52f89865915e64e3abae1181e4fafecb gcc/testsuite/gcc.target/i386/avx512vl-vpcmpgtud-1.c *************** fa2414b7f0b02ba46bfc1187b11b0120 gcc/te *** 61294,61301 **** 674019fac54e0c27947386666000a1c8 gcc/testsuite/gcc.target/i386/bitfield2.c f453ea0129a9fcdd06a9ec24524c1cb9 gcc/testsuite/gcc.target/i386/bitfield3.c 9a4090444bb3ef253261728d33aa87e3 gcc/testsuite/gcc.target/i386/bittest.c ! 4f7d5fddd899019b4d0c71e34f5ca3bc gcc/testsuite/gcc.target/i386/bitwise_mask_op-1.c ! 58b78987a53662bcaab407aa0a7cf69a gcc/testsuite/gcc.target/i386/bitwise_mask_op-2.c e1228efcdb6bf353fa7c28bd12b9b98c gcc/testsuite/gcc.target/i386/bitwise_mask_op-3.c ea47ac6447cb9ac4b28b5aaad9274158 gcc/testsuite/gcc.target/i386/bmi-1.c 26c6bd935da0376256720f101f3a197c gcc/testsuite/gcc.target/i386/bmi-2.c --- 61607,61614 ---- 674019fac54e0c27947386666000a1c8 gcc/testsuite/gcc.target/i386/bitfield2.c f453ea0129a9fcdd06a9ec24524c1cb9 gcc/testsuite/gcc.target/i386/bitfield3.c 9a4090444bb3ef253261728d33aa87e3 gcc/testsuite/gcc.target/i386/bittest.c ! 1efa0c8157f05bec88ec14bf171c17de gcc/testsuite/gcc.target/i386/bitwise_mask_op-1.c ! 6f59afd7fbef39ba5e5377903ca13bdf gcc/testsuite/gcc.target/i386/bitwise_mask_op-2.c e1228efcdb6bf353fa7c28bd12b9b98c gcc/testsuite/gcc.target/i386/bitwise_mask_op-3.c ea47ac6447cb9ac4b28b5aaad9274158 gcc/testsuite/gcc.target/i386/bmi-1.c 26c6bd935da0376256720f101f3a197c gcc/testsuite/gcc.target/i386/bmi-2.c *************** d54f2d3757317775b86d2e38b987ecec gcc/te *** 61479,61484 **** --- 61792,61798 ---- de30da9f8215170a20bb4d88e630e8ff gcc/testsuite/gcc.target/i386/crc32-3.c ce70c4a119d14c06b2fe42a33e116033 gcc/testsuite/gcc.target/i386/crc32-4.c 1ec829505141734f1abf4d2eb0a16629 gcc/testsuite/gcc.target/i386/crc32-5.c + b5d1dd7060bf60ad394bcb85138c848c gcc/testsuite/gcc.target/i386/crc32-6.c c8a0091af04c84c4c994bf5df34e424b gcc/testsuite/gcc.target/i386/cvt-1.c 5db7d4cef9479b58ccb87b9116809892 gcc/testsuite/gcc.target/i386/cvt-2.c 9328f3eb46f550a80d11cc22163e9e4e gcc/testsuite/gcc.target/i386/cvt-3.c *************** a550f5d58c76f06756173ea568e8fb94 gcc/te *** 61646,61651 **** --- 61960,61971 ---- f0aea57bccd3254b56180992963b7853 gcc/testsuite/gcc.target/i386/gfni-3.c 96b35644483e6b2e113e5d5497d2f247 gcc/testsuite/gcc.target/i386/gfni-4.c 8e79204a73349dff77f13ec378c539d2 gcc/testsuite/gcc.target/i386/gfni-5.c + 716a7d554c4bcfa03d5ab7a3716133b3 gcc/testsuite/gcc.target/i386/harden-sls-1.c + 2174fb9d7e67ba522adfcb41c02f1438 gcc/testsuite/gcc.target/i386/harden-sls-2.c + 1f9937c491145b854eb2f33cb4416a73 gcc/testsuite/gcc.target/i386/harden-sls-3.c + 667e4b0b2b9d59e5ff6a33a8402c35c2 gcc/testsuite/gcc.target/i386/harden-sls-4.c + 9635894cad10ee51f232944f316ec859 gcc/testsuite/gcc.target/i386/harden-sls-5.c + dba3741d16b2beb35426c7f90dcbfc89 gcc/testsuite/gcc.target/i386/harden-sls-6.c ccf25da2b2cf1ab0770df6b2f00df250 gcc/testsuite/gcc.target/i386/headmerge-1.c 8ea580a2c1ae6cd77d71593ecfc28b76 gcc/testsuite/gcc.target/i386/headmerge-2.c b7f9898daa61fc87f05fbe6171392dce gcc/testsuite/gcc.target/i386/hle-add-acq-1.c *************** b8e6dbfade2983acd605ae96c2eb8486 gcc/te *** 61732,61737 **** --- 62052,62059 ---- 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 + fba98c3a34304e72ade121f7d34b908a gcc/testsuite/gcc.target/i386/indirect-thunk-cs-prefix-1.c + b5c55c2b2dcc4dc18bdc6f9480aa3f1e gcc/testsuite/gcc.target/i386/indirect-thunk-cs-prefix-2.c b3d44119e703e3cb0c21d04318b1b931 gcc/testsuite/gcc.target/i386/indirect-thunk-extern-1.c 3fdd7062ad5b6b04af4107a6cfbce2e2 gcc/testsuite/gcc.target/i386/indirect-thunk-extern-10.c 673c8eac98371e92b7a913b2206da532 gcc/testsuite/gcc.target/i386/indirect-thunk-extern-2.c *************** de3950b0d3ffe8898e7b6973a7658470 gcc/te *** 61987,61992 **** --- 62309,62315 ---- acfecf30891fca26ef446ceccb8bdac6 gcc/testsuite/gcc.target/i386/mmx-check.h 0a65792c72af263292faea7e50a21898 gcc/testsuite/gcc.target/i386/mmx-vals.h 3469a132e934293324b61b6f23458c92 gcc/testsuite/gcc.target/i386/mod-1.c + d62bb9cf4ad6df8368739ed5447f4acb gcc/testsuite/gcc.target/i386/monitor-2.c 0df5ef30c53dec7183c7eb19bdaa491b gcc/testsuite/gcc.target/i386/monitor.c bceaa637e42b8eb896354cce94fad473 gcc/testsuite/gcc.target/i386/monitorx.c 0da0edded160ecacdaaf3c0403ab6a77 gcc/testsuite/gcc.target/i386/movabs-1.c *************** f6d11dafd312969f2c744769fa5060e7 gcc/te *** 62092,62100 **** --- 62415,62453 ---- 551896bd44fd8f6d014f841aef67c558 gcc/testsuite/gcc.target/i386/pr100310.c 3c07d29535c0112e7c384c8908011917 gcc/testsuite/gcc.target/i386/pr100342.c f8c6587e64861b8f769159de826acd76 gcc/testsuite/gcc.target/i386/pr101175.c + 02f2ef63ed2a0eb2d5d9b96519faa0d1 gcc/testsuite/gcc.target/i386/pr101261.c 288aa84588c0af5a00643021d4506391 gcc/testsuite/gcc.target/i386/pr101395-1.c e464a56984a9759820818b1e51f316d7 gcc/testsuite/gcc.target/i386/pr101395-2.c e0bc688540cd8ed83ce6df81886303a5 gcc/testsuite/gcc.target/i386/pr101395-3.c + 4fde066e03dfe2d7fb8ae82e5a8f6f43 gcc/testsuite/gcc.target/i386/pr101492-1.c + 3e32ab2ceda5c1f6364c7e258951092c gcc/testsuite/gcc.target/i386/pr101492-2.c + 6a033f94694c14382da16121484a5059 gcc/testsuite/gcc.target/i386/pr101492-3.c + 2a7216d43f3ffddb5fc3d62af8e5a895 gcc/testsuite/gcc.target/i386/pr101492-4.c + 4f610ba3f94dc4f52aa642107694f970 gcc/testsuite/gcc.target/i386/pr102498.c + 53e87cba1a4282f640d05ef1fee359c4 gcc/testsuite/gcc.target/i386/pr102627.c + 34eb3ca8ee784a5cb3c2145b1609e105 gcc/testsuite/gcc.target/i386/pr102761.c + bcf207e15c0d5b9e3168e3c570bc4999 gcc/testsuite/gcc.target/i386/pr103205.c + 68f90c5e301011c092f2f9057e8416f1 gcc/testsuite/gcc.target/i386/pr103275.c + 5fbee8826b1f4da8d9dd6a2f09f18e0e gcc/testsuite/gcc.target/i386/pr103908.c + 53c36359ec9f2e689c1bd9882aaa6e38 gcc/testsuite/gcc.target/i386/pr104188.c + a4a622986785e6f70969c2a502ed82b5 gcc/testsuite/gcc.target/i386/pr104307.c + 63ce798253abf6c855847d44c00a0999 gcc/testsuite/gcc.target/i386/pr104362.c + 9db2b13a34fc86475d27728a925461c5 gcc/testsuite/gcc.target/i386/pr104446.c + 02696130cc1ac504d964566b605a5294 gcc/testsuite/gcc.target/i386/pr104448.c + 9afbd8cbff177a7e555fe32de7558c2e gcc/testsuite/gcc.target/i386/pr104451.c + f34a56063b53daa2722dd66e280f5aab gcc/testsuite/gcc.target/i386/pr104453.c + 30d7b1638a5f604ac4353737e0db1816 gcc/testsuite/gcc.target/i386/pr104458.c + a92681d4c2c5095462e23684946fe9fd gcc/testsuite/gcc.target/i386/pr104469.c + 6f32caf69432ac867dd42051bcfa22a8 gcc/testsuite/gcc.target/i386/pr104502.c + c0361c1e4d91a839c96bfc8c71f15139 gcc/testsuite/gcc.target/i386/pr104674.c + 69c507a5894d6d6b62f48b087adf9652 gcc/testsuite/gcc.target/i386/pr104890.c + 8aea430f8fa49eb985ac268facb6294c gcc/testsuite/gcc.target/i386/pr104963.c + a64b8516e04de39ddebcd66dc046d450 gcc/testsuite/gcc.target/i386/pr104971.c + 8f5761aaf460d5a45e0118668b9ab299 gcc/testsuite/gcc.target/i386/pr105000-1.c + a892cf5449c572594d9ac500ec2178bc gcc/testsuite/gcc.target/i386/pr105000-2.c + 6c6335b2ca1f773cd45cd27ad0d7a133 gcc/testsuite/gcc.target/i386/pr105000-3.c + 6835f42a37c0159616cc082bd3c33721 gcc/testsuite/gcc.target/i386/pr105032.c + 3de9ba59994fd09bad053a28eecbc68d gcc/testsuite/gcc.target/i386/pr105123.c 304b7d185da41754f69656f5bfa7d508 gcc/testsuite/gcc.target/i386/pr11001-memcpy-1.c 7dbe55f1460795545dd744807466a430 gcc/testsuite/gcc.target/i386/pr11001-memcpy-2.c cbe58ae1efc3b97c1019a430e1fedfcb gcc/testsuite/gcc.target/i386/pr11001-memcpy-3.c *************** dab9304dfe29b159ebf7edf9bda9b645 gcc/te *** 63080,63085 **** --- 63433,63439 ---- c4cb305cf2f30dad2b94791d7bb26ef4 gcc/testsuite/gcc.target/i386/pr79723.c 775e7fe3e5625b784949e1922efab9ea gcc/testsuite/gcc.target/i386/pr79729.c b3b6f5c8ba17ba3296bdffadca2efac2 gcc/testsuite/gcc.target/i386/pr79733.c + 18645b863b875fac9109935b3bca4836 gcc/testsuite/gcc.target/i386/pr79754.c 8c0bf4e4cdbbf182daf5193ce4e2e52f gcc/testsuite/gcc.target/i386/pr79793-1.c 1b3ba63668a454c57cb9841c509f0b88 gcc/testsuite/gcc.target/i386/pr79793-2.c 49dfbd2a1cbed764e73c7612cb73e841 gcc/testsuite/gcc.target/i386/pr79804.c *************** d9aae8289f586cb0642d8c4a75e854bb gcc/te *** 63635,63641 **** a0a717bd3162b524beb938288c0edac9 gcc/testsuite/gcc.target/i386/pr95458-1.c feab5f45e1e18afc892095125a4b26a2 gcc/testsuite/gcc.target/i386/pr95458-2.c 0748a249e20b96f9e7a21d325a0a8a7d gcc/testsuite/gcc.target/i386/pr95464.c ! a6e1252ba4cc495075736af5f2eefc5f gcc/testsuite/gcc.target/i386/pr95483-1.c 0f2eaf1c814cc6f796229e239db8cf94 gcc/testsuite/gcc.target/i386/pr95483-2.c 732ce5897b50a7bdc89573fcd64bfaf7 gcc/testsuite/gcc.target/i386/pr95483-3.c 2ae2f5ad6b7aab32a5b5c61ea3ba9083 gcc/testsuite/gcc.target/i386/pr95483-4.c --- 63989,63995 ---- a0a717bd3162b524beb938288c0edac9 gcc/testsuite/gcc.target/i386/pr95458-1.c feab5f45e1e18afc892095125a4b26a2 gcc/testsuite/gcc.target/i386/pr95458-2.c 0748a249e20b96f9e7a21d325a0a8a7d gcc/testsuite/gcc.target/i386/pr95464.c ! 1c71be2def175c399af970b5a44f2ffd gcc/testsuite/gcc.target/i386/pr95483-1.c 0f2eaf1c814cc6f796229e239db8cf94 gcc/testsuite/gcc.target/i386/pr95483-2.c 732ce5897b50a7bdc89573fcd64bfaf7 gcc/testsuite/gcc.target/i386/pr95483-3.c 2ae2f5ad6b7aab32a5b5c61ea3ba9083 gcc/testsuite/gcc.target/i386/pr95483-4.c *************** ac8b252af4fba05cccbbb422257f61d5 gcc/te *** 63771,63777 **** --- 64125,64139 ---- 5c90090d1d1e1b7415543965fbde2289 gcc/testsuite/gcc.target/i386/pr99726.c 5e4366668d71168c760c357dda3525bb gcc/testsuite/gcc.target/i386/pr99744-1.c f08d11401823ad2121b53968898078a8 gcc/testsuite/gcc.target/i386/pr99744-2.c + 123e6ba4d0c4e6d61ded4cbe6577bb9a gcc/testsuite/gcc.target/i386/pr99744-3.c + 7565aa68bd0bf801b260b06dedd84329 gcc/testsuite/gcc.target/i386/pr99744-4.c + c39efc4096726785a0d8fb50d2037679 gcc/testsuite/gcc.target/i386/pr99744-5.c + 2b686392753086234e196d009c01de7b gcc/testsuite/gcc.target/i386/pr99744-6.c + 1184f2fb7f7bb564229b203997b52859 gcc/testsuite/gcc.target/i386/pr99744-7.c + 4d9c7be1b278961172c90ef75258d56c gcc/testsuite/gcc.target/i386/pr99744-8.c 006bf45011c8adaaea151e1e9bd71662 gcc/testsuite/gcc.target/i386/pr99753.c + a3e5a8589b650ac289a1ebcf789619f6 gcc/testsuite/gcc.target/i386/pr99754-1.c + 4b02ca6501588dc1490c310e786ee13e gcc/testsuite/gcc.target/i386/pr99754-2.c 5f031f82b484c0f439288d4926362365 gcc/testsuite/gcc.target/i386/pr99863.c 939447bef72a36fa24dc61bac7010b1b gcc/testsuite/gcc.target/i386/pr99905.c bb74fe2f09b19928e6c4047fee136b0b gcc/testsuite/gcc.target/i386/prefer-vector-width-attr.c *************** c9e6833f088e4d429d2fa8c06898b07a gcc/te *** 65327,65332 **** --- 65689,65695 ---- f5336c49398aed485e255dcb989f928a gcc/testsuite/gcc.target/mips/oddspreg-5.c a5f1baacef31c6cc834cdb0292e3c22f gcc/testsuite/gcc.target/mips/oddspreg-6.c 47ff7729e9d1da80f59e7b9d122bfcb5 gcc/testsuite/gcc.target/mips/p5600-bonding.c + 1a8522667c45f8d602457c5370c63e00 gcc/testsuite/gcc.target/mips/pr101132.c def76d72ccc4011afcc36f6a1668e0a5 gcc/testsuite/gcc.target/mips/pr26765.c a353694197fdff37f4981c3e510c5565 gcc/testsuite/gcc.target/mips/pr33256.c 10ea730da40444dc72c89d6cde02220c gcc/testsuite/gcc.target/mips/pr33635-1.c *************** b681248afe4bdb1d889c6999e517fe7f gcc/te *** 66559,66566 **** 677059b338aae8245e5715c1bf783dd9 gcc/testsuite/gcc.target/powerpc/fp128_conversions.c 87367128477fa0028f5db348e8727505 gcc/testsuite/gcc.target/powerpc/fusion-p10-2logical.c 15196f9ab6aa2418751a7940e2c689cd gcc/testsuite/gcc.target/powerpc/fusion-p10-addadd.c ! c3554d9a9e0c70d153c3a40e2ac1af12 gcc/testsuite/gcc.target/powerpc/fusion-p10-ldcmpi.c dcbebe071d63c21a542a5715031d4d82 gcc/testsuite/gcc.target/powerpc/fusion-p10-logadd.c 8b2d1bd52f7c861f8d72b5a44d92ef4c gcc/testsuite/gcc.target/powerpc/fusion.c 36aa1f73a4f5f1d0803aa750e5b13826 gcc/testsuite/gcc.target/powerpc/fusion2.c d339d3fe4c50dd4c2727de10dcf3374e gcc/testsuite/gcc.target/powerpc/gcse-1.c --- 66922,66931 ---- 677059b338aae8245e5715c1bf783dd9 gcc/testsuite/gcc.target/powerpc/fp128_conversions.c 87367128477fa0028f5db348e8727505 gcc/testsuite/gcc.target/powerpc/fusion-p10-2logical.c 15196f9ab6aa2418751a7940e2c689cd gcc/testsuite/gcc.target/powerpc/fusion-p10-addadd.c ! f158c23481154ab06c25cbdd745dec8d gcc/testsuite/gcc.target/powerpc/fusion-p10-ldcmpi.c dcbebe071d63c21a542a5715031d4d82 gcc/testsuite/gcc.target/powerpc/fusion-p10-logadd.c + 4bdf54c34acc51427043fafe760993e1 gcc/testsuite/gcc.target/powerpc/fusion-p10-stst.c + 2016e7aba1138d1b75643f27f6d362c9 gcc/testsuite/gcc.target/powerpc/fusion-p10-stst2.c 8b2d1bd52f7c861f8d72b5a44d92ef4c gcc/testsuite/gcc.target/powerpc/fusion.c 36aa1f73a4f5f1d0803aa750e5b13826 gcc/testsuite/gcc.target/powerpc/fusion2.c d339d3fe4c50dd4c2727de10dcf3374e gcc/testsuite/gcc.target/powerpc/gcse-1.c *************** c54f25d14eb461caec02d191c2115a57 gcc/te *** 66599,66607 **** 9dd372b54a73f5146abf4b2c46c340e4 gcc/testsuite/gcc.target/powerpc/mma-builtin-3.c f4cbe6fbc7caba42b9286ef3ca8f8454 gcc/testsuite/gcc.target/powerpc/mma-builtin-4.c b94b02f54e2566541edbead974161cd8 gcc/testsuite/gcc.target/powerpc/mma-builtin-5.c ! ab2a7ea5ea50966110883706974152ea gcc/testsuite/gcc.target/powerpc/mma-builtin-6.c 2f3b0bbee570abb68e2bf91b3f4ef43d gcc/testsuite/gcc.target/powerpc/mma-builtin-7.c 7ff80abf6e1bf3a4c80a83f649959643 gcc/testsuite/gcc.target/powerpc/mma-builtin-8.c 88617795d710b40cc25cbabe90e45e4e gcc/testsuite/gcc.target/powerpc/mma-double-test.c 57fc310b69598562cbec3535f97fd354 gcc/testsuite/gcc.target/powerpc/mma-single-test.c a271f35c38761fdbb749bf1bec83cfe4 gcc/testsuite/gcc.target/powerpc/mma-supported.c --- 66964,66973 ---- 9dd372b54a73f5146abf4b2c46c340e4 gcc/testsuite/gcc.target/powerpc/mma-builtin-3.c f4cbe6fbc7caba42b9286ef3ca8f8454 gcc/testsuite/gcc.target/powerpc/mma-builtin-4.c b94b02f54e2566541edbead974161cd8 gcc/testsuite/gcc.target/powerpc/mma-builtin-5.c ! 3a2dd608a7572f3e1bda6e3d3a145109 gcc/testsuite/gcc.target/powerpc/mma-builtin-6.c 2f3b0bbee570abb68e2bf91b3f4ef43d gcc/testsuite/gcc.target/powerpc/mma-builtin-7.c 7ff80abf6e1bf3a4c80a83f649959643 gcc/testsuite/gcc.target/powerpc/mma-builtin-8.c + 8b6d1c7065bb09caeaafe44d4931e70d gcc/testsuite/gcc.target/powerpc/mma-builtin-9.c 88617795d710b40cc25cbabe90e45e4e gcc/testsuite/gcc.target/powerpc/mma-double-test.c 57fc310b69598562cbec3535f97fd354 gcc/testsuite/gcc.target/powerpc/mma-single-test.c a271f35c38761fdbb749bf1bec83cfe4 gcc/testsuite/gcc.target/powerpc/mma-supported.c *************** f86f87dd7c82f05785a8e530a4718235 gcc/te *** 66655,66660 **** --- 67021,67027 ---- 0831e4d64f9c944a22351c0a3a55d827 gcc/testsuite/gcc.target/powerpc/no-r11-2.c dd4f340682017146e72e169792e742bb gcc/testsuite/gcc.target/powerpc/no-r11-3.c a3a18f288ff9a907cedfa89231e2d3e8 gcc/testsuite/gcc.target/powerpc/non-lazy-ptr-test.c + 2c3641740a365fd1dbb9320c9049301e gcc/testsuite/gcc.target/powerpc/not-promote-mode.c f035830751745ff83c9c724164e9584f gcc/testsuite/gcc.target/powerpc/notoc-direct-1.c b6f46bd0cf50a9df15d1cf7768e8087f gcc/testsuite/gcc.target/powerpc/optimize-bswapdi-2.c b96c1a1a69bfb6f4e16a5153a31d50f7 gcc/testsuite/gcc.target/powerpc/optimize-bswapdi-3.c *************** e644ef57e549ba6b46da5cb2d302203f gcc/te *** 66867,66873 **** 322275a6e18c464401bb8e7d050b7539 gcc/testsuite/gcc.target/powerpc/ppc64-toc.c a64bd4e47397af3253bc9e8dc2c56780 gcc/testsuite/gcc.target/powerpc/ppu-intrinsics.c 5ccf50d6af741aec776b2d54411331d5 gcc/testsuite/gcc.target/powerpc/pr100777.c ! acb40c51256b597225f03b8cda25bc0a gcc/testsuite/gcc.target/powerpc/pr101129.c c2f6d6cf82ef4931619d09e10a0a72aa gcc/testsuite/gcc.target/powerpc/pr16155.c 396ae287e72ecdda51bb3157818030a9 gcc/testsuite/gcc.target/powerpc/pr16286.c 198d8a69d2887e8fadcb050d90e21aa6 gcc/testsuite/gcc.target/powerpc/pr16458-1.c --- 67234,67255 ---- 322275a6e18c464401bb8e7d050b7539 gcc/testsuite/gcc.target/powerpc/ppc64-toc.c a64bd4e47397af3253bc9e8dc2c56780 gcc/testsuite/gcc.target/powerpc/ppu-intrinsics.c 5ccf50d6af741aec776b2d54411331d5 gcc/testsuite/gcc.target/powerpc/pr100777.c ! 93530f0352e114499a2243d7a2a63830 gcc/testsuite/gcc.target/powerpc/pr101129.c ! 98ac1105d04b59ee48240bf0f7de65df gcc/testsuite/gcc.target/powerpc/pr101324.c ! c5b190f8976eee8b644b3fa33d5ebbb2 gcc/testsuite/gcc.target/powerpc/pr101849.c ! fef209ac364aa52b3c1bab51422d611c gcc/testsuite/gcc.target/powerpc/pr101985-1.c ! bbe41009113780dbcd6527cbec5f943c gcc/testsuite/gcc.target/powerpc/pr101985-2.c ! a192830e09e3a3d8478a89f2b2add0ff gcc/testsuite/gcc.target/powerpc/pr102347.c ! 0726fc47d5d46d095efa95b874637be7 gcc/testsuite/gcc.target/powerpc/pr102976.c ! 20a7942f4601125d17110951f0d9d799 gcc/testsuite/gcc.target/powerpc/pr103627-1.c ! 75bf709f259ebd7bb4ea3bb9e4c7a6e3 gcc/testsuite/gcc.target/powerpc/pr103627-2.c ! 173204ae2ee9c78ee24b407929800cd8 gcc/testsuite/gcc.target/powerpc/pr103627-3.c ! b7339ab4137e4c5175deca053bb790c8 gcc/testsuite/gcc.target/powerpc/pr104208-1.c ! 7dff0a95f65947b541c04da0c7b307a5 gcc/testsuite/gcc.target/powerpc/pr104208-2.c ! 76860a5a20e1c892c05c24cdc70fe3c2 gcc/testsuite/gcc.target/powerpc/pr104253.c ! db72de734e5e70d9f1ed20b5a54e7a2a gcc/testsuite/gcc.target/powerpc/pr104894-2.c ! bc8ea782345dbe874b74f42d43945922 gcc/testsuite/gcc.target/powerpc/pr104894.c ! 3c6d84405eb197341e1b506784b6c749 gcc/testsuite/gcc.target/powerpc/pr104923.c c2f6d6cf82ef4931619d09e10a0a72aa gcc/testsuite/gcc.target/powerpc/pr16155.c 396ae287e72ecdda51bb3157818030a9 gcc/testsuite/gcc.target/powerpc/pr16286.c 198d8a69d2887e8fadcb050d90e21aa6 gcc/testsuite/gcc.target/powerpc/pr16458-1.c *************** de09210d456b5ec489b5febb07484cd5 gcc/te *** 66925,66931 **** d40a51962a039d2508b9b3e8ce82ac22 gcc/testsuite/gcc.target/powerpc/pr54240.c 853064cbe6e6b358b4e72923e94ee354 gcc/testsuite/gcc.target/powerpc/pr55033.c e4531bd522b146b22bdbf991fc3d207e gcc/testsuite/gcc.target/powerpc/pr56256.c ! c01eb286efec7b9d3f001e94670ecfe8 gcc/testsuite/gcc.target/powerpc/pr56605.c be37d527321d015059e346e469f7e0e4 gcc/testsuite/gcc.target/powerpc/pr57150.c 7a49a99d1d678fcb8065029344b893d5 gcc/testsuite/gcc.target/powerpc/pr57363.c 84af6f269cb613d7abad750c2b136798 gcc/testsuite/gcc.target/powerpc/pr57744.c --- 67307,67313 ---- d40a51962a039d2508b9b3e8ce82ac22 gcc/testsuite/gcc.target/powerpc/pr54240.c 853064cbe6e6b358b4e72923e94ee354 gcc/testsuite/gcc.target/powerpc/pr55033.c e4531bd522b146b22bdbf991fc3d207e gcc/testsuite/gcc.target/powerpc/pr56256.c ! 06b97cdf9d860658e7a50666e9b1d545 gcc/testsuite/gcc.target/powerpc/pr56605.c be37d527321d015059e346e469f7e0e4 gcc/testsuite/gcc.target/powerpc/pr57150.c 7a49a99d1d678fcb8065029344b893d5 gcc/testsuite/gcc.target/powerpc/pr57363.c 84af6f269cb613d7abad750c2b136798 gcc/testsuite/gcc.target/powerpc/pr57744.c *************** c2bb4c50496aade60596e697b1d8782d gcc/te *** 66972,66978 **** 631aeb0c1c1d1285b25bfd1049b68926 gcc/testsuite/gcc.target/powerpc/pr70010-3.c f04c5add43326054cacbb6544404890d gcc/testsuite/gcc.target/powerpc/pr70010-4.c 1de006067bf04677e8e3043c80b99112 gcc/testsuite/gcc.target/powerpc/pr70010.c ! 7b679fd8b036308859824a29a78c13fd gcc/testsuite/gcc.target/powerpc/pr70117.c 9f0a82f7f84690a18cb82bed87617073 gcc/testsuite/gcc.target/powerpc/pr70640.c 9f7996dd7c38f201960362b08e509c7d gcc/testsuite/gcc.target/powerpc/pr70669.c bb6ec828efc211131c5a036203ac7c94 gcc/testsuite/gcc.target/powerpc/pr70866.c --- 67354,67360 ---- 631aeb0c1c1d1285b25bfd1049b68926 gcc/testsuite/gcc.target/powerpc/pr70010-3.c f04c5add43326054cacbb6544404890d gcc/testsuite/gcc.target/powerpc/pr70010-4.c 1de006067bf04677e8e3043c80b99112 gcc/testsuite/gcc.target/powerpc/pr70010.c ! 30bf5235bdce0bbd05169c7ec78fb273 gcc/testsuite/gcc.target/powerpc/pr70117.c 9f0a82f7f84690a18cb82bed87617073 gcc/testsuite/gcc.target/powerpc/pr70640.c 9f7996dd7c38f201960362b08e509c7d gcc/testsuite/gcc.target/powerpc/pr70669.c bb6ec828efc211131c5a036203ac7c94 gcc/testsuite/gcc.target/powerpc/pr70866.c *************** baa21bdea8db67ccd8932516a045495a gcc/te *** 67058,67064 **** 40f60f56a44835bd8e62164e2ee5bae4 gcc/testsuite/gcc.target/powerpc/pr80695-p8.c 94d63c15e6f0356b816561223154e670 gcc/testsuite/gcc.target/powerpc/pr80695-p9.c 108087220b9696e57538163c0611f2d8 gcc/testsuite/gcc.target/powerpc/pr80718.c ! faba9bfbd937fccfdbaa00ac994e8ca9 gcc/testsuite/gcc.target/powerpc/pr81348.c 4f35be6c6a527cf028ceb7ba54273110 gcc/testsuite/gcc.target/powerpc/pr81572.c e44c3a66383281e8a9de6b32aa8b5e0f gcc/testsuite/gcc.target/powerpc/pr81622.c 601307dac2aee8083d3f97edae2588d1 gcc/testsuite/gcc.target/powerpc/pr81833-1.c --- 67440,67446 ---- 40f60f56a44835bd8e62164e2ee5bae4 gcc/testsuite/gcc.target/powerpc/pr80695-p8.c 94d63c15e6f0356b816561223154e670 gcc/testsuite/gcc.target/powerpc/pr80695-p9.c 108087220b9696e57538163c0611f2d8 gcc/testsuite/gcc.target/powerpc/pr80718.c ! f0952455794485b73110cb5874bdf986 gcc/testsuite/gcc.target/powerpc/pr81348.c 4f35be6c6a527cf028ceb7ba54273110 gcc/testsuite/gcc.target/powerpc/pr81572.c e44c3a66383281e8a9de6b32aa8b5e0f gcc/testsuite/gcc.target/powerpc/pr81622.c 601307dac2aee8083d3f97edae2588d1 gcc/testsuite/gcc.target/powerpc/pr81833-1.c *************** b393d3f2f044e6fd8f631b7ab2551943 gcc/te *** 67108,67115 **** d86d5375cd27e7c265ce5093d761b62e gcc/testsuite/gcc.target/powerpc/pr87033.c 5979805bab3b13abc55882e86f2cf535 gcc/testsuite/gcc.target/powerpc/pr87466.c ac8ec30b46cfe96eba5cd34342878789 gcc/testsuite/gcc.target/powerpc/pr87496-1.c ! 0a96769b5e11c63c292685789497867e gcc/testsuite/gcc.target/powerpc/pr87496-2.c ! cf1e47fa56707db6216ed5de8f6df09f gcc/testsuite/gcc.target/powerpc/pr87496-3.c 85b904b99f65bd3883a1e1ea591387d3 gcc/testsuite/gcc.target/powerpc/pr87507.c a3fcebbcc49f4e8e80184966262e4f7c gcc/testsuite/gcc.target/powerpc/pr87532-mc.c 5fd4bcc0443a583aade647593b461bf0 gcc/testsuite/gcc.target/powerpc/pr87532.c --- 67490,67497 ---- d86d5375cd27e7c265ce5093d761b62e gcc/testsuite/gcc.target/powerpc/pr87033.c 5979805bab3b13abc55882e86f2cf535 gcc/testsuite/gcc.target/powerpc/pr87466.c ac8ec30b46cfe96eba5cd34342878789 gcc/testsuite/gcc.target/powerpc/pr87496-1.c ! 991fc66b041e0aa2c8b134376d9dacdf gcc/testsuite/gcc.target/powerpc/pr87496-2.c ! f18720cbdd0b8efcbfe7252a88d19901 gcc/testsuite/gcc.target/powerpc/pr87496-3.c 85b904b99f65bd3883a1e1ea591387d3 gcc/testsuite/gcc.target/powerpc/pr87507.c a3fcebbcc49f4e8e80184966262e4f7c gcc/testsuite/gcc.target/powerpc/pr87532-mc.c 5fd4bcc0443a583aade647593b461bf0 gcc/testsuite/gcc.target/powerpc/pr87532.c *************** a585de66ac1500bfd616065fa8b38782 gcc/te *** 67171,67176 **** --- 67553,67559 ---- a4b65c03b235e179c2c54ae705ca1314 gcc/testsuite/gcc.target/powerpc/pr96933-run.h 3e3d83500b4f3407ec706aed288837c0 gcc/testsuite/gcc.target/powerpc/pr96933.h c8159472599bdbc1920f30b21821761f gcc/testsuite/gcc.target/powerpc/pr97019.c + 167d500d972820e3c619cedabfbf86da gcc/testsuite/gcc.target/powerpc/pr97142.c 18aa6c13663fc57c77c9258b01d06c8b gcc/testsuite/gcc.target/powerpc/pr97267.c 213beaa984952c5e9c8741ff42bef29f gcc/testsuite/gcc.target/powerpc/pr97360.c be1d7456a640bf70727b92bfa00019b7 gcc/testsuite/gcc.target/powerpc/pr98092.c *************** f8cb0891b50b222ce78c7e8466568d64 gcc/te *** 67258,67268 **** bbfaa45598e85e85311c592cd3685c70 gcc/testsuite/gcc.target/powerpc/rlwinm-1.c 83056e2e295a7176894a802ffd2ecf3f gcc/testsuite/gcc.target/powerpc/rlwinm-2.c 459aed634f003f5fbe61d2f6d47cdd40 gcc/testsuite/gcc.target/powerpc/rlwinm.h ! 897693d3aed3623536aa7b65127f5549 gcc/testsuite/gcc.target/powerpc/rop-1.c ! 5089f59aade527fc8383da57bee8a2ea gcc/testsuite/gcc.target/powerpc/rop-2.c ! 0ca90392b4320661afb941a2217c3e54 gcc/testsuite/gcc.target/powerpc/rop-3.c ! 4fbfd75cc015a6517a6f04927793616d gcc/testsuite/gcc.target/powerpc/rop-4.c ! 07fbdc92f2433389e67acf9f499505ef gcc/testsuite/gcc.target/powerpc/rop-5.c 884e97f433f667176d11130d3b031c3c gcc/testsuite/gcc.target/powerpc/rotate.c c5641841c2cbc2fb677d020f2a6d5bc1 gcc/testsuite/gcc.target/powerpc/rotmask.c bf385d7310a8dab90ee44f86832aa03b gcc/testsuite/gcc.target/powerpc/rs6000-fpint-2.c --- 67641,67651 ---- bbfaa45598e85e85311c592cd3685c70 gcc/testsuite/gcc.target/powerpc/rlwinm-1.c 83056e2e295a7176894a802ffd2ecf3f gcc/testsuite/gcc.target/powerpc/rlwinm-2.c 459aed634f003f5fbe61d2f6d47cdd40 gcc/testsuite/gcc.target/powerpc/rlwinm.h ! 36aee9706f71c348db5a37b74adbaee4 gcc/testsuite/gcc.target/powerpc/rop-1.c ! dab8719ebff53e1817e27082b99698a5 gcc/testsuite/gcc.target/powerpc/rop-2.c ! 92a2a54882363c80faf8573e5f9a0e2b gcc/testsuite/gcc.target/powerpc/rop-3.c ! 481659558752886ae464b4248ef34021 gcc/testsuite/gcc.target/powerpc/rop-4.c ! 7bd7ad02d51988a421b8f495c65e9380 gcc/testsuite/gcc.target/powerpc/rop-5.c 884e97f433f667176d11130d3b031c3c gcc/testsuite/gcc.target/powerpc/rotate.c c5641841c2cbc2fb677d020f2a6d5bc1 gcc/testsuite/gcc.target/powerpc/rotmask.c bf385d7310a8dab90ee44f86832aa03b gcc/testsuite/gcc.target/powerpc/rs6000-fpint-2.c *************** f69ed9814aa0739480a17cf1070d4373 gcc/te *** 68161,68166 **** --- 68544,68550 ---- efcb2d5344bde460bcbee76b9e33c09d gcc/testsuite/gcc.target/riscv/mcpu-5.c f10dd9a709d22cee958fd785672d36fe gcc/testsuite/gcc.target/riscv/mcpu-6.c 5dd548bcc6e4a75ff60a9063af21468e gcc/testsuite/gcc.target/riscv/mcpu-7.c + bbc038d526e035bc943cafd8be527309 gcc/testsuite/gcc.target/riscv/pr102957.c 14c90f84d8058b60faff46b00c097a9c gcc/testsuite/gcc.target/riscv/pr84660.c 1a434ff3440a676fb4f4c586bf3152e5 gcc/testsuite/gcc.target/riscv/pr93202.c 6a4efdae4822baf9f3df7454d4e40a5b gcc/testsuite/gcc.target/riscv/pr93304.c *************** b496b43e01188107d0277ab22fe7faa6 gcc/te *** 68246,68251 **** --- 68630,68636 ---- f9efcac72c7632def29469b0cbef14cb gcc/testsuite/gcc.target/s390/20150826-1.c 4a96580e145f1c61cef78ba991ab4066 gcc/testsuite/gcc.target/s390/20181024-1.c f27f299747d9862a0ca9a3ab3770f1c4 gcc/testsuite/gcc.target/s390/20200617.c + 1dabce41016ae8d4d1de9989a3307a73 gcc/testsuite/gcc.target/s390/20211119.c 2a2e7cf581c0ea913bb0cd940e096c96 gcc/testsuite/gcc.target/s390/TI-constants-lra.c 79300a376a7a8fbc10ec913d6f99a928 gcc/testsuite/gcc.target/s390/TI-constants-nolra.c d69a98eeb9d370fcef146a6f7778c59d gcc/testsuite/gcc.target/s390/addr-constraints-1.c *************** bf08d8ae3952e5a9f6d75de6c60a3a5f gcc/te *** 68267,68272 **** --- 68652,68664 ---- 381808a4590567090c1e800f04ae55f5 gcc/testsuite/gcc.target/s390/bswap-1.c 2750052bc05f059828b76c05a2a7da2e gcc/testsuite/gcc.target/s390/bswaphi-1.c 6837d1a6d1d448c21031e10330351313 gcc/testsuite/gcc.target/s390/builtin-constant-p-threading.c + 64c5295b9ab74cc0c611f0465b9bc84c gcc/testsuite/gcc.target/s390/call-z10-pic-nodatarel.c + a8b67a46c250e6ed55b0d0c02d0bbfaa gcc/testsuite/gcc.target/s390/call-z10-pic.c + 991316de56c221c480b1a92372f87c4c gcc/testsuite/gcc.target/s390/call-z10.c + dadd4dee9243a95c083fd42cf4d1922a gcc/testsuite/gcc.target/s390/call-z9-pic-nodatarel.c + b72cf28ba3fa5c5fadef0677ef4b7079 gcc/testsuite/gcc.target/s390/call-z9-pic.c + 614a6da85058067be5ae701a10d177ae gcc/testsuite/gcc.target/s390/call-z9.c + 46b537032825fcf59c9ec689bc2e887b gcc/testsuite/gcc.target/s390/call.h 34714a3aeb17aaa92176e5d909a9927a gcc/testsuite/gcc.target/s390/combine-rotate-modulo.c bd36d7368fda184d34631ae156b531dc gcc/testsuite/gcc.target/s390/combine-shift-rotate-add-mod.c c5136e0bb58277988b6c8fb48db7921f gcc/testsuite/gcc.target/s390/dfp-1.c *************** adbd0d014149216279bbf1880740592a gcc/te *** 68375,68384 **** bb08fa1f6627522f43f5fe89dadd04a3 gcc/testsuite/gcc.target/s390/memcpy-2.c 94c8e6b5aae7ae391974bc5a7e1a6f4c gcc/testsuite/gcc.target/s390/memset-1.c a57f54483446dc5f464df08f79495bf7 gcc/testsuite/gcc.target/s390/memset-2.c c754a4515598fececb1e5306e99940eb gcc/testsuite/gcc.target/s390/mfentry-m64.c ! 24b9816f48107df8195cf183e2427de5 gcc/testsuite/gcc.target/s390/mnop-mcount-m31-mzarch.c 75f52f2182843e46acb7cf3cf9a6e8b4 gcc/testsuite/gcc.target/s390/mnop-mcount-m64-mfentry.c ! 01df0ea783460f442ebbcb2a05cbca45 gcc/testsuite/gcc.target/s390/mnop-mcount-m64.c 436250948f985648a9f34494e8165c41 gcc/testsuite/gcc.target/s390/morestack.c e487655bbd959e42358a2a891b8712b8 gcc/testsuite/gcc.target/s390/mrecord-mcount.c 89187d4ded3bce370dc2fc5e2b6166b6 gcc/testsuite/gcc.target/s390/mul-signed-overflow-1.c --- 68767,68777 ---- bb08fa1f6627522f43f5fe89dadd04a3 gcc/testsuite/gcc.target/s390/memcpy-2.c 94c8e6b5aae7ae391974bc5a7e1a6f4c gcc/testsuite/gcc.target/s390/memset-1.c a57f54483446dc5f464df08f79495bf7 gcc/testsuite/gcc.target/s390/memset-2.c + f1f16081b0ad5b5a36f15cad87905e5a gcc/testsuite/gcc.target/s390/mfentry-m64-pic.c c754a4515598fececb1e5306e99940eb gcc/testsuite/gcc.target/s390/mfentry-m64.c ! 36072c7ea4113d0f19d663ddcf2bb764 gcc/testsuite/gcc.target/s390/mnop-mcount-m31-mzarch.c 75f52f2182843e46acb7cf3cf9a6e8b4 gcc/testsuite/gcc.target/s390/mnop-mcount-m64-mfentry.c ! 01217c0e5adcf0b590c88e802a446ace gcc/testsuite/gcc.target/s390/mnop-mcount-m64.c 436250948f985648a9f34494e8165c41 gcc/testsuite/gcc.target/s390/morestack.c e487655bbd959e42358a2a891b8712b8 gcc/testsuite/gcc.target/s390/mrecord-mcount.c 89187d4ded3bce370dc2fc5e2b6166b6 gcc/testsuite/gcc.target/s390/mul-signed-overflow-1.c *************** b8264f568a96c8a4f482377d2149b99f gcc/te *** 68407,68421 **** 3c3b24e4e96dd2749db97eb637e27ea4 gcc/testsuite/gcc.target/s390/nobp-return-reg-nothunk.c b412cfef2c17bbb3667d188ea07e88d8 gcc/testsuite/gcc.target/s390/nobp-return-reg-z10.c 702518f6d91053d4346822b49e5f21c8 gcc/testsuite/gcc.target/s390/nobp-return-reg-z900.c d10ede3615cc75687ebe5e233896851a gcc/testsuite/gcc.target/s390/nobp-table-jump-inline-z10.c 8f2deb25c94340c19360ebdf6d822acf gcc/testsuite/gcc.target/s390/nobp-table-jump-inline-z900.c ce04de73ecbaa0a12a0313d3aed72942 gcc/testsuite/gcc.target/s390/nobp-table-jump-z10.c dfee7fa2ec55ccfb935c28226ca15fe3 gcc/testsuite/gcc.target/s390/nobp-table-jump-z900.c ! 1be8b785756fb67e18a7711afd0679a2 gcc/testsuite/gcc.target/s390/nodatarel-1.c 7ea6fcf7afbdc4bcd57407e5299e712a gcc/testsuite/gcc.target/s390/nolrl-1.c d5b2bba665576dc0538f9d0bd2142e62 gcc/testsuite/gcc.target/s390/nomemloopunroll-1.c eb96a92710915622b3f65dba4a30955d gcc/testsuite/gcc.target/s390/oscbreak-1.c 25c3bd00fd3d097e42ac8cfc215fd0c4 gcc/testsuite/gcc.target/s390/pfpo.c 765307a040de72f2f4376b7068d68018 gcc/testsuite/gcc.target/s390/pr20927.c 85f31fb9b4b15529205376d3f6fa385c gcc/testsuite/gcc.target/s390/pr24624.c 7adacbd67601dc0845e556e5632cd718 gcc/testsuite/gcc.target/s390/pr27661.c --- 68800,68817 ---- 3c3b24e4e96dd2749db97eb637e27ea4 gcc/testsuite/gcc.target/s390/nobp-return-reg-nothunk.c b412cfef2c17bbb3667d188ea07e88d8 gcc/testsuite/gcc.target/s390/nobp-return-reg-z10.c 702518f6d91053d4346822b49e5f21c8 gcc/testsuite/gcc.target/s390/nobp-return-reg-z900.c + 7b1cafd202716397b830d007fe7587c3 gcc/testsuite/gcc.target/s390/nobp-section-type-conflict.c d10ede3615cc75687ebe5e233896851a gcc/testsuite/gcc.target/s390/nobp-table-jump-inline-z10.c 8f2deb25c94340c19360ebdf6d822acf gcc/testsuite/gcc.target/s390/nobp-table-jump-inline-z900.c ce04de73ecbaa0a12a0313d3aed72942 gcc/testsuite/gcc.target/s390/nobp-table-jump-z10.c dfee7fa2ec55ccfb935c28226ca15fe3 gcc/testsuite/gcc.target/s390/nobp-table-jump-z900.c ! 562f1ca03435b8b1feb13adcaaa3be2c gcc/testsuite/gcc.target/s390/nodatarel-1.c 7ea6fcf7afbdc4bcd57407e5299e712a gcc/testsuite/gcc.target/s390/nolrl-1.c d5b2bba665576dc0538f9d0bd2142e62 gcc/testsuite/gcc.target/s390/nomemloopunroll-1.c eb96a92710915622b3f65dba4a30955d gcc/testsuite/gcc.target/s390/oscbreak-1.c 25c3bd00fd3d097e42ac8cfc215fd0c4 gcc/testsuite/gcc.target/s390/pfpo.c + bdf3ebe1c6a408e4efe2845222b3d54d gcc/testsuite/gcc.target/s390/pr102222.c + 182ebf3677a29bf9b1dbb033505f78dd gcc/testsuite/gcc.target/s390/pr104775.c 765307a040de72f2f4376b7068d68018 gcc/testsuite/gcc.target/s390/pr20927.c 85f31fb9b4b15529205376d3f6fa385c gcc/testsuite/gcc.target/s390/pr24624.c 7adacbd67601dc0845e556e5632cd718 gcc/testsuite/gcc.target/s390/pr27661.c *************** acda2f0eed359b6c50d33952658d4fad gcc/te *** 68439,68445 **** 1ac7e049ebfb6360748da2ac0c754846 gcc/testsuite/gcc.target/s390/pr79890.c d127ee93571cc359b60fa89c63392525 gcc/testsuite/gcc.target/s390/pr79895.c 344b2b8df65958d56e0bd6673f2e1fb5 gcc/testsuite/gcc.target/s390/pr80080-3.c ! e0b54820626e7f7887f1574e5377c986 gcc/testsuite/gcc.target/s390/pr80080-4.c 8b4969fbf314851ec142b17e9a328088 gcc/testsuite/gcc.target/s390/pr80725.c 735bf8da0d759e7de791e71467439655 gcc/testsuite/gcc.target/s390/pr81534.c d8d4be7f8d46a289e2ef8e7db7fd3f21 gcc/testsuite/gcc.target/s390/pr84295.c --- 68835,68841 ---- 1ac7e049ebfb6360748da2ac0c754846 gcc/testsuite/gcc.target/s390/pr79890.c d127ee93571cc359b60fa89c63392525 gcc/testsuite/gcc.target/s390/pr79895.c 344b2b8df65958d56e0bd6673f2e1fb5 gcc/testsuite/gcc.target/s390/pr80080-3.c ! 245b633cd4b4c7e1ea3414c0612767e1 gcc/testsuite/gcc.target/s390/pr80080-4.c 8b4969fbf314851ec142b17e9a328088 gcc/testsuite/gcc.target/s390/pr80725.c 735bf8da0d759e7de791e71467439655 gcc/testsuite/gcc.target/s390/pr81534.c d8d4be7f8d46a289e2ef8e7db7fd3f21 gcc/testsuite/gcc.target/s390/pr84295.c *************** f9de3c4e9d9e8c3a707e1f51e48901b6 gcc/te *** 68461,68467 **** 5368e8759352b798ae1db6bc79919aa2 gcc/testsuite/gcc.target/s390/return-addr2.c c638a86bd5bf24acab1490492cbfb557 gcc/testsuite/gcc.target/s390/risbg-ll-1.c 532ff931ad8bf62f60b08b1f9261827a gcc/testsuite/gcc.target/s390/risbg-ll-2.c ! 5b27542f6b0ae5c496ab1d16ec947c86 gcc/testsuite/gcc.target/s390/risbg-ll-3.c 6c330cfc80a0f60d042947448413d011 gcc/testsuite/gcc.target/s390/rotate-truncation-mask.c b54de45289464bdfb05ccc24f76d8156 gcc/testsuite/gcc.target/s390/s390.exp 970ac972bfd816dae5f8b5705abd8ab6 gcc/testsuite/gcc.target/s390/section-anchors.c --- 68857,68863 ---- 5368e8759352b798ae1db6bc79919aa2 gcc/testsuite/gcc.target/s390/return-addr2.c c638a86bd5bf24acab1490492cbfb557 gcc/testsuite/gcc.target/s390/risbg-ll-1.c 532ff931ad8bf62f60b08b1f9261827a gcc/testsuite/gcc.target/s390/risbg-ll-2.c ! abd82e72aa14d30ef649fb88b2856d0d gcc/testsuite/gcc.target/s390/risbg-ll-3.c 6c330cfc80a0f60d042947448413d011 gcc/testsuite/gcc.target/s390/rotate-truncation-mask.c b54de45289464bdfb05ccc24f76d8156 gcc/testsuite/gcc.target/s390/s390.exp 970ac972bfd816dae5f8b5705abd8ab6 gcc/testsuite/gcc.target/s390/section-anchors.c *************** ff7d9419a3b2402f3410b0aae024febc gcc/te *** 68563,68568 **** --- 68959,68967 ---- 01db3581d32b46deb518f006aeb75821 gcc/testsuite/gcc.target/s390/target-attribute/tpragma-struct-vx-1.c 9e482ff5796d7aa27f6f404a18462f13 gcc/testsuite/gcc.target/s390/target-attribute/tpragma-struct-vx-2.c 201a36e4a6548d10d83352d305b4284a gcc/testsuite/gcc.target/s390/tf_to_di-1.c + b5c026b313e7e579c58d749f8ff8ab28 gcc/testsuite/gcc.target/s390/tls-pic.c + 69c2f8e3f1d02b9f005713af50f678a4 gcc/testsuite/gcc.target/s390/tls.c + d0f7e6beee3ecb181246a2372324af7e gcc/testsuite/gcc.target/s390/tls.h daf32d359b4f5080aef58859b29870b9 gcc/testsuite/gcc.target/s390/vector/align-1.c 6bf626314f1db50adc71184824f22bba gcc/testsuite/gcc.target/s390/vector/align-2.c 37d2afe5f257fe6c269b2baa787ffe41 gcc/testsuite/gcc.target/s390/vector/combine-shift-vec.c *************** a67458660c2ef2010f128fdaa4faaa86 gcc/te *** 69044,69049 **** --- 69443,69449 ---- e470b0a0d1a056b60c3915a6dfcfd4ae gcc/testsuite/gcc.target/sparc/20170228-1.c bf95d536cbad4db92f264aa740abbbbc gcc/testsuite/gcc.target/sparc/20181129-1.c 3b3205cedf38a33c506ea5c4414d489f gcc/testsuite/gcc.target/sparc/20181129-2.c + 3f593e1ef43ebce309fa2b2033f8be77 gcc/testsuite/gcc.target/sparc/20210917-1.c 44373c57181608413fc07f3ec0e2ad6e gcc/testsuite/gcc.target/sparc/align.c 667a877a2fb02d919c4eaaea6fbccbad gcc/testsuite/gcc.target/sparc/array.c 941bd8aa096c3c20415035d9d17cca6e gcc/testsuite/gcc.target/sparc/attr-aligned.c *************** db93819c7b52f4f6ea4f42fed3e0a48a gcc/te *** 69832,69837 **** --- 70232,70240 ---- 8527933fbf2d9fb7c82fd63435063168 gcc/testsuite/gdc.dg/debug/dwarf2/pr98067.d 0121ae6408f107a6bf6f915c24102bd3 gcc/testsuite/gdc.dg/debug/trivial.d 056a77865fa4a8c3178b44ed6a0b1dc7 gcc/testsuite/gdc.dg/dg.exp + 9b1a478e67e4cf0b4384f63a7005e8fc gcc/testsuite/gdc.dg/extern-c++/extern-c++.exp + 61180002f0f17ca7ed75def599d123f0 gcc/testsuite/gdc.dg/extern-c++/pr101664.d + 68936fbe708c1d13dcaca6e4a4a06f77 gcc/testsuite/gdc.dg/extern-c++/pr101664_1.cc a1a48cc59d8f09de15d5d5519e240770 gcc/testsuite/gdc.dg/fileimports/pr93038.txt 0da416e7dcac2139d3182637a81efbfe gcc/testsuite/gdc.dg/gdc108.d 5761ceeebbd93d112778a153a688475a gcc/testsuite/gdc.dg/gdc121.d *************** bcf14abbb66e47644086ee0018354420 gcc/te *** 69899,69904 **** --- 70302,70313 ---- 167004b1d3ea4a1c36668f029fbe4290 gcc/testsuite/gdc.dg/pr100882b.d c0f2db1fcb83cbb41fda8295889368ff gcc/testsuite/gdc.dg/pr100882c.d 16bbee694aa77823539b7b517bad4c50 gcc/testsuite/gdc.dg/pr100967.d + 740e20f8b4aa9d31c7412fbd3b58d4fb gcc/testsuite/gdc.dg/pr101127a.d + 1913e638608dc57b978438a45ade3c4f gcc/testsuite/gdc.dg/pr101127b.d + 874906b0c6afe60dafbbc739053ac4eb gcc/testsuite/gdc.dg/pr101490.d + 13e2f7b1a821d0fa1089525b3df15479 gcc/testsuite/gdc.dg/pr101640.d + 00da6db0d966d43d573f86b9fe032508 gcc/testsuite/gdc.dg/pr102185.d + 616697349b5740e41fd04c0ae6074cd2 gcc/testsuite/gdc.dg/pr105004.d d32aa8ed5ea10931be4ddb5bb9e863d8 gcc/testsuite/gdc.dg/pr89017.d 53fa8db94d4ca3fc9ba83769733dc0e7 gcc/testsuite/gdc.dg/pr89041.d 6c316b13f71ea31fcada56b58a41ebd1 gcc/testsuite/gdc.dg/pr89042a.d *************** b62ff9f99e07b6dbb56f221a56f0b7ab gcc/te *** 69926,69932 **** eb911ca49c3c33021dd97064b0459923 gcc/testsuite/gdc.dg/pr96301a.d 6f5ae39580efa1de2679c8912e82e1b8 gcc/testsuite/gdc.dg/pr96301b.d 7880bdba7c166bb0d5af9d5a4530b438 gcc/testsuite/gdc.dg/pr96301c.d ! 2b7312af18c3e9ddb225bf58756862b7 gcc/testsuite/gdc.dg/pr96429.d c5a77c2a508b4b45e9a6b936d77d9f80 gcc/testsuite/gdc.dg/pr96869.d dc97b4112b134cae3d15aab92424d97a gcc/testsuite/gdc.dg/pr96924.d 9c4c7df565451e246ae0d226391657f5 gcc/testsuite/gdc.dg/pr97002.d --- 70335,70341 ---- eb911ca49c3c33021dd97064b0459923 gcc/testsuite/gdc.dg/pr96301a.d 6f5ae39580efa1de2679c8912e82e1b8 gcc/testsuite/gdc.dg/pr96301b.d 7880bdba7c166bb0d5af9d5a4530b438 gcc/testsuite/gdc.dg/pr96301c.d ! 71687cb94e2099d3d815f51913a75e16 gcc/testsuite/gdc.dg/pr96429.d c5a77c2a508b4b45e9a6b936d77d9f80 gcc/testsuite/gdc.dg/pr96869.d dc97b4112b134cae3d15aab92424d97a gcc/testsuite/gdc.dg/pr96924.d 9c4c7df565451e246ae0d226391657f5 gcc/testsuite/gdc.dg/pr97002.d *************** a24df8e498053d7ab8325fc58ede1835 gcc/te *** 70003,70008 **** --- 70412,70418 ---- 4bb3a08c1392ffe1ab686818ad5ec86c gcc/testsuite/gdc.dg/torture/pr96153.d bb606d2e0103a4417ebc0bbc3d8cfd49 gcc/testsuite/gdc.dg/torture/pr96156.d 4133528b9c8c3396b240273ea9ecf550 gcc/testsuite/gdc.dg/torture/pr96157a.d + 91aeadb49207b8ef8bedd4c016c1b443 gcc/testsuite/gdc.dg/torture/pr96435.d cc28afe3396e956160b04c6ab8871499 gcc/testsuite/gdc.dg/torture/pr97843.d 69b6b7adcb2ad72055a4fca88afe3f41 gcc/testsuite/gdc.dg/torture/pr97889.d b82b2d96f26d876bca525fdf413dab79 gcc/testsuite/gdc.dg/torture/simd16488a.d *************** ef649aba680526d48bc3e69760b621f2 gcc/te *** 70045,70050 **** --- 70455,70461 ---- 1a88a6c51e44c3714508bdee2b346151 gcc/testsuite/gdc.test/compilable/b16967.d 8982f69fd14c58a5dba7832efe5675f8 gcc/testsuite/gdc.test/compilable/b16976.d 7fd8995951aacc68c9ef6500f3bb1b17 gcc/testsuite/gdc.test/compilable/b17111.d + 985cbf872a2f9249c9e9c78338b0f501 gcc/testsuite/gdc.test/compilable/b19002.d 1def44638ab23277ee8a3cbef121f28b gcc/testsuite/gdc.test/compilable/b33.d 286e654567f89de0a3605032db35f623 gcc/testsuite/gdc.test/compilable/b6227.d 6a76da8b7b49ec37b8f02315a9b5bdd9 gcc/testsuite/gdc.test/compilable/b6395.d *************** effd503ab143f07a377f69a6abd2e2ab gcc/te *** 70585,70590 **** --- 70996,71002 ---- e5b88d27b36ae497e0682fa1afcc06be gcc/testsuite/gdc.test/compilable/test21812.d 7bf71d49bd9d761471be55f9c50f5c92 gcc/testsuite/gdc.test/compilable/test21898.d f8ec0845cd2590e50d27071453701fb7 gcc/testsuite/gdc.test/compilable/test22006.d + 01b0e8acc140f229c41fe59a55df5574 gcc/testsuite/gdc.test/compilable/test22133.d 8bbe6fdb201585c810b1ed76e34ddba3 gcc/testsuite/gdc.test/compilable/test25.d 089e65013864f2a6266955ee32c413a9 gcc/testsuite/gdc.test/compilable/test2991.d e1042e9f6638c3d67840ae4db9908d15 gcc/testsuite/gdc.test/compilable/test313a.d *************** af487ca57216bc854bc01579a8105785 gcc/te *** 71159,71164 **** --- 71571,71578 ---- ad4fca3b9dbdc7fd24b158a3d3af5ed9 gcc/testsuite/gdc.test/fail_compilation/fail220.d 24f4c3c3fa945ca54c802bc7b4fc9976 gcc/testsuite/gdc.test/fail_compilation/fail22006.d cbf4cc7e1f96260b11e9acc29bd9dc12 gcc/testsuite/gdc.test/fail_compilation/fail221.d + 0bb50b641805b9fc2f72587a6693c9dc gcc/testsuite/gdc.test/fail_compilation/fail22133.d + 905e47894d7c0d03a0db65423e4e8848 gcc/testsuite/gdc.test/fail_compilation/fail22144.d 7f7a0dac0afcfc920bdff662146ff101 gcc/testsuite/gdc.test/fail_compilation/fail222.d 0b9ee853ad7e4570d30a13257081f9bd gcc/testsuite/gdc.test/fail_compilation/fail223.d 2dc7de709a4a362b91e462b2499243bc gcc/testsuite/gdc.test/fail_compilation/fail224.d *************** e9340c11857fcf5fcbe8105ec1b0421f gcc/te *** 71392,71405 **** b76922cd751e594db4984440f5dcd684 gcc/testsuite/gdc.test/fail_compilation/fail73.d 0b8eff5722d223dcb1959fd12c1ea791 gcc/testsuite/gdc.test/fail_compilation/fail7369.d 501f2b3778ebd6b2e5493a0fa9a7f20d gcc/testsuite/gdc.test/fail_compilation/fail74.d ! 5043f68824d0e234f3f2543e9a9a12e3 gcc/testsuite/gdc.test/fail_compilation/fail7424b.d ! e287372fab3ef9c830b9d70e555c34e6 gcc/testsuite/gdc.test/fail_compilation/fail7424c.d ! 90f73dcccacdf6a1af5d2d603513588d gcc/testsuite/gdc.test/fail_compilation/fail7424d.d ! 68c432f893b799d8a607384680fbf577 gcc/testsuite/gdc.test/fail_compilation/fail7424e.d ! 2b05f361de3d5f97091aac0f3f35d09c gcc/testsuite/gdc.test/fail_compilation/fail7424f.d ! 64177336f34ceef7345c3e93509de097 gcc/testsuite/gdc.test/fail_compilation/fail7424g.d ! a3aea5a03f477ecfddffec9dae056f88 gcc/testsuite/gdc.test/fail_compilation/fail7424h.d ! bdf7ca665e388507b19c29f09d4669b3 gcc/testsuite/gdc.test/fail_compilation/fail7424i.d 9bcf0d7f8dc25ee08d2b358feeecce5b gcc/testsuite/gdc.test/fail_compilation/fail75.d ba8e80c17e23cb72c72082a27e1547c3 gcc/testsuite/gdc.test/fail_compilation/fail7524a.d c50f2cfb4d249da817ef0df6dae2f3ce gcc/testsuite/gdc.test/fail_compilation/fail7524b.d --- 71806,71819 ---- b76922cd751e594db4984440f5dcd684 gcc/testsuite/gdc.test/fail_compilation/fail73.d 0b8eff5722d223dcb1959fd12c1ea791 gcc/testsuite/gdc.test/fail_compilation/fail7369.d 501f2b3778ebd6b2e5493a0fa9a7f20d gcc/testsuite/gdc.test/fail_compilation/fail74.d ! a0982e24c691ef64752d4fc792f9a78b gcc/testsuite/gdc.test/fail_compilation/fail7424b.d ! 5ba17d6b3c57ac3cded922340de60d98 gcc/testsuite/gdc.test/fail_compilation/fail7424c.d ! 659bad81c1b14cef227af0d1921a175b gcc/testsuite/gdc.test/fail_compilation/fail7424d.d ! e0456fd32812ef7ee4a89c422fbb390a gcc/testsuite/gdc.test/fail_compilation/fail7424e.d ! 87188b49fab83f6fd522d3ee3a123340 gcc/testsuite/gdc.test/fail_compilation/fail7424f.d ! 78659d17d48e11fb69ff7a9913460d16 gcc/testsuite/gdc.test/fail_compilation/fail7424g.d ! 71cf4df7a6b13271d3d6f342458eb722 gcc/testsuite/gdc.test/fail_compilation/fail7424h.d ! a3f58cf6956b9c3abc935a11b09ebf15 gcc/testsuite/gdc.test/fail_compilation/fail7424i.d 9bcf0d7f8dc25ee08d2b358feeecce5b gcc/testsuite/gdc.test/fail_compilation/fail75.d ba8e80c17e23cb72c72082a27e1547c3 gcc/testsuite/gdc.test/fail_compilation/fail7524a.d c50f2cfb4d249da817ef0df6dae2f3ce gcc/testsuite/gdc.test/fail_compilation/fail7524b.d *************** b985d75d4d77d7f24d29efbb0266b7c1 gcc/te *** 72662,72669 **** 3e270457a0730f64cb7deaefe7256b90 gcc/testsuite/gfortran.dg/allocate_error_6.f90 5104ce5f1f698379877a63ce2e5b7747 gcc/testsuite/gfortran.dg/allocate_error_7.f90 fb64bc7d356ec60804fbf43d60862c56 gcc/testsuite/gfortran.dg/allocate_scalar_with_shape.f90 ! 85b517b1e2ad96a7d4e84672378d9fc3 gcc/testsuite/gfortran.dg/allocate_stat.f90 fd47cb2ee3abca7f4ec8637b9e9e793b gcc/testsuite/gfortran.dg/allocate_stat_2.f90 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 --- 73076,73084 ---- 3e270457a0730f64cb7deaefe7256b90 gcc/testsuite/gfortran.dg/allocate_error_6.f90 5104ce5f1f698379877a63ce2e5b7747 gcc/testsuite/gfortran.dg/allocate_error_7.f90 fb64bc7d356ec60804fbf43d60862c56 gcc/testsuite/gfortran.dg/allocate_scalar_with_shape.f90 ! 830939c2c8aa5b5102f390243f11fcbd gcc/testsuite/gfortran.dg/allocate_stat.f90 fd47cb2ee3abca7f4ec8637b9e9e793b gcc/testsuite/gfortran.dg/allocate_stat_2.f90 + e7a1e79918397cacde44559287989c3e gcc/testsuite/gfortran.dg/allocate_stat_3.f90 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 *************** dbfad5e8b5cf874428e1b4374f3f75e1 gcc/te *** 72758,72763 **** --- 73173,73179 ---- cb8920b39d43f8d36d7c87cd6ce3188a gcc/testsuite/gfortran.dg/argument_checking_23.f90 4696d0b0990f3672f510ad45684ab381 gcc/testsuite/gfortran.dg/argument_checking_24.f90 e96279b8586c27726b6d13e5aef5f5ce gcc/testsuite/gfortran.dg/argument_checking_25.f90 + 41fda9edc825e051657e0ef512854333 gcc/testsuite/gfortran.dg/argument_checking_26.f90 9420e2390509236501a51aceaffd8fec gcc/testsuite/gfortran.dg/argument_checking_3.f90 ca22fc708f8e1b6425943105c693f41e gcc/testsuite/gfortran.dg/argument_checking_4.f90 6ef91b131477d21bf8c75369daea1d04 gcc/testsuite/gfortran.dg/argument_checking_5.f90 *************** c8e89c3bb1a8878396e32769b9a78d05 gcc/te *** 72830,72835 **** --- 73246,73253 ---- 1ce7c326ac35602dfab388e47338c640 gcc/testsuite/gfortran.dg/array_constructor_51.f90 74902cf57199c682dc3775323dd67fe3 gcc/testsuite/gfortran.dg/array_constructor_52.f90 2cd50431749fd2782a60804098abc805 gcc/testsuite/gfortran.dg/array_constructor_53.f90 + 0f86c84a8fd0787aab2aa7e4dd6ac377 gcc/testsuite/gfortran.dg/array_constructor_54.f90 + fbcbf467a3284c5a09b9e5e8efc5e0c7 gcc/testsuite/gfortran.dg/array_constructor_55.f90 3c35c0aa8a8229010e90452ed87d7792 gcc/testsuite/gfortran.dg/array_constructor_6.f90 d3bb011093e16f988efba6816262fb16 gcc/testsuite/gfortran.dg/array_constructor_7.f90 ae5f56f53be9d3bbc6c562e48080a252 gcc/testsuite/gfortran.dg/array_constructor_8.f90 *************** d6fad859ae9f254219fe0b62c52472a0 gcc/te *** 72908,72913 **** --- 73326,73333 ---- a7a4d71734bf9559e09017fe4616e065 gcc/testsuite/gfortran.dg/arrayio_derived_1.f90 2b2c726e08ba1c26507c7392e63e1029 gcc/testsuite/gfortran.dg/arrayio_derived_2.f90 91f37bbac26f82273837e648e97f8b98 gcc/testsuite/gfortran.dg/asan/asan.exp + 3b8425a2f59699b47aac6da29c11aba9 gcc/testsuite/gfortran.dg/asan/associate_58.f90 + e9f58df1de071d2b106b16b3af8f6764 gcc/testsuite/gfortran.dg/asan/associate_59.f90 66de6cb3bf07d14487491fac7d1ee72f gcc/testsuite/gfortran.dg/asan/pointer_assign_16.f90 28bbca8fc062ad301c676d4eb94d000d gcc/testsuite/gfortran.dg/assign-debug.f90 7ad5faf60f3a1cebebfbb2c9e52516d7 gcc/testsuite/gfortran.dg/assign.f90 *************** c00a8dd4766b03f7af8034f983b17dae gcc/te *** 72979,72984 **** --- 73399,73405 ---- a33adc54f6651cbed7e49f420e779c05 gcc/testsuite/gfortran.dg/associate_55.f90 e266ed6fc3d13470e97d022451deea4e gcc/testsuite/gfortran.dg/associate_56.f90 0dd4c19a8ee9b0815baed4922597d206 gcc/testsuite/gfortran.dg/associate_57.f90 + 65dc8227452a184626d85e599ab1382d gcc/testsuite/gfortran.dg/associate_58.f90 fe80c25bfc4d1e630472420bac3dc836 gcc/testsuite/gfortran.dg/associate_6.f03 ac2154aefe0a4ce981b3fa252235e2dd gcc/testsuite/gfortran.dg/associate_7.f03 3c2206420bb8717914aa447789b5f079 gcc/testsuite/gfortran.dg/associate_8.f03 *************** ee834071fbdbf11553b04e2dab5a50e0 gcc/te *** 73072,73077 **** --- 73493,73499 ---- 362c8595542a020eb586d0aefb29793e gcc/testsuite/gfortran.dg/asynchronous_5.f03 c45eedde0562a60cdbc393433096fcce gcc/testsuite/gfortran.dg/atan2_1.f90 fa450718dba3ab168e51f1ea0a7395d9 gcc/testsuite/gfortran.dg/atan2_2.f90 + 6ea45e69d96b4898fbc1a9cefe77976b gcc/testsuite/gfortran.dg/attr_deprecated-2.f90 f53fcb34021fd16cec1ec5c62b1b1078 gcc/testsuite/gfortran.dg/attr_deprecated.f90 1de887a6713de99b4d24dece9810994f gcc/testsuite/gfortran.dg/auto_array_1.f90 5728d828f281df7854b3c34318983790 gcc/testsuite/gfortran.dg/auto_char_dummy_array_1.f90 *************** ff9c91471b4ce5ab6577afccb4c338c3 gcc/te *** 73290,73295 **** --- 73712,73718 ---- f163a929162b84c921c534094a61ee6d gcc/testsuite/gfortran.dg/bound_simplification_4.f90 8da00332161b12f533a48f6f4b133c93 gcc/testsuite/gfortran.dg/bound_simplification_5.f90 89ef43a5db63dead844540416ec15fe0 gcc/testsuite/gfortran.dg/bound_simplification_6.f90 + e0f32fc19dadb57e546c6f6e72bab8aa gcc/testsuite/gfortran.dg/bound_simplification_7.f90 0c37f25c0a329b1f8023a969afa947bc gcc/testsuite/gfortran.dg/bounds_check_1.f90 224affc6eb571605f5b1d1c7af58536c gcc/testsuite/gfortran.dg/bounds_check_10.f90 cded3f5f45f16c3f0117b2deb934a3be gcc/testsuite/gfortran.dg/bounds_check_11.f90 *************** b890668874e1bc07a00cd706581c6fd1 gcc/te *** 73305,73310 **** --- 73728,73734 ---- 66c33189a3444b13a4ae1439933ebc8b gcc/testsuite/gfortran.dg/bounds_check_20.f90 7577ff710a256393f1fb5c102e69baa4 gcc/testsuite/gfortran.dg/bounds_check_21.f90 e585af8e23493967fa5b80361d02ccd5 gcc/testsuite/gfortran.dg/bounds_check_22.f90 + c255cbccd21b3a2d3ab21d32d680086e gcc/testsuite/gfortran.dg/bounds_check_23.f90 1ff91e96da26ef6e7839e53e2b71499d gcc/testsuite/gfortran.dg/bounds_check_3.f90 a9119407c225c716d99c309178d77952 gcc/testsuite/gfortran.dg/bounds_check_4.f90 167a95fa41d2abf20f66591e1389d059 gcc/testsuite/gfortran.dg/bounds_check_5.f90 *************** a8f104492778b738ac5730dd1605432a gcc/te *** 73675,73680 **** --- 74099,74105 ---- cc0c048415b8d0593fe7e5b164763dc7 gcc/testsuite/gfortran.dg/class_7.f03 cd9759177f83fe4b6a6a007850b05c80 gcc/testsuite/gfortran.dg/class_70.f03 77eb9432daba5a35f6be287dfec77ae3 gcc/testsuite/gfortran.dg/class_71.f90 + 92c121dc110b05822b93da0d70bcd5bb gcc/testsuite/gfortran.dg/class_72.f90 765b5ae237d318aee8909def266c457e gcc/testsuite/gfortran.dg/class_8.f03 6ad3d2ed9f82c5534e18375c93ce8c03 gcc/testsuite/gfortran.dg/class_9.f03 eff35de84f2c16f8b8abcbc407237414 gcc/testsuite/gfortran.dg/class_alias.f90 *************** bffd58c6eb392174540e5effb5007d27 gcc/te *** 73737,73747 **** --- 74162,74175 ---- dbc20d52e3c86639db916ad3c6392de8 gcc/testsuite/gfortran.dg/class_dummy_3.f03 3c084c9f366d687c0a674b8d42c2ea01 gcc/testsuite/gfortran.dg/class_dummy_4.f03 198585d6f5262127fa1756b228e70921 gcc/testsuite/gfortran.dg/class_dummy_5.f90 + 89120e26e4ec5fd1d963a1d03f515cb6 gcc/testsuite/gfortran.dg/class_dummy_6.f90 + b0d798ee6d75aec23f3be5fd748a1cc6 gcc/testsuite/gfortran.dg/class_dummy_7.f90 2f2b6b89c03eb0121abcd60df79d27ee gcc/testsuite/gfortran.dg/class_is_1.f90 84f9ccdf2ee8c8cfe397a0c82a7730af gcc/testsuite/gfortran.dg/class_nameclash.f90 9602d01ce3a47f3e2255aba5f234d1ae gcc/testsuite/gfortran.dg/class_optional_1.f90 cafb289bb10efdba4439c0cbc685ba93 gcc/testsuite/gfortran.dg/class_optional_2.f90 7c2579227e2041f067b68fc6f25175f5 gcc/testsuite/gfortran.dg/class_result_1.f03 + d42da1549b6ff2441e109550518cf366 gcc/testsuite/gfortran.dg/class_result_10.f90 3b8f230b7e31089a91042ffa36e727e5 gcc/testsuite/gfortran.dg/class_result_2.f90 12a03293fb1e007e7adb6942bfd53336 gcc/testsuite/gfortran.dg/class_result_3.f90 6b5e22364a04ac278db525f084255294 gcc/testsuite/gfortran.dg/class_result_4.f90 *************** ccea5fe2d622c1b4b11ac162a1a5ab5d gcc/te *** 73845,73851 **** 2375cb901f66b2a115a101939d52aada gcc/testsuite/gfortran.dg/coarray_28.f90 d6171beaca591e43e576d2592d78374d gcc/testsuite/gfortran.dg/coarray_29_1.f90 5408a8e18baed9f6c69e9e2450432e7e gcc/testsuite/gfortran.dg/coarray_29_2.f90 ! 92ec970015b6fb1e203559f55748dcb8 gcc/testsuite/gfortran.dg/coarray_3.f90 6ea7f18b1240af64fbab9370d01fc2cf gcc/testsuite/gfortran.dg/coarray_30.f90 71de0eeb3cf2a98786f81af339f3ebc1 gcc/testsuite/gfortran.dg/coarray_31.f90 41ef600d16174aadd2e383883bb3cbb6 gcc/testsuite/gfortran.dg/coarray_32.f90 --- 74273,74279 ---- 2375cb901f66b2a115a101939d52aada gcc/testsuite/gfortran.dg/coarray_28.f90 d6171beaca591e43e576d2592d78374d gcc/testsuite/gfortran.dg/coarray_29_1.f90 5408a8e18baed9f6c69e9e2450432e7e gcc/testsuite/gfortran.dg/coarray_29_2.f90 ! c647070891bc2fdbb3034d9d03e7b2d4 gcc/testsuite/gfortran.dg/coarray_3.f90 6ea7f18b1240af64fbab9370d01fc2cf gcc/testsuite/gfortran.dg/coarray_30.f90 71de0eeb3cf2a98786f81af339f3ebc1 gcc/testsuite/gfortran.dg/coarray_31.f90 41ef600d16174aadd2e383883bb3cbb6 gcc/testsuite/gfortran.dg/coarray_32.f90 *************** f786196105e5eab366818d3158fe2542 gcc/te *** 73910,73915 **** --- 74338,74345 ---- 49c48bdb3f790beaf2d792b51fb1f88b gcc/testsuite/gfortran.dg/coarray_collectives_14.f90 65556528ee2d4495d0b0289380c93113 gcc/testsuite/gfortran.dg/coarray_collectives_15.f90 5f826f7c4e401cf605594485d7b3b2a8 gcc/testsuite/gfortran.dg/coarray_collectives_16.f90 + e17c609e4211d75cb1a9c28a7cba2d7d gcc/testsuite/gfortran.dg/coarray_collectives_17.f90 + c2c5695dec9ed843d659ac6a14ae4b7a gcc/testsuite/gfortran.dg/coarray_collectives_18.f90 6a77158845ff40d594f51460f18a7035 gcc/testsuite/gfortran.dg/coarray_collectives_2.f90 d016c048d2e88b36a99993fc32e91abd gcc/testsuite/gfortran.dg/coarray_collectives_3.f90 1c59a910233bed95c0b2e61b9fd5d5f6 gcc/testsuite/gfortran.dg/coarray_collectives_4.f90 *************** c15a01f85f0059696c3135040a4f2fc3 gcc/te *** 73963,73968 **** --- 74393,74399 ---- 77f1bd831abf2ff29f84109d3f3bab3b gcc/testsuite/gfortran.dg/coarray_stat_whitespace.f90 7e0ae006a51c482281b3ce9e41151630 gcc/testsuite/gfortran.dg/coarray_stopped_images_1.f08 02137ab63da8c69fd9162c7b4a473d96 gcc/testsuite/gfortran.dg/coarray_subobject_1.f90 + f167ac47517d62f94f60b1824d6a54d8 gcc/testsuite/gfortran.dg/coarray_sync.f90 87ae412e381a4c934bbbd6a7549adb39 gcc/testsuite/gfortran.dg/coarray_sync_memory.f90 658e444e52b22ea496105ef9bc744b46 gcc/testsuite/gfortran.dg/coarray_this_image_1.f90 df6beb93b53ebd5769af2eb7ec60add0 gcc/testsuite/gfortran.dg/coarray_this_image_2.f90 *************** b9f5c4479004d5779cf508b8e9ab6bd5 gcc/te *** 74222,74227 **** --- 74653,74659 ---- 11fbf6587979490cca68492521824101 gcc/testsuite/gfortran.dg/dec_math_2.f90 f007474e5e62779dd82a956460020608 gcc/testsuite/gfortran.dg/dec_math_3.f90 89e13391077c863487552207c651a1aa gcc/testsuite/gfortran.dg/dec_math_4.f90 + c72afcd1bf036ac396f29c7e70a4f3bd gcc/testsuite/gfortran.dg/dec_math_5.f90 9f5739a83e88bd4a8b6a45ff713e1e4f gcc/testsuite/gfortran.dg/dec_parameter_1.f 5d6d04868c5d0b68526b644166397060 gcc/testsuite/gfortran.dg/dec_parameter_2.f90 fda7b33d4e9546e000649a147e272b6b gcc/testsuite/gfortran.dg/dec_parameter_3.f90 *************** e5f02b68e5aa2fee50c3ff70ad3d8f97 gcc/te *** 74435,74441 **** 026bd8fa710214d25691eae8c1dbcdfd gcc/testsuite/gfortran.dg/derived_comp_array_ref_6.f90 0bee796fdb071ab50d5faf5c678fefa5 gcc/testsuite/gfortran.dg/derived_comp_array_ref_7.f90 3ac6e6c4ed41e85971024e19ad69e6a1 gcc/testsuite/gfortran.dg/derived_comp_array_ref_8.f90 ! 3cb6f5885bbdd2d68c73753351eee1b3 gcc/testsuite/gfortran.dg/derived_constructor_char_1.f90 36d65cd99e01688bd380279fd0c74558 gcc/testsuite/gfortran.dg/derived_constructor_char_2.f90 3c2f8f5e24883308b8a24313e9e5df89 gcc/testsuite/gfortran.dg/derived_constructor_char_3.f90 f024936b2bb3be33b204bc283db65a94 gcc/testsuite/gfortran.dg/derived_constructor_comps_1.f90 --- 74867,74873 ---- 026bd8fa710214d25691eae8c1dbcdfd gcc/testsuite/gfortran.dg/derived_comp_array_ref_6.f90 0bee796fdb071ab50d5faf5c678fefa5 gcc/testsuite/gfortran.dg/derived_comp_array_ref_7.f90 3ac6e6c4ed41e85971024e19ad69e6a1 gcc/testsuite/gfortran.dg/derived_comp_array_ref_8.f90 ! 568b11dc7307172904079506d19d6593 gcc/testsuite/gfortran.dg/derived_constructor_char_1.f90 36d65cd99e01688bd380279fd0c74558 gcc/testsuite/gfortran.dg/derived_constructor_char_2.f90 3c2f8f5e24883308b8a24313e9e5df89 gcc/testsuite/gfortran.dg/derived_constructor_char_3.f90 f024936b2bb3be33b204bc283db65a94 gcc/testsuite/gfortran.dg/derived_constructor_comps_1.f90 *************** cb44893d94f03877d3d146a8c1da8bd8 gcc/te *** 74444,74449 **** --- 74876,74882 ---- 1985d33efa2fb91552f8a4d90653edd7 gcc/testsuite/gfortran.dg/derived_constructor_comps_4.f90 b90644647498c9ab9c17c0d5ea8d1b82 gcc/testsuite/gfortran.dg/derived_constructor_comps_5.f90 b2ca02520bfaffc03c538a5319e61893 gcc/testsuite/gfortran.dg/derived_constructor_comps_6.f90 + a4520e3938bf347c0b9e1003348fd3b6 gcc/testsuite/gfortran.dg/derived_constructor_comps_7.f90 cff987fa6f89201aa37245231d20c023 gcc/testsuite/gfortran.dg/derived_external_function_1.f90 e08a65ae23ffa55d956b33c09e1c4cb8 gcc/testsuite/gfortran.dg/derived_function_interface_1.f90 fdf6add00f0bd7ce436abe942eb65cf3 gcc/testsuite/gfortran.dg/derived_init_1.f90 *************** ac9a36195c0d6f0b9d9d73ec3d2d92af gcc/te *** 74502,74507 **** --- 74935,74942 ---- 09fefa827f24e9354c2dd98289d16edc gcc/testsuite/gfortran.dg/do_check_15.f90 2093dcb437d711ea5082c8c916ce111a gcc/testsuite/gfortran.dg/do_check_16.f90 51f8e89de7b6288127162649a2373c31 gcc/testsuite/gfortran.dg/do_check_17.f90 + 8208b765fa6ad0c992d97f8d7c0d8f28 gcc/testsuite/gfortran.dg/do_check_18.f90 + b439dee45498b38c2c1c8750cf86c793 gcc/testsuite/gfortran.dg/do_check_19.f90 18a2fbef89d7cf46f122e07d5fbef517 gcc/testsuite/gfortran.dg/do_check_2.f90 fdb990ec0ab32e124633d2dae596183b gcc/testsuite/gfortran.dg/do_check_3.f90 60b42a940b5b42709d0639f8dbb5d358 gcc/testsuite/gfortran.dg/do_check_4.f90 *************** df7fd6f7581d27330f0013f9a3246e99 gcc/te *** 74691,74696 **** --- 75126,75133 ---- 72628f114c4fb8fab6905f4a0f29e09f gcc/testsuite/gfortran.dg/entry_21.f90 37e5c5438d0e0514b44e64686d3843da gcc/testsuite/gfortran.dg/entry_22.f90 0db0be3b4ced16a50d8129fd0aa3d8fa gcc/testsuite/gfortran.dg/entry_23.f + 736b641c8447236bf4ebf1806522d583 gcc/testsuite/gfortran.dg/entry_24.f90 + 6b39a2792de2f424e5fca65e4dd34f47 gcc/testsuite/gfortran.dg/entry_25.f90 0f79e5c423680a19e0f1ac49f4a91670 gcc/testsuite/gfortran.dg/entry_3.f90 cb2b2f8ba1b744201c0fb2d15ac0d01b gcc/testsuite/gfortran.dg/entry_4.f90 d9c60fad31625139f9e0a67c69d59e59 gcc/testsuite/gfortran.dg/entry_5.f90 *************** f9b7a86e792764d97f0b5939361c929d gcc/te *** 74735,74740 **** --- 75172,75178 ---- 01f5663dbbe448ffcae13215519a2976 gcc/testsuite/gfortran.dg/eoshift_6.f90 adae9a19ec811bbf55918625d353631f gcc/testsuite/gfortran.dg/eoshift_7.f90 66a20460746717880ff13c94688798f8 gcc/testsuite/gfortran.dg/eoshift_8.f90 + f68f16bc720811c1bd9729ac85be7f58 gcc/testsuite/gfortran.dg/eoshift_9.f90 d23c3cf960da52cea7987d80d427ca33 gcc/testsuite/gfortran.dg/eoshift_bounds_1.f90 498461068b03a38305d4fb9508177f88 gcc/testsuite/gfortran.dg/eoshift_large_1.f90 ab70a97d276544b94e7ac094c3d3e859 gcc/testsuite/gfortran.dg/equiv_1.f90 *************** c31057abbc67dd1afb06b5b8b376c2dc gcc/te *** 74946,74951 **** --- 75384,75390 ---- aa83a10582b82026c0f1fd503885f217 gcc/testsuite/gfortran.dg/fmt_missing_period_3.f eedec4631f954cd9b6e777e72d5b3a82 gcc/testsuite/gfortran.dg/fmt_nonchar_1.f90 20f752890ee33c6d8b403a1a2483e5a4 gcc/testsuite/gfortran.dg/fmt_nonchar_2.f90 + bd467bed8a3379220c5d40be824a24ce gcc/testsuite/gfortran.dg/fmt_nonchar_3.f90 d3d37d254644cdaff95d2388a5b7c0c5 gcc/testsuite/gfortran.dg/fmt_p_1.f90 982630e8e12fd9d9ef6044fd455a1556 gcc/testsuite/gfortran.dg/fmt_pf.f90 f4c40499fd82d7b0c80894e2cd0778b0 gcc/testsuite/gfortran.dg/fmt_read.f90 *************** ea4104a68bdd94cb4c7afb9454a3e105 gcc/te *** 75524,75529 **** --- 75963,75969 ---- f2ade342ab737629096e1f8a8a9e6de0 gcc/testsuite/gfortran.dg/gomp/declare-target-4.f90 cd36c1dc647fda3c47998959ae255f2e gcc/testsuite/gfortran.dg/gomp/declare-target-5.f90 fa41d6dd0ec4bc45beb3cbce04bf821d gcc/testsuite/gfortran.dg/gomp/depend-1.f90 + fa9370ecf5b16a8549b68753f644e7c0 gcc/testsuite/gfortran.dg/gomp/distribute-order-concurrent.f90 9757fd1aff0e97e5388764ec44be73fd gcc/testsuite/gfortran.dg/gomp/do-1.f90 a467591fa5a7397d62aff928d63eb0ad gcc/testsuite/gfortran.dg/gomp/fixed-1.f 8badbaa44c917a572bb465d31c983492 gcc/testsuite/gfortran.dg/gomp/flush-1.f90 *************** eedbd268a5555a87fcc139f65ed0fdc1 gcc/te *** 75783,75788 **** --- 76223,76229 ---- d683224b92f30f47ac260172c543709b gcc/testsuite/gfortran.dg/goto_6.f edb7ed608dd0713c11d3d0bdebea3e9d gcc/testsuite/gfortran.dg/goto_7.f 8fac5cb04c80b8be3572ef84e39fe23b gcc/testsuite/gfortran.dg/goto_8.f90 + 79d0c5316a46d0d56ffbeb5d356d0dc5 gcc/testsuite/gfortran.dg/goto_9.f90 2136d5343b3cf41829868ece4add6513 gcc/testsuite/gfortran.dg/graphite/PR53852.f90 34ddc4ca24116f3e2549c59ca57e39b0 gcc/testsuite/gfortran.dg/graphite/PR67518.f90 b668767cebd1d81ba2d2ca1138456cbe gcc/testsuite/gfortran.dg/graphite/block-1.f90 *************** d19c8b732b5cf70aa6edcc4165fe30b3 gcc/te *** 75966,75977 **** 26f7d10e3401a2366b42da4a4f97bd15 gcc/testsuite/gfortran.dg/ieee/rounding_1.f90 e8ea43c66fd6d11794019ae65955f295 gcc/testsuite/gfortran.dg/ieee/underflow_1.f90 124ba3e9f6c8b5f20acc161515766cff gcc/testsuite/gfortran.dg/illegal_boz_arg_1.f90 ca72e2369ff19137157ceaaa2012b721 gcc/testsuite/gfortran.dg/illegal_char.f90 d827b941652feab002a335b27a4dd9f2 gcc/testsuite/gfortran.dg/imag_1.f eaad0ac26fe911d75f0d0769ade8436c gcc/testsuite/gfortran.dg/impl_do_var_data.f90 ea74ac57d54861ae078dd5b164c4e692 gcc/testsuite/gfortran.dg/implicit_1.f90 faa9258aa87c8731e1568fbef0fa3cef gcc/testsuite/gfortran.dg/implicit_10.f90 ! ff44a28de56f83ea9834311300df991e gcc/testsuite/gfortran.dg/implicit_11.f90 6184b3481c1f6509fc79d9c70a4292ca gcc/testsuite/gfortran.dg/implicit_12.f90 f436694f48f2c6fe96b03f6c430bb0bb gcc/testsuite/gfortran.dg/implicit_13.f90 17443542eaaaf37a563791d33883766b gcc/testsuite/gfortran.dg/implicit_14.f90 --- 76407,76420 ---- 26f7d10e3401a2366b42da4a4f97bd15 gcc/testsuite/gfortran.dg/ieee/rounding_1.f90 e8ea43c66fd6d11794019ae65955f295 gcc/testsuite/gfortran.dg/ieee/underflow_1.f90 124ba3e9f6c8b5f20acc161515766cff gcc/testsuite/gfortran.dg/illegal_boz_arg_1.f90 + 4a93b827c3cbecf80132e133c9ffea76 gcc/testsuite/gfortran.dg/illegal_boz_arg_2.f90 + b8ee27c210d03cbdecd63b4186ae10dc gcc/testsuite/gfortran.dg/illegal_boz_arg_3.f90 ca72e2369ff19137157ceaaa2012b721 gcc/testsuite/gfortran.dg/illegal_char.f90 d827b941652feab002a335b27a4dd9f2 gcc/testsuite/gfortran.dg/imag_1.f eaad0ac26fe911d75f0d0769ade8436c gcc/testsuite/gfortran.dg/impl_do_var_data.f90 ea74ac57d54861ae078dd5b164c4e692 gcc/testsuite/gfortran.dg/implicit_1.f90 faa9258aa87c8731e1568fbef0fa3cef gcc/testsuite/gfortran.dg/implicit_10.f90 ! b4fab0ee56baf7b47483368784e3d428 gcc/testsuite/gfortran.dg/implicit_11.f90 6184b3481c1f6509fc79d9c70a4292ca gcc/testsuite/gfortran.dg/implicit_12.f90 f436694f48f2c6fe96b03f6c430bb0bb gcc/testsuite/gfortran.dg/implicit_13.f90 17443542eaaaf37a563791d33883766b gcc/testsuite/gfortran.dg/implicit_14.f90 *************** d0fdfb1260988468dbfc57fc49c04ccf gcc/te *** 76050,76055 **** --- 76493,76499 ---- 72b9f769cd2283ce9b7b556b1c93f39d gcc/testsuite/gfortran.dg/index_2.f90 6c6d1484cc1b9a1f8096ff70ef06c025 gcc/testsuite/gfortran.dg/index_3.f90 1e3290f670df03f4a15dc4b8eb731606 gcc/testsuite/gfortran.dg/index_4.f90 + 691597f0ec46c0a83eb0d9e74ff02fb3 gcc/testsuite/gfortran.dg/index_5.f90 c32bcbb681492fc8fc92c7fc08a343a1 gcc/testsuite/gfortran.dg/init_char_with_nonchar_ctr.f90 3b7a3a6914e202c00024fd409f044ac6 gcc/testsuite/gfortran.dg/init_flag_1.f90 1d493b9ebf831129455128eb3bc913e8 gcc/testsuite/gfortran.dg/init_flag_10.f90 *************** a34d48eea1d8d4734b2f4fd739f354fc gcc/te *** 76159,76165 **** 7664349957b7d6787138b3fd95966ad9 gcc/testsuite/gfortran.dg/inquire_size.f90 e5fa8c50769e7fcce10ed8a450b95bed gcc/testsuite/gfortran.dg/inquiry_type_ref_1.f08 47ca9f23756259e27215f6bb354820db gcc/testsuite/gfortran.dg/inquiry_type_ref_2.f90 ! 85efcb0b44b1fc0dbc9bb8062a08ce58 gcc/testsuite/gfortran.dg/inquiry_type_ref_3.f90 962d8a92334a686213a7137fec487e5c gcc/testsuite/gfortran.dg/inquiry_type_ref_4.f90 5bcc839204ebb7bdda5b2971ec2fa18a gcc/testsuite/gfortran.dg/inquiry_type_ref_5.f90 ccf33533a999932df9398a5043aa2663 gcc/testsuite/gfortran.dg/inquiry_type_ref_6.f90 --- 76603,76609 ---- 7664349957b7d6787138b3fd95966ad9 gcc/testsuite/gfortran.dg/inquire_size.f90 e5fa8c50769e7fcce10ed8a450b95bed gcc/testsuite/gfortran.dg/inquiry_type_ref_1.f08 47ca9f23756259e27215f6bb354820db gcc/testsuite/gfortran.dg/inquiry_type_ref_2.f90 ! dc7d54ba6e5343392a078289a8be6aa6 gcc/testsuite/gfortran.dg/inquiry_type_ref_3.f90 962d8a92334a686213a7137fec487e5c gcc/testsuite/gfortran.dg/inquiry_type_ref_4.f90 5bcc839204ebb7bdda5b2971ec2fa18a gcc/testsuite/gfortran.dg/inquiry_type_ref_5.f90 ccf33533a999932df9398a5043aa2663 gcc/testsuite/gfortran.dg/inquiry_type_ref_6.f90 *************** ba93579108c80828d584884c6d1a3d2a gcc/te *** 76186,76191 **** --- 76630,76636 ---- 7fb312ab28cce81b97498d8f3f4e4685 gcc/testsuite/gfortran.dg/intent_out_11.f90 844229c9eb8a37075774f7aa5ffaec68 gcc/testsuite/gfortran.dg/intent_out_12.f90 eaa197e83969427d3078aff95445bee7 gcc/testsuite/gfortran.dg/intent_out_13.f90 + 43d0dd409d7c93807035f978a18ed5c5 gcc/testsuite/gfortran.dg/intent_out_14.f90 633b564832f11b231ba2e100650127bb gcc/testsuite/gfortran.dg/intent_out_2.f90 88fc721c29050bdf0a2d0d7c4e316336 gcc/testsuite/gfortran.dg/intent_out_3.f90 a4fb1377a7e3fd7d6f3a448f1c020623 gcc/testsuite/gfortran.dg/intent_out_4.f90 *************** f8c7e022d2cfc56df6b55d414dce657a gcc/te *** 76330,76335 **** --- 76775,76781 ---- 02e405fa02b5f4208a935814170c08d1 gcc/testsuite/gfortran.dg/intrinsic_pack_3.f90 46c6f0a832541ad6ca2cbb32c01ab20d gcc/testsuite/gfortran.dg/intrinsic_pack_4.f90 68e85a91fdebd8186e987268b78d2812 gcc/testsuite/gfortran.dg/intrinsic_pack_5.f90 + 7a9982798705db4f1e587901e180224f gcc/testsuite/gfortran.dg/intrinsic_pack_6.f90 709c1a0557c6130d855211d157dc235b gcc/testsuite/gfortran.dg/intrinsic_param_1.f90 83483a96e8562d98a9a895352987cf66 gcc/testsuite/gfortran.dg/intrinsic_product_1.f90 66b3fac50616e3319e3fd00fcd93d9be gcc/testsuite/gfortran.dg/intrinsic_shadow_1.f03 *************** e4885845bf10e9e5ffc3dd22467dfdbe gcc/te *** 76471,76476 **** --- 76917,76923 ---- 3ea87bc1a1467cf1c31f4102e9687a8b gcc/testsuite/gfortran.dg/leadz_trailz_1.f90 e1a74d6b2c4042f286e1438d2a3b50bc gcc/testsuite/gfortran.dg/leadz_trailz_2.f90 3329f56791c14faaef6977e445b9d78d gcc/testsuite/gfortran.dg/leadz_trailz_3.f90 + 3792d7ea00efbc39994ab499e79cfd5d gcc/testsuite/gfortran.dg/len_trim.f90 603828b585296b52648297f368e12a8a gcc/testsuite/gfortran.dg/line_length_1.f 3d88660e061311dc6929921b7ea8a0bf gcc/testsuite/gfortran.dg/line_length_10.f90 b9215c113216ae2e0acfffc4a35eb451 gcc/testsuite/gfortran.dg/line_length_11.f90 *************** b49070ec831f64c85f249772acd9a59f gcc/te *** 76592,76599 **** --- 77039,77049 ---- 0b622e34294c6a21c1029f87514f6ad4 gcc/testsuite/gfortran.dg/mapping_1.f90 dedca43c52c260d19411f38a82dc83bb gcc/testsuite/gfortran.dg/mapping_2.f90 2aeec838c3d9844f1e53be622ad9336a gcc/testsuite/gfortran.dg/mapping_3.f90 + d8f1f620047c2bb6886815edcec3267b gcc/testsuite/gfortran.dg/maskl_1.f90 5da2f9c73e817a24b64df05a72384631 gcc/testsuite/gfortran.dg/masklr_1.F90 f6f60ff72b964c84a0c87c6c6e27a192 gcc/testsuite/gfortran.dg/masklr_2.F90 + 5cc38baf893c3c0d5284b73cc066a584 gcc/testsuite/gfortran.dg/masklr_3.f90 + d9dd88a6444c7cbe0f56c6f9404ff08d gcc/testsuite/gfortran.dg/maskr_1.f90 04fd8afc21ce98ab772712fec94448df gcc/testsuite/gfortran.dg/matmul_1.f90 914f17301d655a87d03174d3e0f5089d gcc/testsuite/gfortran.dg/matmul_10.f90 f578301d06fba98fdd392618b3c322f6 gcc/testsuite/gfortran.dg/matmul_11.f90 *************** e0fb9480b5079656bce9c871925a9aa5 gcc/te *** 76702,76707 **** --- 77152,77159 ---- 7ae1dc9a080c06592fac4665cb9fb6c7 gcc/testsuite/gfortran.dg/minmaxloc_12.f90 8894033f02cd34ecc6e21767cbb7911b gcc/testsuite/gfortran.dg/minmaxloc_13.f90 3d4d63dda28aedebbec019b848ab224e gcc/testsuite/gfortran.dg/minmaxloc_14.f90 + 945d985103f45290d951ee860966945d gcc/testsuite/gfortran.dg/minmaxloc_15.f90 + f4533add03b0fa40352daa7dd9a34253 gcc/testsuite/gfortran.dg/minmaxloc_16.f90 04175a5a67cc257e87134132faed701e gcc/testsuite/gfortran.dg/minmaxloc_2.f90 d01a31e0da5b62b2ae4bf92d05e0d307 gcc/testsuite/gfortran.dg/minmaxloc_3.f90 f740ddfd6cbf2afa8d24ebd39f421cf1 gcc/testsuite/gfortran.dg/minmaxloc_4.f90 *************** b0771aa8a26d9687e9c6aa4f179d533d gcc/te *** 76793,76799 **** 8d2c9767bfa9b064e0efaf0685019480 gcc/testsuite/gfortran.dg/move_alloc_5.f90 0912ae78a386198aad205729d12d008b gcc/testsuite/gfortran.dg/move_alloc_6.f90 0c726588b85b64cfb855301e343930a8 gcc/testsuite/gfortran.dg/move_alloc_7.f90 ! 71254f3390003edda7e2c46eb3990787 gcc/testsuite/gfortran.dg/move_alloc_8.f90 4f9cc1fa8df27c10af708433794537e6 gcc/testsuite/gfortran.dg/move_alloc_9.f90 340ebc9d35f808d2fff378f796de48ab gcc/testsuite/gfortran.dg/multiple_allocation_1.f90 6b63ce8de65e063edbff7748ee8ead42 gcc/testsuite/gfortran.dg/multiple_allocation_2.f90 --- 77245,77251 ---- 8d2c9767bfa9b064e0efaf0685019480 gcc/testsuite/gfortran.dg/move_alloc_5.f90 0912ae78a386198aad205729d12d008b gcc/testsuite/gfortran.dg/move_alloc_6.f90 0c726588b85b64cfb855301e343930a8 gcc/testsuite/gfortran.dg/move_alloc_7.f90 ! fb0f12b8bc0ac949db7d4b0ddefe80be gcc/testsuite/gfortran.dg/move_alloc_8.f90 4f9cc1fa8df27c10af708433794537e6 gcc/testsuite/gfortran.dg/move_alloc_9.f90 340ebc9d35f808d2fff378f796de48ab gcc/testsuite/gfortran.dg/multiple_allocation_1.f90 6b63ce8de65e063edbff7748ee8ead42 gcc/testsuite/gfortran.dg/multiple_allocation_2.f90 *************** d14391d3ef215e7090f2482b1fb51242 gcc/te *** 77054,77059 **** --- 77506,77512 ---- 967b958bce8187f291f4a772e4548afe gcc/testsuite/gfortran.dg/overload_1.f90 97e6af3887a4b07dce47c09a1d987e61 gcc/testsuite/gfortran.dg/overload_2.f90 bea7aebc5e916cdafeb1ba5550fca119 gcc/testsuite/gfortran.dg/overload_3.f90 + 239885761f5919c3b068bc250b0548c2 gcc/testsuite/gfortran.dg/overload_4.f90 ce01df6835a25865cf1b057eedd850d3 gcc/testsuite/gfortran.dg/overwrite_1.f 0513597d3f649ecf246ba3da77d0e486 gcc/testsuite/gfortran.dg/pack_assign_1.f90 804957c95450f8f92e8046cdde8da1fe gcc/testsuite/gfortran.dg/pack_bounds_1.f90 *************** efbb6ce3288a6ccfd0b8e00a0b638ffd gcc/te *** 77078,77083 **** --- 77531,77537 ---- 8b0b6b89a6f9358c1b8def3660850c03 gcc/testsuite/gfortran.dg/parameter_array_init_5.f90 d46e6ca33ad0c6569ce38b09a28782f5 gcc/testsuite/gfortran.dg/parameter_array_init_6.f90 61cf2ad0a3d886ac7684b6999c179389 gcc/testsuite/gfortran.dg/parameter_array_init_7.f90 + 2705006561c3a2451da51763e83871c3 gcc/testsuite/gfortran.dg/parameter_array_init_8.f90 32c99065e26b34dfb314fdea08f82fe4 gcc/testsuite/gfortran.dg/parameter_array_ref_1.f90 302ab3504a83b13e3ec7d1096f84ae36 gcc/testsuite/gfortran.dg/parameter_array_ref_2.f90 23dcadce604501908a5e668b385325f3 gcc/testsuite/gfortran.dg/parameter_array_section_1.f90 *************** f67cfd0ae4d38f1ca5dc8d7f6e954087 gcc/te *** 77127,77133 **** 467e7b0f7ffea3a05b9ac591c2ac05ee gcc/testsuite/gfortran.dg/pdt_3.f03 1f42496cb72089bef450a6df6a13c299 gcc/testsuite/gfortran.dg/pdt_30.f90 d586eb557b29a67b9fa981d71d443c8b gcc/testsuite/gfortran.dg/pdt_31.f03 ! 17fa57111f7b9c176c9f9fdf95c974cf gcc/testsuite/gfortran.dg/pdt_4.f03 65d2ad728417ad3174fc1ce2b51a458d gcc/testsuite/gfortran.dg/pdt_6.f03 d2c9dae0c6e2385c5712aba8e12a70ba gcc/testsuite/gfortran.dg/pdt_7.f03 e21f38a2db39f95405441b61c12cf1e6 gcc/testsuite/gfortran.dg/pdt_8.f03 --- 77581,77587 ---- 467e7b0f7ffea3a05b9ac591c2ac05ee gcc/testsuite/gfortran.dg/pdt_3.f03 1f42496cb72089bef450a6df6a13c299 gcc/testsuite/gfortran.dg/pdt_30.f90 d586eb557b29a67b9fa981d71d443c8b gcc/testsuite/gfortran.dg/pdt_31.f03 ! 9779f8b6736c414d2620a7f8234f3e40 gcc/testsuite/gfortran.dg/pdt_4.f03 65d2ad728417ad3174fc1ce2b51a458d gcc/testsuite/gfortran.dg/pdt_6.f03 d2c9dae0c6e2385c5712aba8e12a70ba gcc/testsuite/gfortran.dg/pdt_7.f03 e21f38a2db39f95405441b61c12cf1e6 gcc/testsuite/gfortran.dg/pdt_8.f03 *************** ae06d6761f5e36e2c2e46067aa089b8e gcc/te *** 77201,77206 **** --- 77655,77661 ---- e459085c84d8d965d44b2c8d69d7d0f3 gcc/testsuite/gfortran.dg/pointer_intent_6.f90 32cd4c061b4a40c2cc07c876ae54d223 gcc/testsuite/gfortran.dg/pointer_intent_7.f90 d0b24aa5ebe04c5c89cd3403f4acfda9 gcc/testsuite/gfortran.dg/pointer_intent_8.f90 + 04a2e00b668250959b8328b3402a4407 gcc/testsuite/gfortran.dg/pointer_intent_9.f90 4cb0e95eb0d20ee0fcc1725ab11d6144 gcc/testsuite/gfortran.dg/pointer_remapping_1.f90 cb90f303a1add40fdcfa44f9441d6094 gcc/testsuite/gfortran.dg/pointer_remapping_10.f90 6b175e97afb4595e4ac40a6f738d0650 gcc/testsuite/gfortran.dg/pointer_remapping_2.f03 *************** a3ab8fbef738997039cfd45f350461a3 gcc/te *** 77230,77236 **** --- 77685,77715 ---- e13b5dd50c332ea865cb6fabb5f79f29 gcc/testsuite/gfortran.dg/pr100154.f90 fc0ae38e4fdc2d7761aba57181c97b51 gcc/testsuite/gfortran.dg/pr100551.f90 17f130e627232745d6279696b6984514 gcc/testsuite/gfortran.dg/pr100949.f90 + 3838974931fe610997470a0a7f2e3a97 gcc/testsuite/gfortran.dg/pr100950.f90 00eaff2aeb07d3b9bbb1b67083921aaf gcc/testsuite/gfortran.dg/pr101158.f90 + 515f43ee1c3a7f37818b2b4bd6abedd7 gcc/testsuite/gfortran.dg/pr101327.f90 + 215e51d0e3da3316aa6f9d992ac2c7d7 gcc/testsuite/gfortran.dg/pr101329.f90 + afe21b866be9162c6b654dc6771e6ead gcc/testsuite/gfortran.dg/pr101514.f90 + 07e5cf776d8ec123397377da02e784fb gcc/testsuite/gfortran.dg/pr101536.f90 + 43d1631cdea391ffd9bdb8fc395a7ae5 gcc/testsuite/gfortran.dg/pr101762.f90 + 75ccec9005d1d4a2d9ed0cea1bf10434 gcc/testsuite/gfortran.dg/pr102332.f90 + 1dd53d463caf1e16e47d0fe9cbf2309f gcc/testsuite/gfortran.dg/pr102366.f90 + fc5031b16be6a0dc4152f151793f4acb gcc/testsuite/gfortran.dg/pr102458.f90 + cbd40bc334c217d37c198b1f27373810 gcc/testsuite/gfortran.dg/pr102458b.f90 + 09759ba73ae30c3a54be532d97b7f526 gcc/testsuite/gfortran.dg/pr102520.f90 + c081e1f510a2d68ec176356111dab188 gcc/testsuite/gfortran.dg/pr102685.f90 + d99cea26823109c0bb853b42df152999 gcc/testsuite/gfortran.dg/pr102715.f90 + f28998ba16e7a78633a9de3d5eaf0667 gcc/testsuite/gfortran.dg/pr102816.f90 + cc6ac3aa934c104c85fad8e43ae6985d gcc/testsuite/gfortran.dg/pr102817.f90 + 87fa8e20851e07d06d4d5991b6fc240d gcc/testsuite/gfortran.dg/pr102860.f90 + a082b0c5fdbc266f00ae264494538e49 gcc/testsuite/gfortran.dg/pr103505.f90 + dc7a57f897711dfb7a3fba377198c10c gcc/testsuite/gfortran.dg/pr103588.f90 + a27b232d198fc2463c04af17903b1b4c gcc/testsuite/gfortran.dg/pr103606.f90 + ea7b00fcccc1df091b8087b16e502d92 gcc/testsuite/gfortran.dg/pr103607.f90 + e83cb447f532a018a571c0eb3b9813ac gcc/testsuite/gfortran.dg/pr103609.f90 + 448c7638e7741c015d95260e6491d8fa gcc/testsuite/gfortran.dg/pr103692.f90 + 9c2a780c1ca6904bb5164e252d9e5455 gcc/testsuite/gfortran.dg/pr104210.f90 + 73191330286eb3bf2c13130685c97c95 gcc/testsuite/gfortran.dg/pr104211.f90 984f8307f36d56a0b48b5acce2dd5eb5 gcc/testsuite/gfortran.dg/pr12884.f 64075248b9d1bffd6f380bb4e2a6eae0 gcc/testsuite/gfortran.dg/pr15129.f90 e9cbd51db4e16292fc5dd1fead2e5a49 gcc/testsuite/gfortran.dg/pr15140.f90 *************** c37cf579044bfef981cfa2ddcb25a453 gcc/te *** 77525,77530 **** --- 78004,78010 ---- 0bfa6e741c486d27fbd1d68e80ab467d gcc/testsuite/gfortran.dg/pr67616.f90 f7b255646efb403e4fd6d6c4c721b6c6 gcc/testsuite/gfortran.dg/pr67802.f90 9cfe60384f2e4f1cbec4ea41ea7e4e44 gcc/testsuite/gfortran.dg/pr67803.f90 + 63f85252504511c380cbe33f58073c38 gcc/testsuite/gfortran.dg/pr67804.f90 41e85145304080db4dd22c98def9ee20 gcc/testsuite/gfortran.dg/pr67805.f90 d67c65ab4e579ec1a9ed16fa540e87f1 gcc/testsuite/gfortran.dg/pr67805_2.f90 a11d2cdadd8d3e42bccb3afdcfe01f97 gcc/testsuite/gfortran.dg/pr67884.f90 *************** a11d2cdadd8d3e42bccb3afdcfe01f97 gcc/te *** 77532,77545 **** 60853550b35c1efdadb2d417aa6eec8b gcc/testsuite/gfortran.dg/pr67900.f90 658762833e1eac5a3f3f05e0147153f1 gcc/testsuite/gfortran.dg/pr67939.f90 954cb84b6364f949ad2e6702e8a469d0 gcc/testsuite/gfortran.dg/pr67987.f90 ! 9c7060d377f62548d71c01d004b6256d gcc/testsuite/gfortran.dg/pr68019.f90 ba9c0a45b4114d6c3d80129312c3731c gcc/testsuite/gfortran.dg/pr68053.f90 6d8a1b66ddd71f72cd6f8b2f956d1e1a gcc/testsuite/gfortran.dg/pr68054.f90 0aa9836d6fb22c69b7e76e9f495f4762 gcc/testsuite/gfortran.dg/pr68055.f90 f15d85cfec6e3cdd76e6667f5c30ef44 gcc/testsuite/gfortran.dg/pr68078.f90 8b70141743602a92904051fd2d8d35fe gcc/testsuite/gfortran.dg/pr68146.f 72204a8f7a7d531531023b6f9efc86ff gcc/testsuite/gfortran.dg/pr68151.f90 ! ee9456d99483e48af158f154c01b835c gcc/testsuite/gfortran.dg/pr68153.f90 763b223410c19c6e68bea4f15ed3fef6 gcc/testsuite/gfortran.dg/pr68154.f90 c0ada255b8d4b02a2bf3f62ec3fd9223 gcc/testsuite/gfortran.dg/pr68224.f90 4239cbc5229572dbb1b8db5b9e534c59 gcc/testsuite/gfortran.dg/pr68227.f90 --- 78012,78025 ---- 60853550b35c1efdadb2d417aa6eec8b gcc/testsuite/gfortran.dg/pr67900.f90 658762833e1eac5a3f3f05e0147153f1 gcc/testsuite/gfortran.dg/pr67939.f90 954cb84b6364f949ad2e6702e8a469d0 gcc/testsuite/gfortran.dg/pr67987.f90 ! 047ea7e5f868eab9ff2e8c9f478332a4 gcc/testsuite/gfortran.dg/pr68019.f90 ba9c0a45b4114d6c3d80129312c3731c gcc/testsuite/gfortran.dg/pr68053.f90 6d8a1b66ddd71f72cd6f8b2f956d1e1a gcc/testsuite/gfortran.dg/pr68054.f90 0aa9836d6fb22c69b7e76e9f495f4762 gcc/testsuite/gfortran.dg/pr68055.f90 f15d85cfec6e3cdd76e6667f5c30ef44 gcc/testsuite/gfortran.dg/pr68078.f90 8b70141743602a92904051fd2d8d35fe gcc/testsuite/gfortran.dg/pr68146.f 72204a8f7a7d531531023b6f9efc86ff gcc/testsuite/gfortran.dg/pr68151.f90 ! 919a27f3a4cfbc08b7e864601ba56e0f gcc/testsuite/gfortran.dg/pr68153.f90 763b223410c19c6e68bea4f15ed3fef6 gcc/testsuite/gfortran.dg/pr68154.f90 c0ada255b8d4b02a2bf3f62ec3fd9223 gcc/testsuite/gfortran.dg/pr68224.f90 4239cbc5229572dbb1b8db5b9e534c59 gcc/testsuite/gfortran.dg/pr68227.f90 *************** aa6073708fcde459f6b44a5e294fd6b0 gcc/te *** 77583,77589 **** 858edd0f297501435fdd3e07e065201c gcc/testsuite/gfortran.dg/pr70754.f90 ba437378350349e006ee9be8afd0020e gcc/testsuite/gfortran.dg/pr70853.f90 386c85829c4e2571e0db7949c25f5113 gcc/testsuite/gfortran.dg/pr70870_1.f90 ! 0e424f05f2fdeb786b877ace2617112d gcc/testsuite/gfortran.dg/pr70931.f90 768e159c79aa0aa1e1ae6e13122ed1b2 gcc/testsuite/gfortran.dg/pr70937.f90 a16162b0759105febc1efc1311184688 gcc/testsuite/gfortran.dg/pr71047.f08 2adcf4116aa4365895bb3d287e182ddd gcc/testsuite/gfortran.dg/pr71067_1.f90 --- 78063,78069 ---- 858edd0f297501435fdd3e07e065201c gcc/testsuite/gfortran.dg/pr70754.f90 ba437378350349e006ee9be8afd0020e gcc/testsuite/gfortran.dg/pr70853.f90 386c85829c4e2571e0db7949c25f5113 gcc/testsuite/gfortran.dg/pr70870_1.f90 ! 8772cb0c6f3bc092b7d4ae134b437b94 gcc/testsuite/gfortran.dg/pr70931.f90 768e159c79aa0aa1e1ae6e13122ed1b2 gcc/testsuite/gfortran.dg/pr70937.f90 a16162b0759105febc1efc1311184688 gcc/testsuite/gfortran.dg/pr71047.f08 2adcf4116aa4365895bb3d287e182ddd gcc/testsuite/gfortran.dg/pr71067_1.f90 *************** d1aef01880835db4a541fe2fb5d9b4b4 gcc/te *** 77671,77676 **** --- 78151,78157 ---- 58ba9db10feed5572dd1e17134e5d88c gcc/testsuite/gfortran.dg/pr81889.f90 e338cfba2f466abedf9af92b52cd6fb3 gcc/testsuite/gfortran.dg/pr82004.f90 b6ff04901e3aee18765a74bf65804e38 gcc/testsuite/gfortran.dg/pr82253.f90 + 344be7c0602202457870166d368441e0 gcc/testsuite/gfortran.dg/pr82314.f90 7f04eca318ca64e1442ceabc31fab9fb gcc/testsuite/gfortran.dg/pr82397.f 616772c135ee9b14c410dcd23fdbc3e4 gcc/testsuite/gfortran.dg/pr82973.f90 0a918cecf6f52a31004b77728cb30038 gcc/testsuite/gfortran.dg/pr83113.f90 *************** bee8bc29b8ca49cd7a363195e6cdb6d0 gcc/te *** 77872,77878 **** 543493ac9c37f3e29f7d727af1ecad82 gcc/testsuite/gfortran.dg/pr93600_2.f90 e0fe2bc5bc29092b239eac7f6bd6642a gcc/testsuite/gfortran.dg/pr93601.f90 7fba8006db48550444d5426908e7bd21 gcc/testsuite/gfortran.dg/pr93603.f90 ! 660d1e3a2054b4394f234c780df1e3a7 gcc/testsuite/gfortran.dg/pr93604.f90 3a950099baf4b594b439137360e76929 gcc/testsuite/gfortran.dg/pr93685_1.f90 54e6c162457d096a85a702a7d61bb2c6 gcc/testsuite/gfortran.dg/pr93685_2.f90 72a93ce5a3a0e7f069659dbadadfb4a9 gcc/testsuite/gfortran.dg/pr93686_1.f90 --- 78353,78359 ---- 543493ac9c37f3e29f7d727af1ecad82 gcc/testsuite/gfortran.dg/pr93600_2.f90 e0fe2bc5bc29092b239eac7f6bd6642a gcc/testsuite/gfortran.dg/pr93601.f90 7fba8006db48550444d5426908e7bd21 gcc/testsuite/gfortran.dg/pr93603.f90 ! 7eccbef6ebf6b0e510ef57d5a859de0f gcc/testsuite/gfortran.dg/pr93604.f90 3a950099baf4b594b439137360e76929 gcc/testsuite/gfortran.dg/pr93685_1.f90 54e6c162457d096a85a702a7d61bb2c6 gcc/testsuite/gfortran.dg/pr93685_2.f90 72a93ce5a3a0e7f069659dbadadfb4a9 gcc/testsuite/gfortran.dg/pr93686_1.f90 *************** e9131ae038c1f4f18b0f72da1bf1423e gcc/te *** 77975,77981 **** a78afb0368bddc411548d63311098918 gcc/testsuite/gfortran.dg/pr98016.f90 0103f634279cccfe329c626d7b20e2fa gcc/testsuite/gfortran.dg/pr98017.f90 30379f7e459be0df7dde3d8fe2ad8502 gcc/testsuite/gfortran.dg/pr98284.f90 ! 5ba915c22c408eb2d242fc2ddb25c95f gcc/testsuite/gfortran.dg/pr98411.f90 661afc7f73f5e470bae7d7efa0a06cbd gcc/testsuite/gfortran.dg/pr98661.f90 6f14584e7c3845718818a0eab4f992ff gcc/testsuite/gfortran.dg/pr98974.F90 ab9d92c634833928d03c56d815ba4f69 gcc/testsuite/gfortran.dg/pr99060.f90 --- 78456,78462 ---- a78afb0368bddc411548d63311098918 gcc/testsuite/gfortran.dg/pr98016.f90 0103f634279cccfe329c626d7b20e2fa gcc/testsuite/gfortran.dg/pr98017.f90 30379f7e459be0df7dde3d8fe2ad8502 gcc/testsuite/gfortran.dg/pr98284.f90 ! 8a48e2264b578c77fe953f48d587af4e gcc/testsuite/gfortran.dg/pr98411.f90 661afc7f73f5e470bae7d7efa0a06cbd gcc/testsuite/gfortran.dg/pr98661.f90 6f14584e7c3845718818a0eab4f992ff gcc/testsuite/gfortran.dg/pr98974.F90 ab9d92c634833928d03c56d815ba4f69 gcc/testsuite/gfortran.dg/pr99060.f90 *************** d8a9f1260e74e0077151d976c7d10349 gcc/te *** 78377,78382 **** --- 78858,78864 ---- 2e7d5fec04c2c7f37db35971e145eb94 gcc/testsuite/gfortran.dg/recursive_parameter_1.f90 83a0ac39bfc50ad3e26215503647388b gcc/testsuite/gfortran.dg/recursive_reference_1.f90 1d1c7d54db9ad825f6d03ee25b705983 gcc/testsuite/gfortran.dg/recursive_reference_2.f90 + ef770cfdc6b95e1ae9b92510ab8715be gcc/testsuite/gfortran.dg/recursive_reference_3.f90 a7003da5c2f301959c7f21193538e7eb gcc/testsuite/gfortran.dg/recursive_stack.f90 367c718b77a74a1255ad2e38adeacfb7 gcc/testsuite/gfortran.dg/recursive_statement_functions.f90 04deba654b2206894b96a6288761847b gcc/testsuite/gfortran.dg/redefined_intrinsic_assignment.f90 *************** d3828a0469af571ee4a9715d5b69ba18 gcc/te *** 78398,78405 **** 28e648e5d9b58d4e60affb7acc6a4a36 gcc/testsuite/gfortran.dg/reshape_4.f90 2872b99cf6c4e5736159d59646eacf73 gcc/testsuite/gfortran.dg/reshape_5.f90 7f3d8930925f93d0224885fccf19768f gcc/testsuite/gfortran.dg/reshape_6.f90 ! fa9603988fa43c3b4979b2745c515cd4 gcc/testsuite/gfortran.dg/reshape_7.f90 3221ae5d20e5dd3ab4a963d81218121e gcc/testsuite/gfortran.dg/reshape_8.f90 c7b463bfe5fc5984c177ad3ceb638178 gcc/testsuite/gfortran.dg/reshape_empty_1.f03 a427cc5a5e1ff29f34ae42c060001529 gcc/testsuite/gfortran.dg/reshape_order_1.f90 76cb0afc35b5327c7c7e5d8ddad735c6 gcc/testsuite/gfortran.dg/reshape_order_2.f90 --- 78880,78888 ---- 28e648e5d9b58d4e60affb7acc6a4a36 gcc/testsuite/gfortran.dg/reshape_4.f90 2872b99cf6c4e5736159d59646eacf73 gcc/testsuite/gfortran.dg/reshape_5.f90 7f3d8930925f93d0224885fccf19768f gcc/testsuite/gfortran.dg/reshape_6.f90 ! 9dfec6bab6dc17d313fcc63e0bca557c gcc/testsuite/gfortran.dg/reshape_7.f90 3221ae5d20e5dd3ab4a963d81218121e gcc/testsuite/gfortran.dg/reshape_8.f90 + 4ccd663438210e60fca030952535b706 gcc/testsuite/gfortran.dg/reshape_9.f90 c7b463bfe5fc5984c177ad3ceb638178 gcc/testsuite/gfortran.dg/reshape_empty_1.f03 a427cc5a5e1ff29f34ae42c060001529 gcc/testsuite/gfortran.dg/reshape_order_1.f90 76cb0afc35b5327c7c7e5d8ddad735c6 gcc/testsuite/gfortran.dg/reshape_order_2.f90 *************** a8b8a98f768e4e1e0e5753a852ef5533 gcc/te *** 78409,78414 **** --- 78892,78898 ---- 5fd9fe976b0de499cf640ffc69ee816b gcc/testsuite/gfortran.dg/reshape_pad_1.f90 a83298fcf93f4b95a8fd48b3972e3d75 gcc/testsuite/gfortran.dg/reshape_rank7.f90 82e933fdaa16cdd8a68cea29568b24f8 gcc/testsuite/gfortran.dg/reshape_shape_1.f90 + 7b14b9fbbd15e10935eeb8dfceb9487d gcc/testsuite/gfortran.dg/reshape_shape_2.f90 90dad8b6cf8141a17677751052b77127 gcc/testsuite/gfortran.dg/reshape_source_size_1.f90 afbbe7a3662a692cb231ca26135afc31 gcc/testsuite/gfortran.dg/reshape_transpose_1.f90 b60cb27a87581046d44ce97bb381b07e gcc/testsuite/gfortran.dg/reshape_zerosize_1.f90 *************** b7f6bbbf397c86a8d56e483b51925910 gcc/te *** 78460,78469 **** --- 78944,78955 ---- 9ea656cf108583ba6666fa98e506c8eb gcc/testsuite/gfortran.dg/scale_1.f90 3b618ef9e1a1595d5b6c02293da45582 gcc/testsuite/gfortran.dg/scan_1.f90 addd1043771dffce28807852233ccb30 gcc/testsuite/gfortran.dg/scan_2.f90 + 02c51b95054b7a8acd0bbb3b699b1d23 gcc/testsuite/gfortran.dg/scan_3.f90 7541521a103067ac9ce9a5606e6f621a gcc/testsuite/gfortran.dg/scratch_1.f90 38a7c558deef461cddfb279a5119604b gcc/testsuite/gfortran.dg/secnds-1.f 5b1985cdecce2ba9c6a5f3f91b6f9bd7 gcc/testsuite/gfortran.dg/secnds.f 8b29dba04c0b7c476ba5ab8cfd2354cc gcc/testsuite/gfortran.dg/select_1.f90 + 7e92ea814e2041fbd452049e85da9d70 gcc/testsuite/gfortran.dg/select_10.f90 b130cf5d79de16257965eb6e9e94cb09 gcc/testsuite/gfortran.dg/select_2.f90 8240eae2c8bfc8dd6337b31af59965be gcc/testsuite/gfortran.dg/select_3.f90 a8915b84412b8a80d6a5acd416b43e64 gcc/testsuite/gfortran.dg/select_4.f90 *************** a8915b84412b8a80d6a5acd416b43e64 gcc/te *** 78471,78476 **** --- 78957,78963 ---- 9e82f5f55056c564d24a8093166b6705 gcc/testsuite/gfortran.dg/select_6.f90 423eb8a7672e7c232252493e95d51cdd gcc/testsuite/gfortran.dg/select_7.f90 f9b829c93dd5a44a9568469b7e0deda1 gcc/testsuite/gfortran.dg/select_8.f90 + fe8536ad63d0a16274b5bc4f784951a1 gcc/testsuite/gfortran.dg/select_9.f90 b7f0fac05667f630e8f9b90aebe1fea4 gcc/testsuite/gfortran.dg/select_char_1.f90 4bf875de20300472ec17d50aced7e0ab gcc/testsuite/gfortran.dg/select_char_2.f90 9f98379d27ae7878917fe08a1c19379f gcc/testsuite/gfortran.dg/select_char_3.f90 *************** c137ead9ed9a3cbd4ca5f75d50965b1c gcc/te *** 78544,78549 **** --- 79031,79038 ---- e5ae2b5b89173ed8361161ef10e352e2 gcc/testsuite/gfortran.dg/sequence_types_1.f90 df7acd1342733a419754eb5cbcbc9a3f gcc/testsuite/gfortran.dg/set_vm_limit.c 8c21b488e7773e67f9472b6a064868b9 gcc/testsuite/gfortran.dg/shape_1.f90 + 2a136a103d2e76c84d90569febf9b783 gcc/testsuite/gfortran.dg/shape_10.f90 + 052a4b2bd7fe6fdc1737283f758ffaec gcc/testsuite/gfortran.dg/shape_11.f90 83165f49617d33a60724f58032240b93 gcc/testsuite/gfortran.dg/shape_2.f90 3c6dfb31a52f344f631d36f369e069bf gcc/testsuite/gfortran.dg/shape_3.f90 3a839d4a8d0dfd6f0b50c08763804e26 gcc/testsuite/gfortran.dg/shape_4.f90 *************** b1e9e988b182ce4ee733b3faaad8454b gcc/te *** 78755,78761 **** dccf53db514265c48f2c92d1e6aa8319 gcc/testsuite/gfortran.dg/substr_3.f 6d054e85164109252d8cb0e433ff57ad gcc/testsuite/gfortran.dg/substr_4.f 9cbfabac96be8748ebd2e7c0bed4bb91 gcc/testsuite/gfortran.dg/substr_5.f90 ! 6fc9f98159d986738e731d5b07a7109b gcc/testsuite/gfortran.dg/substr_6.f90 5aacec7f3b63a41c71f1f83e8d5bcdb0 gcc/testsuite/gfortran.dg/substr_7.f90 3149d14be2bfd57fd4b2dbd5c1c8ebaa gcc/testsuite/gfortran.dg/substr_8.f90 e3400ad1b7ab61f1cdd7fd15102819e1 gcc/testsuite/gfortran.dg/substr_9.f90 --- 79244,79250 ---- dccf53db514265c48f2c92d1e6aa8319 gcc/testsuite/gfortran.dg/substr_3.f 6d054e85164109252d8cb0e433ff57ad gcc/testsuite/gfortran.dg/substr_4.f 9cbfabac96be8748ebd2e7c0bed4bb91 gcc/testsuite/gfortran.dg/substr_5.f90 ! 4d48cdf844980a4533d1ed67dbb2a0a4 gcc/testsuite/gfortran.dg/substr_6.f90 5aacec7f3b63a41c71f1f83e8d5bcdb0 gcc/testsuite/gfortran.dg/substr_7.f90 3149d14be2bfd57fd4b2dbd5c1c8ebaa gcc/testsuite/gfortran.dg/substr_8.f90 e3400ad1b7ab61f1cdd7fd15102819e1 gcc/testsuite/gfortran.dg/substr_9.f90 *************** c00e10e2dedc2a4d4050941a3ae36ab2 gcc/te *** 78796,78806 **** --- 79285,79297 ---- d175a283aab741037bd1bdee76a76fa5 gcc/testsuite/gfortran.dg/transfer_array_intrinsic_4.f90 c5cef3aa9c3895b4e6b38e993481ff14 gcc/testsuite/gfortran.dg/transfer_array_intrinsic_5.f90 fdabd8c65dcb8fb1bfe06c29c937c219 gcc/testsuite/gfortran.dg/transfer_assumed_size_1.f90 + 1c08633181f8b50ad8fd08ed1f4f207f gcc/testsuite/gfortran.dg/transfer_char_kind4.f90 0d5a3d18a1eeb0de1ca65d86e1cd68f8 gcc/testsuite/gfortran.dg/transfer_check_1.f90 9a2953b8d7639d3d68a7693a2cb88846 gcc/testsuite/gfortran.dg/transfer_check_2.f90 b16324a7bb85ab60eb71418a0761e565 gcc/testsuite/gfortran.dg/transfer_check_3.f90 1374d10203871ed68c005e2af626fbeb gcc/testsuite/gfortran.dg/transfer_check_4.f90 ad625f0340741a09e4be8d42e070139e gcc/testsuite/gfortran.dg/transfer_check_5.f90 + 769481a8d23349d31daa8c1c4bdda73b gcc/testsuite/gfortran.dg/transfer_check_6.f90 76406e3436f42466e7735ed9f5762bd7 gcc/testsuite/gfortran.dg/transfer_class_1.f90 7f1199fe5fa90085dcbb4f81cbcf7062 gcc/testsuite/gfortran.dg/transfer_class_2.f90 4003da30901edcfc6adf19924dc746a2 gcc/testsuite/gfortran.dg/transfer_class_3.f90 *************** fca7571238596b88ba0b767cd69041d7 gcc/te *** 78818,78826 **** 61dc845871f386f900b0ac50b8a1ed35 gcc/testsuite/gfortran.dg/transfer_resolve_4.f90 f0e0bb83d7a933084afe0235adc91044 gcc/testsuite/gfortran.dg/transfer_simplify_1.f90 0e37859572cdbc7ec9804e5e5f50a0d9 gcc/testsuite/gfortran.dg/transfer_simplify_10.f90 ! 28072dd7f3eef057672f7c38728a4ba6 gcc/testsuite/gfortran.dg/transfer_simplify_11.f90 7a9020fc2f84bc7f31ff4cf8822de2ce gcc/testsuite/gfortran.dg/transfer_simplify_12.f90 ! 37010897279c0577b0975bdcac554324 gcc/testsuite/gfortran.dg/transfer_simplify_2.f90 dde58017dce31b9f86dea653194c266e gcc/testsuite/gfortran.dg/transfer_simplify_3.f90 f969144a4ccabad799704e5ecdde6afc gcc/testsuite/gfortran.dg/transfer_simplify_4.f90 7a2c72c430eb2b6cf677f63ffc1ac705 gcc/testsuite/gfortran.dg/transfer_simplify_5.f90 --- 79309,79319 ---- 61dc845871f386f900b0ac50b8a1ed35 gcc/testsuite/gfortran.dg/transfer_resolve_4.f90 f0e0bb83d7a933084afe0235adc91044 gcc/testsuite/gfortran.dg/transfer_simplify_1.f90 0e37859572cdbc7ec9804e5e5f50a0d9 gcc/testsuite/gfortran.dg/transfer_simplify_10.f90 ! 7dbbad160b2cec1a34861ec259ef8f69 gcc/testsuite/gfortran.dg/transfer_simplify_11.f90 7a9020fc2f84bc7f31ff4cf8822de2ce gcc/testsuite/gfortran.dg/transfer_simplify_12.f90 ! 46809d4ffd9fbb0d8d976bcf70c84e44 gcc/testsuite/gfortran.dg/transfer_simplify_13.f90 ! 033fcf43c73ba63f468dc3499e3bdfb2 gcc/testsuite/gfortran.dg/transfer_simplify_15.f90 ! 4e36501f895ecc45ab0347d5a28ef427 gcc/testsuite/gfortran.dg/transfer_simplify_2.f90 dde58017dce31b9f86dea653194c266e gcc/testsuite/gfortran.dg/transfer_simplify_3.f90 f969144a4ccabad799704e5ecdde6afc gcc/testsuite/gfortran.dg/transfer_simplify_4.f90 7a2c72c430eb2b6cf677f63ffc1ac705 gcc/testsuite/gfortran.dg/transfer_simplify_5.f90 *************** a7d68db5c429562164ea47edc8677d14 gcc/te *** 78982,78987 **** --- 79475,79482 ---- b432d7fb6a6aa41a4117f93a3fb4acb3 gcc/testsuite/gfortran.dg/typebound_proc_9.f03 a9c38f145300eee1aaca2ccee4d418fd gcc/testsuite/gfortran.dg/typed_subroutine_1.f90 5fcbccbbe6f25c7610a63673951af1d0 gcc/testsuite/gfortran.dg/ubound_1.f90 + ddea8e97d88b939147b22730616832d2 gcc/testsuite/gfortran.dg/ubsan/pr101624.f90 + ebbb3b8f806e83076bdf2e11cf9dc359 gcc/testsuite/gfortran.dg/ubsan/ubsan.exp 1623cb39a42976237e7817a8a94f1a4a gcc/testsuite/gfortran.dg/unary_operator.f90 0e692a977ecc4ab86f2eddee444794b4 gcc/testsuite/gfortran.dg/uncommon_block_data_1.f90 a3fe3d5aed286d45e58533ee6cd37dd9 gcc/testsuite/gfortran.dg/unconstrained_commons.f *************** c5c095a1207e8ebb9df3221cce7dd889 gcc/te *** 79030,79035 **** --- 79525,79531 ---- 260aa02b581b990fd7887506c5bb6013 gcc/testsuite/gfortran.dg/unlimited_polymorphic_30.f03 2ea3bb8b224120f1160eb2534f30fadc gcc/testsuite/gfortran.dg/unlimited_polymorphic_31.f03 b6a9d39af548692185921a711ee7653a gcc/testsuite/gfortran.dg/unlimited_polymorphic_32.f03 + a4fe286ac5e85ed8eddf004026c98874 gcc/testsuite/gfortran.dg/unlimited_polymorphic_33.f90 27f9d22da25fab9449a6d82ad7501184 gcc/testsuite/gfortran.dg/unlimited_polymorphic_4.f03 f272bdc78ed6796b164ff55bff0c5aae gcc/testsuite/gfortran.dg/unlimited_polymorphic_5.f90 d6bbc583acbb38fcb393377492b06d29 gcc/testsuite/gfortran.dg/unlimited_polymorphic_6.f90 *************** a9914f639ee6c6e95daf38d8cd34e2d8 gcc/te *** 79240,79245 **** --- 79736,79742 ---- f04149fa9287219afced4adec2ff3068 gcc/testsuite/gfortran.dg/vector_subscript_7.f90 924936955033d95bb05336b4c435341a gcc/testsuite/gfortran.dg/vector_subscript_bound_1.f90 81a2acf083f450e5ea888954fa1d6911 gcc/testsuite/gfortran.dg/verify_2.f90 + 199ec76a3916374b75c6751433a28158 gcc/testsuite/gfortran.dg/verify_3.f90 626dfffa6c450f32677ecf2e391385e4 gcc/testsuite/gfortran.dg/volatile.f90 54245d287c2da60f819b17340da156b8 gcc/testsuite/gfortran.dg/volatile10.f90 666c3297f8f2a7745ac5fe969663ee45 gcc/testsuite/gfortran.dg/volatile11.f90 *************** d3c3ea85a2d542a334f54886bc6d0e68 gcc/te *** 79966,79972 **** 9e79ec4077e627de01176e9d19ff0054 gcc/testsuite/gnat.dg/array9.adb 4e4a2cd2383fcedd1f7f9e094a9733f7 gcc/testsuite/gnat.dg/array_bounds_test.adb 7d28bdf32624ddc6639c523e6b6ecf60 gcc/testsuite/gnat.dg/array_bounds_test2.adb ! fbf2baeefb07efc06ee77c746e19b7f4 gcc/testsuite/gnat.dg/asan1.adb a7f8d001aae87201749d21ce47619ea7 gcc/testsuite/gnat.dg/asan1_pkg.ads 8948877471c68fe86ccf6282900b9af2 gcc/testsuite/gnat.dg/aspect1.adb 4a70c931234068ef2afba5910fcc720e gcc/testsuite/gnat.dg/aspect1_horizontal.adb --- 80463,80469 ---- 9e79ec4077e627de01176e9d19ff0054 gcc/testsuite/gnat.dg/array9.adb 4e4a2cd2383fcedd1f7f9e094a9733f7 gcc/testsuite/gnat.dg/array_bounds_test.adb 7d28bdf32624ddc6639c523e6b6ecf60 gcc/testsuite/gnat.dg/array_bounds_test2.adb ! b066e56076d718e0758b0764ae9c25af gcc/testsuite/gnat.dg/asan1.adb a7f8d001aae87201749d21ce47619ea7 gcc/testsuite/gnat.dg/asan1_pkg.ads 8948877471c68fe86ccf6282900b9af2 gcc/testsuite/gnat.dg/aspect1.adb 4a70c931234068ef2afba5910fcc720e gcc/testsuite/gnat.dg/aspect1_horizontal.adb *************** a4f52bfabfe2bc7e231d6ecd5aeefaf6 gcc/te *** 80406,80411 **** --- 80903,80909 ---- 59ed0090b7193e032aae3fdff3f91c4f gcc/testsuite/gnat.dg/enum5.adb 9ec6e8c939115d52974c52ebef0dfd47 gcc/testsuite/gnat.dg/enum_rep.adb 70cecb0f3bbaca4e003491cba4e20cbe gcc/testsuite/gnat.dg/enum_rep.ads + 3c812d9c40899c50bf02d8f0caaf64e8 gcc/testsuite/gnat.dg/enum_rep2.adb 3f7408ad232fc7cfcc0bebc9835bcf12 gcc/testsuite/gnat.dg/enum_val1.adb 6c032f23ef785bfe07a7d1b1a540adfc gcc/testsuite/gnat.dg/env_compile_capacity.adb 5f85dec3853c4180660d191365838fb2 gcc/testsuite/gnat.dg/env_compile_capacity.ads *************** fb9cd5749deaa288afa6ce2e9b9be7a8 gcc/te *** 80506,80511 **** --- 81004,81010 ---- d91918b8c27fd474a8bd7ed0d039a76e gcc/testsuite/gnat.dg/generic_actuals.adb f6d2778eff6f61feb125aeb109c21e15 gcc/testsuite/gnat.dg/generic_call_cw.adb 28fe73ae30764585ce52965bf6e5241f gcc/testsuite/gnat.dg/generic_call_iface.adb + 215af5a9159f79b29f0d0ce86de9a3da gcc/testsuite/gnat.dg/generic_comp.adb 26c448ca0e6aaa93e38582d3d912525d gcc/testsuite/gnat.dg/generic_disp.adb f1692f526c4f792a7f4bb9ab70c04d62 gcc/testsuite/gnat.dg/generic_disp_pkg.adb 408f13c04910fcb870929fb8095f4f09 gcc/testsuite/gnat.dg/generic_disp_pkg.ads *************** fa0a217ef7773f18e2100deca65155e8 gcc/te *** 80914,80919 **** --- 81413,81419 ---- 800283c5dd0dcc98963845af2f46f5b1 gcc/testsuite/gnat.dg/lto24_pkg1.ads 6cc6cb14bbcba172d4f4eeb357613237 gcc/testsuite/gnat.dg/lto24_pkg2.adb 14d0b11f260b0d1752208a98b741658a gcc/testsuite/gnat.dg/lto24_pkg2.ads + ed33690892e43011718347ecca58daff gcc/testsuite/gnat.dg/lto25.adb 2acb4cc31994f1569a3db6ac6613928d gcc/testsuite/gnat.dg/lto4.adb 9b38247c8e825c514f87e2965d931dad gcc/testsuite/gnat.dg/lto4.ads 959fb8bdf4cd1c34347ecfbab19ea60b gcc/testsuite/gnat.dg/lto5.adb *************** be0183a31250d1a9cd930fe7ea1857b6 gcc/te *** 81221,81226 **** --- 81721,81729 ---- 2772233d10666bc3de7ad2c90d19b518 gcc/testsuite/gnat.dg/opt91_pkg.adb e610e24aa950be5f6c35dbb10447cb02 gcc/testsuite/gnat.dg/opt91_pkg.ads 55332ccdfe2a512b2d23726156ad7fa9 gcc/testsuite/gnat.dg/opt92.adb + cebcd76e2479c79677bbc78316b57186 gcc/testsuite/gnat.dg/opt96.adb + be4ae336c50882da5846142a7791cd3a gcc/testsuite/gnat.dg/opt96_pkg.adb + 15c1a01fd2ed3d1a51b5d70bb800b81b gcc/testsuite/gnat.dg/opt96_pkg.ads feb376d91f5514b647b1ad61b025d828 gcc/testsuite/gnat.dg/opt9_pkg.ads 0a9bf4dbd445ef99721501592f66cea2 gcc/testsuite/gnat.dg/others1.adb 9f62042ad37161c5182cb92d70d0b24d gcc/testsuite/gnat.dg/out_param.adb *************** d19a0449bac1fb497429a88904f3d658 gcc/te *** 84179,84188 **** 50c0f03762d429c13fd0302c79d90157 gcc/testsuite/go.test/test/varinit.go 6447a99ae1e2eec266af1ceab6a7343c gcc/testsuite/go.test/test/zerodivide.go 340e08c9aef97a2da8f4cd4568d52675 gcc/testsuite/jit.dg/add-driver-options-testlib.c ! b1a05f9296dbfd219ceb90d0a48a5dce gcc/testsuite/jit.dg/all-non-failing-tests.h 7bc42e89ae77872c8fc581b4babf1832 gcc/testsuite/jit.dg/create-code-for-hello-world-executable.h ! e2d6abe9d39ef55e33a36bbe4db25586 gcc/testsuite/jit.dg/harness.h ! cfb37e56a6c5b7a631225384b481958a gcc/testsuite/jit.dg/jit.exp 3fd6900c9d1d0edd53191542d96ffcec gcc/testsuite/jit.dg/test-accessing-bitfield.c 790dcf4e4a5c3dce84639ef815265f21 gcc/testsuite/jit.dg/test-accessing-struct.c 60caef14bfb482627a962469a4524fce gcc/testsuite/jit.dg/test-accessing-union.c --- 84682,84691 ---- 50c0f03762d429c13fd0302c79d90157 gcc/testsuite/go.test/test/varinit.go 6447a99ae1e2eec266af1ceab6a7343c gcc/testsuite/go.test/test/zerodivide.go 340e08c9aef97a2da8f4cd4568d52675 gcc/testsuite/jit.dg/add-driver-options-testlib.c ! 810148d8e844d972db49a965da29d8b4 gcc/testsuite/jit.dg/all-non-failing-tests.h 7bc42e89ae77872c8fc581b4babf1832 gcc/testsuite/jit.dg/create-code-for-hello-world-executable.h ! 950bf03903ed927f5a64a0047d5a11bf gcc/testsuite/jit.dg/harness.h ! b60625057b0a0016acba69c117c0016a gcc/testsuite/jit.dg/jit.exp 3fd6900c9d1d0edd53191542d96ffcec gcc/testsuite/jit.dg/test-accessing-bitfield.c 790dcf4e4a5c3dce84639ef815265f21 gcc/testsuite/jit.dg/test-accessing-struct.c 60caef14bfb482627a962469a4524fce gcc/testsuite/jit.dg/test-accessing-union.c *************** c96b8b75ba517dc647306c0f299c9b2d gcc/te *** 84192,84199 **** c9f821ccc1905c2cf6da3b515300cc71 gcc/testsuite/jit.dg/test-arith-overflow.c 978312b6ef29d047612e4077b2776108 gcc/testsuite/jit.dg/test-array-as-pointer.c b6b657ddbcecefb50b21259cc5711010 gcc/testsuite/jit.dg/test-arrays.c ! 39ac69a61f107eac012eb6088e3786a9 gcc/testsuite/jit.dg/test-asm.c ! ca5c835ee5a5e20f53cffadb7f4e1375 gcc/testsuite/jit.dg/test-asm.cc cc1b167a1d5eaf426dbf6721a80c93e7 gcc/testsuite/jit.dg/test-autovectorize.c 3f5b0ae02ffd9c801777cd40eeb400a9 gcc/testsuite/jit.dg/test-benchmark.c 425e82d760b4b92b760e58daad16a725 gcc/testsuite/jit.dg/test-builtin-memcpy.c --- 84695,84702 ---- c9f821ccc1905c2cf6da3b515300cc71 gcc/testsuite/jit.dg/test-arith-overflow.c 978312b6ef29d047612e4077b2776108 gcc/testsuite/jit.dg/test-array-as-pointer.c b6b657ddbcecefb50b21259cc5711010 gcc/testsuite/jit.dg/test-arrays.c ! 56ce2077b85dacdbb546575eb90002b6 gcc/testsuite/jit.dg/test-asm.c ! ce4038aa80902d89e3050a7f93a7d94e gcc/testsuite/jit.dg/test-asm.cc cc1b167a1d5eaf426dbf6721a80c93e7 gcc/testsuite/jit.dg/test-autovectorize.c 3f5b0ae02ffd9c801777cd40eeb400a9 gcc/testsuite/jit.dg/test-benchmark.c 425e82d760b4b92b760e58daad16a725 gcc/testsuite/jit.dg/test-builtin-memcpy.c *************** b02011c7edbcfca8dfb3bd46815567fc gcc/te *** 84290,84295 **** --- 84793,84799 ---- c36d06171cf29aa67856b3136828352f gcc/testsuite/jit.dg/test-nested-contexts.c e476b3e50d2451ccb2e83dcb94690dc6 gcc/testsuite/jit.dg/test-nested-loops.c 3dd91ef7035565601d335ad5b9e073e4 gcc/testsuite/jit.dg/test-operator-overloading.cc + e47372605dd57d3184d1a399a4dda2f3 gcc/testsuite/jit.dg/test-pr103562.c f23c8426b4779d93458122aa6f97231a gcc/testsuite/jit.dg/test-pr66700-observing-write-through-ptr.c 1e13f203827617338962b7f4bc0aef4d gcc/testsuite/jit.dg/test-pr66779.c e1de260f2ea5cb4cf607c76292f03edc gcc/testsuite/jit.dg/test-pr95306-builtin-types.c *************** bf57f760d7e706b8742823fbb639ae4c gcc/te *** 84371,84377 **** ee11afd0bed136fe5f9f4b0b9347fbc1 gcc/testsuite/lib/scanwpaipa.exp e85eac7191a9c0639c23f2d8cb32aa3d gcc/testsuite/lib/target-libpath.exp 29911997572e845d73d87588342bbc60 gcc/testsuite/lib/target-supports-dg.exp ! 6f417400c0b87fd5fade21d41b61ced0 gcc/testsuite/lib/target-supports.exp 3726aa6af2e0ec126a1f3165db93c458 gcc/testsuite/lib/target-utils.exp 7f2401885e3237bcc8a97ce8be301082 gcc/testsuite/lib/timeout-dg.exp 3159102522e362ff5b08ae959de2db09 gcc/testsuite/lib/timeout.exp --- 84875,84881 ---- ee11afd0bed136fe5f9f4b0b9347fbc1 gcc/testsuite/lib/scanwpaipa.exp e85eac7191a9c0639c23f2d8cb32aa3d gcc/testsuite/lib/target-libpath.exp 29911997572e845d73d87588342bbc60 gcc/testsuite/lib/target-supports-dg.exp ! bc21273636ce21248bc8c920a67c422c gcc/testsuite/lib/target-supports.exp 3726aa6af2e0ec126a1f3165db93c458 gcc/testsuite/lib/target-utils.exp 7f2401885e3237bcc8a97ce8be301082 gcc/testsuite/lib/timeout-dg.exp 3159102522e362ff5b08ae959de2db09 gcc/testsuite/lib/timeout.exp *************** cb9b5197bed9aef6cef86220a5ab2fd9 gcc/te *** 85037,85042 **** --- 85541,85547 ---- d2e3b487cfa9171717c408c78a4a11db gcc/testsuite/objc.dg/pch/pch.exp 9d6541dc0a9955231b38937f98c5b78a gcc/testsuite/objc.dg/plugin/diagnostic-test-expressions-1.m 54d1c4ee2cf77bc8025bcea1b8d2942a gcc/testsuite/objc.dg/plugin/plugin.exp + 7826ffa2cfc60d9014ec8fd1d1fc1cda gcc/testsuite/objc.dg/pr103639.m 4bde0ee2020d54cbaccb19eddeb1ff93 gcc/testsuite/objc.dg/pr18255.m 31c55f97ea5b980eec7b074cf9577cb9 gcc/testsuite/objc.dg/pr23214.m 82b921bbaad1e6e4748d3c8e088b24e6 gcc/testsuite/objc.dg/pr23709.m *************** aeff588ac829c30eae0d104543b440d3 gcc/tr *** 85408,85423 **** c32a7cd954e38c94fedb8a3ecc0dc53c gcc/tree-affine.c 65985517c61ffc8bade76e7be469b25e gcc/tree-affine.h 417f97627fff84a7a8d8884f3ed8b127 gcc/tree-call-cdce.c ! 0c815b61dfb9dc6b78d461d1de3f3fd6 gcc/tree-cfg.c 2943d99f84c3b4dd2870fa30543f96fa gcc/tree-cfg.h c9c18a9cff4201a5c9bcb4827c4fb349 gcc/tree-cfgcleanup.c 30ea9c09db55c61adb489625c35cb15e gcc/tree-cfgcleanup.h c02b2a89fa8369ab143d4f11a460651b gcc/tree-chrec.c 31e492711713c34c1104d3e984030331 gcc/tree-chrec.h ! b6e4eee90dd87599d8af1bd8d4c4c972 gcc/tree-complex.c ! ccec9bf50f055c8670a0738d5e7bbeab gcc/tree-core.h ! 29e3522d91e204b2a68f656deedd78c2 gcc/tree-data-ref.c ! 6e607c65ec3c8790d5f6ec9878353f95 gcc/tree-data-ref.h 5ea9dc582b1d846f2c523de1059f14cb gcc/tree-dfa.c 4711e398b753a63c9dfe58dd5c599663 gcc/tree-dfa.h 61cab07dbd907458fe0b084f9de3d326 gcc/tree-diagnostic-path.cc --- 85913,85928 ---- c32a7cd954e38c94fedb8a3ecc0dc53c gcc/tree-affine.c 65985517c61ffc8bade76e7be469b25e gcc/tree-affine.h 417f97627fff84a7a8d8884f3ed8b127 gcc/tree-call-cdce.c ! 2e94d2530b73d5e8d44332d1512b7107 gcc/tree-cfg.c 2943d99f84c3b4dd2870fa30543f96fa gcc/tree-cfg.h c9c18a9cff4201a5c9bcb4827c4fb349 gcc/tree-cfgcleanup.c 30ea9c09db55c61adb489625c35cb15e gcc/tree-cfgcleanup.h c02b2a89fa8369ab143d4f11a460651b gcc/tree-chrec.c 31e492711713c34c1104d3e984030331 gcc/tree-chrec.h ! ab7078d2e2707e0bd00415132d4cf941 gcc/tree-complex.c ! 7e46ae01dd9031c283edb403da422537 gcc/tree-core.h ! bd84bb3946c620e0c42d4cdeee2045d6 gcc/tree-data-ref.c ! 0340dbf773106b9b31fa22861e7f9718 gcc/tree-data-ref.h 5ea9dc582b1d846f2c523de1059f14cb gcc/tree-dfa.c 4711e398b753a63c9dfe58dd5c599663 gcc/tree-dfa.h 61cab07dbd907458fe0b084f9de3d326 gcc/tree-diagnostic-path.cc *************** ccec9bf50f055c8670a0738d5e7bbeab gcc/tr *** 85425,85447 **** c1f2ff0df4d922bc92a7a89dd111e444 gcc/tree-diagnostic.h f75e637e91dac91b91c777479ef081fb gcc/tree-dump.c 8c75ec9047fb090f17138d28aeb55e49 gcc/tree-dump.h ! 4147f2be6838dfd74f27d21e79b6870c gcc/tree-eh.c 62326f7c91c8078cdc3c8f095034cd1d gcc/tree-eh.h 5b3d82167a78e6c870c4b85721b98f7d gcc/tree-emutls.c df51783bb1013af8d36a6926324b9944 gcc/tree-hash-traits.h 4e0ed6ef3bdd74441de24187193d838f gcc/tree-hasher.h 511676ae9943534d43b199dfae5d4478 gcc/tree-if-conv.c a3ff52ffa889157518435812a966fe3d gcc/tree-if-conv.h ! 30e6bd02f1bdefff4e780c8b19ea4a8f gcc/tree-inline.c b0a166f5b8df4431a3a01703e73ca5e0 gcc/tree-inline.h 7bbed0b509eec2f9ac682b47cd5237c2 gcc/tree-into-ssa.c 84e9d715b2250b3a6d8f326c5b90c1a8 gcc/tree-into-ssa.h 362bdb78a0bdfa101b91dba0c927dc5f gcc/tree-iterator.c 36ab5451f3575ada26fffe25b559d254 gcc/tree-iterator.h bcd24e6df75dc13de98c2ea3bb72fd00 gcc/tree-loop-distribution.c ! a312d451a579d16f5e2d10b716fa20a0 gcc/tree-nested.c 9b519af6b08c9d2fbe9dad37203b5196 gcc/tree-nested.h ! d8b72ecd778146ead6f3236e4a49ebef gcc/tree-nrv.c 31323bc7fd67cf0285f538efc0a1ee45 gcc/tree-object-size.c 596d1b50badf0031eb091dd74e897ca5 gcc/tree-object-size.h cd0c0940dec08aeb3f89264baea4d7d7 gcc/tree-outof-ssa.c --- 85930,85952 ---- c1f2ff0df4d922bc92a7a89dd111e444 gcc/tree-diagnostic.h f75e637e91dac91b91c777479ef081fb gcc/tree-dump.c 8c75ec9047fb090f17138d28aeb55e49 gcc/tree-dump.h ! 9a204a445c0e92f805c113dad42b5302 gcc/tree-eh.c 62326f7c91c8078cdc3c8f095034cd1d gcc/tree-eh.h 5b3d82167a78e6c870c4b85721b98f7d gcc/tree-emutls.c df51783bb1013af8d36a6926324b9944 gcc/tree-hash-traits.h 4e0ed6ef3bdd74441de24187193d838f gcc/tree-hasher.h 511676ae9943534d43b199dfae5d4478 gcc/tree-if-conv.c a3ff52ffa889157518435812a966fe3d gcc/tree-if-conv.h ! 57d82e2b2b776193ccc17a53320580fc gcc/tree-inline.c b0a166f5b8df4431a3a01703e73ca5e0 gcc/tree-inline.h 7bbed0b509eec2f9ac682b47cd5237c2 gcc/tree-into-ssa.c 84e9d715b2250b3a6d8f326c5b90c1a8 gcc/tree-into-ssa.h 362bdb78a0bdfa101b91dba0c927dc5f gcc/tree-iterator.c 36ab5451f3575ada26fffe25b559d254 gcc/tree-iterator.h bcd24e6df75dc13de98c2ea3bb72fd00 gcc/tree-loop-distribution.c ! 8569b405b180aa6eaf3c9650d5fbdaee gcc/tree-nested.c 9b519af6b08c9d2fbe9dad37203b5196 gcc/tree-nested.h ! bf98a34c788757224ad19a297b7e6e98 gcc/tree-nrv.c 31323bc7fd67cf0285f538efc0a1ee45 gcc/tree-object-size.c 596d1b50badf0031eb091dd74e897ca5 gcc/tree-object-size.h cd0c0940dec08aeb3f89264baea4d7d7 gcc/tree-outof-ssa.c *************** d3b084ad7aba2560ef42b2f258f952f6 gcc/tr *** 85451,85463 **** a51487616194a8071dfe4b9c3bd11c1d gcc/tree-pass.h 5699380a625e6242da8eea993e58e918 gcc/tree-phinodes.c 853eb3b96a580d586e049ff23c1f1ca9 gcc/tree-phinodes.h ! 4893728126175734498eacb8b353fd19 gcc/tree-predcom.c 0e721a7ed54aae97900bc285a55f9060 gcc/tree-pretty-print.c a47959dbcad350d44f1fb6b79a580f48 gcc/tree-pretty-print.h 6e0dc1ffdcd6528a72da60eb226c8ec5 gcc/tree-profile.c 4d7fa46a3c3b714a513a8cc862595763 gcc/tree-scalar-evolution.c 3119791bf78200bcb022199390392521 gcc/tree-scalar-evolution.h ! ec2beea63d6a6fe640d774e81558b978 gcc/tree-sra.c 1ae9bb0b98165f1efe0c7c7a11bab6cc gcc/tree-sra.h ee9c205c9ab2fa90fe88b3ae0c79920e gcc/tree-ssa-address.c c54597ef98c1ca43588073766641d8d8 gcc/tree-ssa-address.h --- 85956,85968 ---- a51487616194a8071dfe4b9c3bd11c1d gcc/tree-pass.h 5699380a625e6242da8eea993e58e918 gcc/tree-phinodes.c 853eb3b96a580d586e049ff23c1f1ca9 gcc/tree-phinodes.h ! 96a8529c97ec5c2d5f4bfc1414c403fd gcc/tree-predcom.c 0e721a7ed54aae97900bc285a55f9060 gcc/tree-pretty-print.c a47959dbcad350d44f1fb6b79a580f48 gcc/tree-pretty-print.h 6e0dc1ffdcd6528a72da60eb226c8ec5 gcc/tree-profile.c 4d7fa46a3c3b714a513a8cc862595763 gcc/tree-scalar-evolution.c 3119791bf78200bcb022199390392521 gcc/tree-scalar-evolution.h ! d96860bf091765735df36806aaa21a7f gcc/tree-sra.c 1ae9bb0b98165f1efe0c7c7a11bab6cc gcc/tree-sra.h ee9c205c9ab2fa90fe88b3ae0c79920e gcc/tree-ssa-address.c c54597ef98c1ca43588073766641d8d8 gcc/tree-ssa-address.h *************** c3a38b89c2fc91798eb9bcec7d1a921b gcc/tr *** 85469,85486 **** 14f20b171e9eeef632fb82641a87fd7d gcc/tree-ssa-coalesce.c dbf97ae62841bae185383de08c1010af gcc/tree-ssa-coalesce.h 7cda46f9d86f92ef2a6a9b13d9ea5458 gcc/tree-ssa-copy.c ! 39536afea748946ba21d641b3172b8eb gcc/tree-ssa-dce.c f89d08a599ef7443309a0083d3eed3b5 gcc/tree-ssa-dce.h e6b364314b092283962e9b8fc40f2b2a gcc/tree-ssa-dom.c 5d4ec6bd4c2537b8b3b9934eeb5ac5bd gcc/tree-ssa-dom.h ! f6652144ac978d598d3321e0122ae96b gcc/tree-ssa-dse.c b0a51b2bfb537b29341db8e5e9d06c49 gcc/tree-ssa-dse.h ! ff374103bb1e6500bd2906523df20424 gcc/tree-ssa-forwprop.c f87b8cba0a5eaf206c581f51abff7795 gcc/tree-ssa-ifcombine.c 5e21627768f782974d385f0b8591b7c3 gcc/tree-ssa-live.c 92bca15e046dc5f13eb16bedaf5bdf70 gcc/tree-ssa-live.h 98d45850103ddab74c7b6b7446089026 gcc/tree-ssa-loop-ch.c ! 87d78b50e477e2a6234463d42da2a3bc gcc/tree-ssa-loop-im.c 15f1defc34f3db829c93c302e1b7fd48 gcc/tree-ssa-loop-ivcanon.c 120e8a77d75728ac826cd04b9e0addf5 gcc/tree-ssa-loop-ivopts.c cc3adcca25191b12b03af31ce868f9f5 gcc/tree-ssa-loop-ivopts.h --- 85974,85991 ---- 14f20b171e9eeef632fb82641a87fd7d gcc/tree-ssa-coalesce.c dbf97ae62841bae185383de08c1010af gcc/tree-ssa-coalesce.h 7cda46f9d86f92ef2a6a9b13d9ea5458 gcc/tree-ssa-copy.c ! b47681fd6550b2337b9111c3b884c764 gcc/tree-ssa-dce.c f89d08a599ef7443309a0083d3eed3b5 gcc/tree-ssa-dce.h e6b364314b092283962e9b8fc40f2b2a gcc/tree-ssa-dom.c 5d4ec6bd4c2537b8b3b9934eeb5ac5bd gcc/tree-ssa-dom.h ! 1d91441633d5656eb9eb7aaffb6abfbf gcc/tree-ssa-dse.c b0a51b2bfb537b29341db8e5e9d06c49 gcc/tree-ssa-dse.h ! 398fce9341d9ea8c16943ab286e36a81 gcc/tree-ssa-forwprop.c f87b8cba0a5eaf206c581f51abff7795 gcc/tree-ssa-ifcombine.c 5e21627768f782974d385f0b8591b7c3 gcc/tree-ssa-live.c 92bca15e046dc5f13eb16bedaf5bdf70 gcc/tree-ssa-live.h 98d45850103ddab74c7b6b7446089026 gcc/tree-ssa-loop-ch.c ! 440e59e128fa41f324523645d1c23303 gcc/tree-ssa-loop-im.c 15f1defc34f3db829c93c302e1b7fd48 gcc/tree-ssa-loop-ivcanon.c 120e8a77d75728ac826cd04b9e0addf5 gcc/tree-ssa-loop-ivopts.c cc3adcca25191b12b03af31ce868f9f5 gcc/tree-ssa-loop-ivopts.h *************** ac370f5c6ed5c448ce93e995b5b90a23 gcc/tr *** 85493,85517 **** 80c9261b9586acb7b3f4dd8057e45a00 gcc/tree-ssa-loop-unswitch.c 7c5fb48d5c26a7cc6cc1328519686513 gcc/tree-ssa-loop.c e7b45902d3db8fd8ee5db0a06d9ebd6a gcc/tree-ssa-loop.h ! 51427d6a3688854bad066dcb4793e082 gcc/tree-ssa-math-opts.c 21767eb2af5cf900357d0cdff9563462 gcc/tree-ssa-math-opts.h c4f4a7c3982de8a83d63700eeab025e2 gcc/tree-ssa-operands.c 89fb9150ca77cb47d3eb6e508c47a938 gcc/tree-ssa-operands.h 6831853f2b71ee068abf78d13aafa968 gcc/tree-ssa-phiopt.c aca824b1c600ea02a32079f9880c7dea gcc/tree-ssa-phiprop.c ! 9b61bec3797adaf212eb6bd7b243b0f4 gcc/tree-ssa-pre.c ! 04f876340a96e18935f72815b6a29b88 gcc/tree-ssa-propagate.c ! 07e59fd4e9ac826434fa8f829a73c744 gcc/tree-ssa-propagate.h eee92cf1f06ab8481d88af258f022f9d gcc/tree-ssa-reassoc.c 4f7d545bd96bf81d7343beee53323b74 gcc/tree-ssa-reassoc.h ! ff49833a82bb74d5c3da111a61b44566 gcc/tree-ssa-sccvn.c cbdcf02ee4848c736cf8a9fee3c78084 gcc/tree-ssa-sccvn.h 654628a1f0f77b863091072217fd81f1 gcc/tree-ssa-scopedtables.c 89f4a37820db62debf8e9c7547c734db gcc/tree-ssa-scopedtables.h 88ea1b186fca75987e9c87011bdc67e1 gcc/tree-ssa-sink.c dd6a2364f5f12e2e98ceb10340828c81 gcc/tree-ssa-strlen.c 07cd4ed8db0b69a9df3f67a6c078ee8d gcc/tree-ssa-strlen.h ! e37f247907253fa236d651600e4c6e6d gcc/tree-ssa-structalias.c 226048531a518fe848311ca013413b8d gcc/tree-ssa-tail-merge.c bf108348124c2aac7c7af2dc30f64e06 gcc/tree-ssa-ter.c 3e90b0aab68f7d9ed5168674fd049e33 gcc/tree-ssa-ter.h --- 85998,86022 ---- 80c9261b9586acb7b3f4dd8057e45a00 gcc/tree-ssa-loop-unswitch.c 7c5fb48d5c26a7cc6cc1328519686513 gcc/tree-ssa-loop.c e7b45902d3db8fd8ee5db0a06d9ebd6a gcc/tree-ssa-loop.h ! 0162473e371a1803cd6e2ab6854b1a90 gcc/tree-ssa-math-opts.c 21767eb2af5cf900357d0cdff9563462 gcc/tree-ssa-math-opts.h c4f4a7c3982de8a83d63700eeab025e2 gcc/tree-ssa-operands.c 89fb9150ca77cb47d3eb6e508c47a938 gcc/tree-ssa-operands.h 6831853f2b71ee068abf78d13aafa968 gcc/tree-ssa-phiopt.c aca824b1c600ea02a32079f9880c7dea gcc/tree-ssa-phiprop.c ! 14975f2fbf60664af2dc43d15b308760 gcc/tree-ssa-pre.c ! 53216871795caf5a9e7fc4db4952b4cf gcc/tree-ssa-propagate.c ! 2f608b017c74261fb20e2c50494fd211 gcc/tree-ssa-propagate.h eee92cf1f06ab8481d88af258f022f9d gcc/tree-ssa-reassoc.c 4f7d545bd96bf81d7343beee53323b74 gcc/tree-ssa-reassoc.h ! 4950a1f43992a5da4cf68d70522c8fb9 gcc/tree-ssa-sccvn.c cbdcf02ee4848c736cf8a9fee3c78084 gcc/tree-ssa-sccvn.h 654628a1f0f77b863091072217fd81f1 gcc/tree-ssa-scopedtables.c 89f4a37820db62debf8e9c7547c734db gcc/tree-ssa-scopedtables.h 88ea1b186fca75987e9c87011bdc67e1 gcc/tree-ssa-sink.c dd6a2364f5f12e2e98ceb10340828c81 gcc/tree-ssa-strlen.c 07cd4ed8db0b69a9df3f67a6c078ee8d gcc/tree-ssa-strlen.h ! 9fb3a1e33afb337d2a7ba2fc50492ee3 gcc/tree-ssa-structalias.c 226048531a518fe848311ca013413b8d gcc/tree-ssa-tail-merge.c bf108348124c2aac7c7af2dc30f64e06 gcc/tree-ssa-ter.c 3e90b0aab68f7d9ed5168674fd049e33 gcc/tree-ssa-ter.h *************** b252a171d500e0cab975d3ee869ac82d gcc/tr *** 85522,85528 **** 7bc29409f7411f4024d12d0d0ac494ad gcc/tree-ssa-threadupdate.h f8386c0188448d8e4805f34fc0e485b3 gcc/tree-ssa-uncprop.c ea574c34b2c417a9766c17108b7e8dbf gcc/tree-ssa-uninit.c ! 2ceed2501a970a43eecefa4e401075b7 gcc/tree-ssa.c b1739bf5d288192714af8e0c8b1c1e7d gcc/tree-ssa.h e61b4c021883038ea2d1201943d95548 gcc/tree-ssanames.c 5f0d001d3a6ba13a46a13e9ddf70fd64 gcc/tree-ssanames.h --- 86027,86033 ---- 7bc29409f7411f4024d12d0d0ac494ad gcc/tree-ssa-threadupdate.h f8386c0188448d8e4805f34fc0e485b3 gcc/tree-ssa-uncprop.c ea574c34b2c417a9766c17108b7e8dbf gcc/tree-ssa-uninit.c ! 29bb73fc2a8d417d652e5e3951bd183a gcc/tree-ssa.c b1739bf5d288192714af8e0c8b1c1e7d gcc/tree-ssa.h e61b4c021883038ea2d1201943d95548 gcc/tree-ssanames.c 5f0d001d3a6ba13a46a13e9ddf70fd64 gcc/tree-ssanames.h *************** e61b4c021883038ea2d1201943d95548 gcc/tr *** 85532,85557 **** 954a7fd2068acdcda6621cd8004fa7e2 gcc/tree-streamer-out.c 6df984e471ab742ef3369ec4dffb3492 gcc/tree-streamer.c 679b5e41ad5113e15652a39245e6ceb3 gcc/tree-streamer.h ! 428e1393db94bc3958397008a8e0c5e1 gcc/tree-switch-conversion.c ! 07ed53f04ac330417d211f27d5796a35 gcc/tree-switch-conversion.h 749044dc570d709e923db8e1de207a10 gcc/tree-tailcall.c ! 90ef2f26ccb17ab01e229128079e9cff gcc/tree-vect-data-refs.c ! ebb06712200126a0c4d0d687410be52d gcc/tree-vect-generic.c ! dbdbae9b398a7e5dd71a8009845b190e gcc/tree-vect-loop-manip.c ! 06e924d41eb753f0a64ef6b1eacdc453 gcc/tree-vect-loop.c ! 9e035634c11fb6d4a9948fae9c3303fb gcc/tree-vect-patterns.c ! d492181f4bd330c35617aaa9d8ecc0ad gcc/tree-vect-slp-patterns.c ! d84cc4df5a0804f8a770da7de4f005ad gcc/tree-vect-slp.c ! b2d179dbd2c4ca7c631b0bdac622139d gcc/tree-vect-stmts.c f6bd437c971fbfa030e5a50db314eb6d gcc/tree-vector-builder.c ab254195b6cc59013f830527799845a1 gcc/tree-vector-builder.h a81602a0b8310bde0b9239772d873f96 gcc/tree-vectorizer.c ! 20f8d72d5098cab78386d5027e619573 gcc/tree-vectorizer.h b54ce4bde08399c6f5c90b9f9a513261 gcc/tree-vrp.c 8b2b735df1dd01f7b24caa58f59891c7 gcc/tree-vrp.h ! 12d7ebe28a4bf76da15df67b094b0137 gcc/tree.c 54bdda1062541e94a710f93dc39c2732 gcc/tree.def ! e0d540b900b3b6d288f00632dbf6374d gcc/tree.h f5d9f8fed65a9d8d94c3bc3a54d17175 gcc/treestruct.def 29d87aedf6eb8f5f9b858b6ce49f18ba gcc/tristate.cc 0462624e1a963d1b936e36b375115848 gcc/tristate.h --- 86037,86062 ---- 954a7fd2068acdcda6621cd8004fa7e2 gcc/tree-streamer-out.c 6df984e471ab742ef3369ec4dffb3492 gcc/tree-streamer.c 679b5e41ad5113e15652a39245e6ceb3 gcc/tree-streamer.h ! 5ab0afa1547f8bc9bd4d95d53b6b1263 gcc/tree-switch-conversion.c ! 4af837819cb8ea23c7b76ee276d8c81c gcc/tree-switch-conversion.h 749044dc570d709e923db8e1de207a10 gcc/tree-tailcall.c ! 9255abeccc3056f1b1dec591b5f7b8be gcc/tree-vect-data-refs.c ! 1ebc96a1f1b17e2d4917ee7d5f298d55 gcc/tree-vect-generic.c ! faa5329b1f390b639f568c946e5a7777 gcc/tree-vect-loop-manip.c ! 242637c341c0caf2914dc3bcb4bd49d4 gcc/tree-vect-loop.c ! acca60fc389457619cfc622078ceff30 gcc/tree-vect-patterns.c ! d20a5aa2757fc39d3413e3c933b5a72c gcc/tree-vect-slp-patterns.c ! 8ca7395eca12fec080251f1f107d9ed6 gcc/tree-vect-slp.c ! 009c29bf1d3888a29458c28ac5c11e99 gcc/tree-vect-stmts.c f6bd437c971fbfa030e5a50db314eb6d gcc/tree-vector-builder.c ab254195b6cc59013f830527799845a1 gcc/tree-vector-builder.h a81602a0b8310bde0b9239772d873f96 gcc/tree-vectorizer.c ! 792136b23c7db03363719c735c0ee4d4 gcc/tree-vectorizer.h b54ce4bde08399c6f5c90b9f9a513261 gcc/tree-vrp.c 8b2b735df1dd01f7b24caa58f59891c7 gcc/tree-vrp.h ! 0adc6587548100af57ad30b73ca05895 gcc/tree.c 54bdda1062541e94a710f93dc39c2732 gcc/tree.def ! 979c1c60ea69e2a2957e90be2a76611e gcc/tree.h f5d9f8fed65a9d8d94c3bc3a54d17175 gcc/treestruct.def 29d87aedf6eb8f5f9b858b6ce49f18ba gcc/tristate.cc 0462624e1a963d1b936e36b375115848 gcc/tristate.h *************** f3391bab0a8e76804139f10f89a6d8cf gcc/ts *** 85561,85570 **** e955740dbe777821f2cccc2f1ffe5c2f gcc/typeclass.h 56044162f187e7865585c71c3fa369e8 gcc/typed-splay-tree.c 9db154ca9a8f61137a5d8cde9f565ba0 gcc/typed-splay-tree.h ! 675129fca3dbc0ed46dbd95c7511ba9a gcc/ubsan.c c71a123f0c3811bd59554fb1ad3c863e gcc/ubsan.h 20c6e75500616d21c9936946caddc196 gcc/unique-ptr-tests.cc ! 61db04b0d68ccf9e7c1f240c2ab64672 gcc/valtrack.c e9a5a2bcf328bb2c2dbec4ecfd97885e gcc/valtrack.h 0195b138ae357db0146d1d1c4542e946 gcc/value-prof.c 70a81436a47247d33da6b1e9538938e3 gcc/value-prof.h --- 86066,86075 ---- e955740dbe777821f2cccc2f1ffe5c2f gcc/typeclass.h 56044162f187e7865585c71c3fa369e8 gcc/typed-splay-tree.c 9db154ca9a8f61137a5d8cde9f565ba0 gcc/typed-splay-tree.h ! f21a431f73f6d2a4b3440f68e998fefb gcc/ubsan.c c71a123f0c3811bd59554fb1ad3c863e gcc/ubsan.h 20c6e75500616d21c9936946caddc196 gcc/unique-ptr-tests.cc ! 9f40370f290cb66e11bbd1a3249892a7 gcc/valtrack.c e9a5a2bcf328bb2c2dbec4ecfd97885e gcc/valtrack.h 0195b138ae357db0146d1d1c4542e946 gcc/value-prof.c 70a81436a47247d33da6b1e9538938e3 gcc/value-prof.h *************** c90e2e4149ffd9b0966fa09a2bffc523 gcc/va *** 85574,85581 **** b570e943102175a39a612c7e13a38a2a gcc/value-range-equiv.h e4d9d9cdb525e7d4d2d226084ad63a4a gcc/value-range.cc 7b1ab74e3c70cb1e22679b101181c1ea gcc/value-range.h ! 502ae3476543727b93da6dcf88a75a3c gcc/var-tracking.c ! 91f9c0a61c99f1aae54084b8cbcaa13c gcc/varasm.c b8d6bbc9c059388ffa49a3df1eeeb2aa gcc/varasm.h 454e8d39b138d6457d65bb6ea63fc17c gcc/varpool.c 55d5e60e44e9f699246223cdcfc9fd2c gcc/vec-perm-indices.c --- 86079,86086 ---- b570e943102175a39a612c7e13a38a2a gcc/value-range-equiv.h e4d9d9cdb525e7d4d2d226084ad63a4a gcc/value-range.cc 7b1ab74e3c70cb1e22679b101181c1ea gcc/value-range.h ! b4a721a0d586edfb07a7dfe2a28a2e57 gcc/var-tracking.c ! 0ba7005a97ed487b4279e905a00e533d gcc/varasm.c b8d6bbc9c059388ffa49a3df1eeeb2aa gcc/varasm.h 454e8d39b138d6457d65bb6ea63fc17c gcc/varpool.c 55d5e60e44e9f699246223cdcfc9fd2c gcc/vec-perm-indices.c *************** fe759b1aa00610d99f1520cfe196ce92 gcc/wi *** 85600,85610 **** 3fbc3ce873dd1439e18734542a1cd26e gcc/xcoff.h 5a99ef1e1f569bf6e04aebf72d4afad4 gcc/xcoffout.c b683ffab756b05a88907135f72dec974 gcc/xcoffout.h ! 15d610e8237907bfc3bdd7cabadc22fe gnattools/ChangeLog aaa671ca98fa9f94bfedd0ab395c5505 gnattools/Makefile.in 8385a4d775aa1b9949c1f88488491c86 gnattools/configure 1e063bb0b806e41cc0ed23d1b7047746 gnattools/configure.ac ! 04e5e99607a17dae2d908f3b006ac4f9 gotools/ChangeLog 6f7b730e8dfbdff92349c010bb18cf00 gotools/Makefile.am 040d059ae30c619fdd918cd30bfbfae4 gotools/Makefile.in 7e23031e2e274aaa07b61c1e8f18dc99 gotools/README --- 86105,86115 ---- 3fbc3ce873dd1439e18734542a1cd26e gcc/xcoff.h 5a99ef1e1f569bf6e04aebf72d4afad4 gcc/xcoffout.c b683ffab756b05a88907135f72dec974 gcc/xcoffout.h ! 2985e36c2600337bbde4afeba4e536a6 gnattools/ChangeLog aaa671ca98fa9f94bfedd0ab395c5505 gnattools/Makefile.in 8385a4d775aa1b9949c1f88488491c86 gnattools/configure 1e063bb0b806e41cc0ed23d1b7047746 gnattools/configure.ac ! c4f96c1af9fbd72d1893af0e8ee88f54 gotools/ChangeLog 6f7b730e8dfbdff92349c010bb18cf00 gotools/Makefile.am 040d059ae30c619fdd918cd30bfbfae4 gotools/Makefile.in 7e23031e2e274aaa07b61c1e8f18dc99 gotools/README *************** c4e8176c1964a5ebe0a55900f2141299 gotool *** 85615,85621 **** eb2aeb3a6cffe7b26a8f1c8a2da23dcd gotools/gofmt.1 59530bdf33659b29e73d4adb9f9f6552 include/COPYING d32239bcb673463ab874e80d47fae504 include/COPYING3 ! ec670766c8185285e1749456f296f754 include/ChangeLog 4263432a72ff47ed8bf420208ee7eea5 include/ChangeLog-9103 a43d76108493b20da790f953f829c6a5 include/ChangeLog.jit 550446a6d9ed6d7ecce30d964b346154 include/ansidecl.h --- 86120,86126 ---- eb2aeb3a6cffe7b26a8f1c8a2da23dcd gotools/gofmt.1 59530bdf33659b29e73d4adb9f9f6552 include/COPYING d32239bcb673463ab874e80d47fae504 include/COPYING3 ! d73a46aa8d4299508a777584456b6e44 include/ChangeLog 4263432a72ff47ed8bf420208ee7eea5 include/ChangeLog-9103 a43d76108493b20da790f953f829c6a5 include/ChangeLog.jit 550446a6d9ed6d7ecce30d964b346154 include/ansidecl.h *************** e58c74ae29d8b45747b53a32b29ba5af includ *** 85662,85668 **** a19eadb3ab028fbbb684ab26b212fe84 include/xregex2.h 05cc8ec924c7145a48d1d059c0b58df2 include/xtensa-config.h 361482dd6b5b5eb7090fff3986fba68a install-sh ! 0a81601c9567bf423e5a459da522e5b2 intl/ChangeLog ad7ef2b19b44e4d5518287805d6ded02 intl/Makefile.in 6ec998bb4716c744bf8185e607f69301 intl/README 76ca170a525d5b84d90f0478fe788931 intl/VERSION --- 86167,86173 ---- a19eadb3ab028fbbb684ab26b212fe84 include/xregex2.h 05cc8ec924c7145a48d1d059c0b58df2 include/xtensa-config.h 361482dd6b5b5eb7090fff3986fba68a install-sh ! 0cc3dde214d3eb99cf3b9c54dbbcff27 intl/ChangeLog ad7ef2b19b44e4d5518287805d6ded02 intl/Makefile.in 6ec998bb4716c744bf8185e607f69301 intl/README 76ca170a525d5b84d90f0478fe788931 intl/VERSION *************** ec38b8a64a735196854a8f7d76b79a78 intl/p *** 85705,85718 **** b4758a0194e3e41362b939911472ce62 intl/relocatable.c bedade7bcfc3bc5eb09a2c6844f637f3 intl/relocatable.h 43f287d082528203fc85c1d2d81bf30d intl/textdomain.c ! 46a946dfd5579b3b5251490f827c7f4f libada/ChangeLog 84bf37346561835ab6fb79f3753dbf61 libada/Makefile.in c851e0f50ad5e334f1cdf3b8c0bae3e2 libada/configure ad0c7ec998fb800e00bc645459274350 libada/configure.ac 46d3fe6da7a771cc2d5420c4137a6861 libatomic/.gitignore ! ca072ce6eece93cc75bc332df10fce4a libatomic/ChangeLog ! 922dae05f77c88f663c9b7da78bd3893 libatomic/Makefile.am ! f4aba227936166f80f843dbd2127d574 libatomic/Makefile.in 879263fa8d462b018b9a483d6ac68e45 libatomic/acinclude.m4 d93a7644df6ecd2eda448dcb5b1baeb3 libatomic/aclocal.m4 b741b38c451feebdcd9aedce6e37b702 libatomic/auto-config.h.in --- 86210,86223 ---- b4758a0194e3e41362b939911472ce62 intl/relocatable.c bedade7bcfc3bc5eb09a2c6844f637f3 intl/relocatable.h 43f287d082528203fc85c1d2d81bf30d intl/textdomain.c ! bd5afc89cd9c4aed2a3b07f7c35b3ebe libada/ChangeLog 84bf37346561835ab6fb79f3753dbf61 libada/Makefile.in c851e0f50ad5e334f1cdf3b8c0bae3e2 libada/configure ad0c7ec998fb800e00bc645459274350 libada/configure.ac 46d3fe6da7a771cc2d5420c4137a6861 libatomic/.gitignore ! c5486c19736406439617d61bf5149484 libatomic/ChangeLog ! d910fab8524c7ab8918b567931a14133 libatomic/Makefile.am ! 8f480fdd121c7e44c048fec76c598b1f libatomic/Makefile.in 879263fa8d462b018b9a483d6ac68e45 libatomic/acinclude.m4 d93a7644df6ecd2eda448dcb5b1baeb3 libatomic/aclocal.m4 b741b38c451feebdcd9aedce6e37b702 libatomic/auto-config.h.in *************** d162950eb155d3f7b71fa7fd06738e07 libato *** 85738,85745 **** dde9dd7b7e923b04f6925736c96905aa libatomic/config/s390/exch_n.c ed3d69739cb2f35407547229f0393f92 libatomic/config/t-aix ad77cb9ee31bb899efbe3bbf69552fd8 libatomic/config/x86/fenv.c ! 924b44ec023f86a0e8f5f15ed76918cb libatomic/config/x86/host-config.h ! 795644fd52328104fd3069e7190db57b libatomic/config/x86/init.c 1a3caf1a22e09fc89766313026e541e3 libatomic/configure 009993f4c4928e75d0ab6d3d73aab846 libatomic/configure.ac 87f2fe7e2bce59d09f679252f292d515 libatomic/configure.tgt --- 86243,86250 ---- dde9dd7b7e923b04f6925736c96905aa libatomic/config/s390/exch_n.c ed3d69739cb2f35407547229f0393f92 libatomic/config/t-aix ad77cb9ee31bb899efbe3bbf69552fd8 libatomic/config/x86/fenv.c ! ae940a7b89ae9316379daa6d06c11015 libatomic/config/x86/host-config.h ! 516566ff2313eff082a068934d1ddd1c libatomic/config/x86/init.c 1a3caf1a22e09fc89766313026e541e3 libatomic/configure 009993f4c4928e75d0ab6d3d73aab846 libatomic/configure.ac 87f2fe7e2bce59d09f679252f292d515 libatomic/configure.tgt *************** c03a072efac9b30f8f8429ac52fd246b libato *** 85800,85806 **** 8a7308fda7ed1543cb9e3be0f8e47bce libatomic/testsuite/libatomic.c/atomic-store-5.c 40618200985a15bcba64f871863da498 libatomic/testsuite/libatomic.c/c.exp 97b0c9cdfcb733664bdf4efe0f5dc449 libatomic/testsuite/libatomic.c/generic-2.c ! 7fd8747a6eedeeaab37a09fe9a3cf20c libbacktrace/ChangeLog eb3a88b53140eb234a99a4b3a55e56bf libbacktrace/ChangeLog.jit e2733ae499e3face714f963e5163ef66 libbacktrace/Makefile.am f5ab4b9f2111a21142693282701ca531 libbacktrace/Makefile.in --- 86305,86311 ---- 8a7308fda7ed1543cb9e3be0f8e47bce libatomic/testsuite/libatomic.c/atomic-store-5.c 40618200985a15bcba64f871863da498 libatomic/testsuite/libatomic.c/c.exp 97b0c9cdfcb733664bdf4efe0f5dc449 libatomic/testsuite/libatomic.c/generic-2.c ! af231953141eb286b0b8dd94a2bd4dae libbacktrace/ChangeLog eb3a88b53140eb234a99a4b3a55e56bf libbacktrace/ChangeLog.jit e2733ae499e3face714f963e5163ef66 libbacktrace/Makefile.am f5ab4b9f2111a21142693282701ca531 libbacktrace/Makefile.in *************** a1a0a081f4a744549061bcb3714c3dad libbac *** 85848,85856 **** 45e5c08b384a557511236842576c4857 libbacktrace/xcoff.c 16559a9b859947ea3f119724e6184a22 libbacktrace/xztest.c b4592ed6fe2affe39672dd913198f71a libbacktrace/ztest.c ! f7487d746c2070446b268aed3a1ba6b3 libcc1/ChangeLog ! 36dccf888ad4d720aad953f9d1fdf727 libcc1/Makefile.am ! 54fcba752e9163855202b48e7c2629f6 libcc1/Makefile.in b39668f1b706dbfe7203b3cfa277b792 libcc1/aclocal.m4 172f476a3d4be4642f41572fcd6af466 libcc1/callbacks.cc dacbc72f845a0578ce36bfcb8cddb3ba libcc1/callbacks.hh --- 86353,86361 ---- 45e5c08b384a557511236842576c4857 libbacktrace/xcoff.c 16559a9b859947ea3f119724e6184a22 libbacktrace/xztest.c b4592ed6fe2affe39672dd913198f71a libbacktrace/ztest.c ! 6075b1d96c0ee6c5bd58b9e0a33b6398 libcc1/ChangeLog ! 28f4a58e6f8e07b09cd25b0a1ad72059 libcc1/Makefile.am ! a02f5370fb2d8bff9e13e39745a680ca libcc1/Makefile.in b39668f1b706dbfe7203b3cfa277b792 libcc1/aclocal.m4 172f476a3d4be4642f41572fcd6af466 libcc1/callbacks.cc dacbc72f845a0578ce36bfcb8cddb3ba libcc1/callbacks.hh *************** d7011f3caeeeb336058853a2a6ae7759 libcc1 *** 85880,85886 **** 8e32b4f309146e8842db7a077d77be28 libcody/CMakeLists.txt c96a56ec7f0400e30e99a9aa445e0425 libcody/CODING.md b5243c8c76fc965a409394a30679e613 libcody/CONTRIB.md ! c0f372d2a97b3cea41c0750df9943281 libcody/ChangeLog 86d3f3a95c324c9479bd8986968f4327 libcody/LICENSE 3d4a4494284f7f6d717caade46832e87 libcody/Makefile.in ca1c6fe3df5427016005ce753c73d454 libcody/README.md --- 86385,86391 ---- 8e32b4f309146e8842db7a077d77be28 libcody/CMakeLists.txt c96a56ec7f0400e30e99a9aa445e0425 libcody/CODING.md b5243c8c76fc965a409394a30679e613 libcody/CONTRIB.md ! 73836cc08c51d197e88a2b6679e9a291 libcody/ChangeLog 86d3f3a95c324c9479bd8986968f4327 libcody/LICENSE 3d4a4494284f7f6d717caade46832e87 libcody/Makefile.in ca1c6fe3df5427016005ce753c73d454 libcody/README.md *************** a1b928d660ba86d7133b5ee270e45bcc libcod *** 85899,85905 **** 6419dfc879387358e95288142e569914 libcody/packet.cc 688ece05c8b9d378b3df186808162e76 libcody/resolver.cc b1f3850fc5ac62999d1e124aa6f76531 libcody/server.cc ! 650f450e14c6438ed4946e0cfd529b7d libcpp/ChangeLog 2bd831b17997584e38305782cebe6948 libcpp/ChangeLog.jit 93f0c1663de0a7f51de84bcf52cf415a libcpp/Makefile.in 9d15bb14e9ac1a74366e673ea260722e libcpp/aclocal.m4 --- 86404,86410 ---- 6419dfc879387358e95288142e569914 libcody/packet.cc 688ece05c8b9d378b3df186808162e76 libcody/resolver.cc b1f3850fc5ac62999d1e124aa6f76531 libcody/server.cc ! e9528382b04de8e8b2951f52942d2c51 libcpp/ChangeLog 2bd831b17997584e38305782cebe6948 libcpp/ChangeLog.jit 93f0c1663de0a7f51de84bcf52cf415a libcpp/Makefile.in 9d15bb14e9ac1a74366e673ea260722e libcpp/aclocal.m4 *************** aa753fa10493688739205dff0d332e7b libcpp *** 85907,85913 **** a82e3eb1d8561484e9ba80fe49aaa3d2 libcpp/config.in d8b25b32c46363f3c8d928ff9659642f libcpp/configure ba01f7813ce714bfa7427ced165ee873 libcpp/configure.ac ! f3213c784f6cd9d3af84dcb5b50b6d84 libcpp/directives.c a66a22409e4a783d7044f888621c8bc2 libcpp/errors.c 663c725deffa3329ae6a2554c1e7e64f libcpp/expr.c 317ee9a4d4fd5e7d914307f5ba7151ff libcpp/files.c --- 86412,86418 ---- a82e3eb1d8561484e9ba80fe49aaa3d2 libcpp/config.in d8b25b32c46363f3c8d928ff9659642f libcpp/configure ba01f7813ce714bfa7427ced165ee873 libcpp/configure.ac ! daafcf78bfd2e318f5c757e3d61bd1ed libcpp/directives.c a66a22409e4a783d7044f888621c8bc2 libcpp/errors.c 663c725deffa3329ae6a2554c1e7e64f libcpp/expr.c 317ee9a4d4fd5e7d914307f5ba7151ff libcpp/files.c *************** bb66fcb7788c801156bffbd2e7ef157b libcpp *** 85919,85932 **** 3be98d97c10d140ead8129799fb0204f libcpp/include/symtab.h 7cc3b270970c81684bb50c91310d8b34 libcpp/init.c 6502fcc1e9f6fc8357698e9717588e3c libcpp/internal.h ! d4ceeb1135dd845f2c94087db284bfd6 libcpp/lex.c 0de7096eac026f74c1bfe8a23f629369 libcpp/line-map.c 46a07100f95f5e354c7e25cd19d26884 libcpp/location-example.txt ! 31e06a0bbad7ce329924f69a4efd70fa libcpp/macro.c a8704715c342e0c595438ec99b83299f libcpp/makeucnid.c 016253cecf75a29fd5f5075b866cca1f libcpp/mkdeps.c 944a753ccf1b023047aaed1f1f362bec libcpp/pch.c ! 814d85f6ea2267a80587b51a43784d35 libcpp/po/ChangeLog 236a7764238de3aa208e3a857c56f478 libcpp/po/be.gmo ede9d45d28b1c1cb82c92ff039a45d66 libcpp/po/be.po a64f63d1193f804860308855177c5f6a libcpp/po/ca.gmo --- 86424,86437 ---- 3be98d97c10d140ead8129799fb0204f libcpp/include/symtab.h 7cc3b270970c81684bb50c91310d8b34 libcpp/init.c 6502fcc1e9f6fc8357698e9717588e3c libcpp/internal.h ! 4ab22ed865a7d5de170fcae8485bdfe3 libcpp/lex.c 0de7096eac026f74c1bfe8a23f629369 libcpp/line-map.c 46a07100f95f5e354c7e25cd19d26884 libcpp/location-example.txt ! bc0fe66954c989fdf43e0bbe096954b5 libcpp/macro.c a8704715c342e0c595438ec99b83299f libcpp/makeucnid.c 016253cecf75a29fd5f5075b866cca1f libcpp/mkdeps.c 944a753ccf1b023047aaed1f1f362bec libcpp/pch.c ! 66d04d8bc89629cd6ca2820ce59032c3 libcpp/po/ChangeLog 236a7764238de3aa208e3a857c56f478 libcpp/po/be.gmo ede9d45d28b1c1cb82c92ff039a45d66 libcpp/po/be.po a64f63d1193f804860308855177c5f6a libcpp/po/ca.gmo *************** a64f63d1193f804860308855177c5f6a libcpp *** 85934,85947 **** f1dc3523755bc6f47ddfacab38441b1f libcpp/po/cpplib.pot b162dd5957ef5d738de514a988a189d0 libcpp/po/da.gmo 1f79bdfe73ba821e9ac64b2aca257020 libcpp/po/da.po ! 3e652206c5c08b0d63bc03ea2d3e4bfc libcpp/po/de.gmo ! 7cb981d53aa2333c9cfa0f05c9d2c9fd libcpp/po/de.po e0c8ada187620b9ddd9901f9f12e343a libcpp/po/el.gmo b4048e7f9401f622802f1cd0a0657d9f libcpp/po/el.po 170885e2a5084d5d82e7f9cf125c64a1 libcpp/po/eo.gmo 02dccd0724f0195daab312995aaf96ae libcpp/po/eo.po ! 25944d964757994620d5b8a021409d8c libcpp/po/es.gmo ! 839f6cc188167e783eab06b1e310b50d libcpp/po/es.po ef28d2d4022e01cb4c1c5db2c8bae98a libcpp/po/fi.gmo a5e44962ffb640b55034fe54829cdd8b libcpp/po/fi.po e978fc62eb49da7c4f54e95053c5168d libcpp/po/fr.gmo --- 86439,86452 ---- f1dc3523755bc6f47ddfacab38441b1f libcpp/po/cpplib.pot b162dd5957ef5d738de514a988a189d0 libcpp/po/da.gmo 1f79bdfe73ba821e9ac64b2aca257020 libcpp/po/da.po ! c5ea8e4046911f2f4e5ad4f41cac1a88 libcpp/po/de.gmo ! 8a777682366a5c424abca7a8636921c2 libcpp/po/de.po e0c8ada187620b9ddd9901f9f12e343a libcpp/po/el.gmo b4048e7f9401f622802f1cd0a0657d9f libcpp/po/el.po 170885e2a5084d5d82e7f9cf125c64a1 libcpp/po/eo.gmo 02dccd0724f0195daab312995aaf96ae libcpp/po/eo.po ! bec1dcdabfb941f22745ee5db18ffa10 libcpp/po/es.gmo ! fe4e1329bff7a40c9ef6a6d766d38b8a libcpp/po/es.po ef28d2d4022e01cb4c1c5db2c8bae98a libcpp/po/fi.gmo a5e44962ffb640b55034fe54829cdd8b libcpp/po/fi.po e978fc62eb49da7c4f54e95053c5168d libcpp/po/fr.gmo *************** bcbe0b107dacf31d1cf1ca1261d43f1b libcpp *** 85976,85982 **** 56610cf3fd7d260581ebd54124f17a78 libcpp/ucnid.h 89258efea2d9a909c625ed72b6acbd8c libcpp/ucnid.tab a6c2b3de06c7424706b16f4c206396a1 libdecnumber/.gitignore ! 38f8e81cda736eba1dc07fedb2d21727 libdecnumber/ChangeLog 2bd831b17997584e38305782cebe6948 libdecnumber/ChangeLog.jit 1eef4e8e73dcf150b06bd03f9621374a libdecnumber/Makefile.in 2a70099a79e40a57a666d5430a5e2529 libdecnumber/aclocal.m4 --- 86481,86487 ---- 56610cf3fd7d260581ebd54124f17a78 libcpp/ucnid.h 89258efea2d9a909c625ed72b6acbd8c libcpp/ucnid.tab a6c2b3de06c7424706b16f4c206396a1 libdecnumber/.gitignore ! 7c4a46981e1b31d34713e935baf4a96d libdecnumber/ChangeLog 2bd831b17997584e38305782cebe6948 libdecnumber/ChangeLog.jit 1eef4e8e73dcf150b06bd03f9621374a libdecnumber/Makefile.in 2a70099a79e40a57a666d5430a5e2529 libdecnumber/aclocal.m4 *************** a97c47969dfc92a7666dfe3c2e1e1448 libdec *** 86039,86045 **** 7557e8f40c659cd1bb5f753e31c6a143 libdecnumber/dpd/decimal64.c 8bd3494633aae56ffed31440b3d78709 libdecnumber/dpd/decimal64.h 0f6db29710e7075c2fd62bc4478b3b8d libdecnumber/dpd/decimal64Symbols.h ! 334bc217c04f2a7b35e4948136aa9772 libffi/ChangeLog ba66fc19311348d373ec271be939a659 libffi/ChangeLog.libffi fbbc216bc25d759a72ea3e6d734af56b libffi/ChangeLog.libgcj d946d2b97454ad50a1dbfbf48923c5be libffi/ChangeLog.v1 --- 86544,86550 ---- 7557e8f40c659cd1bb5f753e31c6a143 libdecnumber/dpd/decimal64.c 8bd3494633aae56ffed31440b3d78709 libdecnumber/dpd/decimal64.h 0f6db29710e7075c2fd62bc4478b3b8d libdecnumber/dpd/decimal64Symbols.h ! 3555496716856585bd114ba7a86be457 libffi/ChangeLog ba66fc19311348d373ec271be939a659 libffi/ChangeLog.libffi fbbc216bc25d759a72ea3e6d734af56b libffi/ChangeLog.libgcj d946d2b97454ad50a1dbfbf48923c5be libffi/ChangeLog.v1 *************** d47c79b281339983862a8e52d8c73f0f libffi *** 86400,86408 **** 291be426192f460f6a07dfe1c96ab094 libffi/testsuite/libffi.special/special.exp 93fc3ea311b79f64004992807ce75d1e libffi/testsuite/libffi.special/unwindtest.cc 185d0795017fbbe253a13db8e34085f9 libffi/testsuite/libffi.special/unwindtest_ffi_call.cc ! d178bf846e5940d0a9bf7881227fe6c1 libgcc/ChangeLog 90ca8ec10aa72a56ea751ad2cb5c131a libgcc/Makefile.in ! ee9c3606c8369bf6075a3357b128c9e7 libgcc/config.host 312fccd8251056a36e26bad71f9cfaa2 libgcc/config.in 5d16c02b68779d0e7fb45016d4ecb4ac libgcc/config/aarch64/aarch64-unwind.h 646d68758bd6b30ca567cbceb14dfb6a libgcc/config/aarch64/crtfastmath.c --- 86905,86913 ---- 291be426192f460f6a07dfe1c96ab094 libffi/testsuite/libffi.special/special.exp 93fc3ea311b79f64004992807ce75d1e libffi/testsuite/libffi.special/unwindtest.cc 185d0795017fbbe253a13db8e34085f9 libffi/testsuite/libffi.special/unwindtest_ffi_call.cc ! 6eb0d5982b6db18571060241a0f5b0a9 libgcc/ChangeLog 90ca8ec10aa72a56ea751ad2cb5c131a libgcc/Makefile.in ! baa9afece0e8bacf77a73da979ef7ffd libgcc/config.host 312fccd8251056a36e26bad71f9cfaa2 libgcc/config.in 5d16c02b68779d0e7fb45016d4ecb4ac libgcc/config/aarch64/aarch64-unwind.h 646d68758bd6b30ca567cbceb14dfb6a libgcc/config/aarch64/crtfastmath.c *************** b4ebe34df7eb6f156fa0092446240683 libgcc *** 86419,86425 **** 46ad32ea4432c33cc66b5c506f256f85 libgcc/config/aarch64/t-aarch64 a21eb9a6807f6899bae0eba1b99913d8 libgcc/config/aarch64/t-lse 2df62f8f58c3b33868deef587589dd2d libgcc/config/aarch64/t-softfp ! 5a3ab97b50f64a56321f41184d63c204 libgcc/config/aarch64/value-unwind.h 4298c844b474b4c6e1fd422499d78722 libgcc/config/alpha/crtfastmath.c b2a3a03f45b17b1a8b0ce1925942d5e3 libgcc/config/alpha/libgcc-alpha-ldbl.ver 06ec6f348d05ea7a0cf23072a710b067 libgcc/config/alpha/linux-unwind.h --- 86924,86930 ---- 46ad32ea4432c33cc66b5c506f256f85 libgcc/config/aarch64/t-aarch64 a21eb9a6807f6899bae0eba1b99913d8 libgcc/config/aarch64/t-lse 2df62f8f58c3b33868deef587589dd2d libgcc/config/aarch64/t-softfp ! cf8972e02bca2f3487befef7eb41b710 libgcc/config/aarch64/value-unwind.h 4298c844b474b4c6e1fd422499d78722 libgcc/config/alpha/crtfastmath.c b2a3a03f45b17b1a8b0ce1925942d5e3 libgcc/config/alpha/libgcc-alpha-ldbl.ver 06ec6f348d05ea7a0cf23072a710b067 libgcc/config/alpha/linux-unwind.h *************** af04682aec71b972a250792207ece68b libgcc *** 86490,86496 **** d9bcbec2d14baa5135f2a36aef6016bd libgcc/config/arm/bpabi.S 3620d984b369db7d3f3875a80e3b366e libgcc/config/arm/bpabi.c 74837f3eb9bfe8eb95f850587ee60f1c libgcc/config/arm/cmse.c ! 8990a50a3af9cde5f7c274046857dc8a libgcc/config/arm/cmse_nonsecure_call.S f1301f028bc00b88c6525f9b250f22a1 libgcc/config/arm/crtfastmath.c 675c3bba5726e1249196dd110a9aa88c libgcc/config/arm/crti.S 3c823dbff1b7f9aecbe3c7d2cbe147db libgcc/config/arm/crtn.S --- 86995,87001 ---- d9bcbec2d14baa5135f2a36aef6016bd libgcc/config/arm/bpabi.S 3620d984b369db7d3f3875a80e3b366e libgcc/config/arm/bpabi.c 74837f3eb9bfe8eb95f850587ee60f1c libgcc/config/arm/cmse.c ! 34776f3e177219a2c003d0d14c873da9 libgcc/config/arm/cmse_nonsecure_call.S f1301f028bc00b88c6525f9b250f22a1 libgcc/config/arm/crtfastmath.c 675c3bba5726e1249196dd110a9aa88c libgcc/config/arm/crti.S 3c823dbff1b7f9aecbe3c7d2cbe147db libgcc/config/arm/crtn.S *************** f86b268e128ae9507dd4c4ab33f481bd libgcc *** 86528,86534 **** 528c00778fc721cd65682dee59c24986 libgcc/config/avr/lib1funcs.S 622f81485f02d0eac2caaafa7d3a2fd1 libgcc/config/avr/lib2-object.mk 8694b2f379782b84ed6357615cf633d2 libgcc/config/avr/lib2funcs.c ! aa1ef7340b0c7b0a8495ec0fa7482720 libgcc/config/avr/libf7/ChangeLog 01d9cd125602bd97e7101818005c93ea libgcc/config/avr/libf7/asm-defs.h 0b54a2cbfebb93a4e1bddfa3600d6f0b libgcc/config/avr/libf7/f7-renames.h d2e81096820c9d7276656d444c139c73 libgcc/config/avr/libf7/f7-wraps.h --- 87033,87039 ---- 528c00778fc721cd65682dee59c24986 libgcc/config/avr/lib1funcs.S 622f81485f02d0eac2caaafa7d3a2fd1 libgcc/config/avr/lib2-object.mk 8694b2f379782b84ed6357615cf633d2 libgcc/config/avr/lib2funcs.c ! 0463102ac73d8b70755095df6a10d30f libgcc/config/avr/libf7/ChangeLog 01d9cd125602bd97e7101818005c93ea libgcc/config/avr/libf7/asm-defs.h 0b54a2cbfebb93a4e1bddfa3600d6f0b libgcc/config/avr/libf7/f7-renames.h d2e81096820c9d7276656d444c139c73 libgcc/config/avr/libf7/f7-wraps.h *************** c44ec2d162e9b011b2cb833fbdce7145 libgcc *** 86609,86615 **** df9f2dd192dc7f0c2fa7379e97d7dd56 libgcc/config/darwin-64.c 6869661ee0baed578d47394ab32af913 libgcc/config/darwin-crt-tm.c 03e941235ffae6f01e89a827a6ce2281 libgcc/config/darwin-crt3.c ! 9e9354d2ce2c41094a62d88a3c777c4b libgcc/config/darwin10-unwind-find-enc-func.c c71a778a00e36dfcea7f846c3f944d73 libgcc/config/epiphany/crti.S 81ae5aa8ec7128f805369eae26a9ca51 libgcc/config/epiphany/crtint.S 66f1c169dbd8ad3adee5b4141420edf6 libgcc/config/epiphany/crtm1reg-r43.S --- 87114,87121 ---- df9f2dd192dc7f0c2fa7379e97d7dd56 libgcc/config/darwin-64.c 6869661ee0baed578d47394ab32af913 libgcc/config/darwin-crt-tm.c 03e941235ffae6f01e89a827a6ce2281 libgcc/config/darwin-crt3.c ! 3d9ace1569f13aadc86ee3608541f634 libgcc/config/darwin-unwind.ver ! 0a39ed05e14b91757915624896a5823f libgcc/config/darwin10-unwind-find-enc-func.c c71a778a00e36dfcea7f846c3f944d73 libgcc/config/epiphany/crti.S 81ae5aa8ec7128f805369eae26a9ca51 libgcc/config/epiphany/crtint.S 66f1c169dbd8ad3adee5b4141420edf6 libgcc/config/epiphany/crtm1reg-r43.S *************** ee1781f6076fe4696c4710d29bcaa9f2 libgcc *** 86646,86652 **** ef5e3171dd2d470a516d164d207d92ff libgcc/config/frv/cmovh.c 03cc197c444f0f8870572a0117eef530 libgcc/config/frv/cmovw.c ab664bf9a5708e72515970ff0965b3b8 libgcc/config/frv/elf-lib.h ! b8297212b833f4776a7641280acc660f libgcc/config/frv/frv-abi.h f872e5e19a81a0b6e46f857edad025c7 libgcc/config/frv/frvbegin.c 746ecf1f426a2c553d3844d25b655bc1 libgcc/config/frv/frvend.c 6625f9b264471fc539d5f944cfa57762 libgcc/config/frv/lib1funcs.S --- 87152,87158 ---- ef5e3171dd2d470a516d164d207d92ff libgcc/config/frv/cmovh.c 03cc197c444f0f8870572a0117eef530 libgcc/config/frv/cmovw.c ab664bf9a5708e72515970ff0965b3b8 libgcc/config/frv/elf-lib.h ! fc1d34f10c46583f689ff177fb367752 libgcc/config/frv/frv-abi.h f872e5e19a81a0b6e46f857edad025c7 libgcc/config/frv/frvbegin.c 746ecf1f426a2c553d3844d25b655bc1 libgcc/config/frv/frvend.c 6625f9b264471fc539d5f944cfa57762 libgcc/config/frv/lib1funcs.S *************** d94060d50637bba068dccebb10ebd276 libgcc *** 86722,86728 **** 52507966e79820fcaf9d1d53882c0b0a libgcc/config/i386/cygming-crtbegin.c 95f5fe9a887e60b538f2820903427936 libgcc/config/i386/cygming-crtend.c 03b40e9f17bfd6c1c355707b0cc58422 libgcc/config/i386/cygwin.S ! 8e32679f838576e2e29205d7703f12ec libgcc/config/i386/darwin-lib.h c0d64826a289e53ebecbb0cb6c3016b8 libgcc/config/i386/dragonfly-unwind.h 013c38c70c479fff2350a5d3e33f2921 libgcc/config/i386/elf-lib.h 704091e0d895ea6fd720a5692cb233f4 libgcc/config/i386/enable-execute-stack-mingw32.c --- 87228,87234 ---- 52507966e79820fcaf9d1d53882c0b0a libgcc/config/i386/cygming-crtbegin.c 95f5fe9a887e60b538f2820903427936 libgcc/config/i386/cygming-crtend.c 03b40e9f17bfd6c1c355707b0cc58422 libgcc/config/i386/cygwin.S ! 0cf8525eb8819bc0319ad1e52f76e00f libgcc/config/i386/darwin-lib.h c0d64826a289e53ebecbb0cb6c3016b8 libgcc/config/i386/dragonfly-unwind.h 013c38c70c479fff2350a5d3e33f2921 libgcc/config/i386/elf-lib.h 704091e0d895ea6fd720a5692cb233f4 libgcc/config/i386/enable-execute-stack-mingw32.c *************** c4fdf821208a66a41499c5c24c90937a libgcc *** 86733,86740 **** a6eb2958cdf081f46703f5d8ec4d2094 libgcc/config/i386/i386-asm.h a037bdc5fa419df930a70d43dc039b79 libgcc/config/i386/libgcc-bsd.ver 012a445dcbda6978db6335d4e9065689 libgcc/config/i386/libgcc-cygming.ver ! de85512c62993ed6f5116cdecdc4779c libgcc/config/i386/libgcc-darwin.10.4.ver ! 1e807c3227e9733d1ac1d771b0a15b29 libgcc/config/i386/libgcc-darwin.10.5.ver c72b4b801cd63e8e3782ea78ad82877a libgcc/config/i386/libgcc-glibc.ver 2facc8938aca02b18bc1ac4ccc7559bf libgcc/config/i386/libgcc-sol2.ver b8bba8192afb556529f1a6b084c4b95d libgcc/config/i386/linux-unwind.h --- 87239,87245 ---- a6eb2958cdf081f46703f5d8ec4d2094 libgcc/config/i386/i386-asm.h a037bdc5fa419df930a70d43dc039b79 libgcc/config/i386/libgcc-bsd.ver 012a445dcbda6978db6335d4e9065689 libgcc/config/i386/libgcc-cygming.ver ! f4e6907efe8022d7d6833d82ba7e690a libgcc/config/i386/libgcc-darwin.ver c72b4b801cd63e8e3782ea78ad82877a libgcc/config/i386/libgcc-glibc.ver 2facc8938aca02b18bc1ac4ccc7559bf libgcc/config/i386/libgcc-sol2.ver b8bba8192afb556529f1a6b084c4b95d libgcc/config/i386/linux-unwind.h *************** b889d0e6611c04010f9991a8c9e83f52 libgcc *** 86746,86752 **** c6a59a6ff3b7a8f522f74f5bcfb3e841 libgcc/config/i386/savms64.h 6706a482a32249251b09e6de18763a94 libgcc/config/i386/savms64f.h 6636b868b3515dbc4430cd5a3ce9db68 libgcc/config/i386/sfp-exceptions.c ! d34238cdb06dae0b56a3a517467683d3 libgcc/config/i386/sfp-machine.h 0dde3148a4fb2bbe1a9da9ed2e65b7f6 libgcc/config/i386/shadow-stack-unwind.h 02f5e541017d5aa96608b28dd6704669 libgcc/config/i386/sol2-c1.S dee80682121e4932e4bee4f75eac13b0 libgcc/config/i386/sol2-unwind.h --- 87251,87257 ---- c6a59a6ff3b7a8f522f74f5bcfb3e841 libgcc/config/i386/savms64.h 6706a482a32249251b09e6de18763a94 libgcc/config/i386/savms64f.h 6636b868b3515dbc4430cd5a3ce9db68 libgcc/config/i386/sfp-exceptions.c ! 18cab3ac32aa667da0252cb41a976439 libgcc/config/i386/sfp-machine.h 0dde3148a4fb2bbe1a9da9ed2e65b7f6 libgcc/config/i386/shadow-stack-unwind.h 02f5e541017d5aa96608b28dd6704669 libgcc/config/i386/sol2-c1.S dee80682121e4932e4bee4f75eac13b0 libgcc/config/i386/sol2-unwind.h *************** c648b3441acf03960443d5a3d1b7e4d7 libgcc *** 86763,86769 **** c6afe173595c17ffb20e9c76a90f5158 libgcc/config/i386/t-crtstuff 9bd719f83d655207581528ab5e7b7354 libgcc/config/i386/t-cygming a56b9c84f7b8c5427982b9c1ac4d0268 libgcc/config/i386/t-cygwin ! cf50005afc3de52e15cbcb0af41fd862 libgcc/config/i386/t-darwin 2005c91878a4a69d60c9418077eefa97 libgcc/config/i386/t-dlldir 0a87d076e42adda36ab55bbaaac59649 libgcc/config/i386/t-dlldir-x 68adad1226ee1737a6a8d12b84a63297 libgcc/config/i386/t-dragonfly --- 87268,87274 ---- c6afe173595c17ffb20e9c76a90f5158 libgcc/config/i386/t-crtstuff 9bd719f83d655207581528ab5e7b7354 libgcc/config/i386/t-cygming a56b9c84f7b8c5427982b9c1ac4d0268 libgcc/config/i386/t-cygwin ! ab24e8c90feb5a86f9ff59988a9bcc43 libgcc/config/i386/t-darwin 2005c91878a4a69d60c9418077eefa97 libgcc/config/i386/t-dlldir 0a87d076e42adda36ab55bbaaac59649 libgcc/config/i386/t-dlldir-x 68adad1226ee1737a6a8d12b84a63297 libgcc/config/i386/t-dragonfly *************** e5387e909a3b29458cfdda0150e1f8f6 libgcc *** 86781,86787 **** 7f83cb5269303d6f2bc8693886cfecc2 libgcc/config/i386/t-softfp e3f37cf5fbd829324e763c71726907a2 libgcc/config/i386/t-sol2 89444a8a78bd3aa7426e9525cdd7ce25 libgcc/config/i386/t-stack-i386 ! 901b0d4b16a1d751a06ab132d73a8e18 libgcc/config/i386/value-unwind.h fd6ba0c47fa4da68fe8431f945ad2189 libgcc/config/i386/w32-unwind.h ffc8a68dc02aca1cf8703f6ff29109d3 libgcc/config/ia64/__divxf3.S c3b9941b44cdc74dfc42996f7d2d765b libgcc/config/ia64/_fixtfdi.S --- 87286,87292 ---- 7f83cb5269303d6f2bc8693886cfecc2 libgcc/config/i386/t-softfp e3f37cf5fbd829324e763c71726907a2 libgcc/config/i386/t-sol2 89444a8a78bd3aa7426e9525cdd7ce25 libgcc/config/i386/t-stack-i386 ! c824cf913436d953856ef7ac55a84d81 libgcc/config/i386/value-unwind.h fd6ba0c47fa4da68fe8431f945ad2189 libgcc/config/i386/w32-unwind.h ffc8a68dc02aca1cf8703f6ff29109d3 libgcc/config/ia64/__divxf3.S c3b9941b44cdc74dfc42996f7d2d765b libgcc/config/ia64/_fixtfdi.S *************** a5336bdb818cef70b030985f1ecd71d2 libgcc *** 86819,86825 **** 106eb3ec1043b9c1da426cc9d86d298d libgcc/config/ia64/vms-unwind.h 3111db86980b8c9207be8642a36d5dd2 libgcc/config/iq2000/lib2funcs.c 102f7dad8ad6b54434a1b8313d1e42c4 libgcc/config/iq2000/t-iq2000 ! 7c585c5bae5154201ad6698b2d7c3553 libgcc/config/libbid/ChangeLog 877df4b05d912fc2033823fa0eece3af libgcc/config/libbid/_addsub_dd.c a3d813dc882ec4c07e412c32c9b380e1 libgcc/config/libbid/_addsub_sd.c 3cd22bfaff5638bc2cb990fbc4e906cd libgcc/config/libbid/_addsub_td.c --- 87324,87330 ---- 106eb3ec1043b9c1da426cc9d86d298d libgcc/config/ia64/vms-unwind.h 3111db86980b8c9207be8642a36d5dd2 libgcc/config/iq2000/lib2funcs.c 102f7dad8ad6b54434a1b8313d1e42c4 libgcc/config/iq2000/t-iq2000 ! d45ed72194da04b134152c4f522c63ed libgcc/config/libbid/ChangeLog 877df4b05d912fc2033823fa0eece3af libgcc/config/libbid/_addsub_dd.c a3d813dc882ec4c07e412c32c9b380e1 libgcc/config/libbid/_addsub_sd.c 3cd22bfaff5638bc2cb990fbc4e906cd libgcc/config/libbid/_addsub_td.c *************** a321cafc57c9cadd53c9dfd802e8df86 libgcc *** 86977,86983 **** bfb1b8d16adfa283f1f4cf15779599f4 libgcc/config/libbid/bid_round.c b416128a306bd065bd7c98f4ba77dea7 libgcc/config/libbid/bid_sqrt_macros.h 7e8cc23cc881607a78a248e3d9cb0d8b libgcc/config/libgcc-glibc.ver ! 5e552844975595b21cbaabb9a26fd91e libgcc/config/libgcc-libsystem.ver dec7941c6b768594f9c6f7b5576c13bb libgcc/config/lm32/_ashlsi3.S cbfdf4811475d0ce11aee7c97c934146 libgcc/config/lm32/_ashrsi3.S 1439b71efdb14c985a01b4de4f3c5073 libgcc/config/lm32/_divsi3.c --- 87482,87488 ---- bfb1b8d16adfa283f1f4cf15779599f4 libgcc/config/libbid/bid_round.c b416128a306bd065bd7c98f4ba77dea7 libgcc/config/libbid/bid_sqrt_macros.h 7e8cc23cc881607a78a248e3d9cb0d8b libgcc/config/libgcc-glibc.ver ! a5b43383f528298ff2dc85061452e1e6 libgcc/config/libgcc-libsystem.ver dec7941c6b768594f9c6f7b5576c13bb libgcc/config/lm32/_ashlsi3.S cbfdf4811475d0ce11aee7c97c934146 libgcc/config/lm32/_ashrsi3.S 1439b71efdb14c985a01b4de4f3c5073 libgcc/config/lm32/_divsi3.c *************** be0ca098d47ffed69cc52abd5263ba8e libgcc *** 87363,87384 **** 04a992db7c0d56856fa5c774fc0f4038 libgcc/config/pa/gthr-dce.h d69fcc7917835f56522e34c8ce4392c0 libgcc/config/pa/hpux-unwind.h 836c302cadbc0d791e1369e55a27a66e libgcc/config/pa/lib2funcs.S ! 5e991209194091b6704b9a8aa43fdede libgcc/config/pa/linux-atomic.c 4b97431cb318dde7ac8de18aaa93b4ae libgcc/config/pa/linux-unwind.h 6aa1c978826ac9573d2a2049f1c8861e libgcc/config/pa/milli64.S ! d28592b5420bea6238cef27b62037ce2 libgcc/config/pa/pa64-hpux-lib.h 7414dcde650ea3f4fafa8501ce1b4050 libgcc/config/pa/quadlib.c 321129560bb803ddf655636bd9274090 libgcc/config/pa/stublib.c 8a3964d4f1eddb14d9260a0a72a23493 libgcc/config/pa/t-hpux 73420715a92f162a61d33bbfbe7c4dee libgcc/config/pa/t-hpux10 3e293a3e5a4bcd16fb9846c60502af9b libgcc/config/pa/t-linux ! 5877d503fb8e674ccd8cb10023bc7de9 libgcc/config/pa/t-linux64 3a7526d23d38b3c358e838a89cf3ad94 libgcc/config/pa/t-netbsd 3a7526d23d38b3c358e838a89cf3ad94 libgcc/config/pa/t-openbsd 4c55604fec5e632606f19c2f176f1a6c libgcc/config/pa/t-pa64 6b7616abedce76aaa866d73b08ea3a07 libgcc/config/pa/t-slibgcc-dwarf-ver bd9fe0848657120224cd1875ab81c2a3 libgcc/config/pa/t-slibgcc-hpux 463a4121da251ad8e53013810a31914a libgcc/config/pa/t-slibgcc-sjlj-ver 964be72d0cacc353ffda1509b63add90 libgcc/config/pa/t-stublib a2a61a2b6f3c9d3e3bd8cae0b0eb845b libgcc/config/pdp11/t-pdp11 16bc2eb972c773a3c8d3ad6754359686 libgcc/config/pru/asri.c --- 87868,87893 ---- 04a992db7c0d56856fa5c774fc0f4038 libgcc/config/pa/gthr-dce.h d69fcc7917835f56522e34c8ce4392c0 libgcc/config/pa/hpux-unwind.h 836c302cadbc0d791e1369e55a27a66e libgcc/config/pa/lib2funcs.S ! f93d3e65600b59f899eeb75a2ce4fbb0 libgcc/config/pa/linux-atomic.c 4b97431cb318dde7ac8de18aaa93b4ae libgcc/config/pa/linux-unwind.h 6aa1c978826ac9573d2a2049f1c8861e libgcc/config/pa/milli64.S ! c994a1be9265e25766ce6588632f5594 libgcc/config/pa/pa64-hpux-lib.h 7414dcde650ea3f4fafa8501ce1b4050 libgcc/config/pa/quadlib.c + a79b414226404921b618d8e5f26953c8 libgcc/config/pa/sfp-exceptions.c + 5754710ef584399b3f528f33ec9cbd94 libgcc/config/pa/sfp-machine.h 321129560bb803ddf655636bd9274090 libgcc/config/pa/stublib.c + be1d29d3044d55ee3e60d3e74a9e98fe libgcc/config/pa/t-dimode 8a3964d4f1eddb14d9260a0a72a23493 libgcc/config/pa/t-hpux 73420715a92f162a61d33bbfbe7c4dee libgcc/config/pa/t-hpux10 3e293a3e5a4bcd16fb9846c60502af9b libgcc/config/pa/t-linux ! 8b6e1d4848a895dd9e8e030f638c68bc libgcc/config/pa/t-linux64 3a7526d23d38b3c358e838a89cf3ad94 libgcc/config/pa/t-netbsd 3a7526d23d38b3c358e838a89cf3ad94 libgcc/config/pa/t-openbsd 4c55604fec5e632606f19c2f176f1a6c libgcc/config/pa/t-pa64 6b7616abedce76aaa866d73b08ea3a07 libgcc/config/pa/t-slibgcc-dwarf-ver bd9fe0848657120224cd1875ab81c2a3 libgcc/config/pa/t-slibgcc-hpux 463a4121da251ad8e53013810a31914a libgcc/config/pa/t-slibgcc-sjlj-ver + ce4b287e3a507cf1707205fb5c6adfe3 libgcc/config/pa/t-softfp-sfdftf 964be72d0cacc353ffda1509b63add90 libgcc/config/pa/t-stublib a2a61a2b6f3c9d3e3bd8cae0b0eb845b libgcc/config/pdp11/t-pdp11 16bc2eb972c773a3c8d3ad6754359686 libgcc/config/pru/asri.c *************** ec35ce2bbda6827824ffc3c05009a4e8 libgcc *** 87406,87416 **** 57eeca8e717772ac1d7810b93b905b24 libgcc/config/riscv/atomic.c d61879f5ed9372bd52bba7f21bb79dbc libgcc/config/riscv/crti.S 0485c6e233af87295472bb7a9f2767e0 libgcc/config/riscv/crtn.S ! 36212e1f9a332867c979118b4edd1821 libgcc/config/riscv/div.S a40588694a84c949728cad9d80c882cc libgcc/config/riscv/linux-unwind.h 55741074a83dcec597d24becf08808af libgcc/config/riscv/muldi3.S 8bfa30c9ee049a0fd7f62d080f21f090 libgcc/config/riscv/multi3.c ! 0744ea89f672820e59873c09e9d10b1d libgcc/config/riscv/riscv-asm.h fb435631050f85c4c37c35929ffe580e libgcc/config/riscv/save-restore.S 1a3f0dc3144bd4d79e175d5e3c84c799 libgcc/config/riscv/sfp-machine.h c42f201dbf0dcdfa26d4e52583c32f53 libgcc/config/riscv/t-elf --- 87915,87925 ---- 57eeca8e717772ac1d7810b93b905b24 libgcc/config/riscv/atomic.c d61879f5ed9372bd52bba7f21bb79dbc libgcc/config/riscv/crti.S 0485c6e233af87295472bb7a9f2767e0 libgcc/config/riscv/crtn.S ! 9e61d2c99d82eb62c3cd6f1ce53b1ca6 libgcc/config/riscv/div.S a40588694a84c949728cad9d80c882cc libgcc/config/riscv/linux-unwind.h 55741074a83dcec597d24becf08808af libgcc/config/riscv/muldi3.S 8bfa30c9ee049a0fd7f62d080f21f090 libgcc/config/riscv/multi3.c ! e130c43fe91a56eece3d7a0fe64afd9d libgcc/config/riscv/riscv-asm.h fb435631050f85c4c37c35929ffe580e libgcc/config/riscv/save-restore.S 1a3f0dc3144bd4d79e175d5e3c84c799 libgcc/config/riscv/sfp-machine.h c42f201dbf0dcdfa26d4e52583c32f53 libgcc/config/riscv/t-elf *************** da4834ebce5a6c26f26a7c213704493b libgcc *** 87508,87515 **** c64f972d8d826ca87b2b4bfa0194b52c libgcc/config/rs6000/ibm-ldouble-format 94ec58b1250e245aaa0d01eb1e72cb8a libgcc/config/rs6000/ibm-ldouble.c 13bc252ed5254cf124822256760c6df0 libgcc/config/rs6000/libgcc-aix-cxa.ver - 5efce4f8d12233cb085c86ed4a1a9c1f libgcc/config/rs6000/libgcc-darwin.10.4.ver - be6945136f704e95628cd3a045548b80 libgcc/config/rs6000/libgcc-darwin.10.5.ver e6f581502a95454aac51fc58de92ba4b libgcc/config/rs6000/libgcc-glibc.ver 7aa6f4e782960be3e2b43998ef395330 libgcc/config/rs6000/libgcc-ibm-ldouble.ver bcdb179fc7c4ebd3795034bfcf3aa835 libgcc/config/rs6000/linux-unwind.h --- 88017,88022 ---- *************** f91deeea850ca47563c4cc44755a0671 libgcc *** 87522,87528 **** aaa842a435553d5edd10b55f97334012 libgcc/config/rs6000/sol-cn.S 3fa6bf8673b3a7fa2278aeb2fe1824f4 libgcc/config/rs6000/t-aix-cxa 0d6637a7e112c021e7ce371918c7659c libgcc/config/rs6000/t-crtstuff ! bc91baf0523c8475334ca80d6ff265c4 libgcc/config/rs6000/t-darwin a0014912b4b08cfbe887d9945460e370 libgcc/config/rs6000/t-darwin64 a8d6ad9840390eea8e954fb4736e88ff libgcc/config/rs6000/t-e500v1-fp 5679524aee4f23d17957328c5b4336bd libgcc/config/rs6000/t-e500v2-fp --- 88029,88036 ---- aaa842a435553d5edd10b55f97334012 libgcc/config/rs6000/sol-cn.S 3fa6bf8673b3a7fa2278aeb2fe1824f4 libgcc/config/rs6000/t-aix-cxa 0d6637a7e112c021e7ce371918c7659c libgcc/config/rs6000/t-crtstuff ! b780b81d7bccdf7af090dbcd3e639dd1 libgcc/config/rs6000/t-darwin ! a8ea28c94f3264c3602a98b4728fed82 libgcc/config/rs6000/t-darwin-ehs a0014912b4b08cfbe887d9945460e370 libgcc/config/rs6000/t-darwin64 a8d6ad9840390eea8e954fb4736e88ff libgcc/config/rs6000/t-e500v1-fp 5679524aee4f23d17957328c5b4336bd libgcc/config/rs6000/t-e500v2-fp *************** ada9a39786da3b2e999f7440a17a1ed7 libgcc *** 87617,87623 **** 7f567bcd22705a965e07f79e8f68ebaa libgcc/config/stormy16/umodsi3.c f199b38114ce849b77b38bd475d72cff libgcc/config/t-crtfm 060a49bb5c4a53a2125123d4cbd571de libgcc/config/t-crtstuff-pic ! 7fec96c04b71be88732732651ac5dd37 libgcc/config/t-darwin ee7ad6460936fc6f3f89ecb711376477 libgcc/config/t-dfprules d747115cbcc2bd56b6b4f73c350c2ae3 libgcc/config/t-eh-dw2-dip b9d08c1cbead9131f216accd515ec32c libgcc/config/t-fdpbit --- 88125,88132 ---- 7f567bcd22705a965e07f79e8f68ebaa libgcc/config/stormy16/umodsi3.c f199b38114ce849b77b38bd475d72cff libgcc/config/t-crtfm 060a49bb5c4a53a2125123d4cbd571de libgcc/config/t-crtstuff-pic ! 06e78a9599e0fde8f283aa4d9bed8e2e libgcc/config/t-darwin ! f699f9e7159ba2c6033406086c5c8299 libgcc/config/t-darwin-ehs ee7ad6460936fc6f3f89ecb711376477 libgcc/config/t-dfprules d747115cbcc2bd56b6b4f73c350c2ae3 libgcc/config/t-eh-dw2-dip b9d08c1cbead9131f216accd515ec32c libgcc/config/t-fdpbit *************** d2f04dc4b7a8d7df8c1cbc551b037ded libgcc *** 87637,87643 **** eb3161bf886026cdcf8a78cea885fdd2 libgcc/config/t-openbsd-thread 474d97884b393e08b0ce416dd09493bc libgcc/config/t-rtems bf9d89259ee614c5ffe517d943e09be5 libgcc/config/t-slibgcc ! 4b78cd38aff781bc4f8087e2813bcccf libgcc/config/t-slibgcc-darwin 57f27c60e5d8c572d2645821ec5935e0 libgcc/config/t-slibgcc-elf-ver d6e035c76b062969d2034bfb0db3e68b libgcc/config/t-slibgcc-fuchsia 57e4154cb283fd7d9f323f5d85d534d9 libgcc/config/t-slibgcc-gld --- 88146,88152 ---- eb3161bf886026cdcf8a78cea885fdd2 libgcc/config/t-openbsd-thread 474d97884b393e08b0ce416dd09493bc libgcc/config/t-rtems bf9d89259ee614c5ffe517d943e09be5 libgcc/config/t-slibgcc ! 3ecc4173a1b262e4770c789455b2cfc9 libgcc/config/t-slibgcc-darwin 57f27c60e5d8c572d2645821ec5935e0 libgcc/config/t-slibgcc-elf-ver d6e035c76b062969d2034bfb0db3e68b libgcc/config/t-slibgcc-fuchsia 57e4154cb283fd7d9f323f5d85d534d9 libgcc/config/t-slibgcc-gld *************** f78581621e65bbf0249619b566f1b146 libgcc *** 87715,87721 **** e0f4322cac64d40982bfbfdc03906ccb libgcc/dfp-bit.c a0a3642fe7c80d2f72e9bc40fe63b703 libgcc/dfp-bit.h 6f1be68119a2bbd0eade267043c7efcb libgcc/divmod.c ! 23741c417cbbb979853af9d168eab1b8 libgcc/emutls.c aa52a8f7cb881c00c125ed5fd04ed4df libgcc/enable-execute-stack-empty.c 4c5758e6cc866bd89d844e10e0363469 libgcc/enable-execute-stack-mprotect.c 1c12ba10dc00d7250b346f4ed43d41d4 libgcc/find-symver.awk --- 88224,88230 ---- e0f4322cac64d40982bfbfdc03906ccb libgcc/dfp-bit.c a0a3642fe7c80d2f72e9bc40fe63b703 libgcc/dfp-bit.h 6f1be68119a2bbd0eade267043c7efcb libgcc/divmod.c ! 0b29781b0d0c1d54641d84d6c719a992 libgcc/emutls.c aa52a8f7cb881c00c125ed5fd04ed4df libgcc/enable-execute-stack-empty.c 4c5758e6cc866bd89d844e10e0363469 libgcc/enable-execute-stack-mprotect.c 1c12ba10dc00d7250b346f4ed43d41d4 libgcc/find-symver.awk *************** e67a974e1f8cb55dcc72068be10e9832 libgcc *** 87872,87878 **** 8a8461c4f8e531d7252eacf261e3799b libgcc/vtv_end_preinit.c d1bdf1e757a5a9eeb3bc447fc6938f48 libgcc/vtv_start.c f99c5f0b1f8f77dbbb1db940bb61ef02 libgcc/vtv_start_preinit.c ! f948c61bc43604872568d71130a6fe13 libgfortran/ChangeLog 9aca36338382e5b4b730e7779170b24d libgfortran/ChangeLog-2002 80d3edc880c2da0b7a2beec2e2c4f774 libgfortran/ChangeLog-2003 9f0239429993a5e64ed793eb6c55a5c1 libgfortran/ChangeLog-2004 --- 88381,88387 ---- 8a8461c4f8e531d7252eacf261e3799b libgcc/vtv_end_preinit.c d1bdf1e757a5a9eeb3bc447fc6938f48 libgcc/vtv_start.c f99c5f0b1f8f77dbbb1db940bb61ef02 libgcc/vtv_start_preinit.c ! 95e78facf3c971311d7c0a2b14be3033 libgfortran/ChangeLog 9aca36338382e5b4b730e7779170b24d libgfortran/ChangeLog-2002 80d3edc880c2da0b7a2beec2e2c4f774 libgfortran/ChangeLog-2003 9f0239429993a5e64ed793eb6c55a5c1 libgfortran/ChangeLog-2004 *************** a865405049d84fd076beeecff4a3b4ad libgfo *** 88562,88568 **** ef9e78095a4b1a8517a1da6031a1be25 libgfortran/intrinsics/link.c efa969309794305d19fe430a26a5386a libgfortran/intrinsics/move_alloc.c 36cf7b0beb0c08e56ff9049e8a93ef45 libgfortran/intrinsics/mvbits.c ! 8916f7148b95ba03d4424f748d0d336f libgfortran/intrinsics/pack_generic.c 8a0226775787cd399fb29d2c0f304e26 libgfortran/intrinsics/perror.c 2fcd369a7083de5944cfbc9de36f05db libgfortran/intrinsics/rand.c aa9e566ce2905000961dce7bcb442a45 libgfortran/intrinsics/random.c --- 89071,89077 ---- ef9e78095a4b1a8517a1da6031a1be25 libgfortran/intrinsics/link.c efa969309794305d19fe430a26a5386a libgfortran/intrinsics/move_alloc.c 36cf7b0beb0c08e56ff9049e8a93ef45 libgfortran/intrinsics/mvbits.c ! d87cab8c3b37ae3910ae7eefe6a6855c libgfortran/intrinsics/pack_generic.c 8a0226775787cd399fb29d2c0f304e26 libgfortran/intrinsics/perror.c 2fcd369a7083de5944cfbc9de36f05db libgfortran/intrinsics/rand.c aa9e566ce2905000961dce7bcb442a45 libgfortran/intrinsics/random.c *************** e3e86019491a40bd4f45424d7ce11037 libgo/ *** 93263,93269 **** c5574d106d35be5d94e80301b0855ada libgo/testsuite/libgo-test-support.exp.in bf162aa572f7b96b25dbd2b027845d32 libgo/testsuite/libgo.testmain/testmain.exp cc9d2a0e34e31ba866a8caf9f46f48f3 libgomp/.gitattributes ! ebf26f7026e3f83f6729d17441596bb2 libgomp/ChangeLog 0d55aa862aee66efdc5f8d62c94ff8fb libgomp/ChangeLog.graphite 775674136485d314e8cfa08ec26c4fc4 libgomp/Makefile.am cc0f858ff11f575dddb9c6738a27e009 libgomp/Makefile.in --- 93772,93778 ---- c5574d106d35be5d94e80301b0855ada libgo/testsuite/libgo-test-support.exp.in bf162aa572f7b96b25dbd2b027845d32 libgo/testsuite/libgo.testmain/testmain.exp cc9d2a0e34e31ba866a8caf9f46f48f3 libgomp/.gitattributes ! ec2a66db82d0f24a63e3418b3247e9ad libgomp/ChangeLog 0d55aa862aee66efdc5f8d62c94ff8fb libgomp/ChangeLog.graphite 775674136485d314e8cfa08ec26c4fc4 libgomp/Makefile.am cc0f858ff11f575dddb9c6738a27e009 libgomp/Makefile.in *************** a093268f0aff101841cae70e1687df24 libgom *** 93311,93317 **** af315838686f7af6cdffd5ecc842f150 libgomp/config/gcn/team.c cf17e7c7438f7a965af7e87f2061f9b6 libgomp/config/gcn/time.c d0d13a906e96f70ffaf885be3e18fed5 libgomp/config/hpux/plugin-suffix.h ! e231beae24cde39b8d15d18ae0ede848 libgomp/config/linux/affinity.c 789cef084fcc44283227869bce3f3e54 libgomp/config/linux/alpha/futex.h 80dabbe0ad3609a72e78ef109a79184d libgomp/config/linux/bar.c b85366ae34b87988c342cff0a52d1506 libgomp/config/linux/bar.h --- 93820,93826 ---- af315838686f7af6cdffd5ecc842f150 libgomp/config/gcn/team.c cf17e7c7438f7a965af7e87f2061f9b6 libgomp/config/gcn/time.c d0d13a906e96f70ffaf885be3e18fed5 libgomp/config/hpux/plugin-suffix.h ! 56f6eae10dd75e1e2a14368829c8817d libgomp/config/linux/affinity.c 789cef084fcc44283227869bce3f3e54 libgomp/config/linux/alpha/futex.h 80dabbe0ad3609a72e78ef109a79184d libgomp/config/linux/bar.c b85366ae34b87988c342cff0a52d1506 libgomp/config/linux/bar.h *************** fc96df2ec557da944078791fe7c1f12f libgom *** 93379,93386 **** efc434763cbe71b67359f1858f6c9480 libgomp/config/rtems/sem.c 4d3a8b6f34059afa087aa981d61460dd libgomp/config/rtems/sem.h af41d1d04a4112345554ca8b8a072ed9 libgomp/config/t-aix ! 7fdc6ca37533a57dd7a24a6e6bf58085 libgomp/configure ! 188d1535492124a0b091a5e3dd96d429 libgomp/configure.ac 5b8ec995a772307aacae5779580b5817 libgomp/configure.tgt 705ffb59b51affa5d25feededd4bdd63 libgomp/critical.c 97efd7efc8cc031e7446d5dc7088a851 libgomp/env.c --- 93888,93895 ---- efc434763cbe71b67359f1858f6c9480 libgomp/config/rtems/sem.c 4d3a8b6f34059afa087aa981d61460dd libgomp/config/rtems/sem.h af41d1d04a4112345554ca8b8a072ed9 libgomp/config/t-aix ! a770c6d5cd51dc1a0736d60fd0f0fc57 libgomp/configure ! ab9ea228856e2fe51dd944933ffc6483 libgomp/configure.ac 5b8ec995a772307aacae5779580b5817 libgomp/configure.tgt 705ffb59b51affa5d25feededd4bdd63 libgomp/critical.c 97efd7efc8cc031e7446d5dc7088a851 libgomp/env.c *************** e372584ef8304cf52e4e09a9fc05adf3 libgom *** 93436,93442 **** e6cf92cd98976f129367e400696fabbb libgomp/splay-tree.c 48ca4acfe2742359f3e2a732ec5d92d4 libgomp/splay-tree.h 3671c9767a3fc1f7e8f80f6478c46c2e libgomp/target.c ! eaa2b7e3b769b69f211e2acada293a65 libgomp/task.c ff8d8695435d2fd418bcc6437db02562 libgomp/taskloop.c 1d1cca28977e6aef439521c8d10eed90 libgomp/team.c 8d61131215921c894f5e0449c79c0a18 libgomp/teams.c --- 93945,93951 ---- e6cf92cd98976f129367e400696fabbb libgomp/splay-tree.c 48ca4acfe2742359f3e2a732ec5d92d4 libgomp/splay-tree.h 3671c9767a3fc1f7e8f80f6478c46c2e libgomp/target.c ! 7d9ef00b8b9879aafb854635ed8dcd09 libgomp/task.c ff8d8695435d2fd418bcc6437db02562 libgomp/taskloop.c 1d1cca28977e6aef439521c8d10eed90 libgomp/team.c 8d61131215921c894f5e0449c79c0a18 libgomp/teams.c *************** a0864a470dcfab5610654831f9ec1740 libgom *** 93893,93898 **** --- 94402,94408 ---- 1cca2a92d0182ae3c650964de6d87d0a libgomp/testsuite/libgomp.c/critical-2.c b5604fce8e01b4e305a8c0a4563d1aa9 libgomp/testsuite/libgomp.c/debug-1.c 9c2e77575175172ebb8ff9301c063d3d libgomp/testsuite/libgomp.c/declare-variant-1.c + 6d6b0531c9f74483e6111b636da2edf2 libgomp/testsuite/libgomp.c/declare-variant-2.c de26bcca8c4e027a5ce130d6ff6fc370 libgomp/testsuite/libgomp.c/depend-1.c f064386a2df301c3135834944af37de9 libgomp/testsuite/libgomp.c/depend-10.c e46784f3cdfb38c461a2af6e0d9094a0 libgomp/testsuite/libgomp.c/depend-2.c *************** bb5f1add3b172a6350a63ac4065e26ec libgom *** 94019,94024 **** --- 94529,94538 ---- ecc1971bfd0bc04115af17ac694a0431 libgomp/testsuite/libgomp.c/parloops-exit-first-loop-alt-6.c f6ff904d877753394a1482a595ff74d0 libgomp/testsuite/libgomp.c/parloops-exit-first-loop-alt-7.c e2af3bc3621d7e03158bdd391ec72c47 libgomp/testsuite/libgomp.c/parloops-exit-first-loop-alt.c + ebdfdc0bfc1675a26f73ba66329d6e75 libgomp/testsuite/libgomp.c/places-6.c + dce925481bd33e4b6155a992941a2741 libgomp/testsuite/libgomp.c/places-7.c + 033508b78702497acf629bd938d3000c libgomp/testsuite/libgomp.c/places-8.c + bb57a9ccf51a738ab2985a513801a658 libgomp/testsuite/libgomp.c/pr104385.c c522146f1617da47efbc34dedb563f61 libgomp/testsuite/libgomp.c/pr24455-1.c 4d9e31cef64ff399334db6c29e3a07db libgomp/testsuite/libgomp.c/pr24455.c 5f9c41745fbf27e0d2ca8e182c9ff34f libgomp/testsuite/libgomp.c/pr26171.c *************** e8a3245c095430c8ef2413afe2ee4c48 libgom *** 95202,95208 **** 1d2e2e1ab9f0d92351625f2c5661dbb8 libgomp/testsuite/libgomp.oacc-fortran/update-dt-array.f90 989e6535f20045be32e9e91643a0b08f libgomp/testsuite/libgomp.oacc-fortran/vector-routine.f90 8ad28ef1808c27a75ad52229a13307c4 libgomp/work.c ! b24a908632c9a0dc2704167432f8d906 libhsail-rt/ChangeLog 9147b482b39962a71e580b4a8265285e libhsail-rt/Makefile.am f63e3c959c7490f1fbe708067e4884ae libhsail-rt/Makefile.in de97a355fadb5753d182cbcf06b1b33a libhsail-rt/README --- 95716,95722 ---- 1d2e2e1ab9f0d92351625f2c5661dbb8 libgomp/testsuite/libgomp.oacc-fortran/update-dt-array.f90 989e6535f20045be32e9e91643a0b08f libgomp/testsuite/libgomp.oacc-fortran/vector-routine.f90 8ad28ef1808c27a75ad52229a13307c4 libgomp/work.c ! 0600fee6b19aff2c196bbd8652e43fa4 libhsail-rt/ChangeLog 9147b482b39962a71e580b4a8265285e libhsail-rt/Makefile.am f63e3c959c7490f1fbe708067e4884ae libhsail-rt/Makefile.in de97a355fadb5753d182cbcf06b1b33a libhsail-rt/README *************** f35af2a2efaa8dd337095878b57cabf5 libhsa *** 95229,95235 **** ef9f05873915c22cae79ef5545355353 libhsail-rt/target-config.h.in 99c2e5e712b990ee07be10f53e41f3fb libiberty/.gitignore a916467b91076e631dd8edb7424769c7 libiberty/COPYING.LIB ! 2e723c4eecde78336b4c87dc361eb214 libiberty/ChangeLog 347c31392973de6a4872d540c1718dc1 libiberty/ChangeLog.jit d2b139408a3f08c5813183e34dc39b38 libiberty/Makefile.in c68dbf7834af4281ebd84caa3fd54680 libiberty/README --- 95743,95749 ---- ef9f05873915c22cae79ef5545355353 libhsail-rt/target-config.h.in 99c2e5e712b990ee07be10f53e41f3fb libiberty/.gitignore a916467b91076e631dd8edb7424769c7 libiberty/COPYING.LIB ! 3ef05da1891969dfc77c23fe81145f5f libiberty/ChangeLog 347c31392973de6a4872d540c1718dc1 libiberty/ChangeLog.jit d2b139408a3f08c5813183e34dc39b38 libiberty/Makefile.in c68dbf7834af4281ebd84caa3fd54680 libiberty/README *************** c490c2d0e84347da40a272a019f71dd4 libibe *** 95258,95265 **** 044204f5b4bcac5eae2face0602129ae libiberty/config/mh-fbsd21 904bdcd9daf97fa55a9ca8901ffe7435 libiberty/config/mh-openedition 38e76da568ab25260754fdb9d5080513 libiberty/config/mh-windows ! 8a192359bbc0820a9a92f5094c13c48e libiberty/configure ! 651f598ea71875086af3efc4345dcd54 libiberty/configure.ac 5824bd0f9be9f4fa74bb3bdc7fd9431c libiberty/configure.com 3f7c04aad9685c914253ef29a611199e libiberty/copying-lib.texi fe053283d3559af3ec5cac45f8ead009 libiberty/copysign.c --- 95772,95779 ---- 044204f5b4bcac5eae2face0602129ae libiberty/config/mh-fbsd21 904bdcd9daf97fa55a9ca8901ffe7435 libiberty/config/mh-openedition 38e76da568ab25260754fdb9d5080513 libiberty/config/mh-windows ! 56a45e5f8af31c8caed97f4e4dc5379f libiberty/configure ! a93da0f9e4f38f080e092efb748971a0 libiberty/configure.ac 5824bd0f9be9f4fa74bb3bdc7fd9431c libiberty/configure.com 3f7c04aad9685c914253ef29a611199e libiberty/copying-lib.texi fe053283d3559af3ec5cac45f8ead009 libiberty/copysign.c *************** b0bfa24a5463b326e70dd400a27201c8 libibe *** 95337,95344 **** 284bb7a096480b355b75c337086220a2 libiberty/sigsetmask.c 51026799cd2d665738861e8d6c917701 libiberty/simple-object-coff.c 31967686f407e6ca1bdd2a1fa1cce850 libiberty/simple-object-common.h ! 3fce95806e3e36cd4f4b130ef5d506b4 libiberty/simple-object-elf.c ! f5c136491aacb4f86c42ef3c4a678b13 libiberty/simple-object-mach-o.c 159199682f4dd7bbff930e9d8bd572fe libiberty/simple-object-xcoff.c 57fb43d2b927f5e971297262fcefd35b libiberty/simple-object.c 4863a11e04a2021af582edf86f156954 libiberty/simple-object.txh --- 95851,95858 ---- 284bb7a096480b355b75c337086220a2 libiberty/sigsetmask.c 51026799cd2d665738861e8d6c917701 libiberty/simple-object-coff.c 31967686f407e6ca1bdd2a1fa1cce850 libiberty/simple-object-common.h ! f1c1668595f1ff3168ebae34df2c6049 libiberty/simple-object-elf.c ! 699ef340f26efedcc9fba9f8cf58cf14 libiberty/simple-object-mach-o.c 159199682f4dd7bbff930e9d8bd572fe libiberty/simple-object-xcoff.c 57fb43d2b927f5e971297262fcefd35b libiberty/simple-object.c 4863a11e04a2021af582edf86f156954 libiberty/simple-object.txh *************** aac44ef288c8181046489935c34b70f0 libibe *** 95390,95402 **** 563ac1fd45c903826633c0b3773d5b8f libiberty/xasprintf.c f32b581d10bcc500277b6f4b4f923a4e libiberty/xatexit.c 58d5efcbeda8b76df09a27fd7adac3e0 libiberty/xexit.c ! ecf9feade1fe158968a07ebbabcd41ea libiberty/xmalloc.c b2c289eb14e9197dcad172f3acba12b7 libiberty/xmemdup.c 4746095b1b67693ab6e78ed72ead1235 libiberty/xstrdup.c 6f774a92661ca4a067f1691a7925524b libiberty/xstrerror.c 8d3c8fb3f736a2aa560ea573c413e8a7 libiberty/xstrndup.c e99d7e473939c4eba9b0590e304ce757 libiberty/xvasprintf.c ! 918e1c89d876ace56b5f1bdd3d30a4d4 libitm/ChangeLog a9df0726c501bf71a46f426068e8fc9f libitm/Makefile.am 06bb67375770bbbe550b5708624ed9d8 libitm/Makefile.in af64519b66d5357841d3fcdec64563ed libitm/aatree.cc --- 95904,95916 ---- 563ac1fd45c903826633c0b3773d5b8f libiberty/xasprintf.c f32b581d10bcc500277b6f4b4f923a4e libiberty/xatexit.c 58d5efcbeda8b76df09a27fd7adac3e0 libiberty/xexit.c ! d82021d2287ed5eb95a7e8c6e71d6c9a libiberty/xmalloc.c b2c289eb14e9197dcad172f3acba12b7 libiberty/xmemdup.c 4746095b1b67693ab6e78ed72ead1235 libiberty/xstrdup.c 6f774a92661ca4a067f1691a7925524b libiberty/xstrerror.c 8d3c8fb3f736a2aa560ea573c413e8a7 libiberty/xstrndup.c e99d7e473939c4eba9b0590e304ce757 libiberty/xvasprintf.c ! 4a6c2b57c38c180822666ad7c42a8d10 libitm/ChangeLog a9df0726c501bf71a46f426068e8fc9f libitm/Makefile.am 06bb67375770bbbe550b5708624ed9d8 libitm/Makefile.in af64519b66d5357841d3fcdec64563ed libitm/aatree.cc *************** b4e503ecfdccc9f13da8f73eeb6f23a9 libitm *** 95500,95506 **** ef24198422c19f99b0c41be6a16f7081 libitm/testsuite/libitm.c/txrelease.c fe2e602544303e0ca40c8acd58bf0397 libitm/useraction.cc c3a4f9a7b553245bf2dbb55c53767427 libitm/util.cc ! b664450e954347d714c6c9ce97b6bb12 libobjc/ChangeLog fee63cfea98fac80ab4c9369ce19765a libobjc/Makefile.in 0b2f74b5c1588ee9de0dd076fccc99a6 libobjc/NXConstStr.m df7a2af88216fb36f0319f328ada2fb8 libobjc/Object.m --- 96014,96020 ---- ef24198422c19f99b0c41be6a16f7081 libitm/testsuite/libitm.c/txrelease.c fe2e602544303e0ca40c8acd58bf0397 libitm/useraction.cc c3a4f9a7b553245bf2dbb55c53767427 libitm/util.cc ! 82b71d58ac5e330e61497928e573d767 libobjc/ChangeLog fee63cfea98fac80ab4c9369ce19765a libobjc/Makefile.in 0b2f74b5c1588ee9de0dd076fccc99a6 libobjc/NXConstStr.m df7a2af88216fb36f0319f328ada2fb8 libobjc/Object.m *************** e514cfffa12c9e3a276f91bda41431b4 libobj *** 95557,95563 **** b19a45655f215076ddf0ba0abecfbb45 libobjc/selector.c 1c03202bdb561211ad5e1d73cbb0172e libobjc/sendmsg.c efb54be80262d2dd7d3b30974990576e libobjc/thr.c ! 2f60dcade9b139a611a8af0b0bfc2061 liboffloadmic/ChangeLog 99e2b0817f42c602b520261f7dee183b liboffloadmic/Makefile.am a64a74f82774f355013471ad4dbe5014 liboffloadmic/Makefile.in ab5ae12a0dda7edadc0bd2be40ccff6a liboffloadmic/aclocal.m4 --- 96071,96077 ---- b19a45655f215076ddf0ba0abecfbb45 libobjc/selector.c 1c03202bdb561211ad5e1d73cbb0172e libobjc/sendmsg.c efb54be80262d2dd7d3b30974990576e libobjc/thr.c ! e85300e88baba6ec17a08d77fc3ce9b9 liboffloadmic/ChangeLog 99e2b0817f42c602b520261f7dee183b liboffloadmic/Makefile.am a64a74f82774f355013471ad4dbe5014 liboffloadmic/Makefile.in ab5ae12a0dda7edadc0bd2be40ccff6a liboffloadmic/aclocal.m4 *************** b1def68202639bd452fb59aea3371fe4 liboff *** 95645,95651 **** 4659326a13bd5fed47bb680ddb6f5dc3 liboffloadmic/runtime/orsl-lite/include/orsl-lite.h cc603cdf253cc686bfcee192bb7630df liboffloadmic/runtime/orsl-lite/lib/orsl-lite.c dff5c8575c49d6aa71e549b0fa021479 liboffloadmic/runtime/orsl-lite/version.txt ! ab3c4a9ccf830fc6ee01cece61177712 libphobos/ChangeLog 33bab560c80ad2bb8f6a01c76e8fac58 libphobos/Makefile.am c82f2c9df9a32b41c885f634fd4618b4 libphobos/Makefile.in ee88c20a7744a2305503e1670f3b7889 libphobos/README.gcc --- 96159,96165 ---- 4659326a13bd5fed47bb680ddb6f5dc3 liboffloadmic/runtime/orsl-lite/include/orsl-lite.h cc603cdf253cc686bfcee192bb7630df liboffloadmic/runtime/orsl-lite/lib/orsl-lite.c dff5c8575c49d6aa71e549b0fa021479 liboffloadmic/runtime/orsl-lite/version.txt ! 793d5c99ec5ebb7fca5998ec76aa8152 libphobos/ChangeLog 33bab560c80ad2bb8f6a01c76e8fac58 libphobos/Makefile.am c82f2c9df9a32b41c885f634fd4618b4 libphobos/Makefile.in ee88c20a7744a2305503e1670f3b7889 libphobos/README.gcc *************** fbb3c30724cb241010afacb0505c53e7 libpho *** 95654,95660 **** 4923b1152206303a26c7dfb87f5de315 libphobos/config.h.in e1132d289faa02ff818735f097e6961d libphobos/configure 844b7bd59219ff22200c109d3daca5b4 libphobos/configure.ac ! 1561aa0dddb59baab61546f1413c767f libphobos/configure.tgt 4fc4fe1f005bbbe92182c492dfa11879 libphobos/d_rules.am 8aa3148471595dc8cae4ec62919a57ea libphobos/libdruntime/LICENSE a2e3d8e50b683be1bb2a3f71654cf253 libphobos/libdruntime/MERGE --- 96168,96174 ---- 4923b1152206303a26c7dfb87f5de315 libphobos/config.h.in e1132d289faa02ff818735f097e6961d libphobos/configure 844b7bd59219ff22200c109d3daca5b4 libphobos/configure.ac ! 5d0cb0ba840d0da4d02d728646c1995f libphobos/configure.tgt 4fc4fe1f005bbbe92182c492dfa11879 libphobos/d_rules.am 8aa3148471595dc8cae4ec62919a57ea libphobos/libdruntime/LICENSE a2e3d8e50b683be1bb2a3f71654cf253 libphobos/libdruntime/MERGE *************** d9431d9349d8904f044016098d57ed93 libpho *** 95665,95671 **** f7d57528e369858a460619fc3fd71cdb libphobos/libdruntime/config/aarch64/switchcontext.S 6453f31e003a8235b632df6d25155d41 libphobos/libdruntime/config/arm/switchcontext.S ea455c0596f7024208c4a2e9063cc4c2 libphobos/libdruntime/config/common/threadasm.S ! 8022403e7c6803acaf21cbb861ce8589 libphobos/libdruntime/config/mingw/msvc.c 46cb95493bf5b06dabba4d1f813b9da6 libphobos/libdruntime/config/mingw/switchcontext.S c12b05a45964bf4bdae4603ae4ce47b5 libphobos/libdruntime/config/mips/switchcontext.S 01a90ff80c4d60c00aadbcb7adefaf73 libphobos/libdruntime/config/powerpc/switchcontext.S --- 96179,96185 ---- f7d57528e369858a460619fc3fd71cdb libphobos/libdruntime/config/aarch64/switchcontext.S 6453f31e003a8235b632df6d25155d41 libphobos/libdruntime/config/arm/switchcontext.S ea455c0596f7024208c4a2e9063cc4c2 libphobos/libdruntime/config/common/threadasm.S ! f1ce8a10d7b7eedf458048527aa8154b libphobos/libdruntime/config/mingw/msvc.c 46cb95493bf5b06dabba4d1f813b9da6 libphobos/libdruntime/config/mingw/switchcontext.S c12b05a45964bf4bdae4603ae4ce47b5 libphobos/libdruntime/config/mips/switchcontext.S 01a90ff80c4d60c00aadbcb7adefaf73 libphobos/libdruntime/config/powerpc/switchcontext.S *************** c4670d2d6c9210cd8b63dd16ea2d4c7e libpho *** 95773,95779 **** 894ff2238ebbebe3242c4209a893c05b libphobos/libdruntime/core/sys/dragonflybsd/sys/socket.d 1edd21f71df6ed90f611f5f352b3166c libphobos/libdruntime/core/sys/dragonflybsd/sys/sysctl.d f14294df112fde328fa8d60fe9777a4c libphobos/libdruntime/core/sys/dragonflybsd/time.d ! 11d346220afca0260d90a23b42154bf7 libphobos/libdruntime/core/sys/freebsd/config.d db0c50d9548853a0e6d6e04514075c2d libphobos/libdruntime/core/sys/freebsd/dlfcn.d af280329e0c803d82636283b14c46642 libphobos/libdruntime/core/sys/freebsd/err.d 380100960f334f1ed62e46fcde0154f3 libphobos/libdruntime/core/sys/freebsd/execinfo.d --- 96287,96293 ---- 894ff2238ebbebe3242c4209a893c05b libphobos/libdruntime/core/sys/dragonflybsd/sys/socket.d 1edd21f71df6ed90f611f5f352b3166c libphobos/libdruntime/core/sys/dragonflybsd/sys/sysctl.d f14294df112fde328fa8d60fe9777a4c libphobos/libdruntime/core/sys/dragonflybsd/time.d ! 1444514d2815d1ade27a97ed079c78e2 libphobos/libdruntime/core/sys/freebsd/config.d db0c50d9548853a0e6d6e04514075c2d libphobos/libdruntime/core/sys/freebsd/dlfcn.d af280329e0c803d82636283b14c46642 libphobos/libdruntime/core/sys/freebsd/err.d 380100960f334f1ed62e46fcde0154f3 libphobos/libdruntime/core/sys/freebsd/execinfo.d *************** c4d1a3c15ffb9d69c5111e4fd2d9eed5 libpho *** 95894,95900 **** 920e611edb76252a28fadbc6f1f7290c libphobos/libdruntime/core/sys/posix/sys/select.d 3f0160fd3aef93cff923512013076f31 libphobos/libdruntime/core/sys/posix/sys/shm.d af2ed3c00c9dfcc030db67502b701893 libphobos/libdruntime/core/sys/posix/sys/socket.d ! 0771629aad6d79f026a4d9326819a63b libphobos/libdruntime/core/sys/posix/sys/stat.d a1bfb009ab16e1b9ac568b1bdee35fac libphobos/libdruntime/core/sys/posix/sys/statvfs.d f71ae7f996ce3771b140c9a921b5aeb9 libphobos/libdruntime/core/sys/posix/sys/time.d 3ae60f821a06e5d186bca19aba1d47e6 libphobos/libdruntime/core/sys/posix/sys/ttycom.d --- 96408,96414 ---- 920e611edb76252a28fadbc6f1f7290c libphobos/libdruntime/core/sys/posix/sys/select.d 3f0160fd3aef93cff923512013076f31 libphobos/libdruntime/core/sys/posix/sys/shm.d af2ed3c00c9dfcc030db67502b701893 libphobos/libdruntime/core/sys/posix/sys/socket.d ! d1a065cefdde38d41ee3b3018f769a41 libphobos/libdruntime/core/sys/posix/sys/stat.d a1bfb009ab16e1b9ac568b1bdee35fac libphobos/libdruntime/core/sys/posix/sys/statvfs.d f71ae7f996ce3771b140c9a921b5aeb9 libphobos/libdruntime/core/sys/posix/sys/time.d 3ae60f821a06e5d186bca19aba1d47e6 libphobos/libdruntime/core/sys/posix/sys/ttycom.d *************** a6887674d81fb7f6e0b970616305f770 libpho *** 96096,96103 **** 3fc2f9ae527422e5d960625685f28d13 libphobos/libdruntime/core/sys/windows/wtsapi32.d 431b79a9c95d40f30daad89d9ed98726 libphobos/libdruntime/core/sys/windows/wtypes.d b889a41034dc19351fd74b8d7199c6f1 libphobos/libdruntime/core/thread/context.d ! 312b976c2fca3b1d8b9639eea51fe481 libphobos/libdruntime/core/thread/fiber.d ! 0dd1fe337ca623145e20ebb3c5b0aa00 libphobos/libdruntime/core/thread/osthread.d 9b6ee3a7c47a4d264ce79b0c16495747 libphobos/libdruntime/core/thread/package.d ca894a1fd05d407c5cbf06f783910779 libphobos/libdruntime/core/thread/threadbase.d c1ed5b58527141cfd45c44e71ae05ec8 libphobos/libdruntime/core/thread/threadgroup.d --- 96610,96617 ---- 3fc2f9ae527422e5d960625685f28d13 libphobos/libdruntime/core/sys/windows/wtsapi32.d 431b79a9c95d40f30daad89d9ed98726 libphobos/libdruntime/core/sys/windows/wtypes.d b889a41034dc19351fd74b8d7199c6f1 libphobos/libdruntime/core/thread/context.d ! f199f89af859358f15bae7a290ba9f13 libphobos/libdruntime/core/thread/fiber.d ! 765b5cbcf2313a0962e9dea47253fce0 libphobos/libdruntime/core/thread/osthread.d 9b6ee3a7c47a4d264ce79b0c16495747 libphobos/libdruntime/core/thread/package.d ca894a1fd05d407c5cbf06f783910779 libphobos/libdruntime/core/thread/threadbase.d c1ed5b58527141cfd45c44e71ae05ec8 libphobos/libdruntime/core/thread/threadgroup.d *************** a29875e6acf5d065eab3c5037a3b3e8c libpho *** 96120,96126 **** ba6c574496316ee8452cb145f4f816fb libphobos/libdruntime/gcc/config.d.in d1bc6dd2550ef17d320b1583376b8b36 libphobos/libdruntime/gcc/deh.d bffb543e12c3ce864f73bb97ca4107ae libphobos/libdruntime/gcc/drtstuff.c ! cd0f98cd27c9a5b12a111827e95e712f libphobos/libdruntime/gcc/emutls.d 9a777f758428471cbf8230c1c999b6df libphobos/libdruntime/gcc/gthread.d 952bb8e2b4c008fd81f8acb0f0c972b9 libphobos/libdruntime/gcc/libbacktrace.d.in 8cf9845da9c1aedb6ce9878ed08c9df8 libphobos/libdruntime/gcc/sections/common.d --- 96634,96640 ---- ba6c574496316ee8452cb145f4f816fb libphobos/libdruntime/gcc/config.d.in d1bc6dd2550ef17d320b1583376b8b36 libphobos/libdruntime/gcc/deh.d bffb543e12c3ce864f73bb97ca4107ae libphobos/libdruntime/gcc/drtstuff.c ! 4ed9b6c174a2679960bcb7ec76b3ec47 libphobos/libdruntime/gcc/emutls.d 9a777f758428471cbf8230c1c999b6df libphobos/libdruntime/gcc/gthread.d 952bb8e2b4c008fd81f8acb0f0c972b9 libphobos/libdruntime/gcc/libbacktrace.d.in 8cf9845da9c1aedb6ce9878ed08c9df8 libphobos/libdruntime/gcc/sections/common.d *************** f0442e8b8974938ded0d17389f8b0608 libpho *** 96380,96386 **** 245b43d36cad9840fce44fbf4358d424 libphobos/testsuite/libphobos.typeinfo/typeinfo.exp 9b10185286c1d2167a91a48b650c30fd libphobos/testsuite/testsuite_flags.in a916467b91076e631dd8edb7424769c7 libquadmath/COPYING.LIB ! fe1f63fed9082e37e5bd630644bbdacf libquadmath/ChangeLog 4696eddf264dd090e144b4849b0a6d91 libquadmath/Makefile.am 644a78a01d94abe28b364eaa21142d82 libquadmath/Makefile.in d9afbc1f1e04c7e461265ff9323cc6f4 libquadmath/acinclude.m4 --- 96894,96900 ---- 245b43d36cad9840fce44fbf4358d424 libphobos/testsuite/libphobos.typeinfo/typeinfo.exp 9b10185286c1d2167a91a48b650c30fd libphobos/testsuite/testsuite_flags.in a916467b91076e631dd8edb7424769c7 libquadmath/COPYING.LIB ! 082fc14a59e440c9da61462ac0a56041 libquadmath/ChangeLog 4696eddf264dd090e144b4849b0a6d91 libquadmath/Makefile.am 644a78a01d94abe28b364eaa21142d82 libquadmath/Makefile.in d9afbc1f1e04c7e461265ff9323cc6f4 libquadmath/acinclude.m4 *************** a81cc82679e80c86cfbd5575867450d0 libqua *** 96520,96526 **** af84fa5118f4adec8393614994e1c4d6 libquadmath/strtod/strtoflt128.c d15a18f7c46ba2add6148edc5b7563c0 libquadmath/strtod/tens_in_limb.c 12c73a846f7668d29de720bd79502bef libquadmath/update-quadmath.py ! e33d7de85e03d9e7e2e448ec1ba45d1a libsanitizer/ChangeLog 63916ba64a3cfa7ce2809fb46ab38597 libsanitizer/HOWTO_MERGE 0249c37748936faf5b1efd5789587909 libsanitizer/LICENSE.TXT 4b97cb7f10927471b74a1536f5472643 libsanitizer/LOCAL_PATCHES --- 97034,97040 ---- af84fa5118f4adec8393614994e1c4d6 libquadmath/strtod/strtoflt128.c d15a18f7c46ba2add6148edc5b7563c0 libquadmath/strtod/tens_in_limb.c 12c73a846f7668d29de720bd79502bef libquadmath/update-quadmath.py ! b292904740befccece28f220ae057841 libsanitizer/ChangeLog 63916ba64a3cfa7ce2809fb46ab38597 libsanitizer/HOWTO_MERGE 0249c37748936faf5b1efd5789587909 libsanitizer/LICENSE.TXT 4b97cb7f10927471b74a1536f5472643 libsanitizer/LOCAL_PATCHES *************** b2d0b3ddb40abcef5cc5540d41362590 libsan *** 96562,96568 **** c7d170a96441edb85be872bfa2afbf4e libsanitizer/asan/asan_linux.cpp d41d8cd98f00b204e9800998ecf8427e libsanitizer/asan/asan_lock.h 0982c46c224d6935989e45d1745fab1e libsanitizer/asan/asan_mac.cpp ! 739bd928d87e5cdb31cc78dd9f56d72b libsanitizer/asan/asan_malloc_linux.cpp 71856c7aeab5f4ab5245d696e364f23a libsanitizer/asan/asan_malloc_local.h 2bb6ed3c14824117e69719ed5be917f4 libsanitizer/asan/asan_malloc_mac.cpp ad791013449cae9daa0b4ec69efa1ab8 libsanitizer/asan/asan_malloc_win.cpp --- 97076,97082 ---- c7d170a96441edb85be872bfa2afbf4e libsanitizer/asan/asan_linux.cpp d41d8cd98f00b204e9800998ecf8427e libsanitizer/asan/asan_lock.h 0982c46c224d6935989e45d1745fab1e libsanitizer/asan/asan_mac.cpp ! 24e4f4a5b92e8f8d7f71f5377ab452f2 libsanitizer/asan/asan_malloc_linux.cpp 71856c7aeab5f4ab5245d696e364f23a libsanitizer/asan/asan_malloc_local.h 2bb6ed3c14824117e69719ed5be917f4 libsanitizer/asan/asan_malloc_mac.cpp ad791013449cae9daa0b4ec69efa1ab8 libsanitizer/asan/asan_malloc_win.cpp *************** f652b6a1b7460128cccd6c016c4828c6 libsan *** 96731,96737 **** 2c60255aaee6514e73b7c326d2edbc51 libsanitizer/sanitizer_common/sanitizer_bvgraph.h 37fda67c0a241a3c958f663809161b55 libsanitizer/sanitizer_common/sanitizer_common.cpp 461795fb04c2da6f64a772dc73004848 libsanitizer/sanitizer_common/sanitizer_common.h ! 3e1b7cb099ea699efdb4e91adfca7aaa libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc 2f7d47202e9f6d50e6445e0a3c457a8d libsanitizer/sanitizer_common/sanitizer_common_interceptors_format.inc 885355959681eb26e2e80da24e0b061f libsanitizer/sanitizer_common/sanitizer_common_interceptors_ioctl.inc 1a5adf613af41f9e4cc538f5d6e9bc59 libsanitizer/sanitizer_common/sanitizer_common_interceptors_netbsd_compat.inc --- 97245,97251 ---- 2c60255aaee6514e73b7c326d2edbc51 libsanitizer/sanitizer_common/sanitizer_bvgraph.h 37fda67c0a241a3c958f663809161b55 libsanitizer/sanitizer_common/sanitizer_common.cpp 461795fb04c2da6f64a772dc73004848 libsanitizer/sanitizer_common/sanitizer_common.h ! c96de0113e10c8eab3e0a1869ec7957f libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc 2f7d47202e9f6d50e6445e0a3c457a8d libsanitizer/sanitizer_common/sanitizer_common_interceptors_format.inc 885355959681eb26e2e80da24e0b061f libsanitizer/sanitizer_common/sanitizer_common_interceptors_ioctl.inc 1a5adf613af41f9e4cc538f5d6e9bc59 libsanitizer/sanitizer_common/sanitizer_common_interceptors_netbsd_compat.inc *************** f7495cea9a190ee4681052e06fa592b9 libsan *** 96783,96789 **** 85b7de59b8c28ea298343b8a275f5943 libsanitizer/sanitizer_common/sanitizer_libignore.h 0ac9b5cf58824c5415a136be43a4cff7 libsanitizer/sanitizer_common/sanitizer_linux.cpp f84c1d5d99c579ab2feefa9c9feb0af0 libsanitizer/sanitizer_common/sanitizer_linux.h ! 25e66ce58b987c77b295b7f4d4cae447 libsanitizer/sanitizer_common/sanitizer_linux_libcdep.cpp 4c8636023e3eed320e3692dda7e88e1d libsanitizer/sanitizer_common/sanitizer_linux_s390.cpp 51d4c37472c1c2c6010e5d1eb5bf340f libsanitizer/sanitizer_common/sanitizer_list.h d0b45512a07eac4f507b3b0f49965980 libsanitizer/sanitizer_common/sanitizer_local_address_space_view.h --- 97297,97303 ---- 85b7de59b8c28ea298343b8a275f5943 libsanitizer/sanitizer_common/sanitizer_libignore.h 0ac9b5cf58824c5415a136be43a4cff7 libsanitizer/sanitizer_common/sanitizer_linux.cpp f84c1d5d99c579ab2feefa9c9feb0af0 libsanitizer/sanitizer_common/sanitizer_linux.h ! 1b5c9d1cdb93eab7235296a73d9a524a libsanitizer/sanitizer_common/sanitizer_linux_libcdep.cpp 4c8636023e3eed320e3692dda7e88e1d libsanitizer/sanitizer_common/sanitizer_linux_s390.cpp 51d4c37472c1c2c6010e5d1eb5bf340f libsanitizer/sanitizer_common/sanitizer_list.h d0b45512a07eac4f507b3b0f49965980 libsanitizer/sanitizer_common/sanitizer_local_address_space_view.h *************** d41d8cd98f00b204e9800998ecf8427e libsan *** 96812,96818 **** 7e240cd8f027b06b432493422a3ffc45 libsanitizer/sanitizer_common/sanitizer_platform_limits_solaris.h 4ede10fee7725e1477a63ed897d3ee60 libsanitizer/sanitizer_common/sanitizer_posix.cpp 9d0b05768da256e8f92b97fda2deb252 libsanitizer/sanitizer_common/sanitizer_posix.h ! a5920e3a2fd79f67ffd1367e5bb37a2c libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cpp 0e291c4a21a07dfe2ca6a59095a82c61 libsanitizer/sanitizer_common/sanitizer_printf.cpp d323176e3cc5255a315f5b1eeba97067 libsanitizer/sanitizer_common/sanitizer_procmaps.h 9f49c09176556fe4c5863604acaa373e libsanitizer/sanitizer_common/sanitizer_procmaps_bsd.cpp --- 97326,97332 ---- 7e240cd8f027b06b432493422a3ffc45 libsanitizer/sanitizer_common/sanitizer_platform_limits_solaris.h 4ede10fee7725e1477a63ed897d3ee60 libsanitizer/sanitizer_common/sanitizer_posix.cpp 9d0b05768da256e8f92b97fda2deb252 libsanitizer/sanitizer_common/sanitizer_posix.h ! 4a6f184aca6085146e606db3db289eec libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cpp 0e291c4a21a07dfe2ca6a59095a82c61 libsanitizer/sanitizer_common/sanitizer_printf.cpp d323176e3cc5255a315f5b1eeba97067 libsanitizer/sanitizer_common/sanitizer_procmaps.h 9f49c09176556fe4c5863604acaa373e libsanitizer/sanitizer_common/sanitizer_procmaps_bsd.cpp *************** bd58abd803667b3373381b6bb1b68f1b libsan *** 96987,96993 **** 545e91fffb8d4987ca5d1c0054aadd11 libsanitizer/ubsan/ubsan_win_dll_thunk.cpp e9c85349d92ab1a6b66d0872077acd3b libsanitizer/ubsan/ubsan_win_dynamic_runtime_thunk.cpp 72f297f487b6bb9db917cce361192c28 libsanitizer/ubsan/ubsan_win_weak_interception.cpp ! dccc7c04f0e20a648cdc1eac07f9a1ab libssp/ChangeLog cf4ee646515263611d025bd12ba88148 libssp/Makefile.am b56958cdc5828ca811c35bbf479b3a09 libssp/Makefile.in f6f6c804e40e3a3ef407d3d13fafb6c0 libssp/aclocal.m4 --- 97501,97507 ---- 545e91fffb8d4987ca5d1c0054aadd11 libsanitizer/ubsan/ubsan_win_dll_thunk.cpp e9c85349d92ab1a6b66d0872077acd3b libsanitizer/ubsan/ubsan_win_dynamic_runtime_thunk.cpp 72f297f487b6bb9db917cce361192c28 libsanitizer/ubsan/ubsan_win_weak_interception.cpp ! abb78e1fad31fd8ca1ab017d1c54d6d3 libssp/ChangeLog cf4ee646515263611d025bd12ba88148 libssp/Makefile.am b56958cdc5828ca811c35bbf479b3a09 libssp/Makefile.in f6f6c804e40e3a3ef407d3d13fafb6c0 libssp/aclocal.m4 *************** df66ccf23f6b963bb290249d790ccb82 libssp *** 97016,97022 **** 0a9dff73d2333b2997da42b4615533fd libssp/strncpy-chk.c 11c140b790d482decba4951f6508dd84 libssp/vsnprintf-chk.c 2ce510f683585f686681d926e3fafb82 libssp/vsprintf-chk.c ! dac909f9a6e4bcb37952f1721b37d27d libstdc++-v3/ChangeLog 7aa6c40440a44fcf5ec94c066160c2f8 libstdc++-v3/ChangeLog-1998 7aff86600b6a1ed3fa87305075a92db0 libstdc++-v3/ChangeLog-1999 a6f28e8fc9bb07696a9e068b439a3a87 libstdc++-v3/ChangeLog-2000 --- 97530,97536 ---- 0a9dff73d2333b2997da42b4615533fd libssp/strncpy-chk.c 11c140b790d482decba4951f6508dd84 libssp/vsnprintf-chk.c 2ce510f683585f686681d926e3fafb82 libssp/vsprintf-chk.c ! 7611c7124f4f303e076c2155c0e67d22 libstdc++-v3/ChangeLog 7aa6c40440a44fcf5ec94c066160c2f8 libstdc++-v3/ChangeLog-1998 7aff86600b6a1ed3fa87305075a92db0 libstdc++-v3/ChangeLog-1999 a6f28e8fc9bb07696a9e068b439a3a87 libstdc++-v3/ChangeLog-2000 *************** a8f4290dba5b481ad426148a03c75dd0 libstd *** 97043,97051 **** 008caca43b4e195eecb9c08bf29ba4d1 libstdc++-v3/Makefile.am 54e48e33eb9146948dff98aca20830c4 libstdc++-v3/Makefile.in f372af73db4ac0ad88e43199e1f29e08 libstdc++-v3/README ! 5c5d1d21d25ef7bbc962ba2fcb00b1dc libstdc++-v3/acinclude.m4 734c1cbc8791fbceb09b49c5d07d6966 libstdc++-v3/aclocal.m4 ! 9323354dc161f529752acc7cd2090a7c libstdc++-v3/config.h.in b01fddf6d6bea14bdfb65dbd4c979845 libstdc++-v3/config/abi/compatibility.h 4dc0ed9711e1e8d1c3555df4a246013c libstdc++-v3/config/abi/post/aarch64-linux-gnu/baseline_symbols.txt 730569c0ef38f6e6322b3c4ac65253ce libstdc++-v3/config/abi/post/alpha-linux-gnu/baseline_symbols.txt --- 97557,97565 ---- 008caca43b4e195eecb9c08bf29ba4d1 libstdc++-v3/Makefile.am 54e48e33eb9146948dff98aca20830c4 libstdc++-v3/Makefile.in f372af73db4ac0ad88e43199e1f29e08 libstdc++-v3/README ! 9f6362760cb2f50e39da8d81855a408f libstdc++-v3/acinclude.m4 734c1cbc8791fbceb09b49c5d07d6966 libstdc++-v3/aclocal.m4 ! 03206c41c4b2669881872e3465f2c926 libstdc++-v3/config.h.in b01fddf6d6bea14bdfb65dbd4c979845 libstdc++-v3/config/abi/compatibility.h 4dc0ed9711e1e8d1c3555df4a246013c libstdc++-v3/config/abi/post/aarch64-linux-gnu/baseline_symbols.txt 730569c0ef38f6e6322b3c4ac65253ce libstdc++-v3/config/abi/post/alpha-linux-gnu/baseline_symbols.txt *************** f7eaad9998541112063ab39f4999e54d libstd *** 97080,97088 **** 551b9890ec6be122f02a273558c9b4b8 libstdc++-v3/config/abi/pre/gnu.ver b01f8da8f4373070847fe317fe8a546e libstdc++-v3/config/abi/pre/none.ver b69693893d1f7b107322d8438366923d libstdc++-v3/config/allocator/bitmap_allocator_base.h ! 1c94205ae266227c3b8fa7963e379d58 libstdc++-v3/config/allocator/malloc_allocator_base.h 03d060c69c8950eeef775a4142352b74 libstdc++-v3/config/allocator/mt_allocator_base.h ! 4365fd09a73a10159654eb9942efef79 libstdc++-v3/config/allocator/new_allocator_base.h 0761028626c5e517f9ba74a4258af9a5 libstdc++-v3/config/allocator/pool_allocator_base.h 5b0a4c5516eaea4f31c0b1e7bc63bf6d libstdc++-v3/config/cpu/aarch64/opt/bits/opt_random.h f0fe3568b8311b075734f96e9b8090b6 libstdc++-v3/config/cpu/aarch64/opt/ext/opt_random.h --- 97594,97602 ---- 551b9890ec6be122f02a273558c9b4b8 libstdc++-v3/config/abi/pre/gnu.ver b01f8da8f4373070847fe317fe8a546e libstdc++-v3/config/abi/pre/none.ver b69693893d1f7b107322d8438366923d libstdc++-v3/config/allocator/bitmap_allocator_base.h ! 023aed977d9c5ba9e1f0819268c0b91e libstdc++-v3/config/allocator/malloc_allocator_base.h 03d060c69c8950eeef775a4142352b74 libstdc++-v3/config/allocator/mt_allocator_base.h ! fcdcf111c9228da351f93cd81039e6d6 libstdc++-v3/config/allocator/new_allocator_base.h 0761028626c5e517f9ba74a4258af9a5 libstdc++-v3/config/allocator/pool_allocator_base.h 5b0a4c5516eaea4f31c0b1e7bc63bf6d libstdc++-v3/config/cpu/aarch64/opt/bits/opt_random.h f0fe3568b8311b075734f96e9b8090b6 libstdc++-v3/config/cpu/aarch64/opt/ext/opt_random.h *************** c99864811cb81795f882ee8d709a39f8 libstd *** 97197,97203 **** 82fbb19a1614c44d6c3f0cb87465fcc6 libstdc++-v3/config/os/gnu-linux/ctype_inline.h df7b0a76ea127cef7009bec82b53dcee libstdc++-v3/config/os/gnu-linux/ldbl-extra.ver b44c419a58eaf15493ce8e0eaaf56e5a libstdc++-v3/config/os/gnu-linux/ldbl-ieee128-extra.ver ! 1cefcd2d26ce8f7a59b501efd366ee39 libstdc++-v3/config/os/gnu-linux/os_defines.h 959e3af95f997505166123d88fee00a0 libstdc++-v3/config/os/hpux/ctype_base.h 889db89ec247613e9652018bee43d6cb libstdc++-v3/config/os/hpux/ctype_configure_char.cc 82fbb19a1614c44d6c3f0cb87465fcc6 libstdc++-v3/config/os/hpux/ctype_inline.h --- 97711,97717 ---- 82fbb19a1614c44d6c3f0cb87465fcc6 libstdc++-v3/config/os/gnu-linux/ctype_inline.h df7b0a76ea127cef7009bec82b53dcee libstdc++-v3/config/os/gnu-linux/ldbl-extra.ver b44c419a58eaf15493ce8e0eaaf56e5a libstdc++-v3/config/os/gnu-linux/ldbl-ieee128-extra.ver ! 7517023da174661af6e52fa85a802440 libstdc++-v3/config/os/gnu-linux/os_defines.h 959e3af95f997505166123d88fee00a0 libstdc++-v3/config/os/hpux/ctype_base.h 889db89ec247613e9652018bee43d6cb libstdc++-v3/config/os/hpux/ctype_configure_char.cc 82fbb19a1614c44d6c3f0cb87465fcc6 libstdc++-v3/config/os/hpux/ctype_inline.h *************** d00b9bfddb0e8397de2d35e76f678cf4 libstd *** 97236,97258 **** 233fbfff89917179ae9fc7fecbd37a4b libstdc++-v3/config/os/vxworks/ctype_configure_char.cc 1b61257cbf79eed6c1465ccd5906ed98 libstdc++-v3/config/os/vxworks/ctype_inline.h cf270f423d6238158d5385095a7fc932 libstdc++-v3/config/os/vxworks/os_defines.h ! c800b52e2f33565f08fbcd95dfd8766a libstdc++-v3/configure ! 95dd8407d2fb966f421efafec0f907ff libstdc++-v3/configure.ac 6f48d91af78c16e62f258e7bedec5125 libstdc++-v3/configure.host 1ad0555cf1f65702d35f5d19683b6a49 libstdc++-v3/crossconfig.m4 ! 1418ec33ef872f309726f2187f19bd33 libstdc++-v3/doc/Makefile.am ! 5385f85dbbbe80a7d7ab79e63698294f libstdc++-v3/doc/Makefile.in 3f7ff07f68cc7610addc1921bc125548 libstdc++-v3/doc/doxygen/Intro.3 ! de3401fae851679a8dc5c138f98ef21d libstdc++-v3/doc/doxygen/doxygroups.cc 520db39aef0e2a59418132af88b897ed libstdc++-v3/doc/doxygen/mainpage.html 3486d64b0aaa601908006a0e78395ca3 libstdc++-v3/doc/doxygen/stdheader.cc 1273764cd133c402d2d3f22cf2913af5 libstdc++-v3/doc/doxygen/tables.html ! f1c6ab30bee4d3ee41f2cdc190a44645 libstdc++-v3/doc/doxygen/user.cfg.in 66e139590a163a3e9d632f33fbe1d1b3 libstdc++-v3/doc/html/README c68ff21babfa14f20b98e36a2c808418 libstdc++-v3/doc/html/api.html fd168dc2b2d0c12b1e17b40ffec96390 libstdc++-v3/doc/html/bk02.html 47886ba7da131bf3cbf81a27cada5f6f libstdc++-v3/doc/html/bk03.html ! da9e55325b837b7f6167339db94dd606 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 --- 97750,97772 ---- 233fbfff89917179ae9fc7fecbd37a4b libstdc++-v3/config/os/vxworks/ctype_configure_char.cc 1b61257cbf79eed6c1465ccd5906ed98 libstdc++-v3/config/os/vxworks/ctype_inline.h cf270f423d6238158d5385095a7fc932 libstdc++-v3/config/os/vxworks/os_defines.h ! a69bbe50a3ebbd9d900f2fb44dc7fd53 libstdc++-v3/configure ! d3b5d9175c6f9f05ef6fc6392133a461 libstdc++-v3/configure.ac 6f48d91af78c16e62f258e7bedec5125 libstdc++-v3/configure.host 1ad0555cf1f65702d35f5d19683b6a49 libstdc++-v3/crossconfig.m4 ! cc745dd7b8642a37dd519d4df34943fc libstdc++-v3/doc/Makefile.am ! 19e98b93076520aad66723240a8e6f6b libstdc++-v3/doc/Makefile.in 3f7ff07f68cc7610addc1921bc125548 libstdc++-v3/doc/doxygen/Intro.3 ! 998d95ce2a84ce717d3c610d3bb7b391 libstdc++-v3/doc/doxygen/doxygroups.cc 520db39aef0e2a59418132af88b897ed libstdc++-v3/doc/doxygen/mainpage.html 3486d64b0aaa601908006a0e78395ca3 libstdc++-v3/doc/doxygen/stdheader.cc 1273764cd133c402d2d3f22cf2913af5 libstdc++-v3/doc/doxygen/tables.html ! 094b7ada8fdae2bf6b49063199dddd20 libstdc++-v3/doc/doxygen/user.cfg.in 66e139590a163a3e9d632f33fbe1d1b3 libstdc++-v3/doc/html/README c68ff21babfa14f20b98e36a2c808418 libstdc++-v3/doc/html/api.html fd168dc2b2d0c12b1e17b40ffec96390 libstdc++-v3/doc/html/bk02.html 47886ba7da131bf3cbf81a27cada5f6f libstdc++-v3/doc/html/bk03.html ! a75d614dcfc1b2374bccc626e2464c94 libstdc++-v3/doc/html/faq.html 1ae70f0bf94464b036515d333fff8ab2 libstdc++-v3/doc/html/images/confdeps.png d7f63b43e9f4c39cf71de7585de522ee libstdc++-v3/doc/html/images/pbds_balls_and_bins.png 22eedc841676a98f8ae8b95131ac4d7e libstdc++-v3/doc/html/images/pbds_binary_priority_queue_int_push.png *************** c7e40c1085e414b3b4d5896db4013205 libstd *** 97356,97363 **** f71d3ed5d8c1753572ba02518e3744a9 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 7f6c5a9eb000f65ee1888d459beb9dd5 libstdc++-v3/doc/html/manual/diagnostics.html f1cca6d534c470a60343b0c88f4b5c4a libstdc++-v3/doc/html/manual/documentation_hacking.html 44375d933be3e667b4c31334c041decb libstdc++-v3/doc/html/manual/dynamic_memory.html --- 97870,97877 ---- f71d3ed5d8c1753572ba02518e3744a9 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 ! 397ce9357678670b7c451c92eab7cb57 libstdc++-v3/doc/html/manual/debug_mode_semantics.html ! f94c6123cd922b92f4f2b6a80705ec16 libstdc++-v3/doc/html/manual/debug_mode_using.html 7f6c5a9eb000f65ee1888d459beb9dd5 libstdc++-v3/doc/html/manual/diagnostics.html f1cca6d534c470a60343b0c88f4b5c4a libstdc++-v3/doc/html/manual/documentation_hacking.html 44375d933be3e667b4c31334c041decb libstdc++-v3/doc/html/manual/dynamic_memory.html *************** d55e182adbf08772ec85b18d390b0dbb libstd *** 97418,97424 **** f82628740b7b95e95da49ce234a05bca libstdc++-v3/doc/html/manual/source_code_style.html f875f3f4cddfe4fee6aff2308ccb4563 libstdc++-v3/doc/html/manual/source_design_notes.html 391422dd4f4cdbd4d764a952a0f345e6 libstdc++-v3/doc/html/manual/source_organization.html ! 2c4ac1f0f27a8d05e46989898a08d6b6 libstdc++-v3/doc/html/manual/status.html ea0c531c09fa230f346f8ba700961e4a libstdc++-v3/doc/html/manual/std_contents.html dbb5f81a9e8864374fbb835eaa4e8b0d libstdc++-v3/doc/html/manual/streambufs.html 47e6a6ef4752e7c7e3ecb2a4948a7514 libstdc++-v3/doc/html/manual/strings.html --- 97932,97938 ---- f82628740b7b95e95da49ce234a05bca libstdc++-v3/doc/html/manual/source_code_style.html f875f3f4cddfe4fee6aff2308ccb4563 libstdc++-v3/doc/html/manual/source_design_notes.html 391422dd4f4cdbd4d764a952a0f345e6 libstdc++-v3/doc/html/manual/source_organization.html ! 3b1206d3071580d56c6149d5ddf385a9 libstdc++-v3/doc/html/manual/status.html ea0c531c09fa230f346f8ba700961e4a libstdc++-v3/doc/html/manual/std_contents.html dbb5f81a9e8864374fbb835eaa4e8b0d libstdc++-v3/doc/html/manual/streambufs.html 47e6a6ef4752e7c7e3ecb2a4948a7514 libstdc++-v3/doc/html/manual/strings.html *************** fcdceeabf3a95117ea22e93a0354e564 libstd *** 97428,97434 **** e19e711d0b369090f4782ac1fc0792bd libstdc++-v3/doc/html/manual/test.html c39b927efcec5ac84139c1490c8ef320 libstdc++-v3/doc/html/manual/traits.html 530b96535baacfe35df2e65f9dfe7efc libstdc++-v3/doc/html/manual/unordered_associative.html ! aa7b0f41bad16f799c166f2db354e106 libstdc++-v3/doc/html/manual/using.html a98d94ba8ccfb620e98ebfe01192e61e libstdc++-v3/doc/html/manual/using_concurrency.html 79fb9de4a4c89a913a76e1828500499d libstdc++-v3/doc/html/manual/using_dual_abi.html 4868e3591133577974ca85a537dbd8a0 libstdc++-v3/doc/html/manual/using_dynamic_or_shared.html --- 97942,97948 ---- e19e711d0b369090f4782ac1fc0792bd libstdc++-v3/doc/html/manual/test.html c39b927efcec5ac84139c1490c8ef320 libstdc++-v3/doc/html/manual/traits.html 530b96535baacfe35df2e65f9dfe7efc libstdc++-v3/doc/html/manual/unordered_associative.html ! fc95274c2a36efc3d0f39217d38a914b libstdc++-v3/doc/html/manual/using.html a98d94ba8ccfb620e98ebfe01192e61e libstdc++-v3/doc/html/manual/using_concurrency.html 79fb9de4a4c89a913a76e1828500499d libstdc++-v3/doc/html/manual/using_dual_abi.html 4868e3591133577974ca85a537dbd8a0 libstdc++-v3/doc/html/manual/using_dynamic_or_shared.html *************** ccbc0492a648982f2dc225595bdbc567 libstd *** 97442,97448 **** 5906074c27c57c65b220c35bbcb2c5ec libstdc++-v3/doc/xml/book.txml 44d3a92b83abfb18efac80519c79b44c libstdc++-v3/doc/xml/chapter.txml 011b8e6a5442e4dc08f02e7295b644a3 libstdc++-v3/doc/xml/class.txml ! 2f5ea82382e50f24f4d784b7273c2c42 libstdc++-v3/doc/xml/faq.xml ea77580f7e81e2c49aea3f425c01ee2b libstdc++-v3/doc/xml/gnu/fdl-1.3.xml 56bb32e9ab9358834c5f8eca2cd0e969 libstdc++-v3/doc/xml/gnu/gpl-3.0.xml 18a6390297702ec8fd75cbcc525d2005 libstdc++-v3/doc/xml/images/confdeps.dot --- 97956,97962 ---- 5906074c27c57c65b220c35bbcb2c5ec libstdc++-v3/doc/xml/book.txml 44d3a92b83abfb18efac80519c79b44c libstdc++-v3/doc/xml/chapter.txml 011b8e6a5442e4dc08f02e7295b644a3 libstdc++-v3/doc/xml/class.txml ! 4e6a47132fecfe86bbc1dd045cbbd42b libstdc++-v3/doc/xml/faq.xml ea77580f7e81e2c49aea3f425c01ee2b libstdc++-v3/doc/xml/gnu/fdl-1.3.xml 56bb32e9ab9358834c5f8eca2cd0e969 libstdc++-v3/doc/xml/gnu/gpl-3.0.xml 18a6390297702ec8fd75cbcc525d2005 libstdc++-v3/doc/xml/images/confdeps.dot *************** af3361d0d0af961859ec0346c38ac8c8 libstd *** 97640,97646 **** b7a892b2e432f52274c482549c3264a2 libstdc++-v3/doc/xml/manual/containers.xml a1ff7d876c3d43ddeea13056c5d8079b libstdc++-v3/doc/xml/manual/ctype.xml 1ef2d3bb759e6f6de762e1c79ff08030 libstdc++-v3/doc/xml/manual/debug.xml ! f6280ade305c2ebb21bd3a78c06105e3 libstdc++-v3/doc/xml/manual/debug_mode.xml f320f25003678cca910f09ba54c923fc libstdc++-v3/doc/xml/manual/diagnostics.xml 561ce4bba87e35c92c47d95599ca9d9b libstdc++-v3/doc/xml/manual/documentation_hacking.xml a3b670e11d8db732a9352e2fbe236347 libstdc++-v3/doc/xml/manual/evolution.xml --- 98154,98160 ---- b7a892b2e432f52274c482549c3264a2 libstdc++-v3/doc/xml/manual/containers.xml a1ff7d876c3d43ddeea13056c5d8079b libstdc++-v3/doc/xml/manual/ctype.xml 1ef2d3bb759e6f6de762e1c79ff08030 libstdc++-v3/doc/xml/manual/debug.xml ! e3215d958bafd6fd02249dc5bab42f58 libstdc++-v3/doc/xml/manual/debug_mode.xml f320f25003678cca910f09ba54c923fc libstdc++-v3/doc/xml/manual/diagnostics.xml 561ce4bba87e35c92c47d95599ca9d9b libstdc++-v3/doc/xml/manual/documentation_hacking.xml a3b670e11d8db732a9352e2fbe236347 libstdc++-v3/doc/xml/manual/evolution.xml *************** d766137e6e226eaf2c354f95fd9c7274 libstd *** 97660,97685 **** 2f4a4ec5c3f1beecb2e7e72f3b0d2958 libstdc++-v3/doc/xml/manual/prerequisites.xml cec5c5415c371a664adb0490e2571c3c libstdc++-v3/doc/xml/manual/shared_ptr.xml 9a8f1a85034e6fe72b02302051aa7af9 libstdc++-v3/doc/xml/manual/spine.xml ! 21b4ad60404b59dfe18632c7f5a6d317 libstdc++-v3/doc/xml/manual/status_cxx1998.xml ! 8253286adbeae477e34108477564e376 libstdc++-v3/doc/xml/manual/status_cxx2011.xml ! b1431db7e834d8841899ce3e8cf9cc1e libstdc++-v3/doc/xml/manual/status_cxx2014.xml ! dbc9c0d00c0b189acb36b4104265201c libstdc++-v3/doc/xml/manual/status_cxx2017.xml ! 4b3a0b1b007d85fa253b941ca8cdf49a libstdc++-v3/doc/xml/manual/status_cxx2020.xml 3c72998c4574690fac280c058a0db757 libstdc++-v3/doc/xml/manual/status_cxxis29124.xml ! 3a19bd0f91506b2ac8559bd9afa754f7 libstdc++-v3/doc/xml/manual/status_cxxtr1.xml ! c6cb51b19d85e47416a616658db64d08 libstdc++-v3/doc/xml/manual/status_cxxtr24733.xml 49334f70b9df9a3f9b81e04a418e8066 libstdc++-v3/doc/xml/manual/strings.xml 2b80feb1b53a8d0895a292620ec430b2 libstdc++-v3/doc/xml/manual/support.xml 5a89da07906610f85971c9faa717428e libstdc++-v3/doc/xml/manual/test.xml e2e099be3dd6a4b7a940a7232635ee2c libstdc++-v3/doc/xml/manual/test_policy_data_structures.xml ! 951665646abb37053d22bfa2c42d67e7 libstdc++-v3/doc/xml/manual/using.xml 30ec356feba73e85c6cef4c27dbb372e libstdc++-v3/doc/xml/manual/using_exceptions.xml 74a5acaa32b3d223bd413c1bb5b69ac6 libstdc++-v3/doc/xml/manual/utilities.xml 05d0e18187995e8ce64185beb05cd6ed libstdc++-v3/doc/xml/spine.xml bd966b4a0df6f2a84f9770525581d45c libstdc++-v3/doc/xsl/customization.xsl.in 42d14268f2b16c54a6bc2f71538a838c libstdc++-v3/fragment.am ! 4b4e6a7dc20318d53a49357dfecb7dc7 libstdc++-v3/include/Makefile.am ! 8ffbcef7dbc180c53210178a0d44edc4 libstdc++-v3/include/Makefile.in 83813d3bf45dd53bdc13d769af501845 libstdc++-v3/include/backward/auto_ptr.h 93f8180370b2b5df7b580ce625762260 libstdc++-v3/include/backward/backward_warning.h 3ba6b626499f6c5a1cf871734a77df07 libstdc++-v3/include/backward/binders.h --- 98174,98199 ---- 2f4a4ec5c3f1beecb2e7e72f3b0d2958 libstdc++-v3/doc/xml/manual/prerequisites.xml cec5c5415c371a664adb0490e2571c3c libstdc++-v3/doc/xml/manual/shared_ptr.xml 9a8f1a85034e6fe72b02302051aa7af9 libstdc++-v3/doc/xml/manual/spine.xml ! 0bba6071dae55602cf351932ae6931d8 libstdc++-v3/doc/xml/manual/status_cxx1998.xml ! 7760eae3d9ab7cabae519904b3a5759e libstdc++-v3/doc/xml/manual/status_cxx2011.xml ! d7679667c783a269bb7718eb5d95f435 libstdc++-v3/doc/xml/manual/status_cxx2014.xml ! 5bb9fe8fa9f85b6d25e0d01355973428 libstdc++-v3/doc/xml/manual/status_cxx2017.xml ! 0d8d3e572d69acd09396d06e8249808b libstdc++-v3/doc/xml/manual/status_cxx2020.xml 3c72998c4574690fac280c058a0db757 libstdc++-v3/doc/xml/manual/status_cxxis29124.xml ! a3c830bf7580b2f5b61bb7806aa3f498 libstdc++-v3/doc/xml/manual/status_cxxtr1.xml ! 716b0440e3bfb860e5ee262a17e4f11a libstdc++-v3/doc/xml/manual/status_cxxtr24733.xml 49334f70b9df9a3f9b81e04a418e8066 libstdc++-v3/doc/xml/manual/strings.xml 2b80feb1b53a8d0895a292620ec430b2 libstdc++-v3/doc/xml/manual/support.xml 5a89da07906610f85971c9faa717428e libstdc++-v3/doc/xml/manual/test.xml e2e099be3dd6a4b7a940a7232635ee2c libstdc++-v3/doc/xml/manual/test_policy_data_structures.xml ! 93a43df46b9241c15a1d1a3116d9c792 libstdc++-v3/doc/xml/manual/using.xml 30ec356feba73e85c6cef4c27dbb372e libstdc++-v3/doc/xml/manual/using_exceptions.xml 74a5acaa32b3d223bd413c1bb5b69ac6 libstdc++-v3/doc/xml/manual/utilities.xml 05d0e18187995e8ce64185beb05cd6ed libstdc++-v3/doc/xml/spine.xml bd966b4a0df6f2a84f9770525581d45c libstdc++-v3/doc/xsl/customization.xsl.in 42d14268f2b16c54a6bc2f71538a838c libstdc++-v3/fragment.am ! 908772cdec680f1cf3d09ef32b451662 libstdc++-v3/include/Makefile.am ! 8460c7fbbd13ff4153eed9b078a3e453 libstdc++-v3/include/Makefile.in 83813d3bf45dd53bdc13d769af501845 libstdc++-v3/include/backward/auto_ptr.h 93f8180370b2b5df7b580ce625762260 libstdc++-v3/include/backward/backward_warning.h 3ba6b626499f6c5a1cf871734a77df07 libstdc++-v3/include/backward/binders.h *************** af8e9554e20f02102b5017a30f1e9eff libstd *** 97690,97735 **** 73b62e0f113a7d8e63e0d13183419c1b libstdc++-v3/include/backward/strstream f6791325ac8042a3d1825c0f1ae0765b libstdc++-v3/include/bits/algorithmfwd.h 6b5ce7ffbf8ffbb2440a44894aee279a libstdc++-v3/include/bits/align.h ! 442b89bcdb261424542a1ee74863a63f libstdc++-v3/include/bits/alloc_traits.h ! 9fbd8fe4ee82100ead481133a769ba62 libstdc++-v3/include/bits/allocated_ptr.h ! 981576f2d93857607b683a542de1d8b9 libstdc++-v3/include/bits/allocator.h ! 076f8d45c4cff35fdcca0096de0eb067 libstdc++-v3/include/bits/atomic_base.h adb82b0133e664d7a6d703cde2ee9b90 libstdc++-v3/include/bits/atomic_futex.h ! cd905b67c3e994ab3680f3d2c5da1fdf libstdc++-v3/include/bits/atomic_timed_wait.h ! c8b755077b45fe1118185264ec50d369 libstdc++-v3/include/bits/atomic_wait.h 3a2158164dc155855b2c0175c5f3c80b libstdc++-v3/include/bits/basic_ios.h bd6a297c732d4d1fc2db79f61e854e8c libstdc++-v3/include/bits/basic_ios.tcc ! 83f5b7c8f36852d57b55ad3b37a43871 libstdc++-v3/include/bits/basic_string.h cdec0fb14b071f72010a9b8c2d2e814d libstdc++-v3/include/bits/basic_string.tcc 143f01f2ac09091fe6272d8d3d996dd4 libstdc++-v3/include/bits/boost_concept_check.h c48dd1724bfe2a240a2d017612ff109d libstdc++-v3/include/bits/c++0x_warning.h ed7474f5ce169353ae9b6e98b9017872 libstdc++-v3/include/bits/c++config ! 974af2796b06a45af342dd896297df17 libstdc++-v3/include/bits/char_traits.h bc3afa551b214a1d9450c6798b21dc1c libstdc++-v3/include/bits/charconv.h a143652aea71c3de835d07a5ca715a81 libstdc++-v3/include/bits/codecvt.h 0c7784a98f845682f7e0257592f53ed9 libstdc++-v3/include/bits/concept_check.h 8d0a413609fd69213697c57a2f7e6efc libstdc++-v3/include/bits/cpp_type_traits.h ! 947ff17e4a377263e8f322147b3273d9 libstdc++-v3/include/bits/deque.tcc ! 65e85d94a207872f285a93186ef2b0bb libstdc++-v3/include/bits/enable_special_members.h 00ebb6049dacf8ab023b15caf7b3a690 libstdc++-v3/include/bits/erase_if.h a7d5bb28720ccf51fe638410018fc593 libstdc++-v3/include/bits/forward_list.h 7ce3876e2c3546f4e3f7fb947e3479a7 libstdc++-v3/include/bits/forward_list.tcc 42e0fac7ef6d3d3217e48ce36672e534 libstdc++-v3/include/bits/fs_dir.h ! a63f77a9474742ae09c01d1f91b2ee81 libstdc++-v3/include/bits/fs_fwd.h ! c58e18a2280eec2e679ae84b9ec94475 libstdc++-v3/include/bits/fs_ops.h ! aa47f35a166e16784ecf9496dbe8a771 libstdc++-v3/include/bits/fs_path.h 1e083c1a36d484e25c40b96ad6699e4e libstdc++-v3/include/bits/fstream.tcc dd8a128f529a9f6f73237a176e7299bc libstdc++-v3/include/bits/functexcept.h 3854e123c62afb06ce8eff3213da177e libstdc++-v3/include/bits/functional_hash.h 7e28c413fb2ff8f896ab6f4b81296589 libstdc++-v3/include/bits/gslice.h 6d64fcf711e66e1774782608ff3b5159 libstdc++-v3/include/bits/gslice_array.h ! 79a1a3092769fde4b3579bee74b286fb libstdc++-v3/include/bits/hashtable.h ! 4c92f28a1ef1274d928ac888dcc4c511 libstdc++-v3/include/bits/hashtable_policy.h 94b514a53ce7d1816738c38c1e0655a8 libstdc++-v3/include/bits/indirect_array.h 70c7a436935136a62065871cf31e4943 libstdc++-v3/include/bits/invoke.h b81521437ef0ce936cef3eaef2df90db libstdc++-v3/include/bits/ios_base.h 6605273dbd3b4a796727eff37aa712ed libstdc++-v3/include/bits/istream.tcc ! 3f8e35471b8c45ded4c8efb9f043018d libstdc++-v3/include/bits/iterator_concepts.h 9c607b8172976c0554f82e593ebab6e7 libstdc++-v3/include/bits/list.tcc 9033c9a135c14cc8c1b25fb5774e57e7 libstdc++-v3/include/bits/locale_classes.h d9209b1a8387c8074c0b4dfa10383f2d libstdc++-v3/include/bits/locale_classes.tcc --- 98204,98249 ---- 73b62e0f113a7d8e63e0d13183419c1b libstdc++-v3/include/backward/strstream f6791325ac8042a3d1825c0f1ae0765b libstdc++-v3/include/bits/algorithmfwd.h 6b5ce7ffbf8ffbb2440a44894aee279a libstdc++-v3/include/bits/align.h ! 937e9d7f00d3ed7cff7ec8fafeb8a8bc libstdc++-v3/include/bits/alloc_traits.h ! 58ff381dfbb0c52b9ff69747242a3a8f libstdc++-v3/include/bits/allocated_ptr.h ! 52abf05a7426983321ecef80fe4251be libstdc++-v3/include/bits/allocator.h ! e3f9f74fba67d8b5e1538ec2829d6ccd libstdc++-v3/include/bits/atomic_base.h adb82b0133e664d7a6d703cde2ee9b90 libstdc++-v3/include/bits/atomic_futex.h ! 56bd6a5d218c8ecad595a4d829f9b5b8 libstdc++-v3/include/bits/atomic_timed_wait.h ! eeec5baac9e782444495e4ff1d7010c4 libstdc++-v3/include/bits/atomic_wait.h 3a2158164dc155855b2c0175c5f3c80b libstdc++-v3/include/bits/basic_ios.h bd6a297c732d4d1fc2db79f61e854e8c libstdc++-v3/include/bits/basic_ios.tcc ! 7e5346b1ac8ec4f2b0e876ce53e4b6e1 libstdc++-v3/include/bits/basic_string.h cdec0fb14b071f72010a9b8c2d2e814d libstdc++-v3/include/bits/basic_string.tcc 143f01f2ac09091fe6272d8d3d996dd4 libstdc++-v3/include/bits/boost_concept_check.h c48dd1724bfe2a240a2d017612ff109d libstdc++-v3/include/bits/c++0x_warning.h ed7474f5ce169353ae9b6e98b9017872 libstdc++-v3/include/bits/c++config ! 1b63ee4eacac2ae94b9a1fc6a1b754f5 libstdc++-v3/include/bits/char_traits.h bc3afa551b214a1d9450c6798b21dc1c libstdc++-v3/include/bits/charconv.h a143652aea71c3de835d07a5ca715a81 libstdc++-v3/include/bits/codecvt.h 0c7784a98f845682f7e0257592f53ed9 libstdc++-v3/include/bits/concept_check.h 8d0a413609fd69213697c57a2f7e6efc libstdc++-v3/include/bits/cpp_type_traits.h ! 03562135ad3797f79dc88b04da763364 libstdc++-v3/include/bits/deque.tcc ! fe864b2a299875de978dcc610a835eb6 libstdc++-v3/include/bits/enable_special_members.h 00ebb6049dacf8ab023b15caf7b3a690 libstdc++-v3/include/bits/erase_if.h a7d5bb28720ccf51fe638410018fc593 libstdc++-v3/include/bits/forward_list.h 7ce3876e2c3546f4e3f7fb947e3479a7 libstdc++-v3/include/bits/forward_list.tcc 42e0fac7ef6d3d3217e48ce36672e534 libstdc++-v3/include/bits/fs_dir.h ! 70ce7389ec86c32b97e433d940247f4b libstdc++-v3/include/bits/fs_fwd.h ! d486ec76d1eac079f1e5ed61ee50cc50 libstdc++-v3/include/bits/fs_ops.h ! 8877eb003169ec54e3ef21d88efdadbc libstdc++-v3/include/bits/fs_path.h 1e083c1a36d484e25c40b96ad6699e4e libstdc++-v3/include/bits/fstream.tcc dd8a128f529a9f6f73237a176e7299bc libstdc++-v3/include/bits/functexcept.h 3854e123c62afb06ce8eff3213da177e libstdc++-v3/include/bits/functional_hash.h 7e28c413fb2ff8f896ab6f4b81296589 libstdc++-v3/include/bits/gslice.h 6d64fcf711e66e1774782608ff3b5159 libstdc++-v3/include/bits/gslice_array.h ! 1b162c169c5c035be9f65e875ba43048 libstdc++-v3/include/bits/hashtable.h ! 985a1e281b3b291fa13c4044bfc48b31 libstdc++-v3/include/bits/hashtable_policy.h 94b514a53ce7d1816738c38c1e0655a8 libstdc++-v3/include/bits/indirect_array.h 70c7a436935136a62065871cf31e4943 libstdc++-v3/include/bits/invoke.h b81521437ef0ce936cef3eaef2df90db libstdc++-v3/include/bits/ios_base.h 6605273dbd3b4a796727eff37aa712ed libstdc++-v3/include/bits/istream.tcc ! 66ebf5810a684c1af0a71a8d8819b3eb libstdc++-v3/include/bits/iterator_concepts.h 9c607b8172976c0554f82e593ebab6e7 libstdc++-v3/include/bits/list.tcc 9033c9a135c14cc8c1b25fb5774e57e7 libstdc++-v3/include/bits/locale_classes.h d9209b1a8387c8074c0b4dfa10383f2d libstdc++-v3/include/bits/locale_classes.tcc *************** bded7dc13b4cfa5d81cf5165cc84122a libstd *** 97742,97767 **** 3f32eafc5a86b24ba1ddea1f2c791f2f libstdc++-v3/include/bits/mask_array.h 3b99ebe899129f76e71b6a400b7ae599 libstdc++-v3/include/bits/max_size_type.h 3f6b104467902cda411d015a32d97cf1 libstdc++-v3/include/bits/memoryfwd.h ! 204940fe012c29feb67f1e7f3f1e90f5 libstdc++-v3/include/bits/move.h ! 43e7bcc096b6696bce49d4d2f41a5cf2 libstdc++-v3/include/bits/node_handle.h 3877d17291319659d2c7ab82f127deeb libstdc++-v3/include/bits/ostream.tcc c6baef5b0dbad526c4a7d462e52887b8 libstdc++-v3/include/bits/ostream_insert.h 518cd0ae140bee151205f0ccbbe7a9d2 libstdc++-v3/include/bits/parse_numbers.h e270c86004665d7c88cb0daea0668abd libstdc++-v3/include/bits/postypes.h 1aa21e383abff8b98908de39896ac74d libstdc++-v3/include/bits/predefined_ops.h ! b6317075019adec6605d0a9e2ff1148e libstdc++-v3/include/bits/ptr_traits.h bf73b2a247be8d104de523be716f61f4 libstdc++-v3/include/bits/quoted_string.h ! e05ff5f61630e3ab98cd5502bd8bd9b7 libstdc++-v3/include/bits/random.h ! 83ca7dddd615c8a800157b0f562a194c libstdc++-v3/include/bits/random.tcc ! 94fe05bef1244872d91dffec0700dbb3 libstdc++-v3/include/bits/range_access.h ! 978dc739bcd1ac7bfe24ef17a1aa1320 libstdc++-v3/include/bits/ranges_algo.h ! 9fe4599bcdeab5c22d33117b7e9ba960 libstdc++-v3/include/bits/ranges_algobase.h ! 2f4ea1d1fcf8514492d3c194e4475c12 libstdc++-v3/include/bits/ranges_base.h ! 78cb996cd8902c5baabd4b2dfdd65af4 libstdc++-v3/include/bits/ranges_cmp.h ! 6bb4f3d4369ad8f3c7d28c6bc69d5c8d libstdc++-v3/include/bits/ranges_uninitialized.h ! 76515fab37a425ece4a81bde69d2816c libstdc++-v3/include/bits/ranges_util.h bafb49c6b1a65444216c071f25b43760 libstdc++-v3/include/bits/refwrap.h ! d0f6e74ba75bd371d006cfd1b912c50c libstdc++-v3/include/bits/regex.h 98d3d51046b708d9220ef857b955650f libstdc++-v3/include/bits/regex.tcc b8b0cf85c115bbd16b3256e7f86315c5 libstdc++-v3/include/bits/regex_automaton.h 1a0c43de6ed4d56e298516e81208096a libstdc++-v3/include/bits/regex_automaton.tcc --- 98256,98281 ---- 3f32eafc5a86b24ba1ddea1f2c791f2f libstdc++-v3/include/bits/mask_array.h 3b99ebe899129f76e71b6a400b7ae599 libstdc++-v3/include/bits/max_size_type.h 3f6b104467902cda411d015a32d97cf1 libstdc++-v3/include/bits/memoryfwd.h ! 156ce13c58f77c44098165fa0e6b5efc libstdc++-v3/include/bits/move.h ! 434b2342bf495fd191265b752a71fc44 libstdc++-v3/include/bits/node_handle.h 3877d17291319659d2c7ab82f127deeb libstdc++-v3/include/bits/ostream.tcc c6baef5b0dbad526c4a7d462e52887b8 libstdc++-v3/include/bits/ostream_insert.h 518cd0ae140bee151205f0ccbbe7a9d2 libstdc++-v3/include/bits/parse_numbers.h e270c86004665d7c88cb0daea0668abd libstdc++-v3/include/bits/postypes.h 1aa21e383abff8b98908de39896ac74d libstdc++-v3/include/bits/predefined_ops.h ! e6a5e9764ebd755e32e991292611e659 libstdc++-v3/include/bits/ptr_traits.h bf73b2a247be8d104de523be716f61f4 libstdc++-v3/include/bits/quoted_string.h ! 470011eef0ce4aa0582e38f577095a5c libstdc++-v3/include/bits/random.h ! 5f69bfbde6bf41c8001a80d38abd542a libstdc++-v3/include/bits/random.tcc ! 8dad5e77e5e4bab2b7000771d297ea9a libstdc++-v3/include/bits/range_access.h ! 0cfaa408ff48de2b121439f9f325d90c libstdc++-v3/include/bits/ranges_algo.h ! e2df1ee55df6addd8c7b5d3bde579658 libstdc++-v3/include/bits/ranges_algobase.h ! e0904214b08e51aa4604c6df133c3bbb libstdc++-v3/include/bits/ranges_base.h ! 52dfeae5cd28cdecf71c6362cd101927 libstdc++-v3/include/bits/ranges_cmp.h ! 920cfa2cb58c94bed4db10b0a892ca19 libstdc++-v3/include/bits/ranges_uninitialized.h ! a22ca821dd328be54106bfb299193706 libstdc++-v3/include/bits/ranges_util.h bafb49c6b1a65444216c071f25b43760 libstdc++-v3/include/bits/refwrap.h ! 843befce3c9575f43a5893d8dad4dc61 libstdc++-v3/include/bits/regex.h 98d3d51046b708d9220ef857b955650f libstdc++-v3/include/bits/regex.tcc b8b0cf85c115bbd16b3256e7f86315c5 libstdc++-v3/include/bits/regex_automaton.h 1a0c43de6ed4d56e298516e81208096a libstdc++-v3/include/bits/regex_automaton.tcc *************** bf2631da804338ebd183a2ab97e8fe71 libstd *** 97773,97779 **** f419d75dd099ff83043ecee608bcbd0b libstdc++-v3/include/bits/regex_executor.tcc 716607b7d27d47a176e82ac8130fdf31 libstdc++-v3/include/bits/regex_scanner.h 785e8171663dd2f0db22813a93c65ed9 libstdc++-v3/include/bits/regex_scanner.tcc ! ccc82e16d7a03afbb25d83f3e49e8053 libstdc++-v3/include/bits/semaphore_base.h bae24842408b2172fbea488e17b09021 libstdc++-v3/include/bits/shared_ptr.h 007e220395413941831ec80cc4e916b7 libstdc++-v3/include/bits/shared_ptr_atomic.h 903a445df4ef3034a2163ac5a9adc8da libstdc++-v3/include/bits/shared_ptr_base.h --- 98287,98293 ---- f419d75dd099ff83043ecee608bcbd0b libstdc++-v3/include/bits/regex_executor.tcc 716607b7d27d47a176e82ac8130fdf31 libstdc++-v3/include/bits/regex_scanner.h 785e8171663dd2f0db22813a93c65ed9 libstdc++-v3/include/bits/regex_scanner.tcc ! d761f7d17cd87d90c96bcaa692fffffc libstdc++-v3/include/bits/semaphore_base.h bae24842408b2172fbea488e17b09021 libstdc++-v3/include/bits/shared_ptr.h 007e220395413941831ec80cc4e916b7 libstdc++-v3/include/bits/shared_ptr_atomic.h 903a445df4ef3034a2163ac5a9adc8da libstdc++-v3/include/bits/shared_ptr_base.h *************** bae24842408b2172fbea488e17b09021 libstd *** 97781,97797 **** 82bbae243b362815baa11a73f83d2188 libstdc++-v3/include/bits/specfun.h 13dd655f9d33eef94922ec1a670c462c libstdc++-v3/include/bits/sstream.tcc 0ca803a7f09755f05290802f0dd2b38c libstdc++-v3/include/bits/std_abs.h ! 0f61c570cbb535b1691a12ada5c2a34d libstdc++-v3/include/bits/std_function.h c65174fff50fe5647fc68ed6f3ae1695 libstdc++-v3/include/bits/std_mutex.h f2a5652c1fba7b750bcb17f96dcc1a75 libstdc++-v3/include/bits/std_thread.h c661d981a881e8628863fac1295c261c libstdc++-v3/include/bits/stl_algo.h c0e5fec159b35d2e970802869ef11db5 libstdc++-v3/include/bits/stl_algobase.h 98118948adc1b932091fb4e357a8762c libstdc++-v3/include/bits/stl_bvector.h ! c1e09b0354857b8e354266917b1a5930 libstdc++-v3/include/bits/stl_construct.h 030b82de595162b8288defee8ca51bc1 libstdc++-v3/include/bits/stl_deque.h ! 25317d371d99754142da342fe8338100 libstdc++-v3/include/bits/stl_function.h 9b5d138d0bfe5519552ee1fd50135555 libstdc++-v3/include/bits/stl_heap.h ! 5325599d66f15e22988de66a27c7ee68 libstdc++-v3/include/bits/stl_iterator.h 76a3280d9bb3ee6191804428721c4059 libstdc++-v3/include/bits/stl_iterator_base_funcs.h 4c794f35830ab1d4f96e6d5dacb8ecc7 libstdc++-v3/include/bits/stl_iterator_base_types.h 98c11423a3f4c54610e2c3580faffbd7 libstdc++-v3/include/bits/stl_list.h --- 98295,98311 ---- 82bbae243b362815baa11a73f83d2188 libstdc++-v3/include/bits/specfun.h 13dd655f9d33eef94922ec1a670c462c libstdc++-v3/include/bits/sstream.tcc 0ca803a7f09755f05290802f0dd2b38c libstdc++-v3/include/bits/std_abs.h ! 0c73b43d052808013e7562d398c72d7e libstdc++-v3/include/bits/std_function.h c65174fff50fe5647fc68ed6f3ae1695 libstdc++-v3/include/bits/std_mutex.h f2a5652c1fba7b750bcb17f96dcc1a75 libstdc++-v3/include/bits/std_thread.h c661d981a881e8628863fac1295c261c libstdc++-v3/include/bits/stl_algo.h c0e5fec159b35d2e970802869ef11db5 libstdc++-v3/include/bits/stl_algobase.h 98118948adc1b932091fb4e357a8762c libstdc++-v3/include/bits/stl_bvector.h ! 6847fc10df4d7118742d961154d17bb9 libstdc++-v3/include/bits/stl_construct.h 030b82de595162b8288defee8ca51bc1 libstdc++-v3/include/bits/stl_deque.h ! 42c8c895e947368df44a306d292f341c libstdc++-v3/include/bits/stl_function.h 9b5d138d0bfe5519552ee1fd50135555 libstdc++-v3/include/bits/stl_heap.h ! 42972cf6f6ba275d7ce1bc489a712015 libstdc++-v3/include/bits/stl_iterator.h 76a3280d9bb3ee6191804428721c4059 libstdc++-v3/include/bits/stl_iterator_base_funcs.h 4c794f35830ab1d4f96e6d5dacb8ecc7 libstdc++-v3/include/bits/stl_iterator_base_types.h 98c11423a3f4c54610e2c3580faffbd7 libstdc++-v3/include/bits/stl_list.h *************** e519ad1037772e85daa706ffa7ea28da libstd *** 97806,97812 **** 93170ef391fdcbda38838ce3f8f4b861 libstdc++-v3/include/bits/stl_set.h ba0b8ae642f56a2b5ac0e0f6b5efdb5f libstdc++-v3/include/bits/stl_stack.h cf3c9e963ec99beda2bb6c7db4a045f6 libstdc++-v3/include/bits/stl_tempbuf.h ! bf00b712beec015ea638e92162683a9d libstdc++-v3/include/bits/stl_tree.h e5b2dfda2795d428e8e4a9ac15177146 libstdc++-v3/include/bits/stl_uninitialized.h abcaf00227294b9790605822a1c03477 libstdc++-v3/include/bits/stl_vector.h 1e99e977ac1c11c7b57913dfa5041da9 libstdc++-v3/include/bits/stream_iterator.h --- 98320,98326 ---- 93170ef391fdcbda38838ce3f8f4b861 libstdc++-v3/include/bits/stl_set.h ba0b8ae642f56a2b5ac0e0f6b5efdb5f libstdc++-v3/include/bits/stl_stack.h cf3c9e963ec99beda2bb6c7db4a045f6 libstdc++-v3/include/bits/stl_tempbuf.h ! 02cdd04bbd0f99a11cf0f12d5a9b21a7 libstdc++-v3/include/bits/stl_tree.h e5b2dfda2795d428e8e4a9ac15177146 libstdc++-v3/include/bits/stl_uninitialized.h abcaf00227294b9790605822a1c03477 libstdc++-v3/include/bits/stl_vector.h 1e99e977ac1c11c7b57913dfa5041da9 libstdc++-v3/include/bits/stream_iterator.h *************** e1046f3460e6b41c7e73808ecb83be4d libstd *** 97814,97832 **** 68cf363b8a59975fef89e4a35f305aac libstdc++-v3/include/bits/streambuf_iterator.h edfcae2473cc1997408a2778fd824b00 libstdc++-v3/include/bits/string_view.tcc dce486b4bf1d6d2797c477681a012b6b libstdc++-v3/include/bits/stringfwd.h ! 98845c8acb65ad30581355638051805e libstdc++-v3/include/bits/this_thread_sleep.h 13b7236ca3b4f48a897996d806dfcd78 libstdc++-v3/include/bits/uniform_int_dist.h f121bb0af76bb2def80cd57ec47a7a93 libstdc++-v3/include/bits/unique_lock.h 4b5ae66ad1eb2fe06e6955f59533f596 libstdc++-v3/include/bits/unique_ptr.h b23caecd2ad3808e9572b2051285a5ef libstdc++-v3/include/bits/unordered_map.h 2b37ceccf2a7d7b2510b97d737feb425 libstdc++-v3/include/bits/unordered_set.h ! a0235307021a386f653230df9f88f20c libstdc++-v3/include/bits/uses_allocator.h ! 101803fea1c9b20b1dc8df08e69ce89e libstdc++-v3/include/bits/uses_allocator_args.h 92ac9967aa8b4e7ebb4019d9e5fc2cf6 libstdc++-v3/include/bits/valarray_after.h 68516738753362c2db0a29a86a8e6264 libstdc++-v3/include/bits/valarray_array.h 164619db6e4fbc8072543c783e3b533e libstdc++-v3/include/bits/valarray_array.tcc eec1e9f3ef9e5c255e124414bcf4c902 libstdc++-v3/include/bits/valarray_before.h ! 5c24b494579a64c40c25078afc9592a4 libstdc++-v3/include/bits/vector.tcc b1f8590e0971e6f4f03bdadbd17bdbbe libstdc++-v3/include/c/cassert 464f65c3985036f2313f8dfd9e478cbf libstdc++-v3/include/c/cctype e9f32ea9e1c02499c9120e1ba83e0563 libstdc++-v3/include/c/cerrno --- 98328,98346 ---- 68cf363b8a59975fef89e4a35f305aac libstdc++-v3/include/bits/streambuf_iterator.h edfcae2473cc1997408a2778fd824b00 libstdc++-v3/include/bits/string_view.tcc dce486b4bf1d6d2797c477681a012b6b libstdc++-v3/include/bits/stringfwd.h ! 36a5335258d3016e02f890395595a676 libstdc++-v3/include/bits/this_thread_sleep.h 13b7236ca3b4f48a897996d806dfcd78 libstdc++-v3/include/bits/uniform_int_dist.h f121bb0af76bb2def80cd57ec47a7a93 libstdc++-v3/include/bits/unique_lock.h 4b5ae66ad1eb2fe06e6955f59533f596 libstdc++-v3/include/bits/unique_ptr.h b23caecd2ad3808e9572b2051285a5ef libstdc++-v3/include/bits/unordered_map.h 2b37ceccf2a7d7b2510b97d737feb425 libstdc++-v3/include/bits/unordered_set.h ! 3232586c3c5b827a38bfdd0f1cb692d3 libstdc++-v3/include/bits/uses_allocator.h ! 3ce8e46172f802fe63611201ceff37c3 libstdc++-v3/include/bits/uses_allocator_args.h 92ac9967aa8b4e7ebb4019d9e5fc2cf6 libstdc++-v3/include/bits/valarray_after.h 68516738753362c2db0a29a86a8e6264 libstdc++-v3/include/bits/valarray_array.h 164619db6e4fbc8072543c783e3b533e libstdc++-v3/include/bits/valarray_array.tcc eec1e9f3ef9e5c255e124414bcf4c902 libstdc++-v3/include/bits/valarray_before.h ! e9a66096952709a84b1e05178c12ec5a libstdc++-v3/include/bits/vector.tcc b1f8590e0971e6f4f03bdadbd17bdbbe libstdc++-v3/include/c/cassert 464f65c3985036f2313f8dfd9e478cbf libstdc++-v3/include/c/cctype e9f32ea9e1c02499c9120e1ba83e0563 libstdc++-v3/include/c/cerrno *************** c23637eb3e55b3f86c5e85f5402312ca libstd *** 97881,97887 **** bea4736c30e19b7dbbb353d744ed95f8 libstdc++-v3/include/c_global/ciso646 05b0d3083d07e10954c5b39df656eaf7 libstdc++-v3/include/c_global/climits 6afe6dfb5f2274ccbf33ba43f6559ba4 libstdc++-v3/include/c_global/clocale ! 12cfb685fa59bae140922161835837f9 libstdc++-v3/include/c_global/cmath 741102d213f2c21d9b2d2130b2e6e761 libstdc++-v3/include/c_global/csetjmp 4bb7695c936055e976e354b1f402bc4a libstdc++-v3/include/c_global/csignal 46a63be570cb38caa5e9a9dbbb602cc7 libstdc++-v3/include/c_global/cstdalign --- 98395,98401 ---- bea4736c30e19b7dbbb353d744ed95f8 libstdc++-v3/include/c_global/ciso646 05b0d3083d07e10954c5b39df656eaf7 libstdc++-v3/include/c_global/climits 6afe6dfb5f2274ccbf33ba43f6559ba4 libstdc++-v3/include/c_global/clocale ! ffaf8d3718dd333ea27a4a80ef91f2ca libstdc++-v3/include/c_global/cmath 741102d213f2c21d9b2d2130b2e6e761 libstdc++-v3/include/c_global/csetjmp 4bb7695c936055e976e354b1f402bc4a libstdc++-v3/include/c_global/csignal 46a63be570cb38caa5e9a9dbbb602cc7 libstdc++-v3/include/c_global/cstdalign *************** c6fc62e7d12600e5c129d2d2ad9a2662 libstd *** 97916,97930 **** 758a598e2606e6a21f171ef4fdb4c72a libstdc++-v3/include/c_std/cuchar bcddf9c045520bcb631559376dc42835 libstdc++-v3/include/c_std/cwchar 0efb884ff8a189f77fd542dfb2fc5bd4 libstdc++-v3/include/c_std/cwctype 963865eb5322b6ffdddcd071272feba0 libstdc++-v3/include/debug/assertions.h 1d6ef299bacc09a55667272276c35d6c libstdc++-v3/include/debug/bitset 982c0103e1e5f86b0818efdfc5273c3c libstdc++-v3/include/debug/debug.h ! a2bb5b96e30e1ec8adca3f4f2349c5f2 libstdc++-v3/include/debug/deque 292da4c038fc1dfe51b75788349b902b libstdc++-v3/include/debug/formatter.h ! 1c0a8bb642d445b17e0b83f10080a080 libstdc++-v3/include/debug/forward_list b8d8c1f08472efae032f44026863678a libstdc++-v3/include/debug/functions.h e0553720cdf0df02b776145b36a51a65 libstdc++-v3/include/debug/helper_functions.h ! dc02cfa95e6389a4e8ed53b52037efa1 libstdc++-v3/include/debug/list 64eec174a9df5709488aaa20aea2180c libstdc++-v3/include/debug/macros.h 52694538be445d5249d6d7f585cd45ce libstdc++-v3/include/debug/map a860368b110d2e3a9b48548930534cea libstdc++-v3/include/debug/map.h --- 98430,98445 ---- 758a598e2606e6a21f171ef4fdb4c72a libstdc++-v3/include/c_std/cuchar bcddf9c045520bcb631559376dc42835 libstdc++-v3/include/c_std/cwchar 0efb884ff8a189f77fd542dfb2fc5bd4 libstdc++-v3/include/c_std/cwctype + c0c9bbb808e6bfe4153e5271f4d97b96 libstdc++-v3/include/debug/array 963865eb5322b6ffdddcd071272feba0 libstdc++-v3/include/debug/assertions.h 1d6ef299bacc09a55667272276c35d6c libstdc++-v3/include/debug/bitset 982c0103e1e5f86b0818efdfc5273c3c libstdc++-v3/include/debug/debug.h ! 788a61c46ffb08798088c93cd8b9b3a2 libstdc++-v3/include/debug/deque 292da4c038fc1dfe51b75788349b902b libstdc++-v3/include/debug/formatter.h ! 4571687f4194f778feef507848a7fe95 libstdc++-v3/include/debug/forward_list b8d8c1f08472efae032f44026863678a libstdc++-v3/include/debug/functions.h e0553720cdf0df02b776145b36a51a65 libstdc++-v3/include/debug/helper_functions.h ! 2d7e0e7fa5d73669881b080a2a599ad6 libstdc++-v3/include/debug/list 64eec174a9df5709488aaa20aea2180c libstdc++-v3/include/debug/macros.h 52694538be445d5249d6d7f585cd45ce libstdc++-v3/include/debug/map a860368b110d2e3a9b48548930534cea libstdc++-v3/include/debug/map.h *************** bbaa39c68a8689f894b4d32d8a71a33e libstd *** 97947,97970 **** 9338fa7bb61e6716eb79ad8ad9b3cc64 libstdc++-v3/include/debug/string fa95e8291a021fd8d54e739bfb36d8f4 libstdc++-v3/include/debug/unordered_map bbcb44f5d6a75be289854e78c50d6e0e libstdc++-v3/include/debug/unordered_set ! c3d82bad900e0d196ae511bd4c0f3fec libstdc++-v3/include/debug/vector 120f78076a2f681354fccdfa1c64f57f libstdc++-v3/include/decimal/decimal 477587a4b4e34940758c5fbea090924c libstdc++-v3/include/decimal/decimal.h a5dc946ed9ad5abaadf5484a8d94c35b libstdc++-v3/include/experimental/algorithm fee23cd92a92d6bf2f6fdd3850d1ec1a libstdc++-v3/include/experimental/any 51feabb5a9aff9c2650be847f563769d libstdc++-v3/include/experimental/array 363feb942b9ed4fdcb8f065231501c85 libstdc++-v3/include/experimental/bits/fs_dir.h ! 1e6cf57adc1d2e1e2f6b3386c723c716 libstdc++-v3/include/experimental/bits/fs_fwd.h ! 14ed2c858fb9b3b202244270d22e8588 libstdc++-v3/include/experimental/bits/fs_ops.h ! 5bb53292ddf15efaa4f7bae8979c4085 libstdc++-v3/include/experimental/bits/fs_path.h f35b43a0d32627601d4bfe3ac24e84ff libstdc++-v3/include/experimental/bits/lfts_config.h ! 91cf8a8dfd486460546ef6e54009b843 libstdc++-v3/include/experimental/bits/net.h 19f9985a717ce911687aa7087349693d libstdc++-v3/include/experimental/bits/numeric_traits.h 526bcbcdfb0acc96580ff835ceb38948 libstdc++-v3/include/experimental/bits/shared_ptr.h ! 148721a68e956207907656f45be41f04 libstdc++-v3/include/experimental/bits/simd.h 77017778ba2d0d32457cec429d6d6977 libstdc++-v3/include/experimental/bits/simd_builtin.h 24126236d714fbf83db8ddc38457b246 libstdc++-v3/include/experimental/bits/simd_converter.h ! 9a523438f206d342e3a250b92a4f608d libstdc++-v3/include/experimental/bits/simd_detail.h eec02f44fcb5eba6ba668e810c146d8d libstdc++-v3/include/experimental/bits/simd_fixed_size.h 847194b3fe1db090040fca784135ea40 libstdc++-v3/include/experimental/bits/simd_math.h 0bcac8d453d8e154e6ccb741b4519051 libstdc++-v3/include/experimental/bits/simd_neon.h --- 98462,98485 ---- 9338fa7bb61e6716eb79ad8ad9b3cc64 libstdc++-v3/include/debug/string fa95e8291a021fd8d54e739bfb36d8f4 libstdc++-v3/include/debug/unordered_map bbcb44f5d6a75be289854e78c50d6e0e libstdc++-v3/include/debug/unordered_set ! 0418b9420a5bde11797588d2152dde26 libstdc++-v3/include/debug/vector 120f78076a2f681354fccdfa1c64f57f libstdc++-v3/include/decimal/decimal 477587a4b4e34940758c5fbea090924c libstdc++-v3/include/decimal/decimal.h a5dc946ed9ad5abaadf5484a8d94c35b libstdc++-v3/include/experimental/algorithm fee23cd92a92d6bf2f6fdd3850d1ec1a libstdc++-v3/include/experimental/any 51feabb5a9aff9c2650be847f563769d libstdc++-v3/include/experimental/array 363feb942b9ed4fdcb8f065231501c85 libstdc++-v3/include/experimental/bits/fs_dir.h ! f5e02eb1311a467ce3d8138ce931f3eb libstdc++-v3/include/experimental/bits/fs_fwd.h ! 52737c1e85c36fe263ef86630cece5a7 libstdc++-v3/include/experimental/bits/fs_ops.h ! 39c79598ce86e66f13b60c1891b17e80 libstdc++-v3/include/experimental/bits/fs_path.h f35b43a0d32627601d4bfe3ac24e84ff libstdc++-v3/include/experimental/bits/lfts_config.h ! 6c96027917a74ba73627fb559e8bbeb7 libstdc++-v3/include/experimental/bits/net.h 19f9985a717ce911687aa7087349693d libstdc++-v3/include/experimental/bits/numeric_traits.h 526bcbcdfb0acc96580ff835ceb38948 libstdc++-v3/include/experimental/bits/shared_ptr.h ! 2e2d3bbaa3bfc8f5b2865938517b4aa7 libstdc++-v3/include/experimental/bits/simd.h 77017778ba2d0d32457cec429d6d6977 libstdc++-v3/include/experimental/bits/simd_builtin.h 24126236d714fbf83db8ddc38457b246 libstdc++-v3/include/experimental/bits/simd_converter.h ! c7387f3f41d4df9d699e9b1336d67344 libstdc++-v3/include/experimental/bits/simd_detail.h eec02f44fcb5eba6ba668e810c146d8d libstdc++-v3/include/experimental/bits/simd_fixed_size.h 847194b3fe1db090040fca784135ea40 libstdc++-v3/include/experimental/bits/simd_math.h 0bcac8d453d8e154e6ccb741b4519051 libstdc++-v3/include/experimental/bits/simd_neon.h *************** baeaf7b9b85bb476117d286653f6d6dd libstd *** 97980,97987 **** 7b2663037e13929b806bf614936012cd libstdc++-v3/include/experimental/filesystem de12aef18178267fe21aaf85aa6b5d98 libstdc++-v3/include/experimental/forward_list 5dcfda8a1ea0023fdf730226a958f492 libstdc++-v3/include/experimental/functional ! 160b526c8569b58c349ff65f81fcf3ca libstdc++-v3/include/experimental/internet ! 6f54560b54e9b5831aab7f9ebb1c74f5 libstdc++-v3/include/experimental/io_context 4691bb9a4cbb032dd0b0bd7a07fa1867 libstdc++-v3/include/experimental/iterator 760aa8f9adda752006a29223129fb0e3 libstdc++-v3/include/experimental/list 4e6e0455f4851cba8c386f87fa7cffa5 libstdc++-v3/include/experimental/map --- 98495,98502 ---- 7b2663037e13929b806bf614936012cd libstdc++-v3/include/experimental/filesystem de12aef18178267fe21aaf85aa6b5d98 libstdc++-v3/include/experimental/forward_list 5dcfda8a1ea0023fdf730226a958f492 libstdc++-v3/include/experimental/functional ! 3123308f1adec058d0f6137b80537c97 libstdc++-v3/include/experimental/internet ! 91becacad368d2748dbba54d79e1d1d4 libstdc++-v3/include/experimental/io_context 4691bb9a4cbb032dd0b0bd7a07fa1867 libstdc++-v3/include/experimental/iterator 760aa8f9adda752006a29223129fb0e3 libstdc++-v3/include/experimental/list 4e6e0455f4851cba8c386f87fa7cffa5 libstdc++-v3/include/experimental/map *************** de12aef18178267fe21aaf85aa6b5d98 libstd *** 97990,98010 **** 00e11abd45c1991e940e3cc0ce0ebe37 libstdc++-v3/include/experimental/net c37c4ab64b91d429eb61d78fdc4ae75e libstdc++-v3/include/experimental/netfwd e9319e5893708aa04f34ad9d9a5782d8 libstdc++-v3/include/experimental/numeric ! a0cb31346100ef6e31c5340c851b1acd libstdc++-v3/include/experimental/optional 88381df08a09b23c6f601a2631339c94 libstdc++-v3/include/experimental/propagate_const b9a97a912d958096564644bd8f9c49e6 libstdc++-v3/include/experimental/random bcc2870c86a9e3a62d9cc64e34919516 libstdc++-v3/include/experimental/ratio 7e0f9fbf12108027afd2e6248d9f5bda libstdc++-v3/include/experimental/regex 645d538d0ba30fecafec0f1cd4f5b3f6 libstdc++-v3/include/experimental/set ! bc952b119277996a888c94412f706bd6 libstdc++-v3/include/experimental/simd ! 218082921b39fabe9307bd0f5d61021f libstdc++-v3/include/experimental/socket 62e4341339e0537b4c003fc7af143bfb libstdc++-v3/include/experimental/source_location b500d85d056b59344bda216ea50a8dc9 libstdc++-v3/include/experimental/string f52632f13e686838f3781d23288a2d7d libstdc++-v3/include/experimental/string_view 97920d684395dfd6b6412ea10b98750d libstdc++-v3/include/experimental/system_error 7f2b47081abbff883bb7b5742683f4fc libstdc++-v3/include/experimental/timer 8f29cc85dfc3c0304ff4e631e71cc8b2 libstdc++-v3/include/experimental/tuple ! 23be28fd63bfcefd1bddaede10b4f06c libstdc++-v3/include/experimental/type_traits 5b6d031ea5e1e121f67d540682e7a32d libstdc++-v3/include/experimental/unordered_map 838f25578044afb07fa073b5b64a49c5 libstdc++-v3/include/experimental/unordered_set 8df151efcb383fabc32af1d11c823c63 libstdc++-v3/include/experimental/utility --- 98505,98525 ---- 00e11abd45c1991e940e3cc0ce0ebe37 libstdc++-v3/include/experimental/net c37c4ab64b91d429eb61d78fdc4ae75e libstdc++-v3/include/experimental/netfwd e9319e5893708aa04f34ad9d9a5782d8 libstdc++-v3/include/experimental/numeric ! 254db9903f2d7fb0c771809d3d79d4c9 libstdc++-v3/include/experimental/optional 88381df08a09b23c6f601a2631339c94 libstdc++-v3/include/experimental/propagate_const b9a97a912d958096564644bd8f9c49e6 libstdc++-v3/include/experimental/random bcc2870c86a9e3a62d9cc64e34919516 libstdc++-v3/include/experimental/ratio 7e0f9fbf12108027afd2e6248d9f5bda libstdc++-v3/include/experimental/regex 645d538d0ba30fecafec0f1cd4f5b3f6 libstdc++-v3/include/experimental/set ! f9acd41f67303d72df67a5c63d75c3ef libstdc++-v3/include/experimental/simd ! 0121e1989d70818afa551c07e6f37ef6 libstdc++-v3/include/experimental/socket 62e4341339e0537b4c003fc7af143bfb libstdc++-v3/include/experimental/source_location b500d85d056b59344bda216ea50a8dc9 libstdc++-v3/include/experimental/string f52632f13e686838f3781d23288a2d7d libstdc++-v3/include/experimental/string_view 97920d684395dfd6b6412ea10b98750d libstdc++-v3/include/experimental/system_error 7f2b47081abbff883bb7b5742683f4fc libstdc++-v3/include/experimental/timer 8f29cc85dfc3c0304ff4e631e71cc8b2 libstdc++-v3/include/experimental/tuple ! 93597de1ce4c3f08eaf5cdd0d3006c1c libstdc++-v3/include/experimental/type_traits 5b6d031ea5e1e121f67d540682e7a32d libstdc++-v3/include/experimental/unordered_map 838f25578044afb07fa073b5b64a49c5 libstdc++-v3/include/experimental/unordered_set 8df151efcb383fabc32af1d11c823c63 libstdc++-v3/include/experimental/utility *************** c77947a8e5d56e9ec5bd632f54d9c2b7 libstd *** 98013,98026 **** 355369213d3139cc065c981d8d38bc1a libstdc++-v3/include/ext/aligned_buffer.h 2281be427d104b4f13880f90209a00bd libstdc++-v3/include/ext/alloc_traits.h de910203c9add5dfa31e3da6958d6f0c libstdc++-v3/include/ext/atomicity.h ! 5d0fb71198c9b9544ebbd9b1a661ca60 libstdc++-v3/include/ext/bitmap_allocator.h 19729e251044ebdf0b4f215af2ae3c3c libstdc++-v3/include/ext/cast.h 79e3628c5c7e897b2b87644e7849b35d libstdc++-v3/include/ext/cmath ea80a2ca9ca788adc2676ab1a43a771a libstdc++-v3/include/ext/codecvt_specializations.h 79a69441ec59c5bcbfe76b4d54f72634 libstdc++-v3/include/ext/concurrence.h 2f8c74a3bcc7692b9ec445fb64c28b30 libstdc++-v3/include/ext/debug_allocator.h 4959107d48788e9bc120ece3dfd2705c libstdc++-v3/include/ext/enc_filebuf.h ! da4ae9662e82020f9017f33b26382857 libstdc++-v3/include/ext/extptr_allocator.h eec31fad47ebb7d363bbebf67e556a13 libstdc++-v3/include/ext/functional 7a54c13e6e6f460d94b0b2ee2618eaf5 libstdc++-v3/include/ext/iterator e2309f02d17d9911b021d12cbf3a614b libstdc++-v3/include/ext/malloc_allocator.h --- 98528,98541 ---- 355369213d3139cc065c981d8d38bc1a libstdc++-v3/include/ext/aligned_buffer.h 2281be427d104b4f13880f90209a00bd libstdc++-v3/include/ext/alloc_traits.h de910203c9add5dfa31e3da6958d6f0c libstdc++-v3/include/ext/atomicity.h ! 9cc929c89e00f26b8d0b5569c3107b90 libstdc++-v3/include/ext/bitmap_allocator.h 19729e251044ebdf0b4f215af2ae3c3c libstdc++-v3/include/ext/cast.h 79e3628c5c7e897b2b87644e7849b35d libstdc++-v3/include/ext/cmath ea80a2ca9ca788adc2676ab1a43a771a libstdc++-v3/include/ext/codecvt_specializations.h 79a69441ec59c5bcbfe76b4d54f72634 libstdc++-v3/include/ext/concurrence.h 2f8c74a3bcc7692b9ec445fb64c28b30 libstdc++-v3/include/ext/debug_allocator.h 4959107d48788e9bc120ece3dfd2705c libstdc++-v3/include/ext/enc_filebuf.h ! ca86979549d87832de0291c84c1fa5f2 libstdc++-v3/include/ext/extptr_allocator.h eec31fad47ebb7d363bbebf67e556a13 libstdc++-v3/include/ext/functional 7a54c13e6e6f460d94b0b2ee2618eaf5 libstdc++-v3/include/ext/iterator e2309f02d17d9911b021d12cbf3a614b libstdc++-v3/include/ext/malloc_allocator.h *************** ce69f1e624269a8721e5a954efb5dc04 libstd *** 98279,98293 **** 6894d46827219ab4f87c99fa55747dbd libstdc++-v3/include/ext/random.tcc 1f39dd2e3db99a24b96518fe96cce49d libstdc++-v3/include/ext/rb_tree 887a8a6b63bed291b3c470540fcaaa4b libstdc++-v3/include/ext/rc_string_base.h ! 5213308ce396b386306fb29121140e7f libstdc++-v3/include/ext/rope e4965077c58739b0417036394f07e39a libstdc++-v3/include/ext/ropeimpl.h 99f5838816c6597df0e8558052f3a18b libstdc++-v3/include/ext/slist e836b76f864ee40c6389f9f8a8590618 libstdc++-v3/include/ext/sso_string_base.h 03d4a2f17412d2df48b882b4e6dc2bcf libstdc++-v3/include/ext/stdio_filebuf.h 31f63659be962213f41ca2361f8bc160 libstdc++-v3/include/ext/stdio_sync_filebuf.h ed7cad99ffe69538e5e6374fdde82f0f libstdc++-v3/include/ext/string_conversions.h ! 4b2dca5f3f2de252adce3178b83a6c2d libstdc++-v3/include/ext/throw_allocator.h ! 0b81f2152afb8342fe6466bcd7e964b2 libstdc++-v3/include/ext/type_traits.h 0c390cedd6d94b1522b17eb2daa34761 libstdc++-v3/include/ext/typelist.h a811c9fa07a8faa1f6de79e3cbb53ca4 libstdc++-v3/include/ext/vstring.h 78f99f23aa66db49d819b5d885de9431 libstdc++-v3/include/ext/vstring.tcc --- 98794,98808 ---- 6894d46827219ab4f87c99fa55747dbd libstdc++-v3/include/ext/random.tcc 1f39dd2e3db99a24b96518fe96cce49d libstdc++-v3/include/ext/rb_tree 887a8a6b63bed291b3c470540fcaaa4b libstdc++-v3/include/ext/rc_string_base.h ! 82982d9fdfc18883e29743565f4c33e7 libstdc++-v3/include/ext/rope e4965077c58739b0417036394f07e39a libstdc++-v3/include/ext/ropeimpl.h 99f5838816c6597df0e8558052f3a18b libstdc++-v3/include/ext/slist e836b76f864ee40c6389f9f8a8590618 libstdc++-v3/include/ext/sso_string_base.h 03d4a2f17412d2df48b882b4e6dc2bcf libstdc++-v3/include/ext/stdio_filebuf.h 31f63659be962213f41ca2361f8bc160 libstdc++-v3/include/ext/stdio_sync_filebuf.h ed7cad99ffe69538e5e6374fdde82f0f libstdc++-v3/include/ext/string_conversions.h ! df82a6d35dad33b7cbe0dd6c58c05269 libstdc++-v3/include/ext/throw_allocator.h ! 1b52de57a3b6ca29ae3b6dce49a73ce8 libstdc++-v3/include/ext/type_traits.h 0c390cedd6d94b1522b17eb2daa34761 libstdc++-v3/include/ext/typelist.h a811c9fa07a8faa1f6de79e3cbb53ca4 libstdc++-v3/include/ext/vstring.h 78f99f23aa66db49d819b5d885de9431 libstdc++-v3/include/ext/vstring.tcc *************** d3d2812c60e828c1e822801f148c7630 libstd *** 98363,98379 **** b156f0d597a2edae1a06e54aba071e41 libstdc++-v3/include/pstl/unseq_backend_simd.h 248e4a4c932ee32246a6216c3b58a482 libstdc++-v3/include/pstl/utils.h 6f7d40cef8f663c474dbafbd94db6d41 libstdc++-v3/include/std/algorithm ! 066b18e14980b8659efe2ea0af1db5cd libstdc++-v3/include/std/any 1c0c57ef53ca4293de32b58ded42452f libstdc++-v3/include/std/array ! 3616eb318b793fb7a6f2cf2269d7aa88 libstdc++-v3/include/std/atomic 113c8eb3a8d8b67c8404665c3eb0af4b libstdc++-v3/include/std/barrier ! 7bb917bb7b34d5cf900805769b20fbd5 libstdc++-v3/include/std/bit 92df508c8bd5ee1e5201893372265093 libstdc++-v3/include/std/bitset ! 016f9228c7c56bfdb6026046207900cd libstdc++-v3/include/std/charconv ! 3d8e8c2eaed95f06df8e4717dbba1091 libstdc++-v3/include/std/chrono 9fc8010f8954d7f9d9b7b73480068af4 libstdc++-v3/include/std/codecvt 34ecc2d19af4343e2194a05671920bcf libstdc++-v3/include/std/complex ! d33ca217751ca65132a5414655ed7688 libstdc++-v3/include/std/concepts fb6345dccc50a327805158467bdd0578 libstdc++-v3/include/std/condition_variable 0f8d495b0973573de96359f543a4b357 libstdc++-v3/include/std/coroutine 8b2773ff4157b0afe801622dc6da60ad libstdc++-v3/include/std/deque --- 98878,98894 ---- b156f0d597a2edae1a06e54aba071e41 libstdc++-v3/include/pstl/unseq_backend_simd.h 248e4a4c932ee32246a6216c3b58a482 libstdc++-v3/include/pstl/utils.h 6f7d40cef8f663c474dbafbd94db6d41 libstdc++-v3/include/std/algorithm ! 463aea90e2091f752c8b3d12848f07af libstdc++-v3/include/std/any 1c0c57ef53ca4293de32b58ded42452f libstdc++-v3/include/std/array ! 570573a00e531ffdecd17c4b451394a3 libstdc++-v3/include/std/atomic 113c8eb3a8d8b67c8404665c3eb0af4b libstdc++-v3/include/std/barrier ! 0c9f83580f47735e5a15465796ce574b libstdc++-v3/include/std/bit 92df508c8bd5ee1e5201893372265093 libstdc++-v3/include/std/bitset ! 22f4855f519d0c64e0fd08dd60af4544 libstdc++-v3/include/std/charconv ! 84f035b368ef2b37d7074a834881f74c libstdc++-v3/include/std/chrono 9fc8010f8954d7f9d9b7b73480068af4 libstdc++-v3/include/std/codecvt 34ecc2d19af4343e2194a05671920bcf libstdc++-v3/include/std/complex ! b27a8ffddfc035eda249b54de11167b3 libstdc++-v3/include/std/concepts fb6345dccc50a327805158467bdd0578 libstdc++-v3/include/std/condition_variable 0f8d495b0973573de96359f543a4b357 libstdc++-v3/include/std/coroutine 8b2773ff4157b0afe801622dc6da60ad libstdc++-v3/include/std/deque *************** cc9ef3d2217fc8c34ac467dc84040a1a libstd *** 98395,98437 **** fdca44bb1137ac2dff5858d707a7d4bf libstdc++-v3/include/std/locale f36de15c1f3b7e03051daa3f7c7472c5 libstdc++-v3/include/std/map 9c7bf4ea1e18b545d124ae2680b02ed9 libstdc++-v3/include/std/memory ! eefb79e63abf6981b7e039602b92d9ce libstdc++-v3/include/std/memory_resource 44c7dab7177844460c0d95f3b2c6d2dd libstdc++-v3/include/std/mutex 0f98490a23012b0d475a6438918e05e8 libstdc++-v3/include/std/numbers c5ef47ada66192553fd8a6a03625d70e libstdc++-v3/include/std/numeric ! 1cf58afb73bffb0ba70c085c3206307b libstdc++-v3/include/std/optional ! 8aee3c84178d8770860eb5107583298b libstdc++-v3/include/std/ostream 61b007baae14c52b13732aad82286815 libstdc++-v3/include/std/queue aad0b8c05c77db48c9ae1eddb9e0380d libstdc++-v3/include/std/random ! a30ab485c9739891932d89f22c2b9013 libstdc++-v3/include/std/ranges 338a84095148e5196b391a7fdf949691 libstdc++-v3/include/std/ratio 52827264570402b0bccc80a3adb4bf59 libstdc++-v3/include/std/regex ! 62195f008afa4b9fd1bea335fca46182 libstdc++-v3/include/std/scoped_allocator 7ea9ab55b16bf212329fa852a89c8167 libstdc++-v3/include/std/semaphore 742567ce5079b72e691794c61cfb2af3 libstdc++-v3/include/std/set 91a9a4fa6c63c846408b4454d2c8f4b2 libstdc++-v3/include/std/shared_mutex e0c9f8627e498a77f31adb76a452b0b1 libstdc++-v3/include/std/source_location ! f691a5e44b11b4da6aa2d2d85999b796 libstdc++-v3/include/std/span 906b5423836b8b95366b23366f24b8c5 libstdc++-v3/include/std/sstream ed0009b64dfff30999a2182d0189ee7f libstdc++-v3/include/std/stack 9d66312aa64c804c24a1e83155f4a200 libstdc++-v3/include/std/stdexcept 34c6da09a169cc099e8108f6af279a65 libstdc++-v3/include/std/stop_token 05c6cffed4833f117e386206af8f878e libstdc++-v3/include/std/streambuf 8eccd3adbdc9f406ec98e5483acf9c01 libstdc++-v3/include/std/string ! 1864cf4a20b5139ace07c9da4e1b4737 libstdc++-v3/include/std/string_view ! 3386938e1698a1f76bd82d3399fbe5ea libstdc++-v3/include/std/syncstream ! 48e36c3ca8d130bd0e9a77aab0d95a6f libstdc++-v3/include/std/system_error 83a8f781edae2a22c67cf12b96568a03 libstdc++-v3/include/std/thread ! 99aa78e6731090cec87d2956f2594fd7 libstdc++-v3/include/std/tuple ! 34e103757948c5bc3ca8c740847f7b6a libstdc++-v3/include/std/type_traits 330d42fb74c13496f374d6b2cb3cbf7c libstdc++-v3/include/std/typeindex 16ace88be8613b378b5fffc1958351a0 libstdc++-v3/include/std/unordered_map aeb2a92a3c9a2263f24568c8ece52a4c libstdc++-v3/include/std/unordered_set ! bdac698614e70e29eed7098d316ca2ff libstdc++-v3/include/std/utility ! eba3f9944908a390ab9674c4941d5ff3 libstdc++-v3/include/std/valarray ! 7476bf338bc2ab01fb66ddcca51ceb64 libstdc++-v3/include/std/variant b2ab68817368c3805d64bb4978a6129d libstdc++-v3/include/std/vector ! 0b4eb890ce4021cbe511e6c384b220cf libstdc++-v3/include/std/version 7a3df4ee77f8051d9c8970f892588ef6 libstdc++-v3/include/tr1/array 79c7b722cf8e5135a96d12e1a660393b libstdc++-v3/include/tr1/bessel_function.tcc 814be185cac0443c6e0933c450d9f912 libstdc++-v3/include/tr1/beta_function.tcc --- 98910,98952 ---- fdca44bb1137ac2dff5858d707a7d4bf libstdc++-v3/include/std/locale f36de15c1f3b7e03051daa3f7c7472c5 libstdc++-v3/include/std/map 9c7bf4ea1e18b545d124ae2680b02ed9 libstdc++-v3/include/std/memory ! 09387c343cf665a54b81117127a6a648 libstdc++-v3/include/std/memory_resource 44c7dab7177844460c0d95f3b2c6d2dd libstdc++-v3/include/std/mutex 0f98490a23012b0d475a6438918e05e8 libstdc++-v3/include/std/numbers c5ef47ada66192553fd8a6a03625d70e libstdc++-v3/include/std/numeric ! c26f8f7af799f7f3a2830f1689b12757 libstdc++-v3/include/std/optional ! efcc2fdc15a99e21f2c4a97ee2924fce libstdc++-v3/include/std/ostream 61b007baae14c52b13732aad82286815 libstdc++-v3/include/std/queue aad0b8c05c77db48c9ae1eddb9e0380d libstdc++-v3/include/std/random ! 3064407113806c9e18b6e82819e298e2 libstdc++-v3/include/std/ranges 338a84095148e5196b391a7fdf949691 libstdc++-v3/include/std/ratio 52827264570402b0bccc80a3adb4bf59 libstdc++-v3/include/std/regex ! 7aa445d626fba3c86cea701c7db4db7c libstdc++-v3/include/std/scoped_allocator 7ea9ab55b16bf212329fa852a89c8167 libstdc++-v3/include/std/semaphore 742567ce5079b72e691794c61cfb2af3 libstdc++-v3/include/std/set 91a9a4fa6c63c846408b4454d2c8f4b2 libstdc++-v3/include/std/shared_mutex e0c9f8627e498a77f31adb76a452b0b1 libstdc++-v3/include/std/source_location ! 357a7b4c1da8f56bcf0a40d239d6ecf5 libstdc++-v3/include/std/span 906b5423836b8b95366b23366f24b8c5 libstdc++-v3/include/std/sstream ed0009b64dfff30999a2182d0189ee7f libstdc++-v3/include/std/stack 9d66312aa64c804c24a1e83155f4a200 libstdc++-v3/include/std/stdexcept 34c6da09a169cc099e8108f6af279a65 libstdc++-v3/include/std/stop_token 05c6cffed4833f117e386206af8f878e libstdc++-v3/include/std/streambuf 8eccd3adbdc9f406ec98e5483acf9c01 libstdc++-v3/include/std/string ! 0a773ecf42b54e0084752df53c9771e9 libstdc++-v3/include/std/string_view ! 675010f60f0d3d515817ed986722981c libstdc++-v3/include/std/syncstream ! 58f6c2eb152b2f7a05834ac1c4ebb1ed libstdc++-v3/include/std/system_error 83a8f781edae2a22c67cf12b96568a03 libstdc++-v3/include/std/thread ! 987d70e3d16382cfa8a07dca96afab5e libstdc++-v3/include/std/tuple ! c35bd8e7b58e4d200f7129541933ae7b libstdc++-v3/include/std/type_traits 330d42fb74c13496f374d6b2cb3cbf7c libstdc++-v3/include/std/typeindex 16ace88be8613b378b5fffc1958351a0 libstdc++-v3/include/std/unordered_map aeb2a92a3c9a2263f24568c8ece52a4c libstdc++-v3/include/std/unordered_set ! d9438feb050100a59ccb2bd7e22fb8f6 libstdc++-v3/include/std/utility ! 54baaf5124374152e58dec3ec0861669 libstdc++-v3/include/std/valarray ! 93b603e7d4c481cb8e46ce989dab4dcf libstdc++-v3/include/std/variant b2ab68817368c3805d64bb4978a6129d libstdc++-v3/include/std/vector ! 6a729ab766e821a330853c5fd48bcca5 libstdc++-v3/include/std/version 7a3df4ee77f8051d9c8970f892588ef6 libstdc++-v3/include/tr1/array 79c7b722cf8e5135a96d12e1a660393b libstdc++-v3/include/tr1/bessel_function.tcc 814be185cac0443c6e0933c450d9f912 libstdc++-v3/include/tr1/beta_function.tcc *************** eb2bc7d97ecdf010f9361939f387092c libstd *** 98512,98518 **** 8aa8dd4846aee0a32c74838ffe1a9b18 libstdc++-v3/libsupc++/bad_cast.cc 61fcac9976ceb3ce4d31eda2e568a7c6 libstdc++-v3/libsupc++/bad_typeid.cc 3192b4cce5548a08f659876a1332baa5 libstdc++-v3/libsupc++/class_type_info.cc ! 972cdff7fe8351d5ca78c6b5bf563ebb libstdc++-v3/libsupc++/compare 782af6cf5da6b4aed7e6e655947c10c7 libstdc++-v3/libsupc++/cxxabi.h 134a2a7d6f57e9fed9432b11cf8bee41 libstdc++-v3/libsupc++/cxxabi_forced.h 0969b2aced8d0038ae64557f408773c9 libstdc++-v3/libsupc++/cxxabi_init_exception.h --- 99027,99033 ---- 8aa8dd4846aee0a32c74838ffe1a9b18 libstdc++-v3/libsupc++/bad_cast.cc 61fcac9976ceb3ce4d31eda2e568a7c6 libstdc++-v3/libsupc++/bad_typeid.cc 3192b4cce5548a08f659876a1332baa5 libstdc++-v3/libsupc++/class_type_info.cc ! 14e73bd8bc09c4dc3795d6fc07dbd662 libstdc++-v3/libsupc++/compare 782af6cf5da6b4aed7e6e655947c10c7 libstdc++-v3/libsupc++/cxxabi.h 134a2a7d6f57e9fed9432b11cf8bee41 libstdc++-v3/libsupc++/cxxabi_forced.h 0969b2aced8d0038ae64557f408773c9 libstdc++-v3/libsupc++/cxxabi_init_exception.h *************** eeeaade1c899ee5f8ec1cb80459af466 libstd *** 98547,98556 **** e419810c256cf4e3b9555eda630ea0ba libstdc++-v3/libsupc++/eh_type.cc e5d56ce300f615cb191a91f63d15da7e libstdc++-v3/libsupc++/eh_unex_handler.cc 4f2380b784e1ea9dad3f41d28513a543 libstdc++-v3/libsupc++/enum_type_info.cc ! a4b331e3b64f52c98ce35a98fbcd3a75 libstdc++-v3/libsupc++/exception ! 922b8cf12b911111d666bec90bde61e4 libstdc++-v3/libsupc++/exception.h 4f705d1748ddbd2ef4f9b4b7f7b30501 libstdc++-v3/libsupc++/exception_defines.h ! cb9f7e096e8ea7c4f5d31c641a5113f0 libstdc++-v3/libsupc++/exception_ptr.h 4b2020eec5a9266f030bc8e0a6b4b574 libstdc++-v3/libsupc++/function_type_info.cc f4c887793b010205b07a92b68684bfd8 libstdc++-v3/libsupc++/fundamental_type_info.cc 4eb0c7b938eeb3c75bcd6de3523f9589 libstdc++-v3/libsupc++/guard.cc --- 99062,99071 ---- e419810c256cf4e3b9555eda630ea0ba libstdc++-v3/libsupc++/eh_type.cc e5d56ce300f615cb191a91f63d15da7e libstdc++-v3/libsupc++/eh_unex_handler.cc 4f2380b784e1ea9dad3f41d28513a543 libstdc++-v3/libsupc++/enum_type_info.cc ! 28e35b82a082f9320b2b53f7b14f339d libstdc++-v3/libsupc++/exception ! 7ba24911a71cad798b8001a1fbee63d9 libstdc++-v3/libsupc++/exception.h 4f705d1748ddbd2ef4f9b4b7f7b30501 libstdc++-v3/libsupc++/exception_defines.h ! ed433011c81450fc2dabd9aa8a29a038 libstdc++-v3/libsupc++/exception_ptr.h 4b2020eec5a9266f030bc8e0a6b4b574 libstdc++-v3/libsupc++/function_type_info.cc f4c887793b010205b07a92b68684bfd8 libstdc++-v3/libsupc++/fundamental_type_info.cc 4eb0c7b938eeb3c75bcd6de3523f9589 libstdc++-v3/libsupc++/guard.cc *************** a7f967ba52db1f70e1e6f8f98bb1042a libstd *** 98577,98583 **** 9e204e4c507b9cd4d3350d9cabcdb05d libstdc++-v3/libsupc++/si_class_type_info.cc 49503fb5737ae6037800c7c08bc84912 libstdc++-v3/libsupc++/tinfo.cc b4c5eff9da2552a0441b442f8a56ecbc libstdc++-v3/libsupc++/tinfo.h ! 0a6936e11602332604fe631ae944beb7 libstdc++-v3/libsupc++/tinfo2.cc f97b6e79e4ebb4f5c69e54dbe29a3aed libstdc++-v3/libsupc++/typeinfo 77e0a5871873d95f3233bf411845ce60 libstdc++-v3/libsupc++/unwind-cxx.h 429a9876b1a1a9b8bb8b7c39b269b98d libstdc++-v3/libsupc++/vec.cc --- 99092,99098 ---- 9e204e4c507b9cd4d3350d9cabcdb05d libstdc++-v3/libsupc++/si_class_type_info.cc 49503fb5737ae6037800c7c08bc84912 libstdc++-v3/libsupc++/tinfo.cc b4c5eff9da2552a0441b442f8a56ecbc libstdc++-v3/libsupc++/tinfo.h ! 40f16bf0b3beb5b31ac47a392ea517a6 libstdc++-v3/libsupc++/tinfo2.cc f97b6e79e4ebb4f5c69e54dbe29a3aed libstdc++-v3/libsupc++/typeinfo 77e0a5871873d95f3233bf411845ce60 libstdc++-v3/libsupc++/unwind-cxx.h 429a9876b1a1a9b8bb8b7c39b269b98d libstdc++-v3/libsupc++/vec.cc *************** a8b9b273f76ae07d9b348f0a5d810e19 libstd *** 98592,98604 **** 2863b152e6ea006828d931b909e65f0f libstdc++-v3/po/fr.po 2c7616acffe8edae7935e283e7270ed0 libstdc++-v3/po/libstdc++.pot 4946e4d28c388353dc776bcae8af08f0 libstdc++-v3/po/string_literals.cc ! c623f094eee385c273fcfacdf443a681 libstdc++-v3/python/Makefile.am ! 33b92946f233a01bbdb8b6e383e21ff8 libstdc++-v3/python/Makefile.in ef60735f8655321222e620486f219e8d libstdc++-v3/python/hook.in 68b329da9893e34099c7d8ad5cb9c940 libstdc++-v3/python/libstdcxx/__init__.py 484cb11df73bf42227946114a89d29b5 libstdc++-v3/python/libstdcxx/v6/__init__.py ! 5d1d6eec7823c71c6b443effaf2e59bc libstdc++-v3/python/libstdcxx/v6/printers.py ! 004c942e49fec929e06d6634be72913a libstdc++-v3/python/libstdcxx/v6/xmethods.py cdac7363b91e7d57b85f7b560f62f033 libstdc++-v3/scripts/check_compile a4c1d51bba293cee2307fc7f9dd090f7 libstdc++-v3/scripts/check_performance 128d0fbc24e1d43d9ff93d14bd521aa6 libstdc++-v3/scripts/check_simd --- 99107,99119 ---- 2863b152e6ea006828d931b909e65f0f libstdc++-v3/po/fr.po 2c7616acffe8edae7935e283e7270ed0 libstdc++-v3/po/libstdc++.pot 4946e4d28c388353dc776bcae8af08f0 libstdc++-v3/po/string_literals.cc ! b21af20d19c1de40ba9cd41e413f6562 libstdc++-v3/python/Makefile.am ! 195cb449d45c19cb2ae56843d1bb8002 libstdc++-v3/python/Makefile.in ef60735f8655321222e620486f219e8d libstdc++-v3/python/hook.in 68b329da9893e34099c7d8ad5cb9c940 libstdc++-v3/python/libstdcxx/__init__.py 484cb11df73bf42227946114a89d29b5 libstdc++-v3/python/libstdcxx/v6/__init__.py ! 5c88121f75cb36f7f97e43dcedeace5c libstdc++-v3/python/libstdcxx/v6/printers.py ! 9e215f5fde222b3fe8e836e3183e4404 libstdc++-v3/python/libstdcxx/v6/xmethods.py cdac7363b91e7d57b85f7b560f62f033 libstdc++-v3/scripts/check_compile a4c1d51bba293cee2307fc7f9dd090f7 libstdc++-v3/scripts/check_performance 128d0fbc24e1d43d9ff93d14bd521aa6 libstdc++-v3/scripts/check_simd *************** cb00fad72fef0f33c2f74614710e6329 libstd *** 98610,98616 **** f1a84a17158780aaa37927191db4463a libstdc++-v3/scripts/gen_includers2.pl e8e7773bc629a008b2813ee507a0dab6 libstdc++-v3/scripts/make_exports.pl 80b6ff44b325c6b6d113435d8eea4b76 libstdc++-v3/scripts/make_graph.py ! a839992684f910ce17e6ad41077121f6 libstdc++-v3/scripts/run_doxygen 7579350b0ac0412cb42e9c354485ebd9 libstdc++-v3/scripts/testsuite_flags.in 90d9f3e1d4379ef148eff766138db885 libstdc++-v3/src/Makefile.am 3d242c79bb2931ab9442d67f04ec5292 libstdc++-v3/src/Makefile.in --- 99125,99131 ---- f1a84a17158780aaa37927191db4463a libstdc++-v3/scripts/gen_includers2.pl e8e7773bc629a008b2813ee507a0dab6 libstdc++-v3/scripts/make_exports.pl 80b6ff44b325c6b6d113435d8eea4b76 libstdc++-v3/scripts/make_graph.py ! f614496940b16d8f5c8685d91a47903e libstdc++-v3/scripts/run_doxygen 7579350b0ac0412cb42e9c354485ebd9 libstdc++-v3/scripts/testsuite_flags.in 90d9f3e1d4379ef148eff766138db885 libstdc++-v3/src/Makefile.am 3d242c79bb2931ab9442d67f04ec5292 libstdc++-v3/src/Makefile.in *************** a058c0b6cc7d0111a3e534392191bf7d libstd *** 98673,98694 **** f719f4c27c082199cb4cc7bd224b1235 libstdc++-v3/src/c++11/streambuf-inst.cc 1956880dcf7cf135e21c20c27366d969 libstdc++-v3/src/c++11/string-inst.cc 918dca1dc0f88fdd6ea72120d506122a libstdc++-v3/src/c++11/string-io-inst.cc ! 0cdd0749aadaee1d349646bf77f9ac99 libstdc++-v3/src/c++11/system_error.cc 9381c68fea89c0b9811704782c8014d3 libstdc++-v3/src/c++11/thread.cc d0b105c1c7ce2890dc9ff2748affabbf libstdc++-v3/src/c++11/wlocale-inst.cc dcfd2322c93dd48b11088455fc3beba2 libstdc++-v3/src/c++11/wstring-inst.cc 91c011938cc99078b2f3730c38065003 libstdc++-v3/src/c++11/wstring-io-inst.cc ! 5130b25166674acc8b78c398389d7c1c libstdc++-v3/src/c++17/Makefile.am ! f8a85e35ee28a1af625c11bfb454e0de libstdc++-v3/src/c++17/Makefile.in 58788f91c44721baed47f7b56e0b9025 libstdc++-v3/src/c++17/cow-fs_dir.cc 52c93781a1a27322c5ccdf462d3b199d libstdc++-v3/src/c++17/cow-fs_ops.cc 0732bbfdd57bfb7a0d6e33b50a9d479d libstdc++-v3/src/c++17/cow-fs_path.cc fe48c009c5684613dd310097f544a115 libstdc++-v3/src/c++17/cow-string-inst.cc 21e22ff1ddec6a91c7b379d6f6398649 libstdc++-v3/src/c++17/default_resource.h 242d9497f8938d611ecbc446bc541a5c libstdc++-v3/src/c++17/floating_from_chars.cc ! c4082d10ecbea9ea787182d02e68bada libstdc++-v3/src/c++17/floating_to_chars.cc ! fa649062d7f81d76e699298c19815c77 libstdc++-v3/src/c++17/fs_dir.cc ! 21d21080857f704ed108edd7fa6e09c0 libstdc++-v3/src/c++17/fs_ops.cc 8e13c63ce5c5f6b76072b2c38173c975 libstdc++-v3/src/c++17/fs_path.cc 875017e6a7576d4589b31911090cd940 libstdc++-v3/src/c++17/memory_resource.cc 6d9c0bef465f18c79af1f9a7af80b525 libstdc++-v3/src/c++17/ostream-inst.cc --- 99188,99209 ---- f719f4c27c082199cb4cc7bd224b1235 libstdc++-v3/src/c++11/streambuf-inst.cc 1956880dcf7cf135e21c20c27366d969 libstdc++-v3/src/c++11/string-inst.cc 918dca1dc0f88fdd6ea72120d506122a libstdc++-v3/src/c++11/string-io-inst.cc ! 76ebfb5cb77b5f40609034aa4e6346f4 libstdc++-v3/src/c++11/system_error.cc 9381c68fea89c0b9811704782c8014d3 libstdc++-v3/src/c++11/thread.cc d0b105c1c7ce2890dc9ff2748affabbf libstdc++-v3/src/c++11/wlocale-inst.cc dcfd2322c93dd48b11088455fc3beba2 libstdc++-v3/src/c++11/wstring-inst.cc 91c011938cc99078b2f3730c38065003 libstdc++-v3/src/c++11/wstring-io-inst.cc ! 5d7c052999afe69c983b4cae77355088 libstdc++-v3/src/c++17/Makefile.am ! 3f8a9f90ccd00d82f0c79c21d512281c libstdc++-v3/src/c++17/Makefile.in 58788f91c44721baed47f7b56e0b9025 libstdc++-v3/src/c++17/cow-fs_dir.cc 52c93781a1a27322c5ccdf462d3b199d libstdc++-v3/src/c++17/cow-fs_ops.cc 0732bbfdd57bfb7a0d6e33b50a9d479d libstdc++-v3/src/c++17/cow-fs_path.cc fe48c009c5684613dd310097f544a115 libstdc++-v3/src/c++17/cow-string-inst.cc 21e22ff1ddec6a91c7b379d6f6398649 libstdc++-v3/src/c++17/default_resource.h 242d9497f8938d611ecbc446bc541a5c libstdc++-v3/src/c++17/floating_from_chars.cc ! 6c16689b0ed0520761730e22e879f4d8 libstdc++-v3/src/c++17/floating_to_chars.cc ! 85f8c336c16b7a6c978470d355cf20f1 libstdc++-v3/src/c++17/fs_dir.cc ! 7381544274fe7860efd69083895166df libstdc++-v3/src/c++17/fs_ops.cc 8e13c63ce5c5f6b76072b2c38173c975 libstdc++-v3/src/c++17/fs_path.cc 875017e6a7576d4589b31911090cd940 libstdc++-v3/src/c++17/memory_resource.cc 6d9c0bef465f18c79af1f9a7af80b525 libstdc++-v3/src/c++17/ostream-inst.cc *************** b673220babee424d2b70a4dbda885118 libstd *** 98759,98772 **** d61e45b9d5e6a114646872dd2109583e libstdc++-v3/src/filesystem/cow-ops.cc 1cec190567d6217eca7c91ba30fcac96 libstdc++-v3/src/filesystem/cow-path.cc c775a951bdee850a043193645b4b64bf libstdc++-v3/src/filesystem/dir-common.h ! 591ff90c0e0f9d9d9e959614832848fc libstdc++-v3/src/filesystem/dir.cc f8ea984a816f949e86f29a00746cfeaf libstdc++-v3/src/filesystem/ops-common.h ! ae999d2ba9caf1531899176aacbb2ed0 libstdc++-v3/src/filesystem/ops.cc 35978d397a37f9c8652bddaca54e8f22 libstdc++-v3/src/filesystem/path.cc 4d050a72fe3bf6800e6b61c3d97b09ca libstdc++-v3/src/shared/hashtable-aux.cc 269e3bac13e39e68daa7adab30401447 libstdc++-v3/testsuite/17_intro/badnames.cc 664bdcdc68f1dc65bafa053d9a6ac9f2 libstdc++-v3/testsuite/17_intro/freestanding.cc ! 74caf8a601513ff0499f38e7af54918f libstdc++-v3/testsuite/17_intro/headers/c++1998/49745.cc 01bb8f5cdc1f9caf4e7e44d58deb9297 libstdc++-v3/testsuite/17_intro/headers/c++1998/all.cc c6a7466079eb3c793145a13d89cb816c libstdc++-v3/testsuite/17_intro/headers/c++1998/all_attributes.cc bd4a18481bfc51dffb0332a3b3f92585 libstdc++-v3/testsuite/17_intro/headers/c++1998/all_c++200x_compatibility.cc --- 99274,99288 ---- d61e45b9d5e6a114646872dd2109583e libstdc++-v3/src/filesystem/cow-ops.cc 1cec190567d6217eca7c91ba30fcac96 libstdc++-v3/src/filesystem/cow-path.cc c775a951bdee850a043193645b4b64bf libstdc++-v3/src/filesystem/dir-common.h ! 637a51cfa86d128b5039c1da9a512c59 libstdc++-v3/src/filesystem/dir.cc f8ea984a816f949e86f29a00746cfeaf libstdc++-v3/src/filesystem/ops-common.h ! 05f797c1c2984089a988357d16a253e9 libstdc++-v3/src/filesystem/ops.cc 35978d397a37f9c8652bddaca54e8f22 libstdc++-v3/src/filesystem/path.cc 4d050a72fe3bf6800e6b61c3d97b09ca libstdc++-v3/src/shared/hashtable-aux.cc 269e3bac13e39e68daa7adab30401447 libstdc++-v3/testsuite/17_intro/badnames.cc 664bdcdc68f1dc65bafa053d9a6ac9f2 libstdc++-v3/testsuite/17_intro/freestanding.cc ! d5df5ddc3b7c5dba2e687798eaa28551 libstdc++-v3/testsuite/17_intro/headers/c++1998/103650.cc ! 92e341852c5d5b464d8c9ad3640dd9c7 libstdc++-v3/testsuite/17_intro/headers/c++1998/49745.cc 01bb8f5cdc1f9caf4e7e44d58deb9297 libstdc++-v3/testsuite/17_intro/headers/c++1998/all.cc c6a7466079eb3c793145a13d89cb816c libstdc++-v3/testsuite/17_intro/headers/c++1998/all_attributes.cc bd4a18481bfc51dffb0332a3b3f92585 libstdc++-v3/testsuite/17_intro/headers/c++1998/all_c++200x_compatibility.cc *************** b8a53b2b8da32d102d69cbedea3d2216 libstd *** 98819,98825 **** 8c11d848a50b34cc41e4f38457340ab0 libstdc++-v3/testsuite/17_intro/headers/c++2020/operator_names.cc 00f02d1595a0b4d76fa4c334f1d290c3 libstdc++-v3/testsuite/17_intro/headers/c++2020/stdc++.cc 9a503e9f7a4962b02dcf7af55a6ec225 libstdc++-v3/testsuite/17_intro/headers/c++2020/stdc++_multiple_inclusion.cc ! b31dcf1e139f12a63179fc86981b452f libstdc++-v3/testsuite/17_intro/names.cc c8b92b0456cec060527cba3fcf483eb7 libstdc++-v3/testsuite/17_intro/shared_with_static_deps.cc 31f0502096c772d1e15fff55afb87ea4 libstdc++-v3/testsuite/17_intro/static.cc fb6074535e87c7e3a68810fb1d497360 libstdc++-v3/testsuite/17_intro/tag_type_explicit_ctor.cc --- 99335,99341 ---- 8c11d848a50b34cc41e4f38457340ab0 libstdc++-v3/testsuite/17_intro/headers/c++2020/operator_names.cc 00f02d1595a0b4d76fa4c334f1d290c3 libstdc++-v3/testsuite/17_intro/headers/c++2020/stdc++.cc 9a503e9f7a4962b02dcf7af55a6ec225 libstdc++-v3/testsuite/17_intro/headers/c++2020/stdc++_multiple_inclusion.cc ! b69b7124207f01e2002aa803e816c2a7 libstdc++-v3/testsuite/17_intro/names.cc c8b92b0456cec060527cba3fcf483eb7 libstdc++-v3/testsuite/17_intro/shared_with_static_deps.cc 31f0502096c772d1e15fff55afb87ea4 libstdc++-v3/testsuite/17_intro/static.cc fb6074535e87c7e3a68810fb1d497360 libstdc++-v3/testsuite/17_intro/tag_type_explicit_ctor.cc *************** dacbebb5ee24817d79eefa606630804e libstd *** 98844,98849 **** --- 99360,99366 ---- fef9dedbce0e628d1aeacb8768868504 libstdc++-v3/testsuite/18_support/byte/global_neg.cc 968d3c962a489bd0562ad25b6d71f49a libstdc++-v3/testsuite/18_support/byte/ops.cc f514bfb5aa693323afcddc4f4ebd52a9 libstdc++-v3/testsuite/18_support/byte/requirements.cc + b4c65970a3b96295ca66e5a7376e3d19 libstdc++-v3/testsuite/18_support/comparisons/algorithms/fallback.cc e13d96a11fabb13790e44c211cd92f3c libstdc++-v3/testsuite/18_support/comparisons/algorithms/partial_order.cc 844ff72611c0d4c210c7cf7f79bf568e libstdc++-v3/testsuite/18_support/comparisons/algorithms/strong_order.cc 2d8f835ce49787e2c60c236273484d23 libstdc++-v3/testsuite/18_support/comparisons/algorithms/weak_order.cc *************** a79b1eca93cc35bcb8a1e55ef37b209d libstd *** 98861,98866 **** --- 99378,99384 ---- c2cfb457c65bc6c55bc3c0b2c638ce4b libstdc++-v3/testsuite/18_support/destroying_delete.cc ce22e4735ecd95159c340e5186ba8266 libstdc++-v3/testsuite/18_support/exception/38732.cc cbbe9b0ecfe25e4d73c964b8e3aaba27 libstdc++-v3/testsuite/18_support/exception/what.cc + 8a3e4fc86620d59634749ffecd317237 libstdc++-v3/testsuite/18_support/exception_ptr/103630.cc a3a6b6c53e7f7962d0edf9b334e4f65b libstdc++-v3/testsuite/18_support/exception_ptr/40296.cc 21198d97496aa2ba0cf3e0f58eefcaec libstdc++-v3/testsuite/18_support/exception_ptr/60612-terminate.cc f53e2f19afb2fbaa0e374c404e2bf377 libstdc++-v3/testsuite/18_support/exception_ptr/60612-unexpected.cc *************** b5c539c068b125034b423979f4678642 libstd *** 98946,98952 **** 09c32239e0ca321deb212076fe9e14c9 libstdc++-v3/testsuite/18_support/numeric_limits/infinity.cc f6b17cd6fa2d9704c1e4aa248b95e249 libstdc++-v3/testsuite/18_support/numeric_limits/is_iec559.cc 1b4007b2c7c9e6232cb3ee410f7cafcd libstdc++-v3/testsuite/18_support/numeric_limits/is_signed.cc ! 5bc37ad5513503be681375eb6f7064d9 libstdc++-v3/testsuite/18_support/numeric_limits/lowest.cc 8e3bd94db6ae3062f227f2df86161662 libstdc++-v3/testsuite/18_support/numeric_limits/max_digits10.cc e18bde0e66a2de5fd922f092e2312d4e libstdc++-v3/testsuite/18_support/numeric_limits/min_max.cc 251c62443a88aca1cbf05c383cbe471c libstdc++-v3/testsuite/18_support/numeric_limits/primary.cc --- 99464,99470 ---- 09c32239e0ca321deb212076fe9e14c9 libstdc++-v3/testsuite/18_support/numeric_limits/infinity.cc f6b17cd6fa2d9704c1e4aa248b95e249 libstdc++-v3/testsuite/18_support/numeric_limits/is_iec559.cc 1b4007b2c7c9e6232cb3ee410f7cafcd libstdc++-v3/testsuite/18_support/numeric_limits/is_signed.cc ! ee1f1ce10fa3597cda3fa109fa7ddf6b libstdc++-v3/testsuite/18_support/numeric_limits/lowest.cc 8e3bd94db6ae3062f227f2df86161662 libstdc++-v3/testsuite/18_support/numeric_limits/max_digits10.cc e18bde0e66a2de5fd922f092e2312d4e libstdc++-v3/testsuite/18_support/numeric_limits/min_max.cc 251c62443a88aca1cbf05c383cbe471c libstdc++-v3/testsuite/18_support/numeric_limits/primary.cc *************** af0a12d99e817d1d4d9f01c347019b72 libstd *** 98965,98976 **** --- 99483,99496 ---- d67d60cc69f922051b18b859d97b5983 libstdc++-v3/testsuite/18_support/source_location/srcloc.h a6b04424812557329cb78c9219a4f510 libstdc++-v3/testsuite/18_support/source_location/version.cc bd50cbf3b881fb7d4e8204d5ccbfe40e libstdc++-v3/testsuite/18_support/terminate_handler.cc + a4ea00becc0e698345c65728494c0afe libstdc++-v3/testsuite/18_support/type_info/103240.cc 6ab8978b367ecd9639e833d4ea186069 libstdc++-v3/testsuite/18_support/type_info/52562.cc 29b689b2adaa6a8f785a22e7d7154e35 libstdc++-v3/testsuite/18_support/type_info/fundamental.cc 67985f91552cc45f084511dfeb5beb13 libstdc++-v3/testsuite/18_support/type_info/hash_code.cc d49ac9d58977743ccf78dc349ea9f902 libstdc++-v3/testsuite/18_support/uncaught_exception/14026.cc 2251b76ca9d1bf77641aff54abc2e69b libstdc++-v3/testsuite/18_support/uncaught_exceptions/uncaught_exceptions.cc 8f403d1d96a3895da01fee88b5652481 libstdc++-v3/testsuite/18_support/unexpected_handler.cc + e76078fa52225514dc89f9b1116c07ff libstdc++-v3/testsuite/19_diagnostics/error_category/102425.cc c95c327e4680e772d0de1de3bad0ffb2 libstdc++-v3/testsuite/19_diagnostics/error_category/cons/copy_neg.cc 42d2c521cb78289c413f2d728a19e243 libstdc++-v3/testsuite/19_diagnostics/error_category/cons/default.cc 84e4ea0170f5d3de2b3338868d078a7b libstdc++-v3/testsuite/19_diagnostics/error_category/generic_category.cc *************** b00f036debbe09aaba5288e14cb68a7d libstd *** 99071,99077 **** 58b5b645c8c7c7fdb40d0b8f10add64c libstdc++-v3/testsuite/20_util/allocator/rebind_c++20.cc 93e69ac1bff3a29d98e0a18dbb736a35 libstdc++-v3/testsuite/20_util/allocator/requirements/constexpr.cc f00a16c69147887fb51ac87e69df3e28 libstdc++-v3/testsuite/20_util/allocator/requirements/explicit_instantiation/1.cc ! 6d2828fbec00985d3ef41c99add8e143 libstdc++-v3/testsuite/20_util/allocator/requirements/typedefs.cc e12608d86c78ef09146d4d23502dbcd1 libstdc++-v3/testsuite/20_util/allocator/requirements/typedefs_c++20.cc d2847864a51ba5ee6af63d8680746e17 libstdc++-v3/testsuite/20_util/allocator/void.cc d8d2792700c4256d6bafe5f823baa7e4 libstdc++-v3/testsuite/20_util/allocator_traits/header-2.cc --- 99591,99597 ---- 58b5b645c8c7c7fdb40d0b8f10add64c libstdc++-v3/testsuite/20_util/allocator/rebind_c++20.cc 93e69ac1bff3a29d98e0a18dbb736a35 libstdc++-v3/testsuite/20_util/allocator/requirements/constexpr.cc f00a16c69147887fb51ac87e69df3e28 libstdc++-v3/testsuite/20_util/allocator/requirements/explicit_instantiation/1.cc ! e2240bdcf9676c72c7c0c106e3126049 libstdc++-v3/testsuite/20_util/allocator/requirements/typedefs.cc e12608d86c78ef09146d4d23502dbcd1 libstdc++-v3/testsuite/20_util/allocator/requirements/typedefs_c++20.cc d2847864a51ba5ee6af63d8680746e17 libstdc++-v3/testsuite/20_util/allocator/void.cc d8d2792700c4256d6bafe5f823baa7e4 libstdc++-v3/testsuite/20_util/allocator_traits/header-2.cc *************** bc3e5d18e81309aaa3663842c25793b1 libstd *** 99089,99094 **** --- 99609,99615 ---- 9d0e77a130dabdb51cd3088966c097d3 libstdc++-v3/testsuite/20_util/allocator_traits/requirements/explicit_instantiation.cc 9a457d65594fa59471232b6fa4e55a96 libstdc++-v3/testsuite/20_util/allocator_traits/requirements/typedefs.cc 46f9d3e426c143207b8a20997f48fa46 libstdc++-v3/testsuite/20_util/allocator_traits/requirements/typedefs2.cc + 53d95c7e7934ce41b96d0a86033b6a99 libstdc++-v3/testsuite/20_util/any/102894.cc 087e793d39a431ce06e74ac37a277ddc libstdc++-v3/testsuite/20_util/any/assign/1.cc e91f21b8c3cf4030795540a4c1fe12ca libstdc++-v3/testsuite/20_util/any/assign/2.cc b23d8220c3c4e6866e0b70777d2b719f libstdc++-v3/testsuite/20_util/any/assign/92878_92947.cc *************** daa117a2da905ad06c1deee104cacd3d libstd *** 99246,99255 **** b9ebb4b63e2d315728ec842428c698c7 libstdc++-v3/testsuite/20_util/forward/1_neg.cc 2d64e847c77b2d588a0ccd9bb45ce6dd libstdc++-v3/testsuite/20_util/forward/a.cc d25215613f40955f5a7fd442fb131458 libstdc++-v3/testsuite/20_util/forward/b.cc ! 7d34b07a296e7488384e9c7466f6545e libstdc++-v3/testsuite/20_util/forward/c_neg.cc 51e689c4fa06db0a2cae228687363af2 libstdc++-v3/testsuite/20_util/forward/d.cc e3ad3ddb332d6e3943018f602b2bb29e libstdc++-v3/testsuite/20_util/forward/e.cc ! cf98a05d7dc8c0c9f43d5589eb6fb0ff libstdc++-v3/testsuite/20_util/forward/f_neg.cc 6305321239f725beb7a0f5d4c13e2677 libstdc++-v3/testsuite/20_util/forward/requirements/explicit_instantiation.cc 119831d0cdee2eea498cb43e73c03fe9 libstdc++-v3/testsuite/20_util/from_chars/1.cc 89452d2c4edd9cf5ebef1e7b76e6cae9 libstdc++-v3/testsuite/20_util/from_chars/1_c++20_neg.cc --- 99767,99776 ---- b9ebb4b63e2d315728ec842428c698c7 libstdc++-v3/testsuite/20_util/forward/1_neg.cc 2d64e847c77b2d588a0ccd9bb45ce6dd libstdc++-v3/testsuite/20_util/forward/a.cc d25215613f40955f5a7fd442fb131458 libstdc++-v3/testsuite/20_util/forward/b.cc ! 690dc828b482a82a00151560bc0f77b7 libstdc++-v3/testsuite/20_util/forward/c_neg.cc 51e689c4fa06db0a2cae228687363af2 libstdc++-v3/testsuite/20_util/forward/d.cc e3ad3ddb332d6e3943018f602b2bb29e libstdc++-v3/testsuite/20_util/forward/e.cc ! 471d21c1cda8ebf7e5d14446f70300da libstdc++-v3/testsuite/20_util/forward/f_neg.cc 6305321239f725beb7a0f5d4c13e2677 libstdc++-v3/testsuite/20_util/forward/requirements/explicit_instantiation.cc 119831d0cdee2eea498cb43e73c03fe9 libstdc++-v3/testsuite/20_util/from_chars/1.cc 89452d2c4edd9cf5ebef1e7b76e6cae9 libstdc++-v3/testsuite/20_util/from_chars/1_c++20_neg.cc *************** eaa6839a699600b5a99bbaaa55f47556 libstd *** 99290,99297 **** --- 99811,99820 ---- 7c2add666c179c76abbcb6adde058817 libstdc++-v3/testsuite/20_util/function/cons/addressof.cc 5eb2163115862edede72379dd2ba154f libstdc++-v3/testsuite/20_util/function/cons/callable.cc bc73f923afef33941b5cb37a6433d09a libstdc++-v3/testsuite/20_util/function/cons/deduction.cc + 7e9deedb255c7113221019d32e10c6ab libstdc++-v3/testsuite/20_util/function/cons/lwg2774.cc 664a5449951c8654f642774e8182b3a6 libstdc++-v3/testsuite/20_util/function/cons/move.cc 10dcfb92be128afd10ad0ceeb7b73968 libstdc++-v3/testsuite/20_util/function/cons/move_target.cc + cc7847b76d24c16f35c869b3bb80868e libstdc++-v3/testsuite/20_util/function/cons/noexcept.cc e59f93cab5834149979fdde2d9c80143 libstdc++-v3/testsuite/20_util/function/cons/non_copyconstructible.cc efa81f1461b098de8b83762b823f381f libstdc++-v3/testsuite/20_util/function/cons/refqual.cc e0f31486735849e79af822e97c40f893 libstdc++-v3/testsuite/20_util/function/invoke/forwarding.cc *************** d3cc1c441c25efc27fd036b387be9318 libstd *** 99381,99386 **** --- 99904,99910 ---- 42deea84c1e5f4bcb12dc3be5f94e559 libstdc++-v3/testsuite/20_util/integer_comparisons/2.cc d0d1654776dfccff0809ac830a8ed639 libstdc++-v3/testsuite/20_util/integer_comparisons/equal.cc 677741b8ec87de8ab0d685b43bb7ed8c libstdc++-v3/testsuite/20_util/integer_comparisons/equal_neg.cc + c6250601e3e7183f7bd3726fdd8c1203 libstdc++-v3/testsuite/20_util/integer_comparisons/greater.cc 5fd145478b104e494f38be141565346c libstdc++-v3/testsuite/20_util/integer_comparisons/greater_equal.cc cc2c834d24fde49e9b39d5fdc21a1036 libstdc++-v3/testsuite/20_util/integer_comparisons/greater_equal_neg.cc 73941640eda6ad80833bff73ab600f99 libstdc++-v3/testsuite/20_util/integer_comparisons/greater_neg.cc *************** a47d4818bba6741bb8841463cca0a94b libstd *** 99638,99644 **** 46431da89b0557131f1cdb42716df6cb libstdc++-v3/testsuite/20_util/is_trivially_assignable/value.cc 8515a8322564ccb8c3849e7c6cf68956 libstdc++-v3/testsuite/20_util/is_trivially_constructible/requirements/explicit_instantiation.cc fd12b2af8b92737fee2e0da405cc6a1e libstdc++-v3/testsuite/20_util/is_trivially_constructible/requirements/typedefs.cc ! 86804fc6a1385d11a49aedc27162dba9 libstdc++-v3/testsuite/20_util/is_trivially_constructible/value.cc 592664af2b923c73700a04fe92d504c3 libstdc++-v3/testsuite/20_util/is_trivially_copy_assignable/requirements/explicit_instantiation.cc a96bc80d18ee3947b79797d30b2c70b2 libstdc++-v3/testsuite/20_util/is_trivially_copy_assignable/requirements/typedefs.cc 2640d1af158cddc4cff25aec40eabc8d libstdc++-v3/testsuite/20_util/is_trivially_copy_assignable/value.cc --- 100162,100168 ---- 46431da89b0557131f1cdb42716df6cb libstdc++-v3/testsuite/20_util/is_trivially_assignable/value.cc 8515a8322564ccb8c3849e7c6cf68956 libstdc++-v3/testsuite/20_util/is_trivially_constructible/requirements/explicit_instantiation.cc fd12b2af8b92737fee2e0da405cc6a1e libstdc++-v3/testsuite/20_util/is_trivially_constructible/requirements/typedefs.cc ! e622f14bc7ba840ea37bb9df1412e2c2 libstdc++-v3/testsuite/20_util/is_trivially_constructible/value.cc 592664af2b923c73700a04fe92d504c3 libstdc++-v3/testsuite/20_util/is_trivially_copy_assignable/requirements/explicit_instantiation.cc a96bc80d18ee3947b79797d30b2c70b2 libstdc++-v3/testsuite/20_util/is_trivially_copy_assignable/requirements/typedefs.cc 2640d1af158cddc4cff25aec40eabc8d libstdc++-v3/testsuite/20_util/is_trivially_copy_assignable/value.cc *************** c767e57e849945b63d1a7ce99287d636 libstd *** 99732,99741 **** --- 100256,100268 ---- f1c7170ba04b4f18f13285f1492bc3e2 libstdc++-v3/testsuite/20_util/optional/cons/trivial.cc 06a73fda8343254c86b50406c1440762 libstdc++-v3/testsuite/20_util/optional/cons/value.cc ea143951c1719bddbfc7654ddff5ce79 libstdc++-v3/testsuite/20_util/optional/cons/value_neg.cc + 205153857e4103d66c67fae379d14a86 libstdc++-v3/testsuite/20_util/optional/constexpr/assign.cc + 52debc915496e85a8c7135a5baffe7b1 libstdc++-v3/testsuite/20_util/optional/constexpr/cons/conv.cc 9bb48e229f52923c5c682df0735acb5d libstdc++-v3/testsuite/20_util/optional/constexpr/cons/default.cc e5084923798d0f9a33be7d299eddbe61 libstdc++-v3/testsuite/20_util/optional/constexpr/cons/value.cc 69434ce9e458090e1cc133f8b0398015 libstdc++-v3/testsuite/20_util/optional/constexpr/in_place.cc e8660831291ab0086c1566763d33d290 libstdc++-v3/testsuite/20_util/optional/constexpr/make_optional.cc + 1bd13d53c43f256f47a5c535cc903df1 libstdc++-v3/testsuite/20_util/optional/constexpr/modifiers.cc 8a0920facf000ada4d709bd0e9559a72 libstdc++-v3/testsuite/20_util/optional/constexpr/nullopt.cc 835ce903a15810ada0b0399d40ae44fc libstdc++-v3/testsuite/20_util/optional/constexpr/observers/1.cc ab2228a2d39b2b2839d0578a58744b0a libstdc++-v3/testsuite/20_util/optional/constexpr/observers/2.cc *************** d5f58e9a4711928fb7997d6d47c3e0fa libstd *** 99748,99753 **** --- 100275,100281 ---- 3f4d303b4c150439f37937f9f2809a4c libstdc++-v3/testsuite/20_util/optional/constexpr/relops/4.cc 93e7e136dd52029704dfb114ffc7c4bc libstdc++-v3/testsuite/20_util/optional/constexpr/relops/5.cc 95e3cd01c66db0f704ef8e93052568ed libstdc++-v3/testsuite/20_util/optional/constexpr/relops/6.cc + 1a6e6bdd2186983f8eb3e55976f3af73 libstdc++-v3/testsuite/20_util/optional/constexpr/swap.cc 1a95e4890891a6a7c6e308048bfc4085 libstdc++-v3/testsuite/20_util/optional/hash.cc 87b73565c4a73ff260ba1dea7584689e libstdc++-v3/testsuite/20_util/optional/in_place.cc 91761354dfa32f98a1a8b7366b39f399 libstdc++-v3/testsuite/20_util/optional/make_optional-2.cc *************** bc6d2bbf0bcd31318330e91b1b056ee0 libstd *** 99768,99777 **** d6bf2a8d8327935011e701ef3797832a libstdc++-v3/testsuite/20_util/optional/relops/7.cc b2c51e8c1d1f364214d8251552a757bf libstdc++-v3/testsuite/20_util/optional/relops/96269.cc 48ab99e2b012972fd69983b89e1bfa44 libstdc++-v3/testsuite/20_util/optional/relops/three_way.cc ! 5de6c31dac0697fac0dc1f6c769f6d36 libstdc++-v3/testsuite/20_util/optional/requirements.cc 8cd3d6905fd3038cadc63ee9422e033e libstdc++-v3/testsuite/20_util/optional/swap/1.cc 31306121a40a0fdae6272167aa0d912d libstdc++-v3/testsuite/20_util/optional/swap/2.cc 761eaf8dc7fdf5e7df98d4713fa6b143 libstdc++-v3/testsuite/20_util/optional/typedefs.cc 0fd38f3f18cd193ab7d405b047fb100c libstdc++-v3/testsuite/20_util/owner_less/cmp.cc cc042037588e24cb2ab9dcbf9e2e44f5 libstdc++-v3/testsuite/20_util/owner_less/noexcept.cc c509455451f4af770bde8922ac97fc5c libstdc++-v3/testsuite/20_util/owner_less/void.cc --- 100296,100306 ---- d6bf2a8d8327935011e701ef3797832a libstdc++-v3/testsuite/20_util/optional/relops/7.cc b2c51e8c1d1f364214d8251552a757bf libstdc++-v3/testsuite/20_util/optional/relops/96269.cc 48ab99e2b012972fd69983b89e1bfa44 libstdc++-v3/testsuite/20_util/optional/relops/three_way.cc ! 30b7a9446f97392a62e38017c5ab2fb3 libstdc++-v3/testsuite/20_util/optional/requirements.cc 8cd3d6905fd3038cadc63ee9422e033e libstdc++-v3/testsuite/20_util/optional/swap/1.cc 31306121a40a0fdae6272167aa0d912d libstdc++-v3/testsuite/20_util/optional/swap/2.cc 761eaf8dc7fdf5e7df98d4713fa6b143 libstdc++-v3/testsuite/20_util/optional/typedefs.cc + 500c0b8083832304133ed53a65237837 libstdc++-v3/testsuite/20_util/optional/version.cc 0fd38f3f18cd193ab7d405b047fb100c libstdc++-v3/testsuite/20_util/owner_less/cmp.cc cc042037588e24cb2ab9dcbf9e2e44f5 libstdc++-v3/testsuite/20_util/owner_less/noexcept.cc c509455451f4af770bde8922ac97fc5c libstdc++-v3/testsuite/20_util/owner_less/void.cc *************** e076b1ed48773b172c90e913d19df0fb libstd *** 99818,99823 **** --- 100347,100353 ---- 3ffccf4293c2b6a5791b7e6c12d160b7 libstdc++-v3/testsuite/20_util/pair/swap_cxx17.cc fa1f4f902855db5777aa5754d89f16c0 libstdc++-v3/testsuite/20_util/pair/traits.cc 911314550ac1f2c8af9f32e810e4648c libstdc++-v3/testsuite/20_util/pointer_safety/1.cc + 8df203c1b76555b343a701c1dd622f7f libstdc++-v3/testsuite/20_util/pointer_traits/lwg3545.cc 36ea3aa5eb2c0131e9f450515225f135 libstdc++-v3/testsuite/20_util/pointer_traits/pointer_to.cc 45fa8f660a3f66eb552f4c83ae08cfc8 libstdc++-v3/testsuite/20_util/pointer_traits/pointer_to_constexpr.cc cd28225270cad35df044d6daf22a90b9 libstdc++-v3/testsuite/20_util/pointer_traits/rebind.cc *************** e7e959199b5fd7f436d7e56d3d746f47 libstd *** 100019,100027 **** 9db249b48dcdbd4713caafdd0302c240 libstdc++-v3/testsuite/20_util/specialized_algorithms/destroy/constrained.cc c5208b7d2e174823e89b053d932a8c0c libstdc++-v3/testsuite/20_util/specialized_algorithms/memory_management_tools/1.cc 35adba1e3ca921dffc983766259cc1f3 libstdc++-v3/testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc ! 36ae3c120b4ad6ab6aba26952b408709 libstdc++-v3/testsuite/20_util/specialized_algorithms/pstl/uninitialized_construct.cc ! c72d4eff866f43e7e9e46bf0d266c62a libstdc++-v3/testsuite/20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc ! 91c66e93ccc64152f015a351ab51fafa libstdc++-v3/testsuite/20_util/specialized_algorithms/pstl/uninitialized_fill_destroy.cc b52c8e7d9de32fdd0beff24aebe33b14 libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy/1.cc b415cb4f0a007ddf44206e69d5b79dee libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy/58982.cc 24accae72f91389d5232078d3d931bc1 libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy/64476.cc --- 100549,100557 ---- 9db249b48dcdbd4713caafdd0302c240 libstdc++-v3/testsuite/20_util/specialized_algorithms/destroy/constrained.cc c5208b7d2e174823e89b053d932a8c0c libstdc++-v3/testsuite/20_util/specialized_algorithms/memory_management_tools/1.cc 35adba1e3ca921dffc983766259cc1f3 libstdc++-v3/testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc ! 7e2d819342973c849d87437556e29d5c libstdc++-v3/testsuite/20_util/specialized_algorithms/pstl/uninitialized_construct.cc ! 681f3ec9c3b800b4e5258afc87a95231 libstdc++-v3/testsuite/20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc ! 7377989805a8e1aa7f8896037d2eefae libstdc++-v3/testsuite/20_util/specialized_algorithms/pstl/uninitialized_fill_destroy.cc b52c8e7d9de32fdd0beff24aebe33b14 libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy/1.cc b415cb4f0a007ddf44206e69d5b79dee libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy/58982.cc 24accae72f91389d5232078d3d931bc1 libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy/64476.cc *************** c355bfffa6d2ecab99f322b01dfc8a5a libstd *** 100084,100101 **** b2316fab435a1f2d8520298d14805a9d libstdc++-v3/testsuite/20_util/time_point_cast/constexpr.cc 70e4e6cf00f7581284a9be6f3802f4cd libstdc++-v3/testsuite/20_util/time_point_cast/rounding.cc 2c5bd4b6508aec1f493e5d1a2cd8494c libstdc++-v3/testsuite/20_util/to_address/1.cc ! 7ae269a374d0a0aab75eb1f929fd52fc libstdc++-v3/testsuite/20_util/to_address/1_neg.cc 133fe12805e3256b9c431c4ba30e0622 libstdc++-v3/testsuite/20_util/to_address/debug.cc 8fb10a36f1bccc97501878ffd73ca157 libstdc++-v3/testsuite/20_util/to_chars/1.cc de7ebfc26e88acbc9d63fcfcabf0b382 libstdc++-v3/testsuite/20_util/to_chars/2.cc a7d21c6c8ad1480506c8df8d4857cb97 libstdc++-v3/testsuite/20_util/to_chars/3.cc ! 410379e16ff95f733602cc4e3e30bb2f libstdc++-v3/testsuite/20_util/to_chars/4.cc 8fe52dfaad2bd6b6d62754c4cd1939c5 libstdc++-v3/testsuite/20_util/to_chars/95851.cc b541346abe2d776367e622ddb4619e0f libstdc++-v3/testsuite/20_util/to_chars/chars_format.cc 50b3c2a75acca0712b10b34a839020ab libstdc++-v3/testsuite/20_util/to_chars/compare.cc ! c186d4434c5ebde9b97c6e057d45d6b4 libstdc++-v3/testsuite/20_util/to_chars/double.cc ! 8a857f2b5f6d252f8e57df2c48d9889d libstdc++-v3/testsuite/20_util/to_chars/float.cc ! e047b20c04f548d79634d4637c97c461 libstdc++-v3/testsuite/20_util/to_chars/long_double.cc a4a1c52d9bd460726f090ef34d4c2bbd libstdc++-v3/testsuite/20_util/to_chars/lwg3266.cc 81afec037f5e4339a6bef27c917ab989 libstdc++-v3/testsuite/20_util/to_chars/requirements.cc 526c19d264780eb47e22a26b407f9e9b libstdc++-v3/testsuite/20_util/to_underlying/1.cc --- 100614,100633 ---- b2316fab435a1f2d8520298d14805a9d libstdc++-v3/testsuite/20_util/time_point_cast/constexpr.cc 70e4e6cf00f7581284a9be6f3802f4cd libstdc++-v3/testsuite/20_util/time_point_cast/rounding.cc 2c5bd4b6508aec1f493e5d1a2cd8494c libstdc++-v3/testsuite/20_util/to_address/1.cc ! 99ede23b3addcf42fe19db704d1d0d47 libstdc++-v3/testsuite/20_util/to_address/1_neg.cc 133fe12805e3256b9c431c4ba30e0622 libstdc++-v3/testsuite/20_util/to_address/debug.cc + 85bcd20ed1477c234831a1e857e38995 libstdc++-v3/testsuite/20_util/to_address/lwg3545.cc 8fb10a36f1bccc97501878ffd73ca157 libstdc++-v3/testsuite/20_util/to_chars/1.cc + cf4f3947ea6ae8a691cad8b85ffb82b7 libstdc++-v3/testsuite/20_util/to_chars/103955.cc de7ebfc26e88acbc9d63fcfcabf0b382 libstdc++-v3/testsuite/20_util/to_chars/2.cc a7d21c6c8ad1480506c8df8d4857cb97 libstdc++-v3/testsuite/20_util/to_chars/3.cc ! b3ef106f247f5184dff53d7f83d2547c libstdc++-v3/testsuite/20_util/to_chars/4.cc 8fe52dfaad2bd6b6d62754c4cd1939c5 libstdc++-v3/testsuite/20_util/to_chars/95851.cc b541346abe2d776367e622ddb4619e0f libstdc++-v3/testsuite/20_util/to_chars/chars_format.cc 50b3c2a75acca0712b10b34a839020ab libstdc++-v3/testsuite/20_util/to_chars/compare.cc ! 5023f6c1a2d374e90adee1ec171efa98 libstdc++-v3/testsuite/20_util/to_chars/double.cc ! 23ac211304a3685d878056005dca6369 libstdc++-v3/testsuite/20_util/to_chars/float.cc ! 9d8d47dfe50f3ceb88ff8447042f58e6 libstdc++-v3/testsuite/20_util/to_chars/long_double.cc a4a1c52d9bd460726f090ef34d4c2bbd libstdc++-v3/testsuite/20_util/to_chars/lwg3266.cc 81afec037f5e4339a6bef27c917ab989 libstdc++-v3/testsuite/20_util/to_chars/requirements.cc 526c19d264780eb47e22a26b407f9e9b libstdc++-v3/testsuite/20_util/to_underlying/1.cc *************** bc61feeb8d935a3aac751383ef085c55 libstd *** 100116,100123 **** f6b7a33203fa4099631dec37e15dcf3b libstdc++-v3/testsuite/20_util/tuple/comparison_operators/93147.cc d14f4b5e32eff50b207cc01fdea90213 libstdc++-v3/testsuite/20_util/tuple/comparison_operators/comparisons.cc 5286da75b33de2dbd53bc25475bbecdd libstdc++-v3/testsuite/20_util/tuple/comparison_operators/constexpr.cc ! 28e4120fadc0bd2c624b8fff9b2b25f7 libstdc++-v3/testsuite/20_util/tuple/comparison_operators/overloaded.cc 1a535e0b93b4813fb9d5ce3c26d0d3fc libstdc++-v3/testsuite/20_util/tuple/comparison_operators/three_way.cc e3566f9668d13eea0bc28024e1e60adc libstdc++-v3/testsuite/20_util/tuple/cons/41530.cc b8b6f7aca02de3d0464000ca018da3ba libstdc++-v3/testsuite/20_util/tuple/cons/44487.cc 521de308a3f68c36303b621ffb72195a libstdc++-v3/testsuite/20_util/tuple/cons/45228.cc --- 100648,100657 ---- f6b7a33203fa4099631dec37e15dcf3b libstdc++-v3/testsuite/20_util/tuple/comparison_operators/93147.cc d14f4b5e32eff50b207cc01fdea90213 libstdc++-v3/testsuite/20_util/tuple/comparison_operators/comparisons.cc 5286da75b33de2dbd53bc25475bbecdd libstdc++-v3/testsuite/20_util/tuple/comparison_operators/constexpr.cc ! a29daf4250ec6836d29ee219cb6e3c24 libstdc++-v3/testsuite/20_util/tuple/comparison_operators/overloaded.cc 1a535e0b93b4813fb9d5ce3c26d0d3fc libstdc++-v3/testsuite/20_util/tuple/comparison_operators/three_way.cc + d23b1a747046dfeaadefce18d2c02b12 libstdc++-v3/testsuite/20_util/tuple/cons/101960.cc + 32c154912a091023741fdaa263538a86 libstdc++-v3/testsuite/20_util/tuple/cons/102270.cc e3566f9668d13eea0bc28024e1e60adc libstdc++-v3/testsuite/20_util/tuple/cons/41530.cc b8b6f7aca02de3d0464000ca018da3ba libstdc++-v3/testsuite/20_util/tuple/cons/44487.cc 521de308a3f68c36303b621ffb72195a libstdc++-v3/testsuite/20_util/tuple/cons/45228.cc *************** ad5da87905da76675c011cea122c63d0 libstd *** 100263,100272 **** 94da979e26afd2b1ac9050756ced02a7 libstdc++-v3/testsuite/20_util/uses_allocator/92878_92947.cc 66c740424aabea47657522aa536816ba libstdc++-v3/testsuite/20_util/uses_allocator/cons_neg.cc 2f6d8997cf3698510fbf6c9a880d7a7d libstdc++-v3/testsuite/20_util/uses_allocator/construction.cc ! f120b3f4038658f2f5aee7aa1130eee6 libstdc++-v3/testsuite/20_util/uses_allocator/make_obj.cc aae6d425bfd5346e2bfe0bdb42a12f6b libstdc++-v3/testsuite/20_util/uses_allocator/requirements/explicit_instantiation.cc 99b710c9d615ca5cebaebad0a330f6aa libstdc++-v3/testsuite/20_util/uses_allocator/requirements/typedefs.cc a3cfed57f33bae6aacc72ae3feddb321 libstdc++-v3/testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc a34b6aa262d459f73e3788d23ad8b292 libstdc++-v3/testsuite/20_util/uses_allocator/value.cc b7b8b28e8523868bcc81675ea98f38be libstdc++-v3/testsuite/20_util/variable_templates_for_traits.cc b9698b5e78dcefad507d6737875a6a1d libstdc++-v3/testsuite/20_util/variant/100384.cc --- 100797,100807 ---- 94da979e26afd2b1ac9050756ced02a7 libstdc++-v3/testsuite/20_util/uses_allocator/92878_92947.cc 66c740424aabea47657522aa536816ba libstdc++-v3/testsuite/20_util/uses_allocator/cons_neg.cc 2f6d8997cf3698510fbf6c9a880d7a7d libstdc++-v3/testsuite/20_util/uses_allocator/construction.cc ! 8b23fa82c3cf4eb6bd0073777a8f351f libstdc++-v3/testsuite/20_util/uses_allocator/make_obj.cc aae6d425bfd5346e2bfe0bdb42a12f6b libstdc++-v3/testsuite/20_util/uses_allocator/requirements/explicit_instantiation.cc 99b710c9d615ca5cebaebad0a330f6aa libstdc++-v3/testsuite/20_util/uses_allocator/requirements/typedefs.cc a3cfed57f33bae6aacc72ae3feddb321 libstdc++-v3/testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc + 841aff3ec9a5aa97b1e1e2e16d64dfb0 libstdc++-v3/testsuite/20_util/uses_allocator/uninitialized_construct.cc a34b6aa262d459f73e3788d23ad8b292 libstdc++-v3/testsuite/20_util/uses_allocator/value.cc b7b8b28e8523868bcc81675ea98f38be libstdc++-v3/testsuite/20_util/variable_templates_for_traits.cc b9698b5e78dcefad507d6737875a6a1d libstdc++-v3/testsuite/20_util/variant/100384.cc *************** e10f1ccdf1246cb98e4dab271cb80a36 libstd *** 100289,100294 **** --- 100824,100830 ---- 6651742cfc1bb4258874bcc98a9449ec libstdc++-v3/testsuite/20_util/variant/relops/three_way.cc e98ef570f66f699ad66991066054e81f libstdc++-v3/testsuite/20_util/variant/run.cc 9de87a617372ed5d48895ae950b83711 libstdc++-v3/testsuite/20_util/variant/visit.cc + 271b1d4fa7c258bc0cfd32dff3784bd9 libstdc++-v3/testsuite/20_util/variant/visit_inherited.cc 9b0b50f6248ab97ece861beb2c58f5fe libstdc++-v3/testsuite/20_util/variant/visit_neg.cc 1da351b220cb8d19528340fc313cc023 libstdc++-v3/testsuite/20_util/variant/visit_r.cc 6103ecc970c4fe0fd0606b9a48d4797c libstdc++-v3/testsuite/20_util/void_t/1.cc *************** fda318aff5ecc8249c4fffc1d77ddb1e libstd *** 100304,100327 **** b26f6587d783865d309df0276030e7be libstdc++-v3/testsuite/21_strings/basic_string/56166.cc 0cc7e17e9838bbd05ee1e35810f52bc3 libstdc++-v3/testsuite/21_strings/basic_string/79162.cc 8b7ebdef0ddd3cb7458a67467e8bcf28 libstdc++-v3/testsuite/21_strings/basic_string/allocator/71964.cc ! 61d8b495673549b8e05c8ea02515747f libstdc++-v3/testsuite/21_strings/basic_string/allocator/char/copy.cc ! 901755c81d0a4b7d27ba03debba5dd77 libstdc++-v3/testsuite/21_strings/basic_string/allocator/char/copy_assign.cc ! c30ac2911b6beb23f855f96be0e7362a libstdc++-v3/testsuite/21_strings/basic_string/allocator/char/lwg2788.cc 60279c8ace63a5941991f12d7eec1801 libstdc++-v3/testsuite/21_strings/basic_string/allocator/char/minimal.cc ! f8362df4bcd48eb96ff23cfe22852934 libstdc++-v3/testsuite/21_strings/basic_string/allocator/char/move.cc ! 45c8b4fc27253e189920b7ef315d3e47 libstdc++-v3/testsuite/21_strings/basic_string/allocator/char/move_assign.cc ! d04e3e37b815cfbc34cab9f32620488e libstdc++-v3/testsuite/21_strings/basic_string/allocator/char/noexcept.cc ! 20451a64721c5ab7b8a35d8940e276be libstdc++-v3/testsuite/21_strings/basic_string/allocator/char/operator_plus.cc ! ae46da727b630556942258422e55b6d4 libstdc++-v3/testsuite/21_strings/basic_string/allocator/char/swap.cc ! 6fb8b91698ad5989180fb14fbd1b845e libstdc++-v3/testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc ! 92e11ed5e6a5e5fd5de2a873f4e3bd6e libstdc++-v3/testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc ! 1fa1fe81bab6d1b8e37f65bd686dd0d9 libstdc++-v3/testsuite/21_strings/basic_string/allocator/wchar_t/lwg2788.cc 2bbf7d6dee6a256a8f41bef34f58fb17 libstdc++-v3/testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc ! 6d64e6489fb288bbd03a80a75a246924 libstdc++-v3/testsuite/21_strings/basic_string/allocator/wchar_t/move.cc ! b3dc75a04354a33cc31c04c3e6ada9f7 libstdc++-v3/testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc ! cd578dccdce676f2516cfc41886ea776 libstdc++-v3/testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc ! 5cff4588bc029dd9e06186d77d8cc3b6 libstdc++-v3/testsuite/21_strings/basic_string/allocator/wchar_t/operator_plus.cc ! ac81e3b9c8d3c3da89ed2d1d22e6ae06 libstdc++-v3/testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc fb0a7eb293077a5c14097619ab0ed3e9 libstdc++-v3/testsuite/21_strings/basic_string/capacity/1.cc d79a7be96bcb90a9e850d136ccda203a libstdc++-v3/testsuite/21_strings/basic_string/capacity/char/1.cc 9de1c95fbbea1b80396e15821507b83c libstdc++-v3/testsuite/21_strings/basic_string/capacity/char/18654.cc --- 100840,100863 ---- b26f6587d783865d309df0276030e7be libstdc++-v3/testsuite/21_strings/basic_string/56166.cc 0cc7e17e9838bbd05ee1e35810f52bc3 libstdc++-v3/testsuite/21_strings/basic_string/79162.cc 8b7ebdef0ddd3cb7458a67467e8bcf28 libstdc++-v3/testsuite/21_strings/basic_string/allocator/71964.cc ! eb69b3be78f012bbf339a1ad38777876 libstdc++-v3/testsuite/21_strings/basic_string/allocator/char/copy.cc ! 21c2ed8bd76cf2b5a6667c5b35ae96ae libstdc++-v3/testsuite/21_strings/basic_string/allocator/char/copy_assign.cc ! dd5343d89c4d0a4877e62fef6209d9e4 libstdc++-v3/testsuite/21_strings/basic_string/allocator/char/lwg2788.cc 60279c8ace63a5941991f12d7eec1801 libstdc++-v3/testsuite/21_strings/basic_string/allocator/char/minimal.cc ! b356cd0bdf5a52f6165c51ba3a6128e9 libstdc++-v3/testsuite/21_strings/basic_string/allocator/char/move.cc ! 7025bdcefac7f969e204942e93aecb63 libstdc++-v3/testsuite/21_strings/basic_string/allocator/char/move_assign.cc ! 6716c8aa9879f372b0c1cf9248b07538 libstdc++-v3/testsuite/21_strings/basic_string/allocator/char/noexcept.cc ! 666b9ac9dad3db42edda9b821f762b63 libstdc++-v3/testsuite/21_strings/basic_string/allocator/char/operator_plus.cc ! 469ce7024728a73938798aaf9f84e677 libstdc++-v3/testsuite/21_strings/basic_string/allocator/char/swap.cc ! 8602234ae86c2decf54f441d29abf30c libstdc++-v3/testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc ! 2d6c2eb95a1f967510f957e0581566b9 libstdc++-v3/testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc ! 8f9e5a2e1ba746a6ce4a21388c36081f libstdc++-v3/testsuite/21_strings/basic_string/allocator/wchar_t/lwg2788.cc 2bbf7d6dee6a256a8f41bef34f58fb17 libstdc++-v3/testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc ! 6514f70370a4b973e539866460b9031a libstdc++-v3/testsuite/21_strings/basic_string/allocator/wchar_t/move.cc ! e7718e0099152c5873f48651c53ab5e9 libstdc++-v3/testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc ! 8c367683a21bdd583ee674aa2068c6ca libstdc++-v3/testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc ! eef614424bff140daeaeda93adcb1a3e libstdc++-v3/testsuite/21_strings/basic_string/allocator/wchar_t/operator_plus.cc ! e1bf9b6aec1de5392f18a5970b224a95 libstdc++-v3/testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc fb0a7eb293077a5c14097619ab0ed3e9 libstdc++-v3/testsuite/21_strings/basic_string/capacity/1.cc d79a7be96bcb90a9e850d136ccda203a libstdc++-v3/testsuite/21_strings/basic_string/capacity/char/1.cc 9de1c95fbbea1b80396e15821507b83c libstdc++-v3/testsuite/21_strings/basic_string/capacity/char/18654.cc *************** b679520743d93f7f5e54bb89c4334ed7 libstd *** 100332,100337 **** --- 100868,100874 ---- 889399b8fd4c904cb47756768ff3f835 libstdc++-v3/testsuite/21_strings/basic_string/capacity/wchar_t/2.cc 77eff1beecc106314c1499985965e6bf libstdc++-v3/testsuite/21_strings/basic_string/capacity/wchar_t/shrink_to_fit.cc 5c3bbd344d395c35c38d9633fd81cf81 libstdc++-v3/testsuite/21_strings/basic_string/cons/char/1.cc + 408950d5673e5a28433457ba820da161 libstdc++-v3/testsuite/21_strings/basic_string/cons/char/103919.cc d91450c03e9686ad90713b26b78c5668 libstdc++-v3/testsuite/21_strings/basic_string/cons/char/2.cc a6bdbb0a8131ceb7d4d05ad86274d320 libstdc++-v3/testsuite/21_strings/basic_string/cons/char/3.cc eb495b43e9debfc95bcb6e8e5253e71f libstdc++-v3/testsuite/21_strings/basic_string/cons/char/4.cc *************** c23896d0ce9efe8c7aecada1c9711b4a libstd *** 100430,100436 **** d89be2827f7b45ede9cf50874981ba8f libstdc++-v3/testsuite/21_strings/basic_string/modifiers/append/char/2.cc df725c56d95af34babbb2fa335ae2658 libstdc++-v3/testsuite/21_strings/basic_string/modifiers/append/char/3.cc 24faf200254da8f20a735743169c6a78 libstdc++-v3/testsuite/21_strings/basic_string/modifiers/append/char/4.cc ! de1eceaea768daaf9cf358d3083c6f44 libstdc++-v3/testsuite/21_strings/basic_string/modifiers/append/wchar_t/1.cc d2d52386959b8439fc98e6cac2705f34 libstdc++-v3/testsuite/21_strings/basic_string/modifiers/append/wchar_t/2.cc ca07b45f60c46d8f212cade82289f842 libstdc++-v3/testsuite/21_strings/basic_string/modifiers/append/wchar_t/3.cc f1488a0e752e78c28122debde363023a libstdc++-v3/testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc --- 100967,100973 ---- d89be2827f7b45ede9cf50874981ba8f libstdc++-v3/testsuite/21_strings/basic_string/modifiers/append/char/2.cc df725c56d95af34babbb2fa335ae2658 libstdc++-v3/testsuite/21_strings/basic_string/modifiers/append/char/3.cc 24faf200254da8f20a735743169c6a78 libstdc++-v3/testsuite/21_strings/basic_string/modifiers/append/char/4.cc ! 9a717cb274f2404c8f5f09e9fc3c37d4 libstdc++-v3/testsuite/21_strings/basic_string/modifiers/append/wchar_t/1.cc d2d52386959b8439fc98e6cac2705f34 libstdc++-v3/testsuite/21_strings/basic_string/modifiers/append/wchar_t/2.cc ca07b45f60c46d8f212cade82289f842 libstdc++-v3/testsuite/21_strings/basic_string/modifiers/append/wchar_t/3.cc f1488a0e752e78c28122debde363023a libstdc++-v3/testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc *************** df8371a298515f69ab2ee268102ad750 libstd *** 100452,100462 **** cdb9ede449fb05842a36d19b3de84d3d libstdc++-v3/testsuite/21_strings/basic_string/modifiers/insert/char/1.cc f6e8fe5bdaf4e95458a3b16d455b99bb libstdc++-v3/testsuite/21_strings/basic_string/modifiers/insert/char/2.cc 4bc8a8087dd0778dc62fd96e000444e1 libstdc++-v3/testsuite/21_strings/basic_string/modifiers/insert/char/3.cc ! e3f127a63dedcce6b5c52ab602b889ef libstdc++-v3/testsuite/21_strings/basic_string/modifiers/insert/char/83328.cc 667161140259df75643dbe15298aa1e3 libstdc++-v3/testsuite/21_strings/basic_string/modifiers/insert/wchar_t/1.cc 3526329ec5e6d16b65ccaa5959d287f0 libstdc++-v3/testsuite/21_strings/basic_string/modifiers/insert/wchar_t/2.cc 242da04b92ae2483e79650d0c8573a47 libstdc++-v3/testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc ! 8c04ebb47257fc9ca7442bd6a84df7ff libstdc++-v3/testsuite/21_strings/basic_string/modifiers/insert/wchar_t/83328.cc 0fe484e38b288a79b1fff4c5f20dda5b libstdc++-v3/testsuite/21_strings/basic_string/modifiers/pop_back/char/1.cc f68925a356975d6c4a5603b796777dff libstdc++-v3/testsuite/21_strings/basic_string/modifiers/pop_back/wchar_t/1.cc efa11d3baaaebaec58feacd2bf439472 libstdc++-v3/testsuite/21_strings/basic_string/modifiers/replace/char/1.cc --- 100989,100999 ---- cdb9ede449fb05842a36d19b3de84d3d libstdc++-v3/testsuite/21_strings/basic_string/modifiers/insert/char/1.cc f6e8fe5bdaf4e95458a3b16d455b99bb libstdc++-v3/testsuite/21_strings/basic_string/modifiers/insert/char/2.cc 4bc8a8087dd0778dc62fd96e000444e1 libstdc++-v3/testsuite/21_strings/basic_string/modifiers/insert/char/3.cc ! b51aa3f5ffa76ef946b0ba17e6066809 libstdc++-v3/testsuite/21_strings/basic_string/modifiers/insert/char/83328.cc 667161140259df75643dbe15298aa1e3 libstdc++-v3/testsuite/21_strings/basic_string/modifiers/insert/wchar_t/1.cc 3526329ec5e6d16b65ccaa5959d287f0 libstdc++-v3/testsuite/21_strings/basic_string/modifiers/insert/wchar_t/2.cc 242da04b92ae2483e79650d0c8573a47 libstdc++-v3/testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc ! a9c655e1f478bdc3d6a365cf10f35dcd libstdc++-v3/testsuite/21_strings/basic_string/modifiers/insert/wchar_t/83328.cc 0fe484e38b288a79b1fff4c5f20dda5b libstdc++-v3/testsuite/21_strings/basic_string/modifiers/pop_back/char/1.cc f68925a356975d6c4a5603b796777dff libstdc++-v3/testsuite/21_strings/basic_string/modifiers/pop_back/wchar_t/1.cc efa11d3baaaebaec58feacd2bf439472 libstdc++-v3/testsuite/21_strings/basic_string/modifiers/replace/char/1.cc *************** aebfcd5a73c59b91266e8b3dd633b8d4 libstd *** 100498,100504 **** fa2a36a3b369e4a6f177f9b6704c7e69 libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/char/1.cc 17c606d72b06231c7c13920c517402ce libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/char/13650.cc 099cc3f0bd43700081699d22cc34557c libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/char/2.cc ! 6896eec9d2ce54e0a11b8415ceaee285 libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/wchar_t/1.cc 8fd98f3ba0025dac3542dcc30821d7de libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/wchar_t/13650.cc 87ebe3fd0f8091147645e27dc4cb8ee0 libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc f7fb8f147784f13a3e57e1ff26eff5c8 libstdc++-v3/testsuite/21_strings/basic_string/operations/contains/char/1.cc --- 101035,101041 ---- fa2a36a3b369e4a6f177f9b6704c7e69 libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/char/1.cc 17c606d72b06231c7c13920c517402ce libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/char/13650.cc 099cc3f0bd43700081699d22cc34557c libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/char/2.cc ! 44eb16589412df9bd3aa57b0cad4b651 libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/wchar_t/1.cc 8fd98f3ba0025dac3542dcc30821d7de libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/wchar_t/13650.cc 87ebe3fd0f8091147645e27dc4cb8ee0 libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc f7fb8f147784f13a3e57e1ff26eff5c8 libstdc++-v3/testsuite/21_strings/basic_string/operations/contains/char/1.cc *************** b426c4def62251ac3d24be08ee1bf64f libstd *** 100566,100579 **** 6a11edfc864a472816029448ebf436f7 libstdc++-v3/testsuite/21_strings/basic_string/requirements/typedefs.cc 6b1eb7b26573dd38d176c4ce7dd90ecf libstdc++-v3/testsuite/21_strings/basic_string/types/1.cc 316dcb337c00d2fba2a343425cab8b62 libstdc++-v3/testsuite/21_strings/basic_string/types/23767.cc ! 44b8f145bc032a79d8c4be34486abff1 libstdc++-v3/testsuite/21_strings/basic_string/types/pmr_typedefs.cc 0bc3f3ffade93d5be1d282f8239f04b1 libstdc++-v3/testsuite/21_strings/basic_string_view/capacity/1.cc f63eac1974b7fe35fabec71383a10747 libstdc++-v3/testsuite/21_strings/basic_string_view/capacity/empty_neg.cc 4fd21fe1dbcce7f3ade894f335a1133d libstdc++-v3/testsuite/21_strings/basic_string_view/cons/char/1.cc d68dab1b04d63dd4e3fceb08007d9e0b libstdc++-v3/testsuite/21_strings/basic_string_view/cons/char/2.cc 024bc13940db67bdbed4bd27adb64b24 libstdc++-v3/testsuite/21_strings/basic_string_view/cons/char/3.cc 5975b3534ce70f6db979af8022d716d1 libstdc++-v3/testsuite/21_strings/basic_string_view/cons/char/nonnull.cc ! 3f91d3d2483b9f098c4c17c2ebfbf86f libstdc++-v3/testsuite/21_strings/basic_string_view/cons/char/range.cc a4f9e3607774ef2331c5cd93f7845be6 libstdc++-v3/testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc 027619cd14c68144376f29ed00225b4a libstdc++-v3/testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc 3be7fda5bae7081671a8b56eac758ac1 libstdc++-v3/testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc --- 101103,101116 ---- 6a11edfc864a472816029448ebf436f7 libstdc++-v3/testsuite/21_strings/basic_string/requirements/typedefs.cc 6b1eb7b26573dd38d176c4ce7dd90ecf libstdc++-v3/testsuite/21_strings/basic_string/types/1.cc 316dcb337c00d2fba2a343425cab8b62 libstdc++-v3/testsuite/21_strings/basic_string/types/23767.cc ! dd85ff7a2a0be273143159c865844bfa libstdc++-v3/testsuite/21_strings/basic_string/types/pmr_typedefs.cc 0bc3f3ffade93d5be1d282f8239f04b1 libstdc++-v3/testsuite/21_strings/basic_string_view/capacity/1.cc f63eac1974b7fe35fabec71383a10747 libstdc++-v3/testsuite/21_strings/basic_string_view/capacity/empty_neg.cc 4fd21fe1dbcce7f3ade894f335a1133d libstdc++-v3/testsuite/21_strings/basic_string_view/cons/char/1.cc d68dab1b04d63dd4e3fceb08007d9e0b libstdc++-v3/testsuite/21_strings/basic_string_view/cons/char/2.cc 024bc13940db67bdbed4bd27adb64b24 libstdc++-v3/testsuite/21_strings/basic_string_view/cons/char/3.cc 5975b3534ce70f6db979af8022d716d1 libstdc++-v3/testsuite/21_strings/basic_string_view/cons/char/nonnull.cc ! cde4d3da0ea077f27241896801e8b62e libstdc++-v3/testsuite/21_strings/basic_string_view/cons/char/range.cc a4f9e3607774ef2331c5cd93f7845be6 libstdc++-v3/testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc 027619cd14c68144376f29ed00225b4a libstdc++-v3/testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc 3be7fda5bae7081671a8b56eac758ac1 libstdc++-v3/testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc *************** b246730192e7c8a78eb83d42eb2068a2 libstd *** 100676,100681 **** --- 101213,101219 ---- 9f501e35b5793aee73245ed00b2d4d16 libstdc++-v3/testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char8_t/1.cc 93e1fe54de644d06e733d3311c304ec0 libstdc++-v3/testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc c58e4a54f9812ca54a33f8bb9ab1eb7e libstdc++-v3/testsuite/21_strings/basic_string_view/requirements/traits_neg.cc + 58947d8735c23b82574427ce2851e965 libstdc++-v3/testsuite/21_strings/basic_string_view/requirements/trivially_copyable.cc 2f04053c1d380c019bf497e3354e6272 libstdc++-v3/testsuite/21_strings/basic_string_view/requirements/typedefs.cc a005ecff2e5bae0e6776d87e235b2969 libstdc++-v3/testsuite/21_strings/basic_string_view/typedefs.cc e891c7552eefd52a28b6ae80efdcd720 libstdc++-v3/testsuite/21_strings/basic_string_view/types/1.cc *************** dc2163d3064f8b1cbb0e4a72a173e133 libstd *** 100701,100707 **** 819f978a2dccb0bb94ee5d2edc454b72 libstdc++-v3/testsuite/21_strings/char_traits/requirements/char8_t/typedefs.cc 40e9161139bad049915c7ae5a6ef2733 libstdc++-v3/testsuite/21_strings/char_traits/requirements/constexpr_functions.cc fdac26a07484a999f99f668d9f150453 libstdc++-v3/testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc ! c2ae1b0ba48c0965f620e339b362931d libstdc++-v3/testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc 955438433acee1c100dba7c5172187cf libstdc++-v3/testsuite/21_strings/char_traits/requirements/explicit_instantiation/char/1.cc e36b81ed3e3c93bdebeba84eb99ea42b libstdc++-v3/testsuite/21_strings/char_traits/requirements/explicit_instantiation/char16_t/1.cc ccf11f05b5b84d95731c4d00bd6c49b9 libstdc++-v3/testsuite/21_strings/char_traits/requirements/explicit_instantiation/char32_t/1.cc --- 101239,101245 ---- 819f978a2dccb0bb94ee5d2edc454b72 libstdc++-v3/testsuite/21_strings/char_traits/requirements/char8_t/typedefs.cc 40e9161139bad049915c7ae5a6ef2733 libstdc++-v3/testsuite/21_strings/char_traits/requirements/constexpr_functions.cc fdac26a07484a999f99f668d9f150453 libstdc++-v3/testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc ! 5c41266953525b8f49738e1728468f0e libstdc++-v3/testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc 955438433acee1c100dba7c5172187cf libstdc++-v3/testsuite/21_strings/char_traits/requirements/explicit_instantiation/char/1.cc e36b81ed3e3c93bdebeba84eb99ea42b libstdc++-v3/testsuite/21_strings/char_traits/requirements/explicit_instantiation/char16_t/1.cc ccf11f05b5b84d95731c4d00bd6c49b9 libstdc++-v3/testsuite/21_strings/char_traits/requirements/explicit_instantiation/char32_t/1.cc *************** d5ba1516b2c6e1584944292235564ffd libstd *** 100871,100881 **** 5882b44b07072fcdd2309044a64d1c47 libstdc++-v3/testsuite/22_locale/collate_byname/requirements/base_classes.cc 073b64dd2f4a178fb55919ca62cc4083 libstdc++-v3/testsuite/22_locale/collate_byname/requirements/explicit_instantiation.cc e012e8d578332a6262fb03103c26f44a libstdc++-v3/testsuite/22_locale/collate_byname/requirements/typedefs.cc ! 3debc521788fc4f253c1489c97ce6ddb libstdc++-v3/testsuite/22_locale/conversions/buffer/1.cc 5b1d145c28df2348ab1963d53bb8cef1 libstdc++-v3/testsuite/22_locale/conversions/buffer/2.cc ! 23b7f420e47c27c6abb04b9c2d848bc4 libstdc++-v3/testsuite/22_locale/conversions/buffer/3.cc 484651c08eb5e6c558869644f1db7bc9 libstdc++-v3/testsuite/22_locale/conversions/buffer/requirements/typedefs.cc ! 1f46dc268cc87c4f385010ab17bcb696 libstdc++-v3/testsuite/22_locale/conversions/string/1.cc bbbb5538b6a03dc3941332174ddab41a libstdc++-v3/testsuite/22_locale/conversions/string/2.cc f041b60cc91283c2666db5fb5589d3fd libstdc++-v3/testsuite/22_locale/conversions/string/3.cc 26ca10dc1c1f9ac375662f65e13d206d libstdc++-v3/testsuite/22_locale/conversions/string/66441.cc --- 101409,101419 ---- 5882b44b07072fcdd2309044a64d1c47 libstdc++-v3/testsuite/22_locale/collate_byname/requirements/base_classes.cc 073b64dd2f4a178fb55919ca62cc4083 libstdc++-v3/testsuite/22_locale/collate_byname/requirements/explicit_instantiation.cc e012e8d578332a6262fb03103c26f44a libstdc++-v3/testsuite/22_locale/collate_byname/requirements/typedefs.cc ! e791c79c07f8dcba0f48323f13c7ada9 libstdc++-v3/testsuite/22_locale/conversions/buffer/1.cc 5b1d145c28df2348ab1963d53bb8cef1 libstdc++-v3/testsuite/22_locale/conversions/buffer/2.cc ! 1b9a464437113fa48b97f6891069b9e4 libstdc++-v3/testsuite/22_locale/conversions/buffer/3.cc 484651c08eb5e6c558869644f1db7bc9 libstdc++-v3/testsuite/22_locale/conversions/buffer/requirements/typedefs.cc ! 5edede5c75017125c998657f5b276a24 libstdc++-v3/testsuite/22_locale/conversions/string/1.cc bbbb5538b6a03dc3941332174ddab41a libstdc++-v3/testsuite/22_locale/conversions/string/2.cc f041b60cc91283c2666db5fb5589d3fd libstdc++-v3/testsuite/22_locale/conversions/string/3.cc 26ca10dc1c1f9ac375662f65e13d206d libstdc++-v3/testsuite/22_locale/conversions/string/66441.cc *************** edaa004bb9eae943f183fcdc0f269808 libstd *** 101426,101431 **** --- 101964,101970 ---- de56de001d169a4b8a691a41327fee47 libstdc++-v3/testsuite/23_containers/bitset/to_string/dr396.cc f57a4db11fe719ce3262a1977035e5cc libstdc++-v3/testsuite/23_containers/bitset/to_ullong/1.cc 776ef9d76323c363dc5a78d1e9169e19 libstdc++-v3/testsuite/23_containers/bitset/to_ulong/1.cc + ddf767067d4b89b063a9cdaf9a38233c libstdc++-v3/testsuite/23_containers/deque/100516.cc b61080bacaa1f97ee4ffe96d40c8929c libstdc++-v3/testsuite/23_containers/deque/14340.cc 19c3dab506c20712027bb8729ef87b57 libstdc++-v3/testsuite/23_containers/deque/18604.cc 193e02a35660ce434ac8d69fceaa8efa libstdc++-v3/testsuite/23_containers/deque/48101-2_neg.cc *************** d3a926cb0d210427978dc7c0b804ffc5 libstd *** 101657,101663 **** 2bf54e112397c8e897622beea4ca3557 libstdc++-v3/testsuite/23_containers/list/48101-3_neg.cc e2b496aa89288d633de62f88732489fa libstdc++-v3/testsuite/23_containers/list/48101_neg.cc f5ec0a0da378e7f6663cedcceda9cf4b libstdc++-v3/testsuite/23_containers/list/58764.cc ! 8797cf83d3686dd068208150e723b5f2 libstdc++-v3/testsuite/23_containers/list/61347.cc fb3268278375d30190ac8078a8156384 libstdc++-v3/testsuite/23_containers/list/68222_neg.cc ace73e9f1431e80ae7b1dd906ad6a9f6 libstdc++-v3/testsuite/23_containers/list/92124.cc 5bfd2a976a20d1953113a9bf2a220a60 libstdc++-v3/testsuite/23_containers/list/allocator/copy.cc --- 102196,102202 ---- 2bf54e112397c8e897622beea4ca3557 libstdc++-v3/testsuite/23_containers/list/48101-3_neg.cc e2b496aa89288d633de62f88732489fa libstdc++-v3/testsuite/23_containers/list/48101_neg.cc f5ec0a0da378e7f6663cedcceda9cf4b libstdc++-v3/testsuite/23_containers/list/58764.cc ! f9d10ccf94e3c597c9b2542c258fe35c libstdc++-v3/testsuite/23_containers/list/61347.cc fb3268278375d30190ac8078a8156384 libstdc++-v3/testsuite/23_containers/list/68222_neg.cc ace73e9f1431e80ae7b1dd906ad6a9f6 libstdc++-v3/testsuite/23_containers/list/92124.cc 5bfd2a976a20d1953113a9bf2a220a60 libstdc++-v3/testsuite/23_containers/list/allocator/copy.cc *************** f20722bb14b72ff7eead44b4b9459875 libstd *** 101806,101812 **** 58d5bb66309e3f1b5ba7e26083547e03 libstdc++-v3/testsuite/23_containers/map/allocator/minimal.cc 4171a0a215116ede3a133a96ce344960 libstdc++-v3/testsuite/23_containers/map/allocator/move.cc b098552f6a68b66c8f97debe1d202cee libstdc++-v3/testsuite/23_containers/map/allocator/move_assign.cc ! 3c170d2757a8e669d816fddbe1092a97 libstdc++-v3/testsuite/23_containers/map/allocator/move_cons.cc 1ddd5b7d6ae939ae39b4a65729a9525f libstdc++-v3/testsuite/23_containers/map/allocator/noexcept.cc 0defa0cdd60a41e995eafbb93d194bbe libstdc++-v3/testsuite/23_containers/map/allocator/swap.cc 357711804fc62efa30d2159f97de6cd2 libstdc++-v3/testsuite/23_containers/map/capacity/29134.cc --- 102345,102351 ---- 58d5bb66309e3f1b5ba7e26083547e03 libstdc++-v3/testsuite/23_containers/map/allocator/minimal.cc 4171a0a215116ede3a133a96ce344960 libstdc++-v3/testsuite/23_containers/map/allocator/move.cc b098552f6a68b66c8f97debe1d202cee libstdc++-v3/testsuite/23_containers/map/allocator/move_assign.cc ! 43006f9b1a0b3a83871fa15d830ea9ac libstdc++-v3/testsuite/23_containers/map/allocator/move_cons.cc 1ddd5b7d6ae939ae39b4a65729a9525f libstdc++-v3/testsuite/23_containers/map/allocator/noexcept.cc 0defa0cdd60a41e995eafbb93d194bbe libstdc++-v3/testsuite/23_containers/map/allocator/swap.cc 357711804fc62efa30d2159f97de6cd2 libstdc++-v3/testsuite/23_containers/map/capacity/29134.cc *************** b9f3acae3b57d2bbe91a2e26ca8dce2b libstd *** 101896,101902 **** 81dc82eb4f7c6a33a40eb2435f62a729 libstdc++-v3/testsuite/23_containers/multimap/allocator/minimal.cc 3d85c2d41effd3f27ec86ca756bb1344 libstdc++-v3/testsuite/23_containers/multimap/allocator/move.cc a9a3716c2800d2ea1409624ca2f98792 libstdc++-v3/testsuite/23_containers/multimap/allocator/move_assign.cc ! fd4430051544cca087e02558d908c2f7 libstdc++-v3/testsuite/23_containers/multimap/allocator/move_cons.cc 5530aa8b58ba732be418bf447fbae3c7 libstdc++-v3/testsuite/23_containers/multimap/allocator/noexcept.cc 5c7fff2e50e66ba6a95992e668650076 libstdc++-v3/testsuite/23_containers/multimap/allocator/swap.cc 059305798e69806ca6be92cda9a07ec6 libstdc++-v3/testsuite/23_containers/multimap/capacity/29134.cc --- 102435,102441 ---- 81dc82eb4f7c6a33a40eb2435f62a729 libstdc++-v3/testsuite/23_containers/multimap/allocator/minimal.cc 3d85c2d41effd3f27ec86ca756bb1344 libstdc++-v3/testsuite/23_containers/multimap/allocator/move.cc a9a3716c2800d2ea1409624ca2f98792 libstdc++-v3/testsuite/23_containers/multimap/allocator/move_assign.cc ! 6b228284e36f939ee229675da47652f2 libstdc++-v3/testsuite/23_containers/multimap/allocator/move_cons.cc 5530aa8b58ba732be418bf447fbae3c7 libstdc++-v3/testsuite/23_containers/multimap/allocator/noexcept.cc 5c7fff2e50e66ba6a95992e668650076 libstdc++-v3/testsuite/23_containers/multimap/allocator/swap.cc 059305798e69806ca6be92cda9a07ec6 libstdc++-v3/testsuite/23_containers/multimap/capacity/29134.cc *************** c47ed3ceea6e048b1775f0fe2ccacb6e libstd *** 101965,101970 **** --- 102504,102510 ---- 66508613d0926be09ddf8ffaed67e610 libstdc++-v3/testsuite/23_containers/multiset/48101-3_neg.cc 9a2952adfbd6b854279119ebb540563b libstdc++-v3/testsuite/23_containers/multiset/48101_neg.cc e11172304436ea41e0bc84faaa3cfdac libstdc++-v3/testsuite/23_containers/multiset/58764.cc + c599e48655ea2e75c592ab5a1cf5ae3c libstdc++-v3/testsuite/23_containers/multiset/allocator/103501.cc 1144cc12d85a6c3e05bf629fbe0abb95 libstdc++-v3/testsuite/23_containers/multiset/allocator/copy.cc 5ce5479b9687060d924566d7fcfe4a02 libstdc++-v3/testsuite/23_containers/multiset/allocator/copy_assign.cc acdba075ab6eb7c80b362dd04b52165d libstdc++-v3/testsuite/23_containers/multiset/allocator/init-list.cc *************** d4508bbc7506891550849cc553384aee libstd *** 102066,102071 **** --- 102606,102612 ---- 1db057ca7542232a02eb263c696ece96 libstdc++-v3/testsuite/23_containers/set/58764.cc c7e69fd568faa54cc9b643b06113e5dd libstdc++-v3/testsuite/23_containers/set/85965.cc 343d95b13459e294e5aa8fcc53339a4c libstdc++-v3/testsuite/23_containers/set/92124.cc + 4934612c2b7203e0e300739be2067260 libstdc++-v3/testsuite/23_containers/set/allocator/103501.cc 1e765d37aacce269c491936d07f02c51 libstdc++-v3/testsuite/23_containers/set/allocator/71964.cc a11fe36ab5541bcb94de7cd50f51c240 libstdc++-v3/testsuite/23_containers/set/allocator/copy.cc 73fd3f9d7ecd631a66fba036209376b1 libstdc++-v3/testsuite/23_containers/set/allocator/copy_assign.cc *************** aee401793709be9b3b9b38c2438cfb99 libstd *** 102146,102151 **** --- 102687,102694 ---- 667a066b8b8fdf35b62b2bad50b9da97 libstdc++-v3/testsuite/23_containers/span/2.cc feb06d52fa0653f7a0d0fffdcced5349 libstdc++-v3/testsuite/23_containers/span/back_assert_neg.cc cbe50960a97787cd389de8002df2c312 libstdc++-v3/testsuite/23_containers/span/back_neg.cc + 06a45501dcaec8e13d6ae1e6ee40d1b7 libstdc++-v3/testsuite/23_containers/span/cons_1_assert_neg.cc + b500468357c8536c575705ba4a6c389f libstdc++-v3/testsuite/23_containers/span/cons_2_assert_neg.cc 82c681641c14a8f789f3beec1a8883ac libstdc++-v3/testsuite/23_containers/span/contiguous_range_neg.cc b7de4256573a64a27c5b02ee5b869f43 libstdc++-v3/testsuite/23_containers/span/deduction.cc 0fde7cf66dc5e3a6d4bc3e574b638e5a libstdc++-v3/testsuite/23_containers/span/everything.cc *************** b464e090bd63b9d2bff8cb12e442c943 libstd *** 102170,102175 **** --- 102713,102719 ---- 2c3edf40601c9fd34867e991225c4ad1 libstdc++-v3/testsuite/23_containers/span/subspan_6_assert_neg.cc 916389ba013bf1efecaa2b405aa0e78e libstdc++-v3/testsuite/23_containers/span/subspan_assert_neg.cc bd7ef95705213ddf1c5961f3283f045f libstdc++-v3/testsuite/23_containers/span/subspan_neg.cc + d19a170b5f7ab02157733005cb76fef1 libstdc++-v3/testsuite/23_containers/span/trivially_copyable.cc 4003c941d10299054e56ae86adec8559 libstdc++-v3/testsuite/23_containers/stack/77528.cc 489db74312a7cf9c9b536769ad1ce432 libstdc++-v3/testsuite/23_containers/stack/92878_92947.cc 0e845abe548a2afb362cc268894b1b61 libstdc++-v3/testsuite/23_containers/stack/cmp_c++20.cc *************** d36ae56fb777ed81c60a4b9cb4151fa9 libstd *** 102188,102194 **** e404c6c29d86d00f6d12070e7de7b6c6 libstdc++-v3/testsuite/23_containers/unordered_map/59548.cc e2c95422a77bac67fd24b5d4ea6c654b libstdc++-v3/testsuite/23_containers/unordered_map/allocator/copy.cc 04a1f33f59068eb1e9fbd622204dbc47 libstdc++-v3/testsuite/23_containers/unordered_map/allocator/copy_assign.cc ! a903acc08e15ab58be2a5207482d3965 libstdc++-v3/testsuite/23_containers/unordered_map/allocator/default_init.cc 65280d7765625e94d70075f1efd74578 libstdc++-v3/testsuite/23_containers/unordered_map/allocator/minimal.cc 8fb3743bdb6b9df9f6de5c8cb2e6c7a5 libstdc++-v3/testsuite/23_containers/unordered_map/allocator/move.cc b34b514ea98b772fff11e0802fc7695f libstdc++-v3/testsuite/23_containers/unordered_map/allocator/move_assign.cc --- 102732,102738 ---- e404c6c29d86d00f6d12070e7de7b6c6 libstdc++-v3/testsuite/23_containers/unordered_map/59548.cc e2c95422a77bac67fd24b5d4ea6c654b libstdc++-v3/testsuite/23_containers/unordered_map/allocator/copy.cc 04a1f33f59068eb1e9fbd622204dbc47 libstdc++-v3/testsuite/23_containers/unordered_map/allocator/copy_assign.cc ! ecc802145482ce99db8c7f1562035f9d libstdc++-v3/testsuite/23_containers/unordered_map/allocator/default_init.cc 65280d7765625e94d70075f1efd74578 libstdc++-v3/testsuite/23_containers/unordered_map/allocator/minimal.cc 8fb3743bdb6b9df9f6de5c8cb2e6c7a5 libstdc++-v3/testsuite/23_containers/unordered_map/allocator/move.cc b34b514ea98b772fff11e0802fc7695f libstdc++-v3/testsuite/23_containers/unordered_map/allocator/move_assign.cc *************** e210463e69073327c4d2538d97b970ac libstd *** 102198,102203 **** --- 102742,102748 ---- 3c848cf85f1a5a153262c1f2937d7b58 libstdc++-v3/testsuite/23_containers/unordered_map/cons/66055.cc bb06d5e923e3d5d8bd84b4bfcb798aa2 libstdc++-v3/testsuite/23_containers/unordered_map/cons/81891.cc b67672059716a3393bb98f087a8b40ee libstdc++-v3/testsuite/23_containers/unordered_map/cons/deduction.cc + 85f9f0cfc8a07ac716292470ac0bda11 libstdc++-v3/testsuite/23_containers/unordered_map/cons/default.cc 186eb09f0feeb412dd49047f612454d2 libstdc++-v3/testsuite/23_containers/unordered_map/cons/moveable.cc 4104335ace0c1004c988ee3252c86310 libstdc++-v3/testsuite/23_containers/unordered_map/cons/noexcept_default_construct.cc 729790d0d118599062d8f37ec85642af libstdc++-v3/testsuite/23_containers/unordered_map/cons/noexcept_move_construct.cc *************** aad182a7742254d80acf4d12d37c0ca4 libstd *** 102255,102261 **** 77fd0a322ff231b0bf633fb1b7b77abe libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/extract.cc bc573833b4c56014881767109b01c03c libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc 47680e3fd4b2375e2cb78bcac7c21900 libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/merge.cc ! f46b86c23c494b57dea314c176d73826 libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/move_assign.cc c17e4de260cd092f864e0801d51169e3 libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/reserve.cc f72a8af25f497a4d362ac0192815d1fb libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/try_emplace.cc 2a052947e563d8b689012622bd308f8e libstdc++-v3/testsuite/23_containers/unordered_map/observers.cc --- 102800,102806 ---- 77fd0a322ff231b0bf633fb1b7b77abe libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/extract.cc bc573833b4c56014881767109b01c03c libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc 47680e3fd4b2375e2cb78bcac7c21900 libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/merge.cc ! d7e9b0d7eb7f2c6ee4e411cc4e464743 libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/move_assign.cc c17e4de260cd092f864e0801d51169e3 libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/reserve.cc f72a8af25f497a4d362ac0192815d1fb libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/try_emplace.cc 2a052947e563d8b689012622bd308f8e libstdc++-v3/testsuite/23_containers/unordered_map/observers.cc *************** d56d6a3b11674c5ef5e08147bfad9f5b libstd *** 102472,102478 **** 074652bfafd367dcf66ff4eb41f64fe7 libstdc++-v3/testsuite/23_containers/unordered_set/92124.cc 9ecb77bba4dd535fa5bf7951d935bdf8 libstdc++-v3/testsuite/23_containers/unordered_set/allocator/copy.cc f42b7981043b0f2be2678785df364814 libstdc++-v3/testsuite/23_containers/unordered_set/allocator/copy_assign.cc ! 63ebd139d6e4bb3f1be1631514ca214d libstdc++-v3/testsuite/23_containers/unordered_set/allocator/default_init.cc fd123093f7e5013ec2a5baefead534fe libstdc++-v3/testsuite/23_containers/unordered_set/allocator/ext_ptr.cc e0d2a365a09b5636f6135bef123aca67 libstdc++-v3/testsuite/23_containers/unordered_set/allocator/minimal.cc a0e7d6da59994b0dbb4dc0688ac4a143 libstdc++-v3/testsuite/23_containers/unordered_set/allocator/move.cc --- 103017,103023 ---- 074652bfafd367dcf66ff4eb41f64fe7 libstdc++-v3/testsuite/23_containers/unordered_set/92124.cc 9ecb77bba4dd535fa5bf7951d935bdf8 libstdc++-v3/testsuite/23_containers/unordered_set/allocator/copy.cc f42b7981043b0f2be2678785df364814 libstdc++-v3/testsuite/23_containers/unordered_set/allocator/copy_assign.cc ! a00c1b1db86d071058816bba53eae88d libstdc++-v3/testsuite/23_containers/unordered_set/allocator/default_init.cc fd123093f7e5013ec2a5baefead534fe libstdc++-v3/testsuite/23_containers/unordered_set/allocator/ext_ptr.cc e0d2a365a09b5636f6135bef123aca67 libstdc++-v3/testsuite/23_containers/unordered_set/allocator/minimal.cc a0e7d6da59994b0dbb4dc0688ac4a143 libstdc++-v3/testsuite/23_containers/unordered_set/allocator/move.cc *************** a65ba3d8e27655ddd0bc328ab73ada4c libstd *** 102484,102489 **** --- 103029,103035 ---- 9d752eefc22b63ac38738f296f675279 libstdc++-v3/testsuite/23_containers/unordered_set/cons/99985.cc dbfc14e923792da5010ad03c34f624b0 libstdc++-v3/testsuite/23_containers/unordered_set/cons/bucket_hint.cc f9d6647c9d930a0dce774d25be921e17 libstdc++-v3/testsuite/23_containers/unordered_set/cons/deduction.cc + 247af40f0de6e07e87bdde64812f8659 libstdc++-v3/testsuite/23_containers/unordered_set/cons/default.cc b975a36e94bc20e855f45e5622c7e5a2 libstdc++-v3/testsuite/23_containers/unordered_set/cons/moveable.cc 9e6f87cb9a4da17b72ed4ff59c4ec009 libstdc++-v3/testsuite/23_containers/unordered_set/cons/noexcept_default_construct.cc 0e0a91bf1832ab1063c7388fdeec7fca libstdc++-v3/testsuite/23_containers/unordered_set/cons/noexcept_move_construct.cc *************** bd0fbcb5db9b9f8cd4dc55a21d39d8eb libstd *** 102970,102981 **** 37092a5d667f0f28b7e935968d25aae8 libstdc++-v3/testsuite/25_algorithms/copy/94013.cc 45915ce0a8f26f04668919afa3a1813b libstdc++-v3/testsuite/25_algorithms/copy/95578.cc 0c8ee5b6733184cae3f4d172c8c52482 libstdc++-v3/testsuite/25_algorithms/copy/constexpr.cc ! a856949ff52e618021f41e850f7bc19b libstdc++-v3/testsuite/25_algorithms/copy/constrained.cc 88c4528cea53c54b25e61640d60c4a0f libstdc++-v3/testsuite/25_algorithms/copy/debug/1_neg.cc 13b2ddea0038c1efaabdac86c47114a4 libstdc++-v3/testsuite/25_algorithms/copy/debug/2_neg.cc 760427e630997a8203a7268ee08a95d0 libstdc++-v3/testsuite/25_algorithms/copy/debug/95289.cc 500cd85e3f2b7bb8d5a19bab3fb05cd3 libstdc++-v3/testsuite/25_algorithms/copy/debug/99402.cc ! 4af1d64b7b67cfcaf88e49e3a2a7f2de libstdc++-v3/testsuite/25_algorithms/copy/debug/constexpr_neg.cc a4e3b919e921272cb082f7fa810f39d2 libstdc++-v3/testsuite/25_algorithms/copy/deque_iterators/1.cc e743ffe0642314b6d9ca04036acacacb libstdc++-v3/testsuite/25_algorithms/copy/deque_iterators/2.cc 9bf93afe07f5e4ca802a9a5a9ec49e00 libstdc++-v3/testsuite/25_algorithms/copy/deque_iterators/31.cc --- 103516,103527 ---- 37092a5d667f0f28b7e935968d25aae8 libstdc++-v3/testsuite/25_algorithms/copy/94013.cc 45915ce0a8f26f04668919afa3a1813b libstdc++-v3/testsuite/25_algorithms/copy/95578.cc 0c8ee5b6733184cae3f4d172c8c52482 libstdc++-v3/testsuite/25_algorithms/copy/constexpr.cc ! 44a89eac99ce0aa39d58b48bed7d32f0 libstdc++-v3/testsuite/25_algorithms/copy/constrained.cc 88c4528cea53c54b25e61640d60c4a0f libstdc++-v3/testsuite/25_algorithms/copy/debug/1_neg.cc 13b2ddea0038c1efaabdac86c47114a4 libstdc++-v3/testsuite/25_algorithms/copy/debug/2_neg.cc 760427e630997a8203a7268ee08a95d0 libstdc++-v3/testsuite/25_algorithms/copy/debug/95289.cc 500cd85e3f2b7bb8d5a19bab3fb05cd3 libstdc++-v3/testsuite/25_algorithms/copy/debug/99402.cc ! 86b98b6a498de08a49a03a314bca1d35 libstdc++-v3/testsuite/25_algorithms/copy/debug/constexpr_neg.cc a4e3b919e921272cb082f7fa810f39d2 libstdc++-v3/testsuite/25_algorithms/copy/deque_iterators/1.cc e743ffe0642314b6d9ca04036acacacb libstdc++-v3/testsuite/25_algorithms/copy/deque_iterators/2.cc 9bf93afe07f5e4ca802a9a5a9ec49e00 libstdc++-v3/testsuite/25_algorithms/copy/deque_iterators/31.cc *************** af28e7652522eda92f1bd96e7a54ddd0 libstd *** 103004,103010 **** 56e2a6805683f12a80025315e3c0a46b libstdc++-v3/testsuite/25_algorithms/copy_backward/debug/1_neg.cc c083aca0a57f538f8dcaea229aed51a0 libstdc++-v3/testsuite/25_algorithms/copy_backward/debug/2_neg.cc bf447c73ef970e539424adaeb3d41c1d libstdc++-v3/testsuite/25_algorithms/copy_backward/debug/3_neg.cc ! 3fe22fdce6cd9e61fe30b1094487c30a libstdc++-v3/testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc da1fb78d5a3cd469ddf537052865be96 libstdc++-v3/testsuite/25_algorithms/copy_backward/deque_iterators/1.cc 03b332c9e78417ec5e7c4e41342fc8de libstdc++-v3/testsuite/25_algorithms/copy_backward/deque_iterators/2.cc 2a4d24be8e48cecc6d72468cb39d8a27 libstdc++-v3/testsuite/25_algorithms/copy_backward/move_iterators/1.cc --- 103550,103556 ---- 56e2a6805683f12a80025315e3c0a46b libstdc++-v3/testsuite/25_algorithms/copy_backward/debug/1_neg.cc c083aca0a57f538f8dcaea229aed51a0 libstdc++-v3/testsuite/25_algorithms/copy_backward/debug/2_neg.cc bf447c73ef970e539424adaeb3d41c1d libstdc++-v3/testsuite/25_algorithms/copy_backward/debug/3_neg.cc ! d01ceb434e7cad2480a385f124333a25 libstdc++-v3/testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc da1fb78d5a3cd469ddf537052865be96 libstdc++-v3/testsuite/25_algorithms/copy_backward/deque_iterators/1.cc 03b332c9e78417ec5e7c4e41342fc8de libstdc++-v3/testsuite/25_algorithms/copy_backward/deque_iterators/2.cc 2a4d24be8e48cecc6d72468cb39d8a27 libstdc++-v3/testsuite/25_algorithms/copy_backward/move_iterators/1.cc *************** bab5d550cc7c5262d25e78341d6442bb libstd *** 103061,103067 **** e1a6cea037c01ec42b7d292e95c35490 libstdc++-v3/testsuite/25_algorithms/equal/debug/1_neg.cc 5b7f430a6ce4d843f465f8d1fbd74dec libstdc++-v3/testsuite/25_algorithms/equal/debug/2_neg.cc e0b4f42e708e4b9dedb62dbdf622b8e2 libstdc++-v3/testsuite/25_algorithms/equal/debug/3_neg.cc ! 9222c7bf70f53a39bda75d14f5edbb03 libstdc++-v3/testsuite/25_algorithms/equal/debug/constexpr_neg.cc 05b1de4284204b7162bf3b92b82acaa5 libstdc++-v3/testsuite/25_algorithms/equal/deque_iterators/1.cc ef0ed71ca0f466be1ed2af868761c94f libstdc++-v3/testsuite/25_algorithms/equal/no_operator_ne.cc 28b5c14c58649ea2599978f8225a71e7 libstdc++-v3/testsuite/25_algorithms/equal/requirements/explicit_instantiation/2.cc --- 103607,103613 ---- e1a6cea037c01ec42b7d292e95c35490 libstdc++-v3/testsuite/25_algorithms/equal/debug/1_neg.cc 5b7f430a6ce4d843f465f8d1fbd74dec libstdc++-v3/testsuite/25_algorithms/equal/debug/2_neg.cc e0b4f42e708e4b9dedb62dbdf622b8e2 libstdc++-v3/testsuite/25_algorithms/equal/debug/3_neg.cc ! b7f45fa25e8f49982f8c6c821d9f9c02 libstdc++-v3/testsuite/25_algorithms/equal/debug/constexpr_neg.cc 05b1de4284204b7162bf3b92b82acaa5 libstdc++-v3/testsuite/25_algorithms/equal/deque_iterators/1.cc ef0ed71ca0f466be1ed2af868761c94f libstdc++-v3/testsuite/25_algorithms/equal/no_operator_ne.cc 28b5c14c58649ea2599978f8225a71e7 libstdc++-v3/testsuite/25_algorithms/equal/requirements/explicit_instantiation/2.cc *************** adb0f161f5e50502f44a4844e0556ada libstd *** 103095,103101 **** bd12ad788a871ad7bc1200ce7ffffacf libstdc++-v3/testsuite/25_algorithms/fill_n/87982_neg.cc 9cae8e7b121b221dd9e14d658a7926e1 libstdc++-v3/testsuite/25_algorithms/fill_n/94017.cc 2ef4dd995a04a06ddca0078ed51e41ce libstdc++-v3/testsuite/25_algorithms/fill_n/constexpr.cc ! 05b49a226ef97f64bc4b6978f1caf079 libstdc++-v3/testsuite/25_algorithms/fill_n/constrained.cc 7201a12995c263954600ba2f946368fc libstdc++-v3/testsuite/25_algorithms/fill_n/debug/1_neg.cc c9442a86b817319cac8273413c0db9e6 libstdc++-v3/testsuite/25_algorithms/fill_n/debug/2_neg.cc 5d9cba9d7d7047d6049ed17de055f446 libstdc++-v3/testsuite/25_algorithms/fill_n/debug/3_neg.cc --- 103641,103647 ---- bd12ad788a871ad7bc1200ce7ffffacf libstdc++-v3/testsuite/25_algorithms/fill_n/87982_neg.cc 9cae8e7b121b221dd9e14d658a7926e1 libstdc++-v3/testsuite/25_algorithms/fill_n/94017.cc 2ef4dd995a04a06ddca0078ed51e41ce libstdc++-v3/testsuite/25_algorithms/fill_n/constexpr.cc ! b4c841df5d024b63eea610c37d62e9dc libstdc++-v3/testsuite/25_algorithms/fill_n/constrained.cc 7201a12995c263954600ba2f946368fc libstdc++-v3/testsuite/25_algorithms/fill_n/debug/1_neg.cc c9442a86b817319cac8273413c0db9e6 libstdc++-v3/testsuite/25_algorithms/fill_n/debug/2_neg.cc 5d9cba9d7d7047d6049ed17de055f446 libstdc++-v3/testsuite/25_algorithms/fill_n/debug/3_neg.cc *************** df92f1850791a4b570bc0caf81b14dc0 libstd *** 103207,103213 **** 8b118095e31c63a13ec30f202389ed2f libstdc++-v3/testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/2.cc 6506c41f3ae28d97c1fc7d9b2cdc001b libstdc++-v3/testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/pod.cc f5bb5f715db38a2f535c7afc9df34ed8 libstdc++-v3/testsuite/25_algorithms/is_permutation/1.cc ! 83acce24faa7ff03104569cffea59523 libstdc++-v3/testsuite/25_algorithms/is_permutation/2.cc 3e3b1d3a41e2a78ad719c161460c5037 libstdc++-v3/testsuite/25_algorithms/is_permutation/64646.cc 531ba80c472bd96de3ba4d54728eaaaa libstdc++-v3/testsuite/25_algorithms/is_permutation/check_type.cc d4eb6bf76f91ff3174a4d69816cd866d libstdc++-v3/testsuite/25_algorithms/is_permutation/check_type2.cc --- 103753,103759 ---- 8b118095e31c63a13ec30f202389ed2f libstdc++-v3/testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/2.cc 6506c41f3ae28d97c1fc7d9b2cdc001b libstdc++-v3/testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/pod.cc f5bb5f715db38a2f535c7afc9df34ed8 libstdc++-v3/testsuite/25_algorithms/is_permutation/1.cc ! 4125f0168bb803df302c4adeb0483723 libstdc++-v3/testsuite/25_algorithms/is_permutation/2.cc 3e3b1d3a41e2a78ad719c161460c5037 libstdc++-v3/testsuite/25_algorithms/is_permutation/64646.cc 531ba80c472bd96de3ba4d54728eaaaa libstdc++-v3/testsuite/25_algorithms/is_permutation/check_type.cc d4eb6bf76f91ff3174a4d69816cd866d libstdc++-v3/testsuite/25_algorithms/is_permutation/check_type2.cc *************** f427f9830493e633c3f13019712b70f1 libstd *** 103238,103244 **** 126e9692de96cfe9c31afe48af868580 libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/check_type.cc 4819aa98066d478fce0ec878d586112a libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/constexpr.cc 5177aa792b200226e0caa89c78cc3851 libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/constrained.cc ! 393fb8a9ea97b80de6e74135677da0a5 libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/deque_iterators/1.cc 3b19786189f36f21b08bda28d4c855c8 libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/requirements/explicit_instantiation/2.cc c49a93ba5f42ad7385af4b2d1ff4ba82 libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/requirements/explicit_instantiation/pod.cc 640fc753c0c48c0dd3d8a547f2c2087c libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/uchar.cc --- 103784,103790 ---- 126e9692de96cfe9c31afe48af868580 libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/check_type.cc 4819aa98066d478fce0ec878d586112a libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/constexpr.cc 5177aa792b200226e0caa89c78cc3851 libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/constrained.cc ! 1a1a9a14d1238c80283819a69fce6d91 libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/deque_iterators/1.cc 3b19786189f36f21b08bda28d4c855c8 libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/requirements/explicit_instantiation/2.cc c49a93ba5f42ad7385af4b2d1ff4ba82 libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/requirements/explicit_instantiation/pod.cc 640fc753c0c48c0dd3d8a547f2c2087c libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/uchar.cc *************** a70a0c54e03727302f807b7f88e0601a libstd *** 103250,103258 **** ef1832bb3742a1b2baf2dedb09fd4db9 libstdc++-v3/testsuite/25_algorithms/lower_bound/check_type.cc 2017a6634921053f0fdaf3bf3ecaa14c libstdc++-v3/testsuite/25_algorithms/lower_bound/constexpr.cc 66fe5267a4b3627599610922d8d38f2e libstdc++-v3/testsuite/25_algorithms/lower_bound/constrained.cc ! 869372379a8acf20d6eed604f1e6fca4 libstdc++-v3/testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc ! d0500f88b71c47b7caca5f6a7bfb0459 libstdc++-v3/testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc ! 8c2e643e06646bb0fbc0b5747d0498a5 libstdc++-v3/testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc 422e3fac25c6b0491659d070dbdd2ba5 libstdc++-v3/testsuite/25_algorithms/lower_bound/debug/irreflexive.cc d397292596b3ba88558d12f1310c26a3 libstdc++-v3/testsuite/25_algorithms/lower_bound/debug/partitioned_neg.cc 9a50f0858fbee8c3e04175b275baac1a libstdc++-v3/testsuite/25_algorithms/lower_bound/debug/partitioned_pred_neg.cc --- 103796,103804 ---- ef1832bb3742a1b2baf2dedb09fd4db9 libstdc++-v3/testsuite/25_algorithms/lower_bound/check_type.cc 2017a6634921053f0fdaf3bf3ecaa14c libstdc++-v3/testsuite/25_algorithms/lower_bound/constexpr.cc 66fe5267a4b3627599610922d8d38f2e libstdc++-v3/testsuite/25_algorithms/lower_bound/constrained.cc ! 0f94d514da809355db8e496ef2d4ca35 libstdc++-v3/testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc ! 71a18d62448f75ca376a6a2bd0e7da09 libstdc++-v3/testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc ! 60055748c1534b9f6e1066160eb0c64e libstdc++-v3/testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc 422e3fac25c6b0491659d070dbdd2ba5 libstdc++-v3/testsuite/25_algorithms/lower_bound/debug/irreflexive.cc d397292596b3ba88558d12f1310c26a3 libstdc++-v3/testsuite/25_algorithms/lower_bound/debug/partitioned_neg.cc 9a50f0858fbee8c3e04175b275baac1a libstdc++-v3/testsuite/25_algorithms/lower_bound/debug/partitioned_pred_neg.cc *************** fe2d7d571db188f036d9f737a42d9631 libstd *** 103334,103340 **** 138597d597be1c7bb6bf760221951b1c libstdc++-v3/testsuite/25_algorithms/move/93872.cc c481e5e926bd5482086f725fee988614 libstdc++-v3/testsuite/25_algorithms/move/94013.cc 7f4c47f2585231deb19c22a359d2abd4 libstdc++-v3/testsuite/25_algorithms/move/95578.cc ! 4220d5c7ced38d9efd845d81407426e3 libstdc++-v3/testsuite/25_algorithms/move/constrained.cc c41fedc68e3cee79d652221a1c6b2c9a libstdc++-v3/testsuite/25_algorithms/move/deque_iterators/1.cc 7f90edf77fe9772f53a72430e8d69939 libstdc++-v3/testsuite/25_algorithms/move/deque_iterators/2.cc a11b8b4d9f3bd35a40fe63156a9ae025 libstdc++-v3/testsuite/25_algorithms/move/requirements/explicit_instantiation/2.cc --- 103880,103887 ---- 138597d597be1c7bb6bf760221951b1c libstdc++-v3/testsuite/25_algorithms/move/93872.cc c481e5e926bd5482086f725fee988614 libstdc++-v3/testsuite/25_algorithms/move/94013.cc 7f4c47f2585231deb19c22a359d2abd4 libstdc++-v3/testsuite/25_algorithms/move/95578.cc ! 5d57a7c1d0519d60477b53cdbcb8e7bb libstdc++-v3/testsuite/25_algorithms/move/constexpr.cc ! 51a03c07bbcbb89a9cf9412a4b64ce26 libstdc++-v3/testsuite/25_algorithms/move/constrained.cc c41fedc68e3cee79d652221a1c6b2c9a libstdc++-v3/testsuite/25_algorithms/move/deque_iterators/1.cc 7f90edf77fe9772f53a72430e8d69939 libstdc++-v3/testsuite/25_algorithms/move/deque_iterators/2.cc a11b8b4d9f3bd35a40fe63156a9ae025 libstdc++-v3/testsuite/25_algorithms/move/requirements/explicit_instantiation/2.cc *************** f2593a79f9ad68a359c294c8ddf8ccac libstd *** 103424,103479 **** 763c54dc488002f634bfeb55d377f2c3 libstdc++-v3/testsuite/25_algorithms/prev_permutation/moveable.cc 1dd951077f872d0750c05a1cc46e68e7 libstdc++-v3/testsuite/25_algorithms/prev_permutation/requirements/explicit_instantiation/2.cc 74ec3ac84be3c5d600a5d33c608f440d libstdc++-v3/testsuite/25_algorithms/prev_permutation/requirements/explicit_instantiation/pod.cc ! 9507e6761cbe1b19108bb4074aeb7111 libstdc++-v3/testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc ! 3ff0fe6de779194069dbf62a9f1f2572 libstdc++-v3/testsuite/25_algorithms/pstl/alg_merge/merge.cc ! 27cc180a52d2f048e08b507fdb1f20a5 libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/copy_if.cc ! 6beeee12cfca6ce05dcbdaba1d0dc26f libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/copy_move.cc ! ef08d13df9e0e8309520fc1c236a327c libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/fill.cc ! 2049d5d37412943d912974178665ecb0 libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/generate.cc ! ff39ca7124e540d44776bfd48c81097b libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/is_partitioned.cc ! c961b64e5966a5c3d9b09390fc0edcde libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/partition.cc ! 84174c75b73764ecb0bbf4b704185be1 libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/partition_copy.cc ! c9b1e99425eb9b46ee543a820827bad3 libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/remove.cc ! 705db0a9872186e9b3a7d4d7a6e25791 libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/remove_copy.cc ! 91179ed4ebcd1a88c988e101da310e57 libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/replace.cc ! d6cc1f3ce319b7dd3ff816cd1e294e21 libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/replace_copy.cc ! 8ec1663730de88f54560a045992b9d83 libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/rotate.cc ! e2f90644a013275a2ba2428bc4b9b8e2 libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc ! d910f38b139eb31762a92b2dd24dc190 libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/swap_ranges.cc ! 732a42ceb30e7cd0dae9d0827e166b7a libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc ! 32bd33e305b35364d63bea91e74501e5 libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/transform_unary.cc ! ec563935619b2d0c2ed867a423f09825 libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/unique.cc ! f994447bdffd584b2c453cbeadfd6492 libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/unique_copy_equal.cc ! 08eb0eb8970b2b641efd8c336fda7dfd libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/adjacent_find.cc ! 46de621f23f23e42bbc39aa33c24d045 libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/all_of.cc ! 42ef6995ac8b7cd9ae2fdb6b23e5224e libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/any_of.cc ! a12f2539d64321ace0905bb42b745742 libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/count.cc ! 5f2014021e7a378c1191b118b5e8d92c libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/equal.cc ! 762f5ddb0cdafd7163e70ecfd88c564d libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/find.cc ! 017c50998a8de60956f8204334ec3979 libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc ! 69ee6450eeede1bab6bdcc8664313e75 libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/find_first_of.cc ! 9062c0b35c6d7e0c3fbd7b53aeefddb1 libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/find_if.cc ! 002a9bfe215cbb931097fadd71142994 libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/for_each.cc ! bd72806414b02b1359330614125bae29 libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc ! fa7ad7a46e98a45177585bb9b77ae351 libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/none_of.cc ! b543282c687860e73424136fd983b6ef libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc ! 77b265a1a54f9ca395ddbcf277d5ec29 libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/reverse.cc ! 222c9aa7b9005d4e2bd0b276bb350d86 libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/reverse_copy.cc ! 0cb8382224acca2553548885809d9fa4 libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc ! d72b3a7d6fb9b81cb5eb56c796487b03 libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/includes.cc ! 74f1e3b1ae270f9fc99eabb02c191a8f libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/is_heap.cc ! 7514c3ea7fe276789038a5f911b9532f libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/is_sorted.cc ! b1fa610e8e12092f8638f22f76b023a0 libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc ! 5c50f95d87944a37183b2c7ecc4e2612 libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc ! d57e1b9e03e1fd3c99ccf3ec1f01ec49 libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc ! d6d559be9f6774bb97bb38f5b0e7d514 libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/partial_sort_copy.cc ! c5282b66e31b44dff3b36b8a330d35ab libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/set.cc ! ed8339e25eab803fcd030cfbe1d83ca7 libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/sort.cc ! 48b298044ab79b33e8443152ffd61844 libstdc++-v3/testsuite/25_algorithms/pstl/feature_test-2.cc ! 8bffcf123d51786d10a741c6e9466fa7 libstdc++-v3/testsuite/25_algorithms/pstl/feature_test-3.cc 8ee67e09fa83ea50798785892f730201 libstdc++-v3/testsuite/25_algorithms/pstl/feature_test-4.cc ! 630355f6cd722b8abebe7a56ba80ca07 libstdc++-v3/testsuite/25_algorithms/pstl/feature_test-5.cc ! b6ee94a40082198e15e50dd388c31f37 libstdc++-v3/testsuite/25_algorithms/pstl/feature_test.cc aa2cf638123b45579f850ffcdb743434 libstdc++-v3/testsuite/25_algorithms/push_heap/complexity.cc e382c0a0b5541ec705fe24da12501806 libstdc++-v3/testsuite/25_algorithms/push_heap/constexpr.cc f9aa74af106760820e52e05e99f34142 libstdc++-v3/testsuite/25_algorithms/push_heap/requirements/explicit_instantiation/2.cc --- 103971,104026 ---- 763c54dc488002f634bfeb55d377f2c3 libstdc++-v3/testsuite/25_algorithms/prev_permutation/moveable.cc 1dd951077f872d0750c05a1cc46e68e7 libstdc++-v3/testsuite/25_algorithms/prev_permutation/requirements/explicit_instantiation/2.cc 74ec3ac84be3c5d600a5d33c608f440d libstdc++-v3/testsuite/25_algorithms/prev_permutation/requirements/explicit_instantiation/pod.cc ! 98051b5d40a1c205d048db33e038c794 libstdc++-v3/testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc ! f73cdaa5ddf9a31b66aeb2163e20a984 libstdc++-v3/testsuite/25_algorithms/pstl/alg_merge/merge.cc ! 905d47f4c72eacaf53a95bd14da1a0be libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/copy_if.cc ! de6733161b96924b032f36e5fd3bafca libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/copy_move.cc ! dd00e3cee749ed68184c780fdb1e73a8 libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/fill.cc ! 41d09d9aaa009c73e42df8e6ca553602 libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/generate.cc ! f49b06e85969100a80f24fe149de9d3c libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/is_partitioned.cc ! 6afcdd7045292ea110fe08635679d292 libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/partition.cc ! 5797831709e8370f95978daff814f751 libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/partition_copy.cc ! 93bc05a06970a2a02947526ba7f29f22 libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/remove.cc ! 14b92ee3f0edf89382fe1c286545804a libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/remove_copy.cc ! 18cd5589e23bb68c32000f8f58fe2352 libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/replace.cc ! 619076120f4d77ff0eaf986a02da66ff libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/replace_copy.cc ! c3ef2f5d78b2239109164649b50716d7 libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/rotate.cc ! 1cd73dca70c0fa394a5a60037fbcc0ae libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc ! 764680e34e15f0fa29e878ac33e8cacb libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/swap_ranges.cc ! c3dd84d497fa55423fbcc3b0ca9c9909 libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc ! e0efc41fbd11aa85c9a41de9ac636460 libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/transform_unary.cc ! ab19f00d24b45ab612dd0b28ac9c31fd libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/unique.cc ! 2dd310f8c86fdb4a9b3db33a24a3bec3 libstdc++-v3/testsuite/25_algorithms/pstl/alg_modifying_operations/unique_copy_equal.cc ! 711799f3b98e9cfd17c49906b84e47a1 libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/adjacent_find.cc ! fb40d584fae0b95e68f35a90401dc5bc libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/all_of.cc ! 7593ab1ae2b827aad3df4255ec0585ef libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/any_of.cc ! 9212666d1f61eeeb80cf93aea6423e4e libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/count.cc ! c7aa2c50de390d95da8328c174fd4eb3 libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/equal.cc ! 5e8e1171c16649130148ef24b1499a28 libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/find.cc ! 45863cfbe93fbefc658404d3177af81e libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc ! 3b90d49d2edea87c00da94415b426179 libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/find_first_of.cc ! c289fed14949aba6abe56657f5bcee68 libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/find_if.cc ! c6588f5c2a6dfd6b3b7acb51d7d91582 libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/for_each.cc ! 3fbc34cbc4f2deb628352897f1728e4f libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc ! c3d65ac451c539f1ba3fc7c581fd0663 libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/none_of.cc ! 81b3edd6a586f1a1362d3fdaced07c76 libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc ! f02afddd5730917df2126ffa6da8e740 libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/reverse.cc ! a4ec54c4cd6ad6d1d9231a758b100f3e libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/reverse_copy.cc ! bc513c8e9b5b572408d34f88c684678d libstdc++-v3/testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc ! 615fa97ccfbbaa072ae25b0a41731568 libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/includes.cc ! 30388efe1b0d60dcf2ee790aa6ed20bc libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/is_heap.cc ! f7c62c3adecc435bbbd2387a4256cb3c libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/is_sorted.cc ! e8a28933f94feb234a7be6f388ef0c8d libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc ! ec07921cf1d219cc2dc3de14726143af libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc ! 743a8136655e046f85c0383ddd4c3799 libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc ! e2baf706b6b8f858b41c7d0a9e5b08a9 libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/partial_sort_copy.cc ! 8af38b36f1e40e204ae2c21c405731a9 libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/set.cc ! f0ac087e7a77dd84d45a6199d1b9a455 libstdc++-v3/testsuite/25_algorithms/pstl/alg_sorting/sort.cc ! 2de85da23b00eb43bba1ca1fe8faab7d libstdc++-v3/testsuite/25_algorithms/pstl/feature_test-2.cc ! 698a4c3d4abae44b739e8860779cc345 libstdc++-v3/testsuite/25_algorithms/pstl/feature_test-3.cc 8ee67e09fa83ea50798785892f730201 libstdc++-v3/testsuite/25_algorithms/pstl/feature_test-4.cc ! 5de51d4614d9ef6650b8686b0007b6f6 libstdc++-v3/testsuite/25_algorithms/pstl/feature_test-5.cc ! 55a8256d8066b59477de25dced29f579 libstdc++-v3/testsuite/25_algorithms/pstl/feature_test.cc aa2cf638123b45579f850ffcdb743434 libstdc++-v3/testsuite/25_algorithms/push_heap/complexity.cc e382c0a0b5541ec705fe24da12501806 libstdc++-v3/testsuite/25_algorithms/push_heap/constexpr.cc f9aa74af106760820e52e05e99f34142 libstdc++-v3/testsuite/25_algorithms/push_heap/requirements/explicit_instantiation/2.cc *************** e85db6e1b9ba7ee762003c8e94210e7b libstd *** 103683,103691 **** d7bdfcbb7fb9422ba118c56646532402 libstdc++-v3/testsuite/25_algorithms/upper_bound/check_type.cc ce924d1376d30067305244b55908cada libstdc++-v3/testsuite/25_algorithms/upper_bound/constexpr.cc 25cb4b21256439a1f9f69f1035d2afe3 libstdc++-v3/testsuite/25_algorithms/upper_bound/constrained.cc ! 1f2a32b941b742042b89ed135b6d5ba2 libstdc++-v3/testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc ! 0db1a7276043d024954c03faabf53f9b libstdc++-v3/testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc ! be9242e729b3363822a5b913efa35f61 libstdc++-v3/testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc 9bdcc5ca358bf6b76376000dd224451e libstdc++-v3/testsuite/25_algorithms/upper_bound/debug/partitioned_neg.cc 2d58a1a83f3d1c156c665e5f1d2a6e10 libstdc++-v3/testsuite/25_algorithms/upper_bound/debug/partitioned_pred_neg.cc 67a099578623b3f176c14e74c8e7a4e2 libstdc++-v3/testsuite/25_algorithms/upper_bound/partitioned.cc --- 104230,104238 ---- d7bdfcbb7fb9422ba118c56646532402 libstdc++-v3/testsuite/25_algorithms/upper_bound/check_type.cc ce924d1376d30067305244b55908cada libstdc++-v3/testsuite/25_algorithms/upper_bound/constexpr.cc 25cb4b21256439a1f9f69f1035d2afe3 libstdc++-v3/testsuite/25_algorithms/upper_bound/constrained.cc ! 23d2107962b5ebd66a3b6f64f336d0c4 libstdc++-v3/testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc ! 55b79544e139fd683e6fe5e351bd41bc libstdc++-v3/testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc ! cdecd6e18b7a373b57e835dce5058c49 libstdc++-v3/testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc 9bdcc5ca358bf6b76376000dd224451e libstdc++-v3/testsuite/25_algorithms/upper_bound/debug/partitioned_neg.cc 2d58a1a83f3d1c156c665e5f1d2a6e10 libstdc++-v3/testsuite/25_algorithms/upper_bound/debug/partitioned_pred_neg.cc 67a099578623b3f176c14e74c8e7a4e2 libstdc++-v3/testsuite/25_algorithms/upper_bound/partitioned.cc *************** d200b438cd4449a09f9c02216d78484b libstd *** 103702,103707 **** --- 104249,104255 ---- 11003c01e27377b73f31127d8c1f91c2 libstdc++-v3/testsuite/26_numerics/adjacent_difference/lwg2055.cc 10fb53473b1eeeb631daa9cc8ce75c65 libstdc++-v3/testsuite/26_numerics/adjacent_difference/requirements/explicit_instantiation/2.cc 4b1e392a30b9eedc03d724df3ea1406a libstdc++-v3/testsuite/26_numerics/adjacent_difference/requirements/explicit_instantiation/pod.cc + 874b969b1c6b476310e9a3d96f5b948c libstdc++-v3/testsuite/26_numerics/bit/bit.cast/105027.cc c3daf66505f49b366e5a847ad6209e69 libstdc++-v3/testsuite/26_numerics/bit/bit.cast/bit_cast.cc e422aeec9141fb37d000e3c098fa5e49 libstdc++-v3/testsuite/26_numerics/bit/bit.cast/version.cc 98b086bb90a37bda0608b0683df69f67 libstdc++-v3/testsuite/26_numerics/bit/bit.count/countl_one.cc *************** ca515eec6dcf95e4063fb3ab64a94bc5 libstd *** 103835,103841 **** 78bc2f6a8af17b9da892c5cf84774e13 libstdc++-v3/testsuite/26_numerics/lcm/1.cc cc14972137ac3671e8a0b1bb4ba78a70 libstdc++-v3/testsuite/26_numerics/lcm/92978.cc d7f23f3da9d988332eb5ecfedb0fbc50 libstdc++-v3/testsuite/26_numerics/lcm/lcm_neg.cc ! 7bed10ce7f1644a8746230d5d1b477e5 libstdc++-v3/testsuite/26_numerics/lerp.cc 5c3cb58399e2e5694d833ea872daa960 libstdc++-v3/testsuite/26_numerics/midpoint/floating.cc 613c27e02a60ed80a5000411bf309e88 libstdc++-v3/testsuite/26_numerics/midpoint/integral.cc 20db8d956c35f7266748984112c6968b libstdc++-v3/testsuite/26_numerics/midpoint/pointer.cc --- 104383,104391 ---- 78bc2f6a8af17b9da892c5cf84774e13 libstdc++-v3/testsuite/26_numerics/lcm/1.cc cc14972137ac3671e8a0b1bb4ba78a70 libstdc++-v3/testsuite/26_numerics/lcm/92978.cc d7f23f3da9d988332eb5ecfedb0fbc50 libstdc++-v3/testsuite/26_numerics/lcm/lcm_neg.cc ! 7bed10ce7f1644a8746230d5d1b477e5 libstdc++-v3/testsuite/26_numerics/lerp/1.cc ! f9ae973e3d6f85f4c35471e62402ba98 libstdc++-v3/testsuite/26_numerics/lerp/constexpr.cc ! 198cb21048f5d36f6a9bf84a5b2dd536 libstdc++-v3/testsuite/26_numerics/lerp/version.cc 5c3cb58399e2e5694d833ea872daa960 libstdc++-v3/testsuite/26_numerics/midpoint/floating.cc 613c27e02a60ed80a5000411bf309e88 libstdc++-v3/testsuite/26_numerics/midpoint/integral.cc 20db8d956c35f7266748984112c6968b libstdc++-v3/testsuite/26_numerics/midpoint/pointer.cc *************** c41e31fa25de02510bfd8fd93f0d96f3 libstd *** 103850,103860 **** a474b8b76d8f487b682b02fbbda0492b libstdc++-v3/testsuite/26_numerics/partial_sum/lwg2055.cc e347465faccc2aedaaf7f520f2606d93 libstdc++-v3/testsuite/26_numerics/partial_sum/requirements/explicit_instantiation/2.cc 5232a4d6f2b3c02549f99586a246bfa7 libstdc++-v3/testsuite/26_numerics/partial_sum/requirements/explicit_instantiation/pod.cc ! d16b16604c71001aec190b3328ca3cd3 libstdc++-v3/testsuite/26_numerics/pstl/numeric_ops/adjacent_difference.cc ! d86b64cb653deff7bffbb9cc16c2de7c libstdc++-v3/testsuite/26_numerics/pstl/numeric_ops/reduce.cc ! b887eec66dc34e04025e6a8a57c0a8ce libstdc++-v3/testsuite/26_numerics/pstl/numeric_ops/scan.cc ! 36d1cf882dac137890bc015bc17507e6 libstdc++-v3/testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc ! 3e80d161e9577748e245f08c0c108331 libstdc++-v3/testsuite/26_numerics/pstl/numeric_ops/transform_scan.cc 77f6edf00856a1dc730f644f41ce6eab libstdc++-v3/testsuite/26_numerics/random/bernoulli_distribution/cons/default.cc d61ad2a2a944506993b462d4ae5ba95b libstdc++-v3/testsuite/26_numerics/random/bernoulli_distribution/cons/parms.cc eac34fcead0bbe6e2e5bd2f31a187624 libstdc++-v3/testsuite/26_numerics/random/bernoulli_distribution/operators/equal.cc --- 104400,104410 ---- a474b8b76d8f487b682b02fbbda0492b libstdc++-v3/testsuite/26_numerics/partial_sum/lwg2055.cc e347465faccc2aedaaf7f520f2606d93 libstdc++-v3/testsuite/26_numerics/partial_sum/requirements/explicit_instantiation/2.cc 5232a4d6f2b3c02549f99586a246bfa7 libstdc++-v3/testsuite/26_numerics/partial_sum/requirements/explicit_instantiation/pod.cc ! 862f4f439e8707b32a42b5fe736946a5 libstdc++-v3/testsuite/26_numerics/pstl/numeric_ops/adjacent_difference.cc ! 0553df89726830b7195d3dc76149d7b4 libstdc++-v3/testsuite/26_numerics/pstl/numeric_ops/reduce.cc ! e7d03e915035104e8c34f0e1a253cea1 libstdc++-v3/testsuite/26_numerics/pstl/numeric_ops/scan.cc ! 371296694e234040b308e95ba965691b libstdc++-v3/testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc ! 37a9d3638006b842a59994327880b85f libstdc++-v3/testsuite/26_numerics/pstl/numeric_ops/transform_scan.cc 77f6edf00856a1dc730f644f41ce6eab libstdc++-v3/testsuite/26_numerics/random/bernoulli_distribution/cons/default.cc d61ad2a2a944506993b462d4ae5ba95b libstdc++-v3/testsuite/26_numerics/random/bernoulli_distribution/cons/parms.cc eac34fcead0bbe6e2e5bd2f31a187624 libstdc++-v3/testsuite/26_numerics/random/bernoulli_distribution/operators/equal.cc *************** c83afb389bf08e6076fd3222982628db libstd *** 104054,104065 **** 798a0ede1822385c5b3d02112b7d4ea9 libstdc++-v3/testsuite/26_numerics/random/poisson_distribution/operators/values.cc 83745b677a502ede915e5d886ff56b68 libstdc++-v3/testsuite/26_numerics/random/poisson_distribution/requirements/explicit_instantiation/1.cc 39e65e9ba15daa128aa1ed83e355378b libstdc++-v3/testsuite/26_numerics/random/poisson_distribution/requirements/typedefs.cc ! 817ced57426b53b40d2af74923781990 libstdc++-v3/testsuite/26_numerics/random/pr60037-neg.cc 519076377db3532f5bb289e94d2b23f7 libstdc++-v3/testsuite/26_numerics/random/random_device/85494.cc 53f613d53dec98c0c3ea1b2c9bd23852 libstdc++-v3/testsuite/26_numerics/random/random_device/94087.cc 7617cf48983eaf0feeb5a976604fb817 libstdc++-v3/testsuite/26_numerics/random/random_device/cons/default-cow.cc 03dca1060007c62010df244ad646d221 libstdc++-v3/testsuite/26_numerics/random/random_device/cons/default.cc ! d11b485bf72887083a4c732d1cae2ee1 libstdc++-v3/testsuite/26_numerics/random/random_device/cons/token.cc bdddbfad7bb717d0033a77400e031afb libstdc++-v3/testsuite/26_numerics/random/random_device/requirements/typedefs.cc 9a99d76cf9b6ecbdb9689c72bf82d014 libstdc++-v3/testsuite/26_numerics/random/ranlux24.cc 07eacaf424acf875471501c88c953d1e libstdc++-v3/testsuite/26_numerics/random/ranlux24_base.cc --- 104604,104615 ---- 798a0ede1822385c5b3d02112b7d4ea9 libstdc++-v3/testsuite/26_numerics/random/poisson_distribution/operators/values.cc 83745b677a502ede915e5d886ff56b68 libstdc++-v3/testsuite/26_numerics/random/poisson_distribution/requirements/explicit_instantiation/1.cc 39e65e9ba15daa128aa1ed83e355378b libstdc++-v3/testsuite/26_numerics/random/poisson_distribution/requirements/typedefs.cc ! e9b308d0c17e1980aba53c60f785ed6c libstdc++-v3/testsuite/26_numerics/random/pr60037-neg.cc 519076377db3532f5bb289e94d2b23f7 libstdc++-v3/testsuite/26_numerics/random/random_device/85494.cc 53f613d53dec98c0c3ea1b2c9bd23852 libstdc++-v3/testsuite/26_numerics/random/random_device/94087.cc 7617cf48983eaf0feeb5a976604fb817 libstdc++-v3/testsuite/26_numerics/random/random_device/cons/default-cow.cc 03dca1060007c62010df244ad646d221 libstdc++-v3/testsuite/26_numerics/random/random_device/cons/default.cc ! 9dde61b3add0487e92df91243de2e27c libstdc++-v3/testsuite/26_numerics/random/random_device/cons/token.cc bdddbfad7bb717d0033a77400e031afb libstdc++-v3/testsuite/26_numerics/random/random_device/requirements/typedefs.cc 9a99d76cf9b6ecbdb9689c72bf82d014 libstdc++-v3/testsuite/26_numerics/random/ranlux24.cc 07eacaf424acf875471501c88c953d1e libstdc++-v3/testsuite/26_numerics/random/ranlux24_base.cc *************** b9754b9aedfdb7aae949f8efdcb72f3d libstd *** 104067,104075 **** dcbca3424cbe201b87c4585a4bc1418b libstdc++-v3/testsuite/26_numerics/random/ranlux48_base.cc 0840114b85d9cd8e27fcaf3455a35e34 libstdc++-v3/testsuite/26_numerics/random/seed_seq/97311.cc b133b39d9342b4d84ee1e918eb58b9e7 libstdc++-v3/testsuite/26_numerics/random/seed_seq/cons/65631.cc ! 3e7ebb9cca2e22c554a2d73fec5e1795 libstdc++-v3/testsuite/26_numerics/random/seed_seq/cons/default.cc ! 6eba8c2641b3e0fb0806a1285240b3d6 libstdc++-v3/testsuite/26_numerics/random/seed_seq/cons/initlist.cc ! 0b3792088ca2135f6a236be074b58c45 libstdc++-v3/testsuite/26_numerics/random/seed_seq/cons/range.cc 9794b3c48fa11d56acba14c5c58dfc07 libstdc++-v3/testsuite/26_numerics/random/seed_seq/requirements/typedefs.cc cb6a7aac1a61e1650565a6ee78875b84 libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/cons/55215.cc f3495e4bc642cabd196b63c7b64dea95 libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/cons/base_copy.cc --- 104617,104625 ---- dcbca3424cbe201b87c4585a4bc1418b libstdc++-v3/testsuite/26_numerics/random/ranlux48_base.cc 0840114b85d9cd8e27fcaf3455a35e34 libstdc++-v3/testsuite/26_numerics/random/seed_seq/97311.cc b133b39d9342b4d84ee1e918eb58b9e7 libstdc++-v3/testsuite/26_numerics/random/seed_seq/cons/65631.cc ! c0a430584e59ee39ab8bf1641b537067 libstdc++-v3/testsuite/26_numerics/random/seed_seq/cons/default.cc ! 1e9c333a2e4700de3464cb3c3159e484 libstdc++-v3/testsuite/26_numerics/random/seed_seq/cons/initlist.cc ! c92cc9963ef8ae1f3b5b6a171feafc97 libstdc++-v3/testsuite/26_numerics/random/seed_seq/cons/range.cc 9794b3c48fa11d56acba14c5c58dfc07 libstdc++-v3/testsuite/26_numerics/random/seed_seq/requirements/typedefs.cc cb6a7aac1a61e1650565a6ee78875b84 libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/cons/55215.cc f3495e4bc642cabd196b63c7b64dea95 libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/cons/base_copy.cc *************** cad9cf3bd9be2c908812d01c7ac899ba libstd *** 104146,104151 **** --- 104696,104702 ---- 77ae80b6ca89bbb01ec55713b0dfd1ef libstdc++-v3/testsuite/26_numerics/transform_inclusive_scan/constexpr.cc b261cf9e2877b1ce095acf434714ce68 libstdc++-v3/testsuite/26_numerics/transform_reduce/1.cc e64b7ea27aa7d7003509f9a5058d7756 libstdc++-v3/testsuite/26_numerics/transform_reduce/constexpr.cc + 525e5798867d708e7cc13551760f93c8 libstdc++-v3/testsuite/26_numerics/valarray/103022.cc 17472e54bed8a869a86d354d386261f1 libstdc++-v3/testsuite/26_numerics/valarray/27867.cc 6be43ef40afef800eec38a9c0d3af475 libstdc++-v3/testsuite/26_numerics/valarray/28277.cc 629302ab3718b1667cf68b2e2c03a543 libstdc++-v3/testsuite/26_numerics/valarray/30416.cc *************** e5ac2e92f512687e223255a8e1b59fa8 libstd *** 104162,104182 **** b639c93bc396efa0fd79057074fdbb3d libstdc++-v3/testsuite/26_numerics/valarray/dr543.cc cf9a799688883d244898f9c13781775d libstdc++-v3/testsuite/26_numerics/valarray/dr630-1.cc 2b7e67d87fc63933b3d6ae173e4a486a libstdc++-v3/testsuite/26_numerics/valarray/dr630-2.cc ! 177b1d8aadf00d2f5d7bfb87d2c96974 libstdc++-v3/testsuite/26_numerics/valarray/dr630-3.C cf93a6f65dd73b94bca78c5df440e9a4 libstdc++-v3/testsuite/26_numerics/valarray/init-list.cc f80244f8a99bbd30ee594052b1fcf705 libstdc++-v3/testsuite/26_numerics/valarray/moveable.cc 102dd42132d7f38a398f582933a20a68 libstdc++-v3/testsuite/26_numerics/valarray/name_lookup.cc f260f33a5cce7ab2c2c2ae71dc585cd6 libstdc++-v3/testsuite/26_numerics/valarray/noexcept_move_construct.cc 690fef110beb729488b0ce769e3e857f libstdc++-v3/testsuite/26_numerics/valarray/operators.cc ! 17808ea0ea0f4112ec6e48dea6908cb1 libstdc++-v3/testsuite/26_numerics/valarray/range_access.cc ! a42fc9f551fe46b39f9fd5058a4daff9 libstdc++-v3/testsuite/26_numerics/valarray/range_access2.cc 2c64a69255dbefcf3ef9f0b0dee7993a libstdc++-v3/testsuite/26_numerics/valarray/requirements/explicit_instantiation.cc afb64b9faf6284dbc183031aa5e9f607 libstdc++-v3/testsuite/26_numerics/valarray/requirements/typedefs.cc d70f03fd601d2ae2cb8f58be9b54f030 libstdc++-v3/testsuite/26_numerics/valarray/subset_assignment.cc 911203830444a1ebf01100d8269b1515 libstdc++-v3/testsuite/26_numerics/valarray/swap.cc 2ca666f7c65e35487c9224dadcb18ee4 libstdc++-v3/testsuite/26_numerics/valarray/transcend.cc cb8d4bbac638420c6cee0cd45d91dfcd libstdc++-v3/testsuite/27_io/basic_filebuf/close/12790-1.cc - f6390c40bb6dce62163a20bc33f0a852 libstdc++-v3/testsuite/27_io/basic_filebuf/close/81256.cc bc9d7bf28b4e0eddd3dba928a5b350f2 libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/1.cc 6165e65fb13572310bf622f5d34fc798 libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/12790-1.cc 9ec12a46bef757c5e7f5ef48c58b58fd libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/12790-2.cc --- 104713,104732 ---- b639c93bc396efa0fd79057074fdbb3d libstdc++-v3/testsuite/26_numerics/valarray/dr543.cc cf9a799688883d244898f9c13781775d libstdc++-v3/testsuite/26_numerics/valarray/dr630-1.cc 2b7e67d87fc63933b3d6ae173e4a486a libstdc++-v3/testsuite/26_numerics/valarray/dr630-2.cc ! 177b1d8aadf00d2f5d7bfb87d2c96974 libstdc++-v3/testsuite/26_numerics/valarray/dr630-3.cc cf93a6f65dd73b94bca78c5df440e9a4 libstdc++-v3/testsuite/26_numerics/valarray/init-list.cc f80244f8a99bbd30ee594052b1fcf705 libstdc++-v3/testsuite/26_numerics/valarray/moveable.cc 102dd42132d7f38a398f582933a20a68 libstdc++-v3/testsuite/26_numerics/valarray/name_lookup.cc f260f33a5cce7ab2c2c2ae71dc585cd6 libstdc++-v3/testsuite/26_numerics/valarray/noexcept_move_construct.cc 690fef110beb729488b0ce769e3e857f libstdc++-v3/testsuite/26_numerics/valarray/operators.cc ! 8b55f3d705391ec4fec122e5a566fbbb libstdc++-v3/testsuite/26_numerics/valarray/range_access.cc ! efad8801c53981e407ded35f7ee78130 libstdc++-v3/testsuite/26_numerics/valarray/range_access2.cc 2c64a69255dbefcf3ef9f0b0dee7993a libstdc++-v3/testsuite/26_numerics/valarray/requirements/explicit_instantiation.cc afb64b9faf6284dbc183031aa5e9f607 libstdc++-v3/testsuite/26_numerics/valarray/requirements/typedefs.cc d70f03fd601d2ae2cb8f58be9b54f030 libstdc++-v3/testsuite/26_numerics/valarray/subset_assignment.cc 911203830444a1ebf01100d8269b1515 libstdc++-v3/testsuite/26_numerics/valarray/swap.cc 2ca666f7c65e35487c9224dadcb18ee4 libstdc++-v3/testsuite/26_numerics/valarray/transcend.cc cb8d4bbac638420c6cee0cd45d91dfcd libstdc++-v3/testsuite/27_io/basic_filebuf/close/12790-1.cc bc9d7bf28b4e0eddd3dba928a5b350f2 libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/1.cc 6165e65fb13572310bf622f5d34fc798 libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/12790-1.cc 9ec12a46bef757c5e7f5ef48c58b58fd libstdc++-v3/testsuite/27_io/basic_filebuf/close/char/12790-2.cc *************** fa5e55296db31153b523a477dd67e4e0 libstd *** 104192,104197 **** --- 104742,104748 ---- ec92ddfd8cd00708d61adc6f753c7cf1 libstdc++-v3/testsuite/27_io/basic_filebuf/close/wchar_t/12790-2.cc 457f7758089d45e26c99e20c045e6da6 libstdc++-v3/testsuite/27_io/basic_filebuf/close/wchar_t/12790-3.cc fe05159a89409c595988aa81aa072eb8 libstdc++-v3/testsuite/27_io/basic_filebuf/close/wchar_t/12790-4.cc + f6390c40bb6dce62163a20bc33f0a852 libstdc++-v3/testsuite/27_io/basic_filebuf/close/wchar_t/81256.cc 7c914b2fbc4d26cc1d7dfaa6ce261d97 libstdc++-v3/testsuite/27_io/basic_filebuf/cons/2020.cc a5fa0ebe69484d5e978dac0a238ece23 libstdc++-v3/testsuite/27_io/basic_filebuf/cons/char/1.cc a870f427841a033161ee9e3e5fe67469 libstdc++-v3/testsuite/27_io/basic_filebuf/cons/char/copy_neg.cc *************** ca77dfca877593ef46b3e6f89cb2ef76 libstd *** 104442,104448 **** 4d69264655b2b2114b38fea8025eccce libstdc++-v3/testsuite/27_io/basic_ios/requirements/base_classes.cc 1a16228459b9570280c3ddc18d439c90 libstdc++-v3/testsuite/27_io/basic_ios/requirements/explicit_instantiation.cc 3b1e2189c57b3e508b86d696a5480c31 libstdc++-v3/testsuite/27_io/basic_ios/requirements/typedefs.cc ! 0ce920d0ed5099fa350b4ae3915dde01 libstdc++-v3/testsuite/27_io/basic_iostream/cons/16251.C 5ad82a7b86b0d99b961ee9d9df23ba8b libstdc++-v3/testsuite/27_io/basic_iostream/cons/2020.cc 0c7d2ad945ad5c4861af6f2dc69c245d libstdc++-v3/testsuite/27_io/basic_iostream/requirements/base_classes.cc 1068b1d604c2ab943511540eec4fb7f3 libstdc++-v3/testsuite/27_io/basic_iostream/requirements/explicit_instantiation.cc --- 104993,104999 ---- 4d69264655b2b2114b38fea8025eccce libstdc++-v3/testsuite/27_io/basic_ios/requirements/base_classes.cc 1a16228459b9570280c3ddc18d439c90 libstdc++-v3/testsuite/27_io/basic_ios/requirements/explicit_instantiation.cc 3b1e2189c57b3e508b86d696a5480c31 libstdc++-v3/testsuite/27_io/basic_ios/requirements/typedefs.cc ! 0ce920d0ed5099fa350b4ae3915dde01 libstdc++-v3/testsuite/27_io/basic_iostream/cons/16251.cc 5ad82a7b86b0d99b961ee9d9df23ba8b libstdc++-v3/testsuite/27_io/basic_iostream/cons/2020.cc 0c7d2ad945ad5c4861af6f2dc69c245d libstdc++-v3/testsuite/27_io/basic_iostream/requirements/base_classes.cc 1068b1d604c2ab943511540eec4fb7f3 libstdc++-v3/testsuite/27_io/basic_iostream/requirements/explicit_instantiation.cc *************** dbf0c4cc43383f02d3867387c97c3466 libstd *** 104502,104508 **** 041d87cd5c839b1643eb833f813856f0 libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/4.cc 8096b617180964173a49c25df21cc826 libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/5.cc da9ebfbb4bdd82e8fba20813a5f22346 libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/9555-ic.cc ! 87b9350a8e7241bbd67e34a312597cc4 libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499.cc fe3957370c20a94917b8c08635eda173 libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499_neg.cc a5b39100e3ef5d0b8229cac79538a976 libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/overflow.cc 8b2e6695b44603c556ae9a9d546ea3ac libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/char/1.cc --- 105053,105059 ---- 041d87cd5c839b1643eb833f813856f0 libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/4.cc 8096b617180964173a49c25df21cc826 libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/5.cc da9ebfbb4bdd82e8fba20813a5f22346 libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/9555-ic.cc ! 9a1fd03041b42849289c07cf948296b8 libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499.cc fe3957370c20a94917b8c08635eda173 libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499_neg.cc a5b39100e3ef5d0b8229cac79538a976 libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/overflow.cc 8b2e6695b44603c556ae9a9d546ea3ac libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/char/1.cc *************** f2f2060341bb73a667745248ac2e5a6b libstd *** 104629,104649 **** a1bd13a84f1e60f6370c3919f9ae4c41 libstdc++-v3/testsuite/27_io/basic_istream/ws/wchar_t/1.cc f75201df9be421060b9fb4bcefa0e38c libstdc++-v3/testsuite/27_io/basic_istringstream/assign/1.cc 7618100ca2cb8eccf758968f9a28e2cd libstdc++-v3/testsuite/27_io/basic_istringstream/cons/2020.cc ! e02d9d47192893acecbfa1712ae77149 libstdc++-v3/testsuite/27_io/basic_istringstream/cons/char/1.cc 099e74fd950a34b99ccfe3358531356c libstdc++-v3/testsuite/27_io/basic_istringstream/cons/default.cc 57409e90c20e37af300bf1db42c9b979 libstdc++-v3/testsuite/27_io/basic_istringstream/cons/move.cc ! 3740c843aa256dc769c249cdc06aad37 libstdc++-v3/testsuite/27_io/basic_istringstream/cons/wchar_t/1.cc 68d4f440ed797bac0a31d4d37c6119b2 libstdc++-v3/testsuite/27_io/basic_istringstream/rdbuf/char/2832.cc 32e435a50c30937e973f415f1e59fe13 libstdc++-v3/testsuite/27_io/basic_istringstream/rdbuf/wchar_t/2832.cc 2f33d2d565a081fbc73f4d7dd287fea9 libstdc++-v3/testsuite/27_io/basic_istringstream/requirements/base_classes.cc 28d8a921e0958ea36bce5b43a8048fa4 libstdc++-v3/testsuite/27_io/basic_istringstream/requirements/explicit_instantiation.cc b755c755ef5d45a7fabe5e1ba00962fe libstdc++-v3/testsuite/27_io/basic_istringstream/requirements/typedefs.cc 40cadca5b4438436901d646e24b96cb0 libstdc++-v3/testsuite/27_io/basic_istringstream/str/char/1.cc ! 8eb07207aee5769b7f385224bba5fb05 libstdc++-v3/testsuite/27_io/basic_istringstream/str/char/2.cc a1406688188caf5c3f81b0ce3f87390c libstdc++-v3/testsuite/27_io/basic_istringstream/str/wchar_t/1.cc ! 856238596c24ff077fc4f4c087d4ff30 libstdc++-v3/testsuite/27_io/basic_istringstream/str/wchar_t/2.cc ! a5bcecd970475ff03dc977eb56708039 libstdc++-v3/testsuite/27_io/basic_istringstream/view/char/1.cc ! bebc9955f12e49697b422aa740200b56 libstdc++-v3/testsuite/27_io/basic_istringstream/view/wchar_t/1.cc 40890d4d327687cc576590b23e286a18 libstdc++-v3/testsuite/27_io/basic_ofstream/assign/1.cc 6d8885d72951ecb11cd763529e26ee1c libstdc++-v3/testsuite/27_io/basic_ofstream/cons/2020.cc e9b0721266a1fb14e708188f7fa85afd libstdc++-v3/testsuite/27_io/basic_ofstream/cons/char/1.cc --- 105180,105200 ---- a1bd13a84f1e60f6370c3919f9ae4c41 libstdc++-v3/testsuite/27_io/basic_istream/ws/wchar_t/1.cc f75201df9be421060b9fb4bcefa0e38c libstdc++-v3/testsuite/27_io/basic_istringstream/assign/1.cc 7618100ca2cb8eccf758968f9a28e2cd libstdc++-v3/testsuite/27_io/basic_istringstream/cons/2020.cc ! 3a554379b87940bf09b49e68d3e0cdd0 libstdc++-v3/testsuite/27_io/basic_istringstream/cons/char/1.cc 099e74fd950a34b99ccfe3358531356c libstdc++-v3/testsuite/27_io/basic_istringstream/cons/default.cc 57409e90c20e37af300bf1db42c9b979 libstdc++-v3/testsuite/27_io/basic_istringstream/cons/move.cc ! 91943aee6ae949d9b76683fe23a7fd1d libstdc++-v3/testsuite/27_io/basic_istringstream/cons/wchar_t/1.cc 68d4f440ed797bac0a31d4d37c6119b2 libstdc++-v3/testsuite/27_io/basic_istringstream/rdbuf/char/2832.cc 32e435a50c30937e973f415f1e59fe13 libstdc++-v3/testsuite/27_io/basic_istringstream/rdbuf/wchar_t/2832.cc 2f33d2d565a081fbc73f4d7dd287fea9 libstdc++-v3/testsuite/27_io/basic_istringstream/requirements/base_classes.cc 28d8a921e0958ea36bce5b43a8048fa4 libstdc++-v3/testsuite/27_io/basic_istringstream/requirements/explicit_instantiation.cc b755c755ef5d45a7fabe5e1ba00962fe libstdc++-v3/testsuite/27_io/basic_istringstream/requirements/typedefs.cc 40cadca5b4438436901d646e24b96cb0 libstdc++-v3/testsuite/27_io/basic_istringstream/str/char/1.cc ! 11f13ac38d903d3bcdebce171f081ab8 libstdc++-v3/testsuite/27_io/basic_istringstream/str/char/2.cc a1406688188caf5c3f81b0ce3f87390c libstdc++-v3/testsuite/27_io/basic_istringstream/str/wchar_t/1.cc ! 5f513ae9314194b142b98847b78cc823 libstdc++-v3/testsuite/27_io/basic_istringstream/str/wchar_t/2.cc ! f9874f6bb993273b1376f587529c7ae4 libstdc++-v3/testsuite/27_io/basic_istringstream/view/char/1.cc ! 3688fa1053c95b813053ac84ecaefcc6 libstdc++-v3/testsuite/27_io/basic_istringstream/view/wchar_t/1.cc 40890d4d327687cc576590b23e286a18 libstdc++-v3/testsuite/27_io/basic_ofstream/assign/1.cc 6d8885d72951ecb11cd763529e26ee1c libstdc++-v3/testsuite/27_io/basic_ofstream/cons/2020.cc e9b0721266a1fb14e708188f7fa85afd libstdc++-v3/testsuite/27_io/basic_ofstream/cons/char/1.cc *************** be7d740b0c7e3bc48db46059243ec200 libstd *** 104664,104670 **** 2aaaadf0bb5d781ce781a83b5ba47b00 libstdc++-v3/testsuite/27_io/basic_ostream/cons/char/9827.cc fbb4458eb2089a04cb17725bd806830f libstdc++-v3/testsuite/27_io/basic_ostream/cons/char/null.cc 97df24306b2c68e45f249ff32d6acba4 libstdc++-v3/testsuite/27_io/basic_ostream/cons/wchar_t/9827.cc ! 9082dcc72a41c9167c51e53532c4db0d libstdc++-v3/testsuite/27_io/basic_ostream/emit/1.cc fc4d7a6a0f785795af97af9cef16e503 libstdc++-v3/testsuite/27_io/basic_ostream/endl/char/1.cc c8fcff1fdffe008637085402e3c53f6a libstdc++-v3/testsuite/27_io/basic_ostream/endl/wchar_t/1.cc 2b0f00a080bea546d2ed1f2bd8053c81 libstdc++-v3/testsuite/27_io/basic_ostream/ends/char/1.cc --- 105215,105221 ---- 2aaaadf0bb5d781ce781a83b5ba47b00 libstdc++-v3/testsuite/27_io/basic_ostream/cons/char/9827.cc fbb4458eb2089a04cb17725bd806830f libstdc++-v3/testsuite/27_io/basic_ostream/cons/char/null.cc 97df24306b2c68e45f249ff32d6acba4 libstdc++-v3/testsuite/27_io/basic_ostream/cons/wchar_t/9827.cc ! 959f5200646b0ae3765318dd8030be6a libstdc++-v3/testsuite/27_io/basic_ostream/emit/1.cc fc4d7a6a0f785795af97af9cef16e503 libstdc++-v3/testsuite/27_io/basic_ostream/endl/char/1.cc c8fcff1fdffe008637085402e3c53f6a libstdc++-v3/testsuite/27_io/basic_ostream/endl/wchar_t/1.cc 2b0f00a080bea546d2ed1f2bd8053c81 libstdc++-v3/testsuite/27_io/basic_ostream/ends/char/1.cc *************** d175b74cdf90be7b308276fabe9bfedc libstd *** 104753,104758 **** --- 105304,105310 ---- 57dfad422c43a74ace1c461b72742c7e libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/exceptions_failbit_throw.cc 5e242aa2f65920bb3d0835bb85735cad libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/exceptions_null.cc ebb7447c68529f67037c0007369c17ae libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/lwg2221.cc + aae6bd298ff41ef5a8222549145319be libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/volatile_ptr.cc 786b69042a52dd688b8c3f7db7890245 libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/1.cc 6f54824979f067e90bda62dd8f1c437f libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/2.cc 18a9b4c68e503aec5d3a9226d25c1584 libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/3.cc *************** cbe1fc8bee5767b39f78d8d01eba364b libstd *** 104793,104803 **** 5b70b3dab9699023f078cc605f739d40 libstdc++-v3/testsuite/27_io/basic_ostream/write/wchar_t/1.cc 06013bc89460d127162daa2a27bfbc5e libstdc++-v3/testsuite/27_io/basic_ostringstream/assign/1.cc 62d4fe9555d560cd7207fbd77bdd8f14 libstdc++-v3/testsuite/27_io/basic_ostringstream/cons/2020.cc ! 7766e041f107dce95e7a6ece72858184 libstdc++-v3/testsuite/27_io/basic_ostringstream/cons/char/1.cc faf48f119bcbdc2e66bf408c2f3738f4 libstdc++-v3/testsuite/27_io/basic_ostringstream/cons/char/3.cc ca87f849b2d7cb932c5335eca71673bf libstdc++-v3/testsuite/27_io/basic_ostringstream/cons/default.cc 6af14d345f40521870a42c51c32bc742 libstdc++-v3/testsuite/27_io/basic_ostringstream/cons/move.cc ! ae45ef1dc40ebdc098bb1fc1ba73ff44 libstdc++-v3/testsuite/27_io/basic_ostringstream/cons/wchar_t/1.cc c403e30debe966ebf33c6c3e2d4f6653 libstdc++-v3/testsuite/27_io/basic_ostringstream/cons/wchar_t/3.cc 0e64acc5d02b14bdd02bb1140dd98a9e libstdc++-v3/testsuite/27_io/basic_ostringstream/pthread3.cc 93762c1319ccb31b192c7a45dbd341a3 libstdc++-v3/testsuite/27_io/basic_ostringstream/rdbuf/char/2832.cc --- 105345,105355 ---- 5b70b3dab9699023f078cc605f739d40 libstdc++-v3/testsuite/27_io/basic_ostream/write/wchar_t/1.cc 06013bc89460d127162daa2a27bfbc5e libstdc++-v3/testsuite/27_io/basic_ostringstream/assign/1.cc 62d4fe9555d560cd7207fbd77bdd8f14 libstdc++-v3/testsuite/27_io/basic_ostringstream/cons/2020.cc ! 6de1d9b0567dac9bce73054924fce2cc libstdc++-v3/testsuite/27_io/basic_ostringstream/cons/char/1.cc faf48f119bcbdc2e66bf408c2f3738f4 libstdc++-v3/testsuite/27_io/basic_ostringstream/cons/char/3.cc ca87f849b2d7cb932c5335eca71673bf libstdc++-v3/testsuite/27_io/basic_ostringstream/cons/default.cc 6af14d345f40521870a42c51c32bc742 libstdc++-v3/testsuite/27_io/basic_ostringstream/cons/move.cc ! 8e17d87f7b5e498922ff8098b85811b2 libstdc++-v3/testsuite/27_io/basic_ostringstream/cons/wchar_t/1.cc c403e30debe966ebf33c6c3e2d4f6653 libstdc++-v3/testsuite/27_io/basic_ostringstream/cons/wchar_t/3.cc 0e64acc5d02b14bdd02bb1140dd98a9e libstdc++-v3/testsuite/27_io/basic_ostringstream/pthread3.cc 93762c1319ccb31b192c7a45dbd341a3 libstdc++-v3/testsuite/27_io/basic_ostringstream/rdbuf/char/2832.cc *************** fb10c9992240dc2de31c3ed7442f8bee libstd *** 104807,104818 **** db74ceac28a530cdbb1e4a4035d80883 libstdc++-v3/testsuite/27_io/basic_ostringstream/requirements/typedefs.cc 71dd0b4ecfe9b524d2388f13334c6275 libstdc++-v3/testsuite/27_io/basic_ostringstream/str/char/1.cc cb3104a123a5f199047400309beedc5e libstdc++-v3/testsuite/27_io/basic_ostringstream/str/char/2.cc ! c7f4efa3b8ad36789f8160a966cd30ed libstdc++-v3/testsuite/27_io/basic_ostringstream/str/char/3.cc 5c2259731550db794f7de1e534c6f6f6 libstdc++-v3/testsuite/27_io/basic_ostringstream/str/wchar_t/1.cc 59c74b7bae675f692586d88ed46ffd8f libstdc++-v3/testsuite/27_io/basic_ostringstream/str/wchar_t/2.cc ! 9848c6e1c1324bcce70f0279caf9d933 libstdc++-v3/testsuite/27_io/basic_ostringstream/str/wchar_t/3.cc ! ff5e6242d5ef13bdfe090662717ab8da libstdc++-v3/testsuite/27_io/basic_ostringstream/view/char/1.cc ! 37e18916a4c0e79ece8ba49278b32cab libstdc++-v3/testsuite/27_io/basic_ostringstream/view/wchar_t/1.cc 195a7c8031b11bcd46e29fe90b0a48f5 libstdc++-v3/testsuite/27_io/basic_streambuf/cons/2020.cc 973d0b2c439c26a8eb03d0d9526d4da2 libstdc++-v3/testsuite/27_io/basic_streambuf/cons/57394.cc 5a7d8f8a57ff2fefc27f9266f936c14b libstdc++-v3/testsuite/27_io/basic_streambuf/cons/char/1.cc --- 105359,105370 ---- db74ceac28a530cdbb1e4a4035d80883 libstdc++-v3/testsuite/27_io/basic_ostringstream/requirements/typedefs.cc 71dd0b4ecfe9b524d2388f13334c6275 libstdc++-v3/testsuite/27_io/basic_ostringstream/str/char/1.cc cb3104a123a5f199047400309beedc5e libstdc++-v3/testsuite/27_io/basic_ostringstream/str/char/2.cc ! 1965b656d438ef1c11b937aff17abf5a libstdc++-v3/testsuite/27_io/basic_ostringstream/str/char/3.cc 5c2259731550db794f7de1e534c6f6f6 libstdc++-v3/testsuite/27_io/basic_ostringstream/str/wchar_t/1.cc 59c74b7bae675f692586d88ed46ffd8f libstdc++-v3/testsuite/27_io/basic_ostringstream/str/wchar_t/2.cc ! ba1a194d104cc0689b824982542ac94d libstdc++-v3/testsuite/27_io/basic_ostringstream/str/wchar_t/3.cc ! 4f59f09689cc741bfaa97c5fbb2238e6 libstdc++-v3/testsuite/27_io/basic_ostringstream/view/char/1.cc ! e039d8d12a324a2ec9f6335689167f2e libstdc++-v3/testsuite/27_io/basic_ostringstream/view/wchar_t/1.cc 195a7c8031b11bcd46e29fe90b0a48f5 libstdc++-v3/testsuite/27_io/basic_streambuf/cons/2020.cc 973d0b2c439c26a8eb03d0d9526d4da2 libstdc++-v3/testsuite/27_io/basic_streambuf/cons/57394.cc 5a7d8f8a57ff2fefc27f9266f936c14b libstdc++-v3/testsuite/27_io/basic_streambuf/cons/char/1.cc *************** c8e1c964afae44f4e10fa7cd98efe85c libstd *** 104854,104863 **** fb7f10dae55dd2a3a297568a707946f7 libstdc++-v3/testsuite/27_io/basic_stringbuf/cons/2020.cc 228a5951c943a52e52cc12c2f6a95469 libstdc++-v3/testsuite/27_io/basic_stringbuf/cons/81381.cc 4cc3e5653db81be435900fc1e48215c6 libstdc++-v3/testsuite/27_io/basic_stringbuf/cons/char/1.cc ! efade0e13192771a8a2310e5df3f1e1d libstdc++-v3/testsuite/27_io/basic_stringbuf/cons/char/2.cc 34821995653cd447fe4bd05edb315bb5 libstdc++-v3/testsuite/27_io/basic_stringbuf/cons/char/default.cc 86e35166a6b3cb79faf381812ede1c4a libstdc++-v3/testsuite/27_io/basic_stringbuf/cons/wchar_t/1.cc ! 559016108e602870b7c55dfcad47dc05 libstdc++-v3/testsuite/27_io/basic_stringbuf/cons/wchar_t/2.cc 8d0c195fcc546a21ad573ee1ec1f2eb2 libstdc++-v3/testsuite/27_io/basic_stringbuf/cons/wchar_t/default.cc 73bfe98de60496e11bf9b096e3182ce6 libstdc++-v3/testsuite/27_io/basic_stringbuf/imbue/char/1.cc 375f4e54dced1daf9a2ffa07390a6ca1 libstdc++-v3/testsuite/27_io/basic_stringbuf/imbue/char/9322.cc --- 105406,105415 ---- fb7f10dae55dd2a3a297568a707946f7 libstdc++-v3/testsuite/27_io/basic_stringbuf/cons/2020.cc 228a5951c943a52e52cc12c2f6a95469 libstdc++-v3/testsuite/27_io/basic_stringbuf/cons/81381.cc 4cc3e5653db81be435900fc1e48215c6 libstdc++-v3/testsuite/27_io/basic_stringbuf/cons/char/1.cc ! 76862187ddf90a33afb1b81af627576f libstdc++-v3/testsuite/27_io/basic_stringbuf/cons/char/2.cc 34821995653cd447fe4bd05edb315bb5 libstdc++-v3/testsuite/27_io/basic_stringbuf/cons/char/default.cc 86e35166a6b3cb79faf381812ede1c4a libstdc++-v3/testsuite/27_io/basic_stringbuf/cons/wchar_t/1.cc ! 3e8a2dedae090ba7d4fc3655aa11c16f libstdc++-v3/testsuite/27_io/basic_stringbuf/cons/wchar_t/2.cc 8d0c195fcc546a21ad573ee1ec1f2eb2 libstdc++-v3/testsuite/27_io/basic_stringbuf/cons/wchar_t/default.cc 73bfe98de60496e11bf9b096e3182ce6 libstdc++-v3/testsuite/27_io/basic_stringbuf/imbue/char/1.cc 375f4e54dced1daf9a2ffa07390a6ca1 libstdc++-v3/testsuite/27_io/basic_stringbuf/imbue/char/9322.cc *************** eb7fa59f91a75a6aa6554167e242ebec libstd *** 104938,104963 **** 1bfa2157a2234e8f682d0c1b7f3fdf72 libstdc++-v3/testsuite/27_io/basic_stringbuf/str/char/2.cc 25520c09cfe4c0336d0a3114794d3197 libstdc++-v3/testsuite/27_io/basic_stringbuf/str/char/3.cc a30c642f58508c4a136289e23310dca2 libstdc++-v3/testsuite/27_io/basic_stringbuf/str/char/3955.cc ! 0b7622d04b5f8d24edc7bf59d84080e0 libstdc++-v3/testsuite/27_io/basic_stringbuf/str/char/4.cc 9691c910314a90b2d15ab3d0c1d10bb1 libstdc++-v3/testsuite/27_io/basic_stringbuf/str/wchar_t/1.cc 7b8f2ac363e4983e800c705f2a127f8e libstdc++-v3/testsuite/27_io/basic_stringbuf/str/wchar_t/2.cc b3b237681faf5e8bb89f05f1892d54a8 libstdc++-v3/testsuite/27_io/basic_stringbuf/str/wchar_t/3.cc 147d507adeff80cb2fe9af6623d6476a libstdc++-v3/testsuite/27_io/basic_stringbuf/str/wchar_t/3955.cc ! 4e80120bee344ddb2de70c451dc5782f libstdc++-v3/testsuite/27_io/basic_stringbuf/str/wchar_t/4.cc 0b9687236b93bf5ce96ceff39f7bf1ee libstdc++-v3/testsuite/27_io/basic_stringbuf/sungetc/char/1.cc 9be6dd1ced5daa1139a398805d89c3e0 libstdc++-v3/testsuite/27_io/basic_stringbuf/sungetc/wchar_t/1.cc 894a9a3896e3249b58392a5bd4381dc6 libstdc++-v3/testsuite/27_io/basic_stringbuf/sync/char/1057.cc 1459380cd96dff048231c734c1103551 libstdc++-v3/testsuite/27_io/basic_stringbuf/sync/wchar_t/1057.cc ! fa0737f38866c8b00d5169f156963884 libstdc++-v3/testsuite/27_io/basic_stringbuf/view/char/1.cc ! 4a511c2f66598c1338960a4b260b9502 libstdc++-v3/testsuite/27_io/basic_stringbuf/view/wchar_t/1.cc 7ee8dea287d81c5fbcd63f7d288c1e5a libstdc++-v3/testsuite/27_io/basic_stringstream/assign/1.cc ae2aab6049fc0fb74889c87578e34ee6 libstdc++-v3/testsuite/27_io/basic_stringstream/assign/81338.cc 493627d560d0c3407979586b696be486 libstdc++-v3/testsuite/27_io/basic_stringstream/cons/2020.cc ! 90d024fd36d9dda4611fa7c2988eed9e libstdc++-v3/testsuite/27_io/basic_stringstream/cons/char/1.cc f869623b4789482f9f015374b51be26a libstdc++-v3/testsuite/27_io/basic_stringstream/cons/char/97719.cc d48edfda75651d6b0900e178427dbd0a libstdc++-v3/testsuite/27_io/basic_stringstream/cons/default.cc ff45fb4b1f644b62e923359ce45e138d libstdc++-v3/testsuite/27_io/basic_stringstream/cons/move.cc ! 3740c843aa256dc769c249cdc06aad37 libstdc++-v3/testsuite/27_io/basic_stringstream/cons/wchar_t/1.cc 2a88671f08980a5443363269319ff3cd libstdc++-v3/testsuite/27_io/basic_stringstream/rdbuf/char/2832.cc df282f58e6fc5b328a24ab5d5a1e6522 libstdc++-v3/testsuite/27_io/basic_stringstream/rdbuf/wchar_t/2832.cc eb27a6fd101db06099fe333a083c3389 libstdc++-v3/testsuite/27_io/basic_stringstream/requirements/base_classes.cc --- 105490,105515 ---- 1bfa2157a2234e8f682d0c1b7f3fdf72 libstdc++-v3/testsuite/27_io/basic_stringbuf/str/char/2.cc 25520c09cfe4c0336d0a3114794d3197 libstdc++-v3/testsuite/27_io/basic_stringbuf/str/char/3.cc a30c642f58508c4a136289e23310dca2 libstdc++-v3/testsuite/27_io/basic_stringbuf/str/char/3955.cc ! f108db007b8c5e2a6af4d96053317ab5 libstdc++-v3/testsuite/27_io/basic_stringbuf/str/char/4.cc 9691c910314a90b2d15ab3d0c1d10bb1 libstdc++-v3/testsuite/27_io/basic_stringbuf/str/wchar_t/1.cc 7b8f2ac363e4983e800c705f2a127f8e libstdc++-v3/testsuite/27_io/basic_stringbuf/str/wchar_t/2.cc b3b237681faf5e8bb89f05f1892d54a8 libstdc++-v3/testsuite/27_io/basic_stringbuf/str/wchar_t/3.cc 147d507adeff80cb2fe9af6623d6476a libstdc++-v3/testsuite/27_io/basic_stringbuf/str/wchar_t/3955.cc ! eec82190f30f65f284201985cf443249 libstdc++-v3/testsuite/27_io/basic_stringbuf/str/wchar_t/4.cc 0b9687236b93bf5ce96ceff39f7bf1ee libstdc++-v3/testsuite/27_io/basic_stringbuf/sungetc/char/1.cc 9be6dd1ced5daa1139a398805d89c3e0 libstdc++-v3/testsuite/27_io/basic_stringbuf/sungetc/wchar_t/1.cc 894a9a3896e3249b58392a5bd4381dc6 libstdc++-v3/testsuite/27_io/basic_stringbuf/sync/char/1057.cc 1459380cd96dff048231c734c1103551 libstdc++-v3/testsuite/27_io/basic_stringbuf/sync/wchar_t/1057.cc ! 4619d39789fbf6faf0df41e5bdf70451 libstdc++-v3/testsuite/27_io/basic_stringbuf/view/char/1.cc ! 721c48a230fcdaa8a7818a132374e4f6 libstdc++-v3/testsuite/27_io/basic_stringbuf/view/wchar_t/1.cc 7ee8dea287d81c5fbcd63f7d288c1e5a libstdc++-v3/testsuite/27_io/basic_stringstream/assign/1.cc ae2aab6049fc0fb74889c87578e34ee6 libstdc++-v3/testsuite/27_io/basic_stringstream/assign/81338.cc 493627d560d0c3407979586b696be486 libstdc++-v3/testsuite/27_io/basic_stringstream/cons/2020.cc ! 94729503beefcb5a181c78e6ac78063b libstdc++-v3/testsuite/27_io/basic_stringstream/cons/char/1.cc f869623b4789482f9f015374b51be26a libstdc++-v3/testsuite/27_io/basic_stringstream/cons/char/97719.cc d48edfda75651d6b0900e178427dbd0a libstdc++-v3/testsuite/27_io/basic_stringstream/cons/default.cc ff45fb4b1f644b62e923359ce45e138d libstdc++-v3/testsuite/27_io/basic_stringstream/cons/move.cc ! 91943aee6ae949d9b76683fe23a7fd1d libstdc++-v3/testsuite/27_io/basic_stringstream/cons/wchar_t/1.cc 2a88671f08980a5443363269319ff3cd libstdc++-v3/testsuite/27_io/basic_stringstream/rdbuf/char/2832.cc df282f58e6fc5b328a24ab5d5a1e6522 libstdc++-v3/testsuite/27_io/basic_stringstream/rdbuf/wchar_t/2832.cc eb27a6fd101db06099fe333a083c3389 libstdc++-v3/testsuite/27_io/basic_stringstream/requirements/base_classes.cc *************** afcda5b61cb84b593bcba6cd9283ca27 libstd *** 104967,104989 **** 9f67ed99b0c5434605d10dadd47b8186 libstdc++-v3/testsuite/27_io/basic_stringstream/str/char/2.cc d8020e63ae19e74ec6ce551d10343472 libstdc++-v3/testsuite/27_io/basic_stringstream/str/char/3.cc 33b43019f9efab6ddb950b6ae620df48 libstdc++-v3/testsuite/27_io/basic_stringstream/str/char/4.cc ! 85d4015af5bc7d19a3b0de5d74e30171 libstdc++-v3/testsuite/27_io/basic_stringstream/str/char/5.cc caec1f8a27a5d98d04e3472266e8bd76 libstdc++-v3/testsuite/27_io/basic_stringstream/str/wchar_t/1.cc 6254aaaaacb288b104d397ff78e7c2ab libstdc++-v3/testsuite/27_io/basic_stringstream/str/wchar_t/2.cc b05bde7e80a3bbd3dfcd138a847c6bf4 libstdc++-v3/testsuite/27_io/basic_stringstream/str/wchar_t/3.cc 951d2ef5e5bc7ff2051a73e347c2588f libstdc++-v3/testsuite/27_io/basic_stringstream/str/wchar_t/4.cc ! cbf266f05df13045109693e31c018e1b libstdc++-v3/testsuite/27_io/basic_stringstream/str/wchar_t/5.cc.cc ! 4b927993774cfad68475a18236ce3f70 libstdc++-v3/testsuite/27_io/basic_stringstream/view/char/1.cc ! c3e40e9f1dc5a8bb13d11d4ed37dda3f libstdc++-v3/testsuite/27_io/basic_stringstream/view/wchar_t/1.cc ! 3344e8cb353599b6b38e46e785ec23d3 libstdc++-v3/testsuite/27_io/basic_syncbuf/1.cc ! c4d3b41912c7108f8969201742ac96a8 libstdc++-v3/testsuite/27_io/basic_syncbuf/2.cc ! 2c9cb1f9a2905f8456e0be1c52930fdc libstdc++-v3/testsuite/27_io/basic_syncbuf/basic_ops/1.cc ! a96a03ad0dde0681ea2e72f93eae2178 libstdc++-v3/testsuite/27_io/basic_syncbuf/requirements/types.cc ! 6771c8361d8663ac8a6f043db2c4a1b0 libstdc++-v3/testsuite/27_io/basic_syncbuf/sync_ops/1.cc ! 3344e8cb353599b6b38e46e785ec23d3 libstdc++-v3/testsuite/27_io/basic_syncstream/1.cc ! c4d3b41912c7108f8969201742ac96a8 libstdc++-v3/testsuite/27_io/basic_syncstream/2.cc ! 8e86cce49785abaff946c1cdf54bbc93 libstdc++-v3/testsuite/27_io/basic_syncstream/basic_ops/1.cc ! f3c6a45561e134ab3a5f785fb5327a3b libstdc++-v3/testsuite/27_io/basic_syncstream/requirements/types.cc 9c5a59048934e76eee6db1c5df19d0ff libstdc++-v3/testsuite/27_io/filesystem/directory_entry/86597.cc 94163431bed835b8ba3e50dde3d5c6b1 libstdc++-v3/testsuite/27_io/filesystem/directory_entry/lwg3171.cc cead5db9b01b01a53ce66c98bc2ccfa5 libstdc++-v3/testsuite/27_io/filesystem/file_status/1.cc --- 105519,105541 ---- 9f67ed99b0c5434605d10dadd47b8186 libstdc++-v3/testsuite/27_io/basic_stringstream/str/char/2.cc d8020e63ae19e74ec6ce551d10343472 libstdc++-v3/testsuite/27_io/basic_stringstream/str/char/3.cc 33b43019f9efab6ddb950b6ae620df48 libstdc++-v3/testsuite/27_io/basic_stringstream/str/char/4.cc ! 4618a44e6f98f8a23fc54fa7b9a0c67f libstdc++-v3/testsuite/27_io/basic_stringstream/str/char/5.cc caec1f8a27a5d98d04e3472266e8bd76 libstdc++-v3/testsuite/27_io/basic_stringstream/str/wchar_t/1.cc 6254aaaaacb288b104d397ff78e7c2ab libstdc++-v3/testsuite/27_io/basic_stringstream/str/wchar_t/2.cc b05bde7e80a3bbd3dfcd138a847c6bf4 libstdc++-v3/testsuite/27_io/basic_stringstream/str/wchar_t/3.cc 951d2ef5e5bc7ff2051a73e347c2588f libstdc++-v3/testsuite/27_io/basic_stringstream/str/wchar_t/4.cc ! 2dd24155a5f9aa114ca0f7aff33c8803 libstdc++-v3/testsuite/27_io/basic_stringstream/str/wchar_t/5.cc.cc ! ed3f2b987a697fb73ed669e1a154b20f libstdc++-v3/testsuite/27_io/basic_stringstream/view/char/1.cc ! 0d961494760b430db6ba8ec103c9a80e libstdc++-v3/testsuite/27_io/basic_stringstream/view/wchar_t/1.cc ! 2a3d2fc8b88adf4fddfa1e0082770b72 libstdc++-v3/testsuite/27_io/basic_syncbuf/1.cc ! d31ae7959965838d80a29ea724f65872 libstdc++-v3/testsuite/27_io/basic_syncbuf/2.cc ! c218223ffbd12bf061e7d4614c8c7d95 libstdc++-v3/testsuite/27_io/basic_syncbuf/basic_ops/1.cc ! 651a3b252aec3e7a49846b8239025938 libstdc++-v3/testsuite/27_io/basic_syncbuf/requirements/types.cc ! 89a05c9ccfe4b7c4923719e774da4260 libstdc++-v3/testsuite/27_io/basic_syncbuf/sync_ops/1.cc ! 2a3d2fc8b88adf4fddfa1e0082770b72 libstdc++-v3/testsuite/27_io/basic_syncstream/1.cc ! d31ae7959965838d80a29ea724f65872 libstdc++-v3/testsuite/27_io/basic_syncstream/2.cc ! 37720cac49755019ad098c4bdd4a4300 libstdc++-v3/testsuite/27_io/basic_syncstream/basic_ops/1.cc ! 8fb6ad828250a6f6b335b44c65859c70 libstdc++-v3/testsuite/27_io/basic_syncstream/requirements/types.cc 9c5a59048934e76eee6db1c5df19d0ff libstdc++-v3/testsuite/27_io/filesystem/directory_entry/86597.cc 94163431bed835b8ba3e50dde3d5c6b1 libstdc++-v3/testsuite/27_io/filesystem/directory_entry/lwg3171.cc cead5db9b01b01a53ce66c98bc2ccfa5 libstdc++-v3/testsuite/27_io/filesystem/file_status/1.cc *************** cead5db9b01b01a53ce66c98bc2ccfa5 libstd *** 104991,105026 **** a8f08f12e07d34aced996f0ef16f7486 libstdc++-v3/testsuite/27_io/filesystem/filesystem_error/copy.cc 12c64f56a311b7479e97421eb4245118 libstdc++-v3/testsuite/27_io/filesystem/iterators/91067.cc 34a26bc8c96de0f7df3ee9dff5b80443 libstdc++-v3/testsuite/27_io/filesystem/iterators/caching.cc ! 24c8c9a2d94765a32fe5c814208b61aa libstdc++-v3/testsuite/27_io/filesystem/iterators/directory_iterator.cc c2deb7759283eeb6e004fe49aa1cd137 libstdc++-v3/testsuite/27_io/filesystem/iterators/pop.cc 9707dd0737bc1e446ea08a7e91680c32 libstdc++-v3/testsuite/27_io/filesystem/iterators/recursion_pending.cc ! 74135c04b611557f880d47c8ab6f9afc libstdc++-v3/testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc 5d2ba944a9d67ae8792d4a32c0cb7a26 libstdc++-v3/testsuite/27_io/filesystem/operations/absolute.cc 1aaf48ba68cc2149c685314ed18f6b22 libstdc++-v3/testsuite/27_io/filesystem/operations/all.cc 3030b1e930d491aa14d2246d59419ca4 libstdc++-v3/testsuite/27_io/filesystem/operations/canonical.cc 59018bb9bac4c1cb42ad0546e6c3eca9 libstdc++-v3/testsuite/27_io/filesystem/operations/copy.cc cc24c97c2b68dd3bd3a716999460368c libstdc++-v3/testsuite/27_io/filesystem/operations/copy_file.cc ! 774589ca1e56861e3342ac752a7e384e libstdc++-v3/testsuite/27_io/filesystem/operations/create_directories.cc ! 14aa6a6c41780dcb20c0b6e11ce7a360 libstdc++-v3/testsuite/27_io/filesystem/operations/create_directory.cc b8e28a052ae7850018fd3142c6df4392 libstdc++-v3/testsuite/27_io/filesystem/operations/create_symlink.cc 36128b43b7b5d2b93dcec2ec8c05d5cd libstdc++-v3/testsuite/27_io/filesystem/operations/current_path.cc f9236910033867255d2c510f27adf9a3 libstdc++-v3/testsuite/27_io/filesystem/operations/equivalent.cc ! 4b596297bff2652b847e78564762e166 libstdc++-v3/testsuite/27_io/filesystem/operations/exists.cc b2912abacd587768365c0d3110da9812 libstdc++-v3/testsuite/27_io/filesystem/operations/file_size.cc ! 082a9f26f1ce0e9a52eff809f95b4bc2 libstdc++-v3/testsuite/27_io/filesystem/operations/is_empty.cc 7cb769255b1ae0ffa98623d5df1522e8 libstdc++-v3/testsuite/27_io/filesystem/operations/last_write_time.cc a304bce858b100433ff63c9f1ab74199 libstdc++-v3/testsuite/27_io/filesystem/operations/permissions.cc d472e0aaf3d65d72e01ee7e29c122aa4 libstdc++-v3/testsuite/27_io/filesystem/operations/proximate.cc c5a49bd0a1448743377e8a5874e43972 libstdc++-v3/testsuite/27_io/filesystem/operations/read_symlink.cc ead113c96fabb328faec60f304390d6d libstdc++-v3/testsuite/27_io/filesystem/operations/relative.cc ! 63d5e3e110cc74a43d9c8b251fb664bd libstdc++-v3/testsuite/27_io/filesystem/operations/remove.cc ! 3e77c7c196416a253f762af7f0a8cbbc libstdc++-v3/testsuite/27_io/filesystem/operations/remove_all.cc b661ceb4844b789316d89e35b99b2100 libstdc++-v3/testsuite/27_io/filesystem/operations/rename.cc 7e15f2f4b6af8060c3bd89554d02f5d6 libstdc++-v3/testsuite/27_io/filesystem/operations/resize_file.cc 65c6d95957a44daffefdfccc0cc76722 libstdc++-v3/testsuite/27_io/filesystem/operations/space.cc ! 7ea22354f028e865395926c56db34abf libstdc++-v3/testsuite/27_io/filesystem/operations/status.cc ! 87c9c6a1d2a063bb1491471db37bae3c libstdc++-v3/testsuite/27_io/filesystem/operations/symlink_status.cc ! 39e3be38b07c4436062a0c59e90bcc90 libstdc++-v3/testsuite/27_io/filesystem/operations/temp_directory_path.cc 781339e8c95335b74ca33750fbad2e9b libstdc++-v3/testsuite/27_io/filesystem/operations/weakly_canonical.cc e5d73d0c8090549ef1d89888b19bea00 libstdc++-v3/testsuite/27_io/filesystem/path/append/path.cc e6bcd096eac06dd3fd04d064865847de libstdc++-v3/testsuite/27_io/filesystem/path/append/source.cc --- 105543,105579 ---- a8f08f12e07d34aced996f0ef16f7486 libstdc++-v3/testsuite/27_io/filesystem/filesystem_error/copy.cc 12c64f56a311b7479e97421eb4245118 libstdc++-v3/testsuite/27_io/filesystem/iterators/91067.cc 34a26bc8c96de0f7df3ee9dff5b80443 libstdc++-v3/testsuite/27_io/filesystem/iterators/caching.cc ! b74acfd30c0988b4096342e63e84e3ec libstdc++-v3/testsuite/27_io/filesystem/iterators/directory_iterator.cc ! 304b563b62625027227f0c89f75ae00b libstdc++-v3/testsuite/27_io/filesystem/iterators/error_reporting.cc c2deb7759283eeb6e004fe49aa1cd137 libstdc++-v3/testsuite/27_io/filesystem/iterators/pop.cc 9707dd0737bc1e446ea08a7e91680c32 libstdc++-v3/testsuite/27_io/filesystem/iterators/recursion_pending.cc ! a8ce9a69761fe4c5e4eabb70aa80928d libstdc++-v3/testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc 5d2ba944a9d67ae8792d4a32c0cb7a26 libstdc++-v3/testsuite/27_io/filesystem/operations/absolute.cc 1aaf48ba68cc2149c685314ed18f6b22 libstdc++-v3/testsuite/27_io/filesystem/operations/all.cc 3030b1e930d491aa14d2246d59419ca4 libstdc++-v3/testsuite/27_io/filesystem/operations/canonical.cc 59018bb9bac4c1cb42ad0546e6c3eca9 libstdc++-v3/testsuite/27_io/filesystem/operations/copy.cc cc24c97c2b68dd3bd3a716999460368c libstdc++-v3/testsuite/27_io/filesystem/operations/copy_file.cc ! caa5518185a6665ae00783e8306f3cfb libstdc++-v3/testsuite/27_io/filesystem/operations/create_directories.cc ! 6ef2f1971d171af530b49e925ba37121 libstdc++-v3/testsuite/27_io/filesystem/operations/create_directory.cc b8e28a052ae7850018fd3142c6df4392 libstdc++-v3/testsuite/27_io/filesystem/operations/create_symlink.cc 36128b43b7b5d2b93dcec2ec8c05d5cd libstdc++-v3/testsuite/27_io/filesystem/operations/current_path.cc f9236910033867255d2c510f27adf9a3 libstdc++-v3/testsuite/27_io/filesystem/operations/equivalent.cc ! 7d673caf7ebae2eb3dddc940da5ff65d libstdc++-v3/testsuite/27_io/filesystem/operations/exists.cc b2912abacd587768365c0d3110da9812 libstdc++-v3/testsuite/27_io/filesystem/operations/file_size.cc ! 530baf288f4ce86573fd862bbd2a88a7 libstdc++-v3/testsuite/27_io/filesystem/operations/is_empty.cc 7cb769255b1ae0ffa98623d5df1522e8 libstdc++-v3/testsuite/27_io/filesystem/operations/last_write_time.cc a304bce858b100433ff63c9f1ab74199 libstdc++-v3/testsuite/27_io/filesystem/operations/permissions.cc d472e0aaf3d65d72e01ee7e29c122aa4 libstdc++-v3/testsuite/27_io/filesystem/operations/proximate.cc c5a49bd0a1448743377e8a5874e43972 libstdc++-v3/testsuite/27_io/filesystem/operations/read_symlink.cc ead113c96fabb328faec60f304390d6d libstdc++-v3/testsuite/27_io/filesystem/operations/relative.cc ! 0a68e427522322c3ffc6ea5f4207bd15 libstdc++-v3/testsuite/27_io/filesystem/operations/remove.cc ! c069bb2dcb9c020663acc7909e7f5b77 libstdc++-v3/testsuite/27_io/filesystem/operations/remove_all.cc b661ceb4844b789316d89e35b99b2100 libstdc++-v3/testsuite/27_io/filesystem/operations/rename.cc 7e15f2f4b6af8060c3bd89554d02f5d6 libstdc++-v3/testsuite/27_io/filesystem/operations/resize_file.cc 65c6d95957a44daffefdfccc0cc76722 libstdc++-v3/testsuite/27_io/filesystem/operations/space.cc ! 90c27031cdbd3b50e1460fa272bc92c3 libstdc++-v3/testsuite/27_io/filesystem/operations/status.cc ! dc6fff43af6f213cf7716f98fcde7623 libstdc++-v3/testsuite/27_io/filesystem/operations/symlink_status.cc ! 208783c1814e704b7d946a5fc2a98879 libstdc++-v3/testsuite/27_io/filesystem/operations/temp_directory_path.cc 781339e8c95335b74ca33750fbad2e9b libstdc++-v3/testsuite/27_io/filesystem/operations/weakly_canonical.cc e5d73d0c8090549ef1d89888b19bea00 libstdc++-v3/testsuite/27_io/filesystem/path/append/path.cc e6bcd096eac06dd3fd04d064865847de libstdc++-v3/testsuite/27_io/filesystem/path/append/source.cc *************** c4dc493e7fe9cae0bbfa9f50a1558593 libstd *** 105035,105040 **** --- 105588,105594 ---- 4a3b69a82cac3eb4021adca3d24566dd libstdc++-v3/testsuite/27_io/filesystem/path/concat/path.cc 84929b9df5d7d056727e7a6288d4c0ea libstdc++-v3/testsuite/27_io/filesystem/path/concat/strings.cc a22e69eb2c027825b8fb3e0e6df6a97d libstdc++-v3/testsuite/27_io/filesystem/path/construct/100630.cc + 3bc7c7fa91cdfae8b85e98c050b994cc libstdc++-v3/testsuite/27_io/filesystem/path/construct/102592.cc f7519f418c9e3f8120af2f159eb4361c libstdc++-v3/testsuite/27_io/filesystem/path/construct/80762.cc 6a8b9ad795e9531e42ff0e3afee721b3 libstdc++-v3/testsuite/27_io/filesystem/path/construct/90281.cc f09d25591d80f944624fffcdeff9a666 libstdc++-v3/testsuite/27_io/filesystem/path/construct/90634.cc *************** a206fad7676630029fe70a498c4af34d libstd *** 105059,105080 **** 5b655a0726278e1a5c67790e38f5e685 libstdc++-v3/testsuite/27_io/filesystem/path/generation/proximate.cc dda608d080ed0e564e44c78dc8f54089 libstdc++-v3/testsuite/27_io/filesystem/path/generation/relative.cc 16f63009cc2b1d0eeef4e74d768de315 libstdc++-v3/testsuite/27_io/filesystem/path/generic/94242.cc ! a37b83748eb593467f28e4bba2e50746 libstdc++-v3/testsuite/27_io/filesystem/path/generic/generic_string.cc 67870936a1225c5531f6e94d5dc84c64 libstdc++-v3/testsuite/27_io/filesystem/path/generic/utf.cc 051796112fe30bd3e5459c4d7cd9b656 libstdc++-v3/testsuite/27_io/filesystem/path/generic/wchar_t.cc 14f6e1c280d281ae8f5770594c458c9c libstdc++-v3/testsuite/27_io/filesystem/path/io/dr2989.cc 2fafa1ec02786d6413fc19083899e5bb libstdc++-v3/testsuite/27_io/filesystem/path/itr/components.cc 76f8c0e4054614a5689989a8cc4bcaa3 libstdc++-v3/testsuite/27_io/filesystem/path/itr/traversal.cc 77be7eec4417350299e5a013321f193f libstdc++-v3/testsuite/27_io/filesystem/path/modifiers/clear.cc ! 5c8c5d6cadcc5645fb8edfddea77b360 libstdc++-v3/testsuite/27_io/filesystem/path/modifiers/make_preferred.cc 271b87e803947d80db5e500ebe1648f3 libstdc++-v3/testsuite/27_io/filesystem/path/modifiers/remove_filename.cc 82261a3c7b53d49c27f77545ba004020 libstdc++-v3/testsuite/27_io/filesystem/path/modifiers/replace_extension.cc 20574e121e824a490fd965659ba4e88d libstdc++-v3/testsuite/27_io/filesystem/path/modifiers/replace_filename.cc 3f653b8c4cb6aadac52441e03b4b8843 libstdc++-v3/testsuite/27_io/filesystem/path/modifiers/swap.cc ! a42b0c3ebdd1015b9baa937ea7b2f6c2 libstdc++-v3/testsuite/27_io/filesystem/path/native/alloc.cc 697f6ac048e02e33ef8e766bd5eecec9 libstdc++-v3/testsuite/27_io/filesystem/path/native/conv_c++23.cc ! 06bcc2b3595880174c1c629e11dc9107 libstdc++-v3/testsuite/27_io/filesystem/path/native/string-char8_t.cc ! 7197f52b2a11180afbc95488d13cfd87 libstdc++-v3/testsuite/27_io/filesystem/path/native/string.cc 6371ba5fc358b85f322d4833001e4aa2 libstdc++-v3/testsuite/27_io/filesystem/path/nonmember/append.cc 2d3db4b0d72aabef3c837ba6f52f0d85 libstdc++-v3/testsuite/27_io/filesystem/path/nonmember/cmp.cc dec8c79a5bc2399d1595c9f061708800 libstdc++-v3/testsuite/27_io/filesystem/path/nonmember/cmp_c++20.cc --- 105613,105634 ---- 5b655a0726278e1a5c67790e38f5e685 libstdc++-v3/testsuite/27_io/filesystem/path/generation/proximate.cc dda608d080ed0e564e44c78dc8f54089 libstdc++-v3/testsuite/27_io/filesystem/path/generation/relative.cc 16f63009cc2b1d0eeef4e74d768de315 libstdc++-v3/testsuite/27_io/filesystem/path/generic/94242.cc ! 10c4a0c5695159f75d68c3048d06129e libstdc++-v3/testsuite/27_io/filesystem/path/generic/generic_string.cc 67870936a1225c5531f6e94d5dc84c64 libstdc++-v3/testsuite/27_io/filesystem/path/generic/utf.cc 051796112fe30bd3e5459c4d7cd9b656 libstdc++-v3/testsuite/27_io/filesystem/path/generic/wchar_t.cc 14f6e1c280d281ae8f5770594c458c9c libstdc++-v3/testsuite/27_io/filesystem/path/io/dr2989.cc 2fafa1ec02786d6413fc19083899e5bb libstdc++-v3/testsuite/27_io/filesystem/path/itr/components.cc 76f8c0e4054614a5689989a8cc4bcaa3 libstdc++-v3/testsuite/27_io/filesystem/path/itr/traversal.cc 77be7eec4417350299e5a013321f193f libstdc++-v3/testsuite/27_io/filesystem/path/modifiers/clear.cc ! a69f7880bed9c1adccfe765e4437b38a libstdc++-v3/testsuite/27_io/filesystem/path/modifiers/make_preferred.cc 271b87e803947d80db5e500ebe1648f3 libstdc++-v3/testsuite/27_io/filesystem/path/modifiers/remove_filename.cc 82261a3c7b53d49c27f77545ba004020 libstdc++-v3/testsuite/27_io/filesystem/path/modifiers/replace_extension.cc 20574e121e824a490fd965659ba4e88d libstdc++-v3/testsuite/27_io/filesystem/path/modifiers/replace_filename.cc 3f653b8c4cb6aadac52441e03b4b8843 libstdc++-v3/testsuite/27_io/filesystem/path/modifiers/swap.cc ! 4b2c4f9ba4b9dbb56ba61fb0bd596e9e libstdc++-v3/testsuite/27_io/filesystem/path/native/alloc.cc 697f6ac048e02e33ef8e766bd5eecec9 libstdc++-v3/testsuite/27_io/filesystem/path/native/conv_c++23.cc ! 9ac07b6d5bd6915ed6e79a3859cee466 libstdc++-v3/testsuite/27_io/filesystem/path/native/string-char8_t.cc ! eb710086077188afe8c298ef512c841a libstdc++-v3/testsuite/27_io/filesystem/path/native/string.cc 6371ba5fc358b85f322d4833001e4aa2 libstdc++-v3/testsuite/27_io/filesystem/path/nonmember/append.cc 2d3db4b0d72aabef3c837ba6f52f0d85 libstdc++-v3/testsuite/27_io/filesystem/path/nonmember/cmp.cc dec8c79a5bc2399d1595c9f061708800 libstdc++-v3/testsuite/27_io/filesystem/path/nonmember/cmp_c++20.cc *************** e65813388418098d37bebdd83ad35e0c libstd *** 105315,105321 **** a36db31d6ed097df55527d05b350dc07 libstdc++-v3/testsuite/28_regex/algorithms/regex_match/extended/string_range_00_03.cc 47e57eadf06286acd4053960605f2e8b libstdc++-v3/testsuite/28_regex/algorithms/regex_match/extended/string_range_01_03.cc f315439939fc2e753fc01261bb617fae libstdc++-v3/testsuite/28_regex/algorithms/regex_match/extended/string_range_02_03.cc ! 03a1097d9037440f69927caf24f35e1e libstdc++-v3/testsuite/28_regex/algorithms/regex_match/extended/wstring_locale.cc b9ddef6aca02b8171eb8e101802d88a1 libstdc++-v3/testsuite/28_regex/algorithms/regex_replace/char/51711.cc 3aba5539e381fd669c20b5df6fe03c80 libstdc++-v3/testsuite/28_regex/algorithms/regex_replace/char/basic_replace.cc ffffa6b84498fb75ac805ea386714767 libstdc++-v3/testsuite/28_regex/algorithms/regex_replace/char/dr2213.cc --- 105869,105875 ---- a36db31d6ed097df55527d05b350dc07 libstdc++-v3/testsuite/28_regex/algorithms/regex_match/extended/string_range_00_03.cc 47e57eadf06286acd4053960605f2e8b libstdc++-v3/testsuite/28_regex/algorithms/regex_match/extended/string_range_01_03.cc f315439939fc2e753fc01261bb617fae libstdc++-v3/testsuite/28_regex/algorithms/regex_match/extended/string_range_02_03.cc ! b9702c5f60fe5a0094493d181372c1d3 libstdc++-v3/testsuite/28_regex/algorithms/regex_match/extended/wstring_locale.cc b9ddef6aca02b8171eb8e101802d88a1 libstdc++-v3/testsuite/28_regex/algorithms/regex_replace/char/51711.cc 3aba5539e381fd669c20b5df6fe03c80 libstdc++-v3/testsuite/28_regex/algorithms/regex_replace/char/basic_replace.cc ffffa6b84498fb75ac805ea386714767 libstdc++-v3/testsuite/28_regex/algorithms/regex_replace/char/dr2213.cc *************** e781afcc7944ac3bef0bc8812f1b341e libstd *** 105398,105409 **** 0cc80a403cad8e4e52104e8ccbba1576 libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/typedefs.cc b57454612a4d974285bb908b705d9083 libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/wchar_t/string_01.cc 6f1de6694bab4a2d8b193f1f1368d611 libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/wchar_t/wstring_02.cc 406c6e3793a245ef4ac8ce8399728640 libstdc++-v3/testsuite/28_regex/match_results/94627.cc 80db37d9a637c75bf0912e558e1b431e libstdc++-v3/testsuite/28_regex/match_results/ctors/char/default.cc 90fe7d75e0128796f3b434f31fb53cc6 libstdc++-v3/testsuite/28_regex/match_results/ctors/wchar_t/default.cc a2e33a5b5c0547c42c2071176860a8cb libstdc++-v3/testsuite/28_regex/match_results/format.cc 5c8e6b3e23027bdb0dbc153ee05be0cc libstdc++-v3/testsuite/28_regex/match_results/out_of_range_submatches.cc ! 08745f02f65fd508524ebb5e5ee016dd libstdc++-v3/testsuite/28_regex/match_results/pmr_typedefs.cc 837624fb3c40b562dce48d84e686bc34 libstdc++-v3/testsuite/28_regex/match_results/swap.cc 9a30984569d68daeb00cd11d252156f4 libstdc++-v3/testsuite/28_regex/match_results/typedefs.cc 950f18b09b3e47d85261ea31de5ac57d libstdc++-v3/testsuite/28_regex/range_access.cc --- 105952,105964 ---- 0cc80a403cad8e4e52104e8ccbba1576 libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/typedefs.cc b57454612a4d974285bb908b705d9083 libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/wchar_t/string_01.cc 6f1de6694bab4a2d8b193f1f1368d611 libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/wchar_t/wstring_02.cc + 9e61d1e19fd36f31ae0f5ec6a41b0d6a libstdc++-v3/testsuite/28_regex/match_results/102667.cc 406c6e3793a245ef4ac8ce8399728640 libstdc++-v3/testsuite/28_regex/match_results/94627.cc 80db37d9a637c75bf0912e558e1b431e libstdc++-v3/testsuite/28_regex/match_results/ctors/char/default.cc 90fe7d75e0128796f3b434f31fb53cc6 libstdc++-v3/testsuite/28_regex/match_results/ctors/wchar_t/default.cc a2e33a5b5c0547c42c2071176860a8cb libstdc++-v3/testsuite/28_regex/match_results/format.cc 5c8e6b3e23027bdb0dbc153ee05be0cc libstdc++-v3/testsuite/28_regex/match_results/out_of_range_submatches.cc ! 805105ccf2d9dbdc069b0fd7e955fa4c libstdc++-v3/testsuite/28_regex/match_results/pmr_typedefs.cc 837624fb3c40b562dce48d84e686bc34 libstdc++-v3/testsuite/28_regex/match_results/swap.cc 9a30984569d68daeb00cd11d252156f4 libstdc++-v3/testsuite/28_regex/match_results/typedefs.cc 950f18b09b3e47d85261ea31de5ac57d libstdc++-v3/testsuite/28_regex/range_access.cc *************** ce276607d5f33b3abd3e31a43e6dc24e libstd *** 105475,105480 **** --- 106030,106036 ---- e0f3d8128b70041b681f19ec11ab37ca libstdc++-v3/testsuite/29_atomics/atomic/requirements/types_neg.cc 5aa0309b5d914737141c3abbfe367169 libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/1.cc a3f60ba9129a461104d66a390c41284d libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/100334.cc + 1bbd36fc668c5a21a5d73bd02a337603 libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/102994.cc 87c1fa5601addba17bc52f62fa4d7397 libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/2.cc 6861f8c4291859a3cc0ced46dd171977 libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/bool.cc 169877172155fcd6f623a352404a6e62 libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/generic.cc *************** fef3c8d588032f89270c5a40aa7a119f libstd *** 105495,105501 **** 63a4be6ae0476ff336478c9173e1730e libstdc++-v3/testsuite/29_atomics/atomic_flag/test_and_set/explicit.cc 63a4be6ae0476ff336478c9173e1730e libstdc++-v3/testsuite/29_atomics/atomic_flag/test_and_set/implicit.cc a700626b7e5354bdbc2ed57b70402d3d libstdc++-v3/testsuite/29_atomics/atomic_flag/wait_notify/1.cc ! 5de1ec44d06cc8a1cae736f86035aadc libstdc++-v3/testsuite/29_atomics/atomic_float/1.cc 3b8bf408367b67adf4db171ae7239402 libstdc++-v3/testsuite/29_atomics/atomic_float/95282.cc 955ca2fe3232f00ac0432b334101f316 libstdc++-v3/testsuite/29_atomics/atomic_float/requirements.cc d8dccec53f55b08eb9dc59685847fae7 libstdc++-v3/testsuite/29_atomics/atomic_float/value_init.cc --- 106051,106057 ---- 63a4be6ae0476ff336478c9173e1730e libstdc++-v3/testsuite/29_atomics/atomic_flag/test_and_set/explicit.cc 63a4be6ae0476ff336478c9173e1730e libstdc++-v3/testsuite/29_atomics/atomic_flag/test_and_set/implicit.cc a700626b7e5354bdbc2ed57b70402d3d libstdc++-v3/testsuite/29_atomics/atomic_flag/wait_notify/1.cc ! 45fdb3095e393b8e18c76282792a374f libstdc++-v3/testsuite/29_atomics/atomic_float/1.cc 3b8bf408367b67adf4db171ae7239402 libstdc++-v3/testsuite/29_atomics/atomic_float/95282.cc 955ca2fe3232f00ac0432b334101f316 libstdc++-v3/testsuite/29_atomics/atomic_float/requirements.cc d8dccec53f55b08eb9dc59685847fae7 libstdc++-v3/testsuite/29_atomics/atomic_float/value_init.cc *************** db07e54bdabacd5225304fc6bf807b54 libstd *** 105530,105536 **** 82170b332fdf2017a2eae95bbb2f9dbe libstdc++-v3/testsuite/29_atomics/atomic_ref/integral.cc 5cf2221c85adc15c9965a6c729a3ff55 libstdc++-v3/testsuite/29_atomics/atomic_ref/pointer.cc 701e175b8aa3ae2100a48c8384bd11f1 libstdc++-v3/testsuite/29_atomics/atomic_ref/requirements.cc ! c2f1e748801d0703a8711afc0fb221ed libstdc++-v3/testsuite/29_atomics/atomic_ref/wait_notify.cc aa1f06a23500403a7a1ba5db62bc9e1b libstdc++-v3/testsuite/29_atomics/headers/atomic/functions_std_c++0x.cc 65dd1beb8215c9dd5eebe8d3e4609ee9 libstdc++-v3/testsuite/29_atomics/headers/atomic/macros.cc 26843023900e60251c2cf952a3562a6c libstdc++-v3/testsuite/29_atomics/headers/atomic/std_c++0x_neg.cc --- 106086,106092 ---- 82170b332fdf2017a2eae95bbb2f9dbe libstdc++-v3/testsuite/29_atomics/atomic_ref/integral.cc 5cf2221c85adc15c9965a6c729a3ff55 libstdc++-v3/testsuite/29_atomics/atomic_ref/pointer.cc 701e175b8aa3ae2100a48c8384bd11f1 libstdc++-v3/testsuite/29_atomics/atomic_ref/requirements.cc ! 3cf1e27aeaa6b1f13d28d353d15a6c37 libstdc++-v3/testsuite/29_atomics/atomic_ref/wait_notify.cc aa1f06a23500403a7a1ba5db62bc9e1b libstdc++-v3/testsuite/29_atomics/headers/atomic/functions_std_c++0x.cc 65dd1beb8215c9dd5eebe8d3e4609ee9 libstdc++-v3/testsuite/29_atomics/headers/atomic/macros.cc 26843023900e60251c2cf952a3562a6c libstdc++-v3/testsuite/29_atomics/headers/atomic/std_c++0x_neg.cc *************** f754118861b851f83334813d834cb200 libstd *** 106089,106118 **** 287f51d03bdfe6565dc842447c669a69 libstdc++-v3/testsuite/experimental/filesystem/file_status/1.cc 0be28e8a597f5f3524b05d382977857a libstdc++-v3/testsuite/experimental/filesystem/filesystem_error/cons.cc e38807857185bfa4fa204e43c8d76017 libstdc++-v3/testsuite/experimental/filesystem/iterators/97731.cc ! b2ddb53edb8745941cd567b4fbcbcfe8 libstdc++-v3/testsuite/experimental/filesystem/iterators/directory_iterator.cc 80bbc9f1b2ea6c7f500e8644d05570a3 libstdc++-v3/testsuite/experimental/filesystem/iterators/pop.cc ! aee72a897d77a43a671bf7ff1186552b libstdc++-v3/testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc 4bf5a178f6bbfd23a8d1f09e46377566 libstdc++-v3/testsuite/experimental/filesystem/operations/absolute.cc b6c97dcfa5875e35bd817ceef71106dc libstdc++-v3/testsuite/experimental/filesystem/operations/canonical.cc c979d08bc61ab33d1c6cda360f40c791 libstdc++-v3/testsuite/experimental/filesystem/operations/copy.cc fef1c8651e0cbfb01549c5b72aadbc39 libstdc++-v3/testsuite/experimental/filesystem/operations/copy_file.cc ! a9f2e14d3fc9a632a4e32d3b0b49c8d1 libstdc++-v3/testsuite/experimental/filesystem/operations/create_directories.cc ! 9d72ff4fc8102c087dc897d553c62e0e libstdc++-v3/testsuite/experimental/filesystem/operations/create_directory.cc 102afdecfff9639d959c908bf8ca4d24 libstdc++-v3/testsuite/experimental/filesystem/operations/create_symlink.cc f613a7a13aba7ff97f2dc5f334d5219d libstdc++-v3/testsuite/experimental/filesystem/operations/current_path.cc b6f9f83cef2f2ba95a2192bcaf1f4864 libstdc++-v3/testsuite/experimental/filesystem/operations/equivalent.cc ! d64f8cbf2eac462ded9f076a12a3bfe2 libstdc++-v3/testsuite/experimental/filesystem/operations/exists.cc 22c3881333e194d83327843ef3822453 libstdc++-v3/testsuite/experimental/filesystem/operations/file_size.cc ! f7b779ba44e2cf39db92c01bdca4f5e6 libstdc++-v3/testsuite/experimental/filesystem/operations/is_empty.cc 2a9b90a7de6f905407da9ed34a374ed6 libstdc++-v3/testsuite/experimental/filesystem/operations/last_write_time.cc 7ec5c0f902c789196ebec7b7878cf8d1 libstdc++-v3/testsuite/experimental/filesystem/operations/permissions.cc c212f31fe176502dcf5879b849cad120 libstdc++-v3/testsuite/experimental/filesystem/operations/read_symlink.cc ! 5aadbc47e3cc75a411b6f807891da1be libstdc++-v3/testsuite/experimental/filesystem/operations/remove.cc ! e62b80c10ef4c69591d417eb49564dd3 libstdc++-v3/testsuite/experimental/filesystem/operations/remove_all.cc d032a966b5c68f5f7ee9cc78de2ab201 libstdc++-v3/testsuite/experimental/filesystem/operations/rename.cc 7f64a5cd007797c662010bef0a36d653 libstdc++-v3/testsuite/experimental/filesystem/operations/space.cc 99989ba6e2f0b58f00abcc249759b5f5 libstdc++-v3/testsuite/experimental/filesystem/operations/status.cc ! 5c9906ee9d01e6aebfa90cd2e6c564bb libstdc++-v3/testsuite/experimental/filesystem/operations/temp_directory_path.cc 45702a06c1f1ce65575cf3d643ec9778 libstdc++-v3/testsuite/experimental/filesystem/path/append/path.cc 57259422207ece8ba121629f54f87323 libstdc++-v3/testsuite/experimental/filesystem/path/assign/assign.cc acd11e30150439c609f7b3127f4e669e libstdc++-v3/testsuite/experimental/filesystem/path/assign/copy.cc --- 106645,106675 ---- 287f51d03bdfe6565dc842447c669a69 libstdc++-v3/testsuite/experimental/filesystem/file_status/1.cc 0be28e8a597f5f3524b05d382977857a libstdc++-v3/testsuite/experimental/filesystem/filesystem_error/cons.cc e38807857185bfa4fa204e43c8d76017 libstdc++-v3/testsuite/experimental/filesystem/iterators/97731.cc ! a006bf4896a3ab51a977686eb5af2608 libstdc++-v3/testsuite/experimental/filesystem/iterators/directory_iterator.cc ! 6800b111af867d1c5dc76da92647aa5f libstdc++-v3/testsuite/experimental/filesystem/iterators/error_reporting.cc 80bbc9f1b2ea6c7f500e8644d05570a3 libstdc++-v3/testsuite/experimental/filesystem/iterators/pop.cc ! de6b07ec83a54c05b64ca4d6bff5757a libstdc++-v3/testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc 4bf5a178f6bbfd23a8d1f09e46377566 libstdc++-v3/testsuite/experimental/filesystem/operations/absolute.cc b6c97dcfa5875e35bd817ceef71106dc libstdc++-v3/testsuite/experimental/filesystem/operations/canonical.cc c979d08bc61ab33d1c6cda360f40c791 libstdc++-v3/testsuite/experimental/filesystem/operations/copy.cc fef1c8651e0cbfb01549c5b72aadbc39 libstdc++-v3/testsuite/experimental/filesystem/operations/copy_file.cc ! 1c06749732447770da445a16de413059 libstdc++-v3/testsuite/experimental/filesystem/operations/create_directories.cc ! 317f29c90d1d3057cd6b04a82da018fa libstdc++-v3/testsuite/experimental/filesystem/operations/create_directory.cc 102afdecfff9639d959c908bf8ca4d24 libstdc++-v3/testsuite/experimental/filesystem/operations/create_symlink.cc f613a7a13aba7ff97f2dc5f334d5219d libstdc++-v3/testsuite/experimental/filesystem/operations/current_path.cc b6f9f83cef2f2ba95a2192bcaf1f4864 libstdc++-v3/testsuite/experimental/filesystem/operations/equivalent.cc ! 3c93d6effedc549f4f047242502657dc libstdc++-v3/testsuite/experimental/filesystem/operations/exists.cc 22c3881333e194d83327843ef3822453 libstdc++-v3/testsuite/experimental/filesystem/operations/file_size.cc ! c360883dd40ebb4911fbc402d5c81e26 libstdc++-v3/testsuite/experimental/filesystem/operations/is_empty.cc 2a9b90a7de6f905407da9ed34a374ed6 libstdc++-v3/testsuite/experimental/filesystem/operations/last_write_time.cc 7ec5c0f902c789196ebec7b7878cf8d1 libstdc++-v3/testsuite/experimental/filesystem/operations/permissions.cc c212f31fe176502dcf5879b849cad120 libstdc++-v3/testsuite/experimental/filesystem/operations/read_symlink.cc ! b2434804edf60c4a00c9d2c1c59a5d45 libstdc++-v3/testsuite/experimental/filesystem/operations/remove.cc ! 929f7124480e1d5a90d315e22f7fb288 libstdc++-v3/testsuite/experimental/filesystem/operations/remove_all.cc d032a966b5c68f5f7ee9cc78de2ab201 libstdc++-v3/testsuite/experimental/filesystem/operations/rename.cc 7f64a5cd007797c662010bef0a36d653 libstdc++-v3/testsuite/experimental/filesystem/operations/space.cc 99989ba6e2f0b58f00abcc249759b5f5 libstdc++-v3/testsuite/experimental/filesystem/operations/status.cc ! d47b1af6f5fecaf7d0e2f34635e7faa7 libstdc++-v3/testsuite/experimental/filesystem/operations/temp_directory_path.cc 45702a06c1f1ce65575cf3d643ec9778 libstdc++-v3/testsuite/experimental/filesystem/path/append/path.cc 57259422207ece8ba121629f54f87323 libstdc++-v3/testsuite/experimental/filesystem/path/assign/assign.cc acd11e30150439c609f7b3127f4e669e libstdc++-v3/testsuite/experimental/filesystem/path/assign/copy.cc *************** bdca5b449a2866ee56b15878ca47b4d2 libstd *** 106140,106146 **** 6fde203beaf28bdbe59e1f641cc9b14e libstdc++-v3/testsuite/experimental/filesystem/path/decompose/stem.cc 190335f80ebb2bf3fb729a09fd939d74 libstdc++-v3/testsuite/experimental/filesystem/path/factory/u8path-char8_t.cc f9492cf07e7026aaea955fa1e558f7f5 libstdc++-v3/testsuite/experimental/filesystem/path/factory/u8path.cc ! 59ec219899f528af6c94f8441065ed04 libstdc++-v3/testsuite/experimental/filesystem/path/generic/generic_string.cc ffce0d11824874837afc295ef67274f7 libstdc++-v3/testsuite/experimental/filesystem/path/itr/traversal.cc 54eab7f1d86169097b5f84e186744b59 libstdc++-v3/testsuite/experimental/filesystem/path/modifiers/clear.cc 5acb84c711c714b0edc23526d03967a4 libstdc++-v3/testsuite/experimental/filesystem/path/modifiers/make_preferred.cc --- 106697,106703 ---- 6fde203beaf28bdbe59e1f641cc9b14e libstdc++-v3/testsuite/experimental/filesystem/path/decompose/stem.cc 190335f80ebb2bf3fb729a09fd939d74 libstdc++-v3/testsuite/experimental/filesystem/path/factory/u8path-char8_t.cc f9492cf07e7026aaea955fa1e558f7f5 libstdc++-v3/testsuite/experimental/filesystem/path/factory/u8path.cc ! 0ad981125fc6016d35203b729cf1cbb2 libstdc++-v3/testsuite/experimental/filesystem/path/generic/generic_string.cc ffce0d11824874837afc295ef67274f7 libstdc++-v3/testsuite/experimental/filesystem/path/itr/traversal.cc 54eab7f1d86169097b5f84e186744b59 libstdc++-v3/testsuite/experimental/filesystem/path/modifiers/clear.cc 5acb84c711c714b0edc23526d03967a4 libstdc++-v3/testsuite/experimental/filesystem/path/modifiers/make_preferred.cc *************** ffce0d11824874837afc295ef67274f7 libstd *** 106148,106157 **** d3a0993e01a866eee9daa4be4e2abf1a libstdc++-v3/testsuite/experimental/filesystem/path/modifiers/replace_extension.cc 8c01898d27ed29437b8d2495915e1842 libstdc++-v3/testsuite/experimental/filesystem/path/modifiers/replace_filename.cc fd6f644d023cc2745afe68394005258d libstdc++-v3/testsuite/experimental/filesystem/path/modifiers/swap.cc ! c0bb64e5410accf7d6f05f5c5911f55a libstdc++-v3/testsuite/experimental/filesystem/path/native/alloc.cc 6972da7c2da200c073d985ccbd580534 libstdc++-v3/testsuite/experimental/filesystem/path/native/conv_c++23.cc ! 18a009bbb1dd2dbce0e598440967957c libstdc++-v3/testsuite/experimental/filesystem/path/native/string-char8_t.cc ! 059f40241c938993d01d4a83c46d8d0e libstdc++-v3/testsuite/experimental/filesystem/path/native/string.cc e0322e4af4639ba7782f71db9a36d5bf libstdc++-v3/testsuite/experimental/filesystem/path/nonmember/hash_value.cc 59fca3faabd22effe0e0b5c627a50bc2 libstdc++-v3/testsuite/experimental/filesystem/path/preferred_separator.cc 16f3fd229dd6e05a61503c896964d850 libstdc++-v3/testsuite/experimental/filesystem/path/query/empty.cc --- 106705,106714 ---- d3a0993e01a866eee9daa4be4e2abf1a libstdc++-v3/testsuite/experimental/filesystem/path/modifiers/replace_extension.cc 8c01898d27ed29437b8d2495915e1842 libstdc++-v3/testsuite/experimental/filesystem/path/modifiers/replace_filename.cc fd6f644d023cc2745afe68394005258d libstdc++-v3/testsuite/experimental/filesystem/path/modifiers/swap.cc ! 602e16654f417884aee4047a349fc149 libstdc++-v3/testsuite/experimental/filesystem/path/native/alloc.cc 6972da7c2da200c073d985ccbd580534 libstdc++-v3/testsuite/experimental/filesystem/path/native/conv_c++23.cc ! 0bc4b2585d32714bd319e02d238619a5 libstdc++-v3/testsuite/experimental/filesystem/path/native/string-char8_t.cc ! 78bb553f4468218799dbbc46f83d1c98 libstdc++-v3/testsuite/experimental/filesystem/path/native/string.cc e0322e4af4639ba7782f71db9a36d5bf libstdc++-v3/testsuite/experimental/filesystem/path/nonmember/hash_value.cc 59fca3faabd22effe0e0b5c627a50bc2 libstdc++-v3/testsuite/experimental/filesystem/path/preferred_separator.cc 16f3fd229dd6e05a61503c896964d850 libstdc++-v3/testsuite/experimental/filesystem/path/query/empty.cc *************** ca4831e80f764df13adf47bf2ff3b91b libstd *** 106222,106236 **** 91b3f28e60bda017cb352b8f41c6af40 libstdc++-v3/testsuite/experimental/net/execution_context/use_service.cc 7dce05799b0c077110c335764cd8c92c libstdc++-v3/testsuite/experimental/net/executor/1.cc b52f1020d5742e07ec0e66664e3c647b libstdc++-v3/testsuite/experimental/net/headers.cc ! 98e8f7797a78ef6dbdccf737f8d64e56 libstdc++-v3/testsuite/experimental/net/internet/address/v4/comparisons.cc ! f373999711c9ab4dd6f530ed68e38df5 libstdc++-v3/testsuite/experimental/net/internet/address/v4/cons.cc ! 56ffce6e6a9d361ceafc32cb95b189e6 libstdc++-v3/testsuite/experimental/net/internet/address/v4/creation.cc ! 7f134248d0814628d03377b7e3fe1537 libstdc++-v3/testsuite/experimental/net/internet/address/v4/members.cc ! 52d5655db8f4d201df8c492943e61c92 libstdc++-v3/testsuite/experimental/net/internet/address/v6/members.cc ! b51d7b0f9dab91cbcc262ae70ec4e6e0 libstdc++-v3/testsuite/experimental/net/internet/resolver/base.cc ! 75a9bc3559f252e57b0b429b7e920140 libstdc++-v3/testsuite/experimental/net/internet/resolver/ops/lookup.cc ! 1c81053c6189e47d8836daa386009f1d libstdc++-v3/testsuite/experimental/net/internet/resolver/ops/reverse.cc ! 648957bc8ebaa45e296fdf9a1fd109a9 libstdc++-v3/testsuite/experimental/net/socket/basic_socket.cc dff9f73f427973bef034446cd465c949 libstdc++-v3/testsuite/experimental/net/system_context/1.cc 58a298db4c46d09139a40339bfb676a7 libstdc++-v3/testsuite/experimental/net/timer/waitable/cons.cc 1286e9bb26137b5a9ca36779262a518c libstdc++-v3/testsuite/experimental/net/timer/waitable/dest.cc --- 106779,106797 ---- 91b3f28e60bda017cb352b8f41c6af40 libstdc++-v3/testsuite/experimental/net/execution_context/use_service.cc 7dce05799b0c077110c335764cd8c92c libstdc++-v3/testsuite/experimental/net/executor/1.cc b52f1020d5742e07ec0e66664e3c647b libstdc++-v3/testsuite/experimental/net/headers.cc ! 55b56feb5f17da7b99d9125fc73e319c libstdc++-v3/testsuite/experimental/net/internet/address/v4/comparisons.cc ! a4fefbd995a2a3c0a023baa2781bb452 libstdc++-v3/testsuite/experimental/net/internet/address/v4/cons.cc ! 53dbbd560a1c7d8280b28f5550ce19a9 libstdc++-v3/testsuite/experimental/net/internet/address/v4/creation.cc ! 9082b7fb3a2bafce4ebe6de7c4e5f7fb libstdc++-v3/testsuite/experimental/net/internet/address/v4/members.cc ! 3410b243c8904f63374106e058b00203 libstdc++-v3/testsuite/experimental/net/internet/address/v6/members.cc ! fe4882ee3fc36b19b813e518eebb99ac libstdc++-v3/testsuite/experimental/net/internet/resolver/base.cc ! 2bc8cc1bc13dcfc4e894eb18b6b00fc4 libstdc++-v3/testsuite/experimental/net/internet/resolver/ops/lookup.cc ! d18697c7075b4675ebcfeb2b2a2ef52b libstdc++-v3/testsuite/experimental/net/internet/resolver/ops/reverse.cc ! 760dec58bec2534cd56103a2710b1e16 libstdc++-v3/testsuite/experimental/net/internet/socket/opt.cc ! 47ab303b0324b578953893e188a1c4e8 libstdc++-v3/testsuite/experimental/net/internet/tcp.cc ! 31837180dee34f479c2c7eaafac7b04a libstdc++-v3/testsuite/experimental/net/internet/udp.cc ! 95ed6ae9de6d0840055e17fa9a2b125b libstdc++-v3/testsuite/experimental/net/socket/basic_socket.cc ! adecd78d67594befd2f753ec386eacc4 libstdc++-v3/testsuite/experimental/net/socket/socket_base.cc dff9f73f427973bef034446cd465c949 libstdc++-v3/testsuite/experimental/net/system_context/1.cc 58a298db4c46d09139a40339bfb676a7 libstdc++-v3/testsuite/experimental/net/timer/waitable/cons.cc 1286e9bb26137b5a9ca36779262a518c libstdc++-v3/testsuite/experimental/net/timer/waitable/dest.cc *************** bcf7b763547a1691ef6a8a2530583e51 libstd *** 106291,106301 **** e39dbe15adff6a48709c015e1737f841 libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_forward_list.cc 0fec1fef10a367ca49b10d7e819bf9d9 libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_list.cc a65461dbdc0425a5a506050385b03262 libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_map.cc ! b4e9fb079a163bb923b85da7640d6629 libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_match.cc 6d4f8a8ee0c600a61a298560ecfc0a9b libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_multimap.cc f769c26c7c36c1a7472da31ca6b46df4 libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_multiset.cc 106f348fb2e83f8297c640d33f8fa714 libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_set.cc ! 355ac82a39b782f1035389a061725991 libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_string.cc a5cfccccc9f55f58c1ca53fefe18bd46 libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_unordered_map.cc ee192f2d5f243b44bd819644bc434165 libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_unordered_multimap.cc 06666f33bdf5d24d3cae3d7b7eaf2e1d libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_unordered_multiset.cc --- 106852,106862 ---- e39dbe15adff6a48709c015e1737f841 libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_forward_list.cc 0fec1fef10a367ca49b10d7e819bf9d9 libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_list.cc a65461dbdc0425a5a506050385b03262 libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_map.cc ! 38a306e95792f6986b9338d87617cadd libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_match.cc 6d4f8a8ee0c600a61a298560ecfc0a9b libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_multimap.cc f769c26c7c36c1a7472da31ca6b46df4 libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_multiset.cc 106f348fb2e83f8297c640d33f8fa714 libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_set.cc ! 49fc415b0b3579e72b81dc476665ae94 libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_string.cc a5cfccccc9f55f58c1ca53fefe18bd46 libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_unordered_map.cc ee192f2d5f243b44bd819644bc434165 libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_unordered_multimap.cc 06666f33bdf5d24d3cae3d7b7eaf2e1d libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_unordered_multiset.cc *************** d33849262494d8f9c5a099ae807f4d3b libstd *** 106319,106325 **** 04b9e051ec2de1e077010713146435ac libstdc++-v3/testsuite/experimental/propagate_const/swap/1.cc f622008c5ec7680a2ac920136d22446f libstdc++-v3/testsuite/experimental/propagate_const/swap/lwg3413.cc 97e54b4a473f5119fde9f19e8bc77013 libstdc++-v3/testsuite/experimental/propagate_const/typedefs.cc ! 141d539b96214b18c1db0041c7679e01 libstdc++-v3/testsuite/experimental/random/randint.cc d11b0cf5365cf27c6d9b1d7791b5032a libstdc++-v3/testsuite/experimental/ratio/value.cc 6158ee68c53b1eb6668b2d3c43fb5fec libstdc++-v3/testsuite/experimental/set/erasure.cc 95bdc242cfce24b906dbef7ece3f3c80 libstdc++-v3/testsuite/experimental/simd/driver.sh --- 106880,106886 ---- 04b9e051ec2de1e077010713146435ac libstdc++-v3/testsuite/experimental/propagate_const/swap/1.cc f622008c5ec7680a2ac920136d22446f libstdc++-v3/testsuite/experimental/propagate_const/swap/lwg3413.cc 97e54b4a473f5119fde9f19e8bc77013 libstdc++-v3/testsuite/experimental/propagate_const/typedefs.cc ! b890a4bfa8d8cd009cb85b0163f0b1da libstdc++-v3/testsuite/experimental/random/randint.cc d11b0cf5365cf27c6d9b1d7791b5032a libstdc++-v3/testsuite/experimental/ratio/value.cc 6158ee68c53b1eb6668b2d3c43fb5fec libstdc++-v3/testsuite/experimental/set/erasure.cc 95bdc242cfce24b906dbef7ece3f3c80 libstdc++-v3/testsuite/experimental/simd/driver.sh *************** f27b100c73455c1b538621e7534b8867 libstd *** 106402,106408 **** 3cf9933194b837bfc68285243caf5480 libstdc++-v3/testsuite/experimental/string_view/operations/compare/char/1.cc 4bfc2e398a1af7fc8baa800ae3b77182 libstdc++-v3/testsuite/experimental/string_view/operations/compare/char/13650.cc 61bf9c835de89dcc49f8a8d3ee1ada9d libstdc++-v3/testsuite/experimental/string_view/operations/compare/char/70483.cc ! 5fceb71e1f64e339d64542be185b1d93 libstdc++-v3/testsuite/experimental/string_view/operations/compare/wchar_t/1.cc f07f49be3fb63c60e70d9d0a0d7803f0 libstdc++-v3/testsuite/experimental/string_view/operations/compare/wchar_t/13650.cc 3312e625b8a0bc024b0b3452991d7cee libstdc++-v3/testsuite/experimental/string_view/operations/copy/char/1.cc 4036d86c471ad16b144ae2b452d0d501 libstdc++-v3/testsuite/experimental/string_view/operations/copy/wchar_t/1.cc --- 106963,106969 ---- 3cf9933194b837bfc68285243caf5480 libstdc++-v3/testsuite/experimental/string_view/operations/compare/char/1.cc 4bfc2e398a1af7fc8baa800ae3b77182 libstdc++-v3/testsuite/experimental/string_view/operations/compare/char/13650.cc 61bf9c835de89dcc49f8a8d3ee1ada9d libstdc++-v3/testsuite/experimental/string_view/operations/compare/char/70483.cc ! 9f9dd6c338d643bc88e3f5a5283e5c32 libstdc++-v3/testsuite/experimental/string_view/operations/compare/wchar_t/1.cc f07f49be3fb63c60e70d9d0a0d7803f0 libstdc++-v3/testsuite/experimental/string_view/operations/compare/wchar_t/13650.cc 3312e625b8a0bc024b0b3452991d7cee libstdc++-v3/testsuite/experimental/string_view/operations/copy/char/1.cc 4036d86c471ad16b144ae2b452d0d501 libstdc++-v3/testsuite/experimental/string_view/operations/copy/wchar_t/1.cc *************** f94bea1910070856d4cae7efca4beca3 libstd *** 106806,106832 **** 1888ed86914a7f7d2120635c05a1203c libstdc++-v3/testsuite/ext/vstring/requirements/typedefs.cc b32547780ab0170daaf7ba32e51255b3 libstdc++-v3/testsuite/ext/vstring/types/23767.cc 6075d499921cafc9adbb1ee50a9ae4c9 libstdc++-v3/testsuite/lib/dg-options.exp ! c5464cd19703c04d14fbb8d161e35be7 libstdc++-v3/testsuite/lib/gdb-test.exp ! 119ea02c7789706fa631d1a0e54bf29d libstdc++-v3/testsuite/lib/libstdc++.exp ! fcd3449d872e7b23bfb6165aac9b9fd9 libstdc++-v3/testsuite/lib/prune.exp 6554148313affda6d0d8314d097b450d libstdc++-v3/testsuite/libstdc++-abi/abi.exp 33cb7d617aef9ee6c04c69c0e91f20b6 libstdc++-v3/testsuite/libstdc++-dg/conformance.exp 17358114f0793d43ab875182de659dde libstdc++-v3/testsuite/libstdc++-prettyprinters/48362.cc 7a020d565ba8c8ed2f851550aef0e2b1 libstdc++-v3/testsuite/libstdc++-prettyprinters/59161.cc ! f19315bee57ac648f15842af63dc132d libstdc++-v3/testsuite/libstdc++-prettyprinters/80276.cc 61687718a5859d72e3d508a3cff4951a libstdc++-v3/testsuite/libstdc++-prettyprinters/91997.cc 3681a82bbc6871b4ee9416dc9f079e9c libstdc++-v3/testsuite/libstdc++-prettyprinters/compat.cc ! 88968bdbac969080d58d376da96f633b libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx11.cc 575c04012b89f3517818052495fa754b libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx17.cc de4863975b6ff3936ee27e239a50c3fc libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx20.cc 9db277893db6463f4a286e2e86d3ba23 libstdc++-v3/testsuite/libstdc++-prettyprinters/debug.cc 6ee25bfa5657675a8107bc8df6359203 libstdc++-v3/testsuite/libstdc++-prettyprinters/debug_cxx11.cc 89bc588d761a075ad9da5943c19c1174 libstdc++-v3/testsuite/libstdc++-prettyprinters/filesystem-ts.cc ! 7cbf6090dac51d3c96868d8dee34fbe2 libstdc++-v3/testsuite/libstdc++-prettyprinters/libfundts.cc ! 4f118feae980fe79d39e02f7c3b32496 libstdc++-v3/testsuite/libstdc++-prettyprinters/prettyprinters.exp 84dbf4276cdf8e8dc2259fc95a5804ba libstdc++-v3/testsuite/libstdc++-prettyprinters/shared_ptr.cc ! f0d6fd71bb3e8a70748e302dc9102088 libstdc++-v3/testsuite/libstdc++-prettyprinters/simple.cc ! c6fdaec294dc32af6281c38c83d9d891 libstdc++-v3/testsuite/libstdc++-prettyprinters/simple11.cc 5fdc102918309dda0f2f514ff52850e1 libstdc++-v3/testsuite/libstdc++-prettyprinters/tr1.cc 4c9640c7acfd2400222f26a953489714 libstdc++-v3/testsuite/libstdc++-prettyprinters/whatis.cc cc762851bcdba119feec0f3235e4468c libstdc++-v3/testsuite/libstdc++-prettyprinters/whatis2.cc --- 107367,107393 ---- 1888ed86914a7f7d2120635c05a1203c libstdc++-v3/testsuite/ext/vstring/requirements/typedefs.cc b32547780ab0170daaf7ba32e51255b3 libstdc++-v3/testsuite/ext/vstring/types/23767.cc 6075d499921cafc9adbb1ee50a9ae4c9 libstdc++-v3/testsuite/lib/dg-options.exp ! 9d3360da3142060294f47a364bf5975b libstdc++-v3/testsuite/lib/gdb-test.exp ! f9fcbd8dec04b924fd4e917ed3e5bc10 libstdc++-v3/testsuite/lib/libstdc++.exp ! d0c11fe8cb799b7e38c3d765c7786345 libstdc++-v3/testsuite/lib/prune.exp 6554148313affda6d0d8314d097b450d libstdc++-v3/testsuite/libstdc++-abi/abi.exp 33cb7d617aef9ee6c04c69c0e91f20b6 libstdc++-v3/testsuite/libstdc++-dg/conformance.exp 17358114f0793d43ab875182de659dde libstdc++-v3/testsuite/libstdc++-prettyprinters/48362.cc 7a020d565ba8c8ed2f851550aef0e2b1 libstdc++-v3/testsuite/libstdc++-prettyprinters/59161.cc ! be2c942175f821c48748bb874e440b9b libstdc++-v3/testsuite/libstdc++-prettyprinters/80276.cc 61687718a5859d72e3d508a3cff4951a libstdc++-v3/testsuite/libstdc++-prettyprinters/91997.cc 3681a82bbc6871b4ee9416dc9f079e9c libstdc++-v3/testsuite/libstdc++-prettyprinters/compat.cc ! ebf226930e3a3280ab96a29d5aadbc4c libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx11.cc 575c04012b89f3517818052495fa754b libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx17.cc de4863975b6ff3936ee27e239a50c3fc libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx20.cc 9db277893db6463f4a286e2e86d3ba23 libstdc++-v3/testsuite/libstdc++-prettyprinters/debug.cc 6ee25bfa5657675a8107bc8df6359203 libstdc++-v3/testsuite/libstdc++-prettyprinters/debug_cxx11.cc 89bc588d761a075ad9da5943c19c1174 libstdc++-v3/testsuite/libstdc++-prettyprinters/filesystem-ts.cc ! 97daf640538dd54fb61e3414f8a90dd8 libstdc++-v3/testsuite/libstdc++-prettyprinters/libfundts.cc ! 9bdb95d75bf15d57c1f532c34c42a5c6 libstdc++-v3/testsuite/libstdc++-prettyprinters/prettyprinters.exp 84dbf4276cdf8e8dc2259fc95a5804ba libstdc++-v3/testsuite/libstdc++-prettyprinters/shared_ptr.cc ! 238d0804701db3c28b36b38d9dff3216 libstdc++-v3/testsuite/libstdc++-prettyprinters/simple.cc ! 11daf7ce9653feb94cecf558504924f4 libstdc++-v3/testsuite/libstdc++-prettyprinters/simple11.cc 5fdc102918309dda0f2f514ff52850e1 libstdc++-v3/testsuite/libstdc++-prettyprinters/tr1.cc 4c9640c7acfd2400222f26a953489714 libstdc++-v3/testsuite/libstdc++-prettyprinters/whatis.cc cc762851bcdba119feec0f3235e4468c libstdc++-v3/testsuite/libstdc++-prettyprinters/whatis2.cc *************** c47523ac5b941c5ebb99ec71fa9fd031 libstd *** 107083,107093 **** 18db2c80e9edd807d8e894df57bfa625 libstdc++-v3/testsuite/std/ranges/adaptors/93978.cc 551333c56748ecbac1d26b7e4cccc989 libstdc++-v3/testsuite/std/ranges/adaptors/95322.cc fd10cb8fed0aa319ece5db612f3e92f4 libstdc++-v3/testsuite/std/ranges/adaptors/99433.cc ! b043773576d00674dce74ddbf28129e7 libstdc++-v3/testsuite/std/ranges/adaptors/all.cc 70645e37b88d307dc15771cd6a6e26b8 libstdc++-v3/testsuite/std/ranges/adaptors/common.cc 81c8f862a1084443f4afec002edd9cfe libstdc++-v3/testsuite/std/ranges/adaptors/conditionally_borrowed.cc bd219a8b5c7920e7e3d2276351044dac libstdc++-v3/testsuite/std/ranges/adaptors/counted.cc ! 520268c61045fba5170ebc728c576d3e libstdc++-v3/testsuite/std/ranges/adaptors/detail/semiregular_box.cc 1f9c75d0ff4dcf1f0a325584c9a2c4f5 libstdc++-v3/testsuite/std/ranges/adaptors/drop.cc 93a1ae3dea7b82345420d2bdaa1de02a libstdc++-v3/testsuite/std/ranges/adaptors/drop_while.cc e6598408c942e63592533b0a8e862d95 libstdc++-v3/testsuite/std/ranges/adaptors/elements.cc --- 107644,107654 ---- 18db2c80e9edd807d8e894df57bfa625 libstdc++-v3/testsuite/std/ranges/adaptors/93978.cc 551333c56748ecbac1d26b7e4cccc989 libstdc++-v3/testsuite/std/ranges/adaptors/95322.cc fd10cb8fed0aa319ece5db612f3e92f4 libstdc++-v3/testsuite/std/ranges/adaptors/99433.cc ! 2942f66c2a0796f0059d6c62f4273cf7 libstdc++-v3/testsuite/std/ranges/adaptors/all.cc 70645e37b88d307dc15771cd6a6e26b8 libstdc++-v3/testsuite/std/ranges/adaptors/common.cc 81c8f862a1084443f4afec002edd9cfe libstdc++-v3/testsuite/std/ranges/adaptors/conditionally_borrowed.cc bd219a8b5c7920e7e3d2276351044dac libstdc++-v3/testsuite/std/ranges/adaptors/counted.cc ! f08026c124e2c6f228702d2ddd1bb3bb libstdc++-v3/testsuite/std/ranges/adaptors/detail/copyable_box.cc 1f9c75d0ff4dcf1f0a325584c9a2c4f5 libstdc++-v3/testsuite/std/ranges/adaptors/drop.cc 93a1ae3dea7b82345420d2bdaa1de02a libstdc++-v3/testsuite/std/ranges/adaptors/drop_while.cc e6598408c942e63592533b0a8e862d95 libstdc++-v3/testsuite/std/ranges/adaptors/elements.cc *************** abee4ec65cefb3600f85cec4913c7946 libstd *** 107110,107129 **** 121587a18e4c39b7ac2b978758f72268 libstdc++-v3/testsuite/std/ranges/iota/93267.cc 3832ba93e310422cc36e6a8a2484ddef libstdc++-v3/testsuite/std/ranges/iota/96042.cc ccdc4ae1b41638162b9e60936a7f2e0e libstdc++-v3/testsuite/std/ranges/iota/difference_type.cc ! 623ba2087583c74486075bbedb9278e4 libstdc++-v3/testsuite/std/ranges/iota/iota_view.cc e75edf80cec13e421cd663c039d2ca93 libstdc++-v3/testsuite/std/ranges/iota/iterator.cc bd95f0058da01ae7c3f9a944b0cb2fba libstdc++-v3/testsuite/std/ranges/iota/lwg3292_neg.cc f6414f7f1cce883d75748248ec104110 libstdc++-v3/testsuite/std/ranges/iota/max_size_type.cc cfd013ee643ff8cc3c5e2e2b102bd24b libstdc++-v3/testsuite/std/ranges/iota/size.cc ! cf8478cbd47743744301d44850e03ae1 libstdc++-v3/testsuite/std/ranges/istream_view.cc 39a74ff1ef561d51b687d686060239c1 libstdc++-v3/testsuite/std/ranges/p2259.cc 1a4f67e2431ce8671bfe15a68aa14003 libstdc++-v3/testsuite/std/ranges/p2367.cc e5d7757712fcb6070d35fb61bb9686ec libstdc++-v3/testsuite/std/ranges/range.cc 64b49ff9679c02a817d8b8e1c304a977 libstdc++-v3/testsuite/std/ranges/refinements.cc 0f79f9d63bf7c793e2205c828bfc36c7 libstdc++-v3/testsuite/std/ranges/safe_range.cc 20083272df7fb4c144b0ed56e5f4d15a libstdc++-v3/testsuite/std/ranges/safe_range_types.cc ! db20407268d4a76ba6f35ce68e58c3b0 libstdc++-v3/testsuite/std/ranges/single_view.cc e0aeb07435374f4671b8db98e1211c94 libstdc++-v3/testsuite/std/ranges/sized.cc a4e967aec4cc7a9ebd4c6debdbfd3cfd libstdc++-v3/testsuite/std/ranges/subrange/96042.cc e8752b4f410857257c4def237d482bf7 libstdc++-v3/testsuite/std/ranges/subrange/97512.cc 1296c3e0f2c2c6e1cbf08f5653d24b2d libstdc++-v3/testsuite/std/ranges/subrange/constexpr.cc --- 107671,107692 ---- 121587a18e4c39b7ac2b978758f72268 libstdc++-v3/testsuite/std/ranges/iota/93267.cc 3832ba93e310422cc36e6a8a2484ddef libstdc++-v3/testsuite/std/ranges/iota/96042.cc ccdc4ae1b41638162b9e60936a7f2e0e libstdc++-v3/testsuite/std/ranges/iota/difference_type.cc ! 0819563613d6bc5f307077f94daf19a2 libstdc++-v3/testsuite/std/ranges/iota/iota_view.cc e75edf80cec13e421cd663c039d2ca93 libstdc++-v3/testsuite/std/ranges/iota/iterator.cc bd95f0058da01ae7c3f9a944b0cb2fba libstdc++-v3/testsuite/std/ranges/iota/lwg3292_neg.cc f6414f7f1cce883d75748248ec104110 libstdc++-v3/testsuite/std/ranges/iota/max_size_type.cc cfd013ee643ff8cc3c5e2e2b102bd24b libstdc++-v3/testsuite/std/ranges/iota/size.cc ! a0d27a4084ead9098b776f82295f0a03 libstdc++-v3/testsuite/std/ranges/istream_view.cc 39a74ff1ef561d51b687d686060239c1 libstdc++-v3/testsuite/std/ranges/p2259.cc + 1b1e5fd6e20b73c40efa996686a5be0c libstdc++-v3/testsuite/std/ranges/p2325.cc 1a4f67e2431ce8671bfe15a68aa14003 libstdc++-v3/testsuite/std/ranges/p2367.cc e5d7757712fcb6070d35fb61bb9686ec libstdc++-v3/testsuite/std/ranges/range.cc 64b49ff9679c02a817d8b8e1c304a977 libstdc++-v3/testsuite/std/ranges/refinements.cc 0f79f9d63bf7c793e2205c828bfc36c7 libstdc++-v3/testsuite/std/ranges/safe_range.cc 20083272df7fb4c144b0ed56e5f4d15a libstdc++-v3/testsuite/std/ranges/safe_range_types.cc ! 81c56c40ccdc738086be3a3efd582003 libstdc++-v3/testsuite/std/ranges/single_view.cc e0aeb07435374f4671b8db98e1211c94 libstdc++-v3/testsuite/std/ranges/sized.cc + 3b43079628213bcfeda0d10685ba810f libstdc++-v3/testsuite/std/ranges/subrange/1.cc a4e967aec4cc7a9ebd4c6debdbfd3cfd libstdc++-v3/testsuite/std/ranges/subrange/96042.cc e8752b4f410857257c4def237d482bf7 libstdc++-v3/testsuite/std/ranges/subrange/97512.cc 1296c3e0f2c2c6e1cbf08f5653d24b2d libstdc++-v3/testsuite/std/ranges/subrange/constexpr.cc *************** e8752b4f410857257c4def237d482bf7 libstd *** 107132,107138 **** e289d02d97c864fdb013f2ae524cb77e libstdc++-v3/testsuite/std/ranges/subrange/lwg3433.cc 81e267db1008e9c4480743002c9c5984 libstdc++-v3/testsuite/std/ranges/subrange/sizeof.cc 8f00f7d4ee3127deef32cd3ebddbbdf4 libstdc++-v3/testsuite/std/ranges/subrange/tuple_like.cc ! 3427787c3eef660f1144e24f635d6314 libstdc++-v3/testsuite/std/ranges/view.cc ad173933fa56d91facb69d926ba4ed5b libstdc++-v3/testsuite/std/time/clock/file/members.cc 582848e36bfa4eb0511742a823ef559b libstdc++-v3/testsuite/std/time/clock/file/overview.cc 226feb67cc460aea99599c9f43c14726 libstdc++-v3/testsuite/std/time/day/1.cc --- 107695,107701 ---- e289d02d97c864fdb013f2ae524cb77e libstdc++-v3/testsuite/std/ranges/subrange/lwg3433.cc 81e267db1008e9c4480743002c9c5984 libstdc++-v3/testsuite/std/ranges/subrange/sizeof.cc 8f00f7d4ee3127deef32cd3ebddbbdf4 libstdc++-v3/testsuite/std/ranges/subrange/tuple_like.cc ! 8d54b32a188cfa580317a9a24886f4c4 libstdc++-v3/testsuite/std/ranges/view.cc ad173933fa56d91facb69d926ba4ed5b libstdc++-v3/testsuite/std/time/clock/file/members.cc 582848e36bfa4eb0511742a823ef559b libstdc++-v3/testsuite/std/time/clock/file/overview.cc 226feb67cc460aea99599c9f43c14726 libstdc++-v3/testsuite/std/time/day/1.cc *************** c19ea7d2b81b325fb60d02b8d489372a libstd *** 107860,107893 **** 5f5f98f71fe68eb622af78e692168fe5 libstdc++-v3/testsuite/util/testsuite_abi.h 8e1f4e43f1dd4359c02159b94339b136 libstdc++-v3/testsuite/util/testsuite_abi_check.cc e961644701157db73d4cf2cc9171e468 libstdc++-v3/testsuite/util/testsuite_allocator.cc ! cae089f7cf4ef661e9c1546049aa8cca libstdc++-v3/testsuite/util/testsuite_allocator.h a2f6445ffcf9d0cfe166fbc9acb26232 libstdc++-v3/testsuite/util/testsuite_api.h 695fd3a6c85e6721e0e1856cb391e5b0 libstdc++-v3/testsuite/util/testsuite_character.cc 45083d6138499a97076b79c8648b7cf4 libstdc++-v3/testsuite/util/testsuite_character.h ! fa074c686301b5105ab18a96c2100955 libstdc++-v3/testsuite/util/testsuite_common_types.h 984197a9cc97d5843e07b08a9a1fc171 libstdc++-v3/testsuite/util/testsuite_container_traits.h 90db88e42f244f42ad35a897a9461b03 libstdc++-v3/testsuite/util/testsuite_containergen.h cadd3d87197d959d51e840cf34ad2697 libstdc++-v3/testsuite/util/testsuite_containers.h aeb39a2190eb48653793a7d8905eaae8 libstdc++-v3/testsuite/util/testsuite_counter_type.h ee607caf7aa5fd0472cd17cbad7b0bbc libstdc++-v3/testsuite/util/testsuite_error.h ! ddae07af68e759bf8222f8d402a5aa0d libstdc++-v3/testsuite/util/testsuite_fs.h 107919fef8e90c0d358a971b89f16155 libstdc++-v3/testsuite/util/testsuite_greedy_ops.h 10f68fa333343c768f46d38ea805b39f libstdc++-v3/testsuite/util/testsuite_hooks.cc 4f0f4d2b90ba61df04bae848fe2a33c7 libstdc++-v3/testsuite/util/testsuite_hooks.h 1a76def38110431282b928a61ec6119a libstdc++-v3/testsuite/util/testsuite_io.h ! ceae7d7e41e3993a23880434b758af48 libstdc++-v3/testsuite/util/testsuite_iterators.h 4ddebfe4cc094998e91f7fa0549cc59f libstdc++-v3/testsuite/util/testsuite_new_operators.h ea911a831eeefa2e82c77ba84035d7c9 libstdc++-v3/testsuite/util/testsuite_performance.h a1640714fc4e3657cefdedd4db899838 libstdc++-v3/testsuite/util/testsuite_random.h 21750d2170aee6105ae28fc56a930fcd libstdc++-v3/testsuite/util/testsuite_regex.h 063428f11af85289791b3fa97259d0ae libstdc++-v3/testsuite/util/testsuite_rng.h 146a9ce05621e17b50494bb3f4feecd0 libstdc++-v3/testsuite/util/testsuite_rvalref.h ! 52647b951ba3aa06558c24c2dd00a0f4 libstdc++-v3/testsuite/util/testsuite_shared.cc 3f43da4f3a13e674d6e64e19ebecd413 libstdc++-v3/testsuite/util/testsuite_tr1.h d7927f85e40de3823114f01b93b3bf21 libstdc++-v3/testsuite/util/thread/all.h b950d655469c477755252b1e18009596 libtool-ldflags 1936a81f2a04a996ff99c7ebdebc5003 libtool.m4 ! f12819a0f6886089b0f00429c722246c libvtv/ChangeLog 7ad6a0c753c219e31237f212c5854dd8 libvtv/Makefile.am b1170aae9472f26fdc8326737dc22aba libvtv/Makefile.in 3b765c4f4a0a0f606db1472bce2b8d29 libvtv/acinclude.m4 --- 108423,108456 ---- 5f5f98f71fe68eb622af78e692168fe5 libstdc++-v3/testsuite/util/testsuite_abi.h 8e1f4e43f1dd4359c02159b94339b136 libstdc++-v3/testsuite/util/testsuite_abi_check.cc e961644701157db73d4cf2cc9171e468 libstdc++-v3/testsuite/util/testsuite_allocator.cc ! aee0d2978a0aca22621e8d3ff0aa7a90 libstdc++-v3/testsuite/util/testsuite_allocator.h a2f6445ffcf9d0cfe166fbc9acb26232 libstdc++-v3/testsuite/util/testsuite_api.h 695fd3a6c85e6721e0e1856cb391e5b0 libstdc++-v3/testsuite/util/testsuite_character.cc 45083d6138499a97076b79c8648b7cf4 libstdc++-v3/testsuite/util/testsuite_character.h ! a12526b8db17727cb81fc72e102327f1 libstdc++-v3/testsuite/util/testsuite_common_types.h 984197a9cc97d5843e07b08a9a1fc171 libstdc++-v3/testsuite/util/testsuite_container_traits.h 90db88e42f244f42ad35a897a9461b03 libstdc++-v3/testsuite/util/testsuite_containergen.h cadd3d87197d959d51e840cf34ad2697 libstdc++-v3/testsuite/util/testsuite_containers.h aeb39a2190eb48653793a7d8905eaae8 libstdc++-v3/testsuite/util/testsuite_counter_type.h ee607caf7aa5fd0472cd17cbad7b0bbc libstdc++-v3/testsuite/util/testsuite_error.h ! b995b5167792ca47c05e7cb0e9a9cce7 libstdc++-v3/testsuite/util/testsuite_fs.h 107919fef8e90c0d358a971b89f16155 libstdc++-v3/testsuite/util/testsuite_greedy_ops.h 10f68fa333343c768f46d38ea805b39f libstdc++-v3/testsuite/util/testsuite_hooks.cc 4f0f4d2b90ba61df04bae848fe2a33c7 libstdc++-v3/testsuite/util/testsuite_hooks.h 1a76def38110431282b928a61ec6119a libstdc++-v3/testsuite/util/testsuite_io.h ! 92f08f3b55db9748eb24b10f4dae7615 libstdc++-v3/testsuite/util/testsuite_iterators.h 4ddebfe4cc094998e91f7fa0549cc59f libstdc++-v3/testsuite/util/testsuite_new_operators.h ea911a831eeefa2e82c77ba84035d7c9 libstdc++-v3/testsuite/util/testsuite_performance.h a1640714fc4e3657cefdedd4db899838 libstdc++-v3/testsuite/util/testsuite_random.h 21750d2170aee6105ae28fc56a930fcd libstdc++-v3/testsuite/util/testsuite_regex.h 063428f11af85289791b3fa97259d0ae libstdc++-v3/testsuite/util/testsuite_rng.h 146a9ce05621e17b50494bb3f4feecd0 libstdc++-v3/testsuite/util/testsuite_rvalref.h ! 445bb5ae6548a30e1836e8b74c16adea libstdc++-v3/testsuite/util/testsuite_shared.cc 3f43da4f3a13e674d6e64e19ebecd413 libstdc++-v3/testsuite/util/testsuite_tr1.h d7927f85e40de3823114f01b93b3bf21 libstdc++-v3/testsuite/util/thread/all.h b950d655469c477755252b1e18009596 libtool-ldflags 1936a81f2a04a996ff99c7ebdebc5003 libtool.m4 ! c42c43e38ace4356dd51127ac1bcb083 libvtv/ChangeLog 7ad6a0c753c219e31237f212c5854dd8 libvtv/Makefile.am b1170aae9472f26fdc8326737dc22aba libvtv/Makefile.in 3b765c4f4a0a0f606db1472bce2b8d29 libvtv/acinclude.m4 *************** fd301005dc07375a9b1b26c1df04e576 libvtv *** 107970,107988 **** 4a2d91c71136af55b12e42fa84195778 libvtv/vtv_utils.h 247597a3fcc5b5aa8bd923351c59d853 ltgcc.m4 06c2854f9cfe5864b2885e0d0e9c512f ltmain.sh ! 2571b0ed6588a033bea5f01cac388544 lto-plugin/ChangeLog b4172d0962c2ec3a954d98e768b4995e lto-plugin/Makefile.am 93fe746c6f1d54ade83e13d65096fe9f lto-plugin/Makefile.in 75fc65b35d0a47ac098f7a278d37060b lto-plugin/aclocal.m4 de4c999b99ec1e3d1bcb8a340bd8d5fd lto-plugin/config.h.in 7e3bb792a40841dadcac04d9301acb6e lto-plugin/configure 94b1550691bec5ce21db143723d02984 lto-plugin/configure.ac ! ee8b920dbb30b7045bd72613cdce99e8 lto-plugin/lto-plugin.c dee72a6a60e99528b0d17bf3ff9a1e15 ltoptions.m4 bc2f6032c98896249eadb56177c7d357 ltsugar.m4 c30cd33c496505f13d9fbdb6970c7c33 ltversion.m4 293853a13b7e218e3a4342cf85fbbf25 lt~obsolete.m4 ! 8275408bb130925157bccf2ba6d92b6b maintainer-scripts/ChangeLog 33c7bc2d2c55956dfac85a05d8a80eff maintainer-scripts/README 507e832af5f2d63b8a78eef217c807a7 maintainer-scripts/branch_changer.py c819510f0d438149c1518bda7b165ac4 maintainer-scripts/bugzilla-close-candidate.py --- 108533,108551 ---- 4a2d91c71136af55b12e42fa84195778 libvtv/vtv_utils.h 247597a3fcc5b5aa8bd923351c59d853 ltgcc.m4 06c2854f9cfe5864b2885e0d0e9c512f ltmain.sh ! 6629ad5e60bca469141a23bf6213c635 lto-plugin/ChangeLog b4172d0962c2ec3a954d98e768b4995e lto-plugin/Makefile.am 93fe746c6f1d54ade83e13d65096fe9f lto-plugin/Makefile.in 75fc65b35d0a47ac098f7a278d37060b lto-plugin/aclocal.m4 de4c999b99ec1e3d1bcb8a340bd8d5fd lto-plugin/config.h.in 7e3bb792a40841dadcac04d9301acb6e lto-plugin/configure 94b1550691bec5ce21db143723d02984 lto-plugin/configure.ac ! c3f7d906d1fe36c0be97624f53dc9e59 lto-plugin/lto-plugin.c dee72a6a60e99528b0d17bf3ff9a1e15 ltoptions.m4 bc2f6032c98896249eadb56177c7d357 ltsugar.m4 c30cd33c496505f13d9fbdb6970c7c33 ltversion.m4 293853a13b7e218e3a4342cf85fbbf25 lt~obsolete.m4 ! 12c098389400306ad713eee79dfba903 maintainer-scripts/ChangeLog 33c7bc2d2c55956dfac85a05d8a80eff maintainer-scripts/README 507e832af5f2d63b8a78eef217c807a7 maintainer-scripts/branch_changer.py c819510f0d438149c1518bda7b165ac4 maintainer-scripts/bugzilla-close-candidate.py *************** cf2baa0854f564a7785307e79f155efc symlin *** 108003,108009 **** 40bb1f4ce4a60a36d1ec50d66aeed4d1 test-driver cb06c1be6a41d68b0a65e0c1a91752bc ylwrap 03bf3ba8089f4bf475ef4035cf316a47 zlib/CMakeLists.txt ! b4ed5f862d4a2ce8edd4317e93907749 zlib/ChangeLog f10e5e9394787b288e91fed29533720a zlib/ChangeLog.gcj 0e9a37be8e3b85cc0ccf60504064c297 zlib/ChangeLog.jit b7a1991f01daea3efe108a215c5514a5 zlib/FAQ --- 108566,108572 ---- 40bb1f4ce4a60a36d1ec50d66aeed4d1 test-driver cb06c1be6a41d68b0a65e0c1a91752bc ylwrap 03bf3ba8089f4bf475ef4035cf316a47 zlib/CMakeLists.txt ! d05ebeb2d657084004f404597a7bcef4 zlib/ChangeLog f10e5e9394787b288e91fed29533720a zlib/ChangeLog.gcj 0e9a37be8e3b85cc0ccf60504064c297 zlib/ChangeLog.jit b7a1991f01daea3efe108a215c5514a5 zlib/FAQ diff -Nrcpad gcc-11.2.0/Makefile.def gcc-11.3.0/Makefile.def *** gcc-11.2.0/Makefile.def Wed Jul 28 06:55:06 2021 --- gcc-11.3.0/Makefile.def Thu Apr 21 07:58:52 2022 *************** flags_to_pass = { flag= CFLAGS_FOR_TARGE *** 292,297 **** --- 292,298 ---- flags_to_pass = { flag= CPPFLAGS_FOR_TARGET ; }; flags_to_pass = { flag= CXXFLAGS_FOR_TARGET ; }; flags_to_pass = { flag= DLLTOOL_FOR_TARGET ; }; + flags_to_pass = { flag= DSYMUTIL_FOR_TARGET ; }; flags_to_pass = { flag= FLAGS_FOR_TARGET ; }; flags_to_pass = { flag= GFORTRAN_FOR_TARGET ; }; flags_to_pass = { flag= GOC_FOR_TARGET ; }; diff -Nrcpad gcc-11.2.0/Makefile.in gcc-11.3.0/Makefile.in *** gcc-11.2.0/Makefile.in Wed Jul 28 06:55:06 2021 --- gcc-11.3.0/Makefile.in Thu Apr 21 07:58:52 2022 *************** RPATH_ENVVAR = @RPATH_ENVVAR@ *** 109,114 **** --- 109,117 ---- # executables in PATH. GCC_SHLIB_SUBDIR = @GCC_SHLIB_SUBDIR@ + # If the build should make suitable code for shared host resources. + host_shared = @host_shared@ + # Build programs are put under this directory. BUILD_SUBDIR = @build_subdir@ # This is set by the configure script to the arguments to use when configuring *************** BUILD_EXPORTS = \ *** 159,164 **** --- 162,168 ---- GDC="$(GDC_FOR_BUILD)"; export GDC; \ GDCFLAGS="$(GDCFLAGS_FOR_BUILD)"; export GDCFLAGS; \ DLLTOOL="$(DLLTOOL_FOR_BUILD)"; export DLLTOOL; \ + DSYMUTIL="$(DSYMUTIL_FOR_BUILD)"; export DSYMUTIL; \ LD="$(LD_FOR_BUILD)"; export LD; \ LDFLAGS="$(LDFLAGS_FOR_BUILD)"; export LDFLAGS; \ NM="$(NM_FOR_BUILD)"; export NM; \ *************** HOST_EXPORTS = \ *** 200,205 **** --- 204,210 ---- CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ CXX_FOR_BUILD="$(CXX_FOR_BUILD)"; export CXX_FOR_BUILD; \ DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + DSYMUTIL="$(DSYMUTIL)"; export DSYMUTIL; \ LD="$(LD)"; export LD; \ LDFLAGS="$(STAGE1_LDFLAGS) $(LDFLAGS)"; export LDFLAGS; \ NM="$(NM)"; export NM; \ *************** HOST_EXPORTS = \ *** 212,217 **** --- 217,223 ---- READELF="$(READELF)"; export READELF; \ AR_FOR_TARGET="$(AR_FOR_TARGET)"; export AR_FOR_TARGET; \ AS_FOR_TARGET="$(AS_FOR_TARGET)"; export AS_FOR_TARGET; \ + DSYMUTIL_FOR_TARGET="$(DSYMUTIL_FOR_TARGET)"; export DSYMUTIL_FOR_TARGET; \ GCC_FOR_TARGET="$(GCC_FOR_TARGET)"; export GCC_FOR_TARGET; \ LD_FOR_TARGET="$(LD_FOR_TARGET)"; export LD_FOR_TARGET; \ NM_FOR_TARGET="$(NM_FOR_TARGET)"; export NM_FOR_TARGET; \ *************** BASE_TARGET_EXPORTS = \ *** 294,299 **** --- 300,306 ---- GOC="$(GOC_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export GOC; \ GDC="$(GDC_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export GDC; \ DLLTOOL="$(DLLTOOL_FOR_TARGET)"; export DLLTOOL; \ + DSYMUTIL="$(DSYMUTIL_FOR_TARGET)"; export DSYMUTIL; \ LD="$(COMPILER_LD_FOR_TARGET)"; export LD; \ LDFLAGS="$(LDFLAGS_FOR_TARGET)"; export LDFLAGS; \ LIPO="$(LIPO_FOR_TARGET)"; export LIPO; \ *************** CFLAGS_FOR_BUILD = @CFLAGS_FOR_BUILD@ *** 356,361 **** --- 363,369 ---- CXXFLAGS_FOR_BUILD = @CXXFLAGS_FOR_BUILD@ CXX_FOR_BUILD = @CXX_FOR_BUILD@ DLLTOOL_FOR_BUILD = @DLLTOOL_FOR_BUILD@ + DSYMUTIL_FOR_BUILD = @DSYMUTIL_FOR_BUILD@ GFORTRAN_FOR_BUILD = @GFORTRAN_FOR_BUILD@ GOC_FOR_BUILD = @GOC_FOR_BUILD@ GDC_FOR_BUILD = @GDC_FOR_BUILD@ *************** AR_FLAGS = rc *** 406,411 **** --- 414,420 ---- CC = @CC@ CXX = @CXX@ DLLTOOL = @DLLTOOL@ + DSYMUTIL = @DSYMUTIL@ LD = @LD@ LIPO = @LIPO@ NM = @NM@ *************** GFORTRAN_FOR_TARGET=$(STAGE_CC_WRAPPER) *** 596,601 **** --- 605,611 ---- GOC_FOR_TARGET=$(STAGE_CC_WRAPPER) @GOC_FOR_TARGET@ GDC_FOR_TARGET=$(STAGE_CC_WRAPPER) @GDC_FOR_TARGET@ DLLTOOL_FOR_TARGET=@DLLTOOL_FOR_TARGET@ + DSYMUTIL_FOR_TARGET=@DSYMUTIL_FOR_TARGET@ LD_FOR_TARGET=@LD_FOR_TARGET@ LIPO_FOR_TARGET=@LIPO_FOR_TARGET@ *************** BASE_FLAGS_TO_PASS = \ *** 814,819 **** --- 824,830 ---- "CPPFLAGS_FOR_TARGET=$(CPPFLAGS_FOR_TARGET)" \ "CXXFLAGS_FOR_TARGET=$(CXXFLAGS_FOR_TARGET)" \ "DLLTOOL_FOR_TARGET=$(DLLTOOL_FOR_TARGET)" \ + "DSYMUTIL_FOR_TARGET=$(DSYMUTIL_FOR_TARGET)" \ "FLAGS_FOR_TARGET=$(FLAGS_FOR_TARGET)" \ "GFORTRAN_FOR_TARGET=$(GFORTRAN_FOR_TARGET)" \ "GOC_FOR_TARGET=$(GOC_FOR_TARGET)" \ *************** EXTRA_HOST_FLAGS = \ *** 889,894 **** --- 900,906 ---- 'CC=$(CC)' \ 'CXX=$(CXX)' \ 'DLLTOOL=$(DLLTOOL)' \ + 'DSYMUTIL=$(DSYMUTIL)' \ 'GFORTRAN=$(GFORTRAN)' \ 'GOC=$(GOC)' \ 'GDC=$(GDC)' \ *************** EXTRA_TARGET_FLAGS = \ *** 947,952 **** --- 959,965 ---- $$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \ 'CXXFLAGS=$$(CXXFLAGS_FOR_TARGET)' \ 'DLLTOOL=$$(DLLTOOL_FOR_TARGET)' \ + 'DSYMUTIL=$$(DSYMUTIL_FOR_TARGET)' \ 'GFORTRAN=$$(GFORTRAN_FOR_TARGET) $$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \ 'GOC=$$(GOC_FOR_TARGET) $$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \ 'GOCFLAGS=$$(GOCFLAGS_FOR_TARGET)' \ diff -Nrcpad gcc-11.2.0/Makefile.tpl gcc-11.3.0/Makefile.tpl *** gcc-11.2.0/Makefile.tpl Wed Jul 28 06:55:06 2021 --- gcc-11.3.0/Makefile.tpl Thu Apr 21 07:58:52 2022 *************** RPATH_ENVVAR = @RPATH_ENVVAR@ *** 112,117 **** --- 112,120 ---- # executables in PATH. GCC_SHLIB_SUBDIR = @GCC_SHLIB_SUBDIR@ + # If the build should make suitable code for shared host resources. + host_shared = @host_shared@ + # Build programs are put under this directory. BUILD_SUBDIR = @build_subdir@ # This is set by the configure script to the arguments to use when configuring *************** BUILD_EXPORTS = \ *** 162,167 **** --- 165,171 ---- GDC="$(GDC_FOR_BUILD)"; export GDC; \ GDCFLAGS="$(GDCFLAGS_FOR_BUILD)"; export GDCFLAGS; \ DLLTOOL="$(DLLTOOL_FOR_BUILD)"; export DLLTOOL; \ + DSYMUTIL="$(DSYMUTIL_FOR_BUILD)"; export DSYMUTIL; \ LD="$(LD_FOR_BUILD)"; export LD; \ LDFLAGS="$(LDFLAGS_FOR_BUILD)"; export LDFLAGS; \ NM="$(NM_FOR_BUILD)"; export NM; \ *************** HOST_EXPORTS = \ *** 203,208 **** --- 207,213 ---- CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ CXX_FOR_BUILD="$(CXX_FOR_BUILD)"; export CXX_FOR_BUILD; \ DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + DSYMUTIL="$(DSYMUTIL)"; export DSYMUTIL; \ LD="$(LD)"; export LD; \ LDFLAGS="$(STAGE1_LDFLAGS) $(LDFLAGS)"; export LDFLAGS; \ NM="$(NM)"; export NM; \ *************** HOST_EXPORTS = \ *** 215,220 **** --- 220,226 ---- READELF="$(READELF)"; export READELF; \ AR_FOR_TARGET="$(AR_FOR_TARGET)"; export AR_FOR_TARGET; \ AS_FOR_TARGET="$(AS_FOR_TARGET)"; export AS_FOR_TARGET; \ + DSYMUTIL_FOR_TARGET="$(DSYMUTIL_FOR_TARGET)"; export DSYMUTIL_FOR_TARGET; \ GCC_FOR_TARGET="$(GCC_FOR_TARGET)"; export GCC_FOR_TARGET; \ LD_FOR_TARGET="$(LD_FOR_TARGET)"; export LD_FOR_TARGET; \ NM_FOR_TARGET="$(NM_FOR_TARGET)"; export NM_FOR_TARGET; \ *************** BASE_TARGET_EXPORTS = \ *** 297,302 **** --- 303,309 ---- GOC="$(GOC_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export GOC; \ GDC="$(GDC_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export GDC; \ DLLTOOL="$(DLLTOOL_FOR_TARGET)"; export DLLTOOL; \ + DSYMUTIL="$(DSYMUTIL_FOR_TARGET)"; export DSYMUTIL; \ LD="$(COMPILER_LD_FOR_TARGET)"; export LD; \ LDFLAGS="$(LDFLAGS_FOR_TARGET)"; export LDFLAGS; \ LIPO="$(LIPO_FOR_TARGET)"; export LIPO; \ *************** CFLAGS_FOR_BUILD = @CFLAGS_FOR_BUILD@ *** 359,364 **** --- 366,372 ---- CXXFLAGS_FOR_BUILD = @CXXFLAGS_FOR_BUILD@ CXX_FOR_BUILD = @CXX_FOR_BUILD@ DLLTOOL_FOR_BUILD = @DLLTOOL_FOR_BUILD@ + DSYMUTIL_FOR_BUILD = @DSYMUTIL_FOR_BUILD@ GFORTRAN_FOR_BUILD = @GFORTRAN_FOR_BUILD@ GOC_FOR_BUILD = @GOC_FOR_BUILD@ GDC_FOR_BUILD = @GDC_FOR_BUILD@ *************** AR_FLAGS = rc *** 409,414 **** --- 417,423 ---- CC = @CC@ CXX = @CXX@ DLLTOOL = @DLLTOOL@ + DSYMUTIL = @DSYMUTIL@ LD = @LD@ LIPO = @LIPO@ NM = @NM@ *************** GFORTRAN_FOR_TARGET=$(STAGE_CC_WRAPPER) *** 519,524 **** --- 528,534 ---- GOC_FOR_TARGET=$(STAGE_CC_WRAPPER) @GOC_FOR_TARGET@ GDC_FOR_TARGET=$(STAGE_CC_WRAPPER) @GDC_FOR_TARGET@ DLLTOOL_FOR_TARGET=@DLLTOOL_FOR_TARGET@ + DSYMUTIL_FOR_TARGET=@DSYMUTIL_FOR_TARGET@ LD_FOR_TARGET=@LD_FOR_TARGET@ LIPO_FOR_TARGET=@LIPO_FOR_TARGET@ *************** EXTRA_HOST_FLAGS = \ *** 644,649 **** --- 654,660 ---- 'CC=$(CC)' \ 'CXX=$(CXX)' \ 'DLLTOOL=$(DLLTOOL)' \ + 'DSYMUTIL=$(DSYMUTIL)' \ 'GFORTRAN=$(GFORTRAN)' \ 'GOC=$(GOC)' \ 'GDC=$(GDC)' \ *************** EXTRA_TARGET_FLAGS = \ *** 702,707 **** --- 713,719 ---- $$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \ 'CXXFLAGS=$$(CXXFLAGS_FOR_TARGET)' \ 'DLLTOOL=$$(DLLTOOL_FOR_TARGET)' \ + 'DSYMUTIL=$$(DSYMUTIL_FOR_TARGET)' \ 'GFORTRAN=$$(GFORTRAN_FOR_TARGET) $$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \ 'GOC=$$(GOC_FOR_TARGET) $$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \ 'GOCFLAGS=$$(GOCFLAGS_FOR_TARGET)' \ diff -Nrcpad gcc-11.2.0/NEWS gcc-11.3.0/NEWS *** gcc-11.2.0/NEWS Wed Jul 28 06:56:04 2021 --- gcc-11.3.0/NEWS Thu Apr 21 07:59:58 2022 *************** http://gcc.gnu.org/gcc-11/index.html *** 9,28 **** GCC 11 Release Series ! July 28, 2021 ! The GCC developers are pleased to announce the release of GCC 11.2. This release is a bug-fix release, containing fixes for regressions in ! GCC 11.1 relative to previous releases of GCC. Release History GCC 11.2 ! July 28, 2021 ([1]changes, [2]documentation) GCC 11.1 ! April 27, 2021 ([3]changes, [4]documentation) References and Acknowledgements --- 9,31 ---- GCC 11 Release Series ! April 21, 2022 ! The GCC developers are pleased to announce the release of GCC 11.3. This release is a bug-fix release, containing fixes for regressions in ! GCC 11.2 relative to previous releases of GCC. Release History + GCC 11.3 + April 21, 2022 ([1]changes, [2]documentation) + GCC 11.2 ! July 28, 2021 ([3]changes, [4]documentation) GCC 11.1 ! April 27, 2021 ([5]changes, [6]documentation) References and Acknowledgements *************** References and Acknowledgements *** 30,83 **** supports several other languages aside from C, it now stands for the GNU Compiler Collection. ! A list of [5]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 [6]amazing group of volunteers is what makes GCC successful. ! For additional information about GCC please refer to the [7]GCC project ! web site or contact the [8]GCC development mailing list. ! To obtain GCC please use [9]our mirror sites or [10]our version control ! system. For questions related to the use of GCC, please consult these web ! pages and the [11]GCC manuals. If that fails, the ! [12]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 [13]gcc@gcc.gnu.org. All of [14]our lists have public archives. ! Copyright (C) [15]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 [16]maintained by the GCC team. Last modified ! 2021-07-28[17]. References 1. http://gcc.gnu.org/gcc-11/changes.html ! 2. http://gcc.gnu.org/onlinedocs/11.2.0/ 3. http://gcc.gnu.org/gcc-11/changes.html ! 4. http://gcc.gnu.org/onlinedocs/11.1.0/ ! 5. http://gcc.gnu.org/gcc-11/buildstat.html ! 6. http://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Contributors.html ! 7. http://gcc.gnu.org/index.html ! 8. mailto:gcc@gcc.gnu.org ! 9. http://gcc.gnu.org/mirrors.html ! 10. http://gcc.gnu.org/git.html ! 11. https://gcc.gnu.org/onlinedocs/ ! 12. mailto:gcc-help@gcc.gnu.org ! 13. mailto:gcc@gcc.gnu.org ! 14. https://gcc.gnu.org/lists.html ! 15. https://www.fsf.org/ ! 16. https://gcc.gnu.org/about.html ! 17. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-11/changes.html --- 33,88 ---- supports several other languages aside from C, it now stands for the GNU Compiler Collection. ! A list of [7]successful builds is updated as new information becomes available. The GCC developers would like to thank the numerous people that have contributed new features, improvements, bug fixes, and other changes as ! well as test results to GCC. This [8]amazing group of volunteers is what makes GCC successful. ! For additional information about GCC please refer to the [9]GCC project ! web site or contact the [10]GCC development mailing list. ! To obtain GCC please use [11]our mirror sites or [12]our version ! control system. For questions related to the use of GCC, please consult these web ! pages and the [13]GCC manuals. If that fails, the ! [14]gcc-help@gcc.gnu.org mailing list might help. Comments on these web pages and the development of GCC are welcome on our developer ! list at [15]gcc@gcc.gnu.org. All of [16]our lists have public archives. ! Copyright (C) [17]Free Software Foundation, Inc. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! These pages are [18]maintained by the GCC team. Last modified ! 2022-04-21[19]. References 1. http://gcc.gnu.org/gcc-11/changes.html ! 2. http://gcc.gnu.org/onlinedocs/11.3.0/ 3. http://gcc.gnu.org/gcc-11/changes.html ! 4. http://gcc.gnu.org/onlinedocs/11.2.0/ ! 5. http://gcc.gnu.org/gcc-11/changes.html ! 6. http://gcc.gnu.org/onlinedocs/11.1.0/ ! 7. http://gcc.gnu.org/gcc-11/buildstat.html ! 8. http://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Contributors.html ! 9. http://gcc.gnu.org/index.html ! 10. mailto:gcc@gcc.gnu.org ! 11. http://gcc.gnu.org/mirrors.html ! 12. http://gcc.gnu.org/git.html ! 13. https://gcc.gnu.org/onlinedocs/ ! 14. mailto:gcc-help@gcc.gnu.org ! 15. mailto:gcc@gcc.gnu.org ! 16. https://gcc.gnu.org/lists.html ! 17. https://www.fsf.org/ ! 18. https://gcc.gnu.org/about.html ! 19. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-11/changes.html *************** General Improvements *** 168,175 **** Darwin/Mac OS X which default to version 2 and AIX which defaults to version 4). This can produce up to 25% more compact debug information compared to earlier versions. ! To take full advantage of DWARF version 5 GCC needs to be build ! against binutils version 2.35.2 or higher. When GCC is build against earlier versions of binutils GCC will still emit DWARF version 5 for most debuginfo data, but will generate version 4 debug line tables (even when explicitly given -gdwarf-5). --- 173,180 ---- Darwin/Mac OS X which default to version 2 and AIX which defaults to version 4). This can produce up to 25% more compact debug information compared to earlier versions. ! To take full advantage of DWARF version 5 GCC needs to be built ! against binutils version 2.35.2 or higher. When GCC is built against earlier versions of binutils GCC will still emit DWARF version 5 for most debuginfo data, but will generate version 4 debug line tables (even when explicitly given -gdwarf-5). *************** GCC 11.2 *** 772,791 **** not be complete (that is, it is possible that some PRs that have been fixed are not listed here). For questions related to the use of GCC, please consult these web ! pages and the [69]GCC manuals. If that fails, the ! [70]gcc-help@gcc.gnu.org mailing list might help. Comments on these web pages and the development of GCC are welcome on our developer ! list at [71]gcc@gcc.gnu.org. All of [72]our lists have public archives. ! Copyright (C) [73]Free Software Foundation, Inc. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! These pages are [74]maintained by the GCC team. Last modified ! 2021-07-28[75]. References --- 777,817 ---- not be complete (that is, it is possible that some PRs that have been fixed are not listed here). + GCC 11.3 + + This is the [69]list of problem reports (PRs) from GCC's bug tracking + system that are known to be fixed in the 11.3 release. This list might + not be complete (that is, it is possible that some PRs that have been + fixed are not listed here). + + Target Specific Changes + + x86-64 + + * The x86-64 ABI of passing and returning structure with a 64-bit + single precision vector changed in GCC 11.1 when 3DNOW is disabled. + Disabling 3DNOW no longer changes how they are passed nor returned. + This ABI change is now diagnosed with -Wpsabi. + * Mitigation against straight line speculation (SLS) for function + return and indirect jump is supported via + -mharden-sls=[none|all|return|indirect-jmp]. + * Add CS prefix to call and jmp to indirect thunk with branch target + in r8-r15 registers via -mindirect-branch-cs-prefix. + For questions related to the use of GCC, please consult these web ! pages and the [70]GCC manuals. If that fails, the ! [71]gcc-help@gcc.gnu.org mailing list might help. Comments on these web pages and the development of GCC are welcome on our developer ! list at [72]gcc@gcc.gnu.org. All of [73]our lists have public archives. ! Copyright (C) [74]Free Software Foundation, Inc. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! These pages are [75]maintained by the GCC team. Last modified ! 2022-04-21[76]. References *************** References *** 802,808 **** 11. https://clang.llvm.org/docs/HardwareAssistedAddressSanitizerDesign.html 12. https://github.com/google/sanitizers/wiki/AddressSanitizer 13. https://clang.llvm.org/docs/HardwareAssistedAddressSanitizerDesign.html ! 14. http://dwarfstd.org/doc/DWARF5.pdf 15. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Code-Gen-Options.html#index-fno-bit-tests 16. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Optimize-Options.html#index-fipa-modref 17. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Optimize-Options.html#index-fipa-ocf --- 828,834 ---- 11. https://clang.llvm.org/docs/HardwareAssistedAddressSanitizerDesign.html 12. https://github.com/google/sanitizers/wiki/AddressSanitizer 13. https://clang.llvm.org/docs/HardwareAssistedAddressSanitizerDesign.html ! 14. https://dwarfstd.org/doc/DWARF5.pdf 15. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Code-Gen-Options.html#index-fno-bit-tests 16. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Optimize-Options.html#index-fipa-modref 17. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Optimize-Options.html#index-fipa-ocf *************** References *** 857,869 **** 66. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Environment-Variables.html#index-GCC_005fEXTRA_005fDIAGNOSTIC_005fOUTPUT 67. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=11.0 68. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=11.2 ! 69. https://gcc.gnu.org/onlinedocs/ ! 70. mailto:gcc-help@gcc.gnu.org ! 71. mailto:gcc@gcc.gnu.org ! 72. https://gcc.gnu.org/lists.html ! 73. https://www.fsf.org/ ! 74. https://gcc.gnu.org/about.html ! 75. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-10/index.html --- 883,896 ---- 66. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Environment-Variables.html#index-GCC_005fEXTRA_005fDIAGNOSTIC_005fOUTPUT 67. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=11.0 68. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=11.2 ! 69. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=11.3 ! 70. https://gcc.gnu.org/onlinedocs/ ! 71. mailto:gcc-help@gcc.gnu.org ! 72. mailto:gcc@gcc.gnu.org ! 73. https://gcc.gnu.org/lists.html ! 74. https://www.fsf.org/ ! 75. https://gcc.gnu.org/about.html ! 76. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-10/index.html *************** GCC 10.3 *** 1670,1675 **** --- 1697,1713 ---- * GCC 10.3 supports AMD CPUs based on the znver3 core via -march=znver3. + GCC 10.4 + + Target Specific Changes + + x86-64 + + * The x86-64 ABI of passing and returning structures with a 64-bit + integer vector changed in GCC 10.1 when MMX is disabled. Disabling + MMX no longer changes how they are passed nor returned. This ABI + change is now diagnosed with -Wpsabi. + For questions related to the use of GCC, please consult these web pages and the [60]GCC manuals. If that fails, the *************** GCC 10.3 *** 1683,1689 **** provided this notice is preserved. These pages are [65]maintained by the GCC team. Last modified ! 2021-07-28[66]. References --- 1721,1727 ---- provided this notice is preserved. These pages are [65]maintained by the GCC team. Last modified ! 2021-11-12[66]. References *************** New Languages and Language specific impr *** 3028,3034 **** * Fixed illegal addresses generated from address expressions which refer only to offset 0. * Fixed a bug with reg+offset addressing on 32b segments. In 'large' ! mode, the offset is treated as 32bits unless it's in global, read-only or kernarg address space. * Fixed a crash caused sometimes by calls with more than 4 arguments. * Fixed a mis-execution issue with kernels that have both unexpanded --- 3066,3072 ---- * Fixed illegal addresses generated from address expressions which refer only to offset 0. * Fixed a bug with reg+offset addressing on 32b segments. In 'large' ! mode, the offset is treated as 32-bit unless it's in global, read-only or kernarg address space. * Fixed a crash caused sometimes by calls with more than 4 arguments. * Fixed a mis-execution issue with kernels that have both unexpanded *************** GCC 8.5 *** 3864,3870 **** provided this notice is preserved. These pages are [44]maintained by the GCC team. Last modified ! 2021-07-28[45]. References --- 3902,3908 ---- provided this notice is preserved. These pages are [44]maintained by the GCC team. Last modified ! 2021-10-01[45]. References *************** Address 0x7fffb8dba990 is located in sta *** 4123,4137 **** * The -fsanitize=signed-integer-overflow suboption of the UndefinedBehavior Sanitizer now diagnoses arithmetic overflows even on arithmetic operations with generic vectors. ! * Version 5 of the [6]DWARF debugging information standard is ! supported through the -gdwarf-5 option. The DWARF version 4 ! debugging information remains the default until consumers of ! debugging information are adjusted. New Languages and Language specific improvements OpenACC support in C, C++, and Fortran continues to be maintained and ! improved. See the [7]OpenACC and [8]Offloading wiki pages for further information. Ada --- 4161,4175 ---- * The -fsanitize=signed-integer-overflow suboption of the UndefinedBehavior Sanitizer now diagnoses arithmetic overflows even on arithmetic operations with generic vectors. ! * Version 5 of the DWARF debugging information standard is supported ! through the -gdwarf-5 option. The DWARF version 4 debugging ! information remains the default until consumers of debugging ! information are adjusted. New Languages and Language specific improvements OpenACC support in C, C++, and Fortran continues to be maintained and ! improved. See the [6]OpenACC and [7]Offloading wiki pages for further information. Ada *************** note: 'snprintf' output between 3 and 5 *** 4450,4456 **** more cases of the problem than in prior GCC versions. + The -Wstringop-overflow=type option detects buffer overflow in calls to string handling functions like memcpy and strcpy. The ! option relies on [9]Object Size Checking and has an effect similar to defining the _FORTIFY_SOURCE macro. -Wstringop-overflow=2 is enabled by default. For example, in the following snippet, because the call to --- 4488,4494 ---- more cases of the problem than in prior GCC versions. + The -Wstringop-overflow=type option detects buffer overflow in calls to string handling functions like memcpy and strcpy. The ! option relies on [8]Object Size Checking and has an effect similar to defining the _FORTIFY_SOURCE macro. -Wstringop-overflow=2 is enabled by default. For example, in the following snippet, because the call to *************** enum { *** 4540,4553 **** C++17 draft with the -std=c++1z or -std=gnu++1z flags, including if constexpr, class template argument deduction, auto template parameters, and structured bindings. For a full list of new ! features, see [10]the C++ status page. * C++17 support for new of over-aligned types can be enabled in other modes with the -faligned-new flag. * The C++17 evaluation order requirements can be selected in other modes with the -fstrong-eval-order flag, or disabled in C++17 mode with -fno-strong-eval-order. * The default semantics of inherited constructors has changed in all ! modes, following [11]P0136. Essentially, overload resolution happens as if calling the inherited constructor directly, and the compiler fills in construction of the other bases and members as needed. Most uses should not need any changes. The old behavior can --- 4578,4591 ---- C++17 draft with the -std=c++1z or -std=gnu++1z flags, including if constexpr, class template argument deduction, auto template parameters, and structured bindings. For a full list of new ! features, see [9]the C++ status page. * C++17 support for new of over-aligned types can be enabled in other modes with the -faligned-new flag. * The C++17 evaluation order requirements can be selected in other modes with the -fstrong-eval-order flag, or disabled in C++17 mode with -fno-strong-eval-order. * The default semantics of inherited constructors has changed in all ! modes, following [10]P0136. Essentially, overload resolution happens as if calling the inherited constructor directly, and the compiler fills in construction of the other bases and members as needed. Most uses should not need any changes. The old behavior can *************** test.cc:4:11: error: expected ';' after *** 4571,4577 **** Runtime Library (libstdc++) * The type of exception thrown by iostreams, std::ios_base::failure, ! now uses the [12]cxx11 ABI. * Experimental support for C++17, including the following new features: + std::string_view; --- 4609,4615 ---- Runtime Library (libstdc++) * The type of exception thrown by iostreams, std::ios_base::failure, ! now uses the [11]cxx11 ABI. * Experimental support for C++17, including the following new features: + std::string_view; *************** end program test *** 4637,4643 **** At line 8 of file do_check_12.f90 Fortran runtime error: Loop iterates infinitely ! * Version 4.5 of the [13]OpenMP specification is now partially supported in the Fortran compiler; the largest missing item is structure element mapping. * User-defined derived-type input/output (UDTIO) is added. --- 4675,4681 ---- At line 8 of file do_check_12.f90 Fortran runtime error: Loop iterates infinitely ! * Version 4.5 of the [12]OpenMP specification is now partially supported in the Fortran compiler; the largest missing item is structure element mapping. * User-defined derived-type input/output (UDTIO) is added. *************** libgccjit *** 4670,4676 **** The libgccjit API gained support for marking calls as requiring tail-call optimization via a new entry point: ! [14]gcc_jit_rvalue_set_bool_require_tail_call. libgccjit performs numerous checks at the API boundary, but if these succeed, it previously ignored errors and other diagnostics emitted --- 4708,4714 ---- The libgccjit API gained support for marking calls as requiring tail-call optimization via a new entry point: ! [13]gcc_jit_rvalue_set_bool_require_tail_call. libgccjit performs numerous checks at the API boundary, but if these succeed, it previously ignored errors and other diagnostics emitted *************** New Targets and Target Specific Improvem *** 4691,4697 **** * The option -msign-return-address= is supported to enable return address protection using ARMv8.3-A Pointer Authentication Extensions. For more information on the arguments accepted by this ! option, please refer to [15]AArch64-Options. * The ARMv8.2-A architecture and the ARMv8.2-A 16-bit Floating-Point Extensions are now supported. They can be used by specifying the -march=armv8.2-a or -march=armv8.2-a+fp16 options. The 16-bit --- 4729,4735 ---- * The option -msign-return-address= is supported to enable return address protection using ARMv8.3-A Pointer Authentication Extensions. For more information on the arguments accepted by this ! option, please refer to [14]AArch64-Options. * The ARMv8.2-A architecture and the ARMv8.2-A 16-bit Floating-Point Extensions are now supported. They can be used by specifying the -march=armv8.2-a or -march=armv8.2-a+fp16 options. The 16-bit *************** New Targets and Target Specific Improvem *** 4746,4756 **** of intrinsics such as cdp, ldc, and others. * The configure option --with-multilib-list now accepts the value rmprofile to build multilib libraries for a range of embedded ! targets. See our [16]installation instructions for details. AVR ! * On the reduced Tiny cores, the progmem [17]variable attribute is now properly supported. Respective read-only variables are located in flash memory in section .progmem.data. No special code is needed to access such variables; the compiler automatically adds an offset --- 4784,4794 ---- of intrinsics such as cdp, ldc, and others. * The configure option --with-multilib-list now accepts the value rmprofile to build multilib libraries for a range of embedded ! targets. See our [15]installation instructions for details. AVR ! * On the reduced Tiny cores, the progmem [16]variable attribute is now properly supported. Respective read-only variables are located in flash memory in section .progmem.data. No special code is needed to access such variables; the compiler automatically adds an offset *************** const int* get_address (unsigned idx) *** 4778,4784 **** off -- or turns into errors -- warnings that are reported for interrupt service routines (ISRs) which don't follow AVR-LibC's naming convention of prefixing ISR names with __vector. ! * __builtin_avr_nops(n) is a new [18]built-in function that inserts n NOP instructions into the instruction stream. n must be a value known at compile time. --- 4816,4822 ---- off -- or turns into errors -- warnings that are reported for interrupt service routines (ISRs) which don't follow AVR-LibC's naming convention of prefixing ISR names with __vector. ! * __builtin_avr_nops(n) is a new [17]built-in function that inserts n NOP instructions into the instruction stream. n must be a value known at compile time. *************** const int* get_address (unsigned idx) *** 4793,4799 **** NVPTX * OpenMP target regions can now be offloaded to NVidia PTX GPGPUs. ! See the [19]Offloading Wiki on how to configure it. PowerPC / PowerPC64 / RS6000 --- 4831,4837 ---- NVPTX * OpenMP target regions can now be offloaded to NVidia PTX GPGPUs. ! See the [18]Offloading Wiki on how to configure it. PowerPC / PowerPC64 / RS6000 *************** Operating Systems *** 4870,4876 **** Fuchsia ! * Support has been added for the [20]Fuchsia OS. RTEMS --- 4908,4914 ---- Fuchsia ! * Support has been added for the [19]Fuchsia OS. RTEMS *************** x-early-inliner-iterations'? *** 4987,5007 **** + GCC's C front end has been extended so that it can parse dumps of GCC's internal representations, allowing for DejaGnu tests that more directly exercise specific optimization passes. This ! covers both the [21]GIMPLE representation (for testing ! higher-level optimizations) and the [22]RTL representation, allowing for more direct testing of lower-level details, such as register allocation and instruction selection. GCC 7.1 ! This is the [23]list of problem reports (PRs) from GCC's bug tracking system that are known to be fixed in the 7.1 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here). GCC 7.2 ! This is the [24]list of problem reports (PRs) from GCC's bug tracking system that are known to be fixed in the 7.2 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here). --- 5025,5045 ---- + GCC's C front end has been extended so that it can parse dumps of GCC's internal representations, allowing for DejaGnu tests that more directly exercise specific optimization passes. This ! covers both the [20]GIMPLE representation (for testing ! higher-level optimizations) and the [21]RTL representation, allowing for more direct testing of lower-level details, such as register allocation and instruction selection. GCC 7.1 ! This is the [22]list of problem reports (PRs) from GCC's bug tracking system that are known to be fixed in the 7.1 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here). GCC 7.2 ! This is the [23]list of problem reports (PRs) from GCC's bug tracking system that are known to be fixed in the 7.2 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here). *************** GCC 7.2 *** 5028,5034 **** GCC 7.3 ! This is the [25]list of problem reports (PRs) from GCC's bug tracking system that are known to be fixed in the 7.3 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here). --- 5066,5072 ---- GCC 7.3 ! This is the [24]list of problem reports (PRs) from GCC's bug tracking system that are known to be fixed in the 7.3 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here). *************** GCC 7.3 *** 5037,5043 **** SPARC ! * Workarounds for the four [26]LEON3FT errata GRLIB-TN-0010..0013 have been added. Relevant errata are activated by the target specific -mfix-ut699, -mfix-ut700 and -mfix-gr712rc switches. --- 5075,5081 ---- SPARC ! * Workarounds for the four [25]LEON3FT errata GRLIB-TN-0010..0013 have been added. Relevant errata are activated by the target specific -mfix-ut699, -mfix-ut700 and -mfix-gr712rc switches. *************** GCC 7.3 *** 5049,5080 **** GCC 7.4 ! This is the [27]list of problem reports (PRs) from GCC's bug tracking system that are known to be fixed in the 7.4 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here). GCC 7.5 ! This is the [28]list of problem reports (PRs) from GCC's bug tracking system that are known to be fixed in the 7.5 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here). For questions related to the use of GCC, please consult these web ! pages and the [29]GCC manuals. If that fails, the ! [30]gcc-help@gcc.gnu.org mailing list might help. Comments on these web pages and the development of GCC are welcome on our developer ! list at [31]gcc@gcc.gnu.org. All of [32]our lists have public archives. ! Copyright (C) [33]Free Software Foundation, Inc. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! These pages are [34]maintained by the GCC team. Last modified ! 2021-07-28[35]. References --- 5087,5118 ---- GCC 7.4 ! This is the [26]list of problem reports (PRs) from GCC's bug tracking system that are known to be fixed in the 7.4 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here). GCC 7.5 ! This is the [27]list of problem reports (PRs) from GCC's bug tracking system that are known to be fixed in the 7.5 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here). For questions related to the use of GCC, please consult these web ! pages and the [28]GCC manuals. If that fails, the ! [29]gcc-help@gcc.gnu.org mailing list might help. Comments on these web pages and the development of GCC are welcome on our developer ! list at [30]gcc@gcc.gnu.org. All of [31]our lists have public archives. ! Copyright (C) [32]Free Software Foundation, Inc. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! These pages are [33]maintained by the GCC team. Last modified ! 2021-10-17[34]. References *************** References *** 5083,5118 **** 3. https://gcc.gnu.org/wiki/LRAIsDefault 4. https://gcc.gnu.org/onlinedocs/gcc-7.1.0/libstdc++/manual/manual/profile_mode.html 5. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77728 ! 6. http://www.dwarfstd.org/Download.php ! 7. https://gcc.gnu.org/wiki/OpenACC ! 8. https://gcc.gnu.org/wiki/Offloading ! 9. https://gcc.gnu.org/onlinedocs/gcc-7.1.0/gcc/Object-Size-Checking.html ! 10. https://gcc.gnu.org/projects/cxx-status.html#cxx1z ! 11. https://wg21.link/p0136 ! 12. https://gcc.gnu.org/onlinedocs/gcc-7.1.0/libstdc++/manual/using_dual_abi.html ! 13. https://www.openmp.org/specifications/ ! 14. https://gcc.gnu.org/onlinedocs/gcc-7.1.0/jit/topics/expressions.html#gcc_jit_rvalue_set_bool_require_tail_call ! 15. https://gcc.gnu.org/onlinedocs/gcc-7.1.0/gcc/AArch64-Options.html#AArch64-Options ! 16. https://gcc.gnu.org/install/configure.html ! 17. https://gcc.gnu.org/onlinedocs/gcc-7.1.0/gcc/AVR-Variable-Attributes.html ! 18. https://gcc.gnu.org/onlinedocs/gcc-7.1.0/gcc/AVR-Built-in-Functions.html ! 19. https://gcc.gnu.org/wiki/Offloading ! 20. https://fuchsia.googlesource.com/ ! 21. https://gcc.gnu.org/onlinedocs/gcc-7.1.0/gccint/GIMPLE-Tests.html ! 22. https://gcc.gnu.org/onlinedocs/gcc-7.1.0/gccint/RTL-Tests.html ! 23. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=7.0 ! 24. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=7.2 ! 25. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=7.3 ! 26. https://www.gaisler.com/index.php/information/app-tech-notes ! 27. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=7.4 ! 28. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=7.5 ! 29. https://gcc.gnu.org/onlinedocs/ ! 30. mailto:gcc-help@gcc.gnu.org ! 31. mailto:gcc@gcc.gnu.org ! 32. https://gcc.gnu.org/lists.html ! 33. https://www.fsf.org/ ! 34. https://gcc.gnu.org/about.html ! 35. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-6/index.html --- 5121,5155 ---- 3. https://gcc.gnu.org/wiki/LRAIsDefault 4. https://gcc.gnu.org/onlinedocs/gcc-7.1.0/libstdc++/manual/manual/profile_mode.html 5. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77728 ! 6. https://gcc.gnu.org/wiki/OpenACC ! 7. https://gcc.gnu.org/wiki/Offloading ! 8. https://gcc.gnu.org/onlinedocs/gcc-7.1.0/gcc/Object-Size-Checking.html ! 9. https://gcc.gnu.org/projects/cxx-status.html#cxx1z ! 10. https://wg21.link/p0136 ! 11. https://gcc.gnu.org/onlinedocs/gcc-7.1.0/libstdc++/manual/using_dual_abi.html ! 12. https://www.openmp.org/specifications/ ! 13. https://gcc.gnu.org/onlinedocs/gcc-7.1.0/jit/topics/expressions.html#gcc_jit_rvalue_set_bool_require_tail_call ! 14. https://gcc.gnu.org/onlinedocs/gcc-7.1.0/gcc/AArch64-Options.html#AArch64-Options ! 15. https://gcc.gnu.org/install/configure.html ! 16. https://gcc.gnu.org/onlinedocs/gcc-7.1.0/gcc/AVR-Variable-Attributes.html ! 17. https://gcc.gnu.org/onlinedocs/gcc-7.1.0/gcc/AVR-Built-in-Functions.html ! 18. https://gcc.gnu.org/wiki/Offloading ! 19. https://fuchsia.googlesource.com/ ! 20. https://gcc.gnu.org/onlinedocs/gcc-7.1.0/gccint/GIMPLE-Tests.html ! 21. https://gcc.gnu.org/onlinedocs/gcc-7.1.0/gccint/RTL-Tests.html ! 22. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=7.0 ! 23. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=7.2 ! 24. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=7.3 ! 25. https://www.gaisler.com/index.php/information/app-tech-notes ! 26. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=7.4 ! 27. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=7.5 ! 28. https://gcc.gnu.org/onlinedocs/ ! 29. mailto:gcc-help@gcc.gnu.org ! 30. mailto:gcc@gcc.gnu.org ! 31. https://gcc.gnu.org/lists.html ! 32. https://www.fsf.org/ ! 33. https://gcc.gnu.org/about.html ! 34. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-6/index.html *************** Operating Systems *** 5917,5923 **** provided this notice is preserved. These pages are [32]maintained by the GCC team. Last modified ! 2021-07-28[33]. References --- 5954,5960 ---- provided this notice is preserved. These pages are [32]maintained by the GCC team. Last modified ! 2021-10-31[33]. References *************** References *** 5944,5950 **** 21. http://www.musl-libc.org/ 22. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=6.2 23. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=6.3 ! 24. https://software.intel.com/content/www/us/en/develop/blogs/deprecate-pcommit-instruction.html 25. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=6.4 26. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=6.5 27. https://gcc.gnu.org/onlinedocs/ --- 5981,5987 ---- 21. http://www.musl-libc.org/ 22. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=6.2 23. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=6.3 ! 24. https://www.intel.com/content/www/us/en/developer/articles/technical/deprecate-pcommit-instruction.html 25. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=6.4 26. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=6.5 27. https://gcc.gnu.org/onlinedocs/ *************** New Targets and Target Specific Improvem *** 6664,6678 **** IA-32/x86-64 ! * New [39]ISA extensions support AVX-512{BW,DQ,VL,IFMA,VBMI} of ! Intel's CPU codenamed Skylake Server was added to GCC. That ! includes inline assembly support, new intrinsics, and basic ! autovectorization. These new AVX-512 extensions are available via ! the following GCC switches: AVX-512 Vector Length EVEX feature: ! -mavx512vl, AVX-512 Byte and Word instructions: -mavx512bw, AVX-512 ! Dword and Qword instructions: -mavx512dq, AVX-512 FMA-52 ! instructions: -mavx512ifma and for AVX-512 Vector Bit Manipulation ! Instructions: -mavx512vbmi. * New ISA extensions support Intel MPX was added to GCC. This new extension is available via the -mmpx compiler switch. Intel MPX is a set of processor features which, with compiler, run-time library --- 6701,6714 ---- IA-32/x86-64 ! * New ISA extensions support AVX-512{BW,DQ,VL,IFMA,VBMI} of Intel's ! CPU codenamed Skylake Server was added to GCC. That includes inline ! assembly support, new intrinsics, and basic autovectorization. ! These new AVX-512 extensions are available via the following GCC ! switches: AVX-512 Vector Length EVEX feature: -mavx512vl, AVX-512 ! Byte and Word instructions: -mavx512bw, AVX-512 Dword and Qword ! instructions: -mavx512dq, AVX-512 FMA-52 instructions: -mavx512ifma ! and for AVX-512 Vector Bit Manipulation Instructions: -mavx512vbmi. * New ISA extensions support Intel MPX was added to GCC. This new extension is available via the -mmpx compiler switch. Intel MPX is a set of processor features which, with compiler, run-time library *************** Other significant improvements *** 6835,6841 **** GCC 5.2 ! This is the [40]list of problem reports (PRs) from GCC's bug tracking system that are known to be fixed in the 5.2 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here). --- 6871,6877 ---- GCC 5.2 ! This is the [39]list of problem reports (PRs) from GCC's bug tracking system that are known to be fixed in the 5.2 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here). *************** Target Specific Changes *** 6876,6882 **** GCC 5.3 ! This is the [41]list of problem reports (PRs) from GCC's bug tracking system that are known to be fixed in the 5.3 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here). --- 6912,6918 ---- GCC 5.3 ! This is the [40]list of problem reports (PRs) from GCC's bug tracking system that are known to be fixed in the 5.3 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here). *************** Target Specific Changes *** 6898,6911 **** GCC 5.4 ! This is the [42]list of problem reports (PRs) from GCC's bug tracking system that are known to be fixed in the 5.4 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here). GCC 5.5 ! This is the [43]list of problem reports (PRs) from GCC's bug tracking system that are known to be fixed in the 5.5 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here). --- 6934,6947 ---- GCC 5.4 ! This is the [41]list of problem reports (PRs) from GCC's bug tracking system that are known to be fixed in the 5.4 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here). GCC 5.5 ! This is the [42]list of problem reports (PRs) from GCC's bug tracking system that are known to be fixed in the 5.5 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here). *************** Target Specific Changes *** 6914,6936 **** IA-32/x86-64 ! * Support for the [44]deprecated pcommit instruction has been removed. For questions related to the use of GCC, please consult these web ! pages and the [45]GCC manuals. If that fails, the ! [46]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 [47]gcc@gcc.gnu.org. All of [48]our lists have public archives. ! Copyright (C) [49]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 [50]maintained by the GCC team. Last modified ! 2021-07-28[51]. References --- 6950,6972 ---- IA-32/x86-64 ! * Support for the [43]deprecated pcommit instruction has been removed. For questions related to the use of GCC, please consult these web ! pages and the [44]GCC manuals. If that fails, the ! [45]gcc-help@gcc.gnu.org mailing list might help. Comments on these web pages and the development of GCC are welcome on our developer ! list at [46]gcc@gcc.gnu.org. All of [47]our lists have public archives. ! Copyright (C) [48]Free Software Foundation, Inc. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! These pages are [49]maintained by the GCC team. Last modified ! 2022-03-11[50]. References *************** References *** 6962,6969 **** 26. https://gcc.gnu.org/wiki/Fortran2008Status 27. https://gcc.gnu.org/wiki/Coarray 28. http://www.opencoarrays.org/ ! 29. https://golang.org/cmd/go/ ! 30. https://golang.org/cmd/gofmt/ 31. https://gcc.gnu.org/onlinedocs/gcc-5.1.0/jit/intro/index.html 32. https://gcc.gnu.org/onlinedocs/gcc-5.1.0/jit/cp/index.html 33. https://github.com/davidmalcolm/pygccjit --- 6998,7005 ---- 26. https://gcc.gnu.org/wiki/Fortran2008Status 27. https://gcc.gnu.org/wiki/Coarray 28. http://www.opencoarrays.org/ ! 29. https://pkg.go.dev/cmd/go ! 30. https://pkg.go.dev/cmd/gofmt 31. https://gcc.gnu.org/onlinedocs/gcc-5.1.0/jit/intro/index.html 32. https://gcc.gnu.org/onlinedocs/gcc-5.1.0/jit/cp/index.html 33. https://github.com/davidmalcolm/pygccjit *************** References *** 6972,6990 **** 36. https://gcc.gnu.org/onlinedocs/gcc-5.1.0/jit/intro/tutorial05.html 37. https://gcc.gnu.org/onlinedocs/gcc/Spec-Files.html 38. https://gcc.gnu.org/onlinedocs/gcc/Named-Address-Spaces.html ! 39. https://software.intel.com/sites/default/files/managed/39/c5/325462-sdm-vol-1-2abcd-3abcd.pdf ! 40. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=5.2 ! 41. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=5.3 ! 42. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=5.4 ! 43. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=5.5 ! 44. https://software.intel.com/content/www/us/en/develop/blogs/deprecate-pcommit-instruction.html ! 45. https://gcc.gnu.org/onlinedocs/ ! 46. mailto:gcc-help@gcc.gnu.org ! 47. mailto:gcc@gcc.gnu.org ! 48. https://gcc.gnu.org/lists.html ! 49. https://www.fsf.org/ ! 50. https://gcc.gnu.org/about.html ! 51. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.9/index.html --- 7008,7025 ---- 36. https://gcc.gnu.org/onlinedocs/gcc-5.1.0/jit/intro/tutorial05.html 37. https://gcc.gnu.org/onlinedocs/gcc/Spec-Files.html 38. https://gcc.gnu.org/onlinedocs/gcc/Named-Address-Spaces.html ! 39. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=5.2 ! 40. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=5.3 ! 41. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=5.4 ! 42. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=5.5 ! 43. https://www.intel.com/content/www/us/en/developer/articles/technical/deprecate-pcommit-instruction.html ! 44. https://gcc.gnu.org/onlinedocs/ ! 45. mailto:gcc-help@gcc.gnu.org ! 46. mailto:gcc@gcc.gnu.org ! 47. https://gcc.gnu.org/lists.html ! 48. https://www.fsf.org/ ! 49. https://gcc.gnu.org/about.html ! 50. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.9/index.html *************** GCC 4.7.4 *** 9487,9493 **** provided this notice is preserved. These pages are [54]maintained by the GCC team. Last modified ! 2021-07-28[55]. References --- 9522,9528 ---- provided this notice is preserved. These pages are [54]maintained by the GCC team. Last modified ! 2022-02-10[55]. References *************** References *** 9524,9541 **** 31. https://gcc.gnu.org/wiki/CoarrayLib 32. https://gcc.gnu.org/wiki/TS29113Status 33. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/Fortran-Dialect-Options.html#index-g_t_0040code_007bstd_003d_007d_0040var_007bstd_007d-option-53 ! 34. https://golang.org/doc/go1 35. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gcc/Named-Address-Spaces.html ! 36. http://nongnu.org/avr-libc/ 37. https://gcc.gnu.org/PR54461 38. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gcc/AVR-Built%5f002din-Functions.html 39. https://sites.google.com/site/x32abi/ ! 40. http://www.dwarfstd.org/ShowIssue.php?issue=100909.1 ! 41. http://www.dwarfstd.org/ShowIssue.php?issue=100909.2 ! 42. http://www.dwarfstd.org/ShowIssue.php?issue=140425.1 ! 43. http://www.dwarfstd.org/ShowIssue.php?issue=110722.1 44. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.7.1 ! 45. https://golang.org/doc/go1 46. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.7.2 47. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.7.3 48. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.7.4 --- 9559,9576 ---- 31. https://gcc.gnu.org/wiki/CoarrayLib 32. https://gcc.gnu.org/wiki/TS29113Status 33. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/Fortran-Dialect-Options.html#index-g_t_0040code_007bstd_003d_007d_0040var_007bstd_007d-option-53 ! 34. https://go.dev/doc/go1 35. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gcc/Named-Address-Spaces.html ! 36. http://www.nongnu.org/avr-libc/ 37. https://gcc.gnu.org/PR54461 38. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gcc/AVR-Built%5f002din-Functions.html 39. https://sites.google.com/site/x32abi/ ! 40. https://www.dwarfstd.org/ShowIssue.php?issue=100909.1 ! 41. https://www.dwarfstd.org/ShowIssue.php?issue=100909.2 ! 42. https://www.dwarfstd.org/ShowIssue.php?issue=140425.1 ! 43. https://www.dwarfstd.org/ShowIssue.php?issue=110722.1 44. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.7.1 ! 45. https://go.dev/doc/go1 46. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.7.2 47. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.7.3 48. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.7.4 *************** New Languages and Language specific impr *** 10097,10106 **** Go ! Support for the [19]Go programming language has been added to GCC. It ! is not enabled by default when you build GCC; use the ! --enable-languages configure option to build it. The driver program for ! compiling Go code is gccgo. Go is currently known to work on GNU/Linux and RTEMS. Solaris support is in progress. It may or may not work on other platforms. --- 10132,10141 ---- Go ! Support for the Go programming language has been added to GCC. It is ! not enabled by default when you build GCC; use the --enable-languages ! configure option to build it. The driver program for compiling Go code ! is gccgo. Go is currently known to work on GNU/Linux and RTEMS. Solaris support is in progress. It may or may not work on other platforms. *************** Changes for GCC Developers *** 10497,10542 **** GCC 4.6.1 ! This is the [20]list of problem reports (PRs) from GCC's bug tracking system that are known to be fixed in the 4.6.1 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here). GCC 4.6.2 ! This is the [21]list of problem reports (PRs) from GCC's bug tracking system that are known to be fixed in the 4.6.2 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here). GCC 4.6.3 ! This is the [22]list of problem reports (PRs) from GCC's bug tracking system that are known to be fixed in the 4.6.3 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here). GCC 4.6.4 ! This is the [23]list of problem reports (PRs) from GCC's bug tracking system that are known to be fixed in the 4.6.4 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here). For questions related to the use of GCC, please consult these web ! pages and the [24]GCC manuals. If that fails, the ! [25]gcc-help@gcc.gnu.org mailing list might help. Comments on these web pages and the development of GCC are welcome on our developer ! list at [26]gcc@gcc.gnu.org. All of [27]our lists have public archives. ! Copyright (C) [28]Free Software Foundation, Inc. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! These pages are [29]maintained by the GCC team. Last modified ! 2021-07-28[30]. References --- 10532,10577 ---- GCC 4.6.1 ! This is the [19]list of problem reports (PRs) from GCC's bug tracking system that are known to be fixed in the 4.6.1 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here). GCC 4.6.2 ! This is the [20]list of problem reports (PRs) from GCC's bug tracking system that are known to be fixed in the 4.6.2 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here). GCC 4.6.3 ! This is the [21]list of problem reports (PRs) from GCC's bug tracking system that are known to be fixed in the 4.6.3 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here). GCC 4.6.4 ! This is the [22]list of problem reports (PRs) from GCC's bug tracking system that are known to be fixed in the 4.6.4 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here). For questions related to the use of GCC, please consult these web ! pages and the [23]GCC manuals. If that fails, the ! [24]gcc-help@gcc.gnu.org mailing list might help. Comments on these web pages and the development of GCC are welcome on our developer ! list at [25]gcc@gcc.gnu.org. All of [26]our lists have public archives. ! Copyright (C) [27]Free Software Foundation, Inc. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! These pages are [28]maintained by the GCC team. Last modified ! 2021-12-05[29]. References *************** References *** 10558,10575 **** 16. https://gcc.gnu.org/wiki/OOP 17. https://gcc.gnu.org/wiki/Coarray 18. https://gcc.gnu.org/onlinedocs/gfortran/Code-Gen-Options.html#index-g_t_0040code_007bfcoarray_007d-233 ! 19. https://golang.org/ ! 20. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.6.1 ! 21. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.6.2 ! 22. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.6.3 ! 23. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.6.4 ! 24. https://gcc.gnu.org/onlinedocs/ ! 25. mailto:gcc-help@gcc.gnu.org ! 26. mailto:gcc@gcc.gnu.org ! 27. https://gcc.gnu.org/lists.html ! 28. https://www.fsf.org/ ! 29. https://gcc.gnu.org/about.html ! 30. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.5/index.html --- 10593,10609 ---- 16. https://gcc.gnu.org/wiki/OOP 17. https://gcc.gnu.org/wiki/Coarray 18. https://gcc.gnu.org/onlinedocs/gfortran/Code-Gen-Options.html#index-g_t_0040code_007bfcoarray_007d-233 ! 19. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.6.1 ! 20. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.6.2 ! 21. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.6.3 ! 22. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.6.4 ! 23. https://gcc.gnu.org/onlinedocs/ ! 24. mailto:gcc-help@gcc.gnu.org ! 25. mailto:gcc@gcc.gnu.org ! 26. https://gcc.gnu.org/lists.html ! 27. https://www.fsf.org/ ! 28. https://gcc.gnu.org/about.html ! 29. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.5/index.html *************** GCC 4.5.4 *** 11308,11318 **** provided this notice is preserved. These pages are [32]maintained by the GCC team. Last modified ! 2021-07-28[33]. References ! 1. http://www.multiprecision.org/mpc/ 2. https://gcc.gnu.org/install/prerequisites.html 3. https://gcc.gnu.org/ml/gcc/2010-01/msg00510.html 4. http://gcc.gnu.org/gcc-4.4/changes.html#obsoleted --- 11342,11352 ---- provided this notice is preserved. These pages are [32]maintained by the GCC team. Last modified ! 2022-02-02[33]. References ! 1. https://www.multiprecision.org/mpc/ 2. https://gcc.gnu.org/install/prerequisites.html 3. https://gcc.gnu.org/ml/gcc/2010-01/msg00510.html 4. http://gcc.gnu.org/gcc-4.4/changes.html#obsoleted *************** New Languages and Language specific impr *** 13727,13735 **** o BufferedImage and GtkImage rewrites. All image drawing operations should now work correctly (flipping requires gtk+ >= 2.6) - o Future Graphics2D, image and text work is documented at: - [2]http://developer.classpath.org/mediation/ClasspathGrap - hicsImagesText o When gtk+ 2.6 or higher is installed the default log handler will produce stack traces whenever a WARNING, CRITICAL or ERROR message is produced. --- 13761,13766 ---- *************** New Languages and Language specific impr *** 13872,13878 **** most of the work is currently being done around gcj/gij we want this framework to be as VM neutral as possible. Early design is described in: ! [3]https://gcc.gnu.org/ml/java/2005-05/msg00260.html o QT4 AWT peers, enable by giving configure --enable-qt-peer. Included, but not ready for production yet. They are explicitly disabled and not supported. But --- 13903,13909 ---- most of the work is currently being done around gcj/gij we want this framework to be as VM neutral as possible. Early design is described in: ! [2]https://gcc.gnu.org/ml/java/2005-05/msg00260.html o QT4 AWT peers, enable by giving configure --enable-qt-peer. Included, but not ready for production yet. They are explicitly disabled and not supported. But *************** New Languages and Language specific impr *** 13881,13887 **** explicitly enable them to try them out (and they will most likely contain bugs). o Documentation fixes all over the place. See ! [4]http://developer.classpath.org/doc/ New Targets and Target Specific Improvements --- 13912,13918 ---- explicitly enable them to try them out (and they will most likely contain bugs). o Documentation fixes all over the place. See ! [3]https://developer.classpath.org/doc/ New Targets and Target Specific Improvements *************** New Targets and Target Specific Improvem *** 13950,13956 **** instructions implicitly truncate the shift count to six bits. * Back-end support for the following generic features has been implemented: ! + The full set of [5]built-in functions for atomic memory access. + The -fstack-protector feature. + The optimization pass avoiding unnecessary stores of incoming --- 13981,13987 ---- instructions implicitly truncate the shift count to six bits. * Back-end support for the following generic features has been implemented: ! + The full set of [4]built-in functions for atomic memory access. + The -fstack-protector feature. + The optimization pass avoiding unnecessary stores of incoming *************** Other significant improvements *** 13986,13992 **** GCC 4.1.2 ! This is the [6]list of problem reports (PRs) from GCC's bug tracking system that are known to be fixed in the 4.1.2 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here). --- 14017,14023 ---- GCC 4.1.2 ! This is the [5]list of problem reports (PRs) from GCC's bug tracking system that are known to be fixed in the 4.1.2 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here). *************** GCC 4.1.2 *** 14012,14045 **** For questions related to the use of GCC, please consult these web ! pages and the [7]GCC manuals. If that fails, the ! [8]gcc-help@gcc.gnu.org mailing list might help. Comments on these web pages and the development of GCC are welcome on our developer ! list at [9]gcc@gcc.gnu.org. All of [10]our lists have public ! archives. ! Copyright (C) [11]Free Software Foundation, Inc. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! These pages are [12]maintained by the GCC team. Last modified ! 2021-07-28[13]. References 1. http://gcc.gnu.org/gcc-4.1/changes.html#4.1.2 ! 2. http://developer.classpath.org/mediation/ClasspathGraphicsImagesText ! 3. https://gcc.gnu.org/ml/java/2005-05/msg00260.html ! 4. http://developer.classpath.org/doc/ ! 5. https://gcc.gnu.org/onlinedocs/gcc-4.1.0/gcc/Atomic-Builtins.html ! 6. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.1.2 ! 7. https://gcc.gnu.org/onlinedocs/ ! 8. mailto:gcc-help@gcc.gnu.org ! 9. mailto:gcc@gcc.gnu.org ! 10. https://gcc.gnu.org/lists.html ! 11. https://www.fsf.org/ ! 12. https://gcc.gnu.org/about.html ! 13. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.0/index.html --- 14043,14074 ---- For questions related to the use of GCC, please consult these web ! pages and the [6]GCC manuals. If that fails, the ! [7]gcc-help@gcc.gnu.org mailing list might help. Comments on these web pages and the development of GCC are welcome on our developer ! list at [8]gcc@gcc.gnu.org. All of [9]our lists have public archives. ! Copyright (C) [10]Free Software Foundation, Inc. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! These pages are [11]maintained by the GCC team. Last modified ! 2021-10-18[12]. References 1. http://gcc.gnu.org/gcc-4.1/changes.html#4.1.2 ! 2. https://gcc.gnu.org/ml/java/2005-05/msg00260.html ! 3. https://developer.classpath.org/doc/ ! 4. https://gcc.gnu.org/onlinedocs/gcc-4.1.0/gcc/Atomic-Builtins.html ! 5. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.1.2 ! 6. https://gcc.gnu.org/onlinedocs/ ! 7. mailto:gcc-help@gcc.gnu.org ! 8. mailto:gcc@gcc.gnu.org ! 9. https://gcc.gnu.org/lists.html ! 10. https://www.fsf.org/ ! 11. https://gcc.gnu.org/about.html ! 12. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.0/index.html diff -Nrcpad gcc-11.2.0/c++tools/ChangeLog gcc-11.3.0/c++tools/ChangeLog *** gcc-11.2.0/c++tools/ChangeLog Wed Jul 28 06:55:27 2021 --- gcc-11.3.0/c++tools/ChangeLog Thu Apr 21 07:59:16 2022 *************** *** 1,3 **** --- 1,7 ---- + 2022-04-21 Release Manager + + * GCC 11.3.0 released. + 2021-07-28 Release Manager * GCC 11.2.0 released. diff -Nrcpad gcc-11.2.0/config/ChangeLog gcc-11.3.0/config/ChangeLog *** gcc-11.2.0/config/ChangeLog Wed Jul 28 06:55:27 2021 --- gcc-11.3.0/config/ChangeLog Thu Apr 21 07:59:16 2022 *************** *** 1,3 **** --- 1,23 ---- + 2022-04-21 Release Manager + + * GCC 11.3.0 released. + + 2022-04-14 Iain Sandoe + + Backported from master: + 2021-08-18 Iain Sandoe + + * mh-darwin: Require a non-shared host configuration to + enable mdynamic-no-pic where that is supported. + + 2022-04-14 Iain Sandoe + + Backported from master: + 2021-07-09 Iain Sandoe + + * mh-darwin: Make this specific to handling the + mdynamic-no-pic case. + 2021-07-28 Release Manager * GCC 11.2.0 released. diff -Nrcpad gcc-11.2.0/config/mh-darwin gcc-11.3.0/config/mh-darwin *** gcc-11.2.0/config/mh-darwin Wed Jul 28 06:55:06 2021 --- gcc-11.3.0/config/mh-darwin Thu Apr 21 07:58:52 2022 *************** *** 1,29 **** # The -mdynamic-no-pic ensures that the compiler executable is built without ! # position-independent-code -- the usual default on Darwin. This fix speeds ! # compiles by 3-5%. Don't add it if the compiler doesn't also support ! # -mno-dynamic-no-pic to undo it. ! DARWIN_MDYNAMIC_NO_PIC := \ ! `case ${host} in i?86-*-darwin* | powerpc-*-darwin*) \ ! $(CC) -S -xc /dev/null -o /dev/null -mno-dynamic-no-pic 2>/dev/null \ ! && echo -mdynamic-no-pic ;; esac` ! DARWIN_GCC_MDYNAMIC_NO_PIC := \ ! `case ${host} in i?86-*-darwin* | powerpc-*-darwin*) \ ! $(CC) -S -xc /dev/null -o /dev/null -mno-dynamic-no-pic 2>/dev/null \ ! || echo -mdynamic-no-pic ;; esac` ! # ld on Darwin versions >= 10.7 defaults to PIE executables. Disable this for ! # gcc components, since it is incompatible with our pch implementation. ! DARWIN_NO_PIE := `case ${host} in *-*-darwin[1][1-9]*) echo -Wl,-no_pie ;; esac;` ! BOOT_CFLAGS += $(DARWIN_MDYNAMIC_NO_PIC) ! BOOT_LDFLAGS += $(DARWIN_NO_PIE) ! # Similarly, for cross-compilation. ! STAGE1_CFLAGS += $(DARWIN_MDYNAMIC_NO_PIC) ! STAGE1_LDFLAGS += $(DARWIN_NO_PIE) ! # Without -mno-dynamic-no-pic support, add -mdynamic-no-pic just to later ! # stages when we know it is built with gcc. ! STAGE2_CFLAGS += $(DARWIN_GCC_MDYNAMIC_NO_PIC) ! STAGE3_CFLAGS += $(DARWIN_GCC_MDYNAMIC_NO_PIC) ! STAGE4_CFLAGS += $(DARWIN_GCC_MDYNAMIC_NO_PIC) --- 1,46 ---- # The -mdynamic-no-pic ensures that the compiler executable is built without ! # position-independent-code -- the usual default on Darwin. This speeds compiles ! # by 8-20% (measurements made against GCC-11). ! # However, we cannot add it unless the bootstrap compiler supports ! # -mno-dynamic-no-pic to undo it, since libiberty, at least, needs this. ! # We use Werror, since some versions of clang report unknown command line flags ! # as a warning only. ! # We only need to determine this for the host tool used to build stage1 (or a ! # non-bootstrapped compiler), later stages will be built by GCC which supports ! # the required flags. ! # We cannot use mdynamic-no-pic when building shared host resources. ! ifeq (${host_shared},no) ! BOOTSTRAP_TOOL_CAN_USE_MDYNAMIC_NO_PIC := $(shell \ ! $(CC) -S -xc /dev/null -o /dev/null -Werror -mno-dynamic-no-pic 2>/dev/null \ ! && echo true) ! else ! BOOTSTRAP_TOOL_CAN_USE_MDYNAMIC_NO_PIC := false ! endif ! ! @if gcc-bootstrap ! ifeq (${BOOTSTRAP_TOOL_CAN_USE_MDYNAMIC_NO_PIC},true) ! STAGE1_CFLAGS += -mdynamic-no-pic ! else ! STAGE1_CFLAGS += -fPIC ! endif ! ifeq (${host_shared},no) ! # Add -mdynamic-no-pic to later stages when we know it is built with GCC. ! BOOT_CFLAGS += -mdynamic-no-pic ! endif ! @endif gcc-bootstrap ! ! @unless gcc-bootstrap ! ifeq (${BOOTSTRAP_TOOL_CAN_USE_MDYNAMIC_NO_PIC},true) ! # FIXME: we should also enable this for cross and non-bootstrap builds but ! # that needs amendment to libcc1. ! # CFLAGS += -mdynamic-no-pic ! # CXXFLAGS += -mdynamic-no-pic ! else ! CFLAGS += -fPIC ! CXXFLAGS += -fPIC ! endif ! @endunless gcc-bootstrap diff -Nrcpad gcc-11.2.0/configure gcc-11.3.0/configure *** gcc-11.2.0/configure Wed Jul 28 06:55:06 2021 --- gcc-11.3.0/configure Thu Apr 21 07:58:52 2022 *************** OBJCOPY_FOR_TARGET *** 609,614 **** --- 609,615 ---- NM_FOR_TARGET LIPO_FOR_TARGET LD_FOR_TARGET + DSYMUTIL_FOR_TARGET DLLTOOL_FOR_TARGET AS_FOR_TARGET AR_FOR_TARGET *************** RANLIB *** 629,634 **** --- 630,636 ---- NM LIPO LD + DSYMUTIL DLLTOOL AS AR *************** LDFLAGS_FOR_BUILD *** 649,654 **** --- 651,657 ---- GDC_FOR_BUILD GOC_FOR_BUILD GFORTRAN_FOR_BUILD + DSYMUTIL_FOR_BUILD DLLTOOL_FOR_BUILD CXX_FOR_BUILD CXXFLAGS_FOR_BUILD *************** target_configargs *** 853,858 **** --- 856,862 ---- AR AS DLLTOOL + DSYMUTIL LD LIPO NM *************** GDC_FOR_TARGET *** 873,878 **** --- 877,883 ---- AR_FOR_TARGET AS_FOR_TARGET DLLTOOL_FOR_TARGET + DSYMUTIL_FOR_TARGET LD_FOR_TARGET LIPO_FOR_TARGET NM_FOR_TARGET *************** Some influential environment variables: *** 1636,1641 **** --- 1641,1647 ---- AR AR for the host AS AS for the host DLLTOOL DLLTOOL for the host + DSYMUTIL DSYMUTIL for the host LD LD for the host LIPO LIPO for the host NM NM for the host *************** Some influential environment variables: *** 1665,1670 **** --- 1671,1678 ---- AS for the target DLLTOOL_FOR_TARGET DLLTOOL for the target + DSYMUTIL_FOR_TARGET + DSYMUTIL for the target LD_FOR_TARGET LD for the target LIPO_FOR_TARGET *************** fi *** 4076,4082 **** hppa*-*) host_makefile_frag="config/mh-pa" ;; ! *-*-darwin*) host_makefile_frag="config/mh-darwin" ;; powerpc-*-aix*) --- 4084,4090 ---- hppa*-*) host_makefile_frag="config/mh-pa" ;; ! i?86-*-darwin[89]* | i?86-*-darwin1[0-7]* | powerpc*-*-darwin*) host_makefile_frag="config/mh-darwin" ;; powerpc-*-aix*) *************** if test "${build}" != "${host}" ; then *** 4093,4098 **** --- 4101,4107 ---- AS_FOR_BUILD=${AS_FOR_BUILD-as} CC_FOR_BUILD=${CC_FOR_BUILD-gcc} CXX_FOR_BUILD=${CXX_FOR_BUILD-g++} + DSYMUTIL_FOR_BUILD=${DSYMUTIL_FOR_BUILD-dsymutil} GFORTRAN_FOR_BUILD=${GFORTRAN_FOR_BUILD-gfortran} GOC_FOR_BUILD=${GOC_FOR_BUILD-gccgo} GDC_FOR_BUILD=${GDC_FOR_BUILD-gdc} *************** else *** 4107,4112 **** --- 4116,4122 ---- AS_FOR_BUILD="\$(AS)" CC_FOR_BUILD="\$(CC)" CXX_FOR_BUILD="\$(CXX)" + DSYMUTIL_FOR_BUILD="\$(DSYMUTIL)" GFORTRAN_FOR_BUILD="\$(GFORTRAN)" GOC_FOR_BUILD="\$(GOC)" GDC_FOR_BUILD="\$(GDC)" *************** fi *** 8267,8274 **** # Check whether --enable-host-shared was given. if test "${enable_host_shared+set}" = set; then : enableval=$enable_host_shared; host_shared=$enableval else ! host_shared=no fi --- 8277,8296 ---- # Check whether --enable-host-shared was given. if test "${enable_host_shared+set}" = set; then : enableval=$enable_host_shared; host_shared=$enableval + case $target in + x86_64-*-darwin* | aarch64-*-darwin*) + if test x$host_shared != xyes ; then + # PIC is the default, and actually cannot be switched off. + echo configure.ac: warning: PIC code is required for the configured target, host-shared setting ignored. 1>&2 + host_shared=yes + fi ;; + *) ;; + esac else ! case $target in ! x86_64-*-darwin* | aarch64-*-darwin*) host_shared=yes ;; ! *) host_shared=no ;; ! esac fi *************** done *** 9888,9893 **** --- 9910,9918 ---- + + + # Generate default definitions for YACC, M4, LEX and other programs that run # on the build machine. These are used if the Makefile can't locate these # programs in objdir. *************** fi *** 10720,10725 **** --- 10745,10891 ---- + if test -n "$DSYMUTIL"; then + ac_cv_prog_DSYMUTIL=$DSYMUTIL + elif test -n "$ac_cv_prog_DSYMUTIL"; then + DSYMUTIL=$ac_cv_prog_DSYMUTIL + fi + + if test -n "$ac_cv_prog_DSYMUTIL"; then + for ncn_progname in dsymutil; do + # Extract the first word of "${ncn_progname}", so it can be a program name with args. + set dummy ${ncn_progname}; ac_word=$2 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + $as_echo_n "checking for $ac_word... " >&6; } + if ${ac_cv_prog_DSYMUTIL+:} false; then : + $as_echo_n "(cached) " >&6 + else + if test -n "$DSYMUTIL"; then + ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. + else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR + for as_dir in $PATH + do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_DSYMUTIL="${ncn_progname}" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi + done + done + IFS=$as_save_IFS + + fi + fi + DSYMUTIL=$ac_cv_prog_DSYMUTIL + if test -n "$DSYMUTIL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 + $as_echo "$DSYMUTIL" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + $as_echo "no" >&6; } + fi + + + done + fi + + for ncn_progname in dsymutil; do + if test -n "$ncn_tool_prefix"; then + # Extract the first word of "${ncn_tool_prefix}${ncn_progname}", so it can be a program name with args. + set dummy ${ncn_tool_prefix}${ncn_progname}; ac_word=$2 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + $as_echo_n "checking for $ac_word... " >&6; } + if ${ac_cv_prog_DSYMUTIL+:} false; then : + $as_echo_n "(cached) " >&6 + else + if test -n "$DSYMUTIL"; then + ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. + else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR + for as_dir in $PATH + do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_DSYMUTIL="${ncn_tool_prefix}${ncn_progname}" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi + done + done + IFS=$as_save_IFS + + fi + fi + DSYMUTIL=$ac_cv_prog_DSYMUTIL + if test -n "$DSYMUTIL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 + $as_echo "$DSYMUTIL" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + $as_echo "no" >&6; } + fi + + + fi + if test -z "$ac_cv_prog_DSYMUTIL" && test $build = $host ; then + # Extract the first word of "${ncn_progname}", so it can be a program name with args. + set dummy ${ncn_progname}; ac_word=$2 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + $as_echo_n "checking for $ac_word... " >&6; } + if ${ac_cv_prog_DSYMUTIL+:} false; then : + $as_echo_n "(cached) " >&6 + else + if test -n "$DSYMUTIL"; then + ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. + else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR + for as_dir in $PATH + do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_DSYMUTIL="${ncn_progname}" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi + done + done + IFS=$as_save_IFS + + fi + fi + DSYMUTIL=$ac_cv_prog_DSYMUTIL + if test -n "$DSYMUTIL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 + $as_echo "$DSYMUTIL" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + $as_echo "no" >&6; } + fi + + + fi + test -n "$ac_cv_prog_DSYMUTIL" && break + done + + if test -z "$ac_cv_prog_DSYMUTIL" ; then + set dummy dsymutil + if test $build = $host ; then + DSYMUTIL="$2" + else + DSYMUTIL="${ncn_tool_prefix}$2" + fi + fi + + + if test -n "$LD"; then ac_cv_prog_LD=$LD elif test -n "$ac_cv_prog_LD"; then *************** fi *** 13950,13955 **** --- 14116,14351 ---- + if test -z "$ac_cv_path_DSYMUTIL_FOR_TARGET" ; then + if test -n "$with_build_time_tools"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dsymutil in $with_build_time_tools" >&5 + $as_echo_n "checking for dsymutil in $with_build_time_tools... " >&6; } + if test -x $with_build_time_tools/dsymutil; then + DSYMUTIL_FOR_TARGET=`cd $with_build_time_tools && pwd`/dsymutil + ac_cv_path_DSYMUTIL_FOR_TARGET=$DSYMUTIL_FOR_TARGET + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_DSYMUTIL_FOR_TARGET" >&5 + $as_echo "$ac_cv_path_DSYMUTIL_FOR_TARGET" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + $as_echo "no" >&6; } + fi + elif test $build != $host && test $have_gcc_for_target = yes; then + DSYMUTIL_FOR_TARGET=`$GCC_FOR_TARGET --print-prog-name=dsymutil` + test $DSYMUTIL_FOR_TARGET = dsymutil && DSYMUTIL_FOR_TARGET= + test -n "$DSYMUTIL_FOR_TARGET" && ac_cv_path_DSYMUTIL_FOR_TARGET=$DSYMUTIL_FOR_TARGET + fi + fi + if test -z "$ac_cv_path_DSYMUTIL_FOR_TARGET" && test -n "$gcc_cv_tool_dirs"; then + # Extract the first word of "dsymutil", so it can be a program name with args. + set dummy dsymutil; ac_word=$2 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + $as_echo_n "checking for $ac_word... " >&6; } + if ${ac_cv_path_DSYMUTIL_FOR_TARGET+:} false; then : + $as_echo_n "(cached) " >&6 + else + case $DSYMUTIL_FOR_TARGET in + [\\/]* | ?:[\\/]*) + ac_cv_path_DSYMUTIL_FOR_TARGET="$DSYMUTIL_FOR_TARGET" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR + for as_dir in $gcc_cv_tool_dirs + do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_DSYMUTIL_FOR_TARGET="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi + done + done + IFS=$as_save_IFS + + ;; + esac + fi + DSYMUTIL_FOR_TARGET=$ac_cv_path_DSYMUTIL_FOR_TARGET + if test -n "$DSYMUTIL_FOR_TARGET"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL_FOR_TARGET" >&5 + $as_echo "$DSYMUTIL_FOR_TARGET" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + $as_echo "no" >&6; } + fi + + + fi + if test -z "$ac_cv_path_DSYMUTIL_FOR_TARGET" ; then + + + if test -n "$DSYMUTIL_FOR_TARGET"; then + ac_cv_prog_DSYMUTIL_FOR_TARGET=$DSYMUTIL_FOR_TARGET + elif test -n "$ac_cv_prog_DSYMUTIL_FOR_TARGET"; then + DSYMUTIL_FOR_TARGET=$ac_cv_prog_DSYMUTIL_FOR_TARGET + fi + + if test -n "$ac_cv_prog_DSYMUTIL_FOR_TARGET"; then + for ncn_progname in dsymutil; do + # Extract the first word of "${ncn_progname}", so it can be a program name with args. + set dummy ${ncn_progname}; ac_word=$2 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + $as_echo_n "checking for $ac_word... " >&6; } + if ${ac_cv_prog_DSYMUTIL_FOR_TARGET+:} false; then : + $as_echo_n "(cached) " >&6 + else + if test -n "$DSYMUTIL_FOR_TARGET"; then + ac_cv_prog_DSYMUTIL_FOR_TARGET="$DSYMUTIL_FOR_TARGET" # Let the user override the test. + else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR + for as_dir in $PATH + do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_DSYMUTIL_FOR_TARGET="${ncn_progname}" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi + done + done + IFS=$as_save_IFS + + fi + fi + DSYMUTIL_FOR_TARGET=$ac_cv_prog_DSYMUTIL_FOR_TARGET + if test -n "$DSYMUTIL_FOR_TARGET"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL_FOR_TARGET" >&5 + $as_echo "$DSYMUTIL_FOR_TARGET" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + $as_echo "no" >&6; } + fi + + + done + fi + + if test -z "$ac_cv_prog_DSYMUTIL_FOR_TARGET" && test -n "$with_build_time_tools"; then + for ncn_progname in dsymutil; do + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ncn_progname} in $with_build_time_tools" >&5 + $as_echo_n "checking for ${ncn_progname} in $with_build_time_tools... " >&6; } + if test -x $with_build_time_tools/${ncn_progname}; then + ac_cv_prog_DSYMUTIL_FOR_TARGET=$with_build_time_tools/${ncn_progname} + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + $as_echo "yes" >&6; } + break + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + $as_echo "no" >&6; } + fi + done + fi + + if test -z "$ac_cv_prog_DSYMUTIL_FOR_TARGET"; then + for ncn_progname in dsymutil; do + if test -n "$ncn_target_tool_prefix"; then + # Extract the first word of "${ncn_target_tool_prefix}${ncn_progname}", so it can be a program name with args. + set dummy ${ncn_target_tool_prefix}${ncn_progname}; ac_word=$2 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + $as_echo_n "checking for $ac_word... " >&6; } + if ${ac_cv_prog_DSYMUTIL_FOR_TARGET+:} false; then : + $as_echo_n "(cached) " >&6 + else + if test -n "$DSYMUTIL_FOR_TARGET"; then + ac_cv_prog_DSYMUTIL_FOR_TARGET="$DSYMUTIL_FOR_TARGET" # Let the user override the test. + else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR + for as_dir in $PATH + do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_DSYMUTIL_FOR_TARGET="${ncn_target_tool_prefix}${ncn_progname}" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi + done + done + IFS=$as_save_IFS + + fi + fi + DSYMUTIL_FOR_TARGET=$ac_cv_prog_DSYMUTIL_FOR_TARGET + if test -n "$DSYMUTIL_FOR_TARGET"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL_FOR_TARGET" >&5 + $as_echo "$DSYMUTIL_FOR_TARGET" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + $as_echo "no" >&6; } + fi + + + fi + if test -z "$ac_cv_prog_DSYMUTIL_FOR_TARGET" && test $build = $target ; then + # Extract the first word of "${ncn_progname}", so it can be a program name with args. + set dummy ${ncn_progname}; ac_word=$2 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + $as_echo_n "checking for $ac_word... " >&6; } + if ${ac_cv_prog_DSYMUTIL_FOR_TARGET+:} false; then : + $as_echo_n "(cached) " >&6 + else + if test -n "$DSYMUTIL_FOR_TARGET"; then + ac_cv_prog_DSYMUTIL_FOR_TARGET="$DSYMUTIL_FOR_TARGET" # Let the user override the test. + else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR + for as_dir in $PATH + do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_DSYMUTIL_FOR_TARGET="${ncn_progname}" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi + done + done + IFS=$as_save_IFS + + fi + fi + DSYMUTIL_FOR_TARGET=$ac_cv_prog_DSYMUTIL_FOR_TARGET + if test -n "$DSYMUTIL_FOR_TARGET"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL_FOR_TARGET" >&5 + $as_echo "$DSYMUTIL_FOR_TARGET" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + $as_echo "no" >&6; } + fi + + + fi + test -n "$ac_cv_prog_DSYMUTIL_FOR_TARGET" && break + done + fi + + if test -z "$ac_cv_prog_DSYMUTIL_FOR_TARGET" ; then + set dummy dsymutil + if test $build = $target ; then + DSYMUTIL_FOR_TARGET="$2" + else + DSYMUTIL_FOR_TARGET="${ncn_target_tool_prefix}$2" + fi + else + DSYMUTIL_FOR_TARGET="$ac_cv_prog_DSYMUTIL_FOR_TARGET" + fi + + else + DSYMUTIL_FOR_TARGET=$ac_cv_path_DSYMUTIL_FOR_TARGET + fi + + + + if test -z "$ac_cv_path_LD_FOR_TARGET" ; then if test -n "$with_build_time_tools"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld in $with_build_time_tools" >&5 *************** $as_echo "pre-installed in $ac_dir" >&6; *** 16732,16737 **** --- 17128,17164 ---- { $as_echo "$as_me:${as_lineno-$LINENO}: result: host tool" >&5 $as_echo "host tool" >&6; } else + # We need a cross tool + { $as_echo "$as_me:${as_lineno-$LINENO}: result: pre-installed" >&5 + $as_echo "pre-installed" >&6; } + fi + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking where to find the target dsymutil" >&5 + $as_echo_n "checking where to find the target dsymutil... " >&6; } + if test "x${build}" != "x${host}" ; then + if expr "x$DSYMUTIL_FOR_TARGET" : "x/" > /dev/null; then + # We already found the complete path + ac_dir=`dirname $DSYMUTIL_FOR_TARGET` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: pre-installed in $ac_dir" >&5 + $as_echo "pre-installed in $ac_dir" >&6; } + else + # Canadian cross, just use what we found + { $as_echo "$as_me:${as_lineno-$LINENO}: result: pre-installed" >&5 + $as_echo "pre-installed" >&6; } + fi + else + if expr "x$DSYMUTIL_FOR_TARGET" : "x/" > /dev/null; then + # We already found the complete path + ac_dir=`dirname $DSYMUTIL_FOR_TARGET` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: pre-installed in $ac_dir" >&5 + $as_echo "pre-installed in $ac_dir" >&6; } + elif test "x$target" = "x$host"; then + # We can use an host tool + DSYMUTIL_FOR_TARGET='$(DSYMUTIL)' + { $as_echo "$as_me:${as_lineno-$LINENO}: result: host tool" >&5 + $as_echo "host tool" >&6; } + else # We need a cross tool { $as_echo "$as_me:${as_lineno-$LINENO}: result: pre-installed" >&5 $as_echo "pre-installed" >&6; } diff -Nrcpad gcc-11.2.0/configure.ac gcc-11.3.0/configure.ac *** gcc-11.2.0/configure.ac Wed Jul 28 06:55:06 2021 --- gcc-11.3.0/configure.ac Thu Apr 21 07:58:52 2022 *************** case "${host}" in *** 1331,1337 **** hppa*-*) host_makefile_frag="config/mh-pa" ;; ! *-*-darwin*) host_makefile_frag="config/mh-darwin" ;; powerpc-*-aix*) --- 1331,1337 ---- hppa*-*) host_makefile_frag="config/mh-pa" ;; ! i?86-*-darwin[[89]]* | i?86-*-darwin1[[0-7]]* | powerpc*-*-darwin*) host_makefile_frag="config/mh-darwin" ;; powerpc-*-aix*) *************** if test "${build}" != "${host}" ; then *** 1348,1353 **** --- 1348,1354 ---- AS_FOR_BUILD=${AS_FOR_BUILD-as} CC_FOR_BUILD=${CC_FOR_BUILD-gcc} CXX_FOR_BUILD=${CXX_FOR_BUILD-g++} + DSYMUTIL_FOR_BUILD=${DSYMUTIL_FOR_BUILD-dsymutil} GFORTRAN_FOR_BUILD=${GFORTRAN_FOR_BUILD-gfortran} GOC_FOR_BUILD=${GOC_FOR_BUILD-gccgo} GDC_FOR_BUILD=${GDC_FOR_BUILD-gdc} *************** else *** 1362,1367 **** --- 1363,1369 ---- AS_FOR_BUILD="\$(AS)" CC_FOR_BUILD="\$(CC)" CXX_FOR_BUILD="\$(CXX)" + DSYMUTIL_FOR_BUILD="\$(DSYMUTIL)" GFORTRAN_FOR_BUILD="\$(GFORTRAN)" GOC_FOR_BUILD="\$(GOC)" GDC_FOR_BUILD="\$(GDC)" *************** AC_SUBST(extra_linker_plugin_flags) *** 1869,1875 **** AC_ARG_ENABLE(host-shared, [AS_HELP_STRING([--enable-host-shared], [build host code as shared libraries])], ! [host_shared=$enableval], [host_shared=no]) AC_SUBST(host_shared) # By default, C and C++ are the only stage 1 languages. --- 1871,1890 ---- AC_ARG_ENABLE(host-shared, [AS_HELP_STRING([--enable-host-shared], [build host code as shared libraries])], ! [host_shared=$enableval ! case $target in ! x86_64-*-darwin* | aarch64-*-darwin*) ! if test x$host_shared != xyes ; then ! # PIC is the default, and actually cannot be switched off. ! echo configure.ac: warning: PIC code is required for the configured target, host-shared setting ignored. 1>&2 ! host_shared=yes ! fi ;; ! *) ;; ! esac], ! [case $target in ! x86_64-*-darwin* | aarch64-*-darwin*) host_shared=yes ;; ! *) host_shared=no ;; ! esac]) AC_SUBST(host_shared) # By default, C and C++ are the only stage 1 languages. *************** AC_SUBST(CFLAGS_FOR_BUILD) *** 3390,3395 **** --- 3405,3411 ---- AC_SUBST(CXXFLAGS_FOR_BUILD) AC_SUBST(CXX_FOR_BUILD) AC_SUBST(DLLTOOL_FOR_BUILD) + AC_SUBST(DSYMUTIL_FOR_BUILD) AC_SUBST(GFORTRAN_FOR_BUILD) AC_SUBST(GOC_FOR_BUILD) AC_SUBST(GDC_FOR_BUILD) *************** esac *** 3469,3474 **** --- 3485,3491 ---- NCN_STRICT_CHECK_TOOLS(AR, ar) NCN_STRICT_CHECK_TOOLS(AS, as) NCN_STRICT_CHECK_TOOLS(DLLTOOL, dlltool) + NCN_STRICT_CHECK_TOOLS(DSYMUTIL, dsymutil) NCN_STRICT_CHECK_TOOLS(LD, ld) NCN_STRICT_CHECK_TOOLS(LIPO, lipo) NCN_STRICT_CHECK_TOOLS(NM, nm) *************** NCN_STRICT_CHECK_TARGET_TOOLS(GDC_FOR_TA *** 3508,3513 **** --- 3525,3531 ---- ACX_CHECK_INSTALLED_TARGET_TOOL(AR_FOR_TARGET, ar) ACX_CHECK_INSTALLED_TARGET_TOOL(AS_FOR_TARGET, as) ACX_CHECK_INSTALLED_TARGET_TOOL(DLLTOOL_FOR_TARGET, dlltool) + ACX_CHECK_INSTALLED_TARGET_TOOL(DSYMUTIL_FOR_TARGET, dsymutil) ACX_CHECK_INSTALLED_TARGET_TOOL(LD_FOR_TARGET, ld) ACX_CHECK_INSTALLED_TARGET_TOOL(LIPO_FOR_TARGET, lipo) ACX_CHECK_INSTALLED_TARGET_TOOL(NM_FOR_TARGET, nm) *************** GCC_TARGET_TOOL(c++ for libstdc++, RAW_C *** 3533,3538 **** --- 3551,3557 ---- [gcc/xgcc -shared-libgcc -B$$r/$(HOST_SUBDIR)/gcc -nostdinc++ -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/libsupc++/.libs], c++) GCC_TARGET_TOOL(dlltool, DLLTOOL_FOR_TARGET, DLLTOOL, [binutils/dlltool]) + GCC_TARGET_TOOL(dsymutil, DSYMUTIL_FOR_TARGET, DSYMUTIL) GCC_TARGET_TOOL(gcc, GCC_FOR_TARGET, , [gcc/xgcc -B$$r/$(HOST_SUBDIR)/gcc/]) GCC_TARGET_TOOL(gfortran, GFORTRAN_FOR_TARGET, GFORTRAN, [gcc/gfortran -B$$r/$(HOST_SUBDIR)/gcc/], fortran) diff -Nrcpad gcc-11.2.0/contrib/ChangeLog gcc-11.3.0/contrib/ChangeLog *** gcc-11.2.0/contrib/ChangeLog Wed Jul 28 06:55:27 2021 --- gcc-11.3.0/contrib/ChangeLog Thu Apr 21 07:59:16 2022 *************** *** 1,3 **** --- 1,41 ---- + 2022-04-21 Release Manager + + * GCC 11.3.0 released. + + 2022-01-27 Martin Liska + + * gcc-git-customization.sh: Sync from master. + * git-descr.sh: New file. + * git-undescr.sh: New file. + + 2022-01-24 Martin Liska + + * gcc-changelog/git_commit.py: Sync from master. + * gcc-changelog/test_email.py: Likewise. + * gcc-changelog/test_patches.txt: Likewise. + + 2022-01-19 Martin Liska + + * git-backport.py: Sync from master. + * git-commit-mklog.py: Likewise. + * git-fix-changelog.py: New file. + + 2022-01-17 Martin Liska + + Backported from master: + 2022-01-17 Martin Liska + + * git-backport.py: Support renaming of .cc files. + + 2021-11-08 Martin Liska + + * gcc-changelog/git_check_commit.py: Sync from master. + * gcc-changelog/git_commit.py: Likewise. + * gcc-changelog/git_email.py: Likewise. + * gcc-changelog/git_update_version.py: Likewise. + * gcc-changelog/test_email.py: Likewise. + * gcc-changelog/test_patches.txt: Likewise. + 2021-07-28 Release Manager * GCC 11.2.0 released. diff -Nrcpad gcc-11.2.0/contrib/gcc-changelog/git_check_commit.py gcc-11.3.0/contrib/gcc-changelog/git_check_commit.py *** gcc-11.2.0/contrib/gcc-changelog/git_check_commit.py Wed Jul 28 06:55:06 2021 --- gcc-11.3.0/contrib/gcc-changelog/git_check_commit.py Thu Apr 21 07:58:52 2022 *************** parser.add_argument('-g', '--git-path', *** 29,34 **** --- 29,36 ---- help='Path to git repository') parser.add_argument('-p', '--print-changelog', action='store_true', help='Print final changelog entires') + parser.add_argument('-v', '--verbose', action='store_true', + help='Print verbose information') args = parser.parse_args() retval = 0 *************** for git_commit in parse_git_revisions(ar *** 41,46 **** --- 43,50 ---- else: for error in git_commit.errors: print('ERR: %s' % error) + if args.verbose and error.details: + print(error.details) retval = 1 exit(retval) diff -Nrcpad gcc-11.2.0/contrib/gcc-changelog/git_commit.py gcc-11.3.0/contrib/gcc-changelog/git_commit.py *** gcc-11.2.0/contrib/gcc-changelog/git_commit.py Wed Jul 28 06:55:06 2021 --- gcc-11.3.0/contrib/gcc-changelog/git_commit.py Thu Apr 21 07:58:52 2022 *************** ignored_prefixes = { *** 134,139 **** --- 134,140 ---- 'gcc/go/gofrontend/', 'gcc/testsuite/gdc.test/', 'gcc/testsuite/go.test/test/', + 'libffi/', 'libgo/', 'libphobos/libdruntime/', 'libphobos/src/', *************** author_line_regex = \ *** 156,162 **** re.compile(r'^(?P\d{4}-\d{2}-\d{2})\ {2}(?P.* <.*>)') additional_author_regex = re.compile(r'^\t(?P\ *)?(?P.* <.*>)') changelog_regex = re.compile(r'^(?:[fF]or +)?([a-z0-9+-/]*)ChangeLog:?') ! pr_regex = re.compile(r'\tPR (?P[a-z+-]+\/)?([0-9]+)$') dr_regex = re.compile(r'\tDR ([0-9]+)$') star_prefix_regex = re.compile(r'\t\*(?P\ *)(?P.*)') end_of_location_regex = re.compile(r'[\[<(:]') --- 157,165 ---- re.compile(r'^(?P\d{4}-\d{2}-\d{2})\ {2}(?P.* <.*>)') additional_author_regex = re.compile(r'^\t(?P\ *)?(?P.* <.*>)') changelog_regex = re.compile(r'^(?:[fF]or +)?([a-z0-9+-/]*)ChangeLog:?') ! subject_pr_regex = re.compile(r'(^|\W)PR\s+(?P[a-zA-Z+-]+)/(?P\d{4,7})') ! subject_pr2_regex = re.compile(r'[(\[]PR\s*(?P\d{4,7})[)\]]') ! pr_regex = re.compile(r'\tPR (?P[a-z+-]+\/)?(?P[0-9]+)$') dr_regex = re.compile(r'\tDR ([0-9]+)$') star_prefix_regex = re.compile(r'\t\*(?P\ *)(?P.*)') end_of_location_regex = re.compile(r'[\[<(:]') *************** def decode_path(path): *** 194,202 **** class Error: ! def __init__(self, message, line=None): self.message = message self.line = line def __repr__(self): s = self.message --- 197,206 ---- class Error: ! def __init__(self, message, line=None, details=None): self.message = message self.line = line + self.details = details def __repr__(self): s = self.message *************** class ChangeLogEntry: *** 215,221 **** self.lines = [] self.files = [] self.file_patterns = [] ! self.opened_parentheses = 0 def parse_file_names(self): # Whether the content currently processed is between a star prefix the --- 219,225 ---- self.lines = [] self.files = [] self.file_patterns = [] ! self.parentheses_stack = [] def parse_file_names(self): # Whether the content currently processed is between a star prefix the *************** class GitCommit: *** 298,303 **** --- 302,308 ---- self.top_level_authors = [] self.co_authors = [] self.top_level_prs = [] + self.subject_prs = set() self.cherry_pick_commit = None self.revert_commit = None self.commit_to_info_hook = commit_to_info_hook *************** class GitCommit: *** 307,312 **** --- 312,320 ---- if self.info.lines and self.info.lines[0] == 'Update copyright years.': return + if self.info.lines and len(self.info.lines) > 1 and self.info.lines[1]: + self.errors.append(Error('Expected empty second line in commit message', info.lines[0])) + # Identify first if the commit is a Revert commit for line in self.info.lines: m = revert_regex.match(line) *************** class GitCommit: *** 316,321 **** --- 324,344 ---- if self.revert_commit: self.info = self.commit_to_info_hook(self.revert_commit) + # The following happens for get_email.py: + if not self.info: + return + + self.check_commit_email() + + # Extract PR numbers form the subject line + # Match either [PRnnnn] / (PRnnnn) or PR component/nnnn + if self.info.lines and not self.revert_commit: + self.subject_prs = {m.group('pr') for m in subject_pr2_regex.finditer(info.lines[0])} + for m in subject_pr_regex.finditer(info.lines[0]): + if not m.group('component') in bug_components: + self.errors.append(Error('invalid PR component in subject', info.lines[0])) + self.subject_prs.add(m.group('pr')) + # Allow complete deletion of ChangeLog files in a commit project_files = [f for f in self.info.modified_files if (self.is_changelog_filename(f[0], allow_suffix=True) and f[1] != 'D') *************** class GitCommit: *** 326,334 **** # All modified files are only MISC files return elif project_files: ! self.errors.append(Error('ChangeLog, DATESTAMP, BASE-VER and ' ! 'DEV-PHASE updates should be done ' ! 'separately from normal commits')) return all_are_ignored = (len(project_files) + len(ignored_files) --- 349,359 ---- # All modified files are only MISC files return elif project_files: ! err = 'ChangeLog, DATESTAMP, BASE-VER and DEV-PHASE updates ' \ ! 'should be done separately from normal commits\n' \ ! '(note: ChangeLog entries will be automatically ' \ ! 'added by a cron job)' ! self.errors.append(Error(err)) return all_are_ignored = (len(project_files) + len(ignored_files) *************** class GitCommit: *** 344,349 **** --- 369,377 ---- if not self.errors: self.check_mentioned_files() self.check_for_correct_changelog() + if self.subject_prs: + self.errors.append(Error('PR %s in subject but not in changelog' % + ', '.join(self.subject_prs), self.info.lines[0])) @property def success(self): *************** class GitCommit: *** 458,464 **** else: author_tuple = (m.group('name'), None) elif pr_regex.match(line): ! component = pr_regex.match(line).group('component') if not component: self.errors.append(Error('missing PR component', line)) continue --- 486,494 ---- else: author_tuple = (m.group('name'), None) elif pr_regex.match(line): ! m = pr_regex.match(line) ! component = m.group('component') ! pr = m.group('pr') if not component: self.errors.append(Error('missing PR component', line)) continue *************** class GitCommit: *** 467,472 **** --- 497,504 ---- continue else: pr_line = line.lstrip() + if pr in self.subject_prs: + self.subject_prs.remove(pr) elif dr_regex.match(line): pr_line = line.lstrip() *************** class GitCommit: *** 521,527 **** m = star_prefix_regex.match(line) if m: if (len(m.group('spaces')) != 1 and ! last_entry.opened_parentheses == 0): msg = 'one space should follow asterisk' self.errors.append(Error(msg, line)) else: --- 553,559 ---- m = star_prefix_regex.match(line) if m: if (len(m.group('spaces')) != 1 and ! not last_entry.parentheses_stack): msg = 'one space should follow asterisk' self.errors.append(Error(msg, line)) else: *************** class GitCommit: *** 546,558 **** def process_parentheses(self, last_entry, line): for c in line: if c == '(': ! last_entry.opened_parentheses += 1 elif c == ')': ! if last_entry.opened_parentheses == 0: msg = 'bad wrapping of parenthesis' self.errors.append(Error(msg, line)) else: ! last_entry.opened_parentheses -= 1 def parse_file_names(self): for entry in self.changelog_entries: --- 578,590 ---- def process_parentheses(self, last_entry, line): for c in line: if c == '(': ! last_entry.parentheses_stack.append(line) elif c == ')': ! if not last_entry.parentheses_stack: msg = 'bad wrapping of parenthesis' self.errors.append(Error(msg, line)) else: ! del last_entry.parentheses_stack[-1] def parse_file_names(self): for entry in self.changelog_entries: *************** class GitCommit: *** 578,586 **** def check_for_broken_parentheses(self): for entry in self.changelog_entries: ! if entry.opened_parentheses != 0: msg = 'bad parentheses wrapping' ! self.errors.append(Error(msg, entry.lines[0])) def get_file_changelog_location(self, changelog_file): for file in self.info.modified_files: --- 610,618 ---- def check_for_broken_parentheses(self): for entry in self.changelog_entries: ! if entry.parentheses_stack: msg = 'bad parentheses wrapping' ! self.errors.append(Error(msg, entry.parentheses_stack[-1])) def get_file_changelog_location(self, changelog_file): for file in self.info.modified_files: *************** class GitCommit: *** 656,664 **** for file in sorted(mentioned_files - changed_files): msg = 'unchanged file mentioned in a ChangeLog' candidates = difflib.get_close_matches(file, changed_files, 1) if candidates: msg += f' (did you mean "{candidates[0]}"?)' ! self.errors.append(Error(msg, file)) for file in sorted(changed_files - mentioned_files): if not self.in_ignored_location(file): if file in self.new_files: --- 688,698 ---- for file in sorted(mentioned_files - changed_files): msg = 'unchanged file mentioned in a ChangeLog' candidates = difflib.get_close_matches(file, changed_files, 1) + details = None if candidates: msg += f' (did you mean "{candidates[0]}"?)' ! details = '\n'.join(difflib.Differ().compare([file], [candidates[0]])).rstrip() ! self.errors.append(Error(msg, file, details)) for file in sorted(changed_files - mentioned_files): if not self.in_ignored_location(file): if file in self.new_files: *************** class GitCommit: *** 684,692 **** self.changelog_entries.append(entry) # strip prefix of the file assert file.startswith(entry.folder) ! file = file[len(entry.folder):].lstrip('/') ! entry.lines.append('\t* %s: New file.' % file) ! entry.files.append(file) else: used_pattern = [p for p in mentioned_patterns if file.startswith(p)] --- 718,732 ---- self.changelog_entries.append(entry) # strip prefix of the file assert file.startswith(entry.folder) ! # do not allow auto-addition of New files ! # for the top-level folder ! if entry.folder: ! file = file[len(entry.folder):].lstrip('/') ! entry.lines.append('\t* %s: New file.' % file) ! entry.files.append(file) ! else: ! msg = 'new file in the top-level folder not mentioned in a ChangeLog' ! self.errors.append(Error(msg, file)) else: used_pattern = [p for p in mentioned_patterns if file.startswith(p)] *************** class GitCommit: *** 775,777 **** --- 815,826 ---- print('Errors:') for error in self.errors: print(error) + + def check_commit_email(self): + # Parse 'Martin Liska ' + email = self.info.author.split(' ')[-1].strip('<>') + + # Verify that all characters are ASCII + # TODO: Python 3.7 provides a nicer function: isascii + if len(email) != len(email.encode()): + self.errors.append(Error(f'non-ASCII characters in git commit email address ({email})')) diff -Nrcpad gcc-11.2.0/contrib/gcc-changelog/git_email.py gcc-11.3.0/contrib/gcc-changelog/git_email.py *** gcc-11.2.0/contrib/gcc-changelog/git_email.py Wed Jul 28 06:55:06 2021 --- gcc-11.3.0/contrib/gcc-changelog/git_email.py Thu Apr 21 07:58:52 2022 *************** *** 17,22 **** --- 17,23 ---- # . */ import os + import re import sys from itertools import takewhile *************** from unidiff import PatchSet, PatchedFil *** 28,33 **** --- 29,36 ---- DATE_PREFIX = 'Date: ' FROM_PREFIX = 'From: ' + SUBJECT_PREFIX = 'Subject: ' + subject_patch_regex = re.compile(r'^\[PATCH( \d+/\d+)?\] ') unidiff_supports_renaming = hasattr(PatchedFile(), 'is_rename') *************** class GitEmail(GitCommit): *** 37,43 **** --- 40,48 ---- diff = PatchSet.from_filename(filename) date = None author = None + subject = '' + subject_last = False with open(self.filename, 'r') as f: lines = f.read().splitlines() lines = list(takewhile(lambda line: line != '---', lines)) *************** class GitEmail(GitCommit): *** 46,53 **** date = parse(line[len(DATE_PREFIX):]) elif line.startswith(FROM_PREFIX): author = GitCommit.format_git_author(line[len(FROM_PREFIX):]) header = list(takewhile(lambda line: line != '', lines)) ! body = lines[len(header) + 1:] modified_files = [] for f in diff: --- 51,71 ---- date = parse(line[len(DATE_PREFIX):]) elif line.startswith(FROM_PREFIX): author = GitCommit.format_git_author(line[len(FROM_PREFIX):]) + elif line.startswith(SUBJECT_PREFIX): + subject = line[len(SUBJECT_PREFIX):] + subject_last = True + elif subject_last and line.startswith(' '): + subject += line + elif line == '': + break + else: + subject_last = False + + if subject: + subject = subject_patch_regex.sub('', subject) header = list(takewhile(lambda line: line != '', lines)) ! # Note: commit message consists of email subject, empty line, email body ! message = [subject] + lines[len(header):] modified_files = [] for f in diff: *************** class GitEmail(GitCommit): *** 67,73 **** else: t = 'M' modified_files.append((target if t != 'D' else source, t)) ! git_info = GitInfo(None, date, author, body, modified_files) super().__init__(git_info, commit_to_info_hook=lambda x: None) --- 85,91 ---- else: t = 'M' modified_files.append((target if t != 'D' else source, t)) ! git_info = GitInfo(None, date, author, message, modified_files) super().__init__(git_info, commit_to_info_hook=lambda x: None) diff -Nrcpad gcc-11.2.0/contrib/gcc-changelog/git_update_version.py gcc-11.3.0/contrib/gcc-changelog/git_update_version.py *** gcc-11.2.0/contrib/gcc-changelog/git_update_version.py Wed Jul 28 06:55:06 2021 --- gcc-11.3.0/contrib/gcc-changelog/git_update_version.py Thu Apr 21 07:58:52 2022 *************** from git_repository import parse_git_rev *** 27,33 **** current_timestamp = datetime.datetime.now().strftime('%Y%m%d\n') # Skip the following commits, they cannot be correctly processed ! IGNORED_COMMITS = ('c2be82058fb40f3ae891c68d185ff53e07f14f45') def read_timestamp(path): --- 27,36 ---- current_timestamp = datetime.datetime.now().strftime('%Y%m%d\n') # Skip the following commits, they cannot be correctly processed ! IGNORED_COMMITS = ( ! 'c2be82058fb40f3ae891c68d185ff53e07f14f45', ! '04a040d907a83af54e0a98bdba5bfabc0ef4f700', ! '2e96b5f14e4025691b57d2301d71aa6092ed44bc') def read_timestamp(path): diff -Nrcpad gcc-11.2.0/contrib/gcc-changelog/test_email.py gcc-11.3.0/contrib/gcc-changelog/test_email.py *** gcc-11.2.0/contrib/gcc-changelog/test_email.py Wed Jul 28 06:55:06 2021 --- gcc-11.3.0/contrib/gcc-changelog/test_email.py Thu Apr 21 07:58:52 2022 *************** class TestGccChangelog(unittest.TestCase *** 258,264 **** email = self.from_patch_glob('0001-Add-patch_are') msg = 'ChangeLog, DATESTAMP, BASE-VER and DEV-PHASE updates should ' \ 'be done separately from normal commits' ! assert email.errors[0].message == msg def test_strict_mode_normal_patch(self): email = self.get_git_email('0001-Just-test-it.patch') --- 258,264 ---- email = self.from_patch_glob('0001-Add-patch_are') msg = 'ChangeLog, DATESTAMP, BASE-VER and DEV-PHASE updates should ' \ 'be done separately from normal commits' ! assert email.errors[0].message.startswith(msg) def test_strict_mode_normal_patch(self): email = self.get_git_email('0001-Just-test-it.patch') *************** class TestGccChangelog(unittest.TestCase *** 415,420 **** --- 415,421 ---- def test_multiline_bad_parentheses(self): email = self.from_patch_glob('0002-Wrong-macro-changelog.patch') assert email.errors[0].message == 'bad parentheses wrapping' + assert email.errors[0].line == ' * config/i386/i386.md (*fix_trunc_i387_1,' def test_changelog_removal(self): email = self.from_patch_glob('0001-ChangeLog-removal.patch') *************** class TestGccChangelog(unittest.TestCase *** 427,429 **** --- 428,453 ---- def test_multi_same_file(self): email = self.from_patch_glob('0001-OpenMP-Fix-SIMT') assert email.errors[0].message == 'same file specified multiple times' + + def test_pr_only_in_subject(self): + email = self.from_patch_glob('0001-rs6000-Support-doubleword') + assert (email.errors[0].message == + 'PR 100085 in subject but not in changelog') + + def test_wrong_pr_comp_in_subject(self): + email = self.from_patch_glob('pr-wrong-comp.patch') + assert email.errors[0].message == 'invalid PR component in subject' + + def test_copyright_years(self): + email = self.from_patch_glob('copyright-years.patch') + assert not email.errors + + def test_non_ascii_email(self): + email = self.from_patch_glob('non-ascii-email.patch') + assert (email.errors[0].message == + 'non-ASCII characters in git commit email address (jbglaw@ług-owl.de)') + + def test_new_file_in_root_folder(self): + email = self.from_patch_glob('toplev-new-file.patch') + assert (email.errors[0].message == + 'new file in the top-level folder not mentioned in a ChangeLog') diff -Nrcpad gcc-11.2.0/contrib/gcc-changelog/test_patches.txt gcc-11.3.0/contrib/gcc-changelog/test_patches.txt *** gcc-11.2.0/contrib/gcc-changelog/test_patches.txt Wed Jul 28 06:55:06 2021 --- gcc-11.3.0/contrib/gcc-changelog/test_patches.txt Thu Apr 21 07:58:52 2022 *************** Subject: [PATCH 0030/2034] PR c++/92746 *** 1461,1466 **** --- 1461,1467 ---- Another place that needs to specially handle Concepts TS function-style concepts. + PR c++/92746 * except.c (check_noexcept_r): Handle concept-check. --- gcc/cp/ChangeLog | 3 +++ *************** index aac31d02b6c..56c470f6ecf 100644 *** 1977,1983 **** From 5194b51ed9714808d88827531e91474895b6c706 Mon Sep 17 00:00:00 2001 From: Jason Merrill Date: Thu, 16 Jan 2020 16:55:39 -0500 ! Subject: [PATCH 0121/2034] PR c++/93286 - ICE with __is_constructible and variadic template. Here we had been recursing in tsubst_copy_and_build if type2 was a TREE_LIST --- 1978,1984 ---- From 5194b51ed9714808d88827531e91474895b6c706 Mon Sep 17 00:00:00 2001 From: Jason Merrill Date: Thu, 16 Jan 2020 16:55:39 -0500 ! Subject: [PATCH 0121/2034] PR c++/12345 - ICE with __is_constructible and variadic template. Here we had been recursing in tsubst_copy_and_build if type2 was a TREE_LIST *************** index 00000000000..21540512e23 *** 3406,3408 **** --- 3407,3573 ---- + -- 2.25.1 + === 0001-rs6000-Support-doubleword === + From f700e4b0ee3ef53b48975cf89be26b9177e3a3f3 Mon Sep 17 00:00:00 2001 + From: Xionghu Luo + Date: Tue, 8 Jun 2021 21:48:12 -0500 + Subject: [PATCH] rs6000: Support doubleword swaps removal in rot64 load store + [PR100085] + + gcc/testsuite/ChangeLog: + + * gcc.target/powerpc/pr100085.c: New test. + --- + diff --git a/gcc/testsuite/gcc.target/powerpc/pr100085.c b/gcc/testsuite/gcc.target/powerpc/pr100085.c + new file mode 100644 + index 00000000000..7d8b147b127 + --- /dev/null + +++ b/gcc/testsuite/gcc.target/powerpc/pr100085.c + @@ -0,0 +1,1 @@ + + + -- + 2.25.1 + === pr-wrong-comp.patch === + From 5194b51ed9714808d88827531e91474895b6c706 Mon Sep 17 00:00:00 2001 + From: Jason Merrill + Date: Thu, 16 Jan 2020 16:55:39 -0500 + Subject: [PATCH 0121/2034] PR some/93286 - ICE with __is_constructible and + variadic template. + + gcc/testsuite/ChangeLog: + + PR c++/93286 + * gcc.target/powerpc/pr100085.c: New test. + --- + diff --git a/gcc/testsuite/gcc.target/powerpc/pr100085.c b/gcc/testsuite/gcc.target/powerpc/pr100085.c + new file mode 100644 + index 00000000000..7d8b147b127 + --- /dev/null + +++ b/gcc/testsuite/gcc.target/powerpc/pr100085.c + @@ -0,0 +1,1 @@ + + + -- + 2.25.1 + ==== copyright-years.patch === + From 99dee82307f1e163e150c9c810452979994047ce Mon Sep 17 00:00:00 2001 + From: Jakub Jelinek + Date: Mon, 4 Jan 2021 10:26:59 +0100 + Subject: [PATCH] Update copyright years. + + --- + diff --git a/lto-plugin/lto-plugin.c b/lto-plugin/lto-plugin.c + new file mode 100644 + index 6f67552d075..32478f070e8 100644 + --- a/lto-plugin/lto-plugin.c + +++ b/lto-plugin/lto-plugin.c + @@ -0,0 +1,1 @@ + + + -- + 2.25.1 + + === non-ascii-email.patch === + From f42e95a830ab48e59389065ce79a013a519646f1 Mon Sep 17 00:00:00 2001 + From: Jan-Benedict Glaw + Date: Mon, 13 Sep 2021 12:08:25 +0200 + Subject: [PATCH] Fix multi-statment macro + + INIT_CUMULATIVE_ARGS() expands to multiple statements, which will break right + after an `if` statement. Wrap it into a block. + + gcc/ChangeLog: + + * config/alpha/vms.h (INIT_CUMULATIVE_ARGS): Wrap multi-statment + define into a block. + --- + gcc/config/alpha/vms.h | 10 +++++++--- + 1 file changed, 7 insertions(+), 3 deletions(-) + + diff --git a/gcc/config/alpha/vms.h b/gcc/config/alpha/vms.h + index 2a9917cde62..0033b0004b3 100644 + --- a/gcc/config/alpha/vms.h + +++ b/gcc/config/alpha/vms.h + @@ -0,0 +1,1 @@ + + + -- + + === toplev-new-file.patch === + From 05e37b6e65027188f08e6374c7d356d75b54738e Mon Sep 17 00:00:00 2001 + From: Martin Liska + Date: Mon, 24 Jan 2022 12:46:27 +0100 + Subject: [PATCH] New file. + + ChangeLog: + + * Makefile.in: Update. + + gcc/ChangeLog: + + * ipa-icf.cc: Update. + --- + Makefile.am | 1 + + Makefile.in | 1 + + gcc/ipa-icf.cc | 1 + + gcc/ipa-icf2.cc | 1 + + 4 files changed, 4 insertions(+) + create mode 100644 Makefile.am + create mode 100644 gcc/ipa-icf2.cc + + diff --git a/Makefile.am b/Makefile.am + new file mode 100644 + index 00000000000..f0129caae3d + --- /dev/null + +++ b/Makefile.am + @@ -0,0 +1 @@ + +new file. + diff --git a/Makefile.in b/Makefile.in + index 79c77fccf0f..7a090030119 100644 + --- a/Makefile.in + +++ b/Makefile.in + @@ -1,4 +1,5 @@ + + + + # Makefile.in is generated from Makefile.tpl by 'autogen Makefile.def'. + # + # Makefile for directory with subdirs to build. + diff --git a/gcc/ipa-icf.cc b/gcc/ipa-icf.cc + index 765ae746745..15735b6684f 100644 + --- a/gcc/ipa-icf.cc + +++ b/gcc/ipa-icf.cc + @@ -1,3 +1,4 @@ + + + /* Interprocedural Identical Code Folding pass + Copyright (C) 2014-2022 Free Software Foundation, Inc. + + diff --git a/gcc/ipa-icf2.cc b/gcc/ipa-icf2.cc + new file mode 100644 + index 00000000000..c49c556e0e4 + --- /dev/null + +++ b/gcc/ipa-icf2.cc + @@ -0,0 +1 @@ + +tt + -- + 2.34.1 + + From 80c9d63af350b280bfccb82adb3867c25a25e6d0 Mon Sep 17 00:00:00 2001 + From: Martin Liska + Date: Mon, 24 Jan 2022 12:17:09 +0100 + Subject: [PATCH] Add Makefile.am file. + + Foo bar. + + ChangeLog: + + --- + Makefile.am | 0 + 1 file changed, 0 insertions(+), 0 deletions(-) + create mode 100644 Makefile.am + + diff --git a/Makefile.am b/Makefile.am + new file mode 100644 + index 00000000000..d6459e00543 + --- /dev/null + +++ b/Makefile.am + @@ -0,0 +1 @@ + +xxx + -- + 2.34.1 diff -Nrcpad gcc-11.2.0/contrib/gcc-git-customization.sh gcc-11.3.0/contrib/gcc-git-customization.sh *** gcc-11.2.0/contrib/gcc-git-customization.sh Wed Jul 28 06:55:06 2021 --- gcc-11.3.0/contrib/gcc-git-customization.sh Thu Apr 21 07:58:52 2022 *************** git config alias.svn-rev '!f() { rev=$1; *** 22,34 **** # Add git commands to convert git commit to monotonically increasing revision number # and vice versa ! git config alias.gcc-descr \!"f() { if test \${1:-no} = --full; then c=\${2:-master}; r=\$(git describe --all --abbrev=40 --match 'basepoints/gcc-[0-9]*' \$c | sed -n 's,^\\(tags/\\)\\?basepoints/gcc-,r,p'); expr match \${r:-no} '^r[0-9]\\+\$' >/dev/null && r=\${r}-0-g\$(git rev-parse \${2:-master}); else c=\${1:-master}; r=\$(git describe --all --match 'basepoints/gcc-[0-9]*' \$c | sed -n 's,^\\(tags/\\)\\?basepoints/gcc-\\([0-9]\\+\\)-\\([0-9]\\+\\)-g[0-9a-f]*\$,r\\2-\\3,p;s,^\\(tags/\\)\\?basepoints/gcc-\\([0-9]\\+\\)\$,r\\2-0,p'); fi; if test -n \$r; then o=\$(git config --get gcc-config.upstream); rr=\$(echo \$r | sed -n 's,^r\\([0-9]\\+\\)-[0-9]\\+\\(-g[0-9a-f]\\+\\)\\?\$,\\1,p'); if git rev-parse --verify --quiet \${o:-origin}/releases/gcc-\$rr >/dev/null; then m=releases/gcc-\$rr; else m=master; fi; git merge-base --is-ancestor \$c \${o:-origin}/\$m && \echo \${r}; fi; }; f" ! git config alias.gcc-undescr \!"f() { o=\$(git config --get gcc-config.upstream); r=\$(echo \$1 | sed -n 's,^r\\([0-9]\\+\\)-[0-9]\\+\$,\\1,p'); n=\$(echo \$1 | sed -n 's,^r[0-9]\\+-\\([0-9]\\+\\)\$,\\1,p'); test -z \$r && echo Invalid id \$1 && exit 1; h=\$(git rev-parse --verify --quiet \${o:-origin}/releases/gcc-\$r); test -z \$h && h=\$(git rev-parse --verify --quiet \${o:-origin}/master); p=\$(git describe --all --match 'basepoints/gcc-'\$r \$h | sed -n 's,^\\(tags/\\)\\?basepoints/gcc-[0-9]\\+-\\([0-9]\\+\\)-g[0-9a-f]*\$,\\2,p;s,^\\(tags/\\)\\?basepoints/gcc-[0-9]\\+\$,0,p'); git rev-parse --verify \$h~\$(expr \$p - \$n); }; f" git config alias.gcc-verify '!f() { "`git rev-parse --show-toplevel`/contrib/gcc-changelog/git_check_commit.py" $@; } ; f' git config alias.gcc-backport '!f() { "`git rev-parse --show-toplevel`/contrib/git-backport.py" $@; } ; f' git config alias.gcc-mklog '!f() { "`git rev-parse --show-toplevel`/contrib/mklog.py" $@; } ; f' ! git config alias.gcc-commit-mklog '!f() { "`git rev-parse --show-toplevel`/contrib/git-commit-mklog.py" $@; }; f' # Make diff on MD files use "(define" as a function marker. # Use this in conjunction with a .gitattributes file containing --- 22,35 ---- # Add git commands to convert git commit to monotonically increasing revision number # and vice versa ! git config alias.gcc-descr '!f() { "`git rev-parse --show-toplevel`/contrib/git-descr.sh" $@; } ; f' ! git config alias.gcc-undescr '!f() { "`git rev-parse --show-toplevel`/contrib/git-undescr.sh" $@; } ; f' git config alias.gcc-verify '!f() { "`git rev-parse --show-toplevel`/contrib/gcc-changelog/git_check_commit.py" $@; } ; f' git config alias.gcc-backport '!f() { "`git rev-parse --show-toplevel`/contrib/git-backport.py" $@; } ; f' + git config alias.gcc-fix-changelog '!f() { "`git rev-parse --show-toplevel`/contrib/git-fix-changelog.py" $@; } ; f' git config alias.gcc-mklog '!f() { "`git rev-parse --show-toplevel`/contrib/mklog.py" $@; } ; f' ! git config alias.gcc-commit-mklog '!f() { "`git rev-parse --show-toplevel`/contrib/git-commit-mklog.py" "$@"; }; f' # Make diff on MD files use "(define" as a function marker. # Use this in conjunction with a .gitattributes file containing diff -Nrcpad gcc-11.2.0/contrib/git-backport.py gcc-11.3.0/contrib/git-backport.py *** gcc-11.2.0/contrib/git-backport.py Wed Jul 28 06:55:06 2021 --- gcc-11.3.0/contrib/git-backport.py Thu Apr 21 07:58:52 2022 *************** *** 20,65 **** # Boston, MA 02110-1301, USA. import argparse import subprocess if __name__ == '__main__': ! parser = argparse.ArgumentParser(description='Backport a git revision and ' ! 'stash all ChangeLog files.') parser.add_argument('revision', help='Revision') args = parser.parse_args() ! r = subprocess.run('git cherry-pick -x %s' % args.revision, shell=True) ! if r.returncode == 0: ! cmd = 'git show --name-only --pretty="" -- "*ChangeLog"' ! changelogs = subprocess.check_output(cmd, shell=True, encoding='utf8') ! changelogs = changelogs.strip() ! if changelogs: ! for changelog in changelogs.split('\n'): ! subprocess.check_output('git checkout HEAD~ %s' % changelog, ! shell=True) ! subprocess.check_output('git commit --amend --no-edit', shell=True) ! else: ! # 1) remove all ChangeLog files from conflicts ! out = subprocess.check_output('git diff --name-only --diff-filter=U', ! shell=True, ! encoding='utf8') ! conflicts = out.strip().split('\n') ! changelogs = [c for c in conflicts if c.endswith('ChangeLog')] ! if changelogs: ! cmd = 'git checkout --theirs %s' % ' '.join(changelogs) ! subprocess.check_output(cmd, shell=True) ! # 2) remove all ChangeLog files from index ! cmd = 'git diff --name-only --diff-filter=M HEAD' ! out = subprocess.check_output(cmd, shell=True, encoding='utf8') ! out = out.strip().split('\n') ! modified = [c for c in out if c.endswith('ChangeLog')] ! for m in modified: ! subprocess.check_output('git reset %s' % m, shell=True) ! subprocess.check_output('git checkout %s' % m, shell=True) ! ! # try to continue ! if len(conflicts) == len(changelogs): ! cmd = 'git -c core.editor=true cherry-pick --continue' ! subprocess.check_output(cmd, shell=True) ! else: ! print('Please resolve all remaining file conflicts.') --- 20,35 ---- # Boston, MA 02110-1301, USA. import argparse + import os import subprocess + script_folder = os.path.dirname(os.path.abspath(__file__)) + fixup_script = os.path.join(script_folder, 'git-fix-changelog.py') + if __name__ == '__main__': ! parser = argparse.ArgumentParser(description='Backport a git revision.') parser.add_argument('revision', help='Revision') args = parser.parse_args() ! subprocess.run('git cherry-pick -x %s' % args.revision, shell=True) ! subprocess.run(fixup_script, shell=True) diff -Nrcpad gcc-11.2.0/contrib/git-commit-mklog.py gcc-11.3.0/contrib/git-commit-mklog.py *** gcc-11.2.0/contrib/git-commit-mklog.py Wed Jul 28 06:55:06 2021 --- gcc-11.3.0/contrib/git-commit-mklog.py Thu Apr 21 07:58:52 2022 *************** if __name__ == '__main__': *** 37,42 **** --- 37,44 ---- help='Add the specified PRs (comma separated)') parser.add_argument('-p', '--fill-up-bug-titles', action='store_true', help='Download title of mentioned PRs') + parser.add_argument('--co', + help='Add Co-Authored-By trailer (comma separated)') args, unknown_args = parser.parse_known_args() myenv['GCC_FORCE_MKLOG'] = '1' *************** if __name__ == '__main__': *** 49,53 **** --- 51,59 ---- if mklog_args: myenv['GCC_MKLOG_ARGS'] = ' '.join(mklog_args) + if args.co: + for author in args.co.split(','): + unknown_args.append(f'--trailer "Co-Authored-By: {author}"') + commit_args = ' '.join(unknown_args) subprocess.run(f'git commit {commit_args}', shell=True, env=myenv) diff -Nrcpad gcc-11.2.0/contrib/git-descr.sh gcc-11.3.0/contrib/git-descr.sh *** gcc-11.2.0/contrib/git-descr.sh Thu Jan 1 00:00:00 1970 --- gcc-11.3.0/contrib/git-descr.sh Thu Apr 21 07:58:52 2022 *************** *** 0 **** --- 1,37 ---- + #!/bin/sh + + # Script to describe a GCC revision based on git hash + + short=no + long=no + c=master + + for arg in "$@" + do + case "$arg" in + --short) short=yes long=no + ;; + --long|--full) long=yes short=no + ;; + *) c=$arg + esac + done + + if test x$short = xyes; then + r=$(git describe --all --match 'basepoints/gcc-[0-9]*' $c | sed -n 's,^\(tags/\)\?basepoints/gcc-\([0-9]\+\)-\([0-9]\+\)-g[0-9a-f]*$,r\2-\3,p;s,^\(tags/\)\?basepoints/gcc-\([0-9]\+\)$,r\2-0,p'); + elif test x$long = xyes; then + r=$(git describe --all --abbrev=40 --match 'basepoints/gcc-[0-9]*' $c | sed -n 's,^\(tags/\)\?basepoints/gcc-,r,p') + else + r=$(git describe --all --abbrev=14 --match 'basepoints/gcc-[0-9]*' $c | sed -n 's,^\(tags/\)\?basepoints/gcc-,r,p'); + expr match ${r:-no} 'r[0-9]\+$' >/dev/null && r=${r}-0-g$(git rev-parse $c); + fi; + if test -n $r; then + o=$(git config --get gcc-config.upstream); + rr=$(echo $r | sed -n 's,^r\([0-9]\+\)-[0-9]\+\(-g[0-9a-f]\+\)\?$,\1,p'); + if git rev-parse --verify --quiet ${o:-origin}/releases/gcc-$rr >/dev/null; then + m=releases/gcc-$rr; + else + m=master; + fi; + git merge-base --is-ancestor $c ${o:-origin}/$m && echo ${r}; + fi; diff -Nrcpad gcc-11.2.0/contrib/git-fix-changelog.py gcc-11.3.0/contrib/git-fix-changelog.py *** gcc-11.2.0/contrib/git-fix-changelog.py Thu Jan 1 00:00:00 1970 --- gcc-11.3.0/contrib/git-fix-changelog.py Thu Apr 21 07:58:52 2022 *************** *** 0 **** --- 1,92 ---- + #!/usr/bin/env python3 + + # Copyright (C) 2020 Free Software Foundation, Inc. + # + # This file is part of GCC. + # + # GCC is free software; you can redistribute it and/or modify + # it under the terms of the GNU General Public License as published by + # the Free Software Foundation; either version 3, or (at your option) + # any later version. + # + # GCC is distributed in the hope that it will be useful, + # but WITHOUT ANY WARRANTY; without even the implied warranty of + # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + # GNU General Public License for more details. + # + # You should have received a copy of the GNU General Public License + # along with GCC; see the file COPYING. If not, write to + # the Free Software Foundation, 51 Franklin Street, Fifth Floor, + # Boston, MA 02110-1301, USA. + # + # The script tries to fix commit message where ChangeLog entries + # can point to .cc renamed files. + + import argparse + import os + import subprocess + import tempfile + + DESCRIPTION = 'Fix up ChangeLog of the current commit.' + + script_folder = os.path.dirname(os.path.abspath(__file__)) + verify_script = os.path.join(script_folder, + 'gcc-changelog/git_check_commit.py') + + + def replace_file_in_changelog(lines, filename, fixed): + # consider all componenets of a path: gcc/ipa-icf.cc + while filename: + for i, line in enumerate(lines): + if filename in line: + lines[i] = line.replace(filename, fixed) + return + + parts = filename.split('/') + if len(parts) == 1: + return + filename = '/'.join(parts[1:]) + fixed = '/'.join(fixed.split('/')[1:]) + + + if __name__ == '__main__': + parser = argparse.ArgumentParser(description=DESCRIPTION) + args = parser.parse_args() + + # Update commit message if change for a .cc file was taken + r = subprocess.run(f'{verify_script} HEAD', shell=True, encoding='utf8', + stdout=subprocess.PIPE, stderr=subprocess.PIPE) + if r.returncode != 0: + lines = r.stdout.splitlines() + cmd = 'git show -s --format=%B' + commit_message = subprocess.check_output(cmd, shell=True, + encoding='utf8').strip() + commit_message = commit_message.splitlines() + + # Parse the following lines: + # ERR: unchanged file mentioned in a ChangeLog \ + # (did you mean "gcc/ipa-icf.cc"?): "gcc/ipa-icf.c" + replaced = 0 + for line in lines: + if ('unchanged file mentioned' in line and + 'did you mean' in line): + filename = line.split()[-1].strip('"') + fixed = line[line.index('did you mean'):] + fixed = fixed[fixed.index('"') + 1:] + fixed = fixed[:fixed.index('"')] + + if filename.count('/') == fixed.count('/'): + replace_file_in_changelog(commit_message, filename, fixed) + replaced += 1 + + if replaced: + with tempfile.NamedTemporaryFile('w', encoding='utf8', + delete=False) as w: + w.write('\n'.join(commit_message)) + w.close() + subprocess.check_output(f'git commit --amend -F {w.name}', + shell=True, encoding='utf8') + os.unlink(w.name) + print(f'Commit message updated: {replaced} file(s) renamed.') + else: + print('Commit message has not been updated.') diff -Nrcpad gcc-11.2.0/contrib/git-undescr.sh gcc-11.3.0/contrib/git-undescr.sh *** gcc-11.2.0/contrib/git-undescr.sh Thu Jan 1 00:00:00 1970 --- gcc-11.3.0/contrib/git-undescr.sh Thu Apr 21 07:58:52 2022 *************** *** 0 **** --- 1,13 ---- + #!/bin/sh + + # Script to undescribe a GCC revision + + o=$(git config --get gcc-config.upstream); + r=$(echo $1 | sed -n 's,^r\([0-9]\+\)-[0-9]\+\(-g[0-9a-f]\+\)\?$,\1,p'); + n=$(echo $1 | sed -n 's,^r[0-9]\+-\([0-9]\+\)\(-g[0-9a-f]\+\)\?$,\1,p'); + + test -z $r && echo Invalid id $1 && exit 1; + h=$(git rev-parse --verify --quiet ${o:-origin}/releases/gcc-$r); + test -z $h && h=$(git rev-parse --verify --quiet ${o:-origin}/master); + p=$(git describe --all --match 'basepoints/gcc-'$r $h | sed -n 's,^\(tags/\)\?basepoints/gcc-[0-9]\+-\([0-9]\+\)-g[0-9a-f]*$,\2,p;s,^\(tags/\)\?basepoints/gcc-[0-9]\+$,0,p'); + git rev-parse --verify $h~$(expr $p - $n); diff -Nrcpad gcc-11.2.0/contrib/header-tools/ChangeLog gcc-11.3.0/contrib/header-tools/ChangeLog *** gcc-11.2.0/contrib/header-tools/ChangeLog Wed Jul 28 06:55:27 2021 --- gcc-11.3.0/contrib/header-tools/ChangeLog Thu Apr 21 07:59:16 2022 *************** *** 1,3 **** --- 1,7 ---- + 2022-04-21 Release Manager + + * GCC 11.3.0 released. + 2021-07-28 Release Manager * GCC 11.2.0 released. diff -Nrcpad gcc-11.2.0/contrib/reghunt/ChangeLog gcc-11.3.0/contrib/reghunt/ChangeLog *** gcc-11.2.0/contrib/reghunt/ChangeLog Wed Jul 28 06:55:27 2021 --- gcc-11.3.0/contrib/reghunt/ChangeLog Thu Apr 21 07:59:16 2022 *************** *** 1,3 **** --- 1,7 ---- + 2022-04-21 Release Manager + + * GCC 11.3.0 released. + 2021-07-28 Release Manager * GCC 11.2.0 released. diff -Nrcpad gcc-11.2.0/contrib/regression/ChangeLog gcc-11.3.0/contrib/regression/ChangeLog *** gcc-11.2.0/contrib/regression/ChangeLog Wed Jul 28 06:55:27 2021 --- gcc-11.3.0/contrib/regression/ChangeLog Thu Apr 21 07:59:16 2022 *************** *** 1,3 **** --- 1,7 ---- + 2022-04-21 Release Manager + + * GCC 11.3.0 released. + 2021-07-28 Release Manager * GCC 11.2.0 released. diff -Nrcpad gcc-11.2.0/fixincludes/ChangeLog gcc-11.3.0/fixincludes/ChangeLog *** gcc-11.2.0/fixincludes/ChangeLog Wed Jul 28 06:55:27 2021 --- gcc-11.3.0/fixincludes/ChangeLog Thu Apr 21 07:59:16 2022 *************** *** 1,3 **** --- 1,7 ---- + 2022-04-21 Release Manager + + * GCC 11.3.0 released. + 2021-07-28 Release Manager * GCC 11.2.0 released. diff -Nrcpad gcc-11.2.0/gcc/BASE-VER gcc-11.3.0/gcc/BASE-VER *** gcc-11.2.0/gcc/BASE-VER Wed Jul 28 06:55:27 2021 --- gcc-11.3.0/gcc/BASE-VER Thu Apr 21 07:59:17 2022 *************** *** 1 **** ! 11.2.0 --- 1 ---- ! 11.3.0 diff -Nrcpad gcc-11.2.0/gcc/ChangeLog gcc-11.3.0/gcc/ChangeLog *** gcc-11.2.0/gcc/ChangeLog Wed Jul 28 06:55:27 2021 --- gcc-11.3.0/gcc/ChangeLog Thu Apr 21 07:59:16 2022 *************** *** 1,3 **** --- 1,3226 ---- + 2022-04-21 Release Manager + + * GCC 11.3.0 released. + + 2022-04-19 Hans-Peter Nilsson + + Backported from master: + 2022-04-18 Hans-Peter Nilsson + + * doc/install.texi : Remove references to removed websites and + adjust for cris-*-elf being the only remaining toolchain. + + 2022-04-19 Hans-Peter Nilsson + + Backported from master: + 2022-04-18 Hans-Peter Nilsson + + * doc/invoke.texi : Remove references to options for removed + subtarget cris-axis-linux-gnu and tweak wording accordingly. + + 2022-04-14 Andreas Krebbel + + Backported from master: + 2022-04-12 Andreas Krebbel + + * common/config/s390/s390-common.c: Rename PF_ARCH14 to PF_Z16. + * config.gcc: Add z16 as march/mtune switch. + * config/s390/driver-native.c (s390_host_detect_local_cpu): + Recognize z16 with -march=native. + * config/s390/s390-opts.h (enum processor_type): Rename + PROCESSOR_ARCH14 to PROCESSOR_3931_Z16. + * config/s390/s390.c (PROCESSOR_ARCH14): Rename to ... + (PROCESSOR_3931_Z16): ... throughout the file. + (s390_processor processor_table): Add z16 as cpu string. + * config/s390/s390.h (enum processor_flags): Rename PF_ARCH14 to + PF_Z16. + (TARGET_CPU_ARCH14): Rename to ... + (TARGET_CPU_Z16): ... this. + (TARGET_CPU_ARCH14_P): Rename to ... + (TARGET_CPU_Z16_P): ... this. + (TARGET_ARCH14): Rename to ... + (TARGET_Z16): ... this. + (TARGET_ARCH14_P): Rename to ... + (TARGET_Z16_P): ... this. + * config/s390/s390.md (cpu_facility): Rename arch14 to z16 and + check TARGET_Z16 instead of TARGET_ARCH14. + * config/s390/s390.opt: Add z16 to processor_type. + * doc/invoke.texi: Document z16 and arch14. + + 2022-04-14 Iain Sandoe + Vladimir Makarov + + PR target/104117 + * config/rs6000/rs6000.c (darwin_rs6000_legitimate_lo_sum_const_p): + Check for UNSPEC_MACHOPIC_OFFSET wrappers on symbolic addresses when + emitting PIC code. + (legitimate_lo_sum_address_p): Likewise. + (rs6000_legitimize_address): Do not apply the TLS processing to + Darwin. + * config/rs6000/darwin.md (@machopic_high_): New. + (@machopic_low_): New. + * config/rs6000/predicates.md (macho_pic_address): New. + + 2022-04-14 Iain Sandoe + + PR target/80556 + * config/darwin-driver.c (darwin_driver_init): Handle exported + symbols and symbol lists (suppress automatic export of the TLS + symbols). + * config/darwin.c (darwin_rename_builtins): Remove workaround. + * config/darwin.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise. + (REAL_LIBGCC_SPEC): Handle revised library uses. + * config/darwin.opt (nodefaultexport): New. + * config/i386/darwin.h (PR80556_WORKAROUND): Remove. + * config/i386/darwin32-biarch.h (PR80556_WORKAROUND): Likewise. + * config/i386/darwin64-biarch.h (PR80556_WORKAROUND): Likewise. + + 2022-04-14 Iain Sandoe + + * config/darwin-driver.c (darwin_driver_init): Revise comments, handle + filelist and framework options in specs instead of code. Exit from the + option handling early if the command line is definitely enpty. + * config/darwin.h (SUBTARGET_DRIVER_SELF_SPECS): Update to handle link + specs that are really driver ones. Remove setting for the default content + of weak_reference_mismatches + (DARWIN_CC1_SPEC): Likewise. + (CPP_SPEC): Likewise. + (SYSROOT_SPEC): Append space. + (LINK_SYSROOT_SPEC): Remove most driver link specs. + (STANDARD_STARTFILE_PREFIX_2): Update link-related specs. + (STARTFILE_SPEC): Likewise. + (ASM_MMACOSX_VERSION_MIN_SPEC): Fix line wrap. + (ASM_SPEC): Update driver-related specs. + (ASM_FINAL_SPEC): Likewise. + (LINK_COMMAND_SPEC_A): Update 'r' handling to skip gomp and itm when r + or nodefaultlibs is given. + (DSYMUTIL_SPEC): Do not call dsymutil for '-r' link lines. + Update ordering of exclusions, remove duplicate 'v' addition + (collect2 will add this from the main command line). + * config/darwin.opt: Remove now unused option aliases. + * config/i386/darwin.h (EXTRA_ASM_OPTS): Ensure space after opt. + (ASM_SPEC): Update driver-related specs. + + 2022-04-14 Iain Sandoe + + Backported from master: + 2021-11-15 Iain Sandoe + + PR fortran/102992 + * config/darwin.h (TARGET_DTORS_FROM_CXA_ATEXIT): New. + * doc/tm.texi: Regenerated. + * doc/tm.texi.in: Add TARGET_DTORS_FROM_CXA_ATEXIT hook. + * ipa.c (cgraph_build_static_cdtor_1): Return the built + function decl. + (build_cxa_atexit_decl): New. + (build_dso_handle_decl): New. + (build_cxa_dtor_registrations): New. + (compare_cdtor_tu_order): New. + (build_cxa_atexit_fns): New. + (ipa_cdtor_merge): If dtors_from_cxa_atexit is set, + process the DTORs/CTORs accordingly. + (pass_ipa_cdtor_merge::gate): Also run if + dtors_from_cxa_atexit is set. + * target.def (dtors_from_cxa_atexit): New hook. + + 2022-04-14 Iain Sandoe + + Backported from master: + 2021-11-05 Iain Sandoe + + * config/darwin.h (ASM_GENERATE_INTERNAL_LABEL): Add LTRAMP + to the list of symbol prefixes that must be made linker- + visible. + + 2022-04-14 Saagar Jha + + * config.gcc: Adjust for Darwin21. + * config/darwin-c.c (macosx_version_as_macro): Likewise. + * config/darwin-driver.c (validate_macosx_version_min): + Likewise. + (darwin_find_version_from_kernel): Likewise. + + 2022-04-14 Iain Sandoe + + Backported from master: + 2021-10-13 Iain Sandoe + + * collect2.c (is_lto_object_file): Release simple-object + resources, close files. + + 2022-04-14 Iain Sandoe + + Backported from master: + 2021-09-28 Iain Sandoe + + * config/rs6000/darwin.h (FIXED_R13): Add for PPC64. + (FIRST_SAVED_GP_REGNO): Save from R13 even when it is one + of the fixed regs. + + 2022-04-14 Iain Sandoe + + Backported from master: + 2021-09-19 Iain Sandoe + + * config/darwin.h (LINK_COMMAND_SPEC_A): Use Darwin10 + unwinder shim as a convenience library. + + 2022-04-14 Iain Sandoe + + Backported from master: + 2021-09-14 Iain Sandoe + + * Makefile.in: Remove variables related to applying no-PIE + to the exes on $build. + * configure: Regenerate. + * configure.ac: Remove configuration related to applying + no-PIE to the exes on $build. + + 2022-04-14 Iain Sandoe + + Backported from master: + 2021-08-27 Iain Sandoe + + * config/darwin.c (finalize_ctors): Add a section-start linker- + visible symbol. + (finalize_dtors): Likewise. + * config/darwin.h (MIN_LD64_INIT_TERM_START_LABELS): New. + + 2022-04-14 Iain Sandoe + + Backported from master: + 2021-08-17 Iain Sandoe + + * config/darwin.c (darwin_file_end): Reset and reclaim the + section names table at the end of compile. + + 2022-04-14 Iain Sandoe + + * configure.ac: Handle --with-dsymutil in the same way as we + do for the assembler and linker. (DEFAULT_DSYMUTIL): New. + Extract the type and version for the dsymutil configured or + found by the default searches. + * config.in: Regenerated. + * configure: Regenerated. + * collect2.c (do_dsymutil): Handle locating dsymutil in the + same way as for the assembler and linker. + * config/darwin.h (DSYMUTIL): Delete. + * gcc.c: Report a configured dsymutil correctly. + * exec-tool.in: Allow for dsymutil. + * doc/install.texi: Document --with-dsymutil. + + 2022-04-13 Jakub Jelinek + + Backported from master: + 2022-04-12 Jakub Jelinek + + PR target/105214 + * config/i386/i386-expand.c (ix86_emit_i387_log1p): Call + do_pending_stack_adjust. + + 2022-04-13 Jakub Jelinek + + Backported from master: + 2022-04-12 Jakub Jelinek + + PR rtl-optimization/105211 + * builtins.c (expand_builtin_int_roundingfn_2): If mathfn_built_in_1 + fails for TREE_TYPE (arg), retry it with + TREE_VALUE (TYPE_ARG_TYPES (TREE_TYPE (fndecl))) and if even that + fails, emit call normally. + + 2022-04-13 Jakub Jelinek + + Backported from master: + 2022-04-08 Jakub Jelinek + + PR tree-optimization/105189 + * fold-const.c (make_range_step): Fix up handling of + (unsigned) x +[low, -] ranges for signed x if low fits into + typeof (x). + + 2022-04-13 Jakub Jelinek + + Backported from master: + 2022-04-06 Jakub Jelinek + + PR rtl-optimization/104985 + * combine.c (struct undo): Add where.regno member. + (do_SUBST_MODE): Rename to ... + (subst_mode): ... this. Change first argument from rtx * into int, + operate on regno_reg_rtx[regno] and save regno into where.regno. + (SUBST_MODE): Remove. + (try_combine): Use subst_mode instead of SUBST_MODE, change first + argument from regno_reg_rtx[whatever] to whatever. For UNDO_MODE, use + regno_reg_rtx[undo->where.regno] instead of *undo->where.r. + (undo_to_marker): For UNDO_MODE, use regno_reg_rtx[undo->where.regno] + instead of *undo->where.r. + (simplify_set): Use subst_mode instead of SUBST_MODE, change first + argument from regno_reg_rtx[whatever] to whatever. + + 2022-04-12 Peter Bergner + + Backported from master: + 2022-04-11 Peter Bergner + + PR target/104894 + * config/rs6000/rs6000.c (rs6000_sibcall_aix): Handle pcrel sibcalls + to longcall functions. + + 2022-04-12 Richard Biener + + Backported from master: + 2022-04-12 Richard Biener + + PR tree-optimization/105235 + * tree-ssa-math-opts.c (execute_cse_conv_1): Clean EH and + return whether the CFG changed. + (execute_cse_sincos_1): Adjust. + + 2022-04-12 Richard Biener + + Backported from master: + 2022-04-12 Richard Biener + + PR tree-optimization/105232 + * tree.c (component_ref_size): Bail out for too large + or non-constant sizes. + + 2022-04-12 Richard Biener + + Backported from master: + 2022-04-12 Richard Biener + + PR tree-optimization/105226 + * tree-vect-loop-manip.c (vect_loop_versioning): Verify + we can split the exit of an outer loop we choose to version. + + 2022-04-11 Kito Cheng + + Backported from master: + 2022-04-11 Kito Cheng + + PR target/104853 + * config.gcc: Pass -misa-spec to arch-canonicalize and + multilib-generator. + * config/riscv/arch-canonicalize: Adding -misa-spec option. + (SUPPORTED_ISA_SPEC): New. + (arch_canonicalize): New argument `isa_spec`. + Handle multiple ISA spec versions. + * config/riscv/multilib-generator: Adding -misa-spec option. + + 2022-04-11 Kito Cheng + + Backported from master: + 2021-08-16 Kito Cheng + + * config/riscv/multilib-generator: Support code model option for + multi-lib. + * doc/install.texi: Add document of new option for + --with-multilib-generator. + + 2022-04-08 Richard Biener + + Backported from master: + 2022-04-08 Richard Biener + + PR tree-optimization/105198 + * tree-predcom.c (find_looparound_phi): Check whether + the found memory location of the entry value is clobbered + inbetween the value we want to use and loop entry. + + 2022-04-07 Jan Hubicka + + Backported from master: + 2021-11-26 Jan Hubicka + + PR ipa/103432 + * ipa-modref.c (update_escape_summary_1): Fix handling of min_flags. + + 2022-04-07 Jan Hubicka + + Backported from master: + 2021-08-11 Jan Hubicka + Alexandre Oliva + + * ipa-modref.c (modref_lattice::dump): Fix escape_point's min_flags + dumping. + (modref_lattice::merge_deref): Fix handling of indirect scape points. + (update_escape_summary_1): Likewise. + (update_escape_summary): Likewise. + (ipa_merge_modref_summary_after_inlining): Likewise. + + 2022-04-07 Richard Biener + + PR tree-optimization/99121 + * gimple-array-bounds.cc (array_bounds_checker::check_mem_ref): + Bail out for non-constant type size. + + 2022-04-07 Bernd Edlinger + + Backported from master: + 2021-04-27 Bernd Edlinger + + PR target/100106 + * simplify-rtx.c (simplify_context::simplify_subreg): Check the + memory alignment for the outer mode. + + 2022-04-07 Richard Biener + + PR middle-end/104497 + * gimplify.c (gimplify_compound_lval): Make sure the + base is a non-register if needed and possible. + + 2022-04-07 Richard Biener + + PR tree-optimization/105053 + * tree-vect-loop.c (vect_create_epilog_for_reduction): Pick + the correct live-out stmt for a reduction chain. + + 2022-04-07 Andrew Pinski + + Backported from master: + 2022-02-10 Andrew Pinski + + PR target/104474 + * config/aarch64/aarch64.c + (aarch64_sve_expand_vector_init_handle_trailing_constants): + Use CONST0_RTX instead of const0_rtx for the non-constant elements. + + 2022-04-07 Richard Biener + + Backported from master: + 2022-03-28 Richard Biener + + PR tree-optimization/105070 + * tree-switch-conversion.h + (bit_test_cluster::hoist_edge_and_branch_if_true): Add location + argument. + * tree-switch-conversion.c + (bit_test_cluster::hoist_edge_and_branch_if_true): Annotate + cond with location. + (bit_test_cluster::emit): Annotate all generated expressions + with location. + + 2022-04-07 Richard Biener + + Backported from master: + 2022-03-23 Richard Biener + + PR rtl-optimization/105028 + * ira-color.c (form_threads_from_copies): Remove unnecessary + copying of the sorted_copies tail. + + 2022-04-07 Richard Biener + + Backported from master: + 2022-03-11 Richard Biener + + PR tree-optimization/104880 + * tree-ssa.c (execute_update_address_taken): Remember if we + optimistically made something not addressable and + prepare to undo it. + + 2022-04-07 Richard Biener + + Backported from master: + 2022-04-07 Richard Biener + + PR middle-end/105165 + * tree-complex.c (expand_complex_asm): Sorry for asm goto + _Complex outputs. + + 2022-04-04 Martin Jambor + + Backported from master: + 2022-03-31 Martin Jambor + + PR ipa/103083 + * ipa-prop.h (ipa_ancestor_jf_data): New flag keep_null; + (ipa_get_jf_ancestor_keep_null): New function. + * ipa-prop.c (ipa_set_ancestor_jf): Initialize keep_null field of the + ancestor function. + (compute_complex_assign_jump_func): Pass false to keep_null + parameter of ipa_set_ancestor_jf. + (compute_complex_ancestor_jump_func): Pass true to keep_null + parameter of ipa_set_ancestor_jf. + (update_jump_functions_after_inlining): Carry over keep_null from the + original ancestor jump-function or merge them. + (ipa_write_jump_function): Stream keep_null flag. + (ipa_read_jump_function): Likewise. + (ipa_print_node_jump_functions_for_edge): Print the new flag. + * ipa-cp.c (class ipcp_bits_lattice): Make various getters const. New + member function known_nonzero_p. + (ipcp_bits_lattice::known_nonzero_p): New. + (ipcp_bits_lattice::meet_with_1): New parameter drop_all_ones, + observe it. + (ipcp_bits_lattice::meet_with): Likewise. + (propagate_bits_across_jump_function): Simplify. Pass true in + drop_all_ones when it is necessary. + (propagate_aggs_across_jump_function): Take care of keep_null + flag. + (ipa_get_jf_ancestor_result): Propagate NULL accross keep_null + jump functions. + + 2022-04-03 Jakub Jelinek + + Backported from master: + 2022-04-03 Jakub Jelinek + + PR target/105123 + * config/i386/i386-expand.c (ix86_expand_vector_init_general): Avoid + using word as target for expand_simple_binop when doing ASHIFT and + IOR. + + 2022-04-01 Vladimir N. Makarov + + PR middle-end/105032 + * lra-assigns.c (find_reload_regno_insns): Modify loop condition. + + 2022-03-30 H.J. Lu + + Backported from master: + 2022-03-28 H.J. Lu + + PR target/105068 + * config/i386/sse.md (*ssse3_pshufbv8qi3): Also replace "Yv" with + "Yw" in clobber. + + 2022-03-30 Kito Cheng + + * config.gcc (riscv*-*-*): Set right default isa spec. + + 2022-03-30 Kito Cheng + + Backported from master: + 2021-10-28 Kito Cheng + + * config/riscv/arch-canonicalize (CANONICAL_ORDER): Add `i` to + CANONICAL_ORDER. + + 2022-03-30 Maciej W. Rozycki + + Backported from master: + 2021-11-03 Maciej W. Rozycki + + * config/riscv/riscv.c (riscv_class_max_nregs): Swap the + arguments to `reg_class_subset_p'. + + 2022-03-30 Kito Cheng + + Backported from master: + 2021-11-11 Kito Cheng + + * common/config/riscv/riscv-common.c (riscv_subset_list::to_string): Fix + wrong marco checking. + + 2022-03-30 Maciej W. Rozycki + + Backported from master: + 2022-01-18 Maciej W. Rozycki + + * common/config/riscv/riscv-common.c + (riscv_subset_list::parse_multiletter_ext): Move pointer + arithmetic ahead of `free'. + + 2022-03-30 Kito Cheng + + Backported from master: + 2022-01-24 Kito Cheng + + * common/config/riscv/riscv-common.c (riscv_subset_list::to_string): + Skip zicsr and zifencei if I-ext is 2.0. + + 2022-03-30 Kito Cheng + + Backported from master: + 2022-02-05 Kito Cheng + + * configure.ac: Fix detection for zifencei support. + * configure: Regenerate. + + 2022-03-30 Jakub Jelinek + + Backported from master: + 2022-03-30 Jakub Jelinek + + PR sanitizer/105093 + * ubsan.c (instrument_object_size): If t is equal to inner and + is a decl other than global var, punt. When emitting call to + UBSAN_OBJECT_SIZE ifn, make sure base is addressable. + + 2022-03-30 Jakub Jelinek + + Backported from master: + 2022-03-30 Jakub Jelinek + + PR tree-optimization/105094 + * gimple-ssa-store-merging.c (mem_valid_for_store_merging): Punt if + bitsize <= 0 rather than just == 0. + + 2022-03-30 Martin Liska + + * lto-streamer.h (LTO_minor_version): Bump it. + + 2022-03-29 Jakub Jelinek + + Backported from master: + 2022-03-24 Jakub Jelinek + + PR c++/105035 + * fold-const.c (operand_equal_p) : If either + field0 or field1 is not a FIELD_DECL, return false. + + 2022-03-29 Jakub Jelinek + + Backported from master: + 2022-03-19 Jakub Jelinek + + PR middle-end/104971 + * config/i386/i386-expand.c + (ix86_expand_builtin) : If ignore, + don't push/pop anything and just return const0_rtx. + + 2022-03-29 Jakub Jelinek + + Backported from master: + 2022-03-18 Jakub Jelinek + + PR middle-end/99578 + PR middle-end/100680 + PR tree-optimization/100834 + * params.opt (--param=min-pagesize=): New parameter. + * builtins.c (compute_objsize_r) : Use maximum + object size instead of zero for pointer constants equal or larger + than min-pagesize. + + 2022-03-29 Jakub Jelinek + + Backported from master: + 2022-03-16 Jakub Jelinek + + PR target/104910 + * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Copy + imm rtx. + + 2022-03-29 Jakub Jelinek + + Backported from master: + 2022-03-15 Jakub Jelinek + + PR rtl-optimization/104814 + * ifcvt.c (find_if_case_1, find_if_case_2): Punt if test_bb doesn't + end with onlyjump_p. Assume BB_END (test_bb) is always non-NULL. + + 2022-03-29 Jakub Jelinek + + Backported from master: + 2022-03-09 Jakub Jelinek + + PR c/104711 + * doc/invoke.texi (-Wextra): Document that -Wshift-negative-value + is enabled by it only for C++11 to C++17 rather than for C++03 or + later. + (-Wshift-negative-value): Similarly (except here we stated + that it is enabled for C++11 or later). + + 2022-03-29 Jakub Jelinek + + Backported from master: + 2022-03-07 Jakub Jelinek + + PR target/104775 + * config/s390/s390.md (*cmp_and_trap_unsigned_int): Use + S constraint instead of T in the last alternative. + + 2022-03-29 Jakub Jelinek + + Backported from master: + 2022-03-02 Jakub Jelinek + + PR rtl-optimization/104589 + * cfgrtl.c (fixup_reorder_chain): Use loc_equal instead of direct + INSN_LOCATION comparison with goto_locus. + + 2022-03-29 Jakub Jelinek + + Backported from master: + 2022-02-25 Jakub Jelinek + Marc Glisse + + PR tree-optimization/104675 + * match.pd (t * 2U / 2 -> t & (~0 / 2), t / 2U * 2 -> t & ~1): + Restrict simplifications to INTEGRAL_TYPE_P. + + 2022-03-29 Jakub Jelinek + + Backported from master: + 2022-02-25 Jakub Jelinek + + PR target/104681 + * config/rs6000/vector.md (movmisalign): Use rs6000_emit_move. + + 2022-03-29 Jakub Jelinek + + Backported from master: + 2022-02-25 Jakub Jelinek + + PR target/104674 + * config/i386/i386.h (enum ix86_stack_slot): Add SLOT_FLOATxFDI_387. + * config/i386/i386.md (splitter to floatdi2_i387_with_xmm): Use + SLOT_FLOATxFDI_387 rather than SLOT_TEMP. + + 2022-03-29 Jakub Jelinek + + Backported from master: + 2022-02-25 Jakub Jelinek + + PR tree-optimization/104675 + * match.pd (-A - 1 -> ~A, -1 - A -> ~A): Don't simplify for + COMPLEX_TYPE. + + 2022-03-29 Jakub Jelinek + + Backported from master: + 2022-02-24 Jakub Jelinek + + PR tree-optimization/104601 + * tree-ssa-sccvn.c (visit_reference_op_call): For calls with + non-SSA_NAME lhs value number vdef to itself instead of e.g. the + vuse value number. + + 2022-03-29 Jakub Jelinek + + Backported from master: + 2022-02-19 Jakub Jelinek + + PR sanitizer/102656 + * asan.c (instrument_derefs): If inner is a RESULT_DECL and access is + known to be within bounds, treat it like automatic variables. + If instrumenting access and inner is {VAR,PARM,RESULT}_DECL from + current function and !TREE_STATIC which is not TREE_ADDRESSABLE, mark + it addressable. + + 2022-03-28 H.J. Lu + + Backported from master: + 2022-03-27 H.J. Lu + + PR target/105068 + * config/i386/sse.md (*ssse3_pshufbv8qi3): Replace "Yv" with + "Yw". + + 2022-03-28 Kito Cheng + + Backported from master: + 2021-11-09 Kito Cheng + + PR target/102957 + * common/config/riscv/riscv-common.c (multi_letter_subset_rank): Remove + assertion for Z*-ext. + + 2022-03-28 Jakub Jelinek + + PR target/99754 + * config/i386/emmintrin.h (_mm_loadu_si32): Put loaded value into + first rather than last element of the vector, use __m32_u to do + a really unaligned load, use just 0 instead of (int)0. + (_mm_loadu_si16): Put loaded value into first rather than last + element of the vector, use __m16_u to do a really unaligned load, + use just 0 instead of (short)0. + + 2022-03-26 H.J. Lu + + Backported from master: + 2022-03-26 H.J. Lu + + PR target/105058 + * config/i386/sse.md (loadiwkey): Replace "v" with "x". + (aesu8): Likewise. + + 2022-03-26 H.J. Lu + + Backported from master: + 2022-03-26 H.J. Lu + + PR target/105052 + * config/i386/sse.md (ssse3_phwv4hi3): + Replace "Yv" with "x". + (ssse3_phdv2si3): Likewise. + (ssse3_psign3): Likewise. + + 2022-03-23 Richard Biener + + PR tree-optimization/101636 + PR tree-optimization/104782 + * tree-vect-slp.c (vect_slp_analyze_operations): Make sure + the CTOR is vectorized with an expected type. + + 2022-03-23 Richard Biener + + PR tree-optimization/104931 + * match.pd ((ptr) (x p+ y) p+ z -> (ptr) (x p+ (y + z))): New GENERIC + simplification. + + 2022-03-22 H.J. Lu + + Backported from master: + 2022-03-21 H.J. Lu + + PR target/105000 + * common/config/i386/i386-common.c + (OPTION_MASK_ISA2_GENERAL_REGS_ONLY_UNSET): Replace + OPTION_MASK_ISA2_AVX512F_UNSET with OPTION_MASK_ISA2_SSE_UNSET. + + 2022-03-22 H.J. Lu + + Backported from master: + 2022-03-16 H.J. Lu + + PR target/104890 + * config/i386/x86gprintrin.h: Also check _SOFT_FLOAT before + pushing target("general-regs-only"). + + 2022-03-22 Jason Merrill + + * tree.h (struct tree_vec_map_cache_hasher): Move from... + * tree.c (struct tree_vec_map_cache_hasher): ...here. + + 2022-03-21 H.J. Lu + + Backported from master: + 2022-03-21 H.J. Lu + + PR target/104998 + * common/config/i386/cpuinfo.h (get_available_features): Pass + 0x19 to __cpuid for bit_AESKLE. Enable FEATURE_AESKLE only if + bit_AESKLE is set. + + 2022-03-18 Peter Bergner + + Backported from master: + 2022-03-15 Peter Bergner + + PR target/104923 + * config/rs6000/predicates.md (mma_disassemble_output_operand): Restrict + acceptable MEM addresses. + + 2022-03-18 Peter Bergner + + Backported from master: + 2022-03-04 Peter Bergner + + PR target/87496 + PR target/104208 + * config/rs6000/rs6000.c (rs6000_option_override_internal): Make the + ISA 2.06 requirement for -mabi=ieeelongdouble conditional on + -mlong-double-128. + Move the -mabi=ieeelongdouble and -mabi=ibmlongdouble error checking + from here... + * common/config/rs6000/rs6000-common.c (rs6000_handle_option): + ... to here. + + 2022-03-18 Cui,Lili + + PR target/104963 + * config/i386/i386.h (PTA_SAPPHIRERAPIDS): change it to base on ICX. + * doc/invoke.texi: Update documents for Intel sapphirerapids. + + 2022-03-16 Qing Zhao + + PR middle-end/100775 + * function.c (gen_call_used_regs_seq): Call + df_update_exit_block_uses when updating df. + + 2022-03-16 Richard Biener + + Backported from master: + 2022-03-09 Richard Biener + + PR middle-end/104786 + * cfgexpand.c (expand_asm_stmt): Do not generate a copy + for VLAs without an upper size bound. + + 2022-03-16 Richard Biener + + Backported from master: + 2022-02-14 Richard Biener + + PR tree-optimization/104511 + * tree-ssa-forwprop.c (simplify_vector_constructor): Avoid + touching DFP <-> FP conversions. + + 2022-03-16 Richard Biener + + Backported from master: + 2022-02-09 Richard Biener + + PR target/104453 + * config/i386/i386.c (ix86_gimple_fold_builtin): Guard shift + folding for NULL LHS. + + 2022-03-16 Richard Biener + + Backported from master: + 2022-02-07 Richard Biener + + PR middle-end/104402 + * gimple-expr.c (is_gimple_condexpr): _Complex typed + compares are not valid. + * tree-cfg.c (verify_gimple_assign_ternary): For COND_EXPR + check is_gimple_condexpr. + + 2022-03-16 Richard Biener + + Backported from master: + 2022-02-03 Richard Biener + + PR debug/104337 + * tree-nrv.c (pass_nrv::execute): Remove tieing result and found + together via DECL_ABSTRACT_ORIGIN. + + 2022-03-16 Richard Biener + + Backported from master: + 2022-02-04 Richard Biener + + PR tree-optimization/103641 + * tree-vect-patterns.c (vect_synth_mult_by_constant): + Pass the vector mode to choose_mult_variant. + + 2022-03-11 Michael Meissner + + PR target/99708 + * config/rs6000/rs6000-c.c: Revert patch from 2022-03-05. + + 2022-03-10 Marek Polacek + + Backported from master: + 2022-03-08 Marek Polacek + + PR rtl-optimization/104777 + * rtl.c (classify_insn): For ASM_OPERANDS, return JUMP_INSN only if + ASM_OPERANDS_LABEL_VEC has at least one element. + + 2022-03-09 Kito Cheng + + Backported from master: + 2022-02-05 Kito Cheng + + PR target/104219 + * config.gcc (riscv*-*-*): Normalize the with_isa_spec value. + (all_defaults): Add isa_spec. + * config/riscv/riscv.h (OPTION_DEFAULT_SPECS): Add isa_spec. + + 2022-03-05 Michael Meissner + + PR target/99708 + * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define + __SIZEOF_IBM128__ if the IBM 128-bit long double type is created. + Define __SIZEOF_FLOAT128__ if the IEEE 128-bit floating point type + is created. Backport change made to the master branch on + 2022-02-17. + + 2022-03-05 Michael Meissner + + PR target/104253 + * config/rs6000/rs6000.c (init_float128_ibm): Update the + conversion functions used to convert IFmode types. Backport + change from 2022-02-14 made on the master branch. + + 2022-03-01 Tamar Christina + + * tree-vect-slp-patterns.c (vect_validate_multiplication): Correctly + detect conjugate cases. + (complex_mul_pattern::matches): Likewise. + (complex_fma_pattern::matches): Move accumulator last as expected. + (complex_fma_pattern::build): Likewise. + (complex_fms_pattern::matches): Handle different conjugate form. + + 2022-02-25 Tamar Christina + + * config/arm/arm_neon.h (vdot_laneq_u32, vdotq_laneq_u32, + vdot_laneq_s32, vdotq_laneq_s32): New. + * config/arm/arm_neon_builtins.def (sdot_laneq, udot_laneq): New. + * config/arm/neon.md (neon_dot): New. + (dot_prod): Re-order rtl. + (neon_dot_lane): Fix rtl order and endiannes. + (neon_dot_laneq): New. + + 2022-02-25 Tamar Christina + + * config/arm/arm_neon.h (vusdotq_s32, vusdot_laneq_s32, + vusdotq_laneq_s32, vsudot_laneq_s32, vsudotq_laneq_s32): New + * config/arm/arm_neon_builtins.def (usdot): Add V16QI. + (usdot_laneq, sudot_laneq): New. + * config/arm/neon.md (neon_dot_laneq): New. + (neon_dot_lane): Remote unneeded code. + + 2022-02-25 Tamar Christina + + PR tree-optimization/102819 + PR tree-optimization/103169 + * config/arm/vec-common.md (cml4): Use + canonical order. + + 2022-02-25 Tamar Christina + + PR tree-optimization/102819 + PR tree-optimization/103169 + * config/aarch64/aarch64-simd.md (cml4): Use + canonical order. + * config/aarch64/aarch64-sve.md (cml4): Likewise. + + 2022-02-25 Tamar Christina + + PR tree-optimization/102819 + PR tree-optimization/103169 + * gimple.h (gimple_num_args, gimple_arg): New. + * doc/md.texi: Update docs for cfms, cfma. + * tree-data-ref.h (same_data_refs): Accept optional offset. + * tree-vect-slp-patterns.c (is_linear_load_p): Fix issue with repeating + patterns. + (vect_normalize_conj_loc): Remove. + (is_eq_or_top): Change to take two nodes. + (enum _conj_status, compatible_complex_nodes_p, + vect_validate_multiplication): New. + (class complex_add_pattern, complex_add_pattern::matches, + complex_add_pattern::recognize, class complex_mul_pattern, + complex_mul_pattern::recognize, class complex_fms_pattern, + complex_fms_pattern::recognize,, class complex_fma_pattern, + complex_fma_pattern::recognize, class complex_operations_pattern, + complex_operations_pattern::recognize, addsub_pattern::recognize): Pass + new cache. + (complex_fms_pattern::matches, complex_fma_pattern::matches, + complex_mul_pattern::matches): Pass new cache and use new validation + code. + * tree-vect-slp.c (vect_match_slp_patterns_2, vect_match_slp_patterns, + vect_analyze_slp): Pass along cache. + (compatible_calls_p): Expose. + * tree-vectorizer.h (compatible_calls_p, slp_node_hash, + slp_compat_nodes_map_t): New. + (class vect_pattern): Update signatures include new cache. + + 2022-02-21 Pat Haugen + + * config/rs6000/rs6000.opt (mpower10-fusion): Mark Undocumented. + (mpower10-fusion-ld-cmpi, mpower10-fusion-2logical, + mpower10-fusion-logical-add, mpower10-fusion-add-logical, + mpower10-fusion-2add, mpower10-fusion-2store): Remove. + * config/rs6000/rs6000-cpus.def (ISA_3_1_MASKS_SERVER, + OTHER_P9_VECTOR_MASKS): Remove Power10 fusion sub-options. + * config/rs6000/rs6000.c (rs6000_option_override_internal, + power10_sched_reorder): Likewise. + * config/rs6000/genfusion.pl (gen_ld_cmpi_p10, gen_logical_addsubf, + gen_addadd): Likewise + * config/rs6000/fusion.md: Regenerate. + + 2022-02-19 Jakub Jelinek + + Backported from master: + 2022-02-17 Jakub Jelinek + + PR debug/104557 + * valtrack.c (debug_lowpart_subreg): Don't call gen_rtx_raw_SUBREG + if expr has VOIDmode. + + 2022-02-19 Jakub Jelinek + + Backported from master: + 2022-02-16 Jakub Jelinek + + PR rtl-optimization/104544 + * combine.c (try_combine): When looking for insn whose links + should be updated from i3 to i2, don't stop on debug insns, instead + skip over them. + + 2022-02-19 Jakub Jelinek + + Backported from master: + 2022-02-15 Jakub Jelinek + + PR debug/104517 + * omp-low.c (task_cpyfns): New variable. + (delete_omp_context): Don't call finalize_task_copyfn from here. + (create_task_copyfn): Push task_stmt into task_cpyfns. + (execute_lower_omp): Call finalize_task_copyfn here on entries from + task_cpyfns vector and release the vector. + + 2022-02-19 Jakub Jelinek + + Backported from master: + 2022-02-12 Jakub Jelinek + + PR sanitizer/104449 + * asan.c: Include tree-eh.h. + (handle_builtin_alloca): Handle the case when __builtin_alloca or + __builtin_alloca_with_align can throw. + + 2022-02-19 Jakub Jelinek + + Backported from master: + 2022-02-12 Jakub Jelinek + + PR target/104502 + * config/i386/i386.md (cvtsd2ss splitter): If operands[1] is xmm16+ + and AVX512VL isn't available, move operands[1] to operands[0] first. + + 2022-02-19 Jakub Jelinek + + Backported from master: + 2022-02-11 Jakub Jelinek + + PR middle-end/104446 + * combine.c (subst): Don't substitute CONST_INTs into RTX_AUTOINC + operands. + + 2022-02-19 Jakub Jelinek + + Backported from master: + 2022-02-08 Jakub Jelinek + + PR target/102140 + * config/rs6000/rs6000.c (vspltis_shifted): Return false also if + split1 pass has finished already. + + 2022-02-19 Jakub Jelinek + + Backported from master: + 2022-02-01 Jakub Jelinek + + PR middle-end/104307 + * tree-vect-generic.c (expand_vector_comparison): Don't push debug + stmts to uses vector, just set vec_cond_expr_only to false for + non-VEC_COND_EXPRs instead of pushing them into uses. Treat + VEC_COND_EXPRs that use lhs not just in rhs1, but rhs2 or rhs3 too + like non-VEC_COND_EXPRs. + + 2022-02-19 Jakub Jelinek + + Backported from master: + 2022-01-28 Jakub Jelinek + + PR tree-optimization/104263 + * gimple-ssa-store-merging.c (get_status_for_store_merging): For + cfun->can_throw_non_call_exceptions && cfun->eh test whether + last non-debug stmt in the bb is store_valid_for_store_merging_p + rather than last stmt. + + 2022-02-19 Jakub Jelinek + + Backported from master: + 2022-01-28 Jakub Jelinek + + PR lto/104237 + * cfgrtl.c (loc_equal): New function. + (unique_locus_on_edge_between_p): Use it. + + 2022-02-18 Richard Biener + + Backported from master: + 2021-05-10 Richard Biener + + PR middle-end/100464 + PR c++/100468 + * gimple-fold.c (canonicalize_constructor_val): Do not set + TREE_ADDRESSABLE. + + 2022-02-17 Richard Biener + + Backported from master: + 2021-10-22 Richard Biener + + PR tree-optimization/102893 + * tree-ssa-dce.c (find_obviously_necessary_stmts): Fix the + test for an exit edge. + + 2022-02-17 Richard Biener + + Backported from master: + 2021-08-27 Richard Biener + + PR tree-optimization/45178 + * tree-ssa-dce.c (find_obviously_necessary_stmts): For + infinite loops without exit do not mark control dependent + edges of the latch necessary. + + 2022-02-17 Richard Biener + + Backported from master: + 2022-01-04 Richard Biener + + PR tree-optimization/103864 + PR tree-optimization/103544 + * tree-vect-slp.c (vect_analyze_slp_instance): Exclude + reductions wrapped in conversions from SLP handling. + (vect_analyze_slp): Revert PR103544 change. + + 2022-02-17 Richard Biener + + Backported from master: + 2021-12-06 Richard Biener + + PR tree-optimization/103544 + * tree-vect-slp.c (vect_analyze_slp): Only add a SLP reduction + opportunity if the stmt in question is the reduction root. + + 2022-02-17 Richard Biener + + Backported from master: + 2021-11-23 Richard Biener + + PR tree-optimization/103361 + * gimple-loop-jam.c (adjust_unroll_factor): Use lambda_int + for the dependence distance. + * tree-data-ref.c (print_lambda_vector): Properly print a lambda_int. + + 2022-02-17 Richard Biener + + Backported from master: + 2022-01-20 Richard Biener + + PR middle-end/100786 + * gimple-fold.c (get_symbol_constant_value): Only return + values of compatible type to the symbol. + + 2022-02-17 Richard Biener + + Backported from master: + 2022-01-20 Richard Biener + + PR target/100784 + * config/i386/i386.c (ix86_gimple_fold_builtin): Check for + LHS before folding __builtin_ia32_shufpd and friends. + + 2022-02-16 H.J. Lu + + Backported from master: + 2022-01-06 H.J. Lu + + PR target/103925 + * config/i386/i386.c (ix86_output_indirect_function_return): + Generate INT3 after indirect jmp for -mharden-sls=indirect-jmp. + + 2022-02-16 H.J. Lu + + Backported from master: + 2022-01-06 H.J. Lu + + PR target/102952 + * config/i386/i386-opts.h (harden_sls): Replace + harden_sls_indirect_branch with harden_sls_indirect_jmp. + * config/i386/i386.c (ix86_output_jmp_thunk_or_indirect): + Likewise. + (ix86_output_indirect_jmp): Likewise. + (ix86_output_call_insn): Likewise. + * config/i386/i386.opt: Replace indirect-branch with + indirect-jmp. Replace harden_sls_indirect_branch with + harden_sls_indirect_jmp. + * doc/invoke.texi (-harden-sls=): Replace indirect-branch with + indirect-jmp. + + 2022-02-16 H.J. Lu + + Backported from master: + 2021-11-18 H.J. Lu + + PR target/102952 + * config/i386/i386.c (ix86_output_jmp_thunk_or_indirect): Emit + CS prefix for -mindirect-branch-cs-prefix. + (ix86_output_indirect_branch_via_reg): Likewise. + * config/i386/i386.opt: Add -mindirect-branch-cs-prefix. + * doc/invoke.texi: Document -mindirect-branch-cs-prefix. + + 2022-02-16 H.J. Lu + + Backported from master: + 2021-11-17 H.J. Lu + + PR target/102952 + * config/i386/i386-opts.h (harden_sls): New enum. + * config/i386/i386.c (output_indirect_thunk): Mitigate against + SLS for function return. + (ix86_output_function_return): Likewise. + (ix86_output_jmp_thunk_or_indirect): Mitigate against indirect + branch. + (ix86_output_indirect_jmp): Likewise. + (ix86_output_call_insn): Likewise. + * config/i386/i386.opt: Add -mharden-sls=. + * doc/invoke.texi: Document -mharden-sls=. + + 2022-02-16 H.J. Lu + + Backported from master: + 2021-11-17 H.J. Lu + + PR target/103307 + * config/i386/i386.c (ix86_code_end): Remove "%!" before ret. + (ix86_output_function_return): Likewise. + * config/i386/i386.md (simple_return_pop_internal): Likewise. + + 2022-02-15 Kewen Lin + + Backported from master: + 2022-02-07 Kewen Lin + + PR target/103627 + * config/rs6000/rs6000.c (rs6000_option_override_internal): Move the + hunk affecting VSX and ALTIVEC to appropriate place. + + 2022-02-15 Kewen Lin + + Backported from master: + 2022-02-07 Kewen Lin + + PR target/103627 + * config/rs6000/rs6000.c (rs6000_option_override_internal): Disable + MMA if !TARGET_VSX. + + 2022-02-14 Maciej W. Rozycki + + Backported from master: + 2022-02-08 Maciej W. Rozycki + + * config/riscv/t-riscv (riscv-sr.o): Add $(TM_H) dependency. + + 2022-02-13 Uros Bizjak + + Backported from master: + 2022-02-12 Uroš Bizjak + + PR target/79754 + * config/i386/i386.c (type_natural_mode): + Skip decimal float vector modes. + + 2022-02-11 Martin Liska + + Backported from master: + 2021-12-03 Martin Liska + Peter Bergner + + PR target/101324 + * config/rs6000/rs6000.c (rs6000_option_override_internal): Move the + disabling of shrink-wrapping when using -mrop-protect from here... + (rs6000_override_options_after_change): ...to here. + + 2022-02-10 Uros Bizjak + + Backported from master: + 2022-02-10 Uroš Bizjak + + PR target/104469 + * config/i386/sse.md (vec_unpacks_float_lo_v4si): + Change operand 1 constraint to register_operand. + + 2022-02-09 Uroš Bizjak + + PR target/104462 + * common/config/i386/i386-common.c (OPTION_MASK_ISA2_XSAVE_UNSET): + Also include OPTION_MASK_ISA2_AVX2_UNSET. + + 2022-02-09 Uros Bizjak + + Backported from master: + 2022-02-09 Uroš Bizjak + + PR target/104458 + * config/i386/i386-expand.c (ix86_split_idivmod): + Force operands[2] and operands[3] into a register.. + + 2022-02-09 liuhongt + + PR target/104451 + * config/i386/sse.md (3): lowpart_subreg + operands[2] from SImode to QImode. + + 2022-02-08 Andrew MacLeod + + PR tree-optimization/104288 + * gimple-range-cache.cc (ssa_range_in_bb): Only use non-null from the + dominator entry ranges. + * gimple-range.cc (gimple_ranger::range_of_expr): Ditto. + + 2022-02-03 Uroš Bizjak + + PR target/104362 + * config/i386/i386.c (find_drap_reg): For 32bit targets + return DI_REG if function uses __builtin_eh_return. + + 2022-02-02 Sebastian Huber + + PR target/104090 + * config/rs6000/rs6000.c (rs6000_machine_from_flags): Use also + rs6000_cpu. + + 2022-02-02 Ilya Leoshkevich + + Backported from master: + 2022-02-01 Ilya Leoshkevich + + * config/s390/s390.c (s390_code_end): Do not switch back to + code section. + + 2022-02-02 Xi Ruoyao + + Backported from master: + 2022-02-01 Xi Ruoyao + + PR middle-end/95115 + * fold-const.c (const_binop): Do not fold NaN result from + non-NaN operands. + + 2022-01-28 Richard Biener + + Backported from master: + 2021-12-07 Richard Biener + + PR tree-optimization/103596 + * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt): + Note we are not propagating into a PHI argument to may_propagate_copy. + * tree-ssa-propagate.h (may_propagate_copy): Add + argument specifying whether we propagate into a PHI arg. + * tree-ssa-propagate.c (may_propagate_copy): Likewise. + When not doing so we can replace an abnormal with + something else. + (may_propagate_into_stmt): Update may_propagate_copy calls. + (replace_exp_1): Move propagation checking code to + propagate_value and rename to ... + (replace_exp): ... this and elide previous wrapper. + (propagate_value): Perform checking with adjusted + may_propagate_copy call and dispatch to replace_exp. + + 2022-01-28 Richard Biener + + Backported from master: + 2021-11-30 Richard Biener + + PR tree-optimization/103489 + * tree-vect-loop.c (vectorizable_phi): Verify argument + vector type compatibility to mitigate bool pattern recog + bug. + + 2022-01-26 Andrew Pinski + + Backported from master: + 2021-11-10 Andrew Pinski + + PR target/101529 + * config/aarch64/aarch64.c (aarch64_evpc_ins): Don't use target + as an input, use original one. + + 2022-01-25 Jakub Jelinek + + Backported from master: + 2022-01-25 Jakub Jelinek + + PR target/104172 + * config/rs6000/rs6000-internal.h (rs6000_passes_ieee128): Don't + declare. + * config/rs6000/rs6000.c (rs6000_passes_ieee128, + ieee128_mangling_gcc_8_1): Remove. + (TARGET_ASM_GLOBALIZE_DECL_NAME): Don't redefine. + (rs6000_mangle_type): Return "u9__ieee128" instead of + ieee128_mangling_gcc_8_1 ? "U10__float128" : "u9__ieee128". + (rs6000_globalize_decl_name): Remove. + * config/rs6000/rs6000-call.c (init_cumulative_args, + rs6000_function_arg_advance_1): Don't set rs6000_passes_ieee128. + + 2022-01-24 Jakub Jelinek + + Backported from master: + 2022-01-21 Jakub Jelinek + + PR rtl-optimization/102478 + * optabs.c (prepare_cmp_insn): If !can_create_pseudo_p (), don't + force_reg constants and for -fnon-call-exceptions fail if copy_to_reg + would be needed. + + 2022-01-24 Jakub Jelinek + + Backported from master: + 2022-01-20 Jakub Jelinek + + PR debug/103874 + * dwarf2out.c (index_rnglists): For !HAVE_AS_LEB128 and + block_num > 0, index entry even if !have_multiple_function_sections. + + 2022-01-24 Jakub Jelinek + + Backported from master: + 2022-01-19 Jakub Jelinek + + PR middle-end/102860 + * match.pd (x %[fl] y -> x % y): New simplification for + unsigned integral types. + * optabs-tree.c (optab_for_tree_code): Return unknown_optab + for {CEIL,FLOOR,ROUND}_{DIV,MOD}_EXPR with VECTOR_TYPE. + + 2022-01-24 Jakub Jelinek + + Backported from master: + 2022-01-19 Jakub Jelinek + + * config/i386/sse.md (*aesu*): Use %0 instead of + {%0}. + + 2022-01-24 Jakub Jelinek + + Backported from master: + 2022-01-06 Jakub Jelinek + + PR rtl-optimization/103908 + * ifcvt.c (bb_valid_for_noce_process_p): Punt on bbs ending with + asm goto. + + 2022-01-24 Jakub Jelinek + + Backported from master: + 2021-12-30 Jakub Jelinek + + PR c++/103012 + * config/i386/i386-c.c (ix86_pragma_target_parse): Perform + cpp_define/cpp_undef calls with forced token locations + BUILTINS_LOCATION. + * config/arm/arm-c.c (arm_pragma_target_parse): Likewise. + * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse): Likewise. + * config/s390/s390-c.c (s390_pragma_target_parse): Likewise. + + 2022-01-24 Jakub Jelinek + + Backported from master: + 2021-12-30 Jakub Jelinek + + PR rtl-optimization/103860 + * shrink-wrap.c (try_shrink_wrapping): Make sure can_get_prologue is + called on pro even if nothing further is pushed into vec. + + 2022-01-24 Jakub Jelinek + + Backported from master: + 2021-12-28 Jakub Jelinek + + PR middle-end/103813 + * fold-const.c (fold_truth_andor_1): Punt of const_binop LSHIFT_EXPR + or RSHIFT_EXPR returns NULL. Formatting fix. + + 2022-01-24 Jakub Jelinek + + Backported from master: + 2021-12-28 Jakub Jelinek + + PR rtl-optimization/103837 + * loop-invariant.c (can_move_invariant_reg): Ignore DEBUG_INSNs in + the decisions whether to return false or continue and right before + returning true reset those debug insns that previously caused + returning false. + + 2022-01-24 Jakub Jelinek + + Backported from master: + 2021-12-28 Jakub Jelinek + + PR debug/103838 + * optabs.c (expand_doubleword_mod, expand_doubleword_divmod): Only + check newly added insns for CALL_P, not the last insn of previous + code. + + 2022-01-24 H.J. Lu + + Backported from master: + 2022-01-24 H.J. Lu + + PR target/104188 + * config/i386/predicates.md (bcst_mem_operand): Also check mode + of memory broadcast. + + 2022-01-18 Martin Liska + + Backported from master: + 2021-08-13 Martin Liska + + PR ipa/101354 + * attribs.c (decl_attributes): Make naked functions "noipa" + functions. + + 2022-01-14 Eric Botcazou + + * ipa-param-manipulation.c (ipa_dump_adjusted_parameters): Dump + reverse flag as "reverse" for the sake of consistency. + * ipa-sra.c: Fix copyright year. + (ipa_sra_function_summaries::duplicate): Copy the reverse flag. + (dump_isra_access): Tweak dump line. + (isra_write_node_summary): Write the reverse flag. + (isra_read_node_info): Read it. + (pull_accesses_from_callee): Test its consistency and copy it. + + 2022-01-13 Richard Biener + + PR tree-optimization/101615 + PR tree-optimization/103995 + * tree-vect-slp.c (vect_optimize_slp): Materialize permutes + at CTOR SLP graph entries. + + 2022-01-12 liuhongt + + PR target/98348 + * config/i386/sse.md (*_ucmp3_1): Change from + define_split to define_insn_and_split. + (*avx2_eq3): Removed. + (_eq3): Adjust pattern + (_eq3_1): Rename to .. + (*_eq3_1): .. this, and + adjust pattern. + (*avx2_gt3): Removed. + (_gt3): Change from + define_insn to define_expand, and adjust pattern. + (UNSPEC_MASKED_EQ, UNSPEC_MASKED_GT): Removed. + + 2022-01-11 Andrew MacLeod + + PR tree-optimization/103603 + * gimple-range.cc (gimple_ranger::gimple_ranger): Create stmt stack. + (gimple_ranger::~gimple_ranger): New. + (gimple_ranger::range_of_stmt): Process dependencies if they have no + global cache entry. + (gimple_ranger::prefill_name): New. + (gimple_ranger::prefill_stmt_dependencies): New. + * gimple-range.h (class gimple_ranger): Add prototypes. + + 2022-01-10 Eric Botcazou + + PR target/103465 + * coretypes.h (unwind_info_type): Swap UI_SEH and UI_TARGET. + + 2022-01-02 John David Anglin + + * config/pa/pa.md (atomic_storeq): Use optab_libfunc to access + sync_lock_test_and_set libfunc. Call convert_memory_address to + convert memory address to Pmode. + (atomic_storehi, atomic_storesi, atomic_storedi): Likewise. + + 2021-12-27 John David Anglin + + * config/pa/pa-protos.h: Delete + pa_maybe_emit_compare_and_swap_exchange_loop() declaration. + * config/pa/pa.c (pa_expand_compare_and_swap_loop): Delete. + (pa_maybe_emit_compare_and_swap_exchange_loop): Delete. + * config/pa/pa.md (atomic_storeq): Use __sync_lock_test_and_set + instead of pa_maybe_emit_compare_and_swap_exchange_loop. + (atomic_storehi, atomic_storesi, atomic_storedi): Likewise. + + 2021-12-16 Martin Sebor + + PR middle-end/101751 + * doc/extend.texi (attribute access): Adjust. + * calls.c (maybe_warn_rdwr_sizes): Treat access mode none on a void* + argument as expecting as few as zero bytes. + + 2021-12-16 Martin Sebor + + PR c/101289 + PR c/97548 + * fold-const.c (operand_compare::operand_equal_p): Handle OEP_DECL_NAME. + (operand_compare::verify_hash_value): Same. + * tree-core.h (OEP_DECL_NAME): New. + + 2021-12-16 Martin Liska + + Backported from master: + 2021-12-15 Martin Liska + + PR target/103661 + * config/i386/i386-builtins.c (fold_builtin_cpu): Compare to 0 + as API expects that non-zero values are returned (do that + it mask == 31). + For "avx512vbmi2" argument, we return now 1 << 31, which is a + negative integer value. + + 2021-12-15 Kewen Lin + + Backported from master: + 2021-11-30 Kewen Lin + + PR target/102347 + * config/rs6000/rs6000-call.c (rs6000_builtin_decl): Remove builtin mask + check. + + 2021-12-14 Joel Hutton + + PR bootstrap/103688 + * tree-vect-loop.c (vectorizable_induction): Rework to avoid + directly_supported_p. + + 2021-12-13 Joel Hutton + + PR tree-optimization/103523 + * tree-vect-loop.c (vectorizable_induction): Check for + PLUS_EXPR/MINUS_EXPR support. + + 2021-12-02 Rasmus Villemoes + + Backported from master: + 2021-12-02 Rasmus Villemoes + + * config/vxworks.h (LTO_PLUGIN_SPEC): Adapt to corrected + spelling of -linker-output-auto-nolto-rel. + + 2021-12-01 Martin Jambor + + Backported from master: + 2021-11-30 Martin Jambor + + PR ipa/103267 + * ipa-sra.c (scan_function): Also check ECF_LOOPING_CONST_OR_PURE flag. + + 2021-12-01 Jakub Jelinek + + Backported from master: + 2021-12-01 Jakub Jelinek + + PR rtl-optimization/102356 + * rtl.h (simplify_context): Add assoc_count member and + max_assoc_count static member. + * simplify-rtx.c (simplify_associative_operation): Don't reassociate + more than max_assoc_count times within one outermost simplify_* call. + + 2021-11-30 Eric Botcazou + + PR target/103274 + * config/i386/i386.c (ix86_output_call_insn): Beef up comment about + nops emitted with SEH. + * config/i386/winnt.c (i386_pe_seh_unwind_emit): When switching to + the cold section, emit a nop before the directive if the previous + active instruction is a call. + + 2021-11-29 Peter Bergner + + Backported from master: + 2021-11-16 Peter Bergner + + PR target/102976 + * config/rs6000/mma.md (*vsx_assemble_pair): Add early-clobber for + output operand. + (*mma_assemble_acc): Likewise. + + 2021-11-29 Jakub Jelinek + + Backported from master: + 2021-11-27 Jakub Jelinek + + PR tree-optimization/103435 + * gimple-ssa-store-merging.c (find_bswap_or_nop_finalize): Avoid UB if + n->range - rsize == 8, just clear both *cmpnop and *cmpxchg in that + case. + + 2021-11-29 Jakub Jelinek + + Backported from master: + 2021-11-24 Jakub Jelinek + + PR middle-end/103384 + * omp-general.c (omp_context_selector_matches): For ACCEL_COMPILER, + return 0 for kind(host) and continue for kind(nohost). + + 2021-11-29 Jakub Jelinek + + Backported from master: + 2021-11-23 Jakub Jelinek + + PR middle-end/102431 + * gimplify.c (replace_reduction_placeholders): Remove. + (note_no_context_vars): New function. + (gimplify_omp_loop): For OMP_PARALLEL's BIND_EXPR create a new + BLOCK. Use copy_tree_body_r with walk_tree instead of unshare_expr + and replace_reduction_placeholders for duplication of + OMP_CLAUSE_REDUCTION_{INIT,MERGE} expressions. Ensure all mentioned + automatic vars have DECL_CONTEXT set to non-NULL before doing so + and reset it afterwards for those vars and their corresponding + vars. + + 2021-11-29 Jakub Jelinek + + Backported from master: + 2021-11-17 Jakub Jelinek + + PR tree-optimization/103192 + * tree-ssa-loop-im.c (move_computations_worker): Use + reset_flow_sensitive_info instead of manually clearing + SSA_NAME_RANGE_INFO and do it for all SSA_NAMEs, not just ones + with integral types. + + 2021-11-29 Jakub Jelinek + + Backported from master: + 2021-11-17 Jakub Jelinek + + PR tree-optimization/103255 + * gimple-range.cc (fold_using_range::range_of_address): Return + range_nonzero rather than unadjusted base's range. Formatting fixes. + + 2021-11-29 Jakub Jelinek + + Backported from master: + 2021-11-15 Jakub Jelinek + + PR target/103205 + * config/i386/sync.md (atomic_bit_test_and_set, + atomic_bit_test_and_complement, + atomic_bit_test_and_reset): Use OPTAB_WIDEN instead of + OPTAB_DIRECT. + + 2021-11-29 Jakub Jelinek + + Backported from master: + 2021-11-11 Jakub Jelinek + + PR debug/101378 + * dwarf2out.c (field_byte_offset): Do the PCC_BITFIELD_TYPE_MATTERS + handling only for DECL_BIT_FIELD_TYPE decls. + + 2021-11-29 Jakub Jelinek + + Backported from master: + 2021-11-05 Jakub Jelinek + + PR bootstrap/100246 + * config/i386/i386.h + (stringop_algs::stringop_strategy::stringop_strategy): Make the ctor + constexpr. + + 2021-11-29 Jakub Jelinek + + Backported from master: + 2021-11-05 Jakub Jelinek + + PR debug/103046 + * dwarf2out.c (add_const_value_attribute): Add MODE argument, use it + in CONST_WIDE_INT handling. Adjust recursive calls. + (add_location_or_const_value_attribute): Pass DECL_MODE (decl) to + new add_const_value_attribute argument. + (tree_add_const_value_attribute): Pass TYPE_MODE (type) to new + add_const_value_attribute argument. + + 2021-11-25 Jan Hubicka + + Backported from master: + 2021-11-20 Jan Hubicka + + PR ipa/103052 + * ipa-pure-const.c (propagate_pure_const): Fix merging of loping flag. + + 2021-11-24 Maciej W. Rozycki + + Backported from master: + 2021-11-24 Maciej W. Rozycki + + PR middle-end/103059 + * reload.c (find_reloads_address_1): Also accept the ASHIFT form + of indexed addressing. + (find_reloads): Adjust accordingly. + + 2021-11-23 Bill Schmidt + + PR target/101985 + * config/rs6000/altivec.h (vec_cpsgn): Swap operand order. + + 2021-11-22 Stefan Schulze Frielinghaus + + Backported from master: + 2021-11-19 Stefan Schulze Frielinghaus + + * config/s390/s390.md (define_peephole2): Variable insn points + to the first matched insn. Use peep2_next_insn(1) to refer to + the second matched insn. + + 2021-11-22 Richard Biener + + Backported from master: + 2021-11-15 Richard Biener + + PR tree-optimization/103237 + * tree-vect-loop.c (vect_is_simple_reduction): Fail for + double reductions with multiple inner loop LC PHI nodes. + + 2021-11-22 Richard Biener + + Backported from master: + 2021-11-12 Richard Biener + + PR tree-optimization/103204 + * tree-ssa-sccvn.c (valueize_refs_1): Re-valueize the + top operand after folding in an address. + + 2021-11-22 Richard Biener + + PR middle-end/103181 + PR middle-end/103248 + * tree-eh.c (operation_could_trap_helper_p): Properly + check vector constants for a zero element for integer + division. Separate floating point and integer division code. + Properly handle fixed-point RDIV_EXPR. + + 2021-11-22 Richard Biener + + Backported from master: + 2021-11-03 Richard Biener + + PR tree-optimization/102970 + * tree-ssa-pre.c (phi_translate_1): Drop clique and base + when translating a MEM_REF over a backedge. + + 2021-11-22 liuhongt + + PR target/103275 + * config/i386/constraints.md (Bk): New + define_memory_constraint. + * config/i386/i386-protos.h (ix86_gpr_tls_address_pattern_p): + Declare. + * config/i386/i386.c (ix86_gpr_tls_address_pattern_p): New + function. + * config/i386/i386.md (*movsi_internal): Don't allow + mask/sse/mmx move in TLS code sequences. + (*movdi_internal): Ditto. + + 2021-11-19 Giuliano Belinassi + + * gcc.c (process_command): Skip dumpdir override if file is a + not_actual_file_p. + * doc/invoke.texi: Update -dumpdir documentation. + + 2021-11-18 Jan Hubicka + + Backported from master: + 2021-11-17 Jan Hubicka + + PR ipa/103246 + * ipa-modref.c (read_modref_records): Fix streaminig in of every_access + flag. + + 2021-11-18 Jan Hubicka + + * ipa-modref.c (ipa_merge_modref_summary_after_inlining): Fix + handling of ignore_stores. + + 2021-11-18 David Edelsohn + + Backported from master: + 2021-11-18 David Edelsohn + + * config/rs6000/driver-rs6000.c (detect_processor_aix): Add + power10. + + 2021-11-16 Philipp Tomsich + + Backported from master: + 2021-11-03 Philipp Tomsich + + * config/aarch64/aarch64-cores.def (AARCH64_CORE): New Ampere-1 + core. + * config/aarch64/aarch64-tune.md: Regenerate. + * config/aarch64/aarch64-cost-tables.h: Add extra costs for + Ampere-1. + * config/aarch64/aarch64.c: Add tuning structures for Ampere-1. + * doc/invoke.texi: Add documentation for Ampere-1 core. + + 2021-11-15 Kewen Lin + + Backported from master: + 2021-11-11 Kewen Lin + + * doc/invoke.texi: Change references to "future cpu" to "power10", + "-mcpu=future" to "-mcpu=power10". Adjust words for float128. + + 2021-11-09 Xionghu Luo + + Backported from master: + 2021-11-05 Xionghu Luo + + PR target/102991 + * config/rs6000/fusion.md: Regenerate. + * config/rs6000/genfusion.pl: Fix incorrect clobber constraint. + + 2021-11-08 Richard Biener + + PR tree-optimization/102798 + * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): + Only copy points-to info to newly generated SSA names. + + 2021-11-08 Richard Biener + + PR middle-end/102518 + * tree-inline.c (setup_one_parameter): Avoid substituting + an invariant into contexts where a GIMPLE register is not valid. + + 2021-11-08 Richard Biener + + Backported from master: + 2021-10-18 Richard Biener + + PR tree-optimization/102788 + * tree-vect-patterns.c (vect_init_pattern_stmt): Allow + a NULL vectype. + (vect_pattern_recog_1): Likewise. + (vect_recog_bool_pattern): Continue matching the pattern + even if we do not have a vector type for a conversion + result. + + 2021-11-08 Richard Biener + + Backported from master: + 2021-10-15 Richard Biener + + PR ipa/102762 + * tree-inline.c (copy_bb): Avoid underflowing nargs. + + 2021-11-08 Richard Biener + + Backported from master: + 2021-10-12 Richard Biener + + PR tree-optimization/102572 + * tree-vect-stmts.c (vect_build_gather_load_calls): When + gathering the vectorized defs for the mask pass in the + desired mask vector type so invariants will be handled + correctly. + + 2021-11-08 Richard Biener + + Backported from master: + 2021-09-01 Richard Biener + + PR tree-optimization/102139 + * tree-vectorizer.h (vec_base_alignments): Adjust hash-map + type to record a std::pair of the stmt-info and the innermost + loop behavior. + (dr_vec_info::group): New member. + * tree-vect-data-refs.c (vect_record_base_alignment): Adjust. + (vect_compute_data_ref_alignment): Verify the recorded + base alignment can be used. + (data_ref_pair): Remove. + (dr_group_sort_cmp): Adjust. + (vect_analyze_data_ref_accesses): Store the group-ID in the + dr_vec_info and operate on a vector of dr_vec_infos. + + 2021-11-08 Richard Biener + + Backported from master: + 2021-08-20 Richard Biener + + * tree-vect-data-refs.c (dr_group_sort_cmp): Do not compare + BBs. + (vect_analyze_data_ref_accesses): Likewise. Assign the BB + index as group_id when dataref_groups were not computed. + * tree-vect-slp.c (vect_slp_bbs): Bump current_group when + we advace to the next BB. + + 2021-11-08 Richard Biener + + Backported from master: + 2021-10-11 Richard Biener + + PR middle-end/101480 + * gimple.c (gimple_call_fnspec): Do not mark operator new/delete + as const. + + 2021-11-08 Martin Liska + + Backported from master: + 2021-11-08 Martin Liska + + PR gcov-profile/100520 + * coverage.c (coverage_compute_profile_id): Strip .gk when + compare debug is used. + * system.h (endswith): New function. + + 2021-11-08 Kewen Lin + + Backported from master: + 2021-10-26 Kewen Lin + + PR tree-optimization/102789 + * tree-vect-loop-manip.c (vect_update_inits_of_drs): Do not + update inits of simd_lane_access. + + 2021-11-05 John David Anglin + + PR libgomp/96661 + * config/pa/pa-modes.def: Add OImode integer type. + * config/pa/pa.c (pa_scalar_mode_supported_p): Allow TImode + for TARGET_64BIT. + * config/pa/pa.h (MIN_UNITS_PER_WORD) Define to MIN_UNITS_PER_WORD + to UNITS_PER_WORD if IN_LIBGCC2. + * config/pa/pa.md (addti3, addvti3, subti3, subvti3, negti2, + negvti2, ashlti3, shrpd_internal): New patterns. + Change some multi instruction types to multi. + + 2021-11-05 Martin Liska + + Backported from master: + 2021-08-16 Martin Liska + + PR tree-optimization/100393 + * tree-switch-conversion.c (group_cluster::dump): Use + get_comparison_count. + (jump_table_cluster::find_jump_tables): Pre-compute number of + comparisons and then decrement it. Cache also max_ratio. + (jump_table_cluster::can_be_handled): Change signature. + * tree-switch-conversion.h (get_comparison_count): New. + + 2021-11-05 Rasmus Villemoes + + Backported from master: + 2021-11-05 Rasmus Villemoes + + * config/vx-common.h: Test value of TARGET_VXWORKS7 rather + than definedness. + + 2021-11-04 Hongyu Wang + + * config/i386/amxtileintrin.h (_tile_loadd_internal): Add + parentheses to base and stride. + (_tile_stream_loadd_internal): Likewise. + (_tile_stored_internal): Likewise. + + 2021-11-03 Maciej W. Rozycki + + * gimple-range-cache.cc (ranger_cache::push_poor_value): Mark + parameters unused. + + 2021-11-03 Vladimir N. Makarov + + PR rtl-optimization/102842 + * lra-constraints.c (match_reload): Ignore out in checking values + of outs. + (curr_insn_transform): Collect outputs before doing reloads of operands. + + 2021-11-03 Richard Biener + + Backported from master: + 2021-10-13 Richard Biener + + PR ipa/102714 + * ipa-sra.c (ptr_parm_has_nonarg_uses): Fix volatileness + check. + + 2021-10-28 Eric Botcazou + + * doc/invoke.texi (%X): Remove obsolete reference to -Wl. + + 2021-10-27 Martin Jambor + + Backported from master: + 2021-10-21 Martin Jambor + + PR tree-optimization/102505 + * tree-sra.c (totally_scalarize_subtree): Check that the + encountered field fits within the acces we would like to put it + in. + + 2021-10-26 Piotr Kubaj + + Backported from master: + 2021-10-16 Piotr Kubaj + + * configure.ac: Treat powerpc64*-*-freebsd* the same as + powerpc64-*-freebsd*. + * configure: Regenerate. + + 2021-10-24 John David Anglin + + * config/pa/pa-d.c (pa_d_handle_target_float_abi): Don't check + TARGET_DISABLE_FPREGS. + * config/pa/pa.c (fix_range): Use MASK_SOFT_FLOAT instead of + MASK_DISABLE_FPREGS. + (hppa_rtx_costs): Don't check TARGET_DISABLE_FPREGS. Adjust + cost of hardware integer multiplication. + (pa_conditional_register_usage): Don't check TARGET_DISABLE_FPREGS. + * config/pa/pa.h (INT14_OK_STRICT): Likewise. + * config/pa/pa.md: Don't check TARGET_DISABLE_FPREGS. Check + TARGET_SOFT_FLOAT in patterns that use xmpyu instruction. + * config/pa/pa.opt (mdisable-fpregs): Change target mask to + SOFT_FLOAT. Revise comment. + (msoft-float): New option. + + 2021-10-24 John David Anglin + + * config/pa/pa.md: Don't use 'G' constraint in integer move patterns. + + 2021-10-21 H.J. Lu + + Backported from master: + 2021-10-21 H.J. Lu + + PR target/98667 + * doc/invoke.texi: Document -fcf-protection requires i686 or + new. + + 2021-10-18 Uroš Bizjak + + PR target/102761 + * config/i386/i386.c (ix86_print_operand_address): + Error out for non-address_operand asm operands. + + 2021-10-18 Kito Cheng + + Backported from master: + 2021-10-11 Kito Cheng + + PR target/100316 + * builtins.c (maybe_emit_call_builtin___clear_cache): Allow + CONST_INT for BEGIN and END, and use gcc_assert rather than + error. + + 2021-10-18 Andrew Stubbs + + Backported from master: + 2021-10-15 Andrew Stubbs + + * config/gcn/gcn-hsa.h (S_FIJI): Set unconditionally. + (S_900): Likewise. + (S_906): Likewise. + * config/gcn/gcn.c: Hard code SRAM ECC settings for old architectures. + * config/gcn/mkoffload.c (ELFABIVERSION_AMDGPU_HSA): Rename to ... + (ELFABIVERSION_AMDGPU_HSA_V3): ... this. + (ELFABIVERSION_AMDGPU_HSA_V4): New. + (SET_SRAM_ECC_UNSUPPORTED): New. + (copy_early_debug_info): Create elf flags to match the other objects. + (main): Just let the attribute flags pass through. + + 2021-10-18 Andrew Stubbs + + Backported from master: + 2021-10-07 Andrew Stubbs + + * config/gcn/gcn-valu.md (gather_insn_2offsets): Apply + HAVE_GCN_ASM_GLOBAL_LOAD_FIXED. + (scatter_insn_2offsets): Likewise. + + 2021-10-18 Andrew Stubbs + + Backported from master: + 2021-10-07 Andrew Stubbs + + * config/gcn/gcn-hsa.h (SRAMOPT): Include the whole option string. + Adjust for new -msram-ecc=any behaviour. + (ASM_SPEC): Adjust -mxnack and -msram-ecc usage. + * config/gcn/gcn.c (output_file_start): Implement -msram-ecc=any. + * config/gcn/mkoffload.c (EF_AMDGPU_XNACK): Rename to ... + (EF_AMDGPU_XNACK_V3): ... this. + (EF_AMDGPU_SRAM_ECC): Rename to ... + (EF_AMDGPU_SRAM_ECC_V3): ... this. + (EF_AMDGPU_FEATURE_XNACK_V4): New. + (EF_AMDGPU_FEATURE_XNACK_UNSUPPORTED_V4): New. + (EF_AMDGPU_FEATURE_XNACK_ANY_V4): New. + (EF_AMDGPU_FEATURE_XNACK_OFF_V4): New. + (EF_AMDGPU_FEATURE_XNACK_ON_V4): New. + (EF_AMDGPU_FEATURE_SRAMECC_V4): New. + (EF_AMDGPU_FEATURE_SRAMECC_UNSUPPORTED_V4): New. + (EF_AMDGPU_FEATURE_SRAMECC_ANY_V4): New. + (EF_AMDGPU_FEATURE_SRAMECC_OFF_V4): New. + (EF_AMDGPU_FEATURE_SRAMECC_ON_V4): New. + (SET_XNACK_ON): New. + (SET_XNACK_OFF): New. + (TEST_XNACK): New. + (SET_SRAM_ECC_ON): New. + (SET_SRAM_ECC_ANY): New. + (SET_SRAM_ECC_OFF): New. + (TEST_SRAM_ECC_ANY): New. + (TEST_SRAM_ECC_ON): New. + (main): Implement HSACOv4 and -msram-ecc=any. + + 2021-10-18 Andrew Stubbs + + Backported from master: + 2021-10-07 Andrew Stubbs + + * config.in: Regenerate. + * config/gcn/gcn-hsa.h (X_FIJI): New macro. + (X_900): New macro. + (X_906): New macro. + (X_908): New macro. + (A_FIJI): Rename to ... + (S_FIJI): ... this. + (A_900): Rename to ... + (S_900): ... this. + (A_906): Rename to ... + (S_906): ... this. + (A_908): Rename to ... + (S_908): ... this. + (SRAMOPT): New macro. + (ASM_SPEC): Adjust xnack option usage. + * config/gcn/gcn.c (output_file_start): Adjust amdgcn_target usage. + * configure: Regenerate. + * configure.ac: Detect LLVM assembler dialect. + + 2021-10-18 Julian Brown + + Backported from master: + 2021-06-29 Julian Brown + + * config/gcn/gcn.md (mulsi3): Make s_mulk_i32 variant clobber SCC. + + 2021-10-18 Andrew Stubbs + + PR target/100208 + * config.in: Regenerate. + * config/gcn/gcn-hsa.h (A_FIJI): New define. + (A_900): New define. + (A_906): New define. + (A_908): New define. + (ASM_SPEC): Use A_FIJI, A_900, A_906 and A_908. + * config/gcn/gcn.c (output_file_start): Adjust attributes according + to the assembler capabilities. + * config/gcn/mkoffload.c (main): Likewise. + * configure: Regenerate. + * configure.ac: Add tests for LLVM assembler attribute features. + + 2021-10-18 Andrew Stubbs + + Backported from master: + 2021-07-19 Andrew Stubbs + + PR target/100208 + * config/gcn/gcn-hsa.h (DRIVER_SELF_SPECS): New. + (ASM_SPEC): Set -mattr for xnack and sram-ecc. + * config/gcn/gcn-opts.h (enum sram_ecc_type): New. + * config/gcn/gcn-valu.md: Add a warning comment. + * config/gcn/gcn.c (gcn_option_override): Add "sorry" for -mxnack. + (output_file_start): Add xnack and sram-ecc state to ".amdgcn_target". + * config/gcn/gcn.md: Add a warning comment. + * config/gcn/gcn.opt: Add -mxnack and -msram-ecc. + * config/gcn/mkoffload.c (EF_AMDGPU_MACH_AMDGCN_GFX908): Remove + SRAM-ECC flag. + (EF_AMDGPU_XNACK): New. + (EF_AMDGPU_SRAM_ECC): New. + (elf_flags): New. + (copy_early_debug_info): Use elf_flags. + (main): Handle -mxnack and -msram-ecc options. + * doc/invoke.texi: Document -mxnack and -msram-ecc. + + 2021-10-18 Marcel Vollweiler + + Backported from master: + 2021-06-18 Marcel Vollweiler + + * config.in: Regenerate. + * config/gcn/gcn.c (print_operand_address): Fix for global_load assembler + functions. + * configure: Regenerate. + * configure.ac: Fix for global_load assembler functions. + + 2021-10-15 John David Anglin + + * config/pa/pa.md: Consistently use "rG" constraint for copy + instruction in move patterns. + + 2021-10-14 Vladimir N. Makarov + + PR rtl-optimization/102627 + * lra-constraints.c (split_reg): Use at least natural mode of hard reg. + + 2021-10-14 John David Anglin + + * config/pa/pa.md (cbranchsf4): Disable if TARGET_SOFT_FLOAT. + (cbranchdf4): Likewise. + Add missing move patterns for TARGET_SOFT_FLOAT. + + 2021-10-13 Iain Sandoe + + Backported from master: + 2021-08-17 Iain Sandoe + + PR target/100340 + * config.in: Regenerate. + * config/i386/darwin.h (EXTRA_ASM_OPTS): New + (ASM_SPEC): Pass options to disable branch shortening where + needed. + * configure: Regenerate. + * configure.ac: Detect versions of 'as' that support the + optimisation which has the bug. + + 2021-10-13 John David Anglin + + * config/pa/pa.md (muldi3): Add support for inlining 64-bit + multiplication on 32-bit PA 1.1 and 2.0 targets. + + 2021-10-12 Eric Botcazou + + PR target/102588 + * config/sparc/sparc-modes.def (OI): New integer mode. + + 2021-10-11 Diane Meirowitz + + Backported from master: + 2021-10-11 Diane Meirowitz + + * doc/invoke.texi: Add link to UndefinedBehaviorSanitizer + documentation, mention UBSAN_OPTIONS, similar to what is done + for AddressSanitizer. + + 2021-10-10 Jakub Jelinek + + Backported from master: + 2021-10-10 Jakub Jelinek + + PR debug/102441 + * var-tracking.c (add_stores): For cselib_sp_derived_value_p values + use MO_VAL_SET if loc is not sp. + + 2021-10-06 Patrick Palka + + Backported from master: + 2021-09-24 Patrick Palka + + PR c++/98216 + PR c++/91292 + * real.c (encode_ieee_double): Avoid unwanted sign extension. + (encode_ieee_quad): Likewise. + + 2021-10-05 Ilya Leoshkevich + + Backported from master: + 2021-07-16 Ilya Leoshkevich + + * config/s390/predicates.md (bras_sym_operand): Accept all + functions in 64-bit mode, use UNSPEC_PLT31. + (larl_operand): Use UNSPEC_PLT31. + * config/s390/s390.c (s390_loadrelative_operand_p): Likewise. + (legitimize_pic_address): Likewise. + (s390_emit_tls_call_insn): Mark __tls_get_offset as function, + use UNSPEC_PLT31. + (s390_delegitimize_address): Use UNSPEC_PLT31. + (s390_output_addr_const_extra): Likewise. + (print_operand): Add @PLT to TLS calls, handle %K. + (s390_function_profiler): Mark __fentry__/_mcount as function, + use %K, use UNSPEC_PLT31. + (s390_output_mi_thunk): Use only UNSPEC_GOT, use %K. + (s390_emit_call): Use UNSPEC_PLT31. + (s390_emit_tpf_eh_return): Mark __tpf_eh_return as function. + * config/s390/s390.md (UNSPEC_PLT31): Rename from UNSPEC_PLT. + (*movdi_64): Use %K. + (reload_base_64): Likewise. + (*sibcall_brc): Likewise. + (*sibcall_brcl): Likewise. + (*sibcall_value_brc): Likewise. + (*sibcall_value_brcl): Likewise. + (*bras): Likewise. + (*brasl): Likewise. + (*bras_r): Likewise. + (*brasl_r): Likewise. + (*bras_tls): Likewise. + (*brasl_tls): Likewise. + (main_base_64): Likewise. + (reload_base_64): Likewise. + (@split_stack_call): Likewise. + + 2021-10-05 Ilya Leoshkevich + + Backported from master: + 2021-06-24 Ilya Leoshkevich + + * config/s390/s390.c (s390_function_profiler): Ignore labelno + parameter. + * config/s390/s390.h (NO_PROFILE_COUNTERS): Define. + + 2021-10-04 Eric Botcazou + + * config/rs6000/vxworks.h (TARGET_INIT_LIBFUNCS): Delete. + + 2021-10-01 John David Anglin + + PR debug/102373 + * config/pa/pa.c (pa_option_override): Default to dwarf version 4 + on hppa64-hpux. + + 2021-10-01 Eric Botcazou + + * explow.c: Include langhooks.h. + (set_stack_check_libfunc): Build a proper function type. + + 2021-10-01 Eric Botcazou + + PR c++/64697 + * config/i386/i386.c (legitimate_pic_address_disp_p): For PE-COFF do + not return true for external weak function symbols in medium model. + + 2021-09-29 Peter Bergner + + Backported from master: + 2021-09-14 Peter Bergner + + * config/rs6000/mma.md (unspec): Delete UNSPEC_MMA_XXSETACCZ. + (unspecv): Add UNSPECV_MMA_XXSETACCZ. + (*mma_xxsetaccz): Delete. + (mma_xxsetaccz): Change to define_insn. Remove operand 1. + Use UNSPECV_MMA_XXSETACCZ. Update comment. + * config/rs6000/rs6000.c (rs6000_rtx_costs): Use UNSPECV_MMA_XXSETACCZ. + + 2021-09-28 Jakub Jelinek + + Backported from master: + 2021-09-28 Jakub Jelinek + + PR target/102498 + * config/i386/i386.c (standard_80387_constant_p): Don't recognize + special 80387 instruction XFmode constants if flag_rounding_math. + + 2021-09-24 Feng Xue + + PR tree-optimization/102400 + * tree-ssa-sccvn.c (vn_reference_insert_pieces): Initialize + result_vdef to zero value. + + 2021-09-24 Feng Xue + + PR tree-optimization/102451 + * tree-ssa-dse.c (delete_dead_or_redundant_call): Record bb of stmt + before removal. + + 2021-09-22 Andreas Krebbel + + Backported from master: + 2021-09-22 Andreas Krebbel + + * config/s390/tpf.md (prologue_tpf, epilogue_tpf): Add cc clobber. + + 2021-09-22 Andreas Krebbel + + Backported from master: + 2021-09-22 Andreas Krebbel + + PR target/102222 + * config/s390/s390.c (s390_expand_insv): Emit a normal move if it + is actually a full copy of the source operand into the target. + Don't emit a strict low part move if source and target mode match. + + 2021-09-22 Kewen Lin + + * ipa-fnsummary.c (inline_read_section): Unpack a dummy bit + to keep consistent with the side of streaming out. + + 2021-09-21 Segher Boessenkool + + Backported from master: + 2021-09-08 Segher Boessenkool + + PR target/102107 + * config/rs6000/rs6000-logue.c (rs6000_emit_epilogue): For ELFv2 use + r11 instead of r12 for restoring CR. + + 2021-09-21 Segher Boessenkool + + Backported from master: + 2021-09-03 Segher Boessenkool + + PR target/102107 + * config/rs6000/rs6000-logue.c (rs6000_emit_prologue): On ELFv2 use r11 + instead of r12 for CR save, in all cases. + + 2021-09-17 Eric Botcazou + + PR rtl-optimization/102306 + * combine.c (try_combine): Abort the combination if we are about to + duplicate volatile references. + + 2021-09-16 Daniel Cederman + + * config/sparc/sparc-opts.h (enum sparc_processor_type): Add LEON5 + * config/sparc/sparc.c (struct processor_costs): Add LEON5 costs + (leon5_adjust_cost): Increase cost of store with data dependency + on ALU instruction and FPU anti-dependencies. + (sparc_option_override): Add LEON5 costs + (sparc_adjust_cost): Add LEON5 cost adjustments + * config/sparc/sparc.h: Add LEON5 + * config/sparc/sparc.md: Include LEON5 scheduling information + * config/sparc/sparc.opt: Add LEON5 + * doc/invoke.texi: Add LEON5 + * config/sparc/leon5.md: New file. + + 2021-09-16 Daniel Cederman + + * config/sparc/sparc.md (stack_protect_setsi): Add NOP to prevent + sensitive sequence for B2BST errata workaround. + + 2021-09-16 Daniel Cederman + + * config/sparc/sparc.c (sparc_do_work_around_errata): Do not begin + functions with atomic instruction in the UT700 errata workaround. + + 2021-09-16 Daniel Cederman + + * config/sparc/sparc.c (next_active_non_empty_insn): New function + that returns next active non empty assembly instruction. + (sparc_do_work_around_errata): Use new function. + + 2021-09-16 Daniel Cederman + + * config/sparc/sparc.c (store_insn_p): Add predicate for store + attributes. + (load_insn_p): Add predicate for load attributes. + (sparc_do_work_around_errata): Use new predicates. + + 2021-09-16 Andreas Larsson + + * config/sparc/sparc.c (dump_target_flag_bits): Print bit names for + LEON and LEON3. + + 2021-09-16 Andrew Pinski + + Backported from master: + 2021-09-01 Andrew Pinski + + PR target/101934 + * config/aarch64/aarch64.c (aarch64_expand_setmem): + Check STRICT_ALIGNMENT before creating an overlapping + store. + + 2021-09-15 Jakub Jelinek + + Backported from master: + 2021-09-15 Jakub Jelinek + + PR c++/88578 + PR c++/102295 + * varasm.c (output_constructor_regular_field): Instead of assertion + that array_size_for_constructor result is equal to size of + TREE_TYPE (local->val) in bytes, assert that the type size is greater + or equal to array_size_for_constructor result and use type size as + fieldsize. + + 2021-09-15 Pat Haugen + + * config/rs6000/rs6000-cpus.def (ISA_3_1_MASKS_SERVER): Add + OPTION_MASK_P10_FUSION_2STORE. + (POWERPC_MASKS): Likewise. + * config/rs6000/rs6000.c (rs6000_option_override_internal): Enable + store fusion for Power10. + (is_fusable_store): New. + (power10_sched_reorder): Likewise. + (rs6000_sched_reorder): Do Power10 specific reordering. + (rs6000_sched_reorder2): Likewise. + * config/rs6000/rs6000.opt: Add new option. + + 2021-09-15 Peter Bergner + + Backported from master: + 2021-07-14 Peter Bergner + + * config/rs6000/rs6000.c (adjacent_mem_locations): Return the lower + addressed memory rtx, if any. + (rs6000_split_multireg_move): Fix code formatting. + Handle MMA build built-ins with operands in adjacent memory locations. + + 2021-09-15 Peter Bergner + + Backported from master: + 2021-07-14 Peter Bergner + + * config/rs6000/rs6000.c (rs6000_split_multireg_move): Move to later + in the file. + + 2021-09-14 Pat Haugen + + * config/rs6000/rs6000.c (is_load_insn1): Verify destination is a + register. + (is_store_insn1): Verify source is a register. + + 2021-09-14 Xionghu Luo + + PR target/97142 + * config/rs6000/rs6000.md (fmod3): New define_expand. + (remainder3): Likewise. + + 2021-09-08 Jonathan Wakely + + Backported from master: + 2021-09-08 Jonathan Wakely + + PR c++/60318 + * doc/trouble.texi (Copy Assignment): Fix description of + behaviour and fix code in example. + + 2021-09-08 Jakub Jelinek + + Backported from master: + 2021-09-08 Jakub Jelinek + + PR target/102224 + * config/i386/i386.md (xorsign3): If operands[1] is equal to + operands[2], emit abs2 instead. + (@xorsign3_1): Add early-clobber for output operand. + + 2021-09-07 Max Filippov + + Backported from master: + 2021-09-07 Takayuki 'January June' Suwa + + PR target/102115 + * config/xtensa/xtensa.c (xtensa_emit_move_sequence): Add + 'CONST_INT_P (src)' to the condition of the block that tries to + eliminate literal when loading integer contant. + + 2021-09-06 Richard Biener + + Backported from master: + 2021-08-25 Richard Biener + + PR tree-optimization/102046 + * tree-vect-slp.c (vect_build_slp_tree_2): Conservatively + update ->any_pattern when swapping operands. + + 2021-09-06 Richard Biener + + Backported from master: + 2021-08-17 Richard Biener + + PR tree-optimization/101925 + * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Set + reverse on COMPONENT_REF and ARRAY_REF according to + what reverse_storage_order_for_component_p does. + (vn_reference_eq): Compare reversed on reference ops. + (reverse_storage_order_for_component_p): New overload. + (vn_reference_lookup_3): Check reverse_storage_order_for_component_p + on the reference looked up. + + 2021-09-06 Richard Biener + + Backported from master: + 2021-08-10 Richard Biener + + PR middle-end/101824 + * tree-nested.c (get_frame_field): Mark the COMPONENT_REF as + volatile in case the variable was. + + 2021-09-03 Michael Meissner + + * config/rs6000/altivec.md (UNSPEC_XXSPLTIDP): Rename from + UNSPEC_XXSPLTID. + (xxspltidp_v2df): Likewise. + (xxspltidp_v2df_inst): Likewise. + + 2021-09-03 Michael Meissner + + * config/rs6000/altivec.md (xxspltiw_v4si): Use vecperm type + attribute. Backport from master, 2021-08-24. + (xxspltiw_v4si_inst): Likewise. + (xxspltiw_v4sf_inst): Likewise. + (xxspltidp_v2df): Likewise. + (xxspltidp_v2df_inst): Likewise. + (xxsplti32dx_v4si): Likewise. + (xxsplti32dx_v4si_inst): Likewise. + (xxsplti32dx_v4sf_inst): Likewise. + (xxblend_): Likewise. + (xxpermx): Likewise. + (xxpermx_inst): Likewise. + (xxeval): Likewise. + + 2021-09-03 liuhongt + + PR target/102166 + * config/i386/amxbf16intrin.h : Remove macro check for __AMX_BF16__. + * config/i386/amxint8intrin.h : Remove macro check for __AMX_INT8__. + * config/i386/amxtileintrin.h : Remove macro check for __AMX_TILE__. + + 2021-09-02 Peter Bergner + + Backported from master: + 2021-08-19 Peter Bergner + + PR target/101849 + * config/rs6000/rs6000-call.c (rs6000_gimple_fold_mma_builtin): Cast + pointer to __vector_pair *. + + 2021-09-01 Marek Polacek + Jakub Jelinek + + PR c++/101592 + * fold-const.c (make_range_step): Return NULL_TREE for NULLPTR_TYPE. + + 2021-09-01 Jakub Jelinek + + Backported from master: + 2021-09-01 Jakub Jelinek + + PR tree-optimization/102124 + * tree-vect-patterns.c (vect_recog_widen_op_pattern): For ORIG_CODE + MINUS_EXPR, if itype is unsigned with smaller precision than type, + add an extra cast to signed variant of itype to ensure sign-extension. + + 2021-08-31 Thomas Schwinge + + Backported from master: + 2021-08-31 Thomas Schwinge + + * tree.c (walk_tree_1) : Handle three operands. + + 2021-08-30 Haochen Gui + + Backported from master: + 2021-06-04 Haochen Gui + + * config/rs6000/rs6000-call.c (rs6000_promote_function_mode): + Replace PROMOTE_MODE marco with its content. + + 2021-08-30 Haochen Gui + + Backported from master: + 2021-06-04 Haochen Gui + + * config/rs6000/rs6000.h (PROMOTE_MODE): Remove. + + 2021-08-27 konglin1 + + PR target/101472 + * config/i386/sse.md: (scattersi): Add mask operand to + UNSPEC_VSIBADDR. + (scattersi): Likewise. + (*avx512f_scattersi): Merge mask operand to set_dest. + (*avx512f_scatterdi): Likewise + + 2021-08-25 H.J. Lu + + Backported from master: + 2021-08-05 H.J. Lu + + PR target/99744 + * config/i386/i386.c (ix86_can_inline_p): Ignore MASK_80387 if + callee only uses GPRs. + * config/i386/ia32intrin.h: Revert commit 5463cee2770. + * config/i386/serializeintrin.h: Revert commit 71958f740f1. + * config/i386/x86gprintrin.h: Add + #pragma GCC target("general-regs-only") and #pragma GCC pop_options + to disable non-GPR ISAs. + + 2021-08-25 H.J. Lu + + Backported from master: + 2021-07-18 H.J. Lu + + PR target/101492 + * common/config/i386/i386-common.c (ix86_handle_option): For + -mgeneral-regs-only, enable the GPR only instructions which are + enabled implicitly by SSE ISAs unless they have been disabled + explicitly. + + 2021-08-25 H.J. Lu + + Backported from master: + 2021-07-21 H.J. Lu + + PR target/101549 + * config/i386/i386-builtin.def: Remove OPTION_MASK_ISA_SSE4_2 + from CRC32 _builtin functions. + + 2021-08-25 H.J. Lu + + Backported from master: + 2021-04-20 H.J. Lu + + * config/i386/i386-c.c (ix86_target_macros_internal): Define + __CRC32__ for -mcrc32. + * config/i386/i386-options.c (ix86_option_override_internal): + Enable crc32 instruction for -msse4.2. + * config/i386/i386.md (sse4_2_crc32): Remove TARGET_SSE4_2 + check. + (sse4_2_crc32di): Likewise. + * config/i386/ia32intrin.h: Use crc32 target option for CRC32 + intrinsics. + + 2021-08-25 H.J. Lu + + Backported from master: + 2021-04-21 H.J. Lu + + * config.gcc: Install mwaitintrin.h for i[34567]86-*-* and + x86_64-*-* targets. + * lto-streamer.h (LTO_minor_version): Bump. + * common/config/i386/i386-common.c (OPTION_MASK_ISA2_MWAIT_SET): + New. + (OPTION_MASK_ISA2_MWAIT_UNSET): Likewise. + (ix86_handle_option): Handle -mmwait. + * config/i386/i386-builtins.c (ix86_init_mmx_sse_builtins): + Replace OPTION_MASK_ISA_SSE3 with OPTION_MASK_ISA2_MWAIT on + __builtin_ia32_monitor and __builtin_ia32_mwait. + * config/i386/i386-options.c (isa2_opts): Add -mmwait. + (ix86_valid_target_attribute_inner_p): Likewise. + (ix86_option_override_internal): Enable mwait/monitor + instructions for -msse3. + * config/i386/i386.h (TARGET_MWAIT): New. + (TARGET_MWAIT_P): Likewise. + * config/i386/i386.opt: Add -mmwait. + * config/i386/mwaitintrin.h: New file. + * config/i386/pmmintrin.h: Include . + * config/i386/sse.md (sse3_mwait): Replace TARGET_SSE3 with + TARGET_MWAIT. + (@sse3_monitor_): Likewise. + * config/i386/x86gprintrin.h: Include . + * doc/extend.texi: Document mwait target attribute. + * doc/invoke.texi: Document -mmwait. + + 2021-08-25 konglin1 + + PR target/101471 + * config/i386/avx512dqintrin.h (_mm512_fpclass_ps_mask): Fix + macro define in O0. + (_mm512_mask_fpclass_ps_mask): Ditto. + + 2021-08-24 Richard Earnshaw + + Backported from master: + 2021-08-24 Richard Earnshaw + + PR target/102035 + * config/arm/arm.md (attribute arch): Add fix_vlldm. + (arch_enabled): Use it. + * config/arm/vfp.md (lazy_store_multiple_insn): Add alternative to + use when erratum mitigation is needed. + + 2021-08-24 Richard Earnshaw + + Backported from master: + 2021-08-24 Richard Earnshaw + + PR target/102035 + * config/arm/arm.opt (mfix-cmse-cve-2021-35465): New option. + * doc/invoke.texi (Arm Options): Document it. + * config/arm/arm-cpus.in (quirk_vlldm): New feature bit. + (ALL_QUIRKS): Add quirk_vlldm. + (cortex-m33): Add quirk_vlldm. + (cortex-m35p, cortex-m55): Likewise. + * config/arm/arm.c (arm_option_override): Enable fix_vlldm if + targetting an affected CPU and not explicitly controlled on + the command line. + + 2021-08-24 Richard Earnshaw + + Backported from master: + 2021-08-24 Richard Earnshaw + + * config/arm/vfp.md (lazy_store_multiple_insn): Rewrite as valid RTL. + (lazy_load_multiple_insn): Likewise. + + 2021-08-24 Jan Hubicka + + Backported from master: + 2021-08-23 Jan Hubicka + + PR middle-end/101949 + * ipa-modref.c (analyze_ssa_name_flags): Fix merging of + EAF_NOCLOBBER + + 2021-08-24 Jan Hubicka + + Backported from master: + 2021-08-22 Jan Hubicka + Martin Liska + + PR middle-end/101949 + * ipa-modref.c (analyze_ssa_name_flags): Indirect call implies + ~EAF_NOCLOBBER. + + 2021-08-24 Richard Biener + + Backported from master: + 2021-08-23 Richard Biener + + PR ipa/97565 + * tree-ssa-structalias.c (ipa_pta_execute): Check in_other_partition + in addition to has_gimple_body. + + 2021-08-23 Christophe Lyon + + Backported from master: + 2021-08-23 Christophe Lyon + + * config/arm/arm_mve.h: Fix __arm_vctp16q return type. + + 2021-08-23 Jakub Jelinek + + Backported from master: + 2021-08-23 Jakub Jelinek + + PR debug/101905 + * dwarf2out.c (gen_variable_die): Add DW_AT_location for global + register variables already during early_dwarf if possible. + + 2021-08-23 Martin Liska + + Backported from master: + 2021-08-20 Martin Liska + + PR gcov-profile/89961 + * gcov.c (make_gcov_file_name): Rewrite using std::string. + (mangle_name): Simplify, do not used the second argument. + (strip_extention): New function. + (get_md5sum): Likewise. + (get_gcov_intermediate_filename): Handle properly -p and -x + options. + (output_gcov_file): Use string type. + (generate_results): Likewise. + (md5sum_to_hex): Remove. + + 2021-08-18 Richard Earnshaw + + Backported from master: + 2021-08-05 Richard Earnshaw + + PR target/101723 + * config/arm/arm-cpus.in (generic-armv7-a): Add quirk to suppress + writing .cpu directive in asm output. + * config/arm/arm.c (arm_identify_fpu_from_isa): New variable. + (arm_last_printed_arch_string): Delete. + (arm_last-printed_fpu_string): Delete. + (arm_configure_build_target): If use of floating-point/SIMD is + disabled, remove all fp/simd related features from the target ISA. + (last_arm_targ_options): New variable. + (arm_print_asm_arch_directives): Add new parameters. Change order + of emitted directives and handle all cases here. + (arm_file_start): Always call arm_print_asm_arch_directives, move + all generation of .arch/.arch_extension here. + (arm_file_end): Call arm_print_asm_arch. + (arm_declare_function_name): Call arm_print_asm_arch_directives + instead of printing .arch/.fpu directives directly. + + 2021-08-18 Richard Earnshaw + + Backported from master: + 2021-08-05 Richard Earnshaw + + * config/arm/arm.c (arm_configure_build_target): Don't call + arm_option_reconfigure_globals. + (arm_option_restore): Call arm_option_reconfigure_globals after + reconfiguring the target. + * config/arm/arm-c.c (arm_pragma_target_parse): Likewise. + + 2021-08-18 Richard Earnshaw + + Backported from master: + 2021-08-05 Richard Earnshaw + + * config/arm/arm.c (arm_configure_build_target): Ensure the target's + arch_name is always set. + + 2021-08-17 Richard Biener + + PR tree-optimization/101373 + PR tree-optimization/101868 + * tree-ssa-pre.c (prune_clobbered_mems): Also prune trapping + references when the BB may not return. + + 2021-08-16 Eric Botcazou + + * dwarf2out.c (add_scalar_info): Deal with DW_AT_data_bit_offset. + + 2021-08-16 Martin Liska + + PR ipa/100600 + * ipa-icf-gimple.c (func_checker::compare_ssa_name): Do not + consider equal SSA_NAMEs when one is a param. + + 2021-08-16 Martin Liska + + PR ipa/101261 + * symtab.c (symtab_node::noninterposable_alias): Do not create + local aliases for target_clone functions as the clonning pass + rejects aliases. + + 2021-08-16 Martin Liska + + PR ipa/101726 + * multiple_target.c (create_dispatcher_calls): Make default + function local only if it is a definition. + + 2021-08-16 Martin Liska + + PR c/100150 + * lto-streamer.h (LTO_minor_version): Bump. + + 2021-08-13 Martin Liska + + PR gcov-profile/100788 + * coverage.c (coverage_begin_function): Update function + beginning when #line macro is used. + + 2021-08-12 Jakub Jelinek + + Backported from master: + 2021-07-28 Jakub Jelinek + + PR middle-end/101624 + * ubsan.c (maybe_instrument_pointer_overflow, + instrument_object_size): Only test DECL_REGISTER on VAR_DECLs, + PARM_DECLs or RESULT_DECLs. + * sanopt.c (maybe_optimize_ubsan_ptr_ifn): Likewise. + + 2021-08-12 Eric Botcazou + + * configure.ac (PE linker --disable-dynamicbase support): New check. + * configure: Regenerate. + * config.in: Likewise. + * config/i386/mingw32.h (LINK_SPEC_DISABLE_DYNAMICBASE): New define. + (LINK_SPEC): Use it. + * config/i386/mingw-w64.h (LINK_SPEC_DISABLE_DYNAMICBASE): Likewise. + (LINK_SPEC): Likewise. + + 2021-08-06 Richard Sandiford + + Backported from master: + 2021-08-03 Richard Sandiford + + * doc/invoke.texi: Document -mtune=neoverse-512tvb and + -mcpu=neoverse-512tvb. + * config/aarch64/aarch64-cores.def (neoverse-512tvb): New entry. + * config/aarch64/aarch64-tune.md: Regenerate. + * config/aarch64/aarch64.c (neoverse512tvb_sve_vector_cost) + (neoverse512tvb_sve_issue_info, neoverse512tvb_vec_issue_info) + (neoverse512tvb_vector_cost, neoverse512tvb_tunings): New structures. + (aarch64_adjust_body_cost_sve): Handle -mtune=neoverse-512tvb. + (aarch64_adjust_body_cost): Likewise. + + 2021-08-06 Richard Sandiford + + Backported from master: + 2021-08-03 Richard Sandiford + + * config/aarch64/aarch64.c (aarch64_add_stmt_cost): Only + record issue information for operations that occur in the + innermost loop. + + 2021-08-06 Richard Sandiford + + Backported from master: + 2021-08-03 Richard Sandiford + + * config/aarch64/aarch64.c (aarch64_multiply_add_p): Add a vec_flags + parameter. Detect cases in which an Advanced SIMD MLA would almost + certainly require a MOV. + (aarch64_count_ops): Update accordingly. + + 2021-08-06 Richard Sandiford + + Backported from master: + 2021-08-03 Richard Sandiford + + * config/aarch64/aarch64.c (aarch64_is_store_elt_extraction): New + function, split out from... + (aarch64_detect_vector_stmt_subtype): ...here. + (aarch64_add_stmt_cost): Treat extracting element 0 as free. + + 2021-08-06 Richard Sandiford + + Backported from master: + 2021-08-03 Richard Sandiford + + * config/aarch64/aarch64-protos.h (sve_vec_cost): + Add gather_load_x32_cost and gather_load_x64_cost. + * config/aarch64/aarch64.c (generic_sve_vector_cost) + (a64fx_sve_vector_cost, neoversev1_sve_vector_cost): Update + accordingly, using the values given by the scalar_load * number + of elements calculation that we used previously. + (aarch64_detect_vector_stmt_subtype): Use the new fields. + + 2021-08-06 Richard Sandiford + + Backported from master: + 2021-08-03 Richard Sandiford + + * config/aarch64/aarch64.c (aarch64_adjust_body_cost_sve): New + function, split out from... + (aarch64_adjust_body_cost): ...here. + + 2021-08-06 Richard Sandiford + + Backported from master: + 2021-08-03 Richard Sandiford + + * config/aarch64/fractional-cost.h: New file. + * config/aarch64/aarch64.c: Include (indirectly) + and cost_fraction.h. + (vec_cost_fraction): New typedef. + (aarch64_detect_scalar_stmt_subtype): Use it for statement costs. + (aarch64_detect_vector_stmt_subtype): Likewise. + (aarch64_sve_adjust_stmt_cost, aarch64_adjust_stmt_cost): Likewise. + (aarch64_estimate_min_cycles_per_iter): Use vec_cost_fraction + for cycle counts. + (aarch64_adjust_body_cost): Likewise. + (aarch64_test_cost_fraction): New function. + (aarch64_run_selftests): Call it. + + 2021-08-06 Richard Sandiford + + Backported from master: + 2021-08-03 Richard Sandiford + + * config/aarch64/aarch64-protos.h (tune_params::sve_width): Turn + into a bitmask. + * config/aarch64/aarch64.c (aarch64_cmp_autovec_modes): Update + accordingly. + (aarch64_estimated_poly_value): Likewise. Use the least significant + set bit for the minimum and likely values. Use the most significant + set bit for the maximum value. + + 2021-08-06 Richard Biener + + Backported from master: + 2021-07-19 Richard Biener + + PR tree-optimization/101505 + * tree-vect-patterns.c (vect_determine_precisions): Walk + PHIs also for loop vectorization. + + 2021-08-02 Haochen Gui + + Backported from master: + 2021-07-23 Haochen Gui + + PR target/100952 + * config/rs6000/rs6000.md (cstore4): Fix wrong fall through. + + 2021-07-30 Xi Ruoyao + + Backported from master: + 2021-07-30 Xi Ruoyao + + PR target/94780 + * config/mips/mips.c (mips_atomic_assign_expand_fenv): Use + TARGET_EXPR instead of MODIFY_EXPR. + + 2021-07-30 Xi Ruoyao + + Backported from master: + 2021-07-30 Xi Ruoyao + + PR target/101132 + * config/mips/mips-protos.h (mips_expand_vec_cmp_expr): Declare. + * config/mips/mips.c (mips_expand_vec_cmp_expr): New function. + * config/mips/mips-msa.md (vec_cmp): New + expander. + (vec_cmpu): New expander. + + 2021-07-28 Martin Uecker + + * calls.c (maybe_warn_rdwr_sizes): Correct argument + numbers in warning that were switched. + + 2021-07-28 Jakub Jelinek + + Backported from master: + 2021-07-27 Jakub Jelinek + + PR middle-end/101586 + * gimple-fold.c (clear_padding_type): Ignore FIELD_DECLs with byte + positions above or equal to sz except for diagnostics of flexible + array members. + + 2021-07-28 Jakub Jelinek + + Backported from master: + 2021-07-23 Jakub Jelinek + + PR rtl-optimization/101562 + * expmed.c (store_integral_bit_field): Only use movstrict_optab + if the operand isn't paradoxical. + 2021-07-28 Release Manager * GCC 11.2.0 released. diff -Nrcpad gcc-11.2.0/gcc/DATESTAMP gcc-11.3.0/gcc/DATESTAMP *** gcc-11.2.0/gcc/DATESTAMP Wed Jul 28 06:55:06 2021 --- gcc-11.3.0/gcc/DATESTAMP Thu Apr 21 07:58:52 2022 *************** *** 1 **** ! 20210728 --- 1 ---- ! 20220421 diff -Nrcpad gcc-11.2.0/gcc/Makefile.in gcc-11.3.0/gcc/Makefile.in *** gcc-11.2.0/gcc/Makefile.in Wed Jul 28 06:55:06 2021 --- gcc-11.3.0/gcc/Makefile.in Thu Apr 21 07:58:52 2022 *************** DIR = ../gcc *** 798,810 **** # Native compiler for the build machine and its switches. CC_FOR_BUILD = @CC_FOR_BUILD@ CXX_FOR_BUILD = @CXX_FOR_BUILD@ - NO_PIE_CFLAGS_FOR_BUILD = @NO_PIE_CFLAGS_FOR_BUILD@ - NO_PIE_FLAG_FOR_BUILD = @NO_PIE_FLAG_FOR_BUILD@ BUILD_CFLAGS= @BUILD_CFLAGS@ $(GENERATOR_CFLAGS) -DGENERATOR_FILE BUILD_CXXFLAGS = @BUILD_CXXFLAGS@ $(GENERATOR_CFLAGS) -DGENERATOR_FILE - BUILD_NO_PIE_CFLAGS = @BUILD_NO_PIE_CFLAGS@ - BUILD_CFLAGS += $(BUILD_NO_PIE_CFLAGS) - BUILD_CXXFLAGS += $(BUILD_NO_PIE_CFLAGS) # Native compiler that we use. This may be C++ some day. COMPILER_FOR_BUILD = $(CXX_FOR_BUILD) --- 798,805 ---- *************** BUILD_LINKERFLAGS = $(BUILD_CXXFLAGS) *** 816,823 **** # Native linker and preprocessor flags. For x-fragment overrides. BUILD_LDFLAGS=@BUILD_LDFLAGS@ - BUILD_NO_PIE_FLAG = @BUILD_NO_PIE_FLAG@ - BUILD_LDFLAGS += $(BUILD_NO_PIE_FLAG) BUILD_CPPFLAGS= -I. -I$(@D) -I$(srcdir) -I$(srcdir)/$(@D) \ -I$(srcdir)/../include @INCINTL@ $(CPPINC) $(CPPFLAGS) --- 811,816 ---- diff -Nrcpad gcc-11.2.0/gcc/ada/ChangeLog gcc-11.3.0/gcc/ada/ChangeLog *** gcc-11.2.0/gcc/ada/ChangeLog Wed Jul 28 06:55:27 2021 --- gcc-11.3.0/gcc/ada/ChangeLog Thu Apr 21 07:59:16 2022 *************** *** 1,3 **** --- 1,181 ---- + 2022-04-21 Release Manager + + * GCC 11.3.0 released. + + 2022-03-24 Pascal Obry + + PR ada/104767 + * libgnat/g-sercom__mingw.adb (Close): Reset port handle to -1. + * libgnat/g-sercom__linux.adb (Close): Likewise. + + 2022-03-16 Richard Biener + + Backported from master: + 2022-03-10 Richard Biener + + PR ada/104861 + * gcc-interface/Makefile.in (target_noncanonical): Substitute. + (OSCONS_CPP): Pass target_noncanonical as TARGET. + + 2022-02-13 Maciej W. Rozycki + + Backported from master: + 2022-02-13 Maciej W. Rozycki + + PR ada/98724 + PR ada/97504 + * Makefile.rtl (LIBGNAT_TARGET_PAIRS) : Use + wraplf version of Aux_Long_Long_Float. + + 2022-01-28 Eric Botcazou + + PR ada/104258 + * exp_ch4.adb (Narrow_Large_Operation): Also copy the entity, if + any, when rewriting the operator node. + + 2022-01-19 H.J. Lu + + Backported from master: + 2022-01-19 H.J. Lu + + PR ada/103538 + * gcc-interface/Makefile.in (target_cpu): Set to x32 for + x86_64-linux-gnux32. + + 2022-01-19 H.J. Lu + + Backported from master: + 2022-01-19 H.J. Lu + + PR ada/103538 + * Makefile.rtl (LIBGNAT_TARGET_PAIRS): Add + $(TRASYM_DWARF_UNIX_PAIRS), + s-tsmona.adb + + PR ada/100486 + * sem_prag.adb (Check_Valid_Library_Unit_Pragma): Do not raise an + exception as part of the bootstrap. + + 2021-09-30 Eric Botcazou + + * libgnat/s-dwalin.adb (Parse_Header): Tweak comments. + (Read_Entry_Format_Array): Tweak exception message. + (Symbolic_Address.Set_Result): Likewise. + + 2021-09-30 Eric Botcazou + + * libgnat/s-dwalin.adb (To_File_Name): Fetch only the last string + from the .debug_line_str section. + (Symbolic_Address.Set_Result): Likewise. + + 2021-09-30 Eric Botcazou + + * libgnat/s-dwalin.adb (Skip_Form): Fix cases of DW_FORM_addrx + and DW_FORM_implicit_const. Replace Constraint_Error with + Dwarf_Error. + + 2021-09-30 Eric Botcazou + + * libgnat/s-objrea.adb (Get_Load_Address): Return 0 for ELF. + + 2021-09-30 Eric Botcazou + + * adaint.c (__gnat_get_executable_load_address): Add Win32 support. + * libgnat/s-objrea.ads (Get_Xcode_Bounds): Fix typo in comment. + (Object_File): Minor reformatting. + (ELF_Object_File): Uncomment predicate. + (PECOFF_Object_File): Likewise. + (XCOFF32_Object_File): Likewise. + * libgnat/s-objrea.adb: Minor reformatting throughout. + (Get_Load_Address): Implement for PE-COFF. + * libgnat/s-dwalin.ads: Remove clause for System.Storage_Elements + and use consistent wording in comments. + (Dwarf_Context): Set type of Low, High and Load_Address to Address. + * libgnat/s-dwalin.adb (Get_Load_Displacement): New function. + (Is_Inside): Call Get_Load_Displacement. + (Low_Address): Likewise. + (Open): Adjust to type change. + (Aranges_Lookup): Change type of Addr to Address. + (Read_Aranges_Entry): Likewise for Start and adjust. + (Enable_Cach): Adjust to type change. + (Symbolic_Address): Change type of Addr to Address. + (Symbolic_Traceback): Call Get_Load_Displacement. + + 2021-09-30 Eric Botcazou + + * libgnat/s-dwalin.ads: Remove clause for Ada.Exceptions.Traceback, + add clause for System.Traceback_Entries and alphabetize. + (AET): Delete. + (STE): New package renaming. + (Symbolic_Traceback): Adjust. + * libgnat/s-dwalin.adb: Remove clauses for Ada.Exceptions.Traceback + and System.Traceback_Entries. + (Symbolic_Traceback): Adjust. + + 2021-09-30 Eric Botcazou + + * libgnat/s-dwalin.ads: Adjust a few comments left and right. + (Line_Info_Register): Comment out unused components. + (Line_Info_Header): Add DWARF 5 support. + (Dwarf_Context): Likewise. Rename "prologue" into "header". + * libgnat/s-dwalin.adb: Alphabetize "with" clauses. + (DWARF constants): Add DWARF 5 support and reorder. + (For_Each_Row): Adjust. + (Initialize_Pass): Likewise. + (Initialize_State_Machine): Likewise and fix typo. + (Open): Add DWARF 5 support. + (Parse_Prologue): Rename into... + (Parse_Header): ...this and add DWARF 5 support. + (Read_And_Execute_Isn): Rename into... + (Read_And_Execute_Insn): ...this and adjust. + (To_File_Name): Change parameter name and add DWARF 5 support. + (Read_Entry_Format_Array): New procedure. + (Skip_Form): Add DWARF 5 support and reorder. + (Seek_Abbrev): Do not count entries and add DWARF 5 support. + (Debug_Info_Lookup): Add DWARF 5 support. + (Symbolic_Address.Set_Result): Likewise. + (Symbolic_Address): Adjust. + + 2021-09-14 Eric Botcazou + + PR ada/101970 + * exp_attr.adb (Expand_N_Attribute_Reference) : + Use an unchecked conversion instead of a regular conversion in the + enumeration case and remove Conversion_OK flag in the integer case. + : Remove superfluous test. + + 2021-09-14 Eric Botcazou + + * gcc-interface/decl.c (validate_size): Do not issue an error if the + old size has overflowed. + + 2021-09-14 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity): For vector types, make + the representative array the debug type. + + 2021-09-14 Eric Botcazou + + * gcc-interface/utils.c (update_pointer_to): Set TYPE_CANONICAL on + pointer and reference types. + + 2021-09-14 Eric Botcazou + + * gcc-interface/utils.c (can_materialize_object_renaming_p): Do not + call UI_Is_In_Int_Range on the result of Normalized_First_Bit. + + 2021-09-14 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Declare new + constant. Adjust error message issued by validate_size in the case + of by-reference types. + (validate_size): Always use the error strings passed by the caller. + 2021-07-28 Release Manager * GCC 11.2.0 released. diff -Nrcpad gcc-11.2.0/gcc/ada/Makefile.rtl gcc-11.3.0/gcc/ada/Makefile.rtl *** gcc-11.2.0/gcc/ada/Makefile.rtl Wed Jul 28 06:55:06 2021 --- gcc-11.3.0/gcc/ada/Makefile.rtl Thu Apr 21 07:58:52 2022 *************** endif *** 2651,2656 **** --- 2651,2657 ---- ifeq ($(strip $(filter-out alpha% linux%,$(target_cpu) $(target_os))),) LIBGNAT_TARGET_PAIRS = \ a-intnam.adsl_addr; + #elif defined (_WIN32) + return GetModuleHandle (NULL); + #else return NULL; #endif diff -Nrcpad gcc-11.2.0/gcc/ada/exp_attr.adb gcc-11.3.0/gcc/ada/exp_attr.adb *** gcc-11.2.0/gcc/ada/exp_attr.adb Wed Jul 28 06:55:06 2021 --- gcc-11.3.0/gcc/ada/exp_attr.adb Thu Apr 21 07:58:52 2022 *************** package body Exp_Attr is *** 3254,3267 **** -- If not constant-folded, Enum_Type'Enum_Rep (X) or X'Enum_Rep -- expands to ! -- target-type (X) ! -- This is simply a direct conversion from the enumeration type to ! -- the target integer type, which is treated by the back end as a ! -- normal integer conversion, treating the enumeration type as an ! -- integer, which is exactly what we want. We set Conversion_OK to ! -- make sure that the analyzer does not complain about what otherwise ! -- might be an illegal conversion. -- However the target type is universal integer in most cases, which -- is a very large type, so in the case of an enumeration type, we --- 3254,3268 ---- -- If not constant-folded, Enum_Type'Enum_Rep (X) or X'Enum_Rep -- expands to ! -- target-type!(X) ! -- This is an unchecked conversion from the enumeration type to the ! -- target integer type, which is treated by the back end as a normal ! -- integer conversion, treating the enumeration type as an integer, ! -- which is exactly what we want. Unlike for the Pos attribute, we ! -- cannot use a regular conversion since the associated check would ! -- involve comparing the converted bounds, i.e. would involve the use ! -- of 'Pos instead 'Enum_Rep for these bounds. -- However the target type is universal integer in most cases, which -- is a very large type, so in the case of an enumeration type, we *************** package body Exp_Attr is *** 3269,3279 **** -- the size information. if Is_Enumeration_Type (Ptyp) then ! Rewrite (N, OK_Convert_To (Get_Integer_Type (Ptyp), Expr)); Convert_To_And_Rewrite (Typ, N); else ! Rewrite (N, OK_Convert_To (Typ, Expr)); end if; Analyze_And_Resolve (N, Typ); --- 3270,3282 ---- -- the size information. if Is_Enumeration_Type (Ptyp) then ! Rewrite (N, Unchecked_Convert_To (Get_Integer_Type (Ptyp), Expr)); Convert_To_And_Rewrite (Typ, N); + -- Deal with integer types (replace by conversion) + else ! Rewrite (N, Convert_To (Typ, Expr)); end if; Analyze_And_Resolve (N, Typ); *************** package body Exp_Attr is *** 5447,5453 **** -- Deal with integer types (replace by conversion) ! elsif Is_Integer_Type (Etyp) then Rewrite (N, Convert_To (Typ, Expr)); end if; --- 5450,5456 ---- -- Deal with integer types (replace by conversion) ! else Rewrite (N, Convert_To (Typ, Expr)); end if; diff -Nrcpad gcc-11.2.0/gcc/ada/exp_ch4.adb gcc-11.3.0/gcc/ada/exp_ch4.adb *** gcc-11.2.0/gcc/ada/exp_ch4.adb Wed Jul 28 06:55:06 2021 --- gcc-11.3.0/gcc/ada/exp_ch4.adb Thu Apr 21 07:58:52 2022 *************** package body Exp_Ch4 is *** 14304,14312 **** return; end if; ! -- Finally, rewrite the operation in the narrower type Nop := New_Op_Node (Kind, Sloc (N)); if Binary then Set_Left_Opnd (Nop, Convert_To (Ntyp, L)); --- 14304,14316 ---- return; end if; ! -- Finally, rewrite the operation in the narrower type, but make sure ! -- not to perform name resolution for the operator again. Nop := New_Op_Node (Kind, Sloc (N)); + if Nkind (N) in N_Has_Entity then + Set_Entity (Nop, Entity (N)); + end if; if Binary then Set_Left_Opnd (Nop, Convert_To (Ntyp, L)); diff -Nrcpad gcc-11.2.0/gcc/ada/gcc-interface/Makefile.in gcc-11.3.0/gcc/ada/gcc-interface/Makefile.in *** gcc-11.2.0/gcc/ada/gcc-interface/Makefile.in Wed Jul 28 06:55:06 2021 --- gcc-11.3.0/gcc/ada/gcc-interface/Makefile.in Thu Apr 21 07:58:52 2022 *************** objdir = . *** 138,143 **** --- 138,144 ---- target_alias=@target_alias@ target=@target@ + target_noncanonical=@target_noncanonical@ target_cpu=@target_cpu@ target_vendor=@target_vendor@ target_os=@target_os@ *************** ifeq ($(strip $(filter-out x86_64, $(tar *** 348,353 **** --- 349,361 ---- endif endif + # The x86_64-linux-gnux32 compiler is actually an x32 compiler + ifeq ($(strip $(filter-out x86_64 linux-gnux32%, $(target_cpu) $(target_os))),) + ifneq ($(strip $(MULTISUBDIR)),/64) + target_cpu:=x32 + endif + endif + # The SuSE PowerPC64/Linux compiler is actually a 32-bit PowerPC compiler ifeq ($(strip $(filter-out powerpc64 suse linux%, $(target_cpu) $(target_vendor) $(target_os))),) target_cpu:=powerpc *************** OSCONS_CC=$(subst ./xgcc,../../xgcc,$(su *** 588,594 **** # has a header). OSCONS_CPP=$(OSCONS_CC) $(GNATLIBCFLAGS_FOR_C) -E -C \ ! -DTARGET=\"$(target)\" -iquote $(fsrcpfx)ada $(fsrcpfx)ada/s-oscons-tmplt.c > s-oscons-tmplt.i OSCONS_EXTRACT=$(OSCONS_CC) $(GNATLIBCFLAGS_FOR_C) -S s-oscons-tmplt.i # Note: if you need to build with a non-GNU compiler, you could adapt the --- 596,602 ---- # has a header). OSCONS_CPP=$(OSCONS_CC) $(GNATLIBCFLAGS_FOR_C) -E -C \ ! -DTARGET=\"$(target_noncanonical)\" -iquote $(fsrcpfx)ada $(fsrcpfx)ada/s-oscons-tmplt.c > s-oscons-tmplt.i OSCONS_EXTRACT=$(OSCONS_CC) $(GNATLIBCFLAGS_FOR_C) -S s-oscons-tmplt.i # Note: if you need to build with a non-GNU compiler, you could adapt the diff -Nrcpad gcc-11.2.0/gcc/ada/gcc-interface/decl.c gcc-11.3.0/gcc/ada/gcc-interface/decl.c *** gcc-11.2.0/gcc/ada/gcc-interface/decl.c Wed Jul 28 06:55:06 2021 --- gcc-11.3.0/gcc/ada/gcc-interface/decl.c Thu Apr 21 07:58:52 2022 *************** gnat_to_gnu_entity (Entity_Id gnat_entit *** 4290,4295 **** --- 4290,4297 ---- handling alignment and possible padding. */ if (is_type && (!gnu_decl || this_made_decl)) { + const bool is_by_ref = Is_By_Reference_Type (gnat_entity); + gcc_assert (!TYPE_IS_DUMMY_P (gnu_type)); /* Process the attributes, if not already done. Note that the type is *************** gnat_to_gnu_entity (Entity_Id gnat_entit *** 4304,4318 **** non-constant). */ if (!gnu_size && kind != E_String_Literal_Subtype) { if (Known_Esize (gnat_entity)) gnu_size = validate_size (Esize (gnat_entity), gnu_type, gnat_entity, ! VAR_DECL, false, false, NULL, NULL); else gnu_size = validate_size (RM_Size (gnat_entity), gnu_type, gnat_entity, TYPE_DECL, false, Has_Size_Clause (gnat_entity), ! NULL, NULL); } /* If a size was specified, see if we can make a new type of that size --- 4306,4323 ---- non-constant). */ if (!gnu_size && kind != E_String_Literal_Subtype) { + const char *size_s = "size for %s too small{, minimum allowed is ^}"; + const char *type_s = is_by_ref ? "by-reference type &" : "&"; + if (Known_Esize (gnat_entity)) gnu_size = validate_size (Esize (gnat_entity), gnu_type, gnat_entity, ! VAR_DECL, false, false, size_s, type_s); else gnu_size = validate_size (RM_Size (gnat_entity), gnu_type, gnat_entity, TYPE_DECL, false, Has_Size_Clause (gnat_entity), ! size_s, type_s); } /* If a size was specified, see if we can make a new type of that size *************** gnat_to_gnu_entity (Entity_Id gnat_entit *** 4620,4626 **** TYPE_ALIGN_OK (gnu_type) = 1; /* Record whether the type is passed by reference. */ ! if (Is_By_Reference_Type (gnat_entity) && !VOID_TYPE_P (gnu_type)) TYPE_BY_REFERENCE_P (gnu_type) = 1; /* Record whether an alignment clause was specified. */ --- 4625,4631 ---- TYPE_ALIGN_OK (gnu_type) = 1; /* Record whether the type is passed by reference. */ ! if (is_by_ref && !VOID_TYPE_P (gnu_type)) TYPE_BY_REFERENCE_P (gnu_type) = 1; /* Record whether an alignment clause was specified. */ *************** gnat_to_gnu_entity (Entity_Id gnat_entit *** 4740,4745 **** --- 4745,4758 ---- else gnu_decl = create_type_decl (gnu_entity_name, gnu_type, artificial_p, debug_info_p, gnat_entity); + + /* For vector types, make the representative array the debug type. */ + if (VECTOR_TYPE_P (gnu_type)) + { + tree rep = TYPE_REPRESENTATIVE_ARRAY (gnu_type); + TYPE_NAME (rep) = DECL_NAME (gnu_decl); + SET_TYPE_DEBUG_TYPE (gnu_type, rep); + } } /* Otherwise, for a type reusing an existing DECL, back-annotate values. */ *************** validate_size (Uint uint_size, tree gnu_ *** 9120,9132 **** /* Issue an error either if the default size of the object isn't a constant or if the new size is smaller than it. */ if (TREE_CODE (old_size) != INTEGER_CST ! || TREE_OVERFLOW (old_size) ! || tree_int_cst_lt (size, old_size)) { char buf[128]; const char *s; ! if (kind == FIELD_DECL) { snprintf (buf, sizeof (buf), s1, s2); s = buf; --- 9133,9144 ---- /* Issue an error either if the default size of the object isn't a constant or if the new size is smaller than it. */ if (TREE_CODE (old_size) != INTEGER_CST ! || (!TREE_OVERFLOW (old_size) && tree_int_cst_lt (size, old_size))) { char buf[128]; const char *s; ! if (s1 && s2) { snprintf (buf, sizeof (buf), s1, s2); s = buf; *************** validate_size (Uint uint_size, tree gnu_ *** 9135,9140 **** --- 9147,9153 ---- s = "component size for& too small{, minimum allowed is ^}"; else s = "size for& too small{, minimum allowed is ^}"; + post_error_ne_tree (s, gnat_error_node, gnat_object, old_size); return NULL_TREE; diff -Nrcpad gcc-11.2.0/gcc/ada/gcc-interface/utils.c gcc-11.3.0/gcc/ada/gcc-interface/utils.c *** gcc-11.2.0/gcc/ada/gcc-interface/utils.c Wed Jul 28 06:55:06 2021 --- gcc-11.3.0/gcc/ada/gcc-interface/utils.c Thu Apr 21 07:58:52 2022 *************** update_pointer_to (tree old_type, tree n *** 4329,4334 **** --- 4329,4335 ---- TREE_TYPE (t) = new_type; if (TYPE_NULL_BOUNDS (t)) TREE_TYPE (TREE_OPERAND (TYPE_NULL_BOUNDS (t), 0)) = new_type; + TYPE_CANONICAL (t) = TYPE_CANONICAL (TYPE_POINTER_TO (new_type)); } /* Chain REF and its variants at the end. */ *************** update_pointer_to (tree old_type, tree n *** 4345,4351 **** /* Now adjust them. */ for (; ref; ref = TYPE_NEXT_REF_TO (ref)) for (t = TYPE_MAIN_VARIANT (ref); t; t = TYPE_NEXT_VARIANT (t)) ! TREE_TYPE (t) = new_type; TYPE_POINTER_TO (old_type) = NULL_TREE; TYPE_REFERENCE_TO (old_type) = NULL_TREE; --- 4346,4355 ---- /* Now adjust them. */ for (; ref; ref = TYPE_NEXT_REF_TO (ref)) for (t = TYPE_MAIN_VARIANT (ref); t; t = TYPE_NEXT_VARIANT (t)) ! { ! TREE_TYPE (t) = new_type; ! TYPE_CANONICAL (t) = TYPE_CANONICAL (TYPE_REFERENCE_TO (new_type)); ! } TYPE_POINTER_TO (old_type) = NULL_TREE; TYPE_REFERENCE_TO (old_type) = NULL_TREE; *************** can_materialize_object_renaming_p (Node_ *** 5858,5865 **** const Uint bitpos = Normalized_First_Bit (Entity (Selector_Name (expr))); ! if (!UI_Is_In_Int_Range (bitpos) ! || (bitpos != UI_No_Uint && bitpos != UI_From_Int (0))) return false; expr = Prefix (expr); --- 5862,5868 ---- const Uint bitpos = Normalized_First_Bit (Entity (Selector_Name (expr))); ! if (bitpos != UI_No_Uint && bitpos != Uint_0) return false; expr = Prefix (expr); diff -Nrcpad gcc-11.2.0/gcc/ada/libgnat/g-sercom__linux.adb gcc-11.3.0/gcc/ada/libgnat/g-sercom__linux.adb *** gcc-11.2.0/gcc/ada/libgnat/g-sercom__linux.adb Wed Jul 28 06:55:06 2021 --- gcc-11.3.0/gcc/ada/libgnat/g-sercom__linux.adb Thu Apr 21 07:58:52 2022 *************** package body GNAT.Serial_Communications *** 382,387 **** --- 382,388 ---- begin if Port.H /= -1 then Res := close (int (Port.H)); + Port.H := -1; end if; end Close; diff -Nrcpad gcc-11.2.0/gcc/ada/libgnat/g-sercom__mingw.adb gcc-11.3.0/gcc/ada/libgnat/g-sercom__mingw.adb *** gcc-11.2.0/gcc/ada/libgnat/g-sercom__mingw.adb Wed Jul 28 06:55:06 2021 --- gcc-11.3.0/gcc/ada/libgnat/g-sercom__mingw.adb Thu Apr 21 07:58:52 2022 *************** package body GNAT.Serial_Communications *** 70,75 **** --- 70,76 ---- begin if Port.H /= -1 then Success := CloseHandle (HANDLE (Port.H)); + Port.H := -1; if Success = Win32.FALSE then Raise_Error ("error closing the port"); diff -Nrcpad gcc-11.2.0/gcc/ada/libgnat/s-dwalin.adb gcc-11.3.0/gcc/ada/libgnat/s-dwalin.adb *** gcc-11.2.0/gcc/ada/libgnat/s-dwalin.adb Wed Jul 28 06:55:06 2021 --- gcc-11.3.0/gcc/ada/libgnat/s-dwalin.adb Thu Apr 21 07:58:52 2022 *************** *** 30,54 **** ------------------------------------------------------------------------------ with Ada.Characters.Handling; - with Ada.Exceptions.Traceback; use Ada.Exceptions.Traceback; - with Ada.Unchecked_Deallocation; with Ada.Containers.Generic_Array_Sort; with Interfaces; use Interfaces; with System; use System; - with System.Storage_Elements; use System.Storage_Elements; with System.Address_Image; with System.IO; use System.IO; - with System.Object_Reader; use System.Object_Reader; - with System.Traceback_Entries; use System.Traceback_Entries; with System.Mmap; use System.Mmap; ! with System.Bounded_Strings; use System.Bounded_Strings; package body System.Dwarf_Lines is SSU : constant := System.Storage_Unit; function String_Length (Str : Str_Access) return Natural; -- Return the length of the C string Str --- 30,56 ---- ------------------------------------------------------------------------------ with Ada.Characters.Handling; with Ada.Containers.Generic_Array_Sort; + with Ada.Unchecked_Deallocation; with Interfaces; use Interfaces; with System; use System; with System.Address_Image; + with System.Bounded_Strings; use System.Bounded_Strings; with System.IO; use System.IO; with System.Mmap; use System.Mmap; ! with System.Object_Reader; use System.Object_Reader; ! with System.Storage_Elements; use System.Storage_Elements; package body System.Dwarf_Lines is SSU : constant := System.Storage_Unit; + function Get_Load_Displacement (C : Dwarf_Context) return Storage_Offset; + -- Return the displacement between the load address present in the binary + -- and the run-time address at which it is loaded (i.e. non-zero for PIE). + function String_Length (Str : Str_Access) return Natural; -- Return the length of the C string Str *************** package body System.Dwarf_Lines is *** 60,76 **** (S : in out Mapped_Stream; Len : out Offset; Is64 : out Boolean); ! -- Read initial length as specified by Dwarf-4 7.2.2 procedure Read_Section_Offset (S : in out Mapped_Stream; Len : out Offset; Is64 : Boolean); ! -- Read a section offset, as specified by Dwarf-4 7.4 procedure Read_Aranges_Entry (C : in out Dwarf_Context; ! Start : out Storage_Offset; Len : out Storage_Count); -- Read a single .debug_aranges pair --- 62,84 ---- (S : in out Mapped_Stream; Len : out Offset; Is64 : out Boolean); ! -- Read initial length as specified by 7.2.2 procedure Read_Section_Offset (S : in out Mapped_Stream; Len : out Offset; Is64 : Boolean); ! -- Read a section offset, as specified by 7.4 ! ! procedure Read_Entry_Format_Array ! (S : in out Mapped_Stream; ! A : out Entry_Format_Array; ! Len : uint8); ! -- Read an entry format array, as specified by 6.2.4.1 procedure Read_Aranges_Entry (C : in out Dwarf_Context; ! Start : out Address; Len : out Storage_Count); -- Read a single .debug_aranges pair *************** package body System.Dwarf_Lines is *** 82,88 **** procedure Aranges_Lookup (C : in out Dwarf_Context; ! Addr : Storage_Offset; Info_Offset : out Offset; Success : out Boolean); -- Search for Addr in .debug_aranges and return offset Info_Offset in --- 90,96 ---- procedure Aranges_Lookup (C : in out Dwarf_Context; ! Addr : Address; Info_Offset : out Offset; Success : out Boolean); -- Search for Addr in .debug_aranges and return offset Info_Offset in *************** package body System.Dwarf_Lines is *** 111,134 **** -- a compilation unit. procedure Initialize_Pass (C : in out Dwarf_Context); ! -- Seek to the first byte of the first prologue and prepare to make a pass -- over the line number entries. procedure Initialize_State_Machine (C : in out Dwarf_Context); -- Set all state machine registers to their specified initial values ! procedure Parse_Prologue (C : in out Dwarf_Context); ! -- Decode a DWARF statement program prologue ! procedure Read_And_Execute_Isn (C : in out Dwarf_Context; Done : out Boolean); -- Read an execute a statement program instruction function To_File_Name (C : in out Dwarf_Context; ! Code : uint32) return String; ! -- Extract a file name from the prologue type Callback is access procedure (C : in out Dwarf_Context); procedure For_Each_Row (C : in out Dwarf_Context; F : Callback); --- 119,142 ---- -- a compilation unit. procedure Initialize_Pass (C : in out Dwarf_Context); ! -- Seek to the first byte of the first header and prepare to make a pass -- over the line number entries. procedure Initialize_State_Machine (C : in out Dwarf_Context); -- Set all state machine registers to their specified initial values ! procedure Parse_Header (C : in out Dwarf_Context); ! -- Decode a DWARF statement program header ! procedure Read_And_Execute_Insn (C : in out Dwarf_Context; Done : out Boolean); -- Read an execute a statement program instruction function To_File_Name (C : in out Dwarf_Context; ! File : uint32) return String; ! -- Extract a file name from the header type Callback is access procedure (C : in out Dwarf_Context); procedure For_Each_Row (C : in out Dwarf_Context; F : Callback); *************** package body System.Dwarf_Lines is *** 147,153 **** procedure Symbolic_Address (C : in out Dwarf_Context; ! Addr : Storage_Offset; Dir_Name : out Str_Access; File_Name : out Str_Access; Subprg_Name : out String_Ptr_Len; --- 155,161 ---- procedure Symbolic_Address (C : in out Dwarf_Context; ! Addr : Address; Dir_Name : out Str_Access; File_Name : out Str_Access; Subprg_Name : out String_Ptr_Len; *************** package body System.Dwarf_Lines is *** 158,165 **** --- 166,190 ---- -- DWARF constants -- ----------------------- + -- 3.1.1 Full and Partial Compilation Unit Entries + + DW_TAG_Compile_Unit : constant := 16#11#; + + DW_AT_Stmt_List : constant := 16#10#; + + -- 6.2.4.1 Standard Content Descriptions (DWARF 5) + + DW_LNCT_path : constant := 1; + DW_LNCT_directory_index : constant := 2; + -- DW_LNCT_timestamp : constant := 3; + -- DW_LNCT_size : constant := 4; + DW_LNCT_MD5 : constant := 5; + DW_LNCT_lo_user : constant := 16#2000#; + DW_LNCT_hi_user : constant := 16#3fff#; + -- 6.2.5.2 Standard Opcodes + DW_LNS_extended_op : constant := 0; DW_LNS_copy : constant := 1; DW_LNS_advance_pc : constant := 2; DW_LNS_advance_line : constant := 3; *************** package body System.Dwarf_Lines is *** 175,219 **** -- 6.2.5.3 Extended Opcodes ! DW_LNE_end_sequence : constant := 1; ! DW_LNE_set_address : constant := 2; ! DW_LNE_define_file : constant := 3; ! ! -- From the DWARF version 4 public review draft ! DW_LNE_set_discriminator : constant := 4; ! -- Attribute encodings ! ! DW_TAG_Compile_Unit : constant := 16#11#; ! ! DW_AT_Stmt_List : constant := 16#10#; ! DW_FORM_addr : constant := 16#01#; ! DW_FORM_block2 : constant := 16#03#; ! DW_FORM_block4 : constant := 16#04#; ! DW_FORM_data2 : constant := 16#05#; ! DW_FORM_data4 : constant := 16#06#; ! DW_FORM_data8 : constant := 16#07#; ! DW_FORM_string : constant := 16#08#; ! DW_FORM_block : constant := 16#09#; ! DW_FORM_block1 : constant := 16#0a#; ! DW_FORM_data1 : constant := 16#0b#; ! DW_FORM_flag : constant := 16#0c#; ! DW_FORM_sdata : constant := 16#0d#; ! DW_FORM_strp : constant := 16#0e#; ! DW_FORM_udata : constant := 16#0f#; ! DW_FORM_ref_addr : constant := 16#10#; ! DW_FORM_ref1 : constant := 16#11#; ! DW_FORM_ref2 : constant := 16#12#; ! DW_FORM_ref4 : constant := 16#13#; ! DW_FORM_ref8 : constant := 16#14#; ! DW_FORM_ref_udata : constant := 16#15#; ! DW_FORM_indirect : constant := 16#16#; ! DW_FORM_sec_offset : constant := 16#17#; ! DW_FORM_exprloc : constant := 16#18#; ! DW_FORM_flag_present : constant := 16#19#; ! DW_FORM_ref_sig8 : constant := 16#20#; --------- -- "<" -- --- 200,255 ---- -- 6.2.5.3 Extended Opcodes ! DW_LNE_end_sequence : constant := 1; ! DW_LNE_set_address : constant := 2; ! DW_LNE_define_file : constant := 3; DW_LNE_set_discriminator : constant := 4; ! -- 7.5.5 Classes and Forms ! DW_FORM_addr : constant := 16#01#; ! DW_FORM_block2 : constant := 16#03#; ! DW_FORM_block4 : constant := 16#04#; ! DW_FORM_data2 : constant := 16#05#; ! DW_FORM_data4 : constant := 16#06#; ! DW_FORM_data8 : constant := 16#07#; ! DW_FORM_string : constant := 16#08#; ! DW_FORM_block : constant := 16#09#; ! DW_FORM_block1 : constant := 16#0a#; ! DW_FORM_data1 : constant := 16#0b#; ! DW_FORM_flag : constant := 16#0c#; ! DW_FORM_sdata : constant := 16#0d#; ! DW_FORM_strp : constant := 16#0e#; ! DW_FORM_udata : constant := 16#0f#; ! DW_FORM_ref_addr : constant := 16#10#; ! DW_FORM_ref1 : constant := 16#11#; ! DW_FORM_ref2 : constant := 16#12#; ! DW_FORM_ref4 : constant := 16#13#; ! DW_FORM_ref8 : constant := 16#14#; ! DW_FORM_ref_udata : constant := 16#15#; ! DW_FORM_indirect : constant := 16#16#; ! DW_FORM_sec_offset : constant := 16#17#; ! DW_FORM_exprloc : constant := 16#18#; ! DW_FORM_flag_present : constant := 16#19#; ! DW_FORM_strx : constant := 16#1a#; ! DW_FORM_addrx : constant := 16#1b#; ! DW_FORM_ref_sup4 : constant := 16#1c#; ! DW_FORM_strp_sup : constant := 16#1d#; ! DW_FORM_data16 : constant := 16#1e#; ! DW_FORM_line_strp : constant := 16#1f#; ! DW_FORM_ref_sig8 : constant := 16#20#; ! DW_FORM_implicit_const : constant := 16#21#; ! DW_FORM_loclistx : constant := 16#22#; ! DW_FORM_rnglistx : constant := 16#23#; ! DW_FORM_ref_sup8 : constant := 16#24#; ! DW_FORM_strx1 : constant := 16#25#; ! DW_FORM_strx2 : constant := 16#26#; ! DW_FORM_strx3 : constant := 16#27#; ! DW_FORM_strx4 : constant := 16#28#; ! DW_FORM_addrx1 : constant := 16#29#; ! DW_FORM_addrx2 : constant := 16#2a#; ! DW_FORM_addrx3 : constant := 16#2b#; ! DW_FORM_addrx4 : constant := 16#2c#; --------- -- "<" -- *************** package body System.Dwarf_Lines is *** 235,240 **** --- 271,277 ---- procedure Unchecked_Deallocation is new Ada.Unchecked_Deallocation (Search_Array, Search_Array_Access); + begin if C.Has_Debug then Close (C.Lines); *************** package body System.Dwarf_Lines is *** 265,270 **** --- 302,308 ---- procedure Dump_Row (C : in out Dwarf_Context) is PC : constant Integer_Address := Integer_Address (C.Registers.Address); Off : Offset; + begin Tell (C.Lines, Off); *************** package body System.Dwarf_Lines is *** 286,296 **** --- 324,336 ---- Cache : constant Search_Array_Access := C.Cache; S : Object_Symbol; Name : String_Ptr_Len; + begin if Cache = null then Put_Line ("No cache"); return; end if; + for I in Cache'Range loop declare E : Search_Entry renames Cache (I); *************** package body System.Dwarf_Lines is *** 322,328 **** Initialize_Pass (C); loop ! Read_And_Execute_Isn (C, Done); if C.Registers.Is_Row then F.all (C); --- 362,368 ---- Initialize_Pass (C); loop ! Read_And_Execute_Insn (C, Done); if C.Registers.Is_Row then F.all (C); *************** package body System.Dwarf_Lines is *** 332,337 **** --- 372,390 ---- end loop; end For_Each_Row; + --------------------------- + -- Get_Load_Displacement -- + --------------------------- + + function Get_Load_Displacement (C : Dwarf_Context) return Storage_Offset is + begin + if C.Load_Address /= Null_Address then + return C.Load_Address - Address (Get_Load_Address (C.Obj.all)); + else + return 0; + end if; + end Get_Load_Displacement; + --------------------- -- Initialize_Pass -- --------------------- *************** package body System.Dwarf_Lines is *** 339,346 **** procedure Initialize_Pass (C : in out Dwarf_Context) is begin Seek (C.Lines, 0); ! C.Next_Prologue := 0; ! Initialize_State_Machine (C); end Initialize_Pass; --- 392,398 ---- procedure Initialize_Pass (C : in out Dwarf_Context) is begin Seek (C.Lines, 0); ! C.Next_Header := 0; Initialize_State_Machine (C); end Initialize_Pass; *************** package body System.Dwarf_Lines is *** 350,366 **** procedure Initialize_State_Machine (C : in out Dwarf_Context) is begin C.Registers := (Address => 0, File => 1, Line => 1, Column => 0, ! Is_Stmt => C.Prologue.Default_Is_Stmt = 0, Basic_Block => False, End_Sequence => False, - Prologue_End => False, - Epilogue_Begin => False, - ISA => 0, Is_Row => False); end Initialize_State_Machine; --- 402,417 ---- procedure Initialize_State_Machine (C : in out Dwarf_Context) is begin + -- Table 6.4: Line number program initial state + C.Registers := (Address => 0, File => 1, Line => 1, Column => 0, ! Is_Stmt => C.Header.Default_Is_Stmt /= 0, Basic_Block => False, End_Sequence => False, Is_Row => False); end Initialize_State_Machine; *************** package body System.Dwarf_Lines is *** 369,387 **** --------------- function Is_Inside (C : Dwarf_Context; Addr : Address) return Boolean is begin ! return (Addr >= C.Low + C.Load_Address ! and then Addr <= C.High + C.Load_Address); end Is_Inside; ----------------- -- Low_Address -- ----------------- ! function Low_Address (C : Dwarf_Context) ! return System.Address is begin ! return C.Load_Address + C.Low; end Low_Address; ---------- --- 420,438 ---- --------------- function Is_Inside (C : Dwarf_Context; Addr : Address) return Boolean is + Disp : constant Storage_Offset := Get_Load_Displacement (C); + begin ! return Addr >= C.Low + Disp and then Addr <= C.High + Disp; end Is_Inside; ----------------- -- Low_Address -- ----------------- ! function Low_Address (C : Dwarf_Context) return Address is begin ! return C.Low + Get_Load_Displacement (C); end Low_Address; ---------- *************** package body System.Dwarf_Lines is *** 393,440 **** C : out Dwarf_Context; Success : out Boolean) is ! Line_Sec, Info_Sec, Abbrev_Sec, Aranges_Sec : Object_Section; ! Hi, Lo : uint64; begin -- Not a success by default Success := False; ! -- Open file ! C.Obj := Open (File_Name, C.In_Exception); if C.Obj = null then ! return; end if; Success := True; ! -- Get memory bounds for executable code. Note that such code -- might come from multiple sections. Get_Xcode_Bounds (C.Obj.all, Lo, Hi); ! C.Low := Storage_Offset (Lo); ! C.High := Storage_Offset (Hi); -- Create a stream for debug sections if Format (C.Obj.all) = XCOFF32 then ! Line_Sec := Get_Section (C.Obj.all, ".dwline"); ! Abbrev_Sec := Get_Section (C.Obj.all, ".dwabrev"); ! Info_Sec := Get_Section (C.Obj.all, ".dwinfo"); ! Aranges_Sec := Get_Section (C.Obj.all, ".dwarnge"); else ! Line_Sec := Get_Section (C.Obj.all, ".debug_line"); ! Abbrev_Sec := Get_Section (C.Obj.all, ".debug_abbrev"); ! Info_Sec := Get_Section (C.Obj.all, ".debug_info"); ! Aranges_Sec := Get_Section (C.Obj.all, ".debug_aranges"); end if; ! if Line_Sec = Null_Section ! or else Abbrev_Sec = Null_Section ! or else Info_Sec = Null_Section ! or else Aranges_Sec = Null_Section then pragma Annotate (CodePeer, False_Positive, --- 444,498 ---- C : out Dwarf_Context; Success : out Boolean) is ! Abbrev, Aranges, Lines, Info, Line_Str : Object_Section; ! Hi, Lo : uint64; ! begin -- Not a success by default Success := False; ! -- Open file with In_Exception set so we can control the failure mode ! C.Obj := Open (File_Name, In_Exception => True); if C.Obj = null then ! if C.In_Exception then ! return; ! else ! raise Dwarf_Error with "could not open file"; ! end if; end if; Success := True; ! -- Get address bounds for executable code. Note that such code -- might come from multiple sections. Get_Xcode_Bounds (C.Obj.all, Lo, Hi); ! C.Low := Address (Lo); ! C.High := Address (Hi); -- Create a stream for debug sections if Format (C.Obj.all) = XCOFF32 then ! Abbrev := Get_Section (C.Obj.all, ".dwabrev"); ! Aranges := Get_Section (C.Obj.all, ".dwarnge"); ! Info := Get_Section (C.Obj.all, ".dwinfo"); ! Lines := Get_Section (C.Obj.all, ".dwline"); ! Line_Str := Get_Section (C.Obj.all, ".dwlistr"); else ! Abbrev := Get_Section (C.Obj.all, ".debug_abbrev"); ! Aranges := Get_Section (C.Obj.all, ".debug_aranges"); ! Info := Get_Section (C.Obj.all, ".debug_info"); ! Lines := Get_Section (C.Obj.all, ".debug_line"); ! Line_Str := Get_Section (C.Obj.all, ".debug_line_str"); end if; ! if Abbrev = Null_Section ! or else Aranges = Null_Section ! or else Info = Null_Section ! or else Lines = Null_Section then pragma Annotate (CodePeer, False_Positive, *************** package body System.Dwarf_Lines is *** 444,464 **** return; end if; ! C.Lines := Create_Stream (C.Obj.all, Line_Sec); ! C.Abbrev := Create_Stream (C.Obj.all, Abbrev_Sec); ! C.Info := Create_Stream (C.Obj.all, Info_Sec); ! C.Aranges := Create_Stream (C.Obj.all, Aranges_Sec); -- All operations are successful, context is valid C.Has_Debug := True; end Open; ! -------------------- ! -- Parse_Prologue -- ! -------------------- - procedure Parse_Prologue (C : in out Dwarf_Context) is Char : uint8; Prev : uint8; -- The most recently read character and the one preceding it --- 502,530 ---- return; end if; ! C.Abbrev := Create_Stream (C.Obj.all, Abbrev); ! C.Aranges := Create_Stream (C.Obj.all, Aranges); ! C.Info := Create_Stream (C.Obj.all, Info); ! C.Lines := Create_Stream (C.Obj.all, Lines); ! ! -- The .debug_line_str section may be available in DWARF 5 ! ! if Line_Str /= Null_Section then ! C.Line_Str := Create_Stream (C.Obj.all, Line_Str); ! end if; -- All operations are successful, context is valid C.Has_Debug := True; end Open; ! ------------------ ! -- Parse_Header -- ! ------------------ ! ! procedure Parse_Header (C : in out Dwarf_Context) is ! Header : Line_Info_Header renames C.Header; Char : uint8; Prev : uint8; -- The most recently read character and the one preceding it *************** package body System.Dwarf_Lines is *** 469,562 **** Buf : Buffer; Off : Offset; ! First_Byte_Of_Prologue : Offset; ! Last_Byte_Of_Prologue : Offset; ! ! Max_Op_Per_Insn : uint8; ! pragma Unreferenced (Max_Op_Per_Insn); ! Prologue : Line_Info_Prologue renames C.Prologue; begin ! Tell (C.Lines, First_Byte_Of_Prologue); ! Prologue.Unit_Length := Read (C.Lines); Tell (C.Lines, Off); ! C.Next_Prologue := Off + Offset (Prologue.Unit_Length); ! Prologue.Version := Read (C.Lines); ! Prologue.Prologue_Length := Read (C.Lines); ! Tell (C.Lines, Last_Byte_Of_Prologue); ! Last_Byte_Of_Prologue := ! Last_Byte_Of_Prologue + Offset (Prologue.Prologue_Length) - 1; ! Prologue.Min_Isn_Length := Read (C.Lines); ! if Prologue.Version >= 4 then ! Max_Op_Per_Insn := Read (C.Lines); end if; ! Prologue.Default_Is_Stmt := Read (C.Lines); ! Prologue.Line_Base := Read (C.Lines); ! Prologue.Line_Range := Read (C.Lines); ! Prologue.Opcode_Base := Read (C.Lines); ! -- Opcode_Lengths is an array of Opcode_Base bytes specifying the number ! -- of LEB128 operands for each of the standard opcodes. ! for J in 1 .. uint32 (Prologue.Opcode_Base - 1) loop ! Prologue.Opcode_Lengths (J) := Read (C.Lines); end loop; ! -- The include directories table follows. This is a list of null ! -- terminated strings terminated by a double null. We only store ! -- its offset for later decoding. ! Tell (C.Lines, Prologue.Includes_Offset); ! Char := Read (C.Lines); ! if Char /= 0 then ! loop ! Prev := Char; ! Char := Read (C.Lines); ! exit when Char = 0 and Prev = 0; end loop; end if; ! -- The file_names table is next. Each record is a null terminated string ! -- for the file name, an unsigned LEB128 directory index, an unsigned ! -- LEB128 modification time, and an LEB128 file length. The table is ! -- terminated by a null byte. ! Tell (C.Lines, Prologue.File_Names_Offset); ! loop ! -- Read the filename ! Read_C_String (C.Lines, Buf); ! exit when Buf (0) = 0; ! Dummy := Read_LEB128 (C.Lines); -- Skip the directory index. ! Dummy := Read_LEB128 (C.Lines); -- Skip the modification time. ! Dummy := Read_LEB128 (C.Lines); -- Skip the file length. ! end loop; -- Check we're where we think we are. This sanity check ensures we think ! -- the prologue ends where the prologue says it does. It we aren't then ! -- we've probably gotten out of sync somewhere. Tell (C.Lines, Off); ! if Prologue.Unit_Length /= 0 ! and then Off /= Last_Byte_Of_Prologue + 1 then ! raise Dwarf_Error with "Parse error reading DWARF information"; end if; ! end Parse_Prologue; ! -------------------------- ! -- Read_And_Execute_Isn -- ! -------------------------- ! procedure Read_And_Execute_Isn (C : in out Dwarf_Context; Done : out Boolean) is --- 535,681 ---- Buf : Buffer; Off : Offset; ! First_Byte_Of_Header : Offset; ! Last_Byte_Of_Header : Offset; ! Standard_Opcode_Lengths : Opcode_Length_Array; ! pragma Unreferenced (Standard_Opcode_Lengths); begin ! Tell (C.Lines, First_Byte_Of_Header); ! ! Read_Initial_Length (C.Lines, Header.Unit_Length, Header.Is64); ! Tell (C.Lines, Off); ! C.Next_Header := Off + Header.Unit_Length; ! Header.Version := Read (C.Lines); ! if Header.Version >= 5 then ! Header.Address_Size := Read (C.Lines); ! Header.Segment_Selector_Size := Read (C.Lines); ! else ! Header.Address_Size := 0; ! Header.Segment_Selector_Size := 0; ! end if; ! Header.Header_Length := Read (C.Lines); ! Tell (C.Lines, Last_Byte_Of_Header); ! Last_Byte_Of_Header := ! Last_Byte_Of_Header + Offset (Header.Header_Length) - 1; ! ! Header.Minimum_Insn_Length := Read (C.Lines); ! ! if Header.Version >= 4 then ! Header.Maximum_Op_Per_Insn := Read (C.Lines); ! else ! Header.Maximum_Op_Per_Insn := 0; end if; ! Header.Default_Is_Stmt := Read (C.Lines); ! Header.Line_Base := Read (C.Lines); ! Header.Line_Range := Read (C.Lines); ! Header.Opcode_Base := Read (C.Lines); ! -- Standard_Opcode_Lengths is an array of Opcode_Base bytes specifying ! -- the number of LEB128 operands for each of the standard opcodes. ! for J in 1 .. Integer (Header.Opcode_Base - 1) loop ! Standard_Opcode_Lengths (J) := Read (C.Lines); end loop; ! -- The Directories table follows. Up to DWARF 4, this is a list of null ! -- terminated strings terminated by a null byte. In DWARF 5, this is a ! -- sequence of Directories_Count entries which are encoded as described ! -- by the Directory_Entry_Format field. We store its offset for later. ! if Header.Version <= 4 then ! Tell (C.Lines, Header.Directories); ! Char := Read (C.Lines); ! if Char /= 0 then ! loop ! Prev := Char; ! Char := Read (C.Lines); ! exit when Char = 0 and Prev = 0; ! end loop; ! end if; ! ! else ! Header.Directory_Entry_Format_Count := Read (C.Lines); ! Read_Entry_Format_Array (C.Lines, ! Header.Directory_Entry_Format, ! Header.Directory_Entry_Format_Count); ! ! Header.Directories_Count := Read_LEB128 (C.Lines); ! Tell (C.Lines, Header.Directories); ! for J in 1 .. Header.Directories_Count loop ! for K in 1 .. Integer (Header.Directory_Entry_Format_Count) loop ! Skip_Form (C.Lines, ! Header.Directory_Entry_Format (K).Form, ! Header.Is64, ! Header.Address_Size); ! end loop; end loop; end if; ! -- The File_Names table is next. Up to DWARF 4, this is a list of record ! -- containing a null terminated string for the file name, an unsigned ! -- LEB128 directory index in the Directories table, an unsigned LEB128 ! -- modification time, and an unsigned LEB128 for the file length; the ! -- table is terminated by a null byte. In DWARF 5, this is a sequence ! -- of File_Names_Count entries which are encoded as described by the ! -- File_Name_Entry_Format field. We store its offset for later decoding. ! if Header.Version <= 4 then ! Tell (C.Lines, Header.File_Names); ! -- Read the file names ! loop ! Read_C_String (C.Lines, Buf); ! exit when Buf (0) = 0; ! Dummy := Read_LEB128 (C.Lines); -- Skip the directory index. ! Dummy := Read_LEB128 (C.Lines); -- Skip the modification time. ! Dummy := Read_LEB128 (C.Lines); -- Skip the file length. ! end loop; ! ! else ! Header.File_Name_Entry_Format_Count := Read (C.Lines); ! Read_Entry_Format_Array (C.Lines, ! Header.File_Name_Entry_Format, ! Header.File_Name_Entry_Format_Count); ! ! Header.File_Names_Count := Read_LEB128 (C.Lines); ! Tell (C.Lines, Header.File_Names); ! for J in 1 .. Header.File_Names_Count loop ! for K in 1 .. Integer (Header.File_Name_Entry_Format_Count) loop ! Skip_Form (C.Lines, ! Header.File_Name_Entry_Format (K).Form, ! Header.Is64, ! Header.Address_Size); ! end loop; ! end loop; ! end if; -- Check we're where we think we are. This sanity check ensures we think ! -- the header ends where the header says it does. It we aren't, then we ! -- have probably gotten out of sync somewhere. Tell (C.Lines, Off); ! if Header.Unit_Length /= 0 ! and then Off /= Last_Byte_Of_Header + 1 then ! raise Dwarf_Error with "parse error reading DWARF information"; end if; ! end Parse_Header; ! --------------------------- ! -- Read_And_Execute_Insn -- ! --------------------------- ! procedure Read_And_Execute_Insn (C : in out Dwarf_Context; Done : out Boolean) is *************** package body System.Dwarf_Lines is *** 572,578 **** Obj : Object_File renames C.Obj.all; Registers : Line_Info_Registers renames C.Registers; ! Prologue : Line_Info_Prologue renames C.Prologue; begin Done := False; --- 691,697 ---- Obj : Object_File renames C.Obj.all; Registers : Line_Info_Registers renames C.Registers; ! Header : Line_Info_Header renames C.Header; begin Done := False; *************** package body System.Dwarf_Lines is *** 582,589 **** Initialize_State_Machine (C); end if; ! -- If we have reached the next prologue, read it. Beware of possibly ! -- empty blocks. -- When testing for the end of section, beware of possible zero padding -- at the end. Bail out as soon as there's not even room for at least a --- 701,708 ---- Initialize_State_Machine (C); end if; ! -- If we have reached the next header, read it. Beware of possibly empty ! -- blocks. -- When testing for the end of section, beware of possible zero padding -- at the end. Bail out as soon as there's not even room for at least a *************** package body System.Dwarf_Lines is *** 592,600 **** -- or Off+3 > Section_Length. Tell (C.Lines, Off); ! while Off = C.Next_Prologue loop Initialize_State_Machine (C); ! Parse_Prologue (C); Tell (C.Lines, Off); exit when Off + 3 > Length (C.Lines); end loop; --- 711,719 ---- -- or Off+3 > Section_Length. Tell (C.Lines, Off); ! while Off = C.Next_Header loop Initialize_State_Machine (C); ! Parse_Header (C); Tell (C.Lines, Off); exit when Off + 3 > Length (C.Lines); end loop; *************** package body System.Dwarf_Lines is *** 606,612 **** -- We are finished when we either reach the end of the section, or we -- have reached zero padding at the end of the section. ! if Prologue.Unit_Length = 0 or else Off + 3 > Length (C.Lines) then Done := True; return; end if; --- 725,731 ---- -- We are finished when we either reach the end of the section, or we -- have reached zero padding at the end of the section. ! if Header.Unit_Length = 0 or else Off + 3 > Length (C.Lines) then Done := True; return; end if; *************** package body System.Dwarf_Lines is *** 617,623 **** -- Extended opcodes ! if Opcode = 0 then Extended_Length := Read_LEB128 (C.Lines); Extended_Opcode := Read (C.Lines); --- 736,742 ---- -- Extended opcodes ! if Opcode = DW_LNS_extended_op then Extended_Length := Read_LEB128 (C.Lines); Extended_Opcode := Read (C.Lines); *************** package body System.Dwarf_Lines is *** 656,662 **** -- Standard opcodes ! elsif Opcode < Prologue.Opcode_Base then case Opcode is -- Append a row to the line info matrix --- 775,781 ---- -- Standard opcodes ! elsif Opcode < Header.Opcode_Base then case Opcode is -- Append a row to the line info matrix *************** package body System.Dwarf_Lines is *** 671,677 **** uint32_Operand := Read_LEB128 (C.Lines); Registers.Address := Registers.Address + ! uint64 (uint32_Operand * uint32 (Prologue.Min_Isn_Length)); -- Add a signed word to the current source line --- 790,796 ---- uint32_Operand := Read_LEB128 (C.Lines); Registers.Address := Registers.Address + ! uint64 (uint32_Operand * uint32 (Header.Minimum_Insn_Length)); -- Add a signed word to the current source line *************** package body System.Dwarf_Lines is *** 708,715 **** Registers.Address := Registers.Address + uint64 ! (((255 - Prologue.Opcode_Base) / Prologue.Line_Range) * ! Prologue.Min_Isn_Length); -- Advance the program counter by a constant --- 827,834 ---- Registers.Address := Registers.Address + uint64 ! (((255 - Header.Opcode_Base) / Header.Line_Range) * ! Header.Minimum_Insn_Length); -- Advance the program counter by a constant *************** package body System.Dwarf_Lines is *** 744,750 **** Line_Increment : int32; begin ! Opcode := Opcode - Prologue.Opcode_Base; -- The adjusted opcode is a uint8 encoding an address increment -- and a signed line increment. The upperbound is allowed to be --- 863,869 ---- Line_Increment : int32; begin ! Opcode := Opcode - Header.Opcode_Base; -- The adjusted opcode is a uint8 encoding an address increment -- and a signed line increment. The upperbound is allowed to be *************** package body System.Dwarf_Lines is *** 752,769 **** -- prevent overflows. Address_Increment := ! int32 (Opcode / Prologue.Line_Range) * ! int32 (Prologue.Min_Isn_Length); Line_Increment := ! int32 (Prologue.Line_Base) + ! int32 (Opcode mod Prologue.Line_Range); Registers.Address := Registers.Address + uint64 (Address_Increment); Registers.Line := uint32 (int32 (Registers.Line) + Line_Increment); Registers.Basic_Block := False; - Registers.Prologue_End := False; - Registers.Epilogue_Begin := False; Registers.Is_Row := True; end; end if; --- 871,886 ---- -- prevent overflows. Address_Increment := ! int32 (Opcode / Header.Line_Range) * ! int32 (Header.Minimum_Insn_Length); Line_Increment := ! int32 (Header.Line_Base) + ! int32 (Opcode mod Header.Line_Range); Registers.Address := Registers.Address + uint64 (Address_Increment); Registers.Line := uint32 (int32 (Registers.Line) + Line_Increment); Registers.Basic_Block := False; Registers.Is_Row := True; end; end if; *************** package body System.Dwarf_Lines is *** 775,781 **** Registers.Is_Row := False; Done := True; ! end Read_And_Execute_Isn; ---------------------- -- Set_Load_Address -- --- 892,898 ---- Registers.Is_Row := False; Done := True; ! end Read_And_Execute_Insn; ---------------------- -- Set_Load_Address -- *************** package body System.Dwarf_Lines is *** 792,801 **** function To_File_Name (C : in out Dwarf_Context; ! Code : uint32) return String is Buf : Buffer; ! J : uint32; Dir_Idx : uint32; pragma Unreferenced (Dir_Idx); --- 909,918 ---- function To_File_Name (C : in out Dwarf_Context; ! File : uint32) return String is Buf : Buffer; ! Off : Offset; Dir_Idx : uint32; pragma Unreferenced (Dir_Idx); *************** package body System.Dwarf_Lines is *** 806,830 **** Length : uint32; pragma Unreferenced (Length); begin ! Seek (C.Lines, C.Prologue.File_Names_Offset); ! -- Find the entry ! J := 0; ! loop ! J := J + 1; ! Read_C_String (C.Lines, Buf); ! if Buf (Buf'First) = 0 then ! return "???"; ! end if; ! Dir_Idx := Read_LEB128 (C.Lines); ! Mod_Time := Read_LEB128 (C.Lines); ! Length := Read_LEB128 (C.Lines); ! exit when J = Code; ! end loop; return To_String (Buf); end To_File_Name; --- 923,980 ---- Length : uint32; pragma Unreferenced (Length); + File_Entry_Format : Entry_Format_Array + renames C.Header.File_Name_Entry_Format; + begin ! Seek (C.Lines, C.Header.File_Names); ! -- Find the entry. Note that, up to DWARF 4, the index is 1-based ! -- whereas, in DWARF 5, it is 0-based. ! if C.Header.Version <= 4 then ! for J in 1 .. File loop ! Read_C_String (C.Lines, Buf); ! if Buf (Buf'First) = 0 then ! return "???"; ! end if; ! Dir_Idx := Read_LEB128 (C.Lines); ! Mod_Time := Read_LEB128 (C.Lines); ! Length := Read_LEB128 (C.Lines); ! end loop; ! ! -- DWARF 5 ! ! else ! for J in 0 .. File loop ! for K in 1 .. Integer (C.Header.File_Name_Entry_Format_Count) loop ! if File_Entry_Format (K).C_Type = DW_LNCT_path then ! case File_Entry_Format (K).Form is ! when DW_FORM_string => ! Read_C_String (C.Lines, Buf); ! ! when DW_FORM_line_strp => ! Read_Section_Offset (C.Lines, Off, C.Header.Is64); ! if J = File then ! Seek (C.Line_Str, Off); ! Read_C_String (C.Line_Str, Buf); ! end if; ! ! when others => ! raise Dwarf_Error with "DWARF form not implemented"; ! end case; ! ! else ! Skip_Form (C.Lines, ! File_Entry_Format (K).Form, ! C.Header.Is64, ! C.Header.Address_Size); ! end if; ! end loop; ! end loop; ! end if; return To_String (Buf); end To_File_Name; *************** package body System.Dwarf_Lines is *** 840,845 **** --- 990,996 ---- is Len32 : uint32; Len64 : uint64; + begin Len32 := Read (S); if Len32 < 16#ffff_fff0# then *************** package body System.Dwarf_Lines is *** 872,884 **** end if; end Read_Section_Offset; -------------------- -- Aranges_Lookup -- -------------------- procedure Aranges_Lookup (C : in out Dwarf_Context; ! Addr : Storage_Offset; Info_Offset : out Offset; Success : out Boolean) is --- 1023,1072 ---- end if; end Read_Section_Offset; + ----------------------------- + -- Read_Entry_Format_Array -- + ----------------------------- + + procedure Read_Entry_Format_Array + (S : in out Mapped_Stream; + A : out Entry_Format_Array; + Len : uint8) + is + C_Type, Form : uint32; + N : Integer; + + begin + N := A'First; + + for J in 1 .. Len loop + C_Type := Read_LEB128 (S); + Form := Read_LEB128 (S); + + case C_Type is + when DW_LNCT_path .. DW_LNCT_MD5 => + if N not in A'Range then + raise Dwarf_Error with "duplicate DWARF content type"; + end if; + + A (N) := (C_Type, Form); + N := N + 1; + + when DW_LNCT_lo_user .. DW_LNCT_hi_user => + null; + + when others => + raise Dwarf_Error with "DWARF content type not implemented"; + end case; + end loop; + end Read_Entry_Format_Array; + -------------------- -- Aranges_Lookup -- -------------------- procedure Aranges_Lookup (C : in out Dwarf_Context; ! Addr : Address; Info_Offset : out Offset; Success : out Boolean) is *************** package body System.Dwarf_Lines is *** 892,898 **** loop declare ! Start : Storage_Offset; Len : Storage_Count; begin Read_Aranges_Entry (C, Start, Len); --- 1080,1086 ---- loop declare ! Start : Address; Len : Storage_Count; begin Read_Aranges_Entry (C, Start, Len); *************** package body System.Dwarf_Lines is *** 921,951 **** Ptr_Sz : uint8) is Skip : Offset; begin case Form is when DW_FORM_addr => Skip := Offset (Ptr_Sz); when DW_FORM_block2 => Skip := Offset (uint16'(Read (S))); when DW_FORM_block4 => Skip := Offset (uint32'(Read (S))); - when DW_FORM_data2 | DW_FORM_ref2 => - Skip := 2; - when DW_FORM_data4 | DW_FORM_ref4 => - Skip := 4; - when DW_FORM_data8 | DW_FORM_ref8 | DW_FORM_ref_sig8 => - Skip := 8; - when DW_FORM_string => - while uint8'(Read (S)) /= 0 loop - null; - end loop; - return; when DW_FORM_block | DW_FORM_exprloc => Skip := Offset (uint32'(Read_LEB128 (S))); ! when DW_FORM_block1 | DW_FORM_ref1 => ! Skip := Offset (uint8'(Read (S))); ! when DW_FORM_data1 | DW_FORM_flag => Skip := 1; when DW_FORM_sdata => declare Val : constant int32 := Read_LEB128 (S); --- 1109,1159 ---- Ptr_Sz : uint8) is Skip : Offset; + begin + -- 7.5.5 Classes and Forms + case Form is when DW_FORM_addr => Skip := Offset (Ptr_Sz); + when DW_FORM_block1 => + Skip := Offset (uint8'(Read (S))); when DW_FORM_block2 => Skip := Offset (uint16'(Read (S))); when DW_FORM_block4 => Skip := Offset (uint32'(Read (S))); when DW_FORM_block | DW_FORM_exprloc => Skip := Offset (uint32'(Read_LEB128 (S))); ! when DW_FORM_addrx1 ! | DW_FORM_data1 ! | DW_FORM_flag ! | DW_FORM_ref1 ! | DW_FORM_strx1 ! => Skip := 1; + when DW_FORM_addrx2 + | DW_FORM_data2 + | DW_FORM_ref2 + | DW_FORM_strx2 + => + Skip := 2; + when DW_FORM_addrx3 | DW_FORM_strx3 => + Skip := 3; + when DW_FORM_addrx4 + | DW_FORM_data4 + | DW_FORM_ref4 + | DW_FORM_ref_sup4 + | DW_FORM_strx4 + => + Skip := 4; + when DW_FORM_data8 + | DW_FORM_ref8 + | DW_FORM_ref_sup8 + | DW_FORM_ref_sig8 + => + Skip := 8; + when DW_FORM_data16 => + Skip := 16; when DW_FORM_sdata => declare Val : constant int32 := Read_LEB128 (S); *************** package body System.Dwarf_Lines is *** 953,974 **** begin return; end; ! when DW_FORM_strp | DW_FORM_ref_addr | DW_FORM_sec_offset => ! Skip := (if Is64 then 8 else 4); ! when DW_FORM_udata | DW_FORM_ref_udata => declare Val : constant uint32 := Read_LEB128 (S); pragma Unreferenced (Val); begin return; end; ! when DW_FORM_flag_present => return; when DW_FORM_indirect => ! raise Constraint_Error; when others => ! raise Constraint_Error; end case; Seek (S, Tell (S) + Skip); end Skip_Form; --- 1161,1199 ---- begin return; end; ! when DW_FORM_addrx ! | DW_FORM_loclistx ! | DW_FORM_ref_udata ! | DW_FORM_rnglistx ! | DW_FORM_strx ! | DW_FORM_udata ! => declare Val : constant uint32 := Read_LEB128 (S); pragma Unreferenced (Val); begin return; end; ! when DW_FORM_flag_present | DW_FORM_implicit_const => ! return; ! when DW_FORM_ref_addr ! | DW_FORM_sec_offset ! | DW_FORM_strp ! | DW_FORM_line_strp ! | DW_FORM_strp_sup ! => ! Skip := (if Is64 then 8 else 4); ! when DW_FORM_string => ! while uint8'(Read (S)) /= 0 loop ! null; ! end loop; return; when DW_FORM_indirect => ! raise Dwarf_Error with "DW_FORM_indirect not implemented"; when others => ! raise Dwarf_Error with "DWARF form not implemented"; end case; + Seek (S, Tell (S) + Skip); end Skip_Form; *************** package body System.Dwarf_Lines is *** 981,1000 **** Abbrev_Offset : Offset; Abbrev_Num : uint32) is - Num : uint32; Abbrev : uint32; Tag : uint32; Has_Child : uint8; ! pragma Unreferenced (Abbrev, Tag, Has_Child); begin Seek (C.Abbrev, Abbrev_Offset); ! Num := 1; loop ! exit when Num = Abbrev_Num; - Abbrev := Read_LEB128 (C.Abbrev); Tag := Read_LEB128 (C.Abbrev); Has_Child := Read (C.Abbrev); --- 1206,1226 ---- Abbrev_Offset : Offset; Abbrev_Num : uint32) is Abbrev : uint32; Tag : uint32; Has_Child : uint8; ! pragma Unreferenced (Tag, Has_Child); ! begin Seek (C.Abbrev, Abbrev_Offset); ! -- 7.5.3 Abbreviations Tables loop ! Abbrev := Read_LEB128 (C.Abbrev); ! ! exit when Abbrev = Abbrev_Num; Tag := Read_LEB128 (C.Abbrev); Has_Child := Read (C.Abbrev); *************** package body System.Dwarf_Lines is *** 1002,1013 **** declare Name : constant uint32 := Read_LEB128 (C.Abbrev); Form : constant uint32 := Read_LEB128 (C.Abbrev); begin ! exit when Name = 0 and Form = 0; end; end loop; - - Num := Num + 1; end loop; end Seek_Abbrev; --- 1228,1246 ---- declare Name : constant uint32 := Read_LEB128 (C.Abbrev); Form : constant uint32 := Read_LEB128 (C.Abbrev); + Cst : int32; + pragma Unreferenced (Cst); + begin ! -- DW_FORM_implicit_const takes its value from the table ! ! if Form = DW_FORM_implicit_const then ! Cst := Read_LEB128 (C.Abbrev); ! end if; ! ! exit when Name = 0 and then Form = 0; end; end loop; end loop; end Seek_Abbrev; *************** package body System.Dwarf_Lines is *** 1029,1051 **** Abbrev : uint32; Has_Child : uint8; pragma Unreferenced (Has_Child); begin Line_Offset := 0; Success := False; Seek (C.Info, Info_Offset); Read_Initial_Length (C.Info, Unit_Length, Is64); Version := Read (C.Info); - if Version not in 2 .. 4 then - return; - end if; ! Read_Section_Offset (C.Info, Abbrev_Offset, Is64); ! Addr_Sz := Read (C.Info); ! if Addr_Sz /= (Address'Size / SSU) then return; end if; --- 1262,1301 ---- Abbrev : uint32; Has_Child : uint8; pragma Unreferenced (Has_Child); + Unit_Type : uint8; + pragma Unreferenced (Unit_Type); + begin Line_Offset := 0; Success := False; Seek (C.Info, Info_Offset); + -- 7.5.1.1 Compilation Unit Header + Read_Initial_Length (C.Info, Unit_Length, Is64); Version := Read (C.Info); ! if Version >= 5 then ! Unit_Type := Read (C.Info); ! Addr_Sz := Read (C.Info); ! if Addr_Sz /= (Address'Size / SSU) then ! return; ! end if; ! ! Read_Section_Offset (C.Info, Abbrev_Offset, Is64); ! ! elsif Version >= 2 then ! Read_Section_Offset (C.Info, Abbrev_Offset, Is64); ! ! Addr_Sz := Read (C.Info); ! if Addr_Sz /= (Address'Size / SSU) then ! return; ! end if; ! ! else return; end if; *************** package body System.Dwarf_Lines is *** 1060,1076 **** Seek_Abbrev (C, Abbrev_Offset, Abbrev); - -- First ULEB128 is the abbrev code - - if Read_LEB128 (C.Abbrev) /= Abbrev then - -- Ill formed abbrev table - return; - end if; - -- Then the tag if Read_LEB128 (C.Abbrev) /= uint32'(DW_TAG_Compile_Unit) then - -- Expect compile unit return; end if; --- 1310,1318 ---- *************** package body System.Dwarf_Lines is *** 1104,1111 **** end if; end; end loop; - - return; end Debug_Info_Lookup; ------------------------- --- 1346,1351 ---- *************** package body System.Dwarf_Lines is *** 1121,1126 **** --- 1361,1367 ---- Is64 : Boolean; Version : uint16; Sz : uint8; + begin Success := False; Info_Offset := 0; *************** package body System.Dwarf_Lines is *** 1149,1154 **** --- 1390,1396 ---- end if; -- Handle alignment on twice the address size + declare Cur_Off : constant Offset := Tell (C.Aranges); Align : constant Offset := 2 * Address'Size / SSU; *************** package body System.Dwarf_Lines is *** 1168,1196 **** procedure Read_Aranges_Entry (C : in out Dwarf_Context; ! Start : out Storage_Offset; Len : out Storage_Count) is begin -- Read table if Address'Size = 32 then declare S, L : uint32; begin S := Read (C.Aranges); L := Read (C.Aranges); ! Start := Storage_Offset (S); Len := Storage_Count (L); end; elsif Address'Size = 64 then declare S, L : uint64; begin S := Read (C.Aranges); L := Read (C.Aranges); ! Start := Storage_Offset (S); Len := Storage_Count (L); end; else raise Constraint_Error; end if; --- 1410,1441 ---- procedure Read_Aranges_Entry (C : in out Dwarf_Context; ! Start : out Address; Len : out Storage_Count) is begin -- Read table + if Address'Size = 32 then declare S, L : uint32; begin S := Read (C.Aranges); L := Read (C.Aranges); ! Start := Address (S); Len := Storage_Count (L); end; + elsif Address'Size = 64 then declare S, L : uint64; begin S := Read (C.Aranges); L := Read (C.Aranges); ! Start := Address (S); Len := Storage_Count (L); end; + else raise Constraint_Error; end if; *************** package body System.Dwarf_Lines is *** 1202,1209 **** procedure Enable_Cache (C : in out Dwarf_Context) is Cache : Search_Array_Access; begin ! -- Phase 1: count number of symbols. Phase 2: fill the cache. declare S : Object_Symbol; Val : uint64; --- 1447,1457 ---- procedure Enable_Cache (C : in out Dwarf_Context) is Cache : Search_Array_Access; + begin ! -- Phase 1: count number of symbols. ! -- Phase 2: fill the cache. ! declare S : Object_Symbol; Val : uint64; *************** package body System.Dwarf_Lines is *** 1220,1225 **** --- 1468,1474 ---- while S /= Null_Symbol loop -- Discard symbols of length 0 or located outside of the -- execution code section outer boundaries. + Sz := uint32 (Size (S)); Val := Value (S); *************** package body System.Dwarf_Lines is *** 1227,1237 **** and then Val >= Xcode_Low and then Val <= Xcode_High then - Addr := uint32 (Val - Xcode_Low); -- Try to filter symbols at the same address. This is a best -- effort as they might not be consecutive. if Addr /= Prev_Addr then Nbr_Symbols := Nbr_Symbols + 1; Prev_Addr := Addr; --- 1476,1486 ---- and then Val >= Xcode_Low and then Val <= Xcode_High then Addr := uint32 (Val - Xcode_Low); -- Try to filter symbols at the same address. This is a best -- effort as they might not be consecutive. + if Addr /= Prev_Addr then Nbr_Symbols := Nbr_Symbols + 1; Prev_Addr := Addr; *************** package body System.Dwarf_Lines is *** 1251,1256 **** --- 1500,1506 ---- if Phase = 1 then -- Allocate the cache + Cache := new Search_Array (1 .. Nbr_Symbols); C.Cache := Cache; end if; *************** package body System.Dwarf_Lines is *** 1258,1279 **** pragma Assert (Nbr_Symbols = C.Cache'Last); end; ! -- Sort the cache. Sort_Search_Array (C.Cache.all); -- Set line offsets if not C.Has_Debug then return; end if; declare Info_Offset : Offset; Line_Offset : Offset; Success : Boolean; ! Ar_Start : Storage_Offset; Ar_Len : Storage_Count; Start, Len : uint32; First, Last : Natural; Mid : Natural; begin Seek (C.Aranges, 0); --- 1508,1533 ---- pragma Assert (Nbr_Symbols = C.Cache'Last); end; ! -- Sort the cache ! Sort_Search_Array (C.Cache.all); -- Set line offsets + if not C.Has_Debug then return; end if; + declare Info_Offset : Offset; Line_Offset : Offset; Success : Boolean; ! Ar_Start : Address; Ar_Len : Storage_Count; Start, Len : uint32; First, Last : Natural; Mid : Natural; + begin Seek (C.Aranges, 0); *************** package body System.Dwarf_Lines is *** 1285,1298 **** exit when not Success; -- Read table loop Read_Aranges_Entry (C, Ar_Start, Ar_Len); ! exit when Ar_Start = 0 and Ar_Len = 0; Len := uint32 (Ar_Len); Start := uint32 (Ar_Start - C.Low); -- Search START in the array First := Cache'First; Last := Cache'Last; Mid := First; -- In case of array with one element --- 1539,1554 ---- exit when not Success; -- Read table + loop Read_Aranges_Entry (C, Ar_Start, Ar_Len); ! exit when Ar_Start = Null_Address and Ar_Len = 0; Len := uint32 (Ar_Len); Start := uint32 (Ar_Start - C.Low); -- Search START in the array + First := Cache'First; Last := Cache'Last; Mid := First; -- In case of array with one element *************** package body System.Dwarf_Lines is *** 1307,1315 **** end if; end loop; ! -- Fill info. -- There can be overlapping symbols while Mid > Cache'First and then Cache (Mid - 1).First <= Start and then Cache (Mid - 1).First + Cache (Mid - 1).Size > Start --- 1563,1572 ---- end if; end loop; ! -- Fill info -- There can be overlapping symbols + while Mid > Cache'First and then Cache (Mid - 1).First <= Start and then Cache (Mid - 1).First + Cache (Mid - 1).Size > Start *************** package body System.Dwarf_Lines is *** 1321,1329 **** --- 1578,1588 ---- and then Start + Len > Cache (Mid).First then -- MID is within the bounds + Cache (Mid).Line := uint32 (Line_Offset); elsif Start + Len <= Cache (Mid).First then -- Over + exit; end if; Mid := Mid + 1; *************** package body System.Dwarf_Lines is *** 1339,1345 **** procedure Symbolic_Address (C : in out Dwarf_Context; ! Addr : Storage_Offset; Dir_Name : out Str_Access; File_Name : out Str_Access; Subprg_Name : out String_Ptr_Len; --- 1598,1604 ---- procedure Symbolic_Address (C : in out Dwarf_Context; ! Addr : Address; Dir_Name : out Str_Access; File_Name : out Str_Access; Subprg_Name : out String_Ptr_Len; *************** package body System.Dwarf_Lines is *** 1350,1356 **** procedure Set_Result (Match : Line_Info_Registers) is Dir_Idx : uint32; ! J : uint32; Mod_Time : uint32; pragma Unreferenced (Mod_Time); --- 1609,1615 ---- procedure Set_Result (Match : Line_Info_Registers) is Dir_Idx : uint32; ! Off : Offset; Mod_Time : uint32; pragma Unreferenced (Mod_Time); *************** package body System.Dwarf_Lines is *** 1358,1403 **** Length : uint32; pragma Unreferenced (Length); begin ! Seek (C.Lines, C.Prologue.File_Names_Offset); ! -- Find the entry ! J := 0; ! loop ! J := J + 1; ! File_Name := Read_C_String (C.Lines); ! if File_Name (File_Name'First) = ASCII.NUL then ! -- End of file list, so incorrect entry ! return; ! end if; ! Dir_Idx := Read_LEB128 (C.Lines); ! Mod_Time := Read_LEB128 (C.Lines); ! Length := Read_LEB128 (C.Lines); ! exit when J = Match.File; ! end loop; ! if Dir_Idx = 0 then ! -- No directory ! Dir_Name := null; else ! Seek (C.Lines, C.Prologue.Includes_Offset); ! J := 0; ! loop ! J := J + 1; ! Dir_Name := Read_C_String (C.Lines); ! if Dir_Name (Dir_Name'First) = ASCII.NUL then ! -- End of directory list, so ill-formed table ! return; ! end if; ! exit when J = Dir_Idx; end loop; end if; --- 1617,1744 ---- Length : uint32; pragma Unreferenced (Length); + Directory_Entry_Format : Entry_Format_Array + renames C.Header.Directory_Entry_Format; + + File_Entry_Format : Entry_Format_Array + renames C.Header.File_Name_Entry_Format; + begin ! Seek (C.Lines, C.Header.File_Names); ! Dir_Idx := 0; ! -- Find the entry. Note that, up to DWARF 4, the index is 1-based ! -- whereas, in DWARF 5, it is 0-based. ! if C.Header.Version <= 4 then ! for J in 1 .. Match.File loop ! File_Name := Read_C_String (C.Lines); ! if File_Name (File_Name'First) = ASCII.NUL then ! -- End of file list, so incorrect entry ! return; ! end if; ! Dir_Idx := Read_LEB128 (C.Lines); ! Mod_Time := Read_LEB128 (C.Lines); ! Length := Read_LEB128 (C.Lines); ! end loop; ! if Dir_Idx = 0 then ! -- No directory ! ! Dir_Name := null; ! ! else ! Seek (C.Lines, C.Header.Directories); ! ! for J in 1 .. Dir_Idx loop ! Dir_Name := Read_C_String (C.Lines); ! ! if Dir_Name (Dir_Name'First) = ASCII.NUL then ! -- End of directory list, so ill-formed table ! ! return; ! end if; ! end loop; ! end if; ! ! -- DWARF 5 else ! for J in 0 .. Match.File loop ! for K in 1 .. Integer (C.Header.File_Name_Entry_Format_Count) ! loop ! if File_Entry_Format (K).C_Type = DW_LNCT_path then ! case File_Entry_Format (K).Form is ! when DW_FORM_string => ! File_Name := Read_C_String (C.Lines); ! when DW_FORM_line_strp => ! Read_Section_Offset (C.Lines, Off, C.Header.Is64); ! if J = Match.File then ! Seek (C.Line_Str, Off); ! File_Name := Read_C_String (C.Line_Str); ! end if; ! when others => ! raise Dwarf_Error with "DWARF form not implemented"; ! end case; ! elsif File_Entry_Format (K).C_Type = DW_LNCT_directory_index ! then ! case File_Entry_Format (K).Form is ! when DW_FORM_data1 => ! Dir_Idx := uint32 (uint8'(Read (C.Lines))); ! ! when DW_FORM_data2 => ! Dir_Idx := uint32 (uint16'(Read (C.Lines))); ! ! when DW_FORM_udata => ! Dir_Idx := Read_LEB128 (C.Lines); ! ! when others => ! raise Dwarf_Error with ! "invalid DWARF form for DW_LNCT_directory_index"; ! end case; ! ! else ! Skip_Form (C.Lines, ! File_Entry_Format (K).Form, ! C.Header.Is64, ! C.Header.Address_Size); ! end if; ! end loop; ! end loop; ! ! Seek (C.Lines, C.Header.Directories); + for J in 0 .. Dir_Idx loop + for K in 1 .. Integer (C.Header.Directory_Entry_Format_Count) + loop + if Directory_Entry_Format (K).C_Type = DW_LNCT_path then + case Directory_Entry_Format (K).Form is + when DW_FORM_string => + Dir_Name := Read_C_String (C.Lines); + + when DW_FORM_line_strp => + Read_Section_Offset (C.Lines, Off, C.Header.Is64); + if J = Dir_Idx then + Seek (C.Line_Str, Off); + Dir_Name := Read_C_String (C.Line_Str); + end if; + + when others => + raise Dwarf_Error with "DWARF form not implemented"; + end case; + + else + Skip_Form (C.Lines, + Directory_Entry_Format (K).Form, + C.Header.Is64, + C.Header.Address_Size); + end if; + end loop; end loop; end if; *************** package body System.Dwarf_Lines is *** 1414,1426 **** begin -- Initialize result Dir_Name := null; File_Name := null; Subprg_Name := (null, 0); Line_Num := 0; if C.Cache /= null then - -- Look in the cache declare Addr_Off : constant uint32 := uint32 (Addr - C.Low); First, Last, Mid : Natural; --- 1755,1769 ---- begin -- Initialize result + Dir_Name := null; File_Name := null; Subprg_Name := (null, 0); Line_Num := 0; + -- Look up the symbol in the cache + if C.Cache /= null then declare Addr_Off : constant uint32 := uint32 (Addr - C.Low); First, Last, Mid : Natural; *************** package body System.Dwarf_Lines is *** 1447,1458 **** S := Read_Symbol (C.Obj.all, Offset (C.Cache (Mid).Sym)); Subprg_Name := Object_Reader.Name (C.Obj.all, S); else - -- Not found return; end if; end; else - -- Search symbol S := First_Symbol (C.Obj.all); while S /= Null_Symbol loop if Spans (S, Addr_Int) then --- 1790,1802 ---- S := Read_Symbol (C.Obj.all, Offset (C.Cache (Mid).Sym)); Subprg_Name := Object_Reader.Name (C.Obj.all, S); else return; end if; end; + + -- Search for the symbol in the binary + else S := First_Symbol (C.Obj.all); while S /= Null_Symbol loop if Spans (S, Addr_Int) then *************** package body System.Dwarf_Lines is *** 1479,1493 **** end if; Seek (C.Lines, Line_Offset); ! C.Next_Prologue := 0; Initialize_State_Machine (C); ! Parse_Prologue (C); Previous_Row.Line := 0; -- Advance to the first entry loop ! Read_And_Execute_Isn (C, Done); if C.Registers.Is_Row then Previous_Row := C.Registers; --- 1823,1837 ---- end if; Seek (C.Lines, Line_Offset); ! C.Next_Header := 0; Initialize_State_Machine (C); ! Parse_Header (C); Previous_Row.Line := 0; -- Advance to the first entry loop ! Read_And_Execute_Insn (C, Done); if C.Registers.Is_Row then Previous_Row := C.Registers; *************** package body System.Dwarf_Lines is *** 1499,1506 **** -- Read the rest of the entries ! while Tell (C.Lines) < C.Next_Prologue loop ! Read_And_Execute_Isn (C, Done); if C.Registers.Is_Row then if not Previous_Row.End_Sequence --- 1843,1850 ---- -- Read the rest of the entries ! while Tell (C.Lines) < C.Next_Header loop ! Read_And_Execute_Insn (C, Done); if C.Registers.Is_Row then if not Previous_Row.End_Sequence *************** package body System.Dwarf_Lines is *** 1533,1538 **** --- 1877,1883 ---- return I - Str'First; end if; end loop; + return Str'Last; end String_Length; *************** package body System.Dwarf_Lines is *** 1542,1548 **** procedure Symbolic_Traceback (Cin : Dwarf_Context; ! Traceback : AET.Tracebacks_Array; Suppress_Hex : Boolean; Symbol_Found : out Boolean; Res : in out System.Bounded_Strings.Bounded_String) --- 1887,1893 ---- procedure Symbolic_Traceback (Cin : Dwarf_Context; ! Traceback : STE.Tracebacks_Array; Suppress_Hex : Boolean; Symbol_Found : out Boolean; Res : in out System.Bounded_Strings.Bounded_String) *************** package body System.Dwarf_Lines is *** 1551,1563 **** C : Dwarf_Context := Cin; Addr_In_Traceback : Address; - Offset_To_Lookup : Storage_Offset; Dir_Name : Str_Access; File_Name : Str_Access; Subprg_Name : String_Ptr_Len; Line_Num : Natural; Off : Natural; begin if not C.Has_Debug then Symbol_Found := False; --- 1896,1908 ---- C : Dwarf_Context := Cin; Addr_In_Traceback : Address; Dir_Name : Str_Access; File_Name : Str_Access; Subprg_Name : String_Ptr_Len; Line_Num : Natural; Off : Natural; + begin if not C.Has_Debug then Symbol_Found := False; *************** package body System.Dwarf_Lines is *** 1570,1582 **** -- If the buffer is full, no need to do any useless work exit when Is_Full (Res); ! Addr_In_Traceback := PC_For (Traceback (J)); ! ! Offset_To_Lookup := Addr_In_Traceback - C.Load_Address; Symbolic_Address (C, ! Offset_To_Lookup, Dir_Name, File_Name, Subprg_Name, --- 1915,1925 ---- -- If the buffer is full, no need to do any useless work exit when Is_Full (Res); ! Addr_In_Traceback := STE.PC_For (Traceback (J)); Symbolic_Address (C, ! Addr_In_Traceback - Get_Load_Displacement (C), Dir_Name, File_Name, Subprg_Name, *************** package body System.Dwarf_Lines is *** 1657,1660 **** --- 2000,2004 ---- Append (Res, ASCII.LF); end loop; end Symbolic_Traceback; + end System.Dwarf_Lines; diff -Nrcpad gcc-11.2.0/gcc/ada/libgnat/s-dwalin.ads gcc-11.3.0/gcc/ada/libgnat/s-dwalin.ads *** gcc-11.2.0/gcc/ada/libgnat/s-dwalin.ads Wed Jul 28 06:55:06 2021 --- gcc-11.3.0/gcc/ada/libgnat/s-dwalin.ads Thu Apr 21 07:58:52 2022 *************** *** 30,80 **** ------------------------------------------------------------------------------ -- This package provides routines to read DWARF line number information from ! -- a generic object file with as little overhead as possible. This allows ! -- conversions from PC addresses to human readable source locations. -- ! -- Objects must be built with debugging information, however only the ! -- .debug_line section of the object file is referenced. In cases where object ! -- size is a consideration it's possible to strip all other .debug sections, ! -- which will decrease the size of the object significantly. ! ! with Ada.Exceptions.Traceback; - with System.Object_Reader; - with System.Storage_Elements; with System.Bounded_Strings; package System.Dwarf_Lines is ! package AET renames Ada.Exceptions.Traceback; package SOR renames System.Object_Reader; type Dwarf_Context (In_Exception : Boolean := False) is private; ! -- Type encapsulation the state of the Dwarf reader. When In_Exception ! -- is True we are parsing as part of a exception handler decorator, we do ! -- not want an exception to be raised, the parsing is done safely skipping ! -- DWARF file that cannot be read or with stripped debug section for ! -- example. procedure Open (File_Name : String; C : out Dwarf_Context; Success : out Boolean); procedure Close (C : in out Dwarf_Context); ! -- Open and close files procedure Set_Load_Address (C : in out Dwarf_Context; Addr : Address); ! -- Set the load address of a file. This is used to rebase PIE (Position ! -- Independant Executable) binaries. function Is_Inside (C : Dwarf_Context; Addr : Address) return Boolean; pragma Inline (Is_Inside); ! -- Return true iff a run-time address Addr is within the module ! function Low_Address (C : Dwarf_Context) ! return System.Address; pragma Inline (Low_Address); ! -- Return the lowest address of C, accounting for the module load address procedure Dump (C : in out Dwarf_Context); -- Dump each row found in the object's .debug_lines section to standard out --- 30,74 ---- ------------------------------------------------------------------------------ -- This package provides routines to read DWARF line number information from ! -- a binary file with as little overhead as possible. This allows conversions ! -- from PC addresses to human-readable source locations. -- ! -- Files must be compiled with at least minimal debugging information (-g1). with System.Bounded_Strings; + with System.Object_Reader; + with System.Traceback_Entries; package System.Dwarf_Lines is ! package STE renames System.Traceback_Entries; package SOR renames System.Object_Reader; type Dwarf_Context (In_Exception : Boolean := False) is private; ! -- Type encapsulating the state of the DWARF reader. When In_Exception is ! -- True, we are parsing as part of an exception handler decorator so we do ! -- not want another exception to be raised and the parsing is done safely, ! -- skipping binary files that cannot be read or have been stripped from ! -- their debug sections for example. procedure Open (File_Name : String; C : out Dwarf_Context; Success : out Boolean); procedure Close (C : in out Dwarf_Context); ! -- Open and close a file procedure Set_Load_Address (C : in out Dwarf_Context; Addr : Address); ! -- Set the run-time load address of a file. Used to rebase PIE (Position ! -- Independent Executable) binaries. function Is_Inside (C : Dwarf_Context; Addr : Address) return Boolean; pragma Inline (Is_Inside); ! -- Return whether a run-time address Addr lies within the file ! function Low_Address (C : Dwarf_Context) return Address; pragma Inline (Low_Address); ! -- Return the lowest run-time address of the file procedure Dump (C : in out Dwarf_Context); -- Dump each row found in the object's .debug_lines section to standard out *************** package System.Dwarf_Lines is *** 83,93 **** -- Dump the cache (if present) procedure Enable_Cache (C : in out Dwarf_Context); ! -- Read symbols information to speed up Symbolic_Traceback. procedure Symbolic_Traceback (Cin : Dwarf_Context; ! Traceback : AET.Tracebacks_Array; Suppress_Hex : Boolean; Symbol_Found : out Boolean; Res : in out System.Bounded_Strings.Bounded_String); --- 77,87 ---- -- Dump the cache (if present) procedure Enable_Cache (C : in out Dwarf_Context); ! -- Read symbol information to speed up Symbolic_Traceback. procedure Symbolic_Traceback (Cin : Dwarf_Context; ! Traceback : STE.Tracebacks_Array; Suppress_Hex : Boolean; Symbol_Found : out Boolean; Res : in out System.Bounded_Strings.Bounded_String); *************** package System.Dwarf_Lines is *** 102,146 **** private -- The following section numbers reference ! -- "DWARF Debugging Information Format, Version 3" -- published by the Standards Group, http://freestandards.org. -- 6.2.2 State Machine Registers type Line_Info_Registers is record ! Address : SOR.uint64; ! File : SOR.uint32; ! Line : SOR.uint32; ! Column : SOR.uint32; ! Is_Stmt : Boolean; ! Basic_Block : Boolean; ! End_Sequence : Boolean; ! Prologue_End : Boolean; ! Epilogue_Begin : Boolean; ! ISA : SOR.uint32; ! Is_Row : Boolean; end record; ! -- 6.2.4 The Line Number Program Prologue ! MAX_OPCODE_LENGTHS : constant := 256; ! type Opcodes_Lengths_Array is ! array (SOR.uint32 range 1 .. MAX_OPCODE_LENGTHS) of SOR.uint8; ! type Line_Info_Prologue is record ! Unit_Length : SOR.uint32; ! Version : SOR.uint16; ! Prologue_Length : SOR.uint32; ! Min_Isn_Length : SOR.uint8; ! Default_Is_Stmt : SOR.uint8; ! Line_Base : SOR.int8; ! Line_Range : SOR.uint8; ! Opcode_Base : SOR.uint8; ! Opcode_Lengths : Opcodes_Lengths_Array; ! Includes_Offset : SOR.Offset; ! File_Names_Offset : SOR.Offset; end record; type Search_Entry is record --- 96,159 ---- private -- The following section numbers reference ! -- "DWARF Debugging Information Format, Version 5" -- published by the Standards Group, http://freestandards.org. -- 6.2.2 State Machine Registers type Line_Info_Registers is record ! Address : SOR.uint64; ! File : SOR.uint32; ! Line : SOR.uint32; ! Column : SOR.uint32; ! Is_Stmt : Boolean; ! Basic_Block : Boolean; ! End_Sequence : Boolean; ! -- Prologue_End : Boolean; ! -- Epilogue_Begin : Boolean; ! -- ISA : SOR.uint32; ! -- Discriminator : SOR.uint32; -- DWARF 4/5 ! Is_Row : Boolean; -- local end record; ! -- 6.2.4 The Line Number Program Header ! MAX_OPCODE : constant := 256; ! type Opcode_Length_Array is array (1 .. MAX_OPCODE) of SOR.uint8; ! MAX_ENTRY : constant := 5; ! ! type Entry_Format_Pair is record ! C_Type : SOR.uint32; ! Form : SOR.uint32; ! end record; ! ! type Entry_Format_Array is array (1 .. MAX_ENTRY) of Entry_Format_Pair; ! ! type Line_Info_Header is record ! Unit_Length : SOR.Offset; ! Version : SOR.uint16; ! Address_Size : SOR.uint8; -- DWARF 5 ! Segment_Selector_Size : SOR.uint8; -- DWARF 5 ! Header_Length : SOR.uint32; ! Minimum_Insn_Length : SOR.uint8; ! Maximum_Op_Per_Insn : SOR.uint8; -- DWARF 4/5 ! Default_Is_Stmt : SOR.uint8; ! Line_Base : SOR.int8; ! Line_Range : SOR.uint8; ! Opcode_Base : SOR.uint8; ! -- Standard_Opcode_Lengths : Opcode_Length_Array; ! Directory_Entry_Format_Count : SOR.uint8; -- DWARF 5 ! Directory_Entry_Format : Entry_Format_Array; -- DWARF 5 ! Directories_Count : SOR.uint32; -- DWARF 5 ! Directories : SOR.Offset; ! File_Name_Entry_Format_Count : SOR.uint8; -- DWARF 5 ! File_Name_Entry_Format : Entry_Format_Array; -- DWARF 5 ! File_Names_Count : SOR.uint32; -- DWARF 5 ! File_Names : SOR.Offset; ! Is64 : Boolean; -- local end record; type Search_Entry is record *************** private *** 160,172 **** type Search_Array_Access is access Search_Array; type Dwarf_Context (In_Exception : Boolean := False) is record ! Low, High : System.Storage_Elements.Storage_Offset; ! -- Bounds of the module, per the module object file Obj : SOR.Object_File_Access; -- The object file containing dwarf sections ! Load_Address : System.Address := System.Null_Address; -- The address at which the object file was loaded at run time Has_Debug : Boolean; --- 173,185 ---- type Search_Array_Access is access Search_Array; type Dwarf_Context (In_Exception : Boolean := False) is record ! Low, High : Address; ! -- Address bounds for executable code Obj : SOR.Object_File_Access; -- The object file containing dwarf sections ! Load_Address : Address := Null_Address; -- The address at which the object file was loaded at run time Has_Debug : Boolean; *************** private *** 175,189 **** Cache : Search_Array_Access; -- Quick access to symbol and debug info (when present). ! Lines : SOR.Mapped_Stream; ! Aranges : SOR.Mapped_Stream; ! Info : SOR.Mapped_Stream; ! Abbrev : SOR.Mapped_Stream; ! -- Dwarf line, aranges, info and abbrev sections ! Prologue : Line_Info_Prologue; ! Registers : Line_Info_Registers; ! Next_Prologue : SOR.Offset; -- State for lines end record; --- 188,203 ---- Cache : Search_Array_Access; -- Quick access to symbol and debug info (when present). ! Abbrev : SOR.Mapped_Stream; ! Aranges : SOR.Mapped_Stream; ! Info : SOR.Mapped_Stream; ! Lines : SOR.Mapped_Stream; ! Line_Str : SOR.Mapped_Stream; -- DWARF 5 ! -- DWARF sections ! Header : Line_Info_Header; ! Registers : Line_Info_Registers; ! Next_Header : SOR.Offset; -- State for lines end record; diff -Nrcpad gcc-11.2.0/gcc/ada/libgnat/s-objrea.adb gcc-11.3.0/gcc/ada/libgnat/s-objrea.adb *** gcc-11.2.0/gcc/ada/libgnat/s-objrea.adb Wed Jul 28 06:55:06 2021 --- gcc-11.3.0/gcc/ada/libgnat/s-objrea.adb Thu Apr 21 07:58:52 2022 *************** with Interfaces.C; *** 36,41 **** --- 36,42 ---- with System.CRTL; package body System.Object_Reader is + use Interfaces; use Interfaces.C; use System.Mmap; *************** package body System.Object_Reader is *** 219,225 **** Characteristics : uint16; Variant : uint16; end record; - pragma Pack (Header); type Optional_Header_PE32 is record --- 220,225 ---- *************** package body System.Object_Reader is *** 305,311 **** NumberOfLinenumbers : uint16; Characteristics : uint32; end record; - pragma Pack (Section_Header); IMAGE_SCN_CNT_CODE : constant := 16#0020#; --- 305,310 ---- *************** package body System.Object_Reader is *** 318,324 **** StorageClass : uint8; NumberOfAuxSymbols : uint8; end record; - pragma Pack (Symtab_Entry); type Auxent_Section is record --- 317,322 ---- *************** package body System.Object_Reader is *** 434,440 **** s_nlnno : uint16; s_flags : uint32; end record; - pragma Pack (Section_Header); STYP_TEXT : constant := 16#0020#; --- 432,437 ---- *************** package body System.Object_Reader is *** 459,465 **** x_snstab : uint16; end record; for Aux_Entry'Size use 18 * 8; - pragma Pack (Aux_Entry); C_EXT : constant := 2; --- 456,461 ---- *************** package body System.Object_Reader is *** 548,553 **** --- 544,550 ---- Shnum : uint32) return Object_Section is SHdr : constant Section_Header := Read_Section_Header (Obj, Shnum); + begin return (Shnum, Offset (SHdr.Sh_Offset), *************** package body System.Object_Reader is *** 676,681 **** --- 673,679 ---- function Read_Header (F : in out Mapped_Stream) return Header is Hdr : Header; + begin Seek (F, 0); Read_Raw (F, Hdr'Address, uint32 (Hdr'Size / SSU)); *************** package body System.Object_Reader is *** 691,696 **** --- 689,695 ---- Shnum : uint32) return Section_Header is Shdr : Section_Header; + begin Seek (Obj.Sectab_Stream, Offset (Shnum * Section_Header'Size / SSU)); Read_Raw (Obj.Sectab_Stream, Shdr'Address, Section_Header'Size / SSU); *************** package body System.Object_Reader is *** 745,750 **** --- 744,750 ---- Sec : Object_Section) return String is SHdr : Section_Header; + begin SHdr := Read_Section_Header (Obj, Sec.Num); return Offset_To_String (Obj.Secstr_Stream, Offset (SHdr.Sh_Name)); *************** package body System.Object_Reader is *** 857,863 **** ------------------ function First_Symbol ! (Obj : in out PECOFF_Object_File) return Object_Symbol is begin -- Return Null_Symbol in the case that the symbol table is empty --- 857,864 ---- ------------------ function First_Symbol ! (Obj : in out PECOFF_Object_File) return Object_Symbol ! is begin -- Return Null_Symbol in the case that the symbol table is empty *************** package body System.Object_Reader is *** 877,882 **** --- 878,884 ---- Index : uint32) return Object_Section is Sec : constant Section_Header := Read_Section_Header (Obj, Index); + begin -- Use VirtualSize instead of SizeOfRawData. The latter is rounded to -- the page size, so it may add garbage to the content. On the other *************** package body System.Object_Reader is *** 934,939 **** --- 936,942 ---- Hdr_Offset : Offset; Opt_Offset : File_Size; Opt_Stream : Mapped_Stream; + begin Res.MF := F; Res.In_Exception := In_Exception; *************** package body System.Object_Reader is *** 1176,1182 **** function String_Table (Obj : in out PECOFF_Object_File; ! Index : Offset) return String is begin -- An index of zero is used to represent an empty string, as the -- first word of the string table is specified to contain the length --- 1179,1186 ---- function String_Table (Obj : in out PECOFF_Object_File; ! Index : Offset) return String ! is begin -- An index of zero is used to represent an empty string, as the -- first word of the string table is specified to contain the length *************** package body System.Object_Reader is *** 1357,1362 **** --- 1361,1367 ---- is Res : XCOFF32_Object_File (Format => XCOFF32); Strtab_Sz : uint32; + begin Res.Mf := F; Res.In_Exception := In_Exception; *************** package body System.Object_Reader is *** 1397,1402 **** --- 1402,1408 ---- Index : uint32) return Object_Section is Sec : constant Section_Header := Read_Section_Header (Obj, Index); + begin return (Index, Offset (Sec.s_scnptr), uint64 (Sec.s_vaddr), *************** package body System.Object_Reader is *** 1410,1415 **** --- 1416,1422 ---- function Read_Header (F : in out Mapped_Stream) return Header is Hdr : Header; + begin Seek (F, 0); Read_Raw (F, Hdr'Address, uint32 (Hdr'Size / SSU)); *************** package body System.Object_Reader is *** 1424,1430 **** (Obj : in out XCOFF32_Object_File; Index : uint32) return Section_Header is ! Sec : Section_Header; begin -- Seek to the end of the object header --- 1431,1437 ---- (Obj : in out XCOFF32_Object_File; Index : uint32) return Section_Header is ! Sec : Section_Header; begin -- Seek to the end of the object header *************** package body System.Object_Reader is *** 1447,1452 **** --- 1454,1460 ---- Sec : Object_Section) return String is Hdr : Section_Header; + begin Hdr := Read_Section_Header (Obj, Sec.Num); return Trim_Trailing_Nuls (Hdr.s_name); *************** package body System.Object_Reader is *** 1516,1522 **** function Create_Stream (Obj : Object_File; ! Sec : Object_Section) return Mapped_Stream is begin return Create_Stream (Obj.Mf, File_Size (Sec.Off), File_Size (Sec.Size)); end Create_Stream; --- 1524,1531 ---- function Create_Stream (Obj : Object_File; ! Sec : Object_Section) return Mapped_Stream ! is begin return Create_Stream (Obj.Mf, File_Size (Sec.Off), File_Size (Sec.Size)); end Create_Stream; *************** package body System.Object_Reader is *** 1569,1575 **** function Strip_Leading_Char (Obj : in out Object_File; ! Sym : String_Ptr_Len) return Positive is begin if (Obj.Format = PECOFF and then Sym.Ptr (1) = '_') or else --- 1578,1585 ---- function Strip_Leading_Char (Obj : in out Object_File; ! Sym : String_Ptr_Len) return Positive ! is begin if (Obj.Format = PECOFF and then Sym.Ptr (1) = '_') or else *************** package body System.Object_Reader is *** 1601,1606 **** --- 1611,1617 ---- String (Sym.Ptr (1 .. Sym.Len)) & ASCII.NUL; Decoded : char_array (0 .. size_t (Sym.Len) * 2 + 60); Off : Natural; + begin -- In the PECOFF case most but not all symbol table entries have an -- extra leading underscore. In this case we trim it. *************** package body System.Object_Reader is *** 1641,1648 **** function Get_Load_Address (Obj : Object_File) return uint64 is begin ! raise Format_Error with "Get_Load_Address not implemented"; ! return 0; end Get_Load_Address; ----------------- --- 1652,1662 ---- function Get_Load_Address (Obj : Object_File) return uint64 is begin ! case Obj.Format is ! when ELF => return 0; ! when Any_PECOFF => return Obj.ImageBase; ! when XCOFF32 => raise Format_Error; ! end case; end Get_Load_Address; ----------------- *************** package body System.Object_Reader is *** 1651,1657 **** function Get_Section (Obj : in out Object_File; ! Shnum : uint32) return Object_Section is begin case Obj.Format is when ELF32 => return ELF32_Ops.Get_Section (Obj, Shnum); --- 1665,1672 ---- function Get_Section (Obj : in out Object_File; ! Shnum : uint32) return Object_Section ! is begin case Obj.Format is when ELF32 => return ELF32_Ops.Get_Section (Obj, Shnum); *************** package body System.Object_Reader is *** 1688,1696 **** ---------------------- procedure Get_Xcode_Bounds ! (Obj : in out Object_File; ! Low, High : out uint64) is Sec : Object_Section; begin -- First set as an empty range Low := uint64'Last; --- 1703,1713 ---- ---------------------- procedure Get_Xcode_Bounds ! (Obj : in out Object_File; ! Low, High : out uint64) ! is Sec : Object_Section; + begin -- First set as an empty range Low := uint64'Last; *************** package body System.Object_Reader is *** 1717,1723 **** function Name (Obj : in out Object_File; ! Sec : Object_Section) return String is begin case Obj.Format is when ELF32 => return ELF32_Ops.Name (Obj, Sec); --- 1734,1741 ---- function Name (Obj : in out Object_File; ! Sec : Object_Section) return String ! is begin case Obj.Format is when ELF32 => return ELF32_Ops.Name (Obj, Sec); *************** package body System.Object_Reader is *** 1729,1735 **** function Name (Obj : in out Object_File; ! Sym : Object_Symbol) return String_Ptr_Len is begin case Obj.Format is when ELF32 => return ELF32_Ops.Name (Obj, Sym); --- 1747,1754 ---- function Name (Obj : in out Object_File; ! Sym : Object_Symbol) return String_Ptr_Len ! is begin case Obj.Format is when ELF32 => return ELF32_Ops.Name (Obj, Sym); *************** package body System.Object_Reader is *** 1745,1751 **** function Next_Symbol (Obj : in out Object_File; ! Prev : Object_Symbol) return Object_Symbol is begin -- Test whether we've reached the end of the symbol table --- 1764,1771 ---- function Next_Symbol (Obj : in out Object_File; ! Prev : Object_Symbol) return Object_Symbol ! is begin -- Test whether we've reached the end of the symbol table *************** package body System.Object_Reader is *** 1797,1802 **** --- 1817,1823 ---- Off : Offset) return String is Buf : Buffer; + begin Seek (S, Off); Read_C_String (S, Buf); *************** package body System.Object_Reader is *** 1918,1927 **** -- Read -- ---------- ! function Read (S : in out Mapped_Stream) return Mmap.Str_Access ! is function To_Str_Access is new Ada.Unchecked_Conversion (Address, Str_Access); begin return To_Str_Access (Data (S.Region) (Natural (S.Off + 1))'Address); end Read; --- 1939,1948 ---- -- Read -- ---------- ! function Read (S : in out Mapped_Stream) return Mmap.Str_Access is function To_Str_Access is new Ada.Unchecked_Conversion (Address, Str_Access); + begin return To_Str_Access (Data (S.Region) (Natural (S.Off + 1))'Address); end Read; *************** package body System.Object_Reader is *** 1945,1952 **** is function To_Str_Access is new Ada.Unchecked_Conversion (Address, Str_Access); - Sz : constant Offset := Offset (Size); begin -- Check size --- 1966,1973 ---- is function To_Str_Access is new Ada.Unchecked_Conversion (Address, Str_Access); Sz : constant Offset := Offset (Size); + begin -- Check size *************** package body System.Object_Reader is *** 2023,2029 **** ------------------ function Read_Address ! (Obj : Object_File; S : in out Mapped_Stream) return uint64 is Address_32 : uint32; Address_64 : uint64; --- 2044,2051 ---- ------------------ function Read_Address ! (Obj : Object_File; S : in out Mapped_Stream) return uint64 ! is Address_32 : uint32; Address_64 : uint64; *************** package body System.Object_Reader is *** 2142,2148 **** function Read_Symbol (Obj : in out Object_File; ! Off : Offset) return Object_Symbol is begin case Obj.Format is when ELF32 => return ELF32_Ops.Read_Symbol (Obj, Off); --- 2164,2171 ---- function Read_Symbol (Obj : in out Object_File; ! Off : Offset) return Object_Symbol ! is begin case Obj.Format is when ELF32 => return ELF32_Ops.Read_Symbol (Obj, Off); *************** package body System.Object_Reader is *** 2216,2222 **** function To_String_Ptr_Len (Ptr : Mmap.Str_Access; ! Max_Len : Natural := Natural'Last) return String_Ptr_Len is begin for I in 1 .. Max_Len loop if Ptr (I) = ASCII.NUL then --- 2239,2246 ---- function To_String_Ptr_Len (Ptr : Mmap.Str_Access; ! Max_Len : Natural := Natural'Last) return String_Ptr_Len ! is begin for I in 1 .. Max_Len loop if Ptr (I) = ASCII.NUL then diff -Nrcpad gcc-11.2.0/gcc/ada/libgnat/s-objrea.ads gcc-11.3.0/gcc/ada/libgnat/s-objrea.ads *** gcc-11.2.0/gcc/ada/libgnat/s-objrea.ads Wed Jul 28 06:55:06 2021 --- gcc-11.3.0/gcc/ada/libgnat/s-objrea.ads Thu Apr 21 07:58:52 2022 *************** package System.Object_Reader is *** 284,290 **** (Obj : in out Object_File; Low, High : out uint64); -- Return the low and high addresses of the code for the object file. Can ! -- be used to check if an address in within this object file. This -- procedure is not efficient and the result should be saved to avoid -- recomputation. --- 284,290 ---- (Obj : in out Object_File; Low, High : out uint64); -- Return the low and high addresses of the code for the object file. Can ! -- be used to check if an address lies within this object file. This -- procedure is not efficient and the result should be saved to avoid -- recomputation. *************** private *** 378,386 **** subtype Any_PECOFF is Object_Format range PECOFF .. PECOFF_PLUS; type Object_File (Format : Object_Format) is record ! Mf : System.Mmap.Mapped_File := ! System.Mmap.Invalid_Mapped_File; ! Arch : Object_Arch := Unknown; Num_Sections : uint32 := 0; -- Number of sections --- 378,385 ---- subtype Any_PECOFF is Object_Format range PECOFF .. PECOFF_PLUS; type Object_File (Format : Object_Format) is record ! Mf : System.Mmap.Mapped_File := System.Mmap.Invalid_Mapped_File; ! Arch : Object_Arch := Unknown; Num_Sections : uint32 := 0; -- Number of sections *************** private *** 403,408 **** --- 402,408 ---- when ELF => Secstr_Stream : Mapped_Stream; -- Section strings + when Any_PECOFF => ImageBase : uint64; -- ImageBase value from header *************** private *** 410,428 **** GSVA_Sec : uint32 := uint32'Last; GSVA_Addr : uint64; when XCOFF32 => null; end case; end record; ! subtype ELF_Object_File is Object_File; -- with ! -- Predicate => ELF_Object_File.Format in ELF; ! subtype PECOFF_Object_File is Object_File; -- with ! -- Predicate => PECOFF_Object_File.Format in Any_PECOFF; ! subtype XCOFF32_Object_File is Object_File; -- with ! -- Predicate => XCOFF32_Object_File.Format in XCOFF32; ! -- ???Above predicates cause the compiler to crash when instantiating ! -- ELF64_Ops (see package body). type Object_Section is record Num : uint32 := 0; --- 410,429 ---- GSVA_Sec : uint32 := uint32'Last; GSVA_Addr : uint64; + when XCOFF32 => null; end case; end record; ! subtype ELF_Object_File is Object_File ! with Predicate => ELF_Object_File.Format in ELF; ! ! subtype PECOFF_Object_File is Object_File ! with Predicate => PECOFF_Object_File.Format in Any_PECOFF; ! ! subtype XCOFF32_Object_File is Object_File ! with Predicate => XCOFF32_Object_File.Format in XCOFF32; type Object_Section is record Num : uint32 := 0; diff -Nrcpad gcc-11.2.0/gcc/ada/sem_prag.adb gcc-11.3.0/gcc/ada/sem_prag.adb *** gcc-11.2.0/gcc/ada/sem_prag.adb Wed Jul 28 06:55:06 2021 --- gcc-11.3.0/gcc/ada/sem_prag.adb Thu Apr 21 07:58:52 2022 *************** package body Sem_Prag is *** 4088,4095 **** -- than library level instantiations these can appear in contexts which -- would normally be invalid (they only apply to the original template -- and to library level instantiations), and they are simply ignored, ! -- which is implemented by rewriting them as null statements and raising ! -- exception to terminate analysis. procedure Check_Variant (Variant : Node_Id; UU_Typ : Entity_Id); -- Check an Unchecked_Union variant for lack of nested variants and --- 4088,4097 ---- -- than library level instantiations these can appear in contexts which -- would normally be invalid (they only apply to the original template -- and to library level instantiations), and they are simply ignored, ! -- which is implemented by rewriting them as null statements and ! -- optionally raising Pragma_Exit to terminate analysis. An exception ! -- is not always raised to avoid exception propagation during the ! -- bootstrap, so all callers should check whether N has been rewritten. procedure Check_Variant (Variant : Node_Id; UU_Typ : Entity_Id); -- Check an Unchecked_Union variant for lack of nested variants and *************** package body Sem_Prag is *** 6601,6608 **** Sindex := Source_Index (Current_Sem_Unit); if Loc not in Source_First (Sindex) .. Source_Last (Sindex) then Rewrite (N, Make_Null_Statement (Loc)); - raise Pragma_Exit; -- If before first declaration, the pragma applies to the -- enclosing unit, and the name if present must be this name. --- 6603,6616 ---- Sindex := Source_Index (Current_Sem_Unit); if Loc not in Source_First (Sindex) .. Source_Last (Sindex) then + -- We do not want to raise an exception here since this code + -- is part of the bootstrap path where we cannot rely on + -- exception proapgation working. + -- Instead the caller should check for N being rewritten as + -- a null statement. + -- This code triggers when compiling a-except.adb. + Rewrite (N, Make_Null_Statement (Loc)); -- If before first declaration, the pragma applies to the -- enclosing unit, and the name if present must be this name. *************** package body Sem_Prag is *** 12570,12575 **** --- 12578,12590 ---- Check_Ada_83_Warning; Check_Valid_Library_Unit_Pragma; + -- If N was rewritten as a null statement there is nothing more + -- to do. + + if Nkind (N) = N_Null_Statement then + return; + end if; + Lib_Entity := Find_Lib_Unit_Name; -- A pragma that applies to a Ghost entity becomes Ghost for the *************** package body Sem_Prag is *** 15782,15787 **** --- 15797,15809 ---- Check_Ada_83_Warning; Check_Valid_Library_Unit_Pragma; + -- If N was rewritten as a null statement there is nothing more + -- to do. + + if Nkind (N) = N_Null_Statement then + return; + end if; + Cunit_Node := Cunit (Current_Sem_Unit); Cunit_Ent := Cunit_Entity (Current_Sem_Unit); *************** package body Sem_Prag is *** 19486,19491 **** --- 19508,19520 ---- GNAT_Pragma; Check_Valid_Library_Unit_Pragma; + -- If N was rewritten as a null statement there is nothing more + -- to do. + + if Nkind (N) = N_Null_Statement then + return; + end if; + -- Must appear for a spec or generic spec if Nkind (Unit (Cunit (Current_Sem_Unit))) not in *************** package body Sem_Prag is *** 21271,21276 **** --- 21300,21312 ---- Check_Ada_83_Warning; Check_Valid_Library_Unit_Pragma; + -- If N was rewritten as a null statement there is nothing more + -- to do. + + if Nkind (N) = N_Null_Statement then + return; + end if; + Ent := Find_Lib_Unit_Name; -- A pragma that applies to a Ghost entity becomes Ghost for the *************** package body Sem_Prag is *** 21907,21914 **** if Is_Wrapper_Package (Current_Scope) then return; ! else ! Check_Valid_Library_Unit_Pragma; end if; Ent := Find_Lib_Unit_Name; --- 21943,21957 ---- if Is_Wrapper_Package (Current_Scope) then return; ! end if; ! ! Check_Valid_Library_Unit_Pragma; ! ! -- If N was rewritten as a null statement there is nothing more ! -- to do. ! ! if Nkind (N) = N_Null_Statement then ! return; end if; Ent := Find_Lib_Unit_Name; *************** package body Sem_Prag is *** 22447,22452 **** --- 22490,22502 ---- Check_Ada_83_Warning; Check_Valid_Library_Unit_Pragma; + -- If N was rewritten as a null statement there is nothing more + -- to do. + + if Nkind (N) = N_Null_Statement then + return; + end if; + Cunit_Node := Cunit (Current_Sem_Unit); K := Nkind (Unit (Cunit_Node)); Cunit_Ent := Cunit_Entity (Current_Sem_Unit); *************** package body Sem_Prag is *** 22486,22491 **** --- 22536,22548 ---- Check_Ada_83_Warning; Check_Valid_Library_Unit_Pragma; + -- If N was rewritten as a null statement there is nothing more + -- to do. + + if Nkind (N) = N_Null_Statement then + return; + end if; + Cunit_Node := Cunit (Current_Sem_Unit); Cunit_Ent := Cunit_Entity (Current_Sem_Unit); *************** package body Sem_Prag is *** 22682,22687 **** --- 22739,22751 ---- Check_Ada_83_Warning; Check_Valid_Library_Unit_Pragma; + -- If N was rewritten as a null statement there is nothing more + -- to do. + + if Nkind (N) = N_Null_Statement then + return; + end if; + Cunit_Node := Cunit (Current_Sem_Unit); Cunit_Ent := Cunit_Entity (Current_Sem_Unit); diff -Nrcpad gcc-11.2.0/gcc/analyzer/ChangeLog gcc-11.3.0/gcc/analyzer/ChangeLog *** gcc-11.2.0/gcc/analyzer/ChangeLog Wed Jul 28 06:55:27 2021 --- gcc-11.3.0/gcc/analyzer/ChangeLog Thu Apr 21 07:59:16 2022 *************** *** 1,3 **** --- 1,14 ---- + 2022-04-21 Release Manager + + * GCC 11.3.0 released. + + 2021-12-11 David Malcolm + + PR analyzer/101962 + * region-model.cc (region_model::eval_condition_without_cm): + Refactor comparison against zero, adding a check for + POINTER_PLUS_EXPR of non-NULL. + 2021-07-28 Release Manager * GCC 11.2.0 released. diff -Nrcpad gcc-11.2.0/gcc/analyzer/region-model.cc gcc-11.3.0/gcc/analyzer/region-model.cc *** gcc-11.2.0/gcc/analyzer/region-model.cc Wed Jul 28 06:55:06 2021 --- gcc-11.3.0/gcc/analyzer/region-model.cc Thu Apr 21 07:58:52 2022 *************** region_model::eval_condition_without_cm *** 2015,2048 **** if (const constant_svalue *cst_rhs = rhs->dyn_cast_constant_svalue ()) return constant_svalue::eval_condition (cst_lhs, op, cst_rhs); ! /* Handle comparison of a region_svalue against zero. */ ! ! if (const region_svalue *ptr = lhs->dyn_cast_region_svalue ()) ! if (const constant_svalue *cst_rhs = rhs->dyn_cast_constant_svalue ()) ! if (zerop (cst_rhs->get_constant ())) ! { ! /* A region_svalue is a non-NULL pointer, except in certain ! special cases (see the comment for region::non_null_p. */ ! const region *pointee = ptr->get_pointee (); ! if (pointee->non_null_p ()) ! { ! switch (op) ! { ! default: ! gcc_unreachable (); ! case EQ_EXPR: ! case GE_EXPR: ! case LE_EXPR: ! return tristate::TS_FALSE; ! case NE_EXPR: ! case GT_EXPR: ! case LT_EXPR: ! return tristate::TS_TRUE; ! } ! } ! } /* Handle rejection of equality for comparisons of the initial values of "external" values (such as params) with the address of locals. */ --- 2015,2065 ---- if (const constant_svalue *cst_rhs = rhs->dyn_cast_constant_svalue ()) return constant_svalue::eval_condition (cst_lhs, op, cst_rhs); ! /* Handle comparison against zero. */ ! if (const constant_svalue *cst_rhs = rhs->dyn_cast_constant_svalue ()) ! if (zerop (cst_rhs->get_constant ())) ! { ! if (const region_svalue *ptr = lhs->dyn_cast_region_svalue ()) ! { ! /* A region_svalue is a non-NULL pointer, except in certain ! special cases (see the comment for region::non_null_p). */ ! const region *pointee = ptr->get_pointee (); ! if (pointee->non_null_p ()) ! { ! switch (op) ! { ! default: ! gcc_unreachable (); ! case EQ_EXPR: ! case GE_EXPR: ! case LE_EXPR: ! return tristate::TS_FALSE; ! case NE_EXPR: ! case GT_EXPR: ! case LT_EXPR: ! return tristate::TS_TRUE; ! } ! } ! } ! else if (const binop_svalue *binop = lhs->dyn_cast_binop_svalue ()) ! { ! /* Treat offsets from a non-NULL pointer as being non-NULL. This ! isn't strictly true, in that eventually ptr++ will wrap ! around and be NULL, but it won't occur in practise and thus ! can be used to suppress effectively false positives that we ! shouldn't warn for. */ ! if (binop->get_op () == POINTER_PLUS_EXPR) ! { ! tristate lhs_ts ! = eval_condition_without_cm (binop->get_arg0 (), ! op, rhs); ! if (lhs_ts.is_known ()) ! return lhs_ts; ! } ! } ! } /* Handle rejection of equality for comparisons of the initial values of "external" values (such as params) with the address of locals. */ diff -Nrcpad gcc-11.2.0/gcc/asan.c gcc-11.3.0/gcc/asan.c *** gcc-11.2.0/gcc/asan.c Wed Jul 28 06:55:06 2021 --- gcc-11.3.0/gcc/asan.c Thu Apr 21 07:58:52 2022 *************** along with GCC; see the file COPYING3. *** 63,68 **** --- 63,69 ---- #include "fnmatch.h" #include "tree-inline.h" #include "tree-ssa.h" + #include "tree-eh.h" /* AddressSanitizer finds out-of-bounds and use-after-free bugs with <2x slowdown on average. *************** handle_builtin_alloca (gcall *call, gimp *** 726,739 **** gassign *g; gcall *gg; tree callee = gimple_call_fndecl (call); tree old_size = gimple_call_arg (call, 0); ! tree ptr_type = gimple_call_lhs (call) ? TREE_TYPE (gimple_call_lhs (call)) ! : ptr_type_node; tree partial_size = NULL_TREE; unsigned int align = DECL_FUNCTION_CODE (callee) == BUILT_IN_ALLOCA ? 0 : tree_to_uhwi (gimple_call_arg (call, 1)); if (hwasan_sanitize_allocas_p ()) { gimple_seq stmts = NULL; --- 727,750 ---- gassign *g; gcall *gg; tree callee = gimple_call_fndecl (call); + tree lhs = gimple_call_lhs (call); tree old_size = gimple_call_arg (call, 0); ! tree ptr_type = lhs ? TREE_TYPE (lhs) : ptr_type_node; tree partial_size = NULL_TREE; unsigned int align = DECL_FUNCTION_CODE (callee) == BUILT_IN_ALLOCA ? 0 : tree_to_uhwi (gimple_call_arg (call, 1)); + bool throws = false; + edge e = NULL; + if (stmt_can_throw_internal (cfun, call)) + { + if (!lhs) + return; + throws = true; + e = find_fallthru_edge (gsi_bb (*iter)->succs); + } + if (hwasan_sanitize_allocas_p ()) { gimple_seq stmts = NULL; *************** handle_builtin_alloca (gcall *call, gimp *** 852,880 **** build_int_cst (size_type_node, align)); tree new_alloca_with_rz = make_ssa_name (ptr_type, gg); gimple_call_set_lhs (gg, new_alloca_with_rz); ! gsi_insert_before (iter, gg, GSI_SAME_STMT); /* new_alloca = new_alloca_with_rz + align. */ g = gimple_build_assign (make_ssa_name (ptr_type), POINTER_PLUS_EXPR, new_alloca_with_rz, build_int_cst (size_type_node, align / BITS_PER_UNIT)); ! gsi_insert_before (iter, g, GSI_SAME_STMT); tree new_alloca = gimple_assign_lhs (g); /* Poison newly created alloca redzones: __asan_alloca_poison (new_alloca, old_size). */ fn = builtin_decl_implicit (BUILT_IN_ASAN_ALLOCA_POISON); gg = gimple_build_call (fn, 2, new_alloca, old_size); ! gsi_insert_before (iter, gg, GSI_SAME_STMT); /* Save new_alloca_with_rz value into last_alloca to use it during allocas unpoisoning. */ g = gimple_build_assign (last_alloca, new_alloca_with_rz); ! gsi_insert_before (iter, g, GSI_SAME_STMT); /* Finally, replace old alloca ptr with NEW_ALLOCA. */ ! replace_call_with_value (iter, new_alloca); } /* Return the memory references contained in a gimple statement --- 863,916 ---- build_int_cst (size_type_node, align)); tree new_alloca_with_rz = make_ssa_name (ptr_type, gg); gimple_call_set_lhs (gg, new_alloca_with_rz); ! if (throws) ! { ! gimple_call_set_lhs (call, NULL); ! gsi_replace (iter, gg, true); ! } ! else ! gsi_insert_before (iter, gg, GSI_SAME_STMT); /* new_alloca = new_alloca_with_rz + align. */ g = gimple_build_assign (make_ssa_name (ptr_type), POINTER_PLUS_EXPR, new_alloca_with_rz, build_int_cst (size_type_node, align / BITS_PER_UNIT)); ! gimple_stmt_iterator gsi = gsi_none (); ! if (throws) ! { ! gsi_insert_on_edge_immediate (e, g); ! gsi = gsi_for_stmt (g); ! } ! else ! gsi_insert_before (iter, g, GSI_SAME_STMT); tree new_alloca = gimple_assign_lhs (g); /* Poison newly created alloca redzones: __asan_alloca_poison (new_alloca, old_size). */ fn = builtin_decl_implicit (BUILT_IN_ASAN_ALLOCA_POISON); gg = gimple_build_call (fn, 2, new_alloca, old_size); ! if (throws) ! gsi_insert_after (&gsi, gg, GSI_NEW_STMT); ! else ! gsi_insert_before (iter, gg, GSI_SAME_STMT); /* Save new_alloca_with_rz value into last_alloca to use it during allocas unpoisoning. */ g = gimple_build_assign (last_alloca, new_alloca_with_rz); ! if (throws) ! gsi_insert_after (&gsi, g, GSI_NEW_STMT); ! else ! gsi_insert_before (iter, g, GSI_SAME_STMT); /* Finally, replace old alloca ptr with NEW_ALLOCA. */ ! if (throws) ! { ! g = gimple_build_assign (lhs, new_alloca); ! gsi_insert_after (&gsi, g, GSI_NEW_STMT); ! } ! else ! replace_call_with_value (iter, new_alloca); } /* Return the memory references contained in a gimple statement *************** instrument_derefs (gimple_stmt_iterator *** 2652,2664 **** return; poly_int64 decl_size; ! if (VAR_P (inner) && offset == NULL_TREE && DECL_SIZE (inner) && poly_int_tree_p (DECL_SIZE (inner), &decl_size) && known_subrange_p (bitpos, bitsize, 0, decl_size)) { ! if (DECL_THREAD_LOCAL_P (inner)) return; /* If we're not sanitizing globals and we can tell statically that this access is inside a global variable, then there's no point adding --- 2688,2700 ---- return; poly_int64 decl_size; ! if ((VAR_P (inner) || TREE_CODE (inner) == RESULT_DECL) && offset == NULL_TREE && DECL_SIZE (inner) && poly_int_tree_p (DECL_SIZE (inner), &decl_size) && known_subrange_p (bitpos, bitsize, 0, decl_size)) { ! if (VAR_P (inner) && DECL_THREAD_LOCAL_P (inner)) return; /* If we're not sanitizing globals and we can tell statically that this access is inside a global variable, then there's no point adding *************** instrument_derefs (gimple_stmt_iterator *** 2688,2693 **** --- 2724,2734 ---- } } + if (DECL_P (inner) + && decl_function_context (inner) == current_function_decl + && !TREE_ADDRESSABLE (inner)) + mark_addressable (inner); + base = build_fold_addr_expr (t); if (!has_mem_ref_been_instrumented (base, size_in_bytes)) { diff -Nrcpad gcc-11.2.0/gcc/attribs.c gcc-11.3.0/gcc/attribs.c *** gcc-11.2.0/gcc/attribs.c Wed Jul 28 06:55:06 2021 --- gcc-11.3.0/gcc/attribs.c Thu Apr 21 07:58:52 2022 *************** decl_attributes (tree *node, tree attrib *** 520,533 **** if (TREE_CODE (*node) == FUNCTION_DECL && attributes && lookup_attribute ("naked", attributes) != NULL ! && lookup_attribute_spec (get_identifier ("naked"))) ! { ! if (lookup_attribute ("noinline", attributes) == NULL) ! attributes = tree_cons (get_identifier ("noinline"), NULL, attributes); ! ! if (lookup_attribute ("noclone", attributes) == NULL) ! attributes = tree_cons (get_identifier ("noclone"), NULL, attributes); ! } /* A "noipa" function attribute implies "noinline", "noclone" and "no_icf" for those targets that support it. */ --- 520,528 ---- if (TREE_CODE (*node) == FUNCTION_DECL && attributes && lookup_attribute ("naked", attributes) != NULL ! && lookup_attribute_spec (get_identifier ("naked")) ! && lookup_attribute ("noipa", attributes) == NULL) ! attributes = tree_cons (get_identifier ("noipa"), NULL, attributes); /* A "noipa" function attribute implies "noinline", "noclone" and "no_icf" for those targets that support it. */ diff -Nrcpad gcc-11.2.0/gcc/brig/ChangeLog gcc-11.3.0/gcc/brig/ChangeLog *** gcc-11.2.0/gcc/brig/ChangeLog Wed Jul 28 06:55:27 2021 --- gcc-11.3.0/gcc/brig/ChangeLog Thu Apr 21 07:59:16 2022 *************** *** 1,3 **** --- 1,7 ---- + 2022-04-21 Release Manager + + * GCC 11.3.0 released. + 2021-07-28 Release Manager * GCC 11.2.0 released. diff -Nrcpad gcc-11.2.0/gcc/builtins.c gcc-11.3.0/gcc/builtins.c *** gcc-11.2.0/gcc/builtins.c Wed Jul 28 06:55:06 2021 --- gcc-11.3.0/gcc/builtins.c Thu Apr 21 07:58:52 2022 *************** expand_builtin_int_roundingfn_2 (tree ex *** 3633,3648 **** BUILT_IN_IROUND and if __builtin_iround is called directly, emit a call to lround in the hope that the target provides at least some C99 functions. This should result in the best user experience for ! not full C99 targets. */ ! tree fallback_fndecl = mathfn_built_in_1 ! (TREE_TYPE (arg), as_combined_fn (fallback_fn), 0); ! ! exp = build_call_nofold_loc (EXPR_LOCATION (exp), ! fallback_fndecl, 1, arg); ! target = expand_call (exp, NULL_RTX, target == const0_rtx); ! target = maybe_emit_group_store (target, TREE_TYPE (exp)); ! return convert_to_mode (mode, target, 0); } return expand_call (exp, target, target == const0_rtx); --- 3633,3660 ---- BUILT_IN_IROUND and if __builtin_iround is called directly, emit a call to lround in the hope that the target provides at least some C99 functions. This should result in the best user experience for ! not full C99 targets. ! As scalar float conversions with same mode are useless in GIMPLE, ! we can end up e.g. with _Float32 argument passed to float builtin, ! try to get the type from the builtin prototype first. */ ! tree fallback_fndecl = NULL_TREE; ! if (tree argtypes = TYPE_ARG_TYPES (TREE_TYPE (fndecl))) ! fallback_fndecl ! = mathfn_built_in_1 (TREE_VALUE (argtypes), ! as_combined_fn (fallback_fn), 0); ! if (fallback_fndecl == NULL_TREE) ! fallback_fndecl ! = mathfn_built_in_1 (TREE_TYPE (arg), ! as_combined_fn (fallback_fn), 0); ! if (fallback_fndecl) ! { ! exp = build_call_nofold_loc (EXPR_LOCATION (exp), ! fallback_fndecl, 1, arg); ! target = expand_call (exp, NULL_RTX, target == const0_rtx); ! target = maybe_emit_group_store (target, TREE_TYPE (exp)); ! return convert_to_mode (mode, target, 0); ! } } return expand_call (exp, target, target == const0_rtx); *************** compute_objsize_r (tree ptr, int ostype, *** 5605,5615 **** if (code == INTEGER_CST) { ! /* Pointer constants other than null are most likely the result ! of erroneous null pointer addition/subtraction. Set size to ! zero. For null pointers, set size to the maximum for now ! since those may be the result of jump threading. */ ! if (integer_zerop (ptr)) pref->set_max_size_range (); else pref->sizrng[0] = pref->sizrng[1] = 0; --- 5617,5630 ---- if (code == INTEGER_CST) { ! /* Pointer constants other than null smaller than param_min_pagesize ! might be the result of erroneous null pointer addition/subtraction. ! Unless zero is a valid address set size to zero. For null pointers, ! set size to the maximum for now since those may be the result of ! jump threading. Similarly, for values >= param_min_pagesize in ! order to support (type *) 0x7cdeab00. */ ! if (integer_zerop (ptr) ! || wi::to_widest (ptr) >= param_min_pagesize) pref->set_max_size_range (); else pref->sizrng[0] = pref->sizrng[1] = 0; *************** default_emit_call_builtin___clear_cache *** 7878,7889 **** void maybe_emit_call_builtin___clear_cache (rtx begin, rtx end) { ! if ((GET_MODE (begin) != ptr_mode && GET_MODE (begin) != Pmode) ! || (GET_MODE (end) != ptr_mode && GET_MODE (end) != Pmode)) ! { ! error ("both arguments to %<__builtin___clear_cache%> must be pointers"); ! return; ! } if (targetm.have_clear_cache ()) { --- 7893,7902 ---- void maybe_emit_call_builtin___clear_cache (rtx begin, rtx end) { ! gcc_assert ((GET_MODE (begin) == ptr_mode || GET_MODE (begin) == Pmode ! || CONST_INT_P (begin)) ! && (GET_MODE (end) == ptr_mode || GET_MODE (end) == Pmode ! || CONST_INT_P (end))); if (targetm.have_clear_cache ()) { diff -Nrcpad gcc-11.2.0/gcc/c/ChangeLog gcc-11.3.0/gcc/c/ChangeLog *** gcc-11.2.0/gcc/c/ChangeLog Wed Jul 28 06:55:27 2021 --- gcc-11.3.0/gcc/c/ChangeLog Thu Apr 21 07:59:16 2022 *************** *** 1,3 **** --- 1,54 ---- + 2022-04-21 Release Manager + + * GCC 11.3.0 released. + + 2022-03-29 Jakub Jelinek + + Backported from master: + 2022-03-09 Jakub Jelinek + + PR c/104711 + * c-fold.c (c_fully_fold_internal): Don't emit + -Wshift-negative-value warning if TYPE_OVERFLOW_WRAPS. + * c-typeck.c (build_binary_op): Likewise. + + 2022-03-29 Marek Polacek + + Backported from master: + 2022-03-22 Marek Polacek + + PR c/82283 + PR c/84685 + * c-typeck.c (struct initializer_stack): Add 'designated' member. + (start_init): Set it. + (finish_init): Restore constructor_designated. + (push_init_level): Set constructor_designated to the value of + constructor_designated in the upper constructor_stack. + + 2022-01-24 Jakub Jelinek + + Backported from master: + 2022-01-01 Jakub Jelinek + + PR objc/103639 + * c-typeck.c (c_finish_bc_stmt): For break inside of switch inside of + ObjC foreach, emit normal BREAK_STMT rather than goto to label. + + 2022-01-24 Jakub Jelinek + + Backported from master: + 2021-12-14 Jakub Jelinek + + PR c/103587 + * c-parser.c (c_parser_balanced_token_sequence): For CPP_PRAGMA, + consume the pragma and silently skip to the pragma eol. + + 2021-12-16 Martin Sebor + + PR c/101289 + PR c/97548 + * c-decl.c (get_parm_array_spec): Strip nops. + 2021-07-28 Release Manager * GCC 11.2.0 released. diff -Nrcpad gcc-11.2.0/gcc/c/c-decl.c gcc-11.3.0/gcc/c/c-decl.c *** gcc-11.2.0/gcc/c/c-decl.c Wed Jul 28 06:55:06 2021 --- gcc-11.3.0/gcc/c/c-decl.c Thu Apr 21 07:58:52 2022 *************** get_parm_array_spec (const struct c_parm *** 5862,5867 **** --- 5862,5868 ---- /* Each variable VLA bound is represented by a dollar sign. */ spec += "$"; + STRIP_NOPS (nelts); vbchain = tree_cons (NULL_TREE, nelts, vbchain); } diff -Nrcpad gcc-11.2.0/gcc/c/c-fold.c gcc-11.3.0/gcc/c/c-fold.c *** gcc-11.2.0/gcc/c/c-fold.c Wed Jul 28 06:55:06 2021 --- gcc-11.3.0/gcc/c/c-fold.c Thu Apr 21 07:58:52 2022 *************** c_fully_fold_internal (tree expr, bool i *** 382,387 **** --- 382,388 ---- && TREE_CODE (TREE_TYPE (orig_op0)) == INTEGER_TYPE && TREE_CODE (op0) == INTEGER_CST && c_inhibit_evaluation_warnings == 0 + && !TYPE_OVERFLOW_WRAPS (TREE_TYPE (orig_op0)) && tree_int_cst_sgn (op0) < 0) warning_at (loc, OPT_Wshift_negative_value, "left shift of negative value"); diff -Nrcpad gcc-11.2.0/gcc/c/c-parser.c gcc-11.3.0/gcc/c/c-parser.c *** gcc-11.2.0/gcc/c/c-parser.c Wed Jul 28 06:55:06 2021 --- gcc-11.3.0/gcc/c/c-parser.c Thu Apr 21 07:58:52 2022 *************** c_parser_balanced_token_sequence (c_pars *** 4841,4846 **** --- 4841,4851 ---- case CPP_EOF: return; + case CPP_PRAGMA: + c_parser_consume_pragma (parser); + c_parser_skip_to_pragma_eol (parser, false); + break; + default: c_parser_consume_token (parser); break; diff -Nrcpad gcc-11.2.0/gcc/c/c-typeck.c gcc-11.3.0/gcc/c/c-typeck.c *** gcc-11.2.0/gcc/c/c-typeck.c Wed Jul 28 06:55:06 2021 --- gcc-11.3.0/gcc/c/c-typeck.c Thu Apr 21 07:58:52 2022 *************** struct initializer_stack *** 8403,8408 **** --- 8403,8409 ---- char top_level; char require_constant_value; char require_constant_elements; + char designated; rich_location *missing_brace_richloc; }; *************** start_init (tree decl, tree asmspec_tree *** 8429,8434 **** --- 8430,8436 ---- p->top_level = constructor_top_level; p->next = initializer_stack; p->missing_brace_richloc = richloc; + p->designated = constructor_designated; initializer_stack = p; constructor_decl = decl; *************** finish_init (void) *** 8487,8492 **** --- 8489,8495 ---- require_constant_value = p->require_constant_value; require_constant_elements = p->require_constant_elements; constructor_stack = p->constructor_stack; + constructor_designated = p->designated; constructor_range_stack = p->constructor_range_stack; constructor_elements = p->elements; spelling = p->spelling; *************** push_init_level (location_t loc, int imp *** 8696,8702 **** constructor_depth = SPELLING_DEPTH (); constructor_elements = NULL; constructor_incremental = 1; ! constructor_designated = 0; constructor_pending_elts = 0; if (!implicit) { --- 8699,8707 ---- constructor_depth = SPELLING_DEPTH (); constructor_elements = NULL; constructor_incremental = 1; ! /* If the upper initializer is designated, then mark this as ! designated too to prevent bogus warnings. */ ! constructor_designated = p->designated; constructor_pending_elts = 0; if (!implicit) { *************** push_init_level (location_t loc, int imp *** 8721,8729 **** push_member_name (constructor_fields); constructor_depth++; } - /* If upper initializer is designated, then mark this as - designated too to prevent bogus warnings. */ - constructor_designated = p->designated; } else if (TREE_CODE (constructor_type) == ARRAY_TYPE) { --- 8726,8731 ---- *************** c_finish_bc_stmt (location_t loc, tree l *** 11216,11222 **** if (skip) return NULL_TREE; ! else if (in_statement & IN_OBJC_FOREACH) { /* The foreach expander produces low-level code using gotos instead of a structured loop construct. */ --- 11218,11225 ---- if (skip) return NULL_TREE; ! else if ((in_statement & IN_OBJC_FOREACH) ! && !(is_break && (in_statement & IN_SWITCH_STMT))) { /* The foreach expander produces low-level code using gotos instead of a structured loop construct. */ *************** build_binary_op (location_t location, en *** 12059,12065 **** { doing_shift = true; if (TREE_CODE (op0) == INTEGER_CST ! && tree_int_cst_sgn (op0) < 0) { /* Don't reject a left shift of a negative value in a context where a constant expression is needed in C90. */ --- 12062,12069 ---- { doing_shift = true; if (TREE_CODE (op0) == INTEGER_CST ! && tree_int_cst_sgn (op0) < 0 ! && !TYPE_OVERFLOW_WRAPS (type0)) { /* Don't reject a left shift of a negative value in a context where a constant expression is needed in C90. */ diff -Nrcpad gcc-11.2.0/gcc/c-family/ChangeLog gcc-11.3.0/gcc/c-family/ChangeLog *** gcc-11.2.0/gcc/c-family/ChangeLog Wed Jul 28 06:55:27 2021 --- gcc-11.3.0/gcc/c-family/ChangeLog Thu Apr 21 07:59:16 2022 *************** *** 1,3 **** --- 1,144 ---- + 2022-04-21 Release Manager + + * GCC 11.3.0 released. + + 2022-04-13 Jakub Jelinek + + Backported from master: + 2022-04-11 Jakub Jelinek + + PR c++/105186 + * c-common.c (c_common_nodes_and_builtins): After registering __int%d + and __int%d__ builtin types, initialize corresponding ridpointers + entry. + + 2022-04-07 Martin Sebor + + Backported from master: + 2021-07-27 Martin Sebor + + PR c/101585 + * c-warn.c (warn_parm_ptrarray_mismatch): Use OEP_DECL_NAME. + + 2022-03-30 Marek Polacek + + Backported from master: + 2022-03-30 Marek Polacek + + PR c++/101030 + * c-warn.c (conversion_warning) : Don't call + conversion_warning when OP1 is null. + + 2022-03-29 Jakub Jelinek + + Backported from master: + 2022-03-19 Jakub Jelinek + + PR c++/101515 + * c-pretty-print.c (c_fold_indirect_ref_for_warn): For C++ don't + return COMPONENT_REFs with FIELD_DECLs whose containing scope can't + be printed. + + 2022-03-29 Jakub Jelinek + + Backported from master: + 2022-03-09 Jakub Jelinek + + PR c/104711 + * c-opts.c (c_common_post_options): Don't enable + -Wshift-negative-value from -Wextra for C++20 or later. + * c-ubsan.c (ubsan_instrument_shift): Adjust comments. + * c-warn.c (maybe_warn_shift_overflow): Use TYPE_OVERFLOW_WRAPS + instead of TYPE_UNSIGNED. + + 2022-02-19 Jakub Jelinek + + Backported from master: + 2022-02-16 Jakub Jelinek + + PR c/104510 + * c-common.c (shorten_compare): Convert original arguments to + the original *restype_ptr when mixing binary and decimal float. + + 2022-01-24 Jakub Jelinek + + Backported from master: + 2022-01-11 Jakub Jelinek + + PR c/101537 + PR c/103881 + * c-warn.c (conversion_warning): Handle BIT_AND_EXPR, BIT_IOR_EXPR + and BIT_XOR_EXPR. + + 2022-01-24 Jakub Jelinek + + Backported from master: + 2021-12-30 Jakub Jelinek + + PR c++/103012 + * c-cppbuiltin.c (c_cpp_builtins_optimize_pragma): Perform + cpp_define_unused/cpp_undef calls with forced token locations + BUILTINS_LOCATION. + + 2022-01-17 Marek Polacek + + Backported from master: + 2022-01-03 Marek Polacek + + PR c++/103758 + * c-format.c (check_tokens): Accept "decl-specifier*". + + 2022-01-17 Marek Polacek + + Revert: + 2022-01-17 Marek Polacek + + PR c++/103758 + * c-format.c (check_tokens): Accept "decl-specifier*". + + 2022-01-17 Marek Polacek + + Backported from master: + 2022-01-03 Marek Polacek + + PR c++/103758 + * c-format.c (check_tokens): Accept "decl-specifier*". + + 2021-12-16 Martin Sebor + + PR c/101289 + PR c/97548 + * c-warn.c (warn_parm_array_mismatch): Use OEP_DECL_NAME. + + 2021-11-29 Jakub Jelinek + + Backported from master: + 2021-10-21 Jakub Jelinek + + PR middle-end/64888 + * c-omp.c (c_omp_predefined_variable): Return true also for + ubsan_create_data created artificial variables. + + 2021-10-05 Jakub Jelinek + + Backported from master: + 2021-10-01 Jakub Jelinek + Richard Biener + + PR sanitizer/102515 + * c-ubsan.c (ubsan_instrument_division): Check the right + flag_sanitize_recover bit, depending on which sanitization + is done. + + 2021-08-06 Richard Biener + + Backported from master: + 2021-07-29 Richard Biener + + PR c/101512 + * c-common.c (c_common_mark_addressable_vec): Look through + C_MAYBE_CONST_EXPR even if not at the toplevel. + 2021-07-28 Release Manager * GCC 11.2.0 released. diff -Nrcpad gcc-11.2.0/gcc/c-family/c-common.c gcc-11.3.0/gcc/c-family/c-common.c *** gcc-11.2.0/gcc/c-family/c-common.c Wed Jul 28 06:55:06 2021 --- gcc-11.3.0/gcc/c-family/c-common.c Thu Apr 21 07:58:52 2022 *************** shorten_compare (location_t loc, tree *o *** 3019,3025 **** else if (real1 && real2 && (DECIMAL_FLOAT_MODE_P (TYPE_MODE (TREE_TYPE (primop0))) || DECIMAL_FLOAT_MODE_P (TYPE_MODE (TREE_TYPE (primop1))))) ! return NULL_TREE; else if (real1 && real2 && (TYPE_PRECISION (TREE_TYPE (primop0)) --- 3019,3029 ---- else if (real1 && real2 && (DECIMAL_FLOAT_MODE_P (TYPE_MODE (TREE_TYPE (primop0))) || DECIMAL_FLOAT_MODE_P (TYPE_MODE (TREE_TYPE (primop1))))) ! { ! type = *restype_ptr; ! primop0 = op0; ! primop1 = op1; ! } else if (real1 && real2 && (TYPE_PRECISION (TREE_TYPE (primop0)) *************** c_common_nodes_and_builtins (void) *** 4066,4071 **** --- 4070,4077 ---- sprintf (name, "__int%d__", int_n_data[i].bitsize); record_builtin_type ((enum rid)(RID_FIRST_INT_N + i), name, int_n_trees[i].signed_type); + ridpointers[RID_FIRST_INT_N + i] + = DECL_NAME (TYPE_NAME (int_n_trees[i].signed_type)); sprintf (name, "__int%d unsigned", int_n_data[i].bitsize); record_builtin_type (RID_MAX, name, int_n_trees[i].unsigned_type); *************** complete_flexible_array_elts (tree init) *** 6759,6768 **** void c_common_mark_addressable_vec (tree t) { ! if (TREE_CODE (t) == C_MAYBE_CONST_EXPR) ! t = C_MAYBE_CONST_EXPR_EXPR (t); ! while (handled_component_p (t)) ! t = TREE_OPERAND (t, 0); if (!VAR_P (t) && TREE_CODE (t) != PARM_DECL && TREE_CODE (t) != COMPOUND_LITERAL_EXPR) --- 6765,6777 ---- void c_common_mark_addressable_vec (tree t) { ! while (handled_component_p (t) || TREE_CODE (t) == C_MAYBE_CONST_EXPR) ! { ! if (TREE_CODE (t) == C_MAYBE_CONST_EXPR) ! t = C_MAYBE_CONST_EXPR_EXPR (t); ! else ! t = TREE_OPERAND (t, 0); ! } if (!VAR_P (t) && TREE_CODE (t) != PARM_DECL && TREE_CODE (t) != COMPOUND_LITERAL_EXPR) diff -Nrcpad gcc-11.2.0/gcc/c-family/c-cppbuiltin.c gcc-11.3.0/gcc/c-family/c-cppbuiltin.c *** gcc-11.2.0/gcc/c-family/c-cppbuiltin.c Wed Jul 28 06:55:06 2021 --- gcc-11.3.0/gcc/c-family/c-cppbuiltin.c Thu Apr 21 07:58:52 2022 *************** c_cpp_builtins_optimize_pragma (cpp_read *** 589,594 **** --- 589,598 ---- if (flag_undef) return; + /* Make sure all of the builtins about to be declared have + BUILTINS_LOCATION has their location_t. */ + cpp_force_token_locations (parse_in, BUILTINS_LOCATION); + /* Other target-independent built-ins determined by command-line options. */ if (!prev->x_optimize_size && cur->x_optimize_size) *************** c_cpp_builtins_optimize_pragma (cpp_read *** 628,633 **** --- 632,639 ---- cpp_undef (pfile, "__FINITE_MATH_ONLY__"); cpp_define_unused (pfile, "__FINITE_MATH_ONLY__=0"); } + + cpp_stop_forcing_token_locations (parse_in); } diff -Nrcpad gcc-11.2.0/gcc/c-family/c-format.c gcc-11.3.0/gcc/c-family/c-format.c *** gcc-11.2.0/gcc/c-family/c-format.c Wed Jul 28 06:55:06 2021 --- gcc-11.3.0/gcc/c-family/c-format.c Thu Apr 21 07:58:52 2022 *************** check_tokens (const token_t *tokens, uns *** 3202,3208 **** wlen, format_chars); else { ! /* Diagnose some common missspellings. */ for (unsigned i = 0; i != sizeof badwords / sizeof *badwords; ++i) { unsigned badwlen = strspn (badwords[i].name, " -"); --- 3202,3208 ---- wlen, format_chars); else { ! /* Diagnose some common misspellings. */ for (unsigned i = 0; i != sizeof badwords / sizeof *badwords; ++i) { unsigned badwlen = strspn (badwords[i].name, " -"); *************** check_tokens (const token_t *tokens, uns *** 3223,3228 **** --- 3223,3235 ---- plural = "s"; } + /* As an exception, don't warn about "decl-specifier*" since + it's a C++ grammar production. */ + if (badwords[i].name[0] == 'd' + && strncmp (format_chars, "decl-specifier", + strlen ("decl-specifier")) == 0) + continue; + format_warning_substr (format_string_loc, format_string_cst, fmtchrpos, fmtchrpos + badwords[i].len, opt, diff -Nrcpad gcc-11.2.0/gcc/c-family/c-omp.c gcc-11.3.0/gcc/c-family/c-omp.c *** gcc-11.2.0/gcc/c-family/c-omp.c Wed Jul 28 06:55:06 2021 --- gcc-11.3.0/gcc/c-family/c-omp.c Thu Apr 21 07:58:52 2022 *************** c_omp_predefined_variable (tree decl) *** 2551,2563 **** { if (VAR_P (decl) && DECL_ARTIFICIAL (decl) - && TREE_READONLY (decl) && TREE_STATIC (decl) ! && DECL_NAME (decl) ! && (DECL_NAME (decl) == ridpointers[RID_C99_FUNCTION_NAME] ! || DECL_NAME (decl) == ridpointers[RID_FUNCTION_NAME] ! || DECL_NAME (decl) == ridpointers[RID_PRETTY_FUNCTION_NAME])) ! return true; return false; } --- 2551,2594 ---- { if (VAR_P (decl) && DECL_ARTIFICIAL (decl) && TREE_STATIC (decl) ! && DECL_NAME (decl)) ! { ! if (TREE_READONLY (decl) ! && (DECL_NAME (decl) == ridpointers[RID_C99_FUNCTION_NAME] ! || DECL_NAME (decl) == ridpointers[RID_FUNCTION_NAME] ! || DECL_NAME (decl) == ridpointers[RID_PRETTY_FUNCTION_NAME])) ! return true; ! /* For UBSan handle the same also ubsan_create_data created ! variables. There is no magic flag for those, but user variables ! shouldn't be DECL_ARTIFICIAL or have TYPE_ARTIFICIAL type with ! such names. */ ! if ((flag_sanitize & (SANITIZE_UNDEFINED ! | SANITIZE_UNDEFINED_NONDEFAULT)) != 0 ! && DECL_IGNORED_P (decl) ! && !TREE_READONLY (decl) ! && TREE_CODE (DECL_NAME (decl)) == IDENTIFIER_NODE ! && TREE_CODE (TREE_TYPE (decl)) == RECORD_TYPE ! && TYPE_ARTIFICIAL (TREE_TYPE (decl)) ! && TYPE_NAME (TREE_TYPE (decl)) ! && TREE_CODE (TYPE_NAME (TREE_TYPE (decl))) == TYPE_DECL ! && DECL_NAME (TYPE_NAME (TREE_TYPE (decl))) ! && (TREE_CODE (DECL_NAME (TYPE_NAME (TREE_TYPE (decl)))) ! == IDENTIFIER_NODE)) ! { ! tree id1 = DECL_NAME (decl); ! tree id2 = DECL_NAME (TYPE_NAME (TREE_TYPE (decl))); ! if (IDENTIFIER_LENGTH (id1) >= sizeof ("ubsan_data") - 1 ! && IDENTIFIER_LENGTH (id2) >= sizeof ("__ubsan__data") ! && !memcmp (IDENTIFIER_POINTER (id2), "__ubsan_", ! sizeof ("__ubsan_") - 1) ! && !memcmp (IDENTIFIER_POINTER (id2) + IDENTIFIER_LENGTH (id2) ! - sizeof ("_data") + 1, "_data", ! sizeof ("_data") - 1) ! && strstr (IDENTIFIER_POINTER (id1), "ubsan_data")) ! return true; ! } ! } return false; } diff -Nrcpad gcc-11.2.0/gcc/c-family/c-opts.c gcc-11.3.0/gcc/c-family/c-opts.c *** gcc-11.2.0/gcc/c-family/c-opts.c Wed Jul 28 06:55:06 2021 --- gcc-11.3.0/gcc/c-family/c-opts.c Thu Apr 21 07:58:52 2022 *************** c_common_post_options (const char **pfil *** 925,934 **** if (warn_shift_overflow == -1) warn_shift_overflow = cxx_dialect >= cxx11 || flag_isoc99; ! /* -Wshift-negative-value is enabled by -Wextra in C99 and C++11 modes. */ if (warn_shift_negative_value == -1) warn_shift_negative_value = (extra_warnings ! && (cxx_dialect >= cxx11 || flag_isoc99)); /* -Wregister is enabled by default in C++17. */ SET_OPTION_IF_UNSET (&global_options, &global_options_set, warn_register, --- 925,936 ---- if (warn_shift_overflow == -1) warn_shift_overflow = cxx_dialect >= cxx11 || flag_isoc99; ! /* -Wshift-negative-value is enabled by -Wextra in C99 and C++11 to C++17 ! modes. */ if (warn_shift_negative_value == -1) warn_shift_negative_value = (extra_warnings ! && (cxx_dialect >= cxx11 || flag_isoc99) ! && cxx_dialect < cxx20); /* -Wregister is enabled by default in C++17. */ SET_OPTION_IF_UNSET (&global_options, &global_options_set, warn_register, diff -Nrcpad gcc-11.2.0/gcc/c-family/c-pretty-print.c gcc-11.3.0/gcc/c-family/c-pretty-print.c *** gcc-11.2.0/gcc/c-family/c-pretty-print.c Wed Jul 28 06:55:06 2021 --- gcc-11.3.0/gcc/c-family/c-pretty-print.c Thu Apr 21 07:58:52 2022 *************** c_fold_indirect_ref_for_warn (location_t *** 1885,1890 **** --- 1885,1896 ---- = wi::to_offset (TYPE_SIZE_UNIT (TREE_TYPE (field))); if (upos <= off && off < upos + el_sz) { + /* The C++ pretty printers print scope of the FIELD_DECLs, + so punt if it is something that can't be printed. */ + if (c_dialect_cxx ()) + if (tree scope = get_containing_scope (field)) + if (TYPE_P (scope) && TYPE_NAME (scope) == NULL_TREE) + break; tree cop = build3_loc (loc, COMPONENT_REF, TREE_TYPE (field), op, field, NULL_TREE); off = off - upos; diff -Nrcpad gcc-11.2.0/gcc/c-family/c-ubsan.c gcc-11.3.0/gcc/c-family/c-ubsan.c *** gcc-11.2.0/gcc/c-family/c-ubsan.c Wed Jul 28 06:55:06 2021 --- gcc-11.3.0/gcc/c-family/c-ubsan.c Thu Apr 21 07:58:52 2022 *************** ubsan_instrument_division (location_t lo *** 41,46 **** --- 41,47 ---- { tree t, tt; tree type = TREE_TYPE (op0); + enum sanitize_code flag = SANITIZE_DIVIDE; /* At this point both operands should have the same type, because they are already converted to RESULT_TYPE. *************** ubsan_instrument_division (location_t lo *** 58,65 **** op1, build_int_cst (type, 0)); else if (TREE_CODE (type) == REAL_TYPE && sanitize_flags_p (SANITIZE_FLOAT_DIVIDE)) ! t = fold_build2 (EQ_EXPR, boolean_type_node, ! op1, build_real (type, dconst0)); else return NULL_TREE; --- 59,69 ---- op1, build_int_cst (type, 0)); else if (TREE_CODE (type) == REAL_TYPE && sanitize_flags_p (SANITIZE_FLOAT_DIVIDE)) ! { ! t = fold_build2 (EQ_EXPR, boolean_type_node, ! op1, build_real (type, dconst0)); ! flag = SANITIZE_FLOAT_DIVIDE; ! } else return NULL_TREE; *************** ubsan_instrument_division (location_t lo *** 95,101 **** NULL_TREE); data = build_fold_addr_expr_loc (loc, data); enum built_in_function bcode ! = (flag_sanitize_recover & SANITIZE_DIVIDE) ? BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW : BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW_ABORT; tt = builtin_decl_explicit (bcode); --- 99,105 ---- NULL_TREE); data = build_fold_addr_expr_loc (loc, data); enum built_in_function bcode ! = (flag_sanitize_recover & flag) ? BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW : BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW_ABORT; tt = builtin_decl_explicit (bcode); *************** ubsan_instrument_shift (location_t loc, *** 142,148 **** || cxx_dialect >= cxx20) ; ! /* For signed x << y, in C99/C11, the following: (unsigned) x >> (uprecm1 - y) if non-zero, is undefined. */ else if (code == LSHIFT_EXPR && flag_isoc99 && cxx_dialect < cxx11) --- 146,152 ---- || cxx_dialect >= cxx20) ; ! /* For signed x << y, in C99 and later, the following: (unsigned) x >> (uprecm1 - y) if non-zero, is undefined. */ else if (code == LSHIFT_EXPR && flag_isoc99 && cxx_dialect < cxx11) *************** ubsan_instrument_shift (location_t loc, *** 155,161 **** build_int_cst (TREE_TYPE (tt), 0)); } ! /* For signed x << y, in C++11 and later, the following: x < 0 || ((unsigned) x >> (uprecm1 - y)) if > 1, is undefined. */ else if (code == LSHIFT_EXPR && cxx_dialect >= cxx11) --- 159,165 ---- build_int_cst (TREE_TYPE (tt), 0)); } ! /* For signed x << y, in C++11 to C++17, the following: x < 0 || ((unsigned) x >> (uprecm1 - y)) if > 1, is undefined. */ else if (code == LSHIFT_EXPR && cxx_dialect >= cxx11) diff -Nrcpad gcc-11.2.0/gcc/c-family/c-warn.c gcc-11.3.0/gcc/c-family/c-warn.c *** gcc-11.2.0/gcc/c-family/c-warn.c Wed Jul 28 06:55:06 2021 --- gcc-11.3.0/gcc/c-family/c-warn.c Thu Apr 21 07:58:52 2022 *************** conversion_warning (location_t loc, tree *** 1300,1309 **** tree op1 = TREE_OPERAND (expr, 1); tree op2 = TREE_OPERAND (expr, 2); ! return (conversion_warning (loc, type, op1, result) || conversion_warning (loc, type, op2, result)); } default_: default: conversion_kind = unsafe_conversion_p (type, expr, result, true); --- 1300,1337 ---- tree op1 = TREE_OPERAND (expr, 1); tree op2 = TREE_OPERAND (expr, 2); ! return ((op1 && conversion_warning (loc, type, op1, result)) || conversion_warning (loc, type, op2, result)); } + case BIT_AND_EXPR: + if (TREE_CODE (expr_type) == INTEGER_TYPE + && TREE_CODE (type) == INTEGER_TYPE) + for (int i = 0; i < 2; ++i) + { + tree op = TREE_OPERAND (expr, i); + if (TREE_CODE (op) != INTEGER_CST) + continue; + + /* If one of the operands is a non-negative constant + that fits in the target type, then the type of the + other operand does not matter. */ + if (int_fits_type_p (op, c_common_signed_type (type)) + && int_fits_type_p (op, c_common_unsigned_type (type))) + return false; + + /* If constant is unsigned and fits in the target + type, then the result will also fit. */ + if (TYPE_UNSIGNED (TREE_TYPE (op)) && int_fits_type_p (op, type)) + return false; + } + /* FALLTHRU */ + case BIT_IOR_EXPR: + case BIT_XOR_EXPR: + return (conversion_warning (loc, type, TREE_OPERAND (expr, 0), result) + || conversion_warning (loc, type, TREE_OPERAND (expr, 1), + result)); + default_: default: conversion_kind = unsafe_conversion_p (type, expr, result, true); *************** maybe_warn_shift_overflow (location_t lo *** 2577,2583 **** unsigned int prec0 = TYPE_PRECISION (type0); /* Left-hand operand must be signed. */ ! if (TYPE_UNSIGNED (type0) || cxx_dialect >= cxx20) return false; unsigned int min_prec = (wi::min_precision (wi::to_wide (op0), SIGNED) --- 2605,2611 ---- unsigned int prec0 = TYPE_PRECISION (type0); /* Left-hand operand must be signed. */ ! if (TYPE_OVERFLOW_WRAPS (type0) || cxx_dialect >= cxx20) return false; unsigned int min_prec = (wi::min_precision (wi::to_wide (op0), SIGNED) *************** warn_parm_ptrarray_mismatch (location_t *** 3275,3281 **** /* Move on if the bounds look the same. */ if (!pcurbndpos && !pnewbndpos && curbnd && newbnd ! && operand_equal_p (curbnd, newbnd, OEP_LEXICOGRAPHIC)) continue; if ((curbnd && TREE_CODE (curbnd) != INTEGER_CST) --- 3303,3310 ---- /* Move on if the bounds look the same. */ if (!pcurbndpos && !pnewbndpos && curbnd && newbnd ! && operand_equal_p (curbnd, newbnd, ! OEP_DECL_NAME | OEP_LEXICOGRAPHIC)) continue; if ((curbnd && TREE_CODE (curbnd) != INTEGER_CST) *************** warn_parm_array_mismatch (location_t ori *** 3646,3652 **** /* The VLA bounds don't refer to other function parameters. Compare them lexicographically to detect gross mismatches such as between T[foo()] and T[bar()]. */ ! if (operand_equal_p (newbnd, curbnd, OEP_LEXICOGRAPHIC)) continue; if (warning_at (newloc, OPT_Wvla_parameter, --- 3675,3682 ---- /* The VLA bounds don't refer to other function parameters. Compare them lexicographically to detect gross mismatches such as between T[foo()] and T[bar()]. */ ! if (operand_equal_p (newbnd, curbnd, ! OEP_DECL_NAME | OEP_LEXICOGRAPHIC)) continue; if (warning_at (newloc, OPT_Wvla_parameter, diff -Nrcpad gcc-11.2.0/gcc/calls.c gcc-11.3.0/gcc/calls.c *** gcc-11.2.0/gcc/calls.c Wed Jul 28 06:55:06 2021 --- gcc-11.3.0/gcc/calls.c Thu Apr 21 07:58:52 2022 *************** maybe_warn_rdwr_sizes (rdwr_map *rwm, tr *** 2022,2027 **** --- 2022,2031 ---- if (access.second.minsize && access.second.minsize != HOST_WIDE_INT_M1U) access_size = build_int_cstu (sizetype, access.second.minsize); + else if (VOID_TYPE_P (argtype) && access.second.mode == access_none) + /* Treat access mode none on a void* argument as expecting + as little as zero bytes. */ + access_size = size_zero_node; else access_size = size_one_node; } *************** maybe_warn_rdwr_sizes (rdwr_map *rwm, tr *** 2126,2133 **** "array %s is null but " "the corresponding bound argument " "%i value is %s", ! exp, sizidx + 1, argtypestr.c_str (), ! ptridx + 1, sizstr); } else arg_warned = warning_at (loc, OPT_Wnonnull, --- 2130,2137 ---- "array %s is null but " "the corresponding bound argument " "%i value is %s", ! exp, ptridx + 1, argtypestr.c_str (), ! sizidx + 1, sizstr); } else arg_warned = warning_at (loc, OPT_Wnonnull, diff -Nrcpad gcc-11.2.0/gcc/cfgexpand.c gcc-11.3.0/gcc/cfgexpand.c *** gcc-11.2.0/gcc/cfgexpand.c Wed Jul 28 06:55:06 2021 --- gcc-11.3.0/gcc/cfgexpand.c Thu Apr 21 07:58:52 2022 *************** expand_asm_stmt (gasm *stmt) *** 3304,3310 **** && GET_MODE (DECL_RTL (val)) != TYPE_MODE (type))) || ! allows_reg || is_inout ! || TREE_ADDRESSABLE (type)) { op = expand_expr (val, NULL_RTX, VOIDmode, !allows_reg ? EXPAND_MEMORY : EXPAND_WRITE); --- 3304,3312 ---- && GET_MODE (DECL_RTL (val)) != TYPE_MODE (type))) || ! allows_reg || is_inout ! || TREE_ADDRESSABLE (type) ! || (!tree_fits_poly_int64_p (TYPE_SIZE (type)) ! && !known_size_p (max_int_size_in_bytes (type)))) { op = expand_expr (val, NULL_RTX, VOIDmode, !allows_reg ? EXPAND_MEMORY : EXPAND_WRITE); diff -Nrcpad gcc-11.2.0/gcc/cfgrtl.c gcc-11.3.0/gcc/cfgrtl.c *** gcc-11.2.0/gcc/cfgrtl.c Wed Jul 28 06:55:06 2021 --- gcc-11.3.0/gcc/cfgrtl.c Thu Apr 21 07:58:52 2022 *************** rtl_split_block (basic_block bb, void *i *** 776,781 **** --- 776,804 ---- return new_bb; } + /* Return true if LOC1 and LOC2 are equivalent for + unique_locus_on_edge_between_p purposes. */ + + static bool + loc_equal (location_t loc1, location_t loc2) + { + if (loc1 == loc2) + return true; + + expanded_location loce1 = expand_location (loc1); + expanded_location loce2 = expand_location (loc2); + + if (loce1.line != loce2.line + || loce1.column != loce2.column + || loce1.data != loce2.data) + return false; + if (loce1.file == loce2.file) + return true; + return (loce1.file != NULL + && loce2.file != NULL + && filename_cmp (loce1.file, loce2.file) == 0); + } + /* Return true if the single edge between blocks A and B is the only place in RTL which holds some unique locus. */ *************** unique_locus_on_edge_between_p (basic_bl *** 794,800 **** while (insn != end && (!NONDEBUG_INSN_P (insn) || !INSN_HAS_LOCATION (insn))) insn = PREV_INSN (insn); ! if (insn != end && INSN_LOCATION (insn) == goto_locus) return false; /* Then scan block B forward. */ --- 817,823 ---- while (insn != end && (!NONDEBUG_INSN_P (insn) || !INSN_HAS_LOCATION (insn))) insn = PREV_INSN (insn); ! if (insn != end && loc_equal (INSN_LOCATION (insn), goto_locus)) return false; /* Then scan block B forward. */ *************** unique_locus_on_edge_between_p (basic_bl *** 806,812 **** insn = NEXT_INSN (insn); if (insn != end && INSN_HAS_LOCATION (insn) ! && INSN_LOCATION (insn) == goto_locus) return false; } --- 829,835 ---- insn = NEXT_INSN (insn); if (insn != end && INSN_HAS_LOCATION (insn) ! && loc_equal (INSN_LOCATION (insn), goto_locus)) return false; } *************** fixup_reorder_chain (void) *** 4097,4103 **** && (!NONDEBUG_INSN_P (insn) || !INSN_HAS_LOCATION (insn))) insn = PREV_INSN (insn); if (insn != end ! && INSN_LOCATION (insn) == e->goto_locus) continue; if (simplejump_p (BB_END (e->src)) && !INSN_HAS_LOCATION (BB_END (e->src))) --- 4120,4126 ---- && (!NONDEBUG_INSN_P (insn) || !INSN_HAS_LOCATION (insn))) insn = PREV_INSN (insn); if (insn != end ! && loc_equal (INSN_LOCATION (insn), e->goto_locus)) continue; if (simplejump_p (BB_END (e->src)) && !INSN_HAS_LOCATION (BB_END (e->src))) *************** fixup_reorder_chain (void) *** 4119,4125 **** while (insn != end && !NONDEBUG_INSN_P (insn)) insn = NEXT_INSN (insn); if (insn != end && INSN_HAS_LOCATION (insn) ! && INSN_LOCATION (insn) == e->goto_locus) continue; } nb = split_edge (e); --- 4142,4148 ---- while (insn != end && !NONDEBUG_INSN_P (insn)) insn = NEXT_INSN (insn); if (insn != end && INSN_HAS_LOCATION (insn) ! && loc_equal (INSN_LOCATION (insn), e->goto_locus)) continue; } nb = split_edge (e); diff -Nrcpad gcc-11.2.0/gcc/collect2.c gcc-11.3.0/gcc/collect2.c *** gcc-11.2.0/gcc/collect2.c Wed Jul 28 06:55:06 2021 --- gcc-11.3.0/gcc/collect2.c Thu Apr 21 07:58:52 2022 *************** is_lto_object_file (const char *prog_nam *** 2337,2346 **** LTO_SEGMENT_NAME, &errmsg, &err); if (!inobj) ! return false; errmsg = simple_object_find_sections (inobj, has_lto_section, (void *) &found, &err); if (! errmsg && found) return true; --- 2337,2351 ---- LTO_SEGMENT_NAME, &errmsg, &err); if (!inobj) ! { ! close (infd); ! return false; ! } errmsg = simple_object_find_sections (inobj, has_lto_section, (void *) &found, &err); + simple_object_release_read (inobj); + close (infd); if (! errmsg && found) return true; *************** process_args (int *argcp, char **argv) { *** 3044,3058 **** static void do_dsymutil (const char *output_file) { ! const char *dsymutil = DSYMUTIL + 1; struct pex_obj *pex; ! char **real_argv = XCNEWVEC (char *, 3); const char ** argv = CONST_CAST2 (const char **, char **, real_argv); argv[0] = dsymutil; argv[1] = output_file; ! argv[2] = (char *) 0; pex = collect_execute (dsymutil, real_argv, NULL, NULL, PEX_LAST | PEX_SEARCH, false, NULL); --- 3049,3097 ---- static void do_dsymutil (const char *output_file) { ! const char *dsymutil = 0; struct pex_obj *pex; ! char **real_argv = XCNEWVEC (char *, verbose ? 4 : 3); const char ** argv = CONST_CAST2 (const char **, char **, real_argv); + /* For cross-builds search the PATH using target-qualified name if we + have not already found a suitable dsymutil. In practice, all modern + versions of dsymutil handle all supported archs, however the approach + here is consistent with the way other installations work (and one can + always symlink a multitarget dsymutil with a target-specific name). */ + const char *dsname = "dsymutil"; + #ifdef CROSS_DIRECTORY_STRUCTURE + const char *qname = concat (target_machine, "-", dsname, NULL); + #else + const char *qname = dsname; + #endif + #ifdef DEFAULT_DSYMUTIL + /* Configured default takes priority. */ + if (dsymutil == 0 && access (DEFAULT_DSYMUTIL, X_OK) == 0) + dsymutil = DEFAULT_DSYMUTIL; + if (dsymutil == 0) + #endif + #ifdef DSYMUTIL + /* Followed by one supplied in the target header, somewhat like the + REAL_XX_NAME used elsewhere. */ + dsymutil = find_a_file (&cpath, DSYMUTIL, X_OK); + if (dsymutil == 0) + dsymutil = find_a_file (&path, DSYMUTIL, X_OK); + if (dsymutil == 0) + #endif + dsymutil = find_a_file (&cpath, dsname, X_OK); + if (dsymutil == 0) + dsymutil = find_a_file (&path, qname, X_OK); argv[0] = dsymutil; argv[1] = output_file; ! if (verbose) ! { ! argv[2] = "-v"; ! argv[3] = (char *) 0; ! } ! else ! argv[2] = (char *) 0; pex = collect_execute (dsymutil, real_argv, NULL, NULL, PEX_LAST | PEX_SEARCH, false, NULL); diff -Nrcpad gcc-11.2.0/gcc/combine.c gcc-11.3.0/gcc/combine.c *** gcc-11.2.0/gcc/combine.c Wed Jul 28 06:55:06 2021 --- gcc-11.3.0/gcc/combine.c Thu Apr 21 07:58:52 2022 *************** struct undo *** 396,402 **** struct undo *next; enum undo_kind kind; union { rtx r; int i; machine_mode m; struct insn_link *l; } old_contents; ! union { rtx *r; int *i; struct insn_link **l; } where; }; /* Record a bunch of changes to be undone, up to MAX_UNDO of them. --- 396,402 ---- struct undo *next; enum undo_kind kind; union { rtx r; int i; machine_mode m; struct insn_link *l; } old_contents; ! union { rtx *r; int *i; int regno; struct insn_link **l; } where; }; /* Record a bunch of changes to be undone, up to MAX_UNDO of them. *************** do_SUBST_INT (int *into, int newval) *** 792,801 **** well. */ static void ! do_SUBST_MODE (rtx *into, machine_mode newval) { struct undo *buf; ! machine_mode oldval = GET_MODE (*into); if (oldval == newval) return; --- 792,802 ---- well. */ static void ! subst_mode (int regno, machine_mode newval) { struct undo *buf; ! rtx reg = regno_reg_rtx[regno]; ! machine_mode oldval = GET_MODE (reg); if (oldval == newval) return; *************** do_SUBST_MODE (rtx *into, machine_mode n *** 806,820 **** buf = XNEW (struct undo); buf->kind = UNDO_MODE; ! buf->where.r = into; buf->old_contents.m = oldval; ! adjust_reg_mode (*into, newval); buf->next = undobuf.undos, undobuf.undos = buf; } - #define SUBST_MODE(INTO, NEWVAL) do_SUBST_MODE (&(INTO), (NEWVAL)) - /* Similar to SUBST, but NEWVAL is a LOG_LINKS expression. */ static void --- 807,819 ---- buf = XNEW (struct undo); buf->kind = UNDO_MODE; ! buf->where.regno = regno; buf->old_contents.m = oldval; ! adjust_reg_mode (reg, newval); buf->next = undobuf.undos, undobuf.undos = buf; } /* Similar to SUBST, but NEWVAL is a LOG_LINKS expression. */ static void *************** try_combine (rtx_insn *i3, rtx_insn *i2, *** 3179,3184 **** --- 3178,3193 ---- return 0; } + /* We cannot safely duplicate volatile references in any case. */ + + if ((added_sets_2 && volatile_refs_p (PATTERN (i2))) + || (added_sets_1 && volatile_refs_p (PATTERN (i1))) + || (added_sets_0 && volatile_refs_p (PATTERN (i0)))) + { + undo_all (); + return 0; + } + /* Count how many auto_inc expressions there were in the original insns; we need to have the same number in the resulting patterns. */ *************** try_combine (rtx_insn *i3, rtx_insn *i2, *** 3291,3297 **** newpat_dest = gen_rtx_REG (compare_mode, regno); else { ! SUBST_MODE (regno_reg_rtx[regno], compare_mode); newpat_dest = regno_reg_rtx[regno]; } } --- 3300,3306 ---- newpat_dest = gen_rtx_REG (compare_mode, regno); else { ! subst_mode (regno, compare_mode); newpat_dest = regno_reg_rtx[regno]; } } *************** try_combine (rtx_insn *i3, rtx_insn *i2, *** 3681,3687 **** ni2dest = gen_rtx_REG (new_mode, REGNO (i2dest)); else { ! SUBST_MODE (regno_reg_rtx[REGNO (i2dest)], new_mode); ni2dest = regno_reg_rtx[REGNO (i2dest)]; } --- 3690,3696 ---- ni2dest = gen_rtx_REG (new_mode, REGNO (i2dest)); else { ! subst_mode (REGNO (i2dest), new_mode); ni2dest = regno_reg_rtx[REGNO (i2dest)]; } *************** try_combine (rtx_insn *i3, rtx_insn *i2, *** 3818,3824 **** newdest = gen_rtx_REG (split_mode, REGNO (i2dest)); else { ! SUBST_MODE (regno_reg_rtx[REGNO (i2dest)], split_mode); newdest = regno_reg_rtx[REGNO (i2dest)]; } } --- 3827,3833 ---- newdest = gen_rtx_REG (split_mode, REGNO (i2dest)); else { ! subst_mode (REGNO (i2dest), split_mode); newdest = regno_reg_rtx[REGNO (i2dest)]; } } *************** try_combine (rtx_insn *i3, rtx_insn *i2, *** 4186,4192 **** for (undo = undobuf.undos; undo; undo = undo->next) if (undo->kind == UNDO_MODE) { ! rtx reg = *undo->where.r; machine_mode new_mode = GET_MODE (reg); machine_mode old_mode = undo->old_contents.m; --- 4195,4201 ---- for (undo = undobuf.undos; undo; undo = undo->next) if (undo->kind == UNDO_MODE) { ! rtx reg = regno_reg_rtx[undo->where.regno]; machine_mode new_mode = GET_MODE (reg); machine_mode old_mode = undo->old_contents.m; *************** try_combine (rtx_insn *i3, rtx_insn *i2, *** 4327,4336 **** for (rtx_insn *insn = NEXT_INSN (i3); !done && insn ! && NONDEBUG_INSN_P (insn) && BLOCK_FOR_INSN (insn) == this_basic_block; insn = NEXT_INSN (insn)) { struct insn_link *link; FOR_EACH_LOG_LINK (link, insn) if (link->insn == i3 && link->regno == regno) --- 4336,4347 ---- for (rtx_insn *insn = NEXT_INSN (i3); !done && insn ! && INSN_P (insn) && BLOCK_FOR_INSN (insn) == this_basic_block; insn = NEXT_INSN (insn)) { + if (DEBUG_INSN_P (insn)) + continue; struct insn_link *link; FOR_EACH_LOG_LINK (link, insn) if (link->insn == i3 && link->regno == regno) *************** undo_to_marker (void *marker) *** 4857,4863 **** *undo->where.i = undo->old_contents.i; break; case UNDO_MODE: ! adjust_reg_mode (*undo->where.r, undo->old_contents.m); break; case UNDO_LINKS: *undo->where.l = undo->old_contents.l; --- 4868,4875 ---- *undo->where.i = undo->old_contents.i; break; case UNDO_MODE: ! adjust_reg_mode (regno_reg_rtx[undo->where.regno], ! undo->old_contents.m); break; case UNDO_LINKS: *undo->where.l = undo->old_contents.l; *************** subst (rtx x, rtx from, rtx to, int in_d *** 5659,5664 **** --- 5671,5682 ---- if (!x) return gen_rtx_CLOBBER (VOIDmode, const0_rtx); } + /* CONST_INTs shouldn't be substituted into PRE_DEC, PRE_MODIFY + etc. arguments, otherwise we can ICE before trying to recog + it. See PR104446. */ + else if (CONST_SCALAR_INT_P (new_rtx) + && GET_RTX_CLASS (GET_CODE (x)) == RTX_AUTOINC) + return gen_rtx_CLOBBER (VOIDmode, const0_rtx); else SUBST (XEXP (x, i), new_rtx); } *************** simplify_set (rtx x) *** 6926,6932 **** new_dest = gen_rtx_REG (compare_mode, regno); else { ! SUBST_MODE (regno_reg_rtx[regno], compare_mode); new_dest = regno_reg_rtx[regno]; } --- 6944,6950 ---- new_dest = gen_rtx_REG (compare_mode, regno); else { ! subst_mode (regno, compare_mode); new_dest = regno_reg_rtx[regno]; } diff -Nrcpad gcc-11.2.0/gcc/common/config/i386/cpuinfo.h gcc-11.3.0/gcc/common/config/i386/cpuinfo.h *** gcc-11.2.0/gcc/common/config/i386/cpuinfo.h Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/common/config/i386/cpuinfo.h Thu Apr 21 07:58:52 2022 *************** get_available_features (struct __process *** 771,781 **** /* Get Advanced Features at level 0x19 (eax = 0x19). */ if (max_cpuid_level >= 0x19) { ! set_feature (FEATURE_AESKLE); ! __cpuid (19, eax, ebx, ecx, edx); /* Check if OS support keylocker. */ if (ebx & bit_AESKLE) { if (ebx & bit_WIDEKL) set_feature (FEATURE_WIDEKL); if (has_kl) --- 771,781 ---- /* Get Advanced Features at level 0x19 (eax = 0x19). */ if (max_cpuid_level >= 0x19) { ! __cpuid (0x19, eax, ebx, ecx, edx); /* Check if OS support keylocker. */ if (ebx & bit_AESKLE) { + set_feature (FEATURE_AESKLE); if (ebx & bit_WIDEKL) set_feature (FEATURE_WIDEKL); if (has_kl) diff -Nrcpad gcc-11.2.0/gcc/common/config/i386/i386-common.c gcc-11.3.0/gcc/common/config/i386/i386-common.c *** gcc-11.2.0/gcc/common/config/i386/i386-common.c Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/common/config/i386/i386-common.c Thu Apr 21 07:58:52 2022 *************** along with GCC; see the file COPYING3. *** 150,155 **** --- 150,156 ---- #define OPTION_MASK_ISA_F16C_SET \ (OPTION_MASK_ISA_F16C | OPTION_MASK_ISA_AVX_SET) #define OPTION_MASK_ISA2_MWAITX_SET OPTION_MASK_ISA2_MWAITX + #define OPTION_MASK_ISA2_MWAIT_SET OPTION_MASK_ISA2_MWAIT #define OPTION_MASK_ISA2_CLZERO_SET OPTION_MASK_ISA2_CLZERO #define OPTION_MASK_ISA_PKU_SET OPTION_MASK_ISA_PKU #define OPTION_MASK_ISA2_RDPID_SET OPTION_MASK_ISA2_RDPID *************** along with GCC; see the file COPYING3. *** 203,209 **** (OPTION_MASK_ISA_XSAVE | OPTION_MASK_ISA_XSAVEOPT_UNSET \ | OPTION_MASK_ISA_XSAVES_UNSET | OPTION_MASK_ISA_XSAVEC_UNSET \ | OPTION_MASK_ISA_AVX_UNSET) ! #define OPTION_MASK_ISA2_XSAVE_UNSET OPTION_MASK_ISA2_AMX_TILE_UNSET #define OPTION_MASK_ISA_XSAVEOPT_UNSET OPTION_MASK_ISA_XSAVEOPT #define OPTION_MASK_ISA_AVX2_UNSET \ (OPTION_MASK_ISA_AVX2 | OPTION_MASK_ISA_AVX512F_UNSET) --- 204,211 ---- (OPTION_MASK_ISA_XSAVE | OPTION_MASK_ISA_XSAVEOPT_UNSET \ | OPTION_MASK_ISA_XSAVES_UNSET | OPTION_MASK_ISA_XSAVEC_UNSET \ | OPTION_MASK_ISA_AVX_UNSET) ! #define OPTION_MASK_ISA2_XSAVE_UNSET \ ! (OPTION_MASK_ISA2_AVX2_UNSET | OPTION_MASK_ISA2_AMX_TILE_UNSET) #define OPTION_MASK_ISA_XSAVEOPT_UNSET OPTION_MASK_ISA_XSAVEOPT #define OPTION_MASK_ISA_AVX2_UNSET \ (OPTION_MASK_ISA_AVX2 | OPTION_MASK_ISA_AVX512F_UNSET) *************** along with GCC; see the file COPYING3. *** 245,250 **** --- 247,253 ---- #define OPTION_MASK_ISA_XSAVES_UNSET OPTION_MASK_ISA_XSAVES #define OPTION_MASK_ISA_CLWB_UNSET OPTION_MASK_ISA_CLWB #define OPTION_MASK_ISA2_MWAITX_UNSET OPTION_MASK_ISA2_MWAITX + #define OPTION_MASK_ISA2_MWAIT_UNSET OPTION_MASK_ISA2_MWAIT #define OPTION_MASK_ISA2_CLZERO_UNSET OPTION_MASK_ISA2_CLZERO #define OPTION_MASK_ISA_PKU_UNSET OPTION_MASK_ISA_PKU #define OPTION_MASK_ISA2_RDPID_UNSET OPTION_MASK_ISA2_RDPID *************** along with GCC; see the file COPYING3. *** 313,319 **** | OPTION_MASK_ISA2_AVX5124VNNIW_UNSET \ | OPTION_MASK_ISA2_AVX512VP2INTERSECT_UNSET) #define OPTION_MASK_ISA2_GENERAL_REGS_ONLY_UNSET \ ! (OPTION_MASK_ISA2_AVX512F_UNSET) #define OPTION_MASK_ISA2_AVX_UNSET OPTION_MASK_ISA2_AVX2_UNSET #define OPTION_MASK_ISA2_SSE4_2_UNSET OPTION_MASK_ISA2_AVX_UNSET #define OPTION_MASK_ISA2_SSE4_1_UNSET OPTION_MASK_ISA2_SSE4_2_UNSET --- 316,322 ---- | OPTION_MASK_ISA2_AVX5124VNNIW_UNSET \ | OPTION_MASK_ISA2_AVX512VP2INTERSECT_UNSET) #define OPTION_MASK_ISA2_GENERAL_REGS_ONLY_UNSET \ ! OPTION_MASK_ISA2_SSE_UNSET #define OPTION_MASK_ISA2_AVX_UNSET OPTION_MASK_ISA2_AVX2_UNSET #define OPTION_MASK_ISA2_SSE4_2_UNSET OPTION_MASK_ISA2_AVX_UNSET #define OPTION_MASK_ISA2_SSE4_1_UNSET OPTION_MASK_ISA2_SSE4_2_UNSET *************** ix86_handle_option (struct gcc_options * *** 352,367 **** case OPT_mgeneral_regs_only: if (value) { /* Disable MMX, SSE and x87 instructions if only general registers are allowed. */ opts->x_ix86_isa_flags &= ~OPTION_MASK_ISA_GENERAL_REGS_ONLY_UNSET; opts->x_ix86_isa_flags2 &= ~OPTION_MASK_ISA2_GENERAL_REGS_ONLY_UNSET; opts->x_ix86_isa_flags_explicit ! |= OPTION_MASK_ISA_GENERAL_REGS_ONLY_UNSET; opts->x_ix86_isa_flags2_explicit ! |= OPTION_MASK_ISA2_GENERAL_REGS_ONLY_UNSET; opts->x_target_flags &= ~MASK_80387; } --- 355,396 ---- case OPT_mgeneral_regs_only: if (value) { + HOST_WIDE_INT general_regs_only_flags = 0; + HOST_WIDE_INT general_regs_only_flags2 = 0; + + /* NB: Enable the GPR only instructions which are enabled + implicitly by SSE ISAs unless they have been disabled + explicitly. */ + if (TARGET_SSE4_2_P (opts->x_ix86_isa_flags)) + { + if ((opts->x_ix86_isa_flags_explicit + & OPTION_MASK_ISA_CRC32) == 0) + general_regs_only_flags |= OPTION_MASK_ISA_CRC32; + if ((opts->x_ix86_isa_flags_explicit + & OPTION_MASK_ISA_POPCNT) == 0) + general_regs_only_flags |= OPTION_MASK_ISA_POPCNT; + } + if (TARGET_SSE3_P (opts->x_ix86_isa_flags)) + { + if ((opts->x_ix86_isa_flags2_explicit + & OPTION_MASK_ISA2_MWAIT) == 0) + general_regs_only_flags2 |= OPTION_MASK_ISA2_MWAIT; + } + /* Disable MMX, SSE and x87 instructions if only general registers are allowed. */ opts->x_ix86_isa_flags &= ~OPTION_MASK_ISA_GENERAL_REGS_ONLY_UNSET; opts->x_ix86_isa_flags2 &= ~OPTION_MASK_ISA2_GENERAL_REGS_ONLY_UNSET; + opts->x_ix86_isa_flags |= general_regs_only_flags; + opts->x_ix86_isa_flags2 |= general_regs_only_flags2; opts->x_ix86_isa_flags_explicit ! |= (OPTION_MASK_ISA_GENERAL_REGS_ONLY_UNSET ! | general_regs_only_flags); opts->x_ix86_isa_flags2_explicit ! |= (OPTION_MASK_ISA2_GENERAL_REGS_ONLY_UNSET ! | general_regs_only_flags2); opts->x_target_flags &= ~MASK_80387; } *************** ix86_handle_option (struct gcc_options * *** 1546,1551 **** --- 1575,1593 ---- } return true; + case OPT_mmwait: + if (value) + { + opts->x_ix86_isa_flags2 |= OPTION_MASK_ISA2_MWAIT_SET; + opts->x_ix86_isa_flags2_explicit |= OPTION_MASK_ISA2_MWAIT_SET; + } + else + { + opts->x_ix86_isa_flags2 &= ~OPTION_MASK_ISA2_MWAIT_UNSET; + opts->x_ix86_isa_flags2_explicit |= OPTION_MASK_ISA2_MWAIT_UNSET; + } + return true; + case OPT_mclzero: if (value) { diff -Nrcpad gcc-11.2.0/gcc/common/config/riscv/riscv-common.c gcc-11.3.0/gcc/common/config/riscv/riscv-common.c *** gcc-11.2.0/gcc/common/config/riscv/riscv-common.c Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/common/config/riscv/riscv-common.c Thu Apr 21 07:58:52 2022 *************** multi_letter_subset_rank (const std::str *** 197,203 **** high_order = 1; break; case 'z': - gcc_assert (subset.length () > 2); high_order = 2; break; case 'x': --- 197,202 ---- *************** riscv_subset_list::to_string (bool versi *** 405,410 **** --- 404,410 ---- bool skip_zifencei = false; bool skip_zicsr = false; + bool i2p0 = false; /* For RISC-V ISA version 2.2 or earlier version, zicsr and zifencei is included in the base ISA. */ *************** riscv_subset_list::to_string (bool versi *** 414,424 **** skip_zicsr = true; } #ifndef HAVE_AS_MISA_SPEC /* Skip since older binutils doesn't recognize zicsr. */ skip_zicsr = true; #endif ! #ifndef HAVE_AS_MARCH_ZIFENCE /* Skip since older binutils doesn't recognize zifencei, we made a mistake in that binutils 2.35 supports zicsr but not zifencei. */ skip_zifencei = true; --- 414,431 ---- skip_zicsr = true; } + for (subset = m_head; subset != NULL; subset = subset->next) + if (subset->name == "i") + { + i2p0 = subset->major_version == 2 && subset->minor_version == 0; + break; + } + #ifndef HAVE_AS_MISA_SPEC /* Skip since older binutils doesn't recognize zicsr. */ skip_zicsr = true; #endif ! #ifndef HAVE_AS_MARCH_ZIFENCEI /* Skip since older binutils doesn't recognize zifencei, we made a mistake in that binutils 2.35 supports zicsr but not zifencei. */ skip_zifencei = true; *************** riscv_subset_list::to_string (bool versi *** 426,435 **** for (subset = m_head; subset != NULL; subset = subset->next) { ! if (subset->implied_p && skip_zifencei && subset->name == "zifencei") continue; ! if (subset->implied_p && skip_zicsr && subset->name == "zicsr") continue; /* For !version_p, we only separate extension with underline for --- 433,444 ---- for (subset = m_head; subset != NULL; subset = subset->next) { ! if (((subset->implied_p && skip_zifencei) || i2p0) && ! subset->name == "zifencei") continue; ! if (((subset->implied_p && skip_zicsr) || i2p0) && ! subset->name == "zicsr") continue; /* For !version_p, we only separate extension with underline for *************** riscv_subset_list::parse_multiletter_ext *** 782,789 **** } add (subset, major_version, minor_version, explicit_version_p, false); - free (subset); p += end_of_version - subset; if (*p != '\0' && *p != '_') { --- 791,798 ---- } add (subset, major_version, minor_version, explicit_version_p, false); p += end_of_version - subset; + free (subset); if (*p != '\0' && *p != '_') { diff -Nrcpad gcc-11.2.0/gcc/common/config/rs6000/rs6000-common.c gcc-11.3.0/gcc/common/config/rs6000/rs6000-common.c *** gcc-11.2.0/gcc/common/config/rs6000/rs6000-common.c Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/common/config/rs6000/rs6000-common.c Thu Apr 21 07:58:52 2022 *************** rs6000_handle_option (struct gcc_options *** 227,232 **** --- 227,242 ---- } break; + case OPT_mabi_ibmlongdouble: + case OPT_mabi_ieeelongdouble: + if (opts->x_rs6000_long_double_type_size == 64) + { + error_at (loc, "option %<%s%> requires %<-mlong-double-128%>", + decoded->orig_option_with_args_text); + return true; + } + break; + case OPT_mrecip: opts->x_rs6000_recip_name = (value) ? "default" : "none"; break; diff -Nrcpad gcc-11.2.0/gcc/common/config/s390/s390-common.c gcc-11.3.0/gcc/common/config/s390/s390-common.c *** gcc-11.2.0/gcc/common/config/s390/s390-common.c Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/common/config/s390/s390-common.c Thu Apr 21 07:58:52 2022 *************** EXPORTED_CONST int processor_flags_table *** 50,59 **** /* z15 */ PF_IEEE_FLOAT | PF_ZARCH | PF_LONG_DISPLACEMENT | PF_EXTIMM | PF_DFP | PF_Z10 | PF_Z196 | PF_ZEC12 | PF_TX | PF_Z13 | PF_VX | PF_VXE | PF_Z14 | PF_VXE2 | PF_Z15, ! /* arch14 */ PF_IEEE_FLOAT | PF_ZARCH | PF_LONG_DISPLACEMENT | PF_EXTIMM | PF_DFP | PF_Z10 | PF_Z196 | PF_ZEC12 | PF_TX | PF_Z13 | PF_VX | PF_VXE | PF_Z14 | PF_VXE2 | PF_Z15 ! | PF_NNPA | PF_ARCH14 }; /* Change optimizations to be performed, depending on the --- 50,59 ---- /* z15 */ PF_IEEE_FLOAT | PF_ZARCH | PF_LONG_DISPLACEMENT | PF_EXTIMM | PF_DFP | PF_Z10 | PF_Z196 | PF_ZEC12 | PF_TX | PF_Z13 | PF_VX | PF_VXE | PF_Z14 | PF_VXE2 | PF_Z15, ! /* z16 */ PF_IEEE_FLOAT | PF_ZARCH | PF_LONG_DISPLACEMENT | PF_EXTIMM | PF_DFP | PF_Z10 | PF_Z196 | PF_ZEC12 | PF_TX | PF_Z13 | PF_VX | PF_VXE | PF_Z14 | PF_VXE2 | PF_Z15 ! | PF_NNPA | PF_Z16 }; /* Change optimizations to be performed, depending on the diff -Nrcpad gcc-11.2.0/gcc/config/aarch64/aarch64-c.c gcc-11.3.0/gcc/config/aarch64/aarch64-c.c *** gcc-11.2.0/gcc/config/aarch64/aarch64-c.c Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/aarch64/aarch64-c.c Thu Apr 21 07:58:52 2022 *************** aarch64_pragma_target_parse (tree args, *** 257,263 **** --- 257,265 ---- unsigned char saved_warn_unused_macros = cpp_opts->warn_unused_macros; cpp_opts->warn_unused_macros = 0; + cpp_force_token_locations (parse_in, BUILTINS_LOCATION); aarch64_update_cpp_builtins (parse_in); + cpp_stop_forcing_token_locations (parse_in); cpp_opts->warn_unused_macros = saved_warn_unused_macros; diff -Nrcpad gcc-11.2.0/gcc/config/aarch64/aarch64-cores.def gcc-11.3.0/gcc/config/aarch64/aarch64-cores.def *** gcc-11.2.0/gcc/config/aarch64/aarch64-cores.def Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/aarch64/aarch64-cores.def Thu Apr 21 07:58:52 2022 *************** AARCH64_CORE("octeontx83", octeontxt8 *** 68,74 **** AARCH64_CORE("thunderxt81", thunderxt81, thunderx, 8A, AARCH64_FL_FOR_ARCH8 | AARCH64_FL_CRC | AARCH64_FL_CRYPTO, thunderx, 0x43, 0x0a2, -1) AARCH64_CORE("thunderxt83", thunderxt83, thunderx, 8A, AARCH64_FL_FOR_ARCH8 | AARCH64_FL_CRC | AARCH64_FL_CRYPTO, thunderx, 0x43, 0x0a3, -1) ! /* Ampere Computing cores. */ /* Do not swap around "emag" and "xgene1", this order is required to handle variant correctly. */ AARCH64_CORE("emag", emag, xgene1, 8A, AARCH64_FL_FOR_ARCH8 | AARCH64_FL_CRC | AARCH64_FL_CRYPTO, emag, 0x50, 0x000, 3) --- 68,75 ---- AARCH64_CORE("thunderxt81", thunderxt81, thunderx, 8A, AARCH64_FL_FOR_ARCH8 | AARCH64_FL_CRC | AARCH64_FL_CRYPTO, thunderx, 0x43, 0x0a2, -1) AARCH64_CORE("thunderxt83", thunderxt83, thunderx, 8A, AARCH64_FL_FOR_ARCH8 | AARCH64_FL_CRC | AARCH64_FL_CRYPTO, thunderx, 0x43, 0x0a3, -1) ! /* Ampere Computing ('\xC0') cores. */ ! AARCH64_CORE("ampere1", ampere1, cortexa57, 8_6A, AARCH64_FL_FOR_ARCH8_6, ampere1, 0xC0, 0xac3, -1) /* Do not swap around "emag" and "xgene1", this order is required to handle variant correctly. */ AARCH64_CORE("emag", emag, xgene1, 8A, AARCH64_FL_FOR_ARCH8 | AARCH64_FL_CRC | AARCH64_FL_CRYPTO, emag, 0x50, 0x000, 3) *************** AARCH64_CORE("thunderx3t110", thunderx3 *** 139,144 **** --- 140,146 ---- /* Arm ('A') cores. */ AARCH64_CORE("zeus", zeus, cortexa57, 8_4A, AARCH64_FL_FOR_ARCH8_4 | AARCH64_FL_SVE | AARCH64_FL_RCPC | AARCH64_FL_I8MM | AARCH64_FL_BF16 | AARCH64_FL_F16 | AARCH64_FL_PROFILE | AARCH64_FL_SSBS | AARCH64_FL_RNG, neoversev1, 0x41, 0xd40, -1) AARCH64_CORE("neoverse-v1", neoversev1, cortexa57, 8_4A, AARCH64_FL_FOR_ARCH8_4 | AARCH64_FL_SVE | AARCH64_FL_RCPC | AARCH64_FL_I8MM | AARCH64_FL_BF16 | AARCH64_FL_F16 | AARCH64_FL_PROFILE | AARCH64_FL_SSBS | AARCH64_FL_RNG, neoversev1, 0x41, 0xd40, -1) + AARCH64_CORE("neoverse-512tvb", neoverse512tvb, cortexa57, 8_4A, AARCH64_FL_FOR_ARCH8_4 | AARCH64_FL_SVE | AARCH64_FL_RCPC | AARCH64_FL_I8MM | AARCH64_FL_BF16 | AARCH64_FL_F16 | AARCH64_FL_PROFILE | AARCH64_FL_SSBS | AARCH64_FL_RNG, neoverse512tvb, INVALID_IMP, INVALID_CORE, -1) /* Qualcomm ('Q') cores. */ AARCH64_CORE("saphira", saphira, saphira, 8_4A, AARCH64_FL_FOR_ARCH8_4 | AARCH64_FL_CRYPTO | AARCH64_FL_RCPC, saphira, 0x51, 0xC01, -1) diff -Nrcpad gcc-11.2.0/gcc/config/aarch64/aarch64-cost-tables.h gcc-11.3.0/gcc/config/aarch64/aarch64-cost-tables.h *** gcc-11.2.0/gcc/config/aarch64/aarch64-cost-tables.h Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/aarch64/aarch64-cost-tables.h Thu Apr 21 07:58:52 2022 *************** const struct cpu_cost_table a64fx_extra_ *** 650,653 **** --- 650,757 ---- } }; + const struct cpu_cost_table ampere1_extra_costs = + { + /* ALU */ + { + 0, /* arith. */ + 0, /* logical. */ + 0, /* shift. */ + COSTS_N_INSNS (1), /* shift_reg. */ + 0, /* arith_shift. */ + COSTS_N_INSNS (1), /* arith_shift_reg. */ + 0, /* log_shift. */ + COSTS_N_INSNS (1), /* log_shift_reg. */ + 0, /* extend. */ + COSTS_N_INSNS (1), /* extend_arith. */ + 0, /* bfi. */ + 0, /* bfx. */ + 0, /* clz. */ + 0, /* rev. */ + 0, /* non_exec. */ + true /* non_exec_costs_exec. */ + }, + { + /* MULT SImode */ + { + COSTS_N_INSNS (3), /* simple. */ + COSTS_N_INSNS (3), /* flag_setting. */ + COSTS_N_INSNS (3), /* extend. */ + COSTS_N_INSNS (4), /* add. */ + COSTS_N_INSNS (4), /* extend_add. */ + COSTS_N_INSNS (18) /* idiv. */ + }, + /* MULT DImode */ + { + COSTS_N_INSNS (3), /* simple. */ + 0, /* flag_setting (N/A). */ + COSTS_N_INSNS (3), /* extend. */ + COSTS_N_INSNS (4), /* add. */ + COSTS_N_INSNS (4), /* extend_add. */ + COSTS_N_INSNS (34) /* idiv. */ + } + }, + /* LD/ST */ + { + COSTS_N_INSNS (4), /* load. */ + COSTS_N_INSNS (4), /* load_sign_extend. */ + 0, /* ldrd (n/a). */ + 0, /* ldm_1st. */ + 0, /* ldm_regs_per_insn_1st. */ + 0, /* ldm_regs_per_insn_subsequent. */ + COSTS_N_INSNS (5), /* loadf. */ + COSTS_N_INSNS (5), /* loadd. */ + COSTS_N_INSNS (5), /* load_unaligned. */ + 0, /* store. */ + 0, /* strd. */ + 0, /* stm_1st. */ + 0, /* stm_regs_per_insn_1st. */ + 0, /* stm_regs_per_insn_subsequent. */ + COSTS_N_INSNS (2), /* storef. */ + COSTS_N_INSNS (2), /* stored. */ + COSTS_N_INSNS (2), /* store_unaligned. */ + COSTS_N_INSNS (3), /* loadv. */ + COSTS_N_INSNS (3) /* storev. */ + }, + { + /* FP SFmode */ + { + COSTS_N_INSNS (25), /* div. */ + COSTS_N_INSNS (4), /* mult. */ + COSTS_N_INSNS (4), /* mult_addsub. */ + COSTS_N_INSNS (4), /* fma. */ + COSTS_N_INSNS (4), /* addsub. */ + COSTS_N_INSNS (2), /* fpconst. */ + COSTS_N_INSNS (4), /* neg. */ + COSTS_N_INSNS (4), /* compare. */ + COSTS_N_INSNS (4), /* widen. */ + COSTS_N_INSNS (4), /* narrow. */ + COSTS_N_INSNS (4), /* toint. */ + COSTS_N_INSNS (4), /* fromint. */ + COSTS_N_INSNS (4) /* roundint. */ + }, + /* FP DFmode */ + { + COSTS_N_INSNS (34), /* div. */ + COSTS_N_INSNS (5), /* mult. */ + COSTS_N_INSNS (5), /* mult_addsub. */ + COSTS_N_INSNS (5), /* fma. */ + COSTS_N_INSNS (5), /* addsub. */ + COSTS_N_INSNS (2), /* fpconst. */ + COSTS_N_INSNS (5), /* neg. */ + COSTS_N_INSNS (5), /* compare. */ + COSTS_N_INSNS (5), /* widen. */ + COSTS_N_INSNS (5), /* narrow. */ + COSTS_N_INSNS (6), /* toint. */ + COSTS_N_INSNS (6), /* fromint. */ + COSTS_N_INSNS (5) /* roundint. */ + } + }, + /* Vector */ + { + COSTS_N_INSNS (3), /* alu. */ + COSTS_N_INSNS (3) /* mult. */ + } + }; + #endif diff -Nrcpad gcc-11.2.0/gcc/config/aarch64/aarch64-protos.h gcc-11.3.0/gcc/config/aarch64/aarch64-protos.h *** gcc-11.2.0/gcc/config/aarch64/aarch64-protos.h Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/aarch64/aarch64-protos.h Thu Apr 21 07:58:52 2022 *************** struct sve_vec_cost : simd_vec_cost *** 259,270 **** --- 259,274 ---- unsigned int fadda_f16_cost, unsigned int fadda_f32_cost, unsigned int fadda_f64_cost, + unsigned int gather_load_x32_cost, + unsigned int gather_load_x64_cost, unsigned int scatter_store_elt_cost) : simd_vec_cost (base), clast_cost (clast_cost), fadda_f16_cost (fadda_f16_cost), fadda_f32_cost (fadda_f32_cost), fadda_f64_cost (fadda_f64_cost), + gather_load_x32_cost (gather_load_x32_cost), + gather_load_x64_cost (gather_load_x64_cost), scatter_store_elt_cost (scatter_store_elt_cost) {} *************** struct sve_vec_cost : simd_vec_cost *** 279,284 **** --- 283,293 ---- const int fadda_f32_cost; const int fadda_f64_cost; + /* The cost of a gather load instruction. The x32 value is for loads + of 32-bit elements and the x64 value is for loads of 64-bit elements. */ + const int gather_load_x32_cost; + const int gather_load_x64_cost; + /* The per-element cost of a scatter store. */ const int scatter_store_elt_cost; }; *************** struct tune_params *** 506,515 **** const struct cpu_vector_cost *vec_costs; const struct cpu_branch_cost *branch_costs; const struct cpu_approx_modes *approx_modes; ! /* Width of the SVE registers or SVE_NOT_IMPLEMENTED if not applicable. ! Only used for tuning decisions, does not disable VLA ! vectorization. */ ! enum aarch64_sve_vector_bits_enum sve_width; int memmov_cost; int issue_rate; unsigned int fusible_ops; --- 515,524 ---- const struct cpu_vector_cost *vec_costs; const struct cpu_branch_cost *branch_costs; const struct cpu_approx_modes *approx_modes; ! /* A bitmask of the possible SVE register widths in bits, ! or SVE_NOT_IMPLEMENTED if not applicable. Only used for tuning ! decisions, does not disable VLA vectorization. */ ! unsigned int sve_width; int memmov_cost; int issue_rate; unsigned int fusible_ops; diff -Nrcpad gcc-11.2.0/gcc/config/aarch64/aarch64-simd.md gcc-11.3.0/gcc/config/aarch64/aarch64-simd.md *** gcc-11.2.0/gcc/config/aarch64/aarch64-simd.md Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/aarch64/aarch64-simd.md Thu Apr 21 07:58:52 2022 *************** *** 554,570 **** ;; remainder. Because of this, expand early. (define_expand "cml4" [(set (match_operand:VHSDF 0 "register_operand") ! (plus:VHSDF (match_operand:VHSDF 1 "register_operand") ! (unspec:VHSDF [(match_operand:VHSDF 2 "register_operand") ! (match_operand:VHSDF 3 "register_operand")] ! FCMLA_OP)))] "TARGET_COMPLEX && !BYTES_BIG_ENDIAN" { rtx tmp = gen_reg_rtx (mode); ! emit_insn (gen_aarch64_fcmla (tmp, operands[1], ! operands[3], operands[2])); emit_insn (gen_aarch64_fcmla (operands[0], tmp, ! operands[3], operands[2])); DONE; }) --- 554,570 ---- ;; remainder. Because of this, expand early. (define_expand "cml4" [(set (match_operand:VHSDF 0 "register_operand") ! (plus:VHSDF (unspec:VHSDF [(match_operand:VHSDF 1 "register_operand") ! (match_operand:VHSDF 2 "register_operand")] ! FCMLA_OP) ! (match_operand:VHSDF 3 "register_operand")))] "TARGET_COMPLEX && !BYTES_BIG_ENDIAN" { rtx tmp = gen_reg_rtx (mode); ! emit_insn (gen_aarch64_fcmla (tmp, operands[3], ! operands[2], operands[1])); emit_insn (gen_aarch64_fcmla (operands[0], tmp, ! operands[2], operands[1])); DONE; }) diff -Nrcpad gcc-11.2.0/gcc/config/aarch64/aarch64-sve.md gcc-11.3.0/gcc/config/aarch64/aarch64-sve.md *** gcc-11.2.0/gcc/config/aarch64/aarch64-sve.md Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/aarch64/aarch64-sve.md Thu Apr 21 07:58:52 2022 *************** *** 7261,7271 **** rtx tmp = gen_reg_rtx (mode); emit_insn (gen_aarch64_pred_fcmla (tmp, operands[4], ! operands[3], operands[2], ! operands[1], operands[5])); emit_insn (gen_aarch64_pred_fcmla (operands[0], operands[4], ! operands[3], operands[2], tmp, operands[5])); DONE; }) --- 7261,7271 ---- rtx tmp = gen_reg_rtx (mode); emit_insn (gen_aarch64_pred_fcmla (tmp, operands[4], ! operands[2], operands[1], ! operands[3], operands[5])); emit_insn (gen_aarch64_pred_fcmla (operands[0], operands[4], ! operands[2], operands[1], tmp, operands[5])); DONE; }) diff -Nrcpad gcc-11.2.0/gcc/config/aarch64/aarch64-tune.md gcc-11.3.0/gcc/config/aarch64/aarch64-tune.md *** gcc-11.2.0/gcc/config/aarch64/aarch64-tune.md Wed Jul 28 06:55:43 2021 --- gcc-11.3.0/gcc/config/aarch64/aarch64-tune.md Thu Apr 21 07:59:35 2022 *************** *** 1,5 **** ;; -*- buffer-read-only: t -*- ;; Generated automatically by gentune.sh from aarch64-cores.def (define_attr "tune" ! "cortexa34,cortexa35,cortexa53,cortexa57,cortexa72,cortexa73,thunderx,thunderxt88p1,thunderxt88,octeontx,octeontxt81,octeontxt83,thunderxt81,thunderxt83,emag,xgene1,falkor,qdf24xx,exynosm1,phecda,thunderx2t99p1,vulcan,thunderx2t99,cortexa55,cortexa75,cortexa76,cortexa76ae,cortexa77,cortexa78,cortexa78ae,cortexa78c,cortexa65,cortexa65ae,cortexx1,ares,neoversen1,neoversee1,octeontx2,octeontx2t98,octeontx2t96,octeontx2t93,octeontx2f95,octeontx2f95n,octeontx2f95mm,a64fx,tsv110,thunderx3t110,zeus,neoversev1,saphira,neoversen2,cortexa57cortexa53,cortexa72cortexa53,cortexa73cortexa35,cortexa73cortexa53,cortexa75cortexa55,cortexa76cortexa55,cortexr82" (const (symbol_ref "((enum attr_tune) aarch64_tune)"))) --- 1,5 ---- ;; -*- buffer-read-only: t -*- ;; Generated automatically by gentune.sh from aarch64-cores.def (define_attr "tune" ! "cortexa34,cortexa35,cortexa53,cortexa57,cortexa72,cortexa73,thunderx,thunderxt88p1,thunderxt88,octeontx,octeontxt81,octeontxt83,thunderxt81,thunderxt83,ampere1,emag,xgene1,falkor,qdf24xx,exynosm1,phecda,thunderx2t99p1,vulcan,thunderx2t99,cortexa55,cortexa75,cortexa76,cortexa76ae,cortexa77,cortexa78,cortexa78ae,cortexa78c,cortexa65,cortexa65ae,cortexx1,ares,neoversen1,neoversee1,octeontx2,octeontx2t98,octeontx2t96,octeontx2t93,octeontx2f95,octeontx2f95n,octeontx2f95mm,a64fx,tsv110,thunderx3t110,zeus,neoversev1,neoverse512tvb,saphira,neoversen2,cortexa57cortexa53,cortexa72cortexa53,cortexa73cortexa35,cortexa73cortexa53,cortexa75cortexa55,cortexa76cortexa55,cortexr82" (const (symbol_ref "((enum attr_tune) aarch64_tune)"))) diff -Nrcpad gcc-11.2.0/gcc/config/aarch64/aarch64.c gcc-11.3.0/gcc/config/aarch64/aarch64.c *** gcc-11.2.0/gcc/config/aarch64/aarch64.c Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/aarch64/aarch64.c Thu Apr 21 07:58:52 2022 *************** *** 20,27 **** #define IN_TARGET_CODE 1 - #include "config.h" #define INCLUDE_STRING #include "system.h" #include "coretypes.h" #include "backend.h" --- 20,28 ---- #define IN_TARGET_CODE 1 #define INCLUDE_STRING + #define INCLUDE_ALGORITHM + #include "config.h" #include "system.h" #include "coretypes.h" #include "backend.h" *************** *** 76,81 **** --- 77,83 ---- #include "function-abi.h" #include "gimple-pretty-print.h" #include "tree-ssa-loop-niter.h" + #include "fractional-cost.h" /* This file should be included last. */ #include "target-def.h" *************** static const sve_vec_cost generic_sve_ve *** 675,680 **** --- 677,684 ---- 2, /* fadda_f16_cost */ 2, /* fadda_f32_cost */ 2, /* fadda_f64_cost */ + 4, /* gather_load_x32_cost */ + 2, /* gather_load_x64_cost */ 1 /* scatter_store_elt_cost */ }; *************** static const sve_vec_cost a64fx_sve_vect *** 744,749 **** --- 748,755 ---- 13, /* fadda_f16_cost */ 13, /* fadda_f32_cost */ 13, /* fadda_f64_cost */ + 64, /* gather_load_x32_cost */ + 32, /* gather_load_x64_cost */ 1 /* scatter_store_elt_cost */ }; *************** static const struct cpu_vector_cost thun *** 1062,1067 **** --- 1068,1110 ---- nullptr /* issue_info */ }; + static const advsimd_vec_cost ampere1_advsimd_vector_cost = + { + 3, /* int_stmt_cost */ + 3, /* fp_stmt_cost */ + 0, /* ld2_st2_permute_cost */ + 0, /* ld3_st3_permute_cost */ + 0, /* ld4_st4_permute_cost */ + 2, /* permute_cost */ + 12, /* reduc_i8_cost */ + 9, /* reduc_i16_cost */ + 6, /* reduc_i32_cost */ + 5, /* reduc_i64_cost */ + 9, /* reduc_f16_cost */ + 6, /* reduc_f32_cost */ + 5, /* reduc_f64_cost */ + 8, /* store_elt_extra_cost */ + 6, /* vec_to_scalar_cost */ + 7, /* scalar_to_vec_cost */ + 5, /* align_load_cost */ + 5, /* unalign_load_cost */ + 2, /* unalign_store_cost */ + 2 /* store_cost */ + }; + + /* Ampere-1 costs for vector insn classes. */ + static const struct cpu_vector_cost ampere1_vector_cost = + { + 1, /* scalar_int_stmt_cost */ + 1, /* scalar_fp_stmt_cost */ + 4, /* scalar_load_cost */ + 1, /* scalar_store_cost */ + 1, /* cond_taken_branch_cost */ + 1, /* cond_not_taken_branch_cost */ + &ere1_advsimd_vector_cost, /* advsimd */ + nullptr, /* sve */ + nullptr /* issue_info */ + }; /* Generic costs for branch instructions. */ static const struct cpu_branch_cost generic_branch_cost = *************** static const cpu_prefetch_tune a64fx_pre *** 1205,1210 **** --- 1248,1264 ---- -1 /* default_opt_level */ }; + static const cpu_prefetch_tune ampere1_prefetch_tune = + { + 0, /* num_slots */ + 64, /* l1_cache_size */ + 64, /* l1_cache_line_size */ + 2048, /* l2_cache_size */ + true, /* prefetch_dynamic_strides */ + -1, /* minimum_stride */ + -1 /* default_opt_level */ + }; + static const struct tune_params generic_tunings = { &cortexa57_extra_costs, *************** static const struct tune_params neoverse *** 1665,1670 **** --- 1719,1754 ---- &generic_prefetch_tune }; + static const struct tune_params ampere1_tunings = + { + &ere1_extra_costs, + &generic_addrcost_table, + &generic_regmove_cost, + &ere1_vector_cost, + &generic_branch_cost, + &generic_approx_modes, + SVE_NOT_IMPLEMENTED, /* sve_width */ + 4, /* memmov_cost */ + 4, /* issue_rate */ + (AARCH64_FUSE_ADRP_ADD | AARCH64_FUSE_AES_AESMC | + AARCH64_FUSE_MOV_MOVK | AARCH64_FUSE_MOVK_MOVK | + AARCH64_FUSE_ALU_BRANCH /* adds, ands, bics, ccmp, ccmn */ | + AARCH64_FUSE_CMP_BRANCH), + /* fusible_ops */ + "32", /* function_align. */ + "4", /* jump_align. */ + "32:16", /* loop_align. */ + 2, /* int_reassoc_width. */ + 4, /* fp_reassoc_width. */ + 2, /* vec_reassoc_width. */ + 2, /* min_div_recip_mul_sf. */ + 2, /* min_div_recip_mul_df. */ + 0, /* max_case_values. */ + tune_params::AUTOPREFETCHER_WEAK, /* autoprefetcher_model. */ + (AARCH64_EXTRA_TUNE_NONE), /* tune_flags. */ + &ere1_prefetch_tune + }; + static const advsimd_vec_cost neoversev1_advsimd_vector_cost = { 2, /* int_stmt_cost */ *************** static const sve_vec_cost neoversev1_sve *** 1739,1744 **** --- 1823,1830 ---- 19, /* fadda_f16_cost */ 11, /* fadda_f32_cost */ 8, /* fadda_f64_cost */ + 32, /* gather_load_x32_cost */ + 16, /* gather_load_x64_cost */ 3 /* scatter_store_elt_cost */ }; *************** static const struct tune_params neoverse *** 1836,1841 **** --- 1922,2057 ---- &generic_prefetch_tune }; + static const sve_vec_cost neoverse512tvb_sve_vector_cost = + { + { + 2, /* int_stmt_cost */ + 2, /* fp_stmt_cost */ + 4, /* ld2_st2_permute_cost */ + 5, /* ld3_st3_permute_cost */ + 5, /* ld4_st4_permute_cost */ + 3, /* permute_cost */ + /* Theoretically, a reduction involving 15 scalar ADDs could + complete in ~5 cycles and would have a cost of 15. Assume that + [SU]ADDV completes in 11 cycles and so give it a cost of 15 + 6. */ + 21, /* reduc_i8_cost */ + /* Likewise for 7 scalar ADDs (~3 cycles) vs. 9: 7 + 6. */ + 13, /* reduc_i16_cost */ + /* Likewise for 3 scalar ADDs (~2 cycles) vs. 8: 3 + 6. */ + 9, /* reduc_i32_cost */ + /* Likewise for 1 scalar ADD (1 cycle) vs. 8: 1 + 7. */ + 8, /* reduc_i64_cost */ + /* Theoretically, a reduction involving 7 scalar FADDs could + complete in ~6 cycles and would have a cost of 14. Assume that + FADDV completes in 8 cycles and so give it a cost of 14 + 2. */ + 16, /* reduc_f16_cost */ + /* Likewise for 3 scalar FADDs (~4 cycles) vs. 6: 6 + 2. */ + 8, /* reduc_f32_cost */ + /* Likewise for 1 scalar FADD (2 cycles) vs. 4: 2 + 2. */ + 4, /* reduc_f64_cost */ + 2, /* store_elt_extra_cost */ + /* This value is just inherited from the Cortex-A57 table. */ + 8, /* vec_to_scalar_cost */ + /* This depends very much on what the scalar value is and + where it comes from. E.g. some constants take two dependent + instructions or a load, while others might be moved from a GPR. + 4 seems to be a reasonable compromise in practice. */ + 4, /* scalar_to_vec_cost */ + 4, /* align_load_cost */ + 4, /* unalign_load_cost */ + /* Although stores generally have a latency of 2 and compete for the + vector pipes, in practice it's better not to model that. */ + 1, /* unalign_store_cost */ + 1 /* store_cost */ + }, + 3, /* clast_cost */ + 10, /* fadda_f16_cost */ + 6, /* fadda_f32_cost */ + 4, /* fadda_f64_cost */ + /* A strided Advanced SIMD x64 load would take two parallel FP loads + (6 cycles) plus an insertion (2 cycles). Assume a 64-bit SVE gather + is 1 cycle more. The Advanced SIMD version is costed as 2 scalar loads + (cost 8) and a vec_construct (cost 2). Add a full vector operation + (cost 2) to that, to avoid the difference being lost in rounding. + + There is no easy comparison between a strided Advanced SIMD x32 load + and an SVE 32-bit gather, but cost an SVE 32-bit gather as 1 vector + operation more than a 64-bit gather. */ + 14, /* gather_load_x32_cost */ + 12, /* gather_load_x64_cost */ + 3 /* scatter_store_elt_cost */ + }; + + static const aarch64_sve_vec_issue_info neoverse512tvb_sve_issue_info = + { + { + { + 3, /* loads_per_cycle */ + 2, /* stores_per_cycle */ + 4, /* general_ops_per_cycle */ + 0, /* fp_simd_load_general_ops */ + 1 /* fp_simd_store_general_ops */ + }, + 2, /* ld2_st2_general_ops */ + 2, /* ld3_st3_general_ops */ + 3 /* ld4_st4_general_ops */ + }, + 2, /* pred_ops_per_cycle */ + 2, /* while_pred_ops */ + 2, /* int_cmp_pred_ops */ + 1, /* fp_cmp_pred_ops */ + 1, /* gather_scatter_pair_general_ops */ + 1 /* gather_scatter_pair_pred_ops */ + }; + + static const aarch64_vec_issue_info neoverse512tvb_vec_issue_info = + { + &neoversev1_scalar_issue_info, + &neoversev1_advsimd_issue_info, + &neoverse512tvb_sve_issue_info + }; + + static const struct cpu_vector_cost neoverse512tvb_vector_cost = + { + 1, /* scalar_int_stmt_cost */ + 2, /* scalar_fp_stmt_cost */ + 4, /* scalar_load_cost */ + 1, /* scalar_store_cost */ + 1, /* cond_taken_branch_cost */ + 1, /* cond_not_taken_branch_cost */ + &neoversev1_advsimd_vector_cost, /* advsimd */ + &neoverse512tvb_sve_vector_cost, /* sve */ + &neoverse512tvb_vec_issue_info /* issue_info */ + }; + + static const struct tune_params neoverse512tvb_tunings = + { + &cortexa76_extra_costs, + &neoversev1_addrcost_table, + &generic_regmove_cost, + &neoverse512tvb_vector_cost, + &generic_branch_cost, + &generic_approx_modes, + SVE_128 | SVE_256, /* sve_width */ + 4, /* memmov_cost */ + 3, /* issue_rate */ + (AARCH64_FUSE_AES_AESMC | AARCH64_FUSE_CMP_BRANCH), /* fusible_ops */ + "32:16", /* function_align. */ + "4", /* jump_align. */ + "32:16", /* loop_align. */ + 2, /* int_reassoc_width. */ + 4, /* fp_reassoc_width. */ + 2, /* vec_reassoc_width. */ + 2, /* min_div_recip_mul_sf. */ + 2, /* min_div_recip_mul_df. */ + 0, /* max_case_values. */ + tune_params::AUTOPREFETCHER_WEAK, /* autoprefetcher_model. */ + (AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS + | AARCH64_EXTRA_TUNE_USE_NEW_VECTOR_COSTS + | AARCH64_EXTRA_TUNE_MATCHED_VECTOR_THROUGHPUT), /* tune_flags. */ + &generic_prefetch_tune + }; + static const struct tune_params neoversen2_tunings = { &cortexa76_extra_costs, *************** aarch64_load_symref_appropriately (rtx d *** 3532,3538 **** if (can_create_pseudo_p ()) tmp_reg = gen_reg_rtx (mode); ! emit_move_insn (tmp_reg, gen_rtx_HIGH (mode, imm)); emit_insn (gen_add_losym (dest, tmp_reg, imm)); return; } --- 3748,3754 ---- if (can_create_pseudo_p ()) tmp_reg = gen_reg_rtx (mode); ! emit_move_insn (tmp_reg, gen_rtx_HIGH (mode, copy_rtx (imm))); emit_insn (gen_add_losym (dest, tmp_reg, imm)); return; } *************** aarch64_builtin_vectorization_cost (enum *** 14616,14621 **** --- 14832,14849 ---- } } + /* Return true if an operaton of kind KIND for STMT_INFO represents + the extraction of an element from a vector in preparation for + storing the element to memory. */ + static bool + aarch64_is_store_elt_extraction (vect_cost_for_stmt kind, + stmt_vec_info stmt_info) + { + return (kind == vec_to_scalar + && STMT_VINFO_DATA_REF (stmt_info) + && DR_IS_WRITE (STMT_VINFO_DATA_REF (stmt_info))); + } + /* Return true if STMT_INFO represents part of a reduction. */ static bool aarch64_is_reduction (stmt_vec_info stmt_info) *************** aarch64_integer_truncation_p (stmt_vec_i *** 14749,14757 **** /* Return true if STMT_INFO is the second part of a two-statement multiply-add or multiply-subtract sequence that might be suitable for fusing into a ! single instruction. */ static bool ! aarch64_multiply_add_p (vec_info *vinfo, stmt_vec_info stmt_info) { gassign *assign = dyn_cast (stmt_info->stmt); if (!assign) --- 14977,14988 ---- /* Return true if STMT_INFO is the second part of a two-statement multiply-add or multiply-subtract sequence that might be suitable for fusing into a ! single instruction. If VEC_FLAGS is zero, analyze the operation as ! a scalar one, otherwise analyze it as an operation on vectors with those ! VEC_* flags. */ static bool ! aarch64_multiply_add_p (vec_info *vinfo, stmt_vec_info stmt_info, ! unsigned int vec_flags) { gassign *assign = dyn_cast (stmt_info->stmt); if (!assign) *************** aarch64_multiply_add_p (vec_info *vinfo, *** 14779,14784 **** --- 15010,15031 ---- if (!rhs_assign || gimple_assign_rhs_code (rhs_assign) != MULT_EXPR) continue; + if (vec_flags & VEC_ADVSIMD) + { + /* Scalar and SVE code can tie the result to any FMLA input (or none, + although that requires a MOVPRFX for SVE). However, Advanced SIMD + only supports MLA forms, so will require a move if the result + cannot be tied to the accumulator. The most important case in + which this is true is when the accumulator input is invariant. */ + rhs = gimple_op (assign, 3 - i); + if (TREE_CODE (rhs) != SSA_NAME) + return false; + def_stmt_info = vinfo->lookup_def (rhs); + if (!def_stmt_info + || STMT_VINFO_DEF_TYPE (def_stmt_info) == vect_external_def) + return false; + } + return true; } return false; *************** aarch64_in_loop_reduction_latency (vec_i *** 14914,14923 **** for STMT_INFO, which has cost kind KIND. If this is a scalar operation, try to subdivide the target-independent categorization provided by KIND to get a more accurate cost. */ ! static unsigned int aarch64_detect_scalar_stmt_subtype (vec_info *vinfo, vect_cost_for_stmt kind, stmt_vec_info stmt_info, ! unsigned int stmt_cost) { /* Detect an extension of a loaded value. In general, we'll be able to fuse the extension with the load. */ --- 15161,15170 ---- for STMT_INFO, which has cost kind KIND. If this is a scalar operation, try to subdivide the target-independent categorization provided by KIND to get a more accurate cost. */ ! static fractional_cost aarch64_detect_scalar_stmt_subtype (vec_info *vinfo, vect_cost_for_stmt kind, stmt_vec_info stmt_info, ! fractional_cost stmt_cost) { /* Detect an extension of a loaded value. In general, we'll be able to fuse the extension with the load. */ *************** aarch64_detect_scalar_stmt_subtype (vec_ *** 14933,14943 **** the target-independent categorization provided by KIND to get a more accurate cost. WHERE specifies where the cost associated with KIND occurs. */ ! static unsigned int aarch64_detect_vector_stmt_subtype (vec_info *vinfo, vect_cost_for_stmt kind, stmt_vec_info stmt_info, tree vectype, enum vect_cost_model_location where, ! unsigned int stmt_cost) { const simd_vec_cost *simd_costs = aarch64_simd_vec_costs (vectype); const sve_vec_cost *sve_costs = nullptr; --- 15180,15190 ---- the target-independent categorization provided by KIND to get a more accurate cost. WHERE specifies where the cost associated with KIND occurs. */ ! static fractional_cost aarch64_detect_vector_stmt_subtype (vec_info *vinfo, vect_cost_for_stmt kind, stmt_vec_info stmt_info, tree vectype, enum vect_cost_model_location where, ! fractional_cost stmt_cost) { const simd_vec_cost *simd_costs = aarch64_simd_vec_costs (vectype); const sve_vec_cost *sve_costs = nullptr; *************** aarch64_detect_vector_stmt_subtype (vec_ *** 14953,14963 **** /* Detect cases in which vec_to_scalar is describing the extraction of a vector element in preparation for a scalar store. The store itself is costed separately. */ ! if (kind == vec_to_scalar ! && STMT_VINFO_DATA_REF (stmt_info) ! && DR_IS_WRITE (STMT_VINFO_DATA_REF (stmt_info))) return simd_costs->store_elt_extra_cost; /* Detect cases in which a scalar_store is really storing one element in a scatter operation. */ if (kind == scalar_store --- 15200,15221 ---- /* Detect cases in which vec_to_scalar is describing the extraction of a vector element in preparation for a scalar store. The store itself is costed separately. */ ! if (aarch64_is_store_elt_extraction (kind, stmt_info)) return simd_costs->store_elt_extra_cost; + /* Detect SVE gather loads, which are costed as a single scalar_load + for each element. We therefore need to divide the full-instruction + cost by the number of elements in the vector. */ + if (kind == scalar_load + && sve_costs + && STMT_VINFO_MEMORY_ACCESS_TYPE (stmt_info) == VMAT_GATHER_SCATTER) + { + unsigned int nunits = vect_nunits_for_cost (vectype); + if (GET_MODE_UNIT_BITSIZE (TYPE_MODE (vectype)) == 64) + return { sve_costs->gather_load_x64_cost, nunits }; + return { sve_costs->gather_load_x32_cost, nunits }; + } + /* Detect cases in which a scalar_store is really storing one element in a scatter operation. */ if (kind == scalar_store *************** aarch64_detect_vector_stmt_subtype (vec_ *** 15018,15027 **** for STMT_INFO, which has cost kind KIND and which when vectorized would operate on vector type VECTYPE. Adjust the cost as necessary for SVE targets. */ ! static unsigned int aarch64_sve_adjust_stmt_cost (class vec_info *vinfo, vect_cost_for_stmt kind, stmt_vec_info stmt_info, tree vectype, ! unsigned int stmt_cost) { /* Unlike vec_promote_demote, vector_stmt conversions do not change the vector register size or number of units. Integer promotions of this --- 15276,15285 ---- for STMT_INFO, which has cost kind KIND and which when vectorized would operate on vector type VECTYPE. Adjust the cost as necessary for SVE targets. */ ! static fractional_cost aarch64_sve_adjust_stmt_cost (class vec_info *vinfo, vect_cost_for_stmt kind, stmt_vec_info stmt_info, tree vectype, ! fractional_cost stmt_cost) { /* Unlike vec_promote_demote, vector_stmt conversions do not change the vector register size or number of units. Integer promotions of this *************** aarch64_sve_adjust_stmt_cost (class vec_ *** 15085,15093 **** /* STMT_COST is the cost calculated for STMT_INFO, which has cost kind KIND and which when vectorized would operate on vector type VECTYPE. Add the cost of any embedded operations. */ ! static unsigned int aarch64_adjust_stmt_cost (vect_cost_for_stmt kind, stmt_vec_info stmt_info, ! tree vectype, unsigned int stmt_cost) { if (vectype) { --- 15343,15351 ---- /* STMT_COST is the cost calculated for STMT_INFO, which has cost kind KIND and which when vectorized would operate on vector type VECTYPE. Add the cost of any embedded operations. */ ! static fractional_cost aarch64_adjust_stmt_cost (vect_cost_for_stmt kind, stmt_vec_info stmt_info, ! tree vectype, fractional_cost stmt_cost) { if (vectype) { *************** aarch64_count_ops (class vec_info *vinfo *** 15203,15209 **** } /* Assume that multiply-adds will become a single operation. */ ! if (stmt_info && aarch64_multiply_add_p (vinfo, stmt_info)) return; /* When costing scalar statements in vector code, the count already --- 15461,15467 ---- } /* Assume that multiply-adds will become a single operation. */ ! if (stmt_info && aarch64_multiply_add_p (vinfo, stmt_info, vec_flags)) return; /* When costing scalar statements in vector code, the count already *************** aarch64_add_stmt_cost (class vec_info *v *** 15341,15349 **** if (flag_vect_cost_model) { ! int stmt_cost = aarch64_builtin_vectorization_cost (kind, vectype, misalign); /* Do one-time initialization based on the vinfo. */ loop_vec_info loop_vinfo = dyn_cast (vinfo); bb_vec_info bb_vinfo = dyn_cast (vinfo); --- 15599,15611 ---- if (flag_vect_cost_model) { ! fractional_cost stmt_cost = aarch64_builtin_vectorization_cost (kind, vectype, misalign); + bool in_inner_loop_p = (where == vect_body + && stmt_info + && stmt_in_inner_loop_p (vinfo, stmt_info)); + /* Do one-time initialization based on the vinfo. */ loop_vec_info loop_vinfo = dyn_cast (vinfo); bb_vec_info bb_vinfo = dyn_cast (vinfo); *************** aarch64_add_stmt_cost (class vec_info *v *** 15363,15368 **** --- 15625,15636 ---- if (vectype && aarch64_sve_only_stmt_p (stmt_info, vectype)) costs->saw_sve_only_op = true; + /* If we scalarize a strided store, the vectorizer costs one + vec_to_scalar for each element. However, we can store the first + element using an FP store without a separate extract step. */ + if (aarch64_is_store_elt_extraction (kind, stmt_info)) + count -= 1; + stmt_cost = aarch64_detect_scalar_stmt_subtype (vinfo, kind, stmt_info, stmt_cost); *************** aarch64_add_stmt_cost (class vec_info *v *** 15384,15397 **** stmt_cost = aarch64_adjust_stmt_cost (kind, stmt_info, vectype, stmt_cost); ! /* If we're recording a nonzero vector loop body cost, also estimate ! the operations that would need to be issued by all relevant ! implementations of the loop. */ auto *issue_info = aarch64_tune_params.vec_costs->issue_info; if (loop_vinfo && issue_info && costs->vec_flags && where == vect_body && vectype && stmt_cost != 0) { --- 15652,15666 ---- stmt_cost = aarch64_adjust_stmt_cost (kind, stmt_info, vectype, stmt_cost); ! /* If we're recording a nonzero vector loop body cost for the ! innermost loop, also estimate the operations that would need ! to be issued by all relevant implementations of the loop. */ auto *issue_info = aarch64_tune_params.vec_costs->issue_info; if (loop_vinfo && issue_info && costs->vec_flags && where == vect_body + && (!LOOP_VINFO_LOOP (loop_vinfo)->inner || in_inner_loop_p) && vectype && stmt_cost != 0) { *************** aarch64_add_stmt_cost (class vec_info *v *** 15435,15445 **** /* Statements in an inner loop relative to the loop being vectorized are weighted more heavily. The value here is arbitrary and could potentially be improved with analysis. */ ! if (where == vect_body && stmt_info ! && stmt_in_inner_loop_p (vinfo, stmt_info)) count *= 50; /* FIXME */ ! retval = (unsigned) (count * stmt_cost); costs->region[where] += retval; } --- 15704,15713 ---- /* Statements in an inner loop relative to the loop being vectorized are weighted more heavily. The value here is arbitrary and could potentially be improved with analysis. */ ! if (in_inner_loop_p) count *= 50; /* FIXME */ ! retval = (count * stmt_cost).ceil (); costs->region[where] += retval; } *************** aarch64_sve_op_count::dump () const *** 15471,15490 **** /* Use ISSUE_INFO to estimate the minimum number of cycles needed to issue the operations described by OPS. This is a very simplistic model! */ ! static unsigned int aarch64_estimate_min_cycles_per_iter (const aarch64_vec_op_count *ops, const aarch64_base_vec_issue_info *issue_info) { ! unsigned int cycles = MAX (ops->reduction_latency, 1); ! cycles = MAX (cycles, CEIL (ops->stores, issue_info->stores_per_cycle)); ! cycles = MAX (cycles, CEIL (ops->loads + ops->stores, ! issue_info->loads_stores_per_cycle)); ! cycles = MAX (cycles, CEIL (ops->general_ops, ! issue_info->general_ops_per_cycle)); return cycles; } /* BODY_COST is the cost of a vector loop body recorded in COSTS. Adjust the cost as necessary and return the new cost. */ static unsigned int --- 15739,15903 ---- /* Use ISSUE_INFO to estimate the minimum number of cycles needed to issue the operations described by OPS. This is a very simplistic model! */ ! static fractional_cost aarch64_estimate_min_cycles_per_iter (const aarch64_vec_op_count *ops, const aarch64_base_vec_issue_info *issue_info) { ! fractional_cost cycles = MAX (ops->reduction_latency, 1); ! cycles = std::max (cycles, { ops->stores, issue_info->stores_per_cycle }); ! cycles = std::max (cycles, { ops->loads + ops->stores, ! issue_info->loads_stores_per_cycle }); ! cycles = std::max (cycles, { ops->general_ops, ! issue_info->general_ops_per_cycle }); return cycles; } + /* Subroutine of aarch64_adjust_body_cost for handling SVE. + Use ISSUE_INFO to work out how fast the SVE code can be issued and compare + it to the equivalent value for scalar code (SCALAR_CYCLES_PER_ITER). + If COULD_USE_ADVSIMD is true, also compare it to the issue rate of + Advanced SIMD code (ADVSIMD_CYCLES_PER_ITER). + + COSTS is as for aarch64_adjust_body_cost. ORIG_BODY_COST is the cost + originally passed to aarch64_adjust_body_cost and *BODY_COST is the current + value of the adjusted cost. *SHOULD_DISPARAGE is true if we think the loop + body is too expensive. */ + + static fractional_cost + aarch64_adjust_body_cost_sve (const aarch64_vector_costs *costs, + const aarch64_vec_issue_info *issue_info, + fractional_cost scalar_cycles_per_iter, + fractional_cost advsimd_cycles_per_iter, + bool could_use_advsimd, + unsigned int orig_body_cost, + unsigned int *body_cost, + bool *should_disparage) + { + /* Estimate the minimum number of cycles per iteration needed to issue + non-predicate operations. */ + fractional_cost sve_nonpred_issue_cycles_per_iter + = aarch64_estimate_min_cycles_per_iter (&costs->sve_ops, + issue_info->sve); + + /* Estimate the minimum number of cycles per iteration needed to rename + SVE instructions. + + ??? For now this is done inline rather than via cost tables, since it + isn't clear how it should be parameterized for the general case. */ + fractional_cost sve_rename_cycles_per_iter = 0; + if (issue_info == &neoverse512tvb_vec_issue_info) + /* + 1 for an addition. We've already counted a general op for each + store, so we don't need to account for stores separately. The branch + reads no registers and so does not need to be counted either. + + ??? This value is very much on the pessimistic side, but seems to work + pretty well in practice. */ + sve_rename_cycles_per_iter + = { costs->sve_ops.general_ops + + costs->sve_ops.loads + + costs->sve_ops.pred_ops + 1, 5 }; + + /* Combine the rename and non-predicate issue limits into a single value. */ + fractional_cost sve_nonpred_cycles_per_iter + = std::max (sve_nonpred_issue_cycles_per_iter, sve_rename_cycles_per_iter); + + /* Separately estimate the minimum number of cycles per iteration needed + to issue the predicate operations. */ + fractional_cost sve_pred_issue_cycles_per_iter + = { costs->sve_ops.pred_ops, issue_info->sve->pred_ops_per_cycle }; + + /* Calculate the overall limit on the number of cycles per iteration. */ + fractional_cost sve_cycles_per_iter + = std::max (sve_nonpred_cycles_per_iter, sve_pred_issue_cycles_per_iter); + + if (dump_enabled_p ()) + { + costs->sve_ops.dump (); + dump_printf_loc (MSG_NOTE, vect_location, + " estimated cycles per iteration = %f\n", + sve_cycles_per_iter.as_double ()); + if (costs->sve_ops.pred_ops) + dump_printf_loc (MSG_NOTE, vect_location, + " predicate issue = %f\n", + sve_pred_issue_cycles_per_iter.as_double ()); + if (costs->sve_ops.pred_ops || sve_rename_cycles_per_iter) + dump_printf_loc (MSG_NOTE, vect_location, + " non-predicate issue = %f\n", + sve_nonpred_issue_cycles_per_iter.as_double ()); + if (sve_rename_cycles_per_iter) + dump_printf_loc (MSG_NOTE, vect_location, " rename = %f\n", + sve_rename_cycles_per_iter.as_double ()); + } + + /* If the scalar version of the loop could issue at least as + quickly as the predicate parts of the SVE loop, make the SVE loop + prohibitively expensive. In this case vectorization is adding an + overhead that the original scalar code didn't have. + + This is mostly intended to detect cases in which WHILELOs dominate + for very tight loops, which is something that normal latency-based + costs would not model. Adding this kind of cliffedge would be + too drastic for scalar_cycles_per_iter vs. sve_cycles_per_iter; + code in the caller handles that case in a more conservative way. */ + fractional_cost sve_estimate = sve_pred_issue_cycles_per_iter + 1; + if (scalar_cycles_per_iter < sve_estimate) + { + unsigned int min_cost + = orig_body_cost * estimated_poly_value (BYTES_PER_SVE_VECTOR); + if (*body_cost < min_cost) + { + if (dump_enabled_p ()) + dump_printf_loc (MSG_NOTE, vect_location, + "Increasing body cost to %d because the" + " scalar code could issue within the limit" + " imposed by predicate operations\n", + min_cost); + *body_cost = min_cost; + *should_disparage = true; + } + } + + /* If it appears that the Advanced SIMD version of a loop could issue + more quickly than the SVE one, increase the SVE cost in proportion + to the difference. The intention is to make Advanced SIMD preferable + in cases where an Advanced SIMD version exists, without increasing + the costs so much that SVE won't be used at all. + + The reasoning is similar to the scalar vs. predicate comparison above: + if the issue rate of the SVE code is limited by predicate operations + (i.e. if sve_pred_issue_cycles_per_iter > sve_nonpred_cycles_per_iter), + and if the Advanced SIMD code could issue within the limit imposed + by the predicate operations, the predicate operations are adding an + overhead that the original code didn't have and so we should prefer + the Advanced SIMD version. However, if the predicate operations + do not dominate in this way, we should only increase the cost of + the SVE code if sve_cycles_per_iter is strictly greater than + advsimd_cycles_per_iter. Given rounding effects, this should mean + that Advanced SIMD is either better or at least no worse. */ + if (sve_nonpred_cycles_per_iter >= sve_pred_issue_cycles_per_iter) + sve_estimate = sve_cycles_per_iter; + if (could_use_advsimd && advsimd_cycles_per_iter < sve_estimate) + { + /* This ensures that min_cost > orig_body_cost * 2. */ + unsigned int factor = fractional_cost::scale (1, sve_estimate, + advsimd_cycles_per_iter); + unsigned int min_cost = orig_body_cost * factor + 1; + if (*body_cost < min_cost) + { + if (dump_enabled_p ()) + dump_printf_loc (MSG_NOTE, vect_location, + "Increasing body cost to %d because Advanced" + " SIMD code could issue as quickly\n", + min_cost); + *body_cost = min_cost; + *should_disparage = true; + } + } + + return sve_cycles_per_iter; + } + /* BODY_COST is the cost of a vector loop body recorded in COSTS. Adjust the cost as necessary and return the new cost. */ static unsigned int *************** aarch64_adjust_body_cost (aarch64_vector *** 15535,15546 **** if (!issue_info) return body_cost; ! unsigned int scalar_cycles_per_iter = aarch64_estimate_min_cycles_per_iter (&costs->scalar_ops, issue_info->scalar); ! unsigned int advsimd_cycles_per_iter = aarch64_estimate_min_cycles_per_iter (&costs->advsimd_ops, issue_info->advsimd); bool could_use_advsimd = ((costs->vec_flags & VEC_ADVSIMD) || (aarch64_autovec_preference != 2 --- 15948,15961 ---- if (!issue_info) return body_cost; ! fractional_cost scalar_cycles_per_iter = aarch64_estimate_min_cycles_per_iter (&costs->scalar_ops, issue_info->scalar); ! ! fractional_cost advsimd_cycles_per_iter = aarch64_estimate_min_cycles_per_iter (&costs->advsimd_ops, issue_info->advsimd); + bool could_use_advsimd = ((costs->vec_flags & VEC_ADVSIMD) || (aarch64_autovec_preference != 2 *************** aarch64_adjust_body_cost (aarch64_vector *** 15557,15672 **** dump_printf_loc (MSG_NOTE, vect_location, "Scalar issue estimate:\n"); costs->scalar_ops.dump (); dump_printf_loc (MSG_NOTE, vect_location, ! " estimated cycles per iteration = %d\n", ! scalar_cycles_per_iter); if (could_use_advsimd) { dump_printf_loc (MSG_NOTE, vect_location, "Advanced SIMD issue estimate:\n"); costs->advsimd_ops.dump (); dump_printf_loc (MSG_NOTE, vect_location, ! " estimated cycles per iteration = %d\n", ! advsimd_cycles_per_iter); } else dump_printf_loc (MSG_NOTE, vect_location, "Loop could not use Advanced SIMD\n"); } ! uint64_t vector_cycles_per_iter = advsimd_cycles_per_iter; unsigned int vector_reduction_latency = costs->advsimd_ops.reduction_latency; if ((costs->vec_flags & VEC_ANY_SVE) && issue_info->sve) { - /* Estimate the minimum number of cycles per iteration needed to issue - non-predicate operations. */ - unsigned int sve_cycles_per_iter - = aarch64_estimate_min_cycles_per_iter (&costs->sve_ops, - issue_info->sve); - - /* Separately estimate the minimum number of cycles per iteration needed - to issue the predicate operations. */ - unsigned int pred_cycles_per_iter - = CEIL (costs->sve_ops.pred_ops, issue_info->sve->pred_ops_per_cycle); - if (dump_enabled_p ()) ! { ! dump_printf_loc (MSG_NOTE, vect_location, "SVE issue estimate:\n"); ! costs->sve_ops.dump (); ! dump_printf_loc (MSG_NOTE, vect_location, ! " estimated cycles per iteration for non-predicate" ! " operations = %d\n", sve_cycles_per_iter); ! if (costs->sve_ops.pred_ops) ! dump_printf_loc (MSG_NOTE, vect_location, " estimated cycles per" ! " iteration for predicate operations = %d\n", ! pred_cycles_per_iter); ! } ! ! vector_cycles_per_iter = MAX (sve_cycles_per_iter, pred_cycles_per_iter); vector_reduction_latency = costs->sve_ops.reduction_latency; ! /* If the scalar version of the loop could issue at least as ! quickly as the predicate parts of the SVE loop, make the SVE loop ! prohibitively expensive. In this case vectorization is adding an ! overhead that the original scalar code didn't have. ! ! This is mostly intended to detect cases in which WHILELOs dominate ! for very tight loops, which is something that normal latency-based ! costs would not model. Adding this kind of cliffedge would be ! too drastic for scalar_cycles_per_iter vs. sve_cycles_per_iter; ! code later in the function handles that case in a more ! conservative way. */ ! uint64_t sve_estimate = pred_cycles_per_iter + 1; ! if (scalar_cycles_per_iter < sve_estimate) ! { ! unsigned int min_cost ! = orig_body_cost * estimated_poly_value (BYTES_PER_SVE_VECTOR); ! if (body_cost < min_cost) ! { ! if (dump_enabled_p ()) ! dump_printf_loc (MSG_NOTE, vect_location, ! "Increasing body cost to %d because the" ! " scalar code could issue within the limit" ! " imposed by predicate operations\n", ! min_cost); ! body_cost = min_cost; ! should_disparage = true; ! } ! } ! ! /* If it appears that the Advanced SIMD version of a loop could issue ! more quickly than the SVE one, increase the SVE cost in proportion ! to the difference. The intention is to make Advanced SIMD preferable ! in cases where an Advanced SIMD version exists, without increasing ! the costs so much that SVE won't be used at all. ! ! The reasoning is similar to the scalar vs. predicate comparison above: ! if the issue rate of the SVE code is limited by predicate operations ! (i.e. if pred_cycles_per_iter > sve_cycles_per_iter), and if the ! Advanced SIMD code could issue within the limit imposed by the ! predicate operations, the predicate operations are adding an ! overhead that the original code didn't have and so we should prefer ! the Advanced SIMD version. However, if the predicate operations ! do not dominate in this way, we should only increase the cost of ! the SVE code if sve_cycles_per_iter is strictly greater than ! advsimd_cycles_per_iter. Given rounding effects, this should mean ! that Advanced SIMD is either better or at least no worse. */ ! if (sve_cycles_per_iter >= pred_cycles_per_iter) ! sve_estimate = sve_cycles_per_iter; ! if (could_use_advsimd && advsimd_cycles_per_iter < sve_estimate) { ! /* This ensures that min_cost > orig_body_cost * 2. */ ! unsigned int min_cost ! = orig_body_cost * CEIL (sve_estimate, advsimd_cycles_per_iter) + 1; ! if (body_cost < min_cost) ! { ! if (dump_enabled_p ()) ! dump_printf_loc (MSG_NOTE, vect_location, ! "Increasing body cost to %d because Advanced" ! " SIMD code could issue as quickly\n", ! min_cost); ! body_cost = min_cost; ! should_disparage = true; ! } } } --- 15972,16021 ---- dump_printf_loc (MSG_NOTE, vect_location, "Scalar issue estimate:\n"); costs->scalar_ops.dump (); dump_printf_loc (MSG_NOTE, vect_location, ! " estimated cycles per iteration = %f\n", ! scalar_cycles_per_iter.as_double ()); if (could_use_advsimd) { dump_printf_loc (MSG_NOTE, vect_location, "Advanced SIMD issue estimate:\n"); costs->advsimd_ops.dump (); dump_printf_loc (MSG_NOTE, vect_location, ! " estimated cycles per iteration = %f\n", ! advsimd_cycles_per_iter.as_double ()); } else dump_printf_loc (MSG_NOTE, vect_location, "Loop could not use Advanced SIMD\n"); } ! fractional_cost vector_cycles_per_iter = advsimd_cycles_per_iter; unsigned int vector_reduction_latency = costs->advsimd_ops.reduction_latency; + if ((costs->vec_flags & VEC_ANY_SVE) && issue_info->sve) { if (dump_enabled_p ()) ! dump_printf_loc (MSG_NOTE, vect_location, "SVE issue estimate:\n"); vector_reduction_latency = costs->sve_ops.reduction_latency; + vector_cycles_per_iter + = aarch64_adjust_body_cost_sve (costs, issue_info, + scalar_cycles_per_iter, + advsimd_cycles_per_iter, + could_use_advsimd, orig_body_cost, + &body_cost, &should_disparage); ! if (aarch64_tune_params.vec_costs == &neoverse512tvb_vector_cost) { ! /* Also take Neoverse V1 tuning into account, doubling the ! scalar and Advanced SIMD estimates to account for the ! doubling in SVE vector length. */ ! if (dump_enabled_p ()) ! dump_printf_loc (MSG_NOTE, vect_location, ! "Neoverse V1 estimate:\n"); ! aarch64_adjust_body_cost_sve (costs, &neoversev1_vec_issue_info, ! scalar_cycles_per_iter * 2, ! advsimd_cycles_per_iter * 2, ! could_use_advsimd, orig_body_cost, ! &body_cost, &should_disparage); } } *************** aarch64_adjust_body_cost (aarch64_vector *** 15689,15696 **** so minor differences should only result in minor changes. */ else if (scalar_cycles_per_iter < vector_cycles_per_iter) { ! body_cost = CEIL (body_cost * vector_cycles_per_iter, ! scalar_cycles_per_iter); if (dump_enabled_p ()) dump_printf_loc (MSG_NOTE, vect_location, "Increasing body cost to %d because scalar code" --- 16038,16045 ---- so minor differences should only result in minor changes. */ else if (scalar_cycles_per_iter < vector_cycles_per_iter) { ! body_cost = fractional_cost::scale (body_cost, vector_cycles_per_iter, ! scalar_cycles_per_iter); if (dump_enabled_p ()) dump_printf_loc (MSG_NOTE, vect_location, "Increasing body cost to %d because scalar code" *************** aarch64_adjust_body_cost (aarch64_vector *** 15715,15722 **** && scalar_cycles_per_iter > vector_cycles_per_iter && !should_disparage) { ! body_cost = CEIL (body_cost * vector_cycles_per_iter, ! scalar_cycles_per_iter); if (dump_enabled_p ()) dump_printf_loc (MSG_NOTE, vect_location, "Decreasing body cost to %d account for smaller" --- 16064,16071 ---- && scalar_cycles_per_iter > vector_cycles_per_iter && !should_disparage) { ! body_cost = fractional_cost::scale (body_cost, vector_cycles_per_iter, ! scalar_cycles_per_iter); if (dump_enabled_p ()) dump_printf_loc (MSG_NOTE, vect_location, "Decreasing body cost to %d account for smaller" *************** aarch64_cmp_autovec_modes (machine_mode *** 19148,19161 **** bool prefer_asimd = aarch64_autovec_preference == 3; bool prefer_sve = aarch64_autovec_preference == 4; - aarch64_sve_vector_bits_enum tune_width = aarch64_tune_params.sve_width; - poly_int64 nunits_sve = GET_MODE_NUNITS (sve_m); poly_int64 nunits_asimd = GET_MODE_NUNITS (asimd_m); /* If the CPU information does not have an SVE width registered use the generic poly_int comparison that prefers SVE. If a preference is explicitly requested avoid this path. */ ! if (tune_width == SVE_SCALABLE && !prefer_asimd && !prefer_sve) return maybe_gt (nunits_sve, nunits_asimd); --- 19497,19508 ---- bool prefer_asimd = aarch64_autovec_preference == 3; bool prefer_sve = aarch64_autovec_preference == 4; poly_int64 nunits_sve = GET_MODE_NUNITS (sve_m); poly_int64 nunits_asimd = GET_MODE_NUNITS (asimd_m); /* If the CPU information does not have an SVE width registered use the generic poly_int comparison that prefers SVE. If a preference is explicitly requested avoid this path. */ ! if (aarch64_tune_params.sve_width == SVE_SCALABLE && !prefer_asimd && !prefer_sve) return maybe_gt (nunits_sve, nunits_asimd); *************** aarch64_sve_expand_vector_init_handle_tr *** 20748,20754 **** { rtx x = builder.elt (i + nelts_reqd - n_trailing_constants); if (!valid_for_const_vector_p (elem_mode, x)) ! x = const0_rtx; v.quick_push (x); } rtx const_vec = v.build (); --- 21095,21101 ---- { rtx x = builder.elt (i + nelts_reqd - n_trailing_constants); if (!valid_for_const_vector_p (elem_mode, x)) ! x = CONST0_RTX (elem_mode); v.quick_push (x); } rtx const_vec = v.build (); *************** aarch64_evpc_ins (struct expand_vec_perm *** 22679,22689 **** } gcc_assert (extractindex < nelt); - emit_move_insn (d->target, insv); insn_code icode = code_for_aarch64_simd_vec_copy_lane (mode); expand_operand ops[5]; create_output_operand (&ops[0], d->target, mode); ! create_input_operand (&ops[1], d->target, mode); create_integer_operand (&ops[2], 1 << idx); create_input_operand (&ops[3], extractv, mode); create_integer_operand (&ops[4], extractindex); --- 23026,23035 ---- } gcc_assert (extractindex < nelt); insn_code icode = code_for_aarch64_simd_vec_copy_lane (mode); expand_operand ops[5]; create_output_operand (&ops[0], d->target, mode); ! create_input_operand (&ops[1], insv, mode); create_integer_operand (&ops[2], 1 << idx); create_input_operand (&ops[3], extractv, mode); create_integer_operand (&ops[4], extractindex); *************** aarch64_expand_setmem (rtx *operands) *** 23329,23336 **** /* Do certain trailing copies as overlapping if it's going to be cheaper. i.e. less instructions to do so. For instance doing a 15 byte copy it's more efficient to do two overlapping 8 byte copies than ! 8 + 4 + 2 + 1. */ ! if (n > 0 && n < copy_limit / 2) { next_mode = smallest_mode_for_size (n, MODE_INT); int n_bits = GET_MODE_BITSIZE (next_mode).to_constant (); --- 23675,23682 ---- /* Do certain trailing copies as overlapping if it's going to be cheaper. i.e. less instructions to do so. For instance doing a 15 byte copy it's more efficient to do two overlapping 8 byte copies than ! 8 + 4 + 2 + 1. Only do this when -mstrict-align is not supplied. */ ! if (n > 0 && n < copy_limit / 2 && !STRICT_ALIGNMENT) { next_mode = smallest_mode_for_size (n, MODE_INT); int n_bits = GET_MODE_BITSIZE (next_mode).to_constant (); *************** aarch64_estimated_poly_value (poly_int64 *** 24975,24982 **** poly_value_estimate_kind kind = POLY_VALUE_LIKELY) { ! enum aarch64_sve_vector_bits_enum width_source ! = aarch64_tune_params.sve_width; /* If there is no core-specific information then the minimum and likely values are based on 128-bit vectors and the maximum is based on --- 25321,25327 ---- poly_value_estimate_kind kind = POLY_VALUE_LIKELY) { ! unsigned int width_source = aarch64_tune_params.sve_width; /* If there is no core-specific information then the minimum and likely values are based on 128-bit vectors and the maximum is based on *************** aarch64_estimated_poly_value (poly_int64 *** 24991,24996 **** --- 25336,25349 ---- return val.coeffs[0] + val.coeffs[1] * 15; } + /* Allow sve_width to be a bitmask of different VL, treating the lowest + as likely. This could be made more general if future -mtune options + need it to be. */ + if (kind == POLY_VALUE_MAX) + width_source = 1 << floor_log2 (width_source); + else + width_source = least_bit_hwi (width_source); + /* If the core provides width information, use that. */ HOST_WIDE_INT over_128 = width_source - 128; return val.coeffs[0] + val.coeffs[1] * over_128 / 128; *************** aarch64_test_loading_full_dump () *** 25579,25590 **** --- 25932,26037 ---- ASSERT_EQ (SImode, GET_MODE (crtl->return_rtx)); } + /* Test the fractional_cost class. */ + + static void + aarch64_test_fractional_cost () + { + using cf = fractional_cost; + + ASSERT_EQ (cf (0, 20), 0); + + ASSERT_EQ (cf (4, 2), 2); + ASSERT_EQ (3, cf (9, 3)); + + ASSERT_NE (cf (5, 2), 2); + ASSERT_NE (3, cf (8, 3)); + + ASSERT_EQ (cf (7, 11) + cf (15, 11), 2); + ASSERT_EQ (cf (2, 3) + cf (3, 5), cf (19, 15)); + ASSERT_EQ (cf (2, 3) + cf (1, 6) + cf (1, 6), 1); + + ASSERT_EQ (cf (14, 15) - cf (4, 15), cf (2, 3)); + ASSERT_EQ (cf (1, 4) - cf (1, 2), 0); + ASSERT_EQ (cf (3, 5) - cf (1, 10), cf (1, 2)); + ASSERT_EQ (cf (11, 3) - 3, cf (2, 3)); + ASSERT_EQ (3 - cf (7, 3), cf (2, 3)); + ASSERT_EQ (3 - cf (10, 3), 0); + + ASSERT_EQ (cf (2, 3) * 5, cf (10, 3)); + ASSERT_EQ (14 * cf (11, 21), cf (22, 3)); + + ASSERT_TRUE (cf (4, 15) < cf (5, 15)); + ASSERT_FALSE (cf (5, 15) < cf (5, 15)); + ASSERT_FALSE (cf (6, 15) < cf (5, 15)); + ASSERT_TRUE (cf (1, 3) < cf (2, 5)); + ASSERT_TRUE (cf (1, 12) < cf (1, 6)); + ASSERT_FALSE (cf (5, 3) < cf (5, 3)); + ASSERT_TRUE (cf (239, 240) < 1); + ASSERT_FALSE (cf (240, 240) < 1); + ASSERT_FALSE (cf (241, 240) < 1); + ASSERT_FALSE (2 < cf (207, 104)); + ASSERT_FALSE (2 < cf (208, 104)); + ASSERT_TRUE (2 < cf (209, 104)); + + ASSERT_TRUE (cf (4, 15) < cf (5, 15)); + ASSERT_FALSE (cf (5, 15) < cf (5, 15)); + ASSERT_FALSE (cf (6, 15) < cf (5, 15)); + ASSERT_TRUE (cf (1, 3) < cf (2, 5)); + ASSERT_TRUE (cf (1, 12) < cf (1, 6)); + ASSERT_FALSE (cf (5, 3) < cf (5, 3)); + ASSERT_TRUE (cf (239, 240) < 1); + ASSERT_FALSE (cf (240, 240) < 1); + ASSERT_FALSE (cf (241, 240) < 1); + ASSERT_FALSE (2 < cf (207, 104)); + ASSERT_FALSE (2 < cf (208, 104)); + ASSERT_TRUE (2 < cf (209, 104)); + + ASSERT_FALSE (cf (4, 15) >= cf (5, 15)); + ASSERT_TRUE (cf (5, 15) >= cf (5, 15)); + ASSERT_TRUE (cf (6, 15) >= cf (5, 15)); + ASSERT_FALSE (cf (1, 3) >= cf (2, 5)); + ASSERT_FALSE (cf (1, 12) >= cf (1, 6)); + ASSERT_TRUE (cf (5, 3) >= cf (5, 3)); + ASSERT_FALSE (cf (239, 240) >= 1); + ASSERT_TRUE (cf (240, 240) >= 1); + ASSERT_TRUE (cf (241, 240) >= 1); + ASSERT_TRUE (2 >= cf (207, 104)); + ASSERT_TRUE (2 >= cf (208, 104)); + ASSERT_FALSE (2 >= cf (209, 104)); + + ASSERT_FALSE (cf (4, 15) > cf (5, 15)); + ASSERT_FALSE (cf (5, 15) > cf (5, 15)); + ASSERT_TRUE (cf (6, 15) > cf (5, 15)); + ASSERT_FALSE (cf (1, 3) > cf (2, 5)); + ASSERT_FALSE (cf (1, 12) > cf (1, 6)); + ASSERT_FALSE (cf (5, 3) > cf (5, 3)); + ASSERT_FALSE (cf (239, 240) > 1); + ASSERT_FALSE (cf (240, 240) > 1); + ASSERT_TRUE (cf (241, 240) > 1); + ASSERT_TRUE (2 > cf (207, 104)); + ASSERT_FALSE (2 > cf (208, 104)); + ASSERT_FALSE (2 > cf (209, 104)); + + ASSERT_EQ (cf (1, 2).ceil (), 1); + ASSERT_EQ (cf (11, 7).ceil (), 2); + ASSERT_EQ (cf (20, 1).ceil (), 20); + ASSERT_EQ ((cf (0xfffffffd) + 1).ceil (), 0xfffffffe); + ASSERT_EQ ((cf (0xfffffffd) + 2).ceil (), 0xffffffff); + ASSERT_EQ ((cf (0xfffffffd) + 3).ceil (), 0xffffffff); + ASSERT_EQ ((cf (0x7fffffff) * 2).ceil (), 0xfffffffe); + ASSERT_EQ ((cf (0x80000000) * 2).ceil (), 0xffffffff); + + ASSERT_EQ (cf (1, 2).as_double (), 0.5); + } + /* Run all target-specific selftests. */ static void aarch64_run_selftests (void) { aarch64_test_loading_full_dump (); + aarch64_test_fractional_cost (); } } // namespace selftest diff -Nrcpad gcc-11.2.0/gcc/config/aarch64/fractional-cost.h gcc-11.3.0/gcc/config/aarch64/fractional-cost.h *** gcc-11.2.0/gcc/config/aarch64/fractional-cost.h Thu Jan 1 00:00:00 1970 --- gcc-11.3.0/gcc/config/aarch64/fractional-cost.h Thu Apr 21 07:58:52 2022 *************** *** 0 **** --- 1,236 ---- + // Simple fixed-point representation of fractional costs + // Copyright (C) 2021 Free Software Foundation, Inc. + // + // This file is part of GCC. + // + // GCC is free software; you can redistribute it and/or modify it under + // the terms of the GNU General Public License as published by the Free + // Software Foundation; either version 3, or (at your option) any later + // version. + // + // GCC is distributed in the hope that it will be useful, but WITHOUT ANY + // WARRANTY; without even the implied warranty of MERCHANTABILITY or + // FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + // for more details. + // + // You should have received a copy of the GNU General Public License + // along with GCC; see the file COPYING3. If not see + // . + + // A simple saturating fixed-point type for representing fractional + // intermediate results in cost calculations. The input and result + // costs are assumed to be uint32_ts. Unlike sreal, the class can + // represent most values that we care about exactly (without rounding). + // See the comment above the SCALE field for the current set of + // exactly-representable reciprocals. + class fractional_cost + { + public: + // Construct an object equal to INT_VALUE. + constexpr fractional_cost (uint32_t int_value = 0) + : m_value (uint64_t (int_value) * SCALE) {} + + fractional_cost (uint32_t a, uint32_t b); + + fractional_cost operator+ (const fractional_cost &) const; + fractional_cost operator- (const fractional_cost &) const; + fractional_cost operator* (uint32_t) const; + + fractional_cost &operator+= (const fractional_cost &); + fractional_cost &operator-= (const fractional_cost &); + fractional_cost &operator*= (uint32_t); + + bool operator== (const fractional_cost &) const; + bool operator!= (const fractional_cost &) const; + bool operator< (const fractional_cost &) const; + bool operator<= (const fractional_cost &) const; + bool operator>= (const fractional_cost &) const; + bool operator> (const fractional_cost &) const; + + uint32_t ceil () const; + + static uint32_t scale (uint32_t, fractional_cost, fractional_cost); + + explicit operator bool () const { return m_value != 0; } + + // Convert the value to a double. + double as_double () const { return double (m_value) / SCALE; } + + private: + enum raw { RAW }; + constexpr fractional_cost (uint64_t value, raw) : m_value (value) {} + + // A multiple of [1, 16] * 16. This ensures that 1/N is representable + // for every every possible SVE element count N, or for any "X per cycle" + // value N in the range [1, 16]. + static const uint32_t SCALE = 11531520; + + // The value multiplied by BIAS. + uint64_t m_value; + }; + + // Construct a representation of A / B, rounding up if (contrary to + // expectations) we can't represent the value exactly. For now we + // treat inexact values as a bug, since all values of B should come + // from a small set of values that are known at compile time. + inline fractional_cost::fractional_cost (uint32_t a, uint32_t b) + : m_value (CEIL (uint64_t (a) * SCALE, uint64_t (b))) + { + gcc_checking_assert (SCALE % b == 0); + } + + inline fractional_cost + fractional_cost::operator+ (const fractional_cost &other) const + { + uint64_t sum = m_value + other.m_value; + return { sum >= m_value ? sum : ~uint64_t (0), RAW }; + } + + inline fractional_cost & + fractional_cost::operator+= (const fractional_cost &other) + { + *this = *this + other; + return *this; + } + + inline fractional_cost + fractional_cost::operator- (const fractional_cost &other) const + { + uint64_t diff = m_value - other.m_value; + return { diff <= m_value ? diff : 0, RAW }; + } + + inline fractional_cost & + fractional_cost::operator-= (const fractional_cost &other) + { + *this = *this - other; + return *this; + } + + inline fractional_cost + fractional_cost::operator* (uint32_t other) const + { + if (other == 0) + return 0; + + uint64_t max = ~uint64_t (0); + return { m_value <= max / other ? m_value * other : max, RAW }; + } + + inline fractional_cost & + fractional_cost::operator*= (uint32_t other) + { + *this = *this * other; + return *this; + } + + inline bool + fractional_cost::operator== (const fractional_cost &other) const + { + return m_value == other.m_value; + } + + inline bool + fractional_cost::operator!= (const fractional_cost &other) const + { + return m_value != other.m_value; + } + + inline bool + fractional_cost::operator< (const fractional_cost &other) const + { + return m_value < other.m_value; + } + + inline bool + fractional_cost::operator<= (const fractional_cost &other) const + { + return m_value <= other.m_value; + } + + inline bool + fractional_cost::operator>= (const fractional_cost &other) const + { + return m_value >= other.m_value; + } + + inline bool + fractional_cost::operator> (const fractional_cost &other) const + { + return m_value > other.m_value; + } + + // Round the value up to the nearest integer and saturate to a uint32_t. + inline uint32_t + fractional_cost::ceil () const + { + uint32_t max = ~uint32_t (0); + if (m_value <= uint64_t (max - 1) * SCALE) + return (m_value + SCALE - 1) / SCALE; + return max; + } + + // Round (COST * A) / B up to the nearest integer and saturate to a uint32_t. + inline uint32_t + fractional_cost::scale (uint32_t cost, fractional_cost a, fractional_cost b) + { + widest_int result = wi::div_ceil (widest_int (cost) * a.m_value, + b.m_value, SIGNED); + if (result < ~uint32_t (0)) + return result.to_shwi (); + return ~uint32_t (0); + } + + inline fractional_cost + operator+ (uint32_t a, const fractional_cost &b) + { + return b.operator+ (a); + } + + inline fractional_cost + operator- (uint32_t a, const fractional_cost &b) + { + return fractional_cost (a).operator- (b); + } + + inline fractional_cost + operator* (uint32_t a, const fractional_cost &b) + { + return b.operator* (a); + } + + inline bool + operator== (uint32_t a, const fractional_cost &b) + { + return b.operator== (a); + } + + inline bool + operator!= (uint32_t a, const fractional_cost &b) + { + return b.operator!= (a); + } + + inline bool + operator< (uint32_t a, const fractional_cost &b) + { + return b.operator> (a); + } + + inline bool + operator<= (uint32_t a, const fractional_cost &b) + { + return b.operator>= (a); + } + + inline bool + operator>= (uint32_t a, const fractional_cost &b) + { + return b.operator<= (a); + } + + inline bool + operator> (uint32_t a, const fractional_cost &b) + { + return b.operator< (a); + } diff -Nrcpad gcc-11.2.0/gcc/config/arm/arm-c.c gcc-11.3.0/gcc/config/arm/arm-c.c *** gcc-11.2.0/gcc/config/arm/arm-c.c Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/arm/arm-c.c Thu Apr 21 07:58:52 2022 *************** arm_pragma_target_parse (tree args, tree *** 409,414 **** --- 409,415 ---- target_option_current_node = cur_tree; arm_configure_build_target (&arm_active_target, TREE_TARGET_OPTION (cur_tree), false); + arm_option_reconfigure_globals (); } /* Update macros if target_node changes. The global state will be restored *************** arm_pragma_target_parse (tree args, tree *** 444,450 **** --- 445,453 ---- acond_macro = get_identifier ("__ARM_FEATURE_LDREX"); C_CPP_HASHNODE (acond_macro)->flags |= NODE_CONDITIONAL; + cpp_force_token_locations (parse_in, BUILTINS_LOCATION); arm_cpu_builtins (parse_in); + cpp_stop_forcing_token_locations (parse_in); cpp_opts->warn_unused_macros = saved_warn_unused_macros; diff -Nrcpad gcc-11.2.0/gcc/config/arm/arm-cpus.in gcc-11.3.0/gcc/config/arm/arm-cpus.in *** gcc-11.2.0/gcc/config/arm/arm-cpus.in Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/arm/arm-cpus.in Thu Apr 21 07:58:52 2022 *************** define feature quirk_armv6kz *** 186,191 **** --- 186,194 ---- # Cortex-M3 LDRD quirk. define feature quirk_cm3_ldrd + # v8-m/v8.1-m VLLDM errata. + define feature quirk_vlldm + # Don't use .cpu assembly directive define feature quirk_no_asmcpu *************** define implied vfp_base MVE MVE_FP ALL_F *** 322,328 **** # architectures. # xscale isn't really a 'quirk', but it isn't an architecture either and we # need to ignore it for matching purposes. ! define fgroup ALL_QUIRKS quirk_no_volatile_ce quirk_armv6kz quirk_cm3_ldrd xscale quirk_no_asmcpu define fgroup IGNORE_FOR_MULTILIB cdecp0 cdecp1 cdecp2 cdecp3 cdecp4 cdecp5 cdecp6 cdecp7 --- 325,331 ---- # architectures. # xscale isn't really a 'quirk', but it isn't an architecture either and we # need to ignore it for matching purposes. ! define fgroup ALL_QUIRKS quirk_no_volatile_ce quirk_armv6kz quirk_cm3_ldrd quirk_vlldm xscale quirk_no_asmcpu define fgroup IGNORE_FOR_MULTILIB cdecp0 cdecp1 cdecp2 cdecp3 cdecp4 cdecp5 cdecp6 cdecp7 *************** begin cpu generic-armv7-a *** 1080,1085 **** --- 1083,1089 ---- cname genericv7a tune flags LDSCHED architecture armv7-a+fp + isa quirk_no_asmcpu option mp add mp option sec add sec option vfpv3-d16 add VFPv3 FP_DBL *************** begin cpu cortex-m33 *** 1570,1575 **** --- 1574,1580 ---- architecture armv8-m.main+dsp+fp option nofp remove ALL_FP option nodsp remove armv7em + isa quirk_vlldm costs v7m end cpu cortex-m33 *************** begin cpu cortex-m35p *** 1579,1584 **** --- 1584,1590 ---- architecture armv8-m.main+dsp+fp option nofp remove ALL_FP option nodsp remove armv7em + isa quirk_vlldm costs v7m end cpu cortex-m35p *************** begin cpu cortex-m55 *** 1590,1596 **** option nomve remove mve mve_float option nofp remove ALL_FP mve_float option nodsp remove MVE mve_float ! isa quirk_no_asmcpu costs v7m vendor 41 end cpu cortex-m55 --- 1596,1602 ---- option nomve remove mve mve_float option nofp remove ALL_FP mve_float option nodsp remove MVE mve_float ! isa quirk_no_asmcpu quirk_vlldm costs v7m vendor 41 end cpu cortex-m55 diff -Nrcpad gcc-11.2.0/gcc/config/arm/arm.c gcc-11.3.0/gcc/config/arm/arm.c *** gcc-11.2.0/gcc/config/arm/arm.c Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/arm/arm.c Thu Apr 21 07:58:52 2022 *************** *** 77,86 **** typedef struct minipool_node Mnode; typedef struct minipool_fixup Mfix; - /* The last .arch and .fpu assembly strings that we printed. */ - static std::string arm_last_printed_arch_string; - static std::string arm_last_printed_fpu_string; - void (*arm_lang_output_object_attributes_hook)(void); struct four_ints --- 77,82 ---- *************** static rtx_insn *thumb1_md_asm_adjust (v *** 332,337 **** --- 328,334 ---- vec &, vec &, vec &, HARD_REG_SET &); + static const char *arm_identify_fpu_from_isa (sbitmap); /* Table of machine attributes. */ static const struct attribute_spec arm_attribute_table[] = *************** arm_option_restore (struct gcc_options * *** 3056,3061 **** --- 3053,3059 ---- struct cl_target_option *ptr) { arm_configure_build_target (&arm_active_target, ptr, false); + arm_option_reconfigure_globals (); } /* Reset options between modes that the user has specified. */ *************** arm_configure_build_target (struct arm_b *** 3408,3413 **** --- 3406,3416 ---- bitmap_ior (target->isa, target->isa, fpu_bits); } + /* If we have the soft-float ABI, clear any feature bits relating to use of + floating-point operations. They'll just confuse things later on. */ + if (arm_float_abi == ARM_FLOAT_ABI_SOFT) + bitmap_and_compl (target->isa, target->isa, isa_all_fpbits); + /* There may be implied bits which we still need to enable. These are non-named features which are needed to complete other sets of features, but cannot be enabled from arm-cpus.in due to being shared between *************** arm_configure_build_target (struct arm_b *** 3430,3435 **** --- 3433,3440 ---- const cpu_tune *tune_data = &all_tunes[arm_selected_tune - all_cores]; /* Finish initializing the target structure. */ + if (!target->arch_name) + target->arch_name = arm_selected_arch->common.name; target->arch_pp_name = arm_selected_arch->arch; target->base_arch = arm_selected_arch->base_arch; target->profile = arm_selected_arch->profile; *************** arm_configure_build_target (struct arm_b *** 3437,3443 **** target->tune_flags = tune_data->tune_flags; target->tune = tune_data->tune; target->tune_core = tune_data->scheduler; - arm_option_reconfigure_globals (); } /* Fix up any incompatible options that the user has specified. */ --- 3442,3447 ---- *************** arm_option_override (void) *** 3610,3615 **** --- 3614,3628 ---- fix_cm3_ldrd = 0; } + /* Enable fix_vlldm by default if required. */ + if (fix_vlldm == 2) + { + if (bitmap_bit_p (arm_active_target.isa, isa_bit_quirk_vlldm)) + fix_vlldm = 1; + else + fix_vlldm = 0; + } + /* Hot/Cold partitioning is not currently supported, since we can't handle literal pool placement in that case. */ if (flag_reorder_blocks_and_partition) *************** arm_print_tune_info (void) *** 28088,28107 **** (int) current_tune->sched_autopref); } /* Print .arch and .arch_extension directives corresponding to the current architecture configuration. */ static void ! arm_print_asm_arch_directives () { const arch_option *arch = arm_parse_arch_option_name (all_architectures, "-march", ! arm_active_target.arch_name); auto_sbitmap opt_bits (isa_num_bits); gcc_assert (arch); ! asm_fprintf (asm_out_file, "\t.arch %s\n", arm_active_target.arch_name); ! arm_last_printed_arch_string = arm_active_target.arch_name; if (!arch->common.extensions) return; --- 28101,28165 ---- (int) current_tune->sched_autopref); } + /* The last set of target options used to emit .arch directives, etc. This + could be a function-local static if it were not required to expose it as a + root to the garbage collector. */ + static GTY(()) cl_target_option *last_asm_targ_options = NULL; + /* Print .arch and .arch_extension directives corresponding to the current architecture configuration. */ static void ! arm_print_asm_arch_directives (FILE *stream, cl_target_option *targ_options) { + arm_build_target build_target; + /* If the target options haven't changed since the last time we were called + there is nothing to do. This should be sufficient to suppress the + majority of redundant work. */ + if (last_asm_targ_options == targ_options) + return; + + last_asm_targ_options = targ_options; + + build_target.isa = sbitmap_alloc (isa_num_bits); + arm_configure_build_target (&build_target, targ_options, false); + + if (build_target.core_name + && !bitmap_bit_p (build_target.isa, isa_bit_quirk_no_asmcpu)) + { + const char* truncated_name + = arm_rewrite_selected_cpu (build_target.core_name); + asm_fprintf (stream, "\t.cpu %s\n", truncated_name); + } + const arch_option *arch = arm_parse_arch_option_name (all_architectures, "-march", ! build_target.arch_name); auto_sbitmap opt_bits (isa_num_bits); gcc_assert (arch); ! if (strcmp (build_target.arch_name, "armv7ve") == 0) ! { ! /* Keep backward compatability for assemblers which don't support ! armv7ve. Fortunately, none of the following extensions are reset ! by a .fpu directive. */ ! asm_fprintf (stream, "\t.arch armv7-a\n"); ! asm_fprintf (stream, "\t.arch_extension virt\n"); ! asm_fprintf (stream, "\t.arch_extension idiv\n"); ! asm_fprintf (stream, "\t.arch_extension sec\n"); ! asm_fprintf (stream, "\t.arch_extension mp\n"); ! } ! else ! asm_fprintf (stream, "\t.arch %s\n", build_target.arch_name); ! ! /* The .fpu directive will reset any architecture extensions from the ! assembler that relate to the fp/vector extensions. So put this out before ! any .arch_extension directives. */ ! const char *fpu_name = (TARGET_SOFT_FLOAT ! ? "softvfp" ! : arm_identify_fpu_from_isa (build_target.isa)); ! asm_fprintf (stream, "\t.fpu %s\n", fpu_name); ! if (!arch->common.extensions) return; *************** arm_print_asm_arch_directives () *** 28127,28139 **** && !TARGET_HAVE_MVE_FLOAT)) continue; ! /* If every feature bit of this option is set in the target ! ISA specification, print out the option name. However, ! don't print anything if all the bits are part of the ! FPU specification. */ ! if (bitmap_subset_p (opt_bits, arm_active_target.isa) && !bitmap_subset_p (opt_bits, isa_all_fpubits_internal)) ! asm_fprintf (asm_out_file, "\t.arch_extension %s\n", opt->name); } } } --- 28185,28196 ---- && !TARGET_HAVE_MVE_FLOAT)) continue; ! /* If every feature bit of this option is set in the target ISA ! specification, print out the option name. However, don't print ! anything if all the bits are part of the FPU specification. */ ! if (bitmap_subset_p (opt_bits, build_target.isa) && !bitmap_subset_p (opt_bits, isa_all_fpubits_internal)) ! asm_fprintf (stream, "\t.arch_extension %s\n", opt->name); } } } *************** arm_file_start (void) *** 28143,28188 **** { int val; if (TARGET_BPABI) { ! /* We don't have a specified CPU. Use the architecture to ! generate the tags. ! ! Note: it might be better to do this unconditionally, then the ! assembler would not need to know about all new CPU names as ! they are added. */ ! if (!arm_active_target.core_name) ! { ! /* armv7ve doesn't support any extensions. */ ! if (strcmp (arm_active_target.arch_name, "armv7ve") == 0) ! { ! /* Keep backward compatability for assemblers ! which don't support armv7ve. */ ! asm_fprintf (asm_out_file, "\t.arch armv7-a\n"); ! asm_fprintf (asm_out_file, "\t.arch_extension virt\n"); ! asm_fprintf (asm_out_file, "\t.arch_extension idiv\n"); ! asm_fprintf (asm_out_file, "\t.arch_extension sec\n"); ! asm_fprintf (asm_out_file, "\t.arch_extension mp\n"); ! arm_last_printed_arch_string = "armv7ve"; ! } ! else ! arm_print_asm_arch_directives (); ! } ! else if (strncmp (arm_active_target.core_name, "generic", 7) == 0) ! { ! asm_fprintf (asm_out_file, "\t.arch %s\n", ! arm_active_target.core_name + 8); ! arm_last_printed_arch_string = arm_active_target.core_name + 8; ! } ! else { const char* truncated_name = arm_rewrite_selected_cpu (arm_active_target.core_name); if (bitmap_bit_p (arm_active_target.isa, isa_bit_quirk_no_asmcpu)) asm_fprintf (asm_out_file, "\t.eabi_attribute 5, \"%s\"\n", truncated_name); - else - asm_fprintf (asm_out_file, "\t.cpu %s\n", truncated_name); } if (print_tune_info) --- 28200,28222 ---- { int val; + arm_print_asm_arch_directives + (asm_out_file, TREE_TARGET_OPTION (target_option_default_node)); + if (TARGET_BPABI) { ! /* If we have a named cpu, but we the assembler does not support that ! name via .cpu, put out a cpu name attribute; but don't do this if the ! name starts with the fictitious prefix, 'generic'. */ ! if (arm_active_target.core_name ! && bitmap_bit_p (arm_active_target.isa, isa_bit_quirk_no_asmcpu) ! && strncmp (arm_active_target.core_name, "generic", 7) != 0) { const char* truncated_name = arm_rewrite_selected_cpu (arm_active_target.core_name); if (bitmap_bit_p (arm_active_target.isa, isa_bit_quirk_no_asmcpu)) asm_fprintf (asm_out_file, "\t.eabi_attribute 5, \"%s\"\n", truncated_name); } if (print_tune_info) *************** arm_file_end (void) *** 28247,28252 **** --- 28281,28293 ---- { int regno; + /* Just in case the last function output in the assembler had non-default + architecture directives, we force the assembler state back to the default + set, so that any 'calculated' build attributes are based on the default + options rather than the special options for that function. */ + arm_print_asm_arch_directives + (asm_out_file, TREE_TARGET_OPTION (target_option_default_node)); + if (NEED_INDICATE_EXEC_STACK) /* Add .note.GNU-stack. */ file_end_indicate_exec_stack (); *************** arm_declare_function_name (FILE *stream, *** 33138,33195 **** targ_options = TREE_TARGET_OPTION (target_option_current_node); gcc_assert (targ_options); ! /* Only update the assembler .arch string if it is distinct from the last ! such string we printed. arch_to_print is set conditionally in case ! targ_options->x_arm_arch_string is NULL which can be the case ! when cc1 is invoked directly without passing -march option. */ ! std::string arch_to_print; ! if (targ_options->x_arm_arch_string) ! arch_to_print = targ_options->x_arm_arch_string; ! ! if (arch_to_print != arm_last_printed_arch_string) ! { ! std::string arch_name ! = arch_to_print.substr (0, arch_to_print.find ("+")); ! asm_fprintf (asm_out_file, "\t.arch %s\n", arch_name.c_str ()); ! const arch_option *arch ! = arm_parse_arch_option_name (all_architectures, "-march", ! targ_options->x_arm_arch_string); ! auto_sbitmap opt_bits (isa_num_bits); ! ! gcc_assert (arch); ! if (arch->common.extensions) ! { ! for (const struct cpu_arch_extension *opt = arch->common.extensions; ! opt->name != NULL; ! opt++) ! { ! if (!opt->remove) ! { ! arm_initialize_isa (opt_bits, opt->isa_bits); ! /* For the cases "-march=armv8.1-m.main+mve -mfloat-abi=soft" ! and "-march=armv8.1-m.main+mve.fp -mfloat-abi=soft" MVE and ! MVE with floating point instructions is disabled. So the ! following check restricts the printing of ".arch_extension ! mve" and ".arch_extension fp" (for mve.fp) in the assembly ! file. MVE needs this special behaviour because the ! feature bit "mve" and "mve_float" are not part of ! "fpu bits", so they are not cleared when -mfloat-abi=soft ! (i.e nofp) but the marco TARGET_HAVE_MVE and ! TARGET_HAVE_MVE_FLOAT are disabled. */ ! if ((bitmap_bit_p (opt_bits, isa_bit_mve) && !TARGET_HAVE_MVE) ! || (bitmap_bit_p (opt_bits, isa_bit_mve_float) ! && !TARGET_HAVE_MVE_FLOAT)) ! continue; ! if (bitmap_subset_p (opt_bits, arm_active_target.isa) ! && !bitmap_subset_p (opt_bits, isa_all_fpubits_internal)) ! asm_fprintf (asm_out_file, "\t.arch_extension %s\n", ! opt->name); ! } ! } ! } ! ! arm_last_printed_arch_string = arch_to_print; ! } fprintf (stream, "\t.syntax unified\n"); --- 33179,33185 ---- targ_options = TREE_TARGET_OPTION (target_option_current_node); gcc_assert (targ_options); ! arm_print_asm_arch_directives (stream, targ_options); fprintf (stream, "\t.syntax unified\n"); *************** arm_declare_function_name (FILE *stream, *** 33207,33223 **** else fprintf (stream, "\t.arm\n"); - std::string fpu_to_print - = TARGET_SOFT_FLOAT - ? "softvfp" : arm_identify_fpu_from_isa (arm_active_target.isa); - - if (!(!strcmp (fpu_to_print.c_str (), "softvfp") && TARGET_VFP_BASE) - && (fpu_to_print != arm_last_printed_arch_string)) - { - asm_fprintf (asm_out_file, "\t.fpu %s\n", fpu_to_print.c_str ()); - arm_last_printed_fpu_string = fpu_to_print; - } - if (TARGET_POKE_FUNCTION_NAME) arm_poke_function_name (stream, (const char *) name); } --- 33197,33202 ---- diff -Nrcpad gcc-11.2.0/gcc/config/arm/arm.md gcc-11.3.0/gcc/config/arm/arm.md *** gcc-11.2.0/gcc/config/arm/arm.md Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/arm/arm.md Thu Apr 21 07:58:52 2022 *************** *** 132,140 **** ; TARGET_32BIT, "t1" or "t2" to specify a specific Thumb mode. "v6" ; for ARM or Thumb-2 with arm_arch6, and nov6 for ARM without ; arm_arch6. "v6t2" for Thumb-2 with arm_arch6 and "v8mb" for ARMv8-M ! ; Baseline. This attribute is used to compute attribute "enabled", ; use type "any" to enable an alternative in all cases. ! (define_attr "arch" "any,a,t,32,t1,t2,v6,nov6,v6t2,v8mb,iwmmxt,iwmmxt2,armv6_or_vfpv3,neon,mve" (const_string "any")) (define_attr "arch_enabled" "no,yes" --- 132,143 ---- ; TARGET_32BIT, "t1" or "t2" to specify a specific Thumb mode. "v6" ; for ARM or Thumb-2 with arm_arch6, and nov6 for ARM without ; arm_arch6. "v6t2" for Thumb-2 with arm_arch6 and "v8mb" for ARMv8-M ! ; Baseline. "fix_vlldm" is for fixing the v8-m/v8.1-m VLLDM erratum. ! ; This attribute is used to compute attribute "enabled", ; use type "any" to enable an alternative in all cases. ! (define_attr "arch" "any, a, t, 32, t1, t2, v6,nov6, v6t2, \ ! v8mb, fix_vlldm, iwmmxt, iwmmxt2, armv6_or_vfpv3, \ ! neon, mve" (const_string "any")) (define_attr "arch_enabled" "no,yes" *************** *** 177,182 **** --- 180,189 ---- (match_test "TARGET_THUMB1 && arm_arch8")) (const_string "yes") + (and (eq_attr "arch" "fix_vlldm") + (match_test "fix_vlldm")) + (const_string "yes") + (and (eq_attr "arch" "iwmmxt2") (match_test "TARGET_REALLY_IWMMXT2")) (const_string "yes") diff -Nrcpad gcc-11.2.0/gcc/config/arm/arm.opt gcc-11.3.0/gcc/config/arm/arm.opt *** gcc-11.2.0/gcc/config/arm/arm.opt Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/arm/arm.opt Thu Apr 21 07:58:52 2022 *************** Target Var(fix_cm3_ldrd) Init(2) *** 268,273 **** --- 268,277 ---- Avoid overlapping destination and address registers on LDRD instructions that may trigger Cortex-M3 errata. + mfix-cmse-cve-2021-35465 + Target Var(fix_vlldm) Init(2) + Mitigate issues with VLLDM on some M-profile devices (CVE-2021-35465). + munaligned-access Target Var(unaligned_access) Init(2) Save Enable unaligned word and halfword accesses to packed data. diff -Nrcpad gcc-11.2.0/gcc/config/arm/arm_mve.h gcc-11.3.0/gcc/config/arm/arm_mve.h *** gcc-11.2.0/gcc/config/arm/arm_mve.h Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/arm/arm_mve.h Thu Apr 21 07:58:52 2022 *************** __arm_vaddlvq_u32 (uint32x4_t __a) *** 3524,3530 **** return __builtin_mve_vaddlvq_uv4si (__a); } ! __extension__ extern __inline int64_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vctp16q (uint32_t __a) { --- 3524,3530 ---- return __builtin_mve_vaddlvq_uv4si (__a); } ! __extension__ extern __inline mve_pred16_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vctp16q (uint32_t __a) { diff -Nrcpad gcc-11.2.0/gcc/config/arm/arm_neon.h gcc-11.3.0/gcc/config/arm/arm_neon.h *** gcc-11.2.0/gcc/config/arm/arm_neon.h Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/arm/arm_neon.h Thu Apr 21 07:58:52 2022 *************** vdotq_lane_s32 (int32x4_t __r, int8x16_t *** 18145,18150 **** --- 18145,18179 ---- return __builtin_neon_sdot_lanev16qi (__r, __a, __b, __index); } + __extension__ extern __inline uint32x2_t + __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) + vdot_laneq_u32 (uint32x2_t __r, uint8x8_t __a, uint8x16_t __b, const int __index) + { + return __builtin_neon_udot_laneqv8qi_uuuus (__r, __a, __b, __index); + } + + __extension__ extern __inline uint32x4_t + __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) + vdotq_laneq_u32 (uint32x4_t __r, uint8x16_t __a, uint8x16_t __b, + const int __index) + { + return __builtin_neon_udot_laneqv16qi_uuuus (__r, __a, __b, __index); + } + + __extension__ extern __inline int32x2_t + __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) + vdot_laneq_s32 (int32x2_t __r, int8x8_t __a, int8x16_t __b, const int __index) + { + return __builtin_neon_sdot_laneqv8qi (__r, __a, __b, __index); + } + + __extension__ extern __inline int32x4_t + __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) + vdotq_laneq_s32 (int32x4_t __r, int8x16_t __a, int8x16_t __b, const int __index) + { + return __builtin_neon_sdot_laneqv16qi (__r, __a, __b, __index); + } + #pragma GCC pop_options #endif *************** vusdot_s32 (int32x2_t __r, uint8x8_t __a *** 18803,18808 **** --- 18832,18844 ---- return __builtin_neon_usdotv8qi_ssus (__r, __a, __b); } + __extension__ extern __inline int32x4_t + __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) + vusdotq_s32 (int32x4_t __r, uint8x16_t __a, int8x16_t __b) + { + return __builtin_neon_usdotv16qi_ssus (__r, __a, __b); + } + __extension__ extern __inline int32x2_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) vusdot_lane_s32 (int32x2_t __r, uint8x8_t __a, *************** vsudotq_lane_s32 (int32x4_t __r, int8x16 *** 18835,18840 **** --- 18871,18908 ---- return __builtin_neon_sudot_lanev16qi_sssus (__r, __a, __b, __index); } + __extension__ extern __inline int32x2_t + __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) + vusdot_laneq_s32 (int32x2_t __r, uint8x8_t __a, + int8x16_t __b, const int __index) + { + return __builtin_neon_usdot_laneqv8qi_ssuss (__r, __a, __b, __index); + } + + __extension__ extern __inline int32x4_t + __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) + vusdotq_laneq_s32 (int32x4_t __r, uint8x16_t __a, + int8x16_t __b, const int __index) + { + return __builtin_neon_usdot_laneqv16qi_ssuss (__r, __a, __b, __index); + } + + __extension__ extern __inline int32x2_t + __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) + vsudot_laneq_s32 (int32x2_t __r, int8x8_t __a, + uint8x16_t __b, const int __index) + { + return __builtin_neon_sudot_laneqv8qi_sssus (__r, __a, __b, __index); + } + + __extension__ extern __inline int32x4_t + __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) + vsudotq_laneq_s32 (int32x4_t __r, int8x16_t __a, + uint8x16_t __b, const int __index) + { + return __builtin_neon_sudot_laneqv16qi_sssus (__r, __a, __b, __index); + } + #pragma GCC pop_options #pragma GCC pop_options diff -Nrcpad gcc-11.2.0/gcc/config/arm/arm_neon_builtins.def gcc-11.3.0/gcc/config/arm/arm_neon_builtins.def *** gcc-11.2.0/gcc/config/arm/arm_neon_builtins.def Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/arm/arm_neon_builtins.def Thu Apr 21 07:58:52 2022 *************** VAR2 (TERNOP, sdot, v8qi, v16qi) *** 346,355 **** VAR2 (UTERNOP, udot, v8qi, v16qi) VAR2 (MAC_LANE, sdot_lane, v8qi, v16qi) VAR2 (UMAC_LANE, udot_lane, v8qi, v16qi) ! VAR1 (USTERNOP, usdot, v8qi) VAR2 (USMAC_LANE_QUADTUP, usdot_lane, v8qi, v16qi) VAR2 (SUMAC_LANE_QUADTUP, sudot_lane, v8qi, v16qi) VAR4 (BINOP, vcadd90, v4hf, v2sf, v8hf, v4sf) VAR4 (BINOP, vcadd270, v4hf, v2sf, v8hf, v4sf) --- 346,359 ---- VAR2 (UTERNOP, udot, v8qi, v16qi) VAR2 (MAC_LANE, sdot_lane, v8qi, v16qi) VAR2 (UMAC_LANE, udot_lane, v8qi, v16qi) + VAR2 (MAC_LANE, sdot_laneq, v8qi, v16qi) + VAR2 (UMAC_LANE, udot_laneq, v8qi, v16qi) ! VAR2 (USTERNOP, usdot, v8qi, v16qi) VAR2 (USMAC_LANE_QUADTUP, usdot_lane, v8qi, v16qi) VAR2 (SUMAC_LANE_QUADTUP, sudot_lane, v8qi, v16qi) + VAR2 (USMAC_LANE_QUADTUP, usdot_laneq, v8qi, v16qi) + VAR2 (SUMAC_LANE_QUADTUP, sudot_laneq, v8qi, v16qi) VAR4 (BINOP, vcadd90, v4hf, v2sf, v8hf, v4sf) VAR4 (BINOP, vcadd270, v4hf, v2sf, v8hf, v4sf) diff -Nrcpad gcc-11.2.0/gcc/config/arm/neon.md gcc-11.3.0/gcc/config/arm/neon.md *** gcc-11.2.0/gcc/config/arm/neon.md Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/arm/neon.md Thu Apr 21 07:58:52 2022 *************** *** 2972,2991 **** }) ! ;; These instructions map to the __builtins for the Dot Product operations. ! (define_insn "neon_dot" [(set (match_operand:VCVTI 0 "register_operand" "=w") ! (plus:VCVTI (match_operand:VCVTI 1 "register_operand" "0") ! (unspec:VCVTI [(match_operand: 2 ! "register_operand" "w") ! (match_operand: 3 ! "register_operand" "w")] ! DOTPROD)))] "TARGET_DOTPROD" ! "vdot.\\t%0, %2, %3" [(set_attr "type" "neon_dot")] ) ;; These instructions map to the __builtins for the Dot Product operations. (define_insn "neon_usdot" [(set (match_operand:VCVTI 0 "register_operand" "=w") --- 2972,3020 ---- }) ! ;; These map to the auto-vectorizer Dot Product optab. ! ;; The auto-vectorizer expects a dot product builtin that also does an ! ;; accumulation into the provided register. ! ;; Given the following pattern ! ;; ! ;; for (i=0; idot_prod" [(set (match_operand:VCVTI 0 "register_operand" "=w") ! (plus:VCVTI ! (unspec:VCVTI [(match_operand: 1 "register_operand" "w") ! (match_operand: 2 "register_operand" "w")] ! DOTPROD) ! (match_operand:VCVTI 3 "register_operand" "0")))] "TARGET_DOTPROD" ! "vdot.\\t%0, %1, %2" [(set_attr "type" "neon_dot")] ) + ;; These instructions map to the __builtins for the Dot Product operations + (define_expand "neon_dot" + [(set (match_operand:VCVTI 0 "register_operand" "=w") + (plus:VCVTI + (unspec:VCVTI [(match_operand: 2 "register_operand") + (match_operand: 3 "register_operand")] + DOTPROD) + (match_operand:VCVTI 1 "register_operand")))] + "TARGET_DOTPROD" + ) + ;; These instructions map to the __builtins for the Dot Product operations. (define_insn "neon_usdot" [(set (match_operand:VCVTI 0 "register_operand" "=w") *************** *** 3004,3020 **** ;; indexed operations. (define_insn "neon_dot_lane" [(set (match_operand:VCVTI 0 "register_operand" "=w") ! (plus:VCVTI (match_operand:VCVTI 1 "register_operand" "0") ! (unspec:VCVTI [(match_operand: 2 ! "register_operand" "w") ! (match_operand:V8QI 3 "register_operand" "t") ! (match_operand:SI 4 "immediate_operand" "i")] ! DOTPROD)))] "TARGET_DOTPROD" { ! operands[4] ! = GEN_INT (NEON_ENDIAN_LANE_N (V8QImode, INTVAL (operands[4]))); ! return "vdot.\\t%0, %2, %P3[%c4]"; } [(set_attr "type" "neon_dot")] ) --- 3033,3072 ---- ;; indexed operations. (define_insn "neon_dot_lane" [(set (match_operand:VCVTI 0 "register_operand" "=w") ! (plus:VCVTI ! (unspec:VCVTI [(match_operand: 2 "register_operand" "w") ! (match_operand:V8QI 3 "register_operand" "t") ! (match_operand:SI 4 "immediate_operand" "i")] ! DOTPROD) ! (match_operand:VCVTI 1 "register_operand" "0")))] ! "TARGET_DOTPROD" ! "vdot.\\t%0, %2, %P3[%c4]"; ! [(set_attr "type" "neon_dot")] ! ) ! ! ;; These instructions map to the __builtins for the Dot Product ! ;; indexed operations. ! (define_insn "neon_dot_laneq" ! [(set (match_operand:VCVTI 0 "register_operand" "=w") ! (plus:VCVTI ! (unspec:VCVTI [(match_operand: 2 "register_operand" "w") ! (match_operand:V16QI 3 "register_operand" "t") ! (match_operand:SI 4 "immediate_operand" "i")] ! DOTPROD) ! (match_operand:VCVTI 1 "register_operand" "0")))] "TARGET_DOTPROD" { ! int lane = INTVAL (operands[4]); ! if (lane > GET_MODE_NUNITS (V2SImode) - 1) ! { ! operands[4] = GEN_INT (lane - GET_MODE_NUNITS (V2SImode)); ! return "vdot.\\t%0, %2, %f3[%c4]"; ! } ! else ! { ! operands[4] = GEN_INT (lane); ! return "vdot.\\t%0, %2, %e3[%c4]"; ! } } [(set_attr "type" "neon_dot")] ) *************** *** 3031,3080 **** DOTPROD_I8MM) (match_operand:VCVTI 1 "register_operand" "0")))] "TARGET_I8MM" { ! operands[4] = GEN_INT (INTVAL (operands[4])); ! return "vdot.\\t%0, %2, %P3[%c4]"; } [(set_attr "type" "neon_dot")] ) - ;; These expands map to the Dot Product optab the vectorizer checks for. - ;; The auto-vectorizer expects a dot product builtin that also does an - ;; accumulation into the provided register. - ;; Given the following pattern - ;; - ;; for (i=0; idot_prod" - [(set (match_operand:VCVTI 0 "register_operand") - (plus:VCVTI (unspec:VCVTI [(match_operand: 1 - "register_operand") - (match_operand: 2 - "register_operand")] - DOTPROD) - (match_operand:VCVTI 3 "register_operand")))] - "TARGET_DOTPROD" - { - emit_insn ( - gen_neon_dot (operands[3], operands[3], operands[1], - operands[2])); - emit_insn (gen_rtx_SET (operands[0], operands[3])); - DONE; - }) - (define_expand "neon_copysignf" [(match_operand:VCVTF 0 "register_operand") (match_operand:VCVTF 1 "register_operand") --- 3083,3119 ---- DOTPROD_I8MM) (match_operand:VCVTI 1 "register_operand" "0")))] "TARGET_I8MM" + "vdot.\\t%0, %2, %P3[%c4]" + [(set_attr "type" "neon_dot")] + ) + + ;; These instructions map to the __builtins for the Dot Product + ;; indexed operations in the v8.6 I8MM extension. + (define_insn "neon_dot_laneq" + [(set (match_operand:VCVTI 0 "register_operand" "=w") + (plus:VCVTI + (unspec:VCVTI [(match_operand: 2 "register_operand" "w") + (match_operand:V16QI 3 "register_operand" "t") + (match_operand:SI 4 "immediate_operand" "i")] + DOTPROD_I8MM) + (match_operand:VCVTI 1 "register_operand" "0")))] + "TARGET_I8MM" { ! int lane = INTVAL (operands[4]); ! if (lane > GET_MODE_NUNITS (V2SImode) - 1) ! { ! operands[4] = GEN_INT (lane - GET_MODE_NUNITS (V2SImode)); ! return "vdot.\\t%0, %2, %f3[%c4]"; ! } ! else ! { ! operands[4] = GEN_INT (lane); ! return "vdot.\\t%0, %2, %e3[%c4]"; ! } } [(set_attr "type" "neon_dot")] ) (define_expand "neon_copysignf" [(match_operand:VCVTF 0 "register_operand") (match_operand:VCVTF 1 "register_operand") diff -Nrcpad gcc-11.2.0/gcc/config/arm/vec-common.md gcc-11.3.0/gcc/config/arm/vec-common.md *** gcc-11.2.0/gcc/config/arm/vec-common.md Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/arm/vec-common.md Thu Apr 21 07:58:52 2022 *************** *** 265,282 **** ;; remainder. Because of this, expand early. (define_expand "cml4" [(set (match_operand:VF 0 "register_operand") ! (plus:VF (match_operand:VF 1 "register_operand") ! (unspec:VF [(match_operand:VF 2 "register_operand") ! (match_operand:VF 3 "register_operand")] ! VCMLA_OP)))] "(TARGET_COMPLEX || (TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT && ARM_HAVE__ARITH)) && !BYTES_BIG_ENDIAN" { rtx tmp = gen_reg_rtx (mode); ! emit_insn (gen_arm_vcmla (tmp, operands[1], ! operands[3], operands[2])); emit_insn (gen_arm_vcmla (operands[0], tmp, ! operands[3], operands[2])); DONE; }) --- 265,282 ---- ;; remainder. Because of this, expand early. (define_expand "cml4" [(set (match_operand:VF 0 "register_operand") ! (plus:VF (unspec:VF [(match_operand:VF 1 "register_operand") ! (match_operand:VF 2 "register_operand")] ! VCMLA_OP) ! (match_operand:VF 3 "register_operand")))] "(TARGET_COMPLEX || (TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT && ARM_HAVE__ARITH)) && !BYTES_BIG_ENDIAN" { rtx tmp = gen_reg_rtx (mode); ! emit_insn (gen_arm_vcmla (tmp, operands[3], ! operands[2], operands[1])); emit_insn (gen_arm_vcmla (operands[0], tmp, ! operands[2], operands[1])); DONE; }) diff -Nrcpad gcc-11.2.0/gcc/config/arm/vfp.md gcc-11.3.0/gcc/config/arm/vfp.md *** gcc-11.2.0/gcc/config/arm/vfp.md Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/arm/vfp.md Thu Apr 21 07:58:52 2022 *************** *** 1703,1714 **** (set_attr "type" "mov_reg")] ) (define_insn "lazy_store_multiple_insn" ! [(set (match_operand:SI 0 "s_register_operand" "+&rk") ! (post_dec:SI (match_dup 0))) ! (unspec_volatile [(const_int 0) ! (mem:SI (post_dec:SI (match_dup 0)))] ! VUNSPEC_VLSTM)] "use_cmse && reload_completed" "vlstm%?\\t%0" [(set_attr "predicable" "yes") --- 1703,1717 ---- (set_attr "type" "mov_reg")] ) + ;; Both this and the next instruction are treated by GCC in the same + ;; way as a blockage pattern. That's perhaps stronger than it needs + ;; to be, but we do not want accesses to the VFP register bank to be + ;; moved across either instruction. + (define_insn "lazy_store_multiple_insn" ! [(unspec_volatile ! [(mem:BLK (match_operand:SI 0 "s_register_operand" "rk"))] ! VUNSPEC_VLSTM)] "use_cmse && reload_completed" "vlstm%?\\t%0" [(set_attr "predicable" "yes") *************** *** 1716,1729 **** ) (define_insn "lazy_load_multiple_insn" ! [(set (match_operand:SI 0 "s_register_operand" "+&rk") ! (post_inc:SI (match_dup 0))) ! (unspec_volatile:SI [(const_int 0) ! (mem:SI (match_dup 0))] ! VUNSPEC_VLLDM)] "use_cmse && reload_completed" ! "vlldm%?\\t%0" ! [(set_attr "predicable" "yes") (set_attr "type" "load_4")] ) --- 1719,1734 ---- ) (define_insn "lazy_load_multiple_insn" ! [(unspec_volatile ! [(mem:BLK (match_operand:SI 0 "s_register_operand" "rk,rk"))] ! VUNSPEC_VLLDM)] "use_cmse && reload_completed" ! "@ ! vscclrm\\t{vpr}\;vlldm\\t%0 ! vlldm\\t%0" ! [(set_attr "arch" "fix_vlldm,*") ! (set_attr "predicable" "no") ! (set_attr "length" "8,4") (set_attr "type" "load_4")] ) diff -Nrcpad gcc-11.2.0/gcc/config/darwin-c.c gcc-11.3.0/gcc/config/darwin-c.c *** gcc-11.2.0/gcc/config/darwin-c.c Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/darwin-c.c Thu Apr 21 07:58:52 2022 *************** macosx_version_as_macro (void) *** 691,697 **** if (!version_array) goto fail; ! if (version_array[MAJOR] < 10 || version_array[MAJOR] > 11) goto fail; if (version_array[MAJOR] == 10 && version_array[MINOR] < 10) --- 691,697 ---- if (!version_array) goto fail; ! if (version_array[MAJOR] < 10 || version_array[MAJOR] > 12) goto fail; if (version_array[MAJOR] == 10 && version_array[MINOR] < 10) diff -Nrcpad gcc-11.2.0/gcc/config/darwin-driver.c gcc-11.3.0/gcc/config/darwin-driver.c *** gcc-11.2.0/gcc/config/darwin-driver.c Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/darwin-driver.c Thu Apr 21 07:58:52 2022 *************** validate_macosx_version_min (const char *** 64,80 **** major = strtoul (version_str, &end, 10); ! if (major < 10 || major > 11 ) /* MacOS 10 and 11 are known. */ return NULL; /* Skip a separating period, if there's one. */ version_str = end + ((*end == '.') ? 1 : 0); ! if (major == 11 && *end != '\0' && !ISDIGIT (version_str[0])) ! /* For MacOS 11, we allow just the major number, but if the minor is there it must be numeric. */ return NULL; ! else if (major == 11 && *end == '\0') /* We will rewrite 11 => 11.0.0. */ need_rewrite = true; else if (major == 10 && (*end == '\0' || !ISDIGIT (version_str[0]))) --- 64,80 ---- major = strtoul (version_str, &end, 10); ! if (major < 10 || major > 12 ) /* macOS 10, 11, and 12 are known. */ return NULL; /* Skip a separating period, if there's one. */ version_str = end + ((*end == '.') ? 1 : 0); ! if (major > 10 && *end != '\0' && !ISDIGIT (version_str[0])) ! /* For macOS 11+, we allow just the major number, but if the minor is there it must be numeric. */ return NULL; ! else if (major > 10 && *end == '\0') /* We will rewrite 11 => 11.0.0. */ need_rewrite = true; else if (major == 10 && (*end == '\0' || !ISDIGIT (version_str[0]))) *************** darwin_find_version_from_kernel (void) *** 172,178 **** if (minor_vers > 0) minor_vers -= 1; /* Kernel 20.3 => macOS 11.2. */ /* It's not yet clear whether patch level will be considered. */ ! asprintf (&new_flag, "11.%02d.00", minor_vers); } else if (major_vers - 4 <= 4) /* On 10.4 and earlier, the old linker is used which does not --- 172,178 ---- if (minor_vers > 0) minor_vers -= 1; /* Kernel 20.3 => macOS 11.2. */ /* It's not yet clear whether patch level will be considered. */ ! asprintf (&new_flag, "%d.%02d.00", major_vers - 9, minor_vers); } else if (major_vers - 4 <= 4) /* On 10.4 and earlier, the old linker is used which does not *************** maybe_get_sysroot_from_sdkroot () *** 259,272 **** return xstrndup (maybe_sysroot, strlen (maybe_sysroot)); } ! /* Translate -filelist and -framework options in *DECODED_OPTIONS ! (size *DECODED_OPTIONS_COUNT) to use -Xlinker so that they are ! considered to be linker inputs in the case that no other inputs are ! specified. Handling these options in DRIVER_SELF_SPECS does not ! suffice because specs are too late to add linker inputs, and ! handling them in LINK_SPEC does not suffice because the linker will ! not be called if there are no other inputs. When native, also ! default the -mmacosx-version-min flag. */ void darwin_driver_init (unsigned int *decoded_options_count, --- 259,269 ---- return xstrndup (maybe_sysroot, strlen (maybe_sysroot)); } ! /* Handle the deduction of m32/m64 from -arch flags and the interactions ! between them (i.e. try to warn a user who thinks that they have a driver ! that can produce multi-slice "FAT" outputs with more than one arch). ! Default the -mmacosx-version-min flag, which requires a system call on ! native hosts. */ void darwin_driver_init (unsigned int *decoded_options_count, *************** darwin_driver_init (unsigned int *decode *** 284,289 **** --- 281,287 ---- const char *vers_string = NULL; bool seen_version_min = false; bool seen_sysroot_p = false; + bool noexport_p = true; for (i = 1; i < *decoded_options_count; i++) { *************** darwin_driver_init (unsigned int *decode *** 326,348 **** seenM64 = true; break; - case OPT_filelist: - case OPT_framework: - ++*decoded_options_count; - *decoded_options = XRESIZEVEC (struct cl_decoded_option, - *decoded_options, - *decoded_options_count); - memmove (*decoded_options + i + 2, - *decoded_options + i + 1, - ((*decoded_options_count - i - 2) - * sizeof (struct cl_decoded_option))); - generate_option (OPT_Xlinker, (*decoded_options)[i].arg, 1, - CL_DRIVER, &(*decoded_options)[i + 1]); - generate_option (OPT_Xlinker, - (*decoded_options)[i].canonical_option[0], 1, - CL_DRIVER, &(*decoded_options)[i]); - break; - case OPT_mmacosx_version_min_: seen_version_min = true; vers_string = --- 324,329 ---- *************** darwin_driver_init (unsigned int *decode *** 369,374 **** --- 350,362 ---- seen_sysroot_p = true; break; + case OPT_Xlinker: + case OPT_Wl_: + gcc_checking_assert ((*decoded_options)[i].arg); + if (strncmp ((*decoded_options)[i].arg, "-exported_symbol", 16) == 0) + noexport_p = false; + break; + default: break; } *************** darwin_driver_init (unsigned int *decode *** 420,425 **** --- 408,417 ---- } #endif + /* If there is nothing else on the command line, do not add sysroot etc. */ + if (*decoded_options_count <= 1) + return; + if (appendM32 || appendM64) { ++*decoded_options_count; *************** darwin_driver_init (unsigned int *decode *** 430,436 **** &(*decoded_options)[*decoded_options_count - 1]); } ! if (! seen_sysroot_p) { /* We will pick up an SDKROOT if we didn't specify a sysroot and treat it as overriding any configure-time --with-sysroot. */ --- 422,428 ---- &(*decoded_options)[*decoded_options_count - 1]); } ! if (!seen_sysroot_p) { /* We will pick up an SDKROOT if we didn't specify a sysroot and treat it as overriding any configure-time --with-sysroot. */ *************** darwin_driver_init (unsigned int *decode *** 449,455 **** /* We will need to know the OS X version we're trying to build for here so that we can figure out the mechanism and source for the sysroot to be used. */ ! if (! seen_version_min && *decoded_options_count > 1) /* Not set by the User, try to figure it out. */ vers_string = darwin_default_min_version (); --- 441,447 ---- /* We will need to know the OS X version we're trying to build for here so that we can figure out the mechanism and source for the sysroot to be used. */ ! if (!seen_version_min) /* Not set by the User, try to figure it out. */ vers_string = darwin_default_min_version (); *************** darwin_driver_init (unsigned int *decode *** 486,489 **** --- 478,491 ---- &(*decoded_options)[*decoded_options_count - 1]); } } + + if (noexport_p) + { + ++*decoded_options_count; + *decoded_options = XRESIZEVEC (struct cl_decoded_option, + *decoded_options, + *decoded_options_count); + generate_option (OPT_nodefaultexport, NULL, 1, CL_DRIVER, + &(*decoded_options)[*decoded_options_count - 1]); + } } diff -Nrcpad gcc-11.2.0/gcc/config/darwin.c gcc-11.3.0/gcc/config/darwin.c *** gcc-11.2.0/gcc/config/darwin.c Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/darwin.c Thu Apr 21 07:58:52 2022 *************** static bool ld_uses_coal_sects = false; *** 108,113 **** --- 108,116 ---- each FDE. */ static bool ld_needs_eh_markers = false; + /* Emit a section-start symbol for mod init and term sections. */ + static bool ld_init_term_start_labels = false; + /* Section names. */ section * darwin_sections[NUM_DARWIN_SECTIONS]; *************** finalize_ctors () *** 1837,1842 **** --- 1840,1850 ---- else switch_to_section (darwin_sections[constructor_section]); + /* Where needed, provide a linker-visible section-start symbol so that we + have stable output between debug and non-debug. */ + if (ld_init_term_start_labels) + fputs (MACHOPIC_INDIRECT ? "_Mod.init:\n" : "_CTOR.sect:\n", asm_out_file); + if (vec_safe_length (ctors) > 1) ctors->qsort (sort_cdtor_records); FOR_EACH_VEC_SAFE_ELT (ctors, i, elt) *************** finalize_dtors () *** 1857,1862 **** --- 1865,1875 ---- else switch_to_section (darwin_sections[destructor_section]); + /* Where needed, provide a linker-visible section-start symbol so that we + have stable output between debug and non-debug. */ + if (ld_init_term_start_labels) + fputs (MACHOPIC_INDIRECT ? "_Mod.term:\n" : "_DTOR.sect:\n", asm_out_file); + if (vec_safe_length (dtors) > 1) dtors->qsort (sort_cdtor_records); FOR_EACH_VEC_SAFE_ELT (dtors, i, elt) *************** darwin_file_end (void) *** 3129,3134 **** --- 3142,3155 ---- re-arranging data. */ if (!DARWIN_SECTION_ANCHORS || !flag_section_anchors) fprintf (asm_out_file, "\t.subsections_via_symbols\n"); + + /* We rely on this being NULL at the start of compilation; reset it here + so that JIT can reuse a context. */ + if (dwarf_sect_names_table != NULL) + { + dwarf_sect_names_table->truncate (0); + dwarf_sect_names_table = NULL; + } } /* TODO: Add a language hook for identifying if a decl is a vtable. */ *************** darwin_override_options (void) *** 3220,3230 **** /* Earlier versions are not specifically accounted, until required. */ } ! /* Older Darwin ld could not coalesce weak entities without them being ! placed in special sections. */ ! if (darwin_target_linker ! && (strverscmp (darwin_target_linker, MIN_LD64_NO_COAL_SECTS) < 0)) ! ld_uses_coal_sects = true; /* In principle, this should be c-family only. However, we really need to set sensible defaults for LTO as well, since the section selection stuff --- 3241,3265 ---- /* Earlier versions are not specifically accounted, until required. */ } ! /* Some codegen needs to account for the capabilities of the target ! linker. */ ! if (darwin_target_linker) ! { ! /* Older Darwin ld could not coalesce weak entities without them being ! placed in special sections. */ ! if (strverscmp (darwin_target_linker, MIN_LD64_NO_COAL_SECTS) < 0) ! ld_uses_coal_sects = true; ! ! /* Some newer assemblers emit section start temp symbols for mod init ! and term sections if there is no suitable symbol present already. ! The temp symbols are linker visible and therefore appear in the ! symbol tables. Since the temp symbol number can vary when debug is ! enabled, that causes compare-debug fails. The solution is to provide ! a stable linker-visible symbol. */ ! if (strverscmp (darwin_target_linker, ! MIN_LD64_INIT_TERM_START_LABELS) >= 0) ! ld_init_term_start_labels = true; ! } /* In principle, this should be c-family only. However, we really need to set sensible defaults for LTO as well, since the section selection stuff *************** darwin_fold_builtin (tree fndecl, int n_ *** 3600,3629 **** void darwin_rename_builtins (void) { - /* The system ___divdc3 routine in libSystem on darwin10 is not - accurate to 1ulp, ours is, so we avoid ever using the system name - for this routine and instead install a non-conflicting name that - is accurate. - - When -ffast-math or -funsafe-math-optimizations is given, we can - use the faster version. */ - if (!flag_unsafe_math_optimizations) - { - enum built_in_function dcode - = (enum built_in_function)(BUILT_IN_COMPLEX_DIV_MIN - + DCmode - MIN_MODE_COMPLEX_FLOAT); - tree fn = builtin_decl_explicit (dcode); - /* Fortran and c call TARGET_INIT_BUILTINS and - TARGET_INIT_LIBFUNCS at different times, so we have to put a - call into each to ensure that at least one of them is called - after build_common_builtin_nodes. A better fix is to add a - new hook to run after build_common_builtin_nodes runs. */ - if (fn) - set_user_assembler_name (fn, "___ieee_divdc3"); - fn = builtin_decl_implicit (dcode); - if (fn) - set_user_assembler_name (fn, "___ieee_divdc3"); - } } bool --- 3635,3640 ---- diff -Nrcpad gcc-11.2.0/gcc/config/darwin.h gcc-11.3.0/gcc/config/darwin.h *** gcc-11.2.0/gcc/config/darwin.h Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/darwin.h Thu Apr 21 07:58:52 2022 *************** see the files COPYING3 and COPYING.RUNTI *** 54,59 **** --- 54,64 ---- #define DO_GLOBAL_DTORS_BODY + /* Register static destructors to run from __cxa_atexit instead of putting + them into a .mod_term_funcs section. */ + + #define TARGET_DTORS_FROM_CXA_ATEXIT true + /* The string value for __SIZE_TYPE__. */ #ifndef SIZE_TYPE *************** see the files COPYING3 and COPYING.RUNTI *** 118,141 **** /* True if pragma ms_struct is in effect. */ extern GTY(()) int darwin_ms_struct; ! /* The majority of Darwin's special driver opts are direct access to ld flags ! (to save the user typing -Wl,xxxxx or Xlinker xxxxx) but we can't process ! them here, since doing so will make it appear that there are linker infiles ! and the linker will invoked even when it is not necessary. - However, a few can be handled and we can elide options that are silently- - ignored defaults, plus warn on obsolete ones that no longer function. */ #undef SUBTARGET_DRIVER_SELF_SPECS #define SUBTARGET_DRIVER_SELF_SPECS \ ! "%{fapple-kext|mkernel:-static}", \ ! "%{gfull:-g -fno-eliminate-unused-debug-symbols} %= 10.7 mmacosx-version-min= -no_pie) }" #define DARWIN_CC1_SPEC \ ! "%{findirect-virtual-calls: -fapple-kext} %= 10.7 mmacosx-version-min= -no_pie) }" #define DARWIN_CC1_SPEC \ ! "%< 10.6 10.7 mmacosx-version-min= -ld10-uwfef.o) \ %(link_gcc_c_sequence) \ }}}\ ! %{!nostdlib:%{!r:%{!nostartfiles:%E}}} %{T*} %{F*} "\ DARWIN_PIE_SPEC \ DARWIN_NOPIE_SPEC \ DARWIN_RDYNAMIC \ DARWIN_NOCOMPACT_UNWIND \ "}}}}}}} %= 10.6 mmacosx-version-min= -lSystem) } } \ ! %G %{!nolibc:%L}" /* ld64 supports a sysroot, it just has a different name and there's no easy way to check for it at config time. */ --- 358,419 ---- "%X %{s} %{t} %{Z} %{u*} \ %{e*} %{r} \ %{o*}%{!o:-o a.out} \ ! %{!r:%{!nostdlib:%{!nostartfiles:%S}}} \ ! %{L*} %(link_libgcc) %o \ ! %{!r:%{!nostdlib:%{!nodefaultlibs:\ ! %{fprofile-arcs|fprofile-generate*|coverage:-lgcov} \ ! %{fopenacc|fopenmp|%:gt(%{ftree-parallelize-loops=*:%*} 1): \ ! %{static|static-libgcc|static-libstdc++|static-libgfortran: \ ! libgomp.a%s; : -lgomp }} \ ! %{fgnu-tm: \ ! %{static|static-libgcc|static-libstdc++|static-libgfortran: \ ! libitm.a%s; : -litm }} \ %{%:sanitize(address): -lasan } \ %{%:sanitize(undefined): -lubsan } \ %(link_ssp) \ ! %:version-compare(>< 10.6 10.7 mmacosx-version-min= -ld10-uwfef) \ %(link_gcc_c_sequence) \ + %{!nodefaultexport:%{dylib|dynamiclib|bundle: \ + %:version-compare(>= 10.11 asm_macosx_version_min= -U) \ + %:version-compare(>= 10.11 asm_macosx_version_min= ___emutls_get_address) \ + %:version-compare(>= 10.11 asm_macosx_version_min= -exported_symbol) \ + %:version-compare(>= 10.11 asm_macosx_version_min= ___emutls_get_address) \ + %:version-compare(>= 10.11 asm_macosx_version_min= -U) \ + %:version-compare(>= 10.11 asm_macosx_version_min= ___emutls_register_common) \ + %:version-compare(>= 10.11 asm_macosx_version_min= -exported_symbol) \ + %:version-compare(>= 10.11 asm_macosx_version_min= ___emutls_register_common) \ + }} \ }}}\ ! %{!r:%{!nostdlib:%{!nostartfiles:%E}}} %{T*} %{F*} "\ DARWIN_PIE_SPEC \ DARWIN_NOPIE_SPEC \ DARWIN_RDYNAMIC \ DARWIN_NOCOMPACT_UNWIND \ "}}}}}}} % 10.3.9 mmacosx-version-min= -lgcc_eh) \ ! %:version-compare(>< 10.3.9 10.5 mmacosx-version-min= -lgcc_s.10.4) \ ! %:version-compare(>< 10.5 10.6 mmacosx-version-min= -lgcc_s.10.5) \ ! %:version-compare(>< 10.3.9 10.5 mmacosx-version-min= -lgcc_ext.10.4) \ ! %:version-compare(>= 10.5 mmacosx-version-min= -lgcc_ext.10.5) \ ! -lgcc ; \ ! :%:version-compare(>< 10.3.9 10.5 mmacosx-version-min= -lgcc_s.10.4) \ ! %:version-compare(>< 10.5 10.6 mmacosx-version-min= -lgcc_s.10.5) \ ! %:version-compare(>< 10.3.9 10.5 mmacosx-version-min= -lgcc_ext.10.4) \ ! %:version-compare(>= 10.5 mmacosx-version-min= -lgcc_ext.10.5) \ ! -lgcc }" /* We specify crt0.o as -lcrt0.o so that ld will search the library path. */ #undef STARTFILE_SPEC #define STARTFILE_SPEC \ ! "%{Zdynamiclib: %(darwin_dylib1) %{fgnu-tm: -lcrttms.o}} \ ! %{!Zdynamiclib:%{Zbundle:%(darwin_bundle1)} \ ! %{!Zbundle:%{pg:%{static:-lgcrt0.o} \ %{!static:%{object:-lgcrt0.o} \ %{!object:%{preload:-lgcrt0.o} \ %{!preload:-lgcrt1.o \ --- 421,527 ---- #define HAVE_LD_SYSROOT 1 /* It seems the only (working) way to get a space after %R is to append a dangling '/'. */ ! #define SYSROOT_SPEC "%{!isysroot*:-syslibroot %R/ } " /* Do the same as clang, for now, and insert the sysroot for ld when an isysroot is specified. */ ! #define LINK_SYSROOT_SPEC "%{isysroot*:-syslibroot %*} " /* Suppress the addition of extra prefix paths when a sysroot is in use. */ #define STANDARD_STARTFILE_PREFIX_1 "" #define STANDARD_STARTFILE_PREFIX_2 "" ! ! /* Please keep the random linker options in alphabetical order. ! Note that options taking arguments may appear multiple times on a command ! line with different arguments each time, so put a * after their names so ! all of them get passed. */ #define LINK_SPEC \ ! "%{static}%{!static:%{!dynamic:-dynamic}} \ %:remove-outfile(-ldl) \ %:remove-outfile(-lm) \ %:remove-outfile(-lpthread) \ %{fgnu-runtime: %{static|static-libgcc: \ %:replace-outfile(-lobjc libobjc-gnu.a%s); \ ! :%:replace-outfile(-lobjc -lobjc-gnu )}}\ %{static|static-libgcc|static-libgfortran:%:replace-outfile(-lgfortran libgfortran.a%s)}\ %{static|static-libgcc|static-libstdc++|static-libgfortran:%:replace-outfile(-lgomp libgomp.a%s)}\ %{static|static-libgcc|static-libstdc++:%:replace-outfile(-lstdc++ libstdc++.a%s)}\ ! %{force_cpusubtype_ALL:-arch %(darwin_arch)} \ ! %{!force_cpusubtype_ALL:-arch %(darwin_subarch)} "\ ! LINK_SYSROOT_SPEC \ ! "%{mmacosx-version-min=*:-macosx_version_min %*} \ ! %{sectalign*} %{sectcreate*} %{sectobjectsymbols*} %{sectorder*} \ ! %{segaddr*} %{segcreate*} %{segprot*} " /* Machine dependent libraries. */ #define LIB_SPEC "%{!static:-lSystem}" ! /* ! Note that by default, -lgcc_eh is not linked against. This is because,in general, we need to unwind through system libraries that are linked with the shared unwinder in libunwind (or libgcc_s for 10.4/5). ! For -static-libgcc: < 10.6, use the unwinder in libgcc_eh (and find ! the emultls impl. there too). ! For -static-libgcc: >= 10.6, the unwinder *still* comes from libSystem and ! we find the emutls impl from lemutls_w. In either case, the builtins etc. ! are linked from -lgcc. ! ! When we have specified shared-libgcc or any case that might require ! exceptions, we pull the libgcc content (including emulated tls) from ! -lgcc_s.1 in GCC and the unwinder from /usr/lib/libgcc_s.1 for < 10.6 and ! libSystem for >= 10.6 respectively. ! Otherwise, we just link the emutls/builtins from convenience libs. ! ! If we need exceptions, prior to 10.3.9, then we have to link the static ! eh lib, since there's no shared version on the system. + In all cases, libgcc_s.1 will be installed with the compiler, or any app + built using it, so we can link the builtins and emutls shared on all. + + We have to work around that DYLD_XXXX are disabled in macOS 10.11+ which + means that any bootstrap trying to use a shared libgcc with a bumped SO- + name will fail. This means that we do not accept shared libgcc for these + versions. + + For -static-libgcc: >= 10.6, the unwinder *still* comes from libSystem and + we find the emutls impl from lemutls_w. In either case, the builtins etc. + are linked from -lgcc. + > + Otherwise, we just link the shared version of gcc_s.1.1 and pick up + exceptions: + * Prior to 10.3.9, then we have to link the static eh lib, since there + is no shared version on the system. + * from 10.3.9 to 10.5, from /usr/lib/libgcc_s.1.dylib + * from 10.6 onwards, from libSystem.dylib + + In all cases, libgcc_s.1.1 will be installed with the compiler, or any app + built using it, so we can link the builtins and emutls shared on all. + */ #undef REAL_LIBGCC_SPEC ! #define REAL_LIBGCC_SPEC \ ! "%{static-libgcc|static: \ ! %:version-compare(!> 10.6 mmacosx-version-min= -lgcc_eh) \ ! %:version-compare(>= 10.6 mmacosx-version-min= -lemutls_w); \ ! shared-libgcc|fexceptions|fobjc-exceptions|fgnu-runtime: \ ! %:version-compare(!> 10.11 mmacosx-version-min= -lgcc_s.1.1) \ ! %:version-compare(>= 10.11 mmacosx-version-min= -lemutls_w) \ ! %:version-compare(!> 10.3.9 mmacosx-version-min= -lgcc_eh) \ ! %:version-compare(>< 10.3.9 10.5 mmacosx-version-min= -lgcc_s.10.4) \ ! %:version-compare(>< 10.5 10.6 mmacosx-version-min= -lgcc_s.10.5); \ ! : -lemutls_w \ ! } -lgcc " /* We specify crt0.o as -lcrt0.o so that ld will search the library path. */ #undef STARTFILE_SPEC #define STARTFILE_SPEC \ ! "%{dynamiclib: %(darwin_dylib1) %{fgnu-tm: -lcrttms.o}} \ ! %{!dynamiclib:%{bundle:%(darwin_bundle1)} \ ! %{!bundle:%{pg:%{static:-lgcrt0.o} \ %{!static:%{object:-lgcrt0.o} \ %{!object:%{preload:-lgcrt0.o} \ %{!preload:-lgcrt1.o \ *************** extern GTY(()) int darwin_ms_struct; *** 424,430 **** %{!object:%{preload:-lcrt0.o} \ %{!preload: %(darwin_crt1) \ %(darwin_crt2)}}}}}} \ ! %(darwin_crt3)" /* We want a destructor last in the list. */ #define TM_DESTRUCTOR "%{fgnu-tm: -lcrttme.o}" --- 532,538 ---- %{!object:%{preload:-lcrt0.o} \ %{!preload: %(darwin_crt1) \ %(darwin_crt2)}}}}}} \ ! %(darwin_crt3) % The output dylib is private to the client . arch --- 90,100 ---- ; Driver options. all_load ! Driver RejectNegative Load all members of archive libraries, rather than only those that satisfy undefined symbols. allowable_client ! Driver RejectNegative Separate -allowable_client The output dylib is private to the client . arch *************** Driver RejectNegative Separate *** 102,108 **** -arch Generate output for architecture . arch_errors_fatal ! Driver RejectNegative Alias(Zarch_errors_fatal) Mismatches between file architecture and one specified by \"-arch\" are errors instead of warnings. asm_macosx_version_min= --- 102,108 ---- -arch Generate output for architecture . arch_errors_fatal ! Driver RejectNegative Mismatches between file architecture and one specified by \"-arch\" are errors instead of warnings. asm_macosx_version_min= *************** Driver RejectNegative Joined *** 110,124 **** The earliest macOS version on which this program will run (formatted for the assembler). bind_at_load ! Driver RejectNegative Alias(Zbind_at_load) Generate an output executable that binds symbols on load, rather than lazily. bundle ! Driver RejectNegative Alias(Zbundle) Generate a Mach-O bundle (file type MH_BUNDLE). bundle_loader ! Driver RejectNegative Separate Alias(Zbundle_loader) -bundle_loader Treat (that will be loading this bundle) as if it was one of the dynamic libraries the bundle is linked against for symbol resolution. client_name --- 110,124 ---- The earliest macOS version on which this program will run (formatted for the assembler). bind_at_load ! Driver RejectNegative Generate an output executable that binds symbols on load, rather than lazily. bundle ! Driver RejectNegative Generate a Mach-O bundle (file type MH_BUNDLE). bundle_loader ! Driver RejectNegative Separate -bundle_loader Treat (that will be loading this bundle) as if it was one of the dynamic libraries the bundle is linked against for symbol resolution. client_name *************** Driver RejectNegative Separate *** 134,144 **** -current_version Set the current version for the library to . dead_strip ! Driver RejectNegative Alias(Zdead_strip) Remove code and data that is unreachable from any exported symbol (including the entry point). dylib_file ! Driver Separate Alias(Zdylib_file) dylinker Driver RejectNegative --- 134,145 ---- -current_version Set the current version for the library to . dead_strip ! Driver RejectNegative Remove code and data that is unreachable from any exported symbol (including the entry point). dylib_file ! Driver RejectNegative Separate ! -dylib_file install_name:file_name This allows linking of a dylib with \"install_name\" but to be found in a different install position \"file_name\" dylinker Driver RejectNegative *************** Driver RejectNegative Separate *** 149,163 **** -dylinker_install_name Only used for building dyld. dynamic ! Driver RejectNegative Alias(Zdynamic) The default (and opposite of -static), implied by user mode executables, shared libraries and bundles. dynamiclib ! Driver RejectNegative Alias(Zdynamiclib) Produce a Mach-O shared library (file type MH_DYLIB), synonym for \"-shared\". exported_symbols_list ! Driver RejectNegative Separate Alias(Zexported_symbols_list) -exported_symbols_list Export global symbols in in linked output file; any symbols not mentioned will be treated as \"hidden\". filelist --- 150,164 ---- -dylinker_install_name Only used for building dyld. dynamic ! Driver RejectNegative The default (and opposite of -static), implied by user mode executables, shared libraries and bundles. dynamiclib ! Driver RejectNegative Produce a Mach-O shared library (file type MH_DYLIB), synonym for \"-shared\". exported_symbols_list ! Driver RejectNegative Separate -exported_symbols_list Export global symbols in in linked output file; any symbols not mentioned will be treated as \"hidden\". filelist *************** Driver RejectNegative *** 169,183 **** Used for generating code for some older kernel revisions. flat_namespace ! Driver RejectNegative Alias(Zflat_namespace) Ignore the normal two-level namespace; resolve symbols in command line order and do not record which library provided the resolved symbol. force_cpusubtype_ALL ! Driver RejectNegative Alias(Zforce_cpusubtype_ALL) For the assembler (and linker) permit any architecture sub-variant to be used without error. force_flat_namespace ! Driver RejectNegative Alias(Zforce_flat_namespace) Set the output object such that, on loading, dyld will ignore any two-level namespace information and resolve symbols in the discovery order for loaded libs. framework --- 170,184 ---- Used for generating code for some older kernel revisions. flat_namespace ! Driver RejectNegative Ignore the normal two-level namespace; resolve symbols in command line order and do not record which library provided the resolved symbol. force_cpusubtype_ALL ! Driver RejectNegative For the assembler (and linker) permit any architecture sub-variant to be used without error. force_flat_namespace ! Driver RejectNegative Set the output object such that, on loading, dyld will ignore any two-level namespace information and resolve symbols in the discovery order for loaded libs. framework *************** Driver RejectNegative *** 201,215 **** Automatically adds space for longer path names in load commands (up to MAXPATHLEN). image_base ! Driver RejectNegative Separate Alias(Zimage_base) -image_base
Specify
as the base address for a dylib or bundle. init ! Driver RejectNegative Separate Alias(Zinit) -init The symbol will be used as the first initialiser for a dylib. install_name ! Driver RejectNegative Separate Alias(Zinstall_name) -install_name Set the install name for a dylib. keep_private_externs --- 202,216 ---- Automatically adds space for longer path names in load commands (up to MAXPATHLEN). image_base ! Driver RejectNegative Separate -image_base
Specify
as the base address for a dylib or bundle. init ! Driver RejectNegative Separate -init The symbol will be used as the first initialiser for a dylib. install_name ! Driver RejectNegative Separate -install_name Set the install name for a dylib. keep_private_externs *************** Driver RejectNegative *** 217,237 **** Usually \"private extern\" (hidden) symbols are made local when linking, this command suppresses that such that they remain exported. multi_module ! Driver RejectNegative Alias(Zmulti_module) (Obsolete after 10.4) Multi modules are ignored at runtime since macOS 10.4. multiply_defined ! Driver RejectNegative Separate Alias(Zmultiply_defined) (Obsolete after 10.4) -multiply_defined Provided a mechanism for warning about symbols defined in multiple dylibs. multiply_defined_unused ! Driver RejectNegative Separate Alias(Zmultiplydefinedunused) (Obsolete after 10.4) -multiply_defined_unused Provided a mechanism for warning about symbols defined in the current executable also being defined in linked dylibs. no_dead_strip_inits_and_terms ! Driver RejectNegative Alias(Zno_dead_strip_inits_and_terms) (Obsolete) Current linkers never dead-strip these items, so the option is not needed. nofixprebinding Driver RejectNegative (Obsolete after 10.3.9) Set MH_NOPREFIXBINDING, in an executable. --- 218,242 ---- Usually \"private extern\" (hidden) symbols are made local when linking, this command suppresses that such that they remain exported. multi_module ! Driver RejectNegative (Obsolete after 10.4) Multi modules are ignored at runtime since macOS 10.4. multiply_defined ! Driver RejectNegative Separate (Obsolete after 10.4) -multiply_defined Provided a mechanism for warning about symbols defined in multiple dylibs. multiply_defined_unused ! Driver RejectNegative Separate (Obsolete after 10.4) -multiply_defined_unused Provided a mechanism for warning about symbols defined in the current executable also being defined in linked dylibs. no_dead_strip_inits_and_terms ! Driver RejectNegative (Obsolete) Current linkers never dead-strip these items, so the option is not needed. + nodefaultexport + Driver RejectNegative + Do not add a default symbol exports to modules or dynamic libraries. + nofixprebinding Driver RejectNegative (Obsolete after 10.3.9) Set MH_NOPREFIXBINDING, in an executable. *************** Driver RejectNegative Separate Args(3) *** 299,310 **** (Obsolete) -sectorder Replaced by a more general option \"-order_file\". seg_addr_table ! Driver RejectNegative Separate Alias(Zseg_addr_table) -seg_addr_table Specify the base addresses for dynamic libraries; contains a line for each library. ; This is only usable by the ld_classic linker. seg_addr_table_filename ! Driver RejectNegative Separate Alias(Zfn_seg_addr_table_filename) (Obsolete, ld_classic only) -seg_addr_table_filename . seg1addr --- 304,315 ---- (Obsolete) -sectorder Replaced by a more general option \"-order_file\". seg_addr_table ! Driver RejectNegative Separate -seg_addr_table Specify the base addresses for dynamic libraries; contains a line for each library. ; This is only usable by the ld_classic linker. seg_addr_table_filename ! Driver RejectNegative Separate (Obsolete, ld_classic only) -seg_addr_table_filename . seg1addr *************** Driver RejectNegative Separate *** 312,318 **** Synonym for \"image_base\". segaddr ! Driver RejectNegative Separate Args(2) Alias(Zsegaddr) -segaddr
Set the base address of segment to
which must be aligned to a page boundary (currently 4kb). ; This is only usable by the ld_classic linker. --- 317,323 ---- Synonym for \"image_base\". segaddr ! Driver RejectNegative Separate Args(2) -segaddr
Set the base address of segment to
which must be aligned to a page boundary (currently 4kb). ; This is only usable by the ld_classic linker. *************** Driver RejectNegative Separate Args(3) *** 329,343 **** -segprot The virtual memory protections for segment have maximum and initial values and respectively. The specified values may contain \"r\", \"w\", \"x\" or \"-\" the latter meaning \"no access\". segs_read_only_addr ! Driver RejectNegative Separate Alias(Zsegs_read_only_addr) -segs_read_only_addr
Specify that
is the base address of the read-only segments of a dylib. segs_read_write_addr ! Driver RejectNegative Separate Alias(Zsegs_read_write_addr) -segs_read_write_addr
Specify that
is the base address address of the read-write segments of a dylib. single_module ! Driver RejectNegative Alias(Zsingle_module) (Obsolete) This is the default. sub_library --- 334,348 ---- -segprot The virtual memory protections for segment have maximum and initial values and respectively. The specified values may contain \"r\", \"w\", \"x\" or \"-\" the latter meaning \"no access\". segs_read_only_addr ! Driver RejectNegative Separate -segs_read_only_addr
Specify that
is the base address of the read-only segments of a dylib. segs_read_write_addr ! Driver RejectNegative Separate -segs_read_write_addr
Specify that
is the base address address of the read-write segments of a dylib. single_module ! Driver RejectNegative (Obsolete) This is the default. sub_library *************** Driver RejectNegative *** 357,363 **** Add extra information to the executable that can speed up dynamic loading (provided that dependent libraries are unchanged). umbrella ! Driver RejectNegative Separate Alias(Zumbrella) -umbrella The specified framework will be re-exported. undefined --- 362,368 ---- Add extra information to the executable that can speed up dynamic loading (provided that dependent libraries are unchanged). umbrella ! Driver RejectNegative -umbrella The specified framework will be re-exported. undefined *************** Driver RejectNegative Separate *** 365,375 **** -undefined Specify the handling for undefined symbols (default is error). unexported_symbols_list ! Driver RejectNegative Separate Alias(Zunexported_symbols_list) -unexported_symbols_list Do not export the global symbols listed in . weak_reference_mismatches ! Driver RejectNegative Separate Alias(Zweak_reference_mismatches) -weak_reference_mismatches Specifies what to do if a symbol import conflicts between file (weak in one and not in another) the default is to treat the symbol as non-weak. whatsloaded --- 370,380 ---- -undefined Specify the handling for undefined symbols (default is error). unexported_symbols_list ! Driver RejectNegative Separate -unexported_symbols_list Do not export the global symbols listed in . weak_reference_mismatches ! Driver RejectNegative Separate -weak_reference_mismatches Specifies what to do if a symbol import conflicts between file (weak in one and not in another) the default is to treat the symbol as non-weak. whatsloaded *************** Driver RejectNegative Joined *** 391,487 **** Mach Driver RejectNegative (Obsolete and unhandled by ld64, ignored) ld should produce an executable (only handled by ld_classic). - - ;; These are not "real" options, but placeholders used to hide the real options - ;; from generic options processing... FIXME: they can be eliminated now. - - Zall_load - Driver - - Zallowable_client - Driver Separate - - Zarch_errors_fatal - Driver - - Zbind_at_load - Driver - - Zbundle - Driver - - Zbundle_loader - Driver Separate - - Zdead_strip - Driver - - Zdylib_file - Driver Separate - - Zdynamic - Driver - - Zdynamiclib - Driver - - Zexported_symbols_list - Driver Separate - - Zfn_seg_addr_table_filename - Driver Separate - - Zflat_namespace - Driver - - Zforce_cpusubtype_ALL - Driver - - Zforce_flat_namespace - Driver - - Zimage_base - Driver Separate - - Zinit - Driver Separate - - Zinstall_name - Driver Separate - - Zmulti_module - Driver - - Zmultiply_defined - Driver Separate - - Zmultiplydefinedunused - Driver Separate - - Zno_dead_strip_inits_and_terms - Driver - - Zseg_addr_table - Driver Separate - - Zsegaddr - Driver Separate Args(2) - - Zsegs_read_only_addr - Driver Separate - - Zsegs_read_write_addr - Driver Separate - - Zsingle_module - Driver - - Zumbrella - Driver Separate - - Zunexported_symbols_list - Driver Separate - - Zweak_reference_mismatches - Driver Separate - --- 396,398 ---- diff -Nrcpad gcc-11.2.0/gcc/config/gcn/gcn-hsa.h gcc-11.3.0/gcc/config/gcn/gcn-hsa.h *** gcc-11.2.0/gcc/config/gcn/gcn-hsa.h Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/gcn/gcn-hsa.h Thu Apr 21 07:58:52 2022 *************** extern unsigned int gcn_local_sym_hash ( *** 75,83 **** --- 75,142 ---- supported for gcn. */ #define GOMP_SELF_SPECS "" + #ifdef HAVE_GCN_XNACK_FIJI + #define X_FIJI + #else + #define X_FIJI "!march=*:;march=fiji:;" + #endif + #ifdef HAVE_GCN_XNACK_GFX900 + #define X_900 + #else + #define X_900 "march=gfx900:;" + #endif + #ifdef HAVE_GCN_XNACK_GFX906 + #define X_906 + #else + #define X_906 "march=gfx906:;" + #endif + #ifdef HAVE_GCN_XNACK_GFX908 + #define X_908 + #else + #define X_908 "march=gfx908:;" + #endif + + /* These targets can't have SRAM-ECC, even if a broken assembler allows it. */ + #define S_FIJI "!march=*:;march=fiji:;" + #define S_900 "march=gfx900:;" + #define S_906 "march=gfx906:;" + #ifdef HAVE_GCN_SRAM_ECC_GFX908 + #define S_908 + #else + #define S_908 "march=gfx908:;" + #endif + + #ifdef HAVE_GCN_ASM_V3_SYNTAX + #define SRAMOPT "!msram-ecc=off:-mattr=+sram-ecc;:-mattr=-sram-ecc" + #endif + #ifdef HAVE_GCN_ASM_V4_SYNTAX + /* In HSACOv4 no attribute setting means the binary supports "any" hardware + configuration. The name of the attribute also changed. */ + #define SRAMOPT "msram-ecc=on:-mattr=+sramecc;msram-ecc=off:-mattr=-sramecc" + #endif + #if !defined(SRAMOPT) && !defined(IN_LIBGCC2) + #error "No assembler syntax configured" + #endif + + #ifdef HAVE_GCN_ASM_V4_SYNTAX + /* FIJI cards don't seem to support drivers new enough to allow HSACOv4. */ + #define HSACO3_SELECT_OPT \ + "%{!march=*|march=fiji:--amdhsa-code-object-version=3} " + #else + #define HSACO3_SELECT_OPT + #endif + + /* These targets can't have SRAM-ECC, even if a broken assembler allows it. */ + #define DRIVER_SELF_SPECS \ + "%{march=fiji|march=gfx900|march=gfx906:%{!msram-ecc=*:-msram-ecc=off}}" + /* Use LLVM assembler and linker options. */ #define ASM_SPEC "-triple=amdgcn--amdhsa " \ "%:last_arg(%{march=*:-mcpu=%*}) " \ + HSACO3_SELECT_OPT \ + "%{" X_FIJI X_900 X_906 X_908 \ + "mxnack:-mattr=+xnack;:-mattr=-xnack} " \ + "%{" S_FIJI S_900 S_906 S_908 SRAMOPT "} " \ "-filetype=obj" #define LINK_SPEC "--pie --export-dynamic" #define LIB_SPEC "-lc" diff -Nrcpad gcc-11.2.0/gcc/config/gcn/gcn-opts.h gcc-11.3.0/gcc/config/gcn/gcn-opts.h *** gcc-11.2.0/gcc/config/gcn/gcn-opts.h Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/gcn/gcn-opts.h Thu Apr 21 07:58:52 2022 *************** extern int gcn_isa; *** 34,37 **** --- 34,44 ---- #define TARGET_GCN5 (gcn_isa == 5) #define TARGET_GCN5_PLUS (gcn_isa >= 5) + enum sram_ecc_type + { + SRAM_ECC_OFF, + SRAM_ECC_ON, + SRAM_ECC_ANY + }; + #endif diff -Nrcpad gcc-11.2.0/gcc/config/gcn/gcn-valu.md gcc-11.3.0/gcc/config/gcn/gcn-valu.md *** gcc-11.2.0/gcc/config/gcn/gcn-valu.md Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/gcn/gcn-valu.md Thu Apr 21 07:58:52 2022 *************** *** 703,708 **** --- 703,710 ---- ;; - The address space and glc (volatile) fields are there to replace the ;; fields normally found in a MEM. ;; - Multiple forms of address expression are supported, below. + ;; + ;; TODO: implement combined gather and zero_extend, but only for -msram-ecc=on (define_expand "gather_load" [(match_operand:V_ALL 0 "register_operand") *************** *** 825,832 **** /* Work around assembler bug in which a 64-bit register is expected, but a 32-bit value would be correct. */ int reg = REGNO (operands[2]) - FIRST_VGPR_REG; ! sprintf (buf, "global_load%%o0\t%%0, v[%d:%d], %%1 offset:%%3%s\;" ! "s_waitcnt\tvmcnt(0)", reg, reg + 1, glc); } else gcc_unreachable (); --- 827,838 ---- /* Work around assembler bug in which a 64-bit register is expected, but a 32-bit value would be correct. */ int reg = REGNO (operands[2]) - FIRST_VGPR_REG; ! if (HAVE_GCN_ASM_GLOBAL_LOAD_FIXED) ! sprintf (buf, "global_load%%o0\t%%0, v%d, %%1 offset:%%3%s\;" ! "s_waitcnt\tvmcnt(0)", reg, glc); ! else ! sprintf (buf, "global_load%%o0\t%%0, v[%d:%d], %%1 offset:%%3%s\;" ! "s_waitcnt\tvmcnt(0)", reg, reg + 1, glc); } else gcc_unreachable (); *************** *** 956,963 **** /* Work around assembler bug in which a 64-bit register is expected, but a 32-bit value would be correct. */ int reg = REGNO (operands[1]) - FIRST_VGPR_REG; ! sprintf (buf, "global_store%%s3\tv[%d:%d], %%3, %%0 offset:%%2%s", ! reg, reg + 1, glc); } else gcc_unreachable (); --- 962,973 ---- /* Work around assembler bug in which a 64-bit register is expected, but a 32-bit value would be correct. */ int reg = REGNO (operands[1]) - FIRST_VGPR_REG; ! if (HAVE_GCN_ASM_GLOBAL_LOAD_FIXED) ! sprintf (buf, "global_store%%s3\tv%d, %%3, %%0 offset:%%2%s", ! reg, glc); ! else ! sprintf (buf, "global_store%%s3\tv[%d:%d], %%3, %%0 offset:%%2%s", ! reg, reg + 1, glc); } else gcc_unreachable (); diff -Nrcpad gcc-11.2.0/gcc/config/gcn/gcn.c gcc-11.3.0/gcc/config/gcn/gcn.c *** gcc-11.2.0/gcc/config/gcn/gcn.c Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/gcn/gcn.c Thu Apr 21 07:58:52 2022 *************** gcn_option_override (void) *** 143,148 **** --- 143,152 ---- /* 1MB total. */ stack_size_opt = 1048576; } + + /* The xnack option is a placeholder, for now. */ + if (flag_xnack) + sorry ("XNACK support"); } /* }}} */ *************** static void *** 5030,5045 **** output_file_start (void) { const char *cpu; switch (gcn_arch) { ! case PROCESSOR_FIJI: cpu = "gfx803"; break; ! case PROCESSOR_VEGA10: cpu = "gfx900"; break; ! case PROCESSOR_VEGA20: cpu = "gfx906"; break; ! case PROCESSOR_GFX908: cpu = "gfx908+sram-ecc"; break; default: gcc_unreachable (); } ! fprintf(asm_out_file, "\t.amdgcn_target \"amdgcn-unknown-amdhsa--%s\"\n", cpu); } /* Implement ASM_DECLARE_FUNCTION_NAME via gcn-hsa.h. --- 5034,5103 ---- output_file_start (void) { const char *cpu; + bool use_xnack_attr = true; + bool use_sram_attr = true; switch (gcn_arch) { ! case PROCESSOR_FIJI: ! cpu = "gfx803"; ! #ifndef HAVE_GCN_XNACK_FIJI ! use_xnack_attr = false; ! #endif ! use_sram_attr = false; ! break; ! case PROCESSOR_VEGA10: ! cpu = "gfx900"; ! #ifndef HAVE_GCN_XNACK_GFX900 ! use_xnack_attr = false; ! #endif ! use_sram_attr = false; ! break; ! case PROCESSOR_VEGA20: ! cpu = "gfx906"; ! #ifndef HAVE_GCN_XNACK_GFX906 ! use_xnack_attr = false; ! #endif ! use_sram_attr = false; ! break; ! case PROCESSOR_GFX908: ! cpu = "gfx908"; ! #ifndef HAVE_GCN_XNACK_GFX908 ! use_xnack_attr = false; ! #endif ! #ifndef HAVE_GCN_SRAM_ECC_GFX908 ! use_sram_attr = false; ! #endif ! break; default: gcc_unreachable (); } ! #if HAVE_GCN_ASM_V3_SYNTAX ! const char *xnack = (flag_xnack ? "+xnack" : ""); ! const char *sram_ecc = (flag_sram_ecc ? "+sram-ecc" : ""); ! #endif ! #if HAVE_GCN_ASM_V4_SYNTAX ! /* In HSACOv4 no attribute setting means the binary supports "any" hardware ! configuration. In GCC binaries, this is true for SRAM ECC, but not ! XNACK. */ ! const char *xnack = (flag_xnack ? ":xnack+" : ":xnack-"); ! const char *sram_ecc = (flag_sram_ecc == SRAM_ECC_ON ? ":sramecc+" ! : flag_sram_ecc == SRAM_ECC_OFF ? ":sramecc-" ! : ""); ! #endif ! if (!use_xnack_attr) ! xnack = ""; ! if (!use_sram_attr) ! sram_ecc = ""; ! ! fprintf(asm_out_file, "\t.amdgcn_target \"amdgcn-unknown-amdhsa--%s%s%s\"\n", ! cpu, ! #if HAVE_GCN_ASM_V3_SYNTAX ! xnack, sram_ecc ! #endif ! #ifdef HAVE_GCN_ASM_V4_SYNTAX ! sram_ecc, xnack ! #endif ! ); } /* Implement ASM_DECLARE_FUNCTION_NAME via gcn-hsa.h. *************** print_operand_address (FILE *file, rtx m *** 5481,5493 **** if (vgpr_offset == NULL_RTX) /* In this case, the vector offset is zero, so we use the first lane of v1, which is initialized to zero. */ ! fprintf (file, "v[1:2]"); else if (REG_P (vgpr_offset) && VGPR_REGNO_P (REGNO (vgpr_offset))) { ! fprintf (file, "v[%d:%d]", ! REGNO (vgpr_offset) - FIRST_VGPR_REG, ! REGNO (vgpr_offset) - FIRST_VGPR_REG + 1); } else output_operand_lossage ("bad ADDR_SPACE_GLOBAL address"); --- 5539,5560 ---- if (vgpr_offset == NULL_RTX) /* In this case, the vector offset is zero, so we use the first lane of v1, which is initialized to zero. */ ! { ! if (HAVE_GCN_ASM_GLOBAL_LOAD_FIXED) ! fprintf (file, "v1"); ! else ! fprintf (file, "v[1:2]"); ! } else if (REG_P (vgpr_offset) && VGPR_REGNO_P (REGNO (vgpr_offset))) { ! if (HAVE_GCN_ASM_GLOBAL_LOAD_FIXED) ! fprintf (file, "v%d", ! REGNO (vgpr_offset) - FIRST_VGPR_REG); ! else ! fprintf (file, "v[%d:%d]", ! REGNO (vgpr_offset) - FIRST_VGPR_REG, ! REGNO (vgpr_offset) - FIRST_VGPR_REG + 1); } else output_operand_lossage ("bad ADDR_SPACE_GLOBAL address"); diff -Nrcpad gcc-11.2.0/gcc/config/gcn/gcn.md gcc-11.3.0/gcc/config/gcn/gcn.md *** gcc-11.2.0/gcc/config/gcn/gcn.md Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/gcn/gcn.md Thu Apr 21 07:58:52 2022 *************** *** 567,572 **** --- 567,573 ---- (set_attr "length" "4,4,8,12,12,12,12,4,8,8,12,12,8,12,12,8,12,12")]) ; 8/16bit move pattern + ; TODO: implement combined load and zero_extend, but *only* for -msram-ecc=on (define_insn "*mov_insn" [(set (match_operand:QIHI 0 "nonimmediate_operand" *************** *** 1371,1380 **** ; Vector multiply has vop3a encoding, but no corresponding vop2a, so no long ; immediate. (define_insn "mulsi3" [(set (match_operand:SI 0 "register_operand" "= Sg,Sg, Sg, v") (mult:SI (match_operand:SI 1 "gcn_alu_operand" "%SgA, 0,SgA, v") ! (match_operand:SI 2 "gcn_alu_operand" " SgA, J, B,vASv")))] "" "@ s_mul_i32\t%0, %1, %2 --- 1372,1384 ---- ; Vector multiply has vop3a encoding, but no corresponding vop2a, so no long ; immediate. + ; The "s_mulk_i32" variant sets SCC to indicate overflow (which we don't care + ; about here, but we need to indicate the clobbering). (define_insn "mulsi3" [(set (match_operand:SI 0 "register_operand" "= Sg,Sg, Sg, v") (mult:SI (match_operand:SI 1 "gcn_alu_operand" "%SgA, 0,SgA, v") ! (match_operand:SI 2 "gcn_alu_operand" " SgA, J, B,vASv"))) ! (clobber (match_scratch:BI 3 "=X,cs, X, X"))] "" "@ s_mul_i32\t%0, %1, %2 diff -Nrcpad gcc-11.2.0/gcc/config/gcn/gcn.opt gcc-11.3.0/gcc/config/gcn/gcn.opt *** gcc-11.2.0/gcc/config/gcn/gcn.opt Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/gcn/gcn.opt Thu Apr 21 07:58:52 2022 *************** Target RejectNegative Joined UInteger Va *** 76,78 **** --- 76,99 ---- Wopenacc-dims Target Var(warn_openacc_dims) Warning Warn about invalid OpenACC dimensions. + + mxnack + Target Var(flag_xnack) Init(0) + Compile for devices requiring XNACK enabled. Default off. + + Enum + Name(sram_ecc_type) Type(enum sram_ecc_type) + SRAM-ECC modes: + + EnumValue + Enum(sram_ecc_type) String(off) Value(SRAM_ECC_OFF) + + EnumValue + Enum(sram_ecc_type) String(on) Value(SRAM_ECC_ON) + + EnumValue + Enum(sram_ecc_type) String(any) Value(SRAM_ECC_ANY) + + msram-ecc= + Target RejectNegative Joined ToLower Enum(sram_ecc_type) Var(flag_sram_ecc) Init(SRAM_ECC_ANY) + Compile for devices with the SRAM ECC feature enabled, or not. Default \"any\". diff -Nrcpad gcc-11.2.0/gcc/config/gcn/mkoffload.c gcc-11.3.0/gcc/config/gcn/mkoffload.c *** gcc-11.2.0/gcc/config/gcn/mkoffload.c Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/gcn/mkoffload.c Thu Apr 21 07:58:52 2022 *************** *** 42,49 **** #undef ELFOSABI_AMDGPU_HSA #define ELFOSABI_AMDGPU_HSA 64 ! #undef ELFABIVERSION_AMDGPU_HSA ! #define ELFABIVERSION_AMDGPU_HSA 1 #undef EF_AMDGPU_MACH_AMDGCN_GFX803 #define EF_AMDGPU_MACH_AMDGCN_GFX803 0x2a --- 42,51 ---- #undef ELFOSABI_AMDGPU_HSA #define ELFOSABI_AMDGPU_HSA 64 ! #undef ELFABIVERSION_AMDGPU_HSA_V3 ! #define ELFABIVERSION_AMDGPU_HSA_V3 1 ! #undef ELFABIVERSION_AMDGPU_HSA_V4 ! #define ELFABIVERSION_AMDGPU_HSA_V4 2 #undef EF_AMDGPU_MACH_AMDGCN_GFX803 #define EF_AMDGPU_MACH_AMDGCN_GFX803 0x2a *************** *** 52,58 **** #undef EF_AMDGPU_MACH_AMDGCN_GFX906 #define EF_AMDGPU_MACH_AMDGCN_GFX906 0x2f #undef EF_AMDGPU_MACH_AMDGCN_GFX908 ! #define EF_AMDGPU_MACH_AMDGCN_GFX908 0x230 // Assume SRAM-ECC enabled. #ifndef R_AMDGPU_NONE #define R_AMDGPU_NONE 0 --- 54,110 ---- #undef EF_AMDGPU_MACH_AMDGCN_GFX906 #define EF_AMDGPU_MACH_AMDGCN_GFX906 0x2f #undef EF_AMDGPU_MACH_AMDGCN_GFX908 ! #define EF_AMDGPU_MACH_AMDGCN_GFX908 0x30 ! ! #define EF_AMDGPU_XNACK_V3 0x100 ! #define EF_AMDGPU_SRAM_ECC_V3 0x200 ! ! #define EF_AMDGPU_FEATURE_XNACK_V4 0x300 /* Mask. */ ! #define EF_AMDGPU_FEATURE_XNACK_UNSUPPORTED_V4 0x000 ! #define EF_AMDGPU_FEATURE_XNACK_ANY_V4 0x100 ! #define EF_AMDGPU_FEATURE_XNACK_OFF_V4 0x200 ! #define EF_AMDGPU_FEATURE_XNACK_ON_V4 0x300 ! ! #define EF_AMDGPU_FEATURE_SRAMECC_V4 0xc00 /* Mask. */ ! #define EF_AMDGPU_FEATURE_SRAMECC_UNSUPPORTED_V4 0x000 ! #define EF_AMDGPU_FEATURE_SRAMECC_ANY_V4 0x400 ! #define EF_AMDGPU_FEATURE_SRAMECC_OFF_V4 0x800 ! #define EF_AMDGPU_FEATURE_SRAMECC_ON_V4 0xc00 ! ! #ifdef HAVE_GCN_ASM_V3_SYNTAX ! #define SET_XNACK_ON(VAR) VAR |= EF_AMDGPU_XNACK_V3 ! #define SET_XNACK_OFF(VAR) VAR &= ~EF_AMDGPU_XNACK_V3 ! #define TEST_XNACK(VAR) (VAR & EF_AMDGPU_XNACK_V3) ! ! #define SET_SRAM_ECC_ON(VAR) VAR |= EF_AMDGPU_SRAM_ECC_V3 ! #define SET_SRAM_ECC_ANY(VAR) SET_SRAM_ECC_ON (VAR) ! #define SET_SRAM_ECC_OFF(VAR) VAR &= ~EF_AMDGPU_SRAM_ECC_V3 ! #define SET_SRAM_ECC_UNSUPPORTED(VAR) SET_SRAM_ECC_OFF (VAR) ! #define TEST_SRAM_ECC_ANY(VAR) 0 /* Not supported. */ ! #define TEST_SRAM_ECC_ON(VAR) (VAR & EF_AMDGPU_SRAM_ECC_V3) ! #endif ! #ifdef HAVE_GCN_ASM_V4_SYNTAX ! #define SET_XNACK_ON(VAR) VAR = ((VAR & ~EF_AMDGPU_FEATURE_XNACK_V4) \ ! | EF_AMDGPU_FEATURE_XNACK_ON_V4) ! #define SET_XNACK_OFF(VAR) VAR = ((VAR & ~EF_AMDGPU_FEATURE_XNACK_V4) \ ! | EF_AMDGPU_FEATURE_XNACK_OFF_V4) ! #define TEST_XNACK(VAR) ((VAR & EF_AMDGPU_FEATURE_XNACK_V4) \ ! == EF_AMDGPU_FEATURE_XNACK_ON_V4) ! ! #define SET_SRAM_ECC_ON(VAR) VAR = ((VAR & ~EF_AMDGPU_FEATURE_SRAMECC_V4) \ ! | EF_AMDGPU_FEATURE_SRAMECC_ON_V4) ! #define SET_SRAM_ECC_ANY(VAR) VAR = ((VAR & ~EF_AMDGPU_FEATURE_SRAMECC_V4) \ ! | EF_AMDGPU_FEATURE_SRAMECC_ANY_V4) ! #define SET_SRAM_ECC_OFF(VAR) VAR = ((VAR & ~EF_AMDGPU_FEATURE_SRAMECC_V4) \ ! | EF_AMDGPU_FEATURE_SRAMECC_OFF_V4) ! #define SET_SRAM_ECC_UNSUPPORTED(VAR) \ ! VAR = ((VAR & ~EF_AMDGPU_FEATURE_SRAMECC_V4) \ ! | EF_AMDGPU_FEATURE_SRAMECC_UNSUPPORTED_V4) ! #define TEST_SRAM_ECC_ANY(VAR) ((VAR & EF_AMDGPU_FEATURE_SRAMECC_V4) \ ! == EF_AMDGPU_FEATURE_SRAMECC_ANY_V4) ! #define TEST_SRAM_ECC_ON(VAR) ((VAR & EF_AMDGPU_FEATURE_SRAMECC_V4) \ ! == EF_AMDGPU_FEATURE_SRAMECC_ON_V4) ! #endif #ifndef R_AMDGPU_NONE #define R_AMDGPU_NONE 0 *************** static struct obstack files_to_cleanup; *** 77,82 **** --- 129,141 ---- enum offload_abi offload_abi = OFFLOAD_ABI_UNSET; uint32_t elf_arch = EF_AMDGPU_MACH_AMDGCN_GFX803; // Default GPU architecture. + uint32_t elf_flags = + #ifdef HAVE_GCN_ASM_V3_SYNTAX + 0; + #endif + #ifdef HAVE_GCN_ASM_V4_SYNTAX + (EF_AMDGPU_FEATURE_XNACK_ANY_V4 | EF_AMDGPU_FEATURE_SRAMECC_ANY_V4); + #endif /* Delete tempfiles. */ *************** copy_early_debug_info (const char *infil *** 293,304 **** /* We only support host relocations of x86_64, for now. */ gcc_assert (ehdr.e_machine == EM_X86_64); /* Patch the correct elf architecture flag into the file. */ ehdr.e_ident[7] = ELFOSABI_AMDGPU_HSA; ! ehdr.e_ident[8] = ELFABIVERSION_AMDGPU_HSA; ehdr.e_type = ET_REL; ehdr.e_machine = EM_AMDGPU; ! ehdr.e_flags = elf_arch; /* Load the section headers so we can walk them later. */ Elf64_Shdr *sections = (Elf64_Shdr *)xmalloc (sizeof (Elf64_Shdr) --- 352,378 ---- /* We only support host relocations of x86_64, for now. */ gcc_assert (ehdr.e_machine == EM_X86_64); + /* Fiji devices use HSACOv3 regardless of the assembler. */ + uint32_t elf_flags_actual = (elf_arch == EF_AMDGPU_MACH_AMDGCN_GFX803 + ? 0 : elf_flags); + /* GFX900 devices don't support the sramecc attribute even if + a buggy assembler thinks it does. This must match gcn-hsa.h */ + if (elf_arch == EF_AMDGPU_MACH_AMDGCN_GFX900) + SET_SRAM_ECC_UNSUPPORTED (elf_flags_actual); + /* Patch the correct elf architecture flag into the file. */ ehdr.e_ident[7] = ELFOSABI_AMDGPU_HSA; ! #ifdef HAVE_GCN_ASM_V3_SYNTAX ! ehdr.e_ident[8] = ELFABIVERSION_AMDGPU_HSA_V3; ! #endif ! #ifdef HAVE_GCN_ASM_V4_SYNTAX ! ehdr.e_ident[8] = (elf_arch == EF_AMDGPU_MACH_AMDGCN_GFX803 ! ? ELFABIVERSION_AMDGPU_HSA_V3 ! : ELFABIVERSION_AMDGPU_HSA_V4); ! #endif ehdr.e_type = ET_REL; ehdr.e_machine = EM_AMDGPU; ! ehdr.e_flags = elf_arch | elf_flags_actual; /* Load the section headers so we can walk them later. */ Elf64_Shdr *sections = (Elf64_Shdr *)xmalloc (sizeof (Elf64_Shdr) *************** main (int argc, char **argv) *** 823,828 **** --- 897,903 ---- bool fopenacc = false; bool fPIC = false; bool fpic = false; + bool sram_seen = false; for (int i = 1; i < argc; i++) { #define STR "-foffload-abi=" *************** main (int argc, char **argv) *** 845,850 **** --- 920,944 ---- fPIC = true; else if (strcmp (argv[i], "-fpic") == 0) fpic = true; + else if (strcmp (argv[i], "-mxnack") == 0) + SET_XNACK_ON (elf_flags); + else if (strcmp (argv[i], "-mno-xnack") == 0) + SET_XNACK_OFF (elf_flags); + else if (strcmp (argv[i], "-msram-ecc=on") == 0) + { + SET_SRAM_ECC_ON (elf_flags); + sram_seen = true; + } + else if (strcmp (argv[i], "-msram-ecc=any") == 0) + { + SET_SRAM_ECC_ANY (elf_flags); + sram_seen = true; + } + else if (strcmp (argv[i], "-msram-ecc=off") == 0) + { + SET_SRAM_ECC_OFF (elf_flags); + sram_seen = true; + } else if (strcmp (argv[i], "-save-temps") == 0) save_temps = true; else if (strcmp (argv[i], "-v") == 0) *************** main (int argc, char **argv) *** 865,870 **** --- 959,986 ---- if (!(fopenacc ^ fopenmp)) fatal_error (input_location, "either -fopenacc or -fopenmp must be set"); + if (!sram_seen) + { + #ifdef HAVE_GCN_ASM_V3_SYNTAX + /* For HSACOv3, the SRAM-ECC feature defaults to "on" on GPUs where the + feature is available. + (HSACOv4 has elf_flags initialsed to "any" in all cases.) */ + switch (elf_arch) + { + case EF_AMDGPU_MACH_AMDGCN_GFX803: + case EF_AMDGPU_MACH_AMDGCN_GFX900: + case EF_AMDGPU_MACH_AMDGCN_GFX906: + #ifndef HAVE_GCN_SRAM_ECC_GFX908 + case EF_AMDGPU_MACH_AMDGCN_GFX908: + #endif + break; + default: + SET_SRAM_ECC_ON (elf_flags); + break; + } + #endif + } + const char *abi; switch (offload_abi) { *************** main (int argc, char **argv) *** 993,998 **** --- 1109,1123 ---- } obstack_ptr_grow (&ld_argv_obstack, gcn_s2_name); obstack_ptr_grow (&ld_argv_obstack, "-lgomp"); + obstack_ptr_grow (&ld_argv_obstack, + (TEST_XNACK (elf_flags) + ? "-mxnack" : "-mno-xnack")); + obstack_ptr_grow (&ld_argv_obstack, + (TEST_SRAM_ECC_ON (elf_flags) ? "-msram-ecc=on" + : TEST_SRAM_ECC_ANY (elf_flags) ? "-msram-ecc=any" + : "-msram-ecc=off")); + if (verbose) + obstack_ptr_grow (&ld_argv_obstack, "-v"); for (int i = 1; i < argc; i++) if (strncmp (argv[i], "-l", 2) == 0 diff -Nrcpad gcc-11.2.0/gcc/config/i386/amxbf16intrin.h gcc-11.3.0/gcc/config/i386/amxbf16intrin.h *** gcc-11.2.0/gcc/config/i386/amxbf16intrin.h Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/i386/amxbf16intrin.h Thu Apr 21 07:58:52 2022 *************** *** 34,40 **** #define __DISABLE_AMX_BF16__ #endif /* __AMX_BF16__ */ ! #if defined(__x86_64__) && defined(__AMX_BF16__) #define _tile_dpbf16ps_internal(dst,src1,src2) \ __asm__ volatile\ ("{tdpbf16ps\t%%tmm"#src2", %%tmm"#src1", %%tmm"#dst"|tdpbf16ps\t%%tmm"#dst", %%tmm"#src1", %%tmm"#src2"}" ::) --- 34,40 ---- #define __DISABLE_AMX_BF16__ #endif /* __AMX_BF16__ */ ! #if defined(__x86_64__) #define _tile_dpbf16ps_internal(dst,src1,src2) \ __asm__ volatile\ ("{tdpbf16ps\t%%tmm"#src2", %%tmm"#src1", %%tmm"#dst"|tdpbf16ps\t%%tmm"#dst", %%tmm"#src1", %%tmm"#src2"}" ::) diff -Nrcpad gcc-11.2.0/gcc/config/i386/amxint8intrin.h gcc-11.3.0/gcc/config/i386/amxint8intrin.h *** gcc-11.2.0/gcc/config/i386/amxint8intrin.h Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/i386/amxint8intrin.h Thu Apr 21 07:58:52 2022 *************** *** 34,40 **** #define __DISABLE_AMX_INT8__ #endif /* __AMX_INT8__ */ ! #if defined(__x86_64__) && defined(__AMX_INT8__) #define _tile_int8_dp_internal(name,dst,src1,src2) \ __asm__ volatile \ ("{"#name"\t%%tmm"#src2", %%tmm"#src1", %%tmm"#dst"|"#name"\t%%tmm"#dst", %%tmm"#src1", %%tmm"#src2"}" ::) --- 34,40 ---- #define __DISABLE_AMX_INT8__ #endif /* __AMX_INT8__ */ ! #if defined(__x86_64__) #define _tile_int8_dp_internal(name,dst,src1,src2) \ __asm__ volatile \ ("{"#name"\t%%tmm"#src2", %%tmm"#src1", %%tmm"#dst"|"#name"\t%%tmm"#dst", %%tmm"#src1", %%tmm"#src2"}" ::) diff -Nrcpad gcc-11.2.0/gcc/config/i386/amxtileintrin.h gcc-11.3.0/gcc/config/i386/amxtileintrin.h *** gcc-11.2.0/gcc/config/i386/amxtileintrin.h Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/i386/amxtileintrin.h Thu Apr 21 07:58:52 2022 *************** *** 34,40 **** #define __DISABLE_AMX_TILE__ #endif /* __AMX_TILE__ */ ! #if defined(__x86_64__) && defined(__AMX_TILE__) extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _tile_loadconfig (const void *__config) --- 34,40 ---- #define __DISABLE_AMX_TILE__ #endif /* __AMX_TILE__ */ ! #if defined(__x86_64__) extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _tile_loadconfig (const void *__config) *************** _tile_release (void) *** 62,68 **** #define _tile_loadd_internal(dst,base,stride) \ __asm__ volatile \ ("{tileloadd\t(%0,%1,1), %%tmm"#dst"|tileloadd\t%%tmm"#dst", [%0+%1*1]}" \ ! :: "r" ((const void*) base), "r" ((long) stride)) #define _tile_stream_loadd(dst,base,stride) \ _tile_stream_loadd_internal (dst, base, stride) --- 62,68 ---- #define _tile_loadd_internal(dst,base,stride) \ __asm__ volatile \ ("{tileloadd\t(%0,%1,1), %%tmm"#dst"|tileloadd\t%%tmm"#dst", [%0+%1*1]}" \ ! :: "r" ((const void*) (base)), "r" ((long) (stride))) #define _tile_stream_loadd(dst,base,stride) \ _tile_stream_loadd_internal (dst, base, stride) *************** _tile_release (void) *** 70,76 **** #define _tile_stream_loadd_internal(dst,base,stride) \ __asm__ volatile \ ("{tileloaddt1\t(%0,%1,1), %%tmm"#dst"|tileloaddt1\t%%tmm"#dst", [%0+%1*1]}" \ ! :: "r" ((const void*) base), "r" ((long) stride)) #define _tile_stored(dst,base,stride) \ _tile_stored_internal (dst, base, stride) --- 70,76 ---- #define _tile_stream_loadd_internal(dst,base,stride) \ __asm__ volatile \ ("{tileloaddt1\t(%0,%1,1), %%tmm"#dst"|tileloaddt1\t%%tmm"#dst", [%0+%1*1]}" \ ! :: "r" ((const void*) (base)), "r" ((long) (stride))) #define _tile_stored(dst,base,stride) \ _tile_stored_internal (dst, base, stride) *************** _tile_release (void) *** 78,84 **** #define _tile_stored_internal(src,base,stride) \ __asm__ volatile \ ("{tilestored\t%%tmm"#src", (%0,%1,1)|tilestored\t[%0+%1*1], %%tmm"#src"}" \ ! :: "r" ((void*) base), "r" ((long) stride) \ : "memory") #define _tile_zero(dst) \ --- 78,84 ---- #define _tile_stored_internal(src,base,stride) \ __asm__ volatile \ ("{tilestored\t%%tmm"#src", (%0,%1,1)|tilestored\t[%0+%1*1], %%tmm"#src"}" \ ! :: "r" ((void*) (base)), "r" ((long) (stride)) \ : "memory") #define _tile_zero(dst) \ diff -Nrcpad gcc-11.2.0/gcc/config/i386/avx512dqintrin.h gcc-11.3.0/gcc/config/i386/avx512dqintrin.h *** gcc-11.2.0/gcc/config/i386/avx512dqintrin.h Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/i386/avx512dqintrin.h Thu Apr 21 07:58:52 2022 *************** _mm512_fpclass_ps_mask (__m512 __A, cons *** 2814,2820 **** #define _mm512_mask_fpclass_ps_mask(u, x, c) \ ((__mmask16) __builtin_ia32_fpclassps512_mask ((__v16sf) (__m512) (x),\ ! (int) (c),(__mmask8)(u))) #define _mm512_fpclass_pd_mask(X, C) \ ((__mmask8) __builtin_ia32_fpclasspd512_mask ((__v8df) (__m512d) (X), \ --- 2814,2820 ---- #define _mm512_mask_fpclass_ps_mask(u, x, c) \ ((__mmask16) __builtin_ia32_fpclassps512_mask ((__v16sf) (__m512) (x),\ ! (int) (c),(__mmask16)(u))) #define _mm512_fpclass_pd_mask(X, C) \ ((__mmask8) __builtin_ia32_fpclasspd512_mask ((__v8df) (__m512d) (X), \ *************** _mm512_fpclass_ps_mask (__m512 __A, cons *** 2822,2828 **** #define _mm512_fpclass_ps_mask(x, c) \ ((__mmask16) __builtin_ia32_fpclassps512_mask ((__v16sf) (__m512) (x),\ ! (int) (c),(__mmask8)-1)) #define _mm_reduce_sd(A, B, C) \ ((__m128d) __builtin_ia32_reducesd_mask ((__v2df)(__m128d)(A), \ --- 2822,2828 ---- #define _mm512_fpclass_ps_mask(x, c) \ ((__mmask16) __builtin_ia32_fpclassps512_mask ((__v16sf) (__m512) (x),\ ! (int) (c),(__mmask16)-1)) #define _mm_reduce_sd(A, B, C) \ ((__m128d) __builtin_ia32_reducesd_mask ((__v2df)(__m128d)(A), \ diff -Nrcpad gcc-11.2.0/gcc/config/i386/constraints.md gcc-11.3.0/gcc/config/i386/constraints.md *** gcc-11.2.0/gcc/config/i386/constraints.md Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/i386/constraints.md Thu Apr 21 07:58:52 2022 *************** *** 185,190 **** --- 185,195 ---- (and (match_operand 0 "memory_operand") (match_test "constant_address_p (XEXP (op, 0))"))) + (define_memory_constraint "Bk" + "@internal TLS address that allows insn using non-integer registers." + (and (match_operand 0 "memory_operand") + (not (match_test "ix86_gpr_tls_address_pattern_p (op)")))) + (define_special_memory_constraint "Bn" "@internal Memory operand without REX prefix." (match_operand 0 "norex_memory_operand")) diff -Nrcpad gcc-11.2.0/gcc/config/i386/darwin.h gcc-11.3.0/gcc/config/i386/darwin.h *** gcc-11.2.0/gcc/config/i386/darwin.h Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/i386/darwin.h Thu Apr 21 07:58:52 2022 *************** along with GCC; see the file COPYING3. *** 39,72 **** #endif #endif - /* WORKAROUND pr80556: - For x86_64 Darwin10 and later, the unwinder is in libunwind (redirected - from libSystem). This doesn't use the keymgr (see keymgr.c) and therefore - the calls that libgcc makes to obtain the KEYMGR_GCC3_DW2_OBJ_LIST are not - updated to include new images, and might not even be valid for a single - image. - Therefore, for 64b exes at least, we must use the libunwind implementation, - even when static-libgcc is specified. We put libSystem first so that - unwinder symbols are satisfied from there. - We default to 64b for single-arch builds, so apply this unconditionally. */ - #undef REAL_LIBGCC_SPEC - #define REAL_LIBGCC_SPEC \ - "%{static-libgcc|static: \ - %:version-compare(>= 10.6 mmacosx-version-min= -lSystem) \ - -lgcc_eh -lgcc; \ - shared-libgcc|fexceptions|fgnu-runtime: \ - %:version-compare(!> 10.5 mmacosx-version-min= -lgcc_s.10.4) \ - %:version-compare(>< 10.5 10.6 mmacosx-version-min= -lgcc_s.10.5) \ - %:version-compare(!> 10.5 mmacosx-version-min= -lgcc_ext.10.4) \ - %:version-compare(>= 10.5 mmacosx-version-min= -lgcc_ext.10.5) \ - -lgcc ; \ - :%:version-compare(>< 10.3.9 10.5 mmacosx-version-min= -lgcc_s.10.4) \ - %:version-compare(>< 10.5 10.6 mmacosx-version-min= -lgcc_s.10.5) \ - %:version-compare(!> 10.5 mmacosx-version-min= -lgcc_ext.10.4) \ - %:version-compare(>= 10.5 mmacosx-version-min= -lgcc_ext.10.5) \ - -lgcc }" - - /* Size of the Obj-C jump buffer. */ #define OBJC_JBLEN ((TARGET_64BIT) ? ((9 * 2) + 3 + 16) : (18)) #undef TARGET_FPMATH_DEFAULT --- 39,44 ---- *************** along with GCC; see the file COPYING3. *** 135,144 **** %{mfentry*:%eDarwin does not support -mfentry or associated options}" \ DARWIN_CC1_SPEC #undef ASM_SPEC ! #define ASM_SPEC "-arch %(darwin_arch) \ ! " ASM_OPTIONS " -force_cpusubtype_ALL \ ! %{static}" ASM_MMACOSX_VERSION_MIN_SPEC #undef ENDFILE_SPEC #define ENDFILE_SPEC \ --- 107,125 ---- %{mfentry*:%eDarwin does not support -mfentry or associated options}" \ DARWIN_CC1_SPEC + /* This is a workaround for a tool bug: see PR100340. */ + + #ifdef HAVE_AS_MLLVM_X86_PAD_FOR_ALIGN + #define EXTRA_ASM_OPTS " -mllvm -x86-pad-for-align=false " + #else + #define EXTRA_ASM_OPTS "" + #endif + #undef ASM_SPEC ! #define ASM_SPEC \ ! "%{static} -arch %(darwin_arch) " \ ! ASM_OPTIONS ASM_MMACOSX_VERSION_MIN_SPEC EXTRA_ASM_OPTS \ ! "%{!force_cpusubtype_ALL:-force_cpusubtype_ALL} " #undef ENDFILE_SPEC #define ENDFILE_SPEC \ diff -Nrcpad gcc-11.2.0/gcc/config/i386/darwin32-biarch.h gcc-11.3.0/gcc/config/i386/darwin32-biarch.h *** gcc-11.2.0/gcc/config/i386/darwin32-biarch.h Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/i386/darwin32-biarch.h Thu Apr 21 07:58:52 2022 *************** along with GCC; see the file COPYING3. *** 21,52 **** #undef DARWIN_ARCH_SPEC #define DARWIN_ARCH_SPEC "%{m64:x86_64;:i386}" - /* WORKAROUND pr80556: - For x86_64 Darwin10 and later, the unwinder is in libunwind (redirected - from libSystem). This doesn't use the keymgr (see keymgr.c) and therefore - the calls that libgcc makes to obtain the KEYMGR_GCC3_DW2_OBJ_LIST are not - updated to include new images, and might not even be valid for a single - image. - Therefore, for 64b exes at least, we must use the libunwind implementation, - even when static-libgcc is specified. We put libSystem first so that - unwinder symbols are satisfied from there. */ - #undef REAL_LIBGCC_SPEC - #define REAL_LIBGCC_SPEC \ - "%{static-libgcc|static: \ - %{m64:%:version-compare(>= 10.6 mmacosx-version-min= -lSystem)} \ - -lgcc_eh -lgcc; \ - shared-libgcc|fexceptions|fgnu-runtime: \ - %:version-compare(!> 10.5 mmacosx-version-min= -lgcc_s.10.4) \ - %:version-compare(>< 10.5 10.6 mmacosx-version-min= -lgcc_s.10.5) \ - %:version-compare(!> 10.5 mmacosx-version-min= -lgcc_ext.10.4) \ - %:version-compare(>= 10.5 mmacosx-version-min= -lgcc_ext.10.5) \ - -lgcc ; \ - :%:version-compare(>< 10.3.9 10.5 mmacosx-version-min= -lgcc_s.10.4) \ - %:version-compare(>< 10.5 10.6 mmacosx-version-min= -lgcc_s.10.5) \ - %:version-compare(!> 10.5 mmacosx-version-min= -lgcc_ext.10.4) \ - %:version-compare(>= 10.5 mmacosx-version-min= -lgcc_ext.10.5) \ - -lgcc }" - #undef DARWIN_SUBARCH_SPEC #define DARWIN_SUBARCH_SPEC DARWIN_ARCH_SPEC --- 21,26 ---- diff -Nrcpad gcc-11.2.0/gcc/config/i386/darwin64-biarch.h gcc-11.3.0/gcc/config/i386/darwin64-biarch.h *** gcc-11.2.0/gcc/config/i386/darwin64-biarch.h Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/i386/darwin64-biarch.h Thu Apr 21 07:58:52 2022 *************** along with GCC; see the file COPYING3. *** 22,53 **** #undef DARWIN_ARCH_SPEC #define DARWIN_ARCH_SPEC "%{m32:i386;:x86_64}" - /* WORKAROUND pr80556: - For x86_64 Darwin10 and later, the unwinder is in libunwind (redirected - from libSystem). This doesn't use the keymgr (see keymgr.c) and therefore - the calls that libgcc makes to obtain the KEYMGR_GCC3_DW2_OBJ_LIST are not - updated to include new images, and might not even be valid for a single - image. - Therefore, for 64b exes at least, we must use the libunwind implementation, - even when static-libgcc is specified. We put libSystem first so that - unwinder symbols are satisfied from there. */ - #undef REAL_LIBGCC_SPEC - #define REAL_LIBGCC_SPEC \ - "%{static-libgcc|static: \ - %{!m32:%:version-compare(>= 10.6 mmacosx-version-min= -lSystem)} \ - -lgcc_eh -lgcc; \ - shared-libgcc|fexceptions|fgnu-runtime: \ - %:version-compare(!> 10.5 mmacosx-version-min= -lgcc_s.10.4) \ - %:version-compare(>< 10.5 10.6 mmacosx-version-min= -lgcc_s.10.5) \ - %:version-compare(!> 10.5 mmacosx-version-min= -lgcc_ext.10.4) \ - %:version-compare(>= 10.5 mmacosx-version-min= -lgcc_ext.10.5) \ - -lgcc ; \ - :%:version-compare(>< 10.3.9 10.5 mmacosx-version-min= -lgcc_s.10.4) \ - %:version-compare(>< 10.5 10.6 mmacosx-version-min= -lgcc_s.10.5) \ - %:version-compare(!> 10.5 mmacosx-version-min= -lgcc_ext.10.4) \ - %:version-compare(>= 10.5 mmacosx-version-min= -lgcc_ext.10.5) \ - -lgcc }" - #undef DARWIN_SUBARCH_SPEC #define DARWIN_SUBARCH_SPEC DARWIN_ARCH_SPEC --- 22,27 ---- diff -Nrcpad gcc-11.2.0/gcc/config/i386/emmintrin.h gcc-11.3.0/gcc/config/i386/emmintrin.h *** gcc-11.2.0/gcc/config/i386/emmintrin.h Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/i386/emmintrin.h Thu Apr 21 07:58:52 2022 *************** _mm_loadu_si64 (void const *__P) *** 718,731 **** extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_loadu_si32 (void const *__P) { ! return _mm_set_epi32 (*(int *)__P, (int)0, (int)0, (int)0); } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_loadu_si16 (void const *__P) { ! return _mm_set_epi16 (*(short *)__P, (short)0, (short)0, (short)0, ! (short)0, (short)0, (short)0, (short)0); } extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 718,730 ---- extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_loadu_si32 (void const *__P) { ! return _mm_set_epi32 (0, 0, 0, (*(__m32_u *)__P)[0]); } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_loadu_si16 (void const *__P) { ! return _mm_set_epi16 (0, 0, 0, 0, 0, 0, 0, (*(__m16_u *)__P)[0]); } extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) diff -Nrcpad gcc-11.2.0/gcc/config/i386/i386-builtin.def gcc-11.3.0/gcc/config/i386/i386-builtin.def *** gcc-11.2.0/gcc/config/i386/i386-builtin.def Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/i386/i386-builtin.def Thu Apr 21 07:58:52 2022 *************** BDESC (OPTION_MASK_ISA_SSE4_1, 0, CODE_F *** 963,972 **** /* SSE4.2 */ BDESC (OPTION_MASK_ISA_SSE4_2, 0, CODE_FOR_sse4_2_gtv2di3, "__builtin_ia32_pcmpgtq", IX86_BUILTIN_PCMPGTQ, UNKNOWN, (int) V2DI_FTYPE_V2DI_V2DI) ! BDESC (OPTION_MASK_ISA_SSE4_2 | OPTION_MASK_ISA_CRC32, 0, CODE_FOR_sse4_2_crc32qi, "__builtin_ia32_crc32qi", IX86_BUILTIN_CRC32QI, UNKNOWN, (int) UINT_FTYPE_UINT_UCHAR) ! BDESC (OPTION_MASK_ISA_SSE4_2 | OPTION_MASK_ISA_CRC32, 0, CODE_FOR_sse4_2_crc32hi, "__builtin_ia32_crc32hi", IX86_BUILTIN_CRC32HI, UNKNOWN, (int) UINT_FTYPE_UINT_USHORT) ! BDESC (OPTION_MASK_ISA_SSE4_2 | OPTION_MASK_ISA_CRC32, 0, CODE_FOR_sse4_2_crc32si, "__builtin_ia32_crc32si", IX86_BUILTIN_CRC32SI, UNKNOWN, (int) UINT_FTYPE_UINT_UINT) ! BDESC (OPTION_MASK_ISA_SSE4_2 | OPTION_MASK_ISA_CRC32 | OPTION_MASK_ISA_64BIT, 0, CODE_FOR_sse4_2_crc32di, "__builtin_ia32_crc32di", IX86_BUILTIN_CRC32DI, UNKNOWN, (int) UINT64_FTYPE_UINT64_UINT64) /* SSE4A */ BDESC (OPTION_MASK_ISA_SSE4A, 0, CODE_FOR_sse4a_extrqi, "__builtin_ia32_extrqi", IX86_BUILTIN_EXTRQI, UNKNOWN, (int) V2DI_FTYPE_V2DI_UINT_UINT) --- 963,972 ---- /* SSE4.2 */ BDESC (OPTION_MASK_ISA_SSE4_2, 0, CODE_FOR_sse4_2_gtv2di3, "__builtin_ia32_pcmpgtq", IX86_BUILTIN_PCMPGTQ, UNKNOWN, (int) V2DI_FTYPE_V2DI_V2DI) ! BDESC (OPTION_MASK_ISA_CRC32, 0, CODE_FOR_sse4_2_crc32qi, "__builtin_ia32_crc32qi", IX86_BUILTIN_CRC32QI, UNKNOWN, (int) UINT_FTYPE_UINT_UCHAR) ! BDESC (OPTION_MASK_ISA_CRC32, 0, CODE_FOR_sse4_2_crc32hi, "__builtin_ia32_crc32hi", IX86_BUILTIN_CRC32HI, UNKNOWN, (int) UINT_FTYPE_UINT_USHORT) ! BDESC (OPTION_MASK_ISA_CRC32, 0, CODE_FOR_sse4_2_crc32si, "__builtin_ia32_crc32si", IX86_BUILTIN_CRC32SI, UNKNOWN, (int) UINT_FTYPE_UINT_UINT) ! BDESC (OPTION_MASK_ISA_CRC32 | OPTION_MASK_ISA_64BIT, 0, CODE_FOR_sse4_2_crc32di, "__builtin_ia32_crc32di", IX86_BUILTIN_CRC32DI, UNKNOWN, (int) UINT64_FTYPE_UINT64_UINT64) /* SSE4A */ BDESC (OPTION_MASK_ISA_SSE4A, 0, CODE_FOR_sse4a_extrqi, "__builtin_ia32_extrqi", IX86_BUILTIN_EXTRQI, UNKNOWN, (int) V2DI_FTYPE_V2DI_UINT_UINT) diff -Nrcpad gcc-11.2.0/gcc/config/i386/i386-builtins.c gcc-11.3.0/gcc/config/i386/i386-builtins.c *** gcc-11.2.0/gcc/config/i386/i386-builtins.c Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/i386/i386-builtins.c Thu Apr 21 07:58:52 2022 *************** ix86_init_mmx_sse_builtins (void) *** 628,636 **** VOID_FTYPE_VOID, IX86_BUILTIN_MFENCE); /* SSE3. */ ! def_builtin (OPTION_MASK_ISA_SSE3, 0, "__builtin_ia32_monitor", VOID_FTYPE_PCVOID_UNSIGNED_UNSIGNED, IX86_BUILTIN_MONITOR); ! def_builtin (OPTION_MASK_ISA_SSE3, 0, "__builtin_ia32_mwait", VOID_FTYPE_UNSIGNED_UNSIGNED, IX86_BUILTIN_MWAIT); /* AES */ --- 628,636 ---- VOID_FTYPE_VOID, IX86_BUILTIN_MFENCE); /* SSE3. */ ! def_builtin (0, OPTION_MASK_ISA2_MWAIT, "__builtin_ia32_monitor", VOID_FTYPE_PCVOID_UNSIGNED_UNSIGNED, IX86_BUILTIN_MONITOR); ! def_builtin (0, OPTION_MASK_ISA2_MWAIT, "__builtin_ia32_mwait", VOID_FTYPE_UNSIGNED_UNSIGNED, IX86_BUILTIN_MWAIT); /* AES */ *************** fold_builtin_cpu (tree fndecl, tree *arg *** 2236,2242 **** /* Return __cpu_model.__cpu_features[0] & field_val */ final = build2 (BIT_AND_EXPR, unsigned_type_node, array_elt, build_int_cstu (unsigned_type_node, field_val)); ! return build1 (CONVERT_EXPR, integer_type_node, final); } gcc_unreachable (); } --- 2236,2246 ---- /* Return __cpu_model.__cpu_features[0] & field_val */ final = build2 (BIT_AND_EXPR, unsigned_type_node, array_elt, build_int_cstu (unsigned_type_node, field_val)); ! if (isa_names_table[i].feature == (INT_TYPE_SIZE - 1)) ! return build2 (NE_EXPR, integer_type_node, final, ! build_int_cst (unsigned_type_node, 0)); ! else ! return build1 (CONVERT_EXPR, integer_type_node, final); } gcc_unreachable (); } diff -Nrcpad gcc-11.2.0/gcc/config/i386/i386-c.c gcc-11.3.0/gcc/config/i386/i386-c.c *** gcc-11.2.0/gcc/config/i386/i386-c.c Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/i386/i386-c.c Thu Apr 21 07:58:52 2022 *************** ix86_target_macros_internal (HOST_WIDE_I *** 532,537 **** --- 532,539 ---- def_or_undef (parse_in, "__LZCNT__"); if (isa_flag & OPTION_MASK_ISA_TBM) def_or_undef (parse_in, "__TBM__"); + if (isa_flag & OPTION_MASK_ISA_CRC32) + def_or_undef (parse_in, "__CRC32__"); if (isa_flag & OPTION_MASK_ISA_POPCNT) def_or_undef (parse_in, "__POPCNT__"); if (isa_flag & OPTION_MASK_ISA_FSGSBASE) *************** ix86_pragma_target_parse (tree args, tre *** 698,709 **** --- 700,713 ---- cur_tune = prev_tune = PROCESSOR_max; /* Undef all of the macros for that are no longer current. */ + cpp_force_token_locations (parse_in, BUILTINS_LOCATION); ix86_target_macros_internal (prev_isa & diff_isa, prev_isa2 & diff_isa2, prev_arch, prev_tune, (enum fpmath_unit) prev_opt->x_ix86_fpmath, cpp_undef); + cpp_stop_forcing_token_locations (parse_in); /* For the definitions, ensure all newly defined macros are considered as used for -Wunused-macros. There is no point warning about the *************** ix86_pragma_target_parse (tree args, tre *** 713,724 **** --- 717,730 ---- cpp_opts->warn_unused_macros = 0; /* Define all of the macros for new options that were just turned on. */ + cpp_force_token_locations (parse_in, BUILTINS_LOCATION); ix86_target_macros_internal (cur_isa & diff_isa, cur_isa2 & diff_isa2, cur_arch, cur_tune, (enum fpmath_unit) cur_opt->x_ix86_fpmath, cpp_define); + cpp_stop_forcing_token_locations (parse_in); cpp_opts->warn_unused_macros = saved_warn_unused_macros; diff -Nrcpad gcc-11.2.0/gcc/config/i386/i386-expand.c gcc-11.3.0/gcc/config/i386/i386-expand.c *** gcc-11.2.0/gcc/config/i386/i386-expand.c Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/i386/i386-expand.c Thu Apr 21 07:58:52 2022 *************** ix86_split_idivmod (machine_mode mode, r *** 1156,1161 **** --- 1156,1164 ---- rtx scratch, tmp0, tmp1, tmp2; rtx (*gen_divmod4_1) (rtx, rtx, rtx, rtx); + operands[2] = force_reg (mode, operands[2]); + operands[3] = force_reg (mode, operands[3]); + switch (mode) { case E_SImode: *************** rdseed_step: *** 12323,12328 **** --- 12326,12334 ---- return target; case IX86_BUILTIN_READ_FLAGS: + if (ignore) + return const0_rtx; + emit_insn (gen_push (gen_rtx_REG (word_mode, FLAGS_REG))); if (optimize *************** quarter: *** 14473,14481 **** else { word = expand_simple_binop (word_mode, ASHIFT, word, shift, ! word, 1, OPTAB_LIB_WIDEN); word = expand_simple_binop (word_mode, IOR, word, elt, ! word, 1, OPTAB_LIB_WIDEN); } } --- 14479,14487 ---- else { word = expand_simple_binop (word_mode, ASHIFT, word, shift, ! NULL_RTX, 1, OPTAB_LIB_WIDEN); word = expand_simple_binop (word_mode, IOR, word, elt, ! NULL_RTX, 1, OPTAB_LIB_WIDEN); } } *************** void ix86_emit_i387_log1p (rtx op0, rtx *** 15834,15839 **** --- 15840,15850 ---- rtx cst, cstln2, cst1; rtx_insn *insn; + /* The emit_jump call emits pending stack adjust, make sure it is emitted + before the conditional jump, otherwise the stack adjustment will be + only conditional. */ + do_pending_stack_adjust (); + cst = const_double_from_real_value (REAL_VALUE_ATOF ("0.29289321881345247561810596348408353", XFmode), XFmode); cstln2 = force_reg (XFmode, standard_80387_constant_rtx (4)); /* fldln2 */ diff -Nrcpad gcc-11.2.0/gcc/config/i386/i386-options.c gcc-11.3.0/gcc/config/i386/i386-options.c *** gcc-11.2.0/gcc/config/i386/i386-options.c Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/i386/i386-options.c Thu Apr 21 07:58:52 2022 *************** static struct ix86_target_opts isa2_opts *** 207,212 **** --- 207,213 ---- { "-mmovbe", OPTION_MASK_ISA2_MOVBE }, { "-mclzero", OPTION_MASK_ISA2_CLZERO }, { "-mmwaitx", OPTION_MASK_ISA2_MWAITX }, + { "-mmwait", OPTION_MASK_ISA2_MWAIT }, { "-mmovdir64b", OPTION_MASK_ISA2_MOVDIR64B }, { "-mwaitpkg", OPTION_MASK_ISA2_WAITPKG }, { "-mcldemote", OPTION_MASK_ISA2_CLDEMOTE }, *************** ix86_valid_target_attribute_inner_p (tre *** 1015,1020 **** --- 1016,1022 ---- IX86_ATTR_ISA ("fsgsbase", OPT_mfsgsbase), IX86_ATTR_ISA ("rdrnd", OPT_mrdrnd), IX86_ATTR_ISA ("mwaitx", OPT_mmwaitx), + IX86_ATTR_ISA ("mwait", OPT_mmwait), IX86_ATTR_ISA ("clzero", OPT_mclzero), IX86_ATTR_ISA ("pku", OPT_mpku), IX86_ATTR_ISA ("lwp", OPT_mlwp), *************** ix86_option_override_internal (bool main *** 2612,2623 **** --- 2614,2635 ---- || TARGET_PREFETCHWT1_P (opts->x_ix86_isa_flags)) ix86_prefetch_sse = true; + /* Enable mwait/monitor instructions for -msse3. */ + if (TARGET_SSE3_P (opts->x_ix86_isa_flags)) + opts->x_ix86_isa_flags2 + |= OPTION_MASK_ISA2_MWAIT & ~opts->x_ix86_isa_flags2_explicit; + /* Enable popcnt instruction for -msse4.2 or -mabm. */ if (TARGET_SSE4_2_P (opts->x_ix86_isa_flags) || TARGET_ABM_P (opts->x_ix86_isa_flags)) opts->x_ix86_isa_flags |= OPTION_MASK_ISA_POPCNT & ~opts->x_ix86_isa_flags_explicit; + /* Enable crc32 instruction for -msse4.2. */ + if (TARGET_SSE4_2_P (opts->x_ix86_isa_flags)) + opts->x_ix86_isa_flags + |= OPTION_MASK_ISA_CRC32 & ~opts->x_ix86_isa_flags_explicit; + /* Enable lzcnt instruction for -mabm. */ if (TARGET_ABM_P(opts->x_ix86_isa_flags)) opts->x_ix86_isa_flags diff -Nrcpad gcc-11.2.0/gcc/config/i386/i386-opts.h gcc-11.3.0/gcc/config/i386/i386-opts.h *** gcc-11.2.0/gcc/config/i386/i386-opts.h Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/i386/i386-opts.h Thu Apr 21 07:58:52 2022 *************** enum instrument_return { *** 125,128 **** --- 125,135 ---- instrument_return_nop5 }; + enum harden_sls { + harden_sls_none = 0, + harden_sls_return = 1 << 0, + harden_sls_indirect_jmp = 1 << 1, + harden_sls_all = harden_sls_return | harden_sls_indirect_jmp + }; + #endif diff -Nrcpad gcc-11.2.0/gcc/config/i386/i386-protos.h gcc-11.3.0/gcc/config/i386/i386-protos.h *** gcc-11.2.0/gcc/config/i386/i386-protos.h Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/i386/i386-protos.h Thu Apr 21 07:58:52 2022 *************** extern unsigned int ix86_get_callcvt (co *** 240,245 **** --- 240,246 ---- #endif extern rtx ix86_tls_module_base (void); + extern bool ix86_gpr_tls_address_pattern_p (rtx); extern bool ix86_tls_address_pattern_p (rtx); extern rtx ix86_rewrite_tls_address (rtx); diff -Nrcpad gcc-11.2.0/gcc/config/i386/i386.c gcc-11.3.0/gcc/config/i386/i386.c *** gcc-11.2.0/gcc/config/i386/i386.c Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/i386/i386.c Thu Apr 21 07:58:52 2022 *************** ix86_can_inline_p (tree caller, tree cal *** 553,559 **** /* Changes of those flags can be tolerated for always inlines. Lets hope user knows what he is doing. */ ! const unsigned HOST_WIDE_INT always_inline_safe_mask = (MASK_USE_8BIT_IDIV | MASK_ACCUMULATE_OUTGOING_ARGS | MASK_NO_ALIGN_STRINGOPS | MASK_AVX256_SPLIT_UNALIGNED_LOAD | MASK_AVX256_SPLIT_UNALIGNED_STORE | MASK_CLD --- 553,559 ---- /* Changes of those flags can be tolerated for always inlines. Lets hope user knows what he is doing. */ ! unsigned HOST_WIDE_INT always_inline_safe_mask = (MASK_USE_8BIT_IDIV | MASK_ACCUMULATE_OUTGOING_ARGS | MASK_NO_ALIGN_STRINGOPS | MASK_AVX256_SPLIT_UNALIGNED_LOAD | MASK_AVX256_SPLIT_UNALIGNED_STORE | MASK_CLD *************** ix86_can_inline_p (tree caller, tree cal *** 578,583 **** --- 578,587 ---- && lookup_attribute ("always_inline", DECL_ATTRIBUTES (callee))); + /* If callee only uses GPRs, ignore MASK_80387. */ + if (TARGET_GENERAL_REGS_ONLY_P (callee_opts->x_ix86_target_flags)) + always_inline_safe_mask |= MASK_80387; + cgraph_node *callee_node = cgraph_node::get (callee); /* Callee's isa options should be a subset of the caller's, i.e. a SSE4 function can inline a SSE2 function but a SSE2 function can't inline *************** type_natural_mode (const_tree type, cons *** 1868,1877 **** { machine_mode innermode = TYPE_MODE (TREE_TYPE (type)); ! /* There are no XFmode vector modes. */ if (innermode == XFmode) return mode; if (TREE_CODE (TREE_TYPE (type)) == REAL_TYPE) mode = MIN_MODE_VECTOR_FLOAT; else --- 1872,1885 ---- { machine_mode innermode = TYPE_MODE (TREE_TYPE (type)); ! /* There are no XFmode vector modes ... */ if (innermode == XFmode) return mode; + /* ... and no decimal float vector modes. */ + if (DECIMAL_FLOAT_MODE_P (innermode)) + return mode; + if (TREE_CODE (TREE_TYPE (type)) == REAL_TYPE) mode = MIN_MODE_VECTOR_FLOAT; else *************** standard_80387_constant_p (rtx x) *** 4959,4965 **** /* For XFmode constants, try to find a special 80387 instruction when optimizing for size or on those CPUs that benefit from them. */ if (mode == XFmode ! && (optimize_function_for_size_p (cfun) || TARGET_EXT_80387_CONSTANTS)) { int i; --- 4967,4974 ---- /* For XFmode constants, try to find a special 80387 instruction when optimizing for size or on those CPUs that benefit from them. */ if (mode == XFmode ! && (optimize_function_for_size_p (cfun) || TARGET_EXT_80387_CONSTANTS) ! && !flag_rounding_math) { int i; *************** output_indirect_thunk (unsigned int regn *** 5793,5798 **** --- 5802,5809 ---- } fputs ("\tret\n", asm_out_file); + if ((ix86_harden_sls & harden_sls_return)) + fputs ("\tint3\n", asm_out_file); } /* Output a funtion with a call and return thunk for indirect branch. *************** ix86_code_end (void) *** 5995,6001 **** xops[0] = gen_rtx_REG (Pmode, regno); xops[1] = gen_rtx_MEM (Pmode, stack_pointer_rtx); output_asm_insn ("mov%z0\t{%1, %0|%0, %1}", xops); ! output_asm_insn ("%!ret", NULL); final_end_function (); init_insn_lengths (); free_after_compilation (cfun); --- 6006,6012 ---- xops[0] = gen_rtx_REG (Pmode, regno); xops[1] = gen_rtx_MEM (Pmode, stack_pointer_rtx); output_asm_insn ("mov%z0\t{%1, %0|%0, %1}", xops); ! fputs ("\tret\n", asm_out_file); final_end_function (); init_insn_lengths (); free_after_compilation (cfun); *************** find_drap_reg (void) *** 7214,7220 **** register in such case. */ if (DECL_STATIC_CHAIN (decl) || cfun->machine->no_caller_saved_registers ! || crtl->tail_call_emit) return DI_REG; /* Reuse static chain register if it isn't used for parameter --- 7225,7232 ---- register in such case. */ if (DECL_STATIC_CHAIN (decl) || cfun->machine->no_caller_saved_registers ! || crtl->tail_call_emit ! || crtl->calls_eh_return) return DI_REG; /* Reuse static chain register if it isn't used for parameter *************** legitimate_pic_address_disp_p (rtx disp) *** 10562,10585 **** if (is_imported_p (op0)) return true; ! if (SYMBOL_REF_FAR_ADDR_P (op0) ! || !SYMBOL_REF_LOCAL_P (op0)) break; ! /* Function-symbols need to be resolved only for ! large-model. ! For the small-model we don't need to resolve anything ! here. */ if ((ix86_cmodel != CM_LARGE_PIC ! && SYMBOL_REF_FUNCTION_P (op0)) || ix86_cmodel == CM_SMALL_PIC) return true; - /* Non-external symbols don't need to be resolved for - large, and medium-model. */ - if ((ix86_cmodel == CM_LARGE_PIC - || ix86_cmodel == CM_MEDIUM_PIC) - && !SYMBOL_REF_EXTERNAL_P (op0)) - return true; } else if (!SYMBOL_REF_FAR_ADDR_P (op0) && (SYMBOL_REF_LOCAL_P (op0) --- 10574,10592 ---- if (is_imported_p (op0)) return true; ! if (SYMBOL_REF_FAR_ADDR_P (op0) || !SYMBOL_REF_LOCAL_P (op0)) break; ! /* Non-external-weak function symbols need to be resolved only ! for the large model. Non-external symbols don't need to be ! resolved for large and medium models. For the small model, ! we don't need to resolve anything here. */ if ((ix86_cmodel != CM_LARGE_PIC ! && SYMBOL_REF_FUNCTION_P (op0) ! && !(SYMBOL_REF_EXTERNAL_P (op0) && SYMBOL_REF_WEAK (op0))) ! || !SYMBOL_REF_EXTERNAL_P (op0) || ix86_cmodel == CM_SMALL_PIC) return true; } else if (!SYMBOL_REF_FAR_ADDR_P (op0) && (SYMBOL_REF_LOCAL_P (op0) *************** legitimize_tls_address (rtx x, enum tls_ *** 11468,11473 **** --- 11475,11510 ---- return dest; } + /* Return true if the TLS address requires insn using integer registers. + It's used to prevent KMOV/VMOV in TLS code sequences which require integer + MOV instructions, refer to PR103275. */ + bool + ix86_gpr_tls_address_pattern_p (rtx mem) + { + gcc_assert (MEM_P (mem)); + + rtx addr = XEXP (mem, 0); + subrtx_var_iterator::array_type array; + FOR_EACH_SUBRTX_VAR (iter, array, addr, ALL) + { + rtx op = *iter; + if (GET_CODE (op) == UNSPEC) + switch (XINT (op, 1)) + { + case UNSPEC_GOTNTPOFF: + return true; + case UNSPEC_TPOFF: + if (!TARGET_64BIT) + return true; + break; + default: + break; + } + } + + return false; + } + /* Return true if OP refers to a TLS address. */ bool ix86_tls_address_pattern_p (rtx op) *************** ix86_print_operand_address_as (FILE *fil *** 13767,13773 **** static void ix86_print_operand_address (FILE *file, machine_mode /*mode*/, rtx addr) { ! ix86_print_operand_address_as (file, addr, ADDR_SPACE_GENERIC, false); } /* Implementation of TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA. */ --- 13804,13813 ---- static void ix86_print_operand_address (FILE *file, machine_mode /*mode*/, rtx addr) { ! if (this_is_asm_operands && ! address_operand (addr, VOIDmode)) ! output_operand_lossage ("invalid constraints for operand"); ! else ! ix86_print_operand_address_as (file, addr, ADDR_SPACE_GENERIC, false); } /* Implementation of TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA. */ *************** ix86_output_jmp_thunk_or_indirect (const *** 15697,15705 **** --- 15737,15750 ---- { if (thunk_name != NULL) { + if (REX_INT_REGNO_P (regno) + && ix86_indirect_branch_cs_prefix) + fprintf (asm_out_file, "\tcs\n"); fprintf (asm_out_file, "\tjmp\t"); assemble_name (asm_out_file, thunk_name); putc ('\n', asm_out_file); + if ((ix86_harden_sls & harden_sls_indirect_jmp)) + fputs ("\tint3\n", asm_out_file); } else output_indirect_thunk (regno); *************** ix86_output_indirect_branch_via_reg (rtx *** 15748,15753 **** --- 15793,15801 ---- { if (thunk_name != NULL) { + if (REX_INT_REGNO_P (regno) + && ix86_indirect_branch_cs_prefix) + fprintf (asm_out_file, "\tcs\n"); fprintf (asm_out_file, "\tcall\t"); assemble_name (asm_out_file, thunk_name); putc ('\n', asm_out_file); *************** ix86_output_indirect_jmp (rtx call_op) *** 15922,15931 **** gcc_unreachable (); ix86_output_indirect_branch (call_op, "%0", true); - return ""; } else ! return "%!jmp\t%A0"; } /* Output return instrumentation for current function if needed. */ --- 15970,15979 ---- gcc_unreachable (); ix86_output_indirect_branch (call_op, "%0", true); } else ! output_asm_insn ("%!jmp\t%A0", &call_op); ! return (ix86_harden_sls & harden_sls_indirect_jmp) ? "int3" : ""; } /* Output return instrumentation for current function if needed. */ *************** ix86_output_function_return (bool long_p *** 15993,16002 **** return ""; } ! if (!long_p) ! return "%!ret"; ! ! return "rep%; ret"; } /* Output indirect function return. RET_OP is the function return --- 16041,16048 ---- return ""; } ! output_asm_insn (long_p ? "rep%; ret" : "ret", nullptr); ! return (ix86_harden_sls & harden_sls_return) ? "int3" : ""; } /* Output indirect function return. RET_OP is the function return *************** ix86_output_indirect_function_return (rt *** 16031,16041 **** } else output_indirect_thunk (regno); - - return ""; } else ! return "%!jmp\t%A0"; } /* Output the assembly for a call instruction. */ --- 16077,16090 ---- } else output_indirect_thunk (regno); } else ! { ! output_asm_insn ("%!jmp\t%A0", &ret_op); ! if (ix86_harden_sls & harden_sls_indirect_jmp) ! fputs ("\tint3\n", asm_out_file); ! } ! return ""; } /* Output the assembly for a call instruction. */ *************** ix86_output_call_insn (rtx_insn *insn, r *** 16091,16097 **** if (output_indirect_p && !direct_p) ix86_output_indirect_branch (call_op, xasm, true); else ! output_asm_insn (xasm, &call_op); return ""; } --- 16140,16151 ---- if (output_indirect_p && !direct_p) ix86_output_indirect_branch (call_op, xasm, true); else ! { ! output_asm_insn (xasm, &call_op); ! if (!direct_p ! && (ix86_harden_sls & harden_sls_indirect_jmp)) ! return "int3"; ! } return ""; } *************** ix86_output_call_insn (rtx_insn *insn, r *** 16116,16123 **** break; /* If we get to the epilogue note, prevent a catch region from ! being adjacent to the standard epilogue sequence. If non- ! call-exceptions, we'll have done this during epilogue emission. */ if (NOTE_P (i) && NOTE_KIND (i) == NOTE_INSN_EPILOGUE_BEG && !flag_non_call_exceptions && !can_throw_internal (insn)) --- 16170,16179 ---- break; /* If we get to the epilogue note, prevent a catch region from ! being adjacent to the standard epilogue sequence. Note that, ! if non-call exceptions are enabled, we already did it during ! epilogue expansion, or else, if the insn can throw internally, ! we already did it during the reorg pass. */ if (NOTE_P (i) && NOTE_KIND (i) == NOTE_INSN_EPILOGUE_BEG && !flag_non_call_exceptions && !can_throw_internal (insn)) *************** ix86_gimple_fold_builtin (gimple_stmt_it *** 18128,18133 **** --- 18184,18191 ---- do_shift: gcc_assert (n_args >= 2); + if (!gimple_call_lhs (stmt)) + break; arg0 = gimple_call_arg (stmt, 0); arg1 = gimple_call_arg (stmt, 1); if (n_args > 2) *************** ix86_gimple_fold_builtin (gimple_stmt_it *** 18191,18197 **** case IX86_BUILTIN_SHUFPD: arg2 = gimple_call_arg (stmt, 2); ! if (TREE_CODE (arg2) == INTEGER_CST) { location_t loc = gimple_location (stmt); unsigned HOST_WIDE_INT imask = TREE_INT_CST_LOW (arg2); --- 18249,18255 ---- case IX86_BUILTIN_SHUFPD: arg2 = gimple_call_arg (stmt, 2); ! if (TREE_CODE (arg2) == INTEGER_CST && gimple_call_lhs (stmt)) { location_t loc = gimple_location (stmt); unsigned HOST_WIDE_INT imask = TREE_INT_CST_LOW (arg2); diff -Nrcpad gcc-11.2.0/gcc/config/i386/i386.h gcc-11.3.0/gcc/config/i386/i386.h *** gcc-11.2.0/gcc/config/i386/i386.h Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/i386/i386.h Thu Apr 21 07:58:52 2022 *************** see the files COPYING3 and COPYING.RUNTI *** 181,186 **** --- 181,188 ---- #define TARGET_CLWB_P(x) TARGET_ISA_CLWB_P(x) #define TARGET_MWAITX TARGET_ISA2_MWAITX #define TARGET_MWAITX_P(x) TARGET_ISA2_MWAITX_P(x) + #define TARGET_MWAIT TARGET_ISA2_MWAIT + #define TARGET_MWAIT_P(x) TARGET_ISA2_MWAIT_P(x) #define TARGET_PKU TARGET_ISA_PKU #define TARGET_PKU_P(x) TARGET_ISA_PKU_P(x) #define TARGET_SHSTK TARGET_ISA_SHSTK *************** struct stringop_algs *** 256,263 **** this issue. Since this header is used by code compiled with the C compiler we must guard the addition. */ #ifdef __cplusplus ! stringop_strategy(int _max = -1, enum stringop_alg _alg = libcall, ! int _noalign = false) : max (_max), alg (_alg), noalign (_noalign) {} #endif const int max; --- 258,266 ---- this issue. Since this header is used by code compiled with the C compiler we must guard the addition. */ #ifdef __cplusplus ! constexpr ! stringop_strategy (int _max = -1, enum stringop_alg _alg = libcall, ! int _noalign = false) : max (_max), alg (_alg), noalign (_noalign) {} #endif const int max; *************** constexpr wide_int_bitmask PTA_ICELAKE_S *** 2558,2567 **** | PTA_PCONFIG | PTA_WBNOINVD | PTA_CLWB; constexpr wide_int_bitmask PTA_TIGERLAKE = PTA_ICELAKE_CLIENT | PTA_MOVDIRI | PTA_MOVDIR64B | PTA_CLWB | PTA_AVX512VP2INTERSECT | PTA_KL | PTA_WIDEKL; ! constexpr wide_int_bitmask PTA_SAPPHIRERAPIDS = PTA_COOPERLAKE | PTA_MOVDIRI | PTA_MOVDIR64B | PTA_AVX512VP2INTERSECT | PTA_ENQCMD | PTA_CLDEMOTE | PTA_PTWRITE | PTA_WAITPKG | PTA_SERIALIZE | PTA_TSXLDTRK | PTA_AMX_TILE ! | PTA_AMX_INT8 | PTA_AMX_BF16 | PTA_UINTR | PTA_AVXVNNI; constexpr wide_int_bitmask PTA_KNL = PTA_BROADWELL | PTA_AVX512PF | PTA_AVX512ER | PTA_AVX512F | PTA_AVX512CD | PTA_PREFETCHWT1; constexpr wide_int_bitmask PTA_BONNELL = PTA_CORE2 | PTA_MOVBE; --- 2561,2570 ---- | PTA_PCONFIG | PTA_WBNOINVD | PTA_CLWB; constexpr wide_int_bitmask PTA_TIGERLAKE = PTA_ICELAKE_CLIENT | PTA_MOVDIRI | PTA_MOVDIR64B | PTA_CLWB | PTA_AVX512VP2INTERSECT | PTA_KL | PTA_WIDEKL; ! constexpr wide_int_bitmask PTA_SAPPHIRERAPIDS = PTA_ICELAKE_SERVER | PTA_MOVDIRI | PTA_MOVDIR64B | PTA_AVX512VP2INTERSECT | PTA_ENQCMD | PTA_CLDEMOTE | PTA_PTWRITE | PTA_WAITPKG | PTA_SERIALIZE | PTA_TSXLDTRK | PTA_AMX_TILE ! | PTA_AMX_INT8 | PTA_AMX_BF16 | PTA_UINTR | PTA_AVXVNNI | PTA_AVX512BF16; constexpr wide_int_bitmask PTA_KNL = PTA_BROADWELL | PTA_AVX512PF | PTA_AVX512ER | PTA_AVX512F | PTA_AVX512CD | PTA_PREFETCHWT1; constexpr wide_int_bitmask PTA_BONNELL = PTA_CORE2 | PTA_MOVBE; *************** enum ix86_stack_slot *** 2649,2654 **** --- 2652,2658 ---- SLOT_CW_FLOOR, SLOT_CW_CEIL, SLOT_STV_TEMP, + SLOT_FLOATxFDI_387, MAX_386_STACK_LOCALS }; diff -Nrcpad gcc-11.2.0/gcc/config/i386/i386.md gcc-11.3.0/gcc/config/i386/i386.md *** gcc-11.2.0/gcc/config/i386/i386.md Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/i386/i386.md Thu Apr 21 07:58:52 2022 *************** *** 2085,2093 **** (define_insn "*movdi_internal" [(set (match_operand:DI 0 "nonimmediate_operand" ! "=r ,o ,r,r ,r,m ,*y,*y,?*y,?m,?r,?*y,*v,*v,*v,m ,m,?r ,?*Yd,?r,?*v,?*y,?*x,*k,*k ,*r,*m,*k") (match_operand:DI 1 "general_operand" ! "riFo,riF,Z,rem,i,re,C ,*y,m ,*y,*y,r ,C ,*v,m ,*v,v,*Yd,r ,*v,r ,*x ,*y ,*r,*km,*k,*k,CBC"))] "!(MEM_P (operands[0]) && MEM_P (operands[1])) && ix86_hardreg_mov_ok (operands[0], operands[1])" { --- 2085,2093 ---- (define_insn "*movdi_internal" [(set (match_operand:DI 0 "nonimmediate_operand" ! "=r ,o ,r,r ,r,m ,*y,*y,?*y,?m,?r,?*y,*v,*v,*v,m ,m,?r ,?*Yd,?r,?*v,?*y,?*x,*k,*k ,*r,*m,*k") (match_operand:DI 1 "general_operand" ! "riFo,riF,Z,rem,i,re,C ,*y,Bk ,*y,*y,r ,C ,*v,Bk,*v,v,*Yd,r ,*v,r ,*x ,*y ,*r,*kBk,*k,*k,CBC"))] "!(MEM_P (operands[0]) && MEM_P (operands[1])) && ix86_hardreg_mov_ok (operands[0], operands[1])" { *************** *** 2306,2314 **** (define_insn "*movsi_internal" [(set (match_operand:SI 0 "nonimmediate_operand" ! "=r,m ,*y,*y,?*y,?m,?r,?*y,*v,*v,*v,m ,?r,?*v,*k,*k ,*rm,*k") (match_operand:SI 1 "general_operand" ! "g ,re,C ,*y,m ,*y,*y,r ,C ,*v,m ,*v,*v,r ,*r,*km,*k ,CBC"))] "!(MEM_P (operands[0]) && MEM_P (operands[1])) && ix86_hardreg_mov_ok (operands[0], operands[1])" { --- 2306,2314 ---- (define_insn "*movsi_internal" [(set (match_operand:SI 0 "nonimmediate_operand" ! "=r,m ,*y,*y,?*y,?m,?r,?*y,*v,*v,*v,m ,?r,?*v,*k,*k ,*rm,*k") (match_operand:SI 1 "general_operand" ! "g ,re,C ,*y,Bk ,*y,*y,r ,C ,*v,Bk,*v,*v,r ,*r,*kBk,*k ,CBC"))] "!(MEM_P (operands[0]) && MEM_P (operands[1])) && ix86_hardreg_mov_ok (operands[0], operands[1])" { *************** *** 4504,4511 **** movddup is available. */ if (REG_P (operands[1])) { ! if (!TARGET_SSE3 ! && REGNO (operands[0]) != REGNO (operands[1])) { rtx tmp = lowpart_subreg (DFmode, operands[0], SFmode); emit_move_insn (tmp, operands[1]); --- 4504,4511 ---- movddup is available. */ if (REG_P (operands[1])) { ! if ((!TARGET_SSE3 && REGNO (operands[0]) != REGNO (operands[1])) ! || (EXT_REX_SSE_REG_P (operands[1]) && !TARGET_AVX512VL)) { rtx tmp = lowpart_subreg (DFmode, operands[0], SFmode); emit_move_insn (tmp, operands[1]); *************** *** 5001,5009 **** && can_create_pseudo_p ()" [(const_int 0)] { ! emit_insn (gen_floatdi2_i387_with_xmm ! (operands[0], operands[1], ! assign_386_stack_local (DImode, SLOT_TEMP))); DONE; }) --- 5001,5008 ---- && can_create_pseudo_p ()" [(const_int 0)] { ! rtx s = assign_386_stack_local (DImode, SLOT_FLOATxFDI_387); ! emit_insn (gen_floatdi2_i387_with_xmm (operands[0], operands[1], s)); DONE; }) *************** *** 10525,10534 **** (match_operand:MODEF 1 "register_operand") (match_operand:MODEF 2 "register_operand")] "SSE_FLOAT_MODE_P (mode) && TARGET_SSE_MATH" ! "ix86_expand_xorsign (operands); DONE;") (define_insn_and_split "@xorsign3_1" ! [(set (match_operand:MODEF 0 "register_operand" "=Yv") (unspec:MODEF [(match_operand:MODEF 1 "register_operand" "Yv") (match_operand:MODEF 2 "register_operand" "0") --- 10524,10539 ---- (match_operand:MODEF 1 "register_operand") (match_operand:MODEF 2 "register_operand")] "SSE_FLOAT_MODE_P (mode) && TARGET_SSE_MATH" ! { ! if (rtx_equal_p (operands[1], operands[2])) ! emit_insn (gen_abs2 (operands[0], operands[1])); ! else ! ix86_expand_xorsign (operands); ! DONE; ! }) (define_insn_and_split "@xorsign3_1" ! [(set (match_operand:MODEF 0 "register_operand" "=&Yv") (unspec:MODEF [(match_operand:MODEF 1 "register_operand" "Yv") (match_operand:MODEF 2 "register_operand" "0") *************** *** 13906,13912 **** [(simple_return) (use (match_operand:SI 0 "const_int_operand"))] "reload_completed" ! "%!ret\t%0" "&& cfun->machine->function_return_type != indirect_branch_keep" [(const_int 0)] "ix86_split_simple_return_pop_internal (operands[0]); DONE;" --- 13911,13917 ---- [(simple_return) (use (match_operand:SI 0 "const_int_operand"))] "reload_completed" ! "ret\t%0" "&& cfun->machine->function_return_type != indirect_branch_keep" [(const_int 0)] "ix86_split_simple_return_pop_internal (operands[0]); DONE;" *************** *** 20992,20998 **** [(match_operand:SI 1 "register_operand" "0") (match_operand:SWI124 2 "nonimmediate_operand" "m")] UNSPEC_CRC32))] ! "TARGET_SSE4_2 || TARGET_CRC32" "crc32{}\t{%2, %0|%0, %2}" [(set_attr "type" "sselog1") (set_attr "prefix_rep" "1") --- 20997,21003 ---- [(match_operand:SI 1 "register_operand" "0") (match_operand:SWI124 2 "nonimmediate_operand" "m")] UNSPEC_CRC32))] ! "TARGET_CRC32" "crc32{}\t{%2, %0|%0, %2}" [(set_attr "type" "sselog1") (set_attr "prefix_rep" "1") *************** *** 21013,21019 **** [(match_operand:DI 1 "register_operand" "0") (match_operand:DI 2 "nonimmediate_operand" "rm")] UNSPEC_CRC32))] ! "TARGET_64BIT && (TARGET_SSE4_2 || TARGET_CRC32)" "crc32{q}\t{%2, %0|%0, %2}" [(set_attr "type" "sselog1") (set_attr "prefix_rep" "1") --- 21018,21024 ---- [(match_operand:DI 1 "register_operand" "0") (match_operand:DI 2 "nonimmediate_operand" "rm")] UNSPEC_CRC32))] ! "TARGET_64BIT && TARGET_CRC32" "crc32{q}\t{%2, %0|%0, %2}" [(set_attr "type" "sselog1") (set_attr "prefix_rep" "1") diff -Nrcpad gcc-11.2.0/gcc/config/i386/i386.opt gcc-11.3.0/gcc/config/i386/i386.opt *** gcc-11.2.0/gcc/config/i386/i386.opt Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/i386/i386.opt Thu Apr 21 07:58:52 2022 *************** Enum(indirect_branch) String(thunk-inlin *** 1072,1077 **** --- 1072,1081 ---- EnumValue Enum(indirect_branch) String(thunk-extern) Value(indirect_branch_thunk_extern) + mindirect-branch-cs-prefix + Target Var(ix86_indirect_branch_cs_prefix) Init(0) + Add CS prefix to call and jmp to indirect thunk with branch target in r8-r15 registers. + mindirect-branch-register Target Var(ix86_indirect_branch_register) Init(0) Force indirect call and jump via register. *************** mrecord-return *** 1113,1118 **** --- 1117,1142 ---- Target Var(ix86_flag_record_return) Init(0) Generate a __return_loc section pointing to all return instrumentation code. + mharden-sls= + Target RejectNegative Joined Enum(harden_sls) Var(ix86_harden_sls) Init(harden_sls_none) + Generate code to mitigate against straight line speculation. + + Enum + Name(harden_sls) Type(enum harden_sls) + Known choices for mitigation against straight line speculation with -mharden-sls=: + + EnumValue + Enum(harden_sls) String(none) Value(harden_sls_none) + + EnumValue + Enum(harden_sls) String(return) Value(harden_sls_return) + + EnumValue + Enum(harden_sls) String(indirect-jmp) Value(harden_sls_indirect_jmp) + + EnumValue + Enum(harden_sls) String(all) Value(harden_sls_all) + mavx512bf16 Target Mask(ISA2_AVX512BF16) Var(ix86_isa_flags2) Save Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, AVX512F and *************** AVXVNNI built-in functions and code gene *** 1162,1164 **** --- 1186,1192 ---- mneeded Target Var(ix86_needed) Save Emit GNU_PROPERTY_X86_ISA_1_NEEDED GNU property. + + mmwait + Target Mask(ISA2_MWAIT) Var(ix86_isa_flags2) Save + Support MWAIT and MONITOR built-in functions and code generation. diff -Nrcpad gcc-11.2.0/gcc/config/i386/ia32intrin.h gcc-11.3.0/gcc/config/i386/ia32intrin.h *** gcc-11.2.0/gcc/config/i386/ia32intrin.h Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/i386/ia32intrin.h Thu Apr 21 07:58:52 2022 *************** __bswapd (int __X) *** 51,61 **** #ifndef __iamcu__ ! #ifndef __SSE4_2__ #pragma GCC push_options ! #pragma GCC target("sse4.2") ! #define __DISABLE_SSE4_2__ ! #endif /* __SSE4_2__ */ /* 32bit accumulate CRC32 (polynomial 0x11EDC6F41) value. */ extern __inline unsigned int --- 51,61 ---- #ifndef __iamcu__ ! #ifndef __CRC32__ #pragma GCC push_options ! #pragma GCC target("crc32") ! #define __DISABLE_CRC32__ ! #endif /* __CRC32__ */ /* 32bit accumulate CRC32 (polynomial 0x11EDC6F41) value. */ extern __inline unsigned int *************** __crc32d (unsigned int __C, unsigned int *** 79,88 **** return __builtin_ia32_crc32si (__C, __V); } ! #ifdef __DISABLE_SSE4_2__ ! #undef __DISABLE_SSE4_2__ #pragma GCC pop_options ! #endif /* __DISABLE_SSE4_2__ */ #endif /* __iamcu__ */ --- 79,88 ---- return __builtin_ia32_crc32si (__C, __V); } ! #ifdef __DISABLE_CRC32__ ! #undef __DISABLE_CRC32__ #pragma GCC pop_options ! #endif /* __DISABLE_CRC32__ */ #endif /* __iamcu__ */ *************** __rdpmc (int __S) *** 107,118 **** #endif /* __iamcu__ */ /* rdtsc */ ! #define __rdtsc() __builtin_ia32_rdtsc () #ifndef __iamcu__ /* rdtscp */ ! #define __rdtscp(a) __builtin_ia32_rdtscp (a) #endif /* __iamcu__ */ --- 107,128 ---- #endif /* __iamcu__ */ /* rdtsc */ ! extern __inline unsigned long long ! __attribute__((__gnu_inline__, __always_inline__, __artificial__)) ! __rdtsc (void) ! { ! return __builtin_ia32_rdtsc (); ! } #ifndef __iamcu__ /* rdtscp */ ! extern __inline unsigned long long ! __attribute__((__gnu_inline__, __always_inline__, __artificial__)) ! __rdtscp (unsigned int *__A) ! { ! return __builtin_ia32_rdtscp (__A); ! } #endif /* __iamcu__ */ *************** __bswapq (long long __X) *** 199,209 **** return __builtin_bswap64 (__X); } ! #ifndef __SSE4_2__ #pragma GCC push_options ! #pragma GCC target("sse4.2") ! #define __DISABLE_SSE4_2__ ! #endif /* __SSE4_2__ */ /* 64bit accumulate CRC32 (polynomial 0x11EDC6F41) value. */ extern __inline unsigned long long --- 209,219 ---- return __builtin_bswap64 (__X); } ! #ifndef __CRC32__ #pragma GCC push_options ! #pragma GCC target("crc32") ! #define __DISABLE_CRC32__ ! #endif /* __CRC32__ */ /* 64bit accumulate CRC32 (polynomial 0x11EDC6F41) value. */ extern __inline unsigned long long *************** __crc32q (unsigned long long __C, unsign *** 213,222 **** return __builtin_ia32_crc32di (__C, __V); } ! #ifdef __DISABLE_SSE4_2__ ! #undef __DISABLE_SSE4_2__ #pragma GCC pop_options ! #endif /* __DISABLE_SSE4_2__ */ /* 64bit popcnt */ extern __inline long long --- 223,232 ---- return __builtin_ia32_crc32di (__C, __V); } ! #ifdef __DISABLE_CRC32__ ! #undef __DISABLE_CRC32__ #pragma GCC pop_options ! #endif /* __DISABLE_CRC32__ */ /* 64bit popcnt */ extern __inline long long diff -Nrcpad gcc-11.2.0/gcc/config/i386/mingw-w64.h gcc-11.3.0/gcc/config/i386/mingw-w64.h *** gcc-11.2.0/gcc/config/i386/mingw-w64.h Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/i386/mingw-w64.h Thu Apr 21 07:58:52 2022 *************** along with GCC; see the file COPYING3. *** 89,94 **** --- 89,102 ---- # define LINK_SPEC_LARGE_ADDR_AWARE "" #endif + #undef LINK_SPEC_DISABLE_DYNAMICBASE + #if HAVE_LD_PE_DISABLE_DYNAMICBASE + # define LINK_SPEC_DISABLE_DYNAMICBASE \ + "%{!shared:%{!mdll:%{no-pie:--disable-dynamicbase}}}" + #else + # define LINK_SPEC_DISABLE_DYNAMICBASE "" + #endif + #undef LINK_SPEC #define LINK_SPEC SUB_LINK_SPEC " %{mwindows:--subsystem windows} \ %{mconsole:--subsystem console} \ *************** along with GCC; see the file COPYING3. *** 97,102 **** --- 105,111 ---- %{static:-Bstatic} %{!static:-Bdynamic} \ %{shared|mdll: " SUB_LINK_ENTRY " --enable-auto-image-base} \ " LINK_SPEC_LARGE_ADDR_AWARE "\ + " LINK_SPEC_DISABLE_DYNAMICBASE "\ %(shared_libgcc_undefs)" /* Enable sincos optimization, overriding cygming.h. sincos, sincosf diff -Nrcpad gcc-11.2.0/gcc/config/i386/mingw32.h gcc-11.3.0/gcc/config/i386/mingw32.h *** gcc-11.2.0/gcc/config/i386/mingw32.h Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/i386/mingw32.h Thu Apr 21 07:58:52 2022 *************** along with GCC; see the file COPYING3. *** 148,153 **** --- 148,160 ---- "%{!shared:%{!mdll:%{!m64:--large-address-aware}}}" #endif + #if HAVE_LD_PE_DISABLE_DYNAMICBASE + # define LINK_SPEC_DISABLE_DYNAMICBASE \ + "%{!shared:%{!mdll:%{no-pie:--disable-dynamicbase}}}" + #else + # define LINK_SPEC_DISABLE_DYNAMICBASE "" + #endif + #define LINK_SPEC "%{mwindows:--subsystem windows} \ %{mconsole:--subsystem console} \ %{shared: %{mdll: %eshared and mdll are not compatible}} \ *************** along with GCC; see the file COPYING3. *** 155,160 **** --- 162,168 ---- %{static:-Bstatic} %{!static:-Bdynamic} \ %{shared|mdll: " SUB_LINK_ENTRY " --enable-auto-image-base} \ " LINK_SPEC_LARGE_ADDR_AWARE "\ + " LINK_SPEC_DISABLE_DYNAMICBASE "\ %(shared_libgcc_undefs)" /* Include in the mingw32 libraries with libgcc */ diff -Nrcpad gcc-11.2.0/gcc/config/i386/mwaitintrin.h gcc-11.3.0/gcc/config/i386/mwaitintrin.h *** gcc-11.2.0/gcc/config/i386/mwaitintrin.h Thu Jan 1 00:00:00 1970 --- gcc-11.3.0/gcc/config/i386/mwaitintrin.h Thu Apr 21 07:58:52 2022 *************** *** 0 **** --- 1,52 ---- + /* Copyright (C) 2021 Free Software Foundation, Inc. + + This file is part of GCC. + + GCC is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. + + GCC is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + Under Section 7 of GPL version 3, you are granted additional + permissions described in the GCC Runtime Library Exception, version + 3.1, as published by the Free Software Foundation. + + You should have received a copy of the GNU General Public License and + a copy of the GCC Runtime Library Exception along with this program; + see the files COPYING3 and COPYING.RUNTIME respectively. If not, see + . */ + + #ifndef _MWAITINTRIN_H_INCLUDED + #define _MWAITINTRIN_H_INCLUDED + + #ifndef __MWAIT__ + #pragma GCC push_options + #pragma GCC target("mwait") + #define __DISABLE_MWAIT__ + #endif /* __MWAIT__ */ + + extern __inline void + __attribute__((__gnu_inline__, __always_inline__, __artificial__)) + _mm_monitor (void const * __P, unsigned int __E, unsigned int __H) + { + __builtin_ia32_monitor (__P, __E, __H); + } + + extern __inline void + __attribute__((__gnu_inline__, __always_inline__, __artificial__)) + _mm_mwait (unsigned int __E, unsigned int __H) + { + __builtin_ia32_mwait (__E, __H); + } + + #ifdef __DISABLE_MWAIT__ + #undef __DISABLE_MWAIT__ + #pragma GCC pop_options + #endif /* __DISABLE_MWAIT__ */ + + #endif /* _MWAITINTRIN_H_INCLUDED */ diff -Nrcpad gcc-11.2.0/gcc/config/i386/pmmintrin.h gcc-11.3.0/gcc/config/i386/pmmintrin.h *** gcc-11.2.0/gcc/config/i386/pmmintrin.h Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/i386/pmmintrin.h Thu Apr 21 07:58:52 2022 *************** *** 29,34 **** --- 29,35 ---- /* We need definitions from the SSE2 and SSE header files*/ #include + #include #ifndef __SSE3__ #pragma GCC push_options *************** _mm_lddqu_si128 (__m128i const *__P) *** 112,129 **** return (__m128i) __builtin_ia32_lddqu ((char const *)__P); } - extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _mm_monitor (void const * __P, unsigned int __E, unsigned int __H) - { - __builtin_ia32_monitor (__P, __E, __H); - } - - extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) - _mm_mwait (unsigned int __E, unsigned int __H) - { - __builtin_ia32_mwait (__E, __H); - } - #ifdef __DISABLE_SSE3__ #undef __DISABLE_SSE3__ #pragma GCC pop_options --- 113,118 ---- diff -Nrcpad gcc-11.2.0/gcc/config/i386/predicates.md gcc-11.3.0/gcc/config/i386/predicates.md *** gcc-11.2.0/gcc/config/i386/predicates.md Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/i386/predicates.md Thu Apr 21 07:58:52 2022 *************** *** 1140,1145 **** --- 1140,1147 ---- (ior (match_test "TARGET_AVX512VL") (match_test "GET_MODE_SIZE (GET_MODE (op)) == 64"))) (match_test "VALID_BCST_MODE_P (GET_MODE_INNER (GET_MODE (op)))") + (match_test "GET_MODE (XEXP (op, 0)) + == GET_MODE_INNER (GET_MODE (op))") (match_test "memory_operand (XEXP (op, 0), GET_MODE (XEXP (op, 0)))"))) ; Return true when OP is bcst_mem_operand or vector_memory_operand. diff -Nrcpad gcc-11.2.0/gcc/config/i386/serializeintrin.h gcc-11.3.0/gcc/config/i386/serializeintrin.h *** gcc-11.2.0/gcc/config/i386/serializeintrin.h Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/i386/serializeintrin.h Thu Apr 21 07:58:52 2022 *************** *** 34,40 **** #define __DISABLE_SERIALIZE__ #endif /* __SERIALIZE__ */ ! #define _serialize() __builtin_ia32_serialize () #ifdef __DISABLE_SERIALIZE__ #undef __DISABLE_SERIALIZE__ --- 34,45 ---- #define __DISABLE_SERIALIZE__ #endif /* __SERIALIZE__ */ ! extern __inline void ! __attribute__((__gnu_inline__, __always_inline__, __artificial__)) ! _serialize (void) ! { ! __builtin_ia32_serialize (); ! } #ifdef __DISABLE_SERIALIZE__ #undef __DISABLE_SERIALIZE__ diff -Nrcpad gcc-11.2.0/gcc/config/i386/sse.md gcc-11.3.0/gcc/config/i386/sse.md *** gcc-11.2.0/gcc/config/i386/sse.md Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/i386/sse.md Thu Apr 21 07:58:52 2022 *************** *** 104,111 **** UNSPEC_COMPRESS UNSPEC_COMPRESS_STORE UNSPEC_EXPAND - UNSPEC_MASKED_EQ - UNSPEC_MASKED_GT ;; Mask operations UNSPEC_MASKOP --- 104,109 ---- *************** *** 3273,3279 **** ;; For signed comparison, handle EQ 0: NEQ 4, ;; for unsigned comparison extra handle LE:2, NLE:6, equivalent to EQ and NEQ. ! (define_split [(set (match_operand: 0 "register_operand") (unspec: [(us_minus:VI12_AVX512VL --- 3271,3277 ---- ;; For signed comparison, handle EQ 0: NEQ 4, ;; for unsigned comparison extra handle LE:2, NLE:6, equivalent to EQ and NEQ. ! (define_insn_and_split "*_ucmp3_1" [(set (match_operand: 0 "register_operand") (unspec: [(us_minus:VI12_AVX512VL *************** *** 3282,3290 **** (match_operand:VI12_AVX512VL 3 "const0_operand") (match_operand:SI 4 "const_0_to_7_operand")] UNSPEC_PCMP_ITER))] ! "TARGET_AVX512BW && ix86_binary_operator_ok (US_MINUS, mode, operands) && (INTVAL (operands[4]) & ) == 0" [(const_int 0)] { /* LE: 2, NLT: 5, NLE: 6, LT: 1 */ --- 3280,3290 ---- (match_operand:VI12_AVX512VL 3 "const0_operand") (match_operand:SI 4 "const_0_to_7_operand")] UNSPEC_PCMP_ITER))] ! "TARGET_AVX512BW && ix86_pre_reload_split () && ix86_binary_operator_ok (US_MINUS, mode, operands) && (INTVAL (operands[4]) & ) == 0" + "#" + "&& 1" [(const_int 0)] { /* LE: 2, NLT: 5, NLE: 6, LT: 1 */ *************** *** 6995,7001 **** (define_expand "vec_unpacks_float_hi_v8si" [(set (match_dup 2) (vec_select:V4SI ! (match_operand:V8SI 1 "vector_operand") (parallel [(const_int 4) (const_int 5) (const_int 6) (const_int 7)]))) (set (match_operand:V4DF 0 "register_operand") --- 6995,7001 ---- (define_expand "vec_unpacks_float_hi_v8si" [(set (match_dup 2) (vec_select:V4SI ! (match_operand:V8SI 1 "register_operand") (parallel [(const_int 4) (const_int 5) (const_int 6) (const_int 7)]))) (set (match_operand:V4DF 0 "register_operand") *************** *** 12895,12918 **** (set_attr "prefix" "vex") (set_attr "mode" "OI")]) - (define_insn_and_split "*avx2_eq3" - [(set (match_operand:VI_128_256 0 "register_operand") - (vec_merge:VI_128_256 - (match_operand:VI_128_256 1 "vector_all_ones_operand") - (match_operand:VI_128_256 2 "const0_operand") - (unspec: - [(match_operand:VI_128_256 3 "nonimmediate_operand") - (match_operand:VI_128_256 4 "nonimmediate_operand")] - UNSPEC_MASKED_EQ)))] - "TARGET_AVX512VL && ix86_pre_reload_split () - && !(MEM_P (operands[3]) && MEM_P (operands[4]))" - "#" - "&& 1" - [(set (match_dup 0) - (eq:VI_128_256 - (match_dup 3) - (match_dup 4)))]) - (define_insn_and_split "*avx2_pcmp3_1" [(set (match_operand:VI_128_256 0 "register_operand") (vec_merge:VI_128_256 --- 12895,12900 ---- *************** *** 12982,12989 **** [(set (match_operand: 0 "register_operand") (unspec: [(match_operand:VI12_AVX512VL 1 "nonimmediate_operand") ! (match_operand:VI12_AVX512VL 2 "nonimmediate_operand")] ! UNSPEC_MASKED_EQ))] "TARGET_AVX512BW" "ix86_fixup_binary_operands_no_copy (EQ, mode, operands);") --- 12964,12972 ---- [(set (match_operand: 0 "register_operand") (unspec: [(match_operand:VI12_AVX512VL 1 "nonimmediate_operand") ! (match_operand:VI12_AVX512VL 2 "nonimmediate_operand") ! (const_int 0)] ! UNSPEC_PCMP))] "TARGET_AVX512BW" "ix86_fixup_binary_operands_no_copy (EQ, mode, operands);") *************** *** 12991,13007 **** [(set (match_operand: 0 "register_operand") (unspec: [(match_operand:VI48_AVX512VL 1 "nonimmediate_operand") ! (match_operand:VI48_AVX512VL 2 "nonimmediate_operand")] ! UNSPEC_MASKED_EQ))] "TARGET_AVX512F" "ix86_fixup_binary_operands_no_copy (EQ, mode, operands);") ! (define_insn "_eq3_1" [(set (match_operand: 0 "register_operand" "=k,k") (unspec: [(match_operand:VI12_AVX512VL 1 "nonimm_or_0_operand" "%v,v") ! (match_operand:VI12_AVX512VL 2 "nonimm_or_0_operand" "vm,C")] ! UNSPEC_MASKED_EQ))] "TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))" "@ vpcmpeq\t{%2, %1, %0|%0, %1, %2} --- 12974,12992 ---- [(set (match_operand: 0 "register_operand") (unspec: [(match_operand:VI48_AVX512VL 1 "nonimmediate_operand") ! (match_operand:VI48_AVX512VL 2 "nonimmediate_operand") ! (const_int 0)] ! UNSPEC_PCMP))] "TARGET_AVX512F" "ix86_fixup_binary_operands_no_copy (EQ, mode, operands);") ! (define_insn "*_eq3_1" [(set (match_operand: 0 "register_operand" "=k,k") (unspec: [(match_operand:VI12_AVX512VL 1 "nonimm_or_0_operand" "%v,v") ! (match_operand:VI12_AVX512VL 2 "nonimm_or_0_operand" "vm,C") ! (const_int 0)] ! UNSPEC_PCMP))] "TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))" "@ vpcmpeq\t{%2, %1, %0|%0, %1, %2} *************** *** 13011,13022 **** (set_attr "prefix" "evex") (set_attr "mode" "")]) ! (define_insn "_eq3_1" [(set (match_operand: 0 "register_operand" "=k,k") (unspec: [(match_operand:VI48_AVX512VL 1 "nonimm_or_0_operand" "%v,v") ! (match_operand:VI48_AVX512VL 2 "nonimm_or_0_operand" "vm,C")] ! UNSPEC_MASKED_EQ))] "TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))" "@ vpcmpeq\t{%2, %1, %0|%0, %1, %2} --- 12996,13008 ---- (set_attr "prefix" "evex") (set_attr "mode" "")]) ! (define_insn "*_eq3_1" [(set (match_operand: 0 "register_operand" "=k,k") (unspec: [(match_operand:VI48_AVX512VL 1 "nonimm_or_0_operand" "%v,v") ! (match_operand:VI48_AVX512VL 2 "nonimm_or_0_operand" "vm,C") ! (const_int 0)] ! UNSPEC_PCMP))] "TARGET_AVX512F && !(MEM_P (operands[1]) && MEM_P (operands[2]))" "@ vpcmpeq\t{%2, %1, %0|%0, %1, %2} *************** *** 13102,13148 **** (set_attr "prefix" "vex") (set_attr "mode" "OI")]) ! (define_insn_and_split "*avx2_gt3" ! [(set (match_operand:VI_128_256 0 "register_operand") ! (vec_merge:VI_128_256 ! (match_operand:VI_128_256 1 "vector_all_ones_operand") ! (match_operand:VI_128_256 2 "const0_operand") ! (unspec: ! [(match_operand:VI_128_256 3 "register_operand") ! (match_operand:VI_128_256 4 "nonimmediate_operand")] ! UNSPEC_MASKED_GT)))] ! "TARGET_AVX512VL ! && ix86_pre_reload_split ()" ! "#" ! "&& 1" ! [(set (match_dup 0) ! (gt:VI_128_256 ! (match_dup 3) ! (match_dup 4)))]) ! ! (define_insn "_gt3" ! [(set (match_operand: 0 "register_operand" "=k") (unspec: ! [(match_operand:VI48_AVX512VL 1 "register_operand" "v") ! (match_operand:VI48_AVX512VL 2 "nonimmediate_operand" "vm")] UNSPEC_MASKED_GT))] ! "TARGET_AVX512F" ! "vpcmpgt\t{%2, %1, %0|%0, %1, %2}" ! [(set_attr "type" "ssecmp") ! (set_attr "prefix_extra" "1") ! (set_attr "prefix" "evex") ! (set_attr "mode" "")]) ! (define_insn "_gt3" ! [(set (match_operand: 0 "register_operand" "=k") (unspec: ! [(match_operand:VI12_AVX512VL 1 "register_operand" "v") ! (match_operand:VI12_AVX512VL 2 "nonimmediate_operand" "vm")] UNSPEC_MASKED_GT))] ! "TARGET_AVX512BW" ! "vpcmpgt\t{%2, %1, %0|%0, %1, %2}" ! [(set_attr "type" "ssecmp") ! (set_attr "prefix_extra" "1") ! (set_attr "prefix" "evex") ! (set_attr "mode" "")]) (define_insn "sse2_gt3" [(set (match_operand:VI124_128 0 "register_operand" "=x,x") --- 13088,13108 ---- (set_attr "prefix" "vex") (set_attr "mode" "OI")]) ! (define_expand "_gt3" ! [(set (match_operand: 0 "register_operand") (unspec: ! [(match_operand:VI48_AVX512VL 1 "register_operand") ! (match_operand:VI48_AVX512VL 2 "nonimmediate_operand") ! (const_int 6)] UNSPEC_PCMP))] ! "TARGET_AVX512F") ! (define_expand "_gt3" ! [(set (match_operand: 0 "register_operand") (unspec: ! [(match_operand:VI12_AVX512VL 1 "register_operand") ! (match_operand:VI12_AVX512VL 2 "nonimmediate_operand") ! (const_int 6)] UNSPEC_PCMP))] ! "TARGET_AVX512BW") (define_insn "sse2_gt3" [(set (match_operand:VI124_128 0 "register_operand" "=x,x") *************** *** 16593,16599 **** [(unspec_volatile [(match_operand:SI 0 "register_operand" "c") (match_operand:SI 1 "register_operand" "a")] UNSPECV_MWAIT)] ! "TARGET_SSE3" ;; 64bit version is "mwait %rax,%rcx". But only lower 32bits are used. ;; Since 32bit register operands are implicitly zero extended to 64bit, ;; we only need to set up 32bit registers. --- 16553,16559 ---- [(unspec_volatile [(match_operand:SI 0 "register_operand" "c") (match_operand:SI 1 "register_operand" "a")] UNSPECV_MWAIT)] ! "TARGET_MWAIT" ;; 64bit version is "mwait %rax,%rcx". But only lower 32bits are used. ;; Since 32bit register operands are implicitly zero extended to 64bit, ;; we only need to set up 32bit registers. *************** *** 16605,16611 **** (match_operand:SI 1 "register_operand" "c") (match_operand:SI 2 "register_operand" "d")] UNSPECV_MONITOR)] ! "TARGET_SSE3" ;; 64bit version is "monitor %rax,%rcx,%rdx". But only lower 32bits in ;; RCX and RDX are used. Since 32bit register operands are implicitly ;; zero extended to 64bit, we only need to set up 32bit registers. --- 16565,16571 ---- (match_operand:SI 1 "register_operand" "c") (match_operand:SI 2 "register_operand" "d")] UNSPECV_MONITOR)] ! "TARGET_MWAIT" ;; 64bit version is "monitor %rax,%rcx,%rdx". But only lower 32bits in ;; RCX and RDX are used. Since 32bit register operands are implicitly ;; zero extended to 64bit, we only need to set up 32bit registers. *************** *** 16675,16686 **** (set_attr "mode" "TI")]) (define_insn_and_split "ssse3_phwv4hi3" ! [(set (match_operand:V4HI 0 "register_operand" "=y,x,Yv") (ssse3_plusminus:V4HI (vec_select:V4HI (vec_concat:V8HI ! (match_operand:V4HI 1 "register_operand" "0,0,Yv") ! (match_operand:V4HI 2 "register_mmxmem_operand" "ym,x,Yv")) (parallel [(const_int 0) (const_int 2) (const_int 4) (const_int 6)])) (vec_select:V4HI --- 16635,16646 ---- (set_attr "mode" "TI")]) (define_insn_and_split "ssse3_phwv4hi3" ! [(set (match_operand:V4HI 0 "register_operand" "=y,x,x") (ssse3_plusminus:V4HI (vec_select:V4HI (vec_concat:V8HI ! (match_operand:V4HI 1 "register_operand" "0,0,x") ! (match_operand:V4HI 2 "register_mmxmem_operand" "ym,x,x")) (parallel [(const_int 0) (const_int 2) (const_int 4) (const_int 6)])) (vec_select:V4HI *************** *** 16762,16773 **** (set_attr "mode" "TI")]) (define_insn_and_split "ssse3_phdv2si3" ! [(set (match_operand:V2SI 0 "register_operand" "=y,x,Yv") (plusminus:V2SI (vec_select:V2SI (vec_concat:V4SI ! (match_operand:V2SI 1 "register_operand" "0,0,Yv") ! (match_operand:V2SI 2 "register_mmxmem_operand" "ym,x,Yv")) (parallel [(const_int 0) (const_int 2)])) (vec_select:V2SI (vec_concat:V4SI (match_dup 1) (match_dup 2)) --- 16722,16733 ---- (set_attr "mode" "TI")]) (define_insn_and_split "ssse3_phdv2si3" ! [(set (match_operand:V2SI 0 "register_operand" "=y,x,x") (plusminus:V2SI (vec_select:V2SI (vec_concat:V4SI ! (match_operand:V2SI 1 "register_operand" "0,0,x") ! (match_operand:V2SI 2 "register_mmxmem_operand" "ym,x,x")) (parallel [(const_int 0) (const_int 2)])) (vec_select:V2SI (vec_concat:V4SI (match_dup 1) (match_dup 2)) *************** *** 17173,17185 **** }) (define_insn_and_split "*ssse3_pshufbv8qi3" ! [(set (match_operand:V8QI 0 "register_operand" "=y,x,Yv") ! (unspec:V8QI [(match_operand:V8QI 1 "register_operand" "0,0,Yv") ! (match_operand:V8QI 2 "register_mmxmem_operand" "ym,x,Yv") (match_operand:V4SI 4 "reg_or_const_vector_operand" "i,3,3")] UNSPEC_PSHUFB)) ! (clobber (match_scratch:V4SI 3 "=X,&x,&Yv"))] "(TARGET_MMX || TARGET_MMX_WITH_SSE) && TARGET_SSSE3" "@ pshufb\t{%2, %0|%0, %2} --- 17133,17145 ---- }) (define_insn_and_split "*ssse3_pshufbv8qi3" ! [(set (match_operand:V8QI 0 "register_operand" "=y,x,Yw") ! (unspec:V8QI [(match_operand:V8QI 1 "register_operand" "0,0,Yw") ! (match_operand:V8QI 2 "register_mmxmem_operand" "ym,x,Yw") (match_operand:V4SI 4 "reg_or_const_vector_operand" "i,3,3")] UNSPEC_PSHUFB)) ! (clobber (match_scratch:V4SI 3 "=X,&x,&Yw"))] "(TARGET_MMX || TARGET_MMX_WITH_SSE) && TARGET_SSSE3" "@ pshufb\t{%2, %0|%0, %2} *************** *** 17226,17235 **** (set_attr "mode" "")]) (define_insn "ssse3_psign3" ! [(set (match_operand:MMXMODEI 0 "register_operand" "=y,x,Yv") (unspec:MMXMODEI ! [(match_operand:MMXMODEI 1 "register_operand" "0,0,Yv") ! (match_operand:MMXMODEI 2 "register_mmxmem_operand" "ym,x,Yv")] UNSPEC_PSIGN))] "(TARGET_MMX || TARGET_MMX_WITH_SSE) && TARGET_SSSE3" "@ --- 17186,17195 ---- (set_attr "mode" "")]) (define_insn "ssse3_psign3" ! [(set (match_operand:MMXMODEI 0 "register_operand" "=y,x,x") (unspec:MMXMODEI ! [(match_operand:MMXMODEI 1 "register_operand" "0,0,x") ! (match_operand:MMXMODEI 2 "register_mmxmem_operand" "ym,x,x")] UNSPEC_PSIGN))] "(TARGET_MMX || TARGET_MMX_WITH_SSE) && TARGET_SSSE3" "@ *************** *** 20299,20306 **** negate = true; } par = gen_rtx_PARALLEL (V16QImode, rtvec_alloc (16)); for (i = 0; i < 16; i++) ! XVECEXP (par, 0, i) = operands[2]; tmp = gen_reg_rtx (V16QImode); emit_insn (gen_vec_initv16qiqi (tmp, par)); --- 20259,20267 ---- negate = true; } par = gen_rtx_PARALLEL (V16QImode, rtvec_alloc (16)); + tmp = lowpart_subreg (QImode, operands[2], SImode); for (i = 0; i < 16; i++) ! XVECEXP (par, 0, i) = tmp; tmp = gen_reg_rtx (V16QImode); emit_insn (gen_vec_initv16qiqi (tmp, par)); *************** *** 22633,22640 **** "TARGET_AVX512F" { operands[5] ! = gen_rtx_UNSPEC (Pmode, gen_rtvec (3, operands[0], operands[2], ! operands[4]), UNSPEC_VSIBADDR); }) (define_insn "*avx512f_scattersi" --- 22594,22602 ---- "TARGET_AVX512F" { operands[5] ! = gen_rtx_UNSPEC (Pmode, gen_rtvec (4, operands[0], operands[2], ! operands[4], operands[1]), ! UNSPEC_VSIBADDR); }) (define_insn "*avx512f_scattersi" *************** *** 22642,22651 **** [(unspec:P [(match_operand:P 0 "vsib_address_operand" "Tv") (match_operand: 2 "register_operand" "v") ! (match_operand:SI 4 "const1248_operand" "n")] UNSPEC_VSIBADDR)]) (unspec:VI48F ! [(match_operand: 6 "register_operand" "1") (match_operand:VI48F 3 "register_operand" "v")] UNSPEC_SCATTER)) (clobber (match_scratch: 1 "=&Yk"))] --- 22604,22614 ---- [(unspec:P [(match_operand:P 0 "vsib_address_operand" "Tv") (match_operand: 2 "register_operand" "v") ! (match_operand:SI 4 "const1248_operand" "n") ! (match_operand: 6 "register_operand" "1")] UNSPEC_VSIBADDR)]) (unspec:VI48F ! [(match_dup 6) (match_operand:VI48F 3 "register_operand" "v")] UNSPEC_SCATTER)) (clobber (match_scratch: 1 "=&Yk"))] *************** *** 22671,22678 **** "TARGET_AVX512F" { operands[5] ! = gen_rtx_UNSPEC (Pmode, gen_rtvec (3, operands[0], operands[2], ! operands[4]), UNSPEC_VSIBADDR); }) (define_insn "*avx512f_scatterdi" --- 22634,22642 ---- "TARGET_AVX512F" { operands[5] ! = gen_rtx_UNSPEC (Pmode, gen_rtvec (4, operands[0], operands[2], ! operands[4], operands[1]), ! UNSPEC_VSIBADDR); }) (define_insn "*avx512f_scatterdi" *************** *** 22680,22689 **** [(unspec:P [(match_operand:P 0 "vsib_address_operand" "Tv") (match_operand: 2 "register_operand" "v") ! (match_operand:SI 4 "const1248_operand" "n")] UNSPEC_VSIBADDR)]) (unspec:VI48F ! [(match_operand:QI 6 "register_operand" "1") (match_operand: 3 "register_operand" "v")] UNSPEC_SCATTER)) (clobber (match_scratch:QI 1 "=&Yk"))] --- 22644,22654 ---- [(unspec:P [(match_operand:P 0 "vsib_address_operand" "Tv") (match_operand: 2 "register_operand" "v") ! (match_operand:SI 4 "const1248_operand" "n") ! (match_operand:QI 6 "register_operand" "1")] UNSPEC_VSIBADDR)]) (unspec:VI48F ! [(match_dup 6) (match_operand: 3 "register_operand" "v")] UNSPEC_SCATTER)) (clobber (match_scratch:QI 1 "=&Yk"))] *************** *** 24114,24121 **** ;; KEYLOCKER (define_insn "loadiwkey" ! [(unspec_volatile:V2DI [(match_operand:V2DI 0 "register_operand" "v") ! (match_operand:V2DI 1 "register_operand" "v") (match_operand:V2DI 2 "register_operand" "Yz") (match_operand:SI 3 "register_operand" "a")] UNSPECV_LOADIWKEY) --- 24079,24086 ---- ;; KEYLOCKER (define_insn "loadiwkey" ! [(unspec_volatile:V2DI [(match_operand:V2DI 0 "register_operand" "x") ! (match_operand:V2DI 1 "register_operand" "x") (match_operand:V2DI 2 "register_operand" "Yz") (match_operand:SI 3 "register_operand" "a")] UNSPECV_LOADIWKEY) *************** *** 24248,24254 **** (UNSPECV_AESENC256KLU8 "enc256kl")]) (define_insn "aesu8" ! [(set (match_operand:V2DI 0 "register_operand" "=v") (unspec_volatile:V2DI [(match_operand:V2DI 1 "register_operand" "0") (match_operand:BLK 2 "memory_operand" "m")] AESDECENCKL)) --- 24213,24219 ---- (UNSPECV_AESENC256KLU8 "enc256kl")]) (define_insn "aesu8" ! [(set (match_operand:V2DI 0 "register_operand" "=x") (unspec_volatile:V2DI [(match_operand:V2DI 1 "register_operand" "0") (match_operand:BLK 2 "memory_operand" "m")] AESDECENCKL)) *************** *** 24317,24321 **** [(match_operand:BLK 0 "memory_operand" "m")] AESDECENCWIDEKL))])] "TARGET_WIDEKL" ! "aes\t{%0}" [(set_attr "type" "other")]) --- 24282,24286 ---- [(match_operand:BLK 0 "memory_operand" "m")] AESDECENCWIDEKL))])] "TARGET_WIDEKL" ! "aes\t%0" [(set_attr "type" "other")]) diff -Nrcpad gcc-11.2.0/gcc/config/i386/sync.md gcc-11.3.0/gcc/config/i386/sync.md *** gcc-11.2.0/gcc/config/i386/sync.md Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/i386/sync.md Thu Apr 21 07:58:52 2022 *************** *** 726,732 **** rtx result = convert_modes (mode, QImode, tem, 1); if (operands[4] == const0_rtx) result = expand_simple_binop (mode, ASHIFT, result, ! operands[2], operands[0], 0, OPTAB_DIRECT); if (result != operands[0]) emit_move_insn (operands[0], result); DONE; --- 726,732 ---- rtx result = convert_modes (mode, QImode, tem, 1); if (operands[4] == const0_rtx) result = expand_simple_binop (mode, ASHIFT, result, ! operands[2], operands[0], 0, OPTAB_WIDEN); if (result != operands[0]) emit_move_insn (operands[0], result); DONE; *************** *** 763,769 **** rtx result = convert_modes (mode, QImode, tem, 1); if (operands[4] == const0_rtx) result = expand_simple_binop (mode, ASHIFT, result, ! operands[2], operands[0], 0, OPTAB_DIRECT); if (result != operands[0]) emit_move_insn (operands[0], result); DONE; --- 763,769 ---- rtx result = convert_modes (mode, QImode, tem, 1); if (operands[4] == const0_rtx) result = expand_simple_binop (mode, ASHIFT, result, ! operands[2], operands[0], 0, OPTAB_WIDEN); if (result != operands[0]) emit_move_insn (operands[0], result); DONE; *************** *** 801,807 **** rtx result = convert_modes (mode, QImode, tem, 1); if (operands[4] == const0_rtx) result = expand_simple_binop (mode, ASHIFT, result, ! operands[2], operands[0], 0, OPTAB_DIRECT); if (result != operands[0]) emit_move_insn (operands[0], result); DONE; --- 801,807 ---- rtx result = convert_modes (mode, QImode, tem, 1); if (operands[4] == const0_rtx) result = expand_simple_binop (mode, ASHIFT, result, ! operands[2], operands[0], 0, OPTAB_WIDEN); if (result != operands[0]) emit_move_insn (operands[0], result); DONE; diff -Nrcpad gcc-11.2.0/gcc/config/i386/winnt.c gcc-11.3.0/gcc/config/i386/winnt.c *** gcc-11.2.0/gcc/config/i386/winnt.c Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/i386/winnt.c Thu Apr 21 07:58:52 2022 *************** i386_pe_seh_unwind_emit (FILE *asm_out_f *** 1244,1252 **** seh = cfun->machine->seh; if (NOTE_P (insn) && NOTE_KIND (insn) == NOTE_INSN_SWITCH_TEXT_SECTIONS) { ! /* See ix86_seh_fixup_eh_fallthru for the rationale. */ rtx_insn *prev = prev_active_insn (insn); ! if (prev && !insn_nothrow_p (prev)) fputs ("\tnop\n", asm_out_file); fputs ("\t.seh_endproc\n", asm_out_file); seh->in_cold_section = true; --- 1244,1252 ---- seh = cfun->machine->seh; if (NOTE_P (insn) && NOTE_KIND (insn) == NOTE_INSN_SWITCH_TEXT_SECTIONS) { ! /* See ix86_output_call_insn/seh_fixup_eh_fallthru for the rationale. */ rtx_insn *prev = prev_active_insn (insn); ! if (prev && (CALL_P (prev) || !insn_nothrow_p (prev))) fputs ("\tnop\n", asm_out_file); fputs ("\t.seh_endproc\n", asm_out_file); seh->in_cold_section = true; diff -Nrcpad gcc-11.2.0/gcc/config/i386/x86gprintrin.h gcc-11.3.0/gcc/config/i386/x86gprintrin.h *** gcc-11.2.0/gcc/config/i386/x86gprintrin.h Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/i386/x86gprintrin.h Thu Apr 21 07:58:52 2022 *************** *** 24,29 **** --- 24,35 ---- #ifndef _X86GPRINTRIN_H_INCLUDED #define _X86GPRINTRIN_H_INCLUDED + #if !defined _SOFT_FLOAT || defined __MMX__ || defined __SSE__ + #pragma GCC push_options + #pragma GCC target("general-regs-only") + #define __DISABLE_GENERAL_REGS_ONLY__ + #endif + #include #ifndef __iamcu__ *************** *** 56,61 **** --- 62,69 ---- #include + #include + #include #include *************** _ptwrite32 (unsigned __B) *** 253,256 **** --- 261,269 ---- #endif /* __iamcu__ */ + #ifdef __DISABLE_GENERAL_REGS_ONLY__ + #undef __DISABLE_GENERAL_REGS_ONLY__ + #pragma GCC pop_options + #endif /* __DISABLE_GENERAL_REGS_ONLY__ */ + #endif /* _X86GPRINTRIN_H_INCLUDED. */ diff -Nrcpad gcc-11.2.0/gcc/config/mips/mips-msa.md gcc-11.3.0/gcc/config/mips/mips-msa.md *** gcc-11.2.0/gcc/config/mips/mips-msa.md Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/mips/mips-msa.md Thu Apr 21 07:58:52 2022 *************** *** 435,440 **** --- 435,462 ---- DONE; }) + (define_expand "vec_cmp" + [(match_operand: 0 "register_operand") + (match_operator 1 "" + [(match_operand:MSA 2 "register_operand") + (match_operand:MSA 3 "register_operand")])] + "ISA_HAS_MSA" + { + mips_expand_vec_cmp_expr (operands); + DONE; + }) + + (define_expand "vec_cmpu" + [(match_operand: 0 "register_operand") + (match_operator 1 "" + [(match_operand:IMSA 2 "register_operand") + (match_operand:IMSA 3 "register_operand")])] + "ISA_HAS_MSA" + { + mips_expand_vec_cmp_expr (operands); + DONE; + }) + (define_insn "msa_insert_" [(set (match_operand:MSA 0 "register_operand" "=f,f") (vec_merge:MSA diff -Nrcpad gcc-11.2.0/gcc/config/mips/mips-protos.h gcc-11.3.0/gcc/config/mips/mips-protos.h *** gcc-11.2.0/gcc/config/mips/mips-protos.h Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/mips/mips-protos.h Thu Apr 21 07:58:52 2022 *************** extern mulsidi3_gen_fn mips_mulsidi3_gen *** 385,390 **** --- 385,391 ---- extern void mips_register_frame_header_opt (void); extern void mips_expand_vec_cond_expr (machine_mode, machine_mode, rtx *); + extern void mips_expand_vec_cmp_expr (rtx *); /* Routines implemented in mips-d.c */ extern void mips_d_target_versions (void); diff -Nrcpad gcc-11.2.0/gcc/config/mips/mips.c gcc-11.3.0/gcc/config/mips/mips.c *** gcc-11.2.0/gcc/config/mips/mips.c Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/mips/mips.c Thu Apr 21 07:58:52 2022 *************** mips_expand_msa_cmp (rtx dest, enum rtx_ *** 22320,22325 **** --- 22320,22336 ---- } } + void + mips_expand_vec_cmp_expr (rtx *operands) + { + rtx cond = operands[1]; + rtx op0 = operands[2]; + rtx op1 = operands[3]; + rtx res = operands[0]; + + mips_expand_msa_cmp (res, GET_CODE (cond), op0, op1); + } + /* Expand VEC_COND_EXPR, where: MODE is mode of the result VIMODE equivalent integer mode *************** mips_atomic_assign_expand_fenv (tree *ho *** 22427,22438 **** tree get_fcsr = mips_builtin_decls[MIPS_GET_FCSR]; tree set_fcsr = mips_builtin_decls[MIPS_SET_FCSR]; tree get_fcsr_hold_call = build_call_expr (get_fcsr, 0); ! tree hold_assign_orig = build2 (MODIFY_EXPR, MIPS_ATYPE_USI, ! fcsr_orig_var, get_fcsr_hold_call); tree hold_mod_val = build2 (BIT_AND_EXPR, MIPS_ATYPE_USI, fcsr_orig_var, build_int_cst (MIPS_ATYPE_USI, 0xfffff003)); ! tree hold_assign_mod = build2 (MODIFY_EXPR, MIPS_ATYPE_USI, ! fcsr_mod_var, hold_mod_val); tree set_fcsr_hold_call = build_call_expr (set_fcsr, 1, fcsr_mod_var); tree hold_all = build2 (COMPOUND_EXPR, MIPS_ATYPE_USI, hold_assign_orig, hold_assign_mod); --- 22438,22449 ---- tree get_fcsr = mips_builtin_decls[MIPS_GET_FCSR]; tree set_fcsr = mips_builtin_decls[MIPS_SET_FCSR]; tree get_fcsr_hold_call = build_call_expr (get_fcsr, 0); ! tree hold_assign_orig = build4 (TARGET_EXPR, MIPS_ATYPE_USI, ! fcsr_orig_var, get_fcsr_hold_call, NULL, NULL); tree hold_mod_val = build2 (BIT_AND_EXPR, MIPS_ATYPE_USI, fcsr_orig_var, build_int_cst (MIPS_ATYPE_USI, 0xfffff003)); ! tree hold_assign_mod = build4 (TARGET_EXPR, MIPS_ATYPE_USI, ! fcsr_mod_var, hold_mod_val, NULL, NULL); tree set_fcsr_hold_call = build_call_expr (set_fcsr, 1, fcsr_mod_var); tree hold_all = build2 (COMPOUND_EXPR, MIPS_ATYPE_USI, hold_assign_orig, hold_assign_mod); *************** mips_atomic_assign_expand_fenv (tree *ho *** 22442,22449 **** *clear = build_call_expr (set_fcsr, 1, fcsr_mod_var); tree get_fcsr_update_call = build_call_expr (get_fcsr, 0); ! *update = build2 (MODIFY_EXPR, MIPS_ATYPE_USI, ! exceptions_var, get_fcsr_update_call); tree set_fcsr_update_call = build_call_expr (set_fcsr, 1, fcsr_orig_var); *update = build2 (COMPOUND_EXPR, void_type_node, *update, set_fcsr_update_call); --- 22453,22460 ---- *clear = build_call_expr (set_fcsr, 1, fcsr_mod_var); tree get_fcsr_update_call = build_call_expr (get_fcsr, 0); ! *update = build4 (TARGET_EXPR, MIPS_ATYPE_USI, ! exceptions_var, get_fcsr_update_call, NULL, NULL); tree set_fcsr_update_call = build_call_expr (set_fcsr, 1, fcsr_orig_var); *update = build2 (COMPOUND_EXPR, void_type_node, *update, set_fcsr_update_call); diff -Nrcpad gcc-11.2.0/gcc/config/pa/pa-d.c gcc-11.3.0/gcc/config/pa/pa-d.c *** gcc-11.2.0/gcc/config/pa/pa-d.c Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/pa/pa-d.c Thu Apr 21 07:58:52 2022 *************** pa_d_handle_target_float_abi (void) *** 47,53 **** { const char *abi; ! if (TARGET_DISABLE_FPREGS || TARGET_SOFT_FLOAT) abi = "soft"; else abi = "hard"; --- 47,53 ---- { const char *abi; ! if (TARGET_SOFT_FLOAT) abi = "soft"; else abi = "hard"; diff -Nrcpad gcc-11.2.0/gcc/config/pa/pa-modes.def gcc-11.3.0/gcc/config/pa/pa-modes.def *** gcc-11.2.0/gcc/config/pa/pa-modes.def Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/pa/pa-modes.def Thu Apr 21 07:58:52 2022 *************** FLOAT_MODE (TF, 16, mips_quad_format); *** 30,32 **** --- 30,35 ---- /* HPPA floating comparisons produce distinct condition codes. */ CC_MODE (CCFP); + + /* Mode used for signed overflow checking of TImode. */ + INT_MODE (OI, 32); diff -Nrcpad gcc-11.2.0/gcc/config/pa/pa-protos.h gcc-11.3.0/gcc/config/pa/pa-protos.h *** gcc-11.2.0/gcc/config/pa/pa-protos.h Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/pa/pa-protos.h Thu Apr 21 07:58:52 2022 *************** extern rtx pa_return_addr_rtx (int, rtx) *** 73,79 **** extern int pa_insn_refs_are_delayed (rtx_insn *); extern rtx pa_get_deferred_plabel (rtx); - extern rtx pa_maybe_emit_compare_and_swap_exchange_loop (rtx, rtx, rtx); #endif /* RTX_CODE */ extern int pa_and_mask_p (unsigned HOST_WIDE_INT); --- 73,78 ---- diff -Nrcpad gcc-11.2.0/gcc/config/pa/pa.c gcc-11.3.0/gcc/config/pa/pa.c *** gcc-11.2.0/gcc/config/pa/pa.c Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/pa/pa.c Thu Apr 21 07:58:52 2022 *************** fix_range (const char *const_str) *** 497,503 **** break; if (i > FP_REG_LAST) ! target_flags |= MASK_DISABLE_FPREGS; } /* Implement the TARGET_OPTION_OVERRIDE hook. */ --- 497,503 ---- break; if (i > FP_REG_LAST) ! target_flags |= MASK_SOFT_FLOAT; } /* Implement the TARGET_OPTION_OVERRIDE hook. */ *************** pa_option_override (void) *** 541,546 **** --- 541,556 ---- write_symbols = NO_DEBUG; } + if (TARGET_64BIT && TARGET_HPUX) + { + /* DWARF5 is not supported by gdb. Don't emit DWARF5 unless + specifically selected. */ + if (!global_options_set.x_dwarf_strict) + dwarf_strict = 1; + if (!global_options_set.x_dwarf_version) + dwarf_version = 4; + } + /* We only support the "big PIC" model now. And we always generate PIC code when in 64bit mode. */ if (flag_pic == 1 || TARGET_64BIT) *************** hppa_rtx_costs (rtx x, machine_mode mode *** 1568,1581 **** } else if (mode == DImode) { ! if (TARGET_PA_11 && !TARGET_DISABLE_FPREGS && !TARGET_SOFT_FLOAT) ! *total = COSTS_N_INSNS (32); else *total = COSTS_N_INSNS (80); } else { ! if (TARGET_PA_11 && !TARGET_DISABLE_FPREGS && !TARGET_SOFT_FLOAT) *total = COSTS_N_INSNS (8); else *total = COSTS_N_INSNS (20); --- 1578,1591 ---- } else if (mode == DImode) { ! if (TARGET_PA_11 && !TARGET_SOFT_FLOAT && !TARGET_SOFT_MULT) ! *total = COSTS_N_INSNS (25); else *total = COSTS_N_INSNS (80); } else { ! if (TARGET_PA_11 && !TARGET_SOFT_FLOAT && !TARGET_SOFT_MULT) *total = COSTS_N_INSNS (8); else *total = COSTS_N_INSNS (20); *************** hppa_gimplify_va_arg_expr (tree valist, *** 6540,6557 **** /* True if MODE is valid for the target. By "valid", we mean able to be manipulated in non-trivial ways. In particular, this means all ! the arithmetic is supported. ! ! Currently, TImode is not valid as the HP 64-bit runtime documentation ! doesn't document the alignment and calling conventions for this type. ! Thus, we return false when PRECISION is 2 * BITS_PER_WORD and ! 2 * BITS_PER_WORD isn't equal LONG_LONG_TYPE_SIZE. */ static bool pa_scalar_mode_supported_p (scalar_mode mode) { int precision = GET_MODE_PRECISION (mode); switch (GET_MODE_CLASS (mode)) { case MODE_PARTIAL_INT: --- 6550,6565 ---- /* True if MODE is valid for the target. By "valid", we mean able to be manipulated in non-trivial ways. In particular, this means all ! the arithmetic is supported. */ static bool pa_scalar_mode_supported_p (scalar_mode mode) { int precision = GET_MODE_PRECISION (mode); + if (TARGET_64BIT && mode == TImode) + return true; + switch (GET_MODE_CLASS (mode)) { case MODE_PARTIAL_INT: *************** pa_conditional_register_usage (void) *** 10619,10625 **** for (i = 33; i < 56; i += 2) fixed_regs[i] = call_used_regs[i] = 1; } ! if (TARGET_DISABLE_FPREGS || TARGET_SOFT_FLOAT) { for (i = FP_REG_FIRST; i <= FP_REG_LAST; i++) fixed_regs[i] = call_used_regs[i] = 1; --- 10627,10633 ---- for (i = 33; i < 56; i += 2) fixed_regs[i] = call_used_regs[i] = 1; } ! if (TARGET_SOFT_FLOAT) { for (i = FP_REG_FIRST; i <= FP_REG_LAST; i++) fixed_regs[i] = call_used_regs[i] = 1; *************** pa_output_addr_diff_vec (rtx lab, rtx bo *** 11017,11098 **** fputs ("\t.end_brtab\n", asm_out_file); } - /* This is a helper function for the other atomic operations. This function - emits a loop that contains SEQ that iterates until a compare-and-swap - operation at the end succeeds. MEM is the memory to be modified. SEQ is - a set of instructions that takes a value from OLD_REG as an input and - produces a value in NEW_REG as an output. Before SEQ, OLD_REG will be - set to the current contents of MEM. After SEQ, a compare-and-swap will - attempt to update MEM with NEW_REG. The function returns true when the - loop was generated successfully. */ - - static bool - pa_expand_compare_and_swap_loop (rtx mem, rtx old_reg, rtx new_reg, rtx seq) - { - machine_mode mode = GET_MODE (mem); - rtx_code_label *label; - rtx cmp_reg, success, oldval; - - /* The loop we want to generate looks like - - cmp_reg = mem; - label: - old_reg = cmp_reg; - seq; - (success, cmp_reg) = compare-and-swap(mem, old_reg, new_reg) - if (success) - goto label; - - Note that we only do the plain load from memory once. Subsequent - iterations use the value loaded by the compare-and-swap pattern. */ - - label = gen_label_rtx (); - cmp_reg = gen_reg_rtx (mode); - - emit_move_insn (cmp_reg, mem); - emit_label (label); - emit_move_insn (old_reg, cmp_reg); - if (seq) - emit_insn (seq); - - success = NULL_RTX; - oldval = cmp_reg; - if (!expand_atomic_compare_and_swap (&success, &oldval, mem, old_reg, - new_reg, false, MEMMODEL_SYNC_SEQ_CST, - MEMMODEL_RELAXED)) - return false; - - if (oldval != cmp_reg) - emit_move_insn (cmp_reg, oldval); - - /* Mark this jump predicted not taken. */ - emit_cmp_and_jump_insns (success, const0_rtx, EQ, const0_rtx, - GET_MODE (success), 1, label, - profile_probability::guessed_never ()); - return true; - } - - /* This function tries to implement an atomic exchange operation using a - compare_and_swap loop. VAL is written to *MEM. The previous contents of - *MEM are returned, using TARGET if possible. No memory model is required - since a compare_and_swap loop is seq-cst. */ - - rtx - pa_maybe_emit_compare_and_swap_exchange_loop (rtx target, rtx mem, rtx val) - { - machine_mode mode = GET_MODE (mem); - - if (can_compare_and_swap_p (mode, true)) - { - if (!target || !register_operand (target, mode)) - target = gen_reg_rtx (mode); - if (pa_expand_compare_and_swap_loop (mem, target, val, NULL_RTX)) - return target; - } - - return NULL_RTX; - } - /* Implement TARGET_CALLEE_COPIES. The callee is responsible for copying arguments passed by hidden reference in the 32-bit HP runtime. Users can override this behavior for better compatibility with openmp at the --- 11025,11030 ---- diff -Nrcpad gcc-11.2.0/gcc/config/pa/pa.h gcc-11.3.0/gcc/config/pa/pa.h *** gcc-11.2.0/gcc/config/pa/pa.h Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/pa/pa.h Thu Apr 21 07:58:52 2022 *************** typedef struct GTY(()) machine_function *** 255,265 **** is UNITS_PER_WORD. Otherwise, it is the constant value that is the smallest value that UNITS_PER_WORD can have at run-time. ! FIXME: This needs to be 4 when TARGET_64BIT is true to suppress the ! building of various TImode routines in libgcc. The HP runtime ! specification doesn't provide the alignment requirements and calling ! conventions for TImode variables. */ ! #define MIN_UNITS_PER_WORD 4 /* The widest floating point format supported by the hardware. Note that setting this influences some Ada floating point type sizes, currently --- 255,271 ---- is UNITS_PER_WORD. Otherwise, it is the constant value that is the smallest value that UNITS_PER_WORD can have at run-time. ! This needs to be 8 when TARGET_64BIT is true to allow building various ! TImode routines in libgcc. However, we also need the DImode DIVMOD ! routines because they are not currently implemented in pa.md. ! ! The HP runtime specification doesn't provide the alignment requirements ! and calling conventions for TImode variables. */ ! #ifdef IN_LIBGCC2 ! #define MIN_UNITS_PER_WORD UNITS_PER_WORD ! #else ! #define MIN_UNITS_PER_WORD 4 ! #endif /* The widest floating point format supported by the hardware. Note that setting this influences some Ada floating point type sizes, currently *************** extern int may_call_alloca; *** 833,839 **** #define INT14_OK_STRICT \ (TARGET_SOFT_FLOAT \ - || TARGET_DISABLE_FPREGS \ || (TARGET_PA_20 && !TARGET_ELF32)) /* The macros REG_OK_FOR..._P assume that the arg is a REG rtx --- 839,844 ---- diff -Nrcpad gcc-11.2.0/gcc/config/pa/pa.md gcc-11.3.0/gcc/config/pa/pa.md *** gcc-11.2.0/gcc/config/pa/pa.md Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/pa/pa.md Thu Apr 21 07:58:52 2022 *************** *** 1383,1389 **** (match_operand:SF 2 "reg_or_0_operand" "")]) (label_ref (match_operand 3 "" "")) (pc)))] ! "" " { pa_emit_bcond_fp (operands); --- 1383,1389 ---- (match_operand:SF 2 "reg_or_0_operand" "")]) (label_ref (match_operand 3 "" "")) (pc)))] ! "! TARGET_SOFT_FLOAT" " { pa_emit_bcond_fp (operands); *************** *** 1398,1404 **** (match_operand:DF 2 "reg_or_0_operand" "")]) (label_ref (match_operand 3 "" "")) (pc)))] ! "" " { pa_emit_bcond_fp (operands); --- 1398,1404 ---- (match_operand:DF 2 "reg_or_0_operand" "")]) (label_ref (match_operand 3 "" "")) (pc)))] ! "! TARGET_SOFT_FLOAT" " { pa_emit_bcond_fp (operands); *************** *** 2237,2242 **** --- 2237,2265 ---- (set_attr "length" "4,4,4,4,4,4,4,4,4,4,4,4")]) (define_insn "" + [(set (match_operand:SI 0 "move_dest_operand" + "=r,r,r,r,r,r,Q,!*q,!r") + (match_operand:SI 1 "move_src_operand" + "A,r,J,N,K,RQ,rM,!rM,!*q"))] + "(register_operand (operands[0], SImode) + || reg_or_0_operand (operands[1], SImode)) + && TARGET_SOFT_FLOAT + && TARGET_64BIT" + "@ + ldw RT'%A1,%0 + copy %1,%0 + ldi %1,%0 + ldil L'%1,%0 + {zdepi|depwi,z} %Z1,%0 + ldw%M1 %1,%0 + stw%M0 %r1,%0 + mtsar %r1 + {mfctl|mfctl,w} %%sar,%0" + [(set_attr "type" "load,move,move,move,shift,load,store,move,move") + (set_attr "pa_combine_type" "addmove") + (set_attr "length" "4,4,4,4,4,4,4,4,4")]) + + (define_insn "" [(set (match_operand:SI 0 "indexed_memory_operand" "=R") (match_operand:SI 1 "register_operand" "f"))] "!TARGET_SOFT_FLOAT *************** *** 4024,4035 **** [(set (match_operand:DF 0 "move_dest_operand" "=!*r,*r,*r,*r,*r,Q,f,f,T") (match_operand:DF 1 "move_src_operand" ! "!*r,J,N,K,RQ,*rG,fG,RT,f"))] "(register_operand (operands[0], DFmode) || reg_or_0_operand (operands[1], DFmode)) && !TARGET_SOFT_FLOAT && TARGET_64BIT" "@ ! copy %1,%0 ldi %1,%0 ldil L'%1,%0 depdi,z %z1,%0 --- 4047,4058 ---- [(set (match_operand:DF 0 "move_dest_operand" "=!*r,*r,*r,*r,*r,Q,f,f,T") (match_operand:DF 1 "move_src_operand" ! "!*rG,J,N,K,RQ,*rG,fG,RT,f"))] "(register_operand (operands[0], DFmode) || reg_or_0_operand (operands[1], DFmode)) && !TARGET_SOFT_FLOAT && TARGET_64BIT" "@ ! copy %r1,%0 ldi %1,%0 ldil L'%1,%0 depdi,z %z1,%0 *************** *** 4042,4047 **** --- 4065,4089 ---- (set_attr "pa_combine_type" "addmove") (set_attr "length" "4,4,4,4,4,4,4,4,4")]) + (define_insn "" + [(set (match_operand:DF 0 "move_dest_operand" + "=!*r,*r,*r,*r,*r,Q") + (match_operand:DF 1 "move_src_operand" + "!*rG,J,N,K,RQ,*rG"))] + "(register_operand (operands[0], DFmode) + || reg_or_0_operand (operands[1], DFmode)) + && TARGET_SOFT_FLOAT && TARGET_64BIT" + "@ + copy %r1,%0 + ldi %1,%0 + ldil L'%1,%0 + depdi,z %z1,%0 + ldd%M1 %1,%0 + std%M0 %r1,%0" + [(set_attr "type" "move,move,move,shift,load,store") + (set_attr "pa_combine_type" "addmove") + (set_attr "length" "4,4,4,4,4,4")]) + (define_expand "movdi" [(set (match_operand:DI 0 "general_operand" "") *************** *** 4201,4206 **** --- 4243,4270 ---- (set_attr "length" "4,4,4,4,4,4,4,4,4,4,4,4")]) (define_insn "" + [(set (match_operand:DI 0 "move_dest_operand" + "=r,r,r,r,r,r,Q,!*q,!r") + (match_operand:DI 1 "move_src_operand" + "A,r,J,N,K,RQ,rM,!rM,!*q"))] + "(register_operand (operands[0], DImode) + || reg_or_0_operand (operands[1], DImode)) + && TARGET_SOFT_FLOAT && TARGET_64BIT" + "@ + ldd RT'%A1,%0 + copy %1,%0 + ldi %1,%0 + ldil L'%1,%0 + depdi,z %z1,%0 + ldd%M1 %1,%0 + std%M0 %r1,%0 + mtsar %r1 + {mfctl|mfctl,w} %%sar,%0" + [(set_attr "type" "load,move,move,move,shift,load,store,move,move") + (set_attr "pa_combine_type" "addmove") + (set_attr "length" "4,4,4,4,4,4,4,4,4")]) + + (define_insn "" [(set (match_operand:DI 0 "indexed_memory_operand" "=R") (match_operand:DI 1 "register_operand" "f"))] "!TARGET_SOFT_FLOAT *************** *** 4406,4411 **** --- 4470,4492 ---- (set_attr "length" "4,4,4,4,4,4")]) (define_insn "" + [(set (match_operand:SF 0 "move_dest_operand" + "=!*r,*r,Q") + (match_operand:SF 1 "reg_or_0_or_nonsymb_mem_operand" + "!*rG,RQ,*rG"))] + "(register_operand (operands[0], SFmode) + || reg_or_0_operand (operands[1], SFmode)) + && TARGET_SOFT_FLOAT + && TARGET_64BIT" + "@ + copy %r1,%0 + ldw%M1 %1,%0 + stw%M0 %r1,%0" + [(set_attr "type" "move,load,store") + (set_attr "pa_combine_type" "addmove") + (set_attr "length" "4,4,4")]) + + (define_insn "" [(set (match_operand:SF 0 "indexed_memory_operand" "=R") (match_operand:SF 1 "register_operand" "f"))] "!TARGET_SOFT_FLOAT *************** *** 5276,5281 **** --- 5357,5444 ---- [(set_attr "type" "binary,binary") (set_attr "length" "4,4")]) + (define_insn "addti3" + [(set (match_operand:TI 0 "register_operand" "=r") + (plus:TI (match_operand:TI 1 "register_operand" "r") + (match_operand:TI 2 "register_operand" "r")))] + "TARGET_64BIT" + "* + { + operands[3] = gen_lowpart (DImode, operands[0]); + operands[4] = gen_lowpart (DImode, operands[1]); + operands[5] = gen_lowpart (DImode, operands[2]); + operands[0] = gen_highpart (DImode, operands[0]); + operands[1] = gen_highpart (DImode, operands[1]); + operands[2] = gen_highpart (DImode, operands[2]); + return \"add %4,%5,%3\;add,dc %1,%2,%0\"; + }" + [(set_attr "type" "multi") + (set_attr "length" "8")]) + + (define_insn "addvti3" + [(set (match_operand:TI 0 "register_operand" "=r") + (plus:TI (match_operand:TI 1 "register_operand" "r") + (match_operand:TI 2 "register_operand" "r"))) + (trap_if (ne (plus:OI (sign_extend:OI (match_dup 1)) + (sign_extend:OI (match_dup 2))) + (sign_extend:OI (plus:TI (match_dup 1) + (match_dup 2)))) + (const_int 0))] + "TARGET_64BIT" + "* + { + operands[3] = gen_lowpart (DImode, operands[0]); + operands[4] = gen_lowpart (DImode, operands[1]); + operands[5] = gen_lowpart (DImode, operands[2]); + operands[0] = gen_highpart (DImode, operands[0]); + operands[1] = gen_highpart (DImode, operands[1]); + operands[2] = gen_highpart (DImode, operands[2]); + return \"add %4,%5,%3\;add,dc,tsv %1,%2,%0\"; + }" + [(set_attr "type" "multi") + (set_attr "length" "8")]) + + (define_insn "subti3" + [(set (match_operand:TI 0 "register_operand" "=r") + (minus:TI (match_operand:TI 1 "register_operand" "r") + (match_operand:TI 2 "register_operand" "r")))] + "TARGET_64BIT" + "* + { + operands[3] = gen_lowpart (DImode, operands[0]); + operands[4] = gen_lowpart (DImode, operands[1]); + operands[5] = gen_lowpart (DImode, operands[2]); + operands[0] = gen_highpart (DImode, operands[0]); + operands[1] = gen_highpart (DImode, operands[1]); + operands[2] = gen_highpart (DImode, operands[2]); + return \"sub %4,%5,%3\;sub,db %1,%2,%0\"; + }" + [(set_attr "type" "multi") + (set_attr "length" "8")]) + + (define_insn "subvti3" + [(set (match_operand:TI 0 "register_operand" "=r") + (minus:TI (match_operand:TI 1 "register_operand" "r") + (match_operand:TI 2 "register_operand" "r"))) + (trap_if (ne (minus:OI (sign_extend:OI (match_dup 1)) + (sign_extend:OI (match_dup 2))) + (sign_extend:OI (minus:TI (match_dup 1) + (match_dup 2)))) + (const_int 0))] + "TARGET_64BIT" + "* + { + operands[3] = gen_lowpart (DImode, operands[0]); + operands[4] = gen_lowpart (DImode, operands[1]); + operands[5] = gen_lowpart (DImode, operands[2]); + operands[0] = gen_highpart (DImode, operands[0]); + operands[1] = gen_highpart (DImode, operands[1]); + operands[2] = gen_highpart (DImode, operands[2]); + return \"sub %4,%5,%3\;sub,db,tsv %1,%2,%0\"; + }" + [(set_attr "type" "multi") + (set_attr "length" "8")]) + ;; Trap instructions. (define_insn "trap" *************** *** 5303,5309 **** " { operands[4] = gen_rtx_REG (SImode, TARGET_64BIT ? 2 : 31); ! if (TARGET_PA_11 && !TARGET_DISABLE_FPREGS && !TARGET_SOFT_FLOAT) { rtx scratch = gen_reg_rtx (DImode); operands[1] = force_reg (SImode, operands[1]); --- 5466,5472 ---- " { operands[4] = gen_rtx_REG (SImode, TARGET_64BIT ? 2 : 31); ! if (TARGET_PA_11 && !TARGET_SOFT_FLOAT && !TARGET_SOFT_MULT) { rtx scratch = gen_reg_rtx (DImode); operands[1] = force_reg (SImode, operands[1]); *************** *** 5321,5327 **** [(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") (set_attr "length" "4")]) --- 5484,5490 ---- [(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_SOFT_FLOAT && ! TARGET_SOFT_MULT" "xmpyu %1,%2,%0" [(set_attr "type" "fpmuldbl") (set_attr "length" "4")]) *************** *** 5330,5336 **** [(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" [(set_attr "type" "fpmuldbl") (set_attr "length" "4")]) --- 5493,5499 ---- [(set (match_operand:DI 0 "register_operand" "=f") (mult:DI (zero_extend:DI (match_operand:SI 1 "register_operand" "f")) (match_operand:DI 2 "uint32_operand" "f")))] ! "TARGET_PA_11 && ! TARGET_SOFT_FLOAT && ! TARGET_SOFT_MULT && !TARGET_64BIT" "xmpyu %1,%R2,%0" [(set_attr "type" "fpmuldbl") (set_attr "length" "4")]) *************** *** 5339,5345 **** [(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" [(set_attr "type" "fpmuldbl") (set_attr "length" "4")]) --- 5502,5508 ---- [(set (match_operand:DI 0 "register_operand" "=f") (mult:DI (zero_extend:DI (match_operand:SI 1 "register_operand" "f")) (match_operand:DI 2 "uint32_operand" "f")))] ! "TARGET_PA_11 && ! TARGET_SOFT_FLOAT && ! TARGET_SOFT_MULT && TARGET_64BIT" "xmpyu %1,%2R,%0" [(set_attr "type" "fpmuldbl") (set_attr "length" "4")]) *************** *** 5374,5405 **** [(set (match_operand:DI 0 "register_operand" "") (mult:DI (match_operand:DI 1 "register_operand" "") (match_operand:DI 2 "register_operand" "")))] ! "TARGET_64BIT && ! TARGET_DISABLE_FPREGS && ! TARGET_SOFT_FLOAT" " { rtx low_product = gen_reg_rtx (DImode); rtx cross_product1 = gen_reg_rtx (DImode); rtx cross_product2 = gen_reg_rtx (DImode); - rtx cross_scratch = gen_reg_rtx (DImode); - rtx cross_product = gen_reg_rtx (DImode); rtx op1l, op1r, op2l, op2r; - rtx op1shifted, op2shifted; ! op1shifted = gen_reg_rtx (DImode); ! op2shifted = gen_reg_rtx (DImode); ! op1l = gen_reg_rtx (SImode); ! op1r = gen_reg_rtx (SImode); ! op2l = gen_reg_rtx (SImode); ! op2r = gen_reg_rtx (SImode); ! emit_move_insn (op1shifted, gen_rtx_LSHIFTRT (DImode, operands[1], ! GEN_INT (32))); ! emit_move_insn (op2shifted, gen_rtx_LSHIFTRT (DImode, operands[2], ! GEN_INT (32))); ! op1r = force_reg (SImode, gen_rtx_SUBREG (SImode, operands[1], 4)); ! op2r = force_reg (SImode, gen_rtx_SUBREG (SImode, operands[2], 4)); ! op1l = force_reg (SImode, gen_rtx_SUBREG (SImode, op1shifted, 4)); ! op2l = force_reg (SImode, gen_rtx_SUBREG (SImode, op2shifted, 4)); /* Emit multiplies for the cross products. */ emit_insn (gen_umulsidi3 (cross_product1, op2r, op1l)); --- 5537,5574 ---- [(set (match_operand:DI 0 "register_operand" "") (mult:DI (match_operand:DI 1 "register_operand" "") (match_operand:DI 2 "register_operand" "")))] ! "! optimize_size ! && TARGET_PA_11 ! && ! TARGET_SOFT_FLOAT ! && ! TARGET_SOFT_MULT" " { rtx low_product = gen_reg_rtx (DImode); rtx cross_product1 = gen_reg_rtx (DImode); rtx cross_product2 = gen_reg_rtx (DImode); rtx op1l, op1r, op2l, op2r; ! if (TARGET_64BIT) ! { ! rtx op1shifted = gen_reg_rtx (DImode); ! rtx op2shifted = gen_reg_rtx (DImode); ! emit_move_insn (op1shifted, gen_rtx_LSHIFTRT (DImode, operands[1], ! GEN_INT (32))); ! emit_move_insn (op2shifted, gen_rtx_LSHIFTRT (DImode, operands[2], ! GEN_INT (32))); ! op1r = force_reg (SImode, gen_rtx_SUBREG (SImode, operands[1], 4)); ! op2r = force_reg (SImode, gen_rtx_SUBREG (SImode, operands[2], 4)); ! op1l = force_reg (SImode, gen_rtx_SUBREG (SImode, op1shifted, 4)); ! op2l = force_reg (SImode, gen_rtx_SUBREG (SImode, op2shifted, 4)); ! } ! else ! { ! op1r = force_reg (SImode, gen_lowpart (SImode, operands[1])); ! op2r = force_reg (SImode, gen_lowpart (SImode, operands[2])); ! op1l = force_reg (SImode, gen_highpart (SImode, operands[1])); ! op2l = force_reg (SImode, gen_highpart (SImode, operands[2])); ! } /* Emit multiplies for the cross products. */ emit_insn (gen_umulsidi3 (cross_product1, op2r, op1l)); *************** *** 5408,5420 **** /* Emit a multiply for the low sub-word. */ emit_insn (gen_umulsidi3 (low_product, copy_rtx (op2r), copy_rtx (op1r))); ! /* Sum the cross products and shift them into proper position. */ ! emit_insn (gen_adddi3 (cross_scratch, cross_product1, cross_product2)); ! emit_insn (gen_ashldi3 (cross_product, cross_scratch, GEN_INT (32))); ! /* Add the cross product to the low product and store the result ! into the output operand . */ ! emit_insn (gen_adddi3 (operands[0], cross_product, low_product)); DONE; }") --- 5577,5611 ---- /* Emit a multiply for the low sub-word. */ emit_insn (gen_umulsidi3 (low_product, copy_rtx (op2r), copy_rtx (op1r))); ! if (TARGET_64BIT) ! { ! rtx cross_scratch = gen_reg_rtx (DImode); ! rtx cross_product = gen_reg_rtx (DImode); ! /* Sum the cross products and shift them into proper position. */ ! emit_insn (gen_adddi3 (cross_scratch, cross_product1, cross_product2)); ! emit_insn (gen_ashldi3 (cross_product, cross_scratch, GEN_INT (32))); ! ! /* Add the cross product to the low product and store the result ! into the output operand . */ ! emit_insn (gen_adddi3 (operands[0], cross_product, low_product)); ! } ! else ! { ! rtx cross_scratch = gen_reg_rtx (SImode); ! ! /* Sum cross products. */ ! emit_move_insn (cross_scratch, ! gen_rtx_PLUS (SImode, ! gen_lowpart (SImode, cross_product1), ! gen_lowpart (SImode, cross_product2))); ! emit_move_insn (gen_lowpart (SImode, operands[0]), ! gen_lowpart (SImode, low_product)); ! emit_move_insn (gen_highpart (SImode, operands[0]), ! gen_rtx_PLUS (SImode, ! gen_highpart (SImode, low_product), ! cross_scratch)); ! } DONE; }") *************** *** 5788,5794 **** (neg:DI (match_operand:DI 1 "register_operand" "r")))] "!TARGET_64BIT" "sub %%r0,%R1,%R0\;{subb|sub,b} %%r0,%1,%0" ! [(set_attr "type" "unary") (set_attr "length" "8")]) (define_insn "" --- 5979,5985 ---- (neg:DI (match_operand:DI 1 "register_operand" "r")))] "!TARGET_64BIT" "sub %%r0,%R1,%R0\;{subb|sub,b} %%r0,%1,%0" ! [(set_attr "type" "multi") (set_attr "length" "8")]) (define_insn "" *************** *** 5799,5804 **** --- 5990,6010 ---- [(set_attr "type" "unary") (set_attr "length" "4")]) + (define_insn "negti2" + [(set (match_operand:TI 0 "register_operand" "=r") + (neg:TI (match_operand:TI 1 "register_operand" "r")))] + "TARGET_64BIT" + "* + { + operands[2] = gen_lowpart (DImode, operands[0]); + operands[3] = gen_lowpart (DImode, operands[1]); + operands[0] = gen_highpart (DImode, operands[0]); + operands[1] = gen_highpart (DImode, operands[1]); + return \"sub %%r0,%3,%2\;sub,db %%r0,%1,%0\"; + }" + [(set_attr "type" "multi") + (set_attr "length" "8")]) + (define_expand "negvdi2" [(parallel [(set (match_operand:DI 0 "register_operand" "") (neg:DI (match_operand:DI 1 "register_operand" ""))) *************** *** 5816,5822 **** (const_int 0))] "!TARGET_64BIT" "sub %%r0,%R1,%R0\;{subbo|sub,b,tsv} %%r0,%1,%0" ! [(set_attr "type" "unary") (set_attr "length" "8")]) (define_insn "" --- 6022,6028 ---- (const_int 0))] "!TARGET_64BIT" "sub %%r0,%R1,%R0\;{subbo|sub,b,tsv} %%r0,%1,%0" ! [(set_attr "type" "multi") (set_attr "length" "8")]) (define_insn "" *************** *** 5830,5835 **** --- 6036,6059 ---- [(set_attr "type" "unary") (set_attr "length" "4")]) + (define_insn "negvti2" + [(set (match_operand:TI 0 "register_operand" "=r") + (neg:TI (match_operand:TI 1 "register_operand" "r"))) + (trap_if (ne (neg:OI (sign_extend:OI (match_dup 1))) + (sign_extend:OI (neg:TI (match_dup 1)))) + (const_int 0))] + "TARGET_64BIT" + "* + { + operands[2] = gen_lowpart (DImode, operands[0]); + operands[3] = gen_lowpart (DImode, operands[1]); + operands[0] = gen_highpart (DImode, operands[0]); + operands[1] = gen_highpart (DImode, operands[1]); + return \"sub %%r0,%3,%2\;sub,db,tsv %%r0,%1,%0\"; + }" + [(set_attr "type" "multi") + (set_attr "length" "8")]) + (define_insn "negsi2" [(set (match_operand:SI 0 "register_operand" "=r") (neg:SI (match_operand:SI 1 "register_operand" "r")))] *************** *** 6457,6462 **** --- 6681,6722 ---- operands[1] = force_reg (DImode, operands[1]); }") + (define_expand "ashlti3" + [(set (match_operand:TI 0 "register_operand" "") + (ashift:TI (match_operand:TI 1 "lhs_lshift_operand" "") + (match_operand:TI 2 "arith32_operand" "")))] + "TARGET_64BIT" + { + if (REG_P (operands[0]) && GET_CODE (operands[2]) == CONST_INT) + { + unsigned HOST_WIDE_INT shift = UINTVAL (operands[2]); + rtx dst = operands[0]; + rtx src = force_reg (TImode, operands[1]); + if (shift >= 1 && shift <= 63) + { + emit_insn (gen_shrpd_internal (gen_highpart (DImode, dst), + gen_lowpart (DImode, src), + GEN_INT (64-shift), + gen_highpart (DImode, src), + GEN_INT (shift))); + emit_insn (gen_ashldi3 (gen_lowpart (DImode, dst), + gen_lowpart (DImode, src), + GEN_INT (shift))); + DONE; + } + else if (shift >= 64 && shift <= 127) + { + emit_insn (gen_ashldi3 (gen_highpart (DImode, dst), + gen_lowpart (DImode, src), + GEN_INT (shift - 64))); + emit_move_insn (gen_lowpart (DImode, dst), GEN_INT (0)); + DONE; + } + } + /* Fallback to using optabs.c's expand_doubleword_shift. */ + FAIL; + }) + (define_insn "" [(set (match_operand:DI 0 "register_operand" "=r") (ashift:DI (match_operand:DI 1 "register_operand" "r") *************** *** 6835,6840 **** --- 7095,7109 ---- (match_operand:SI 4 "const_int_operand"))))] "") + (define_expand "shrpd_internal" + [(set (match_operand:DI 0 "register_operand") + (ior:DI + (lshiftrt:DI (match_operand:DI 1 "register_operand") + (match_operand:DI 2 "const_int_operand")) + (ashift:DI (match_operand:DI 3 "register_operand") + (match_operand:DI 4 "const_int_operand"))))] + "TARGET_64BIT") + (define_insn "" [(set (match_operand:SI 0 "register_operand" "=r") (and:SI (ashift:SI (match_operand:SI 1 "register_operand" "r") *************** add,l %2,%3,%3\;bv,n %%r0(%3)" *** 7696,7702 **** if (GET_CODE (op) == SYMBOL_REF) { /* Handle special call to buggy powf function. */ ! if (TARGET_HPUX && !TARGET_DISABLE_FPREGS && !TARGET_SOFT_FLOAT && !strcmp (targetm.strip_name_encoding (XSTR (op, 0)), "powf")) call_powf = true; --- 7965,7971 ---- if (GET_CODE (op) == SYMBOL_REF) { /* Handle special call to buggy powf function. */ ! if (TARGET_HPUX && !TARGET_SOFT_FLOAT && !strcmp (targetm.strip_name_encoding (XSTR (op, 0)), "powf")) call_powf = true; *************** add,l %2,%3,%3\;bv,n %%r0(%3)" *** 10097,10106 **** { if (TARGET_SYNC_LIBCALL) { ! rtx mem = operands[0]; ! rtx val = operands[1]; ! if (pa_maybe_emit_compare_and_swap_exchange_loop (NULL_RTX, mem, val)) ! DONE; } FAIL; }) --- 10366,10377 ---- { if (TARGET_SYNC_LIBCALL) { ! rtx libfunc = optab_libfunc (sync_lock_test_and_set_optab, QImode); ! rtx addr = convert_memory_address (Pmode, XEXP (operands[0], 0)); ! ! emit_library_call (libfunc, LCT_NORMAL, VOIDmode, addr, Pmode, ! operands[1], QImode); ! DONE; } FAIL; }) *************** add,l %2,%3,%3\;bv,n %%r0(%3)" *** 10115,10124 **** { if (TARGET_SYNC_LIBCALL) { ! rtx mem = operands[0]; ! rtx val = operands[1]; ! if (pa_maybe_emit_compare_and_swap_exchange_loop (NULL_RTX, mem, val)) ! DONE; } FAIL; }) --- 10386,10397 ---- { if (TARGET_SYNC_LIBCALL) { ! rtx libfunc = optab_libfunc (sync_lock_test_and_set_optab, HImode); ! rtx addr = convert_memory_address (Pmode, XEXP (operands[0], 0)); ! ! emit_library_call (libfunc, LCT_NORMAL, VOIDmode, addr, Pmode, ! operands[1], HImode); ! DONE; } FAIL; }) *************** add,l %2,%3,%3\;bv,n %%r0(%3)" *** 10133,10142 **** { if (TARGET_SYNC_LIBCALL) { ! rtx mem = operands[0]; ! rtx val = operands[1]; ! if (pa_maybe_emit_compare_and_swap_exchange_loop (NULL_RTX, mem, val)) ! DONE; } FAIL; }) --- 10406,10417 ---- { if (TARGET_SYNC_LIBCALL) { ! rtx libfunc = optab_libfunc (sync_lock_test_and_set_optab, SImode); ! rtx addr = convert_memory_address (Pmode, XEXP (operands[0], 0)); ! ! emit_library_call (libfunc, LCT_NORMAL, VOIDmode, addr, Pmode, ! operands[1], SImode); ! DONE; } FAIL; }) *************** add,l %2,%3,%3\;bv,n %%r0(%3)" *** 10151,10157 **** { enum memmodel model; ! if (TARGET_64BIT || TARGET_DISABLE_FPREGS || TARGET_SOFT_FLOAT) FAIL; model = memmodel_from_int (INTVAL (operands[2])); --- 10426,10432 ---- { enum memmodel model; ! if (TARGET_64BIT || TARGET_SOFT_FLOAT) FAIL; model = memmodel_from_int (INTVAL (operands[2])); *************** add,l %2,%3,%3\;bv,n %%r0(%3)" *** 10167,10173 **** [(set (match_operand:DI 0 "register_operand" "=r") (mem:DI (match_operand:SI 1 "register_operand" "r"))) (clobber (match_scratch:DI 2 "=f"))] ! "!TARGET_64BIT && !TARGET_DISABLE_FPREGS && !TARGET_SOFT_FLOAT" "{fldds|fldd} 0(%1),%2\n\t{fstds|fstd} %2,-16(%%sp)\n\t{ldws|ldw} -16(%%sp),%0\n\t{ldws|ldw} -12(%%sp),%R0" [(set_attr "type" "move") (set_attr "length" "16")]) --- 10442,10448 ---- [(set (match_operand:DI 0 "register_operand" "=r") (mem:DI (match_operand:SI 1 "register_operand" "r"))) (clobber (match_scratch:DI 2 "=f"))] ! "!TARGET_64BIT && !TARGET_SOFT_FLOAT" "{fldds|fldd} 0(%1),%2\n\t{fstds|fstd} %2,-16(%%sp)\n\t{ldws|ldw} -16(%%sp),%0\n\t{ldws|ldw} -12(%%sp),%R0" [(set_attr "type" "move") (set_attr "length" "16")]) *************** add,l %2,%3,%3\;bv,n %%r0(%3)" *** 10184,10196 **** if (TARGET_SYNC_LIBCALL) { ! rtx mem = operands[0]; ! rtx val = operands[1]; ! if (pa_maybe_emit_compare_and_swap_exchange_loop (NULL_RTX, mem, val)) ! DONE; } ! if (TARGET_64BIT || TARGET_DISABLE_FPREGS || TARGET_SOFT_FLOAT) FAIL; model = memmodel_from_int (INTVAL (operands[2])); --- 10459,10473 ---- if (TARGET_SYNC_LIBCALL) { ! rtx libfunc = optab_libfunc (sync_lock_test_and_set_optab, DImode); ! rtx addr = convert_memory_address (Pmode, XEXP (operands[0], 0)); ! ! emit_library_call (libfunc, LCT_NORMAL, VOIDmode, addr, Pmode, ! operands[1], DImode); ! DONE; } ! if (TARGET_64BIT || TARGET_SOFT_FLOAT) FAIL; model = memmodel_from_int (INTVAL (operands[2])); *************** add,l %2,%3,%3\;bv,n %%r0(%3)" *** 10208,10214 **** [(set (mem:DI (match_operand:SI 0 "register_operand" "r,r")) (match_operand:DI 1 "reg_or_0_operand" "M,r")) (clobber (match_scratch:DI 2 "=X,f"))] ! "!TARGET_64BIT && !TARGET_DISABLE_FPREGS && !TARGET_SOFT_FLOAT" "@ {fstds|fstd} %%fr0,0(%0) {stws|stw} %1,-16(%%sp)\n\t{stws|stw} %R1,-12(%%sp)\n\t{fldds|fldd} -16(%%sp),%2\n\t{fstds|fstd} %2,0(%0)" --- 10485,10491 ---- [(set (mem:DI (match_operand:SI 0 "register_operand" "r,r")) (match_operand:DI 1 "reg_or_0_operand" "M,r")) (clobber (match_scratch:DI 2 "=X,f"))] ! "!TARGET_64BIT && !TARGET_SOFT_FLOAT" "@ {fstds|fstd} %%fr0,0(%0) {stws|stw} %1,-16(%%sp)\n\t{stws|stw} %R1,-12(%%sp)\n\t{fldds|fldd} -16(%%sp),%2\n\t{fstds|fstd} %2,0(%0)" diff -Nrcpad gcc-11.2.0/gcc/config/pa/pa.opt gcc-11.3.0/gcc/config/pa/pa.opt *** gcc-11.2.0/gcc/config/pa/pa.opt Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/pa/pa.opt Thu Apr 21 07:58:52 2022 *************** Target Var(TARGET_COHERENT_LDCW) Init(1) *** 50,57 **** Use ldcw/ldcd coherent cache-control hint. mdisable-fpregs ! Target Mask(DISABLE_FPREGS) ! Disable FP regs. mdisable-indexing Target Mask(DISABLE_INDEXING) --- 50,57 ---- Use ldcw/ldcd coherent cache-control hint. mdisable-fpregs ! Target Mask(SOFT_FLOAT) ! Disable FP regs. Equivalent to -msoft-float. mdisable-indexing Target Mask(DISABLE_INDEXING) *************** msoft-float *** 143,148 **** --- 143,152 ---- Target Mask(SOFT_FLOAT) Use software floating point. + msoft-mult + Target Mask(SOFT_MULT) + Use software integer multiplication. + msnake Target RejectNegative Generate PA1.1 code. diff -Nrcpad gcc-11.2.0/gcc/config/riscv/arch-canonicalize gcc-11.3.0/gcc/config/riscv/arch-canonicalize *** gcc-11.2.0/gcc/config/riscv/arch-canonicalize Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/riscv/arch-canonicalize Thu Apr 21 07:58:52 2022 *************** *** 23,49 **** from __future__ import print_function import sys import collections import itertools from functools import reduce ! ! CANONICAL_ORDER = "mafdgqlcbjtpvn" LONG_EXT_PREFIXES = ['z', 's', 'h', 'x'] # # IMPLIED_EXT(ext) -> implied extension list. # IMPLIED_EXT = { ! "d" : ["f"], } ! def arch_canonicalize(arch): # TODO: Support extension version. new_arch = "" if arch[:5] in ['rv32e', 'rv32i', 'rv32g', 'rv64i', 'rv64g']: - # TODO: We should expand g to imad_zifencei once we support newer spec. new_arch = arch[:5].replace("g", "imafd") else: raise Exception("Unexpected arch: `%s`" % arch[:5]) --- 23,55 ---- from __future__ import print_function import sys + import argparse import collections import itertools from functools import reduce ! SUPPORTED_ISA_SPEC = ["2.2", "20190608", "20191213"] ! CANONICAL_ORDER = "imafdgqlcbjtpvn" LONG_EXT_PREFIXES = ['z', 's', 'h', 'x'] # # IMPLIED_EXT(ext) -> implied extension list. # IMPLIED_EXT = { ! "d" : ["f", "zicsr"], ! "f" : ["zicsr"], } ! def arch_canonicalize(arch, isa_spec): # TODO: Support extension version. + is_isa_spec_2p2 = isa_spec == '2.2' new_arch = "" + extra_long_ext = [] if arch[:5] in ['rv32e', 'rv32i', 'rv32g', 'rv64i', 'rv64g']: new_arch = arch[:5].replace("g", "imafd") + if arch[:5] in ['rv32g', 'rv64g']: + if not is_isa_spec_2p2: + extra_long_ext = ['zicsr', 'zifencei'] else: raise Exception("Unexpected arch: `%s`" % arch[:5]) *************** def arch_canonicalize(arch): *** 60,74 **** long_exts = [] std_exts = list(arch[5:]) # # Handle implied extensions. # ! for ext in std_exts + long_exts: ! if ext in IMPLIED_EXT: ! implied_exts = IMPLIED_EXT[ext] ! for implied_ext in implied_exts: ! if implied_ext not in std_exts + long_exts: ! long_exts.append(implied_ext) # Single letter extension might appear in the long_exts list, # becasue we just append extensions list to the arch string. --- 66,89 ---- long_exts = [] std_exts = list(arch[5:]) + long_exts += extra_long_ext + # # Handle implied extensions. # ! any_change = True ! while any_change: ! any_change = False ! for ext in std_exts + long_exts: ! if ext in IMPLIED_EXT: ! implied_exts = IMPLIED_EXT[ext] ! for implied_ext in implied_exts: ! if implied_ext == 'zicsr' and is_isa_spec_2p2: ! continue ! ! if implied_ext not in std_exts + long_exts: ! long_exts.append(implied_ext) ! any_change = True # Single letter extension might appear in the long_exts list, # becasue we just append extensions list to the arch string. *************** def arch_canonicalize(arch): *** 85,90 **** --- 100,108 ---- return (exts.startswith("x"), exts.startswith("zxm"), LONG_EXT_PREFIXES.index(exts[0]), canonical_sort, exts[1:]) + # Removing duplicates. + long_exts = list(set(long_exts)) + # Multi-letter extension must be in lexicographic order. long_exts = list(sorted(filter(lambda x:len(x) != 1, long_exts), key=longext_sort)) *************** def arch_canonicalize(arch): *** 104,114 **** # Concat rest of the multi-char extensions. if long_exts: new_arch += "_" + "_".join(long_exts) return new_arch if len(sys.argv) < 2: print ("Usage: %s [*]" % sys.argv) sys.exit(1) ! for arg in sys.argv[1:]: ! print (arch_canonicalize(arg)) --- 122,141 ---- # Concat rest of the multi-char extensions. if long_exts: new_arch += "_" + "_".join(long_exts) + return new_arch if len(sys.argv) < 2: print ("Usage: %s [*]" % sys.argv) sys.exit(1) ! parser = argparse.ArgumentParser() ! parser.add_argument('-misa-spec', type=str, ! default='20191213', ! choices=SUPPORTED_ISA_SPEC) ! parser.add_argument('arch_strs', nargs=argparse.REMAINDER) ! ! args = parser.parse_args() ! ! for arch in args.arch_strs: ! print (arch_canonicalize(arch, args.misa_spec)) diff -Nrcpad gcc-11.2.0/gcc/config/riscv/multilib-generator gcc-11.3.0/gcc/config/riscv/multilib-generator *** gcc-11.2.0/gcc/config/riscv/multilib-generator Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/riscv/multilib-generator Thu Apr 21 07:58:52 2022 *************** import collections *** 40,60 **** import itertools from functools import reduce import subprocess # # TODO: Add test for this script. # arches = collections.OrderedDict() abis = collections.OrderedDict() required = [] reuse = [] ! def arch_canonicalize(arch): this_file = os.path.abspath(os.path.join( __file__)) arch_can_script = \ os.path.join(os.path.dirname(this_file), "arch-canonicalize") ! proc = subprocess.Popen([sys.executable, arch_can_script, arch], stdout=subprocess.PIPE) out, err = proc.communicate() return out.decode().strip() --- 40,63 ---- import itertools from functools import reduce import subprocess + import argparse # # TODO: Add test for this script. # + SUPPORTED_ISA_SPEC = ["2.2", "20190608", "20191213"] arches = collections.OrderedDict() abis = collections.OrderedDict() required = [] reuse = [] ! def arch_canonicalize(arch, isa_spec): this_file = os.path.abspath(os.path.join( __file__)) arch_can_script = \ os.path.join(os.path.dirname(this_file), "arch-canonicalize") ! proc = subprocess.Popen([sys.executable, arch_can_script, ! '-misa-spec=%s' % isa_spec, arch], stdout=subprocess.PIPE) out, err = proc.communicate() return out.decode().strip() *************** def expand_combination(ext): *** 127,170 **** return ext ! for cfg in sys.argv[1:]: ! try: ! (arch, abi, extra, ext) = cfg.split('-') ! except: ! print ("Invalid configure string %s, ---\n" ! " and can be empty, " ! "e.g. rv32imafd-ilp32--" % cfg) ! sys.exit(1) ! arch = arch_canonicalize (arch) ! arches[arch] = 1 ! abis[abi] = 1 ! extra = list(filter(None, extra.split(','))) ! ext_combs = expand_combination(ext) ! alts = sum([[x] + [x + y for y in ext_combs] for x in [arch] + extra], []) ! alts = list(map(arch_canonicalize, alts)) ! # Drop duplicated entry. ! alts = unique(alts) ! for alt in alts: ! if alt == arch: continue - arches[alt] = 1 - reuse.append('march.%s/mabi.%s=march.%s/mabi.%s' % (arch, abi, alt, abi)) - required.append('march=%s/mabi=%s' % (arch, abi)) ! arch_options = '/'.join(['march=%s' % x for x in arches.keys()]) ! arch_dirnames = ' \\\n'.join(arches.keys()) ! abi_options = '/'.join(['mabi=%s' % x for x in abis.keys()]) ! abi_dirnames = ' \\\n'.join(abis.keys()) prog = sys.argv[0].split('/')[-1] print('# This file was generated by %s with the command:' % prog) print('# %s' % ' '.join(sys.argv)) ! print('MULTILIB_OPTIONS = %s %s' % (arch_options, abi_options)) ! print('MULTILIB_DIRNAMES = %s %s' % (arch_dirnames, abi_dirnames)) print('MULTILIB_REQUIRED = %s' % ' \\\n'.join(required)) print('MULTILIB_REUSE = %s' % ' \\\n'.join(reuse)) --- 130,202 ---- return ext ! multilib_cfgs = filter(lambda x:not x.startswith("--"), sys.argv[1:]) ! options = filter(lambda x:x.startswith("--"), sys.argv[1:]) ! parser = argparse.ArgumentParser() ! parser.add_argument("--cmodel", type=str) ! parser.add_argument('-misa-spec', type=str, ! default='20191213', ! choices=SUPPORTED_ISA_SPEC) ! parser.add_argument("cfgs", type=str, nargs='*') ! args = parser.parse_args() ! if args.cmodel: ! cmodels = [None] + args.cmodel.split(",") ! else: ! cmodels = [None] ! cmodel_options = '/'.join(['mcmodel=%s' % x for x in cmodels[1:]]) ! cmodel_dirnames = ' \\\n'.join(cmodels[1:]) ! ! for cmodel in cmodels: ! for cfg in args.cfgs: ! try: ! (arch, abi, extra, ext) = cfg.split('-') ! except: ! print ("Invalid configure string %s, ---\n" ! " and can be empty, " ! "e.g. rv32imafd-ilp32--" % cfg) ! sys.exit(1) ! ! # Compact code model only support rv64. ! if cmodel == "compact" and arch.startswith("rv32"): continue ! arch = arch_canonicalize (arch, args.misa_spec) ! arches[arch] = 1 ! abis[abi] = 1 ! extra = list(filter(None, extra.split(','))) ! ext_combs = expand_combination(ext) ! alts = sum([[x] + [x + y for y in ext_combs] for x in [arch] + extra], []) ! alts = filter(lambda x: len(x) != 0, alts) ! alts = list(map(lambda a : arch_canonicalize(a, args.misa_spec), alts)) ! # Drop duplicated entry. ! alts = unique(alts) ! ! for alt in alts[1:]: ! if alt == arch: ! continue ! arches[alt] = 1 ! reuse.append('march.%s/mabi.%s=march.%s/mabi.%s' % (arch, abi, alt, abi)) ! ! if cmodel: ! required.append('march=%s/mabi=%s/mcmodel=%s' % (arch, abi, cmodel)) ! else: ! required.append('march=%s/mabi=%s' % (arch, abi)) ! ! arch_options = '/'.join(['march=%s' % x for x in arches.keys()]) ! arch_dirnames = ' \\\n'.join(arches.keys()) ! ! abi_options = '/'.join(['mabi=%s' % x for x in abis.keys()]) ! abi_dirnames = ' \\\n'.join(abis.keys()) prog = sys.argv[0].split('/')[-1] print('# This file was generated by %s with the command:' % prog) print('# %s' % ' '.join(sys.argv)) ! print('MULTILIB_OPTIONS = %s %s %s' % (arch_options, abi_options, cmodel_options)) ! print('MULTILIB_DIRNAMES = %s %s %s' % (arch_dirnames, abi_dirnames, cmodel_dirnames)) print('MULTILIB_REQUIRED = %s' % ' \\\n'.join(required)) print('MULTILIB_REUSE = %s' % ' \\\n'.join(reuse)) diff -Nrcpad gcc-11.2.0/gcc/config/riscv/riscv.c gcc-11.3.0/gcc/config/riscv/riscv.c *** gcc-11.2.0/gcc/config/riscv/riscv.c Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/riscv/riscv.c Thu Apr 21 07:58:52 2022 *************** riscv_modes_tieable_p (machine_mode mode *** 4574,4583 **** static unsigned char riscv_class_max_nregs (reg_class_t rclass, machine_mode mode) { ! if (reg_class_subset_p (FP_REGS, rclass)) return riscv_hard_regno_nregs (FP_REG_FIRST, mode); ! if (reg_class_subset_p (GR_REGS, rclass)) return riscv_hard_regno_nregs (GP_REG_FIRST, mode); return 0; --- 4574,4583 ---- static unsigned char riscv_class_max_nregs (reg_class_t rclass, machine_mode mode) { ! if (reg_class_subset_p (rclass, FP_REGS)) return riscv_hard_regno_nregs (FP_REG_FIRST, mode); ! if (reg_class_subset_p (rclass, GR_REGS)) return riscv_hard_regno_nregs (GP_REG_FIRST, mode); return 0; diff -Nrcpad gcc-11.2.0/gcc/config/riscv/riscv.h gcc-11.3.0/gcc/config/riscv/riscv.h *** gcc-11.2.0/gcc/config/riscv/riscv.h Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/riscv/riscv.h Thu Apr 21 07:58:52 2022 *************** extern const char *riscv_default_mtune ( *** 60,65 **** --- 60,66 ---- --with-arch is ignored if -march or -mcpu is specified. --with-abi is ignored if -mabi is specified. --with-tune is ignored if -mtune or -mcpu is specified. + --with-isa-spec is ignored if -misa-spec is specified. But using default -march/-mtune value if -mcpu don't have valid option. */ #define OPTION_DEFAULT_SPECS \ *************** extern const char *riscv_default_mtune ( *** 70,75 **** --- 71,77 ---- " %{!mcpu=*:-march=%(VALUE)}" \ " %{mcpu=*:%:riscv_expand_arch_from_cpu(%* %(VALUE))}}" }, \ {"abi", "%{!mabi=*:-mabi=%(VALUE)}" }, \ + {"isa_spec", "%{!misa-spec=*:-misa-spec=%(VALUE)}" }, \ #ifdef IN_LIBGCC2 #undef TARGET_64BIT diff -Nrcpad gcc-11.2.0/gcc/config/riscv/t-riscv gcc-11.3.0/gcc/config/riscv/t-riscv *** gcc-11.2.0/gcc/config/riscv/t-riscv Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/riscv/t-riscv Thu Apr 21 07:58:52 2022 *************** riscv-builtins.o: $(srcdir)/config/riscv *** 6,12 **** $(srcdir)/config/riscv/riscv-builtins.c riscv-sr.o: $(srcdir)/config/riscv/riscv-sr.c $(CONFIG_H) \ ! $(SYSTEM_H) $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \ $(srcdir)/config/riscv/riscv-sr.c --- 6,12 ---- $(srcdir)/config/riscv/riscv-builtins.c riscv-sr.o: $(srcdir)/config/riscv/riscv-sr.c $(CONFIG_H) \ ! $(SYSTEM_H) $(TM_H) $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \ $(srcdir)/config/riscv/riscv-sr.c diff -Nrcpad gcc-11.2.0/gcc/config/rs6000/altivec.h gcc-11.3.0/gcc/config/rs6000/altivec.h *** gcc-11.2.0/gcc/config/rs6000/altivec.h Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/rs6000/altivec.h Thu Apr 21 07:58:52 2022 *************** *** 129,135 **** #define vec_vcfux __builtin_vec_vcfux #define vec_cts __builtin_vec_cts #define vec_ctu __builtin_vec_ctu ! #define vec_cpsgn __builtin_vec_copysign #define vec_double __builtin_vec_double #define vec_doublee __builtin_vec_doublee #define vec_doubleo __builtin_vec_doubleo --- 129,135 ---- #define vec_vcfux __builtin_vec_vcfux #define vec_cts __builtin_vec_cts #define vec_ctu __builtin_vec_ctu ! #define vec_cpsgn(x,y) __builtin_vec_copysign(y,x) #define vec_double __builtin_vec_double #define vec_doublee __builtin_vec_doublee #define vec_doubleo __builtin_vec_doubleo diff -Nrcpad gcc-11.2.0/gcc/config/rs6000/altivec.md gcc-11.3.0/gcc/config/rs6000/altivec.md *** gcc-11.2.0/gcc/config/rs6000/altivec.md Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/rs6000/altivec.md Thu Apr 21 07:58:52 2022 *************** *** 181,187 **** UNSPEC_SLDB UNSPEC_SRDB UNSPEC_XXSPLTIW ! UNSPEC_XXSPLTID UNSPEC_XXSPLTI32DX UNSPEC_XXBLEND UNSPEC_XXPERMX --- 181,187 ---- UNSPEC_SLDB UNSPEC_SRDB UNSPEC_XXSPLTIW ! UNSPEC_XXSPLTIDP UNSPEC_XXSPLTI32DX UNSPEC_XXBLEND UNSPEC_XXPERMX *************** *** 854,860 **** UNSPEC_XXSPLTIW))] "TARGET_POWER10" "xxspltiw %x0,%1" ! [(set_attr "type" "vecsimple") (set_attr "prefixed" "yes")]) (define_expand "xxspltiw_v4sf" --- 854,860 ---- UNSPEC_XXSPLTIW))] "TARGET_POWER10" "xxspltiw %x0,%1" ! [(set_attr "type" "vecperm") (set_attr "prefixed" "yes")]) (define_expand "xxspltiw_v4sf" *************** *** 874,886 **** UNSPEC_XXSPLTIW))] "TARGET_POWER10" "xxspltiw %x0,%1" ! [(set_attr "type" "vecsimple") (set_attr "prefixed" "yes")]) (define_expand "xxspltidp_v2df" [(set (match_operand:V2DF 0 "register_operand" ) (unspec:V2DF [(match_operand:SF 1 "const_double_operand")] ! UNSPEC_XXSPLTID))] "TARGET_POWER10" { long value = rs6000_const_f32_to_i32 (operands[1]); --- 874,886 ---- UNSPEC_XXSPLTIW))] "TARGET_POWER10" "xxspltiw %x0,%1" ! [(set_attr "type" "vecperm") (set_attr "prefixed" "yes")]) (define_expand "xxspltidp_v2df" [(set (match_operand:V2DF 0 "register_operand" ) (unspec:V2DF [(match_operand:SF 1 "const_double_operand")] ! UNSPEC_XXSPLTIDP))] "TARGET_POWER10" { long value = rs6000_const_f32_to_i32 (operands[1]); *************** *** 891,900 **** (define_insn "xxspltidp_v2df_inst" [(set (match_operand:V2DF 0 "register_operand" "=wa") (unspec:V2DF [(match_operand:SI 1 "c32bit_cint_operand" "n")] ! UNSPEC_XXSPLTID))] "TARGET_POWER10" "xxspltidp %x0,%1" ! [(set_attr "type" "vecsimple") (set_attr "prefixed" "yes")]) (define_expand "xxsplti32dx_v4si" --- 891,900 ---- (define_insn "xxspltidp_v2df_inst" [(set (match_operand:V2DF 0 "register_operand" "=wa") (unspec:V2DF [(match_operand:SI 1 "c32bit_cint_operand" "n")] ! UNSPEC_XXSPLTIDP))] "TARGET_POWER10" "xxspltidp %x0,%1" ! [(set_attr "type" "vecperm") (set_attr "prefixed" "yes")]) (define_expand "xxsplti32dx_v4si" *************** *** 914,920 **** GEN_INT (index), operands[3])); DONE; } ! [(set_attr "type" "vecsimple")]) (define_insn "xxsplti32dx_v4si_inst" [(set (match_operand:V4SI 0 "register_operand" "=wa") --- 914,920 ---- GEN_INT (index), operands[3])); DONE; } ! [(set_attr "type" "vecperm")]) (define_insn "xxsplti32dx_v4si_inst" [(set (match_operand:V4SI 0 "register_operand" "=wa") *************** *** 924,930 **** UNSPEC_XXSPLTI32DX))] "TARGET_POWER10" "xxsplti32dx %x0,%2,%3" ! [(set_attr "type" "vecsimple") (set_attr "prefixed" "yes")]) (define_expand "xxsplti32dx_v4sf" --- 924,930 ---- UNSPEC_XXSPLTI32DX))] "TARGET_POWER10" "xxsplti32dx %x0,%2,%3" ! [(set_attr "type" "vecperm") (set_attr "prefixed" "yes")]) (define_expand "xxsplti32dx_v4sf" *************** *** 953,959 **** UNSPEC_XXSPLTI32DX))] "TARGET_POWER10" "xxsplti32dx %x0,%2,%3" ! [(set_attr "type" "vecsimple") (set_attr "prefixed" "yes")]) (define_insn "xxblend_" --- 953,959 ---- UNSPEC_XXSPLTI32DX))] "TARGET_POWER10" "xxsplti32dx %x0,%2,%3" ! [(set_attr "type" "vecperm") (set_attr "prefixed" "yes")]) (define_insn "xxblend_" *************** *** 964,970 **** UNSPEC_XXBLEND))] "TARGET_POWER10" "xxblendv %x0,%x1,%x2,%x3" ! [(set_attr "type" "vecsimple") (set_attr "prefixed" "yes")]) (define_expand "xxpermx" --- 964,970 ---- UNSPEC_XXBLEND))] "TARGET_POWER10" "xxblendv %x0,%x1,%x2,%x3" ! [(set_attr "type" "vecperm") (set_attr "prefixed" "yes")]) (define_expand "xxpermx" *************** *** 998,1004 **** DONE; } ! [(set_attr "type" "vecsimple")]) (define_insn "xxpermx_inst" [(set (match_operand:V2DI 0 "register_operand" "+v") --- 998,1004 ---- DONE; } ! [(set_attr "type" "vecperm")]) (define_insn "xxpermx_inst" [(set (match_operand:V2DI 0 "register_operand" "+v") *************** *** 1009,1015 **** UNSPEC_XXPERMX))] "TARGET_POWER10" "xxpermx %x0,%x1,%x2,%x3,%4" ! [(set_attr "type" "vecsimple") (set_attr "prefixed" "yes")]) (define_expand "vstrir_" --- 1009,1015 ---- UNSPEC_XXPERMX))] "TARGET_POWER10" "xxpermx %x0,%x1,%x2,%x3,%4" ! [(set_attr "type" "vecperm") (set_attr "prefixed" "yes")]) (define_expand "vstrir_" *************** *** 3871,3877 **** UNSPEC_XXEVAL))] "TARGET_POWER10" "xxeval %0,%1,%2,%3,%4" ! [(set_attr "type" "vecsimple") (set_attr "prefixed" "yes")]) (define_expand "vec_unpacku_hi_v16qi" --- 3871,3877 ---- UNSPEC_XXEVAL))] "TARGET_POWER10" "xxeval %0,%1,%2,%3,%4" ! [(set_attr "type" "vecperm") (set_attr "prefixed" "yes")]) (define_expand "vec_unpacku_hi_v16qi" diff -Nrcpad gcc-11.2.0/gcc/config/rs6000/darwin.h gcc-11.3.0/gcc/config/rs6000/darwin.h *** gcc-11.2.0/gcc/config/rs6000/darwin.h Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/rs6000/darwin.h Thu Apr 21 07:58:52 2022 *************** *** 203,209 **** /* Make both r2 and r13 available for allocation. */ #define FIXED_R2 0 ! #define FIXED_R13 0 /* Base register for access to local variables of the function. */ --- 203,209 ---- /* Make both r2 and r13 available for allocation. */ #define FIXED_R2 0 ! #define FIXED_R13 TARGET_64BIT /* Base register for access to local variables of the function. */ *************** *** 213,218 **** --- 213,221 ---- #undef RS6000_PIC_OFFSET_TABLE_REGNUM #define RS6000_PIC_OFFSET_TABLE_REGNUM 31 + #undef FIRST_SAVED_GP_REGNO + #define FIRST_SAVED_GP_REGNO 13 + /* Darwin's stack must remain 16-byte aligned for both 32 and 64 bit ABIs. */ diff -Nrcpad gcc-11.2.0/gcc/config/rs6000/darwin.md gcc-11.3.0/gcc/config/rs6000/darwin.md *** gcc-11.2.0/gcc/config/rs6000/darwin.md Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/rs6000/darwin.md Thu Apr 21 07:58:52 2022 *************** You should have received a copy of the G *** 121,141 **** stw %0,lo16(%2)(%1)" [(set_attr "type" "store")]) - ;; 64-bit MachO load/store support - ;; Mach-O PIC. (define_insn "@macho_high_" [(set (match_operand:P 0 "gpc_reg_operand" "=b*r") (high:P (match_operand 1 "" "")))] ! "TARGET_MACHO && (DEFAULT_ABI == ABI_DARWIN)" "lis %0,ha16(%1)") (define_insn "@macho_low_" [(set (match_operand:P 0 "gpc_reg_operand" "=r") (lo_sum:P (match_operand:P 1 "gpc_reg_operand" "b") (match_operand 2 "" "")))] ! "TARGET_MACHO && (DEFAULT_ABI == ABI_DARWIN)" "la %0,lo16(%2)(%1)") (define_split --- 121,152 ---- stw %0,lo16(%2)(%1)" [(set_attr "type" "store")]) ;; Mach-O PIC. (define_insn "@macho_high_" [(set (match_operand:P 0 "gpc_reg_operand" "=b*r") (high:P (match_operand 1 "" "")))] ! "TARGET_MACHO && (DEFAULT_ABI == ABI_DARWIN) && !flag_pic" "lis %0,ha16(%1)") (define_insn "@macho_low_" [(set (match_operand:P 0 "gpc_reg_operand" "=r") (lo_sum:P (match_operand:P 1 "gpc_reg_operand" "b") (match_operand 2 "" "")))] ! "TARGET_MACHO && (DEFAULT_ABI == ABI_DARWIN) && !flag_pic" ! "la %0,lo16(%2)(%1)") ! ! (define_insn "@machopic_high_" ! [(set (match_operand:P 0 "gpc_reg_operand" "=b*r") ! (high:P (match_operand 1 "macho_pic_address" "")))] ! "TARGET_MACHO && flag_pic" ! "lis %0,ha16(%1)") ! ! (define_insn "@machopic_low_" ! [(set (match_operand:P 0 "gpc_reg_operand" "=r") ! (lo_sum:P (match_operand:P 1 "gpc_reg_operand" "b") ! (match_operand 2 "macho_pic_address" "")))] ! "TARGET_MACHO && flag_pic" "la %0,lo16(%2)(%1)") (define_split diff -Nrcpad gcc-11.2.0/gcc/config/rs6000/driver-rs6000.c gcc-11.3.0/gcc/config/rs6000/driver-rs6000.c *** gcc-11.2.0/gcc/config/rs6000/driver-rs6000.c Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/rs6000/driver-rs6000.c Thu Apr 21 07:58:52 2022 *************** detect_processor_aix (void) *** 418,423 **** --- 418,426 ---- case 0x20000: return "power9"; + case 0x40000: + return "power10"; + default: return "powerpc"; } diff -Nrcpad gcc-11.2.0/gcc/config/rs6000/fusion.md gcc-11.3.0/gcc/config/rs6000/fusion.md *** gcc-11.2.0/gcc/config/rs6000/fusion.md Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/rs6000/fusion.md Thu Apr 21 07:58:52 2022 *************** *** 25,31 **** (compare:CC (match_operand:DI 1 "ds_form_mem_operand" "m") (match_operand:DI 3 "const_m1_to_1_operand" "n"))) (clobber (match_scratch:DI 0 "=r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_LD_CMPI)" "ld%X1 %0,%1\;cmpdi %2,%0,%3" "&& reload_completed && (cc_reg_not_cr0_operand (operands[2], CCmode) --- 25,31 ---- (compare:CC (match_operand:DI 1 "ds_form_mem_operand" "m") (match_operand:DI 3 "const_m1_to_1_operand" "n"))) (clobber (match_scratch:DI 0 "=r"))] ! "(TARGET_P10_FUSION)" "ld%X1 %0,%1\;cmpdi %2,%0,%3" "&& reload_completed && (cc_reg_not_cr0_operand (operands[2], CCmode) *************** *** 46,52 **** (compare:CCUNS (match_operand:DI 1 "ds_form_mem_operand" "m") (match_operand:DI 3 "const_0_to_1_operand" "n"))) (clobber (match_scratch:DI 0 "=r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_LD_CMPI)" "ld%X1 %0,%1\;cmpldi %2,%0,%3" "&& reload_completed && (cc_reg_not_cr0_operand (operands[2], CCmode) --- 46,52 ---- (compare:CCUNS (match_operand:DI 1 "ds_form_mem_operand" "m") (match_operand:DI 3 "const_0_to_1_operand" "n"))) (clobber (match_scratch:DI 0 "=r"))] ! "(TARGET_P10_FUSION)" "ld%X1 %0,%1\;cmpldi %2,%0,%3" "&& reload_completed && (cc_reg_not_cr0_operand (operands[2], CCmode) *************** *** 67,73 **** (compare:CC (match_operand:DI 1 "ds_form_mem_operand" "m") (match_operand:DI 3 "const_m1_to_1_operand" "n"))) (set (match_operand:DI 0 "gpc_reg_operand" "=r") (match_dup 1))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_LD_CMPI)" "ld%X1 %0,%1\;cmpdi %2,%0,%3" "&& reload_completed && (cc_reg_not_cr0_operand (operands[2], CCmode) --- 67,73 ---- (compare:CC (match_operand:DI 1 "ds_form_mem_operand" "m") (match_operand:DI 3 "const_m1_to_1_operand" "n"))) (set (match_operand:DI 0 "gpc_reg_operand" "=r") (match_dup 1))] ! "(TARGET_P10_FUSION)" "ld%X1 %0,%1\;cmpdi %2,%0,%3" "&& reload_completed && (cc_reg_not_cr0_operand (operands[2], CCmode) *************** *** 88,94 **** (compare:CCUNS (match_operand:DI 1 "ds_form_mem_operand" "m") (match_operand:DI 3 "const_0_to_1_operand" "n"))) (set (match_operand:DI 0 "gpc_reg_operand" "=r") (match_dup 1))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_LD_CMPI)" "ld%X1 %0,%1\;cmpldi %2,%0,%3" "&& reload_completed && (cc_reg_not_cr0_operand (operands[2], CCmode) --- 88,94 ---- (compare:CCUNS (match_operand:DI 1 "ds_form_mem_operand" "m") (match_operand:DI 3 "const_0_to_1_operand" "n"))) (set (match_operand:DI 0 "gpc_reg_operand" "=r") (match_dup 1))] ! "(TARGET_P10_FUSION)" "ld%X1 %0,%1\;cmpldi %2,%0,%3" "&& reload_completed && (cc_reg_not_cr0_operand (operands[2], CCmode) *************** *** 109,115 **** (compare:CC (match_operand:SI 1 "ds_form_mem_operand" "m") (match_operand:SI 3 "const_m1_to_1_operand" "n"))) (clobber (match_scratch:SI 0 "=r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_LD_CMPI)" "lwa%X1 %0,%1\;cmpdi %2,%0,%3" "&& reload_completed && (cc_reg_not_cr0_operand (operands[2], CCmode) --- 109,115 ---- (compare:CC (match_operand:SI 1 "ds_form_mem_operand" "m") (match_operand:SI 3 "const_m1_to_1_operand" "n"))) (clobber (match_scratch:SI 0 "=r"))] ! "(TARGET_P10_FUSION)" "lwa%X1 %0,%1\;cmpdi %2,%0,%3" "&& reload_completed && (cc_reg_not_cr0_operand (operands[2], CCmode) *************** *** 130,136 **** (compare:CCUNS (match_operand:SI 1 "non_update_memory_operand" "m") (match_operand:SI 3 "const_0_to_1_operand" "n"))) (clobber (match_scratch:SI 0 "=r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_LD_CMPI)" "lwz%X1 %0,%1\;cmpldi %2,%0,%3" "&& reload_completed && (cc_reg_not_cr0_operand (operands[2], CCmode) --- 130,136 ---- (compare:CCUNS (match_operand:SI 1 "non_update_memory_operand" "m") (match_operand:SI 3 "const_0_to_1_operand" "n"))) (clobber (match_scratch:SI 0 "=r"))] ! "(TARGET_P10_FUSION)" "lwz%X1 %0,%1\;cmpldi %2,%0,%3" "&& reload_completed && (cc_reg_not_cr0_operand (operands[2], CCmode) *************** *** 151,157 **** (compare:CC (match_operand:SI 1 "ds_form_mem_operand" "m") (match_operand:SI 3 "const_m1_to_1_operand" "n"))) (set (match_operand:SI 0 "gpc_reg_operand" "=r") (match_dup 1))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_LD_CMPI)" "lwa%X1 %0,%1\;cmpdi %2,%0,%3" "&& reload_completed && (cc_reg_not_cr0_operand (operands[2], CCmode) --- 151,157 ---- (compare:CC (match_operand:SI 1 "ds_form_mem_operand" "m") (match_operand:SI 3 "const_m1_to_1_operand" "n"))) (set (match_operand:SI 0 "gpc_reg_operand" "=r") (match_dup 1))] ! "(TARGET_P10_FUSION)" "lwa%X1 %0,%1\;cmpdi %2,%0,%3" "&& reload_completed && (cc_reg_not_cr0_operand (operands[2], CCmode) *************** *** 172,178 **** (compare:CCUNS (match_operand:SI 1 "non_update_memory_operand" "m") (match_operand:SI 3 "const_0_to_1_operand" "n"))) (set (match_operand:SI 0 "gpc_reg_operand" "=r") (match_dup 1))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_LD_CMPI)" "lwz%X1 %0,%1\;cmpldi %2,%0,%3" "&& reload_completed && (cc_reg_not_cr0_operand (operands[2], CCmode) --- 172,178 ---- (compare:CCUNS (match_operand:SI 1 "non_update_memory_operand" "m") (match_operand:SI 3 "const_0_to_1_operand" "n"))) (set (match_operand:SI 0 "gpc_reg_operand" "=r") (match_dup 1))] ! "(TARGET_P10_FUSION)" "lwz%X1 %0,%1\;cmpldi %2,%0,%3" "&& reload_completed && (cc_reg_not_cr0_operand (operands[2], CCmode) *************** *** 193,199 **** (compare:CC (match_operand:SI 1 "ds_form_mem_operand" "m") (match_operand:SI 3 "const_m1_to_1_operand" "n"))) (set (match_operand:EXTSI 0 "gpc_reg_operand" "=r") (sign_extend:EXTSI (match_dup 1)))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_LD_CMPI)" "lwa%X1 %0,%1\;cmpdi %2,%0,%3" "&& reload_completed && (cc_reg_not_cr0_operand (operands[2], CCmode) --- 193,199 ---- (compare:CC (match_operand:SI 1 "ds_form_mem_operand" "m") (match_operand:SI 3 "const_m1_to_1_operand" "n"))) (set (match_operand:EXTSI 0 "gpc_reg_operand" "=r") (sign_extend:EXTSI (match_dup 1)))] ! "(TARGET_P10_FUSION)" "lwa%X1 %0,%1\;cmpdi %2,%0,%3" "&& reload_completed && (cc_reg_not_cr0_operand (operands[2], CCmode) *************** *** 214,220 **** (compare:CCUNS (match_operand:SI 1 "non_update_memory_operand" "m") (match_operand:SI 3 "const_0_to_1_operand" "n"))) (set (match_operand:EXTSI 0 "gpc_reg_operand" "=r") (zero_extend:EXTSI (match_dup 1)))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_LD_CMPI)" "lwz%X1 %0,%1\;cmpldi %2,%0,%3" "&& reload_completed && (cc_reg_not_cr0_operand (operands[2], CCmode) --- 214,220 ---- (compare:CCUNS (match_operand:SI 1 "non_update_memory_operand" "m") (match_operand:SI 3 "const_0_to_1_operand" "n"))) (set (match_operand:EXTSI 0 "gpc_reg_operand" "=r") (zero_extend:EXTSI (match_dup 1)))] ! "(TARGET_P10_FUSION)" "lwz%X1 %0,%1\;cmpldi %2,%0,%3" "&& reload_completed && (cc_reg_not_cr0_operand (operands[2], CCmode) *************** *** 235,241 **** (compare:CC (match_operand:HI 1 "non_update_memory_operand" "m") (match_operand:HI 3 "const_m1_to_1_operand" "n"))) (clobber (match_scratch:GPR 0 "=r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_LD_CMPI)" "lha%X1 %0,%1\;cmpdi %2,%0,%3" "&& reload_completed && (cc_reg_not_cr0_operand (operands[2], CCmode) --- 235,241 ---- (compare:CC (match_operand:HI 1 "non_update_memory_operand" "m") (match_operand:HI 3 "const_m1_to_1_operand" "n"))) (clobber (match_scratch:GPR 0 "=r"))] ! "(TARGET_P10_FUSION)" "lha%X1 %0,%1\;cmpdi %2,%0,%3" "&& reload_completed && (cc_reg_not_cr0_operand (operands[2], CCmode) *************** *** 256,262 **** (compare:CCUNS (match_operand:HI 1 "non_update_memory_operand" "m") (match_operand:HI 3 "const_0_to_1_operand" "n"))) (clobber (match_scratch:GPR 0 "=r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_LD_CMPI)" "lhz%X1 %0,%1\;cmpldi %2,%0,%3" "&& reload_completed && (cc_reg_not_cr0_operand (operands[2], CCmode) --- 256,262 ---- (compare:CCUNS (match_operand:HI 1 "non_update_memory_operand" "m") (match_operand:HI 3 "const_0_to_1_operand" "n"))) (clobber (match_scratch:GPR 0 "=r"))] ! "(TARGET_P10_FUSION)" "lhz%X1 %0,%1\;cmpldi %2,%0,%3" "&& reload_completed && (cc_reg_not_cr0_operand (operands[2], CCmode) *************** *** 277,283 **** (compare:CC (match_operand:HI 1 "non_update_memory_operand" "m") (match_operand:HI 3 "const_m1_to_1_operand" "n"))) (set (match_operand:EXTHI 0 "gpc_reg_operand" "=r") (sign_extend:EXTHI (match_dup 1)))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_LD_CMPI)" "lha%X1 %0,%1\;cmpdi %2,%0,%3" "&& reload_completed && (cc_reg_not_cr0_operand (operands[2], CCmode) --- 277,283 ---- (compare:CC (match_operand:HI 1 "non_update_memory_operand" "m") (match_operand:HI 3 "const_m1_to_1_operand" "n"))) (set (match_operand:EXTHI 0 "gpc_reg_operand" "=r") (sign_extend:EXTHI (match_dup 1)))] ! "(TARGET_P10_FUSION)" "lha%X1 %0,%1\;cmpdi %2,%0,%3" "&& reload_completed && (cc_reg_not_cr0_operand (operands[2], CCmode) *************** *** 298,304 **** (compare:CCUNS (match_operand:HI 1 "non_update_memory_operand" "m") (match_operand:HI 3 "const_0_to_1_operand" "n"))) (set (match_operand:EXTHI 0 "gpc_reg_operand" "=r") (zero_extend:EXTHI (match_dup 1)))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_LD_CMPI)" "lhz%X1 %0,%1\;cmpldi %2,%0,%3" "&& reload_completed && (cc_reg_not_cr0_operand (operands[2], CCmode) --- 298,304 ---- (compare:CCUNS (match_operand:HI 1 "non_update_memory_operand" "m") (match_operand:HI 3 "const_0_to_1_operand" "n"))) (set (match_operand:EXTHI 0 "gpc_reg_operand" "=r") (zero_extend:EXTHI (match_dup 1)))] ! "(TARGET_P10_FUSION)" "lhz%X1 %0,%1\;cmpldi %2,%0,%3" "&& reload_completed && (cc_reg_not_cr0_operand (operands[2], CCmode) *************** *** 319,325 **** (compare:CCUNS (match_operand:QI 1 "non_update_memory_operand" "m") (match_operand:QI 3 "const_0_to_1_operand" "n"))) (clobber (match_scratch:GPR 0 "=r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_LD_CMPI)" "lbz%X1 %0,%1\;cmpldi %2,%0,%3" "&& reload_completed && (cc_reg_not_cr0_operand (operands[2], CCmode) --- 319,325 ---- (compare:CCUNS (match_operand:QI 1 "non_update_memory_operand" "m") (match_operand:QI 3 "const_0_to_1_operand" "n"))) (clobber (match_scratch:GPR 0 "=r"))] ! "(TARGET_P10_FUSION)" "lbz%X1 %0,%1\;cmpldi %2,%0,%3" "&& reload_completed && (cc_reg_not_cr0_operand (operands[2], CCmode) *************** *** 340,346 **** (compare:CCUNS (match_operand:QI 1 "non_update_memory_operand" "m") (match_operand:QI 3 "const_0_to_1_operand" "n"))) (set (match_operand:GPR 0 "gpc_reg_operand" "=r") (zero_extend:GPR (match_dup 1)))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_LD_CMPI)" "lbz%X1 %0,%1\;cmpldi %2,%0,%3" "&& reload_completed && (cc_reg_not_cr0_operand (operands[2], CCmode) --- 340,346 ---- (compare:CCUNS (match_operand:QI 1 "non_update_memory_operand" "m") (match_operand:QI 3 "const_0_to_1_operand" "n"))) (set (match_operand:GPR 0 "gpc_reg_operand" "=r") (zero_extend:GPR (match_dup 1)))] ! "(TARGET_P10_FUSION)" "lbz%X1 %0,%1\;cmpldi %2,%0,%3" "&& reload_completed && (cc_reg_not_cr0_operand (operands[2], CCmode) *************** *** 363,369 **** (match_operand:GPR 1 "gpc_reg_operand" "%r,r,r,r")) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r"))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ and %3,%1,%0\;and %3,%3,%2 and %3,%1,%0\;and %3,%3,%2 --- 363,369 ---- (match_operand:GPR 1 "gpc_reg_operand" "%r,r,r,r")) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r"))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ and %3,%1,%0\;and %3,%3,%2 and %3,%1,%0\;and %3,%3,%2 *************** *** 381,387 **** (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r"))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ andc %3,%1,%0\;and %3,%3,%2 andc %3,%1,%0\;and %3,%3,%2 --- 381,387 ---- (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r"))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ andc %3,%1,%0\;and %3,%3,%2 andc %3,%1,%0\;and %3,%3,%2 *************** *** 399,405 **** (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r"))) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r"))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ eqv %3,%1,%0\;and %3,%3,%2 eqv %3,%1,%0\;and %3,%3,%2 --- 399,405 ---- (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r"))) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r"))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ eqv %3,%1,%0\;and %3,%3,%2 eqv %3,%1,%0\;and %3,%3,%2 *************** *** 417,423 **** (not:GPR (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r"))) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r"))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ nand %3,%1,%0\;and %3,%3,%2 nand %3,%1,%0\;and %3,%3,%2 --- 417,423 ---- (not:GPR (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r"))) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r"))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ nand %3,%1,%0\;and %3,%3,%2 nand %3,%1,%0\;and %3,%3,%2 *************** *** 435,441 **** (not:GPR (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r"))) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r"))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ nor %3,%1,%0\;and %3,%3,%2 nor %3,%1,%0\;and %3,%3,%2 --- 435,441 ---- (not:GPR (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r"))) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r"))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ nor %3,%1,%0\;and %3,%3,%2 nor %3,%1,%0\;and %3,%3,%2 *************** *** 453,459 **** (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r"))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ or %3,%1,%0\;and %3,%3,%2 or %3,%1,%0\;and %3,%3,%2 --- 453,459 ---- (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r"))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ or %3,%1,%0\;and %3,%3,%2 or %3,%1,%0\;and %3,%3,%2 *************** *** 471,477 **** (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r"))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ orc %3,%1,%0\;and %3,%3,%2 orc %3,%1,%0\;and %3,%3,%2 --- 471,477 ---- (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r"))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ orc %3,%1,%0\;and %3,%3,%2 orc %3,%1,%0\;and %3,%3,%2 *************** *** 489,495 **** (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r"))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ xor %3,%1,%0\;and %3,%3,%2 xor %3,%1,%0\;and %3,%3,%2 --- 489,495 ---- (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r"))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ xor %3,%1,%0\;and %3,%3,%2 xor %3,%1,%0\;and %3,%3,%2 *************** *** 507,513 **** (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r"))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_ADDLOG)" "@ add %3,%1,%0\;and %3,%3,%2 add %3,%1,%0\;and %3,%3,%2 --- 507,513 ---- (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r"))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ add %3,%1,%0\;and %3,%3,%2 add %3,%1,%0\;and %3,%3,%2 *************** *** 525,531 **** (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r"))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_ADDLOG)" "@ subf %3,%1,%0\;and %3,%3,%2 subf %3,%1,%0\;and %3,%3,%2 --- 525,531 ---- (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r"))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ subf %3,%1,%0\;and %3,%3,%2 subf %3,%1,%0\;and %3,%3,%2 *************** *** 543,549 **** (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")) (not:GPR (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ and %3,%1,%0\;andc %3,%3,%2 and %3,%1,%0\;andc %3,%3,%2 --- 543,549 ---- (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")) (not:GPR (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ and %3,%1,%0\;andc %3,%3,%2 and %3,%1,%0\;andc %3,%3,%2 *************** *** 561,567 **** (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")) (not:GPR (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ andc %3,%1,%0\;andc %3,%3,%2 andc %3,%1,%0\;andc %3,%3,%2 --- 561,567 ---- (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")) (not:GPR (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ andc %3,%1,%0\;andc %3,%3,%2 andc %3,%1,%0\;andc %3,%3,%2 *************** *** 579,585 **** (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r"))) (not:GPR (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ eqv %3,%1,%0\;andc %3,%3,%2 eqv %3,%1,%0\;andc %3,%3,%2 --- 579,585 ---- (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r"))) (not:GPR (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ eqv %3,%1,%0\;andc %3,%3,%2 eqv %3,%1,%0\;andc %3,%3,%2 *************** *** 597,603 **** (not:GPR (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r"))) (not:GPR (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ nand %3,%1,%0\;andc %3,%3,%2 nand %3,%1,%0\;andc %3,%3,%2 --- 597,603 ---- (not:GPR (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r"))) (not:GPR (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ nand %3,%1,%0\;andc %3,%3,%2 nand %3,%1,%0\;andc %3,%3,%2 *************** *** 615,621 **** (not:GPR (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r"))) (not:GPR (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ nor %3,%1,%0\;andc %3,%3,%2 nor %3,%1,%0\;andc %3,%3,%2 --- 615,621 ---- (not:GPR (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r"))) (not:GPR (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ nor %3,%1,%0\;andc %3,%3,%2 nor %3,%1,%0\;andc %3,%3,%2 *************** *** 633,639 **** (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")) (not:GPR (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ or %3,%1,%0\;andc %3,%3,%2 or %3,%1,%0\;andc %3,%3,%2 --- 633,639 ---- (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")) (not:GPR (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ or %3,%1,%0\;andc %3,%3,%2 or %3,%1,%0\;andc %3,%3,%2 *************** *** 651,657 **** (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")) (not:GPR (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ orc %3,%1,%0\;andc %3,%3,%2 orc %3,%1,%0\;andc %3,%3,%2 --- 651,657 ---- (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")) (not:GPR (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ orc %3,%1,%0\;andc %3,%3,%2 orc %3,%1,%0\;andc %3,%3,%2 *************** *** 669,675 **** (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")) (not:GPR (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ xor %3,%1,%0\;andc %3,%3,%2 xor %3,%1,%0\;andc %3,%3,%2 --- 669,675 ---- (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")) (not:GPR (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ xor %3,%1,%0\;andc %3,%3,%2 xor %3,%1,%0\;andc %3,%3,%2 *************** *** 687,693 **** (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ and %3,%1,%0\;eqv %3,%3,%2 and %3,%1,%0\;eqv %3,%3,%2 --- 687,693 ---- (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ and %3,%1,%0\;eqv %3,%3,%2 and %3,%1,%0\;eqv %3,%3,%2 *************** *** 705,711 **** (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ andc %3,%1,%0\;eqv %3,%3,%2 andc %3,%1,%0\;eqv %3,%3,%2 --- 705,711 ---- (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ andc %3,%1,%0\;eqv %3,%3,%2 andc %3,%1,%0\;eqv %3,%3,%2 *************** *** 723,729 **** (match_operand:GPR 1 "gpc_reg_operand" "%r,r,r,r"))) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ eqv %3,%1,%0\;eqv %3,%3,%2 eqv %3,%1,%0\;eqv %3,%3,%2 --- 723,729 ---- (match_operand:GPR 1 "gpc_reg_operand" "%r,r,r,r"))) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ eqv %3,%1,%0\;eqv %3,%3,%2 eqv %3,%1,%0\;eqv %3,%3,%2 *************** *** 741,747 **** (not:GPR (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r"))) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ nand %3,%1,%0\;eqv %3,%3,%2 nand %3,%1,%0\;eqv %3,%3,%2 --- 741,747 ---- (not:GPR (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r"))) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ nand %3,%1,%0\;eqv %3,%3,%2 nand %3,%1,%0\;eqv %3,%3,%2 *************** *** 759,765 **** (not:GPR (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r"))) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ nor %3,%1,%0\;eqv %3,%3,%2 nor %3,%1,%0\;eqv %3,%3,%2 --- 759,765 ---- (not:GPR (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r"))) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ nor %3,%1,%0\;eqv %3,%3,%2 nor %3,%1,%0\;eqv %3,%3,%2 *************** *** 777,783 **** (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ or %3,%1,%0\;eqv %3,%3,%2 or %3,%1,%0\;eqv %3,%3,%2 --- 777,783 ---- (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ or %3,%1,%0\;eqv %3,%3,%2 or %3,%1,%0\;eqv %3,%3,%2 *************** *** 795,801 **** (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ orc %3,%1,%0\;eqv %3,%3,%2 orc %3,%1,%0\;eqv %3,%3,%2 --- 795,801 ---- (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ orc %3,%1,%0\;eqv %3,%3,%2 orc %3,%1,%0\;eqv %3,%3,%2 *************** *** 813,819 **** (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ xor %3,%1,%0\;eqv %3,%3,%2 xor %3,%1,%0\;eqv %3,%3,%2 --- 813,819 ---- (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ xor %3,%1,%0\;eqv %3,%3,%2 xor %3,%1,%0\;eqv %3,%3,%2 *************** *** 831,837 **** (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r"))) (not:GPR (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ and %3,%1,%0\;nand %3,%3,%2 and %3,%1,%0\;nand %3,%3,%2 --- 831,837 ---- (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r"))) (not:GPR (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ and %3,%1,%0\;nand %3,%3,%2 and %3,%1,%0\;nand %3,%3,%2 *************** *** 849,855 **** (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r"))) (not:GPR (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ andc %3,%1,%0\;nand %3,%3,%2 andc %3,%1,%0\;nand %3,%3,%2 --- 849,855 ---- (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r"))) (not:GPR (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ andc %3,%1,%0\;nand %3,%3,%2 andc %3,%1,%0\;nand %3,%3,%2 *************** *** 867,873 **** (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")))) (not:GPR (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ eqv %3,%1,%0\;nand %3,%3,%2 eqv %3,%1,%0\;nand %3,%3,%2 --- 867,873 ---- (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")))) (not:GPR (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ eqv %3,%1,%0\;nand %3,%3,%2 eqv %3,%1,%0\;nand %3,%3,%2 *************** *** 885,891 **** (not:GPR (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")))) (not:GPR (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ nand %3,%1,%0\;nand %3,%3,%2 nand %3,%1,%0\;nand %3,%3,%2 --- 885,891 ---- (not:GPR (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")))) (not:GPR (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ nand %3,%1,%0\;nand %3,%3,%2 nand %3,%1,%0\;nand %3,%3,%2 *************** *** 903,909 **** (not:GPR (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")))) (not:GPR (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ nor %3,%1,%0\;nand %3,%3,%2 nor %3,%1,%0\;nand %3,%3,%2 --- 903,909 ---- (not:GPR (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")))) (not:GPR (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ nor %3,%1,%0\;nand %3,%3,%2 nor %3,%1,%0\;nand %3,%3,%2 *************** *** 921,927 **** (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r"))) (not:GPR (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ or %3,%1,%0\;nand %3,%3,%2 or %3,%1,%0\;nand %3,%3,%2 --- 921,927 ---- (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r"))) (not:GPR (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ or %3,%1,%0\;nand %3,%3,%2 or %3,%1,%0\;nand %3,%3,%2 *************** *** 939,945 **** (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r"))) (not:GPR (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ orc %3,%1,%0\;nand %3,%3,%2 orc %3,%1,%0\;nand %3,%3,%2 --- 939,945 ---- (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r"))) (not:GPR (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ orc %3,%1,%0\;nand %3,%3,%2 orc %3,%1,%0\;nand %3,%3,%2 *************** *** 957,963 **** (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r"))) (not:GPR (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ xor %3,%1,%0\;nand %3,%3,%2 xor %3,%1,%0\;nand %3,%3,%2 --- 957,963 ---- (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r"))) (not:GPR (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ xor %3,%1,%0\;nand %3,%3,%2 xor %3,%1,%0\;nand %3,%3,%2 *************** *** 975,981 **** (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r"))) (not:GPR (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_ADDLOG)" "@ add %3,%1,%0\;nand %3,%3,%2 add %3,%1,%0\;nand %3,%3,%2 --- 975,981 ---- (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r"))) (not:GPR (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ add %3,%1,%0\;nand %3,%3,%2 add %3,%1,%0\;nand %3,%3,%2 *************** *** 993,999 **** (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r"))) (not:GPR (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_ADDLOG)" "@ subf %3,%1,%0\;nand %3,%3,%2 subf %3,%1,%0\;nand %3,%3,%2 --- 993,999 ---- (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r"))) (not:GPR (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ subf %3,%1,%0\;nand %3,%3,%2 subf %3,%1,%0\;nand %3,%3,%2 *************** *** 1011,1017 **** (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r"))) (not:GPR (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ and %3,%1,%0\;nor %3,%3,%2 and %3,%1,%0\;nor %3,%3,%2 --- 1011,1017 ---- (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r"))) (not:GPR (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ and %3,%1,%0\;nor %3,%3,%2 and %3,%1,%0\;nor %3,%3,%2 *************** *** 1029,1035 **** (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r"))) (not:GPR (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ andc %3,%1,%0\;nor %3,%3,%2 andc %3,%1,%0\;nor %3,%3,%2 --- 1029,1035 ---- (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r"))) (not:GPR (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ andc %3,%1,%0\;nor %3,%3,%2 andc %3,%1,%0\;nor %3,%3,%2 *************** *** 1047,1053 **** (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")))) (not:GPR (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ eqv %3,%1,%0\;nor %3,%3,%2 eqv %3,%1,%0\;nor %3,%3,%2 --- 1047,1053 ---- (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")))) (not:GPR (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ eqv %3,%1,%0\;nor %3,%3,%2 eqv %3,%1,%0\;nor %3,%3,%2 *************** *** 1065,1071 **** (not:GPR (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")))) (not:GPR (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ nand %3,%1,%0\;nor %3,%3,%2 nand %3,%1,%0\;nor %3,%3,%2 --- 1065,1071 ---- (not:GPR (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")))) (not:GPR (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ nand %3,%1,%0\;nor %3,%3,%2 nand %3,%1,%0\;nor %3,%3,%2 *************** *** 1083,1089 **** (not:GPR (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")))) (not:GPR (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ nor %3,%1,%0\;nor %3,%3,%2 nor %3,%1,%0\;nor %3,%3,%2 --- 1083,1089 ---- (not:GPR (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")))) (not:GPR (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ nor %3,%1,%0\;nor %3,%3,%2 nor %3,%1,%0\;nor %3,%3,%2 *************** *** 1101,1107 **** (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r"))) (not:GPR (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ or %3,%1,%0\;nor %3,%3,%2 or %3,%1,%0\;nor %3,%3,%2 --- 1101,1107 ---- (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r"))) (not:GPR (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ or %3,%1,%0\;nor %3,%3,%2 or %3,%1,%0\;nor %3,%3,%2 *************** *** 1119,1125 **** (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r"))) (not:GPR (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ orc %3,%1,%0\;nor %3,%3,%2 orc %3,%1,%0\;nor %3,%3,%2 --- 1119,1125 ---- (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r"))) (not:GPR (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ orc %3,%1,%0\;nor %3,%3,%2 orc %3,%1,%0\;nor %3,%3,%2 *************** *** 1137,1143 **** (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r"))) (not:GPR (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ xor %3,%1,%0\;nor %3,%3,%2 xor %3,%1,%0\;nor %3,%3,%2 --- 1137,1143 ---- (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r"))) (not:GPR (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ xor %3,%1,%0\;nor %3,%3,%2 xor %3,%1,%0\;nor %3,%3,%2 *************** *** 1155,1161 **** (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r"))) (not:GPR (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_ADDLOG)" "@ add %3,%1,%0\;nor %3,%3,%2 add %3,%1,%0\;nor %3,%3,%2 --- 1155,1161 ---- (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r"))) (not:GPR (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ add %3,%1,%0\;nor %3,%3,%2 add %3,%1,%0\;nor %3,%3,%2 *************** *** 1173,1179 **** (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r"))) (not:GPR (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_ADDLOG)" "@ subf %3,%1,%0\;nor %3,%3,%2 subf %3,%1,%0\;nor %3,%3,%2 --- 1173,1179 ---- (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r"))) (not:GPR (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ subf %3,%1,%0\;nor %3,%3,%2 subf %3,%1,%0\;nor %3,%3,%2 *************** *** 1191,1197 **** (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r"))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ and %3,%1,%0\;or %3,%3,%2 and %3,%1,%0\;or %3,%3,%2 --- 1191,1197 ---- (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r"))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ and %3,%1,%0\;or %3,%3,%2 and %3,%1,%0\;or %3,%3,%2 *************** *** 1209,1215 **** (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r"))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ andc %3,%1,%0\;or %3,%3,%2 andc %3,%1,%0\;or %3,%3,%2 --- 1209,1215 ---- (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r"))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ andc %3,%1,%0\;or %3,%3,%2 andc %3,%1,%0\;or %3,%3,%2 *************** *** 1227,1233 **** (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r"))) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r"))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ eqv %3,%1,%0\;or %3,%3,%2 eqv %3,%1,%0\;or %3,%3,%2 --- 1227,1233 ---- (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r"))) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r"))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ eqv %3,%1,%0\;or %3,%3,%2 eqv %3,%1,%0\;or %3,%3,%2 *************** *** 1245,1251 **** (not:GPR (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r"))) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r"))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ nand %3,%1,%0\;or %3,%3,%2 nand %3,%1,%0\;or %3,%3,%2 --- 1245,1251 ---- (not:GPR (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r"))) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r"))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ nand %3,%1,%0\;or %3,%3,%2 nand %3,%1,%0\;or %3,%3,%2 *************** *** 1263,1269 **** (not:GPR (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r"))) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r"))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ nor %3,%1,%0\;or %3,%3,%2 nor %3,%1,%0\;or %3,%3,%2 --- 1263,1269 ---- (not:GPR (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r"))) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r"))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ nor %3,%1,%0\;or %3,%3,%2 nor %3,%1,%0\;or %3,%3,%2 *************** *** 1281,1287 **** (match_operand:GPR 1 "gpc_reg_operand" "%r,r,r,r")) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r"))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ or %3,%1,%0\;or %3,%3,%2 or %3,%1,%0\;or %3,%3,%2 --- 1281,1287 ---- (match_operand:GPR 1 "gpc_reg_operand" "%r,r,r,r")) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r"))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ or %3,%1,%0\;or %3,%3,%2 or %3,%1,%0\;or %3,%3,%2 *************** *** 1299,1305 **** (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r"))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ orc %3,%1,%0\;or %3,%3,%2 orc %3,%1,%0\;or %3,%3,%2 --- 1299,1305 ---- (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r"))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ orc %3,%1,%0\;or %3,%3,%2 orc %3,%1,%0\;or %3,%3,%2 *************** *** 1317,1323 **** (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r"))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ xor %3,%1,%0\;or %3,%3,%2 xor %3,%1,%0\;or %3,%3,%2 --- 1317,1323 ---- (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r"))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ xor %3,%1,%0\;or %3,%3,%2 xor %3,%1,%0\;or %3,%3,%2 *************** *** 1335,1341 **** (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r"))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_ADDLOG)" "@ add %3,%1,%0\;or %3,%3,%2 add %3,%1,%0\;or %3,%3,%2 --- 1335,1341 ---- (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r"))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ add %3,%1,%0\;or %3,%3,%2 add %3,%1,%0\;or %3,%3,%2 *************** *** 1353,1359 **** (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r"))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_ADDLOG)" "@ subf %3,%1,%0\;or %3,%3,%2 subf %3,%1,%0\;or %3,%3,%2 --- 1353,1359 ---- (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r"))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ subf %3,%1,%0\;or %3,%3,%2 subf %3,%1,%0\;or %3,%3,%2 *************** *** 1371,1377 **** (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")) (not:GPR (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ and %3,%1,%0\;orc %3,%3,%2 and %3,%1,%0\;orc %3,%3,%2 --- 1371,1377 ---- (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")) (not:GPR (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ and %3,%1,%0\;orc %3,%3,%2 and %3,%1,%0\;orc %3,%3,%2 *************** *** 1389,1395 **** (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")) (not:GPR (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ andc %3,%1,%0\;orc %3,%3,%2 andc %3,%1,%0\;orc %3,%3,%2 --- 1389,1395 ---- (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")) (not:GPR (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ andc %3,%1,%0\;orc %3,%3,%2 andc %3,%1,%0\;orc %3,%3,%2 *************** *** 1407,1413 **** (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r"))) (not:GPR (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ eqv %3,%1,%0\;orc %3,%3,%2 eqv %3,%1,%0\;orc %3,%3,%2 --- 1407,1413 ---- (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r"))) (not:GPR (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ eqv %3,%1,%0\;orc %3,%3,%2 eqv %3,%1,%0\;orc %3,%3,%2 *************** *** 1425,1431 **** (not:GPR (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r"))) (not:GPR (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ nand %3,%1,%0\;orc %3,%3,%2 nand %3,%1,%0\;orc %3,%3,%2 --- 1425,1431 ---- (not:GPR (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r"))) (not:GPR (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ nand %3,%1,%0\;orc %3,%3,%2 nand %3,%1,%0\;orc %3,%3,%2 *************** *** 1443,1449 **** (not:GPR (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r"))) (not:GPR (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ nor %3,%1,%0\;orc %3,%3,%2 nor %3,%1,%0\;orc %3,%3,%2 --- 1443,1449 ---- (not:GPR (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r"))) (not:GPR (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ nor %3,%1,%0\;orc %3,%3,%2 nor %3,%1,%0\;orc %3,%3,%2 *************** *** 1461,1467 **** (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")) (not:GPR (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ or %3,%1,%0\;orc %3,%3,%2 or %3,%1,%0\;orc %3,%3,%2 --- 1461,1467 ---- (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")) (not:GPR (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ or %3,%1,%0\;orc %3,%3,%2 or %3,%1,%0\;orc %3,%3,%2 *************** *** 1479,1485 **** (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")) (not:GPR (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ orc %3,%1,%0\;orc %3,%3,%2 orc %3,%1,%0\;orc %3,%3,%2 --- 1479,1485 ---- (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")) (not:GPR (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ orc %3,%1,%0\;orc %3,%3,%2 orc %3,%1,%0\;orc %3,%3,%2 *************** *** 1497,1503 **** (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")) (not:GPR (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ xor %3,%1,%0\;orc %3,%3,%2 xor %3,%1,%0\;orc %3,%3,%2 --- 1497,1503 ---- (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")) (not:GPR (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ xor %3,%1,%0\;orc %3,%3,%2 xor %3,%1,%0\;orc %3,%3,%2 *************** *** 1515,1521 **** (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r"))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ and %3,%1,%0\;xor %3,%3,%2 and %3,%1,%0\;xor %3,%3,%2 --- 1515,1521 ---- (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r"))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ and %3,%1,%0\;xor %3,%3,%2 and %3,%1,%0\;xor %3,%3,%2 *************** *** 1533,1539 **** (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r"))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ andc %3,%1,%0\;xor %3,%3,%2 andc %3,%1,%0\;xor %3,%3,%2 --- 1533,1539 ---- (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r"))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ andc %3,%1,%0\;xor %3,%3,%2 andc %3,%1,%0\;xor %3,%3,%2 *************** *** 1551,1557 **** (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r"))) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r"))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ eqv %3,%1,%0\;xor %3,%3,%2 eqv %3,%1,%0\;xor %3,%3,%2 --- 1551,1557 ---- (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r"))) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r"))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ eqv %3,%1,%0\;xor %3,%3,%2 eqv %3,%1,%0\;xor %3,%3,%2 *************** *** 1569,1575 **** (not:GPR (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r"))) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r"))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ nand %3,%1,%0\;xor %3,%3,%2 nand %3,%1,%0\;xor %3,%3,%2 --- 1569,1575 ---- (not:GPR (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r"))) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r"))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ nand %3,%1,%0\;xor %3,%3,%2 nand %3,%1,%0\;xor %3,%3,%2 *************** *** 1587,1593 **** (not:GPR (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r"))) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r"))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ nor %3,%1,%0\;xor %3,%3,%2 nor %3,%1,%0\;xor %3,%3,%2 --- 1587,1593 ---- (not:GPR (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r"))) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r"))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ nor %3,%1,%0\;xor %3,%3,%2 nor %3,%1,%0\;xor %3,%3,%2 *************** *** 1605,1611 **** (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r"))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ or %3,%1,%0\;xor %3,%3,%2 or %3,%1,%0\;xor %3,%3,%2 --- 1605,1611 ---- (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r"))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ or %3,%1,%0\;xor %3,%3,%2 or %3,%1,%0\;xor %3,%3,%2 *************** *** 1623,1629 **** (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r"))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ orc %3,%1,%0\;xor %3,%3,%2 orc %3,%1,%0\;xor %3,%3,%2 --- 1623,1629 ---- (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r"))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ orc %3,%1,%0\;xor %3,%3,%2 orc %3,%1,%0\;xor %3,%3,%2 *************** *** 1641,1647 **** (match_operand:GPR 1 "gpc_reg_operand" "%r,r,r,r")) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r"))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ xor %3,%1,%0\;xor %3,%3,%2 xor %3,%1,%0\;xor %3,%3,%2 --- 1641,1647 ---- (match_operand:GPR 1 "gpc_reg_operand" "%r,r,r,r")) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r"))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ xor %3,%1,%0\;xor %3,%3,%2 xor %3,%1,%0\;xor %3,%3,%2 *************** *** 1659,1665 **** (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r"))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_LOGADD)" "@ and %3,%1,%0\;add %3,%3,%2 and %3,%1,%0\;add %3,%3,%2 --- 1659,1665 ---- (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r"))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ and %3,%1,%0\;add %3,%3,%2 and %3,%1,%0\;add %3,%3,%2 *************** *** 1677,1683 **** (not:GPR (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r"))) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r"))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_LOGADD)" "@ nand %3,%1,%0\;add %3,%3,%2 nand %3,%1,%0\;add %3,%3,%2 --- 1677,1683 ---- (not:GPR (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r"))) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r"))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ nand %3,%1,%0\;add %3,%3,%2 nand %3,%1,%0\;add %3,%3,%2 *************** *** 1695,1701 **** (not:GPR (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r"))) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r"))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_LOGADD)" "@ nor %3,%1,%0\;add %3,%3,%2 nor %3,%1,%0\;add %3,%3,%2 --- 1695,1701 ---- (not:GPR (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r"))) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r"))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ nor %3,%1,%0\;add %3,%3,%2 nor %3,%1,%0\;add %3,%3,%2 *************** *** 1713,1719 **** (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r"))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_LOGADD)" "@ or %3,%1,%0\;add %3,%3,%2 or %3,%1,%0\;add %3,%3,%2 --- 1713,1719 ---- (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r"))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ or %3,%1,%0\;add %3,%3,%2 or %3,%1,%0\;add %3,%3,%2 *************** *** 1731,1737 **** (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r"))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_LOGADD)" "@ and %3,%1,%0\;subf %3,%2,%3 and %3,%1,%0\;subf %3,%2,%3 --- 1731,1737 ---- (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r"))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ and %3,%1,%0\;subf %3,%2,%3 and %3,%1,%0\;subf %3,%2,%3 *************** *** 1749,1755 **** (not:GPR (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r"))) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r"))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_LOGADD)" "@ nand %3,%1,%0\;subf %3,%2,%3 nand %3,%1,%0\;subf %3,%2,%3 --- 1749,1755 ---- (not:GPR (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r"))) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r"))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ nand %3,%1,%0\;subf %3,%2,%3 nand %3,%1,%0\;subf %3,%2,%3 *************** *** 1767,1773 **** (not:GPR (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r"))) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r"))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_LOGADD)" "@ nor %3,%1,%0\;subf %3,%2,%3 nor %3,%1,%0\;subf %3,%2,%3 --- 1767,1773 ---- (not:GPR (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r"))) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r"))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ nor %3,%1,%0\;subf %3,%2,%3 nor %3,%1,%0\;subf %3,%2,%3 *************** *** 1785,1791 **** (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r"))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_LOGADD)" "@ or %3,%1,%0\;subf %3,%2,%3 or %3,%1,%0\;subf %3,%2,%3 --- 1785,1791 ---- (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r"))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ or %3,%1,%0\;subf %3,%2,%3 or %3,%1,%0\;subf %3,%2,%3 *************** *** 1803,1809 **** (and:GPR (match_operand:GPR 0 "gpc_reg_operand" "r,r,r,r") (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_LOGADD)" "@ and %3,%1,%0\;subf %3,%3,%2 and %3,%1,%0\;subf %3,%3,%2 --- 1803,1809 ---- (and:GPR (match_operand:GPR 0 "gpc_reg_operand" "r,r,r,r") (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ and %3,%1,%0\;subf %3,%3,%2 and %3,%1,%0\;subf %3,%3,%2 *************** *** 1821,1827 **** (ior:GPR (not:GPR (match_operand:GPR 0 "gpc_reg_operand" "r,r,r,r")) (not:GPR (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r"))))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_LOGADD)" "@ nand %3,%1,%0\;subf %3,%3,%2 nand %3,%1,%0\;subf %3,%3,%2 --- 1821,1827 ---- (ior:GPR (not:GPR (match_operand:GPR 0 "gpc_reg_operand" "r,r,r,r")) (not:GPR (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r"))))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ nand %3,%1,%0\;subf %3,%3,%2 nand %3,%1,%0\;subf %3,%3,%2 *************** *** 1839,1845 **** (and:GPR (not:GPR (match_operand:GPR 0 "gpc_reg_operand" "r,r,r,r")) (not:GPR (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r"))))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_LOGADD)" "@ nor %3,%1,%0\;subf %3,%3,%2 nor %3,%1,%0\;subf %3,%3,%2 --- 1839,1845 ---- (and:GPR (not:GPR (match_operand:GPR 0 "gpc_reg_operand" "r,r,r,r")) (not:GPR (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r"))))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ nor %3,%1,%0\;subf %3,%3,%2 nor %3,%1,%0\;subf %3,%3,%2 *************** *** 1857,1863 **** (ior:GPR (match_operand:GPR 0 "gpc_reg_operand" "r,r,r,r") (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_LOGADD)" "@ or %3,%1,%0\;subf %3,%3,%2 or %3,%1,%0\;subf %3,%3,%2 --- 1857,1863 ---- (ior:GPR (match_operand:GPR 0 "gpc_reg_operand" "r,r,r,r") (match_operand:GPR 1 "gpc_reg_operand" "r,r,r,r")))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ or %3,%1,%0\;subf %3,%3,%2 or %3,%1,%0\;subf %3,%3,%2 *************** *** 1874,1881 **** (and:VM (and:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v") (match_operand:VM 1 "altivec_register_operand" "%v,v,v,v")) (match_operand:VM 2 "altivec_register_operand" "v,v,v,v"))) ! (clobber (match_scratch:VM 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ vand %3,%1,%0\;vand %3,%3,%2 vand %3,%1,%0\;vand %3,%3,%2 --- 1874,1881 ---- (and:VM (and:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v") (match_operand:VM 1 "altivec_register_operand" "%v,v,v,v")) (match_operand:VM 2 "altivec_register_operand" "v,v,v,v"))) ! (clobber (match_scratch:VM 4 "=X,X,X,&v"))] ! "(TARGET_P10_FUSION)" "@ vand %3,%1,%0\;vand %3,%3,%2 vand %3,%1,%0\;vand %3,%3,%2 *************** *** 1892,1899 **** (and:VM (and:VM (not:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v")) (match_operand:VM 1 "altivec_register_operand" "v,v,v,v")) (match_operand:VM 2 "altivec_register_operand" "v,v,v,v"))) ! (clobber (match_scratch:VM 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ vandc %3,%1,%0\;vand %3,%3,%2 vandc %3,%1,%0\;vand %3,%3,%2 --- 1892,1899 ---- (and:VM (and:VM (not:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v")) (match_operand:VM 1 "altivec_register_operand" "v,v,v,v")) (match_operand:VM 2 "altivec_register_operand" "v,v,v,v"))) ! (clobber (match_scratch:VM 4 "=X,X,X,&v"))] ! "(TARGET_P10_FUSION)" "@ vandc %3,%1,%0\;vand %3,%3,%2 vandc %3,%1,%0\;vand %3,%3,%2 *************** *** 1910,1917 **** (and:VM (not:VM (xor:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v") (match_operand:VM 1 "altivec_register_operand" "v,v,v,v"))) (match_operand:VM 2 "altivec_register_operand" "v,v,v,v"))) ! (clobber (match_scratch:VM 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ veqv %3,%1,%0\;vand %3,%3,%2 veqv %3,%1,%0\;vand %3,%3,%2 --- 1910,1917 ---- (and:VM (not:VM (xor:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v") (match_operand:VM 1 "altivec_register_operand" "v,v,v,v"))) (match_operand:VM 2 "altivec_register_operand" "v,v,v,v"))) ! (clobber (match_scratch:VM 4 "=X,X,X,&v"))] ! "(TARGET_P10_FUSION)" "@ veqv %3,%1,%0\;vand %3,%3,%2 veqv %3,%1,%0\;vand %3,%3,%2 *************** *** 1928,1935 **** (and:VM (ior:VM (not:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v")) (not:VM (match_operand:VM 1 "altivec_register_operand" "v,v,v,v"))) (match_operand:VM 2 "altivec_register_operand" "v,v,v,v"))) ! (clobber (match_scratch:VM 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ vnand %3,%1,%0\;vand %3,%3,%2 vnand %3,%1,%0\;vand %3,%3,%2 --- 1928,1935 ---- (and:VM (ior:VM (not:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v")) (not:VM (match_operand:VM 1 "altivec_register_operand" "v,v,v,v"))) (match_operand:VM 2 "altivec_register_operand" "v,v,v,v"))) ! (clobber (match_scratch:VM 4 "=X,X,X,&v"))] ! "(TARGET_P10_FUSION)" "@ vnand %3,%1,%0\;vand %3,%3,%2 vnand %3,%1,%0\;vand %3,%3,%2 *************** *** 1946,1953 **** (and:VM (and:VM (not:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v")) (not:VM (match_operand:VM 1 "altivec_register_operand" "v,v,v,v"))) (match_operand:VM 2 "altivec_register_operand" "v,v,v,v"))) ! (clobber (match_scratch:VM 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ vnor %3,%1,%0\;vand %3,%3,%2 vnor %3,%1,%0\;vand %3,%3,%2 --- 1946,1953 ---- (and:VM (and:VM (not:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v")) (not:VM (match_operand:VM 1 "altivec_register_operand" "v,v,v,v"))) (match_operand:VM 2 "altivec_register_operand" "v,v,v,v"))) ! (clobber (match_scratch:VM 4 "=X,X,X,&v"))] ! "(TARGET_P10_FUSION)" "@ vnor %3,%1,%0\;vand %3,%3,%2 vnor %3,%1,%0\;vand %3,%3,%2 *************** *** 1964,1971 **** (and:VM (ior:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v") (match_operand:VM 1 "altivec_register_operand" "v,v,v,v")) (match_operand:VM 2 "altivec_register_operand" "v,v,v,v"))) ! (clobber (match_scratch:VM 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ vor %3,%1,%0\;vand %3,%3,%2 vor %3,%1,%0\;vand %3,%3,%2 --- 1964,1971 ---- (and:VM (ior:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v") (match_operand:VM 1 "altivec_register_operand" "v,v,v,v")) (match_operand:VM 2 "altivec_register_operand" "v,v,v,v"))) ! (clobber (match_scratch:VM 4 "=X,X,X,&v"))] ! "(TARGET_P10_FUSION)" "@ vor %3,%1,%0\;vand %3,%3,%2 vor %3,%1,%0\;vand %3,%3,%2 *************** *** 1982,1989 **** (and:VM (ior:VM (not:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v")) (match_operand:VM 1 "altivec_register_operand" "v,v,v,v")) (match_operand:VM 2 "altivec_register_operand" "v,v,v,v"))) ! (clobber (match_scratch:VM 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ vorc %3,%1,%0\;vand %3,%3,%2 vorc %3,%1,%0\;vand %3,%3,%2 --- 1982,1989 ---- (and:VM (ior:VM (not:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v")) (match_operand:VM 1 "altivec_register_operand" "v,v,v,v")) (match_operand:VM 2 "altivec_register_operand" "v,v,v,v"))) ! (clobber (match_scratch:VM 4 "=X,X,X,&v"))] ! "(TARGET_P10_FUSION)" "@ vorc %3,%1,%0\;vand %3,%3,%2 vorc %3,%1,%0\;vand %3,%3,%2 *************** *** 2000,2007 **** (and:VM (xor:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v") (match_operand:VM 1 "altivec_register_operand" "v,v,v,v")) (match_operand:VM 2 "altivec_register_operand" "v,v,v,v"))) ! (clobber (match_scratch:VM 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ vxor %3,%1,%0\;vand %3,%3,%2 vxor %3,%1,%0\;vand %3,%3,%2 --- 2000,2007 ---- (and:VM (xor:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v") (match_operand:VM 1 "altivec_register_operand" "v,v,v,v")) (match_operand:VM 2 "altivec_register_operand" "v,v,v,v"))) ! (clobber (match_scratch:VM 4 "=X,X,X,&v"))] ! "(TARGET_P10_FUSION)" "@ vxor %3,%1,%0\;vand %3,%3,%2 vxor %3,%1,%0\;vand %3,%3,%2 *************** *** 2018,2025 **** (and:VM (and:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v") (match_operand:VM 1 "altivec_register_operand" "v,v,v,v")) (not:VM (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ vand %3,%1,%0\;vandc %3,%3,%2 vand %3,%1,%0\;vandc %3,%3,%2 --- 2018,2025 ---- (and:VM (and:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v") (match_operand:VM 1 "altivec_register_operand" "v,v,v,v")) (not:VM (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&v"))] ! "(TARGET_P10_FUSION)" "@ vand %3,%1,%0\;vandc %3,%3,%2 vand %3,%1,%0\;vandc %3,%3,%2 *************** *** 2036,2043 **** (and:VM (and:VM (not:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v")) (match_operand:VM 1 "altivec_register_operand" "v,v,v,v")) (not:VM (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ vandc %3,%1,%0\;vandc %3,%3,%2 vandc %3,%1,%0\;vandc %3,%3,%2 --- 2036,2043 ---- (and:VM (and:VM (not:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v")) (match_operand:VM 1 "altivec_register_operand" "v,v,v,v")) (not:VM (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&v"))] ! "(TARGET_P10_FUSION)" "@ vandc %3,%1,%0\;vandc %3,%3,%2 vandc %3,%1,%0\;vandc %3,%3,%2 *************** *** 2054,2061 **** (and:VM (not:VM (xor:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v") (match_operand:VM 1 "altivec_register_operand" "v,v,v,v"))) (not:VM (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ veqv %3,%1,%0\;vandc %3,%3,%2 veqv %3,%1,%0\;vandc %3,%3,%2 --- 2054,2061 ---- (and:VM (not:VM (xor:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v") (match_operand:VM 1 "altivec_register_operand" "v,v,v,v"))) (not:VM (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&v"))] ! "(TARGET_P10_FUSION)" "@ veqv %3,%1,%0\;vandc %3,%3,%2 veqv %3,%1,%0\;vandc %3,%3,%2 *************** *** 2072,2079 **** (and:VM (ior:VM (not:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v")) (not:VM (match_operand:VM 1 "altivec_register_operand" "v,v,v,v"))) (not:VM (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ vnand %3,%1,%0\;vandc %3,%3,%2 vnand %3,%1,%0\;vandc %3,%3,%2 --- 2072,2079 ---- (and:VM (ior:VM (not:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v")) (not:VM (match_operand:VM 1 "altivec_register_operand" "v,v,v,v"))) (not:VM (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&v"))] ! "(TARGET_P10_FUSION)" "@ vnand %3,%1,%0\;vandc %3,%3,%2 vnand %3,%1,%0\;vandc %3,%3,%2 *************** *** 2090,2097 **** (and:VM (and:VM (not:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v")) (not:VM (match_operand:VM 1 "altivec_register_operand" "v,v,v,v"))) (not:VM (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ vnor %3,%1,%0\;vandc %3,%3,%2 vnor %3,%1,%0\;vandc %3,%3,%2 --- 2090,2097 ---- (and:VM (and:VM (not:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v")) (not:VM (match_operand:VM 1 "altivec_register_operand" "v,v,v,v"))) (not:VM (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&v"))] ! "(TARGET_P10_FUSION)" "@ vnor %3,%1,%0\;vandc %3,%3,%2 vnor %3,%1,%0\;vandc %3,%3,%2 *************** *** 2108,2115 **** (and:VM (ior:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v") (match_operand:VM 1 "altivec_register_operand" "v,v,v,v")) (not:VM (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ vor %3,%1,%0\;vandc %3,%3,%2 vor %3,%1,%0\;vandc %3,%3,%2 --- 2108,2115 ---- (and:VM (ior:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v") (match_operand:VM 1 "altivec_register_operand" "v,v,v,v")) (not:VM (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&v"))] ! "(TARGET_P10_FUSION)" "@ vor %3,%1,%0\;vandc %3,%3,%2 vor %3,%1,%0\;vandc %3,%3,%2 *************** *** 2126,2133 **** (and:VM (ior:VM (not:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v")) (match_operand:VM 1 "altivec_register_operand" "v,v,v,v")) (not:VM (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ vorc %3,%1,%0\;vandc %3,%3,%2 vorc %3,%1,%0\;vandc %3,%3,%2 --- 2126,2133 ---- (and:VM (ior:VM (not:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v")) (match_operand:VM 1 "altivec_register_operand" "v,v,v,v")) (not:VM (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&v"))] ! "(TARGET_P10_FUSION)" "@ vorc %3,%1,%0\;vandc %3,%3,%2 vorc %3,%1,%0\;vandc %3,%3,%2 *************** *** 2144,2151 **** (and:VM (xor:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v") (match_operand:VM 1 "altivec_register_operand" "v,v,v,v")) (not:VM (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ vxor %3,%1,%0\;vandc %3,%3,%2 vxor %3,%1,%0\;vandc %3,%3,%2 --- 2144,2151 ---- (and:VM (xor:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v") (match_operand:VM 1 "altivec_register_operand" "v,v,v,v")) (not:VM (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&v"))] ! "(TARGET_P10_FUSION)" "@ vxor %3,%1,%0\;vandc %3,%3,%2 vxor %3,%1,%0\;vandc %3,%3,%2 *************** *** 2162,2169 **** (not:VM (xor:VM (and:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v") (match_operand:VM 1 "altivec_register_operand" "v,v,v,v")) (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ vand %3,%1,%0\;veqv %3,%3,%2 vand %3,%1,%0\;veqv %3,%3,%2 --- 2162,2169 ---- (not:VM (xor:VM (and:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v") (match_operand:VM 1 "altivec_register_operand" "v,v,v,v")) (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&v"))] ! "(TARGET_P10_FUSION)" "@ vand %3,%1,%0\;veqv %3,%3,%2 vand %3,%1,%0\;veqv %3,%3,%2 *************** *** 2180,2187 **** (not:VM (xor:VM (and:VM (not:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v")) (match_operand:VM 1 "altivec_register_operand" "v,v,v,v")) (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ vandc %3,%1,%0\;veqv %3,%3,%2 vandc %3,%1,%0\;veqv %3,%3,%2 --- 2180,2187 ---- (not:VM (xor:VM (and:VM (not:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v")) (match_operand:VM 1 "altivec_register_operand" "v,v,v,v")) (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&v"))] ! "(TARGET_P10_FUSION)" "@ vandc %3,%1,%0\;veqv %3,%3,%2 vandc %3,%1,%0\;veqv %3,%3,%2 *************** *** 2198,2205 **** (not:VM (xor:VM (not:VM (xor:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v") (match_operand:VM 1 "altivec_register_operand" "%v,v,v,v"))) (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ veqv %3,%1,%0\;veqv %3,%3,%2 veqv %3,%1,%0\;veqv %3,%3,%2 --- 2198,2205 ---- (not:VM (xor:VM (not:VM (xor:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v") (match_operand:VM 1 "altivec_register_operand" "%v,v,v,v"))) (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&v"))] ! "(TARGET_P10_FUSION)" "@ veqv %3,%1,%0\;veqv %3,%3,%2 veqv %3,%1,%0\;veqv %3,%3,%2 *************** *** 2216,2223 **** (not:VM (xor:VM (ior:VM (not:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v")) (not:VM (match_operand:VM 1 "altivec_register_operand" "v,v,v,v"))) (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ vnand %3,%1,%0\;veqv %3,%3,%2 vnand %3,%1,%0\;veqv %3,%3,%2 --- 2216,2223 ---- (not:VM (xor:VM (ior:VM (not:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v")) (not:VM (match_operand:VM 1 "altivec_register_operand" "v,v,v,v"))) (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&v"))] ! "(TARGET_P10_FUSION)" "@ vnand %3,%1,%0\;veqv %3,%3,%2 vnand %3,%1,%0\;veqv %3,%3,%2 *************** *** 2234,2241 **** (not:VM (xor:VM (and:VM (not:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v")) (not:VM (match_operand:VM 1 "altivec_register_operand" "v,v,v,v"))) (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ vnor %3,%1,%0\;veqv %3,%3,%2 vnor %3,%1,%0\;veqv %3,%3,%2 --- 2234,2241 ---- (not:VM (xor:VM (and:VM (not:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v")) (not:VM (match_operand:VM 1 "altivec_register_operand" "v,v,v,v"))) (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&v"))] ! "(TARGET_P10_FUSION)" "@ vnor %3,%1,%0\;veqv %3,%3,%2 vnor %3,%1,%0\;veqv %3,%3,%2 *************** *** 2252,2259 **** (not:VM (xor:VM (ior:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v") (match_operand:VM 1 "altivec_register_operand" "v,v,v,v")) (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ vor %3,%1,%0\;veqv %3,%3,%2 vor %3,%1,%0\;veqv %3,%3,%2 --- 2252,2259 ---- (not:VM (xor:VM (ior:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v") (match_operand:VM 1 "altivec_register_operand" "v,v,v,v")) (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&v"))] ! "(TARGET_P10_FUSION)" "@ vor %3,%1,%0\;veqv %3,%3,%2 vor %3,%1,%0\;veqv %3,%3,%2 *************** *** 2270,2277 **** (not:VM (xor:VM (ior:VM (not:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v")) (match_operand:VM 1 "altivec_register_operand" "v,v,v,v")) (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ vorc %3,%1,%0\;veqv %3,%3,%2 vorc %3,%1,%0\;veqv %3,%3,%2 --- 2270,2277 ---- (not:VM (xor:VM (ior:VM (not:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v")) (match_operand:VM 1 "altivec_register_operand" "v,v,v,v")) (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&v"))] ! "(TARGET_P10_FUSION)" "@ vorc %3,%1,%0\;veqv %3,%3,%2 vorc %3,%1,%0\;veqv %3,%3,%2 *************** *** 2288,2295 **** (not:VM (xor:VM (xor:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v") (match_operand:VM 1 "altivec_register_operand" "v,v,v,v")) (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ vxor %3,%1,%0\;veqv %3,%3,%2 vxor %3,%1,%0\;veqv %3,%3,%2 --- 2288,2295 ---- (not:VM (xor:VM (xor:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v") (match_operand:VM 1 "altivec_register_operand" "v,v,v,v")) (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&v"))] ! "(TARGET_P10_FUSION)" "@ vxor %3,%1,%0\;veqv %3,%3,%2 vxor %3,%1,%0\;veqv %3,%3,%2 *************** *** 2306,2313 **** (ior:VM (not:VM (and:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v") (match_operand:VM 1 "altivec_register_operand" "v,v,v,v"))) (not:VM (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ vand %3,%1,%0\;vnand %3,%3,%2 vand %3,%1,%0\;vnand %3,%3,%2 --- 2306,2313 ---- (ior:VM (not:VM (and:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v") (match_operand:VM 1 "altivec_register_operand" "v,v,v,v"))) (not:VM (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&v"))] ! "(TARGET_P10_FUSION)" "@ vand %3,%1,%0\;vnand %3,%3,%2 vand %3,%1,%0\;vnand %3,%3,%2 *************** *** 2324,2331 **** (ior:VM (not:VM (and:VM (not:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v")) (match_operand:VM 1 "altivec_register_operand" "v,v,v,v"))) (not:VM (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ vandc %3,%1,%0\;vnand %3,%3,%2 vandc %3,%1,%0\;vnand %3,%3,%2 --- 2324,2331 ---- (ior:VM (not:VM (and:VM (not:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v")) (match_operand:VM 1 "altivec_register_operand" "v,v,v,v"))) (not:VM (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&v"))] ! "(TARGET_P10_FUSION)" "@ vandc %3,%1,%0\;vnand %3,%3,%2 vandc %3,%1,%0\;vnand %3,%3,%2 *************** *** 2342,2349 **** (ior:VM (not:VM (not:VM (xor:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v") (match_operand:VM 1 "altivec_register_operand" "v,v,v,v")))) (not:VM (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ veqv %3,%1,%0\;vnand %3,%3,%2 veqv %3,%1,%0\;vnand %3,%3,%2 --- 2342,2349 ---- (ior:VM (not:VM (not:VM (xor:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v") (match_operand:VM 1 "altivec_register_operand" "v,v,v,v")))) (not:VM (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&v"))] ! "(TARGET_P10_FUSION)" "@ veqv %3,%1,%0\;vnand %3,%3,%2 veqv %3,%1,%0\;vnand %3,%3,%2 *************** *** 2360,2367 **** (ior:VM (not:VM (ior:VM (not:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v")) (not:VM (match_operand:VM 1 "altivec_register_operand" "v,v,v,v")))) (not:VM (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ vnand %3,%1,%0\;vnand %3,%3,%2 vnand %3,%1,%0\;vnand %3,%3,%2 --- 2360,2367 ---- (ior:VM (not:VM (ior:VM (not:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v")) (not:VM (match_operand:VM 1 "altivec_register_operand" "v,v,v,v")))) (not:VM (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&v"))] ! "(TARGET_P10_FUSION)" "@ vnand %3,%1,%0\;vnand %3,%3,%2 vnand %3,%1,%0\;vnand %3,%3,%2 *************** *** 2378,2385 **** (ior:VM (not:VM (and:VM (not:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v")) (not:VM (match_operand:VM 1 "altivec_register_operand" "v,v,v,v")))) (not:VM (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ vnor %3,%1,%0\;vnand %3,%3,%2 vnor %3,%1,%0\;vnand %3,%3,%2 --- 2378,2385 ---- (ior:VM (not:VM (and:VM (not:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v")) (not:VM (match_operand:VM 1 "altivec_register_operand" "v,v,v,v")))) (not:VM (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&v"))] ! "(TARGET_P10_FUSION)" "@ vnor %3,%1,%0\;vnand %3,%3,%2 vnor %3,%1,%0\;vnand %3,%3,%2 *************** *** 2396,2403 **** (ior:VM (not:VM (ior:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v") (match_operand:VM 1 "altivec_register_operand" "v,v,v,v"))) (not:VM (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ vor %3,%1,%0\;vnand %3,%3,%2 vor %3,%1,%0\;vnand %3,%3,%2 --- 2396,2403 ---- (ior:VM (not:VM (ior:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v") (match_operand:VM 1 "altivec_register_operand" "v,v,v,v"))) (not:VM (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&v"))] ! "(TARGET_P10_FUSION)" "@ vor %3,%1,%0\;vnand %3,%3,%2 vor %3,%1,%0\;vnand %3,%3,%2 *************** *** 2414,2421 **** (ior:VM (not:VM (ior:VM (not:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v")) (match_operand:VM 1 "altivec_register_operand" "v,v,v,v"))) (not:VM (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ vorc %3,%1,%0\;vnand %3,%3,%2 vorc %3,%1,%0\;vnand %3,%3,%2 --- 2414,2421 ---- (ior:VM (not:VM (ior:VM (not:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v")) (match_operand:VM 1 "altivec_register_operand" "v,v,v,v"))) (not:VM (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&v"))] ! "(TARGET_P10_FUSION)" "@ vorc %3,%1,%0\;vnand %3,%3,%2 vorc %3,%1,%0\;vnand %3,%3,%2 *************** *** 2432,2439 **** (ior:VM (not:VM (xor:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v") (match_operand:VM 1 "altivec_register_operand" "v,v,v,v"))) (not:VM (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ vxor %3,%1,%0\;vnand %3,%3,%2 vxor %3,%1,%0\;vnand %3,%3,%2 --- 2432,2439 ---- (ior:VM (not:VM (xor:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v") (match_operand:VM 1 "altivec_register_operand" "v,v,v,v"))) (not:VM (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&v"))] ! "(TARGET_P10_FUSION)" "@ vxor %3,%1,%0\;vnand %3,%3,%2 vxor %3,%1,%0\;vnand %3,%3,%2 *************** *** 2450,2457 **** (and:VM (not:VM (and:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v") (match_operand:VM 1 "altivec_register_operand" "v,v,v,v"))) (not:VM (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ vand %3,%1,%0\;vnor %3,%3,%2 vand %3,%1,%0\;vnor %3,%3,%2 --- 2450,2457 ---- (and:VM (not:VM (and:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v") (match_operand:VM 1 "altivec_register_operand" "v,v,v,v"))) (not:VM (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&v"))] ! "(TARGET_P10_FUSION)" "@ vand %3,%1,%0\;vnor %3,%3,%2 vand %3,%1,%0\;vnor %3,%3,%2 *************** *** 2468,2475 **** (and:VM (not:VM (and:VM (not:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v")) (match_operand:VM 1 "altivec_register_operand" "v,v,v,v"))) (not:VM (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ vandc %3,%1,%0\;vnor %3,%3,%2 vandc %3,%1,%0\;vnor %3,%3,%2 --- 2468,2475 ---- (and:VM (not:VM (and:VM (not:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v")) (match_operand:VM 1 "altivec_register_operand" "v,v,v,v"))) (not:VM (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&v"))] ! "(TARGET_P10_FUSION)" "@ vandc %3,%1,%0\;vnor %3,%3,%2 vandc %3,%1,%0\;vnor %3,%3,%2 *************** *** 2486,2493 **** (and:VM (not:VM (not:VM (xor:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v") (match_operand:VM 1 "altivec_register_operand" "v,v,v,v")))) (not:VM (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ veqv %3,%1,%0\;vnor %3,%3,%2 veqv %3,%1,%0\;vnor %3,%3,%2 --- 2486,2493 ---- (and:VM (not:VM (not:VM (xor:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v") (match_operand:VM 1 "altivec_register_operand" "v,v,v,v")))) (not:VM (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&v"))] ! "(TARGET_P10_FUSION)" "@ veqv %3,%1,%0\;vnor %3,%3,%2 veqv %3,%1,%0\;vnor %3,%3,%2 *************** *** 2504,2511 **** (and:VM (not:VM (ior:VM (not:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v")) (not:VM (match_operand:VM 1 "altivec_register_operand" "v,v,v,v")))) (not:VM (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ vnand %3,%1,%0\;vnor %3,%3,%2 vnand %3,%1,%0\;vnor %3,%3,%2 --- 2504,2511 ---- (and:VM (not:VM (ior:VM (not:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v")) (not:VM (match_operand:VM 1 "altivec_register_operand" "v,v,v,v")))) (not:VM (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&v"))] ! "(TARGET_P10_FUSION)" "@ vnand %3,%1,%0\;vnor %3,%3,%2 vnand %3,%1,%0\;vnor %3,%3,%2 *************** *** 2522,2529 **** (and:VM (not:VM (and:VM (not:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v")) (not:VM (match_operand:VM 1 "altivec_register_operand" "v,v,v,v")))) (not:VM (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ vnor %3,%1,%0\;vnor %3,%3,%2 vnor %3,%1,%0\;vnor %3,%3,%2 --- 2522,2529 ---- (and:VM (not:VM (and:VM (not:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v")) (not:VM (match_operand:VM 1 "altivec_register_operand" "v,v,v,v")))) (not:VM (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&v"))] ! "(TARGET_P10_FUSION)" "@ vnor %3,%1,%0\;vnor %3,%3,%2 vnor %3,%1,%0\;vnor %3,%3,%2 *************** *** 2540,2547 **** (and:VM (not:VM (ior:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v") (match_operand:VM 1 "altivec_register_operand" "v,v,v,v"))) (not:VM (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ vor %3,%1,%0\;vnor %3,%3,%2 vor %3,%1,%0\;vnor %3,%3,%2 --- 2540,2547 ---- (and:VM (not:VM (ior:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v") (match_operand:VM 1 "altivec_register_operand" "v,v,v,v"))) (not:VM (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&v"))] ! "(TARGET_P10_FUSION)" "@ vor %3,%1,%0\;vnor %3,%3,%2 vor %3,%1,%0\;vnor %3,%3,%2 *************** *** 2558,2565 **** (and:VM (not:VM (ior:VM (not:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v")) (match_operand:VM 1 "altivec_register_operand" "v,v,v,v"))) (not:VM (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ vorc %3,%1,%0\;vnor %3,%3,%2 vorc %3,%1,%0\;vnor %3,%3,%2 --- 2558,2565 ---- (and:VM (not:VM (ior:VM (not:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v")) (match_operand:VM 1 "altivec_register_operand" "v,v,v,v"))) (not:VM (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&v"))] ! "(TARGET_P10_FUSION)" "@ vorc %3,%1,%0\;vnor %3,%3,%2 vorc %3,%1,%0\;vnor %3,%3,%2 *************** *** 2576,2583 **** (and:VM (not:VM (xor:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v") (match_operand:VM 1 "altivec_register_operand" "v,v,v,v"))) (not:VM (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ vxor %3,%1,%0\;vnor %3,%3,%2 vxor %3,%1,%0\;vnor %3,%3,%2 --- 2576,2583 ---- (and:VM (not:VM (xor:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v") (match_operand:VM 1 "altivec_register_operand" "v,v,v,v"))) (not:VM (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&v"))] ! "(TARGET_P10_FUSION)" "@ vxor %3,%1,%0\;vnor %3,%3,%2 vxor %3,%1,%0\;vnor %3,%3,%2 *************** *** 2594,2601 **** (ior:VM (and:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v") (match_operand:VM 1 "altivec_register_operand" "v,v,v,v")) (match_operand:VM 2 "altivec_register_operand" "v,v,v,v"))) ! (clobber (match_scratch:VM 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ vand %3,%1,%0\;vor %3,%3,%2 vand %3,%1,%0\;vor %3,%3,%2 --- 2594,2601 ---- (ior:VM (and:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v") (match_operand:VM 1 "altivec_register_operand" "v,v,v,v")) (match_operand:VM 2 "altivec_register_operand" "v,v,v,v"))) ! (clobber (match_scratch:VM 4 "=X,X,X,&v"))] ! "(TARGET_P10_FUSION)" "@ vand %3,%1,%0\;vor %3,%3,%2 vand %3,%1,%0\;vor %3,%3,%2 *************** *** 2612,2619 **** (ior:VM (and:VM (not:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v")) (match_operand:VM 1 "altivec_register_operand" "v,v,v,v")) (match_operand:VM 2 "altivec_register_operand" "v,v,v,v"))) ! (clobber (match_scratch:VM 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ vandc %3,%1,%0\;vor %3,%3,%2 vandc %3,%1,%0\;vor %3,%3,%2 --- 2612,2619 ---- (ior:VM (and:VM (not:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v")) (match_operand:VM 1 "altivec_register_operand" "v,v,v,v")) (match_operand:VM 2 "altivec_register_operand" "v,v,v,v"))) ! (clobber (match_scratch:VM 4 "=X,X,X,&v"))] ! "(TARGET_P10_FUSION)" "@ vandc %3,%1,%0\;vor %3,%3,%2 vandc %3,%1,%0\;vor %3,%3,%2 *************** *** 2630,2637 **** (ior:VM (not:VM (xor:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v") (match_operand:VM 1 "altivec_register_operand" "v,v,v,v"))) (match_operand:VM 2 "altivec_register_operand" "v,v,v,v"))) ! (clobber (match_scratch:VM 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ veqv %3,%1,%0\;vor %3,%3,%2 veqv %3,%1,%0\;vor %3,%3,%2 --- 2630,2637 ---- (ior:VM (not:VM (xor:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v") (match_operand:VM 1 "altivec_register_operand" "v,v,v,v"))) (match_operand:VM 2 "altivec_register_operand" "v,v,v,v"))) ! (clobber (match_scratch:VM 4 "=X,X,X,&v"))] ! "(TARGET_P10_FUSION)" "@ veqv %3,%1,%0\;vor %3,%3,%2 veqv %3,%1,%0\;vor %3,%3,%2 *************** *** 2648,2655 **** (ior:VM (ior:VM (not:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v")) (not:VM (match_operand:VM 1 "altivec_register_operand" "v,v,v,v"))) (match_operand:VM 2 "altivec_register_operand" "v,v,v,v"))) ! (clobber (match_scratch:VM 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ vnand %3,%1,%0\;vor %3,%3,%2 vnand %3,%1,%0\;vor %3,%3,%2 --- 2648,2655 ---- (ior:VM (ior:VM (not:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v")) (not:VM (match_operand:VM 1 "altivec_register_operand" "v,v,v,v"))) (match_operand:VM 2 "altivec_register_operand" "v,v,v,v"))) ! (clobber (match_scratch:VM 4 "=X,X,X,&v"))] ! "(TARGET_P10_FUSION)" "@ vnand %3,%1,%0\;vor %3,%3,%2 vnand %3,%1,%0\;vor %3,%3,%2 *************** *** 2666,2673 **** (ior:VM (and:VM (not:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v")) (not:VM (match_operand:VM 1 "altivec_register_operand" "v,v,v,v"))) (match_operand:VM 2 "altivec_register_operand" "v,v,v,v"))) ! (clobber (match_scratch:VM 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ vnor %3,%1,%0\;vor %3,%3,%2 vnor %3,%1,%0\;vor %3,%3,%2 --- 2666,2673 ---- (ior:VM (and:VM (not:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v")) (not:VM (match_operand:VM 1 "altivec_register_operand" "v,v,v,v"))) (match_operand:VM 2 "altivec_register_operand" "v,v,v,v"))) ! (clobber (match_scratch:VM 4 "=X,X,X,&v"))] ! "(TARGET_P10_FUSION)" "@ vnor %3,%1,%0\;vor %3,%3,%2 vnor %3,%1,%0\;vor %3,%3,%2 *************** *** 2684,2691 **** (ior:VM (ior:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v") (match_operand:VM 1 "altivec_register_operand" "%v,v,v,v")) (match_operand:VM 2 "altivec_register_operand" "v,v,v,v"))) ! (clobber (match_scratch:VM 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ vor %3,%1,%0\;vor %3,%3,%2 vor %3,%1,%0\;vor %3,%3,%2 --- 2684,2691 ---- (ior:VM (ior:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v") (match_operand:VM 1 "altivec_register_operand" "%v,v,v,v")) (match_operand:VM 2 "altivec_register_operand" "v,v,v,v"))) ! (clobber (match_scratch:VM 4 "=X,X,X,&v"))] ! "(TARGET_P10_FUSION)" "@ vor %3,%1,%0\;vor %3,%3,%2 vor %3,%1,%0\;vor %3,%3,%2 *************** *** 2702,2709 **** (ior:VM (ior:VM (not:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v")) (match_operand:VM 1 "altivec_register_operand" "v,v,v,v")) (match_operand:VM 2 "altivec_register_operand" "v,v,v,v"))) ! (clobber (match_scratch:VM 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ vorc %3,%1,%0\;vor %3,%3,%2 vorc %3,%1,%0\;vor %3,%3,%2 --- 2702,2709 ---- (ior:VM (ior:VM (not:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v")) (match_operand:VM 1 "altivec_register_operand" "v,v,v,v")) (match_operand:VM 2 "altivec_register_operand" "v,v,v,v"))) ! (clobber (match_scratch:VM 4 "=X,X,X,&v"))] ! "(TARGET_P10_FUSION)" "@ vorc %3,%1,%0\;vor %3,%3,%2 vorc %3,%1,%0\;vor %3,%3,%2 *************** *** 2720,2727 **** (ior:VM (xor:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v") (match_operand:VM 1 "altivec_register_operand" "v,v,v,v")) (match_operand:VM 2 "altivec_register_operand" "v,v,v,v"))) ! (clobber (match_scratch:VM 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ vxor %3,%1,%0\;vor %3,%3,%2 vxor %3,%1,%0\;vor %3,%3,%2 --- 2720,2727 ---- (ior:VM (xor:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v") (match_operand:VM 1 "altivec_register_operand" "v,v,v,v")) (match_operand:VM 2 "altivec_register_operand" "v,v,v,v"))) ! (clobber (match_scratch:VM 4 "=X,X,X,&v"))] ! "(TARGET_P10_FUSION)" "@ vxor %3,%1,%0\;vor %3,%3,%2 vxor %3,%1,%0\;vor %3,%3,%2 *************** *** 2738,2745 **** (ior:VM (and:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v") (match_operand:VM 1 "altivec_register_operand" "v,v,v,v")) (not:VM (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ vand %3,%1,%0\;vorc %3,%3,%2 vand %3,%1,%0\;vorc %3,%3,%2 --- 2738,2745 ---- (ior:VM (and:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v") (match_operand:VM 1 "altivec_register_operand" "v,v,v,v")) (not:VM (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&v"))] ! "(TARGET_P10_FUSION)" "@ vand %3,%1,%0\;vorc %3,%3,%2 vand %3,%1,%0\;vorc %3,%3,%2 *************** *** 2756,2763 **** (ior:VM (and:VM (not:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v")) (match_operand:VM 1 "altivec_register_operand" "v,v,v,v")) (not:VM (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ vandc %3,%1,%0\;vorc %3,%3,%2 vandc %3,%1,%0\;vorc %3,%3,%2 --- 2756,2763 ---- (ior:VM (and:VM (not:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v")) (match_operand:VM 1 "altivec_register_operand" "v,v,v,v")) (not:VM (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&v"))] ! "(TARGET_P10_FUSION)" "@ vandc %3,%1,%0\;vorc %3,%3,%2 vandc %3,%1,%0\;vorc %3,%3,%2 *************** *** 2774,2781 **** (ior:VM (not:VM (xor:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v") (match_operand:VM 1 "altivec_register_operand" "v,v,v,v"))) (not:VM (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ veqv %3,%1,%0\;vorc %3,%3,%2 veqv %3,%1,%0\;vorc %3,%3,%2 --- 2774,2781 ---- (ior:VM (not:VM (xor:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v") (match_operand:VM 1 "altivec_register_operand" "v,v,v,v"))) (not:VM (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&v"))] ! "(TARGET_P10_FUSION)" "@ veqv %3,%1,%0\;vorc %3,%3,%2 veqv %3,%1,%0\;vorc %3,%3,%2 *************** *** 2792,2799 **** (ior:VM (ior:VM (not:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v")) (not:VM (match_operand:VM 1 "altivec_register_operand" "v,v,v,v"))) (not:VM (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ vnand %3,%1,%0\;vorc %3,%3,%2 vnand %3,%1,%0\;vorc %3,%3,%2 --- 2792,2799 ---- (ior:VM (ior:VM (not:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v")) (not:VM (match_operand:VM 1 "altivec_register_operand" "v,v,v,v"))) (not:VM (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&v"))] ! "(TARGET_P10_FUSION)" "@ vnand %3,%1,%0\;vorc %3,%3,%2 vnand %3,%1,%0\;vorc %3,%3,%2 *************** *** 2810,2817 **** (ior:VM (and:VM (not:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v")) (not:VM (match_operand:VM 1 "altivec_register_operand" "v,v,v,v"))) (not:VM (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ vnor %3,%1,%0\;vorc %3,%3,%2 vnor %3,%1,%0\;vorc %3,%3,%2 --- 2810,2817 ---- (ior:VM (and:VM (not:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v")) (not:VM (match_operand:VM 1 "altivec_register_operand" "v,v,v,v"))) (not:VM (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&v"))] ! "(TARGET_P10_FUSION)" "@ vnor %3,%1,%0\;vorc %3,%3,%2 vnor %3,%1,%0\;vorc %3,%3,%2 *************** *** 2828,2835 **** (ior:VM (ior:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v") (match_operand:VM 1 "altivec_register_operand" "v,v,v,v")) (not:VM (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ vor %3,%1,%0\;vorc %3,%3,%2 vor %3,%1,%0\;vorc %3,%3,%2 --- 2828,2835 ---- (ior:VM (ior:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v") (match_operand:VM 1 "altivec_register_operand" "v,v,v,v")) (not:VM (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&v"))] ! "(TARGET_P10_FUSION)" "@ vor %3,%1,%0\;vorc %3,%3,%2 vor %3,%1,%0\;vorc %3,%3,%2 *************** *** 2846,2853 **** (ior:VM (ior:VM (not:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v")) (match_operand:VM 1 "altivec_register_operand" "v,v,v,v")) (not:VM (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ vorc %3,%1,%0\;vorc %3,%3,%2 vorc %3,%1,%0\;vorc %3,%3,%2 --- 2846,2853 ---- (ior:VM (ior:VM (not:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v")) (match_operand:VM 1 "altivec_register_operand" "v,v,v,v")) (not:VM (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&v"))] ! "(TARGET_P10_FUSION)" "@ vorc %3,%1,%0\;vorc %3,%3,%2 vorc %3,%1,%0\;vorc %3,%3,%2 *************** *** 2864,2871 **** (ior:VM (xor:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v") (match_operand:VM 1 "altivec_register_operand" "v,v,v,v")) (not:VM (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ vxor %3,%1,%0\;vorc %3,%3,%2 vxor %3,%1,%0\;vorc %3,%3,%2 --- 2864,2871 ---- (ior:VM (xor:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v") (match_operand:VM 1 "altivec_register_operand" "v,v,v,v")) (not:VM (match_operand:VM 2 "altivec_register_operand" "v,v,v,v")))) ! (clobber (match_scratch:VM 4 "=X,X,X,&v"))] ! "(TARGET_P10_FUSION)" "@ vxor %3,%1,%0\;vorc %3,%3,%2 vxor %3,%1,%0\;vorc %3,%3,%2 *************** *** 2882,2889 **** (xor:VM (and:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v") (match_operand:VM 1 "altivec_register_operand" "v,v,v,v")) (match_operand:VM 2 "altivec_register_operand" "v,v,v,v"))) ! (clobber (match_scratch:VM 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ vand %3,%1,%0\;vxor %3,%3,%2 vand %3,%1,%0\;vxor %3,%3,%2 --- 2882,2889 ---- (xor:VM (and:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v") (match_operand:VM 1 "altivec_register_operand" "v,v,v,v")) (match_operand:VM 2 "altivec_register_operand" "v,v,v,v"))) ! (clobber (match_scratch:VM 4 "=X,X,X,&v"))] ! "(TARGET_P10_FUSION)" "@ vand %3,%1,%0\;vxor %3,%3,%2 vand %3,%1,%0\;vxor %3,%3,%2 *************** *** 2900,2907 **** (xor:VM (and:VM (not:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v")) (match_operand:VM 1 "altivec_register_operand" "v,v,v,v")) (match_operand:VM 2 "altivec_register_operand" "v,v,v,v"))) ! (clobber (match_scratch:VM 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ vandc %3,%1,%0\;vxor %3,%3,%2 vandc %3,%1,%0\;vxor %3,%3,%2 --- 2900,2907 ---- (xor:VM (and:VM (not:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v")) (match_operand:VM 1 "altivec_register_operand" "v,v,v,v")) (match_operand:VM 2 "altivec_register_operand" "v,v,v,v"))) ! (clobber (match_scratch:VM 4 "=X,X,X,&v"))] ! "(TARGET_P10_FUSION)" "@ vandc %3,%1,%0\;vxor %3,%3,%2 vandc %3,%1,%0\;vxor %3,%3,%2 *************** *** 2918,2925 **** (xor:VM (not:VM (xor:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v") (match_operand:VM 1 "altivec_register_operand" "v,v,v,v"))) (match_operand:VM 2 "altivec_register_operand" "v,v,v,v"))) ! (clobber (match_scratch:VM 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ veqv %3,%1,%0\;vxor %3,%3,%2 veqv %3,%1,%0\;vxor %3,%3,%2 --- 2918,2925 ---- (xor:VM (not:VM (xor:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v") (match_operand:VM 1 "altivec_register_operand" "v,v,v,v"))) (match_operand:VM 2 "altivec_register_operand" "v,v,v,v"))) ! (clobber (match_scratch:VM 4 "=X,X,X,&v"))] ! "(TARGET_P10_FUSION)" "@ veqv %3,%1,%0\;vxor %3,%3,%2 veqv %3,%1,%0\;vxor %3,%3,%2 *************** *** 2936,2943 **** (xor:VM (ior:VM (not:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v")) (not:VM (match_operand:VM 1 "altivec_register_operand" "v,v,v,v"))) (match_operand:VM 2 "altivec_register_operand" "v,v,v,v"))) ! (clobber (match_scratch:VM 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ vnand %3,%1,%0\;vxor %3,%3,%2 vnand %3,%1,%0\;vxor %3,%3,%2 --- 2936,2943 ---- (xor:VM (ior:VM (not:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v")) (not:VM (match_operand:VM 1 "altivec_register_operand" "v,v,v,v"))) (match_operand:VM 2 "altivec_register_operand" "v,v,v,v"))) ! (clobber (match_scratch:VM 4 "=X,X,X,&v"))] ! "(TARGET_P10_FUSION)" "@ vnand %3,%1,%0\;vxor %3,%3,%2 vnand %3,%1,%0\;vxor %3,%3,%2 *************** *** 2954,2961 **** (xor:VM (and:VM (not:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v")) (not:VM (match_operand:VM 1 "altivec_register_operand" "v,v,v,v"))) (match_operand:VM 2 "altivec_register_operand" "v,v,v,v"))) ! (clobber (match_scratch:VM 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ vnor %3,%1,%0\;vxor %3,%3,%2 vnor %3,%1,%0\;vxor %3,%3,%2 --- 2954,2961 ---- (xor:VM (and:VM (not:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v")) (not:VM (match_operand:VM 1 "altivec_register_operand" "v,v,v,v"))) (match_operand:VM 2 "altivec_register_operand" "v,v,v,v"))) ! (clobber (match_scratch:VM 4 "=X,X,X,&v"))] ! "(TARGET_P10_FUSION)" "@ vnor %3,%1,%0\;vxor %3,%3,%2 vnor %3,%1,%0\;vxor %3,%3,%2 *************** *** 2972,2979 **** (xor:VM (ior:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v") (match_operand:VM 1 "altivec_register_operand" "v,v,v,v")) (match_operand:VM 2 "altivec_register_operand" "v,v,v,v"))) ! (clobber (match_scratch:VM 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ vor %3,%1,%0\;vxor %3,%3,%2 vor %3,%1,%0\;vxor %3,%3,%2 --- 2972,2979 ---- (xor:VM (ior:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v") (match_operand:VM 1 "altivec_register_operand" "v,v,v,v")) (match_operand:VM 2 "altivec_register_operand" "v,v,v,v"))) ! (clobber (match_scratch:VM 4 "=X,X,X,&v"))] ! "(TARGET_P10_FUSION)" "@ vor %3,%1,%0\;vxor %3,%3,%2 vor %3,%1,%0\;vxor %3,%3,%2 *************** *** 2990,2997 **** (xor:VM (ior:VM (not:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v")) (match_operand:VM 1 "altivec_register_operand" "v,v,v,v")) (match_operand:VM 2 "altivec_register_operand" "v,v,v,v"))) ! (clobber (match_scratch:VM 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ vorc %3,%1,%0\;vxor %3,%3,%2 vorc %3,%1,%0\;vxor %3,%3,%2 --- 2990,2997 ---- (xor:VM (ior:VM (not:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v")) (match_operand:VM 1 "altivec_register_operand" "v,v,v,v")) (match_operand:VM 2 "altivec_register_operand" "v,v,v,v"))) ! (clobber (match_scratch:VM 4 "=X,X,X,&v"))] ! "(TARGET_P10_FUSION)" "@ vorc %3,%1,%0\;vxor %3,%3,%2 vorc %3,%1,%0\;vxor %3,%3,%2 *************** *** 3008,3015 **** (xor:VM (xor:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v") (match_operand:VM 1 "altivec_register_operand" "%v,v,v,v")) (match_operand:VM 2 "altivec_register_operand" "v,v,v,v"))) ! (clobber (match_scratch:VM 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2LOGICAL)" "@ vxor %3,%1,%0\;vxor %3,%3,%2 vxor %3,%1,%0\;vxor %3,%3,%2 --- 3008,3015 ---- (xor:VM (xor:VM (match_operand:VM 0 "altivec_register_operand" "v,v,v,v") (match_operand:VM 1 "altivec_register_operand" "%v,v,v,v")) (match_operand:VM 2 "altivec_register_operand" "v,v,v,v"))) ! (clobber (match_scratch:VM 4 "=X,X,X,&v"))] ! "(TARGET_P10_FUSION)" "@ vxor %3,%1,%0\;vxor %3,%3,%2 vxor %3,%1,%0\;vxor %3,%3,%2 *************** *** 3027,3033 **** (match_operand:GPR 1 "gpc_reg_operand" "%r,r,r,r")) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r"))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2ADD)" "@ add %3,%1,%0\;add %3,%3,%2 add %3,%1,%0\;add %3,%3,%2 --- 3027,3033 ---- (match_operand:GPR 1 "gpc_reg_operand" "%r,r,r,r")) (match_operand:GPR 2 "gpc_reg_operand" "r,r,r,r"))) (clobber (match_scratch:GPR 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION)" "@ add %3,%1,%0\;add %3,%3,%2 add %3,%1,%0\;add %3,%3,%2 *************** *** 3045,3051 **** (match_operand:V2DI 1 "altivec_register_operand" "%v,v,v,v")) (match_operand:V2DI 2 "altivec_register_operand" "v,v,v,v"))) (clobber (match_scratch:V2DI 4 "=X,X,X,&v"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2ADD)" "@ vaddudm %3,%1,%0\;vaddudm %3,%3,%2 vaddudm %3,%1,%0\;vaddudm %3,%3,%2 --- 3045,3051 ---- (match_operand:V2DI 1 "altivec_register_operand" "%v,v,v,v")) (match_operand:V2DI 2 "altivec_register_operand" "v,v,v,v"))) (clobber (match_scratch:V2DI 4 "=X,X,X,&v"))] ! "(TARGET_P10_FUSION)" "@ vaddudm %3,%1,%0\;vaddudm %3,%3,%2 vaddudm %3,%1,%0\;vaddudm %3,%3,%2 diff -Nrcpad gcc-11.2.0/gcc/config/rs6000/genfusion.pl gcc-11.3.0/gcc/config/rs6000/genfusion.pl *** gcc-11.2.0/gcc/config/rs6000/genfusion.pl Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/rs6000/genfusion.pl Thu Apr 21 07:58:52 2022 *************** sub gen_ld_cmpi_p10 *** 118,124 **** } else { print " (set (match_operand:${result} 0 \"gpc_reg_operand\" \"=r\") (${extend}_extend:${result} (match_dup 1)))]\n"; } ! print " \"(TARGET_P10_FUSION && TARGET_P10_FUSION_LD_CMPI)\"\n"; print " \"l${ldst}${echr}%X1 %0,%1\\;cmp${cmpl}di %2,%0,%3\"\n"; print " \"&& reload_completed\n"; print " && (cc_reg_not_cr0_operand (operands[2], CCmode)\n"; --- 118,124 ---- } else { print " (set (match_operand:${result} 0 \"gpc_reg_operand\" \"=r\") (${extend}_extend:${result} (match_dup 1)))]\n"; } ! print " \"(TARGET_P10_FUSION)\"\n"; print " \"l${ldst}${echr}%X1 %0,%1\\;cmp${cmpl}di %2,%0,%3\"\n"; print " \"&& reload_completed\n"; print " && (cc_reg_not_cr0_operand (operands[2], CCmode)\n"; *************** sub gen_logical_addsubf *** 166,173 **** $outer_op, $outer_comp, $outer_inv, $outer_rtl, $inner, @inner_ops, $inner_comp, $inner_inv, $inner_rtl, $inner_op, $both_commute, $c4, $bc, $inner_arg0, $inner_arg1, $inner_exp, $outer_arg2, $outer_exp, ! $target_flag, $ftype, $insn, $is_subf, $is_rsubf, $outer_32, $outer_42, ! $outer_name, $fuse_type); KIND: foreach $kind ('scalar','vector') { @outer_ops = @logicals; if ( $kind eq 'vector' ) { --- 166,173 ---- $outer_op, $outer_comp, $outer_inv, $outer_rtl, $inner, @inner_ops, $inner_comp, $inner_inv, $inner_rtl, $inner_op, $both_commute, $c4, $bc, $inner_arg0, $inner_arg1, $inner_exp, $outer_arg2, $outer_exp, ! $ftype, $insn, $is_subf, $is_rsubf, $outer_32, $outer_42,$outer_name, ! $fuse_type); KIND: foreach $kind ('scalar','vector') { @outer_ops = @logicals; if ( $kind eq 'vector' ) { *************** sub gen_logical_addsubf *** 199,216 **** $outer_rtl = $rtlop{$outer}; @inner_ops = @logicals; $ftype = "logical-logical"; - $target_flag = "TARGET_P10_FUSION_2LOGICAL"; if ( exists $isaddsub{$outer} ) { @inner_ops = sort keys %logicals_addsub; $ftype = "logical-add"; - $target_flag = "TARGET_P10_FUSION_LOGADD"; } elsif ( $kind ne 'vector' && exists $logicals_addsub{$outer} ) { push (@inner_ops, @addsub); } INNER: foreach $inner ( @inner_ops ) { if ( exists $isaddsub{$inner} ) { $ftype = "add-logical"; - $target_flag = "TARGET_P10_FUSION_ADDLOG"; } $inner_comp = $complement{$inner}; $inner_inv = $invert{$inner}; --- 199,213 ---- *************** sub gen_logical_addsubf *** 265,272 **** (define_insn "*fuse_${inner_op}_${outer_name}" [(set (match_operand:${mode} 3 "${pred}" "=&0,&1,&${constraint},${constraint}") ${outer_exp}) ! (clobber (match_scratch:${mode} 4 "=X,X,X,&r"))] ! "(TARGET_P10_FUSION && $target_flag)" "@ ${inner_op} %3,%1,%0\\;${outer_op} %3,${outer_32} ${inner_op} %3,%1,%0\\;${outer_op} %3,${outer_32} --- 262,269 ---- (define_insn "*fuse_${inner_op}_${outer_name}" [(set (match_operand:${mode} 3 "${pred}" "=&0,&1,&${constraint},${constraint}") ${outer_exp}) ! (clobber (match_scratch:${mode} 4 "=X,X,X,&${constraint}"))] ! "(TARGET_P10_FUSION)" "@ ${inner_op} %3,%1,%0\\;${outer_op} %3,${outer_32} ${inner_op} %3,%1,%0\\;${outer_op} %3,${outer_32} *************** sub gen_addadd *** 313,319 **** (match_operand:${mode} 1 "${pred}" "%${c4}")) (match_operand:${mode} 2 "${pred}" "${c4}"))) (clobber (match_scratch:${mode} 4 "=X,X,X,&${constraint}"))] ! "(TARGET_P10_FUSION && TARGET_P10_FUSION_2ADD)" "@ ${op} %3,%1,%0\\;${op} %3,%3,%2 ${op} %3,%1,%0\\;${op} %3,%3,%2 --- 310,316 ---- (match_operand:${mode} 1 "${pred}" "%${c4}")) (match_operand:${mode} 2 "${pred}" "${c4}"))) (clobber (match_scratch:${mode} 4 "=X,X,X,&${constraint}"))] ! "(TARGET_P10_FUSION)" "@ ${op} %3,%1,%0\\;${op} %3,%3,%2 ${op} %3,%1,%0\\;${op} %3,%3,%2 diff -Nrcpad gcc-11.2.0/gcc/config/rs6000/mma.md gcc-11.3.0/gcc/config/rs6000/mma.md *** gcc-11.2.0/gcc/config/rs6000/mma.md Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/rs6000/mma.md Thu Apr 21 07:58:52 2022 *************** *** 91,97 **** UNSPEC_MMA_XVI8GER4SPP UNSPEC_MMA_XXMFACC UNSPEC_MMA_XXMTACC ! UNSPEC_MMA_XXSETACCZ ]) ;; MMA instructions with 1 accumulator argument --- 91,100 ---- UNSPEC_MMA_XVI8GER4SPP UNSPEC_MMA_XXMFACC UNSPEC_MMA_XXMTACC ! ]) ! ! (define_c_enum "unspecv" ! [UNSPECV_MMA_XXSETACCZ ]) ;; MMA instructions with 1 accumulator argument *************** *** 335,342 **** DONE; }) (define_insn_and_split "*vsx_assemble_pair" ! [(set (match_operand:OO 0 "vsx_register_operand" "=wa") (unspec:OO [(match_operand:V16QI 1 "mma_assemble_input_operand" "mwa") (match_operand:V16QI 2 "mma_assemble_input_operand" "mwa")] UNSPEC_MMA_ASSEMBLE))] --- 338,348 ---- DONE; }) + ;; We cannot update the two output registers atomically, so mark the output + ;; as an early clobber so we don't accidentally clobber the input operands. */ + (define_insn_and_split "*vsx_assemble_pair" ! [(set (match_operand:OO 0 "vsx_register_operand" "=&wa") (unspec:OO [(match_operand:V16QI 1 "mma_assemble_input_operand" "mwa") (match_operand:V16QI 2 "mma_assemble_input_operand" "mwa")] UNSPEC_MMA_ASSEMBLE))] *************** *** 401,408 **** DONE; }) (define_insn_and_split "*mma_assemble_acc" ! [(set (match_operand:XO 0 "fpr_reg_operand" "=d") (unspec:XO [(match_operand:V16QI 1 "mma_assemble_input_operand" "mwa") (match_operand:V16QI 2 "mma_assemble_input_operand" "mwa") (match_operand:V16QI 3 "mma_assemble_input_operand" "mwa") --- 407,417 ---- DONE; }) + ;; We cannot update the four output registers atomically, so mark the output + ;; as an early clobber so we don't accidentally clobber the input operands. */ + (define_insn_and_split "*mma_assemble_acc" ! [(set (match_operand:XO 0 "fpr_reg_operand" "=&d") (unspec:XO [(match_operand:V16QI 1 "mma_assemble_input_operand" "mwa") (match_operand:V16QI 2 "mma_assemble_input_operand" "mwa") (match_operand:V16QI 3 "mma_assemble_input_operand" "mwa") *************** *** 467,496 **** " %A0" [(set_attr "type" "mma")]) ! ;; We can't have integer constants in XOmode so we wrap this in an UNSPEC. ! ! (define_expand "mma_xxsetaccz" ! [(set (match_operand:XO 0 "fpr_reg_operand") ! (const_int 0))] ! "TARGET_MMA" ! { ! rtx xo0 = gen_rtx_UNSPEC (XOmode, gen_rtvec (1, const0_rtx), ! UNSPEC_MMA_XXSETACCZ); ! emit_insn (gen_rtx_SET (operands[0], xo0)); ! DONE; ! }) ! (define_insn_and_split "*mma_xxsetaccz" [(set (match_operand:XO 0 "fpr_reg_operand" "=d") ! (unspec:XO [(match_operand 1 "const_0_to_1_operand" "O")] ! UNSPEC_MMA_XXSETACCZ))] "TARGET_MMA" "xxsetaccz %A0" ! "&& reload_completed" ! [(set (match_dup 0) (unspec:XO [(match_dup 1)] UNSPEC_MMA_XXSETACCZ))] ! "" ! [(set_attr "type" "mma") ! (set_attr "length" "4")]) (define_insn "mma_" [(set (match_operand:XO 0 "fpr_reg_operand" "=&d") --- 476,491 ---- " %A0" [(set_attr "type" "mma")]) ! ;; We can't have integer constants in XOmode so we wrap this in an ! ;; UNSPEC_VOLATILE. ! (define_insn "mma_xxsetaccz" [(set (match_operand:XO 0 "fpr_reg_operand" "=d") ! (unspec_volatile:XO [(const_int 0)] ! UNSPECV_MMA_XXSETACCZ))] "TARGET_MMA" "xxsetaccz %A0" ! [(set_attr "type" "mma")]) (define_insn "mma_" [(set (match_operand:XO 0 "fpr_reg_operand" "=&d") diff -Nrcpad gcc-11.2.0/gcc/config/rs6000/predicates.md gcc-11.3.0/gcc/config/rs6000/predicates.md *** gcc-11.2.0/gcc/config/rs6000/predicates.md Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/rs6000/predicates.md Thu Apr 21 07:58:52 2022 *************** *** 1179,1188 **** (define_predicate "mma_disassemble_output_operand" (match_code "reg,subreg,mem") { if (SUBREG_P (op)) op = SUBREG_REG (op); - if (!REG_P (op)) - return true; return vsx_register_operand (op, mode); }) --- 1179,1193 ---- (define_predicate "mma_disassemble_output_operand" (match_code "reg,subreg,mem") { + if (MEM_P (op)) + { + rtx addr = XEXP (op, 0); + return indexed_or_indirect_address (addr, mode) + || quad_address_p (addr, mode, false); + } + if (SUBREG_P (op)) op = SUBREG_REG (op); return vsx_register_operand (op, mode); }) *************** *** 1947,1949 **** --- 1952,1968 ---- (if_then_else (match_test "TARGET_VSX") (match_operand 0 "reg_or_cint_operand") (match_operand 0 "const_int_operand"))) + + ;; Return true if the operand is a valid Mach-O pic address. + ;; + (define_predicate "macho_pic_address" + (match_code "const,unspec") + { + if (GET_CODE (op) == CONST) + op = XEXP (op, 0); + + if (GET_CODE (op) == UNSPEC && XINT (op, 1) == UNSPEC_MACHOPIC_OFFSET) + return CONSTANT_P (XVECEXP (op, 0, 0)); + else + return false; + }) diff -Nrcpad gcc-11.2.0/gcc/config/rs6000/rs6000-call.c gcc-11.3.0/gcc/config/rs6000/rs6000-call.c *** gcc-11.2.0/gcc/config/rs6000/rs6000-call.c Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/rs6000/rs6000-call.c Thu Apr 21 07:58:52 2022 *************** init_cumulative_args (CUMULATIVE_ARGS *c *** 6738,6749 **** && (TYPE_MAIN_VARIANT (return_type) == long_double_type_node)))) rs6000_passes_long_double = true; - - /* Note if we passed or return a IEEE 128-bit type. We changed - the mangling for these types, and we may need to make an alias - with the old mangling. */ - if (FLOAT128_IEEE_P (return_mode)) - rs6000_passes_ieee128 = true; } if (ALTIVEC_OR_VSX_VECTOR_MODE (return_mode)) rs6000_passes_vector = true; --- 6738,6743 ---- *************** rs6000_promote_function_mode (const_tree *** 6772,6778 **** int *punsignedp ATTRIBUTE_UNUSED, const_tree, int for_return ATTRIBUTE_UNUSED) { ! PROMOTE_MODE (mode, *punsignedp, type); return mode; } --- 6766,6774 ---- int *punsignedp ATTRIBUTE_UNUSED, const_tree, int for_return ATTRIBUTE_UNUSED) { ! if (GET_MODE_CLASS (mode) == MODE_INT ! && GET_MODE_SIZE (mode) < (TARGET_32BIT ? 4 : 8)) ! mode = TARGET_32BIT ? SImode : DImode; return mode; } *************** rs6000_function_arg_advance_1 (CUMULATIV *** 7177,7188 **** || (type != NULL && TYPE_MAIN_VARIANT (type) == long_double_type_node))) rs6000_passes_long_double = true; - - /* Note if we passed or return a IEEE 128-bit type. We changed the - mangling for these types, and we may need to make an alias with - the old mangling. */ - if (FLOAT128_IEEE_P (mode)) - rs6000_passes_ieee128 = true; } if (named && ALTIVEC_OR_VSX_VECTOR_MODE (mode)) rs6000_passes_vector = true; --- 7173,7178 ---- *************** rs6000_gimple_fold_mma_builtin (gimple_s *** 11944,11949 **** --- 11934,11942 ---- tree offset = gimple_call_arg (stmt, 0); tree ptr = gimple_call_arg (stmt, 1); tree lhs = gimple_call_lhs (stmt); + if (TREE_TYPE (TREE_TYPE (ptr)) != vector_pair_type_node) + ptr = build1 (VIEW_CONVERT_EXPR, + build_pointer_type (vector_pair_type_node), ptr); tree mem = build_simple_mem_ref (build2 (POINTER_PLUS_EXPR, TREE_TYPE (ptr), ptr, offset)); gimplify_assign (lhs, mem, &new_seq); *************** rs6000_gimple_fold_mma_builtin (gimple_s *** 11957,11962 **** --- 11950,11958 ---- tree src = gimple_call_arg (stmt, 0); tree offset = gimple_call_arg (stmt, 1); tree ptr = gimple_call_arg (stmt, 2); + if (TREE_TYPE (TREE_TYPE (ptr)) != vector_pair_type_node) + ptr = build1 (VIEW_CONVERT_EXPR, + build_pointer_type (vector_pair_type_node), ptr); tree mem = build_simple_mem_ref (build2 (POINTER_PLUS_EXPR, TREE_TYPE (ptr), ptr, offset)); gimplify_assign (mem, src, &new_seq); *************** rs6000_init_builtins (void) *** 13647,13669 **** } } ! /* Returns the rs6000 builtin decl for CODE. */ tree rs6000_builtin_decl (unsigned code, bool initialize_p ATTRIBUTE_UNUSED) { - HOST_WIDE_INT fnmask; - if (code >= RS6000_BUILTIN_COUNT) return error_mark_node; - fnmask = rs6000_builtin_info[code].mask; - if ((fnmask & rs6000_builtin_mask) != fnmask) - { - rs6000_invalid_builtin ((enum rs6000_builtins)code); - return error_mark_node; - } - return rs6000_builtin_decls[code]; } --- 13643,13659 ---- } } ! /* Returns the rs6000 builtin decl for CODE. Note that we don't check ! the builtin mask here since there could be some #pragma/attribute ! target functions and the rs6000_builtin_mask could be wrong when ! this checking happens, though it will be updated properly later. */ tree rs6000_builtin_decl (unsigned code, bool initialize_p ATTRIBUTE_UNUSED) { if (code >= RS6000_BUILTIN_COUNT) return error_mark_node; return rs6000_builtin_decls[code]; } diff -Nrcpad gcc-11.2.0/gcc/config/rs6000/rs6000-cpus.def gcc-11.3.0/gcc/config/rs6000/rs6000-cpus.def *** gcc-11.2.0/gcc/config/rs6000/rs6000-cpus.def Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/rs6000/rs6000-cpus.def Thu Apr 21 07:58:52 2022 *************** *** 85,96 **** #define ISA_3_1_MASKS_SERVER (ISA_3_0_MASKS_SERVER \ | OPTION_MASK_POWER10 \ | OTHER_POWER10_MASKS \ ! | OPTION_MASK_P10_FUSION \ ! | OPTION_MASK_P10_FUSION_LD_CMPI \ ! | OPTION_MASK_P10_FUSION_2LOGICAL \ ! | OPTION_MASK_P10_FUSION_LOGADD \ ! | OPTION_MASK_P10_FUSION_ADDLOG \ ! | OPTION_MASK_P10_FUSION_2ADD) /* Flags that need to be turned off if -mno-power9-vector. */ #define OTHER_P9_VECTOR_MASKS (OPTION_MASK_FLOAT128_HW \ --- 85,91 ---- #define ISA_3_1_MASKS_SERVER (ISA_3_0_MASKS_SERVER \ | OPTION_MASK_POWER10 \ | OTHER_POWER10_MASKS \ ! | OPTION_MASK_P10_FUSION) /* Flags that need to be turned off if -mno-power9-vector. */ #define OTHER_P9_VECTOR_MASKS (OPTION_MASK_FLOAT128_HW \ *************** *** 138,148 **** | OPTION_MASK_FPRND \ | OPTION_MASK_POWER10 \ | OPTION_MASK_P10_FUSION \ - | OPTION_MASK_P10_FUSION_LD_CMPI \ - | OPTION_MASK_P10_FUSION_2LOGICAL \ - | OPTION_MASK_P10_FUSION_LOGADD \ - | OPTION_MASK_P10_FUSION_ADDLOG \ - | OPTION_MASK_P10_FUSION_2ADD \ | OPTION_MASK_HTM \ | OPTION_MASK_ISEL \ | OPTION_MASK_MFCRF \ --- 133,138 ---- diff -Nrcpad gcc-11.2.0/gcc/config/rs6000/rs6000-internal.h gcc-11.3.0/gcc/config/rs6000/rs6000-internal.h *** gcc-11.2.0/gcc/config/rs6000/rs6000-internal.h Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/rs6000/rs6000-internal.h Thu Apr 21 07:58:52 2022 *************** extern tree rs6000_fold_builtin (tree fn *** 180,188 **** tree *args ATTRIBUTE_UNUSED, bool ignore ATTRIBUTE_UNUSED); - #if TARGET_ELF - extern bool rs6000_passes_ieee128; - #endif extern bool rs6000_passes_float; extern bool rs6000_passes_long_double; extern bool rs6000_passes_vector; --- 180,185 ---- diff -Nrcpad gcc-11.2.0/gcc/config/rs6000/rs6000-logue.c gcc-11.3.0/gcc/config/rs6000/rs6000-logue.c *** gcc-11.2.0/gcc/config/rs6000/rs6000-logue.c Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/rs6000/rs6000-logue.c Thu Apr 21 07:58:52 2022 *************** rs6000_emit_prologue (void) *** 3293,3302 **** /* If we need to save CR, put it into r12 or r11. Choose r12 except when r12 will be needed by out-of-line gpr save. */ ! cr_save_regno = ((DEFAULT_ABI == ABI_AIX || DEFAULT_ABI == ABI_ELFv2) ! && !(strategy & (SAVE_INLINE_GPRS ! | SAVE_NOINLINE_GPRS_SAVES_LR)) ! ? 11 : 12); if (!WORLD_SAVE_P (info) && info->cr_save_p && REGNO (frame_reg_rtx) != cr_save_regno --- 3293,3305 ---- /* If we need to save CR, put it into r12 or r11. Choose r12 except when r12 will be needed by out-of-line gpr save. */ ! if (DEFAULT_ABI == ABI_AIX ! && !(strategy & (SAVE_INLINE_GPRS | SAVE_NOINLINE_GPRS_SAVES_LR))) ! cr_save_regno = 11; ! else if (DEFAULT_ABI == ABI_ELFv2) ! cr_save_regno = 11; ! else ! cr_save_regno = 12; if (!WORLD_SAVE_P (info) && info->cr_save_p && REGNO (frame_reg_rtx) != cr_save_regno *************** rs6000_emit_epilogue (enum epilogue_type *** 4812,4817 **** --- 4815,4824 ---- else if (REGNO (frame_reg_rtx) == 12) cr_save_regno = 11; + /* For ELFv2 r12 is already in use as the GEP. */ + if (DEFAULT_ABI == ABI_ELFv2) + cr_save_regno = 11; + cr_save_reg = load_cr_save (cr_save_regno, frame_reg_rtx, info->cr_save_offset + frame_off, exit_func); diff -Nrcpad gcc-11.2.0/gcc/config/rs6000/rs6000.c gcc-11.3.0/gcc/config/rs6000/rs6000.c *** gcc-11.2.0/gcc/config/rs6000/rs6000.c Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/rs6000/rs6000.c Thu Apr 21 07:58:52 2022 *************** int dot_symbols; *** 117,135 **** of this machine mode. */ scalar_int_mode rs6000_pmode; - #if TARGET_ELF - /* Note whether IEEE 128-bit floating point was passed or returned, either as - the __float128/_Float128 explicit type, or when long double is IEEE 128-bit - floating point. We changed the default C++ mangling for these types and we - may want to generate a weak alias of the old mangling (U10__float128) to the - new mangling (u9__ieee128). */ - bool rs6000_passes_ieee128 = false; - #endif - - /* Generate the manged name (i.e. U10__float128) used in GCC 8.1, and not the - name used in current releases (i.e. u9__ieee128). */ - static bool ieee128_mangling_gcc_8_1; - /* Width in bits of a pointer. */ unsigned rs6000_pointer_size; --- 117,122 ---- *************** static const struct attribute_spec rs600 *** 1758,1768 **** #undef TARGET_STARTING_FRAME_OFFSET #define TARGET_STARTING_FRAME_OFFSET rs6000_starting_frame_offset - #if TARGET_ELF && RS6000_WEAK - #undef TARGET_ASM_GLOBALIZE_DECL_NAME - #define TARGET_ASM_GLOBALIZE_DECL_NAME rs6000_globalize_decl_name - #endif - #undef TARGET_SETJMP_PRESERVES_NONVOLATILE_REGS_P #define TARGET_SETJMP_PRESERVES_NONVOLATILE_REGS_P hook_bool_void_true --- 1745,1750 ---- *************** rs6000_override_options_after_change (vo *** 3472,3477 **** --- 3454,3463 ---- } else if (!global_options_set.x_flag_cunroll_grow_size) flag_cunroll_grow_size = flag_peel_loops || optimize >= 3; + + /* If we are inserting ROP-protect instructions, disable shrink wrap. */ + if (rs6000_rop_protect) + flag_shrink_wrap = 0; } #ifdef TARGET_USES_LINUX64_OPT *************** rs6000_option_override_internal (bool gl *** 3946,3951 **** --- 3932,3946 ---- else if (TARGET_ALTIVEC) rs6000_isa_flags |= (OPTION_MASK_PPC_GFXOPT & ~ignore_masks); + /* Disable VSX and Altivec silently if the user switched cpus to power7 in a + target attribute or pragma which automatically enables both options, + unless the altivec ABI was set. This is set by default for 64-bit, but + not for 32-bit. Don't move this before the above code using ignore_masks, + since it can reset the cleared VSX/ALTIVEC flag again. */ + if (main_target_opt && !main_target_opt->x_rs6000_altivec_abi) + rs6000_isa_flags &= ~((OPTION_MASK_VSX | OPTION_MASK_ALTIVEC) + & ~rs6000_isa_flags_explicit); + if (TARGET_CRYPTO && !TARGET_ALTIVEC) { if (rs6000_isa_flags_explicit & OPTION_MASK_CRYPTO) *************** rs6000_option_override_internal (bool gl *** 4036,4045 **** && ((rs6000_isa_flags_explicit & OPTION_MASK_QUAD_MEMORY_ATOMIC) == 0)) rs6000_isa_flags |= OPTION_MASK_QUAD_MEMORY_ATOMIC; - /* If we are inserting ROP-protect instructions, disable shrink wrap. */ - if (rs6000_rop_protect) - flag_shrink_wrap = 0; - /* If we can shrink-wrap the TOC register save separately, then use -msave-toc-indirect unless explicitly disabled. */ if ((rs6000_isa_flags_explicit & OPTION_MASK_SAVE_TOC_INDIRECT) == 0 --- 4031,4036 ---- *************** rs6000_option_override_internal (bool gl *** 4183,4195 **** } else if (rs6000_long_double_type_size == 128) rs6000_long_double_type_size = FLOAT_PRECISION_TFmode; - else if (global_options_set.x_rs6000_ieeequad) - { - if (global_options.x_rs6000_ieeequad) - error ("%qs requires %qs", "-mabi=ieeelongdouble", "-mlong-double-128"); - else - error ("%qs requires %qs", "-mabi=ibmlongdouble", "-mlong-double-128"); - } /* Set -mabi=ieeelongdouble on some old targets. In the future, power server systems will also set long double to be IEEE 128-bit. AIX and Darwin --- 4174,4179 ---- *************** rs6000_option_override_internal (bool gl *** 4199,4211 **** if (!global_options_set.x_rs6000_ieeequad) rs6000_ieeequad = TARGET_IEEEQUAD_DEFAULT; ! else { if (global_options.x_rs6000_ieeequad && (!TARGET_POPCNTD || !TARGET_VSX)) error ("%qs requires full ISA 2.06 support", "-mabi=ieeelongdouble"); ! if (rs6000_ieeequad != TARGET_IEEEQUAD_DEFAULT && TARGET_LONG_DOUBLE_128) { /* Determine if the user can change the default long double type at compilation time. Only C and C++ support this, and you need GLIBC --- 4183,4195 ---- if (!global_options_set.x_rs6000_ieeequad) rs6000_ieeequad = TARGET_IEEEQUAD_DEFAULT; ! else if (TARGET_LONG_DOUBLE_128) { if (global_options.x_rs6000_ieeequad && (!TARGET_POPCNTD || !TARGET_VSX)) error ("%qs requires full ISA 2.06 support", "-mabi=ieeelongdouble"); ! if (rs6000_ieeequad != TARGET_IEEEQUAD_DEFAULT) { /* Determine if the user can change the default long double type at compilation time. Only C and C++ support this, and you need GLIBC *************** rs6000_option_override_internal (bool gl *** 4366,4383 **** } } - /* Disable VSX and Altivec silently if the user switched cpus to power7 in a - target attribute or pragma which automatically enables both options, - unless the altivec ABI was set. This is set by default for 64-bit, but - not for 32-bit. */ - if (main_target_opt != NULL && !main_target_opt->x_rs6000_altivec_abi) - { - TARGET_FLOAT128_TYPE = 0; - rs6000_isa_flags &= ~((OPTION_MASK_VSX | OPTION_MASK_ALTIVEC - | OPTION_MASK_FLOAT128_KEYWORD) - & ~rs6000_isa_flags_explicit); - } - /* Enable Altivec ABI for AIX -maltivec. */ if (TARGET_XCOFF && (TARGET_ALTIVEC || TARGET_VSX) --- 4350,4355 ---- *************** rs6000_option_override_internal (bool gl *** 4465,4490 **** && (rs6000_isa_flags_explicit & OPTION_MASK_P10_FUSION) == 0) rs6000_isa_flags |= OPTION_MASK_P10_FUSION; - if (TARGET_POWER10 && - (rs6000_isa_flags_explicit & OPTION_MASK_P10_FUSION_LD_CMPI) == 0) - rs6000_isa_flags |= OPTION_MASK_P10_FUSION_LD_CMPI; - - if (TARGET_POWER10 - && (rs6000_isa_flags_explicit & OPTION_MASK_P10_FUSION_2LOGICAL) == 0) - rs6000_isa_flags |= OPTION_MASK_P10_FUSION_2LOGICAL; - - if (TARGET_POWER10 - && (rs6000_isa_flags_explicit & OPTION_MASK_P10_FUSION_LOGADD) == 0) - rs6000_isa_flags |= OPTION_MASK_P10_FUSION_LOGADD; - - if (TARGET_POWER10 - && (rs6000_isa_flags_explicit & OPTION_MASK_P10_FUSION_ADDLOG) == 0) - rs6000_isa_flags |= OPTION_MASK_P10_FUSION_ADDLOG; - - if (TARGET_POWER10 - && (rs6000_isa_flags_explicit & OPTION_MASK_P10_FUSION_2ADD) == 0) - rs6000_isa_flags |= OPTION_MASK_P10_FUSION_2ADD; - /* Turn off vector pair/mma options on non-power10 systems. */ else if (!TARGET_POWER10 && TARGET_MMA) { --- 4437,4442 ---- *************** rs6000_option_override_internal (bool gl *** 4494,4499 **** --- 4446,4461 ---- rs6000_isa_flags &= ~OPTION_MASK_MMA; } + /* MMA requires SIMD support as ISA 3.1 claims and our implementation + such as "*movoo" uses vector pair access which use VSX registers. + So make MMA require VSX support here. */ + if (TARGET_MMA && !TARGET_VSX) + { + if ((rs6000_isa_flags_explicit & OPTION_MASK_MMA) != 0) + error ("%qs requires %qs", "-mmma", "-mvsx"); + rs6000_isa_flags &= ~OPTION_MASK_MMA; + } + if (!TARGET_PCREL && TARGET_PCREL_OPT) rs6000_isa_flags &= ~OPTION_MASK_PCREL_OPT; *************** const char *rs6000_machine; *** 5780,5785 **** --- 5742,5775 ---- const char * rs6000_machine_from_flags (void) { + /* For some CPUs, the machine cannot be determined by ISA flags. We have to + check them first. */ + switch (rs6000_cpu) + { + case PROCESSOR_PPC8540: + case PROCESSOR_PPC8548: + return "e500"; + + case PROCESSOR_PPCE300C2: + case PROCESSOR_PPCE300C3: + return "e300"; + + case PROCESSOR_PPCE500MC: + return "e500mc"; + + case PROCESSOR_PPCE500MC64: + return "e500mc64"; + + case PROCESSOR_PPCE5500: + return "e5500"; + + case PROCESSOR_PPCE6500: + return "e6500"; + + default: + break; + } + HOST_WIDE_INT flags = rs6000_isa_flags; /* Disable the flags that should never influence the .machine selection. */ *************** vspltis_shifted (rtx op) *** 6193,6200 **** return false; /* We need to create pseudo registers to do the shift, so don't recognize ! shift vector constants after reload. */ ! if (!can_create_pseudo_p ()) return false; nunits = GET_MODE_NUNITS (mode); --- 6183,6193 ---- return false; /* We need to create pseudo registers to do the shift, so don't recognize ! shift vector constants after reload. Don't match it even before RA ! after split1 is done, because there won't be further splitting pass ! before RA to do the splitting. */ ! if (!can_create_pseudo_p () ! || (cfun->curr_properties & PROP_rtl_split_insns)) return false; nunits = GET_MODE_NUNITS (mode); *************** darwin_rs6000_legitimate_lo_sum_const_p *** 8244,8251 **** 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; --- 8237,8250 ---- if (GET_CODE (x) == CONST) x = XEXP (x, 0); + /* If we are building PIC code, then any symbol must be wrapped in an + UNSPEC_MACHOPIC_OFFSET so that it will get the picbase subtracted. */ + bool machopic_offs_p = false; if (GET_CODE (x) == UNSPEC && XINT (x, 1) == UNSPEC_MACHOPIC_OFFSET) ! { ! x = XVECEXP (x, 0, 0); ! machopic_offs_p = true; ! } rtx sym = NULL_RTX; unsigned HOST_WIDE_INT offset = 0; *************** darwin_rs6000_legitimate_lo_sum_const_p *** 8276,8281 **** --- 8275,8283 ---- if (sym) { tree decl = SYMBOL_REF_DECL (sym); + /* As noted above, PIC code cannot use a bare SYMBOL_REF. */ + if (TARGET_MACHO && flag_pic && !machopic_offs_p) + return false; #if TARGET_MACHO if (MACHO_SYMBOL_INDIRECTION_P (sym)) /* The decl in an indirection symbol is the original one, which might *************** legitimate_lo_sum_address_p (machine_mod *** 8863,8869 **** return false; x = XEXP (x, 1); ! if (TARGET_ELF || TARGET_MACHO) { bool large_toc_ok; --- 8865,8871 ---- return false; x = XEXP (x, 1); ! if (TARGET_ELF) { bool large_toc_ok; *************** legitimate_lo_sum_address_p (machine_mod *** 8889,8895 **** --- 8891,8922 ---- return CONSTANT_P (x) || large_toc_ok; } + else if (TARGET_MACHO) + { + if (GET_MODE_NUNITS (mode) != 1) + return false; + if (GET_MODE_SIZE (mode) > UNITS_PER_WORD + && !(/* see above */ + TARGET_HARD_FLOAT && (mode == DFmode || mode == DDmode))) + return false; + #if TARGET_MACHO + if (MACHO_DYNAMIC_NO_PIC_P || !flag_pic) + return CONSTANT_P (x); + #endif + /* Macho-O PIC code from here. */ + if (GET_CODE (x) == CONST) + x = XEXP (x, 0); + + /* SYMBOL_REFs need to be wrapped in an UNSPEC_MACHOPIC_OFFSET. */ + if (SYMBOL_REF_P (x)) + return false; + /* So this is OK if the wrapped object is const. */ + if (GET_CODE (x) == UNSPEC + && XINT (x, 1) == UNSPEC_MACHOPIC_OFFSET) + return CONSTANT_P (XVECEXP (x, 0, 0)); + return CONSTANT_P (x); + } return false; } *************** rs6000_legitimize_address (rtx x, rtx ol *** 8943,8949 **** else return force_reg (Pmode, x); } ! if (SYMBOL_REF_P (x)) { enum tls_model model = SYMBOL_REF_TLS_MODEL (x); if (model != 0) --- 8970,8976 ---- else return force_reg (Pmode, x); } ! if (SYMBOL_REF_P (x) && !TARGET_MACHO) { enum tls_model model = SYMBOL_REF_TLS_MODEL (x); if (model != 0) *************** init_float128_ibm (machine_mode mode) *** 10925,10930 **** --- 10952,10963 ---- set_conv_libfunc (trunc_optab, DDmode, mode, "__dpd_trunctfdd"); set_conv_libfunc (sext_optab, TDmode, mode, "__dpd_extendtftd"); + set_conv_libfunc (sfix_optab, DImode, mode, "__fixtfdi"); + set_conv_libfunc (ufix_optab, DImode, mode, "__fixunstfdi"); + + set_conv_libfunc (sfloat_optab, mode, DImode, "__floatditf"); + set_conv_libfunc (ufloat_optab, mode, DImode, "__floatunditf"); + if (TARGET_POWERPC64) { set_conv_libfunc (sfix_optab, TImode, mode, "__fixtfti"); *************** rs6000_expand_atomic_op (enum rtx_code c *** 16716,17097 **** emit_move_insn (orig_after, after); } - /* Emit instructions to move SRC to DST. Called by splitters for - multi-register moves. It will emit at most one instruction for - each register that is accessed; that is, it won't emit li/lis pairs - (or equivalent for 64-bit code). One of SRC or DST must be a hard - register. */ - - void - rs6000_split_multireg_move (rtx dst, rtx src) - { - /* The register number of the first register being moved. */ - int reg; - /* The mode that is to be moved. */ - machine_mode mode; - /* The mode that the move is being done in, and its size. */ - machine_mode reg_mode; - int reg_mode_size; - /* The number of registers that will be moved. */ - int nregs; - - reg = REG_P (dst) ? REGNO (dst) : REGNO (src); - mode = GET_MODE (dst); - nregs = hard_regno_nregs (reg, mode); - - /* If we have a vector quad register for MMA, and this is a load or store, - see if we can use vector paired load/stores. */ - if (mode == XOmode && TARGET_MMA - && (MEM_P (dst) || MEM_P (src))) - { - reg_mode = OOmode; - nregs /= 2; - } - /* If we have a vector pair/quad mode, split it into two/four separate - vectors. */ - else if (mode == OOmode || mode == XOmode) - reg_mode = V1TImode; - else if (FP_REGNO_P (reg)) - reg_mode = DECIMAL_FLOAT_MODE_P (mode) ? DDmode : - (TARGET_HARD_FLOAT ? DFmode : SFmode); - else if (ALTIVEC_REGNO_P (reg)) - reg_mode = V16QImode; - else - reg_mode = word_mode; - reg_mode_size = GET_MODE_SIZE (reg_mode); - - gcc_assert (reg_mode_size * nregs == GET_MODE_SIZE (mode)); - - /* TDmode residing in FP registers is special, since the ISA requires that - the lower-numbered word of a register pair is always the most significant - word, even in little-endian mode. This does not match the usual subreg - semantics, so we cannnot use simplify_gen_subreg in those cases. Access - the appropriate constituent registers "by hand" in little-endian mode. - - Note we do not need to check for destructive overlap here since TDmode - can only reside in even/odd register pairs. */ - if (FP_REGNO_P (reg) && DECIMAL_FLOAT_MODE_P (mode) && !BYTES_BIG_ENDIAN) - { - rtx p_src, p_dst; - int i; - - for (i = 0; i < nregs; i++) - { - if (REG_P (src) && FP_REGNO_P (REGNO (src))) - p_src = gen_rtx_REG (reg_mode, REGNO (src) + nregs - 1 - i); - else - p_src = simplify_gen_subreg (reg_mode, src, mode, - i * reg_mode_size); - - if (REG_P (dst) && FP_REGNO_P (REGNO (dst))) - p_dst = gen_rtx_REG (reg_mode, REGNO (dst) + nregs - 1 - i); - else - p_dst = simplify_gen_subreg (reg_mode, dst, mode, - i * reg_mode_size); - - emit_insn (gen_rtx_SET (p_dst, p_src)); - } - - return; - } - - /* The __vector_pair and __vector_quad modes are multi-register - modes, so if we have to load or store the registers, we have to be - careful to properly swap them if we're in little endian mode - below. This means the last register gets the first memory - location. We also need to be careful of using the right register - numbers if we are splitting XO to OO. */ - if (mode == OOmode || mode == XOmode) - { - nregs = hard_regno_nregs (reg, mode); - int reg_mode_nregs = hard_regno_nregs (reg, reg_mode); - if (MEM_P (dst)) - { - unsigned offset = 0; - unsigned size = GET_MODE_SIZE (reg_mode); - - /* If we are reading an accumulator register, we have to - deprime it before we can access it. */ - if (TARGET_MMA - && GET_MODE (src) == XOmode && FP_REGNO_P (REGNO (src))) - emit_insn (gen_mma_xxmfacc (src, src)); - - for (int i = 0; i < nregs; i += reg_mode_nregs) - { - unsigned subreg = - (WORDS_BIG_ENDIAN) ? i : (nregs - reg_mode_nregs - i); - rtx dst2 = adjust_address (dst, reg_mode, offset); - rtx src2 = gen_rtx_REG (reg_mode, reg + subreg); - offset += size; - emit_insn (gen_rtx_SET (dst2, src2)); - } - - return; - } - - if (MEM_P (src)) - { - unsigned offset = 0; - unsigned size = GET_MODE_SIZE (reg_mode); - - for (int i = 0; i < nregs; i += reg_mode_nregs) - { - unsigned subreg = - (WORDS_BIG_ENDIAN) ? i : (nregs - reg_mode_nregs - i); - rtx dst2 = gen_rtx_REG (reg_mode, reg + subreg); - rtx src2 = adjust_address (src, reg_mode, offset); - offset += size; - emit_insn (gen_rtx_SET (dst2, src2)); - } - - /* If we are writing an accumulator register, we have to - prime it after we've written it. */ - if (TARGET_MMA - && GET_MODE (dst) == XOmode && FP_REGNO_P (REGNO (dst))) - emit_insn (gen_mma_xxmtacc (dst, dst)); - - return; - } - - if (GET_CODE (src) == UNSPEC) - { - gcc_assert (XINT (src, 1) == UNSPEC_MMA_ASSEMBLE); - gcc_assert (REG_P (dst)); - if (GET_MODE (src) == XOmode) - gcc_assert (FP_REGNO_P (REGNO (dst))); - if (GET_MODE (src) == OOmode) - gcc_assert (VSX_REGNO_P (REGNO (dst))); - - reg_mode = GET_MODE (XVECEXP (src, 0, 0)); - int nvecs = XVECLEN (src, 0); - for (int i = 0; i < nvecs; i++) - { - int index = WORDS_BIG_ENDIAN ? i : nvecs - 1 - i; - rtx dst_i = gen_rtx_REG (reg_mode, reg + index); - emit_insn (gen_rtx_SET (dst_i, XVECEXP (src, 0, i))); - } - - /* We are writing an accumulator register, so we have to - prime it after we've written it. */ - if (GET_MODE (src) == XOmode) - emit_insn (gen_mma_xxmtacc (dst, dst)); - - return; - } - - /* Register -> register moves can use common code. */ - } - - if (REG_P (src) && REG_P (dst) && (REGNO (src) < REGNO (dst))) - { - /* If we are reading an accumulator register, we have to - deprime it before we can access it. */ - if (TARGET_MMA - && GET_MODE (src) == XOmode && FP_REGNO_P (REGNO (src))) - emit_insn (gen_mma_xxmfacc (src, src)); - - /* Move register range backwards, if we might have destructive - overlap. */ - int i; - /* XO/OO are opaque so cannot use subregs. */ - if (mode == OOmode || mode == XOmode ) - { - for (i = nregs - 1; i >= 0; i--) - { - rtx dst_i = gen_rtx_REG (reg_mode, REGNO (dst) + i); - rtx src_i = gen_rtx_REG (reg_mode, REGNO (src) + i); - emit_insn (gen_rtx_SET (dst_i, src_i)); - } - } - else - { - for (i = nregs - 1; i >= 0; i--) - emit_insn (gen_rtx_SET (simplify_gen_subreg (reg_mode, dst, mode, - i * reg_mode_size), - simplify_gen_subreg (reg_mode, src, mode, - i * reg_mode_size))); - } - - /* If we are writing an accumulator register, we have to - prime it after we've written it. */ - if (TARGET_MMA - && GET_MODE (dst) == XOmode && FP_REGNO_P (REGNO (dst))) - emit_insn (gen_mma_xxmtacc (dst, dst)); - } - else - { - int i; - int j = -1; - bool used_update = false; - rtx restore_basereg = NULL_RTX; - - if (MEM_P (src) && INT_REGNO_P (reg)) - { - rtx breg; - - if (GET_CODE (XEXP (src, 0)) == PRE_INC - || GET_CODE (XEXP (src, 0)) == PRE_DEC) - { - rtx delta_rtx; - breg = XEXP (XEXP (src, 0), 0); - delta_rtx = (GET_CODE (XEXP (src, 0)) == PRE_INC - ? GEN_INT (GET_MODE_SIZE (GET_MODE (src))) - : GEN_INT (-GET_MODE_SIZE (GET_MODE (src)))); - emit_insn (gen_add3_insn (breg, breg, delta_rtx)); - src = replace_equiv_address (src, breg); - } - else if (! rs6000_offsettable_memref_p (src, reg_mode, true)) - { - if (GET_CODE (XEXP (src, 0)) == PRE_MODIFY) - { - rtx basereg = XEXP (XEXP (src, 0), 0); - if (TARGET_UPDATE) - { - rtx ndst = simplify_gen_subreg (reg_mode, dst, mode, 0); - emit_insn (gen_rtx_SET (ndst, - gen_rtx_MEM (reg_mode, - XEXP (src, 0)))); - used_update = true; - } - else - emit_insn (gen_rtx_SET (basereg, - XEXP (XEXP (src, 0), 1))); - src = replace_equiv_address (src, basereg); - } - else - { - rtx basereg = gen_rtx_REG (Pmode, reg); - emit_insn (gen_rtx_SET (basereg, XEXP (src, 0))); - src = replace_equiv_address (src, basereg); - } - } - - breg = XEXP (src, 0); - if (GET_CODE (breg) == PLUS || GET_CODE (breg) == LO_SUM) - breg = XEXP (breg, 0); - - /* If the base register we are using to address memory is - also a destination reg, then change that register last. */ - if (REG_P (breg) - && REGNO (breg) >= REGNO (dst) - && REGNO (breg) < REGNO (dst) + nregs) - j = REGNO (breg) - REGNO (dst); - } - else if (MEM_P (dst) && INT_REGNO_P (reg)) - { - rtx breg; - - if (GET_CODE (XEXP (dst, 0)) == PRE_INC - || GET_CODE (XEXP (dst, 0)) == PRE_DEC) - { - rtx delta_rtx; - breg = XEXP (XEXP (dst, 0), 0); - delta_rtx = (GET_CODE (XEXP (dst, 0)) == PRE_INC - ? GEN_INT (GET_MODE_SIZE (GET_MODE (dst))) - : GEN_INT (-GET_MODE_SIZE (GET_MODE (dst)))); - - /* We have to update the breg before doing the store. - Use store with update, if available. */ - - if (TARGET_UPDATE) - { - rtx nsrc = simplify_gen_subreg (reg_mode, src, mode, 0); - emit_insn (TARGET_32BIT - ? (TARGET_POWERPC64 - ? gen_movdi_si_update (breg, breg, delta_rtx, nsrc) - : gen_movsi_si_update (breg, breg, delta_rtx, nsrc)) - : gen_movdi_di_update (breg, breg, delta_rtx, nsrc)); - used_update = true; - } - else - emit_insn (gen_add3_insn (breg, breg, delta_rtx)); - dst = replace_equiv_address (dst, breg); - } - else if (!rs6000_offsettable_memref_p (dst, reg_mode, true) - && GET_CODE (XEXP (dst, 0)) != LO_SUM) - { - if (GET_CODE (XEXP (dst, 0)) == PRE_MODIFY) - { - rtx basereg = XEXP (XEXP (dst, 0), 0); - if (TARGET_UPDATE) - { - rtx nsrc = simplify_gen_subreg (reg_mode, src, mode, 0); - emit_insn (gen_rtx_SET (gen_rtx_MEM (reg_mode, - XEXP (dst, 0)), - nsrc)); - used_update = true; - } - else - emit_insn (gen_rtx_SET (basereg, - XEXP (XEXP (dst, 0), 1))); - dst = replace_equiv_address (dst, basereg); - } - else - { - rtx basereg = XEXP (XEXP (dst, 0), 0); - rtx offsetreg = XEXP (XEXP (dst, 0), 1); - gcc_assert (GET_CODE (XEXP (dst, 0)) == PLUS - && REG_P (basereg) - && REG_P (offsetreg) - && REGNO (basereg) != REGNO (offsetreg)); - if (REGNO (basereg) == 0) - { - rtx tmp = offsetreg; - offsetreg = basereg; - basereg = tmp; - } - emit_insn (gen_add3_insn (basereg, basereg, offsetreg)); - restore_basereg = gen_sub3_insn (basereg, basereg, offsetreg); - dst = replace_equiv_address (dst, basereg); - } - } - else if (GET_CODE (XEXP (dst, 0)) != LO_SUM) - gcc_assert (rs6000_offsettable_memref_p (dst, reg_mode, true)); - } - - /* If we are reading an accumulator register, we have to - deprime it before we can access it. */ - if (TARGET_MMA && REG_P (src) - && GET_MODE (src) == XOmode && FP_REGNO_P (REGNO (src))) - emit_insn (gen_mma_xxmfacc (src, src)); - - for (i = 0; i < nregs; i++) - { - /* Calculate index to next subword. */ - ++j; - if (j == nregs) - j = 0; - - /* If compiler already emitted move of first word by - store with update, no need to do anything. */ - if (j == 0 && used_update) - continue; - - /* XO/OO are opaque so cannot use subregs. */ - if (mode == OOmode || mode == XOmode ) - { - rtx dst_i = gen_rtx_REG (reg_mode, REGNO (dst) + j); - rtx src_i = gen_rtx_REG (reg_mode, REGNO (src) + j); - emit_insn (gen_rtx_SET (dst_i, src_i)); - } - else - emit_insn (gen_rtx_SET (simplify_gen_subreg (reg_mode, dst, mode, - j * reg_mode_size), - simplify_gen_subreg (reg_mode, src, mode, - j * reg_mode_size))); - } - - /* If we are writing an accumulator register, we have to - prime it after we've written it. */ - if (TARGET_MMA && REG_P (dst) - && GET_MODE (dst) == XOmode && FP_REGNO_P (REGNO (dst))) - emit_insn (gen_mma_xxmtacc (dst, dst)); - - if (restore_basereg != NULL_RTX) - emit_insn (restore_basereg); - } - } - static GTY(()) alias_set_type TOC_alias_set = -1; alias_set_type --- 16749,16754 ---- *************** get_memref_parts (rtx mem, rtx *base, HO *** 18453,18475 **** return true; } ! /* The function returns true if the target storage location of ! mem1 is adjacent to the target storage location of mem2 */ ! /* Return 1 if memory locations are adjacent. */ ! static bool adjacent_mem_locations (rtx mem1, rtx mem2) { rtx reg1, reg2; HOST_WIDE_INT off1, size1, off2, size2; ! if (get_memref_parts (mem1, ®1, &off1, &size1) ! && get_memref_parts (mem2, ®2, &off2, &size2)) ! return ((REGNO (reg1) == REGNO (reg2)) ! && ((off1 + size1 == off2) ! || (off2 + size2 == off1))); ! return false; } /* This function returns true if it can be determined that the two MEM --- 18110,18138 ---- return true; } ! /* If the target storage locations of arguments MEM1 and MEM2 are ! adjacent, then return the argument that has the lower address. ! Otherwise, return NULL_RTX. */ ! static rtx adjacent_mem_locations (rtx mem1, rtx mem2) { rtx reg1, reg2; HOST_WIDE_INT off1, size1, off2, size2; ! if (MEM_P (mem1) ! && MEM_P (mem2) ! && get_memref_parts (mem1, ®1, &off1, &size1) ! && get_memref_parts (mem2, ®2, &off2, &size2) ! && REGNO (reg1) == REGNO (reg2)) ! { ! if (off1 + size1 == off2) ! return mem1; ! else if (off2 + size2 == off1) ! return mem2; ! } ! return NULL_RTX; } /* This function returns true if it can be determined that the two MEM *************** is_load_insn1 (rtx pat, rtx *load_mem) *** 18731,18737 **** return false; if (GET_CODE (pat) == SET) ! return find_mem_ref (SET_SRC (pat), load_mem); if (GET_CODE (pat) == PARALLEL) { --- 18394,18405 ---- return false; if (GET_CODE (pat) == SET) ! { ! if (REG_P (SET_DEST (pat))) ! return find_mem_ref (SET_SRC (pat), load_mem); ! else ! return false; ! } if (GET_CODE (pat) == PARALLEL) { *************** is_store_insn1 (rtx pat, rtx *str_mem) *** 18768,18774 **** return false; if (GET_CODE (pat) == SET) ! return find_mem_ref (SET_DEST (pat), str_mem); if (GET_CODE (pat) == PARALLEL) { --- 18436,18447 ---- return false; if (GET_CODE (pat) == SET) ! { ! if (REG_P (SET_SRC (pat)) || SUBREG_P (SET_SRC (pat))) ! return find_mem_ref (SET_DEST (pat), str_mem); ! else ! return false; ! } if (GET_CODE (pat) == PARALLEL) { *************** power9_sched_reorder2 (rtx_insn **ready, *** 19232,19237 **** --- 18905,18992 ---- return cached_can_issue_more; } + /* Determine if INSN is a store to memory that can be fused with a similar + adjacent store. */ + + static bool + is_fusable_store (rtx_insn *insn, rtx *str_mem) + { + /* Insn must be a non-prefixed base+disp form store. */ + if (is_store_insn (insn, str_mem) + && get_attr_prefixed (insn) == PREFIXED_NO + && get_attr_update (insn) == UPDATE_NO + && get_attr_indexed (insn) == INDEXED_NO) + { + /* Further restrictions by mode and size. */ + if (!MEM_SIZE_KNOWN_P (*str_mem)) + return false; + + machine_mode mode = GET_MODE (*str_mem); + HOST_WIDE_INT size = MEM_SIZE (*str_mem); + + if (INTEGRAL_MODE_P (mode)) + /* Must be word or dword size. */ + return (size == 4 || size == 8); + else if (FLOAT_MODE_P (mode)) + /* Must be dword size. */ + return (size == 8); + } + + return false; + } + + /* Do Power10 specific reordering of the ready list. */ + + static int + power10_sched_reorder (rtx_insn **ready, int lastpos) + { + rtx mem1; + + /* Do store fusion during sched2 only. */ + if (!reload_completed) + return cached_can_issue_more; + + /* If the prior insn finished off a store fusion pair then simply + reset the counter and return, nothing more to do. */ + if (load_store_pendulum != 0) + { + load_store_pendulum = 0; + return cached_can_issue_more; + } + + /* Try to pair certain store insns to adjacent memory locations + so that the hardware will fuse them to a single operation. */ + if (TARGET_P10_FUSION && is_fusable_store (last_scheduled_insn, &mem1)) + { + + /* A fusable store was just scheduled. Scan the ready list for another + store that it can fuse with. */ + int pos = lastpos; + while (pos >= 0) + { + rtx mem2; + /* GPR stores can be ascending or descending offsets, FPR/VSR stores + must be ascending only. */ + if (is_fusable_store (ready[pos], &mem2) + && ((INTEGRAL_MODE_P (GET_MODE (mem1)) + && adjacent_mem_locations (mem1, mem2)) + || (FLOAT_MODE_P (GET_MODE (mem1)) + && (adjacent_mem_locations (mem1, mem2) == mem1)))) + { + /* Found a fusable store. Move it to the end of the ready list + so it is scheduled next. */ + move_to_end_of_ready (ready, pos, lastpos); + + load_store_pendulum = -1; + break; + } + pos--; + } + } + + return cached_can_issue_more; + } + /* We are about to begin issuing insns for this clock cycle. */ static int *************** rs6000_sched_reorder (FILE *dump ATTRIBU *** 19258,19263 **** --- 19013,19022 ---- if (rs6000_tune == PROCESSOR_POWER6) load_store_pendulum = 0; + /* Do Power10 dependent reordering. */ + if (rs6000_tune == PROCESSOR_POWER10 && last_scheduled_insn) + power10_sched_reorder (ready, n_ready - 1); + return rs6000_issue_rate (); } *************** rs6000_sched_reorder2 (FILE *dump, int s *** 19279,19284 **** --- 19038,19047 ---- && recog_memoized (last_scheduled_insn) >= 0) return power9_sched_reorder2 (ready, *pn_ready - 1); + /* Do Power10 dependent reordering. */ + if (rs6000_tune == PROCESSOR_POWER10 && last_scheduled_insn) + return power10_sched_reorder (ready, *pn_ready - 1); + return cached_can_issue_more; } *************** rs6000_mangle_type (const_tree type) *** 20329,20335 **** if (SCALAR_FLOAT_TYPE_P (type) && FLOAT128_IBM_P (TYPE_MODE (type))) return "g"; if (SCALAR_FLOAT_TYPE_P (type) && FLOAT128_IEEE_P (TYPE_MODE (type))) ! return ieee128_mangling_gcc_8_1 ? "U10__float128" : "u9__ieee128"; if (type == vector_pair_type_node) return "u13__vector_pair"; --- 20092,20098 ---- if (SCALAR_FLOAT_TYPE_P (type) && FLOAT128_IBM_P (TYPE_MODE (type))) return "g"; if (SCALAR_FLOAT_TYPE_P (type) && FLOAT128_IEEE_P (TYPE_MODE (type))) ! return "u9__ieee128"; if (type == vector_pair_type_node) return "u13__vector_pair"; *************** rs6000_rtx_costs (rtx x, machine_mode mo *** 22204,22210 **** break; case UNSPEC: ! if (XINT (x, 1) == UNSPEC_MMA_XXSETACCZ) { *total = 0; return true; --- 21967,21973 ---- break; case UNSPEC: ! if (XINT (x, 1) == UNSPECV_MMA_XXSETACCZ) { *total = 0; return true; *************** rs6000_sibcall_aix (rtx value, rtx func_ *** 25639,25649 **** rtx r12 = NULL_RTX; rtx func_addr = func_desc; - gcc_assert (INTVAL (cookie) == 0); - if (global_tlsarg) tlsarg = global_tlsarg; /* For ELFv2, r12 and CTR need to hold the function address for an indirect call. */ if (GET_CODE (func_desc) != SYMBOL_REF && DEFAULT_ABI == ABI_ELFv2) --- 25402,25421 ---- rtx r12 = NULL_RTX; rtx func_addr = func_desc; if (global_tlsarg) tlsarg = global_tlsarg; + /* Handle longcall attributes. */ + if (INTVAL (cookie) & CALL_LONG && SYMBOL_REF_P (func_desc)) + { + /* PCREL can do a sibling call to a longcall function + because we don't need to restore the TOC register. */ + gcc_assert (rs6000_pcrel_p ()); + func_desc = rs6000_longcall_ref (func_desc, tlsarg); + } + else + gcc_assert (INTVAL (cookie) == 0); + /* For ELFv2, r12 and CTR need to hold the function address for an indirect call. */ if (GET_CODE (func_desc) != SYMBOL_REF && DEFAULT_ABI == ABI_ELFv2) *************** rs6000_split_logical (rtx operands[3], *** 26919,26924 **** --- 26691,27111 ---- return; } + /* Emit instructions to move SRC to DST. Called by splitters for + multi-register moves. It will emit at most one instruction for + each register that is accessed; that is, it won't emit li/lis pairs + (or equivalent for 64-bit code). One of SRC or DST must be a hard + register. */ + + void + rs6000_split_multireg_move (rtx dst, rtx src) + { + /* The register number of the first register being moved. */ + int reg; + /* The mode that is to be moved. */ + machine_mode mode; + /* The mode that the move is being done in, and its size. */ + machine_mode reg_mode; + int reg_mode_size; + /* The number of registers that will be moved. */ + int nregs; + + reg = REG_P (dst) ? REGNO (dst) : REGNO (src); + mode = GET_MODE (dst); + nregs = hard_regno_nregs (reg, mode); + + /* If we have a vector quad register for MMA, and this is a load or store, + see if we can use vector paired load/stores. */ + if (mode == XOmode && TARGET_MMA + && (MEM_P (dst) || MEM_P (src))) + { + reg_mode = OOmode; + nregs /= 2; + } + /* If we have a vector pair/quad mode, split it into two/four separate + vectors. */ + else if (mode == OOmode || mode == XOmode) + reg_mode = V1TImode; + else if (FP_REGNO_P (reg)) + reg_mode = DECIMAL_FLOAT_MODE_P (mode) ? DDmode : + (TARGET_HARD_FLOAT ? DFmode : SFmode); + else if (ALTIVEC_REGNO_P (reg)) + reg_mode = V16QImode; + else + reg_mode = word_mode; + reg_mode_size = GET_MODE_SIZE (reg_mode); + + gcc_assert (reg_mode_size * nregs == GET_MODE_SIZE (mode)); + + /* TDmode residing in FP registers is special, since the ISA requires that + the lower-numbered word of a register pair is always the most significant + word, even in little-endian mode. This does not match the usual subreg + semantics, so we cannnot use simplify_gen_subreg in those cases. Access + the appropriate constituent registers "by hand" in little-endian mode. + + Note we do not need to check for destructive overlap here since TDmode + can only reside in even/odd register pairs. */ + if (FP_REGNO_P (reg) && DECIMAL_FLOAT_MODE_P (mode) && !BYTES_BIG_ENDIAN) + { + rtx p_src, p_dst; + int i; + + for (i = 0; i < nregs; i++) + { + if (REG_P (src) && FP_REGNO_P (REGNO (src))) + p_src = gen_rtx_REG (reg_mode, REGNO (src) + nregs - 1 - i); + else + p_src = simplify_gen_subreg (reg_mode, src, mode, + i * reg_mode_size); + + if (REG_P (dst) && FP_REGNO_P (REGNO (dst))) + p_dst = gen_rtx_REG (reg_mode, REGNO (dst) + nregs - 1 - i); + else + p_dst = simplify_gen_subreg (reg_mode, dst, mode, + i * reg_mode_size); + + emit_insn (gen_rtx_SET (p_dst, p_src)); + } + + return; + } + + /* The __vector_pair and __vector_quad modes are multi-register + modes, so if we have to load or store the registers, we have to be + careful to properly swap them if we're in little endian mode + below. This means the last register gets the first memory + location. We also need to be careful of using the right register + numbers if we are splitting XO to OO. */ + if (mode == OOmode || mode == XOmode) + { + nregs = hard_regno_nregs (reg, mode); + int reg_mode_nregs = hard_regno_nregs (reg, reg_mode); + if (MEM_P (dst)) + { + unsigned offset = 0; + unsigned size = GET_MODE_SIZE (reg_mode); + + /* If we are reading an accumulator register, we have to + deprime it before we can access it. */ + if (TARGET_MMA + && GET_MODE (src) == XOmode && FP_REGNO_P (REGNO (src))) + emit_insn (gen_mma_xxmfacc (src, src)); + + for (int i = 0; i < nregs; i += reg_mode_nregs) + { + unsigned subreg + = WORDS_BIG_ENDIAN ? i : (nregs - reg_mode_nregs - i); + rtx dst2 = adjust_address (dst, reg_mode, offset); + rtx src2 = gen_rtx_REG (reg_mode, reg + subreg); + offset += size; + emit_insn (gen_rtx_SET (dst2, src2)); + } + + return; + } + + if (MEM_P (src)) + { + unsigned offset = 0; + unsigned size = GET_MODE_SIZE (reg_mode); + + for (int i = 0; i < nregs; i += reg_mode_nregs) + { + unsigned subreg + = WORDS_BIG_ENDIAN ? i : (nregs - reg_mode_nregs - i); + rtx dst2 = gen_rtx_REG (reg_mode, reg + subreg); + rtx src2 = adjust_address (src, reg_mode, offset); + offset += size; + emit_insn (gen_rtx_SET (dst2, src2)); + } + + /* If we are writing an accumulator register, we have to + prime it after we've written it. */ + if (TARGET_MMA + && GET_MODE (dst) == XOmode && FP_REGNO_P (REGNO (dst))) + emit_insn (gen_mma_xxmtacc (dst, dst)); + + return; + } + + if (GET_CODE (src) == UNSPEC) + { + gcc_assert (XINT (src, 1) == UNSPEC_MMA_ASSEMBLE); + gcc_assert (REG_P (dst)); + if (GET_MODE (src) == XOmode) + gcc_assert (FP_REGNO_P (REGNO (dst))); + if (GET_MODE (src) == OOmode) + gcc_assert (VSX_REGNO_P (REGNO (dst))); + + int nvecs = XVECLEN (src, 0); + for (int i = 0; i < nvecs; i++) + { + rtx op; + int regno = reg + i; + + if (WORDS_BIG_ENDIAN) + { + op = XVECEXP (src, 0, i); + + /* If we are loading an even VSX register and the memory location + is adjacent to the next register's memory location (if any), + then we can load them both with one LXVP instruction. */ + if ((regno & 1) == 0) + { + rtx op2 = XVECEXP (src, 0, i + 1); + if (adjacent_mem_locations (op, op2) == op) + { + op = adjust_address (op, OOmode, 0); + /* Skip the next register, since we're going to + load it together with this register. */ + i++; + } + } + } + else + { + op = XVECEXP (src, 0, nvecs - i - 1); + + /* If we are loading an even VSX register and the memory location + is adjacent to the next register's memory location (if any), + then we can load them both with one LXVP instruction. */ + if ((regno & 1) == 0) + { + rtx op2 = XVECEXP (src, 0, nvecs - i - 2); + if (adjacent_mem_locations (op2, op) == op2) + { + op = adjust_address (op2, OOmode, 0); + /* Skip the next register, since we're going to + load it together with this register. */ + i++; + } + } + } + + rtx dst_i = gen_rtx_REG (GET_MODE (op), regno); + emit_insn (gen_rtx_SET (dst_i, op)); + } + + /* We are writing an accumulator register, so we have to + prime it after we've written it. */ + if (GET_MODE (src) == XOmode) + emit_insn (gen_mma_xxmtacc (dst, dst)); + + return; + } + + /* Register -> register moves can use common code. */ + } + + if (REG_P (src) && REG_P (dst) && (REGNO (src) < REGNO (dst))) + { + /* If we are reading an accumulator register, we have to + deprime it before we can access it. */ + if (TARGET_MMA + && GET_MODE (src) == XOmode && FP_REGNO_P (REGNO (src))) + emit_insn (gen_mma_xxmfacc (src, src)); + + /* Move register range backwards, if we might have destructive + overlap. */ + int i; + /* XO/OO are opaque so cannot use subregs. */ + if (mode == OOmode || mode == XOmode ) + { + for (i = nregs - 1; i >= 0; i--) + { + rtx dst_i = gen_rtx_REG (reg_mode, REGNO (dst) + i); + rtx src_i = gen_rtx_REG (reg_mode, REGNO (src) + i); + emit_insn (gen_rtx_SET (dst_i, src_i)); + } + } + else + { + for (i = nregs - 1; i >= 0; i--) + emit_insn (gen_rtx_SET (simplify_gen_subreg (reg_mode, dst, mode, + i * reg_mode_size), + simplify_gen_subreg (reg_mode, src, mode, + i * reg_mode_size))); + } + + /* If we are writing an accumulator register, we have to + prime it after we've written it. */ + if (TARGET_MMA + && GET_MODE (dst) == XOmode && FP_REGNO_P (REGNO (dst))) + emit_insn (gen_mma_xxmtacc (dst, dst)); + } + else + { + int i; + int j = -1; + bool used_update = false; + rtx restore_basereg = NULL_RTX; + + if (MEM_P (src) && INT_REGNO_P (reg)) + { + rtx breg; + + if (GET_CODE (XEXP (src, 0)) == PRE_INC + || GET_CODE (XEXP (src, 0)) == PRE_DEC) + { + rtx delta_rtx; + breg = XEXP (XEXP (src, 0), 0); + delta_rtx = (GET_CODE (XEXP (src, 0)) == PRE_INC + ? GEN_INT (GET_MODE_SIZE (GET_MODE (src))) + : GEN_INT (-GET_MODE_SIZE (GET_MODE (src)))); + emit_insn (gen_add3_insn (breg, breg, delta_rtx)); + src = replace_equiv_address (src, breg); + } + else if (! rs6000_offsettable_memref_p (src, reg_mode, true)) + { + if (GET_CODE (XEXP (src, 0)) == PRE_MODIFY) + { + rtx basereg = XEXP (XEXP (src, 0), 0); + if (TARGET_UPDATE) + { + rtx ndst = simplify_gen_subreg (reg_mode, dst, mode, 0); + emit_insn (gen_rtx_SET (ndst, + gen_rtx_MEM (reg_mode, + XEXP (src, 0)))); + used_update = true; + } + else + emit_insn (gen_rtx_SET (basereg, + XEXP (XEXP (src, 0), 1))); + src = replace_equiv_address (src, basereg); + } + else + { + rtx basereg = gen_rtx_REG (Pmode, reg); + emit_insn (gen_rtx_SET (basereg, XEXP (src, 0))); + src = replace_equiv_address (src, basereg); + } + } + + breg = XEXP (src, 0); + if (GET_CODE (breg) == PLUS || GET_CODE (breg) == LO_SUM) + breg = XEXP (breg, 0); + + /* If the base register we are using to address memory is + also a destination reg, then change that register last. */ + if (REG_P (breg) + && REGNO (breg) >= REGNO (dst) + && REGNO (breg) < REGNO (dst) + nregs) + j = REGNO (breg) - REGNO (dst); + } + else if (MEM_P (dst) && INT_REGNO_P (reg)) + { + rtx breg; + + if (GET_CODE (XEXP (dst, 0)) == PRE_INC + || GET_CODE (XEXP (dst, 0)) == PRE_DEC) + { + rtx delta_rtx; + breg = XEXP (XEXP (dst, 0), 0); + delta_rtx = (GET_CODE (XEXP (dst, 0)) == PRE_INC + ? GEN_INT (GET_MODE_SIZE (GET_MODE (dst))) + : GEN_INT (-GET_MODE_SIZE (GET_MODE (dst)))); + + /* We have to update the breg before doing the store. + Use store with update, if available. */ + + if (TARGET_UPDATE) + { + rtx nsrc = simplify_gen_subreg (reg_mode, src, mode, 0); + emit_insn (TARGET_32BIT + ? (TARGET_POWERPC64 + ? gen_movdi_si_update (breg, breg, delta_rtx, nsrc) + : gen_movsi_si_update (breg, breg, delta_rtx, nsrc)) + : gen_movdi_di_update (breg, breg, delta_rtx, nsrc)); + used_update = true; + } + else + emit_insn (gen_add3_insn (breg, breg, delta_rtx)); + dst = replace_equiv_address (dst, breg); + } + else if (!rs6000_offsettable_memref_p (dst, reg_mode, true) + && GET_CODE (XEXP (dst, 0)) != LO_SUM) + { + if (GET_CODE (XEXP (dst, 0)) == PRE_MODIFY) + { + rtx basereg = XEXP (XEXP (dst, 0), 0); + if (TARGET_UPDATE) + { + rtx nsrc = simplify_gen_subreg (reg_mode, src, mode, 0); + emit_insn (gen_rtx_SET (gen_rtx_MEM (reg_mode, + XEXP (dst, 0)), + nsrc)); + used_update = true; + } + else + emit_insn (gen_rtx_SET (basereg, + XEXP (XEXP (dst, 0), 1))); + dst = replace_equiv_address (dst, basereg); + } + else + { + rtx basereg = XEXP (XEXP (dst, 0), 0); + rtx offsetreg = XEXP (XEXP (dst, 0), 1); + gcc_assert (GET_CODE (XEXP (dst, 0)) == PLUS + && REG_P (basereg) + && REG_P (offsetreg) + && REGNO (basereg) != REGNO (offsetreg)); + if (REGNO (basereg) == 0) + { + rtx tmp = offsetreg; + offsetreg = basereg; + basereg = tmp; + } + emit_insn (gen_add3_insn (basereg, basereg, offsetreg)); + restore_basereg = gen_sub3_insn (basereg, basereg, offsetreg); + dst = replace_equiv_address (dst, basereg); + } + } + else if (GET_CODE (XEXP (dst, 0)) != LO_SUM) + gcc_assert (rs6000_offsettable_memref_p (dst, reg_mode, true)); + } + + /* If we are reading an accumulator register, we have to + deprime it before we can access it. */ + if (TARGET_MMA && REG_P (src) + && GET_MODE (src) == XOmode && FP_REGNO_P (REGNO (src))) + emit_insn (gen_mma_xxmfacc (src, src)); + + for (i = 0; i < nregs; i++) + { + /* Calculate index to next subword. */ + ++j; + if (j == nregs) + j = 0; + + /* If compiler already emitted move of first word by + store with update, no need to do anything. */ + if (j == 0 && used_update) + continue; + + /* XO/OO are opaque so cannot use subregs. */ + if (mode == OOmode || mode == XOmode ) + { + rtx dst_i = gen_rtx_REG (reg_mode, REGNO (dst) + j); + rtx src_i = gen_rtx_REG (reg_mode, REGNO (src) + j); + emit_insn (gen_rtx_SET (dst_i, src_i)); + } + else + emit_insn (gen_rtx_SET (simplify_gen_subreg (reg_mode, dst, mode, + j * reg_mode_size), + simplify_gen_subreg (reg_mode, src, mode, + j * reg_mode_size))); + } + + /* If we are writing an accumulator register, we have to + prime it after we've written it. */ + if (TARGET_MMA && REG_P (dst) + && GET_MODE (dst) == XOmode && FP_REGNO_P (REGNO (dst))) + emit_insn (gen_mma_xxmtacc (dst, dst)); + + if (restore_basereg != NULL_RTX) + emit_insn (restore_basereg); + } + } /* Return true if the peephole2 can combine a load involving a combination of an addis instruction and a load with an offset that can be fused together on *************** rs6000_starting_frame_offset (void) *** 27609,27647 **** } - /* Create an alias for a mangled name where we have changed the mangling (in - GCC 8.1, we used U10__float128, and now we use u9__ieee128). This is called - via the target hook TARGET_ASM_GLOBALIZE_DECL_NAME. */ - - #if TARGET_ELF && RS6000_WEAK - static void - rs6000_globalize_decl_name (FILE * stream, tree decl) - { - const char *name = XSTR (XEXP (DECL_RTL (decl), 0), 0); - - targetm.asm_out.globalize_label (stream, name); - - if (rs6000_passes_ieee128 && name[0] == '_' && name[1] == 'Z') - { - tree save_asm_name = DECL_ASSEMBLER_NAME (decl); - const char *old_name; - - ieee128_mangling_gcc_8_1 = true; - lang_hooks.set_decl_assembler_name (decl); - old_name = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl)); - SET_DECL_ASSEMBLER_NAME (decl, save_asm_name); - ieee128_mangling_gcc_8_1 = false; - - if (strcmp (name, old_name) != 0) - { - fprintf (stream, "\t.weak %s\n", old_name); - fprintf (stream, "\t.set %s,%s\n", old_name, name); - } - } - } - #endif - - /* On 64-bit Linux and Freebsd systems, possibly switch the long double library function names from l to f128 if the default long double type is IEEE 128-bit. Typically, with the C and C++ languages, the standard math.h --- 27796,27801 ---- diff -Nrcpad gcc-11.2.0/gcc/config/rs6000/rs6000.h gcc-11.3.0/gcc/config/rs6000/rs6000.h *** gcc-11.2.0/gcc/config/rs6000/rs6000.h Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/rs6000/rs6000.h Thu Apr 21 07:58:52 2022 *************** extern unsigned char rs6000_recip_bits[] *** 667,683 **** /* Target machine storage layout. */ - /* Define this macro if it is advisable to hold scalars in registers - in a wider mode than that declared by the program. In such cases, - the value is constrained to be within the bounds of the declared - type, but kept valid in the wider mode. The signedness of the - extension may differ from that of the type. */ - - #define PROMOTE_MODE(MODE,UNSIGNEDP,TYPE) \ - if (GET_MODE_CLASS (MODE) == MODE_INT \ - && GET_MODE_SIZE (MODE) < (TARGET_32BIT ? 4 : 8)) \ - (MODE) = TARGET_32BIT ? SImode : DImode; - /* Define this if most significant bit is lowest numbered in instructions that operate on numbered bit-fields. */ /* That is true on RS/6000. */ --- 667,672 ---- diff -Nrcpad gcc-11.2.0/gcc/config/rs6000/rs6000.md gcc-11.3.0/gcc/config/rs6000/rs6000.md *** gcc-11.2.0/gcc/config/rs6000/rs6000.md Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/rs6000/rs6000.md Thu Apr 21 07:58:53 2022 *************** *** 4986,4991 **** --- 4986,5027 ---- [(set_attr "type" "fp") (set_attr "isa" "*,")]) + (define_expand "fmod3" + [(use (match_operand:SFDF 0 "gpc_reg_operand")) + (use (match_operand:SFDF 1 "gpc_reg_operand")) + (use (match_operand:SFDF 2 "gpc_reg_operand"))] + "TARGET_HARD_FLOAT + && TARGET_FPRND + && flag_unsafe_math_optimizations" + { + rtx div = gen_reg_rtx (mode); + emit_insn (gen_div3 (div, operands[1], operands[2])); + + rtx friz = gen_reg_rtx (mode); + emit_insn (gen_btrunc2 (friz, div)); + + emit_insn (gen_nfms4 (operands[0], operands[2], friz, operands[1])); + DONE; + }) + + (define_expand "remainder3" + [(use (match_operand:SFDF 0 "gpc_reg_operand")) + (use (match_operand:SFDF 1 "gpc_reg_operand")) + (use (match_operand:SFDF 2 "gpc_reg_operand"))] + "TARGET_HARD_FLOAT + && TARGET_FPRND + && flag_unsafe_math_optimizations" + { + rtx div = gen_reg_rtx (mode); + emit_insn (gen_div3 (div, operands[1], operands[2])); + + rtx frin = gen_reg_rtx (mode); + emit_insn (gen_round2 (frin, div)); + + emit_insn (gen_nfms4 (operands[0], operands[2], frin, operands[1])); + DONE; + }) + (define_insn "*rsqrt2" [(set (match_operand:SFDF 0 "gpc_reg_operand" "=,wa") (unspec:SFDF [(match_operand:SFDF 1 "gpc_reg_operand" ",wa")] *************** *** 11810,11816 **** { /* Everything is best done with setbc[r] if available. */ if (TARGET_POWER10 && TARGET_ISEL) ! rs6000_emit_int_cmove (operands[0], operands[1], const1_rtx, const0_rtx); /* Expanding EQ and NE directly to some machine instructions does not help but does hurt combine. So don't. */ --- 11846,11855 ---- { /* Everything is best done with setbc[r] if available. */ if (TARGET_POWER10 && TARGET_ISEL) ! { ! rs6000_emit_int_cmove (operands[0], operands[1], const1_rtx, const0_rtx); ! DONE; ! } /* Expanding EQ and NE directly to some machine instructions does not help but does hurt combine. So don't. */ diff -Nrcpad gcc-11.2.0/gcc/config/rs6000/rs6000.opt gcc-11.3.0/gcc/config/rs6000/rs6000.opt *** gcc-11.2.0/gcc/config/rs6000/rs6000.opt Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/rs6000/rs6000.opt Thu Apr 21 07:58:53 2022 *************** Target Mask(P8_VECTOR) Var(rs6000_isa_fl *** 491,519 **** Use vector and scalar instructions added in ISA 2.07. mpower10-fusion ! Target Mask(P10_FUSION) Var(rs6000_isa_flags) ! Fuse certain integer operations together for better performance on power10. ! ! mpower10-fusion-ld-cmpi ! Target Undocumented Mask(P10_FUSION_LD_CMPI) Var(rs6000_isa_flags) Fuse certain integer operations together for better performance on power10. - mpower10-fusion-2logical - Target Undocumented Mask(P10_FUSION_2LOGICAL) Var(rs6000_isa_flags) - Fuse pairs of scalar or vector logical operations together for better performance on power10. - - mpower10-fusion-logical-add - Target Undocumented Mask(P10_FUSION_LOGADD) Var(rs6000_isa_flags) - Fuse scalar logical op with add/subf for better performance on power10. - - mpower10-fusion-add-logical - Target Undocumented Mask(P10_FUSION_ADDLOG) Var(rs6000_isa_flags) - Fuse scalar add/subf with logical op for better performance on power10. - - mpower10-fusion-2add - Target Undocumented Mask(P10_FUSION_2ADD) Var(rs6000_isa_flags) - Fuse dependent pairs of add or vaddudm instructions for better performance on power10. - mcrypto Target Mask(CRYPTO) Var(rs6000_isa_flags) Use ISA 2.07 Category:Vector.AES and Category:Vector.SHA2 instructions. --- 491,499 ---- Use vector and scalar instructions added in ISA 2.07. mpower10-fusion ! Target Undocumented Mask(P10_FUSION) Var(rs6000_isa_flags) Fuse certain integer operations together for better performance on power10. mcrypto Target Mask(CRYPTO) Var(rs6000_isa_flags) Use ISA 2.07 Category:Vector.AES and Category:Vector.SHA2 instructions. diff -Nrcpad gcc-11.2.0/gcc/config/rs6000/vector.md gcc-11.3.0/gcc/config/rs6000/vector.md *** gcc-11.2.0/gcc/config/rs6000/vector.md Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/rs6000/vector.md Thu Apr 21 07:58:53 2022 *************** *** 1521,1527 **** [(set (match_operand:VEC_N 0 "nonimmediate_operand") (match_operand:VEC_N 1 "any_operand"))] "VECTOR_MEM_VSX_P (mode) && TARGET_ALLOW_MOVMISALIGN" ! "") ;; Vector shift right in bits. Currently supported ony for shift ;; amounts that can be expressed as byte shifts (divisible by 8). --- 1521,1530 ---- [(set (match_operand:VEC_N 0 "nonimmediate_operand") (match_operand:VEC_N 1 "any_operand"))] "VECTOR_MEM_VSX_P (mode) && TARGET_ALLOW_MOVMISALIGN" ! { ! rs6000_emit_move (operands[0], operands[1], mode); ! DONE; ! }) ;; Vector shift right in bits. Currently supported ony for shift ;; amounts that can be expressed as byte shifts (divisible by 8). diff -Nrcpad gcc-11.2.0/gcc/config/rs6000/vxworks.h gcc-11.3.0/gcc/config/rs6000/vxworks.h *** gcc-11.2.0/gcc/config/rs6000/vxworks.h Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/rs6000/vxworks.h Thu Apr 21 07:58:53 2022 *************** along with GCC; see the file COPYING3. *** 147,156 **** #undef FUNCTION_PROFILER #define FUNCTION_PROFILER(FILE,LABELNO) VXWORKS_FUNCTION_PROFILER(FILE,LABELNO) - /* Initialize library function table. */ - #undef TARGET_INIT_LIBFUNCS - #define TARGET_INIT_LIBFUNCS rs6000_vxworks_init_libfuncs - /* Nor sdata, for kernel mode. We use this in SUBSUBTARGET_INITIALIZE_OPTIONS, after rs6000_rtp has been initialized. */ #undef SDATA_DEFAULT_SIZE --- 147,152 ---- diff -Nrcpad gcc-11.2.0/gcc/config/s390/driver-native.c gcc-11.3.0/gcc/config/s390/driver-native.c *** gcc-11.2.0/gcc/config/s390/driver-native.c Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/s390/driver-native.c Thu Apr 21 07:58:53 2022 *************** s390_host_detect_local_cpu (int argc, co *** 123,130 **** case 0x8562: cpu = "z15"; break; default: ! cpu = "arch14"; break; } } --- 123,134 ---- case 0x8562: cpu = "z15"; break; + case 0x3931: + case 0x3932: + cpu = "z16"; + break; default: ! cpu = "z16"; break; } } diff -Nrcpad gcc-11.2.0/gcc/config/s390/predicates.md gcc-11.3.0/gcc/config/s390/predicates.md *** gcc-11.2.0/gcc/config/s390/predicates.md Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/s390/predicates.md Thu Apr 21 07:58:53 2022 *************** *** 101,110 **** (define_special_predicate "bras_sym_operand" (ior (and (match_code "symbol_ref") ! (match_test "!flag_pic || SYMBOL_REF_LOCAL_P (op)")) (and (match_code "const") (and (match_test "GET_CODE (XEXP (op, 0)) == UNSPEC") ! (match_test "XINT (XEXP (op, 0), 1) == UNSPEC_PLT"))))) ;; Return true if OP is a PLUS that is not a legitimate ;; operand for the LA instruction. --- 101,113 ---- (define_special_predicate "bras_sym_operand" (ior (and (match_code "symbol_ref") ! (ior (match_test "!flag_pic") ! (match_test "SYMBOL_REF_LOCAL_P (op)") ! (and (match_test "TARGET_64BIT") ! (match_test "SYMBOL_REF_FUNCTION_P (op)")))) (and (match_code "const") (and (match_test "GET_CODE (XEXP (op, 0)) == UNSPEC") ! (match_test "XINT (XEXP (op, 0), 1) == UNSPEC_PLT31"))))) ;; Return true if OP is a PLUS that is not a legitimate ;; operand for the LA instruction. *************** *** 197,203 **** && XINT (op, 1) == UNSPEC_GOTENT) return true; if (GET_CODE (op) == UNSPEC ! && XINT (op, 1) == UNSPEC_PLT) return true; if (GET_CODE (op) == UNSPEC && XINT (op, 1) == UNSPEC_INDNTPOFF) --- 200,206 ---- && XINT (op, 1) == UNSPEC_GOTENT) return true; if (GET_CODE (op) == UNSPEC ! && XINT (op, 1) == UNSPEC_PLT31) return true; if (GET_CODE (op) == UNSPEC && XINT (op, 1) == UNSPEC_INDNTPOFF) diff -Nrcpad gcc-11.2.0/gcc/config/s390/s390-c.c gcc-11.3.0/gcc/config/s390/s390-c.c *** gcc-11.2.0/gcc/config/s390/s390-c.c Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/s390/s390-c.c Thu Apr 21 07:58:53 2022 *************** s390_pragma_target_parse (tree args, tre *** 455,461 **** --- 455,463 ---- cpp_opts->warn_unused_macros = 0; /* Define all of the macros for new options that were just turned on. */ + cpp_force_token_locations (parse_in, BUILTINS_LOCATION); s390_cpu_cpp_builtins_internal (parse_in, cur_opt, prev_opt); + cpp_stop_forcing_token_locations (parse_in); cpp_opts->warn_unused_macros = saved_warn_unused_macros; } diff -Nrcpad gcc-11.2.0/gcc/config/s390/s390-opts.h gcc-11.3.0/gcc/config/s390/s390-opts.h *** gcc-11.2.0/gcc/config/s390/s390-opts.h Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/s390/s390-opts.h Thu Apr 21 07:58:53 2022 *************** enum processor_type *** 38,44 **** PROCESSOR_2964_Z13, PROCESSOR_3906_Z14, PROCESSOR_8561_Z15, ! PROCESSOR_ARCH14, PROCESSOR_NATIVE, PROCESSOR_max }; --- 38,44 ---- PROCESSOR_2964_Z13, PROCESSOR_3906_Z14, PROCESSOR_8561_Z15, ! PROCESSOR_3931_Z16, PROCESSOR_NATIVE, PROCESSOR_max }; diff -Nrcpad gcc-11.2.0/gcc/config/s390/s390.c gcc-11.3.0/gcc/config/s390/s390.c *** gcc-11.2.0/gcc/config/s390/s390.c Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/s390/s390.c Thu Apr 21 07:58:53 2022 *************** const struct s390_processor processor_ta *** 337,343 **** { "z13", "z13", PROCESSOR_2964_Z13, &zEC12_cost, 11 }, { "z14", "arch12", PROCESSOR_3906_Z14, &zEC12_cost, 12 }, { "z15", "arch13", PROCESSOR_8561_Z15, &zEC12_cost, 13 }, ! { "arch14", "arch14", PROCESSOR_ARCH14, &zEC12_cost, 14 }, { "native", "", PROCESSOR_NATIVE, NULL, 0 } }; --- 337,343 ---- { "z13", "z13", PROCESSOR_2964_Z13, &zEC12_cost, 11 }, { "z14", "arch12", PROCESSOR_3906_Z14, &zEC12_cost, 12 }, { "z15", "arch13", PROCESSOR_8561_Z15, &zEC12_cost, 13 }, ! { "z16", "arch14", PROCESSOR_3931_Z16, &zEC12_cost, 14 }, { "native", "", PROCESSOR_NATIVE, NULL, 0 } }; *************** s390_expand_builtin (tree exp, rtx targe *** 856,862 **** if ((bflags & B_NNPA) && !TARGET_NNPA) { ! error ("Builtin %qF requires arch14 or higher.", fndecl); return const0_rtx; } } --- 856,862 ---- if ((bflags & B_NNPA) && !TARGET_NNPA) { ! error ("Builtin %qF requires z16 or higher.", fndecl); return const0_rtx; } } *************** s390_loadrelative_operand_p (rtx addr, r *** 3291,3297 **** if (GET_CODE (addr) == SYMBOL_REF || (GET_CODE (addr) == UNSPEC && (XINT (addr, 1) == UNSPEC_GOTENT ! || XINT (addr, 1) == UNSPEC_PLT))) { if (symref) *symref = addr; --- 3291,3297 ---- if (GET_CODE (addr) == SYMBOL_REF || (GET_CODE (addr) == UNSPEC && (XINT (addr, 1) == UNSPEC_GOTENT ! || XINT (addr, 1) == UNSPEC_PLT31))) { if (symref) *symref = addr; *************** legitimize_pic_address (rtx orig, rtx re *** 4964,4970 **** || (SYMBOL_REF_P (addr) && s390_rel_address_ok_p (addr)) || (GET_CODE (addr) == UNSPEC && (XINT (addr, 1) == UNSPEC_GOTENT ! || XINT (addr, 1) == UNSPEC_PLT))) && GET_CODE (addend) == CONST_INT) { /* This can be locally addressed. */ --- 4964,4970 ---- || (SYMBOL_REF_P (addr) && s390_rel_address_ok_p (addr)) || (GET_CODE (addr) == UNSPEC && (XINT (addr, 1) == UNSPEC_GOTENT ! || XINT (addr, 1) == UNSPEC_PLT31))) && GET_CODE (addend) == CONST_INT) { /* This can be locally addressed. */ *************** legitimize_pic_address (rtx orig, rtx re *** 5125,5131 **** /* For @PLT larl is used. This is handled like local symbol refs. */ ! case UNSPEC_PLT: gcc_unreachable (); break; --- 5125,5131 ---- /* For @PLT larl is used. This is handled like local symbol refs. */ ! case UNSPEC_PLT31: gcc_unreachable (); break; *************** s390_emit_tls_call_insn (rtx result_reg, *** 5191,5197 **** emit_insn (s390_load_got ()); if (!s390_tls_symbol) ! s390_tls_symbol = gen_rtx_SYMBOL_REF (Pmode, "__tls_get_offset"); insn = s390_emit_call (s390_tls_symbol, tls_call, result_reg, gen_rtx_REG (Pmode, RETURN_REGNUM)); --- 5191,5200 ---- emit_insn (s390_load_got ()); if (!s390_tls_symbol) ! { ! s390_tls_symbol = gen_rtx_SYMBOL_REF (Pmode, "__tls_get_offset"); ! SYMBOL_REF_FLAGS (s390_tls_symbol) |= SYMBOL_FLAG_FUNCTION; ! } insn = s390_emit_call (s390_tls_symbol, tls_call, result_reg, gen_rtx_REG (Pmode, RETURN_REGNUM)); *************** s390_expand_insv (rtx dest, rtx op1, rtx *** 6411,6416 **** --- 6414,6428 ---- if (bitsize + bitpos > GET_MODE_BITSIZE (mode)) return false; + /* Just a move. */ + if (bitpos == 0 + && bitsize == GET_MODE_BITSIZE (GET_MODE (src)) + && mode == GET_MODE (src)) + { + emit_move_insn (dest, src); + return true; + } + /* Generate INSERT IMMEDIATE (IILL et al). */ /* (set (ze (reg)) (const_int)). */ if (TARGET_ZARCH *************** s390_expand_insv (rtx dest, rtx op1, rtx *** 6507,6512 **** --- 6519,6525 ---- && (bitpos & 32) == ((bitpos + bitsize - 1) & 32) && MEM_P (src) && (mode == DImode || mode == SImode) + && mode != smode && register_operand (dest, mode)) { /* Emit a strict_low_part pattern if possible. */ *************** s390_delegitimize_address (rtx orig_x) *** 7596,7602 **** y = XEXP (x, 0); if (GET_CODE (y) == UNSPEC && (XINT (y, 1) == UNSPEC_GOTENT ! || XINT (y, 1) == UNSPEC_PLT)) y = XVECEXP (y, 0, 0); else return orig_x; --- 7609,7615 ---- y = XEXP (x, 0); if (GET_CODE (y) == UNSPEC && (XINT (y, 1) == UNSPEC_GOTENT ! || XINT (y, 1) == UNSPEC_PLT31)) y = XVECEXP (y, 0, 0); else return orig_x; *************** s390_output_addr_const_extra (FILE *file *** 7849,7855 **** output_addr_const (file, XVECEXP (x, 0, 0)); fprintf (file, "@GOTOFF"); return true; ! case UNSPEC_PLT: output_addr_const (file, XVECEXP (x, 0, 0)); fprintf (file, "@PLT"); return true; --- 7862,7868 ---- output_addr_const (file, XVECEXP (x, 0, 0)); fprintf (file, "@GOTOFF"); return true; ! case UNSPEC_PLT31: output_addr_const (file, XVECEXP (x, 0, 0)); fprintf (file, "@PLT"); return true; *************** print_operand_address (FILE *file, rtx a *** 7943,7948 **** --- 7956,7962 ---- 'E': print opcode suffix for branch on index instruction. 'G': print the size of the operand in bytes. 'J': print tls_load/tls_gdcall/tls_ldcall suffix + 'K': print @PLT suffix for call targets and load address values. 'M': print the second word of a TImode operand. 'N': print the second word of a DImode operand. 'O': print only the displacement of a memory reference or address. *************** print_operand (FILE *file, rtx x, int co *** 8129,8134 **** --- 8143,8171 ---- case 'Y': print_shift_count_operand (file, x); return; + + case 'K': + /* Append @PLT to both local and non-local symbols in order to support + Linux Kernel livepatching: patches contain individual functions and + are loaded further than 2G away from vmlinux, and therefore they must + call even static functions via PLT. ld will optimize @PLT away for + normal code, and keep it for patches. + + Do not indiscriminately add @PLT in 31-bit mode due to the %r12 + restriction, use UNSPEC_PLT31 instead. + + @PLT only makes sense for functions, data is taken care of by + -mno-pic-data-is-text-relative. + + Adding @PLT interferes with handling of weak symbols in non-PIC code, + since their addresses are loaded with larl, which then always produces + a non-NULL result, so skip them here as well. */ + if (TARGET_64BIT + && GET_CODE (x) == SYMBOL_REF + && SYMBOL_REF_FUNCTION_P (x) + && !(SYMBOL_REF_WEAK (x) && !flag_pic)) + fprintf (file, "@PLT"); + return; } switch (GET_CODE (x)) *************** s390_issue_rate (void) *** 8452,8458 **** case PROCESSOR_2827_ZEC12: case PROCESSOR_2964_Z13: case PROCESSOR_3906_Z14: ! case PROCESSOR_ARCH14: default: return 1; } --- 8489,8495 ---- case PROCESSOR_2827_ZEC12: case PROCESSOR_2964_Z13: case PROCESSOR_3906_Z14: ! case PROCESSOR_3931_Z16: default: return 1; } *************** output_asm_nops (const char *user, int h *** 13110,13142 **** } } ! /* Output assembler code to FILE to increment profiler label # LABELNO ! for profiling a function entry. */ void ! s390_function_profiler (FILE *file, int labelno) { ! rtx op[8]; ! ! char label[128]; ! ASM_GENERATE_INTERNAL_LABEL (label, "LP", labelno); fprintf (file, "# function profiler \n"); op[0] = gen_rtx_REG (Pmode, RETURN_REGNUM); op[1] = gen_rtx_REG (Pmode, STACK_POINTER_REGNUM); op[1] = gen_rtx_MEM (Pmode, plus_constant (Pmode, op[1], UNITS_PER_LONG)); ! op[7] = GEN_INT (UNITS_PER_LONG); ! ! op[2] = gen_rtx_REG (Pmode, 1); ! op[3] = gen_rtx_SYMBOL_REF (Pmode, label); ! SYMBOL_REF_FLAGS (op[3]) = SYMBOL_FLAG_LOCAL; ! op[4] = gen_rtx_SYMBOL_REF (Pmode, flag_fentry ? "__fentry__" : "_mcount"); ! if (flag_pic) { ! op[4] = gen_rtx_UNSPEC (Pmode, gen_rtvec (1, op[4]), UNSPEC_PLT); ! op[4] = gen_rtx_CONST (Pmode, op[4]); } if (flag_record_mcount) --- 13147,13172 ---- } } ! /* Output assembler code to FILE to call a profiler hook. */ void ! s390_function_profiler (FILE *file, int labelno ATTRIBUTE_UNUSED) { ! rtx op[4]; fprintf (file, "# function profiler \n"); op[0] = gen_rtx_REG (Pmode, RETURN_REGNUM); op[1] = gen_rtx_REG (Pmode, STACK_POINTER_REGNUM); op[1] = gen_rtx_MEM (Pmode, plus_constant (Pmode, op[1], UNITS_PER_LONG)); ! op[3] = GEN_INT (UNITS_PER_LONG); ! op[2] = gen_rtx_SYMBOL_REF (Pmode, flag_fentry ? "__fentry__" : "_mcount"); ! SYMBOL_REF_FLAGS (op[2]) |= SYMBOL_FLAG_FUNCTION; ! if (flag_pic && !TARGET_64BIT) { ! op[2] = gen_rtx_UNSPEC (Pmode, gen_rtvec (1, op[2]), UNSPEC_PLT31); ! op[2] = gen_rtx_CONST (Pmode, op[2]); } if (flag_record_mcount) *************** s390_function_profiler (FILE *file, int *** 13150,13169 **** warning (OPT_Wcannot_profile, "nested functions cannot be profiled " "with %<-mfentry%> on s390"); else ! output_asm_insn ("brasl\t0,%4", op); } else if (TARGET_64BIT) { if (flag_nop_mcount) ! output_asm_nops ("-mnop-mcount", /* stg */ 3 + /* larl */ 3 + ! /* brasl */ 3 + /* lg */ 3); else { output_asm_insn ("stg\t%0,%1", op); if (flag_dwarf2_cfi_asm) ! output_asm_insn (".cfi_rel_offset\t%0,%7", op); ! output_asm_insn ("larl\t%2,%3", op); ! output_asm_insn ("brasl\t%0,%4", op); output_asm_insn ("lg\t%0,%1", op); if (flag_dwarf2_cfi_asm) output_asm_insn (".cfi_restore\t%0", op); --- 13180,13198 ---- warning (OPT_Wcannot_profile, "nested functions cannot be profiled " "with %<-mfentry%> on s390"); else ! output_asm_insn ("brasl\t0,%2%K2", op); } else if (TARGET_64BIT) { if (flag_nop_mcount) ! output_asm_nops ("-mnop-mcount", /* stg */ 3 + /* brasl */ 3 + ! /* lg */ 3); else { output_asm_insn ("stg\t%0,%1", op); if (flag_dwarf2_cfi_asm) ! output_asm_insn (".cfi_rel_offset\t%0,%3", op); ! output_asm_insn ("brasl\t%0,%2%K2", op); output_asm_insn ("lg\t%0,%1", op); if (flag_dwarf2_cfi_asm) output_asm_insn (".cfi_restore\t%0", op); *************** s390_function_profiler (FILE *file, int *** 13172,13186 **** else { if (flag_nop_mcount) ! output_asm_nops ("-mnop-mcount", /* st */ 2 + /* larl */ 3 + ! /* brasl */ 3 + /* l */ 2); else { output_asm_insn ("st\t%0,%1", op); if (flag_dwarf2_cfi_asm) ! output_asm_insn (".cfi_rel_offset\t%0,%7", op); ! output_asm_insn ("larl\t%2,%3", op); ! output_asm_insn ("brasl\t%0,%4", op); output_asm_insn ("l\t%0,%1", op); if (flag_dwarf2_cfi_asm) output_asm_insn (".cfi_restore\t%0", op); --- 13201,13214 ---- else { if (flag_nop_mcount) ! output_asm_nops ("-mnop-mcount", /* st */ 2 + /* brasl */ 3 + ! /* l */ 2); else { output_asm_insn ("st\t%0,%1", op); if (flag_dwarf2_cfi_asm) ! output_asm_insn (".cfi_rel_offset\t%0,%3", op); ! output_asm_insn ("brasl\t%0,%2%K2", op); output_asm_insn ("l\t%0,%1", op); if (flag_dwarf2_cfi_asm) output_asm_insn (".cfi_restore\t%0", op); *************** s390_output_mi_thunk (FILE *file, tree t *** 13256,13264 **** if (flag_pic && !SYMBOL_REF_LOCAL_P (op[0])) { nonlocal = 1; ! op[0] = gen_rtx_UNSPEC (Pmode, gen_rtvec (1, op[0]), ! TARGET_64BIT ? UNSPEC_PLT : UNSPEC_GOT); ! op[0] = gen_rtx_CONST (Pmode, op[0]); } /* Operand 1 is the 'this' pointer. */ --- 13284,13294 ---- if (flag_pic && !SYMBOL_REF_LOCAL_P (op[0])) { nonlocal = 1; ! if (!TARGET_64BIT) ! { ! op[0] = gen_rtx_UNSPEC (Pmode, gen_rtvec (1, op[0]), UNSPEC_GOT); ! op[0] = gen_rtx_CONST (Pmode, op[0]); ! } } /* Operand 1 is the 'this' pointer. */ *************** s390_output_mi_thunk (FILE *file, tree t *** 13348,13354 **** } /* Jump to target. */ ! output_asm_insn ("jg\t%0", op); /* Output literal pool if required. */ if (op[5]) --- 13378,13384 ---- } /* Jump to target. */ ! output_asm_insn ("jg\t%0%K0", op); /* Output literal pool if required. */ if (op[5]) *************** rtx_insn * *** 13739,13745 **** s390_emit_call (rtx addr_location, rtx tls_call, rtx result_reg, rtx retaddr_reg) { ! bool plt_call = false; rtx_insn *insn; rtx vec[4] = { NULL_RTX }; int elts = 0; --- 13769,13775 ---- s390_emit_call (rtx addr_location, rtx tls_call, rtx result_reg, rtx retaddr_reg) { ! bool plt31_call_p = false; rtx_insn *insn; rtx vec[4] = { NULL_RTX }; int elts = 0; *************** s390_emit_call (rtx addr_location, rtx t *** 13754,13768 **** { /* When calling a global routine in PIC mode, we must replace the symbol itself with the PLT stub. */ ! if (flag_pic && !SYMBOL_REF_LOCAL_P (addr_location)) { ! if (TARGET_64BIT || retaddr_reg != NULL_RTX) { addr_location = gen_rtx_UNSPEC (Pmode, gen_rtvec (1, addr_location), ! UNSPEC_PLT); addr_location = gen_rtx_CONST (Pmode, addr_location); ! plt_call = true; } else /* For -fpic code the PLT entries might use r12 which is --- 13784,13798 ---- { /* When calling a global routine in PIC mode, we must replace the symbol itself with the PLT stub. */ ! if (flag_pic && !SYMBOL_REF_LOCAL_P (addr_location) && !TARGET_64BIT) { ! if (retaddr_reg != NULL_RTX) { addr_location = gen_rtx_UNSPEC (Pmode, gen_rtvec (1, addr_location), ! UNSPEC_PLT31); addr_location = gen_rtx_CONST (Pmode, addr_location); ! plt31_call_p = true; } else /* For -fpic code the PLT entries might use r12 which is *************** s390_emit_call (rtx addr_location, rtx t *** 13783,13789 **** register 1. */ if (retaddr_reg == NULL_RTX && GET_CODE (addr_location) != SYMBOL_REF ! && !plt_call) { emit_move_insn (gen_rtx_REG (Pmode, SIBCALL_REGNUM), addr_location); addr_location = gen_rtx_REG (Pmode, SIBCALL_REGNUM); --- 13813,13819 ---- register 1. */ if (retaddr_reg == NULL_RTX && GET_CODE (addr_location) != SYMBOL_REF ! && !plt31_call_p) { emit_move_insn (gen_rtx_REG (Pmode, SIBCALL_REGNUM), addr_location); addr_location = gen_rtx_REG (Pmode, SIBCALL_REGNUM); *************** s390_emit_call (rtx addr_location, rtx t *** 13791,13797 **** if (TARGET_INDIRECT_BRANCH_NOBP_CALL && GET_CODE (addr_location) != SYMBOL_REF ! && !plt_call) { /* Indirect branch thunks require the target to be a single GPR. */ addr_location = force_reg (Pmode, addr_location); --- 13821,13827 ---- if (TARGET_INDIRECT_BRANCH_NOBP_CALL && GET_CODE (addr_location) != SYMBOL_REF ! && !plt31_call_p) { /* Indirect branch thunks require the target to be a single GPR. */ addr_location = force_reg (Pmode, addr_location); *************** s390_emit_call (rtx addr_location, rtx t *** 13843,13849 **** insn = emit_call_insn (*call); /* 31-bit PLT stubs and tls calls use the GOT register implicitly. */ ! if ((!TARGET_64BIT && plt_call) || tls_call != NULL_RTX) { /* s390_function_ok_for_sibcall should have denied sibcalls in this case. */ --- 13873,13879 ---- insn = emit_call_insn (*call); /* 31-bit PLT stubs and tls calls use the GOT register implicitly. */ ! if (plt31_call_p || tls_call != NULL_RTX) { /* s390_function_ok_for_sibcall should have denied sibcalls in this case. */ *************** s390_emit_tpf_eh_return (rtx target) *** 13899,13905 **** rtx reg, orig_ra; if (!s390_tpf_eh_return_symbol) ! s390_tpf_eh_return_symbol = gen_rtx_SYMBOL_REF (Pmode, "__tpf_eh_return"); reg = gen_rtx_REG (Pmode, 2); orig_ra = gen_rtx_REG (Pmode, 3); --- 13929,13938 ---- rtx reg, orig_ra; if (!s390_tpf_eh_return_symbol) ! { ! s390_tpf_eh_return_symbol = gen_rtx_SYMBOL_REF (Pmode, "__tpf_eh_return"); ! SYMBOL_REF_FLAGS (s390_tpf_eh_return_symbol) |= SYMBOL_FLAG_FUNCTION; ! } reg = gen_rtx_REG (Pmode, 2); orig_ra = gen_rtx_REG (Pmode, 3); *************** s390_get_sched_attrmask (rtx_insn *insn) *** 14812,14818 **** mask |= S390_SCHED_ATTR_MASK_GROUPOFTWO; break; case PROCESSOR_8561_Z15: ! case PROCESSOR_ARCH14: if (get_attr_z15_cracked (insn)) mask |= S390_SCHED_ATTR_MASK_CRACKED; if (get_attr_z15_expanded (insn)) --- 14845,14851 ---- mask |= S390_SCHED_ATTR_MASK_GROUPOFTWO; break; case PROCESSOR_8561_Z15: ! case PROCESSOR_3931_Z16: if (get_attr_z15_cracked (insn)) mask |= S390_SCHED_ATTR_MASK_CRACKED; if (get_attr_z15_expanded (insn)) *************** s390_get_unit_mask (rtx_insn *insn, int *** 14860,14866 **** mask |= 1 << 3; break; case PROCESSOR_8561_Z15: ! case PROCESSOR_ARCH14: *units = 4; if (get_attr_z15_unit_lsu (insn)) mask |= 1 << 0; --- 14893,14899 ---- mask |= 1 << 3; break; case PROCESSOR_8561_Z15: ! case PROCESSOR_3931_Z16: *units = 4; if (get_attr_z15_unit_lsu (insn)) mask |= 1 << 0; *************** s390_code_end (void) *** 16667,16673 **** assemble_name_raw (asm_out_file, label_start); fputs ("-.\n", asm_out_file); } - switch_to_section (current_function_section ()); } } } --- 16700,16705 ---- diff -Nrcpad gcc-11.2.0/gcc/config/s390/s390.h gcc-11.3.0/gcc/config/s390/s390.h *** gcc-11.2.0/gcc/config/s390/s390.h Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/s390/s390.h Thu Apr 21 07:58:53 2022 *************** enum processor_flags *** 43,49 **** PF_VXE2 = 8192, PF_Z15 = 16384, PF_NNPA = 32768, ! PF_ARCH14 = 65536 }; /* This is necessary to avoid a warning about comparing different enum --- 43,49 ---- PF_VXE2 = 8192, PF_Z15 = 16384, PF_NNPA = 32768, ! PF_Z16 = 65536 }; /* This is necessary to avoid a warning about comparing different enum *************** enum processor_flags *** 110,119 **** (s390_arch_flags & PF_VXE2) #define TARGET_CPU_VXE2_P(opts) \ (opts->x_s390_arch_flags & PF_VXE2) ! #define TARGET_CPU_ARCH14 \ ! (s390_arch_flags & PF_ARCH14) ! #define TARGET_CPU_ARCH14_P(opts) \ ! (opts->x_s390_arch_flags & PF_ARCH14) #define TARGET_CPU_NNPA \ (s390_arch_flags & PF_NNPA) #define TARGET_CPU_NNPA_P(opts) \ --- 110,119 ---- (s390_arch_flags & PF_VXE2) #define TARGET_CPU_VXE2_P(opts) \ (opts->x_s390_arch_flags & PF_VXE2) ! #define TARGET_CPU_Z16 \ ! (s390_arch_flags & PF_Z16) ! #define TARGET_CPU_Z16_P(opts) \ ! (opts->x_s390_arch_flags & PF_Z16) #define TARGET_CPU_NNPA \ (s390_arch_flags & PF_NNPA) #define TARGET_CPU_NNPA_P(opts) \ *************** enum processor_flags *** 177,185 **** (TARGET_VX && TARGET_CPU_VXE2) #define TARGET_VXE2_P(opts) \ (TARGET_VX_P (opts) && TARGET_CPU_VXE2_P (opts)) ! #define TARGET_ARCH14 (TARGET_ZARCH && TARGET_CPU_ARCH14) ! #define TARGET_ARCH14_P(opts) \ ! (TARGET_ZARCH_P (opts->x_target_flags) && TARGET_CPU_ARCH14_P (opts)) #define TARGET_NNPA \ (TARGET_ZARCH && TARGET_CPU_NNPA) #define TARGET_NNPA_P(opts) \ --- 177,185 ---- (TARGET_VX && TARGET_CPU_VXE2) #define TARGET_VXE2_P(opts) \ (TARGET_VX_P (opts) && TARGET_CPU_VXE2_P (opts)) ! #define TARGET_Z16 (TARGET_ZARCH && TARGET_CPU_Z16) ! #define TARGET_Z16_P(opts) \ ! (TARGET_ZARCH_P (opts->x_target_flags) && TARGET_CPU_Z16_P (opts)) #define TARGET_NNPA \ (TARGET_ZARCH && TARGET_CPU_NNPA) #define TARGET_NNPA_P(opts) \ *************** CUMULATIVE_ARGS; *** 787,792 **** --- 787,794 ---- #define PROFILE_BEFORE_PROLOGUE 1 + #define NO_PROFILE_COUNTERS 1 + /* Trampolines for nested functions. */ diff -Nrcpad gcc-11.2.0/gcc/config/s390/s390.md gcc-11.3.0/gcc/config/s390/s390.md *** gcc-11.2.0/gcc/config/s390/s390.md Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/s390/s390.md Thu Apr 21 07:58:53 2022 *************** *** 79,85 **** UNSPEC_GOTENT UNSPEC_GOT UNSPEC_GOTOFF ! UNSPEC_PLT UNSPEC_PLTOFF ; Literal pool --- 79,85 ---- UNSPEC_GOTENT UNSPEC_GOT UNSPEC_GOTOFF ! UNSPEC_PLT31 UNSPEC_PLTOFF ; Literal pool *************** *** 525,531 **** (const (symbol_ref "s390_tune_attr"))) (define_attr "cpu_facility" ! "standard,ieee,zarch,cpu_zarch,longdisp,extimm,dfp,z10,z196,zEC12,vx,z13,z14,vxe,z15,vxe2,arch14,nnpa" (const_string "standard")) (define_attr "enabled" "" --- 525,531 ---- (const (symbol_ref "s390_tune_attr"))) (define_attr "cpu_facility" ! "standard,ieee,zarch,cpu_zarch,longdisp,extimm,dfp,z10,z196,zEC12,vx,z13,z14,vxe,z15,vxe2,z16,nnpa" (const_string "standard")) (define_attr "enabled" "" *************** *** 591,598 **** (match_test "TARGET_VXE2")) (const_int 1) ! (and (eq_attr "cpu_facility" "arch14") ! (match_test "TARGET_ARCH14")) (const_int 1) (and (eq_attr "cpu_facility" "nnpa") --- 591,598 ---- (match_test "TARGET_VXE2")) (const_int 1) ! (and (eq_attr "cpu_facility" "z16") ! (match_test "TARGET_Z16")) (const_int 1) (and (eq_attr "cpu_facility" "nnpa") *************** *** 1006,1012 **** (match_operand:GPR 2 "memory_operand")) (set (reg CC_REGNUM) (compare (match_dup 0) (match_operand:GPR 1 "const0_operand")))] ! "s390_match_ccmode(insn, CCSmode) && TARGET_EXTIMM && GENERAL_REG_P (operands[0]) && satisfies_constraint_T (operands[2]) && !contains_constant_pool_address_p (operands[2])" --- 1006,1012 ---- (match_operand:GPR 2 "memory_operand")) (set (reg CC_REGNUM) (compare (match_dup 0) (match_operand:GPR 1 "const0_operand")))] ! "s390_match_ccmode (peep2_next_insn (1), CCSmode) && TARGET_EXTIMM && GENERAL_REG_P (operands[0]) && satisfies_constraint_T (operands[2]) && !contains_constant_pool_address_p (operands[2])" *************** *** 1906,1912 **** vlgvg\t%0,%v1,0 vleg\t%v0,%1,0 vsteg\t%v1,%0,0 ! larl\t%0,%1" [(set_attr "op_type" "RI,RI,RI,RI,RI,RIL,RIL,RIL,RRE,RRE,RRE,RXY,RIL,RRE,RXY, RXY,RR,RX,RXY,RX,RXY,RIL,SIL,*,*,RS,RS,VRI,VRR,VRS,VRS, VRX,VRX,RIL") --- 1906,1912 ---- vlgvg\t%0,%v1,0 vleg\t%v0,%1,0 vsteg\t%v1,%0,0 ! larl\t%0,%1%K1" [(set_attr "op_type" "RI,RI,RI,RI,RI,RIL,RIL,RIL,RRE,RRE,RRE,RXY,RIL,RRE,RXY, RXY,RR,RX,RXY,RX,RXY,RIL,SIL,*,*,RS,RS,VRI,VRR,VRS,VRS, VRX,VRX,RIL") *************** *** 2180,2186 **** (match_operand:SI 1 "larl_operand" "X"))] "!TARGET_64BIT && !FP_REG_P (operands[0])" ! "larl\t%0,%1" [(set_attr "op_type" "RIL") (set_attr "type" "larl") (set_attr "z10prop" "z10_fwd_A1") --- 2180,2186 ---- (match_operand:SI 1 "larl_operand" "X"))] "!TARGET_64BIT && !FP_REG_P (operands[0])" ! "larl\t%0,%1%K1" [(set_attr "op_type" "RIL") (set_attr "type" "larl") (set_attr "z10prop" "z10_fwd_A1") *************** *** 9587,9593 **** (define_insn "*cmp_and_trap_unsigned_int" [(trap_if (match_operator 0 "s390_unsigned_integer_comparison" [(match_operand:GPR 1 "register_operand" "d,d,d") ! (match_operand:GPR 2 "general_operand" "d,D,T")]) (const_int 0))] "TARGET_Z10" "@ --- 9587,9593 ---- (define_insn "*cmp_and_trap_unsigned_int" [(trap_if (match_operator 0 "s390_unsigned_integer_comparison" [(match_operand:GPR 1 "register_operand" "d,d,d") ! (match_operand:GPR 2 "general_operand" "d,D,S")]) (const_int 0))] "TARGET_Z10" "@ *************** *** 10379,10385 **** [(call (mem:QI (match_operand 0 "bras_sym_operand" "X")) (match_operand 1 "const_int_operand" "n"))] "SIBLING_CALL_P (insn) && TARGET_SMALL_EXEC" ! "j\t%0" [(set_attr "op_type" "RI") (set_attr "type" "branch")]) --- 10379,10385 ---- [(call (mem:QI (match_operand 0 "bras_sym_operand" "X")) (match_operand 1 "const_int_operand" "n"))] "SIBLING_CALL_P (insn) && TARGET_SMALL_EXEC" ! "j\t%0%K0" [(set_attr "op_type" "RI") (set_attr "type" "branch")]) *************** *** 10387,10393 **** [(call (mem:QI (match_operand 0 "bras_sym_operand" "X")) (match_operand 1 "const_int_operand" "n"))] "SIBLING_CALL_P (insn)" ! "jg\t%0" [(set_attr "op_type" "RIL") (set_attr "type" "branch")]) --- 10387,10393 ---- [(call (mem:QI (match_operand 0 "bras_sym_operand" "X")) (match_operand 1 "const_int_operand" "n"))] "SIBLING_CALL_P (insn)" ! "jg\t%0%K0" [(set_attr "op_type" "RIL") (set_attr "type" "branch")]) *************** *** 10440,10446 **** (call (mem:QI (match_operand 1 "bras_sym_operand" "X")) (match_operand 2 "const_int_operand" "n")))] "SIBLING_CALL_P (insn) && TARGET_SMALL_EXEC" ! "j\t%1" [(set_attr "op_type" "RI") (set_attr "type" "branch")]) --- 10440,10446 ---- (call (mem:QI (match_operand 1 "bras_sym_operand" "X")) (match_operand 2 "const_int_operand" "n")))] "SIBLING_CALL_P (insn) && TARGET_SMALL_EXEC" ! "j\t%1%K1" [(set_attr "op_type" "RI") (set_attr "type" "branch")]) *************** *** 10449,10455 **** (call (mem:QI (match_operand 1 "bras_sym_operand" "X")) (match_operand 2 "const_int_operand" "n")))] "SIBLING_CALL_P (insn)" ! "jg\t%1" [(set_attr "op_type" "RIL") (set_attr "type" "branch")]) --- 10449,10455 ---- (call (mem:QI (match_operand 1 "bras_sym_operand" "X")) (match_operand 2 "const_int_operand" "n")))] "SIBLING_CALL_P (insn)" ! "jg\t%1%K1" [(set_attr "op_type" "RIL") (set_attr "type" "branch")]) *************** *** 10476,10482 **** "!SIBLING_CALL_P (insn) && TARGET_SMALL_EXEC && GET_MODE (operands[2]) == Pmode" ! "bras\t%2,%0" [(set_attr "op_type" "RI") (set_attr "type" "jsr") (set_attr "z196prop" "z196_cracked")]) --- 10476,10482 ---- "!SIBLING_CALL_P (insn) && TARGET_SMALL_EXEC && GET_MODE (operands[2]) == Pmode" ! "bras\t%2,%0%K0" [(set_attr "op_type" "RI") (set_attr "type" "jsr") (set_attr "z196prop" "z196_cracked")]) *************** *** 10488,10494 **** "!SIBLING_CALL_P (insn) && GET_MODE (operands[2]) == Pmode" ! "brasl\t%2,%0" [(set_attr "op_type" "RIL") (set_attr "type" "jsr") (set_attr "z196prop" "z196_cracked") --- 10488,10494 ---- "!SIBLING_CALL_P (insn) && GET_MODE (operands[2]) == Pmode" ! "brasl\t%2,%0%K0" [(set_attr "op_type" "RIL") (set_attr "type" "jsr") (set_attr "z196prop" "z196_cracked") *************** *** 10582,10588 **** "!SIBLING_CALL_P (insn) && TARGET_SMALL_EXEC && GET_MODE (operands[3]) == Pmode" ! "bras\t%3,%1" [(set_attr "op_type" "RI") (set_attr "type" "jsr") (set_attr "z196prop" "z196_cracked")]) --- 10582,10588 ---- "!SIBLING_CALL_P (insn) && TARGET_SMALL_EXEC && GET_MODE (operands[3]) == Pmode" ! "bras\t%3,%1%K1" [(set_attr "op_type" "RI") (set_attr "type" "jsr") (set_attr "z196prop" "z196_cracked")]) *************** *** 10595,10601 **** "!SIBLING_CALL_P (insn) && GET_MODE (operands[3]) == Pmode" ! "brasl\t%3,%1" [(set_attr "op_type" "RIL") (set_attr "type" "jsr") (set_attr "z196prop" "z196_cracked") --- 10595,10601 ---- "!SIBLING_CALL_P (insn) && GET_MODE (operands[3]) == Pmode" ! "brasl\t%3,%1%K1" [(set_attr "op_type" "RIL") (set_attr "type" "jsr") (set_attr "z196prop" "z196_cracked") *************** *** 10726,10732 **** "!SIBLING_CALL_P (insn) && TARGET_SMALL_EXEC && GET_MODE (operands[3]) == Pmode" ! "bras\t%3,%1%J4" [(set_attr "op_type" "RI") (set_attr "type" "jsr") (set_attr "z196prop" "z196_cracked")]) --- 10726,10732 ---- "!SIBLING_CALL_P (insn) && TARGET_SMALL_EXEC && GET_MODE (operands[3]) == Pmode" ! "bras\t%3,%1%K1%J4" [(set_attr "op_type" "RI") (set_attr "type" "jsr") (set_attr "z196prop" "z196_cracked")]) *************** *** 10740,10746 **** "!SIBLING_CALL_P (insn) && GET_MODE (operands[3]) == Pmode" ! "brasl\t%3,%1%J4" [(set_attr "op_type" "RIL") (set_attr "type" "jsr") (set_attr "z196prop" "z196_cracked") --- 10740,10746 ---- "!SIBLING_CALL_P (insn) && GET_MODE (operands[3]) == Pmode" ! "brasl\t%3,%1%K1%J4" [(set_attr "op_type" "RIL") (set_attr "type" "jsr") (set_attr "z196prop" "z196_cracked") *************** *** 11349,11355 **** [(set (match_operand 0 "register_operand" "=a") (unspec [(label_ref (match_operand 1 "" ""))] UNSPEC_MAIN_BASE))] "GET_MODE (operands[0]) == Pmode" ! "larl\t%0,%1" [(set_attr "op_type" "RIL") (set_attr "type" "larl") (set_attr "z10prop" "z10_fwd_A1") --- 11349,11355 ---- [(set (match_operand 0 "register_operand" "=a") (unspec [(label_ref (match_operand 1 "" ""))] UNSPEC_MAIN_BASE))] "GET_MODE (operands[0]) == Pmode" ! "larl\t%0,%1%K1" [(set_attr "op_type" "RIL") (set_attr "type" "larl") (set_attr "z10prop" "z10_fwd_A1") *************** *** 11369,11375 **** [(set (match_operand 0 "register_operand" "=a") (unspec [(label_ref (match_operand 1 "" ""))] UNSPEC_RELOAD_BASE))] "GET_MODE (operands[0]) == Pmode" ! "larl\t%0,%1" [(set_attr "op_type" "RIL") (set_attr "type" "larl") (set_attr "z10prop" "z10_fwd_A1")]) --- 11369,11375 ---- [(set (match_operand 0 "register_operand" "=a") (unspec [(label_ref (match_operand 1 "" ""))] UNSPEC_RELOAD_BASE))] "GET_MODE (operands[0]) == Pmode" ! "larl\t%0,%1%K1" [(set_attr "op_type" "RIL") (set_attr "type" "larl") (set_attr "z10prop" "z10_fwd_A1")]) *************** *** 12226,12232 **** "" { s390_output_split_stack_data (operands[1], operands[2], operands[3], operands[4]); ! return "jg\t%0"; } [(set_attr "op_type" "RIL") (set_attr "type" "branch")]) --- 12226,12232 ---- "" { s390_output_split_stack_data (operands[1], operands[2], operands[3], operands[4]); ! return "jg\t%0%K0"; } [(set_attr "op_type" "RIL") (set_attr "type" "branch")]) diff -Nrcpad gcc-11.2.0/gcc/config/s390/s390.opt gcc-11.3.0/gcc/config/s390/s390.opt *** gcc-11.2.0/gcc/config/s390/s390.opt Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/s390/s390.opt Thu Apr 21 07:58:53 2022 *************** EnumValue *** 116,122 **** Enum(processor_type) String(arch13) Value(PROCESSOR_8561_Z15) EnumValue ! Enum(processor_type) String(arch14) Value(PROCESSOR_ARCH14) EnumValue Enum(processor_type) String(native) Value(PROCESSOR_NATIVE) DriverOnly --- 116,125 ---- Enum(processor_type) String(arch13) Value(PROCESSOR_8561_Z15) EnumValue ! Enum(processor_type) String(arch14) Value(PROCESSOR_3931_Z16) ! ! EnumValue ! Enum(processor_type) String(z16) Value(PROCESSOR_3931_Z16) EnumValue Enum(processor_type) String(native) Value(PROCESSOR_NATIVE) DriverOnly diff -Nrcpad gcc-11.2.0/gcc/config/s390/tpf.md gcc-11.3.0/gcc/config/s390/tpf.md *** gcc-11.2.0/gcc/config/s390/tpf.md Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/s390/tpf.md Thu Apr 21 07:58:53 2022 *************** *** 21,27 **** [(unspec_volatile [(match_operand 0 "const_int_operand" "J") (match_operand 1 "const_int_operand" "J")] UNSPECV_TPF_PROLOGUE) ! (clobber (reg:DI 1))] "TARGET_TPF_PROFILING" "larl\t%%r1,.+14\;tm\t%0,255\;bnz\t%1" [(set_attr "length" "14")]) --- 21,28 ---- [(unspec_volatile [(match_operand 0 "const_int_operand" "J") (match_operand 1 "const_int_operand" "J")] UNSPECV_TPF_PROLOGUE) ! (clobber (reg:DI 1)) ! (clobber (reg:CC CC_REGNUM))] "TARGET_TPF_PROFILING" "larl\t%%r1,.+14\;tm\t%0,255\;bnz\t%1" [(set_attr "length" "14")]) *************** *** 31,37 **** [(unspec_volatile [(match_operand 0 "const_int_operand" "J") (match_operand 1 "const_int_operand" "J")] UNSPECV_TPF_EPILOGUE) ! (clobber (reg:DI 1))] "TARGET_TPF_PROFILING" "larl\t%%r1,.+14\;tm\t%0,255\;bnz\t%1" [(set_attr "length" "14")]) --- 32,39 ---- [(unspec_volatile [(match_operand 0 "const_int_operand" "J") (match_operand 1 "const_int_operand" "J")] UNSPECV_TPF_EPILOGUE) ! (clobber (reg:DI 1)) ! (clobber (reg:CC CC_REGNUM))] "TARGET_TPF_PROFILING" "larl\t%%r1,.+14\;tm\t%0,255\;bnz\t%1" [(set_attr "length" "14")]) diff -Nrcpad gcc-11.2.0/gcc/config/sparc/leon5.md gcc-11.3.0/gcc/config/sparc/leon5.md *** gcc-11.2.0/gcc/config/sparc/leon5.md Thu Jan 1 00:00:00 1970 --- gcc-11.3.0/gcc/config/sparc/leon5.md Thu Apr 21 07:58:53 2022 *************** *** 0 **** --- 1,103 ---- + ;; Scheduling description for LEON5. + ;; Copyright (C) 2021 Free Software Foundation, Inc. + ;; + ;; This file is part of GCC. + ;; + ;; GCC is free software; you can redistribute it and/or modify + ;; it under the terms of the GNU General Public License as published by + ;; the Free Software Foundation; either version 3, or (at your option) + ;; any later version. + ;; + ;; GCC is distributed in the hope that it will be useful, + ;; but WITHOUT ANY WARRANTY; without even the implied warranty of + ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + ;; GNU General Public License for more details. + ;; + ;; You should have received a copy of the GNU General Public License + ;; along with GCC; see the file COPYING3. If not see + ;; . + + + ;; The LEON5 can often dual issue instructions from the same 64-bit aligned + ;; double word if there are no data dependencies. + ;; + ;; Avoid scheduling load/store, FPU, and multiply instructions back to + ;; back, regardless of data dependencies. + ;; + ;; Push comparisons away from the associated branch instruction. + ;; + ;; Avoid scheduling ALU instructions with data dependencies back to back. + ;; + ;; Schedule three instructions between load and dependent instruction. + + (define_automaton "leon5") + + (define_cpu_unit "leon5_memory" "leon5") + (define_cpu_unit "leon5_mul" "leon5") + (define_cpu_unit "grfpu_d" "grfpu") + (define_cpu_unit "grfpu_s" "grfpu") + + (define_insn_reservation "leon5_load" 4 + (and (eq_attr "cpu" "leon5") + (eq_attr "type" "load,sload")) + "leon5_memory * 2, nothing * 2") + + (define_insn_reservation "leon5_fpload" 2 + (and (eq_attr "cpu" "leon5") + (eq_attr "type" "fpload")) + "leon5_memory * 2 + grfpu_alu * 2") + + (define_insn_reservation "leon5_store" 2 + (and (eq_attr "cpu" "leon5") + (eq_attr "type" "store")) + "leon5_memory * 2") + + (define_insn_reservation "leon5_fpstore" 2 + (and (eq_attr "cpu" "leon5") + (eq_attr "type" "fpstore")) + "leon5_memory * 2 + grfpu_alu * 2") + + (define_insn_reservation "leon5_ialu" 2 + (and (eq_attr "cpu" "leon5") + (eq_attr "type" "ialu, shift, ialuX")) + "nothing * 2") + + (define_insn_reservation "leon5_compare" 5 + (and (eq_attr "cpu" "leon5") + (eq_attr "type" "compare")) + "nothing * 5") + + (define_insn_reservation "leon5_imul" 4 + (and (eq_attr "cpu" "leon5") + (eq_attr "type" "imul")) + "leon5_mul * 2, nothing * 2") + + (define_insn_reservation "leon5_idiv" 35 + (and (eq_attr "cpu" "leon5") + (eq_attr "type" "imul")) + "nothing * 35") + + (define_insn_reservation "leon5_fp_alu" 5 + (and (eq_attr "cpu" "leon5") + (eq_attr "type" "fp,fpcmp,fpmul,fpmove")) + "grfpu_alu * 2, nothing*3") + + (define_insn_reservation "leon5_fp_divs" 17 + (and (eq_attr "cpu" "leon5") + (eq_attr "type" "fpdivs")) + "grfpu_alu * 2 + grfpu_d*16, nothing") + + (define_insn_reservation "leon5_fp_divd" 18 + (and (eq_attr "cpu" "leon5") + (eq_attr "type" "fpdivd")) + "grfpu_alu * 2 + grfpu_d*17, nothing") + + (define_insn_reservation "leon5_fp_sqrts" 25 + (and (eq_attr "cpu" "leon5") + (eq_attr "type" "fpsqrts")) + "grfpu_alu * 2 + grfpu_s*24, nothing") + + (define_insn_reservation "leon5_fp_sqrtd" 26 + (and (eq_attr "cpu" "leon5") + (eq_attr "type" "fpsqrtd")) + "grfpu_alu * 2 + grfpu_s*25, nothing") diff -Nrcpad gcc-11.2.0/gcc/config/sparc/sparc-modes.def gcc-11.3.0/gcc/config/sparc/sparc-modes.def *** gcc-11.2.0/gcc/config/sparc/sparc-modes.def Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/sparc/sparc-modes.def Thu Apr 21 07:58:53 2022 *************** along with GCC; see the file COPYING3. *** 23,28 **** --- 23,31 ---- /* 128-bit floating point */ FLOAT_MODE (TF, 16, ieee_quad_format); + /* We need a 32-byte mode to return structures in the 64-bit ABI. */ + INT_MODE (OI, 32); + /* Add any extra modes needed to represent the condition code. We have a CCNZ mode which is used for implicit comparisons with zero when diff -Nrcpad gcc-11.2.0/gcc/config/sparc/sparc-opts.h gcc-11.3.0/gcc/config/sparc/sparc-opts.h *** gcc-11.2.0/gcc/config/sparc/sparc-opts.h Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/sparc/sparc-opts.h Thu Apr 21 07:58:53 2022 *************** enum sparc_processor_type { *** 31,36 **** --- 31,37 ---- PROCESSOR_HYPERSPARC, PROCESSOR_LEON, PROCESSOR_LEON3, + PROCESSOR_LEON5, PROCESSOR_LEON3V7, PROCESSOR_SPARCLITE, PROCESSOR_F930, diff -Nrcpad gcc-11.2.0/gcc/config/sparc/sparc.c gcc-11.3.0/gcc/config/sparc/sparc.c *** gcc-11.2.0/gcc/config/sparc/sparc.c Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/sparc/sparc.c Thu Apr 21 07:58:53 2022 *************** struct processor_costs leon3_costs = { *** 270,275 **** --- 270,300 ---- }; static const + struct processor_costs leon5_costs = { + COSTS_N_INSNS (1), /* int load */ + COSTS_N_INSNS (1), /* int signed load */ + COSTS_N_INSNS (1), /* int zeroed load */ + COSTS_N_INSNS (1), /* float load */ + COSTS_N_INSNS (1), /* fmov, fneg, fabs */ + COSTS_N_INSNS (1), /* fadd, fsub */ + COSTS_N_INSNS (1), /* fcmp */ + COSTS_N_INSNS (1), /* fmov, fmovr */ + COSTS_N_INSNS (1), /* fmul */ + COSTS_N_INSNS (17), /* fdivs */ + COSTS_N_INSNS (18), /* fdivd */ + COSTS_N_INSNS (25), /* fsqrts */ + COSTS_N_INSNS (26), /* fsqrtd */ + COSTS_N_INSNS (4), /* imul */ + COSTS_N_INSNS (4), /* imulX */ + 0, /* imul bit factor */ + COSTS_N_INSNS (35), /* idiv */ + COSTS_N_INSNS (35), /* idivX */ + COSTS_N_INSNS (1), /* movcc/movr */ + 0, /* shift penalty */ + 3 /* branch cost */ + }; + + static const struct processor_costs sparclet_costs = { COSTS_N_INSNS (3), /* int load */ COSTS_N_INSNS (3), /* int signed load */ *************** static int function_arg_slotno (const CU *** 594,599 **** --- 619,625 ---- static int supersparc_adjust_cost (rtx_insn *, int, rtx_insn *, int); static int hypersparc_adjust_cost (rtx_insn *, int, rtx_insn *, int); + static int leon5_adjust_cost (rtx_insn *, int, rtx_insn *, int); static void sparc_emit_set_const32 (rtx, rtx); static void sparc_emit_set_const64 (rtx, rtx); *************** atomic_insn_for_leon3_p (rtx_insn *insn) *** 1053,1058 **** --- 1079,1121 ---- } } + /* True if INSN is a store instruction. */ + + static bool + store_insn_p (rtx_insn *insn) + { + if (GET_CODE (PATTERN (insn)) != SET) + return false; + + switch (get_attr_type (insn)) + { + case TYPE_STORE: + case TYPE_FPSTORE: + return true; + default: + return false; + } + } + + /* True if INSN is a load instruction. */ + + static bool + load_insn_p (rtx_insn *insn) + { + if (GET_CODE (PATTERN (insn)) != SET) + return false; + + switch (get_attr_type (insn)) + { + case TYPE_LOAD: + case TYPE_SLOAD: + case TYPE_FPLOAD: + return true; + default: + return false; + } + } + /* We use a machine specific pass to enable workarounds for errata. We need to have the (essentially) final form of the insn stream in order *************** atomic_insn_for_leon3_p (rtx_insn *insn) *** 1065,1074 **** --- 1128,1156 ---- && GET_CODE (PATTERN (INSN)) != USE \ && GET_CODE (PATTERN (INSN)) != CLOBBER) + rtx_insn * + next_active_non_empty_insn (rtx_insn *insn) + { + insn = next_active_insn (insn); + + while (insn + && (GET_CODE (PATTERN (insn)) == UNSPEC_VOLATILE + || GET_CODE (PATTERN (insn)) == ASM_INPUT + || (USEFUL_INSN_P (insn) + && (asm_noperands (PATTERN (insn)) >= 0) + && !strcmp (decode_asm_operands (PATTERN (insn), + NULL, NULL, NULL, + NULL, NULL), "")))) + insn = next_active_insn (insn); + + return insn; + } + static unsigned int sparc_do_work_around_errata (void) { rtx_insn *insn, *next; + bool find_first_useful = true; /* Force all instructions to be split into their final form. */ split_all_insns_noflow (); *************** sparc_do_work_around_errata (void) *** 1093,1098 **** --- 1175,1190 ---- else jump = NULL; + /* Do not begin function with atomic instruction. */ + if (sparc_fix_ut700 + && find_first_useful + && USEFUL_INSN_P (insn)) + { + find_first_useful = false; + if (atomic_insn_for_leon3_p (insn)) + emit_insn_before (gen_nop (), insn); + } + /* Place a NOP at the branch target of an integer branch if it is a floating-point operation or a floating-point branch. */ if (sparc_fix_gr712rc *************** sparc_do_work_around_errata (void) *** 1113,1121 **** instruction at branch target. */ if (sparc_fix_ut700 && NONJUMP_INSN_P (insn) ! && (set = single_set (insn)) != NULL_RTX ! && mem_ref (SET_SRC (set)) ! && REG_P (SET_DEST (set))) { if (jump && jump_to_label_p (jump)) { --- 1205,1211 ---- instruction at branch target. */ if (sparc_fix_ut700 && NONJUMP_INSN_P (insn) ! && load_insn_p (insn)) { if (jump && jump_to_label_p (jump)) { *************** sparc_do_work_around_errata (void) *** 1124,1130 **** emit_insn_before (gen_nop (), target); } ! next = next_active_insn (insn); if (!next) break; --- 1214,1220 ---- emit_insn_before (gen_nop (), target); } ! next = next_active_non_empty_insn (insn); if (!next) break; *************** sparc_do_work_around_errata (void) *** 1220,1249 **** if (sparc_fix_b2bst && NONJUMP_INSN_P (insn) && (set = single_set (insn)) != NULL_RTX ! && MEM_P (SET_DEST (set))) { /* Sequence B begins with a double-word store. */ bool seq_b = GET_MODE_SIZE (GET_MODE (SET_DEST (set))) == 8; rtx_insn *after; int i; ! next = next_active_insn (insn); if (!next) break; for (after = next, i = 0; i < 2; i++) { - /* Skip empty assembly statements. */ - if ((GET_CODE (PATTERN (after)) == UNSPEC_VOLATILE) - || (USEFUL_INSN_P (after) - && (asm_noperands (PATTERN (after))>=0) - && !strcmp (decode_asm_operands (PATTERN (after), - NULL, NULL, NULL, - NULL, NULL), ""))) - after = next_active_insn (after); - if (!after) - break; - /* If the insn is a branch, then it cannot be problematic. */ if (!NONJUMP_INSN_P (after) || GET_CODE (PATTERN (after)) == SEQUENCE) --- 1310,1328 ---- if (sparc_fix_b2bst && NONJUMP_INSN_P (insn) && (set = single_set (insn)) != NULL_RTX ! && store_insn_p (insn)) { /* Sequence B begins with a double-word store. */ bool seq_b = GET_MODE_SIZE (GET_MODE (SET_DEST (set))) == 8; rtx_insn *after; int i; ! next = next_active_non_empty_insn (insn); if (!next) break; for (after = next, i = 0; i < 2; i++) { /* If the insn is a branch, then it cannot be problematic. */ if (!NONJUMP_INSN_P (after) || GET_CODE (PATTERN (after)) == SEQUENCE) *************** sparc_do_work_around_errata (void) *** 1253,1260 **** if (seq_b) { /* Add NOP if followed by a store. */ ! if ((set = single_set (after)) != NULL_RTX ! && MEM_P (SET_DEST (set))) insert_nop = true; /* Otherwise it is ok. */ --- 1332,1338 ---- if (seq_b) { /* Add NOP if followed by a store. */ ! if (store_insn_p (after)) insert_nop = true; /* Otherwise it is ok. */ *************** sparc_do_work_around_errata (void) *** 1269,1283 **** && (MEM_P (SET_DEST (set)) || mem_ref (SET_SRC (set)))) break; ! after = next_active_insn (after); if (!after) break; } /* Add NOP if third instruction is a store. */ if (i == 1 ! && (set = single_set (after)) != NULL_RTX ! && MEM_P (SET_DEST (set))) insert_nop = true; } } --- 1347,1360 ---- && (MEM_P (SET_DEST (set)) || mem_ref (SET_SRC (set)))) break; ! after = next_active_non_empty_insn (after); if (!after) break; } /* Add NOP if third instruction is a store. */ if (i == 1 ! && store_insn_p (after)) insert_nop = true; } } *************** dump_target_flag_bits (const int flags) *** 1604,1609 **** --- 1681,1690 ---- fprintf (stderr, "CBCOND "); if (flags & MASK_DEPRECATED_V8_INSNS) fprintf (stderr, "DEPRECATED_V8_INSNS "); + if (flags & MASK_LEON) + fprintf (stderr, "LEON "); + if (flags & MASK_LEON3) + fprintf (stderr, "LEON3 "); if (flags & MASK_SPARCLET) fprintf (stderr, "SPARCLET "); if (flags & MASK_SPARCLITE) *************** sparc_option_override (void) *** 1640,1645 **** --- 1721,1727 ---- { TARGET_CPU_hypersparc, PROCESSOR_HYPERSPARC }, { TARGET_CPU_leon, PROCESSOR_LEON }, { TARGET_CPU_leon3, PROCESSOR_LEON3 }, + { TARGET_CPU_leon5, PROCESSOR_LEON5 }, { TARGET_CPU_leon3v7, PROCESSOR_LEON3V7 }, { TARGET_CPU_sparclite, PROCESSOR_F930 }, { TARGET_CPU_sparclite86x, PROCESSOR_SPARCLITE86X }, *************** sparc_option_override (void) *** 1671,1676 **** --- 1753,1759 ---- { "hypersparc", MASK_ISA, MASK_V8 }, { "leon", MASK_ISA|MASK_FSMULD, MASK_V8|MASK_LEON }, { "leon3", MASK_ISA, MASK_V8|MASK_LEON3 }, + { "leon5", MASK_ISA, MASK_V8|MASK_LEON3 }, { "leon3v7", MASK_ISA, MASK_LEON3 }, { "sparclite", MASK_ISA, MASK_SPARCLITE }, /* The Fujitsu MB86930 is the original sparclite chip, with no FPU. */ *************** sparc_option_override (void) *** 1981,1986 **** --- 2064,2072 ---- case PROCESSOR_LEON3V7: sparc_costs = &leon3_costs; break; + case PROCESSOR_LEON5: + sparc_costs = &leon5_costs; + break; case PROCESSOR_SPARCLET: case PROCESSOR_TSC701: sparc_costs = &sparclet_costs; *************** hypersparc_adjust_cost (rtx_insn *insn, *** 10165,10175 **** --- 10251,10314 ---- } static int + leon5_adjust_cost (rtx_insn *insn, int dtype, rtx_insn *dep_insn, + int cost) + { + enum attr_type insn_type, dep_type; + rtx pat = PATTERN (insn); + rtx dep_pat = PATTERN (dep_insn); + + if (recog_memoized (insn) < 0 || recog_memoized (dep_insn) < 0) + return cost; + + insn_type = get_attr_type (insn); + dep_type = get_attr_type (dep_insn); + + switch (dtype) + { + case REG_DEP_TRUE: + /* Data dependency; DEP_INSN writes a register that INSN reads some + cycles later. */ + + switch (insn_type) + { + case TYPE_STORE: + /* Try to schedule three instructions between the store and + the ALU instruction that generated the data. */ + if (dep_type == TYPE_IALU || dep_type == TYPE_SHIFT) + { + if (GET_CODE (pat) != SET || GET_CODE (dep_pat) != SET) + break; + + if (rtx_equal_p (SET_DEST (dep_pat), SET_SRC (pat))) + return 4; + } + break; + default: + break; + } + break; + case REG_DEP_ANTI: + /* Penalize anti-dependencies for FPU instructions. */ + if (fpop_insn_p (insn) || insn_type == TYPE_FPLOAD) + return 4; + break; + default: + break; + } + + return cost; + } + + static int sparc_adjust_cost (rtx_insn *insn, int dep_type, rtx_insn *dep, int cost, unsigned int) { switch (sparc_cpu) { + case PROCESSOR_LEON5: + cost = leon5_adjust_cost (insn, dep_type, dep, cost); + break; case PROCESSOR_SUPERSPARC: cost = supersparc_adjust_cost (insn, dep_type, dep, cost); break; diff -Nrcpad gcc-11.2.0/gcc/config/sparc/sparc.h gcc-11.3.0/gcc/config/sparc/sparc.h *** gcc-11.2.0/gcc/config/sparc/sparc.h Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/sparc/sparc.h Thu Apr 21 07:58:53 2022 *************** along with GCC; see the file COPYING3. *** 120,140 **** #define TARGET_CPU_leon 4 #define TARGET_CPU_leon3 5 #define TARGET_CPU_leon3v7 6 ! #define TARGET_CPU_sparclite 7 ! #define TARGET_CPU_f930 7 /* alias */ ! #define TARGET_CPU_f934 7 /* alias */ ! #define TARGET_CPU_sparclite86x 8 ! #define TARGET_CPU_sparclet 9 ! #define TARGET_CPU_tsc701 9 /* alias */ ! #define TARGET_CPU_v9 10 /* generic v9 implementation */ ! #define TARGET_CPU_sparcv9 10 /* alias */ ! #define TARGET_CPU_sparc64 10 /* alias */ ! #define TARGET_CPU_ultrasparc 11 ! #define TARGET_CPU_ultrasparc3 12 ! #define TARGET_CPU_niagara 13 ! #define TARGET_CPU_niagara2 14 ! #define TARGET_CPU_niagara3 15 ! #define TARGET_CPU_niagara4 16 #define TARGET_CPU_niagara7 19 #define TARGET_CPU_m8 20 --- 120,141 ---- #define TARGET_CPU_leon 4 #define TARGET_CPU_leon3 5 #define TARGET_CPU_leon3v7 6 ! #define TARGET_CPU_leon5 7 ! #define TARGET_CPU_sparclite 8 ! #define TARGET_CPU_f930 8 /* alias */ ! #define TARGET_CPU_f934 8 /* alias */ ! #define TARGET_CPU_sparclite86x 9 ! #define TARGET_CPU_sparclet 10 ! #define TARGET_CPU_tsc701 10 /* alias */ ! #define TARGET_CPU_v9 11 /* generic v9 implementation */ ! #define TARGET_CPU_sparcv9 11 /* alias */ ! #define TARGET_CPU_sparc64 11 /* alias */ ! #define TARGET_CPU_ultrasparc 12 ! #define TARGET_CPU_ultrasparc3 13 ! #define TARGET_CPU_niagara 14 ! #define TARGET_CPU_niagara2 15 ! #define TARGET_CPU_niagara3 16 ! #define TARGET_CPU_niagara4 17 #define TARGET_CPU_niagara7 19 #define TARGET_CPU_m8 20 *************** along with GCC; see the file COPYING3. *** 229,235 **** #endif #if TARGET_CPU_DEFAULT == TARGET_CPU_leon \ ! || TARGET_CPU_DEFAULT == TARGET_CPU_leon3 #define CPP_CPU32_DEFAULT_SPEC "-D__leon__ -D__sparc_v8__" #define ASM_CPU32_DEFAULT_SPEC AS_LEON_FLAG #endif --- 230,237 ---- #endif #if TARGET_CPU_DEFAULT == TARGET_CPU_leon \ ! || TARGET_CPU_DEFAULT == TARGET_CPU_leon3 \ ! || TARGET_CPU_DEFAULT == TARGET_CPU_leon5 #define CPP_CPU32_DEFAULT_SPEC "-D__leon__ -D__sparc_v8__" #define ASM_CPU32_DEFAULT_SPEC AS_LEON_FLAG #endif *************** along with GCC; see the file COPYING3. *** 285,290 **** --- 287,293 ---- %{mcpu=hypersparc:-D__hypersparc__ -D__sparc_v8__} \ %{mcpu=leon:-D__leon__ -D__sparc_v8__} \ %{mcpu=leon3:-D__leon__ -D__sparc_v8__} \ + %{mcpu=leon5:-D__leon__ -D__sparc_v8__} \ %{mcpu=leon3v7:-D__leon__} \ %{mcpu=v9:-D__sparc_v9__} \ %{mcpu=ultrasparc:-D__sparc_v9__} \ *************** along with GCC; see the file COPYING3. *** 337,342 **** --- 340,346 ---- %{mcpu=hypersparc:-Av8} \ %{mcpu=leon:" AS_LEON_FLAG "} \ %{mcpu=leon3:" AS_LEON_FLAG "} \ + %{mcpu=leon5:" AS_LEON_FLAG "} \ %{mcpu=leon3v7:" AS_LEONV7_FLAG "} \ %{mv8plus:-Av8plus} \ %{mcpu=v9:-Av9} \ diff -Nrcpad gcc-11.2.0/gcc/config/sparc/sparc.md gcc-11.3.0/gcc/config/sparc/sparc.md *** gcc-11.2.0/gcc/config/sparc/sparc.md Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/sparc/sparc.md Thu Apr 21 07:58:53 2022 *************** *** 233,238 **** --- 233,239 ---- hypersparc, leon, leon3, + leon5, leon3v7, sparclite, f930, *************** *** 638,643 **** --- 639,645 ---- (include "supersparc.md") (include "hypersparc.md") (include "leon.md") + (include "leon5.md") (include "sparclet.md") (include "ultra1_2.md") (include "ultra3.md") *************** visl") *** 8353,8361 **** (unspec:SI [(match_operand:SI 1 "memory_operand" "m")] UNSPEC_SP_SET)) (set (match_scratch:SI 2 "=&r") (const_int 0))] "TARGET_ARCH32" ! "ld\t%1, %2\;st\t%2, %0\;mov\t0, %2" [(set_attr "type" "multi") ! (set_attr "length" "3")]) (define_insn "stack_protect_setdi" [(set (match_operand:DI 0 "memory_operand" "=m") --- 8355,8369 ---- (unspec:SI [(match_operand:SI 1 "memory_operand" "m")] UNSPEC_SP_SET)) (set (match_scratch:SI 2 "=&r") (const_int 0))] "TARGET_ARCH32" ! { ! if (sparc_fix_b2bst) ! return "ld\t%1, %2\;st\t%2, %0\;mov\t0, %2\;nop"; ! else ! return "ld\t%1, %2\;st\t%2, %0\;mov\t0, %2"; ! } [(set_attr "type" "multi") ! (set (attr "length") (if_then_else (eq_attr "fix_b2bst" "true") ! (const_int 4) (const_int 3)))]) (define_insn "stack_protect_setdi" [(set (match_operand:DI 0 "memory_operand" "=m") diff -Nrcpad gcc-11.2.0/gcc/config/sparc/sparc.opt gcc-11.3.0/gcc/config/sparc/sparc.opt *** gcc-11.2.0/gcc/config/sparc/sparc.opt Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/sparc/sparc.opt Thu Apr 21 07:58:53 2022 *************** EnumValue *** 176,181 **** --- 176,184 ---- Enum(sparc_processor) String(leon3v7) Value(PROCESSOR_LEON3V7) EnumValue + Enum(sparc_processor) String(leon5) Value(PROCESSOR_LEON5) + + EnumValue Enum(sparc_processor) String(sparclite) Value(PROCESSOR_SPARCLITE) EnumValue diff -Nrcpad gcc-11.2.0/gcc/config/vx-common.h gcc-11.3.0/gcc/config/vx-common.h *** gcc-11.2.0/gcc/config/vx-common.h Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/vx-common.h Thu Apr 21 07:58:53 2022 *************** along with GCC; see the file COPYING3. *** 97,103 **** /* ------------------------ Misc configuration bits ---------------------- */ ! #ifndef TARGET_VXWORKS7 /* VxWorks, prior to version 7, could not have dots in constructor labels, because it used a mutant variation of collect2 that generates C code instead of assembly. Thus each constructor label --- 97,103 ---- /* ------------------------ Misc configuration bits ---------------------- */ ! #if !TARGET_VXWORKS7 /* VxWorks, prior to version 7, could not have dots in constructor labels, because it used a mutant variation of collect2 that generates C code instead of assembly. Thus each constructor label diff -Nrcpad gcc-11.2.0/gcc/config/vxworks.h gcc-11.3.0/gcc/config/vxworks.h *** gcc-11.2.0/gcc/config/vxworks.h Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/vxworks.h Thu Apr 21 07:58:53 2022 *************** extern void vxworks_emit_call_builtin___ *** 306,309 **** further incremental LTO linking. We do not do repeated incremental linking so silence the warning (instead of passing -flinker-output=nolto-rel). */ #undef LTO_PLUGIN_SPEC ! #define LTO_PLUGIN_SPEC "%{!mrtp:-plugin-opt=-linker-output-auto-notlo-rel}" --- 306,309 ---- further incremental LTO linking. We do not do repeated incremental linking so silence the warning (instead of passing -flinker-output=nolto-rel). */ #undef LTO_PLUGIN_SPEC ! #define LTO_PLUGIN_SPEC "%{!mrtp:-plugin-opt=-linker-output-auto-nolto-rel}" diff -Nrcpad gcc-11.2.0/gcc/config/xtensa/xtensa.c gcc-11.3.0/gcc/config/xtensa/xtensa.c *** gcc-11.2.0/gcc/config/xtensa/xtensa.c Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config/xtensa/xtensa.c Thu Apr 21 07:58:53 2022 *************** xtensa_emit_move_sequence (rtx *operands *** 1084,1090 **** { /* Try to emit MOVI + SLLI sequence, that is smaller than L32R + literal. */ ! if (optimize_size && mode == SImode && register_operand (dst, mode)) { HOST_WIDE_INT srcval = INTVAL (src); int shift = ctz_hwi (srcval); --- 1084,1091 ---- { /* Try to emit MOVI + SLLI sequence, that is smaller than L32R + literal. */ ! if (optimize_size && mode == SImode && CONST_INT_P (src) ! && register_operand (dst, mode)) { HOST_WIDE_INT srcval = INTVAL (src); int shift = ctz_hwi (srcval); diff -Nrcpad gcc-11.2.0/gcc/config.gcc gcc-11.3.0/gcc/config.gcc *** gcc-11.2.0/gcc/config.gcc Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/config.gcc Thu Apr 21 07:58:52 2022 *************** i[34567]86-*-*) *** 414,420 **** avx512vp2intersectintrin.h avx512vp2intersectvlintrin.h tsxldtrkintrin.h amxtileintrin.h amxint8intrin.h amxbf16intrin.h x86gprintrin.h uintrintrin.h ! hresetintrin.h keylockerintrin.h avxvnniintrin.h" ;; x86_64-*-*) cpu_type=i386 --- 414,421 ---- avx512vp2intersectintrin.h avx512vp2intersectvlintrin.h tsxldtrkintrin.h amxtileintrin.h amxint8intrin.h amxbf16intrin.h x86gprintrin.h uintrintrin.h ! hresetintrin.h keylockerintrin.h avxvnniintrin.h ! mwaitintrin.h" ;; x86_64-*-*) cpu_type=i386 *************** x86_64-*-*) *** 451,457 **** avx512vp2intersectintrin.h avx512vp2intersectvlintrin.h tsxldtrkintrin.h amxtileintrin.h amxint8intrin.h amxbf16intrin.h x86gprintrin.h uintrintrin.h ! hresetintrin.h keylockerintrin.h avxvnniintrin.h" ;; ia64-*-*) extra_headers=ia64intrin.h --- 452,459 ---- avx512vp2intersectintrin.h avx512vp2intersectvlintrin.h tsxldtrkintrin.h amxtileintrin.h amxint8intrin.h amxbf16intrin.h x86gprintrin.h uintrintrin.h ! hresetintrin.h keylockerintrin.h avxvnniintrin.h ! mwaitintrin.h" ;; ia64-*-*) extra_headers=ia64intrin.h *************** case ${target} in *** 702,710 **** *-*-darwin[4-9]* | *-*-darwin1[0-9]*) macos_min=`expr $darwin_maj - 4` ;; ! *-*-darwin20*) ! # Darwin 20 corresponds to macOS 11. ! macos_maj=11 def_ld64=609.0 ;; *-*-darwin) --- 704,712 ---- *-*-darwin[4-9]* | *-*-darwin1[0-9]*) macos_min=`expr $darwin_maj - 4` ;; ! *-*-darwin2*) ! # Darwin 20 corresponds to macOS 11, Darwin 21 to macOS 12. ! macos_maj=`expr $darwin_maj - 9` def_ld64=609.0 ;; *-*-darwin) *************** case "${target}" in *** 4630,4641 **** --- 4632,4646 ---- case "${with_isa_spec}" in ""|default|2.2) tm_defines="${tm_defines} TARGET_DEFAULT_ISA_SPEC=ISA_SPEC_CLASS_2P2" + with_isa_spec=2.2 ;; 20191213 | 201912) tm_defines="${tm_defines} TARGET_DEFAULT_ISA_SPEC=ISA_SPEC_CLASS_20191213" + with_isa_spec=20191213 ;; 20190608 | 201906) tm_defines="${tm_defines} TARGET_DEFAULT_ISA_SPEC=ISA_SPEC_CLASS_20190608" + with_isa_spec=20190608 ;; *) echo "--with-isa-spec only accept 2.2, 20191213, 201912, 20190608 or 201906" 1>&2 *************** case "${target}" in *** 4687,4693 **** esac PYTHON=`which python || which python3 || which python2` if test "x${PYTHON}" != x; then ! with_arch=`${PYTHON} ${srcdir}/config/riscv/arch-canonicalize ${with_arch}` fi tm_defines="${tm_defines} TARGET_RISCV_DEFAULT_ARCH=${with_arch}" --- 4692,4698 ---- esac PYTHON=`which python || which python3 || which python2` if test "x${PYTHON}" != x; then ! with_arch=`${PYTHON} ${srcdir}/config/riscv/arch-canonicalize -misa-spec=${with_isa_spec} ${with_arch}` fi tm_defines="${tm_defines} TARGET_RISCV_DEFAULT_ARCH=${with_arch}" *************** case "${target}" in *** 4736,4741 **** --- 4741,4747 ---- case "${target}" in riscv*-*-elf*) if ${srcdir}/config/riscv/multilib-generator \ + -misa-spec=${with_isa_spec} \ `echo ${with_multilib_generator} | sed 's/;/ /g'`\ > t-multilib-config; then *************** case "${target}" in *** 5144,5150 **** for which in arch tune; do eval "val=\$with_$which" case ${val} in ! "" | native | z900 | z990 | z9-109 | z9-ec | z10 | z196 | zEC12 | z13 | z14 | z15 | arch5 | arch6 | arch7 | arch8 | arch9 | arch10 | arch11 | arch12 | arch13 | arch14 ) # OK ;; *) --- 5150,5156 ---- for which in arch tune; do eval "val=\$with_$which" case ${val} in ! "" | native | z900 | z990 | z9-109 | z9-ec | z10 | z196 | zEC12 | z13 | z14 | z15 | z16 | arch5 | arch6 | arch7 | arch8 | arch9 | arch10 | arch11 | arch12 | arch13 | arch14 ) # OK ;; *) *************** case ${target} in *** 5434,5440 **** esac t= ! all_defaults="abi cpu cpu_32 cpu_64 arch arch_32 arch_64 tune tune_32 tune_64 schedule float mode fpu nan fp_32 odd_spreg_32 divide llsc mips-plt synci tls lxc1-sxc1 madd4" for option in $all_defaults do eval "val=\$with_"`echo $option | sed s/-/_/g` --- 5440,5446 ---- esac t= ! all_defaults="abi cpu cpu_32 cpu_64 arch arch_32 arch_64 tune tune_32 tune_64 schedule float mode fpu nan fp_32 odd_spreg_32 divide llsc mips-plt synci tls lxc1-sxc1 madd4 isa_spec" for option in $all_defaults do eval "val=\$with_"`echo $option | sed s/-/_/g` diff -Nrcpad gcc-11.2.0/gcc/config.in gcc-11.3.0/gcc/config.in *** gcc-11.2.0/gcc/config.in Wed Jul 28 06:55:43 2021 --- gcc-11.3.0/gcc/config.in Thu Apr 21 07:59:35 2022 *************** *** 55,60 **** --- 55,66 ---- #endif + /* Define to enable the use of a default debug linker. */ + #ifndef USED_FOR_TARGET + #undef DEFAULT_DSYMUTIL + #endif + + /* Define to enable the use of a default linker. */ #ifndef USED_FOR_TARGET #undef DEFAULT_LINKER *************** *** 94,99 **** --- 100,111 ---- #endif + /* Define to the dsymutil version. */ + #ifndef USED_FOR_TARGET + #undef DSYMUTIL_VERSION + #endif + + /* Define 0/1 if static analyzer feature is enabled. */ #ifndef USED_FOR_TARGET #undef ENABLE_ANALYZER *************** *** 604,609 **** --- 616,628 ---- #endif + /* Define if your Mac OS X assembler supports -mllvm -x86-pad-for-align=false. + */ + #ifndef USED_FOR_TARGET + #undef HAVE_AS_MLLVM_X86_PAD_FOR_ALIGN + #endif + + /* Define if your Mac OS X assembler supports the -mmacos-version-min option. */ #ifndef USED_FOR_TARGET *************** *** 1431,1436 **** --- 1450,1521 ---- #endif + /* Define if your assembler has fixed global_load functions. */ + #ifndef USED_FOR_TARGET + #undef HAVE_GCN_ASM_GLOBAL_LOAD_FIXED + #endif + + + /* Define if your assembler expects amdgcn_target gfx908+xnack syntax. */ + #ifndef USED_FOR_TARGET + #undef HAVE_GCN_ASM_V3_SYNTAX + #endif + + + /* Define if your assembler expects amdgcn_target gfx908:xnack+ syntax. */ + #ifndef USED_FOR_TARGET + #undef HAVE_GCN_ASM_V4_SYNTAX + #endif + + + /* Define if your assembler allows -mattr=+sramecc for fiji. */ + #ifndef USED_FOR_TARGET + #undef HAVE_GCN_SRAM_ECC_FIJI + #endif + + + /* Define if your assembler allows -mattr=+sramecc for gfx900. */ + #ifndef USED_FOR_TARGET + #undef HAVE_GCN_SRAM_ECC_GFX900 + #endif + + + /* Define if your assembler allows -mattr=+sramecc for gfx906. */ + #ifndef USED_FOR_TARGET + #undef HAVE_GCN_SRAM_ECC_GFX906 + #endif + + + /* Define if your assembler allows -mattr=+sramecc for gfx908. */ + #ifndef USED_FOR_TARGET + #undef HAVE_GCN_SRAM_ECC_GFX908 + #endif + + + /* Define if your assembler allows -mattr=+xnack for fiji. */ + #ifndef USED_FOR_TARGET + #undef HAVE_GCN_XNACK_FIJI + #endif + + + /* Define if your assembler allows -mattr=+xnack for gfx900. */ + #ifndef USED_FOR_TARGET + #undef HAVE_GCN_XNACK_GFX900 + #endif + + + /* Define if your assembler allows -mattr=+xnack for gfx906. */ + #ifndef USED_FOR_TARGET + #undef HAVE_GCN_XNACK_GFX906 + #endif + + + /* Define if your assembler allows -mattr=+xnack for gfx908. */ + #ifndef USED_FOR_TARGET + #undef HAVE_GCN_XNACK_GFX908 + #endif + + /* Define to 1 if you have the `getchar_unlocked' function. */ #ifndef USED_FOR_TARGET #undef HAVE_GETCHAR_UNLOCKED *************** *** 1653,1658 **** --- 1738,1749 ---- #endif + /* Define if the PE linker supports --disable-dynamicbase option. */ + #ifndef USED_FOR_TARGET + #undef HAVE_LD_PE_DISABLE_DYNAMICBASE + #endif + + /* Define if your linker supports PIE option. */ #ifndef USED_FOR_TARGET #undef HAVE_LD_PIE diff -Nrcpad gcc-11.2.0/gcc/configure gcc-11.3.0/gcc/configure *** gcc-11.2.0/gcc/configure Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/configure Thu Apr 21 07:59:35 2022 *************** thin_archive_support *** 723,728 **** --- 723,730 ---- ld_soname_option ld_version_script_option libgcc_visibility + ORIGINAL_DSYMUTIL_FOR_TARGET + gcc_cv_dsymutil gcc_cv_otool gcc_cv_readelf gcc_cv_objdump *************** FGREP *** 751,760 **** SED LIBTOOL collect2 - NO_PIE_FLAG_FOR_BUILD - NO_PIE_CFLAGS_FOR_BUILD - BUILD_NO_PIE_FLAG - BUILD_NO_PIE_CFLAGS STMP_FIXINC BUILD_LDFLAGS BUILD_CXXFLAGS --- 753,758 ---- *************** enable_generated_files_in_srcdir *** 946,951 **** --- 944,950 ---- with_gnu_ld with_ld with_demangler_in_ld + with_dsymutil with_gnu_as with_as enable_largefile *************** Optional Packages: *** 1813,1818 **** --- 1812,1819 ---- --with-gnu-ld arrange to work with GNU ld --with-ld arrange to use the specified ld (full pathname) --with-demangler-in-ld try to use demangler in GNU ld + --with-dsymutil arrange to use the specified dsymutil (full + pathname) --with-gnu-as arrange to work with GNU as --with-as arrange to use the specified as (full pathname) --with-stabs arrange to use stabs instead of host debug format *************** fi *** 3835,3842 **** case $target in ! *darwin*) ld64_flag=yes;; # Darwin can only use a ld64-compatible linker. ! *) ld64_flag=no;; esac # With pre-defined ld --- 3836,3849 ---- case $target in ! *darwin*) ! ld64_flag=yes # Darwin can only use a ld64-compatible linker. ! dsymutil_flag=yes # Darwin uses dsymutil to link debug. ! ;; ! *) ! ld64_flag=no ! dsymutil_flag=no ! ;; esac # With pre-defined ld *************** else *** 3886,3891 **** --- 3893,3932 ---- fi + # Allow the user to specify a dsymutil executable (used on Darwin only, so far) + + # Check whether --with-dsymutil was given. + if test "${with_dsymutil+set}" = set; then : + withval=$with_dsymutil; DEFAULT_DSYMUTIL="$with_dsymutil" + fi + + + dsymutil_vers= + if test x"${DEFAULT_DSYMUTIL+set}" = x"set"; then + if test ! -x "$DEFAULT_DSYMUTIL"; then + as_fn_error $? "cannot execute: $DEFAULT_DSYMUTIL: check --with-dsymutil or env. var. DEFAULT_DSYMUTIL" "$LINENO" 5 + else + if dsymutil_vers=`$DEFAULT_DSYMUTIL -v /dev/null 2>&1`; then + dsymutil_flag=yes + fi + fi + + cat >>confdefs.h <<_ACEOF + #define DEFAULT_DSYMUTIL "$DEFAULT_DSYMUTIL" + _ACEOF + + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a default dsymutil was specified" >&5 + $as_echo_n "checking whether a default dsymutil was specified... " >&6; } + if test x"${DEFAULT_DSYMUTIL+set}" = x"set"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes ($DEFAULT_DSYMUTIL)" >&5 + $as_echo "yes ($DEFAULT_DSYMUTIL)" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + $as_echo "no" >&6; } + fi + # ---------------------- # Find default assembler # ---------------------- *************** BUILD_CXXFLAGS='$(ALL_CXXFLAGS)' *** 13248,13271 **** BUILD_LDFLAGS='$(LDFLAGS)' STMP_FIXINC=stmp-fixinc - BUILD_NO_PIE_CFLAGS='$(NO_PIE_CFLAGS)' - BUILD_NO_PIE_FLAG='$(NO_PIE_FLAG)' - # And these apply if build != host, or we are generating coverage data if test x$build != x$host || test "x$coverage_flags" != x then BUILD_CFLAGS='$(INTERNAL_CFLAGS) $(T_CFLAGS) $(CFLAGS_FOR_BUILD)' BUILD_CXXFLAGS='$(INTERNAL_CFLAGS) $(T_CFLAGS) $(CXXFLAGS_FOR_BUILD)' BUILD_LDFLAGS='$(LDFLAGS_FOR_BUILD)' - - NO_PIE_CFLAGS_FOR_BUILD=${NO_PIE_CFLAGS_FOR_BUILD-${NO_PIE_CFLAGS}} - NO_PIE_FLAG_FOR_BUILD=${NO_PIE_FLAG_FOR_BUILD-${NO_PIE_FLAG}} - BUILD_NO_PIE_CFLAGS='$(NO_PIE_CFLAGS_FOR_BUILD)' - BUILD_NO_PIE_FLAG='$(NO_PIE_FLAG_FOR_BUILD)' fi - - # Expand extra_headers to include complete path. # This substitutes for lots of t-* files. extra_headers_list= --- 13289,13302 ---- *************** else *** 19392,19398 **** lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF ! #line 19395 "configure" #include "confdefs.h" #if HAVE_DLFCN_H --- 19423,19429 ---- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF ! #line 19426 "configure" #include "confdefs.h" #if HAVE_DLFCN_H *************** else *** 19498,19504 **** lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF ! #line 19501 "configure" #include "confdefs.h" #if HAVE_DLFCN_H --- 19529,19535 ---- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF ! #line 19532 "configure" #include "confdefs.h" #if HAVE_DLFCN_H *************** else *** 23396,23401 **** --- 23427,23497 ---- $as_echo "$gcc_cv_otool" >&6; } fi + # Figure out the dsymutil we will use. + if ${gcc_cv_dsymutil+:} false; then : + + else + + if test -x "$DEFAULT_DSYMUTIL"; then + gcc_cv_dsymutil="$DEFAULT_DSYMUTIL" + elif test -x dsymutil$build_exeext; then + gcc_cv_dsymutil=./dsymutil$build_exeext + elif ( set dummy $DSYMUTIL_FOR_TARGET; test -x $2 ); then + gcc_cv_dsymutil=$DSYMUTIL_FOR_TARGET + elif ( set dummy $DSYMUTIL; test -x $2 ); then + gcc_cv_dsymutil=$DSYMUTIL + else + # Extract the first word of "$DSYMUTIL_FOR_TARGET", so it can be a program name with args. + set dummy $DSYMUTIL_FOR_TARGET; ac_word=$2 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 + $as_echo_n "checking for $ac_word... " >&6; } + if ${ac_cv_path_gcc_cv_dsymutil+:} false; then : + $as_echo_n "(cached) " >&6 + else + case $gcc_cv_dsymutil in + [\\/]* | ?:[\\/]*) + ac_cv_path_gcc_cv_dsymutil="$gcc_cv_dsymutil" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR + for as_dir in $PATH + do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_gcc_cv_dsymutil="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi + done + done + IFS=$as_save_IFS + + ;; + esac + fi + gcc_cv_dsymutil=$ac_cv_path_gcc_cv_dsymutil + if test -n "$gcc_cv_dsymutil"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_dsymutil" >&5 + $as_echo "$gcc_cv_dsymutil" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + $as_echo "no" >&6; } + fi + + + fi + fi + + ORIGINAL_DSYMUTIL_FOR_TARGET=$gcc_cv_dsymutil + + case "$ORIGINAL_DSYMUTIL_FOR_TARGET" in + ./dsymutil | ./dsymutil$build_exeext) ;; + *) ac_config_files="$ac_config_files dsymutil:exec-tool.in" + ;; + esac + # Figure out what assembler alignment features are present. { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler flags" >&5 $as_echo_n "checking assembler flags... " >&6; } *************** $as_echo "$as_me: WARNING: LTO for $targ *** 26919,26924 **** --- 27015,27055 ---- fi ;; esac + case $target_os in + darwin2[0-9]* | darwin19*) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler for llvm assembler x86-pad-for-align option" >&5 + $as_echo_n "checking assembler for llvm assembler x86-pad-for-align option... " >&6; } + if ${gcc_cv_as_mllvm_x86_pad_for_align+:} false; then : + $as_echo_n "(cached) " >&6 + else + gcc_cv_as_mllvm_x86_pad_for_align=no + if test x$gcc_cv_as != x; then + $as_echo '.text' > conftest.s + if { ac_try='$gcc_cv_as $gcc_cv_as_flags -mllvm -x86-pad-for-align=false -o conftest.o conftest.s >&5' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 + (eval $ac_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; } + then + gcc_cv_as_mllvm_x86_pad_for_align=yes + else + echo "configure: failed program was" >&5 + cat conftest.s >&5 + fi + rm -f conftest.o conftest.s + fi + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_as_mllvm_x86_pad_for_align" >&5 + $as_echo "$gcc_cv_as_mllvm_x86_pad_for_align" >&6; } + if test $gcc_cv_as_mllvm_x86_pad_for_align = yes; then + + $as_echo "#define HAVE_AS_MLLVM_X86_PAD_FOR_ALIGN 1" >>confdefs.h + + fi + + ;; + esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler for -xbrace_comment" >&5 $as_echo_n "checking assembler for -xbrace_comment... " >&6; } *************** else *** 28636,28642 **** gcc_cv_as_riscv_march_zifencei=no if test x$gcc_cv_as != x; then $as_echo '' > conftest.s ! if { ac_try='$gcc_cv_as $gcc_cv_as_flags -march=rv32i_zifencei -o conftest.o conftest.s >&5' { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 (eval $ac_try) 2>&5 ac_status=$? --- 28767,28773 ---- gcc_cv_as_riscv_march_zifencei=no if test x$gcc_cv_as != x; then $as_echo '' > conftest.s ! if { ac_try='$gcc_cv_as $gcc_cv_as_flags -march=rv32i_zifencei2p0 -o conftest.o conftest.s >&5' { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 (eval $ac_try) 2>&5 ac_status=$? *************** case "$target" in *** 28856,28861 **** --- 28987,29374 ---- ;; esac + # This tests if the assembler supports two registers for global_load functions + # (like in LLVM versions <12) or one register (like in LLVM 12). + case "$target" in + amdgcn-* | gcn-*) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler fix for global_load functions" >&5 + $as_echo_n "checking assembler fix for global_load functions... " >&6; } + gcc_cv_as_gcn_global_load_fixed=yes + if test x$gcc_cv_as != x; then + cat > conftest.s < /dev/null 2>&1; then + gcc_cv_as_gcn_global_load_fixed=no + fi + rm -f conftest.s conftest.o conftest + fi + global_load_fixed=`if test x$gcc_cv_as_gcn_global_load_fixed = xyes; then echo 1; else echo 0; fi` + + cat >>confdefs.h <<_ACEOF + #define HAVE_GCN_ASM_GLOBAL_LOAD_FIXED $global_load_fixed + _ACEOF + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_as_gcn_global_load_fixed" >&5 + $as_echo "$gcc_cv_as_gcn_global_load_fixed" >&6; } + ;; + esac + + case "$target" in + amdgcn-* | gcn-*) + # Test the LLVM assembler syntax dialect; they have made a number of + # changes between LLVM 12 & 13 without any backward compatibility. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler for assembler amdgcn_target v2/3 syntax" >&5 + $as_echo_n "checking assembler for assembler amdgcn_target v2/3 syntax... " >&6; } + if ${gcc_cv_as_gcn_asm_v3_syntax+:} false; then : + $as_echo_n "(cached) " >&6 + else + gcc_cv_as_gcn_asm_v3_syntax=no + if test x$gcc_cv_as != x; then + $as_echo '.amdgcn_target "amdgcn-unknown-amdhsa--gfx906+xnack"' > conftest.s + if { ac_try='$gcc_cv_as $gcc_cv_as_flags -triple=amdgcn--amdhsa -mcpu=gfx906 -mattr=+xnack -o conftest.o conftest.s >&5' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 + (eval $ac_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; } + then + gcc_cv_as_gcn_asm_v3_syntax=yes + else + echo "configure: failed program was" >&5 + cat conftest.s >&5 + fi + rm -f conftest.o conftest.s + fi + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_as_gcn_asm_v3_syntax" >&5 + $as_echo "$gcc_cv_as_gcn_asm_v3_syntax" >&6; } + if test $gcc_cv_as_gcn_asm_v3_syntax = yes; then + + $as_echo "#define HAVE_GCN_ASM_V3_SYNTAX 1" >>confdefs.h + + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler for assembler amdgcn_target v4 syntax" >&5 + $as_echo_n "checking assembler for assembler amdgcn_target v4 syntax... " >&6; } + if ${gcc_cv_as_gcn_asm_v4_syntax+:} false; then : + $as_echo_n "(cached) " >&6 + else + gcc_cv_as_gcn_asm_v4_syntax=no + if test x$gcc_cv_as != x; then + $as_echo '.amdgcn_target "amdgcn-unknown-amdhsa--gfx908:xnack+"' > conftest.s + if { ac_try='$gcc_cv_as $gcc_cv_as_flags -triple=amdgcn--amdhsa -mcpu=gfx908 -mattr=+xnack -o conftest.o conftest.s >&5' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 + (eval $ac_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; } + then + gcc_cv_as_gcn_asm_v4_syntax=yes + else + echo "configure: failed program was" >&5 + cat conftest.s >&5 + fi + rm -f conftest.o conftest.s + fi + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_as_gcn_asm_v4_syntax" >&5 + $as_echo "$gcc_cv_as_gcn_asm_v4_syntax" >&6; } + if test $gcc_cv_as_gcn_asm_v4_syntax = yes; then + + $as_echo "#define HAVE_GCN_ASM_V4_SYNTAX 1" >>confdefs.h + + fi + + + # Some attribute names changed in the move to v4 ... + if test $gcc_cv_as_gcn_asm_v3_syntax = yes; then + sramopt="+sram-ecc" + sramattr="+sram-ecc" + xnackattr="+xnack" + elif test $gcc_cv_as_gcn_asm_v4_syntax = yes; then + sramopt="+sramecc" + sramattr=":sramecc+" + xnackattr=":xnack+" + else + as_fn_error $? "Unrecognised assembler version" "$LINENO" 5 + fi + + # Test whether the LLVM assembler accepts -mattr=+xnack without any + # diagnostic. LLVM 9 & 10 accept the option whether it makes sense or not, + # LLVM 12+ throws a warning for GPUs without support. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler for assembler accepts -mattr=+xnack for fiji" >&5 + $as_echo_n "checking assembler for assembler accepts -mattr=+xnack for fiji... " >&6; } + if ${gcc_cv_as_gcn_xnack_ecc_fiji+:} false; then : + $as_echo_n "(cached) " >&6 + else + gcc_cv_as_gcn_xnack_ecc_fiji=no + if test x$gcc_cv_as != x; then + $as_echo '' > conftest.s + if { ac_try='$gcc_cv_as $gcc_cv_as_flags -triple=amdgcn--amdhsa -mcpu=fiji -mattr=+xnack 2>conftest.err -o conftest.o conftest.s >&5' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 + (eval $ac_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; } + then + grep "." conftest.err >&5 \ + || gcc_cv_as_gcn_xnack_ecc_fiji=yes + else + echo "configure: failed program was" >&5 + cat conftest.s >&5 + fi + rm -f conftest.o conftest.s + fi + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_as_gcn_xnack_ecc_fiji" >&5 + $as_echo "$gcc_cv_as_gcn_xnack_ecc_fiji" >&6; } + if test $gcc_cv_as_gcn_xnack_ecc_fiji = yes; then + + $as_echo "#define HAVE_GCN_XNACK_FIJI 1" >>confdefs.h + + fi + + rm -f conftest.err + { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler for assembler accepts -mattr=+xnack for gfx900" >&5 + $as_echo_n "checking assembler for assembler accepts -mattr=+xnack for gfx900... " >&6; } + if ${gcc_cv_as_gcn_xnack_ecc_gfx900+:} false; then : + $as_echo_n "(cached) " >&6 + else + gcc_cv_as_gcn_xnack_ecc_gfx900=no + if test x$gcc_cv_as != x; then + $as_echo '' > conftest.s + if { ac_try='$gcc_cv_as $gcc_cv_as_flags -triple=amdgcn--amdhsa -mcpu=gfx900 -mattr=+xnack 2>conftest.err -o conftest.o conftest.s >&5' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 + (eval $ac_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; } + then + grep "." conftest.err >&5 \ + || gcc_cv_as_gcn_xnack_ecc_gfx900=yes + else + echo "configure: failed program was" >&5 + cat conftest.s >&5 + fi + rm -f conftest.o conftest.s + fi + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_as_gcn_xnack_ecc_gfx900" >&5 + $as_echo "$gcc_cv_as_gcn_xnack_ecc_gfx900" >&6; } + if test $gcc_cv_as_gcn_xnack_ecc_gfx900 = yes; then + + $as_echo "#define HAVE_GCN_XNACK_GFX900 1" >>confdefs.h + + fi + + rm -f conftest.err + { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler for assembler accepts -mattr=+xnack for gfx906" >&5 + $as_echo_n "checking assembler for assembler accepts -mattr=+xnack for gfx906... " >&6; } + if ${gcc_cv_as_gcn_xnack_ecc_gfx906+:} false; then : + $as_echo_n "(cached) " >&6 + else + gcc_cv_as_gcn_xnack_ecc_gfx906=no + if test x$gcc_cv_as != x; then + $as_echo '' > conftest.s + if { ac_try='$gcc_cv_as $gcc_cv_as_flags -triple=amdgcn--amdhsa -mcpu=gfx906 -mattr=+xnack 2>conftest.err -o conftest.o conftest.s >&5' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 + (eval $ac_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; } + then + grep "." conftest.err >&5 \ + || gcc_cv_as_gcn_xnack_ecc_gfx906=yes + else + echo "configure: failed program was" >&5 + cat conftest.s >&5 + fi + rm -f conftest.o conftest.s + fi + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_as_gcn_xnack_ecc_gfx906" >&5 + $as_echo "$gcc_cv_as_gcn_xnack_ecc_gfx906" >&6; } + if test $gcc_cv_as_gcn_xnack_ecc_gfx906 = yes; then + + $as_echo "#define HAVE_GCN_XNACK_GFX906 1" >>confdefs.h + + fi + + rm -f conftest.err + { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler for assembler accepts -mattr=+xnack for gfx908" >&5 + $as_echo_n "checking assembler for assembler accepts -mattr=+xnack for gfx908... " >&6; } + if ${gcc_cv_as_gcn_xnack_ecc_gfx908+:} false; then : + $as_echo_n "(cached) " >&6 + else + gcc_cv_as_gcn_xnack_ecc_gfx908=no + if test x$gcc_cv_as != x; then + $as_echo '' > conftest.s + if { ac_try='$gcc_cv_as $gcc_cv_as_flags -triple=amdgcn--amdhsa -mcpu=gfx908 -mattr=+xnack 2>conftest.err -o conftest.o conftest.s >&5' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 + (eval $ac_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; } + then + grep "." conftest.err >&5 \ + || gcc_cv_as_gcn_xnack_ecc_gfx908=yes + else + echo "configure: failed program was" >&5 + cat conftest.s >&5 + fi + rm -f conftest.o conftest.s + fi + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_as_gcn_xnack_ecc_gfx908" >&5 + $as_echo "$gcc_cv_as_gcn_xnack_ecc_gfx908" >&6; } + if test $gcc_cv_as_gcn_xnack_ecc_gfx908 = yes; then + + $as_echo "#define HAVE_GCN_XNACK_GFX908 1" >>confdefs.h + + fi + + rm -f conftest.err + + # Test whether the LLVM assembler accepts -mattr=+sramecc without any + # diagnostic. LLVM 9 & 10 accept the option whether it makes sense or not, + # (some?) LLVM 12 rejects it for all GPUs, and LLVM13 throws a warning + # for GPUs without support. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler for assembler accepts -mattr=$sramopt for fiji" >&5 + $as_echo_n "checking assembler for assembler accepts -mattr=$sramopt for fiji... " >&6; } + if ${gcc_cv_as_gcn_sram_ecc_fiji+:} false; then : + $as_echo_n "(cached) " >&6 + else + gcc_cv_as_gcn_sram_ecc_fiji=no + if test x$gcc_cv_as != x; then + $as_echo '' > conftest.s + if { ac_try='$gcc_cv_as $gcc_cv_as_flags -triple=amdgcn--amdhsa -mcpu=fiji -mattr=$sramopt 2>conftest.err -o conftest.o conftest.s >&5' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 + (eval $ac_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; } + then + grep "." conftest.err >&5 \ + || gcc_cv_as_gcn_sram_ecc_fiji=yes + else + echo "configure: failed program was" >&5 + cat conftest.s >&5 + fi + rm -f conftest.o conftest.s + fi + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_as_gcn_sram_ecc_fiji" >&5 + $as_echo "$gcc_cv_as_gcn_sram_ecc_fiji" >&6; } + if test $gcc_cv_as_gcn_sram_ecc_fiji = yes; then + + $as_echo "#define HAVE_GCN_SRAM_ECC_FIJI 1" >>confdefs.h + + fi + + rm -f conftest.err + { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler for assembler accepts -mattr=$sramopt for gfx900" >&5 + $as_echo_n "checking assembler for assembler accepts -mattr=$sramopt for gfx900... " >&6; } + if ${gcc_cv_as_gcn_sram_ecc_gfx900+:} false; then : + $as_echo_n "(cached) " >&6 + else + gcc_cv_as_gcn_sram_ecc_gfx900=no + if test x$gcc_cv_as != x; then + $as_echo '' > conftest.s + if { ac_try='$gcc_cv_as $gcc_cv_as_flags -triple=amdgcn--amdhsa -mcpu=gfx900 -mattr=$sramopt 2>conftest.err -o conftest.o conftest.s >&5' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 + (eval $ac_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; } + then + grep "." conftest.err >&5 \ + || gcc_cv_as_gcn_sram_ecc_gfx900=yes + else + echo "configure: failed program was" >&5 + cat conftest.s >&5 + fi + rm -f conftest.o conftest.s + fi + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_as_gcn_sram_ecc_gfx900" >&5 + $as_echo "$gcc_cv_as_gcn_sram_ecc_gfx900" >&6; } + if test $gcc_cv_as_gcn_sram_ecc_gfx900 = yes; then + + $as_echo "#define HAVE_GCN_SRAM_ECC_GFX900 1" >>confdefs.h + + fi + + rm -f conftest.err + { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler for assembler accepts -mattr=$sramopt for gfx906" >&5 + $as_echo_n "checking assembler for assembler accepts -mattr=$sramopt for gfx906... " >&6; } + if ${gcc_cv_as_gcn_sram_ecc_gfx906+:} false; then : + $as_echo_n "(cached) " >&6 + else + gcc_cv_as_gcn_sram_ecc_gfx906=no + if test x$gcc_cv_as != x; then + $as_echo '' > conftest.s + if { ac_try='$gcc_cv_as $gcc_cv_as_flags -triple=amdgcn--amdhsa -mcpu=gfx906 -mattr=$sramopt 2>conftest.err -o conftest.o conftest.s >&5' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 + (eval $ac_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; } + then + grep "." conftest.err >&5 \ + || gcc_cv_as_gcn_sram_ecc_gfx906=yes + else + echo "configure: failed program was" >&5 + cat conftest.s >&5 + fi + rm -f conftest.o conftest.s + fi + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_as_gcn_sram_ecc_gfx906" >&5 + $as_echo "$gcc_cv_as_gcn_sram_ecc_gfx906" >&6; } + if test $gcc_cv_as_gcn_sram_ecc_gfx906 = yes; then + + $as_echo "#define HAVE_GCN_SRAM_ECC_GFX906 1" >>confdefs.h + + fi + + rm -f conftest.err + { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler for assembler accepts -mattr=$sramopt for gfx908" >&5 + $as_echo_n "checking assembler for assembler accepts -mattr=$sramopt for gfx908... " >&6; } + if ${gcc_cv_as_gcn_sram_ecc_gfx908+:} false; then : + $as_echo_n "(cached) " >&6 + else + gcc_cv_as_gcn_sram_ecc_gfx908=no + if test x$gcc_cv_as != x; then + $as_echo '' > conftest.s + if { ac_try='$gcc_cv_as $gcc_cv_as_flags -triple=amdgcn--amdhsa -mcpu=gfx908 -mattr=$sramopt 2>conftest.err -o conftest.o conftest.s >&5' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 + (eval $ac_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; } + then + grep "." conftest.err >&5 \ + || gcc_cv_as_gcn_sram_ecc_gfx908=yes + else + echo "configure: failed program was" >&5 + cat conftest.s >&5 + fi + rm -f conftest.o conftest.s + fi + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_as_gcn_sram_ecc_gfx908" >&5 + $as_echo "$gcc_cv_as_gcn_sram_ecc_gfx908" >&6; } + if test $gcc_cv_as_gcn_sram_ecc_gfx908 = yes; then + + $as_echo "#define HAVE_GCN_SRAM_ECC_GFX908 1" >>confdefs.h + + fi + + rm -f conftest.err + ;; + esac + # ??? Not all targets support dwarf2 debug_line, even within a version # of gas. Moreover, we need to emit a valid instruction to trigger any # info to the output file. So, as supported targets are added to gas 2.11, *************** _ACEOF *** 30223,30228 **** --- 30736,30787 ---- fi + if test x"$dsymutil_flag" = x"yes"; then + + # If the user specified a dsymutil path, then we will already have the + # version string, otherwise, pick it up. + if test x"$gcc_cv_dsymutil" = x; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: dsymutil is a required tool for this system, but not found" >&5 + $as_echo "$as_me: WARNING: dsymutil is a required tool for this system, but not found" >&2;} + dsymutil_vers="tool unspecified" + elif test x"$dsymutil_vers" = x; then + dsymutil_vers=`$gcc_cv_dsymutil -v /dev/null 2>&1` + fi + + dsymutil_temp=`echo $dsymutil_vers | sed 1q` + { $as_echo "$as_me:${as_lineno-$LINENO}: checking dsymutil version \"$dsymutil_temp\"" >&5 + $as_echo_n "checking dsymutil version \"$dsymutil_temp\"... " >&6; } + if echo $dsymutil_temp | grep dwarfutils- > /dev/null; then + dsymutil_kind=DWARFUTILS + dsymutil_vers=`echo $dsymutil_temp | sed 's/.*dwarfutils-\([0-9\.]*\).*/\1/'` + elif echo $dsymutil_temp | grep clang- > /dev/null; then + dsymutil_kind=CLANG + dsymutil_vers=`echo $dsymutil_temp | sed 's/.*clang-\([0-9\.]*\).*/\1/'` + elif echo $dsymutil_temp | grep 'LLVM version ' > /dev/null; then + dsymutil_kind=LLVM + dsymutil_vers=`echo $dsymutil_temp | sed 's/.*LLVM\ version\ \([0-9\.]*\).*/\1/'` + else + dsymutil_kind=UNKNOWN + dsymutil_vers="0.0" + fi + dsymutil_major=`expr "$dsymutil_vers" : '\([0-9]*\)'` + dsymutil_minor=`expr "$dsymutil_vers" : '[0-9]*\.\([0-9]*\)'` + dsymutil_tiny=`expr "$dsymutil_vers" : '[0-9]*\.[0-9]*\.\([0-9]*\)'` + if test x"${dsymutil_minor}" = x; then + dsymutil_minor=0 + fi + if test x"${dsymutil_tiny}" = x; then + dsymutil_tiny=0 + fi + + cat >>confdefs.h <<_ACEOF + #define DSYMUTIL_VERSION $dsymutil_kind,${dsymutil_major},${dsymutil_minor},${dsymutil_tiny} + _ACEOF + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $dsymutil_vers : $dsymutil_kind ${dsymutil_major} ${dsymutil_minor} ${dsymutil_tiny} " >&5 + $as_echo "$dsymutil_vers : $dsymutil_kind ${dsymutil_major} ${dsymutil_minor} ${dsymutil_tiny} " >&6; } + fi + case $target_os in win32 | pe | cygwin* | mingw32*) { $as_echo "$as_me:${as_lineno-$LINENO}: checking broken PE linker dwarf5 support" >&5 *************** $as_echo "#define HAVE_LD_BROKEN_PE_DWAR *** 30248,30253 **** --- 30807,30832 ---- fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_ld_broken_pe_dwarf5" >&5 $as_echo "$gcc_cv_ld_broken_pe_dwarf5" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking PE linker --disable-dynamicbase support" >&5 + $as_echo_n "checking PE linker --disable-dynamicbase support... " >&6; } + gcc_cv_ld_disable_dynamicbase=no + if test $in_tree_ld = yes; then + if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 36 -o "$gcc_cv_gld_major_version" -gt 2; then \ + gcc_cv_ld_disable_dynamicbase=yes + fi + else + if $gcc_cv_ld --help 2>&1 | grep -q 'disable\-]dynamicbase' > /dev/null; then + gcc_cv_ld_disable_dynamicbase=yes + fi + fi + if test x"$gcc_cv_ld_disable_dynamicbase" = xyes; then + + $as_echo "#define HAVE_LD_PE_DISABLE_DYNAMICBASE 1" >>confdefs.h + + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_ld_disable_dynamicbase" >&5 + $as_echo "$gcc_cv_ld_disable_dynamicbase" >&6; } ;; esac *************** $as_echo "#define HAVE_LD_PPC_GNU_ATTR_L *** 30415,30421 **** esac case "$target:$tm_file" in ! powerpc64-*-freebsd* | powerpc64*-*-linux* | powerpc*-*-linux*rs6000/biarch64.h*) case "$target" in *le-*-linux*) emul_name="-melf64lppc" --- 30994,31000 ---- esac case "$target:$tm_file" in ! powerpc64*-*-freebsd* | powerpc64*-*-linux* | powerpc*-*-linux*rs6000/biarch64.h*) case "$target" in *le-*-linux*) emul_name="-melf64lppc" *************** do *** 32905,32910 **** --- 33484,33490 ---- "as") CONFIG_FILES="$CONFIG_FILES as:exec-tool.in" ;; "collect-ld") CONFIG_FILES="$CONFIG_FILES collect-ld:exec-tool.in" ;; "nm") CONFIG_FILES="$CONFIG_FILES nm:exec-tool.in" ;; + "dsymutil") CONFIG_FILES="$CONFIG_FILES dsymutil:exec-tool.in" ;; "clearcap.map") CONFIG_LINKS="$CONFIG_LINKS clearcap.map:${srcdir}/config/$clearcap_map" ;; "$all_outputs") CONFIG_FILES="$CONFIG_FILES $all_outputs" ;; "default") CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;; *************** $as_echo "$as_me: executing $ac_file com *** 33539,33544 **** --- 34119,34125 ---- "as":F) chmod +x as ;; "collect-ld":F) chmod +x collect-ld ;; "nm":F) chmod +x nm ;; + "dsymutil":F) chmod +x dsymutil ;; "default":C) case ${CONFIG_HEADERS} in *auto-host.h:config.in*) diff -Nrcpad gcc-11.2.0/gcc/configure.ac gcc-11.3.0/gcc/configure.ac *** gcc-11.2.0/gcc/configure.ac Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/configure.ac Thu Apr 21 07:58:53 2022 *************** gnu_ld_flag="$with_gnu_ld", *** 316,323 **** gnu_ld_flag=no) case $target in ! *darwin*) ld64_flag=yes;; # Darwin can only use a ld64-compatible linker. ! *) ld64_flag=no;; esac # With pre-defined ld --- 316,329 ---- gnu_ld_flag=no) case $target in ! *darwin*) ! ld64_flag=yes # Darwin can only use a ld64-compatible linker. ! dsymutil_flag=yes # Darwin uses dsymutil to link debug. ! ;; ! *) ! ld64_flag=no ! dsymutil_flag=no ! ;; esac # With pre-defined ld *************** AC_ARG_WITH(demangler-in-ld, *** 353,358 **** --- 359,389 ---- demangler_in_ld="$with_demangler_in_ld", demangler_in_ld=yes) + # Allow the user to specify a dsymutil executable (used on Darwin only, so far) + AC_ARG_WITH(dsymutil, + [AS_HELP_STRING([--with-dsymutil], [arrange to use the specified dsymutil (full pathname)])], + DEFAULT_DSYMUTIL="$with_dsymutil") + + dsymutil_vers= + if test x"${DEFAULT_DSYMUTIL+set}" = x"set"; then + if test ! -x "$DEFAULT_DSYMUTIL"; then + AC_MSG_ERROR([cannot execute: $DEFAULT_DSYMUTIL: check --with-dsymutil or env. var. DEFAULT_DSYMUTIL]) + else + if dsymutil_vers=`$DEFAULT_DSYMUTIL -v /dev/null 2>&1`; then + dsymutil_flag=yes + fi + fi + AC_DEFINE_UNQUOTED(DEFAULT_DSYMUTIL,"$DEFAULT_DSYMUTIL", + [Define to enable the use of a default debug linker.]) + fi + + AC_MSG_CHECKING([whether a default dsymutil was specified]) + if test x"${DEFAULT_DSYMUTIL+set}" = x"set"; then + AC_MSG_RESULT([yes ($DEFAULT_DSYMUTIL)]) + else + AC_MSG_RESULT(no) + fi + # ---------------------- # Find default assembler # ---------------------- *************** BUILD_CXXFLAGS='$(ALL_CXXFLAGS)' AC_SUBS *** 2424,2446 **** BUILD_LDFLAGS='$(LDFLAGS)' AC_SUBST(BUILD_LDFLAGS) STMP_FIXINC=stmp-fixinc AC_SUBST(STMP_FIXINC) - BUILD_NO_PIE_CFLAGS='$(NO_PIE_CFLAGS)' AC_SUBST(BUILD_NO_PIE_CFLAGS) - BUILD_NO_PIE_FLAG='$(NO_PIE_FLAG)' AC_SUBST(BUILD_NO_PIE_FLAG) - # And these apply if build != host, or we are generating coverage data if test x$build != x$host || test "x$coverage_flags" != x then BUILD_CFLAGS='$(INTERNAL_CFLAGS) $(T_CFLAGS) $(CFLAGS_FOR_BUILD)' BUILD_CXXFLAGS='$(INTERNAL_CFLAGS) $(T_CFLAGS) $(CXXFLAGS_FOR_BUILD)' BUILD_LDFLAGS='$(LDFLAGS_FOR_BUILD)' - - NO_PIE_CFLAGS_FOR_BUILD=${NO_PIE_CFLAGS_FOR_BUILD-${NO_PIE_CFLAGS}} - NO_PIE_FLAG_FOR_BUILD=${NO_PIE_FLAG_FOR_BUILD-${NO_PIE_FLAG}} - BUILD_NO_PIE_CFLAGS='$(NO_PIE_CFLAGS_FOR_BUILD)' - BUILD_NO_PIE_FLAG='$(NO_PIE_FLAG_FOR_BUILD)' fi - AC_SUBST(NO_PIE_CFLAGS_FOR_BUILD) - AC_SUBST(NO_PIE_FLAG_FOR_BUILD) # Expand extra_headers to include complete path. # This substitutes for lots of t-* files. --- 2455,2467 ---- *************** else *** 2834,2839 **** --- 2855,2881 ---- AC_MSG_RESULT($gcc_cv_otool) fi + # Figure out the dsymutil we will use. + AS_VAR_SET_IF(gcc_cv_dsymutil,, [ + if test -x "$DEFAULT_DSYMUTIL"; then + gcc_cv_dsymutil="$DEFAULT_DSYMUTIL" + elif test -x dsymutil$build_exeext; then + gcc_cv_dsymutil=./dsymutil$build_exeext + elif ( set dummy $DSYMUTIL_FOR_TARGET; test -x $[2] ); then + gcc_cv_dsymutil=$DSYMUTIL_FOR_TARGET + elif ( set dummy $DSYMUTIL; test -x $[2] ); then + gcc_cv_dsymutil=$DSYMUTIL + else + AC_PATH_PROG(gcc_cv_dsymutil, $DSYMUTIL_FOR_TARGET) + fi]) + + ORIGINAL_DSYMUTIL_FOR_TARGET=$gcc_cv_dsymutil + AC_SUBST(ORIGINAL_DSYMUTIL_FOR_TARGET) + case "$ORIGINAL_DSYMUTIL_FOR_TARGET" in + ./dsymutil | ./dsymutil$build_exeext) ;; + *) AC_CONFIG_FILES(dsymutil:exec-tool.in, [chmod +x dsymutil]) ;; + esac + # Figure out what assembler alignment features are present. gcc_GAS_CHECK_FEATURE([.balign and .p2align], gcc_cv_as_balign_and_p2align, [2,6,0],, *************** foo: nop *** 4729,4734 **** --- 4771,4785 ---- fi ;; esac + case $target_os in + darwin2[[0-9]]* | darwin19*) + gcc_GAS_CHECK_FEATURE([llvm assembler x86-pad-for-align option], + gcc_cv_as_mllvm_x86_pad_for_align,, + [-mllvm -x86-pad-for-align=false], [.text],, + [AC_DEFINE(HAVE_AS_MLLVM_X86_PAD_FOR_ALIGN, 1, + [Define if your Mac OS X assembler supports -mllvm -x86-pad-for-align=false.])]) + ;; + esac gcc_GAS_CHECK_FEATURE([-xbrace_comment], gcc_cv_as_ix86_xbrace_comment,, [-xbrace_comment=no], [.text],, *************** configured with --enable-newlib-nano-for *** 5285,5291 **** [Define if the assembler understands -misa-spec=.])]) gcc_GAS_CHECK_FEATURE([-march=rv32i_zifencei support], gcc_cv_as_riscv_march_zifencei,, ! [-march=rv32i_zifencei],,, [AC_DEFINE(HAVE_AS_MARCH_ZIFENCEI, 1, [Define if the assembler understands -march=rv*_zifencei.])]) ;; --- 5336,5342 ---- [Define if the assembler understands -misa-spec=.])]) gcc_GAS_CHECK_FEATURE([-march=rv32i_zifencei support], gcc_cv_as_riscv_march_zifencei,, ! [-march=rv32i_zifencei2p0],,, [AC_DEFINE(HAVE_AS_MARCH_ZIFENCEI, 1, [Define if the assembler understands -march=rv*_zifencei.])]) ;; *************** case "$target" in *** 5339,5344 **** --- 5390,5522 ---- ;; esac + # This tests if the assembler supports two registers for global_load functions + # (like in LLVM versions <12) or one register (like in LLVM 12). + case "$target" in + amdgcn-* | gcn-*) + AC_MSG_CHECKING(assembler fix for global_load functions) + gcc_cv_as_gcn_global_load_fixed=yes + if test x$gcc_cv_as != x; then + cat > conftest.s < /dev/null 2>&1; then + gcc_cv_as_gcn_global_load_fixed=no + fi + rm -f conftest.s conftest.o conftest + fi + global_load_fixed=`if test x$gcc_cv_as_gcn_global_load_fixed = xyes; then echo 1; else echo 0; fi` + AC_DEFINE_UNQUOTED(HAVE_GCN_ASM_GLOBAL_LOAD_FIXED, $global_load_fixed, + [Define if your assembler has fixed global_load functions.]) + AC_MSG_RESULT($gcc_cv_as_gcn_global_load_fixed) + ;; + esac + + case "$target" in + amdgcn-* | gcn-*) + # Test the LLVM assembler syntax dialect; they have made a number of + # changes between LLVM 12 & 13 without any backward compatibility. + gcc_GAS_CHECK_FEATURE([assembler amdgcn_target v2/3 syntax], + gcc_cv_as_gcn_asm_v3_syntax,, + [-triple=amdgcn--amdhsa -mcpu=gfx906 -mattr=+xnack], + [.amdgcn_target "amdgcn-unknown-amdhsa--gfx906+xnack"],, + [AC_DEFINE(HAVE_GCN_ASM_V3_SYNTAX, 1, + [Define if your assembler expects amdgcn_target gfx908+xnack syntax.])]) + gcc_GAS_CHECK_FEATURE([assembler amdgcn_target v4 syntax], + gcc_cv_as_gcn_asm_v4_syntax,, + [-triple=amdgcn--amdhsa -mcpu=gfx908 -mattr=+xnack], + [.amdgcn_target "amdgcn-unknown-amdhsa--gfx908:xnack+"],, + [AC_DEFINE(HAVE_GCN_ASM_V4_SYNTAX, 1, + [Define if your assembler expects amdgcn_target gfx908:xnack+ syntax.])]) + + # Some attribute names changed in the move to v4 ... + if test $gcc_cv_as_gcn_asm_v3_syntax = yes; then + sramopt="+sram-ecc" + sramattr="+sram-ecc" + xnackattr="+xnack" + elif test $gcc_cv_as_gcn_asm_v4_syntax = yes; then + sramopt="+sramecc" + sramattr=":sramecc+" + xnackattr=":xnack+" + else + AC_MSG_ERROR([Unrecognised assembler version]) + fi + + # Test whether the LLVM assembler accepts -mattr=+xnack without any + # diagnostic. LLVM 9 & 10 accept the option whether it makes sense or not, + # LLVM 12+ throws a warning for GPUs without support. + gcc_GAS_CHECK_FEATURE([assembler accepts -mattr=+xnack for fiji], + gcc_cv_as_gcn_xnack_ecc_fiji,, + [-triple=amdgcn--amdhsa -mcpu=fiji -mattr=+xnack 2>conftest.err], [], + [grep "." conftest.err >&AS_MESSAGE_LOG_FD \ + || gcc_cv_as_gcn_xnack_ecc_fiji=yes], + [AC_DEFINE(HAVE_GCN_XNACK_FIJI, 1, + [Define if your assembler allows -mattr=+xnack for fiji.])]) + rm -f conftest.err + gcc_GAS_CHECK_FEATURE([assembler accepts -mattr=+xnack for gfx900], + gcc_cv_as_gcn_xnack_ecc_gfx900,, + [-triple=amdgcn--amdhsa -mcpu=gfx900 -mattr=+xnack 2>conftest.err], [], + [grep "." conftest.err >&AS_MESSAGE_LOG_FD \ + || gcc_cv_as_gcn_xnack_ecc_gfx900=yes], + [AC_DEFINE(HAVE_GCN_XNACK_GFX900, 1, + [Define if your assembler allows -mattr=+xnack for gfx900.])]) + rm -f conftest.err + gcc_GAS_CHECK_FEATURE([assembler accepts -mattr=+xnack for gfx906], + gcc_cv_as_gcn_xnack_ecc_gfx906,, + [-triple=amdgcn--amdhsa -mcpu=gfx906 -mattr=+xnack 2>conftest.err], [], + [grep "." conftest.err >&AS_MESSAGE_LOG_FD \ + || gcc_cv_as_gcn_xnack_ecc_gfx906=yes], + [AC_DEFINE(HAVE_GCN_XNACK_GFX906, 1, + [Define if your assembler allows -mattr=+xnack for gfx906.])]) + rm -f conftest.err + gcc_GAS_CHECK_FEATURE([assembler accepts -mattr=+xnack for gfx908], + gcc_cv_as_gcn_xnack_ecc_gfx908,, + [-triple=amdgcn--amdhsa -mcpu=gfx908 -mattr=+xnack 2>conftest.err], [], + [grep "." conftest.err >&AS_MESSAGE_LOG_FD \ + || gcc_cv_as_gcn_xnack_ecc_gfx908=yes], + [AC_DEFINE(HAVE_GCN_XNACK_GFX908, 1, + [Define if your assembler allows -mattr=+xnack for gfx908.])]) + rm -f conftest.err + + # Test whether the LLVM assembler accepts -mattr=+sramecc without any + # diagnostic. LLVM 9 & 10 accept the option whether it makes sense or not, + # (some?) LLVM 12 rejects it for all GPUs, and LLVM13 throws a warning + # for GPUs without support. + gcc_GAS_CHECK_FEATURE([assembler accepts -mattr=$sramopt for fiji], + gcc_cv_as_gcn_sram_ecc_fiji,, + [-triple=amdgcn--amdhsa -mcpu=fiji -mattr=$sramopt 2>conftest.err], [], + [grep "." conftest.err >&AS_MESSAGE_LOG_FD \ + || gcc_cv_as_gcn_sram_ecc_fiji=yes], + [AC_DEFINE(HAVE_GCN_SRAM_ECC_FIJI, 1, + [Define if your assembler allows -mattr=+sramecc for fiji.])]) + rm -f conftest.err + gcc_GAS_CHECK_FEATURE([assembler accepts -mattr=$sramopt for gfx900], + gcc_cv_as_gcn_sram_ecc_gfx900,, + [-triple=amdgcn--amdhsa -mcpu=gfx900 -mattr=$sramopt 2>conftest.err], [], + [grep "." conftest.err >&AS_MESSAGE_LOG_FD \ + || gcc_cv_as_gcn_sram_ecc_gfx900=yes], + [AC_DEFINE(HAVE_GCN_SRAM_ECC_GFX900, 1, + [Define if your assembler allows -mattr=+sramecc for gfx900.])]) + rm -f conftest.err + gcc_GAS_CHECK_FEATURE([assembler accepts -mattr=$sramopt for gfx906], + gcc_cv_as_gcn_sram_ecc_gfx906,, + [-triple=amdgcn--amdhsa -mcpu=gfx906 -mattr=$sramopt 2>conftest.err], [], + [grep "." conftest.err >&AS_MESSAGE_LOG_FD \ + || gcc_cv_as_gcn_sram_ecc_gfx906=yes], + [AC_DEFINE(HAVE_GCN_SRAM_ECC_GFX906, 1, + [Define if your assembler allows -mattr=+sramecc for gfx906.])]) + rm -f conftest.err + gcc_GAS_CHECK_FEATURE([assembler accepts -mattr=$sramopt for gfx908], + gcc_cv_as_gcn_sram_ecc_gfx908,, + [-triple=amdgcn--amdhsa -mcpu=gfx908 -mattr=$sramopt 2>conftest.err], [], + [grep "." conftest.err >&AS_MESSAGE_LOG_FD \ + || gcc_cv_as_gcn_sram_ecc_gfx908=yes], + [AC_DEFINE(HAVE_GCN_SRAM_ECC_GFX908, 1, + [Define if your assembler allows -mattr=+sramecc for gfx908.])]) + rm -f conftest.err + ;; + esac + # ??? Not all targets support dwarf2 debug_line, even within a version # of gas. Moreover, we need to emit a valid instruction to trigger any # info to the output file. So, as supported targets are added to gas 2.11, *************** if test x"$ld64_flag" = x"yes"; then *** 6200,6205 **** --- 6378,6423 ---- [Define to 1 if ld64 supports '-export_dynamic'.]) fi + if test x"$dsymutil_flag" = x"yes"; then + + # If the user specified a dsymutil path, then we will already have the + # version string, otherwise, pick it up. + if test x"$gcc_cv_dsymutil" = x; then + AC_MSG_WARN([dsymutil is a required tool for this system, but not found]) + dsymutil_vers="tool unspecified" + elif test x"$dsymutil_vers" = x; then + dsymutil_vers=`$gcc_cv_dsymutil -v /dev/null 2>&1` + fi + + dsymutil_temp=`echo $dsymutil_vers | sed 1q` + AC_MSG_CHECKING(dsymutil version "$dsymutil_temp") + if echo $dsymutil_temp | grep dwarfutils- > /dev/null; then + dsymutil_kind=DWARFUTILS + dsymutil_vers=`echo $dsymutil_temp | sed 's/.*dwarfutils-\([[0-9\.]]*\).*/\1/'` + elif echo $dsymutil_temp | grep clang- > /dev/null; then + dsymutil_kind=CLANG + dsymutil_vers=`echo $dsymutil_temp | sed 's/.*clang-\([[0-9\.]]*\).*/\1/'` + elif echo $dsymutil_temp | grep 'LLVM version ' > /dev/null; then + dsymutil_kind=LLVM + dsymutil_vers=`echo $dsymutil_temp | sed 's/.*LLVM\ version\ \([[0-9\.]]*\).*/\1/'` + else + dsymutil_kind=UNKNOWN + dsymutil_vers="0.0" + fi + dsymutil_major=`expr "$dsymutil_vers" : '\([[0-9]]*\)'` + dsymutil_minor=`expr "$dsymutil_vers" : '[[0-9]]*\.\([[0-9]]*\)'` + dsymutil_tiny=`expr "$dsymutil_vers" : '[[0-9]]*\.[[0-9]]*\.\([[0-9]]*\)'` + if test x"${dsymutil_minor}" = x; then + dsymutil_minor=0 + fi + if test x"${dsymutil_tiny}" = x; then + dsymutil_tiny=0 + fi + AC_DEFINE_UNQUOTED(DSYMUTIL_VERSION, [$dsymutil_kind,${dsymutil_major},${dsymutil_minor},${dsymutil_tiny}], + [Define to the dsymutil version.]) + AC_MSG_RESULT($dsymutil_vers : $dsymutil_kind ${dsymutil_major} ${dsymutil_minor} ${dsymutil_tiny} ) + fi + case $target_os in win32 | pe | cygwin* | mingw32*) AC_MSG_CHECKING(broken PE linker dwarf5 support) *************** case $target_os in *** 6222,6227 **** --- 6440,6462 ---- [Define if the PE linker has broken DWARF 5 support.]) fi AC_MSG_RESULT($gcc_cv_ld_broken_pe_dwarf5) + + AC_MSG_CHECKING(PE linker --disable-dynamicbase support) + gcc_cv_ld_disable_dynamicbase=no + if test $in_tree_ld = yes; then + if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 36 -o "$gcc_cv_gld_major_version" -gt 2; then \ + gcc_cv_ld_disable_dynamicbase=yes + fi + else + if $gcc_cv_ld --help 2>&1 | grep -q 'disable\-]dynamicbase' > /dev/null; then + gcc_cv_ld_disable_dynamicbase=yes + fi + fi + if test x"$gcc_cv_ld_disable_dynamicbase" = xyes; then + AC_DEFINE(HAVE_LD_PE_DISABLE_DYNAMICBASE, 1, + [Define if the PE linker supports --disable-dynamicbase option.]) + fi + AC_MSG_RESULT($gcc_cv_ld_disable_dynamicbase) ;; esac *************** EOF *** 6356,6362 **** esac case "$target:$tm_file" in ! powerpc64-*-freebsd* | powerpc64*-*-linux* | powerpc*-*-linux*rs6000/biarch64.h*) case "$target" in *le-*-linux*) emul_name="-melf64lppc" --- 6591,6597 ---- esac case "$target:$tm_file" in ! powerpc64*-*-freebsd* | powerpc64*-*-linux* | powerpc*-*-linux*rs6000/biarch64.h*) case "$target" in *le-*-linux*) emul_name="-melf64lppc" diff -Nrcpad gcc-11.2.0/gcc/coretypes.h gcc-11.3.0/gcc/coretypes.h *** gcc-11.2.0/gcc/coretypes.h Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/coretypes.h Thu Apr 21 07:58:53 2022 *************** enum stack_protector { *** 227,241 **** SPCT_FLAG_EXPLICIT = 4 }; ! /* Types of unwind/exception handling info that can be generated. */ enum unwind_info_type { UI_NONE, UI_SJLJ, UI_DWARF2, ! UI_TARGET, ! UI_SEH }; /* Callgraph node profile representation. */ --- 227,243 ---- SPCT_FLAG_EXPLICIT = 4 }; ! /* Types of unwind/exception handling info that can be generated. ! Note that a UI_TARGET (or larger) setting is considered to be ! incompatible with -freorder-blocks-and-partition. */ enum unwind_info_type { UI_NONE, UI_SJLJ, UI_DWARF2, ! UI_SEH, ! UI_TARGET }; /* Callgraph node profile representation. */ diff -Nrcpad gcc-11.2.0/gcc/coverage.c gcc-11.3.0/gcc/coverage.c *** gcc-11.2.0/gcc/coverage.c Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/coverage.c Thu Apr 21 07:58:53 2022 *************** coverage_compute_profile_id (struct cgra *** 576,583 **** if (!use_name_only && first_global_object_name) chksum = coverage_checksum_string (chksum, first_global_object_name); ! chksum = coverage_checksum_string ! (chksum, aux_base_name); } /* Non-negative integers are hopefully small enough to fit in all targets. --- 576,586 ---- if (!use_name_only && first_global_object_name) chksum = coverage_checksum_string (chksum, first_global_object_name); ! char *base_name = xstrdup (aux_base_name); ! if (endswith (base_name, ".gk")) ! base_name[strlen (base_name) - 3] = '\0'; ! chksum = coverage_checksum_string (chksum, base_name); ! free (base_name); } /* Non-negative integers are hopefully small enough to fit in all targets. *************** coverage_compute_cfg_checksum (struct fu *** 622,639 **** int coverage_begin_function (unsigned lineno_checksum, unsigned cfg_checksum) { - expanded_location xloc; - unsigned long offset; - /* We don't need to output .gcno file unless we're under -ftest-coverage (e.g. -fprofile-arcs/generate/use don't need .gcno to work). */ if (no_coverage || !bbg_file_name) return 0; ! xloc = expand_location (DECL_SOURCE_LOCATION (current_function_decl)); /* Announce function */ ! offset = gcov_write_tag (GCOV_TAG_FUNCTION); if (param_profile_func_internal_id) gcov_write_unsigned (current_function_funcdef_no + 1); else --- 625,640 ---- int coverage_begin_function (unsigned lineno_checksum, unsigned cfg_checksum) { /* We don't need to output .gcno file unless we're under -ftest-coverage (e.g. -fprofile-arcs/generate/use don't need .gcno to work). */ if (no_coverage || !bbg_file_name) return 0; ! expanded_location startloc ! = expand_location (DECL_SOURCE_LOCATION (current_function_decl)); /* Announce function */ ! unsigned long offset = gcov_write_tag (GCOV_TAG_FUNCTION); if (param_profile_func_internal_id) gcov_write_unsigned (current_function_funcdef_no + 1); else *************** coverage_begin_function (unsigned lineno *** 650,665 **** gcov_write_unsigned (DECL_ARTIFICIAL (current_function_decl) && !DECL_FUNCTION_VERSIONED (current_function_decl) && !DECL_LAMBDA_FUNCTION_P (current_function_decl)); ! gcov_write_filename (xloc.file); ! gcov_write_unsigned (xloc.line); ! gcov_write_unsigned (xloc.column); expanded_location endloc = expand_location (cfun->function_end_locus); /* Function can start in a single file and end in another one. */ ! int end_line = endloc.file == xloc.file ? endloc.line : xloc.line; ! int end_column = endloc.file == xloc.file ? endloc.column: xloc.column; ! gcc_assert (xloc.line <= end_line); gcov_write_unsigned (end_line); gcov_write_unsigned (end_column); gcov_write_length (offset); --- 651,674 ---- gcov_write_unsigned (DECL_ARTIFICIAL (current_function_decl) && !DECL_FUNCTION_VERSIONED (current_function_decl) && !DECL_LAMBDA_FUNCTION_P (current_function_decl)); ! gcov_write_filename (startloc.file); ! gcov_write_unsigned (startloc.line); ! gcov_write_unsigned (startloc.column); expanded_location endloc = expand_location (cfun->function_end_locus); /* Function can start in a single file and end in another one. */ ! int end_line ! = endloc.file == startloc.file ? endloc.line : startloc.line; ! int end_column ! = endloc.file == startloc.file ? endloc.column: startloc.column; ! ! if (startloc.line > end_line) ! { ! end_line = startloc.line; ! end_column = startloc.column; ! } ! gcov_write_unsigned (end_line); gcov_write_unsigned (end_column); gcov_write_length (offset); diff -Nrcpad gcc-11.2.0/gcc/cp/ChangeLog gcc-11.3.0/gcc/cp/ChangeLog *** gcc-11.2.0/gcc/cp/ChangeLog Wed Jul 28 06:55:27 2021 --- gcc-11.3.0/gcc/cp/ChangeLog Thu Apr 21 07:59:16 2022 *************** *** 1,3 **** --- 1,1019 ---- + 2022-04-21 Release Manager + + * GCC 11.3.0 released. + + 2022-04-20 Jakub Jelinek + + Backported from master: + 2022-04-19 Jakub Jelinek + + PR c++/105256 + * typeck2.c (process_init_constructor_array, + process_init_constructor_record, process_init_constructor_union): Move + CONSTRUCTOR_PLACEHOLDER_BOUNDARY flag from CONSTRUCTOR elements to the + containing CONSTRUCTOR. + + 2022-04-12 Patrick Palka + + Backported from master: + 2022-02-16 Patrick Palka + + PR c++/104507 + * constexpr.c (potential_constant_expression_1) + : Return false instead of recursing. + Assert tf_error isn't set. + + 2022-04-12 Patrick Palka + + Backported from master: + 2022-02-08 Patrick Palka + + PR c++/103706 + * constraint.cc (satisfy_declaration_constraints): Use + lambda_regenerating_args instead. + * cp-tree.h (lambda_regenerating_args): Declare. + * pt.c (lambda_regenerating_args): Define, split out from + satisfy_declaration_constraints. + (do_auto_deduction): Use lambda_regenerating_args to obtain the + full set of outer template arguments for satisfaction when + inside a lambda. + + 2022-04-12 Patrick Palka + + Backported from master: + 2022-01-28 Patrick Palka + + PR c++/103341 + * decl.c (cp_finish_decl): Pass the template arguments of a + variable template specialization or a templated static data + member to do_auto_deduction when the auto is constrained. + + 2022-04-12 Patrick Palka + + Backported from master: + 2022-01-25 Patrick Palka + + PR c++/101532 + PR c++/104225 + * decl2.c (mark_used): Don't consider maybe_instantiate_noexcept + on a deleted function. + + 2022-04-12 Patrick Palka + + Backported from master: + 2022-04-12 Patrick Palka + + PR c++/103105 + * pt.c (build_extra_args): Call preserve_args. + + 2022-04-12 Patrick Palka + + Backported from master: + 2022-02-08 Patrick Palka + + PR c++/103706 + * pt.c (preserve_args): New function. + (tsubst_lambda_expr): Use it when setting LAMBDA_EXPR_REGEN_INFO. + + 2022-04-12 Jason Merrill + + PR c++/98249 + * call.c (build_operator_new_call): Just look in ::. + + 2022-04-12 Jason Merrill + + PR c++/100608 + * name-lookup.c (check_local_shadow): Use -Wshadow=local + if exactly one of 'old' and 'decl' is a type. + + 2022-04-12 Jason Merrill + + PR c++/101677 + * name-lookup.h (struct cp_binding_level): Add requires_expression + bit-field. + * parser.c (cp_parser_requires_expression): Set it. + (synthesize_implicit_template_parm): Check it. + + 2022-04-12 Jason Merrill + + PR c++/105003 + PR c++/104008 + PR c++/102869 + * pt.c (complex_alias_template_r): walk_tree callback, replacing + uses_all_template_parms_r, complex_pack_expansion_r. + (complex_alias_template_p): Adjust. + + 2022-04-12 Jason Merrill + + PR c++/101894 + * decl.c (duplicate_decls): Copy DECL_FRIEND_CONTEXT. + + 2022-04-12 Jason Merrill + + PR c++/103943 + * pt.c (tsubst_qualified_id): Handle getting SCOPE_REF from + tsubst_baselink. + (instantiation_dependent_scope_ref_p): Check dependent_scope_p. + + 2022-04-12 Jason Merrill + + PR c++/101717 + * lambda.c (lambda_expr_this_capture): Check all enclosing + lambdas for completeness. + + 2022-04-12 Jason Merrill + + PR c++/101051 + * decl.c (grokdeclarator): Reject conversion with trailing return + sooner. + + 2022-04-08 Patrick Palka + + Backported from master: + 2021-05-27 Patrick Palka + + PR c++/99893 + PR c++/103885 + * tree.c (cp_walk_subtrees) : New case. + + 2022-04-07 Patrick Palka + + Backported from master: + 2022-04-06 Patrick Palka + + PR c++/105143 + * pt.c (do_class_deduction): Check complain before attempting + to issue a -Wctad-maybe-unsupported warning. + + 2022-04-07 Patrick Palka + + Backported from master: + 2022-03-28 Patrick Palka + + PR c++/105064 + * constraint.cc (maybe_substitute_reqs_for): Don't assume + DECL_TEMPLATE_INFO is available. + + 2022-04-07 Patrick Palka + + Backported from master: + 2022-02-17 Patrick Palka + + PR c++/104565 + * semantics.c (finish_compound_literal): Don't perform + non-dependent expr folding before calling check_narrowing. + + 2022-04-07 Patrick Palka + + Backported from master: + 2022-02-03 Patrick Palka + + PR c++/104079 + * pt.c (value_dependent_noexcept_spec_p): New predicate split + out from ... + (dependent_type_p_r): ... here. + (instantiation_dependent_r): Use value_dependent_noexcept_spec_p + to consider dependence of a noexcept-spec before C++17. + * tree.c (fixup_deferred_exception_variants): Clear + TYPE_DEPENDENT_P_VALID. + + 2022-04-07 Patrick Palka + + Backported from master: + 2022-03-26 Patrick Palka + + PR c++/103455 + * call.c (add_builtin_candidate) : Test + CLASS_TYPE_P instead of MAYBE_CLASS_TYPE_P. + + 2022-04-07 Benno Evers + + Backported from master: + 2022-04-03 Benno Evers + Iain Sandoe + + PR c++/103328 + * coroutines.cc (morph_fn_to_coro): Reset + current_binding_level->blocks. + + 2022-03-30 Jakub Jelinek + + Backported from master: + 2022-03-30 Jakub Jelinek + + PR c++/105061 + * parser.c (cp_parser_template_introduction): If member_p, temporarily + clear parser->colon_corrects_to_scope_p around tentative parsing of + nested name specifier. + + 2022-03-29 Jakub Jelinek + + Backported from master: + 2022-03-26 Jakub Jelinek + + * parser.c (cp_parser_postfix_expression) + : Don't + return cp_build_{vec,convert,bit_cast} result right away, instead + set postfix_expression to it and break. + + 2022-03-29 Jakub Jelinek + + Backported from master: + 2022-03-24 Jakub Jelinek + + PR c++/104994 + * constexpr.c (potential_constant_expression_1): Don't diagnose extern + thread_local declarations. + * decl.c (start_decl): Likewise. + + 2022-03-29 Jakub Jelinek + + Backported from master: + 2022-03-18 Jakub Jelinek + + PR c++/104568 + * init.c (build_new_constexpr_heap_type): Remove FULL_SIZE + argument and its handling, instead add ITYPE2 argument. Only + support COOKIE_SIZE != NULL. + (build_new_1): If size is 0, change it to 0 * outer_nelts if + outer_nelts is non-NULL. Pass type rather than elt_type to + maybe_wrap_new_for_constexpr. + * constexpr.c (build_new_constexpr_heap_type): New function. + (cxx_eval_constant_expression) : + If elt_size is zero sized type, try to recover outer_nelts from + the size argument to operator new/new[] and pass that as + arg_size to build_new_constexpr_heap_type. Pass ctx, + non_constant_p and overflow_p to that call too. + + 2022-03-29 Jakub Jelinek + + Backported from master: + 2022-03-09 Jakub Jelinek + + PR c/104711 + * constexpr.c (cxx_eval_check_shift_p): Use TYPE_OVERFLOW_WRAPS + instead of TYPE_UNSIGNED. + * typeck.c (cp_build_binary_op): Don't emit + -Wshift-negative-value warning if TYPE_OVERFLOW_WRAPS. + + 2022-03-29 Jakub Jelinek + + Backported from master: + 2022-03-08 Jakub Jelinek + + PR c++/104806 + * search.c (lookup_field_fuzzy_info::fuzzy_lookup_field): Ignore + identifiers with space at the end. + + 2022-03-29 Marek Polacek + + Backported from master: + 2022-03-25 Marek Polacek + + PR c++/104944 + * typeck.c (cxx_sizeof_or_alignof_type): Diagnose alignof(void). + (cxx_alignas_expr): Call cxx_sizeof_or_alignof_type with + complain == true. + + 2022-03-29 Marek Polacek + + Backported from master: + 2022-03-24 Marek Polacek + + PR c++/104284 + * decl.c (check_initializer): Don't call build_aggr_init in + a template. + + 2022-03-29 Marek Polacek + + Backported from master: + 2022-03-08 Marek Polacek + + PR c++/104108 + * pt.c (convert_nontype_argument): Recompute + value_dependent_expression_p after build_converted_constant_expr. + + 2022-03-29 Marek Polacek + + Backported from master: + 2022-03-24 Marek Polacek + + PR c++/102990 + * typeck2.c (massage_init_elt): Avoid folding CONSTRUCTORs. + + 2022-03-29 Marek Polacek + + Backported from master: + 2021-07-14 Marek Polacek + + PR c++/101371 + * constexpr.c (cxx_eval_array_reference): Create a new .object + and .ctor for the non-aggregate non-scalar case too when + value-initializing. + + 2022-03-28 Jason Merrill + + PR c++/104107 + PR c++/95036 + * pt.c (coerce_template_template_parms): Take full parms. + Avoid adding too much of outer_args. + (coerce_template_template_parm): Adjust. + (template_template_parm_bindings_ok_p): Adjust. + (convert_template_argument): Adjust. + + 2022-03-28 Jason Merrill + + PR c++/99445 + PR c++/103769 + * tree.c (strip_typedefs): Use build_distinct_type_copy. + + 2022-03-28 Jason Merrill + + PR c++/104847 + * mangle.c (write_expression): Don't write a union designator when + undigested. + + 2022-03-28 Jason Merrill + + PR c++/102045 + * call.c (make_base_init_ok): Call make_used. + + 2022-03-28 Jason Merrill + + PR c++/103968 + * pt.c (value_dependent_expression_p): Check + has_value_dependent_address for conversion to reference. + + 2022-03-28 Jason Merrill + + PR c++/102123 + * pt.c (tsubst_copy): Use make_unbound_class_template for rewriting + a type template reference. + + 2022-03-28 Jason Merrill + + PR c++/103291 + * name-lookup.c (push_local_extern_decl_alias): Call + determine_visibility. + + 2022-03-22 Jason Merrill + + PR c++/103186 + * pt.c (defarg_inst): Use tree_vec_map_cache_hasher. + (defarg_insts_for): New. + (tsubst_default_argument): Adjust. + + 2022-03-22 Jason Merrill + + PR c++/103057 + * pt.c (tsubst_aggr_type): Call tsubst for alias template + specialization. + + 2022-03-22 Jason Merrill + + PR c++/59950 + * call.c (build_over_call): Use cp_build_indirect_ref. + + 2022-03-22 Jason Merrill + + PR c++/101095 + * cp-objcp-common.c (cp_common_init_ts): Mark types as types. + (cp_tree_size): Remove redundant entries. + + 2022-03-22 Jason Merrill + + PR c++/58646 + * init.c (build_vec_init): Check for vla element type. + + 2022-03-22 Jason Merrill + + PR c++/103337 + PR c++/102740 + PR c++/103299 + PR c++/102538 + * decl.c (reshape_init_class): Avoid looking for designator + after we found it. + (reshape_init_r): Keep looking for designator. + + 2022-03-22 Jason Merrill + + PR c++/101767 + * decl.c (reshape_init_class): Back out of anon struct + if a designator doesn't match. + + 2022-02-28 Marek Polacek + + Backported from master: + 2022-02-28 Marek Polacek + + PR c++/104667 + * decl2.c (is_late_template_attribute): Cope with a decl without + a type. + + 2022-02-19 Jakub Jelinek + + Backported from master: + 2022-02-14 Jakub Jelinek + + PR c++/104513 + * constexpr.c (potential_constant_expression_1) : + Don't punt if returns (target). + + 2022-02-19 Jakub Jelinek + + Backported from master: + 2022-02-11 Jakub Jelinek + + PR c++/104472 + * constexpr.c (cxx_eval_internal_function) : + Only return fold_const_call result if it is non-NULL. Otherwise + fall through into the default: case to return t, set *non_constant_p + and emit diagnostics if needed. + + 2022-02-18 Richard Biener + + Backported from master: + 2021-05-10 Richard Biener + + PR middle-end/100464 + PR c++/100468 + * call.c (set_up_extended_ref_temp): Mark the temporary + addressable if the TARGET_EXPR was. + + 2022-02-08 Patrick Palka + + Backported from master: + 2022-02-08 Patrick Palka + + PR c++/104410 + * constraint.cc (satisfaction_value): Relax assert to accept + cv-qualified bool. + + 2022-01-28 Jason Merrill + + PR c++/61611 + * except.c (in_nested_catch): New. + (expand_end_catch_block): Check it. + + 2022-01-28 Jason Merrill + + PR c++/103711 + * init.c (perform_target_ctor): Select destructor by in_chrg. + + 2022-01-24 Marek Polacek + + Backported from master: + 2022-01-21 Marek Polacek + + PR c++/101715 + * tree.c (fixup_deferred_exception_variants): Remove duplicate + variants after parsing the exception specifications. + + 2022-01-24 Jakub Jelinek + + Backported from master: + 2022-01-18 Jakub Jelinek + + PR c++/104055 + * constexpr.c (cxx_eval_outermost_constant_expr): If t is a + TARGET_EXPR with TARGET_EXPR_CLEANUP, use get_target_expr rather + than get_target_expr_sfinae with tf_no_cleanup, and don't set + TREE_CONSTANT. + + 2022-01-24 Jakub Jelinek + + Backported from master: + 2022-01-12 Jakub Jelinek + Jason Merrill + + PR c++/103480 + * tree.c (move): If expr is xvalue_p, just return expr without + build_static_cast. + + 2022-01-24 Jakub Jelinek + + Backported from master: + 2022-01-10 Jakub Jelinek + + PR c++/103912 + * semantics.c (expand_or_defer_fn): For immediate functions, set + node->body_removed to true and clear analyzed, definition and + force_output. + * decl2.c (c_parse_final_cleanups): Ignore immediate functions for + expand_or_defer_fn. + + 2022-01-17 Marek Polacek + + Backported from master: + 2022-01-03 Marek Polacek + + PR c++/103758 + * parser.c (cp_parser_decl_specifier_seq): Replace % + with %qD. + + 2022-01-17 Marek Polacek + + Revert: + 2022-01-17 Marek Polacek + + PR c++/103758 + * parser.c (cp_parser_decl_specifier_seq): Replace % + with %qD. + + 2022-01-17 Marek Polacek + + Backported from master: + 2022-01-03 Marek Polacek + + PR c++/103758 + * parser.c (cp_parser_decl_specifier_seq): Replace % + with %qD. + + 2022-01-12 Patrick Palka + + Backported from master: + 2022-01-11 Patrick Palka + + PR c++/103831 + * call.c (build_new_method_call): Consider dependent bases only + if 'this' is available. + + 2022-01-10 Patrick Palka + + Backported from master: + 2022-01-10 Patrick Palka + + PR c++/103783 + * call.c (cand_parms_match): Skip over 'this' when given one + static and one non-static member function. + + 2022-01-03 Marek Polacek + + Backported from master: + 2021-12-15 Marek Polacek + + PR c++/102229 + * decl.c (check_decltype_auto): New. + (grokdeclarator): Call it. + * pt.c (do_auto_deduction): Don't check decltype(auto) here. + + 2021-12-19 Patrick Palka + + Backported from master: + 2021-12-19 Patrick Palka + + PR c++/103714 + * constraint.cc (satisfy_declaration_constraints): Do + push_to_top_level and pop_from_top_level around the call to + satisfy_normalized_constraints. + + 2021-12-16 Martin Sebor + + PR c++/103703 + * parser.c (class_decl_loc_t::diag_mismatched_tags): Check for class + type before assuming a type is one. + + 2021-12-15 Patrick Palka + + Backported from master: + 2021-11-29 Patrick Palka + + PR c++/100493 + * parser.c (cp_parser_lambda_introducer): In C++17, don't + diagnose a redundant 'this' capture alongside a by-copy + capture default unless -pedantic. Move the diagnostic into + -Wc++20-extensions and adjust wording accordingly. + + 2021-12-15 Patrick Palka + + Backported from master: + 2021-11-19 Patrick Palka + + PR c++/103198 + * pt.c (any_template_parm_r): Walk the TREE_TYPE of a dummy + object. + + 2021-12-15 Patrick Palka + + Backported from master: + 2021-11-18 Patrick Palka + + PR c++/99911 + * pt.c (tsubst_copy_and_build) : Don't diagnose + name lookup failure if the arguments to an unresolved template + name are still dependent. + + 2021-12-15 Patrick Palka + + Backported from master: + 2021-11-09 Patrick Palka + + PR c++/98394 + PR c++/85846 + * parser.c (cp_parser_placeholder_type_specifier): Declare + static. Don't override tentative to false when tmpl is a + concept-id with empty argument list. Don't emit a "does not + constrain a type" error when tentative. + + 2021-12-15 Patrick Palka + + Backported from master: + 2021-10-28 Patrick Palka + + PR c++/102933 + * parser.c (cp_parser_simple_type_specifier): Adjust diagnostic + for using auto in parameter declaration. + * pt.c (extract_autos_r): Ignore CTAD placeholders. + (extract_autos): Use range-based for. + (do_auto_deduction): Use extract_autos only for the concepts TS + and not also for standard concepts. + (type_uses_auto): Likewise with for_each_template_parm. + (check_auto_in_tmpl_args): Just return false outside of the + concepts TS. Simplify. + + 2021-12-07 Marek Polacek + + Backported from master: + 2021-12-07 Marek Polacek + + PR c++/95009 + * typeck.c (is_bitfield_expr_with_lowered_type) : + Handle UNARY_PLUS_EXPR, NEGATE_EXPR, NON_LVALUE_EXPR, BIT_NOT_EXPR, + P*CREMENT_EXPR too. + + 2021-12-02 Marek Polacek + + Backported from master: + 2021-12-02 Marek Polacek + + PR c++/94490 + * pt.c (expand_integer_pack): Call + instantiate_non_dependent_expr_sfinae. + + 2021-12-01 Jason Merrill + + * semantics.c (is_this_parameter): Check DECL_HAS_VALUE_EXPR_P + instead of is_capture_proxy. + + 2021-11-29 Jakub Jelinek + + Backported from master: + 2021-11-19 Jakub Jelinek + + PR c++/70796 + * cp-gimplify.c (cp_gimplify_arg): New function. + (cp_gimplify_expr): Use cp_gimplify_arg instead of gimplify_arg, + pass true as last argument to it if there are any following + arguments in strong evaluation order with side-effects. + + 2021-11-29 Jakub Jelinek + + Backported from master: + 2021-10-19 Jakub Jelinek + + PR c++/102786 + * constexpr.c (cxx_eval_constant_expression): Don't reject + INTEGER_CSTs with type POINTER_TYPE to METHOD_TYPE. + + 2021-10-20 Jakub Jelinek + + Backported from master: + 2021-10-20 Jakub Jelinek + + PR c++/102642 + * name-lookup.c (push_local_extern_decl_alias): Don't call + set_decl_tls_model on error_mark_node. + * decl.c (make_rtl_for_nonlocal_decl): Don't call + set_user_assembler_name on error_mark_node. + * parser.c (cp_parser_oacc_declare): Ignore DECL_LOCAL_DECL_ALIAS + if it is error_mark_node. + (cp_parser_omp_declare_target): Likewise. + + 2021-10-08 Jakub Jelinek + + Backported from master: + 2021-10-08 Jakub Jelinek + + PR c++/102640 + * parser.c (handle_omp_declare_target_clause): New function. + (cp_parser_omp_declare_target): Use it. + + 2021-10-07 Patrick Palka + + Backported from master: + 2021-10-07 Patrick Palka + + PR c++/99904 + * pt.c (is_compatible_template_arg): Set processing_template_decl + around tsubst_constraint_info. + + 2021-10-06 Patrick Palka + + Backported from master: + 2021-10-05 Patrick Palka + + PR c++/102547 + * constexpr.c (potential_constant_expression_1): Handle + NONTYPE_ARGUMENT_PACK. + + 2021-10-06 Patrick Palka + + Backported from master: + 2021-09-30 Patrick Palka + + PR c++/102535 + * method.c (is_xible_helper): Don't exit early for multi-arg + ctors in C++20. + + 2021-10-06 Patrick Palka + + Backported from master: + 2021-09-30 Patrick Palka + + PR c++/95567 + * method.c (build_comparison_op): Skip DECL_VIRTUAL_P fields. + + 2021-10-06 Patrick Palka + + Backported from master: + 2021-09-22 Patrick Palka + + DR 2446 + PR c++/102412 + * constexpr.c (cxx_eval_constant_expression) + : Check value_dependent_expression_p + instead of processing_template_decl. + * pt.c (value_dependent_expression_p) : + Return true only if any_dependent_template_arguments_p. + (instantiation_dependent_r) : Remove this case. + : Likewise. + + 2021-10-06 Patrick Palka + + Backported from master: + 2021-09-16 Patrick Palka + + PR c++/98486 + * constraint.cc (get_normalized_constraints_from_decl): Always + look up constraints using the most general template. + * decl.c (grokdeclarator): Set constraints on a static data + member template. + * pt.c (determine_specialization): Check constraints on a + variable template. + + 2021-10-06 Patrick Palka + + Backported from master: + 2021-09-14 Patrick Palka + + PR c++/102163 + * constexpr.c (cxx_eval_call_expression): After evaluating a + subobject constructor call for an empty union member, produce a + side effect that makes sure the member gets activated. + + 2021-10-06 Patrick Palka + + Backported from master: + 2021-08-18 Patrick Palka + + PR c++/101344 + PR c++/101803 + * cp-tree.h (CONSTRUCTOR_BRACES_ELIDED_P): Define. + * decl.c (reshape_init_r): Set it. + * pt.c (collect_ctor_idx_types): Recurse into a sub-CONSTRUCTOR + iff CONSTRUCTOR_BRACES_ELIDED_P. + + 2021-10-06 Patrick Palka + + Backported from master: + 2021-08-18 Patrick Palka + + PR c++/101883 + * pt.c (convert_template_argument): Pass LOOKUP_IMPLICIT to + do_auto_deduction. + + 2021-10-05 Jakub Jelinek + + Backported from master: + 2021-10-05 Jakub Jelinek + + PR c++/102548 + * tree.c (apply_identity_attributes): Fix handling of the + case where an attribute in the list doesn't affect type + identity but some attribute before it does. + + 2021-10-05 Jakub Jelinek + + Backported from master: + 2021-10-01 Jakub Jelinek + + PR c++/102496 + * name-lookup.c (push_local_extern_decl_alias): Return early even for + tls vars with non-dependent type when processing_template_decl. For + CP_DECL_THREAD_LOCAL_P vars call set_decl_tls_model on alias. + + 2021-10-03 Iain Sandoe + + Backported from master: + 2021-09-28 Iain Sandoe + + PR c++/102454 + * coroutines.cc (analyze_fn_parms): Clean up synthetic names for + unnamed function params. + (morph_fn_to_coro): Do not try to set a guard variable for param + DTORs in the ramp, unless we have exceptions active. + + 2021-10-03 Iain Sandoe + + Backported from master: + 2021-09-14 Iain Sandoe + + * coroutines.cc (struct param_info): Add copy_var. + (build_actor_fn): Use simplified param references. + (register_param_uses): Likewise. + (rewrite_param_uses): Likewise. + (analyze_fn_parms): New function. + (coro_rewrite_function_body): Add proxies for the fn + parameters to the outer bind scope of the rewritten code. + (morph_fn_to_coro): Use simplified version of param ref. + + 2021-10-03 Iain Sandoe + + Backported from master: + 2021-09-14 Iain Sandoe + + * coroutines.cc (coro_resume_fn_id, coro_destroy_fn_id, + coro_promise_id, coro_frame_needs_free_id, coro_resume_index_id, + coro_self_handle_id, coro_actor_continue_id, + coro_frame_i_a_r_c_id): New. + (coro_init_identifiers): Initialize new name identifiers. + (coro_promise_type_found_p): Use pre-built identifiers. + (struct await_xform_data): Remove unused fields. + (transform_await_expr): Delete code that is now unused. + (build_actor_fn): Simplify interface, use pre-built identifiers and + remove transforms that are no longer needed. + (build_destroy_fn): Use revised field names. + (register_local_var_uses): Use pre-built identifiers. + (coro_rewrite_function_body): Simplify interface, use pre-built + identifiers. Generate proxy vars in the outer bind expr scope for the + implementation state that we wish to expose. + (morph_fn_to_coro): Adjust comments for new variable names, use pre- + built identifiers. Remove unused code to generate frame entries for + the implementation state. Adjust call for build_actor_fn. + + 2021-10-03 Iain Sandoe + + Backported from master: + 2021-09-03 Iain Sandoe + + * coroutines.cc (register_local_var_uses): Do not mangle + frame entries for the outermost scope. Record the outer + scope as nesting depth 0. + + 2021-10-03 Iain Sandoe + + Backported from master: + 2021-09-03 Iain Sandoe + + * coroutines.cc (coro_build_artificial_var): New. + (build_actor_fn): Use var builder, rename vars to use + implementation namespace. + (coro_rewrite_function_body): Likewise. + (morph_fn_to_coro): Likewise. + + 2021-10-03 Iain Sandoe + + Backported from master: + 2021-09-03 Iain Sandoe + + * coroutines.cc (transform_local_var_uses): Record + frame offset expressions as DECL_VALUE_EXPRs instead of + rewriting them. + + 2021-10-03 Iain Sandoe + + Backported from master: + 2021-09-01 Iain Sandoe + + * coroutines.cc (build_actor_fn): Add begin/finish clauses + to the initial test in the actor function. + + 2021-10-03 Iain Sandoe + + Backported from master: + 2021-09-01 Iain Sandoe + + * coroutines.cc (await_statement_walker): Use build_stmt and + add_stmt instead of build1 and finish_expr_stmt. + + 2021-10-03 Jason Merrill + + Backported from master: + 2021-05-07 Jason Merrill + + * coroutines.cc (build_co_await): Don't call 'rvalue'. + (flatten_await_stmt): Simplify initialization. + (morph_fn_to_coro): Change 'rvalue' to 'move'. Simplify. + + 2021-09-15 Jakub Jelinek + + Backported from master: + 2021-09-15 Jakub Jelinek + + PR c++/88578 + PR c++/102295 + * typeck2.c (split_nonconstant_init_1): Don't throw away empty + initializers of flexible array members if they have non-zero type + size. + + 2021-09-15 Jakub Jelinek + + Backported from master: + 2021-09-14 Jakub Jelinek + + PR c++/102295 + * decl.c (layout_var_decl): For aggregates ending with a flexible + array member, add the size of the initializer for that member to + DECL_SIZE and DECL_SIZE_UNIT. + + 2021-09-15 Jakub Jelinek + + Backported from master: + 2021-09-14 Jakub Jelinek + + PR c++/102305 + * method.c (is_xible_helper): Call complete_type on to. + + 2021-09-07 Jakub Jelinek + + Backported from master: + 2021-09-07 Jakub Jelinek + + PR c++/100495 + * constexpr.c (maybe_save_constexpr_fundef): Save body even for + constexpr deleting dtors. + (cxx_eval_call_expression): Don't use DECL_CLONED_FUNCTION for + deleting dtors. + + 2021-08-12 Jakub Jelinek + + Backported from master: + 2021-08-04 Jakub Jelinek + + PR c++/101759 + * parser.c (cp_parser_default_argument): Temporarily override + parser->omp_declare_simd and parser->oacc_routine to NULL. + + 2021-08-12 Patrick Palka + + Backported from master: + 2021-08-12 Patrick Palka + + PR c++/101663 + * constexpr.c (cxx_eval_store_expression): Handle the lval=true + case in the early exit code path for empty stores with mismatched + types. + + 2021-08-11 Patrick Palka + + Backported from master: + 2021-08-11 Patrick Palka + + PR c++/101725 + DR 2082 + * cp-tree.h (unevaluated_p): Return true for REQUIRES_EXPR. + * decl.c (local_variable_p_walkfn): Don't walk into unevaluated + operands. + * parser.c (cp_parser_primary_expression) : Never + reject uses of local variables in unevaluated contexts. + * tree.c (cp_walk_subtrees) : Increment + cp_unevaluated_operand. Use cp_walk_tree directly instead of + WALK_SUBTREE to avoid the goto. Use REQUIRES_EXPR_REQS instead + of TREE_OPERAND directly. + + 2021-08-11 Patrick Palka + + Backported from master: + 2021-08-02 Patrick Palka + + PR c++/100828 + * logic.cc (formula::formula): Use emplace_back instead of + push_back. + (formula::branch): Insert a copy of m_current directly after + m_current instead of at the end of the list. + (formula::erase): Define. + (decompose_formula): Remove. + (decompose_antecedents): Remove. + (decompose_consequents): Remove. + (derive_proofs): Remove. + (max_problem_size): Remove. + (diagnose_constraint_size): Remove. + (subsumes_constraints_nonnull): Rewrite directly in terms of + decompose_clause and derive_proof, interleaving decomposition + with implication checking. Remove limit on constraint complexity. + Use formula::erase to free the current clause before moving on to + the next one. + 2021-07-28 Release Manager * GCC 11.2.0 released. diff -Nrcpad gcc-11.2.0/gcc/cp/call.c gcc-11.3.0/gcc/cp/call.c *** gcc-11.2.0/gcc/cp/call.c Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/cp/call.c Thu Apr 21 07:58:53 2022 *************** add_builtin_candidate (struct z_candidat *** 2799,2805 **** tree c1 = TREE_TYPE (type1); tree c2 = TYPE_PTRMEM_CLASS_TYPE (type2); ! if (MAYBE_CLASS_TYPE_P (c1) && DERIVED_FROM_P (c2, c1) && (TYPE_PTRMEMFUNC_P (type2) || is_complete (TYPE_PTRMEM_POINTED_TO_TYPE (type2)))) break; --- 2799,2805 ---- tree c1 = TREE_TYPE (type1); tree c2 = TYPE_PTRMEM_CLASS_TYPE (type2); ! if (CLASS_TYPE_P (c1) && DERIVED_FROM_P (c2, c1) && (TYPE_PTRMEMFUNC_P (type2) || is_complete (TYPE_PTRMEM_POINTED_TO_TYPE (type2)))) break; *************** build_operator_new_call (tree fnname, ve *** 4764,4770 **** we disregard block-scope declarations of "operator new". */ fns = lookup_name (fnname, LOOK_where::NAMESPACE); - fns = lookup_arg_dependent (fnname, fns, *args); if (align_arg) { --- 4764,4769 ---- *************** make_base_init_ok (tree exp) *** 8643,8648 **** --- 8642,8648 ---- call target. It would be possible to splice in the appropriate arguments, but probably not worth the complexity. */ return false; + mark_used (fn); AGGR_INIT_EXPR_FN (exp) = build_address (fn); return true; } *************** build_over_call (struct z_candidate *can *** 9456,9462 **** && DECL_OVERLOADED_OPERATOR_IS (fn, NOP_EXPR) && trivial_fn_p (fn)) { ! tree to = cp_build_fold_indirect_ref (argarray[0]); tree type = TREE_TYPE (to); tree as_base = CLASSTYPE_AS_BASE (type); tree arg = argarray[1]; --- 9456,9465 ---- && DECL_OVERLOADED_OPERATOR_IS (fn, NOP_EXPR) && trivial_fn_p (fn)) { ! /* Don't use cp_build_fold_indirect_ref, op= returns an lvalue even if ! the object argument isn't one. */ ! tree to = cp_build_indirect_ref (input_location, argarray[0], ! RO_ARROW, complain); tree type = TREE_TYPE (to); tree as_base = CLASSTYPE_AS_BASE (type); tree arg = argarray[1]; *************** build_new_method_call_1 (tree instance, *** 10793,10799 **** we know we really need it. */ cand->first_arg = instance; } ! else if (any_dependent_bases_p ()) /* We can't tell until instantiation time whether we can use *this as the implicit object argument. */; else --- 10796,10802 ---- we know we really need it. */ cand->first_arg = instance; } ! else if (current_class_ptr && any_dependent_bases_p ()) /* We can't tell until instantiation time whether we can use *this as the implicit object argument. */; else *************** joust_maybe_elide_copy (z_candidate *&ca *** 11600,11606 **** /* True if the defining declarations of the two candidates have equivalent parameters. */ ! bool cand_parms_match (z_candidate *c1, z_candidate *c2) { tree fn1 = c1->fn; --- 11603,11609 ---- /* True if the defining declarations of the two candidates have equivalent parameters. */ ! static bool cand_parms_match (z_candidate *c1, z_candidate *c2) { tree fn1 = c1->fn; *************** cand_parms_match (z_candidate *c1, z_can *** 11622,11629 **** fn1 = DECL_TEMPLATE_RESULT (t1); fn2 = DECL_TEMPLATE_RESULT (t2); } ! return compparms (TYPE_ARG_TYPES (TREE_TYPE (fn1)), ! TYPE_ARG_TYPES (TREE_TYPE (fn2))); } /* Compare two candidates for overloading as described in --- 11625,11643 ---- fn1 = DECL_TEMPLATE_RESULT (t1); fn2 = DECL_TEMPLATE_RESULT (t2); } ! tree parms1 = TYPE_ARG_TYPES (TREE_TYPE (fn1)); ! tree parms2 = TYPE_ARG_TYPES (TREE_TYPE (fn2)); ! if (DECL_FUNCTION_MEMBER_P (fn1) ! && DECL_FUNCTION_MEMBER_P (fn2) ! && (DECL_NONSTATIC_MEMBER_FUNCTION_P (fn1) ! != DECL_NONSTATIC_MEMBER_FUNCTION_P (fn2))) ! { ! /* Ignore 'this' when comparing the parameters of a static member ! function with those of a non-static one. */ ! parms1 = skip_artificial_parms_for (fn1, parms1); ! parms2 = skip_artificial_parms_for (fn2, parms2); ! } ! return compparms (parms1, parms2); } /* Compare two candidates for overloading as described in *************** set_up_extended_ref_temp (tree decl, tre *** 12520,12525 **** --- 12534,12541 ---- VAR. */ if (TREE_CODE (expr) != TARGET_EXPR) expr = get_target_expr (expr); + else if (TREE_ADDRESSABLE (expr)) + TREE_ADDRESSABLE (var) = 1; if (TREE_CODE (decl) == FIELD_DECL && extra_warnings && !TREE_NO_WARNING (decl)) diff -Nrcpad gcc-11.2.0/gcc/cp/constexpr.c gcc-11.3.0/gcc/cp/constexpr.c *** gcc-11.2.0/gcc/cp/constexpr.c Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/cp/constexpr.c Thu Apr 21 07:58:53 2022 *************** maybe_save_constexpr_fundef (tree fun) *** 871,877 **** if (processing_template_decl || !DECL_DECLARED_CONSTEXPR_P (fun) || cp_function_chain->invalid_constexpr ! || DECL_CLONED_FUNCTION_P (fun)) return; if (!is_valid_constexpr_fn (fun, !DECL_GENERATED_P (fun))) --- 871,877 ---- if (processing_template_decl || !DECL_DECLARED_CONSTEXPR_P (fun) || cp_function_chain->invalid_constexpr ! || (DECL_CLONED_FUNCTION_P (fun) && !DECL_DELETING_DESTRUCTOR_P (fun))) return; if (!is_valid_constexpr_fn (fun, !DECL_GENERATED_P (fun))) *************** cxx_eval_internal_function (const conste *** 1757,1769 **** false, non_constant_p, overflow_p); if (TREE_CODE (arg) == VECTOR_CST) ! return fold_const_call (CFN_VEC_CONVERT, TREE_TYPE (t), arg); ! else ! { ! *non_constant_p = true; ! return t; ! } } default: if (!ctx->quiet) --- 1757,1766 ---- false, non_constant_p, overflow_p); if (TREE_CODE (arg) == VECTOR_CST) ! if (tree r = fold_const_call (CFN_VEC_CONVERT, TREE_TYPE (t), arg)) ! return r; } + /* FALLTHRU */ default: if (!ctx->quiet) *************** cxx_eval_call_expression (const constexp *** 2353,2359 **** *non_constant_p = true; return t; } ! if (DECL_CLONED_FUNCTION_P (fun)) fun = DECL_CLONED_FUNCTION (fun); if (is_ubsan_builtin_p (fun)) --- 2350,2356 ---- *non_constant_p = true; return t; } ! if (DECL_CLONED_FUNCTION_P (fun) && !DECL_DELETING_DESTRUCTOR_P (fun)) fun = DECL_CLONED_FUNCTION (fun); if (is_ubsan_builtin_p (fun)) *************** cxx_eval_call_expression (const constexp *** 2766,2777 **** &jump_target); if (DECL_CONSTRUCTOR_P (fun)) ! /* This can be null for a subobject constructor call, in ! which case what we care about is the initialization ! side-effects rather than the value. We could get at the ! value by evaluating *this, but we don't bother; there's ! no need to put such a call in the hash table. */ ! result = lval ? ctx->object : ctx->ctor; else if (VOID_TYPE_P (TREE_TYPE (res))) result = void_node; else --- 2763,2796 ---- &jump_target); if (DECL_CONSTRUCTOR_P (fun)) ! { ! /* This can be null for a subobject constructor call, in ! which case what we care about is the initialization ! side-effects rather than the value. We could get at the ! value by evaluating *this, but we don't bother; there's ! no need to put such a call in the hash table. */ ! result = lval ? ctx->object : ctx->ctor; ! ! /* If we've just evaluated a subobject constructor call for an ! empty union member, it might not have produced a side effect ! that actually activated the union member. So produce such a ! side effect now to ensure the union appears initialized. */ ! if (!result && new_obj ! && TREE_CODE (new_obj) == COMPONENT_REF ! && TREE_CODE (TREE_TYPE ! (TREE_OPERAND (new_obj, 0))) == UNION_TYPE ! && is_really_empty_class (TREE_TYPE (new_obj), ! /*ignore_vptr*/false)) ! { ! tree activate = build2 (MODIFY_EXPR, TREE_TYPE (new_obj), ! new_obj, ! build_constructor (TREE_TYPE (new_obj), ! NULL)); ! cxx_eval_constant_expression (ctx, activate, lval, ! non_constant_p, overflow_p); ! ggc_free (activate); ! } ! } else if (VOID_TYPE_P (TREE_TYPE (res))) result = void_node; else *************** cxx_eval_check_shift_p (location_t loc, *** 3056,3062 **** The value of E1 << E2 is the unique value congruent to E1 x 2^E2 modulo 2^N, where N is the range exponent of the type of the result. */ if (code == LSHIFT_EXPR ! && !TYPE_UNSIGNED (lhstype) && cxx_dialect >= cxx11 && cxx_dialect < cxx20) { --- 3075,3081 ---- The value of E1 << E2 is the unique value congruent to E1 x 2^E2 modulo 2^N, where N is the range exponent of the type of the result. */ if (code == LSHIFT_EXPR ! && !TYPE_OVERFLOW_WRAPS (lhstype) && cxx_dialect >= cxx11 && cxx_dialect < cxx20) { *************** cxx_eval_array_reference (const constexp *** 3840,3855 **** { tree empty_ctor = build_constructor (init_list_type_node, NULL); val = digest_init (elem_type, empty_ctor, tf_warning_or_error); new_ctx = *ctx; ! new_ctx.object = t; new_ctx.ctor = build_constructor (elem_type, NULL); ctx = &new_ctx; } - else - val = build_value_init (elem_type, tf_warning_or_error); t = cxx_eval_constant_expression (ctx, val, lval, non_constant_p, overflow_p); ! if (CP_AGGREGATE_TYPE_P (elem_type) && t != ctx->ctor) free_constructor (ctx->ctor); return t; } --- 3859,3881 ---- { 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); + + if (!SCALAR_TYPE_P (elem_type)) + { new_ctx = *ctx; ! if (ctx->object) ! /* If there was no object, don't add one: it could confuse us ! into thinking we're modifying a const object. */ ! new_ctx.object = t; new_ctx.ctor = build_constructor (elem_type, NULL); ctx = &new_ctx; } t = cxx_eval_constant_expression (ctx, val, lval, non_constant_p, overflow_p); ! if (!SCALAR_TYPE_P (elem_type) && t != ctx->ctor) free_constructor (ctx->ctor); return t; } *************** cxx_eval_store_expression (const constex *** 5538,5545 **** argument, which has the derived type rather than the base type. In this situation, just evaluate the initializer and return, since there's no actual data to store. */ ! gcc_assert (is_empty_class (TREE_TYPE (init)) && !lval); ! return init; } CONSTRUCTOR_ELTS (*valp) = CONSTRUCTOR_ELTS (init); TREE_CONSTANT (*valp) = TREE_CONSTANT (init); --- 5564,5571 ---- argument, which has the derived type rather than the base type. In this situation, just evaluate the initializer and return, since there's no actual data to store. */ ! gcc_assert (is_empty_class (TREE_TYPE (init))); ! return lval ? target : init; } CONSTRUCTOR_ELTS (*valp) = CONSTRUCTOR_ELTS (init); TREE_CONSTANT (*valp) = TREE_CONSTANT (init); *************** inline_asm_in_constexpr_error (location_ *** 6021,6026 **** --- 6047,6130 ---- "% function in C++20"); } + /* For element type ELT_TYPE, return the appropriate type of the heap object + containing such element(s). COOKIE_SIZE is NULL or the size of cookie + in bytes. If COOKIE_SIZE is NULL, return array type + ELT_TYPE[FULL_SIZE / sizeof(ELT_TYPE)], otherwise return + struct { size_t[COOKIE_SIZE/sizeof(size_t)]; ELT_TYPE[N]; } + where N is is computed such that the size of the struct fits into FULL_SIZE. + If ARG_SIZE is non-NULL, it is the first argument to the new operator. + It should be passed if ELT_TYPE is zero sized type in which case FULL_SIZE + will be also 0 and so it is not possible to determine the actual array + size. CTX, NON_CONSTANT_P and OVERFLOW_P are used during constant + expression evaluation of subexpressions of ARG_SIZE. */ + + static tree + build_new_constexpr_heap_type (const constexpr_ctx *ctx, tree elt_type, + tree cookie_size, tree full_size, tree arg_size, + bool *non_constant_p, bool *overflow_p) + { + gcc_assert (cookie_size == NULL_TREE || tree_fits_uhwi_p (cookie_size)); + gcc_assert (tree_fits_uhwi_p (full_size)); + unsigned HOST_WIDE_INT csz = cookie_size ? tree_to_uhwi (cookie_size) : 0; + if (arg_size) + { + STRIP_NOPS (arg_size); + if (cookie_size) + { + if (TREE_CODE (arg_size) != PLUS_EXPR) + arg_size = NULL_TREE; + else if (TREE_CODE (TREE_OPERAND (arg_size, 0)) == INTEGER_CST + && tree_int_cst_equal (cookie_size, + TREE_OPERAND (arg_size, 0))) + { + arg_size = TREE_OPERAND (arg_size, 1); + STRIP_NOPS (arg_size); + } + else if (TREE_CODE (TREE_OPERAND (arg_size, 1)) == INTEGER_CST + && tree_int_cst_equal (cookie_size, + TREE_OPERAND (arg_size, 1))) + { + arg_size = TREE_OPERAND (arg_size, 0); + STRIP_NOPS (arg_size); + } + else + arg_size = NULL_TREE; + } + if (arg_size && TREE_CODE (arg_size) == MULT_EXPR) + { + tree op0 = TREE_OPERAND (arg_size, 0); + tree op1 = TREE_OPERAND (arg_size, 1); + if (integer_zerop (op0)) + arg_size + = cxx_eval_constant_expression (ctx, op1, false, non_constant_p, + overflow_p); + else if (integer_zerop (op1)) + arg_size + = cxx_eval_constant_expression (ctx, op0, false, non_constant_p, + overflow_p); + else + arg_size = NULL_TREE; + } + else + arg_size = NULL_TREE; + } + + unsigned HOST_WIDE_INT fsz = tree_to_uhwi (arg_size ? arg_size : full_size); + if (!arg_size) + { + unsigned HOST_WIDE_INT esz = int_size_in_bytes (elt_type); + gcc_assert (fsz >= csz); + fsz -= csz; + if (esz) + fsz /= esz; + } + tree itype2 = build_index_type (size_int (fsz - 1)); + if (!cookie_size) + return build_cplus_array_type (elt_type, itype2); + return build_new_constexpr_heap_type (elt_type, cookie_size, itype2); + } + /* Attempt to reduce the expression T to a constant value. On failure, issue diagnostic and return error_mark_node. */ /* FIXME unify with c_fully_fold */ *************** cxx_eval_constant_expression (const cons *** 6079,6084 **** --- 6183,6192 ---- if (TREE_CODE (t) == INTEGER_CST && TYPE_PTR_P (TREE_TYPE (t)) + /* INTEGER_CST with pointer-to-method type is only used + for a virtual method in a pointer to member function. + Don't reject those. */ + && TREE_CODE (TREE_TYPE (TREE_TYPE (t))) != METHOD_TYPE && !integer_zerop (t)) { if (!ctx->quiet) *************** cxx_eval_constant_expression (const cons *** 6820,6825 **** --- 6928,6934 ---- tree var_size = TYPE_SIZE_UNIT (TREE_TYPE (var)); tree elt_type = TREE_TYPE (type); tree cookie_size = NULL_TREE; + tree arg_size = NULL_TREE; if (TREE_CODE (elt_type) == RECORD_TYPE && TYPE_NAME (elt_type) == heap_identifier) { *************** cxx_eval_constant_expression (const cons *** 6831,6839 **** DECL_NAME (var) = (DECL_NAME (var) == heap_uninit_identifier ? heap_identifier : heap_vec_identifier); TREE_TYPE (var) ! = build_new_constexpr_heap_type (elt_type, cookie_size, ! var_size); TREE_TYPE (TREE_OPERAND (op, 0)) = build_pointer_type (TREE_TYPE (var)); } --- 6940,6960 ---- DECL_NAME (var) = (DECL_NAME (var) == heap_uninit_identifier ? heap_identifier : heap_vec_identifier); + /* For zero sized elt_type, try to recover how many outer_nelts + it should have. */ + if ((cookie_size ? tree_int_cst_equal (var_size, cookie_size) + : integer_zerop (var_size)) + && !int_size_in_bytes (elt_type) + && TREE_CODE (oldop) == CALL_EXPR + && call_expr_nargs (oldop) >= 1) + if (tree fun = get_function_named_in_call (oldop)) + if (cxx_replaceable_global_alloc_fn (fun) + && IDENTIFIER_NEW_OP_P (DECL_NAME (fun))) + arg_size = CALL_EXPR_ARG (oldop, 0); TREE_TYPE (var) ! = build_new_constexpr_heap_type (ctx, elt_type, cookie_size, ! var_size, arg_size, ! non_constant_p, overflow_p); TREE_TYPE (TREE_OPERAND (op, 0)) = build_pointer_type (TREE_TYPE (var)); } *************** cxx_eval_constant_expression (const cons *** 7009,7015 **** break; } ! if (!processing_template_decl && !uid_sensitive_constexpr_evaluation_p ()) r = evaluate_concept_check (t); else --- 7130,7136 ---- break; } ! if (!value_dependent_expression_p (t) && !uid_sensitive_constexpr_evaluation_p ()) r = evaluate_concept_check (t); else *************** cxx_eval_outermost_constant_expr (tree t *** 7385,7391 **** if (TREE_CODE (t) == TARGET_EXPR && TARGET_EXPR_INITIAL (t) == r) return t; ! else if (TREE_CODE (t) != CONSTRUCTOR) { r = get_target_expr_sfinae (r, tf_warning_or_error | tf_no_cleanup); TREE_CONSTANT (r) = true; --- 7506,7516 ---- if (TREE_CODE (t) == TARGET_EXPR && TARGET_EXPR_INITIAL (t) == r) return t; ! else if (TREE_CODE (t) == CONSTRUCTOR) ! ; ! else if (TREE_CODE (t) == TARGET_EXPR && TARGET_EXPR_CLEANUP (t)) ! r = get_target_expr (r); ! else { r = get_target_expr_sfinae (r, tf_warning_or_error | tf_no_cleanup); TREE_CONSTANT (r) = true; *************** potential_constant_expression_1 (tree t, *** 8601,8606 **** --- 8726,8739 ---- case BIND_EXPR: return RECUR (BIND_EXPR_BODY (t), want_rval); + case NON_DEPENDENT_EXPR: + /* Treat NON_DEPENDENT_EXPR as non-constant: it's not handled by + constexpr evaluation or tsubst, so fold_non_dependent_expr can't + do anything useful with it. And we shouldn't see it in a context + where a constant expression is strictly required, hence the assert. */ + gcc_checking_assert (!(flags & tf_error)); + return false; + case CLEANUP_POINT_EXPR: case MUST_NOT_THROW_EXPR: case TRY_CATCH_EXPR: *************** potential_constant_expression_1 (tree t, *** 8608,8614 **** case EH_SPEC_BLOCK: case EXPR_STMT: case PAREN_EXPR: - case NON_DEPENDENT_EXPR: /* For convenience. */ case LOOP_EXPR: case EXIT_EXPR: --- 8741,8746 ---- *************** potential_constant_expression_1 (tree t, *** 8618,8635 **** tmp = DECL_EXPR_DECL (t); if (VAR_P (tmp) && !DECL_ARTIFICIAL (tmp)) { ! if (TREE_STATIC (tmp)) { if (flags & tf_error) error_at (DECL_SOURCE_LOCATION (tmp), "%qD declared " ! "% in % context", tmp); return false; } ! else if (CP_DECL_THREAD_LOCAL_P (tmp)) { if (flags & tf_error) error_at (DECL_SOURCE_LOCATION (tmp), "%qD declared " ! "% in % context", tmp); return false; } else if (!check_for_uninitialized_const_var --- 8750,8767 ---- tmp = DECL_EXPR_DECL (t); if (VAR_P (tmp) && !DECL_ARTIFICIAL (tmp)) { ! if (CP_DECL_THREAD_LOCAL_P (tmp) && !DECL_REALLY_EXTERN (tmp)) { if (flags & tf_error) error_at (DECL_SOURCE_LOCATION (tmp), "%qD declared " ! "% in % context", tmp); return false; } ! else if (TREE_STATIC (tmp)) { if (flags & tf_error) error_at (DECL_SOURCE_LOCATION (tmp), "%qD declared " ! "% in % context", tmp); return false; } else if (!check_for_uninitialized_const_var *************** potential_constant_expression_1 (tree t, *** 8887,8894 **** case GOTO_EXPR: { tree *target = &TREE_OPERAND (t, 0); ! /* Gotos representing break and continue are OK. */ ! if (breaks (target) || continues (target)) { *jump_target = *target; return true; --- 9019,9026 ---- case GOTO_EXPR: { tree *target = &TREE_OPERAND (t, 0); ! /* Gotos representing break, continue and cdtor return are OK. */ ! if (breaks (target) || continues (target) || returns (target)) { *jump_target = *target; return true; *************** potential_constant_expression_1 (tree t, *** 8918,8923 **** --- 9050,9065 ---- case CO_RETURN_EXPR: return false; + case NONTYPE_ARGUMENT_PACK: + { + tree args = ARGUMENT_PACK_ARGS (t); + int len = TREE_VEC_LENGTH (args); + for (int i = 0; i < len; ++i) + if (!RECUR (TREE_VEC_ELT (args, i), any)) + return false; + return true; + } + default: if (objc_non_constant_expr_p (t)) return false; diff -Nrcpad gcc-11.2.0/gcc/cp/constraint.cc gcc-11.3.0/gcc/cp/constraint.cc *** gcc-11.2.0/gcc/cp/constraint.cc Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/cp/constraint.cc Thu Apr 21 07:58:53 2022 *************** get_normalized_constraints_from_decl (tr *** 933,945 **** tmpl = most_general_template (tmpl); } /* If we're not diagnosing errors, use cached constraints, if any. */ if (!diag) ! if (tree *p = hash_map_safe_get (normalized_map, tmpl)) return *p; tree norm = NULL_TREE; ! if (tree ci = get_constraints (decl)) { push_nested_class_guard pncs (DECL_CONTEXT (d)); --- 933,947 ---- tmpl = most_general_template (tmpl); } + d = tmpl ? tmpl : decl; + /* If we're not diagnosing errors, use cached constraints, if any. */ if (!diag) ! if (tree *p = hash_map_safe_get (normalized_map, d)) return *p; tree norm = NULL_TREE; ! if (tree ci = get_constraints (d)) { push_nested_class_guard pncs (DECL_CONTEXT (d)); *************** get_normalized_constraints_from_decl (tr *** 951,957 **** } if (!diag) ! hash_map_safe_put (normalized_map, tmpl, norm); return norm; } --- 953,959 ---- } if (!diag) ! hash_map_safe_put (normalized_map, d, norm); return norm; } *************** remove_constraints (tree t) *** 1286,1305 **** for declaration matching. */ tree ! maybe_substitute_reqs_for (tree reqs, const_tree decl_) { if (reqs == NULL_TREE) return NULL_TREE; ! tree decl = CONST_CAST_TREE (decl_); ! tree result = STRIP_TEMPLATE (decl); ! ! if (DECL_UNIQUE_FRIEND_P (result)) { ! tree tmpl = decl; ! if (TREE_CODE (decl) != TEMPLATE_DECL) ! tmpl = DECL_TI_TEMPLATE (result); ! tree gargs = generic_targs_for (tmpl); processing_template_decl_sentinel s; if (uses_template_parms (gargs)) --- 1288,1302 ---- for declaration matching. */ tree ! maybe_substitute_reqs_for (tree reqs, const_tree decl) { if (reqs == NULL_TREE) return NULL_TREE; ! decl = STRIP_TEMPLATE (decl); ! if (DECL_UNIQUE_FRIEND_P (decl) && DECL_TEMPLATE_INFO (decl)) { ! tree tmpl = DECL_TI_TEMPLATE (decl); tree gargs = generic_targs_for (tmpl); processing_template_decl_sentinel s; if (uses_template_parms (gargs)) *************** satisfaction_value (tree t) *** 2865,2871 **** return t; gcc_assert (TREE_CODE (t) == INTEGER_CST ! && same_type_p (TREE_TYPE (t), boolean_type_node)); if (integer_zerop (t)) return boolean_false_node; else --- 2862,2869 ---- return t; gcc_assert (TREE_CODE (t) == INTEGER_CST ! && same_type_ignoring_top_level_qualifiers_p (TREE_TYPE (t), ! boolean_type_node)); if (integer_zerop (t)) return boolean_false_node; else *************** satisfy_declaration_constraints (tree t, *** 3209,3220 **** set of template arguments. Augment this with the outer template arguments that were used to regenerate the lambda. */ gcc_assert (!args || TMPL_ARGS_DEPTH (args) == 1); ! tree lambda = CLASSTYPE_LAMBDA_EXPR (DECL_CONTEXT (t)); ! tree outer_args = TI_ARGS (LAMBDA_EXPR_REGEN_INFO (lambda)); if (args) ! args = add_to_template_args (outer_args, args); else ! args = outer_args; } /* If any arguments depend on template parameters, we can't --- 3207,3217 ---- set of template arguments. Augment this with the outer template arguments that were used to regenerate the lambda. */ gcc_assert (!args || TMPL_ARGS_DEPTH (args) == 1); ! tree regen_args = lambda_regenerating_args (t); if (args) ! args = add_to_template_args (regen_args, args); else ! args = regen_args; } /* If any arguments depend on template parameters, we can't *************** satisfy_declaration_constraints (tree t, *** 3232,3240 **** --- 3229,3239 ---- { if (!push_tinst_level (t)) return result; + push_to_top_level (); push_access_scope (t); result = satisfy_normalized_constraints (norm, args, info); pop_access_scope (t); + pop_from_top_level (); pop_tinst_level (); } *************** satisfy_declaration_constraints (tree t, *** 3290,3298 **** --- 3289,3299 ---- if (!push_tinst_level (t, args)) return result; tree pattern = DECL_TEMPLATE_RESULT (t); + push_to_top_level (); push_access_scope (pattern); result = satisfy_normalized_constraints (norm, args, info); pop_access_scope (pattern); + pop_from_top_level (); pop_tinst_level (); } diff -Nrcpad gcc-11.2.0/gcc/cp/coroutines.cc gcc-11.3.0/gcc/cp/coroutines.cc *** gcc-11.2.0/gcc/cp/coroutines.cc Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/cp/coroutines.cc Thu Apr 21 07:58:53 2022 *************** static GTY(()) tree coro_await_ready_ide *** 215,221 **** static GTY(()) tree coro_await_suspend_identifier; static GTY(()) tree coro_await_resume_identifier; ! /* Create the identifiers used by the coroutines library interfaces. */ static void coro_init_identifiers () --- 215,233 ---- static GTY(()) tree coro_await_suspend_identifier; static GTY(()) tree coro_await_resume_identifier; ! /* Accessors for the coroutine frame state used by the implementation. */ ! ! static GTY(()) tree coro_resume_fn_id; ! static GTY(()) tree coro_destroy_fn_id; ! static GTY(()) tree coro_promise_id; ! static GTY(()) tree coro_frame_needs_free_id; ! static GTY(()) tree coro_resume_index_id; ! static GTY(()) tree coro_self_handle_id; ! static GTY(()) tree coro_actor_continue_id; ! static GTY(()) tree coro_frame_i_a_r_c_id; ! ! /* Create the identifiers used by the coroutines library interfaces and ! the implementation frame state. */ static void coro_init_identifiers () *************** coro_init_identifiers () *** 241,246 **** --- 253,268 ---- coro_await_ready_identifier = get_identifier ("await_ready"); coro_await_suspend_identifier = get_identifier ("await_suspend"); coro_await_resume_identifier = get_identifier ("await_resume"); + + /* Coroutine state frame field accessors. */ + coro_resume_fn_id = get_identifier ("_Coro_resume_fn"); + coro_destroy_fn_id = get_identifier ("_Coro_destroy_fn"); + coro_promise_id = get_identifier ("_Coro_promise"); + coro_frame_needs_free_id = get_identifier ("_Coro_frame_needs_free"); + coro_frame_i_a_r_c_id = get_identifier ("_Coro_initial_await_resume_called"); + coro_resume_index_id = get_identifier ("_Coro_resume_index"); + coro_self_handle_id = get_identifier ("_Coro_self_handle"); + coro_actor_continue_id = get_identifier ("_Coro_actor_continue"); } /* Trees we only need to set up once. */ *************** coro_promise_type_found_p (tree fndecl, *** 513,524 **** /* Build a proxy for a handle to "self" as the param to await_suspend() calls. */ coro_info->self_h_proxy ! = build_lang_decl (VAR_DECL, get_identifier ("self_h.proxy"), coro_info->handle_type); /* Build a proxy for the promise so that we can perform lookups. */ coro_info->promise_proxy ! = build_lang_decl (VAR_DECL, get_identifier ("promise.proxy"), coro_info->promise_type); /* Note where we first saw a coroutine keyword. */ --- 535,546 ---- /* Build a proxy for a handle to "self" as the param to await_suspend() calls. */ coro_info->self_h_proxy ! = build_lang_decl (VAR_DECL, coro_self_handle_id, coro_info->handle_type); /* Build a proxy for the promise so that we can perform lookups. */ coro_info->promise_proxy ! = build_lang_decl (VAR_DECL, coro_promise_id, coro_info->promise_type); /* Note where we first saw a coroutine keyword. */ *************** build_co_await (location_t loc, tree a, *** 992,1009 **** e_proxy = o; o = NULL_TREE; /* The var is already present. */ } - else if (type_build_ctor_call (o_type)) - { - e_proxy = get_awaitable_var (suspend_kind, o_type); - releasing_vec arg (make_tree_vector_single (rvalue (o))); - o = build_special_member_call (e_proxy, complete_ctor_identifier, - &arg, o_type, LOOKUP_NORMAL, - tf_warning_or_error); - } else { e_proxy = get_awaitable_var (suspend_kind, o_type); ! o = build2 (INIT_EXPR, o_type, e_proxy, rvalue (o)); } /* I suppose we could check that this is contextually convertible to bool. */ --- 1014,1024 ---- e_proxy = o; o = NULL_TREE; /* The var is already present. */ } else { e_proxy = get_awaitable_var (suspend_kind, o_type); ! o = cp_build_modify_expr (loc, e_proxy, INIT_EXPR, o, ! tf_warning_or_error); } /* I suppose we could check that this is contextually convertible to bool. */ *************** coro_build_cvt_void_expr_stmt (tree expr *** 1481,1486 **** --- 1496,1524 ---- return coro_build_expr_stmt (t, loc); } + /* Helpers to build an artificial var, with location LOC, NAME and TYPE, in + CTX, and with initializer INIT. */ + + static tree + coro_build_artificial_var (location_t loc, tree name, tree type, tree ctx, + tree init) + { + tree res = build_lang_decl (VAR_DECL, name, type); + DECL_SOURCE_LOCATION (res) = loc; + DECL_CONTEXT (res) = ctx; + DECL_ARTIFICIAL (res) = true; + DECL_INITIAL (res) = init; + return res; + } + + static tree + coro_build_artificial_var (location_t loc, const char *name, tree type, + tree ctx, tree init) + { + return coro_build_artificial_var (loc, get_identifier (name), + type, ctx, init); + } + /* Helpers for label creation: 1. Create a named label in the specified context. */ *************** struct await_xform_data *** 1849,1858 **** { tree actor_fn; /* Decl for context. */ tree actor_frame; - tree promise_proxy; - tree real_promise; - tree self_h_proxy; - tree real_self_h; }; /* When we built the await expressions, we didn't know the coro frame --- 1887,1892 ---- *************** transform_await_expr (tree await_expr, a *** 1873,1879 **** /* So, on entry, we have: in : CO_AWAIT_EXPR (a, e_proxy, o, awr_call_vector, mode) We no longer need a [it had diagnostic value, maybe?] - We need to replace the promise proxy in all elements We need to replace the e_proxy in the awr_call. */ tree coro_frame_type = TREE_TYPE (xform->actor_frame); --- 1907,1912 ---- *************** transform_await_expr (tree await_expr, a *** 1899,1914 **** TREE_OPERAND (await_expr, 1) = as; } - /* Now do the self_handle. */ - data.from = xform->self_h_proxy; - data.to = xform->real_self_h; - cp_walk_tree (&await_expr, replace_proxy, &data, NULL); - - /* Now do the promise. */ - data.from = xform->promise_proxy; - data.to = xform->real_promise; - cp_walk_tree (&await_expr, replace_proxy, &data, NULL); - return await_expr; } --- 1932,1937 ---- *************** transform_await_wrapper (tree *stmt, int *** 1942,1947 **** --- 1965,1971 ---- struct param_info { tree field_id; /* The name of the copy in the coroutine frame. */ + tree copy_var; /* The local var proxy for the frame copy. */ vec *body_uses; /* Worklist of uses, void if there are none. */ tree frame_type; /* The type used to represent this parm in the frame. */ tree orig_type; /* The original type of the parm (not as passed). */ *************** transform_local_var_uses (tree *stmt, in *** 1982,1989 **** local_vars_transform *lvd = (local_vars_transform *) d; /* For each var in this bind expr (that has a frame id, which means it was ! accessed), build a frame reference for each and then walk the bind expr ! statements, substituting the frame ref for the original var. */ if (TREE_CODE (*stmt) == BIND_EXPR) { --- 2006,2012 ---- local_vars_transform *lvd = (local_vars_transform *) d; /* For each var in this bind expr (that has a frame id, which means it was ! accessed), build a frame reference and add it as the DECL_VALUE_EXPR. */ if (TREE_CODE (*stmt) == BIND_EXPR) { *************** transform_local_var_uses (tree *stmt, in *** 1999,2011 **** /* Re-write the variable's context to be in the actor func. */ DECL_CONTEXT (lvar) = lvd->context; ! /* For capture proxies, this could include the decl value expr. */ ! if (local_var.is_lambda_capture || local_var.has_value_expr_p) ! { ! tree ve = DECL_VALUE_EXPR (lvar); ! cp_walk_tree (&ve, transform_local_var_uses, d, NULL); continue; /* No frame entry for this. */ - } /* TODO: implement selective generation of fields when vars are known not-used. */ --- 2022,2030 ---- /* Re-write the variable's context to be in the actor func. */ DECL_CONTEXT (lvar) = lvd->context; ! /* For capture proxies, this could include the decl value expr. */ ! if (local_var.is_lambda_capture || local_var.has_value_expr_p) continue; /* No frame entry for this. */ /* TODO: implement selective generation of fields when vars are known not-used. */ *************** transform_local_var_uses (tree *stmt, in *** 2019,2121 **** tree fld_idx = build3_loc (lvd->loc, COMPONENT_REF, TREE_TYPE (lvar), lvd->actor_frame, fld_ref, NULL_TREE); local_var.field_idx = fld_idx; ! } ! /* FIXME: we should be able to do this in the loop above, but (at least ! for range for) there are cases where the DECL_INITIAL contains ! forward references. ! So, now we've built the revised var in the frame, substitute uses of ! it in initializers and the bind expr body. */ ! for (lvar = BIND_EXPR_VARS (*stmt); lvar != NULL; ! lvar = DECL_CHAIN (lvar)) ! { ! /* we need to walk some of the decl trees, which might contain ! references to vars replaced at a higher level. */ ! cp_walk_tree (&DECL_INITIAL (lvar), transform_local_var_uses, d, ! NULL); ! cp_walk_tree (&DECL_SIZE (lvar), transform_local_var_uses, d, NULL); ! cp_walk_tree (&DECL_SIZE_UNIT (lvar), transform_local_var_uses, d, ! NULL); } cp_walk_tree (&BIND_EXPR_BODY (*stmt), transform_local_var_uses, d, NULL); - - /* Now we have processed and removed references to the original vars, - we can drop those from the bind - leaving capture proxies alone. */ - for (tree *pvar = &BIND_EXPR_VARS (*stmt); *pvar != NULL;) - { - bool existed; - local_var_info &local_var - = lvd->local_var_uses->get_or_insert (*pvar, &existed); - gcc_checking_assert (existed); - - /* Leave lambda closure captures alone, we replace the *this - pointer with the frame version and let the normal process - deal with the rest. - Likewise, variables with their value found elsewhere. - Skip past unused ones too. */ - if (local_var.is_lambda_capture - || local_var.has_value_expr_p - || local_var.field_id == NULL_TREE) - { - pvar = &DECL_CHAIN (*pvar); - continue; - } - - /* Discard this one, we replaced it. */ - *pvar = DECL_CHAIN (*pvar); - } - *do_subtree = 0; /* We've done the body already. */ return NULL_TREE; } - - tree var_decl = *stmt; - /* Look inside cleanups, we don't want to wrap a statement list in a - cleanup. */ - bool needs_cleanup = true; - if (TREE_CODE (var_decl) == CLEANUP_POINT_EXPR) - var_decl = TREE_OPERAND (var_decl, 0); - else - needs_cleanup = false; - - /* Look inside the decl_expr for the actual var. */ - bool decl_expr_p = TREE_CODE (var_decl) == DECL_EXPR; - if (decl_expr_p && TREE_CODE (DECL_EXPR_DECL (var_decl)) == VAR_DECL) - var_decl = DECL_EXPR_DECL (var_decl); - else if (TREE_CODE (var_decl) != VAR_DECL) - return NULL_TREE; - - /* VAR_DECLs that are not recorded can belong to the proxies we've placed - for the promise and coroutine handle(s), to global vars or to compiler - temporaries. Skip past these, we will handle them later. */ - local_var_info *local_var_i = lvd->local_var_uses->get (var_decl); - - if (local_var_i == NULL) - return NULL_TREE; - - if (local_var_i->is_lambda_capture - || local_var_i->is_static - || local_var_i->has_value_expr_p) - return NULL_TREE; - - /* This is our revised 'local' i.e. a frame slot. */ - tree revised = local_var_i->field_idx; - gcc_checking_assert (DECL_CONTEXT (var_decl) == lvd->context); - - if (decl_expr_p && DECL_INITIAL (var_decl)) - { - location_t loc = DECL_SOURCE_LOCATION (var_decl); - tree r - = cp_build_modify_expr (loc, revised, INIT_EXPR, - DECL_INITIAL (var_decl), tf_warning_or_error); - if (needs_cleanup) - r = coro_build_cvt_void_expr_stmt (r, EXPR_LOCATION (*stmt)); - *stmt = r; - } - else - *stmt = revised; - - if (decl_expr_p) - *do_subtree = 0; /* We've accounted for the nested use. */ return NULL_TREE; } --- 2038,2050 ---- tree fld_idx = build3_loc (lvd->loc, COMPONENT_REF, TREE_TYPE (lvar), lvd->actor_frame, fld_ref, NULL_TREE); local_var.field_idx = fld_idx; ! SET_DECL_VALUE_EXPR (lvar, fld_idx); ! DECL_HAS_VALUE_EXPR_P (lvar) = true; } cp_walk_tree (&BIND_EXPR_BODY (*stmt), transform_local_var_uses, d, NULL); *do_subtree = 0; /* We've done the body already. */ return NULL_TREE; } return NULL_TREE; } *************** coro_get_frame_dtor (tree coro_fp, tree *** 2190,2204 **** static void build_actor_fn (location_t loc, tree coro_frame_type, tree actor, tree fnbody, ! tree orig, hash_map *param_uses, ! hash_map *local_var_uses, ! vec *param_dtor_list, tree resume_fn_field, ! tree resume_idx_field, unsigned body_count, tree frame_size) { verify_stmt_tree (fnbody); /* Some things we inherit from the original function. */ tree handle_type = get_coroutine_handle_type (orig); - tree self_h_proxy = get_coroutine_self_handle_proxy (orig); tree promise_type = get_coroutine_promise_type (orig); tree promise_proxy = get_coroutine_promise_proxy (orig); --- 2119,2131 ---- static void build_actor_fn (location_t loc, tree coro_frame_type, tree actor, tree fnbody, ! tree orig, hash_map *local_var_uses, ! vec *param_dtor_list, ! tree resume_idx_var, unsigned body_count, tree frame_size) { verify_stmt_tree (fnbody); /* Some things we inherit from the original function. */ tree handle_type = get_coroutine_handle_type (orig); tree promise_type = get_coroutine_promise_type (orig); tree promise_proxy = get_coroutine_promise_proxy (orig); *************** build_actor_fn (location_t loc, tree cor *** 2216,2228 **** tree top_block = make_node (BLOCK); BIND_EXPR_BLOCK (actor_bind) = top_block; ! tree continuation = build_lang_decl (VAR_DECL, ! get_identifier ("actor.continue"), ! void_coro_handle_type); ! DECL_ARTIFICIAL (continuation) = 1; ! DECL_IGNORED_P (continuation) = 1; ! DECL_CONTEXT (continuation) = actor; BIND_EXPR_VARS (actor_bind) = continuation; /* Link in the block associated with the outer scope of the re-written function body. */ --- 2143,2154 ---- tree top_block = make_node (BLOCK); BIND_EXPR_BLOCK (actor_bind) = top_block; ! tree continuation = coro_build_artificial_var (loc, coro_actor_continue_id, ! void_coro_handle_type, actor, ! NULL_TREE); ! BIND_EXPR_VARS (actor_bind) = continuation; + BLOCK_VARS (top_block) = BIND_EXPR_VARS (actor_bind) ; /* Link in the block associated with the outer scope of the re-written function body. */ *************** build_actor_fn (location_t loc, tree cor *** 2245,2288 **** /* Declare the continuation handle. */ add_decl_expr (continuation); - /* Re-write param references in the body, no code should be generated - here. */ - if (DECL_ARGUMENTS (orig)) - { - tree arg; - for (arg = DECL_ARGUMENTS (orig); arg != NULL; arg = DECL_CHAIN (arg)) - { - bool existed; - param_info &parm = param_uses->get_or_insert (arg, &existed); - if (!parm.body_uses) - continue; /* Wasn't used in the original function body. */ - - tree fld_ref = lookup_member (coro_frame_type, parm.field_id, - /*protect=*/1, /*want_type=*/0, - tf_warning_or_error); - tree fld_idx = build3_loc (loc, COMPONENT_REF, parm.frame_type, - actor_frame, fld_ref, NULL_TREE); - - /* We keep these in the frame as a regular pointer, so convert that - back to the type expected. */ - if (parm.pt_ref) - fld_idx = build1_loc (loc, CONVERT_EXPR, TREE_TYPE (arg), fld_idx); - - int i; - tree *puse; - FOR_EACH_VEC_ELT (*parm.body_uses, i, puse) - *puse = fld_idx; - } - } - /* Re-write local vars, similarly. */ local_vars_transform xform_vars_data = {actor, actor_frame, coro_frame_type, loc, local_var_uses}; cp_walk_tree (&fnbody, transform_local_var_uses, &xform_vars_data, NULL); ! tree resume_idx_name = get_identifier ("__resume_at"); ! tree rat_field = lookup_member (coro_frame_type, resume_idx_name, 1, 0, ! tf_warning_or_error); tree rat = build3 (COMPONENT_REF, short_unsigned_type_node, actor_frame, rat_field, NULL_TREE); --- 2171,2183 ---- /* Declare the continuation handle. */ add_decl_expr (continuation); /* Re-write local vars, similarly. */ local_vars_transform xform_vars_data = {actor, actor_frame, coro_frame_type, loc, local_var_uses}; cp_walk_tree (&fnbody, transform_local_var_uses, &xform_vars_data, NULL); ! tree rat_field = lookup_member (coro_frame_type, coro_resume_index_id, ! 1, 0, tf_warning_or_error); tree rat = build3 (COMPONENT_REF, short_unsigned_type_node, actor_frame, rat_field, NULL_TREE); *************** build_actor_fn (location_t loc, tree cor *** 2339,2344 **** --- 2234,2240 ---- finish_switch_stmt (destroy_dispatcher); finish_then_clause (lsb_if); + begin_else_clause (lsb_if); tree dispatcher = begin_switch_stmt (); finish_switch_cond (rat, dispatcher); *************** build_actor_fn (location_t loc, tree cor *** 2376,2395 **** /* Insert the prototype dispatcher. */ finish_switch_stmt (dispatcher); finish_if_stmt (lsb_if); tree r = build_stmt (loc, LABEL_EXPR, actor_begin_label); add_stmt (r); - /* actor's version of the promise. */ - tree ap_m = lookup_member (coro_frame_type, get_identifier ("__p"), 1, 0, - tf_warning_or_error); - tree ap = build_class_member_access_expr (actor_frame, ap_m, NULL_TREE, false, - tf_warning_or_error); - /* actor's coroutine 'self handle'. */ ! tree ash_m = lookup_member (coro_frame_type, get_identifier ("__self_h"), 1, 0, tf_warning_or_error); tree ash = build_class_member_access_expr (actor_frame, ash_m, NULL_TREE, false, tf_warning_or_error); --- 2272,2286 ---- /* Insert the prototype dispatcher. */ finish_switch_stmt (dispatcher); + finish_else_clause (lsb_if); finish_if_stmt (lsb_if); tree r = build_stmt (loc, LABEL_EXPR, actor_begin_label); add_stmt (r); /* actor's coroutine 'self handle'. */ ! tree ash_m = lookup_member (coro_frame_type, coro_self_handle_id, 1, 0, tf_warning_or_error); tree ash = build_class_member_access_expr (actor_frame, ash_m, NULL_TREE, false, tf_warning_or_error); *************** build_actor_fn (location_t loc, tree cor *** 2409,2445 **** /* Now we know the real promise, and enough about the frame layout to decide where to put things. */ ! await_xform_data xform ! = {actor, actor_frame, promise_proxy, ap, self_h_proxy, ash}; /* Transform the await expressions in the function body. Only do each await tree once! */ hash_set pset; cp_walk_tree (&fnbody, transform_await_wrapper, &xform, &pset); - /* Now replace the promise proxy with its real value. */ - proxy_replace p_data; - p_data.from = promise_proxy; - p_data.to = ap; - cp_walk_tree (&fnbody, replace_proxy, &p_data, NULL); - - /* The rewrite of the function adds code to set the __resume field to - nullptr when the coroutine is done and also the index to zero when - calling an unhandled exception. These are represented by two proxies - in the function, so rewrite them to the proper frame access. */ - tree resume_m - = lookup_member (coro_frame_type, get_identifier ("__resume"), - /*protect=*/1, /*want_type=*/0, tf_warning_or_error); - tree res_x = build_class_member_access_expr (actor_frame, resume_m, NULL_TREE, - false, tf_warning_or_error); - p_data.from = resume_fn_field; - p_data.to = res_x; - cp_walk_tree (&fnbody, replace_proxy, &p_data, NULL); - - p_data.from = resume_idx_field; - p_data.to = rat; - cp_walk_tree (&fnbody, replace_proxy, &p_data, NULL); - /* Add in our function body with the co_returns rewritten to final form. */ add_stmt (fnbody); --- 2300,2312 ---- /* Now we know the real promise, and enough about the frame layout to decide where to put things. */ ! await_xform_data xform = {actor, actor_frame}; /* Transform the await expressions in the function body. Only do each await tree once! */ hash_set pset; cp_walk_tree (&fnbody, transform_await_wrapper, &xform, &pset); /* Add in our function body with the co_returns rewritten to final form. */ add_stmt (fnbody); *************** build_actor_fn (location_t loc, tree cor *** 2448,2454 **** add_stmt (r); /* Destructors for the things we built explicitly. */ ! r = build_special_member_call (ap, complete_dtor_identifier, NULL, promise_type, LOOKUP_NORMAL, tf_warning_or_error); add_stmt (r); --- 2315,2321 ---- add_stmt (r); /* Destructors for the things we built explicitly. */ ! r = build_special_member_call (promise_proxy, complete_dtor_identifier, NULL, promise_type, LOOKUP_NORMAL, tf_warning_or_error); add_stmt (r); *************** build_actor_fn (location_t loc, tree cor *** 2461,2467 **** /* Here deallocate the frame (if we allocated it), which we will have at present. */ tree fnf_m ! = lookup_member (coro_frame_type, get_identifier ("__frame_needs_free"), 1, 0, tf_warning_or_error); tree fnf2_x = build_class_member_access_expr (actor_frame, fnf_m, NULL_TREE, false, tf_warning_or_error); --- 2328,2334 ---- /* Here deallocate the frame (if we allocated it), which we will have at present. */ tree fnf_m ! = lookup_member (coro_frame_type, coro_frame_needs_free_id, 1, 0, tf_warning_or_error); tree fnf2_x = build_class_member_access_expr (actor_frame, fnf_m, NULL_TREE, false, tf_warning_or_error); *************** build_actor_fn (location_t loc, tree cor *** 2540,2557 **** gcc_checking_assert (maybe_cleanup_point_expr_void (r) == r); add_stmt (r); - /* We will need to know which resume point number should be encoded. */ - tree res_idx_m - = lookup_member (coro_frame_type, resume_idx_name, - /*protect=*/1, /*want_type=*/0, tf_warning_or_error); - tree resume_pt_number - = build_class_member_access_expr (actor_frame, res_idx_m, NULL_TREE, false, - tf_warning_or_error); - /* We've now rewritten the tree and added the initial and final co_awaits. Now pass over the tree and expand the co_awaits. */ ! coro_aw_data data = {actor, actor_fp, resume_pt_number, NULL_TREE, ash, del_promise_label, ret_label, continue_label, continuation, 2}; cp_walk_tree (&actor_body, await_statement_expander, &data, NULL); --- 2407,2416 ---- gcc_checking_assert (maybe_cleanup_point_expr_void (r) == r); add_stmt (r); /* We've now rewritten the tree and added the initial and final co_awaits. Now pass over the tree and expand the co_awaits. */ ! coro_aw_data data = {actor, actor_fp, resume_idx_var, NULL_TREE, ash, del_promise_label, ret_label, continue_label, continuation, 2}; cp_walk_tree (&actor_body, await_statement_expander, &data, NULL); *************** build_actor_fn (location_t loc, tree cor *** 2565,2571 **** } /* The prototype 'destroy' function : ! frame->__resume_at |= 1; actor (frame); */ static void --- 2424,2430 ---- } /* The prototype 'destroy' function : ! frame->__Coro_resume_index |= 1; actor (frame); */ static void *************** build_destroy_fn (location_t loc, tree c *** 2584,2594 **** tree destr_frame = build1 (INDIRECT_REF, coro_frame_type, destr_fp); ! tree resume_idx_name = get_identifier ("__resume_at"); ! tree rat_field = lookup_member (coro_frame_type, resume_idx_name, 1, 0, ! tf_warning_or_error); ! tree rat = build3 (COMPONENT_REF, short_unsigned_type_node, destr_frame, ! rat_field, NULL_TREE); /* _resume_at |= 1 */ tree dstr_idx = build2 (BIT_IOR_EXPR, short_unsigned_type_node, rat, --- 2443,2452 ---- tree destr_frame = build1 (INDIRECT_REF, coro_frame_type, destr_fp); ! tree rat_field = lookup_member (coro_frame_type, coro_resume_index_id, ! 1, 0, tf_warning_or_error); ! tree rat = build3 (COMPONENT_REF, short_unsigned_type_node, ! destr_frame, rat_field, NULL_TREE); /* _resume_at |= 1 */ tree dstr_idx = build2 (BIT_IOR_EXPR, short_unsigned_type_node, rat, *************** flatten_await_stmt (var_nest_node *n, ha *** 3017,3031 **** gcc_checking_assert (!already_present); tree inner = TREE_OPERAND (init, 1); gcc_checking_assert (TREE_CODE (inner) != COND_EXPR); ! if (type_build_ctor_call (var_type)) ! { ! releasing_vec p_in (make_tree_vector_single (init)); ! init = build_special_member_call (var, complete_ctor_identifier, ! &p_in, var_type, LOOKUP_NORMAL, ! tf_warning_or_error); ! } ! else ! init = build2 (INIT_EXPR, var_type, var, init); /* Simplify for the case that we have an init containing the temp alone. */ if (t == n->init && n->var == NULL_TREE) --- 2875,2882 ---- gcc_checking_assert (!already_present); tree inner = TREE_OPERAND (init, 1); gcc_checking_assert (TREE_CODE (inner) != COND_EXPR); ! init = cp_build_modify_expr (input_location, var, INIT_EXPR, init, ! tf_warning_or_error); /* Simplify for the case that we have an init containing the temp alone. */ if (t == n->init && n->var == NULL_TREE) *************** await_statement_walker (tree *stmt, int *** 3840,3847 **** the parameter to return_value(). */ if (!maybe_await_stmt) maybe_await_stmt = tsi_stmt_ptr (tsi_last (ret_list)); ! expr = build1_loc (loc, GOTO_EXPR, void_type_node, awpts->fs_label); ! finish_expr_stmt (expr); *stmt = pop_stmt_list (ret_list); /* Once this is complete, we will have processed subtrees. */ *do_subtree = 0; --- 3691,3698 ---- the parameter to return_value(). */ if (!maybe_await_stmt) maybe_await_stmt = tsi_stmt_ptr (tsi_last (ret_list)); ! TREE_USED (awpts->fs_label) = 1; ! add_stmt (build_stmt (loc, GOTO_EXPR, awpts->fs_label)); *stmt = pop_stmt_list (ret_list); /* Once this is complete, we will have processed subtrees. */ *do_subtree = 0; *************** struct param_frame_data *** 3893,3903 **** bool param_seen; }; ! /* A tree-walk callback that records the use of parameters (to allow for ! optimizations where handling unused parameters may be omitted). */ static tree ! register_param_uses (tree *stmt, int *do_subtree ATTRIBUTE_UNUSED, void *d) { param_frame_data *data = (param_frame_data *) d; --- 3744,3754 ---- bool param_seen; }; ! /* A tree walk callback that rewrites each parm use to the local variable ! that represents its copy in the frame. */ static tree ! rewrite_param_uses (tree *stmt, int *do_subtree ATTRIBUTE_UNUSED, void *d) { param_frame_data *data = (param_frame_data *) d; *************** register_param_uses (tree *stmt, int *do *** 3905,3911 **** if (TREE_CODE (*stmt) == VAR_DECL && DECL_HAS_VALUE_EXPR_P (*stmt)) { tree t = DECL_VALUE_EXPR (*stmt); ! return cp_walk_tree (&t, register_param_uses, d, NULL); } if (TREE_CODE (*stmt) != PARM_DECL) --- 3756,3762 ---- if (TREE_CODE (*stmt) == VAR_DECL && DECL_HAS_VALUE_EXPR_P (*stmt)) { tree t = DECL_VALUE_EXPR (*stmt); ! return cp_walk_tree (&t, rewrite_param_uses, d, NULL); } if (TREE_CODE (*stmt) != PARM_DECL) *************** register_param_uses (tree *stmt, int *do *** 3919,3934 **** param_info &parm = data->param_uses->get_or_insert (*stmt, &existed); gcc_checking_assert (existed); ! if (!parm.body_uses) { ! vec_alloc (parm.body_uses, 4); ! parm.body_uses->quick_push (stmt); ! data->param_seen = true; } - else - parm.body_uses->safe_push (stmt); ! return NULL_TREE; } /* Small helper for the repetitive task of adding a new field to the coro --- 3770,3857 ---- param_info &parm = data->param_uses->get_or_insert (*stmt, &existed); gcc_checking_assert (existed); ! *stmt = parm.copy_var; ! return NULL_TREE; ! } ! ! /* Build up a set of info that determines how each param copy will be ! handled. */ ! ! static hash_map * ! analyze_fn_parms (tree orig) ! { ! if (!DECL_ARGUMENTS (orig)) ! return NULL; ! ! hash_map *param_uses = new hash_map; ! ! /* Build a hash map with an entry for each param. ! The key is the param tree. ! Then we have an entry for the frame field name. ! Then a cache for the field ref when we come to use it. ! Then a tree list of the uses. ! The second two entries start out empty - and only get populated ! when we see uses. */ ! bool lambda_p = LAMBDA_FUNCTION_P (orig); ! ! unsigned no_name_parm = 0; ! for (tree arg = DECL_ARGUMENTS (orig); arg != NULL; arg = DECL_CHAIN (arg)) { ! bool existed; ! param_info &parm = param_uses->get_or_insert (arg, &existed); ! gcc_checking_assert (!existed); ! parm.body_uses = NULL; ! tree actual_type = TREE_TYPE (arg); ! actual_type = complete_type_or_else (actual_type, orig); ! if (actual_type == NULL_TREE) ! actual_type = error_mark_node; ! parm.orig_type = actual_type; ! parm.by_ref = parm.pt_ref = parm.rv_ref = false; ! if (TREE_CODE (actual_type) == REFERENCE_TYPE) ! { ! /* If the user passes by reference, then we will save the ! pointer to the original. As noted in ! [dcl.fct.def.coroutine] / 13, if the lifetime of the ! referenced item ends and then the coroutine is resumed, ! we have UB; well, the user asked for it. */ ! if (TYPE_REF_IS_RVALUE (actual_type)) ! parm.rv_ref = true; ! else ! parm.pt_ref = true; ! } ! else if (TYPE_REF_P (DECL_ARG_TYPE (arg))) ! parm.by_ref = true; ! ! parm.frame_type = actual_type; ! ! parm.this_ptr = is_this_parameter (arg); ! parm.lambda_cobj = lambda_p && DECL_NAME (arg) == closure_identifier; ! ! tree name = DECL_NAME (arg); ! if (!name) ! { ! char *buf = xasprintf ("_Coro_unnamed_parm_%d", no_name_parm++); ! name = get_identifier (buf); ! free (buf); ! } ! parm.field_id = name; ! ! if (TYPE_HAS_NONTRIVIAL_DESTRUCTOR (parm.frame_type)) ! { ! char *buf = xasprintf ("%s%s_live", DECL_NAME (arg) ? "_Coro_" : "", ! IDENTIFIER_POINTER (name)); ! parm.guard_var ! = coro_build_artificial_var (UNKNOWN_LOCATION, get_identifier (buf), ! boolean_type_node, orig, ! boolean_false_node); ! free (buf); ! parm.trivial_dtor = false; ! } ! else ! parm.trivial_dtor = true; } ! return param_uses; } /* Small helper for the repetitive task of adding a new field to the coro *************** register_local_var_uses (tree *stmt, int *** 3973,3980 **** if (TREE_CODE (*stmt) == BIND_EXPR) { - lvd->bind_indx++; - lvd->nest_depth++; tree lvar; for (lvar = BIND_EXPR_VARS (*stmt); lvar != NULL; lvar = DECL_CHAIN (lvar)) --- 3896,3901 ---- *************** register_local_var_uses (tree *stmt, int *** 4013,4026 **** continue; /* Make names depth+index unique, so that we can support nested ! scopes with identically named locals. */ tree lvname = DECL_NAME (lvar); char *buf; ! if (lvname != NULL_TREE) ! buf = xasprintf ("__%s.%u.%u", IDENTIFIER_POINTER (lvname), lvd->nest_depth, lvd->bind_indx); else ! buf = xasprintf ("_D%u.%u.%u", DECL_UID (lvar), lvd->nest_depth, lvd->bind_indx); /* TODO: Figure out if we should build a local type that has any excess alignment or size from the original decl. */ --- 3934,3954 ---- continue; /* Make names depth+index unique, so that we can support nested ! scopes with identically named locals and still be able to ! identify them in the coroutine frame. */ tree lvname = DECL_NAME (lvar); char *buf; ! ! /* The outermost bind scope contains the artificial variables that ! we inject to implement the coro state machine. We want to be able ! to inspect these in debugging. */ ! if (lvname != NULL_TREE && lvd->nest_depth == 0) ! buf = xasprintf ("%s", IDENTIFIER_POINTER (lvname)); ! else if (lvname != NULL_TREE) ! buf = xasprintf ("%s_%u_%u", IDENTIFIER_POINTER (lvname), lvd->nest_depth, lvd->bind_indx); else ! buf = xasprintf ("_D%u_%u_%u", DECL_UID (lvar), lvd->nest_depth, lvd->bind_indx); /* TODO: Figure out if we should build a local type that has any excess alignment or size from the original decl. */ *************** register_local_var_uses (tree *stmt, int *** 4030,4035 **** --- 3958,3965 ---- /* We don't walk any of the local var sub-trees, they won't contain any bind exprs. */ } + lvd->bind_indx++; + lvd->nest_depth++; cp_walk_tree (&BIND_EXPR_BODY (*stmt), register_local_var_uses, d, NULL); *do_subtree = 0; /* We've done this. */ lvd->nest_depth--; *************** coro_build_actor_or_destroy_function (tr *** 4105,4112 **** static tree coro_rewrite_function_body (location_t fn_start, tree fnbody, tree orig, ! tree resume_fn_ptr_type, tree& resume_fn_field, ! tree& resume_idx_field, tree& fs_label) { /* This will be our new outer scope. */ tree update_body = build3 (BIND_EXPR, void_type_node, NULL, NULL, NULL); --- 4035,4043 ---- static tree coro_rewrite_function_body (location_t fn_start, tree fnbody, tree orig, ! hash_map *param_uses, ! tree resume_fn_ptr_type, ! tree& resume_idx_var, tree& fs_label) { /* This will be our new outer scope. */ tree update_body = build3 (BIND_EXPR, void_type_node, NULL, NULL, NULL); *************** coro_rewrite_function_body (location_t f *** 4139,4145 **** /* Wrap the function body in a try {} catch (...) {} block, if exceptions are enabled. */ - tree promise = get_coroutine_promise_proxy (orig); tree var_list = NULL_TREE; tree initial_await = build_init_or_final_await (fn_start, false); --- 4070,4075 ---- *************** coro_rewrite_function_body (location_t f *** 4150,4173 **** tree return_void = get_coroutine_return_void_expr (current_function_decl, fn_start, false); /* We will need to be able to set the resume function pointer to nullptr to signal that the coroutine is 'done'. */ - resume_fn_field - = build_lang_decl (VAR_DECL, get_identifier ("resume.fn.ptr.proxy"), - resume_fn_ptr_type); - DECL_ARTIFICIAL (resume_fn_field) = true; tree zero_resume = build1 (CONVERT_EXPR, resume_fn_ptr_type, integer_zero_node); ! zero_resume ! = build2 (INIT_EXPR, resume_fn_ptr_type, resume_fn_field, zero_resume); ! /* Likewise, the resume index needs to be reset. */ ! resume_idx_field ! = build_lang_decl (VAR_DECL, get_identifier ("resume.index.proxy"), ! short_unsigned_type_node); ! DECL_ARTIFICIAL (resume_idx_field) = true; ! tree zero_resume_idx = build_int_cst (short_unsigned_type_node, 0); ! zero_resume_idx = build2 (INIT_EXPR, short_unsigned_type_node, ! resume_idx_field, zero_resume_idx); if (flag_exceptions) { --- 4080,4173 ---- tree return_void = get_coroutine_return_void_expr (current_function_decl, fn_start, false); + /* The pointer to the resume function. */ + tree resume_fn_ptr + = coro_build_artificial_var (fn_start, coro_resume_fn_id, + resume_fn_ptr_type, orig, NULL_TREE); + DECL_CHAIN (resume_fn_ptr) = var_list; + var_list = resume_fn_ptr; + add_decl_expr (resume_fn_ptr); + /* We will need to be able to set the resume function pointer to nullptr to signal that the coroutine is 'done'. */ tree zero_resume = build1 (CONVERT_EXPR, resume_fn_ptr_type, integer_zero_node); ! ! /* The pointer to the destroy function. */ ! tree var = coro_build_artificial_var (fn_start, coro_destroy_fn_id, ! resume_fn_ptr_type, orig, NULL_TREE); ! DECL_CHAIN (var) = var_list; ! var_list = var; ! add_decl_expr (var); ! ! /* The promise was created on demand when parsing we now link it into ! our scope. */ ! tree promise = get_coroutine_promise_proxy (orig); ! DECL_CONTEXT (promise) = orig; ! DECL_SOURCE_LOCATION (promise) = fn_start; ! DECL_CHAIN (promise) = var_list; ! var_list = promise; ! add_decl_expr (promise); ! ! /* We need a handle to this coroutine, which is passed to every ! await_suspend(). This was created on demand when parsing we now link it ! into our scope. */ ! var = get_coroutine_self_handle_proxy (orig); ! DECL_CONTEXT (var) = orig; ! DECL_SOURCE_LOCATION (var) = fn_start; ! DECL_CHAIN (var) = var_list; ! var_list = var; ! add_decl_expr (var); ! ! /* If we have function parms, then these will be copied to the coroutine ! frame. Create a local (proxy) variable for each parm, since the original ! parms will be out of scope once the ramp has finished. The proxy vars will ! get DECL_VALUE_EXPRs pointing to the frame copies, so that we can interact ! with them in the debugger. */ ! if (param_uses) ! { ! gcc_checking_assert (DECL_ARGUMENTS (orig)); ! /* Add a local var for each parm. */ ! for (tree arg = DECL_ARGUMENTS (orig); arg != NULL; ! arg = DECL_CHAIN (arg)) ! { ! param_info *parm_i = param_uses->get (arg); ! gcc_checking_assert (parm_i); ! parm_i->copy_var ! = build_lang_decl (VAR_DECL, parm_i->field_id, TREE_TYPE (arg)); ! DECL_SOURCE_LOCATION (parm_i->copy_var) = DECL_SOURCE_LOCATION (arg); ! DECL_CONTEXT (parm_i->copy_var) = orig; ! DECL_ARTIFICIAL (parm_i->copy_var) = true; ! DECL_CHAIN (parm_i->copy_var) = var_list; ! var_list = parm_i->copy_var; ! add_decl_expr (parm_i->copy_var); ! } ! ! /* Now replace all uses of the parms in the function body with the proxy ! vars. We want to this to apply to every instance of param's use, so ! don't include a 'visited' hash_set on the tree walk, however we will ! arrange to visit each containing expression only once. */ ! hash_set visited; ! param_frame_data param_data = {NULL, param_uses, ! &visited, fn_start, false}; ! cp_walk_tree (&fnbody, rewrite_param_uses, ¶m_data, NULL); ! } ! ! /* We create a resume index, this is initialized in the ramp. */ ! resume_idx_var ! = coro_build_artificial_var (fn_start, coro_resume_index_id, ! short_unsigned_type_node, orig, NULL_TREE); ! DECL_CHAIN (resume_idx_var) = var_list; ! var_list = resume_idx_var; ! add_decl_expr (resume_idx_var); ! ! /* If the coroutine has a frame that needs to be freed, this will be set by ! the ramp. */ ! var = coro_build_artificial_var (fn_start, coro_frame_needs_free_id, ! boolean_type_node, orig, NULL_TREE); ! DECL_CHAIN (var) = var_list; ! var_list = var; ! add_decl_expr (var); if (flag_exceptions) { *************** coro_rewrite_function_body (location_t f *** 4178,4189 **** fn_start, NULL, /*musthave=*/true); /* Create and initialize the initial-await-resume-called variable per [dcl.fct.def.coroutine] / 5.3. */ ! tree i_a_r_c = build_lang_decl (VAR_DECL, get_identifier ("i_a_r_c"), ! boolean_type_node); ! DECL_ARTIFICIAL (i_a_r_c) = true; DECL_CHAIN (i_a_r_c) = var_list; var_list = i_a_r_c; - DECL_INITIAL (i_a_r_c) = boolean_false_node; add_decl_expr (i_a_r_c); /* Start the try-catch. */ tree tcb = build_stmt (fn_start, TRY_BLOCK, NULL_TREE, NULL_TREE); --- 4178,4189 ---- fn_start, NULL, /*musthave=*/true); /* Create and initialize the initial-await-resume-called variable per [dcl.fct.def.coroutine] / 5.3. */ ! tree i_a_r_c ! = coro_build_artificial_var (fn_start, coro_frame_i_a_r_c_id, ! boolean_type_node, orig, ! boolean_false_node); DECL_CHAIN (i_a_r_c) = var_list; var_list = i_a_r_c; add_decl_expr (i_a_r_c); /* Start the try-catch. */ tree tcb = build_stmt (fn_start, TRY_BLOCK, NULL_TREE, NULL_TREE); *************** coro_rewrite_function_body (location_t f *** 4232,4241 **** If the unhandled exception method returns, then we continue to the final await expression (which duplicates the clearing of the field). */ ! finish_expr_stmt (zero_resume); ! finish_expr_stmt (zero_resume_idx); ! ueh = maybe_cleanup_point_expr_void (ueh); ! add_stmt (ueh); finish_handler (handler); TRY_HANDLERS (tcb) = pop_stmt_list (TRY_HANDLERS (tcb)); } --- 4232,4245 ---- If the unhandled exception method returns, then we continue to the final await expression (which duplicates the clearing of the field). */ ! tree r = build2 (MODIFY_EXPR, resume_fn_ptr_type, resume_fn_ptr, ! zero_resume); ! finish_expr_stmt (r); ! tree short_zero = build_int_cst (short_unsigned_type_node, 0); ! r = build2 (MODIFY_EXPR, short_unsigned_type_node, resume_idx_var, ! short_zero); ! finish_expr_stmt (r); ! finish_expr_stmt (ueh); finish_handler (handler); TRY_HANDLERS (tcb) = pop_stmt_list (TRY_HANDLERS (tcb)); } *************** coro_rewrite_function_body (location_t f *** 4270,4275 **** --- 4274,4281 ---- /* Before entering the final suspend point, we signal that this point has been reached by setting the resume function pointer to zero (this is what the 'done()' builtin tests) as per the current ABI. */ + zero_resume = build2 (MODIFY_EXPR, resume_fn_ptr_type, resume_fn_ptr, + zero_resume); finish_expr_stmt (zero_resume); finish_expr_stmt (build_init_or_final_await (fn_start, true)); BIND_EXPR_BODY (update_body) = pop_stmt_list (BIND_EXPR_BODY (update_body)); *************** coro_rewrite_function_body (location_t f *** 4297,4311 **** declare a dummy coro frame. struct _R_frame { using handle_type = coro::coroutine_handle; ! void (*__resume)(_R_frame *); ! void (*__destroy)(_R_frame *); ! coro1::promise_type __p; ! bool frame_needs_free; free the coro frame mem if set. ! bool i_a_r_c; [dcl.fct.def.coroutine] / 5.3 ! short __resume_at; ! handle_type self_handle; ! (maybe) parameter copies. ! (maybe) local variables saved (including awaitables) (maybe) trailing space. }; */ --- 4303,4317 ---- declare a dummy coro frame. struct _R_frame { using handle_type = coro::coroutine_handle; ! void (*_Coro_resume_fn)(_R_frame *); ! void (*_Coro_destroy_fn)(_R_frame *); ! coro1::promise_type _Coro_promise; ! bool _Coro_frame_needs_free; free the coro frame mem if set. ! bool _Coro_i_a_r_c; [dcl.fct.def.coroutine] / 5.3 ! short _Coro_resume_index; ! handle_type _Coro_self_handle; ! parameter copies (were required). ! local variables saved (including awaitables) (maybe) trailing space. }; */ *************** morph_fn_to_coro (tree orig, tree *resum *** 4397,4403 **** /* 2. Types we need to define or look up. */ ! tree fr_name = get_fn_local_identifier (orig, "frame"); tree coro_frame_type = xref_tag (record_type, fr_name); DECL_CONTEXT (TYPE_NAME (coro_frame_type)) = current_scope (); tree coro_frame_ptr = build_pointer_type (coro_frame_type); --- 4403,4409 ---- /* 2. Types we need to define or look up. */ ! tree fr_name = get_fn_local_identifier (orig, "Frame"); tree coro_frame_type = xref_tag (record_type, fr_name); DECL_CONTEXT (TYPE_NAME (coro_frame_type)) = current_scope (); tree coro_frame_ptr = build_pointer_type (coro_frame_type); *************** morph_fn_to_coro (tree orig, tree *resum *** 4414,4534 **** /* Construct the wrapped function body; we will analyze this to determine the requirements for the coroutine frame. */ ! tree resume_fn_field = NULL_TREE; ! tree resume_idx_field = NULL_TREE; tree fs_label = NULL_TREE; ! fnbody = coro_rewrite_function_body (fn_start, fnbody, orig, ! act_des_fn_ptr, resume_fn_field, ! resume_idx_field, fs_label); /* Build our dummy coro frame layout. */ coro_frame_type = begin_class_definition (coro_frame_type); tree field_list = NULL_TREE; - tree resume_name - = coro_make_frame_entry (&field_list, "__resume", - act_des_fn_ptr, fn_start); - tree destroy_name - = coro_make_frame_entry (&field_list, "__destroy", - act_des_fn_ptr, fn_start); - tree promise_name - = coro_make_frame_entry (&field_list, "__p", promise_type, fn_start); - tree fnf_name = coro_make_frame_entry (&field_list, "__frame_needs_free", - boolean_type_node, fn_start); - tree resume_idx_name - = coro_make_frame_entry (&field_list, "__resume_at", - short_unsigned_type_node, fn_start); - - /* We need a handle to this coroutine, which is passed to every - await_suspend(). There's no point in creating it over and over. */ - (void) coro_make_frame_entry (&field_list, "__self_h", handle_type, fn_start); - - /* Now add in fields for function params (if there are any). - We do not attempt elision of copies at this stage, we do analyze the - uses and build worklists to replace those when the state machine is - lowered. */ - - hash_map *param_uses = NULL; - if (DECL_ARGUMENTS (orig)) - { - /* Build a hash map with an entry for each param. - The key is the param tree. - Then we have an entry for the frame field name. - Then a cache for the field ref when we come to use it. - Then a tree list of the uses. - The second two entries start out empty - and only get populated - when we see uses. */ - param_uses = new hash_map; - bool lambda_p = LAMBDA_FUNCTION_P (orig); - - unsigned no_name_parm = 0; - for (tree arg = DECL_ARGUMENTS (orig); arg != NULL; - arg = DECL_CHAIN (arg)) - { - bool existed; - param_info &parm = param_uses->get_or_insert (arg, &existed); - gcc_checking_assert (!existed); - parm.body_uses = NULL; - tree actual_type = TREE_TYPE (arg); - actual_type = complete_type_or_else (actual_type, orig); - if (actual_type == NULL_TREE) - actual_type = error_mark_node; - parm.orig_type = actual_type; - parm.by_ref = parm.pt_ref = parm.rv_ref = false; - if (TREE_CODE (actual_type) == REFERENCE_TYPE) - { - /* If the user passes by reference, then we will save the - pointer to the original. As noted in - [dcl.fct.def.coroutine] / 13, if the lifetime of the - referenced item ends and then the coroutine is resumed, - we have UB; well, the user asked for it. */ - if (TYPE_REF_IS_RVALUE (actual_type)) - parm.rv_ref = true; - else - parm.pt_ref = true; - } - else if (TYPE_REF_P (DECL_ARG_TYPE (arg))) - parm.by_ref = true; - - parm.frame_type = actual_type; - - parm.this_ptr = is_this_parameter (arg); - parm.lambda_cobj = lambda_p && DECL_NAME (arg) == closure_identifier; - - char *buf; - if (DECL_NAME (arg)) - { - tree pname = DECL_NAME (arg); - buf = xasprintf ("__parm.%s", IDENTIFIER_POINTER (pname)); - } - else - buf = xasprintf ("__unnamed_parm.%d", no_name_parm++); - - if (TYPE_HAS_NONTRIVIAL_DESTRUCTOR (parm.frame_type)) - { - char *gbuf = xasprintf ("%s.live", buf); - parm.guard_var - = build_lang_decl (VAR_DECL, get_identifier (gbuf), - boolean_type_node); - free (gbuf); - DECL_ARTIFICIAL (parm.guard_var) = true; - DECL_INITIAL (parm.guard_var) = boolean_false_node; - parm.trivial_dtor = false; - } - else - parm.trivial_dtor = true; - parm.field_id = coro_make_frame_entry - (&field_list, buf, actual_type, DECL_SOURCE_LOCATION (arg)); - free (buf); - } - - /* We want to record every instance of param's use, so don't include - a 'visited' hash_set on the tree walk, but only record a containing - expression once. */ - hash_set visited; - param_frame_data param_data - = {&field_list, param_uses, &visited, fn_start, false}; - cp_walk_tree (&fnbody, register_param_uses, ¶m_data, NULL); - } /* We need to know, and inspect, each suspend point in the function in several places. It's convenient to place this map out of line --- 4420,4437 ---- /* Construct the wrapped function body; we will analyze this to determine the requirements for the coroutine frame. */ ! tree resume_idx_var = NULL_TREE; tree fs_label = NULL_TREE; ! hash_map *param_uses = analyze_fn_parms (orig); ! ! fnbody = coro_rewrite_function_body (fn_start, fnbody, orig, param_uses, ! act_des_fn_ptr, ! resume_idx_var, fs_label); /* Build our dummy coro frame layout. */ coro_frame_type = begin_class_definition (coro_frame_type); + /* The fields for the coro frame. */ tree field_list = NULL_TREE; /* We need to know, and inspect, each suspend point in the function in several places. It's convenient to place this map out of line *************** morph_fn_to_coro (tree orig, tree *resum *** 4568,4575 **** add_stmt (ramp_bind); tree ramp_body = push_stmt_list (); ! tree coro_fp = build_lang_decl (VAR_DECL, get_identifier ("coro.frameptr"), ! coro_frame_ptr); tree varlist = coro_fp; /* To signal that we need to cleanup copied function args. */ --- 4471,4480 ---- add_stmt (ramp_bind); tree ramp_body = push_stmt_list (); ! tree zeroinit = build1_loc (fn_start, CONVERT_EXPR, ! coro_frame_ptr, integer_zero_node); ! tree coro_fp = coro_build_artificial_var (fn_start, "_Coro_frameptr", ! coro_frame_ptr, orig, zeroinit); tree varlist = coro_fp; /* To signal that we need to cleanup copied function args. */ *************** morph_fn_to_coro (tree orig, tree *resum *** 4587,4607 **** /* Signal that we need to clean up the promise object on exception. */ tree coro_promise_live ! = build_lang_decl (VAR_DECL, get_identifier ("coro.promise.live"), ! boolean_type_node); ! DECL_ARTIFICIAL (coro_promise_live) = true; DECL_CHAIN (coro_promise_live) = varlist; varlist = coro_promise_live; ! DECL_INITIAL (coro_promise_live) = boolean_false_node; /* When the get-return-object is in the RETURN slot, we need to arrange for cleanup on exception. */ tree coro_gro_live ! = build_lang_decl (VAR_DECL, get_identifier ("coro.gro.live"), ! boolean_type_node); ! DECL_ARTIFICIAL (coro_gro_live) = true; DECL_CHAIN (coro_gro_live) = varlist; varlist = coro_gro_live; - DECL_INITIAL (coro_gro_live) = boolean_false_node; /* Collected the scope vars we need ... only one for now. */ BIND_EXPR_VARS (ramp_bind) = nreverse (varlist); --- 4492,4510 ---- /* Signal that we need to clean up the promise object on exception. */ tree coro_promise_live ! = coro_build_artificial_var (fn_start, "_Coro_promise_live", ! boolean_type_node, orig, boolean_false_node); DECL_CHAIN (coro_promise_live) = varlist; varlist = coro_promise_live; ! /* When the get-return-object is in the RETURN slot, we need to arrange for cleanup on exception. */ tree coro_gro_live ! = coro_build_artificial_var (fn_start, "_Coro_gro_live", ! boolean_type_node, orig, boolean_false_node); ! DECL_CHAIN (coro_gro_live) = varlist; varlist = coro_gro_live; /* Collected the scope vars we need ... only one for now. */ BIND_EXPR_VARS (ramp_bind) = nreverse (varlist); *************** morph_fn_to_coro (tree orig, tree *resum *** 4613,4624 **** BIND_EXPR_BLOCK (ramp_bind) = top_block; BLOCK_VARS (top_block) = BIND_EXPR_VARS (ramp_bind); BLOCK_SUBBLOCKS (top_block) = NULL_TREE; /* The decl_expr for the coro frame pointer, initialize to zero so that we can pass it to the IFN_CO_FRAME (since there's no way to pass a type, directly apparently). This avoids a "used uninitialized" warning. */ ! tree zeroinit = build1 (CONVERT_EXPR, coro_frame_ptr, integer_zero_node); ! DECL_INITIAL (coro_fp) = zeroinit; add_decl_expr (coro_fp); if (flag_exceptions && DECL_ARGUMENTS (orig)) for (tree arg = DECL_ARGUMENTS (orig); arg != NULL; --- 4516,4527 ---- BIND_EXPR_BLOCK (ramp_bind) = top_block; BLOCK_VARS (top_block) = BIND_EXPR_VARS (ramp_bind); BLOCK_SUBBLOCKS (top_block) = NULL_TREE; + current_binding_level->blocks = top_block; /* The decl_expr for the coro frame pointer, initialize to zero so that we can pass it to the IFN_CO_FRAME (since there's no way to pass a type, directly apparently). This avoids a "used uninitialized" warning. */ ! add_decl_expr (coro_fp); if (flag_exceptions && DECL_ARGUMENTS (orig)) for (tree arg = DECL_ARGUMENTS (orig); arg != NULL; *************** morph_fn_to_coro (tree orig, tree *resum *** 4843,4850 **** /* For now, once allocation has succeeded we always assume that this needs destruction, there's no impl. for frame allocation elision. */ ! tree fnf_m ! = lookup_member (coro_frame_type, fnf_name, 1, 0, tf_warning_or_error); tree fnf_x = build_class_member_access_expr (deref_fp, fnf_m, NULL_TREE, false, tf_warning_or_error); r = build2 (INIT_EXPR, boolean_type_node, fnf_x, boolean_true_node); --- 4746,4753 ---- /* For now, once allocation has succeeded we always assume that this needs destruction, there's no impl. for frame allocation elision. */ ! tree fnf_m = lookup_member (coro_frame_type, coro_frame_needs_free_id, ! 1, 0,tf_warning_or_error); tree fnf_x = build_class_member_access_expr (deref_fp, fnf_m, NULL_TREE, false, tf_warning_or_error); r = build2 (INIT_EXPR, boolean_type_node, fnf_x, boolean_true_node); *************** morph_fn_to_coro (tree orig, tree *resum *** 4855,4878 **** tree actor_addr = build1 (ADDR_EXPR, act_des_fn_ptr, actor); tree resume_m ! = lookup_member (coro_frame_type, resume_name, /*protect=*/1, /*want_type=*/0, tf_warning_or_error); tree resume_x = build_class_member_access_expr (deref_fp, resume_m, NULL_TREE, false, tf_warning_or_error); r = build2_loc (fn_start, INIT_EXPR, act_des_fn_ptr, resume_x, actor_addr); ! r = coro_build_cvt_void_expr_stmt (r, fn_start); ! add_stmt (r); tree destroy_addr = build1 (ADDR_EXPR, act_des_fn_ptr, destroy); tree destroy_m ! = lookup_member (coro_frame_type, destroy_name, /*protect=*/1, /*want_type=*/0, tf_warning_or_error); tree destroy_x = build_class_member_access_expr (deref_fp, destroy_m, NULL_TREE, false, tf_warning_or_error); r = build2_loc (fn_start, INIT_EXPR, act_des_fn_ptr, destroy_x, destroy_addr); ! r = coro_build_cvt_void_expr_stmt (r, fn_start); ! add_stmt (r); /* [dcl.fct.def.coroutine] /13 When a coroutine is invoked, a copy is created for each coroutine --- 4758,4779 ---- tree actor_addr = build1 (ADDR_EXPR, act_des_fn_ptr, actor); tree resume_m ! = lookup_member (coro_frame_type, coro_resume_fn_id, /*protect=*/1, /*want_type=*/0, tf_warning_or_error); tree resume_x = build_class_member_access_expr (deref_fp, resume_m, NULL_TREE, false, tf_warning_or_error); r = build2_loc (fn_start, INIT_EXPR, act_des_fn_ptr, resume_x, actor_addr); ! finish_expr_stmt (r); tree destroy_addr = build1 (ADDR_EXPR, act_des_fn_ptr, destroy); tree destroy_m ! = lookup_member (coro_frame_type, coro_destroy_fn_id, /*protect=*/1, /*want_type=*/0, tf_warning_or_error); tree destroy_x = build_class_member_access_expr (deref_fp, destroy_m, NULL_TREE, false, tf_warning_or_error); r = build2_loc (fn_start, INIT_EXPR, act_des_fn_ptr, destroy_x, destroy_addr); ! finish_expr_stmt (r); /* [dcl.fct.def.coroutine] /13 When a coroutine is invoked, a copy is created for each coroutine *************** morph_fn_to_coro (tree orig, tree *resum *** 4926,4968 **** vec_safe_push (promise_args, this_ref); } else if (parm.rv_ref) ! vec_safe_push (promise_args, rvalue(fld_idx)); else vec_safe_push (promise_args, fld_idx); if (parm.rv_ref || parm.pt_ref) /* Initialise the frame reference field directly. */ ! r = build_modify_expr (fn_start, TREE_OPERAND (fld_idx, 0), ! parm.frame_type, INIT_EXPR, ! DECL_SOURCE_LOCATION (arg), arg, ! DECL_ARG_TYPE (arg)); ! else if (type_build_ctor_call (parm.frame_type)) ! { ! vec *p_in; ! if (CLASS_TYPE_P (parm.frame_type) ! && classtype_has_non_deleted_move_ctor (parm.frame_type)) ! p_in = make_tree_vector_single (move (arg)); ! else if (lvalue_p (arg)) ! p_in = make_tree_vector_single (rvalue (arg)); ! else ! p_in = make_tree_vector_single (arg); ! /* Construct in place or move as relevant. */ ! r = build_special_member_call (fld_idx, complete_ctor_identifier, ! &p_in, parm.frame_type, ! LOOKUP_NORMAL, ! tf_warning_or_error); ! release_tree_vector (p_in); ! } else { ! if (!same_type_p (parm.frame_type, DECL_ARG_TYPE (arg))) ! r = build1_loc (DECL_SOURCE_LOCATION (arg), CONVERT_EXPR, ! parm.frame_type, arg); ! else ! r = arg; ! r = build_modify_expr (fn_start, fld_idx, parm.frame_type, ! INIT_EXPR, DECL_SOURCE_LOCATION (arg), r, ! TREE_TYPE (r)); } finish_expr_stmt (r); if (!parm.trivial_dtor) --- 4827,4845 ---- vec_safe_push (promise_args, this_ref); } else if (parm.rv_ref) ! vec_safe_push (promise_args, move (fld_idx)); else vec_safe_push (promise_args, fld_idx); if (parm.rv_ref || parm.pt_ref) /* Initialise the frame reference field directly. */ ! r = cp_build_modify_expr (fn_start, TREE_OPERAND (fld_idx, 0), ! INIT_EXPR, arg, tf_warning_or_error); else { ! r = forward_parm (arg); ! r = cp_build_modify_expr (fn_start, fld_idx, INIT_EXPR, r, ! tf_warning_or_error); } finish_expr_stmt (r); if (!parm.trivial_dtor) *************** morph_fn_to_coro (tree orig, tree *resum *** 4976,4993 **** NULL, parm.frame_type, LOOKUP_NORMAL, tf_warning_or_error); ! /* This var is now live. */ ! r = build_modify_expr (fn_start, parm.guard_var, ! boolean_type_node, INIT_EXPR, fn_start, ! boolean_true_node, boolean_type_node); ! finish_expr_stmt (r); } } } /* Set up the promise. */ tree promise_m ! = lookup_member (coro_frame_type, promise_name, /*protect=*/1, /*want_type=*/0, tf_warning_or_error); tree p = build_class_member_access_expr (deref_fp, promise_m, NULL_TREE, --- 4853,4873 ---- NULL, parm.frame_type, LOOKUP_NORMAL, tf_warning_or_error); ! if (flag_exceptions) ! { ! /* This var is now live. */ ! r = build_modify_expr (fn_start, parm.guard_var, ! boolean_type_node, INIT_EXPR, fn_start, ! boolean_true_node, boolean_type_node); ! finish_expr_stmt (r); ! } } } } /* Set up the promise. */ tree promise_m ! = lookup_member (coro_frame_type, coro_promise_id, /*protect=*/1, /*want_type=*/0, tf_warning_or_error); tree p = build_class_member_access_expr (deref_fp, promise_m, NULL_TREE, *************** morph_fn_to_coro (tree orig, tree *resum *** 5102,5123 **** { /* ... or ... Construct an object that will be used as the single param to the CTOR for the return object. */ ! gro = build_lang_decl (VAR_DECL, get_identifier ("coro.gro"), gro_type); ! DECL_CONTEXT (gro) = current_scope (); ! DECL_ARTIFICIAL (gro) = true; ! DECL_IGNORED_P (gro) = true; add_decl_expr (gro); gro_bind_vars = gro; ! if (type_build_ctor_call (gro_type)) ! { ! vec *arg = make_tree_vector_single (get_ro); ! r = build_special_member_call (gro, complete_ctor_identifier, ! &arg, gro_type, LOOKUP_NORMAL, ! tf_warning_or_error); ! release_tree_vector (arg); ! } ! else ! r = build2_loc (fn_start, INIT_EXPR, gro_type, gro, get_ro); /* The constructed object might require a cleanup. */ if (TYPE_HAS_NONTRIVIAL_DESTRUCTOR (gro_type)) { --- 4982,4993 ---- { /* ... or ... Construct an object that will be used as the single param to the CTOR for the return object. */ ! gro = coro_build_artificial_var (fn_start, "_Coro_gro", gro_type, orig, ! NULL_TREE); add_decl_expr (gro); gro_bind_vars = gro; ! r = cp_build_modify_expr (input_location, gro, INIT_EXPR, get_ro, ! tf_warning_or_error); /* The constructed object might require a cleanup. */ if (TYPE_HAS_NONTRIVIAL_DESTRUCTOR (gro_type)) { *************** morph_fn_to_coro (tree orig, tree *resum *** 5143,5151 **** boolean_type_node); finish_expr_stmt (r); } ! /* Initialize the resume_idx_name to 0, meaning "not started". */ tree resume_idx_m ! = lookup_member (coro_frame_type, resume_idx_name, /*protect=*/1, /*want_type=*/0, tf_warning_or_error); tree resume_idx = build_class_member_access_expr (deref_fp, resume_idx_m, NULL_TREE, false, --- 5013,5021 ---- boolean_type_node); finish_expr_stmt (r); } ! /* Initialize the resume_idx_var to 0, meaning "not started". */ tree resume_idx_m ! = lookup_member (coro_frame_type, coro_resume_index_id, /*protect=*/1, /*want_type=*/0, tf_warning_or_error); tree resume_idx = build_class_member_access_expr (deref_fp, resume_idx_m, NULL_TREE, false, *************** morph_fn_to_coro (tree orig, tree *resum *** 5175,5211 **** if (same_type_p (gro_type, fn_return_type)) r = gro_is_void_p ? NULL_TREE : DECL_RESULT (orig); else { ! if (CLASS_TYPE_P (fn_return_type)) ! { ! /* For class type return objects, we can attempt to construct, ! even if the gro is void. */ ! vec *args = NULL; ! vec **arglist = NULL; ! if (!gro_is_void_p) ! { ! args = make_tree_vector_single (rvalue (gro)); ! arglist = &args; ! } ! r = build_special_member_call (NULL_TREE, ! complete_ctor_identifier, arglist, ! fn_return_type, LOOKUP_NORMAL, ! tf_warning_or_error); ! r = build_cplus_new (fn_return_type, r, tf_warning_or_error); ! if (args) ! release_tree_vector (args); ! } ! else if (gro_is_void_p) ! { ! /* We can't initialize a non-class return value from void. */ ! error_at (input_location, "cannot initialize a return object of type" ! " %qT with an rvalue of type %", fn_return_type); ! r = error_mark_node; ! } ! else ! r = build1_loc (input_location, CONVERT_EXPR, ! fn_return_type, rvalue (gro)); } finish_return_stmt (r); --- 5045,5070 ---- if (same_type_p (gro_type, fn_return_type)) r = gro_is_void_p ? NULL_TREE : DECL_RESULT (orig); + else if (!gro_is_void_p) + /* check_return_expr will automatically return gro as an rvalue via + treat_lvalue_as_rvalue_p. */ + r = gro; + else if (CLASS_TYPE_P (fn_return_type)) + { + /* For class type return objects, we can attempt to construct, + even if the gro is void. ??? Citation ??? c++/100476 */ + r = build_special_member_call (NULL_TREE, + complete_ctor_identifier, NULL, + fn_return_type, LOOKUP_NORMAL, + tf_warning_or_error); + r = build_cplus_new (fn_return_type, r, tf_warning_or_error); + } else { ! /* We can't initialize a non-class return value from void. */ ! error_at (input_location, "cannot initialize a return object of type" ! " %qT with an rvalue of type %", fn_return_type); ! r = error_mark_node; } finish_return_stmt (r); *************** morph_fn_to_coro (tree orig, tree *resum *** 5299,5307 **** push_deferring_access_checks (dk_no_check); /* Build the actor... */ ! build_actor_fn (fn_start, coro_frame_type, actor, fnbody, orig, param_uses, ! &local_var_uses, param_dtor_list, resume_fn_field, ! resume_idx_field, body_aw_points.await_number, frame_size); /* Destroyer ... */ build_destroy_fn (fn_start, coro_frame_type, destroy, actor); --- 5158,5166 ---- push_deferring_access_checks (dk_no_check); /* Build the actor... */ ! build_actor_fn (fn_start, coro_frame_type, actor, fnbody, orig, ! &local_var_uses, param_dtor_list, ! resume_idx_var, body_aw_points.await_number, frame_size); /* Destroyer ... */ build_destroy_fn (fn_start, coro_frame_type, destroy, actor); diff -Nrcpad gcc-11.2.0/gcc/cp/cp-gimplify.c gcc-11.3.0/gcc/cp/cp-gimplify.c *** gcc-11.2.0/gcc/cp/cp-gimplify.c Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/cp/cp-gimplify.c Thu Apr 21 07:58:53 2022 *************** gimplify_to_rvalue (tree *expr_p, gimple *** 392,397 **** --- 392,438 ---- return t; } + /* Like gimplify_arg, but if ORDERED is set (which should be set if + any of the arguments this argument is sequenced before has + TREE_SIDE_EFFECTS set, make sure expressions with is_gimple_reg_type type + are gimplified into SSA_NAME or a fresh temporary and for + non-is_gimple_reg_type we don't optimize away TARGET_EXPRs. */ + + static enum gimplify_status + cp_gimplify_arg (tree *arg_p, gimple_seq *pre_p, location_t call_location, + bool ordered) + { + enum gimplify_status t; + if (ordered + && !is_gimple_reg_type (TREE_TYPE (*arg_p)) + && TREE_CODE (*arg_p) == TARGET_EXPR) + { + /* gimplify_arg would strip away the TARGET_EXPR, but + that can mean we don't copy the argument and some following + argument with side-effect could modify it. */ + protected_set_expr_location (*arg_p, call_location); + return gimplify_expr (arg_p, pre_p, NULL, is_gimple_lvalue, fb_either); + } + else + { + t = gimplify_arg (arg_p, pre_p, call_location); + if (t == GS_ERROR) + return GS_ERROR; + else if (ordered + && is_gimple_reg_type (TREE_TYPE (*arg_p)) + && is_gimple_variable (*arg_p) + && TREE_CODE (*arg_p) != SSA_NAME + /* No need to force references into register, references + can't be modified. */ + && !TYPE_REF_P (TREE_TYPE (*arg_p)) + /* And this can't be modified either. */ + && *arg_p != current_class_ptr) + *arg_p = get_initialized_tmp_var (*arg_p, pre_p); + return t; + } + + } + /* Do C++-specific gimplification. Args are as for gimplify_expr. */ int *************** cp_gimplify_expr (tree *expr_p, gimple_s *** 607,613 **** gcc_assert (call_expr_nargs (*expr_p) == 2); gcc_assert (!CALL_EXPR_ORDERED_ARGS (*expr_p)); enum gimplify_status t ! = gimplify_arg (&CALL_EXPR_ARG (*expr_p, 1), pre_p, loc); if (t == GS_ERROR) ret = GS_ERROR; } --- 648,655 ---- gcc_assert (call_expr_nargs (*expr_p) == 2); gcc_assert (!CALL_EXPR_ORDERED_ARGS (*expr_p)); enum gimplify_status t ! = cp_gimplify_arg (&CALL_EXPR_ARG (*expr_p, 1), pre_p, loc, ! TREE_SIDE_EFFECTS (CALL_EXPR_ARG (*expr_p, 0))); if (t == GS_ERROR) ret = GS_ERROR; } *************** cp_gimplify_expr (tree *expr_p, gimple_s *** 616,625 **** /* Leave the last argument for gimplify_call_expr, to avoid problems with __builtin_va_arg_pack(). */ int nargs = call_expr_nargs (*expr_p) - 1; for (int i = 0; i < nargs; ++i) { enum gimplify_status t ! = gimplify_arg (&CALL_EXPR_ARG (*expr_p, i), pre_p, loc); if (t == GS_ERROR) ret = GS_ERROR; } --- 658,675 ---- /* Leave the last argument for gimplify_call_expr, to avoid problems with __builtin_va_arg_pack(). */ int nargs = call_expr_nargs (*expr_p) - 1; + int last_side_effects_arg = -1; + for (int i = nargs; i > 0; --i) + if (TREE_SIDE_EFFECTS (CALL_EXPR_ARG (*expr_p, i))) + { + last_side_effects_arg = i; + break; + } for (int i = 0; i < nargs; ++i) { enum gimplify_status t ! = cp_gimplify_arg (&CALL_EXPR_ARG (*expr_p, i), pre_p, loc, ! i < last_side_effects_arg); if (t == GS_ERROR) ret = GS_ERROR; } *************** cp_gimplify_expr (tree *expr_p, gimple_s *** 633,640 **** fntype = TREE_TYPE (fntype); if (TREE_CODE (fntype) == METHOD_TYPE) { enum gimplify_status t ! = gimplify_arg (&CALL_EXPR_ARG (*expr_p, 0), pre_p, loc); if (t == GS_ERROR) ret = GS_ERROR; } --- 683,699 ---- fntype = TREE_TYPE (fntype); if (TREE_CODE (fntype) == METHOD_TYPE) { + int nargs = call_expr_nargs (*expr_p); + bool side_effects = false; + for (int i = 1; i < nargs; ++i) + if (TREE_SIDE_EFFECTS (CALL_EXPR_ARG (*expr_p, i))) + { + side_effects = true; + break; + } enum gimplify_status t ! = cp_gimplify_arg (&CALL_EXPR_ARG (*expr_p, 0), pre_p, loc, ! side_effects); if (t == GS_ERROR) ret = GS_ERROR; } diff -Nrcpad gcc-11.2.0/gcc/cp/cp-objcp-common.c gcc-11.3.0/gcc/cp/cp-objcp-common.c *** gcc-11.2.0/gcc/cp/cp-objcp-common.c Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/cp/cp-objcp-common.c Thu Apr 21 07:58:53 2022 *************** cp_tree_size (enum tree_code code) *** 72,81 **** case DEFERRED_NOEXCEPT: return sizeof (tree_deferred_noexcept); case OVERLOAD: return sizeof (tree_overload); case STATIC_ASSERT: return sizeof (tree_static_assert); ! case TYPE_ARGUMENT_PACK: ! case TYPE_PACK_EXPANSION: return sizeof (tree_type_non_common); ! case NONTYPE_ARGUMENT_PACK: ! case EXPR_PACK_EXPANSION: return sizeof (tree_exp); case ARGUMENT_PACK_SELECT: return sizeof (tree_argument_pack_select); case TRAIT_EXPR: return sizeof (tree_trait_expr); case LAMBDA_EXPR: return sizeof (tree_lambda_expr); --- 72,84 ---- case DEFERRED_NOEXCEPT: return sizeof (tree_deferred_noexcept); case OVERLOAD: return sizeof (tree_overload); case STATIC_ASSERT: return sizeof (tree_static_assert); ! #if 0 ! /* This would match cp_common_init_ts, but breaks GC because ! tree_node_structure_for_code returns TS_TYPE_NON_COMMON for all ! types. */ ! case UNBOUND_CLASS_TEMPLATE: ! case TYPE_ARGUMENT_PACK: return sizeof (tree_type_common); ! #endif case ARGUMENT_PACK_SELECT: return sizeof (tree_argument_pack_select); case TRAIT_EXPR: return sizeof (tree_trait_expr); case LAMBDA_EXPR: return sizeof (tree_lambda_expr); *************** cp_common_init_ts (void) *** 455,467 **** /* Random new trees. */ MARK_TS_COMMON (BASELINK); - MARK_TS_COMMON (DECLTYPE_TYPE); MARK_TS_COMMON (OVERLOAD); MARK_TS_COMMON (TEMPLATE_PARM_INDEX); - MARK_TS_COMMON (TYPENAME_TYPE); - MARK_TS_COMMON (TYPEOF_TYPE); - MARK_TS_COMMON (UNBOUND_CLASS_TEMPLATE); - MARK_TS_COMMON (UNDERLYING_TYPE); /* New decls. */ MARK_TS_DECL_COMMON (TEMPLATE_DECL); --- 458,465 ---- *************** cp_common_init_ts (void) *** 471,480 **** MARK_TS_DECL_NON_COMMON (USING_DECL); /* New Types. */ MARK_TS_TYPE_NON_COMMON (BOUND_TEMPLATE_TEMPLATE_PARM); MARK_TS_TYPE_NON_COMMON (TEMPLATE_TEMPLATE_PARM); MARK_TS_TYPE_NON_COMMON (TEMPLATE_TYPE_PARM); - MARK_TS_TYPE_NON_COMMON (TYPE_ARGUMENT_PACK); MARK_TS_TYPE_NON_COMMON (TYPE_PACK_EXPANSION); /* Statements. */ --- 469,484 ---- MARK_TS_DECL_NON_COMMON (USING_DECL); /* New Types. */ + MARK_TS_TYPE_COMMON (UNBOUND_CLASS_TEMPLATE); + MARK_TS_TYPE_COMMON (TYPE_ARGUMENT_PACK); + + MARK_TS_TYPE_NON_COMMON (DECLTYPE_TYPE); + MARK_TS_TYPE_NON_COMMON (TYPENAME_TYPE); + MARK_TS_TYPE_NON_COMMON (TYPEOF_TYPE); + MARK_TS_TYPE_NON_COMMON (UNDERLYING_TYPE); MARK_TS_TYPE_NON_COMMON (BOUND_TEMPLATE_TEMPLATE_PARM); MARK_TS_TYPE_NON_COMMON (TEMPLATE_TEMPLATE_PARM); MARK_TS_TYPE_NON_COMMON (TEMPLATE_TYPE_PARM); MARK_TS_TYPE_NON_COMMON (TYPE_PACK_EXPANSION); /* Statements. */ diff -Nrcpad gcc-11.2.0/gcc/cp/cp-tree.h gcc-11.3.0/gcc/cp/cp-tree.h *** gcc-11.2.0/gcc/cp/cp-tree.h Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/cp/cp-tree.h Thu Apr 21 07:58:53 2022 *************** more_aggr_init_expr_args_p (const aggr_i *** 4467,4472 **** --- 4467,4478 ---- #define CONSTRUCTOR_IS_PAREN_INIT(NODE) \ (CONSTRUCTOR_CHECK(NODE)->base.private_flag) + /* True if reshape_init built this sub-CONSTRUCTOR to undo the brace elision + of the original CONSTRUCTOR. This flag is used during C++20 aggregate + CTAD. */ + #define CONSTRUCTOR_BRACES_ELIDED_P(NODE) \ + (CONSTRUCTOR_CHECK (NODE)->base.protected_flag) + /* True if NODE represents a conversion for direct-initialization in a template. Set by perform_implicit_conversion_flags. */ #define IMPLICIT_CONV_EXPR_DIRECT_INIT(NODE) \ *************** extern void finish_lambda_scope (void) *** 7584,7589 **** --- 7590,7596 ---- extern tree start_lambda_function (tree fn, tree lambda_expr); extern void finish_lambda_function (tree body); extern bool regenerated_lambda_fn_p (tree); + extern tree lambda_regenerating_args (tree); extern tree most_general_lambda (tree); /* in tree.c */ *************** unevaluated_p (tree_code code) *** 8461,8467 **** return (code == DECLTYPE_TYPE || code == ALIGNOF_EXPR || code == SIZEOF_EXPR ! || code == NOEXCEPT_EXPR); } /* RAII class to push/pop class scope T; if T is not a class, do nothing. */ --- 8468,8475 ---- return (code == DECLTYPE_TYPE || code == ALIGNOF_EXPR || code == SIZEOF_EXPR ! || code == NOEXCEPT_EXPR ! || code == REQUIRES_EXPR); } /* RAII class to push/pop class scope T; if T is not a class, do nothing. */ diff -Nrcpad gcc-11.2.0/gcc/cp/decl.c gcc-11.3.0/gcc/cp/decl.c *** gcc-11.2.0/gcc/cp/decl.c Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/cp/decl.c Thu Apr 21 07:58:53 2022 *************** duplicate_decls (tree newdecl, tree oldd *** 2273,2278 **** --- 2273,2281 ---- for (parm = DECL_ARGUMENTS (old_result); parm; parm = DECL_CHAIN (parm)) DECL_CONTEXT (parm) = old_result; + + if (tree fc = DECL_FRIEND_CONTEXT (new_result)) + SET_DECL_FRIEND_CONTEXT (old_result, fc); } } *************** duplicate_decls (tree newdecl, tree oldd *** 2592,2597 **** --- 2595,2602 ---- otherwise it is a DECL_FRIEND_CONTEXT. */ if (DECL_VIRTUAL_P (newdecl)) SET_DECL_THUNKS (newdecl, DECL_THUNKS (olddecl)); + else if (tree fc = DECL_FRIEND_CONTEXT (newdecl)) + SET_DECL_FRIEND_CONTEXT (olddecl, fc); } else if (VAR_P (newdecl)) { *************** start_decl (const cp_declarator *declara *** 5590,5596 **** && DECL_DECLARED_CONSTEXPR_P (current_function_decl)) { bool ok = false; ! if (CP_DECL_THREAD_LOCAL_P (decl)) error_at (DECL_SOURCE_LOCATION (decl), "%qD declared % in %qs function", decl, DECL_IMMEDIATE_FUNCTION_P (current_function_decl) --- 5595,5601 ---- && DECL_DECLARED_CONSTEXPR_P (current_function_decl)) { bool ok = false; ! if (CP_DECL_THREAD_LOCAL_P (decl) && !DECL_REALLY_EXTERN (decl)) error_at (DECL_SOURCE_LOCATION (decl), "%qD declared % in %qs function", decl, DECL_IMMEDIATE_FUNCTION_P (current_function_decl) *************** layout_var_decl (tree decl) *** 6006,6011 **** --- 6011,6048 ---- error_at (DECL_SOURCE_LOCATION (decl), "storage size of %qD isn%'t constant", decl); TREE_TYPE (decl) = error_mark_node; + type = error_mark_node; + } + } + + /* If the final element initializes a flexible array field, add the size of + that initializer to DECL's size. */ + if (type != error_mark_node + && DECL_INITIAL (decl) + && TREE_CODE (DECL_INITIAL (decl)) == CONSTRUCTOR + && !vec_safe_is_empty (CONSTRUCTOR_ELTS (DECL_INITIAL (decl))) + && DECL_SIZE (decl) != NULL_TREE + && TREE_CODE (DECL_SIZE (decl)) == INTEGER_CST + && TYPE_SIZE (type) != NULL_TREE + && TREE_CODE (TYPE_SIZE (type)) == INTEGER_CST + && tree_int_cst_equal (DECL_SIZE (decl), TYPE_SIZE (type))) + { + constructor_elt &elt = CONSTRUCTOR_ELTS (DECL_INITIAL (decl))->last (); + if (elt.index) + { + tree itype = TREE_TYPE (elt.index); + tree vtype = TREE_TYPE (elt.value); + if (TREE_CODE (itype) == ARRAY_TYPE + && TYPE_DOMAIN (itype) == NULL + && TREE_CODE (vtype) == ARRAY_TYPE + && COMPLETE_TYPE_P (vtype)) + { + DECL_SIZE (decl) + = size_binop (PLUS_EXPR, DECL_SIZE (decl), TYPE_SIZE (vtype)); + DECL_SIZE_UNIT (decl) + = size_binop (PLUS_EXPR, DECL_SIZE_UNIT (decl), + TYPE_SIZE_UNIT (vtype)); + } } } } *************** reshape_init_class (tree type, reshape_i *** 6377,6384 **** { tree field_init; constructor_elt *old_cur = d->cur; ! /* Handle designated initializers, as an extension. */ if (d->cur->index) { if (d->cur->index == error_mark_node) --- 6414,6422 ---- { tree field_init; constructor_elt *old_cur = d->cur; + bool direct_desig = false; ! /* Handle C++20 designated initializers. */ if (d->cur->index) { if (d->cur->index == error_mark_node) *************** reshape_init_class (tree type, reshape_i *** 6396,6402 **** } } else if (TREE_CODE (d->cur->index) == IDENTIFIER_NODE) ! field = get_class_binding (type, d->cur->index); else { if (complain & tf_error) --- 6434,6443 ---- } } else if (TREE_CODE (d->cur->index) == IDENTIFIER_NODE) ! { ! field = get_class_binding (type, d->cur->index); ! direct_desig = true; ! } else { if (complain & tf_error) *************** reshape_init_class (tree type, reshape_i *** 6405,6410 **** --- 6446,6456 ---- return error_mark_node; } + if (!field && ANON_AGGR_TYPE_P (type)) + /* Apparently the designator isn't for a member of this anonymous + struct, so head back to the enclosing class. */ + break; + if (!field || TREE_CODE (field) != FIELD_DECL) { if (complain & tf_error) *************** reshape_init_class (tree type, reshape_i *** 6437,6442 **** --- 6483,6489 ---- break; gcc_assert (aafield); field = aafield; + direct_desig = false; } } *************** reshape_init_class (tree type, reshape_i *** 6451,6459 **** assumed to correspond to no elements of the initializer list. */ goto continue_; ! field_init = reshape_init_r (TREE_TYPE (field), d, ! /*first_initializer_p=*/NULL_TREE, ! complain); if (field_init == error_mark_node) return error_mark_node; --- 6498,6529 ---- assumed to correspond to no elements of the initializer list. */ goto continue_; ! if (direct_desig) ! { ! /* The designated field F is initialized from this one element: ! Temporarily clear the designator so a recursive reshape_init_class ! doesn't try to find it again in F, and adjust d->end so we don't ! try to use the next initializer to initialize another member of F. ! ! Note that we don't want these changes if we found the designator ! inside an anon aggr above; we leave them alone to implement: ! ! "If the element is an anonymous union member and the initializer ! list is a brace-enclosed designated- initializer-list, the element ! is initialized by the designated-initializer-list { D }, where D ! is the designated- initializer-clause naming a member of the ! anonymous union member." */ ! auto end_ = make_temp_override (d->end, d->cur + 1); ! auto idx_ = make_temp_override (d->cur->index, NULL_TREE); ! field_init = reshape_init_r (TREE_TYPE (field), d, ! /*first_initializer_p=*/NULL_TREE, ! complain); ! } ! else ! field_init = reshape_init_r (TREE_TYPE (field), d, ! /*first_initializer_p=*/NULL_TREE, ! complain); ! if (field_init == error_mark_node) return error_mark_node; *************** reshape_init_r (tree type, reshape_iter *** 6573,6579 **** /* A non-aggregate type is always initialized with a single initializer. */ if (!CP_AGGREGATE_TYPE_P (type) ! /* As is an array with dependent bound. */ || (cxx_dialect >= cxx20 && TREE_CODE (type) == ARRAY_TYPE && uses_template_parms (TYPE_DOMAIN (type)))) --- 6643,6650 ---- /* A non-aggregate type is always initialized with a single initializer. */ if (!CP_AGGREGATE_TYPE_P (type) ! /* As is an array with dependent bound, which we can see ! during C++20 aggregate CTAD. */ || (cxx_dialect >= cxx20 && TREE_CODE (type) == ARRAY_TYPE && uses_template_parms (TYPE_DOMAIN (type)))) *************** reshape_init_r (tree type, reshape_iter *** 6688,6693 **** --- 6759,6765 ---- initializer already, and there is not a CONSTRUCTOR, it means that there is a missing set of braces (that is, we are processing the case for which reshape_init exists). */ + bool braces_elided_p = false; if (!first_initializer_p) { if (TREE_CODE (stripped_init) == CONSTRUCTOR) *************** reshape_init_r (tree type, reshape_iter *** 6703,6708 **** --- 6775,6789 ---- to handle initialization of arrays and similar. */ else if (COMPOUND_LITERAL_P (stripped_init)) gcc_assert (!BRACE_ENCLOSED_INITIALIZER_P (stripped_init)); + /* If we have an unresolved designator, we need to find the member it + designates within TYPE, so proceed to the routines below. For + FIELD_DECL or INTEGER_CST designators, we're already initializing + the designated element. */ + else if (d->cur->index + && TREE_CODE (d->cur->index) == IDENTIFIER_NODE) + /* Brace elision with designators is only permitted for anonymous + aggregates. */ + gcc_checking_assert (ANON_AGGR_TYPE_P (type)); /* A CONSTRUCTOR of the target's type is a previously digested initializer. */ else if (same_type_ignoring_top_level_qualifiers_p (type, init_type)) *************** reshape_init_r (tree type, reshape_iter *** 6723,6739 **** warning (OPT_Wmissing_braces, "missing braces around initializer for %qT", type); } /* Dispatch to specialized routines. */ if (CLASS_TYPE_P (type)) ! return reshape_init_class (type, d, first_initializer_p, complain); else if (TREE_CODE (type) == ARRAY_TYPE) ! return reshape_init_array (type, d, first_initializer_p, complain); else if (VECTOR_TYPE_P (type)) ! return reshape_init_vector (type, d, complain); else gcc_unreachable(); } /* Undo the brace-elision allowed by [dcl.init.aggr] in a --- 6804,6828 ---- warning (OPT_Wmissing_braces, "missing braces around initializer for %qT", type); + braces_elided_p = true; } /* Dispatch to specialized routines. */ + tree new_init; if (CLASS_TYPE_P (type)) ! new_init = reshape_init_class (type, d, first_initializer_p, complain); else if (TREE_CODE (type) == ARRAY_TYPE) ! new_init = reshape_init_array (type, d, first_initializer_p, complain); else if (VECTOR_TYPE_P (type)) ! new_init = reshape_init_vector (type, d, complain); else gcc_unreachable(); + + if (braces_elided_p + && TREE_CODE (new_init) == CONSTRUCTOR) + CONSTRUCTOR_BRACES_ELIDED_P (new_init) = true; + + return new_init; } /* Undo the brace-elision allowed by [dcl.init.aggr] in a *************** check_initializer (tree decl, tree init, *** 7039,7044 **** --- 7128,7137 ---- && !(init && BRACE_ENCLOSED_INITIALIZER_P (init) && CP_AGGREGATE_TYPE_P (type) && (CLASS_TYPE_P (type) + /* The call to build_aggr_init below could end up + calling build_vec_init, which may break when we + are processing a template. */ + || processing_template_decl || !TYPE_NEEDS_CONSTRUCTING (type) || type_has_extended_temps (type)))) || (DECL_DECOMPOSITION_P (decl) && TREE_CODE (type) == ARRAY_TYPE)) *************** make_rtl_for_nonlocal_decl (tree decl, t *** 7198,7204 **** This is horrible, as we're affecting a possibly-shared decl. Again, a one-true-decl model breaks down. */ ! set_user_assembler_name (ns_decl, asmspec); } } --- 7291,7298 ---- This is horrible, as we're affecting a possibly-shared decl. Again, a one-true-decl model breaks down. */ ! if (ns_decl != error_mark_node) ! set_user_assembler_name (ns_decl, asmspec); } } *************** cp_finish_decl (tree decl, tree init, bo *** 7766,7774 **** enum auto_deduction_context adc = adc_variable_type; if (VAR_P (decl) && DECL_DECOMPOSITION_P (decl)) adc = adc_decomp_type; type = TREE_TYPE (decl) = do_auto_deduction (type, d_init, auto_node, tf_warning_or_error, adc, ! NULL_TREE, flags); if (type == error_mark_node) return; if (TREE_CODE (type) == FUNCTION_TYPE) --- 7860,7879 ---- enum auto_deduction_context adc = adc_variable_type; if (VAR_P (decl) && DECL_DECOMPOSITION_P (decl)) adc = adc_decomp_type; + tree outer_targs = NULL_TREE; + if (flag_concepts + && PLACEHOLDER_TYPE_CONSTRAINTS_INFO (auto_node) + && VAR_P (decl) + && DECL_LANG_SPECIFIC (decl) + && DECL_TEMPLATE_INFO (decl) + && !DECL_FUNCTION_SCOPE_P (decl)) + /* The outer template arguments might be needed for satisfaction. + (For function scope variables, do_auto_deduction will obtain the + outer template arguments from current_function_decl.) */ + outer_targs = DECL_TI_ARGS (decl); type = TREE_TYPE (decl) = do_auto_deduction (type, d_init, auto_node, tf_warning_or_error, adc, ! outer_targs, flags); if (type == error_mark_node) return; if (TREE_CODE (type) == FUNCTION_TYPE) *************** name_unnamed_type (tree type, tree decl) *** 11190,11195 **** --- 11295,11327 ---- gcc_assert (!TYPE_UNNAMED_P (type)); } + /* Check that decltype(auto) was well-formed: only plain decltype(auto) + is allowed. TYPE might contain a decltype(auto). Returns true if + there was a problem, false otherwise. */ + + static bool + check_decltype_auto (location_t loc, tree type) + { + if (tree a = type_uses_auto (type)) + { + if (AUTO_IS_DECLTYPE (a)) + { + if (a != type) + { + error_at (loc, "%qT as type rather than plain " + "%", type); + return true; + } + else if (TYPE_QUALS (type) != TYPE_UNQUALIFIED) + { + error_at (loc, "% cannot be cv-qualified"); + return true; + } + } + } + return false; + } + /* Given declspecs and a declarator (abstract or otherwise), determine the name and type of the object declared and construct a DECL node for it. *************** grokdeclarator (const cp_declarator *dec *** 12478,12483 **** --- 12610,12620 ---- "type specifier", name); return error_mark_node; } + if (late_return_type && sfk == sfk_conversion) + { + error ("a conversion function cannot have a trailing return type"); + return error_mark_node; + } type = splice_late_return_type (type, late_return_type); if (type == error_mark_node) return error_mark_node; *************** grokdeclarator (const cp_declarator *dec *** 12526,12550 **** "allowed"); return error_mark_node; } ! /* Only plain decltype(auto) is allowed. */ ! if (tree a = type_uses_auto (type)) ! { ! if (AUTO_IS_DECLTYPE (a)) ! { ! if (a != type) ! { ! error_at (typespec_loc, "%qT as type rather than " ! "plain %", type); ! return error_mark_node; ! } ! else if (TYPE_QUALS (type) != TYPE_UNQUALIFIED) ! { ! error_at (typespec_loc, "% cannot be " ! "cv-qualified"); ! return error_mark_node; ! } ! } ! } if (ctype == NULL_TREE && decl_context == FIELD --- 12663,12671 ---- "allowed"); return error_mark_node; } ! ! if (check_decltype_auto (typespec_loc, type)) ! return error_mark_node; if (ctype == NULL_TREE && decl_context == FIELD *************** grokdeclarator (const cp_declarator *dec *** 12658,12665 **** maybe_warn_cpp0x (CPP0X_EXPLICIT_CONVERSION); explicitp = 2; } - if (late_return_type_p) - error ("a conversion function cannot have a trailing return type"); } else if (sfk == sfk_deduction_guide) { --- 12779,12784 ---- *************** grokdeclarator (const cp_declarator *dec *** 12904,12909 **** --- 13023,13037 ---- id_loc = declarator ? declarator->id_loc : input_location; + if (innermost_code != cdk_function + /* Don't check this if it can be the artifical decltype(auto) + we created when building a constraint in a compound-requirement: + that the type-constraint is plain is going to be checked in + cp_parser_compound_requirement. */ + && decl_context != TYPENAME + && check_decltype_auto (id_loc, type)) + return error_mark_node; + /* A `constexpr' specifier used in an object declaration declares the object as `const'. */ if (constexpr_p && innermost_code != cdk_function) *************** grokdeclarator (const cp_declarator *dec *** 13789,13794 **** --- 13917,13933 ---- if (declspecs->gnu_thread_keyword_p) SET_DECL_GNU_TLS_P (decl); } + + /* Set the constraints on the declaration. */ + bool memtmpl = (processing_template_decl + > template_class_depth (current_class_type)); + if (memtmpl) + { + tree tmpl_reqs + = TEMPLATE_PARMS_CONSTRAINTS (current_template_parms); + tree ci = build_constraints (tmpl_reqs, NULL_TREE); + set_constraints (decl, ci); + } } else { *************** static tree *** 14178,14183 **** --- 14317,14330 ---- local_variable_p_walkfn (tree *tp, int *walk_subtrees, void * /*data*/) { + if (unevaluated_p (TREE_CODE (*tp))) + { + /* DR 2082 permits local variables in unevaluated contexts + within a default argument. */ + *walk_subtrees = 0; + return NULL_TREE; + } + if (local_variable_p (*tp) && (!DECL_ARTIFICIAL (*tp) || DECL_NAME (*tp) == this_identifier)) return *tp; diff -Nrcpad gcc-11.2.0/gcc/cp/decl2.c gcc-11.3.0/gcc/cp/decl2.c *** gcc-11.2.0/gcc/cp/decl2.c Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/cp/decl2.c Thu Apr 21 07:58:53 2022 *************** is_late_template_attribute (tree attr, t *** 1202,1207 **** --- 1202,1210 ---- { tree type = TYPE_P (decl) ? decl : TREE_TYPE (decl); + if (!type) + return true; + /* We can't apply any attributes to a completely unknown type until instantiation time. */ enum tree_code code = TREE_CODE (type); *************** c_parse_final_cleanups (void) *** 5137,5142 **** --- 5140,5146 ---- if (!DECL_EXTERNAL (decl) && decl_needed_p (decl) && !TREE_ASM_WRITTEN (decl) + && !DECL_IMMEDIATE_FUNCTION_P (decl) && !node->definition) { /* We will output the function; no longer consider it in this *************** mark_used (tree decl, tsubst_flags_t com *** 5605,5610 **** --- 5609,5615 ---- used_types_insert (DECL_CONTEXT (decl)); if (TREE_CODE (decl) == FUNCTION_DECL + && !DECL_DELETED_FN (decl) && !maybe_instantiate_noexcept (decl, complain)) return false; diff -Nrcpad gcc-11.2.0/gcc/cp/except.c gcc-11.3.0/gcc/cp/except.c *** gcc-11.2.0/gcc/cp/except.c Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/cp/except.c Thu Apr 21 07:58:53 2022 *************** expand_start_catch_block (tree decl) *** 448,453 **** --- 448,470 ---- return type; } + /* True if we are in a catch block within a catch block. Assumes that we are + in function scope. */ + + static bool + in_nested_catch (void) + { + int catches = 0; + + /* Scan through the template parameter scopes. */ + for (cp_binding_level *b = current_binding_level; + b->kind != sk_function_parms; + b = b->level_chain) + if (b->kind == sk_catch + && ++catches == 2) + return true; + return false; + } /* Call this to end a catch block. Its responsible for emitting the code to handle jumping back to the correct place, and for emitting *************** expand_end_catch_block (void) *** 463,469 **** a handler of the function-try-block of a constructor or destructor. */ if (in_function_try_handler && (DECL_CONSTRUCTOR_P (current_function_decl) ! || DECL_DESTRUCTOR_P (current_function_decl))) { tree rethrow = build_throw (input_location, NULL_TREE); TREE_NO_WARNING (rethrow) = true; --- 480,487 ---- a handler of the function-try-block of a constructor or destructor. */ if (in_function_try_handler && (DECL_CONSTRUCTOR_P (current_function_decl) ! || DECL_DESTRUCTOR_P (current_function_decl)) ! && !in_nested_catch ()) { tree rethrow = build_throw (input_location, NULL_TREE); TREE_NO_WARNING (rethrow) = true; diff -Nrcpad gcc-11.2.0/gcc/cp/init.c gcc-11.3.0/gcc/cp/init.c *** gcc-11.2.0/gcc/cp/init.c Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/cp/init.c Thu Apr 21 07:58:53 2022 *************** perform_target_ctor (tree init) *** 541,546 **** --- 541,556 ---- |LOOKUP_NONVIRTUAL |LOOKUP_DESTRUCTOR, 0, tf_warning_or_error); + if (DECL_HAS_IN_CHARGE_PARM_P (current_function_decl)) + { + tree base = build_delete (input_location, + type, decl, sfk_base_destructor, + LOOKUP_NORMAL + |LOOKUP_NONVIRTUAL + |LOOKUP_DESTRUCTOR, + 0, tf_warning_or_error); + expr = build_if_in_charge (expr, base); + } if (expr != error_mark_node && TYPE_HAS_NONTRIVIAL_DESTRUCTOR (type)) finish_eh_cleanup (expr); *************** std_placement_new_fn_p (tree alloc_fn) *** 2715,2747 **** } /* For element type ELT_TYPE, return the appropriate type of the heap object ! containing such element(s). COOKIE_SIZE is NULL or the size of cookie ! in bytes. FULL_SIZE is NULL if it is unknown how big the heap allocation ! will be, otherwise size of the heap object. If COOKIE_SIZE is NULL, ! return array type ELT_TYPE[FULL_SIZE / sizeof(ELT_TYPE)], otherwise return struct { size_t[COOKIE_SIZE/sizeof(size_t)]; ELT_TYPE[N]; } ! where N is nothing (flexible array member) if FULL_SIZE is NULL, otherwise ! it is computed such that the size of the struct fits into FULL_SIZE. */ tree ! build_new_constexpr_heap_type (tree elt_type, tree cookie_size, tree full_size) { ! gcc_assert (cookie_size == NULL_TREE || tree_fits_uhwi_p (cookie_size)); ! gcc_assert (full_size == NULL_TREE || tree_fits_uhwi_p (full_size)); ! unsigned HOST_WIDE_INT csz = cookie_size ? tree_to_uhwi (cookie_size) : 0; ! tree itype2 = NULL_TREE; ! if (full_size) ! { ! unsigned HOST_WIDE_INT fsz = tree_to_uhwi (full_size); ! gcc_assert (fsz >= csz); ! fsz -= csz; ! fsz /= int_size_in_bytes (elt_type); ! itype2 = build_index_type (size_int (fsz - 1)); ! if (!cookie_size) ! return build_cplus_array_type (elt_type, itype2); ! } ! else ! gcc_assert (cookie_size); csz /= int_size_in_bytes (sizetype); tree itype1 = build_index_type (size_int (csz - 1)); tree atype1 = build_cplus_array_type (sizetype, itype1); --- 2725,2741 ---- } /* For element type ELT_TYPE, return the appropriate type of the heap object ! containing such element(s). COOKIE_SIZE is the size of cookie in bytes. ! Return struct { size_t[COOKIE_SIZE/sizeof(size_t)]; ELT_TYPE[N]; } ! where N is nothing (flexible array member) if ITYPE2 is NULL, otherwise ! the array has ITYPE2 as its TYPE_DOMAIN. */ tree ! build_new_constexpr_heap_type (tree elt_type, tree cookie_size, tree itype2) { ! gcc_assert (tree_fits_uhwi_p (cookie_size)); ! unsigned HOST_WIDE_INT csz = tree_to_uhwi (cookie_size); csz /= int_size_in_bytes (sizetype); tree itype1 = build_index_type (size_int (csz - 1)); tree atype1 = build_cplus_array_type (sizetype, itype1); *************** build_new_1 (vec **placemen *** 3187,3192 **** --- 3181,3192 ---- outer_nelts_check = NULL_TREE; } + /* If size is zero e.g. due to type having zero size, try to + preserve outer_nelts for constant expression evaluation + purposes. */ + if (integer_zerop (size) && outer_nelts) + size = build2 (MULT_EXPR, TREE_TYPE (size), size, outer_nelts); + alloc_call = build_operator_new_call (fnname, placement, &size, &cookie_size, align_arg, outer_nelts_check, *************** build_new_1 (vec **placemen *** 3262,3268 **** } if (cookie_size) ! alloc_call = maybe_wrap_new_for_constexpr (alloc_call, elt_type, cookie_size); /* In the simple case, we can stop now. */ --- 3262,3268 ---- } if (cookie_size) ! alloc_call = maybe_wrap_new_for_constexpr (alloc_call, type, cookie_size); /* In the simple case, we can stop now. */ *************** build_vec_init (tree base, tree maxindex *** 4185,4190 **** --- 4185,4191 ---- if (init && TREE_CODE (atype) == ARRAY_TYPE && TREE_CONSTANT (maxindex) + && !vla_type_p (type) && (from_array == 2 ? vec_copy_assign_is_trivial (inner_elt_type, init) : !TYPE_NEEDS_CONSTRUCTING (type)) diff -Nrcpad gcc-11.2.0/gcc/cp/lambda.c gcc-11.3.0/gcc/cp/lambda.c *** gcc-11.2.0/gcc/cp/lambda.c Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/cp/lambda.c Thu Apr 21 07:58:53 2022 *************** lambda_expr_this_capture (tree lambda, i *** 743,748 **** --- 743,749 ---- { tree lambda_stack = NULL_TREE; tree init = NULL_TREE; + bool saw_complete = false; /* If we are in a lambda function, we can move out until we hit: 1. a non-lambda function or NSDMI, *************** lambda_expr_this_capture (tree lambda, i *** 761,766 **** --- 762,772 ---- lambda_stack); tree closure = LAMBDA_EXPR_CLOSURE (tlambda); + if (COMPLETE_TYPE_P (closure)) + /* We're instantiating a generic lambda op(), the containing + scope may be gone. */ + saw_complete = true; + tree containing_function = decl_function_context (TYPE_NAME (closure)); *************** lambda_expr_this_capture (tree lambda, i *** 770,776 **** /* Lambda in an NSDMI. We don't have a function to look up 'this' in, but we can find (or rebuild) the fake one from inject_this_parameter. */ ! if (!containing_function && !COMPLETE_TYPE_P (closure)) /* If we're parsing a lambda in a non-local class, we can find the fake 'this' in scope_chain. */ init = scope_chain->x_current_class_ptr; --- 776,782 ---- /* Lambda in an NSDMI. We don't have a function to look up 'this' in, but we can find (or rebuild) the fake one from inject_this_parameter. */ ! if (!containing_function && !saw_complete) /* If we're parsing a lambda in a non-local class, we can find the fake 'this' in scope_chain. */ init = scope_chain->x_current_class_ptr; diff -Nrcpad gcc-11.2.0/gcc/cp/logic.cc gcc-11.3.0/gcc/cp/logic.cc *** gcc-11.2.0/gcc/cp/logic.cc Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/cp/logic.cc Thu Apr 21 07:58:53 2022 *************** struct formula *** 223,231 **** formula (tree t) { ! /* This should call emplace_back(). There's an extra copy being ! invoked by using push_back(). */ ! m_clauses.push_back (t); m_current = m_clauses.begin (); } --- 223,229 ---- formula (tree t) { ! m_clauses.emplace_back (t); m_current = m_clauses.begin (); } *************** struct formula *** 248,255 **** clause& branch () { gcc_assert (!done ()); ! m_clauses.push_back (*m_current); ! return m_clauses.back (); } /* Returns the position of the current clause. */ --- 246,252 ---- clause& branch () { gcc_assert (!done ()); ! return *m_clauses.insert (std::next (m_current), *m_current); } /* Returns the position of the current clause. */ *************** struct formula *** 287,292 **** --- 284,297 ---- return m_clauses.end (); } + /* Remove the specified clause from the formula. */ + + void erase (iterator i) + { + gcc_assert (i != m_current); + m_clauses.erase (i); + } + std::list m_clauses; /* The list of clauses. */ iterator m_current; /* The current clause. */ }; *************** decompose_clause (formula& f, clause& c, *** 659,697 **** f.advance (); } - /* Decompose the logical formula F according to the logical - rules determined by R. The result is a formula containing - clauses that contain only atomic terms. */ - - void - decompose_formula (formula& f, rules r) - { - while (!f.done ()) - decompose_clause (f, *f.current (), r); - } - - /* Fully decomposing T into a list of sequents, each comprised of - a list of atomic constraints, as if T were an antecedent. */ - - static formula - decompose_antecedents (tree t) - { - formula f (t); - decompose_formula (f, left); - return f; - } - - /* Fully decomposing T into a list of sequents, each comprised of - a list of atomic constraints, as if T were a consequent. */ - - static formula - decompose_consequents (tree t) - { - formula f (t); - decompose_formula (f, right); - return f; - } - static bool derive_proof (clause&, tree, rules); /* Derive a proof of both operands of T. */ --- 664,669 ---- *************** derive_proof (clause& c, tree t, rules r *** 744,771 **** } } - /* Derive a proof of T from disjunctive clauses in F. */ - - static bool - derive_proofs (formula& f, tree t, rules r) - { - for (formula::iterator i = f.begin(); i != f.end(); ++i) - if (!derive_proof (*i, t, r)) - return false; - return true; - } - - /* The largest number of clauses in CNF or DNF we accept as input - for subsumption. This an upper bound of 2^16 expressions. */ - static int max_problem_size = 16; - - static inline bool - diagnose_constraint_size (tree t) - { - error_at (input_location, "%qE exceeds the maximum constraint complexity", t); - return false; - } - /* Key/value pair for caching subsumption results. This associates a pair of constraints with a boolean value indicating the result. */ --- 716,721 ---- *************** subsumes_constraints_nonnull (tree lhs, *** 845,875 **** if (bool *b = lookup_subsumption(lhs, rhs)) return *b; ! int n1 = dnf_size (lhs); ! int n2 = cnf_size (rhs); ! ! /* Make sure we haven't exceeded the largest acceptable problem. */ ! if (std::min (n1, n2) >= max_problem_size) ! { ! if (n1 < n2) ! diagnose_constraint_size (lhs); ! else ! diagnose_constraint_size (rhs); ! return false; ! } ! ! /* Decompose the smaller of the two formulas, and recursively ! check for implication of the larger. */ ! bool result; ! if (n1 <= n2) ! { ! formula dnf = decompose_antecedents (lhs); ! result = derive_proofs (dnf, rhs, left); ! } else { ! formula cnf = decompose_consequents (rhs); ! result = derive_proofs (cnf, lhs, right); } return save_subsumption (lhs, rhs, result); --- 795,827 ---- if (bool *b = lookup_subsumption(lhs, rhs)) return *b; ! tree x, y; ! rules r; ! if (dnf_size (lhs) <= cnf_size (rhs)) ! /* When LHS looks simpler than RHS, we'll determine subsumption by ! decomposing LHS into its disjunctive normal form and checking that ! each (conjunctive) clause in the decomposed LHS implies RHS. */ ! x = lhs, y = rhs, r = left; else + /* Otherwise, we'll determine subsumption by decomposing RHS into its + conjunctive normal form and checking that each (disjunctive) clause + in the decomposed RHS implies LHS. */ + x = rhs, y = lhs, r = right; + + /* Decompose X into a list of sequents according to R, and recursively + check for implication of Y. */ + bool result = true; + formula f (x); + while (!f.done ()) { ! auto i = f.current (); ! decompose_clause (f, *i, r); ! if (!derive_proof (*i, y, r)) ! { ! result = false; ! break; ! } ! f.erase (i); } return save_subsumption (lhs, rhs, result); diff -Nrcpad gcc-11.2.0/gcc/cp/mangle.c gcc-11.3.0/gcc/cp/mangle.c *** gcc-11.2.0/gcc/cp/mangle.c Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/cp/mangle.c Thu Apr 21 07:58:53 2022 *************** write_expression (tree expr) *** 3342,3348 **** { if (i > last_nonzero) break; ! if (TREE_CODE (etype) == UNION_TYPE) { /* Express the active member as a designator. */ write_string ("di"); --- 3342,3348 ---- { if (i > last_nonzero) break; ! if (!undigested && TREE_CODE (etype) == UNION_TYPE) { /* Express the active member as a designator. */ write_string ("di"); diff -Nrcpad gcc-11.2.0/gcc/cp/method.c gcc-11.3.0/gcc/cp/method.c *** gcc-11.2.0/gcc/cp/method.c Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/cp/method.c Thu Apr 21 07:58:53 2022 *************** build_comparison_op (tree fndecl, tsubst *** 1424,1429 **** --- 1424,1433 ---- field; field = next_initializable_field (DECL_CHAIN (field))) { + if (DECL_VIRTUAL_P (field)) + /* Don't compare vptr fields. */ + continue; + tree expr_type = TREE_TYPE (field); location_t field_loc = DECL_SOURCE_LOCATION (field); *************** constructible_expr (tree to, tree from) *** 2079,2084 **** --- 2083,2089 ---- static tree is_xible_helper (enum tree_code code, tree to, tree from, bool trivial) { + to = complete_type (to); deferring_access_check_sentinel acs (dk_no_deferred); if (VOID_TYPE_P (to) || ABSTRACT_CLASS_TYPE_P (to) || (from && FUNC_OR_METHOD_TYPE_P (from) *************** is_xible_helper (enum tree_code code, tr *** 2087,2094 **** tree expr; if (code == MODIFY_EXPR) 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 --- 2092,2101 ---- tree expr; if (code == MODIFY_EXPR) expr = assignable_expr (to, from); ! else if (trivial && from && TREE_CHAIN (from) ! && cxx_dialect < cxx20) return error_mark_node; // only 0- and 1-argument ctors can be trivial + // before C++20 aggregate paren init else if (TREE_CODE (to) == ARRAY_TYPE && !TYPE_DOMAIN (to)) return error_mark_node; // can't construct an array of unknown bound else diff -Nrcpad gcc-11.2.0/gcc/cp/name-lookup.c gcc-11.3.0/gcc/cp/name-lookup.c *** gcc-11.2.0/gcc/cp/name-lookup.c Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/cp/name-lookup.c Thu Apr 21 07:58:53 2022 *************** check_local_shadow (tree decl) *** 3259,3264 **** --- 3259,3268 ---- enum opt_code warning_code; if (warn_shadow) warning_code = OPT_Wshadow; + else if ((TREE_CODE (decl) == TYPE_DECL) + ^ (TREE_CODE (old) == TYPE_DECL)) + /* If exactly one is a type, they aren't compatible. */ + warning_code = OPT_Wshadow_local; else if ((TREE_TYPE (old) && TREE_TYPE (decl) && same_type_p (TREE_TYPE (old), TREE_TYPE (decl))) *************** set_decl_context_in_fn (tree ctx, tree d *** 3378,3384 **** void push_local_extern_decl_alias (tree decl) { ! if (dependent_type_p (TREE_TYPE (decl))) return; /* EH specs were not part of the function type prior to c++17, but we still can't go pushing dependent eh specs into the namespace. */ --- 3382,3391 ---- void push_local_extern_decl_alias (tree decl) { ! if (dependent_type_p (TREE_TYPE (decl)) ! || (processing_template_decl ! && VAR_P (decl) ! && CP_DECL_THREAD_LOCAL_P (decl))) return; /* EH specs were not part of the function type prior to c++17, but we still can't go pushing dependent eh specs into the namespace. */ *************** push_local_extern_decl_alias (tree decl) *** 3474,3479 **** --- 3481,3493 ---- push_nested_namespace (ns); alias = do_pushdecl (alias, /* hiding= */true); pop_nested_namespace (ns); + if (VAR_P (decl) + && CP_DECL_THREAD_LOCAL_P (decl) + && alias != error_mark_node) + set_decl_tls_model (alias, DECL_TLS_MODEL (decl)); + + /* Adjust visibility. */ + determine_visibility (alias); } } diff -Nrcpad gcc-11.2.0/gcc/cp/name-lookup.h gcc-11.3.0/gcc/cp/name-lookup.h *** gcc-11.2.0/gcc/cp/name-lookup.h Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/cp/name-lookup.h Thu Apr 21 07:58:53 2022 *************** struct GTY(()) cp_binding_level { *** 309,315 **** /* true for SK_FUNCTION_PARMS of immediate functions. */ unsigned immediate_fn_ctx_p : 1; ! /* 22 bits left to fill a 32-bit word. */ }; /* The binding level currently in effect. */ --- 309,318 ---- /* true for SK_FUNCTION_PARMS of immediate functions. */ unsigned immediate_fn_ctx_p : 1; ! /* True for SK_FUNCTION_PARMS of a requires-expression. */ ! unsigned requires_expression: 1; ! ! /* 21 bits left to fill a 32-bit word. */ }; /* The binding level currently in effect. */ diff -Nrcpad gcc-11.2.0/gcc/cp/parser.c gcc-11.3.0/gcc/cp/parser.c *** gcc-11.2.0/gcc/cp/parser.c Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/cp/parser.c Thu Apr 21 07:58:53 2022 *************** cp_parser_primary_expression (cp_parser *** 5948,5954 **** /* Check to see if DECL is a local variable in a context where that is forbidden. */ if ((parser->local_variables_forbidden_p & LOCAL_VARS_FORBIDDEN) ! && local_variable_p (decl)) { const char *msg = (TREE_CODE (decl) == PARM_DECL --- 5948,5957 ---- /* Check to see if DECL is a local variable in a context where that is forbidden. */ if ((parser->local_variables_forbidden_p & LOCAL_VARS_FORBIDDEN) ! && local_variable_p (decl) ! /* DR 2082 permits local variables in unevaluated contexts ! within a default argument. */ ! && !cp_unevaluated_operand) { const char *msg = (TREE_CODE (decl) == PARM_DECL *************** cp_parser_postfix_expression (cp_parser *** 7384,7391 **** } /* Look for the closing `)'. */ parens.require_close (parser); ! return cp_build_vec_convert (expression, type_location, type, ! tf_warning_or_error); } case RID_BUILTIN_BIT_CAST: --- 7387,7396 ---- } /* Look for the closing `)'. */ parens.require_close (parser); ! postfix_expression ! = cp_build_vec_convert (expression, type_location, type, ! tf_warning_or_error); ! break; } case RID_BUILTIN_BIT_CAST: *************** cp_parser_postfix_expression (cp_parser *** 7410,7417 **** expression = cp_parser_assignment_expression (parser); /* Look for the closing `)'. */ parens.require_close (parser); ! return cp_build_bit_cast (type_location, type, expression, ! tf_warning_or_error); } default: --- 7415,7424 ---- expression = cp_parser_assignment_expression (parser); /* Look for the closing `)'. */ parens.require_close (parser); ! postfix_expression ! = cp_build_bit_cast (type_location, type, expression, ! tf_warning_or_error); ! break; } default: *************** cp_parser_lambda_introducer (cp_parser* *** 11020,11029 **** if (cp_lexer_next_token_is_keyword (parser->lexer, RID_THIS)) { location_t loc = cp_lexer_peek_token (parser->lexer)->location; ! if (cxx_dialect < cxx20 && LAMBDA_EXPR_DEFAULT_CAPTURE_MODE (lambda_expr) == CPLD_COPY) ! 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, --- 11027,11038 ---- if (cp_lexer_next_token_is_keyword (parser->lexer, RID_THIS)) { location_t loc = cp_lexer_peek_token (parser->lexer)->location; ! if (cxx_dialect < cxx20 && pedantic && LAMBDA_EXPR_DEFAULT_CAPTURE_MODE (lambda_expr) == CPLD_COPY) ! pedwarn (loc, 0, ! "explicit by-copy capture of % " ! "with by-copy capture default only available with " ! "%<-std=c++20%> or %<-std=gnu++20%>"); cp_lexer_consume_token (parser->lexer); if (LAMBDA_EXPR_THIS_CAPTURE (lambda_expr)) pedwarn (input_location, 0, *************** cp_parser_decl_specifier_seq (cp_parser* *** 15049,15055 **** if (found_decl_spec && (flags & CP_PARSER_FLAGS_ONLY_TYPE_OR_CONSTEXPR) && token->keyword != RID_CONSTEXPR) ! error ("% invalid in condition"); if (found_decl_spec && (flags & CP_PARSER_FLAGS_ONLY_MUTABLE_OR_CONSTEXPR) --- 15058,15064 ---- if (found_decl_spec && (flags & CP_PARSER_FLAGS_ONLY_TYPE_OR_CONSTEXPR) && token->keyword != RID_CONSTEXPR) ! error ("%qD invalid in condition", ridpointers[token->keyword]); if (found_decl_spec && (flags & CP_PARSER_FLAGS_ONLY_MUTABLE_OR_CONSTEXPR) *************** cp_parser_simple_type_specifier (cp_pars *** 18763,18769 **** else if (!flag_concepts) pedwarn (token->location, 0, "use of % in parameter declaration " ! "only available with %<-fconcepts-ts%>"); } else type = make_auto (); --- 18772,18778 ---- else if (!flag_concepts) pedwarn (token->location, 0, "use of % in parameter declaration " ! "only available with %<-std=c++20%> or %<-fconcepts%>"); } else type = make_auto (); *************** cp_parser_simple_type_specifier (cp_pars *** 19105,19111 **** Note that the Concepts TS allows the auto or decltype(auto) to be omitted in a constrained-type-specifier. */ ! tree cp_parser_placeholder_type_specifier (cp_parser *parser, location_t loc, tree tmpl, bool tentative) { --- 19114,19120 ---- Note that the Concepts TS allows the auto or decltype(auto) to be omitted in a constrained-type-specifier. */ ! static tree cp_parser_placeholder_type_specifier (cp_parser *parser, location_t loc, tree tmpl, bool tentative) { *************** cp_parser_placeholder_type_specifier (cp *** 19121,19127 **** args = TREE_OPERAND (tmpl, 1); tmpl = TREE_OPERAND (tmpl, 0); } ! if (args == NULL_TREE) /* A concept-name with no arguments can't be an expression. */ tentative = false; --- 19130,19136 ---- args = TREE_OPERAND (tmpl, 1); tmpl = TREE_OPERAND (tmpl, 0); } ! else /* A concept-name with no arguments can't be an expression. */ tentative = false; *************** cp_parser_placeholder_type_specifier (cp *** 19159,19166 **** if (!flag_concepts_ts || !processing_template_parmlist) { ! error_at (loc, "%qE does not constrain a type", DECL_NAME (con)); ! inform (DECL_SOURCE_LOCATION (con), "concept defined here"); return error_mark_node; } } --- 19168,19178 ---- if (!flag_concepts_ts || !processing_template_parmlist) { ! if (!tentative) ! { ! error_at (loc, "%qE does not constrain a type", DECL_NAME (con)); ! inform (DECL_SOURCE_LOCATION (con), "concept defined here"); ! } return error_mark_node; } } *************** cp_parser_default_argument (cp_parser *p *** 24043,24048 **** --- 24055,24062 ---- set correctly. */ saved_greater_than_is_operator_p = parser->greater_than_is_operator_p; parser->greater_than_is_operator_p = !template_parm_p; + auto odsd = make_temp_override (parser->omp_declare_simd, NULL); + auto ord = make_temp_override (parser->oacc_routine, NULL); /* Local variable names (and the `this' keyword) may not appear in a default argument. */ saved_local_variables_forbidden_p = parser->local_variables_forbidden_p; *************** cp_parser_requires_expression (cp_parser *** 28835,28841 **** scope_sentinel () { ++cp_unevaluated_operand; ! begin_scope (sk_block, NULL_TREE); } ~scope_sentinel () --- 28849,28856 ---- scope_sentinel () { ++cp_unevaluated_operand; ! begin_scope (sk_function_parms, NULL_TREE); ! current_binding_level->requires_expression = true; } ~scope_sentinel () *************** cp_parser_template_introduction (cp_pars *** 30261,30269 **** --- 30276,30290 ---- tree saved_scope = parser->scope; tree saved_object_scope = parser->object_scope; tree saved_qualifying_scope = parser->qualifying_scope; + bool saved_colon_corrects_to_scope_p = parser->colon_corrects_to_scope_p; cp_token *start_token = cp_lexer_peek_token (parser->lexer); + /* In classes don't parse valid unnamed bitfields as invalid + template introductions. */ + if (member_p) + parser->colon_corrects_to_scope_p = false; + /* Look for the optional `::' operator. */ cp_parser_global_scope_opt (parser, /*current_scope_valid_p=*/false); *************** cp_parser_template_introduction (cp_pars *** 30284,30289 **** --- 30305,30311 ---- parser->scope = saved_scope; parser->object_scope = saved_object_scope; parser->qualifying_scope = saved_qualifying_scope; + parser->colon_corrects_to_scope_p = saved_colon_corrects_to_scope_p; if (concept_name == error_mark_node || (seen_error () && !concept_definition_p (tmpl_decl))) *************** class_decl_loc_t::diag_mismatched_tags ( *** 32427,32433 **** class_decl_loc_t *cdlguide = this; tree type = TREE_TYPE (type_decl); ! if (CLASSTYPE_IMPLICIT_INSTANTIATION (type)) { /* For implicit instantiations of a primary template look up the primary or partial specialization and use it as --- 32449,32455 ---- class_decl_loc_t *cdlguide = this; tree type = TREE_TYPE (type_decl); ! if (CLASS_TYPE_P (type) && CLASSTYPE_IMPLICIT_INSTANTIATION (type)) { /* For implicit instantiations of a primary template look up the primary or partial specialization and use it as *************** cp_parser_oacc_declare (cp_parser *parse *** 42354,42360 **** dependent local extern variable decls are as rare as hen's teeth. */ if (auto alias = DECL_LOCAL_DECL_ALIAS (decl)) ! decl = alias; if (OMP_CLAUSE_MAP_KIND (t) == GOMP_MAP_LINK) id = get_identifier ("omp declare target link"); --- 42376,42383 ---- dependent local extern variable decls are as rare as hen's teeth. */ if (auto alias = DECL_LOCAL_DECL_ALIAS (decl)) ! if (alias != error_mark_node) ! decl = alias; if (OMP_CLAUSE_MAP_KIND (t) == GOMP_MAP_LINK) id = get_identifier ("omp declare target link"); *************** cp_parser_late_parsing_omp_declare_simd *** 43305,43310 **** --- 43328,43398 ---- return attrs; } + /* Helper for cp_parser_omp_declare_target, handle one to or link clause + on #pragma omp declare target. Return false if errors were reported. */ + + static bool + handle_omp_declare_target_clause (tree c, tree t, int device_type) + { + tree at1 = lookup_attribute ("omp declare target", DECL_ATTRIBUTES (t)); + tree at2 = lookup_attribute ("omp declare target link", DECL_ATTRIBUTES (t)); + tree id; + if (OMP_CLAUSE_CODE (c) == OMP_CLAUSE_LINK) + { + id = get_identifier ("omp declare target link"); + std::swap (at1, at2); + } + else + id = get_identifier ("omp declare target"); + if (at2) + { + error_at (OMP_CLAUSE_LOCATION (c), + "%qD specified both in declare target % and %" + " clauses", t); + return false; + } + if (!at1) + { + DECL_ATTRIBUTES (t) = tree_cons (id, NULL_TREE, DECL_ATTRIBUTES (t)); + if (TREE_CODE (t) != FUNCTION_DECL && !is_global_var (t)) + return true; + + symtab_node *node = symtab_node::get (t); + if (node != NULL) + { + node->offloadable = 1; + if (ENABLE_OFFLOADING) + { + g->have_offload = true; + if (is_a (node)) + vec_safe_push (offload_vars, t); + } + } + } + if (TREE_CODE (t) != FUNCTION_DECL) + return true; + if ((device_type & OMP_CLAUSE_DEVICE_TYPE_HOST) != 0) + { + tree at3 = lookup_attribute ("omp declare target host", + DECL_ATTRIBUTES (t)); + if (at3 == NULL_TREE) + { + id = get_identifier ("omp declare target host"); + DECL_ATTRIBUTES (t) = tree_cons (id, NULL_TREE, DECL_ATTRIBUTES (t)); + } + } + if ((device_type & OMP_CLAUSE_DEVICE_TYPE_NOHOST) != 0) + { + tree at3 = lookup_attribute ("omp declare target nohost", + DECL_ATTRIBUTES (t)); + if (at3 == NULL_TREE) + { + id = get_identifier ("omp declare target nohost"); + DECL_ATTRIBUTES (t) = tree_cons (id, NULL_TREE, DECL_ATTRIBUTES (t)); + } + } + return true; + } /* OpenMP 4.0: # pragma omp declare target new-line *************** cp_parser_omp_declare_target (cp_parser *** 43351,43417 **** { if (OMP_CLAUSE_CODE (c) == OMP_CLAUSE_DEVICE_TYPE) continue; ! tree t = OMP_CLAUSE_DECL (c), id; ! tree at1 = lookup_attribute ("omp declare target", DECL_ATTRIBUTES (t)); ! tree at2 = lookup_attribute ("omp declare target link", ! DECL_ATTRIBUTES (t)); only_device_type = false; ! if (OMP_CLAUSE_CODE (c) == OMP_CLAUSE_LINK) ! { ! id = get_identifier ("omp declare target link"); ! std::swap (at1, at2); ! } ! else ! id = get_identifier ("omp declare target"); ! if (at2) ! { ! error_at (OMP_CLAUSE_LOCATION (c), ! "%qD specified both in declare target % and %" ! " clauses", t); ! continue; ! } ! if (!at1) ! { ! DECL_ATTRIBUTES (t) = tree_cons (id, NULL_TREE, DECL_ATTRIBUTES (t)); ! if (TREE_CODE (t) != FUNCTION_DECL && !is_global_var (t)) ! continue; ! ! symtab_node *node = symtab_node::get (t); ! if (node != NULL) ! { ! node->offloadable = 1; ! if (ENABLE_OFFLOADING) ! { ! g->have_offload = true; ! if (is_a (node)) ! vec_safe_push (offload_vars, t); ! } ! } ! } ! if (TREE_CODE (t) != FUNCTION_DECL) continue; ! if ((device_type & OMP_CLAUSE_DEVICE_TYPE_HOST) != 0) ! { ! tree at3 = lookup_attribute ("omp declare target host", ! DECL_ATTRIBUTES (t)); ! if (at3 == NULL_TREE) ! { ! id = get_identifier ("omp declare target host"); ! DECL_ATTRIBUTES (t) ! = tree_cons (id, NULL_TREE, DECL_ATTRIBUTES (t)); ! } ! } ! if ((device_type & OMP_CLAUSE_DEVICE_TYPE_NOHOST) != 0) ! { ! tree at3 = lookup_attribute ("omp declare target nohost", ! DECL_ATTRIBUTES (t)); ! if (at3 == NULL_TREE) ! { ! id = get_identifier ("omp declare target nohost"); ! DECL_ATTRIBUTES (t) ! = tree_cons (id, NULL_TREE, DECL_ATTRIBUTES (t)); ! } ! } } if (device_type && only_device_type) warning_at (OMP_CLAUSE_LOCATION (clauses), 0, --- 43439,43455 ---- { if (OMP_CLAUSE_CODE (c) == OMP_CLAUSE_DEVICE_TYPE) continue; ! tree t = OMP_CLAUSE_DECL (c); only_device_type = false; ! if (!handle_omp_declare_target_clause (c, t, device_type)) continue; ! if (VAR_OR_FUNCTION_DECL_P (t) ! && DECL_LOCAL_DECL_P (t) ! && DECL_LANG_SPECIFIC (t) ! && DECL_LOCAL_DECL_ALIAS (t) ! && DECL_LOCAL_DECL_ALIAS (t) != error_mark_node) ! handle_omp_declare_target_clause (c, DECL_LOCAL_DECL_ALIAS (t), ! device_type); } if (device_type && only_device_type) warning_at (OMP_CLAUSE_LOCATION (clauses), 0, *************** static tree *** 45346,45352 **** synthesize_implicit_template_parm (cp_parser *parser, tree constr) { /* A requires-clause is not a function and cannot have placeholders. */ ! if (current_binding_level->kind == sk_block) { error ("placeholder type not allowed in this context"); return error_mark_node; --- 45384,45390 ---- synthesize_implicit_template_parm (cp_parser *parser, tree constr) { /* A requires-clause is not a function and cannot have placeholders. */ ! if (current_binding_level->requires_expression) { error ("placeholder type not allowed in this context"); return error_mark_node; diff -Nrcpad gcc-11.2.0/gcc/cp/pt.c gcc-11.3.0/gcc/cp/pt.c *** gcc-11.2.0/gcc/cp/pt.c Wed Jul 28 06:55:07 2021 --- gcc-11.3.0/gcc/cp/pt.c Thu Apr 21 07:58:53 2022 *************** determine_specialization (tree template_ *** 2207,2213 **** targs = coerce_template_parms (parms, explicit_targs, fns, tf_warning_or_error, /*req_all*/true, /*use_defarg*/true); ! if (targs != error_mark_node) templates = tree_cons (targs, fns, templates); } else for (lkp_iterator iter (fns); iter; ++iter) --- 2207,2214 ---- targs = coerce_template_parms (parms, explicit_targs, fns, tf_warning_or_error, /*req_all*/true, /*use_defarg*/true); ! if (targs != error_mark_node ! && constraints_satisfied_p (fns, targs)) templates = tree_cons (targs, fns, templates); } else for (lkp_iterator iter (fns); iter; ++iter) *************** argument_pack_select_arg (tree t) *** 3766,3771 **** --- 3767,3807 ---- return arg; } + /* Return a modification of ARGS that's suitable for preserving inside a hash + table. In particular, this replaces each ARGUMENT_PACK_SELECT with its + underlying argument. ARGS is copied (upon modification) iff COW_P. */ + + static tree + preserve_args (tree args, bool cow_p = true) + { + if (!args) + return NULL_TREE; + + for (int i = 0, len = TREE_VEC_LENGTH (args); i < len; ++i) + { + tree t = TREE_VEC_ELT (args, i); + tree r; + if (!t) + r = NULL_TREE; + else if (TREE_CODE (t) == ARGUMENT_PACK_SELECT) + r = argument_pack_select_arg (t); + else if (TREE_CODE (t) == TREE_VEC) + r = preserve_args (t, cow_p); + else + r = t; + if (r != t) + { + if (cow_p) + { + args = copy_template_args (args); + cow_p = false; + } + TREE_VEC_ELT (args, i) = r; + } + } + + return args; + } /* True iff FN is a function representing a built-in variadic parameter pack. */ *************** expand_integer_pack (tree call, tree arg *** 3819,3824 **** --- 3855,3861 ---- } else { + hi = instantiate_non_dependent_expr_sfinae (hi, complain); hi = cxx_constant_value (hi); int len = valid_constant_size_p (hi) ? tree_to_shwi (hi) : -1; *************** alias_template_specialization_p (const_t *** 6451,6460 **** return NULL_TREE; } ! /* An alias template is complex from a SFINAE perspective if a template-id ! using that alias can be ill-formed when the expansion is not, as with ! the void_t template. We determine this by checking whether the ! expansion for the alias template uses all its template parameters. */ struct uses_all_template_parms_data { --- 6488,6494 ---- return NULL_TREE; } ! /* Data structure for complex_alias_template_*. */ struct uses_all_template_parms_data { *************** struct uses_all_template_parms_data *** 6462,6492 **** bool *seen; }; ! static int ! uses_all_template_parms_r (tree t, void *data_) { ! struct uses_all_template_parms_data &data ! = *(struct uses_all_template_parms_data*)data_; ! tree idx = get_template_parm_index (t); ! if (TEMPLATE_PARM_LEVEL (idx) == data.level) ! data.seen[TEMPLATE_PARM_IDX (idx)] = true; ! return 0; ! } ! /* for_each_template_parm any_fn callback for complex_alias_template_p. */ - static int - complex_pack_expansion_r (tree t, void *data_) - { /* An alias template with a pack expansion that expands a pack from the enclosing class needs to be considered complex, to avoid confusion with the same pack being used as an argument to the alias's own template parameter (91966). */ - if (!PACK_EXPANSION_P (t)) - return 0; - struct uses_all_template_parms_data &data - = *(struct uses_all_template_parms_data*)data_; for (tree pack = PACK_EXPANSION_PARAMETER_PACKS (t); pack; pack = TREE_CHAIN (pack)) { --- 6496,6531 ---- bool *seen; }; ! /* walk_tree callback for complex_alias_template_p. */ ! ! static tree ! complex_alias_template_r (tree *tp, int *walk_subtrees, void *data_) { ! tree t = *tp; ! auto &data = *(struct uses_all_template_parms_data*)data_; ! switch (TREE_CODE (t)) ! { ! case TEMPLATE_TYPE_PARM: ! case TEMPLATE_PARM_INDEX: ! case TEMPLATE_TEMPLATE_PARM: ! case BOUND_TEMPLATE_TEMPLATE_PARM: ! { ! tree idx = get_template_parm_index (t); ! if (TEMPLATE_PARM_LEVEL (idx) == data.level) ! data.seen[TEMPLATE_PARM_IDX (idx)] = true; ! } ! default:; ! } ! ! if (!PACK_EXPANSION_P (t)) ! return 0; /* An alias template with a pack expansion that expands a pack from the enclosing class needs to be considered complex, to avoid confusion with the same pack being used as an argument to the alias's own template parameter (91966). */ for (tree pack = PACK_EXPANSION_PARAMETER_PACKS (t); pack; pack = TREE_CHAIN (pack)) { *************** complex_pack_expansion_r (tree t, void * *** 6496,6506 **** int idx, level; template_parm_level_and_index (parm_pack, &level, &idx); if (level < data.level) ! return 1; } return 0; } static bool complex_alias_template_p (const_tree tmpl) { --- 6535,6568 ---- int idx, level; template_parm_level_and_index (parm_pack, &level, &idx); if (level < data.level) ! return t; ! ! /* Consider the expanded packs to be used outside the expansion... */ ! data.seen[idx] = true; } + + /* ...but don't walk into the pattern. Consider PR104008: + + template + using IsOneOf = disjunction...>; + + where IsOneOf seemingly uses all of its template parameters in its + expansion (and does not expand a pack from the enclosing class), so the + alias was not marked as complex. However, if it is used like + "IsOneOf", the empty pack for Ts means that T no longer appears in the + expansion. So only Ts is considered used by the pack expansion. */ + *walk_subtrees = false; + return 0; } + /* An alias template is complex from a SFINAE perspective if a template-id + using that alias can be ill-formed when the expansion is not, as with + the void_t template. + + Returns 1 if always complex, 0 if not complex, -1 if complex iff any of the + template arguments are empty packs. */ + static bool complex_alias_template_p (const_tree tmpl) { *************** complex_alias_template_p (const_tree tmp *** 6521,6528 **** for (int i = 0; i < len; ++i) data.seen[i] = false; ! if (for_each_template_parm (pat, uses_all_template_parms_r, &data, ! NULL, true, complex_pack_expansion_r)) return true; for (int i = 0; i < len; ++i) if (!data.seen[i]) --- 6583,6589 ---- for (int i = 0; i < len; ++i) data.seen[i] = false; ! if (cp_walk_tree_without_duplicates (&pat, complex_alias_template_r, &data)) return true; for (int i = 0; i < len; ++i) if (!data.seen[i]) *************** convert_nontype_argument (tree type, tre *** 7269,7275 **** if (non_dep) expr = instantiate_non_dependent_expr_internal (expr, complain); ! const bool val_dep_p = value_dependent_expression_p (expr); if (val_dep_p) expr = canonicalize_expr_argument (expr, complain); --- 7330,7336 ---- if (non_dep) expr = instantiate_non_dependent_expr_internal (expr, complain); ! bool val_dep_p = value_dependent_expression_p (expr); if (val_dep_p) expr = canonicalize_expr_argument (expr, complain); *************** convert_nontype_argument (tree type, tre *** 7308,7313 **** --- 7369,7376 ---- expr = maybe_constant_value (expr, NULL_TREE, /*manifestly_const_eval=*/true); expr = convert_from_reference (expr); + /* EXPR may have become value-dependent. */ + val_dep_p = value_dependent_expression_p (expr); } else if (TYPE_PTR_OR_PTRMEM_P (type)) { *************** coerce_template_template_parm (tree parm *** 7682,7689 **** template