diff -Nrcpad gcc-9.4.0/ChangeLog gcc-9.5.0/ChangeLog *** gcc-9.4.0/ChangeLog Tue Jun 1 07:53:23 2021 --- gcc-9.5.0/ChangeLog Fri May 27 07:21:30 2022 *************** *** 1,3 **** --- 1,7 ---- + 2022-05-27 Release Manager + + * GCC 9.5.0 released. + 2021-06-01 Release Manager * GCC 9.4.0 released. diff -Nrcpad gcc-9.4.0/LAST_UPDATED gcc-9.5.0/LAST_UPDATED *** gcc-9.4.0/LAST_UPDATED Tue Jun 1 07:53:41 2021 --- gcc-9.5.0/LAST_UPDATED Fri May 27 07:21:47 2022 *************** *** 1 **** ! Obtained from git: releases/gcc-9.4.0 revision 13c83c4cc679ad5383ed57f359e53e8d518b7842 --- 1 ---- ! Obtained from git: releases/gcc-9.5.0 revision 7a15b5060a83ea8282323d92043c6152e6a3e22d diff -Nrcpad gcc-9.4.0/MD5SUMS gcc-9.5.0/MD5SUMS *** gcc-9.4.0/MD5SUMS Tue Jun 1 08:07:27 2021 --- gcc-9.5.0/MD5SUMS Fri May 27 07:35:38 2022 *************** *** 1,5 **** # This file contains the MD5 checksums of the files in the ! # gcc-9.4.0.tar.xz tarball. # # Besides verifying that all files in the tarball were correctly expanded, # it also can be used to determine if any files have changed since the --- 1,5 ---- # This file contains the MD5 checksums of the files in the ! # gcc-9.5.0.tar.xz tarball. # # Besides verifying that all files in the tarball were correctly expanded, # it also can be used to determine if any files have changed since the *************** e399c6eed967a5699498feb798da61ee .gitat *** 17,23 **** fe60d87048567d4fe8c8a0ed2448bcc8 COPYING.RUNTIME d32239bcb673463ab874e80d47fae504 COPYING3 6a6a8e020838b23406c81b19c1d46df6 COPYING3.LIB ! 023e566c3d8b89ec43ad0b841c211bec ChangeLog fd4ecdf5d672efe2b0e409aca9cf9446 ChangeLog.jit 09538b708302f1735f6fa05b622ecf5e ChangeLog.tree-ssa 24ab760126489e69436a43185dc3d202 INSTALL/README --- 17,23 ---- fe60d87048567d4fe8c8a0ed2448bcc8 COPYING.RUNTIME d32239bcb673463ab874e80d47fae504 COPYING3 6a6a8e020838b23406c81b19c1d46df6 COPYING3.LIB ! 71081cbfdc16cbc8055ad7f1018a4fe4 ChangeLog fd4ecdf5d672efe2b0e409aca9cf9446 ChangeLog.jit 09538b708302f1735f6fa05b622ecf5e ChangeLog.tree-ssa 24ab760126489e69436a43185dc3d202 INSTALL/README *************** b54df9bfc2e7837cfdec727a84be4835 INSTAL *** 32,43 **** cb11a407f704c0bfbef64d17128cadd0 INSTALL/prerequisites.html 1c03c2c7732f60e49c9f4fc500ad3089 INSTALL/specific.html 4f086007f929585b190278c5c2f7b43c INSTALL/test.html ! ed7623935408c3a6b0b5400e16bff49e LAST_UPDATED cd94bf363014d5234ce951236b2eff7e MAINTAINERS babbf63ed4e6324c3ce3ec6ae4852ee2 Makefile.def 1317b9514961375f717373570309ad98 Makefile.in 1476c59b7fd3be8c21d1af1eb4ac036c Makefile.tpl ! d5f910cfbfbc1e60530369385ead6d26 NEWS 80d26bc3b1ad4f6969a96a24c9181bf5 README a657821f65bab77f4fbf3a75cdee6da9 ar-lib 500b9244caa7a7ab23ece1db37efa76d compile --- 32,43 ---- cb11a407f704c0bfbef64d17128cadd0 INSTALL/prerequisites.html 1c03c2c7732f60e49c9f4fc500ad3089 INSTALL/specific.html 4f086007f929585b190278c5c2f7b43c INSTALL/test.html ! 6ec93d981cffc5706bbdb71fec1452b9 LAST_UPDATED cd94bf363014d5234ce951236b2eff7e MAINTAINERS babbf63ed4e6324c3ce3ec6ae4852ee2 Makefile.def 1317b9514961375f717373570309ad98 Makefile.in 1476c59b7fd3be8c21d1af1eb4ac036c Makefile.tpl ! 7e471e528fa8712fa8073df4fd0ec338 NEWS 80d26bc3b1ad4f6969a96a24c9181bf5 README a657821f65bab77f4fbf3a75cdee6da9 ar-lib 500b9244caa7a7ab23ece1db37efa76d compile *************** a657821f65bab77f4fbf3a75cdee6da9 ar-lib *** 45,51 **** 40b5681beb170241cdc60d00932a204f config.guess 040359150cf11493f973a46d8a25b06b config.rpath 028bb6041dfd0ac0e34915870eea93ec config.sub ! a2eb5a8490660a04e34e7cb97838e66a config/ChangeLog 0fcd4badfe2a2191778bdf5ab94aa40c config/acinclude.m4 2ea0edfde0ce5ce69b49317a5650f048 config/acx.m4 6b030f5cf640bdd401ea739f54a667f8 config/asmcfi.m4 --- 45,51 ---- 40b5681beb170241cdc60d00932a204f config.guess 040359150cf11493f973a46d8a25b06b config.rpath 028bb6041dfd0ac0e34915870eea93ec config.sub ! f42791704e0ff1a77a6cd6d7abace45a config/ChangeLog 0fcd4badfe2a2191778bdf5ab94aa40c config/acinclude.m4 2ea0edfde0ce5ce69b49317a5650f048 config/acx.m4 6b030f5cf640bdd401ea739f54a667f8 config/asmcfi.m4 *************** e10d31316e03a59577fb4ed90a670914 config *** 102,108 **** 3fe4a576c2a75736c8da3af1d0824217 config/mh-cygwin 507b102116e2550175bb7f42ee3c2958 config/mh-darwin 625bacc09b9992290d94831bd7506bd0 config/mh-djgpp ! a8801f3e491168787fe2624d07ad1b08 config/mh-mingw cd7034dccd04e50150b14c597dd545a5 config/mh-pa 48d5107b991a0cdbe7eb7022b0dfecb2 config/mh-pa-hpux10 76d638a67d840715b2de89afee8ef49a config/mh-ppc-aix --- 102,108 ---- 3fe4a576c2a75736c8da3af1d0824217 config/mh-cygwin 507b102116e2550175bb7f42ee3c2958 config/mh-darwin 625bacc09b9992290d94831bd7506bd0 config/mh-djgpp ! 8fe20cd58711408e779e723c7e4981ad config/mh-mingw cd7034dccd04e50150b14c597dd545a5 config/mh-pa 48d5107b991a0cdbe7eb7022b0dfecb2 config/mh-pa-hpux10 76d638a67d840715b2de89afee8ef49a config/mh-ppc-aix *************** e2dc6b4fd62b77bff96b7951ef74f78f config *** 141,147 **** 0163b672c888aaf1c8ad3e867a0ec9f1 config/zlib.m4 ae823ffe6ae03fb261857d3d5e3cd207 configure bfad78585a389a3b6a09775361a5b869 configure.ac ! 5e786b078d6abe39b946c2446ccb0350 contrib/ChangeLog 5fc435c7928f858246df931ea3f3ece7 contrib/ChangeLog.jit 7af8d2979bf1a7cfa88e30d05fa22be2 contrib/ChangeLog.tree-ssa 8498c0cdfe3f444ad6f540ec9e11cbec contrib/analyze_brprob.py --- 141,147 ---- 0163b672c888aaf1c8ad3e867a0ec9f1 config/zlib.m4 ae823ffe6ae03fb261857d3d5e3cd207 configure bfad78585a389a3b6a09775361a5b869 configure.ac ! 8d10cf1f407810f3a4dc42c42bd2a54a contrib/ChangeLog 5fc435c7928f858246df931ea3f3ece7 contrib/ChangeLog.jit 7af8d2979bf1a7cfa88e30d05fa22be2 contrib/ChangeLog.tree-ssa 8498c0cdfe3f444ad6f540ec9e11cbec contrib/analyze_brprob.py *************** e371342ba74d3ab9de81814bd1c350ec contri *** 170,191 **** 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 dfceb883caf21f3071f7309ee0ac8a6b contrib/gcc.doxy 55236e85d8087042189b701cd05d84be contrib/gcc_build 6acca31bd8a0112676a3a260baa4bc29 contrib/gcc_update 61ad7a180a7895f83d32ef7b15cb8386 contrib/gen_autofdo_event.py 7c9fd4d662ccbf417ccfbe1999d8ad71 contrib/gennews ! a05c06173f9b6217a753767a1e28481c contrib/git-backport.py 59304fc08afa489baa6b920cc76dc625 contrib/gthr_supp_vxw_5x.c ! 4611663820f2e9b42278e9e64ecf31f4 contrib/header-tools/ChangeLog 1ba821a1e480c2f8ac33b68ca1097770 contrib/header-tools/README 05ef7fb87e90ba93ee04659be072a357 contrib/header-tools/count-headers ba0485a3c721bce9e32407ef996d2a9d contrib/header-tools/gcc-order-headers --- 170,193 ---- 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 dfceb883caf21f3071f7309ee0ac8a6b contrib/gcc.doxy 55236e85d8087042189b701cd05d84be contrib/gcc_build 6acca31bd8a0112676a3a260baa4bc29 contrib/gcc_update 61ad7a180a7895f83d32ef7b15cb8386 contrib/gen_autofdo_event.py 7c9fd4d662ccbf417ccfbe1999d8ad71 contrib/gennews ! db81d221a5a18e48788ee8984d453248 contrib/git-backport.py ! e9bac7c82bdb5f92b354d9da854d463b contrib/git-commit-mklog.py ! e462c83bdf45bf6e9b434d18fa9f66e4 contrib/git-fix-changelog.py 59304fc08afa489baa6b920cc76dc625 contrib/gthr_supp_vxw_5x.c ! fc59c145655b4da9c91c6499d8c8574d contrib/header-tools/ChangeLog 1ba821a1e480c2f8ac33b68ca1097770 contrib/header-tools/README 05ef7fb87e90ba93ee04659be072a357 contrib/header-tools/count-headers ba0485a3c721bce9e32407ef996d2a9d contrib/header-tools/gcc-order-headers *************** a7318fa2f0580c3a0d5dd4b14e4d0e0d contri *** 204,215 **** bd49fb9eed9f0a5344158e834dd6f468 contrib/mark_spam.py 56cec5d3703e9cfe5da318df3e5cd23b contrib/mklog fc4965b52fd7de27941bf5183aa1ece9 contrib/mklog.pl 0fb5c8c3cd465d8bd57b55b2548c683a contrib/paranoia.cc a34668cfad9dec733354503fbc67fb24 contrib/patch_tester.sh 87a19b40fbd220938cf6c23c42c255e2 contrib/prepare_patch.sh a6f2829359f65be5c182fd414e30fe8a contrib/prerequisites.md5 663d159a25cdcd62d1182f124f0dae82 contrib/prerequisites.sha512 ! 9bd8a9003924bf150eba579f70eacdff contrib/reghunt/ChangeLog cf247a580e49d212518de409793db0a8 contrib/reghunt/bin/gcc-build-full 724e70ea3e80f87f2a201bbe2f1eef37 contrib/reghunt/bin/gcc-build-simple 3f2318bae7562a4ad1639e686916a545 contrib/reghunt/bin/gcc-cleanup --- 206,218 ---- bd49fb9eed9f0a5344158e834dd6f468 contrib/mark_spam.py 56cec5d3703e9cfe5da318df3e5cd23b contrib/mklog fc4965b52fd7de27941bf5183aa1ece9 contrib/mklog.pl + 81f9fb8a95f10dbb07425dfd3fd50782 contrib/mklog.py 0fb5c8c3cd465d8bd57b55b2548c683a contrib/paranoia.cc a34668cfad9dec733354503fbc67fb24 contrib/patch_tester.sh 87a19b40fbd220938cf6c23c42c255e2 contrib/prepare_patch.sh a6f2829359f65be5c182fd414e30fe8a contrib/prerequisites.md5 663d159a25cdcd62d1182f124f0dae82 contrib/prerequisites.sha512 ! 037ef44037b3e43e71dff44d91fcf7c2 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 *** 268,274 **** e2829fc4af4f433a6a328a62d5ce8066 contrib/reghunt/examples/reg-watch afd863c2ec84c906e20f9b9787b1f0fe contrib/reghunt/examples/reg-watch.awk 8955535523d4b5f48006bcb851ba9b4b contrib/reghunt/examples/testall ! 8a6a68146d998cbc2685664ee9244df7 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 --- 271,277 ---- e2829fc4af4f433a6a328a62d5ce8066 contrib/reghunt/examples/reg-watch afd863c2ec84c906e20f9b9787b1f0fe contrib/reghunt/examples/reg-watch.awk 8955535523d4b5f48006bcb851ba9b4b contrib/reghunt/examples/testall ! ee6bb359eda4d51746bf9c3ee878b97b contrib/regression/ChangeLog 30553bfced1b2b46bf7ca01ef6ba69d1 contrib/regression/GCC_Regression_Tester.wdgt/Default.png ad38ddd771df222eb9d413e3c7f6a751 contrib/regression/GCC_Regression_Tester.wdgt/Icon.png 777bd286c147cc02861811f66b9a4440 contrib/regression/GCC_Regression_Tester.wdgt/Info.plist *************** fb1ff65a78c592489a09d18e42238a68 contri *** 283,288 **** --- 286,292 ---- dc562ddb86567c65e82953825713dc4b contrib/regression/site.exp 7f6418948396f8250447e3e6182322d8 contrib/repro_fail 39442479834f1c02d6ce11eab6889b6e contrib/test_installed + 9cc97e47ccced46f47870847040e0d41 contrib/test_mklog.py 2c2a06a23394c548bb4afba3c25aacce contrib/test_recheck c650e776de65a2de80bbfb0033641805 contrib/test_summary 45bd745cf293127fa6b729c7b58cf11f contrib/testsuite-management/validate_failures.py *************** a0d12be401961a2557883b7c09dc71eb contri *** 299,305 **** 45d4839f2ac702761b88d502311d47ef contrib/vimrc da7aeedeb5a86ee6f5982e559a2d6dcc contrib/warn_summary 8b59f0d0a2dcdced14765c514fbad719 depcomp ! 560cd748a193d59c0c3cd4041b4590ff fixincludes/ChangeLog 6de190723745dc3f75080144dfa2215e fixincludes/Makefile.in b6e3f4950abc6e254b467063381f6473 fixincludes/README 455903ad4ff71fa5c5340ef7ae41a0e6 fixincludes/README-fixinc --- 303,309 ---- 45d4839f2ac702761b88d502311d47ef contrib/vimrc da7aeedeb5a86ee6f5982e559a2d6dcc contrib/warn_summary 8b59f0d0a2dcdced14765c514fbad719 depcomp ! 1d6b0e62325dc7215a02885bd3c509a6 fixincludes/ChangeLog 6de190723745dc3f75080144dfa2215e fixincludes/Makefile.in b6e3f4950abc6e254b467063381f6473 fixincludes/README 455903ad4ff71fa5c5340ef7ae41a0e6 fixincludes/README-fixinc *************** a5e817d35ded04a0fb03999b50c0e89e fixinc *** 439,450 **** 955462b555900ecd3934223c64e21fa7 fixincludes/tests/base/types/vxTypesBase.h 8baab8698bb83c6b90ef4091c00ddc1e fixincludes/tests/base/unistd.h 3be7c8842fbf2eb29a7d358eff03f38e gcc/ABOUT-GCC-NLS ! 944c468e90b607add7f1ea74849fe3df gcc/BASE-VER 59530bdf33659b29e73d4adb9f9f6552 gcc/COPYING a916467b91076e631dd8edb7424769c7 gcc/COPYING.LIB d32239bcb673463ab874e80d47fae504 gcc/COPYING3 6a6a8e020838b23406c81b19c1d46df6 gcc/COPYING3.LIB ! 410224bf9e03dcbc9fb21955f48f44e3 gcc/ChangeLog a3b63c675afa7a655cc2bfa8a907af79 gcc/ChangeLog-1997 d9a88529352a010253c2e8fb1ed6023b gcc/ChangeLog-1998 240f08f81cb4699e8b49347db38233db gcc/ChangeLog-1999 --- 443,454 ---- 955462b555900ecd3934223c64e21fa7 fixincludes/tests/base/types/vxTypesBase.h 8baab8698bb83c6b90ef4091c00ddc1e fixincludes/tests/base/unistd.h 3be7c8842fbf2eb29a7d358eff03f38e gcc/ABOUT-GCC-NLS ! c9bf85a34c00d2b4799dba2b531ebdd7 gcc/BASE-VER 59530bdf33659b29e73d4adb9f9f6552 gcc/COPYING a916467b91076e631dd8edb7424769c7 gcc/COPYING.LIB d32239bcb673463ab874e80d47fae504 gcc/COPYING3 6a6a8e020838b23406c81b19c1d46df6 gcc/COPYING3.LIB ! 4c66ca3f1301409502f752c4da79c42f gcc/ChangeLog a3b63c675afa7a655cc2bfa8a907af79 gcc/ChangeLog-1997 d9a88529352a010253c2e8fb1ed6023b gcc/ChangeLog-1998 240f08f81cb4699e8b49347db38233db gcc/ChangeLog-1999 *************** fb3fadb88e1d2b3b640cfaaa5ff11780 gcc/Ch *** 475,481 **** 3eb07e0b2e542409bf73d359f7f65609 gcc/ChangeLog.ptr e13638e26743ba41e6011b76cc00d9a9 gcc/ChangeLog.tree-ssa 739ab47f6425bcea1d05e4fc0542de54 gcc/ChangeLog.tuples ! f310c5f93ca7df145c5f1ca7c5d23a6b gcc/DATESTAMP d41d8cd98f00b204e9800998ecf8427e gcc/DEV-PHASE eb92e1ff5e982ca07e173e0eb286d243 gcc/FSFChangeLog 30e1e33411566388b3164558482dc5e6 gcc/FSFChangeLog.10 --- 479,485 ---- 3eb07e0b2e542409bf73d359f7f65609 gcc/ChangeLog.ptr e13638e26743ba41e6011b76cc00d9a9 gcc/ChangeLog.tree-ssa 739ab47f6425bcea1d05e4fc0542de54 gcc/ChangeLog.tuples ! b79670775c2f244f3ff722e892655e8c gcc/DATESTAMP d41d8cd98f00b204e9800998ecf8427e gcc/DEV-PHASE eb92e1ff5e982ca07e173e0eb286d243 gcc/FSFChangeLog 30e1e33411566388b3164558482dc5e6 gcc/FSFChangeLog.10 *************** ec6799501b2eb2923d5de6a66169dbd2 gcc/ON *** 486,492 **** cdb4caed52ded231a4df6087fa0976bd gcc/README.Portability 69898786da1fa78de919ea62c6931b36 gcc/acinclude.m4 6879fc308101ea4a52d17fb89e463ec2 gcc/aclocal.m4 ! c29d82be6dc3c3e188257941a8f89461 gcc/ada/ChangeLog 683be0b07dc4f64f118fd5e8ae9cb30d gcc/ada/ChangeLog-2001 7aff25efb203be4136b8776cdc812956 gcc/ada/ChangeLog-2002 cd2379152000f40157d349018fb9364d gcc/ada/ChangeLog-2003 --- 490,496 ---- cdb4caed52ded231a4df6087fa0976bd gcc/README.Portability 69898786da1fa78de919ea62c6931b36 gcc/acinclude.m4 6879fc308101ea4a52d17fb89e463ec2 gcc/aclocal.m4 ! 1f56793fbfe45cfa36c248cfc83f4620 gcc/ada/ChangeLog 683be0b07dc4f64f118fd5e8ae9cb30d gcc/ada/ChangeLog-2001 7aff25efb203be4136b8776cdc812956 gcc/ada/ChangeLog-2002 cd2379152000f40157d349018fb9364d gcc/ada/ChangeLog-2003 *************** ddfb37d91a2c83b4ddf4397a881f164c gcc/ad *** 713,719 **** 51c95420b5900990141d2e5705582197 gcc/ada/gcc-interface/ada.h 2962facaf5b9ac376e7335599112a520 gcc/ada/gcc-interface/config-lang.in 786d39e3fbc38a2dc96917857f9a69ef gcc/ada/gcc-interface/cuintp.c ! d960d86c1317eb71f6a8aef49cd94123 gcc/ada/gcc-interface/decl.c c413d4d50e9563859f4d751a4404b705 gcc/ada/gcc-interface/gadaint.h a97632613b5695725b0e3e72e2447f2e gcc/ada/gcc-interface/gigi.h 145be77c79143445142d7570f0853077 gcc/ada/gcc-interface/lang-specs.h --- 717,723 ---- 51c95420b5900990141d2e5705582197 gcc/ada/gcc-interface/ada.h 2962facaf5b9ac376e7335599112a520 gcc/ada/gcc-interface/config-lang.in 786d39e3fbc38a2dc96917857f9a69ef gcc/ada/gcc-interface/cuintp.c ! 6efbcd81d2d8fed2cfa512234758af92 gcc/ada/gcc-interface/decl.c c413d4d50e9563859f4d751a4404b705 gcc/ada/gcc-interface/gadaint.h a97632613b5695725b0e3e72e2447f2e gcc/ada/gcc-interface/gigi.h 145be77c79143445142d7570f0853077 gcc/ada/gcc-interface/lang-specs.h *************** a97632613b5695725b0e3e72e2447f2e gcc/ad *** 721,727 **** 6244b7a08ec0d28d060b8ad241b9ac8a gcc/ada/gcc-interface/misc.c 56f626f9ee32eba8c2d478af39425ad5 gcc/ada/gcc-interface/targtyps.c 56c50baeda048510d3ae4b8aac161a9f gcc/ada/gcc-interface/trans.c ! b7b4b80fe7b1753c8aa7ab3bdb930bb7 gcc/ada/gcc-interface/utils.c 0e98c3f541bd20833a44c42d83ab1cc7 gcc/ada/gcc-interface/utils2.c fee4442db76b93565815e3b01fe99313 gcc/ada/get_scos.adb a4ff0a5a6a4e8da7ac489be6d5b23b00 gcc/ada/get_scos.ads --- 725,731 ---- 6244b7a08ec0d28d060b8ad241b9ac8a gcc/ada/gcc-interface/misc.c 56f626f9ee32eba8c2d478af39425ad5 gcc/ada/gcc-interface/targtyps.c 56c50baeda048510d3ae4b8aac161a9f gcc/ada/gcc-interface/trans.c ! 661f04bea3c7bb4ae04afb6f354bb8a2 gcc/ada/gcc-interface/utils.c 0e98c3f541bd20833a44c42d83ab1cc7 gcc/ada/gcc-interface/utils2.c fee4442db76b93565815e3b01fe99313 gcc/ada/get_scos.adb a4ff0a5a6a4e8da7ac489be6d5b23b00 gcc/ada/get_scos.ads *************** af06312a4680a8f5516a66c65553d484 gcc/al *** 2631,2637 **** 97e1d797af1c39d9c32c92a073df5a18 gcc/align.h 9c97bcef669ff02c38ee00291aa421ee gcc/alloc-pool.c 44afcda6f1081bcc7067febfe1d2fc68 gcc/alloc-pool.h ! 01284cf5930d07db1b6d176d0a5685c0 gcc/asan.c a1ee54d37fe1e32b95a116f33ad5f5b9 gcc/asan.h f65407113018573c1df9519857aa6539 gcc/attribs.c 5382754ff2e57abbf37cfc42a8c1b9d2 gcc/attribs.h --- 2635,2641 ---- 97e1d797af1c39d9c32c92a073df5a18 gcc/align.h 9c97bcef669ff02c38ee00291aa421ee gcc/alloc-pool.c 44afcda6f1081bcc7067febfe1d2fc68 gcc/alloc-pool.h ! a2d30bab03b0e3fd87a9d88cc99c7995 gcc/asan.c a1ee54d37fe1e32b95a116f33ad5f5b9 gcc/asan.h f65407113018573c1df9519857aa6539 gcc/attribs.c 5382754ff2e57abbf37cfc42a8c1b9d2 gcc/attribs.h *************** b6512b8f9058087096a75a01c9231b24 gcc/ba *** 2645,2651 **** 431ffeecfc23fc1fd9d4b77938aaa312 gcc/bitmap.c 8a72f59525595f4c2d176dcedacfc0fe gcc/bitmap.h ac2bb9f75aabb5a7d1baacccdc6802f5 gcc/brig-builtins.def ! ee022b19e9156b52850269c937a3e4b2 gcc/brig/ChangeLog 2799840acb52803753cc46e8eb539f02 gcc/brig/Make-lang.in df5d7cac8308be6fbc924b83e784c28d gcc/brig/brig-builtins.h 648c2cdf588c01a32dc637b2e1470b51 gcc/brig/brig-c.h --- 2649,2655 ---- 431ffeecfc23fc1fd9d4b77938aaa312 gcc/bitmap.c 8a72f59525595f4c2d176dcedacfc0fe gcc/bitmap.h ac2bb9f75aabb5a7d1baacccdc6802f5 gcc/brig-builtins.def ! 13238cc3ede673aeaab380be9ff5b938 gcc/brig/ChangeLog 2799840acb52803753cc46e8eb539f02 gcc/brig/Make-lang.in df5d7cac8308be6fbc924b83e784c28d gcc/brig/brig-builtins.h 648c2cdf588c01a32dc637b2e1470b51 gcc/brig/brig-c.h *************** f156fc460a35ae6ee619d5361c188ad5 gcc/br *** 2689,2703 **** 885cb22e704808bec1c6f34bbb733ac3 gcc/bt-load.c ccb5e83fa9be6f84b76daed24fb54d20 gcc/builtin-attrs.def dab194419671867a024b4ce5bc4f218d gcc/builtin-types.def ! 979757db5525550ffadbd1314d8fd54f gcc/builtins.c 9fbe28b28c50967744c1634709a3875f gcc/builtins.def 1f87ccbf352aa59dd341d464a2d1048d gcc/builtins.h ! 62f973f5c20a403427a3c8c3cab32493 gcc/c-family/ChangeLog ea3fa1f4d7390a105fa3caab4f79aaf7 gcc/c-family/ChangeLog.gimple-classes d03318328afefb1e63fa52b33e77fe41 gcc/c-family/c-ada-spec.c 6e16aaf2dba3ab401dacab78a702fb68 gcc/c-family/c-ada-spec.h 5f372cd48d63ea7876de0487f30cf552 gcc/c-family/c-attribs.c ! 8ba8092bf736bfcc760b60f28de5434f gcc/c-family/c-common.c 799db5073f5196fe7a62aaccceca374f gcc/c-family/c-common.def e0faa972cc17549acc84c46d1e1f6c64 gcc/c-family/c-common.h 536364844b73784722b7930e788d22f3 gcc/c-family/c-cppbuiltin.c --- 2693,2707 ---- 885cb22e704808bec1c6f34bbb733ac3 gcc/bt-load.c ccb5e83fa9be6f84b76daed24fb54d20 gcc/builtin-attrs.def dab194419671867a024b4ce5bc4f218d gcc/builtin-types.def ! 62ab5f6a5069a1f6ff09b4a86eea585d gcc/builtins.c 9fbe28b28c50967744c1634709a3875f gcc/builtins.def 1f87ccbf352aa59dd341d464a2d1048d gcc/builtins.h ! 17a11ee88fcee19f686d932981442d85 gcc/c-family/ChangeLog ea3fa1f4d7390a105fa3caab4f79aaf7 gcc/c-family/ChangeLog.gimple-classes d03318328afefb1e63fa52b33e77fe41 gcc/c-family/c-ada-spec.c 6e16aaf2dba3ab401dacab78a702fb68 gcc/c-family/c-ada-spec.h 5f372cd48d63ea7876de0487f30cf552 gcc/c-family/c-attribs.c ! 36a6a843c0da2d1a26b048d704888ca8 gcc/c-family/c-common.c 799db5073f5196fe7a62aaccceca374f gcc/c-family/c-common.def e0faa972cc17549acc84c46d1e1f6c64 gcc/c-family/c-common.h 536364844b73784722b7930e788d22f3 gcc/c-family/c-cppbuiltin.c *************** e0faa972cc17549acc84c46d1e1f6c64 gcc/c- *** 2709,2716 **** 9faa45d960f8aa84b4aeb5e45185f2bd gcc/c-family/c-indentation.h b1c435278fe8846e626cdbea827004cc gcc/c-family/c-lex.c 7f146cedb1c97307754dd4bfcfe9478a gcc/c-family/c-objc.h ! 230fa0b76cdfac85c6a4d7e112703dd6 gcc/c-family/c-omp.c ! d295e50a31823c9af918cdd3414489de gcc/c-family/c-opts.c 8a8c085479dcc5c4a071bac6363b632c gcc/c-family/c-pch.c e9957bbe8ab82a16462be3363e6ea8d7 gcc/c-family/c-ppoutput.c 6b5e5fb041e5f299b11cfad2dedff868 gcc/c-family/c-pragma.c --- 2713,2720 ---- 9faa45d960f8aa84b4aeb5e45185f2bd gcc/c-family/c-indentation.h b1c435278fe8846e626cdbea827004cc gcc/c-family/c-lex.c 7f146cedb1c97307754dd4bfcfe9478a gcc/c-family/c-objc.h ! ac4b85c3ce784b7a3cf6732a06291b87 gcc/c-family/c-omp.c ! 94ae91a9972c52bcfb60b1748893b337 gcc/c-family/c-opts.c 8a8c085479dcc5c4a071bac6363b632c gcc/c-family/c-pch.c e9957bbe8ab82a16462be3363e6ea8d7 gcc/c-family/c-ppoutput.c 6b5e5fb041e5f299b11cfad2dedff868 gcc/c-family/c-pragma.c *************** f170232dc97ba3c67fb26a93d09e16de gcc/c- *** 2723,2752 **** b7b21859ce3d8cc930d96c02039426ef gcc/c-family/c-target-def.h 2837a195ea0a94f32477ed8e0dd1024d gcc/c-family/c-target.def 7bd5beb814c1acbd24a164bfd7b19e9b gcc/c-family/c-target.h ! ad9da752fb4ea30cdf67bf066aff69d5 gcc/c-family/c-ubsan.c 711d982d10f080c7045ecb3c2467adeb gcc/c-family/c-ubsan.h ! 814c7390423e70cb866bacf8fe041dbe gcc/c-family/c-warn.c 3703fbdadc41ffb57a4ebab41b986168 gcc/c-family/c.opt 17541db9119abf6fdbc75356872eb74d gcc/c-family/cppspec.c aa8b8c0c92776ef568d28cc0be2c118b gcc/c-family/known-headers.cc 1d8729bfb5168940f094c5467d23d18a gcc/c-family/known-headers.h 95d7888b5c91642be153950ead0fe53f gcc/c-family/name-hint.h 486e4e0fe16c4735aa71549fe44e45a4 gcc/c-family/stub-objc.c ! 8ff5e292b57c179c723d8c5f6f9c80fe gcc/c/ChangeLog e2986e827d75732d76f60a2f440aea90 gcc/c/Make-lang.in 1052580fc1a5dcf61f5187778cce9e9e gcc/c/c-aux-info.c a6e915d6595e5ce0c6e06196129c5675 gcc/c/c-convert.c 0d782f5b9be087d24ccca38a5a49fc25 gcc/c/c-decl.c b95cf4e938fc7503cfcd938fde042586 gcc/c/c-errors.c ! 573795d93ab1c97cf49af46e3c6aa098 gcc/c/c-fold.c 84e874f6c1c4c67f302338fd3e542121 gcc/c/c-lang.c a50b72cffed5275f6c6a1914bc7b7720 gcc/c/c-lang.h cbbffcf99ee522116b4b2fc498a9956d gcc/c/c-objc-common.c 60515079d4f1f61748b3bd5c040abcc8 gcc/c/c-objc-common.h ! e32d5985343aa8989eaf2d498c3f0e7f gcc/c/c-parser.c de7fdf850c2558fedc7d6b64ecc3882c gcc/c/c-parser.h fe31c74323a14c2211801c365a540226 gcc/c/c-tree.h ! 8c8cf6ac9f99593de22801241a74f365 gcc/c/c-typeck.c e0482ef46be955f4e64ba697cc2b8342 gcc/c/config-lang.in e43f502e14e5a147faaa60e6f382c67e gcc/c/gccspec.c 865df96f45f670f8daa2ed245fc8f64d gcc/c/gimple-parser.c --- 2727,2756 ---- b7b21859ce3d8cc930d96c02039426ef gcc/c-family/c-target-def.h 2837a195ea0a94f32477ed8e0dd1024d gcc/c-family/c-target.def 7bd5beb814c1acbd24a164bfd7b19e9b gcc/c-family/c-target.h ! 90198c7e840ef92ab05e7fc86e4d636d gcc/c-family/c-ubsan.c 711d982d10f080c7045ecb3c2467adeb gcc/c-family/c-ubsan.h ! 3afb6902f7ee43acdf0a582ac128574d gcc/c-family/c-warn.c 3703fbdadc41ffb57a4ebab41b986168 gcc/c-family/c.opt 17541db9119abf6fdbc75356872eb74d gcc/c-family/cppspec.c aa8b8c0c92776ef568d28cc0be2c118b gcc/c-family/known-headers.cc 1d8729bfb5168940f094c5467d23d18a gcc/c-family/known-headers.h 95d7888b5c91642be153950ead0fe53f gcc/c-family/name-hint.h 486e4e0fe16c4735aa71549fe44e45a4 gcc/c-family/stub-objc.c ! 8d226cc8672cb6eeeb2399c672b8ff19 gcc/c/ChangeLog e2986e827d75732d76f60a2f440aea90 gcc/c/Make-lang.in 1052580fc1a5dcf61f5187778cce9e9e gcc/c/c-aux-info.c a6e915d6595e5ce0c6e06196129c5675 gcc/c/c-convert.c 0d782f5b9be087d24ccca38a5a49fc25 gcc/c/c-decl.c b95cf4e938fc7503cfcd938fde042586 gcc/c/c-errors.c ! 7cadfd4785b8f3beedc95c27dc6bd40f gcc/c/c-fold.c 84e874f6c1c4c67f302338fd3e542121 gcc/c/c-lang.c a50b72cffed5275f6c6a1914bc7b7720 gcc/c/c-lang.h cbbffcf99ee522116b4b2fc498a9956d gcc/c/c-objc-common.c 60515079d4f1f61748b3bd5c040abcc8 gcc/c/c-objc-common.h ! b3afca6bb9e155fecae6546e2065bd06 gcc/c/c-parser.c de7fdf850c2558fedc7d6b64ecc3882c gcc/c/c-parser.h fe31c74323a14c2211801c365a540226 gcc/c/c-tree.h ! 8d1ca685d3a286b97ede84ccb608d4a3 gcc/c/c-typeck.c e0482ef46be955f4e64ba697cc2b8342 gcc/c/config-lang.in e43f502e14e5a147faaa60e6f382c67e gcc/c/gccspec.c 865df96f45f670f8daa2ed245fc8f64d gcc/c/gimple-parser.c *************** aa10e07d52abf7bb54b9697cac124b24 gcc/cf *** 2765,2771 **** e6f59cc79aa2c1bdb16a88e352b6886f gcc/cfgbuild.h 3290a4c8f95f2e80d355abba6e99c69c gcc/cfgcleanup.c f4692b770621730591573a07c4d95fb3 gcc/cfgcleanup.h ! 3593301bde1fe909f60261ed1c62eaee gcc/cfgexpand.c fe629b59c6e094d5d8a88ee7ba383257 gcc/cfgexpand.h 36a955b935b85049e7cb1ebf5ac00ff5 gcc/cfghooks.c 7141e4c662f2f15a842e2c7da123ed2c gcc/cfghooks.h --- 2769,2775 ---- e6f59cc79aa2c1bdb16a88e352b6886f gcc/cfgbuild.h 3290a4c8f95f2e80d355abba6e99c69c gcc/cfgcleanup.c f4692b770621730591573a07c4d95fb3 gcc/cfgcleanup.h ! ac3e92a2bc3f6b5170058f174116896e gcc/cfgexpand.c fe629b59c6e094d5d8a88ee7ba383257 gcc/cfgexpand.h 36a955b935b85049e7cb1ebf5ac00ff5 gcc/cfghooks.c 7141e4c662f2f15a842e2c7da123ed2c gcc/cfghooks.h *************** d4e8edbe029cb4d56501e7b8ab5eafe2 gcc/co *** 2790,2796 **** 8a9ef178a4b6b91baf4fd905dd9e6fac gcc/collect2.h a490aaf423f221389948b97149327357 gcc/color-macros.h 01d6047755a03366f991859a1f29ef14 gcc/combine-stack-adj.c ! 1d79416606baadd07d3d3d0dc2a39ed2 gcc/combine.c 0c8753864413a0970cf0c9bedb15e1eb gcc/common.md 5d06f57a508758d3aa5dcede294fca38 gcc/common.opt a8117752467eeae4763990eebb20a666 gcc/common/common-target-def.h --- 2794,2800 ---- 8a9ef178a4b6b91baf4fd905dd9e6fac gcc/collect2.h a490aaf423f221389948b97149327357 gcc/color-macros.h 01d6047755a03366f991859a1f29ef14 gcc/combine-stack-adj.c ! 18f695d548aefae32918ad8f5f771902 gcc/combine.c 0c8753864413a0970cf0c9bedb15e1eb gcc/common.md 5d06f57a508758d3aa5dcede294fca38 gcc/common.opt a8117752467eeae4763990eebb20a666 gcc/common/common-target-def.h *************** c4271efdeb41a6270bd654eb23d2e339 gcc/co *** 2858,2864 **** 145ef43a41fbcfcb4d36198ad4875f5b gcc/config/aarch64/aarch64-bti-insert.c 96184c1c9d29a45d21c380c806dac284 gcc/config/aarch64/aarch64-builtins.c 1f0fbd206c8e2ad763488cb6ffe10855 gcc/config/aarch64/aarch64-c.c ! f9eee6b5dce05702e53755c5fc19796a gcc/config/aarch64/aarch64-cores.def 6ef5c432d52d0360208a33c4c37f3e57 gcc/config/aarch64/aarch64-cost-tables.h 504b0f046169e4e164c6fb536b9f6db4 gcc/config/aarch64/aarch64-d.c 2316927cac32a0a0a7ba33d38d195075 gcc/config/aarch64/aarch64-elf-raw.h --- 2862,2868 ---- 145ef43a41fbcfcb4d36198ad4875f5b gcc/config/aarch64/aarch64-bti-insert.c 96184c1c9d29a45d21c380c806dac284 gcc/config/aarch64/aarch64-builtins.c 1f0fbd206c8e2ad763488cb6ffe10855 gcc/config/aarch64/aarch64-c.c ! 2a1910194724a82f97a2562865df70ab gcc/config/aarch64/aarch64-cores.def 6ef5c432d52d0360208a33c4c37f3e57 gcc/config/aarch64/aarch64-cost-tables.h 504b0f046169e4e164c6fb536b9f6db4 gcc/config/aarch64/aarch64-d.c 2316927cac32a0a0a7ba33d38d195075 gcc/config/aarch64/aarch64-elf-raw.h *************** c4084b7bbc66f67ef62d37961e022fff gcc/co *** 2871,2889 **** 8514c091ad15ab63df11916c856f9778 gcc/config/aarch64/aarch64-option-extensions.def 838f1517af2ca6f144fbeb195607045f gcc/config/aarch64/aarch64-opts.h 23b2873f94be769558c521835e53008d gcc/config/aarch64/aarch64-passes.def ! 8dac8c50d868798e3a4ff9a4009bd7f9 gcc/config/aarch64/aarch64-protos.h a26908792e566ebf4f2479f2ff030739 gcc/config/aarch64/aarch64-simd-builtin-types.def 90dabda2325e3b6bed53685154b7c2c8 gcc/config/aarch64/aarch64-simd-builtins.def 0331ee26469342302ea6a89a398796b7 gcc/config/aarch64/aarch64-simd.md 911f9e398e7439e5fb96856826cd6a2d gcc/config/aarch64/aarch64-speculation.cc 4136e56280157ea13020fd8e26eb6a25 gcc/config/aarch64/aarch64-sve.md ! 7d67ae03c56a05f1829bd459f6279dce gcc/config/aarch64/aarch64-tune.md 98b52570420efe9fa8acefbd95af9e95 gcc/config/aarch64/aarch64-tuning-flags.def ! b0bbec48304daea0bbef94922c1aae12 gcc/config/aarch64/aarch64.c 69dd357082588f1671b59a44e1bd1820 gcc/config/aarch64/aarch64.h 187f8f95baeb99bac41ef66291b7b48d gcc/config/aarch64/aarch64.md 04a6a853b8a946b5f5a8379e8fd86c86 gcc/config/aarch64/aarch64.opt ! 591bf7c3e8656a8915a7d9c803294a79 gcc/config/aarch64/arm_acle.h 0013b27a5b56f740cec7a9699f584a24 gcc/config/aarch64/arm_fp16.h 3096cdc4766fafd5a27b1ec2bbcadadc gcc/config/aarch64/arm_neon.h 878aa1d87d242aaafeef442c13a5fa78 gcc/config/aarch64/atomics.md --- 2875,2893 ---- 8514c091ad15ab63df11916c856f9778 gcc/config/aarch64/aarch64-option-extensions.def 838f1517af2ca6f144fbeb195607045f gcc/config/aarch64/aarch64-opts.h 23b2873f94be769558c521835e53008d gcc/config/aarch64/aarch64-passes.def ! 698d5dd4a2adedfb8fff32fe79ef4373 gcc/config/aarch64/aarch64-protos.h a26908792e566ebf4f2479f2ff030739 gcc/config/aarch64/aarch64-simd-builtin-types.def 90dabda2325e3b6bed53685154b7c2c8 gcc/config/aarch64/aarch64-simd-builtins.def 0331ee26469342302ea6a89a398796b7 gcc/config/aarch64/aarch64-simd.md 911f9e398e7439e5fb96856826cd6a2d gcc/config/aarch64/aarch64-speculation.cc 4136e56280157ea13020fd8e26eb6a25 gcc/config/aarch64/aarch64-sve.md ! c31182a2c06e7ff02b5ee7078f022f82 gcc/config/aarch64/aarch64-tune.md 98b52570420efe9fa8acefbd95af9e95 gcc/config/aarch64/aarch64-tuning-flags.def ! 5fa904a357c8826395ca26b7703a0fd7 gcc/config/aarch64/aarch64.c 69dd357082588f1671b59a44e1bd1820 gcc/config/aarch64/aarch64.h 187f8f95baeb99bac41ef66291b7b48d gcc/config/aarch64/aarch64.md 04a6a853b8a946b5f5a8379e8fd86c86 gcc/config/aarch64/aarch64.opt ! 065b47b729f4e5276868832598fbe7d1 gcc/config/aarch64/arm_acle.h 0013b27a5b56f740cec7a9699f584a24 gcc/config/aarch64/arm_fp16.h 3096cdc4766fafd5a27b1ec2bbcadadc gcc/config/aarch64/arm_neon.h 878aa1d87d242aaafeef442c13a5fa78 gcc/config/aarch64/atomics.md *************** f4f4c1e825fd8550109bcd9e9d6031f1 gcc/co *** 2974,2981 **** df34a1d4424a4314ed017eb80f6231f1 gcc/config/arm/aarch-cost-tables.h d89746094bfdffba0078bf383b492444 gcc/config/arm/aout.h d5fa0c26d4009345581488cda3b1cfd0 gcc/config/arm/arm-builtins.c ! 79b7d2fa65d2a4132bd739f07e35fb7f gcc/config/arm/arm-c.c ! 4c5ba8c6314d684ccd9c481b34d0aef4 gcc/config/arm/arm-cpus.in 9e4cca883ad18d67f5aef76b6546204e gcc/config/arm/arm-d.c 2abb717feb10fc401046e99dabb48364 gcc/config/arm/arm-fixed.md de5def37f28bbb179fec0bd32e6c33b1 gcc/config/arm/arm-flags.h --- 2978,2985 ---- df34a1d4424a4314ed017eb80f6231f1 gcc/config/arm/aarch-cost-tables.h d89746094bfdffba0078bf383b492444 gcc/config/arm/aout.h d5fa0c26d4009345581488cda3b1cfd0 gcc/config/arm/arm-builtins.c ! c3551214e6bac294b6f377f8ea346b44 gcc/config/arm/arm-c.c ! 3ec1525c70873ebc16e28b54889a566c gcc/config/arm/arm-cpus.in 9e4cca883ad18d67f5aef76b6546204e gcc/config/arm/arm-d.c 2abb717feb10fc401046e99dabb48364 gcc/config/arm/arm-fixed.md de5def37f28bbb179fec0bd32e6c33b1 gcc/config/arm/arm-flags.h *************** de5def37f28bbb179fec0bd32e6c33b1 gcc/co *** 2983,2993 **** 66fb074d47d486e3953c4de2b1b555dc gcc/config/arm/arm-ldmstm.ml 263cc60e9131bac221e70e5d6dc547cd gcc/config/arm/arm-modes.def e78009a8d13764d219ebfc56144bf0ac gcc/config/arm/arm-opts.h ! b4c793e95b0ed8b59f796053ec7f6acb gcc/config/arm/arm-protos.h 8e97c44a8af72486a4c5dbf52ec2f910 gcc/config/arm/arm-simd-builtin-types.def 2bc3e6a63b7c1f0abf9beb2000a7e799 gcc/config/arm/arm-tables.opt 53d1ff027e6f5d8acc9deae3ed7d4761 gcc/config/arm/arm-tune.md ! 1e74149a3bef1aa30f9264953a0eb5d4 gcc/config/arm/arm.c 30d086f1ea2f74e10dc923df0a5a618b gcc/config/arm/arm.h 4f1831a7d6d86c71fe4eca7a2fd11c99 gcc/config/arm/arm.md 4ccba5fde3d84bab8c82ba954f689e96 gcc/config/arm/arm.opt --- 2987,2997 ---- 66fb074d47d486e3953c4de2b1b555dc gcc/config/arm/arm-ldmstm.ml 263cc60e9131bac221e70e5d6dc547cd gcc/config/arm/arm-modes.def e78009a8d13764d219ebfc56144bf0ac gcc/config/arm/arm-opts.h ! 6c3fdf839314f3fa907f906a892b432c gcc/config/arm/arm-protos.h 8e97c44a8af72486a4c5dbf52ec2f910 gcc/config/arm/arm-simd-builtin-types.def 2bc3e6a63b7c1f0abf9beb2000a7e799 gcc/config/arm/arm-tables.opt 53d1ff027e6f5d8acc9deae3ed7d4761 gcc/config/arm/arm-tune.md ! a8f1289bb276131804221c09c36ed515 gcc/config/arm/arm.c 30d086f1ea2f74e10dc923df0a5a618b gcc/config/arm/arm.h 4f1831a7d6d86c71fe4eca7a2fd11c99 gcc/config/arm/arm.md 4ccba5fde3d84bab8c82ba954f689e96 gcc/config/arm/arm.opt *************** d47afa13477045fe8008b0584e46d4e7 gcc/co *** 3051,3057 **** c2be33e26eb8292a27bb21a6c92b78ef gcc/config/arm/rtems.h 8c07356b17ea44561571c21c6c253935 gcc/config/arm/semi.h 32340f243e64a90a7534264fd436d9ab gcc/config/arm/symbian.h ! bac2d4bb0074daf06320eeb62b250d11 gcc/config/arm/sync.md dc007b1dbf75597ac2a62d4681e273a0 gcc/config/arm/t-aprofile 6b88c5f39f1bd86d128a7ca99f68d542 gcc/config/arm/t-arm 8c2770253e332343c2e93e669e2c49eb gcc/config/arm/t-arm-elf --- 3055,3061 ---- c2be33e26eb8292a27bb21a6c92b78ef gcc/config/arm/rtems.h 8c07356b17ea44561571c21c6c253935 gcc/config/arm/semi.h 32340f243e64a90a7534264fd436d9ab gcc/config/arm/symbian.h ! 3dac6fa13bab608f2c9ced14848cccd0 gcc/config/arm/sync.md dc007b1dbf75597ac2a62d4681e273a0 gcc/config/arm/t-aprofile 6b88c5f39f1bd86d128a7ca99f68d542 gcc/config/arm/t-arm 8c2770253e332343c2e93e669e2c49eb gcc/config/arm/t-arm-elf *************** d424f0660f469d6c13a6f84e6b2858cf gcc/co *** 3065,3071 **** 6219db2eb3bceea962a45e9f1400f370 gcc/config/arm/t-rtems 0ea5b4f92221a7bd097fa437a0048d3e gcc/config/arm/t-symbian b5539c5e14f1eed60835983547d2b721 gcc/config/arm/t-vxworks ! e3630e720367efb2541680a7d3a719ca gcc/config/arm/thumb1.md f669257064afc30d581080fb012cfddf gcc/config/arm/thumb2.md d9951f54357bbd37880fd67d7fcc1be7 gcc/config/arm/types.md 802ce3cab15454d7b6ed350fc2188fc9 gcc/config/arm/uclinux-eabi.h --- 3069,3075 ---- 6219db2eb3bceea962a45e9f1400f370 gcc/config/arm/t-rtems 0ea5b4f92221a7bd097fa437a0048d3e gcc/config/arm/t-symbian b5539c5e14f1eed60835983547d2b721 gcc/config/arm/t-vxworks ! 977a7925eee8ae6138a16af9dd6e2758 gcc/config/arm/thumb1.md f669257064afc30d581080fb012cfddf gcc/config/arm/thumb2.md d9951f54357bbd37880fd67d7fcc1be7 gcc/config/arm/types.md 802ce3cab15454d7b6ed350fc2188fc9 gcc/config/arm/uclinux-eabi.h *************** dac0941e87c210a03bffaca2a100dd66 gcc/co *** 3328,3336 **** 4879afffa62e4ce6f8bcc1e9934948d1 gcc/config/i386/avx512bitalgintrin.h 788fe28a1d9fdb3e6edb53b8a0e970c1 gcc/config/i386/avx512bwintrin.h 30236a3956365ca84d335348fe116faf gcc/config/i386/avx512cdintrin.h ! c29821db0471b45eadd7ab6ec71f4873 gcc/config/i386/avx512dqintrin.h 22679dcef7173c443978b0ca9a17437e gcc/config/i386/avx512erintrin.h ! 023892c09edaf643818e24c34443d3d2 gcc/config/i386/avx512fintrin.h e8268cb64005fed6a678cfbc4642288a gcc/config/i386/avx512ifmaintrin.h ef0a9a8caf7f653ee9a94b583ea058a6 gcc/config/i386/avx512ifmavlintrin.h 88ca35aaa9c86d3fc2d7551541db0057 gcc/config/i386/avx512pfintrin.h --- 3332,3340 ---- 4879afffa62e4ce6f8bcc1e9934948d1 gcc/config/i386/avx512bitalgintrin.h 788fe28a1d9fdb3e6edb53b8a0e970c1 gcc/config/i386/avx512bwintrin.h 30236a3956365ca84d335348fe116faf gcc/config/i386/avx512cdintrin.h ! d35401bc40cff67605d4362264b65d3c gcc/config/i386/avx512dqintrin.h 22679dcef7173c443978b0ca9a17437e gcc/config/i386/avx512erintrin.h ! 212b51348140cb66f7f260224d60ff04 gcc/config/i386/avx512fintrin.h e8268cb64005fed6a678cfbc4642288a gcc/config/i386/avx512ifmaintrin.h ef0a9a8caf7f653ee9a94b583ea058a6 gcc/config/i386/avx512ifmavlintrin.h 88ca35aaa9c86d3fc2d7551541db0057 gcc/config/i386/avx512pfintrin.h *************** b3e3a26baaa00d042200fb7171d2ad0b gcc/co *** 3414,3422 **** ebd361a54224f0abb09743cd7d7c87cd gcc/config/i386/i386-opts.h 480131ba2044127fc48ecef37f6b74e8 gcc/config/i386/i386-passes.def e115f008106b73eff935b485b13cc766 gcc/config/i386/i386-protos.h ! eaaecb0a36f151a82043fc0429bc3a0f gcc/config/i386/i386.c b55f4f0bdd1dbfe310dd9a005b207f89 gcc/config/i386/i386.h ! da01678f26793413d4c39d4059341e0a gcc/config/i386/i386.md e1a477f88e849a4c3c9d66ce3d04471d gcc/config/i386/i386.opt cf4401814fee167918ada91933e2cc9e gcc/config/i386/i386elf.h 5768f331267273ad14615e7256f365f6 gcc/config/i386/ia32intrin.h --- 3418,3426 ---- ebd361a54224f0abb09743cd7d7c87cd gcc/config/i386/i386-opts.h 480131ba2044127fc48ecef37f6b74e8 gcc/config/i386/i386-passes.def e115f008106b73eff935b485b13cc766 gcc/config/i386/i386-protos.h ! a6c3e0055bdb6733adaa320f3159297b gcc/config/i386/i386.c b55f4f0bdd1dbfe310dd9a005b207f89 gcc/config/i386/i386.h ! d94370205830a6cdc6516388ec6161f6 gcc/config/i386/i386.md e1a477f88e849a4c3c9d66ce3d04471d gcc/config/i386/i386.opt cf4401814fee167918ada91933e2cc9e gcc/config/i386/i386elf.h 5768f331267273ad14615e7256f365f6 gcc/config/i386/ia32intrin.h *************** dc0286265c686c3ef0b832758390d99f gcc/co *** 3471,3481 **** 98f0c61a3452035fd54874836a63d639 gcc/config/i386/slm.md 6b483574d3f8c038362370f678dc3352 gcc/config/i386/smmintrin.h eef3bf1c23a71ddebdef079e46139a3f gcc/config/i386/sol2.h ! 0ab1c9b927a0d49a1213995f0a73f4b4 gcc/config/i386/sse.md e701af944d5f18cad99e23d7d5ba21c2 gcc/config/i386/ssemath.h 7a75a57a5da77d44a32094f37fe5e855 gcc/config/i386/stringop.def f001f25cc3598b7ef8e3caf37dd64d90 gcc/config/i386/subst.md ! 3cd36475dca703b316477e7e39a9ca16 gcc/config/i386/sync.md b9708069c1e7a8774135804668c0747e gcc/config/i386/sysv4.h 07010720a71483ae90330f605213906d gcc/config/i386/t-cet b47b47527b9244424064bb19980e397a gcc/config/i386/t-cygming --- 3475,3485 ---- 98f0c61a3452035fd54874836a63d639 gcc/config/i386/slm.md 6b483574d3f8c038362370f678dc3352 gcc/config/i386/smmintrin.h eef3bf1c23a71ddebdef079e46139a3f gcc/config/i386/sol2.h ! 5c26df3cc02a4cda853dbe7447be8d05 gcc/config/i386/sse.md e701af944d5f18cad99e23d7d5ba21c2 gcc/config/i386/ssemath.h 7a75a57a5da77d44a32094f37fe5e855 gcc/config/i386/stringop.def f001f25cc3598b7ef8e3caf37dd64d90 gcc/config/i386/subst.md ! 6782c4534f96ff8efdea88bfcb743535 gcc/config/i386/sync.md b9708069c1e7a8774135804668c0747e gcc/config/i386/sysv4.h 07010720a71483ae90330f605213906d gcc/config/i386/t-cet b47b47527b9244424064bb19980e397a gcc/config/i386/t-cygming *************** aecd930f5e2726f5bec1fb426197545b gcc/co *** 3738,3744 **** 764226fe1b4f917a978a90e372c0f60a gcc/config/mips/mips-protos.h 8001d509158827dddae86a1ef107a36a gcc/config/mips/mips-ps-3d.md 477dc18cac140a9950d9d880bfab331c gcc/config/mips/mips-tables.opt ! 9c76523537789bded96533945720f361 gcc/config/mips/mips.c ec9d3cae94023262f118d4d58cc16bae gcc/config/mips/mips.h ef8331ba20d805a0d756da3eb5122b0e gcc/config/mips/mips.md 58a1deebbe708f1c924bc88f260e4a43 gcc/config/mips/mips.opt --- 3742,3748 ---- 764226fe1b4f917a978a90e372c0f60a gcc/config/mips/mips-protos.h 8001d509158827dddae86a1ef107a36a gcc/config/mips/mips-ps-3d.md 477dc18cac140a9950d9d880bfab331c gcc/config/mips/mips-tables.opt ! d280ec067f7b5f21c91d834d12099baf gcc/config/mips/mips.c ec9d3cae94023262f118d4d58cc16bae gcc/config/mips/mips.h ef8331ba20d805a0d756da3eb5122b0e gcc/config/mips/mips.md 58a1deebbe708f1c924bc88f260e4a43 gcc/config/mips/mips.opt *************** d5563ed37efabc4113c6d2d52ae069f0 gcc/co *** 3949,3955 **** b61d90d50654c7416ffbc50abb8b19f1 gcc/config/pa/pa-protos.h be15a05318d9b51303e0eb3114a4a439 gcc/config/pa/pa.c 3baefb615e4ea3ff4f015c311f7893f4 gcc/config/pa/pa.h ! f214cdd0a0af71d8a9c464d72dd09146 gcc/config/pa/pa.md bf462e8a5710a6aafdf81ccefa55fd56 gcc/config/pa/pa.opt 720abbdc4cfa6947475c60b33316e8cb gcc/config/pa/pa32-linux.h 383d3a99e9a7d8e4a4acc6a9321613a4 gcc/config/pa/pa32-openbsd.h --- 3953,3959 ---- b61d90d50654c7416ffbc50abb8b19f1 gcc/config/pa/pa-protos.h be15a05318d9b51303e0eb3114a4a439 gcc/config/pa/pa.c 3baefb615e4ea3ff4f015c311f7893f4 gcc/config/pa/pa.h ! b9de98a1e2839d233161fd75d61520e1 gcc/config/pa/pa.md bf462e8a5710a6aafdf81ccefa55fd56 gcc/config/pa/pa.opt 720abbdc4cfa6947475c60b33316e8cb gcc/config/pa/pa32-linux.h 383d3a99e9a7d8e4a4acc6a9321613a4 gcc/config/pa/pa32-openbsd.h *************** cfa104f3ddbcd8026f9cdbb59fc5a3f8 gcc/co *** 4037,4043 **** 4f5f42efd636f048467ba47dd2981428 gcc/config/rs6000/aix64.opt a2a826870e6047bd5ebfd7307f5267cf gcc/config/rs6000/aix71.h 885a4a6f9f89a904cbf4b2ef2e2c3279 gcc/config/rs6000/aix72.h ! d9c4d74bf9f6b5d23d7bc0a3c6aaff47 gcc/config/rs6000/altivec.h 7c7a413491a2d93601e8e8b5c0065065 gcc/config/rs6000/altivec.md f8a755a4ac201e92796b8d6135392b4a gcc/config/rs6000/amo.h 957423610c96144855faff9547a793e1 gcc/config/rs6000/biarch64.h --- 4041,4047 ---- 4f5f42efd636f048467ba47dd2981428 gcc/config/rs6000/aix64.opt a2a826870e6047bd5ebfd7307f5267cf gcc/config/rs6000/aix71.h 885a4a6f9f89a904cbf4b2ef2e2c3279 gcc/config/rs6000/aix72.h ! ebd885e1b6dd273c9fafc9f8dddfc424 gcc/config/rs6000/altivec.h 7c7a413491a2d93601e8e8b5c0065065 gcc/config/rs6000/altivec.md f8a755a4ac201e92796b8d6135392b4a gcc/config/rs6000/amo.h 957423610c96144855faff9547a793e1 gcc/config/rs6000/biarch64.h *************** c67f18c015c106b14dacb2ba51479ff7 gcc/co *** 4103,4114 **** 4c247e7d5a6ce74cf83a3fe8aab4f654 gcc/config/rs6000/rs6000-modes.def 15ae2f98aaf815d75cf6c901ae237246 gcc/config/rs6000/rs6000-modes.h 07e2821d2d84428d1d1b6556421c64bc gcc/config/rs6000/rs6000-opts.h ! 7bed5a5c20fd6da84667ef7d4fb1c246 gcc/config/rs6000/rs6000-p8swap.c e05d5c8a047de2d8fdd1f7ee6af44deb gcc/config/rs6000/rs6000-passes.def f168035749ab2d165f81b6bb536c11f9 gcc/config/rs6000/rs6000-protos.h 3a8f1ad11a0dba7ead152579f7b3da5b gcc/config/rs6000/rs6000-string.c 02c1e43342566e1b7fa224f7a0cf807c gcc/config/rs6000/rs6000-tables.opt ! d45e612e21c391bbd8770fe683081861 gcc/config/rs6000/rs6000.c 76927b1dd36d76ab689025e8f53db229 gcc/config/rs6000/rs6000.h e4c7c75f3daf669a30471416a64bac67 gcc/config/rs6000/rs6000.md f42f20695669f67fccd35baa16ab0310 gcc/config/rs6000/rs6000.opt --- 4107,4118 ---- 4c247e7d5a6ce74cf83a3fe8aab4f654 gcc/config/rs6000/rs6000-modes.def 15ae2f98aaf815d75cf6c901ae237246 gcc/config/rs6000/rs6000-modes.h 07e2821d2d84428d1d1b6556421c64bc gcc/config/rs6000/rs6000-opts.h ! 8f4408b847892c73dae742a87a5f817e gcc/config/rs6000/rs6000-p8swap.c e05d5c8a047de2d8fdd1f7ee6af44deb gcc/config/rs6000/rs6000-passes.def f168035749ab2d165f81b6bb536c11f9 gcc/config/rs6000/rs6000-protos.h 3a8f1ad11a0dba7ead152579f7b3da5b gcc/config/rs6000/rs6000-string.c 02c1e43342566e1b7fa224f7a0cf807c gcc/config/rs6000/rs6000-tables.opt ! 4fdcfc45e654b7507c5f25f25d347837 gcc/config/rs6000/rs6000.c 76927b1dd36d76ab689025e8f53db229 gcc/config/rs6000/rs6000.h e4c7c75f3daf669a30471416a64bac67 gcc/config/rs6000/rs6000.md f42f20695669f67fccd35baa16ab0310 gcc/config/rs6000/rs6000.opt *************** f11925c88524d2fd457bf77944da1302 gcc/co *** 4146,4152 **** c3054f6c3f5da02827e7daaede36f96c gcc/config/rs6000/titan.md fcd8864ddc626c0896bf07db7cb4b10f gcc/config/rs6000/tmmintrin.h e7c6abe3e4c1f795aea38db6f87100ef gcc/config/rs6000/vec_types.h ! 04adaf408f8567bdc8965444af6f7dc9 gcc/config/rs6000/vector.md 101c91e5ed01f7254aabb1a094bfe19a gcc/config/rs6000/vsx.md d88c24ce567bf733e4984b96f051df6e gcc/config/rs6000/vxworks.h 1c95cf789023980c7f19ce5c4df89871 gcc/config/rs6000/vxworksae.h --- 4150,4156 ---- c3054f6c3f5da02827e7daaede36f96c gcc/config/rs6000/titan.md fcd8864ddc626c0896bf07db7cb4b10f gcc/config/rs6000/tmmintrin.h e7c6abe3e4c1f795aea38db6f87100ef gcc/config/rs6000/vec_types.h ! d44ce341c7a0b17594c7f8a1fd958fbc gcc/config/rs6000/vector.md 101c91e5ed01f7254aabb1a094bfe19a gcc/config/rs6000/vsx.md d88c24ce567bf733e4984b96f051df6e gcc/config/rs6000/vxworks.h 1c95cf789023980c7f19ce5c4df89871 gcc/config/rs6000/vxworksae.h *************** ca961517247358a5ffc34d0c59247348 gcc/co *** 4196,4202 **** 6e21265ae0a20bcc8f3e7ecee4ded227 gcc/config/s390/s390-protos.h 2f9f4990bb918036fe4bd529cad6322a gcc/config/s390/s390.c 68a8348dde8c9c7cc897b4e476b27e2c gcc/config/s390/s390.h ! a3a97382432237c66f55a60df5bd1bc4 gcc/config/s390/s390.md bdbd5866cc1cf0030217b3d42f505a09 gcc/config/s390/s390.opt 3a7d4589eccec5ca0c1509ad826a7645 gcc/config/s390/s390intrin.h 38978838a5b1948ea8a22c90711f0ea8 gcc/config/s390/s390x.h --- 4200,4206 ---- 6e21265ae0a20bcc8f3e7ecee4ded227 gcc/config/s390/s390-protos.h 2f9f4990bb918036fe4bd529cad6322a gcc/config/s390/s390.c 68a8348dde8c9c7cc897b4e476b27e2c gcc/config/s390/s390.h ! 0903605d34d7c593bcbdea27f22aed31 gcc/config/s390/s390.md bdbd5866cc1cf0030217b3d42f505a09 gcc/config/s390/s390.opt 3a7d4589eccec5ca0c1509ad826a7645 gcc/config/s390/s390intrin.h 38978838a5b1948ea8a22c90711f0ea8 gcc/config/s390/s390x.h *************** cbd40463e3ea483403791298453fd71e gcc/co *** 4206,4212 **** c9bbda48804d4713ec85f78f9d2d6e6d gcc/config/s390/tpf.h 62076dd49a73c59d5edaf7d215d1c780 gcc/config/s390/tpf.md c07c00818fb5b099d66aaebda265bdbb gcc/config/s390/tpf.opt ! 06cbca71ea2c038bad06205526781457 gcc/config/s390/vecintrin.h 0c35ad72f6b7005171521343f9b3e618 gcc/config/s390/vector.md ceb954a21d8fa44b81a3481071f39c46 gcc/config/s390/vx-builtins.md 19876f77a242921272972ac5b8bd32d0 gcc/config/s390/x-native --- 4210,4216 ---- c9bbda48804d4713ec85f78f9d2d6e6d gcc/config/s390/tpf.h 62076dd49a73c59d5edaf7d215d1c780 gcc/config/s390/tpf.md c07c00818fb5b099d66aaebda265bdbb gcc/config/s390/tpf.opt ! bef535cb43a88c8dfe9d15ece242829f gcc/config/s390/vecintrin.h 0c35ad72f6b7005171521343f9b3e618 gcc/config/s390/vector.md ceb954a21d8fa44b81a3481071f39c46 gcc/config/s390/vx-builtins.md 19876f77a242921272972ac5b8bd32d0 gcc/config/s390/x-native *************** aa427cfe3d4647ac44c278f45436ba49 gcc/co *** 4287,4293 **** 4d82caaf475b262387af725b2a52e701 gcc/config/sparc/sparc-opts.h 1ca073b706c09a8ae55d2d0ee31091a0 gcc/config/sparc/sparc-passes.def 102dce7b6e083d1ec7665a7c3eabb7cd gcc/config/sparc/sparc-protos.h ! 97bbea38b178b1caa8bb8ba835d94daa gcc/config/sparc/sparc.c a2ede8e59ead9a217e540e45df14d1d0 gcc/config/sparc/sparc.h c078d1049419ce814362e89518d7083a gcc/config/sparc/sparc.md 050d31a7b1dbcd95852a707f8ebe3664 gcc/config/sparc/sparc.opt --- 4291,4297 ---- 4d82caaf475b262387af725b2a52e701 gcc/config/sparc/sparc-opts.h 1ca073b706c09a8ae55d2d0ee31091a0 gcc/config/sparc/sparc-passes.def 102dce7b6e083d1ec7665a7c3eabb7cd gcc/config/sparc/sparc-protos.h ! b0d9c0e2e02465291e532167c0986c9e gcc/config/sparc/sparc.c a2ede8e59ead9a217e540e45df14d1d0 gcc/config/sparc/sparc.h c078d1049419ce814362e89518d7083a gcc/config/sparc/sparc.md 050d31a7b1dbcd95852a707f8ebe3664 gcc/config/sparc/sparc.opt *************** d73cc091da52a5651b62e5dd210dff71 gcc/co *** 4479,4494 **** 9435e37ec4d9b10632cb0274c23733dd gcc/config/xtensa/xtensa.h 0d53d0e769a8ee2bebabd03baeca1442 gcc/config/xtensa/xtensa.md 4d2567221429e8ff6bdf03bddaf11294 gcc/config/xtensa/xtensa.opt ! 257a044115219f9a2b1396bdfd93136c gcc/configure ! fd4275d1777f960c918deb4db5175239 gcc/configure.ac a172c20ab64d456534d82432f8645b86 gcc/context.c efedd3c44c8cd7fc59f7eda74f6fd29d gcc/context.h 37a26a95e18d4e6618aff970a29ca502 gcc/convert.c d1a041b82500893b285a0062712d277b gcc/convert.h ! f36fa6387bfd9a1849583a199f1bbb8b gcc/coretypes.h c14136eb30d31580686e09cef147f026 gcc/coverage.c 57a63860b2bca8fd7a62d7386a3a92f7 gcc/coverage.h ! 92801c4806248532823191da1fadcfb0 gcc/cp/ChangeLog d271e3663538ba1f3281cab3838e92cd gcc/cp/ChangeLog-1993 f5a44adbc05521162350ca409d1d95ce gcc/cp/ChangeLog-1994 ac55db48d964cb5469ff03c1cd3ee04d gcc/cp/ChangeLog-1995 --- 4483,4498 ---- 9435e37ec4d9b10632cb0274c23733dd gcc/config/xtensa/xtensa.h 0d53d0e769a8ee2bebabd03baeca1442 gcc/config/xtensa/xtensa.md 4d2567221429e8ff6bdf03bddaf11294 gcc/config/xtensa/xtensa.opt ! 76775f0bee5fa8cabf3f64c08cce9c98 gcc/configure ! cac384b540f2ad0c6b6b612a39c51da8 gcc/configure.ac a172c20ab64d456534d82432f8645b86 gcc/context.c efedd3c44c8cd7fc59f7eda74f6fd29d gcc/context.h 37a26a95e18d4e6618aff970a29ca502 gcc/convert.c d1a041b82500893b285a0062712d277b gcc/convert.h ! 894520e9c3074311ced108a314a3f4e9 gcc/coretypes.h c14136eb30d31580686e09cef147f026 gcc/coverage.c 57a63860b2bca8fd7a62d7386a3a92f7 gcc/coverage.h ! 2dc7d9ab78df19d6eecef49338a72a8a gcc/cp/ChangeLog d271e3663538ba1f3281cab3838e92cd gcc/cp/ChangeLog-1993 f5a44adbc05521162350ca409d1d95ce gcc/cp/ChangeLog-1994 ac55db48d964cb5469ff03c1cd3ee04d gcc/cp/ChangeLog-1995 *************** c1c7801b9b0f379e702a4f6cb83972e7 gcc/cp *** 4519,4532 **** 9aa3cd9f75c785de9f51446e3f295515 gcc/cp/ChangeLog.tree-ssa 927c956157fea028964c8aec368e5ed2 gcc/cp/Make-lang.in a278dbf0995f78e9c037b3c4f1558d27 gcc/cp/NEWS ! 7bbcaa2e1211b911d2ed9d0f4329cbe3 gcc/cp/call.c bd7a7016228b634d3bb60519ffbdcde6 gcc/cp/cfns.gperf e1aef57a57197c4db859e6bafa97cbfb gcc/cp/cfns.h ! 6295d24ecb062b6829ba869c2717261d gcc/cp/class.c 5bb396c6ffef5b425dc65c47c112fed6 gcc/cp/config-lang.in ! 9f88a30c703941d3f739700ec034c04d gcc/cp/constexpr.c 0a465881de25f2f3086e995915c8e33a gcc/cp/constraint.cc ! 84aa49947f501978d294fcb65087f292 gcc/cp/cp-gimplify.c 8d003f7c56f3b655d27aededf2e31606 gcc/cp/cp-lang.c cc48600f1ca0be9a19049072dd42b85e gcc/cp/cp-name-hint.h 9b1647c60e17bf71d36685f45bd35790 gcc/cp/cp-objcp-common.c --- 4523,4536 ---- 9aa3cd9f75c785de9f51446e3f295515 gcc/cp/ChangeLog.tree-ssa 927c956157fea028964c8aec368e5ed2 gcc/cp/Make-lang.in a278dbf0995f78e9c037b3c4f1558d27 gcc/cp/NEWS ! 43dc9a94648c63e6be0957af95ccdcae gcc/cp/call.c bd7a7016228b634d3bb60519ffbdcde6 gcc/cp/cfns.gperf e1aef57a57197c4db859e6bafa97cbfb gcc/cp/cfns.h ! ed953585aba37167dd71b501331c4547 gcc/cp/class.c 5bb396c6ffef5b425dc65c47c112fed6 gcc/cp/config-lang.in ! a14920ba595884c5af30929bac48fa65 gcc/cp/constexpr.c 0a465881de25f2f3086e995915c8e33a gcc/cp/constraint.cc ! 4a6c889e316023e9c821acf7670ec2b0 gcc/cp/cp-gimplify.c 8d003f7c56f3b655d27aededf2e31606 gcc/cp/cp-lang.c cc48600f1ca0be9a19049072dd42b85e gcc/cp/cp-name-hint.h 9b1647c60e17bf71d36685f45bd35790 gcc/cp/cp-objcp-common.c *************** c8b9da9c09a506504b0c54beff127041 gcc/cp *** 4534,4574 **** 6ea954ee3f925c4785d3d5857da37472 gcc/cp/cp-tree.def 735e5f89b92dd23850236e8afda3eea4 gcc/cp/cp-tree.h 0783a755e68a2794f241b524e94f3353 gcc/cp/cp-ubsan.c ! daadab04ea47474c93c89ea05140ebbd gcc/cp/cvt.c 01b7c558a0ac024db7c60c6be62c6182 gcc/cp/cxx-pretty-print.c 7678a47a8d93312c8398e268ffc5f308 gcc/cp/cxx-pretty-print.h ! bd4a1f86a150537b040585d5ff15119b gcc/cp/decl.c 76de9595bf45ff8c300bb78f7b6e3c45 gcc/cp/decl.h ! bfd52cecb79617ce0dfe56009af504e4 gcc/cp/decl2.c d68784ba349655ce2b051133db1fa676 gcc/cp/dump.c 8cfe3d7f84da7499e66a2551e0e3ee76 gcc/cp/error.c 80a9b2f4c389366bb1f4c40386761718 gcc/cp/except.c 1fe3d8f1c89d432c5993ad8d1f520d2c gcc/cp/expr.c 50e91fd6211f17a456f074a8d8327f2d gcc/cp/friend.c 924d92243a92c5fe453452023675f96d gcc/cp/g++spec.c ! 0955dff21b4d5137990e5962ea21b8c6 gcc/cp/init.c ! 510226a0414695072f6c228729fb37ee gcc/cp/lambda.c e7f47fb180b2ce4ccd8d330e3fc7e0fb gcc/cp/lang-specs.h f1a6231ae470a1750e57819b2f004be9 gcc/cp/lex.c 656a41f03fcd123732899b8be272be88 gcc/cp/logic.cc dd3b848f12c5bb1b3751b8039dcdb23f gcc/cp/mangle.c ! c35b9e09bf86e979189e4b4ff320ed81 gcc/cp/method.c e2c6982d1781b9eea42edcd27f3fa39e gcc/cp/name-lookup.c 415a1e03948c0a97410e0c8df020777c gcc/cp/name-lookup.h 779f6c0c5ade6968723ca62c0849ab82 gcc/cp/operators.def b9f1b1883295d945297dfce4b04adc55 gcc/cp/optimize.c ! 0ceb46837451e7996f5425a1b87f6a7b gcc/cp/parser.c 61fc5d88549647fbe68ceb0f175b1a6f gcc/cp/parser.h ! b8e19a07c86c91b71a62c8c085023c79 gcc/cp/pt.c dc36180a1e0205c61709a1dcb3da2bc1 gcc/cp/ptree.c c191067abf9a5a2693dbbe01025ed1e2 gcc/cp/repo.c 37d68656370c1e59494aec59f81a7334 gcc/cp/rtti.c ! 19996ebc786c9b84189e3750bee1dec1 gcc/cp/search.c ! 64de92d0e6413e67dcea9e43e2a28b0d gcc/cp/semantics.c ! 9955723f016847b5d12053c4cb7852cb gcc/cp/tree.c 839663aeac0fb479ddbc961c92afb34d gcc/cp/type-utils.h ! 6339e53bde45e957b26c6999f0857dc6 gcc/cp/typeck.c ! 4abe3006a9aaa5fb979a445bbdc3041a gcc/cp/typeck2.c b11f9a133d5862c4062de877470cbc63 gcc/cp/vtable-class-hierarchy.c c7b05adeb502c9e885483461d1e59f99 gcc/cppbuiltin.c fd364bcfc8956c1e8e97417e3d79206a gcc/cppbuiltin.h --- 4538,4578 ---- 6ea954ee3f925c4785d3d5857da37472 gcc/cp/cp-tree.def 735e5f89b92dd23850236e8afda3eea4 gcc/cp/cp-tree.h 0783a755e68a2794f241b524e94f3353 gcc/cp/cp-ubsan.c ! 01ebdc3f988a82c30a37a8acd37dc4d7 gcc/cp/cvt.c 01b7c558a0ac024db7c60c6be62c6182 gcc/cp/cxx-pretty-print.c 7678a47a8d93312c8398e268ffc5f308 gcc/cp/cxx-pretty-print.h ! 85445ae78f5565aa9108c6ba52e1837e gcc/cp/decl.c 76de9595bf45ff8c300bb78f7b6e3c45 gcc/cp/decl.h ! 0fa39c0b1c59b2b42764d74b020b3ba1 gcc/cp/decl2.c d68784ba349655ce2b051133db1fa676 gcc/cp/dump.c 8cfe3d7f84da7499e66a2551e0e3ee76 gcc/cp/error.c 80a9b2f4c389366bb1f4c40386761718 gcc/cp/except.c 1fe3d8f1c89d432c5993ad8d1f520d2c gcc/cp/expr.c 50e91fd6211f17a456f074a8d8327f2d gcc/cp/friend.c 924d92243a92c5fe453452023675f96d gcc/cp/g++spec.c ! 0ab9280e92ab2b1e3c2b27f6e0c6cc88 gcc/cp/init.c ! b7459620dbf25324456f436d29e25c81 gcc/cp/lambda.c e7f47fb180b2ce4ccd8d330e3fc7e0fb gcc/cp/lang-specs.h f1a6231ae470a1750e57819b2f004be9 gcc/cp/lex.c 656a41f03fcd123732899b8be272be88 gcc/cp/logic.cc dd3b848f12c5bb1b3751b8039dcdb23f gcc/cp/mangle.c ! 7c65707dd52a77ae34ed77e99294b94b gcc/cp/method.c e2c6982d1781b9eea42edcd27f3fa39e gcc/cp/name-lookup.c 415a1e03948c0a97410e0c8df020777c gcc/cp/name-lookup.h 779f6c0c5ade6968723ca62c0849ab82 gcc/cp/operators.def b9f1b1883295d945297dfce4b04adc55 gcc/cp/optimize.c ! 682e9fd91c82a1b0bade653610b0e940 gcc/cp/parser.c 61fc5d88549647fbe68ceb0f175b1a6f gcc/cp/parser.h ! af4de88a33b86d2965e7a7929b856d66 gcc/cp/pt.c dc36180a1e0205c61709a1dcb3da2bc1 gcc/cp/ptree.c c191067abf9a5a2693dbbe01025ed1e2 gcc/cp/repo.c 37d68656370c1e59494aec59f81a7334 gcc/cp/rtti.c ! 07a3d6370f1913de109380cd30e81c83 gcc/cp/search.c ! 0a97894d66b320d20353554cbdd7abfc gcc/cp/semantics.c ! a31369f3e1a2ce7621b3a00459e928d4 gcc/cp/tree.c 839663aeac0fb479ddbc961c92afb34d gcc/cp/type-utils.h ! 2460ec4f974df178969ad4c289a9cd26 gcc/cp/typeck.c ! 2843d9302e01a304f1f5bbd088f55fd0 gcc/cp/typeck2.c b11f9a133d5862c4062de877470cbc63 gcc/cp/vtable-class-hierarchy.c c7b05adeb502c9e885483461d1e59f99 gcc/cppbuiltin.c fd364bcfc8956c1e8e97417e3d79206a gcc/cppbuiltin.h *************** ffc565b160c589448866aecb0be58b85 gcc/cp *** 4579,4585 **** 521c763deb893206d18e8951f5d82a87 gcc/cselib.c 063a252b68c316f24dc59a07f97e1d2b gcc/cselib.h 1ded054093de910d9786c62bc4fe8cc6 gcc/cstamp-h.in ! b6586f51006d4d88e4d1ce2ec515e9ff gcc/d/ChangeLog 86f687c485111eedca2eb048294f957e gcc/d/ChangeLog-2006 70ed1c47fd9b3f5dd95055642ed79265 gcc/d/ChangeLog-2007 a7090ab2dd83aa4f44823c17566b83ef gcc/d/ChangeLog-2008 --- 4583,4589 ---- 521c763deb893206d18e8951f5d82a87 gcc/cselib.c 063a252b68c316f24dc59a07f97e1d2b gcc/cselib.h 1ded054093de910d9786c62bc4fe8cc6 gcc/cstamp-h.in ! 00c6e1e05f7fe6f433f3520c950a7a6a gcc/d/ChangeLog 86f687c485111eedca2eb048294f957e gcc/d/ChangeLog-2006 70ed1c47fd9b3f5dd95055642ed79265 gcc/d/ChangeLog-2007 a7090ab2dd83aa4f44823c17566b83ef gcc/d/ChangeLog-2008 *************** d46228dde1a38d9a1d640d737074c7c6 gcc/d/ *** 4597,4619 **** 426254b45d40584d0597c63f3fd1f889 gcc/d/README.gcc 3889f613443f83466de11879583c7c56 gcc/d/config-lang.in ab1805e6fbeca12694e48ad5647cf75f gcc/d/d-attribs.cc ! 19d5d0090070aca754fb5c69daf9f575 gcc/d/d-builtins.cc ! 147c5cffb4b08f3331ffc7c3cbe7f46b gcc/d/d-codegen.cc ! 54821d0af588a195886517c11d8bd56e gcc/d/d-convert.cc d28fabe5b976c23bdf1cb17b87873b24 gcc/d/d-diagnostic.cc ! 1eb3a388d0b763c5eec695e32c52f880 gcc/d/d-frontend.cc 92d620d19499c3fea1af9338880ec5e1 gcc/d/d-incpath.cc ! 2cfceac12d5663b336b81da6633d727f gcc/d/d-lang.cc 6b120c503825b655d9315eec8f551cf4 gcc/d/d-longdouble.cc ! e90ea3893ec2da1ded77a73b6a54523a gcc/d/d-spec.cc 05979a29d8188b2d12dcf7361c3860d5 gcc/d/d-system.h c9c75df86a1921452fb7c3eb350db276 gcc/d/d-target-def.h d0a0c2bc7c06459b08cd025c803e144c gcc/d/d-target.cc 9e30c52dece5da61a2b4dfe26592cc76 gcc/d/d-target.def 1fd2383d1f8225d05edf96130962589a gcc/d/d-target.h 8742f99d0b7e9cec2d3d8f3d76586d03 gcc/d/d-tree.def ! c5de05279f80ac9d5d57a6f5f6504ae9 gcc/d/d-tree.h ! bb36302de3c82cb186cb972fe09318f7 gcc/d/decl.cc 7b8a15b57af82e7b2d9f7e22541816b8 gcc/d/dmd/MERGE 094ef829e65f40de6ff4b765b3ca0aba gcc/d/dmd/access.c b937792954f9b87f37b759945c1b548d gcc/d/dmd/aggregate.h --- 4601,4623 ---- 426254b45d40584d0597c63f3fd1f889 gcc/d/README.gcc 3889f613443f83466de11879583c7c56 gcc/d/config-lang.in ab1805e6fbeca12694e48ad5647cf75f gcc/d/d-attribs.cc ! 7204ee4680c9705922b2b4991e37507d gcc/d/d-builtins.cc ! 96a8446ad503827555e74bf2802eb1f5 gcc/d/d-codegen.cc ! 7c3db9a1a90f7346ae276dfecb531b15 gcc/d/d-convert.cc d28fabe5b976c23bdf1cb17b87873b24 gcc/d/d-diagnostic.cc ! cf87c440d46f746c93b1cb83b0a8c67d gcc/d/d-frontend.cc 92d620d19499c3fea1af9338880ec5e1 gcc/d/d-incpath.cc ! 958036593810b2a0a1e5f477bda43215 gcc/d/d-lang.cc 6b120c503825b655d9315eec8f551cf4 gcc/d/d-longdouble.cc ! f8aece8c3f98bfab7d559134cbc7e5f2 gcc/d/d-spec.cc 05979a29d8188b2d12dcf7361c3860d5 gcc/d/d-system.h c9c75df86a1921452fb7c3eb350db276 gcc/d/d-target-def.h d0a0c2bc7c06459b08cd025c803e144c gcc/d/d-target.cc 9e30c52dece5da61a2b4dfe26592cc76 gcc/d/d-target.def 1fd2383d1f8225d05edf96130962589a gcc/d/d-target.h 8742f99d0b7e9cec2d3d8f3d76586d03 gcc/d/d-tree.def ! 1dc3965f78929e8f6073bb2ca562075a gcc/d/d-tree.h ! a440aefb5f9a90c39ca529c670dcdb79 gcc/d/decl.cc 7b8a15b57af82e7b2d9f7e22541816b8 gcc/d/dmd/MERGE 094ef829e65f40de6ff4b765b3ca0aba gcc/d/dmd/access.c b937792954f9b87f37b759945c1b548d gcc/d/dmd/aggregate.h *************** b3601d5b994054853b715fff03bad6ce gcc/d/ *** 4637,4643 **** 0aad426af143096c5c7c1982288ec1c1 gcc/d/dmd/cppmangle.c d6532d0f561d63f9672705445e9dde50 gcc/d/dmd/ctfe.h c62fa9f184ac63731400621fbd22151f gcc/d/dmd/ctfeexpr.c ! b0076f51e79d7b18fff3eefe2add9c4f gcc/d/dmd/dcast.c b7b59b8b92be756ab8ba36cc2763024b gcc/d/dmd/dclass.c 15816f2a13a336a8423ff965cbd9e629 gcc/d/dmd/declaration.c 3c5de70c957e27a2489506027caa67f7 gcc/d/dmd/declaration.h --- 4641,4647 ---- 0aad426af143096c5c7c1982288ec1c1 gcc/d/dmd/cppmangle.c d6532d0f561d63f9672705445e9dde50 gcc/d/dmd/ctfe.h c62fa9f184ac63731400621fbd22151f gcc/d/dmd/ctfeexpr.c ! 2bb61ba407e66eff2580e0d5668d5580 gcc/d/dmd/dcast.c b7b59b8b92be756ab8ba36cc2763024b gcc/d/dmd/dclass.c 15816f2a13a336a8423ff965cbd9e629 gcc/d/dmd/declaration.c 3c5de70c957e27a2489506027caa67f7 gcc/d/dmd/declaration.h *************** f69a19e34a9f63afd02b76eb1b84cc68 gcc/d/ *** 4660,4669 **** c6f02113251e440cbb35240ec47dbb6f gcc/d/dmd/enum.h b51bf064e22dde0a02049ba02cfc1c3b gcc/d/dmd/errors.h 8966a99836d97acba39cd471926927c6 gcc/d/dmd/escape.c ! d77d52763aecd377905269f2bd7c2182 gcc/d/dmd/expression.c a9a79d7a78bb0fdf043a429b21cd4d87 gcc/d/dmd/expression.h ! 78e240c472a4bae5ca22ab06f0cb1615 gcc/d/dmd/expressionsem.c ! 948782708694753b9fa5597c9fccc644 gcc/d/dmd/func.c cde112db136fdefee83d87dd156d9c87 gcc/d/dmd/globals.h b4daf38366e52619e9ff08ce1afd82f0 gcc/d/dmd/hdrgen.c 2a9c3a3fc7a48af7f0e406c439488e76 gcc/d/dmd/hdrgen.h --- 4664,4673 ---- c6f02113251e440cbb35240ec47dbb6f gcc/d/dmd/enum.h b51bf064e22dde0a02049ba02cfc1c3b gcc/d/dmd/errors.h 8966a99836d97acba39cd471926927c6 gcc/d/dmd/escape.c ! b568cf1cc445d47a99348e0a1c37ecd0 gcc/d/dmd/expression.c a9a79d7a78bb0fdf043a429b21cd4d87 gcc/d/dmd/expression.h ! 374ab14926758ac9e2450a7d09128b08 gcc/d/dmd/expressionsem.c ! 46d9f39de123b3ddc6ccb1df6d980a98 gcc/d/dmd/func.c cde112db136fdefee83d87dd156d9c87 gcc/d/dmd/globals.h b4daf38366e52619e9ff08ce1afd82f0 gcc/d/dmd/hdrgen.c 2a9c3a3fc7a48af7f0e406c439488e76 gcc/d/dmd/hdrgen.h *************** aa27fa9fcab046604292cc23e32920aa gcc/d/ *** 4688,4694 **** 3a5e02b34a70c25dca7c038ede27c96f gcc/d/dmd/mangle.h 24d743d1eec9c6f5c9f25e00ee87737e gcc/d/dmd/mars.h a6d66a9f48c681f23e87401f58bf7639 gcc/d/dmd/module.h ! 0bc1f74bd3d9b1d6e335786bb254969b gcc/d/dmd/mtype.c 9ede8dec31c412ffce09bf3bd6f6a34b gcc/d/dmd/mtype.h cb8d9d9bfab84ac59a0b018752f2f899 gcc/d/dmd/nogc.c 885902ace75746551ea90ae607e0ddf7 gcc/d/dmd/nspace.c --- 4692,4698 ---- 3a5e02b34a70c25dca7c038ede27c96f gcc/d/dmd/mangle.h 24d743d1eec9c6f5c9f25e00ee87737e gcc/d/dmd/mars.h a6d66a9f48c681f23e87401f58bf7639 gcc/d/dmd/module.h ! 3f9387a47f1d725c0f2c6dfc64967938 gcc/d/dmd/mtype.c 9ede8dec31c412ffce09bf3bd6f6a34b gcc/d/dmd/mtype.h cb8d9d9bfab84ac59a0b018752f2f899 gcc/d/dmd/nogc.c 885902ace75746551ea90ae607e0ddf7 gcc/d/dmd/nspace.c *************** b6b97848ff841c2ba786e35a155e7969 gcc/d/ *** 4746,4752 **** 892df329899d0581aea17c5742a9652a gcc/d/dmd/utils.c a8f7c4f694d68924d68d98d7d2c17d09 gcc/d/dmd/version.h eb8cc8d6ae9048b5633808e6015aa7fc gcc/d/dmd/visitor.h ! b4439e3821f021ed3d3cb6fd899c654b gcc/d/expr.cc 01b1cb421cd94409f091da7563b64a84 gcc/d/gdc.texi fd0c735ed74be69fb3d5386c8979fc76 gcc/d/imports.cc 7b8e910764002fc09929920495466648 gcc/d/intrinsics.cc --- 4750,4756 ---- 892df329899d0581aea17c5742a9652a gcc/d/dmd/utils.c a8f7c4f694d68924d68d98d7d2c17d09 gcc/d/dmd/version.h eb8cc8d6ae9048b5633808e6015aa7fc gcc/d/dmd/visitor.h ! 65c53264dfcaabef38e7ded8b151a7f3 gcc/d/expr.cc 01b1cb421cd94409f091da7563b64a84 gcc/d/gdc.texi fd0c735ed74be69fb3d5386c8979fc76 gcc/d/imports.cc 7b8e910764002fc09929920495466648 gcc/d/intrinsics.cc *************** fd0c735ed74be69fb3d5386c8979fc76 gcc/d/ *** 4758,4764 **** 8e37c551277e43140b32e55184ade1cb gcc/d/runtime.cc beee6605ebcd87c9e5d21533727dc99b gcc/d/runtime.def b0ae361e15a3935005ce7693a750c0d9 gcc/d/toir.cc ! ca7302c4530954c9b1fe2a624dc7b052 gcc/d/typeinfo.cc bc669363a46031847ec11f9917d0f791 gcc/d/types.cc ffe6cb4083340e61aa80419c3ac2f84a gcc/d/verstr.h f255eec311a31715362516286c3c0d1e gcc/data-streamer-in.c --- 4762,4768 ---- 8e37c551277e43140b32e55184ade1cb gcc/d/runtime.cc beee6605ebcd87c9e5d21533727dc99b gcc/d/runtime.def b0ae361e15a3935005ce7693a750c0d9 gcc/d/toir.cc ! 0492c2b137d3da5147cfdc02418f5b85 gcc/d/typeinfo.cc bc669363a46031847ec11f9917d0f791 gcc/d/types.cc ffe6cb4083340e61aa80419c3ac2f84a gcc/d/verstr.h f255eec311a31715362516286c3c0d1e gcc/data-streamer-in.c *************** f61fe8bd99c6a1ee739116e65817e9d4 gcc/do *** 4800,4806 **** 7b7190fbddc8b4e564f4ae2123abd2a8 gcc/doc/configterms.texi 60795d196c8261eb7d710f4bbdf5b015 gcc/doc/contrib.texi c6b2e96df83a0ae7111453ccafa54bd5 gcc/doc/contribute.texi ! 37ddcd0322cdfcc3484325b3a62d35fc gcc/doc/cpp.1 4851bbb23c3348de1de4987f269ef888 gcc/doc/cpp.info 154157aaad20b7dd5dc93e07aaa69dde gcc/doc/cpp.texi b5148df3818448706f2b184a97174cad gcc/doc/cppdiropts.texi --- 4804,4810 ---- 7b7190fbddc8b4e564f4ae2123abd2a8 gcc/doc/configterms.texi 60795d196c8261eb7d710f4bbdf5b015 gcc/doc/contrib.texi c6b2e96df83a0ae7111453ccafa54bd5 gcc/doc/contribute.texi ! 240f3c76fe1b1f7c77ce5f905cd204c7 gcc/doc/cpp.1 4851bbb23c3348de1de4987f269ef888 gcc/doc/cpp.info 154157aaad20b7dd5dc93e07aaa69dde gcc/doc/cpp.texi b5148df3818448706f2b184a97174cad gcc/doc/cppdiropts.texi *************** f7bb9ac1b5dae60734555eca90a141ca gcc/do *** 4812,4837 **** 5ddf7c316ac36a168376638128450af1 gcc/doc/extend.texi 9847a0b4ecac8bf01bc1390013fa25f1 gcc/doc/fragments.texi c6bd1ed9265f37784faebba05d829a4f gcc/doc/frontends.texi ! 7fc64ee768900f57ce0be6c8e6619d8b gcc/doc/fsf-funding.7 ! 295b4a989e615c9210f44b52b881a2a8 gcc/doc/g++.1 ! 295b4a989e615c9210f44b52b881a2a8 gcc/doc/gcc.1 ! 77446cb197e8e32dd5c0d9f6a99541e0 gcc/doc/gcc.info e49f40ab3091f625cf3ed09bbd005483 gcc/doc/gcc.texi b41fcdcd779f4ddd344db2bcb161e191 gcc/doc/gccinstall.info ! cb4bec6e4a402db960a3ef6c1e304a5c gcc/doc/gccint.info b71c697ca91f3744177b1504dd26599c gcc/doc/gccint.texi ! 3e344e02c5eb8ca85b4e6c7b38333886 gcc/doc/gcov-dump.1 8a2e1271edd73ce818e66d7603a38736 gcc/doc/gcov-dump.texi ! 13217ff4acf964f3bdcb9fe678067a73 gcc/doc/gcov-tool.1 c8c5612b4f78f5bbbb9094c3ce76017f gcc/doc/gcov-tool.texi ! 199b07d99c1cc70557854d4c1b8aea44 gcc/doc/gcov.1 4b1362331fe06b615478dd02a6a38525 gcc/doc/gcov.texi a3b1af463ddc14719f053f2825afcd86 gcc/doc/generic.texi ! d36126d51b4b151c58d2211d04b1f14a gcc/doc/gfdl.7 ! 76ca9617144830be5d5c11f2538c8744 gcc/doc/gfortran.1 0162e7820af2a1b1c5ded204215ac77b gcc/doc/gimple.texi 290370669f02bef1502ada9273e5261f gcc/doc/gnu.texi ! c9d589069f2400d282960c1ec96634cb gcc/doc/gpl.7 dd066b0630411d8431ab6142fd30bbaf gcc/doc/gty.texi 706dcee8b5b7d645197a197c3ef0764d gcc/doc/headerdirs.texi 11553023c3bbd45ec05788fcb50553d0 gcc/doc/hostconfig.texi --- 4816,4841 ---- 5ddf7c316ac36a168376638128450af1 gcc/doc/extend.texi 9847a0b4ecac8bf01bc1390013fa25f1 gcc/doc/fragments.texi c6bd1ed9265f37784faebba05d829a4f gcc/doc/frontends.texi ! 30f7a1b94e554e79bc804a66b0bec0d2 gcc/doc/fsf-funding.7 ! d228d7f00f3e0b959d1bc8be77cab8d9 gcc/doc/g++.1 ! d228d7f00f3e0b959d1bc8be77cab8d9 gcc/doc/gcc.1 ! 1d6f825e341dbbffd3b4d096ee919e1d gcc/doc/gcc.info e49f40ab3091f625cf3ed09bbd005483 gcc/doc/gcc.texi b41fcdcd779f4ddd344db2bcb161e191 gcc/doc/gccinstall.info ! b74e61f2882531df4b242303925c77eb gcc/doc/gccint.info b71c697ca91f3744177b1504dd26599c gcc/doc/gccint.texi ! 204a6b3621c2d371e88cabddf298006e gcc/doc/gcov-dump.1 8a2e1271edd73ce818e66d7603a38736 gcc/doc/gcov-dump.texi ! a301996aba6fa56986fc0d9196e86ceb gcc/doc/gcov-tool.1 c8c5612b4f78f5bbbb9094c3ce76017f gcc/doc/gcov-tool.texi ! 3d2a7156a7942ee3d59ee985232e27a9 gcc/doc/gcov.1 4b1362331fe06b615478dd02a6a38525 gcc/doc/gcov.texi a3b1af463ddc14719f053f2825afcd86 gcc/doc/generic.texi ! 99eaed4f70411bf32431b7047b09a2ec gcc/doc/gfdl.7 ! b6622288128874c94da600ee41a7775d gcc/doc/gfortran.1 0162e7820af2a1b1c5ded204215ac77b gcc/doc/gimple.texi 290370669f02bef1502ada9273e5261f gcc/doc/gnu.texi ! 148ea0348da57d58a4e8f1c49fbf1494 gcc/doc/gpl.7 dd066b0630411d8431ab6142fd30bbaf gcc/doc/gty.texi 706dcee8b5b7d645197a197c3ef0764d gcc/doc/headerdirs.texi 11553023c3bbd45ec05788fcb50553d0 gcc/doc/hostconfig.texi *************** f525208b1949ff445fb4a894794e8e05 gcc/do *** 4846,4852 **** 2ca7887a1423e623be92b018be89ea50 gcc/doc/install.texi 0f558b94d69d2b1452bc739b3d8712de gcc/doc/install.texi2html ba0abad9116562664f5e8ea17d3cec7e gcc/doc/interface.texi ! d4dc54e4c718a9bcc2a66b5f506f78b7 gcc/doc/invoke.texi 096755dfefc05752e3fd09c84b9632a8 gcc/doc/languages.texi 7ca1cfbc8d0459fc45e1a53008bd1259 gcc/doc/libgcc.texi d690c5f97dbd9a2c12aed96a27abfdc2 gcc/doc/loop.texi --- 4850,4856 ---- 2ca7887a1423e623be92b018be89ea50 gcc/doc/install.texi 0f558b94d69d2b1452bc739b3d8712de gcc/doc/install.texi2html ba0abad9116562664f5e8ea17d3cec7e gcc/doc/interface.texi ! 8df12933d3fc3dc21e626455f825250a gcc/doc/invoke.texi 096755dfefc05752e3fd09c84b9632a8 gcc/doc/languages.texi 7ca1cfbc8d0459fc45e1a53008bd1259 gcc/doc/libgcc.texi d690c5f97dbd9a2c12aed96a27abfdc2 gcc/doc/loop.texi *************** d4270ca62e1fd1bc375d642b6778aac9 gcc/do *** 4868,4874 **** 9feb632829443d31779f25ba8b4e7a10 gcc/doc/tm.texi 9e38175d09d245fafa478e93e572c758 gcc/doc/tm.texi.in e6ec84f0b2ef9864fb6a5f7c4237676e gcc/doc/tree-ssa.texi ! 4baeee2a1d4a38edb2074402a1eb8f54 gcc/doc/trouble.texi 1d02ff36adff241a5a2b156424bae7ac gcc/doc/ux.texi 6c97372a81a4be1d1b6b66ebe199e32e gcc/dojump.c 4c299b4e4171fe13330d9f38323e1466 gcc/dojump.h --- 4872,4878 ---- 9feb632829443d31779f25ba8b4e7a10 gcc/doc/tm.texi 9e38175d09d245fafa478e93e572c758 gcc/doc/tm.texi.in e6ec84f0b2ef9864fb6a5f7c4237676e gcc/doc/tree-ssa.texi ! 745087f55e5bcdda3ee437c56757fe83 gcc/doc/trouble.texi 1d02ff36adff241a5a2b156424bae7ac gcc/doc/ux.texi 6c97372a81a4be1d1b6b66ebe199e32e gcc/dojump.c 4c299b4e4171fe13330d9f38323e1466 gcc/dojump.h *************** ac8212e5149b4a43b5514799717c12e8 gcc/du *** 4885,4891 **** b427cf7950620d2efb54a542b24a040a gcc/dwarf2asm.c 3a904ab05dda79aabc42b47af11cd1d7 gcc/dwarf2asm.h a9f35cced7de4e4644ff031b2c628a51 gcc/dwarf2cfi.c ! c022e3f70f328b1554000540d0372854 gcc/dwarf2out.c 6c3040feb62413d91fa5af20e6be80b6 gcc/dwarf2out.h 1cffa50733686702bdc12a1523e57464 gcc/early-remat.c 084ecabdaf2905b82436533aaaf0b94b gcc/edit-context.c --- 4889,4895 ---- b427cf7950620d2efb54a542b24a040a gcc/dwarf2asm.c 3a904ab05dda79aabc42b47af11cd1d7 gcc/dwarf2asm.h a9f35cced7de4e4644ff031b2c628a51 gcc/dwarf2cfi.c ! 7186d835f3aac4d5f512e33356b59e8e gcc/dwarf2out.c 6c3040feb62413d91fa5af20e6be80b6 gcc/dwarf2out.h 1cffa50733686702bdc12a1523e57464 gcc/early-remat.c 084ecabdaf2905b82436533aaaf0b94b gcc/edit-context.c *************** e3dbcca9faf05cdec97b81b92a0193e0 gcc/ex *** 4901,4909 **** c57c11af41129f87aaf9a8eec7c5b614 gcc/exec-tool.in 433c0a7e4b3b6fe4be1bffe126a6746f gcc/explow.c d445c1bb97b86f76c7530964bc3ac62e gcc/explow.h ! 9e42368c6ef6e6190741d4abeb9367ca gcc/expmed.c 9ff2927efa2e1a0e55558021c26390b5 gcc/expmed.h ! 6d3231d98a69b222d37d5bb759ac4da4 gcc/expr.c 22a1b040a029cec71713c858072c2d14 gcc/expr.h 2af4795d4868f3b0a341a1b9899dfafd gcc/fibonacci_heap.c 8ffbe05bee20e34a768cf6eaec0d5901 gcc/fibonacci_heap.h --- 4905,4913 ---- c57c11af41129f87aaf9a8eec7c5b614 gcc/exec-tool.in 433c0a7e4b3b6fe4be1bffe126a6746f gcc/explow.c d445c1bb97b86f76c7530964bc3ac62e gcc/explow.h ! ca9f4b7f66bd47fbb2ccd4be159e6803 gcc/expmed.c 9ff2927efa2e1a0e55558021c26390b5 gcc/expmed.h ! c73eb775825644d54c6c38a56b03e456 gcc/expr.c 22a1b040a029cec71713c858072c2d14 gcc/expr.h 2af4795d4868f3b0a341a1b9899dfafd gcc/fibonacci_heap.c 8ffbe05bee20e34a768cf6eaec0d5901 gcc/fibonacci_heap.h *************** e4b447e1be275c2eb7ef7a53fff39820 gcc/fi *** 4918,4926 **** 2245c6ff80a16a793e9b5348de6e91f8 gcc/flags.h 62ab96e4969839c0d49207c84e167bdb gcc/fold-const-call.c 6d7b5c94cd6a5d83f71696406018c0a3 gcc/fold-const-call.h ! afd7978173bbcee689518c68d7eb5087 gcc/fold-const.c a1a5b70d2d5210db75df2a17bc70430e gcc/fold-const.h ! 336b6a02b76affde67f01c0268a83e88 gcc/fortran/ChangeLog 3330102ad3a0217cba963be6b5eefd58 gcc/fortran/ChangeLog-2002 d000ab985b1eeb1ad5749f98b8fef99f gcc/fortran/ChangeLog-2003 bf42f94f0c51dcc7d8051cc7fda1efdc gcc/fortran/ChangeLog-2004 --- 4922,4930 ---- 2245c6ff80a16a793e9b5348de6e91f8 gcc/flags.h 62ab96e4969839c0d49207c84e167bdb gcc/fold-const-call.c 6d7b5c94cd6a5d83f71696406018c0a3 gcc/fold-const-call.h ! cc614b3c15b781bcb0942f61832c2e01 gcc/fold-const.c a1a5b70d2d5210db75df2a17bc70430e gcc/fold-const.h ! 0b3b662ef11fad33a2a245c6946c9815 gcc/fortran/ChangeLog 3330102ad3a0217cba963be6b5eefd58 gcc/fortran/ChangeLog-2002 d000ab985b1eeb1ad5749f98b8fef99f gcc/fortran/ChangeLog-2003 bf42f94f0c51dcc7d8051cc7fda1efdc gcc/fortran/ChangeLog-2004 *************** a71efd3e199a80ee07c7f350cc8fcf91 gcc/fo *** 4942,4951 **** f93ce4ff63aa482acfbf5a258406caf4 gcc/fortran/Make-lang.in 88530577751506e8debcf03819287351 gcc/fortran/arith.c 6690836eb720015b7835e95cd989703d gcc/fortran/arith.h ! eb8b022ff1980d33a6f9e0593f6ff632 gcc/fortran/array.c 05d16522c697cac97b84b91201171e02 gcc/fortran/bbt.c ! acd084a3cffd2ca6c5626009e9ca0893 gcc/fortran/check.c ! 7f6b70584c3de7f0bb181eea8953f11b gcc/fortran/class.c 0e917b3713317f87e6dc15b1ad750f62 gcc/fortran/config-lang.in 2eee8a4a70686c5631dc61c35a89d41c gcc/fortran/constructor.c 654703401f8709ab9f4aaa9a8268c9b3 gcc/fortran/constructor.h --- 4946,4955 ---- f93ce4ff63aa482acfbf5a258406caf4 gcc/fortran/Make-lang.in 88530577751506e8debcf03819287351 gcc/fortran/arith.c 6690836eb720015b7835e95cd989703d gcc/fortran/arith.h ! 58e0f1716c23d7431e5ab271e092c988 gcc/fortran/array.c 05d16522c697cac97b84b91201171e02 gcc/fortran/bbt.c ! 218a0c422f4f59084052cfd5d8f1e338 gcc/fortran/check.c ! e8d79ba6e87cc9830201057db9db5997 gcc/fortran/class.c 0e917b3713317f87e6dc15b1ad750f62 gcc/fortran/config-lang.in 2eee8a4a70686c5631dc61c35a89d41c gcc/fortran/constructor.c 654703401f8709ab9f4aaa9a8268c9b3 gcc/fortran/constructor.h *************** b59fb0736f3f4578927b040ae8f77938 gcc/fo *** 4954,4967 **** c53510898175a735499a6d352eb16ebb gcc/fortran/cpp.h b0ee88872ed75aabd353d76f0ac45f7e gcc/fortran/data.c 713d22369c1f1fcefd7a1679e3fb3b64 gcc/fortran/data.h ! 903f3a85635de85d1c964641c00b523a gcc/fortran/decl.c 55c0619e60ea4f3e4f6e7151b4b26ea7 gcc/fortran/dependency.c e447ed1c3ad604ee5016b65f79ed4c02 gcc/fortran/dependency.h 42f3695702ab65892a5c71ad2ba2f725 gcc/fortran/dump-parse-tree.c ede6895c89e02d2d9e7349452194899a gcc/fortran/error.c ! f99bd5cbd7d343fb67b82525802a8ba4 gcc/fortran/expr.c 4e03cda963b3169c1fbda02df38964e9 gcc/fortran/f95-lang.c ! d9cbd00b50e8e2fe37b41477844274c2 gcc/fortran/frontend-passes.c 3fd259abb59ef9e6976c0454605afc0e gcc/fortran/gfc-diagnostic.def 656bf644425fd5feb9342279fbf284c2 gcc/fortran/gfc-internals.texi f6f914dde4fdc4c3c4edeecc034f67ac gcc/fortran/gfortran.h --- 4958,4971 ---- c53510898175a735499a6d352eb16ebb gcc/fortran/cpp.h b0ee88872ed75aabd353d76f0ac45f7e gcc/fortran/data.c 713d22369c1f1fcefd7a1679e3fb3b64 gcc/fortran/data.h ! 751dbc052818d56f11fe18b1b608ebec gcc/fortran/decl.c 55c0619e60ea4f3e4f6e7151b4b26ea7 gcc/fortran/dependency.c e447ed1c3ad604ee5016b65f79ed4c02 gcc/fortran/dependency.h 42f3695702ab65892a5c71ad2ba2f725 gcc/fortran/dump-parse-tree.c ede6895c89e02d2d9e7349452194899a gcc/fortran/error.c ! dc57e10e6f44d496900da9247263072f gcc/fortran/expr.c 4e03cda963b3169c1fbda02df38964e9 gcc/fortran/f95-lang.c ! bc17a9a7efd4bba02a80ae59713dfe4f gcc/fortran/frontend-passes.c 3fd259abb59ef9e6976c0454605afc0e gcc/fortran/gfc-diagnostic.def 656bf644425fd5feb9342279fbf284c2 gcc/fortran/gfc-internals.texi f6f914dde4fdc4c3c4edeecc034f67ac gcc/fortran/gfortran.h *************** ff1a6a30a0064bec3ee8d70ee3ff1c2d gcc/fo *** 4969,4975 **** 148c0054609b07ed97a421cdba7fe6e7 gcc/fortran/gfortran.texi 22e71554f803f8d2e62849b4737c3981 gcc/fortran/gfortranspec.c f2f83712b8ba62f5c06e692bcee0fcb0 gcc/fortran/interface.c ! 99914103a79faa3c92ae7dedd56a5f38 gcc/fortran/intrinsic.c 74c19897e7db71beea588034368e2433 gcc/fortran/intrinsic.h 10362718ebff50de271d962bdd90ddba gcc/fortran/intrinsic.texi b697f4eb995ff9d18d91f0ac5f265202 gcc/fortran/invoke.texi --- 4973,4979 ---- 148c0054609b07ed97a421cdba7fe6e7 gcc/fortran/gfortran.texi 22e71554f803f8d2e62849b4737c3981 gcc/fortran/gfortranspec.c f2f83712b8ba62f5c06e692bcee0fcb0 gcc/fortran/interface.c ! 2c9666d1866da891c2a4e073db08dcfa gcc/fortran/intrinsic.c 74c19897e7db71beea588034368e2433 gcc/fortran/intrinsic.h 10362718ebff50de271d962bdd90ddba gcc/fortran/intrinsic.texi b697f4eb995ff9d18d91f0ac5f265202 gcc/fortran/invoke.texi *************** b963693d98b80d4cfea882998d563e9a gcc/fo *** 4989,5018 **** 9cb0c241e5dd82f5096c2d2f0d7286fc gcc/fortran/module.c 8f3165aef2cc1d1f54301fc5dec4e0a3 gcc/fortran/openmp.c f095631319d07a3a3936b639e3e1accc gcc/fortran/options.c ! beb21d7de2d02fb33b13294dc14618e4 gcc/fortran/parse.c d1adfddb8878d4805a7fc236b3c20889 gcc/fortran/parse.h ! 84702a60fc8423c4ac2015586bfcc075 gcc/fortran/primary.c ! 28aeddbfa59ee7017b764a75c2b2d77b gcc/fortran/resolve.c 9a58a2d73bc89b881362fc2febd07aa8 gcc/fortran/scanner.c 9dcd63b70743079da9fc354873d59439 gcc/fortran/scanner.h ! 5c93b69b315b45cab78a9c048b34e101 gcc/fortran/simplify.c a1f4b55a0b9b527024a4ee138311b639 gcc/fortran/st.c 284eea56b293637d1d3ad2a60d383bf5 gcc/fortran/symbol.c b8dc81d2bb586c45cad96700dac806ac gcc/fortran/target-memory.c cc4a189ff7003dc03b49eeb76a83af99 gcc/fortran/target-memory.h ! a599207ad6c870a4a0e27f982fb6fd2a gcc/fortran/trans-array.c e733e4cead324cb4cde3b4f4fc8d7524 gcc/fortran/trans-array.h 451a0e174d17bb4b912aa89cb13250ee gcc/fortran/trans-common.c 41a1229f5f63123bd9ead09467d00a34 gcc/fortran/trans-const.c 077cb8eeab5058daa9568ef0fc4a2e14 gcc/fortran/trans-const.h ! 28c6e48c4676fecf9f73f697d9896d3f gcc/fortran/trans-decl.c ! 2a486b050f1c573198d6c1b9cac7952d gcc/fortran/trans-expr.c ! 6cf4f62059ca47eda0ca36af99534bed gcc/fortran/trans-intrinsic.c 2d979e269fb210ca986be1d64ec08a99 gcc/fortran/trans-io.c 4fbacc437435c7e0fb558b2d508b69ba gcc/fortran/trans-openmp.c ! 1e2a8b90cbfedc523c8aa3fb0ed53fb9 gcc/fortran/trans-stmt.c 10db947b29d97f98aa8af08ddb4b5689 gcc/fortran/trans-stmt.h ! 8f85db9554ba79b3732fd418a08774d7 gcc/fortran/trans-types.c c22006170686ea7e7f2a7dd8a4ac0a98 gcc/fortran/trans-types.h af26a330b7f6e8e28455ada1fb45c9c8 gcc/fortran/trans.c d44407639161acdb2d8873146c1082ae gcc/fortran/trans.h --- 4993,5022 ---- 9cb0c241e5dd82f5096c2d2f0d7286fc gcc/fortran/module.c 8f3165aef2cc1d1f54301fc5dec4e0a3 gcc/fortran/openmp.c f095631319d07a3a3936b639e3e1accc gcc/fortran/options.c ! e1ab95229794d30843057acffeb0ac14 gcc/fortran/parse.c d1adfddb8878d4805a7fc236b3c20889 gcc/fortran/parse.h ! 230f80379ef7a2cf95e61cbd1539942a gcc/fortran/primary.c ! a512a01c5fd6ec3feb1cbf71e32adfcc gcc/fortran/resolve.c 9a58a2d73bc89b881362fc2febd07aa8 gcc/fortran/scanner.c 9dcd63b70743079da9fc354873d59439 gcc/fortran/scanner.h ! aff0b4f1624d246544670f38965965a3 gcc/fortran/simplify.c a1f4b55a0b9b527024a4ee138311b639 gcc/fortran/st.c 284eea56b293637d1d3ad2a60d383bf5 gcc/fortran/symbol.c b8dc81d2bb586c45cad96700dac806ac gcc/fortran/target-memory.c cc4a189ff7003dc03b49eeb76a83af99 gcc/fortran/target-memory.h ! 60deb7f55db67c76be53ad27d1cbb215 gcc/fortran/trans-array.c e733e4cead324cb4cde3b4f4fc8d7524 gcc/fortran/trans-array.h 451a0e174d17bb4b912aa89cb13250ee gcc/fortran/trans-common.c 41a1229f5f63123bd9ead09467d00a34 gcc/fortran/trans-const.c 077cb8eeab5058daa9568ef0fc4a2e14 gcc/fortran/trans-const.h ! 598b413712f5af3a25c314b388e1dc2e gcc/fortran/trans-decl.c ! 9dd359f9b5096d323419b8894331dbac gcc/fortran/trans-expr.c ! e0c29d389d6cd18fb881b87abe920b78 gcc/fortran/trans-intrinsic.c 2d979e269fb210ca986be1d64ec08a99 gcc/fortran/trans-io.c 4fbacc437435c7e0fb558b2d508b69ba gcc/fortran/trans-openmp.c ! 10407d29fc56c7033e07fc124fdb1d1f gcc/fortran/trans-stmt.c 10db947b29d97f98aa8af08ddb4b5689 gcc/fortran/trans-stmt.h ! 1c1c10fc1fe83e7f283554bfb91b588a gcc/fortran/trans-types.c c22006170686ea7e7f2a7dd8a4ac0a98 gcc/fortran/trans-types.h af26a330b7f6e8e28455ada1fb45c9c8 gcc/fortran/trans.c d44407639161acdb2d8873146c1082ae gcc/fortran/trans.h *************** cda4b49528909fb1792335767f849280 gcc/ge *** 5063,5069 **** 84f9f809e1190b730831dbc5dfb85e21 gcc/genextract.c 74d89bef10f452419493538163fcba6e gcc/genflags.c 3f6aa70123bbc2cd7943d1af1bb1c7e6 gcc/gengenrtl.c ! 24e3d661a8d7fa27ebbb18aadc028ab9 gcc/gengtype-lex.c d6a5c2c81b9e7185f5cb40d1c5a3387f gcc/gengtype-lex.l ef8a85e16c49cc975ea80e6e4401f6ad gcc/gengtype-parse.c 24e7c2757ffbf7927773c712f6788c40 gcc/gengtype-state.c --- 5067,5073 ---- 84f9f809e1190b730831dbc5dfb85e21 gcc/genextract.c 74d89bef10f452419493538163fcba6e gcc/genflags.c 3f6aa70123bbc2cd7943d1af1bb1c7e6 gcc/gengenrtl.c ! c67466a1d12344b54de8623e925e839f gcc/gengtype-lex.c d6a5c2c81b9e7185f5cb40d1c5a3387f gcc/gengtype-lex.l ef8a85e16c49cc975ea80e6e4401f6ad gcc/gengtype-parse.c 24e7c2757ffbf7927773c712f6788c40 gcc/gengtype-state.c *************** cf7571696e624a579917e310b027f022 gcc/ge *** 5093,5105 **** fe776463982ded0d56be76536ca458ab gcc/gimple-builder.h 33cda24a0e46cc4177b621760f46ce2d gcc/gimple-expr.c a026330f3f8e5ac33622b51cdbdf0617 gcc/gimple-expr.h ! 53fa8a03ef6244068bc7b308037f6b92 gcc/gimple-fold.c 6ca763486e28e598342728afde8faf3d gcc/gimple-fold.h cd8563c27ad3db4bc7c4ea623b39732a gcc/gimple-iterator.c ace1a0d92d6cdd622d3c7bd19303781c gcc/gimple-iterator.h 35c24fecb621723d3515631ac4d34547 gcc/gimple-laddress.c ! b3fe8f3f4dc718d48211bbda066c6060 gcc/gimple-loop-interchange.cc ! b62f2be3c07988cd994f1dd2a17300cd gcc/gimple-loop-jam.c 0be3abb400bc287133905dc6d8017f05 gcc/gimple-loop-versioning.cc 73229265187e7cfa0d2e677f837a2566 gcc/gimple-low.c 5dbc7b9651cef8ed681c4b5d29fc99ce gcc/gimple-low.h --- 5097,5109 ---- fe776463982ded0d56be76536ca458ab gcc/gimple-builder.h 33cda24a0e46cc4177b621760f46ce2d gcc/gimple-expr.c a026330f3f8e5ac33622b51cdbdf0617 gcc/gimple-expr.h ! 48daefced1059cbb721f609234bb3f1b gcc/gimple-fold.c 6ca763486e28e598342728afde8faf3d gcc/gimple-fold.h cd8563c27ad3db4bc7c4ea623b39732a gcc/gimple-iterator.c ace1a0d92d6cdd622d3c7bd19303781c gcc/gimple-iterator.h 35c24fecb621723d3515631ac4d34547 gcc/gimple-laddress.c ! 874a31be7817d0e971c953e4f0fdacb2 gcc/gimple-loop-interchange.cc ! 83aaeb84c5df94bc996f3b53a9aeb385 gcc/gimple-loop-jam.c 0be3abb400bc287133905dc6d8017f05 gcc/gimple-loop-versioning.cc 73229265187e7cfa0d2e677f837a2566 gcc/gimple-low.c 5dbc7b9651cef8ed681c4b5d29fc99ce gcc/gimple-low.h *************** fbc9c2b7facb284738bc629308f03977 gcc/gi *** 5109,5122 **** 92a8e41ff978aab760401bf3ca4750d0 gcc/gimple-pretty-print.c ac273988375794e4c74c31b6b7708221 gcc/gimple-pretty-print.h 1efbc58ae5a07d02cd36f745a82ac28f gcc/gimple-ssa-backprop.c ! ec48323c7e1ca800d4ec509f45ad7877 gcc/gimple-ssa-evrp-analyze.c cb280fc50fdfd0553959dbd58ae4855b gcc/gimple-ssa-evrp-analyze.h f394080b854aa7af57231ab0644a2654 gcc/gimple-ssa-evrp.c b2ca5aefc1483eac5180b94247ab87f4 gcc/gimple-ssa-isolate-paths.c 8f9800879105df9af7d2e9a0ff7c54af gcc/gimple-ssa-nonnull-compare.c 693f943c67f155aa5b93be1928d0670b gcc/gimple-ssa-split-paths.c 8df73dc6abf181e8b2177e62880750ff gcc/gimple-ssa-sprintf.c ! 9954c9dda6d9a5166cdd2eb915d5234e gcc/gimple-ssa-store-merging.c 8cb08b09a37b794a52d31195a2d7e325 gcc/gimple-ssa-strength-reduction.c 4cc96ae538fa8489e02efccf68c3e316 gcc/gimple-ssa-warn-alloca.c 89f060b6731dca618debd6520665e51a gcc/gimple-ssa-warn-restrict.c --- 5113,5126 ---- 92a8e41ff978aab760401bf3ca4750d0 gcc/gimple-pretty-print.c ac273988375794e4c74c31b6b7708221 gcc/gimple-pretty-print.h 1efbc58ae5a07d02cd36f745a82ac28f gcc/gimple-ssa-backprop.c ! 2b087c52f7a10605a8b3f5330d3810a9 gcc/gimple-ssa-evrp-analyze.c cb280fc50fdfd0553959dbd58ae4855b gcc/gimple-ssa-evrp-analyze.h f394080b854aa7af57231ab0644a2654 gcc/gimple-ssa-evrp.c b2ca5aefc1483eac5180b94247ab87f4 gcc/gimple-ssa-isolate-paths.c 8f9800879105df9af7d2e9a0ff7c54af gcc/gimple-ssa-nonnull-compare.c 693f943c67f155aa5b93be1928d0670b gcc/gimple-ssa-split-paths.c 8df73dc6abf181e8b2177e62880750ff gcc/gimple-ssa-sprintf.c ! f4636300d84d73d96c3a3f89de7f2d17 gcc/gimple-ssa-store-merging.c 8cb08b09a37b794a52d31195a2d7e325 gcc/gimple-ssa-strength-reduction.c 4cc96ae538fa8489e02efccf68c3e316 gcc/gimple-ssa-warn-alloca.c 89f060b6731dca618debd6520665e51a gcc/gimple-ssa-warn-restrict.c *************** efba4f60d77659f0b4e126b3894344af gcc/gi *** 5132,5138 **** 398d13e61baf9570b3ccb3318454180c gcc/gimple.h 49c11f744d31cc41069cc45dbba1bc25 gcc/gimplify-me.c 43fa6e5094c93aad8036a14d8ac60e20 gcc/gimplify-me.h ! be0b0609714fe07145e47ba88217b940 gcc/gimplify.c c6c0510b3e23b740d9a289269fda55b9 gcc/gimplify.h 87ed659d26854a1857ea25b6233dd522 gcc/ginclude/float.h 8840798a3cd9f1606a7a0d1ef178904d gcc/ginclude/iso646.h --- 5136,5142 ---- 398d13e61baf9570b3ccb3318454180c gcc/gimple.h 49c11f744d31cc41069cc45dbba1bc25 gcc/gimplify-me.c 43fa6e5094c93aad8036a14d8ac60e20 gcc/gimplify-me.h ! c2dfa0473ab67654d0ca9e78b5a3a0fa gcc/gimplify.c c6c0510b3e23b740d9a289269fda55b9 gcc/gimplify.h 87ed659d26854a1857ea25b6233dd522 gcc/ginclude/float.h 8840798a3cd9f1606a7a0d1ef178904d gcc/ginclude/iso646.h *************** ad51c6dce046c56b6a8e5d6ac922150b gcc/gi *** 5149,5155 **** e7c24451311a3e2059da9b3e5233e549 gcc/ginclude/unwind-arm-common.h 8d9ecf0d6ef93c79623ce1d27a32a2cb gcc/ginclude/varargs.h d1d7a18eab357274c98cfeb68fb7577f gcc/glimits.h ! 9ca02c8452dc59c982a659baf4bb1c35 gcc/go/ChangeLog 5dd2a0d1adf4b7075e03ae31c64bfc47 gcc/go/Make-lang.in 60ea054548c83c7f66170073f9f3e74c gcc/go/README.gcc 4ce687ab1f7ff58da47bb2be300ecad5 gcc/go/config-lang.in --- 5153,5159 ---- e7c24451311a3e2059da9b3e5233e549 gcc/ginclude/unwind-arm-common.h 8d9ecf0d6ef93c79623ce1d27a32a2cb gcc/ginclude/varargs.h d1d7a18eab357274c98cfeb68fb7577f gcc/glimits.h ! ccd813cbeba3ee44fbb98dbce2ca303e gcc/go/ChangeLog 5dd2a0d1adf4b7075e03ae31c64bfc47 gcc/go/Make-lang.in 60ea054548c83c7f66170073f9f3e74c gcc/go/README.gcc 4ce687ab1f7ff58da47bb2be300ecad5 gcc/go/config-lang.in *************** ed53ca6bc3a0a838c57fc17993eb8af2 gcc/go *** 5212,5218 **** c002bbe4869c7b9f5d21cf0b80661ed2 gcc/go/gospec.c cc8e4ac44a4de29ab7c0c5cd5ac14ad6 gcc/go/lang-specs.h 89a0dd56d751c67530f868ed41a2dbff gcc/go/lang.opt ! 4577e978d5767139b583d816f6c2e628 gcc/godump.c c90b0f7c7777b60ef91b68f48966089c gcc/graph.c a47ca772697121d45ad30003353f2032 gcc/graph.h 0a5dab60b08349bb46fd5038da337878 gcc/graphds.c --- 5216,5222 ---- c002bbe4869c7b9f5d21cf0b80661ed2 gcc/go/gospec.c cc8e4ac44a4de29ab7c0c5cd5ac14ad6 gcc/go/lang-specs.h 89a0dd56d751c67530f868ed41a2dbff gcc/go/lang.opt ! 5b682ee6f7179c24312d1f52829498f3 gcc/godump.c c90b0f7c7777b60ef91b68f48966089c gcc/graph.c a47ca772697121d45ad30003353f2032 gcc/graph.h 0a5dab60b08349bb46fd5038da337878 gcc/graphds.c *************** ca68a25a64c559f7a41e3525eca09b6c gcc/hs *** 5258,5264 **** 36e846e182394495f94f883cf72cfcbe gcc/hw-doloop.h e1769f5a4a468c7cfe22f78e573e45cb gcc/hwint.c 6460d7e3864468adcae22abc91ed4cdf gcc/hwint.h ! 19e24ff7bfa51d98730583f0fa8c056b gcc/ifcvt.c 9a9e1c3da1f366dc16b8b8e5818e14f1 gcc/ifcvt.h 533dfd905c4894e5f16acfb8845cfbd3 gcc/inchash.c ce434b387c488566f9ebd9e0fae8de7d gcc/inchash.h --- 5262,5268 ---- 36e846e182394495f94f883cf72cfcbe gcc/hw-doloop.h e1769f5a4a468c7cfe22f78e573e45cb gcc/hwint.c 6460d7e3864468adcae22abc91ed4cdf gcc/hwint.h ! 93ecb2d59b40f779a77aacb384016d70 gcc/ifcvt.c 9a9e1c3da1f366dc16b8b8e5818e14f1 gcc/ifcvt.h 533dfd905c4894e5f16acfb8845cfbd3 gcc/inchash.c ce434b387c488566f9ebd9e0fae8de7d gcc/inchash.h *************** b830ed3141b82cd7d738c9e1625d3877 gcc/in *** 5278,5284 **** 0343fae56569bff7d0a1987df3ef21de gcc/ipa-comdats.c 2884e52eff1df01dd5f09b2dfa19e12a gcc/ipa-cp.c 7a7d98ba684c181322e5a4b8f25c8a90 gcc/ipa-devirt.c ! 707034fa2339aa0a74196f27400ed261 gcc/ipa-fnsummary.c b231d101383c784df13b08fb9d507308 gcc/ipa-fnsummary.h fb40952a6ce3b62999d6ce91032348fd gcc/ipa-hsa.c 7c489ca8cae37ce214f15f55e27d0593 gcc/ipa-icf-gimple.c --- 5282,5288 ---- 0343fae56569bff7d0a1987df3ef21de gcc/ipa-comdats.c 2884e52eff1df01dd5f09b2dfa19e12a gcc/ipa-cp.c 7a7d98ba684c181322e5a4b8f25c8a90 gcc/ipa-devirt.c ! ea3c36ad447b881f8d2d70536e3109ef gcc/ipa-fnsummary.c b231d101383c784df13b08fb9d507308 gcc/ipa-fnsummary.h fb40952a6ce3b62999d6ce91032348fd gcc/ipa-hsa.c 7c489ca8cae37ce214f15f55e27d0593 gcc/ipa-icf-gimple.c *************** d9d77a7cd2abda1024391d72afc05523 gcc/ip *** 5297,5303 **** 58244d38b306c53757b03fda86970d4c gcc/ipa-profile.c 5919f23ec7e8220718bd140684417aa0 gcc/ipa-prop.c c3613620c90b32afce8736fa308aaddf gcc/ipa-prop.h ! 08c163fa101969c638b8529a27b9e3aa gcc/ipa-pure-const.c 06f8bbdeab3c11c5d2d7790841b3dbbd gcc/ipa-ref.c 6df3ba98ea16de671956223d72a85acf gcc/ipa-ref.h f28dfd8f7308648578d13498523932ca gcc/ipa-reference.c --- 5301,5307 ---- 58244d38b306c53757b03fda86970d4c gcc/ipa-profile.c 5919f23ec7e8220718bd140684417aa0 gcc/ipa-prop.c c3613620c90b32afce8736fa308aaddf gcc/ipa-prop.h ! bea530223085ff820dee2f9e13c6d796 gcc/ipa-pure-const.c 06f8bbdeab3c11c5d2d7790841b3dbbd gcc/ipa-ref.c 6df3ba98ea16de671956223d72a85acf gcc/ipa-ref.h f28dfd8f7308648578d13498523932ca gcc/ipa-reference.c *************** ed8837fcbbe053c18350910f4576cc35 gcc/ir *** 5317,5323 **** f3b2cd197795cb4eded5edb7473fd30f gcc/ira.c 21568d492259d37083295ba429e5a425 gcc/ira.h 0a247958e75cc3f70045797573fbaccb gcc/is-a.h ! 5d2992e7e35222d989252783fb5ba6dc gcc/jit/ChangeLog 6071bdf04fb356c5ac99a99ec00c9a12 gcc/jit/ChangeLog.jit 1679b6e3887d20d9a2efb258aacbd1e3 gcc/jit/Make-lang.in fd0d76b6467c987f813d430a35d4760a gcc/jit/TODO.rst --- 5321,5327 ---- f3b2cd197795cb4eded5edb7473fd30f gcc/ira.c 21568d492259d37083295ba429e5a425 gcc/ira.h 0a247958e75cc3f70045797573fbaccb gcc/is-a.h ! f2203e84115adc964618584d57412674 gcc/jit/ChangeLog 6071bdf04fb356c5ac99a99ec00c9a12 gcc/jit/ChangeLog.jit 1679b6e3887d20d9a2efb258aacbd1e3 gcc/jit/Make-lang.in fd0d76b6467c987f813d430a35d4760a gcc/jit/TODO.rst *************** d9c04fa3bf5c0ca30e9d33a4a8e4b1ca gcc/ji *** 5385,5391 **** 18da562095be6239287b43e74f66c7d9 gcc/jit/jit-common.h 1e4be092d0c7bdb354d7ed50a65f6da8 gcc/jit/jit-logging.c 09a516e8611a3001ce84c8e2c37a3d5d gcc/jit/jit-logging.h ! 97bcec442b4530d051b11d37901997f1 gcc/jit/jit-playback.c b0e6d1bbb09db276debdd989189eba76 gcc/jit/jit-playback.h 2451361122198b894c2c03c56fddac45 gcc/jit/jit-recording.c 1ca58d30e190934df92b8f569048cc70 gcc/jit/jit-recording.h --- 5389,5395 ---- 18da562095be6239287b43e74f66c7d9 gcc/jit/jit-common.h 1e4be092d0c7bdb354d7ed50a65f6da8 gcc/jit/jit-logging.c 09a516e8611a3001ce84c8e2c37a3d5d gcc/jit/jit-logging.h ! b8f2b7538882998301719af1dc3a670b gcc/jit/jit-playback.c b0e6d1bbb09db276debdd989189eba76 gcc/jit/jit-playback.h 2451361122198b894c2c03c56fddac45 gcc/jit/jit-recording.c 1ca58d30e190934df92b8f569048cc70 gcc/jit/jit-recording.h *************** c5ff1afd8ef8c06eabd2c53cf38eab60 gcc/li *** 5414,5420 **** 16086d64468975aa4ba54f78d2a7b542 gcc/lock-and-run.sh 72abe9b3dd40d4d259761d3bf8216b72 gcc/loop-doloop.c 2c9c1a0c05e2f76a888ece7f4840f586 gcc/loop-init.c ! fb8c8db615bb18ab2e5f20e258f2bd93 gcc/loop-invariant.c 0a6cf297e218d147312cb0f5260fc382 gcc/loop-iv.c d724737212c2ad2b43eccdae2ba8f977 gcc/loop-unroll.c a28e34c069154ac89879de0c398e9b52 gcc/loop-unroll.h --- 5418,5424 ---- 16086d64468975aa4ba54f78d2a7b542 gcc/lock-and-run.sh 72abe9b3dd40d4d259761d3bf8216b72 gcc/loop-doloop.c 2c9c1a0c05e2f76a888ece7f4840f586 gcc/loop-init.c ! c2e27b2ad4fcc2c2b3c39668ef7d712a gcc/loop-invariant.c 0a6cf297e218d147312cb0f5260fc382 gcc/loop-iv.c d724737212c2ad2b43eccdae2ba8f977 gcc/loop-unroll.c a28e34c069154ac89879de0c398e9b52 gcc/loop-unroll.h *************** edd2591e77259d4572bc5fa52c01965c gcc/lt *** 5442,5448 **** ea9a63d9999a8189268e9406236adac4 gcc/lto-streamer.c 4d3cfd5139b6d308c5cfbf0fdedcd99d gcc/lto-streamer.h ab210af1df336947f86765ae940e74e5 gcc/lto-wrapper.c ! 5a85180fb8b4abc17d55d641e57f656d gcc/lto/ChangeLog 0a760452464b48ac5e71eae9a072c5be gcc/lto/Make-lang.in 042176bc09ee78dc5382c75e0e6986dd gcc/lto/common.c 610aacfb6af9f3888f48ce742b264326 gcc/lto/common.h --- 5446,5452 ---- ea9a63d9999a8189268e9406236adac4 gcc/lto-streamer.c 4d3cfd5139b6d308c5cfbf0fdedcd99d gcc/lto-streamer.h ab210af1df336947f86765ae940e74e5 gcc/lto-wrapper.c ! 4d35aaa98fc376b52565de2db12cbee0 gcc/lto/ChangeLog 0a760452464b48ac5e71eae9a072c5be gcc/lto/Make-lang.in 042176bc09ee78dc5382c75e0e6986dd gcc/lto/common.c 610aacfb6af9f3888f48ce742b264326 gcc/lto/common.h *************** b77621f7e33a6f67145e9fcb27739ca3 gcc/lt *** 5461,5467 **** cdfc68fbdc83281ea11a0a17fc5fbcd2 gcc/machmode.def 42f23ead782de538c88f82ea71ff3bcb gcc/machmode.h 83dea027e67504ea7b51b60a2bde9d96 gcc/main.c ! fc2cd3b6de8bc2e9c208425da63eaa0f gcc/match.pd 5f6448efeb306cf4b441915ac49b6780 gcc/mcf.c a02e0e109980581b862198eb814afe94 gcc/mem-stats-traits.h 7731938c5855f3d8c75ae87b9f92bd3b gcc/mem-stats.h --- 5465,5471 ---- cdfc68fbdc83281ea11a0a17fc5fbcd2 gcc/machmode.def 42f23ead782de538c88f82ea71ff3bcb gcc/machmode.h 83dea027e67504ea7b51b60a2bde9d96 gcc/main.c ! bb19c08320a991535bd8b1cd60c477dd gcc/match.pd 5f6448efeb306cf4b441915ac49b6780 gcc/mcf.c a02e0e109980581b862198eb814afe94 gcc/mem-stats-traits.h 7731938c5855f3d8c75ae87b9f92bd3b gcc/mem-stats.h *************** b430985133bbb2d1156515bc5d847196 gcc/mo *** 5473,5479 **** 350e71f020af88666db17c55c0e66deb gcc/mode-switching.c 6b9326ed50f48e429b5d5fd014dca2ed gcc/modulo-sched.c 18252d174482fac7521ebbc9f6298f98 gcc/multiple_target.c ! 0e8032a3daee30fd1b27173ffcc721b7 gcc/objc/ChangeLog b957c220c88ba0f2c8f46365b3df098b gcc/objc/Make-lang.in 4aa09aa70d19e60b57528c684006bc78 gcc/objc/config-lang.in ad9e39ae0889f63088c011098dccdae7 gcc/objc/lang-specs.h --- 5477,5483 ---- 350e71f020af88666db17c55c0e66deb gcc/mode-switching.c 6b9326ed50f48e429b5d5fd014dca2ed gcc/modulo-sched.c 18252d174482fac7521ebbc9f6298f98 gcc/multiple_target.c ! 983638300a6817a30dd37d4429542aa2 gcc/objc/ChangeLog b957c220c88ba0f2c8f46365b3df098b gcc/objc/Make-lang.in 4aa09aa70d19e60b57528c684006bc78 gcc/objc/config-lang.in ad9e39ae0889f63088c011098dccdae7 gcc/objc/lang-specs.h *************** da293cad39af11e22641c3c20e98185d gcc/ob *** 5492,5498 **** 7637bb49949015bd1a96412472d6ad33 gcc/objc/objc-runtime-shared-support.c b88d8dbb459057d08e2bfc6795c2b9d6 gcc/objc/objc-runtime-shared-support.h 42012b7a1bcce69478d76aba894ea6df gcc/objc/objc-tree.def ! 60d0a230a9a04da0af2e754c14a67489 gcc/objcp/ChangeLog 002dccc4b6cd904aa07783ad3dd26389 gcc/objcp/Make-lang.in db38d8ce3bed5cb418fb15b88c359f1c gcc/objcp/config-lang.in e9142f765d98bd6847a7b01f531db273 gcc/objcp/lang-specs.h --- 5496,5502 ---- 7637bb49949015bd1a96412472d6ad33 gcc/objc/objc-runtime-shared-support.c b88d8dbb459057d08e2bfc6795c2b9d6 gcc/objc/objc-runtime-shared-support.h 42012b7a1bcce69478d76aba894ea6df gcc/objc/objc-tree.def ! 2488cd74befd6ddede2a246ec2283d16 gcc/objcp/ChangeLog 002dccc4b6cd904aa07783ad3dd26389 gcc/objcp/Make-lang.in db38d8ce3bed5cb418fb15b88c359f1c gcc/objcp/config-lang.in e9142f765d98bd6847a7b01f531db273 gcc/objcp/lang-specs.h *************** b65ed3137a00381ad36ae192973acb35 gcc/om *** 5506,5512 **** 9285a8a3012098d97afbd4fd2fc0b5fc gcc/omp-general.h e7005cd6099db0d8379847938d5a9e89 gcc/omp-grid.c 88e0dbc1543f1cc02dd20c216f6c5c31 gcc/omp-grid.h ! d3fcd0d0d6b3027924ce58daa2209759 gcc/omp-low.c 4f601bdff79f47d83afecc62c35cd8f8 gcc/omp-low.h 54d52698b257f43dc3f27efdd506978d gcc/omp-offload.c 2ff7e715ed89e1f7eb89bf9b4c9ca0a8 gcc/omp-offload.h --- 5510,5516 ---- 9285a8a3012098d97afbd4fd2fc0b5fc gcc/omp-general.h e7005cd6099db0d8379847938d5a9e89 gcc/omp-grid.c 88e0dbc1543f1cc02dd20c216f6c5c31 gcc/omp-grid.h ! cb205295c6ac068249d809089a629087 gcc/omp-low.c 4f601bdff79f47d83afecc62c35cd8f8 gcc/omp-low.h 54d52698b257f43dc3f27efdd506978d gcc/omp-offload.c 2ff7e715ed89e1f7eb89bf9b4c9ca0a8 gcc/omp-offload.h *************** d2a35515483a4a86a9ffcb339e556746 gcc/op *** 5524,5532 **** c39af9e8d83f818c266a53b8b6751630 gcc/optabs-libfuncs.h f3e5c1cb5ee8a02c7e2e8209fc88ea85 gcc/optabs-query.c bdbea9e383b4076066877aa71c0d2366 gcc/optabs-query.h ! 8fa4dc0fa0f578eb4ffc2bb60627e398 gcc/optabs-tree.c 30ee144bf56333a1b32b9b029f482a17 gcc/optabs-tree.h ! 5d46d227b87f76723ac5be4f262806e8 gcc/optabs.c 94f76f231bdbccb14b8cf51635f911e5 gcc/optabs.def 9f4c21163802095802ef777001a49154 gcc/optabs.h 614293f5f23a24a7e0343e82abb193b6 gcc/optc-gen.awk --- 5528,5536 ---- c39af9e8d83f818c266a53b8b6751630 gcc/optabs-libfuncs.h f3e5c1cb5ee8a02c7e2e8209fc88ea85 gcc/optabs-query.c bdbea9e383b4076066877aa71c0d2366 gcc/optabs-query.h ! 0e5948908a636992f4c85aac3de2b59e gcc/optabs-tree.c 30ee144bf56333a1b32b9b029f482a17 gcc/optabs-tree.h ! 86c8b44ffec6846f8d09d278dba97acb gcc/optabs.c 94f76f231bdbccb14b8cf51635f911e5 gcc/optabs.def 9f4c21163802095802ef777001a49154 gcc/optabs.h 614293f5f23a24a7e0343e82abb193b6 gcc/optc-gen.awk *************** f879f40369fe5cc37da2c38955f4c6fd gcc/pa *** 5554,5560 **** fd818d3d720bafdfaa7770d5fac2d3a0 gcc/plugin.c 1fa9106368c8f95cc930e11b6a3ce4b6 gcc/plugin.def 50ec79e5308c5537ef9876bdb3e3e9bb gcc/plugin.h ! c4b92ca4b971df7f9ae1697a6dbd07f1 gcc/po/ChangeLog 39305724bd042920259dbe00350f65c4 gcc/po/EXCLUDES df8eb609dbb028d033b7d05185cc0715 gcc/po/be.gmo f2d4ebc53db42a57d238129bb7b17720 gcc/po/be.po --- 5558,5564 ---- fd818d3d720bafdfaa7770d5fac2d3a0 gcc/plugin.c 1fa9106368c8f95cc930e11b6a3ce4b6 gcc/plugin.def 50ec79e5308c5537ef9876bdb3e3e9bb gcc/plugin.h ! 3514ee2acf9e32ea3435a2be79314709 gcc/po/ChangeLog 39305724bd042920259dbe00350f65c4 gcc/po/EXCLUDES df8eb609dbb028d033b7d05185cc0715 gcc/po/be.gmo f2d4ebc53db42a57d238129bb7b17720 gcc/po/be.po *************** d825a21933c1853d88a071327098d0f2 gcc/ru *** 5662,5668 **** e1d2af9464c17f7bcf896aa0e45fd34b gcc/run-rtl-passes.h 449ccadd4fd1ac277ce3202af1490859 gcc/sancov.c df98f11d34f35725432f5dd6eed11474 gcc/sanitizer.def ! a26b81c8f94625f2c1501a97cfa89f31 gcc/sanopt.c 3b1e37c7f404aa4485cce61004524ede gcc/sbitmap.c 9e44430c2ddfd5729d692cb6068a7051 gcc/sbitmap.h e3a879745a5769167f35ae991123e645 gcc/sched-deps.c --- 5666,5672 ---- e1d2af9464c17f7bcf896aa0e45fd34b gcc/run-rtl-passes.h 449ccadd4fd1ac277ce3202af1490859 gcc/sancov.c df98f11d34f35725432f5dd6eed11474 gcc/sanitizer.def ! 24ee232a766e0cef3e6736da02995f85 gcc/sanopt.c 3b1e37c7f404aa4485cce61004524ede gcc/sbitmap.c 9e44430c2ddfd5729d692cb6068a7051 gcc/sbitmap.h e3a879745a5769167f35ae991123e645 gcc/sched-deps.c *************** a58a5d80a08569ec11761230bc9929d8 gcc/se *** 5684,5690 **** 29a043a006278f79aa6fd0a4f55466c3 gcc/selftest.h d9b5de9e30b15fdbd08609cf2e39209a gcc/sese.c 846a42671aa66d14349f70d83a8f1043 gcc/sese.h ! 88df3f18741b5fdf93aaa86a13befaa2 gcc/shrink-wrap.c b2a402431491d372c33413979b082d77 gcc/shrink-wrap.h 8d948238415629a6f139ae806b313f57 gcc/signop.h 138fbd29d6f79a6f3cd98acb15f99a50 gcc/simplify-rtx.c --- 5688,5694 ---- 29a043a006278f79aa6fd0a4f55466c3 gcc/selftest.h d9b5de9e30b15fdbd08609cf2e39209a gcc/sese.c 846a42671aa66d14349f70d83a8f1043 gcc/sese.h ! 4f99208c4bd78995c7f8f9602c3ce760 gcc/shrink-wrap.c b2a402431491d372c33413979b082d77 gcc/shrink-wrap.h 8d948238415629a6f139ae806b313f57 gcc/signop.h 138fbd29d6f79a6f3cd98acb15f99a50 gcc/simplify-rtx.c *************** c5c6eac55d4d9d9a521d364746cfc25d gcc/sp *** 5705,5711 **** ec4147bc458b275f4e0c8fd2e73671af gcc/statistics.h 8314b3c1a05bedbbfe5b8b7df9d2d731 gcc/stmt.c 297416c2b59749bab8fb8ea0780206b5 gcc/stmt.h ! 7be209d74741ca8e9c8345c2e0f68848 gcc/stor-layout.c f1e04893c935a76ec07554e544445c5b gcc/stor-layout.h cc98e61c5ca6c6857a1949ac7731ff8f gcc/store-motion.c ab281e8cabe47ab394d518441d92b48f gcc/streamer-hooks.c --- 5709,5715 ---- ec4147bc458b275f4e0c8fd2e73671af gcc/statistics.h 8314b3c1a05bedbbfe5b8b7df9d2d731 gcc/stmt.c 297416c2b59749bab8fb8ea0780206b5 gcc/stmt.h ! 0d5aa688913b5e50d6dd17f9a92b85be gcc/stor-layout.c f1e04893c935a76ec07554e544445c5b gcc/stor-layout.h cc98e61c5ca6c6857a1949ac7731ff8f gcc/store-motion.c ab281e8cabe47ab394d518441d92b48f gcc/streamer-hooks.c *************** b4c473a1ecc1bdecb2b76701e7db2735 gcc/ta *** 5728,5734 **** a1af69db4365630ea2e0d96f5e440141 gcc/targhooks.c 4ceeff51ef3de31e77e7a727a0363a37 gcc/targhooks.h f39fcaa8197187283ccfed40107b426d gcc/testsuite/.gitattributes ! 21f1bef9a3065f38ec6d728aabb1b2a2 gcc/testsuite/ChangeLog 862f04afbd87da2cc6bc432c3f28430f gcc/testsuite/ChangeLog-1993-2007 029a5d8dacd25eb5d4711452ac448e5b gcc/testsuite/ChangeLog-2008 13ac28c41d51b66b4ec40dba6bd50f39 gcc/testsuite/ChangeLog-2009 --- 5732,5738 ---- a1af69db4365630ea2e0d96f5e440141 gcc/targhooks.c 4ceeff51ef3de31e77e7a727a0363a37 gcc/targhooks.h f39fcaa8197187283ccfed40107b426d gcc/testsuite/.gitattributes ! dd595e05b1b7a0d0c930283197332559 gcc/testsuite/ChangeLog 862f04afbd87da2cc6bc432c3f28430f gcc/testsuite/ChangeLog-1993-2007 029a5d8dacd25eb5d4711452ac448e5b gcc/testsuite/ChangeLog-2008 13ac28c41d51b66b4ec40dba6bd50f39 gcc/testsuite/ChangeLog-2009 *************** fc393bd66715c29dc1e10b0c545a89de gcc/te *** 8493,8511 **** 30f55184465e5031498ef7eb0d2b75e4 gcc/testsuite/c-c++-common/Wshift-count-negative-2.c 289a216514c6f7948e7c944ac1ff49e0 gcc/testsuite/c-c++-common/Wshift-count-overflow-1.c 7f7dfe9827844964aa5913a0df77bfda gcc/testsuite/c-c++-common/Wshift-count-overflow-2.c ! 615b9696cc389bf238ee92d8aa94732a gcc/testsuite/c-c++-common/Wshift-negative-value-1.c ! df797fee4aa298224d59315abfc9a9f7 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 bce3d116ad042543d8deca59891335d8 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 de15cabafc30a00e81c083c9a9428ac8 gcc/testsuite/c-c++-common/Wsizeof-pointer-div.c 32df34b1472bcfdea6e41e9ce2f31d7c gcc/testsuite/c-c++-common/Wsizeof-pointer-memaccess1.c --- 8497,8524 ---- 30f55184465e5031498ef7eb0d2b75e4 gcc/testsuite/c-c++-common/Wshift-count-negative-2.c 289a216514c6f7948e7c944ac1ff49e0 gcc/testsuite/c-c++-common/Wshift-count-overflow-1.c 7f7dfe9827844964aa5913a0df77bfda gcc/testsuite/c-c++-common/Wshift-count-overflow-2.c ! 244838f9cb86e525358ee78a73fa38e3 gcc/testsuite/c-c++-common/Wshift-negative-value-1.c ! 6fba445c92b9950ed629192d310c29ed gcc/testsuite/c-c++-common/Wshift-negative-value-10.c ! db8123326921115262c8ff743bebdcc8 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 bce3d116ad042543d8deca59891335d8 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 de15cabafc30a00e81c083c9a9428ac8 gcc/testsuite/c-c++-common/Wsizeof-pointer-div.c 32df34b1472bcfdea6e41e9ce2f31d7c gcc/testsuite/c-c++-common/Wsizeof-pointer-memaccess1.c *************** e1214c78ebce01448d71917e783e66f3 gcc/te *** 8697,8702 **** --- 8710,8716 ---- 563de839d84e990d18f755b18712b764 gcc/testsuite/c-c++-common/builtin-arith-overflow-2.c 9db04682d9ed26e120c150f32a81c167 gcc/testsuite/c-c++-common/builtin-convertvector-1.c 86e09291e64c6f0da9f5f640b3c8b994 gcc/testsuite/c-c++-common/builtin-convertvector-2.c + 4f93f0d47fecc8e0bc7299754ffe6180 gcc/testsuite/c-c++-common/builtin-convertvector-3.c 2b8aa91fb8f2e3743b68c66f3224582b gcc/testsuite/c-c++-common/builtin-has-attribute-2.c ccfd13cce4ab8791afda954376d1c8cf gcc/testsuite/c-c++-common/builtin-has-attribute-3.c 2a8d5fdd1a6ca18c1fc68875e9c194c4 gcc/testsuite/c-c++-common/builtin-has-attribute-4.c *************** c9229fff2e95406401ff0e77f9e25e9b gcc/te *** 8735,8740 **** --- 8749,8755 ---- 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 *************** ef86bb29dfbea0543e8ca02ce440c823 gcc/te *** 9112,9117 **** --- 9127,9134 ---- c8eb196146424dae7866984b548de18b gcc/testsuite/c-c++-common/gomp/ordered-3.c 5e682cf26c41baf2449ab35ba5792ab9 gcc/testsuite/c-c++-common/gomp/ordered-4.c 7c7abae5700e726f7de5bd56574429f5 gcc/testsuite/c-c++-common/gomp/pr100450.c + 345ac275dfe65e2e8ba683d2c389ebc3 gcc/testsuite/c-c++-common/gomp/pr101535-1.c + b3c3fe5a4ecc31231711cb240274d62c gcc/testsuite/c-c++-common/gomp/pr101535-2.c e16ef156ad193ef1f3cba60ad16e57ab gcc/testsuite/c-c++-common/gomp/pr51360.c 84c977571aeb43c0224137efe7f5b213 gcc/testsuite/c-c++-common/gomp/pr53580.c 28bfd873981083756a16f70fdb0b86db gcc/testsuite/c-c++-common/gomp/pr54017.c *************** a7f92f1077c23eb293a388ad0c9418d7 gcc/te *** 9236,9241 **** --- 9253,9260 ---- 8ae15f4cc1a3d855f57b363a617c368f gcc/testsuite/c-c++-common/patchable_function_entry-decl.c 2e25fd811978da14fc47e4213d8f03a3 gcc/testsuite/c-c++-common/patchable_function_entry-default.c 6105dd94f96458c48bb2721645afb78c gcc/testsuite/c-c++-common/patchable_function_entry-definition.c + e03868d19bf135b480b09ffcf5216b0f gcc/testsuite/c-c++-common/pr100785.c + 61883882d71d7a47e16ed32f05de5249 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 *************** ad0210bfe2c0bf78466fbeb232c7f222 gcc/te *** 9687,9692 **** --- 9706,9712 ---- a6690a3246008f2c5cea6ca866063155 gcc/testsuite/c-c++-common/ubsan/float-cast-overflow-9.c 2474ecce86d8ab1d663e5a060e9ae5ee gcc/testsuite/c-c++-common/ubsan/float-cast.h edf61d9eda5f13ef6802aeed6ada88f8 gcc/testsuite/c-c++-common/ubsan/float-div-by-zero-1.c + 4b4093a47a88d4ed45fadb509277b422 gcc/testsuite/c-c++-common/ubsan/float-div-by-zero-2.c ff2685208629414a89fbb3161f228476 gcc/testsuite/c-c++-common/ubsan/load-bool-enum.c 3c0ae577713ec4c85f5ad514bc7596aa gcc/testsuite/c-c++-common/ubsan/nonnull-1.c 5c4f1ab5d64a7368a8615e6b97b39494 gcc/testsuite/c-c++-common/ubsan/nonnull-2.c *************** a0b5d18df0a804f16c6267ecf5a122ca gcc/te *** 9764,9769 **** --- 9784,9790 ---- 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 *************** b12b848862ca9a5a126f8b4e8792dc16 gcc/te *** 10224,10229 **** --- 10245,10251 ---- c109f79c447a9f4bd35cac5dbc643adb gcc/testsuite/g++.dg/asan/interception-malloc-test-1.C 5ec947b9e800038195a332828bd0637b gcc/testsuite/g++.dg/asan/interception-test-1.C 280404310b225d80bc4ec71addcc10a9 gcc/testsuite/g++.dg/asan/large-func-test-1.C + b03be3a03970717959df65ccdcbebe88 gcc/testsuite/g++.dg/asan/pr104449.C e472f2ce37f2b55b1358ec08717d9f08 gcc/testsuite/g++.dg/asan/pr55617.C 74a04a20e12a8acd0fd7d05742cf8d63 gcc/testsuite/g++.dg/asan/pr62017.C 505943436d80a41b5e95bf0b67db97cd gcc/testsuite/g++.dg/asan/pr64937.C *************** e2071d46036912555df15661828c4105 gcc/te *** 10855,10860 **** --- 10877,10883 ---- ef369c9d8dbd4b3ba5c764f92fc53a46 gcc/testsuite/g++.dg/cpp0x/alias-decl-dr1286b.C 4579dafea4a6c084d33527587a75c260 gcc/testsuite/g++.dg/cpp0x/alias-decl-dr1558.C 830a80101d211b99c4fce4c743aa6771 gcc/testsuite/g++.dg/cpp0x/alias-decl-enum-1.C + 0b019bac5dcafdd642abe83896a7483d gcc/testsuite/g++.dg/cpp0x/alias-decl-equiv1.C 42802675fdf183e36c26b59ce2188fbd gcc/testsuite/g++.dg/cpp0x/alias-decl-pmf1.C 3160c52a8ac131b03192a1bc86ef7a35 gcc/testsuite/g++.dg/cpp0x/alignas1.C 4866e3b93b878ee0244a039b009071ca gcc/testsuite/g++.dg/cpp0x/alignas10.C *************** c11fb9d024f89aea2e027172cee4bda2 gcc/te *** 10949,10954 **** --- 10972,10978 ---- 00e99c6cae64f722f78b0f72a5209b78 gcc/testsuite/g++.dg/cpp0x/collapse.C 5337801b3f3b1399a7748f6f77351f43 gcc/testsuite/g++.dg/cpp0x/cond1.C 82b611352fd26c7db573eb5226ef4366 gcc/testsuite/g++.dg/cpp0x/cond2.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 *************** a3fe89999694d5e28c05f50283b43674 gcc/te *** 11047,11053 **** 8b3cdd4f7cd1165cdb6c78c54ac301a5 gcc/testsuite/g++.dg/cpp0x/constexpr-array18.C 326904e2b7feccc3245b271683c77260 gcc/testsuite/g++.dg/cpp0x/constexpr-array19.C 687c6e77d4af3cd918c0ff421773a66c gcc/testsuite/g++.dg/cpp0x/constexpr-array2.C ! f15a074b6c2f23374821380fa691e3fd gcc/testsuite/g++.dg/cpp0x/constexpr-array23.C 3ac9c1d9fb2c907fc817b194d0e9d585 gcc/testsuite/g++.dg/cpp0x/constexpr-array24.C 0a27a7a45bdad25c5a48b1f4e3bfcb8b gcc/testsuite/g++.dg/cpp0x/constexpr-array26.C 3100c3b4b2ec90a6762a56edc16076a1 gcc/testsuite/g++.dg/cpp0x/constexpr-array27.C --- 11071,11077 ---- 8b3cdd4f7cd1165cdb6c78c54ac301a5 gcc/testsuite/g++.dg/cpp0x/constexpr-array18.C 326904e2b7feccc3245b271683c77260 gcc/testsuite/g++.dg/cpp0x/constexpr-array19.C 687c6e77d4af3cd918c0ff421773a66c gcc/testsuite/g++.dg/cpp0x/constexpr-array2.C ! 19b48de9f63b0c75b96c600b8f96da97 gcc/testsuite/g++.dg/cpp0x/constexpr-array23.C 3ac9c1d9fb2c907fc817b194d0e9d585 gcc/testsuite/g++.dg/cpp0x/constexpr-array24.C 0a27a7a45bdad25c5a48b1f4e3bfcb8b gcc/testsuite/g++.dg/cpp0x/constexpr-array26.C 3100c3b4b2ec90a6762a56edc16076a1 gcc/testsuite/g++.dg/cpp0x/constexpr-array27.C *************** f6676b44835c5329c16a5bb57f317adc gcc/te *** 11069,11074 **** --- 11093,11099 ---- 5698e51a559a43ae4c1e9bb2dcc0f8b5 gcc/testsuite/g++.dg/cpp0x/constexpr-base5.C 4be3d6eef956cee1b5ae2edcf04a605b gcc/testsuite/g++.dg/cpp0x/constexpr-base6.C 096985eadd4b3ef7a0521407d61d2085 gcc/testsuite/g++.dg/cpp0x/constexpr-base6b.C + cc4e6caab0fb0ed4c0220072c544d36f gcc/testsuite/g++.dg/cpp0x/constexpr-base7.C e4e15e959aaae288fa7a722d7abb7509 gcc/testsuite/g++.dg/cpp0x/constexpr-bitfield.C 18b0f5c8eeb4a3196bc623c2fd1205ee gcc/testsuite/g++.dg/cpp0x/constexpr-bitfield2.C 271aba96fb8bf37bed15d4848cc13f01 gcc/testsuite/g++.dg/cpp0x/constexpr-bitfield3.C *************** e6644795e323db4ec4f3b171e831e2f6 gcc/te *** 11155,11160 **** --- 11180,11186 ---- ce75146a9a51521a3b4ff82cc14225c3 gcc/testsuite/g++.dg/cpp0x/constexpr-ex4.C 19eb610e0af0918f7473197af97c60d4 gcc/testsuite/g++.dg/cpp0x/constexpr-expinst.C 54953d2c31360e2eeefa3305044bd360 gcc/testsuite/g++.dg/cpp0x/constexpr-explicit-inst.C + 98f85ca947a471fd37217a8fc9e771fb gcc/testsuite/g++.dg/cpp0x/constexpr-fno-elide-ctors1.C aa1967267d5d21b22c4d54dfa617fcfc gcc/testsuite/g++.dg/cpp0x/constexpr-fnptr.C 928d1a775ac6fb68d34dd89fdd936ada gcc/testsuite/g++.dg/cpp0x/constexpr-fold1.C 216c6548cc77db922bab7f78e595ac97 gcc/testsuite/g++.dg/cpp0x/constexpr-fold2.C *************** be032bb4361dd11f064d960f788b56ae gcc/te *** 11618,11623 **** --- 11644,11650 ---- a90d02344ce471556a85a9970c53f219 gcc/testsuite/g++.dg/cpp0x/extern_template-3.C e69d01a320a7471c0585ac2d75efcac2 gcc/testsuite/g++.dg/cpp0x/extern_template-4.C b25800bcf52ab901ab8ddbc9ea153561 gcc/testsuite/g++.dg/cpp0x/extern_template-5.C + b44ed86d19fab7414d28d1f3fd36a7f9 gcc/testsuite/g++.dg/cpp0x/extern_template-6.C 592cc710524d5d21c28b065dd6c6de7c gcc/testsuite/g++.dg/cpp0x/fallthrough1.C c2982fdb85366105719171be7bb04eb0 gcc/testsuite/g++.dg/cpp0x/fallthrough2.C bcba4e18395ca9e8f9917788775bc3c1 gcc/testsuite/g++.dg/cpp0x/fntmp-equiv1.C *************** f8949630a7a02f66d0ceb796b5525cb8 gcc/te *** 11811,11816 **** --- 11838,11846 ---- 797ec13acacd7b94b604de1651b198db gcc/testsuite/g++.dg/cpp0x/initlist-n3922.C 75fe6dcf44e6fa0a35cfaa871faa2b15 gcc/testsuite/g++.dg/cpp0x/initlist-new1.C 7bddf9c6b842f5be4f0dcb028b72f5d6 gcc/testsuite/g++.dg/cpp0x/initlist-new2.C + 0eb8216638573813eaf1d41d50899505 gcc/testsuite/g++.dg/cpp0x/initlist-new5.C + eb8899f6095da627d668fbc099e59316 gcc/testsuite/g++.dg/cpp0x/initlist-new6.C + 99344f656bc7edb059f04cde31dcaa17 gcc/testsuite/g++.dg/cpp0x/initlist-nrv1.C bcbe398391cda8139c8462f46935b7e2 gcc/testsuite/g++.dg/cpp0x/initlist-opt.C a054a7d4e96233b7a3a6591843a8d33f gcc/testsuite/g++.dg/cpp0x/initlist-pmf1.C e3ec7ab89d20e6ccf50aa92954896f07 gcc/testsuite/g++.dg/cpp0x/initlist-postfix-open-square.C *************** b4ee4e860077c15b5f446a344ee80eb1 gcc/te *** 12114,12119 **** --- 12144,12150 ---- fc0cbc487d6a1b6d02de8cbeb0f06f70 gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nop.C 45c8811455b2ff67d0b834d61c336d54 gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ns-scope.C a50b2f4594cb996e8a25dfe3e8da9a93 gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nsdmi1.C + b8cb4ea322362f9ce500dbe9e1e567dd gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nsdmi10.C 771626fe4c5491ce91092c43744cb02c gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nsdmi2.C 6a7d73b6c513d33dae55973e8fe4ad1d gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nsdmi3.C c8026e051502bc9cfe9092dd262c02cc gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nsdmi4.C *************** e754c2eb76d7ab2dff572da57c588a4d gcc/te *** 12303,12308 **** --- 12334,12341 ---- 0b3784303bce9e43936f535a111b1d8f gcc/testsuite/g++.dg/cpp0x/nsdmi-template19.C d83133afa9fe5d533ed8b6cecc90cc44 gcc/testsuite/g++.dg/cpp0x/nsdmi-template2.C f900a961724b234dbae2b1dd5e2b9ae6 gcc/testsuite/g++.dg/cpp0x/nsdmi-template20.C + 55e1dee2146a8988ec9a59e858dadc99 gcc/testsuite/g++.dg/cpp0x/nsdmi-template21.C + 93773e99f41e047cdb20c1fb229d81d2 gcc/testsuite/g++.dg/cpp0x/nsdmi-template21a.C a4838f227c782d1dc8cc894a19deb0d1 gcc/testsuite/g++.dg/cpp0x/nsdmi-template3.C ecc55c2acf604366d5eab66ebf6a29dd gcc/testsuite/g++.dg/cpp0x/nsdmi-template4.C 2df81a05f5de27f3cb083ad4a290512a gcc/testsuite/g++.dg/cpp0x/nsdmi-template5.C *************** d31a397b7e49ac715bfc08852a1710f3 gcc/te *** 12376,12381 **** --- 12409,12415 ---- cce8d7efe84ba47b6a9a649b7e96db1d gcc/testsuite/g++.dg/cpp0x/nullptr41.C 563e6aa07672f33e94fe0e1d80404a0e gcc/testsuite/g++.dg/cpp0x/nullptr42.C afdfafb40dd063d062a20c67e4309ae4 gcc/testsuite/g++.dg/cpp0x/nullptr45.C + fd97d08f3976a4a83f1c49415efc3eca gcc/testsuite/g++.dg/cpp0x/nullptr46.C 9ac544c85b4718bef7e0acbc03dd004f gcc/testsuite/g++.dg/cpp0x/overflow1.C fb7661df85ad6b415b31574c67fa4ee0 gcc/testsuite/g++.dg/cpp0x/overload-conv-1.C 5ca00ae02aa7919e0b3d9730fa9f9ac5 gcc/testsuite/g++.dg/cpp0x/overload-conv-2.C *************** d2a1963e44488193e2d5ae183c548b2d gcc/te *** 12391,12396 **** --- 12425,12432 ---- ec3fccada021f17376f5255d71d5545b gcc/testsuite/g++.dg/cpp0x/override4.C 63a98616cfbc7aecbf849404acae0e55 gcc/testsuite/g++.dg/cpp0x/parse1.C a174690fe306aaf345b02df91c3ddebe gcc/testsuite/g++.dg/cpp0x/parse2.C + 6802ea11c1f5811ef4a3d0490040dcc1 gcc/testsuite/g++.dg/cpp0x/pr102305.C + 0f5046ead85037afdaba1b501accc894 gcc/testsuite/g++.dg/cpp0x/pr105256.C 26dea799d49ce223a0c4130a3c955271 gcc/testsuite/g++.dg/cpp0x/pr31431-2.C 4d1da29b669bf3178b3987abce4d58b1 gcc/testsuite/g++.dg/cpp0x/pr31431.C d65e06a3830e2b511cc25692b94615a1 gcc/testsuite/g++.dg/cpp0x/pr31432.C *************** f3e3d98fcbe616df26f26eb779c66c1f gcc/te *** 13304,13309 **** --- 13340,13346 ---- 99847692cf2ccd072e419199625ee070 gcc/testsuite/g++.dg/cpp1y/complex_literals1a.C 5f47973cdaddb1d27f6ea767e7275723 gcc/testsuite/g++.dg/cpp1y/complex_literals2.C a1995c633dded5a3445bad4fcc3b55cf gcc/testsuite/g++.dg/cpp1y/complex_literals2a.C + 6193cad472a1684eae83fead9fc5d0d7 gcc/testsuite/g++.dg/cpp1y/constexpr-104513.C 2d72668eefa5659edd32ef8dabc1c48e gcc/testsuite/g++.dg/cpp1y/constexpr-50060.C d3ca7557e59bd6b82fae38b637088145 gcc/testsuite/g++.dg/cpp1y/constexpr-66093.C 9ecc58eab147adafbf3780c51ed706fc gcc/testsuite/g++.dg/cpp1y/constexpr-70265-1.C *************** c158c48cdc574a61e06922b17254f0d7 gcc/te *** 13437,13442 **** --- 13474,13480 ---- 3d83ad628fa7a413326bf23651c5bb6e gcc/testsuite/g++.dg/cpp1y/lambda-generic-90548.C e5ec20a7dc7d9414a0113b4d2f182408 gcc/testsuite/g++.dg/cpp1y/lambda-generic-90842.C 195b05ddf7063d0ac4ebe911f6d5bcdb gcc/testsuite/g++.dg/cpp1y/lambda-generic-95451.C + b3b113da61831ee64e68c118f850ec29 gcc/testsuite/g++.dg/cpp1y/lambda-generic-Wunused.C 87f3d5397981cf431912aae6490ea63a gcc/testsuite/g++.dg/cpp1y/lambda-generic-auto1.C 18a2431f49a5d003b8c4af0ee1ee26fb gcc/testsuite/g++.dg/cpp1y/lambda-generic-cfun.C 043e19917f87f2b2acd754fc6d7db469 gcc/testsuite/g++.dg/cpp1y/lambda-generic-const1.C *************** d91a981f54ab2a15c0e9427ccb338f24 gcc/te *** 13479,13484 **** --- 13517,13523 ---- 714b0ec0672f03bb83435eb7e8946993 gcc/testsuite/g++.dg/cpp1y/lambda-generic-this1a.C 5d6aac41102fa948ecd5b469abc35503 gcc/testsuite/g++.dg/cpp1y/lambda-generic-this2.C 5272ec327005dde6e5a2aaffb7102e42 gcc/testsuite/g++.dg/cpp1y/lambda-generic-this3.C + 85be199d2e0d4a7142fba0bb5f749ab7 gcc/testsuite/g++.dg/cpp1y/lambda-generic-this4.C 06ba6684e3759115ec5098f38667687b gcc/testsuite/g++.dg/cpp1y/lambda-generic-trailing1.C e947551033232c5abe95cce5adfd22aa gcc/testsuite/g++.dg/cpp1y/lambda-generic-udt.C 7515a5372d247dd5a94ef0626c25c2ae gcc/testsuite/g++.dg/cpp1y/lambda-generic-uneval1.C *************** bedfe39f995dd913a1715072975f6a1c gcc/te *** 13541,13546 **** --- 13580,13586 ---- 4707396951c53026c3f457ecd9db5312 gcc/testsuite/g++.dg/cpp1y/nsdmi-aggr1.C 5326d1798f69e0f75031ab294cf8dd21 gcc/testsuite/g++.dg/cpp1y/nsdmi-aggr10.C c9dde900e1dd03846724a7195332d8ea gcc/testsuite/g++.dg/cpp1y/nsdmi-aggr11.C + 620462324dd7279425148f8c5c72821a gcc/testsuite/g++.dg/cpp1y/nsdmi-aggr13.C 6181386fced4d11038690bcc0729a80d gcc/testsuite/g++.dg/cpp1y/nsdmi-aggr2.C 379f3d0c83382658777fb1c2f47ed88a gcc/testsuite/g++.dg/cpp1y/nsdmi-aggr3.C d986a2e035160bd06d7fd81798876e53 gcc/testsuite/g++.dg/cpp1y/nsdmi-aggr4.C *************** eed72e4e3c9aec24d904cb1baa5f2711 gcc/te *** 13646,13651 **** --- 13686,13692 ---- 9c7ee77059363808e261d90cf939ce59 gcc/testsuite/g++.dg/cpp1y/pr84942.C 11abcca649e7c260d96b20dd2bb71bc7 gcc/testsuite/g++.dg/cpp1y/pr85076.C e4968a83309cb7b0ed242d3d6971a6a3 gcc/testsuite/g++.dg/cpp1y/pr87322.C + c25e5ab56f549206e3abcdde00c1515e gcc/testsuite/g++.dg/cpp1y/pr88872.C 76d3c8355d513d753398e1184e4c4ece gcc/testsuite/g++.dg/cpp1y/pr89767.C ac3a3cc471361b1fc9f3e55ad12dd7a8 gcc/testsuite/g++.dg/cpp1y/regress1.C 9a759de4b7ac375d3c274acdf73c4fbe gcc/testsuite/g++.dg/cpp1y/sized-dealloc1.C *************** e2a156ae37a7cc2e6e931224eb20400d gcc/te *** 13830,13835 **** --- 13871,13877 ---- b880b797e64a3be4339be5f3b8f87a90 gcc/testsuite/g++.dg/cpp1z/class-deduction71.C 5bd09760c3c40512c7e433c6714430ac gcc/testsuite/g++.dg/cpp1z/class-deduction75.C 923f9361e61894453314ebd0b52faf9a gcc/testsuite/g++.dg/cpp1z/class-deduction8.C + 533990a3a8f21fecb63572f9aaf57a51 gcc/testsuite/g++.dg/cpp1z/class-deduction85.C 3920e918276476b088679b893b9cde19 gcc/testsuite/g++.dg/cpp1z/class-deduction9.C d09105e6c1f377543e5514e34d2837cd gcc/testsuite/g++.dg/cpp1z/constexpr-83692.C 6962bfa121a4383ee0b7a8f045abde3f gcc/testsuite/g++.dg/cpp1z/constexpr-84684.C *************** bb80552b47c4d46b3400512a6ca45bad gcc/te *** 13953,13958 **** --- 13995,14001 ---- 6b57844cae97efac146accbaaa00449b gcc/testsuite/g++.dg/cpp1z/elide2.C bafa3ed0da0c14fc9337428032934f0f gcc/testsuite/g++.dg/cpp1z/elide3.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 *************** d02bac8866e9a3e5c4f19da65dda7c9a gcc/te *** 14015,14020 **** --- 14058,14064 ---- 884f46ba9cab5bc751e958318fe14a2d gcc/testsuite/g++.dg/cpp1z/inline-var4.C eb09374f9955af523e3f7767c4ef9b75 gcc/testsuite/g++.dg/cpp1z/inline-var5.C 30ea7a0df040d49da61f977af41d7ab6 gcc/testsuite/g++.dg/cpp1z/inline-var6.C + eb93f179b897016fd2cc051e599339bd gcc/testsuite/g++.dg/cpp1z/inline-var9.C 2eb7c8c6899f0df45df9a494fae11bac gcc/testsuite/g++.dg/cpp1z/lambda-__func__.C 7a8a15c87abf5409fafc54402d33a274 gcc/testsuite/g++.dg/cpp1z/lambda-inherit1.C 015fa9d631289b4abe8bd2e5a5af64bf gcc/testsuite/g++.dg/cpp1z/lambda-this1.C *************** db6d80bc5f29d89b66dc0f6ca5cdfd89 gcc/te *** 14043,14048 **** --- 14087,14094 ---- 38db595fd6ee6c6498e94ad8412fa322 gcc/testsuite/g++.dg/cpp1z/nodiscard3.C 83dfccee6bbfeb66341cd2d47be20334 gcc/testsuite/g++.dg/cpp1z/nodiscard4.C 549516884facf6ccae16b7de38b2931d gcc/testsuite/g++.dg/cpp1z/nodiscard5.C + bdc4e080d73975936a3bc317d74422db gcc/testsuite/g++.dg/cpp1z/nodiscard8.C + 13e9ff1ca7b52bb081f83facc411e366 gcc/testsuite/g++.dg/cpp1z/nodiscard9.C ccacb58d42aa6d504b3629fce8ef518f gcc/testsuite/g++.dg/cpp1z/noexcept-type1.C 8fbb465fc69c13a4894d2eb47d00e941 gcc/testsuite/g++.dg/cpp1z/noexcept-type11.C 1caccdf4e16515c79981341c1b7a9d86 gcc/testsuite/g++.dg/cpp1z/noexcept-type11a.C *************** e2d27f023f98f0f6d5bbc4b4af73820d gcc/te *** 14059,14064 **** --- 14105,14111 ---- b844f1c10ac36bdb44fcc5f47c7ed338 gcc/testsuite/g++.dg/cpp1z/noexcept-type20.C bedc458500693b5518d2b34bdc4de5cb gcc/testsuite/g++.dg/cpp1z/noexcept-type21.C 67c6b023262a15cbea344311656cb28f gcc/testsuite/g++.dg/cpp1z/noexcept-type22.C + 8a677f921d635efea7480743417cad8f gcc/testsuite/g++.dg/cpp1z/noexcept-type24.C a07bd6eee0bbce4f76caa1372e66c614 gcc/testsuite/g++.dg/cpp1z/noexcept-type3.C a1507d2a44a55f27a0e7109b7c2a2c43 gcc/testsuite/g++.dg/cpp1z/noexcept-type4.C 2cbc6352072676c50982358370c66f1e gcc/testsuite/g++.dg/cpp1z/noexcept-type5.C *************** dbb38d79b4b755c3350566626fdf9bd8 gcc/te *** 14138,14143 **** --- 14185,14191 ---- 2a52f543924b11d7fbba0d5b92cdf169 gcc/testsuite/g++.dg/cpp2a/char8_t1.C 6af0af64f6a4543707d9245ae3e3cb2c gcc/testsuite/g++.dg/cpp2a/char8_t2.C 8cdbce536f6ecfcbdb0c5b905216c240 gcc/testsuite/g++.dg/cpp2a/constexpr-inst1.C + e8f7bd0576728e974495935283ad4f39 gcc/testsuite/g++.dg/cpp2a/constexpr-nonlit7.C fe2e298a3cf2e9094a79a25a4ffd8fc2 gcc/testsuite/g++.dg/cpp2a/constexpr-shift1.C 1d1e610556de3295af12cf17177f42b7 gcc/testsuite/g++.dg/cpp2a/constexpr-try1.C 27ac7e1957f04ea6ee6160a7f7c14ecc gcc/testsuite/g++.dg/cpp2a/constexpr-try2.C *************** d74e93a21b21eb22ce0742e9b6bbb923 gcc/te *** 14151,14156 **** --- 14199,14205 ---- 49f57461d06a171699e46760a6897b2a gcc/testsuite/g++.dg/cpp2a/constexpr-virtual13.C 402840205084f07ec2c6bb566171ea8e gcc/testsuite/g++.dg/cpp2a/constexpr-virtual14.C 951c8b64153a58a8121e2123efa1bf4a gcc/testsuite/g++.dg/cpp2a/constexpr-virtual15.C + b05a9734ab05265b30f7f8aafe9cbe9b 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 *************** f3183e909b7fd601906b1f284b8514e9 gcc/te *** 14227,14233 **** 4aeeac8ebcb51044cd9c82d45ee9a511 gcc/testsuite/g++.dg/cpp2a/lambda-generic5.C 3ab1babdc49679a44f405e45f0d73567 gcc/testsuite/g++.dg/cpp2a/lambda-pack-init1.C 00668662ccb6f2bfdc76911b02c45eca gcc/testsuite/g++.dg/cpp2a/lambda-pack-init2.C - 7ebac77114179acb85002a5acb28b11c gcc/testsuite/g++.dg/cpp2a/lambda-pack-init6.C 22ec10632b049637a7cbf82f46eda177 gcc/testsuite/g++.dg/cpp2a/lambda-this1.C c09b3406a6984eced941c654f03df8b6 gcc/testsuite/g++.dg/cpp2a/lambda-this2.C a10b478d00c08a3b0686eea62d1bb5db gcc/testsuite/g++.dg/cpp2a/lambda-this3.C --- 14276,14281 ---- *************** e64fec6e11d681323560675ce433a296 gcc/te *** 14410,14415 **** --- 14458,14464 ---- c7ffd1dd0ae40378732be3ac8729a37c gcc/testsuite/g++.dg/debug/dwarf2/non-virtual-thunk.C 804b19b7b58e86e4e92d0018c08cf7b7 gcc/testsuite/g++.dg/debug/dwarf2/noreturn-function.C b3cbbd79d5ff077a6732280d76b2284e gcc/testsuite/g++.dg/debug/dwarf2/omp-fesdr.C + b117227269644a100a7a06bf2bc9bf6f gcc/testsuite/g++.dg/debug/dwarf2/pr101378.C 7054dc65c88179389afb9e79cad0df38 gcc/testsuite/g++.dg/debug/dwarf2/pr41063.C e9f4d52036740c7a6fa51c597a6dd04b gcc/testsuite/g++.dg/debug/dwarf2/pr44641.C 90028c65be83718cb8e154df1b502d99 gcc/testsuite/g++.dg/debug/dwarf2/pr45997-1.C *************** f66f889c43e1cd491c7d66ecdd645529 gcc/te *** 15282,15288 **** --- 15331,15339 ---- b2c60991d5b6f21b7202a6d5a7c81412 gcc/testsuite/g++.dg/ext/flexary34.C da96fc262f063d29280b10e42245318e gcc/testsuite/g++.dg/ext/flexary36.C bdc1e53895229e84f994524314021292 gcc/testsuite/g++.dg/ext/flexary38.C + e3abdb563edb7ccc89af09138c07030d gcc/testsuite/g++.dg/ext/flexary39.C 7c5aa9e0bd6655b7c3b04f320d67e736 gcc/testsuite/g++.dg/ext/flexary4.C + 7b20dd05a975dd9f5eda50838835ac7c gcc/testsuite/g++.dg/ext/flexary40.C 0cdb8ed93bc6d926326dda41fc92d614 gcc/testsuite/g++.dg/ext/flexary5.C 57643e50a930f6d1e7ea68411e707a26 gcc/testsuite/g++.dg/ext/flexary6.C df64a969f76ad8dba013343925441866 gcc/testsuite/g++.dg/ext/flexary7.C *************** b9405f9e69ba93125655233ee721769d gcc/te *** 15575,15580 **** --- 15626,15632 ---- 27a347cfacadc4e979313b40db534f31 gcc/testsuite/g++.dg/ext/utf8-2.C 33d19c269a9e9108be7e58ebb9f5dba4 gcc/testsuite/g++.dg/ext/va-arg-pack-1.C 95df36aad68d70ccb06176f4d6386b01 gcc/testsuite/g++.dg/ext/va-arg-pack-2.C + a8b70fba535d4caa23d14f33faaaca4d gcc/testsuite/g++.dg/ext/va-arg-pack-3.C 5767d28306995682901a8025cc09bcf5 gcc/testsuite/g++.dg/ext/va-arg-pack-len-1.C 3da578ea7fb89ed9d7d870cd2355c8a1 gcc/testsuite/g++.dg/ext/va-arg-pack-len-2.C be5f35b51bfbfb360923dc0be613c0d6 gcc/testsuite/g++.dg/ext/va-arg1.C *************** a734cd9ac4c7933b7e53991e05b0aed5 gcc/te *** 15794,15800 **** 4d9ae441343c49335159712e6d78736c gcc/testsuite/g++.dg/gomp/cancel-3.C 229a4e7a48a56c0cf19c162f2a33f7f1 gcc/testsuite/g++.dg/gomp/clause-1.C 58ada034a21b7734739e966345d25fac gcc/testsuite/g++.dg/gomp/clause-2.C ! e183953e6fde368f2c7dba36fc31364f gcc/testsuite/g++.dg/gomp/clause-3.C 2f0edfb42c07ca8f104959d595305979 gcc/testsuite/g++.dg/gomp/clause-4.C fe6047f5ca7e2eac34792a3acc1193c2 gcc/testsuite/g++.dg/gomp/copyin-1.C 73dc4c4897395dc7c307860e0c371fe1 gcc/testsuite/g++.dg/gomp/critical-1.C --- 15846,15852 ---- 4d9ae441343c49335159712e6d78736c gcc/testsuite/g++.dg/gomp/cancel-3.C 229a4e7a48a56c0cf19c162f2a33f7f1 gcc/testsuite/g++.dg/gomp/clause-1.C 58ada034a21b7734739e966345d25fac gcc/testsuite/g++.dg/gomp/clause-2.C ! 1f4bc230caef2b86cebd77a5c13b474e gcc/testsuite/g++.dg/gomp/clause-3.C 2f0edfb42c07ca8f104959d595305979 gcc/testsuite/g++.dg/gomp/clause-4.C fe6047f5ca7e2eac34792a3acc1193c2 gcc/testsuite/g++.dg/gomp/copyin-1.C 73dc4c4897395dc7c307860e0c371fe1 gcc/testsuite/g++.dg/gomp/critical-1.C *************** ad83350cdd58e73fddf0b7bacdf348a8 gcc/te *** 15870,15875 **** --- 15922,15928 ---- f711435274df71049aa71808a78fc7a5 gcc/testsuite/g++.dg/gomp/parallel-3.C 5d09e3c0e650269fbab3a248edade585 gcc/testsuite/g++.dg/gomp/parallel-4.C d9a1f43ca6ac2a073e22bbbf243f300b gcc/testsuite/g++.dg/gomp/parallel-5.C + 9950e1331756ada98404843c3491b239 gcc/testsuite/g++.dg/gomp/pr101516.C 539bba6df5330b7a6631eca5665a0899 gcc/testsuite/g++.dg/gomp/pr24849.C 78ea34fd7a1a2767f61a703271e7070a gcc/testsuite/g++.dg/gomp/pr25874.C 93a85a09acfdf011a86ff95fc9184a94 gcc/testsuite/g++.dg/gomp/pr25996.C *************** e7a4920eaa905e671e74b6482c654721 gcc/te *** 16248,16253 **** --- 16301,16307 ---- 4ab5bb9dc38b78d749ba584adefbdc33 gcc/testsuite/g++.dg/init/array8.C b1c2a3438d19ab4734ef026ce6aba7fa gcc/testsuite/g++.dg/init/array9.C 590b4fffc5e2d0c7af7852413ab82a9e gcc/testsuite/g++.dg/init/assign1.C + c683e74a06917192a3b9ed9e2ec6aa08 gcc/testsuite/g++.dg/init/assign2.C 3eee77105967418a88d56f0c30243408 gcc/testsuite/g++.dg/init/attrib1.C 77338e30d92da64b5b8a53b656838268 gcc/testsuite/g++.dg/init/base1.C f3383f08918eed93161c080f618e55e8 gcc/testsuite/g++.dg/init/bitfield1.C *************** ece146914185349992892b6c7e289bb0 gcc/te *** 16397,16402 **** --- 16451,16457 ---- 9e9ce794649ccc9a4507b42cb8c4c0d0 gcc/testsuite/g++.dg/init/new8.C d9b779b618b81e9ea527baf5e2af4c4e gcc/testsuite/g++.dg/init/new9.C ad6fea2e4a044bf966634965459eed1f gcc/testsuite/g++.dg/init/no-elide1.C + 2524b7f075542480f2a1e27b01b7f04d gcc/testsuite/g++.dg/init/no-elide2.C 6e78c514e0d930771bc8bc83b1d03c3f gcc/testsuite/g++.dg/init/null1.C ef95eb29955e54a2310be36a0828b0cb gcc/testsuite/g++.dg/init/placement1.C 9c2843f3878e7468a19ecfaa90c8bf5f gcc/testsuite/g++.dg/init/placement2.C *************** f58299de078b35494d60ed1ce04894ba gcc/te *** 16870,16875 **** --- 16925,16931 ---- 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 *************** e94377182a1dedb230f53db874897364 gcc/te *** 17423,17428 **** --- 17479,17485 ---- 3a570f71e0d06b55d991f8cab4b017d2 gcc/testsuite/g++.dg/opt/nrv18.C b5ea3678b95f88606bb0d37ee1f58a68 gcc/testsuite/g++.dg/opt/nrv19.C 360692bdb55de35cb68717ceb6c51fd7 gcc/testsuite/g++.dg/opt/nrv2.C + b95995f2a1b93421818fb349cdf03d17 gcc/testsuite/g++.dg/opt/nrv20.C 42adcc800d5d2029a2b831e1453e8f32 gcc/testsuite/g++.dg/opt/nrv3.C b2773b15109a2fc43572a97edf29b236 gcc/testsuite/g++.dg/opt/nrv4.C 13481653ab41a707cb4c4eed2199c57f gcc/testsuite/g++.dg/opt/nrv5.C *************** b16ae5b90244df2461a7c023c7f3c88e gcc/te *** 17435,17440 **** --- 17492,17498 ---- cf9e1c6c02a4aee1d10b86325166de66 gcc/testsuite/g++.dg/opt/pmf1.C b7d92853a5faa70c9b8f4e124609991d gcc/testsuite/g++.dg/opt/pr100148.C b599b75470b905e959a7172363b13d69 gcc/testsuite/g++.dg/opt/pr100254.C + 4821bda808ec2c117c297e4f155752e3 gcc/testsuite/g++.dg/opt/pr104681.C 2896f5b1a96dd9fabb1dbb65cb4c5921 gcc/testsuite/g++.dg/opt/pr13066-1.C 4f87f86b9f018cae74888e97468b2fe0 gcc/testsuite/g++.dg/opt/pr14029.C 8fb7e68e9e9b5eb02628e03f5333e645 gcc/testsuite/g++.dg/opt/pr14888.C *************** b71aeb26aa9311659d87b7de1be00dcc gcc/te *** 18083,18088 **** --- 18141,18147 ---- e549b742987ea4bf15156f2ff8b335da gcc/testsuite/g++.dg/overload/builtin1.C 3a79826fd499e94593a88f2c06436f3d gcc/testsuite/g++.dg/overload/builtin2.C a0b8fd80bfd82adaa23c61a98df112fb gcc/testsuite/g++.dg/overload/builtin3.C + 1b69f2219f6792ae40411265e591182d gcc/testsuite/g++.dg/overload/builtin6.C 2808df88b455ae0dd789dc64c1e34b25 gcc/testsuite/g++.dg/overload/cond1.C 5067a4c6731aae0336243d6867599e99 gcc/testsuite/g++.dg/overload/cond2.C 6a731890845f26e24f289431fa9741d7 gcc/testsuite/g++.dg/overload/conv-op1.C *************** b57591402d64bc0218597be33d025525 gcc/te *** 19015,19020 **** --- 19074,19080 ---- c0c20230f9ca78ee531a757fe9c20cdc gcc/testsuite/g++.dg/spellcheck-macro-ordering-2.C c7d19bcfd6293dcc2e1b62c71b24d14e gcc/testsuite/g++.dg/spellcheck-macro-ordering.C 138b26dd96477d5ca37e93e1baad9a7f gcc/testsuite/g++.dg/spellcheck-ns.C + dea81150700765a4bf726fcbf91fe264 gcc/testsuite/g++.dg/spellcheck-pr104806.C bec792904e3254c1f1b123d9654da558 gcc/testsuite/g++.dg/spellcheck-pr77829.C 8917eaf0965b3d85de7008f1d17dee06 gcc/testsuite/g++.dg/spellcheck-pr78313.C c58af17755be032fd83d41b6fc234488 gcc/testsuite/g++.dg/spellcheck-pr78656.C *************** c7c275427c1f23da1f5270746886e61d gcc/te *** 19088,19093 **** --- 19148,19154 ---- f1f5a04f41640e7625de6d557491ab7d gcc/testsuite/g++.dg/template/access28.C 3d00ae17a8a2fd7c7d604f91e69dd892 gcc/testsuite/g++.dg/template/access29.C 4568008afd0d9ae5ca44f4521d3e1151 gcc/testsuite/g++.dg/template/access3.C + d1ab3a2909d9d576c5dfa94f007a2714 gcc/testsuite/g++.dg/template/access39.C 7ea6af968e54287945d17d2352e36fd6 gcc/testsuite/g++.dg/template/access4.C 043c53bbc7cad60a3c72bfa79987f011 gcc/testsuite/g++.dg/template/access5.C 3f2e5ae210f767c1589637afbcf45353 gcc/testsuite/g++.dg/template/access6.C *************** d75b945d8bfffb304a8d55dc4a97d457 gcc/te *** 19216,19221 **** --- 19277,19283 ---- c31c403acbaa655ae0413e1d4350ae4b gcc/testsuite/g++.dg/template/conv13.C c28b6679b01f4bbe8403c045289d2aef gcc/testsuite/g++.dg/template/conv14.C d03295ed120e37ef2651d9c57aa0b774 gcc/testsuite/g++.dg/template/conv15.C + bd99141c68d90e04855763e3f2bfa63a gcc/testsuite/g++.dg/template/conv19.C 383f6618c1ccaddea23b36ff23d6d35e gcc/testsuite/g++.dg/template/conv2.C be5017725e9889a47d07ba0d3a3464ff gcc/testsuite/g++.dg/template/conv3.C 53aab59e272fd22ef1ad191d0f31e01d gcc/testsuite/g++.dg/template/conv4.C *************** c7309345696ac164222361961daab266 gcc/te *** 20025,20030 **** --- 20087,20093 ---- 2fc8ecaf6e21a27a95a25b7e1641c675 gcc/testsuite/g++.dg/template/redecl4.C c6c126721707d148ce66066de06c754b gcc/testsuite/g++.dg/template/ref1.C e5547a0a17e476f40de83fdf6f7b297f gcc/testsuite/g++.dg/template/ref10.C + 55ce57535ea4f812b4b3a2be7cafa6c4 gcc/testsuite/g++.dg/template/ref11.C a02f5612e9219b8cd807bc11c6baa86d gcc/testsuite/g++.dg/template/ref2.C 03590f95ff079c31de0f7962f9d2850e gcc/testsuite/g++.dg/template/ref3.C c3bbc6f642a26de6b3238750b8f9c01f gcc/testsuite/g++.dg/template/ref4.C *************** ce4f8106ed96ef070bead8ca0df02eea gcc/te *** 20543,20548 **** --- 20606,20613 ---- 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 + 674377855743be77a442d6fe11fc86e1 gcc/testsuite/g++.dg/torture/pr103361.C + 55421b614773ff9e900b6ad17ffe7df3 gcc/testsuite/g++.dg/torture/pr105189.C 161154ed9f6193a2a7da119e068c3f3f gcc/testsuite/g++.dg/torture/pr27218.C a84e9fff95df4801f8e582fbc33303b8 gcc/testsuite/g++.dg/torture/pr30252.C e980bf95890544d46879b89f7aa98df6 gcc/testsuite/g++.dg/torture/pr30567.C *************** ebc4dd8d7b9c346d612ab748d0d8bda0 gcc/te *** 21247,21252 **** --- 21312,21319 ---- 9a6263b0a0fc24a8d910d2b11d215637 gcc/testsuite/g++.dg/ubsan/null-7.C 238c69e48fef47908a681867b7f50817 gcc/testsuite/g++.dg/ubsan/null-8.C 684067ddb47560c655180c085c6980e8 gcc/testsuite/g++.dg/ubsan/object-size-1.C + 80dcb1a17f65b63cbfe2e3509439563c gcc/testsuite/g++.dg/ubsan/pr101210.C + ad6c0b4132032f21f64bfdd4836d3313 gcc/testsuite/g++.dg/ubsan/pr105093.C a654df71119821a4303cc9fe0501191b gcc/testsuite/g++.dg/ubsan/pr59250.C 420a6623146bb014dc1310134356d81f gcc/testsuite/g++.dg/ubsan/pr59306.C 79755a51c3cbb97ff48bd411272f6b08 gcc/testsuite/g++.dg/ubsan/pr59331.C *************** c2d5d87b3488ab338dcccb9091181331 gcc/te *** 25339,25344 **** --- 25406,25413 ---- cc57ca4fd9c378f13126f05fd23d44f9 gcc/testsuite/g++.target/i386/mvc2.C 5770edbad8bcf6303a34e5d14d63a98d gcc/testsuite/g++.target/i386/mvc3.C 4b58a8b362895e2d3227500db9f7df3f gcc/testsuite/g++.target/i386/mvc4.C + 186a4f48c778c8bfd308076ed5277d77 gcc/testsuite/g++.target/i386/pr102295.C + 6d6c399b53fe1c3078aa132a559fe2ab gcc/testsuite/g++.target/i386/pr102548.C 1c706f97b6d93c0124dc4a203c98f6d2 gcc/testsuite/g++.target/i386/pr57362.C db3c3a9d9f798eff6348f0813dccc376 gcc/testsuite/g++.target/i386/pr57548.C e8a006e5050e191010d1a6ecff4873a3 gcc/testsuite/g++.target/i386/pr58372.C *************** ae2a93d8f19ffa52e3299875575fb012 gcc/te *** 25364,25369 **** --- 25433,25439 ---- a621b799eff193996043d9d5462e5c27 gcc/testsuite/g++.target/i386/sse4_1-check.h 821d1f6cc7812ffc5220fc45c484c00f gcc/testsuite/g++.target/i386/sse4_1-pr54700-1.C 05e47f652ea4bc7c8df9bae20aaaa2b4 gcc/testsuite/g++.target/i386/sse4_1-pr54700-2.C + 6d0d9132ecd5c558bd1ec20dcee32d5d gcc/testsuite/g++.target/i386/vec-tmpl1.C 84541f8edc35b61b62256dbd71b731b8 gcc/testsuite/g++.target/riscv/call-with-empty-struct-float.C 0224a15f72de72af47e3eeb572c2d4eb gcc/testsuite/g++.target/riscv/call-with-empty-struct-int.C 13fbd035f1483c414ba4dab326db8f4e gcc/testsuite/g++.target/riscv/call-with-empty-struct.H *************** e89355b99660c53d3dac89eba0ac8986 gcc/te *** 26354,26359 **** --- 26424,26430 ---- 6a87e81aa60353be798e48130f2c4ca2 gcc/testsuite/gcc.c-torture/compile/pmt.c 8af85cd35080f497c5a1f16cfb95b5ef gcc/testsuite/gcc.c-torture/compile/poor.c a64b267bb6b0f352ffc634f61410f7ca gcc/testsuite/gcc.c-torture/compile/pp.c + 9c461bedf4ba5d689841294e9c5464f6 gcc/testsuite/gcc.c-torture/compile/pr101562.c 33c7141fcf5b1add3ddd2be0100f1f0d gcc/testsuite/gcc.c-torture/compile/pr12517.c ec16b12ab11c499bf321be18ea59da33 gcc/testsuite/gcc.c-torture/compile/pr12578.c 86f3d5cf87d24e97aa663b79f2d0ac5d gcc/testsuite/gcc.c-torture/compile/pr12899.c *************** cf491abd2df5513193c96d9605cc5bc8 gcc/te *** 27959,27964 **** --- 28030,28036 ---- 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 *** 28336,28341 **** --- 28408,28414 ---- 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 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 *************** f1924cd169cc9af518b51afd9f11da82 gcc/te *** 29682,29687 **** --- 29755,29763 ---- 889ad8871787262fb9533d339c717e6a gcc/testsuite/gcc.dg/aru-2.c 2ed4a0b74656ba8104da4527c123648b gcc/testsuite/gcc.dg/asan/asan.exp 738544a74dbe22f6a41201227dfe9cd9 gcc/testsuite/gcc.dg/asan/nosanitize-and-inline.c + 62ddd0ab49b2d8a39773ae7568d8aa74 gcc/testsuite/gcc.dg/asan/pr104449.c + 3424b712fda248acb67afe3bbb5dbc46 gcc/testsuite/gcc.dg/asan/pr105214.c + 695fe49bfb0b0c5cd4e60ba1a0f27cf6 gcc/testsuite/gcc.dg/asan/pr105396.c a5e988481cd66b8acf6c610b847cb713 gcc/testsuite/gcc.dg/asan/pr56417.c 0c13e4008bb665f05b030eb42e43183f gcc/testsuite/gcc.dg/asan/pr63845.c 9a45b4bebab3901180dbe2a44efcd070 gcc/testsuite/gcc.dg/asan/pr64170.c *************** dadf3ffd264a8aa4075042e754d622a2 gcc/te *** 31633,31638 **** --- 31709,31716 ---- 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 *************** c810b7347465014e305c14700d42a85b gcc/te *** 32294,32300 **** 9d8e30eba0019473bc7e43fcdc6b48c1 gcc/testsuite/gcc.dg/gomp/block-8.c 79682352a0c94e668e3de0e2a7fa1c22 gcc/testsuite/gcc.dg/gomp/block-9.c 4910624b952a49e6626cc2f12abebbbf gcc/testsuite/gcc.dg/gomp/cancel-1.c ! ffe487f15a2e6e6f4080fe782d3094d4 gcc/testsuite/gcc.dg/gomp/clause-1.c 69b3c6d02d10bc53d283c974ed1e7ec6 gcc/testsuite/gcc.dg/gomp/clause-2.c 5ac08c2b4cafd06b9d0ecc5295b58bc9 gcc/testsuite/gcc.dg/gomp/collapse-1.c d41d8cd98f00b204e9800998ecf8427e gcc/testsuite/gcc.dg/gomp/combined-1.c --- 32372,32378 ---- 9d8e30eba0019473bc7e43fcdc6b48c1 gcc/testsuite/gcc.dg/gomp/block-8.c 79682352a0c94e668e3de0e2a7fa1c22 gcc/testsuite/gcc.dg/gomp/block-9.c 4910624b952a49e6626cc2f12abebbbf gcc/testsuite/gcc.dg/gomp/cancel-1.c ! 5c863da63bc2a44607b745b56d4373e8 gcc/testsuite/gcc.dg/gomp/clause-1.c 69b3c6d02d10bc53d283c974ed1e7ec6 gcc/testsuite/gcc.dg/gomp/clause-2.c 5ac08c2b4cafd06b9d0ecc5295b58bc9 gcc/testsuite/gcc.dg/gomp/collapse-1.c d41d8cd98f00b204e9800998ecf8427e gcc/testsuite/gcc.dg/gomp/combined-1.c *************** d7769c446568c18d557180c850cf3b4a gcc/te *** 32365,32370 **** --- 32443,32449 ---- 37cd70c6dfa42e4ca92a22cf9bd83ad8 gcc/testsuite/gcc.dg/gomp/parallel-2.c f711435274df71049aa71808a78fc7a5 gcc/testsuite/gcc.dg/gomp/parallel-3.c d9a1f43ca6ac2a073e22bbbf243f300b gcc/testsuite/gcc.dg/gomp/parallel-4.c + 0f7ac2e81ae2d400d52c34aa1c0b379a gcc/testsuite/gcc.dg/gomp/pr100508.c 7a163e65fe52b23fc85f2daa18c442ee gcc/testsuite/gcc.dg/gomp/pr25874.c 597de3ed24e1bc1c650af918589d83c3 gcc/testsuite/gcc.dg/gomp/pr25989.c 0bd3e8dc860de61dd8e09229c090e1f5 gcc/testsuite/gcc.dg/gomp/pr25990.c *************** bc96d3d7a369ee1d75a9841b80312226 gcc/te *** 32864,32869 **** --- 32943,32949 ---- 4f7560385c9b3bd900cc1de342ed58bc gcc/testsuite/gcc.dg/guality/param-3.c 74ce6c60795531920ab0a680e346e657 gcc/testsuite/gcc.dg/guality/param-4.c f932e4faa7d538859c699e070447bc01 gcc/testsuite/gcc.dg/guality/param-5.c + b0deaf43b4029cf429b4a541937eefd0 gcc/testsuite/gcc.dg/guality/pr101905.c 91c528fa3ca63dee1e35b7c6d02cd258 gcc/testsuite/gcc.dg/guality/pr25967-1.c fa9ed629eec13dc2cd77fec24ea82b3c gcc/testsuite/gcc.dg/guality/pr25967-2.c 19bacc1e91869a8697eb548fb674e517 gcc/testsuite/gcc.dg/guality/pr36728-1.c *************** cabac91cdba3842d40cf8ea00a992973 gcc/te *** 32890,32896 **** ad22498cf8ec23e7130f00c09013af31 gcc/testsuite/gcc.dg/guality/pr45882.c f59890b50dc747afab9803faad83af78 gcc/testsuite/gcc.dg/guality/pr48437.c 0a8f326039eacf3795df083d59d270e1 gcc/testsuite/gcc.dg/guality/pr48466.c ! 8729e084bbf812c07dc80e3002bd7c77 gcc/testsuite/gcc.dg/guality/pr49888.c f5d23d5daf139140e3f74b9521e69847 gcc/testsuite/gcc.dg/guality/pr54200.c df8d9a90eef54cc78285c05d55378c38 gcc/testsuite/gcc.dg/guality/pr54519-1.c eaa0797d9234eb2c7c77adc2b6f86a78 gcc/testsuite/gcc.dg/guality/pr54519-2.c --- 32970,32976 ---- ad22498cf8ec23e7130f00c09013af31 gcc/testsuite/gcc.dg/guality/pr45882.c f59890b50dc747afab9803faad83af78 gcc/testsuite/gcc.dg/guality/pr48437.c 0a8f326039eacf3795df083d59d270e1 gcc/testsuite/gcc.dg/guality/pr48466.c ! 67820d262d95458ec0b89cffe57437ec gcc/testsuite/gcc.dg/guality/pr49888.c f5d23d5daf139140e3f74b9521e69847 gcc/testsuite/gcc.dg/guality/pr54200.c df8d9a90eef54cc78285c05d55378c38 gcc/testsuite/gcc.dg/guality/pr54519-1.c eaa0797d9234eb2c7c77adc2b6f86a78 gcc/testsuite/gcc.dg/guality/pr54519-2.c *************** b9cc7cb6d7d65f984ee0a8985b8e0e6e gcc/te *** 33498,33503 **** --- 33578,33587 ---- 4c9f4a6440d7bd9fa3f564ee6b91b50c gcc/testsuite/gcc.dg/lto/materialize-1_1.c e1bd2be5006d2bb7a3b670af0868ffeb gcc/testsuite/gcc.dg/lto/noreturn-1_0.c 2472b5bc8466fe62188232d9fbcd9de6 gcc/testsuite/gcc.dg/lto/noreturn-1_1.c + b277b193b2a7ff104d28fbf8e50407e8 gcc/testsuite/gcc.dg/lto/pr101868_0.c + ca741859e8754c149e68fc40892d50b1 gcc/testsuite/gcc.dg/lto/pr101868_1.c + e4aec3391bc7aed1a5d886edeb277407 gcc/testsuite/gcc.dg/lto/pr101868_2.c + 02d829cec4d5ff9723124841f79edca9 gcc/testsuite/gcc.dg/lto/pr101868_3.c 5192817b2492ca93ffadce3b4a5e4794 gcc/testsuite/gcc.dg/lto/pr27898_0.c c5f48897247dfaec60df4e32beffcd8e gcc/testsuite/gcc.dg/lto/pr27898_1.c 2ad724786bc4b555a7f31e8b3bf164b6 gcc/testsuite/gcc.dg/lto/pr28706_0.c *************** f5883b8a2323e7318237e3750e037d52 gcc/te *** 34083,34090 **** --- 34167,34192 ---- b9bdf8358b02d555adf76b44050cc156 gcc/testsuite/gcc.dg/pow-sqrt-synth-1.c e037582257371f62a3a039df4321225d gcc/testsuite/gcc.dg/pow-sqrt.x 2ed4c7917cf2d830a0bb5f0d9d65e592 gcc/testsuite/gcc.dg/pr100225.c + eefdc14893bfe7e4dd2a89202733fa86 gcc/testsuite/gcc.dg/pr100509.c + b20e922d857d70fc849642b04d8aef50 gcc/testsuite/gcc.dg/pr101062.c + f7653fb72f02585ca98c4cb008a53e32 gcc/testsuite/gcc.dg/pr101171.c + 2eebdeb5aef44432de1498de14cbf4e6 gcc/testsuite/gcc.dg/pr101266.c + 70303171ed7f5b2cba05e6b98daad2ab gcc/testsuite/gcc.dg/pr101384.c + 9437d2977418eec9749f3a9d06040a59 gcc/testsuite/gcc.dg/pr102140.c + afb36cfd0415d59db229d4058c30853f gcc/testsuite/gcc.dg/pr102224.c + 91844853e35a7b41b30a3460cc946f81 gcc/testsuite/gcc.dg/pr102478.c + d2b6c61457f02b40823ad6f31b29f47c gcc/testsuite/gcc.dg/pr102798.c + 403235552bc51decc6aaf0f2f60e8721 gcc/testsuite/gcc.dg/pr103248.c + 220dde695d4a28e6fb719f38a397ed0e gcc/testsuite/gcc.dg/pr103837.c + a4874d44c0ba05d6340ed06bc5958e53 gcc/testsuite/gcc.dg/pr103860.c 8226e377d45ef0ffeb7badfb04740ab9 gcc/testsuite/gcc.dg/pr10392-1.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 + b01f707de15442a63cdb3e32148021fd gcc/testsuite/gcc.dg/pr105211.c + cc6ac8d68c79338a580a123141221e8b gcc/testsuite/gcc.dg/pr105257.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 *** 35441,35447 **** a777a206da2c1bfe3ba53d32fb8b2e9c gcc/testsuite/gcc.dg/pr78138.c 427e79810052c59fa2a8c9b43fbdfa29 gcc/testsuite/gcc.dg/pr78148.c 036b89fa8e150cf11fc1400568acc2d2 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 --- 35543,35549 ---- a777a206da2c1bfe3ba53d32fb8b2e9c gcc/testsuite/gcc.dg/pr78138.c 427e79810052c59fa2a8c9b43fbdfa29 gcc/testsuite/gcc.dg/pr78148.c 036b89fa8e150cf11fc1400568acc2d2 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 *************** f6dbe508409f3fdef69bb18356571537 gcc/te *** 35846,35851 **** --- 35948,35954 ---- 06ae27dde8da22331e1e8dcd059d4d03 gcc/testsuite/gcc.dg/pr96579.c 427918230a8f9d519334c7bbc79f902a gcc/testsuite/gcc.dg/pr97487-1.c b5fa0cd5917ab8447128f90c9aa66d86 gcc/testsuite/gcc.dg/pr97487-2.c + dd83a8b867ef8c886adacb097f55bc6b gcc/testsuite/gcc.dg/pr97953.c ec1830becced622760bda688ca2bb126 gcc/testsuite/gcc.dg/pr9814-1.c 2232cd10c89412a750db8fa0a772b747 gcc/testsuite/gcc.dg/pr98331.c 2eea8fc255e64207bc4e80b2eb33a6f0 gcc/testsuite/gcc.dg/pr99136.c *************** ba222bffc08c28a180298a0d4c6d6aea gcc/te *** 36746,36751 **** --- 36849,36862 ---- 4ac07881b7842f59c3aeffe74b35a881 gcc/testsuite/gcc.dg/torture/parm-coalesce.c 9d76608a6d99fb21a235151928a24b22 gcc/testsuite/gcc.dg/torture/pr100053.c 6335c9430427e1e94a7a58bb8b0b5255 gcc/testsuite/gcc.dg/torture/pr100566.c + 5f5809ecbd695f122244007bc7702241 gcc/testsuite/gcc.dg/torture/pr100672.c + 4b5d071569dd623054d8ee1f648c1cfe gcc/testsuite/gcc.dg/torture/pr100786.c + de1ad14692100748f699bc7db768a51d gcc/testsuite/gcc.dg/torture/pr100934.c + 26df74aa3790822d5269438121e02a5d gcc/testsuite/gcc.dg/torture/pr101105.c + ad6242e66d3dccabe71dd1502730f6d6 gcc/testsuite/gcc.dg/torture/pr101173.c + 556a928be1d2de2f0390088de1d6e46f gcc/testsuite/gcc.dg/torture/pr101394.c + 98aa192f1dd77816cc201b3a0ee72edb gcc/testsuite/gcc.dg/torture/pr103181.c + 190d413f3b81d5e1b395090ae83703be gcc/testsuite/gcc.dg/torture/pr103237.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 *************** c01fa386702975a48153d49c7102f94e gcc/te *** 37672,37677 **** --- 37783,37789 ---- ae0f145265dd4960c43e14aeb325fd0e gcc/testsuite/gcc.dg/torture/pr94947-2.c a5d39ec2048b8f4f3145b829fa56bec1 gcc/testsuite/gcc.dg/torture/pr95049.c 62030ce11318324c6a00eed2b2eebee1 gcc/testsuite/gcc.dg/torture/pr96513.c + b6ac3fe74c736f29c622c9f00307a596 gcc/testsuite/gcc.dg/torture/pr96522.c 264df8564ef9bf89c28b5918f88bada3 gcc/testsuite/gcc.dg/torture/pr97812.c bea94dc5b4f440a3a09008e23a97d794 gcc/testsuite/gcc.dg/torture/pr98117.c e04ec27dc5469da4d5b29038bf9a9865 gcc/testsuite/gcc.dg/torture/pr98601.c *************** b785e1a2b2d1f8899bb42aef2aebb7a8 gcc/te *** 38425,38430 **** --- 38537,38543 ---- 68ea1e33b73e2699fe3e0888ae6721b1 gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-13.c fe84a4129539ca0baa6a9d7402d4d376 gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-14.c b1188ae63556e140acddb61c169ee3c5 gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-15.c + 5d4cdc6bd818734c048b194c28a11deb gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-16.c b12d1ab254d179b32ea5f184c4240c23 gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-1b.c 195d9617ba34c560d8e9caab1c13ad0e gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-2.c 4f2173acb80928f0b6a87daf5033149e gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-3.c *************** dec7e9a594d55bb6427abfb7ee0ae7b3 gcc/te *** 38481,38486 **** --- 38594,38600 ---- db4f86a4f8ff0fc9653954f4e21c1f3f gcc/testsuite/gcc.dg/tree-ssa/popcount.c 1e2db2ea55f8eb96805a4dc045b119c5 gcc/testsuite/gcc.dg/tree-ssa/popcount2.c 39af726ca8012f85160b6180dd60017f gcc/testsuite/gcc.dg/tree-ssa/popcount3.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 *************** bbbf863dee2a824829c30c4d90e56d15 gcc/te *** 38895,38900 **** --- 39009,39015 ---- 53e20037498a94809dbeff091a2e7fb5 gcc/testsuite/gcc.dg/tree-ssa/pr94969.c a43f5375ab3cccb18ca71f3f0527e303 gcc/testsuite/gcc.dg/tree-ssa/pr95804.c 6b92322818b0a3b87de6cd676b752a9d gcc/testsuite/gcc.dg/tree-ssa/pr97009.c + 5186613269719acf7830ca244a7cf28a gcc/testsuite/gcc.dg/tree-ssa/pr97456.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 *************** e13b38f2990120fb563c7e3296667346 gcc/te *** 43309,43318 **** --- 43424,43436 ---- c5724f6767410c7983d266d6febb0f89 gcc/testsuite/gcc.target/aarch64/sve/zip2_1.c c1ccdcf1821a2a9f689561bfc74f48dc gcc/testsuite/gcc.target/aarch64/symbol-range-tiny.c b4127affc5c8c177d402c917c2b81097 gcc/testsuite/gcc.target/aarch64/symbol-range.c + d707fbbaf0d37436be7ea3b6ac3b81d7 gcc/testsuite/gcc.target/aarch64/sync-comp-swap-ool.c c210c6b6344e5119de7869315aefba48 gcc/testsuite/gcc.target/aarch64/sync-comp-swap.c 322a3d828a7a9ead661b7d17a7aeceea gcc/testsuite/gcc.target/aarch64/sync-comp-swap.x + 2687cc48cb064e67e3949a43386961bf gcc/testsuite/gcc.target/aarch64/sync-op-acquire-ool.c 002f159c83e5462862ec82620c2630ae gcc/testsuite/gcc.target/aarch64/sync-op-acquire.c 1e1c36a3eb9a0bd45a0e250e1d2b1ce5 gcc/testsuite/gcc.target/aarch64/sync-op-acquire.x + 14c3e5537db0cba1ee1aa29279f1d44a gcc/testsuite/gcc.target/aarch64/sync-op-full-ool.c 34216778cb9e5a4611eb55ae4ccfaf4b gcc/testsuite/gcc.target/aarch64/sync-op-full.c 17abd80a4e460d31237f3ece87c85558 gcc/testsuite/gcc.target/aarch64/sync-op-full.x f87f898044cd78f2ebf530577d3cf7bb gcc/testsuite/gcc.target/aarch64/sync-op-release.c *************** c850677a06284224d4f4c40ffd5e4d78 gcc/te *** 43329,43336 **** 639032a9f80bce937ccbcf962600a338 gcc/testsuite/gcc.target/aarch64/target_attr_17.c c58ba3dda55aafe8c837f58d3ba9dc9d gcc/testsuite/gcc.target/aarch64/target_attr_18.c 93145ff3e03510c58daa08e45866f6ba gcc/testsuite/gcc.target/aarch64/target_attr_2.c ! bda8eed00f321b4cfe8fffd7a2a549d1 gcc/testsuite/gcc.target/aarch64/target_attr_20.c ! 9ea0cd1c37488478ebbda0afaf90eb5a gcc/testsuite/gcc.target/aarch64/target_attr_21.c a4a6eccdba213faef4196f8ebe4152a3 gcc/testsuite/gcc.target/aarch64/target_attr_3.c c17cb964233b0aa7dd1ec0085d5a8fe2 gcc/testsuite/gcc.target/aarch64/target_attr_4.c 77ed3e7c559e6c7bb67620fa37d32e76 gcc/testsuite/gcc.target/aarch64/target_attr_5.c --- 43447,43454 ---- 639032a9f80bce937ccbcf962600a338 gcc/testsuite/gcc.target/aarch64/target_attr_17.c c58ba3dda55aafe8c837f58d3ba9dc9d gcc/testsuite/gcc.target/aarch64/target_attr_18.c 93145ff3e03510c58daa08e45866f6ba gcc/testsuite/gcc.target/aarch64/target_attr_2.c ! 8b44261d4e827e2d0e48c50c109f35b5 gcc/testsuite/gcc.target/aarch64/target_attr_20.c ! 6fc49b0d1c0f511ac3f21e291184cb00 gcc/testsuite/gcc.target/aarch64/target_attr_21.c a4a6eccdba213faef4196f8ebe4152a3 gcc/testsuite/gcc.target/aarch64/target_attr_3.c c17cb964233b0aa7dd1ec0085d5a8fe2 gcc/testsuite/gcc.target/aarch64/target_attr_4.c 77ed3e7c559e6c7bb67620fa37d32e76 gcc/testsuite/gcc.target/aarch64/target_attr_5.c *************** cf7c684a14b2daa8b876c512e3599582 gcc/te *** 43875,43883 **** 2473ab47d386f3db161016126b9fac27 gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail.c d9303a4e750c06e8eedb1784278141fd gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail2.c eefaa7efcbf94aefad0419e7e0888e33 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 4dcf9134178aa5b2772358c0b2cd9366 gcc/testsuite/gcc.target/arm/attr-unaligned-load-ice.c 0eca8ecf2f4a2c46b29c992bd8b38f5d gcc/testsuite/gcc.target/arm/attr_arm-err.c 8ab2ce7d24547f03640f6087eb2b9be4 gcc/testsuite/gcc.target/arm/attr_arm.c --- 43993,44001 ---- 2473ab47d386f3db161016126b9fac27 gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail.c d9303a4e750c06e8eedb1784278141fd gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail2.c eefaa7efcbf94aefad0419e7e0888e33 gcc/testsuite/gcc.target/arm/attr-neon-fp16.c ! 4a4bc58114ce671d72a5c4665876477b gcc/testsuite/gcc.target/arm/attr-neon.c ! 816b2817c0472874bbb4b578bba8b349 gcc/testsuite/gcc.target/arm/attr-neon2.c ! 6ada2727df65386b0a3f5b94197dea29 gcc/testsuite/gcc.target/arm/attr-neon3.c 4dcf9134178aa5b2772358c0b2cd9366 gcc/testsuite/gcc.target/arm/attr-unaligned-load-ice.c 0eca8ecf2f4a2c46b29c992bd8b38f5d gcc/testsuite/gcc.target/arm/attr_arm-err.c 8ab2ce7d24547f03640f6087eb2b9be4 gcc/testsuite/gcc.target/arm/attr_arm.c *************** ef7228203e3de2362184e00a8c156132 gcc/te *** 44380,44386 **** 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 --- 44498,44504 ---- 038b3bb27d1430e5bcaacffe8348eb14 gcc/testsuite/gcc.target/arm/pr69180.c 51f46e9158ad549a6f9079f849c4c10d gcc/testsuite/gcc.target/arm/pr69187.c b1f1919dcfa1287f837de2b937769050 gcc/testsuite/gcc.target/arm/pr69194.c ! 05e46560368a7df97a4f31249ffebcc7 gcc/testsuite/gcc.target/arm/pr69245.c ecd06975766e392b211a369c6a9a3273 gcc/testsuite/gcc.target/arm/pr69307.c e5aafcaef63ec87ca861c2c3df04f753 gcc/testsuite/gcc.target/arm/pr69614.c 32fee62df6d98765a5508d0d96c9eb65 gcc/testsuite/gcc.target/arm/pr69904.c *************** eb13a55564e5e8fb2982994c3b17a08c gcc/te *** 44426,44439 **** 7e118390a8f6adc60508c71323d3a526 gcc/testsuite/gcc.target/arm/pr89222.c e176eff84ec1966606dbac1ac50fc431 gcc/testsuite/gcc.target/arm/pr91816.c fe5e1dadd9ea1e8cccb81773046e8da9 gcc/testsuite/gcc.target/arm/pr97528.c a57b4669de94641d7fba5928bf1f8ca0 gcc/testsuite/gcc.target/arm/pragma_arch_attribute.c d1fa915a7ba92f09b7cb8676f62a0974 gcc/testsuite/gcc.target/arm/pragma_arch_attribute_2.c 5184d53e7d6c028c1c22ef106f053ed7 gcc/testsuite/gcc.target/arm/pragma_arch_attribute_3.c 324cc300468bdbebd55d7555577596bf gcc/testsuite/gcc.target/arm/pragma_arch_switch_2.c 321232597c3b16471c510b972ad557b4 gcc/testsuite/gcc.target/arm/pragma_attribute.c cdf14fd079c2cd544c152c39ceb8ac66 gcc/testsuite/gcc.target/arm/pragma_cpp_fma.c ! c9e6771b67edbcdcd59fc69d96f76bd0 gcc/testsuite/gcc.target/arm/pragma_fpu_attribute.c ! 3a06abeb34fdbba108fe536aeccde735 gcc/testsuite/gcc.target/arm/pragma_fpu_attribute_2.c 5b1a9414b404b74eb5cf36760730cf83 gcc/testsuite/gcc.target/arm/pure-code/ffunction-sections.c 77b405f3713bb420ee5af292f1a977dc gcc/testsuite/gcc.target/arm/pure-code/no-casesi.c 7b8330d6a4b33ec1ebe3d2b0ac6a7d6a gcc/testsuite/gcc.target/arm/pure-code/no-literal-pool.c --- 44544,44558 ---- 7e118390a8f6adc60508c71323d3a526 gcc/testsuite/gcc.target/arm/pr89222.c e176eff84ec1966606dbac1ac50fc431 gcc/testsuite/gcc.target/arm/pr91816.c fe5e1dadd9ea1e8cccb81773046e8da9 gcc/testsuite/gcc.target/arm/pr97528.c + ec5230c6f63b4a45740b6ae0d8e7b39c gcc/testsuite/gcc.target/arm/pr99977.c a57b4669de94641d7fba5928bf1f8ca0 gcc/testsuite/gcc.target/arm/pragma_arch_attribute.c d1fa915a7ba92f09b7cb8676f62a0974 gcc/testsuite/gcc.target/arm/pragma_arch_attribute_2.c 5184d53e7d6c028c1c22ef106f053ed7 gcc/testsuite/gcc.target/arm/pragma_arch_attribute_3.c 324cc300468bdbebd55d7555577596bf gcc/testsuite/gcc.target/arm/pragma_arch_switch_2.c 321232597c3b16471c510b972ad557b4 gcc/testsuite/gcc.target/arm/pragma_attribute.c cdf14fd079c2cd544c152c39ceb8ac66 gcc/testsuite/gcc.target/arm/pragma_cpp_fma.c ! 90392e1b8e06b6f5c00c86ecf249fd69 gcc/testsuite/gcc.target/arm/pragma_fpu_attribute.c ! a13d496741ee33ca9436673eb16995cf gcc/testsuite/gcc.target/arm/pragma_fpu_attribute_2.c 5b1a9414b404b74eb5cf36760730cf83 gcc/testsuite/gcc.target/arm/pure-code/ffunction-sections.c 77b405f3713bb420ee5af292f1a977dc gcc/testsuite/gcc.target/arm/pure-code/no-casesi.c 7b8330d6a4b33ec1ebe3d2b0ac6a7d6a gcc/testsuite/gcc.target/arm/pure-code/no-literal-pool.c *************** b4dd71d52783b89846a0cf7abe6be930 gcc/te *** 45386,45391 **** --- 45505,45511 ---- 3391c9dd1dd0dbbac597a660fd5fb010 gcc/testsuite/gcc.target/i386/avx-lrintf-vec.c b4097136b326678c552cf24792f79fe8 gcc/testsuite/gcc.target/i386/avx-mul-1.c 46322bf9b32fe645dd973a6bc8e8b128 gcc/testsuite/gcc.target/i386/avx-os-support.h + 649073dcb552cc5ef8392806cbe23d1c gcc/testsuite/gcc.target/i386/avx-pr102224.c 62aa13560c827f799be1941a2e6da500 gcc/testsuite/gcc.target/i386/avx-pr51581-1.c c437ae63e2540199d8c765547fc407d6 gcc/testsuite/gcc.target/i386/avx-pr51581-2.c b6e744a5c521873cc8be2dbb5f25790d gcc/testsuite/gcc.target/i386/avx-pr57233.c *************** c0dd86eaa0095c2b38908928d5034cf3 gcc/te *** 47009,47014 **** --- 47129,47135 ---- 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 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 *************** b1d366c21cfdcfacf9854ed6cbfd7bc3 gcc/te *** 49360,49365 **** --- 49481,49497 ---- 36b813a940b2c87070255be03db22966 gcc/testsuite/gcc.target/i386/pieces-strcpy-2.c 13d06bee88f2ccd2a16effe0c243e61e gcc/testsuite/gcc.target/i386/pow-1.c f6d11dafd312969f2c744769fa5060e7 gcc/testsuite/gcc.target/i386/pr100182.c + f8c6587e64861b8f769159de826acd76 gcc/testsuite/gcc.target/i386/pr101175.c + 4f610ba3f94dc4f52aa642107694f970 gcc/testsuite/gcc.target/i386/pr102498.c + bcf207e15c0d5b9e3168e3c570bc4999 gcc/testsuite/gcc.target/i386/pr103205.c + 5fbee8826b1f4da8d9dd6a2f09f18e0e gcc/testsuite/gcc.target/i386/pr103908.c + 9db2b13a34fc86475d27728a925461c5 gcc/testsuite/gcc.target/i386/pr104446.c + 9afbd8cbff177a7e555fe32de7558c2e gcc/testsuite/gcc.target/i386/pr104451.c + f34a56063b53daa2722dd66e280f5aab gcc/testsuite/gcc.target/i386/pr104453.c + a92681d4c2c5095462e23684946fe9fd gcc/testsuite/gcc.target/i386/pr104469.c + 6f32caf69432ac867dd42051bcfa22a8 gcc/testsuite/gcc.target/i386/pr104502.c + a64b8516e04de39ddebcd66dc046d450 gcc/testsuite/gcc.target/i386/pr104971.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 *************** f353395bccf918949658ea5606b5bc6e gcc/te *** 50229,50236 **** 2969e0a99ac5696cdf2b676f9bebb301 gcc/testsuite/gcc.target/i386/pr70955.c b041f793f29c8dbb81f30cc6cff59540 gcc/testsuite/gcc.target/i386/pr71016.c cdf785a2bc0d7b4e9128691fc978d25e gcc/testsuite/gcc.target/i386/pr71077.c - d97dabadf3451f45363f5cae9c36cea4 gcc/testsuite/gcc.target/i386/pr71245-1.c - c61fd9362197e2e0ce7dd1debaa73ccc gcc/testsuite/gcc.target/i386/pr71245-2.c 2fb9329d1a1eba91cf629cd69a0a2945 gcc/testsuite/gcc.target/i386/pr71321.c d0bd03c535d9acf1fa5c53d9fab89cef gcc/testsuite/gcc.target/i386/pr71346.c 1c394993c347ba5c842359a75dc15aa5 gcc/testsuite/gcc.target/i386/pr71374.c --- 50361,50366 ---- *************** cc8a162617784a2e883a5e726d28ebde gcc/te *** 50800,50806 **** 49bde97b271274cb2bc26697ce2b19be gcc/testsuite/gcc.target/i386/sse-11.c 0fda9371039ad1a80f11530a4dcd4d85 gcc/testsuite/gcc.target/i386/sse-12.c 4b4e74dd76fb8c69ffdc4bfe13ee62fd gcc/testsuite/gcc.target/i386/sse-13.c ! 71ab93066487879f46e3ab206d911e61 gcc/testsuite/gcc.target/i386/sse-14.c 92ad37b5ad7426d489b1b6f1ba0f41ea gcc/testsuite/gcc.target/i386/sse-15.c 2e7b115c4bd7984925f1a8d17a5faf67 gcc/testsuite/gcc.target/i386/sse-16.c f660e67b22cb44e6a6b38a247b1d78c3 gcc/testsuite/gcc.target/i386/sse-17.c --- 50930,50936 ---- 49bde97b271274cb2bc26697ce2b19be gcc/testsuite/gcc.target/i386/sse-11.c 0fda9371039ad1a80f11530a4dcd4d85 gcc/testsuite/gcc.target/i386/sse-12.c 4b4e74dd76fb8c69ffdc4bfe13ee62fd gcc/testsuite/gcc.target/i386/sse-13.c ! 89fde32bcbf5e87515f2730be614716f gcc/testsuite/gcc.target/i386/sse-14.c 92ad37b5ad7426d489b1b6f1ba0f41ea gcc/testsuite/gcc.target/i386/sse-15.c 2e7b115c4bd7984925f1a8d17a5faf67 gcc/testsuite/gcc.target/i386/sse-16.c f660e67b22cb44e6a6b38a247b1d78c3 gcc/testsuite/gcc.target/i386/sse-17.c *************** e644ef57e549ba6b46da5cb2d302203f gcc/te *** 53362,53367 **** --- 53492,53501 ---- 8d1bb8d348bbbd1468a4518fcfc930da gcc/testsuite/gcc.target/powerpc/ppc64-double-1.c 322275a6e18c464401bb8e7d050b7539 gcc/testsuite/gcc.target/powerpc/ppc64-toc.c a64bd4e47397af3253bc9e8dc2c56780 gcc/testsuite/gcc.target/powerpc/ppu-intrinsics.c + 93530f0352e114499a2243d7a2a63830 gcc/testsuite/gcc.target/powerpc/pr101129.c + fef209ac364aa52b3c1bab51422d611c gcc/testsuite/gcc.target/powerpc/pr101985-1.c + bbe41009113780dbcd6527cbec5f943c gcc/testsuite/gcc.target/powerpc/pr101985-2.c + 63f64f982d463b17c737686aae6460c3 gcc/testsuite/gcc.target/powerpc/pr102347.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 *************** f657a587777cadd240d90267c42183a8 gcc/te *** 54391,54396 **** --- 54525,54531 ---- b496b43e01188107d0277ab22fe7faa6 gcc/testsuite/gcc.target/s390/20140327-1.c f9efcac72c7632def29469b0cbef14cb gcc/testsuite/gcc.target/s390/20150826-1.c 4a96580e145f1c61cef78ba991ab4066 gcc/testsuite/gcc.target/s390/20181024-1.c + 1dabce41016ae8d4d1de9989a3307a73 gcc/testsuite/gcc.target/s390/20211119.c 2a2e7cf581c0ea913bb0cd940e096c96 gcc/testsuite/gcc.target/s390/TI-constants-lra.c 79300a376a7a8fbc10ec913d6f99a928 gcc/testsuite/gcc.target/s390/TI-constants-nolra.c d69a98eeb9d370fcef146a6f7778c59d gcc/testsuite/gcc.target/s390/addr-constraints-1.c *************** dfee7fa2ec55ccfb935c28226ca15fe3 gcc/te *** 54546,54551 **** --- 54681,54687 ---- d5b2bba665576dc0538f9d0bd2142e62 gcc/testsuite/gcc.target/s390/nomemloopunroll-1.c eb96a92710915622b3f65dba4a30955d gcc/testsuite/gcc.target/s390/oscbreak-1.c 25c3bd00fd3d097e42ac8cfc215fd0c4 gcc/testsuite/gcc.target/s390/pfpo.c + 182ebf3677a29bf9b1dbb033505f78dd gcc/testsuite/gcc.target/s390/pr104775.c 765307a040de72f2f4376b7068d68018 gcc/testsuite/gcc.target/s390/pr20927.c 85f31fb9b4b15529205376d3f6fa385c gcc/testsuite/gcc.target/s390/pr24624.c 7adacbd67601dc0845e556e5632cd718 gcc/testsuite/gcc.target/s390/pr27661.c *************** a67458660c2ef2010f128fdaa4faaa86 gcc/te *** 55021,55026 **** --- 55157,55164 ---- e470b0a0d1a056b60c3915a6dfcfd4ae gcc/testsuite/gcc.target/sparc/20170228-1.c bf95d536cbad4db92f264aa740abbbbc gcc/testsuite/gcc.target/sparc/20181129-1.c 3b3205cedf38a33c506ea5c4414d489f gcc/testsuite/gcc.target/sparc/20181129-2.c + 3f593e1ef43ebce309fa2b2033f8be77 gcc/testsuite/gcc.target/sparc/20210917-1.c + 0c6705acc2a655d06368478b465dca00 gcc/testsuite/gcc.target/sparc/20220510-1.c 44373c57181608413fc07f3ec0e2ad6e gcc/testsuite/gcc.target/sparc/align.c 667a877a2fb02d919c4eaaea6fbccbad gcc/testsuite/gcc.target/sparc/array.c 941bd8aa096c3c20415035d9d17cca6e gcc/testsuite/gcc.target/sparc/attr-aligned.c *************** aeec8ff75316a52def72f86d4bc1708c gcc/te *** 55608,55613 **** --- 55746,55760 ---- cd68bcb7d503735e2e8f425f2240753c gcc/testsuite/gdc.dg/lto/lto.exp 5697b1648a6eb2b43bdfc4a745518da0 gcc/testsuite/gdc.dg/lto/ltotests_0.d bcf14abbb66e47644086ee0018354420 gcc/testsuite/gdc.dg/lto/ltotests_1.d + 1ae8edb9b2cd9747efb9868621aec4e8 gcc/testsuite/gdc.dg/pr100882a.d + 7d27bb4ae013be8b6cb21a42a730353d gcc/testsuite/gdc.dg/pr100882b.d + 167004b1d3ea4a1c36668f029fbe4290 gcc/testsuite/gdc.dg/pr100882c.d + c0f2db1fcb83cbb41fda8295889368ff gcc/testsuite/gdc.dg/pr100882d.d + 16bbee694aa77823539b7b517bad4c50 gcc/testsuite/gdc.dg/pr100967.d + 740e20f8b4aa9d31c7412fbd3b58d4fb gcc/testsuite/gdc.dg/pr101127a.d + 1913e638608dc57b978438a45ade3c4f gcc/testsuite/gdc.dg/pr101127b.d + 874906b0c6afe60dafbbc739053ac4eb gcc/testsuite/gdc.dg/pr101490.d + 13e2f7b1a821d0fa1089525b3df15479 gcc/testsuite/gdc.dg/pr101640.d d32aa8ed5ea10931be4ddb5bb9e863d8 gcc/testsuite/gdc.dg/pr89017.d 53fa8db94d4ca3fc9ba83769733dc0e7 gcc/testsuite/gdc.dg/pr89041.d 6c316b13f71ea31fcada56b58a41ebd1 gcc/testsuite/gdc.dg/pr89042a.d *************** cf624d769a9b5200926d4c132fe75e3c gcc/te *** 55617,55622 **** --- 55764,55770 ---- fa256bce282d1c30c6edf903ca1c1b3c gcc/testsuite/gdc.dg/pr95173.d be038d26745b623aa5734e73550773e6 gcc/testsuite/gdc.dg/pr95250.d 53343eb0d4463417361dc00a68627e98 gcc/testsuite/gdc.dg/pr96140.d + 91aeadb49207b8ef8bedd4c016c1b443 gcc/testsuite/gdc.dg/pr96435.d 474f1f2b9c5476fcfd2ee0ed2db833f0 gcc/testsuite/gdc.dg/pr98277.d cbe01bd2f79e7ab3310ed946deebeec0 gcc/testsuite/gdc.dg/pr98457.d cdd5d26945e61c6b7bbf0b4cf68898d8 gcc/testsuite/gdc.dg/runnable.d *************** a00468337993d6f98ddcfebbdc09486c gcc/te *** 55626,55632 **** 310f79be9999b0b9e22f7cfbfe79f71d gcc/testsuite/gdc.test/README.gcc ab3d1adc569f350b1ab3f64a690fa774 gcc/testsuite/gdc.test/compilable/99bottles.d 7e650360bd1bc425bba2aa151bb9ee13 gcc/testsuite/gdc.test/compilable/a3682.d ! 2c636da3a34286fce3c2dedd8eebae3d gcc/testsuite/gdc.test/compilable/aggr_alignment.d beddbf81ccc1e52ee7fa201b22781d91 gcc/testsuite/gdc.test/compilable/aliasdecl.d c830eb21b0dd96c9b8d314d8bbdf13b3 gcc/testsuite/gdc.test/compilable/alignment.d 013ddc04571e4401d097e303967ae442 gcc/testsuite/gdc.test/compilable/art4769.d --- 55774,55780 ---- 310f79be9999b0b9e22f7cfbfe79f71d gcc/testsuite/gdc.test/README.gcc ab3d1adc569f350b1ab3f64a690fa774 gcc/testsuite/gdc.test/compilable/99bottles.d 7e650360bd1bc425bba2aa151bb9ee13 gcc/testsuite/gdc.test/compilable/a3682.d ! 0642d01e85efbeadba1b7735f0c5cdde gcc/testsuite/gdc.test/compilable/aggr_alignment.d beddbf81ccc1e52ee7fa201b22781d91 gcc/testsuite/gdc.test/compilable/aliasdecl.d c830eb21b0dd96c9b8d314d8bbdf13b3 gcc/testsuite/gdc.test/compilable/alignment.d 013ddc04571e4401d097e303967ae442 gcc/testsuite/gdc.test/compilable/art4769.d *************** c5c7e97bc1737359df54f060aaec7469 gcc/te *** 55642,55652 **** ef649aba680526d48bc3e69760b621f2 gcc/testsuite/gdc.test/compilable/b16697.d 1a88a6c51e44c3714508bdee2b346151 gcc/testsuite/gdc.test/compilable/b16967.d 57d4e74913d1d58f85619152627c9d6d gcc/testsuite/gdc.test/compilable/b17111.d 1def44638ab23277ee8a3cbef121f28b gcc/testsuite/gdc.test/compilable/b33.d 286e654567f89de0a3605032db35f623 gcc/testsuite/gdc.test/compilable/b6227.d 6a76da8b7b49ec37b8f02315a9b5bdd9 gcc/testsuite/gdc.test/compilable/b6395.d 91312b385ab5eae660ff874edde30f1b gcc/testsuite/gdc.test/compilable/b6400.d ! dee0f822a13e4056b5394870a7c74761 gcc/testsuite/gdc.test/compilable/betterCarray.d 7021d1651fabe6e446f09a6e5c53962f gcc/testsuite/gdc.test/compilable/betterCswitch.d 0aa7e577ae4c165086acff2ed3c6759e gcc/testsuite/gdc.test/compilable/bug11735.d fbecccee350c9b5a8815a306c8c7a540 gcc/testsuite/gdc.test/compilable/bug6963.d --- 55790,55801 ---- ef649aba680526d48bc3e69760b621f2 gcc/testsuite/gdc.test/compilable/b16697.d 1a88a6c51e44c3714508bdee2b346151 gcc/testsuite/gdc.test/compilable/b16967.d 57d4e74913d1d58f85619152627c9d6d gcc/testsuite/gdc.test/compilable/b17111.d + 985cbf872a2f9249c9e9c78338b0f501 gcc/testsuite/gdc.test/compilable/b19002.d 1def44638ab23277ee8a3cbef121f28b gcc/testsuite/gdc.test/compilable/b33.d 286e654567f89de0a3605032db35f623 gcc/testsuite/gdc.test/compilable/b6227.d 6a76da8b7b49ec37b8f02315a9b5bdd9 gcc/testsuite/gdc.test/compilable/b6395.d 91312b385ab5eae660ff874edde30f1b gcc/testsuite/gdc.test/compilable/b6400.d ! 05bd563df07dd7a5cae7c595d94d80de gcc/testsuite/gdc.test/compilable/betterCarray.d 7021d1651fabe6e446f09a6e5c53962f gcc/testsuite/gdc.test/compilable/betterCswitch.d 0aa7e577ae4c165086acff2ed3c6759e gcc/testsuite/gdc.test/compilable/bug11735.d fbecccee350c9b5a8815a306c8c7a540 gcc/testsuite/gdc.test/compilable/bug6963.d *************** b9a2e48a61e57647b438f17a3416d327 gcc/te *** 56418,56423 **** --- 56567,56573 ---- 91827475c22bb655e1204f7d9f6ec260 gcc/testsuite/gdc.test/fail_compilation/extra-files/a14446.d f76cf9db0833afa5687645d4c74a9897 gcc/testsuite/gdc.test/fail_compilation/extra-files/bar11453.d 99acc5a7305edac00837d2641c2f1bb9 gcc/testsuite/gdc.test/fail_compilation/extra-files/foo11453.d + 84bebd871a01f556191f22e1fa9eace9 gcc/testsuite/gdc.test/fail_compilation/extra-files/minimal/object.d 989822bfa536330726e052ee3bf32a19 gcc/testsuite/gdc.test/fail_compilation/fail10.d 0eee2561c3e30f08c66c6e2609b66f76 gcc/testsuite/gdc.test/fail_compilation/fail100.d aed89b6b064d4ac8872e40f1af311262 gcc/testsuite/gdc.test/fail_compilation/fail10082.d *************** ac4b371d96f5ba3e37dfd65011f1b81a gcc/te *** 56608,56613 **** --- 56758,56768 ---- 3ad99c4ff25fed0b9151dea855acebba gcc/testsuite/gdc.test/fail_compilation/fail19609.d 0ef63361f290a9b73dc28f4feebb03d8 gcc/testsuite/gdc.test/fail_compilation/fail198.d f01d30c0a49b46065de39a95f911fd41 gcc/testsuite/gdc.test/fail_compilation/fail199.d + 20732ebad089aa6fc8fd4b82c40d461a gcc/testsuite/gdc.test/fail_compilation/fail19911a.d + 7235fcff769c5fc74a7df55b3ee9a0ef gcc/testsuite/gdc.test/fail_compilation/fail19911b.d + 4a9f549603e62a9f74791f0e261c8603 gcc/testsuite/gdc.test/fail_compilation/fail19911c.d + bcc364c7146bd5c9cab057ce77ed7026 gcc/testsuite/gdc.test/fail_compilation/fail19922.d + 7ee50deff46db565fe3d4bd0c3470287 gcc/testsuite/gdc.test/fail_compilation/fail19923.d eae23c0332e3168bbb03940c3f6c7dd7 gcc/testsuite/gdc.test/fail_compilation/fail20.d f69d72e7a0d4cb79a9c52eb77fd58b63 gcc/testsuite/gdc.test/fail_compilation/fail200.d e4df3abafbf56629fa7853c4bc1fc0ff gcc/testsuite/gdc.test/fail_compilation/fail201.d *************** fb44509087d96cafd81f6b3914fa210d gcc/te *** 56629,56634 **** --- 56784,56790 ---- 25aa1006320654cdd4ef271b53a76a69 gcc/testsuite/gdc.test/fail_compilation/fail22.d 4fb4e3729bce12b1c71a831a963af935 gcc/testsuite/gdc.test/fail_compilation/fail220.d cbf4cc7e1f96260b11e9acc29bd9dc12 gcc/testsuite/gdc.test/fail_compilation/fail221.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 *************** fbf6eb41453bed2d7b01d6d3ecd3b075 gcc/te *** 57983,57988 **** --- 58139,58145 ---- 39525fca12dae051a4414dad3ab2cb02 gcc/testsuite/gfortran.dg/alloc_comp_scalar_1.f90 243cbfa77a9448c9019b236137e7803d gcc/testsuite/gfortran.dg/alloc_comp_std.f90 909cf7d56a64fc559ec64c2bb71d1197 gcc/testsuite/gfortran.dg/alloc_comp_transformational_1.f90 + 6ad12324ccb5fbf1f5f93c86d22f4ca4 gcc/testsuite/gfortran.dg/alloc_deferred_comp_1.f90 c59ad781dee7ec8e48a5f7ca04827100 gcc/testsuite/gfortran.dg/allocatable_dummy_1.f90 56cdd5c6ada96e8035ed20712fda44d5 gcc/testsuite/gfortran.dg/allocatable_dummy_2.f90 b44c3949481c974b2c6896675c16886c gcc/testsuite/gfortran.dg/allocatable_dummy_3.f90 *************** ca5ed9b7a4b086d732df1a505d87813b gcc/te *** 58276,58281 **** --- 58433,58440 ---- d6fad859ae9f254219fe0b62c52472a0 gcc/testsuite/gfortran.dg/arrayio_9.f90 a7a4d71734bf9559e09017fe4616e065 gcc/testsuite/gfortran.dg/arrayio_derived_1.f90 2b2c726e08ba1c26507c7392e63e1029 gcc/testsuite/gfortran.dg/arrayio_derived_2.f90 + 3b8425a2f59699b47aac6da29c11aba9 gcc/testsuite/gfortran.dg/asan_associate_58.f90 + e9f58df1de071d2b106b16b3af8f6764 gcc/testsuite/gfortran.dg/asan_associate_59.f90 28bbca8fc062ad301c676d4eb94d000d gcc/testsuite/gfortran.dg/assign-debug.f90 7ad5faf60f3a1cebebfbb2c9e52516d7 gcc/testsuite/gfortran.dg/assign.f90 4fd44d78ecb3264e1dd3d6bbb0ca8ea6 gcc/testsuite/gfortran.dg/assign_1.f90 *************** bf4b33b033f4afc9c22972f4a83b0173 gcc/te *** 58338,58343 **** --- 58497,58506 ---- 47ae1500d4b97d431462d23e9c5895d0 gcc/testsuite/gfortran.dg/associate_48.f90 c73b6100086b4db74c5f70aa2b7a9af6 gcc/testsuite/gfortran.dg/associate_49.f90 5dfaf5e9c3d8b8b8f835046ca42ccbf4 gcc/testsuite/gfortran.dg/associate_5.f03 + 13a1be9babd60d4e08197194fd394d19 gcc/testsuite/gfortran.dg/associate_54.f90 + a33adc54f6651cbed7e49f420e779c05 gcc/testsuite/gfortran.dg/associate_55.f90 + e266ed6fc3d13470e97d022451deea4e gcc/testsuite/gfortran.dg/associate_56.f90 + 65dc8227452a184626d85e599ab1382d gcc/testsuite/gfortran.dg/associate_58.f90 fe80c25bfc4d1e630472420bac3dc836 gcc/testsuite/gfortran.dg/associate_6.f03 ac2154aefe0a4ce981b3fa252235e2dd gcc/testsuite/gfortran.dg/associate_7.f03 3c2206420bb8717914aa447789b5f079 gcc/testsuite/gfortran.dg/associate_8.f03 *************** ed08ee0bcaabca9d5a128ae929308739 gcc/te *** 58355,58360 **** --- 58518,58524 ---- 408f82dd557d8d77f4652347ea5412e4 gcc/testsuite/gfortran.dg/associated_target_4.f90 c8dcd0248b062389c3ebfd88d9473a64 gcc/testsuite/gfortran.dg/associated_target_5.f03 f7cfdbf4de38d945e0085b02ebb99e8d gcc/testsuite/gfortran.dg/associated_target_6.f03 + 3cceb452e20c2755392cd5294bebb9d0 gcc/testsuite/gfortran.dg/associated_target_7.f90 6376d7ef6f137372a501dd7c8547864d gcc/testsuite/gfortran.dg/associative_1.f90 04280cc7719e51d18a6ad4510745c528 gcc/testsuite/gfortran.dg/assumed_charlen_arg_1.f90 e41613f37c052bf20cb9d34a7bb40da1 gcc/testsuite/gfortran.dg/assumed_charlen_arg_2.f90 *************** ff9c91471b4ce5ab6577afccb4c338c3 gcc/te *** 58621,58626 **** --- 58785,58791 ---- 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 *************** a0645f58d7ace0f67d18f1c73fdfe406 gcc/te *** 58634,58639 **** --- 58799,58805 ---- f77d86492e84d13e004ea59f1da3d69d gcc/testsuite/gfortran.dg/bounds_check_19.f90 b890668874e1bc07a00cd706581c6fd1 gcc/testsuite/gfortran.dg/bounds_check_2.f 66c33189a3444b13a4ae1439933ebc8b gcc/testsuite/gfortran.dg/bounds_check_20.f90 + c255cbccd21b3a2d3ab21d32d680086e gcc/testsuite/gfortran.dg/bounds_check_23.f90 1ff91e96da26ef6e7839e53e2b71499d gcc/testsuite/gfortran.dg/bounds_check_3.f90 a9119407c225c716d99c309178d77952 gcc/testsuite/gfortran.dg/bounds_check_4.f90 167a95fa41d2abf20f66591e1389d059 gcc/testsuite/gfortran.dg/bounds_check_5.f90 *************** bffd58c6eb392174540e5effb5007d27 gcc/te *** 59045,59050 **** --- 59211,59218 ---- 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 *************** cad42db351ade11e383560c34e3e978b gcc/te *** 59526,59531 **** --- 59694,59700 ---- 8336562dd939d9f2e4d7fa9f352ebdd5 gcc/testsuite/gfortran.dg/dec_union_1.f90 54fa8897424354fe36b1147275b1b014 gcc/testsuite/gfortran.dg/dec_union_10.f90 10c14f289f146d801c8860e6ec73a8f8 gcc/testsuite/gfortran.dg/dec_union_11.f90 + 436b819785ec03fd97943e5f6729ee25 gcc/testsuite/gfortran.dg/dec_union_12.f90 ff04d1928f316f16787d0be012e0d169 gcc/testsuite/gfortran.dg/dec_union_2.f90 85cd1980dadce1ec2db721b54e8725bf gcc/testsuite/gfortran.dg/dec_union_3.f90 a4db5df7b9375240006aa16fab80e2c0 gcc/testsuite/gfortran.dg/dec_union_4.f90 *************** f405c538ee221b34e2094a843f78c12a gcc/te *** 59577,59582 **** --- 59746,59752 ---- 5f82ae5d302549ef737253722a910e61 gcc/testsuite/gfortran.dg/deferred_character_33.f90 c8ca7a67e0b9c502e7883c6187a3b1f3 gcc/testsuite/gfortran.dg/deferred_character_33a.f90 78fa09124fe9b69cd259177c36a08282 gcc/testsuite/gfortran.dg/deferred_character_34.f90 + 90f06c61f4e28e5c0cd42eea0caba538 gcc/testsuite/gfortran.dg/deferred_character_35.f90 f69f56fb4872918c466c7554afc79da9 gcc/testsuite/gfortran.dg/deferred_character_36.f90 5eede6c791f6d272034f9b84850ac6af gcc/testsuite/gfortran.dg/deferred_character_4.f90 981b809300de368e8fac65be4b40099c gcc/testsuite/gfortran.dg/deferred_character_5.f90 *************** cdbdebe9161bcc4a79df17d5f5732b28 gcc/te *** 59752,59757 **** --- 59922,59928 ---- 96e2135b923f812fcee419619693640d gcc/testsuite/gfortran.dg/do_check_10.f90 c321dd94759ede7664827657793cf07e gcc/testsuite/gfortran.dg/do_check_11.f90 2eb7ae71fe0e15822f2c551473a52a7c gcc/testsuite/gfortran.dg/do_check_12.f90 + b439dee45498b38c2c1c8750cf86c793 gcc/testsuite/gfortran.dg/do_check_19.f90 18a2fbef89d7cf46f122e07d5fbef517 gcc/testsuite/gfortran.dg/do_check_2.f90 fdb990ec0ab32e124633d2dae596183b gcc/testsuite/gfortran.dg/do_check_3.f90 ffb5a682b1c8bb98feb925db34c42db2 gcc/testsuite/gfortran.dg/do_check_4.f90 *************** da4a7c798f0408437da738727e347788 gcc/te *** 59878,59883 **** --- 60049,60055 ---- 2d23e66cae12f606c517f27ced38c44c gcc/testsuite/gfortran.dg/elemental_function_2.f90 af300e66cd2debe8da426f435e478ede gcc/testsuite/gfortran.dg/elemental_function_3.f90 65a443bacf190674f49529d758625e54 gcc/testsuite/gfortran.dg/elemental_function_4.f90 + d5a800e56880e12efa6f176c1bdaab6c gcc/testsuite/gfortran.dg/elemental_function_5.f90 e228c219820da6c0d4d312bd5bd2165a gcc/testsuite/gfortran.dg/elemental_initializer_1.f90 bb58a11f51652cefd566851a1485c6f0 gcc/testsuite/gfortran.dg/elemental_intrinsic_1.f03 4c1ec6aea32b30a4a1edeb92c4abb5d3 gcc/testsuite/gfortran.dg/elemental_non_intrinsic_dummy_1.f90 *************** b75cb93f87f099ad715aceb9cb7b1bf2 gcc/te *** 61042,61047 **** --- 61214,61220 ---- 9042c8fc68be853afcc846869e788bd5 gcc/testsuite/gfortran.dg/implied_do_io_4.f90 156dc7e9c954310ba5c74c0fbcaa4f42 gcc/testsuite/gfortran.dg/implied_do_io_5.f90 1f7a9307002a1f0f2a5f8eb76998dcda gcc/testsuite/gfortran.dg/implied_do_io_6.f90 + 2b548a8a46da28ac4ce23e2509a886fc gcc/testsuite/gfortran.dg/implied_do_io_7.f90 a8761a2aaffb7680e80dcad5eceada12 gcc/testsuite/gfortran.dg/implied_shape_1.f08 f9528d7042bf84bf037d6e2b109272ec gcc/testsuite/gfortran.dg/implied_shape_2.f90 1b2b68c816459c1a9395771e9851de87 gcc/testsuite/gfortran.dg/implied_shape_3.f08 *************** dee6ff6cec856fe1f42312c1d4fd4807 gcc/te *** 61152,61157 **** --- 61325,61331 ---- e5a418513e079e50ea576e021cf5ad8e gcc/testsuite/gfortran.dg/inline_matmul_22.f90 1545bc137f7bcb397e7986a3324b63be gcc/testsuite/gfortran.dg/inline_matmul_23.f90 89a35f94060b171becdc54771a02040b gcc/testsuite/gfortran.dg/inline_matmul_24.f90 + d5dddad98efc37928795b446cb8d6501 gcc/testsuite/gfortran.dg/inline_matmul_25.f90 ffdb4ca68f61f3bd618415335c9c7c21 gcc/testsuite/gfortran.dg/inline_matmul_3.f90 f95e5fd479c839cfa9cb3ac127ee7584 gcc/testsuite/gfortran.dg/inline_matmul_4.f90 6cb787ca0dac6ea814c8af4ac7cb8022 gcc/testsuite/gfortran.dg/inline_matmul_5.f90 *************** ba93579108c80828d584884c6d1a3d2a gcc/te *** 61219,61224 **** --- 61393,61399 ---- 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 *** 61348,61353 **** --- 61523,61529 ---- 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 *************** d14391d3ef215e7090f2482b1fb51242 gcc/te *** 62031,62036 **** --- 62207,62213 ---- 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 *************** be693b3847d0256fa77c5e6d96396c97 gcc/te *** 62096,62107 **** d17e376a8cc641dbedaeffcce81d5297 gcc/testsuite/gfortran.dg/pdt_23.f03 74618f98f612c4722b0e366283ec8ca8 gcc/testsuite/gfortran.dg/pdt_24.f03 7c4f6f585a57e25f1c6f31ac89e87d40 gcc/testsuite/gfortran.dg/pdt_25.f03 ! d3869facbd48cd5e82791bacd1d3302e gcc/testsuite/gfortran.dg/pdt_26.f03 f67cfd0ae4d38f1ca5dc8d7f6e954087 gcc/testsuite/gfortran.dg/pdt_27.f03 7efa911fe665f45456e6943844302ac0 gcc/testsuite/gfortran.dg/pdt_28.f03 68b10a194ff6797eee8ecb042129b08f gcc/testsuite/gfortran.dg/pdt_29.f03 467e7b0f7ffea3a05b9ac591c2ac05ee gcc/testsuite/gfortran.dg/pdt_3.f03 1f42496cb72089bef450a6df6a13c299 gcc/testsuite/gfortran.dg/pdt_30.f90 17fa57111f7b9c176c9f9fdf95c974cf gcc/testsuite/gfortran.dg/pdt_4.f03 c5c92af1413fa2462f388d2ff5077773 gcc/testsuite/gfortran.dg/pdt_5.f03 65d2ad728417ad3174fc1ce2b51a458d gcc/testsuite/gfortran.dg/pdt_6.f03 --- 62273,62285 ---- d17e376a8cc641dbedaeffcce81d5297 gcc/testsuite/gfortran.dg/pdt_23.f03 74618f98f612c4722b0e366283ec8ca8 gcc/testsuite/gfortran.dg/pdt_24.f03 7c4f6f585a57e25f1c6f31ac89e87d40 gcc/testsuite/gfortran.dg/pdt_25.f03 ! 7182317a2e9d6c03d247c9fb2b50ab74 gcc/testsuite/gfortran.dg/pdt_26.f03 f67cfd0ae4d38f1ca5dc8d7f6e954087 gcc/testsuite/gfortran.dg/pdt_27.f03 7efa911fe665f45456e6943844302ac0 gcc/testsuite/gfortran.dg/pdt_28.f03 68b10a194ff6797eee8ecb042129b08f gcc/testsuite/gfortran.dg/pdt_29.f03 467e7b0f7ffea3a05b9ac591c2ac05ee gcc/testsuite/gfortran.dg/pdt_3.f03 1f42496cb72089bef450a6df6a13c299 gcc/testsuite/gfortran.dg/pdt_30.f90 + d586eb557b29a67b9fa981d71d443c8b gcc/testsuite/gfortran.dg/pdt_31.f03 17fa57111f7b9c176c9f9fdf95c974cf gcc/testsuite/gfortran.dg/pdt_4.f03 c5c92af1413fa2462f388d2ff5077773 gcc/testsuite/gfortran.dg/pdt_5.f03 65d2ad728417ad3174fc1ce2b51a458d gcc/testsuite/gfortran.dg/pdt_6.f03 *************** a3ab8fbef738997039cfd45f350461a3 gcc/te *** 62200,62205 **** --- 62378,62391 ---- 77eca811eac1f80edb0f33c68ac0c4d3 gcc/testsuite/gfortran.dg/power_7.f90 457d6bb30d331f4d3250628bdae53dc3 gcc/testsuite/gfortran.dg/power_8.f90 e13b5dd50c332ea865cb6fabb5f79f29 gcc/testsuite/gfortran.dg/pr100154.f90 + 17f130e627232745d6279696b6984514 gcc/testsuite/gfortran.dg/pr100949.f90 + 515f43ee1c3a7f37818b2b4bd6abedd7 gcc/testsuite/gfortran.dg/pr101327.f90 + 1847c71c8b9e5b166029846dfe5506c5 gcc/testsuite/gfortran.dg/pr102860.f90 + dc7a57f897711dfb7a3fba377198c10c gcc/testsuite/gfortran.dg/pr103588.f90 + a27b232d198fc2463c04af17903b1b4c gcc/testsuite/gfortran.dg/pr103606.f90 + ea7b00fcccc1df091b8087b16e502d92 gcc/testsuite/gfortran.dg/pr103607.f90 + 7a5b7a18d621b5e1b9d04b73e259ddd4 gcc/testsuite/gfortran.dg/pr104849.f90 + 22283af469347d85bd1fe4dae42939a3 gcc/testsuite/gfortran.dg/pr105230.f90 984f8307f36d56a0b48b5acce2dd5eb5 gcc/testsuite/gfortran.dg/pr12884.f 64075248b9d1bffd6f380bb4e2a6eae0 gcc/testsuite/gfortran.dg/pr15129.f90 e9cbd51db4e16292fc5dd1fead2e5a49 gcc/testsuite/gfortran.dg/pr15140.f90 *************** d1aef01880835db4a541fe2fb5d9b4b4 gcc/te *** 62628,62633 **** --- 62814,62820 ---- 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 3efdf6eef62b5bb55c7bd5d6342e1943 gcc/testsuite/gfortran.dg/pr83149.f90 *************** a50ed014f3fd628f8e8e8e09f44f8c0f gcc/te *** 62934,62939 **** --- 63121,63127 ---- 10c589d311b0a73db8c553ec42336631 gcc/testsuite/gfortran.dg/proc_ptr_5.f90 43ca301c170d61a34b8db85b8fcd1d84 gcc/testsuite/gfortran.dg/proc_ptr_50.f90 2bdbfb5616cc946bcc711233f9deb135 gcc/testsuite/gfortran.dg/proc_ptr_51.f90 + a2ab49b1f709afa3cf1c9284d4576fa9 gcc/testsuite/gfortran.dg/proc_ptr_52.f90 aa07bccd48fbde93e47db111bac1ce8c gcc/testsuite/gfortran.dg/proc_ptr_6.f90 3648c097522ae5858550c7d7776afd28 gcc/testsuite/gfortran.dg/proc_ptr_7.c fe310c69dfb181cb04f271dad6a3f1d5 gcc/testsuite/gfortran.dg/proc_ptr_7.f90 *************** d8a9f1260e74e0077151d976c7d10349 gcc/te *** 63197,63202 **** --- 63385,63391 ---- 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 *************** c137ead9ed9a3cbd4ca5f75d50965b1c gcc/te *** 63354,63359 **** --- 63543,63549 ---- e5ae2b5b89173ed8361161ef10e352e2 gcc/testsuite/gfortran.dg/sequence_types_1.f90 cd908f2e51ce36e1d1deeca7c6ee72f6 gcc/testsuite/gfortran.dg/set_vm_limit.c 8c21b488e7773e67f9472b6a064868b9 gcc/testsuite/gfortran.dg/shape_1.f90 + 052a4b2bd7fe6fdc1737283f758ffaec gcc/testsuite/gfortran.dg/shape_11.f90 83165f49617d33a60724f58032240b93 gcc/testsuite/gfortran.dg/shape_2.f90 3c6dfb31a52f344f631d36f369e069bf gcc/testsuite/gfortran.dg/shape_3.f90 3a839d4a8d0dfd6f0b50c08763804e26 gcc/testsuite/gfortran.dg/shape_4.f90 *************** caa7da29771aad612f545bdeb544b4c9 gcc/te *** 63510,63515 **** --- 63700,63706 ---- 5cdebe330092a8119284be48c532d8d9 gcc/testsuite/gfortran.dg/structure_constructor_14.f90 a8c69bca898ff29ba3a6ae2924078fa7 gcc/testsuite/gfortran.dg/structure_constructor_15.f90 25b14e6e8851bd84a6960c3b9ce1be37 gcc/testsuite/gfortran.dg/structure_constructor_16.f90 + 3dbdb30cf91d1bfe2aefcf7e2101376b gcc/testsuite/gfortran.dg/structure_constructor_17.f90 34b1847b506e1397548db8e0aa2a5dee gcc/testsuite/gfortran.dg/structure_constructor_2.f03 b4cea5ac2c6cc89ab88ca3d7673f1483 gcc/testsuite/gfortran.dg/structure_constructor_3.f03 cf05250e492fd4f294f0298ffb5c8bdb gcc/testsuite/gfortran.dg/structure_constructor_4.f03 *************** b48b0b0bccb7566825a45154da80da66 gcc/te *** 63562,63568 **** dccf53db514265c48f2c92d1e6aa8319 gcc/testsuite/gfortran.dg/substr_3.f 6d054e85164109252d8cb0e433ff57ad gcc/testsuite/gfortran.dg/substr_4.f 9cbfabac96be8748ebd2e7c0bed4bb91 gcc/testsuite/gfortran.dg/substr_5.f90 ! 6fc9f98159d986738e731d5b07a7109b gcc/testsuite/gfortran.dg/substr_6.f90 5aacec7f3b63a41c71f1f83e8d5bcdb0 gcc/testsuite/gfortran.dg/substr_7.f90 3149d14be2bfd57fd4b2dbd5c1c8ebaa gcc/testsuite/gfortran.dg/substr_8.f90 acc5d5ef0b41f88cee2142a7f82c4fe1 gcc/testsuite/gfortran.dg/substr_alloc_string_comp_1.f90 --- 63753,63759 ---- dccf53db514265c48f2c92d1e6aa8319 gcc/testsuite/gfortran.dg/substr_3.f 6d054e85164109252d8cb0e433ff57ad gcc/testsuite/gfortran.dg/substr_4.f 9cbfabac96be8748ebd2e7c0bed4bb91 gcc/testsuite/gfortran.dg/substr_5.f90 ! 4d48cdf844980a4533d1ed67dbb2a0a4 gcc/testsuite/gfortran.dg/substr_6.f90 5aacec7f3b63a41c71f1f83e8d5bcdb0 gcc/testsuite/gfortran.dg/substr_7.f90 3149d14be2bfd57fd4b2dbd5c1c8ebaa gcc/testsuite/gfortran.dg/substr_8.f90 acc5d5ef0b41f88cee2142a7f82c4fe1 gcc/testsuite/gfortran.dg/substr_alloc_string_comp_1.f90 *************** fdabd8c65dcb8fb1bfe06c29c937c219 gcc/te *** 63607,63612 **** --- 63798,63804 ---- 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 *** 63624,63631 **** 61dc845871f386f900b0ac50b8a1ed35 gcc/testsuite/gfortran.dg/transfer_resolve_4.f90 30d8f168d50a2e4c7035918791efd17a gcc/testsuite/gfortran.dg/transfer_simplify_1.f90 0e37859572cdbc7ec9804e5e5f50a0d9 gcc/testsuite/gfortran.dg/transfer_simplify_10.f90 ! 28072dd7f3eef057672f7c38728a4ba6 gcc/testsuite/gfortran.dg/transfer_simplify_11.f90 7a9020fc2f84bc7f31ff4cf8822de2ce gcc/testsuite/gfortran.dg/transfer_simplify_12.f90 37010897279c0577b0975bdcac554324 gcc/testsuite/gfortran.dg/transfer_simplify_2.f90 dde58017dce31b9f86dea653194c266e gcc/testsuite/gfortran.dg/transfer_simplify_3.f90 f969144a4ccabad799704e5ecdde6afc gcc/testsuite/gfortran.dg/transfer_simplify_4.f90 --- 63816,63825 ---- 61dc845871f386f900b0ac50b8a1ed35 gcc/testsuite/gfortran.dg/transfer_resolve_4.f90 30d8f168d50a2e4c7035918791efd17a 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 + 66c784020c277542528a30173f125c2e gcc/testsuite/gfortran.dg/transfer_simplify_13.f90 + 033fcf43c73ba63f468dc3499e3bdfb2 gcc/testsuite/gfortran.dg/transfer_simplify_15.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 *************** a7d68db5c429562164ea47edc8677d14 gcc/te *** 63784,63789 **** --- 63978,63985 ---- 962d5f34907dcd3b3af69061c53ace28 gcc/testsuite/gfortran.dg/typebound_proc_8.f03 b432d7fb6a6aa41a4117f93a3fb4acb3 gcc/testsuite/gfortran.dg/typebound_proc_9.f03 a9c38f145300eee1aaca2ccee4d418fd gcc/testsuite/gfortran.dg/typed_subroutine_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 *************** cf3fa5a439726d0e73d0651b14a2dd1b gcc/tr *** 68902,68910 **** ee6db89124dff9b0bf2e76468c03eb0e gcc/tree-cfgcleanup.h 64ba3ee03d1c5a6f1958fdad7c8ee694 gcc/tree-chrec.c 7b55d46f115ac2eed2a43554095765e3 gcc/tree-chrec.h ! d6d3619e6d0d28721a9c5c6a368ee52c gcc/tree-complex.c c8a0e0c5adae771c3832e3adedf1983b gcc/tree-core.h ! 63e6c9a12380390edf13918c9fc1eb7e gcc/tree-data-ref.c ef7aefae53ef39fa14071dd236e0a6c1 gcc/tree-data-ref.h e1479e97dde82bebaa8dd0dc3ae45384 gcc/tree-dfa.c 57a776e8da826c3b6ae7f8881a3627da gcc/tree-dfa.h --- 69098,69106 ---- ee6db89124dff9b0bf2e76468c03eb0e gcc/tree-cfgcleanup.h 64ba3ee03d1c5a6f1958fdad7c8ee694 gcc/tree-chrec.c 7b55d46f115ac2eed2a43554095765e3 gcc/tree-chrec.h ! 65b4345c1c1370e7ec347ea3c26acdca gcc/tree-complex.c c8a0e0c5adae771c3832e3adedf1983b gcc/tree-core.h ! c839f993a7d29a1da6afa9bb9ccc8ec4 gcc/tree-data-ref.c ef7aefae53ef39fa14071dd236e0a6c1 gcc/tree-data-ref.h e1479e97dde82bebaa8dd0dc3ae45384 gcc/tree-dfa.c 57a776e8da826c3b6ae7f8881a3627da gcc/tree-dfa.h *************** e1479e97dde82bebaa8dd0dc3ae45384 gcc/tr *** 68912,68932 **** 3668b829319a65e04fa31624410d9b09 gcc/tree-diagnostic.h de5324d205f3d8e4436fad862c4e8cbf gcc/tree-dump.c 78547b119f85981a1c0db03f5f9001db gcc/tree-dump.h ! fe808efaf9aac899825967ecd2e21b7d gcc/tree-eh.c b79825083a3ebc55626e8b11536c4ba6 gcc/tree-eh.h c90ef32eec85331cdb4b4cfb851b1e5f gcc/tree-emutls.c 6a6624d33802dfaf68612c39969d7e4c gcc/tree-hash-traits.h b5f8cac4e95ce5662b8305facd72053e gcc/tree-hasher.h 07d684f25cce5ad624e7e8080364f64e gcc/tree-if-conv.c f1194f3c38cd8ea80b953e27866fc331 gcc/tree-if-conv.h ! f30d0c4f683de92622e62220a25399fb gcc/tree-inline.c 6715df3b6c3d1a52e89ee84312bb82a4 gcc/tree-inline.h 66872f4ce13076066c8deaa72f57d82b gcc/tree-into-ssa.c d8db8f29a72806d9ef9a7ce2abf423f6 gcc/tree-into-ssa.h 9ee363e4b6a8128a19c2bb041c40ac81 gcc/tree-iterator.c 6eaf3d762fa714f8bdd387112f9040d3 gcc/tree-iterator.h 85097c7be407e98a894037ae4add4725 gcc/tree-loop-distribution.c ! de2ef5b60ce7bb9b56a84bc97c2fbaa8 gcc/tree-nested.c bdf67051c7eed96122b29fed2a234557 gcc/tree-nested.h e328fa27681700c371368b06726b6240 gcc/tree-nrv.c 54555574a1bd6255be4bf6a22e2c1f7c gcc/tree-object-size.c --- 69108,69128 ---- 3668b829319a65e04fa31624410d9b09 gcc/tree-diagnostic.h de5324d205f3d8e4436fad862c4e8cbf gcc/tree-dump.c 78547b119f85981a1c0db03f5f9001db gcc/tree-dump.h ! 7702b36a751c8e419dbd95e1da5fb7c9 gcc/tree-eh.c b79825083a3ebc55626e8b11536c4ba6 gcc/tree-eh.h c90ef32eec85331cdb4b4cfb851b1e5f gcc/tree-emutls.c 6a6624d33802dfaf68612c39969d7e4c gcc/tree-hash-traits.h b5f8cac4e95ce5662b8305facd72053e gcc/tree-hasher.h 07d684f25cce5ad624e7e8080364f64e gcc/tree-if-conv.c f1194f3c38cd8ea80b953e27866fc331 gcc/tree-if-conv.h ! edbf7f375d113a9d950182f57f2c6252 gcc/tree-inline.c 6715df3b6c3d1a52e89ee84312bb82a4 gcc/tree-inline.h 66872f4ce13076066c8deaa72f57d82b gcc/tree-into-ssa.c d8db8f29a72806d9ef9a7ce2abf423f6 gcc/tree-into-ssa.h 9ee363e4b6a8128a19c2bb041c40ac81 gcc/tree-iterator.c 6eaf3d762fa714f8bdd387112f9040d3 gcc/tree-iterator.h 85097c7be407e98a894037ae4add4725 gcc/tree-loop-distribution.c ! 6c1b6740accf3e45cbb311faa8de166f gcc/tree-nested.c bdf67051c7eed96122b29fed2a234557 gcc/tree-nested.h e328fa27681700c371368b06726b6240 gcc/tree-nrv.c 54555574a1bd6255be4bf6a22e2c1f7c gcc/tree-object-size.c *************** f45af467d45759e3cf70b50a0f4a9bc7 gcc/tr *** 68944,68951 **** 7191536639bfd276bc3527da15ebb458 gcc/tree-profile.c a972ba059faad340bcbe01fd547285d7 gcc/tree-scalar-evolution.c 422e453797567c8827d57ca1a918085b gcc/tree-scalar-evolution.h ! 21d24972644f8c75e683e94faf475171 gcc/tree-sra.c ! cd2c5878ad9e5f4f953ca0876727446e gcc/tree-ssa-address.c 26a031bfc9047f95d93c2ae4b3863c6a gcc/tree-ssa-address.h 4e284dc982ebb3a4a9c144728f660031 gcc/tree-ssa-alias.c de080bbdbf508c58b6645a26dd5f8cbd gcc/tree-ssa-alias.h --- 69140,69147 ---- 7191536639bfd276bc3527da15ebb458 gcc/tree-profile.c a972ba059faad340bcbe01fd547285d7 gcc/tree-scalar-evolution.c 422e453797567c8827d57ca1a918085b gcc/tree-scalar-evolution.h ! eeb997bae7af0c6606ebdf14c509c18e gcc/tree-sra.c ! c32f19064bb4a923ebc468a634c67210 gcc/tree-ssa-address.c 26a031bfc9047f95d93c2ae4b3863c6a gcc/tree-ssa-address.h 4e284dc982ebb3a4a9c144728f660031 gcc/tree-ssa-alias.c de080bbdbf508c58b6645a26dd5f8cbd gcc/tree-ssa-alias.h *************** bd73e3b6a1d6459aba559373e7d25550 gcc/tr *** 68956,68962 **** 2548a159b7f9be6c7710e991380601fe gcc/tree-ssa-copy.c c44c82bb6bd01c015ca39ae8b7017287 gcc/tree-ssa-dce.c 33554b70ccf1bbc32aa7f228515de7a7 gcc/tree-ssa-dce.h ! 62ca87da3ddb8c15dabc78a46376040c gcc/tree-ssa-dom.c d4d7445af3374048e91bdee947d748a5 gcc/tree-ssa-dom.h 394d5401ebcbce56626cfa25ed6b8067 gcc/tree-ssa-dse.c 8d7e24f447a3d0263ecc607e4758d29d gcc/tree-ssa-forwprop.c --- 69152,69158 ---- 2548a159b7f9be6c7710e991380601fe gcc/tree-ssa-copy.c c44c82bb6bd01c015ca39ae8b7017287 gcc/tree-ssa-dce.c 33554b70ccf1bbc32aa7f228515de7a7 gcc/tree-ssa-dce.h ! 3813fc529690a01d4218cf6c87a2c0ed gcc/tree-ssa-dom.c d4d7445af3374048e91bdee947d748a5 gcc/tree-ssa-dom.h 394d5401ebcbce56626cfa25ed6b8067 gcc/tree-ssa-dse.c 8d7e24f447a3d0263ecc607e4758d29d gcc/tree-ssa-forwprop.c *************** d4d7445af3374048e91bdee947d748a5 gcc/tr *** 68964,68970 **** 882535983e77f5bb4aa55d36cbbb7a2e gcc/tree-ssa-live.c c621d600df58fcb07ad10ec2c2f606c8 gcc/tree-ssa-live.h a96c558ff8a92678d2bbef6991794e0f gcc/tree-ssa-loop-ch.c ! e8ef6a22fb0610281c8ce491aa42e235 gcc/tree-ssa-loop-im.c a3d4f1965d8cb78c3506adbb8cf28893 gcc/tree-ssa-loop-ivcanon.c 05ad8643e4bb822819fc6316063884f4 gcc/tree-ssa-loop-ivopts.c 90f1da9f2fe88cdb144b9290639bc866 gcc/tree-ssa-loop-ivopts.h --- 69160,69166 ---- 882535983e77f5bb4aa55d36cbbb7a2e gcc/tree-ssa-live.c c621d600df58fcb07ad10ec2c2f606c8 gcc/tree-ssa-live.h a96c558ff8a92678d2bbef6991794e0f gcc/tree-ssa-loop-ch.c ! 7c7dd06ef93e8c7b8615979fd3c96b9a gcc/tree-ssa-loop-im.c a3d4f1965d8cb78c3506adbb8cf28893 gcc/tree-ssa-loop-ivcanon.c 05ad8643e4bb822819fc6316063884f4 gcc/tree-ssa-loop-ivopts.c 90f1da9f2fe88cdb144b9290639bc866 gcc/tree-ssa-loop-ivopts.h *************** e57adf6c93783e7a9a4c5329e7f70aab gcc/tr *** 68980,68992 **** ad83f46c9cbf76e7985e83df5506fcee gcc/tree-ssa-math-opts.c c6e348e48bc6da0fd54bd84f1400c2ac gcc/tree-ssa-operands.c 2e5e0d5c35227d27366a9f075289807d gcc/tree-ssa-operands.h ! 9a3c756805df9e22319735bd59b037f0 gcc/tree-ssa-phiopt.c acb6aa7ce143ae91fbebf78c1b01c517 gcc/tree-ssa-phiprop.c ! 58302e6d35a3644f1488a0fb669cc3c7 gcc/tree-ssa-pre.c 3f48463407f52911b59898c513e362a6 gcc/tree-ssa-propagate.c e2457942a23f91d5a287e162b3911839 gcc/tree-ssa-propagate.h a42c5fe1979660de86f1c19f7c5fb29d gcc/tree-ssa-reassoc.c ! 54f32c58cb70f483f14016deca33c669 gcc/tree-ssa-sccvn.c bcbcfa1be005b29d59df5bcf6488433f gcc/tree-ssa-sccvn.h e8f7441e16b235f14ac6ab9c4c743152 gcc/tree-ssa-scopedtables.c 56680b87422628c7a0a7bd4beafc7e6a gcc/tree-ssa-scopedtables.h --- 69176,69188 ---- ad83f46c9cbf76e7985e83df5506fcee gcc/tree-ssa-math-opts.c c6e348e48bc6da0fd54bd84f1400c2ac gcc/tree-ssa-operands.c 2e5e0d5c35227d27366a9f075289807d gcc/tree-ssa-operands.h ! 2eecb349e50b38fc12af2268d9bb1eed gcc/tree-ssa-phiopt.c acb6aa7ce143ae91fbebf78c1b01c517 gcc/tree-ssa-phiprop.c ! c81af835f71d3f5e8d4c97fbf0b3a31e gcc/tree-ssa-pre.c 3f48463407f52911b59898c513e362a6 gcc/tree-ssa-propagate.c e2457942a23f91d5a287e162b3911839 gcc/tree-ssa-propagate.h a42c5fe1979660de86f1c19f7c5fb29d gcc/tree-ssa-reassoc.c ! 72ff452cafc46f0dd0f8e5d31efcc7c0 gcc/tree-ssa-sccvn.c bcbcfa1be005b29d59df5bcf6488433f gcc/tree-ssa-sccvn.h e8f7441e16b235f14ac6ab9c4c743152 gcc/tree-ssa-scopedtables.c 56680b87422628c7a0a7bd4beafc7e6a gcc/tree-ssa-scopedtables.h *************** c17b4939dff5f391c4735dbc3d69c1ad gcc/tr *** 69014,69028 **** d60db07cf0bd16c97faf0fd226ba5980 gcc/tree-streamer-out.c 98d3d8c48a9b3efe58dfdde689f7c408 gcc/tree-streamer.c b054506e5b8d5ed1b8605d943ac31d12 gcc/tree-streamer.h ! e955d60cc69cccd30e1126c8f011e391 gcc/tree-switch-conversion.c ! 979b0fbb38ab0a16518112580711689b gcc/tree-switch-conversion.h 0e5c06e7c700550800e54a795cd0dc70 gcc/tree-tailcall.c ! 4c1a9c0d7a5a08f12928fcb63abdaae2 gcc/tree-vect-data-refs.c 4d8641260bf61f878bf11202f67decb6 gcc/tree-vect-generic.c ! d18f8c22abe252f42c302f3814d971d2 gcc/tree-vect-loop-manip.c ! 06acb1f8e5444f011b7bed7974690f0d gcc/tree-vect-loop.c 5d233e93322619c7c5cf16dd3fb07cf5 gcc/tree-vect-patterns.c ! 8eef8ce968c52dc61d9fc7e7b407127d gcc/tree-vect-slp.c a717083cc22a36f1f272a0ae84c73208 gcc/tree-vect-stmts.c 923de3f5927009f9e3576e15ae880ab0 gcc/tree-vector-builder.c c7ac3c11f53390dce6cc710eaaac6a52 gcc/tree-vector-builder.h --- 69210,69224 ---- d60db07cf0bd16c97faf0fd226ba5980 gcc/tree-streamer-out.c 98d3d8c48a9b3efe58dfdde689f7c408 gcc/tree-streamer.c b054506e5b8d5ed1b8605d943ac31d12 gcc/tree-streamer.h ! 106b1b493300e6e132c1d6d7e4ae5ef6 gcc/tree-switch-conversion.c ! 8871272d8c826cfe8c7eb95defdb5324 gcc/tree-switch-conversion.h 0e5c06e7c700550800e54a795cd0dc70 gcc/tree-tailcall.c ! 00931cc1ed0d8cb5e87f75a0710db4b9 gcc/tree-vect-data-refs.c 4d8641260bf61f878bf11202f67decb6 gcc/tree-vect-generic.c ! 2a6f7fdbc16b187412e033231a86817f gcc/tree-vect-loop-manip.c ! 46b0f118ec6eda9d2c3d66e3cc547f2f gcc/tree-vect-loop.c 5d233e93322619c7c5cf16dd3fb07cf5 gcc/tree-vect-patterns.c ! bdcba7fce5b8460cdac40d74a07b0e2d gcc/tree-vect-slp.c a717083cc22a36f1f272a0ae84c73208 gcc/tree-vect-stmts.c 923de3f5927009f9e3576e15ae880ab0 gcc/tree-vector-builder.c c7ac3c11f53390dce6cc710eaaac6a52 gcc/tree-vector-builder.h *************** c7ac3c11f53390dce6cc710eaaac6a52 gcc/tr *** 69030,69036 **** 56ef90d227aaa781ba75e175b65cfa4d gcc/tree-vectorizer.h 7ca031fd7f70528a48f00daf4d1c90b5 gcc/tree-vrp.c 11bb365df114008a6fda07f3787ffb2a gcc/tree-vrp.h ! f3fa1c9c62ec60705abafab9c8f9dfc9 gcc/tree.c 1e417842f4d580fc7ca0b19e337e2a8f gcc/tree.def 6958370d7d8cae1957f60fb39f141717 gcc/tree.h a632adf0707e5662b38f91c502ebcd9c gcc/treestruct.def --- 69226,69232 ---- 56ef90d227aaa781ba75e175b65cfa4d gcc/tree-vectorizer.h 7ca031fd7f70528a48f00daf4d1c90b5 gcc/tree-vrp.c 11bb365df114008a6fda07f3787ffb2a gcc/tree-vrp.h ! 7c6fbc1c9966432579a02b2ff95c9104 gcc/tree.c 1e417842f4d580fc7ca0b19e337e2a8f gcc/tree.def 6958370d7d8cae1957f60fb39f141717 gcc/tree.h a632adf0707e5662b38f91c502ebcd9c gcc/treestruct.def *************** a6a52bec0dfb28a5226ce305047dd070 gcc/ts *** 69040,69054 **** 1b0da44572a806dd2a6edd6225e9d649 gcc/typeclass.h cde87ad44f09ec0e37f6764bc5ff918f gcc/typed-splay-tree.c 44ea2b87ca8a60a9ac0940cd5dfea729 gcc/typed-splay-tree.h ! 553683728747b3464a2b1e3d8d88fd3f gcc/ubsan.c 3770be849f3331764bb6463d76d15a92 gcc/ubsan.h 4b65f402299fd5c5fb8c8f2dff94dedc gcc/unique-ptr-tests.cc ! 4136df7c6f8785f698f41299a027ecb9 gcc/valtrack.c fdfe19949e8ebfe5f14b613f0f65cd6e gcc/valtrack.h 1ba3612847a0992a25f680cf7ce62f4d gcc/value-prof.c 6850a2f89c3044494307d034303972cc gcc/value-prof.h 81d2fc2f16729073ea312642708b81ee gcc/var-tracking.c ! b86a971f3ce8d6dac2932a12b29c2ca8 gcc/varasm.c 6f964e619afc01dea8b02e5c9e30b044 gcc/varasm.h 618cd72aea132c3e97c596aee2d00ed6 gcc/varpool.c 9639142b99476bc7eaeb8460331b0566 gcc/vec-perm-indices.c --- 69236,69250 ---- 1b0da44572a806dd2a6edd6225e9d649 gcc/typeclass.h cde87ad44f09ec0e37f6764bc5ff918f gcc/typed-splay-tree.c 44ea2b87ca8a60a9ac0940cd5dfea729 gcc/typed-splay-tree.h ! b81137ac7ce61226a5727f6111e274e4 gcc/ubsan.c 3770be849f3331764bb6463d76d15a92 gcc/ubsan.h 4b65f402299fd5c5fb8c8f2dff94dedc gcc/unique-ptr-tests.cc ! 3c5739c892ec59ad993563e405c982ce gcc/valtrack.c fdfe19949e8ebfe5f14b613f0f65cd6e gcc/valtrack.h 1ba3612847a0992a25f680cf7ce62f4d gcc/value-prof.c 6850a2f89c3044494307d034303972cc gcc/value-prof.h 81d2fc2f16729073ea312642708b81ee gcc/var-tracking.c ! 17c835f6ea27bbe76d7cba19640b9583 gcc/varasm.c 6f964e619afc01dea8b02e5c9e30b044 gcc/varasm.h 618cd72aea132c3e97c596aee2d00ed6 gcc/varpool.c 9639142b99476bc7eaeb8460331b0566 gcc/vec-perm-indices.c *************** ed35c9dc4d0b16c41b99ebe0eed61dff gcc/wi *** 69075,69085 **** f9f7c952be9b58fa5e9fc7a89cbd0c6e gcc/xcoff.h 2f034ec50b36619b6f38d5c224cb9a42 gcc/xcoffout.c b3d9467b5da1c3d00d28147a04c86dbf gcc/xcoffout.h ! 91062d6e73c04d406fa471614664f8d7 gnattools/ChangeLog aaa671ca98fa9f94bfedd0ab395c5505 gnattools/Makefile.in 8385a4d775aa1b9949c1f88488491c86 gnattools/configure 1e063bb0b806e41cc0ed23d1b7047746 gnattools/configure.ac ! d879dd4eb6ff47d4222c1566fd045d6f gotools/ChangeLog e6bbff19055ec2e8a53d3a2f4bffdeca gotools/Makefile.am 49d6c95c9b61332be4b77dbfa6c609dc gotools/Makefile.in 7e23031e2e274aaa07b61c1e8f18dc99 gotools/README --- 69271,69281 ---- f9f7c952be9b58fa5e9fc7a89cbd0c6e gcc/xcoff.h 2f034ec50b36619b6f38d5c224cb9a42 gcc/xcoffout.c b3d9467b5da1c3d00d28147a04c86dbf gcc/xcoffout.h ! a87d043fda7e3a6a9072f7ab6e64c9a4 gnattools/ChangeLog aaa671ca98fa9f94bfedd0ab395c5505 gnattools/Makefile.in 8385a4d775aa1b9949c1f88488491c86 gnattools/configure 1e063bb0b806e41cc0ed23d1b7047746 gnattools/configure.ac ! 45f11a7384b931bf5b1b3d5ca9428cb4 gotools/ChangeLog e6bbff19055ec2e8a53d3a2f4bffdeca gotools/Makefile.am 49d6c95c9b61332be4b77dbfa6c609dc gotools/Makefile.in 7e23031e2e274aaa07b61c1e8f18dc99 gotools/README *************** c4e8176c1964a5ebe0a55900f2141299 gotool *** 69090,69096 **** eb2aeb3a6cffe7b26a8f1c8a2da23dcd gotools/gofmt.1 59530bdf33659b29e73d4adb9f9f6552 include/COPYING d32239bcb673463ab874e80d47fae504 include/COPYING3 ! d3bfea635040febbcf8b8bade08f7cbc include/ChangeLog 4263432a72ff47ed8bf420208ee7eea5 include/ChangeLog-9103 a43d76108493b20da790f953f829c6a5 include/ChangeLog.jit eb7ab2f3097121a9154cc0ddecf661b2 include/ansidecl.h --- 69286,69292 ---- eb2aeb3a6cffe7b26a8f1c8a2da23dcd gotools/gofmt.1 59530bdf33659b29e73d4adb9f9f6552 include/COPYING d32239bcb673463ab874e80d47fae504 include/COPYING3 ! 127ece2d593e17439d4d4a52956291eb include/ChangeLog 4263432a72ff47ed8bf420208ee7eea5 include/ChangeLog-9103 a43d76108493b20da790f953f829c6a5 include/ChangeLog.jit eb7ab2f3097121a9154cc0ddecf661b2 include/ansidecl.h *************** b5692912b7f639c8285c77fa6ad84449 includ *** 69135,69141 **** def665a8553c0865c88d58a554d87473 include/xregex2.h 5e7c2e8aca772d2a3ac0791728781298 include/xtensa-config.h 361482dd6b5b5eb7090fff3986fba68a install-sh ! 8ca8e2ff04434d92c5a6b927a7d683fa intl/ChangeLog b1554284f4c5377bf2bb6e6c0ebbc865 intl/Makefile.in 6ec998bb4716c744bf8185e607f69301 intl/README 76ca170a525d5b84d90f0478fe788931 intl/VERSION --- 69331,69337 ---- def665a8553c0865c88d58a554d87473 include/xregex2.h 5e7c2e8aca772d2a3ac0791728781298 include/xtensa-config.h 361482dd6b5b5eb7090fff3986fba68a install-sh ! 4c65f6eff2560b8b4b894c5973ffe88e intl/ChangeLog b1554284f4c5377bf2bb6e6c0ebbc865 intl/Makefile.in 6ec998bb4716c744bf8185e607f69301 intl/README 76ca170a525d5b84d90f0478fe788931 intl/VERSION *************** d50a8c6c5b41089930accbdce767d3c0 intl/p *** 69177,69188 **** b4758a0194e3e41362b939911472ce62 intl/relocatable.c bedade7bcfc3bc5eb09a2c6844f637f3 intl/relocatable.h 43f287d082528203fc85c1d2d81bf30d intl/textdomain.c ! 600465a5d1efe11950edaef41c442398 libada/ChangeLog 2a453698f4bd6b664ee7c6be22402650 libada/Makefile.in ac7a7dbdb4599e1a98b97c82e372191e libada/configure 2509405c0c4ff558c0d8f66fa41c7e0d libada/configure.ac 46d3fe6da7a771cc2d5420c4137a6861 libatomic/.gitignore ! 99cf43d2a2fe3a4e2a67662e32894d82 libatomic/ChangeLog 8e7df66918150dad6d8320f11f4ede36 libatomic/Makefile.am 2f61e67926f726144fd98377c2671b78 libatomic/Makefile.in 6d2b5627e60376680a6923959c375266 libatomic/acinclude.m4 --- 69373,69384 ---- b4758a0194e3e41362b939911472ce62 intl/relocatable.c bedade7bcfc3bc5eb09a2c6844f637f3 intl/relocatable.h 43f287d082528203fc85c1d2d81bf30d intl/textdomain.c ! 1a0ec9d68ac14f2a8c4100c8b8d7c1cd libada/ChangeLog 2a453698f4bd6b664ee7c6be22402650 libada/Makefile.in ac7a7dbdb4599e1a98b97c82e372191e libada/configure 2509405c0c4ff558c0d8f66fa41c7e0d libada/configure.ac 46d3fe6da7a771cc2d5420c4137a6861 libatomic/.gitignore ! 863ed47f4a68236274815dde40f85f16 libatomic/ChangeLog 8e7df66918150dad6d8320f11f4ede36 libatomic/Makefile.am 2f61e67926f726144fd98377c2671b78 libatomic/Makefile.in 6d2b5627e60376680a6923959c375266 libatomic/acinclude.m4 *************** c03a072efac9b30f8f8429ac52fd246b libato *** 69268,69274 **** 8a7308fda7ed1543cb9e3be0f8e47bce libatomic/testsuite/libatomic.c/atomic-store-5.c 40618200985a15bcba64f871863da498 libatomic/testsuite/libatomic.c/c.exp 97b0c9cdfcb733664bdf4efe0f5dc449 libatomic/testsuite/libatomic.c/generic-2.c ! a99f8ac7ad157f9252796ab2780d0867 libbacktrace/ChangeLog eb3a88b53140eb234a99a4b3a55e56bf libbacktrace/ChangeLog.jit 648838959097e0a8fa1b0b9704a9ae9d libbacktrace/Makefile.am c8a69ac59470cd3f43c0d784a9d4bfde libbacktrace/Makefile.in --- 69464,69470 ---- 8a7308fda7ed1543cb9e3be0f8e47bce libatomic/testsuite/libatomic.c/atomic-store-5.c 40618200985a15bcba64f871863da498 libatomic/testsuite/libatomic.c/c.exp 97b0c9cdfcb733664bdf4efe0f5dc449 libatomic/testsuite/libatomic.c/generic-2.c ! 46d340e89ab15821c65bf33651ebbeeb libbacktrace/ChangeLog eb3a88b53140eb234a99a4b3a55e56bf libbacktrace/ChangeLog.jit 648838959097e0a8fa1b0b9704a9ae9d libbacktrace/Makefile.am c8a69ac59470cd3f43c0d784a9d4bfde libbacktrace/Makefile.in *************** f917ae4f4a8353f5f6210d4399d333f9 libbac *** 69313,69319 **** 4bcecc9e15528ac37690df80f1f37d8b libbacktrace/unknown.c cc14c4b26f0a468b4680095c43aff2c1 libbacktrace/xcoff.c 2e820a2f5f1db658ccedaaba021d985c libbacktrace/ztest.c ! 69159eeb72380727059e84e95ffbf550 libcc1/ChangeLog 5d6ff72e4864f8e82cf61288aa725e3a libcc1/Makefile.am 8a80975533399433776d66d49b69a73e libcc1/Makefile.in 951b88f5687afa4f7735d87a83007fc0 libcc1/aclocal.m4 --- 69509,69515 ---- 4bcecc9e15528ac37690df80f1f37d8b libbacktrace/unknown.c cc14c4b26f0a468b4680095c43aff2c1 libbacktrace/xcoff.c 2e820a2f5f1db658ccedaaba021d985c libbacktrace/ztest.c ! 97838809ee8c5bcb19b36c9aefbe16f8 libcc1/ChangeLog 5d6ff72e4864f8e82cf61288aa725e3a libcc1/Makefile.am 8a80975533399433776d66d49b69a73e libcc1/Makefile.in 951b88f5687afa4f7735d87a83007fc0 libcc1/aclocal.m4 *************** f6e4594f30d0958b989729eaeaf30d13 libcc1 *** 69342,69348 **** 281515e15866eb4506bbbc786f630e0f libcc1/names.hh 504f1417b07f98c5f03ba4c60a9d7a0c libcc1/rpc.hh ea9958db9e43f398aad45b61b850753a libcc1/status.hh ! fca1fb034913e3df34d797575443c703 libcpp/ChangeLog 2bd831b17997584e38305782cebe6948 libcpp/ChangeLog.jit 222dba4ab7498ff043c97003b13ec99d libcpp/Makefile.in 5f73e265652f92a8ad72a80124ac7061 libcpp/aclocal.m4 --- 69538,69544 ---- 281515e15866eb4506bbbc786f630e0f libcc1/names.hh 504f1417b07f98c5f03ba4c60a9d7a0c libcc1/rpc.hh ea9958db9e43f398aad45b61b850753a libcc1/status.hh ! b4101aa32c535f3a26b331c1fe991b6d libcpp/ChangeLog 2bd831b17997584e38305782cebe6948 libcpp/ChangeLog.jit 222dba4ab7498ff043c97003b13ec99d libcpp/Makefile.in 5f73e265652f92a8ad72a80124ac7061 libcpp/aclocal.m4 *************** a82e3eb1d8561484e9ba80fe49aaa3d2 libcpp *** 69351,69357 **** f95c591555ed352736370c7a1b6d0f98 libcpp/configure db98df9b3eb19f4fe581a917e87c5a57 libcpp/configure.ac 7b6cb6a7b1b18e5058899d7b0b6c2e29 libcpp/directives-only.c ! 0052b900a16269d3b3d79383fba2857c libcpp/directives.c 0a342f3f7b07fb4e763b209333dbb06b libcpp/errors.c 652fec5ae61d9fc04abc72e59c457305 libcpp/expr.c d043d853a1f677a273ca7a9a969dab92 libcpp/files.c --- 69547,69553 ---- f95c591555ed352736370c7a1b6d0f98 libcpp/configure db98df9b3eb19f4fe581a917e87c5a57 libcpp/configure.ac 7b6cb6a7b1b18e5058899d7b0b6c2e29 libcpp/directives-only.c ! dcc02762cb7c3729191f3df369659539 libcpp/directives.c 0a342f3f7b07fb4e763b209333dbb06b libcpp/errors.c 652fec5ae61d9fc04abc72e59c457305 libcpp/expr.c d043d853a1f677a273ca7a9a969dab92 libcpp/files.c *************** c9d2656287cb96b4e6422c5fcdaff3a6 libcpp *** 69365,69375 **** 3f3cec172b46b67803b80b8d30bd09ed libcpp/lex.c 8bf5e1013588e6cf3cbdf21bc1b0a127 libcpp/line-map.c 46a07100f95f5e354c7e25cd19d26884 libcpp/location-example.txt ! 695c6a70a79286d68e4e9c6ff64209b8 libcpp/macro.c 4d29f81731f27ee18c8643ab850311f7 libcpp/makeucnid.c 490d1e48a80412dfb3514b94e7f51775 libcpp/mkdeps.c a6e9e77c0524957faba66e24fbf3ed8a libcpp/pch.c ! 7e37db785ec47eabb8870cdaae1f82f2 libcpp/po/ChangeLog 236a7764238de3aa208e3a857c56f478 libcpp/po/be.gmo dc05c4bd3c6895e2da9141f65119fb51 libcpp/po/be.po d532399baa9e84c8ec32cbe3092fe565 libcpp/po/ca.gmo --- 69561,69571 ---- 3f3cec172b46b67803b80b8d30bd09ed libcpp/lex.c 8bf5e1013588e6cf3cbdf21bc1b0a127 libcpp/line-map.c 46a07100f95f5e354c7e25cd19d26884 libcpp/location-example.txt ! 1fd99bb4de69ce5e3b72514128643372 libcpp/macro.c 4d29f81731f27ee18c8643ab850311f7 libcpp/makeucnid.c 490d1e48a80412dfb3514b94e7f51775 libcpp/mkdeps.c a6e9e77c0524957faba66e24fbf3ed8a libcpp/pch.c ! 858a72a047a6baf5de6385f0200a5347 libcpp/po/ChangeLog 236a7764238de3aa208e3a857c56f478 libcpp/po/be.gmo dc05c4bd3c6895e2da9141f65119fb51 libcpp/po/be.po d532399baa9e84c8ec32cbe3092fe565 libcpp/po/ca.gmo *************** c862ccf544840751be474f16ed6b1963 libcpp *** 69419,69425 **** 628099a1919648a76bead35903e7b89b libcpp/ucnid.h d575d8ea34f81aa9a0af383fdbd9d2ca libcpp/ucnid.tab a6c2b3de06c7424706b16f4c206396a1 libdecnumber/.gitignore ! 12b2769b13c798923297044c6c45800b libdecnumber/ChangeLog 2bd831b17997584e38305782cebe6948 libdecnumber/ChangeLog.jit 141296edcf1deb455bf9aae8e8a8fe04 libdecnumber/Makefile.in 5f9283b55276ee7e43f1b2d807e0d85f libdecnumber/aclocal.m4 --- 69615,69621 ---- 628099a1919648a76bead35903e7b89b libcpp/ucnid.h d575d8ea34f81aa9a0af383fdbd9d2ca libcpp/ucnid.tab a6c2b3de06c7424706b16f4c206396a1 libdecnumber/.gitignore ! 4891a8c284f85ea6f5e784df6cbd87db libdecnumber/ChangeLog 2bd831b17997584e38305782cebe6948 libdecnumber/ChangeLog.jit 141296edcf1deb455bf9aae8e8a8fe04 libdecnumber/Makefile.in 5f9283b55276ee7e43f1b2d807e0d85f libdecnumber/aclocal.m4 *************** a97c47969dfc92a7666dfe3c2e1e1448 libdec *** 69482,69488 **** 74a3833f7f2ae0d269dcacb46972d1f0 libdecnumber/dpd/decimal64.c 4e08638f371cb9b372f3ec903f00fc0e libdecnumber/dpd/decimal64.h 0f6db29710e7075c2fd62bc4478b3b8d libdecnumber/dpd/decimal64Symbols.h ! d803c1032aa1ad73687fe763af4b2ab6 libffi/ChangeLog ba66fc19311348d373ec271be939a659 libffi/ChangeLog.libffi fbbc216bc25d759a72ea3e6d734af56b libffi/ChangeLog.libgcj d946d2b97454ad50a1dbfbf48923c5be libffi/ChangeLog.v1 --- 69678,69684 ---- 74a3833f7f2ae0d269dcacb46972d1f0 libdecnumber/dpd/decimal64.c 4e08638f371cb9b372f3ec903f00fc0e libdecnumber/dpd/decimal64.h 0f6db29710e7075c2fd62bc4478b3b8d libdecnumber/dpd/decimal64Symbols.h ! 8c486fa403931edb0304c269c5b8c668 libffi/ChangeLog ba66fc19311348d373ec271be939a659 libffi/ChangeLog.libffi fbbc216bc25d759a72ea3e6d734af56b libffi/ChangeLog.libgcj d946d2b97454ad50a1dbfbf48923c5be libffi/ChangeLog.v1 *************** e988aa92b714d72199c40b30edcaff89 libffi *** 69631,69637 **** 5624660cd94e07f27918e57a51a103ee libffi/src/x86/darwin64_c.c b8ca26733e457413f07cde86b4172a99 libffi/src/x86/darwin_c.c 08f53dd5901f0176d44b7b9b46420e18 libffi/src/x86/ffi.c ! 7ccf48dc3c360e9bf0a77d4e86132c4c libffi/src/x86/ffi64.c fbafaaf9d5bbdfa1191f07131de6572a libffi/src/x86/ffitarget.h c6877cb33a938d1b0ca967d17089b339 libffi/src/x86/ffiw64.c b4b878c72f2f781fe41addd69ab2d619 libffi/src/x86/internal.h --- 69827,69833 ---- 5624660cd94e07f27918e57a51a103ee libffi/src/x86/darwin64_c.c b8ca26733e457413f07cde86b4172a99 libffi/src/x86/darwin_c.c 08f53dd5901f0176d44b7b9b46420e18 libffi/src/x86/ffi.c ! 0fcee3805caea018e96ee0acdc8d617a libffi/src/x86/ffi64.c fbafaaf9d5bbdfa1191f07131de6572a libffi/src/x86/ffitarget.h c6877cb33a938d1b0ca967d17089b339 libffi/src/x86/ffiw64.c b4b878c72f2f781fe41addd69ab2d619 libffi/src/x86/internal.h *************** b1fc2a9b18683c39c78174fe71d41c9a libffi *** 69742,69747 **** --- 69938,69944 ---- 603c0f6bd65593799acb32b8720ad959 libffi/testsuite/libffi.call/nested_struct1.c 5f2439a6b772e5a891deb1cc27a720bb libffi/testsuite/libffi.call/nested_struct10.c 5cdea341282c185038f3701005139f72 libffi/testsuite/libffi.call/nested_struct11.c + 45140def5a7fff8a434158cba3d44619 libffi/testsuite/libffi.call/nested_struct12.c 3214b270fba1963541695b072f8ce30c libffi/testsuite/libffi.call/nested_struct2.c d90963b4f9d554c5db857a2d2000feb7 libffi/testsuite/libffi.call/nested_struct3.c 8dfe86c771d317f4ab02797610cc15dd libffi/testsuite/libffi.call/nested_struct4.c *************** d47c79b281339983862a8e52d8c73f0f libffi *** 69842,69850 **** 291be426192f460f6a07dfe1c96ab094 libffi/testsuite/libffi.special/special.exp 93fc3ea311b79f64004992807ce75d1e libffi/testsuite/libffi.special/unwindtest.cc 185d0795017fbbe253a13db8e34085f9 libffi/testsuite/libffi.special/unwindtest_ffi_call.cc ! 6da9e83eadde3fd408d9fe825866dc08 libgcc/ChangeLog ad1e8cb6d1e59c5bbcc931b5e56711e1 libgcc/Makefile.in ! cc02d3b1be30f2e9128b8a8e04719dee libgcc/config.host 083f194c4f87d0510383fd4156d3aaef libgcc/config.in f1f7747a29ca6adbe358faca6e9945e8 libgcc/config/aarch64/aarch64-unwind.h a604bdf629139cf288a532d9fb755410 libgcc/config/aarch64/crtfastmath.c --- 70039,70047 ---- 291be426192f460f6a07dfe1c96ab094 libffi/testsuite/libffi.special/special.exp 93fc3ea311b79f64004992807ce75d1e libffi/testsuite/libffi.special/unwindtest.cc 185d0795017fbbe253a13db8e34085f9 libffi/testsuite/libffi.special/unwindtest_ffi_call.cc ! 53e66216cb338dba7dea18607d5ee0d4 libgcc/ChangeLog ad1e8cb6d1e59c5bbcc931b5e56711e1 libgcc/Makefile.in ! edbddde3cda754b55eb13f146b235007 libgcc/config.host 083f194c4f87d0510383fd4156d3aaef libgcc/config.in f1f7747a29ca6adbe358faca6e9945e8 libgcc/config/aarch64/aarch64-unwind.h a604bdf629139cf288a532d9fb755410 libgcc/config/aarch64/crtfastmath.c *************** a604bdf629139cf288a532d9fb755410 libgcc *** 69853,69866 **** 52792d626f140ab3d5ece0bca20cf426 libgcc/config/aarch64/freebsd-unwind.h 799cdbc146aaf1aca06c4d549fede670 libgcc/config/aarch64/linux-unwind.h 1238e55629f48458a4cf9e5e912fc601 libgcc/config/aarch64/lse-init.c ! 11e2d17c5625b965ff83eec8d3f10d90 libgcc/config/aarch64/lse.S 48d4c61b7ae55655b2ede794c28f3d0d libgcc/config/aarch64/sfp-exceptions.c 2437e6164ed6f0abce51fe3b9b804331 libgcc/config/aarch64/sfp-machine.h dd0a9341e989498152d7fef6de998d23 libgcc/config/aarch64/sync-cache.c b6850ec10da68011732754786a161b1d libgcc/config/aarch64/t-aarch64 ! e5d953bbdf99e7f8654212cbf61274ca libgcc/config/aarch64/t-lse 3a7564780070d43ba461bc58622771af libgcc/config/aarch64/t-softfp ! 1afd0c2220eb4bd0184024eb2ee00db1 libgcc/config/aarch64/value-unwind.h b2520ac2c4897b18d9c49a8d81cd7c85 libgcc/config/alpha/crtfastmath.c 16d2a26a754bdd0e6e2124935185cb10 libgcc/config/alpha/libgcc-alpha-ldbl.ver 4b1d2059ff8312c121b2ece3691bc052 libgcc/config/alpha/linux-unwind.h --- 70050,70063 ---- 52792d626f140ab3d5ece0bca20cf426 libgcc/config/aarch64/freebsd-unwind.h 799cdbc146aaf1aca06c4d549fede670 libgcc/config/aarch64/linux-unwind.h 1238e55629f48458a4cf9e5e912fc601 libgcc/config/aarch64/lse-init.c ! 3da4ac25aeb49f6a3229643155c307b8 libgcc/config/aarch64/lse.S 48d4c61b7ae55655b2ede794c28f3d0d libgcc/config/aarch64/sfp-exceptions.c 2437e6164ed6f0abce51fe3b9b804331 libgcc/config/aarch64/sfp-machine.h dd0a9341e989498152d7fef6de998d23 libgcc/config/aarch64/sync-cache.c b6850ec10da68011732754786a161b1d libgcc/config/aarch64/t-aarch64 ! 7f4746d9f982a37248fabfb15d5b3859 libgcc/config/aarch64/t-lse 3a7564780070d43ba461bc58622771af libgcc/config/aarch64/t-softfp ! 4dc2f4744511d0e263cf6c1b83b000a0 libgcc/config/aarch64/value-unwind.h b2520ac2c4897b18d9c49a8d81cd7c85 libgcc/config/alpha/crtfastmath.c 16d2a26a754bdd0e6e2124935185cb10 libgcc/config/alpha/libgcc-alpha-ldbl.ver 4b1d2059ff8312c121b2ece3691bc052 libgcc/config/alpha/linux-unwind.h *************** d312eebde4e408ac216c5e1aa4ca1d04 libgcc *** 70065,70071 **** 2bb91a41d1aa616323af172f9f7a8118 libgcc/config/frv/cmovh.c dee816f5250a05eb2e5038527e2f53c7 libgcc/config/frv/cmovw.c 64fe34e55d5b4655d910072a8b954bde libgcc/config/frv/elf-lib.h ! b13ceed9e7abd07e3823b22dc930b83f libgcc/config/frv/frv-abi.h a4637a9885e4cdcdca9be79bce11ab8e libgcc/config/frv/frvbegin.c c91ecc84600d2a9929d6405d221f26bb libgcc/config/frv/frvend.c bab1824b4990aa6b389208b5b91d2add libgcc/config/frv/lib1funcs.S --- 70262,70268 ---- 2bb91a41d1aa616323af172f9f7a8118 libgcc/config/frv/cmovh.c dee816f5250a05eb2e5038527e2f53c7 libgcc/config/frv/cmovw.c 64fe34e55d5b4655d910072a8b954bde libgcc/config/frv/elf-lib.h ! f148fcb369140acdbc161ebc5aaf7658 libgcc/config/frv/frv-abi.h a4637a9885e4cdcdca9be79bce11ab8e libgcc/config/frv/frvbegin.c c91ecc84600d2a9929d6405d221f26bb libgcc/config/frv/frvend.c bab1824b4990aa6b389208b5b91d2add libgcc/config/frv/lib1funcs.S *************** e5387e909a3b29458cfdda0150e1f8f6 libgcc *** 70194,70200 **** 7f83cb5269303d6f2bc8693886cfecc2 libgcc/config/i386/t-softfp e3f37cf5fbd829324e763c71726907a2 libgcc/config/i386/t-sol2 89444a8a78bd3aa7426e9525cdd7ce25 libgcc/config/i386/t-stack-i386 ! 15eb33994a96a011816e697dd8d8e46c libgcc/config/i386/value-unwind.h 430112191710fa006c64e3f2f3c20ee5 libgcc/config/i386/w32-unwind.h ffc8a68dc02aca1cf8703f6ff29109d3 libgcc/config/ia64/__divxf3.S c3b9941b44cdc74dfc42996f7d2d765b libgcc/config/ia64/_fixtfdi.S --- 70391,70397 ---- 7f83cb5269303d6f2bc8693886cfecc2 libgcc/config/i386/t-softfp e3f37cf5fbd829324e763c71726907a2 libgcc/config/i386/t-sol2 89444a8a78bd3aa7426e9525cdd7ce25 libgcc/config/i386/t-stack-i386 ! 0456be1f82817a96462f042ad557c583 libgcc/config/i386/value-unwind.h 430112191710fa006c64e3f2f3c20ee5 libgcc/config/i386/w32-unwind.h ffc8a68dc02aca1cf8703f6ff29109d3 libgcc/config/ia64/__divxf3.S c3b9941b44cdc74dfc42996f7d2d765b libgcc/config/ia64/_fixtfdi.S *************** e708eaae233279e50aca0fb6221aa099 libgcc *** 70231,70237 **** 2499660ca1508fd7a1c0a9c4bf398faf libgcc/config/ia64/vms-unwind.h d542947a4878833a608a7a6c66107af2 libgcc/config/iq2000/lib2funcs.c 102f7dad8ad6b54434a1b8313d1e42c4 libgcc/config/iq2000/t-iq2000 ! e2c0870acfa00f7fa5511f8aa649b5f1 libgcc/config/libbid/ChangeLog e09001f7f7eb492bfa91377efc1de072 libgcc/config/libbid/_addsub_dd.c d1ea578ab0ec90a68084bc92256a875a libgcc/config/libbid/_addsub_sd.c 7ec84cbf2be3e6936ecfb988e11678b6 libgcc/config/libbid/_addsub_td.c --- 70428,70434 ---- 2499660ca1508fd7a1c0a9c4bf398faf libgcc/config/ia64/vms-unwind.h d542947a4878833a608a7a6c66107af2 libgcc/config/iq2000/lib2funcs.c 102f7dad8ad6b54434a1b8313d1e42c4 libgcc/config/iq2000/t-iq2000 ! 92475ef55f039905e5bb32d54d790db9 libgcc/config/libbid/ChangeLog e09001f7f7eb492bfa91377efc1de072 libgcc/config/libbid/_addsub_dd.c d1ea578ab0ec90a68084bc92256a875a libgcc/config/libbid/_addsub_sd.c 7ec84cbf2be3e6936ecfb988e11678b6 libgcc/config/libbid/_addsub_td.c *************** bd41c9c4e8e855126c292582197016ff libgcc *** 70772,70787 **** e1de91feb077c33534a9cc4d2fe09657 libgcc/config/pa/gthr-dce.h 12c448d35b960a5650c4ba9a5cf35e07 libgcc/config/pa/hpux-unwind.h f01c3db454b605b72d1232f39af126ab libgcc/config/pa/lib2funcs.S ! 64a6e5d5843e81a024f9afe766cc713b libgcc/config/pa/linux-atomic.c dde3935fa4561cabea432f777774f9ba libgcc/config/pa/linux-unwind.h 704fc661652e30b41dd46eddc0701597 libgcc/config/pa/milli64.S ! 8267bac5fc9e32d2e728edbc7d978b51 libgcc/config/pa/pa64-hpux-lib.h 3c5ce73389b2139807c1d2d546229737 libgcc/config/pa/quadlib.c 71c9c291204dc98b7de0ef6b19387db9 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-openbsd 4c55604fec5e632606f19c2f176f1a6c libgcc/config/pa/t-pa64 6b7616abedce76aaa866d73b08ea3a07 libgcc/config/pa/t-slibgcc-dwarf-ver --- 70969,70984 ---- e1de91feb077c33534a9cc4d2fe09657 libgcc/config/pa/gthr-dce.h 12c448d35b960a5650c4ba9a5cf35e07 libgcc/config/pa/hpux-unwind.h f01c3db454b605b72d1232f39af126ab libgcc/config/pa/lib2funcs.S ! 2c0758c5ce668f2e4d38de80e868a709 libgcc/config/pa/linux-atomic.c dde3935fa4561cabea432f777774f9ba libgcc/config/pa/linux-unwind.h 704fc661652e30b41dd46eddc0701597 libgcc/config/pa/milli64.S ! b9140920edf0abf0d25f806782e0047e libgcc/config/pa/pa64-hpux-lib.h 3c5ce73389b2139807c1d2d546229737 libgcc/config/pa/quadlib.c 71c9c291204dc98b7de0ef6b19387db9 libgcc/config/pa/stublib.c 8a3964d4f1eddb14d9260a0a72a23493 libgcc/config/pa/t-hpux 73420715a92f162a61d33bbfbe7c4dee libgcc/config/pa/t-hpux10 3e293a3e5a4bcd16fb9846c60502af9b libgcc/config/pa/t-linux ! 8b6e1d4848a895dd9e8e030f638c68bc libgcc/config/pa/t-linux64 3a7526d23d38b3c358e838a89cf3ad94 libgcc/config/pa/t-openbsd 4c55604fec5e632606f19c2f176f1a6c libgcc/config/pa/t-pa64 6b7616abedce76aaa866d73b08ea3a07 libgcc/config/pa/t-slibgcc-dwarf-ver *************** af87f07c7852b3f285999fc059f8add9 libgcc *** 71263,71269 **** 3141a3583b6db8874e874d333dde6638 libgcc/vtv_end_preinit.c 8a18f995d18c874fc01982af6acf7552 libgcc/vtv_start.c 1fc53b7e6934daf3a6708fd8ac1665a7 libgcc/vtv_start_preinit.c ! a1883ce438f769aebfb537f4ebf311e4 libgfortran/ChangeLog 9aca36338382e5b4b730e7779170b24d libgfortran/ChangeLog-2002 80d3edc880c2da0b7a2beec2e2c4f774 libgfortran/ChangeLog-2003 9f0239429993a5e64ed793eb6c55a5c1 libgfortran/ChangeLog-2004 --- 71460,71466 ---- 3141a3583b6db8874e874d333dde6638 libgcc/vtv_end_preinit.c 8a18f995d18c874fc01982af6acf7552 libgcc/vtv_start.c 1fc53b7e6934daf3a6708fd8ac1665a7 libgcc/vtv_start_preinit.c ! 24599ccb02f8d2f097377fead671ddc3 libgfortran/ChangeLog 9aca36338382e5b4b730e7779170b24d libgfortran/ChangeLog-2002 80d3edc880c2da0b7a2beec2e2c4f774 libgfortran/ChangeLog-2003 9f0239429993a5e64ed793eb6c55a5c1 libgfortran/ChangeLog-2004 *************** d3b7a61df66230a271c3032136d62aa0 libgfo *** 71948,71954 **** 81da5e31b01b7376285a87adfff940d7 libgfortran/intrinsics/link.c a5fb15c7ec76ea15d45f80d5190a5db7 libgfortran/intrinsics/move_alloc.c f91822b34847fdd809e608b8c7d3abe7 libgfortran/intrinsics/mvbits.c ! 89eb7307b38f7de7d92d72be3e65b56a libgfortran/intrinsics/pack_generic.c 9fa720bbef66c669caeea1f1b46dd06b libgfortran/intrinsics/perror.c 5c05986df2cd6ff16a02045a5c0db647 libgfortran/intrinsics/rand.c d95dfc1734926ac22d5886a61a87ebf4 libgfortran/intrinsics/random.c --- 72145,72151 ---- 81da5e31b01b7376285a87adfff940d7 libgfortran/intrinsics/link.c a5fb15c7ec76ea15d45f80d5190a5db7 libgfortran/intrinsics/move_alloc.c f91822b34847fdd809e608b8c7d3abe7 libgfortran/intrinsics/mvbits.c ! 0f79c11b8bb0c1066a2b97199fe80bc1 libgfortran/intrinsics/pack_generic.c 9fa720bbef66c669caeea1f1b46dd06b libgfortran/intrinsics/perror.c 5c05986df2cd6ff16a02045a5c0db647 libgfortran/intrinsics/rand.c d95dfc1734926ac22d5886a61a87ebf4 libgfortran/intrinsics/random.c *************** f1f0917f45d626d15a5f129fef3d81e2 libgo/ *** 76240,76246 **** 8ee949b66b618f814424a36e68df976a libgo/testsuite/gotest ead4e721beb57b319fcd7da8ddf10705 libgo/testsuite/lib/libgo.exp 6df485581d2f02246f41b5ca46f5bb5d libgo/testsuite/libgo.testmain/testmain.exp ! 934d6902903e93bd2512433983b84b59 libgomp/ChangeLog 0d55aa862aee66efdc5f8d62c94ff8fb libgomp/ChangeLog.graphite d9a2f9477fc09a75dd2d538799f491d8 libgomp/Makefile.am b8b41eee465fa52ffd96c3f358ab15c9 libgomp/Makefile.in --- 76437,76443 ---- 8ee949b66b618f814424a36e68df976a libgo/testsuite/gotest ead4e721beb57b319fcd7da8ddf10705 libgo/testsuite/lib/libgo.exp 6df485581d2f02246f41b5ca46f5bb5d libgo/testsuite/libgo.testmain/testmain.exp ! 9e7781bbcd9419ca805f0441dba8f634 libgomp/ChangeLog 0d55aa862aee66efdc5f8d62c94ff8fb libgomp/ChangeLog.graphite d9a2f9477fc09a75dd2d538799f491d8 libgomp/Makefile.am b8b41eee465fa52ffd96c3f358ab15c9 libgomp/Makefile.in *************** c9f750a5b99481943fbb0fa04832ca66 libgom *** 76256,76262 **** 6507cc5dd86ed7e2b6e288a39cb631d3 libgomp/config/darwin/plugin-suffix.h 9c194bdfaf80d63b8585e65364def02e libgomp/config/darwin/thread-stacksize.h 2af8472a2e8c11d2cf52f66cd9115696 libgomp/config/hpux/plugin-suffix.h ! e96296e0683370a9cf2831c67a729841 libgomp/config/linux/affinity.c a4977cff910529e905f4fd03f0e44858 libgomp/config/linux/alpha/futex.h 9aca5e9c8457558646a94898adbee901 libgomp/config/linux/bar.c 8b698005fec7e89b0c1f722ee6f14d05 libgomp/config/linux/bar.h --- 76453,76459 ---- 6507cc5dd86ed7e2b6e288a39cb631d3 libgomp/config/darwin/plugin-suffix.h 9c194bdfaf80d63b8585e65364def02e libgomp/config/darwin/thread-stacksize.h 2af8472a2e8c11d2cf52f66cd9115696 libgomp/config/hpux/plugin-suffix.h ! 34ac78556cd1e5fa50f4ccfc3aef1a12 libgomp/config/linux/affinity.c a4977cff910529e905f4fd03f0e44858 libgomp/config/linux/alpha/futex.h 9aca5e9c8457558646a94898adbee901 libgomp/config/linux/bar.c 8b698005fec7e89b0c1f722ee6f14d05 libgomp/config/linux/bar.h *************** d575d44b64139bab03fba2a9f3e21a26 libgom *** 76275,76281 **** f17754e12a16bb8a683ced67aff00f93 libgomp/config/linux/ptrlock.h e3f36d8b6128e663516c28d9abc1cd6f libgomp/config/linux/s390/futex.h 62512a05179c73162f573b210df29f8b libgomp/config/linux/sem.c ! 3c99d11a8f29bb5014528ac24cc4bf4d libgomp/config/linux/sem.h 66c424fa7ea179182b834ffb0b711af9 libgomp/config/linux/sparc/futex.h 20d6f1f6df77a677a707463dfd35093c libgomp/config/linux/tile/futex.h 4ba7fc8e50c1ed7a33fe146a3b27d15c libgomp/config/linux/wait.h --- 76472,76478 ---- f17754e12a16bb8a683ced67aff00f93 libgomp/config/linux/ptrlock.h e3f36d8b6128e663516c28d9abc1cd6f libgomp/config/linux/s390/futex.h 62512a05179c73162f573b210df29f8b libgomp/config/linux/sem.c ! 4aeee770d0c723aead316055b3b1df12 libgomp/config/linux/sem.h 66c424fa7ea179182b834ffb0b711af9 libgomp/config/linux/sparc/futex.h 20d6f1f6df77a677a707463dfd35093c libgomp/config/linux/tile/futex.h 4ba7fc8e50c1ed7a33fe146a3b27d15c libgomp/config/linux/wait.h *************** bb4331c4cc59998041f6d3fba93bf2e3 libgom *** 76397,76404 **** ec301483e40c415b91ec0ece951a5d71 libgomp/splay-tree.c 06e808d378029a1f66b32055a24a5a81 libgomp/splay-tree.h c8e96b8ea763e2e0d60dcd3a2ec629a4 libgomp/target.c ! f58f73ebb04b83eaacf69fabf6450cfd libgomp/task.c ! 383c432e4635d249f8951c0189183d68 libgomp/taskloop.c 61195dc42744d9b5e4e7cf65947c1ce5 libgomp/team.c 4bea35e28abd73842ec52c9bbdc77b28 libgomp/teams.c 1c270c185e477fac201df5c25a9a4098 libgomp/testsuite/Makefile.am --- 76594,76601 ---- ec301483e40c415b91ec0ece951a5d71 libgomp/splay-tree.c 06e808d378029a1f66b32055a24a5a81 libgomp/splay-tree.h c8e96b8ea763e2e0d60dcd3a2ec629a4 libgomp/target.c ! 8786bada85a8d8e288526cdd8813110c libgomp/task.c ! 7304781d76559cb35bcfe3ff477d968c libgomp/taskloop.c 61195dc42744d9b5e4e7cf65947c1ce5 libgomp/team.c 4bea35e28abd73842ec52c9bbdc77b28 libgomp/teams.c 1c270c185e477fac201df5c25a9a4098 libgomp/testsuite/Makefile.am *************** dff7a676c5c7625a109dad1fb29c317d libgom *** 76693,76698 **** --- 76890,76900 ---- 4066b4a4600721101ac384b659311782 libgomp/testsuite/libgomp.c-c++-common/pr81875.c 08611a968d3d5d8544391a554aa64d2e libgomp/testsuite/libgomp.c-c++-common/pr83046.c bbbd1b345adde5e2b11d48880c03841d libgomp/testsuite/libgomp.c-c++-common/pr93515.c + aa27b099930bc5b5e07e143f2ff6fedc libgomp/testsuite/libgomp.c-c++-common/pr94366.c + 518802c6b3749e2e9e7db739acc75fec libgomp/testsuite/libgomp.c-c++-common/reduction-1.c + 81afe6e1537b537dd7a022a01cf9c4d1 libgomp/testsuite/libgomp.c-c++-common/reduction-2.c + ef08402cdc6bc0d2353966d078dab69f libgomp/testsuite/libgomp.c-c++-common/reduction-3.c + e3846789e3ff29fff63fa3251ce13e6f libgomp/testsuite/libgomp.c-c++-common/reduction-4.c d66bb650f4953bee67dede99228fb94f libgomp/testsuite/libgomp.c-c++-common/simd-1.c 561437d7d3d7ef8ef34cb872b883ba18 libgomp/testsuite/libgomp.c-c++-common/simd-14.c cbc1c46aca10b5056dd653273e1b22d3 libgomp/testsuite/libgomp.c-c++-common/simd-15.c *************** e590f10fae9bf053ed7123777b03bf32 libgom *** 76707,76712 **** --- 76909,76915 ---- 23584c2b5e72b0f66678ce4ada7296dd libgomp/testsuite/libgomp.c-c++-common/task-reduction-12.c e4f419faa09d744436aad29d88eb43cf libgomp/testsuite/libgomp.c-c++-common/task-reduction-13.c d284915ed4a4ac417bfb2b7632453bec libgomp/testsuite/libgomp.c-c++-common/task-reduction-14.c + 9c603541ce46d78d4526034634edb381 libgomp/testsuite/libgomp.c-c++-common/task-reduction-15.c 47acc8ff8c516165766737c2f13be4cf libgomp/testsuite/libgomp.c-c++-common/task-reduction-2.c 33b998ac8605f9aab9808c883f2e85eb libgomp/testsuite/libgomp.c-c++-common/task-reduction-3.c 5ab2e1d3a94c19b612a71f802938e9d8 libgomp/testsuite/libgomp.c-c++-common/task-reduction-4.c *************** bb5f1add3b172a6350a63ac4065e26ec libgom *** 76900,76905 **** --- 77103,77112 ---- 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 *************** d3e7c403248ba696f161f0c29c1f87a6 libgom *** 77049,77054 **** --- 77256,77262 ---- 38213b90919e07d4d9f35aca2fd48cdd libgomp/testsuite/libgomp.c/task-reduction-1.c ccf79f1a3cd3d9897f6ea88c19bfbdc8 libgomp/testsuite/libgomp.c/task-reduction-2.c e25fde9ed6b03c3c743ea8cf6c8eaa3e libgomp/testsuite/libgomp.c/task-reduction-3.c + 3b961187e4321fe4d1a657f3f6963089 libgomp/testsuite/libgomp.c/task-reduction-4.c 8f3987fb26389f7b68ec00353f2b2a18 libgomp/testsuite/libgomp.c/teams-1.c 37b3daacf6336034e4ee7c938d7fc2ef libgomp/testsuite/libgomp.c/teams-2.c 8f9a5283e3b48bb452ccf9f17b6bf998 libgomp/testsuite/libgomp.c/teams-3.c *************** ca78ca2ee2a528893865330c2b0d05bc libgom *** 77868,77874 **** e8a3245c095430c8ef2413afe2ee4c48 libgomp/testsuite/libgomp.oacc-fortran/update-1.f90 3a53883f5d7397a99e94574ae6990135 libgomp/testsuite/libgomp.oacc-fortran/vector-routine.f90 c2416ae6388a09109404b7dadd83d9e4 libgomp/work.c ! ae3d1b028ad53287c588264d0dd10ea7 libhsail-rt/ChangeLog 9147b482b39962a71e580b4a8265285e libhsail-rt/Makefile.am 5a060d9a3e645ad21b36810ed27d297d libhsail-rt/Makefile.in de97a355fadb5753d182cbcf06b1b33a libhsail-rt/README --- 78076,78082 ---- e8a3245c095430c8ef2413afe2ee4c48 libgomp/testsuite/libgomp.oacc-fortran/update-1.f90 3a53883f5d7397a99e94574ae6990135 libgomp/testsuite/libgomp.oacc-fortran/vector-routine.f90 c2416ae6388a09109404b7dadd83d9e4 libgomp/work.c ! aa3653481ad1a0bc40b74e442e69fb3c libhsail-rt/ChangeLog 9147b482b39962a71e580b4a8265285e libhsail-rt/Makefile.am 5a060d9a3e645ad21b36810ed27d297d libhsail-rt/Makefile.in de97a355fadb5753d182cbcf06b1b33a libhsail-rt/README *************** f10d6eb004be00911c69df75394e3d61 libhsa *** 77895,77901 **** ef9f05873915c22cae79ef5545355353 libhsail-rt/target-config.h.in 99c2e5e712b990ee07be10f53e41f3fb libiberty/.gitignore a916467b91076e631dd8edb7424769c7 libiberty/COPYING.LIB ! f74aff136a07858656c2e01aa776e6de libiberty/ChangeLog 347c31392973de6a4872d540c1718dc1 libiberty/ChangeLog.jit 1072110de0e01a526aafb095b6560e58 libiberty/Makefile.in c68dbf7834af4281ebd84caa3fd54680 libiberty/README --- 78103,78109 ---- ef9f05873915c22cae79ef5545355353 libhsail-rt/target-config.h.in 99c2e5e712b990ee07be10f53e41f3fb libiberty/.gitignore a916467b91076e631dd8edb7424769c7 libiberty/COPYING.LIB ! 63e850422086a3363bc4034887869b65 libiberty/ChangeLog 347c31392973de6a4872d540c1718dc1 libiberty/ChangeLog.jit 1072110de0e01a526aafb095b6560e58 libiberty/Makefile.in c68dbf7834af4281ebd84caa3fd54680 libiberty/README *************** a8d96fbdcfa1956fe46b2025bca12029 libibe *** 78000,78006 **** 284bb7a096480b355b75c337086220a2 libiberty/sigsetmask.c f91b8d5d7816eef3e17ef2622beab65e libiberty/simple-object-coff.c 66c8d9ea7185b46fa442f1232a52a9d0 libiberty/simple-object-common.h ! 8404bf627c1d5d3ea470f091c24debc9 libiberty/simple-object-elf.c da5f132ac5b6c17d4a80b113fa724a27 libiberty/simple-object-mach-o.c 3648de68e0eb13c0a308c30c79366a4d libiberty/simple-object-xcoff.c 60d3bb6bb031170ed67c77dcb90c9430 libiberty/simple-object.c --- 78208,78214 ---- 284bb7a096480b355b75c337086220a2 libiberty/sigsetmask.c f91b8d5d7816eef3e17ef2622beab65e libiberty/simple-object-coff.c 66c8d9ea7185b46fa442f1232a52a9d0 libiberty/simple-object-common.h ! fc366c8ddcc7e6303415b8830cedc337 libiberty/simple-object-elf.c da5f132ac5b6c17d4a80b113fa724a27 libiberty/simple-object-mach-o.c 3648de68e0eb13c0a308c30c79366a4d libiberty/simple-object-xcoff.c 60d3bb6bb031170ed67c77dcb90c9430 libiberty/simple-object.c *************** b2c289eb14e9197dcad172f3acba12b7 libibe *** 78059,78065 **** 6f774a92661ca4a067f1691a7925524b libiberty/xstrerror.c b401cc074ea4e0b9d4099f3f76045da0 libiberty/xstrndup.c 9dc48fda00a709b3019aa09eedd3cb6c libiberty/xvasprintf.c ! ce586b23cf0b0e9810d189227ceb3088 libitm/ChangeLog 5976dc97f843f5680c4fa615f8c3b1b7 libitm/Makefile.am e52686e01bf9c75ace85d9d5d66a8f26 libitm/Makefile.in c93a1d287ee8fdbc9c0533b3ca5cffb1 libitm/aatree.cc --- 78267,78273 ---- 6f774a92661ca4a067f1691a7925524b libiberty/xstrerror.c b401cc074ea4e0b9d4099f3f76045da0 libiberty/xstrndup.c 9dc48fda00a709b3019aa09eedd3cb6c libiberty/xvasprintf.c ! 8463f874955acea44dbe95644cb1844a libitm/ChangeLog 5976dc97f843f5680c4fa615f8c3b1b7 libitm/Makefile.am e52686e01bf9c75ace85d9d5d66a8f26 libitm/Makefile.in c93a1d287ee8fdbc9c0533b3ca5cffb1 libitm/aatree.cc *************** d806946f2845368f69a6513f60b085d2 libitm *** 78141,78146 **** --- 78349,78355 ---- 91cf9385a1c485d36423dd97fa7f8ee8 libitm/testsuite/libitm.c++/eh-3.C 256c6fe0360dd29b0e0f860df34fd80f libitm/testsuite/libitm.c++/eh-4.C 78880866c8226c142c56854532c6bf03 libitm/testsuite/libitm.c++/eh-5.C + 4b3393a4ac1f5114158bc59fb8ab7f8d libitm/testsuite/libitm.c++/libstdc++-pr91488.C ff5f9bdfec617e402860345005b63f97 libitm/testsuite/libitm.c++/libstdc++-safeexc.C 122b07c4b16d0260ff244aa4b2d8f115 libitm/testsuite/libitm.c++/newdelete.C 2742ff75bdd09e5d7b7a8243faf7a139 libitm/testsuite/libitm.c++/static_ctor.C *************** b4e503ecfdccc9f13da8f73eeb6f23a9 libitm *** 78162,78168 **** ef24198422c19f99b0c41be6a16f7081 libitm/testsuite/libitm.c/txrelease.c 122a1ebf1162054c022a63be5e3b054a libitm/useraction.cc 513489f9cf00f7f1db7cdd8d19e45c7c libitm/util.cc ! ce29b335afd3a6f2b16b62d60c3b3ce6 libobjc/ChangeLog 49cbb3d12e03687aa775d9d5152c4f35 libobjc/Makefile.in c31835938c8e167ea525cd5fdaf375d9 libobjc/NXConstStr.m 6b956f327bd823041a4227f02091dee7 libobjc/Object.m --- 78371,78377 ---- ef24198422c19f99b0c41be6a16f7081 libitm/testsuite/libitm.c/txrelease.c 122a1ebf1162054c022a63be5e3b054a libitm/useraction.cc 513489f9cf00f7f1db7cdd8d19e45c7c libitm/util.cc ! 10d1f7299699f3a447c33de0d3fc0680 libobjc/ChangeLog 49cbb3d12e03687aa775d9d5152c4f35 libobjc/Makefile.in c31835938c8e167ea525cd5fdaf375d9 libobjc/NXConstStr.m 6b956f327bd823041a4227f02091dee7 libobjc/Object.m *************** ed1131608f0e1f8a6ee6813ddf861c77 libobj *** 78219,78225 **** d21209d281b7fac0c980e2e00fe20da6 libobjc/selector.c 7392129772c6d373ef507e60dd855223 libobjc/sendmsg.c 43acbcc5fb5a8b498cc7ff08057d35b1 libobjc/thr.c ! 9170f231645a2848aa3643984c89a110 liboffloadmic/ChangeLog 99e2b0817f42c602b520261f7dee183b liboffloadmic/Makefile.am 3d4335846c6486ad0e619e33a95c2b1f liboffloadmic/Makefile.in 7b741af741f39418ab3c1f0be89505e1 liboffloadmic/aclocal.m4 --- 78428,78434 ---- d21209d281b7fac0c980e2e00fe20da6 libobjc/selector.c 7392129772c6d373ef507e60dd855223 libobjc/sendmsg.c 43acbcc5fb5a8b498cc7ff08057d35b1 libobjc/thr.c ! 2103462a815b12c0a4178cca6a7ab891 liboffloadmic/ChangeLog 99e2b0817f42c602b520261f7dee183b liboffloadmic/Makefile.am 3d4335846c6486ad0e619e33a95c2b1f liboffloadmic/Makefile.in 7b741af741f39418ab3c1f0be89505e1 liboffloadmic/aclocal.m4 *************** b1def68202639bd452fb59aea3371fe4 liboff *** 78307,78313 **** 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 ! 70ee04635ab21edf45090a70d2ebe5c0 libphobos/ChangeLog da627c4c662405d686ccd633f59112a0 libphobos/Makefile.am 11ff255ada45e83558a846f1cebff64b libphobos/Makefile.in ee88c20a7744a2305503e1670f3b7889 libphobos/README.gcc --- 78516,78522 ---- 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 ! b5402c7771d81b1a0756001e51eae9bf libphobos/ChangeLog da627c4c662405d686ccd633f59112a0 libphobos/Makefile.am 11ff255ada45e83558a846f1cebff64b libphobos/Makefile.in ee88c20a7744a2305503e1670f3b7889 libphobos/README.gcc *************** dc0394cd71fd33a552e02ecc2f48d6ed libpho *** 78507,78513 **** 7d269e57453fbf5c66759925811cb477 libphobos/libdruntime/core/sys/posix/sys/select.d 0eb315fdc39e6005ed1f38c55c3ba9f8 libphobos/libdruntime/core/sys/posix/sys/shm.d 4abd60a004af72e746c03a9074278677 libphobos/libdruntime/core/sys/posix/sys/socket.d ! a433c9df93fbd800bcf4b80d6f159eb4 libphobos/libdruntime/core/sys/posix/sys/stat.d 12706ead22096708efa77378c527d30a libphobos/libdruntime/core/sys/posix/sys/statvfs.d 5adbb2d7e9b4b87012fe41121164595b libphobos/libdruntime/core/sys/posix/sys/time.d a36a73795b115b160b5bd8bff102ea3c libphobos/libdruntime/core/sys/posix/sys/ttycom.d --- 78716,78722 ---- 7d269e57453fbf5c66759925811cb477 libphobos/libdruntime/core/sys/posix/sys/select.d 0eb315fdc39e6005ed1f38c55c3ba9f8 libphobos/libdruntime/core/sys/posix/sys/shm.d 4abd60a004af72e746c03a9074278677 libphobos/libdruntime/core/sys/posix/sys/socket.d ! 1426cd4ea5d28d71317a2754442271cb libphobos/libdruntime/core/sys/posix/sys/stat.d 12706ead22096708efa77378c527d30a libphobos/libdruntime/core/sys/posix/sys/statvfs.d 5adbb2d7e9b4b87012fe41121164595b libphobos/libdruntime/core/sys/posix/sys/time.d a36a73795b115b160b5bd8bff102ea3c libphobos/libdruntime/core/sys/posix/sys/ttycom.d *************** d6b7c67683234af6a273a3d4932e52c0 libpho *** 78703,78709 **** 94e213795f0244ed44436cc14a492878 libphobos/libdruntime/core/sys/windows/winver.d 8cfe1bcb2d08a1c1050784203bc4acf8 libphobos/libdruntime/core/sys/windows/wtsapi32.d bb4907e2b3535906de488fabe923e5b2 libphobos/libdruntime/core/sys/windows/wtypes.d ! 419c04818f2b41fe57ea64a68998a7f3 libphobos/libdruntime/core/thread.d c55aca27432852889791824009fb269d libphobos/libdruntime/core/time.d 9f7991cc24708bb5b0c59949d94645ea libphobos/libdruntime/core/vararg.d 6f76ee818b90e0f22edc13f0fb8a42d4 libphobos/libdruntime/gc/bits.d --- 78912,78918 ---- 94e213795f0244ed44436cc14a492878 libphobos/libdruntime/core/sys/windows/winver.d 8cfe1bcb2d08a1c1050784203bc4acf8 libphobos/libdruntime/core/sys/windows/wtsapi32.d bb4907e2b3535906de488fabe923e5b2 libphobos/libdruntime/core/sys/windows/wtypes.d ! 6c40cfe53ae29a1dc7492a871b1c99d6 libphobos/libdruntime/core/thread.d c55aca27432852889791824009fb269d libphobos/libdruntime/core/time.d 9f7991cc24708bb5b0c59949d94645ea libphobos/libdruntime/core/vararg.d 6f76ee818b90e0f22edc13f0fb8a42d4 libphobos/libdruntime/gc/bits.d *************** b6d8db3d06c156a88503bf35e669f456 libpho *** 78720,78726 **** 38a06341bed07600bedf077c503a53fb libphobos/libdruntime/gcc/config.d.in e1dda69167cdffa33841131b15dc3659 libphobos/libdruntime/gcc/deh.d 2bade7701cbdaab62db91929f18cebdf libphobos/libdruntime/gcc/drtstuff.c ! 60edacad1c7a88c1614b34ff42ae7053 libphobos/libdruntime/gcc/emutls.d 689abd8bdfc21ee80f16f89652292895 libphobos/libdruntime/gcc/gthread.d 9af4bf5c2c8b52a13274794e31938ea4 libphobos/libdruntime/gcc/libbacktrace.d.in 00bb7394398caf6c11900ad4df88a5f7 libphobos/libdruntime/gcc/sections/android.d --- 78929,78935 ---- 38a06341bed07600bedf077c503a53fb libphobos/libdruntime/gcc/config.d.in e1dda69167cdffa33841131b15dc3659 libphobos/libdruntime/gcc/deh.d 2bade7701cbdaab62db91929f18cebdf libphobos/libdruntime/gcc/drtstuff.c ! 4dfee356b2160fb60c092cfd5e3c18ca libphobos/libdruntime/gcc/emutls.d 689abd8bdfc21ee80f16f89652292895 libphobos/libdruntime/gcc/gthread.d 9af4bf5c2c8b52a13274794e31938ea4 libphobos/libdruntime/gcc/libbacktrace.d.in 00bb7394398caf6c11900ad4df88a5f7 libphobos/libdruntime/gcc/sections/android.d *************** ac192bc4bea499b126ac4df819204ac1 libpho *** 78732,78738 **** a43e1f363e737d4159b45fc35d3e2523 libphobos/libdruntime/gcc/unwind/arm.d 7962199514160cd7c734daced7318682 libphobos/libdruntime/gcc/unwind/arm_common.d e41ee95496da259d5405f7b95b491833 libphobos/libdruntime/gcc/unwind/c6x.d ! 777da1b56d6c97b59dbc363e74478d5e libphobos/libdruntime/gcc/unwind/generic.d 4dad21737494a07f44e4f481e5f656ca libphobos/libdruntime/gcc/unwind/package.d 97576026ba93472ef4483523cc8a02f6 libphobos/libdruntime/gcc/unwind/pe.d 476c4cf790f53ec8cbe307f40f14dbed libphobos/libdruntime/gcstub/gc.d --- 78941,78947 ---- a43e1f363e737d4159b45fc35d3e2523 libphobos/libdruntime/gcc/unwind/arm.d 7962199514160cd7c734daced7318682 libphobos/libdruntime/gcc/unwind/arm_common.d e41ee95496da259d5405f7b95b491833 libphobos/libdruntime/gcc/unwind/c6x.d ! 1bcebb7164ec1c496893a889ba345a3c libphobos/libdruntime/gcc/unwind/generic.d 4dad21737494a07f44e4f481e5f656ca libphobos/libdruntime/gcc/unwind/package.d 97576026ba93472ef4483523cc8a02f6 libphobos/libdruntime/gcc/unwind/pe.d 476c4cf790f53ec8cbe307f40f14dbed libphobos/libdruntime/gcstub/gc.d *************** be293a36c3d9678d428d5ff9b4f5c5fa libpho *** 79018,79024 **** 76010271744c121fab0096a61bb8f014 libphobos/testsuite/libphobos.typeinfo/typeinfo.exp 668bf1021ddcdd98e1a3977a43a339ff libphobos/testsuite/testsuite_flags.in a916467b91076e631dd8edb7424769c7 libquadmath/COPYING.LIB ! 9184b98b1a5619c4403108db5debec35 libquadmath/ChangeLog 4696eddf264dd090e144b4849b0a6d91 libquadmath/Makefile.am 9fadb501b88c2f0e9444ac7d2a1d61f9 libquadmath/Makefile.in d9afbc1f1e04c7e461265ff9323cc6f4 libquadmath/acinclude.m4 --- 79227,79233 ---- 76010271744c121fab0096a61bb8f014 libphobos/testsuite/libphobos.typeinfo/typeinfo.exp 668bf1021ddcdd98e1a3977a43a339ff libphobos/testsuite/testsuite_flags.in a916467b91076e631dd8edb7424769c7 libquadmath/COPYING.LIB ! db11fb5d0e665c01d6653ecbc51438f4 libquadmath/ChangeLog 4696eddf264dd090e144b4849b0a6d91 libquadmath/Makefile.am 9fadb501b88c2f0e9444ac7d2a1d61f9 libquadmath/Makefile.in d9afbc1f1e04c7e461265ff9323cc6f4 libquadmath/acinclude.m4 *************** a81cc82679e80c86cfbd5575867450d0 libqua *** 79158,79164 **** af84fa5118f4adec8393614994e1c4d6 libquadmath/strtod/strtoflt128.c d15a18f7c46ba2add6148edc5b7563c0 libquadmath/strtod/tens_in_limb.c 12c73a846f7668d29de720bd79502bef libquadmath/update-quadmath.py ! 709c8e4fcc2ab22d3f0454a71e3495a9 libsanitizer/ChangeLog 0e35a2dc2727acc707a3f5ead45c8e12 libsanitizer/HOWTO_MERGE 0249c37748936faf5b1efd5789587909 libsanitizer/LICENSE.TXT 02afc6c39fa03cf9664b477a97d59d38 libsanitizer/LOCAL_PATCHES --- 79367,79373 ---- af84fa5118f4adec8393614994e1c4d6 libquadmath/strtod/strtoflt128.c d15a18f7c46ba2add6148edc5b7563c0 libquadmath/strtod/tens_in_limb.c 12c73a846f7668d29de720bd79502bef libquadmath/update-quadmath.py ! a86db4c3ebfb5bbeb8332b6e78ca372d libsanitizer/ChangeLog 0e35a2dc2727acc707a3f5ead45c8e12 libsanitizer/HOWTO_MERGE 0249c37748936faf5b1efd5789587909 libsanitizer/LICENSE.TXT 02afc6c39fa03cf9664b477a97d59d38 libsanitizer/LOCAL_PATCHES *************** a2db438d49e9555d94a2a31d7a32441e libsan *** 79199,79205 **** 8fe597490fc97fc25fa9db929f6ca90a libsanitizer/asan/asan_linux.cc d41d8cd98f00b204e9800998ecf8427e libsanitizer/asan/asan_lock.h e821fe3cc0505ad08f5fbd6d649e4509 libsanitizer/asan/asan_mac.cc ! d96abb21a74f66abf499572c5905a35f libsanitizer/asan/asan_malloc_linux.cc 6902113def880fb87cc2c0c423c653a7 libsanitizer/asan/asan_malloc_local.h db0bbb76bf00c0823936491ea488bd8b libsanitizer/asan/asan_malloc_mac.cc e55a84b4e174da521020230e3a0b57ff libsanitizer/asan/asan_malloc_win.cc --- 79408,79414 ---- 8fe597490fc97fc25fa9db929f6ca90a libsanitizer/asan/asan_linux.cc d41d8cd98f00b204e9800998ecf8427e libsanitizer/asan/asan_lock.h e821fe3cc0505ad08f5fbd6d649e4509 libsanitizer/asan/asan_mac.cc ! 65560c787da59e9719dadf2397ff6e61 libsanitizer/asan/asan_malloc_linux.cc 6902113def880fb87cc2c0c423c653a7 libsanitizer/asan/asan_malloc_local.h db0bbb76bf00c0823936491ea488bd8b libsanitizer/asan/asan_malloc_mac.cc e55a84b4e174da521020230e3a0b57ff libsanitizer/asan/asan_malloc_win.cc *************** f6100de95ef8c6e0d3776a18a9fde48f libsan *** 79375,79381 **** c39dc4f2bf2ddebf51af37247fb482db libsanitizer/sanitizer_common/sanitizer_libignore.h d3a98d954682ac9c588eb44d1e274181 libsanitizer/sanitizer_common/sanitizer_linux.cc 37d8f1d70d2b411b5b690d2d59a466d8 libsanitizer/sanitizer_common/sanitizer_linux.h ! b1ffa055068d6819ac91b8e17270caae libsanitizer/sanitizer_common/sanitizer_linux_libcdep.cc 3fb07abcc04415d320ed341ebe5bc9c4 libsanitizer/sanitizer_common/sanitizer_linux_mips64.S 67c0af5a092f80aa497749ca6e96937f libsanitizer/sanitizer_common/sanitizer_linux_s390.cc e38f20e9cf2abebb89f5f68d142cc80b libsanitizer/sanitizer_common/sanitizer_linux_x86_64.S --- 79584,79590 ---- c39dc4f2bf2ddebf51af37247fb482db libsanitizer/sanitizer_common/sanitizer_libignore.h d3a98d954682ac9c588eb44d1e274181 libsanitizer/sanitizer_common/sanitizer_linux.cc 37d8f1d70d2b411b5b690d2d59a466d8 libsanitizer/sanitizer_common/sanitizer_linux.h ! 313ba04d36974a446ec47f49a22aa250 libsanitizer/sanitizer_common/sanitizer_linux_libcdep.cc 3fb07abcc04415d320ed341ebe5bc9c4 libsanitizer/sanitizer_common/sanitizer_linux_mips64.S 67c0af5a092f80aa497749ca6e96937f libsanitizer/sanitizer_common/sanitizer_linux_s390.cc e38f20e9cf2abebb89f5f68d142cc80b libsanitizer/sanitizer_common/sanitizer_linux_x86_64.S *************** c350f0704d04dc3b949f3256f4ff936a libsan *** 79403,79409 **** 56b61ae5f649179a135e7b4ded147336 libsanitizer/sanitizer_common/sanitizer_platform_limits_solaris.h 1ab1c2512cb34fa7cadc6bf2261e9b1a libsanitizer/sanitizer_common/sanitizer_posix.cc 5911b4a3048ad8aafcdff370892db0be libsanitizer/sanitizer_common/sanitizer_posix.h ! ef3d88f06dfdbd451f689d68f300d544 libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cc 5db5281816f2dc232b2790a3822fe5e4 libsanitizer/sanitizer_common/sanitizer_printf.cc e5423441970e3bc651af8558c684aec4 libsanitizer/sanitizer_common/sanitizer_procmaps.h 4e82e7682428d56afb217406e48d827e libsanitizer/sanitizer_common/sanitizer_procmaps_bsd.cc --- 79612,79618 ---- 56b61ae5f649179a135e7b4ded147336 libsanitizer/sanitizer_common/sanitizer_platform_limits_solaris.h 1ab1c2512cb34fa7cadc6bf2261e9b1a libsanitizer/sanitizer_common/sanitizer_posix.cc 5911b4a3048ad8aafcdff370892db0be libsanitizer/sanitizer_common/sanitizer_posix.h ! 8ff82230555442e8c91b9709ebbc6645 libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cc 5db5281816f2dc232b2790a3822fe5e4 libsanitizer/sanitizer_common/sanitizer_printf.cc e5423441970e3bc651af8558c684aec4 libsanitizer/sanitizer_common/sanitizer_procmaps.h 4e82e7682428d56afb217406e48d827e libsanitizer/sanitizer_common/sanitizer_procmaps_bsd.cc *************** b490fcba1d9e0b70baffc8ce1a5c2085 libsan *** 79568,79574 **** 46e3b6415e85a8bbfc9c5ea5256eba29 libsanitizer/ubsan/ubsan_win_dll_thunk.cc a42bfadb27dcd986b87e4c05b987ec4f libsanitizer/ubsan/ubsan_win_dynamic_runtime_thunk.cc 84a8f5fe84b5ea37705699c82d3ceefc libsanitizer/ubsan/ubsan_win_weak_interception.cc ! f66767d614b2e5136698dbcf12bc9a58 libssp/ChangeLog 984b6fe21c33a4aa11a33239eba81164 libssp/Makefile.am 6159efc67a81fc0df755333b60ca43e1 libssp/Makefile.in 8539c68b9af7b02740719b1723cf0b52 libssp/aclocal.m4 --- 79777,79783 ---- 46e3b6415e85a8bbfc9c5ea5256eba29 libsanitizer/ubsan/ubsan_win_dll_thunk.cc a42bfadb27dcd986b87e4c05b987ec4f libsanitizer/ubsan/ubsan_win_dynamic_runtime_thunk.cc 84a8f5fe84b5ea37705699c82d3ceefc libsanitizer/ubsan/ubsan_win_weak_interception.cc ! 64aedabd245e8be973292779c418c723 libssp/ChangeLog 984b6fe21c33a4aa11a33239eba81164 libssp/Makefile.am 6159efc67a81fc0df755333b60ca43e1 libssp/Makefile.in 8539c68b9af7b02740719b1723cf0b52 libssp/aclocal.m4 *************** baba3a648adc99223302c44e85deca7d libssp *** 79597,79603 **** 443b5ef0da3859ef66145b58138d0bc6 libssp/strncpy-chk.c 236980868c84657cf7f5af6a9b7e2e89 libssp/vsnprintf-chk.c 1a8676d98fbe8ac8bff6649570de529b libssp/vsprintf-chk.c ! 6fbe16802901372d80faab771a87851e libstdc++-v3/ChangeLog 7aa6c40440a44fcf5ec94c066160c2f8 libstdc++-v3/ChangeLog-1998 7aff86600b6a1ed3fa87305075a92db0 libstdc++-v3/ChangeLog-1999 a6f28e8fc9bb07696a9e068b439a3a87 libstdc++-v3/ChangeLog-2000 --- 79806,79812 ---- 443b5ef0da3859ef66145b58138d0bc6 libssp/strncpy-chk.c 236980868c84657cf7f5af6a9b7e2e89 libssp/vsnprintf-chk.c 1a8676d98fbe8ac8bff6649570de529b libssp/vsprintf-chk.c ! 32ee997edaf4e0cab1d1b4c2610f9b7c libstdc++-v3/ChangeLog 7aa6c40440a44fcf5ec94c066160c2f8 libstdc++-v3/ChangeLog-1998 7aff86600b6a1ed3fa87305075a92db0 libstdc++-v3/ChangeLog-1999 a6f28e8fc9bb07696a9e068b439a3a87 libstdc++-v3/ChangeLog-2000 *************** ced62eb7e4ae82690abb361aefcea876 libstd *** 79622,79630 **** dfed1d768aff6bd27d88698c3f79aed4 libstdc++-v3/Makefile.am cd9b45698c7eca2af0e1532a92a2b2b8 libstdc++-v3/Makefile.in f372af73db4ac0ad88e43199e1f29e08 libstdc++-v3/README ! fd2417b87336dc02c9a679a6026513be libstdc++-v3/acinclude.m4 20a060d0ef805a427a0557409e785c64 libstdc++-v3/aclocal.m4 ! 442b35c24ce843f7659c27efeef15681 libstdc++-v3/config.h.in 6fda632cdcc18185f5e0591ce3f9f326 libstdc++-v3/config/abi/compatibility.h 662289c954191e4d980cf2642cad40fe libstdc++-v3/config/abi/post/aarch64-linux-gnu/baseline_symbols.txt 5020f43324169200833b3209328aab28 libstdc++-v3/config/abi/post/alpha-linux-gnu/baseline_symbols.txt --- 79831,79839 ---- dfed1d768aff6bd27d88698c3f79aed4 libstdc++-v3/Makefile.am cd9b45698c7eca2af0e1532a92a2b2b8 libstdc++-v3/Makefile.in f372af73db4ac0ad88e43199e1f29e08 libstdc++-v3/README ! 1d8938c4571517d78860ffaf73a98e3e libstdc++-v3/acinclude.m4 20a060d0ef805a427a0557409e785c64 libstdc++-v3/aclocal.m4 ! 25833fb550eda85ff41cf03427a35505 libstdc++-v3/config.h.in 6fda632cdcc18185f5e0591ce3f9f326 libstdc++-v3/config/abi/compatibility.h 662289c954191e4d980cf2642cad40fe libstdc++-v3/config/abi/post/aarch64-linux-gnu/baseline_symbols.txt 5020f43324169200833b3209328aab28 libstdc++-v3/config/abi/post/alpha-linux-gnu/baseline_symbols.txt *************** d1a75da7beac55330e8663a4e6aabc74 libstd *** 79766,79777 **** 47a479ea9c99dde27e7e7ebf68d37dfc libstdc++-v3/config/os/djgpp/ctype_base.h 3782b5c063eba248eda7d49e3408514e libstdc++-v3/config/os/djgpp/ctype_configure_char.cc 40a2dc2adf85453e76da7318fafa25c5 libstdc++-v3/config/os/djgpp/ctype_inline.h ! a0a970be5d50c1ef65eee577f9f9c8e7 libstdc++-v3/config/os/djgpp/error_constants.h 3c71b740e78443b9bfef69d5b1aa021e libstdc++-v3/config/os/djgpp/os_defines.h 67c2c2a93d1ffd200595ab2be95c1a70 libstdc++-v3/config/os/generic/ctype_base.h e8eaaa64d4c021b21aa5628e8296b821 libstdc++-v3/config/os/generic/ctype_configure_char.cc db177f0d26f6d26d4394189d3bed25cc libstdc++-v3/config/os/generic/ctype_inline.h ! 12c346ec66b6af59f130eb3da0e830f4 libstdc++-v3/config/os/generic/error_constants.h 3c188a9c0b7c64f1f94342b5c117025f libstdc++-v3/config/os/generic/os_defines.h 5b9a724ca8744a0e193a82f2ea8e9f5b libstdc++-v3/config/os/gnu-linux/arm-eabi-extra.ver 733769d86ffde48d77d5ee086e53cbd1 libstdc++-v3/config/os/gnu-linux/ctype_base.h --- 79975,79986 ---- 47a479ea9c99dde27e7e7ebf68d37dfc libstdc++-v3/config/os/djgpp/ctype_base.h 3782b5c063eba248eda7d49e3408514e libstdc++-v3/config/os/djgpp/ctype_configure_char.cc 40a2dc2adf85453e76da7318fafa25c5 libstdc++-v3/config/os/djgpp/ctype_inline.h ! 20f9a8cc8cd1f8028b435800b322fc13 libstdc++-v3/config/os/djgpp/error_constants.h 3c71b740e78443b9bfef69d5b1aa021e libstdc++-v3/config/os/djgpp/os_defines.h 67c2c2a93d1ffd200595ab2be95c1a70 libstdc++-v3/config/os/generic/ctype_base.h e8eaaa64d4c021b21aa5628e8296b821 libstdc++-v3/config/os/generic/ctype_configure_char.cc db177f0d26f6d26d4394189d3bed25cc libstdc++-v3/config/os/generic/ctype_inline.h ! 2c00a8c3f8619a0d322a4d3caf1d83f3 libstdc++-v3/config/os/generic/error_constants.h 3c188a9c0b7c64f1f94342b5c117025f libstdc++-v3/config/os/generic/os_defines.h 5b9a724ca8744a0e193a82f2ea8e9f5b libstdc++-v3/config/os/gnu-linux/arm-eabi-extra.ver 733769d86ffde48d77d5ee086e53cbd1 libstdc++-v3/config/os/gnu-linux/ctype_base.h *************** fe666dcb7d3f59d5bee84928182b84e4 libstd *** 79786,79797 **** 6a66bbab594456bd0fc80f90efa2ee2a libstdc++-v3/config/os/mingw32-w64/ctype_base.h cf43bb53f9e7ff85784cbef43079b30f libstdc++-v3/config/os/mingw32-w64/ctype_configure_char.cc 5ef35c10f74bbed0cc15b5a6cf3e6d6f libstdc++-v3/config/os/mingw32-w64/ctype_inline.h ! 77f4f2342c993de963cb75e96f77a77e libstdc++-v3/config/os/mingw32-w64/error_constants.h a29f47807fb6d04c31c23cf5ce83fcfa libstdc++-v3/config/os/mingw32-w64/os_defines.h 6a66bbab594456bd0fc80f90efa2ee2a libstdc++-v3/config/os/mingw32/ctype_base.h cf43bb53f9e7ff85784cbef43079b30f libstdc++-v3/config/os/mingw32/ctype_configure_char.cc 5ef35c10f74bbed0cc15b5a6cf3e6d6f libstdc++-v3/config/os/mingw32/ctype_inline.h ! 23af6642d115b7b2f241bb352317a6b9 libstdc++-v3/config/os/mingw32/error_constants.h 2430ac8edf88ee172dae2571f220a0d8 libstdc++-v3/config/os/mingw32/os_defines.h ee5534aebc9aa902c83315c0131c1aa9 libstdc++-v3/config/os/newlib/ctype_base.h 22f62b4dc1022140a90b409cd46c0061 libstdc++-v3/config/os/newlib/ctype_configure_char.cc --- 79995,80006 ---- 6a66bbab594456bd0fc80f90efa2ee2a libstdc++-v3/config/os/mingw32-w64/ctype_base.h cf43bb53f9e7ff85784cbef43079b30f libstdc++-v3/config/os/mingw32-w64/ctype_configure_char.cc 5ef35c10f74bbed0cc15b5a6cf3e6d6f libstdc++-v3/config/os/mingw32-w64/ctype_inline.h ! 1852aefd8462bcc631fa1059fe9b1ccb libstdc++-v3/config/os/mingw32-w64/error_constants.h a29f47807fb6d04c31c23cf5ce83fcfa libstdc++-v3/config/os/mingw32-w64/os_defines.h 6a66bbab594456bd0fc80f90efa2ee2a libstdc++-v3/config/os/mingw32/ctype_base.h cf43bb53f9e7ff85784cbef43079b30f libstdc++-v3/config/os/mingw32/ctype_configure_char.cc 5ef35c10f74bbed0cc15b5a6cf3e6d6f libstdc++-v3/config/os/mingw32/ctype_inline.h ! 5efcc533abd32a0dff340c570f7f1eb5 libstdc++-v3/config/os/mingw32/error_constants.h 2430ac8edf88ee172dae2571f220a0d8 libstdc++-v3/config/os/mingw32/os_defines.h ee5534aebc9aa902c83315c0131c1aa9 libstdc++-v3/config/os/newlib/ctype_base.h 22f62b4dc1022140a90b409cd46c0061 libstdc++-v3/config/os/newlib/ctype_configure_char.cc *************** fe666dcb7d3f59d5bee84928182b84e4 libstd *** 79817,79824 **** 6274544df634836bfd83ce5df142154f libstdc++-v3/config/os/vxworks/ctype_configure_char.cc e8c064c36ffe6f7cf6de50f5997428f9 libstdc++-v3/config/os/vxworks/ctype_inline.h 7b4a49f873dffd61d3109d92fa8290d6 libstdc++-v3/config/os/vxworks/os_defines.h ! 8fddfc414ec30a4e24ebb46808af3ded libstdc++-v3/configure ! 486afd5bb9dc107aaab77fcb5b6ba258 libstdc++-v3/configure.ac dee74944513a38ef040d42eefb8abca2 libstdc++-v3/configure.host 144730fdfd14a84d91e900b5789970b8 libstdc++-v3/crossconfig.m4 d7432ea5050081d847d55350ac1b011f libstdc++-v3/doc/Makefile.am --- 80026,80033 ---- 6274544df634836bfd83ce5df142154f libstdc++-v3/config/os/vxworks/ctype_configure_char.cc e8c064c36ffe6f7cf6de50f5997428f9 libstdc++-v3/config/os/vxworks/ctype_inline.h 7b4a49f873dffd61d3109d92fa8290d6 libstdc++-v3/config/os/vxworks/os_defines.h ! 84c14e9e8bb62cbc5619bc84dac2ce88 libstdc++-v3/configure ! 48a1b4aaab58a8c317e3e705294eaf33 libstdc++-v3/configure.ac dee74944513a38ef040d42eefb8abca2 libstdc++-v3/configure.host 144730fdfd14a84d91e900b5789970b8 libstdc++-v3/crossconfig.m4 d7432ea5050081d847d55350ac1b011f libstdc++-v3/doc/Makefile.am *************** ee599e042e0ab46c3d78dd8675b8ba7f libstd *** 79833,79839 **** edf4fe529876f5d89b6d9b73fe2569dc libstdc++-v3/doc/html/api.html fd168dc2b2d0c12b1e17b40ffec96390 libstdc++-v3/doc/html/bk02.html 47886ba7da131bf3cbf81a27cada5f6f libstdc++-v3/doc/html/bk03.html ! 2211b9b47cd9f2d47d55db52774152c9 libstdc++-v3/doc/html/faq.html 1ae70f0bf94464b036515d333fff8ab2 libstdc++-v3/doc/html/images/confdeps.png d7f63b43e9f4c39cf71de7585de522ee libstdc++-v3/doc/html/images/pbds_balls_and_bins.png 22eedc841676a98f8ae8b95131ac4d7e libstdc++-v3/doc/html/images/pbds_binary_priority_queue_int_push.png --- 80042,80048 ---- edf4fe529876f5d89b6d9b73fe2569dc libstdc++-v3/doc/html/api.html fd168dc2b2d0c12b1e17b40ffec96390 libstdc++-v3/doc/html/bk02.html 47886ba7da131bf3cbf81a27cada5f6f libstdc++-v3/doc/html/bk03.html ! f8da0f34d5632ef2fa41bc24b870c7ca libstdc++-v3/doc/html/faq.html 1ae70f0bf94464b036515d333fff8ab2 libstdc++-v3/doc/html/images/confdeps.png d7f63b43e9f4c39cf71de7585de522ee libstdc++-v3/doc/html/images/pbds_balls_and_bins.png 22eedc841676a98f8ae8b95131ac4d7e libstdc++-v3/doc/html/images/pbds_binary_priority_queue_int_push.png *************** d55e182adbf08772ec85b18d390b0dbb libstd *** 79999,80005 **** c6a5a01eabbcb2618555e19414393ba3 libstdc++-v3/doc/html/manual/source_code_style.html f875f3f4cddfe4fee6aff2308ccb4563 libstdc++-v3/doc/html/manual/source_design_notes.html f87298c8974ee33f2519348430b786ae libstdc++-v3/doc/html/manual/source_organization.html ! 70344e328f582f7ca07ccf4b92ab0a85 libstdc++-v3/doc/html/manual/status.html 9e6cce6bed38f62648e12eb77363d1fc libstdc++-v3/doc/html/manual/std_contents.html dbb5f81a9e8864374fbb835eaa4e8b0d libstdc++-v3/doc/html/manual/streambufs.html 47e6a6ef4752e7c7e3ecb2a4948a7514 libstdc++-v3/doc/html/manual/strings.html --- 80208,80214 ---- c6a5a01eabbcb2618555e19414393ba3 libstdc++-v3/doc/html/manual/source_code_style.html f875f3f4cddfe4fee6aff2308ccb4563 libstdc++-v3/doc/html/manual/source_design_notes.html f87298c8974ee33f2519348430b786ae libstdc++-v3/doc/html/manual/source_organization.html ! 5e0d7e5fe318015a8dcca1fd860d62c3 libstdc++-v3/doc/html/manual/status.html 9e6cce6bed38f62648e12eb77363d1fc libstdc++-v3/doc/html/manual/std_contents.html dbb5f81a9e8864374fbb835eaa4e8b0d libstdc++-v3/doc/html/manual/streambufs.html 47e6a6ef4752e7c7e3ecb2a4948a7514 libstdc++-v3/doc/html/manual/strings.html *************** d881fcffb799c09a28d8174ccb1326a2 libstd *** 80023,80029 **** f5a41d4f7585b850b3182fc5f4888f93 libstdc++-v3/doc/xml/book.txml 95d1335e76860d53246f3e400231ec38 libstdc++-v3/doc/xml/chapter.txml 7f8c520dc83013026c671c5c342f73e2 libstdc++-v3/doc/xml/class.txml ! 1b1212091727965bb7968b8ad8a1c502 libstdc++-v3/doc/xml/faq.xml f7459abb0d4a0265176aaada5a73bd08 libstdc++-v3/doc/xml/gnu/fdl-1.3.xml ce8b7bb016788256ca00fdec28d82bc3 libstdc++-v3/doc/xml/gnu/gpl-3.0.xml 18a6390297702ec8fd75cbcc525d2005 libstdc++-v3/doc/xml/images/confdeps.dot --- 80232,80238 ---- f5a41d4f7585b850b3182fc5f4888f93 libstdc++-v3/doc/xml/book.txml 95d1335e76860d53246f3e400231ec38 libstdc++-v3/doc/xml/chapter.txml 7f8c520dc83013026c671c5c342f73e2 libstdc++-v3/doc/xml/class.txml ! 7d8d34a0a2914fc2d055aefb1f805e97 libstdc++-v3/doc/xml/faq.xml f7459abb0d4a0265176aaada5a73bd08 libstdc++-v3/doc/xml/gnu/fdl-1.3.xml ce8b7bb016788256ca00fdec28d82bc3 libstdc++-v3/doc/xml/gnu/gpl-3.0.xml 18a6390297702ec8fd75cbcc525d2005 libstdc++-v3/doc/xml/images/confdeps.dot *************** f0323e43ff8fc1ca28dcdfae61b6cb19 libstd *** 80227,80233 **** ad13daa09172cf901cd8d01d9e35c681 libstdc++-v3/doc/xml/manual/evolution.xml 0b02d119b1665c496d206d7b14a57999 libstdc++-v3/doc/xml/manual/extensions.xml 26083dec441281888a23365de5567180 libstdc++-v3/doc/xml/manual/internals.xml ! d14b671ec1678c739cfd0319422687c8 libstdc++-v3/doc/xml/manual/intro.xml 82d01f11ebf848dc64a611a829ef5a38 libstdc++-v3/doc/xml/manual/io.xml bab548248426e0e90cdc1436ff5b87de libstdc++-v3/doc/xml/manual/iterators.xml 5d3e282d89ac0af0f7752f88466a9d39 libstdc++-v3/doc/xml/manual/locale.xml --- 80436,80442 ---- ad13daa09172cf901cd8d01d9e35c681 libstdc++-v3/doc/xml/manual/evolution.xml 0b02d119b1665c496d206d7b14a57999 libstdc++-v3/doc/xml/manual/extensions.xml 26083dec441281888a23365de5567180 libstdc++-v3/doc/xml/manual/internals.xml ! cf37abb12e16b42ac7b8b891544d2ed5 libstdc++-v3/doc/xml/manual/intro.xml 82d01f11ebf848dc64a611a829ef5a38 libstdc++-v3/doc/xml/manual/io.xml bab548248426e0e90cdc1436ff5b87de libstdc++-v3/doc/xml/manual/iterators.xml 5d3e282d89ac0af0f7752f88466a9d39 libstdc++-v3/doc/xml/manual/locale.xml *************** ea08f7b494a562d881f2355e6f194279 libstd *** 80246,80252 **** a330e1ae5d5e08b8bc1e49b7386edd01 libstdc++-v3/doc/xml/manual/status_cxx2011.xml 0b6c2139af4ccf118f07336a27d5c8cb libstdc++-v3/doc/xml/manual/status_cxx2014.xml f3a3f72ba0107617385283fc64240e33 libstdc++-v3/doc/xml/manual/status_cxx2017.xml ! 0b60b55bd6d639724fa2890a5f80bc11 libstdc++-v3/doc/xml/manual/status_cxx2020.xml 3c72998c4574690fac280c058a0db757 libstdc++-v3/doc/xml/manual/status_cxxis29124.xml 82eea38e37d35e26d98b1325caeacd38 libstdc++-v3/doc/xml/manual/status_cxxtr1.xml 8fea8786b026a0236a93c7f39e17f59f libstdc++-v3/doc/xml/manual/status_cxxtr24733.xml --- 80455,80461 ---- a330e1ae5d5e08b8bc1e49b7386edd01 libstdc++-v3/doc/xml/manual/status_cxx2011.xml 0b6c2139af4ccf118f07336a27d5c8cb libstdc++-v3/doc/xml/manual/status_cxx2014.xml f3a3f72ba0107617385283fc64240e33 libstdc++-v3/doc/xml/manual/status_cxx2017.xml ! 6d5b94700c2e27225f8df464671c3cf8 libstdc++-v3/doc/xml/manual/status_cxx2020.xml 3c72998c4574690fac280c058a0db757 libstdc++-v3/doc/xml/manual/status_cxxis29124.xml 82eea38e37d35e26d98b1325caeacd38 libstdc++-v3/doc/xml/manual/status_cxxtr1.xml 8fea8786b026a0236a93c7f39e17f59f libstdc++-v3/doc/xml/manual/status_cxxtr24733.xml *************** f50322bcc9ac2c9b71d382f81fdbd69f libstd *** 80260,80267 **** 80254a9e37f2856af5a7fecba198327a libstdc++-v3/doc/xml/spine.xml bd966b4a0df6f2a84f9770525581d45c libstdc++-v3/doc/xsl/customization.xsl.in 7bb72420e699e194cf6066457cb6d6a5 libstdc++-v3/fragment.am ! 815e48be84f74d1e7c79391153ab2c8c libstdc++-v3/include/Makefile.am ! d0e9c025fc578ccfcd73a1108810df97 libstdc++-v3/include/Makefile.in 1c80f026c3f03d8b12b95557de618ef4 libstdc++-v3/include/backward/auto_ptr.h cf3b81a8b4b4437c3efd0eb851fe7193 libstdc++-v3/include/backward/backward_warning.h 122edd98cffad4f51f2e32a63720f80b libstdc++-v3/include/backward/binders.h --- 80469,80476 ---- 80254a9e37f2856af5a7fecba198327a libstdc++-v3/doc/xml/spine.xml bd966b4a0df6f2a84f9770525581d45c libstdc++-v3/doc/xsl/customization.xsl.in 7bb72420e699e194cf6066457cb6d6a5 libstdc++-v3/fragment.am ! a451d1e0a942fb950ddd07f02bdad924 libstdc++-v3/include/Makefile.am ! 979b2beb5cd68e9147b5501b2071b3e9 libstdc++-v3/include/Makefile.in 1c80f026c3f03d8b12b95557de618ef4 libstdc++-v3/include/backward/auto_ptr.h cf3b81a8b4b4437c3efd0eb851fe7193 libstdc++-v3/include/backward/backward_warning.h 122edd98cffad4f51f2e32a63720f80b libstdc++-v3/include/backward/binders.h *************** a1a3eaa57175d3853264c0bb0865c4a9 libstd *** 80278,80289 **** f4180f8b47a66eecd3b213488fdb21e9 libstdc++-v3/include/bits/atomic_futex.h b097749baee28c1610d8b0652a75f09d libstdc++-v3/include/bits/basic_ios.h 67306549e91c5d1eb8e5e46546618132 libstdc++-v3/include/bits/basic_ios.tcc ! b869747bee1a15573002b164f5564f1e libstdc++-v3/include/bits/basic_string.h 14fe4fc16d8bc283a28bff18d6f2d2a2 libstdc++-v3/include/bits/basic_string.tcc 10a9e1a948a50cf2ef7946a010769093 libstdc++-v3/include/bits/boost_concept_check.h 90935a186da6f614cdb1d98856fad3bb libstdc++-v3/include/bits/c++0x_warning.h 811480ae641279fdd5fb329f8eb2356a libstdc++-v3/include/bits/c++config ! f4c1d2d2bd09aa5c1d0f3ea536f04822 libstdc++-v3/include/bits/char_traits.h bc6ad2ba404ac0a6426342fced42c078 libstdc++-v3/include/bits/codecvt.h de4b21ba4f0fae0ad1585cddefd68de6 libstdc++-v3/include/bits/concept_check.h 095a9ae02d1fa0a0c336a38b94b44d04 libstdc++-v3/include/bits/cpp_type_traits.h --- 80487,80498 ---- f4180f8b47a66eecd3b213488fdb21e9 libstdc++-v3/include/bits/atomic_futex.h b097749baee28c1610d8b0652a75f09d libstdc++-v3/include/bits/basic_ios.h 67306549e91c5d1eb8e5e46546618132 libstdc++-v3/include/bits/basic_ios.tcc ! 34a92429a6ac27564d02b274dee01f55 libstdc++-v3/include/bits/basic_string.h 14fe4fc16d8bc283a28bff18d6f2d2a2 libstdc++-v3/include/bits/basic_string.tcc 10a9e1a948a50cf2ef7946a010769093 libstdc++-v3/include/bits/boost_concept_check.h 90935a186da6f614cdb1d98856fad3bb libstdc++-v3/include/bits/c++0x_warning.h 811480ae641279fdd5fb329f8eb2356a libstdc++-v3/include/bits/c++config ! ebb96bf4082d0f8e393f4710df811a8a libstdc++-v3/include/bits/char_traits.h bc6ad2ba404ac0a6426342fced42c078 libstdc++-v3/include/bits/codecvt.h de4b21ba4f0fae0ad1585cddefd68de6 libstdc++-v3/include/bits/concept_check.h 095a9ae02d1fa0a0c336a38b94b44d04 libstdc++-v3/include/bits/cpp_type_traits.h *************** de4b21ba4f0fae0ad1585cddefd68de6 libstd *** 80291,80301 **** 01d23d09b2275b4f805de0fe348dd415 libstdc++-v3/include/bits/enable_special_members.h b4076dbea7349a396ad8b22897a8305d libstdc++-v3/include/bits/erase_if.h 1fb44f2d9aad5b7efcb2dad5e772d261 libstdc++-v3/include/bits/forward_list.h ! 8b2b8ba5d49a54ea97e2a6370adc7e9c libstdc++-v3/include/bits/forward_list.tcc 85f9bedbf48673eff78551a3b54dad18 libstdc++-v3/include/bits/fs_dir.h fb9af0e943ed131fda01e524ca36347a libstdc++-v3/include/bits/fs_fwd.h 122259a3335d5b578e0edb7d48ffb331 libstdc++-v3/include/bits/fs_ops.h ! 6e65f24a0ed2b6ffa24ad2d3ed6c24d0 libstdc++-v3/include/bits/fs_path.h f9b126b6fc8ff7f0617895e5010daa1f libstdc++-v3/include/bits/fstream.tcc d4d40e971f1c1bca9a12118ad7910a1b libstdc++-v3/include/bits/functexcept.h 3b88d29e6be2f4ba289944644c958447 libstdc++-v3/include/bits/functional_hash.h --- 80500,80510 ---- 01d23d09b2275b4f805de0fe348dd415 libstdc++-v3/include/bits/enable_special_members.h b4076dbea7349a396ad8b22897a8305d libstdc++-v3/include/bits/erase_if.h 1fb44f2d9aad5b7efcb2dad5e772d261 libstdc++-v3/include/bits/forward_list.h ! 8f0d69f9c59505559ca850a6be42976b libstdc++-v3/include/bits/forward_list.tcc 85f9bedbf48673eff78551a3b54dad18 libstdc++-v3/include/bits/fs_dir.h fb9af0e943ed131fda01e524ca36347a libstdc++-v3/include/bits/fs_fwd.h 122259a3335d5b578e0edb7d48ffb331 libstdc++-v3/include/bits/fs_ops.h ! dfb0162ad52fcd953351a06bca5d38f7 libstdc++-v3/include/bits/fs_path.h f9b126b6fc8ff7f0617895e5010daa1f libstdc++-v3/include/bits/fstream.tcc d4d40e971f1c1bca9a12118ad7910a1b libstdc++-v3/include/bits/functexcept.h 3b88d29e6be2f4ba289944644c958447 libstdc++-v3/include/bits/functional_hash.h *************** d7beba2aea9aaa0de3e1c6a601090ca7 libstd *** 80328,80337 **** 16d3234c6ded7ba5f8aae0dff57d906f libstdc++-v3/include/bits/ptr_traits.h 2ce8c36ed537421a9a01b30a9b086fac libstdc++-v3/include/bits/quoted_string.h b8af15d5116549408d8b74e7f92399a6 libstdc++-v3/include/bits/random.h ! 0c96833b2f0250cfdd1cd8b32c01801f libstdc++-v3/include/bits/random.tcc 891ca543cb67b925c5fe39430966617c libstdc++-v3/include/bits/range_access.h 9213d2973f90d20bff6071e6002664a8 libstdc++-v3/include/bits/refwrap.h ! b8e834fcfee4e5d6eab42029f7da13f8 libstdc++-v3/include/bits/regex.h 0f32168338c6be51f76b4ba8c06fa690 libstdc++-v3/include/bits/regex.tcc 566e67c28f48e1519f27a890948ae019 libstdc++-v3/include/bits/regex_automaton.h 2c6998f451f9596c22aceefb2956f3d7 libstdc++-v3/include/bits/regex_automaton.tcc --- 80537,80546 ---- 16d3234c6ded7ba5f8aae0dff57d906f libstdc++-v3/include/bits/ptr_traits.h 2ce8c36ed537421a9a01b30a9b086fac libstdc++-v3/include/bits/quoted_string.h b8af15d5116549408d8b74e7f92399a6 libstdc++-v3/include/bits/random.h ! 67f2bcaf4945600dd0d0d082c856a4b9 libstdc++-v3/include/bits/random.tcc 891ca543cb67b925c5fe39430966617c libstdc++-v3/include/bits/range_access.h 9213d2973f90d20bff6071e6002664a8 libstdc++-v3/include/bits/refwrap.h ! 526f4b22a342969f27e1b65d575d1b1b libstdc++-v3/include/bits/regex.h 0f32168338c6be51f76b4ba8c06fa690 libstdc++-v3/include/bits/regex.tcc 566e67c28f48e1519f27a890948ae019 libstdc++-v3/include/bits/regex_automaton.h 2c6998f451f9596c22aceefb2956f3d7 libstdc++-v3/include/bits/regex_automaton.tcc *************** df2b580df7bdb9e7c372dacc782d26ea libstd *** 80343,80351 **** a69c40dadcc9012e85653cfd6daa3e1a libstdc++-v3/include/bits/regex_executor.tcc 106b2beed25f9f7de5513b85e8414e22 libstdc++-v3/include/bits/regex_scanner.h 11558a9d22581be12829089667c819a7 libstdc++-v3/include/bits/regex_scanner.tcc ! 92b45a2424e8847693c1dbe88b62bbd2 libstdc++-v3/include/bits/shared_ptr.h e797c034b2be1bbf70c451832be0b7e5 libstdc++-v3/include/bits/shared_ptr_atomic.h ! 1733263deedfa36d980cec211a9e526a libstdc++-v3/include/bits/shared_ptr_base.h 7e04dffbaa1849ac26551b5be90d2a28 libstdc++-v3/include/bits/slice_array.h 79cfdf1b183ee0053d143e6b0fcfce98 libstdc++-v3/include/bits/specfun.h 55e377a7aaba11972e70bedb32e3b70a libstdc++-v3/include/bits/sstream.tcc --- 80552,80560 ---- a69c40dadcc9012e85653cfd6daa3e1a libstdc++-v3/include/bits/regex_executor.tcc 106b2beed25f9f7de5513b85e8414e22 libstdc++-v3/include/bits/regex_scanner.h 11558a9d22581be12829089667c819a7 libstdc++-v3/include/bits/regex_scanner.tcc ! 903525086c410ae19cc46939b84758e7 libstdc++-v3/include/bits/shared_ptr.h e797c034b2be1bbf70c451832be0b7e5 libstdc++-v3/include/bits/shared_ptr_atomic.h ! 909007f0de38941c2bf83d60d8569758 libstdc++-v3/include/bits/shared_ptr_base.h 7e04dffbaa1849ac26551b5be90d2a28 libstdc++-v3/include/bits/slice_array.h 79cfdf1b183ee0053d143e6b0fcfce98 libstdc++-v3/include/bits/specfun.h 55e377a7aaba11972e70bedb32e3b70a libstdc++-v3/include/bits/sstream.tcc *************** ab43d2ff56fec8f1245a18a655556ae8 libstd *** 80392,80398 **** ddccce49ac6ef0e25056ea07e9f93525 libstdc++-v3/include/bits/valarray_array.h 5cfd6fa77680d99946d8ffa6b59b8033 libstdc++-v3/include/bits/valarray_array.tcc b6fe1165604419e3485a422acf138549 libstdc++-v3/include/bits/valarray_before.h ! c88aa8b75a6d4cb78aac10a6f36c9417 libstdc++-v3/include/bits/vector.tcc ce4d14cdbdf1ba5a146a0517f34e514f libstdc++-v3/include/c/cassert 7ebf37b7f9f280e96ba1f3228e576762 libstdc++-v3/include/c/cctype d1cbf733a09f4477c09605de837fa70b libstdc++-v3/include/c/cerrno --- 80601,80607 ---- ddccce49ac6ef0e25056ea07e9f93525 libstdc++-v3/include/bits/valarray_array.h 5cfd6fa77680d99946d8ffa6b59b8033 libstdc++-v3/include/bits/valarray_array.tcc b6fe1165604419e3485a422acf138549 libstdc++-v3/include/bits/valarray_before.h ! f2406ad1f1ee3fc12a9213cb04610fe1 libstdc++-v3/include/bits/vector.tcc ce4d14cdbdf1ba5a146a0517f34e514f libstdc++-v3/include/c/cassert 7ebf37b7f9f280e96ba1f3228e576762 libstdc++-v3/include/c/cctype d1cbf733a09f4477c09605de837fa70b libstdc++-v3/include/c/cerrno *************** c8977ed6f0a9c5343ac42f9b337617ba libstd *** 80447,80453 **** 54babf2e41c1d594884f9383d1604ce1 libstdc++-v3/include/c_global/ciso646 87ddee333f9d74117bf0a71a3e19b494 libstdc++-v3/include/c_global/climits 4d99161546323135c4843b1179538c41 libstdc++-v3/include/c_global/clocale ! f4b7216422c35b5109134da0340565c8 libstdc++-v3/include/c_global/cmath f6e80a0bc54600e0272b25ab567458ba libstdc++-v3/include/c_global/csetjmp f94d95e7db6577d2676c49613e47fa1d libstdc++-v3/include/c_global/csignal 27b1d266ef05bb83134bc0b8d59bca3f libstdc++-v3/include/c_global/cstdalign --- 80656,80662 ---- 54babf2e41c1d594884f9383d1604ce1 libstdc++-v3/include/c_global/ciso646 87ddee333f9d74117bf0a71a3e19b494 libstdc++-v3/include/c_global/climits 4d99161546323135c4843b1179538c41 libstdc++-v3/include/c_global/clocale ! 4f3a0a5a54e7a33a47798851acf1b26d libstdc++-v3/include/c_global/cmath f6e80a0bc54600e0272b25ab567458ba libstdc++-v3/include/c_global/csetjmp f94d95e7db6577d2676c49613e47fa1d libstdc++-v3/include/c_global/csignal 27b1d266ef05bb83134bc0b8d59bca3f libstdc++-v3/include/c_global/cstdalign *************** c949907600ea94ac445a06a810e5e361 libstd *** 80521,80529 **** e1ead40b7c1c0dcf4d6e2e7715a0db58 libstdc++-v3/include/experimental/any 96551a7698e877072ba4b2270b0b5ba3 libstdc++-v3/include/experimental/array e70b5cc34cfb3914b2b0f8b18868c254 libstdc++-v3/include/experimental/bits/fs_dir.h ! 25afe4ab6ef6feffa505720bbe476ef9 libstdc++-v3/include/experimental/bits/fs_fwd.h ! c5b78130f755d3cea6dabdea67f662d0 libstdc++-v3/include/experimental/bits/fs_ops.h ! 92a05edfd05e332a5b0f314944386ed6 libstdc++-v3/include/experimental/bits/fs_path.h 741a34ab6f3a02b35e48a55f8c1d750b libstdc++-v3/include/experimental/bits/lfts_config.h f1db6717979c01f49f23ffb4f58ddf2a libstdc++-v3/include/experimental/bits/net.h db9101623bdadae06950f396c224a4f6 libstdc++-v3/include/experimental/bits/shared_ptr.h --- 80730,80738 ---- e1ead40b7c1c0dcf4d6e2e7715a0db58 libstdc++-v3/include/experimental/any 96551a7698e877072ba4b2270b0b5ba3 libstdc++-v3/include/experimental/array e70b5cc34cfb3914b2b0f8b18868c254 libstdc++-v3/include/experimental/bits/fs_dir.h ! 0e56c3a7c2eaabf223ad573fe64f7698 libstdc++-v3/include/experimental/bits/fs_fwd.h ! 1d92040d489b95a6a780c61c1890db3f libstdc++-v3/include/experimental/bits/fs_ops.h ! fa4c0f40fcdd440bd39723dcfb6c0021 libstdc++-v3/include/experimental/bits/fs_path.h 741a34ab6f3a02b35e48a55f8c1d750b libstdc++-v3/include/experimental/bits/lfts_config.h f1db6717979c01f49f23ffb4f58ddf2a libstdc++-v3/include/experimental/bits/net.h db9101623bdadae06950f396c224a4f6 libstdc++-v3/include/experimental/bits/shared_ptr.h *************** f214593d48f391baa76e0449417a0ed8 libstd *** 80568,80574 **** 95d02d266eab194ceee893f192e9bbd4 libstdc++-v3/include/ext/alloc_traits.h 5619ec700a46cac7c8e5bc79e06f5256 libstdc++-v3/include/ext/array_allocator.h 55698fbe20c5516f6f719ce3cf0072fc libstdc++-v3/include/ext/atomicity.h ! d74d1d4bf6800db1bf635a7e27e1cf4a libstdc++-v3/include/ext/bitmap_allocator.h 41921c0e3b1ce383f4d16be187bf5f0e libstdc++-v3/include/ext/cast.h b05c87947c6a1d9cad863db662cd58b5 libstdc++-v3/include/ext/cmath fde4473d3f58a5035115b1c02c6c332a libstdc++-v3/include/ext/codecvt_specializations.h --- 80777,80783 ---- 95d02d266eab194ceee893f192e9bbd4 libstdc++-v3/include/ext/alloc_traits.h 5619ec700a46cac7c8e5bc79e06f5256 libstdc++-v3/include/ext/array_allocator.h 55698fbe20c5516f6f719ce3cf0072fc libstdc++-v3/include/ext/atomicity.h ! ba416451dd17d7913c9c3a8da1cae55e libstdc++-v3/include/ext/bitmap_allocator.h 41921c0e3b1ce383f4d16be187bf5f0e libstdc++-v3/include/ext/cast.h b05c87947c6a1d9cad863db662cd58b5 libstdc++-v3/include/ext/cmath fde4473d3f58a5035115b1c02c6c332a libstdc++-v3/include/ext/codecvt_specializations.h *************** b3b18b3eb06913f91e5fa165b7e050c4 libstd *** 80834,80840 **** 2629c3a07b184dcbea5f5e1c5b00e628 libstdc++-v3/include/ext/random.tcc 611a2351face37be89f940c91ea8435b libstdc++-v3/include/ext/rb_tree 25ed3c95c8c0a1873426691d5f79a7d0 libstdc++-v3/include/ext/rc_string_base.h ! 26b83e844a850a3d29f5fb24777f6949 libstdc++-v3/include/ext/rope 02a7367cc039948a520d5b1682434b9b libstdc++-v3/include/ext/ropeimpl.h d17714435e93f99450ef74beb5a19bc3 libstdc++-v3/include/ext/slist 2a21a2b3adde24bb920327d8e20f2134 libstdc++-v3/include/ext/sso_string_base.h --- 81043,81049 ---- 2629c3a07b184dcbea5f5e1c5b00e628 libstdc++-v3/include/ext/random.tcc 611a2351face37be89f940c91ea8435b libstdc++-v3/include/ext/rb_tree 25ed3c95c8c0a1873426691d5f79a7d0 libstdc++-v3/include/ext/rc_string_base.h ! 0a650023ca8f835e5cf1e58ca25953aa libstdc++-v3/include/ext/rope 02a7367cc039948a520d5b1682434b9b libstdc++-v3/include/ext/ropeimpl.h d17714435e93f99450ef74beb5a19bc3 libstdc++-v3/include/ext/slist 2a21a2b3adde24bb920327d8e20f2134 libstdc++-v3/include/ext/sso_string_base.h *************** d17714435e93f99450ef74beb5a19bc3 libstd *** 80842,80848 **** 32b1a3b78ee51e003f9b7e9307438f4d libstdc++-v3/include/ext/stdio_sync_filebuf.h c0a874eb184b06ab6d09c09d7171848d libstdc++-v3/include/ext/string_conversions.h d9a14dce55c9998e0fcbf03bae8ca03d libstdc++-v3/include/ext/throw_allocator.h ! 5d1b165ce5b9f5faab1d265a86be68fa libstdc++-v3/include/ext/type_traits.h d9a2d766a9365643b093dcdaa821ae54 libstdc++-v3/include/ext/typelist.h 5364fd97a68cd78b273950f91e2d149a libstdc++-v3/include/ext/vstring.h f3d9d8587994c4f40ad2a33dbd65da35 libstdc++-v3/include/ext/vstring.tcc --- 81051,81057 ---- 32b1a3b78ee51e003f9b7e9307438f4d libstdc++-v3/include/ext/stdio_sync_filebuf.h c0a874eb184b06ab6d09c09d7171848d libstdc++-v3/include/ext/string_conversions.h d9a14dce55c9998e0fcbf03bae8ca03d libstdc++-v3/include/ext/throw_allocator.h ! afc5878c60a2c46bcf96099ffc866433 libstdc++-v3/include/ext/type_traits.h d9a2d766a9365643b093dcdaa821ae54 libstdc++-v3/include/ext/typelist.h 5364fd97a68cd78b273950f91e2d149a libstdc++-v3/include/ext/vstring.h f3d9d8587994c4f40ad2a33dbd65da35 libstdc++-v3/include/ext/vstring.tcc *************** e82fbfc9e96c43ba5afca7b9a56b2b54 libstd *** 80949,80955 **** 503abd4e9cf8d72bdacde6ea05362556 libstdc++-v3/include/pstl/unseq_backend_simd.h 6252c95ec128123051be8b56ec370f2e libstdc++-v3/include/pstl/utils.h 69fdd8ef7fd3095846bce082313641b4 libstdc++-v3/include/std/algorithm ! cc19b3b1836fcd67af8109d4f051a681 libstdc++-v3/include/std/any 9c95de8ed8f9fb8b520d4b044cc8cc95 libstdc++-v3/include/std/array 0e26e5d8cd1a307040aedcf34cf37faa libstdc++-v3/include/std/atomic f127a103f44adaa65e35194cd6b618b8 libstdc++-v3/include/std/bit --- 81158,81164 ---- 503abd4e9cf8d72bdacde6ea05362556 libstdc++-v3/include/pstl/unseq_backend_simd.h 6252c95ec128123051be8b56ec370f2e libstdc++-v3/include/pstl/utils.h 69fdd8ef7fd3095846bce082313641b4 libstdc++-v3/include/std/algorithm ! 1062d9e2ef42156f2a3688a370cab410 libstdc++-v3/include/std/any 9c95de8ed8f9fb8b520d4b044cc8cc95 libstdc++-v3/include/std/array 0e26e5d8cd1a307040aedcf34cf37faa libstdc++-v3/include/std/atomic f127a103f44adaa65e35194cd6b618b8 libstdc++-v3/include/std/bit *************** b0a390471b8008abda2ef17a4670c389 libstd *** 80979,80986 **** 5b27535802e337e721c264ef19db368a libstdc++-v3/include/std/memory c71f016571d4fe4365a8dda83cdebda4 libstdc++-v3/include/std/memory_resource 439d935b7b235818964a0c2374d29223 libstdc++-v3/include/std/mutex ! 9c421c105d272c16683f26c0ddd207bd libstdc++-v3/include/std/numeric ! f2c2315846427ddce9a56b94863068c5 libstdc++-v3/include/std/optional e72fd3d41e39c6f765882519723af8ff libstdc++-v3/include/std/ostream 39fcb44dab41f9aa0bef997a251c4e29 libstdc++-v3/include/std/queue 7179e8e7f9462f6e06ebeb7f3db836fd libstdc++-v3/include/std/random --- 81188,81195 ---- 5b27535802e337e721c264ef19db368a libstdc++-v3/include/std/memory c71f016571d4fe4365a8dda83cdebda4 libstdc++-v3/include/std/memory_resource 439d935b7b235818964a0c2374d29223 libstdc++-v3/include/std/mutex ! 0427d1f056d5ed30417c01e9f29ae815 libstdc++-v3/include/std/numeric ! c3e17ce067c867075bc3277bde88f6c0 libstdc++-v3/include/std/optional e72fd3d41e39c6f765882519723af8ff libstdc++-v3/include/std/ostream 39fcb44dab41f9aa0bef997a251c4e29 libstdc++-v3/include/std/queue 7179e8e7f9462f6e06ebeb7f3db836fd libstdc++-v3/include/std/random *************** e88155ade2ad94f65eec7e574273b83d libstd *** 81003,81010 **** 6619c56f7566124bd6fece25a47e7a15 libstdc++-v3/include/std/unordered_map 978751cff467ba2c2f5c762a9254abaa libstdc++-v3/include/std/unordered_set 394b1cb0cafd891797ad990095eb4df0 libstdc++-v3/include/std/utility ! a3e0c3d8c7aca6e879c154c6a956eb28 libstdc++-v3/include/std/valarray ! 8ea119dc90e94cd306afac00143014c3 libstdc++-v3/include/std/variant 0568dd5e1aff64416ec4590d99ca0d70 libstdc++-v3/include/std/vector ac8b3fd623e7e2579e5ba03e088db132 libstdc++-v3/include/std/version 8356854073cfb6742cd411edadb59a90 libstdc++-v3/include/tr1/array --- 81212,81219 ---- 6619c56f7566124bd6fece25a47e7a15 libstdc++-v3/include/std/unordered_map 978751cff467ba2c2f5c762a9254abaa libstdc++-v3/include/std/unordered_set 394b1cb0cafd891797ad990095eb4df0 libstdc++-v3/include/std/utility ! ea276e4a88df82b0b3b7ee6363e7ec69 libstdc++-v3/include/std/valarray ! 3739e2ed5062685e4f56fb8399660f15 libstdc++-v3/include/std/variant 0568dd5e1aff64416ec4590d99ca0d70 libstdc++-v3/include/std/vector ac8b3fd623e7e2579e5ba03e088db132 libstdc++-v3/include/std/version 8356854073cfb6742cd411edadb59a90 libstdc++-v3/include/tr1/array *************** af5f7fe59221263c7a4474d3a54bcf86 libstd *** 81075,81082 **** 677e0aa0c56338f039b62ab64caba644 libstdc++-v3/include/tr2/dynamic_bitset.tcc 901a73bc94b0e3a6bebe72a24788814f libstdc++-v3/include/tr2/ratio d4508ff93e006ae962b6d53fc1c6f551 libstdc++-v3/include/tr2/type_traits ! e3f65be86f108bbcebb50013dfce68f0 libstdc++-v3/libsupc++/Makefile.am ! 1e68d026f4eada89bf4c94ba0198ec82 libstdc++-v3/libsupc++/Makefile.in ac7b6f4f997ff342c886a74b70bebf6b libstdc++-v3/libsupc++/array_type_info.cc ab2791d9601f34e073bcd21a655a1aba libstdc++-v3/libsupc++/atexit_arm.cc 504cc2813b9b2a8b513a4a5058b44924 libstdc++-v3/libsupc++/atexit_thread.cc --- 81284,81291 ---- 677e0aa0c56338f039b62ab64caba644 libstdc++-v3/include/tr2/dynamic_bitset.tcc 901a73bc94b0e3a6bebe72a24788814f libstdc++-v3/include/tr2/ratio d4508ff93e006ae962b6d53fc1c6f551 libstdc++-v3/include/tr2/type_traits ! 761b893d3126ed93f19f811d15a017f7 libstdc++-v3/libsupc++/Makefile.am ! 02123a6359a30371b820df77e17c17d6 libstdc++-v3/libsupc++/Makefile.in ac7b6f4f997ff342c886a74b70bebf6b libstdc++-v3/libsupc++/array_type_info.cc ab2791d9601f34e073bcd21a655a1aba libstdc++-v3/libsupc++/atexit_arm.cc 504cc2813b9b2a8b513a4a5058b44924 libstdc++-v3/libsupc++/atexit_thread.cc *************** bcbb791c143f4fb84054b9046d3a88b4 libstd *** 81124,81130 **** 05310d07ba672388a73ee9791c521467 libstdc++-v3/libsupc++/exception bfba69ab125e212d61237524c87022d0 libstdc++-v3/libsupc++/exception.h 52f8c189491e2323e33e80f72e3d94fe libstdc++-v3/libsupc++/exception_defines.h ! ad32556413cf4ca6a852273de62d0a18 libstdc++-v3/libsupc++/exception_ptr.h d2367457a61b5db1690dec909e723970 libstdc++-v3/libsupc++/function_type_info.cc 41d6987dcd90d16fa7a901bb84143254 libstdc++-v3/libsupc++/fundamental_type_info.cc 20b0bd1bad9616ed0af96d2995b74fa1 libstdc++-v3/libsupc++/guard.cc --- 81333,81339 ---- 05310d07ba672388a73ee9791c521467 libstdc++-v3/libsupc++/exception bfba69ab125e212d61237524c87022d0 libstdc++-v3/libsupc++/exception.h 52f8c189491e2323e33e80f72e3d94fe libstdc++-v3/libsupc++/exception_defines.h ! f408b89bb0a07abc82d6759424505059 libstdc++-v3/libsupc++/exception_ptr.h d2367457a61b5db1690dec909e723970 libstdc++-v3/libsupc++/function_type_info.cc 41d6987dcd90d16fa7a901bb84143254 libstdc++-v3/libsupc++/fundamental_type_info.cc 20b0bd1bad9616ed0af96d2995b74fa1 libstdc++-v3/libsupc++/guard.cc *************** c1f0ee946b29e64a2a38b8dfe1094ca9 libstd *** 81166,81177 **** 8933d02616d7d164ba8dc984f63c23b5 libstdc++-v3/po/fr.po 171e4fd822e6f207a80fdadb9d3864ec libstdc++-v3/po/libstdc++.pot a295583f97671a8f02c8489bcb120c6c libstdc++-v3/po/string_literals.cc ! c7c25b3d01a8983faa029f2770c85334 libstdc++-v3/python/Makefile.am ! 90cafd110caf008d3d634b0a8962e979 libstdc++-v3/python/Makefile.in c5aa239d148e0ec8118110bbf0dc9c50 libstdc++-v3/python/hook.in 68b329da9893e34099c7d8ad5cb9c940 libstdc++-v3/python/libstdcxx/__init__.py c091eab0af8aaea90c5da6e2b3bbd282 libstdc++-v3/python/libstdcxx/v6/__init__.py ! 3edf9293cf75d4d23ec80eaaab333d70 libstdc++-v3/python/libstdcxx/v6/printers.py 7f88188428746f393aecb88137f09de3 libstdc++-v3/python/libstdcxx/v6/xmethods.py cdac7363b91e7d57b85f7b560f62f033 libstdc++-v3/scripts/check_compile 135cc633b60b1fe91bcc3ea62a5ff845 libstdc++-v3/scripts/check_performance --- 81375,81386 ---- 8933d02616d7d164ba8dc984f63c23b5 libstdc++-v3/po/fr.po 171e4fd822e6f207a80fdadb9d3864ec libstdc++-v3/po/libstdc++.pot a295583f97671a8f02c8489bcb120c6c libstdc++-v3/po/string_literals.cc ! 88b20925b02cd806a850428881bf001b libstdc++-v3/python/Makefile.am ! 9dcb851ce36f6684fe10395a31a81e75 libstdc++-v3/python/Makefile.in c5aa239d148e0ec8118110bbf0dc9c50 libstdc++-v3/python/hook.in 68b329da9893e34099c7d8ad5cb9c940 libstdc++-v3/python/libstdcxx/__init__.py c091eab0af8aaea90c5da6e2b3bbd282 libstdc++-v3/python/libstdcxx/v6/__init__.py ! 28425438768ec3f6f9e06bbcbefcbd57 libstdc++-v3/python/libstdcxx/v6/printers.py 7f88188428746f393aecb88137f09de3 libstdc++-v3/python/libstdcxx/v6/xmethods.py cdac7363b91e7d57b85f7b560f62f033 libstdc++-v3/scripts/check_compile 135cc633b60b1fe91bcc3ea62a5ff845 libstdc++-v3/scripts/check_performance *************** ef6654816b7cec2ff88110c20573c13e libstd *** 81241,81247 **** ea38af6d097087c55225028a7b728a3b libstdc++-v3/src/c++11/streambuf-inst.cc c3bcb28714f6b546876d596b206b2d29 libstdc++-v3/src/c++11/string-inst.cc 866076bf1a61bf0954ea884473dc6656 libstdc++-v3/src/c++11/string-io-inst.cc ! a31825cedf92d5f6f047df27bbeed88d libstdc++-v3/src/c++11/system_error.cc b6fede0700e4b27157694a81693dd846 libstdc++-v3/src/c++11/thread.cc 520973925d3292b4b27064ae53c3a24e libstdc++-v3/src/c++11/wlocale-inst.cc 3ae3ed6d3e9d07c4a63783df76a312e8 libstdc++-v3/src/c++11/wstring-inst.cc --- 81450,81456 ---- ea38af6d097087c55225028a7b728a3b libstdc++-v3/src/c++11/streambuf-inst.cc c3bcb28714f6b546876d596b206b2d29 libstdc++-v3/src/c++11/string-inst.cc 866076bf1a61bf0954ea884473dc6656 libstdc++-v3/src/c++11/string-io-inst.cc ! e6943e5671d24c1a217ef8b9d2d526fb libstdc++-v3/src/c++11/system_error.cc b6fede0700e4b27157694a81693dd846 libstdc++-v3/src/c++11/thread.cc 520973925d3292b4b27064ae53c3a24e libstdc++-v3/src/c++11/wlocale-inst.cc 3ae3ed6d3e9d07c4a63783df76a312e8 libstdc++-v3/src/c++11/wstring-inst.cc *************** cdb42d548fb68dcc8d8b2b19f4e3b838 libstd *** 81254,81266 **** 9dd26b0a968f9d1f3ad03241a9479a36 libstdc++-v3/src/c++17/cow-string-inst.cc 21e22ff1ddec6a91c7b379d6f6398649 libstdc++-v3/src/c++17/default_resource.h 58f39c20539af81f584afc701ee26db6 libstdc++-v3/src/c++17/fs_dir.cc ! 543b431ae24e391beb1f91c71e939d4f libstdc++-v3/src/c++17/fs_ops.cc 5b3f1c80a13b22be9b4158860b18ad7d libstdc++-v3/src/c++17/fs_path.cc 8ddbb742770fa3abd0d75b2124bcec0f libstdc++-v3/src/c++17/memory_resource.cc 1af5792e5d30c803b2b43f569aa2009b libstdc++-v3/src/c++17/ostream-inst.cc 03c3e39c0074fb9169a185b2a6545476 libstdc++-v3/src/c++17/string-inst.cc ! 8d282274e0b6d23e9542665403044445 libstdc++-v3/src/c++98/Makefile.am ! a2fd7de992c4399521b32730e2b35e41 libstdc++-v3/src/c++98/Makefile.in 1d9f314d0aed319a9768431520e7a60a libstdc++-v3/src/c++98/allocator-inst.cc 9c8e8e64c2b736cdbe16d31eebf81a02 libstdc++-v3/src/c++98/bitmap_allocator.cc 79bbe41aacab8eeed174625506d00ac2 libstdc++-v3/src/c++98/codecvt.cc --- 81463,81475 ---- 9dd26b0a968f9d1f3ad03241a9479a36 libstdc++-v3/src/c++17/cow-string-inst.cc 21e22ff1ddec6a91c7b379d6f6398649 libstdc++-v3/src/c++17/default_resource.h 58f39c20539af81f584afc701ee26db6 libstdc++-v3/src/c++17/fs_dir.cc ! cf45f37f09a086bd1a66563720a5c446 libstdc++-v3/src/c++17/fs_ops.cc 5b3f1c80a13b22be9b4158860b18ad7d libstdc++-v3/src/c++17/fs_path.cc 8ddbb742770fa3abd0d75b2124bcec0f libstdc++-v3/src/c++17/memory_resource.cc 1af5792e5d30c803b2b43f569aa2009b libstdc++-v3/src/c++17/ostream-inst.cc 03c3e39c0074fb9169a185b2a6545476 libstdc++-v3/src/c++17/string-inst.cc ! b6211094c20ef377ca80c8de951b1e90 libstdc++-v3/src/c++98/Makefile.am ! 0044dc600c3a67a9ebacb3a5e100556f libstdc++-v3/src/c++98/Makefile.in 1d9f314d0aed319a9768431520e7a60a libstdc++-v3/src/c++98/allocator-inst.cc 9c8e8e64c2b736cdbe16d31eebf81a02 libstdc++-v3/src/c++98/bitmap_allocator.cc 79bbe41aacab8eeed174625506d00ac2 libstdc++-v3/src/c++98/codecvt.cc *************** ac77507691a841d710049cb24b2ed527 libstd *** 81309,81318 **** 746350f60a41006a251d4c08b333abc1 libstdc++-v3/src/filesystem/dir-common.h 5ed70a01f5260b961f0323c7dd71003c libstdc++-v3/src/filesystem/dir.cc d046a255bbcecdcf50505c387b2fb11e libstdc++-v3/src/filesystem/ops-common.h ! 2b9f0924a812195988734d03daab0139 libstdc++-v3/src/filesystem/ops.cc 8061bbd7c2c95ce6c0a1e524ec6cf1f1 libstdc++-v3/src/filesystem/path.cc d49521ccf869845cbde641d81c74b920 libstdc++-v3/src/shared/hashtable-aux.cc e9b48a79435ee0015728938dfbe34881 libstdc++-v3/testsuite/17_intro/freestanding.cc 2ba7636ae6c959d3f7fc9d610c6dc89a libstdc++-v3/testsuite/17_intro/headers/c++1998/49745.cc 1f447794088e0327af4aeb5ea0b26c63 libstdc++-v3/testsuite/17_intro/headers/c++1998/all.cc 55176858e819f268860911f464d6a0e7 libstdc++-v3/testsuite/17_intro/headers/c++1998/all_attributes.cc --- 81518,81528 ---- 746350f60a41006a251d4c08b333abc1 libstdc++-v3/src/filesystem/dir-common.h 5ed70a01f5260b961f0323c7dd71003c libstdc++-v3/src/filesystem/dir.cc d046a255bbcecdcf50505c387b2fb11e libstdc++-v3/src/filesystem/ops-common.h ! f58a24d933ec5853f49b7824e632df43 libstdc++-v3/src/filesystem/ops.cc 8061bbd7c2c95ce6c0a1e524ec6cf1f1 libstdc++-v3/src/filesystem/path.cc d49521ccf869845cbde641d81c74b920 libstdc++-v3/src/shared/hashtable-aux.cc e9b48a79435ee0015728938dfbe34881 libstdc++-v3/testsuite/17_intro/freestanding.cc + d5df5ddc3b7c5dba2e687798eaa28551 libstdc++-v3/testsuite/17_intro/headers/c++1998/103650.cc 2ba7636ae6c959d3f7fc9d610c6dc89a libstdc++-v3/testsuite/17_intro/headers/c++1998/49745.cc 1f447794088e0327af4aeb5ea0b26c63 libstdc++-v3/testsuite/17_intro/headers/c++1998/all.cc 55176858e819f268860911f464d6a0e7 libstdc++-v3/testsuite/17_intro/headers/c++1998/all_attributes.cc *************** c2866a9d13f05843d9a92c25d5bde897 libstd *** 81392,81402 **** --- 81602,81614 ---- e50bf325e8f8c0c19a68ceb14eb7bd70 libstdc++-v3/testsuite/18_support/destroying_delete.cc aaf944d9470af472381877fb0aa9a1b5 libstdc++-v3/testsuite/18_support/exception/38732.cc 348e19e7ab28e75f23a2462bc0776e9e libstdc++-v3/testsuite/18_support/exception/what.cc + 8a3e4fc86620d59634749ffecd317237 libstdc++-v3/testsuite/18_support/exception_ptr/103630.cc 484ab5e6b32ddd822cbeb8d403d504cf libstdc++-v3/testsuite/18_support/exception_ptr/40296.cc 387be8c9d8419e790a70f0b069b335b7 libstdc++-v3/testsuite/18_support/exception_ptr/60612-terminate.cc 9b5e6bad37d9bee6c4ab3311246bd519 libstdc++-v3/testsuite/18_support/exception_ptr/60612-unexpected.cc 1d3b668ab2f650d4bbdf6a8d34996790 libstdc++-v3/testsuite/18_support/exception_ptr/62258.cc 446abb59e06fcc1cebb65d37038f652e libstdc++-v3/testsuite/18_support/exception_ptr/64241.cc + 8907da30a344e71f1227eec1fae72f2b libstdc++-v3/testsuite/18_support/exception_ptr/96657.cc 08ad6ab9c1c5de54c13ed1e4dc64bf0f libstdc++-v3/testsuite/18_support/exception_ptr/current_exception.cc d0f3b25b4e6f0141eec7761bdfaba47f libstdc++-v3/testsuite/18_support/exception_ptr/lifespan.cc 767608e41ed9e0098139ee6368467531 libstdc++-v3/testsuite/18_support/exception_ptr/make_exception_ptr.cc *************** b850534b7ba183c266ec7b4a78ba7f97 libstd *** 81496,81501 **** --- 81708,81714 ---- 20ba87f3bcb60ea7b0cdd2edbc4e0516 libstdc++-v3/testsuite/18_support/uncaught_exception/14026.cc 1d43baa931d41dec7c53bf5df2ef5c36 libstdc++-v3/testsuite/18_support/uncaught_exceptions/uncaught_exceptions.cc 72def1e3d925b1921045ef0ef999b2aa libstdc++-v3/testsuite/18_support/unexpected_handler.cc + e76078fa52225514dc89f9b1116c07ff libstdc++-v3/testsuite/19_diagnostics/error_category/102425.cc 7642ba4000e0c299f069e27f340f2b9a libstdc++-v3/testsuite/19_diagnostics/error_category/cons/copy_neg.cc e94232adb2c9e952bfe9960f48d97254 libstdc++-v3/testsuite/19_diagnostics/error_category/cons/default.cc 9cad365c10f737409d25d41541cf2eb1 libstdc++-v3/testsuite/19_diagnostics/error_category/generic_category.cc *************** cb38b5219cf8786f12ac50f0b32b1fe5 libstd *** 81524,81530 **** ac7ab5f467aaad73a3702663b19d9616 libstdc++-v3/testsuite/19_diagnostics/headers/stdexcept/synopsis.cc e73493b92527fc44709a7423d698c7a7 libstdc++-v3/testsuite/19_diagnostics/headers/stdexcept/types_std.cc da1389c4db61adf7637024e8da87a2af libstdc++-v3/testsuite/19_diagnostics/headers/system_error/34538.cc ! 457962d373c29b92cd7cab8fa5edd31e libstdc++-v3/testsuite/19_diagnostics/headers/system_error/errc_std_c++0x.cc 9b043f48497f7ee797851d763d0de9f8 libstdc++-v3/testsuite/19_diagnostics/headers/system_error/std_c++0x_neg.cc 8efc49d7c0aed2c1fee25ae9360cc794 libstdc++-v3/testsuite/19_diagnostics/headers/system_error/types_std_c++0x.cc 148b540cec85bbb11e0a698c08456db5 libstdc++-v3/testsuite/19_diagnostics/logic_error/cons_virtual_derivation.cc --- 81737,81744 ---- ac7ab5f467aaad73a3702663b19d9616 libstdc++-v3/testsuite/19_diagnostics/headers/stdexcept/synopsis.cc e73493b92527fc44709a7423d698c7a7 libstdc++-v3/testsuite/19_diagnostics/headers/stdexcept/types_std.cc da1389c4db61adf7637024e8da87a2af libstdc++-v3/testsuite/19_diagnostics/headers/system_error/34538.cc ! cb37a5c51478bdf9ffa55817e9c07e48 libstdc++-v3/testsuite/19_diagnostics/headers/system_error/93151.cc ! 38ce718684c0885358dfd31040e3c8d6 libstdc++-v3/testsuite/19_diagnostics/headers/system_error/errc_std_c++0x.cc 9b043f48497f7ee797851d763d0de9f8 libstdc++-v3/testsuite/19_diagnostics/headers/system_error/std_c++0x_neg.cc 8efc49d7c0aed2c1fee25ae9360cc794 libstdc++-v3/testsuite/19_diagnostics/headers/system_error/types_std_c++0x.cc 148b540cec85bbb11e0a698c08456db5 libstdc++-v3/testsuite/19_diagnostics/logic_error/cons_virtual_derivation.cc *************** e17a08682f5b840b83a969ad04685acb libstd *** 81605,81622 **** 49435ff39340870afdef2ba410a37fba libstdc++-v3/testsuite/20_util/any/assign/exception.cc aefc60725edfb173a4825acf64f249d3 libstdc++-v3/testsuite/20_util/any/assign/self.cc 0fa3ebc48568ef10724ff6ff7aa05267 libstdc++-v3/testsuite/20_util/any/cons/1.cc c5235c5613b95e911fc43ee90a2e80dc libstdc++-v3/testsuite/20_util/any/cons/2.cc fd7d09fb3200ce87cfe87a83a9135df5 libstdc++-v3/testsuite/20_util/any/cons/aligned.cc c6c492aff59040c8ba89ba7dcf072c77 libstdc++-v3/testsuite/20_util/any/cons/explicit.cc d6fe68ff8db23180fd52e7c2e5c0f8c4 libstdc++-v3/testsuite/20_util/any/cons/in_place.cc 5611809eee2e824510fbad4ba7a2ac45 libstdc++-v3/testsuite/20_util/any/cons/nontrivial.cc b529a112b9acc0abcd290c2092f69288 libstdc++-v3/testsuite/20_util/any/make_any.cc 0b30d1b7dbf86a9919931f1880ba1418 libstdc++-v3/testsuite/20_util/any/misc/any_cast.cc ! 29c68097fec962374cf1d50108e2153e libstdc++-v3/testsuite/20_util/any/misc/any_cast_neg.cc 864e68b6976d2972205115b1786a9a18 libstdc++-v3/testsuite/20_util/any/misc/any_cast_no_rtti.cc 5ac4b299a99b4b7cbb53c9bac1f188a4 libstdc++-v3/testsuite/20_util/any/misc/swap.cc df7f8b11f6be8c5f333c19b3890dc815 libstdc++-v3/testsuite/20_util/any/modifiers/1.cc be18427e8aa5f4c3e10b15499720627d libstdc++-v3/testsuite/20_util/any/modifiers/83658.cc 8d1e301817cb4d43f0be1bce1d816363 libstdc++-v3/testsuite/20_util/any/observers/type.cc 8841d2e5572ee616ec09185029447e0d libstdc++-v3/testsuite/20_util/any/requirements.cc b1362d1d212260f1a84ccdbbb8ed0ab2 libstdc++-v3/testsuite/20_util/any/typedefs.cc --- 81819,81840 ---- 49435ff39340870afdef2ba410a37fba libstdc++-v3/testsuite/20_util/any/assign/exception.cc aefc60725edfb173a4825acf64f249d3 libstdc++-v3/testsuite/20_util/any/assign/self.cc 0fa3ebc48568ef10724ff6ff7aa05267 libstdc++-v3/testsuite/20_util/any/cons/1.cc + 097d518046e23537949952c936ddfa1c libstdc++-v3/testsuite/20_util/any/cons/101034.cc c5235c5613b95e911fc43ee90a2e80dc libstdc++-v3/testsuite/20_util/any/cons/2.cc + d6c4d82ae1acc5c41fbb1b02392acc91 libstdc++-v3/testsuite/20_util/any/cons/90415.cc + 98760b39632ecc9ad91e48d7c8f0e10c libstdc++-v3/testsuite/20_util/any/cons/92156.cc fd7d09fb3200ce87cfe87a83a9135df5 libstdc++-v3/testsuite/20_util/any/cons/aligned.cc c6c492aff59040c8ba89ba7dcf072c77 libstdc++-v3/testsuite/20_util/any/cons/explicit.cc d6fe68ff8db23180fd52e7c2e5c0f8c4 libstdc++-v3/testsuite/20_util/any/cons/in_place.cc 5611809eee2e824510fbad4ba7a2ac45 libstdc++-v3/testsuite/20_util/any/cons/nontrivial.cc b529a112b9acc0abcd290c2092f69288 libstdc++-v3/testsuite/20_util/any/make_any.cc 0b30d1b7dbf86a9919931f1880ba1418 libstdc++-v3/testsuite/20_util/any/misc/any_cast.cc ! bd06a92e89fd631ca60bf6800da06809 libstdc++-v3/testsuite/20_util/any/misc/any_cast_neg.cc 864e68b6976d2972205115b1786a9a18 libstdc++-v3/testsuite/20_util/any/misc/any_cast_no_rtti.cc 5ac4b299a99b4b7cbb53c9bac1f188a4 libstdc++-v3/testsuite/20_util/any/misc/swap.cc df7f8b11f6be8c5f333c19b3890dc815 libstdc++-v3/testsuite/20_util/any/modifiers/1.cc be18427e8aa5f4c3e10b15499720627d libstdc++-v3/testsuite/20_util/any/modifiers/83658.cc + e816600008c482bba60fea89a8bc06c5 libstdc++-v3/testsuite/20_util/any/modifiers/92156.cc 8d1e301817cb4d43f0be1bce1d816363 libstdc++-v3/testsuite/20_util/any/observers/type.cc 8841d2e5572ee616ec09185029447e0d libstdc++-v3/testsuite/20_util/any/requirements.cc b1362d1d212260f1a84ccdbbb8ed0ab2 libstdc++-v3/testsuite/20_util/any/typedefs.cc *************** b4d375f26cc333fc420d2a4646dedb4d libstd *** 82137,82142 **** --- 82355,82361 ---- a9fc708ba78c0be7c2d96abddbed54d9 libstdc++-v3/testsuite/20_util/optional/77288.cc 5361a28b1321ad89bf07b0ba11faf27a libstdc++-v3/testsuite/20_util/optional/84601.cc 7f1a148fb6ff95d372a8bbab08959b05 libstdc++-v3/testsuite/20_util/optional/assignment/1.cc + 5f2a36dc053d6d68a81135df84e7f4cb libstdc++-v3/testsuite/20_util/optional/assignment/100982.cc ced2b375ed52f7ae1227ccee06067110 libstdc++-v3/testsuite/20_util/optional/assignment/2.cc 08da7d4d9b0d44f5a9dde9697695770c libstdc++-v3/testsuite/20_util/optional/assignment/3.cc ed74cb9b120e0ef32a07f650bbadcc53 libstdc++-v3/testsuite/20_util/optional/assignment/4.cc *************** ba53bbcc41684554bc52efaab899dc37 libstd *** 82386,82391 **** --- 82605,82611 ---- 2efd1359e18bd5a2fac3d9de80ddd2cf libstdc++-v3/testsuite/20_util/shared_ptr/creation/58594-no-rtti.cc 587be8706717f8a2d916cc408aa540b5 libstdc++-v3/testsuite/20_util/shared_ptr/creation/58594.cc 4e9518c41486d37818ca52bddfe34170 libstdc++-v3/testsuite/20_util/shared_ptr/creation/87278.cc + e8fb2075c881dbc83a16c36ae6da545b libstdc++-v3/testsuite/20_util/shared_ptr/creation/99006.cc 6106027987e43f8a46b7fbe36e7c4557 libstdc++-v3/testsuite/20_util/shared_ptr/creation/alloc.cc e9c839c0ddd6c01c3dafa0db9ae7fd73 libstdc++-v3/testsuite/20_util/shared_ptr/creation/alloc_min.cc 43afebb656219564235ef3e858f42653 libstdc++-v3/testsuite/20_util/shared_ptr/creation/dr402.cc *************** ae0100cdce1d595ec1ad5c792db8ac7e libstd *** 82623,82628 **** --- 82843,82849 ---- 1a925375e392188df7ce70c3e63b9754 libstdc++-v3/testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc baf1e4e64fc5ca81adab3082a1a4642a libstdc++-v3/testsuite/20_util/uses_allocator/value.cc a65c51af2b3a351b98b7b1799ebf7648 libstdc++-v3/testsuite/20_util/variable_templates_for_traits.cc + b9698b5e78dcefad507d6737875a6a1d libstdc++-v3/testsuite/20_util/variant/100384.cc fd102d43e723306496bcc14b30a9565c libstdc++-v3/testsuite/20_util/variant/80165.cc 4207e27c54bd5221158248f32ed46ac5 libstdc++-v3/testsuite/20_util/variant/85183.cc 3ee0f17f6691603873a181c96e2bda08 libstdc++-v3/testsuite/20_util/variant/86874.cc *************** fad08c720924bd14bf1e27101b2e29d0 libstd *** 83914,83919 **** --- 84135,84141 ---- 730a10261abd8e9c889dbabc9b4e781c libstdc++-v3/testsuite/23_containers/forward_list/operations/6.cc 4086093c70b15868f596a51a982e483e libstdc++-v3/testsuite/23_containers/forward_list/operations/7.cc 2582009bfec0cfdae2cbb12d5e9d1425 libstdc++-v3/testsuite/23_containers/forward_list/operations/90105.cc + 7a189e8b9d2375d727e2175b911806df libstdc++-v3/testsuite/23_containers/forward_list/operations/merge.cc ebf67c747e53fdae107a59c8779d519e libstdc++-v3/testsuite/23_containers/forward_list/operations/remove_cxx20_return.cc 6edb524a7697653b7b00de53d1f79b27 libstdc++-v3/testsuite/23_containers/forward_list/operations/remove_freed.cc 164f14b3a28a51ebe489afa3140d874b libstdc++-v3/testsuite/23_containers/forward_list/operations/unique_cxx20_return.cc *************** a616397439d3afe95b41173e68e66693 libstd *** 85275,85281 **** ffdcd115675d80cb8cddb90b5a0e400e libstdc++-v3/testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/2.cc 2a7b4f4323da49ff009de89e943fa6aa libstdc++-v3/testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/pod.cc 97bad05a448840260bcd2667313371d1 libstdc++-v3/testsuite/25_algorithms/is_permutation/1.cc ! 7db697910a68bb9220d44dfcd97d3f2e libstdc++-v3/testsuite/25_algorithms/is_permutation/2.cc 84751fa850068255217a6755bff8cf76 libstdc++-v3/testsuite/25_algorithms/is_permutation/64646.cc 1d23cfe31f8ccd5748efb550a217042a libstdc++-v3/testsuite/25_algorithms/is_permutation/check_type.cc 67488bf26f132240b73b02ebb3cf1b93 libstdc++-v3/testsuite/25_algorithms/is_permutation/check_type2.cc --- 85497,85503 ---- ffdcd115675d80cb8cddb90b5a0e400e libstdc++-v3/testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/2.cc 2a7b4f4323da49ff009de89e943fa6aa libstdc++-v3/testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/pod.cc 97bad05a448840260bcd2667313371d1 libstdc++-v3/testsuite/25_algorithms/is_permutation/1.cc ! 69ee238b929aad5681625dcb9002acde libstdc++-v3/testsuite/25_algorithms/is_permutation/2.cc 84751fa850068255217a6755bff8cf76 libstdc++-v3/testsuite/25_algorithms/is_permutation/64646.cc 1d23cfe31f8ccd5748efb550a217042a libstdc++-v3/testsuite/25_algorithms/is_permutation/check_type.cc 67488bf26f132240b73b02ebb3cf1b93 libstdc++-v3/testsuite/25_algorithms/is_permutation/check_type2.cc *************** ab36af34132c8f7ab268fc9b810c4a9f libstd *** 85768,85774 **** 89e701dc4e3dfd8ea2fddffdefd82c01 libstdc++-v3/testsuite/26_numerics/lcm/1.cc e34475da99458f7a1a16d3d58bc08693 libstdc++-v3/testsuite/26_numerics/lcm/92978.cc d3483c8a011ca68f6d122c28c645507c libstdc++-v3/testsuite/26_numerics/lcm/lcm_neg.cc ! 1cae347e27d92d9cc3e7b858ff050725 libstdc++-v3/testsuite/26_numerics/lerp.cc ae7974b74d17f9fbd1a5350e2a69ad1b libstdc++-v3/testsuite/26_numerics/midpoint/floating.cc 773869cc4720c388d9f5ffb2ee20ed37 libstdc++-v3/testsuite/26_numerics/midpoint/integral.cc 87a5840403dfc54edb42b8074884bdb4 libstdc++-v3/testsuite/26_numerics/midpoint/pointer.cc --- 85990,85998 ---- 89e701dc4e3dfd8ea2fddffdefd82c01 libstdc++-v3/testsuite/26_numerics/lcm/1.cc e34475da99458f7a1a16d3d58bc08693 libstdc++-v3/testsuite/26_numerics/lcm/92978.cc d3483c8a011ca68f6d122c28c645507c libstdc++-v3/testsuite/26_numerics/lcm/lcm_neg.cc ! 1cae347e27d92d9cc3e7b858ff050725 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 ae7974b74d17f9fbd1a5350e2a69ad1b libstdc++-v3/testsuite/26_numerics/midpoint/floating.cc 773869cc4720c388d9f5ffb2ee20ed37 libstdc++-v3/testsuite/26_numerics/midpoint/integral.cc 87a5840403dfc54edb42b8074884bdb4 libstdc++-v3/testsuite/26_numerics/midpoint/pointer.cc *************** aa12c6b28c189c2b95b49651091cdd01 libstd *** 85947,85953 **** db340d6cd7be0eae7c970069bf5e7445 libstdc++-v3/testsuite/26_numerics/random/normal_distribution/cons/parms.cc e45f33dba69770661946d3b2dd44ab6b libstdc++-v3/testsuite/26_numerics/random/normal_distribution/operators/equal.cc 6f1321167a8ed0068189c976998122d5 libstdc++-v3/testsuite/26_numerics/random/normal_distribution/operators/inequal.cc ! 603eb8e74a9b6811a2f30293ede10400 libstdc++-v3/testsuite/26_numerics/random/normal_distribution/operators/serialize.cc a905ce2796095c15b7138ced6dcd9ece libstdc++-v3/testsuite/26_numerics/random/normal_distribution/requirements/explicit_instantiation/1.cc 0c29ac66a6e835dceae28603105b5428 libstdc++-v3/testsuite/26_numerics/random/normal_distribution/requirements/typedefs.cc 19c5d1d6be95056ebdd1056e7b75a5a0 libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/cons/default.cc --- 86171,86177 ---- db340d6cd7be0eae7c970069bf5e7445 libstdc++-v3/testsuite/26_numerics/random/normal_distribution/cons/parms.cc e45f33dba69770661946d3b2dd44ab6b libstdc++-v3/testsuite/26_numerics/random/normal_distribution/operators/equal.cc 6f1321167a8ed0068189c976998122d5 libstdc++-v3/testsuite/26_numerics/random/normal_distribution/operators/inequal.cc ! 7734ec4f6dd0e02ed79499e85d0ad432 libstdc++-v3/testsuite/26_numerics/random/normal_distribution/operators/serialize.cc a905ce2796095c15b7138ced6dcd9ece libstdc++-v3/testsuite/26_numerics/random/normal_distribution/requirements/explicit_instantiation/1.cc 0c29ac66a6e835dceae28603105b5428 libstdc++-v3/testsuite/26_numerics/random/normal_distribution/requirements/typedefs.cc 19c5d1d6be95056ebdd1056e7b75a5a0 libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/cons/default.cc *************** d60e1ac682cb461b077b2c65569ce28b libstd *** 86054,86059 **** --- 86278,86284 ---- d4ba4b8775d80f67c1d9081513fe0a63 libstdc++-v3/testsuite/26_numerics/random/weibull_distribution/requirements/typedefs.cc e3030088e45081f457ea78cbf5edbcd4 libstdc++-v3/testsuite/26_numerics/reduce/1.cc 805405231bca44805fe9e2e473130647 libstdc++-v3/testsuite/26_numerics/reduce/2.cc + 51f14806bbec80c2d5883800a91dfc2e libstdc++-v3/testsuite/26_numerics/reduce/95833.cc 536c83acd464c44227e84ed3845f9a8d libstdc++-v3/testsuite/26_numerics/slice/1.cc 2ca22959caa6b57422957322a0fd270f libstdc++-v3/testsuite/26_numerics/slice_array/array_assignment.cc 782936d7433625674da221747313e2ea libstdc++-v3/testsuite/26_numerics/slice_array/requirements/explicit_instantiation.cc *************** e3030088e45081f457ea78cbf5edbcd4 libstd *** 86061,86066 **** --- 86286,86292 ---- b52bc3f1320025b79e45216a824e3876 libstdc++-v3/testsuite/26_numerics/transform_exclusive_scan/1.cc 42034ef601770d6067b85fe4ddd9d663 libstdc++-v3/testsuite/26_numerics/transform_inclusive_scan/1.cc c18937e375f08daa771eb9839b9aee62 libstdc++-v3/testsuite/26_numerics/transform_reduce/1.cc + 525e5798867d708e7cc13551760f93c8 libstdc++-v3/testsuite/26_numerics/valarray/103022.cc bff2289be906d937be2005cb7fd98afe libstdc++-v3/testsuite/26_numerics/valarray/27867.cc 65d53f2d5f09d90390048764a3381a3e libstdc++-v3/testsuite/26_numerics/valarray/28277.cc ce6811bb22379494a10f1f7d4d4b000e libstdc++-v3/testsuite/26_numerics/valarray/30416.cc *************** edf89481ac509943aaa7edacdfdb99ee libstd *** 86076,86089 **** ef1f8fa4d90c97e6d5feb402b9127876 libstdc++-v3/testsuite/26_numerics/valarray/dr543.cc aafc5d0dce2cda1d09ae18e10d6f935c libstdc++-v3/testsuite/26_numerics/valarray/dr630-1.cc d9fd49da1285515f59bb71a467a35c70 libstdc++-v3/testsuite/26_numerics/valarray/dr630-2.cc ! ce37730d28fe86e23ff17f9f56fd4b0f libstdc++-v3/testsuite/26_numerics/valarray/dr630-3.C 1d482c76137e4f689235af6a2b29a448 libstdc++-v3/testsuite/26_numerics/valarray/init-list.cc 584669a04ed07f859681c90171447745 libstdc++-v3/testsuite/26_numerics/valarray/moveable.cc 5a9e85847e7577e94790c31d114e3c19 libstdc++-v3/testsuite/26_numerics/valarray/name_lookup.cc 09822e17302cc6648a6bafbd2d9965ec libstdc++-v3/testsuite/26_numerics/valarray/noexcept_move_construct.cc 1f5d9d8067e5b9c9e0a81efebee0f009 libstdc++-v3/testsuite/26_numerics/valarray/operators.cc ! 842bb26d521e5c228952514b5f53e273 libstdc++-v3/testsuite/26_numerics/valarray/range_access.cc ! 1a32f11a42f3f360447aecf7223507d3 libstdc++-v3/testsuite/26_numerics/valarray/range_access2.cc 7effa27f45dae3104dae6178e3d92678 libstdc++-v3/testsuite/26_numerics/valarray/requirements/explicit_instantiation.cc 064f01790e02b7e9d04be142ac89f551 libstdc++-v3/testsuite/26_numerics/valarray/requirements/typedefs.cc d580beccb9150a68a25dbe20a317df11 libstdc++-v3/testsuite/26_numerics/valarray/subset_assignment.cc --- 86302,86315 ---- ef1f8fa4d90c97e6d5feb402b9127876 libstdc++-v3/testsuite/26_numerics/valarray/dr543.cc aafc5d0dce2cda1d09ae18e10d6f935c libstdc++-v3/testsuite/26_numerics/valarray/dr630-1.cc d9fd49da1285515f59bb71a467a35c70 libstdc++-v3/testsuite/26_numerics/valarray/dr630-2.cc ! ce37730d28fe86e23ff17f9f56fd4b0f libstdc++-v3/testsuite/26_numerics/valarray/dr630-3.cc 1d482c76137e4f689235af6a2b29a448 libstdc++-v3/testsuite/26_numerics/valarray/init-list.cc 584669a04ed07f859681c90171447745 libstdc++-v3/testsuite/26_numerics/valarray/moveable.cc 5a9e85847e7577e94790c31d114e3c19 libstdc++-v3/testsuite/26_numerics/valarray/name_lookup.cc 09822e17302cc6648a6bafbd2d9965ec libstdc++-v3/testsuite/26_numerics/valarray/noexcept_move_construct.cc 1f5d9d8067e5b9c9e0a81efebee0f009 libstdc++-v3/testsuite/26_numerics/valarray/operators.cc ! d1bf42e8e13164dfe11cff88ce362e19 libstdc++-v3/testsuite/26_numerics/valarray/range_access.cc ! a5f5e03af8a15953c6de90e1d9ed853f libstdc++-v3/testsuite/26_numerics/valarray/range_access2.cc 7effa27f45dae3104dae6178e3d92678 libstdc++-v3/testsuite/26_numerics/valarray/requirements/explicit_instantiation.cc 064f01790e02b7e9d04be142ac89f551 libstdc++-v3/testsuite/26_numerics/valarray/requirements/typedefs.cc d580beccb9150a68a25dbe20a317df11 libstdc++-v3/testsuite/26_numerics/valarray/subset_assignment.cc *************** d6bc5a31cdc8d59ba8ae4cc5f821f55d libstd *** 86356,86362 **** 852771a53c2ba73a6d2115384fb47da8 libstdc++-v3/testsuite/27_io/basic_ios/requirements/base_classes.cc 5412455f328d9356fcc8f78f4381cbdc libstdc++-v3/testsuite/27_io/basic_ios/requirements/explicit_instantiation.cc 4d8220e02431cddd51a7d21f1579bab6 libstdc++-v3/testsuite/27_io/basic_ios/requirements/typedefs.cc ! efb9568cdf108ee1a1b149d7796a52cc libstdc++-v3/testsuite/27_io/basic_iostream/cons/16251.C ef9cf16e97a79c9250be724dae2415f2 libstdc++-v3/testsuite/27_io/basic_iostream/cons/2020.cc fb0e29b797253709e4c4de7b32846a0c libstdc++-v3/testsuite/27_io/basic_iostream/requirements/base_classes.cc c8460dbcf0d1c192863cc0a3d9dd3ed5 libstdc++-v3/testsuite/27_io/basic_iostream/requirements/explicit_instantiation.cc --- 86582,86588 ---- 852771a53c2ba73a6d2115384fb47da8 libstdc++-v3/testsuite/27_io/basic_ios/requirements/base_classes.cc 5412455f328d9356fcc8f78f4381cbdc libstdc++-v3/testsuite/27_io/basic_ios/requirements/explicit_instantiation.cc 4d8220e02431cddd51a7d21f1579bab6 libstdc++-v3/testsuite/27_io/basic_ios/requirements/typedefs.cc ! efb9568cdf108ee1a1b149d7796a52cc libstdc++-v3/testsuite/27_io/basic_iostream/cons/16251.cc ef9cf16e97a79c9250be724dae2415f2 libstdc++-v3/testsuite/27_io/basic_iostream/cons/2020.cc fb0e29b797253709e4c4de7b32846a0c libstdc++-v3/testsuite/27_io/basic_iostream/requirements/base_classes.cc c8460dbcf0d1c192863cc0a3d9dd3ed5 libstdc++-v3/testsuite/27_io/basic_iostream/requirements/explicit_instantiation.cc *************** fd0c60e7f32afa28aaa100803f4de0d2 libstd *** 86862,86869 **** dad76e629e8094f265a9225228c3ff17 libstdc++-v3/testsuite/27_io/filesystem/operations/canonical.cc cb00f573c7a47ee58a71cdd93f3cd388 libstdc++-v3/testsuite/27_io/filesystem/operations/copy.cc 97660b02e6ae488f2cd1282d374807b9 libstdc++-v3/testsuite/27_io/filesystem/operations/copy_file.cc ! 57312fa642928f87de2f61c9861c449c libstdc++-v3/testsuite/27_io/filesystem/operations/create_directories.cc ! 3a1c28e30b8f41de4a519a6b9b33d545 libstdc++-v3/testsuite/27_io/filesystem/operations/create_directory.cc 466a5a84ed4b94f51b612428acfd415a libstdc++-v3/testsuite/27_io/filesystem/operations/create_symlink.cc 195a3b80f65841299cf2c1bccee868b4 libstdc++-v3/testsuite/27_io/filesystem/operations/current_path.cc 9cfc433f846c4185ec98cfd208076135 libstdc++-v3/testsuite/27_io/filesystem/operations/equivalent.cc --- 87088,87095 ---- dad76e629e8094f265a9225228c3ff17 libstdc++-v3/testsuite/27_io/filesystem/operations/canonical.cc cb00f573c7a47ee58a71cdd93f3cd388 libstdc++-v3/testsuite/27_io/filesystem/operations/copy.cc 97660b02e6ae488f2cd1282d374807b9 libstdc++-v3/testsuite/27_io/filesystem/operations/copy_file.cc ! 8ec45835a8a46b6ac376a6af8c3b4509 libstdc++-v3/testsuite/27_io/filesystem/operations/create_directories.cc ! a76d691b2577a54b244211db6795291c libstdc++-v3/testsuite/27_io/filesystem/operations/create_directory.cc 466a5a84ed4b94f51b612428acfd415a libstdc++-v3/testsuite/27_io/filesystem/operations/create_symlink.cc 195a3b80f65841299cf2c1bccee868b4 libstdc++-v3/testsuite/27_io/filesystem/operations/current_path.cc 9cfc433f846c4185ec98cfd208076135 libstdc++-v3/testsuite/27_io/filesystem/operations/equivalent.cc *************** b90a3a3d0b2a55f76eb77cf7c962d5b7 libstd *** 86876,86882 **** 17c0a3bd8b8a48449ce26c73bb3b8e20 libstdc++-v3/testsuite/27_io/filesystem/operations/read_symlink.cc 1502ae9ef398b90cb2353d212fae9aaf libstdc++-v3/testsuite/27_io/filesystem/operations/relative.cc 9fcae74991887b3ac9f17466452df98f libstdc++-v3/testsuite/27_io/filesystem/operations/remove.cc ! f38e80e62f548689138b1602c7802eae libstdc++-v3/testsuite/27_io/filesystem/operations/remove_all.cc 781edf8b8f5d71f6c73c6d8b99ac9631 libstdc++-v3/testsuite/27_io/filesystem/operations/resize_file.cc ceeedb00a04716967fb9702dad6de91c libstdc++-v3/testsuite/27_io/filesystem/operations/space.cc 2d84a5fe364e0d14deceacb4fad058f1 libstdc++-v3/testsuite/27_io/filesystem/operations/status.cc --- 87102,87108 ---- 17c0a3bd8b8a48449ce26c73bb3b8e20 libstdc++-v3/testsuite/27_io/filesystem/operations/read_symlink.cc 1502ae9ef398b90cb2353d212fae9aaf libstdc++-v3/testsuite/27_io/filesystem/operations/relative.cc 9fcae74991887b3ac9f17466452df98f libstdc++-v3/testsuite/27_io/filesystem/operations/remove.cc ! 706c51262523d70fc008b042ba57b585 libstdc++-v3/testsuite/27_io/filesystem/operations/remove_all.cc 781edf8b8f5d71f6c73c6d8b99ac9631 libstdc++-v3/testsuite/27_io/filesystem/operations/resize_file.cc ceeedb00a04716967fb9702dad6de91c libstdc++-v3/testsuite/27_io/filesystem/operations/space.cc 2d84a5fe364e0d14deceacb4fad058f1 libstdc++-v3/testsuite/27_io/filesystem/operations/status.cc *************** bc9f5c7f9be56e3e6b62143566bbd82c libstd *** 86895,86900 **** --- 87121,87127 ---- d86c948f1af72fc168b5fb5d57cde80d libstdc++-v3/testsuite/27_io/filesystem/path/concat/94063.cc 35cfe6b39e538402ef5c71e1b39d97ef libstdc++-v3/testsuite/27_io/filesystem/path/concat/path.cc 6e899878c7bfb27f9440331d3e8073af libstdc++-v3/testsuite/27_io/filesystem/path/concat/strings.cc + a22e69eb2c027825b8fb3e0e6df6a97d libstdc++-v3/testsuite/27_io/filesystem/path/construct/100630.cc cf4da13811559cff87d3248ab22e8c4f libstdc++-v3/testsuite/27_io/filesystem/path/construct/80762.cc 63b49d2b56ac69ca112e63acac76bc2f libstdc++-v3/testsuite/27_io/filesystem/path/construct/90281.cc 333bfb426a30c5534864bc79da8d12b3 libstdc++-v3/testsuite/27_io/filesystem/path/construct/90634.cc *************** b715c45a6677f269807dab0bbcf0ee1d libstd *** 87135,87141 **** 2ce3d8a3791ea5de8ed52a14ff455164 libstdc++-v3/testsuite/27_io/objects/wchar_t/dr455.cc f2663cfabc6d6c3b5dcfdb66bc747ac4 libstdc++-v3/testsuite/27_io/rvalue_streams-2.cc 8e70bd9d621de6240210be769d88bef9 libstdc++-v3/testsuite/27_io/rvalue_streams.cc ! bf70062f27e4a989a11c65a503b3960a libstdc++-v3/testsuite/27_io/types/1.cc 524d7e35bdc599d36c1e90feb47234b4 libstdc++-v3/testsuite/27_io/types/2.cc 178222c7767b13210a2072d55a3e5263 libstdc++-v3/testsuite/27_io/types/3.cc ebda5c67df24fcd489222e544b99fd9d libstdc++-v3/testsuite/27_io/types/4.cc --- 87362,87368 ---- 2ce3d8a3791ea5de8ed52a14ff455164 libstdc++-v3/testsuite/27_io/objects/wchar_t/dr455.cc f2663cfabc6d6c3b5dcfdb66bc747ac4 libstdc++-v3/testsuite/27_io/rvalue_streams-2.cc 8e70bd9d621de6240210be769d88bef9 libstdc++-v3/testsuite/27_io/rvalue_streams.cc ! 9be22c0a7c56ab89e762f04da6dcf3a5 libstdc++-v3/testsuite/27_io/types/1.cc 524d7e35bdc599d36c1e90feb47234b4 libstdc++-v3/testsuite/27_io/types/2.cc 178222c7767b13210a2072d55a3e5263 libstdc++-v3/testsuite/27_io/types/3.cc ebda5c67df24fcd489222e544b99fd9d libstdc++-v3/testsuite/27_io/types/4.cc *************** bd6a5f906f3826be852eaf4a136fa738 libstd *** 87251,87256 **** --- 87478,87484 ---- e18a9d2f3f98fc0cd4c5b7fff9f5e8e5 libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/typedefs.cc 557cb43a448ec293af395e2a79c900b3 libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/wchar_t/string_01.cc 85ea3afbb3fa9ce28a1c3214e0c642a5 libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/wchar_t/wstring_02.cc + 9e61d1e19fd36f31ae0f5ec6a41b0d6a libstdc++-v3/testsuite/28_regex/match_results/102667.cc a6afca4be20fc4c58c558968fa0c923d libstdc++-v3/testsuite/28_regex/match_results/94627.cc dbc86d59b1bbfedb6ac5d7c787e06ce5 libstdc++-v3/testsuite/28_regex/match_results/ctors/char/default.cc b99f52ae1e9da8551b6d3ac96555915e libstdc++-v3/testsuite/28_regex/match_results/ctors/wchar_t/default.cc *************** d67c05d9075c1be29c5fc673624caf85 libstd *** 87859,87866 **** c34645f173cd9ba72067a61855dce0a7 libstdc++-v3/testsuite/experimental/filesystem/operations/canonical.cc f3ddff81c43ac49c4cefc5b21cb588f0 libstdc++-v3/testsuite/experimental/filesystem/operations/copy.cc 3ef03acbb3e8a82fffe5836d29ca3ca3 libstdc++-v3/testsuite/experimental/filesystem/operations/copy_file.cc ! cc2c5051f0747bc4afb8a77fbb796c10 libstdc++-v3/testsuite/experimental/filesystem/operations/create_directories.cc ! b1676f1f0ccefc9239c6aac1d14d5dd7 libstdc++-v3/testsuite/experimental/filesystem/operations/create_directory.cc 89d2cb544978ab69acdc65cdb2b48928 libstdc++-v3/testsuite/experimental/filesystem/operations/create_symlink.cc 03c8a94a2ce11846e7fe971dc29b2ac7 libstdc++-v3/testsuite/experimental/filesystem/operations/current_path.cc f0bb18699a6eba56ebd284d28c06c79b libstdc++-v3/testsuite/experimental/filesystem/operations/equivalent.cc --- 88087,88094 ---- c34645f173cd9ba72067a61855dce0a7 libstdc++-v3/testsuite/experimental/filesystem/operations/canonical.cc f3ddff81c43ac49c4cefc5b21cb588f0 libstdc++-v3/testsuite/experimental/filesystem/operations/copy.cc 3ef03acbb3e8a82fffe5836d29ca3ca3 libstdc++-v3/testsuite/experimental/filesystem/operations/copy_file.cc ! cfb3ad4bd71be2a65db40310740fc9dd libstdc++-v3/testsuite/experimental/filesystem/operations/create_directories.cc ! cfad39a4d5e1481168e4048336534086 libstdc++-v3/testsuite/experimental/filesystem/operations/create_directory.cc 89d2cb544978ab69acdc65cdb2b48928 libstdc++-v3/testsuite/experimental/filesystem/operations/create_symlink.cc 03c8a94a2ce11846e7fe971dc29b2ac7 libstdc++-v3/testsuite/experimental/filesystem/operations/current_path.cc f0bb18699a6eba56ebd284d28c06c79b libstdc++-v3/testsuite/experimental/filesystem/operations/equivalent.cc *************** abd3eda4c98801a73f59592f516d98f0 libstd *** 87871,87877 **** 59cfc520beb22e5ef24b442f367dd245 libstdc++-v3/testsuite/experimental/filesystem/operations/permissions.cc 71ea860899af497e82283cacca3c5543 libstdc++-v3/testsuite/experimental/filesystem/operations/read_symlink.cc 510a44598120bd5904ec2aca5bb464bb libstdc++-v3/testsuite/experimental/filesystem/operations/remove.cc ! 8be3812f0b8306af12ec173f9ebde8ab libstdc++-v3/testsuite/experimental/filesystem/operations/remove_all.cc 4e076a3d3faa0551039764a597049e57 libstdc++-v3/testsuite/experimental/filesystem/operations/space.cc 6e78422ad5a55959f711c5c206dca334 libstdc++-v3/testsuite/experimental/filesystem/operations/status.cc 905231703cd72bfff70dede2a593f5e2 libstdc++-v3/testsuite/experimental/filesystem/operations/temp_directory_path.cc --- 88099,88105 ---- 59cfc520beb22e5ef24b442f367dd245 libstdc++-v3/testsuite/experimental/filesystem/operations/permissions.cc 71ea860899af497e82283cacca3c5543 libstdc++-v3/testsuite/experimental/filesystem/operations/read_symlink.cc 510a44598120bd5904ec2aca5bb464bb libstdc++-v3/testsuite/experimental/filesystem/operations/remove.cc ! a30edb3f1bf2bdaa5130a07602b0fe8a libstdc++-v3/testsuite/experimental/filesystem/operations/remove_all.cc 4e076a3d3faa0551039764a597049e57 libstdc++-v3/testsuite/experimental/filesystem/operations/space.cc 6e78422ad5a55959f711c5c206dca334 libstdc++-v3/testsuite/experimental/filesystem/operations/status.cc 905231703cd72bfff70dede2a593f5e2 libstdc++-v3/testsuite/experimental/filesystem/operations/temp_directory_path.cc *************** eb1d33718f1a2cac5b4de66dc7dd649d libstd *** 87883,87888 **** --- 88111,88117 ---- 880dfb07933e87dc590399d5d5c1a9e6 libstdc++-v3/testsuite/experimental/filesystem/path/compare/strings.cc e83ef4c82f6b5923c864adf88091aefe libstdc++-v3/testsuite/experimental/filesystem/path/concat/path.cc 933015324a97545834e69841d202f5d4 libstdc++-v3/testsuite/experimental/filesystem/path/concat/strings.cc + c06b01e19066f0d4ffa4faa5202f4e3e libstdc++-v3/testsuite/experimental/filesystem/path/construct/100630.cc 2d555489f5cae2b1b1eba697a22aaa32 libstdc++-v3/testsuite/experimental/filesystem/path/construct/80762.cc 03b39079795f48b0220e2d8521905ac2 libstdc++-v3/testsuite/experimental/filesystem/path/construct/90281.cc 4415abf9e4df4ee3452d0b32f2b7b994 libstdc++-v3/testsuite/experimental/filesystem/path/construct/90634.cc *************** dd65c9a13a035bbb2f6e10d7f2682053 libstd *** 88076,88082 **** b5659e8a6969006b55cd833fe1c9f9dd libstdc++-v3/testsuite/experimental/propagate_const/requirements5.cc c1dc4eaec775b467891eb8df750cc542 libstdc++-v3/testsuite/experimental/propagate_const/swap/1.cc ba908973b93d1d252bb64b329489ffb9 libstdc++-v3/testsuite/experimental/propagate_const/typedefs.cc ! ca962e6ebf16f665f7bc5080e35700aa libstdc++-v3/testsuite/experimental/random/randint.cc bcdc648099429eee6fe84619923bcadd libstdc++-v3/testsuite/experimental/ratio/value.cc ddf624b4ef8bd082d3ed2a0352747864 libstdc++-v3/testsuite/experimental/set/erasure.cc 0fd3a4a2e8971acaeba6af9a56f6cb8d libstdc++-v3/testsuite/experimental/source_location/1.cc --- 88305,88311 ---- b5659e8a6969006b55cd833fe1c9f9dd libstdc++-v3/testsuite/experimental/propagate_const/requirements5.cc c1dc4eaec775b467891eb8df750cc542 libstdc++-v3/testsuite/experimental/propagate_const/swap/1.cc ba908973b93d1d252bb64b329489ffb9 libstdc++-v3/testsuite/experimental/propagate_const/typedefs.cc ! e02adfd7adb687f2b71cea4e8302a00e libstdc++-v3/testsuite/experimental/random/randint.cc bcdc648099429eee6fe84619923bcadd libstdc++-v3/testsuite/experimental/ratio/value.cc ddf624b4ef8bd082d3ed2a0352747864 libstdc++-v3/testsuite/experimental/set/erasure.cc 0fd3a4a2e8971acaeba6af9a56f6cb8d libstdc++-v3/testsuite/experimental/source_location/1.cc *************** be7d0a6d2c23505f0ebffc0cc94028a3 libstd *** 88316,88322 **** 51d6cc50edc0a23e1225f955f4dac274 libstdc++-v3/testsuite/ext/pool_allocator/overaligned.cc 5237492c6fe410fb2758aaa8bb481aee libstdc++-v3/testsuite/ext/pool_allocator/variadic_construct.cc e231a40e73da6b4b43a7cd7cb9a84ce2 libstdc++-v3/testsuite/ext/profile/all.cc ! 85eeecc9e74e849689ec6591fa0f400f libstdc++-v3/testsuite/ext/profile/mutex_extensions_neg.cc b92f0ad9af8bc0d2db58301a8218b244 libstdc++-v3/testsuite/ext/profile/profiler_algos.cc 52563012a3240c133dedf68e9de504d4 libstdc++-v3/testsuite/ext/profile/replace_new.cc e57e6afcac49a152f8b0c31559dc7960 libstdc++-v3/testsuite/ext/random/arcsine_distribution/cons/default.cc --- 88545,88551 ---- 51d6cc50edc0a23e1225f955f4dac274 libstdc++-v3/testsuite/ext/pool_allocator/overaligned.cc 5237492c6fe410fb2758aaa8bb481aee libstdc++-v3/testsuite/ext/pool_allocator/variadic_construct.cc e231a40e73da6b4b43a7cd7cb9a84ce2 libstdc++-v3/testsuite/ext/profile/all.cc ! 8ad0461aeb3b83f31c21e0b18aad7929 libstdc++-v3/testsuite/ext/profile/mutex_extensions_neg.cc b92f0ad9af8bc0d2db58301a8218b244 libstdc++-v3/testsuite/ext/profile/profiler_algos.cc 52563012a3240c133dedf68e9de504d4 libstdc++-v3/testsuite/ext/profile/replace_new.cc e57e6afcac49a152f8b0c31559dc7960 libstdc++-v3/testsuite/ext/random/arcsine_distribution/cons/default.cc *************** baab890c84819e856948838512a7bbf1 libstd *** 88541,88547 **** 3f94c8cadbceafae0e0c2dfacbda23b1 libstdc++-v3/testsuite/libstdc++-prettyprinters/80276.cc ab9a4342d4966839887a2ec4d79b59af libstdc++-v3/testsuite/libstdc++-prettyprinters/91997.cc ed6b1f50e03853d6b9b484f84c3ec082 libstdc++-v3/testsuite/libstdc++-prettyprinters/compat.cc ! d92d6fdcf6071cf964091806b6576e40 libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx11.cc 2ffc6e33f500652eee6cb30df4f95c96 libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx17.cc 99a17df5377354c15f46c73049564905 libstdc++-v3/testsuite/libstdc++-prettyprinters/debug.cc e96bca7ef758fc8c457af0371a36da53 libstdc++-v3/testsuite/libstdc++-prettyprinters/debug_cxx11.cc --- 88770,88776 ---- 3f94c8cadbceafae0e0c2dfacbda23b1 libstdc++-v3/testsuite/libstdc++-prettyprinters/80276.cc ab9a4342d4966839887a2ec4d79b59af libstdc++-v3/testsuite/libstdc++-prettyprinters/91997.cc ed6b1f50e03853d6b9b484f84c3ec082 libstdc++-v3/testsuite/libstdc++-prettyprinters/compat.cc ! 998d028fa4ea8f7d5187a060e829c1cd libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx11.cc 2ffc6e33f500652eee6cb30df4f95c96 libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx17.cc 99a17df5377354c15f46c73049564905 libstdc++-v3/testsuite/libstdc++-prettyprinters/debug.cc e96bca7ef758fc8c457af0371a36da53 libstdc++-v3/testsuite/libstdc++-prettyprinters/debug_cxx11.cc *************** e6293fd7591a55b3e443423d4ab263aa libstd *** 89470,89476 **** aee4f8b71130a80ebdfc21168f4a9d09 libstdc++-v3/testsuite/util/thread/all.h b950d655469c477755252b1e18009596 libtool-ldflags a136d7c5e84a7cd78058dd86877fa85d libtool.m4 ! 1b92a19fcdafe1e0e319be6f908134f9 libvtv/ChangeLog 3925e26bd0380754b9ba82cad98854b9 libvtv/Makefile.am f0dcdf677be6f1ef329ff74d740ea4eb libvtv/Makefile.in 3b765c4f4a0a0f606db1472bce2b8d29 libvtv/acinclude.m4 --- 89699,89705 ---- aee4f8b71130a80ebdfc21168f4a9d09 libstdc++-v3/testsuite/util/thread/all.h b950d655469c477755252b1e18009596 libtool-ldflags a136d7c5e84a7cd78058dd86877fa85d libtool.m4 ! 6e0ef493c64bad4d16e3d991469df3ec libvtv/ChangeLog 3925e26bd0380754b9ba82cad98854b9 libvtv/Makefile.am f0dcdf677be6f1ef329ff74d740ea4eb libvtv/Makefile.in 3b765c4f4a0a0f606db1472bce2b8d29 libvtv/acinclude.m4 *************** a317e957f6643aa8ccea2dc901b5cdb4 libvtv *** 89553,89559 **** e9f5d4b7990250a14c410038615b7897 libvtv/vtv_utils.h 247597a3fcc5b5aa8bd923351c59d853 ltgcc.m4 06c2854f9cfe5864b2885e0d0e9c512f ltmain.sh ! 521a02770dde7769d7c47016dcb78037 lto-plugin/ChangeLog 1d51b0f01f4db0f88d302ab0d691514e lto-plugin/Makefile.am 80423554a39cbd842c3d9464b3723033 lto-plugin/Makefile.in e60b1443b7156a65450aa31b80bb99fe lto-plugin/aclocal.m4 --- 89782,89788 ---- e9f5d4b7990250a14c410038615b7897 libvtv/vtv_utils.h 247597a3fcc5b5aa8bd923351c59d853 ltgcc.m4 06c2854f9cfe5864b2885e0d0e9c512f ltmain.sh ! d802039d5eb00f584601479d23af1b0d lto-plugin/ChangeLog 1d51b0f01f4db0f88d302ab0d691514e lto-plugin/Makefile.am 80423554a39cbd842c3d9464b3723033 lto-plugin/Makefile.in e60b1443b7156a65450aa31b80bb99fe lto-plugin/aclocal.m4 *************** dee72a6a60e99528b0d17bf3ff9a1e15 ltopti *** 89565,89571 **** bc2f6032c98896249eadb56177c7d357 ltsugar.m4 c30cd33c496505f13d9fbdb6970c7c33 ltversion.m4 293853a13b7e218e3a4342cf85fbbf25 lt~obsolete.m4 ! 20827d97a1fa4da08763b0c0e394cc38 maintainer-scripts/ChangeLog 33c7bc2d2c55956dfac85a05d8a80eff maintainer-scripts/README e70ffb6559f8817db41ee1e69bc60287 maintainer-scripts/branch_changer.py 1c3f2c7d87d076b4209a2a03844292e5 maintainer-scripts/bugzilla-close-candidate.py --- 89794,89800 ---- bc2f6032c98896249eadb56177c7d357 ltsugar.m4 c30cd33c496505f13d9fbdb6970c7c33 ltversion.m4 293853a13b7e218e3a4342cf85fbbf25 lt~obsolete.m4 ! 37532b6b347e327ad3bb11eb987b4510 maintainer-scripts/ChangeLog 33c7bc2d2c55956dfac85a05d8a80eff maintainer-scripts/README e70ffb6559f8817db41ee1e69bc60287 maintainer-scripts/branch_changer.py 1c3f2c7d87d076b4209a2a03844292e5 maintainer-scripts/bugzilla-close-candidate.py *************** cf2baa0854f564a7785307e79f155efc symlin *** 89585,89591 **** 40bb1f4ce4a60a36d1ec50d66aeed4d1 test-driver cb06c1be6a41d68b0a65e0c1a91752bc ylwrap 03bf3ba8089f4bf475ef4035cf316a47 zlib/CMakeLists.txt ! 7943c2d88b22257dcccbce3dd7fda5b4 zlib/ChangeLog 969dcade0d3b806b7eaf5f16573a528d zlib/ChangeLog.gcj 0e9a37be8e3b85cc0ccf60504064c297 zlib/ChangeLog.jit b7a1991f01daea3efe108a215c5514a5 zlib/FAQ --- 89814,89820 ---- 40bb1f4ce4a60a36d1ec50d66aeed4d1 test-driver cb06c1be6a41d68b0a65e0c1a91752bc ylwrap 03bf3ba8089f4bf475ef4035cf316a47 zlib/CMakeLists.txt ! f24c74cb23d2107846ee987595583fc9 zlib/ChangeLog 969dcade0d3b806b7eaf5f16573a528d zlib/ChangeLog.gcj 0e9a37be8e3b85cc0ccf60504064c297 zlib/ChangeLog.jit b7a1991f01daea3efe108a215c5514a5 zlib/FAQ diff -Nrcpad gcc-9.4.0/NEWS gcc-9.5.0/NEWS *** gcc-9.4.0/NEWS Tue Jun 1 07:53:59 2021 --- gcc-9.5.0/NEWS Fri May 27 07:22:06 2022 *************** http://gcc.gnu.org/gcc-9/index.html *** 9,35 **** GCC 9 Release Series ! June 1, 2021 The [1]GNU project and the GCC developers are pleased to announce the ! release of GCC 9.4. This release is a bug-fix release, containing fixes for regressions in ! GCC 9.3 relative to previous releases of GCC. Release History GCC 9.4 ! June 1, 2021 ([2]changes, [3]documentation) GCC 9.3 ! Mar 12, 2020 ([4]changes, [5]documentation) GCC 9.2 ! Aug 12, 2019 ([6]changes, [7]documentation) GCC 9.1 ! May 3, 2019 ([8]changes, [9]documentation) References and Acknowledgements --- 9,38 ---- GCC 9 Release Series ! May 27, 2022 The [1]GNU project and the GCC developers are pleased to announce the ! release of GCC 9.5. This release is a bug-fix release, containing fixes for regressions in ! GCC 9.4 relative to previous releases of GCC. Release History + GCC 9.5 + May 27, 2022 ([2]changes, [3]documentation) + GCC 9.4 ! June 1, 2021 ([4]changes, [5]documentation) GCC 9.3 ! Mar 12, 2020 ([6]changes, [7]documentation) GCC 9.2 ! Aug 12, 2019 ([8]changes, [9]documentation) GCC 9.1 ! May 3, 2019 ([10]changes, [11]documentation) References and Acknowledgements *************** References and Acknowledgements *** 37,95 **** supports several other languages aside from C, it now stands for the GNU Compiler Collection. ! A list of [10]successful builds is updated as new information becomes available. The GCC developers would like to thank the numerous people that have contributed new features, improvements, bug fixes, and other changes as ! well as test results to GCC. This [11]amazing group of volunteers is what makes GCC successful. ! For additional information about GCC please refer to the [12]GCC ! project web site or contact the [13]GCC development mailing list. ! To obtain GCC please use [14]our mirror sites or [15]our version control system. For questions related to the use of GCC, please consult these web ! pages and the [16]GCC manuals. If that fails, the ! [17]gcc-help@gcc.gnu.org mailing list might help. Comments on these web pages and the development of GCC are welcome on our developer ! list at [18]gcc@gcc.gnu.org. All of [19]our lists have public archives. ! Copyright (C) [20]Free Software Foundation, Inc. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! These pages are [21]maintained by the GCC team. Last modified ! 2021-06-01[22]. References 1. http://www.gnu.org/ 2. http://gcc.gnu.org/gcc-9/changes.html ! 3. http://gcc.gnu.org/onlinedocs/9.4.0/ 4. http://gcc.gnu.org/gcc-9/changes.html ! 5. http://gcc.gnu.org/onlinedocs/9.3.0/ 6. http://gcc.gnu.org/gcc-9/changes.html ! 7. http://gcc.gnu.org/onlinedocs/9.2.0/ 8. http://gcc.gnu.org/gcc-9/changes.html ! 9. http://gcc.gnu.org/onlinedocs/9.1.0/ ! 10. http://gcc.gnu.org/gcc-9/buildstat.html ! 11. http://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Contributors.html ! 12. http://gcc.gnu.org/index.html ! 13. mailto:gcc@gcc.gnu.org ! 14. http://gcc.gnu.org/mirrors.html ! 15. http://gcc.gnu.org/git.html ! 16. https://gcc.gnu.org/onlinedocs/ ! 17. mailto:gcc-help@gcc.gnu.org ! 18. mailto:gcc@gcc.gnu.org ! 19. https://gcc.gnu.org/lists.html ! 20. https://www.fsf.org/ ! 21. https://gcc.gnu.org/about.html ! 22. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-9/changes.html --- 40,100 ---- supports several other languages aside from C, it now stands for the GNU Compiler Collection. ! A list of [12]successful builds is updated as new information becomes available. The GCC developers would like to thank the numerous people that have contributed new features, improvements, bug fixes, and other changes as ! well as test results to GCC. This [13]amazing group of volunteers is what makes GCC successful. ! For additional information about GCC please refer to the [14]GCC ! project web site or contact the [15]GCC development mailing list. ! To obtain GCC please use [16]our mirror sites or [17]our version control system. For questions related to the use of GCC, please consult these web ! pages and the [18]GCC manuals. If that fails, the ! [19]gcc-help@gcc.gnu.org mailing list might help. Comments on these web pages and the development of GCC are welcome on our developer ! list at [20]gcc@gcc.gnu.org. All of [21]our lists have public archives. ! Copyright (C) [22]Free Software Foundation, Inc. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! These pages are [23]maintained by the GCC team. Last modified ! 2022-05-27[24]. References 1. http://www.gnu.org/ 2. http://gcc.gnu.org/gcc-9/changes.html ! 3. http://gcc.gnu.org/onlinedocs/9.5.0/ 4. http://gcc.gnu.org/gcc-9/changes.html ! 5. http://gcc.gnu.org/onlinedocs/9.4.0/ 6. http://gcc.gnu.org/gcc-9/changes.html ! 7. http://gcc.gnu.org/onlinedocs/9.3.0/ 8. http://gcc.gnu.org/gcc-9/changes.html ! 9. http://gcc.gnu.org/onlinedocs/9.2.0/ ! 10. http://gcc.gnu.org/gcc-9/changes.html ! 11. http://gcc.gnu.org/onlinedocs/9.1.0/ ! 12. http://gcc.gnu.org/gcc-9/buildstat.html ! 13. http://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Contributors.html ! 14. http://gcc.gnu.org/index.html ! 15. mailto:gcc@gcc.gnu.org ! 16. http://gcc.gnu.org/mirrors.html ! 17. http://gcc.gnu.org/git.html ! 18. https://gcc.gnu.org/onlinedocs/ ! 19. mailto:gcc-help@gcc.gnu.org ! 20. mailto:gcc@gcc.gnu.org ! 21. https://gcc.gnu.org/lists.html ! 22. https://www.fsf.org/ ! 23. https://gcc.gnu.org/about.html ! 24. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-9/changes.html *************** GCC 9.4 *** 850,869 **** for all SVE implementations. Adding -msve-vector-bits=512 makes the code specific to 512-bit SVE. For questions related to the use of GCC, please consult these web ! pages and the [69]GCC manuals. If that fails, the ! [70]gcc-help@gcc.gnu.org mailing list might help. Comments on these web pages and the development of GCC are welcome on our developer ! list at [71]gcc@gcc.gnu.org. All of [72]our lists have public archives. ! Copyright (C) [73]Free Software Foundation, Inc. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! These pages are [74]maintained by the GCC team. Last modified ! 2021-06-01[75]. References --- 855,881 ---- for all SVE implementations. Adding -msve-vector-bits=512 makes the code specific to 512-bit SVE. + GCC 9.5 + + This is the [69]list of problem reports (PRs) from GCC's bug tracking + system that are known to be fixed in the 9.5 release. This list might + not be complete (that is, it is possible that some PRs that have been + fixed are not listed here). + For questions related to the use of GCC, please consult these web ! pages and the [70]GCC manuals. If that fails, the ! [71]gcc-help@gcc.gnu.org mailing list might help. Comments on these web pages and the development of GCC are welcome on our developer ! list at [72]gcc@gcc.gnu.org. All of [73]our lists have public archives. ! Copyright (C) [74]Free Software Foundation, Inc. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! These pages are [75]maintained by the GCC team. Last modified ! 2022-05-27[76]. References *************** References *** 935,952 **** 66. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=9.2 67. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=9.3 68. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=9.4 ! 69. https://gcc.gnu.org/onlinedocs/ ! 70. mailto:gcc-help@gcc.gnu.org ! 71. mailto:gcc@gcc.gnu.org ! 72. https://gcc.gnu.org/lists.html ! 73. https://www.fsf.org/ ! 74. https://gcc.gnu.org/about.html ! 75. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-8/index.html GCC 8 Release Series May 14, 2021 The [1]GNU project and the GCC developers are pleased to announce the --- 947,967 ---- 66. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=9.2 67. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=9.3 68. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=9.4 ! 69. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=9.5 ! 70. https://gcc.gnu.org/onlinedocs/ ! 71. mailto:gcc-help@gcc.gnu.org ! 72. mailto:gcc@gcc.gnu.org ! 73. https://gcc.gnu.org/lists.html ! 74. https://www.fsf.org/ ! 75. https://gcc.gnu.org/about.html ! 76. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-8/index.html GCC 8 Release Series + (This release series is no longer supported.) + May 14, 2021 The [1]GNU project and the GCC developers are pleased to announce the *************** References and Acknowledgements *** 1005,1011 **** provided this notice is preserved. These pages are [23]maintained by the GCC team. Last modified ! 2021-05-14[24]. References --- 1020,1026 ---- provided this notice is preserved. These pages are [23]maintained by the GCC team. Last modified ! 2022-05-06[24]. References *************** New Languages and Language specific impr *** 1279,1285 **** * 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 --- 1294,1300 ---- * 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 *** 2115,2121 **** provided this notice is preserved. These pages are [44]maintained by the GCC team. Last modified ! 2021-05-14[45]. References --- 2130,2136 ---- provided this notice is preserved. These pages are [44]maintained by the GCC team. Last modified ! 2021-10-01[45]. References *************** http://gcc.gnu.org/gcc-7/index.html *** 2169,2174 **** --- 2184,2191 ---- GCC 7 Release Series + (This release series is no longer supported.) + Nov 14, 2019 The [1]GNU project and the GCC developers are pleased to announce the *************** References and Acknowledgements *** 2227,2233 **** provided this notice is preserved. These pages are [23]maintained by the GCC team. Last modified ! 2020-01-14[24]. References --- 2244,2250 ---- provided this notice is preserved. These pages are [23]maintained by the GCC team. Last modified ! 2022-05-06[24]. References *************** Address 0x7fffb8dba990 is located in sta *** 2374,2388 **** * 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 --- 2391,2405 ---- * 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 *** 2701,2707 **** 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 --- 2718,2724 ---- 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 { *** 2791,2804 **** 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 --- 2808,2821 ---- 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 *** 2822,2828 **** 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; --- 2839,2845 ---- 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 *** 2888,2894 **** 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. --- 2905,2911 ---- 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 *** 2921,2927 **** 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 --- 2938,2944 ---- 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 *** 2942,2948 **** * 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 --- 2959,2965 ---- * 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 *** 2997,3007 **** 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 --- 3014,3024 ---- 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) *** 3029,3035 **** 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. --- 3046,3052 ---- 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) *** 3044,3050 **** 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 --- 3061,3067 ---- 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 *** 3121,3127 **** Fuchsia ! * Support has been added for the [20]Fuchsia OS. RTEMS --- 3138,3144 ---- Fuchsia ! * Support has been added for the [19]Fuchsia OS. RTEMS *************** x-early-inliner-iterations'? *** 3238,3258 **** + 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). --- 3255,3275 ---- + 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 *** 3279,3285 **** 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). --- 3296,3302 ---- 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 *** 3288,3294 **** 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. --- 3305,3311 ---- 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 *** 3300,3331 **** GCC 7.4 ! This is the [27]list of problem reports (PRs) from GCC's bug tracking system that are known to be fixed in the 7.4 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here). GCC 7.5 ! This is the [28]list of problem reports (PRs) from GCC's bug tracking system that are known to be fixed in the 7.5 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here). For questions related to the use of GCC, please consult these web ! pages and the [29]GCC manuals. If that fails, the ! [30]gcc-help@gcc.gnu.org mailing list might help. Comments on these web pages and the development of GCC are welcome on our developer ! list at [31]gcc@gcc.gnu.org. All of [32]our lists have public archives. ! Copyright (C) [33]Free Software Foundation, Inc. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! These pages are [34]maintained by the GCC team. Last modified ! 2020-04-07[35]. References --- 3317,3348 ---- 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 *** 3334,3369 **** 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 --- 3351,3385 ---- 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 *************** References and Acknowledgements *** 3429,3435 **** provided this notice is preserved. These pages are [23]maintained by the GCC team. Last modified ! 2020-01-14[24]. References --- 3445,3451 ---- provided this notice is preserved. These pages are [23]maintained by the GCC team. Last modified ! 2021-07-28[24]. References *************** Operating Systems *** 4168,4174 **** provided this notice is preserved. These pages are [32]maintained by the GCC team. Last modified ! 2020-08-01[33]. References --- 4184,4190 ---- provided this notice is preserved. These pages are [32]maintained by the GCC team. Last modified ! 2021-10-31[33]. References *************** References *** 4195,4201 **** 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/ --- 4211,4217 ---- 21. http://www.musl-libc.org/ 22. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=6.2 23. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=6.3 ! 24. https://www.intel.com/content/www/us/en/developer/articles/technical/deprecate-pcommit-instruction.html 25. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=6.4 26. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=6.5 27. https://gcc.gnu.org/onlinedocs/ *************** References and Acknowledgements *** 4270,4276 **** provided this notice is preserved. These pages are [23]maintained by the GCC team. Last modified ! 2020-01-14[24]. References --- 4286,4292 ---- provided this notice is preserved. These pages are [23]maintained by the GCC team. Last modified ! 2021-07-28[24]. References *************** New Targets and Target Specific Improvem *** 4915,4929 **** 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 --- 4931,4944 ---- 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 *** 5086,5092 **** 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). --- 5101,5107 ---- 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 *** 5127,5133 **** 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). --- 5142,5148 ---- 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 *** 5149,5162 **** 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). --- 5164,5177 ---- 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 *** 5165,5187 **** 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-05-01[51]. References --- 5180,5202 ---- 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 *** 5213,5220 **** 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 --- 5228,5235 ---- 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 *** 5223,5241 **** 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 --- 5238,5255 ---- 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 *************** References and Acknowledgements *** 5301,5307 **** provided this notice is preserved. These pages are [23]maintained by the GCC team. Last modified ! 2020-01-14[24]. References --- 5315,5321 ---- provided this notice is preserved. These pages are [23]maintained by the GCC team. Last modified ! 2021-07-28[24]. References *************** GCC 4.9.4 *** 5941,5947 **** provided this notice is preserved. These pages are [33]maintained by the GCC team. Last modified ! 2021-03-31[34]. References --- 5955,5961 ---- provided this notice is preserved. These pages are [33]maintained by the GCC team. Last modified ! 2021-07-28[34]. References *************** References and Acknowledgements *** 6047,6053 **** provided this notice is preserved. These pages are [25]maintained by the GCC team. Last modified ! 2020-01-14[26]. References --- 6061,6067 ---- provided this notice is preserved. These pages are [25]maintained by the GCC team. Last modified ! 2021-07-28[26]. References *************** GCC 4.8.5 *** 6803,6809 **** provided this notice is preserved. These pages are [43]maintained by the GCC team. Last modified ! 2020-03-26[44]. References --- 6817,6823 ---- provided this notice is preserved. These pages are [43]maintained by the GCC team. Last modified ! 2021-07-28[44]. References *************** References and Acknowledgements *** 6916,6922 **** provided this notice is preserved. These pages are [23]maintained by the GCC team. Last modified ! 2020-01-14[24]. References --- 6930,6936 ---- provided this notice is preserved. These pages are [23]maintained by the GCC team. Last modified ! 2021-07-28[24]. References *************** GCC 4.7.4 *** 7738,7744 **** provided this notice is preserved. These pages are [54]maintained by the GCC team. Last modified ! 2019-11-28[55]. References --- 7752,7758 ---- provided this notice is preserved. These pages are [54]maintained by the GCC team. Last modified ! 2022-02-10[55]. References *************** References *** 7775,7792 **** 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 --- 7789,7806 ---- 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 *************** References and Acknowledgements *** 7862,7868 **** provided this notice is preserved. These pages are [23]maintained by the GCC team. Last modified ! 2020-01-14[24]. References --- 7876,7882 ---- provided this notice is preserved. These pages are [23]maintained by the GCC team. Last modified ! 2021-07-28[24]. References *************** New Languages and Language specific impr *** 8348,8357 **** 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. --- 8362,8371 ---- 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 *** 8748,8793 **** GCC 4.6.1 ! This is the [20]list of problem reports (PRs) from GCC's bug tracking system that are known to be fixed in the 4.6.1 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here). GCC 4.6.2 ! This is the [21]list of problem reports (PRs) from GCC's bug tracking system that are known to be fixed in the 4.6.2 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here). GCC 4.6.3 ! This is the [22]list of problem reports (PRs) from GCC's bug tracking system that are known to be fixed in the 4.6.3 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here). GCC 4.6.4 ! This is the [23]list of problem reports (PRs) from GCC's bug tracking system that are known to be fixed in the 4.6.4 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here). For questions related to the use of GCC, please consult these web ! pages and the [24]GCC manuals. If that fails, the ! [25]gcc-help@gcc.gnu.org mailing list might help. Comments on these web pages and the development of GCC are welcome on our developer ! list at [26]gcc@gcc.gnu.org. All of [27]our lists have public archives. ! Copyright (C) [28]Free Software Foundation, Inc. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! These pages are [29]maintained by the GCC team. Last modified ! 2019-11-28[30]. References --- 8762,8807 ---- 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 *** 8809,8826 **** 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 --- 8823,8839 ---- 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 *************** References and Acknowledgements *** 8886,8892 **** provided this notice is preserved. These pages are [18]maintained by the GCC team. Last modified ! 2020-01-14[19]. References --- 8899,8905 ---- provided this notice is preserved. These pages are [18]maintained by the GCC team. Last modified ! 2021-07-28[19]. References *************** GCC 4.5.4 *** 9559,9569 **** provided this notice is preserved. These pages are [32]maintained by the GCC team. Last modified ! 2019-11-28[33]. References ! 1. http://www.multiprecision.org/mpc/ 2. https://gcc.gnu.org/install/prerequisites.html 3. https://gcc.gnu.org/ml/gcc/2010-01/msg00510.html 4. http://gcc.gnu.org/gcc-4.4/changes.html#obsoleted --- 9572,9582 ---- provided this notice is preserved. These pages are [32]maintained by the GCC team. Last modified ! 2022-02-02[33]. References ! 1. https://www.multiprecision.org/mpc/ 2. https://gcc.gnu.org/install/prerequisites.html 3. https://gcc.gnu.org/ml/gcc/2010-01/msg00510.html 4. http://gcc.gnu.org/gcc-4.4/changes.html#obsoleted *************** References and Acknowledgements *** 9670,9676 **** provided this notice is preserved. These pages are [21]maintained by the GCC team. Last modified ! 2020-01-14[22]. References --- 9683,9689 ---- provided this notice is preserved. These pages are [21]maintained by the GCC team. Last modified ! 2021-07-28[22]. References *************** GCC 4.4.7 *** 10301,10307 **** provided this notice is preserved. These pages are [23]maintained by the GCC team. Last modified ! 2019-11-28[24]. References --- 10314,10320 ---- provided this notice is preserved. These pages are [23]maintained by the GCC team. Last modified ! 2021-07-28[24]. References *************** References and Acknowledgements *** 10400,10406 **** provided this notice is preserved. These pages are [20]maintained by the GCC team. Last modified ! 2020-01-14[21]. References --- 10413,10419 ---- provided this notice is preserved. These pages are [20]maintained by the GCC team. Last modified ! 2021-07-28[21]. References *************** GCC 4.3.6 *** 11206,11212 **** provided this notice is preserved. These pages are [30]maintained by the GCC team. Last modified ! 2019-11-28[31]. References --- 11219,11225 ---- provided this notice is preserved. These pages are [30]maintained by the GCC team. Last modified ! 2021-07-28[31]. References *************** References and Acknowledgements *** 11306,11312 **** provided this notice is preserved. These pages are [18]maintained by the GCC team. Last modified ! 2020-01-14[19]. References --- 11319,11325 ---- provided this notice is preserved. These pages are [18]maintained by the GCC team. Last modified ! 2021-07-28[19]. References *************** Other significant improvements *** 11635,11641 **** provided this notice is preserved. These pages are [11]maintained by the GCC team. Last modified ! 2019-11-28[12]. References --- 11648,11654 ---- provided this notice is preserved. These pages are [11]maintained by the GCC team. Last modified ! 2021-07-28[12]. References *************** References and Acknowledgements *** 11710,11716 **** provided this notice is preserved. These pages are [16]maintained by the GCC team. Last modified ! 2020-01-14[17]. References --- 11723,11729 ---- provided this notice is preserved. These pages are [16]maintained by the GCC team. Last modified ! 2021-07-28[17]. References *************** New Languages and Language specific impr *** 11978,11986 **** 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. --- 11991,11996 ---- *************** New Languages and Language specific impr *** 12123,12129 **** 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 --- 12133,12139 ---- 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 *** 12132,12138 **** 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 --- 12142,12148 ---- 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 *** 12201,12207 **** 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 --- 12211,12217 ---- 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 *** 12237,12243 **** 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). --- 12247,12253 ---- 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 *** 12263,12296 **** For questions related to the use of GCC, please consult these web ! pages and the [7]GCC manuals. If that fails, the ! [8]gcc-help@gcc.gnu.org mailing list might help. Comments on these web pages and the development of GCC are welcome on our developer ! list at [9]gcc@gcc.gnu.org. All of [10]our lists have public ! archives. ! Copyright (C) [11]Free Software Foundation, Inc. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! These pages are [12]maintained by the GCC team. Last modified ! 2019-11-28[13]. References 1. http://gcc.gnu.org/gcc-4.1/changes.html#4.1.2 ! 2. http://developer.classpath.org/mediation/ClasspathGraphicsImagesText ! 3. https://gcc.gnu.org/ml/java/2005-05/msg00260.html ! 4. http://developer.classpath.org/doc/ ! 5. https://gcc.gnu.org/onlinedocs/gcc-4.1.0/gcc/Atomic-Builtins.html ! 6. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.1.2 ! 7. https://gcc.gnu.org/onlinedocs/ ! 8. mailto:gcc-help@gcc.gnu.org ! 9. mailto:gcc@gcc.gnu.org ! 10. https://gcc.gnu.org/lists.html ! 11. https://www.fsf.org/ ! 12. https://gcc.gnu.org/about.html ! 13. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.0/index.html --- 12273,12304 ---- 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 *************** References and Acknowledgements *** 12356,12362 **** provided this notice is preserved. These pages are [18]maintained by the GCC team. Last modified ! 2020-01-14[19]. References --- 12364,12370 ---- provided this notice is preserved. These pages are [18]maintained by the GCC team. Last modified ! 2021-07-28[19]. References *************** GCC 4.0.4 *** 12883,12889 **** provided this notice is preserved. These pages are [21]maintained by the GCC team. Last modified ! 2019-11-28[22]. References --- 12891,12897 ---- provided this notice is preserved. These pages are [21]maintained by the GCC team. Last modified ! 2021-07-28[22]. References *************** References and Acknowledgements *** 12985,12991 **** provided this notice is preserved. These pages are [22]maintained by the GCC team. Last modified ! 2020-01-14[23]. References --- 12993,12999 ---- provided this notice is preserved. These pages are [22]maintained by the GCC team. Last modified ! 2021-07-28[23]. References *************** GCC 3.4.6 *** 14774,14780 **** provided this notice is preserved. These pages are [416]maintained by the GCC team. Last modified ! 2019-11-28[417]. References --- 14782,14788 ---- provided this notice is preserved. These pages are [416]maintained by the GCC team. Last modified ! 2021-07-28[417]. References *************** References and Acknowledgements *** 15271,15277 **** provided this notice is preserved. These pages are [21]maintained by the GCC team. Last modified ! 2019-11-28[22]. References --- 15279,15285 ---- provided this notice is preserved. These pages are [21]maintained by the GCC team. Last modified ! 2021-07-28[22]. References *************** GCC 3.3.6 *** 16647,16653 **** provided this notice is preserved. These pages are [556]maintained by the GCC team. Last modified ! 2019-11-28[557]. References --- 16655,16661 ---- provided this notice is preserved. These pages are [556]maintained by the GCC team. Last modified ! 2021-07-28[557]. References *************** References and Acknowledgements *** 17278,17284 **** provided this notice is preserved. These pages are [17]maintained by the GCC team. Last modified ! 2019-11-28[18]. References --- 17286,17292 ---- provided this notice is preserved. These pages are [17]maintained by the GCC team. Last modified ! 2021-07-28[18]. References *************** GCC 3.2 *** 17902,17908 **** provided this notice is preserved. These pages are [251]maintained by the GCC team. Last modified ! 2019-11-28[252]. References --- 17910,17916 ---- provided this notice is preserved. These pages are [251]maintained by the GCC team. Last modified ! 2021-07-28[252]. References *************** http://gcc.gnu.org/gcc-3.1/index.html *** 18208,18214 **** provided this notice is preserved. These pages are [14]maintained by the GCC team. Last modified ! 2019-11-28[15]. References --- 18216,18222 ---- provided this notice is preserved. These pages are [14]maintained by the GCC team. Last modified ! 2021-07-28[15]. References *************** Documentation improvements *** 18563,18569 **** provided this notice is preserved. These pages are [13]maintained by the GCC team. Last modified ! 2019-11-28[14]. References --- 18571,18577 ---- provided this notice is preserved. These pages are [13]maintained by the GCC team. Last modified ! 2021-07-28[14]. References *************** Previous 3.0.x Releases *** 18638,18644 **** provided this notice is preserved. These pages are [14]maintained by the GCC team. Last modified ! 2019-11-28[15]. References --- 18646,18652 ---- provided this notice is preserved. These pages are [14]maintained by the GCC team. Last modified ! 2021-07-28[15]. References *************** Other significant improvements *** 18830,18836 **** provided this notice is preserved. These pages are [18]maintained by the GCC team. Last modified ! 2019-11-28[19]. References --- 18838,18844 ---- provided this notice is preserved. These pages are [18]maintained by the GCC team. Last modified ! 2021-07-28[19]. References *************** http://gcc.gnu.org/gcc-3.0/caveats.html *** 18902,18908 **** provided this notice is preserved. These pages are [7]maintained by the GCC team. Last modified ! 2019-11-28[8]. References --- 18910,18916 ---- provided this notice is preserved. These pages are [7]maintained by the GCC team. Last modified ! 2021-07-28[8]. References *************** References and Acknowledgements *** 18985,18991 **** provided this notice is preserved. These pages are [15]maintained by the GCC team. Last modified ! 2019-11-28[16]. References --- 18993,18999 ---- provided this notice is preserved. These pages are [15]maintained by the GCC team. Last modified ! 2021-07-28[16]. References *************** Additional Changes in GCC 2.95.3 *** 19251,19257 **** provided this notice is preserved. These pages are [22]maintained by the GCC team. Last modified ! 2019-11-28[23]. References --- 19259,19265 ---- provided this notice is preserved. These pages are [22]maintained by the GCC team. Last modified ! 2021-07-28[23]. References *************** http://gcc.gnu.org/gcc-2.95/caveats.html *** 19335,19341 **** provided this notice is preserved. These pages are [7]maintained by the GCC team. Last modified ! 2019-11-28[8]. References --- 19343,19349 ---- provided this notice is preserved. These pages are [7]maintained by the GCC team. Last modified ! 2021-07-28[8]. References *************** http://gcc.gnu.org/egcs-1.1/index.html *** 19557,19563 **** provided this notice is preserved. These pages are [15]maintained by the GCC team. Last modified ! 2019-11-28[16]. References --- 19565,19571 ---- provided this notice is preserved. These pages are [15]maintained by the GCC team. Last modified ! 2021-07-28[16]. References *************** http://gcc.gnu.org/egcs-1.1/features.htm *** 19657,19663 **** provided this notice is preserved. These pages are [10]maintained by the GCC team. Last modified ! 2019-11-28[11]. References --- 19665,19671 ---- provided this notice is preserved. These pages are [10]maintained by the GCC team. Last modified ! 2021-07-28[11]. References *************** http://gcc.gnu.org/egcs-1.1/caveats.html *** 19712,19718 **** provided this notice is preserved. These pages are [6]maintained by the GCC team. Last modified ! 2019-11-28[7]. References --- 19720,19726 ---- provided this notice is preserved. These pages are [6]maintained by the GCC team. Last modified ! 2021-07-28[7]. References *************** http://gcc.gnu.org/egcs-1.0/index.html *** 19909,19915 **** provided this notice is preserved. These pages are [10]maintained by the GCC team. Last modified ! 2019-11-28[11]. References --- 19917,19923 ---- provided this notice is preserved. These pages are [10]maintained by the GCC team. Last modified ! 2021-07-28[11]. References *************** http://gcc.gnu.org/egcs-1.0/features.htm *** 19976,19982 **** provided this notice is preserved. These pages are [8]maintained by the GCC team. Last modified ! 2019-11-28[9]. References --- 19984,19990 ---- provided this notice is preserved. These pages are [8]maintained by the GCC team. Last modified ! 2021-07-28[9]. References *************** http://gcc.gnu.org/egcs-1.0/caveats.html *** 20030,20036 **** provided this notice is preserved. These pages are [6]maintained by the GCC team. Last modified ! 2019-11-28[7]. References --- 20038,20044 ---- provided this notice is preserved. These pages are [6]maintained by the GCC team. Last modified ! 2021-07-28[7]. References diff -Nrcpad gcc-9.4.0/config/ChangeLog gcc-9.5.0/config/ChangeLog *** gcc-9.4.0/config/ChangeLog Tue Jun 1 07:53:23 2021 --- gcc-9.5.0/config/ChangeLog Fri May 27 07:21:30 2022 *************** *** 1,3 **** --- 1,15 ---- + 2022-05-27 Release Manager + + * GCC 9.5.0 released. + + 2021-12-16 Martin Storsjö + + Backported from master: + 2021-04-13 Martin Storsjö + + * mh-mingw: Set __USE_MINGW_ACCESS in missed C++ flags + variables + 2021-06-01 Release Manager * GCC 9.4.0 released. diff -Nrcpad gcc-9.4.0/config/mh-mingw gcc-9.5.0/config/mh-mingw *** gcc-9.4.0/config/mh-mingw Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/config/mh-mingw Fri May 27 07:21:10 2022 *************** *** 1,7 **** --- 1,9 ---- # Add -D__USE_MINGW_ACCESS to enable the built compiler to work on Windows # Vista (see PR33281 for details). BOOT_CFLAGS += -D__USE_MINGW_ACCESS -Wno-pedantic-ms-format + BOOT_CXXFLAGS += -D__USE_MINGW_ACCESS -Wno-pedantic-ms-format CFLAGS += -D__USE_MINGW_ACCESS + CXXFLAGS += -D__USE_MINGW_ACCESS STAGE1_CXXFLAGS += -D__USE_MINGW_ACCESS STAGE2_CXXFLAGS += -D__USE_MINGW_ACCESS STAGE3_CXXFLAGS += -D__USE_MINGW_ACCESS diff -Nrcpad gcc-9.4.0/contrib/ChangeLog gcc-9.5.0/contrib/ChangeLog *** gcc-9.4.0/contrib/ChangeLog Tue Jun 1 07:53:23 2021 --- gcc-9.5.0/contrib/ChangeLog Fri May 27 07:21:30 2022 *************** *** 1,3 **** --- 1,44 ---- + 2022-05-27 Release Manager + + * GCC 9.5.0 released. + + 2022-01-24 Martin Liska + + * gcc-changelog/git_commit.py: Sync from master. + * gcc-changelog/test_email.py: Likewise. + * gcc-changelog/test_patches.txt: Likewise. + + 2022-01-19 Martin Liska + + * git-backport.py: Sync from master. + * git-commit-mklog.py: Likewise. + * git-fix-changelog.py: New file. + + 2022-01-17 Martin Liska + + Backported from master: + 2022-01-17 Martin Liska + + * git-backport.py: Support renaming of .cc files. + + 2021-11-08 Martin Liska + + * gcc-changelog/git_check_commit.py: Sync from master. + * gcc-changelog/git_commit.py: Likewise. + * gcc-changelog/git_email.py: Likewise. + * gcc-changelog/git_update_version.py: Likewise. + * gcc-changelog/test_email.py: Likewise. + * gcc-changelog/test_patches.txt: Likewise. + + 2021-06-23 Martin Liska + + * mklog.py: New file. + * test_mklog.py: New file. + + 2021-06-23 Martin Liska + + * git-commit-mklog.py: New file. + 2021-06-01 Release Manager * GCC 9.4.0 released. diff -Nrcpad gcc-9.4.0/contrib/gcc-changelog/git_check_commit.py gcc-9.5.0/contrib/gcc-changelog/git_check_commit.py *** gcc-9.4.0/contrib/gcc-changelog/git_check_commit.py Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/contrib/gcc-changelog/git_check_commit.py Fri May 27 07:21:10 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-9.4.0/contrib/gcc-changelog/git_commit.py gcc-9.5.0/contrib/gcc-changelog/git_commit.py *** gcc-9.4.0/contrib/gcc-changelog/git_commit.py Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/contrib/gcc-changelog/git_commit.py Fri May 27 07:21:10 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-9.4.0/contrib/gcc-changelog/git_email.py gcc-9.5.0/contrib/gcc-changelog/git_email.py *** gcc-9.4.0/contrib/gcc-changelog/git_email.py Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/contrib/gcc-changelog/git_email.py Fri May 27 07:21:10 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-9.4.0/contrib/gcc-changelog/git_update_version.py gcc-9.5.0/contrib/gcc-changelog/git_update_version.py *** gcc-9.4.0/contrib/gcc-changelog/git_update_version.py Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/contrib/gcc-changelog/git_update_version.py Fri May 27 07:21:10 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-9.4.0/contrib/gcc-changelog/test_email.py gcc-9.5.0/contrib/gcc-changelog/test_email.py *** gcc-9.4.0/contrib/gcc-changelog/test_email.py Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/contrib/gcc-changelog/test_email.py Fri May 27 07:21:10 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-9.4.0/contrib/gcc-changelog/test_patches.txt gcc-9.5.0/contrib/gcc-changelog/test_patches.txt *** gcc-9.4.0/contrib/gcc-changelog/test_patches.txt Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/contrib/gcc-changelog/test_patches.txt Fri May 27 07:21:10 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-9.4.0/contrib/git-backport.py gcc-9.5.0/contrib/git-backport.py *** gcc-9.4.0/contrib/git-backport.py Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/contrib/git-backport.py Fri May 27 07:21:10 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-9.4.0/contrib/git-commit-mklog.py gcc-9.5.0/contrib/git-commit-mklog.py *** gcc-9.4.0/contrib/git-commit-mklog.py Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/contrib/git-commit-mklog.py Fri May 27 07:21:10 2022 *************** *** 0 **** --- 1,59 ---- + #!/usr/bin/env python3 + + # Copyright (C) 2020 Free Software Foundation, Inc. + # + # This file is part of GCC. + # + # GCC is free software; you can redistribute it and/or modify + # it under the terms of the GNU General Public License as published by + # the Free Software Foundation; either version 3, or (at your option) + # any later version. + # + # GCC is distributed in the hope that it will be useful, + # but WITHOUT ANY WARRANTY; without even the implied warranty of + # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + # GNU General Public License for more details. + # + # You should have received a copy of the GNU General Public License + # along with GCC; see the file COPYING. If not, write to + # the Free Software Foundation, 51 Franklin Street, Fifth Floor, + # Boston, MA 02110-1301, USA. + # + # The script is wrapper for git commit-mklog alias where it parses + # -b/--pr-numbers argument and passes it via environment variable + # to mklog.py script. + + import argparse + import os + import subprocess + + if __name__ == '__main__': + children_args = [] + myenv = os.environ.copy() + + parser = argparse.ArgumentParser(description='git-commit-mklog wrapped') + parser.add_argument('-b', '--pr-numbers', action='store', + type=lambda arg: arg.split(','), nargs='?', + help='Add the specified PRs (comma separated)') + parser.add_argument('-p', '--fill-up-bug-titles', action='store_true', + help='Download title of mentioned PRs') + parser.add_argument('--co', + help='Add Co-Authored-By trailer (comma separated)') + args, unknown_args = parser.parse_known_args() + + myenv['GCC_FORCE_MKLOG'] = '1' + mklog_args = [] + if args.pr_numbers: + mklog_args.append(f'-b {",".join(args.pr_numbers)}') + if args.fill_up_bug_titles: + mklog_args.append('-p') + + if mklog_args: + myenv['GCC_MKLOG_ARGS'] = ' '.join(mklog_args) + + if args.co: + for author in args.co.split(','): + unknown_args.append(f'--trailer "Co-Authored-By: {author}"') + + commit_args = ' '.join(unknown_args) + subprocess.run(f'git commit {commit_args}', shell=True, env=myenv) diff -Nrcpad gcc-9.4.0/contrib/git-fix-changelog.py gcc-9.5.0/contrib/git-fix-changelog.py *** gcc-9.4.0/contrib/git-fix-changelog.py Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/contrib/git-fix-changelog.py Fri May 27 07:21:10 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-9.4.0/contrib/header-tools/ChangeLog gcc-9.5.0/contrib/header-tools/ChangeLog *** gcc-9.4.0/contrib/header-tools/ChangeLog Tue Jun 1 07:53:23 2021 --- gcc-9.5.0/contrib/header-tools/ChangeLog Fri May 27 07:21:30 2022 *************** *** 1,3 **** --- 1,7 ---- + 2022-05-27 Release Manager + + * GCC 9.5.0 released. + 2021-06-01 Release Manager * GCC 9.4.0 released. diff -Nrcpad gcc-9.4.0/contrib/mklog.py gcc-9.5.0/contrib/mklog.py *** gcc-9.4.0/contrib/mklog.py Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/contrib/mklog.py Fri May 27 07:21:10 2022 *************** *** 0 **** --- 1,356 ---- + #!/usr/bin/env python3 + + # Copyright (C) 2020 Free Software Foundation, Inc. + # + # This file is part of GCC. + # + # GCC is free software; you can redistribute it and/or modify + # it under the terms of the GNU General Public License as published by + # the Free Software Foundation; either version 3, or (at your option) + # any later version. + # + # GCC is distributed in the hope that it will be useful, + # but WITHOUT ANY WARRANTY; without even the implied warranty of + # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + # GNU General Public License for more details. + # + # You should have received a copy of the GNU General Public License + # along with GCC; see the file COPYING. If not, write to + # the Free Software Foundation, 51 Franklin Street, Fifth Floor, + # Boston, MA 02110-1301, USA. + + # This script parses a .diff file generated with 'diff -up' or 'diff -cp' + # and adds a skeleton ChangeLog file to the file. It does not try to be + # too smart when parsing function names, but it produces a reasonable + # approximation. + # + # Author: Martin Liska + + import argparse + import datetime + import os + import re + import subprocess + import sys + from itertools import takewhile + + import requests + + from unidiff import PatchSet + + pr_regex = re.compile(r'(\/(\/|\*)|[Cc*!])\s+(?PPR [a-z+-]+\/[0-9]+)') + prnum_regex = re.compile(r'PR (?P[a-z+-]+)/(?P[0-9]+)') + dr_regex = re.compile(r'(\/(\/|\*)|[Cc*!])\s+(?PDR [0-9]+)') + dg_regex = re.compile(r'{\s+dg-(error|warning)') + pr_filename_regex = re.compile(r'(^|[\W_])[Pp][Rr](?P\d{4,})') + identifier_regex = re.compile(r'^([a-zA-Z0-9_#].*)') + comment_regex = re.compile(r'^\/\*') + struct_regex = re.compile(r'^(class|struct|union|enum)\s+' + r'(GTY\(.*\)\s+)?([a-zA-Z0-9_]+)') + macro_regex = re.compile(r'#\s*(define|undef)\s+([a-zA-Z0-9_]+)') + super_macro_regex = re.compile(r'^DEF[A-Z0-9_]+\s*\(([a-zA-Z0-9_]+)') + fn_regex = re.compile(r'([a-zA-Z_][^()\s]*)\s*\([^*]') + template_and_param_regex = re.compile(r'<[^<>]*>') + md_def_regex = re.compile(r'\(define.*\s+"(.*)"') + bugzilla_url = 'https://gcc.gnu.org/bugzilla/rest.cgi/bug?id=%s&' \ + 'include_fields=summary,component' + + function_extensions = {'.c', '.cpp', '.C', '.cc', '.h', '.inc', '.def', '.md'} + + # NB: Makefile.in isn't listed as it's not always generated. + generated_files = {'aclocal.m4', 'config.h.in', 'configure'} + + help_message = """\ + Generate ChangeLog template for PATCH. + PATCH must be generated using diff(1)'s -up or -cp options + (or their equivalent in git). + """ + + script_folder = os.path.realpath(__file__) + root = os.path.dirname(os.path.dirname(script_folder)) + + firstpr = '' + + + def find_changelog(path): + folder = os.path.split(path)[0] + while True: + if os.path.exists(os.path.join(root, folder, 'ChangeLog')): + return folder + folder = os.path.dirname(folder) + if folder == '': + return folder + raise AssertionError() + + + def extract_function_name(line): + if comment_regex.match(line): + return None + m = struct_regex.search(line) + if m: + # Struct declaration + return m.group(1) + ' ' + m.group(3) + m = macro_regex.search(line) + if m: + # Macro definition + return m.group(2) + m = super_macro_regex.search(line) + if m: + # Supermacro + return m.group(1) + m = fn_regex.search(line) + if m: + # Discard template and function parameters. + fn = m.group(1) + fn = re.sub(template_and_param_regex, '', fn) + return fn.rstrip() + return None + + + def try_add_function(functions, line): + fn = extract_function_name(line) + if fn and fn not in functions: + functions.append(fn) + return bool(fn) + + + def sort_changelog_files(changed_file): + return (changed_file.is_added_file, changed_file.is_removed_file) + + + def get_pr_titles(prs): + output = [] + for idx, pr in enumerate(prs): + pr_id = pr.split('/')[-1] + r = requests.get(bugzilla_url % pr_id) + bugs = r.json()['bugs'] + if len(bugs) == 1: + prs[idx] = 'PR %s/%s' % (bugs[0]['component'], pr_id) + out = '%s - %s\n' % (prs[idx], bugs[0]['summary']) + if out not in output: + output.append(out) + if output: + output.append('') + return '\n'.join(output) + + + def generate_changelog(data, no_functions=False, fill_pr_titles=False, + additional_prs=None): + changelogs = {} + changelog_list = [] + prs = [] + out = '' + diff = PatchSet(data) + global firstpr + + if additional_prs: + prs = [pr for pr in additional_prs if pr not in prs] + for file in diff: + # skip files that can't be parsed + if file.path == '/dev/null': + continue + changelog = find_changelog(file.path) + if changelog not in changelogs: + changelogs[changelog] = [] + changelog_list.append(changelog) + changelogs[changelog].append(file) + + # Extract PR entries from newly added tests + if 'testsuite' in file.path and file.is_added_file: + # Only search first ten lines as later lines may + # contains commented code which a note that it + # has not been tested due to a certain PR or DR. + this_file_prs = [] + for line in list(file)[0][0:10]: + m = pr_regex.search(line.value) + if m: + pr = m.group('pr') + if pr not in prs: + prs.append(pr) + this_file_prs.append(pr.split('/')[-1]) + else: + m = dr_regex.search(line.value) + if m: + dr = m.group('dr') + if dr not in prs: + prs.append(dr) + this_file_prs.append(dr.split('/')[-1]) + elif dg_regex.search(line.value): + # Found dg-warning/dg-error line + break + # PR number in the file name + fname = os.path.basename(file.path) + m = pr_filename_regex.search(fname) + if m: + pr = m.group('pr') + pr2 = 'PR ' + pr + if pr not in this_file_prs and pr2 not in prs: + prs.append(pr2) + + if prs: + firstpr = prs[0] + + if fill_pr_titles: + out += get_pr_titles(prs) + + # print list of PR entries before ChangeLog entries + if prs: + if not out: + out += '\n' + for pr in prs: + out += '\t%s\n' % pr + out += '\n' + + # sort ChangeLog so that 'testsuite' is at the end + for changelog in sorted(changelog_list, key=lambda x: 'testsuite' in x): + files = changelogs[changelog] + out += '%s:\n' % os.path.join(changelog, 'ChangeLog') + out += '\n' + # new and deleted files should be at the end + for file in sorted(files, key=sort_changelog_files): + assert file.path.startswith(changelog) + in_tests = 'testsuite' in changelog or 'testsuite' in file.path + relative_path = file.path[len(changelog):].lstrip('/') + functions = [] + if file.is_added_file: + msg = 'New test' if in_tests else 'New file' + out += '\t* %s: %s.\n' % (relative_path, msg) + elif file.is_removed_file: + out += '\t* %s: Removed.\n' % (relative_path) + elif hasattr(file, 'is_rename') and file.is_rename: + out += '\t* %s: Moved to...\n' % (relative_path) + new_path = file.target_file[2:] + # A file can be theoretically moved to a location that + # belongs to a different ChangeLog. Let user fix it. + if new_path.startswith(changelog): + new_path = new_path[len(changelog):].lstrip('/') + out += '\t* %s: ...here.\n' % (new_path) + elif os.path.basename(file.path) in generated_files: + out += '\t* %s: Regenerate.\n' % (relative_path) + else: + if not no_functions: + for hunk in file: + # Do not add function names for testsuite files + extension = os.path.splitext(relative_path)[1] + if not in_tests and extension in function_extensions: + last_fn = None + modified_visited = False + success = False + for line in hunk: + m = identifier_regex.match(line.value) + if line.is_added or line.is_removed: + # special-case definition in .md files + m2 = md_def_regex.match(line.value) + if extension == '.md' and m2: + fn = m2.group(1) + if fn not in functions: + functions.append(fn) + last_fn = None + success = True + + if not line.value.strip(): + continue + modified_visited = True + if m and try_add_function(functions, + m.group(1)): + last_fn = None + success = True + elif line.is_context: + if last_fn and modified_visited: + try_add_function(functions, last_fn) + last_fn = None + modified_visited = False + success = True + elif m: + last_fn = m.group(1) + modified_visited = False + if not success: + try_add_function(functions, + hunk.section_header) + if functions: + out += '\t* %s (%s):\n' % (relative_path, functions[0]) + for fn in functions[1:]: + out += '\t(%s):\n' % fn + else: + out += '\t* %s:\n' % relative_path + out += '\n' + return out + + + def update_copyright(data): + current_timestamp = datetime.datetime.now().strftime('%Y-%m-%d') + username = subprocess.check_output('git config user.name', shell=True, + encoding='utf8').strip() + email = subprocess.check_output('git config user.email', shell=True, + encoding='utf8').strip() + + changelogs = set() + diff = PatchSet(data) + + for file in diff: + changelog = os.path.join(find_changelog(file.path), 'ChangeLog') + if changelog not in changelogs: + changelogs.add(changelog) + with open(changelog) as f: + content = f.read() + with open(changelog, 'w+') as f: + f.write(f'{current_timestamp} {username} <{email}>\n\n') + f.write('\tUpdate copyright years.\n\n') + f.write(content) + + + if __name__ == '__main__': + parser = argparse.ArgumentParser(description=help_message) + parser.add_argument('input', nargs='?', + help='Patch file (or missing, read standard input)') + parser.add_argument('-b', '--pr-numbers', action='store', + type=lambda arg: arg.split(','), nargs='?', + help='Add the specified PRs (comma separated)') + parser.add_argument('-s', '--no-functions', action='store_true', + help='Do not generate function names in ChangeLogs') + parser.add_argument('-p', '--fill-up-bug-titles', action='store_true', + help='Download title of mentioned PRs') + parser.add_argument('-d', '--directory', + help='Root directory where to search for ChangeLog ' + 'files') + parser.add_argument('-c', '--changelog', + help='Append the ChangeLog to a git commit message ' + 'file') + parser.add_argument('--update-copyright', action='store_true', + help='Update copyright in ChangeLog files') + args = parser.parse_args() + if args.input == '-': + args.input = None + if args.directory: + root = args.directory + + data = open(args.input) if args.input else sys.stdin + if args.update_copyright: + update_copyright(data) + else: + output = generate_changelog(data, args.no_functions, + args.fill_up_bug_titles, args.pr_numbers) + if args.changelog: + lines = open(args.changelog).read().split('\n') + start = list(takewhile(lambda l: not l.startswith('#'), lines)) + end = lines[len(start):] + with open(args.changelog, 'w') as f: + if not start or not start[0]: + # initial commit subject line 'component: [PRnnnnn]' + m = prnum_regex.match(firstpr) + if m: + title = f'{m.group("comp")}: [PR{m.group("num")}]' + start.insert(0, title) + if start: + # append empty line + if start[-1] != '': + start.append('') + else: + # append 2 empty lines + start = 2 * [''] + f.write('\n'.join(start)) + f.write('\n') + f.write(output) + f.write('\n'.join(end)) + else: + print(output, end='') diff -Nrcpad gcc-9.4.0/contrib/reghunt/ChangeLog gcc-9.5.0/contrib/reghunt/ChangeLog *** gcc-9.4.0/contrib/reghunt/ChangeLog Tue Jun 1 07:53:23 2021 --- gcc-9.5.0/contrib/reghunt/ChangeLog Fri May 27 07:21:30 2022 *************** *** 1,3 **** --- 1,7 ---- + 2022-05-27 Release Manager + + * GCC 9.5.0 released. + 2021-06-01 Release Manager * GCC 9.4.0 released. diff -Nrcpad gcc-9.4.0/contrib/regression/ChangeLog gcc-9.5.0/contrib/regression/ChangeLog *** gcc-9.4.0/contrib/regression/ChangeLog Tue Jun 1 07:53:23 2021 --- gcc-9.5.0/contrib/regression/ChangeLog Fri May 27 07:21:30 2022 *************** *** 1,3 **** --- 1,7 ---- + 2022-05-27 Release Manager + + * GCC 9.5.0 released. + 2021-06-01 Release Manager * GCC 9.4.0 released. diff -Nrcpad gcc-9.4.0/contrib/test_mklog.py gcc-9.5.0/contrib/test_mklog.py *** gcc-9.4.0/contrib/test_mklog.py Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/contrib/test_mklog.py Fri May 27 07:21:10 2022 *************** *** 0 **** --- 1,487 ---- + #!/usr/bin/env python3 + + # Copyright (C) 2020 Free Software Foundation, Inc. + # + # This file is part of GCC. + # + # GCC is free software; you can redistribute it and/or modify + # it under the terms of the GNU General Public License as published by + # the Free Software Foundation; either version 3, or (at your option) + # any later version. + # + # GCC is distributed in the hope that it will be useful, + # but WITHOUT ANY WARRANTY; without even the implied warranty of + # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + # GNU General Public License for more details. + # + # You should have received a copy of the GNU General Public License + # along with GCC; see the file COPYING. If not, write to + # the Free Software Foundation, 51 Franklin Street, Fifth Floor, + # Boston, MA 02110-1301, USA. + + # This script parses a .diff file generated with 'diff -up' or 'diff -cp' + # and adds a skeleton ChangeLog file to the file. It does not try to be + # too smart when parsing function names, but it produces a reasonable + # approximation. + # + # Author: Martin Liska + + import unittest + + from mklog import generate_changelog + + import unidiff + + unidiff_supports_renaming = hasattr(unidiff.PatchedFile(), 'is_rename') + + + PATCH1 = '''\ + diff --git a/gcc/config/riscv/riscv.h b/gcc/config/riscv/riscv.h + index 567c23380fe..e6209ede9d6 100644 + --- a/gcc/config/riscv/riscv.h + +++ b/gcc/config/riscv/riscv.h + @@ -920,6 +920,7 @@ extern unsigned riscv_stack_boundary; + #define SHIFT_RS1 15 + #define SHIFT_IMM 20 + #define IMM_BITS 12 + +#define C_S_BITS 5 + #define C_SxSP_BITS 6 + + #define IMM_REACH (1LL << IMM_BITS) + @@ -929,6 +930,10 @@ extern unsigned riscv_stack_boundary; + #define SWSP_REACH (4LL << C_SxSP_BITS) + #define SDSP_REACH (8LL << C_SxSP_BITS) + + +/* This is the maximum value that can be represented in a compressed load/store + + offset (an unsigned 5-bit value scaled by 4). */ + +#define CSW_MAX_OFFSET ((4LL << C_S_BITS) - 1) & ~3 + + + /* Called from RISCV_REORG, this is defined in riscv-sr.c. */ + + extern void riscv_remove_unneeded_save_restore_calls (void); + + ''' + + EXPECTED1 = '''\ + gcc/ChangeLog: + + * config/riscv/riscv.h (C_S_BITS): + (CSW_MAX_OFFSET): + + ''' + + PATCH2 = '''\ + diff --git a/gcc/targhooks.h b/gcc/targhooks.h + index 9704d23f1db..b572a36e8cf 100644 + --- a/gcc/targhooks.h + +++ b/gcc/targhooks.h + @@ -120,7 +120,7 @@ extern bool default_empty_mask_is_expensive (unsigned); + extern void *default_init_cost (class loop *); + extern unsigned default_add_stmt_cost (class vec_info *, void *, int, + enum vect_cost_for_stmt, + - class _stmt_vec_info *, int, + + class _stmt_vec_info *, tree, int, + enum vect_cost_model_location); + extern void default_finish_cost (void *, unsigned *, unsigned *, unsigned *); + extern void default_destroy_cost_data (void *); + @@ -186,6 +186,7 @@ extern tree default_emutls_var_init (tree, tree, tree); + extern unsigned int default_hard_regno_nregs (unsigned int, machine_mode); + extern bool default_hard_regno_scratch_ok (unsigned int); + extern bool default_mode_dependent_address_p (const_rtx, addr_space_t); + +extern bool default_new_address_profitable_p (rtx, rtx_insn *, rtx); + extern bool default_target_option_valid_attribute_p (tree, tree, tree, int); + extern bool default_target_option_pragma_parse (tree, tree); + extern bool default_target_can_inline_p (tree, tree); + + ''' + + EXPECTED2 = '''\ + gcc/ChangeLog: + + * targhooks.h (default_add_stmt_cost): + (default_new_address_profitable_p): + + ''' + + PATCH3 = '''\ + diff --git a/libcpp/include/cpplib.h b/libcpp/include/cpplib.h + index 2b1e33f94ae..7f47402f9b9 100644 + --- a/libcpp/include/cpplib.h + +++ b/libcpp/include/cpplib.h + @@ -173,7 +173,7 @@ enum c_lang {CLK_GNUC89 = 0, CLK_GNUC99, CLK_GNUC11, CLK_GNUC17, CLK_GNUC2X, + CLK_STDC2X, + CLK_GNUCXX, CLK_CXX98, CLK_GNUCXX11, CLK_CXX11, + CLK_GNUCXX14, CLK_CXX14, CLK_GNUCXX17, CLK_CXX17, + - CLK_GNUCXX2A, CLK_CXX2A, CLK_ASM}; + + CLK_GNUCXX20, CLK_CXX20, CLK_ASM}; + + /* Payload of a NUMBER, STRING, CHAR or COMMENT token. */ + struct GTY(()) cpp_string { + @@ -484,7 +484,7 @@ struct cpp_options + /* Nonzero for C2X decimal floating-point constants. */ + unsigned char dfp_constants; + + - /* Nonzero for C++2a __VA_OPT__ feature. */ + + /* Nonzero for C++20 __VA_OPT__ feature. */ + unsigned char va_opt; + + /* Nonzero for the '::' token. */ + + ''' + + EXPECTED3 = '''\ + libcpp/ChangeLog: + + * include/cpplib.h (enum c_lang): + (struct cpp_options): + + ''' + + EXPECTED3B = '''\ + libcpp/ChangeLog: + + * include/cpplib.h: + + ''' + + PATCH4 = '''\ + diff --git a/gcc/ipa-icf.c b/gcc/ipa-icf.c + index aab79492357..f0df1002488 100644 + --- a/gcc/ipa-icf.c + +++ b/gcc/ipa-icf.c + @@ -1,5 +1,7 @@ + + + + + + + /* Interprocedural Identical Code Folding pass + Copyright (C) 2014-2020 Free Software Foundation, Inc. + + diff --git a/gcc/testsuite/gcc.dg/pr32374.c b/gcc/testsuite/gcc.dg/pr32374.c + deleted file mode 100644 + index de15d559f5b..00000000000 + --- a/gcc/testsuite/gcc.dg/pr32374.c + +++ /dev/null + @@ -1,20 +0,0 @@ + -/* { dg-do compile } */ + -/* { dg-options "-O2" } */ + - + -extern int *stderr; + - + -void f (int *, const char *, ...); + - + -void g (const char *conf_name) + -{ + - typedef struct + - { + - const char *label; + - const int value; + - } Section; + - + - const Section sections[2] = { {"", 0}, {"", 1} }; + - + - f (stderr, "", "", conf_name, 0, sections[0]); + - f (stderr, "", "", conf_name, 0, sections[0]); + -} + diff --git a/gcc/testsuite/gcc.dg/pr40209.c b/gcc/testsuite/gcc.dg/pr40209.c + index 4e77df5c2e6..c23d69d1f1b 100644 + --- a/gcc/testsuite/gcc.dg/pr40209.c + +++ b/gcc/testsuite/gcc.dg/pr40209.c + @@ -1,6 +1,8 @@ + /* { dg-do compile } */ + /* { dg-options "-O2 -fprofile-use -fopt-info -Wno-missing-profile" } */ + + + + + + void process(const char *s); + + struct BaseHolder { + diff --git a/gcc/testsuite/gcc.dg/pr50209.c b/gcc/testsuite/gcc.dg/pr50209.c + new file mode 100644 + index 00000000000..b28b04f6431 + --- /dev/null + +++ b/gcc/testsuite/gcc.dg/pr50209.c + @@ -0,0 +1,3 @@ + + + + + + + diff --git a/gcc/testsuite/gcc.dg/pr63567-1.c b/gcc/testsuite/gcc.dg/pr63567-1.c + index 97da171563e..00c5ecc11fa 100644 + --- a/gcc/testsuite/gcc.dg/pr63567-1.c + +++ b/gcc/testsuite/gcc.dg/pr63567-1.c + @@ -1,3 +1,4 @@ + + + /* PR c/63567 */ + /* { dg-do compile } */ + /* { dg-options "" } */ + diff --git a/gcc/varasm.c b/gcc/varasm.c + index f062e48071f..fd3c7ca8cf3 100644 + --- a/gcc/varasm.c + +++ b/gcc/varasm.c + @@ -1,3 +1,5 @@ + + + + + /* Output variables, constants and external declarations, for GNU compiler. + Copyright (C) 1987-2020 Free Software Foundation, Inc. + + diff --git a/libssp/gets-chk.c b/libssp/gets-chk.c + index 4ad78c1f77b..6687b368038 100644 + --- a/libssp/gets-chk.c + +++ b/libssp/gets-chk.c + @@ -32,6 +32,8 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see + . */ + + + + + + + #include "config.h" + #include + #include + ''' + + EXPECTED4 = '''\ + + PR 50209 + + gcc/ChangeLog: + + * ipa-icf.c: + * varasm.c: + + libssp/ChangeLog: + + * gets-chk.c: + + gcc/testsuite/ChangeLog: + + * gcc.dg/pr40209.c: + * gcc.dg/pr63567-1.c: + * gcc.dg/pr32374.c: Removed. + * gcc.dg/pr50209.c: New test. + + ''' + + PATCH5 = '''\ + diff --git a/gcc/testsuite/gcc.target/i386/pr95046-6.c b/gcc/testsuite/gcc.target/i386/pr95046-6.c + new file mode 100644 + index 00000000000..dcc8999c446 + --- /dev/null + +++ b/gcc/testsuite/gcc.target/i386/pr95046-6.c + @@ -0,0 +1,44 @@ + +/* PR target/95046 */ + +/* { dg-do compile { target { ! ia32 } } } */ + +/* { dg-options "-O3 -mavx512vl" } */ + + + + + +double r[2]; + +int s[2]; + +unsigned int u[2]; + + + +void + +test_float (void) + +{ + + for (int i = 0; i < 2; i++) + + r[i] = s[i]; + +} + + + +/* { dg-final { scan-assembler "\tvcvtdq2pd" } } */ + + + +void + +test_ufloat (void) + +{ + + for (int i = 0; i < 2; i++) + + r[i] = u[i]; + +} + + + +/* { dg-final { scan-assembler "\tvcvtudq2pd" } } */ + + + +void + +test_fix (void) + +{ + + for (int i = 0; i < 2; i++) + + s[i] = r[i]; + +} + + + +/* { dg-final { scan-assembler "\tvcvttpd2dqx" } } */ + + + +void + +test_ufix (void) + +{ + + for (int i = 0; i < 2; i++) + + u[i] = r[i]; + +} + + + +/* { dg-final { scan-assembler "\tvcvttpd2udqx" } } */ + -- + 2.26.2 + + ''' + + EXPECTED5 = '''\ + PR target/95046 - Vectorize V2SFmode operations + + PR target/95046 + + gcc/testsuite/ChangeLog: + + * gcc.target/i386/pr95046-6.c: New test. + + ''' + + PATCH6 = '''\ + diff --git a/gcc/cgraph.h b/gcc/cgraph.h + index 5ddeb65269b..cfae6e91da9 100644 + --- a/gcc/cgraph.h + +++ b/gcc/cgraph.h + @@ -937,7 +937,8 @@ struct GTY((tag ("SYMTAB_FUNCTION"))) cgraph_node : public symtab_node + split_part (false), indirect_call_target (false), local (false), + versionable (false), can_change_signature (false), + redefined_extern_inline (false), tm_may_enter_irr (false), + - ipcp_clone (false), m_uid (uid), m_summary_id (-1) + + ipcp_clone (false), declare_variant_alt (false), + + calls_declare_variant_alt (false), m_uid (uid), m_summary_id (-1) + {} + + /* Remove the node from cgraph and all inline clones inlined into it. + + ''' + + EXPECTED6 = '''\ + gcc/ChangeLog: + + * cgraph.h (struct cgraph_node): + + ''' + + PATCH7 = '''\ + diff --git a/gcc/testsuite/g++.dg/DRs/dr2237.C b/gcc/testsuite/g++.dg/DRs/dr2237.C + new file mode 100644 + index 00000000000..f3d6d11e61e + --- /dev/null + +++ b/gcc/testsuite/g++.dg/DRs/dr2237.C + @@ -0,0 +1,18 @@ + +// DR 2237 - Can a template-id name a constructor? + + + +template + +struct X { + + X(); // { dg-error "expected" "" { target c++20 } } + + X(int); // OK, injected-class-name used + + ~X(); // { dg-error "template-id not allowed for destructor" "" { target c++20 } } + +}; + + + +// ill-formed since DR1435 + +template X::X() {} // { dg-error "names the constructor|as no template constructors" } + +template X::~X() {} // { dg-error "template-id not allowed for destructor" "" { target c++20 } } + + + +struct Q { + + // ill-formed since DR1435 + + template friend X::X(); // { dg-error "names the constructor|as no template constructors" } + + template friend X::~X(); // { dg-error "template-id not allowed for destructor" "" { target c++20 } } + +}; + ''' + + EXPECTED7 = '''\ + + DR 2237 + + gcc/testsuite/ChangeLog: + + * g++.dg/DRs/dr2237.C: New test. + + ''' + + PATCH8 = '''\ + diff --git a/gcc/ipa-icf.c b/gcc/ipa-icf2.c + similarity index 100% + rename from gcc/ipa-icf.c + rename to gcc/ipa-icf2.c + ''' + + EXPECTED8 = '''\ + gcc/ChangeLog: + + * ipa-icf.c: Moved to... + * ipa-icf2.c: ...here. + + ''' + + PATCH9 = '''\ + diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md + index 2a260c1cfbd..7f03fc491c3 100644 + --- a/gcc/config/i386/sse.md + +++ b/gcc/config/i386/sse.md + @@ -17611,6 +17611,23 @@ (define_insn "avx2_v16qiv16hi2" + (set_attr "prefix" "maybe_evex") + (set_attr "mode" "OI")]) + + +(define_insn_and_split "*avx2_zero_extendv16qiv16hi2_1" + + [(set (match_operand:V32QI 0 "register_operand" "=v") + + (vec_select:V32QI + + (vec_concat:V64QI + + (match_operand:V32QI 1 "nonimmediate_operand" "vm") + + (match_operand:V32QI 2 "const0_operand" "C")) + + (match_parallel 3 "pmovzx_parallel" + + [(match_operand 4 "const_int_operand" "n")])))] + + "TARGET_AVX2" + + "#" + + "&& reload_completed" + + [(set (match_dup 0) (zero_extend:V16HI (match_dup 1)))] + +{ + + operands[0] = lowpart_subreg (V16HImode, operands[0], V32QImode); + + operands[1] = lowpart_subreg (V16QImode, operands[1], V32QImode); + +}) + + + (define_expand "v16qiv16hi2" + [(set (match_operand:V16HI 0 "register_operand") + (any_extend:V16HI + ''' + + EXPECTED9 = '''\ + gcc/ChangeLog: + + * config/i386/sse.md (*avx2_zero_extendv16qiv16hi2_1): + + ''' + + class TestMklog(unittest.TestCase): + def test_macro_definition(self): + changelog = generate_changelog(PATCH1) + assert changelog == EXPECTED1 + + def test_changed_argument(self): + changelog = generate_changelog(PATCH2) + assert changelog == EXPECTED2 + + def test_enum_and_struct(self): + changelog = generate_changelog(PATCH3) + assert changelog == EXPECTED3 + + def test_no_function(self): + changelog = generate_changelog(PATCH3, True) + assert changelog == EXPECTED3B + + def test_sorting(self): + changelog = generate_changelog(PATCH4) + assert changelog == EXPECTED4 + + def test_pr_bugzilla_download(self): + changelog = generate_changelog(PATCH5, fill_pr_titles=True) + assert changelog == EXPECTED5 + + def test_gty_in_struct(self): + changelog = generate_changelog(PATCH6, fill_pr_titles=True) + assert changelog == EXPECTED6 + + def test_dr_detection_in_test_case(self): + changelog = generate_changelog(PATCH7) + assert changelog == EXPECTED7 + + @unittest.skipIf(not unidiff_supports_renaming, + 'Newer version of unidiff is needed (0.6.0+)') + def test_renaming(self): + changelog = generate_changelog(PATCH8) + assert changelog == EXPECTED8 + + def test_define_macro_parsing(self): + changelog = generate_changelog(PATCH9) + assert changelog == EXPECTED9 diff -Nrcpad gcc-9.4.0/fixincludes/ChangeLog gcc-9.5.0/fixincludes/ChangeLog *** gcc-9.4.0/fixincludes/ChangeLog Tue Jun 1 07:53:23 2021 --- gcc-9.5.0/fixincludes/ChangeLog Fri May 27 07:21:30 2022 *************** *** 1,3 **** --- 1,7 ---- + 2022-05-27 Release Manager + + * GCC 9.5.0 released. + 2021-06-01 Release Manager * GCC 9.4.0 released. diff -Nrcpad gcc-9.4.0/gcc/BASE-VER gcc-9.5.0/gcc/BASE-VER *** gcc-9.4.0/gcc/BASE-VER Tue Jun 1 07:53:23 2021 --- gcc-9.5.0/gcc/BASE-VER Fri May 27 07:21:30 2022 *************** *** 1 **** ! 9.4.0 --- 1 ---- ! 9.5.0 diff -Nrcpad gcc-9.4.0/gcc/ChangeLog gcc-9.5.0/gcc/ChangeLog *** gcc-9.4.0/gcc/ChangeLog Tue Jun 1 07:53:23 2021 --- gcc-9.5.0/gcc/ChangeLog Fri May 27 07:21:30 2022 *************** *** 1,3 **** --- 1,1089 ---- + 2022-05-27 Release Manager + + * GCC 9.5.0 released. + + 2022-05-16 Sebastian Pop + + PR target/105162 + * config/aarch64/aarch64-protos.h (atomic_ool_names): Increase dimension + of str array. + * config/aarch64/aarch64.c (aarch64_atomic_ool_func): Call + memmodel_from_int and handle MEMMODEL_SYNC_*. + (DEF0): Add __aarch64_*_sync functions. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2022-04-27 Jakub Jelinek + + PR sanitizer/105396 + * asan.c (asan_redzone_buffer::emit_redzone_byte): Handle the case + where offset is bigger than off but smaller than m_prev_offset + 32 + bits by pushing one or more 0 bytes. Sink the + m_shadow_bytes.safe_push (value); flush_if_full (); statements from + all cases to the end of the function. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2022-04-19 Jakub Jelinek + + PR target/105257 + * config/sparc/sparc.c (epilogue_renumber): If ORIGINAL_REGNO, + use gen_raw_REG instead of gen_rtx_REG and copy over also + ORIGINAL_REGNO. Use return 0; instead of /* fallthrough */. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2022-04-12 Jakub Jelinek + + PR target/105214 + * config/i386/i386.c (ix86_emit_i387_log1p): Call + do_pending_stack_adjust. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2022-04-12 Jakub Jelinek + + PR rtl-optimization/105211 + * builtins.c (expand_builtin_int_roundingfn_2): If mathfn_built_in_1 + fails for TREE_TYPE (arg), retry it with + TREE_VALUE (TYPE_ARG_TYPES (TREE_TYPE (fndecl))) and if even that + fails, emit call normally. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2022-04-08 Jakub Jelinek + + PR tree-optimization/105189 + * fold-const.c (make_range_step): Fix up handling of + (unsigned) x +[low, -] ranges for signed x if low fits into + typeof (x). + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2022-04-06 Jakub Jelinek + + PR rtl-optimization/104985 + * combine.c (struct undo): Add where.regno member. + (do_SUBST_MODE): Rename to ... + (subst_mode): ... this. Change first argument from rtx * into int, + operate on regno_reg_rtx[regno] and save regno into where.regno. + (SUBST_MODE): Remove. + (try_combine): Use subst_mode instead of SUBST_MODE, change first + argument from regno_reg_rtx[whatever] to whatever. For UNDO_MODE, use + regno_reg_rtx[undo->where.regno] instead of *undo->where.r. + (undo_to_marker): For UNDO_MODE, use regno_reg_rtx[undo->where.regno] + instead of *undo->where.r. + (simplify_set): Use subst_mode instead of SUBST_MODE, change first + argument from regno_reg_rtx[whatever] to whatever. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2022-04-03 Jakub Jelinek + + PR target/105123 + * config/i386/i386.c (ix86_expand_vector_init_general): Avoid + using word as target for expand_simple_binop when doing ASHIFT and + IOR. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2022-03-30 Jakub Jelinek + + PR sanitizer/105093 + * ubsan.c (instrument_object_size): If t is equal to inner and + is a decl other than global var, punt. When emitting call to + UBSAN_OBJECT_SIZE ifn, make sure base is addressable. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2022-03-19 Jakub Jelinek + + PR middle-end/104971 + * config/i386/i386.c + (ix86_expand_builtin) : If ignore, + don't push/pop anything and just return const0_rtx. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2022-03-09 Jakub Jelinek + + PR c/104711 + * doc/invoke.texi (-Wextra): Document that -Wshift-negative-value + is enabled by it only for C++11 to C++17 rather than for C++03 or + later. + (-Wshift-negative-value): Similarly (except here we stated + that it is enabled for C++11 or later). + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2022-03-07 Jakub Jelinek + + PR target/104775 + * config/s390/s390.md (*cmp_and_trap_unsigned_int): Use + S constraint instead of T in the last alternative. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2022-02-25 Jakub Jelinek + Marc Glisse + + PR tree-optimization/104675 + * match.pd (t * 2U / 2 -> t & (~0 / 2), t / 2U * 2 -> t & ~1): + Restrict simplifications to INTEGRAL_TYPE_P. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2022-02-25 Jakub Jelinek + + PR target/104681 + * config/rs6000/vector.md (movmisalign): Use rs6000_emit_move. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2022-02-25 Jakub Jelinek + + PR tree-optimization/104675 + * match.pd (-A - 1 -> ~A, -1 - A -> ~A): Don't simplify for + COMPLEX_TYPE. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2022-02-17 Jakub Jelinek + + PR debug/104557 + * valtrack.c (debug_lowpart_subreg): Don't call gen_rtx_raw_SUBREG + if expr has VOIDmode. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2022-02-15 Jakub Jelinek + + PR debug/104517 + * omp-low.c (task_cpyfns): New variable. + (delete_omp_context): Don't call finalize_task_copyfn from here. + (create_task_copyfn): Push task_stmt into task_cpyfns. + (execute_lower_omp): Call finalize_task_copyfn here on entries from + task_cpyfns vector and release the vector. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2022-02-12 Jakub Jelinek + + PR sanitizer/104449 + * asan.c: Include tree-eh.h. + (handle_builtin_alloca): Handle the case when __builtin_alloca or + __builtin_alloca_with_align can throw. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2022-02-12 Jakub Jelinek + + PR target/104502 + * config/i386/i386.md (cvtsd2ss splitter): If operands[1] is xmm16+ + and AVX512VL isn't available, move operands[1] to operands[0] first. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2022-02-11 Jakub Jelinek + + PR middle-end/104446 + * combine.c (subst): Don't substitute CONST_INTs into RTX_AUTOINC + operands. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2022-02-08 Jakub Jelinek + + PR target/102140 + * config/rs6000/rs6000.c (vspltis_shifted): Return false also if + split1 pass has finished already. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2022-01-21 Jakub Jelinek + + PR rtl-optimization/102478 + * optabs.c (prepare_cmp_insn): If !can_create_pseudo_p (), don't + force_reg constants and for -fnon-call-exceptions fail if copy_to_reg + would be needed. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2022-01-19 Jakub Jelinek + + PR middle-end/102860 + * match.pd (x %[fl] y -> x % y): New simplification for + unsigned integral types. + * optabs-tree.c (optab_for_tree_code): Return unknown_optab + for {CEIL,FLOOR,ROUND}_{DIV,MOD}_EXPR with VECTOR_TYPE. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2022-01-06 Jakub Jelinek + + PR rtl-optimization/103908 + * ifcvt.c (bb_valid_for_noce_process_p): Punt on bbs ending with + asm goto. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-12-30 Jakub Jelinek + + PR rtl-optimization/103860 + * shrink-wrap.c (try_shrink_wrapping): Make sure can_get_prologue is + called on pro even if nothing further is pushed into vec. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-12-28 Jakub Jelinek + + PR rtl-optimization/103837 + * loop-invariant.c (can_move_invariant_reg): Ignore DEBUG_INSNs in + the decisions whether to return false or continue and right before + returning true reset those debug insns that previously caused + returning false. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-11-27 Jakub Jelinek + + PR tree-optimization/103435 + * gimple-ssa-store-merging.c (find_bswap_or_nop_finalize): Avoid UB if + n->range - rsize == 8, just clear both *cmpnop and *cmpxchg in that + case. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-11-17 Jakub Jelinek + + PR tree-optimization/103192 + * tree-ssa-loop-im.c (move_computations_worker): Use + reset_flow_sensitive_info instead of manually clearing + SSA_NAME_RANGE_INFO and do it for all SSA_NAMEs, not just ones + with integral types. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-11-15 Jakub Jelinek + + PR target/103205 + * config/i386/sync.md (atomic_bit_test_and_set, + atomic_bit_test_and_complement, + atomic_bit_test_and_reset): Use OPTAB_WIDEN instead of + OPTAB_DIRECT. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-11-11 Jakub Jelinek + + PR debug/101378 + * dwarf2out.c (field_byte_offset): Do the PCC_BITFIELD_TYPE_MATTERS + handling only for DECL_BIT_FIELD_TYPE decls. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-09-28 Jakub Jelinek + + PR target/102498 + * config/i386/i386.c (standard_80387_constant_p): Don't recognize + special 80387 instruction XFmode constants if flag_rounding_math. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-09-15 Jakub Jelinek + + PR c++/88578 + PR c++/102295 + * varasm.c (output_constructor_regular_field): Instead of assertion + that array_size_for_constructor result is equal to size of + TREE_TYPE (local->val) in bytes, assert that the type size is greater + or equal to array_size_for_constructor result and use type size as + fieldsize. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-09-08 Jakub Jelinek + + PR target/102224 + * config/i386/i386.md (xorsign3): If operands[1] is equal to + operands[2], emit abs2 instead. + (@xorsign3_1): Add early-clobber for output operand. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-08-23 Jakub Jelinek + + PR debug/101905 + * dwarf2out.c (gen_variable_die): Add DW_AT_location for global + register variables already during early_dwarf if possible. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-07-28 Jakub Jelinek + + PR middle-end/101624 + * ubsan.c (maybe_instrument_pointer_overflow, + instrument_object_size): Only test DECL_REGISTER on VAR_DECLs, + PARM_DECLs or RESULT_DECLs. + * sanopt.c (maybe_optimize_ubsan_ptr_ifn): Likewise. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-07-23 Jakub Jelinek + + PR rtl-optimization/101562 + * expmed.c (store_integral_bit_field): Only use movstrict_optab + if the operand isn't paradoxical. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-07-21 Jakub Jelinek + + PR middle-end/101535 + * gimplify.c (omp_check_private): Properly skip ORT_TARGET_DATA + contexts in which decl isn't privatized and for ORT_TARGET return + false if decl is mapped. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-07-20 Jakub Jelinek + + PR target/101384 + * config/rs6000/rs6000.c (vspltis_constant): Accept EASY_VECTOR_MSB + only if step and copies are equal to 1. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-07-01 Jakub Jelinek + + PR middle-end/94366 + * omp-low.c (lower_rec_input_clauses): Rename is_fp_and_or to + is_truth_op, set it for TRUTH_*IF_EXPR regardless of new_var's type, + use boolean_type_node instead of integer_type_node as NE_EXPR type. + (lower_reduction_clauses): Likewise. + + 2022-05-11 Tobias Burnus + + Backported from master: + 2021-05-04 Tobias Burnus + + * omp-low.c (lower_rec_input_clauses, lower_reduction_clauses): Handle + && and || with floating-point and complex arguments. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-07-14 Jakub Jelinek + + PR go/101407 + * godump.c (godump_str_hash): New type. + (godump_container::pot_dummy_types): Use string_hash instead of + ptr_hash in the hash_set. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-07-01 Jakub Jelinek + + PR debug/101266 + * dwarf2out.c (loc_list_from_tree_1): Handle COMPOUND_LITERAL_EXPR. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-06-29 Jakub Jelinek + + PR c++/101210 + * match.pd ((intptr_t)x eq/ne CST to x eq/ne (typeof x) CST): Don't + perform the optimization in GENERIC when sanitizing and x has a + reference type. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-06-23 Jakub Jelinek + + PR middle-end/101167 + * omp-low.c (lower_omp_regimplify_p): Regimplify also PARM_DECLs + and RESULT_DECLs that have DECL_HAS_VALUE_EXPR_P set. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-06-21 Jakub Jelinek + + PR inline-asm/100785 + * cfgexpand.c (expand_asm_stmt): If errors are emitted, + remove all inputs, outputs and clobbers from the asm and + set template to "". + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-06-18 Jakub Jelinek + + PR middle-end/101062 + * stor-layout.c (finish_bitfield_layout): Don't add bitfield + representatives in QUAL_UNION_TYPE. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-06-16 Jakub Jelinek + + PR middle-end/101062 + * stor-layout.c (finish_bitfield_representative): For fields in unions + assume nextf is always NULL. + (finish_bitfield_layout): Compute bit field representatives also in + unions, but handle it as if each bitfield was the only field in the + aggregate. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-06-15 Jakub Jelinek + + PR target/101046 + * expr.c (expand_expr_real_2) : Clear subtarget when changing mode. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-06-07 Jakub Jelinek + + PR middle-end/100898 + * tree-inline.c (copy_bb): Only use gimple_call_arg_ptr if memcpy + should copy any arguments. Don't call gimple_call_num_args + on id->call_stmt or call_stmt more than once. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-06-04 Jakub Jelinek + + PR target/100887 + * config/i386/i386.c (ix86_expand_vector_init): Handle + concatenation from half-sized modes with TImode elements. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-05-12 Jakub Jelinek + + PR middle-end/100508 + * cfgexpand.c (expand_debug_expr): For DEBUG_EXPR_DECL with vector + type, don't reuse DECL_RTL if it has different mode, instead force + creation of a new DEBUG_EXPR. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-05-11 Jakub Jelinek + + PR middle-end/100471 + * omp-low.c (lower_omp_task_reductions): For OMP_TASKLOOP, if data + is 0, bypass the reduction loop including + GOMP_taskgroup_reduction_unregister call. + + 2022-05-10 Eric Botcazou + + PR target/105292 + * config/sparc/sparc.c (sparc_vectorize_vec_perm_const): Return + true only for 8-byte vector modes. + + 2022-05-06 Richard Biener + + Backported from master: + 2022-04-21 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-05-06 Tom de Vries + + Backported from master: + 2021-02-05 Tom de Vries + + PR debug/98656 + * tree-switch-conversion.c (jump_table_cluster::emit): Add loc + argument. + (bit_test_cluster::emit): Reuse location_t for newly created + gswitch statement. + (switch_decision_tree::try_switch_expansion): Preserve + location_t. + * tree-switch-conversion.h: Change function signatures. + + 2022-05-06 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-05-06 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-05-06 Richard Biener + + Backported from master: + 2022-01-20 Richard Biener + + PR middle-end/100786 + * gimple-fold.c (get_symbol_constant_value): Only return + values of compatible type to the symbol. + + 2022-04-27 Hongyu Wang + + Backported from master: + 2022-04-25 Hongyu Wang + + PR target/105339 + * config/i386/avx512fintrin.h (_mm512_scalef_round_pd): + Add parentheses for parameters and djust format. + (_mm512_mask_scalef_round_pd): Ditto. + (_mm512_maskz_scalef_round_pd): Ditto. + (_mm512_scalef_round_ps): Ditto. + (_mm512_mask_scalef_round_ps): Ditto. + (_mm512_maskz_scalef_round_ps): Ditto. + (_mm_scalef_round_sd): Use _mm_undefined_pd. + (_mm_scalef_round_ss): Use _mm_undefined_ps. + (_mm_mask_scalef_round_sd): New macro. + (_mm_mask_scalef_round_ss): Ditto. + (_mm_maskz_scalef_round_sd): Ditto. + (_mm_maskz_scalef_round_ss): Ditto. + + 2022-04-06 Alex Coplan + + PR target/99977 + * config/arm/arm.c (arm_split_compare_and_swap): Fix up codegen + with negative immediates: ensure we expand cbranchsi4_scratch + correctly and ensure we satisfy its constraints. + * config/arm/sync.md + (@atomic_compare_and_swap_1): Don't + attempt to tie two output operands together with constraints; + collapse two alternatives. + (@atomic_compare_and_swap_1): Likewise. + * config/arm/thumb1.md (cbranchsi4_neg_late): New. + + 2022-03-30 Martin Jambor + + Backported from master: + 2020-10-19 Martin Jambor + + PR tree-optimization/97456 + PR middle-end/105071 + * tree-complex.c (set_component_ssa_name): Do not replace ignored decl + default definitions with new component vars. Reorder if conditions. + + 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-02-18 Richard Biener + + Backported from master: + 2020-09-14 Richard Biener + + PR tree-optimization/97043 + * tree-vect-slp.c (vect_analyze_slp_instance): Do not + elide a load permutation if the current vectorization + factor is one. + + 2022-02-18 Richard Biener + + Backported from master: + 2020-08-27 Richard Biener + + PR tree-optimization/96522 + * tree-ssa-address.c (copy_ref_info): Reset flow-sensitive + info of the copied points-to. Transfer bigger alignment + via the access type. + * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt): + Reset all flow-sensitive info. + + 2022-02-17 Richard Biener + + Backported from master: + 2021-11-08 Richard Biener + + PR tree-optimization/102798 + * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): + Only copy points-to info to newly generated SSA names. + + 2022-02-17 Richard Biener + + Backported from master: + 2021-11-22 Richard Biener + + PR middle-end/103181 + PR middle-end/103248 + * tree-eh.c (operation_could_trap_helper_p): Properly + check vector constants for a zero element for integer + division. Separate floating point and integer division code. + Properly handle fixed-point RDIV_EXPR. + + 2022-02-17 Richard Biener + + Backported from master: + 2021-11-15 Richard Biener + + PR tree-optimization/103237 + * tree-vect-loop.c (vect_is_simple_reduction): Fail for + double reductions with multiple inner loop LC PHI nodes. + + 2022-02-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 liuhongt + + PR target/104451 + * config/i386/sse.md (3): lowpart_subreg + operands[2] from SImode to QImode. + + 2022-01-12 Richard Biener + + Backported from master: + 2020-11-26 Richard Biener + + PR tree-optimization/97953 + * gimple-ssa-evrp-analyze.c + (evrp_range_analyzer::record_ranges_from_incoming_edge): Make + sure the condition post-dominates the SSA definition before + recording into SSA_NAME_RANGE_INFO. + + 2022-01-10 Eric Botcazou + + PR target/103465 + * coretypes.h (unwind_info_type): Swap UI_SEH and UI_TARGET. + + 2022-01-10 Eric Botcazou + + * doc/invoke.texi (%X): Remove obsolete reference to -Wl. + + 2021-12-27 Jonathan Wakely + + PR target/100985 + * config/aarch64/arm_acle.h: Remove unclosed extern "C" block. + + 2021-12-15 Kewen Lin + + Backported from master: + 2021-11-30 Kewen Lin + + PR target/102347 + * config/rs6000/rs6000.c (rs6000_builtin_decl): Remove builtin mask + check. + + 2021-12-01 Martin Jambor + + PR ipa/103267 + * tree-sra.c (scan_function): Also check ECF_LOOPING_CONST_OR_PURE + flag. + + 2021-11-25 Jan Hubicka + + Backported from master: + 2021-11-20 Jan Hubicka + + PR ipa/103052 + * ipa-pure-const.c (propagate_pure_const): Fix merging of loping flag. + + 2021-11-23 Bill Schmidt + + PR target/101985 + * config/rs6000/altivec.h (vec_cpsgn): Swap operand order. + + 2021-11-22 Stefan Schulze Frielinghaus + + Backported from master: + 2021-11-19 Stefan Schulze Frielinghaus + + * config/s390/s390.md (define_peephole2): Variable insn points + to the first matched insn. Use peep2_next_insn(1) to refer to + the second matched insn. + + 2021-11-09 Richard Biener + + Backported from master: + 2021-05-19 Richard Biener + + PR middle-end/100672 + * fold-const.c (fold_negate_expr_1): Use element_precision. + (negate_expr_p): Likewise. + + 2021-11-08 Richard Biener + + Backported from master: + 2021-08-17 Richard Biener + + PR tree-optimization/101373 + PR tree-optimization/101868 + * tree-ssa-pre.c (prune_clobbered_mems): Also prune trapping + references when the BB may not return. + + 2021-11-08 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-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-10-26 Piotr Kubaj + + Backported from master: + 2021-10-16 Piotr Kubaj + + * configure.ac: Treat powerpc64*-*-freebsd* the same as + powerpc64-*-freebsd*. + * configure: Regenerate. + + 2021-10-24 John David Anglin + + * config/pa/pa.md: Don't use 'G' constraint in integer move patterns. + + 2021-10-21 H.J. Lu + + Backported from master: + 2021-10-21 H.J. Lu + + PR target/98667 + * doc/invoke.texi: Document -fcf-protection requires i686 or + new. + + 2021-10-15 John David Anglin + + * config/pa/pa.md: Consistently use "rG" constraint for copy + instruction in move patterns. + + 2021-10-14 John David Anglin + + * config/pa/pa.md (cbranchsf4): Disable if TARGET_SOFT_FLOAT. + (cbranchdf4): Likewise. + Add missing move patterns for TARGET_SOFT_FLOAT. + + 2021-10-13 John David Anglin + + * config/pa/pa.md (muldi3): Add support for inlining 64-bit + multiplication on 32-bit PA 1.1 and 2.0 targets. + + 2021-10-13 Richard Biener + + Backported from master: + 2021-07-07 Richard Biener + + PR tree-optimization/101173 + PR tree-optimization/101280 + * gimple-loop-interchange.cc + (tree_loop_interchange::valid_data_dependences): Properly + guard all dependence checks with DDR_REVERSED_P or its + inverse. + + 2021-10-13 Richard Biener + + Backported from master: + 2021-07-12 Richard Biener + + PR tree-optimization/101394 + * tree-ssa-pre.c (do_pre_regular_insertion): Avoid inserting + copies from abnormals for a full redundancy. + + 2021-10-13 Richard Biener + + PR tree-optimization/101105 + * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): + Only ignore steps when they are equal or scalar order is preserved. + + 2021-10-13 Richard Biener + + Backported from master: + 2021-06-14 Richard Biener + + PR tree-optimization/100934 + * tree-ssa-dom.c (pass_dominator::execute): Properly + mark irreducible regions. + + 2021-10-13 Richard Biener + + Backported from master: + 2021-05-11 Richard Biener + + PR middle-end/100509 + * gimple-fold.c (fold_gimple_assign): Only call + get_symbol_constant_value on register type symbols. + + 2021-10-11 Andrew Pinski + + Backported from master: + 2021-10-11 Andrew Pinski + + PR tree-optimization/102622 + * tree-ssa-phiopt.c (conditional_replacement): Set neg + to false for one bit signed types. + + 2021-10-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-09-22 Kewen Lin + + Backported from master: + 2021-09-22 Kewen Lin + + * ipa-fnsummary.c (inline_read_section): Unpack a dummy bit + to keep consistent with the side of streaming out. + + 2021-09-17 Eric Botcazou + + PR rtl-optimization/102306 + * combine.c (try_combine): Abort the combination if we are about to + duplicate volatile references. + + 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-08-31 Thomas Schwinge + + Backported from master: + 2021-08-31 Thomas Schwinge + + * tree.c (walk_tree_1) : Handle three operands. + + 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-23 Richard Earnshaw + + Backported from master: + 2021-08-05 Richard Earnshaw + + PR target/101723 + * config/arm/arm-cpus.in (quirk_no_asmcpu): New feature bit. + (ALL_QUIRKS): Add it. + (generic-armv7-a): Add quirk to suppress writing .cpu directive in + asm output. + * config/arm/arm.c (arm_identify_fpu_from_isa): New variable. + (arm_last_printed_arch_string): Delete. + (arm_last-printed_fpu_string): Delete. + (arm_configure_build_target): If use of floating-point/SIMD is + disabled, remove all fp/simd related features from the target ISA. + (last_arm_targ_options): New variable. + (arm_print_asm_arch_directives): Add new parameters. Change order + of emitted directives and handle all cases here. + (arm_file_start): Always call arm_print_asm_arch_directives, move + all generation of .arch/.arch_extension here. + (arm_file_end): Call arm_print_asm_arch. + (arm_declare_function_name): Call arm_print_asm_arch_directives + instead of printing .arch/.fpu directives directly. + + 2021-08-23 Richard Earnshaw + + Backported from master: + 2021-08-05 Richard Earnshaw + + * config/arm/arm.c (arm_configure_build_target): Don't call + arm_option_reconfigure_globals. + (arm_option_restore): Call arm_option_reconfigure_globals after + reconfiguring the target. + * config/arm/arm-c.c (arm_pragma_target_parse): Likewise. + + 2021-08-23 Richard Earnshaw + + Backported from master: + 2021-08-05 Richard Earnshaw + + * config/arm/arm.c (arm_configure_build_target): Ensure the target's + arch_name is always set. + + 2021-08-23 Richard Earnshaw + + Backported from master: + 2019-12-11 Richard Earnshaw + + * config/arm/arm-cpus.in (ALL_SIMD_EXTERNAL): New fgroup. + (ALL_SIMD): Use it. + (ALL_FPU_EXTERNAL): New fgroup. + (ALL_FP): Use it. + (cortex-a55, cortex-a75, cortex-a76): Remove redundant + +simd from architecture specification. + (neoverse-n1, cortex-a75.cortex-a55): Likewise. + * config/arm/arm.c (isa_all_fpubits, fpu_bitlist): Rename to ... + (isa_all_fpubits_internal, fpu_bitlist_internal): ... these. + (isa_all_fpbits): New bitmap. + (arm_option_override): Initialize it. + (arm_configure_build_target): If the target isa does not have any + FP enabled, do not warn about mismatches in FP-related feature bits. + + 2021-08-19 Richard Earnshaw + + Backported from master: + 2021-05-27 Richard Earnshaw + + PR target/100767 + * config/arm/arm.c (arm_configure_build_target): Remove parameter + opts_set, directly check opts parameters for being non-null. + (arm_option_restore): Update call to arm_configure_build_target. + (arm_option_override): Likewise. + (arm_can_inline_p): Likewise. + (arm_valid_target_attribute_tree): Likewise. + * config/arm/arm-c.c (arm_pragma_target_parse): Likewise. + * config/arm/arm-protos.h (arm_configure_build_target): Adjust + prototype. + + 2021-08-17 Richard Sandiford + + Backported from master: + 2021-08-03 Richard Sandiford + + * doc/invoke.texi: Document -mtune=neoverse-512tvb and + -mcpu=neoverse-512tvb. + * config/aarch64/aarch64-cores.def (neoverse-512tvb): New entry. + * config/aarch64/aarch64-tune.md: Regenerate. + + 2021-07-31 Xi Ruoyao + + Backported from master: + 2021-07-30 Xi Ruoyao + + PR target/94780 + * config/mips/mips.c (mips_atomic_assign_expand_fenv): Use + TARGET_EXPR instead of MODIFY_EXPR. + + 2021-07-20 Uroš Bizjak + + PR target/100182 + * config/i386/sync.md (define_peephole2 atomic_storedi_fpu): + Remove. + (define_peephole2 atomic_loaddi_fpu): Ditto. + + 2021-07-19 Bill Schmidt + + PR target/101129 + * config/rs6000/rs6000-p8swap.c (has_part_mult): New. + (rs6000_analyze_swaps): Insns containing a subreg of a mult are + not swappable. + + 2021-07-19 Segher Boessenkool + + Backported from master: + 2021-04-18 Segher Boessenkool + + PR rtl-optimization/99927 + * combine.c (distribute_notes) [REG_UNUSED]: If the register already + is dead, just drop it. + + 2021-06-24 Uros Bizjak + + Backported from master: + 2021-06-23 Uroš Bizjak + + PR target/101175 + * config/i386/i386.md (bsr_rex64): Add zero-flag setting RTX. + (bsr): Ditto. + (*bsrhi): Remove. + (clz2): Update RTX pattern for additions. + + 2021-06-17 Marius Hillenbrand + + Backported from master: + 2021-06-17 Marius Hillenbrand + + PR target/100871 + * config/s390/vecintrin.h (vec_doublee): Fix to use + __builtin_s390_vflls. + (vec_floate): Fix to use __builtin_s390_vflrd. + 2021-06-01 Release Manager * GCC 9.4.0 released. diff -Nrcpad gcc-9.4.0/gcc/DATESTAMP gcc-9.5.0/gcc/DATESTAMP *** gcc-9.4.0/gcc/DATESTAMP Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/DATESTAMP Fri May 27 07:21:10 2022 *************** *** 1 **** ! 20210601 --- 1 ---- ! 20220527 diff -Nrcpad gcc-9.4.0/gcc/ada/ChangeLog gcc-9.5.0/gcc/ada/ChangeLog *** gcc-9.4.0/gcc/ada/ChangeLog Tue Jun 1 07:53:23 2021 --- gcc-9.5.0/gcc/ada/ChangeLog Fri May 27 07:21:30 2022 *************** *** 1,3 **** --- 1,17 ---- + 2022-05-27 Release Manager + + * GCC 9.5.0 released. + + 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-06-01 Release Manager * GCC 9.4.0 released. diff -Nrcpad gcc-9.4.0/gcc/ada/gcc-interface/decl.c gcc-9.5.0/gcc/ada/gcc-interface/decl.c *** gcc-9.4.0/gcc/ada/gcc-interface/decl.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/ada/gcc-interface/decl.c Fri May 27 07:21:10 2022 *************** gnat_to_gnu_entity (Entity_Id gnat_entit *** 4646,4651 **** --- 4646,4659 ---- 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. */ diff -Nrcpad gcc-9.4.0/gcc/ada/gcc-interface/utils.c gcc-9.5.0/gcc/ada/gcc-interface/utils.c *** gcc-9.4.0/gcc/ada/gcc-interface/utils.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/ada/gcc-interface/utils.c Fri May 27 07:21:10 2022 *************** update_pointer_to (tree old_type, tree n *** 4144,4149 **** --- 4144,4150 ---- 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 *** 4160,4166 **** /* 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; --- 4161,4170 ---- /* 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; diff -Nrcpad gcc-9.4.0/gcc/asan.c gcc-9.5.0/gcc/asan.c *** gcc-9.4.0/gcc/asan.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/asan.c Fri May 27 07:21:10 2022 *************** along with GCC; see the file COPYING3. *** 63,68 **** --- 63,69 ---- #include "builtins.h" #include "fnmatch.h" #include "tree-inline.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 *** 623,636 **** tree last_alloca = get_last_alloca_addr (); tree callee = gimple_call_fndecl (call); tree old_size = gimple_call_arg (call, 0); ! tree ptr_type = gimple_call_lhs (call) ? TREE_TYPE (gimple_call_lhs (call)) ! : ptr_type_node; tree partial_size = NULL_TREE; unsigned int align = DECL_FUNCTION_CODE (callee) == BUILT_IN_ALLOCA ? 0 : tree_to_uhwi (gimple_call_arg (call, 1)); /* If ALIGN > ASAN_RED_ZONE_SIZE, we embed left redzone into first ALIGN bytes of allocated space. Otherwise, align alloca to ASAN_RED_ZONE_SIZE manually. */ --- 624,647 ---- tree last_alloca = get_last_alloca_addr (); tree callee = gimple_call_fndecl (call); + tree lhs = gimple_call_lhs (call); tree old_size = gimple_call_arg (call, 0); ! tree ptr_type = lhs ? TREE_TYPE (lhs) : ptr_type_node; tree partial_size = NULL_TREE; unsigned int align = DECL_FUNCTION_CODE (callee) == BUILT_IN_ALLOCA ? 0 : tree_to_uhwi (gimple_call_arg (call, 1)); + bool throws = false; + edge e = NULL; + if (stmt_can_throw_internal (cfun, call)) + { + if (!lhs) + return; + throws = true; + e = find_fallthru_edge (gsi_bb (*iter)->succs); + } + /* If ALIGN > ASAN_RED_ZONE_SIZE, we embed left redzone into first ALIGN bytes of allocated space. Otherwise, align alloca to ASAN_RED_ZONE_SIZE manually. */ *************** handle_builtin_alloca (gcall *call, gimp *** 687,715 **** 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 --- 698,751 ---- build_int_cst (size_type_node, align)); tree new_alloca_with_rz = make_ssa_name (ptr_type, gg); gimple_call_set_lhs (gg, new_alloca_with_rz); ! if (throws) ! { ! gimple_call_set_lhs (call, NULL); ! gsi_replace (iter, gg, true); ! } ! else ! gsi_insert_before (iter, gg, GSI_SAME_STMT); /* new_alloca = new_alloca_with_rz + align. */ g = gimple_build_assign (make_ssa_name (ptr_type), POINTER_PLUS_EXPR, new_alloca_with_rz, build_int_cst (size_type_node, align / BITS_PER_UNIT)); ! gimple_stmt_iterator gsi = gsi_none (); ! if (throws) ! { ! gsi_insert_on_edge_immediate (e, g); ! gsi = gsi_for_stmt (g); ! } ! else ! gsi_insert_before (iter, g, GSI_SAME_STMT); tree new_alloca = gimple_assign_lhs (g); /* Poison newly created alloca redzones: __asan_alloca_poison (new_alloca, old_size). */ fn = builtin_decl_implicit (BUILT_IN_ASAN_ALLOCA_POISON); gg = gimple_build_call (fn, 2, new_alloca, old_size); ! if (throws) ! gsi_insert_after (&gsi, gg, GSI_NEW_STMT); ! else ! gsi_insert_before (iter, gg, GSI_SAME_STMT); /* Save new_alloca_with_rz value into last_alloca to use it during allocas unpoisoning. */ g = gimple_build_assign (last_alloca, new_alloca_with_rz); ! if (throws) ! gsi_insert_after (&gsi, g, GSI_NEW_STMT); ! else ! gsi_insert_before (iter, g, GSI_SAME_STMT); /* Finally, replace old alloca ptr with NEW_ALLOCA. */ ! if (throws) ! { ! g = gimple_build_assign (lhs, new_alloca); ! gsi_insert_after (&gsi, g, GSI_NEW_STMT); ! } ! else ! replace_call_with_value (iter, new_alloca); } /* Return the memory references contained in a gimple statement *************** asan_redzone_buffer::emit_redzone_byte ( *** 1270,1279 **** HOST_WIDE_INT off = m_prev_offset + ASAN_SHADOW_GRANULARITY * m_shadow_bytes.length (); if (off == offset) { ! /* Consecutive shadow memory byte. */ ! m_shadow_bytes.safe_push (value); ! flush_if_full (); } else { --- 1306,1319 ---- HOST_WIDE_INT off = m_prev_offset + ASAN_SHADOW_GRANULARITY * m_shadow_bytes.length (); if (off == offset) + /* Consecutive shadow memory byte. */; + else if (offset < m_prev_offset + (HOST_WIDE_INT) (ASAN_SHADOW_GRANULARITY + * RZ_BUFFER_SIZE) + && !m_shadow_bytes.is_empty ()) { ! /* Shadow memory byte with a small gap. */ ! for (; off < offset; off += ASAN_SHADOW_GRANULARITY) ! m_shadow_bytes.safe_push (0); } else { *************** asan_redzone_buffer::emit_redzone_byte ( *** 1294,1302 **** m_shadow_mem = adjust_address (m_shadow_mem, VOIDmode, diff >> ASAN_SHADOW_SHIFT); m_prev_offset = offset; - m_shadow_bytes.safe_push (value); - flush_if_full (); } } /* Emit RTX emission of the content of the buffer. */ --- 1334,1342 ---- m_shadow_mem = adjust_address (m_shadow_mem, VOIDmode, diff >> ASAN_SHADOW_SHIFT); m_prev_offset = offset; } + m_shadow_bytes.safe_push (value); + flush_if_full (); } /* Emit RTX emission of the content of the buffer. */ diff -Nrcpad gcc-9.4.0/gcc/brig/ChangeLog gcc-9.5.0/gcc/brig/ChangeLog *** gcc-9.4.0/gcc/brig/ChangeLog Tue Jun 1 07:53:23 2021 --- gcc-9.5.0/gcc/brig/ChangeLog Fri May 27 07:21:30 2022 *************** *** 1,3 **** --- 1,7 ---- + 2022-05-27 Release Manager + + * GCC 9.5.0 released. + 2021-06-01 Release Manager * GCC 9.4.0 released. diff -Nrcpad gcc-9.4.0/gcc/builtins.c gcc-9.5.0/gcc/builtins.c *** gcc-9.4.0/gcc/builtins.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/builtins.c Fri May 27 07:21:10 2022 *************** expand_builtin_int_roundingfn_2 (tree ex *** 2897,2912 **** 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); --- 2897,2924 ---- BUILT_IN_IROUND and if __builtin_iround is called directly, emit a call to lround in the hope that the target provides at least some C99 functions. This should result in the best user experience for ! not full C99 targets. ! As scalar float conversions with same mode are useless in GIMPLE, ! we can end up e.g. with _Float32 argument passed to float builtin, ! try to get the type from the builtin prototype first. */ ! tree fallback_fndecl = NULL_TREE; ! if (tree argtypes = TYPE_ARG_TYPES (TREE_TYPE (fndecl))) ! fallback_fndecl ! = mathfn_built_in_1 (TREE_VALUE (argtypes), ! as_combined_fn (fallback_fn), 0); ! if (fallback_fndecl == NULL_TREE) ! fallback_fndecl ! = mathfn_built_in_1 (TREE_TYPE (arg), ! as_combined_fn (fallback_fn), 0); ! if (fallback_fndecl) ! { ! exp = build_call_nofold_loc (EXPR_LOCATION (exp), ! fallback_fndecl, 1, arg); ! target = expand_call (exp, NULL_RTX, target == const0_rtx); ! target = maybe_emit_group_store (target, TREE_TYPE (exp)); ! return convert_to_mode (mode, target, 0); ! } } return expand_call (exp, target, target == const0_rtx); diff -Nrcpad gcc-9.4.0/gcc/c/ChangeLog gcc-9.5.0/gcc/c/ChangeLog *** gcc-9.4.0/gcc/c/ChangeLog Tue Jun 1 07:53:23 2021 --- gcc-9.5.0/gcc/c/ChangeLog Fri May 27 07:21:30 2022 *************** *** 1,3 **** --- 1,52 ---- + 2022-05-27 Release Manager + + * GCC 9.5.0 released. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2022-03-09 Jakub Jelinek + + PR c/104711 + * c-fold.c (c_fully_fold_internal): Don't emit + -Wshift-negative-value warning if TYPE_OVERFLOW_WRAPS. + * c-typeck.c (build_binary_op): Likewise. + + 2022-05-11 Tobias Burnus + + Backported from master: + 2021-05-04 Tobias Burnus + + * c-typeck.c (c_finish_omp_clauses): Accept float + complex + for || and && reductions. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-06-24 Jakub Jelinek + + PR c/101176 + * c-parser.c (c_parser_has_attribute_expression): Set source range for + the result. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-06-24 Jakub Jelinek + + PR c/101171 + * c-typeck.c (build_c_cast): Don't call note_integer_operands on + error_mark_node. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-06-21 Jakub Jelinek + + PR inline-asm/100785 + * c-typeck.c (c_mark_addressable): Diagnose trying to make + bit-fields addressable. + 2021-06-01 Release Manager * GCC 9.4.0 released. diff -Nrcpad gcc-9.4.0/gcc/c/c-fold.c gcc-9.5.0/gcc/c/c-fold.c *** gcc-9.4.0/gcc/c/c-fold.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/c/c-fold.c Fri May 27 07:21:10 2022 *************** c_fully_fold_internal (tree expr, bool i *** 380,385 **** --- 380,386 ---- && 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-9.4.0/gcc/c/c-parser.c gcc-9.5.0/gcc/c/c-parser.c *** gcc-9.4.0/gcc/c/c-parser.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/c/c-parser.c Fri May 27 07:21:10 2022 *************** c_parser_has_attribute_expression (c_par *** 7590,7595 **** --- 7590,7596 ---- { gcc_assert (c_parser_next_token_is_keyword (parser, RID_BUILTIN_HAS_ATTRIBUTE)); + location_t start = c_parser_peek_token (parser)->location; c_parser_consume_token (parser); c_inhibit_evaluation_warnings++; *************** c_parser_has_attribute_expression (c_par *** 7668,7673 **** --- 7669,7675 ---- parser->lex_untranslated_string = false; + location_t finish = c_parser_peek_token (parser)->location; if (c_parser_next_token_is (parser, CPP_CLOSE_PAREN)) c_parser_consume_token (parser); else *************** c_parser_has_attribute_expression (c_par *** 7696,7701 **** --- 7698,7704 ---- else result.value = boolean_false_node; + set_c_expr_source_range (&result, start, finish); return result; } diff -Nrcpad gcc-9.4.0/gcc/c/c-typeck.c gcc-9.5.0/gcc/c/c-typeck.c *** gcc-9.4.0/gcc/c/c-typeck.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/c/c-typeck.c Fri May 27 07:21:10 2022 *************** c_mark_addressable (tree exp, bool array *** 4989,4996 **** && TREE_CODE (TREE_TYPE (x)) == ARRAY_TYPE && VECTOR_TYPE_P (TREE_TYPE (TREE_OPERAND (x, 0)))) return true; ! /* FALLTHRU */ case COMPONENT_REF: case ADDR_EXPR: case ARRAY_REF: case REALPART_EXPR: --- 4989,5005 ---- && TREE_CODE (TREE_TYPE (x)) == ARRAY_TYPE && VECTOR_TYPE_P (TREE_TYPE (TREE_OPERAND (x, 0)))) return true; ! x = TREE_OPERAND (x, 0); ! break; ! case COMPONENT_REF: + if (DECL_C_BIT_FIELD (TREE_OPERAND (x, 1))) + { + error ("cannot take address of bit-field %qD", + TREE_OPERAND (x, 1)); + return false; + } + /* FALLTHRU */ case ADDR_EXPR: case ARRAY_REF: case REALPART_EXPR: *************** build_c_cast (location_t loc, tree type, *** 5999,6004 **** --- 6008,6014 ---- return value reflects this. */ if (int_operands && INTEGRAL_TYPE_P (type) + && value != error_mark_node && !EXPR_INT_CONST_OPERANDS (value)) value = note_integer_operands (value); *************** build_binary_op (location_t location, en *** 11901,11907 **** { 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. */ --- 11911,11918 ---- { doing_shift = true; if (TREE_CODE (op0) == INTEGER_CST ! && tree_int_cst_sgn (op0) < 0 ! && !TYPE_OVERFLOW_WRAPS (type0)) { /* Don't reject a left shift of a negative value in a context where a constant expression is needed in C90. */ *************** c_finish_omp_clauses (tree clauses, enum *** 13875,13880 **** --- 13886,13893 ---- case PLUS_EXPR: case MULT_EXPR: case MINUS_EXPR: + case TRUTH_ANDIF_EXPR: + case TRUTH_ORIF_EXPR: break; case MIN_EXPR: if (TREE_CODE (type) == COMPLEX_TYPE) *************** c_finish_omp_clauses (tree clauses, enum *** 13893,13906 **** case BIT_IOR_EXPR: r_name = "|"; break; - case TRUTH_ANDIF_EXPR: - if (FLOAT_TYPE_P (type)) - r_name = "&&"; - break; - case TRUTH_ORIF_EXPR: - if (FLOAT_TYPE_P (type)) - r_name = "||"; - break; default: gcc_unreachable (); } --- 13906,13911 ---- diff -Nrcpad gcc-9.4.0/gcc/c-family/ChangeLog gcc-9.5.0/gcc/c-family/ChangeLog *** gcc-9.4.0/gcc/c-family/ChangeLog Tue Jun 1 07:53:23 2021 --- gcc-9.5.0/gcc/c-family/ChangeLog Fri May 27 07:21:30 2022 *************** *** 1,3 **** --- 1,58 ---- + 2022-05-27 Release Manager + + * GCC 9.5.0 released. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2022-04-11 Jakub Jelinek + + PR c++/105186 + * c-common.c (c_common_nodes_and_builtins): After registering __int%d + and __int%d__ builtin types, initialize corresponding ridpointers + entry. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2022-03-09 Jakub Jelinek + + PR c/104711 + * c-opts.c (c_common_post_options): Don't enable + -Wshift-negative-value from -Wextra for C++20 or later. + * c-ubsan.c (ubsan_instrument_shift): Adjust comments. + * c-warn.c (maybe_warn_shift_overflow): Use TYPE_OVERFLOW_WRAPS + instead of TYPE_UNSIGNED. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2022-02-16 Jakub Jelinek + + PR c/104510 + * c-common.c (shorten_compare): Convert original arguments to + the original *restype_ptr when mixing binary and decimal float. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-10-21 Jakub Jelinek + + PR middle-end/64888 + * c-omp.c (c_omp_predefined_variable): Return true also for + ubsan_create_data created artificial variables. + + 2022-05-11 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-06-01 Release Manager * GCC 9.4.0 released. diff -Nrcpad gcc-9.4.0/gcc/c-family/c-common.c gcc-9.5.0/gcc/c-family/c-common.c *** gcc-9.4.0/gcc/c-family/c-common.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/c-family/c-common.c Fri May 27 07:21:10 2022 *************** shorten_compare (location_t loc, tree *o *** 2993,2999 **** 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)) --- 2993,3003 ---- 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) *** 4022,4027 **** --- 4026,4034 ---- sprintf (name, "__int%d", int_n_data[i].bitsize); record_builtin_type ((enum rid)(RID_FIRST_INT_N + i), name, int_n_trees[i].signed_type); + ridpointers[RID_FIRST_INT_N + i] + = DECL_NAME (TYPE_NAME (int_n_trees[i].signed_type)); + sprintf (name, "__int%d unsigned", int_n_data[i].bitsize); record_builtin_type (RID_MAX, name, int_n_trees[i].unsigned_type); } diff -Nrcpad gcc-9.4.0/gcc/c-family/c-omp.c gcc-9.5.0/gcc/c-family/c-omp.c *** gcc-9.4.0/gcc/c-family/c-omp.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/c-family/c-omp.c Fri May 27 07:21:10 2022 *************** c_omp_predefined_variable (tree decl) *** 2032,2044 **** { 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; } --- 2032,2075 ---- { 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-9.4.0/gcc/c-family/c-opts.c gcc-9.5.0/gcc/c-family/c-opts.c *** gcc-9.4.0/gcc/c-family/c-opts.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/c-family/c-opts.c Fri May 27 07:21:10 2022 *************** c_common_post_options (const char **pfil *** 907,916 **** 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. */ if (!global_options_set.x_warn_register) --- 907,918 ---- if (warn_shift_overflow == -1) warn_shift_overflow = cxx_dialect >= cxx11 || flag_isoc99; ! /* -Wshift-negative-value is enabled by -Wextra in C99 and C++11 to C++17 ! modes. */ if (warn_shift_negative_value == -1) warn_shift_negative_value = (extra_warnings ! && (cxx_dialect >= cxx11 || flag_isoc99) ! && cxx_dialect < cxx2a); /* -Wregister is enabled by default in C++17. */ if (!global_options_set.x_warn_register) diff -Nrcpad gcc-9.4.0/gcc/c-family/c-ubsan.c gcc-9.5.0/gcc/c-family/c-ubsan.c *** gcc-9.4.0/gcc/c-family/c-ubsan.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/c-family/c-ubsan.c Fri May 27 07:21:10 2022 *************** ubsan_instrument_division (location_t lo *** 41,46 **** --- 41,47 ---- { tree t, tt; tree type = TREE_TYPE (op0); + enum sanitize_code flag = SANITIZE_DIVIDE; /* At this point both operands should have the same type, because they are already converted to RESULT_TYPE. *************** ubsan_instrument_division (location_t lo *** 58,65 **** op1, build_int_cst (type, 0)); else if (TREE_CODE (type) == REAL_TYPE && sanitize_flags_p (SANITIZE_FLOAT_DIVIDE)) ! t = fold_build2 (EQ_EXPR, boolean_type_node, ! op1, build_real (type, dconst0)); else return NULL_TREE; --- 59,69 ---- op1, build_int_cst (type, 0)); else if (TREE_CODE (type) == REAL_TYPE && sanitize_flags_p (SANITIZE_FLOAT_DIVIDE)) ! { ! t = fold_build2 (EQ_EXPR, boolean_type_node, ! op1, build_real (type, dconst0)); ! flag = SANITIZE_FLOAT_DIVIDE; ! } else return NULL_TREE; *************** ubsan_instrument_division (location_t lo *** 95,101 **** NULL_TREE); data = build_fold_addr_expr_loc (loc, data); enum built_in_function bcode ! = (flag_sanitize_recover & SANITIZE_DIVIDE) ? BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW : BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW_ABORT; tt = builtin_decl_explicit (bcode); --- 99,105 ---- NULL_TREE); data = build_fold_addr_expr_loc (loc, data); enum built_in_function bcode ! = (flag_sanitize_recover & flag) ? BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW : BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW_ABORT; tt = builtin_decl_explicit (bcode); *************** ubsan_instrument_shift (location_t loc, *** 142,148 **** || cxx_dialect >= cxx2a) ; ! /* For signed x << y, in C99/C11, the following: (unsigned) x >> (uprecm1 - y) if non-zero, is undefined. */ else if (code == LSHIFT_EXPR && flag_isoc99 && cxx_dialect < cxx11) --- 146,152 ---- || cxx_dialect >= cxx2a) ; ! /* For signed x << y, in C99 and later, the following: (unsigned) x >> (uprecm1 - y) if non-zero, is undefined. */ else if (code == LSHIFT_EXPR && flag_isoc99 && cxx_dialect < cxx11) *************** ubsan_instrument_shift (location_t loc, *** 155,161 **** build_int_cst (TREE_TYPE (tt), 0)); } ! /* For signed x << y, in C++11 and later, the following: x < 0 || ((unsigned) x >> (uprecm1 - y)) if > 1, is undefined. */ else if (code == LSHIFT_EXPR && cxx_dialect >= cxx11) --- 159,165 ---- build_int_cst (TREE_TYPE (tt), 0)); } ! /* For signed x << y, in C++11 to C++17, the following: x < 0 || ((unsigned) x >> (uprecm1 - y)) if > 1, is undefined. */ else if (code == LSHIFT_EXPR && cxx_dialect >= cxx11) diff -Nrcpad gcc-9.4.0/gcc/c-family/c-warn.c gcc-9.5.0/gcc/c-family/c-warn.c *** gcc-9.4.0/gcc/c-family/c-warn.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/c-family/c-warn.c Fri May 27 07:21:10 2022 *************** maybe_warn_shift_overflow (location_t lo *** 2464,2470 **** unsigned int prec0 = TYPE_PRECISION (type0); /* Left-hand operand must be signed. */ ! if (TYPE_UNSIGNED (type0) || cxx_dialect >= cxx2a) return false; unsigned int min_prec = (wi::min_precision (wi::to_wide (op0), SIGNED) --- 2464,2470 ---- unsigned int prec0 = TYPE_PRECISION (type0); /* Left-hand operand must be signed. */ ! if (TYPE_OVERFLOW_WRAPS (type0) || cxx_dialect >= cxx2a) return false; unsigned int min_prec = (wi::min_precision (wi::to_wide (op0), SIGNED) diff -Nrcpad gcc-9.4.0/gcc/cfgexpand.c gcc-9.5.0/gcc/cfgexpand.c *** gcc-9.4.0/gcc/cfgexpand.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/cfgexpand.c Fri May 27 07:21:10 2022 *************** expand_asm_stmt (gasm *stmt) *** 2950,2955 **** --- 2950,2956 ---- unsigned ninputs = gimple_asm_ninputs (stmt); unsigned nlabels = gimple_asm_nlabels (stmt); unsigned i; + bool error_seen = false; /* ??? Diagnose during gimplification? */ if (ninputs + noutputs + nlabels > MAX_RECOG_OPERANDS) *************** expand_asm_stmt (gasm *stmt) *** 3008,3013 **** --- 3009,3015 ---- { /* ??? Diagnose during gimplification? */ error ("unknown register name %qs in %", regname); + error_seen = true; } else if (j == -4) { *************** expand_asm_stmt (gasm *stmt) *** 3071,3077 **** && REG_P (DECL_RTL (output_tvec[j])) && HARD_REGISTER_P (DECL_RTL (output_tvec[j])) && output_hregno == REGNO (DECL_RTL (output_tvec[j]))) ! error ("invalid hard register usage between output operands"); /* Verify matching constraint operands use the same hard register and that the non-matching constraint operands do not use the same --- 3073,3082 ---- && REG_P (DECL_RTL (output_tvec[j])) && HARD_REGISTER_P (DECL_RTL (output_tvec[j])) && output_hregno == REGNO (DECL_RTL (output_tvec[j]))) ! { ! error ("invalid hard register usage between output operands"); ! error_seen = true; ! } /* Verify matching constraint operands use the same hard register and that the non-matching constraint operands do not use the same *************** expand_asm_stmt (gasm *stmt) *** 3094,3106 **** } if (i == match && output_hregno != input_hregno) ! error ("invalid hard register usage between output operand " ! "and matching constraint operand"); else if (early_clobber_p && i != match && output_hregno == input_hregno) ! error ("invalid hard register usage between earlyclobber " ! "operand and input operand"); } } --- 3099,3117 ---- } if (i == match && output_hregno != input_hregno) ! { ! error ("invalid hard register usage between output " ! "operand and matching constraint operand"); ! error_seen = true; ! } else if (early_clobber_p && i != match && output_hregno == input_hregno) ! { ! error ("invalid hard register usage between " ! "earlyclobber operand and input operand"); ! error_seen = true; ! } } } *************** expand_asm_stmt (gasm *stmt) *** 3168,3174 **** && 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); --- 3179,3187 ---- && GET_MODE (DECL_RTL (val)) != TYPE_MODE (type))) || ! allows_reg || is_inout ! || TREE_ADDRESSABLE (type) ! || (!tree_fits_poly_int64_p (TYPE_SIZE (type)) ! && !known_size_p (max_int_size_in_bytes (type)))) { op = expand_expr (val, NULL_RTX, VOIDmode, !allows_reg ? EXPAND_MEMORY : EXPAND_WRITE); *************** expand_asm_stmt (gasm *stmt) *** 3176,3182 **** op = validize_mem (op); if (! allows_reg && !MEM_P (op)) ! error ("output number %d not directly addressable", i); if ((! allows_mem && MEM_P (op) && GET_MODE (op) != BLKmode) || GET_CODE (op) == CONCAT) { --- 3189,3198 ---- op = validize_mem (op); if (! allows_reg && !MEM_P (op)) ! { ! error ("output number %d not directly addressable", i); ! error_seen = true; ! } if ((! allows_mem && MEM_P (op) && GET_MODE (op) != BLKmode) || GET_CODE (op) == CONCAT) { *************** expand_asm_stmt (gasm *stmt) *** 3216,3221 **** --- 3232,3250 ---- inout_opnum.safe_push (i); } + const char *str = gimple_asm_string (stmt); + if (error_seen) + { + ninputs = 0; + noutputs = 0; + inout_opnum.truncate (0); + output_rvec.truncate (0); + clobber_rvec.truncate (0); + constraints.truncate (0); + CLEAR_HARD_REG_SET (clobbered_regs); + str = ""; + } + auto_vec input_rvec; auto_vec input_mode; *************** expand_asm_stmt (gasm *stmt) *** 3273,3279 **** } /* For in-out operands, copy output rtx to input rtx. */ ! unsigned ninout = inout_opnum.length(); for (i = 0; i < ninout; i++) { int j = inout_opnum[i]; --- 3302,3308 ---- } /* For in-out operands, copy output rtx to input rtx. */ ! unsigned ninout = inout_opnum.length (); for (i = 0; i < ninout; i++) { int j = inout_opnum[i]; *************** expand_asm_stmt (gasm *stmt) *** 3327,3333 **** rtx body = gen_rtx_ASM_OPERANDS ((noutputs == 0 ? VOIDmode : GET_MODE (output_rvec[0])), ! ggc_strdup (gimple_asm_string (stmt)), "", 0, argvec, constraintvec, labelvec, locus); MEM_VOLATILE_P (body) = gimple_asm_volatile_p (stmt); --- 3356,3362 ---- rtx body = gen_rtx_ASM_OPERANDS ((noutputs == 0 ? VOIDmode : GET_MODE (output_rvec[0])), ! ggc_strdup (str), "", 0, argvec, constraintvec, labelvec, locus); MEM_VOLATILE_P (body) = gimple_asm_volatile_p (stmt); *************** expand_debug_expr (tree exp) *** 4356,4362 **** op0 = DECL_RTL_IF_SET (exp); if (op0) ! return op0; op0 = gen_rtx_DEBUG_EXPR (mode); DEBUG_EXPR_TREE_DECL (op0) = exp; --- 4385,4396 ---- op0 = DECL_RTL_IF_SET (exp); if (op0) ! { ! if (GET_MODE (op0) != mode) ! gcc_assert (VECTOR_TYPE_P (TREE_TYPE (exp))); ! else ! return op0; ! } op0 = gen_rtx_DEBUG_EXPR (mode); DEBUG_EXPR_TREE_DECL (op0) = exp; diff -Nrcpad gcc-9.4.0/gcc/combine.c gcc-9.5.0/gcc/combine.c *** gcc-9.4.0/gcc/combine.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/combine.c Fri May 27 07:21:10 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) *** 793,802 **** well. */ static void ! do_SUBST_MODE (rtx *into, machine_mode newval) { struct undo *buf; ! machine_mode oldval = GET_MODE (*into); if (oldval == newval) return; --- 793,803 ---- 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 *** 807,821 **** 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 --- 808,820 ---- 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, *** 3222,3227 **** --- 3221,3236 ---- 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, *** 3334,3340 **** newpat_dest = gen_rtx_REG (compare_mode, regno); else { ! SUBST_MODE (regno_reg_rtx[regno], compare_mode); newpat_dest = regno_reg_rtx[regno]; } } --- 3343,3349 ---- 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, *** 3724,3730 **** ni2dest = gen_rtx_REG (new_mode, REGNO (i2dest)); else { ! SUBST_MODE (regno_reg_rtx[REGNO (i2dest)], new_mode); ni2dest = regno_reg_rtx[REGNO (i2dest)]; } --- 3733,3739 ---- 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, *** 3861,3867 **** newdest = gen_rtx_REG (split_mode, REGNO (i2dest)); else { ! SUBST_MODE (regno_reg_rtx[REGNO (i2dest)], split_mode); newdest = regno_reg_rtx[REGNO (i2dest)]; } } --- 3870,3876 ---- 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, *** 4229,4235 **** 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; --- 4238,4244 ---- 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; *************** undo_to_marker (void *marker) *** 4896,4902 **** *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; --- 4905,4912 ---- *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 *** 5697,5702 **** --- 5707,5718 ---- 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) *** 6970,6976 **** new_dest = gen_rtx_REG (compare_mode, regno); else { ! SUBST_MODE (regno_reg_rtx[regno], compare_mode); new_dest = regno_reg_rtx[regno]; } --- 6986,6992 ---- new_dest = gen_rtx_REG (compare_mode, regno); else { ! subst_mode (regno, compare_mode); new_dest = regno_reg_rtx[regno]; } *************** distribute_notes (rtx notes, rtx_insn *f *** 14392,14397 **** --- 14408,14418 ---- we keep notes from i2 or i1 if they will turn into REG_DEAD notes. */ + /* If this register is set or clobbered between FROM_INSN and I3, + we should not create a note for it. */ + if (reg_set_between_p (XEXP (note, 0), from_insn, i3)) + break; + /* If this register is set or clobbered in I3, put the note there unless there is one already. */ if (reg_set_p (XEXP (note, 0), PATTERN (i3))) diff -Nrcpad gcc-9.4.0/gcc/config/aarch64/aarch64-cores.def gcc-9.5.0/gcc/config/aarch64/aarch64-cores.def *** gcc-9.4.0/gcc/config/aarch64/aarch64-cores.def Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/config/aarch64/aarch64-cores.def Fri May 27 07:21:10 2022 *************** AARCH64_CORE("tsv110", tsv110, tsv110, *** 115,121 **** /* ARM ('A') cores. */ AARCH64_CORE("zeus", zeus, cortexa57, 8_4A, AARCH64_FL_FOR_ARCH8_4 | AARCH64_FL_SVE | AARCH64_FL_RNG | AARCH64_FL_RCPC | AARCH64_FL_F16 | AARCH64_FL_PROFILE | AARCH64_FL_SSBS, neoversev1, 0x41, 0xd40, -1) AARCH64_CORE("neoverse-v1", neoversev1, cortexa57, 8_4A, AARCH64_FL_FOR_ARCH8_4 | AARCH64_FL_SVE | AARCH64_FL_RNG | AARCH64_FL_RCPC | AARCH64_FL_F16 | AARCH64_FL_PROFILE | AARCH64_FL_SSBS, neoversev1, 0x41, 0xd40, -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) --- 115,121 ---- /* ARM ('A') cores. */ AARCH64_CORE("zeus", zeus, cortexa57, 8_4A, AARCH64_FL_FOR_ARCH8_4 | AARCH64_FL_SVE | AARCH64_FL_RNG | AARCH64_FL_RCPC | AARCH64_FL_F16 | AARCH64_FL_PROFILE | AARCH64_FL_SSBS, neoversev1, 0x41, 0xd40, -1) AARCH64_CORE("neoverse-v1", neoversev1, cortexa57, 8_4A, AARCH64_FL_FOR_ARCH8_4 | AARCH64_FL_SVE | AARCH64_FL_RNG | AARCH64_FL_RCPC | AARCH64_FL_F16 | AARCH64_FL_PROFILE | AARCH64_FL_SSBS, neoversev1, 0x41, 0xd40, -1) ! AARCH64_CORE("neoverse-512tvb", neoverse512tvb, cortexa57, 8_4A, AARCH64_FL_FOR_ARCH8_4 | AARCH64_FL_SVE | AARCH64_FL_RNG | AARCH64_FL_RCPC | AARCH64_FL_F16 | AARCH64_FL_PROFILE | AARCH64_FL_SSBS, neoversev1, INVALID_IMP, INVALID_CORE, -1) /* Qualcomm ('Q') cores. */ AARCH64_CORE("saphira", saphira, saphira, 8_4A, AARCH64_FL_FOR_ARCH8_4 | AARCH64_FL_CRYPTO | AARCH64_FL_RCPC, saphira, 0x51, 0xC01, -1) diff -Nrcpad gcc-9.4.0/gcc/config/aarch64/aarch64-protos.h gcc-9.5.0/gcc/config/aarch64/aarch64-protos.h *** gcc-9.4.0/gcc/config/aarch64/aarch64-protos.h Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/config/aarch64/aarch64-protos.h Fri May 27 07:21:10 2022 *************** bool aarch64_high_bits_all_ones_p (HOST_ *** 647,653 **** struct atomic_ool_names { ! const char *str[5][4]; }; rtx aarch64_atomic_ool_func(machine_mode mode, rtx model_rtx, --- 647,653 ---- struct atomic_ool_names { ! const char *str[5][5]; }; rtx aarch64_atomic_ool_func(machine_mode mode, rtx model_rtx, diff -Nrcpad gcc-9.4.0/gcc/config/aarch64/aarch64-tune.md gcc-9.5.0/gcc/config/aarch64/aarch64-tune.md *** gcc-9.4.0/gcc/config/aarch64/aarch64-tune.md Tue Jun 1 07:53:40 2021 --- gcc-9.5.0/gcc/config/aarch64/aarch64-tune.md Fri May 27 07:21:46 2022 *************** *** 1,5 **** ;; -*- buffer-read-only: t -*- ;; Generated automatically by gentune.sh from aarch64-cores.def (define_attr "tune" ! "cortexa35,cortexa53,cortexa57,cortexa72,cortexa73,thunderx,thunderxt88p1,thunderxt88,octeontx,octeontxt81,octeontxt83,thunderxt81,thunderxt83,emag,xgene1,falkor,qdf24xx,exynosm1,phecda,thunderx2t99p1,vulcan,thunderx2t99,cortexa55,cortexa75,cortexa76,ares,neoversen1,neoversee1,a64fx,tsv110,zeus,neoversev1,saphira,neoversen2,cortexa57cortexa53,cortexa72cortexa53,cortexa73cortexa35,cortexa73cortexa53,cortexa75cortexa55,cortexa76cortexa55" (const (symbol_ref "((enum attr_tune) aarch64_tune)"))) --- 1,5 ---- ;; -*- buffer-read-only: t -*- ;; Generated automatically by gentune.sh from aarch64-cores.def (define_attr "tune" ! "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,ares,neoversen1,neoversee1,a64fx,tsv110,zeus,neoversev1,neoverse512tvb,saphira,neoversen2,cortexa57cortexa53,cortexa72cortexa53,cortexa73cortexa35,cortexa73cortexa53,cortexa75cortexa55,cortexa76cortexa55" (const (symbol_ref "((enum attr_tune) aarch64_tune)"))) diff -Nrcpad gcc-9.4.0/gcc/config/aarch64/aarch64.c gcc-9.5.0/gcc/config/aarch64/aarch64.c *** gcc-9.4.0/gcc/config/aarch64/aarch64.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/config/aarch64/aarch64.c Fri May 27 07:21:10 2022 *************** aarch64_emit_unlikely_jump (rtx insn) *** 15764,15777 **** add_reg_br_prob_note (jump, profile_probability::very_unlikely ()); } ! /* We store the names of the various atomic helpers in a 5x4 array. Return the libcall function given MODE, MODEL and NAMES. */ rtx aarch64_atomic_ool_func(machine_mode mode, rtx model_rtx, const atomic_ool_names *names) { ! memmodel model = memmodel_base (INTVAL (model_rtx)); int mode_idx, model_idx; switch (mode) --- 15764,15777 ---- add_reg_br_prob_note (jump, profile_probability::very_unlikely ()); } ! /* We store the names of the various atomic helpers in a 5x5 array. Return the libcall function given MODE, MODEL and NAMES. */ rtx aarch64_atomic_ool_func(machine_mode mode, rtx model_rtx, const atomic_ool_names *names) { ! memmodel model = memmodel_from_int (INTVAL (model_rtx)); int mode_idx, model_idx; switch (mode) *************** aarch64_atomic_ool_func(machine_mode mod *** 15811,15816 **** --- 15811,15821 ---- case MEMMODEL_SEQ_CST: model_idx = 3; break; + case MEMMODEL_SYNC_ACQUIRE: + case MEMMODEL_SYNC_RELEASE: + case MEMMODEL_SYNC_SEQ_CST: + model_idx = 4; + break; default: gcc_unreachable (); } *************** aarch64_atomic_ool_func(machine_mode mod *** 15823,15829 **** { "__aarch64_" #B #N "_relax", \ "__aarch64_" #B #N "_acq", \ "__aarch64_" #B #N "_rel", \ ! "__aarch64_" #B #N "_acq_rel" } #define DEF4(B) DEF0(B, 1), DEF0(B, 2), DEF0(B, 4), DEF0(B, 8), \ { NULL, NULL, NULL, NULL } --- 15828,15835 ---- { "__aarch64_" #B #N "_relax", \ "__aarch64_" #B #N "_acq", \ "__aarch64_" #B #N "_rel", \ ! "__aarch64_" #B #N "_acq_rel", \ ! "__aarch64_" #B #N "_sync" } #define DEF4(B) DEF0(B, 1), DEF0(B, 2), DEF0(B, 4), DEF0(B, 8), \ { NULL, NULL, NULL, NULL } diff -Nrcpad gcc-9.4.0/gcc/config/aarch64/arm_acle.h gcc-9.5.0/gcc/config/aarch64/arm_acle.h *** gcc-9.4.0/gcc/config/aarch64/arm_acle.h Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/config/aarch64/arm_acle.h Fri May 27 07:21:10 2022 *************** __rint64x (double __a) *** 98,107 **** #pragma GCC target ("+nothing+crc") - #ifdef __cplusplus - extern "C" { - #endif - __extension__ static __inline uint32_t __attribute__ ((__always_inline__)) __crc32b (uint32_t __a, uint8_t __b) { --- 98,103 ---- diff -Nrcpad gcc-9.4.0/gcc/config/arm/arm-c.c gcc-9.5.0/gcc/config/arm/arm-c.c *** gcc-9.4.0/gcc/config/arm/arm-c.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/config/arm/arm-c.c Fri May 27 07:21:10 2022 *************** arm_pragma_target_parse (tree args, tree *** 266,273 **** target_option_current_node, but not handle_pragma_target. */ target_option_current_node = cur_tree; arm_configure_build_target (&arm_active_target, ! TREE_TARGET_OPTION (cur_tree), ! &global_options_set, false); } /* Update macros if target_node changes. The global state will be restored --- 266,273 ---- target_option_current_node, but not handle_pragma_target. */ target_option_current_node = cur_tree; arm_configure_build_target (&arm_active_target, ! TREE_TARGET_OPTION (cur_tree), false); ! arm_option_reconfigure_globals (); } /* Update macros if target_node changes. The global state will be restored diff -Nrcpad gcc-9.4.0/gcc/config/arm/arm-cpus.in gcc-9.5.0/gcc/config/arm/arm-cpus.in *** gcc-9.4.0/gcc/config/arm/arm-cpus.in Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/config/arm/arm-cpus.in Fri May 27 07:21:10 2022 *************** define feature quirk_armv6kz *** 180,185 **** --- 180,188 ---- # Cortex-M3 LDRD quirk. define feature quirk_cm3_ldrd + # Don't use .cpu assembly directive + define feature quirk_no_asmcpu + # (Very) slow multiply operations. Should probably be a tuning bit. define feature smallmul *************** define fgroup ALL_CRYPTO crypto *** 213,227 **** # strip off 32 D-registers, but does not remove support for # double-precision FP. define fgroup ALL_SIMD_INTERNAL fp_d32 neon ALL_CRYPTO ! define fgroup ALL_SIMD ALL_SIMD_INTERNAL dotprod fp16fml # List of all FPU bits to strip out if -mfpu is used to override the # default. fp16 is deliberately missing from this list. define fgroup ALL_FPU_INTERNAL vfpv2 vfpv3 vfpv4 fpv5 fp16conv fp_dbl ALL_SIMD_INTERNAL - # Similarly, but including fp16 and other extensions that aren't part of # -mfpu support. ! define fgroup ALL_FP fp16 ALL_FPU_INTERNAL define fgroup ARMv4 armv4 notm define fgroup ARMv4t ARMv4 thumb --- 216,233 ---- # strip off 32 D-registers, but does not remove support for # double-precision FP. define fgroup ALL_SIMD_INTERNAL fp_d32 neon ALL_CRYPTO ! define fgroup ALL_SIMD_EXTERNAL dotprod fp16fml ! define fgroup ALL_SIMD ALL_SIMD_INTERNAL ALL_SIMD_EXTERNAL # List of all FPU bits to strip out if -mfpu is used to override the # default. fp16 is deliberately missing from this list. define fgroup ALL_FPU_INTERNAL vfpv2 vfpv3 vfpv4 fpv5 fp16conv fp_dbl ALL_SIMD_INTERNAL # Similarly, but including fp16 and other extensions that aren't part of # -mfpu support. ! define fgroup ALL_FPU_EXTERNAL fp16 ! ! # Everything related to the FPU extensions (FP or SIMD). ! define fgroup ALL_FP ALL_FPU_EXTERNAL ALL_FPU_INTERNAL ALL_SIMD define fgroup ARMv4 armv4 notm define fgroup ARMv4t ARMv4 thumb *************** define fgroup DOTPROD NEON dotprod *** 274,280 **** # 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 # Architecture entries # format: --- 280,286 ---- # architectures. # xscale isn't really a 'quirk', but it isn't an architecture either and we # need to ignore it for matching purposes. ! define fgroup ALL_QUIRKS quirk_no_volatile_ce quirk_armv6kz quirk_cm3_ldrd xscale quirk_no_asmcpu # Architecture entries # format: *************** begin cpu generic-armv7-a *** 976,981 **** --- 982,988 ---- 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-a55 *** 1301,1307 **** cname cortexa55 tune for cortex-a53 tune flags LDSCHED ! architecture armv8.2-a+fp16+dotprod+simd option crypto add FP_ARMv8 CRYPTO option nofp remove ALL_FP costs cortex_a53 --- 1308,1314 ---- cname cortexa55 tune for cortex-a53 tune flags LDSCHED ! architecture armv8.2-a+fp16+dotprod option crypto add FP_ARMv8 CRYPTO option nofp remove ALL_FP costs cortex_a53 *************** begin cpu cortex-a75 *** 1313,1319 **** cname cortexa75 tune for cortex-a57 tune flags LDSCHED ! architecture armv8.2-a+fp16+dotprod+simd option crypto add FP_ARMv8 CRYPTO costs cortex_a73 vendor 41 --- 1320,1326 ---- cname cortexa75 tune for cortex-a57 tune flags LDSCHED ! architecture armv8.2-a+fp16+dotprod option crypto add FP_ARMv8 CRYPTO costs cortex_a73 vendor 41 *************** begin cpu cortex-a76 *** 1324,1330 **** cname cortexa76 tune for cortex-a57 tune flags LDSCHED ! architecture armv8.2-a+fp16+dotprod+simd option crypto add FP_ARMv8 CRYPTO costs cortex_a57 vendor 41 --- 1331,1337 ---- cname cortexa76 tune for cortex-a57 tune flags LDSCHED ! architecture armv8.2-a+fp16+dotprod option crypto add FP_ARMv8 CRYPTO costs cortex_a57 vendor 41 *************** begin cpu neoverse-n1 *** 1336,1342 **** alias !ares tune for cortex-a57 tune flags LDSCHED ! architecture armv8.2-a+fp16+dotprod+simd option crypto add FP_ARMv8 CRYPTO costs cortex_a57 vendor 41 --- 1343,1349 ---- alias !ares tune for cortex-a57 tune flags LDSCHED ! architecture armv8.2-a+fp16+dotprod option crypto add FP_ARMv8 CRYPTO costs cortex_a57 vendor 41 *************** begin cpu cortex-a75.cortex-a55 *** 1348,1354 **** cname cortexa75cortexa55 tune for cortex-a53 tune flags LDSCHED ! architecture armv8.2-a+fp16+dotprod+simd option crypto add FP_ARMv8 CRYPTO costs cortex_a73 end cpu cortex-a75.cortex-a55 --- 1355,1361 ---- cname cortexa75cortexa55 tune for cortex-a53 tune flags LDSCHED ! architecture armv8.2-a+fp16+dotprod option crypto add FP_ARMv8 CRYPTO costs cortex_a73 end cpu cortex-a75.cortex-a55 *************** begin cpu cortex-a76.cortex-a55 *** 1357,1363 **** cname cortexa76cortexa55 tune for cortex-a53 tune flags LDSCHED ! architecture armv8.2-a+fp16+dotprod+simd option crypto add FP_ARMv8 CRYPTO costs cortex_a57 end cpu cortex-a76.cortex-a55 --- 1364,1370 ---- cname cortexa76cortexa55 tune for cortex-a53 tune flags LDSCHED ! architecture armv8.2-a+fp16+dotprod option crypto add FP_ARMv8 CRYPTO costs cortex_a57 end cpu cortex-a76.cortex-a55 diff -Nrcpad gcc-9.4.0/gcc/config/arm/arm-protos.h gcc-9.5.0/gcc/config/arm/arm-protos.h *** gcc-9.4.0/gcc/config/arm/arm-protos.h Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/config/arm/arm-protos.h Fri May 27 07:21:10 2022 *************** extern bool arm_change_mode_p (tree); *** 229,236 **** extern tree arm_valid_target_attribute_tree (tree, struct gcc_options *, struct gcc_options *); extern void arm_configure_build_target (struct arm_build_target *, ! struct cl_target_option *, ! struct gcc_options *, bool); extern void arm_option_reconfigure_globals (void); extern void arm_options_perform_arch_sanity_checks (void); extern void arm_pr_long_calls (struct cpp_reader *); --- 229,235 ---- extern tree arm_valid_target_attribute_tree (tree, struct gcc_options *, struct gcc_options *); extern void arm_configure_build_target (struct arm_build_target *, ! struct cl_target_option *, bool); extern void arm_option_reconfigure_globals (void); extern void arm_options_perform_arch_sanity_checks (void); extern void arm_pr_long_calls (struct cpp_reader *); diff -Nrcpad gcc-9.4.0/gcc/config/arm/arm.c gcc-9.5.0/gcc/config/arm/arm.c *** gcc-9.4.0/gcc/config/arm/arm.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/config/arm/arm.c Fri May 27 07:21:10 2022 *************** *** 78,87 **** 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 --- 78,83 ---- *************** static unsigned int arm_hard_regno_nregs *** 325,330 **** --- 321,327 ---- static bool arm_hard_regno_mode_ok (unsigned int, machine_mode); static bool arm_modes_tieable_p (machine_mode, machine_mode); static HOST_WIDE_INT arm_constant_alignment (const_tree, HOST_WIDE_INT); + static const char *arm_identify_fpu_from_isa (sbitmap); /* Table of machine attributes. */ static const struct attribute_spec arm_attribute_table[] = *************** arm_override_options_after_change (void) *** 2985,2991 **** { arm_configure_build_target (&arm_active_target, TREE_TARGET_OPTION (target_option_default_node), ! &global_options_set, false); arm_override_options_after_change_1 (&global_options); } --- 2982,2988 ---- { arm_configure_build_target (&arm_active_target, TREE_TARGET_OPTION (target_option_default_node), ! false); arm_override_options_after_change_1 (&global_options); } *************** arm_option_restore (struct gcc_options * *** 3006,3013 **** opts->x_arm_arch_string = ptr->x_arm_arch_string; opts->x_arm_cpu_string = ptr->x_arm_cpu_string; opts->x_arm_tune_string = ptr->x_arm_tune_string; ! arm_configure_build_target (&arm_active_target, ptr, &global_options_set, ! false); } /* Reset options between modes that the user has specified. */ --- 3003,3010 ---- opts->x_arm_arch_string = ptr->x_arm_arch_string; opts->x_arm_cpu_string = ptr->x_arm_cpu_string; opts->x_arm_tune_string = ptr->x_arm_tune_string; ! arm_configure_build_target (&arm_active_target, ptr, false); ! arm_option_reconfigure_globals (); } /* Reset options between modes that the user has specified. */ *************** arm_option_override_internal (struct gcc *** 3115,3121 **** #endif } ! static sbitmap isa_all_fpubits; static sbitmap isa_quirkbits; /* Configure a build target TARGET from the user-specified options OPTS and --- 3112,3119 ---- #endif } ! static sbitmap isa_all_fpubits_internal; ! static sbitmap isa_all_fpbits; static sbitmap isa_quirkbits; /* Configure a build target TARGET from the user-specified options OPTS and *************** static sbitmap isa_quirkbits; *** 3124,3130 **** void arm_configure_build_target (struct arm_build_target *target, struct cl_target_option *opts, - struct gcc_options *opts_set, bool warn_compatible) { const cpu_option *arm_selected_tune = NULL; --- 3122,3127 ---- *************** arm_configure_build_target (struct arm_b *** 3139,3145 **** target->core_name = NULL; target->arch_name = NULL; ! if (opts_set->x_arm_arch_string) { arm_selected_arch = arm_parse_arch_option_name (all_architectures, "-march", --- 3136,3142 ---- target->core_name = NULL; target->arch_name = NULL; ! if (opts->x_arm_arch_string) { arm_selected_arch = arm_parse_arch_option_name (all_architectures, "-march", *************** arm_configure_build_target (struct arm_b *** 3147,3153 **** arch_opts = strchr (opts->x_arm_arch_string, '+'); } ! if (opts_set->x_arm_cpu_string) { arm_selected_cpu = arm_parse_cpu_option_name (all_cores, "-mcpu", opts->x_arm_cpu_string); --- 3144,3150 ---- arch_opts = strchr (opts->x_arm_arch_string, '+'); } ! if (opts->x_arm_cpu_string) { arm_selected_cpu = arm_parse_cpu_option_name (all_cores, "-mcpu", opts->x_arm_cpu_string); *************** arm_configure_build_target (struct arm_b *** 3157,3163 **** options for tuning. */ } ! if (opts_set->x_arm_tune_string) { arm_selected_tune = arm_parse_cpu_option_name (all_cores, "-mtune", opts->x_arm_tune_string); --- 3154,3160 ---- options for tuning. */ } ! if (opts->x_arm_tune_string) { arm_selected_tune = arm_parse_cpu_option_name (all_cores, "-mtune", opts->x_arm_tune_string); *************** arm_configure_build_target (struct arm_b *** 3182,3188 **** /* Ignore any bits that are quirk bits. */ bitmap_and_compl (isa_delta, isa_delta, isa_quirkbits); /* Ignore (for now) any bits that might be set by -mfpu. */ ! bitmap_and_compl (isa_delta, isa_delta, isa_all_fpubits); if (!bitmap_empty_p (isa_delta)) { --- 3179,3190 ---- /* Ignore any bits that are quirk bits. */ bitmap_and_compl (isa_delta, isa_delta, isa_quirkbits); /* Ignore (for now) any bits that might be set by -mfpu. */ ! bitmap_and_compl (isa_delta, isa_delta, isa_all_fpubits_internal); ! ! /* And if the target ISA lacks floating point, ignore any ! extensions that depend on that. */ ! if (!bitmap_bit_p (target->isa, isa_bit_vfpv2)) ! bitmap_and_compl (isa_delta, isa_delta, isa_all_fpbits); if (!bitmap_empty_p (isa_delta)) { *************** arm_configure_build_target (struct arm_b *** 3341,3350 **** auto_sbitmap fpu_bits (isa_num_bits); arm_initialize_isa (fpu_bits, arm_selected_fpu->isa_bits); ! bitmap_and_compl (target->isa, target->isa, isa_all_fpubits); bitmap_ior (target->isa, target->isa, fpu_bits); } if (!arm_selected_tune) arm_selected_tune = arm_selected_cpu; else /* Validate the features passed to -mtune. */ --- 3343,3357 ---- auto_sbitmap fpu_bits (isa_num_bits); arm_initialize_isa (fpu_bits, arm_selected_fpu->isa_bits); ! bitmap_and_compl (target->isa, target->isa, isa_all_fpubits_internal); 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); + if (!arm_selected_tune) arm_selected_tune = arm_selected_cpu; else /* Validate the features passed to -mtune. */ *************** arm_configure_build_target (struct arm_b *** 3353,3358 **** --- 3360,3367 ---- 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 *** 3360,3382 **** 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. */ static void arm_option_override (void) { ! static const enum isa_feature fpu_bitlist[] = { ISA_ALL_FPU_INTERNAL, isa_nobit }; static const enum isa_feature quirk_bitlist[] = { ISA_ALL_QUIRKS, isa_nobit}; cl_target_option opts; isa_quirkbits = sbitmap_alloc (isa_num_bits); arm_initialize_isa (isa_quirkbits, quirk_bitlist); ! isa_all_fpubits = sbitmap_alloc (isa_num_bits); ! arm_initialize_isa (isa_all_fpubits, fpu_bitlist); arm_active_target.isa = sbitmap_alloc (isa_num_bits); --- 3369,3394 ---- target->tune_flags = tune_data->tune_flags; target->tune = tune_data->tune; target->tune_core = tune_data->scheduler; } /* Fix up any incompatible options that the user has specified. */ static void arm_option_override (void) { ! static const enum isa_feature fpu_bitlist_internal[] = { ISA_ALL_FPU_INTERNAL, isa_nobit }; + static const enum isa_feature fp_bitlist[] + = { ISA_ALL_FP, isa_nobit }; static const enum isa_feature quirk_bitlist[] = { ISA_ALL_QUIRKS, isa_nobit}; cl_target_option opts; isa_quirkbits = sbitmap_alloc (isa_num_bits); arm_initialize_isa (isa_quirkbits, quirk_bitlist); ! isa_all_fpubits_internal = sbitmap_alloc (isa_num_bits); ! isa_all_fpbits = sbitmap_alloc (isa_num_bits); ! arm_initialize_isa (isa_all_fpubits_internal, fpu_bitlist_internal); ! arm_initialize_isa (isa_all_fpbits, fp_bitlist); arm_active_target.isa = sbitmap_alloc (isa_num_bits); *************** arm_option_override (void) *** 3392,3399 **** } cl_target_option_save (&opts, &global_options); ! arm_configure_build_target (&arm_active_target, &opts, &global_options_set, ! true); #ifdef SUBTARGET_OVERRIDE_OPTIONS SUBTARGET_OVERRIDE_OPTIONS; --- 3404,3410 ---- } cl_target_option_save (&opts, &global_options); ! arm_configure_build_target (&arm_active_target, &opts, true); #ifdef SUBTARGET_OVERRIDE_OPTIONS SUBTARGET_OVERRIDE_OPTIONS; *************** arm_print_tune_info (void) *** 26654,26673 **** (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; --- 26665,26729 ---- (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 () *** 26679,26691 **** { arm_initialize_isa (opt_bits, opt->isa_bits); ! /* 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)) ! asm_fprintf (asm_out_file, "\t.arch_extension %s\n", opt->name); } } } --- 26735,26746 ---- { arm_initialize_isa (opt_bits, opt->isa_bits); ! /* 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) *** 26695,26736 **** { 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); ! asm_fprintf (asm_out_file, "\t.cpu %s\n", truncated_name); } if (print_tune_info) --- 26750,26772 ---- { 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) *** 26798,26803 **** --- 26834,26846 ---- { int regno; + /* Just in case the last function output in the assembler had non-default + architecture directives, we force the assembler state back to the default + set, so that any 'calculated' build attributes are based on the default + options rather than the special options for that function. */ + arm_print_asm_arch_directives + (asm_out_file, TREE_TARGET_OPTION (target_option_default_node)); + if (NEED_INDICATE_EXEC_STACK) /* Add .note.GNU-stack. */ file_end_indicate_exec_stack (); *************** arm_split_compare_and_swap (rtx operands *** 29010,29022 **** } else { - emit_move_insn (neg_bval, const1_rtx); cond = gen_rtx_NE (VOIDmode, rval, oldval); if (thumb1_cmpneg_operand (oldval, SImode)) ! emit_unlikely_jump (gen_cbranchsi4_scratch (neg_bval, rval, oldval, ! label2, cond)); else ! emit_unlikely_jump (gen_cbranchsi4_insn (cond, rval, oldval, label2)); } arm_emit_store_exclusive (mode, neg_bval, mem, newval, use_release); --- 29053,29083 ---- } else { cond = gen_rtx_NE (VOIDmode, rval, oldval); if (thumb1_cmpneg_operand (oldval, SImode)) ! { ! rtx src = rval; ! if (!satisfies_constraint_L (oldval)) ! { ! gcc_assert (satisfies_constraint_J (oldval)); ! ! /* For such immediates, ADDS needs the source and destination regs ! to be the same. ! ! Normally this would be handled by RA, but this is all happening ! after RA. */ ! emit_move_insn (neg_bval, rval); ! src = neg_bval; ! } ! ! emit_unlikely_jump (gen_cbranchsi4_neg_late (neg_bval, src, oldval, ! label2, cond)); ! } else ! { ! emit_move_insn (neg_bval, const1_rtx); ! emit_unlikely_jump (gen_cbranchsi4_insn (cond, rval, oldval, label2)); ! } } arm_emit_store_exclusive (mode, neg_bval, mem, newval, use_release); *************** arm_can_inline_p (tree caller, tree call *** 30938,30947 **** caller_target.isa = sbitmap_alloc (isa_num_bits); callee_target.isa = sbitmap_alloc (isa_num_bits); ! arm_configure_build_target (&caller_target, caller_opts, &global_options_set, ! false); ! arm_configure_build_target (&callee_target, callee_opts, &global_options_set, ! false); if (!bitmap_subset_p (callee_target.isa, caller_target.isa)) can_inline = false; --- 30999,31006 ---- caller_target.isa = sbitmap_alloc (isa_num_bits); callee_target.isa = sbitmap_alloc (isa_num_bits); ! arm_configure_build_target (&caller_target, caller_opts, false); ! arm_configure_build_target (&callee_target, callee_opts, false); if (!bitmap_subset_p (callee_target.isa, caller_target.isa)) can_inline = false; *************** arm_valid_target_attribute_tree (tree ar *** 31073,31079 **** return NULL_TREE; cl_target_option_save (&cl_opts, opts); ! arm_configure_build_target (&arm_active_target, &cl_opts, opts_set, false); arm_option_check_internal (opts); /* Do any overrides, such as global options arch=xxx. We do this since arm_active_target was overridden. */ --- 31132,31138 ---- return NULL_TREE; cl_target_option_save (&cl_opts, opts); ! arm_configure_build_target (&arm_active_target, &cl_opts, false); arm_option_check_internal (opts); /* Do any overrides, such as global options arch=xxx. We do this since arm_active_target was overridden. */ *************** arm_identify_fpu_from_isa (sbitmap isa) *** 31188,31194 **** auto_sbitmap fpubits (isa_num_bits); auto_sbitmap cand_fpubits (isa_num_bits); ! bitmap_and (fpubits, isa, isa_all_fpubits); /* If there are no ISA feature bits relating to the FPU, we must be doing soft-float. */ --- 31247,31253 ---- auto_sbitmap fpubits (isa_num_bits); auto_sbitmap cand_fpubits (isa_num_bits); ! bitmap_and (fpubits, isa, isa_all_fpubits_internal); /* If there are no ISA feature bits relating to the FPU, we must be doing soft-float. */ *************** arm_declare_function_name (FILE *stream, *** 31219,31262 **** 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); ! if (bitmap_subset_p (opt_bits, arm_active_target.isa) ! && !bitmap_subset_p (opt_bits, isa_all_fpubits)) ! 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"); --- 31278,31284 ---- 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, *** 31274,31289 **** 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 (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); } --- 31296,31301 ---- *************** arm_test_cpu_arch_data (void) *** 31934,31961 **** static void arm_test_fpu_data (void) { ! auto_sbitmap isa_all_fpubits (isa_num_bits); auto_sbitmap fpubits (isa_num_bits); auto_sbitmap tmpset (isa_num_bits); ! static const enum isa_feature fpu_bitlist[] = { ISA_ALL_FPU_INTERNAL, isa_nobit }; ! arm_initialize_isa (isa_all_fpubits, fpu_bitlist); for (unsigned int i = 0; i < TARGET_FPU_auto; i++) { arm_initialize_isa (fpubits, all_fpus[i].isa_bits); ! bitmap_and_compl (tmpset, isa_all_fpubits, fpubits); ! bitmap_clear (isa_all_fpubits); ! bitmap_copy (isa_all_fpubits, tmpset); } ! if (!bitmap_empty_p (isa_all_fpubits)) { fprintf (stderr, "Error: found feature bits in the ALL_FPU_INTERAL" " group that are not defined by any FPU.\n" " Check your arm-cpus.in.\n"); ! ASSERT_TRUE (bitmap_empty_p (isa_all_fpubits)); } } --- 31946,31973 ---- static void arm_test_fpu_data (void) { ! auto_sbitmap isa_all_fpubits_internal (isa_num_bits); auto_sbitmap fpubits (isa_num_bits); auto_sbitmap tmpset (isa_num_bits); ! static const enum isa_feature fpu_bitlist_internal[] = { ISA_ALL_FPU_INTERNAL, isa_nobit }; ! arm_initialize_isa (isa_all_fpubits_internal, fpu_bitlist_internal); for (unsigned int i = 0; i < TARGET_FPU_auto; i++) { arm_initialize_isa (fpubits, all_fpus[i].isa_bits); ! bitmap_and_compl (tmpset, isa_all_fpubits_internal, fpubits); ! bitmap_clear (isa_all_fpubits_internal); ! bitmap_copy (isa_all_fpubits_internal, tmpset); } ! if (!bitmap_empty_p (isa_all_fpubits_internal)) { fprintf (stderr, "Error: found feature bits in the ALL_FPU_INTERAL" " group that are not defined by any FPU.\n" " Check your arm-cpus.in.\n"); ! ASSERT_TRUE (bitmap_empty_p (isa_all_fpubits_internal)); } } diff -Nrcpad gcc-9.4.0/gcc/config/arm/sync.md gcc-9.5.0/gcc/config/arm/sync.md *** gcc-9.4.0/gcc/config/arm/sync.md Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/config/arm/sync.md Fri May 27 07:21:10 2022 *************** *** 187,206 **** ;; Constraints of this pattern must be at least as strict as those of the ;; cbranchsi operations in thumb1.md and aim to be as permissive. (define_insn_and_split "@atomic_compare_and_swap_1" ! [(set (match_operand:CCSI 0 "cc_register_operand" "=&c,&l,&l,&l") ;; bool out (unspec_volatile:CCSI [(const_int 0)] VUNSPEC_ATOMIC_CAS)) ! (set (match_operand:SI 1 "s_register_operand" "=&r,&l,&0,&l*h") ;; val out (zero_extend:SI ! (match_operand:NARROW 2 "mem_noofs_operand" "+Ua,Ua,Ua,Ua"))) ;; memory (set (match_dup 2) (unspec_volatile:NARROW ! [(match_operand:SI 3 "arm_add_operand" "rIL,lIL*h,J,*r") ;; expected ! (match_operand:NARROW 4 "s_register_operand" "r,r,r,r") ;; desired (match_operand:SI 5 "const_int_operand") ;; is_weak (match_operand:SI 6 "const_int_operand") ;; mod_s (match_operand:SI 7 "const_int_operand")] ;; mod_f VUNSPEC_ATOMIC_CAS)) ! (clobber (match_scratch:SI 8 "=&r,X,X,X"))] "" "#" "&& reload_completed" --- 187,206 ---- ;; Constraints of this pattern must be at least as strict as those of the ;; cbranchsi operations in thumb1.md and aim to be as permissive. (define_insn_and_split "@atomic_compare_and_swap_1" ! [(set (match_operand:CCSI 0 "cc_register_operand" "=&c,&l,&l") ;; bool out (unspec_volatile:CCSI [(const_int 0)] VUNSPEC_ATOMIC_CAS)) ! (set (match_operand:SI 1 "s_register_operand" "=&r,&l,&l*h") ;; val out (zero_extend:SI ! (match_operand:NARROW 2 "mem_noofs_operand" "+Ua,Ua,Ua"))) ;; memory (set (match_dup 2) (unspec_volatile:NARROW ! [(match_operand:SI 3 "arm_add_operand" "rIL,lILJ*h,*r") ;; expected ! (match_operand:NARROW 4 "s_register_operand" "r,r,r") ;; desired (match_operand:SI 5 "const_int_operand") ;; is_weak (match_operand:SI 6 "const_int_operand") ;; mod_s (match_operand:SI 7 "const_int_operand")] ;; mod_f VUNSPEC_ATOMIC_CAS)) ! (clobber (match_scratch:SI 8 "=&r,X,X"))] "" "#" "&& reload_completed" *************** *** 209,215 **** arm_split_compare_and_swap (operands); DONE; } ! [(set_attr "arch" "32,v8mb,v8mb,v8mb")]) (define_mode_attr cas_cmp_operand [(SI "arm_add_operand") (DI "cmpdi_operand")]) --- 209,215 ---- arm_split_compare_and_swap (operands); DONE; } ! [(set_attr "arch" "32,v8mb,v8mb")]) (define_mode_attr cas_cmp_operand [(SI "arm_add_operand") (DI "cmpdi_operand")]) *************** *** 219,237 **** ;; Constraints of this pattern must be at least as strict as those of the ;; cbranchsi operations in thumb1.md and aim to be as permissive. (define_insn_and_split "@atomic_compare_and_swap_1" ! [(set (match_operand:CCSI 0 "cc_register_operand" "=&c,&l,&l,&l") ;; bool out (unspec_volatile:CCSI [(const_int 0)] VUNSPEC_ATOMIC_CAS)) ! (set (match_operand:SIDI 1 "s_register_operand" "=&r,&l,&0,&l*h") ;; val out ! (match_operand:SIDI 2 "mem_noofs_operand" "+Ua,Ua,Ua,Ua")) ;; memory (set (match_dup 2) (unspec_volatile:SIDI ! [(match_operand:SIDI 3 "" ",lIL*h,J,*r") ;; expect ! (match_operand:SIDI 4 "s_register_operand" "r,r,r,r") ;; desired (match_operand:SI 5 "const_int_operand") ;; is_weak (match_operand:SI 6 "const_int_operand") ;; mod_s (match_operand:SI 7 "const_int_operand")] ;; mod_f VUNSPEC_ATOMIC_CAS)) ! (clobber (match_scratch:SI 8 "=&r,X,X,X"))] "" "#" "&& reload_completed" --- 219,237 ---- ;; Constraints of this pattern must be at least as strict as those of the ;; cbranchsi operations in thumb1.md and aim to be as permissive. (define_insn_and_split "@atomic_compare_and_swap_1" ! [(set (match_operand:CCSI 0 "cc_register_operand" "=&c,&l,&l") ;; bool out (unspec_volatile:CCSI [(const_int 0)] VUNSPEC_ATOMIC_CAS)) ! (set (match_operand:SIDI 1 "s_register_operand" "=&r,&l,&l*h") ;; val out ! (match_operand:SIDI 2 "mem_noofs_operand" "+Ua,Ua,Ua")) ;; memory (set (match_dup 2) (unspec_volatile:SIDI ! [(match_operand:SIDI 3 "" ",lILJ*h,*r") ;; expect ! (match_operand:SIDI 4 "s_register_operand" "r,r,r") ;; desired (match_operand:SI 5 "const_int_operand") ;; is_weak (match_operand:SI 6 "const_int_operand") ;; mod_s (match_operand:SI 7 "const_int_operand")] ;; mod_f VUNSPEC_ATOMIC_CAS)) ! (clobber (match_scratch:SI 8 "=&r,X,X"))] "" "#" "&& reload_completed" *************** *** 240,246 **** arm_split_compare_and_swap (operands); DONE; } ! [(set_attr "arch" "32,v8mb,v8mb,v8mb")]) (define_insn_and_split "atomic_exchange" [(set (match_operand:QHSD 0 "s_register_operand" "=&r,&r") ;; output --- 240,246 ---- arm_split_compare_and_swap (operands); DONE; } ! [(set_attr "arch" "32,v8mb,v8mb")]) (define_insn_and_split "atomic_exchange" [(set (match_operand:QHSD 0 "s_register_operand" "=&r,&r") ;; output diff -Nrcpad gcc-9.4.0/gcc/config/arm/thumb1.md gcc-9.5.0/gcc/config/arm/thumb1.md *** gcc-9.4.0/gcc/config/arm/thumb1.md Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/config/arm/thumb1.md Fri May 27 07:21:10 2022 *************** *** 1242,1247 **** --- 1242,1262 ---- (set_attr "type" "multiple")] ) + ;; An expander which makes use of the cbranchsi4_scratch insn, but can + ;; be used safely after RA. + (define_expand "cbranchsi4_neg_late" + [(parallel [ + (set (pc) (if_then_else + (match_operator 4 "arm_comparison_operator" + [(match_operand:SI 1 "s_register_operand") + (match_operand:SI 2 "thumb1_cmpneg_operand")]) + (label_ref (match_operand 3 "" "")) + (pc))) + (clobber (match_operand:SI 0 "s_register_operand")) + ])] + "TARGET_THUMB1" + ) + ;; Changes to the constraints of this pattern must be propagated to those of ;; atomic compare_and_swap splitters in sync.md. These must be at least as ;; strict as the constraints here and aim to be as permissive. diff -Nrcpad gcc-9.4.0/gcc/config/i386/avx512dqintrin.h gcc-9.5.0/gcc/config/i386/avx512dqintrin.h *** gcc-9.4.0/gcc/config/i386/avx512dqintrin.h Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/config/i386/avx512dqintrin.h Fri May 27 07:21:10 2022 *************** _mm512_fpclass_ps_mask (__m512 __A, cons *** 2629,2635 **** #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), \ --- 2629,2635 ---- #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 *** 2637,2643 **** #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), \ --- 2637,2643 ---- #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-9.4.0/gcc/config/i386/avx512fintrin.h gcc-9.5.0/gcc/config/i386/avx512fintrin.h *** gcc-9.4.0/gcc/config/i386/avx512fintrin.h Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/config/i386/avx512fintrin.h Fri May 27 07:21:10 2022 *************** _mm_maskz_scalef_round_ss (__mmask8 __U, *** 3237,3267 **** (__mmask8) __U, __R); } #else ! #define _mm512_scalef_round_pd(A, B, C) \ ! (__m512d)__builtin_ia32_scalefpd512_mask(A, B, (__v8df)_mm512_undefined_pd(), -1, C) ! #define _mm512_mask_scalef_round_pd(W, U, A, B, C) \ ! (__m512d)__builtin_ia32_scalefpd512_mask(A, B, W, U, C) ! #define _mm512_maskz_scalef_round_pd(U, A, B, C) \ ! (__m512d)__builtin_ia32_scalefpd512_mask(A, B, (__v8df)_mm512_setzero_pd(), U, C) ! #define _mm512_scalef_round_ps(A, B, C) \ ! (__m512)__builtin_ia32_scalefps512_mask(A, B, (__v16sf)_mm512_undefined_ps(), -1, C) ! #define _mm512_mask_scalef_round_ps(W, U, A, B, C) \ ! (__m512)__builtin_ia32_scalefps512_mask(A, B, W, U, C) ! #define _mm512_maskz_scalef_round_ps(U, A, B, C) \ ! (__m512)__builtin_ia32_scalefps512_mask(A, B, (__v16sf)_mm512_setzero_ps(), U, C) ! #define _mm_scalef_round_sd(A, B, C) \ ! (__m128d)__builtin_ia32_scalefsd_mask_round (A, B, \ ! (__v2df)_mm_setzero_pd (), -1, C) ! #define _mm_scalef_round_ss(A, B, C) \ ! (__m128)__builtin_ia32_scalefss_mask_round (A, B, \ ! (__v4sf)_mm_setzero_ps (), -1, C) #endif #ifdef __OPTIMIZE__ --- 3237,3303 ---- (__mmask8) __U, __R); } #else ! #define _mm512_scalef_round_pd(A, B, C) \ ! ((__m512d) \ ! __builtin_ia32_scalefpd512_mask((A), (B), \ ! (__v8df) _mm512_undefined_pd(), \ ! -1, (C))) ! #define _mm512_mask_scalef_round_pd(W, U, A, B, C) \ ! ((__m512d) __builtin_ia32_scalefpd512_mask((A), (B), (W), (U), (C))) ! #define _mm512_maskz_scalef_round_pd(U, A, B, C) \ ! ((__m512d) \ ! __builtin_ia32_scalefpd512_mask((A), (B), \ ! (__v8df) _mm512_setzero_pd(), \ ! (U), (C))) ! #define _mm512_scalef_round_ps(A, B, C) \ ! ((__m512) \ ! __builtin_ia32_scalefps512_mask((A), (B), \ ! (__v16sf) _mm512_undefined_ps(), \ ! -1, (C))) ! #define _mm512_mask_scalef_round_ps(W, U, A, B, C) \ ! ((__m512) __builtin_ia32_scalefps512_mask((A), (B), (W), (U), (C))) ! #define _mm512_maskz_scalef_round_ps(U, A, B, C) \ ! ((__m512) \ ! __builtin_ia32_scalefps512_mask((A), (B), \ ! (__v16sf) _mm512_setzero_ps(), \ ! (U), (C))) ! #define _mm_scalef_round_sd(A, B, C) \ ! ((__m128d) \ ! __builtin_ia32_scalefsd_mask_round ((A), (B), \ ! (__v2df) _mm_undefined_pd (), \ ! -1, (C))) ! #define _mm_scalef_round_ss(A, B, C) \ ! ((__m128) \ ! __builtin_ia32_scalefss_mask_round ((A), (B), \ ! (__v4sf) _mm_undefined_ps (), \ ! -1, (C))) ! ! #define _mm_mask_scalef_round_sd(W, U, A, B, C) \ ! ((__m128d) \ ! __builtin_ia32_scalefsd_mask_round ((A), (B), (W), (U), (C))) ! ! #define _mm_mask_scalef_round_ss(W, U, A, B, C) \ ! ((__m128) \ ! __builtin_ia32_scalefss_mask_round ((A), (B), (W), (U), (C))) ! ! #define _mm_maskz_scalef_round_sd(U, A, B, C) \ ! ((__m128d) \ ! __builtin_ia32_scalefsd_mask_round ((A), (B), \ ! (__v2df) _mm_setzero_pd (), \ ! (U), (C))) ! ! #define _mm_maskz_scalef_round_ss(U, A, B, C) \ ! ((__m128) \ ! __builtin_ia32_scalefss_mask_round ((A), (B), \ ! (__v4sf) _mm_setzero_ps (), \ ! (U), (C))) #endif #ifdef __OPTIMIZE__ diff -Nrcpad gcc-9.4.0/gcc/config/i386/i386.c gcc-9.5.0/gcc/config/i386/i386.c *** gcc-9.4.0/gcc/config/i386/i386.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/config/i386/i386.c Fri May 27 07:21:10 2022 *************** standard_80387_constant_p (rtx x) *** 10222,10228 **** /* 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; --- 10222,10229 ---- /* For XFmode constants, try to find a special 80387 instruction when optimizing for size or on those CPUs that benefit from them. */ if (mode == XFmode ! && (optimize_function_for_size_p (cfun) || TARGET_EXT_80387_CONSTANTS) ! && !flag_rounding_math) { int i; *************** ix86_gimple_fold_builtin (gimple_stmt_it *** 33801,33806 **** --- 33802,33809 ---- 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) *************** rdseed_step: *** 37592,37597 **** --- 37595,37603 ---- 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: *** 43370,43378 **** 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); } } --- 43376,43384 ---- else { word = expand_simple_binop (word_mode, ASHIFT, word, shift, ! NULL_RTX, 1, OPTAB_LIB_WIDEN); word = expand_simple_binop (word_mode, IOR, word, elt, ! NULL_RTX, 1, OPTAB_LIB_WIDEN); } } *************** ix86_expand_vector_init (bool mmx_ok, rt *** 43425,43435 **** if (GET_MODE_NUNITS (GET_MODE (x)) * 2 == n_elts) { rtx ops[2] = { XVECEXP (vals, 0, 0), XVECEXP (vals, 0, 1) }; ! if (inner_mode == QImode || inner_mode == HImode) { unsigned int n_bits = n_elts * GET_MODE_SIZE (inner_mode); ! mode = mode_for_vector (SImode, n_bits / 4).require (); ! inner_mode = mode_for_vector (SImode, n_bits / 8).require (); ops[0] = gen_lowpart (inner_mode, ops[0]); ops[1] = gen_lowpart (inner_mode, ops[1]); subtarget = gen_reg_rtx (mode); --- 43431,43445 ---- if (GET_MODE_NUNITS (GET_MODE (x)) * 2 == n_elts) { rtx ops[2] = { XVECEXP (vals, 0, 0), XVECEXP (vals, 0, 1) }; ! if (inner_mode == QImode ! || inner_mode == HImode ! || inner_mode == TImode) { unsigned int n_bits = n_elts * GET_MODE_SIZE (inner_mode); ! scalar_mode elt_mode = inner_mode == TImode ? DImode : SImode; ! n_bits /= GET_MODE_SIZE (elt_mode); ! mode = mode_for_vector (elt_mode, n_bits).require (); ! inner_mode = mode_for_vector (elt_mode, n_bits / 2).require (); ops[0] = gen_lowpart (inner_mode, ops[0]); ops[1] = gen_lowpart (inner_mode, ops[1]); subtarget = gen_reg_rtx (mode); *************** void ix86_emit_i387_log1p (rtx op0, rtx *** 44830,44835 **** --- 44840,44850 ---- 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-9.4.0/gcc/config/i386/i386.md gcc-9.5.0/gcc/config/i386/i386.md *** gcc-9.4.0/gcc/config/i386/i386.md Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/config/i386/i386.md Fri May 27 07:21:10 2022 *************** *** 4613,4620 **** 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]); --- 4613,4620 ---- 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]); *************** *** 9823,9832 **** (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") --- 9823,9838 ---- (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") *************** *** 13451,13460 **** (set_attr "mode" "")]) (define_insn "bsr_rex64" ! [(set (match_operand:DI 0 "register_operand" "=r") (minus:DI (const_int 63) ! (clz:DI (match_operand:DI 1 "nonimmediate_operand" "rm")))) ! (clobber (reg:CC FLAGS_REG))] "TARGET_64BIT" "bsr{q}\t{%1, %0|%0, %1}" [(set_attr "type" "alu1") --- 13457,13468 ---- (set_attr "mode" "")]) (define_insn "bsr_rex64" ! [(set (reg:CCZ FLAGS_REG) ! (compare:CCZ (match_operand:DI 1 "nonimmediate_operand" "rm") ! (const_int 0))) ! (set (match_operand:DI 0 "register_operand" "=r") (minus:DI (const_int 63) ! (clz:DI (match_dup 1))))] "TARGET_64BIT" "bsr{q}\t{%1, %0|%0, %1}" [(set_attr "type" "alu1") *************** *** 13463,13472 **** (set_attr "mode" "DI")]) (define_insn "bsr" ! [(set (match_operand:SI 0 "register_operand" "=r") (minus:SI (const_int 31) ! (clz:SI (match_operand:SI 1 "nonimmediate_operand" "rm")))) ! (clobber (reg:CC FLAGS_REG))] "" "bsr{l}\t{%1, %0|%0, %1}" [(set_attr "type" "alu1") --- 13471,13482 ---- (set_attr "mode" "DI")]) (define_insn "bsr" ! [(set (reg:CCZ FLAGS_REG) ! (compare:CCZ (match_operand:SI 1 "nonimmediate_operand" "rm") ! (const_int 0))) ! (set (match_operand:SI 0 "register_operand" "=r") (minus:SI (const_int 31) ! (clz:SI (match_dup 1))))] "" "bsr{l}\t{%1, %0|%0, %1}" [(set_attr "type" "alu1") *************** *** 13474,13498 **** (set_attr "znver1_decode" "vector") (set_attr "mode" "SI")]) - (define_insn "*bsrhi" - [(set (match_operand:HI 0 "register_operand" "=r") - (minus:HI (const_int 15) - (clz:HI (match_operand:HI 1 "nonimmediate_operand" "rm")))) - (clobber (reg:CC FLAGS_REG))] - "" - "bsr{w}\t{%1, %0|%0, %1}" - [(set_attr "type" "alu1") - (set_attr "prefix_0f" "1") - (set_attr "znver1_decode" "vector") - (set_attr "mode" "HI")]) - (define_expand "clz2" [(parallel ! [(set (match_operand:SWI48 0 "register_operand") (minus:SWI48 (match_dup 2) ! (clz:SWI48 (match_operand:SWI48 1 "nonimmediate_operand")))) ! (clobber (reg:CC FLAGS_REG))]) (parallel [(set (match_dup 0) (xor:SWI48 (match_dup 0) (match_dup 2))) (clobber (reg:CC FLAGS_REG))])] --- 13484,13498 ---- (set_attr "znver1_decode" "vector") (set_attr "mode" "SI")]) (define_expand "clz2" [(parallel ! [(set (reg:CCZ FLAGS_REG) ! (compare:CCZ (match_operand:SWI48 1 "nonimmediate_operand" "rm") ! (const_int 0))) ! (set (match_operand:SWI48 0 "register_operand") (minus:SWI48 (match_dup 2) ! (clz:SWI48 (match_dup 1))))]) (parallel [(set (match_dup 0) (xor:SWI48 (match_dup 0) (match_dup 2))) (clobber (reg:CC FLAGS_REG))])] diff -Nrcpad gcc-9.4.0/gcc/config/i386/sse.md gcc-9.5.0/gcc/config/i386/sse.md *** gcc-9.4.0/gcc/config/i386/sse.md Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/config/i386/sse.md Fri May 27 07:21:10 2022 *************** *** 6393,6399 **** (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") --- 6393,6399 ---- (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") *************** *** 18713,18720 **** 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)); --- 18713,18721 ---- 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)); diff -Nrcpad gcc-9.4.0/gcc/config/i386/sync.md gcc-9.5.0/gcc/config/i386/sync.md *** gcc-9.4.0/gcc/config/i386/sync.md Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/config/i386/sync.md Fri May 27 07:21:10 2022 *************** *** 212,293 **** DONE; }) - (define_peephole2 - [(set (match_operand:DF 0 "fp_register_operand") - (unspec:DF [(match_operand:DI 1 "memory_operand")] - UNSPEC_FILD_ATOMIC)) - (set (match_operand:DI 2 "memory_operand") - (unspec:DI [(match_dup 0)] - UNSPEC_FIST_ATOMIC)) - (set (match_operand:DF 3 "sse_reg_operand") - (match_operand:DF 4 "memory_operand"))] - "!TARGET_64BIT - && peep2_reg_dead_p (2, operands[0]) - && rtx_equal_p (XEXP (operands[4], 0), XEXP (operands[2], 0))" - [(set (match_dup 3) (match_dup 5)) - (set (match_dup 4) (match_dup 3))] - "operands[5] = gen_lowpart (DFmode, operands[1]);") - - (define_peephole2 - [(set (match_operand:DF 0 "fp_register_operand") - (unspec:DF [(match_operand:DI 1 "memory_operand")] - UNSPEC_FILD_ATOMIC)) - (set (match_operand:DI 2 "memory_operand") - (unspec:DI [(match_dup 0)] - UNSPEC_FIST_ATOMIC)) - (set (mem:BLK (scratch:SI)) - (unspec:BLK [(mem:BLK (scratch:SI))] UNSPEC_MEMORY_BLOCKAGE)) - (set (match_operand:DF 3 "sse_reg_operand") - (match_operand:DF 4 "memory_operand"))] - "!TARGET_64BIT - && peep2_reg_dead_p (2, operands[0]) - && rtx_equal_p (XEXP (operands[4], 0), XEXP (operands[2], 0))" - [(const_int 0)] - { - emit_move_insn (operands[3], gen_lowpart (DFmode, operands[1])); - emit_move_insn (operands[4], operands[3]); - emit_insn (gen_memory_blockage ()); - DONE; - }) - - (define_peephole2 - [(set (match_operand:DF 0 "sse_reg_operand") - (unspec:DF [(match_operand:DI 1 "memory_operand")] - UNSPEC_LDX_ATOMIC)) - (set (match_operand:DI 2 "memory_operand") - (unspec:DI [(match_dup 0)] - UNSPEC_STX_ATOMIC)) - (set (match_operand:DF 3 "sse_reg_operand") - (match_operand:DF 4 "memory_operand"))] - "!TARGET_64BIT - && peep2_reg_dead_p (2, operands[0]) - && rtx_equal_p (XEXP (operands[4], 0), XEXP (operands[2], 0))" - [(set (match_dup 3) (match_dup 5)) - (set (match_dup 4) (match_dup 3))] - "operands[5] = gen_lowpart (DFmode, operands[1]);") - - (define_peephole2 - [(set (match_operand:DF 0 "sse_reg_operand") - (unspec:DF [(match_operand:DI 1 "memory_operand")] - UNSPEC_LDX_ATOMIC)) - (set (match_operand:DI 2 "memory_operand") - (unspec:DI [(match_dup 0)] - UNSPEC_STX_ATOMIC)) - (set (mem:BLK (scratch:SI)) - (unspec:BLK [(mem:BLK (scratch:SI))] UNSPEC_MEMORY_BLOCKAGE)) - (set (match_operand:DF 3 "sse_reg_operand") - (match_operand:DF 4 "memory_operand"))] - "!TARGET_64BIT - && peep2_reg_dead_p (2, operands[0]) - && rtx_equal_p (XEXP (operands[4], 0), XEXP (operands[2], 0))" - [(const_int 0)] - { - emit_move_insn (operands[3], gen_lowpart (DFmode, operands[1])); - emit_move_insn (operands[4], operands[3]); - emit_insn (gen_memory_blockage ()); - DONE; - }) - (define_expand "atomic_store" [(set (match_operand:ATOMIC 0 "memory_operand") (unspec:ATOMIC [(match_operand:ATOMIC 1 "nonimmediate_operand") --- 212,217 ---- *************** *** 375,456 **** DONE; }) - (define_peephole2 - [(set (match_operand:DF 0 "memory_operand") - (match_operand:DF 1 "any_fp_register_operand")) - (set (match_operand:DF 2 "fp_register_operand") - (unspec:DF [(match_operand:DI 3 "memory_operand")] - UNSPEC_FILD_ATOMIC)) - (set (match_operand:DI 4 "memory_operand") - (unspec:DI [(match_dup 2)] - UNSPEC_FIST_ATOMIC))] - "!TARGET_64BIT - && peep2_reg_dead_p (3, operands[2]) - && rtx_equal_p (XEXP (operands[0], 0), XEXP (operands[3], 0))" - [(set (match_dup 0) (match_dup 1)) - (set (match_dup 5) (match_dup 1))] - "operands[5] = gen_lowpart (DFmode, operands[4]);") - - (define_peephole2 - [(set (match_operand:DF 0 "memory_operand") - (match_operand:DF 1 "any_fp_register_operand")) - (set (mem:BLK (scratch:SI)) - (unspec:BLK [(mem:BLK (scratch:SI))] UNSPEC_MEMORY_BLOCKAGE)) - (set (match_operand:DF 2 "fp_register_operand") - (unspec:DF [(match_operand:DI 3 "memory_operand")] - UNSPEC_FILD_ATOMIC)) - (set (match_operand:DI 4 "memory_operand") - (unspec:DI [(match_dup 2)] - UNSPEC_FIST_ATOMIC))] - "!TARGET_64BIT - && peep2_reg_dead_p (4, operands[2]) - && rtx_equal_p (XEXP (operands[0], 0), XEXP (operands[3], 0))" - [(const_int 0)] - { - emit_move_insn (operands[0], operands[1]); - emit_insn (gen_memory_blockage ()); - emit_move_insn (gen_lowpart (DFmode, operands[4]), operands[1]); - DONE; - }) - - (define_peephole2 - [(set (match_operand:DF 0 "memory_operand") - (match_operand:DF 1 "any_fp_register_operand")) - (set (match_operand:DF 2 "sse_reg_operand") - (unspec:DF [(match_operand:DI 3 "memory_operand")] - UNSPEC_LDX_ATOMIC)) - (set (match_operand:DI 4 "memory_operand") - (unspec:DI [(match_dup 2)] - UNSPEC_STX_ATOMIC))] - "!TARGET_64BIT - && peep2_reg_dead_p (3, operands[2]) - && rtx_equal_p (XEXP (operands[0], 0), XEXP (operands[3], 0))" - [(set (match_dup 0) (match_dup 1)) - (set (match_dup 5) (match_dup 1))] - "operands[5] = gen_lowpart (DFmode, operands[4]);") - - (define_peephole2 - [(set (match_operand:DF 0 "memory_operand") - (match_operand:DF 1 "any_fp_register_operand")) - (set (mem:BLK (scratch:SI)) - (unspec:BLK [(mem:BLK (scratch:SI))] UNSPEC_MEMORY_BLOCKAGE)) - (set (match_operand:DF 2 "sse_reg_operand") - (unspec:DF [(match_operand:DI 3 "memory_operand")] - UNSPEC_LDX_ATOMIC)) - (set (match_operand:DI 4 "memory_operand") - (unspec:DI [(match_dup 2)] - UNSPEC_STX_ATOMIC))] - "!TARGET_64BIT - && peep2_reg_dead_p (4, operands[2]) - && rtx_equal_p (XEXP (operands[0], 0), XEXP (operands[3], 0))" - [(const_int 0)] - { - emit_move_insn (operands[0], operands[1]); - emit_insn (gen_memory_blockage ()); - emit_move_insn (gen_lowpart (DFmode, operands[4]), operands[1]); - DONE; - }) - ;; ??? You'd think that we'd be able to perform this via FLOAT + FIX_TRUNC ;; operations. But the fix_trunc patterns want way more setup than we want ;; to provide. Note that the scratch is DFmode instead of XFmode in order --- 299,304 ---- *************** *** 800,806 **** 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; --- 648,654 ---- 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; *************** *** 837,843 **** 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; --- 685,691 ---- 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; *************** *** 875,881 **** 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; --- 723,729 ---- 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-9.4.0/gcc/config/mips/mips.c gcc-9.5.0/gcc/config/mips/mips.c *** gcc-9.4.0/gcc/config/mips/mips.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/config/mips/mips.c Fri May 27 07:21:11 2022 *************** mips_atomic_assign_expand_fenv (tree *ho *** 22370,22381 **** 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); --- 22370,22381 ---- 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 *** 22385,22392 **** *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); --- 22385,22392 ---- *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-9.4.0/gcc/config/pa/pa.md gcc-9.5.0/gcc/config/pa/pa.md *** gcc-9.4.0/gcc/config/pa/pa.md Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/config/pa/pa.md Fri May 27 07:21:11 2022 *************** *** 1383,1389 **** (match_operand:SF 2 "reg_or_0_operand" "")]) (label_ref (match_operand 3 "" "")) (pc)))] ! "" " { pa_emit_bcond_fp (operands); --- 1383,1389 ---- (match_operand:SF 2 "reg_or_0_operand" "")]) (label_ref (match_operand 3 "" "")) (pc)))] ! "! TARGET_SOFT_FLOAT" " { pa_emit_bcond_fp (operands); *************** *** 1398,1404 **** (match_operand:DF 2 "reg_or_0_operand" "")]) (label_ref (match_operand 3 "" "")) (pc)))] ! "" " { pa_emit_bcond_fp (operands); --- 1398,1404 ---- (match_operand:DF 2 "reg_or_0_operand" "")]) (label_ref (match_operand 3 "" "")) (pc)))] ! "! TARGET_SOFT_FLOAT" " { pa_emit_bcond_fp (operands); *************** *** 2237,2242 **** --- 2237,2265 ---- (set_attr "length" "4,4,4,4,4,4,4,4,4,4,4,4")]) (define_insn "" + [(set (match_operand:SI 0 "move_dest_operand" + "=r,r,r,r,r,r,Q,!*q,!r") + (match_operand:SI 1 "move_src_operand" + "A,r,J,N,K,RQ,rM,!rM,!*q"))] + "(register_operand (operands[0], SImode) + || reg_or_0_operand (operands[1], SImode)) + && TARGET_SOFT_FLOAT + && TARGET_64BIT" + "@ + ldw RT'%A1,%0 + copy %1,%0 + ldi %1,%0 + ldil L'%1,%0 + {zdepi|depwi,z} %Z1,%0 + ldw%M1 %1,%0 + stw%M0 %r1,%0 + mtsar %r1 + {mfctl|mfctl,w} %%sar,%0" + [(set_attr "type" "load,move,move,move,shift,load,store,move,move") + (set_attr "pa_combine_type" "addmove") + (set_attr "length" "4,4,4,4,4,4,4,4,4")]) + + (define_insn "" [(set (match_operand:SI 0 "indexed_memory_operand" "=R") (match_operand:SI 1 "register_operand" "f"))] "!TARGET_SOFT_FLOAT *************** *** 4024,4035 **** [(set (match_operand:DF 0 "move_dest_operand" "=!*r,*r,*r,*r,*r,Q,f,f,T") (match_operand:DF 1 "move_src_operand" ! "!*r,J,N,K,RQ,*rG,fG,RT,f"))] "(register_operand (operands[0], DFmode) || reg_or_0_operand (operands[1], DFmode)) && !TARGET_SOFT_FLOAT && TARGET_64BIT" "@ ! copy %1,%0 ldi %1,%0 ldil L'%1,%0 depdi,z %z1,%0 --- 4047,4058 ---- [(set (match_operand:DF 0 "move_dest_operand" "=!*r,*r,*r,*r,*r,Q,f,f,T") (match_operand:DF 1 "move_src_operand" ! "!*rG,J,N,K,RQ,*rG,fG,RT,f"))] "(register_operand (operands[0], DFmode) || reg_or_0_operand (operands[1], DFmode)) && !TARGET_SOFT_FLOAT && TARGET_64BIT" "@ ! copy %r1,%0 ldi %1,%0 ldil L'%1,%0 depdi,z %z1,%0 *************** *** 4042,4047 **** --- 4065,4089 ---- (set_attr "pa_combine_type" "addmove") (set_attr "length" "4,4,4,4,4,4,4,4,4")]) + (define_insn "" + [(set (match_operand:DF 0 "move_dest_operand" + "=!*r,*r,*r,*r,*r,Q") + (match_operand:DF 1 "move_src_operand" + "!*rG,J,N,K,RQ,*rG"))] + "(register_operand (operands[0], DFmode) + || reg_or_0_operand (operands[1], DFmode)) + && TARGET_SOFT_FLOAT && TARGET_64BIT" + "@ + copy %r1,%0 + ldi %1,%0 + ldil L'%1,%0 + depdi,z %z1,%0 + ldd%M1 %1,%0 + std%M0 %r1,%0" + [(set_attr "type" "move,move,move,shift,load,store") + (set_attr "pa_combine_type" "addmove") + (set_attr "length" "4,4,4,4,4,4")]) + (define_expand "movdi" [(set (match_operand:DI 0 "general_operand" "") *************** *** 4201,4206 **** --- 4243,4270 ---- (set_attr "length" "4,4,4,4,4,4,4,4,4,4,4,4")]) (define_insn "" + [(set (match_operand:DI 0 "move_dest_operand" + "=r,r,r,r,r,r,Q,!*q,!r") + (match_operand:DI 1 "move_src_operand" + "A,r,J,N,K,RQ,rM,!rM,!*q"))] + "(register_operand (operands[0], DImode) + || reg_or_0_operand (operands[1], DImode)) + && TARGET_SOFT_FLOAT && TARGET_64BIT" + "@ + ldd RT'%A1,%0 + copy %1,%0 + ldi %1,%0 + ldil L'%1,%0 + depdi,z %z1,%0 + ldd%M1 %1,%0 + std%M0 %r1,%0 + mtsar %r1 + {mfctl|mfctl,w} %%sar,%0" + [(set_attr "type" "load,move,move,move,shift,load,store,move,move") + (set_attr "pa_combine_type" "addmove") + (set_attr "length" "4,4,4,4,4,4,4,4,4")]) + + (define_insn "" [(set (match_operand:DI 0 "indexed_memory_operand" "=R") (match_operand:DI 1 "register_operand" "f"))] "!TARGET_SOFT_FLOAT *************** *** 4406,4411 **** --- 4470,4492 ---- (set_attr "length" "4,4,4,4,4,4")]) (define_insn "" + [(set (match_operand:SF 0 "move_dest_operand" + "=!*r,*r,Q") + (match_operand:SF 1 "reg_or_0_or_nonsymb_mem_operand" + "!*rG,RQ,*rG"))] + "(register_operand (operands[0], SFmode) + || reg_or_0_operand (operands[1], SFmode)) + && TARGET_SOFT_FLOAT + && TARGET_64BIT" + "@ + copy %r1,%0 + ldw%M1 %1,%0 + stw%M0 %r1,%0" + [(set_attr "type" "move,load,store") + (set_attr "pa_combine_type" "addmove") + (set_attr "length" "4,4,4")]) + + (define_insn "" [(set (match_operand:SF 0 "indexed_memory_operand" "=R") (match_operand:SF 1 "register_operand" "f"))] "!TARGET_SOFT_FLOAT *************** *** 5374,5405 **** [(set (match_operand:DI 0 "register_operand" "") (mult:DI (match_operand:DI 1 "register_operand" "") (match_operand:DI 2 "register_operand" "")))] ! "TARGET_64BIT && ! TARGET_DISABLE_FPREGS && ! TARGET_SOFT_FLOAT" " { rtx low_product = gen_reg_rtx (DImode); rtx cross_product1 = gen_reg_rtx (DImode); rtx cross_product2 = gen_reg_rtx (DImode); - rtx cross_scratch = gen_reg_rtx (DImode); - rtx cross_product = gen_reg_rtx (DImode); rtx op1l, op1r, op2l, op2r; - rtx op1shifted, op2shifted; ! op1shifted = gen_reg_rtx (DImode); ! op2shifted = gen_reg_rtx (DImode); ! op1l = gen_reg_rtx (SImode); ! op1r = gen_reg_rtx (SImode); ! op2l = gen_reg_rtx (SImode); ! op2r = gen_reg_rtx (SImode); ! emit_move_insn (op1shifted, gen_rtx_LSHIFTRT (DImode, operands[1], ! GEN_INT (32))); ! emit_move_insn (op2shifted, gen_rtx_LSHIFTRT (DImode, operands[2], ! GEN_INT (32))); ! op1r = force_reg (SImode, gen_rtx_SUBREG (SImode, operands[1], 4)); ! op2r = force_reg (SImode, gen_rtx_SUBREG (SImode, operands[2], 4)); ! op1l = force_reg (SImode, gen_rtx_SUBREG (SImode, op1shifted, 4)); ! op2l = force_reg (SImode, gen_rtx_SUBREG (SImode, op2shifted, 4)); /* Emit multiplies for the cross products. */ emit_insn (gen_umulsidi3 (cross_product1, op2r, op1l)); --- 5455,5492 ---- [(set (match_operand:DI 0 "register_operand" "") (mult:DI (match_operand:DI 1 "register_operand" "") (match_operand:DI 2 "register_operand" "")))] ! "! optimize_size ! && TARGET_PA_11 ! && ! TARGET_DISABLE_FPREGS ! && ! TARGET_SOFT_FLOAT" " { rtx low_product = gen_reg_rtx (DImode); rtx cross_product1 = gen_reg_rtx (DImode); rtx cross_product2 = gen_reg_rtx (DImode); rtx op1l, op1r, op2l, op2r; ! if (TARGET_64BIT) ! { ! rtx op1shifted = gen_reg_rtx (DImode); ! rtx op2shifted = gen_reg_rtx (DImode); ! emit_move_insn (op1shifted, gen_rtx_LSHIFTRT (DImode, operands[1], ! GEN_INT (32))); ! emit_move_insn (op2shifted, gen_rtx_LSHIFTRT (DImode, operands[2], ! GEN_INT (32))); ! op1r = force_reg (SImode, gen_rtx_SUBREG (SImode, operands[1], 4)); ! op2r = force_reg (SImode, gen_rtx_SUBREG (SImode, operands[2], 4)); ! op1l = force_reg (SImode, gen_rtx_SUBREG (SImode, op1shifted, 4)); ! op2l = force_reg (SImode, gen_rtx_SUBREG (SImode, op2shifted, 4)); ! } ! else ! { ! op1r = force_reg (SImode, gen_lowpart (SImode, operands[1])); ! op2r = force_reg (SImode, gen_lowpart (SImode, operands[2])); ! op1l = force_reg (SImode, gen_highpart (SImode, operands[1])); ! op2l = force_reg (SImode, gen_highpart (SImode, operands[2])); ! } /* Emit multiplies for the cross products. */ emit_insn (gen_umulsidi3 (cross_product1, op2r, op1l)); *************** *** 5408,5420 **** /* Emit a multiply for the low sub-word. */ emit_insn (gen_umulsidi3 (low_product, copy_rtx (op2r), copy_rtx (op1r))); ! /* Sum the cross products and shift them into proper position. */ ! emit_insn (gen_adddi3 (cross_scratch, cross_product1, cross_product2)); ! emit_insn (gen_ashldi3 (cross_product, cross_scratch, GEN_INT (32))); ! /* Add the cross product to the low product and store the result ! into the output operand . */ ! emit_insn (gen_adddi3 (operands[0], cross_product, low_product)); DONE; }") --- 5495,5529 ---- /* Emit a multiply for the low sub-word. */ emit_insn (gen_umulsidi3 (low_product, copy_rtx (op2r), copy_rtx (op1r))); ! if (TARGET_64BIT) ! { ! rtx cross_scratch = gen_reg_rtx (DImode); ! rtx cross_product = gen_reg_rtx (DImode); ! /* Sum the cross products and shift them into proper position. */ ! emit_insn (gen_adddi3 (cross_scratch, cross_product1, cross_product2)); ! emit_insn (gen_ashldi3 (cross_product, cross_scratch, GEN_INT (32))); ! ! /* Add the cross product to the low product and store the result ! into the output operand . */ ! emit_insn (gen_adddi3 (operands[0], cross_product, low_product)); ! } ! else ! { ! rtx cross_scratch = gen_reg_rtx (SImode); ! ! /* Sum cross products. */ ! emit_move_insn (cross_scratch, ! gen_rtx_PLUS (SImode, ! gen_lowpart (SImode, cross_product1), ! gen_lowpart (SImode, cross_product2))); ! emit_move_insn (gen_lowpart (SImode, operands[0]), ! gen_lowpart (SImode, low_product)); ! emit_move_insn (gen_highpart (SImode, operands[0]), ! gen_rtx_PLUS (SImode, ! gen_highpart (SImode, low_product), ! cross_scratch)); ! } DONE; }") diff -Nrcpad gcc-9.4.0/gcc/config/rs6000/altivec.h gcc-9.5.0/gcc/config/rs6000/altivec.h *** gcc-9.4.0/gcc/config/rs6000/altivec.h Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/config/rs6000/altivec.h Fri May 27 07:21:11 2022 *************** *** 127,133 **** #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 --- 127,133 ---- #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-9.4.0/gcc/config/rs6000/rs6000-p8swap.c gcc-9.5.0/gcc/config/rs6000/rs6000-p8swap.c *** gcc-9.4.0/gcc/config/rs6000/rs6000-p8swap.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/config/rs6000/rs6000-p8swap.c Fri May 27 07:21:11 2022 *************** replace_swap_with_copy (swap_web_entry * *** 1501,1506 **** --- 1501,1522 ---- insn->set_deleted (); } + /* INSN is known to contain a SUBREG, which we can normally handle, + but if the SUBREG itself contains a MULT then we need to leave it alone + to avoid turning a mult_hipart into a mult_lopart, for example. */ + static bool + has_part_mult (rtx_insn *insn) + { + rtx body = PATTERN (insn); + if (GET_CODE (body) != SET) + return false; + rtx src = SET_SRC (body); + if (GET_CODE (src) != SUBREG) + return false; + rtx inner = XEXP (src, 0); + return (GET_CODE (inner) == MULT); + } + /* Make NEW_MEM_EXP's attributes and flags resemble those of ORIGINAL_MEM_EXP. */ static void *************** rs6000_analyze_swaps (function *fun) *** 2437,2442 **** --- 2453,2461 ---- insn_entry[uid].is_swappable = 0; else if (special != SH_NONE) insn_entry[uid].special_handling = special; + else if (insn_entry[uid].contains_subreg + && has_part_mult (insn)) + insn_entry[uid].is_swappable = 0; else if (insn_entry[uid].contains_subreg) insn_entry[uid].special_handling = SH_SUBREG; } diff -Nrcpad gcc-9.4.0/gcc/config/rs6000/rs6000.c gcc-9.5.0/gcc/config/rs6000/rs6000.c *** gcc-9.4.0/gcc/config/rs6000/rs6000.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/config/rs6000/rs6000.c Fri May 27 07:21:11 2022 *************** vspltis_constant (rtx op, unsigned step, *** 6081,6087 **** /* Also check if are loading up the most significant bit which can be done by loading up -1 and shifting the value left by -1. */ ! else if (EASY_VECTOR_MSB (splat_val, inner)) ; else --- 6081,6087 ---- /* Also check if are loading up the most significant bit which can be done by loading up -1 and shifting the value left by -1. */ ! else if (EASY_VECTOR_MSB (splat_val, inner) && step == 1 && copies == 1) ; else *************** vspltis_shifted (rtx op) *** 6130,6137 **** 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); --- 6130,6140 ---- 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); *************** rs6000_init_builtins (void) *** 17110,17132 **** #endif } ! /* Returns the rs6000 builtin decl for CODE. */ static 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]; } --- 17113,17129 ---- #endif } ! /* 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. */ static 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-9.4.0/gcc/config/rs6000/vector.md gcc-9.5.0/gcc/config/rs6000/vector.md *** gcc-9.4.0/gcc/config/rs6000/vector.md Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/config/rs6000/vector.md Fri May 27 07:21:11 2022 *************** *** 1290,1296 **** [(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). --- 1290,1299 ---- [(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-9.4.0/gcc/config/s390/s390.md gcc-9.5.0/gcc/config/s390/s390.md *** gcc-9.4.0/gcc/config/s390/s390.md Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/config/s390/s390.md Fri May 27 07:21:11 2022 *************** *** 973,979 **** (match_operand:GPR 2 "memory_operand")) (set (reg CC_REGNUM) (compare (match_dup 0) (match_operand:GPR 1 "const0_operand")))] ! "s390_match_ccmode(insn, CCSmode) && TARGET_EXTIMM && GENERAL_REG_P (operands[0]) && satisfies_constraint_T (operands[2]) && !contains_constant_pool_address_p (operands[2])" --- 973,979 ---- (match_operand:GPR 2 "memory_operand")) (set (reg CC_REGNUM) (compare (match_dup 0) (match_operand:GPR 1 "const0_operand")))] ! "s390_match_ccmode (peep2_next_insn (1), CCSmode) && TARGET_EXTIMM && GENERAL_REG_P (operands[0]) && satisfies_constraint_T (operands[2]) && !contains_constant_pool_address_p (operands[2])" *************** *** 9268,9274 **** (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" "@ --- 9268,9274 ---- (define_insn "*cmp_and_trap_unsigned_int" [(trap_if (match_operator 0 "s390_unsigned_integer_comparison" [(match_operand:GPR 1 "register_operand" "d,d,d") ! (match_operand:GPR 2 "general_operand" "d,D,S")]) (const_int 0))] "TARGET_Z10" "@ diff -Nrcpad gcc-9.4.0/gcc/config/s390/vecintrin.h gcc-9.5.0/gcc/config/s390/vecintrin.h *** gcc-9.4.0/gcc/config/s390/vecintrin.h Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/config/s390/vecintrin.h Fri May 27 07:21:11 2022 *************** __lcbb(const void *ptr, int bndry) *** 109,116 **** #define vec_rint(X) __builtin_s390_vfi((X), 0, 0) #define vec_roundc(X) __builtin_s390_vfi((X), 4, 0) #define vec_round(X) __builtin_s390_vfi((X), 4, 4) ! #define vec_doublee(X) __builtin_s390_vfll((X)) ! #define vec_floate(X) __builtin_s390_vflr((X), 0, 0) #define vec_load_len_r(X,L) \ (__vector unsigned char)__builtin_s390_vlrlr((L),(X)) #define vec_store_len_r(X,Y,L) \ --- 109,116 ---- #define vec_rint(X) __builtin_s390_vfi((X), 0, 0) #define vec_roundc(X) __builtin_s390_vfi((X), 4, 0) #define vec_round(X) __builtin_s390_vfi((X), 4, 4) ! #define vec_doublee(X) __builtin_s390_vflls((X)) ! #define vec_floate(X) __builtin_s390_vflrd((X), 0, 0) #define vec_load_len_r(X,L) \ (__vector unsigned char)__builtin_s390_vlrlr((L),(X)) #define vec_store_len_r(X,Y,L) \ diff -Nrcpad gcc-9.4.0/gcc/config/sparc/sparc.c gcc-9.5.0/gcc/config/sparc/sparc.c *** gcc-9.4.0/gcc/config/sparc/sparc.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/config/sparc/sparc.c Fri May 27 07:21:11 2022 *************** epilogue_renumber (register rtx *where, *** 8883,8890 **** if (REGNO (*where) >= 8 && REGNO (*where) < 24) /* oX or lX */ return 1; if (! test && REGNO (*where) >= 24 && REGNO (*where) < 32) ! *where = gen_rtx_REG (GET_MODE (*where), OUTGOING_REGNO (REGNO(*where))); ! /* fallthrough */ case SCRATCH: case CC0: case PC: --- 8883,8902 ---- if (REGNO (*where) >= 8 && REGNO (*where) < 24) /* oX or lX */ return 1; if (! test && REGNO (*where) >= 24 && REGNO (*where) < 32) ! { ! if (ORIGINAL_REGNO (*where)) ! { ! rtx n = gen_raw_REG (GET_MODE (*where), ! OUTGOING_REGNO (REGNO (*where))); ! ORIGINAL_REGNO (n) = ORIGINAL_REGNO (*where); ! *where = n; ! } ! else ! *where = gen_rtx_REG (GET_MODE (*where), ! OUTGOING_REGNO (REGNO (*where))); ! } ! return 0; ! case SCRATCH: case CC0: case PC: *************** sparc_vectorize_vec_perm_const (machine_ *** 12941,12949 **** if (!TARGET_VIS2) return false; ! /* All permutes are supported. */ if (!target) ! return true; /* Force target-independent code to convert constant permutations on other modes down to V8QI. Rely on this to avoid the complexity of the byte --- 12953,12961 ---- if (!TARGET_VIS2) return false; ! /* All 8-byte permutes are supported. */ if (!target) ! return GET_MODE_SIZE (vmode) == 8; /* Force target-independent code to convert constant permutations on other modes down to V8QI. Rely on this to avoid the complexity of the byte diff -Nrcpad gcc-9.4.0/gcc/configure gcc-9.5.0/gcc/configure *** gcc-9.4.0/gcc/configure Tue Jun 1 07:53:40 2021 --- gcc-9.5.0/gcc/configure Fri May 27 07:21:46 2022 *************** $as_echo "#define HAVE_LD_PPC_GNU_ATTR_L *** 28944,28950 **** esac case "$target:$tm_file" in ! powerpc64-*-freebsd* | powerpc64*-*-linux* | powerpc*-*-linux*rs6000/biarch64.h*) case "$target" in *le-*-linux*) emul_name="-melf64lppc" --- 28944,28950 ---- 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-9.4.0/gcc/configure.ac gcc-9.5.0/gcc/configure.ac *** gcc-9.4.0/gcc/configure.ac Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/configure.ac Fri May 27 07:21:11 2022 *************** EOF *** 5671,5677 **** esac case "$target:$tm_file" in ! powerpc64-*-freebsd* | powerpc64*-*-linux* | powerpc*-*-linux*rs6000/biarch64.h*) case "$target" in *le-*-linux*) emul_name="-melf64lppc" --- 5671,5677 ---- 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-9.4.0/gcc/coretypes.h gcc-9.5.0/gcc/coretypes.h *** gcc-9.4.0/gcc/coretypes.h Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/coretypes.h Fri May 27 07:21:11 2022 *************** enum profile_update { *** 202,216 **** PROFILE_UPDATE_PREFER_ATOMIC }; ! /* 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. */ --- 202,218 ---- PROFILE_UPDATE_PREFER_ATOMIC }; ! /* 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-9.4.0/gcc/cp/ChangeLog gcc-9.5.0/gcc/cp/ChangeLog *** gcc-9.4.0/gcc/cp/ChangeLog Tue Jun 1 07:53:23 2021 --- gcc-9.5.0/gcc/cp/ChangeLog Fri May 27 07:21:30 2022 *************** *** 1,3 **** --- 1,325 ---- + 2022-05-27 Release Manager + + * GCC 9.5.0 released. + + 2022-05-13 Jason Merrill + + PR c++/101078 + * pt.c (tsubst_baselink): Update binfos in non-dependent case. + + 2022-05-13 Jason Merrill + + PR c++/99066 + * pt.c (mark_decl_instantiated): Set DECL_EXTERNAL. + + 2022-05-13 Jason Merrill + + PR c++/100838 + PR c++/105265 + * call.c (convert_like_internal): Clear tf_no_cleanup when + recursing. + (build_user_type_conversion_1): Only add ck_rvalue if + LOOKUP_ONLYCONVERTING. + + 2022-05-13 Jason Merrill + + PR c++/91217 + * pt.c (tsubst_lambda_expr): Skip the body block from + DECL_SAVED_TREE. + + 2022-05-13 Jason Merrill + + PR c++/99643 + * typeck2.c (massage_init_elt): Don't strip TARGET_EXPR. + + 2022-05-13 Jason Merrill + + PR c++/65211 + * pt.c (tsubst_decl) [TYPE_DECL]: Copy TYPE_ALIGN. + + 2022-05-13 Jason Merrill + + PR c++/101698 + * pt.c (tsubst_baselink): Also check dependent optype. + + 2022-05-13 Jason Merrill + + PR c++/101442 + * decl.c (cp_finish_decl): Don't pass decl to push_cleanup. + * init.c (perform_member_init): Likewise. + * semantics.c (push_cleanup): Adjust comment. + + 2022-05-13 Jason Merrill + + PR c++/98249 + * call.c (build_operator_new_call): Just look in ::. + + 2022-05-13 Jason Merrill + + PR c++/104646 + * constexpr.c (maybe_save_constexpr_fundef): Don't do extra + checks for defaulted ctors. + + 2022-05-13 Jason Merrill + + PR c++/59950 + * call.c (build_over_call): Use cp_build_indirect_ref. + + 2022-05-13 Jason Merrill + + PR c++/99901 + * decl.c (cp_finish_decl): mark_needed an implicitly inline + static data member with an out-of-class redeclaration. + + 2022-05-13 Jason Merrill + + PR c++/101717 + * lambda.c (lambda_expr_this_capture): Check all enclosing + lambdas for completeness. + + 2022-05-13 Jason Merrill + + PR c++/90664 + * cvt.c (can_convert_qual): Check fnptr_conv_p. + + 2022-05-13 Jason Merrill + + PR c++/95870 + * pt.c (enclosing_instantiation_of): Compare DECL_SOURCE_LOCATION if + there is no enclosing non-lambda function. + + 2022-05-13 Jason Merrill + + PR c++/96311 + * typeck.c (check_return_expr): Call mark_exp_read in dependent + case. + + 2022-05-13 Jason Merrill + + PR c++/96673 + * init.c (get_nsdmi): Don't defer access checking. + + 2022-05-13 Jason Merrill + + PR c++/91933 + * class.c (build_base_path): Shortcut simple non-pointer case. + + 2022-05-13 Jason Merrill + + PR c++/100032 + * pt.c (get_underlying_template): Compare TYPE_QUALS. + + 2022-05-13 Jakub Jelinek + + PR c++/67184 + PR c++/69445 + * call.c (build_new_method_call_1): Remove set but not used variable + binfo. + + 2022-05-11 Patrick Palka + + Backported from master: + 2022-03-26 Patrick Palka + + PR c++/103455 + * call.c (add_builtin_candidate) : Test + CLASS_TYPE_P instead of MAYBE_CLASS_TYPE_P. + + 2022-05-11 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-05-11 Patrick Palka + + Backported from master: + 2021-04-14 Patrick Palka + + PR c++/83476 + PR c++/99885 + * pt.c (deducible_expression): Look through implicit + INDIRECT_REFs as well. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2022-04-19 Jakub Jelinek + + PR c++/105256 + * typeck2.c (process_init_constructor_array, + process_init_constructor_record, process_init_constructor_union): Move + CONSTRUCTOR_PLACEHOLDER_BOUNDARY flag from CONSTRUCTOR elements to the + containing CONSTRUCTOR. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2022-03-26 Jakub Jelinek + + * parser.c (cp_parser_postfix_expression) + : Don't + return cp_build_vec_convert result right away, instead + set postfix_expression to it and break. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2022-03-24 Jakub Jelinek + + PR c++/104994 + * constexpr.c (potential_constant_expression_1): Don't diagnose extern + thread_local declarations. + * decl.c (start_decl): Likewise. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2022-03-09 Jakub Jelinek + + PR c/104711 + * constexpr.c (cxx_eval_check_shift_p): Use TYPE_OVERFLOW_WRAPS + instead of TYPE_UNSIGNED. + * typeck.c (cp_build_binary_op): Don't emit + -Wshift-negative-value warning if TYPE_OVERFLOW_WRAPS. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2022-03-08 Jakub Jelinek + + PR c++/104806 + * search.c (lookup_field_fuzzy_info::fuzzy_lookup_field): Ignore + identifiers with space at the end. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2022-02-14 Jakub Jelinek + + PR c++/104513 + * constexpr.c (potential_constant_expression_1) : + Don't punt if returns (target). + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2022-02-11 Jakub Jelinek + + PR c++/104472 + * constexpr.c (cxx_eval_internal_function) : + Only return fold_const_call result if it is non-NULL. Otherwise + fall through into the default: case to return t, set *non_constant_p + and emit diagnostics if needed. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-11-19 Jakub Jelinek + + PR c++/70796 + * cp-gimplify.c (cp_gimplify_arg): New function. + (cp_gimplify_expr): Use cp_gimplify_arg instead of gimplify_arg, + pass true as last argument to it if there are any following + arguments in strong evaluation order with side-effects. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-10-19 Jakub Jelinek + + PR c++/102786 + * constexpr.c (cxx_eval_constant_expression): Don't reject + INTEGER_CSTs with type POINTER_TYPE to METHOD_TYPE. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-10-05 Jakub Jelinek + + PR c++/102548 + * tree.c (apply_identity_attributes): Fix handling of the + case where an attribute in the list doesn't affect type + identity but some attribute before it does. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-09-15 Jakub Jelinek + + PR c++/88578 + PR c++/102295 + * typeck2.c (split_nonconstant_init_1): Don't throw away empty + initializers of flexible array members if they have non-zero type + size. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-09-14 Jakub Jelinek + + PR c++/102295 + * decl.c (layout_var_decl): For aggregates ending with a flexible + array member, add the size of the initializer for that member to + DECL_SIZE and DECL_SIZE_UNIT. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-09-14 Jakub Jelinek + + PR c++/102305 + * method.c (is_xible_helper): Call complete_type on to. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-07-21 Jakub Jelinek + + PR c++/101516 + * semantics.c (finish_omp_reduction_clause): Also call + complete_type_or_else and return true if it fails. + + 2022-05-11 Tobias Burnus + + Backported from master: + 2021-05-04 Tobias Burnus + + * semantics.c (finish_omp_reduction_clause): Accept float + complex + for || and && reductions. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-07-15 Jakub Jelinek + + PR c++/101443 + * cp-gimplify.c (cp_fold): For comparisons with NULLPTR_TYPE + operands, fold them right away to true or false. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-06-21 Jakub Jelinek + + PR inline-asm/100785 + * typeck.c (cxx_mark_addressable): Diagnose trying to make + bit-fields addressable. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-05-25 Jakub Jelinek + + PR c++/100666 + * call.c (convert_arg_to_ellipsis): For expressions with NULLPTR_TYPE + and side-effects, temporarily disable -Wunused-result warning when + building COMPOUND_EXPR. + 2021-06-01 Release Manager * GCC 9.4.0 released. diff -Nrcpad gcc-9.4.0/gcc/cp/call.c gcc-9.5.0/gcc/cp/call.c *** gcc-9.4.0/gcc/cp/call.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/cp/call.c Fri May 27 07:21:11 2022 *************** add_builtin_candidate (struct z_candidat *** 2684,2690 **** 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; --- 2684,2690 ---- tree c1 = TREE_TYPE (type1); tree c2 = TYPE_PTRMEM_CLASS_TYPE (type2); ! if (CLASS_TYPE_P (c1) && DERIVED_FROM_P (c2, c1) && (TYPE_PTRMEMFUNC_P (type2) || is_complete (TYPE_PTRMEM_POINTED_TO_TYPE (type2)))) break; *************** build_user_type_conversion_1 (tree totyp *** 3959,3965 **** { cand->second_conv = build_identity_conv (totype, NULL_TREE); ! /* If totype isn't a reference, and LOOKUP_NO_TEMP_BIND isn't set, then this is copy-initialization. In that case, "The result of the call is then used to direct-initialize the object that is the destination of the copy-initialization." --- 3959,3965 ---- { cand->second_conv = build_identity_conv (totype, NULL_TREE); ! /* If totype isn't a reference, and LOOKUP_ONLYCONVERTING is set, then this is copy-initialization. In that case, "The result of the call is then used to direct-initialize the object that is the destination of the copy-initialization." *************** build_user_type_conversion_1 (tree totyp *** 3968,3973 **** --- 3968,3975 ---- We represent this in the conversion sequence with an rvalue conversion, which means a constructor call. */ if (!TYPE_REF_P (totype) + && cxx_dialect < cxx17 + && (flags & LOOKUP_ONLYCONVERTING) && !(convflags & LOOKUP_NO_TEMP_BIND)) cand->second_conv = build_conv (ck_rvalue, totype, cand->second_conv); *************** build_operator_new_call (tree fnname, ve *** 4584,4590 **** we disregard block-scope declarations of "operator new". */ fns = lookup_name_real (fnname, 0, 1, /*block_p=*/false, 0, 0); - fns = lookup_arg_dependent (fnname, fns, *args); if (align_arg) { --- 4586,4591 ---- *************** convert_like_real (conversion *convs, tr *** 7315,7321 **** expr = convert_like_real (next_conversion (convs), expr, fn, argnum, convs->kind == ck_ref_bind ? issue_conversion_warnings : false, ! c_cast_p, complain); if (expr == error_mark_node) return error_mark_node; --- 7316,7322 ---- expr = convert_like_real (next_conversion (convs), expr, fn, argnum, convs->kind == ck_ref_bind ? issue_conversion_warnings : false, ! c_cast_p, complain & ~tf_no_cleanup); if (expr == error_mark_node) return error_mark_node; *************** convert_arg_to_ellipsis (tree arg, tsubs *** 7564,7570 **** else if (NULLPTR_TYPE_P (arg_type)) { if (TREE_SIDE_EFFECTS (arg)) ! arg = cp_build_compound_expr (arg, null_pointer_node, complain); else arg = null_pointer_node; } --- 7565,7574 ---- else if (NULLPTR_TYPE_P (arg_type)) { if (TREE_SIDE_EFFECTS (arg)) ! { ! warning_sentinel w(warn_unused_result); ! arg = cp_build_compound_expr (arg, null_pointer_node, complain); ! } else arg = null_pointer_node; } *************** build_over_call (struct z_candidate *can *** 8659,8666 **** && DECL_OVERLOADED_OPERATOR_IS (fn, NOP_EXPR) && trivial_fn_p (fn)) { ! tree to = cp_stabilize_reference ! (cp_build_fold_indirect_ref (argarray[0])); tree type = TREE_TYPE (to); tree as_base = CLASSTYPE_AS_BASE (type); tree arg = argarray[1]; --- 8663,8673 ---- && 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 (argarray[0], ! RO_ARROW, complain); ! to = cp_stabilize_reference (to); tree type = TREE_TYPE (to); tree as_base = CLASSTYPE_AS_BASE (type); tree arg = argarray[1]; *************** build_new_method_call_1 (tree instance, *** 9641,9647 **** struct z_candidate *candidates = 0, *cand; tree explicit_targs = NULL_TREE; tree basetype = NULL_TREE; ! tree access_binfo, binfo; tree optype; tree first_mem_arg = NULL_TREE; tree name; --- 9648,9654 ---- struct z_candidate *candidates = 0, *cand; tree explicit_targs = NULL_TREE; tree basetype = NULL_TREE; ! tree access_binfo; tree optype; tree first_mem_arg = NULL_TREE; tree name; *************** build_new_method_call_1 (tree instance, *** 9680,9686 **** if (!conversion_path) conversion_path = BASELINK_BINFO (fns); access_binfo = BASELINK_ACCESS_BINFO (fns); - binfo = BASELINK_BINFO (fns); optype = BASELINK_OPTYPE (fns); fns = BASELINK_FUNCTIONS (fns); if (TREE_CODE (fns) == TEMPLATE_ID_EXPR) --- 9687,9692 ---- diff -Nrcpad gcc-9.4.0/gcc/cp/class.c gcc-9.5.0/gcc/cp/class.c *** gcc-9.4.0/gcc/cp/class.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/cp/class.c Fri May 27 07:21:11 2022 *************** build_base_path (enum tree_code code, *** 331,336 **** --- 331,345 ---- return error_mark_node; } + bool uneval = (cp_unevaluated_operand != 0 + || processing_template_decl + || in_template_function ()); + + /* For a non-pointer simple base reference, express it as a COMPONENT_REF + without taking its address (and so causing lambda capture, 91933). */ + if (code == PLUS_EXPR && !v_binfo && !want_pointer && !has_empty && !uneval) + return build_simple_base_path (expr, binfo); + if (!want_pointer) { rvalue = !lvalue_p (expr); *************** build_base_path (enum tree_code code, *** 358,366 **** template (even in instantiate_non_dependent_expr), we don't have vtables set up properly yet, and the value doesn't matter there either; we're just interested in the result of overload resolution. */ ! if (cp_unevaluated_operand != 0 ! || processing_template_decl ! || in_template_function ()) { expr = build_nop (ptr_target_type, expr); goto indout; --- 367,373 ---- template (even in instantiate_non_dependent_expr), we don't have vtables set up properly yet, and the value doesn't matter there either; we're just interested in the result of overload resolution. */ ! if (uneval) { expr = build_nop (ptr_target_type, expr); goto indout; diff -Nrcpad gcc-9.4.0/gcc/cp/constexpr.c gcc-9.5.0/gcc/cp/constexpr.c *** gcc-9.4.0/gcc/cp/constexpr.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/cp/constexpr.c Fri May 27 07:21:11 2022 *************** register_constexpr_fundef (tree fun, tre *** 890,896 **** return NULL; } ! if (DECL_CONSTRUCTOR_P (fun) && cx_check_missing_mem_inits (DECL_CONTEXT (fun), massaged, !DECL_GENERATED_P (fun))) return NULL; --- 890,896 ---- return NULL; } ! if (DECL_CONSTRUCTOR_P (fun) && !DECL_DEFAULTED_FN (fun) && cx_check_missing_mem_inits (DECL_CONTEXT (fun), massaged, !DECL_GENERATED_P (fun))) return NULL; *************** cxx_eval_internal_function (const conste *** 1529,1541 **** 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) --- 1529,1538 ---- 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_check_shift_p (location_t loc, *** 2063,2069 **** The value of E1 << E2 is the unique value congruent to E1 x 2^E2 modulo 2^N, where N is the range exponent of the type of the result. */ if (code == LSHIFT_EXPR ! && !TYPE_UNSIGNED (lhstype) && cxx_dialect >= cxx11 && cxx_dialect < cxx2a) { --- 2060,2066 ---- The value of E1 << E2 is the unique value congruent to E1 x 2^E2 modulo 2^N, where N is the range exponent of the type of the result. */ if (code == LSHIFT_EXPR ! && !TYPE_OVERFLOW_WRAPS (lhstype) && cxx_dialect >= cxx11 && cxx_dialect < cxx2a) { *************** cxx_eval_constant_expression (const cons *** 4469,4474 **** --- 4466,4475 ---- 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) *************** potential_constant_expression_1 (tree t, *** 6662,6679 **** 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 --- 6663,6680 ---- 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, *** 6927,6934 **** 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; --- 6928,6935 ---- case GOTO_EXPR: { tree *target = &TREE_OPERAND (t, 0); ! /* Gotos representing break, continue and cdtor return are OK. */ ! if (breaks (target) || continues (target) || returns (target)) { *jump_target = *target; return true; diff -Nrcpad gcc-9.4.0/gcc/cp/cp-gimplify.c gcc-9.5.0/gcc/cp/cp-gimplify.c *** gcc-9.4.0/gcc/cp/cp-gimplify.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/cp/cp-gimplify.c Fri May 27 07:21:11 2022 *************** lvalue_has_side_effects (tree e) *** 637,642 **** --- 637,683 ---- return TREE_SIDE_EFFECTS (e); } + /* 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, NULL); + return t; + } + + } + /* Do C++-specific gimplification. Args are as for gimplify_expr. */ int *************** cp_gimplify_expr (tree *expr_p, gimple_s *** 846,852 **** 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; } --- 887,894 ---- 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 *** 855,864 **** /* 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; } --- 897,914 ---- /* 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 *** 872,879 **** 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; } --- 922,938 ---- fntype = TREE_TYPE (fntype); if (TREE_CODE (fntype) == METHOD_TYPE) { + int nargs = call_expr_nargs (*expr_p); + bool side_effects = false; + for (int i = 1; i < nargs; ++i) + if (TREE_SIDE_EFFECTS (CALL_EXPR_ARG (*expr_p, i))) + { + side_effects = true; + break; + } enum gimplify_status t ! = cp_gimplify_arg (&CALL_EXPR_ARG (*expr_p, 0), pre_p, loc, ! side_effects); if (t == GS_ERROR) ret = GS_ERROR; } *************** cp_fold (tree x) *** 2537,2542 **** --- 2596,2627 ---- op0 = cp_fold_maybe_rvalue (TREE_OPERAND (x, 0), rval_ops); op1 = cp_fold_rvalue (TREE_OPERAND (x, 1)); + /* decltype(nullptr) has only one value, so optimize away all comparisons + with that type right away, keeping them in the IL causes troubles for + various optimizations. */ + if (COMPARISON_CLASS_P (org_x) + && TREE_CODE (TREE_TYPE (op0)) == NULLPTR_TYPE + && TREE_CODE (TREE_TYPE (op1)) == NULLPTR_TYPE) + { + switch (code) + { + case EQ_EXPR: + case LE_EXPR: + case GE_EXPR: + x = constant_boolean_node (true, TREE_TYPE (x)); + break; + case NE_EXPR: + case LT_EXPR: + case GT_EXPR: + x = constant_boolean_node (false, TREE_TYPE (x)); + break; + default: + gcc_unreachable (); + } + return omit_two_operands_loc (loc, TREE_TYPE (x), x, + op0, op1); + } + if (op0 != TREE_OPERAND (x, 0) || op1 != TREE_OPERAND (x, 1)) { if (op0 == error_mark_node || op1 == error_mark_node) diff -Nrcpad gcc-9.4.0/gcc/cp/cvt.c gcc-9.5.0/gcc/cp/cvt.c *** gcc-9.4.0/gcc/cp/cvt.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/cp/cvt.c Fri May 27 07:21:11 2022 *************** can_convert_qual (tree type, tree expr) *** 1960,1965 **** --- 1960,1970 ---- tree expr_type = TREE_TYPE (expr); gcc_assert (!same_type_p (type, expr_type)); + /* A function pointer conversion also counts as a Qualification Adjustment + under [over.ics.scs]. */ + if (fnptr_conv_p (type, expr_type)) + return true; + if (TYPE_PTR_P (type) && TYPE_PTR_P (expr_type)) return comp_ptr_ttypes (TREE_TYPE (type), TREE_TYPE (expr_type)); else if (TYPE_PTRMEM_P (type) && TYPE_PTRMEM_P (expr_type)) diff -Nrcpad gcc-9.4.0/gcc/cp/decl.c gcc-9.5.0/gcc/cp/decl.c *** gcc-9.4.0/gcc/cp/decl.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/cp/decl.c Fri May 27 07:21:11 2022 *************** start_decl (const cp_declarator *declara *** 5267,5273 **** && 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 % function", decl); --- 5267,5273 ---- && 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 % function", decl); *************** layout_var_decl (tree decl) *** 5616,5621 **** --- 5616,5653 ---- 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)); + } } } } *************** cp_finish_decl (tree decl, tree init, bo *** 6978,6987 **** if (asmspec_tree && asmspec_tree != error_mark_node) asmspec = TREE_STRING_POINTER (asmspec_tree); ! if (current_class_type ! && CP_DECL_CONTEXT (decl) == current_class_type ! && TYPE_BEING_DEFINED (current_class_type) ! && !CLASSTYPE_TEMPLATE_INSTANTIATION (current_class_type) && (DECL_INITIAL (decl) || init)) DECL_INITIALIZED_IN_CLASS_P (decl) = 1; --- 7010,7022 ---- if (asmspec_tree && asmspec_tree != error_mark_node) asmspec = TREE_STRING_POINTER (asmspec_tree); ! bool in_class_decl ! = (current_class_type ! && CP_DECL_CONTEXT (decl) == current_class_type ! && TYPE_BEING_DEFINED (current_class_type) ! && !CLASSTYPE_TEMPLATE_INSTANTIATION (current_class_type)); ! ! if (in_class_decl && (DECL_INITIAL (decl) || init)) DECL_INITIALIZED_IN_CLASS_P (decl) = 1; *************** cp_finish_decl (tree decl, tree init, bo *** 7313,7318 **** --- 7348,7360 ---- { layout_var_decl (decl); maybe_commonize_var (decl); + /* A class-scope constexpr variable with an out-of-class declaration. + C++17 makes them implicitly inline, but still force it out. */ + if (DECL_INLINE_VAR_P (decl) + && !DECL_VAR_DECLARED_INLINE_P (decl) + && !DECL_TEMPLATE_INSTANTIATION (decl) + && !in_class_decl) + mark_needed (decl); } /* This needs to happen after the linkage is set. */ *************** cp_finish_decl (tree decl, tree init, bo *** 7400,7406 **** { unsigned i; tree t; FOR_EACH_VEC_ELT (*cleanups, i, t) ! push_cleanup (decl, t, false); release_tree_vector (cleanups); } --- 7442,7448 ---- { unsigned i; tree t; FOR_EACH_VEC_ELT (*cleanups, i, t) ! push_cleanup (NULL_TREE, t, false); release_tree_vector (cleanups); } diff -Nrcpad gcc-9.4.0/gcc/cp/decl2.c gcc-9.5.0/gcc/cp/decl2.c *** gcc-9.4.0/gcc/cp/decl2.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/cp/decl2.c Fri May 27 07:21:11 2022 *************** mark_used (tree decl, tsubst_flags_t com *** 5403,5408 **** --- 5403,5409 ---- 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-9.4.0/gcc/cp/init.c gcc-9.5.0/gcc/cp/init.c *** gcc-9.4.0/gcc/cp/init.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/cp/init.c Fri May 27 07:21:11 2022 *************** get_nsdmi (tree member, bool in_ctor, ts *** 591,596 **** --- 591,597 ---- { push_to_top_level (); push_nested_class (ctx); + push_deferring_access_checks (dk_no_deferred); pushed = true; } *************** get_nsdmi (tree member, bool in_ctor, ts *** 620,625 **** --- 621,627 ---- if (pushed) { + pop_deferring_access_checks (); pop_nested_class (); pop_from_top_level (); } *************** perform_member_init (tree member, tree i *** 876,882 **** init = build2 (INIT_EXPR, type, decl, init); finish_expr_stmt (init); FOR_EACH_VEC_ELT (*cleanups, i, t) ! push_cleanup (decl, t, false); release_tree_vector (cleanups); } else if (type_build_ctor_call (type) --- 878,884 ---- init = build2 (INIT_EXPR, type, decl, init); finish_expr_stmt (init); FOR_EACH_VEC_ELT (*cleanups, i, t) ! push_cleanup (NULL_TREE, t, false); release_tree_vector (cleanups); } else if (type_build_ctor_call (type) diff -Nrcpad gcc-9.4.0/gcc/cp/lambda.c gcc-9.5.0/gcc/cp/lambda.c *** gcc-9.4.0/gcc/cp/lambda.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/cp/lambda.c Fri May 27 07:21:11 2022 *************** lambda_expr_this_capture (tree lambda, i *** 745,750 **** --- 745,751 ---- { 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 *** 763,768 **** --- 764,774 ---- 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 *** 772,778 **** /* 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; --- 778,784 ---- /* 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-9.4.0/gcc/cp/method.c gcc-9.5.0/gcc/cp/method.c *** gcc-9.4.0/gcc/cp/method.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/cp/method.c Fri May 27 07:21:11 2022 *************** constructible_expr (tree to, tree from) *** 1196,1201 **** --- 1196,1202 ---- static tree is_xible_helper (enum tree_code code, tree to, tree from, bool trivial) { + to = complete_type (to); if (VOID_TYPE_P (to) || ABSTRACT_CLASS_TYPE_P (to) || (from && FUNC_OR_METHOD_TYPE_P (from) && (TYPE_READONLY (from) || FUNCTION_REF_QUALIFIED (from)))) diff -Nrcpad gcc-9.4.0/gcc/cp/parser.c gcc-9.5.0/gcc/cp/parser.c *** gcc-9.4.0/gcc/cp/parser.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/cp/parser.c Fri May 27 07:21:11 2022 *************** cp_parser_postfix_expression (cp_parser *** 7077,7084 **** } /* Look for the closing `)'. */ parens.require_close (parser); ! return cp_build_vec_convert (expression, type_location, type, ! tf_warning_or_error); } default: --- 7077,7086 ---- } /* Look for the closing `)'. */ parens.require_close (parser); ! postfix_expression ! = cp_build_vec_convert (expression, type_location, type, ! tf_warning_or_error); ! break; } default: diff -Nrcpad gcc-9.4.0/gcc/cp/pt.c gcc-9.5.0/gcc/cp/pt.c *** gcc-9.4.0/gcc/cp/pt.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/cp/pt.c Fri May 27 07:21:11 2022 *************** get_underlying_template (tree tmpl) *** 6255,6260 **** --- 6255,6264 ---- != num_innermost_template_parms (underlying))) break; + /* Does the alias add cv-quals? */ + if (TYPE_QUALS (TREE_TYPE (underlying)) != TYPE_QUALS (TREE_TYPE (tmpl))) + break; + tree alias_args = INNERMOST_TEMPLATE_ARGS (template_parms_to_args (DECL_TEMPLATE_PARMS (tmpl))); if (!comp_template_args (TI_ARGS (tinfo), alias_args)) *************** enclosing_instantiation_of (tree otctx) *** 13522,13527 **** --- 13526,13544 ---- || instantiated_lambda_fn_p (tctx)); tctx = decl_function_context (tctx)) ++lambda_count; + + if (!tctx) + { + /* Match using DECL_SOURCE_LOCATION, which is unique for all lambdas. + + For GCC 11 the above condition limits this to the previously failing + case where all enclosing functions are lambdas (95870). FIXME. */ + for (tree ofn = fn; ofn; ofn = decl_function_context (ofn)) + if (DECL_SOURCE_LOCATION (ofn) == DECL_SOURCE_LOCATION (otctx)) + return ofn; + gcc_unreachable (); + } + for (; fn; fn = decl_function_context (fn)) { tree ofn = fn; *************** tsubst_decl (tree t, tree args, tsubst_f *** 14078,14083 **** --- 14095,14107 ---- { DECL_ORIGINAL_TYPE (r) = NULL_TREE; set_underlying_type (r); + + /* common_handle_aligned_attribute doesn't apply the alignment + to DECL_ORIGINAL_TYPE. */ + if (TYPE_USER_ALIGN (TREE_TYPE (t))) + TREE_TYPE (r) = build_aligned_type (TREE_TYPE (r), + TYPE_ALIGN (TREE_TYPE (t))); + if (TYPE_DECL_ALIAS_P (r)) /* An alias template specialization can be dependent even if its underlying type is not. */ *************** tsubst_baselink (tree baselink, tree obj *** 15409,15415 **** tree binfo_type = BINFO_TYPE (BASELINK_BINFO (baselink)); binfo_type = tsubst (binfo_type, args, complain, in_decl); ! bool dependent_p = binfo_type != BINFO_TYPE (BASELINK_BINFO (baselink)); if (dependent_p) { --- 15433,15440 ---- tree binfo_type = BINFO_TYPE (BASELINK_BINFO (baselink)); binfo_type = tsubst (binfo_type, args, complain, in_decl); ! bool dependent_p = (binfo_type != BINFO_TYPE (BASELINK_BINFO (baselink)) ! || optype != BASELINK_OPTYPE (baselink)); if (dependent_p) { *************** tsubst_baselink (tree baselink, tree obj *** 15435,15442 **** fns = BASELINK_FUNCTIONS (baselink); } else ! /* We're going to overwrite pieces below, make a duplicate. */ ! baselink = copy_node (baselink); /* If lookup found a single function, mark it as used at this point. (If lookup found multiple functions the one selected later by --- 15460,15478 ---- fns = BASELINK_FUNCTIONS (baselink); } else ! { ! /* We're going to overwrite pieces below, make a duplicate. */ ! baselink = copy_node (baselink); ! ! if (qualifying_scope != BINFO_TYPE (BASELINK_ACCESS_BINFO (baselink))) ! { ! /* The decl we found was from non-dependent scope, but we still need ! to update the binfos for the instantiated qualifying_scope. */ ! BASELINK_ACCESS_BINFO (baselink) = TYPE_BINFO (qualifying_scope); ! BASELINK_BINFO (baselink) = lookup_base (qualifying_scope, binfo_type, ! ba_unique, NULL, complain); ! } ! } /* If lookup found a single function, mark it as used at this point. (If lookup found multiple functions the one selected later by *************** tsubst_lambda_expr (tree t, tree args, t *** 18447,18454 **** the purposes of template argument deduction. */ complain = tf_warning_or_error; ! tsubst_expr (DECL_SAVED_TREE (oldfn), args, complain, r, ! /*constexpr*/false); finish_lambda_function (body); --- 18483,18495 ---- the purposes of template argument deduction. */ complain = tf_warning_or_error; ! tree saved = DECL_SAVED_TREE (oldfn); ! if (TREE_CODE (saved) == BIND_EXPR && BIND_EXPR_BODY_BLOCK (saved)) ! /* We already have a body block from start_lambda_function, we don't ! need another to confuse NRV (91217). */ ! saved = BIND_EXPR_BODY (saved); ! ! tsubst_expr (saved, args, complain, r, /*constexpr*/false); finish_lambda_function (body); *************** static bool uses_deducible_template_parm *** 20824,20831 **** static bool deducible_expression (tree expr) { ! /* Strip implicit conversions. */ ! while (CONVERT_EXPR_P (expr) || TREE_CODE (expr) == VIEW_CONVERT_EXPR) expr = TREE_OPERAND (expr, 0); return (TREE_CODE (expr) == TEMPLATE_PARM_INDEX); } --- 20865,20874 ---- static bool deducible_expression (tree expr) { ! /* Strip implicit conversions and implicit INDIRECT_REFs. */ ! while (CONVERT_EXPR_P (expr) ! || TREE_CODE (expr) == VIEW_CONVERT_EXPR ! || REFERENCE_REF_P (expr)) expr = TREE_OPERAND (expr, 0); return (TREE_CODE (expr) == TEMPLATE_PARM_INDEX); } *************** mark_decl_instantiated (tree result, int *** 23139,23145 **** DECL_COMDAT (result) = 0; if (extern_p) ! DECL_NOT_REALLY_EXTERN (result) = 0; else { mark_definable (result); --- 23182,23191 ---- DECL_COMDAT (result) = 0; if (extern_p) ! { ! DECL_EXTERNAL (result) = 1; ! DECL_NOT_REALLY_EXTERN (result) = 0; ! } else { mark_definable (result); diff -Nrcpad gcc-9.4.0/gcc/cp/search.c gcc-9.5.0/gcc/cp/search.c *** gcc-9.4.0/gcc/cp/search.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/cp/search.c Fri May 27 07:21:11 2022 *************** lookup_field_fuzzy_info::fuzzy_lookup_fi *** 1249,1254 **** --- 1249,1261 ---- if (is_lambda_ignored_entity (field)) continue; + /* Ignore special identifiers with space at the end like cdtor or + conversion op identifiers. */ + if (TREE_CODE (DECL_NAME (field)) == IDENTIFIER_NODE) + if (unsigned int len = IDENTIFIER_LENGTH (DECL_NAME (field))) + if (IDENTIFIER_POINTER (DECL_NAME (field))[len - 1] == ' ') + continue; + m_candidates.safe_push (DECL_NAME (field)); } } diff -Nrcpad gcc-9.4.0/gcc/cp/semantics.c gcc-9.5.0/gcc/cp/semantics.c *** gcc-9.4.0/gcc/cp/semantics.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/cp/semantics.c Fri May 27 07:21:11 2022 *************** do_pushlevel (scope_kind sk) *** 476,482 **** /* Queue a cleanup. CLEANUP is an expression/statement to be executed when the current scope is exited. EH_ONLY is true when this is not ! meant to apply to normal control flow transfer. */ void push_cleanup (tree decl, tree cleanup, bool eh_only) --- 476,483 ---- /* Queue a cleanup. CLEANUP is an expression/statement to be executed when the current scope is exited. EH_ONLY is true when this is not ! meant to apply to normal control flow transfer. DECL is the VAR_DECL ! being cleaned up, if any, or null for temporaries or subobjects. */ void push_cleanup (tree decl, tree cleanup, bool eh_only) *************** finish_omp_reduction_clause (tree c, boo *** 5682,5688 **** if (!processing_template_decl) { t = require_complete_type (t); ! if (t == error_mark_node) return true; tree size = size_binop (EXACT_DIV_EXPR, TYPE_SIZE_UNIT (oatype), TYPE_SIZE_UNIT (type)); --- 5683,5690 ---- if (!processing_template_decl) { t = require_complete_type (t); ! if (t == error_mark_node ! || !complete_type_or_else (oatype, NULL_TREE)) return true; tree size = size_binop (EXACT_DIV_EXPR, TYPE_SIZE_UNIT (oatype), TYPE_SIZE_UNIT (type)); *************** finish_omp_reduction_clause (tree c, boo *** 5712,5717 **** --- 5714,5721 ---- case PLUS_EXPR: case MULT_EXPR: case MINUS_EXPR: + case TRUTH_ANDIF_EXPR: + case TRUTH_ORIF_EXPR: predefined = true; break; case MIN_EXPR: *************** finish_omp_reduction_clause (tree c, boo *** 5727,5738 **** break; predefined = true; break; - case TRUTH_ANDIF_EXPR: - case TRUTH_ORIF_EXPR: - if (FLOAT_TYPE_P (type)) - break; - predefined = true; - break; default: break; } --- 5731,5736 ---- diff -Nrcpad gcc-9.4.0/gcc/cp/tree.c gcc-9.5.0/gcc/cp/tree.c *** gcc-9.4.0/gcc/cp/tree.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/cp/tree.c Fri May 27 07:21:11 2022 *************** apply_identity_attributes (tree result, *** 1408,1416 **** p = &TREE_CHAIN (*p); } } ! else if (first_ident) { ! for (tree a2 = first_ident; a2; a2 = TREE_CHAIN (a2)) { *p = tree_cons (TREE_PURPOSE (a2), TREE_VALUE (a2), NULL_TREE); p = &TREE_CHAIN (*p); --- 1408,1416 ---- p = &TREE_CHAIN (*p); } } ! else if (first_ident && first_ident != error_mark_node) { ! for (tree a2 = first_ident; a2 != a; a2 = TREE_CHAIN (a2)) { *p = tree_cons (TREE_PURPOSE (a2), TREE_VALUE (a2), NULL_TREE); p = &TREE_CHAIN (*p); diff -Nrcpad gcc-9.4.0/gcc/cp/typeck.c gcc-9.5.0/gcc/cp/typeck.c *** gcc-9.4.0/gcc/cp/typeck.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/cp/typeck.c Fri May 27 07:21:11 2022 *************** cp_build_binary_op (const op_location_t *** 4838,4843 **** --- 4838,4844 ---- doing_shift = true; if (TREE_CODE (const_op0) == INTEGER_CST && tree_int_cst_sgn (const_op0) < 0 + && !TYPE_OVERFLOW_WRAPS (type0) && (complain & tf_warning) && c_inhibit_evaluation_warnings == 0) warning (OPT_Wshift_negative_value, *************** cxx_mark_addressable (tree exp, bool arr *** 6665,6673 **** && TREE_CODE (TREE_TYPE (x)) == ARRAY_TYPE && VECTOR_TYPE_P (TREE_TYPE (TREE_OPERAND (x, 0)))) return true; /* FALLTHRU */ case ADDR_EXPR: - case COMPONENT_REF: case ARRAY_REF: case REALPART_EXPR: case IMAGPART_EXPR: --- 6666,6679 ---- && TREE_CODE (TREE_TYPE (x)) == ARRAY_TYPE && VECTOR_TYPE_P (TREE_TYPE (TREE_OPERAND (x, 0)))) return true; + x = TREE_OPERAND (x, 0); + break; + + case COMPONENT_REF: + if (bitfield_p (x)) + error ("attempt to take address of bit-field"); /* FALLTHRU */ case ADDR_EXPR: case ARRAY_REF: case REALPART_EXPR: case IMAGPART_EXPR: *************** check_return_expr (tree retval, bool *no *** 9714,9719 **** --- 9720,9728 ---- dependent: /* We should not have changed the return value. */ gcc_assert (retval == saved_retval); + /* We don't know if this is an lvalue or rvalue use, but + either way we can mark it as read. */ + mark_exp_read (retval); return retval; } diff -Nrcpad gcc-9.4.0/gcc/cp/typeck2.c gcc-9.5.0/gcc/cp/typeck2.c *** gcc-9.4.0/gcc/cp/typeck2.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/cp/typeck2.c Fri May 27 07:21:11 2022 *************** split_nonconstant_init_1 (tree dest, tre *** 654,660 **** sub = build3 (COMPONENT_REF, inner_type, dest, field_index, NULL_TREE); ! if (!split_nonconstant_init_1 (sub, value)) complete_p = false; else CONSTRUCTOR_ELTS (init)->ordered_remove (idx--); --- 654,673 ---- sub = build3 (COMPONENT_REF, inner_type, dest, field_index, NULL_TREE); ! if (!split_nonconstant_init_1 (sub, value) ! /* For flexible array member with initializer we ! can't remove the initializer, because only the ! initializer determines how many elements the ! flexible array member has. */ ! || (!array_type_p ! && TREE_CODE (inner_type) == ARRAY_TYPE ! && TYPE_DOMAIN (inner_type) == NULL ! && TREE_CODE (TREE_TYPE (value)) == ARRAY_TYPE ! && COMPLETE_TYPE_P (TREE_TYPE (value)) ! && !integer_zerop (TYPE_SIZE (TREE_TYPE (value))) ! && idx == CONSTRUCTOR_NELTS (init) - 1 ! && TYPE_HAS_TRIVIAL_DESTRUCTOR ! (strip_array_types (inner_type)))) complete_p = false; else CONSTRUCTOR_ELTS (init)->ordered_remove (idx--); *************** massage_init_elt (tree type, tree init, *** 1345,1353 **** flags &= LOOKUP_ALLOW_FLEXARRAY_INIT; flags |= LOOKUP_IMPLICIT; init = digest_init_r (type, init, nested ? 2 : 1, flags, complain); - /* Strip a simple TARGET_EXPR when we know this is an initializer. */ - if (SIMPLE_TARGET_EXPR_P (init)) - init = TARGET_EXPR_INITIAL (init); /* When we defer constant folding within a statement, we may want to defer this folding as well. */ tree t = fold_non_dependent_init (init, complain); --- 1358,1363 ---- *************** process_init_constructor_array (tree typ *** 1425,1430 **** --- 1435,1448 ---- strip_array_types (TREE_TYPE (ce->value))))); picflags |= picflag_from_initializer (ce->value); + /* Propagate CONSTRUCTOR_PLACEHOLDER_BOUNDARY to outer + CONSTRUCTOR. */ + if (TREE_CODE (ce->value) == CONSTRUCTOR + && CONSTRUCTOR_PLACEHOLDER_BOUNDARY (ce->value)) + { + CONSTRUCTOR_PLACEHOLDER_BOUNDARY (init) = 1; + CONSTRUCTOR_PLACEHOLDER_BOUNDARY (ce->value) = 0; + } } /* No more initializers. If the array is unbounded, we are done. Otherwise, *************** process_init_constructor_array (tree typ *** 1459,1464 **** --- 1477,1490 ---- if (next) { picflags |= picflag_from_initializer (next); + /* Propagate CONSTRUCTOR_PLACEHOLDER_BOUNDARY to outer + CONSTRUCTOR. */ + if (TREE_CODE (next) == CONSTRUCTOR + && CONSTRUCTOR_PLACEHOLDER_BOUNDARY (next)) + { + CONSTRUCTOR_PLACEHOLDER_BOUNDARY (init) = 1; + CONSTRUCTOR_PLACEHOLDER_BOUNDARY (next) = 0; + } if (len > i+1 && (initializer_constant_valid_p (next, TREE_TYPE (next)) == null_pointer_node)) *************** process_init_constructor_record (tree ty *** 1665,1670 **** --- 1691,1703 ---- if (type != TREE_TYPE (field)) next = cp_convert_and_check (TREE_TYPE (field), next, complain); picflags |= picflag_from_initializer (next); + /* Propagate CONSTRUCTOR_PLACEHOLDER_BOUNDARY to outer CONSTRUCTOR. */ + if (TREE_CODE (next) == CONSTRUCTOR + && CONSTRUCTOR_PLACEHOLDER_BOUNDARY (next)) + { + CONSTRUCTOR_PLACEHOLDER_BOUNDARY (init) = 1; + CONSTRUCTOR_PLACEHOLDER_BOUNDARY (next) = 0; + } CONSTRUCTOR_APPEND_ELT (v, field, next); } *************** process_init_constructor_union (tree typ *** 1818,1823 **** --- 1851,1864 ---- ce->value = massage_init_elt (TREE_TYPE (ce->index), ce->value, nested, flags, complain); + /* Propagate CONSTRUCTOR_PLACEHOLDER_BOUNDARY to outer CONSTRUCTOR. */ + if (ce->value + && TREE_CODE (ce->value) == CONSTRUCTOR + && CONSTRUCTOR_PLACEHOLDER_BOUNDARY (ce->value)) + { + CONSTRUCTOR_PLACEHOLDER_BOUNDARY (init) = 1; + CONSTRUCTOR_PLACEHOLDER_BOUNDARY (ce->value) = 0; + } return picflag_from_initializer (ce->value); } diff -Nrcpad gcc-9.4.0/gcc/d/ChangeLog gcc-9.5.0/gcc/d/ChangeLog *** gcc-9.4.0/gcc/d/ChangeLog Tue Jun 1 07:53:23 2021 --- gcc-9.5.0/gcc/d/ChangeLog Fri May 27 07:21:30 2022 *************** *** 1,3 **** --- 1,148 ---- + 2022-05-27 Release Manager + + * GCC 9.5.0 released. + + 2021-12-10 Iain Buclaw + + Backported from master: + 2021-12-10 Iain Buclaw + + * decl.cc (get_symbol_decl): Align methods to MINIMUM_METHOD_BOUNDARY. + + 2021-11-18 Iain Buclaw + + Backported from master: + 2021-11-18 Iain Buclaw + + * decl.cc (d_finish_decl): Use HOST_WIDE_INT for type size + temporaries. + + 2021-10-04 Iain Buclaw + + Backported from master: + 2021-10-04 Iain Buclaw + + PR d/102574 + * d-spec.cc (lang_specific_driver): Link libstdc++ statically if + -static-libstdc++ was given on command-line. + + 2021-07-29 Iain Buclaw + + Backported from master: + 2021-07-29 Iain Buclaw + + PR d/96435 + * d-convert.cc (convert_for_rvalue): New function. + * d-tree.h (convert_for_rvalue): Declare. + * expr.cc (ExprVisitor::visit (CastExp *)): Use convert_for_rvalue. + (build_return_dtor): Likewise. + + 2021-07-28 Iain Buclaw + + Backported from master: + 2021-07-28 Iain Buclaw + + PR d/101640 + * expr.cc (binary_op): Use build2 instead of fold_build2. + + 2021-07-28 Iain Buclaw + + Backported from master: + 2021-07-28 Iain Buclaw + + PR d/101490 + * d-codegen.cc (build_array_index): Handle void arrays same as byte. + * d-convert.cc (convert_expr): Handle converting to zero-sized arrays. + * dmd/dcast.c (castTo): Handle casting to zero-sized arrays. + + 2021-07-28 Iain Buclaw + + Backported from master: + 2021-07-28 Iain Buclaw + + PR d/101441 + * dmd/expression.c (FuncInitExp::resolveLoc): Set type as `string'. + (PrettyFuncInitExp::resolveLoc): Likewise. + + 2021-07-28 Iain Buclaw + + Backported from master: + 2021-07-28 Iain Buclaw + + PR d/101127 + * d-builtins.cc (d_builtin_function_ext_scope): New function. + * d-lang.cc (LANG_HOOKS_BUILTIN_FUNCTION_EXT_SCOPE): Define. + * d-tree.h (d_builtin_function_ext_scope): Declare. + + 2021-06-10 Iain Buclaw + + Backported from master: + 2021-06-10 Iain Buclaw + + PR d/100967 + * d-frontend.cc (getTypeInfoType): Move TypeInfo checks to + check_typeinfo_type and call new function. + * d-tree.h (check_typeinfo_type): Declare. + * typeinfo.cc: Include dmd/scope.h. + (create_frontend_tinfo_types): Generate front-end types even if Object + is missing. + (build_typeinfo): Move TypeInfo checks to check_typeinfo_type and call + new function. + (check_typeinfo_type): New function. + + 2021-06-10 Iain Buclaw + + Backported from master: + 2019-06-16 Iain Buclaw + + PR d/90651 + * dmd/expressionsem.c (ExpressionSemanticVisitor::visit (TypeidExp)): + Error when TypeInfo doesn't exist. + * dmd/func.c (FuncDeclaration::semantic3): Likewise. + * dmd/mtype.c (TypeClass::dotExp): Likewise. + * typeinfo.cc (object_module): New variable. + (make_frontend_typeinfo): Update signature. Set temporary on + generated TypeInfo classes. + (create_tinfo_types): Set object_module. Move generation of front-end + typeinfo into ... + (create_frontend_tinfo_types): ... New function. + (layout_typeinfo): Call create_frontend_tinfo_types. + (layout_classinfo): Likewise. + (layout_cpp_typeinfo): Likewise. + (create_typeinfo): Likewise. + + 2021-06-09 Iain Buclaw + + Backported from master: + 2021-06-09 Iain Buclaw + + PR d/100964 + * dmd/expression.c (Expression::checkPostblit): Don't generate + TypeInfo when RTTI is disabled. + + 2021-06-09 Iain Buclaw + + Backported from master: + 2021-06-09 Iain Buclaw + + PR d/100935 + * dmd/mtype.c (Type::getProperty): Prefer explicit alignment over + natural alignment for alignof property. + + 2021-06-04 Iain Buclaw + + Backported from master: + 2021-06-04 Iain Buclaw + + PR d/100882 + * d-codegen.cc (build_assign): Construct initializations inside + TARGET_EXPR_INITIAL. + (compound_expr): Remove intermediate expressions that have no + side-effects. + (return_expr): Construct returns inside TARGET_EXPR_INITIAL. + * expr.cc (ExprVisitor::visit (CallExp *)): Remove useless assignment + to TARGET_EXPR_SLOT. + 2021-06-01 Release Manager * GCC 9.4.0 released. diff -Nrcpad gcc-9.4.0/gcc/d/d-builtins.cc gcc-9.5.0/gcc/d/d-builtins.cc *** gcc-9.4.0/gcc/d/d-builtins.cc Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/d/d-builtins.cc Fri May 27 07:21:11 2022 *************** d_builtin_function (tree decl) *** 1175,1179 **** --- 1175,1194 ---- return decl; } + /* Same as d_builtin_function, but used to delay putting in back-end builtin + functions until the ISA that defines the builtin has been declared. + However in D, there is no global namespace. All builtins get pushed into the + `gcc.builtins' module, which is constructed during the semantic analysis + pass, which has already finished by the time target attributes are evaluated. + So builtins are not pushed because they would be ultimately ignored. + The purpose of having this function then is to improve compile-time + reflection support to allow user-code to determine whether a given back end + function is enabled by the ISA. */ + + tree + d_builtin_function_ext_scope (tree decl) + { + return decl; + } #include "gt-d-d-builtins.h" diff -Nrcpad gcc-9.4.0/gcc/d/d-codegen.cc gcc-9.5.0/gcc/d/d-codegen.cc *** gcc-9.4.0/gcc/d/d-codegen.cc Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/d/d-codegen.cc Fri May 27 07:21:11 2022 *************** component_ref (tree object, tree field) *** 1304,1309 **** --- 1304,1310 ---- tree build_assign (tree_code code, tree lhs, tree rhs) { + tree result; tree init = stabilize_expr (&lhs); init = compound_expr (init, stabilize_expr (&rhs)); *************** build_assign (tree_code code, tree lhs, *** 1322,1340 **** if (TREE_CODE (rhs) == TARGET_EXPR) { /* If CODE is not INIT_EXPR, can't initialize LHS directly, ! since that would cause the LHS to be constructed twice. ! So we force the TARGET_EXPR to be expanded without a target. */ if (code != INIT_EXPR) ! rhs = compound_expr (rhs, TARGET_EXPR_SLOT (rhs)); else { d_mark_addressable (lhs); ! rhs = TARGET_EXPR_INITIAL (rhs); } } - tree result = fold_build2_loc (input_location, code, - TREE_TYPE (lhs), lhs, rhs); return compound_expr (init, result); } --- 1323,1349 ---- if (TREE_CODE (rhs) == TARGET_EXPR) { /* If CODE is not INIT_EXPR, can't initialize LHS directly, ! since that would cause the LHS to be constructed twice. */ if (code != INIT_EXPR) ! { ! init = compound_expr (init, rhs); ! result = build_assign (code, lhs, TARGET_EXPR_SLOT (rhs)); ! } else { d_mark_addressable (lhs); ! TARGET_EXPR_INITIAL (rhs) = build_assign (code, lhs, ! TARGET_EXPR_INITIAL (rhs)); ! result = rhs; } } + else + { + /* Simple assignment. */ + result = fold_build2_loc (input_location, code, + TREE_TYPE (lhs), lhs, rhs); + } return compound_expr (init, result); } *************** compound_expr (tree arg0, tree arg1) *** 1456,1461 **** --- 1465,1475 ---- if (arg0 == NULL_TREE || !TREE_SIDE_EFFECTS (arg0)) return arg1; + /* Remove intermediate expressions that have no side-effects. */ + while (TREE_CODE (arg0) == COMPOUND_EXPR + && !TREE_SIDE_EFFECTS (TREE_OPERAND (arg0, 1))) + arg0 = TREE_OPERAND (arg0, 0); + if (TREE_CODE (arg1) == TARGET_EXPR) { /* If the rhs is a TARGET_EXPR, then build the compound expression *************** compound_expr (tree arg0, tree arg1) *** 1476,1481 **** --- 1490,1508 ---- tree return_expr (tree ret) { + /* Same as build_assign, the DECL_RESULT assignment replaces the temporary + in TARGET_EXPR_SLOT. */ + if (ret != NULL_TREE && TREE_CODE (ret) == TARGET_EXPR) + { + tree exp = TARGET_EXPR_INITIAL (ret); + tree init = stabilize_expr (&exp); + + exp = fold_build1_loc (input_location, RETURN_EXPR, void_type_node, exp); + TARGET_EXPR_INITIAL (ret) = compound_expr (init, exp); + + return ret; + } + return fold_build1_loc (input_location, RETURN_EXPR, void_type_node, ret); } *************** build_array_index (tree ptr, tree index) *** 1579,1599 **** /* Array element size. */ tree size_exp = size_in_bytes (target_type); ! if (integer_zerop (size_exp)) ! { ! /* Test for array of void. */ ! if (TYPE_MODE (target_type) == TYPE_MODE (void_type_node)) ! index = fold_convert (type, index); ! else ! { ! /* Should catch this earlier. */ ! error ("invalid use of incomplete type %qD", TYPE_NAME (target_type)); ! ptr_type = error_mark_node; ! } ! } ! else if (integer_onep (size_exp)) { ! /* Array of bytes -- No need to multiply. */ index = fold_convert (type, index); } else --- 1606,1614 ---- /* Array element size. */ tree size_exp = size_in_bytes (target_type); ! if (integer_zerop (size_exp) || integer_onep (size_exp)) { ! /* Array of void or bytes -- No need to multiply. */ index = fold_convert (type, index); } else diff -Nrcpad gcc-9.4.0/gcc/d/d-convert.cc gcc-9.5.0/gcc/d/d-convert.cc *** gcc-9.4.0/gcc/d/d-convert.cc Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/d/d-convert.cc Fri May 27 07:21:11 2022 *************** convert_expr (tree exp, Type *etype, Typ *** 473,485 **** tree ptrtype = build_ctype (tbtype->nextOf ()->pointerTo ()); ! if ((dim * esize) % tsize != 0) { ! error ("cannot cast %qs to %qs since sizes don't line up", ! etype->toChars (), totype->toChars ()); ! return error_mark_node; } - dim = (dim * esize) / tsize; /* Assumes casting to dynamic array of same type or void. */ return d_array_value (build_ctype (totype), size_int (dim), --- 473,490 ---- tree ptrtype = build_ctype (tbtype->nextOf ()->pointerTo ()); ! if (esize != tsize) { ! /* Array element sizes do not match, so we must adjust the ! dimensions. */ ! if (tsize == 0 || (dim * esize) % tsize != 0) ! { ! error ("cannot cast %qs to %qs since sizes don't line up", ! etype->toChars (), totype->toChars ()); ! return error_mark_node; ! } ! dim = (dim * esize) / tsize; } /* Assumes casting to dynamic array of same type or void. */ return d_array_value (build_ctype (totype), size_int (dim), *************** convert_expr (tree exp, Type *etype, Typ *** 596,601 **** --- 601,642 ---- return result ? result : convert (build_ctype (totype), exp); } + /* Return a TREE represenwation of EXPR, whose type has been converted from + * ETYPE to TOTYPE, and is being used in an rvalue context. */ + + tree + convert_for_rvalue (tree expr, Type *etype, Type *totype) + { + tree result = NULL_TREE; + + Type *ebtype = etype->toBasetype (); + Type *tbtype = totype->toBasetype (); + + switch (ebtype->ty) + { + case Tbool: + /* If casting from bool, the result is either 0 or 1, any other value + violates @safe code, so enforce that it is never invalid. */ + if (CONSTANT_CLASS_P (expr)) + result = d_truthvalue_conversion (expr); + else + { + /* Reinterpret the boolean as an integer and test the first bit. + The generated code should end up being equivalent to: + *cast(ubyte *)&expr & 1; */ + machine_mode bool_mode = TYPE_MODE (TREE_TYPE (expr)); + tree mtype = lang_hooks.types.type_for_mode (bool_mode, 1); + result = fold_build2 (BIT_AND_EXPR, mtype, + build_vconvert (mtype, expr), + build_one_cst (mtype)); + } + + result = convert (build_ctype (tbtype), result); + break; + } + + return result ? result : convert_expr (expr, etype, totype); + } /* Apply semantics of assignment to a value of type TOTYPE to EXPR (e.g., pointer = array -> pointer = &array[0]) diff -Nrcpad gcc-9.4.0/gcc/d/d-frontend.cc gcc-9.5.0/gcc/d/d-frontend.cc *** gcc-9.4.0/gcc/d/d-frontend.cc Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/d/d-frontend.cc Fri May 27 07:21:11 2022 *************** eval_builtin (Loc loc, FuncDeclaration * *** 614,652 **** Type * getTypeInfoType (Loc loc, Type *type, Scope *sc) { - if (!global.params.useTypeInfo) - { - /* Even when compiling without RTTI we should still be able to evaluate - TypeInfo at compile-time, just not at run-time. */ - if (!sc || !(sc->flags & SCOPEctfe)) - { - static int warned = 0; - - if (!warned) - { - error_at (make_location_t (loc), - "% cannot be used with -fno-rtti"); - warned = 1; - } - } - } - - if (Type::dtypeinfo == NULL - || (Type::dtypeinfo->storage_class & STCtemp)) - { - /* If TypeInfo has not been declared, warn about each location once. */ - static Loc warnloc; - - if (!loc.equals (warnloc)) - { - error_at (make_location_t (loc), - "% could not be found, " - "but is implicitly used"); - warnloc = loc; - } - } - gcc_assert (type->ty != Terror); create_typeinfo (type, sc ? sc->_module->importedFrom : NULL); return type->vtinfo->type; } --- 614,621 ---- Type * getTypeInfoType (Loc loc, Type *type, Scope *sc) { gcc_assert (type->ty != Terror); + check_typeinfo_type (loc, sc); create_typeinfo (type, sc ? sc->_module->importedFrom : NULL); return type->vtinfo->type; } diff -Nrcpad gcc-9.4.0/gcc/d/d-lang.cc gcc-9.5.0/gcc/d/d-lang.cc *** gcc-9.4.0/gcc/d/d-lang.cc Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/d/d-lang.cc Fri May 27 07:21:11 2022 *************** d_build_eh_runtime_type (tree type) *** 1783,1788 **** --- 1783,1789 ---- #undef LANG_HOOKS_GET_ALIAS_SET #undef LANG_HOOKS_TYPES_COMPATIBLE_P #undef LANG_HOOKS_BUILTIN_FUNCTION + #undef LANG_HOOKS_BUILTIN_FUNCTION_EXT_SCOPE #undef LANG_HOOKS_REGISTER_BUILTIN_TYPE #undef LANG_HOOKS_FINISH_INCOMPLETE_DECL #undef LANG_HOOKS_GIMPLIFY_EXPR *************** d_build_eh_runtime_type (tree type) *** 1813,1818 **** --- 1814,1820 ---- #define LANG_HOOKS_GET_ALIAS_SET d_get_alias_set #define LANG_HOOKS_TYPES_COMPATIBLE_P d_types_compatible_p #define LANG_HOOKS_BUILTIN_FUNCTION d_builtin_function + #define LANG_HOOKS_BUILTIN_FUNCTION_EXT_SCOPE d_builtin_function_ext_scope #define LANG_HOOKS_REGISTER_BUILTIN_TYPE d_register_builtin_type #define LANG_HOOKS_FINISH_INCOMPLETE_DECL d_finish_incomplete_decl #define LANG_HOOKS_GIMPLIFY_EXPR d_gimplify_expr diff -Nrcpad gcc-9.4.0/gcc/d/d-spec.cc gcc-9.5.0/gcc/d/d-spec.cc *** gcc-9.4.0/gcc/d/d-spec.cc Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/d/d-spec.cc Fri May 27 07:21:11 2022 *************** lang_specific_driver (cl_decoded_option *** 94,99 **** --- 94,102 ---- /* "-lstdc++" if it appears on the command line. */ const cl_decoded_option *saw_libcxx = 0; + /* True if we saw `-static-libstdc++'. */ + bool saw_static_libcxx = false; + /* Whether we need the C++ STD library. */ bool need_stdcxx = false; *************** lang_specific_driver (cl_decoded_option *** 259,264 **** --- 262,272 ---- shared_libgcc = false; break; + case OPT_static_libstdc__: + saw_static_libcxx = true; + args[i] |= SKIPOPT; + break; + case OPT_static_libphobos: if (phobos_library != PHOBOS_NOLINK) phobos_library = PHOBOS_STATIC; *************** lang_specific_driver (cl_decoded_option *** 476,491 **** added_libraries++; } ! if (saw_libcxx) ! new_decoded_options[j++] = *saw_libcxx; ! else if (need_stdcxx) { ! generate_option (OPT_l, ! (saw_profile_flag ! ? LIBSTDCXX_PROFILE ! : LIBSTDCXX), ! 1, CL_DRIVER, &new_decoded_options[j++]); ! added_libraries++; } if (shared_libgcc && !static_link) --- 484,516 ---- added_libraries++; } ! if (saw_libcxx || need_stdcxx) { ! #ifdef HAVE_LD_STATIC_DYNAMIC ! if (saw_static_libcxx && !static_link) ! { ! generate_option (OPT_Wl_, LD_STATIC_OPTION, 1, CL_DRIVER, ! &new_decoded_options[j++]); ! } ! #endif ! if (saw_libcxx) ! new_decoded_options[j++] = *saw_libcxx; ! else if (need_stdcxx) ! { ! generate_option (OPT_l, ! (saw_profile_flag ! ? LIBSTDCXX_PROFILE ! : LIBSTDCXX), ! 1, CL_DRIVER, &new_decoded_options[j++]); ! added_libraries++; ! } ! #ifdef HAVE_LD_STATIC_DYNAMIC ! if (saw_static_libcxx && !static_link) ! { ! generate_option (OPT_Wl_, LD_DYNAMIC_OPTION, 1, CL_DRIVER, ! &new_decoded_options[j++]); ! } ! #endif } if (shared_libgcc && !static_link) diff -Nrcpad gcc-9.4.0/gcc/d/d-tree.h gcc-9.5.0/gcc/d/d-tree.h *** gcc-9.4.0/gcc/d/d-tree.h Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/d/d-tree.h Fri May 27 07:21:11 2022 *************** extern const attribute_spec d_langhook_a *** 488,493 **** --- 488,494 ---- extern const attribute_spec d_langhook_common_attribute_table[]; extern tree d_builtin_function (tree); + extern tree d_builtin_function_ext_scope (tree); extern void d_init_builtins (void); extern void d_register_builtin_type (tree, const char *); extern void d_build_builtins_module (Module *); *************** extern bool decl_with_nonnull_addr_p (co *** 577,582 **** --- 578,584 ---- extern tree d_truthvalue_conversion (tree); extern tree d_convert (tree, tree); extern tree convert_expr (tree, Type *, Type *); + extern tree convert_for_rvalue (tree, Type *, Type *); extern tree convert_for_assignment (tree, Type *, Type *); extern tree convert_for_argument (tree, Parameter *); extern tree convert_for_condition (tree, Type *); *************** extern tree layout_typeinfo (TypeInfoDec *** 650,655 **** --- 652,658 ---- extern tree layout_classinfo (ClassDeclaration *); extern tree get_typeinfo_decl (TypeInfoDeclaration *); extern tree get_classinfo_decl (ClassDeclaration *); + extern void check_typeinfo_type (const Loc &, Scope *); extern tree build_typeinfo (const Loc &, Type *); extern void create_typeinfo (Type *, Module *); extern void create_tinfo_types (Module *); diff -Nrcpad gcc-9.4.0/gcc/d/decl.cc gcc-9.5.0/gcc/d/decl.cc *** gcc-9.4.0/gcc/d/decl.cc Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/d/decl.cc Fri May 27 07:21:11 2022 *************** get_symbol_decl (Declaration *decl) *** 1233,1238 **** --- 1233,1241 ---- DECL_VINDEX (decl->csym) = size_int (fd->vtblIndex); DECL_VIRTUAL_P (decl->csym) = 1; } + + /* Align method to the minimum boundary for target. */ + SET_DECL_ALIGN (decl->csym, MINIMUM_METHOD_BOUNDARY); } else if (fd->isMain () || fd->isCMain ()) { *************** d_finish_decl (tree decl) *** 1559,1566 **** if (flag_checking && DECL_INITIAL (decl)) { /* Initializer must never be bigger than symbol size. */ ! dinteger_t tsize = int_size_in_bytes (TREE_TYPE (decl)); ! dinteger_t dtsize = int_size_in_bytes (TREE_TYPE (DECL_INITIAL (decl))); if (tsize < dtsize) { --- 1562,1570 ---- if (flag_checking && DECL_INITIAL (decl)) { /* Initializer must never be bigger than symbol size. */ ! HOST_WIDE_INT tsize = int_size_in_bytes (TREE_TYPE (decl)); ! HOST_WIDE_INT dtsize = ! int_size_in_bytes (TREE_TYPE (DECL_INITIAL (decl))); if (tsize < dtsize) { diff -Nrcpad gcc-9.4.0/gcc/d/dmd/dcast.c gcc-9.5.0/gcc/d/dmd/dcast.c *** gcc-9.4.0/gcc/d/dmd/dcast.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/d/dmd/dcast.c Fri May 27 07:21:11 2022 *************** Expression *castTo(Expression *e, Scope *** 1494,1506 **** // cast(U[])sa; // ==> cast(U[])sa[]; d_uns64 fsize = t1b->nextOf()->size(); d_uns64 tsize = tob->nextOf()->size(); ! if ((((TypeSArray *)t1b)->dim->toInteger() * fsize) % tsize != 0) { ! // copied from sarray_toDarray() in e2ir.c ! e->error("cannot cast expression %s of type %s to %s since sizes don't line up", ! e->toChars(), e->type->toChars(), t->toChars()); ! result = new ErrorExp(); ! return; } goto Lok; } --- 1494,1509 ---- // cast(U[])sa; // ==> cast(U[])sa[]; d_uns64 fsize = t1b->nextOf()->size(); d_uns64 tsize = tob->nextOf()->size(); ! if (fsize != tsize) { ! dinteger_t dim = ((TypeSArray *)t1b)->dim->toInteger(); ! if (tsize == 0 || (dim * fsize) % tsize != 0) ! { ! e->error("cannot cast expression `%s` of type `%s` to `%s` since sizes don't line up", ! e->toChars(), e->type->toChars(), t->toChars()); ! result = new ErrorExp(); ! return; ! } } goto Lok; } diff -Nrcpad gcc-9.4.0/gcc/d/dmd/expression.c gcc-9.5.0/gcc/d/dmd/expression.c *** gcc-9.4.0/gcc/d/dmd/expression.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/d/dmd/expression.c Fri May 27 07:21:11 2022 *************** bool Expression::checkPostblit(Scope *sc *** 2647,2654 **** t = t->baseElemOf(); if (t->ty == Tstruct) { ! // Bugzilla 11395: Require TypeInfo generation for array concatenation ! semanticTypeInfo(sc, t); StructDeclaration *sd = ((TypeStruct *)t)->sym; if (sd->postblit) --- 2647,2657 ---- t = t->baseElemOf(); if (t->ty == Tstruct) { ! if (global.params.useTypeInfo) ! { ! // Bugzilla 11395: Require TypeInfo generation for array concatenation ! semanticTypeInfo(sc, t); ! } StructDeclaration *sd = ((TypeStruct *)t)->sym; if (sd->postblit) *************** Expression *FuncInitExp::resolveLoc(Loc *** 6714,6720 **** s = ""; Expression *e = new StringExp(loc, const_cast(s)); e = semantic(e, sc); ! e = e->castTo(sc, type); return e; } --- 6717,6723 ---- s = ""; Expression *e = new StringExp(loc, const_cast(s)); e = semantic(e, sc); ! e->type = Type::tstring; return e; } *************** Expression *PrettyFuncInitExp::resolveLo *** 6748,6754 **** Expression *e = new StringExp(loc, const_cast(s)); e = semantic(e, sc); ! e = e->castTo(sc, type); return e; } --- 6751,6757 ---- Expression *e = new StringExp(loc, const_cast(s)); e = semantic(e, sc); ! e->type = Type::tstring; return e; } diff -Nrcpad gcc-9.4.0/gcc/d/dmd/expressionsem.c gcc-9.5.0/gcc/d/dmd/expressionsem.c *** gcc-9.4.0/gcc/d/dmd/expressionsem.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/d/dmd/expressionsem.c Fri May 27 07:21:11 2022 *************** public: *** 1806,1816 **** Expression *e; if (ea && ta->toBasetype()->ty == Tclass) { ! /* Get the dynamic type, which is .classinfo ! */ ! ea = semantic(ea, sc); ! e = new TypeidExp(ea->loc, ea); ! e->type = Type::typeinfoclass->type; } else if (ta->ty == Terror) { --- 1806,1824 ---- Expression *e; if (ea && ta->toBasetype()->ty == Tclass) { ! if (!Type::typeinfoclass) ! { ! error(exp->loc, "`object.TypeInfo_Class` could not be found, but is implicitly used"); ! e = new ErrorExp(); ! } ! else ! { ! /* Get the dynamic type, which is .classinfo ! */ ! ea = semantic(ea, sc); ! e = new TypeidExp(ea->loc, ea); ! e->type = Type::typeinfoclass->type; ! } } else if (ta->ty == Terror) { diff -Nrcpad gcc-9.4.0/gcc/d/dmd/func.c gcc-9.5.0/gcc/d/dmd/func.c *** gcc-9.4.0/gcc/d/dmd/func.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/d/dmd/func.c Fri May 27 07:21:11 2022 *************** void FuncDeclaration::semantic3(Scope *s *** 1520,1525 **** --- 1520,1537 ---- { if (f->linkage == LINKd) { + // Variadic arguments depend on Typeinfo being defined + if (!global.params.useTypeInfo || !Type::dtypeinfo || !Type::typeinfotypelist) + { + if (!global.params.useTypeInfo) + error("D-style variadic functions cannot be used with -betterC"); + else if (!Type::typeinfotypelist) + error("`object.TypeInfo_Tuple` could not be found, but is implicitly used in D-style variadic functions"); + else + error("`object.TypeInfo` could not be found, but is implicitly used in D-style variadic functions"); + fatal(); + } + // Declare _arguments[] v_arguments = new VarDeclaration(Loc(), Type::typeinfotypelist->type, Id::_arguments_typeinfo, NULL); v_arguments->storage_class |= STCtemp | STCparameter; diff -Nrcpad gcc-9.4.0/gcc/d/dmd/mtype.c gcc-9.5.0/gcc/d/dmd/mtype.c *** gcc-9.4.0/gcc/d/dmd/mtype.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/d/dmd/mtype.c Fri May 27 07:21:11 2022 *************** Expression *Type::getProperty(Loc loc, I *** 2059,2065 **** } else if (ident == Id::__xalignof) { ! e = new IntegerExp(loc, alignsize(), Type::tsize_t); } else if (ident == Id::_init) { --- 2059,2068 ---- } else if (ident == Id::__xalignof) { ! unsigned explicitAlignment = alignment(); ! unsigned naturalAlignment = alignsize(); ! unsigned actualAlignment = (explicitAlignment == STRUCTALIGN_DEFAULT ? naturalAlignment : explicitAlignment); ! e = new IntegerExp(loc, actualAlignment, Type::tsize_t); } else if (ident == Id::_init) { *************** L1: *** 8344,8350 **** if (ident == Id::classinfo) { ! assert(Type::typeinfoclass); Type *t = Type::typeinfoclass->type; if (e->op == TOKtype || e->op == TOKdottype) { --- 8347,8358 ---- if (ident == Id::classinfo) { ! if (!Type::typeinfoclass) ! { ! error(e->loc, "`object.TypeInfo_Class` could not be found, but is implicitly used"); ! return new ErrorExp(); ! } ! Type *t = Type::typeinfoclass->type; if (e->op == TOKtype || e->op == TOKdottype) { diff -Nrcpad gcc-9.4.0/gcc/d/expr.cc gcc-9.5.0/gcc/d/expr.cc *** gcc-9.4.0/gcc/d/expr.cc Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/d/expr.cc Fri May 27 07:21:11 2022 *************** class ExprVisitor : public Visitor *** 162,168 **** eptype = type; } ! ret = fold_build2 (code, eptype, arg0, arg1); } return d_convert (type, ret); --- 162,168 ---- eptype = type; } ! ret = build2 (code, eptype, arg0, arg1); } return d_convert (type, ret); *************** public: *** 1435,1441 **** if (tbtype->ty == Tvoid) this->result_ = build_nop (build_ctype (tbtype), result); else ! this->result_ = convert_expr (result, ebtype, tbtype); } /* Build a delete expression. */ --- 1435,1441 ---- if (tbtype->ty == Tvoid) this->result_ = build_nop (build_ctype (tbtype), result); else ! this->result_ = convert_for_rvalue (result, ebtype, tbtype); } /* Build a delete expression. */ *************** public: *** 1837,1851 **** exp = d_convert (build_ctype (e->type), exp); /* If this call was found to be a constructor for a temporary with a ! cleanup, then move the call inside the TARGET_EXPR. The original ! initializer is turned into an assignment, to keep its side effect. */ if (cleanup != NULL_TREE) { tree init = TARGET_EXPR_INITIAL (cleanup); - tree slot = TARGET_EXPR_SLOT (cleanup); - d_mark_addressable (slot); - init = build_assign (INIT_EXPR, slot, init); - TARGET_EXPR_INITIAL (cleanup) = compound_expr (init, exp); exp = cleanup; } --- 1837,1846 ---- exp = d_convert (build_ctype (e->type), exp); /* If this call was found to be a constructor for a temporary with a ! cleanup, then move the call inside the TARGET_EXPR. */ if (cleanup != NULL_TREE) { tree init = TARGET_EXPR_INITIAL (cleanup); TARGET_EXPR_INITIAL (cleanup) = compound_expr (init, exp); exp = cleanup; } *************** build_return_dtor (Expression *e, Type * *** 3111,3121 **** tree result = build_expr (e); /* Convert for initializing the DECL_RESULT. */ - result = convert_expr (result, e->type, type); - - /* If we are returning a reference, take the address. */ if (tf->isref) ! result = build_address (result); /* The decl to store the return expression. */ tree decl = DECL_RESULT (cfun->decl); --- 3106,3119 ---- tree result = build_expr (e); /* Convert for initializing the DECL_RESULT. */ if (tf->isref) ! { ! /* If we are returning a reference, take the address. */ ! result = convert_expr (result, e->type, type); ! result = build_address (result); ! } ! else ! result = convert_for_rvalue (result, e->type, type); /* The decl to store the return expression. */ tree decl = DECL_RESULT (cfun->decl); diff -Nrcpad gcc-9.4.0/gcc/d/typeinfo.cc gcc-9.5.0/gcc/d/typeinfo.cc *** gcc-9.4.0/gcc/d/typeinfo.cc Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/d/typeinfo.cc Fri May 27 07:21:11 2022 *************** along with GCC; see the file COPYING3. *** 27,32 **** --- 27,33 ---- #include "dmd/identifier.h" #include "dmd/module.h" #include "dmd/mtype.h" + #include "dmd/scope.h" #include "dmd/template.h" #include "dmd/target.h" *************** make_internal_typeinfo (tinfo_kind tk, I *** 185,212 **** va_end (ap); } ! /* Helper for create_tinfo_types. Creates a typeinfo class declaration ! incase one wasn't supplied by reading `object.d'. */ static void ! make_frontend_typeinfo (Module *mod, Identifier *ident, ! ClassDeclaration *base = NULL) { if (!base) base = Type::dtypeinfo; /* Create object module in order to complete the semantic. */ ! if (!mod->_scope) ! mod->importAll (NULL); /* Assignment of global typeinfo variables is managed by the ClassDeclaration constructor, so only need to new the declaration here. */ ! Loc loc = (mod->md) ? mod->md->loc : mod->loc; ClassDeclaration *tinfo = ClassDeclaration::create (loc, ident, NULL, NULL, true); ! tinfo->parent = mod; ! tinfo->semantic (mod->_scope); tinfo->baseClass = base; } /* Make sure the required builtin types exist for generating the TypeInfo --- 186,221 ---- va_end (ap); } ! /* Reference to the `object` module, where all TypeInfo is defined. */ ! ! static Module *object_module; ! ! /* Helper for create_frontend_tinfo_types. Creates a typeinfo class ! declaration incase one wasn't supplied by reading `object.d'. */ static void ! make_frontend_typeinfo (Identifier *ident, ClassDeclaration *base = NULL) { if (!base) base = Type::dtypeinfo; + gcc_assert (object_module); + /* Create object module in order to complete the semantic. */ ! if (!object_module->_scope) ! object_module->importAll (NULL); /* Assignment of global typeinfo variables is managed by the ClassDeclaration constructor, so only need to new the declaration here. */ ! Loc loc = (object_module->md) ? object_module->md->loc : object_module->loc; ClassDeclaration *tinfo = ClassDeclaration::create (loc, ident, NULL, NULL, true); ! tinfo->parent = object_module; ! tinfo->semantic (object_module->_scope); tinfo->baseClass = base; + /* This is a compiler generated class, and shouldn't be mistaken for being + the type declared in the runtime library. */ + tinfo->storage_class |= STCtemp; } /* Make sure the required builtin types exist for generating the TypeInfo *************** create_tinfo_types (Module *mod) *** 227,295 **** ptr_type_node, d_uint_type, ptr_type_node, array_type_node, ptr_type_node, ptr_type_node, NULL); ! /* If there's no Object class defined, then neither can TypeInfo be. */ ! if (ClassDeclaration::object == NULL) return; /* Create all frontend TypeInfo classes declarations. We rely on all existing, even if only just as stubs. */ if (!Type::dtypeinfo) ! make_frontend_typeinfo (mod, Identifier::idPool ("TypeInfo"), ClassDeclaration::object); if (!Type::typeinfoclass) ! make_frontend_typeinfo (mod, Identifier::idPool ("TypeInfo_Class")); if (!Type::typeinfointerface) ! make_frontend_typeinfo (mod, Identifier::idPool ("TypeInfo_Interface")); if (!Type::typeinfostruct) ! make_frontend_typeinfo (mod, Identifier::idPool ("TypeInfo_Struct")); if (!Type::typeinfopointer) ! make_frontend_typeinfo (mod, Identifier::idPool ("TypeInfo_Pointer")); if (!Type::typeinfoarray) ! make_frontend_typeinfo (mod, Identifier::idPool ("TypeInfo_Array")); if (!Type::typeinfostaticarray) ! make_frontend_typeinfo (mod, Identifier::idPool ("TypeInfo_StaticArray")); if (!Type::typeinfoassociativearray) ! make_frontend_typeinfo (mod, Identifier::idPool ("TypeInfo_AssociativeArray")); if (!Type::typeinfoenum) ! make_frontend_typeinfo (mod, Identifier::idPool ("TypeInfo_Enum")); if (!Type::typeinfofunction) ! make_frontend_typeinfo (mod, Identifier::idPool ("TypeInfo_Function")); if (!Type::typeinfodelegate) ! make_frontend_typeinfo (mod, Identifier::idPool ("TypeInfo_Delegate")); if (!Type::typeinfotypelist) ! make_frontend_typeinfo (mod, Identifier::idPool ("TypeInfo_Tuple")); if (!Type::typeinfoconst) ! make_frontend_typeinfo (mod, Identifier::idPool ("TypeInfo_Const")); if (!Type::typeinfoinvariant) ! make_frontend_typeinfo (mod, Identifier::idPool ("TypeInfo_Invariant"), Type::typeinfoconst); if (!Type::typeinfoshared) ! make_frontend_typeinfo (mod, Identifier::idPool ("TypeInfo_Shared"), Type::typeinfoconst); if (!Type::typeinfowild) ! make_frontend_typeinfo (mod, Identifier::idPool ("TypeInfo_Wild"), Type::typeinfoconst); if (!Type::typeinfovector) ! make_frontend_typeinfo (mod, Identifier::idPool ("TypeInfo_Vector")); if (!ClassDeclaration::cpp_type_info_ptr) ! make_frontend_typeinfo (mod, Identifier::idPool ("__cpp_type_info_ptr"), ClassDeclaration::object); } --- 236,313 ---- ptr_type_node, d_uint_type, ptr_type_node, array_type_node, ptr_type_node, ptr_type_node, NULL); ! object_module = mod; ! } ! ! /* Same as create_tinfo_types, but builds all front-end TypeInfo variable ! definitions. */ ! ! static void ! create_frontend_tinfo_types (void) ! { ! /* If there's no object module, then neither can there be TypeInfo. */ ! if (object_module == NULL) return; /* Create all frontend TypeInfo classes declarations. We rely on all existing, even if only just as stubs. */ if (!Type::dtypeinfo) ! make_frontend_typeinfo (Identifier::idPool ("TypeInfo"), ClassDeclaration::object); if (!Type::typeinfoclass) ! make_frontend_typeinfo (Identifier::idPool ("TypeInfo_Class")); if (!Type::typeinfointerface) ! make_frontend_typeinfo (Identifier::idPool ("TypeInfo_Interface")); if (!Type::typeinfostruct) ! make_frontend_typeinfo (Identifier::idPool ("TypeInfo_Struct")); if (!Type::typeinfopointer) ! make_frontend_typeinfo (Identifier::idPool ("TypeInfo_Pointer")); if (!Type::typeinfoarray) ! make_frontend_typeinfo (Identifier::idPool ("TypeInfo_Array")); if (!Type::typeinfostaticarray) ! make_frontend_typeinfo (Identifier::idPool ("TypeInfo_StaticArray")); if (!Type::typeinfoassociativearray) ! make_frontend_typeinfo (Identifier::idPool ("TypeInfo_AssociativeArray")); if (!Type::typeinfoenum) ! make_frontend_typeinfo (Identifier::idPool ("TypeInfo_Enum")); if (!Type::typeinfofunction) ! make_frontend_typeinfo (Identifier::idPool ("TypeInfo_Function")); if (!Type::typeinfodelegate) ! make_frontend_typeinfo (Identifier::idPool ("TypeInfo_Delegate")); if (!Type::typeinfotypelist) ! make_frontend_typeinfo (Identifier::idPool ("TypeInfo_Tuple")); if (!Type::typeinfoconst) ! make_frontend_typeinfo (Identifier::idPool ("TypeInfo_Const")); if (!Type::typeinfoinvariant) ! make_frontend_typeinfo (Identifier::idPool ("TypeInfo_Invariant"), Type::typeinfoconst); if (!Type::typeinfoshared) ! make_frontend_typeinfo (Identifier::idPool ("TypeInfo_Shared"), Type::typeinfoconst); if (!Type::typeinfowild) ! make_frontend_typeinfo (Identifier::idPool ("TypeInfo_Wild"), Type::typeinfoconst); if (!Type::typeinfovector) ! make_frontend_typeinfo (Identifier::idPool ("TypeInfo_Vector")); if (!ClassDeclaration::cpp_type_info_ptr) ! make_frontend_typeinfo (Identifier::idPool ("__cpp_type_info_ptr"), ClassDeclaration::object); } *************** public: *** 1143,1148 **** --- 1161,1169 ---- tree layout_typeinfo (TypeInfoDeclaration *d) { + if (!Type::dtypeinfo) + create_frontend_tinfo_types (); + TypeInfoVisitor v = TypeInfoVisitor (get_typeinfo_decl (d)); d->accept (&v); return v.result (); *************** layout_typeinfo (TypeInfoDeclaration *d) *** 1154,1159 **** --- 1175,1183 ---- tree layout_classinfo (ClassDeclaration *cd) { + if (!Type::dtypeinfo) + create_frontend_tinfo_types (); + TypeInfoClassDeclaration *d = TypeInfoClassDeclaration::create (cd->type); TypeInfoVisitor v = TypeInfoVisitor (get_classinfo_decl (cd)); d->accept (&v); *************** get_classinfo_decl (ClassDeclaration *de *** 1347,1362 **** return decl->csym; } ! /* Returns typeinfo reference for TYPE. */ ! tree ! build_typeinfo (const Loc &loc, Type *type) { if (!global.params.useTypeInfo) { static int warned = 0; ! if (!warned) { error_at (make_location_t (loc), "% cannot be used with -fno-rtti"); --- 1371,1389 ---- return decl->csym; } ! /* Performs sanity checks on the `object.TypeInfo' type, raising an error if ! RTTI is disabled, or the type is missing. */ ! void ! check_typeinfo_type (const Loc &loc, Scope *sc) { if (!global.params.useTypeInfo) { static int warned = 0; ! /* Even when compiling without RTTI we should still be able to evaluate ! TypeInfo at compile-time, just not at run-time. */ ! if (!warned && (!sc || !(sc->flags & SCOPEctfe))) { error_at (make_location_t (loc), "% cannot be used with -fno-rtti"); *************** build_typeinfo (const Loc &loc, Type *ty *** 1364,1370 **** --- 1391,1419 ---- } } + if (Type::dtypeinfo == NULL + || (Type::dtypeinfo->storage_class & STCtemp)) + { + /* If TypeInfo has not been declared, warn about each location once. */ + static Loc warnloc; + + if (!warnloc.equals (loc)) + { + error_at (make_location_t (loc), + "% could not be found, " + "but is implicitly used"); + warnloc = loc; + } + } + } + + /* Returns typeinfo reference for TYPE. */ + + tree + build_typeinfo (const Loc &loc, Type *type) + { gcc_assert (type->ty != Terror); + check_typeinfo_type (loc, NULL); create_typeinfo (type, NULL); return build_address (get_typeinfo_decl (type->vtinfo)); } *************** build_typeinfo (const Loc &loc, Type *ty *** 1375,1380 **** --- 1424,1432 ---- void layout_cpp_typeinfo (ClassDeclaration *cd) { + if (!Type::dtypeinfo) + create_frontend_tinfo_types (); + gcc_assert (cd->isCPPclass ()); tree decl = get_cpp_typeinfo_decl (cd); *************** get_cpp_typeinfo_decl (ClassDeclaration *** 1443,1448 **** --- 1495,1503 ---- void create_typeinfo (Type *type, Module *mod) { + if (!Type::dtypeinfo) + create_frontend_tinfo_types (); + /* Do this since not all Type's are merged. */ Type *t = type->merge2 (); Identifier *ident; diff -Nrcpad gcc-9.4.0/gcc/doc/cpp.1 gcc-9.5.0/gcc/doc/cpp.1 *** gcc-9.4.0/gcc/doc/cpp.1 Tue Jun 1 07:54:17 2021 --- gcc-9.5.0/gcc/doc/cpp.1 Fri May 27 07:22:23 2022 *************** *** 129,135 **** .\" ======================================================================== .\" .IX Title "CPP 1" ! .TH CPP 1 "2021-06-01" "gcc-9.4.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l --- 129,135 ---- .\" ======================================================================== .\" .IX Title "CPP 1" ! .TH CPP 1 "2022-05-27" "gcc-9.5.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l diff -Nrcpad gcc-9.4.0/gcc/doc/fsf-funding.7 gcc-9.5.0/gcc/doc/fsf-funding.7 *** gcc-9.4.0/gcc/doc/fsf-funding.7 Tue Jun 1 07:54:17 2021 --- gcc-9.5.0/gcc/doc/fsf-funding.7 Fri May 27 07:22:23 2022 *************** *** 129,135 **** .\" ======================================================================== .\" .IX Title "FSF-FUNDING 7" ! .TH FSF-FUNDING 7 "2021-06-01" "gcc-9.4.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l --- 129,135 ---- .\" ======================================================================== .\" .IX Title "FSF-FUNDING 7" ! .TH FSF-FUNDING 7 "2022-05-27" "gcc-9.5.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l diff -Nrcpad gcc-9.4.0/gcc/doc/g++.1 gcc-9.5.0/gcc/doc/g++.1 *** gcc-9.4.0/gcc/doc/g++.1 Tue Jun 1 08:02:35 2021 --- gcc-9.5.0/gcc/doc/g++.1 Fri May 27 07:30:42 2022 *************** *** 129,135 **** .\" ======================================================================== .\" .IX Title "GCC 1" ! .TH GCC 1 "2021-06-01" "gcc-9.4.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l --- 129,135 ---- .\" ======================================================================== .\" .IX Title "GCC 1" ! .TH GCC 1 "2022-05-27" "gcc-9.5.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l *************** name is still supported, but the newer n *** 4231,4237 **** \&\fB\-Wredundant\-move\fR (only for \*(C+) \&\fB\-Wtype\-limits \&\-Wuninitialized ! \&\-Wshift\-negative\-value\fR (in \*(C+03 and in C99 and newer) \&\fB\-Wunused\-parameter\fR (only with\fB \fR\fB\-Wunused\fR\fB \fRor\fB \fR\fB\-Wall\fR) \&\fB\-Wunused\-but\-set\-parameter\fR (only with\fB \fR\fB\-Wunused\fR\fB \fRor\fB \fR\fB\-Wall\fR) .Sp --- 4231,4237 ---- \&\fB\-Wredundant\-move\fR (only for \*(C+) \&\fB\-Wtype\-limits \&\-Wuninitialized ! \&\-Wshift\-negative\-value\fR (in \*(C+11 to \*(C+17 and in C99 and newer) \&\fB\-Wunused\-parameter\fR (only with\fB \fR\fB\-Wunused\fR\fB \fRor\fB \fR\fB\-Wall\fR) \&\fB\-Wunused\-but\-set\-parameter\fR (only with\fB \fR\fB\-Wunused\fR\fB \fRor\fB \fR\fB\-Wall\fR) .Sp *************** Warn if shift count >= width of type. Th *** 5005,5011 **** .IP "\fB\-Wshift\-negative\-value\fR" 4 .IX Item "-Wshift-negative-value" Warn if left shifting a negative value. This warning is enabled by ! \&\fB\-Wextra\fR in C99 and \*(C+11 modes (and newer). .IP "\fB\-Wshift\-overflow\fR" 4 .IX Item "-Wshift-overflow" .PD 0 --- 5005,5011 ---- .IP "\fB\-Wshift\-negative\-value\fR" 4 .IX Item "-Wshift-negative-value" Warn if left shifting a negative value. This warning is enabled by ! \&\fB\-Wextra\fR in C99 (and newer) and \*(C+11 to \*(C+17 modes. .IP "\fB\-Wshift\-overflow\fR" 4 .IX Item "-Wshift-overflow" .PD 0 *************** The option cannot be combined with \fB\- *** 11635,11641 **** .IX Item "-fsanitize=undefined" Enable UndefinedBehaviorSanitizer, a fast undefined behavior detector. Various computations are instrumented to detect undefined behavior ! at runtime. Current suboptions are: .RS 4 .IP "\fB\-fsanitize=shift\fR" 4 .IX Item "-fsanitize=shift" --- 11635,11642 ---- .IX Item "-fsanitize=undefined" Enable UndefinedBehaviorSanitizer, a fast undefined behavior detector. Various computations are instrumented to detect undefined behavior ! at runtime. See <\fBhttps://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html\fR> for more details. The run-time behavior can be influenced using the ! \&\fB\s-1UBSAN_OPTIONS\s0\fR environment variable. Current suboptions are: .RS 4 .IP "\fB\-fsanitize=shift\fR" 4 .IX Item "-fsanitize=shift" *************** You can also use the \f(CW\*(C`nocf_chec *** 11874,11880 **** which functions and calls should be skipped from instrumentation. .Sp Currently the x86 GNU/Linux target provides an implementation based ! on Intel Control-flow Enforcement Technology (\s-1CET\s0). .IP "\fB\-fstack\-protector\fR" 4 .IX Item "-fstack-protector" Emit extra code to check for buffer overflows, such as stack smashing --- 11875,11882 ---- which functions and calls should be skipped from instrumentation. .Sp Currently the x86 GNU/Linux target provides an implementation based ! on Intel Control-flow Enforcement Technology (\s-1CET\s0) which works for ! i686 processor or newer. .IP "\fB\-fstack\-protector\fR" 4 .IX Item "-fstack-protector" Emit extra code to check for buffer overflows, such as stack smashing *************** performance of the code. Permissible va *** 15275,15280 **** --- 15277,15283 ---- \&\fBcortex\-a57\fR, \fBcortex\-a72\fR, \fBcortex\-a73\fR, \fBcortex\-a75\fR, \&\fBcortex\-a76\fR, \fBares\fR, \fBexynos\-m1\fR, \fBemag\fR, \fBfalkor\fR, \&\fBneoverse\-e1\fR, \fBneoverse\-n1\fR, \fBneoverse\-n2\fR, \fBneoverse\-v1\fR, + \&\fBneoverse\-512tvb\fR, \&\fBqdf24xx\fR, \fBsaphira\fR, \fBphecda\fR, \fBxgene1\fR, \fBvulcan\fR, \&\fBocteontx\fR, \fBocteontx81\fR, \fBocteontx83\fR, \&\fBa64fx\fR, *************** The values \fBcortex\-a57.cortex\-a53\fR *** 15291,15296 **** --- 15294,15308 ---- \&\fBcortex\-a75.cortex\-a55\fR, \fBcortex\-a76.cortex\-a55\fR specify that \s-1GCC\s0 should tune for a big.LITTLE system. .Sp + The value \fBneoverse\-512tvb\fR specifies that \s-1GCC\s0 should tune + for Neoverse cores that (a) implement \s-1SVE\s0 and (b) have a total vector + bandwidth of 512 bits per cycle. In other words, the option tells \s-1GCC\s0 to + tune for Neoverse cores that can execute 4 128\-bit Advanced \s-1SIMD\s0 arithmetic + instructions a cycle and that can execute an equivalent number of \s-1SVE\s0 + arithmetic instructions per cycle (2 for 256\-bit \s-1SVE, 4\s0 for 128\-bit \s-1SVE\s0). + This is more general than tuning for a specific core like Neoverse V1 + but is more specific than the default tuning described below. + .Sp Additionally on native AArch64 GNU/Linux systems the value \&\fBnative\fR tunes performance to the host system. This option has no effect if the compiler is unable to recognize the processor of the host system. *************** the target processor for which to tune f *** 15318,15323 **** --- 15330,15345 ---- by \fB\-mtune\fR). Where this option is used in conjunction with \fB\-march\fR or \fB\-mtune\fR, those options take precedence over the appropriate part of this option. + .Sp + \&\fB\-mcpu=neoverse\-512tvb\fR is special in that it does not refer + to a specific core, but instead refers to all Neoverse cores that + (a) implement \s-1SVE\s0 and (b) have a total vector bandwidth of 512 bits + a cycle. Unless overridden by \fB\-march\fR, + \&\fB\-mcpu=neoverse\-512tvb\fR generates code that can run on a + Neoverse V1 core, since Neoverse V1 is the first Neoverse core with + these properties. Unless overridden by \fB\-mtune\fR, + \&\fB\-mcpu=neoverse\-512tvb\fR tunes code in the same way as for + \&\fB\-mtune=neoverse\-512tvb\fR. .IP "\fB\-moverride=\fR\fIstring\fR" 4 .IX Item "-moverride=string" Override tuning decisions made by the back-end in response to a diff -Nrcpad gcc-9.4.0/gcc/doc/gcc.1 gcc-9.5.0/gcc/doc/gcc.1 *** gcc-9.4.0/gcc/doc/gcc.1 Tue Jun 1 08:02:35 2021 --- gcc-9.5.0/gcc/doc/gcc.1 Fri May 27 07:30:42 2022 *************** *** 129,135 **** .\" ======================================================================== .\" .IX Title "GCC 1" ! .TH GCC 1 "2021-06-01" "gcc-9.4.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l --- 129,135 ---- .\" ======================================================================== .\" .IX Title "GCC 1" ! .TH GCC 1 "2022-05-27" "gcc-9.5.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l *************** name is still supported, but the newer n *** 4231,4237 **** \&\fB\-Wredundant\-move\fR (only for \*(C+) \&\fB\-Wtype\-limits \&\-Wuninitialized ! \&\-Wshift\-negative\-value\fR (in \*(C+03 and in C99 and newer) \&\fB\-Wunused\-parameter\fR (only with\fB \fR\fB\-Wunused\fR\fB \fRor\fB \fR\fB\-Wall\fR) \&\fB\-Wunused\-but\-set\-parameter\fR (only with\fB \fR\fB\-Wunused\fR\fB \fRor\fB \fR\fB\-Wall\fR) .Sp --- 4231,4237 ---- \&\fB\-Wredundant\-move\fR (only for \*(C+) \&\fB\-Wtype\-limits \&\-Wuninitialized ! \&\-Wshift\-negative\-value\fR (in \*(C+11 to \*(C+17 and in C99 and newer) \&\fB\-Wunused\-parameter\fR (only with\fB \fR\fB\-Wunused\fR\fB \fRor\fB \fR\fB\-Wall\fR) \&\fB\-Wunused\-but\-set\-parameter\fR (only with\fB \fR\fB\-Wunused\fR\fB \fRor\fB \fR\fB\-Wall\fR) .Sp *************** Warn if shift count >= width of type. Th *** 5005,5011 **** .IP "\fB\-Wshift\-negative\-value\fR" 4 .IX Item "-Wshift-negative-value" Warn if left shifting a negative value. This warning is enabled by ! \&\fB\-Wextra\fR in C99 and \*(C+11 modes (and newer). .IP "\fB\-Wshift\-overflow\fR" 4 .IX Item "-Wshift-overflow" .PD 0 --- 5005,5011 ---- .IP "\fB\-Wshift\-negative\-value\fR" 4 .IX Item "-Wshift-negative-value" Warn if left shifting a negative value. This warning is enabled by ! \&\fB\-Wextra\fR in C99 (and newer) and \*(C+11 to \*(C+17 modes. .IP "\fB\-Wshift\-overflow\fR" 4 .IX Item "-Wshift-overflow" .PD 0 *************** The option cannot be combined with \fB\- *** 11635,11641 **** .IX Item "-fsanitize=undefined" Enable UndefinedBehaviorSanitizer, a fast undefined behavior detector. Various computations are instrumented to detect undefined behavior ! at runtime. Current suboptions are: .RS 4 .IP "\fB\-fsanitize=shift\fR" 4 .IX Item "-fsanitize=shift" --- 11635,11642 ---- .IX Item "-fsanitize=undefined" Enable UndefinedBehaviorSanitizer, a fast undefined behavior detector. Various computations are instrumented to detect undefined behavior ! at runtime. See <\fBhttps://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html\fR> for more details. The run-time behavior can be influenced using the ! \&\fB\s-1UBSAN_OPTIONS\s0\fR environment variable. Current suboptions are: .RS 4 .IP "\fB\-fsanitize=shift\fR" 4 .IX Item "-fsanitize=shift" *************** You can also use the \f(CW\*(C`nocf_chec *** 11874,11880 **** which functions and calls should be skipped from instrumentation. .Sp Currently the x86 GNU/Linux target provides an implementation based ! on Intel Control-flow Enforcement Technology (\s-1CET\s0). .IP "\fB\-fstack\-protector\fR" 4 .IX Item "-fstack-protector" Emit extra code to check for buffer overflows, such as stack smashing --- 11875,11882 ---- which functions and calls should be skipped from instrumentation. .Sp Currently the x86 GNU/Linux target provides an implementation based ! on Intel Control-flow Enforcement Technology (\s-1CET\s0) which works for ! i686 processor or newer. .IP "\fB\-fstack\-protector\fR" 4 .IX Item "-fstack-protector" Emit extra code to check for buffer overflows, such as stack smashing *************** performance of the code. Permissible va *** 15275,15280 **** --- 15277,15283 ---- \&\fBcortex\-a57\fR, \fBcortex\-a72\fR, \fBcortex\-a73\fR, \fBcortex\-a75\fR, \&\fBcortex\-a76\fR, \fBares\fR, \fBexynos\-m1\fR, \fBemag\fR, \fBfalkor\fR, \&\fBneoverse\-e1\fR, \fBneoverse\-n1\fR, \fBneoverse\-n2\fR, \fBneoverse\-v1\fR, + \&\fBneoverse\-512tvb\fR, \&\fBqdf24xx\fR, \fBsaphira\fR, \fBphecda\fR, \fBxgene1\fR, \fBvulcan\fR, \&\fBocteontx\fR, \fBocteontx81\fR, \fBocteontx83\fR, \&\fBa64fx\fR, *************** The values \fBcortex\-a57.cortex\-a53\fR *** 15291,15296 **** --- 15294,15308 ---- \&\fBcortex\-a75.cortex\-a55\fR, \fBcortex\-a76.cortex\-a55\fR specify that \s-1GCC\s0 should tune for a big.LITTLE system. .Sp + The value \fBneoverse\-512tvb\fR specifies that \s-1GCC\s0 should tune + for Neoverse cores that (a) implement \s-1SVE\s0 and (b) have a total vector + bandwidth of 512 bits per cycle. In other words, the option tells \s-1GCC\s0 to + tune for Neoverse cores that can execute 4 128\-bit Advanced \s-1SIMD\s0 arithmetic + instructions a cycle and that can execute an equivalent number of \s-1SVE\s0 + arithmetic instructions per cycle (2 for 256\-bit \s-1SVE, 4\s0 for 128\-bit \s-1SVE\s0). + This is more general than tuning for a specific core like Neoverse V1 + but is more specific than the default tuning described below. + .Sp Additionally on native AArch64 GNU/Linux systems the value \&\fBnative\fR tunes performance to the host system. This option has no effect if the compiler is unable to recognize the processor of the host system. *************** the target processor for which to tune f *** 15318,15323 **** --- 15330,15345 ---- by \fB\-mtune\fR). Where this option is used in conjunction with \fB\-march\fR or \fB\-mtune\fR, those options take precedence over the appropriate part of this option. + .Sp + \&\fB\-mcpu=neoverse\-512tvb\fR is special in that it does not refer + to a specific core, but instead refers to all Neoverse cores that + (a) implement \s-1SVE\s0 and (b) have a total vector bandwidth of 512 bits + a cycle. Unless overridden by \fB\-march\fR, + \&\fB\-mcpu=neoverse\-512tvb\fR generates code that can run on a + Neoverse V1 core, since Neoverse V1 is the first Neoverse core with + these properties. Unless overridden by \fB\-mtune\fR, + \&\fB\-mcpu=neoverse\-512tvb\fR tunes code in the same way as for + \&\fB\-mtune=neoverse\-512tvb\fR. .IP "\fB\-moverride=\fR\fIstring\fR" 4 .IX Item "-moverride=string" Override tuning decisions made by the back-end in response to a diff -Nrcpad gcc-9.4.0/gcc/doc/gcc.info gcc-9.5.0/gcc/doc/gcc.info *** gcc-9.4.0/gcc/doc/gcc.info Tue Jun 1 08:02:38 2021 --- gcc-9.5.0/gcc/doc/gcc.info Fri May 27 07:30:45 2022 *************** Introduction *** 58,64 **** This manual documents how to use the GNU compilers, as well as their features and incompatibilities, and how to report bugs. It corresponds ! to the compilers (GCC) version 9.4.0. The internals of the GNU compilers, including how to port them to new targets and some information about how to write front ends for new languages, are documented in a separate manual. *Note Introduction: (gccint)Top. --- 58,64 ---- This manual documents how to use the GNU compilers, as well as their features and incompatibilities, and how to report bugs. It corresponds ! to the compilers (GCC) version 9.5.0. The internals of the GNU compilers, including how to port them to new targets and some information about how to write front ends for new languages, are documented in a separate manual. *Note Introduction: (gccint)Top. *************** unless optimization is enabled. *** 4357,4363 **** -Wredundant-move (only for C++) -Wtype-limits -Wuninitialized ! -Wshift-negative-value (in C++03 and in C99 and newer) -Wunused-parameter (only with -Wunused or -Wall) -Wunused-but-set-parameter (only with -Wunused or -Wall) --- 4357,4363 ---- -Wredundant-move (only for C++) -Wtype-limits -Wuninitialized ! -Wshift-negative-value (in C++11 to C++17 and in C99 and newer) -Wunused-parameter (only with -Wunused or -Wall) -Wunused-but-set-parameter (only with -Wunused or -Wall) *************** unless optimization is enabled. *** 5062,5068 **** '-Wshift-negative-value' Warn if left shifting a negative value. This warning is enabled by ! '-Wextra' in C99 and C++11 modes (and newer). '-Wshift-overflow' '-Wshift-overflow=N' --- 5062,5068 ---- '-Wshift-negative-value' Warn if left shifting a negative value. This warning is enabled by ! '-Wextra' in C99 (and newer) and C++11 to C++17 modes. '-Wshift-overflow' '-Wshift-overflow=N' *************** program analysis purposes. *** 11539,11545 **** '-fsanitize=undefined' Enable UndefinedBehaviorSanitizer, a fast undefined behavior detector. Various computations are instrumented to detect ! undefined behavior at runtime. Current suboptions are: '-fsanitize=shift' This option enables checking that the result of a shift --- 11539,11548 ---- '-fsanitize=undefined' Enable UndefinedBehaviorSanitizer, a fast undefined behavior detector. Various computations are instrumented to detect ! undefined behavior at runtime. See ! for ! more details. The run-time behavior can be influenced using the ! 'UBSAN_OPTIONS' environment variable. Current suboptions are: '-fsanitize=shift' This option enables checking that the result of a shift *************** program analysis purposes. *** 11789,11795 **** Function Attributes::). Currently the x86 GNU/Linux target provides an implementation based ! on Intel Control-flow Enforcement Technology (CET). '-fstack-protector' Emit extra code to check for buffer overflows, such as stack --- 11792,11799 ---- Function Attributes::). Currently the x86 GNU/Linux target provides an implementation based ! on Intel Control-flow Enforcement Technology (CET) which works for ! i686 processor or newer. '-fstack-protector' Emit extra code to check for buffer overflows, such as stack *************** These options are defined for AArch64 im *** 15049,15067 **** are: 'generic', 'cortex-a35', 'cortex-a53', 'cortex-a55', 'cortex-a57', 'cortex-a72', 'cortex-a73', 'cortex-a75', 'cortex-a76', 'ares', 'exynos-m1', 'emag', 'falkor', 'neoverse-e1', ! 'neoverse-n1', 'neoverse-n2', 'neoverse-v1', 'qdf24xx', 'saphira', ! 'phecda', 'xgene1', 'vulcan', 'octeontx', 'octeontx81', ! 'octeontx83', 'a64fx', 'thunderx', 'thunderxt88', 'thunderxt88p1', ! 'thunderxt81', 'tsv110', 'thunderxt83', 'thunderx2t99', 'zeus', ! 'cortex-a57.cortex-a53', 'cortex-a72.cortex-a53', ! 'cortex-a73.cortex-a35', 'cortex-a73.cortex-a53', ! 'cortex-a75.cortex-a55', 'cortex-a76.cortex-a55' 'native'. The values 'cortex-a57.cortex-a53', 'cortex-a72.cortex-a53', 'cortex-a73.cortex-a35', 'cortex-a73.cortex-a53', 'cortex-a75.cortex-a55', 'cortex-a76.cortex-a55' specify that GCC should tune for a big.LITTLE system. Additionally on native AArch64 GNU/Linux systems the value 'native' tunes performance to the host system. This option has no effect if the compiler is unable to recognize the processor of the host --- 15053,15082 ---- are: 'generic', 'cortex-a35', 'cortex-a53', 'cortex-a55', 'cortex-a57', 'cortex-a72', 'cortex-a73', 'cortex-a75', 'cortex-a76', 'ares', 'exynos-m1', 'emag', 'falkor', 'neoverse-e1', ! 'neoverse-n1', 'neoverse-n2', 'neoverse-v1', 'neoverse-512tvb', ! 'qdf24xx', 'saphira', 'phecda', 'xgene1', 'vulcan', 'octeontx', ! 'octeontx81', 'octeontx83', 'a64fx', 'thunderx', 'thunderxt88', ! 'thunderxt88p1', 'thunderxt81', 'tsv110', 'thunderxt83', ! 'thunderx2t99', 'zeus', 'cortex-a57.cortex-a53', ! 'cortex-a72.cortex-a53', 'cortex-a73.cortex-a35', ! 'cortex-a73.cortex-a53', 'cortex-a75.cortex-a55', ! 'cortex-a76.cortex-a55' 'native'. The values 'cortex-a57.cortex-a53', 'cortex-a72.cortex-a53', 'cortex-a73.cortex-a35', 'cortex-a73.cortex-a53', 'cortex-a75.cortex-a55', 'cortex-a76.cortex-a55' specify that GCC should tune for a big.LITTLE system. + The value 'neoverse-512tvb' specifies that GCC should tune for + Neoverse cores that (a) implement SVE and (b) have a total vector + bandwidth of 512 bits per cycle. In other words, the option tells + GCC to tune for Neoverse cores that can execute 4 128-bit Advanced + SIMD arithmetic instructions a cycle and that can execute an + equivalent number of SVE arithmetic instructions per cycle (2 for + 256-bit SVE, 4 for 128-bit SVE). This is more general than tuning + for a specific core like Neoverse V1 but is more specific than the + default tuning described below. + Additionally on native AArch64 GNU/Linux systems the value 'native' tunes performance to the host system. This option has no effect if the compiler is unable to recognize the processor of the host *************** These options are defined for AArch64 im *** 15089,15094 **** --- 15104,15118 ---- or '-mtune', those options take precedence over the appropriate part of this option. + '-mcpu=neoverse-512tvb' is special in that it does not refer to a + specific core, but instead refers to all Neoverse cores that (a) + implement SVE and (b) have a total vector bandwidth of 512 bits a + cycle. Unless overridden by '-march', '-mcpu=neoverse-512tvb' + generates code that can run on a Neoverse V1 core, since Neoverse + V1 is the first Neoverse core with these properties. Unless + overridden by '-mtune', '-mcpu=neoverse-512tvb' tunes code in the + same way as for '-mtune=neoverse-512tvb'. + '-moverride=STRING' Override tuning decisions made by the back-end in response to a '-mtune=' switch. The syntax, semantics, and accepted values for *************** or combine them with constant text in a *** 26722,26729 **** Accumulate an option for '%X'. '%X' ! Output the accumulated linker options specified by '-Wl' or a '%x' ! spec string. '%Y' Output the accumulated assembler options specified by '-Wa'. --- 26746,26753 ---- Accumulate an option for '%X'. '%X' ! Output the accumulated linker options specified by a '%x' spec ! string. '%Y' Output the accumulated assembler options specified by '-Wa'. *************** such objects behave unspecified when bei *** 56162,56171 **** struct Base{ char *name; ! Base(char *n) : name(strdup(n)){} Base& operator= (const Base& other){ free (name); name = strdup (other.name); } }; --- 56186,56196 ---- struct Base{ char *name; ! Base(const char *n) : name(strdup(n)){} Base& operator= (const Base& other){ free (name); name = strdup (other.name); + return *this; } }; *************** in the example). *** 56197,56204 **** G++ implements the "intuitive" algorithm for copy-assignment: assign all direct bases, then assign all members. In that algorithm, the virtual base subobject can be encountered more than once. In the ! example, copying proceeds in the following order: 'val', 'name' (via ! 'strdup'), 'bval', and 'name' again. If application code relies on copy-assignment, a user-defined copy-assignment operator removes any uncertainties. With such an --- 56222,56229 ---- G++ implements the "intuitive" algorithm for copy-assignment: assign all direct bases, then assign all members. In that algorithm, the virtual base subobject can be encountered more than once. In the ! example, copying proceeds in the following order: 'name' (via 'strdup'), ! 'val', 'name' again, and 'bval'. If application code relies on copy-assignment, a user-defined copy-assignment operator removes any uncertainties. With such an *************** look up both forms. *** 59268,59274 **** * fallow-parameterless-variadic-functions: C Dialect Options. (line 243) * fasan-shadow-offset: Instrumentation Options. ! (line 404) * fasm: C Dialect Options. (line 250) * fassociative-math: Optimize Options. (line 2219) * fasynchronous-unwind-tables: Code Gen Options. (line 156) --- 59293,59299 ---- * fallow-parameterless-variadic-functions: C Dialect Options. (line 243) * fasan-shadow-offset: Instrumentation Options. ! (line 407) * fasm: C Dialect Options. (line 250) * fassociative-math: Optimize Options. (line 2219) * fasynchronous-unwind-tables: Code Gen Options. (line 156) *************** look up both forms. *** 59284,59290 **** * fcall-used: Code Gen Options. (line 440) * fcaller-saves: Optimize Options. (line 917) * fcf-protection: Instrumentation Options. ! (line 477) * fchar8_t: C++ Dialect Options. (line 115) * fcheck-new: C++ Dialect Options. --- 59309,59315 ---- * fcall-used: Code Gen Options. (line 440) * fcaller-saves: Optimize Options. (line 917) * fcf-protection: Instrumentation Options. ! (line 480) * fchar8_t: C++ Dialect Options. (line 115) * fcheck-new: C++ Dialect Options. *************** look up both forms. *** 59530,59542 **** * finput-charset: Preprocessor Options. (line 279) * finstrument-functions: Instrumentation Options. ! (line 670) * finstrument-functions <1>: Common Function Attributes. (line 620) * finstrument-functions-exclude-file-list: Instrumentation Options. ! (line 706) * finstrument-functions-exclude-function-list: Instrumentation Options. ! (line 727) * fipa-bit-cp: Optimize Options. (line 1048) * fipa-cp: Optimize Options. (line 1029) * fipa-cp-clone: Optimize Options. (line 1038) --- 59555,59567 ---- * finput-charset: Preprocessor Options. (line 279) * finstrument-functions: Instrumentation Options. ! (line 674) * finstrument-functions <1>: Common Function Attributes. (line 620) * finstrument-functions-exclude-file-list: Instrumentation Options. ! (line 710) * finstrument-functions-exclude-function-list: Instrumentation Options. ! (line 731) * fipa-bit-cp: Optimize Options. (line 1048) * fipa-cp: Optimize Options. (line 1029) * fipa-cp-clone: Optimize Options. (line 1038) *************** look up both forms. *** 59700,59708 **** * fno-rtti: C++ Dialect Options. (line 347) * fno-sanitize-recover: Instrumentation Options. ! (line 413) * fno-sanitize=all: Instrumentation Options. ! (line 398) * fno-sched-interblock: Optimize Options. (line 767) * fno-sched-spec: Optimize Options. (line 772) * fno-set-stack-executable: x86 Windows Options. --- 59725,59733 ---- * fno-rtti: C++ Dialect Options. (line 347) * fno-sanitize-recover: Instrumentation Options. ! (line 416) * fno-sanitize=all: Instrumentation Options. ! (line 401) * fno-sched-interblock: Optimize Options. (line 767) * fno-sched-spec: Optimize Options. (line 772) * fno-set-stack-executable: x86 Windows Options. *************** look up both forms. *** 59712,59718 **** * fno-signed-bitfields: C Dialect Options. (line 432) * fno-signed-zeros: Optimize Options. (line 2258) * fno-stack-limit: Instrumentation Options. ! (line 582) * fno-threadsafe-statics: C++ Dialect Options. (line 402) * fno-toplevel-reorder: Optimize Options. (line 1747) --- 59737,59743 ---- * fno-signed-bitfields: C Dialect Options. (line 432) * fno-signed-zeros: Optimize Options. (line 2258) * fno-stack-limit: Instrumentation Options. ! (line 586) * fno-threadsafe-statics: C++ Dialect Options. (line 402) * fno-toplevel-reorder: Optimize Options. (line 1747) *************** look up both forms. *** 59765,59771 **** * fpack-struct: Code Gen Options. (line 471) * fpartial-inlining: Optimize Options. (line 1470) * fpatchable-function-entry: Instrumentation Options. ! (line 739) * fpcc-struct-return: Code Gen Options. (line 175) * fpcc-struct-return <1>: Incompatibilities. (line 170) * fpch-deps: Preprocessor Options. --- 59790,59796 ---- * fpack-struct: Code Gen Options. (line 471) * fpartial-inlining: Optimize Options. (line 1470) * fpatchable-function-entry: Instrumentation Options. ! (line 743) * fpcc-struct-return: Code Gen Options. (line 175) * fpcc-struct-return <1>: Incompatibilities. (line 170) * fpch-deps: Preprocessor Options. *************** look up both forms. *** 59842,59916 **** * frtti: C++ Dialect Options. (line 347) * fsanitize-address-use-after-scope: Instrumentation Options. ! (line 449) * fsanitize-coverage=trace-cmp: Instrumentation Options. ! (line 464) * fsanitize-coverage=trace-pc: Instrumentation Options. ! (line 460) * fsanitize-recover: Instrumentation Options. ! (line 413) * fsanitize-sections: Instrumentation Options. ! (line 409) * fsanitize-undefined-trap-on-error: Instrumentation Options. ! (line 453) * fsanitize=address: Instrumentation Options. (line 187) * fsanitize=alignment: Instrumentation Options. ! (line 324) * fsanitize=bool: Instrumentation Options. ! (line 362) * fsanitize=bounds: Instrumentation Options. ! (line 311) * fsanitize=bounds-strict: Instrumentation Options. ! (line 317) * fsanitize=builtin: Instrumentation Options. ! (line 386) * fsanitize=enum: Instrumentation Options. ! (line 367) * fsanitize=float-cast-overflow: Instrumentation Options. ! (line 342) * fsanitize=float-divide-by-zero: Instrumentation Options. ! (line 336) * fsanitize=integer-divide-by-zero: Instrumentation Options. ! (line 274) * fsanitize=kernel-address: Instrumentation Options. (line 201) * fsanitize=leak: Instrumentation Options. (line 239) * fsanitize=nonnull-attribute: Instrumentation Options. ! (line 350) * fsanitize=null: Instrumentation Options. ! (line 288) * fsanitize=object-size: Instrumentation Options. ! (line 331) * fsanitize=pointer-compare: Instrumentation Options. (line 205) * fsanitize=pointer-overflow: Instrumentation Options. ! (line 380) * fsanitize=pointer-subtract: Instrumentation Options. (line 215) * fsanitize=return: Instrumentation Options. ! (line 296) * fsanitize=returns-nonnull-attribute: Instrumentation Options. ! (line 356) * fsanitize=shift: Instrumentation Options. ! (line 254) * fsanitize=shift-base: Instrumentation Options. ! (line 267) * fsanitize=shift-exponent: Instrumentation Options. ! (line 262) * fsanitize=signed-integer-overflow: Instrumentation Options. ! (line 302) * fsanitize=thread: Instrumentation Options. (line 225) * fsanitize=undefined: Instrumentation Options. (line 249) * fsanitize=unreachable: Instrumentation Options. ! (line 278) * fsanitize=vla-bound: Instrumentation Options. ! (line 284) * fsanitize=vptr: Instrumentation Options. ! (line 373) * fsave-optimization-record: Developer Options. (line 565) * fsched-critical-path-heuristic: Optimize Options. (line 832) * fsched-dep-count-heuristic: Optimize Options. (line 859) --- 59867,59941 ---- * frtti: C++ Dialect Options. (line 347) * fsanitize-address-use-after-scope: Instrumentation Options. ! (line 452) * fsanitize-coverage=trace-cmp: Instrumentation Options. ! (line 467) * fsanitize-coverage=trace-pc: Instrumentation Options. ! (line 463) * fsanitize-recover: Instrumentation Options. ! (line 416) * fsanitize-sections: Instrumentation Options. ! (line 412) * fsanitize-undefined-trap-on-error: Instrumentation Options. ! (line 456) * fsanitize=address: Instrumentation Options. (line 187) * fsanitize=alignment: Instrumentation Options. ! (line 327) * fsanitize=bool: Instrumentation Options. ! (line 365) * fsanitize=bounds: Instrumentation Options. ! (line 314) * fsanitize=bounds-strict: Instrumentation Options. ! (line 320) * fsanitize=builtin: Instrumentation Options. ! (line 389) * fsanitize=enum: Instrumentation Options. ! (line 370) * fsanitize=float-cast-overflow: Instrumentation Options. ! (line 345) * fsanitize=float-divide-by-zero: Instrumentation Options. ! (line 339) * fsanitize=integer-divide-by-zero: Instrumentation Options. ! (line 277) * fsanitize=kernel-address: Instrumentation Options. (line 201) * fsanitize=leak: Instrumentation Options. (line 239) * fsanitize=nonnull-attribute: Instrumentation Options. ! (line 353) * fsanitize=null: Instrumentation Options. ! (line 291) * fsanitize=object-size: Instrumentation Options. ! (line 334) * fsanitize=pointer-compare: Instrumentation Options. (line 205) * fsanitize=pointer-overflow: Instrumentation Options. ! (line 383) * fsanitize=pointer-subtract: Instrumentation Options. (line 215) * fsanitize=return: Instrumentation Options. ! (line 299) * fsanitize=returns-nonnull-attribute: Instrumentation Options. ! (line 359) * fsanitize=shift: Instrumentation Options. ! (line 257) * fsanitize=shift-base: Instrumentation Options. ! (line 270) * fsanitize=shift-exponent: Instrumentation Options. ! (line 265) * fsanitize=signed-integer-overflow: Instrumentation Options. ! (line 305) * fsanitize=thread: Instrumentation Options. (line 225) * fsanitize=undefined: Instrumentation Options. (line 249) * fsanitize=unreachable: Instrumentation Options. ! (line 281) * fsanitize=vla-bound: Instrumentation Options. ! (line 287) * fsanitize=vptr: Instrumentation Options. ! (line 376) * fsave-optimization-record: Developer Options. (line 565) * fsched-critical-path-heuristic: Optimize Options. (line 832) * fsched-dep-count-heuristic: Optimize Options. (line 859) *************** look up both forms. *** 59964,59970 **** * fsplit-loops: Optimize Options. (line 2466) * fsplit-paths: Optimize Options. (line 1446) * fsplit-stack: Instrumentation Options. ! (line 599) * fsplit-stack <1>: Common Function Attributes. (line 670) * fsplit-wide-types: Optimize Options. (line 463) --- 59989,59995 ---- * fsplit-loops: Optimize Options. (line 2466) * fsplit-paths: Optimize Options. (line 1446) * fsplit-stack: Instrumentation Options. ! (line 603) * fsplit-stack <1>: Common Function Attributes. (line 670) * fsplit-wide-types: Optimize Options. (line 463) *************** look up both forms. *** 59972,59992 **** * fssa-phiopt: Optimize Options. (line 1170) * fsso-struct: C Dialect Options. (line 438) * fstack-check: Instrumentation Options. ! (line 525) * fstack-clash-protection: Instrumentation Options. ! (line 567) * fstack-limit-register: Instrumentation Options. ! (line 582) * fstack-limit-symbol: Instrumentation Options. ! (line 582) * fstack-protector: Instrumentation Options. ! (line 504) * fstack-protector-all: Instrumentation Options. ! (line 513) * fstack-protector-explicit: Instrumentation Options. ! (line 521) * fstack-protector-strong: Instrumentation Options. ! (line 516) * fstack-usage: Developer Options. (line 880) * fstack_reuse: Code Gen Options. (line 15) * fstats: Developer Options. (line 909) --- 59997,60017 ---- * fssa-phiopt: Optimize Options. (line 1170) * fsso-struct: C Dialect Options. (line 438) * fstack-check: Instrumentation Options. ! (line 529) * fstack-clash-protection: Instrumentation Options. ! (line 571) * fstack-limit-register: Instrumentation Options. ! (line 586) * fstack-limit-symbol: Instrumentation Options. ! (line 586) * fstack-protector: Instrumentation Options. ! (line 508) * fstack-protector-all: Instrumentation Options. ! (line 517) * fstack-protector-explicit: Instrumentation Options. ! (line 525) * fstack-protector-strong: Instrumentation Options. ! (line 520) * fstack-usage: Developer Options. (line 880) * fstack_reuse: Code Gen Options. (line 15) * fstats: Developer Options. (line 909) *************** look up both forms. *** 60093,60103 **** (line 448) * fvpt: Optimize Options. (line 2401) * fvtable-verify: Instrumentation Options. ! (line 617) * fvtv-counts: Instrumentation Options. ! (line 653) * fvtv-debug: Instrumentation Options. ! (line 640) * fweak: C++ Dialect Options. (line 477) * fweb: Optimize Options. (line 1760) --- 60118,60128 ---- (line 448) * fvpt: Optimize Options. (line 2401) * fvtable-verify: Instrumentation Options. ! (line 621) * fvtv-counts: Instrumentation Options. ! (line 657) * fvtv-debug: Instrumentation Options. ! (line 644) * fweak: C++ Dialect Options. (line 477) * fweb: Optimize Options. (line 1760) *************** look up both forms. *** 60465,60471 **** * mbranch-index: ARC Options. (line 329) * mbranch-likely: MIPS Options. (line 792) * mbranch-predict: MMIX Options. (line 48) ! * mbranch-protection: AArch64 Options. (line 276) * mbss-plt: RS/6000 and PowerPC Options. (line 165) * mbuild-constants: DEC Alpha Options. (line 141) --- 60490,60496 ---- * mbranch-index: ARC Options. (line 329) * mbranch-likely: MIPS Options. (line 792) * mbranch-predict: MMIX Options. (line 48) ! * mbranch-protection: AArch64 Options. (line 296) * mbss-plt: RS/6000 and PowerPC Options. (line 165) * mbuild-constants: DEC Alpha Options. (line 141) *************** look up both forms. *** 60567,60573 **** * mcorea: Blackfin Options. (line 154) * mcoreb: Blackfin Options. (line 161) * mcp: C-SKY Options. (line 74) ! * mcpu: AArch64 Options. (line 232) * mcpu <1>: ARC Options. (line 18) * mcpu <2>: ARM Options. (line 526) * mcpu <3>: CRIS Options. (line 10) --- 60592,60598 ---- * mcorea: Blackfin Options. (line 154) * mcoreb: Blackfin Options. (line 161) * mcp: C-SKY Options. (line 74) ! * mcpu: AArch64 Options. (line 243) * mcpu <1>: ARC Options. (line 18) * mcpu <2>: ARM Options. (line 526) * mcpu <3>: CRIS Options. (line 10) *************** look up both forms. *** 60854,60860 **** * mhard-float <10>: x86 Options. (line 511) * mhard-mul: OpenRISC Options. (line 20) * mhard-quad-float: SPARC Options. (line 55) ! * mharden-sls: AArch64 Options. (line 288) * mhardlit: MCore Options. (line 10) * mhigh-registers: C-SKY Options. (line 104) * mhint-max-distance: SPU Options. (line 107) --- 60879,60885 ---- * mhard-float <10>: x86 Options. (line 511) * mhard-mul: OpenRISC Options. (line 20) * mhard-quad-float: SPARC Options. (line 55) ! * mharden-sls: AArch64 Options. (line 308) * mhardlit: MCore Options. (line 10) * mhigh-registers: C-SKY Options. (line 104) * mhint-max-distance: SPU Options. (line 107) *************** look up both forms. *** 61324,61330 **** * mno-packed-stack: S/390 and zSeries Options. (line 54) * mno-paired-single: MIPS Options. (line 370) ! * mno-pc-relative-literal-loads: AArch64 Options. (line 262) * mno-pic: IA-64 Options. (line 26) * mno-pid: RX Options. (line 117) * mno-plt: MIPS Options. (line 219) --- 61349,61355 ---- * mno-packed-stack: S/390 and zSeries Options. (line 54) * mno-paired-single: MIPS Options. (line 370) ! * mno-pc-relative-literal-loads: AArch64 Options. (line 282) * mno-pic: IA-64 Options. (line 26) * mno-pid: RX Options. (line 117) * mno-plt: MIPS Options. (line 219) *************** look up both forms. *** 61484,61490 **** * moptimize: Nvidia PTX Options. (line 22) * moptimize-membar: FRV Options. (line 244) * moptimize-membar <1>: FRV Options. (line 249) ! * moverride: AArch64 Options. (line 249) * MP: Preprocessor Options. (line 132) * mpa-risc-1-0: HPPA Options. (line 19) --- 61509,61515 ---- * moptimize: Nvidia PTX Options. (line 22) * moptimize-membar: FRV Options. (line 244) * moptimize-membar <1>: FRV Options. (line 249) ! * moverride: AArch64 Options. (line 269) * MP: Preprocessor Options. (line 132) * mpa-risc-1-0: HPPA Options. (line 19) *************** look up both forms. *** 61495,61501 **** (line 54) * mpadstruct: SH Options. (line 189) * mpaired-single: MIPS Options. (line 370) ! * mpc-relative-literal-loads: AArch64 Options. (line 262) * mpc32: x86 Options. (line 673) * mpc64: x86 Options. (line 673) * mpc80: x86 Options. (line 673) --- 61520,61526 ---- (line 54) * mpadstruct: SH Options. (line 189) * mpaired-single: MIPS Options. (line 370) ! * mpc-relative-literal-loads: AArch64 Options. (line 282) * mpc32: x86 Options. (line 673) * mpc64: x86 Options. (line 673) * mpc80: x86 Options. (line 673) *************** look up both forms. *** 61705,61711 **** * mshstk: x86 Options. (line 934) * mside-effects: CRIS Options. (line 46) * msign-extend-enabled: LM32 Options. (line 18) ! * msign-return-address: AArch64 Options. (line 268) * msilicon-errata: MSP430 Options. (line 102) * msilicon-errata-warn: MSP430 Options. (line 106) * msim: Blackfin Options. (line 36) --- 61730,61736 ---- * mshstk: x86 Options. (line 934) * mside-effects: CRIS Options. (line 46) * msign-extend-enabled: LM32 Options. (line 18) ! * msign-return-address: AArch64 Options. (line 288) * msilicon-errata: MSP430 Options. (line 102) * msilicon-errata-warn: MSP430 Options. (line 106) * msim: Blackfin Options. (line 36) *************** look up both forms. *** 61841,61847 **** * mstructure-size-boundary: ARM Options. (line 639) * msubxc: SPARC Options. (line 288) * msv-mode: Visium Options. (line 52) ! * msve-vector-bits: AArch64 Options. (line 296) * msvr4-struct-return: RS/6000 and PowerPC Options. (line 553) * mswap: ARC Options. (line 152) --- 61866,61872 ---- * mstructure-size-boundary: ARM Options. (line 639) * msubxc: SPARC Options. (line 288) * msv-mode: Visium Options. (line 52) ! * msve-vector-bits: AArch64 Options. (line 316) * msvr4-struct-return: RS/6000 and PowerPC Options. (line 553) * mswap: ARC Options. (line 152) *************** look up both forms. *** 61954,61960 **** * mvect-double: Adapteva Epiphany Options. (line 115) * mvect8-ret-in-mem: x86 Options. (line 661) ! * mverbose-cost-dump: AArch64 Options. (line 257) * mverbose-cost-dump <1>: ARM Options. (line 846) * mvirt: MIPS Options. (line 407) * mvis: SPARC Options. (line 221) --- 61979,61985 ---- * mvect-double: Adapteva Epiphany Options. (line 115) * mvect8-ret-in-mem: x86 Options. (line 661) ! * mverbose-cost-dump: AArch64 Options. (line 277) * mverbose-cost-dump <1>: ARM Options. (line 846) * mvirt: MIPS Options. (line 407) * mvis: SPARC Options. (line 221) *************** Keyword Index *** 62844,62851 **** * + in constraint: Modifiers. (line 12) * -lgcc, use with -nodefaultlibs: Link Options. (line 155) * -lgcc, use with -nostdlib: Link Options. (line 155) ! * -march feature modifiers: AArch64 Options. (line 318) ! * -mcpu feature modifiers: AArch64 Options. (line 318) * -nodefaultlibs and unresolved references: Link Options. (line 155) * -nostdlib and unresolved references: Link Options. (line 155) * .sdata/.sdata2 references (PowerPC): RS/6000 and PowerPC Options. --- 62869,62876 ---- * + in constraint: Modifiers. (line 12) * -lgcc, use with -nodefaultlibs: Link Options. (line 155) * -lgcc, use with -nostdlib: Link Options. (line 155) ! * -march feature modifiers: AArch64 Options. (line 338) ! * -mcpu feature modifiers: AArch64 Options. (line 338) * -nodefaultlibs and unresolved references: Link Options. (line 155) * -nostdlib and unresolved references: Link Options. (line 155) * .sdata/.sdata2 references (PowerPC): RS/6000 and PowerPC Options. *************** Node: C++ Dialect Options113185 *** 65484,65892 **** Node: Objective-C and Objective-C++ Dialect Options156560 Node: Diagnostic Message Formatting Options167790 Node: Warning Options184428 ! Ref: Wtrigraphs276997 ! Node: Debugging Options315548 ! Node: Optimize Options334739 ! Ref: Type-punning403539 ! Node: Instrumentation Options503527 ! Node: Preprocessor Options540568 ! Ref: dashMF545415 ! Ref: fdollars-in-identifiers549994 ! Node: Assembler Options562244 ! Node: Link Options562935 ! Ref: Link Options-Footnote-1579932 ! Node: Directory Options580268 ! Node: Code Gen Options588671 ! Node: Developer Options617357 ! Node: Submodel Options658492 ! Node: AArch64 Options660285 ! Ref: aarch64-feature-modifiers674592 ! Node: Adapteva Epiphany Options678272 ! Node: AMD GCN Options684224 ! Node: ARC Options685050 ! Node: ARM Options706262 ! Node: AVR Options742776 ! Node: Blackfin Options767367 ! Node: C6X Options775259 ! Node: CRIS Options776802 ! Node: CR16 Options780541 ! Node: C-SKY Options781453 ! Node: Darwin Options786313 ! Node: DEC Alpha Options793754 ! Node: FR30 Options805370 ! Node: FT32 Options805935 ! Node: FRV Options806881 ! Node: GNU/Linux Options813645 ! Node: H8/300 Options815026 ! Node: HPPA Options816478 ! Node: IA-64 Options826010 ! Node: LM32 Options834138 ! Node: M32C Options834661 ! Node: M32R/D Options835934 ! Node: M680x0 Options839479 ! Node: MCore Options853564 ! Node: MeP Options855066 ! Node: MicroBlaze Options859026 ! Node: MIPS Options862116 ! Node: MMIX Options898655 ! Node: MN10300 Options901132 ! Node: Moxie Options903675 ! Node: MSP430 Options904162 ! Node: NDS32 Options908866 ! Node: Nios II Options911036 ! Node: Nvidia PTX Options923198 ! Node: OpenRISC Options925667 ! Node: PDP-11 Options927163 ! Node: picoChip Options928412 ! Node: PowerPC Options930550 ! Node: RISC-V Options930773 ! Node: RL78 Options935998 ! Node: RS/6000 and PowerPC Options939773 ! Node: RX Options980385 ! Node: S/390 and zSeries Options988987 ! Node: Score Options999366 ! Node: SH Options1000215 ! Node: Solaris 2 Options1015355 ! Node: SPARC Options1016593 ! Node: SPU Options1032214 ! Node: System V Options1037153 ! Node: TILE-Gx Options1037979 ! Node: TILEPro Options1038997 ! Node: V850 Options1039501 ! Node: VAX Options1046188 ! Node: Visium Options1046726 ! Node: VMS Options1049034 ! Node: VxWorks Options1049850 ! Node: x86 Options1051002 ! Node: x86 Windows Options1112888 ! Node: Xstormy16 Options1115693 ! Node: Xtensa Options1115987 ! Node: zSeries Options1121136 ! Node: Spec Files1121332 ! Node: Environment Variables1143490 ! Node: Precompiled Headers1152216 ! Node: C Implementation1158222 ! Node: Translation implementation1159912 ! Node: Environment implementation1160503 ! Node: Identifiers implementation1161057 ! Node: Characters implementation1162143 ! Node: Integers implementation1165793 ! Node: Floating point implementation1167842 ! Node: Arrays and pointers implementation1170905 ! Ref: Arrays and pointers implementation-Footnote-11172365 ! Node: Hints implementation1172491 ! Node: Structures unions enumerations and bit-fields implementation1173986 ! Node: Qualifiers implementation1176210 ! Node: Declarators implementation1177989 ! Node: Statements implementation1178330 ! Node: Preprocessing directives implementation1178656 ! Node: Library functions implementation1180977 ! Node: Architecture implementation1181626 ! Node: Locale-specific behavior implementation1183271 ! Node: C++ Implementation1183576 ! Node: Conditionally-supported behavior1184859 ! Node: Exception handling1185476 ! Node: C Extensions1185943 ! Node: Statement Exprs1191147 ! Node: Local Labels1196519 ! Node: Labels as Values1199492 ! Ref: Labels as Values-Footnote-11202019 ! Node: Nested Functions1202204 ! Node: Nonlocal Gotos1206158 ! Node: Constructing Calls1208424 ! Node: Typeof1213139 ! Node: Conditionals1217068 ! Node: __int1281217957 ! Node: Long Long1218482 ! Node: Complex1219973 ! Node: Floating Types1222741 ! Node: Half-Precision1226208 ! Node: Decimal Float1228619 ! Node: Hex Floats1230473 ! Node: Fixed-Point1231547 ! Node: Named Address Spaces1234805 ! Ref: AVR Named Address Spaces1235491 ! Node: Zero Length1242514 ! Node: Empty Structures1246695 ! Node: Variable Length1247101 ! Node: Variadic Macros1249819 ! Node: Escaped Newlines1252197 ! Node: Subscripting1253058 ! Node: Pointer Arith1253783 ! Node: Variadic Pointer Args1254360 ! Node: Pointers to Arrays1255085 ! Node: Initializers1255838 ! Node: Compound Literals1256339 ! Node: Designated Inits1259906 ! Node: Case Ranges1263830 ! Node: Cast to Union1264511 ! Node: Mixed Declarations1266234 ! Node: Function Attributes1266744 ! Node: Common Function Attributes1271200 ! Node: AArch64 Function Attributes1329856 ! Node: AMD GCN Function Attributes1336050 ! Node: ARC Function Attributes1339103 ! Node: ARM Function Attributes1341425 ! Node: AVR Function Attributes1346564 ! Node: Blackfin Function Attributes1351099 ! Node: CR16 Function Attributes1353597 ! Node: C-SKY Function Attributes1354121 ! Node: Epiphany Function Attributes1355418 ! Node: H8/300 Function Attributes1358173 ! Node: IA-64 Function Attributes1359371 ! Node: M32C Function Attributes1360413 ! Node: M32R/D Function Attributes1362751 ! Node: m68k Function Attributes1364225 ! Node: MCORE Function Attributes1365169 ! Node: MeP Function Attributes1365980 ! Node: MicroBlaze Function Attributes1367281 ! Node: Microsoft Windows Function Attributes1368788 ! Node: MIPS Function Attributes1373357 ! Node: MSP430 Function Attributes1378975 ! Node: NDS32 Function Attributes1383028 ! Node: Nios II Function Attributes1385452 ! Node: Nvidia PTX Function Attributes1386749 ! Node: PowerPC Function Attributes1387364 ! Node: RISC-V Function Attributes1394419 ! Node: RL78 Function Attributes1395835 ! Node: RX Function Attributes1397074 ! Node: S/390 Function Attributes1399621 ! Node: SH Function Attributes1401449 ! Node: SPU Function Attributes1404870 ! Node: Symbian OS Function Attributes1405678 ! Node: V850 Function Attributes1406015 ! Node: Visium Function Attributes1406560 ! Node: x86 Function Attributes1407088 ! Node: Xstormy16 Function Attributes1429577 ! Node: Variable Attributes1430084 ! Node: Common Variable Attributes1431645 ! Node: ARC Variable Attributes1449446 ! Node: AVR Variable Attributes1449828 ! Node: Blackfin Variable Attributes1454990 ! Node: H8/300 Variable Attributes1455848 ! Node: IA-64 Variable Attributes1456921 ! Node: M32R/D Variable Attributes1457672 ! Node: MeP Variable Attributes1458455 ! Node: Microsoft Windows Variable Attributes1460548 ! Node: MSP430 Variable Attributes1463001 ! Node: Nvidia PTX Variable Attributes1464202 ! Node: PowerPC Variable Attributes1464819 ! Node: RL78 Variable Attributes1465376 ! Node: SPU Variable Attributes1465794 ! Node: V850 Variable Attributes1466159 ! Node: x86 Variable Attributes1466791 ! Node: Xstormy16 Variable Attributes1467847 ! Node: Type Attributes1468417 ! Node: Common Type Attributes1470105 ! Node: ARC Type Attributes1491597 ! Node: ARM Type Attributes1492069 ! Node: MeP Type Attributes1492851 ! Node: PowerPC Type Attributes1493253 ! Node: SPU Type Attributes1494242 ! Node: x86 Type Attributes1494661 ! Node: Label Attributes1495649 ! Node: Enumerator Attributes1497582 ! Node: Statement Attributes1498901 ! Node: Attribute Syntax1500384 ! Node: Function Prototypes1511642 ! Node: C++ Comments1513422 ! Node: Dollar Signs1513941 ! Node: Character Escapes1514406 ! Node: Alignment1514690 ! Node: Inline1516343 ! Node: Volatiles1521160 ! Node: Using Assembly Language with C1524059 ! Node: Basic Asm1525296 ! Node: Extended Asm1530746 ! Ref: Volatile1534845 ! Ref: AssemblerTemplate1538965 ! Ref: OutputOperands1543205 ! Ref: FlagOutputOperands1550168 ! Ref: InputOperands1552209 ! Ref: Clobbers and Scratch Registers1556477 ! Ref: GotoLabels1565118 ! Ref: x86Operandmodifiers1567253 ! Ref: x86floatingpointasmoperands1570410 ! Node: Constraints1573739 ! Node: Simple Constraints1574845 ! Node: Multi-Alternative1582159 ! Node: Modifiers1583834 ! Node: Machine Constraints1586632 ! Node: Asm Labels1649826 ! Node: Explicit Register Variables1651446 ! Ref: Explicit Reg Vars1651660 ! Node: Global Register Variables1652269 ! Ref: Global Reg Vars1652477 ! Node: Local Register Variables1657259 ! Ref: Local Reg Vars1657479 ! Node: Size of an asm1661107 ! Node: Alternate Keywords1662585 ! Node: Incomplete Enums1664084 ! Node: Function Names1664841 ! Node: Return Address1666739 ! Node: Vector Extensions1671329 ! Node: Offsetof1681094 ! Node: __sync Builtins1681927 ! Node: __atomic Builtins1688370 ! Node: Integer Overflow Builtins1701995 ! Node: x86 specific memory model extensions for transactional memory1708478 ! Node: Object Size Checking1709744 ! Node: Other Builtins1716000 ! Node: Target Builtins1765228 ! Node: AArch64 Built-in Functions1766892 ! Node: Alpha Built-in Functions1767347 ! Node: Altera Nios II Built-in Functions1770395 ! Node: ARC Built-in Functions1774764 ! Node: ARC SIMD Built-in Functions1779976 ! Node: ARM iWMMXt Built-in Functions1788872 ! Node: ARM C Language Extensions (ACLE)1795868 ! Node: ARM Floating Point Status and Control Intrinsics1797145 ! Node: ARM ARMv8-M Security Extensions1797630 ! Node: AVR Built-in Functions1798910 ! Node: Blackfin Built-in Functions1802671 ! Node: FR-V Built-in Functions1803290 ! Node: Argument Types1804158 ! Node: Directly-mapped Integer Functions1805912 ! Node: Directly-mapped Media Functions1806996 ! Node: Raw read/write Functions1815202 ! Node: Other Built-in Functions1816110 ! Node: MIPS DSP Built-in Functions1817296 ! Node: MIPS Paired-Single Support1829793 ! Node: MIPS Loongson Built-in Functions1831292 ! Node: Paired-Single Arithmetic1837814 ! Node: Paired-Single Built-in Functions1838762 ! Node: MIPS-3D Built-in Functions1841429 ! Node: MIPS SIMD Architecture (MSA) Support1846823 ! Node: MIPS SIMD Architecture Built-in Functions1849663 ! Node: Other MIPS Built-in Functions1876493 ! Node: MSP430 Built-in Functions1877502 ! Node: NDS32 Built-in Functions1878903 ! Node: picoChip Built-in Functions1880196 ! Node: Basic PowerPC Built-in Functions1881545 ! Node: Basic PowerPC Built-in Functions Available on all Configurations1882345 ! Node: Basic PowerPC Built-in Functions Available on ISA 2.051890400 ! Node: Basic PowerPC Built-in Functions Available on ISA 2.061895259 ! Node: Basic PowerPC Built-in Functions Available on ISA 2.071897339 ! Node: Basic PowerPC Built-in Functions Available on ISA 3.01898193 ! Node: PowerPC AltiVec/VSX Built-in Functions1905109 ! Node: PowerPC AltiVec Built-in Functions on ISA 2.051908783 ! Node: PowerPC AltiVec Built-in Functions Available on ISA 2.061998021 ! Node: PowerPC AltiVec Built-in Functions Available on ISA 2.072022466 ! Node: PowerPC AltiVec Built-in Functions Available on ISA 3.02043670 ! Node: PowerPC Hardware Transactional Memory Built-in Functions2078806 ! Node: PowerPC Atomic Memory Operation Functions2087321 ! Node: RX Built-in Functions2089856 ! Node: S/390 System z Built-in Functions2093874 ! Node: SH Built-in Functions2099104 ! Node: SPARC VIS Built-in Functions2100832 ! Node: SPU Built-in Functions2109361 ! Node: TI C6X Built-in Functions2111078 ! Node: TILE-Gx Built-in Functions2112103 ! Node: TILEPro Built-in Functions2113222 ! Node: x86 Built-in Functions2114322 ! Node: x86 transactional memory intrinsics2178069 ! Node: x86 control-flow protection intrinsics2181336 ! Node: Target Format Checks2183107 ! Node: Solaris Format Checks2183539 ! Node: Darwin Format Checks2183965 ! Node: Pragmas2184928 ! Node: AArch64 Pragmas2185853 ! Node: ARM Pragmas2186310 ! Node: M32C Pragmas2186937 ! Node: MeP Pragmas2188009 ! Node: RS/6000 and PowerPC Pragmas2190077 ! Node: S/390 Pragmas2190817 ! Node: Darwin Pragmas2191383 ! Node: Solaris Pragmas2192436 ! Node: Symbol-Renaming Pragmas2193600 ! Node: Structure-Layout Pragmas2195235 ! Node: Weak Pragmas2197515 ! Node: Diagnostic Pragmas2198250 ! Node: Visibility Pragmas2202441 ! Node: Push/Pop Macro Pragmas2203126 ! Node: Function Specific Option Pragmas2204099 ! Node: Loop-Specific Pragmas2206065 ! Node: Unnamed Fields2207665 ! Node: Thread-Local2209862 ! Node: C99 Thread-Local Edits2211968 ! Node: C++98 Thread-Local Edits2213966 ! Node: Binary constants2217411 ! Node: C++ Extensions2218082 ! Node: C++ Volatiles2219712 ! Node: Restricted Pointers2222060 ! Node: Vague Linkage2223651 ! Node: C++ Interface2227274 ! Ref: C++ Interface-Footnote-12231071 ! Node: Template Instantiation2231209 ! Node: Bound member functions2238692 ! Node: C++ Attributes2240224 ! Node: Function Multiversioning2244296 ! Node: Type Traits2246103 ! Node: C++ Concepts2253053 ! Node: Deprecated Features2254559 ! Node: Backwards Compatibility2256384 ! Node: Objective-C2257456 ! Node: GNU Objective-C runtime API2258063 ! Node: Modern GNU Objective-C runtime API2259070 ! Node: Traditional GNU Objective-C runtime API2261506 ! Node: Executing code before main2262233 ! Node: What you can and what you cannot do in +load2264977 ! Node: Type encoding2267347 ! Node: Legacy type encoding2272488 ! Node: @encode2273578 ! Node: Method signatures2274123 ! Node: Garbage Collection2276115 ! Node: Constant string objects2278805 ! Node: compatibility_alias2281314 ! Node: Exceptions2282039 ! Node: Synchronization2284749 ! Node: Fast enumeration2285933 ! Node: Using fast enumeration2286245 ! Node: c99-like fast enumeration syntax2287456 ! Node: Fast enumeration details2288159 ! Node: Fast enumeration protocol2290499 ! Node: Messaging with the GNU Objective-C runtime2293651 ! Node: Dynamically registering methods2295023 ! Node: Forwarding hook2296714 ! Node: Compatibility2299754 ! Node: Gcov2306310 ! Node: Gcov Intro2306845 ! Node: Invoking Gcov2309563 ! Node: Gcov and Optimization2332398 ! Node: Gcov Data Files2336141 ! Node: Cross-profiling2337550 ! Node: Gcov-tool2339404 ! Node: Gcov-tool Intro2339829 ! Node: Invoking Gcov-tool2341799 ! Node: Gcov-dump2344377 ! Node: Gcov-dump Intro2344699 ! Node: Invoking Gcov-dump2344966 ! Node: Trouble2345567 ! Node: Actual Bugs2346985 ! Node: Interoperation2347432 ! Node: Incompatibilities2354323 ! Node: Fixed Headers2362475 ! Node: Standard Libraries2364133 ! Node: Disappointments2365505 ! Node: C++ Misunderstandings2369864 ! Node: Static Definitions2370675 ! Node: Name lookup2371728 ! Ref: Name lookup-Footnote-12376509 ! Node: Temporaries2376698 ! Node: Copy Assignment2378674 ! Node: Non-bugs2380481 ! Node: Warnings and Errors2390987 ! Node: Bugs2392749 ! Node: Bug Criteria2393216 ! Node: Bug Reporting2395426 ! Node: Service2395644 ! Node: Contributing2396464 ! Node: Funding2397205 ! Node: GNU Project2399695 ! Node: Copying2400341 ! Node: GNU Free Documentation License2437850 ! Node: Contributors2462968 ! Node: Option Index2503941 ! Node: Keyword Index2767493  End Tag Table --- 65509,65917 ---- Node: Objective-C and Objective-C++ Dialect Options156560 Node: Diagnostic Message Formatting Options167790 Node: Warning Options184428 ! Ref: Wtrigraphs277015 ! Node: Debugging Options315566 ! Node: Optimize Options334757 ! Ref: Type-punning403557 ! Node: Instrumentation Options503545 ! Node: Preprocessor Options540820 ! Ref: dashMF545667 ! Ref: fdollars-in-identifiers550246 ! Node: Assembler Options562496 ! Node: Link Options563187 ! Ref: Link Options-Footnote-1580184 ! Node: Directory Options580520 ! Node: Code Gen Options588923 ! Node: Developer Options617609 ! Node: Submodel Options658744 ! Node: AArch64 Options660537 ! Ref: aarch64-feature-modifiers676005 ! Node: Adapteva Epiphany Options679685 ! Node: AMD GCN Options685637 ! Node: ARC Options686463 ! Node: ARM Options707675 ! Node: AVR Options744189 ! Node: Blackfin Options768780 ! Node: C6X Options776672 ! Node: CRIS Options778215 ! Node: CR16 Options781954 ! Node: C-SKY Options782866 ! Node: Darwin Options787726 ! Node: DEC Alpha Options795167 ! Node: FR30 Options806783 ! Node: FT32 Options807348 ! Node: FRV Options808294 ! Node: GNU/Linux Options815058 ! Node: H8/300 Options816439 ! Node: HPPA Options817891 ! Node: IA-64 Options827423 ! Node: LM32 Options835551 ! Node: M32C Options836074 ! Node: M32R/D Options837347 ! Node: M680x0 Options840892 ! Node: MCore Options854977 ! Node: MeP Options856479 ! Node: MicroBlaze Options860439 ! Node: MIPS Options863529 ! Node: MMIX Options900068 ! Node: MN10300 Options902545 ! Node: Moxie Options905088 ! Node: MSP430 Options905575 ! Node: NDS32 Options910279 ! Node: Nios II Options912449 ! Node: Nvidia PTX Options924611 ! Node: OpenRISC Options927080 ! Node: PDP-11 Options928576 ! Node: picoChip Options929825 ! Node: PowerPC Options931963 ! Node: RISC-V Options932186 ! Node: RL78 Options937411 ! Node: RS/6000 and PowerPC Options941186 ! Node: RX Options981798 ! Node: S/390 and zSeries Options990400 ! Node: Score Options1000779 ! Node: SH Options1001628 ! Node: Solaris 2 Options1016768 ! Node: SPARC Options1018006 ! Node: SPU Options1033627 ! Node: System V Options1038566 ! Node: TILE-Gx Options1039392 ! Node: TILEPro Options1040410 ! Node: V850 Options1040914 ! Node: VAX Options1047601 ! Node: Visium Options1048139 ! Node: VMS Options1050447 ! Node: VxWorks Options1051263 ! Node: x86 Options1052415 ! Node: x86 Windows Options1114301 ! Node: Xstormy16 Options1117106 ! Node: Xtensa Options1117400 ! Node: zSeries Options1122549 ! Node: Spec Files1122745 ! Node: Environment Variables1144894 ! Node: Precompiled Headers1153620 ! Node: C Implementation1159626 ! Node: Translation implementation1161316 ! Node: Environment implementation1161907 ! Node: Identifiers implementation1162461 ! Node: Characters implementation1163547 ! Node: Integers implementation1167197 ! Node: Floating point implementation1169246 ! Node: Arrays and pointers implementation1172309 ! Ref: Arrays and pointers implementation-Footnote-11173769 ! Node: Hints implementation1173895 ! Node: Structures unions enumerations and bit-fields implementation1175390 ! Node: Qualifiers implementation1177614 ! Node: Declarators implementation1179393 ! Node: Statements implementation1179734 ! Node: Preprocessing directives implementation1180060 ! Node: Library functions implementation1182381 ! Node: Architecture implementation1183030 ! Node: Locale-specific behavior implementation1184675 ! Node: C++ Implementation1184980 ! Node: Conditionally-supported behavior1186263 ! Node: Exception handling1186880 ! Node: C Extensions1187347 ! Node: Statement Exprs1192551 ! Node: Local Labels1197923 ! Node: Labels as Values1200896 ! Ref: Labels as Values-Footnote-11203423 ! Node: Nested Functions1203608 ! Node: Nonlocal Gotos1207562 ! Node: Constructing Calls1209828 ! Node: Typeof1214543 ! Node: Conditionals1218472 ! Node: __int1281219361 ! Node: Long Long1219886 ! Node: Complex1221377 ! Node: Floating Types1224145 ! Node: Half-Precision1227612 ! Node: Decimal Float1230023 ! Node: Hex Floats1231877 ! Node: Fixed-Point1232951 ! Node: Named Address Spaces1236209 ! Ref: AVR Named Address Spaces1236895 ! Node: Zero Length1243918 ! Node: Empty Structures1248099 ! Node: Variable Length1248505 ! Node: Variadic Macros1251223 ! Node: Escaped Newlines1253601 ! Node: Subscripting1254462 ! Node: Pointer Arith1255187 ! Node: Variadic Pointer Args1255764 ! Node: Pointers to Arrays1256489 ! Node: Initializers1257242 ! Node: Compound Literals1257743 ! Node: Designated Inits1261310 ! Node: Case Ranges1265234 ! Node: Cast to Union1265915 ! Node: Mixed Declarations1267638 ! Node: Function Attributes1268148 ! Node: Common Function Attributes1272604 ! Node: AArch64 Function Attributes1331260 ! Node: AMD GCN Function Attributes1337454 ! Node: ARC Function Attributes1340507 ! Node: ARM Function Attributes1342829 ! Node: AVR Function Attributes1347968 ! Node: Blackfin Function Attributes1352503 ! Node: CR16 Function Attributes1355001 ! Node: C-SKY Function Attributes1355525 ! Node: Epiphany Function Attributes1356822 ! Node: H8/300 Function Attributes1359577 ! Node: IA-64 Function Attributes1360775 ! Node: M32C Function Attributes1361817 ! Node: M32R/D Function Attributes1364155 ! Node: m68k Function Attributes1365629 ! Node: MCORE Function Attributes1366573 ! Node: MeP Function Attributes1367384 ! Node: MicroBlaze Function Attributes1368685 ! Node: Microsoft Windows Function Attributes1370192 ! Node: MIPS Function Attributes1374761 ! Node: MSP430 Function Attributes1380379 ! Node: NDS32 Function Attributes1384432 ! Node: Nios II Function Attributes1386856 ! Node: Nvidia PTX Function Attributes1388153 ! Node: PowerPC Function Attributes1388768 ! Node: RISC-V Function Attributes1395823 ! Node: RL78 Function Attributes1397239 ! Node: RX Function Attributes1398478 ! Node: S/390 Function Attributes1401025 ! Node: SH Function Attributes1402853 ! Node: SPU Function Attributes1406274 ! Node: Symbian OS Function Attributes1407082 ! Node: V850 Function Attributes1407419 ! Node: Visium Function Attributes1407964 ! Node: x86 Function Attributes1408492 ! Node: Xstormy16 Function Attributes1430981 ! Node: Variable Attributes1431488 ! Node: Common Variable Attributes1433049 ! Node: ARC Variable Attributes1450850 ! Node: AVR Variable Attributes1451232 ! Node: Blackfin Variable Attributes1456394 ! Node: H8/300 Variable Attributes1457252 ! Node: IA-64 Variable Attributes1458325 ! Node: M32R/D Variable Attributes1459076 ! Node: MeP Variable Attributes1459859 ! Node: Microsoft Windows Variable Attributes1461952 ! Node: MSP430 Variable Attributes1464405 ! Node: Nvidia PTX Variable Attributes1465606 ! Node: PowerPC Variable Attributes1466223 ! Node: RL78 Variable Attributes1466780 ! Node: SPU Variable Attributes1467198 ! Node: V850 Variable Attributes1467563 ! Node: x86 Variable Attributes1468195 ! Node: Xstormy16 Variable Attributes1469251 ! Node: Type Attributes1469821 ! Node: Common Type Attributes1471509 ! Node: ARC Type Attributes1493001 ! Node: ARM Type Attributes1493473 ! Node: MeP Type Attributes1494255 ! Node: PowerPC Type Attributes1494657 ! Node: SPU Type Attributes1495646 ! Node: x86 Type Attributes1496065 ! Node: Label Attributes1497053 ! Node: Enumerator Attributes1498986 ! Node: Statement Attributes1500305 ! Node: Attribute Syntax1501788 ! Node: Function Prototypes1513046 ! Node: C++ Comments1514826 ! Node: Dollar Signs1515345 ! Node: Character Escapes1515810 ! Node: Alignment1516094 ! Node: Inline1517747 ! Node: Volatiles1522564 ! Node: Using Assembly Language with C1525463 ! Node: Basic Asm1526700 ! Node: Extended Asm1532150 ! Ref: Volatile1536249 ! Ref: AssemblerTemplate1540369 ! Ref: OutputOperands1544609 ! Ref: FlagOutputOperands1551572 ! Ref: InputOperands1553613 ! Ref: Clobbers and Scratch Registers1557881 ! Ref: GotoLabels1566522 ! Ref: x86Operandmodifiers1568657 ! Ref: x86floatingpointasmoperands1571814 ! Node: Constraints1575143 ! Node: Simple Constraints1576249 ! Node: Multi-Alternative1583563 ! Node: Modifiers1585238 ! Node: Machine Constraints1588036 ! Node: Asm Labels1651230 ! Node: Explicit Register Variables1652850 ! Ref: Explicit Reg Vars1653064 ! Node: Global Register Variables1653673 ! Ref: Global Reg Vars1653881 ! Node: Local Register Variables1658663 ! Ref: Local Reg Vars1658883 ! Node: Size of an asm1662511 ! Node: Alternate Keywords1663989 ! Node: Incomplete Enums1665488 ! Node: Function Names1666245 ! Node: Return Address1668143 ! Node: Vector Extensions1672733 ! Node: Offsetof1682498 ! Node: __sync Builtins1683331 ! Node: __atomic Builtins1689774 ! Node: Integer Overflow Builtins1703399 ! Node: x86 specific memory model extensions for transactional memory1709882 ! Node: Object Size Checking1711148 ! Node: Other Builtins1717404 ! Node: Target Builtins1766632 ! Node: AArch64 Built-in Functions1768296 ! Node: Alpha Built-in Functions1768751 ! Node: Altera Nios II Built-in Functions1771799 ! Node: ARC Built-in Functions1776168 ! Node: ARC SIMD Built-in Functions1781380 ! Node: ARM iWMMXt Built-in Functions1790276 ! Node: ARM C Language Extensions (ACLE)1797272 ! Node: ARM Floating Point Status and Control Intrinsics1798549 ! Node: ARM ARMv8-M Security Extensions1799034 ! Node: AVR Built-in Functions1800314 ! Node: Blackfin Built-in Functions1804075 ! Node: FR-V Built-in Functions1804694 ! Node: Argument Types1805562 ! Node: Directly-mapped Integer Functions1807316 ! Node: Directly-mapped Media Functions1808400 ! Node: Raw read/write Functions1816606 ! Node: Other Built-in Functions1817514 ! Node: MIPS DSP Built-in Functions1818700 ! Node: MIPS Paired-Single Support1831197 ! Node: MIPS Loongson Built-in Functions1832696 ! Node: Paired-Single Arithmetic1839218 ! Node: Paired-Single Built-in Functions1840166 ! Node: MIPS-3D Built-in Functions1842833 ! Node: MIPS SIMD Architecture (MSA) Support1848227 ! Node: MIPS SIMD Architecture Built-in Functions1851067 ! Node: Other MIPS Built-in Functions1877897 ! Node: MSP430 Built-in Functions1878906 ! Node: NDS32 Built-in Functions1880307 ! Node: picoChip Built-in Functions1881600 ! Node: Basic PowerPC Built-in Functions1882949 ! Node: Basic PowerPC Built-in Functions Available on all Configurations1883749 ! Node: Basic PowerPC Built-in Functions Available on ISA 2.051891804 ! Node: Basic PowerPC Built-in Functions Available on ISA 2.061896663 ! Node: Basic PowerPC Built-in Functions Available on ISA 2.071898743 ! Node: Basic PowerPC Built-in Functions Available on ISA 3.01899597 ! Node: PowerPC AltiVec/VSX Built-in Functions1906513 ! Node: PowerPC AltiVec Built-in Functions on ISA 2.051910187 ! Node: PowerPC AltiVec Built-in Functions Available on ISA 2.061999425 ! Node: PowerPC AltiVec Built-in Functions Available on ISA 2.072023870 ! Node: PowerPC AltiVec Built-in Functions Available on ISA 3.02045074 ! Node: PowerPC Hardware Transactional Memory Built-in Functions2080210 ! Node: PowerPC Atomic Memory Operation Functions2088725 ! Node: RX Built-in Functions2091260 ! Node: S/390 System z Built-in Functions2095278 ! Node: SH Built-in Functions2100508 ! Node: SPARC VIS Built-in Functions2102236 ! Node: SPU Built-in Functions2110765 ! Node: TI C6X Built-in Functions2112482 ! Node: TILE-Gx Built-in Functions2113507 ! Node: TILEPro Built-in Functions2114626 ! Node: x86 Built-in Functions2115726 ! Node: x86 transactional memory intrinsics2179473 ! Node: x86 control-flow protection intrinsics2182740 ! Node: Target Format Checks2184511 ! Node: Solaris Format Checks2184943 ! Node: Darwin Format Checks2185369 ! Node: Pragmas2186332 ! Node: AArch64 Pragmas2187257 ! Node: ARM Pragmas2187714 ! Node: M32C Pragmas2188341 ! Node: MeP Pragmas2189413 ! Node: RS/6000 and PowerPC Pragmas2191481 ! Node: S/390 Pragmas2192221 ! Node: Darwin Pragmas2192787 ! Node: Solaris Pragmas2193840 ! Node: Symbol-Renaming Pragmas2195004 ! Node: Structure-Layout Pragmas2196639 ! Node: Weak Pragmas2198919 ! Node: Diagnostic Pragmas2199654 ! Node: Visibility Pragmas2203845 ! Node: Push/Pop Macro Pragmas2204530 ! Node: Function Specific Option Pragmas2205503 ! Node: Loop-Specific Pragmas2207469 ! Node: Unnamed Fields2209069 ! Node: Thread-Local2211266 ! Node: C99 Thread-Local Edits2213372 ! Node: C++98 Thread-Local Edits2215370 ! Node: Binary constants2218815 ! Node: C++ Extensions2219486 ! Node: C++ Volatiles2221116 ! Node: Restricted Pointers2223464 ! Node: Vague Linkage2225055 ! Node: C++ Interface2228678 ! Ref: C++ Interface-Footnote-12232475 ! Node: Template Instantiation2232613 ! Node: Bound member functions2240096 ! Node: C++ Attributes2241628 ! Node: Function Multiversioning2245700 ! Node: Type Traits2247507 ! Node: C++ Concepts2254457 ! Node: Deprecated Features2255963 ! Node: Backwards Compatibility2257788 ! Node: Objective-C2258860 ! Node: GNU Objective-C runtime API2259467 ! Node: Modern GNU Objective-C runtime API2260474 ! Node: Traditional GNU Objective-C runtime API2262910 ! Node: Executing code before main2263637 ! Node: What you can and what you cannot do in +load2266381 ! Node: Type encoding2268751 ! Node: Legacy type encoding2273892 ! Node: @encode2274982 ! Node: Method signatures2275527 ! Node: Garbage Collection2277519 ! Node: Constant string objects2280209 ! Node: compatibility_alias2282718 ! Node: Exceptions2283443 ! Node: Synchronization2286153 ! Node: Fast enumeration2287337 ! Node: Using fast enumeration2287649 ! Node: c99-like fast enumeration syntax2288860 ! Node: Fast enumeration details2289563 ! Node: Fast enumeration protocol2291903 ! Node: Messaging with the GNU Objective-C runtime2295055 ! Node: Dynamically registering methods2296427 ! Node: Forwarding hook2298118 ! Node: Compatibility2301158 ! Node: Gcov2307714 ! Node: Gcov Intro2308249 ! Node: Invoking Gcov2310967 ! Node: Gcov and Optimization2333802 ! Node: Gcov Data Files2337545 ! Node: Cross-profiling2338954 ! Node: Gcov-tool2340808 ! Node: Gcov-tool Intro2341233 ! Node: Invoking Gcov-tool2343203 ! Node: Gcov-dump2345781 ! Node: Gcov-dump Intro2346103 ! Node: Invoking Gcov-dump2346370 ! Node: Trouble2346971 ! Node: Actual Bugs2348389 ! Node: Interoperation2348836 ! Node: Incompatibilities2355727 ! Node: Fixed Headers2363879 ! Node: Standard Libraries2365537 ! Node: Disappointments2366909 ! Node: C++ Misunderstandings2371268 ! Node: Static Definitions2372079 ! Node: Name lookup2373132 ! Ref: Name lookup-Footnote-12377913 ! Node: Temporaries2378102 ! Node: Copy Assignment2380078 ! Node: Non-bugs2381913 ! Node: Warnings and Errors2392419 ! Node: Bugs2394181 ! Node: Bug Criteria2394648 ! Node: Bug Reporting2396858 ! Node: Service2397076 ! Node: Contributing2397896 ! Node: Funding2398637 ! Node: GNU Project2401127 ! Node: Copying2401773 ! Node: GNU Free Documentation License2439282 ! Node: Contributors2464400 ! Node: Option Index2505373 ! Node: Keyword Index2768925  End Tag Table diff -Nrcpad gcc-9.4.0/gcc/doc/gccint.info gcc-9.5.0/gcc/doc/gccint.info *** gcc-9.4.0/gcc/doc/gccint.info Tue Jun 1 08:02:38 2021 --- gcc-9.5.0/gcc/doc/gccint.info Fri May 27 07:30:45 2022 *************** Introduction *** 55,61 **** This manual documents the internals of the GNU compilers, including how to port them to new targets and some information about how to write front ends for new languages. It corresponds to the compilers (GCC) ! version 9.4.0. The use of the GNU compilers is documented in a separate manual. *Note Introduction: (gcc)Top. This manual is mainly a reference manual rather than a tutorial. It --- 55,61 ---- This manual documents the internals of the GNU compilers, including how to port them to new targets and some information about how to write front ends for new languages. It corresponds to the compilers (GCC) ! version 9.5.0. The use of the GNU compilers is documented in a separate manual. *Note Introduction: (gcc)Top. This manual is mainly a reference manual rather than a tutorial. It diff -Nrcpad gcc-9.4.0/gcc/doc/gcov-dump.1 gcc-9.5.0/gcc/doc/gcov-dump.1 *** gcc-9.4.0/gcc/doc/gcov-dump.1 Tue Jun 1 07:54:17 2021 --- gcc-9.5.0/gcc/doc/gcov-dump.1 Fri May 27 07:22:23 2022 *************** *** 129,135 **** .\" ======================================================================== .\" .IX Title "GCOV-DUMP 1" ! .TH GCOV-DUMP 1 "2021-06-01" "gcc-9.4.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l --- 129,135 ---- .\" ======================================================================== .\" .IX Title "GCOV-DUMP 1" ! .TH GCOV-DUMP 1 "2022-05-27" "gcc-9.5.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l diff -Nrcpad gcc-9.4.0/gcc/doc/gcov-tool.1 gcc-9.5.0/gcc/doc/gcov-tool.1 *** gcc-9.4.0/gcc/doc/gcov-tool.1 Tue Jun 1 07:54:17 2021 --- gcc-9.5.0/gcc/doc/gcov-tool.1 Fri May 27 07:22:23 2022 *************** *** 129,135 **** .\" ======================================================================== .\" .IX Title "GCOV-TOOL 1" ! .TH GCOV-TOOL 1 "2021-06-01" "gcc-9.4.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l --- 129,135 ---- .\" ======================================================================== .\" .IX Title "GCOV-TOOL 1" ! .TH GCOV-TOOL 1 "2022-05-27" "gcc-9.5.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l diff -Nrcpad gcc-9.4.0/gcc/doc/gcov.1 gcc-9.5.0/gcc/doc/gcov.1 *** gcc-9.4.0/gcc/doc/gcov.1 Tue Jun 1 07:54:17 2021 --- gcc-9.5.0/gcc/doc/gcov.1 Fri May 27 07:22:23 2022 *************** *** 129,135 **** .\" ======================================================================== .\" .IX Title "GCOV 1" ! .TH GCOV 1 "2021-06-01" "gcc-9.4.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l --- 129,135 ---- .\" ======================================================================== .\" .IX Title "GCOV 1" ! .TH GCOV 1 "2022-05-27" "gcc-9.5.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l diff -Nrcpad gcc-9.4.0/gcc/doc/gfdl.7 gcc-9.5.0/gcc/doc/gfdl.7 *** gcc-9.4.0/gcc/doc/gfdl.7 Tue Jun 1 07:54:17 2021 --- gcc-9.5.0/gcc/doc/gfdl.7 Fri May 27 07:22:23 2022 *************** *** 129,135 **** .\" ======================================================================== .\" .IX Title "GFDL 7" ! .TH GFDL 7 "2021-06-01" "gcc-9.4.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l --- 129,135 ---- .\" ======================================================================== .\" .IX Title "GFDL 7" ! .TH GFDL 7 "2022-05-27" "gcc-9.5.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l diff -Nrcpad gcc-9.4.0/gcc/doc/gfortran.1 gcc-9.5.0/gcc/doc/gfortran.1 *** gcc-9.4.0/gcc/doc/gfortran.1 Tue Jun 1 08:02:34 2021 --- gcc-9.5.0/gcc/doc/gfortran.1 Fri May 27 07:30:41 2022 *************** *** 129,135 **** .\" ======================================================================== .\" .IX Title "GFORTRAN 1" ! .TH GFORTRAN 1 "2021-06-01" "gcc-9.4.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l --- 129,135 ---- .\" ======================================================================== .\" .IX Title "GFORTRAN 1" ! .TH GFORTRAN 1 "2022-05-27" "gcc-9.5.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l diff -Nrcpad gcc-9.4.0/gcc/doc/gpl.7 gcc-9.5.0/gcc/doc/gpl.7 *** gcc-9.4.0/gcc/doc/gpl.7 Tue Jun 1 07:54:17 2021 --- gcc-9.5.0/gcc/doc/gpl.7 Fri May 27 07:22:23 2022 *************** *** 129,135 **** .\" ======================================================================== .\" .IX Title "GPL 7" ! .TH GPL 7 "2021-06-01" "gcc-9.4.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l --- 129,135 ---- .\" ======================================================================== .\" .IX Title "GPL 7" ! .TH GPL 7 "2022-05-27" "gcc-9.5.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l diff -Nrcpad gcc-9.4.0/gcc/doc/invoke.texi gcc-9.5.0/gcc/doc/invoke.texi *** gcc-9.4.0/gcc/doc/invoke.texi Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/doc/invoke.texi Fri May 27 07:21:11 2022 *************** name is still supported, but the newer n *** 4467,4473 **** -Wredundant-move @r{(only for C++)} @gol -Wtype-limits @gol -Wuninitialized @gol ! -Wshift-negative-value @r{(in C++03 and in C99 and newer)} @gol -Wunused-parameter @r{(only with} @option{-Wunused} @r{or} @option{-Wall}@r{)} @gol -Wunused-but-set-parameter @r{(only with} @option{-Wunused} @r{or} @option{-Wall}@r{)}} --- 4467,4473 ---- -Wredundant-move @r{(only for C++)} @gol -Wtype-limits @gol -Wuninitialized @gol ! -Wshift-negative-value @r{(in C++11 to C++17 and in C99 and newer)} @gol -Wunused-parameter @r{(only with} @option{-Wunused} @r{or} @option{-Wall}@r{)} @gol -Wunused-but-set-parameter @r{(only with} @option{-Wunused} @r{or} @option{-Wall}@r{)}} *************** Warn if shift count >= width of type. Th *** 5307,5313 **** @opindex Wshift-negative-value @opindex Wno-shift-negative-value Warn if left shifting a negative value. This warning is enabled by ! @option{-Wextra} in C99 and C++11 modes (and newer). @item -Wshift-overflow @itemx -Wshift-overflow=@var{n} --- 5307,5313 ---- @opindex Wshift-negative-value @opindex Wno-shift-negative-value Warn if left shifting a negative value. This warning is enabled by ! @option{-Wextra} in C99 (and newer) and C++11 to C++17 modes. @item -Wshift-overflow @itemx -Wshift-overflow=@var{n} *************** The option cannot be combined with @opti *** 12484,12490 **** @opindex fsanitize=undefined Enable UndefinedBehaviorSanitizer, a fast undefined behavior detector. Various computations are instrumented to detect undefined behavior ! at runtime. Current suboptions are: @table @gcctabopt --- 12484,12491 ---- @opindex fsanitize=undefined Enable UndefinedBehaviorSanitizer, a fast undefined behavior detector. Various computations are instrumented to detect undefined behavior ! at runtime. See @uref{https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html} for more details. The run-time behavior can be influenced using the ! @env{UBSAN_OPTIONS} environment variable. Current suboptions are: @table @gcctabopt *************** which functions and calls should be skip *** 12764,12770 **** (@pxref{Function Attributes}). Currently the x86 GNU/Linux target provides an implementation based ! on Intel Control-flow Enforcement Technology (CET). @item -fstack-protector @opindex fstack-protector --- 12765,12772 ---- (@pxref{Function Attributes}). Currently the x86 GNU/Linux target provides an implementation based ! on Intel Control-flow Enforcement Technology (CET) which works for ! i686 processor or newer. @item -fstack-protector @opindex fstack-protector *************** performance of the code. Permissible va *** 15858,15863 **** --- 15860,15866 ---- @samp{cortex-a57}, @samp{cortex-a72}, @samp{cortex-a73}, @samp{cortex-a75}, @samp{cortex-a76}, @samp{ares}, @samp{exynos-m1}, @samp{emag}, @samp{falkor}, @samp{neoverse-e1}, @samp{neoverse-n1}, @samp{neoverse-n2}, @samp{neoverse-v1}, + @samp{neoverse-512tvb}, @samp{qdf24xx}, @samp{saphira}, @samp{phecda}, @samp{xgene1}, @samp{vulcan}, @samp{octeontx}, @samp{octeontx81}, @samp{octeontx83}, @samp{a64fx}, *************** The values @samp{cortex-a57.cortex-a53}, *** 15874,15879 **** --- 15877,15891 ---- @samp{cortex-a75.cortex-a55}, @samp{cortex-a76.cortex-a55} specify that GCC should tune for a big.LITTLE system. + The value @samp{neoverse-512tvb} specifies that GCC should tune + for Neoverse cores that (a) implement SVE and (b) have a total vector + bandwidth of 512 bits per cycle. In other words, the option tells GCC to + tune for Neoverse cores that can execute 4 128-bit Advanced SIMD arithmetic + instructions a cycle and that can execute an equivalent number of SVE + arithmetic instructions per cycle (2 for 256-bit SVE, 4 for 128-bit SVE). + This is more general than tuning for a specific core like Neoverse V1 + but is more specific than the default tuning described below. + Additionally on native AArch64 GNU/Linux systems the value @samp{native} tunes performance to the host system. This option has no effect if the compiler is unable to recognize the processor of the host system. *************** by @option{-mtune}). Where this option *** 15903,15908 **** --- 15915,15930 ---- with @option{-march} or @option{-mtune}, those options take precedence over the appropriate part of this option. + @option{-mcpu=neoverse-512tvb} is special in that it does not refer + to a specific core, but instead refers to all Neoverse cores that + (a) implement SVE and (b) have a total vector bandwidth of 512 bits + a cycle. Unless overridden by @option{-march}, + @option{-mcpu=neoverse-512tvb} generates code that can run on a + Neoverse V1 core, since Neoverse V1 is the first Neoverse core with + these properties. Unless overridden by @option{-mtune}, + @option{-mcpu=neoverse-512tvb} tunes code in the same way as for + @option{-mtune=neoverse-512tvb}. + @item -moverride=@var{string} @opindex moverride Override tuning decisions made by the back-end in response to a *************** Substitute the contents of spec string @ *** 29379,29386 **** Accumulate an option for @samp{%X}. @item %X ! Output the accumulated linker options specified by @option{-Wl} or a @samp{%x} ! spec string. @item %Y Output the accumulated assembler options specified by @option{-Wa}. --- 29401,29407 ---- Accumulate an option for @samp{%X}. @item %X ! Output the accumulated linker options specified by a @samp{%x} spec string. @item %Y Output the accumulated assembler options specified by @option{-Wa}. diff -Nrcpad gcc-9.4.0/gcc/doc/trouble.texi gcc-9.5.0/gcc/doc/trouble.texi *** gcc-9.4.0/gcc/doc/trouble.texi Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/doc/trouble.texi Fri May 27 07:21:11 2022 *************** objects behave unspecified when being as *** 865,874 **** @smallexample struct Base@{ char *name; ! Base(char *n) : name(strdup(n))@{@} Base& operator= (const Base& other)@{ free (name); name = strdup (other.name); @} @}; --- 865,875 ---- @smallexample struct Base@{ char *name; ! Base(const char *n) : name(strdup(n))@{@} Base& operator= (const Base& other)@{ free (name); name = strdup (other.name); + return *this; @} @}; *************** inside @samp{func} in the example). *** 901,908 **** G++ implements the ``intuitive'' algorithm for copy-assignment: assign all direct bases, then assign all members. In that algorithm, the virtual base subobject can be encountered more than once. In the example, copying ! proceeds in the following order: @samp{val}, @samp{name} (via ! @code{strdup}), @samp{bval}, and @samp{name} again. If application code relies on copy-assignment, a user-defined copy-assignment operator removes any uncertainties. With such an --- 902,909 ---- G++ implements the ``intuitive'' algorithm for copy-assignment: assign all direct bases, then assign all members. In that algorithm, the virtual base subobject can be encountered more than once. In the example, copying ! proceeds in the following order: @samp{name} (via @code{strdup}), ! @samp{val}, @samp{name} again, and @samp{bval}. If application code relies on copy-assignment, a user-defined copy-assignment operator removes any uncertainties. With such an diff -Nrcpad gcc-9.4.0/gcc/dwarf2out.c gcc-9.5.0/gcc/dwarf2out.c *** gcc-9.4.0/gcc/dwarf2out.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/dwarf2out.c Fri May 27 07:21:11 2022 *************** loc_list_from_tree_1 (tree loc, int want *** 18900,18905 **** --- 18900,18909 ---- case FIX_TRUNC_EXPR: return 0; + case COMPOUND_LITERAL_EXPR: + return loc_list_from_tree_1 (COMPOUND_LITERAL_EXPR_DECL (loc), + 0, context); + default: /* Leave front-end specific codes as simply unknown. This comes up, for instance, with the C STMT_EXPR. */ *************** field_byte_offset (const_tree decl, stru *** 19132,19137 **** --- 19136,19142 ---- properly dynamic byte offsets only when PCC bitfield type doesn't matter. */ if (PCC_BITFIELD_TYPE_MATTERS + && DECL_BIT_FIELD_TYPE (decl) && TREE_CODE (DECL_FIELD_OFFSET (decl)) == INTEGER_CST) { offset_int object_offset_in_bits; *************** gen_variable_die (tree decl, tree origin *** 24019,24025 **** && DECL_RTL_SET_P (decl_or_origin)))) { if (early_dwarf) ! add_pubname (decl_or_origin, var_die); else add_location_or_const_value_attribute (var_die, decl_or_origin, decl == NULL); --- 24024,24049 ---- && DECL_RTL_SET_P (decl_or_origin)))) { if (early_dwarf) ! { ! add_pubname (decl_or_origin, var_die); ! /* For global register variables, emit DW_AT_location if possible ! already during early_dwarf, as late_global_decl won't be usually ! called. */ ! if (DECL_HARD_REGISTER (decl_or_origin) ! && TREE_STATIC (decl_or_origin) ! && !decl_by_reference_p (decl_or_origin) ! && !get_AT (var_die, DW_AT_location) ! && !get_AT (var_die, DW_AT_const_value) ! && DECL_RTL_SET_P (decl_or_origin) ! && REG_P (DECL_RTL (decl_or_origin))) ! { ! dw_loc_descr_ref descr ! = reg_loc_descriptor (DECL_RTL (decl_or_origin), ! VAR_INIT_STATUS_INITIALIZED); ! if (descr) ! add_AT_loc (var_die, DW_AT_location, descr); ! } ! } else add_location_or_const_value_attribute (var_die, decl_or_origin, decl == NULL); diff -Nrcpad gcc-9.4.0/gcc/expmed.c gcc-9.5.0/gcc/expmed.c *** gcc-9.4.0/gcc/expmed.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/expmed.c Fri May 27 07:21:11 2022 *************** store_integral_bit_field (rtx op0, opt_s *** 915,921 **** } subreg_off = bitnum / BITS_PER_UNIT; ! if (validate_subreg (fieldmode, GET_MODE (arg0), arg0, subreg_off)) { arg0 = gen_rtx_SUBREG (fieldmode, arg0, subreg_off); --- 915,924 ---- } subreg_off = bitnum / BITS_PER_UNIT; ! if (validate_subreg (fieldmode, GET_MODE (arg0), arg0, subreg_off) ! /* STRICT_LOW_PART must have a non-paradoxical subreg as ! operand. */ ! && !paradoxical_subreg_p (fieldmode, GET_MODE (arg0))) { arg0 = gen_rtx_SUBREG (fieldmode, arg0, subreg_off); diff -Nrcpad gcc-9.4.0/gcc/expr.c gcc-9.5.0/gcc/expr.c *** gcc-9.4.0/gcc/expr.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/expr.c Fri May 27 07:21:11 2022 *************** expand_expr_real_2 (sepops ops, rtx targ *** 9537,9542 **** --- 9537,9543 ---- case VEC_PACK_SAT_EXPR: case VEC_PACK_FIX_TRUNC_EXPR: mode = TYPE_MODE (TREE_TYPE (treeop0)); + subtarget = NULL_RTX; goto binop; case VEC_PACK_TRUNC_EXPR: *************** expand_expr_real_2 (sepops ops, rtx targ *** 9560,9565 **** --- 9561,9567 ---- return eops[0].value; } mode = TYPE_MODE (TREE_TYPE (treeop0)); + subtarget = NULL_RTX; goto binop; case VEC_PACK_FLOAT_EXPR: diff -Nrcpad gcc-9.4.0/gcc/fold-const.c gcc-9.5.0/gcc/fold-const.c *** gcc-9.4.0/gcc/fold-const.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/fold-const.c Fri May 27 07:21:11 2022 *************** negate_expr_p (tree t) *** 510,516 **** if (TREE_CODE (TREE_OPERAND (t, 1)) == INTEGER_CST) { tree op1 = TREE_OPERAND (t, 1); ! if (wi::to_wide (op1) == TYPE_PRECISION (type) - 1) return true; } break; --- 510,516 ---- if (TREE_CODE (TREE_OPERAND (t, 1)) == INTEGER_CST) { tree op1 = TREE_OPERAND (t, 1); ! if (wi::to_wide (op1) == element_precision (type) - 1) return true; } break; *************** fold_negate_expr_1 (location_t loc, tree *** 703,709 **** if (TREE_CODE (TREE_OPERAND (t, 1)) == INTEGER_CST) { tree op1 = TREE_OPERAND (t, 1); ! if (wi::to_wide (op1) == TYPE_PRECISION (type) - 1) { tree ntype = TYPE_UNSIGNED (type) ? signed_type_for (type) --- 703,709 ---- if (TREE_CODE (TREE_OPERAND (t, 1)) == INTEGER_CST) { tree op1 = TREE_OPERAND (t, 1); ! if (wi::to_wide (op1) == element_precision (type) - 1) { tree ntype = TYPE_UNSIGNED (type) ? signed_type_for (type) *************** make_range_step (location_t loc, enum tr *** 4761,4767 **** n_high = fold_convert_loc (loc, arg0_type, n_high); /* If we're converting arg0 from an unsigned type, to exp, ! a signed type, we will be doing the comparison as unsigned. The tests above have already verified that LOW and HIGH are both positive. --- 4761,4767 ---- n_high = fold_convert_loc (loc, arg0_type, n_high); /* If we're converting arg0 from an unsigned type, to exp, ! a signed type, we will be doing the comparison as unsigned. The tests above have already verified that LOW and HIGH are both positive. *************** make_range_step (location_t loc, enum tr *** 4823,4828 **** --- 4823,4854 ---- } } + /* Otherwise, if we are converting arg0 from signed type, to exp, + an unsigned type, we will do the comparison as signed. If + high is non-NULL, we punt above if it doesn't fit in the signed + type, so if we get through here, +[-, high] or +[low, high] are + equivalent to +[-, n_high] or +[n_low, n_high]. Similarly, + +[-, -] or -[-, -] are equivalent too. But if low is specified and + high is not, the +[low, -] range is equivalent to union of + +[n_low, -] and +[-, -1] ranges, so +[low, -] is equivalent to + -[0, n_low-1] and similarly -[low, -] to +[0, n_low-1], except for + low being 0, which should be treated as [-, -]. */ + else if (TYPE_UNSIGNED (exp_type) + && !TYPE_UNSIGNED (arg0_type) + && low + && !high) + { + if (integer_zerop (low)) + n_low = NULL_TREE; + else + { + n_high = fold_build2_loc (loc, PLUS_EXPR, arg0_type, + n_low, build_int_cst (arg0_type, -1)); + n_low = build_zero_cst (arg0_type); + in_p = !in_p; + } + } + *p_low = n_low; *p_high = n_high; *p_in_p = in_p; diff -Nrcpad gcc-9.4.0/gcc/fortran/ChangeLog gcc-9.5.0/gcc/fortran/ChangeLog *** gcc-9.4.0/gcc/fortran/ChangeLog Tue Jun 1 07:53:23 2021 --- gcc-9.5.0/gcc/fortran/ChangeLog Fri May 27 07:21:30 2022 *************** *** 1,3 **** --- 1,347 ---- + 2022-05-27 Release Manager + + * GCC 9.5.0 released. + + 2022-05-16 Harald Anlauf + + Backported from master: + 2022-05-11 Harald Anlauf + Steven G. Kargl + + PR fortran/105230 + * expr.c (find_array_section): Correct logic to avoid NULL + pointer dereference on invalid array section. + + 2022-05-16 Harald Anlauf + + Backported from master: + 2022-03-09 Harald Anlauf + + PR fortran/104849 + * expr.c (find_array_section): Avoid NULL pointer dereference on + invalid array section. + + 2022-05-16 Harald Anlauf + + Backported from master: + 2022-04-05 Harald Anlauf + Steven G. Kargl + + PR fortran/105138 + * intrinsic.c (gfc_is_intrinsic): When a symbol refers to a + RECURSIVE procedure, it cannot be an INTRINSIC. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-11-21 Jakub Jelinek + + PR debug/103315 + * trans-types.c (gfc_get_array_descr_info): Use DW_OP_deref_size 1 + instead of DW_OP_deref for DW_AT_rank. + + 2022-05-09 Mikael Morin + + Backported from master: + 2022-04-24 Mikael Morin + + PR fortran/104228 + PR fortran/104570 + * parse.c (parse_associate): Use a new distinct gfc_charlen if + the copied type has one whose length is not known to be + constant. + * resolve.c (resolve_assoc_var): Also create a new character + length for non-dummy associate targets. Reset charlen if it’s + shared with the associate target regardless of the expression + type. Don’t reinitialize charlen if it’s deferred. + * trans-stmt.c (trans_associate_var): Initialize character + length even if no temporary is used for the associate variable. + + 2022-04-21 Fritz Reese + + Backported from master: + 2022-04-21 Fritz Reese + + PR fortran/105310 + * trans-expr.c (gfc_conv_union_initializer): Pass vec* by reference. + + 2022-02-04 Harald Anlauf + + Backported from master: + 2022-02-03 Harald Anlauf + + PR fortran/104311 + * check.c (gfc_calculate_transfer_sizes): Checks for case when + storage size of SOURCE is greater than zero while the storage size + of MOLD is zero and MOLD is an array shall not depend on SIZE. + + 2022-01-29 Harald Anlauf + + Backported from master: + 2022-01-22 Harald Anlauf + + PR fortran/104127 + * simplify.c (gfc_simplify_transfer): Ensure that the result + typespec is set up for TRANSFER with MOLD of type CHARACTER + including character length even if the result is a zero-sized + array. + + 2022-01-26 Harald Anlauf + + Backported from master: + 2022-01-25 Harald Anlauf + + PR fortran/104227 + * check.c (gfc_calculate_transfer_sizes): Fix checking of arrays + passed as MOLD argument to the TRANSFER intrinsic for having + storage size zero. + + 2022-01-23 Harald Anlauf + + Backported from master: + 2022-01-14 Harald Anlauf + + PR fortran/103782 + * expr.c (gfc_simplify_expr): Adjust logic for when to scalarize a + call of an intrinsic which may have been overloaded. + + 2021-12-19 Harald Anlauf + + Backported from master: + 2021-12-07 Harald Anlauf + + PR fortran/103588 + * array.c (gfc_ref_dimen_size): Do not generate internal error on + failed simplification of stride expression; just return failure. + + 2021-12-17 Harald Anlauf + + Backported from master: + 2021-12-08 Harald Anlauf + + PR fortran/103610 + * array.c (spec_dimen_size): Fix simplification of SHAPE: + dimensions must be non-negative. + + 2021-12-16 Harald Anlauf + + Backported from master: + 2021-12-11 Harald Anlauf + + PR fortran/103606 + * resolve.c (resolve_fl_procedure): Do not access CLASS components + before class container has been built. + + 2021-12-16 Harald Anlauf + + Backported from master: + 2021-12-14 Harald Anlauf + + PR fortran/103717 + * frontend-passes.c (doloop_code): Prevent NULL pointer + dereference when checking for passing a do-loop variable to a + contained procedure with an interface mismatch. + + 2021-12-10 Harald Anlauf + + Backported from master: + 2021-12-07 Harald Anlauf + + PR fortran/103607 + * frontend-passes.c (do_subscript): Ensure that array bounds are + of type INTEGER before performing checks on array subscripts. + + 2021-11-26 Harald Anlauf + + Backported from master: + 2021-11-23 Harald Anlauf + + PR fortran/103392 + * simplify.c (simplify_bound): Do not try to simplify + LBOUND/UBOUND for arrays with POINTER or ALLOCATABLE attribute. + + 2021-09-30 Harald Anlauf + + Backported from master: + 2021-09-07 Harald Anlauf + + PR fortran/101327 + * expr.c (find_array_element): When bounds cannot be determined as + constant, return error instead of aborting. + + 2021-09-30 Harald Anlauf + + Backported from master: + 2021-09-09 Harald Anlauf + + PR fortran/98490 + * trans-expr.c (gfc_conv_substring): Do not generate substring + bounds check for implied do loop index variable before it actually + becomes defined. + + 2021-09-30 Harald Anlauf + + Backported from master: + 2021-09-13 Harald Anlauf + + PR fortran/82314 + * decl.c (add_init_expr_to_sym): For proper initialization of + array-valued named constants the array bounds need to be + simplified before adding the initializer. + + 2021-09-21 Harald Anlauf + + Backported from master: + 2021-09-13 Harald Anlauf + + PR fortran/85130 + * expr.c (find_substring_ref): Handle given substring start and + end indices as signed integers, not unsigned. + + 2021-09-21 Harald Anlauf + + Backported from master: + 2021-09-16 Harald Anlauf + + PR fortran/102287 + * trans-expr.c (gfc_conv_procedure_call): Wrap deallocation of + allocatable components of optional allocatable derived type + procedure arguments with INTENT(OUT) into a presence check. + + 2021-09-10 Paul Thomas + + Backported from master: + 2020-12-29 Paul Thomas + + PR fortran/97612 + * primary.c (build_actual_constructor): Missing allocatable + components are set unallocated using EXPR_NULL. Then missing + components are tested for a default initializer. + + 2021-09-10 Paul Thomas + + Backported from master: + 2021-01-22 Paul Thomas + + PR fortran/98565 + * trans-intrinsic.c (gfc_conv_associated): Do not add a _data + component for scalar class function targets. Instead, fix the + function result and access the _data from that. + + 2021-09-10 Paul Thomas + + Backported from master: + 2021-01-07 Paul Thomas + + PR fortran/93701 + * resolve.c (find_array_spec): Put static prototype for + resolve_assoc_var before this function and call for associate + variables. + + 2021-09-10 Paul Thomas + + Backported from master: + 2021-01-27 Paul Thomas + + PR fortran/98472 + * trans-array.c (gfc_conv_expr_descriptor): Include elemental + procedure pointers in the assert under the comment 'elemental + function' and eliminate the second, spurious assert. + + 2021-09-10 Paul Thomas + + Backported from master: + 2021-04-20 Paul Thomas + + PR fortran/100110 + * trans-decl.c (gfc_get_symbol_decl): Replace test for host + association with a check that the current and symbol namespaces + are the same. + + 2021-09-06 Paul Thomas + + Backported from master: + 2021-05-06 Paul Thomas + + PR fortran/46691 + PR fortran/99819 + * class.c (gfc_build_class_symbol): Remove the error that + disables assumed size class arrays. Class array types that are + not deferred shape or assumed rank are given a unique name and + placed in the procedure namespace. + * trans-array.c (gfc_trans_g77_array): Obtain the data pointer + for class arrays. + (gfc_trans_dummy_array_bias): Suppress the runtime error for + extent violations in explicit shape class arrays because it + always fails. + * trans-expr.c (gfc_conv_procedure_call): Handle assumed size + class actual arguments passed to non-descriptor formal args by + using the data pointer, stored as the symbol's backend decl. + + 2021-09-06 Paul Thomas + + Backported from master: + 2021-03-13 Paul Thomas + + PR fortran/99125 + * trans-array.c (gfc_conv_expr_descriptor): For deferred length + length components use the ss_info string length instead of + gfc_get_expr_charlen. Make sure that the deferred string length + is a variable before assigning to it. Otherwise use the expr. + * trans-expr.c (gfc_conv_string_length): Make sure that the + deferred string length is a variable before assigning to it. + + 2021-09-06 Paul Thomas + + Backported from master: + 2021-01-27 Paul Thomas + + PR fortran/93924 + PR fortran/93925 + * trans-expr.c (gfc_conv_procedure_call): Suppress the call to + gfc_conv_intrinsic_to_class for unlimited polymorphic procedure + pointers. + (gfc_trans_assignment_1): Similarly suppress class assignment + for class valued procedure pointers. + + 2021-09-06 Paul Thomas + + Backported from master: + 2021-01-08 Paul Thomas + + PR fortran/93794 + * trans-expr.c (gfc_conv_component_ref): Remove the condition + that deferred character length components only be allocatable. + + 2021-07-16 Harald Anlauf + + Backported from master: + 2021-07-14 Harald Anlauf + + PR fortran/100949 + * trans-expr.c (gfc_trans_class_init_assign): Call + gfc_conv_expr_present only for dummy variables. + + 2021-07-12 Thomas Koenig + + Backported from master: + 2021-07-06 Thomas Koenig + + PR fortran/100227 + * frontend-passes.c (traverse_io_block): Adjust test for + when a variable is eligible for the transformation to + array slice. + + 2021-06-04 Harald Anlauf + + Backported from master: + 2021-06-04 Harald Anlauf + + PR fortran/99839 + * frontend-passes.c (inline_matmul_assign): Do not inline matmul + if the assignment to the resulting array if it is not of canonical + type (real/integer/complex/logical). + 2021-06-01 Release Manager * GCC 9.4.0 released. diff -Nrcpad gcc-9.4.0/gcc/fortran/array.c gcc-9.5.0/gcc/fortran/array.c *** gcc-9.4.0/gcc/fortran/array.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/fortran/array.c Fri May 27 07:21:11 2022 *************** gfc_copy_iterator (gfc_iterator *src) *** 2224,2231 **** /********* Subroutines for determining the size of an array *********/ /* These are needed just to accommodate RESHAPE(). There are no ! diagnostics here, we just return a negative number if something ! goes wrong. */ /* Get the size of single dimension of an array specification. The --- 2224,2230 ---- /********* Subroutines for determining the size of an array *********/ /* These are needed just to accommodate RESHAPE(). There are no ! diagnostics here, we just return false if something goes wrong. */ /* Get the size of single dimension of an array specification. The *************** spec_dimen_size (gfc_array_spec *as, int *** 2254,2259 **** --- 2253,2261 ---- mpz_add_ui (*result, *result, 1); + if (mpz_cmp_si (*result, 0) < 0) + mpz_set_si (*result, 0); + return true; } *************** gfc_ref_dimen_size (gfc_array_ref *ar, i *** 2327,2338 **** { stride_expr = gfc_copy_expr(ar->stride[dimen]); ! if(!gfc_simplify_expr(stride_expr, 1)) ! gfc_internal_error("Simplification error"); ! ! if (stride_expr->expr_type != EXPR_CONSTANT ! || mpz_cmp_ui (stride_expr->value.integer, 0) == 0) { mpz_clear (stride); return false; } --- 2329,2339 ---- { stride_expr = gfc_copy_expr(ar->stride[dimen]); ! if (!gfc_simplify_expr (stride_expr, 1) ! || stride_expr->expr_type != EXPR_CONSTANT ! || mpz_cmp_ui (stride_expr->value.integer, 0) == 0) { + gfc_free_expr (stride_expr); mpz_clear (stride); return false; } diff -Nrcpad gcc-9.4.0/gcc/fortran/check.c gcc-9.5.0/gcc/fortran/check.c *** gcc-9.4.0/gcc/fortran/check.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/fortran/check.c Fri May 27 07:21:11 2022 *************** gfc_calculate_transfer_sizes (gfc_expr * *** 5562,5569 **** * representation is not shorter than that of SOURCE. * If SIZE is present, the result is an array of rank one and size SIZE. */ ! if (result_elt_size == 0 && *source_size > 0 && !size ! && mold->expr_type == EXPR_ARRAY) { gfc_error ("% argument of % intrinsic at %L is an " "array and shall not have storage size 0 when % " --- 5562,5569 ---- * representation is not shorter than that of SOURCE. * If SIZE is present, the result is an array of rank one and size SIZE. */ ! if (result_elt_size == 0 && *source_size > 0 ! && (mold->expr_type == EXPR_ARRAY || mold->rank)) { gfc_error ("% argument of % intrinsic at %L is an " "array and shall not have storage size 0 when % " diff -Nrcpad gcc-9.4.0/gcc/fortran/class.c gcc-9.5.0/gcc/fortran/class.c *** gcc-9.4.0/gcc/fortran/class.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/fortran/class.c Fri May 27 07:21:11 2022 *************** gfc_get_len_component (gfc_expr *e, int *** 613,618 **** --- 613,619 ---- component '_vptr' which determines the dynamic type. When this CLASS entity is unlimited polymorphic, then also add a component '_len' to store the length of string when that is stored in it. */ + static int ctr = 0; bool gfc_build_class_symbol (gfc_typespec *ts, symbol_attribute *attr, *************** gfc_build_class_symbol (gfc_typespec *ts *** 628,640 **** gcc_assert (as); - if (*as && (*as)->type == AS_ASSUMED_SIZE) - { - gfc_error ("Assumed size polymorphic objects or components, such " - "as that at %C, have not yet been implemented"); - return false; - } - if (attr->class_ok) /* Class container has already been built. */ return true; --- 629,634 ---- *************** gfc_build_class_symbol (gfc_typespec *ts *** 672,678 **** else ns = ts->u.derived->ns; ! gfc_find_symbol (name, ns, 0, &fclass); if (fclass == NULL) { gfc_symtree *st; --- 666,695 ---- else ns = ts->u.derived->ns; ! /* Although this might seem to be counterintuitive, we can build separate ! class types with different array specs because the TKR interface checks ! work on the declared type. All array type other than deferred shape or ! assumed rank are added to the function namespace to ensure that they ! are properly distinguished. */ ! if (attr->dummy && !attr->codimension && (*as) ! && !((*as)->type == AS_DEFERRED || (*as)->type == AS_ASSUMED_RANK)) ! { ! char *sname; ! ns = gfc_current_ns; ! gfc_find_symbol (name, ns, 0, &fclass); ! /* If a local class type with this name already exists, update the ! name with an index. */ ! if (fclass) ! { ! fclass = NULL; ! sname = xasprintf ("%s_%d", name, ++ctr); ! free (name); ! name = sname; ! } ! } ! else ! gfc_find_symbol (name, ns, 0, &fclass); ! if (fclass == NULL) { gfc_symtree *st; diff -Nrcpad gcc-9.4.0/gcc/fortran/decl.c gcc-9.5.0/gcc/fortran/decl.c *** gcc-9.4.0/gcc/fortran/decl.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/fortran/decl.c Fri May 27 07:21:11 2022 *************** add_init_expr_to_sym (const char *name, *** 2043,2048 **** --- 2043,2066 ---- sym->as->type = AS_EXPLICIT; } + /* Ensure that explicit bounds are simplified. */ + if (sym->attr.flavor == FL_PARAMETER && sym->attr.dimension + && sym->as->type == AS_EXPLICIT) + { + for (int dim = 0; dim < sym->as->rank; ++dim) + { + gfc_expr *e; + + e = sym->as->lower[dim]; + if (e->expr_type != EXPR_CONSTANT) + gfc_reduce_init_expr (e); + + e = sym->as->upper[dim]; + if (e->expr_type != EXPR_CONSTANT) + gfc_reduce_init_expr (e); + } + } + /* Need to check if the expression we initialized this to was one of the iso_c_binding named constants. If so, and we're a parameter (constant), let it be iso_c. diff -Nrcpad gcc-9.4.0/gcc/fortran/expr.c gcc-9.5.0/gcc/fortran/expr.c *** gcc-9.4.0/gcc/fortran/expr.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/fortran/expr.c Fri May 27 07:21:11 2022 *************** find_array_element (gfc_constructor_base *** 1330,1336 **** for (i = 0; i < ar->dimen; i++) { if (!gfc_reduce_init_expr (ar->as->lower[i]) ! || !gfc_reduce_init_expr (ar->as->upper[i])) { t = false; cons = NULL; --- 1330,1338 ---- for (i = 0; i < ar->dimen; i++) { if (!gfc_reduce_init_expr (ar->as->lower[i]) ! || !gfc_reduce_init_expr (ar->as->upper[i]) ! || ar->as->upper[i]->expr_type != EXPR_CONSTANT ! || ar->as->lower[i]->expr_type != EXPR_CONSTANT) { t = false; cons = NULL; *************** find_array_element (gfc_constructor_base *** 1344,1352 **** goto depart; } - gcc_assert (ar->as->upper[i]->expr_type == EXPR_CONSTANT - && ar->as->lower[i]->expr_type == EXPR_CONSTANT); - /* Check the bounds. */ if ((ar->as->upper[i] && mpz_cmp (e->value.integer, --- 1346,1351 ---- *************** find_array_section (gfc_expr *expr, gfc_ *** 1553,1559 **** { if ((begin && begin->expr_type != EXPR_CONSTANT) || (finish && finish->expr_type != EXPR_CONSTANT) ! || (step && step->expr_type != EXPR_CONSTANT)) { t = false; goto cleanup; --- 1552,1560 ---- { if ((begin && begin->expr_type != EXPR_CONSTANT) || (finish && finish->expr_type != EXPR_CONSTANT) ! || (step && step->expr_type != EXPR_CONSTANT) ! || !lower ! || !upper) { t = false; goto cleanup; *************** find_substring_ref (gfc_expr *p, gfc_exp *** 1718,1725 **** *newp = gfc_copy_expr (p); free ((*newp)->value.character.string); ! end = (gfc_charlen_t) mpz_get_ui (p->ref->u.ss.end->value.integer); ! start = (gfc_charlen_t) mpz_get_ui (p->ref->u.ss.start->value.integer); if (end >= start) length = end - start + 1; else --- 1719,1726 ---- *newp = gfc_copy_expr (p); free ((*newp)->value.character.string); ! end = (gfc_charlen_t) mpz_get_si (p->ref->u.ss.end->value.integer); ! start = (gfc_charlen_t) mpz_get_si (p->ref->u.ss.start->value.integer); if (end >= start) length = end - start + 1; else *************** gfc_simplify_expr (gfc_expr *p, int type *** 2144,2153 **** && gfc_intrinsic_func_interface (p, 1) == MATCH_ERROR) return false; ! if (p->expr_type == EXPR_FUNCTION) { ! if (p->symtree) ! isym = gfc_find_function (p->symtree->n.sym->name); if (isym && isym->elemental) scalarize_intrinsic_call (p, false); } --- 2145,2153 ---- && gfc_intrinsic_func_interface (p, 1) == MATCH_ERROR) return false; ! if (p->symtree && (p->value.function.isym || p->ts.type == BT_UNKNOWN)) { ! isym = gfc_find_function (p->symtree->n.sym->name); if (isym && isym->elemental) scalarize_intrinsic_call (p, false); } diff -Nrcpad gcc-9.4.0/gcc/fortran/frontend-passes.c gcc-9.5.0/gcc/fortran/frontend-passes.c *** gcc-9.4.0/gcc/fortran/frontend-passes.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/fortran/frontend-passes.c Fri May 27 07:21:11 2022 *************** traverse_io_block (gfc_code *code, bool *** 1301,1308 **** std::swap (start->value.op.op1, start->value.op.op2); gcc_fallthrough (); case INTRINSIC_MINUS: ! if ((start->value.op.op1->expr_type!= EXPR_VARIABLE ! && start->value.op.op2->expr_type != EXPR_CONSTANT) || start->value.op.op1->ref) return false; if (!stack_top || !stack_top->iter --- 1301,1308 ---- std::swap (start->value.op.op1, start->value.op.op2); gcc_fallthrough (); case INTRINSIC_MINUS: ! if (start->value.op.op1->expr_type!= EXPR_VARIABLE ! || start->value.op.op2->expr_type != EXPR_CONSTANT || start->value.op.op1->ref) return false; if (!stack_top || !stack_top->iter *************** doloop_code (gfc_code **c, int *walk_sub *** 2416,2422 **** do_sym = cl->ext.iterator->var->symtree->n.sym; ! if (a->expr && a->expr->symtree && a->expr->symtree->n.sym == do_sym) { if (f->sym->attr.intent == INTENT_OUT) --- 2416,2422 ---- do_sym = cl->ext.iterator->var->symtree->n.sym; ! if (a->expr && a->expr->symtree && f->sym && a->expr->symtree->n.sym == do_sym) { if (f->sym->attr.intent == INTENT_OUT) *************** do_subscript (gfc_expr **e) *** 2679,2684 **** --- 2679,2685 ---- { if (ar->as->lower[i] && ar->as->lower[i]->expr_type == EXPR_CONSTANT + && ar->as->lower[i]->ts.type == BT_INTEGER && mpz_cmp (val, ar->as->lower[i]->value.integer) < 0) gfc_warning (warn, "Array reference at %L out of bounds " "(%ld < %ld) in loop beginning at %L", *************** do_subscript (gfc_expr **e) *** 2688,2693 **** --- 2689,2695 ---- if (ar->as->upper[i] && ar->as->upper[i]->expr_type == EXPR_CONSTANT + && ar->as->upper[i]->ts.type == BT_INTEGER && mpz_cmp (val, ar->as->upper[i]->value.integer) > 0) gfc_warning (warn, "Array reference at %L out of bounds " "(%ld > %ld) in loop beginning at %L", *************** do_subscript (gfc_expr **e) *** 2703,2708 **** --- 2705,2711 ---- { if (ar->as->lower[i] && ar->as->lower[i]->expr_type == EXPR_CONSTANT + && ar->as->lower[i]->ts.type == BT_INTEGER && mpz_cmp (val, ar->as->lower[i]->value.integer) < 0) gfc_warning (warn, "Array reference at %L out of bounds " "(%ld < %ld) in loop beginning at %L", *************** do_subscript (gfc_expr **e) *** 2712,2717 **** --- 2715,2721 ---- if (ar->as->upper[i] && ar->as->upper[i]->expr_type == EXPR_CONSTANT + && ar->as->upper[i]->ts.type == BT_INTEGER && mpz_cmp (val, ar->as->upper[i]->value.integer) > 0) gfc_warning (warn, "Array reference at %L out of bounds " "(%ld > %ld) in loop beginning at %L", *************** inline_matmul_assign (gfc_code **c, int *** 3921,3926 **** --- 3925,3943 ---- if (m_case == none) return 0; + /* We only handle assignment to numeric or logical variables. */ + switch(expr1->ts.type) + { + case BT_INTEGER: + case BT_LOGICAL: + case BT_REAL: + case BT_COMPLEX: + break; + + default: + return 0; + } + ns = insert_block (); /* Assign the type of the zero expression for initializing the resulting diff -Nrcpad gcc-9.4.0/gcc/fortran/intrinsic.c gcc-9.5.0/gcc/fortran/intrinsic.c *** gcc-9.4.0/gcc/fortran/intrinsic.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/fortran/intrinsic.c Fri May 27 07:21:11 2022 *************** gfc_is_intrinsic (gfc_symbol* sym, int s *** 1105,1110 **** --- 1105,1111 ---- /* Check for attributes which prevent the symbol from being INTRINSIC. */ if (sym->attr.external || sym->attr.contained + || sym->attr.recursive || sym->attr.if_source == IFSRC_IFBODY) return false; diff -Nrcpad gcc-9.4.0/gcc/fortran/parse.c gcc-9.5.0/gcc/fortran/parse.c *** gcc-9.4.0/gcc/fortran/parse.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/fortran/parse.c Fri May 27 07:21:11 2022 *************** parse_associate (void) *** 4551,4556 **** --- 4551,4574 ---- in case of association to a derived-type. */ sym->ts = a->target->ts; + /* Don’t share the character length information between associate + variable and target if the length is not a compile-time constant, + as we don’t want to touch some other character length variable when + we try to initialize the associate variable’s character length + variable. + We do it here rather than later so that expressions referencing the + associate variable will automatically have the correctly setup length + information. If we did it at resolution stage the expressions would + use the original length information, and the variable a new different + one, but only the latter one would be correctly initialized at + translation stage, and the former one would need some additional setup + there. */ + if (sym->ts.type == BT_CHARACTER + && sym->ts.u.cl + && !(sym->ts.u.cl->length + && sym->ts.u.cl->length->expr_type == EXPR_CONSTANT)) + sym->ts.u.cl = gfc_new_charlen (gfc_current_ns, NULL); + /* Check if the target expression is array valued. This cannot always be done by looking at target.rank, because that might not have been set yet. Therefore traverse the chain of refs, looking for the last diff -Nrcpad gcc-9.4.0/gcc/fortran/primary.c gcc-9.5.0/gcc/fortran/primary.c *** gcc-9.4.0/gcc/fortran/primary.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/fortran/primary.c Fri May 27 07:21:11 2022 *************** build_actual_constructor (gfc_structure_ *** 3023,3048 **** continue; } ! /* If it was not found, try the default initializer if there's any; otherwise, it's an error unless this is a deferred parameter. */ if (!comp_iter) { ! if (comp->initializer) ! { ! if (!gfc_notify_std (GFC_STD_F2003, "Structure constructor " ! "with missing optional arguments at %C")) ! return false; ! value = gfc_copy_expr (comp->initializer); ! } ! else if (comp->attr.allocatable ! || (comp->ts.type == BT_CLASS ! && CLASS_DATA (comp)->attr.allocatable)) { if (!gfc_notify_std (GFC_STD_F2008, "No initializer for " "allocatable component %qs given in the " "structure constructor at %C", comp->name)) return false; } else if (!comp->attr.artificial) { gfc_error ("No initializer for component %qs given in the" --- 3023,3058 ---- continue; } ! /* If it was not found, apply NULL expression to set the component as ! unallocated. Then try the default initializer if there's any; otherwise, it's an error unless this is a deferred parameter. */ if (!comp_iter) { ! /* F2018 7.5.10: If an allocatable component has no corresponding ! component-data-source, then that component has an allocation ! status of unallocated.... */ ! if (comp->attr.allocatable ! || (comp->ts.type == BT_CLASS ! && CLASS_DATA (comp)->attr.allocatable)) { if (!gfc_notify_std (GFC_STD_F2008, "No initializer for " "allocatable component %qs given in the " "structure constructor at %C", comp->name)) return false; + value = gfc_get_null_expr (&gfc_current_locus); + } + /* ....(Preceeding sentence) If a component with default + initialization has no corresponding component-data-source, then + the default initialization is applied to that component. */ + else if (comp->initializer) + { + if (!gfc_notify_std (GFC_STD_F2003, "Structure constructor " + "with missing optional arguments at %C")) + return false; + value = gfc_copy_expr (comp->initializer); } + /* Do not trap components such as the string length for deferred + length character components. */ else if (!comp->attr.artificial) { gfc_error ("No initializer for component %qs given in the" diff -Nrcpad gcc-9.4.0/gcc/fortran/resolve.c gcc-9.5.0/gcc/fortran/resolve.c *** gcc-9.4.0/gcc/fortran/resolve.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/fortran/resolve.c Fri May 27 07:21:11 2022 *************** gfc_resolve_dim_arg (gfc_expr *dim) *** 4736,4741 **** --- 4736,4743 ---- base symbol. We traverse the list of reference structures, setting the stored reference to references. Component references can provide an additional array specification. */ + static void + resolve_assoc_var (gfc_symbol* sym, bool resolve_target); static void find_array_spec (gfc_expr *e) *************** find_array_spec (gfc_expr *e) *** 4745,4750 **** --- 4747,4759 ---- gfc_ref *ref; bool class_as = false; + if (e->symtree->n.sym->assoc) + { + if (e->symtree->n.sym->assoc->target) + gfc_resolve_expr (e->symtree->n.sym->assoc->target); + resolve_assoc_var (e->symtree->n.sym, false); + } + if (e->symtree->n.sym->ts.type == BT_CLASS) { as = CLASS_DATA (e->symtree->n.sym)->as; *************** resolve_assoc_var (gfc_symbol* sym, bool *** 8933,8940 **** if (!sym->ts.u.cl) sym->ts.u.cl = target->ts.u.cl; ! if (sym->ts.deferred && target->expr_type == EXPR_VARIABLE ! && target->symtree->n.sym->attr.dummy && sym->ts.u.cl == target->ts.u.cl) { sym->ts.u.cl = gfc_new_charlen (sym->ns, NULL); --- 8942,8948 ---- if (!sym->ts.u.cl) sym->ts.u.cl = target->ts.u.cl; ! if (sym->ts.deferred && sym->ts.u.cl == target->ts.u.cl) { sym->ts.u.cl = gfc_new_charlen (sym->ns, NULL); *************** resolve_assoc_var (gfc_symbol* sym, bool *** 8953,8960 **** || sym->ts.u.cl->length->expr_type != EXPR_CONSTANT) && target->expr_type != EXPR_VARIABLE) { ! sym->ts.u.cl = gfc_new_charlen (sym->ns, NULL); ! sym->ts.deferred = 1; /* This is reset in trans-stmt.c after the assignment of the target expression to the associate name. */ --- 8961,8971 ---- || sym->ts.u.cl->length->expr_type != EXPR_CONSTANT) && target->expr_type != EXPR_VARIABLE) { ! if (!sym->ts.deferred) ! { ! sym->ts.u.cl = gfc_new_charlen (sym->ns, NULL); ! sym->ts.deferred = 1; ! } /* This is reset in trans-stmt.c after the assignment of the target expression to the associate name. */ *************** resolve_fl_procedure (gfc_symbol *sym, i *** 12735,12741 **** /* An elemental function is required to return a scalar 12.7.1 */ if (sym->attr.elemental && sym->attr.function ! && (sym->as || (sym->ts.type == BT_CLASS && CLASS_DATA (sym)->as))) { gfc_error ("ELEMENTAL function %qs at %L must have a scalar " "result", sym->name, &sym->declared_at); --- 12746,12753 ---- /* An elemental function is required to return a scalar 12.7.1 */ if (sym->attr.elemental && sym->attr.function ! && (sym->as || (sym->ts.type == BT_CLASS && sym->attr.class_ok ! && CLASS_DATA (sym)->as))) { gfc_error ("ELEMENTAL function %qs at %L must have a scalar " "result", sym->name, &sym->declared_at); diff -Nrcpad gcc-9.4.0/gcc/fortran/simplify.c gcc-9.5.0/gcc/fortran/simplify.c *** gcc-9.4.0/gcc/fortran/simplify.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/fortran/simplify.c Fri May 27 07:21:11 2022 *************** simplify_bound (gfc_expr *array, gfc_exp *** 4197,4202 **** --- 4197,4208 ---- || (as->type == AS_ASSUMED_SHAPE && upper))) return NULL; + /* 'array' shall not be an unallocated allocatable variable or a pointer that + is not associated. */ + if (array->expr_type == EXPR_VARIABLE + && (gfc_expr_attr (array).allocatable || gfc_expr_attr (array).pointer)) + return NULL; + gcc_assert (!as || (as->type != AS_DEFERRED && array->expr_type == EXPR_VARIABLE *************** gfc_simplify_transfer (gfc_expr *source, *** 7964,7970 **** set even for array expressions, in order to pass this information into gfc_target_interpret_expr. */ if (result->ts.type == BT_CHARACTER && gfc_is_constant_expr (mold_element)) ! result->value.character.length = mold_element->value.character.length; /* Set the number of elements in the result, and determine its size. */ --- 7970,7987 ---- set even for array expressions, in order to pass this information into gfc_target_interpret_expr. */ if (result->ts.type == BT_CHARACTER && gfc_is_constant_expr (mold_element)) ! { ! result->value.character.length = mold_element->value.character.length; ! ! /* Let the typespec of the result inherit the string length. ! This is crucial if a resulting array has size zero. */ ! if (mold_element->ts.u.cl->length) ! result->ts.u.cl->length = gfc_copy_expr (mold_element->ts.u.cl->length); ! else ! result->ts.u.cl->length = ! gfc_get_int_expr (gfc_charlen_int_kind, NULL, ! mold_element->value.character.length); ! } /* Set the number of elements in the result, and determine its size. */ diff -Nrcpad gcc-9.4.0/gcc/fortran/trans-array.c gcc-9.5.0/gcc/fortran/trans-array.c *** gcc-9.4.0/gcc/fortran/trans-array.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/fortran/trans-array.c Fri May 27 07:21:11 2022 *************** gfc_trans_g77_array (gfc_symbol * sym, g *** 6609,6615 **** /* Set the pointer itself if we aren't using the parameter directly. */ if (TREE_CODE (parm) != PARM_DECL) { ! tmp = convert (TREE_TYPE (parm), GFC_DECL_SAVED_DESCRIPTOR (parm)); gfc_add_modify (&init, parm, tmp); } stmt = gfc_finish_block (&init); --- 6609,6622 ---- /* Set the pointer itself if we aren't using the parameter directly. */ if (TREE_CODE (parm) != PARM_DECL) { ! tmp = GFC_DECL_SAVED_DESCRIPTOR (parm); ! if (sym->ts.type == BT_CLASS) ! { ! tmp = build_fold_indirect_ref_loc (input_location, tmp); ! tmp = gfc_class_data_get (tmp); ! tmp = gfc_conv_descriptor_data_get (tmp); ! } ! tmp = convert (TREE_TYPE (parm), tmp); gfc_add_modify (&init, parm, tmp); } stmt = gfc_finish_block (&init); *************** gfc_trans_dummy_array_bias (gfc_symbol * *** 6705,6711 **** && VAR_P (sym->ts.u.cl->backend_decl)) gfc_conv_string_length (sym->ts.u.cl, NULL, &init); ! checkparm = (as->type == AS_EXPLICIT && (gfc_option.rtcheck & GFC_RTCHECK_BOUNDS)); no_repack = !(GFC_DECL_PACKED_ARRAY (tmpdesc) --- 6712,6719 ---- && VAR_P (sym->ts.u.cl->backend_decl)) gfc_conv_string_length (sym->ts.u.cl, NULL, &init); ! /* TODO: Fix the exclusion of class arrays from extent checking. */ ! checkparm = (as->type == AS_EXPLICIT && !is_classarray && (gfc_option.rtcheck & GFC_RTCHECK_BOUNDS)); no_repack = !(GFC_DECL_PACKED_ARRAY (tmpdesc) *************** gfc_conv_expr_descriptor (gfc_se *se, gf *** 7521,7529 **** && expr->value.function.esym->attr.elemental) || (expr->value.function.isym != NULL && expr->value.function.isym->elemental) || gfc_inline_intrinsic_function_p (expr)); - else - gcc_assert (ss_type == GFC_SS_INTRINSIC); need_tmp = 1; if (expr->ts.type == BT_CHARACTER --- 7529,7537 ---- && expr->value.function.esym->attr.elemental) || (expr->value.function.isym != NULL && expr->value.function.isym->elemental) + || (gfc_expr_attr (expr).proc_pointer + && gfc_expr_attr (expr).elemental) || gfc_inline_intrinsic_function_p (expr)); need_tmp = 1; if (expr->ts.type == BT_CHARACTER *************** gfc_conv_expr_descriptor (gfc_se *se, gf *** 7712,7726 **** /* Set the string_length for a character array. */ if (expr->ts.type == BT_CHARACTER) { ! se->string_length = gfc_get_expr_charlen (expr); if (VAR_P (se->string_length) && expr->ts.u.cl->backend_decl == se->string_length) tmp = ss_info->string_length; else tmp = se->string_length; ! if (expr->ts.deferred) gfc_add_modify (&se->pre, expr->ts.u.cl->backend_decl, tmp); } /* If we have an array section or are assigning make sure that --- 7720,7740 ---- /* Set the string_length for a character array. */ if (expr->ts.type == BT_CHARACTER) { ! if (deferred_array_component) ! se->string_length = ss_info->string_length; ! else ! se->string_length = gfc_get_expr_charlen (expr); ! if (VAR_P (se->string_length) && expr->ts.u.cl->backend_decl == se->string_length) tmp = ss_info->string_length; else tmp = se->string_length; ! if (expr->ts.deferred && VAR_P (expr->ts.u.cl->backend_decl)) gfc_add_modify (&se->pre, expr->ts.u.cl->backend_decl, tmp); + else + expr->ts.u.cl->backend_decl = tmp; } /* If we have an array section or are assigning make sure that diff -Nrcpad gcc-9.4.0/gcc/fortran/trans-decl.c gcc-9.5.0/gcc/fortran/trans-decl.c *** gcc-9.4.0/gcc/fortran/trans-decl.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/fortran/trans-decl.c Fri May 27 07:21:11 2022 *************** gfc_get_symbol_decl (gfc_symbol * sym) *** 1506,1512 **** declaration of the entity and memory allocated/deallocated. */ if ((sym->ts.type == BT_DERIVED || sym->ts.type == BT_CLASS) && sym->param_list != NULL ! && !(sym->attr.host_assoc || sym->attr.use_assoc || sym->attr.dummy)) gfc_defer_symbol_init (sym); /* Dummy PDT 'len' parameters should be checked when they are explicit. */ --- 1506,1513 ---- declaration of the entity and memory allocated/deallocated. */ if ((sym->ts.type == BT_DERIVED || sym->ts.type == BT_CLASS) && sym->param_list != NULL ! && gfc_current_ns == sym->ns ! && !(sym->attr.use_assoc || sym->attr.dummy)) gfc_defer_symbol_init (sym); /* Dummy PDT 'len' parameters should be checked when they are explicit. */ diff -Nrcpad gcc-9.4.0/gcc/fortran/trans-expr.c gcc-9.5.0/gcc/fortran/trans-expr.c *** gcc-9.4.0/gcc/fortran/trans-expr.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/fortran/trans-expr.c Fri May 27 07:21:11 2022 *************** gfc_trans_class_init_assign (gfc_code *c *** 1655,1662 **** } } ! if (code->expr1->symtree->n.sym->attr.optional ! || code->expr1->symtree->n.sym->ns->proc_name->attr.entry_master) { tree present = gfc_conv_expr_present (code->expr1->symtree->n.sym); tmp = build3_loc (input_location, COND_EXPR, TREE_TYPE (tmp), --- 1655,1663 ---- } } ! if (code->expr1->symtree->n.sym->attr.dummy ! && (code->expr1->symtree->n.sym->attr.optional ! || code->expr1->symtree->n.sym->ns->proc_name->attr.entry_master)) { tree present = gfc_conv_expr_present (code->expr1->symtree->n.sym); tmp = build3_loc (input_location, COND_EXPR, TREE_TYPE (tmp), *************** gfc_conv_string_length (gfc_charlen * cl *** 2470,2476 **** se.expr, build_zero_cst (TREE_TYPE (se.expr))); gfc_add_block_to_block (pblock, &se.pre); ! if (cl->backend_decl) gfc_add_modify (pblock, cl->backend_decl, se.expr); else cl->backend_decl = gfc_evaluate_now (se.expr, pblock); --- 2471,2477 ---- se.expr, build_zero_cst (TREE_TYPE (se.expr))); gfc_add_block_to_block (pblock, &se.pre); ! if (cl->backend_decl && VAR_P (cl->backend_decl)) gfc_add_modify (pblock, cl->backend_decl, se.expr); else cl->backend_decl = gfc_evaluate_now (se.expr, pblock); *************** gfc_conv_substring (gfc_se * se, gfc_ref *** 2530,2536 **** if (!CONSTANT_CLASS_P (tmp) && !DECL_P (tmp)) end.expr = gfc_evaluate_now (end.expr, &se->pre); ! if (gfc_option.rtcheck & GFC_RTCHECK_BOUNDS) { tree nonempty = fold_build2_loc (input_location, LE_EXPR, logical_type_node, start.expr, --- 2531,2539 ---- if (!CONSTANT_CLASS_P (tmp) && !DECL_P (tmp)) end.expr = gfc_evaluate_now (end.expr, &se->pre); ! if ((gfc_option.rtcheck & GFC_RTCHECK_BOUNDS) ! && (ref->u.ss.start->symtree ! && !ref->u.ss.start->symtree->n.sym->attr.implied_index)) { tree nonempty = fold_build2_loc (input_location, LE_EXPR, logical_type_node, start.expr, *************** gfc_conv_component_ref (gfc_se * se, gfc *** 2663,2669 **** /* Allocatable deferred char arrays are to be handled by the gfc_deferred_ strlen () conditional below. */ if (c->ts.type == BT_CHARACTER && !c->attr.proc_pointer ! && !(c->attr.allocatable && c->ts.deferred) && !c->attr.pdt_string) { tmp = c->ts.u.cl->backend_decl; --- 2666,2672 ---- /* Allocatable deferred char arrays are to be handled by the gfc_deferred_ strlen () conditional below. */ if (c->ts.type == BT_CHARACTER && !c->attr.proc_pointer ! && !c->ts.deferred && !c->attr.pdt_string) { tmp = c->ts.u.cl->backend_decl; *************** gfc_conv_procedure_call (gfc_se * se, gf *** 5566,5572 **** CLASS_DATA (fsym)->attr.class_pointer || CLASS_DATA (fsym)->attr.allocatable); } ! else if (UNLIMITED_POLY (fsym) && e->ts.type != BT_CLASS) { /* The intrinsic type needs to be converted to a temporary CLASS object for the unlimited polymorphic formal. */ --- 5569,5576 ---- CLASS_DATA (fsym)->attr.class_pointer || CLASS_DATA (fsym)->attr.allocatable); } ! else if (UNLIMITED_POLY (fsym) && e->ts.type != BT_CLASS ! && gfc_expr_attr (e).flavor != FL_PROCEDURE) { /* The intrinsic type needs to be converted to a temporary CLASS object for the unlimited polymorphic formal. */ *************** gfc_conv_procedure_call (gfc_se * se, gf *** 6159,6164 **** --- 6163,6177 ---- fsym ? fsym->attr.intent : INTENT_INOUT, fsym && fsym->attr.pointer); + else if (e->ts.type == BT_CLASS && CLASS_DATA (e)->as + && CLASS_DATA (e)->as->type == AS_ASSUMED_SIZE + && nodesc_arg && fsym->ts.type == BT_DERIVED) + /* An assumed size class actual argument being passed to + a 'no descriptor' formal argument just requires the + data pointer to be passed. For class dummy arguments + this is stored in the symbol backend decl.. */ + parmse.expr = e->symtree->n.sym->backend_decl; + else if (gfc_is_class_array_ref (e, NULL) && fsym && fsym->ts.type == BT_DERIVED) /* The actual argument is a component reference to an *************** gfc_conv_procedure_call (gfc_se * se, gf *** 6229,6234 **** --- 6242,6258 ---- // deallocate the components first tmp = gfc_deallocate_alloc_comp (fsym->ts.u.derived, parmse.expr, e->rank); + /* But check whether dummy argument is optional. */ + if (tmp != NULL_TREE + && fsym->attr.optional + && e->expr_type == EXPR_VARIABLE + && e->symtree->n.sym->attr.optional) + { + tree present; + present = gfc_conv_expr_present (e->symtree->n.sym); + tmp = build3_v (COND_EXPR, present, tmp, + build_empty_stmt (input_location)); + } if (tmp != NULL_TREE) gfc_add_expr_to_block (&se->pre, tmp); } *************** gfc_trans_structure_assign (tree dest, g *** 8423,8430 **** return gfc_finish_block (&block); } ! void ! gfc_conv_union_initializer (vec *v, gfc_component *un, gfc_expr *init) { gfc_constructor *ctor; --- 8447,8454 ---- return gfc_finish_block (&block); } ! static void ! gfc_conv_union_initializer (vec *&v, gfc_component *un, gfc_expr *init) { gfc_constructor *ctor; *************** gfc_trans_assignment_1 (gfc_expr * expr1 *** 10806,10812 **** || gfc_is_class_array_ref (expr1, NULL) || gfc_is_class_scalar_expr (expr1) || gfc_is_class_array_ref (expr2, NULL) ! || gfc_is_class_scalar_expr (expr2)); realloc_flag = flag_realloc_lhs && gfc_is_reallocatable_lhs (expr1) --- 10830,10837 ---- || gfc_is_class_array_ref (expr1, NULL) || gfc_is_class_scalar_expr (expr1) || gfc_is_class_array_ref (expr2, NULL) ! || gfc_is_class_scalar_expr (expr2)) ! && lhs_attr.flavor != FL_PROCEDURE; realloc_flag = flag_realloc_lhs && gfc_is_reallocatable_lhs (expr1) diff -Nrcpad gcc-9.4.0/gcc/fortran/trans-intrinsic.c gcc-9.5.0/gcc/fortran/trans-intrinsic.c *** gcc-9.4.0/gcc/fortran/trans-intrinsic.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/fortran/trans-intrinsic.c Fri May 27 07:21:11 2022 *************** gfc_conv_associated (gfc_se *se, gfc_exp *** 8473,8479 **** else { /* An optional target. */ ! if (arg2->expr->ts.type == BT_CLASS) gfc_add_data_component (arg2->expr); nonzero_charlen = NULL_TREE; --- 8473,8480 ---- else { /* An optional target. */ ! if (arg2->expr->ts.type == BT_CLASS ! && arg2->expr->expr_type != EXPR_FUNCTION) gfc_add_data_component (arg2->expr); nonzero_charlen = NULL_TREE; *************** gfc_conv_associated (gfc_se *se, gfc_exp *** 8501,8506 **** --- 8502,8512 ---- && arg2->expr->symtree->n.sym->attr.dummy) arg2se.expr = build_fold_indirect_ref_loc (input_location, arg2se.expr); + if (arg2->expr->ts.type == BT_CLASS) + { + arg2se.expr = gfc_evaluate_now (arg2se.expr, &arg2se.pre); + arg2se.expr = gfc_class_data_get (arg2se.expr); + } gfc_add_block_to_block (&se->pre, &arg1se.pre); gfc_add_block_to_block (&se->post, &arg1se.post); gfc_add_block_to_block (&se->pre, &arg2se.pre); diff -Nrcpad gcc-9.4.0/gcc/fortran/trans-stmt.c gcc-9.5.0/gcc/fortran/trans-stmt.c *** gcc-9.4.0/gcc/fortran/trans-stmt.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/fortran/trans-stmt.c Fri May 27 07:21:11 2022 *************** trans_associate_var (gfc_symbol *sym, gf *** 1719,1725 **** gfc_conv_expr_descriptor (&se, e); if (sym->ts.type == BT_CHARACTER ! && !se.direct_byref && sym->ts.deferred && !sym->attr.select_type_temporary && VAR_P (sym->ts.u.cl->backend_decl) && se.string_length != sym->ts.u.cl->backend_decl) --- 1719,1725 ---- gfc_conv_expr_descriptor (&se, e); if (sym->ts.type == BT_CHARACTER ! && sym->ts.deferred && !sym->attr.select_type_temporary && VAR_P (sym->ts.u.cl->backend_decl) && se.string_length != sym->ts.u.cl->backend_decl) diff -Nrcpad gcc-9.4.0/gcc/fortran/trans-types.c gcc-9.5.0/gcc/fortran/trans-types.c *** gcc-9.4.0/gcc/fortran/trans-types.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/fortran/trans-types.c Fri May 27 07:21:11 2022 *************** gfc_get_array_descr_info (const_tree typ *** 3414,3421 **** if (!integer_zerop (dtype_off)) t = fold_build_pointer_plus (t, rank_off); ! t = build1 (NOP_EXPR, build_pointer_type (gfc_array_index_type), t); ! t = build1 (INDIRECT_REF, gfc_array_index_type, t); info->rank = t; t = build0 (PLACEHOLDER_EXPR, TREE_TYPE (dim_off)); t = size_binop (MULT_EXPR, t, dim_size); --- 3414,3421 ---- if (!integer_zerop (dtype_off)) t = fold_build_pointer_plus (t, rank_off); ! t = build1 (NOP_EXPR, build_pointer_type (TREE_TYPE (field)), t); ! t = build1 (INDIRECT_REF, TREE_TYPE (field), t); info->rank = t; t = build0 (PLACEHOLDER_EXPR, TREE_TYPE (dim_off)); t = size_binop (MULT_EXPR, t, dim_size); diff -Nrcpad gcc-9.4.0/gcc/gengtype-lex.c gcc-9.5.0/gcc/gengtype-lex.c *** gcc-9.4.0/gcc/gengtype-lex.c Tue Jun 1 07:54:16 2021 --- gcc-9.5.0/gcc/gengtype-lex.c Fri May 27 07:22:23 2022 *************** int yy_flex_debug = 0; *** 1183,1189 **** #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET char *yytext; ! #line 1 "/home/rguenther/src/releases/gcc-9.4.0/gcc-9.4.0/gcc/gengtype-lex.l" /* -*- indented-text -*- */ /* Process source files and output type information. Copyright (C) 2002-2019 Free Software Foundation, Inc. --- 1183,1189 ---- #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET char *yytext; ! #line 1 "/home/rguenther/src/releases/gcc-9.5.0/gcc-9.5.0/gcc/gengtype-lex.l" /* -*- indented-text -*- */ /* Process source files and output type information. Copyright (C) 2002-2019 Free Software Foundation, Inc. *************** You should have received a copy of the G *** 1204,1210 **** along with GCC; see the file COPYING3. If not see . */ #define YY_NO_INPUT 1 ! #line 24 "/home/rguenther/src/releases/gcc-9.4.0/gcc-9.4.0/gcc/gengtype-lex.l" #ifdef HOST_GENERATOR_FILE #include "config.h" #define GENERATOR_FILE 1 --- 1204,1210 ---- along with GCC; see the file COPYING3. If not see . */ #define YY_NO_INPUT 1 ! #line 24 "/home/rguenther/src/releases/gcc-9.5.0/gcc-9.5.0/gcc/gengtype-lex.l" #ifdef HOST_GENERATOR_FILE #include "config.h" #define GENERATOR_FILE 1 *************** update_lineno (const char *l, size_t len *** 1233,1239 **** } #line 1230 "gengtype-lex.c" ! #line 59 "/home/rguenther/src/releases/gcc-9.4.0/gcc-9.4.0/gcc/gengtype-lex.l" /* Include '::' in identifiers to capture C++ scope qualifiers. */ #line 1234 "gengtype-lex.c" --- 1233,1239 ---- } #line 1230 "gengtype-lex.c" ! #line 59 "/home/rguenther/src/releases/gcc-9.5.0/gcc-9.5.0/gcc/gengtype-lex.l" /* Include '::' in identifiers to capture C++ scope qualifiers. */ #line 1234 "gengtype-lex.c" *************** YY_DECL *** 1457,1463 **** } { ! #line 67 "/home/rguenther/src/releases/gcc-9.4.0/gcc-9.4.0/gcc/gengtype-lex.l" /* Do this on entry to yylex(): */ *yylval = 0; --- 1457,1463 ---- } { ! #line 67 "/home/rguenther/src/releases/gcc-9.5.0/gcc-9.5.0/gcc/gengtype-lex.l" /* Do this on entry to yylex(): */ *yylval = 0; *************** YY_LINENO_REWIND_TO(yy_cp - 1); *** 1529,1535 **** (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 78 "/home/rguenther/src/releases/gcc-9.4.0/gcc-9.4.0/gcc/gengtype-lex.l" { BEGIN(in_struct); return TYPEDEF; --- 1529,1535 ---- (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 78 "/home/rguenther/src/releases/gcc-9.5.0/gcc-9.5.0/gcc/gengtype-lex.l" { BEGIN(in_struct); return TYPEDEF; *************** YY_LINENO_REWIND_TO(yy_cp - 1); *** 1542,1548 **** (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 82 "/home/rguenther/src/releases/gcc-9.4.0/gcc-9.4.0/gcc/gengtype-lex.l" { BEGIN(in_struct); return STRUCT; --- 1542,1548 ---- (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 82 "/home/rguenther/src/releases/gcc-9.5.0/gcc-9.5.0/gcc/gengtype-lex.l" { BEGIN(in_struct); return STRUCT; *************** YY_LINENO_REWIND_TO(yy_cp - 1); *** 1555,1561 **** (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 86 "/home/rguenther/src/releases/gcc-9.4.0/gcc-9.4.0/gcc/gengtype-lex.l" { BEGIN(in_struct); return UNION; --- 1555,1561 ---- (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 86 "/home/rguenther/src/releases/gcc-9.5.0/gcc-9.5.0/gcc/gengtype-lex.l" { BEGIN(in_struct); return UNION; *************** YY_LINENO_REWIND_TO(yy_cp - 1); *** 1568,1574 **** (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 90 "/home/rguenther/src/releases/gcc-9.4.0/gcc-9.4.0/gcc/gengtype-lex.l" { BEGIN(in_struct); return STRUCT; --- 1568,1574 ---- (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 90 "/home/rguenther/src/releases/gcc-9.5.0/gcc-9.5.0/gcc/gengtype-lex.l" { BEGIN(in_struct); return STRUCT; *************** YY_LINENO_REWIND_TO(yy_cp - 1); *** 1581,1587 **** (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 94 "/home/rguenther/src/releases/gcc-9.4.0/gcc-9.4.0/gcc/gengtype-lex.l" { BEGIN(in_struct); return EXTERN; --- 1581,1587 ---- (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 94 "/home/rguenther/src/releases/gcc-9.5.0/gcc-9.5.0/gcc/gengtype-lex.l" { BEGIN(in_struct); return EXTERN; *************** YY_LINENO_REWIND_TO(yy_cp - 1); *** 1594,1600 **** (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 98 "/home/rguenther/src/releases/gcc-9.4.0/gcc-9.4.0/gcc/gengtype-lex.l" { BEGIN(in_struct); return STATIC; --- 1594,1600 ---- (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 98 "/home/rguenther/src/releases/gcc-9.5.0/gcc-9.5.0/gcc/gengtype-lex.l" { BEGIN(in_struct); return STATIC; *************** YY_RULE_SETUP *** 1605,1629 **** case 7: YY_RULE_SETUP ! #line 106 "/home/rguenther/src/releases/gcc-9.4.0/gcc-9.4.0/gcc/gengtype-lex.l" { BEGIN(in_struct_comment); } YY_BREAK case 8: /* rule 8 can match eol */ YY_RULE_SETUP ! #line 107 "/home/rguenther/src/releases/gcc-9.4.0/gcc-9.4.0/gcc/gengtype-lex.l" { lexer_line.line++; } YY_BREAK case 9: /* rule 9 can match eol */ YY_RULE_SETUP ! #line 109 "/home/rguenther/src/releases/gcc-9.4.0/gcc-9.4.0/gcc/gengtype-lex.l" { update_lineno (yytext, yyleng); } YY_BREAK case 10: /* rule 10 can match eol */ YY_RULE_SETUP ! #line 110 "/home/rguenther/src/releases/gcc-9.4.0/gcc-9.4.0/gcc/gengtype-lex.l" { lexer_line.line++; } YY_BREAK case 11: --- 1605,1629 ---- case 7: YY_RULE_SETUP ! #line 106 "/home/rguenther/src/releases/gcc-9.5.0/gcc-9.5.0/gcc/gengtype-lex.l" { BEGIN(in_struct_comment); } YY_BREAK case 8: /* rule 8 can match eol */ YY_RULE_SETUP ! #line 107 "/home/rguenther/src/releases/gcc-9.5.0/gcc-9.5.0/gcc/gengtype-lex.l" { lexer_line.line++; } YY_BREAK case 9: /* rule 9 can match eol */ YY_RULE_SETUP ! #line 109 "/home/rguenther/src/releases/gcc-9.5.0/gcc-9.5.0/gcc/gengtype-lex.l" { update_lineno (yytext, yyleng); } YY_BREAK case 10: /* rule 10 can match eol */ YY_RULE_SETUP ! #line 110 "/home/rguenther/src/releases/gcc-9.5.0/gcc-9.5.0/gcc/gengtype-lex.l" { lexer_line.line++; } YY_BREAK case 11: *************** YY_LINENO_REWIND_TO(yy_bp + 5); *** 1633,1639 **** (yy_c_buf_p) = yy_cp = yy_bp + 5; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 112 "/home/rguenther/src/releases/gcc-9.4.0/gcc-9.4.0/gcc/gengtype-lex.l" /* don't care */ YY_BREAK case 12: --- 1633,1639 ---- (yy_c_buf_p) = yy_cp = yy_bp + 5; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 112 "/home/rguenther/src/releases/gcc-9.5.0/gcc-9.5.0/gcc/gengtype-lex.l" /* don't care */ YY_BREAK case 12: *************** case 12: *** 1642,1658 **** YY_LINENO_REWIND_TO(yy_cp - 1); (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ ! #line 114 "/home/rguenther/src/releases/gcc-9.4.0/gcc-9.4.0/gcc/gengtype-lex.l" case 13: /* rule 13 can match eol */ ! #line 115 "/home/rguenther/src/releases/gcc-9.4.0/gcc-9.4.0/gcc/gengtype-lex.l" case 14: /* rule 14 can match eol */ ! #line 116 "/home/rguenther/src/releases/gcc-9.4.0/gcc-9.4.0/gcc/gengtype-lex.l" case 15: /* rule 15 can match eol */ YY_RULE_SETUP ! #line 116 "/home/rguenther/src/releases/gcc-9.4.0/gcc-9.4.0/gcc/gengtype-lex.l" { *yylval = XDUPVAR (const char, yytext, yyleng, yyleng + 1); return IGNORABLE_CXX_KEYWORD; --- 1642,1658 ---- YY_LINENO_REWIND_TO(yy_cp - 1); (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ ! #line 114 "/home/rguenther/src/releases/gcc-9.5.0/gcc-9.5.0/gcc/gengtype-lex.l" case 13: /* rule 13 can match eol */ ! #line 115 "/home/rguenther/src/releases/gcc-9.5.0/gcc-9.5.0/gcc/gengtype-lex.l" case 14: /* rule 14 can match eol */ ! #line 116 "/home/rguenther/src/releases/gcc-9.5.0/gcc-9.5.0/gcc/gengtype-lex.l" case 15: /* rule 15 can match eol */ YY_RULE_SETUP ! #line 116 "/home/rguenther/src/releases/gcc-9.5.0/gcc-9.5.0/gcc/gengtype-lex.l" { *yylval = XDUPVAR (const char, yytext, yyleng, yyleng + 1); return IGNORABLE_CXX_KEYWORD; *************** YY_LINENO_REWIND_TO(yy_bp + 3); *** 1665,1671 **** (yy_c_buf_p) = yy_cp = yy_bp + 3; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 120 "/home/rguenther/src/releases/gcc-9.4.0/gcc-9.4.0/gcc/gengtype-lex.l" { return GTY_TOKEN; } YY_BREAK case 17: --- 1665,1671 ---- (yy_c_buf_p) = yy_cp = yy_bp + 3; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 120 "/home/rguenther/src/releases/gcc-9.5.0/gcc-9.5.0/gcc/gengtype-lex.l" { return GTY_TOKEN; } YY_BREAK case 17: *************** YY_LINENO_REWIND_TO(yy_bp + 5); *** 1675,1681 **** (yy_c_buf_p) = yy_cp = yy_bp + 5; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 121 "/home/rguenther/src/releases/gcc-9.4.0/gcc-9.4.0/gcc/gengtype-lex.l" { return UNION; } YY_BREAK case 18: --- 1675,1681 ---- (yy_c_buf_p) = yy_cp = yy_bp + 5; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 121 "/home/rguenther/src/releases/gcc-9.5.0/gcc-9.5.0/gcc/gengtype-lex.l" { return UNION; } YY_BREAK case 18: *************** YY_LINENO_REWIND_TO(yy_bp + 6); *** 1685,1691 **** (yy_c_buf_p) = yy_cp = yy_bp + 6; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 122 "/home/rguenther/src/releases/gcc-9.4.0/gcc-9.4.0/gcc/gengtype-lex.l" { return STRUCT; } YY_BREAK case 19: --- 1685,1691 ---- (yy_c_buf_p) = yy_cp = yy_bp + 6; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 122 "/home/rguenther/src/releases/gcc-9.5.0/gcc-9.5.0/gcc/gengtype-lex.l" { return STRUCT; } YY_BREAK case 19: *************** YY_LINENO_REWIND_TO(yy_bp + 5); *** 1695,1701 **** (yy_c_buf_p) = yy_cp = yy_bp + 5; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 123 "/home/rguenther/src/releases/gcc-9.4.0/gcc-9.4.0/gcc/gengtype-lex.l" { return STRUCT; } YY_BREAK case 20: --- 1695,1701 ---- (yy_c_buf_p) = yy_cp = yy_bp + 5; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 123 "/home/rguenther/src/releases/gcc-9.5.0/gcc-9.5.0/gcc/gengtype-lex.l" { return STRUCT; } YY_BREAK case 20: *************** YY_LINENO_REWIND_TO(yy_bp + 7); *** 1705,1711 **** (yy_c_buf_p) = yy_cp = yy_bp + 7; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 124 "/home/rguenther/src/releases/gcc-9.4.0/gcc-9.4.0/gcc/gengtype-lex.l" { return TYPEDEF; } YY_BREAK case 21: --- 1705,1711 ---- (yy_c_buf_p) = yy_cp = yy_bp + 7; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 124 "/home/rguenther/src/releases/gcc-9.5.0/gcc-9.5.0/gcc/gengtype-lex.l" { return TYPEDEF; } YY_BREAK case 21: *************** YY_LINENO_REWIND_TO(yy_bp + 4); *** 1715,1721 **** (yy_c_buf_p) = yy_cp = yy_bp + 4; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 125 "/home/rguenther/src/releases/gcc-9.4.0/gcc-9.4.0/gcc/gengtype-lex.l" { return ENUM; } YY_BREAK case 22: --- 1715,1721 ---- (yy_c_buf_p) = yy_cp = yy_bp + 4; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 125 "/home/rguenther/src/releases/gcc-9.5.0/gcc-9.5.0/gcc/gengtype-lex.l" { return ENUM; } YY_BREAK case 22: *************** YY_LINENO_REWIND_TO(yy_bp + 9); *** 1725,1731 **** (yy_c_buf_p) = yy_cp = yy_bp + 9; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 126 "/home/rguenther/src/releases/gcc-9.4.0/gcc-9.4.0/gcc/gengtype-lex.l" { return PTR_ALIAS; } YY_BREAK case 23: --- 1725,1731 ---- (yy_c_buf_p) = yy_cp = yy_bp + 9; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 126 "/home/rguenther/src/releases/gcc-9.5.0/gcc-9.5.0/gcc/gengtype-lex.l" { return PTR_ALIAS; } YY_BREAK case 23: *************** YY_LINENO_REWIND_TO(yy_bp + 10); *** 1735,1741 **** (yy_c_buf_p) = yy_cp = yy_bp + 10; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 127 "/home/rguenther/src/releases/gcc-9.4.0/gcc-9.4.0/gcc/gengtype-lex.l" { return NESTED_PTR; } YY_BREAK case 24: --- 1735,1741 ---- (yy_c_buf_p) = yy_cp = yy_bp + 10; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 127 "/home/rguenther/src/releases/gcc-9.5.0/gcc-9.5.0/gcc/gengtype-lex.l" { return NESTED_PTR; } YY_BREAK case 24: *************** YY_LINENO_REWIND_TO(yy_bp + 4); *** 1745,1756 **** (yy_c_buf_p) = yy_cp = yy_bp + 4; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 128 "/home/rguenther/src/releases/gcc-9.4.0/gcc-9.4.0/gcc/gengtype-lex.l" { return USER_GTY; } YY_BREAK case 25: YY_RULE_SETUP ! #line 129 "/home/rguenther/src/releases/gcc-9.4.0/gcc-9.4.0/gcc/gengtype-lex.l" { return NUM; } YY_BREAK case 26: --- 1745,1756 ---- (yy_c_buf_p) = yy_cp = yy_bp + 4; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 128 "/home/rguenther/src/releases/gcc-9.5.0/gcc-9.5.0/gcc/gengtype-lex.l" { return USER_GTY; } YY_BREAK case 25: YY_RULE_SETUP ! #line 129 "/home/rguenther/src/releases/gcc-9.5.0/gcc-9.5.0/gcc/gengtype-lex.l" { return NUM; } YY_BREAK case 26: *************** case 26: *** 1759,1769 **** YY_LINENO_REWIND_TO(yy_cp - 1); (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ ! #line 132 "/home/rguenther/src/releases/gcc-9.4.0/gcc-9.4.0/gcc/gengtype-lex.l" case 27: /* rule 27 can match eol */ YY_RULE_SETUP ! #line 132 "/home/rguenther/src/releases/gcc-9.4.0/gcc-9.4.0/gcc/gengtype-lex.l" { size_t len; --- 1759,1769 ---- YY_LINENO_REWIND_TO(yy_cp - 1); (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ ! #line 132 "/home/rguenther/src/releases/gcc-9.5.0/gcc-9.5.0/gcc/gengtype-lex.l" case 27: /* rule 27 can match eol */ YY_RULE_SETUP ! #line 132 "/home/rguenther/src/releases/gcc-9.5.0/gcc-9.5.0/gcc/gengtype-lex.l" { size_t len; *************** YY_LINENO_REWIND_TO(yy_cp - 1); *** 1782,1788 **** (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 143 "/home/rguenther/src/releases/gcc-9.4.0/gcc-9.4.0/gcc/gengtype-lex.l" { *yylval = XDUPVAR (const char, yytext, yyleng, yyleng+1); return ID; --- 1782,1788 ---- (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 143 "/home/rguenther/src/releases/gcc-9.5.0/gcc-9.5.0/gcc/gengtype-lex.l" { *yylval = XDUPVAR (const char, yytext, yyleng, yyleng+1); return ID; *************** YY_RULE_SETUP *** 1791,1797 **** case 29: /* rule 29 can match eol */ YY_RULE_SETUP ! #line 148 "/home/rguenther/src/releases/gcc-9.4.0/gcc-9.4.0/gcc/gengtype-lex.l" { *yylval = XDUPVAR (const char, yytext+1, yyleng-2, yyleng-1); return STRING; --- 1791,1797 ---- case 29: /* rule 29 can match eol */ YY_RULE_SETUP ! #line 148 "/home/rguenther/src/releases/gcc-9.5.0/gcc-9.5.0/gcc/gengtype-lex.l" { *yylval = XDUPVAR (const char, yytext+1, yyleng-2, yyleng-1); return STRING; *************** YY_RULE_SETUP *** 1801,1807 **** case 30: /* rule 30 can match eol */ YY_RULE_SETUP ! #line 153 "/home/rguenther/src/releases/gcc-9.4.0/gcc-9.4.0/gcc/gengtype-lex.l" { *yylval = XDUPVAR (const char, yytext+1, yyleng-2, yyleng-1); return ARRAY; --- 1801,1807 ---- case 30: /* rule 30 can match eol */ YY_RULE_SETUP ! #line 153 "/home/rguenther/src/releases/gcc-9.5.0/gcc-9.5.0/gcc/gengtype-lex.l" { *yylval = XDUPVAR (const char, yytext+1, yyleng-2, yyleng-1); return ARRAY; *************** YY_RULE_SETUP *** 1810,1816 **** case 31: /* rule 31 can match eol */ YY_RULE_SETUP ! #line 157 "/home/rguenther/src/releases/gcc-9.4.0/gcc-9.4.0/gcc/gengtype-lex.l" { *yylval = XDUPVAR (const char, yytext+1, yyleng-2, yyleng); return CHAR; --- 1810,1816 ---- case 31: /* rule 31 can match eol */ YY_RULE_SETUP ! #line 157 "/home/rguenther/src/releases/gcc-9.5.0/gcc-9.5.0/gcc/gengtype-lex.l" { *yylval = XDUPVAR (const char, yytext+1, yyleng-2, yyleng); return CHAR; *************** YY_RULE_SETUP *** 1818,1841 **** YY_BREAK case 32: YY_RULE_SETUP ! #line 162 "/home/rguenther/src/releases/gcc-9.4.0/gcc-9.4.0/gcc/gengtype-lex.l" { return ELLIPSIS; } YY_BREAK case 33: YY_RULE_SETUP ! #line 163 "/home/rguenther/src/releases/gcc-9.4.0/gcc-9.4.0/gcc/gengtype-lex.l" { return yytext[0]; } YY_BREAK /* ignore pp-directives */ case 34: /* rule 34 can match eol */ YY_RULE_SETUP ! #line 166 "/home/rguenther/src/releases/gcc-9.4.0/gcc-9.4.0/gcc/gengtype-lex.l" {lexer_line.line++;} YY_BREAK case 35: YY_RULE_SETUP ! #line 168 "/home/rguenther/src/releases/gcc-9.4.0/gcc-9.4.0/gcc/gengtype-lex.l" { error_at_line (&lexer_line, "unexpected character `%s'", yytext); } --- 1818,1841 ---- YY_BREAK case 32: YY_RULE_SETUP ! #line 162 "/home/rguenther/src/releases/gcc-9.5.0/gcc-9.5.0/gcc/gengtype-lex.l" { return ELLIPSIS; } YY_BREAK case 33: YY_RULE_SETUP ! #line 163 "/home/rguenther/src/releases/gcc-9.5.0/gcc-9.5.0/gcc/gengtype-lex.l" { return yytext[0]; } YY_BREAK /* ignore pp-directives */ case 34: /* rule 34 can match eol */ YY_RULE_SETUP ! #line 166 "/home/rguenther/src/releases/gcc-9.5.0/gcc-9.5.0/gcc/gengtype-lex.l" {lexer_line.line++;} YY_BREAK case 35: YY_RULE_SETUP ! #line 168 "/home/rguenther/src/releases/gcc-9.5.0/gcc-9.5.0/gcc/gengtype-lex.l" { error_at_line (&lexer_line, "unexpected character `%s'", yytext); } *************** YY_RULE_SETUP *** 1843,1878 **** case 36: YY_RULE_SETUP ! #line 173 "/home/rguenther/src/releases/gcc-9.4.0/gcc-9.4.0/gcc/gengtype-lex.l" { BEGIN(in_comment); } YY_BREAK case 37: /* rule 37 can match eol */ YY_RULE_SETUP ! #line 174 "/home/rguenther/src/releases/gcc-9.4.0/gcc-9.4.0/gcc/gengtype-lex.l" { lexer_line.line++; } YY_BREAK case 38: /* rule 38 can match eol */ YY_RULE_SETUP ! #line 175 "/home/rguenther/src/releases/gcc-9.4.0/gcc-9.4.0/gcc/gengtype-lex.l" { lexer_line.line++; } YY_BREAK case 39: ! #line 177 "/home/rguenther/src/releases/gcc-9.4.0/gcc-9.4.0/gcc/gengtype-lex.l" case 40: /* rule 40 can match eol */ ! #line 178 "/home/rguenther/src/releases/gcc-9.4.0/gcc-9.4.0/gcc/gengtype-lex.l" case 41: /* rule 41 can match eol */ YY_RULE_SETUP ! #line 178 "/home/rguenther/src/releases/gcc-9.4.0/gcc-9.4.0/gcc/gengtype-lex.l" /* do nothing */ YY_BREAK case 42: /* rule 42 can match eol */ YY_RULE_SETUP ! #line 179 "/home/rguenther/src/releases/gcc-9.4.0/gcc-9.4.0/gcc/gengtype-lex.l" { update_lineno (yytext, yyleng); } YY_BREAK case 43: --- 1843,1878 ---- case 36: YY_RULE_SETUP ! #line 173 "/home/rguenther/src/releases/gcc-9.5.0/gcc-9.5.0/gcc/gengtype-lex.l" { BEGIN(in_comment); } YY_BREAK case 37: /* rule 37 can match eol */ YY_RULE_SETUP ! #line 174 "/home/rguenther/src/releases/gcc-9.5.0/gcc-9.5.0/gcc/gengtype-lex.l" { lexer_line.line++; } YY_BREAK case 38: /* rule 38 can match eol */ YY_RULE_SETUP ! #line 175 "/home/rguenther/src/releases/gcc-9.5.0/gcc-9.5.0/gcc/gengtype-lex.l" { lexer_line.line++; } YY_BREAK case 39: ! #line 177 "/home/rguenther/src/releases/gcc-9.5.0/gcc-9.5.0/gcc/gengtype-lex.l" case 40: /* rule 40 can match eol */ ! #line 178 "/home/rguenther/src/releases/gcc-9.5.0/gcc-9.5.0/gcc/gengtype-lex.l" case 41: /* rule 41 can match eol */ YY_RULE_SETUP ! #line 178 "/home/rguenther/src/releases/gcc-9.5.0/gcc-9.5.0/gcc/gengtype-lex.l" /* do nothing */ YY_BREAK case 42: /* rule 42 can match eol */ YY_RULE_SETUP ! #line 179 "/home/rguenther/src/releases/gcc-9.5.0/gcc-9.5.0/gcc/gengtype-lex.l" { update_lineno (yytext, yyleng); } YY_BREAK case 43: *************** YY_LINENO_REWIND_TO(yy_bp + 1); *** 1882,1902 **** (yy_c_buf_p) = yy_cp = yy_bp + 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 180 "/home/rguenther/src/releases/gcc-9.4.0/gcc-9.4.0/gcc/gengtype-lex.l" /* do nothing */ YY_BREAK case 44: /* rule 44 can match eol */ YY_RULE_SETUP ! #line 183 "/home/rguenther/src/releases/gcc-9.4.0/gcc-9.4.0/gcc/gengtype-lex.l" { lexer_line.line++; } YY_BREAK case 45: ! #line 185 "/home/rguenther/src/releases/gcc-9.4.0/gcc-9.4.0/gcc/gengtype-lex.l" case 46: YY_RULE_SETUP ! #line 185 "/home/rguenther/src/releases/gcc-9.4.0/gcc-9.4.0/gcc/gengtype-lex.l" /* do nothing */ YY_BREAK case 47: --- 1882,1902 ---- (yy_c_buf_p) = yy_cp = yy_bp + 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 180 "/home/rguenther/src/releases/gcc-9.5.0/gcc-9.5.0/gcc/gengtype-lex.l" /* do nothing */ YY_BREAK case 44: /* rule 44 can match eol */ YY_RULE_SETUP ! #line 183 "/home/rguenther/src/releases/gcc-9.5.0/gcc-9.5.0/gcc/gengtype-lex.l" { lexer_line.line++; } YY_BREAK case 45: ! #line 185 "/home/rguenther/src/releases/gcc-9.5.0/gcc-9.5.0/gcc/gengtype-lex.l" case 46: YY_RULE_SETUP ! #line 185 "/home/rguenther/src/releases/gcc-9.5.0/gcc-9.5.0/gcc/gengtype-lex.l" /* do nothing */ YY_BREAK case 47: *************** YY_LINENO_REWIND_TO(yy_bp + 1); *** 1906,1930 **** (yy_c_buf_p) = yy_cp = yy_bp + 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 186 "/home/rguenther/src/releases/gcc-9.4.0/gcc-9.4.0/gcc/gengtype-lex.l" /* do nothing */ YY_BREAK case 48: YY_RULE_SETUP ! #line 189 "/home/rguenther/src/releases/gcc-9.4.0/gcc-9.4.0/gcc/gengtype-lex.l" { BEGIN(INITIAL); } YY_BREAK case 49: YY_RULE_SETUP ! #line 190 "/home/rguenther/src/releases/gcc-9.4.0/gcc-9.4.0/gcc/gengtype-lex.l" { BEGIN(in_struct); } YY_BREAK case 50: ! #line 193 "/home/rguenther/src/releases/gcc-9.4.0/gcc-9.4.0/gcc/gengtype-lex.l" case 51: YY_RULE_SETUP ! #line 193 "/home/rguenther/src/releases/gcc-9.4.0/gcc-9.4.0/gcc/gengtype-lex.l" { error_at_line (&lexer_line, "unterminated comment or string; unexpected EOF"); --- 1906,1930 ---- (yy_c_buf_p) = yy_cp = yy_bp + 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 186 "/home/rguenther/src/releases/gcc-9.5.0/gcc-9.5.0/gcc/gengtype-lex.l" /* do nothing */ YY_BREAK case 48: YY_RULE_SETUP ! #line 189 "/home/rguenther/src/releases/gcc-9.5.0/gcc-9.5.0/gcc/gengtype-lex.l" { BEGIN(INITIAL); } YY_BREAK case 49: YY_RULE_SETUP ! #line 190 "/home/rguenther/src/releases/gcc-9.5.0/gcc-9.5.0/gcc/gengtype-lex.l" { BEGIN(in_struct); } YY_BREAK case 50: ! #line 193 "/home/rguenther/src/releases/gcc-9.5.0/gcc-9.5.0/gcc/gengtype-lex.l" case 51: YY_RULE_SETUP ! #line 193 "/home/rguenther/src/releases/gcc-9.5.0/gcc-9.5.0/gcc/gengtype-lex.l" { error_at_line (&lexer_line, "unterminated comment or string; unexpected EOF"); *************** YY_RULE_SETUP *** 1933,1944 **** case 52: /* rule 52 can match eol */ YY_RULE_SETUP ! #line 198 "/home/rguenther/src/releases/gcc-9.4.0/gcc-9.4.0/gcc/gengtype-lex.l" /* do nothing */ YY_BREAK case 53: YY_RULE_SETUP ! #line 200 "/home/rguenther/src/releases/gcc-9.4.0/gcc-9.4.0/gcc/gengtype-lex.l" YY_FATAL_ERROR( "flex scanner jammed" ); YY_BREAK #line 1939 "gengtype-lex.c" --- 1933,1944 ---- case 52: /* rule 52 can match eol */ YY_RULE_SETUP ! #line 198 "/home/rguenther/src/releases/gcc-9.5.0/gcc-9.5.0/gcc/gengtype-lex.l" /* do nothing */ YY_BREAK case 53: YY_RULE_SETUP ! #line 200 "/home/rguenther/src/releases/gcc-9.5.0/gcc-9.5.0/gcc/gengtype-lex.l" YY_FATAL_ERROR( "flex scanner jammed" ); YY_BREAK #line 1939 "gengtype-lex.c" *************** void yyfree (void * ptr ) *** 2916,2922 **** #define YYTABLES_NAME "yytables" ! #line 200 "/home/rguenther/src/releases/gcc-9.4.0/gcc-9.4.0/gcc/gengtype-lex.l" void --- 2916,2922 ---- #define YYTABLES_NAME "yytables" ! #line 200 "/home/rguenther/src/releases/gcc-9.5.0/gcc-9.5.0/gcc/gengtype-lex.l" void diff -Nrcpad gcc-9.4.0/gcc/gimple-fold.c gcc-9.5.0/gcc/gimple-fold.c *** gcc-9.4.0/gcc/gimple-fold.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/gimple-fold.c Fri May 27 07:21:11 2022 *************** get_symbol_constant_value (tree sym) *** 274,280 **** if (val) { val = canonicalize_constructor_val (unshare_expr (val), sym); ! if (val && is_gimple_min_invariant (val)) return val; else return NULL_TREE; --- 274,282 ---- if (val) { val = canonicalize_constructor_val (unshare_expr (val), sym); ! if (val ! && is_gimple_min_invariant (val) ! && useless_type_conversion_p (TREE_TYPE (sym), TREE_TYPE (val))) return val; else return NULL_TREE; *************** fold_gimple_assign (gimple_stmt_iterator *** 434,440 **** CONSTRUCTOR_ELTS (rhs)); } ! else if (DECL_P (rhs)) return get_symbol_constant_value (rhs); } break; --- 436,443 ---- CONSTRUCTOR_ELTS (rhs)); } ! else if (DECL_P (rhs) ! && is_gimple_reg_type (TREE_TYPE (rhs))) return get_symbol_constant_value (rhs); } break; diff -Nrcpad gcc-9.4.0/gcc/gimple-loop-interchange.cc gcc-9.5.0/gcc/gimple-loop-interchange.cc *** gcc-9.4.0/gcc/gimple-loop-interchange.cc Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/gimple-loop-interchange.cc Fri May 27 07:21:11 2022 *************** tree_loop_interchange::valid_data_depend *** 1042,1048 **** /* Be conservative, skip case if either direction at i_idx/o_idx levels is not '=' or '<'. */ ! if (dist_vect[i_idx] < 0 || dist_vect[o_idx] < 0) return false; } } --- 1042,1051 ---- /* Be conservative, skip case if either direction at i_idx/o_idx levels is not '=' or '<'. */ ! if ((!DDR_REVERSED_P (ddr) && dist_vect[i_idx] < 0) ! || (DDR_REVERSED_P (ddr) && dist_vect[i_idx] > 0) ! || (!DDR_REVERSED_P (ddr) && dist_vect[o_idx] < 0) ! || (DDR_REVERSED_P (ddr) && dist_vect[o_idx] > 0)) return false; } } diff -Nrcpad gcc-9.4.0/gcc/gimple-loop-jam.c gcc-9.5.0/gcc/gimple-loop-jam.c *** gcc-9.4.0/gcc/gimple-loop-jam.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/gimple-loop-jam.c Fri May 27 07:21:11 2022 *************** adjust_unroll_factor (class loop *inner, *** 404,413 **** a >= N, or b > 0, or b is zero and a > 0. Otherwise the unroll factor needs to be limited so that the first condition holds. That may limit the factor down to zero in the worst case. */ ! int dist = dist_v[0]; if (dist < 0) gcc_unreachable (); ! else if ((unsigned)dist >= *unroll) ; else if (lambda_vector_zerop (dist_v + 1, DDR_NB_LOOPS (ddr) - 1)) { --- 404,413 ---- a >= N, or b > 0, or b is zero and a > 0. Otherwise the unroll factor needs to be limited so that the first condition holds. That may limit the factor down to zero in the worst case. */ ! lambda_int dist = dist_v[0]; if (dist < 0) gcc_unreachable (); ! else if (dist >= (lambda_int)*unroll) ; else if (lambda_vector_zerop (dist_v + 1, DDR_NB_LOOPS (ddr) - 1)) { diff -Nrcpad gcc-9.4.0/gcc/gimple-ssa-evrp-analyze.c gcc-9.5.0/gcc/gimple-ssa-evrp-analyze.c *** gcc-9.4.0/gcc/gimple-ssa-evrp-analyze.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/gimple-ssa-evrp-analyze.c Fri May 27 07:21:11 2022 *************** evrp_range_analyzer::record_ranges_from_ *** 217,223 **** push_value_range (vrs[i].first, vrs[i].second); if (is_fallthru && m_update_global_ranges ! && all_uses_feed_or_dominated_by_stmt (vrs[i].first, stmt)) { set_ssa_range_info (vrs[i].first, vrs[i].second); maybe_set_nonzero_bits (pred_e, vrs[i].first); --- 217,227 ---- push_value_range (vrs[i].first, vrs[i].second); if (is_fallthru && m_update_global_ranges ! && all_uses_feed_or_dominated_by_stmt (vrs[i].first, stmt) ! /* The condition must post-dominate the definition point. */ ! && (SSA_NAME_IS_DEFAULT_DEF (vrs[i].first) ! || (gimple_bb (SSA_NAME_DEF_STMT (vrs[i].first)) ! == pred_e->src))) { set_ssa_range_info (vrs[i].first, vrs[i].second); maybe_set_nonzero_bits (pred_e, vrs[i].first); diff -Nrcpad gcc-9.4.0/gcc/gimple-ssa-store-merging.c gcc-9.5.0/gcc/gimple-ssa-store-merging.c *** gcc-9.4.0/gcc/gimple-ssa-store-merging.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/gimple-ssa-store-merging.c Fri May 27 07:21:11 2022 *************** find_bswap_or_nop_finalize (struct symbo *** 818,829 **** { mask = ((uint64_t) 1 << (rsize * BITS_PER_MARKER)) - 1; *cmpxchg &= mask; ! *cmpnop >>= (n->range - rsize) * BITS_PER_MARKER; } else { mask = ((uint64_t) 1 << (rsize * BITS_PER_MARKER)) - 1; ! *cmpxchg >>= (n->range - rsize) * BITS_PER_MARKER; *cmpnop &= mask; } n->range = rsize; --- 818,835 ---- { mask = ((uint64_t) 1 << (rsize * BITS_PER_MARKER)) - 1; *cmpxchg &= mask; ! if (n->range - rsize == sizeof (int64_t)) ! *cmpnop = 0; ! else ! *cmpnop >>= (n->range - rsize) * BITS_PER_MARKER; } else { mask = ((uint64_t) 1 << (rsize * BITS_PER_MARKER)) - 1; ! if (n->range - rsize == sizeof (int64_t)) ! *cmpxchg = 0; ! else ! *cmpxchg >>= (n->range - rsize) * BITS_PER_MARKER; *cmpnop &= mask; } n->range = rsize; diff -Nrcpad gcc-9.4.0/gcc/gimplify.c gcc-9.5.0/gcc/gimplify.c *** gcc-9.4.0/gcc/gimplify.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/gimplify.c Fri May 27 07:21:11 2022 *************** omp_check_private (struct gimplify_omp_c *** 7575,7581 **** if ((ctx->region_type & (ORT_TARGET | ORT_TARGET_DATA)) != 0 && (n == NULL || (n->value & GOVD_DATA_SHARE_CLASS) == 0)) ! continue; if (n != NULL) { --- 7575,7587 ---- if ((ctx->region_type & (ORT_TARGET | ORT_TARGET_DATA)) != 0 && (n == NULL || (n->value & GOVD_DATA_SHARE_CLASS) == 0)) ! { ! if ((ctx->region_type & ORT_TARGET_DATA) != 0 ! || n == NULL ! || (n->value & GOVD_MAP) == 0) ! continue; ! return false; ! } if (n != NULL) { *************** omp_check_private (struct gimplify_omp_c *** 7584,7594 **** return false; return (n->value & GOVD_SHARED) == 0; } } ! while (ctx->region_type == ORT_WORKSHARE ! || ctx->region_type == ORT_TASKGROUP ! || ctx->region_type == ORT_SIMD ! || ctx->region_type == ORT_ACC); return false; } --- 7590,7605 ---- return false; return (n->value & GOVD_SHARED) == 0; } + + if (ctx->region_type == ORT_WORKSHARE + || ctx->region_type == ORT_TASKGROUP + || ctx->region_type == ORT_SIMD + || ctx->region_type == ORT_ACC) + continue; + + break; } ! while (1); return false; } diff -Nrcpad gcc-9.4.0/gcc/go/ChangeLog gcc-9.5.0/gcc/go/ChangeLog *** gcc-9.4.0/gcc/go/ChangeLog Tue Jun 1 07:53:23 2021 --- gcc-9.5.0/gcc/go/ChangeLog Fri May 27 07:21:30 2022 *************** *** 1,3 **** --- 1,7 ---- + 2022-05-27 Release Manager + + * GCC 9.5.0 released. + 2021-06-01 Release Manager * GCC 9.4.0 released. diff -Nrcpad gcc-9.4.0/gcc/godump.c gcc-9.5.0/gcc/godump.c *** gcc-9.4.0/gcc/godump.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/godump.c Fri May 27 07:21:11 2022 *************** static FILE *go_dump_file; *** 56,61 **** --- 56,63 ---- static GTY(()) vec *queue; + struct godump_str_hash : string_hash, ggc_remove {}; + /* A hash table of macros we have seen. */ static htab_t macro_hash; *************** struct godump_container *** 542,548 **** /* Types which may potentially have to be defined as dummy types. */ ! hash_set pot_dummy_types; /* Go keywords. */ htab_t keyword_hash; --- 544,550 ---- /* Types which may potentially have to be defined as dummy types. */ ! hash_set pot_dummy_types; /* Go keywords. */ htab_t keyword_hash; diff -Nrcpad gcc-9.4.0/gcc/ifcvt.c gcc-9.5.0/gcc/ifcvt.c *** gcc-9.4.0/gcc/ifcvt.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/ifcvt.c Fri May 27 07:21:11 2022 *************** bb_valid_for_noce_process_p (basic_block *** 3065,3070 **** --- 3065,3076 ---- if (!insn_valid_noce_process_p (last_insn, cc)) return false; + + /* Punt on blocks ending with asm goto or jumps with other side-effects, + last_active_insn ignores JUMP_INSNs. */ + if (JUMP_P (BB_END (test_bb)) && !onlyjump_p (BB_END (test_bb))) + return false; + last_set = single_set (last_insn); rtx x = SET_DEST (last_set); diff -Nrcpad gcc-9.4.0/gcc/ipa-fnsummary.c gcc-9.5.0/gcc/ipa-fnsummary.c *** gcc-9.4.0/gcc/ipa-fnsummary.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/ipa-fnsummary.c Fri May 27 07:21:11 2022 *************** inline_read_section (struct lto_file_dec *** 3319,3331 **** bp = streamer_read_bitpack (&ib); if (info) { ! info->inlinable = bp_unpack_value (&bp, 1); ! info->fp_expressions = bp_unpack_value (&bp, 1); } else { ! bp_unpack_value (&bp, 1); ! bp_unpack_value (&bp, 1); } count2 = streamer_read_uhwi (&ib); --- 3319,3338 ---- bp = streamer_read_bitpack (&ib); if (info) { ! info->inlinable = bp_unpack_value (&bp, 1); ! /* On the side of streaming out, there is still one bit ! streamed out between inlinable and fp_expressions bits, ! which was used for cilk+ before but now always false. ! To remove the bit packing need to bump LTO minor version, ! so unpack a dummy bit here to keep consistent instead. */ ! bp_unpack_value (&bp, 1); ! info->fp_expressions = bp_unpack_value (&bp, 1); } else { ! bp_unpack_value (&bp, 1); ! bp_unpack_value (&bp, 1); ! bp_unpack_value (&bp, 1); } count2 = streamer_read_uhwi (&ib); diff -Nrcpad gcc-9.4.0/gcc/ipa-pure-const.c gcc-9.5.0/gcc/ipa-pure-const.c *** gcc-9.4.0/gcc/ipa-pure-const.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/ipa-pure-const.c Fri May 27 07:21:11 2022 *************** propagate_pure_const (void) *** 1654,1662 **** if (w_l->state_previously_known != IPA_NEITHER && this_state > w_l->state_previously_known) { - this_state = w_l->state_previously_known; if (this_state == IPA_NEITHER) ! this_looping = w_l->looping_previously_known; } if (!this_looping && self_recursive_p (w)) this_looping = true; --- 1654,1662 ---- if (w_l->state_previously_known != IPA_NEITHER && this_state > w_l->state_previously_known) { if (this_state == IPA_NEITHER) ! this_looping = w_l->looping_previously_known; ! this_state = w_l->state_previously_known; } if (!this_looping && self_recursive_p (w)) this_looping = true; diff -Nrcpad gcc-9.4.0/gcc/jit/ChangeLog gcc-9.5.0/gcc/jit/ChangeLog *** gcc-9.4.0/gcc/jit/ChangeLog Tue Jun 1 07:53:23 2021 --- gcc-9.5.0/gcc/jit/ChangeLog Fri May 27 07:21:30 2022 *************** *** 1,3 **** --- 1,14 ---- + 2022-05-27 Release Manager + + * GCC 9.5.0 released. + + 2021-11-24 Martin Liska + + Backported from master: + 2021-11-24 Martin Liska + + * jit-playback.c (function): Initialize m_blocks vector. + 2021-06-01 Release Manager * GCC 9.4.0 released. diff -Nrcpad gcc-9.4.0/gcc/jit/jit-playback.c gcc-9.5.0/gcc/jit/jit-playback.c *** gcc-9.4.0/gcc/jit/jit-playback.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/jit/jit-playback.c Fri May 27 07:21:11 2022 *************** function (context *ctxt, *** 1287,1293 **** : m_ctxt(ctxt), m_inner_fndecl (fndecl), m_inner_bind_expr (NULL), ! m_kind (kind) { if (m_kind != GCC_JIT_FUNCTION_IMPORTED) { --- 1287,1294 ---- : m_ctxt(ctxt), m_inner_fndecl (fndecl), m_inner_bind_expr (NULL), ! m_kind (kind), ! m_blocks () { if (m_kind != GCC_JIT_FUNCTION_IMPORTED) { diff -Nrcpad gcc-9.4.0/gcc/loop-invariant.c gcc-9.5.0/gcc/loop-invariant.c *** gcc-9.4.0/gcc/loop-invariant.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/loop-invariant.c Fri May 27 07:21:11 2022 *************** can_move_invariant_reg (struct loop *loo *** 1692,1697 **** --- 1692,1698 ---- unsigned int dest_regno, defs_in_loop_count = 0; rtx_insn *insn = inv->insn; basic_block bb = BLOCK_FOR_INSN (inv->insn); + auto_vec debug_insns_to_reset; /* We ignore hard register and memory access for cost and complexity reasons. Hard register are few at this stage and expensive to consider as they *************** can_move_invariant_reg (struct loop *loo *** 1726,1735 **** continue; /* Don't move if a use is not dominated by def in insn. */ ! if (use_bb == bb && DF_INSN_LUID (insn) >= DF_INSN_LUID (use_insn)) ! return false; ! if (!dominated_by_p (CDI_DOMINATORS, use_bb, bb)) ! return false; } /* Check for other defs. Any other def in the loop might reach a use --- 1727,1739 ---- continue; /* Don't move if a use is not dominated by def in insn. */ ! if ((use_bb == bb && DF_INSN_LUID (insn) >= DF_INSN_LUID (use_insn)) ! || !dominated_by_p (CDI_DOMINATORS, use_bb, bb)) ! { ! if (!DEBUG_INSN_P (use_insn)) ! return false; ! debug_insns_to_reset.safe_push (use_insn); ! } } /* Check for other defs. Any other def in the loop might reach a use *************** can_move_invariant_reg (struct loop *loo *** 1752,1757 **** --- 1756,1770 ---- return false; } + /* Reset debug uses if a use is not dominated by def in insn. */ + rtx_insn *use_insn; + unsigned i; + FOR_EACH_VEC_ELT (debug_insns_to_reset, i, use_insn) + { + INSN_VAR_LOCATION_LOC (use_insn) = gen_rtx_UNKNOWN_VAR_LOC (); + df_insn_rescan (use_insn); + } + return true; } diff -Nrcpad gcc-9.4.0/gcc/lto/ChangeLog gcc-9.5.0/gcc/lto/ChangeLog *** gcc-9.4.0/gcc/lto/ChangeLog Tue Jun 1 07:53:23 2021 --- gcc-9.5.0/gcc/lto/ChangeLog Fri May 27 07:21:30 2022 *************** *** 1,3 **** --- 1,7 ---- + 2022-05-27 Release Manager + + * GCC 9.5.0 released. + 2021-06-01 Release Manager * GCC 9.4.0 released. diff -Nrcpad gcc-9.4.0/gcc/match.pd gcc-9.5.0/gcc/match.pd *** gcc-9.4.0/gcc/match.pd Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/match.pd Fri May 27 07:21:11 2022 *************** DEFINE_INT_AND_FLOAT_ROUND_FN (RINT) *** 304,315 **** { build_minus_one_cst (type); }))) /* For unsigned integral types, FLOOR_DIV_EXPR is the same as ! TRUNC_DIV_EXPR. Rewrite into the latter in this case. */ ! (simplify ! (floor_div @0 @1) ! (if ((INTEGRAL_TYPE_P (type) || VECTOR_INTEGER_TYPE_P (type)) ! && TYPE_UNSIGNED (type)) ! (trunc_div @0 @1))) /* Combine two successive divisions. Note that combining ceil_div and floor_div is trickier and combining round_div even more so. */ --- 304,318 ---- { build_minus_one_cst (type); }))) /* For unsigned integral types, FLOOR_DIV_EXPR is the same as ! TRUNC_DIV_EXPR. Rewrite into the latter in this case. Similarly ! for MOD instead of DIV. */ ! (for floor_divmod (floor_div floor_mod) ! trunc_divmod (trunc_div trunc_mod) ! (simplify ! (floor_divmod @0 @1) ! (if ((INTEGRAL_TYPE_P (type) || VECTOR_INTEGER_TYPE_P (type)) ! && TYPE_UNSIGNED (type)) ! (trunc_divmod @0 @1)))) /* Combine two successive divisions. Note that combining ceil_div and floor_div is trickier and combining round_div even more so. */ *************** DEFINE_INT_AND_FLOAT_ROUND_FN (RINT) *** 564,570 **** /* Simplify (unsigned t * 2)/2 -> unsigned t & 0x7FFFFFFF. */ (simplify (trunc_div (mult @0 integer_pow2p@1) @1) ! (if (TYPE_UNSIGNED (TREE_TYPE (@0))) (bit_and @0 { wide_int_to_tree (type, wi::mask (TYPE_PRECISION (type) - wi::exact_log2 (wi::to_wide (@1)), --- 567,573 ---- /* Simplify (unsigned t * 2)/2 -> unsigned t & 0x7FFFFFFF. */ (simplify (trunc_div (mult @0 integer_pow2p@1) @1) ! (if (INTEGRAL_TYPE_P (TREE_TYPE (@0)) && TYPE_UNSIGNED (TREE_TYPE (@0))) (bit_and @0 { wide_int_to_tree (type, wi::mask (TYPE_PRECISION (type) - wi::exact_log2 (wi::to_wide (@1)), *************** DEFINE_INT_AND_FLOAT_ROUND_FN (RINT) *** 573,579 **** /* Simplify (unsigned t / 2) * 2 -> unsigned t & ~1. */ (simplify (mult (trunc_div @0 integer_pow2p@1) @1) ! (if (TYPE_UNSIGNED (TREE_TYPE (@0))) (bit_and @0 (negate @1)))) /* Simplify (t * 2) / 2) -> t. */ --- 576,582 ---- /* Simplify (unsigned t / 2) * 2 -> unsigned t & ~1. */ (simplify (mult (trunc_div @0 integer_pow2p@1) @1) ! (if (INTEGRAL_TYPE_P (TREE_TYPE (@0)) && TYPE_UNSIGNED (TREE_TYPE (@0))) (bit_and @0 (negate @1)))) /* Simplify (t * 2) / 2) -> t. */ *************** DEFINE_INT_AND_FLOAT_ROUND_FN (RINT) *** 1984,1996 **** (simplify (minus (convert? (negate @0)) integer_each_onep) (if (!TYPE_OVERFLOW_TRAPS (type) && tree_nop_conversion_p (type, TREE_TYPE (@0))) (bit_not (convert @0)))) /* -1 - A -> ~A */ (simplify (minus integer_all_onesp @0) ! (bit_not @0)) /* (T)(P + A) - (T)P -> (T) A */ (simplify --- 1987,2001 ---- (simplify (minus (convert? (negate @0)) integer_each_onep) (if (!TYPE_OVERFLOW_TRAPS (type) + && TREE_CODE (type) != COMPLEX_TYPE && tree_nop_conversion_p (type, TREE_TYPE (@0))) (bit_not (convert @0)))) /* -1 - A -> ~A */ (simplify (minus integer_all_onesp @0) ! (if (TREE_CODE (type) != COMPLEX_TYPE) ! (bit_not @0))) /* (T)(P + A) - (T)P -> (T) A */ (simplify *************** DEFINE_INT_AND_FLOAT_ROUND_FN (RINT) *** 4044,4050 **** (cmp (convert @0) INTEGER_CST@1) (if (((POINTER_TYPE_P (TREE_TYPE (@0)) && !FUNC_OR_METHOD_TYPE_P (TREE_TYPE (TREE_TYPE (@0))) ! && INTEGRAL_TYPE_P (TREE_TYPE (@1))) || (INTEGRAL_TYPE_P (TREE_TYPE (@0)) && POINTER_TYPE_P (TREE_TYPE (@1)) && !FUNC_OR_METHOD_TYPE_P (TREE_TYPE (TREE_TYPE (@1))))) --- 4049,4060 ---- (cmp (convert @0) INTEGER_CST@1) (if (((POINTER_TYPE_P (TREE_TYPE (@0)) && !FUNC_OR_METHOD_TYPE_P (TREE_TYPE (TREE_TYPE (@0))) ! && INTEGRAL_TYPE_P (TREE_TYPE (@1)) ! /* Don't perform this optimization in GENERIC if @0 has reference ! type when sanitizing. See PR101210. */ ! && !(GENERIC ! && TREE_CODE (TREE_TYPE (@0)) == REFERENCE_TYPE ! && (flag_sanitize & (SANITIZE_NULL | SANITIZE_ALIGNMENT)))) || (INTEGRAL_TYPE_P (TREE_TYPE (@0)) && POINTER_TYPE_P (TREE_TYPE (@1)) && !FUNC_OR_METHOD_TYPE_P (TREE_TYPE (TREE_TYPE (@1))))) diff -Nrcpad gcc-9.4.0/gcc/objc/ChangeLog gcc-9.5.0/gcc/objc/ChangeLog *** gcc-9.4.0/gcc/objc/ChangeLog Tue Jun 1 07:53:23 2021 --- gcc-9.5.0/gcc/objc/ChangeLog Fri May 27 07:21:30 2022 *************** *** 1,3 **** --- 1,7 ---- + 2022-05-27 Release Manager + + * GCC 9.5.0 released. + 2021-06-01 Release Manager * GCC 9.4.0 released. diff -Nrcpad gcc-9.4.0/gcc/objcp/ChangeLog gcc-9.5.0/gcc/objcp/ChangeLog *** gcc-9.4.0/gcc/objcp/ChangeLog Tue Jun 1 07:53:23 2021 --- gcc-9.5.0/gcc/objcp/ChangeLog Fri May 27 07:21:30 2022 *************** *** 1,3 **** --- 1,7 ---- + 2022-05-27 Release Manager + + * GCC 9.5.0 released. + 2021-06-01 Release Manager * GCC 9.4.0 released. diff -Nrcpad gcc-9.4.0/gcc/omp-low.c gcc-9.5.0/gcc/omp-low.c *** gcc-9.4.0/gcc/omp-low.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/omp-low.c Fri May 27 07:21:11 2022 *************** static int target_nesting_level; *** 141,146 **** --- 141,147 ---- static bitmap task_shared_vars; static bitmap global_nonaddressable_vars; static vec taskreg_contexts; + static vec task_cpyfns; static void scan_omp (gimple_seq *, omp_context *); static tree scan_omp_1_op (tree *, int *, void *); *************** delete_omp_context (splay_tree_value val *** 980,988 **** DECL_ABSTRACT_ORIGIN (t) = NULL; } - if (is_task_ctx (ctx)) - finalize_task_copyfn (as_a (ctx->stmt)); - if (ctx->task_reduction_map) { ctx->task_reductions.release (); --- 981,986 ---- *************** lower_rec_input_clauses (tree clauses, g *** 5177,5182 **** --- 5175,5182 ---- if (code == MINUS_EXPR) code = PLUS_EXPR; + bool is_truth_op + = (code == TRUTH_ANDIF_EXPR || code == TRUTH_ORIF_EXPR); tree new_vard = new_var; if (is_simd && omp_is_reference (var)) { *************** lower_rec_input_clauses (tree clauses, g *** 5202,5208 **** x = build2 (code, TREE_TYPE (ivar), ivar, x); gimplify_assign (ivar, x, &llist[2]); } ! x = build2 (code, TREE_TYPE (ref), ref, ivar); ref = build_outer_var_ref (var, ctx); gimplify_assign (ref, x, &llist[1]); --- 5202,5222 ---- x = build2 (code, TREE_TYPE (ivar), ivar, x); gimplify_assign (ivar, x, &llist[2]); } ! tree ivar2 = ivar; ! tree ref2 = ref; ! if (is_truth_op) ! { ! tree zero = build_zero_cst (TREE_TYPE (ivar)); ! ivar2 = fold_build2_loc (clause_loc, NE_EXPR, ! boolean_type_node, ivar, ! zero); ! ref2 = fold_build2_loc (clause_loc, NE_EXPR, ! boolean_type_node, ref, ! zero); ! } ! x = build2 (code, TREE_TYPE (ref), ref2, ivar2); ! if (is_truth_op) ! x = fold_convert (TREE_TYPE (ref), x); ref = build_outer_var_ref (var, ctx); gimplify_assign (ref, x, &llist[1]); *************** lower_rec_input_clauses (tree clauses, g *** 5221,5228 **** if (is_simd) { tree ref = build_outer_var_ref (var, ctx); ! ! x = build2 (code, TREE_TYPE (ref), ref, new_var); ref = build_outer_var_ref (var, ctx); gimplify_assign (ref, x, dlist); } --- 5235,5256 ---- if (is_simd) { tree ref = build_outer_var_ref (var, ctx); ! tree new_var2 = new_var; ! tree ref2 = ref; ! if (is_truth_op) ! { ! tree zero = build_zero_cst (TREE_TYPE (new_var)); ! new_var2 ! = fold_build2_loc (clause_loc, NE_EXPR, ! boolean_type_node, new_var, ! zero); ! ref2 = fold_build2_loc (clause_loc, NE_EXPR, ! boolean_type_node, ref, ! zero); ! } ! x = build2 (code, TREE_TYPE (ref2), ref2, new_var2); ! if (is_truth_op) ! x = fold_convert (TREE_TYPE (new_var), x); ref = build_outer_var_ref (var, ctx); gimplify_assign (ref, x, dlist); } *************** lower_reduction_clauses (tree clauses, g *** 5942,5954 **** if (code == MINUS_EXPR) code = PLUS_EXPR; if (count == 1) { tree addr = build_fold_addr_expr_loc (clause_loc, ref); addr = save_expr (addr); ref = build1 (INDIRECT_REF, TREE_TYPE (TREE_TYPE (addr)), addr); ! x = fold_build2_loc (clause_loc, code, TREE_TYPE (ref), ref, new_var); x = build2 (OMP_ATOMIC, void_type_node, addr, x); OMP_ATOMIC_MEMORY_ORDER (x) = OMP_MEMORY_ORDER_RELAXED; gimplify_and_add (x, stmt_seqp); --- 5970,5996 ---- if (code == MINUS_EXPR) code = PLUS_EXPR; + bool is_truth_op = (code == TRUTH_ANDIF_EXPR || code == TRUTH_ORIF_EXPR); if (count == 1) { tree addr = build_fold_addr_expr_loc (clause_loc, ref); addr = save_expr (addr); ref = build1 (INDIRECT_REF, TREE_TYPE (TREE_TYPE (addr)), addr); ! tree new_var2 = new_var; ! tree ref2 = ref; ! if (is_truth_op) ! { ! tree zero = build_zero_cst (TREE_TYPE (new_var)); ! new_var2 = fold_build2_loc (clause_loc, NE_EXPR, ! boolean_type_node, new_var, zero); ! ref2 = fold_build2_loc (clause_loc, NE_EXPR, boolean_type_node, ! ref, zero); ! } ! x = fold_build2_loc (clause_loc, code, TREE_TYPE (new_var2), ref2, ! new_var2); ! if (is_truth_op) ! x = fold_convert (TREE_TYPE (new_var), x); x = build2 (OMP_ATOMIC, void_type_node, addr, x); OMP_ATOMIC_MEMORY_ORDER (x) = OMP_MEMORY_ORDER_RELAXED; gimplify_and_add (x, stmt_seqp); *************** lower_reduction_clauses (tree clauses, g *** 6053,6059 **** } else { ! x = build2 (code, TREE_TYPE (out), out, priv); out = unshare_expr (out); gimplify_assign (out, x, &sub_seq); } --- 6095,6113 ---- } else { ! tree out2 = out; ! tree priv2 = priv; ! if (is_truth_op) ! { ! tree zero = build_zero_cst (TREE_TYPE (out)); ! out2 = fold_build2_loc (clause_loc, NE_EXPR, ! boolean_type_node, out, zero); ! priv2 = fold_build2_loc (clause_loc, NE_EXPR, ! boolean_type_node, priv, zero); ! } ! x = build2 (code, TREE_TYPE (out2), out2, priv2); ! if (is_truth_op) ! x = fold_convert (TREE_TYPE (out), x); out = unshare_expr (out); gimplify_assign (out, x, &sub_seq); } *************** lower_reduction_clauses (tree clauses, g *** 6087,6093 **** } else { ! x = build2 (code, TREE_TYPE (ref), ref, new_var); ref = build_outer_var_ref (var, ctx); gimplify_assign (ref, x, &sub_seq); } --- 6141,6159 ---- } else { ! tree new_var2 = new_var; ! tree ref2 = ref; ! if (is_truth_op) ! { ! tree zero = build_zero_cst (TREE_TYPE (new_var)); ! new_var2 = fold_build2_loc (clause_loc, NE_EXPR, ! boolean_type_node, new_var, zero); ! ref2 = fold_build2_loc (clause_loc, NE_EXPR, boolean_type_node, ! ref, zero); ! } ! x = build2 (code, TREE_TYPE (ref), ref2, new_var2); ! if (is_truth_op) ! x = fold_convert (TREE_TYPE (new_var), x); ref = build_outer_var_ref (var, ctx); gimplify_assign (ref, x, &sub_seq); } *************** lower_omp_task_reductions (omp_context * *** 7187,7193 **** tree num_thr_sz = create_tmp_var (size_type_node); tree lab1 = create_artificial_label (UNKNOWN_LOCATION); tree lab2 = create_artificial_label (UNKNOWN_LOCATION); ! tree lab3 = NULL_TREE; gimple *g; if (code == OMP_FOR || code == OMP_SECTIONS) { --- 7253,7259 ---- tree num_thr_sz = create_tmp_var (size_type_node); tree lab1 = create_artificial_label (UNKNOWN_LOCATION); tree lab2 = create_artificial_label (UNKNOWN_LOCATION); ! tree lab3 = NULL_TREE, lab7 = NULL_TREE; gimple *g; if (code == OMP_FOR || code == OMP_SECTIONS) { *************** lower_omp_task_reductions (omp_context * *** 7252,7257 **** --- 7318,7331 ---- NULL_TREE, NULL_TREE); tree data = create_tmp_var (pointer_sized_int_node); gimple_seq_add_stmt (end, gimple_build_assign (data, t)); + if (code == OMP_TASKLOOP) + { + lab7 = create_artificial_label (UNKNOWN_LOCATION); + g = gimple_build_cond (NE_EXPR, data, + build_zero_cst (pointer_sized_int_node), + lab1, lab7); + gimple_seq_add_stmt (end, g); + } gimple_seq_add_stmt (end, gimple_build_label (lab1)); tree ptr; if (TREE_CODE (TYPE_SIZE_UNIT (record_type)) == INTEGER_CST) *************** lower_omp_task_reductions (omp_context * *** 7615,7620 **** --- 7689,7696 ---- g = gimple_build_call (t, 1, build_fold_addr_expr (avar)); } gimple_seq_add_stmt (end, g); + if (lab7) + gimple_seq_add_stmt (end, gimple_build_label (lab7)); t = build_constructor (atype, NULL); TREE_THIS_VOLATILE (t) = 1; gimple_seq_add_stmt (end, gimple_build_assign (avar, t)); *************** create_task_copyfn (gomp_task *task_stmt *** 8570,8575 **** --- 8646,8652 ---- size_t looptempno = 0; child_fn = gimple_omp_task_copy_fn (task_stmt); + task_cpyfns.safe_push (task_stmt); child_cfun = DECL_STRUCT_FUNCTION (child_fn); gcc_assert (child_cfun->cfg == NULL); DECL_SAVED_TREE (child_fn) = alloc_stmt_list (); *************** lower_omp_regimplify_p (tree *tp, int *w *** 10292,10298 **** tree t = *tp; /* Any variable with DECL_VALUE_EXPR needs to be regimplified. */ ! if (VAR_P (t) && data == NULL && DECL_HAS_VALUE_EXPR_P (t)) return t; if (task_shared_vars --- 10369,10377 ---- tree t = *tp; /* Any variable with DECL_VALUE_EXPR needs to be regimplified. */ ! if ((VAR_P (t) || TREE_CODE (t) == PARM_DECL || TREE_CODE (t) == RESULT_DECL) ! && data == NULL ! && DECL_HAS_VALUE_EXPR_P (t)) return t; if (task_shared_vars *************** execute_lower_omp (void) *** 10644,10649 **** --- 10723,10734 ---- && (TREE_CODE (TREE_TYPE (DECL_ARGUMENTS (current_function_decl))) == POINTER_TYPE)) remove_member_access_dummy_vars (DECL_INITIAL (current_function_decl)); + + gomp_task *task_stmt; + unsigned j; + FOR_EACH_VEC_ELT (task_cpyfns, j, task_stmt) + finalize_task_copyfn (task_stmt); + task_cpyfns.release (); return 0; } diff -Nrcpad gcc-9.4.0/gcc/optabs-tree.c gcc-9.5.0/gcc/optabs-tree.c *** gcc-9.4.0/gcc/optabs-tree.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/optabs-tree.c Fri May 27 07:21:11 2022 *************** optab_for_tree_code (enum tree_code code *** 53,69 **** case MULT_HIGHPART_EXPR: return TYPE_UNSIGNED (type) ? umul_highpart_optab : smul_highpart_optab; - case TRUNC_MOD_EXPR: case CEIL_MOD_EXPR: case FLOOR_MOD_EXPR: case ROUND_MOD_EXPR: return TYPE_UNSIGNED (type) ? umod_optab : smod_optab; - case RDIV_EXPR: - case TRUNC_DIV_EXPR: case CEIL_DIV_EXPR: case FLOOR_DIV_EXPR: case ROUND_DIV_EXPR: case EXACT_DIV_EXPR: if (TYPE_SATURATING (type)) return TYPE_UNSIGNED (type) ? usdiv_optab : ssdiv_optab; --- 53,84 ---- case MULT_HIGHPART_EXPR: return TYPE_UNSIGNED (type) ? umul_highpart_optab : smul_highpart_optab; case CEIL_MOD_EXPR: case FLOOR_MOD_EXPR: case ROUND_MOD_EXPR: + /* {s,u}mod_optab implements TRUNC_MOD_EXPR. For scalar modes, + expansion has code to adjust TRUNC_MOD_EXPR into the desired other + modes, but for vector modes it does not. The adjustment code + should be instead emitted in tree-vect-patterns.cc. */ + if (TREE_CODE (type) == VECTOR_TYPE) + return unknown_optab; + /* FALLTHRU */ + case TRUNC_MOD_EXPR: return TYPE_UNSIGNED (type) ? umod_optab : smod_optab; case CEIL_DIV_EXPR: case FLOOR_DIV_EXPR: case ROUND_DIV_EXPR: + /* {,u}{s,u}div_optab implements {TRUNC,EXACT}_DIV_EXPR or RDIV_EXPR. + For scalar modes, expansion has code to adjust TRUNC_DIV_EXPR + into the desired other modes, but for vector modes it does not. + The adjustment code should be instead emitted in + tree-vect-patterns.cc. */ + if (TREE_CODE (type) == VECTOR_TYPE) + return unknown_optab; + /* FALLTHRU */ + case RDIV_EXPR: + case TRUNC_DIV_EXPR: case EXACT_DIV_EXPR: if (TYPE_SATURATING (type)) return TYPE_UNSIGNED (type) ? usdiv_optab : ssdiv_optab; diff -Nrcpad gcc-9.4.0/gcc/optabs.c gcc-9.5.0/gcc/optabs.c *** gcc-9.4.0/gcc/optabs.c Tue Jun 1 07:53:04 2021 --- gcc-9.5.0/gcc/optabs.c Fri May 27 07:21:11 2022 *************** prepare_cmp_insn (rtx x, rtx y, enum rtx *** 3861,3872 **** /* If we are optimizing, force expensive constants into a register. */ if (CONSTANT_P (x) && optimize && (rtx_cost (x, mode, COMPARE, 0, optimize_insn_for_speed_p ()) ! > COSTS_N_INSNS (1))) x = force_reg (mode, x); if (CONSTANT_P (y) && optimize && (rtx_cost (y, mode, COMPARE, 1, optimize_insn_for_speed_p ()) ! > COSTS_N_INSNS (1))) y = force_reg (mode, y); #if HAVE_cc0 --- 3861,3874 ---- /* If we are optimizing, force expensive constants into a register. */ if (CONSTANT_P (x) && optimize && (rtx_cost (x, mode, COMPARE, 0, optimize_insn_for_speed_p ()) ! > COSTS_N_INSNS (1)) ! && can_create_pseudo_p ()) x = force_reg (mode, x); if (CONSTANT_P (y) && optimize && (rtx_cost (y, mode, COMPARE, 1, optimize_insn_for_speed_p ()) ! > COSTS_N_INSNS (1)) ! && can_create_pseudo_p ()) y = force_reg (mode, y); #if HAVE_cc0 *************** prepare_cmp_insn (rtx x, rtx y, enum rtx *** 3942,3947 **** --- 3944,3951 ---- compare and branch in different basic blocks. */ if (cfun->can_throw_non_call_exceptions) { + if (!can_create_pseudo_p () && (may_trap_p (x) || may_trap_p (y))) + goto fail; if (may_trap_p (x)) x = copy_to_reg (x); if (may_trap_p (y)) diff -Nrcpad gcc-9.4.0/gcc/po/ChangeLog gcc-9.5.0/gcc/po/ChangeLog *** gcc-9.4.0/gcc/po/ChangeLog Tue Jun 1 07:53:23 2021 --- gcc-9.5.0/gcc/po/ChangeLog Fri May 27 07:21:30 2022 *************** *** 1,3 **** --- 1,7 ---- + 2022-05-27 Release Manager + + * GCC 9.5.0 released. + 2021-06-01 Release Manager * GCC 9.4.0 released. diff -Nrcpad gcc-9.4.0/gcc/sanopt.c gcc-9.5.0/gcc/sanopt.c *** gcc-9.4.0/gcc/sanopt.c Tue Jun 1 07:53:05 2021 --- gcc-9.5.0/gcc/sanopt.c Fri May 27 07:21:11 2022 *************** maybe_optimize_ubsan_ptr_ifn (sanopt_ctx *** 488,494 **** &unsignedp, &reversep, &volatilep); if ((offset == NULL_TREE || TREE_CODE (offset) == INTEGER_CST) && DECL_P (base) ! && !DECL_REGISTER (base) && pbitpos.is_constant (&bitpos)) { offset_int expr_offset; --- 488,497 ---- &unsignedp, &reversep, &volatilep); if ((offset == NULL_TREE || TREE_CODE (offset) == INTEGER_CST) && DECL_P (base) ! && ((!VAR_P (base) ! && TREE_CODE (base) != PARM_DECL ! && TREE_CODE (base) != RESULT_DECL) ! || !DECL_REGISTER (base)) && pbitpos.is_constant (&bitpos)) { offset_int expr_offset; diff -Nrcpad gcc-9.4.0/gcc/shrink-wrap.c gcc-9.5.0/gcc/shrink-wrap.c *** gcc-9.4.0/gcc/shrink-wrap.c Tue Jun 1 07:53:05 2021 --- gcc-9.5.0/gcc/shrink-wrap.c Fri May 27 07:21:11 2022 *************** try_shrink_wrapping (edge *entry_edge, r *** 777,783 **** unsigned max_grow_size = get_uncond_jump_length (); max_grow_size *= PARAM_VALUE (PARAM_MAX_GROW_COPY_BB_INSNS); ! while (!vec.is_empty () && pro != entry) { while (pro != entry && !can_get_prologue (pro, prologue_clobbered)) { --- 777,783 ---- unsigned max_grow_size = get_uncond_jump_length (); max_grow_size *= PARAM_VALUE (PARAM_MAX_GROW_COPY_BB_INSNS); ! while (pro != entry) { while (pro != entry && !can_get_prologue (pro, prologue_clobbered)) { *************** try_shrink_wrapping (edge *entry_edge, r *** 787,792 **** --- 787,795 ---- vec.quick_push (pro); } + if (vec.is_empty ()) + break; + basic_block bb = vec.pop (); if (!can_dup_for_shrink_wrapping (bb, pro, max_grow_size)) while (!dominated_by_p (CDI_DOMINATORS, bb, pro)) diff -Nrcpad gcc-9.4.0/gcc/stor-layout.c gcc-9.5.0/gcc/stor-layout.c *** gcc-9.4.0/gcc/stor-layout.c Tue Jun 1 07:53:05 2021 --- gcc-9.5.0/gcc/stor-layout.c Fri May 27 07:21:11 2022 *************** finish_bitfield_representative (tree rep *** 2032,2040 **** bitsize = (bitsize + BITS_PER_UNIT - 1) & ~(BITS_PER_UNIT - 1); /* Now nothing tells us how to pad out bitsize ... */ ! nextf = DECL_CHAIN (field); ! while (nextf && TREE_CODE (nextf) != FIELD_DECL) ! nextf = DECL_CHAIN (nextf); if (nextf) { tree maxsize; --- 2032,2045 ---- bitsize = (bitsize + BITS_PER_UNIT - 1) & ~(BITS_PER_UNIT - 1); /* Now nothing tells us how to pad out bitsize ... */ ! if (TREE_CODE (DECL_CONTEXT (field)) == RECORD_TYPE) ! { ! nextf = DECL_CHAIN (field); ! while (nextf && TREE_CODE (nextf) != FIELD_DECL) ! nextf = DECL_CHAIN (nextf); ! } ! else ! nextf = NULL_TREE; if (nextf) { tree maxsize; *************** finish_bitfield_layout (tree t) *** 2127,2137 **** tree field, prev; tree repr = NULL_TREE; ! /* Unions would be special, for the ease of type-punning optimizations ! we could use the underlying type as hint for the representative ! if the bitfield would fit and the representative would not exceed ! the union in size. */ ! if (TREE_CODE (t) != RECORD_TYPE) return; for (prev = NULL_TREE, field = TYPE_FIELDS (t); --- 2132,2138 ---- tree field, prev; tree repr = NULL_TREE; ! if (TREE_CODE (t) == QUAL_UNION_TYPE) return; for (prev = NULL_TREE, field = TYPE_FIELDS (t); *************** finish_bitfield_layout (tree t) *** 2193,2199 **** if (repr) DECL_BIT_FIELD_REPRESENTATIVE (field) = repr; ! prev = field; } if (repr) --- 2194,2206 ---- if (repr) DECL_BIT_FIELD_REPRESENTATIVE (field) = repr; ! if (TREE_CODE (t) == RECORD_TYPE) ! prev = field; ! else if (repr) ! { ! finish_bitfield_representative (repr, field); ! repr = NULL_TREE; ! } } if (repr) diff -Nrcpad gcc-9.4.0/gcc/testsuite/ChangeLog gcc-9.5.0/gcc/testsuite/ChangeLog *** gcc-9.4.0/gcc/testsuite/ChangeLog Tue Jun 1 07:53:23 2021 --- gcc-9.5.0/gcc/testsuite/ChangeLog Fri May 27 07:21:30 2022 *************** *** 1,3 **** --- 1,1347 ---- + 2022-05-27 Release Manager + + * GCC 9.5.0 released. + + 2022-05-16 Harald Anlauf + + Backported from master: + 2022-05-11 Harald Anlauf + Steven G. Kargl + + PR fortran/105230 + * gfortran.dg/pr105230.f90: New test. + + 2022-05-16 Harald Anlauf + + Backported from master: + 2022-03-09 Harald Anlauf + + PR fortran/104849 + * gfortran.dg/pr104849.f90: New test. + + 2022-05-16 Harald Anlauf + + Backported from master: + 2022-04-05 Harald Anlauf + Steven G. Kargl + + PR fortran/105138 + * gfortran.dg/recursive_reference_3.f90: New test. + + 2022-05-16 Sebastian Pop + + PR target/105162 + * gcc.target/aarch64/sync-comp-swap-ool.c: New. + * gcc.target/aarch64/sync-op-acquire-ool.c: New. + * gcc.target/aarch64/sync-op-full-ool.c: New. + * gcc.target/aarch64/target_attr_20.c: Update check. + * gcc.target/aarch64/target_attr_21.c: Same. + + 2022-05-13 Jason Merrill + + PR c++/101078 + * g++.dg/template/access39.C: New test. + + 2022-05-13 Jason Merrill + + PR c++/99066 + * g++.dg/cpp0x/extern_template-6.C: New test. + + 2022-05-13 Jason Merrill + + PR c++/100838 + PR c++/105265 + * g++.dg/init/no-elide2.C: New test. + * g++.dg/cpp0x/initlist-new6.C: New test. + + 2022-05-13 Jason Merrill + + PR c++/91217 + * g++.dg/opt/nrv20.C: New test. + + 2022-05-13 Jason Merrill + + PR c++/99643 + * g++.dg/cpp0x/initlist-new5.C: New test. + + 2022-05-13 Jason Merrill + + PR c++/65211 + * g++.target/i386/vec-tmpl1.C: New test. + + 2022-05-13 Jason Merrill + + PR c++/101698 + * g++.dg/template/conv19.C: New test. + + 2022-05-13 Jason Merrill + + PR c++/101442 + * g++.dg/cpp0x/initlist-nrv1.C: New test. + + 2022-05-13 Jason Merrill + + PR c++/98249 + * g++.dg/lookup/new3.C: New test. + + 2022-05-13 Jason Merrill + + PR c++/104646 + * g++.dg/cpp0x/constexpr-fno-elide-ctors1.C: New test. + + 2022-05-13 Jason Merrill + + PR c++/59950 + * g++.dg/init/assign2.C: New test. + + 2022-05-13 Jason Merrill + + PR c++/99901 + * g++.dg/cpp1z/inline-var9.C: New test. + + 2022-05-13 Jason Merrill + + PR c++/101717 + * g++.dg/cpp1y/lambda-generic-this4.C: New test. + + 2022-05-13 Jason Merrill + + PR c++/90664 + * g++.dg/cpp1z/noexcept-type24.C: New test. + + 2022-05-13 Jason Merrill + + PR c++/95870 + * g++.dg/cpp0x/lambda/lambda-nsdmi10.C: New test. + + 2022-05-13 Jason Merrill + + PR c++/96311 + * g++.dg/cpp1y/lambda-generic-Wunused.C: New test. + + 2022-05-13 Jason Merrill + + PR c++/96673 + * g++.dg/cpp1y/nsdmi-aggr13.C: New test. + + 2022-05-13 Jason Merrill + + PR c++/91933 + * g++.dg/cpp0x/constexpr-base7.C: New test. + + 2022-05-13 Jason Merrill + + PR c++/100032 + * g++.dg/cpp0x/alias-decl-equiv1.C: New test. + + 2022-05-13 Jason Merrill + + * g++.dg/cpp0x/constexpr-array23.C: Remove xfail. + * g++.dg/cpp2a/lambda-pack-init6.C: Removed. + + 2022-05-11 Jakub Jelinek + + PR middle-end/102860 + PR testsuite/105570 + * gfortran.dg/pr102860.f90: Use -mcpu=power9 instead of -mcpu=power10. + + 2022-05-11 Patrick Palka + + Backported from master: + 2022-03-26 Patrick Palka + + PR c++/103455 + * g++.dg/overload/builtin6.C: New test. + + 2022-05-11 Patrick Palka + + Backported from master: + 2022-01-25 Patrick Palka + + PR c++/101532 + PR c++/104225 + * g++.dg/cpp0x/nsdmi-template21.C: New test. + * g++.dg/cpp0x/nsdmi-template21a.C: New test. + + 2022-05-11 Patrick Palka + + Backported from master: + 2021-04-14 Patrick Palka + + PR c++/83476 + PR c++/99885 + * g++.dg/cpp1z/class-deduction85.C: New test. + * g++.dg/template/ref11.C: New test. + + 2022-05-11 Tobias Burnus + + Backported from master: + 2021-05-05 Tobias Burnus + + PR testsuite/100422 + * g++.dg/gomp/clause-3.C: Use 'reduction(&:..)' instead of '...(&&:..)'. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2022-04-27 Jakub Jelinek + + PR sanitizer/105396 + * gcc.dg/asan/pr105396.c: New test. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2022-04-19 Jakub Jelinek + + PR target/105257 + * gcc.dg/pr105257.c: New test. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2022-04-19 Jakub Jelinek + + PR c++/105256 + * g++.dg/cpp0x/pr105256.C: New test. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2022-04-12 Jakub Jelinek + + PR target/105214 + * gcc.dg/asan/pr105214.c: New test. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2022-04-12 Jakub Jelinek + + PR rtl-optimization/105211 + * gcc.dg/pr105211.c: New test. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2022-04-11 Jakub Jelinek + + PR c++/105186 + * c-c++-common/pr105186.c: New test. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2022-04-08 Jakub Jelinek + + PR tree-optimization/105189 + * g++.dg/torture/pr105189.C: New test. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2022-04-03 Jakub Jelinek + + PR target/105123 + * gcc.target/i386/pr105123.c: New test. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2022-03-30 Jakub Jelinek + + PR sanitizer/105093 + * g++.dg/ubsan/pr105093.C: New test. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2022-03-26 Jakub Jelinek + + * c-c++-common/builtin-convertvector-3.c: New test. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2022-03-24 Jakub Jelinek + + PR c++/104994 + * g++.dg/cpp2a/constexpr-nonlit7.C: New test. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2022-03-19 Jakub Jelinek + + PR middle-end/104971 + * gcc.target/i386/pr104971.c: New test. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2022-03-09 Jakub Jelinek + + PR c/104711 + * c-c++-common/Wshift-negative-value-1.c: Remove + dg-additional-options, instead in target selectors of each diagnostic + check for exact C++ versions where it should be diagnosed. + * c-c++-common/Wshift-negative-value-2.c: Likewise. + * c-c++-common/Wshift-negative-value-3.c: Likewise. + * c-c++-common/Wshift-negative-value-4.c: Likewise. + * c-c++-common/Wshift-negative-value-7.c: New test. + * c-c++-common/Wshift-negative-value-8.c: New test. + * c-c++-common/Wshift-negative-value-9.c: New test. + * c-c++-common/Wshift-negative-value-10.c: New test. + * c-c++-common/Wshift-overflow-1.c: Remove + dg-additional-options, instead in target selectors of each diagnostic + check for exact C++ versions where it should be diagnosed. + * c-c++-common/Wshift-overflow-2.c: Likewise. + * c-c++-common/Wshift-overflow-5.c: Likewise. + * c-c++-common/Wshift-overflow-6.c: Likewise. + * c-c++-common/Wshift-overflow-7.c: Likewise. + * c-c++-common/Wshift-overflow-8.c: New test. + * c-c++-common/Wshift-overflow-9.c: New test. + * c-c++-common/Wshift-overflow-10.c: New test. + * c-c++-common/Wshift-overflow-11.c: New test. + * c-c++-common/Wshift-overflow-12.c: New test. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2022-03-08 Jakub Jelinek + + PR c++/104806 + * g++.dg/spellcheck-pr104806.C: New test. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2022-03-07 Jakub Jelinek + + PR target/104775 + * gcc.target/s390/pr104775.c: New test. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2022-02-25 Jakub Jelinek + Marc Glisse + + PR tree-optimization/104675 + * gcc.dg/pr104675-3.c : New test. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2022-02-25 Jakub Jelinek + + PR target/104681 + * g++.dg/opt/pr104681.C: New test. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2022-02-25 Jakub Jelinek + + PR tree-optimization/104675 + * gcc.dg/pr104675-1.c: New test. + * gcc.dg/pr104675-2.c: New test. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2022-02-17 Jakub Jelinek + + PR debug/104557 + * gcc.dg/dfp/pr104557.c: New test. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2022-02-16 Jakub Jelinek + + PR c/104510 + * gcc.dg/dfp/pr104510.c: New test. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2022-02-14 Jakub Jelinek + + PR c++/104513 + * g++.dg/cpp1y/constexpr-104513.C: New test. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2022-02-12 Jakub Jelinek + + PR sanitizer/104449 + * gcc.dg/asan/pr104449.c: New test. + * g++.dg/asan/pr104449.C: New test. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2022-02-12 Jakub Jelinek + + PR target/104502 + * gcc.target/i386/pr104502.c: New test. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2022-02-11 Jakub Jelinek + + PR c++/104472 + * g++.dg/cpp0x/constexpr-104472.C: New test. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2022-02-11 Jakub Jelinek + + PR middle-end/104446 + * gcc.target/i386/pr104446.c: New test. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2022-02-08 Jakub Jelinek + + PR target/102140 + * gcc.dg/pr102140.c: New test. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2022-02-01 Jakub Jelinek + + PR preprocessor/104147 + * c-c++-common/cpp/pr104147.c: New test. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2022-01-21 Jakub Jelinek + + PR rtl-optimization/102478 + * gcc.dg/pr102478.c: New test. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2022-01-19 Jakub Jelinek + + PR middle-end/102860 + * gfortran.dg/pr102860.f90: New test. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2022-01-06 Jakub Jelinek + + PR rtl-optimization/103908 + * gcc.target/i386/pr103908.c: New test. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-12-30 Jakub Jelinek + + PR preprocessor/89971 + * c-c++-common/cpp/va-opt-9.c: New test. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-12-30 Jakub Jelinek + + PR rtl-optimization/103860 + * gcc.dg/pr103860.c: New test. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-12-28 Jakub Jelinek + + PR rtl-optimization/103837 + * gcc.dg/pr103837.c: New test. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-11-19 Jakub Jelinek + + PR c++/70796 + * g++.dg/cpp1z/eval-order11.C: New test. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-11-15 Jakub Jelinek + + PR target/103205 + * gcc.target/i386/pr103205.c: New test. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-11-11 Jakub Jelinek + + PR debug/101378 + * g++.dg/debug/dwarf2/pr101378.C: New test. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-10-21 Jakub Jelinek + + PR middle-end/64888 + * c-c++-common/ubsan/pr64888.c: New test. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-10-19 Jakub Jelinek + + PR c++/102786 + * g++.dg/cpp2a/constexpr-virtual19.C: New test. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-10-05 Jakub Jelinek + + PR c++/102548 + * g++.target/i386/pr102548.C: New test. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-10-01 Jakub Jelinek + Richard Biener + + PR sanitizer/102515 + * c-c++-common/ubsan/float-div-by-zero-2.c: New test. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-09-28 Jakub Jelinek + + PR target/102498 + * gcc.target/i386/pr102498.c: New test. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-09-15 Jakub Jelinek + + PR c++/88578 + PR c++/102295 + * g++.dg/ext/flexary39.C: New test. + * g++.dg/ext/flexary40.C: New test. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-09-14 Jakub Jelinek + + PR c++/102295 + * g++.target/i386/pr102295.C: New test. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-09-14 Jakub Jelinek + + PR c++/102305 + * g++.dg/cpp0x/pr102305.C: New test. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-09-08 Jakub Jelinek + + PR target/102224 + * gcc.dg/pr102224.c: New test. + * gcc.target/i386/avx-pr102224.c: New test. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-08-23 Jakub Jelinek + + PR debug/101905 + * gcc.dg/guality/pr101905.c: New test. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-07-28 Jakub Jelinek + + PR middle-end/101624 + * gfortran.dg/ubsan/ubsan.exp: New file. + * gfortran.dg/ubsan/pr101624.f90: New test. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-07-23 Jakub Jelinek + + PR rtl-optimization/101562 + * gcc.c-torture/compile/pr101562.c: New test. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-07-21 Jakub Jelinek + + PR middle-end/101535 + * c-c++-common/gomp/pr101535-1.c: New test. + * c-c++-common/gomp/pr101535-2.c: New test. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-07-21 Jakub Jelinek + + PR c++/101516 + * g++.dg/gomp/pr101516.C: New test. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-07-20 Jakub Jelinek + + PR target/101384 + * gcc.dg/pr101384.c: New test. + + 2022-05-11 Tobias Burnus + + Backported from master: + 2021-05-04 Tobias Burnus + + * gcc.dg/gomp/clause-1.c: Use 'reduction(&:..)' instead of '...(&&:..)'. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-07-15 Jakub Jelinek + + PR c++/101443 + * g++.dg/cpp0x/nullptr46.C: New test. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-07-01 Jakub Jelinek + + PR debug/101266 + * gcc.dg/pr101266.c: New test. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-06-29 Jakub Jelinek + + PR c++/101210 + * g++.dg/ubsan/pr101210.C: New test. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-06-24 Jakub Jelinek + + PR c/101171 + * gcc.dg/pr101171.c: New test. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-06-21 Jakub Jelinek + + PR inline-asm/100785 + * c-c++-common/pr100785.c: New test. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-06-16 Jakub Jelinek + + PR middle-end/101062 + * gcc.dg/pr101062.c: New test. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-06-16 Jakub Jelinek + + * gcc.dg/guality/pr49888.c (f): Use noipa attribute instead of + noinline, noclone. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-06-07 Jakub Jelinek + + PR middle-end/100898 + * g++.dg/ext/va-arg-pack-3.C: New test. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-05-25 Jakub Jelinek + + PR c++/100666 + * g++.dg/cpp1z/nodiscard8.C: New test. + * g++.dg/cpp1z/nodiscard9.C: New test. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-05-14 Jakub Jelinek + + * g++.dg/cpp1y/pr88872.C: New test. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-05-12 Jakub Jelinek + + PR middle-end/100508 + * gcc.dg/gomp/pr100508.c: New test. + + 2022-05-10 Eric Botcazou + + * gcc.target/sparc/20220510-1.c: New test. + + 2022-05-09 Mikael Morin + + Backported from master: + 2022-04-24 Mikael Morin + + PR fortran/104228 + PR fortran/104570 + * gfortran.dg/asan_associate_58.f90: New test. + * gfortran.dg/asan_associate_59.f90: New test. + * gfortran.dg/associate_58.f90: New test. + + 2022-05-06 Richard Biener + + Backported from master: + 2022-03-09 Richard Biener + + PR middle-end/104786 + * gcc.dg/pr104786.c: New testcase. + + 2022-05-06 Richard Biener + + Backported from master: + 2021-11-23 Richard Biener + + PR tree-optimization/103361 + * g++.dg/torture/pr103361.C: New testcase. + + 2022-05-06 Richard Biener + + Backported from master: + 2022-01-20 Richard Biener + + PR middle-end/100786 + * gcc.dg/torture/pr100786.c: New testcase. + + 2022-04-27 Hongyu Wang + + Backported from master: + 2022-04-25 Hongyu Wang + + PR target/105339 + * gcc.target/i386/sse-14.c: Add tests for new macro. + + 2022-04-21 Fritz Reese + + Backported from master: + 2022-04-21 Fritz Reese + + PR fortran/105310 + * gfortran.dg/dec_union_12.f90: New test. + + 2022-04-06 Alex Coplan + + PR target/99977 + * gcc.target/arm/pr99977.c: New test. + + 2022-03-30 Martin Jambor + + Backported from master: + 2020-10-19 Martin Jambor + + PR tree-optimization/97456 + * gcc.dg/tree-ssa/pr97456.c: New test. + + 2022-03-16 Richard Biener + + Backported from master: + 2022-02-09 Richard Biener + + PR target/104453 + * gcc.target/i386/pr104453.c: New testcase. + + 2022-02-18 Richard Biener + + Backported from master: + 2020-08-27 Richard Biener + + PR tree-optimization/96522 + * gcc.dg/torture/pr96522.c: New testcase. + + 2022-02-17 Richard Biener + + Backported from master: + 2021-11-08 Richard Biener + + PR tree-optimization/102798 + * gcc.dg/pr102798.c: New testcase. + + 2022-02-17 Richard Biener + + Backported from master: + 2021-11-22 Richard Biener + + PR middle-end/103181 + PR middle-end/103248 + * gcc.dg/torture/pr103181.c: New testcase. + * gcc.dg/pr103248.c: Likewise. + + 2022-02-17 Richard Biener + + Backported from master: + 2021-11-15 Richard Biener + + PR tree-optimization/103237 + * gcc.dg/torture/pr103237.c: New testcase. + + 2022-02-10 Uros Bizjak + + Backported from master: + 2022-02-10 Uroš Bizjak + + PR target/104469 + * gcc.target/i386/pr104469.c: New test. + + 2022-02-09 liuhongt + + PR target/104451 + * gcc.target/i386/pr104451.c: New test. + + 2022-02-04 Harald Anlauf + + Backported from master: + 2022-02-03 Harald Anlauf + + PR fortran/104311 + * gfortran.dg/transfer_simplify_15.f90: New test. + + 2022-01-29 Harald Anlauf + + Backported from master: + 2022-01-22 Harald Anlauf + + PR fortran/104127 + * gfortran.dg/transfer_simplify_11.f90: Fix logic. + * gfortran.dg/transfer_simplify_13.f90: New test. + + 2022-01-26 Harald Anlauf + + Backported from master: + 2022-01-25 Harald Anlauf + + PR fortran/104227 + * gfortran.dg/transfer_check_6.f90: New test. + + 2022-01-23 Harald Anlauf + + Backported from master: + 2022-01-14 Harald Anlauf + + PR fortran/103782 + * gfortran.dg/overload_4.f90: New test. + + 2022-01-12 Richard Biener + + Backported from master: + 2020-11-26 Richard Biener + + PR tree-optimization/97953 + * gcc.dg/pr97953.c: New testcase. + + 2021-12-27 Harald Anlauf + + Backported from master: + 2021-12-14 Harald Anlauf + + PR libfortran/103634 + * gfortran.dg/intrinsic_pack_6.f90: New test. + + 2021-12-19 Harald Anlauf + + Backported from master: + 2021-12-07 Harald Anlauf + + PR fortran/103588 + * gfortran.dg/pr103588.f90: New test. + + 2021-12-17 Harald Anlauf + + Backported from master: + 2021-12-08 Harald Anlauf + + PR fortran/103610 + * gfortran.dg/shape_11.f90: New test. + + 2021-12-16 Harald Anlauf + + Backported from master: + 2021-12-11 Harald Anlauf + + PR fortran/103606 + * gfortran.dg/pr103606.f90: New test. + + 2021-12-16 Harald Anlauf + + Backported from master: + 2021-12-14 Harald Anlauf + + PR fortran/103717 + * gfortran.dg/do_check_19.f90: New test. + + 2021-12-15 Kewen Lin + + Backported from master: + 2021-11-30 Kewen Lin + + PR target/102347 + * gcc.target/powerpc/pr102347.c: New test. + + 2021-12-10 Harald Anlauf + + Backported from master: + 2021-12-07 Harald Anlauf + + PR fortran/103607 + * gfortran.dg/pr103607.f90: New test. + + 2021-11-26 Harald Anlauf + + Backported from master: + 2021-11-23 Harald Anlauf + + PR fortran/103392 + * gfortran.dg/bound_simplification_7.f90: New test. + + 2021-11-25 Jan Hubicka + + Backported from master: + 2021-11-20 Jan Hubicka + + PR ipa/103052 + * gcc.c-torture/execute/pr103052.c: New test. + + 2021-11-23 Bill Schmidt + + PR target/101985 + * gcc.target/powerpc/pr101985-1.c: New. + * gcc.target/powerpc/pr101985-2.c: New. + + 2021-11-22 Stefan Schulze Frielinghaus + + Backported from master: + 2021-11-19 Stefan Schulze Frielinghaus + + * gcc.target/s390/20211119.c: New test. + + 2021-11-09 Richard Biener + + Backported from master: + 2021-05-19 Richard Biener + + PR middle-end/100672 + * gcc.dg/torture/pr100672.c: New testcase. + + 2021-11-08 Richard Biener + + Backported from master: + 2021-08-17 Richard Biener + + PR tree-optimization/101373 + PR tree-optimization/101868 + * gcc.dg/lto/pr101868_0.c: New testcase. + * gcc.dg/lto/pr101868_1.c: Likewise. + * gcc.dg/lto/pr101868_2.c: Likewise. + * gcc.dg/lto/pr101868_3.c: Likewise. + + 2021-11-08 Richard Biener + + Backported from master: + 2021-08-10 Richard Biener + + PR middle-end/101824 + * gcc.dg/tree-ssa/pr101824.c: New testcase. + + 2021-10-13 Richard Biener + + Backported from master: + 2021-07-07 Richard Biener + + PR tree-optimization/101173 + PR tree-optimization/101280 + * gcc.dg/torture/pr101173.c: New testcase. + * gcc.dg/tree-ssa/loop-interchange-16.c: New file. + + 2021-10-13 Richard Biener + + Backported from master: + 2021-07-12 Richard Biener + + PR tree-optimization/101394 + * gcc.dg/torture/pr101394.c: New testcase. + + 2021-10-13 Richard Biener + + PR tree-optimization/101105 + * gcc.dg/torture/pr101105.c: New testcase. + + 2021-10-13 Richard Biener + + Backported from master: + 2021-06-14 Richard Biener + + PR tree-optimization/100934 + * gcc.dg/torture/pr100934.c: New testcase. + + 2021-10-13 Richard Biener + + Backported from master: + 2021-05-11 Richard Biener + + PR middle-end/100509 + * gcc.dg/pr100509.c: New testcase. + + 2021-10-11 Andrew Pinski + + Backported from master: + 2021-10-11 Andrew Pinski + + PR tree-optimization/102622 + * gcc.c-torture/execute/bitfld-10.c: New test. + + 2021-09-30 Harald Anlauf + + Backported from master: + 2021-09-07 Harald Anlauf + + PR fortran/101327 + * gfortran.dg/pr101327.f90: New test. + + 2021-09-30 Harald Anlauf + + Backported from master: + 2021-09-09 Harald Anlauf + + PR fortran/98490 + * gfortran.dg/bounds_check_23.f90: New test. + + 2021-09-30 Harald Anlauf + + Backported from master: + 2021-09-13 Harald Anlauf + + PR fortran/82314 + * gfortran.dg/pr82314.f90: New test. + + 2021-09-21 Harald Anlauf + + Backported from master: + 2021-09-13 Harald Anlauf + + PR fortran/85130 + * gfortran.dg/substr_6.f90: Revert commit r8-7574, adding again + test that was erroneously considered as illegal. + + 2021-09-21 Harald Anlauf + + Backported from master: + 2021-09-16 Harald Anlauf + + PR fortran/102287 + * gfortran.dg/intent_out_14.f90: New test. + + 2021-09-17 Eric Botcazou + + * gcc.target/sparc/20210917-1.c: New test. + + 2021-09-10 Paul Thomas + + Backported from master: + 2020-12-29 Paul Thomas + + PR fortran/97612 + * gfortran.dg/structure_constructor_17.f90: New test. + + 2021-09-10 Paul Thomas + + Backported from master: + 2021-01-22 Paul Thomas + + PR fortran/98565 + * gfortran.dg/associated_target_7.f90 : New test. + + 2021-09-10 Paul Thomas + + Backported from master: + 2021-01-07 Paul Thomas + + PR fortran/93701 + * gfortran.dg/associate_54.f90: New test. + * gfortran.dg/associate_55.f90: New test. + * gfortran.dg/associate_56.f90: New test. + + 2021-09-10 Paul Thomas + + Backported from master: + 2021-01-27 Paul Thomas + + PR fortran/98472 + * gfortran.dg/elemental_function_5.f90 : New test. + + 2021-09-10 Paul Thomas + + Backported from master: + 2021-04-20 Paul Thomas + + PR fortran/100110 + * gfortran.dg/pdt_31.f03: New test. + * gfortran.dg/pdt_26.f03: Reduce 'builtin_malloc' count from 9 + to 8. + + 2021-09-06 Paul Thomas + + Backported from master: + 2021-05-06 Paul Thomas + + PR fortran/46691 + PR fortran/99819 + * gfortran.dg/class_dummy_6.f90: New test. + * gfortran.dg/class_dummy_7.f90: New test. + + 2021-09-06 Paul Thomas + + Backported from master: + 2021-03-13 Paul Thomas + + PR fortran/99125 + * gfortran.dg/alloc_deferred_comp_1.f90: New test. + + 2021-09-06 Paul Thomas + + Backported from master: + 2021-01-27 Paul Thomas + + PR fortran/93924 + PR fortran/93925 + * gfortran.dg/proc_ptr_52.f90 : New test. + + 2021-09-06 Paul Thomas + + Backported from master: + 2021-01-08 Paul Thomas + + PR fortran/93794 + * gfortran.dg/deferred_character_35.f90 : New test. + + 2021-08-25 konglin1 + + PR target/101471 + * gcc.target/i386/avx512f-pr101471.c: New test. + + 2021-08-23 Christophe Lyon + + Backported from master: + 2021-08-06 Christophe Lyon + + PR target/101723 + * gcc.target/arm/pr69245.c: Make sure to emit code for fn1, fix + typo. + + 2021-08-23 Richard Earnshaw + + Backported from master: + 2021-08-05 Richard Earnshaw + + PR target/101723 + * gcc.target/arm/attr-neon.c: Tighten scan-assembler tests. + * gcc.target/arm/attr-neon2.c: Likewise. + * gcc.target/arm/attr-neon3.c: Likewise. + * gcc.target/arm/pr69245.c: Tighten scan-assembler match, but allow + multiple instances. + * gcc.target/arm/pragma_fpu_attribute.c: Likewise. + * gcc.target/arm/pragma_fpu_attribute_2.c: Likewise. + + 2021-08-19 Thomas Schwinge + + Backported from master: + 2021-08-19 Thomas Schwinge + + PR testsuite/101969 + * gcc.dg/pr78213.c: Fix up for '--enable-checking=release' etc. + + 2021-08-17 Thomas Schwinge + + Backported from master: + 2021-08-17 Thomas Schwinge + + * gcc.dg/pr78213.c: Restore testing. + + 2021-07-29 Bill Schmidt + + PR target/101531 + * gcc.target/powerpc/pr101129.c: Adjust. + + 2021-07-29 Iain Buclaw + + Backported from master: + 2021-07-29 Iain Buclaw + + PR d/96435 + * gdc.dg/pr96435.d: New test. + + 2021-07-28 Iain Buclaw + + Backported from master: + 2021-07-28 Iain Buclaw + + PR d/101640 + * gdc.dg/pr101640.d: New test. + + 2021-07-28 Iain Buclaw + + Backported from master: + 2021-07-28 Iain Buclaw + + PR d/101490 + * gdc.dg/pr101490.d: New test. + * gdc.test/fail_compilation/fail22144.d: New test. + + 2021-07-28 Iain Buclaw + + Backported from master: + 2021-07-28 Iain Buclaw + + PR d/101441 + * gdc.test/compilable/b19002.d: New test. + + 2021-07-28 Iain Buclaw + + Backported from master: + 2021-07-28 Iain Buclaw + + PR d/101127 + * gdc.dg/pr101127a.d: New test. + * gdc.dg/pr101127b.d: New test. + + 2021-07-20 Uroš Bizjak + + PR target/100182 + * gcc.target/i386/pr71245-1.c: Remove. + * gcc.target/i386/pr71245-2.c: Ditto. + + 2021-07-19 Bill Schmidt + + PR target/101129 + * gcc.target/powerpc/pr101129.c: New. + + 2021-07-16 Harald Anlauf + + Backported from master: + 2021-07-14 Harald Anlauf + + PR fortran/100949 + * gfortran.dg/pr100949.f90: New test. + + 2021-07-12 Thomas Koenig + + Backported from master: + 2021-07-06 Thomas Koenig + + PR fortran/100227 + * gfortran.dg/implied_do_io_7.f90: New test. + + 2021-06-24 Uros Bizjak + + Backported from master: + 2021-06-23 Uroš Bizjak + + PR target/101175 + * gcc.target/i386/pr101175.c: New test. + + 2021-06-10 Iain Buclaw + + Backported from master: + 2021-06-10 Iain Buclaw + + PR d/100967 + * gdc.dg/pr100967.d: New test. + + 2021-06-10 Iain Buclaw + + Backported from master: + 2019-06-16 Iain Buclaw + + PR d/90651 + * gdc.test/fail_compilation/extra-files/minimal/object.d: New file. + * gdc.test/fail_compilation/fail19911a.d: New test. + * gdc.test/fail_compilation/fail19911b.d: New test. + * gdc.test/fail_compilation/fail19911c.d: New test. + * gdc.test/fail_compilation/fail19922.d: New test. + * gdc.test/fail_compilation/fail19923.d: New test. + + 2021-06-09 Iain Buclaw + + Backported from master: + 2021-06-09 Iain Buclaw + + PR d/100964 + * gdc.test/compilable/betterCarray.d: Add test cases. + + 2021-06-09 Iain Buclaw + + Backported from master: + 2021-06-09 Iain Buclaw + + PR d/100935 + * gdc.test/compilable/aggr_alignment.d: Add test cases. + + 2021-06-04 Iain Buclaw + + Backported from master: + 2021-06-04 Iain Buclaw + + PR d/100882 + * gdc.dg/pr100882a.d: New test. + * gdc.dg/pr100882b.d: New test. + * gdc.dg/pr100882c.d: New test. + * gdc.dg/pr100882d.d: New test. + + 2021-06-04 Harald Anlauf + + Backported from master: + 2021-06-04 Harald Anlauf + + PR fortran/99839 + * gfortran.dg/inline_matmul_25.f90: New test. + 2021-06-01 Release Manager * GCC 9.4.0 released. diff -Nrcpad gcc-9.4.0/gcc/testsuite/c-c++-common/Wshift-negative-value-1.c gcc-9.5.0/gcc/testsuite/c-c++-common/Wshift-negative-value-1.c *** gcc-9.4.0/gcc/testsuite/c-c++-common/Wshift-negative-value-1.c Tue Jun 1 07:53:05 2021 --- gcc-9.5.0/gcc/testsuite/c-c++-common/Wshift-negative-value-1.c Fri May 27 07:21:11 2022 *************** *** 1,13 **** /* PR c/65179 */ /* { dg-do compile } */ /* { dg-options "-O -Wextra" } */ - /* { dg-additional-options "-std=c++11" { target c++ } } */ enum E { A = 0 << 1, B = 1 << 1, ! C = -1 << 1, /* { dg-warning "left shift of negative value|not an integer constant" } */ ! /* { dg-error "left operand of shift expression" "shift" { target c++ } .-1 } */ D = 0 >> 1, E = 1 >> 1, F = -1 >> 1 --- 1,12 ---- /* PR c/65179 */ /* { dg-do compile } */ /* { dg-options "-O -Wextra" } */ enum E { A = 0 << 1, B = 1 << 1, ! C = -1 << 1, /* { dg-warning "left shift of negative value|not an integer constant" "" { target { c || { c++11 && c++17_down } } } } */ ! /* { dg-error "left operand of shift expression" "shift" { target { c++11 && c++17_down } } .-1 } */ D = 0 >> 1, E = 1 >> 1, F = -1 >> 1 *************** left (int x) *** 23,32 **** int r = 0; r += z << x; r += o << x; ! r += m << x; /* { dg-warning "left shift of negative value" } */ r += 0 << x; r += 1 << x; ! r += -1 << x; /* { dg-warning "left shift of negative value" } */ r += -1U << x; return r; } --- 22,31 ---- int r = 0; r += z << x; r += o << x; ! r += m << x; /* { dg-warning "left shift of negative value" "" { target { c || { c++11 && c++17_down } } } } */ r += 0 << x; r += 1 << x; ! r += -1 << x; /* { dg-warning "left shift of negative value" "" { target { c || { c++11 && c++17_down } } } } */ r += -1U << x; return r; } diff -Nrcpad gcc-9.4.0/gcc/testsuite/c-c++-common/Wshift-negative-value-10.c gcc-9.5.0/gcc/testsuite/c-c++-common/Wshift-negative-value-10.c *** gcc-9.4.0/gcc/testsuite/c-c++-common/Wshift-negative-value-10.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/c-c++-common/Wshift-negative-value-10.c Fri May 27 07:21:11 2022 *************** *** 0 **** --- 1,7 ---- + /* PR c/65179 */ + /* { dg-do compile } */ + /* { dg-options "-O -Wshift-negative-value -fwrapv" } */ + /* { dg-additional-options "-std=c++03" { target c++ } } */ + /* { dg-additional-options "-std=c90" { target c } } */ + + #include "Wshift-negative-value-1.c" diff -Nrcpad gcc-9.4.0/gcc/testsuite/c-c++-common/Wshift-negative-value-2.c gcc-9.5.0/gcc/testsuite/c-c++-common/Wshift-negative-value-2.c *** gcc-9.4.0/gcc/testsuite/c-c++-common/Wshift-negative-value-2.c Tue Jun 1 07:53:05 2021 --- gcc-9.5.0/gcc/testsuite/c-c++-common/Wshift-negative-value-2.c Fri May 27 07:21:11 2022 *************** *** 1,14 **** /* PR c/65179 */ /* { dg-do compile } */ /* { dg-options "-O -Wshift-negative-value" } */ - /* { dg-additional-options "-std=c++11" { target c++ } } */ enum E { A = 0 << 1, B = 1 << 1, C = -1 << 1, /* { dg-warning "left shift of negative value" } */ ! /* { dg-error "not an integer constant" "no constant" { target c++ } .-1 } */ ! /* { dg-error "left operand of shift expression" "shift" { target c++ } .-2 } */ D = 0 >> 1, E = 1 >> 1, F = -1 >> 1 --- 1,13 ---- /* PR c/65179 */ /* { dg-do compile } */ /* { dg-options "-O -Wshift-negative-value" } */ enum E { A = 0 << 1, B = 1 << 1, C = -1 << 1, /* { dg-warning "left shift of negative value" } */ ! /* { dg-error "not an integer constant" "no constant" { target { c++11 && c++17_down } } .-1 } */ ! /* { dg-error "left operand of shift expression" "shift" { target { c++11 && c++17_down } } .-2 } */ D = 0 >> 1, E = 1 >> 1, F = -1 >> 1 diff -Nrcpad gcc-9.4.0/gcc/testsuite/c-c++-common/Wshift-negative-value-3.c gcc-9.5.0/gcc/testsuite/c-c++-common/Wshift-negative-value-3.c *** gcc-9.4.0/gcc/testsuite/c-c++-common/Wshift-negative-value-3.c Tue Jun 1 07:53:05 2021 --- gcc-9.5.0/gcc/testsuite/c-c++-common/Wshift-negative-value-3.c Fri May 27 07:21:11 2022 *************** *** 1,14 **** /* PR c/65179 */ /* { dg-do compile } */ /* { dg-options "-O -Wextra -Wno-shift-negative-value" } */ - /* { dg-additional-options "-std=c++11" { target c++ } } */ enum E { A = 0 << 1, B = 1 << 1, C = -1 << 1, ! /* { dg-error "not an integer constant" "no constant" { target c++ } .-1 } */ ! /* { dg-error "left operand of shift expression" "shift" { target c++ } .-2 } */ D = 0 >> 1, E = 1 >> 1, F = -1 >> 1 --- 1,13 ---- /* PR c/65179 */ /* { dg-do compile } */ /* { dg-options "-O -Wextra -Wno-shift-negative-value" } */ enum E { A = 0 << 1, B = 1 << 1, C = -1 << 1, ! /* { dg-error "not an integer constant" "no constant" { target { c++11 && c++17_down } } .-1 } */ ! /* { dg-error "left operand of shift expression" "shift" { target { c++11 && c++17_down } } .-2 } */ D = 0 >> 1, E = 1 >> 1, F = -1 >> 1 diff -Nrcpad gcc-9.4.0/gcc/testsuite/c-c++-common/Wshift-negative-value-4.c gcc-9.5.0/gcc/testsuite/c-c++-common/Wshift-negative-value-4.c *** gcc-9.4.0/gcc/testsuite/c-c++-common/Wshift-negative-value-4.c Tue Jun 1 07:53:05 2021 --- gcc-9.5.0/gcc/testsuite/c-c++-common/Wshift-negative-value-4.c Fri May 27 07:21:11 2022 *************** *** 1,14 **** /* PR c/65179 */ /* { dg-do compile } */ /* { dg-options "-O" } */ - /* { dg-additional-options "-std=c++11" { target c++ } } */ enum E { A = 0 << 1, B = 1 << 1, C = -1 << 1, ! /* { dg-error "not an integer constant" "no constant" { target c++ } .-1 } */ ! /* { dg-error "left operand of shift expression" "shift" { target c++ } .-2 } */ D = 0 >> 1, E = 1 >> 1, F = -1 >> 1 --- 1,13 ---- /* PR c/65179 */ /* { dg-do compile } */ /* { dg-options "-O" } */ enum E { A = 0 << 1, B = 1 << 1, C = -1 << 1, ! /* { dg-error "not an integer constant" "no constant" { target { c++11 && c++17_down } } .-1 } */ ! /* { dg-error "left operand of shift expression" "shift" { target { c++11 && c++17_down } } .-2 } */ D = 0 >> 1, E = 1 >> 1, F = -1 >> 1 diff -Nrcpad gcc-9.4.0/gcc/testsuite/c-c++-common/Wshift-negative-value-7.c gcc-9.5.0/gcc/testsuite/c-c++-common/Wshift-negative-value-7.c *** gcc-9.4.0/gcc/testsuite/c-c++-common/Wshift-negative-value-7.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/c-c++-common/Wshift-negative-value-7.c Fri May 27 07:21:11 2022 *************** *** 0 **** --- 1,5 ---- + /* PR c/65179 */ + /* { dg-do compile } */ + /* { dg-options "-O -Wextra -fwrapv" } */ + + #include "Wshift-negative-value-1.c" diff -Nrcpad gcc-9.4.0/gcc/testsuite/c-c++-common/Wshift-negative-value-8.c gcc-9.5.0/gcc/testsuite/c-c++-common/Wshift-negative-value-8.c *** gcc-9.4.0/gcc/testsuite/c-c++-common/Wshift-negative-value-8.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/c-c++-common/Wshift-negative-value-8.c Fri May 27 07:21:11 2022 *************** *** 0 **** --- 1,5 ---- + /* PR c/65179 */ + /* { dg-do compile } */ + /* { dg-options "-O -Wshift-negative-value -fwrapv" } */ + + #include "Wshift-negative-value-1.c" diff -Nrcpad gcc-9.4.0/gcc/testsuite/c-c++-common/Wshift-negative-value-9.c gcc-9.5.0/gcc/testsuite/c-c++-common/Wshift-negative-value-9.c *** gcc-9.4.0/gcc/testsuite/c-c++-common/Wshift-negative-value-9.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/c-c++-common/Wshift-negative-value-9.c Fri May 27 07:21:11 2022 *************** *** 0 **** --- 1,5 ---- + /* PR c/65179 */ + /* { dg-do compile } */ + /* { dg-options "-O -fwrapv" } */ + + #include "Wshift-negative-value-1.c" diff -Nrcpad gcc-9.4.0/gcc/testsuite/c-c++-common/Wshift-overflow-1.c gcc-9.5.0/gcc/testsuite/c-c++-common/Wshift-overflow-1.c *** gcc-9.4.0/gcc/testsuite/c-c++-common/Wshift-overflow-1.c Tue Jun 1 07:53:05 2021 --- gcc-9.5.0/gcc/testsuite/c-c++-common/Wshift-overflow-1.c Fri May 27 07:21:11 2022 *************** *** 1,7 **** /* PR c++/55095 */ /* { dg-do compile { target int32 } } */ /* { dg-options "-O" } */ - /* { dg-additional-options "-std=c++11" { target c++ } } */ #define INTM1 (sizeof (int) * __CHAR_BIT__ - 1) #define INTM2 (sizeof (int) * __CHAR_BIT__ - 2) --- 1,6 ---- *************** *** 12,27 **** #define LONG_LONG_MIN (-__LONG_LONG_MAX__-1) int i1 = 1 << INTM1; ! int i2 = 9 << INTM1; /* { dg-warning "requires 36 bits to represent" } */ ! int i3 = 10 << INTM2; /* { dg-warning "requires 35 bits to represent" } */ ! int i4 = __INT_MAX__ << 2; /* { dg-warning "requires 34 bits to represent" } */ ! int i5 = __INT_MAX__ << INTM1; /* { dg-warning "requires 63 bits to represent" } */ int i6 = -1 << INTM1; ! int i7 = -9 << INTM1; /* { dg-warning "requires 36 bits to represent" } */ ! int i8 = -10 << INTM2; /* { dg-warning "requires 35 bits to represent" } */ ! int i9 = -__INT_MAX__ << 2; /* { dg-warning "requires 34 bits to represent" } */ ! int i10 = -__INT_MAX__ << INTM1; /* { dg-warning "requires 63 bits to represent" } */ ! int i11 = INT_MIN << 1; /* { dg-warning "requires 33 bits to represent" } */ int r1 = 1 >> INTM1; int r2 = 9 >> INTM1; --- 11,26 ---- #define LONG_LONG_MIN (-__LONG_LONG_MAX__-1) int i1 = 1 << INTM1; ! int i2 = 9 << INTM1; /* { dg-warning "requires 36 bits to represent" "" { target { c || { c++11 && c++17_down } } } } */ ! int i3 = 10 << INTM2; /* { dg-warning "requires 35 bits to represent" "" { target { c || { c++11 && c++17_down } } } } */ ! int i4 = __INT_MAX__ << 2; /* { dg-warning "requires 34 bits to represent" "" { target { c || { c++11 && c++17_down } } } } */ ! int i5 = __INT_MAX__ << INTM1; /* { dg-warning "requires 63 bits to represent" "" { target { c || { c++11 && c++17_down } } } } */ int i6 = -1 << INTM1; ! int i7 = -9 << INTM1; /* { dg-warning "requires 36 bits to represent" "" { target { c || { c++11 && c++17_down } } } } */ ! int i8 = -10 << INTM2; /* { dg-warning "requires 35 bits to represent" "" { target { c || { c++11 && c++17_down } } } } */ ! int i9 = -__INT_MAX__ << 2; /* { dg-warning "requires 34 bits to represent" "" { target { c || { c++11 && c++17_down } } } } */ ! int i10 = -__INT_MAX__ << INTM1; /* { dg-warning "requires 63 bits to represent" "" { target { c || { c++11 && c++17_down } } } } */ ! int i11 = INT_MIN << 1; /* { dg-warning "requires 33 bits to represent" "" { target { c || { c++11 && c++17_down } } } } */ int r1 = 1 >> INTM1; int r2 = 9 >> INTM1; *************** int r9 = -__INT_MAX__ >> 2; *** 35,63 **** int r10 = -__INT_MAX__ >> INTM1; unsigned u1 = 1 << INTM1; ! unsigned u2 = 9 << INTM1; /* { dg-warning "requires 36 bits to represent" } */ unsigned u3 = 2U << INTM1; unsigned u4 = 9U << INTM1; unsigned u5 = 10U << INTM2; long long int l1 = 1LL << LLONGM1; ! long long int l2 = 9LL << LLONGM1; /* { dg-warning "requires 68 bits to represent" } */ ! long long int l3 = 10LL << LLONGM2; /* { dg-warning "requires 67 bits to represent" } */ ! long long int l4 = __LONG_LONG_MAX__ << 2; /* { dg-warning "requires 66 bits to represent" } */ ! long long int l5 = __LONG_LONG_MAX__ << LLONGM1; /* { dg-warning "requires 127 bits to represent" } */ long long int l6 = -1LL << LLONGM1; ! long long int l7 = -9LL << LLONGM1; /* { dg-warning "requires 68 bits to represent" } */ ! long long int l8 = -10LL << LLONGM2; /* { dg-warning "requires 67 bits to represent" } */ ! long long int l9 = -__LONG_LONG_MAX__ << 2; /* { dg-warning "requires 66 bits to represent" } */ ! long long int l10 = -__LONG_LONG_MAX__ << LLONGM1; /* { dg-warning "requires 127 bits to represent" } */ ! long long int l11 = LONG_LONG_MIN << 1; /* { dg-warning "requires 65 bits to represent" } */ void fn (void) { const int a = 10; const __SIZE_TYPE__ b = INTM1; ! int k1 = a << b; /* { dg-warning "requires 36 bits to represent" } */ ! int k2 = 10 << b; /* { dg-warning "requires 36 bits to represent" } */ ! int k3 = a << INTM1; /* { dg-warning "requires 36 bits to represent" } */ } --- 34,62 ---- int r10 = -__INT_MAX__ >> INTM1; unsigned u1 = 1 << INTM1; ! unsigned u2 = 9 << INTM1; /* { dg-warning "requires 36 bits to represent" "" { target { c || { c++11 && c++17_down } } } } */ unsigned u3 = 2U << INTM1; unsigned u4 = 9U << INTM1; unsigned u5 = 10U << INTM2; long long int l1 = 1LL << LLONGM1; ! long long int l2 = 9LL << LLONGM1; /* { dg-warning "requires 68 bits to represent" "" { target { c || { c++11 && c++17_down } } } } */ ! long long int l3 = 10LL << LLONGM2; /* { dg-warning "requires 67 bits to represent" "" { target { c || { c++11 && c++17_down } } } } */ ! long long int l4 = __LONG_LONG_MAX__ << 2; /* { dg-warning "requires 66 bits to represent" "" { target { c || { c++11 && c++17_down } } } } */ ! long long int l5 = __LONG_LONG_MAX__ << LLONGM1; /* { dg-warning "requires 127 bits to represent" "" { target { c || { c++11 && c++17_down } } } } */ long long int l6 = -1LL << LLONGM1; ! long long int l7 = -9LL << LLONGM1; /* { dg-warning "requires 68 bits to represent" "" { target { c || { c++11 && c++17_down } } } } */ ! long long int l8 = -10LL << LLONGM2; /* { dg-warning "requires 67 bits to represent" "" { target { c || { c++11 && c++17_down } } } } */ ! long long int l9 = -__LONG_LONG_MAX__ << 2; /* { dg-warning "requires 66 bits to represent" "" { target { c || { c++11 && c++17_down } } } } */ ! long long int l10 = -__LONG_LONG_MAX__ << LLONGM1; /* { dg-warning "requires 127 bits to represent" "" { target { c || { c++11 && c++17_down } } } } */ ! long long int l11 = LONG_LONG_MIN << 1; /* { dg-warning "requires 65 bits to represent" "" { target { c || { c++11 && c++17_down } } } } */ void fn (void) { const int a = 10; const __SIZE_TYPE__ b = INTM1; ! int k1 = a << b; /* { dg-warning "requires 36 bits to represent" "" { target { c || { c++11 && c++17_down } } } } */ ! int k2 = 10 << b; /* { dg-warning "requires 36 bits to represent" "" { target { c || { c++11 && c++17_down } } } } */ ! int k3 = a << INTM1; /* { dg-warning "requires 36 bits to represent" "" { target { c || { c++11 && c++17_down } } } } */ } diff -Nrcpad gcc-9.4.0/gcc/testsuite/c-c++-common/Wshift-overflow-10.c gcc-9.5.0/gcc/testsuite/c-c++-common/Wshift-overflow-10.c *** gcc-9.4.0/gcc/testsuite/c-c++-common/Wshift-overflow-10.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/c-c++-common/Wshift-overflow-10.c Fri May 27 07:21:11 2022 *************** *** 0 **** --- 1,5 ---- + /* PR c++/55095 */ + /* { dg-do compile { target int32 } } */ + /* { dg-options "-O -Wshift-overflow=2 -fwrapv" } */ + + #include "Wshift-overflow-5.c" diff -Nrcpad gcc-9.4.0/gcc/testsuite/c-c++-common/Wshift-overflow-11.c gcc-9.5.0/gcc/testsuite/c-c++-common/Wshift-overflow-11.c *** gcc-9.4.0/gcc/testsuite/c-c++-common/Wshift-overflow-11.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/c-c++-common/Wshift-overflow-11.c Fri May 27 07:21:11 2022 *************** *** 0 **** --- 1,5 ---- + /* PR c++/55095 */ + /* { dg-do compile { target int32 } } */ + /* { dg-options "-Wshift-overflow=1 -fwrapv" } */ + + #include "Wshift-overflow-6.c" diff -Nrcpad gcc-9.4.0/gcc/testsuite/c-c++-common/Wshift-overflow-12.c gcc-9.5.0/gcc/testsuite/c-c++-common/Wshift-overflow-12.c *** gcc-9.4.0/gcc/testsuite/c-c++-common/Wshift-overflow-12.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/c-c++-common/Wshift-overflow-12.c Fri May 27 07:21:11 2022 *************** *** 0 **** --- 1,5 ---- + /* PR c++/55095 */ + /* { dg-do compile { target int32 } } */ + /* { dg-options "-Wshift-overflow=2 -fwrapv" } */ + + #include "Wshift-overflow-7.c" diff -Nrcpad gcc-9.4.0/gcc/testsuite/c-c++-common/Wshift-overflow-2.c gcc-9.5.0/gcc/testsuite/c-c++-common/Wshift-overflow-2.c *** gcc-9.4.0/gcc/testsuite/c-c++-common/Wshift-overflow-2.c Tue Jun 1 07:53:05 2021 --- gcc-9.5.0/gcc/testsuite/c-c++-common/Wshift-overflow-2.c Fri May 27 07:21:11 2022 *************** *** 1,7 **** /* PR c++/55095 */ /* { dg-do compile { target int32 } } */ /* { dg-options "-O -Wno-shift-overflow" } */ - /* { dg-additional-options "-std=c++11" { target c++ } } */ #define INTM1 (sizeof (int) * __CHAR_BIT__ - 1) #define INTM2 (sizeof (int) * __CHAR_BIT__ - 2) --- 1,6 ---- diff -Nrcpad gcc-9.4.0/gcc/testsuite/c-c++-common/Wshift-overflow-5.c gcc-9.5.0/gcc/testsuite/c-c++-common/Wshift-overflow-5.c *** gcc-9.4.0/gcc/testsuite/c-c++-common/Wshift-overflow-5.c Tue Jun 1 07:53:05 2021 --- gcc-9.5.0/gcc/testsuite/c-c++-common/Wshift-overflow-5.c Fri May 27 07:21:11 2022 *************** *** 1,11 **** /* PR c++/55095 */ /* { dg-do compile { target int32 } } */ /* { dg-options "-O -Wshift-overflow=2" } */ - /* { dg-additional-options "-std=c++11" { target c++ } } */ #define INTM1 (sizeof (int) * __CHAR_BIT__ - 1) #define LLONGM1 (sizeof (long long) * __CHAR_BIT__ - 1) ! int i1 = 1 << INTM1; /* { dg-warning "requires 33 bits to represent" } */ ! unsigned u1 = 1 << INTM1; /* { dg-warning "requires 33 bits to represent" } */ ! long long int l1 = 1LL << LLONGM1; /* { dg-warning "requires 65 bits to represent" } */ --- 1,10 ---- /* PR c++/55095 */ /* { dg-do compile { target int32 } } */ /* { dg-options "-O -Wshift-overflow=2" } */ #define INTM1 (sizeof (int) * __CHAR_BIT__ - 1) #define LLONGM1 (sizeof (long long) * __CHAR_BIT__ - 1) ! int i1 = 1 << INTM1; /* { dg-warning "requires 33 bits to represent" "" { target { c || c++11_down } } } */ ! unsigned u1 = 1 << INTM1; /* { dg-warning "requires 33 bits to represent" "" { target { c || c++11_down } } } */ ! long long int l1 = 1LL << LLONGM1; /* { dg-warning "requires 65 bits to represent" "" { target { c || c++11_down } } } */ diff -Nrcpad gcc-9.4.0/gcc/testsuite/c-c++-common/Wshift-overflow-6.c gcc-9.5.0/gcc/testsuite/c-c++-common/Wshift-overflow-6.c *** gcc-9.4.0/gcc/testsuite/c-c++-common/Wshift-overflow-6.c Tue Jun 1 07:53:05 2021 --- gcc-9.5.0/gcc/testsuite/c-c++-common/Wshift-overflow-6.c Fri May 27 07:21:11 2022 *************** *** 1,7 **** /* PR c++/55095 */ /* { dg-do compile { target int32 } } */ /* { dg-options "-Wshift-overflow=1" } */ - /* { dg-additional-options "-std=c++11" { target c++ } } */ int i00 = 0b1 << 31; int i01 = 0b10 << 30; --- 1,6 ---- *************** int i27 = 0b1000000000000000000000000000 *** 34,37 **** int i28 = 0b10000000000000000000000000000 << 3; int i29 = 0b100000000000000000000000000000 << 2; int i30 = 0b1000000000000000000000000000000 << 1; ! int i31 = (int) 0b10000000000000000000000000000000u << 1; /* { dg-warning "requires 33 bits to represent" } */ --- 33,36 ---- int i28 = 0b10000000000000000000000000000 << 3; int i29 = 0b100000000000000000000000000000 << 2; int i30 = 0b1000000000000000000000000000000 << 1; ! int i31 = (int) 0b10000000000000000000000000000000u << 1; /* { dg-warning "requires 33 bits to represent" "" { target { c || c++17_down } } } */ diff -Nrcpad gcc-9.4.0/gcc/testsuite/c-c++-common/Wshift-overflow-7.c gcc-9.5.0/gcc/testsuite/c-c++-common/Wshift-overflow-7.c *** gcc-9.4.0/gcc/testsuite/c-c++-common/Wshift-overflow-7.c Tue Jun 1 07:53:05 2021 --- gcc-9.5.0/gcc/testsuite/c-c++-common/Wshift-overflow-7.c Fri May 27 07:21:11 2022 *************** *** 1,37 **** /* PR c++/55095 */ /* { dg-do compile { target int32 } } */ /* { dg-options "-Wshift-overflow=2" } */ - /* { dg-additional-options "-std=c++11" { target c++ } } */ ! int i00 = 0b1 << 31; /* { dg-warning "requires 33 bits to represent" } */ ! int i01 = 0b10 << 30; /* { dg-warning "requires 33 bits to represent" } */ ! int i02 = 0b100 << 29; /* { dg-warning "requires 33 bits to represent" } */ ! int i03 = 0b1000 << 28; /* { dg-warning "requires 33 bits to represent" } */ ! int i04 = 0b10000 << 27; /* { dg-warning "requires 33 bits to represent" } */ ! int i05 = 0b100000 << 26; /* { dg-warning "requires 33 bits to represent" } */ ! int i06 = 0b1000000 << 25; /* { dg-warning "requires 33 bits to represent" } */ ! int i07 = 0b10000000 << 24; /* { dg-warning "requires 33 bits to represent" } */ ! int i08 = 0b100000000 << 23; /* { dg-warning "requires 33 bits to represent" } */ ! int i09 = 0b1000000000 << 22; /* { dg-warning "requires 33 bits to represent" } */ ! int i10 = 0b10000000000 << 21; /* { dg-warning "requires 33 bits to represent" } */ ! int i11 = 0b100000000000 << 20; /* { dg-warning "requires 33 bits to represent" } */ ! int i12 = 0b1000000000000 << 19; /* { dg-warning "requires 33 bits to represent" } */ ! int i13 = 0b10000000000000 << 18; /* { dg-warning "requires 33 bits to represent" } */ ! int i14 = 0b100000000000000 << 17; /* { dg-warning "requires 33 bits to represent" } */ ! int i15 = 0b1000000000000000 << 16; /* { dg-warning "requires 33 bits to represent" } */ ! int i16 = 0b10000000000000000 << 15; /* { dg-warning "requires 33 bits to represent" } */ ! int i17 = 0b100000000000000000 << 14; /* { dg-warning "requires 33 bits to represent" } */ ! int i18 = 0b1000000000000000000 << 13; /* { dg-warning "requires 33 bits to represent" } */ ! int i19 = 0b10000000000000000000 << 12; /* { dg-warning "requires 33 bits to represent" } */ ! int i20 = 0b100000000000000000000 << 11; /* { dg-warning "requires 33 bits to represent" } */ ! int i21 = 0b1000000000000000000000 << 10; /* { dg-warning "requires 33 bits to represent" } */ ! int i22 = 0b10000000000000000000000 << 9; /* { dg-warning "requires 33 bits to represent" } */ ! int i23 = 0b100000000000000000000000 << 8; /* { dg-warning "requires 33 bits to represent" } */ ! int i24 = 0b1000000000000000000000000 << 7; /* { dg-warning "requires 33 bits to represent" } */ ! int i25 = 0b10000000000000000000000000 << 6; /* { dg-warning "requires 33 bits to represent" } */ ! int i26 = 0b100000000000000000000000000 << 5; /* { dg-warning "requires 33 bits to represent" } */ ! int i27 = 0b1000000000000000000000000000 << 4; /* { dg-warning "requires 33 bits to represent" } */ ! int i28 = 0b10000000000000000000000000000 << 3; /* { dg-warning "requires 33 bits to represent" } */ ! int i29 = 0b100000000000000000000000000000 << 2; /* { dg-warning "requires 33 bits to represent" } */ ! int i30 = 0b1000000000000000000000000000000 << 1; /* { dg-warning "requires 33 bits to represent" } */ ! int i31 = (int) 0b10000000000000000000000000000000u << 1; /* { dg-warning "requires 33 bits to represent" } */ --- 1,36 ---- /* PR c++/55095 */ /* { dg-do compile { target int32 } } */ /* { dg-options "-Wshift-overflow=2" } */ ! int i00 = 0b1 << 31; /* { dg-warning "requires 33 bits to represent" "" { target { c || c++11_down } } } */ ! int i01 = 0b10 << 30; /* { dg-warning "requires 33 bits to represent" "" { target { c || c++11_down } } } */ ! int i02 = 0b100 << 29; /* { dg-warning "requires 33 bits to represent" "" { target { c || c++11_down } } } */ ! int i03 = 0b1000 << 28; /* { dg-warning "requires 33 bits to represent" "" { target { c || c++11_down } } } */ ! int i04 = 0b10000 << 27; /* { dg-warning "requires 33 bits to represent" "" { target { c || c++11_down } } } */ ! int i05 = 0b100000 << 26; /* { dg-warning "requires 33 bits to represent" "" { target { c || c++11_down } } } */ ! int i06 = 0b1000000 << 25; /* { dg-warning "requires 33 bits to represent" "" { target { c || c++11_down } } } */ ! int i07 = 0b10000000 << 24; /* { dg-warning "requires 33 bits to represent" "" { target { c || c++11_down } } } */ ! int i08 = 0b100000000 << 23; /* { dg-warning "requires 33 bits to represent" "" { target { c || c++11_down } } } */ ! int i09 = 0b1000000000 << 22; /* { dg-warning "requires 33 bits to represent" "" { target { c || c++11_down } } } */ ! int i10 = 0b10000000000 << 21; /* { dg-warning "requires 33 bits to represent" "" { target { c || c++11_down } } } */ ! int i11 = 0b100000000000 << 20; /* { dg-warning "requires 33 bits to represent" "" { target { c || c++11_down } } } */ ! int i12 = 0b1000000000000 << 19; /* { dg-warning "requires 33 bits to represent" "" { target { c || c++11_down } } } */ ! int i13 = 0b10000000000000 << 18; /* { dg-warning "requires 33 bits to represent" "" { target { c || c++11_down } } } */ ! int i14 = 0b100000000000000 << 17; /* { dg-warning "requires 33 bits to represent" "" { target { c || c++11_down } } } */ ! int i15 = 0b1000000000000000 << 16; /* { dg-warning "requires 33 bits to represent" "" { target { c || c++11_down } } } */ ! int i16 = 0b10000000000000000 << 15; /* { dg-warning "requires 33 bits to represent" "" { target { c || c++11_down } } } */ ! int i17 = 0b100000000000000000 << 14; /* { dg-warning "requires 33 bits to represent" "" { target { c || c++11_down } } } */ ! int i18 = 0b1000000000000000000 << 13; /* { dg-warning "requires 33 bits to represent" "" { target { c || c++11_down } } } */ ! int i19 = 0b10000000000000000000 << 12; /* { dg-warning "requires 33 bits to represent" "" { target { c || c++11_down } } } */ ! int i20 = 0b100000000000000000000 << 11; /* { dg-warning "requires 33 bits to represent" "" { target { c || c++11_down } } } */ ! int i21 = 0b1000000000000000000000 << 10; /* { dg-warning "requires 33 bits to represent" "" { target { c || c++11_down } } } */ ! int i22 = 0b10000000000000000000000 << 9; /* { dg-warning "requires 33 bits to represent" "" { target { c || c++11_down } } } */ ! int i23 = 0b100000000000000000000000 << 8; /* { dg-warning "requires 33 bits to represent" "" { target { c || c++11_down } } } */ ! int i24 = 0b1000000000000000000000000 << 7; /* { dg-warning "requires 33 bits to represent" "" { target { c || c++11_down } } } */ ! int i25 = 0b10000000000000000000000000 << 6; /* { dg-warning "requires 33 bits to represent" "" { target { c || c++11_down } } } */ ! int i26 = 0b100000000000000000000000000 << 5; /* { dg-warning "requires 33 bits to represent" "" { target { c || c++11_down } } } */ ! int i27 = 0b1000000000000000000000000000 << 4; /* { dg-warning "requires 33 bits to represent" "" { target { c || c++11_down } } } */ ! int i28 = 0b10000000000000000000000000000 << 3; /* { dg-warning "requires 33 bits to represent" "" { target { c || c++11_down } } } */ ! int i29 = 0b100000000000000000000000000000 << 2; /* { dg-warning "requires 33 bits to represent" "" { target { c || c++11_down } } } */ ! int i30 = 0b1000000000000000000000000000000 << 1; /* { dg-warning "requires 33 bits to represent" "" { target { c || c++11_down } } } */ ! int i31 = (int) 0b10000000000000000000000000000000u << 1; /* { dg-warning "requires 33 bits to represent" "" { target { c || c++17_down } } } */ diff -Nrcpad gcc-9.4.0/gcc/testsuite/c-c++-common/Wshift-overflow-8.c gcc-9.5.0/gcc/testsuite/c-c++-common/Wshift-overflow-8.c *** gcc-9.4.0/gcc/testsuite/c-c++-common/Wshift-overflow-8.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/c-c++-common/Wshift-overflow-8.c Fri May 27 07:21:11 2022 *************** *** 0 **** --- 1,5 ---- + /* PR c++/55095 */ + /* { dg-do compile { target int32 } } */ + /* { dg-options "-O -fwrapv" } */ + + #include "Wshift-overflow-1.c" diff -Nrcpad gcc-9.4.0/gcc/testsuite/c-c++-common/Wshift-overflow-9.c gcc-9.5.0/gcc/testsuite/c-c++-common/Wshift-overflow-9.c *** gcc-9.4.0/gcc/testsuite/c-c++-common/Wshift-overflow-9.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/c-c++-common/Wshift-overflow-9.c Fri May 27 07:21:11 2022 *************** *** 0 **** --- 1,7 ---- + /* PR c++/55095 */ + /* { dg-do compile { target int32 } } */ + /* { dg-options "-O -Wshift-overflow -fwrapv" } */ + /* { dg-additional-options "-std=gnu90" { target c } } */ + /* { dg-additional-options "-std=c++03" { target c++ } } */ + + #include "Wshift-overflow-1.c" diff -Nrcpad gcc-9.4.0/gcc/testsuite/c-c++-common/builtin-convertvector-3.c gcc-9.5.0/gcc/testsuite/c-c++-common/builtin-convertvector-3.c *** gcc-9.4.0/gcc/testsuite/c-c++-common/builtin-convertvector-3.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/c-c++-common/builtin-convertvector-3.c Fri May 27 07:21:11 2022 *************** *** 0 **** --- 1,11 ---- + /* { dg-do compile } */ + /* { dg-options "-O2" } */ + + typedef int v4si __attribute__((vector_size (4 * sizeof (int)))); + typedef double v4df __attribute__((vector_size (4 * sizeof (double)))); + double + foo (void) + { + v4si a = { 1, 2, 3, 4 }; + return __builtin_convertvector (a, v4df)[1]; + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/c-c++-common/cpp/pr104147.c gcc-9.5.0/gcc/testsuite/c-c++-common/cpp/pr104147.c *** gcc-9.4.0/gcc/testsuite/c-c++-common/cpp/pr104147.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/c-c++-common/cpp/pr104147.c Fri May 27 07:21:11 2022 *************** *** 0 **** --- 1,27 ---- + /* PR preprocessor/104147 */ + /* { dg-do run } */ + + #define X(x,y) x y + #define STR_(x) #x + #define STR(x) STR_(x) + const char *str = + STR(X(Y,Y)) + #define Y() + STR(X(Y,Y)) + #undef Y + STR(X(Y,Y)) + #define Y() + STR(X(Y,Y)) + STR(X(Y, + Y)) + STR(X(Y + ,Y)) + ; + + int + main () + { + if (__builtin_strcmp (str, "Y YY YY YY YY YY Y") != 0) + __builtin_abort (); + return 0; + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/c-c++-common/gomp/pr101535-1.c gcc-9.5.0/gcc/testsuite/c-c++-common/gomp/pr101535-1.c *** gcc-9.4.0/gcc/testsuite/c-c++-common/gomp/pr101535-1.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/c-c++-common/gomp/pr101535-1.c Fri May 27 07:21:11 2022 *************** *** 0 **** --- 1,31 ---- + /* PR middle-end/101535 */ + + void + foo (void) + { + int a = 1, i; + #pragma omp target data map(to:a) + #pragma omp for lastprivate(i) /* { dg-error "lastprivate variable 'i' is private in outer context" } */ + for (i = 1; i < 2; i++) + ; + } + + void + bar (void) + { + int a = 1, i; + #pragma omp target private(i) + #pragma omp for lastprivate(i) /* { dg-error "lastprivate variable 'i' is private in outer context" } */ + for (i = 1; i < 2; i++) + ; + } + + void + baz (void) + { + int a = 1, i; + #pragma omp target firstprivate(i) + #pragma omp for lastprivate(i) /* { dg-error "lastprivate variable 'i' is private in outer context" } */ + for (i = 1; i < 2; i++) + ; + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/c-c++-common/gomp/pr101535-2.c gcc-9.5.0/gcc/testsuite/c-c++-common/gomp/pr101535-2.c *** gcc-9.4.0/gcc/testsuite/c-c++-common/gomp/pr101535-2.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/c-c++-common/gomp/pr101535-2.c Fri May 27 07:21:11 2022 *************** *** 0 **** --- 1,11 ---- + /* PR middle-end/101535 */ + + void + foo (void) + { + int a = 1, i; + #pragma omp target map(tofrom:i) + #pragma omp for lastprivate(i) + for (i = 1; i < 2; i++) + ; + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/c-c++-common/pr100785.c gcc-9.5.0/gcc/testsuite/c-c++-common/pr100785.c *** gcc-9.4.0/gcc/testsuite/c-c++-common/pr100785.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/c-c++-common/pr100785.c Fri May 27 07:21:11 2022 *************** *** 0 **** --- 1,21 ---- + /* PR inline-asm/100785 */ + + struct S { int a : 1; }; + + void + foo (struct S *x) + { + __asm__ ("" : "+m" (x->a)); /* { dg-error "address of bit-field" } */ + } /* { dg-error "invalid lvalue in asm output 0" "" { target c } .-1 } */ + /* { dg-error "memory input 1 is not directly addressable" "" { target c } .-2 } */ + void + bar (struct S *x) + { + __asm__ ("" : "=m" (x->a)); /* { dg-error "address of bit-field" } */ + } /* { dg-error "invalid lvalue in asm output 0" "" { target c } .-1 } */ + + void + baz (struct S *x) + { + __asm__ ("" : : "m" (x->a)); /* { dg-error "address of bit-field" } */ + } /* { dg-error "memory input 0 is not directly addressable" "" { target c } .-1 } */ diff -Nrcpad gcc-9.4.0/gcc/testsuite/c-c++-common/pr105186.c gcc-9.5.0/gcc/testsuite/c-c++-common/pr105186.c *** gcc-9.4.0/gcc/testsuite/c-c++-common/pr105186.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/c-c++-common/pr105186.c Fri May 27 07:21:11 2022 *************** *** 0 **** --- 1,5 ---- + /* PR c++/105186 */ + /* { dg-do compile } */ + + __attribute__((__int128)) int i; /* { dg-warning "'__int128' attribute directive ignored" } */ + __attribute__((__int128__)) int j; /* { dg-warning "'int128' attribute directive ignored" } */ diff -Nrcpad gcc-9.4.0/gcc/testsuite/c-c++-common/ubsan/float-div-by-zero-2.c gcc-9.5.0/gcc/testsuite/c-c++-common/ubsan/float-div-by-zero-2.c *** gcc-9.4.0/gcc/testsuite/c-c++-common/ubsan/float-div-by-zero-2.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/c-c++-common/ubsan/float-div-by-zero-2.c Fri May 27 07:21:11 2022 *************** *** 0 **** --- 1,18 ---- + /* { dg-do run } */ + /* { dg-shouldfail "ubsan" } */ + /* { dg-options "-fsanitize=float-divide-by-zero -fno-sanitize-recover=float-divide-by-zero -fsanitize-recover=integer-divide-by-zero" } */ + + int + main (void) + { + volatile float a = 1.3f; + volatile double b = 0.0; + volatile int c = 4; + volatile float res; + + res = a / b; + + return 0; + } + + /* { dg-output "division by zero" } */ diff -Nrcpad gcc-9.4.0/gcc/testsuite/c-c++-common/ubsan/pr64888.c gcc-9.5.0/gcc/testsuite/c-c++-common/ubsan/pr64888.c *** gcc-9.4.0/gcc/testsuite/c-c++-common/ubsan/pr64888.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/c-c++-common/ubsan/pr64888.c Fri May 27 07:21:11 2022 *************** *** 0 **** --- 1,27 ---- + /* PR middle-end/64888 */ + /* { dg-do compile { target fopenmp } } */ + /* { dg-options "-fopenmp -fsanitize=undefined" } */ + + int a, b; + + void + foo () + { + int c; + #pragma omp parallel default (none) shared (a, b) private (c) + { + c = a / b; /* { dg-bogus "not specified in enclosing" } */ + (void) c; + } + #pragma omp task default (none) shared (a, b) private (c) + { + c = a << b; /* { dg-bogus "not specified in enclosing" } */ + (void) c; + } + #pragma omp teams default (none) shared (a, b) + { + int d[a]; /* { dg-bogus "not specified in enclosing" } */ + d[0] = 0; + (void) d[0]; + } + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/g++.dg/asan/pr104449.C gcc-9.5.0/gcc/testsuite/g++.dg/asan/pr104449.C *** gcc-9.4.0/gcc/testsuite/g++.dg/asan/pr104449.C Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/g++.dg/asan/pr104449.C Fri May 27 07:21:11 2022 *************** *** 0 **** --- 1,16 ---- + // PR sanitizer/104449 + // { dg-do compile } + // { dg-options "-fexceptions -fsanitize=address -fstack-check=generic" } + + void bar (int *); + struct A { A (); ~A (); }; + + void + foo (int n) + { + A b; + { + int a[n]; + bar (a); + } + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/g++.dg/cpp0x/alias-decl-equiv1.C gcc-9.5.0/gcc/testsuite/g++.dg/cpp0x/alias-decl-equiv1.C *** gcc-9.4.0/gcc/testsuite/g++.dg/cpp0x/alias-decl-equiv1.C Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/g++.dg/cpp0x/alias-decl-equiv1.C Fri May 27 07:21:11 2022 *************** *** 0 **** --- 1,13 ---- + // PR c++/100032 + // { dg-do compile { target c++11 } } + + template class> struct X { }; + template struct Y { }; + template using Z = const Y; + + template using W = Z; + using U = X; + using U = X; + + using T = X; + using T = X; // { dg-error "conflicting declaration" } diff -Nrcpad gcc-9.4.0/gcc/testsuite/g++.dg/cpp0x/constexpr-104472.C gcc-9.5.0/gcc/testsuite/g++.dg/cpp0x/constexpr-104472.C *** gcc-9.4.0/gcc/testsuite/g++.dg/cpp0x/constexpr-104472.C Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/g++.dg/cpp0x/constexpr-104472.C Fri May 27 07:21:11 2022 *************** *** 0 **** --- 1,9 ---- + // PR c++/104472 + // { dg-options "-O2 -frounding-math" } + // { dg-add-options float16 } + // { dg-require-effective-target float16 } + + typedef short __attribute__((__vector_size__ (16))) V; + typedef _Float16 __attribute__((__vector_size__ (16))) F; + + V v = __builtin_convertvector (__builtin_convertvector ((V){5534}, F), V) < 8; diff -Nrcpad gcc-9.4.0/gcc/testsuite/g++.dg/cpp0x/constexpr-array23.C gcc-9.5.0/gcc/testsuite/g++.dg/cpp0x/constexpr-array23.C *** gcc-9.4.0/gcc/testsuite/g++.dg/cpp0x/constexpr-array23.C Tue Jun 1 07:53:05 2021 --- gcc-9.5.0/gcc/testsuite/g++.dg/cpp0x/constexpr-array23.C Fri May 27 07:21:11 2022 *************** struct A *** 11,17 **** struct B { // This should really be target { ! c++2a } typedef A W[4]; // { dg-error "paren" "" { xfail *-*-* } .+1 } ! constexpr B () : w ({ A::z, A::z, A::z, A::z }) {} // { dg-error "constant" "" { xfail *-*-* } } W w; }; --- 11,17 ---- struct B { // This should really be target { ! c++2a } typedef A W[4]; // { dg-error "paren" "" { xfail *-*-* } .+1 } ! constexpr B () : w ({ A::z, A::z, A::z, A::z }) {} // { dg-error "constant" } W w; }; diff -Nrcpad gcc-9.4.0/gcc/testsuite/g++.dg/cpp0x/constexpr-base7.C gcc-9.5.0/gcc/testsuite/g++.dg/cpp0x/constexpr-base7.C *** gcc-9.4.0/gcc/testsuite/g++.dg/cpp0x/constexpr-base7.C Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/g++.dg/cpp0x/constexpr-base7.C Fri May 27 07:21:11 2022 *************** *** 0 **** --- 1,15 ---- + // PR c++/91933 + // { dg-do compile { target c++11 } } + + struct NoMut1 { int a, b; }; + struct NoMut3 : NoMut1 { + constexpr NoMut3(int a, int b) : NoMut1{a, b} {} + }; + void mutable_subobjects() { + constexpr NoMut3 nm3 = {1, 2}; + struct A { + void f() { + static_assert(nm3.a == 1, ""); + } + }; + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/g++.dg/cpp0x/constexpr-fno-elide-ctors1.C gcc-9.5.0/gcc/testsuite/g++.dg/cpp0x/constexpr-fno-elide-ctors1.C *** gcc-9.4.0/gcc/testsuite/g++.dg/cpp0x/constexpr-fno-elide-ctors1.C Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/g++.dg/cpp0x/constexpr-fno-elide-ctors1.C Fri May 27 07:21:11 2022 *************** *** 0 **** --- 1,89 ---- + // PR c++/104646 + // { dg-do compile { target c++11 } } + // { dg-additional-options -fno-elide-constructors } + + template struct pair { + _T1 first; + int second; + }; + template class __normal_iterator { + _Iterator __traits_type; + + public: + constexpr __normal_iterator() {} + }; + template class allocator; + template struct allocator_traits; + template struct allocator_traits> { + using value_type = _Tp; + template using rebind_alloc = allocator<_Up>; + }; + template struct __alloc_traits { + typedef allocator_traits<_Alloc> _Base_type; + typedef typename _Base_type::value_type &const_reference; + template struct rebind { + typedef typename _Base_type::template rebind_alloc<_Tp> other; + }; + }; + template struct _Vector_base { + typedef typename __alloc_traits<_Alloc>::template rebind<_Tp>::other _Tp_alloc_type; + }; + template > class vector { + public: + typename __alloc_traits< + typename _Vector_base<_Tp, _Alloc>::_Tp_alloc_type>::const_reference + operator[](long); + }; + enum match_flag_type {}; + template class Trans_NS___cxx11_basic_regex; + class Trans_NS___cxx11_match_results; + enum _RegexExecutorPolicy { _S_auto }; + template + bool __regex_algo_impl(Trans_NS___cxx11_match_results &, + const Trans_NS___cxx11_basic_regex<_CharT, _TraitsT> &); + template class _Executor; + template + class Trans_NS___cxx11_basic_regex {}; + class Trans_NS___cxx11_match_results : vector { + template + friend bool __regex_algo_impl(Trans_NS___cxx11_match_results &, + const Trans_NS___cxx11_basic_regex<_Cp, _Rp> &); + }; + template + void regex_search(_Bi_iter, _Alloc, + Trans_NS___cxx11_basic_regex<_Ch_type, _Rx_traits>) { + __regex_algo_impl<_Bi_iter, _Alloc, _Ch_type, _Rx_traits, _S_auto, false>; + } + match_flag_type __regex_algo_impl___flags; + template + bool __regex_algo_impl( + Trans_NS___cxx11_match_results &__m, + const Trans_NS___cxx11_basic_regex<_CharT, _TraitsT> &__re) { + __normal_iterator __e, __s; + _Executor __executor(__s, __e, __m, __re, + __regex_algo_impl___flags); + __executor._M_match(); + return false; + } + template class _Executor { + public: + _Executor(__normal_iterator, __normal_iterator, + vector, Trans_NS___cxx11_basic_regex, match_flag_type); + void _M_match() { _M_dfs(); } + void _M_dfs(); + vector>> _M_rep_count; + }; + long _M_rep_once_more___i; + template + void _Executor<_BiIter, _Alloc, _TraitsT, __dfs_mode>::_M_dfs() { + auto __rep_count = _M_rep_count[_M_rep_once_more___i]; + } + char main___trans_tmp_1; + void main___trans_tmp_2() { + Trans_NS___cxx11_basic_regex re; + regex_search(main___trans_tmp_1, main___trans_tmp_2, re); + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/g++.dg/cpp0x/extern_template-6.C gcc-9.5.0/gcc/testsuite/g++.dg/cpp0x/extern_template-6.C *** gcc-9.4.0/gcc/testsuite/g++.dg/cpp0x/extern_template-6.C Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/g++.dg/cpp0x/extern_template-6.C Fri May 27 07:21:11 2022 *************** *** 0 **** --- 1,17 ---- + // PR c++/99066 + // { dg-do compile { target c++11 } } + + template struct basic_string { + static const int npos = 1; + }; + template const int basic_string::npos; + + struct e { template int f() const; }; + + template int e::f() const { + return basic_string::npos; + } + + extern template class basic_string; + + // { dg-final { scan-assembler-not "_ZN12basic_stringIcE4nposE" } } diff -Nrcpad gcc-9.4.0/gcc/testsuite/g++.dg/cpp0x/initlist-new5.C gcc-9.5.0/gcc/testsuite/g++.dg/cpp0x/initlist-new5.C *** gcc-9.4.0/gcc/testsuite/g++.dg/cpp0x/initlist-new5.C Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/g++.dg/cpp0x/initlist-new5.C Fri May 27 07:21:11 2022 *************** *** 0 **** --- 1,9 ---- + // PR c++/99643 + // { dg-do compile { target c++11 } } + + struct Foo {}; + Foo get_foo(); + + int main() { + new Foo[1]{get_foo()}; + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/g++.dg/cpp0x/initlist-new6.C gcc-9.5.0/gcc/testsuite/g++.dg/cpp0x/initlist-new6.C *** gcc-9.4.0/gcc/testsuite/g++.dg/cpp0x/initlist-new6.C Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/g++.dg/cpp0x/initlist-new6.C Fri May 27 07:21:11 2022 *************** *** 0 **** --- 1,39 ---- + // PR c++/105265 + // { dg-do run { target c++11 } } + + int c; + + class Block + { + public: + Block(int n) : data{new char[n]}, size{n} + { + ++c; + } + + ~Block() + { + --c; + delete[] data; + } + + private: + char* data; + int size; + }; + + struct Cargo + { + Block const& block; + }; + + int main() + { + { + Cargo* c = new Cargo{{4000}}; + delete c; + } + if (c != 0) + __builtin_abort (); + return 0; + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/g++.dg/cpp0x/initlist-nrv1.C gcc-9.5.0/gcc/testsuite/g++.dg/cpp0x/initlist-nrv1.C *** gcc-9.4.0/gcc/testsuite/g++.dg/cpp0x/initlist-nrv1.C Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/g++.dg/cpp0x/initlist-nrv1.C Fri May 27 07:21:11 2022 *************** *** 0 **** --- 1,34 ---- + // PR c++/101442 + // { dg-do run { target c++11 } } + + bool destroyed = false; + + struct A + { + A() {} + A(const A &) = delete; + A &operator=(const A &) = delete; + ~A() {destroyed = true;} + }; + + struct B + { + const A &a; + struct string { + string(const char*) { } + ~string() { } + } s; + }; + + B foo() + { + B ret{ A{}, "" }; + return ret; + } + + int main() + { + B b = foo(); + if (!destroyed) + __builtin_abort(); + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nsdmi10.C gcc-9.5.0/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nsdmi10.C *** gcc-9.4.0/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nsdmi10.C Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nsdmi10.C Fri May 27 07:21:11 2022 *************** *** 0 **** --- 1,12 ---- + // PR c++/95870 + // { dg-do compile { target c++11 } } + + template struct S { + S(); + int b = []() -> int { enum E {}; return 1; }(); + }; + struct C : S { + C(); + }; + template S::S() = default; + C::C() {} diff -Nrcpad gcc-9.4.0/gcc/testsuite/g++.dg/cpp0x/nsdmi-template21.C gcc-9.5.0/gcc/testsuite/g++.dg/cpp0x/nsdmi-template21.C *** gcc-9.4.0/gcc/testsuite/g++.dg/cpp0x/nsdmi-template21.C Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/g++.dg/cpp0x/nsdmi-template21.C Fri May 27 07:21:11 2022 *************** *** 0 **** --- 1,8 ---- + // PR c++/101532 + // { dg-do compile { target c++11 } } + + struct A { private: ~A(); }; + + template struct B { A a = A(); }; // { dg-error "private" } + + B b; // { dg-error "deleted" } diff -Nrcpad gcc-9.4.0/gcc/testsuite/g++.dg/cpp0x/nsdmi-template21a.C gcc-9.5.0/gcc/testsuite/g++.dg/cpp0x/nsdmi-template21a.C *** gcc-9.4.0/gcc/testsuite/g++.dg/cpp0x/nsdmi-template21a.C Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/g++.dg/cpp0x/nsdmi-template21a.C Fri May 27 07:21:11 2022 *************** *** 0 **** --- 1,10 ---- + // PR c++/104225 + // { dg-do compile { target c++11 } } + + struct A { private: ~A(); }; + + template struct B { A a = A(); }; // { dg-error "private" } + + int main() { + new B; // { dg-error "deleted" } + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/g++.dg/cpp0x/nullptr46.C gcc-9.5.0/gcc/testsuite/g++.dg/cpp0x/nullptr46.C *** gcc-9.4.0/gcc/testsuite/g++.dg/cpp0x/nullptr46.C Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/g++.dg/cpp0x/nullptr46.C Fri May 27 07:21:11 2022 *************** *** 0 **** --- 1,11 ---- + // PR c++/101443 + // { dg-do compile { target c++11 } } + // { dg-options "-O2" } + + decltype(nullptr) foo (); + + bool + bar () + { + return foo () > nullptr || foo () < nullptr; + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/g++.dg/cpp0x/pr102305.C gcc-9.5.0/gcc/testsuite/g++.dg/cpp0x/pr102305.C *** gcc-9.4.0/gcc/testsuite/g++.dg/cpp0x/pr102305.C Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/g++.dg/cpp0x/pr102305.C Fri May 27 07:21:11 2022 *************** *** 0 **** --- 1,39 ---- + // PR c++/102305 + // { dg-do compile { target c++11 } } + + namespace std + { + template + struct integral_constant + { + static constexpr _Tp value = __v; + typedef integral_constant<_Tp, __v> type; + }; + + template + constexpr _Tp integral_constant<_Tp, __v>::value; + + typedef integral_constant true_type; + typedef integral_constant false_type; + + template + using bool_constant = integral_constant; + + template + struct is_constructible + : public bool_constant<__is_constructible(_Tp, _Args...)> + { + }; + } + + template + struct A { + virtual ~A() = 0; + }; + + struct B { + virtual ~B() = 0; + }; + + static_assert(!std::is_constructible >::value, ""); + static_assert(!std::is_constructible::value, ""); diff -Nrcpad gcc-9.4.0/gcc/testsuite/g++.dg/cpp0x/pr105256.C gcc-9.5.0/gcc/testsuite/g++.dg/cpp0x/pr105256.C *** gcc-9.4.0/gcc/testsuite/g++.dg/cpp0x/pr105256.C Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/g++.dg/cpp0x/pr105256.C Fri May 27 07:21:11 2022 *************** *** 0 **** --- 1,18 ---- + // PR c++/105256 + // { dg-do compile { target c++11 } } + + int bar (int &); + + struct S { + struct T { + struct U { + int i = bar (i); + } u; + }; + }; + + void + foo (S::T *p) + { + *p = {}; + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/g++.dg/cpp1y/constexpr-104513.C gcc-9.5.0/gcc/testsuite/g++.dg/cpp1y/constexpr-104513.C *** gcc-9.4.0/gcc/testsuite/g++.dg/cpp1y/constexpr-104513.C Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/g++.dg/cpp1y/constexpr-104513.C Fri May 27 07:21:11 2022 *************** *** 0 **** --- 1,10 ---- + // PR c++/104513 + // { dg-do compile { target c++14 } } + + struct A { + int a1; + short a2, a3; + long a4; + constexpr A() : a1(42), a2(42), a3(42), a4(42) { return; } + }; + constexpr A a; diff -Nrcpad gcc-9.4.0/gcc/testsuite/g++.dg/cpp1y/lambda-generic-Wunused.C gcc-9.5.0/gcc/testsuite/g++.dg/cpp1y/lambda-generic-Wunused.C *** gcc-9.4.0/gcc/testsuite/g++.dg/cpp1y/lambda-generic-Wunused.C Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/g++.dg/cpp1y/lambda-generic-Wunused.C Fri May 27 07:21:11 2022 *************** *** 0 **** --- 1,18 ---- + // PR c++/96311 + // { dg-do compile { target c++14 } } + // { dg-additional-options -Wunused } + + auto foo() + { + constexpr int used = 0; + return + [](auto unused) + { + return used; + }; + } + + int main() + { + foo()(42); + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/g++.dg/cpp1y/lambda-generic-this4.C gcc-9.5.0/gcc/testsuite/g++.dg/cpp1y/lambda-generic-this4.C *** gcc-9.4.0/gcc/testsuite/g++.dg/cpp1y/lambda-generic-this4.C Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/g++.dg/cpp1y/lambda-generic-this4.C Fri May 27 07:21:11 2022 *************** *** 0 **** --- 1,7 ---- + // PR c++/101717 + // { dg-do compile { target c++14 } } + + struct x { + static void f() { } + void (*_)() = [] { [=](auto) { f(); }(0); }; + }; diff -Nrcpad gcc-9.4.0/gcc/testsuite/g++.dg/cpp1y/nsdmi-aggr13.C gcc-9.5.0/gcc/testsuite/g++.dg/cpp1y/nsdmi-aggr13.C *** gcc-9.4.0/gcc/testsuite/g++.dg/cpp1y/nsdmi-aggr13.C Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/g++.dg/cpp1y/nsdmi-aggr13.C Fri May 27 07:21:11 2022 *************** *** 0 **** --- 1,33 ---- + // PR c++/96673 + // { dg-do compile { target c++11 } } + + template + class A {}; + + template + class B; + + template + class C { + private: + + friend class B; + + explicit C(A&) {}; + }; + + + template + class B { + public: + B() = default; + //B() {}; // << This implementation of the constructor makes it work + + A a = {}; + C c = C{a}; + }; + + int main() { + auto b = B{}; + auto &c = b.c; + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/g++.dg/cpp1y/pr88872.C gcc-9.5.0/gcc/testsuite/g++.dg/cpp1y/pr88872.C *** gcc-9.4.0/gcc/testsuite/g++.dg/cpp1y/pr88872.C Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/g++.dg/cpp1y/pr88872.C Fri May 27 07:21:11 2022 *************** *** 0 **** --- 1,24 ---- + // PR c++/88872 + // { dg-do compile { target c++14 } } + + struct a { + template constexpr a(b) : c() {} + int c; + }; + void d(); + template constexpr a operator"" _n() { return d; } + struct e; + struct f { + e operator[](int); + }; + struct g { + void h(); + f i; + }; + template struct j { + void k() { [](auto) { constexpr auto l = 2_n; }(keywords); } + int keywords; + }; + using m = j; + class e : public m {}; + void g::h() { i[0].k(); } diff -Nrcpad gcc-9.4.0/gcc/testsuite/g++.dg/cpp1z/class-deduction85.C gcc-9.5.0/gcc/testsuite/g++.dg/cpp1z/class-deduction85.C *** gcc-9.4.0/gcc/testsuite/g++.dg/cpp1z/class-deduction85.C Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/g++.dg/cpp1z/class-deduction85.C Fri May 27 07:21:11 2022 *************** *** 0 **** --- 1,16 ---- + // PR c++/99885 + // { dg-do compile { target c++17 } } + + template + struct Foo {}; + + template + struct Bar { + constexpr auto foo() const -> Foo { + return {}; + } + }; + + constexpr int a = 1; + constexpr Bar bar; + Foo foo = bar.foo(); // <-- CTAD failure diff -Nrcpad gcc-9.4.0/gcc/testsuite/g++.dg/cpp1z/eval-order11.C gcc-9.5.0/gcc/testsuite/g++.dg/cpp1z/eval-order11.C *** gcc-9.4.0/gcc/testsuite/g++.dg/cpp1z/eval-order11.C Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/g++.dg/cpp1z/eval-order11.C Fri May 27 07:21:11 2022 *************** *** 0 **** --- 1,89 ---- + // PR c++/70796 + // { dg-do run { target c++11 } } + // { dg-options "-fstrong-eval-order" { target c++14_down } } + + struct A + { + int x = 0; + A & operator ++ () { ++x; return *this; } + }; + struct B + { + A first, second; + B (A x, A y) : first{x}, second{y} {} + }; + struct C + { + int first, second; + C (int x, int y) : first{x}, second{y} {} + }; + struct D + { + int d; + void foo (int x, D *y) + { + if (y != this + 1) + __builtin_abort (); + d = x; + } + }; + D d[2] = { { 1 }, { 2 } }; + + void + foo () + { + int i = 0; + C p{++i, ++i}; + if (p.first != 1 || p.second != 2) + __builtin_abort (); + } + + void + bar () + { + int i = 0; + C p{++i, ++i}; + if (p.first != 1 || p.second != 2) + __builtin_abort (); + int &j = i; + C q{++j, ++j}; + if (q.first != 3 || q.second != 4) + __builtin_abort (); + } + + void + baz () + { + int i = 0; + C p{(int &) ++i, (int &) ++i}; + if (p.first != 1 || p.second != 2) + __builtin_abort (); + } + + void + qux () + { + A i; + B p{++i, ++i}; + if (p.first.x != 1 || p.second.x != 2) + __builtin_abort (); + } + + void + corge () + { + D *p = &d[0]; + p->foo (3, ++p); + if (d[0].d != 3 || d[1].d != 2) + __builtin_abort (); + } + + int + main () + { + bar (); + baz (); + foo (); + qux (); + corge (); + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/g++.dg/cpp1z/inline-var9.C gcc-9.5.0/gcc/testsuite/g++.dg/cpp1z/inline-var9.C *** gcc-9.4.0/gcc/testsuite/g++.dg/cpp1z/inline-var9.C Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/g++.dg/cpp1z/inline-var9.C Fri May 27 07:21:11 2022 *************** *** 0 **** --- 1,40 ---- + // PR c++/99901 + // { dg-do compile { target c++11 } } + // { dg-final { scan-assembler-not "_ZN1A1aE" } } + // { dg-final { scan-assembler-not "_ZN2A21aE" } } + // { dg-final { scan-assembler-not "_ZN1CIiE1cE" } } + // { dg-final { scan-assembler "_ZN1B1bE" } } + // { dg-final { scan-assembler "_ZN2B21bE" } } + // { dg-final { scan-assembler "_ZN2B31bE" } } + + struct A { + static const int a = 5; + }; + + struct A2 { + static constexpr int a = 5; + }; + + struct B { + static const int b; + }; + constexpr int B::b = 5; + + struct B2 { + static const int b = 5; + }; + constexpr int B2::b; + + struct B3 { + static constexpr int b = 5; + }; + const int B3::b; + + template + struct C { + static constexpr int c = 5; + }; + template + constexpr int C::c; + + int i = C::c; diff -Nrcpad gcc-9.4.0/gcc/testsuite/g++.dg/cpp1z/nodiscard8.C gcc-9.5.0/gcc/testsuite/g++.dg/cpp1z/nodiscard8.C *** gcc-9.4.0/gcc/testsuite/g++.dg/cpp1z/nodiscard8.C Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/g++.dg/cpp1z/nodiscard8.C Fri May 27 07:21:11 2022 *************** *** 0 **** --- 1,15 ---- + // PR c++/100666 + // { dg-do compile { target c++11 } } + + [[nodiscard]] decltype(nullptr) bar (); + extern void foo (...); + template void qux (T); + + void + baz () + { + foo (bar ()); // { dg-bogus "ignoring return value of '\[^\n\r]*', declared with attribute nodiscard" } + bar (); // { dg-warning "ignoring return value of '\[^\n\r]*', declared with attribute nodiscard" } + auto x = bar (); // { dg-bogus "ignoring return value of '\[^\n\r]*', declared with attribute nodiscard" } + qux (bar ()); // { dg-bogus "ignoring return value of '\[^\n\r]*', declared with attribute nodiscard" } + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/g++.dg/cpp1z/nodiscard9.C gcc-9.5.0/gcc/testsuite/g++.dg/cpp1z/nodiscard9.C *** gcc-9.4.0/gcc/testsuite/g++.dg/cpp1z/nodiscard9.C Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/g++.dg/cpp1z/nodiscard9.C Fri May 27 07:21:11 2022 *************** *** 0 **** --- 1,22 ---- + // PR c++/100666 + // { dg-do compile { target c++11 } } + + struct S {}; + [[nodiscard]] S bar (); + struct U { S s; }; + [[nodiscard]] U corge (); + extern void foo (...); + template void qux (T); + + void + baz () + { + foo (bar ()); // { dg-bogus "ignoring return value of '\[^\n\r]*', declared with attribute nodiscard" } + bar (); // { dg-warning "ignoring return value of '\[^\n\r]*', declared with attribute nodiscard" } + auto x = bar (); // { dg-bogus "ignoring return value of '\[^\n\r]*', declared with attribute nodiscard" } + qux (bar ()); // { dg-bogus "ignoring return value of '\[^\n\r]*', declared with attribute nodiscard" } + foo (corge ()); // { dg-bogus "ignoring return value of '\[^\n\r]*', declared with attribute nodiscard" } + corge (); // { dg-warning "ignoring return value of '\[^\n\r]*', declared with attribute nodiscard" } + auto y = corge (); // { dg-bogus "ignoring return value of '\[^\n\r]*', declared with attribute nodiscard" } + qux (corge ()); // { dg-bogus "ignoring return value of '\[^\n\r]*', declared with attribute nodiscard" } + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/g++.dg/cpp1z/noexcept-type24.C gcc-9.5.0/gcc/testsuite/g++.dg/cpp1z/noexcept-type24.C *** gcc-9.4.0/gcc/testsuite/g++.dg/cpp1z/noexcept-type24.C Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/g++.dg/cpp1z/noexcept-type24.C Fri May 27 07:21:11 2022 *************** *** 0 **** --- 1,22 ---- + // PR c++/90664 + // { dg-do compile { target c++11 } } + + template struct OpM; + + template + struct OpM + {}; + + class Class { + public: + int address() noexcept { return 0; } + void address(int) noexcept {} + }; + + struct Sk { + template Sk(R (C::*p)()) { + typedef OpM OP; + } + }; + + Sk sk(static_cast(&Class::address)); diff -Nrcpad gcc-9.4.0/gcc/testsuite/g++.dg/cpp2a/constexpr-nonlit7.C gcc-9.5.0/gcc/testsuite/g++.dg/cpp2a/constexpr-nonlit7.C *** gcc-9.4.0/gcc/testsuite/g++.dg/cpp2a/constexpr-nonlit7.C Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/g++.dg/cpp2a/constexpr-nonlit7.C Fri May 27 07:21:11 2022 *************** *** 0 **** --- 1,6 ---- + // PR c++/104994 + // CWG2552 + // { dg-do compile { target c++14 } } + + constexpr bool foo () { extern thread_local int t; return true; } + static constexpr bool a = foo (); diff -Nrcpad gcc-9.4.0/gcc/testsuite/g++.dg/cpp2a/constexpr-virtual19.C gcc-9.5.0/gcc/testsuite/g++.dg/cpp2a/constexpr-virtual19.C *** gcc-9.4.0/gcc/testsuite/g++.dg/cpp2a/constexpr-virtual19.C Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/g++.dg/cpp2a/constexpr-virtual19.C Fri May 27 07:21:11 2022 *************** *** 0 **** --- 1,11 ---- + // PR c++/102786 + // { dg-do compile { target c++2a } } + + struct S { + virtual constexpr int foo () const { return 42; } + }; + + constexpr S s; + constexpr auto a = &S::foo; + constexpr auto b = (s.*a) (); + constexpr auto c = (s.*&S::foo) (); diff -Nrcpad gcc-9.4.0/gcc/testsuite/g++.dg/cpp2a/lambda-pack-init6.C gcc-9.5.0/gcc/testsuite/g++.dg/cpp2a/lambda-pack-init6.C *** gcc-9.4.0/gcc/testsuite/g++.dg/cpp2a/lambda-pack-init6.C Tue Jun 1 07:53:05 2021 --- gcc-9.5.0/gcc/testsuite/g++.dg/cpp2a/lambda-pack-init6.C Thu Jan 1 00:00:00 1970 *************** *** 1,27 **** - // PR c++/97938 - // { dg-do compile { target c++2a } } - - template - int sink(Args&&... args) { return 2; } - - auto fwd1(const auto&&... ts1) { - return - [...ts1 = ts1] { - return sink(ts1...); - }(); - } - - template - auto fwd2(const T1& t1) { - return - [] (auto&&... ts1) { - return - [...ts1 = ts1] { - return sink(ts1...); - }(); - }(); - } - - int main() { - return fwd1() + fwd2(1); - } --- 0 ---- diff -Nrcpad gcc-9.4.0/gcc/testsuite/g++.dg/debug/dwarf2/pr101378.C gcc-9.5.0/gcc/testsuite/g++.dg/debug/dwarf2/pr101378.C *** gcc-9.4.0/gcc/testsuite/g++.dg/debug/dwarf2/pr101378.C Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/g++.dg/debug/dwarf2/pr101378.C Fri May 27 07:21:11 2022 *************** *** 0 **** --- 1,13 ---- + // PR debug/101378 + // { dg-do compile { target c++11 } } + // { dg-options "-gdwarf-5 -dA" } + // { dg-final { scan-assembler-times "0\[^0-9x\\r\\n\]* DW_AT_data_member_location" 1 } } + // { dg-final { scan-assembler-times "1\[^0-9x\\r\\n\]* DW_AT_data_member_location" 1 } } + // { dg-final { scan-assembler-times "2\[^0-9x\\r\\n\]* DW_AT_data_member_location" 1 } } + // { dg-final { scan-assembler-not "-1\[^0-9x\\r\\n\]* DW_AT_data_member_location" } } + + struct E {}; + struct S + { + [[no_unique_address]] E e, f, g; + } s; diff -Nrcpad gcc-9.4.0/gcc/testsuite/g++.dg/ext/flexary39.C gcc-9.5.0/gcc/testsuite/g++.dg/ext/flexary39.C *** gcc-9.4.0/gcc/testsuite/g++.dg/ext/flexary39.C Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/g++.dg/ext/flexary39.C Fri May 27 07:21:11 2022 *************** *** 0 **** --- 1,65 ---- + // PR c++/88578 + // { dg-do run } + // { dg-options -Wno-pedantic } + + #define STR(s) #s + #define ASSERT(exp) \ + ((exp) ? (void)0 : (void)(__builtin_printf ("%s:%i: assertion %s failed\n", \ + __FILE__, __LINE__, STR(exp)), \ + __builtin_abort ())) + + typedef int int32_t __attribute__((mode (__SI__))); + + struct Ax { int32_t n, a[]; }; + struct AAx { int32_t i; Ax ax; }; + + int32_t i = 12345678; + + void + test () + { + { + // OK. Does not assign any elements to flexible array. + Ax s = { 0 }; + ASSERT (s.n == 0); + } + { + // OK only for statically allocated objects, otherwise error. + static Ax s = { 0, { } }; + ASSERT (s.n == 0); + } + { + static Ax s = { 1, { 2 } }; + ASSERT (s.n == 1 && s.a [0] == 2); + } + { + static Ax s = { 2, { 3, 4 } }; + ASSERT (s.n = 2 && s.a [0] == 3 && s.a [1] == 4); + } + { + static Ax s = { 123, i }; + ASSERT (s.n == 123 && s.a [0] == i); + } + { + static Ax s = { 456, { i } }; + ASSERT (s.n == 456 && s.a [0] == i); + } + { + int32_t j = i + 1, k = j + 1; + static Ax s = { 3, { i, j, k } }; + ASSERT (s.n == 3 && s.a [0] == i && s.a [1] == j && s.a [2] == k); + } + + { + // OK. Does not assign any elements to flexible array. + AAx s = { 1, { 2 } }; + ASSERT (s.i == 1 && s.ax.n == 2); + } + } + + int + main () + { + test (); + test (); + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/g++.dg/ext/flexary40.C gcc-9.5.0/gcc/testsuite/g++.dg/ext/flexary40.C *** gcc-9.4.0/gcc/testsuite/g++.dg/ext/flexary40.C Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/g++.dg/ext/flexary40.C Fri May 27 07:21:11 2022 *************** *** 0 **** --- 1,50 ---- + // PR c++/102295 + // { dg-do run } + // { dg-options "" } + + struct A { int a; int b[]; }; + struct B { B (); int k; }; + struct C { int l; B m[]; }; + + int x[4]; + A c = { 42, { ++x[0], ++x[1], ++x[2], ++x[3] } }; + A d = { 43, { 0, ++x[0], ++x[1], ++x[2], ++x[3] } }; + A e = { 44, { ++x[0], ++x[1], ++x[2], 17 } }; + A f = { 45 }; + C n = { 50, { B (), B () } }; + C o = { 51, {} }; + + int + main () + { + static A g = { 46, { ++x[0], ++x[1], ++x[2], ++x[3] } }; + static A h = { 47, { 0, ++x[0], ++x[1], ++x[2], ++x[3] } }; + static A i = { 48, { ++x[0], ++x[1], ++x[2], 18 } }; + static A j = { 49 }; + if (c.a != 42 || c.b[0] != 1 || c.b[1] != 1 || c.b[2] != 1 || c.b[3] != 1) + __builtin_abort (); + if (d.a != 43 || d.b[0] != 0 || d.b[1] != 2 || d.b[2] != 2 || d.b[3] != 2 || d.b[4] != 2) + __builtin_abort (); + if (e.a != 44 || e.b[0] != 3 || e.b[1] != 3 || e.b[2] != 3 || e.b[3] != 17) + __builtin_abort (); + if (f.a != 45) + __builtin_abort (); + if (g.a != 46 || g.b[0] != 4 || g.b[1] != 4 || g.b[2] != 4 || g.b[3] != 3) + __builtin_abort (); + if (h.a != 47 || h.b[0] != 0 || h.b[1] != 5 || h.b[2] != 5 || h.b[3] != 5 || h.b[4] != 4) + __builtin_abort (); + if (i.a != 48 || i.b[0] != 6 || i.b[1] != 6 || i.b[2] != 6 || i.b[3] != 18) + __builtin_abort (); + if (j.a != 49) + __builtin_abort (); + if (n.l != 50 || n.m[0].k != 42 || n.m[1].k != 42) + __builtin_abort (); + if (o.l != 51) + __builtin_abort (); + if (x[0] != 6 || x[1] != 6 || x[2] != 6 || x[3] != 4) + __builtin_abort (); + } + + B::B () : k (42) + { + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/g++.dg/ext/va-arg-pack-3.C gcc-9.5.0/gcc/testsuite/g++.dg/ext/va-arg-pack-3.C *** gcc-9.4.0/gcc/testsuite/g++.dg/ext/va-arg-pack-3.C Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/g++.dg/ext/va-arg-pack-3.C Fri May 27 07:21:11 2022 *************** *** 0 **** --- 1,18 ---- + // PR middle-end/100898 + + int a; + int bar (int, ...); + + static inline __attribute__((always_inline)) int + foo (...) + { + while (a) + return bar (0, __builtin_va_arg_pack ()); + return 0; + } + + void + baz (void) + { + foo (); + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/g++.dg/gomp/clause-3.C gcc-9.5.0/gcc/testsuite/g++.dg/gomp/clause-3.C *** gcc-9.4.0/gcc/testsuite/g++.dg/gomp/clause-3.C Tue Jun 1 07:53:05 2021 --- gcc-9.5.0/gcc/testsuite/g++.dg/gomp/clause-3.C Fri May 27 07:21:11 2022 *************** foo (int x) *** 56,62 **** ; #pragma omp p reduction (|:d) // { dg-error "user defined reduction not found for" } ; ! #pragma omp p reduction (&&:d) // { dg-error "user defined reduction not found for" } ; #pragma omp p copyin (d) // { dg-error "must be 'threadprivate'" } ; --- 56,62 ---- ; #pragma omp p reduction (|:d) // { dg-error "user defined reduction not found for" } ; ! #pragma omp p reduction (&:d) // { dg-error "user defined reduction not found for" } ; #pragma omp p copyin (d) // { dg-error "must be 'threadprivate'" } ; diff -Nrcpad gcc-9.4.0/gcc/testsuite/g++.dg/gomp/pr101516.C gcc-9.5.0/gcc/testsuite/g++.dg/gomp/pr101516.C *** gcc-9.4.0/gcc/testsuite/g++.dg/gomp/pr101516.C Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/g++.dg/gomp/pr101516.C Fri May 27 07:21:11 2022 *************** *** 0 **** --- 1,8 ---- + // PR c++/101516 + + void + foo (int (&v) []) + { + #pragma omp parallel reduction (+:v) // { dg-error "invalid use of array with unspecified bounds" } + ; + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/g++.dg/init/assign2.C gcc-9.5.0/gcc/testsuite/g++.dg/init/assign2.C *** gcc-9.4.0/gcc/testsuite/g++.dg/init/assign2.C Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/g++.dg/init/assign2.C Fri May 27 07:21:11 2022 *************** *** 0 **** --- 1,6 ---- + // PR c++/59950 + + struct Foo {}; + + int f(Foo *p); + int n = f(&(Foo() = Foo())); diff -Nrcpad gcc-9.4.0/gcc/testsuite/g++.dg/init/no-elide2.C gcc-9.5.0/gcc/testsuite/g++.dg/init/no-elide2.C *** gcc-9.4.0/gcc/testsuite/g++.dg/init/no-elide2.C Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/g++.dg/init/no-elide2.C Fri May 27 07:21:11 2022 *************** *** 0 **** --- 1,32 ---- + // PR c++/100838 + // { dg-do run } + // { dg-additional-options -fno-elide-constructors } + + extern "C" int puts (const char *); + + int c,d; + class MyString { + public: + MyString(const char* s = "") { + puts ("ctor"); + ++c; + } + ~MyString() { + puts ("dtor"); + ++d; + } + MyString(const MyString& s) { + puts ("copy ctor"); + ++c; + } + MyString& operator=(const MyString& s); + }; + + int main() { + { + MyString s1 = "Hello"; + puts ("main"); + } + if (c != d) + __builtin_abort(); + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/g++.dg/lookup/new3.C gcc-9.5.0/gcc/testsuite/g++.dg/lookup/new3.C *** gcc-9.4.0/gcc/testsuite/g++.dg/lookup/new3.C Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/g++.dg/lookup/new3.C Fri May 27 07:21:11 2022 *************** *** 0 **** --- 1,10 ---- + // PR c++/98249 + + #include + struct Incomplete; + template struct Holder { T t; }; + Holder *p; + void test() { + ::new (p) int; + new (p) int; + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/g++.dg/opt/nrv20.C gcc-9.5.0/gcc/testsuite/g++.dg/opt/nrv20.C *** gcc-9.4.0/gcc/testsuite/g++.dg/opt/nrv20.C Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/g++.dg/opt/nrv20.C Fri May 27 07:21:11 2022 *************** *** 0 **** --- 1,20 ---- + // PR c++/91217 + // { dg-do compile { target c++11 } } + // { dg-additional-options -fdump-tree-gimple } + // { dg-final { scan-tree-dump-not " = a" "gimple" } } + + struct A + { + int ar[42]; + }; + + template + A f() + { + return [] { A a; return a; }(); + } + + int main() + { + f(); + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/g++.dg/opt/pr104681.C gcc-9.5.0/gcc/testsuite/g++.dg/opt/pr104681.C *** gcc-9.4.0/gcc/testsuite/g++.dg/opt/pr104681.C Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/g++.dg/opt/pr104681.C Fri May 27 07:21:11 2022 *************** *** 0 **** --- 1,19 ---- + // PR target/104681 + // { dg-do compile } + // { dg-options "-O2" } + + void bar (); + struct A { + A (bool) : a(7.0L), b(0) {} + long double a; + long b; + }; + struct B { + void foo () { c = bar; } + A c; + }; + struct C { + void baz (); + B d; + }; + void C::baz () { d.foo (); } diff -Nrcpad gcc-9.4.0/gcc/testsuite/g++.dg/overload/builtin6.C gcc-9.5.0/gcc/testsuite/g++.dg/overload/builtin6.C *** gcc-9.4.0/gcc/testsuite/g++.dg/overload/builtin6.C Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/g++.dg/overload/builtin6.C Fri May 27 07:21:11 2022 *************** *** 0 **** --- 1,14 ---- + // PR c++/103455 + + struct A { }; + + struct B { + operator A*() const; + template operator T*() const; + }; + + typedef void (A::*F)(); + + void f(B b, F pmf) { + (b->*pmf)(); + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/g++.dg/spellcheck-pr104806.C gcc-9.5.0/gcc/testsuite/g++.dg/spellcheck-pr104806.C *** gcc-9.4.0/gcc/testsuite/g++.dg/spellcheck-pr104806.C Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/g++.dg/spellcheck-pr104806.C Fri May 27 07:21:11 2022 *************** *** 0 **** --- 1,5 ---- + // PR c++/104806 + + struct S {}; + int main() { S s; s.__d; } // { dg-bogus "'struct S' has no member named '__d'; did you mean '__\[a-z]* '" } + // { dg-error "'struct S' has no member named '__d'" "" { target *-*-* } .-1 } diff -Nrcpad gcc-9.4.0/gcc/testsuite/g++.dg/template/access39.C gcc-9.5.0/gcc/testsuite/g++.dg/template/access39.C *** gcc-9.4.0/gcc/testsuite/g++.dg/template/access39.C Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/g++.dg/template/access39.C Fri May 27 07:21:11 2022 *************** *** 0 **** --- 1,17 ---- + // PR c++/101078 + + struct A { + static void f(); + }; + + template + struct B : private A { + struct C { + void g() { f(); } + void g2() { B::f(); } + }; + }; + + int main() { + B::C().g(); + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/g++.dg/template/conv19.C gcc-9.5.0/gcc/testsuite/g++.dg/template/conv19.C *** gcc-9.4.0/gcc/testsuite/g++.dg/template/conv19.C Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/g++.dg/template/conv19.C Fri May 27 07:21:11 2022 *************** *** 0 **** --- 1,34 ---- + // PR c++/101698 + // { dg-do compile { target c++11 } } + + class Base { + public: + template + operator const T&() const = delete; + + virtual operator const int&() const { + static int res; + return res; + } + }; + + template + class Derive : public Base { + public: + operator const T&() const override { + using Y = int; + //static_assert(__is_same_as(T,Y), ""); + + static int res; + + res = Base::operator const Y&(); // OK + res = Base::operator const T&(); // { dg-bogus "deleted" } + return res; + } + }; + + int main() { + Derive a; + const int& b = a; + (void)b; + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/g++.dg/template/ref11.C gcc-9.5.0/gcc/testsuite/g++.dg/template/ref11.C *** gcc-9.4.0/gcc/testsuite/g++.dg/template/ref11.C Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/g++.dg/template/ref11.C Fri May 27 07:21:11 2022 *************** *** 0 **** --- 1,9 ---- + // PR c++/83476 + + int n; + template struct A {}; + template void f(A); + int main() { + A a; + f(a); + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/g++.dg/torture/pr103361.C gcc-9.5.0/gcc/testsuite/g++.dg/torture/pr103361.C *** gcc-9.4.0/gcc/testsuite/g++.dg/torture/pr103361.C Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/g++.dg/torture/pr103361.C Fri May 27 07:21:11 2022 *************** *** 0 **** --- 1,18 ---- + /* { dg-do compile } */ + /* { dg-additional-options "-floop-unroll-and-jam" } */ + + char a, b; + extern unsigned short c[]; + extern bool d[]; + const unsigned short &e(const unsigned short &f, const unsigned short &g) { + if (g < f) + return g; + return f; + } + void k() { + for (int h = 0; b; h += 3) + for (unsigned long i = 0; i < 11104842004558084287ULL; + i += -11104842004558084300ULL) + for (bool j(e(6, e(6, c[h + i]))); j < (bool)a; j = 7) + d[7] = 0; + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/g++.dg/torture/pr105189.C gcc-9.5.0/gcc/testsuite/g++.dg/torture/pr105189.C *** gcc-9.4.0/gcc/testsuite/g++.dg/torture/pr105189.C Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/g++.dg/torture/pr105189.C Fri May 27 07:21:11 2022 *************** *** 0 **** --- 1,19 ---- + // PR tree-optimization/105189 + // { dg-do run } + + int + foo () + { + return -1; + } + + int + main () + { + int c = foo () >= 0U && 1; + if (c != 1) + __builtin_abort (); + int d = foo () >= 3U && 1; + if (d != 1) + __builtin_abort (); + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/g++.dg/ubsan/pr101210.C gcc-9.5.0/gcc/testsuite/g++.dg/ubsan/pr101210.C *** gcc-9.4.0/gcc/testsuite/g++.dg/ubsan/pr101210.C Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/g++.dg/ubsan/pr101210.C Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,13 ---- + // PR c++/101210 + // { dg-do run } + // { dg-options "-fsanitize=null,alignment -fno-sanitize-recover=null,alignment" } + + int v[2]; + int + main () + { + int x; + int &y = x; + v[0] = reinterpret_cast<__INTPTR_TYPE__>(&y) == 0; + v[1] = reinterpret_cast<__INTPTR_TYPE__>(&y) == 1; + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/g++.dg/ubsan/pr105093.C gcc-9.5.0/gcc/testsuite/g++.dg/ubsan/pr105093.C *** gcc-9.4.0/gcc/testsuite/g++.dg/ubsan/pr105093.C Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/g++.dg/ubsan/pr105093.C Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,12 ---- + // PR sanitizer/105093 + // { dg-do compile } + // { dg-options "-O2 -fsanitize=undefined -Wno-volatile" } + + struct X { X (); ~X (); }; + + volatile X + foo () + { + X x; + return x; + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/g++.target/i386/pr102295.C gcc-9.5.0/gcc/testsuite/g++.target/i386/pr102295.C *** gcc-9.4.0/gcc/testsuite/g++.target/i386/pr102295.C Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/g++.target/i386/pr102295.C Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,12 ---- + // PR c++/102295 + // { dg-do compile { target *-*-linux* } } + // { dg-options "-Wno-pedantic" } + + struct S { + int a; + int b[]; + } S; + + struct S s = { 1, { 2, 3 } }; + + /* { dg-final { scan-assembler ".size\[\t \]*s, 12" } } */ diff -Nrcpad gcc-9.4.0/gcc/testsuite/g++.target/i386/pr102548.C gcc-9.5.0/gcc/testsuite/g++.target/i386/pr102548.C *** gcc-9.4.0/gcc/testsuite/g++.target/i386/pr102548.C Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/g++.target/i386/pr102548.C Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,12 ---- + // PR c++/102548 + // { dg-do compile { target { c++14 && ia32 } } } + + typedef decltype(sizeof(0)) size_t; + struct tm; + extern "C" size_t __attribute__((__cdecl__)) strftime (char *, size_t, const char *, const struct tm *); + + auto + foo (void) + { + return strftime; + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/g++.target/i386/vec-tmpl1.C gcc-9.5.0/gcc/testsuite/g++.target/i386/vec-tmpl1.C *** gcc-9.4.0/gcc/testsuite/g++.target/i386/vec-tmpl1.C Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/g++.target/i386/vec-tmpl1.C Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,17 ---- + // PR c++/65211 + // { dg-additional-options "-Wno-psabi" } + // { dg-final { scan-assembler-not "movdqa" } } + + typedef unsigned v4ui __attribute__ ((vector_size(16), aligned (16))); + + template + static v4ui t1(unsigned *dest_data) + { + typedef unsigned v4ui_1 __attribute__ ((vector_size (16), aligned (4))); + return ((const v4ui_1*)dest_data)[0]; + } + + v4ui f(unsigned int *array) + { + return t1<1>(array+7); + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.c-torture/compile/pr101562.c gcc-9.5.0/gcc/testsuite/gcc.c-torture/compile/pr101562.c *** gcc-9.4.0/gcc/testsuite/gcc.c-torture/compile/pr101562.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gcc.c-torture/compile/pr101562.c Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,21 ---- + /* PR rtl-optimization/101562 */ + + struct S { char c; }; + void baz (struct S a, struct S b); + + void + foo (void) + { + struct S x[1]; + *(short *)&x[0] = 256; + baz (x[0], x[1]); + } + + void + bar (void) + { + struct S x[1]; + x[0].c = 0; + x[1].c = 1; + baz (x[0], x[1]); + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.c-torture/execute/bitfld-10.c gcc-9.5.0/gcc/testsuite/gcc.c-torture/execute/bitfld-10.c *** gcc-9.4.0/gcc/testsuite/gcc.c-torture/execute/bitfld-10.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gcc.c-torture/execute/bitfld-10.c Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,24 ---- + /* PR tree-optimization/102622 */ + /* Wrong code introduced due to phi-opt + introducing undefined signed interger overflow + with one bit signed integer negation. */ + + struct f{signed t:1;}; + int g(struct f *a, int t) __attribute__((noipa)); + int g(struct f *a, int t) + { + if (t) + a->t = -1; + else + a->t = 0; + int t1 = a->t; + if (t1) return 1; + return t1; + } + + int main(void) + { + struct f a; + if (!g(&a, 1)) __builtin_abort(); + return 0; + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.c-torture/execute/pr103052.c gcc-9.5.0/gcc/testsuite/gcc.c-torture/execute/pr103052.c *** gcc-9.4.0/gcc/testsuite/gcc.c-torture/execute/pr103052.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gcc.c-torture/execute/pr103052.c Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,35 ---- + static void js_error(void); + static int top; + static void js_throw(void) + { + __builtin_exit(0); + } + + // LOCATION A -- if js_pop is here, the bug is present + static void js_pop(void) + { + if (++top > 100) + js_error(); + } + + static void jsC_error(const char *v) + { + if (v[0] == 0) + js_error(); + js_throw(); + } + static void checkfutureword(const char *exp) + { + if (!__builtin_strcmp(exp, "const")) + jsC_error("boom"); + } + static void js_error(void) { + checkfutureword("foo"); + checkfutureword("bar"); + js_pop(); + } + int main(void) + { + checkfutureword("const"); + __builtin_abort (); + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.dg/asan/pr104449.c gcc-9.5.0/gcc/testsuite/gcc.dg/asan/pr104449.c *** gcc-9.4.0/gcc/testsuite/gcc.dg/asan/pr104449.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gcc.dg/asan/pr104449.c Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,12 ---- + /* PR sanitizer/104449 */ + /* { dg-do compile } */ + /* { dg-options "-fexceptions -fsanitize=address -fstack-check=generic" } */ + + void bar (int *); + + void + foo (void) + { + int a[16]; + bar (a); + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.dg/asan/pr105214.c gcc-9.5.0/gcc/testsuite/gcc.dg/asan/pr105214.c *** gcc-9.4.0/gcc/testsuite/gcc.dg/asan/pr105214.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gcc.dg/asan/pr105214.c Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,16 ---- + /* PR target/105214 */ + /* { dg-do compile } */ + /* { dg-skip-if "" { *-*-* } { "*" } { "-O2" } } */ + /* { dg-options "-Ofast -fnon-call-exceptions -fexceptions -fstack-check=generic -fsanitize=address -fno-finite-math-only -fsignaling-nans -fno-associative-math" } */ + + float f; + void bar (int *); + + void + foo (void) + { + int a[1600], b[1]; + f += __builtin_log1pf (f); + bar (a); + bar (b); + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.dg/asan/pr105396.c gcc-9.5.0/gcc/testsuite/gcc.dg/asan/pr105396.c *** gcc-9.4.0/gcc/testsuite/gcc.dg/asan/pr105396.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gcc.dg/asan/pr105396.c Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,19 ---- + /* PR sanitizer/105396 */ + /* { dg-do run } */ + /* { dg-skip-if "" { *-*-* } { "*" } { "-O0" } } */ + /* { dg-shouldfail "asan" } */ + + int + main () + { + int a; + int *b[1]; + int c[10]; + int d[1][1]; + for (a = 0; a < 1; a++) + d[1][a] = 0; + return 0; + } + + /* { dg-output "ERROR: AddressSanitizer: stack-buffer-overflow on address.*(\n|\r\n|\r)" } */ + /* { dg-output "WRITE of size.*" } */ diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.dg/dfp/pr104510.c gcc-9.5.0/gcc/testsuite/gcc.dg/dfp/pr104510.c *** gcc-9.4.0/gcc/testsuite/gcc.dg/dfp/pr104510.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gcc.dg/dfp/pr104510.c Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,12 ---- + /* PR c/104510 */ + /* { dg-do compile } */ + /* { dg-options "" } */ + + float f; + _Decimal64 d; + + int + foo (void) + { + return d > (_Decimal32) (_Decimal64) f; + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.dg/dfp/pr104557.c gcc-9.5.0/gcc/testsuite/gcc.dg/dfp/pr104557.c *** gcc-9.4.0/gcc/testsuite/gcc.dg/dfp/pr104557.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gcc.dg/dfp/pr104557.c Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,22 ---- + /* PR debug/104557 */ + /* { dg-do compile } */ + /* { dg-options "-O -g -Wno-psabi" } */ + + typedef int __attribute__((__vector_size__ (32))) U; + typedef double __attribute__((__vector_size__ (32))) F; + typedef _Decimal64 __attribute__((__vector_size__ (32))) D; + + F + bar (void) + { + F f = __builtin_convertvector ((D) (-10.d < (D) ((D) (U) { 0, 0, 0, 0, 0, 0, 0, -0xe0 } + >= (D) { 80000000 })), F); + return f; + } + + F + foo () + { + F x = bar (); + return x; + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.dg/gomp/clause-1.c gcc-9.5.0/gcc/testsuite/gcc.dg/gomp/clause-1.c *** gcc-9.4.0/gcc/testsuite/gcc.dg/gomp/clause-1.c Tue Jun 1 07:53:05 2021 --- gcc-9.5.0/gcc/testsuite/gcc.dg/gomp/clause-1.c Fri May 27 07:21:12 2022 *************** foo (int x) *** 56,62 **** ; #pragma omp p reduction (|:d) /* { dg-error "has invalid type for" } */ ; ! #pragma omp p reduction (&&:d) /* { dg-error "has invalid type for" } */ ; #pragma omp p copyin (d) /* { dg-error "must be 'threadprivate'" } */ ; --- 56,62 ---- ; #pragma omp p reduction (|:d) /* { dg-error "has invalid type for" } */ ; ! #pragma omp p reduction (&:d) /* { dg-error "has invalid type for" } */ ; #pragma omp p copyin (d) /* { dg-error "must be 'threadprivate'" } */ ; diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.dg/gomp/pr100508.c gcc-9.5.0/gcc/testsuite/gcc.dg/gomp/pr100508.c *** gcc-9.4.0/gcc/testsuite/gcc.dg/gomp/pr100508.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gcc.dg/gomp/pr100508.c Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,14 ---- + /* PR middle-end/100508 */ + /* { dg-do compile } */ + /* { dg-options "-O2 -g -fopenmp-simd" } */ + + typedef int __attribute__((__vector_size__(32))) V; + V j; + + #pragma omp declare simd + int + foo (void) + { + V m = j; + return 0; + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.dg/guality/pr101905.c gcc-9.5.0/gcc/testsuite/gcc.dg/guality/pr101905.c *** gcc-9.4.0/gcc/testsuite/gcc.dg/guality/pr101905.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gcc.dg/guality/pr101905.c Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,15 ---- + /* { dg-do run { target { { i?86-*-* x86_64-*-* } && lp64 } } } */ + /* { dg-options "-g -ffixed-r15" } */ + /* { dg-skip-if "" { *-*-* } { "*" } { "-O0" } } */ + + register unsigned long long regVar asm ("r15"); + + int + main() + { + regVar = 0xdeadbeefcafebabeULL; + asm ("nop" : "+r" (regVar)); + asm volatile ("nop"); /* { dg-final { gdb-test . "regVar" "0xdeadbeefcafebabeULL" } } */ + asm volatile ("nop" : : "r" (regVar)); + return 0; + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.dg/guality/pr49888.c gcc-9.5.0/gcc/testsuite/gcc.dg/guality/pr49888.c *** gcc-9.4.0/gcc/testsuite/gcc.dg/guality/pr49888.c Tue Jun 1 07:53:05 2021 --- gcc-9.5.0/gcc/testsuite/gcc.dg/guality/pr49888.c Fri May 27 07:21:12 2022 *************** *** 4,10 **** static int v __attribute__((used)); ! static void __attribute__((noinline, noclone)) f (int *p) { int c = *p; --- 4,10 ---- static int v __attribute__((used)); ! static void __attribute__((noipa)) f (int *p) { int c = *p; diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.dg/lto/pr101868_0.c gcc-9.5.0/gcc/testsuite/gcc.dg/lto/pr101868_0.c *** gcc-9.4.0/gcc/testsuite/gcc.dg/lto/pr101868_0.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gcc.dg/lto/pr101868_0.c Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,33 ---- + /* { dg-lto-do run } */ + /* { dg-lto-options { "-O2 -fno-strict-aliasing -flto" } } */ + + typedef unsigned long VALUE; + + __attribute__ ((cold)) + void rb_check_type(VALUE, int); + + static VALUE + repro(VALUE dummy, VALUE hash) + { + if (hash == 0) { + rb_check_type(hash, 1); + } + else if (*(long *)hash) { + rb_check_type(hash, 1); + } + + + return *(long *)hash; + } + + static VALUE (*that)(VALUE dummy, VALUE hash) = repro; + + int + main(int argc, char **argv) + { + argc--; + that(0, argc); + + rb_check_type(argc, argc); + + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.dg/lto/pr101868_1.c gcc-9.5.0/gcc/testsuite/gcc.dg/lto/pr101868_1.c *** gcc-9.4.0/gcc/testsuite/gcc.dg/lto/pr101868_1.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gcc.dg/lto/pr101868_1.c Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,23 ---- + typedef unsigned long VALUE; + + + __attribute__ ((noreturn)) void rexc_raise(VALUE mesg); + + VALUE rb_donothing(VALUE klass); + + static void + funexpected_type(VALUE x, int xt, int t) + { + rexc_raise(rb_donothing(0)); + } + + __attribute__ ((cold)) + void + rb_check_type(VALUE x, int t) + { + int xt; + + if (x == 0) { + funexpected_type(x, xt, t); + } + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.dg/lto/pr101868_2.c gcc-9.5.0/gcc/testsuite/gcc.dg/lto/pr101868_2.c *** gcc-9.4.0/gcc/testsuite/gcc.dg/lto/pr101868_2.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gcc.dg/lto/pr101868_2.c Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,11 ---- + typedef unsigned long VALUE; + + static void thing(void) {} + static void (*ptr)(void) = &thing; + + VALUE + rb_donothing(VALUE klass) + { + ptr(); + return 0; + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.dg/lto/pr101868_3.c gcc-9.5.0/gcc/testsuite/gcc.dg/lto/pr101868_3.c *** gcc-9.4.0/gcc/testsuite/gcc.dg/lto/pr101868_3.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gcc.dg/lto/pr101868_3.c Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,8 ---- + typedef unsigned long VALUE; + + __attribute__((noreturn)) + void + rexc_raise(VALUE mesg) + { + __builtin_exit(0); + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.dg/pr100509.c gcc-9.5.0/gcc/testsuite/gcc.dg/pr100509.c *** gcc-9.4.0/gcc/testsuite/gcc.dg/pr100509.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gcc.dg/pr100509.c Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,9 ---- + /* { dg-do compile } */ + /* { dg-options "-O" } */ + + struct X { + int a; + }; + const int a = 0; + static struct X A __attribute__((alias("a"))); + void foo() { struct X b = A; } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.dg/pr101062.c gcc-9.5.0/gcc/testsuite/gcc.dg/pr101062.c *** gcc-9.4.0/gcc/testsuite/gcc.dg/pr101062.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gcc.dg/pr101062.c Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,29 ---- + /* PR middle-end/101062 */ + /* { dg-do run } */ + /* { dg-options "-O2 -fno-toplevel-reorder -frename-registers" } */ + + union U { signed b : 5; }; + int c; + volatile union U d[7] = { { 8 } }; + short e = 1; + + __attribute__((noipa)) void + foo () + { + d[6].b = 0; + d[6].b = 0; + d[6].b = 0; + d[6].b = 0; + d[6].b = 0; + e = 0; + c = 0; + } + + int + main () + { + foo (); + if (e != 0) + __builtin_abort (); + return 0; + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.dg/pr101171.c gcc-9.5.0/gcc/testsuite/gcc.dg/pr101171.c *** gcc-9.4.0/gcc/testsuite/gcc.dg/pr101171.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gcc.dg/pr101171.c Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,13 ---- + /* PR c/101171 */ + /* { dg-do compile } */ + /* { dg-options "" } */ + + extern void foo (void); + int x = 0x1234; + + void + bar (void) + { + if (x != (sizeof ((enum T) 0x1234))) /* { dg-error "conversion to incomplete type" } */ + foo (); + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.dg/pr101266.c gcc-9.5.0/gcc/testsuite/gcc.dg/pr101266.c *** gcc-9.4.0/gcc/testsuite/gcc.dg/pr101266.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gcc.dg/pr101266.c Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,8 ---- + /* PR debug/101266 */ + /* { dg-do compile } */ + /* { dg-options "-g -O2" } */ + + void + foo (int (*p)[(int){1}]) + { + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.dg/pr101384.c gcc-9.5.0/gcc/testsuite/gcc.dg/pr101384.c *** gcc-9.4.0/gcc/testsuite/gcc.dg/pr101384.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gcc.dg/pr101384.c Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,39 ---- + /* PR target/101384 */ + /* { dg-do run } */ + /* { dg-options "-O2 -Wno-psabi -w" } */ + + typedef unsigned char __attribute__((__vector_size__ (16))) U; + typedef unsigned short __attribute__((__vector_size__ (8 * sizeof (short)))) V; + + U u; + V v; + + __attribute__((noipa)) U + foo (void) + { + U y = (U) { 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, + 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff } + u; + return y; + } + + __attribute__((noipa)) V + bar (void) + { + V y = (V) { 0x8000, 0xffff, 0x8000, 0xffff, + 0x8000, 0xffff, 0x8000, 0xffff } + v; + return y; + } + + int + main () + { + U x = foo (); + for (unsigned i = 0; i < 16; i++) + if (x[i] != ((i & 3) ? 0xff : 0x80)) + __builtin_abort (); + V y = bar (); + for (unsigned i = 0; i < 8; i++) + if (y[i] != ((i & 1) ? 0xffff : 0x8000)) + __builtin_abort (); + return 0; + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.dg/pr102140.c gcc-9.5.0/gcc/testsuite/gcc.dg/pr102140.c *** gcc-9.4.0/gcc/testsuite/gcc.dg/pr102140.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gcc.dg/pr102140.c Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,23 ---- + /* PR target/102140 */ + /* { dg-do compile { target int128 } } */ + /* { dg-options "-Og -fipa-cp -fno-tree-ccp -fno-tree-ter -Wno-psabi" } */ + + typedef int __attribute__((__vector_size__ (64))) U; + typedef __int128 __attribute__((__vector_size__ (64))) V; + + int a, b; + + static void + bar (char c, V v) + { + v *= c; + U u = a + (U) v; + (union { U b; }) { u }; + b = 0; + } + + void + foo (void) + { + bar (1, (V){((__int128) 9223372036854775808ULL) << 64}); + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.dg/pr102224.c gcc-9.5.0/gcc/testsuite/gcc.dg/pr102224.c *** gcc-9.4.0/gcc/testsuite/gcc.dg/pr102224.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gcc.dg/pr102224.c Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,49 ---- + /* PR target/102224 */ + /* { dg-do run } */ + /* { dg-options "-O2" } */ + + __attribute__((noipa)) float + foo (float x) + { + return x * __builtin_copysignf (1.0f, x); + } + + __attribute__((noipa)) float + bar (float x, float y) + { + return x * __builtin_copysignf (1.0f, y); + } + + __attribute__((noipa)) float + baz (float z, float x) + { + return x * __builtin_copysignf (1.0f, x); + } + + __attribute__((noipa)) float + qux (float z, float x, float y) + { + return x * __builtin_copysignf (1.0f, y); + } + + int + main () + { + if (foo (1.0f) != 1.0f + || foo (-4.0f) != 4.0f) + __builtin_abort (); + if (bar (1.25f, 7.25f) != 1.25f + || bar (1.75f, -3.25f) != -1.75f + || bar (-2.25f, 7.5f) != -2.25f + || bar (-3.0f, -4.0f) != 3.0f) + __builtin_abort (); + if (baz (5.5f, 1.0f) != 1.0f + || baz (4.25f, -4.0f) != 4.0f) + __builtin_abort (); + if (qux (1.0f, 1.25f, 7.25f) != 1.25f + || qux (2.0f, 1.75f, -3.25f) != -1.75f + || qux (3.0f, -2.25f, 7.5f) != -2.25f + || qux (4.0f, -3.0f, -4.0f) != 3.0f) + __builtin_abort (); + return 0; + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.dg/pr102478.c gcc-9.5.0/gcc/testsuite/gcc.dg/pr102478.c *** gcc-9.4.0/gcc/testsuite/gcc.dg/pr102478.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gcc.dg/pr102478.c Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,29 ---- + /* PR rtl-optimization/102478 */ + /* { dg-do compile } */ + /* { dg-options "-O2 -fno-if-conversion -Wno-div-by-zero" } */ + + unsigned a, b, c; + + void + foo (void) + { + c |= __builtin_expect (65535 / a, 0) && 0 / 0; + b = 0; + } + + void + bar (void) + { + if (a <= 65535) + __builtin_trap (); + b = 0; + } + + void + baz (void) + { + if (a > 65535) + b = 0; + else + __builtin_trap (); + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.dg/pr102798.c gcc-9.5.0/gcc/testsuite/gcc.dg/pr102798.c *** gcc-9.4.0/gcc/testsuite/gcc.dg/pr102798.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gcc.dg/pr102798.c Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,41 ---- + /* { dg-do run } */ + /* { dg-options "-O3 -fno-tree-pta" } */ + + typedef __SIZE_TYPE__ size_t; + + __attribute__((__noipa__)) + void BUF_reverse (unsigned char *out, const unsigned char *in, size_t size) + { + size_t i; + if (in) + { + out += size - 1; + for (i = 0; i < size; i++) + *out++ = *in++; + } + else + { + unsigned char *q; + char c; + q = out + size - 1; + for (i = 0; i < size ; i++) + { + *out++ = 1; + } + } + } + + int + main (void) + { + unsigned char buf[40]; + unsigned char buf1[40]; + for (unsigned i = 0; i < sizeof (buf); i++) + buf[i] = i; + BUF_reverse (buf, 0, sizeof (buf)); + for (unsigned i = 0; i < sizeof (buf); i++) + if (buf[i] != 1) + __builtin_abort (); + + return 0; + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.dg/pr103248.c gcc-9.5.0/gcc/testsuite/gcc.dg/pr103248.c *** gcc-9.4.0/gcc/testsuite/gcc.dg/pr103248.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gcc.dg/pr103248.c Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,8 ---- + /* { dg-do compile } */ + /* { dg-require-effective-target fixed_point } */ + /* { dg-options "-fnon-call-exceptions" } */ + + _Accum sa; + int c; + + void div_csa() { c /= sa; } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.dg/pr103837.c gcc-9.5.0/gcc/testsuite/gcc.dg/pr103837.c *** gcc-9.4.0/gcc/testsuite/gcc.dg/pr103837.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gcc.dg/pr103837.c Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,19 ---- + /* PR rtl-optimization/103837 */ + /* { dg-do compile } */ + /* { dg-options "-Og -fcompare-debug -fmove-loop-invariants -fnon-call-exceptions -fexceptions -fdelete-dead-exceptions -fno-tree-dce -w" } */ + + unsigned long int + foo (int x) + { + double a; + int b; + unsigned long int ret = a; + + for (;;) + { + b = !!((int) a); + a = x; + } + + return ret; + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.dg/pr103860.c gcc-9.5.0/gcc/testsuite/gcc.dg/pr103860.c *** gcc-9.4.0/gcc/testsuite/gcc.dg/pr103860.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gcc.dg/pr103860.c Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,31 ---- + /* PR rtl-optimization/103860 */ + /* { dg-do run } */ + /* { dg-options "-O3" } */ + /* { dg-additional-options "-fPIC" { target fpic } } */ + + static int d, *e; + int f; + + __attribute__((noinline)) signed char + foo (signed char b, signed char c) + { + return b + c; + } + + int + main () + { + signed char l; + for (l = -1; l; l = foo (l, 1)) + { + while (d < 0) + ; + if (d > 0) + { + f = 0; + *e = 0; + } + } + d = 0; + return 0; + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.dg/pr104675-1.c gcc-9.5.0/gcc/testsuite/gcc.dg/pr104675-1.c *** gcc-9.4.0/gcc/testsuite/gcc.dg/pr104675-1.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gcc.dg/pr104675-1.c Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,29 ---- + /* PR tree-optimization/104675 */ + /* { dg-do compile } */ + /* { dg-options "-O2" } */ + + _Complex int + foo (_Complex int a) + { + return (-1 + -1i) - a; + } + + _Complex int + bar (_Complex int a) + { + return -a - (1 + 1i); + } + + _Complex int + baz (_Complex int a) + { + _Complex int b = -1 + -1i; + return b - a; + } + + _Complex int + qux (_Complex int a) + { + _Complex int b = 1 + 1i; + return -a - b; + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.dg/pr104675-2.c gcc-9.5.0/gcc/testsuite/gcc.dg/pr104675-2.c *** gcc-9.4.0/gcc/testsuite/gcc.dg/pr104675-2.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gcc.dg/pr104675-2.c Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,18 ---- + /* PR tree-optimization/104675 */ + /* { dg-do compile } */ + /* { dg-options "-O2" } */ + + void baz (int i); + + void + bar (_Complex int c, short s) + { + c -= s; + baz (__real__ c + __imag__ c); + } + + void + foo (void) + { + bar (-1 - 1i, 0); + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.dg/pr104675-3.c gcc-9.5.0/gcc/testsuite/gcc.dg/pr104675-3.c *** gcc-9.4.0/gcc/testsuite/gcc.dg/pr104675-3.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gcc.dg/pr104675-3.c Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,29 ---- + /* PR tree-optimization/104675 */ + /* { dg-do compile } */ + /* { dg-options "-O2" } */ + + _Complex unsigned int + foo (_Complex unsigned int x) + { + return (x / 2) * 2; + } + + _Complex unsigned int + bar (_Complex unsigned int x) + { + return (x * 2) / 2; + } + + _Complex unsigned int + baz (_Complex unsigned int x) + { + _Complex unsigned int y = x / 2; + return y * 2; + } + + _Complex unsigned int + qux (_Complex unsigned int x) + { + _Complex unsigned int y = x * 2; + return y / 2; + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.dg/pr104786.c gcc-9.5.0/gcc/testsuite/gcc.dg/pr104786.c *** gcc-9.4.0/gcc/testsuite/gcc.dg/pr104786.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gcc.dg/pr104786.c Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,8 ---- + /* { dg-do compile } */ + /* { dg-options "-std=gnu90" } */ + + void h(void *di, int num) + { + char (*t)[num] = di; + __asm__ ("" : "=X"( *t)); + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.dg/pr105211.c gcc-9.5.0/gcc/testsuite/gcc.dg/pr105211.c *** gcc-9.4.0/gcc/testsuite/gcc.dg/pr105211.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gcc.dg/pr105211.c Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,11 ---- + /* PR rtl-optimization/105211 */ + /* { dg-do compile } */ + /* { dg-options "-Os -ffast-math" } */ + /* { dg-add-options float32 } */ + /* { dg-require-effective-target float32 } */ + + short + foo (_Float32 f) + { + return __builtin_roundf (f); + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.dg/pr105257.c gcc-9.5.0/gcc/testsuite/gcc.dg/pr105257.c *** gcc-9.4.0/gcc/testsuite/gcc.dg/pr105257.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gcc.dg/pr105257.c Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,16 ---- + /* PR target/105257 */ + /* { dg-do compile } */ + /* { dg-options "-O2" } */ + /* { dg-additional-options "-fpic" { target fpic } } */ + + extern int sigsetjmp (void **, int); + void *buf[32]; + void (*fn) (void); + + const char * + bar (void) + { + sigsetjmp (buf, 0); + fn (); + return ""; + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.dg/pr78213.c gcc-9.5.0/gcc/testsuite/gcc.dg/pr78213.c *** gcc-9.4.0/gcc/testsuite/gcc.dg/pr78213.c Tue Jun 1 07:53:05 2021 --- gcc-9.5.0/gcc/testsuite/gcc.dg/pr78213.c Fri May 27 07:21:12 2022 *************** *** 1,12 **** /* { dg-do compile } */ ! /* { dg-options "-fself-test" } */ ! ! /* When this test was written -fself-test took no argument, but it ! has subsequently gained a mandatory argument, giving the path ! to selftest support files (within the srcdir). ! It's not clear how to provide this path sanely from ! within DejaGnu, so for now, this test is disabled. */ ! /* { dg-skip-if "" { *-*-* } } */ /* Verify that -fself-test does not fail on a non empty source. */ --- 1,5 ---- /* { dg-do compile } */ ! /* { dg-options "-fself-test=$srcdir/selftests" } */ /* Verify that -fself-test does not fail on a non empty source. */ *************** int i; *** 15,18 **** while (i--) bar(); } ! /* { dg-message "fself\-test: " "-fself-test" { target *-*-* } 0 } */ --- 8,12 ---- while (i--) bar(); } ! ! /* { dg-regexp {^-fself-test: [0-9]+ pass\(es\) in [.0-9]+ seconds$|.*: note: self-tests are not enabled in this build$} } */ diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.dg/pr97953.c gcc-9.5.0/gcc/testsuite/gcc.dg/pr97953.c *** gcc-9.4.0/gcc/testsuite/gcc.dg/pr97953.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gcc.dg/pr97953.c Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,24 ---- + /* { dg-do run } */ + /* { dg-options "-O2 -fno-tree-fre" } */ + + int __attribute__((noipa)) + foo (int flag, int *p) + { + int val = *p; + if (flag) + { + if (val != 1) + __builtin_unreachable (); + return 0; + } + int val2 = *p; + return val2 == 2; + } + + int main() + { + int i = 2; + if (foo (0, &i) != 1) + __builtin_abort (); + return 0; + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.dg/torture/pr100672.c gcc-9.5.0/gcc/testsuite/gcc.dg/torture/pr100672.c *** gcc-9.4.0/gcc/testsuite/gcc.dg/torture/pr100672.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gcc.dg/torture/pr100672.c Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,19 ---- + /* { dg-do run } */ + /* { dg-additional-options "-w -Wno-psabi" } */ + + typedef long long __attribute__((__vector_size__ (4 * sizeof (long long)))) V; + + V + foo (V v) + { + return -(v >> 1); + } + + int + main (void) + { + V v = foo ((V) { -2, -4, -6, -8 }); + if (v[0] != 1 || v[1] != 2 || v[2] != 3 || v[3] != 4) + __builtin_abort (); + return 0; + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.dg/torture/pr100786.c gcc-9.5.0/gcc/testsuite/gcc.dg/torture/pr100786.c *** gcc-9.4.0/gcc/testsuite/gcc.dg/torture/pr100786.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gcc.dg/torture/pr100786.c Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,9 ---- + /* { dg-do compile } */ + + const double a = 0; + extern int b __attribute__((alias("a"))); + void inc() { b++; } + + const int a2 = 0; + extern double b2 __attribute__((alias("a2"))); + void inc2() { b2+=1; } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.dg/torture/pr100934.c gcc-9.5.0/gcc/testsuite/gcc.dg/torture/pr100934.c *** gcc-9.4.0/gcc/testsuite/gcc.dg/torture/pr100934.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gcc.dg/torture/pr100934.c Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,21 ---- + /* { dg-do run } */ + + int a, b, c, d, e; + int main() + { + int f = 0, g = 0; + for (; f < 2; f++) + { + int h, i; + for (h = 0; h < 2; h++) + { + b = e = g ? a % g : 0; + c = d; + for (i = 0; i < 1; i++) + g = 0; + for (; g < 2; g++) + ; + } + } + return 0; + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.dg/torture/pr101105.c gcc-9.5.0/gcc/testsuite/gcc.dg/torture/pr101105.c *** gcc-9.4.0/gcc/testsuite/gcc.dg/torture/pr101105.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gcc.dg/torture/pr101105.c Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,19 ---- + /* { dg-do run } */ + + short a; + int b[5][4] = {2, 2}; + int d; + short e(int f) { return f == 0 || a && f == 1 ? 0 : a; } + int main() { + int g, h; + g = 3; + for (; g >= 0; g--) { + h = 3; + for (; h >= 0; h--) + b[g][h] = b[0][1] && e(1); + } + d = b[0][1]; + if (d != 0) + __builtin_abort (); + return 0; + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.dg/torture/pr101173.c gcc-9.5.0/gcc/testsuite/gcc.dg/torture/pr101173.c *** gcc-9.4.0/gcc/testsuite/gcc.dg/torture/pr101173.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gcc.dg/torture/pr101173.c Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,18 ---- + /* { dg-do run } */ + /* { dg-additional-options "-floop-interchange" } */ + + int a[6][9]; + int main() + { + a[1][3] = 8; + for (int b = 1; b <= 5; b++) + for (int d = 0; d <= 5; d++) + #pragma GCC unroll 0 + for (int c = 0; c <= 5; c++) + a[b][c] = a[b][c + 2] & 216; + for (int e = 0; e < 6; e++) + for (int f = 0; f < 9; f++) + if (a[e][f] != 0) + __builtin_abort (); + return 0; + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.dg/torture/pr101394.c gcc-9.5.0/gcc/testsuite/gcc.dg/torture/pr101394.c *** gcc-9.4.0/gcc/testsuite/gcc.dg/torture/pr101394.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gcc.dg/torture/pr101394.c Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,18 ---- + /* { dg-do compile } */ + + int a, b, c, d; + void h(); + int e() __attribute__((returns_twice)); + void f() { + int *g = (int *)(__INTPTR_TYPE__)c; + if (b) { + h(); + g--; + if (a) + if (d) + h(); + } + if (g++) + e(); + c = (__INTPTR_TYPE__)g; + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.dg/torture/pr103181.c gcc-9.5.0/gcc/testsuite/gcc.dg/torture/pr103181.c *** gcc-9.4.0/gcc/testsuite/gcc.dg/torture/pr103181.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gcc.dg/torture/pr103181.c Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,24 ---- + /* { dg-do run } */ + + typedef unsigned char __attribute__((__vector_size__ (2))) U; + typedef unsigned short S; + typedef unsigned int __attribute__((__vector_size__ (64))) V; + + V v; + U a, b, c; + + U + foo (S s) + { + v += __builtin_bswap16 (s) || (S) (a / ((U){3, 0})); + return b + c; + } + + int + main (void) + { + U x = foo (4); + if (x[0] || x[1]) + __builtin_abort (); + return 0; + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.dg/torture/pr103237.c gcc-9.5.0/gcc/testsuite/gcc.dg/torture/pr103237.c *** gcc-9.4.0/gcc/testsuite/gcc.dg/torture/pr103237.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gcc.dg/torture/pr103237.c Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,24 ---- + /* { dg-do run } */ + /* { dg-additional-options "-ftree-vectorize" } */ + + int g1; + unsigned int g2 = -1U; + static void __attribute__((noipa)) + func_1() + { + int *l_1 = &g1; + for (int g3a = 0; g3a != 4; g3a++) + for (int l_2 = 0; l_2 <= 3; l_2++) + { + unsigned int *l_3 = &g2; + *l_1 = *l_3 ^= 1; + } + } + int + main() + { + func_1(); + if (g1 != -1) + __builtin_abort (); + return 0; + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.dg/torture/pr96522.c gcc-9.5.0/gcc/testsuite/gcc.dg/torture/pr96522.c *** gcc-9.4.0/gcc/testsuite/gcc.dg/torture/pr96522.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gcc.dg/torture/pr96522.c Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,36 ---- + /* { dg-do run } */ + /* { dg-additional-options "-fno-tree-pta" } */ + + __attribute__((noipa)) void + bar (void) + { + volatile int v = 1; + if (v) + __builtin_abort (); + } + + __attribute__((noipa)) void + baz (void) + { + } + + __attribute__((noipa)) void + foo (int n, double *p, double *x) + { + if (n < 10 && p != 0) + for (int i = 0; i < 10; i++) + if (x[0] < p[i]) + x[i] = 0; + if (p != 0) + bar (); + else + baz (); + } + + int + main () + { + double arr[10]; + foo (1000, 0, arr); + return 0; + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-16.c gcc-9.5.0/gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-16.c *** gcc-9.4.0/gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-16.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gcc.dg/tree-ssa/loop-interchange-16.c Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,22 ---- + /* PR/101280 */ + /* { dg-do compile } */ + /* { dg-options "-O3 -fdump-tree-linterchange-details" } */ + + void dummy (double *, double *); + #define LEN_2D 32 + double aa[LEN_2D][LEN_2D], bb[LEN_2D][LEN_2D]; + double s231(int iterations) + { + // loop interchange + // loop with data dependency + for (int nl = 0; nl < 100*(iterations/LEN_2D); nl++) { + for (int i = 0; i < LEN_2D; ++i) { + for (int j = 1; j < LEN_2D; j++) { + aa[j][i] = aa[j - 1][i] + bb[j][i]; + } + } + dummy(aa[0],bb[0]); + } + } + + /* { dg-final { scan-tree-dump "loops interchanged" "linterchange" } } */ diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.dg/tree-ssa/pr101824.c gcc-9.5.0/gcc/testsuite/gcc.dg/tree-ssa/pr101824.c *** gcc-9.4.0/gcc/testsuite/gcc.dg/tree-ssa/pr101824.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gcc.dg/tree-ssa/pr101824.c Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,19 ---- + /* { dg-do compile } */ + /* { dg-options "-O3 -fdump-tree-pcom-details -fdump-tree-optimized" } */ + + int main() + { + volatile int y; + void bar() + { + __builtin_printf ("%d", y); + } + while (y) + ; + return 0; + } + + /* Make sure the load from y is correctly interpreted as volatile, even + when going through FRAME. */ + /* { dg-final { scan-tree-dump-not "Executing predictive commoning" "pcom" } } */ + /* { dg-final { scan-tree-dump " ={v} FRAME" "optimized" } } */ diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.dg/tree-ssa/pr97456.c gcc-9.5.0/gcc/testsuite/gcc.dg/tree-ssa/pr97456.c *** gcc-9.4.0/gcc/testsuite/gcc.dg/tree-ssa/pr97456.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gcc.dg/tree-ssa/pr97456.c Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,40 ---- + /* { dg-do run } */ + /* { dg-options "-O2 -fwhole-program" } */ + + + float val2 = 1.710780f; + float val3; + volatile float vf; + + int __attribute__((noipa)) + get_bool (void) + { + return 1; + } + + int __attribute__((noinline)) + wrong (float *pos) + { + _Complex float a; + + __real__ a = *pos; + __imag__ a = *pos; + + _Complex float b = 0 + 0i; + + b = b + a; + + if (b == 0.0f) + return 1; + + vf = __imag__ b; + return 0; + } + + int main(int argc, char **argv) { + float val = get_bool () == 1 ? val2 : val3; + + if ((wrong(&val), wrong(&val))) + __builtin_abort (); + return 0; + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.target/aarch64/sync-comp-swap-ool.c gcc-9.5.0/gcc/testsuite/gcc.target/aarch64/sync-comp-swap-ool.c *** gcc-9.4.0/gcc/testsuite/gcc.target/aarch64/sync-comp-swap-ool.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gcc.target/aarch64/sync-comp-swap-ool.c Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,6 ---- + /* { dg-do compile } */ + /* { dg-options "-march=armv8-a+nolse -O2 -fno-ipa-icf -moutline-atomics" } */ + + #include "sync-comp-swap.x" + + /* { dg-final { scan-assembler-times "bl.*__aarch64_cas4_sync" 1 } } */ diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.target/aarch64/sync-op-acquire-ool.c gcc-9.5.0/gcc/testsuite/gcc.target/aarch64/sync-op-acquire-ool.c *** gcc-9.4.0/gcc/testsuite/gcc.target/aarch64/sync-op-acquire-ool.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gcc.target/aarch64/sync-op-acquire-ool.c Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,6 ---- + /* { dg-do compile } */ + /* { dg-options "-march=armv8-a+nolse -O2 -moutline-atomics" } */ + + #include "sync-op-acquire.x" + + /* { dg-final { scan-assembler-times "bl.*__aarch64_swp4_sync" 1 } } */ diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.target/aarch64/sync-op-full-ool.c gcc-9.5.0/gcc/testsuite/gcc.target/aarch64/sync-op-full-ool.c *** gcc-9.4.0/gcc/testsuite/gcc.target/aarch64/sync-op-full-ool.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gcc.target/aarch64/sync-op-full-ool.c Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,9 ---- + /* { dg-do compile } */ + /* { dg-options "-march=armv8-a+nolse -O2 -moutline-atomics" } */ + + #include "sync-op-full.x" + + /* { dg-final { scan-assembler-times "bl.*__aarch64_ldadd4_sync" 1 } } */ + /* { dg-final { scan-assembler-times "bl.*__aarch64_ldclr4_sync" 1 } } */ + /* { dg-final { scan-assembler-times "bl.*__aarch64_ldeor4_sync" 1 } } */ + /* { dg-final { scan-assembler-times "bl.*__aarch64_ldset4_sync" 1 } } */ diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.target/aarch64/target_attr_20.c gcc-9.5.0/gcc/testsuite/gcc.target/aarch64/target_attr_20.c *** gcc-9.4.0/gcc/testsuite/gcc.target/aarch64/target_attr_20.c Tue Jun 1 07:53:05 2021 --- gcc-9.5.0/gcc/testsuite/gcc.target/aarch64/target_attr_20.c Fri May 27 07:21:12 2022 *************** bar (void) *** 24,27 **** } } ! /* { dg-final { scan-assembler-not "bl.*__aarch64_cas2_acq_rel" } } */ --- 24,27 ---- } } ! /* { dg-final { scan-assembler-not "bl.*__aarch64_cas2_sync" } } */ diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.target/aarch64/target_attr_21.c gcc-9.5.0/gcc/testsuite/gcc.target/aarch64/target_attr_21.c *** gcc-9.4.0/gcc/testsuite/gcc.target/aarch64/target_attr_21.c Tue Jun 1 07:53:05 2021 --- gcc-9.5.0/gcc/testsuite/gcc.target/aarch64/target_attr_21.c Fri May 27 07:21:12 2022 *************** bar (void) *** 24,27 **** } } ! /* { dg-final { scan-assembler-times "bl.*__aarch64_cas2_acq_rel" 1 } } */ --- 24,27 ---- } } ! /* { dg-final { scan-assembler-times "bl.*__aarch64_cas2_sync" 1 } } */ diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.target/arm/attr-neon.c gcc-9.5.0/gcc/testsuite/gcc.target/arm/attr-neon.c *** gcc-9.4.0/gcc/testsuite/gcc.target/arm/attr-neon.c Tue Jun 1 07:53:05 2021 --- gcc-9.5.0/gcc/testsuite/gcc.target/arm/attr-neon.c Fri May 27 07:21:12 2022 *************** *** 1,7 **** /* { dg-do compile } */ /* { dg-require-effective-target arm_neon_ok } */ /* { dg-options "-O2 -ftree-vectorize" } */ ! /* { dg-add-options arm_neon arm_v8_vfp } */ /* The arm_v8_vfp adds -mfpu=fp-armv8 to the command line, overriding any -mfpu= option set by arm_neon, thus ensuring that the attributes below really are checked for correct fpu selection. */ /* Verify that neon instructions are emitted once. */ void __attribute__ ((target("fpu=neon"))) --- 1,10 ---- /* { dg-do compile } */ /* { dg-require-effective-target arm_neon_ok } */ /* { dg-options "-O2 -ftree-vectorize" } */ ! /* { dg-add-options arm_neon arm_v8_vfp } */ ! /* The arm_v8_vfp adds -mfpu=fp-armv8 to the command line, overriding any ! -mfpu= option set by arm_neon, thus ensuring that the attributes below ! really are checked for correct fpu selection. */ /* Verify that neon instructions are emitted once. */ void __attribute__ ((target("fpu=neon"))) *************** f3(int n, int x[], int y[]) { *** 18,23 **** y[i] = x[i] << 3; } ! /* { dg-final { scan-assembler-times "\.fpu vfp" 1 } } */ ! /* { dg-final { scan-assembler-times "\.fpu neon" 1 } } */ /* { dg-final { scan-assembler-times "vshl" 1 } } */ --- 21,26 ---- y[i] = x[i] << 3; } ! /* { dg-final { scan-assembler-times "\.fpu\\s+vfp\n" 1 } } */ ! /* { dg-final { scan-assembler-times "\.fpu\\s+neon\n" 1 } } */ /* { dg-final { scan-assembler-times "vshl" 1 } } */ diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.target/arm/attr-neon2.c gcc-9.5.0/gcc/testsuite/gcc.target/arm/attr-neon2.c *** gcc-9.4.0/gcc/testsuite/gcc.target/arm/attr-neon2.c Tue Jun 1 07:53:05 2021 --- gcc-9.5.0/gcc/testsuite/gcc.target/arm/attr-neon2.c Fri May 27 07:21:12 2022 *************** my1 (int8x8_t __a, int8x8_t __b) *** 27,34 **** return __a + __b; } ! /* { dg-final { scan-assembler-times "\.fpu vfp" 1 } } */ ! /* { dg-final { scan-assembler-times "\.fpu neon" 1 } } */ /* { dg-final { scan-assembler "vadd" } } */ --- 27,34 ---- return __a + __b; } ! /* { dg-final { scan-assembler {\.fpu\s+vfp\n} } } */ ! /* { dg-final { scan-assembler {\.fpu\s+neon\n} } } */ /* { dg-final { scan-assembler "vadd" } } */ diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.target/arm/attr-neon3.c gcc-9.5.0/gcc/testsuite/gcc.target/arm/attr-neon3.c *** gcc-9.4.0/gcc/testsuite/gcc.target/arm/attr-neon3.c Tue Jun 1 07:53:05 2021 --- gcc-9.5.0/gcc/testsuite/gcc.target/arm/attr-neon3.c Fri May 27 07:21:12 2022 *************** my1 (int8x8_t __a, int8x8_t __b) *** 31,38 **** return __a + __b; } ! /* { dg-final { scan-assembler-times "\.fpu vfp" 1 } } */ ! /* { dg-final { scan-assembler-times "\.fpu neon" 1 } } */ ! /* { dg-final { scan-assembler-times "\.fpu crypto-neon-fp-armv8" 1 } } */ /* { dg-final { scan-assembler-times "vld1" 1 } } */ /* { dg-final { scan-assembler-times "vadd" 1} } */ --- 31,38 ---- return __a + __b; } ! /* { dg-final { scan-assembler {\.fpu\s+vfp\n} } } */ ! /* { dg-final { scan-assembler {\.fpu\s+neon\n} } } */ ! /* { dg-final { scan-assembler {\.fpu\s+crypto-neon-fp-armv8\n} } } */ /* { dg-final { scan-assembler-times "vld1" 1 } } */ /* { dg-final { scan-assembler-times "vadd" 1} } */ diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.target/arm/pr69245.c gcc-9.5.0/gcc/testsuite/gcc.target/arm/pr69245.c *** gcc-9.4.0/gcc/testsuite/gcc.target/arm/pr69245.c Tue Jun 1 07:53:05 2021 --- gcc-9.5.0/gcc/testsuite/gcc.target/arm/pr69245.c Fri May 27 07:21:12 2022 *************** *** 12,18 **** #pragma GCC target "fpu=neon-vfpv4" int a, c, d; float b; ! static int fn1 () { return 0; } --- 12,18 ---- #pragma GCC target "fpu=neon-vfpv4" int a, c, d; float b; ! int fn1 () { return 0; } *************** void fn2 () *** 23,26 **** d = b * c + a; } ! /* { dg-final { scan-assembler-times "\.fpu vfp" 1 } } */ --- 23,30 ---- d = b * c + a; } ! /* Because we don't know the exact command-line options used to invoke the test ! we cannot expect these tests to match exactly once. But they must appear at ! least once. */ ! /* { dg-final { scan-assembler "\.fpu\\s+vfp\n" } } */ ! /* { dg-final { scan-assembler "\.fpu\\s+neon-vfpv4\n" } } */ diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.target/arm/pr99977.c gcc-9.5.0/gcc/testsuite/gcc.target/arm/pr99977.c *** gcc-9.4.0/gcc/testsuite/gcc.target/arm/pr99977.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gcc.target/arm/pr99977.c Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,8 ---- + /* { dg-do compile } */ + /* { dg-require-effective-target arm_arch_v8m_base_ok } */ + /* { dg-options "-O2" } */ + /* { dg-add-options arm_arch_v8m_base } */ + _Bool f1(int *p) { return __sync_bool_compare_and_swap (p, -1, 2); } + _Bool f2(int *p) { return __sync_bool_compare_and_swap (p, -8, 2); } + int g1(int *p) { return __sync_val_compare_and_swap (p, -1, 2); } + int g2(int *p) { return __sync_val_compare_and_swap (p, -8, 3); } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.target/arm/pragma_fpu_attribute.c gcc-9.5.0/gcc/testsuite/gcc.target/arm/pragma_fpu_attribute.c *** gcc-9.4.0/gcc/testsuite/gcc.target/arm/pragma_fpu_attribute.c Tue Jun 1 07:53:05 2021 --- gcc-9.5.0/gcc/testsuite/gcc.target/arm/pragma_fpu_attribute.c Fri May 27 07:21:12 2022 *************** uint32_t restored () *** 22,26 **** return bar(); } ! /* { dg-final { scan-assembler-times {\.fpu\s+vfpv4} 1 } } */ ! /* { dg-final { scan-assembler-times {\.fpu\s+vfpv3-d16} 1 } } */ --- 22,29 ---- return bar(); } ! /* We can't tell exactly how many times the following tests will match because ! command-line options may cause additional instances to be generated, but ! each must be present at least once. */ ! /* { dg-final { scan-assembler {\.fpu\s+vfpv4\n} } } */ ! /* { dg-final { scan-assembler {\.fpu\s+vfpv3-d16\n} } } */ diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.target/arm/pragma_fpu_attribute_2.c gcc-9.5.0/gcc/testsuite/gcc.target/arm/pragma_fpu_attribute_2.c *** gcc-9.4.0/gcc/testsuite/gcc.target/arm/pragma_fpu_attribute_2.c Tue Jun 1 07:53:05 2021 --- gcc-9.5.0/gcc/testsuite/gcc.target/arm/pragma_fpu_attribute_2.c Fri May 27 07:21:12 2022 *************** uint32_t restored () *** 25,29 **** return bar(); } ! /* { dg-final { scan-assembler-times {\.fpu\s+vfpv4} 1 } } */ ! /* { dg-final { scan-assembler-times {\.fpu\s+vfpv3-d16} 1 } } */ --- 25,32 ---- return bar(); } ! /* We can't tell exactly how many times the following tests will match because ! command-line options may cause additional instances to be generated, but ! each must be present at least once. */ ! /* { dg-final { scan-assembler {\.fpu\s+vfpv4\n} } } */ ! /* { dg-final { scan-assembler {\.fpu\s+vfpv3-d16\n} } } */ diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.target/i386/avx-pr102224.c gcc-9.5.0/gcc/testsuite/gcc.target/i386/avx-pr102224.c *** gcc-9.4.0/gcc/testsuite/gcc.target/i386/avx-pr102224.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gcc.target/i386/avx-pr102224.c Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,23 ---- + /* PR tree-optimization/51581 */ + /* { dg-do run } */ + /* { dg-options "-O2 -mavx" } */ + /* { dg-require-effective-target avx } */ + + #ifndef CHECK_H + #define CHECK_H "avx-check.h" + #endif + #ifndef TEST + #define TEST avx_test + #endif + + #define main main1 + #include "../../gcc.dg/pr102224.c" + #undef main + + #include CHECK_H + + static void + TEST (void) + { + main1 (); + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.target/i386/avx512f-pr101471.c gcc-9.5.0/gcc/testsuite/gcc.target/i386/avx512f-pr101471.c *** gcc-9.4.0/gcc/testsuite/gcc.target/i386/avx512f-pr101471.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gcc.target/i386/avx512f-pr101471.c Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,18 ---- + /* { dg-do run } */ + /* { dg-options "-mavx512dq -O0" } */ + /* { dg-require-effective-target avx512dq } */ + + #include "avx512f-check.h" + + static void + avx512f_test (void) + { + __m512 x = { + 1, 1, 1, 1, + 1, 1, 1, 1, + 0, 0, 0, 0, + 0, 0, 0, 0, }; + int ret = _mm512_fpclass_ps_mask(x, 0x26); + if (ret != 65280) + __builtin_abort(); + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.target/i386/pr101175.c gcc-9.5.0/gcc/testsuite/gcc.target/i386/pr101175.c *** gcc-9.4.0/gcc/testsuite/gcc.target/i386/pr101175.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gcc.target/i386/pr101175.c Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,28 ---- + /* { dg-do run } */ + /* { dg-options "-O2 -mlzcnt" } */ + /* { dg-require-effective-target lzcnt } */ + + #include "lzcnt-check.h" + + static int + foo (unsigned int v) + { + return v ? __builtin_clz (v) : 32; + } + + /* returns -1 if x == 0 */ + int + __attribute__ ((noinline, noclone)) + bar (unsigned int x) + { + return 31 - foo (x); + } + + static void + lzcnt_test () + { + int r = bar (0); + + if (r != -1) + abort (); + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.target/i386/pr102498.c gcc-9.5.0/gcc/testsuite/gcc.target/i386/pr102498.c *** gcc-9.4.0/gcc/testsuite/gcc.target/i386/pr102498.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gcc.target/i386/pr102498.c Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,59 ---- + /* PR target/102498 */ + /* { dg-do run { target fenv } } */ + /* { dg-options "-frounding-math" } */ + + #include + #include + + __attribute__((noipa)) long double + fldlg2 (void) + { + return 0.3010299956639811952256464283594894482L; + } + + __attribute__((noipa)) long double + fldln2 (void) + { + return 0.6931471805599453094286904741849753009L; + } + + __attribute__((noipa)) long double + fldl2e (void) + { + return 1.4426950408889634073876517827983434472L; + } + + __attribute__((noipa)) long double + fldl2t (void) + { + return 3.3219280948873623478083405569094566090L; + } + + __attribute__((noipa)) long double + fldpi (void) + { + return 3.1415926535897932385128089594061862044L; + } + + int + main () + { + long double a = fldlg2 (); + long double b = fldln2 (); + long double c = fldl2e (); + long double d = fldl2t (); + long double e = fldpi (); + static int f[] = { FE_TONEAREST, FE_TOWARDZERO, FE_UPWARD, FE_DOWNWARD }; + int i; + for (i = 0; i < 4; i++) + { + fesetround (f[i]); + if (a != fldlg2 () + || b != fldln2 () + || c != fldl2e () + || d != fldl2t () + || e != fldpi ()) + abort (); + } + return 0; + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.target/i386/pr103205.c gcc-9.5.0/gcc/testsuite/gcc.target/i386/pr103205.c *** gcc-9.4.0/gcc/testsuite/gcc.target/i386/pr103205.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gcc.target/i386/pr103205.c Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,11 ---- + /* PR target/103205 */ + /* { dg-do compile } */ + /* { dg-options "-O2 -mtune-ctrl=^himode_math" } */ + + unsigned short a; + + unsigned short + foo (void) + { + return __sync_fetch_and_and (&a, ~1) & 1; + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.target/i386/pr103908.c gcc-9.5.0/gcc/testsuite/gcc.target/i386/pr103908.c *** gcc-9.4.0/gcc/testsuite/gcc.target/i386/pr103908.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gcc.target/i386/pr103908.c Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,24 ---- + /* PR rtl-optimization/103908 */ + /* { dg-do compile } */ + /* { dg-options "-O1 -fdisable-tree-cselim -fno-tree-sink" } */ + /* { dg-final { scan-assembler "# insn 1" } } */ + /* { dg-final { scan-assembler "# insn 2" } } */ + + int a, b; + + void + foo (void) + { + if (a) + { + b = 1; + asm goto ("# insn 1" : : : : lab1); + lab1:; + } + else + { + b = 1; + asm goto ("# insn 2" : : : : lab2); + lab2:; + } + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.target/i386/pr104446.c gcc-9.5.0/gcc/testsuite/gcc.target/i386/pr104446.c *** gcc-9.4.0/gcc/testsuite/gcc.target/i386/pr104446.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gcc.target/i386/pr104446.c Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,15 ---- + /* PR middle-end/104446 */ + /* { dg-do compile { target ia32 } } */ + /* { dg-options "-O2 -mrtd" } */ + + register volatile int a __asm__("%esp"); + void foo (void *); + void bar (void *); + + void + baz (void) + { + foo (__builtin_return_address (0)); + a = 0; + bar (__builtin_return_address (0)); + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.target/i386/pr104451.c gcc-9.5.0/gcc/testsuite/gcc.target/i386/pr104451.c *** gcc-9.4.0/gcc/testsuite/gcc.target/i386/pr104451.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gcc.target/i386/pr104451.c Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,25 ---- + /* { dg-do compile } */ + /* { dg-options "-mavx2 -mxop -O" } */ + + typedef char __attribute__((__vector_size__ (16))) V; + typedef unsigned char __attribute__((__vector_size__ (16))) UV; + V v; + UV uv; + + V + foo (long c) + { + return v << c; + } + + V + foo1 (long c) + { + return v >> c; + } + + UV + foo2 (unsigned long uc) + { + return uv >> uc; + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.target/i386/pr104453.c gcc-9.5.0/gcc/testsuite/gcc.target/i386/pr104453.c *** gcc-9.4.0/gcc/testsuite/gcc.target/i386/pr104453.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gcc.target/i386/pr104453.c Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,11 ---- + /* { dg-do compile } */ + /* { dg-options "-mavx512f" } */ + + typedef short __attribute__((__vector_size__ (32))) V; + V g; + + void + foo (void) + { + __builtin_ia32_psrawi256 (g, 0); + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.target/i386/pr104469.c gcc-9.5.0/gcc/testsuite/gcc.target/i386/pr104469.c *** gcc-9.4.0/gcc/testsuite/gcc.target/i386/pr104469.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gcc.target/i386/pr104469.c Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,12 ---- + /* PR target/104469 */ + /* { dg-do compile } */ + /* { dg-options "-mavx512f" } */ + + typedef double __attribute__((__vector_size__ (64))) F; + typedef int __attribute__((__vector_size__ (32))) V; + + F + foo (V v) + { + return __builtin_convertvector (v, F); + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.target/i386/pr104502.c gcc-9.5.0/gcc/testsuite/gcc.target/i386/pr104502.c *** gcc-9.4.0/gcc/testsuite/gcc.target/i386/pr104502.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gcc.target/i386/pr104502.c Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,31 ---- + /* PR target/104502 */ + /* { dg-do compile { target fstack_protector } } */ + /* { dg-options "-O -flive-range-shrinkage -march=barcelona -fstack-protector-all -mavx512f" } */ + + typedef char __attribute__((__vector_size__ (8))) U; + typedef int __attribute__((__vector_size__ (8))) A; + typedef int __attribute__((__vector_size__ (16))) B; + typedef int __attribute__((__vector_size__ (32))) C; + typedef int __attribute__((__vector_size__ (64))) D; + typedef __float128 __attribute__((__vector_size__ (32))) F; + + char s; + U u; + A a; + int i; + C c; + double d; + + U + foo (U u0, A a0, B b0, B b1, C c0, C c1, C c2, C c3, A a1, A a2, F f0) + { + C ca = c |= (short) (float) d; + C cb = c0 + c1 + c2 + c3 + ca + (C) f0; + U ua = s << (u & 4); + B ba = ((union {C a; B b;}) cb).b + b0 + b1; + U ub = ((union {B a; U b;}) ba).b + + u0 + u + ua + (U) a + (U) a + (U) a0 + (U) a1 + (U) a2; + long long u64_r = i + d; + char u8_r = u64_r; + return ub + u8_r; + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.target/i386/pr104971.c gcc-9.5.0/gcc/testsuite/gcc.target/i386/pr104971.c *** gcc-9.4.0/gcc/testsuite/gcc.target/i386/pr104971.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gcc.target/i386/pr104971.c Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,18 ---- + /* PR middle-end/104971 */ + /* { dg-do run } */ + /* { dg-options "-O2" } */ + + #include + + __attribute__((noipa)) void + foo (void) + { + __readeflags (); + } + + int + main () + { + foo (); + return 0; + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.target/i386/pr105123.c gcc-9.5.0/gcc/testsuite/gcc.target/i386/pr105123.c *** gcc-9.4.0/gcc/testsuite/gcc.target/i386/pr105123.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gcc.target/i386/pr105123.c Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,22 ---- + /* PR target/105123 */ + /* { dg-do run { target sse2_runtime } } */ + /* { dg-options "-msse2" } */ + /* { dg-additional-options "-mtune=i686" { target ia32 } } */ + + typedef unsigned short __attribute__((__vector_size__ (4 * sizeof (unsigned short)))) V; + + V + foo (unsigned short u, V v) + { + return __builtin_shuffle (u * v, v); + } + + int + main () + { + V x = foo (1, (V) { 0, 1, 2, 3 }); + for (unsigned i = 0; i < 4; i++) + if (x[i] != i) + __builtin_abort (); + return 0; + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.target/i386/pr71245-1.c gcc-9.5.0/gcc/testsuite/gcc.target/i386/pr71245-1.c *** gcc-9.4.0/gcc/testsuite/gcc.target/i386/pr71245-1.c Tue Jun 1 07:53:05 2021 --- gcc-9.5.0/gcc/testsuite/gcc.target/i386/pr71245-1.c Thu Jan 1 00:00:00 1970 *************** *** 1,22 **** - /* PR target/71245 */ - /* { dg-do compile { target ia32 } } */ - /* { dg-options "-O2 -march=pentium -mno-sse -mfpmath=387" } */ - - typedef union - { - unsigned long long ll; - double d; - } u_t; - - u_t d = { .d = 5.0 }; - - void foo_d (void) - { - u_t tmp; - - tmp.ll = __atomic_load_n (&d.ll, __ATOMIC_SEQ_CST); - tmp.d += 1.0; - __atomic_store_n (&d.ll, tmp.ll, __ATOMIC_SEQ_CST); - } - - /* { dg-final { scan-assembler-not "(fistp|fild)" { xfail *-*-* } } } */ --- 0 ---- diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.target/i386/pr71245-2.c gcc-9.5.0/gcc/testsuite/gcc.target/i386/pr71245-2.c *** gcc-9.4.0/gcc/testsuite/gcc.target/i386/pr71245-2.c Tue Jun 1 07:53:05 2021 --- gcc-9.5.0/gcc/testsuite/gcc.target/i386/pr71245-2.c Thu Jan 1 00:00:00 1970 *************** *** 1,22 **** - /* PR target/71245 */ - /* { dg-do compile { target ia32 } } */ - /* { dg-options "-O2 -march=pentium -msse -mno-sse2 -mfpmath=387" } */ - - typedef union - { - unsigned long long ll; - double d; - } u_t; - - u_t d = { .d = 5.0 }; - - void foo_d (void) - { - u_t tmp; - - tmp.ll = __atomic_load_n (&d.ll, __ATOMIC_SEQ_CST); - tmp.d += 1.0; - __atomic_store_n (&d.ll, tmp.ll, __ATOMIC_SEQ_CST); - } - - /* { dg-final { scan-assembler-not "movlps" { xfail *-*-* } } } */ --- 0 ---- diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.target/i386/sse-14.c gcc-9.5.0/gcc/testsuite/gcc.target/i386/sse-14.c *** gcc-9.4.0/gcc/testsuite/gcc.target/i386/sse-14.c Tue Jun 1 07:53:05 2021 --- gcc-9.5.0/gcc/testsuite/gcc.target/i386/sse-14.c Fri May 27 07:21:12 2022 *************** test_3 (_mm_maskz_mul_round_sd, __m128d, *** 429,435 **** --- 429,437 ---- test_3 (_mm512_maskz_mul_round_ps, __m512, __mmask16, __m512, __m512, 9) test_3 (_mm_maskz_mul_round_ss, __m128, __mmask8, __m128, __m128, 9) test_3 (_mm512_maskz_scalef_round_pd, __m512d, __mmask8, __m512d, __m512d, 9) + test_3 (_mm_maskz_scalef_round_sd, __m128d, __mmask8, __m128d, __m128d, 9) test_3 (_mm512_maskz_scalef_round_ps, __m512, __mmask16, __m512, __m512, 9) + test_3 (_mm_maskz_scalef_round_ss, __m128, __mmask8, __m128, __m128, 9) test_3 (_mm512_maskz_shuffle_f32x4, __m512, __mmask16, __m512, __m512, 1) test_3 (_mm512_maskz_shuffle_f64x2, __m512d, __mmask8, __m512d, __m512d, 1) test_3 (_mm512_maskz_shuffle_i32x4, __m512i, __mmask16, __m512i, __m512i, 1) *************** test_4 (_mm_mask_mul_round_sd, __m128d, *** 543,549 **** --- 545,553 ---- test_4 (_mm512_mask_mul_round_ps, __m512, __m512, __mmask16, __m512, __m512, 9) test_4 (_mm_mask_mul_round_ss, __m128, __m128, __mmask8, __m128, __m128, 9) test_4 (_mm512_mask_scalef_round_pd, __m512d, __m512d, __mmask8, __m512d, __m512d, 9) + test_4 (_mm_mask_scalef_round_sd, __m128d, __m128d, __mmask8, __m128d, __m128d, 9) test_4 (_mm512_mask_scalef_round_ps, __m512, __m512, __mmask16, __m512, __m512, 9) + test_4 (_mm_mask_scalef_round_ss, __m128, __m128, __mmask8, __m128, __m128, 9) test_4 (_mm512_mask_shuffle_f32x4, __m512, __m512, __mmask16, __m512, __m512, 1) test_4 (_mm512_mask_shuffle_f64x2, __m512d, __m512d, __mmask8, __m512d, __m512d, 1) test_4 (_mm512_mask_shuffle_i32x4, __m512i, __m512i, __mmask16, __m512i, __m512i, 1) diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.target/powerpc/pr101129.c gcc-9.5.0/gcc/testsuite/gcc.target/powerpc/pr101129.c *** gcc-9.4.0/gcc/testsuite/gcc.target/powerpc/pr101129.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gcc.target/powerpc/pr101129.c Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,36 ---- + /* { dg-do run } */ + /* { dg-require-effective-target p8vector_hw } */ + /* { dg-require-effective-target int128 } */ + /* { dg-options "-mdejagnu-cpu=power8 -O " } */ + + /* PR101129: The swaps pass was turning a mult-lopart into a mult-hipart. + Make sure we aren't doing that anymore. */ + + typedef unsigned char u8; + typedef unsigned char __attribute__((__vector_size__ (8))) U; + typedef unsigned char __attribute__((__vector_size__ (16))) V; + typedef unsigned int u32; + typedef unsigned long long u64; + typedef __int128 u128; + + u8 g; + U u; + + void + foo0 (u32 u32_0, U *ret) + { + u128 u128_2 = u32_0 * (u128)((V){ 5 } > (u32_0 & 4)); + u64 u64_r = u128_2 >> 64; + u8 u8_r = u64_r + g; + *ret = u + u8_r; + } + + int + main (void) + { + U x; + foo0 (7, &x); + for (unsigned i = 0; i < sizeof (x); i++) + if (x[i] != 0) __builtin_abort(); + return 0; + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.target/powerpc/pr101985-1.c gcc-9.5.0/gcc/testsuite/gcc.target/powerpc/pr101985-1.c *** gcc-9.4.0/gcc/testsuite/gcc.target/powerpc/pr101985-1.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gcc.target/powerpc/pr101985-1.c Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,18 ---- + /* PR target/101985 */ + /* { dg-do run } */ + /* { dg-require-effective-target vsx_hw } */ + /* { dg-options "-O2 -mvsx" } */ + + #include + + int + main (void) + { + vector float a = { 1, 2, - 3, - 4}; + vector float b = {-10, 20, -30, 40}; + vector float c = { 10, 20, -30, -40}; + a = vec_cpsgn (a, b); + if (! vec_all_eq (a, c)) + __builtin_abort (); + return 0; + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.target/powerpc/pr101985-2.c gcc-9.5.0/gcc/testsuite/gcc.target/powerpc/pr101985-2.c *** gcc-9.4.0/gcc/testsuite/gcc.target/powerpc/pr101985-2.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gcc.target/powerpc/pr101985-2.c Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,18 ---- + /* PR target/101985 */ + /* { dg-do run } */ + /* { dg-require-effective-target vsx_hw } */ + /* { dg-options "-O2 -mvsx" } */ + + #include + + int + main (void) + { + vector double a = { 1, -4}; + vector double b = { -10, 40}; + vector double c = { 10, -40}; + a = vec_cpsgn (a, b); + if (! vec_all_eq (a, c)) + __builtin_abort (); + return 0; + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.target/powerpc/pr102347.c gcc-9.5.0/gcc/testsuite/gcc.target/powerpc/pr102347.c *** gcc-9.4.0/gcc/testsuite/gcc.target/powerpc/pr102347.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gcc.target/powerpc/pr102347.c Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,19 ---- + /* { dg-do link } */ + /* { dg-skip-if "" { powerpc*-*-aix* } } */ + /* { dg-require-effective-target powerpc_p9modulo_ok } */ + /* { dg-require-effective-target lto } */ + /* { dg-options "-flto -mdejagnu-cpu=power8" } */ + + /* Verify there are no error messages in LTO mode. */ + + #pragma GCC target "cpu=power9" + int main () + { + int res; + #ifdef __LP64__ + res = (int) __builtin_darn (); + #else + res = __builtin_darn_32 (); + #endif + return res; + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.target/s390/20211119.c gcc-9.5.0/gcc/testsuite/gcc.target/s390/20211119.c *** gcc-9.4.0/gcc/testsuite/gcc.target/s390/20211119.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gcc.target/s390/20211119.c Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,12 ---- + /* { dg-do run { target { s390_useable_hw } } } */ + /* { dg-options "-Os -march=z10" } */ + signed char a; + int b = -925974181, c; + unsigned *d = &b; + int *e = &c; + int main() { + *e = ((217 ^ a) > 585) < *d; + if (c != 1) + __builtin_abort(); + return 0; + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.target/s390/pr104775.c gcc-9.5.0/gcc/testsuite/gcc.target/s390/pr104775.c *** gcc-9.4.0/gcc/testsuite/gcc.target/s390/pr104775.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gcc.target/s390/pr104775.c Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,14 ---- + /* PR target/104775 */ + /* { dg-do assemble { target s390_zEC12_hw } } */ + /* { dg-options "-O2 -march=zEC12" } */ + + long a[64]; + void bar (void); + + void + foo (int x, int y) + { + if (x != a[y]) + bar (); + __builtin_trap (); + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.target/sparc/20210917-1.c gcc-9.5.0/gcc/testsuite/gcc.target/sparc/20210917-1.c *** gcc-9.4.0/gcc/testsuite/gcc.target/sparc/20210917-1.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gcc.target/sparc/20210917-1.c Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,19 ---- + /* PR rtl-optimization/102306 */ + /* Reported by Daniel Cederman */ + + /* { dg-do compile } */ + /* { dg-require-effective-target ilp32 } */ + /* { dg-options "-O -mcpu=v8" } */ + + extern void foo (void); + + void test (volatile unsigned char *a) + { + char b = *a; + if (!b) + return; + if (b & 2) + foo (); + } + + /* { dg-final { scan-assembler-times "ldub" 1 } } */ diff -Nrcpad gcc-9.4.0/gcc/testsuite/gcc.target/sparc/20220510-1.c gcc-9.5.0/gcc/testsuite/gcc.target/sparc/20220510-1.c *** gcc-9.4.0/gcc/testsuite/gcc.target/sparc/20220510-1.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gcc.target/sparc/20220510-1.c Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,31 ---- + /* PR target/105292 */ + /* Reported by Koakuma */ + + /* { dg-do compile } */ + /* { dg-options "-O3 -mvis2" } */ + + extern void get_vbytes_v2 (unsigned); + + typedef struct { + unsigned ctt_info; + unsigned ctt_size; + } ctf_type_t; + + typedef struct { + unsigned short cts_offset; + unsigned short cts_bits; + } ctf_slice_t; + + void flip_types_len (ctf_type_t *t, int bsx1, int bsx2) + { + const int kind = t->ctt_info; + + get_vbytes_v2 (t->ctt_size); + + if (kind == 4) + { + ctf_slice_t *s = (ctf_slice_t *)t; + s->cts_offset = __builtin_bswap16(bsx1); + s->cts_bits = __builtin_bswap16(bsx2); + } + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gdc.dg/pr100882a.d gcc-9.5.0/gcc/testsuite/gdc.dg/pr100882a.d *** gcc-9.4.0/gcc/testsuite/gdc.dg/pr100882a.d Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gdc.dg/pr100882a.d Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,21 ---- + // https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100882 + // { dg-additional-options "-fmain" } + // { dg-do run } + + __gshared int counter = 0; + struct S100882 + { + this(int) { counter++; } + ~this() { counter++; } + } + static S100882 s; + static this() + { + s = cast(shared) S100882(0); + assert(counter == 2); + } + + auto test100882() + { + return cast(shared) S100882(0); + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gdc.dg/pr100882b.d gcc-9.5.0/gcc/testsuite/gdc.dg/pr100882b.d *** gcc-9.4.0/gcc/testsuite/gdc.dg/pr100882b.d Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gdc.dg/pr100882b.d Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,35 ---- + // https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100882 + // { dg-do compile } + + struct AllocatorList(Factory) + { + Factory factory; + auto make(size_t n) { return factory(n); } + this(Factory plant) + { + factory = plant; + } + } + + struct Region + { + ~this() + { + } + } + + auto mmapRegionList() + { + struct Factory + { + this(size_t ) + { + } + auto opCall(size_t ) + { + return Region(); + } + } + auto shop = Factory(); + AllocatorList!Factory(shop); + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gdc.dg/pr100882c.d gcc-9.5.0/gcc/testsuite/gdc.dg/pr100882c.d *** gcc-9.4.0/gcc/testsuite/gdc.dg/pr100882c.d Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gdc.dg/pr100882c.d Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,19 ---- + // https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100882 + // { dg-do compile } + + auto iota(int, int) + { + struct Result + { + this(int) + { + } + } + return Result(); + } + + auto iota(int end) + { + int begin; + return iota(begin, end); + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gdc.dg/pr100882d.d gcc-9.5.0/gcc/testsuite/gdc.dg/pr100882d.d *** gcc-9.4.0/gcc/testsuite/gdc.dg/pr100882d.d Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gdc.dg/pr100882d.d Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,25 ---- + // https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100882 + // { dg-do compile } + + struct CowArray + { + this(this) + { + } + } + + struct Tuple + { + CowArray expand; + } + + auto tuple(CowArray) + { + return Tuple(); + } + + auto parseCharTerm() + { + CowArray set; + return tuple(set); + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gdc.dg/pr100967.d gcc-9.5.0/gcc/testsuite/gdc.dg/pr100967.d *** gcc-9.4.0/gcc/testsuite/gdc.dg/pr100967.d Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gdc.dg/pr100967.d Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,11 ---- + // https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100967 + // { dg-do compile } + + module object; // { dg-error "class object.TypeInfo missing or corrupt object.d" } + + extern(C) int main() + { + int[int] aa; + aa[0] = 1; // { dg-error ".object.TypeInfo. could not be found, but is implicitly used" } + return 0; + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gdc.dg/pr101127a.d gcc-9.5.0/gcc/testsuite/gdc.dg/pr101127a.d *** gcc-9.4.0/gcc/testsuite/gdc.dg/pr101127a.d Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gdc.dg/pr101127a.d Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,8 ---- + // https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101127 + // { dg-do compile { target i?86*-*-* x86_64-*-* } } + // { dg-additional-options "-mavx" } + + import gcc.builtins; + + static assert(__traits(compiles, __builtin_ia32_andps256)); + static assert(__traits(compiles, __builtin_ia32_pmulhrsw128)); diff -Nrcpad gcc-9.4.0/gcc/testsuite/gdc.dg/pr101127b.d gcc-9.5.0/gcc/testsuite/gdc.dg/pr101127b.d *** gcc-9.4.0/gcc/testsuite/gdc.dg/pr101127b.d Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gdc.dg/pr101127b.d Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,7 ---- + // https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101127 + // { dg-do compile { target i?86*-*-* x86_64-*-* } } + + import gcc.builtins; + + static assert(!__traits(compiles, __builtin_ia32_andps256)); + static assert(!__traits(compiles, __builtin_ia32_pmulhrsw128)); diff -Nrcpad gcc-9.4.0/gcc/testsuite/gdc.dg/pr101490.d gcc-9.5.0/gcc/testsuite/gdc.dg/pr101490.d *** gcc-9.4.0/gcc/testsuite/gdc.dg/pr101490.d Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gdc.dg/pr101490.d Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,21 ---- + // https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101490 + // { dg-do compile } + + struct S101490 + { + int[0] arr; + } + + void main() + { + S101490* t; + auto a = cast(typeof(t.arr)[0])t.arr; + write(a); + } + + void write(S)(S args) + { + foreach (arg; args) + { + } + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gdc.dg/pr101640.d gcc-9.5.0/gcc/testsuite/gdc.dg/pr101640.d *** gcc-9.4.0/gcc/testsuite/gdc.dg/pr101640.d Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gdc.dg/pr101640.d Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,11 ---- + // https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101640 + // { dg-do compile } + // { dg-options "-fdump-tree-original" } + + int fun101640(ref int); + + int test101640(int val) + { + // { dg-final { scan-tree-dump "= val \\\+ fun101640 \\\(\\\(int &\\\) &val\\\);" "original" } } + return val + fun101640(val); + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gdc.dg/pr96435.d gcc-9.5.0/gcc/testsuite/gdc.dg/pr96435.d *** gcc-9.4.0/gcc/testsuite/gdc.dg/pr96435.d Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gdc.dg/pr96435.d Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,21 ---- + // https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96435 + // { dg-do run } + + @safe bool test96435() + { + int[2] array = [16, 678]; + union U { int i; bool b; } + U u; + u.i = 0xDEADBEEF; + assert(array[u.b] == 678); + return u.b; + } + + @safe void main() + { + auto b = test96435(); + if (b) + assert(true); + if (!b) + assert(false); + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gdc.test/compilable/aggr_alignment.d gcc-9.5.0/gcc/testsuite/gdc.test/compilable/aggr_alignment.d *** gcc-9.4.0/gcc/testsuite/gdc.test/compilable/aggr_alignment.d Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/gcc/testsuite/gdc.test/compilable/aggr_alignment.d Fri May 27 07:21:12 2022 *************** enum payloadOffset = C2.bytes.offsetof; *** 26,28 **** --- 26,49 ---- static assert(C2.int1.offsetof == payloadOffset + 8); static assert(C2.alignof == size_t.sizeof); static assert(__traits(classInstanceSize, C2) == payloadOffset + 12); + + align(8) struct PaddedStruct + { + bool flag; + align(2) S1 s1; + } + + static assert(PaddedStruct.s1.offsetof == 2); + static assert(PaddedStruct.alignof == 8); + static assert(PaddedStruct.sizeof == 16); + + align(1) struct UglyStruct + { + bool flag; + int i; + ubyte u; + } + + static assert(UglyStruct.i.offsetof == 4); + static assert(UglyStruct.alignof == 1); + static assert(UglyStruct.sizeof == 9); diff -Nrcpad gcc-9.4.0/gcc/testsuite/gdc.test/compilable/b19002.d gcc-9.5.0/gcc/testsuite/gdc.test/compilable/b19002.d *** gcc-9.4.0/gcc/testsuite/gdc.test/compilable/b19002.d Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gdc.test/compilable/b19002.d Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,12 ---- + module b19002; + + void printf(scope const char* format){} + + void main() + { + printf(__FILE__); + printf(__FILE_FULL_PATH__); + printf(__FUNCTION__); + printf(__PRETTY_FUNCTION__); + printf(__MODULE__); + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gdc.test/compilable/betterCarray.d gcc-9.5.0/gcc/testsuite/gdc.test/compilable/betterCarray.d *** gcc-9.4.0/gcc/testsuite/gdc.test/compilable/betterCarray.d Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/gcc/testsuite/gdc.test/compilable/betterCarray.d Fri May 27 07:21:12 2022 *************** int foo(int[] a, int i) *** 15,17 **** --- 15,27 ---- { return a[i]; } + + /**********************************************/ + // https://issues.dlang.org/show_bug.cgi?id=19234 + void issue19234() + { + static struct A {} + A[10] a; + A[10] b; + b[] = a[]; + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gdc.test/fail_compilation/extra-files/minimal/object.d gcc-9.5.0/gcc/testsuite/gdc.test/fail_compilation/extra-files/minimal/object.d *** gcc-9.4.0/gcc/testsuite/gdc.test/fail_compilation/extra-files/minimal/object.d Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gdc.test/fail_compilation/extra-files/minimal/object.d Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1 ---- + module object; diff -Nrcpad gcc-9.4.0/gcc/testsuite/gdc.test/fail_compilation/fail19911a.d gcc-9.5.0/gcc/testsuite/gdc.test/fail_compilation/fail19911a.d *** gcc-9.4.0/gcc/testsuite/gdc.test/fail_compilation/fail19911a.d Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gdc.test/fail_compilation/fail19911a.d Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,11 ---- + /* + REQUIRED_ARGS: -betterC + TEST_OUTPUT: + --- + fail_compilation/fail19911a.d(9): Error: function `fail19911a.fun` D-style variadic functions cannot be used with -betterC + --- + */ + + void fun(...) + { + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gdc.test/fail_compilation/fail19911b.d gcc-9.5.0/gcc/testsuite/gdc.test/fail_compilation/fail19911b.d *** gcc-9.4.0/gcc/testsuite/gdc.test/fail_compilation/fail19911b.d Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gdc.test/fail_compilation/fail19911b.d Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,13 ---- + /* + DFLAGS: + REQUIRED_ARGS: + EXTRA_SOURCES: extra-files/minimal/object.d + TEST_OUTPUT: + --- + fail_compilation/fail19911b.d(10): Error: function `fail19911b.fun` `object.TypeInfo_Tuple` could not be found, but is implicitly used in D-style variadic functions + --- + */ + + void fun(...) + { + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gdc.test/fail_compilation/fail19911c.d gcc-9.5.0/gcc/testsuite/gdc.test/fail_compilation/fail19911c.d *** gcc-9.4.0/gcc/testsuite/gdc.test/fail_compilation/fail19911c.d Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gdc.test/fail_compilation/fail19911c.d Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,17 ---- + /* + DFLAGS: + REQUIRED_ARGS: + TEST_OUTPUT: + --- + fail_compilation/fail19911c.d(15): Error: function `object.fun` `object.TypeInfo` could not be found, but is implicitly used in D-style variadic functions + --- + */ + + module object; + + class Object { } + class TypeInfo_Tuple { } + + void fun(...) + { + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gdc.test/fail_compilation/fail19922.d gcc-9.5.0/gcc/testsuite/gdc.test/fail_compilation/fail19922.d *** gcc-9.4.0/gcc/testsuite/gdc.test/fail_compilation/fail19922.d Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gdc.test/fail_compilation/fail19922.d Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,19 ---- + /* + DFLAGS: + REQUIRED_ARGS: + TEST_OUTPUT: + --- + fail_compilation/fail19922.d(17): Error: `object.TypeInfo_Class` could not be found, but is implicitly used + --- + */ + + module object; + + class Object {} + + void test() + { + Object o; + auto ti = typeid(o); + } + diff -Nrcpad gcc-9.4.0/gcc/testsuite/gdc.test/fail_compilation/fail19923.d gcc-9.5.0/gcc/testsuite/gdc.test/fail_compilation/fail19923.d *** gcc-9.4.0/gcc/testsuite/gdc.test/fail_compilation/fail19923.d Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gdc.test/fail_compilation/fail19923.d Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,19 ---- + /* + DFLAGS: + REQUIRED_ARGS: + TEST_OUTPUT: + --- + fail_compilation/fail19923.d(17): Error: `object.TypeInfo_Class` could not be found, but is implicitly used + --- + */ + + module object; + + class Object {} + + void test() + { + Object o; + auto ti = o.classinfo; + } + diff -Nrcpad gcc-9.4.0/gcc/testsuite/gdc.test/fail_compilation/fail22144.d gcc-9.5.0/gcc/testsuite/gdc.test/fail_compilation/fail22144.d *** gcc-9.4.0/gcc/testsuite/gdc.test/fail_compilation/fail22144.d Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gdc.test/fail_compilation/fail22144.d Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,14 ---- + // https://issues.dlang.org/show_bug.cgi?id=22144 + /* TEST_OUTPUT + --- + fail_compilation/fail22144.d(12): Error: cannot cast expression `zarray1` of type `int[0]` to `int[0][]` since sizes don't line up + --- + */ + void main() + { + int[0] zarray1; + int[0][0] zarray2; + + auto zslice1 = cast(int[0][])zarray1; // ICE -> Error + auto zslice2 = cast(int[0][])zarray2; // ICE -> OK + } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gfortran.dg/alloc_deferred_comp_1.f90 gcc-9.5.0/gcc/testsuite/gfortran.dg/alloc_deferred_comp_1.f90 *** gcc-9.4.0/gcc/testsuite/gfortran.dg/alloc_deferred_comp_1.f90 Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gfortran.dg/alloc_deferred_comp_1.f90 Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,18 ---- + ! { dg-do run } + ! + ! Test the fix for PR99125, where the array reference in the print + ! statement caused an ICE because the gimplifier complained about '0' + ! being used as an lvalue. + ! + ! Contributed by Gerhard Steinmetz + ! + program p + type t + character(:), allocatable :: a(:) + end type + type(t) :: x + character(8) :: c(3) = ['12 45 78','23 56 89','34 67 90'] + x%a = c + if (any (x%a(2:3) .ne. ['23 56 89','34 67 90'])) stop 1 + if (any (x%a(2:3)(4:5) .ne. ['56','67'])) stop 2 ! Bizarrely this worked. + end diff -Nrcpad gcc-9.4.0/gcc/testsuite/gfortran.dg/asan_associate_58.f90 gcc-9.5.0/gcc/testsuite/gfortran.dg/asan_associate_58.f90 *** gcc-9.4.0/gcc/testsuite/gfortran.dg/asan_associate_58.f90 Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gfortran.dg/asan_associate_58.f90 Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,19 ---- + ! { dg-do compile } + ! { dg-additional-options "-O0" } + ! + ! PR fortran/104228 + ! The code generated code for the program below wrongly pushed the Y character + ! length variable to both P and S scope, which was leading to an ICE when + ! address sanitizer was in effect + + program p + character(:), save, allocatable :: x(:) + call s + contains + subroutine s + associate (y => x) + y = [x] + end associate + end + end + diff -Nrcpad gcc-9.4.0/gcc/testsuite/gfortran.dg/asan_associate_59.f90 gcc-9.5.0/gcc/testsuite/gfortran.dg/asan_associate_59.f90 *** gcc-9.4.0/gcc/testsuite/gfortran.dg/asan_associate_59.f90 Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gfortran.dg/asan_associate_59.f90 Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,19 ---- + ! { dg-do compile } + ! { dg-additional-options "-O0" } + ! + ! PR fortran/104228 + ! The code generated code for the program below wrongly pushed the Y character + ! length variable to both P and S scope, which was leading to an ICE when + ! address sanitizer was in effect + + program p + character(:), allocatable :: x(:) + call s + contains + subroutine s + associate (y => x) + y = [x] + end associate + end + end + diff -Nrcpad gcc-9.4.0/gcc/testsuite/gfortran.dg/associate_54.f90 gcc-9.5.0/gcc/testsuite/gfortran.dg/associate_54.f90 *** gcc-9.4.0/gcc/testsuite/gfortran.dg/associate_54.f90 Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gfortran.dg/associate_54.f90 Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,34 ---- + ! { dg-do compile } + ! + ! Test the fix for PR93701. + ! + ! Contributed by Simon Brass + ! + module test + implicit none + + integer, parameter :: N_STATE = 1, & + TEST_STATE = 1 + + type :: test_t + integer, dimension(:), allocatable :: state + end type test_t + + contains + + subroutine test_allocate (obj) + class(test_t), intent(out) :: obj + allocate (obj%state(N_STATE)) + end subroutine test_allocate + + subroutine test_alter_state1 (obj, a) + class(test_t), intent(inout) :: obj + integer, intent(in) :: a + associate (state => obj%state(TEST_STATES)) ! { dg-error "is used as array" } + ! state = a + state(TEST_STATE) = a + end associate + end subroutine test_alter_state1 + + end module test + diff -Nrcpad gcc-9.4.0/gcc/testsuite/gfortran.dg/associate_55.f90 gcc-9.5.0/gcc/testsuite/gfortran.dg/associate_55.f90 *** gcc-9.4.0/gcc/testsuite/gfortran.dg/associate_55.f90 Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gfortran.dg/associate_55.f90 Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,35 ---- + ! { dg-do compile } + ! + ! Test the fix for PR93701. + ! + ! Contributed by Simon Brass + ! + module test + implicit none + + integer, parameter :: N_STATE = 1, & + TEST_STATE = 1 + + type :: test_t + integer, dimension(:), allocatable :: state + end type test_t + + contains + + subroutine test_allocate (obj) + class(test_t), intent(out) :: obj + allocate (obj%state(N_STATE)) + end subroutine test_allocate + + + subroutine test_alter_state2 (obj, a) + class(test_t), intent(inout) :: obj + integer, intent(in) :: a + associate (state => obj%state(TEST_STATES)) ! { dg-error "no IMPLICIT type" } + state = a ! { dg-error "vector-indexed target" } + ! state(TEST_STATE) = a + end associate + end subroutine test_alter_state2 + + end module test + diff -Nrcpad gcc-9.4.0/gcc/testsuite/gfortran.dg/associate_56.f90 gcc-9.5.0/gcc/testsuite/gfortran.dg/associate_56.f90 *** gcc-9.4.0/gcc/testsuite/gfortran.dg/associate_56.f90 Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gfortran.dg/associate_56.f90 Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,36 ---- + ! { dg-do compile } + ! + ! Test the fix for PR93701. + ! + ! Contributed by Simon Brass + ! + module test + implicit none + + integer, parameter :: N_STATE = 1, & + TEST_STATE = 1 + + type :: test_t + integer, dimension(:), allocatable :: state + end type test_t + + contains + + subroutine test_allocate (obj) + class(test_t), intent(out) :: obj + allocate (obj%state(N_STATE)) + end subroutine test_allocate + + + subroutine test_alter_state2 (obj, a) + class(test_t), intent(inout) :: obj + integer, intent(in) :: a + integer, dimension(2) :: TEST_STATES = [1,2] + associate (state => obj%state(TEST_STATES)) + state = a ! { dg-error "vector-indexed target" } + state(TEST_STATE) = a ! { dg-error "vector-indexed target" } + end associate + end subroutine test_alter_state2 + + end module test + diff -Nrcpad gcc-9.4.0/gcc/testsuite/gfortran.dg/associate_58.f90 gcc-9.5.0/gcc/testsuite/gfortran.dg/associate_58.f90 *** gcc-9.4.0/gcc/testsuite/gfortran.dg/associate_58.f90 Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gfortran.dg/associate_58.f90 Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,21 ---- + ! { dg-do compile } + ! + ! PR fortran/104570 + ! The following used to cause an ICE because the string length + ! evaluation of the (y) expression was not prepared to handle + ! a non-scalar expression. + + program p + character(:), allocatable :: x(:) + x = ['abc'] + call s + contains + subroutine s + associate (y => x) + associate (z => (y)) + print *, z + end associate + end associate + end + end + diff -Nrcpad gcc-9.4.0/gcc/testsuite/gfortran.dg/associated_target_7.f90 gcc-9.5.0/gcc/testsuite/gfortran.dg/associated_target_7.f90 *** gcc-9.4.0/gcc/testsuite/gfortran.dg/associated_target_7.f90 Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gfortran.dg/associated_target_7.f90 Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,87 ---- + ! { dg-do run } + ! + ! associated_target_7.f90: Test the fix for PR98565. + ! + ! Contributed by Yves Secretan + ! + MODULE PS_SN0N_M + + IMPLICIT NONE + PRIVATE + + TYPE, PUBLIC :: DT_GRID_T + INTEGER :: NNT + CONTAINS + ! PASS + END TYPE DT_GRID_T + + TYPE, PUBLIC :: LM_ELEM_T + CLASS(DT_GRID_T), POINTER :: PGRID + CONTAINS + PROCEDURE, PUBLIC :: REQPGRID => LM_ELEM_REGPGRID + END TYPE LM_ELEM_T + + TYPE, PUBLIC :: PS_SN0N_T + CLASS(DT_GRID_T), POINTER :: PGRID + + CONTAINS + PROCEDURE, PUBLIC :: ASGOELE => PS_SN0N_ASGOELE + END TYPE PS_SN0N_T + + + CONTAINS + !------------------------------------------------------------------------ + !------------------------------------------------------------------------ + FUNCTION LM_ELEM_REGPGRID(SELF) RESULT(PGRID) + CLASS(DT_GRID_T), POINTER :: PGRID + CLASS(LM_ELEM_T), INTENT(IN) :: SELF + PGRID => SELF%PGRID + RETURN + END FUNCTION LM_ELEM_REGPGRID + + !------------------------------------------------------------------------ + !------------------------------------------------------------------------ + FUNCTION PS_SN0N_ASGOELE(SELF, OELE) RESULT(ERMSG) + + INTEGER :: ERMSG + CLASS(PS_SN0N_T), INTENT(IN) :: SELF + CLASS(LM_ELEM_T), INTENT(IN) :: OELE + + !CLASS(DT_GRID_T), POINTER :: PGRID + LOGICAL :: ISOK + !------------------------------------------------------------------------ + + ! ASSOCIATED with temp variable compiles + !PGRID => OELE%REQPGRID() + !ISOK = ASSOCIATED(SELF%PGRID, PGRID) + + ! ASSOCIATE without temp variable crashes with ICE + ISOK = ASSOCIATED(SELF%PGRID, OELE%REQPGRID()) + ERMSG = 0 + IF (ISOK) ERMSG = 1 + + RETURN + END FUNCTION PS_SN0N_ASGOELE + + END MODULE PS_SN0N_M + + + USE PS_SN0N_M + CLASS(PS_SN0N_T), ALLOCATABLE :: SELF + CLASS(LM_ELEM_T), ALLOCATABLE :: OELE + TYPE (DT_GRID_T), TARGET :: GRID1 = DT_GRID_T (42) + TYPE (DT_GRID_T), TARGET :: GRID2 = DT_GRID_T (84) + + ALLOCATE (PS_SN0N_T :: SELF) + ALLOCATE (LM_ELEM_T :: OELE) + SELF%PGRID => GRID1 + + OELE%PGRID => NULL () + IF (SELF%ASGOELE (OELE) .NE. 0) STOP 1 + + OELE%PGRID => GRID2 + IF (SELF%ASGOELE (OELE) .NE. 0) STOP 2 + + OELE%PGRID => GRID1 + IF (SELF%ASGOELE (OELE) .NE. 1) STOP 3 + END diff -Nrcpad gcc-9.4.0/gcc/testsuite/gfortran.dg/bound_simplification_7.f90 gcc-9.5.0/gcc/testsuite/gfortran.dg/bound_simplification_7.f90 *** gcc-9.4.0/gcc/testsuite/gfortran.dg/bound_simplification_7.f90 Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gfortran.dg/bound_simplification_7.f90 Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,18 ---- + ! { dg-do compile } + ! PR fortran/103392 - ICE in simplify_bound + + program p + integer, allocatable :: a(1:1) ! { dg-error "deferred shape or assumed rank" } + integer :: b(1) = lbound(a) ! { dg-error "does not reduce" } + integer :: c(1) = ubound(a) ! { dg-error "does not reduce" } + end + + subroutine s(x, y) + type t + integer :: i(3) + end type t + type(t), pointer :: x(:) + type(t), allocatable :: y(:) + integer, parameter :: m(1) = ubound (x(1)% i) + integer :: n(1) = ubound (y(1)% i) + end subroutine s diff -Nrcpad gcc-9.4.0/gcc/testsuite/gfortran.dg/bounds_check_23.f90 gcc-9.5.0/gcc/testsuite/gfortran.dg/bounds_check_23.f90 *** gcc-9.4.0/gcc/testsuite/gfortran.dg/bounds_check_23.f90 Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gfortran.dg/bounds_check_23.f90 Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,18 ---- + ! { dg-do run } + ! { dg-options "-fcheck=bounds -fdump-tree-original" } + ! PR fortran/98490 - out of bounds in array constructor with implied do loop + + program test + implicit none + call sub('Lorem ipsum') + contains + subroutine sub( text ) + character(len=*), intent(in) :: text + character(len=1), allocatable :: c(:) + integer :: i + c = [ ( text(i:i), i = 1, len(text) ) ] + if (c(1) /= 'L') stop 1 + end subroutine sub + end program test + + ! { dg-final { scan-tree-dump-times "Substring out of bounds:" 2 "original" } } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gfortran.dg/class_dummy_6.f90 gcc-9.5.0/gcc/testsuite/gfortran.dg/class_dummy_6.f90 *** gcc-9.4.0/gcc/testsuite/gfortran.dg/class_dummy_6.f90 Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gfortran.dg/class_dummy_6.f90 Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,65 ---- + ! { dg-do run } + ! + ! Test the fix for PR99819 - explicit shape class arrays in different + ! procedures caused an ICE. + ! + ! Contributed by Gerhard Steinmetz + ! + program p + type t + integer :: i + end type + class(t), allocatable :: dum1(:), dum2(:), dum3(:,:) + + allocate (t :: dum1(3), dum2(10), dum3(2,5)) + dum2%i = [1,2,3,4,5,6,7,8,9,10] + dum3%i = reshape ([1,2,3,4,5,6,7,8,9,10],[2,5]) + + ! Somewhat elaborated versions of the PR procedures. + if (f (dum1, dum2, dum3) .ne. 10) stop 1 + if (g (dum1) .ne. 3) stop 2 + + ! Test the original versions of the procedures. + if (f_original (dum1, dum2) .ne. 3) stop 3 + if (g_original (dum2) .ne. 10) stop 4 + + contains + integer function f(x, y, z) + class(t) :: x(:) + class(t) :: y(size( x)) + class(t) :: z(2,*) + if (size (y) .ne. 3) stop 5 + if (size (z) .ne. 0) stop 6 + select type (y) + type is (t) + f = 1 + if (any (y%i .ne. [1,2,3])) stop 7 + class default + f = 0 + end select + select type (z) + type is (t) + f = f*10 + if (any (z(1,1:4)%i .ne. [1,3,5,7])) stop 8 + class default + f = 0 + end select + end + integer function g(z) + class(t) :: z(:) + type(t) :: u(size(z)) + g = size (u) + end + + integer function f_original(x, y) + class(t) :: x(:) + class(*) :: y(size (x)) + f_original = size (y) + end + + integer function g_original(z) + class(*) :: z(:) + type(t) :: u(size(z)) + g_original = size (u) + end + end diff -Nrcpad gcc-9.4.0/gcc/testsuite/gfortran.dg/class_dummy_7.f90 gcc-9.5.0/gcc/testsuite/gfortran.dg/class_dummy_7.f90 *** gcc-9.4.0/gcc/testsuite/gfortran.dg/class_dummy_7.f90 Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gfortran.dg/class_dummy_7.f90 Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,60 ---- + ! { dg-do run } + ! + ! Test the fix for PR46691 - enable class assumed size arrays + ! + ! Reported by Tobias Burnus + ! from http://j3-fortran.org/pipermail/j3/2010-December/004084.html + ! submitted by Robert Corbett. + ! + MODULE TYPES + PRIVATE + PUBLIC REC, REC2 + + TYPE REC + INTEGER A + END TYPE + + TYPE, EXTENDS(REC) :: REC2 + INTEGER B + END TYPE + END + + SUBROUTINE SUB1(A, N) + USE TYPES + CLASS(REC), INTENT(IN) :: A(*) + INTERFACE + SUBROUTINE SUB2(A, N, IARRAY) + USE TYPES + TYPE(REC) A(*) + INTEGER :: N, IARRAY(N) + END + END INTERFACE + + CALL SUB2(A, N,[1,2,2,3,3,4,4,5,5,6]) + select type (B => A(1:N)) + type is (REC2) + call SUB2(B%REC,N,[1,2,3,4,5,6,7,8,9,10]) + end select + + END + + SUBROUTINE SUB2(A, N, IARRAY) + USE TYPES + TYPE(REC) A(*) + INTEGER :: N, IARRAY(N) + if (any (A(:N)%A .ne. IARRAY(:N))) stop 1 + END + + PROGRAM MAIN + USE TYPES + CLASS(REC), ALLOCATABLE :: A(:) + INTERFACE + SUBROUTINE SUB1(A, N) + USE TYPES + CLASS(REC), INTENT(IN) :: A(*) + END SUBROUTINE + END INTERFACE + + A = [ (REC2(I, I+1), I = 1, 10) ] + CALL SUB1(A, 10) + END diff -Nrcpad gcc-9.4.0/gcc/testsuite/gfortran.dg/dec_union_12.f90 gcc-9.5.0/gcc/testsuite/gfortran.dg/dec_union_12.f90 *** gcc-9.4.0/gcc/testsuite/gfortran.dg/dec_union_12.f90 Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gfortran.dg/dec_union_12.f90 Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,43 ---- + ! { dg-do compile } + ! { dg-options "-std=legacy -ffree-form -finit-local-zero -finit-derived -fdec-structure" } + ! + ! PR fortran/105310 + ! + ! Test that gfc_conv_union_initializer does not cause an ICE when called + ! to build the constructor for a field which triggers a vector resize. + ! + + program dec_union_12 + implicit none + STRUCTURE /foo8u/ + ! 8 fields + INTEGER(4) :: a,b,c,d,e,f,g,h + UNION + MAP + ENDMAP + ENDUNION + ENDSTRUCTURE + STRUCTURE /foo16u/ + ! 16 fields + INTEGER(4) :: a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p + UNION + MAP + ENDMAP + ENDUNION + ENDSTRUCTURE + STRUCTURE /foo32u/ + ! 32 fields + INTEGER(4) :: a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p + INTEGER(4) :: aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap + UNION + MAP + ENDMAP + ENDUNION + ENDSTRUCTURE + record /foo8u/ bar8u + record /foo16u/ bar16u + record /foo32u/ bar32u + bar8u.a = 1 + bar16u.a = 1 + bar32u.a = 1 + end diff -Nrcpad gcc-9.4.0/gcc/testsuite/gfortran.dg/deferred_character_35.f90 gcc-9.5.0/gcc/testsuite/gfortran.dg/deferred_character_35.f90 *** gcc-9.4.0/gcc/testsuite/gfortran.dg/deferred_character_35.f90 Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gfortran.dg/deferred_character_35.f90 Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,18 ---- + ! { dg-do compile } + ! + ! Test the fix for PR93794, where the ASSOCIATE statement ICED on the + ! deferred character length, pointer component. + ! + ! Contributed by Gerhard Steinmetz + ! + program p + type t + character(:), pointer :: a + end type + type(t) :: z + character(4), target :: c = 'abcd' + z%a => c + associate (y => z%a) + print *, y + end associate + end diff -Nrcpad gcc-9.4.0/gcc/testsuite/gfortran.dg/do_check_19.f90 gcc-9.5.0/gcc/testsuite/gfortran.dg/do_check_19.f90 *** gcc-9.4.0/gcc/testsuite/gfortran.dg/do_check_19.f90 Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gfortran.dg/do_check_19.f90 Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,21 ---- + ! { dg-do compile } + ! { dg-prune-output "Obsolescent feature: Alternate-return argument" } + ! PR fortran/103717 - ICE in doloop_code + ! Contributed by G.Steinmetz + + program p + integer :: i + do i = 1, 2 + call s(i) ! { dg-error "Missing alternate return specifier" } + end do + contains + subroutine s(*) + end + end + + recursive subroutine s(*) + integer :: i + do i = 1, 2 + call s(i) ! { dg-error "Missing alternate return specifier" } + end do + end diff -Nrcpad gcc-9.4.0/gcc/testsuite/gfortran.dg/elemental_function_5.f90 gcc-9.5.0/gcc/testsuite/gfortran.dg/elemental_function_5.f90 *** gcc-9.4.0/gcc/testsuite/gfortran.dg/elemental_function_5.f90 Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gfortran.dg/elemental_function_5.f90 Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,46 ---- + ! { dg-do compile } + ! + ! Test the fix for PR98472. + ! + ! Contributed by Rui Coelho + ! + module a + type, abstract :: base + contains + procedure(elem_func), deferred, nopass :: add + end type base + + type, extends(base) :: derived + contains + procedure, nopass :: add => add_derived + end type derived + + abstract interface + elemental function elem_func(x, y) result(out) + integer, intent(in) :: x, y + integer :: out + end function elem_func + end interface + + contains + elemental function add_derived(x, y) result(out) + integer, intent(in) :: x, y + integer :: out + out = x + y + end function add_derived + end module a + + program main + use a + call foo + contains + subroutine foo + integer, dimension(:), allocatable :: vec + class(base), allocatable :: instance + allocate(derived :: instance) + allocate(vec, source=instance%add([1, 2], [1, 2])) ! ICE here + if (any (vec .ne. [2, 4])) stop 1 + end + end program main + + diff -Nrcpad gcc-9.4.0/gcc/testsuite/gfortran.dg/implied_do_io_7.f90 gcc-9.5.0/gcc/testsuite/gfortran.dg/implied_do_io_7.f90 *** gcc-9.4.0/gcc/testsuite/gfortran.dg/implied_do_io_7.f90 Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gfortran.dg/implied_do_io_7.f90 Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,16 ---- + ! { dg-do run } + ! PR 100227 - this was falsely optimized, leading to nonsense results. + ! Original test case by "Mathieu". + + program p + implicit none + integer, parameter :: nbmode = 3 + integer :: k + real :: mass(nbmode*2) + character (len=80) :: line + do k = 1, nbmode*2 + mass(k) = k + end do + write (unit=line,fmt='(*(F6.2))') (mass(k+k), k=1,nbmode) + if (line /= ' 2.00 4.00 6.00') stop 1 + end program diff -Nrcpad gcc-9.4.0/gcc/testsuite/gfortran.dg/inline_matmul_25.f90 gcc-9.5.0/gcc/testsuite/gfortran.dg/inline_matmul_25.f90 *** gcc-9.4.0/gcc/testsuite/gfortran.dg/inline_matmul_25.f90 Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gfortran.dg/inline_matmul_25.f90 Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,9 ---- + ! { dg-do compile } + ! { dg-options "-ffrontend-optimize" } + ! PR fortran/99839 - ICE in inline_matmul_assign + + program p + real :: x(3, 3) = 1.0 + class(*), allocatable :: z(:, :) + z = matmul(x, x) + end diff -Nrcpad gcc-9.4.0/gcc/testsuite/gfortran.dg/intent_out_14.f90 gcc-9.5.0/gcc/testsuite/gfortran.dg/intent_out_14.f90 *** gcc-9.4.0/gcc/testsuite/gfortran.dg/intent_out_14.f90 Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gfortran.dg/intent_out_14.f90 Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,24 ---- + ! { dg-do run } + ! PR fortran/102287 - optional allocatable DT array arguments (intent out) + + module m + type t + integer, allocatable :: a + end type t + contains + subroutine a (x, v) + type(t), optional, allocatable, intent(out) :: x(:) + type(t), optional, intent(out) :: v(:) + call b (x, v) + end subroutine a + + subroutine b (y, w) + type(t), optional, allocatable, intent(out) :: y(:) + type(t), optional, intent(out) :: w(:) + end subroutine b + end module m + + program p + use m + call a () + end diff -Nrcpad gcc-9.4.0/gcc/testsuite/gfortran.dg/intrinsic_pack_6.f90 gcc-9.5.0/gcc/testsuite/gfortran.dg/intrinsic_pack_6.f90 *** gcc-9.4.0/gcc/testsuite/gfortran.dg/intrinsic_pack_6.f90 Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gfortran.dg/intrinsic_pack_6.f90 Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,57 ---- + ! { dg-do run } + ! PR libfortran/103634 - Runtime crash with PACK on zero-sized arrays + ! Exercise PACK intrinsic for cases when it calls pack_internal + + program p + implicit none + type t + real :: r(24) = -99. + end type + type(t), allocatable :: new(:), old(:), vec(:) + logical, allocatable :: mask(:) + integer :: n, m + ! m = 1 ! works + m = 0 ! failed with SIGSEGV in pack_internal + do m = 0, 2 + print *, m + allocate (old(m), mask(m), vec(m)) + if (m > 0) vec(m)% r(1) = 42 + mask(:) = .true. + n = count (mask) + allocate (new(n)) + + mask(:) = .false. + if (size (pack (old, mask)) /= 0) stop 1 + mask(:) = .true. + if (size (pack (old, mask)) /= m) stop 2 + new(:) = pack (old, mask) ! this used to segfault for m=0 + + mask(:) = .false. + if (size (pack (old, mask, vector=vec)) /= m) stop 3 + new(:) = t() + new(:) = pack (old, mask, vector=vec) ! this used to segfault for m=0 + if (m > 0) then + if ( new( m )% r(1) /= 42) stop 4 + if (any (new(:m-1)% r(1) /= -99)) stop 5 + end if + + if (m > 0) mask(m) = .true. + if (size (pack (old, mask, vector=vec)) /= m) stop 6 + new(:) = t() + new(:) = pack (old, mask, vector=vec) ! this used to segfault for m=0 + if (m > 0) then + if (new(1)% r(1) /= -99) stop 7 + end if + if (m > 1) then + if (new(m)% r(1) /= 42) stop 8 + end if + + if (size (pack (old(:0), mask(:0), vector=vec)) /= m) stop 9 + new(:) = t() + new(:) = pack (old(:0), mask(:0), vector=vec) ! did segfault for m=0 + if (m > 0) then + if (new(m)% r(1) /= 42) stop 10 + end if + deallocate (old, mask, new, vec) + end do + end diff -Nrcpad gcc-9.4.0/gcc/testsuite/gfortran.dg/overload_4.f90 gcc-9.5.0/gcc/testsuite/gfortran.dg/overload_4.f90 *** gcc-9.4.0/gcc/testsuite/gfortran.dg/overload_4.f90 Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gfortran.dg/overload_4.f90 Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,27 ---- + ! { dg-do run } + ! { dg-additional-options "-Wno-intrinsic-shadow" } + ! PR fortran/103782 - ICE overloading an intrinsic like dble or real + ! Contributed by Urban Jost + + program runtest + implicit none + interface dble + procedure to_double + end interface dble + interface real + procedure floor ! not really FLOOR... + end interface real + if (any (dble ([10.0d0,20.0d0]) - [10.0d0,20.0d0] /= 0.d0)) stop 1 + if (any (real ([1.5,2.5]) - [1.5,2.5] /= 0.0 )) stop 2 + contains + elemental function to_double (valuein) result(d_out) + doubleprecision,intent(in) :: valuein + doubleprecision :: d_out + d_out=valuein + end function to_double + elemental function floor (valuein) result(d_out) ! not really FLOOR... + real, intent(in) :: valuein + real :: d_out + d_out=valuein + end function floor + end program runtest diff -Nrcpad gcc-9.4.0/gcc/testsuite/gfortran.dg/pdt_26.f03 gcc-9.5.0/gcc/testsuite/gfortran.dg/pdt_26.f03 *** gcc-9.4.0/gcc/testsuite/gfortran.dg/pdt_26.f03 Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/gcc/testsuite/gfortran.dg/pdt_26.f03 Fri May 27 07:21:12 2022 *************** *** 2,8 **** ! { dg-options "-fdump-tree-original" } ! ! Test the fix for PR83567 in which the parameterized component 'foo' was ! ! being deallocated before return from 'addw', with consequent segfault in ! the main program. ! ! Contributed by Berke Durak --- 2,8 ---- ! { dg-options "-fdump-tree-original" } ! ! Test the fix for PR83567 in which the parameterized component 'foo' was ! ! being deallocated before return from 'addw', with consequent segfault in ! the main program. ! ! Contributed by Berke Durak *************** program test_pdt *** 43,46 **** if (any (c(1)%foo .ne. [13,15,17])) STOP 2 end program test_pdt ! { dg-final { scan-tree-dump-times "__builtin_free" 8 "original" } } ! ! { dg-final { scan-tree-dump-times "__builtin_malloc" 9 "original" } } --- 43,46 ---- if (any (c(1)%foo .ne. [13,15,17])) STOP 2 end program test_pdt ! { dg-final { scan-tree-dump-times "__builtin_free" 8 "original" } } ! ! { dg-final { scan-tree-dump-times "__builtin_malloc" 8 "original" } } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gfortran.dg/pdt_31.f03 gcc-9.5.0/gcc/testsuite/gfortran.dg/pdt_31.f03 *** gcc-9.4.0/gcc/testsuite/gfortran.dg/pdt_31.f03 Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gfortran.dg/pdt_31.f03 Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,26 ---- + ! { dg-do run } + ! + ! Test the fix for PR100110, in which 'obj' was not being initialized. + ! + ! Contributed by Xiao Liu + ! + program p + implicit none + type t(n) + integer, len :: n + integer :: arr(n, n) + end type + + type(t(2)) :: obj + + obj%arr = reshape ([1,2,3,4],[2,2]) + if (obj%n .ne. 2) stop 1 + if (any (shape(obj%arr) .ne. [2,2])) stop 2 + call test() + contains + subroutine test() + if (obj%n .ne. 2) stop 3 + if (any (shape(obj%arr) .ne. [2,2])) stop 4 + if (any (reshape (obj%arr, [4]) .ne. [1,2,3,4])) stop 5 + end subroutine + end program diff -Nrcpad gcc-9.4.0/gcc/testsuite/gfortran.dg/pr100949.f90 gcc-9.5.0/gcc/testsuite/gfortran.dg/pr100949.f90 *** gcc-9.4.0/gcc/testsuite/gfortran.dg/pr100949.f90 Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gfortran.dg/pr100949.f90 Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,10 ---- + ! { dg-do compile } + ! PR fortran/100949 - ICE in gfc_conv_expr_present, at fortran/trans-expr.c:1975 + + subroutine s + entry f + type t + end type + class(t), allocatable :: y, z + allocate (z, mold=y) + end diff -Nrcpad gcc-9.4.0/gcc/testsuite/gfortran.dg/pr101327.f90 gcc-9.5.0/gcc/testsuite/gfortran.dg/pr101327.f90 *** gcc-9.4.0/gcc/testsuite/gfortran.dg/pr101327.f90 Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gfortran.dg/pr101327.f90 Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,11 ---- + ! { dg-do compile } + ! PR fortran/101327 - ICE in find_array_element, at fortran/expr.c:1355 + + subroutine s + integer, parameter :: n([2]) = [1, 2] ! { dg-error "must be scalar" } + type t + integer :: a(n(1):n(2)) + end type + end + + ! { dg-error "cannot be automatic or of deferred shape" " " { target *-*-* } 5 } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gfortran.dg/pr102860.f90 gcc-9.5.0/gcc/testsuite/gfortran.dg/pr102860.f90 *** gcc-9.4.0/gcc/testsuite/gfortran.dg/pr102860.f90 Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gfortran.dg/pr102860.f90 Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,10 ---- + ! PR middle-end/102860 + ! { dg-do compile { target { powerpc*-*-* } } } + ! { dg-require-effective-target powerpc_vsx_ok } + ! { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power9" } } + ! { dg-options "-O2 -mcpu=power9" } + + function foo(a) + integer(kind=4) :: a(1024) + a(:) = modulo (a(:), 39) + end function diff -Nrcpad gcc-9.4.0/gcc/testsuite/gfortran.dg/pr103588.f90 gcc-9.5.0/gcc/testsuite/gfortran.dg/pr103588.f90 *** gcc-9.4.0/gcc/testsuite/gfortran.dg/pr103588.f90 Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gfortran.dg/pr103588.f90 Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,8 ---- + ! { dg-do compile } + ! PR fortran/103588 - ICE: Simplification error in gfc_ref_dimen_size + ! Contributed by G.Steinmetz + + program p + integer, parameter :: a(:) = [1,2] ! { dg-error "cannot be automatic or of deferred shape" } + integer :: b(2) = a(::a(1)) ! { dg-error "Invalid" } + end diff -Nrcpad gcc-9.4.0/gcc/testsuite/gfortran.dg/pr103606.f90 gcc-9.5.0/gcc/testsuite/gfortran.dg/pr103606.f90 *** gcc-9.4.0/gcc/testsuite/gfortran.dg/pr103606.f90 Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gfortran.dg/pr103606.f90 Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,12 ---- + ! { dg-do compile } + ! PR fortran/103606 - ICE in resolve_fl_procedure + ! Contributed by G.Steinmetz + + program p + type t + end type + contains + elemental function f() result(z) ! { dg-error "CLASS variable" } + class(t) :: z + end + end diff -Nrcpad gcc-9.4.0/gcc/testsuite/gfortran.dg/pr103607.f90 gcc-9.5.0/gcc/testsuite/gfortran.dg/pr103607.f90 *** gcc-9.4.0/gcc/testsuite/gfortran.dg/pr103607.f90 Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gfortran.dg/pr103607.f90 Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,12 ---- + ! { dg-do compile } + ! PR fortran/103607 - ICE in do_subscript, at fortran/frontend-passes.c:2927 + ! Contributed by G.Steinmetz + + program p + integer :: i, x(abs(2.)) ! { dg-error "must be of INTEGER type" } + do i = 1, 2 + x(i) = 0 + end do + end + + ! { dg-prune-output "must have constant shape" } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gfortran.dg/pr104849.f90 gcc-9.5.0/gcc/testsuite/gfortran.dg/pr104849.f90 *** gcc-9.4.0/gcc/testsuite/gfortran.dg/pr104849.f90 Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gfortran.dg/pr104849.f90 Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,9 ---- + ! { dg-do compile } + ! PR fortran/104849 - ICE in find_array_section + ! Contributed by G.Steinmetz + + program p + integer, parameter :: a(:) = [1, 2] ! { dg-error "deferred shape" } + integer :: x(2) + data x /a(:)/ ! { dg-error "Invalid" } + end diff -Nrcpad gcc-9.4.0/gcc/testsuite/gfortran.dg/pr105230.f90 gcc-9.5.0/gcc/testsuite/gfortran.dg/pr105230.f90 *** gcc-9.4.0/gcc/testsuite/gfortran.dg/pr105230.f90 Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gfortran.dg/pr105230.f90 Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,8 ---- + ! { dg-do compile } + ! PR fortran/105230 - ICE in find_array_section + ! Contributed by G.Steinmetz + + program p + integer, parameter :: a(:) = [1, 2] ! { dg-error "deferred shape" } + print *, reshape([3, 4], a(1:2)) + end diff -Nrcpad gcc-9.4.0/gcc/testsuite/gfortran.dg/pr82314.f90 gcc-9.5.0/gcc/testsuite/gfortran.dg/pr82314.f90 *** gcc-9.4.0/gcc/testsuite/gfortran.dg/pr82314.f90 Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gfortran.dg/pr82314.f90 Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,11 ---- + ! { dg-do run } + ! PR fortran/82314 - ICE in gfc_conv_expr_descriptor + + program p + implicit none + integer, parameter :: karray(merge(3,7,.true.):merge(3,7,.false.)) = 1 + integer, parameter :: i = size (karray) + integer, parameter :: l = lbound (karray,1) + integer, parameter :: u = ubound (karray,1) + if (l /= 3 .or. u /= 7 .or. i /= 5) stop 1 + end diff -Nrcpad gcc-9.4.0/gcc/testsuite/gfortran.dg/proc_ptr_52.f90 gcc-9.5.0/gcc/testsuite/gfortran.dg/proc_ptr_52.f90 *** gcc-9.4.0/gcc/testsuite/gfortran.dg/proc_ptr_52.f90 Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gfortran.dg/proc_ptr_52.f90 Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,72 ---- + ! { dg-do run } + ! + ! Test the fix for PRs93924 & 93925. + ! + ! Contributed by Martin Stein + ! + module cs + + implicit none + + integer, target :: integer_target + + abstract interface + function classStar_map_ifc(x) result(y) + class(*), pointer :: y + class(*), target, intent(in) :: x + end function classStar_map_ifc + end interface + + contains + + function fun(x) result(y) + class(*), pointer :: y + class(*), target, intent(in) :: x + select type (x) + type is (integer) + integer_target = x ! Deals with dangling target. + y => integer_target + class default + y => null() + end select + end function fun + + function apply(f, x) result(y) + procedure(classStar_map_ifc) :: f + integer, intent(in) :: x + integer :: y + class(*), pointer :: p + y = 0 ! Get rid of 'y' undefined warning + p => f (x) + select type (p) + type is (integer) + y = p + end select + end function apply + + function selector() result(f) + procedure(classStar_map_ifc), pointer :: f + f => fun + end function selector + + end module cs + + + program classStar_map + + use cs + implicit none + + integer :: x, y + procedure(classStar_map_ifc), pointer :: f + + x = 123654 + f => selector () ! Fixed by second chunk in patch + y = apply (f, x) ! Fixed by first chunk in patch + if (x .ne. y) stop 1 + + x = 2 * x + y = apply (fun, x) ! PR93925; fixed as above + if (x .ne. y) stop 2 + + end program classStar_map diff -Nrcpad gcc-9.4.0/gcc/testsuite/gfortran.dg/recursive_reference_3.f90 gcc-9.5.0/gcc/testsuite/gfortran.dg/recursive_reference_3.f90 *** gcc-9.4.0/gcc/testsuite/gfortran.dg/recursive_reference_3.f90 Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gfortran.dg/recursive_reference_3.f90 Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,14 ---- + ! { dg-do compile } + ! { dg-options "-std=f2018" } + ! PR fortran/105138 - recursive procedures and shadowing of intrinsics + + RECURSIVE FUNCTION LOG_GAMMA(Z) RESULT(RES) + COMPLEX, INTENT(IN) :: Z + COMPLEX :: RES + RES = LOG_GAMMA(Z) + END FUNCTION LOG_GAMMA + + recursive subroutine date_and_time (z) + real :: z + if (z > 0) call date_and_time (z-1) + end subroutine date_and_time diff -Nrcpad gcc-9.4.0/gcc/testsuite/gfortran.dg/shape_11.f90 gcc-9.5.0/gcc/testsuite/gfortran.dg/shape_11.f90 *** gcc-9.4.0/gcc/testsuite/gfortran.dg/shape_11.f90 Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gfortran.dg/shape_11.f90 Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,16 ---- + ! { dg-do compile } + ! { dg-options "-fdump-tree-original" } + ! PR fortran/103610 - ICE while simplifying SHAPE + ! Contributed by G.Steinmetz + + program p + integer, parameter :: a(-1) = 1 + integer, parameter :: b(1) = maskl(shape(a)) + integer, parameter :: c(1) = shape(a) + integer, parameter :: d(1) = maskr(shape(a)) + if (b(1) /= 0) stop 1 + if (c(1) /= 0) stop 2 + if (d(1) /= 0) stop 3 + end + + ! { dg-final { scan-tree-dump-not "_gfortran_stop_numeric" "original" } } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gfortran.dg/structure_constructor_17.f90 gcc-9.5.0/gcc/testsuite/gfortran.dg/structure_constructor_17.f90 *** gcc-9.4.0/gcc/testsuite/gfortran.dg/structure_constructor_17.f90 Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gfortran.dg/structure_constructor_17.f90 Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,21 ---- + ! { dg-do compile } + ! + ! Test the fix for PR97612. + ! + ! Contributed by Martin Stein + ! + program constructor_allocatable + implicit none + + type :: s + integer, dimension(:), allocatable :: u + end type s + + type :: t + type(s), dimension(:), allocatable :: x + end type t + + type(t) :: a = t() + if (allocated (a%x)) stop 1 + + end program constructor_allocatable diff -Nrcpad gcc-9.4.0/gcc/testsuite/gfortran.dg/substr_6.f90 gcc-9.5.0/gcc/testsuite/gfortran.dg/substr_6.f90 *** gcc-9.4.0/gcc/testsuite/gfortran.dg/substr_6.f90 Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/gcc/testsuite/gfortran.dg/substr_6.f90 Fri May 27 07:21:12 2022 *************** CHARACTER(5), parameter :: c0(1) = (/ "1 *** 6,11 **** --- 6,13 ---- CHARACTER*5 c(1) CHARACTER(1), parameter :: c1(5) = (/ "1", "2", "3", ACHAR(0), "5" /) + c = c0(1)(-5:-8) + if (c(1) /= " ") STOP 1 c = (/ c0(1)(1:5) /) do i=1,5 if (c(1)(i:i) /= c1(i)) STOP 2 diff -Nrcpad gcc-9.4.0/gcc/testsuite/gfortran.dg/transfer_check_6.f90 gcc-9.5.0/gcc/testsuite/gfortran.dg/transfer_check_6.f90 *** gcc-9.4.0/gcc/testsuite/gfortran.dg/transfer_check_6.f90 Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gfortran.dg/transfer_check_6.f90 Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,11 ---- + ! { dg-do compile } + ! PR fortran/104227 - ICE virtual memory exhausted + ! Contributed by G.Steinmetz + + program p + type t + end type + type(t) :: x(2) + print *, transfer(1, x) ! { dg-error "shall not have storage size 0" } + x = transfer(1, x) ! { dg-error "shall not have storage size 0" } + end diff -Nrcpad gcc-9.4.0/gcc/testsuite/gfortran.dg/transfer_simplify_11.f90 gcc-9.5.0/gcc/testsuite/gfortran.dg/transfer_simplify_11.f90 *** gcc-9.4.0/gcc/testsuite/gfortran.dg/transfer_simplify_11.f90 Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/gcc/testsuite/gfortran.dg/transfer_simplify_11.f90 Fri May 27 07:21:12 2022 *************** *** 4,8 **** integer, parameter :: N = 2 character(len=1) :: chr(N) chr = transfer(repeat("x",ncopies=N),[character(len=1) ::], N) ! if (chr(1) /= 'x' .and. chr(2) /= 'x') STOP 1 end --- 4,8 ---- integer, parameter :: N = 2 character(len=1) :: chr(N) chr = transfer(repeat("x",ncopies=N),[character(len=1) ::], N) ! if (chr(1) /= 'x' .or. chr(2) /= 'x') STOP 1 end diff -Nrcpad gcc-9.4.0/gcc/testsuite/gfortran.dg/transfer_simplify_13.f90 gcc-9.5.0/gcc/testsuite/gfortran.dg/transfer_simplify_13.f90 *** gcc-9.4.0/gcc/testsuite/gfortran.dg/transfer_simplify_13.f90 Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gfortran.dg/transfer_simplify_13.f90 Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,34 ---- + ! { dg-do compile } + ! { dg-options "-fdump-tree-original" } + ! PR fortran/104127 - ICE in get_array_charlen + ! Contributed by G.Steinmetz + + program p + character(4) :: mold = "XYZ" + integer :: i = 0 + integer, parameter :: l1 = len (transfer('ab', 'xyz', size=0)) + integer, parameter :: s1 = size (transfer('ab', 'xyz', size=0)) + integer, parameter :: l4 = len (transfer(4_'abcd', 4_'xy', size=0)) + integer, parameter :: s4 = size (transfer(4_'abcd', 4_'xy', size=0)) + integer, parameter :: l2 = len (transfer('ab', mold, size=0)) + integer, parameter :: l3 = len (transfer('ab', mold, size=1)) + integer, parameter :: l5 = len (transfer('ab',['xyz'], size=0)) + integer, parameter :: s5 = size (transfer('ab',['xyz'], size=0)) + call sub0 ( transfer('a', 'y', size=0) ) + ! call sub1 ([transfer('a', 'y', size=0)]) ! fails for gcc-9 + ! call sub2 ([transfer('a',['y'],size=0)]) ! fails for gcc-9 + call sub3 ( transfer('a', 'y', size=1) ) + call sub4 ([transfer('a', 'y', size=1)]) + call sub5 ( transfer('a', 'y', size=i) ) + call sub6 ( transfer(1_'abcd', 1_'xy' , size=0)) + call sub7 ( transfer(1_'abcd',[1_'xy'], size=0)) + call sub8 ( transfer(4_'abcd', 4_'xy' , size=0)) + call sub9 ( transfer(4_'abcd',[4_'xy'], size=0)) + print *, transfer('abcd', 'xy', size=0) + if (l1 /= 3 .or. s1 /= 0) stop 1 + if (l4 /= 2 .or. s4 /= 0) stop 2 + if (l2 /= 4 .or. l3 /= 4) stop 3 + if (l5 /= 3 .or. s5 /= 0) stop 4 + end + + ! { dg-final { scan-tree-dump-not "_gfortran_stop_numeric" "original" } } diff -Nrcpad gcc-9.4.0/gcc/testsuite/gfortran.dg/transfer_simplify_15.f90 gcc-9.5.0/gcc/testsuite/gfortran.dg/transfer_simplify_15.f90 *** gcc-9.4.0/gcc/testsuite/gfortran.dg/transfer_simplify_15.f90 Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gfortran.dg/transfer_simplify_15.f90 Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,11 ---- + ! { dg-do compile } + ! PR fortran/104311 - ICE out of memory + ! Contributed by G.Steinmetz + + program p + type t + end type + type(t) :: x(2) + print *, transfer(1,x,2) ! { dg-error "shall not have storage size 0" } + print *, transfer(1,x,huge(1)) ! { dg-error "shall not have storage size 0" } + end diff -Nrcpad gcc-9.4.0/gcc/testsuite/gfortran.dg/ubsan/pr101624.f90 gcc-9.5.0/gcc/testsuite/gfortran.dg/ubsan/pr101624.f90 *** gcc-9.4.0/gcc/testsuite/gfortran.dg/ubsan/pr101624.f90 Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gfortran.dg/ubsan/pr101624.f90 Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,13 ---- + ! PR middle-end/101624 + ! { dg-do compile } + ! { dg-options "-O2 -fsanitize=undefined" } + + complex function foo (x) + complex, intent(in) :: x + foo = aimag (x) + end + program pr101624 + complex, parameter :: a = (0.0, 1.0) + complex :: b, foo + b = foo (a) + end diff -Nrcpad gcc-9.4.0/gcc/testsuite/gfortran.dg/ubsan/ubsan.exp gcc-9.5.0/gcc/testsuite/gfortran.dg/ubsan/ubsan.exp *** gcc-9.4.0/gcc/testsuite/gfortran.dg/ubsan/ubsan.exp Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/gcc/testsuite/gfortran.dg/ubsan/ubsan.exp Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,38 ---- + # 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 + # . + + # GCC testsuite for gfortran that checks undefined behavior sanitizer. + + # Load support procs. + load_lib gfortran-dg.exp + load_lib ubsan-dg.exp + + + # Initialize `dg'. + dg-init + ubsan_init + + # Main loop. + if [check_effective_target_fsanitize_undefined] { + gfortran-dg-runtest [lsort \ + [glob -nocomplain $srcdir/$subdir/*.\[fF\]{,90,95,03,08} ] ] "" "" + } + + # All done. + ubsan_finish + dg-finish diff -Nrcpad gcc-9.4.0/gcc/tree-complex.c gcc-9.5.0/gcc/tree-complex.c *** gcc-9.4.0/gcc/tree-complex.c Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/gcc/tree-complex.c Fri May 27 07:21:12 2022 *************** set_component_ssa_name (tree ssa_name, b *** 569,575 **** { /* Replace an anonymous base value with the variable from cvc_lookup. This should result in better debug info. */ ! if (SSA_NAME_VAR (ssa_name) && (!SSA_NAME_VAR (value) || DECL_IGNORED_P (SSA_NAME_VAR (value))) && !DECL_IGNORED_P (SSA_NAME_VAR (ssa_name))) { --- 569,576 ---- { /* Replace an anonymous base value with the variable from cvc_lookup. This should result in better debug info. */ ! if (!SSA_NAME_IS_DEFAULT_DEF (value) ! && SSA_NAME_VAR (ssa_name) && (!SSA_NAME_VAR (value) || DECL_IGNORED_P (SSA_NAME_VAR (value))) && !DECL_IGNORED_P (SSA_NAME_VAR (ssa_name))) { diff -Nrcpad gcc-9.4.0/gcc/tree-data-ref.c gcc-9.5.0/gcc/tree-data-ref.c *** gcc-9.4.0/gcc/tree-data-ref.c Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/gcc/tree-data-ref.c Fri May 27 07:21:12 2022 *************** print_lambda_vector (FILE * outfile, lam *** 391,397 **** int i; for (i = 0; i < n; i++) ! fprintf (outfile, "%3d ", (int)vector[i]); fprintf (outfile, "\n"); } --- 391,397 ---- int i; for (i = 0; i < n; i++) ! fprintf (outfile, HOST_WIDE_INT_PRINT_DEC " ", vector[i]); fprintf (outfile, "\n"); } diff -Nrcpad gcc-9.4.0/gcc/tree-eh.c gcc-9.5.0/gcc/tree-eh.c *** gcc-9.4.0/gcc/tree-eh.c Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/gcc/tree-eh.c Fri May 27 07:21:12 2022 *************** operation_could_trap_helper_p (enum tree *** 2435,2447 **** case FLOOR_MOD_EXPR: case ROUND_MOD_EXPR: case TRUNC_MOD_EXPR: - case RDIV_EXPR: - if (honor_snans) - return true; - if (fp_operation) - return flag_trapping_math; if (!TREE_CONSTANT (divisor) || integer_zerop (divisor)) return true; return false; case LT_EXPR: --- 2435,2469 ---- case FLOOR_MOD_EXPR: case ROUND_MOD_EXPR: case TRUNC_MOD_EXPR: if (!TREE_CONSTANT (divisor) || integer_zerop (divisor)) return true; + if (TREE_CODE (divisor) == VECTOR_CST) + { + /* Inspired by initializer_each_zero_or_onep. */ + unsigned HOST_WIDE_INT nelts = vector_cst_encoded_nelts (divisor); + if (VECTOR_CST_STEPPED_P (divisor) + && !TYPE_VECTOR_SUBPARTS (TREE_TYPE (divisor)) + .is_constant (&nelts)) + return true; + for (unsigned int i = 0; i < nelts; ++i) + { + tree elt = vector_cst_elt (divisor, i); + if (integer_zerop (elt)) + return true; + } + } + return false; + + case RDIV_EXPR: + if (fp_operation) + { + if (honor_snans) + return true; + return flag_trapping_math; + } + /* Fixed point operations also use RDIV_EXPR. */ + if (!TREE_CONSTANT (divisor) || fixed_zerop (divisor)) + return true; return false; case LT_EXPR: diff -Nrcpad gcc-9.4.0/gcc/tree-inline.c gcc-9.5.0/gcc/tree-inline.c *** gcc-9.4.0/gcc/tree-inline.c Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/gcc/tree-inline.c Fri May 27 07:21:12 2022 *************** copy_bb (copy_body_data *id, basic_block *** 2021,2047 **** tree p; gcall *new_call; vec argarray; ! size_t nargs = gimple_call_num_args (id->call_stmt); ! size_t n; for (p = DECL_ARGUMENTS (id->src_fn); p; p = DECL_CHAIN (p)) nargs--; /* Create the new array of arguments. */ ! n = nargs + gimple_call_num_args (call_stmt); argarray.create (n); argarray.safe_grow_cleared (n); /* Copy all the arguments before '...' */ ! memcpy (argarray.address (), ! gimple_call_arg_ptr (call_stmt, 0), ! gimple_call_num_args (call_stmt) * sizeof (tree)); /* Append the arguments passed in '...' */ ! memcpy (argarray.address () + gimple_call_num_args (call_stmt), ! gimple_call_arg_ptr (id->call_stmt, 0) ! + (gimple_call_num_args (id->call_stmt) - nargs), ! nargs * sizeof (tree)); new_call = gimple_build_call_vec (gimple_call_fn (call_stmt), argarray); --- 2021,2049 ---- tree p; gcall *new_call; vec argarray; ! size_t nargs_caller = gimple_call_num_args (id->call_stmt); ! size_t nargs = nargs_caller; for (p = DECL_ARGUMENTS (id->src_fn); p; p = DECL_CHAIN (p)) nargs--; /* Create the new array of arguments. */ ! size_t nargs_callee = gimple_call_num_args (call_stmt); ! size_t n = nargs + nargs_callee; argarray.create (n); argarray.safe_grow_cleared (n); /* Copy all the arguments before '...' */ ! if (nargs_callee) ! memcpy (argarray.address (), ! gimple_call_arg_ptr (call_stmt, 0), ! nargs_callee * sizeof (tree)); /* Append the arguments passed in '...' */ ! if (nargs) ! memcpy (argarray.address () + nargs_callee, ! gimple_call_arg_ptr (id->call_stmt, 0) ! + (nargs_caller - nargs), nargs * sizeof (tree)); new_call = gimple_build_call_vec (gimple_call_fn (call_stmt), argarray); diff -Nrcpad gcc-9.4.0/gcc/tree-nested.c gcc-9.5.0/gcc/tree-nested.c *** gcc-9.4.0/gcc/tree-nested.c Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/gcc/tree-nested.c Fri May 27 07:21:12 2022 *************** get_frame_field (struct nesting_info *in *** 923,928 **** --- 923,929 ---- } x = build3 (COMPONENT_REF, TREE_TYPE (field), x, field, NULL_TREE); + TREE_THIS_VOLATILE (x) = TREE_THIS_VOLATILE (field); return x; } diff -Nrcpad gcc-9.4.0/gcc/tree-sra.c gcc-9.5.0/gcc/tree-sra.c *** gcc-9.4.0/gcc/tree-sra.c Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/gcc/tree-sra.c Fri May 27 07:21:12 2022 *************** scan_function (void) *** 1530,1536 **** } if (final_bbs ! && (flags & (ECF_CONST | ECF_PURE)) == 0) bitmap_set_bit (final_bbs, bb->index); } --- 1530,1537 ---- } if (final_bbs ! && ((flags & (ECF_CONST | ECF_PURE)) == 0 ! || (flags & ECF_LOOPING_CONST_OR_PURE))) bitmap_set_bit (final_bbs, bb->index); } diff -Nrcpad gcc-9.4.0/gcc/tree-ssa-address.c gcc-9.5.0/gcc/tree-ssa-address.c *** gcc-9.4.0/gcc/tree-ssa-address.c Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/gcc/tree-ssa-address.c Fri May 27 07:21:12 2022 *************** along with GCC; see the file COPYING3. *** 47,52 **** --- 47,53 ---- #include "dumpfile.h" #include "tree-affine.h" #include "gimplify.h" + #include "builtins.h" /* FIXME: We compute address costs using RTL. */ #include "tree-ssa-address.h" *************** copy_ref_info (tree new_ref, tree old_re *** 1015,1059 **** new_ptr_base = TREE_OPERAND (new_ref, 0); /* We can transfer points-to information from an old pointer or decl base to the new one. */ if (new_ptr_base && TREE_CODE (new_ptr_base) == SSA_NAME && !SSA_NAME_PTR_INFO (new_ptr_base)) { ! tree base = get_base_address (old_ref); ! if (!base) ! ; ! else if ((TREE_CODE (base) == MEM_REF ! || TREE_CODE (base) == TARGET_MEM_REF) ! && TREE_CODE (TREE_OPERAND (base, 0)) == SSA_NAME ! && SSA_NAME_PTR_INFO (TREE_OPERAND (base, 0))) { - struct ptr_info_def *new_pi; - unsigned int align, misalign; - duplicate_ssa_name_ptr_info (new_ptr_base, SSA_NAME_PTR_INFO (TREE_OPERAND (base, 0))); ! new_pi = SSA_NAME_PTR_INFO (new_ptr_base); ! /* We have to be careful about transferring alignment information. */ ! if (get_ptr_info_alignment (new_pi, &align, &misalign) ! && TREE_CODE (old_ref) == MEM_REF ! && !(TREE_CODE (new_ref) == TARGET_MEM_REF ! && (TMR_INDEX2 (new_ref) ! /* TODO: Below conditions can be relaxed if TMR_INDEX ! is an indcution variable and its initial value and ! step are aligned. */ ! || (TMR_INDEX (new_ref) && !TMR_STEP (new_ref)) ! || (TMR_STEP (new_ref) ! && (TREE_INT_CST_LOW (TMR_STEP (new_ref)) ! < align))))) ! { ! poly_uint64 inc = (mem_ref_offset (old_ref) ! - mem_ref_offset (new_ref)).force_uhwi (); ! adjust_ptr_info_misalignment (new_pi, inc); ! } ! else ! mark_ptr_info_alignment_unknown (new_pi); } else if (VAR_P (base) || TREE_CODE (base) == PARM_DECL --- 1016,1039 ---- new_ptr_base = TREE_OPERAND (new_ref, 0); + tree base = get_base_address (old_ref); + if (!base) + return; + /* We can transfer points-to information from an old pointer or decl base to the new one. */ if (new_ptr_base && TREE_CODE (new_ptr_base) == SSA_NAME && !SSA_NAME_PTR_INFO (new_ptr_base)) { ! if ((TREE_CODE (base) == MEM_REF ! || TREE_CODE (base) == TARGET_MEM_REF) ! && TREE_CODE (TREE_OPERAND (base, 0)) == SSA_NAME ! && SSA_NAME_PTR_INFO (TREE_OPERAND (base, 0))) { duplicate_ssa_name_ptr_info (new_ptr_base, SSA_NAME_PTR_INFO (TREE_OPERAND (base, 0))); ! reset_flow_sensitive_info (new_ptr_base); } else if (VAR_P (base) || TREE_CODE (base) == PARM_DECL *************** copy_ref_info (tree new_ref, tree old_re *** 1063,1068 **** --- 1043,1056 ---- pt_solution_set_var (&pi->pt, base); } } + + /* And alignment info. Note we cannot transfer misalignment info + since that sits on the SSA name but this is flow-sensitive info + which we cannot transfer in this generic routine. */ + unsigned old_align = get_object_alignment (old_ref); + unsigned new_align = get_object_alignment (new_ref); + if (new_align < old_align) + TREE_TYPE (new_ref) = build_aligned_type (TREE_TYPE (new_ref), old_align); } /* Move constants in target_mem_ref REF to offset. Returns the new target diff -Nrcpad gcc-9.4.0/gcc/tree-ssa-dom.c gcc-9.5.0/gcc/tree-ssa-dom.c *** gcc-9.4.0/gcc/tree-ssa-dom.c Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/gcc/tree-ssa-dom.c Fri May 27 07:21:12 2022 *************** pass_dominator::execute (function *fun) *** 695,701 **** gcc.dg/tree-ssa/pr21417.c can't be threaded if loop preheader is missing. We should improve jump threading in future then LOOPS_HAVE_PREHEADERS won't be needed here. */ ! loop_optimizer_init (LOOPS_HAVE_PREHEADERS | LOOPS_HAVE_SIMPLE_LATCHES); /* Initialize the value-handle array. */ threadedge_initialize_values (); --- 695,702 ---- gcc.dg/tree-ssa/pr21417.c can't be threaded if loop preheader is missing. We should improve jump threading in future then LOOPS_HAVE_PREHEADERS won't be needed here. */ ! loop_optimizer_init (LOOPS_HAVE_PREHEADERS | LOOPS_HAVE_SIMPLE_LATCHES ! | LOOPS_HAVE_MARKED_IRREDUCIBLE_REGIONS); /* Initialize the value-handle array. */ threadedge_initialize_values (); diff -Nrcpad gcc-9.4.0/gcc/tree-ssa-loop-im.c gcc-9.5.0/gcc/tree-ssa-loop-im.c *** gcc-9.4.0/gcc/tree-ssa-loop-im.c Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/gcc/tree-ssa-loop-im.c Fri May 27 07:21:12 2022 *************** move_computations_worker (basic_block bb *** 1170,1183 **** COND_EXPR, t, arg0, arg1); todo |= TODO_cleanup_cfg; } ! if (INTEGRAL_TYPE_P (TREE_TYPE (gimple_assign_lhs (new_stmt))) ! && (!ALWAYS_EXECUTED_IN (bb) ! || (ALWAYS_EXECUTED_IN (bb) != level ! && !flow_loop_nested_p (ALWAYS_EXECUTED_IN (bb), level)))) ! { ! tree lhs = gimple_assign_lhs (new_stmt); ! SSA_NAME_RANGE_INFO (lhs) = NULL; ! } gsi_insert_on_edge (loop_preheader_edge (level), new_stmt); remove_phi_node (&bsi, false); } --- 1170,1179 ---- COND_EXPR, t, arg0, arg1); todo |= TODO_cleanup_cfg; } ! if (!ALWAYS_EXECUTED_IN (bb) ! || (ALWAYS_EXECUTED_IN (bb) != level ! && !flow_loop_nested_p (ALWAYS_EXECUTED_IN (bb), level))) ! reset_flow_sensitive_info (gimple_assign_lhs (new_stmt)); gsi_insert_on_edge (loop_preheader_edge (level), new_stmt); remove_phi_node (&bsi, false); } *************** move_computations_worker (basic_block bb *** 1239,1252 **** gsi_remove (&bsi, false); if (gimple_has_lhs (stmt) && TREE_CODE (gimple_get_lhs (stmt)) == SSA_NAME - && INTEGRAL_TYPE_P (TREE_TYPE (gimple_get_lhs (stmt))) && (!ALWAYS_EXECUTED_IN (bb) || !(ALWAYS_EXECUTED_IN (bb) == level || flow_loop_nested_p (ALWAYS_EXECUTED_IN (bb), level)))) ! { ! tree lhs = gimple_get_lhs (stmt); ! SSA_NAME_RANGE_INFO (lhs) = NULL; ! } /* In case this is a stmt that is not unconditionally executed when the target loop header is executed and the stmt may invoke undefined integer or pointer overflow rewrite it to --- 1235,1244 ---- gsi_remove (&bsi, false); if (gimple_has_lhs (stmt) && TREE_CODE (gimple_get_lhs (stmt)) == SSA_NAME && (!ALWAYS_EXECUTED_IN (bb) || !(ALWAYS_EXECUTED_IN (bb) == level || flow_loop_nested_p (ALWAYS_EXECUTED_IN (bb), level)))) ! reset_flow_sensitive_info (gimple_get_lhs (stmt)); /* In case this is a stmt that is not unconditionally executed when the target loop header is executed and the stmt may invoke undefined integer or pointer overflow rewrite it to diff -Nrcpad gcc-9.4.0/gcc/tree-ssa-phiopt.c gcc-9.5.0/gcc/tree-ssa-phiopt.c *** gcc-9.4.0/gcc/tree-ssa-phiopt.c Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/gcc/tree-ssa-phiopt.c Fri May 27 07:21:12 2022 *************** conditional_replacement (basic_block con *** 753,761 **** if ((integer_zerop (arg0) && integer_onep (arg1)) || (integer_zerop (arg1) && integer_onep (arg0))) neg = false; else if ((integer_zerop (arg0) && integer_all_onesp (arg1)) || (integer_zerop (arg1) && integer_all_onesp (arg0))) ! neg = true; else return false; --- 753,764 ---- if ((integer_zerop (arg0) && integer_onep (arg1)) || (integer_zerop (arg1) && integer_onep (arg0))) neg = false; + /* For signed one bit types, the negation is not needed and + should be avoided and is the same as 1 case for non-signed + one bit types. */ else if ((integer_zerop (arg0) && integer_all_onesp (arg1)) || (integer_zerop (arg1) && integer_all_onesp (arg0))) ! neg = TYPE_PRECISION (TREE_TYPE (arg0)) != 1; else return false; diff -Nrcpad gcc-9.4.0/gcc/tree-ssa-pre.c gcc-9.5.0/gcc/tree-ssa-pre.c *** gcc-9.4.0/gcc/tree-ssa-pre.c Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/gcc/tree-ssa-pre.c Fri May 27 07:21:12 2022 *************** prune_clobbered_mems (bitmap_set_t set, *** 1972,1977 **** --- 1972,1984 ---- && value_dies_in_block_x (expr, block)))) to_remove = i; } + /* If the REFERENCE may trap make sure the block does not contain + a possible exit point. + ??? This is overly conservative if we translate AVAIL_OUT + as the available expression might be after the exit point. */ + if (BB_MAY_NOTRETURN (block) + && vn_reference_may_trap (ref)) + to_remove = i; } else if (expr->kind == NARY) { *************** do_pre_regular_insertion (basic_block bl *** 3302,3308 **** /* If all edges produce the same value and that value is an invariant, then the PHI has the same value on all edges. Note this. */ ! else if (!cant_insert && all_same) { gcc_assert (edoubleprime->kind == CONSTANT || edoubleprime->kind == NAME); --- 3309,3319 ---- /* If all edges produce the same value and that value is an invariant, then the PHI has the same value on all edges. Note this. */ ! else if (!cant_insert ! && all_same ! && (edoubleprime->kind != NAME ! || !SSA_NAME_OCCURS_IN_ABNORMAL_PHI ! (PRE_EXPR_NAME (edoubleprime)))) { gcc_assert (edoubleprime->kind == CONSTANT || edoubleprime->kind == NAME); diff -Nrcpad gcc-9.4.0/gcc/tree-ssa-sccvn.c gcc-9.5.0/gcc/tree-ssa-sccvn.c *** gcc-9.4.0/gcc/tree-ssa-sccvn.c Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/gcc/tree-ssa-sccvn.c Fri May 27 07:21:12 2022 *************** eliminate_dom_walker::eliminate_stmt (ba *** 5080,5087 **** duplicate_ssa_name_ptr_info (sprime, SSA_NAME_PTR_INFO (lhs)); if (b != sprime_b) ! mark_ptr_info_alignment_unknown ! (SSA_NAME_PTR_INFO (sprime)); } else if (INTEGRAL_TYPE_P (TREE_TYPE (lhs)) && SSA_NAME_RANGE_INFO (lhs) --- 5080,5086 ---- duplicate_ssa_name_ptr_info (sprime, SSA_NAME_PTR_INFO (lhs)); if (b != sprime_b) ! reset_flow_sensitive_info (sprime); } else if (INTEGRAL_TYPE_P (TREE_TYPE (lhs)) && SSA_NAME_RANGE_INFO (lhs) diff -Nrcpad gcc-9.4.0/gcc/tree-switch-conversion.c gcc-9.5.0/gcc/tree-switch-conversion.c *** gcc-9.4.0/gcc/tree-switch-conversion.c Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/gcc/tree-switch-conversion.c Fri May 27 07:21:12 2022 *************** group_cluster::dump (FILE *f, bool detai *** 1120,1126 **** void jump_table_cluster::emit (tree index_expr, tree, ! tree default_label_expr, basic_block default_bb) { unsigned HOST_WIDE_INT range = get_range (get_low (), get_high ()); unsigned HOST_WIDE_INT nondefault_range = 0; --- 1120,1127 ---- void jump_table_cluster::emit (tree index_expr, tree, ! tree default_label_expr, basic_block default_bb, ! location_t loc) { unsigned HOST_WIDE_INT range = get_range (get_low (), get_high ()); unsigned HOST_WIDE_INT nondefault_range = 0; *************** jump_table_cluster::emit (tree index_exp *** 1139,1144 **** --- 1140,1146 ---- gswitch *s = gimple_build_switch (index_expr, unshare_expr (default_label_expr), labels); + gimple_set_location (s, loc); gimple_stmt_iterator gsi = gsi_start_bb (m_case_bb); gsi_insert_after (&gsi, s, GSI_NEW_STMT); *************** case_bit_test::cmp (const void *p1, cons *** 1478,1484 **** void bit_test_cluster::emit (tree index_expr, tree index_type, ! tree, basic_block default_bb) { struct case_bit_test test[m_max_case_bit_tests] = { {} }; unsigned int i, j, k; --- 1480,1486 ---- void bit_test_cluster::emit (tree index_expr, tree index_type, ! tree, basic_block default_bb, location_t loc) { struct case_bit_test test[m_max_case_bit_tests] = { {} }; unsigned int i, j, k; *************** bit_test_cluster::emit (tree index_expr, *** 1572,1580 **** gsi = gsi_last_bb (m_case_bb); /* idx = (unsigned)x - minval. */ ! idx = fold_convert (unsigned_index_type, index_expr); ! idx = fold_build2 (MINUS_EXPR, unsigned_index_type, idx, ! fold_convert (unsigned_index_type, minval)); idx = force_gimple_operand_gsi (&gsi, idx, /*simple=*/true, NULL_TREE, /*before=*/true, GSI_SAME_STMT); --- 1574,1582 ---- gsi = gsi_last_bb (m_case_bb); /* idx = (unsigned)x - minval. */ ! idx = fold_convert_loc (loc, unsigned_index_type, index_expr); ! idx = fold_build2_loc (loc, MINUS_EXPR, unsigned_index_type, idx, ! fold_convert_loc (loc, unsigned_index_type, minval)); idx = force_gimple_operand_gsi (&gsi, idx, /*simple=*/true, NULL_TREE, /*before=*/true, GSI_SAME_STMT); *************** bit_test_cluster::emit (tree index_expr, *** 1587,1603 **** fold_convert (unsigned_index_type, range), /*simple=*/true, NULL_TREE, /*before=*/true, GSI_SAME_STMT); ! tmp = fold_build2 (GT_EXPR, boolean_type_node, idx, range); basic_block new_bb = hoist_edge_and_branch_if_true (&gsi, tmp, default_bb, ! profile_probability::unlikely ()); gsi = gsi_last_bb (new_bb); } /* csui = (1 << (word_mode) idx) */ csui = make_ssa_name (word_type_node); ! tmp = fold_build2 (LSHIFT_EXPR, word_type_node, word_mode_one, ! fold_convert (word_type_node, idx)); tmp = force_gimple_operand_gsi (&gsi, tmp, /*simple=*/false, NULL_TREE, /*before=*/true, GSI_SAME_STMT); --- 1589,1605 ---- fold_convert (unsigned_index_type, range), /*simple=*/true, NULL_TREE, /*before=*/true, GSI_SAME_STMT); ! tmp = fold_build2_loc (loc, GT_EXPR, boolean_type_node, idx, range); basic_block new_bb = hoist_edge_and_branch_if_true (&gsi, tmp, default_bb, ! profile_probability::unlikely (), loc); gsi = gsi_last_bb (new_bb); } /* csui = (1 << (word_mode) idx) */ csui = make_ssa_name (word_type_node); ! tmp = fold_build2_loc (loc, LSHIFT_EXPR, word_type_node, word_mode_one, ! fold_convert_loc (loc, word_type_node, idx)); tmp = force_gimple_operand_gsi (&gsi, tmp, /*simple=*/false, NULL_TREE, /*before=*/true, GSI_SAME_STMT); *************** bit_test_cluster::emit (tree index_expr, *** 1615,1627 **** bt_range); bt_range -= test[k].bits; tmp = wide_int_to_tree (word_type_node, test[k].mask); ! tmp = fold_build2 (BIT_AND_EXPR, word_type_node, csui, tmp); tmp = force_gimple_operand_gsi (&gsi, tmp, /*simple=*/true, NULL_TREE, /*before=*/true, GSI_SAME_STMT); ! tmp = fold_build2 (NE_EXPR, boolean_type_node, tmp, word_mode_zero); basic_block new_bb ! = hoist_edge_and_branch_if_true (&gsi, tmp, test[k].target_bb, prob); gsi = gsi_last_bb (new_bb); } --- 1617,1631 ---- bt_range); bt_range -= test[k].bits; tmp = wide_int_to_tree (word_type_node, test[k].mask); ! tmp = fold_build2_loc (loc, BIT_AND_EXPR, word_type_node, csui, tmp); tmp = force_gimple_operand_gsi (&gsi, tmp, /*simple=*/true, NULL_TREE, /*before=*/true, GSI_SAME_STMT); ! tmp = fold_build2_loc (loc, NE_EXPR, boolean_type_node, ! tmp, word_mode_zero); basic_block new_bb ! = hoist_edge_and_branch_if_true (&gsi, tmp, test[k].target_bb, ! prob, loc); gsi = gsi_last_bb (new_bb); } *************** bit_test_cluster::emit (tree index_expr, *** 1651,1657 **** basic_block bit_test_cluster::hoist_edge_and_branch_if_true (gimple_stmt_iterator *gsip, tree cond, basic_block case_bb, ! profile_probability prob) { tree tmp; gcond *cond_stmt; --- 1655,1662 ---- basic_block bit_test_cluster::hoist_edge_and_branch_if_true (gimple_stmt_iterator *gsip, tree cond, basic_block case_bb, ! profile_probability prob, ! location_t loc) { tree tmp; gcond *cond_stmt; *************** bit_test_cluster::hoist_edge_and_branch_ *** 1665,1670 **** --- 1670,1676 ---- tmp = force_gimple_operand_gsi (gsip, cond, /*simple=*/true, NULL, /*before=*/true, GSI_SAME_STMT); cond_stmt = gimple_build_cond_from_tree (tmp, NULL_TREE, NULL_TREE); + gimple_set_location (cond_stmt, loc); gsi_insert_before (gsip, cond_stmt, GSI_SAME_STMT); e_false = split_block (split_bb, cond_stmt); *************** switch_decision_tree::try_switch_expansi *** 1844,1850 **** { cluster *c = clusters[0]; c->emit (index_expr, index_type, ! gimple_switch_default_label (m_switch), m_default_bb); redirect_edge_succ (single_succ_edge (bb), c->m_case_bb); } else --- 1850,1857 ---- { cluster *c = clusters[0]; c->emit (index_expr, index_type, ! gimple_switch_default_label (m_switch), m_default_bb, ! gimple_location (m_switch)); redirect_edge_succ (single_succ_edge (bb), c->m_case_bb); } else *************** switch_decision_tree::try_switch_expansi *** 1856,1862 **** if (clusters[i]->get_type () != SIMPLE_CASE) clusters[i]->emit (index_expr, index_type, gimple_switch_default_label (m_switch), ! m_default_bb); } fix_phi_operands_for_edges (); --- 1863,1869 ---- if (clusters[i]->get_type () != SIMPLE_CASE) clusters[i]->emit (index_expr, index_type, gimple_switch_default_label (m_switch), ! m_default_bb, gimple_location (m_switch)); } fix_phi_operands_for_edges (); diff -Nrcpad gcc-9.4.0/gcc/tree-switch-conversion.h gcc-9.5.0/gcc/tree-switch-conversion.h *** gcc-9.4.0/gcc/tree-switch-conversion.h Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/gcc/tree-switch-conversion.h Fri May 27 07:21:12 2022 *************** struct cluster *** 70,76 **** virtual void dump (FILE *f, bool details = false) = 0; /* Emit GIMPLE code to handle the cluster. */ ! virtual void emit (tree, tree, tree, basic_block) = 0; /* Return true if a cluster handles only a single case value and the value is not a range. */ --- 70,76 ---- virtual void dump (FILE *f, bool details = false) = 0; /* Emit GIMPLE code to handle the cluster. */ ! virtual void emit (tree, tree, tree, basic_block, location_t) = 0; /* Return true if a cluster handles only a single case value and the value is not a range. */ *************** struct simple_cluster: public cluster *** 163,169 **** fprintf (f, " "); } ! void emit (tree, tree, tree, basic_block) { gcc_unreachable (); } --- 163,169 ---- fprintf (f, " "); } ! void emit (tree, tree, tree, basic_block, location_t) { gcc_unreachable (); } *************** struct jump_table_cluster: public group_ *** 247,253 **** } void emit (tree index_expr, tree index_type, ! tree default_label_expr, basic_block default_bb); /* Find jump tables of given CLUSTERS, where all members of the vector are of type simple_cluster. New clusters are returned. */ --- 247,253 ---- } void emit (tree index_expr, tree index_type, ! tree default_label_expr, basic_block default_bb, location_t loc); /* Find jump tables of given CLUSTERS, where all members of the vector are of type simple_cluster. New clusters are returned. */ *************** struct bit_test_cluster: public group_cl *** 370,376 **** There *MUST* be max_case_bit_tests or less unique case node targets. */ void emit (tree index_expr, tree index_type, ! tree default_label_expr, basic_block default_bb); /* Find bit tests of given CLUSTERS, where all members of the vector are of type simple_cluster. New clusters are returned. */ --- 370,376 ---- There *MUST* be max_case_bit_tests or less unique case node targets. */ void emit (tree index_expr, tree index_type, ! tree default_label_expr, basic_block default_bb, location_t loc); /* Find bit tests of given CLUSTERS, where all members of the vector are of type simple_cluster. New clusters are returned. */ *************** struct bit_test_cluster: public group_cl *** 411,417 **** static basic_block hoist_edge_and_branch_if_true (gimple_stmt_iterator *gsip, tree cond, basic_block case_bb, ! profile_probability prob); /* True when the jump table handles an entire switch statement. */ bool m_handles_entire_switch; --- 411,418 ---- static basic_block hoist_edge_and_branch_if_true (gimple_stmt_iterator *gsip, tree cond, basic_block case_bb, ! profile_probability prob, ! location_t); /* True when the jump table handles an entire switch statement. */ bool m_handles_entire_switch; diff -Nrcpad gcc-9.4.0/gcc/tree-vect-data-refs.c gcc-9.5.0/gcc/tree-vect-data-refs.c *** gcc-9.4.0/gcc/tree-vect-data-refs.c Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/gcc/tree-vect-data-refs.c Fri May 27 07:21:12 2022 *************** vect_prune_runtime_alias_test_list (loop *** 3424,3432 **** /* Step values are irrelevant for aliasing if the number of vector iterations is equal to the number of scalar iterations (which can happen for fully-SLP loops). */ ! bool ignore_step_p = known_eq (LOOP_VINFO_VECT_FACTOR (loop_vinfo), 1U); ! if (!ignore_step_p) { /* Convert the checks for nonzero steps into bound tests. */ tree value; --- 3424,3432 ---- /* Step values are irrelevant for aliasing if the number of vector iterations is equal to the number of scalar iterations (which can happen for fully-SLP loops). */ ! bool vf_one_p = known_eq (LOOP_VINFO_VECT_FACTOR (loop_vinfo), 1U); ! if (!vf_one_p) { /* Convert the checks for nonzero steps into bound tests. */ tree value; *************** vect_prune_runtime_alias_test_list (loop *** 3478,3487 **** dr_vec_info *dr_info_b = loop_vinfo->lookup_dr (DDR_B (ddr)); stmt_vec_info stmt_info_b = dr_info_b->stmt; /* Skip the pair if inter-iteration dependencies are irrelevant and intra-iteration dependencies are guaranteed to be honored. */ if (ignore_step_p ! && (vect_preserves_scalar_order_p (dr_info_a, dr_info_b) || vectorizable_with_step_bound_p (dr_info_a, dr_info_b, &lower_bound))) { --- 3478,3495 ---- dr_vec_info *dr_info_b = loop_vinfo->lookup_dr (DDR_B (ddr)); stmt_vec_info stmt_info_b = dr_info_b->stmt; + bool preserves_scalar_order_p + = vect_preserves_scalar_order_p (dr_info_a, dr_info_b); + bool ignore_step_p + = (vf_one_p + && (preserves_scalar_order_p + || operand_equal_p (DR_STEP (dr_info_a->dr), + DR_STEP (dr_info_b->dr), 0))); + /* Skip the pair if inter-iteration dependencies are irrelevant and intra-iteration dependencies are guaranteed to be honored. */ if (ignore_step_p ! && (preserves_scalar_order_p || vectorizable_with_step_bound_p (dr_info_a, dr_info_b, &lower_bound))) { *************** vect_create_addr_base_for_vector_ref (st *** 4556,4562 **** if (DR_PTR_INFO (dr) && TREE_CODE (addr_base) == SSA_NAME ! && !SSA_NAME_PTR_INFO (addr_base)) { vect_duplicate_ssa_name_ptr_info (addr_base, dr_info); if (offset || byte_offset) --- 4564,4571 ---- if (DR_PTR_INFO (dr) && TREE_CODE (addr_base) == SSA_NAME ! /* We should only duplicate pointer info to newly created SSA names. */ ! && SSA_NAME_VAR (addr_base) == dest) { vect_duplicate_ssa_name_ptr_info (addr_base, dr_info); if (offset || byte_offset) diff -Nrcpad gcc-9.4.0/gcc/tree-vect-loop-manip.c gcc-9.5.0/gcc/tree-vect-loop-manip.c *** gcc-9.4.0/gcc/tree-vect-loop-manip.c Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/gcc/tree-vect-loop-manip.c Fri May 27 07:21:12 2022 *************** vect_update_inits_of_drs (loop_vec_info *** 1774,1780 **** FOR_EACH_VEC_ELT (datarefs, i, dr) { dr_vec_info *dr_info = loop_vinfo->lookup_dr (dr); ! if (!STMT_VINFO_GATHER_SCATTER_P (dr_info->stmt)) vect_update_init_of_dr (dr, niters, code); } } --- 1774,1781 ---- FOR_EACH_VEC_ELT (datarefs, i, dr) { dr_vec_info *dr_info = loop_vinfo->lookup_dr (dr); ! if (!STMT_VINFO_GATHER_SCATTER_P (dr_info->stmt) ! && !STMT_VINFO_SIMD_LANE_ACCESS_P (dr_info->stmt)) vect_update_init_of_dr (dr, niters, code); } } diff -Nrcpad gcc-9.4.0/gcc/tree-vect-loop.c gcc-9.5.0/gcc/tree-vect-loop.c *** gcc-9.4.0/gcc/tree-vect-loop.c Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/gcc/tree-vect-loop.c Fri May 27 07:21:12 2022 *************** vect_is_simple_reduction (loop_vec_info *** 2925,2930 **** --- 2925,2941 ---- } } + /* When the inner loop of a double reduction ends up with more than + one loop-closed PHI we have failed to classify alternate such + PHIs as double reduction, leading to wrong code. See PR103237. */ + if (inner_loop_of_double_reduc && lcphis.length () != 1) + { + if (dump_enabled_p ()) + dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location, + "unhandle double reduction\n"); + return NULL; + } + /* If this isn't a nested cycle or if the nested cycle reduction value is used ouside of the inner loop we cannot handle uses of the reduction value. */ diff -Nrcpad gcc-9.4.0/gcc/tree-vect-slp.c gcc-9.5.0/gcc/tree-vect-slp.c *** gcc-9.4.0/gcc/tree-vect-slp.c Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/gcc/tree-vect-slp.c Fri May 27 07:21:12 2022 *************** vect_analyze_slp_instance (vec_info *vin *** 2051,2059 **** /* The load requires permutation when unrolling exposes a gap either because the group is larger than the SLP group-size or because there is a gap between the groups. */ ! && (known_eq (unrolling_factor, 1U) ! || (group_size == DR_GROUP_SIZE (first_stmt_info) ! && DR_GROUP_GAP (first_stmt_info) == 0))) { load_permutation.release (); continue; --- 2051,2058 ---- /* The load requires permutation when unrolling exposes a gap either because the group is larger than the SLP group-size or because there is a gap between the groups. */ ! && group_size == DR_GROUP_SIZE (first_stmt_info) ! && DR_GROUP_GAP (first_stmt_info) == 0) { load_permutation.release (); continue; diff -Nrcpad gcc-9.4.0/gcc/tree.c gcc-9.5.0/gcc/tree.c *** gcc-9.4.0/gcc/tree.c Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/gcc/tree.c Fri May 27 07:21:12 2022 *************** walk_tree_1 (tree *tp, walk_tree_fn func *** 12340,12346 **** case OMP_CLAUSE_DEFAULTMAP: case OMP_CLAUSE_AUTO: case OMP_CLAUSE_SEQ: - case OMP_CLAUSE_TILE: case OMP_CLAUSE__SIMT_: case OMP_CLAUSE_IF_PRESENT: case OMP_CLAUSE_FINALIZE: --- 12340,12345 ---- *************** walk_tree_1 (tree *tp, walk_tree_fn func *** 12352,12357 **** --- 12351,12357 ---- WALK_SUBTREE_TAIL (OMP_CLAUSE_CHAIN (*tp)); case OMP_CLAUSE_COLLAPSE: + case OMP_CLAUSE_TILE: { int i; for (i = 0; i < 3; i++) diff -Nrcpad gcc-9.4.0/gcc/ubsan.c gcc-9.5.0/gcc/ubsan.c *** gcc-9.4.0/gcc/ubsan.c Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/gcc/ubsan.c Fri May 27 07:21:12 2022 *************** maybe_instrument_pointer_overflow (gimpl *** 1440,1446 **** tree base; if (decl_p) { ! if (DECL_REGISTER (inner)) return; base = inner; /* If BASE is a fixed size automatic variable or --- 1440,1449 ---- tree base; if (decl_p) { ! if ((VAR_P (inner) ! || TREE_CODE (inner) == PARM_DECL ! || TREE_CODE (inner) == RESULT_DECL) ! && DECL_REGISTER (inner)) return; base = inner; /* If BASE is a fixed size automatic variable or *************** instrument_object_size (gimple_stmt_iter *** 2104,2110 **** tree base; if (decl_p) { ! if (DECL_REGISTER (inner)) return; base = inner; } --- 2107,2118 ---- tree base; if (decl_p) { ! if ((VAR_P (inner) ! || TREE_CODE (inner) == PARM_DECL ! || TREE_CODE (inner) == RESULT_DECL) ! && DECL_REGISTER (inner)) ! return; ! if (t == inner && !is_global_var (t)) return; base = inner; } *************** instrument_object_size (gimple_stmt_iter *** 2203,2208 **** --- 2211,2221 ---- } } + if (DECL_P (base) + && decl_function_context (base) == current_function_decl + && !TREE_ADDRESSABLE (base)) + mark_addressable (base); + if (bos_stmt && gimple_call_builtin_p (bos_stmt, BUILT_IN_OBJECT_SIZE)) ubsan_create_edge (bos_stmt); diff -Nrcpad gcc-9.4.0/gcc/valtrack.c gcc-9.5.0/gcc/valtrack.c *** gcc-9.4.0/gcc/valtrack.c Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/gcc/valtrack.c Fri May 27 07:21:12 2022 *************** debug_lowpart_subreg (machine_mode outer *** 559,565 **** rtx ret = simplify_gen_subreg (outer_mode, expr, inner_mode, offset); if (ret) return ret; ! return gen_rtx_raw_SUBREG (outer_mode, expr, offset); } /* If UREGNO is referenced by any entry in DEBUG, emit a debug insn --- 559,567 ---- rtx ret = simplify_gen_subreg (outer_mode, expr, inner_mode, offset); if (ret) return ret; ! if (GET_MODE (expr) != VOIDmode) ! return gen_rtx_raw_SUBREG (outer_mode, expr, offset); ! return NULL_RTX; } /* If UREGNO is referenced by any entry in DEBUG, emit a debug insn diff -Nrcpad gcc-9.4.0/gcc/varasm.c gcc-9.5.0/gcc/varasm.c *** gcc-9.4.0/gcc/varasm.c Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/gcc/varasm.c Fri May 27 07:21:12 2022 *************** output_constructor_regular_field (oc_loc *** 5251,5264 **** && (!TYPE_DOMAIN (TREE_TYPE (local->field)) || !TYPE_MAX_VALUE (TYPE_DOMAIN (TREE_TYPE (local->field))))) { ! fieldsize = array_size_for_constructor (local->val); /* Given a non-empty initialization, this field had better be last. Given a flexible array member, the next field on the chain is a TYPE_DECL of the enclosing struct. */ const_tree next = DECL_CHAIN (local->field); gcc_assert (!fieldsize || !next || TREE_CODE (next) != FIELD_DECL); - tree size = TYPE_SIZE_UNIT (TREE_TYPE (local->val)); - gcc_checking_assert (compare_tree_int (size, fieldsize) == 0); } else fieldsize = tree_to_uhwi (DECL_SIZE_UNIT (local->field)); --- 5251,5270 ---- && (!TYPE_DOMAIN (TREE_TYPE (local->field)) || !TYPE_MAX_VALUE (TYPE_DOMAIN (TREE_TYPE (local->field))))) { ! unsigned HOST_WIDE_INT fldsize ! = array_size_for_constructor (local->val); ! fieldsize = int_size_in_bytes (TREE_TYPE (local->val)); ! /* In most cases fieldsize == fldsize as the size of the initializer ! determines how many elements the flexible array member has. For ! C++ fldsize can be smaller though, if the last or several last or ! all initializers of the flexible array member have side-effects ! and the FE splits them into dynamic initialization. */ ! gcc_checking_assert (fieldsize >= fldsize); /* Given a non-empty initialization, this field had better be last. Given a flexible array member, the next field on the chain is a TYPE_DECL of the enclosing struct. */ const_tree next = DECL_CHAIN (local->field); gcc_assert (!fieldsize || !next || TREE_CODE (next) != FIELD_DECL); } else fieldsize = tree_to_uhwi (DECL_SIZE_UNIT (local->field)); diff -Nrcpad gcc-9.4.0/gnattools/ChangeLog gcc-9.5.0/gnattools/ChangeLog *** gcc-9.4.0/gnattools/ChangeLog Tue Jun 1 07:53:23 2021 --- gcc-9.5.0/gnattools/ChangeLog Fri May 27 07:21:30 2022 *************** *** 1,3 **** --- 1,7 ---- + 2022-05-27 Release Manager + + * GCC 9.5.0 released. + 2021-06-01 Release Manager * GCC 9.4.0 released. diff -Nrcpad gcc-9.4.0/gotools/ChangeLog gcc-9.5.0/gotools/ChangeLog *** gcc-9.4.0/gotools/ChangeLog Tue Jun 1 07:53:23 2021 --- gcc-9.5.0/gotools/ChangeLog Fri May 27 07:21:30 2022 *************** *** 1,3 **** --- 1,7 ---- + 2022-05-27 Release Manager + + * GCC 9.5.0 released. + 2021-06-01 Release Manager * GCC 9.4.0 released. diff -Nrcpad gcc-9.4.0/include/ChangeLog gcc-9.5.0/include/ChangeLog *** gcc-9.4.0/include/ChangeLog Tue Jun 1 07:53:23 2021 --- gcc-9.5.0/include/ChangeLog Fri May 27 07:21:30 2022 *************** *** 1,3 **** --- 1,7 ---- + 2022-05-27 Release Manager + + * GCC 9.5.0 released. + 2021-06-01 Release Manager * GCC 9.4.0 released. diff -Nrcpad gcc-9.4.0/intl/ChangeLog gcc-9.5.0/intl/ChangeLog *** gcc-9.4.0/intl/ChangeLog Tue Jun 1 07:53:23 2021 --- gcc-9.5.0/intl/ChangeLog Fri May 27 07:21:30 2022 *************** *** 1,3 **** --- 1,7 ---- + 2022-05-27 Release Manager + + * GCC 9.5.0 released. + 2021-06-01 Release Manager * GCC 9.4.0 released. diff -Nrcpad gcc-9.4.0/libada/ChangeLog gcc-9.5.0/libada/ChangeLog *** gcc-9.4.0/libada/ChangeLog Tue Jun 1 07:53:23 2021 --- gcc-9.5.0/libada/ChangeLog Fri May 27 07:21:30 2022 *************** *** 1,3 **** --- 1,7 ---- + 2022-05-27 Release Manager + + * GCC 9.5.0 released. + 2021-06-01 Release Manager * GCC 9.4.0 released. diff -Nrcpad gcc-9.4.0/libatomic/ChangeLog gcc-9.5.0/libatomic/ChangeLog *** gcc-9.4.0/libatomic/ChangeLog Tue Jun 1 07:53:23 2021 --- gcc-9.5.0/libatomic/ChangeLog Fri May 27 07:21:30 2022 *************** *** 1,3 **** --- 1,7 ---- + 2022-05-27 Release Manager + + * GCC 9.5.0 released. + 2021-06-01 Release Manager * GCC 9.4.0 released. diff -Nrcpad gcc-9.4.0/libbacktrace/ChangeLog gcc-9.5.0/libbacktrace/ChangeLog *** gcc-9.4.0/libbacktrace/ChangeLog Tue Jun 1 07:53:23 2021 --- gcc-9.5.0/libbacktrace/ChangeLog Fri May 27 07:21:30 2022 *************** *** 1,3 **** --- 1,7 ---- + 2022-05-27 Release Manager + + * GCC 9.5.0 released. + 2021-06-01 Release Manager * GCC 9.4.0 released. diff -Nrcpad gcc-9.4.0/libcc1/ChangeLog gcc-9.5.0/libcc1/ChangeLog *** gcc-9.4.0/libcc1/ChangeLog Tue Jun 1 07:53:23 2021 --- gcc-9.5.0/libcc1/ChangeLog Fri May 27 07:21:30 2022 *************** *** 1,3 **** --- 1,7 ---- + 2022-05-27 Release Manager + + * GCC 9.5.0 released. + 2021-06-01 Release Manager * GCC 9.4.0 released. diff -Nrcpad gcc-9.4.0/libcpp/ChangeLog gcc-9.5.0/libcpp/ChangeLog *** gcc-9.4.0/libcpp/ChangeLog Tue Jun 1 07:53:23 2021 --- gcc-9.5.0/libcpp/ChangeLog Fri May 27 07:21:30 2022 *************** *** 1,3 **** --- 1,36 ---- + 2022-05-27 Release Manager + + * GCC 9.5.0 released. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2022-02-01 Jakub Jelinek + + PR preprocessor/104147 + * macro.c (funlike_invocation_p): For padding prefer a token + with val.source non-NULL especially if it has PREV_WHITE set + on val.source->flags. Add gcc_assert that CPP_PADDING tokens + don't have PREV_WHITE set in flags. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2022-02-01 Jakub Jelinek + + * directives.c (destringize_and_run): Push &pfile->avoid_paste + instead of a copy of pfile->directive_result for the CPP_PADDING + case. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-12-30 Jakub Jelinek + + PR preprocessor/89971 + * macro.c (replace_args): For ##__VA_OPT__, if __VA_OPT__ expands + to no tokens at all, drop PASTE_LEFT flag from the previous token. + 2021-06-01 Release Manager * GCC 9.4.0 released. diff -Nrcpad gcc-9.4.0/libcpp/directives.c gcc-9.5.0/libcpp/directives.c *** gcc-9.4.0/libcpp/directives.c Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libcpp/directives.c Fri May 27 07:21:12 2022 *************** destringize_and_run (cpp_reader *pfile, *** 1896,1903 **** else { count = 1; ! toks = XNEW (cpp_token); ! toks[0] = pfile->directive_result; /* If we handled the entire pragma internally, make sure we get the line number correct for the next token. */ --- 1896,1902 ---- else { count = 1; ! toks = &pfile->avoid_paste; /* If we handled the entire pragma internally, make sure we get the line number correct for the next token. */ diff -Nrcpad gcc-9.4.0/libcpp/macro.c gcc-9.5.0/libcpp/macro.c *** gcc-9.4.0/libcpp/macro.c Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libcpp/macro.c Fri May 27 07:21:12 2022 *************** funlike_invocation_p (cpp_reader *pfile, *** 1209,1216 **** token = cpp_get_token (pfile); if (token->type != CPP_PADDING) break; if (padding == NULL ! || (!(padding->flags & PREV_WHITE) && token->val.source == NULL)) padding = token; } --- 1209,1219 ---- token = cpp_get_token (pfile); if (token->type != CPP_PADDING) break; + gcc_assert ((token->flags & PREV_WHITE) == 0); if (padding == NULL ! || padding->val.source == NULL ! || (!(padding->val.source->flags & PREV_WHITE) ! && token->val.source == NULL)) padding = token; } diff -Nrcpad gcc-9.4.0/libcpp/po/ChangeLog gcc-9.5.0/libcpp/po/ChangeLog *** gcc-9.4.0/libcpp/po/ChangeLog Tue Jun 1 07:53:23 2021 --- gcc-9.5.0/libcpp/po/ChangeLog Fri May 27 07:21:30 2022 *************** *** 1,3 **** --- 1,7 ---- + 2022-05-27 Release Manager + + * GCC 9.5.0 released. + 2021-06-01 Release Manager * GCC 9.4.0 released. diff -Nrcpad gcc-9.4.0/libdecnumber/ChangeLog gcc-9.5.0/libdecnumber/ChangeLog *** gcc-9.4.0/libdecnumber/ChangeLog Tue Jun 1 07:53:23 2021 --- gcc-9.5.0/libdecnumber/ChangeLog Fri May 27 07:21:30 2022 *************** *** 1,3 **** --- 1,7 ---- + 2022-05-27 Release Manager + + * GCC 9.5.0 released. + 2021-06-01 Release Manager * GCC 9.4.0 released. diff -Nrcpad gcc-9.4.0/libffi/ChangeLog gcc-9.5.0/libffi/ChangeLog *** gcc-9.4.0/libffi/ChangeLog Tue Jun 1 07:53:23 2021 --- gcc-9.5.0/libffi/ChangeLog Fri May 27 07:21:30 2022 *************** *** 1,3 **** --- 1,18 ---- + 2022-05-27 Release Manager + + * GCC 9.5.0 released. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-06-16 Jakub Jelinek + + * src/x86/ffi64.c (classify_argument): For FFI_TYPE_STRUCT set words + to number of words needed for type->size + byte_offset bytes rather + than just type->size bytes. Compute pos before the loop and check + total size of the structure. + * testsuite/libffi.call/nested_struct12.c: New test. + 2021-06-01 Release Manager * GCC 9.4.0 released. diff -Nrcpad gcc-9.4.0/libffi/src/x86/ffi64.c gcc-9.5.0/libffi/src/x86/ffi64.c *** gcc-9.4.0/libffi/src/x86/ffi64.c Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libffi/src/x86/ffi64.c Fri May 27 07:21:12 2022 *************** classify_argument (ffi_type *type, enum *** 217,223 **** case FFI_TYPE_STRUCT: { const size_t UNITS_PER_WORD = 8; ! size_t words = (type->size + UNITS_PER_WORD - 1) / UNITS_PER_WORD; ffi_type **ptr; int i; enum x86_64_reg_class subclasses[MAX_CLASSES]; --- 217,224 ---- case FFI_TYPE_STRUCT: { const size_t UNITS_PER_WORD = 8; ! size_t words = (type->size + byte_offset + UNITS_PER_WORD - 1) ! / UNITS_PER_WORD; ffi_type **ptr; int i; enum x86_64_reg_class subclasses[MAX_CLASSES]; *************** classify_argument (ffi_type *type, enum *** 241,256 **** /* Merge the fields of structure. */ for (ptr = type->elements; *ptr != NULL; ptr++) { ! size_t num; byte_offset = ALIGN (byte_offset, (*ptr)->alignment); num = classify_argument (*ptr, subclasses, byte_offset % 8); if (num == 0) return 0; ! for (i = 0; i < num; i++) { - size_t pos = byte_offset / 8; classes[i + pos] = merge_classes (subclasses[i], classes[i + pos]); } --- 242,257 ---- /* Merge the fields of structure. */ for (ptr = type->elements; *ptr != NULL; ptr++) { ! size_t num, pos; byte_offset = ALIGN (byte_offset, (*ptr)->alignment); num = classify_argument (*ptr, subclasses, byte_offset % 8); if (num == 0) return 0; ! pos = byte_offset / 8; ! for (i = 0; i < num && (i + pos) < words; i++) { classes[i + pos] = merge_classes (subclasses[i], classes[i + pos]); } diff -Nrcpad gcc-9.4.0/libffi/testsuite/libffi.call/nested_struct12.c gcc-9.5.0/libffi/testsuite/libffi.call/nested_struct12.c *** gcc-9.4.0/libffi/testsuite/libffi.call/nested_struct12.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/libffi/testsuite/libffi.call/nested_struct12.c Fri May 27 07:21:12 2022 *************** *** 0 **** --- 1,107 ---- + /* Area: ffi_call, closure_call + Purpose: Check structure passing. + Limitations: none. + PR: none. + Originator: and 20210609 */ + + /* { dg-do run } */ + #include "ffitest.h" + + typedef struct A { + float a, b; + } A; + + typedef struct B { + float x; + struct A y; + } B; + + B B_fn(float b0, struct B b1) + { + struct B result; + + result.x = b0 + b1.x; + result.y.a = b0 + b1.y.a; + result.y.b = b0 + b1.y.b; + + printf("%g %g %g %g: %g %g %g\n", b0, b1.x, b1.y.a, b1.y.b, + result.x, result.y.a, result.y.b); + + return result; + } + + static void + B_gn(ffi_cif* cif __UNUSED__, void* resp, void** args, + void* userdata __UNUSED__) + { + float b0; + struct B b1; + + b0 = *(float*)(args[0]); + b1 = *(struct B*)(args[1]); + + *(B*)resp = B_fn(b0, b1); + } + + int main (void) + { + ffi_cif cif; + void *code; + ffi_closure *pcl = ffi_closure_alloc(sizeof(ffi_closure), &code); + void* args_dbl[3]; + ffi_type* cls_struct_fields[3]; + ffi_type* cls_struct_fields1[3]; + ffi_type cls_struct_type, cls_struct_type1; + ffi_type* dbl_arg_types[3]; + + float e_dbl = 12.125f; + struct B f_dbl = { 24.75f, { 31.625f, 32.25f } }; + + struct B res_dbl; + + cls_struct_type.size = 0; + cls_struct_type.alignment = 0; + cls_struct_type.type = FFI_TYPE_STRUCT; + cls_struct_type.elements = cls_struct_fields; + + cls_struct_type1.size = 0; + cls_struct_type1.alignment = 0; + cls_struct_type1.type = FFI_TYPE_STRUCT; + cls_struct_type1.elements = cls_struct_fields1; + + cls_struct_fields[0] = &ffi_type_float; + cls_struct_fields[1] = &ffi_type_float; + cls_struct_fields[2] = NULL; + + cls_struct_fields1[0] = &ffi_type_float; + cls_struct_fields1[1] = &cls_struct_type; + cls_struct_fields1[2] = NULL; + + + dbl_arg_types[0] = &ffi_type_float; + dbl_arg_types[1] = &cls_struct_type1; + dbl_arg_types[2] = NULL; + + CHECK(ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 2, &cls_struct_type1, + dbl_arg_types) == FFI_OK); + + args_dbl[0] = &e_dbl; + args_dbl[1] = &f_dbl; + args_dbl[2] = NULL; + + ffi_call(&cif, FFI_FN(B_fn), &res_dbl, args_dbl); + /* { dg-output "12.125 24.75 31.625 32.25: 36.875 43.75 44.375" } */ + CHECK( res_dbl.x == (e_dbl + f_dbl.x)); + CHECK( res_dbl.y.a == (e_dbl + f_dbl.y.a)); + CHECK( res_dbl.y.b == (e_dbl + f_dbl.y.b)); + + CHECK(ffi_prep_closure_loc(pcl, &cif, B_gn, NULL, code) == FFI_OK); + + res_dbl = ((B(*)(float, B))(code))(e_dbl, f_dbl); + /* { dg-output "\n12.125 24.75 31.625 32.25: 36.875 43.75 44.375" } */ + CHECK( res_dbl.x == (e_dbl + f_dbl.x)); + CHECK( res_dbl.y.a == (e_dbl + f_dbl.y.a)); + CHECK( res_dbl.y.b == (e_dbl + f_dbl.y.b)); + + exit(0); + } diff -Nrcpad gcc-9.4.0/libgcc/ChangeLog gcc-9.5.0/libgcc/ChangeLog *** gcc-9.4.0/libgcc/ChangeLog Tue Jun 1 07:53:23 2021 --- gcc-9.5.0/libgcc/ChangeLog Fri May 27 07:21:30 2022 *************** *** 1,3 **** --- 1,35 ---- + 2022-05-27 Release Manager + + * GCC 9.5.0 released. + + 2022-05-16 Sebastian Pop + + PR target/105162 + * config/aarch64/lse.S: Define BARRIER and handle memory MODEL 5. + * config/aarch64/t-lse: Add a 5th memory model for _sync functions. + + 2021-10-27 John David Anglin + + * config.host (hppa*64*-*-linux*): Don't add pa/t-linux to + tmake_file. + * config/pa/linux-atomic.c: Define u8, u16 and u64 types. + Use them in FETCH_AND_OP_2, OP_AND_FETCH_2, COMPARE_AND_SWAP_2, + SYNC_LOCK_TEST_AND_SET_2 and SYNC_LOCK_RELEASE_1 macros. + * config/pa/t-linux64 (LIB1ASMSRC): New define. + (LIB1ASMFUNCS): Revise. + (HOST_LIBGCC2_CFLAGS): Add "-DLINUX=1". + + 2021-08-31 Richard Sandiford + + Backported from master: + 2021-08-31 Richard Sandiford + + * config/aarch64/value-unwind.h: Add missing runtime exception + paragraph. + * config/frv/frv-abi.h: Likewise. + * config/i386/value-unwind.h: Likewise. + * config/pa/pa64-hpux-lib.h: Likewise. + 2021-06-01 Release Manager * GCC 9.4.0 released. diff -Nrcpad gcc-9.4.0/libgcc/config/aarch64/lse.S gcc-9.5.0/libgcc/config/aarch64/lse.S *** gcc-9.4.0/libgcc/config/aarch64/lse.S Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libgcc/config/aarch64/lse.S Fri May 27 07:21:12 2022 *************** see the files COPYING3 and COPYING.RUNTI *** 87,110 **** --- 87,130 ---- # define L # define M 0x000000 # define N 0x000000 + # define BARRIER #elif MODEL == 2 # define SUFF _acq # define A a # define L # define M 0x400000 # define N 0x800000 + # define BARRIER #elif MODEL == 3 # define SUFF _rel # define A # define L l # define M 0x008000 # define N 0x400000 + # define BARRIER #elif MODEL == 4 # define SUFF _acq_rel # define A a # define L l # define M 0x408000 # define N 0xc00000 + # define BARRIER + #elif MODEL == 5 + # define SUFF _sync + #ifdef L_swp + /* swp has _acq semantics. */ + # define A a + # define L + # define M 0x400000 + # define N 0x800000 + #else + /* All other _sync functions have _seq semantics. */ + # define A a + # define L l + # define M 0x408000 + # define N 0xc00000 + #endif + # define BARRIER dmb ish #else # error #endif *************** see the files COPYING3 and COPYING.RUNTI *** 127,133 **** #endif #define NAME(BASE) glue4(__aarch64_, BASE, SIZE, SUFF) ! #define LDXR glue4(ld, A, xr, S) #define STXR glue4(st, L, xr, S) /* Temporary registers used. Other than these, only the return value --- 147,158 ---- #endif #define NAME(BASE) glue4(__aarch64_, BASE, SIZE, SUFF) ! #if MODEL == 5 ! /* Drop A for _sync functions. */ ! # define LDXR glue3(ld, xr, S) ! #else ! # define LDXR glue4(ld, A, xr, S) ! #endif #define STXR glue4(st, L, xr, S) /* Temporary registers used. Other than these, only the return value *************** STARTFN NAME(cas) *** 183,192 **** bne 1f STXR w(tmp1), s(1), [x2] cbnz w(tmp1), 0b ! 1: ret #else ! #define LDXP glue3(ld, A, xp) #define STXP glue3(st, L, xp) #ifdef HAVE_AS_LSE # define CASP glue3(casp, A, L) x0, x1, x2, x3, [x4] --- 208,223 ---- bne 1f STXR w(tmp1), s(1), [x2] cbnz w(tmp1), 0b ! 1: BARRIER ! ret #else ! #if MODEL == 5 ! /* Drop A for _sync functions. */ ! # define LDXP glue2(ld, xp) ! #else ! # define LDXP glue3(ld, A, xp) ! #endif #define STXP glue3(st, L, xp) #ifdef HAVE_AS_LSE # define CASP glue3(casp, A, L) x0, x1, x2, x3, [x4] *************** STARTFN NAME(cas) *** 205,211 **** bne 1f STXP w(tmp2), x2, x3, [x4] cbnz w(tmp2), 0b ! 1: ret #endif --- 236,243 ---- bne 1f STXP w(tmp2), x2, x3, [x4] cbnz w(tmp2), 0b ! 1: BARRIER ! ret #endif *************** STARTFN NAME(swp) *** 229,234 **** --- 261,267 ---- 0: LDXR s(0), [x1] STXR w(tmp1), s(tmp0), [x1] cbnz w(tmp1), 0b + BARRIER ret ENDFN NAME(swp) *************** STARTFN NAME(LDNM) *** 273,278 **** --- 306,312 ---- OP s(tmp1), s(0), s(tmp0) STXR w(tmp2), s(tmp1), [x1] cbnz w(tmp2), 0b + BARRIER ret ENDFN NAME(LDNM) diff -Nrcpad gcc-9.4.0/libgcc/config/aarch64/t-lse gcc-9.5.0/libgcc/config/aarch64/t-lse *** gcc-9.4.0/libgcc/config/aarch64/t-lse Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libgcc/config/aarch64/t-lse Fri May 27 07:21:12 2022 *************** *** 18,30 **** # along with GCC; see the file COPYING3. If not see # . ! # Compare-and-swap has 5 sizes and 4 memory models. S0 := $(foreach s, 1 2 4 8 16, $(addsuffix _$(s), cas)) ! O0 := $(foreach m, 1 2 3 4, $(addsuffix _$(m)$(objext), $(S0))) ! # Swap, Load-and-operate have 4 sizes and 4 memory models S1 := $(foreach s, 1 2 4 8, $(addsuffix _$(s), swp ldadd ldclr ldeor ldset)) ! O1 := $(foreach m, 1 2 3 4, $(addsuffix _$(m)$(objext), $(S1))) LSE_OBJS := $(O0) $(O1) --- 18,30 ---- # along with GCC; see the file COPYING3. If not see # . ! # Compare-and-swap has 5 sizes and 5 memory models. S0 := $(foreach s, 1 2 4 8 16, $(addsuffix _$(s), cas)) ! O0 := $(foreach m, 1 2 3 4 5, $(addsuffix _$(m)$(objext), $(S0))) ! # Swap, Load-and-operate have 4 sizes and 5 memory models S1 := $(foreach s, 1 2 4 8, $(addsuffix _$(s), swp ldadd ldclr ldeor ldset)) ! O1 := $(foreach m, 1 2 3 4 5, $(addsuffix _$(m)$(objext), $(S1))) LSE_OBJS := $(O0) $(O1) diff -Nrcpad gcc-9.4.0/libgcc/config/aarch64/value-unwind.h gcc-9.5.0/libgcc/config/aarch64/value-unwind.h *** gcc-9.4.0/libgcc/config/aarch64/value-unwind.h Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libgcc/config/aarch64/value-unwind.h Fri May 27 07:21:12 2022 *************** *** 13,18 **** --- 13,22 ---- 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 diff -Nrcpad gcc-9.4.0/libgcc/config/frv/frv-abi.h gcc-9.5.0/libgcc/config/frv/frv-abi.h *** gcc-9.4.0/libgcc/config/frv/frv-abi.h Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libgcc/config/frv/frv-abi.h Fri May 27 07:21:12 2022 *************** *** 14,19 **** --- 14,23 ---- 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 diff -Nrcpad gcc-9.4.0/libgcc/config/i386/value-unwind.h gcc-9.5.0/libgcc/config/i386/value-unwind.h *** gcc-9.4.0/libgcc/config/i386/value-unwind.h Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libgcc/config/i386/value-unwind.h Fri May 27 07:21:12 2022 *************** *** 13,18 **** --- 13,22 ---- 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 diff -Nrcpad gcc-9.4.0/libgcc/config/libbid/ChangeLog gcc-9.5.0/libgcc/config/libbid/ChangeLog *** gcc-9.4.0/libgcc/config/libbid/ChangeLog Tue Jun 1 07:53:23 2021 --- gcc-9.5.0/libgcc/config/libbid/ChangeLog Fri May 27 07:21:30 2022 *************** *** 1,3 **** --- 1,7 ---- + 2022-05-27 Release Manager + + * GCC 9.5.0 released. + 2021-06-01 Release Manager * GCC 9.4.0 released. diff -Nrcpad gcc-9.4.0/libgcc/config/pa/linux-atomic.c gcc-9.5.0/libgcc/config/pa/linux-atomic.c *** gcc-9.4.0/libgcc/config/pa/linux-atomic.c Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libgcc/config/pa/linux-atomic.c Fri May 27 07:21:12 2022 *************** see the files COPYING3 and COPYING.RUNTI *** 28,33 **** --- 28,41 ---- #define EBUSY 16 #define ENOSYS 251 + typedef unsigned char u8; + typedef short unsigned int u16; + #ifdef __LP64__ + typedef long unsigned int u64; + #else + typedef long long unsigned int u64; + #endif + /* PA-RISC 2.0 supports out-of-order execution for loads and stores. Thus, we need to synchonize memory accesses. For more info, see: "Advanced Performance Features of the 64-bit PA-8000" by Doug Hunt. *************** __kernel_cmpxchg2 (volatile void *mem, c *** 117,142 **** return tmp; \ } ! FETCH_AND_OP_2 (add, , +, long long unsigned int, 8, 3) ! FETCH_AND_OP_2 (sub, , -, long long unsigned int, 8, 3) ! FETCH_AND_OP_2 (or, , |, long long unsigned int, 8, 3) ! FETCH_AND_OP_2 (and, , &, long long unsigned int, 8, 3) ! FETCH_AND_OP_2 (xor, , ^, long long unsigned int, 8, 3) ! FETCH_AND_OP_2 (nand, ~, &, long long unsigned int, 8, 3) ! FETCH_AND_OP_2 (add, , +, short unsigned int, 2, 1) ! FETCH_AND_OP_2 (sub, , -, short unsigned int, 2, 1) ! FETCH_AND_OP_2 (or, , |, short unsigned int, 2, 1) ! FETCH_AND_OP_2 (and, , &, short unsigned int, 2, 1) ! FETCH_AND_OP_2 (xor, , ^, short unsigned int, 2, 1) ! FETCH_AND_OP_2 (nand, ~, &, short unsigned int, 2, 1) ! FETCH_AND_OP_2 (add, , +, unsigned char, 1, 0) ! FETCH_AND_OP_2 (sub, , -, unsigned char, 1, 0) ! FETCH_AND_OP_2 (or, , |, unsigned char, 1, 0) ! FETCH_AND_OP_2 (and, , &, unsigned char, 1, 0) ! FETCH_AND_OP_2 (xor, , ^, unsigned char, 1, 0) ! FETCH_AND_OP_2 (nand, ~, &, unsigned char, 1, 0) #define OP_AND_FETCH_2(OP, PFX_OP, INF_OP, TYPE, WIDTH, INDEX) \ TYPE HIDDEN \ --- 125,150 ---- return tmp; \ } ! FETCH_AND_OP_2 (add, , +, u64, 8, 3) ! FETCH_AND_OP_2 (sub, , -, u64, 8, 3) ! FETCH_AND_OP_2 (or, , |, u64, 8, 3) ! FETCH_AND_OP_2 (and, , &, u64, 8, 3) ! FETCH_AND_OP_2 (xor, , ^, u64, 8, 3) ! FETCH_AND_OP_2 (nand, ~, &, u64, 8, 3) ! FETCH_AND_OP_2 (add, , +, u16, 2, 1) ! FETCH_AND_OP_2 (sub, , -, u16, 2, 1) ! FETCH_AND_OP_2 (or, , |, u16, 2, 1) ! FETCH_AND_OP_2 (and, , &, u16, 2, 1) ! FETCH_AND_OP_2 (xor, , ^, u16, 2, 1) ! FETCH_AND_OP_2 (nand, ~, &, u16, 2, 1) ! FETCH_AND_OP_2 (add, , +, u8, 1, 0) ! FETCH_AND_OP_2 (sub, , -, u8, 1, 0) ! FETCH_AND_OP_2 (or, , |, u8, 1, 0) ! FETCH_AND_OP_2 (and, , &, u8, 1, 0) ! FETCH_AND_OP_2 (xor, , ^, u8, 1, 0) ! FETCH_AND_OP_2 (nand, ~, &, u8, 1, 0) #define OP_AND_FETCH_2(OP, PFX_OP, INF_OP, TYPE, WIDTH, INDEX) \ TYPE HIDDEN \ *************** FETCH_AND_OP_2 (nand, ~, &, unsigned cha *** 154,179 **** return PFX_OP (tmp INF_OP val); \ } ! OP_AND_FETCH_2 (add, , +, long long unsigned int, 8, 3) ! OP_AND_FETCH_2 (sub, , -, long long unsigned int, 8, 3) ! OP_AND_FETCH_2 (or, , |, long long unsigned int, 8, 3) ! OP_AND_FETCH_2 (and, , &, long long unsigned int, 8, 3) ! OP_AND_FETCH_2 (xor, , ^, long long unsigned int, 8, 3) ! OP_AND_FETCH_2 (nand, ~, &, long long unsigned int, 8, 3) ! OP_AND_FETCH_2 (add, , +, short unsigned int, 2, 1) ! OP_AND_FETCH_2 (sub, , -, short unsigned int, 2, 1) ! OP_AND_FETCH_2 (or, , |, short unsigned int, 2, 1) ! OP_AND_FETCH_2 (and, , &, short unsigned int, 2, 1) ! OP_AND_FETCH_2 (xor, , ^, short unsigned int, 2, 1) ! OP_AND_FETCH_2 (nand, ~, &, short unsigned int, 2, 1) ! OP_AND_FETCH_2 (add, , +, unsigned char, 1, 0) ! OP_AND_FETCH_2 (sub, , -, unsigned char, 1, 0) ! OP_AND_FETCH_2 (or, , |, unsigned char, 1, 0) ! OP_AND_FETCH_2 (and, , &, unsigned char, 1, 0) ! OP_AND_FETCH_2 (xor, , ^, unsigned char, 1, 0) ! OP_AND_FETCH_2 (nand, ~, &, unsigned char, 1, 0) #define FETCH_AND_OP_WORD(OP, PFX_OP, INF_OP) \ unsigned int HIDDEN \ --- 162,187 ---- return PFX_OP (tmp INF_OP val); \ } ! OP_AND_FETCH_2 (add, , +, u64, 8, 3) ! OP_AND_FETCH_2 (sub, , -, u64, 8, 3) ! OP_AND_FETCH_2 (or, , |, u64, 8, 3) ! OP_AND_FETCH_2 (and, , &, u64, 8, 3) ! OP_AND_FETCH_2 (xor, , ^, u64, 8, 3) ! OP_AND_FETCH_2 (nand, ~, &, u64, 8, 3) ! OP_AND_FETCH_2 (add, , +, u16, 2, 1) ! OP_AND_FETCH_2 (sub, , -, u16, 2, 1) ! OP_AND_FETCH_2 (or, , |, u16, 2, 1) ! OP_AND_FETCH_2 (and, , &, u16, 2, 1) ! OP_AND_FETCH_2 (xor, , ^, u16, 2, 1) ! OP_AND_FETCH_2 (nand, ~, &, u16, 2, 1) ! OP_AND_FETCH_2 (add, , +, u8, 1, 0) ! OP_AND_FETCH_2 (sub, , -, u8, 1, 0) ! OP_AND_FETCH_2 (or, , |, u8, 1, 0) ! OP_AND_FETCH_2 (and, , &, u8, 1, 0) ! OP_AND_FETCH_2 (xor, , ^, u8, 1, 0) ! OP_AND_FETCH_2 (nand, ~, &, u8, 1, 0) #define FETCH_AND_OP_WORD(OP, PFX_OP, INF_OP) \ unsigned int HIDDEN \ *************** typedef unsigned char bool; *** 254,262 **** return (failure == 0); \ } ! COMPARE_AND_SWAP_2 (long long unsigned int, 8, 3) ! COMPARE_AND_SWAP_2 (short unsigned int, 2, 1) ! COMPARE_AND_SWAP_2 (unsigned char, 1, 0) unsigned int HIDDEN __sync_val_compare_and_swap_4 (volatile void *ptr, unsigned int oldval, --- 262,270 ---- return (failure == 0); \ } ! COMPARE_AND_SWAP_2 (u64, 8, 3) ! COMPARE_AND_SWAP_2 (u16, 2, 1) ! COMPARE_AND_SWAP_2 (u8, 1, 0) unsigned int HIDDEN __sync_val_compare_and_swap_4 (volatile void *ptr, unsigned int oldval, *************** TYPE HIDDEN \ *** 304,312 **** return oldval; \ } ! SYNC_LOCK_TEST_AND_SET_2 (long long unsigned int, 8, 3) ! SYNC_LOCK_TEST_AND_SET_2 (short unsigned int, 2, 1) ! SYNC_LOCK_TEST_AND_SET_2 (unsigned char, 1, 0) unsigned int HIDDEN __sync_lock_test_and_set_4 (volatile void *ptr, unsigned int val) --- 312,320 ---- return oldval; \ } ! SYNC_LOCK_TEST_AND_SET_2 (u64, 8, 3) ! SYNC_LOCK_TEST_AND_SET_2 (u16, 2, 1) ! SYNC_LOCK_TEST_AND_SET_2 (u8, 1, 0) unsigned int HIDDEN __sync_lock_test_and_set_4 (volatile void *ptr, unsigned int val) *************** __sync_lock_test_and_set_4 (volatile voi *** 336,344 **** } while (failure != 0); \ } ! SYNC_LOCK_RELEASE_1 (long long unsigned int, 8, 3) ! SYNC_LOCK_RELEASE_1 (short unsigned int, 2, 1) ! SYNC_LOCK_RELEASE_1 (unsigned char, 1, 0) void HIDDEN __sync_lock_release_4 (volatile void *ptr) --- 344,352 ---- } while (failure != 0); \ } ! SYNC_LOCK_RELEASE_1 (u64, 8, 3) ! SYNC_LOCK_RELEASE_1 (u16, 2, 1) ! SYNC_LOCK_RELEASE_1 (u8, 1, 0) void HIDDEN __sync_lock_release_4 (volatile void *ptr) diff -Nrcpad gcc-9.4.0/libgcc/config/pa/pa64-hpux-lib.h gcc-9.5.0/libgcc/config/pa/pa64-hpux-lib.h *** gcc-9.4.0/libgcc/config/pa/pa64-hpux-lib.h Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libgcc/config/pa/pa64-hpux-lib.h Fri May 27 07:21:12 2022 *************** but WITHOUT ANY WARRANTY; without even t *** 14,21 **** 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 . */ /* We use DTOR_LIST_BEGIN to carry a bunch of hacks to allow us to use --- 14,26 ---- 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 . */ /* We use DTOR_LIST_BEGIN to carry a bunch of hacks to allow us to use diff -Nrcpad gcc-9.4.0/libgcc/config/pa/t-linux64 gcc-9.5.0/libgcc/config/pa/t-linux64 *** gcc-9.4.0/libgcc/config/pa/t-linux64 Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libgcc/config/pa/t-linux64 Fri May 27 07:21:12 2022 *************** *** 1,8 **** # Plug millicode routines into libgcc.a We want these on both native and # cross compiles. ! # FIXME: Explain. ! LIB1ASMFUNCS := $(filter-out _dyncall, $(LIB1ASMFUNCS)) ! LIB2ADD_ST = $(srcdir)/config/pa/linux-atomic.c ! HOST_LIBGCC2_CFLAGS += -Dpa64=1 -DELF=1 --- 1,8 ---- # Plug millicode routines into libgcc.a We want these on both native and # cross compiles. ! LIB1ASMSRC = pa/milli64.S ! LIB1ASMFUNCS = _divI _divU _remI _remU _div_const _mulI ! HOST_LIBGCC2_CFLAGS += -Dpa64=1 -DELF=1 -DLINUX=1 ! LIB2ADD_ST = $(srcdir)/config/pa/linux-atomic.c diff -Nrcpad gcc-9.4.0/libgcc/config.host gcc-9.5.0/libgcc/config.host *** gcc-9.4.0/libgcc/config.host Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libgcc/config.host Fri May 27 07:21:12 2022 *************** h8300-*-linux*) *** 566,572 **** tm_file="$tm_file h8300/h8300-lib.h" ;; hppa*64*-*-linux*) ! tmake_file="$tmake_file pa/t-linux pa/t-linux64" extra_parts="crtbegin.o crtbeginS.o crtbeginT.o crtend.o crtendS.o" ;; hppa*-*-linux*) --- 566,572 ---- tm_file="$tm_file h8300/h8300-lib.h" ;; hppa*64*-*-linux*) ! tmake_file="$tmake_file pa/t-linux64" extra_parts="crtbegin.o crtbeginS.o crtbeginT.o crtend.o crtendS.o" ;; hppa*-*-linux*) diff -Nrcpad gcc-9.4.0/libgfortran/ChangeLog gcc-9.5.0/libgfortran/ChangeLog *** gcc-9.4.0/libgfortran/ChangeLog Tue Jun 1 07:53:23 2021 --- gcc-9.5.0/libgfortran/ChangeLog Fri May 27 07:21:30 2022 *************** *** 1,3 **** --- 1,17 ---- + 2022-05-27 Release Manager + + * GCC 9.5.0 released. + + 2021-12-27 Harald Anlauf + + Backported from master: + 2021-12-14 Harald Anlauf + + PR libfortran/103634 + * intrinsics/pack_generic.c (pack_internal): Handle case when the + array argument of PACK has one or more extents of size zero to + avoid invalid reads. + 2021-06-01 Release Manager * GCC 9.4.0 released. diff -Nrcpad gcc-9.4.0/libgfortran/intrinsics/pack_generic.c gcc-9.5.0/libgfortran/intrinsics/pack_generic.c *** gcc-9.4.0/libgfortran/intrinsics/pack_generic.c Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libgfortran/intrinsics/pack_generic.c Fri May 27 07:21:12 2022 *************** pack_internal (gfc_array_char *ret, cons *** 85,90 **** --- 85,91 ---- index_type count[GFC_MAX_DIMENSIONS]; index_type extent[GFC_MAX_DIMENSIONS]; + bool zero_sized; index_type n; index_type dim; index_type nelem; *************** pack_internal (gfc_array_char *ret, cons *** 114,123 **** --- 115,127 ---- else runtime_error ("Funny sized logical array"); + zero_sized = false; for (n = 0; n < dim; n++) { count[n] = 0; extent[n] = GFC_DESCRIPTOR_EXTENT(array,n); + if (extent[n] <= 0) + zero_sized = true; sstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(array,n); mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); } *************** pack_internal (gfc_array_char *ret, cons *** 126,131 **** --- 130,140 ---- if (mstride[0] == 0) mstride[0] = mask_kind; + if (zero_sized) + sptr = NULL; + else + sptr = array->base_addr; + if (ret->base_addr == NULL || unlikely (compile_options.bounds_check)) { /* Count the elements, either for allocating memory or diff -Nrcpad gcc-9.4.0/libgomp/ChangeLog gcc-9.5.0/libgomp/ChangeLog *** gcc-9.4.0/libgomp/ChangeLog Tue Jun 1 07:53:23 2021 --- gcc-9.5.0/libgomp/ChangeLog Fri May 27 07:21:30 2022 *************** *** 1,3 **** --- 1,75 ---- + 2022-05-27 Release Manager + + * GCC 9.5.0 released. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2022-02-08 Jakub Jelinek + + PR libgomp/104385 + * task.c (gomp_task_run_post_handle_dependers): If parent is NULL, + clear task->parent. + * testsuite/libgomp.c/pr104385.c: New test. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-10-15 Jakub Jelinek + + * config/linux/affinity.c (gomp_affinity_init_level_1): For level 1 + after creating count places clean up and return immediately. + * testsuite/libgomp.c/places-6.c: New test. + * testsuite/libgomp.c/places-7.c: New test. + * testsuite/libgomp.c/places-8.c: New test. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-07-01 Jakub Jelinek + + PR middle-end/94366 + * testsuite/libgomp.c-c++-common/pr94366.c: New test. + + 2022-05-11 Tobias Burnus + + Backported from master: + 2021-05-04 Tobias Burnus + + * testsuite/libgomp.c-c++-common/reduction-1.c: New test. + * testsuite/libgomp.c-c++-common/reduction-2.c: New test. + * testsuite/libgomp.c-c++-common/reduction-3.c: New test. + * testsuite/libgomp.c-c++-common/reduction-4.c: New file. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-07-13 Jakub Jelinek + Florian Weimer + + * config/linux/sem.h: Don't include limits.h. + (SEM_WAIT): Define to -__INT_MAX__ - 1 instead of INT_MIN. + * config/linux/affinity.c: Include limits.h. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-06-23 Jakub Jelinek + + PR middle-end/101167 + * testsuite/libgomp.c-c++-common/task-reduction-15.c: New test. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2021-05-11 Jakub Jelinek + + PR middle-end/100471 + * taskloop.c (GOMP_taskloop): If GOMP_TASK_FLAG_REDUCTION and not + GOMP_TASK_FLAG_NOGROUP, when doing early return clear the task + reduction pointer. + * testsuite/libgomp.c/task-reduction-4.c: New test. + 2021-06-01 Release Manager * GCC 9.4.0 released. diff -Nrcpad gcc-9.4.0/libgomp/config/linux/affinity.c gcc-9.5.0/libgomp/config/linux/affinity.c *** gcc-9.4.0/libgomp/config/linux/affinity.c Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libgomp/config/linux/affinity.c Fri May 27 07:21:13 2022 *************** *** 35,40 **** --- 35,41 ---- #include #include #include + #include #ifdef HAVE_PTHREAD_AFFINITY_NP *************** gomp_affinity_init_level_1 (int level, i *** 280,287 **** if (gomp_affinity_add_cpus (pl, first, 1, 0, true)) { CPU_CLR_S (first, gomp_cpuset_size, copy); ! if (level == 1) ! gomp_places_list_len++; } } if (*p == ',') --- 281,293 ---- if (gomp_affinity_add_cpus (pl, first, 1, 0, true)) { CPU_CLR_S (first, gomp_cpuset_size, copy); ! if (level == 1 ! && ++gomp_places_list_len >= count) ! { ! fclose (f); ! free (line); ! return; ! } } } if (*p == ',') diff -Nrcpad gcc-9.4.0/libgomp/config/linux/sem.h gcc-9.5.0/libgomp/config/linux/sem.h *** gcc-9.4.0/libgomp/config/linux/sem.h Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libgomp/config/linux/sem.h Fri May 27 07:21:13 2022 *************** *** 33,42 **** #ifndef GOMP_SEM_H #define GOMP_SEM_H 1 - #include /* For INT_MIN */ - typedef int gomp_sem_t; ! #define SEM_WAIT INT_MIN #define SEM_INC 1 extern void gomp_sem_wait_slow (gomp_sem_t *, int); --- 33,40 ---- #ifndef GOMP_SEM_H #define GOMP_SEM_H 1 typedef int gomp_sem_t; ! #define SEM_WAIT (-__INT_MAX__ - 1) #define SEM_INC 1 extern void gomp_sem_wait_slow (gomp_sem_t *, int); diff -Nrcpad gcc-9.4.0/libgomp/task.c gcc-9.5.0/libgomp/task.c *** gcc-9.4.0/libgomp/task.c Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libgomp/task.c Fri May 27 07:21:13 2022 *************** gomp_task_run_post_handle_dependers (str *** 1188,1193 **** --- 1188,1195 ---- } } } + else + task->parent = NULL; if (taskgroup) { priority_queue_insert (PQ_TASKGROUP, &taskgroup->taskgroup_queue, diff -Nrcpad gcc-9.4.0/libgomp/taskloop.c gcc-9.5.0/libgomp/taskloop.c *** gcc-9.4.0/libgomp/taskloop.c Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libgomp/taskloop.c Fri May 27 07:21:13 2022 *************** GOMP_taskloop (void (*fn) (void *), void *** 51,70 **** /* If parallel or taskgroup has been cancelled, don't start new tasks. */ if (team && gomp_team_barrier_cancelled (&team->barrier)) ! return; #ifdef TYPE_is_long TYPE s = step; if (step > 0) { if (start >= end) ! return; s--; } else { if (start <= end) ! return; s++; } UTYPE n = (end - start + s) / step; --- 51,82 ---- /* If parallel or taskgroup has been cancelled, don't start new tasks. */ if (team && gomp_team_barrier_cancelled (&team->barrier)) ! { ! early_return: ! if ((flags & (GOMP_TASK_FLAG_NOGROUP | GOMP_TASK_FLAG_REDUCTION)) ! == GOMP_TASK_FLAG_REDUCTION) ! { ! struct gomp_data_head { TYPE t1, t2; uintptr_t *ptr; }; ! uintptr_t *ptr = ((struct gomp_data_head *) data)->ptr; ! /* Tell callers GOMP_taskgroup_reduction_register has not been ! called. */ ! ptr[2] = 0; ! } ! return; ! } #ifdef TYPE_is_long TYPE s = step; if (step > 0) { if (start >= end) ! goto early_return; s--; } else { if (start <= end) ! goto early_return; s++; } UTYPE n = (end - start + s) / step; *************** GOMP_taskloop (void (*fn) (void *), void *** 73,85 **** if (flags & GOMP_TASK_FLAG_UP) { if (start >= end) ! return; n = (end - start + step - 1) / step; } else { if (start <= end) ! return; n = (start - end - step - 1) / -step; } #endif --- 85,97 ---- if (flags & GOMP_TASK_FLAG_UP) { if (start >= end) ! goto early_return; n = (end - start + step - 1) / step; } else { if (start <= end) ! goto early_return; n = (start - end - step - 1) / -step; } #endif diff -Nrcpad gcc-9.4.0/libgomp/testsuite/libgomp.c/places-6.c gcc-9.5.0/libgomp/testsuite/libgomp.c/places-6.c *** gcc-9.4.0/libgomp/testsuite/libgomp.c/places-6.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/libgomp/testsuite/libgomp.c/places-6.c Fri May 27 07:21:13 2022 *************** *** 0 **** --- 1,8 ---- + /* { dg-set-target-env-var OMP_PLACES "threads(1)" } */ + /* { dg-set-target-env-var OMP_DISPLAY_ENV "true" } */ + + int + main () + { + return 0; + } diff -Nrcpad gcc-9.4.0/libgomp/testsuite/libgomp.c/places-7.c gcc-9.5.0/libgomp/testsuite/libgomp.c/places-7.c *** gcc-9.4.0/libgomp/testsuite/libgomp.c/places-7.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/libgomp/testsuite/libgomp.c/places-7.c Fri May 27 07:21:13 2022 *************** *** 0 **** --- 1,8 ---- + /* { dg-set-target-env-var OMP_PLACES "cores(1)" } */ + /* { dg-set-target-env-var OMP_DISPLAY_ENV "true" } */ + + int + main () + { + return 0; + } diff -Nrcpad gcc-9.4.0/libgomp/testsuite/libgomp.c/places-8.c gcc-9.5.0/libgomp/testsuite/libgomp.c/places-8.c *** gcc-9.4.0/libgomp/testsuite/libgomp.c/places-8.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/libgomp/testsuite/libgomp.c/places-8.c Fri May 27 07:21:13 2022 *************** *** 0 **** --- 1,8 ---- + /* { dg-set-target-env-var OMP_PLACES "sockets(1)" } */ + /* { dg-set-target-env-var OMP_DISPLAY_ENV "true" } */ + + int + main () + { + return 0; + } diff -Nrcpad gcc-9.4.0/libgomp/testsuite/libgomp.c/pr104385.c gcc-9.5.0/libgomp/testsuite/libgomp.c/pr104385.c *** gcc-9.4.0/libgomp/testsuite/libgomp.c/pr104385.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/libgomp/testsuite/libgomp.c/pr104385.c Fri May 27 07:21:13 2022 *************** *** 0 **** --- 1,26 ---- + /* PR libgomp/104385 */ + + #include + + int + main () + { + int j = 0; + #pragma omp parallel shared(j) num_threads(2) + { + #pragma omp barrier + #pragma omp master + #pragma omp task shared(j) + { + #pragma omp task depend(out: j) shared(j) + { + usleep (10000); + j = 1; + } + + #pragma omp task depend(inout: j) shared(j) + j += 1; + } + } + return j - 2; + } diff -Nrcpad gcc-9.4.0/libgomp/testsuite/libgomp.c/task-reduction-4.c gcc-9.5.0/libgomp/testsuite/libgomp.c/task-reduction-4.c *** gcc-9.4.0/libgomp/testsuite/libgomp.c/task-reduction-4.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/libgomp/testsuite/libgomp.c/task-reduction-4.c Fri May 27 07:21:13 2022 *************** *** 0 **** --- 1,21 ---- + /* PR middle-end/100471 */ + + extern void abort (void); + + int c; + + int + main () + { + #pragma omp parallel + #pragma omp single + { + int r = 0, i; + #pragma omp taskloop reduction(+:r) + for (i = 0; i < c; i++) + r++; + if (r != 0) + abort (); + } + return 0; + } diff -Nrcpad gcc-9.4.0/libgomp/testsuite/libgomp.c-c++-common/pr94366.c gcc-9.5.0/libgomp/testsuite/libgomp.c-c++-common/pr94366.c *** gcc-9.4.0/libgomp/testsuite/libgomp.c-c++-common/pr94366.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/libgomp/testsuite/libgomp.c-c++-common/pr94366.c Fri May 27 07:21:13 2022 *************** *** 0 **** --- 1,17 ---- + /* PR middle-end/94366 */ + + int + main () + { + int a = 2; + #pragma omp parallel reduction(&& : a) + a = a && 1; + if (!a) + __builtin_abort (); + a = 4; + #pragma omp parallel reduction(|| : a) + a = a || 0; + if (!a) + __builtin_abort (); + return 0; + } diff -Nrcpad gcc-9.4.0/libgomp/testsuite/libgomp.c-c++-common/reduction-1.c gcc-9.5.0/libgomp/testsuite/libgomp.c-c++-common/reduction-1.c *** gcc-9.4.0/libgomp/testsuite/libgomp.c-c++-common/reduction-1.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/libgomp/testsuite/libgomp.c-c++-common/reduction-1.c Fri May 27 07:21:13 2022 *************** *** 0 **** --- 1,192 ---- + /* C / C++'s logical AND and OR operators take any scalar argument + which compares (un)equal to 0 - the result 1 or 0 and of type int. + + In this testcase, the int result is again converted to a floating-poing + or complex type. + + While having a floating-point/complex array element with || and && can make + sense, having a non-integer/non-bool reduction variable is odd but valid. + + Test: FP reduction variable + FP array. */ + + #define N 1024 + _Complex float rcf[N]; + _Complex double rcd[N]; + float rf[N]; + double rd[N]; + + int + reduction_or () + { + float orf = 0; + double ord = 0; + _Complex float orfc = 0; + _Complex double ordc = 0; + + #pragma omp parallel reduction(||: orf) + for (int i=0; i < N; ++i) + orf = orf || rf[i]; + + #pragma omp parallel for reduction(||: ord) + for (int i=0; i < N; ++i) + ord = ord || rcd[i]; + + #pragma omp parallel for simd reduction(||: orfc) + for (int i=0; i < N; ++i) + orfc = orfc || rcf[i]; + + #pragma omp parallel for reduction(||: ordc) + for (int i=0; i < N; ++i) + ordc = ordc || rcd[i]; + + return orf + ord + __real__ orfc + __real__ ordc; + } + + int + reduction_or_teams () + { + float orf = 0; + double ord = 0; + _Complex float orfc = 0; + _Complex double ordc = 0; + + #pragma omp teams distribute parallel for reduction(||: orf) + for (int i=0; i < N; ++i) + orf = orf || rf[i]; + + #pragma omp teams distribute parallel for simd reduction(||: ord) + for (int i=0; i < N; ++i) + ord = ord || rcd[i]; + + #pragma omp teams distribute parallel for reduction(||: orfc) + for (int i=0; i < N; ++i) + orfc = orfc || rcf[i]; + + #pragma omp teams distribute parallel for simd reduction(||: ordc) + for (int i=0; i < N; ++i) + ordc = ordc || rcd[i]; + + return orf + ord + __real__ orfc + __real__ ordc; + } + + int + reduction_and () + { + float andf = 1; + double andd = 1; + _Complex float andfc = 1; + _Complex double anddc = 1; + + #pragma omp parallel reduction(&&: andf) + for (int i=0; i < N; ++i) + andf = andf && rf[i]; + + #pragma omp parallel for reduction(&&: andd) + for (int i=0; i < N; ++i) + andd = andd && rcd[i]; + + #pragma omp parallel for simd reduction(&&: andfc) + for (int i=0; i < N; ++i) + andfc = andfc && rcf[i]; + + #pragma omp parallel for reduction(&&: anddc) + for (int i=0; i < N; ++i) + anddc = anddc && rcd[i]; + + return andf + andd + __real__ andfc + __real__ anddc; + } + + int + reduction_and_teams () + { + float andf = 1; + double andd = 1; + _Complex float andfc = 1; + _Complex double anddc = 1; + + #pragma omp teams distribute parallel for reduction(&&: andf) + for (int i=0; i < N; ++i) + andf = andf && rf[i]; + + #pragma omp teams distribute parallel for simd reduction(&&: andd) + for (int i=0; i < N; ++i) + andd = andd && rcd[i]; + + #pragma omp teams distribute parallel for reduction(&&: andfc) + for (int i=0; i < N; ++i) + andfc = andfc && rcf[i]; + + #pragma omp teams distribute parallel for simd reduction(&&: anddc) + for (int i=0; i < N; ++i) + anddc = anddc && rcd[i]; + + return andf + andd + __real__ andfc + __real__ anddc; + } + + int + main () + { + for (int i = 0; i < N; ++i) + { + rf[i] = 0; + rd[i] = 0; + rcf[i] = 0; + rcd[i] = 0; + } + + if (reduction_or () != 0) + __builtin_abort (); + if (reduction_or_teams () != 0) + __builtin_abort (); + if (reduction_and () != 0) + __builtin_abort (); + if (reduction_and_teams () != 0) + __builtin_abort (); + + rf[10] = 1.0; + rd[15] = 1.0; + rcf[10] = 1.0; + rcd[15] = 1.0i; + + if (reduction_or () != 4) + __builtin_abort (); + if (reduction_or_teams () != 4) + __builtin_abort (); + if (reduction_and () != 0) + __builtin_abort (); + if (reduction_and_teams () != 0) + __builtin_abort (); + + for (int i = 0; i < N; ++i) + { + rf[i] = 1; + rd[i] = 1; + rcf[i] = 1; + rcd[i] = 1; + } + + if (reduction_or () != 4) + __builtin_abort (); + if (reduction_or_teams () != 4) + __builtin_abort (); + if (reduction_and () != 4) + __builtin_abort (); + if (reduction_and_teams () != 4) + __builtin_abort (); + + rf[10] = 0.0; + rd[15] = 0.0; + rcf[10] = 0.0; + rcd[15] = 0.0; + + if (reduction_or () != 4) + __builtin_abort (); + if (reduction_or_teams () != 4) + __builtin_abort (); + if (reduction_and () != 0) + __builtin_abort (); + if (reduction_and_teams () != 0) + __builtin_abort (); + + return 0; + } diff -Nrcpad gcc-9.4.0/libgomp/testsuite/libgomp.c-c++-common/reduction-2.c gcc-9.5.0/libgomp/testsuite/libgomp.c-c++-common/reduction-2.c *** gcc-9.4.0/libgomp/testsuite/libgomp.c-c++-common/reduction-2.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/libgomp/testsuite/libgomp.c-c++-common/reduction-2.c Fri May 27 07:21:13 2022 *************** *** 0 **** --- 1,192 ---- + /* C / C++'s logical AND and OR operators take any scalar argument + which compares (un)equal to 0 - the result 1 or 0 and of type int. + + In this testcase, the int result is again converted to a floating-poing + or complex type. + + While having a floating-point/complex array element with || and && can make + sense, having a non-integer/non-bool reduction variable is odd but valid. + + Test: FP reduction variable + integer array. */ + + #define N 1024 + char rcf[N]; + short rcd[N]; + int rf[N]; + long rd[N]; + + int + reduction_or () + { + float orf = 0; + double ord = 0; + _Complex float orfc = 0; + _Complex double ordc = 0; + + #pragma omp parallel reduction(||: orf) + for (int i=0; i < N; ++i) + orf = orf || rf[i]; + + #pragma omp parallel for reduction(||: ord) + for (int i=0; i < N; ++i) + ord = ord || rcd[i]; + + #pragma omp parallel for simd reduction(||: orfc) + for (int i=0; i < N; ++i) + orfc = orfc || rcf[i]; + + #pragma omp parallel for reduction(||: ordc) + for (int i=0; i < N; ++i) + ordc = ordc || rcd[i]; + + return orf + ord + __real__ orfc + __real__ ordc; + } + + int + reduction_or_teams () + { + float orf = 0; + double ord = 0; + _Complex float orfc = 0; + _Complex double ordc = 0; + + #pragma omp teams distribute parallel for reduction(||: orf) + for (int i=0; i < N; ++i) + orf = orf || rf[i]; + + #pragma omp teams distribute parallel for simd reduction(||: ord) + for (int i=0; i < N; ++i) + ord = ord || rcd[i]; + + #pragma omp teams distribute parallel for reduction(||: orfc) + for (int i=0; i < N; ++i) + orfc = orfc || rcf[i]; + + #pragma omp teams distribute parallel for simd reduction(||: ordc) + for (int i=0; i < N; ++i) + ordc = ordc || rcd[i]; + + return orf + ord + __real__ orfc + __real__ ordc; + } + + int + reduction_and () + { + float andf = 1; + double andd = 1; + _Complex float andfc = 1; + _Complex double anddc = 1; + + #pragma omp parallel reduction(&&: andf) + for (int i=0; i < N; ++i) + andf = andf && rf[i]; + + #pragma omp parallel for reduction(&&: andd) + for (int i=0; i < N; ++i) + andd = andd && rcd[i]; + + #pragma omp parallel for simd reduction(&&: andfc) + for (int i=0; i < N; ++i) + andfc = andfc && rcf[i]; + + #pragma omp parallel for reduction(&&: anddc) + for (int i=0; i < N; ++i) + anddc = anddc && rcd[i]; + + return andf + andd + __real__ andfc + __real__ anddc; + } + + int + reduction_and_teams () + { + float andf = 1; + double andd = 1; + _Complex float andfc = 1; + _Complex double anddc = 1; + + #pragma omp teams distribute parallel for reduction(&&: andf) + for (int i=0; i < N; ++i) + andf = andf && rf[i]; + + #pragma omp teams distribute parallel for simd reduction(&&: andd) + for (int i=0; i < N; ++i) + andd = andd && rcd[i]; + + #pragma omp teams distribute parallel for reduction(&&: andfc) + for (int i=0; i < N; ++i) + andfc = andfc && rcf[i]; + + #pragma omp teams distribute parallel for simd reduction(&&: anddc) + for (int i=0; i < N; ++i) + anddc = anddc && rcd[i]; + + return andf + andd + __real__ andfc + __real__ anddc; + } + + int + main () + { + for (int i = 0; i < N; ++i) + { + rf[i] = 0; + rd[i] = 0; + rcf[i] = 0; + rcd[i] = 0; + } + + if (reduction_or () != 0) + __builtin_abort (); + if (reduction_or_teams () != 0) + __builtin_abort (); + if (reduction_and () != 0) + __builtin_abort (); + if (reduction_and_teams () != 0) + __builtin_abort (); + + rf[10] = 1; + rd[15] = 1; + rcf[10] = 1; + rcd[15] = 1; + + if (reduction_or () != 4) + __builtin_abort (); + if (reduction_or_teams () != 4) + __builtin_abort (); + if (reduction_and () != 0) + __builtin_abort (); + if (reduction_and_teams () != 0) + __builtin_abort (); + + for (int i = 0; i < N; ++i) + { + rf[i] = 1; + rd[i] = 1; + rcf[i] = 1; + rcd[i] = 1; + } + + if (reduction_or () != 4) + __builtin_abort (); + if (reduction_or_teams () != 4) + __builtin_abort (); + if (reduction_and () != 4) + __builtin_abort (); + if (reduction_and_teams () != 4) + __builtin_abort (); + + rf[10] = 0; + rd[15] = 0; + rcf[10] = 0; + rcd[15] = 0; + + if (reduction_or () != 4) + __builtin_abort (); + if (reduction_or_teams () != 4) + __builtin_abort (); + if (reduction_and () != 0) + __builtin_abort (); + if (reduction_and_teams () != 0) + __builtin_abort (); + + return 0; + } diff -Nrcpad gcc-9.4.0/libgomp/testsuite/libgomp.c-c++-common/reduction-3.c gcc-9.5.0/libgomp/testsuite/libgomp.c-c++-common/reduction-3.c *** gcc-9.4.0/libgomp/testsuite/libgomp.c-c++-common/reduction-3.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/libgomp/testsuite/libgomp.c-c++-common/reduction-3.c Fri May 27 07:21:13 2022 *************** *** 0 **** --- 1,192 ---- + /* C / C++'s logical AND and OR operators take any scalar argument + which compares (un)equal to 0 - the result 1 or 0 and of type int. + + In this testcase, the int result is again converted to a floating-poing + or complex type. + + While having a floating-point/complex array element with || and && can make + sense, having a non-integer/non-bool reduction variable is odd but valid. + + Test: integer reduction variable + FP array. */ + + #define N 1024 + _Complex float rcf[N]; + _Complex double rcd[N]; + float rf[N]; + double rd[N]; + + int + reduction_or () + { + char orf = 0; + short ord = 0; + int orfc = 0; + long ordc = 0; + + #pragma omp parallel reduction(||: orf) + for (int i=0; i < N; ++i) + orf = orf || rf[i]; + + #pragma omp parallel for reduction(||: ord) + for (int i=0; i < N; ++i) + ord = ord || rcd[i]; + + #pragma omp parallel for simd reduction(||: orfc) + for (int i=0; i < N; ++i) + orfc = orfc || rcf[i]; + + #pragma omp parallel for reduction(||: ordc) + for (int i=0; i < N; ++i) + ordc = ordc || rcd[i]; + + return orf + ord + __real__ orfc + __real__ ordc; + } + + int + reduction_or_teams () + { + char orf = 0; + short ord = 0; + int orfc = 0; + long ordc = 0; + + #pragma omp teams distribute parallel for reduction(||: orf) + for (int i=0; i < N; ++i) + orf = orf || rf[i]; + + #pragma omp teams distribute parallel for simd reduction(||: ord) + for (int i=0; i < N; ++i) + ord = ord || rcd[i]; + + #pragma omp teams distribute parallel for reduction(||: orfc) + for (int i=0; i < N; ++i) + orfc = orfc || rcf[i]; + + #pragma omp teams distribute parallel for simd reduction(||: ordc) + for (int i=0; i < N; ++i) + ordc = ordc || rcd[i]; + + return orf + ord + __real__ orfc + __real__ ordc; + } + + int + reduction_and () + { + unsigned char andf = 1; + unsigned short andd = 1; + unsigned int andfc = 1; + unsigned long anddc = 1; + + #pragma omp parallel reduction(&&: andf) + for (int i=0; i < N; ++i) + andf = andf && rf[i]; + + #pragma omp parallel for reduction(&&: andd) + for (int i=0; i < N; ++i) + andd = andd && rcd[i]; + + #pragma omp parallel for simd reduction(&&: andfc) + for (int i=0; i < N; ++i) + andfc = andfc && rcf[i]; + + #pragma omp parallel for reduction(&&: anddc) + for (int i=0; i < N; ++i) + anddc = anddc && rcd[i]; + + return andf + andd + __real__ andfc + __real__ anddc; + } + + int + reduction_and_teams () + { + unsigned char andf = 1; + unsigned short andd = 1; + unsigned int andfc = 1; + unsigned long anddc = 1; + + #pragma omp teams distribute parallel for reduction(&&: andf) + for (int i=0; i < N; ++i) + andf = andf && rf[i]; + + #pragma omp teams distribute parallel for simd reduction(&&: andd) + for (int i=0; i < N; ++i) + andd = andd && rcd[i]; + + #pragma omp teams distribute parallel for reduction(&&: andfc) + for (int i=0; i < N; ++i) + andfc = andfc && rcf[i]; + + #pragma omp teams distribute parallel for simd reduction(&&: anddc) + for (int i=0; i < N; ++i) + anddc = anddc && rcd[i]; + + return andf + andd + __real__ andfc + __real__ anddc; + } + + int + main () + { + for (int i = 0; i < N; ++i) + { + rf[i] = 0; + rd[i] = 0; + rcf[i] = 0; + rcd[i] = 0; + } + + if (reduction_or () != 0) + __builtin_abort (); + if (reduction_or_teams () != 0) + __builtin_abort (); + if (reduction_and () != 0) + __builtin_abort (); + if (reduction_and_teams () != 0) + __builtin_abort (); + + rf[10] = 1.0; + rd[15] = 1.0; + rcf[10] = 1.0; + rcd[15] = 1.0i; + + if (reduction_or () != 4) + __builtin_abort (); + if (reduction_or_teams () != 4) + __builtin_abort (); + if (reduction_and () != 0) + __builtin_abort (); + if (reduction_and_teams () != 0) + __builtin_abort (); + + for (int i = 0; i < N; ++i) + { + rf[i] = 1; + rd[i] = 1; + rcf[i] = 1; + rcd[i] = 1; + } + + if (reduction_or () != 4) + __builtin_abort (); + if (reduction_or_teams () != 4) + __builtin_abort (); + if (reduction_and () != 4) + __builtin_abort (); + if (reduction_and_teams () != 4) + __builtin_abort (); + + rf[10] = 0.0; + rd[15] = 0.0; + rcf[10] = 0.0; + rcd[15] = 0.0; + + if (reduction_or () != 4) + __builtin_abort (); + if (reduction_or_teams () != 4) + __builtin_abort (); + if (reduction_and () != 0) + __builtin_abort (); + if (reduction_and_teams () != 0) + __builtin_abort (); + + return 0; + } diff -Nrcpad gcc-9.4.0/libgomp/testsuite/libgomp.c-c++-common/reduction-4.c gcc-9.5.0/libgomp/testsuite/libgomp.c-c++-common/reduction-4.c *** gcc-9.4.0/libgomp/testsuite/libgomp.c-c++-common/reduction-4.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/libgomp/testsuite/libgomp.c-c++-common/reduction-4.c Fri May 27 07:21:13 2022 *************** *** 0 **** --- 1,194 ---- + /* C / C++'s logical AND and OR operators take any scalar argument + which compares (un)equal to 0 - the result 1 or 0 and of type int. + + In this testcase, the int result is again converted to an integer complex + type. + + While having a floating-point/complex array element with || and && can make + sense, having a complex reduction variable is odd but valid. + + Test: int complex reduction variable + int complex array. */ + + #define N 1024 + _Complex char rcc[N]; + _Complex short rcs[N]; + _Complex int rci[N]; + _Complex long long rcl[N]; + + int + reduction_or () + { + _Complex char orc = 0; + _Complex short ors = 0; + _Complex int ori = 0; + _Complex long orl = 0; + + #pragma omp parallel reduction(||: orc) + for (int i=0; i < N; ++i) + orc = orc || rcl[i]; + + #pragma omp parallel for reduction(||: ors) + for (int i=0; i < N; ++i) + ors = ors || rci[i]; + + #pragma omp parallel for simd reduction(||: ori) + for (int i=0; i < N; ++i) + ori = ori || rcs[i]; + + #pragma omp parallel for reduction(||: orl) + for (int i=0; i < N; ++i) + orl = orl || rcc[i]; + + return __real__ (orc + ors + ori + orl) + __imag__ (orc + ors + ori + orl); + } + + int + reduction_or_teams () + { + _Complex char orc = 0; + _Complex short ors = 0; + _Complex int ori = 0; + _Complex long orl = 0; + + #pragma omp teams distribute parallel for reduction(||: orc) + for (int i=0; i < N; ++i) + orc = orc || rcc[i]; + + #pragma omp teams distribute parallel for simd reduction(||: ors) + for (int i=0; i < N; ++i) + ors = ors || rcs[i]; + + #pragma omp teams distribute parallel for reduction(||: ori) + for (int i=0; i < N; ++i) + ori = ori || rci[i]; + + #pragma omp teams distribute parallel for simd reduction(||: orl) + for (int i=0; i < N; ++i) + orl = orl || rcl[i]; + + return __real__ (orc + ors + ori + orl) + __imag__ (orc + ors + ori + orl); + } + + int + reduction_and () + { + _Complex char andc = 1; + _Complex short ands = 1; + _Complex int andi = 1; + _Complex long andl = 1; + + #pragma omp parallel reduction(&&: andc) + for (int i=0; i < N; ++i) + andc = andc && rcc[i]; + + #pragma omp parallel for reduction(&&: ands) + for (int i=0; i < N; ++i) + ands = ands && rcs[i]; + + #pragma omp parallel for simd reduction(&&: andi) + for (int i=0; i < N; ++i) + andi = andi && rci[i]; + + #pragma omp parallel for reduction(&&: andl) + for (int i=0; i < N; ++i) + andl = andl && rcl[i]; + + return __real__ (andc + ands + andi + andl) + + __imag__ (andc + ands + andi + andl); + } + + int + reduction_and_teams () + { + _Complex char andc = 1; + _Complex short ands = 1; + _Complex int andi = 1; + _Complex long andl = 1; + + #pragma omp teams distribute parallel for reduction(&&: andc) + for (int i=0; i < N; ++i) + andc = andc && rcl[i]; + + #pragma omp teams distribute parallel for simd reduction(&&: ands) + for (int i=0; i < N; ++i) + ands = ands && rci[i]; + + #pragma omp teams distribute parallel for reduction(&&: andi) + for (int i=0; i < N; ++i) + andi = andi && rcs[i]; + + #pragma omp teams distribute parallel for simd reduction(&&: andl) + for (int i=0; i < N; ++i) + andl = andl && rcc[i]; + + return __real__ (andc + ands + andi + andl) + + __imag__ (andc + ands + andi + andl); + } + + int + main () + { + for (int i = 0; i < N; ++i) + { + rcc[i] = 0; + rcs[i] = 0; + rci[i] = 0; + rcl[i] = 0; + } + + if (reduction_or () != 0) + __builtin_abort (); + if (reduction_or_teams () != 0) + __builtin_abort (); + if (reduction_and () != 0) + __builtin_abort (); + if (reduction_and_teams () != 0) + __builtin_abort (); + + rcc[10] = 1.0; + rcs[15] = 1.0i; + rci[10] = 1.0; + rcl[15] = 1.0i; + + if (reduction_or () != 4) + __builtin_abort (); + if (reduction_or_teams () != 4) + __builtin_abort (); + if (reduction_and () != 0) + __builtin_abort (); + if (reduction_and_teams () != 0) + __builtin_abort (); + + for (int i = 0; i < N; ++i) + { + rcc[i] = 1; + rcs[i] = 1i; + rci[i] = 1; + rcl[i] = 1 + 1i; + } + + if (reduction_or () != 4) + __builtin_abort (); + if (reduction_or_teams () != 4) + __builtin_abort (); + if (reduction_and () != 4) + __builtin_abort (); + if (reduction_and_teams () != 4) + __builtin_abort (); + + rcc[10] = 0.0; + rcs[15] = 0.0; + rci[10] = 0.0; + rcl[15] = 0.0; + + if (reduction_or () != 4) + __builtin_abort (); + if (reduction_or_teams () != 4) + __builtin_abort (); + if (reduction_and () != 0) + __builtin_abort (); + if (reduction_and_teams () != 0) + __builtin_abort (); + + return 0; + } diff -Nrcpad gcc-9.4.0/libgomp/testsuite/libgomp.c-c++-common/task-reduction-15.c gcc-9.5.0/libgomp/testsuite/libgomp.c-c++-common/task-reduction-15.c *** gcc-9.4.0/libgomp/testsuite/libgomp.c-c++-common/task-reduction-15.c Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/libgomp/testsuite/libgomp.c-c++-common/task-reduction-15.c Fri May 27 07:21:13 2022 *************** *** 0 **** --- 1,61 ---- + /* PR middle-end/101167 */ + + extern + #ifdef __cplusplus + "C" + #endif + void abort (void); + + struct S { int a, b, c[2]; }; + + void + init (struct S *x) + { + x->a = 0; + x->b = 0; + x->c[0] = 0; + x->c[1] = 0; + } + + void + merge (struct S *x, struct S *y) + { + x->a += y->a; + x->b += y->b; + } + + #pragma omp declare reduction (+: struct S : merge (&omp_out, &omp_in)) initializer (init (&omp_priv)) + + void + foo (struct S x) + { + #pragma omp taskgroup task_reduction (+: x) + { + #pragma omp task in_reduction (+: x) + { + x.a++; + x.b++; + } + #pragma omp task in_reduction (+: x) + { + x.a += 4; + x.b += 14; + } + #pragma omp task in_reduction (+: x) + { + x.a += 9; + x.b += 19; + } + } + if (x.a != 56 || x.b != 86) + abort (); + } + + int + main () + { + struct S x = { 42, 52 }; + #pragma omp parallel master num_threads(3) + foo (x); + return 0; + } diff -Nrcpad gcc-9.4.0/libhsail-rt/ChangeLog gcc-9.5.0/libhsail-rt/ChangeLog *** gcc-9.4.0/libhsail-rt/ChangeLog Tue Jun 1 07:53:23 2021 --- gcc-9.5.0/libhsail-rt/ChangeLog Fri May 27 07:21:30 2022 *************** *** 1,3 **** --- 1,7 ---- + 2022-05-27 Release Manager + + * GCC 9.5.0 released. + 2021-06-01 Release Manager * GCC 9.4.0 released. diff -Nrcpad gcc-9.4.0/libiberty/ChangeLog gcc-9.5.0/libiberty/ChangeLog *** gcc-9.4.0/libiberty/ChangeLog Tue Jun 1 07:53:23 2021 --- gcc-9.5.0/libiberty/ChangeLog Fri May 27 07:21:30 2022 *************** *** 1,3 **** --- 1,19 ---- + 2022-05-27 Release Manager + + * GCC 9.5.0 released. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2022-02-22 Jakub Jelinek + + PR lto/104617 + * simple-object-elf.c (simple_object_elf_match): Fix up URL + in comment. + (simple_object_elf_copy_lto_debug_sections): Remap sh_info and + sh_link even if they are in the SHN_LORESERVE .. SHN_HIRESERVE + range (inclusive). + 2021-06-01 Release Manager * GCC 9.4.0 released. diff -Nrcpad gcc-9.4.0/libiberty/simple-object-elf.c gcc-9.5.0/libiberty/simple-object-elf.c *** gcc-9.4.0/libiberty/simple-object-elf.c Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libiberty/simple-object-elf.c Fri May 27 07:21:13 2022 *************** simple_object_elf_match (unsigned char h *** 528,534 **** not handle objects with more than SHN_LORESERVE sections correctly. All large section indexes were offset by 0x100. There is more information at ! http://sourceware.org/bugzilla/show_bug.cgi?id-5900 . Fortunately these object files are easy to detect, as the GNU binutils always put the section header string table near the end of the list of sections. Thus if the --- 528,534 ---- not handle objects with more than SHN_LORESERVE sections correctly. All large section indexes were offset by 0x100. There is more information at ! https://sourceware.org/PR5900 . Fortunately these object files are easy to detect, as the GNU binutils always put the section header string table near the end of the list of sections. Thus if the *************** simple_object_elf_copy_lto_debug_section *** 1536,1552 **** { sh_info = ELF_FETCH_FIELD (type_functions, ei_class, Shdr, shdr, sh_info, Elf_Word); ! if (sh_info < SHN_LORESERVE ! || sh_info > SHN_HIRESERVE) ! sh_info = sh_map[sh_info]; ELF_SET_FIELD (type_functions, ei_class, Shdr, shdr, sh_info, Elf_Word, sh_info); } sh_link = ELF_FETCH_FIELD (type_functions, ei_class, Shdr, shdr, sh_link, Elf_Word); ! if (sh_link < SHN_LORESERVE ! || sh_link > SHN_HIRESERVE) ! sh_link = sh_map[sh_link]; ELF_SET_FIELD (type_functions, ei_class, Shdr, shdr, sh_link, Elf_Word, sh_link); } --- 1536,1548 ---- { sh_info = ELF_FETCH_FIELD (type_functions, ei_class, Shdr, shdr, sh_info, Elf_Word); ! sh_info = sh_map[sh_info]; ELF_SET_FIELD (type_functions, ei_class, Shdr, shdr, sh_info, Elf_Word, sh_info); } sh_link = ELF_FETCH_FIELD (type_functions, ei_class, Shdr, shdr, sh_link, Elf_Word); ! sh_link = sh_map[sh_link]; ELF_SET_FIELD (type_functions, ei_class, Shdr, shdr, sh_link, Elf_Word, sh_link); } diff -Nrcpad gcc-9.4.0/libitm/ChangeLog gcc-9.5.0/libitm/ChangeLog *** gcc-9.4.0/libitm/ChangeLog Tue Jun 1 07:53:23 2021 --- gcc-9.5.0/libitm/ChangeLog Fri May 27 07:21:30 2022 *************** *** 1,3 **** --- 1,15 ---- + 2022-05-27 Release Manager + + * GCC 9.5.0 released. + + 2021-06-18 Jonathan Wakely + + Backported from master: + 2021-06-17 Jonathan Wakely + + PR libstdc++/91488 + * testsuite/libitm.c++/libstdc++-pr91488.C: New test. + 2021-06-01 Release Manager * GCC 9.4.0 released. diff -Nrcpad gcc-9.4.0/libitm/testsuite/libitm.c++/libstdc++-pr91488.C gcc-9.5.0/libitm/testsuite/libitm.c++/libstdc++-pr91488.C *** gcc-9.4.0/libitm/testsuite/libitm.c++/libstdc++-pr91488.C Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/libitm/testsuite/libitm.c++/libstdc++-pr91488.C Fri May 27 07:21:13 2022 *************** *** 0 **** --- 1,9 ---- + // PR libstdc++/91488 "inlining failed in call to always_inline" + // { dg-do run } + // { dg-additional-options "-O1" } + + #include + + int main() { + return std::char_traits::length(""); + } diff -Nrcpad gcc-9.4.0/libobjc/ChangeLog gcc-9.5.0/libobjc/ChangeLog *** gcc-9.4.0/libobjc/ChangeLog Tue Jun 1 07:53:23 2021 --- gcc-9.5.0/libobjc/ChangeLog Fri May 27 07:21:30 2022 *************** *** 1,3 **** --- 1,7 ---- + 2022-05-27 Release Manager + + * GCC 9.5.0 released. + 2021-06-01 Release Manager * GCC 9.4.0 released. diff -Nrcpad gcc-9.4.0/liboffloadmic/ChangeLog gcc-9.5.0/liboffloadmic/ChangeLog *** gcc-9.4.0/liboffloadmic/ChangeLog Tue Jun 1 07:53:23 2021 --- gcc-9.5.0/liboffloadmic/ChangeLog Fri May 27 07:21:30 2022 *************** *** 1,3 **** --- 1,7 ---- + 2022-05-27 Release Manager + + * GCC 9.5.0 released. + 2021-06-01 Release Manager * GCC 9.4.0 released. diff -Nrcpad gcc-9.4.0/libphobos/ChangeLog gcc-9.5.0/libphobos/ChangeLog *** gcc-9.4.0/libphobos/ChangeLog Tue Jun 1 07:53:23 2021 --- gcc-9.5.0/libphobos/ChangeLog Fri May 27 07:21:30 2022 *************** *** 1,3 **** --- 1,49 ---- + 2022-05-27 Release Manager + + * GCC 9.5.0 released. + + 2022-04-26 Iain Buclaw + + Backported from master: + 2021-09-30 Iain Buclaw + + * libdruntime/gcc/unwind/generic.d (__aligned__): Define. + (_Unwind_Exception): Align struct to __aligned__. + + 2022-04-26 Iain Buclaw + + Backported from master: + 2022-04-26 Iain Buclaw + + * libdruntime/gcc/emutls.d (emutlsDestroyThread): Clear the per-thread + TLS array, don't call free(). + + 2021-12-21 Iain Buclaw + + Backported from master: + 2021-12-21 Iain Buclaw + + PR d/103604 + * libdruntime/core/sys/posix/sys/stat.d (struct stat_t): Fix + definition for MIPS64. + + 2021-11-19 Iain Buclaw + + Backported from master: + 2021-11-19 Iain Buclaw + + * libdruntime/core/thread.d (defaultStackPages): New constant. + (Fiber.this): Set stack size to be a multiple of defaultStackPages. + + 2021-11-19 Iain Buclaw + + Backported from master: + 2021-11-19 Iain Buclaw + + * libdruntime/gcc/emutls.d (emutlsDestroyThread): Don't remove entry + from global array. + (_d_emutls_destroy): Don't call __gthread_key_delete. + 2021-06-01 Release Manager * GCC 9.4.0 released. diff -Nrcpad gcc-9.4.0/libphobos/libdruntime/core/sys/posix/sys/stat.d gcc-9.5.0/libphobos/libdruntime/core/sys/posix/sys/stat.d *** gcc-9.4.0/libphobos/libdruntime/core/sys/posix/sys/stat.d Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libphobos/libdruntime/core/sys/posix/sys/stat.d Fri May 27 07:21:13 2022 *************** version (CRuntime_Glibc) *** 337,362 **** } c_long[14] st_pad5; } } else version (MIPS64) { struct stat_t { ! c_ulong st_dev; int[3] st_pad1; ! static if (!__USE_FILE_OFFSET64) ! { ! ino_t st_ino; ! } ! else ! { ! c_ulong st_ino; ! } mode_t st_mode; nlink_t st_nlink; uid_t st_uid; gid_t st_gid; ! c_ulong st_rdev; static if (!__USE_FILE_OFFSET64) { uint[2] st_pad2; --- 337,359 ---- } c_long[14] st_pad5; } + static if (!__USE_FILE_OFFSET64) + static assert(stat_t.sizeof == 144); + else + static assert(stat_t.sizeof == 160); } else version (MIPS64) { struct stat_t { ! dev_t st_dev; int[3] st_pad1; ! ino_t st_ino; mode_t st_mode; nlink_t st_nlink; uid_t st_uid; gid_t st_gid; ! dev_t st_rdev; static if (!__USE_FILE_OFFSET64) { uint[2] st_pad2; *************** version (CRuntime_Glibc) *** 365,372 **** } else { ! c_long[3] st_pad2; ! c_long st_size; } static if (__USE_MISC || __USE_XOPEN2K8) { --- 362,369 ---- } else { ! uint[3] st_pad2; ! off_t st_size; } static if (__USE_MISC || __USE_XOPEN2K8) { *************** version (CRuntime_Glibc) *** 391,405 **** } blksize_t st_blksize; uint st_pad4; static if (!__USE_FILE_OFFSET64) ! { ! blkcnt_t st_blocks; ! } else ! { ! c_long st_blocks; ! } ! c_long[14] st_pad5; } } else version (PPC) --- 388,413 ---- } blksize_t st_blksize; uint st_pad4; + blkcnt_t st_blocks; + int[14] st_pad5; + } + version (MIPS_N32) + { static if (!__USE_FILE_OFFSET64) ! static assert(stat_t.sizeof == 160); else ! static assert(stat_t.sizeof == 176); ! } ! else version (MIPS_O64) ! { ! static if (!__USE_FILE_OFFSET64) ! static assert(stat_t.sizeof == 160); ! else ! static assert(stat_t.sizeof == 176); ! } ! else ! { ! static assert(stat_t.sizeof == 216); } } else version (PPC) diff -Nrcpad gcc-9.4.0/libphobos/libdruntime/core/thread.d gcc-9.5.0/libphobos/libdruntime/core/thread.d *** gcc-9.4.0/libphobos/libdruntime/core/thread.d Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libphobos/libdruntime/core/thread.d Fri May 27 07:21:13 2022 *************** class Fiber *** 4144,4149 **** --- 4144,4167 ---- // Initialization /////////////////////////////////////////////////////////////////////////// + version (Windows) + // exception handling walks the stack, invoking DbgHelp.dll which + // needs up to 16k of stack space depending on the version of DbgHelp.dll, + // the existence of debug symbols and other conditions. Avoid causing + // stack overflows by defaulting to a larger stack size + enum defaultStackPages = 8; + else version (OSX) + { + version (X86_64) + // libunwind on macOS 11 now requires more stack space than 16k, so + // default to a larger stack size. This is only applied to X86 as + // the PAGESIZE is still 4k, however on AArch64 it is 16k. + enum defaultStackPages = 8; + else + enum defaultStackPages = 4; + } + else + enum defaultStackPages = 4; /** * Initializes a fiber object which is associated with a static *************** class Fiber *** 4158,4164 **** * In: * fn must not be null. */ ! this( void function() fn, size_t sz = PAGESIZE*4, size_t guardPageSize = PAGESIZE ) nothrow in { --- 4176,4182 ---- * In: * fn must not be null. */ ! this( void function() fn, size_t sz = PAGESIZE * defaultStackPages, size_t guardPageSize = PAGESIZE ) nothrow in { *************** class Fiber *** 4184,4190 **** * In: * dg must not be null. */ ! this( void delegate() dg, size_t sz = PAGESIZE*4, size_t guardPageSize = PAGESIZE ) nothrow in { --- 4202,4208 ---- * In: * dg must not be null. */ ! this( void delegate() dg, size_t sz = PAGESIZE * defaultStackPages, size_t guardPageSize = PAGESIZE ) nothrow in { diff -Nrcpad gcc-9.4.0/libphobos/libdruntime/gcc/emutls.d gcc-9.5.0/libphobos/libdruntime/gcc/emutls.d *** gcc-9.4.0/libphobos/libdruntime/gcc/emutls.d Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libphobos/libdruntime/gcc/emutls.d Fri May 27 07:21:13 2022 *************** void** emutlsAlloc(shared __emutls_objec *** 222,237 **** } /* ! * When a thread has finished, remove the TLS array from the GC ! * scan list emutlsArrays, free all allocated TLS variables and ! * finally free the array. */ extern (C) void emutlsDestroyThread(void* ptr) nothrow @nogc { auto arr = cast(TlsArray*) ptr; - emutlsMutex.lock_nothrow(); - emutlsArrays.remove(arr); - emutlsMutex.unlock_nothrow(); foreach (entry; *arr) { --- 222,234 ---- } /* ! * When a thread has finished, free all allocated TLS variables and empty the ! * array. The pointer is not free'd as it is stil referenced by the GC scan ! * list emutlsArrays, which gets destroyed when druntime is unloaded. */ extern (C) void emutlsDestroyThread(void* ptr) nothrow @nogc { auto arr = cast(TlsArray*) ptr; foreach (entry; *arr) { *************** extern (C) void emutlsDestroyThread(void *** 239,245 **** free(entry[-1]); } ! free(arr); } /* --- 236,242 ---- free(entry[-1]); } ! arr.length = 0; } /* *************** void _d_emutls_scan(scope void delegate( *** 308,316 **** // Call this after druntime has been unloaded void _d_emutls_destroy() nothrow @nogc { - if (__gthread_key_delete(emutlsKey) != 0) - abort(); - (cast(Mutex) _emutlsMutex.ptr).__dtor(); destroy(emutlsArrays); } --- 305,310 ---- diff -Nrcpad gcc-9.4.0/libphobos/libdruntime/gcc/unwind/generic.d gcc-9.5.0/libphobos/libdruntime/gcc/unwind/generic.d *** gcc-9.4.0/libphobos/libdruntime/gcc/unwind/generic.d Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libphobos/libdruntime/gcc/unwind/generic.d Fri May 27 07:21:13 2022 *************** enum : _Unwind_Reason_Code *** 123,129 **** // @@@ The IA-64 ABI says that this structure must be double-word aligned. // Taking that literally does not make much sense generically. Instead we // provide the maximum alignment required by any type for the machine. ! struct _Unwind_Exception { _Unwind_Exception_Class exception_class; _Unwind_Exception_Cleanup_Fn exception_cleanup; --- 123,149 ---- // @@@ The IA-64 ABI says that this structure must be double-word aligned. // Taking that literally does not make much sense generically. Instead we // provide the maximum alignment required by any type for the machine. ! version (ARM) private enum __aligned__ = 8; ! else version (AArch64) private enum __aligned__ = 16; ! else version (HPPA) private enum __aligned__ = 8; ! else version (HPPA64) private enum __aligned__ = 16; ! else version (MIPS_N32) private enum __aligned__ = 16; ! else version (MIPS_N64) private enum __aligned__ = 16; ! else version (MIPS32) private enum __aligned__ = 8; ! else version (MIPS64) private enum __aligned__ = 8; ! else version (PPC) private enum __aligned__ = 16; ! else version (PPC64) private enum __aligned__ = 16; ! else version (RISCV32) private enum __aligned__ = 16; ! else version (RISCV64) private enum __aligned__ = 16; ! else version (S390) private enum __aligned__ = 8; ! else version (SPARC) private enum __aligned__ = 8; ! else version (SPARC64) private enum __aligned__ = 16; ! else version (SystemZ) private enum __aligned__ = 8; ! else version (X86) private enum __aligned__ = 16; ! else version (X86_64) private enum __aligned__ = 16; ! else static assert( false, "Platform not supported."); ! ! align(__aligned__) struct _Unwind_Exception { _Unwind_Exception_Class exception_class; _Unwind_Exception_Cleanup_Fn exception_cleanup; diff -Nrcpad gcc-9.4.0/libquadmath/ChangeLog gcc-9.5.0/libquadmath/ChangeLog *** gcc-9.4.0/libquadmath/ChangeLog Tue Jun 1 07:53:23 2021 --- gcc-9.5.0/libquadmath/ChangeLog Fri May 27 07:21:30 2022 *************** *** 1,3 **** --- 1,7 ---- + 2022-05-27 Release Manager + + * GCC 9.5.0 released. + 2021-06-01 Release Manager * GCC 9.4.0 released. diff -Nrcpad gcc-9.4.0/libsanitizer/ChangeLog gcc-9.5.0/libsanitizer/ChangeLog *** gcc-9.4.0/libsanitizer/ChangeLog Tue Jun 1 07:53:23 2021 --- gcc-9.5.0/libsanitizer/ChangeLog Fri May 27 07:21:30 2022 *************** *** 1,3 **** --- 1,31 ---- + 2022-05-27 Release Manager + + * GCC 9.5.0 released. + + 2022-05-11 Jakub Jelinek + + Backported from master: + 2022-02-15 Jakub Jelinek + + * sanitizer_common/sanitizer_linux_libcdep.cc: Cherry-pick + llvm-project revision ef14b78d9a144ba81ba02083fe21eb286a88732b. + + 2022-01-19 H.J. Lu + + Backported from master: + 2022-01-12 H.J. Lu + + PR sanitizer/102911 + * asan/asan_malloc_linux.cc (kDlsymAllocPoolSize): Set it to + 8192 on Linux. + + 2021-08-05 Martin Liska + + PR sanitizer/101749 + * sanitizer_common/sanitizer_posix_libcdep.cc: Prevent + generation of dependency on _cxa_guard for static + initialization. + 2021-06-01 Release Manager * GCC 9.4.0 released. diff -Nrcpad gcc-9.4.0/libsanitizer/asan/asan_malloc_linux.cc gcc-9.5.0/libsanitizer/asan/asan_malloc_linux.cc *** gcc-9.4.0/libsanitizer/asan/asan_malloc_linux.cc Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libsanitizer/asan/asan_malloc_linux.cc Fri May 27 07:21:13 2022 *************** using namespace __asan; // NOLINT *** 30,36 **** static uptr allocated_for_dlsym; static uptr last_dlsym_alloc_size_in_words; ! static const uptr kDlsymAllocPoolSize = SANITIZER_RTEMS ? 4096 : 1024; static uptr alloc_memory_for_dlsym[kDlsymAllocPoolSize]; static INLINE bool IsInDlsymAllocPool(const void *ptr) { --- 30,36 ---- static uptr allocated_for_dlsym; static uptr last_dlsym_alloc_size_in_words; ! static const uptr kDlsymAllocPoolSize = SANITIZER_RTEMS ? 4096 : 8192; static uptr alloc_memory_for_dlsym[kDlsymAllocPoolSize]; static INLINE bool IsInDlsymAllocPool(const void *ptr) { diff -Nrcpad gcc-9.4.0/libsanitizer/sanitizer_common/sanitizer_linux_libcdep.cc gcc-9.5.0/libsanitizer/sanitizer_common/sanitizer_linux_libcdep.cc *** gcc-9.4.0/libsanitizer/sanitizer_common/sanitizer_linux_libcdep.cc Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libsanitizer/sanitizer_common/sanitizer_linux_libcdep.cc Fri May 27 07:21:13 2022 *************** void InitTlsSize() { } *** 263,272 **** // sizeof(struct pthread) from glibc. static atomic_uintptr_t thread_descriptor_size; ! uptr ThreadDescriptorSize() { ! uptr val = atomic_load_relaxed(&thread_descriptor_size); ! if (val) ! return val; #if defined(__x86_64__) || defined(__i386__) || defined(__arm__) int major; int minor; --- 263,270 ---- // sizeof(struct pthread) from glibc. static atomic_uintptr_t thread_descriptor_size; ! static uptr ThreadDescriptorSizeFallback() { ! uptr val = 0; #if defined(__x86_64__) || defined(__i386__) || defined(__arm__) int major; int minor; *************** uptr ThreadDescriptorSize() { *** 306,313 **** #elif defined(__s390__) val = FIRST_32_SECOND_64(1152, 1776); // valid for glibc 2.22 #endif if (val) ! atomic_store_relaxed(&thread_descriptor_size, val); return val; } --- 304,324 ---- #elif defined(__s390__) val = FIRST_32_SECOND_64(1152, 1776); // valid for glibc 2.22 #endif + return val; + } + + uptr ThreadDescriptorSize() { + uptr val = atomic_load_relaxed(&thread_descriptor_size); if (val) ! return val; ! // _thread_db_sizeof_pthread is a GLIBC_PRIVATE symbol that is exported in ! // glibc 2.34 and later. ! if (unsigned *psizeof = static_cast( ! dlsym(RTLD_DEFAULT, "_thread_db_sizeof_pthread"))) ! val = *psizeof; ! if (!val) ! val = ThreadDescriptorSizeFallback(); ! atomic_store_relaxed(&thread_descriptor_size, val); return val; } diff -Nrcpad gcc-9.4.0/libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cc gcc-9.5.0/libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cc *** gcc-9.4.0/libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cc Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cc Fri May 27 07:21:13 2022 *************** bool SupportsColoredOutput(fd_t fd) { *** 170,178 **** #if !SANITIZER_GO // TODO(glider): different tools may require different altstack size. static uptr GetAltStackSize() { ! // SIGSTKSZ is not enough. ! static const uptr kAltStackSize = SIGSTKSZ * 4; ! return kAltStackSize; } void SetAlternateSignalStack() { --- 170,179 ---- #if !SANITIZER_GO // TODO(glider): different tools may require different altstack size. static uptr GetAltStackSize() { ! // Note: since GLIBC_2.31, SIGSTKSZ may be a function call, so this may be ! // more costly that you think. However GetAltStackSize is only call 2-3 times ! // per thread so don't cache the evaluation. ! return SIGSTKSZ * 4; } void SetAlternateSignalStack() { diff -Nrcpad gcc-9.4.0/libssp/ChangeLog gcc-9.5.0/libssp/ChangeLog *** gcc-9.4.0/libssp/ChangeLog Tue Jun 1 07:53:23 2021 --- gcc-9.5.0/libssp/ChangeLog Fri May 27 07:21:30 2022 *************** *** 1,3 **** --- 1,7 ---- + 2022-05-27 Release Manager + + * GCC 9.5.0 released. + 2021-06-01 Release Manager * GCC 9.4.0 released. diff -Nrcpad gcc-9.4.0/libstdc++-v3/ChangeLog gcc-9.5.0/libstdc++-v3/ChangeLog *** gcc-9.4.0/libstdc++-v3/ChangeLog Tue Jun 1 07:53:23 2021 --- gcc-9.5.0/libstdc++-v3/ChangeLog Fri May 27 07:21:30 2022 *************** *** 1,3 **** --- 1,472 ---- + 2022-05-27 Release Manager + + * GCC 9.5.0 released. + + 2022-05-16 Jonathan Wakely + + Backported from master: + 2022-05-16 Jonathan Wakely + + * doc/html/manual/status.html: Regenerate. + * doc/xml/manual/status_cxx2020.xml: Fix supported version for + C++20 bit operations and power-of-two operations. + + 2022-05-09 Jonathan Wakely + + Backported from master: + 2022-05-06 Jonathan Wakely + + PR libstdc++/105502 + * include/bits/random.tcc + (operator>>(basic_istream&, normal_distribution&)): + Update state when __state_avail is false. + * testsuite/26_numerics/random/normal_distribution/operators/serialize.cc: + Check that deserialized object equals serialized one. + + 2022-05-09 Jonathan Wakely + + Backported from master: + 2021-11-26 Jonathan Wakely + + * testsuite/27_io/types/1.cc: Add c++11 target selector to + warnings. + + 2022-05-09 Jonathan Wakely + + Backported from master: + 2022-02-04 Jonathan Wakely + + * include/experimental/bits/fs_ops.h (fs::copy_file): Remove + noexcept. + (fs::create_directories): Likewise. + (fs::remove_all): Likewise. + * src/filesystem/ops.cc (fs::copy_file): Remove noexcept. + (fs::create_directories): Likewise. + (fs::remove_all): Likewise. + + 2022-05-09 Jonathan Wakely + + Backported from master: + 2021-12-09 Jonathan Wakely + + PR libstdc++/103630 + * libsupc++/exception_ptr.h (make_exception_ptr): Decay the + template parameter. Use typeid of the static type. + * testsuite/18_support/exception_ptr/103630.cc: New test. + + 2022-05-09 Jonathan Wakely + + Backported from master: + 2020-12-17 Jonathan Wakely + + PR libstdc++/93151 + * config/os/djgpp/error_constants.h: Test POSIX errno macros + directly, instead of corresponding _GLIBCXX_HAVE_EXXX macros. + * config/os/mingw32-w64/error_constants.h: Likewise. + * config/os/mingw32/error_constants.h: Likewise. + + 2022-05-09 Jonathan Wakely + + Backported from master: + 2020-12-16 Jonathan Wakely + + PR libstdc++/93151 + * acinclude.m4 (GLIBCXX_CHECK_SYSTEM_ERROR): Remove. + * config.h.in: Regenerate. + * configure: Regenerate. + * configure.ac (GLIBCXX_CHECK_SYSTEM_ERROR): Do not use. + * config/os/generic/error_constants.h: Test POSIX errno macros + directly, instead of corresponding _GLIBCXX_HAVE_EXXX macros. + * testsuite/19_diagnostics/headers/system_error/errc_std_c++0x.cc: + Likewise. + * testsuite/19_diagnostics/headers/system_error/93151.cc: New + test. + + 2022-05-09 Jonathan Wakely + + Backported from master: + 2021-05-04 Jonathan Wakely + + * include/bits/basic_string.h (basic_string(const CharT*, const A&)): + Do not do arithmetic on null pointer. + + 2022-05-09 Jonathan Wakely + + Backported from master: + 2021-08-12 Jonathan Wakely + + PR libstdc++/101870 + * include/c_global/cmath (hypot): Use __promoted_t. + (lerp): Add new overload accepting any arithmetic types. + * include/ext/type_traits.h (__promoted_t): New alias template. + * testsuite/26_numerics/lerp.cc: Moved to... + * testsuite/26_numerics/lerp/1.cc: ...here. + * testsuite/26_numerics/lerp/constexpr.cc: New test. + * testsuite/26_numerics/lerp/version.cc: New test. + + 2022-05-09 Jonathan Wakely + + Backported from master: + 2021-10-01 Jonathan Wakely + + PR libstdc++/100153 + * include/bits/vector.tcc (vector::_M_shrink_to_fit()): + When size() is zero just deallocate and reset. + + 2022-05-09 Jonathan Wakely + + Backported from master: + 2021-10-01 Jonathan Wakely + + * testsuite/25_algorithms/is_permutation/2.cc: Include . + + 2022-05-09 Pavel I. Kryukov + + Backported from master: + 2022-01-06 Pavel I. Kryukov + Jonathan Wakely + + PR libstdc++/103853 + * include/bits/forward_list.tcc (forward_list::merge): Check for + self-merge. + * testsuite/23_containers/forward_list/operations/merge.cc: New test. + + 2022-05-09 Jonathan Wakely + + Backported from master: + 2021-12-04 Jonathan Wakely + + PR libstdc++/103549 + * include/bits/regex.h (match_results): Give names to template + parameters in first declaration. + (match_results::_M_begin): Add default member-initializer. + + 2022-05-09 Jonathan Wakely + + Backported from master: + 2022-01-05 Jonathan Wakely + + PR libstdc++/103877 + * doc/xml/faq.xml: Add '-x c++' to preprocessor command. + * doc/html/faq.html: Regenerate. + + 2022-05-09 Jonathan Wakely + + Backported from master: + 2022-01-17 Jonathan Wakely + + PR libstdc++/103650 + * include/Makefile.am: Rename LT_OBJDIR and STDC_HEADERS. + * include/Makefile.in: Regenerate. + * testsuite/17_intro/headers/c++1998/103650.cc: New test. + + 2022-05-09 Jonathan Wakely + + Backported from master: + 2022-04-01 Jonathan Wakely + + * include/experimental/bits/fs_fwd.h (copy_file): Remove + incorrect noexcept from declaration. + * include/experimental/bits/fs_path.h (path::begin, path::end): + Add noexcept to declarations, to match definitions. + + 2022-05-09 Jonathan Wakely + + Backported from master: + 2022-04-14 Jonathan Wakely + + * doc/xml/manual/intro.xml: Fix comment. + + 2022-05-09 Jonathan Wakely + + Backported from master: + 2022-05-09 Jonathan Wakely + + PR libstdc++/102048 + * include/ext/rope (rope::erase(size_type)): Deprecate broken + function. + + 2021-11-23 Jonathan Wakely + + Backported from master: + 2021-11-23 Jonathan Wakely + + PR libstdc++/103381 + * include/ext/bitmap_allocator.h: Include + instead of . + + 2021-11-01 Jonathan Wakely + + Backported from master: + 2021-11-01 Jonathan Wakely + + PR libstdc++/103022 + * include/std/valarray (begin, end): Do not dereference an empty + valarray. Add noexcept. + * testsuite/26_numerics/valarray/range_access.cc: Check empty + valarray. Check iterator properties. Run as well as compiling. + * testsuite/26_numerics/valarray/range_access2.cc: Likewise. + * testsuite/26_numerics/valarray/103022.cc: New test. + + 2021-10-13 Jonathan Wakely + + Backported from master: + 2021-10-13 Jonathan Wakely + + * testsuite/28_regex/match_results/102667.C: Moved to... + * testsuite/28_regex/match_results/102667.cc: ...here. + + 2021-10-13 Jonathan Wakely + + Backported from master: + 2021-09-17 Jonathan Wakely + + * testsuite/26_numerics/valarray/dr630-3.C: Moved to... + * testsuite/26_numerics/valarray/dr630-3.cc: ...here. + * testsuite/27_io/basic_iostream/cons/16251.C: Moved to... + * testsuite/27_io/basic_iostream/cons/16251.cc: ...here. + + 2021-10-13 Jonathan Wakely + + Backported from master: + 2021-09-16 Jonathan Wakely + + * include/bits/fs_path.h (advance): Remove non-deducible + template parameter. + + 2021-10-13 Jonathan Wakely + + Backported from master: + 2021-09-23 Jonathan Wakely + + PR libstdc++/102425 + * src/c++11/system_error.cc + (system_error_category::default_error_condition): Add 0 to + switch. + * testsuite/19_diagnostics/error_category/102425.cc: New test. + + 2021-10-13 Jonathan Wakely + + Backported from master: + 2021-08-17 Jonathan Wakely + + * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Define. + (build_libstdcxx_dictionary): Register printer for + std::error_code and std::error_condition. + * testsuite/libstdc++-prettyprinters/cxx11.cc: Test it. + + 2021-10-13 Jonathan Wakely + + Backported from master: + 2021-08-16 Jonathan Wakely + + * python/Makefile.am [GLIBCXX_BUILD_DEBUG] (install-data-local): + Install another copy of the GDB hook. + * python/Makefile.in: Regenerate. + + 2021-10-13 Jonathan Wakely + + * testsuite/27_io/filesystem/operations/remove_all.cc: Remove + test directory after making it writable again. + * testsuite/experimental/filesystem/operations/remove_all.cc: + Likewise. + + 2021-10-13 Jonathan Wakely + + Backported from master: + 2021-10-11 Jonathan Wakely + + PR libstdc++/102667 + * include/bits/regex.h (match_result::empty()): Optimize by + calling the base function directly. + (match_results::end()): Check _Base_type::empty() not empty(). + * testsuite/28_regex/match_results/102667.C: New test. + + 2021-08-11 Jonathan Wakely + + Backported from master: + 2021-08-11 Jonathan Wakely + + PR libstdc++/101866 + * testsuite/experimental/random/randint.cc: Loop and retry if + reseed() produces the same sequence. + + 2021-08-11 Jonathan Wakely + + Backported from master: + 2021-07-20 Jonathan Wakely + + PR libstdc++/101510 + * src/c++17/fs_ops.cc (fs::create_directories): Use status + instead of symlink_status. + * src/filesystem/ops.cc (fs::create_directories): Likewise. + * testsuite/27_io/filesystem/operations/create_directories.cc: + Check symlink to existing directory. + * testsuite/27_io/filesystem/operations/create_directory.cc: Do + not test with symlinks on Windows. + * testsuite/experimental/filesystem/operations/create_directories.cc: + Check symlink to existing directory. + * testsuite/experimental/filesystem/operations/create_directory.cc: + Do not test with symlinks on Windows. + + 2021-08-11 Jonathan Wakely + + Backported from master: + 2021-07-20 Jonathan Wakely + + PR libstdc++/101510 + * src/c++17/fs_ops.cc (create_dir): Adjust whitespace. + * testsuite/27_io/filesystem/operations/create_directory.cc: + Test creating directory with name of existing symlink to + directory. + * testsuite/experimental/filesystem/operations/create_directory.cc: + Likewise. + + 2021-08-02 Jonathan Wakely + + Backported from master: + 2021-02-12 Jonathan Wakely + + PR libstdc++/88881 + * src/c++17/fs_ops.cc (fs::symlink_status): Re-enable workaround. + + 2021-08-02 Jonathan Wakely + + Backported from master: + 2021-02-10 Jonathan Wakely + + PR libstdc++/88881 + * src/c++17/fs_ops.cc (fs::status): Re-enable workaround. + + 2021-07-22 Jonathan Wakely + + * testsuite/ext/profile/mutex_extensions_neg.cc: Prune + additional errors in C++20 mode. + + 2021-07-22 Jonathan Wakely + + Backported from master: + 2021-04-15 Jonathan Wakely + + PR libstdc++/96657 + * libsupc++/Makefile.am: Add atomicity.cc here. + * src/c++98/Makefile.am: Remove it from here. + * libsupc++/Makefile.in: Regenerate. + * src/c++98/Makefile.in: Regenerate. + * testsuite/18_support/exception_ptr/96657.cc: New test. + + 2021-07-22 Jonathan Wakely + + Backported from master: + 2021-06-14 Jonathan Wakely + + PR libstdc++/101034 + * include/std/any (any(in_place_t, initializer_list, A&&...)) + (any::emplace(initializer_list, A&&...)): Fix constraint + to use lvalue. + * testsuite/20_util/any/cons/101034.cc: New test. + + 2021-07-22 Jonathan Wakely + + Backported from master: + 2020-04-23 Kamlesh Kumar + Jonathan Wakely + + PR libstdc++/90415 + PR libstdc++/92156 + * include/std/any (any): Rename template parameters for consistency + with the standard. + (any::_Decay): Rename to _Decay_if_not_any. + (any::any(T&&)): Remove is_constructible from constraints. Remove + non-standard overload. + (any::any(in_place_type_t, Args&&...)) + (any::any(in_place_type_t, initializer_list, Args&&...)) + (any::emplace(Args&&...)) + (any::emplace(initializer_list, Args&&...)): + Use decay_t instead of _Decay. + * testsuite/20_util/any/cons/90415.cc: New test. + * testsuite/20_util/any/cons/92156.cc: New Test. + * testsuite/20_util/any/misc/any_cast_neg.cc: Make dg-error directives + more robust. + * testsuite/20_util/any/modifiers/92156.cc: New test. + + 2021-07-22 Jonathan Wakely + + Backported from master: + 2021-06-09 Jonathan Wakely + + PR libstdc++/100982 + * include/std/optional (optional::operator=(const optional&)): + Fix value category used in is_assignable check. + * testsuite/20_util/optional/assignment/100982.cc: New test. + + 2021-06-18 Jonathan Wakely + + Backported from master: + 2021-06-18 Jonathan Wakely + + PR libstdc++/95833 + * include/std/numeric (reduce(Iter, Iter, T, BinaryOp)): Replace + incorrect static_assert with ones matching the 'Mandates' + conditions in the standard. + * testsuite/26_numerics/reduce/95833.cc: New test. + + 2021-06-18 Jonathan Wakely + + Backported from master: + 2021-05-17 Jonathan Wakely + + PR libstdc++/100630 + * include/bits/fs_path.h (__is_constructible_from): Test + construction from a const lvalue, not an rvalue. + * include/experimental/bits/fs_path.h (__is_constructible_from): + Likewise. + * testsuite/27_io/filesystem/path/construct/100630.cc: New test. + * testsuite/experimental/filesystem/path/construct/100630.cc: + New test. + + 2021-06-18 Jonathan Wakely + + Backported from master: + 2021-05-04 Jonathan Wakely + + PR libstdc++/100384 + * include/std/variant (__get_t): New alias template yielding the + return type of std::get on a variant. + (__visit_result_t): New alias template yielding the result of + std::visit. + (__do_visit): Use __get_t. + (visit): Use __visit_result_t for return type. + * testsuite/20_util/variant/100384.cc: New test. + + 2021-06-18 Jonathan Wakely + + Backported from master: + 2021-04-22 Jonathan Wakely + + PR libstdc++/99006 + * include/bits/shared_ptr.h (allocate_shared): Assert that _Tp + is not an array type. + * include/bits/shared_ptr_base.h (__allocate_shared): Likewise. + * testsuite/20_util/shared_ptr/creation/99006.cc: New test. + + 2021-06-18 Jonathan Wakely + + Backported from master: + 2021-06-17 Jonathan Wakely + + PR libstdc++/91488 + * include/bits/char_traits.h (__constant_string_p) + (__constant_array_p): Give external linkage. + + 2021-06-18 Jonathan Wakely + + Backported from master: + 2021-03-11 Jonathan Wakely + + * python/libstdcxx/v6/printers.py (find_type): Use tag attribute + instead of unqualified() method. + 2021-06-01 Release Manager * GCC 9.4.0 released. diff -Nrcpad gcc-9.4.0/libstdc++-v3/acinclude.m4 gcc-9.5.0/libstdc++-v3/acinclude.m4 *** gcc-9.4.0/libstdc++-v3/acinclude.m4 Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libstdc++-v3/acinclude.m4 Fri May 27 07:21:13 2022 *************** AC_DEFUN([GLIBCXX_CHECK_MATH11_PROTO], [ *** 2323,2357 **** ]) dnl - dnl Check whether macros, etc are present for - dnl - AC_DEFUN([GLIBCXX_CHECK_SYSTEM_ERROR], [ - - m4_pushdef([n_syserr], [1])dnl - m4_foreach([syserr], [EOWNERDEAD, ENOTRECOVERABLE, ENOLINK, EPROTO, ENODATA, - ENOSR, ENOSTR, ETIME, EBADMSG, ECANCELED, - EOVERFLOW, ENOTSUP, EIDRM, ETXTBSY, - ECHILD, ENOSPC, EPERM, - ETIMEDOUT, EWOULDBLOCK], - [m4_pushdef([SYSERR], m4_toupper(syserr))dnl - AC_MSG_CHECKING([for syserr]) - AC_CACHE_VAL([glibcxx_cv_system_error[]n_syserr], [ - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], - [int i = syserr;])], - [glibcxx_cv_system_error[]n_syserr=yes], - [glibcxx_cv_system_error[]n_syserr=no]) - ]) - AC_MSG_RESULT([$glibcxx_cv_system_error[]n_syserr]) - if test x"$glibcxx_cv_system_error[]n_syserr" = x"yes"; then - AC_DEFINE([HAVE_]SYSERR, 1, [Define if ]syserr[ exists.]) - fi - m4_define([n_syserr], m4_incr(n_syserr))dnl - m4_popdef([SYSERR])dnl - ]) - m4_popdef([n_syserr])dnl - ]) - - dnl dnl Check for what type of C headers to use. dnl dnl --enable-cheaders= [does stuff]. --- 2323,2328 ---- diff -Nrcpad gcc-9.4.0/libstdc++-v3/config/os/djgpp/error_constants.h gcc-9.5.0/libstdc++-v3/config/os/djgpp/error_constants.h *** gcc-9.4.0/libstdc++-v3/config/os/djgpp/error_constants.h Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libstdc++-v3/config/os/djgpp/error_constants.h Fri May 27 07:21:13 2022 *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 48,54 **** bad_address = EFAULT, bad_file_descriptor = EBADF, ! #ifdef _GLIBCXX_HAVE_EBADMSG bad_message = EBADMSG, #endif --- 48,54 ---- bad_address = EFAULT, bad_file_descriptor = EBADF, ! #ifdef EBADMSG bad_message = EBADMSG, #endif *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 68,74 **** function_not_supported = ENOSYS, // host_unreachable = EHOSTUNREACH, ! #ifdef _GLIBCXX_HAVE_EIDRM identifier_removed = EIDRM, #endif --- 68,74 ---- function_not_supported = ENOSYS, // host_unreachable = EHOSTUNREACH, ! #ifdef EIDRM identifier_removed = EIDRM, #endif *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 86,98 **** // no_buffer_space = ENOBUFS, no_child_process = ECHILD, ! #ifdef _GLIBCXX_HAVE_ENOLINK no_link = ENOLINK, #endif no_lock_available = ENOLCK, ! #ifdef _GLIBCXX_HAVE_ENODATA no_message_available = ENODATA, #endif --- 86,98 ---- // no_buffer_space = ENOBUFS, no_child_process = ECHILD, ! #ifdef ENOLINK no_link = ENOLINK, #endif no_lock_available = ENOLCK, ! #ifdef ENODATA no_message_available = ENODATA, #endif *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 100,106 **** // no_protocol_option = ENOPROTOOPT, no_space_on_device = ENOSPC, ! #ifdef _GLIBCXX_HAVE_ENOSR no_stream_resources = ENOSR, #endif --- 100,106 ---- // no_protocol_option = ENOPROTOOPT, no_space_on_device = ENOSPC, ! #ifdef ENOSR no_stream_resources = ENOSR, #endif *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 111,128 **** not_a_directory = ENOTDIR, // not_a_socket = ENOTSOCK, ! #ifdef _GLIBCXX_HAVE_ENOSTR not_a_stream = ENOSTR, #endif // not_connected = ENOTCONN, not_enough_memory = ENOMEM, ! #ifdef _GLIBCXX_HAVE_ENOTSUP not_supported = ENOTSUP, #endif ! #ifdef _GLIBCXX_HAVE_ECANCELED operation_canceled = ECANCELED, #endif --- 111,128 ---- not_a_directory = ENOTDIR, // not_a_socket = ENOTSOCK, ! #ifdef ENOSTR not_a_stream = ENOSTR, #endif // not_connected = ENOTCONN, not_enough_memory = ENOMEM, ! #ifdef ENOTSUP not_supported = ENOTSUP, #endif ! #ifdef ECANCELED operation_canceled = ECANCELED, #endif *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 131,143 **** // operation_not_supported = EOPNOTSUPP, // operation_would_block = EWOULDBLOCK, ! #ifdef _GLIBCXX_HAVE_EOWNERDEAD owner_dead = EOWNERDEAD, #endif permission_denied = EACCES, ! #ifdef _GLIBCXX_HAVE_EPROTO protocol_error = EPROTO, #endif --- 131,143 ---- // operation_not_supported = EOPNOTSUPP, // operation_would_block = EWOULDBLOCK, ! #ifdef EOWNERDEAD owner_dead = EOWNERDEAD, #endif permission_denied = EACCES, ! #ifdef EPROTO protocol_error = EPROTO, #endif *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 147,161 **** resource_unavailable_try_again = EAGAIN, result_out_of_range = ERANGE, ! #ifdef _GLIBCXX_HAVE_ENOTRECOVERABLE state_not_recoverable = ENOTRECOVERABLE, #endif ! #ifdef _GLIBCXX_HAVE_ETIME stream_timeout = ETIME, #endif ! #ifdef _GLIBCXX_HAVE_ETXTBSY text_file_busy = ETXTBSY, #endif --- 147,161 ---- resource_unavailable_try_again = EAGAIN, result_out_of_range = ERANGE, ! #ifdef ENOTRECOVERABLE state_not_recoverable = ENOTRECOVERABLE, #endif ! #ifdef ETIME stream_timeout = ETIME, #endif ! #ifdef ETXTBSY text_file_busy = ETXTBSY, #endif *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 165,171 **** too_many_links = EMLINK, too_many_symbolic_link_levels = ELOOP, ! #ifdef _GLIBCXX_HAVE_EOVERFLOW value_too_large = EOVERFLOW, #endif --- 165,171 ---- too_many_links = EMLINK, too_many_symbolic_link_levels = ELOOP, ! #ifdef EOVERFLOW value_too_large = EOVERFLOW, #endif diff -Nrcpad gcc-9.4.0/libstdc++-v3/config/os/generic/error_constants.h gcc-9.5.0/libstdc++-v3/config/os/generic/error_constants.h *** gcc-9.4.0/libstdc++-v3/config/os/generic/error_constants.h Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libstdc++-v3/config/os/generic/error_constants.h Fri May 27 07:21:13 2022 *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 48,54 **** bad_address = EFAULT, bad_file_descriptor = EBADF, ! #ifdef _GLIBCXX_HAVE_EBADMSG bad_message = EBADMSG, #endif --- 48,54 ---- bad_address = EFAULT, bad_file_descriptor = EBADF, ! #ifdef EBADMSG bad_message = EBADMSG, #endif *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 68,74 **** function_not_supported = ENOSYS, host_unreachable = EHOSTUNREACH, ! #ifdef _GLIBCXX_HAVE_EIDRM identifier_removed = EIDRM, #endif --- 68,74 ---- function_not_supported = ENOSYS, host_unreachable = EHOSTUNREACH, ! #ifdef EIDRM identifier_removed = EIDRM, #endif *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 86,98 **** no_buffer_space = ENOBUFS, no_child_process = ECHILD, ! #ifdef _GLIBCXX_HAVE_ENOLINK no_link = ENOLINK, #endif no_lock_available = ENOLCK, ! #ifdef _GLIBCXX_HAVE_ENODATA no_message_available = ENODATA, #endif --- 86,98 ---- no_buffer_space = ENOBUFS, no_child_process = ECHILD, ! #ifdef ENOLINK no_link = ENOLINK, #endif no_lock_available = ENOLCK, ! #ifdef ENODATA no_message_available = ENODATA, #endif *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 100,106 **** no_protocol_option = ENOPROTOOPT, no_space_on_device = ENOSPC, ! #ifdef _GLIBCXX_HAVE_ENOSR no_stream_resources = ENOSR, #endif --- 100,106 ---- no_protocol_option = ENOPROTOOPT, no_space_on_device = ENOSPC, ! #ifdef ENOSR no_stream_resources = ENOSR, #endif *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 111,128 **** not_a_directory = ENOTDIR, not_a_socket = ENOTSOCK, ! #ifdef _GLIBCXX_HAVE_ENOSTR not_a_stream = ENOSTR, #endif not_connected = ENOTCONN, not_enough_memory = ENOMEM, ! #ifdef _GLIBCXX_HAVE_ENOTSUP not_supported = ENOTSUP, #endif ! #ifdef _GLIBCXX_HAVE_ECANCELED operation_canceled = ECANCELED, #endif --- 111,128 ---- not_a_directory = ENOTDIR, not_a_socket = ENOTSOCK, ! #ifdef ENOSTR not_a_stream = ENOSTR, #endif not_connected = ENOTCONN, not_enough_memory = ENOMEM, ! #ifdef ENOTSUP not_supported = ENOTSUP, #endif ! #ifdef ECANCELED operation_canceled = ECANCELED, #endif *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 131,143 **** operation_not_supported = EOPNOTSUPP, operation_would_block = EWOULDBLOCK, ! #ifdef _GLIBCXX_HAVE_EOWNERDEAD owner_dead = EOWNERDEAD, #endif permission_denied = EACCES, ! #ifdef _GLIBCXX_HAVE_EPROTO protocol_error = EPROTO, #endif --- 131,143 ---- operation_not_supported = EOPNOTSUPP, operation_would_block = EWOULDBLOCK, ! #ifdef EOWNERDEAD owner_dead = EOWNERDEAD, #endif permission_denied = EACCES, ! #ifdef EPROTO protocol_error = EPROTO, #endif *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 147,161 **** resource_unavailable_try_again = EAGAIN, result_out_of_range = ERANGE, ! #ifdef _GLIBCXX_HAVE_ENOTRECOVERABLE state_not_recoverable = ENOTRECOVERABLE, #endif ! #ifdef _GLIBCXX_HAVE_ETIME stream_timeout = ETIME, #endif ! #ifdef _GLIBCXX_HAVE_ETXTBSY text_file_busy = ETXTBSY, #endif --- 147,161 ---- resource_unavailable_try_again = EAGAIN, result_out_of_range = ERANGE, ! #ifdef ENOTRECOVERABLE state_not_recoverable = ENOTRECOVERABLE, #endif ! #ifdef ETIME stream_timeout = ETIME, #endif ! #ifdef ETXTBSY text_file_busy = ETXTBSY, #endif *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 165,171 **** too_many_links = EMLINK, too_many_symbolic_link_levels = ELOOP, ! #ifdef _GLIBCXX_HAVE_EOVERFLOW value_too_large = EOVERFLOW, #endif --- 165,171 ---- too_many_links = EMLINK, too_many_symbolic_link_levels = ELOOP, ! #ifdef EOVERFLOW value_too_large = EOVERFLOW, #endif diff -Nrcpad gcc-9.4.0/libstdc++-v3/config/os/mingw32/error_constants.h gcc-9.5.0/libstdc++-v3/config/os/mingw32/error_constants.h *** gcc-9.4.0/libstdc++-v3/config/os/mingw32/error_constants.h Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libstdc++-v3/config/os/mingw32/error_constants.h Fri May 27 07:21:13 2022 *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 78,84 **** // network_reset = ENETRESET, // network_unreachable = ENETUNREACH, // no_buffer_space = ENOBUFS, ! #ifdef _GLIBCXX_HAVE_ECHILD no_child_process = ECHILD, #endif // no_link = ENOLINK, --- 78,84 ---- // network_reset = ENETRESET, // network_unreachable = ENETUNREACH, // no_buffer_space = ENOBUFS, ! #ifdef ECHILD no_child_process = ECHILD, #endif // no_link = ENOLINK, *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 86,92 **** // no_message_available = ENODATA, // no_message = ENOMSG, // no_protocol_option = ENOPROTOOPT, ! #ifdef _GLIBCXX_HAVE_ENOSPC no_space_on_device = ENOSPC, #endif // no_stream_resources = ENOSR, --- 86,92 ---- // no_message_available = ENODATA, // no_message = ENOMSG, // no_protocol_option = ENOPROTOOPT, ! #ifdef ENOSPC no_space_on_device = ENOSPC, #endif // no_stream_resources = ENOSR, *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 99,114 **** // not_a_stream = ENOSTR, // not_connected = ENOTCONN, not_enough_memory = ENOMEM, ! #ifdef _GLIBCXX_HAVE_ENOTSUP not_supported = ENOTSUP, #endif // operation_canceled = ECANCELED, // operation_in_progress = EINPROGRESS, ! #ifdef _GLIBCXX_HAVE_EPERM operation_not_permitted = EPERM, #endif // operation_not_supported = EOPNOTSUPP, ! #ifdef _GLIBCXX_HAVE_EWOULDBLOCK operation_would_block = EWOULDBLOCK, #endif // owner_dead = EOWNERDEAD, --- 99,114 ---- // not_a_stream = ENOSTR, // not_connected = ENOTCONN, not_enough_memory = ENOMEM, ! #ifdef ENOTSUP not_supported = ENOTSUP, #endif // operation_canceled = ECANCELED, // operation_in_progress = EINPROGRESS, ! #ifdef EPERM operation_not_permitted = EPERM, #endif // operation_not_supported = EOPNOTSUPP, ! #ifdef EWOULDBLOCK operation_would_block = EWOULDBLOCK, #endif // owner_dead = EOWNERDEAD, *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 122,135 **** // state_not_recoverable = ENOTRECOVERABLE, // stream_timeout = ETIME, // text_file_busy = ETXTBSY, ! #ifdef _GLIBCXX_HAVE_ETIMEDOUT timed_out = ETIMEDOUT, #endif too_many_files_open_in_system = ENFILE, too_many_files_open = EMFILE, too_many_links = EMLINK // too_many_symbolic_link_levels = ELOOP, ! #ifdef _GLIBCXX_HAVE_EOVERFLOW , value_too_large = EOVERFLOW #endif --- 122,135 ---- // state_not_recoverable = ENOTRECOVERABLE, // stream_timeout = ETIME, // text_file_busy = ETXTBSY, ! #ifdef ETIMEDOUT timed_out = ETIMEDOUT, #endif too_many_files_open_in_system = ENFILE, too_many_files_open = EMFILE, too_many_links = EMLINK // too_many_symbolic_link_levels = ELOOP, ! #ifdef EOVERFLOW , value_too_large = EOVERFLOW #endif diff -Nrcpad gcc-9.4.0/libstdc++-v3/config/os/mingw32-w64/error_constants.h gcc-9.5.0/libstdc++-v3/config/os/mingw32-w64/error_constants.h *** gcc-9.4.0/libstdc++-v3/config/os/mingw32-w64/error_constants.h Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libstdc++-v3/config/os/mingw32-w64/error_constants.h Fri May 27 07:21:13 2022 *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 49,55 **** argument_out_of_domain = EDOM, bad_address = EFAULT, bad_file_descriptor = EBADF, ! #ifdef _GLIBCXX_HAVE_EBADMSG bad_message = EBADMSG, #endif broken_pipe = EPIPE, --- 49,55 ---- argument_out_of_domain = EDOM, bad_address = EFAULT, bad_file_descriptor = EBADF, ! #ifdef EBADMSG bad_message = EBADMSG, #endif broken_pipe = EPIPE, *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 67,73 **** filename_too_long = ENAMETOOLONG, function_not_supported = ENOSYS, host_unreachable = EHOSTUNREACH, ! #ifdef _GLIBCXX_HAVE_EIDRM identifier_removed = EIDRM, #endif illegal_byte_sequence = EILSEQ, --- 67,73 ---- filename_too_long = ENAMETOOLONG, function_not_supported = ENOSYS, host_unreachable = EHOSTUNREACH, ! #ifdef EIDRM identifier_removed = EIDRM, #endif illegal_byte_sequence = EILSEQ, *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 82,105 **** network_reset = ENETRESET, network_unreachable = ENETUNREACH, no_buffer_space = ENOBUFS, ! #ifdef _GLIBCXX_HAVE_ECHILD no_child_process = ECHILD, #endif ! #ifdef _GLIBCXX_HAVE_ENOLINK no_link = ENOLINK, #endif no_lock_available = ENOLCK, ! #ifdef _GLIBCXX_HAVE_ENODATA no_message_available = ENODATA, #endif ! #ifdef _GLIBCXX_HAVE_ENOMSG no_message = ENOMSG, #endif no_protocol_option = ENOPROTOOPT, ! #ifdef _GLIBCXX_HAVE_ENOSPC no_space_on_device = ENOSPC, #endif ! #ifdef _GLIBCXX_HAVE_ENOSR no_stream_resources = ENOSR, #endif no_such_device_or_address = ENXIO, --- 82,105 ---- network_reset = ENETRESET, network_unreachable = ENETUNREACH, no_buffer_space = ENOBUFS, ! #ifdef ECHILD no_child_process = ECHILD, #endif ! #ifdef ENOLINK no_link = ENOLINK, #endif no_lock_available = ENOLCK, ! #ifdef ENODATA no_message_available = ENODATA, #endif ! #ifdef ENOMSG no_message = ENOMSG, #endif no_protocol_option = ENOPROTOOPT, ! #ifdef ENOSPC no_space_on_device = ENOSPC, #endif ! #ifdef ENOSR no_stream_resources = ENOSR, #endif no_such_device_or_address = ENXIO, *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 108,131 **** no_such_process = ESRCH, not_a_directory = ENOTDIR, not_a_socket = ENOTSOCK, ! #ifdef _GLIBCXX_HAVE_ENOSTR not_a_stream = ENOSTR, #endif not_connected = ENOTCONN, not_enough_memory = ENOMEM, ! #ifdef _GLIBCXX_HAVE_ENOTSUP not_supported = ENOTSUP, #endif operation_canceled = ECANCELED, operation_in_progress = EINPROGRESS, ! #ifdef _GLIBCXX_HAVE_EPERM operation_not_permitted = EPERM, #endif operation_not_supported = EOPNOTSUPP, ! #ifdef _GLIBCXX_HAVE_EWOULDBLOCK operation_would_block = EWOULDBLOCK, #endif ! #ifdef _GLIBCXX_HAVE_EOWNERDEAD owner_dead = EOWNERDEAD, #endif permission_denied = EACCES, --- 108,131 ---- no_such_process = ESRCH, not_a_directory = ENOTDIR, not_a_socket = ENOTSOCK, ! #ifdef ENOSTR not_a_stream = ENOSTR, #endif not_connected = ENOTCONN, not_enough_memory = ENOMEM, ! #ifdef ENOTSUP not_supported = ENOTSUP, #endif operation_canceled = ECANCELED, operation_in_progress = EINPROGRESS, ! #ifdef EPERM operation_not_permitted = EPERM, #endif operation_not_supported = EOPNOTSUPP, ! #ifdef EWOULDBLOCK operation_would_block = EWOULDBLOCK, #endif ! #ifdef EOWNERDEAD owner_dead = EOWNERDEAD, #endif permission_denied = EACCES, *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 135,157 **** resource_deadlock_would_occur = EDEADLK, resource_unavailable_try_again = EAGAIN, result_out_of_range = ERANGE, ! #ifdef _GLIBCXX_HAVE_ENOTRECOVERABLE state_not_recoverable = ENOTRECOVERABLE, #endif ! #ifdef _GLIBCXX_HAVE_ETIME stream_timeout = ETIME, #endif ! #ifdef _GLIBCXX_HAVE_ETXTBSY text_file_busy = ETXTBSY, #endif ! #ifdef _GLIBCXX_HAVE_ETIMEDOUT timed_out = ETIMEDOUT, #endif too_many_files_open_in_system = ENFILE, too_many_files_open = EMFILE, too_many_links = EMLINK, too_many_symbolic_link_levels = ELOOP, ! #ifdef _GLIBCXX_HAVE_EOVERFLOW value_too_large = EOVERFLOW, #endif wrong_protocol_type = EPROTOTYPE --- 135,157 ---- resource_deadlock_would_occur = EDEADLK, resource_unavailable_try_again = EAGAIN, result_out_of_range = ERANGE, ! #ifdef ENOTRECOVERABLE state_not_recoverable = ENOTRECOVERABLE, #endif ! #ifdef ETIME stream_timeout = ETIME, #endif ! #ifdef ETXTBSY text_file_busy = ETXTBSY, #endif ! #ifdef ETIMEDOUT timed_out = ETIMEDOUT, #endif too_many_files_open_in_system = ENFILE, too_many_files_open = EMFILE, too_many_links = EMLINK, too_many_symbolic_link_levels = ELOOP, ! #ifdef EOVERFLOW value_too_large = EOVERFLOW, #endif wrong_protocol_type = EPROTOTYPE diff -Nrcpad gcc-9.4.0/libstdc++-v3/config.h.in gcc-9.5.0/libstdc++-v3/config.h.in *** gcc-9.4.0/libstdc++-v3/config.h.in Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libstdc++-v3/config.h.in Fri May 27 07:21:13 2022 *************** *** 69,134 **** /* Define to 1 if you have the header file. */ #undef HAVE_DLFCN_H - /* Define if EBADMSG exists. */ - #undef HAVE_EBADMSG - - /* Define if ECANCELED exists. */ - #undef HAVE_ECANCELED - - /* Define if ECHILD exists. */ - #undef HAVE_ECHILD - - /* Define if EIDRM exists. */ - #undef HAVE_EIDRM - /* Define to 1 if you have the header file. */ #undef HAVE_ENDIAN_H - /* Define if ENODATA exists. */ - #undef HAVE_ENODATA - - /* Define if ENOLINK exists. */ - #undef HAVE_ENOLINK - - /* Define if ENOSPC exists. */ - #undef HAVE_ENOSPC - - /* Define if ENOSR exists. */ - #undef HAVE_ENOSR - - /* Define if ENOSTR exists. */ - #undef HAVE_ENOSTR - - /* Define if ENOTRECOVERABLE exists. */ - #undef HAVE_ENOTRECOVERABLE - - /* Define if ENOTSUP exists. */ - #undef HAVE_ENOTSUP - - /* Define if EOVERFLOW exists. */ - #undef HAVE_EOVERFLOW - - /* Define if EOWNERDEAD exists. */ - #undef HAVE_EOWNERDEAD - - /* Define if EPERM exists. */ - #undef HAVE_EPERM - - /* Define if EPROTO exists. */ - #undef HAVE_EPROTO - - /* Define if ETIME exists. */ - #undef HAVE_ETIME - - /* Define if ETIMEDOUT exists. */ - #undef HAVE_ETIMEDOUT - - /* Define if ETXTBSY exists. */ - #undef HAVE_ETXTBSY - - /* Define if EWOULDBLOCK exists. */ - #undef HAVE_EWOULDBLOCK - /* Define to 1 if GCC 4.6 supported std::exception_ptr for the target */ #undef HAVE_EXCEPTION_PTR_SINCE_GCC46 --- 69,77 ---- diff -Nrcpad gcc-9.4.0/libstdc++-v3/configure gcc-9.5.0/libstdc++-v3/configure *** gcc-9.4.0/libstdc++-v3/configure Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libstdc++-v3/configure Fri May 27 07:21:13 2022 *************** ac_compiler_gnu=$ac_cv_c_compiler_gnu *** 18942,19578 **** - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EOWNERDEAD" >&5 - $as_echo_n "checking for EOWNERDEAD... " >&6; } - if ${glibcxx_cv_system_error1+:} false; then : - $as_echo_n "(cached) " >&6 - else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - #include - int - main () - { - int i = EOWNERDEAD; - ; - return 0; - } - _ACEOF - if ac_fn_c_try_compile "$LINENO"; then : - glibcxx_cv_system_error1=yes - else - glibcxx_cv_system_error1=no - fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_system_error1" >&5 - $as_echo "$glibcxx_cv_system_error1" >&6; } - if test x"$glibcxx_cv_system_error1" = x"yes"; then - - $as_echo "#define HAVE_EOWNERDEAD 1" >>confdefs.h - - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ENOTRECOVERABLE" >&5 - $as_echo_n "checking for ENOTRECOVERABLE... " >&6; } - if ${glibcxx_cv_system_error2+:} false; then : - $as_echo_n "(cached) " >&6 - else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - #include - int - main () - { - int i = ENOTRECOVERABLE; - ; - return 0; - } - _ACEOF - if ac_fn_c_try_compile "$LINENO"; then : - glibcxx_cv_system_error2=yes - else - glibcxx_cv_system_error2=no - fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_system_error2" >&5 - $as_echo "$glibcxx_cv_system_error2" >&6; } - if test x"$glibcxx_cv_system_error2" = x"yes"; then - - $as_echo "#define HAVE_ENOTRECOVERABLE 1" >>confdefs.h - - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ENOLINK" >&5 - $as_echo_n "checking for ENOLINK... " >&6; } - if ${glibcxx_cv_system_error3+:} false; then : - $as_echo_n "(cached) " >&6 - else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - #include - int - main () - { - int i = ENOLINK; - ; - return 0; - } - _ACEOF - if ac_fn_c_try_compile "$LINENO"; then : - glibcxx_cv_system_error3=yes - else - glibcxx_cv_system_error3=no - fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_system_error3" >&5 - $as_echo "$glibcxx_cv_system_error3" >&6; } - if test x"$glibcxx_cv_system_error3" = x"yes"; then - - $as_echo "#define HAVE_ENOLINK 1" >>confdefs.h - - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EPROTO" >&5 - $as_echo_n "checking for EPROTO... " >&6; } - if ${glibcxx_cv_system_error4+:} false; then : - $as_echo_n "(cached) " >&6 - else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - #include - int - main () - { - int i = EPROTO; - ; - return 0; - } - _ACEOF - if ac_fn_c_try_compile "$LINENO"; then : - glibcxx_cv_system_error4=yes - else - glibcxx_cv_system_error4=no - fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_system_error4" >&5 - $as_echo "$glibcxx_cv_system_error4" >&6; } - if test x"$glibcxx_cv_system_error4" = x"yes"; then - - $as_echo "#define HAVE_EPROTO 1" >>confdefs.h - - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ENODATA" >&5 - $as_echo_n "checking for ENODATA... " >&6; } - if ${glibcxx_cv_system_error5+:} false; then : - $as_echo_n "(cached) " >&6 - else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - #include - int - main () - { - int i = ENODATA; - ; - return 0; - } - _ACEOF - if ac_fn_c_try_compile "$LINENO"; then : - glibcxx_cv_system_error5=yes - else - glibcxx_cv_system_error5=no - fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_system_error5" >&5 - $as_echo "$glibcxx_cv_system_error5" >&6; } - if test x"$glibcxx_cv_system_error5" = x"yes"; then - - $as_echo "#define HAVE_ENODATA 1" >>confdefs.h - - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ENOSR" >&5 - $as_echo_n "checking for ENOSR... " >&6; } - if ${glibcxx_cv_system_error6+:} false; then : - $as_echo_n "(cached) " >&6 - else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - #include - int - main () - { - int i = ENOSR; - ; - return 0; - } - _ACEOF - if ac_fn_c_try_compile "$LINENO"; then : - glibcxx_cv_system_error6=yes - else - glibcxx_cv_system_error6=no - fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_system_error6" >&5 - $as_echo "$glibcxx_cv_system_error6" >&6; } - if test x"$glibcxx_cv_system_error6" = x"yes"; then - - $as_echo "#define HAVE_ENOSR 1" >>confdefs.h - - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ENOSTR" >&5 - $as_echo_n "checking for ENOSTR... " >&6; } - if ${glibcxx_cv_system_error7+:} false; then : - $as_echo_n "(cached) " >&6 - else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - #include - int - main () - { - int i = ENOSTR; - ; - return 0; - } - _ACEOF - if ac_fn_c_try_compile "$LINENO"; then : - glibcxx_cv_system_error7=yes - else - glibcxx_cv_system_error7=no - fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_system_error7" >&5 - $as_echo "$glibcxx_cv_system_error7" >&6; } - if test x"$glibcxx_cv_system_error7" = x"yes"; then - - $as_echo "#define HAVE_ENOSTR 1" >>confdefs.h - - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ETIME" >&5 - $as_echo_n "checking for ETIME... " >&6; } - if ${glibcxx_cv_system_error8+:} false; then : - $as_echo_n "(cached) " >&6 - else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - #include - int - main () - { - int i = ETIME; - ; - return 0; - } - _ACEOF - if ac_fn_c_try_compile "$LINENO"; then : - glibcxx_cv_system_error8=yes - else - glibcxx_cv_system_error8=no - fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_system_error8" >&5 - $as_echo "$glibcxx_cv_system_error8" >&6; } - if test x"$glibcxx_cv_system_error8" = x"yes"; then - - $as_echo "#define HAVE_ETIME 1" >>confdefs.h - - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EBADMSG" >&5 - $as_echo_n "checking for EBADMSG... " >&6; } - if ${glibcxx_cv_system_error9+:} false; then : - $as_echo_n "(cached) " >&6 - else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - #include - int - main () - { - int i = EBADMSG; - ; - return 0; - } - _ACEOF - if ac_fn_c_try_compile "$LINENO"; then : - glibcxx_cv_system_error9=yes - else - glibcxx_cv_system_error9=no - fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_system_error9" >&5 - $as_echo "$glibcxx_cv_system_error9" >&6; } - if test x"$glibcxx_cv_system_error9" = x"yes"; then - - $as_echo "#define HAVE_EBADMSG 1" >>confdefs.h - - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ECANCELED" >&5 - $as_echo_n "checking for ECANCELED... " >&6; } - if ${glibcxx_cv_system_error10+:} false; then : - $as_echo_n "(cached) " >&6 - else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - #include - int - main () - { - int i = ECANCELED; - ; - return 0; - } - _ACEOF - if ac_fn_c_try_compile "$LINENO"; then : - glibcxx_cv_system_error10=yes - else - glibcxx_cv_system_error10=no - fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_system_error10" >&5 - $as_echo "$glibcxx_cv_system_error10" >&6; } - if test x"$glibcxx_cv_system_error10" = x"yes"; then - - $as_echo "#define HAVE_ECANCELED 1" >>confdefs.h - - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EOVERFLOW" >&5 - $as_echo_n "checking for EOVERFLOW... " >&6; } - if ${glibcxx_cv_system_error11+:} false; then : - $as_echo_n "(cached) " >&6 - else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - #include - int - main () - { - int i = EOVERFLOW; - ; - return 0; - } - _ACEOF - if ac_fn_c_try_compile "$LINENO"; then : - glibcxx_cv_system_error11=yes - else - glibcxx_cv_system_error11=no - fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_system_error11" >&5 - $as_echo "$glibcxx_cv_system_error11" >&6; } - if test x"$glibcxx_cv_system_error11" = x"yes"; then - - $as_echo "#define HAVE_EOVERFLOW 1" >>confdefs.h - - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ENOTSUP" >&5 - $as_echo_n "checking for ENOTSUP... " >&6; } - if ${glibcxx_cv_system_error12+:} false; then : - $as_echo_n "(cached) " >&6 - else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - #include - int - main () - { - int i = ENOTSUP; - ; - return 0; - } - _ACEOF - if ac_fn_c_try_compile "$LINENO"; then : - glibcxx_cv_system_error12=yes - else - glibcxx_cv_system_error12=no - fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_system_error12" >&5 - $as_echo "$glibcxx_cv_system_error12" >&6; } - if test x"$glibcxx_cv_system_error12" = x"yes"; then - - $as_echo "#define HAVE_ENOTSUP 1" >>confdefs.h - - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EIDRM" >&5 - $as_echo_n "checking for EIDRM... " >&6; } - if ${glibcxx_cv_system_error13+:} false; then : - $as_echo_n "(cached) " >&6 - else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - #include - int - main () - { - int i = EIDRM; - ; - return 0; - } - _ACEOF - if ac_fn_c_try_compile "$LINENO"; then : - glibcxx_cv_system_error13=yes - else - glibcxx_cv_system_error13=no - fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_system_error13" >&5 - $as_echo "$glibcxx_cv_system_error13" >&6; } - if test x"$glibcxx_cv_system_error13" = x"yes"; then - - $as_echo "#define HAVE_EIDRM 1" >>confdefs.h - - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ETXTBSY" >&5 - $as_echo_n "checking for ETXTBSY... " >&6; } - if ${glibcxx_cv_system_error14+:} false; then : - $as_echo_n "(cached) " >&6 - else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - #include - int - main () - { - int i = ETXTBSY; - ; - return 0; - } - _ACEOF - if ac_fn_c_try_compile "$LINENO"; then : - glibcxx_cv_system_error14=yes - else - glibcxx_cv_system_error14=no - fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_system_error14" >&5 - $as_echo "$glibcxx_cv_system_error14" >&6; } - if test x"$glibcxx_cv_system_error14" = x"yes"; then - - $as_echo "#define HAVE_ETXTBSY 1" >>confdefs.h - - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ECHILD" >&5 - $as_echo_n "checking for ECHILD... " >&6; } - if ${glibcxx_cv_system_error15+:} false; then : - $as_echo_n "(cached) " >&6 - else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - #include - int - main () - { - int i = ECHILD; - ; - return 0; - } - _ACEOF - if ac_fn_c_try_compile "$LINENO"; then : - glibcxx_cv_system_error15=yes - else - glibcxx_cv_system_error15=no - fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_system_error15" >&5 - $as_echo "$glibcxx_cv_system_error15" >&6; } - if test x"$glibcxx_cv_system_error15" = x"yes"; then - - $as_echo "#define HAVE_ECHILD 1" >>confdefs.h - - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ENOSPC" >&5 - $as_echo_n "checking for ENOSPC... " >&6; } - if ${glibcxx_cv_system_error16+:} false; then : - $as_echo_n "(cached) " >&6 - else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - #include - int - main () - { - int i = ENOSPC; - ; - return 0; - } - _ACEOF - if ac_fn_c_try_compile "$LINENO"; then : - glibcxx_cv_system_error16=yes - else - glibcxx_cv_system_error16=no - fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_system_error16" >&5 - $as_echo "$glibcxx_cv_system_error16" >&6; } - if test x"$glibcxx_cv_system_error16" = x"yes"; then - - $as_echo "#define HAVE_ENOSPC 1" >>confdefs.h - - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EPERM" >&5 - $as_echo_n "checking for EPERM... " >&6; } - if ${glibcxx_cv_system_error17+:} false; then : - $as_echo_n "(cached) " >&6 - else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - #include - int - main () - { - int i = EPERM; - ; - return 0; - } - _ACEOF - if ac_fn_c_try_compile "$LINENO"; then : - glibcxx_cv_system_error17=yes - else - glibcxx_cv_system_error17=no - fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_system_error17" >&5 - $as_echo "$glibcxx_cv_system_error17" >&6; } - if test x"$glibcxx_cv_system_error17" = x"yes"; then - - $as_echo "#define HAVE_EPERM 1" >>confdefs.h - - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ETIMEDOUT" >&5 - $as_echo_n "checking for ETIMEDOUT... " >&6; } - if ${glibcxx_cv_system_error18+:} false; then : - $as_echo_n "(cached) " >&6 - else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - #include - int - main () - { - int i = ETIMEDOUT; - ; - return 0; - } - _ACEOF - if ac_fn_c_try_compile "$LINENO"; then : - glibcxx_cv_system_error18=yes - else - glibcxx_cv_system_error18=no - fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_system_error18" >&5 - $as_echo "$glibcxx_cv_system_error18" >&6; } - if test x"$glibcxx_cv_system_error18" = x"yes"; then - - $as_echo "#define HAVE_ETIMEDOUT 1" >>confdefs.h - - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EWOULDBLOCK" >&5 - $as_echo_n "checking for EWOULDBLOCK... " >&6; } - if ${glibcxx_cv_system_error19+:} false; then : - $as_echo_n "(cached) " >&6 - else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - #include - int - main () - { - int i = EWOULDBLOCK; - ; - return 0; - } - _ACEOF - if ac_fn_c_try_compile "$LINENO"; then : - glibcxx_cv_system_error19=yes - else - glibcxx_cv_system_error19=no - fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_system_error19" >&5 - $as_echo "$glibcxx_cv_system_error19" >&6; } - if test x"$glibcxx_cv_system_error19" = x"yes"; then - - $as_echo "#define HAVE_EWOULDBLOCK 1" >>confdefs.h - - fi - - - - # Test uchar.h. for ac_header in uchar.h do : --- 18942,18947 ---- diff -Nrcpad gcc-9.4.0/libstdc++-v3/configure.ac gcc-9.5.0/libstdc++-v3/configure.ac *** gcc-9.4.0/libstdc++-v3/configure.ac Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libstdc++-v3/configure.ac Fri May 27 07:21:13 2022 *************** GLIBCXX_ENABLE_VTABLE_VERIFY([no]) *** 183,189 **** # Checks for operating systems support that doesn't require linking. GLIBCXX_CHECK_STDIO_PROTO GLIBCXX_CHECK_MATH11_PROTO - GLIBCXX_CHECK_SYSTEM_ERROR GLIBCXX_CHECK_UCHAR_H # For the streamoff typedef. --- 183,188 ---- diff -Nrcpad gcc-9.4.0/libstdc++-v3/doc/html/faq.html gcc-9.5.0/libstdc++-v3/doc/html/faq.html *** gcc-9.4.0/libstdc++-v3/doc/html/faq.html Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libstdc++-v3/doc/html/faq.html Fri May 27 07:21:13 2022 *************** *** 456,462 **** CPLUSPLUS_CPP_SPEC in the gcc config headers for your target (and try changing them to see what happens when building complicated code). You can also run ! g++ -E -dM - < /dev/null" to display a list of predefined macros for any particular installation.

This has been discussed on the mailing lists quite a bit. diff -Nrcpad gcc-9.4.0/libstdc++-v3/doc/html/manual/status.html gcc-9.5.0/libstdc++-v3/doc/html/manual/status.html *** gcc-9.4.0/libstdc++-v3/doc/html/manual/status.html Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libstdc++-v3/doc/html/manual/status.html Fri May 27 07:21:13 2022 *************** Feature-testing recommendations for C++< *** 1025,1031 **** P0463R1 ! 8.1   Extending make_shared to Support Arrays P0674R1 --- 1025,1034 ---- P0463R1 ! 8.1   Bit operations ! ! P0553R4 ! 9.1 __cpp_lib_bitops >= 201907L (macro only defined since 9.4) Extending make_shared to Support Arrays P0674R1 *************** Feature-testing recommendations for C++< *** 1150,1156 **** P0556R3 ! 9.1   Reviewing Deprecated Facilities of C++17 for C++20 P0619R4 --- 1153,1159 ---- P0556R3 ! 9.1 __cpp_lib_int_pow2 >= 201806L (macro only defined since 9.4) Reviewing Deprecated Facilities of C++17 for C++20 P0619R4 diff -Nrcpad gcc-9.4.0/libstdc++-v3/doc/xml/faq.xml gcc-9.5.0/libstdc++-v3/doc/xml/faq.xml *** gcc-9.4.0/libstdc++-v3/doc/xml/faq.xml Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libstdc++-v3/doc/xml/faq.xml Fri May 27 07:21:13 2022 *************** *** 580,586 **** CPLUSPLUS_CPP_SPEC in the gcc config headers for your target (and try changing them to see what happens when building complicated code). You can also run ! g++ -E -dM - < /dev/null" to display a list of predefined macros for any particular installation. This has been discussed on the mailing lists --- 580,586 ---- CPLUSPLUS_CPP_SPEC in the gcc config headers for your target (and try changing them to see what happens when building complicated code). You can also run ! g++ -E -dM -x c++ /dev/null to display a list of predefined macros for any particular installation. This has been discussed on the mailing lists diff -Nrcpad gcc-9.4.0/libstdc++-v3/doc/xml/manual/intro.xml gcc-9.5.0/libstdc++-v3/doc/xml/manual/intro.xml *** gcc-9.4.0/libstdc++-v3/doc/xml/manual/intro.xml Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libstdc++-v3/doc/xml/manual/intro.xml Fri May 27 07:21:13 2022 *************** *** 55,61 **** ! --- 55,61 ---- ! diff -Nrcpad gcc-9.4.0/libstdc++-v3/doc/xml/manual/status_cxx2020.xml gcc-9.5.0/libstdc++-v3/doc/xml/manual/status_cxx2020.xml *** gcc-9.4.0/libstdc++-v3/doc/xml/manual/status_cxx2020.xml Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libstdc++-v3/doc/xml/manual/status_cxx2020.xml Fri May 27 07:21:13 2022 *************** Feature-testing recommendations for C++< *** 65,70 **** --- 65,80 ---- + Bit operations + + + P0553R4 + + 9.1 + __cpp_lib_bitops >= 201907L (macro only defined since 9.4) + + + Extending make_shared to Support Arrays *************** Feature-testing recommendations for C++< *** 421,427 **** 9.1 ! --- 431,437 ---- 9.1 ! __cpp_lib_int_pow2 >= 201806L (macro only defined since 9.4) diff -Nrcpad gcc-9.4.0/libstdc++-v3/include/Makefile.am gcc-9.5.0/libstdc++-v3/include/Makefile.am *** gcc-9.4.0/libstdc++-v3/include/Makefile.am Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libstdc++-v3/include/Makefile.am Fri May 27 07:21:13 2022 *************** ${host_builddir}/c++config.h: ${CONFIG_H *** 1334,1339 **** --- 1334,1341 ---- -e 's/PACKAGE/_GLIBCXX_PACKAGE/g' \ -e 's/VERSION/_GLIBCXX_VERSION/g' \ -e 's/WORDS_/_GLIBCXX_WORDS_/g' \ + -e 's/LT_OBJDIR/_GLIBCXX_LT_OBJDIR/g' \ + -e 's/STDC_HEADERS/_GLIBCXX_STDC_HEADERS/g' \ -e 's/_DARWIN_USE_64_BIT_INODE/_GLIBCXX_DARWIN_USE_64_BIT_INODE/g' \ -e 's/_FILE_OFFSET_BITS/_GLIBCXX_FILE_OFFSET_BITS/g' \ -e 's/_LARGE_FILES/_GLIBCXX_LARGE_FILES/g' \ diff -Nrcpad gcc-9.4.0/libstdc++-v3/include/Makefile.in gcc-9.5.0/libstdc++-v3/include/Makefile.in *** gcc-9.4.0/libstdc++-v3/include/Makefile.in Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libstdc++-v3/include/Makefile.in Fri May 27 07:21:13 2022 *************** ${host_builddir}/c++config.h: ${CONFIG_H *** 1816,1821 **** --- 1816,1823 ---- -e 's/PACKAGE/_GLIBCXX_PACKAGE/g' \ -e 's/VERSION/_GLIBCXX_VERSION/g' \ -e 's/WORDS_/_GLIBCXX_WORDS_/g' \ + -e 's/LT_OBJDIR/_GLIBCXX_LT_OBJDIR/g' \ + -e 's/STDC_HEADERS/_GLIBCXX_STDC_HEADERS/g' \ -e 's/_DARWIN_USE_64_BIT_INODE/_GLIBCXX_DARWIN_USE_64_BIT_INODE/g' \ -e 's/_FILE_OFFSET_BITS/_GLIBCXX_FILE_OFFSET_BITS/g' \ -e 's/_LARGE_FILES/_GLIBCXX_LARGE_FILES/g' \ diff -Nrcpad gcc-9.4.0/libstdc++-v3/include/bits/basic_string.h gcc-9.5.0/libstdc++-v3/include/bits/basic_string.h *** gcc-9.4.0/libstdc++-v3/include/bits/basic_string.h Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libstdc++-v3/include/bits/basic_string.h Fri May 27 07:21:13 2022 *************** _GLIBCXX_BEGIN_NAMESPACE_CXX11 *** 528,534 **** #endif basic_string(const _CharT* __s, const _Alloc& __a = _Alloc()) : _M_dataplus(_M_local_data(), __a) ! { _M_construct(__s, __s ? __s + traits_type::length(__s) : __s+npos); } /** * @brief Construct string as multiple characters. --- 528,539 ---- #endif basic_string(const _CharT* __s, const _Alloc& __a = _Alloc()) : _M_dataplus(_M_local_data(), __a) ! { ! const _CharT* __end = __s ? __s + traits_type::length(__s) ! // We just need a non-null pointer here to get an exception: ! : reinterpret_cast(__alignof__(_CharT)); ! _M_construct(__s, __end, random_access_iterator_tag()); ! } /** * @brief Construct string as multiple characters. diff -Nrcpad gcc-9.4.0/libstdc++-v3/include/bits/char_traits.h gcc-9.5.0/libstdc++-v3/include/bits/char_traits.h *** gcc-9.4.0/libstdc++-v3/include/bits/char_traits.h Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libstdc++-v3/include/bits/char_traits.h Fri May 27 07:21:13 2022 *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 227,233 **** * Assumes that _CharT is a built-in character type. */ template ! static _GLIBCXX_ALWAYS_INLINE constexpr bool __constant_string_p(const _CharT* __s) { #ifdef _GLIBCXX_HAVE_BUILTIN_IS_CONSTANT_EVALUATED --- 227,233 ---- * Assumes that _CharT is a built-in character type. */ template ! _GLIBCXX_ALWAYS_INLINE constexpr bool __constant_string_p(const _CharT* __s) { #ifdef _GLIBCXX_HAVE_BUILTIN_IS_CONSTANT_EVALUATED *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 250,256 **** * Assumes that _CharT is a built-in character type. */ template ! static _GLIBCXX_ALWAYS_INLINE constexpr bool __constant_char_array_p(const _CharT* __a, size_t __n) { #ifdef _GLIBCXX_HAVE_BUILTIN_IS_CONSTANT_EVALUATED --- 250,256 ---- * Assumes that _CharT is a built-in character type. */ template ! _GLIBCXX_ALWAYS_INLINE constexpr bool __constant_char_array_p(const _CharT* __a, size_t __n) { #ifdef _GLIBCXX_HAVE_BUILTIN_IS_CONSTANT_EVALUATED diff -Nrcpad gcc-9.4.0/libstdc++-v3/include/bits/forward_list.tcc gcc-9.5.0/libstdc++-v3/include/bits/forward_list.tcc *** gcc-9.4.0/libstdc++-v3/include/bits/forward_list.tcc Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libstdc++-v3/include/bits/forward_list.tcc Fri May 27 07:21:13 2022 *************** _GLIBCXX_BEGIN_NAMESPACE_CONTAINER *** 372,377 **** --- 372,382 ---- forward_list<_Tp, _Alloc>:: merge(forward_list&& __list, _Comp __comp) { + // _GLIBCXX_RESOLVE_LIB_DEFECTS + // 3088. forward_list::merge behavior unclear when passed *this + if (std::__addressof(__list) == this) + return; + _Node_base* __node = &this->_M_impl._M_head; while (__node->_M_next && __list._M_impl._M_head._M_next) { diff -Nrcpad gcc-9.4.0/libstdc++-v3/include/bits/fs_path.h gcc-9.5.0/libstdc++-v3/include/bits/fs_path.h *** gcc-9.4.0/libstdc++-v3/include/bits/fs_path.h Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libstdc++-v3/include/bits/fs_path.h Fri May 27 07:21:13 2022 *************** _GLIBCXX_BEGIN_NAMESPACE_CXX11 *** 110,116 **** template struct __constructible_from<_Source, void> ! : decltype(__is_path_src(std::declval<_Source>(), 0)) { }; template --- 110,116 ---- template struct __constructible_from<_Source, void> ! : decltype(__is_path_src(std::declval(), 0)) { }; template *************** inline ptrdiff_t *** 1274,1280 **** distance(filesystem::path::iterator __first, filesystem::path::iterator __last) { return __path_iter_distance(__first, __last); } ! template void advance(filesystem::path::iterator& __i, _Distance __n) { __path_iter_advance(__i, static_cast(__n)); } --- 1274,1280 ---- distance(filesystem::path::iterator __first, filesystem::path::iterator __last) { return __path_iter_distance(__first, __last); } ! template void advance(filesystem::path::iterator& __i, _Distance __n) { __path_iter_advance(__i, static_cast(__n)); } diff -Nrcpad gcc-9.4.0/libstdc++-v3/include/bits/random.tcc gcc-9.5.0/libstdc++-v3/include/bits/random.tcc *** gcc-9.4.0/libstdc++-v3/include/bits/random.tcc Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libstdc++-v3/include/bits/random.tcc Fri May 27 07:21:13 2022 *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 1941,1947 **** bool __saved_avail; if (__is >> __mean >> __stddev >> __saved_avail) { ! if (__saved_avail && (__is >> __x._M_saved)) { __x._M_saved_available = __saved_avail; __x.param(typename normal_distribution<_RealType>:: --- 1941,1947 ---- bool __saved_avail; if (__is >> __mean >> __stddev >> __saved_avail) { ! if (!__saved_avail || (__is >> __x._M_saved)) { __x._M_saved_available = __saved_avail; __x.param(typename normal_distribution<_RealType>:: diff -Nrcpad gcc-9.4.0/libstdc++-v3/include/bits/regex.h gcc-9.5.0/libstdc++-v3/include/bits/regex.h *** gcc-9.4.0/libstdc++-v3/include/bits/regex.h Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libstdc++-v3/include/bits/regex.h Fri May 27 07:21:13 2022 *************** _GLIBCXX_BEGIN_NAMESPACE_CXX11 *** 35,41 **** template class basic_regex; ! template class match_results; _GLIBCXX_END_NAMESPACE_CXX11 --- 35,41 ---- template class basic_regex; ! template class match_results; _GLIBCXX_END_NAMESPACE_CXX11 *************** _GLIBCXX_BEGIN_NAMESPACE_CXX11 *** 1707,1713 **** */ _GLIBCXX_NODISCARD bool empty() const noexcept ! { return size() == 0; } ///@} --- 1707,1713 ---- */ _GLIBCXX_NODISCARD bool empty() const noexcept ! { return _Base_type::size() <= 3; } ///@} *************** _GLIBCXX_BEGIN_NAMESPACE_CXX11 *** 1825,1831 **** */ const_iterator end() const noexcept ! { return _Base_type::end() - (empty() ? 0 : 3); } /** * @brief Gets an iterator to one-past-the-end of the collection. --- 1825,1831 ---- */ const_iterator end() const noexcept ! { return _Base_type::end() - (_Base_type::empty() ? 0 : 3); } /** * @brief Gets an iterator to one-past-the-end of the collection. *************** _GLIBCXX_BEGIN_NAMESPACE_CXX11 *** 1970,1976 **** _M_suffix() { return _Base_type::operator[](_Base_type::size() - 1); } ! _Bi_iter _M_begin; }; typedef match_results cmatch; --- 1970,1976 ---- _M_suffix() { return _Base_type::operator[](_Base_type::size() - 1); } ! _Bi_iter _M_begin {}; }; typedef match_results cmatch; diff -Nrcpad gcc-9.4.0/libstdc++-v3/include/bits/shared_ptr.h gcc-9.5.0/libstdc++-v3/include/bits/shared_ptr.h *** gcc-9.4.0/libstdc++-v3/include/bits/shared_ptr.h Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libstdc++-v3/include/bits/shared_ptr.h Fri May 27 07:21:13 2022 *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 698,703 **** --- 698,705 ---- inline shared_ptr<_Tp> allocate_shared(const _Alloc& __a, _Args&&... __args) { + static_assert(!is_array<_Tp>::value, "make_shared not supported"); + return shared_ptr<_Tp>(_Sp_alloc_shared_tag<_Alloc>{__a}, std::forward<_Args>(__args)...); } diff -Nrcpad gcc-9.4.0/libstdc++-v3/include/bits/shared_ptr_base.h gcc-9.5.0/libstdc++-v3/include/bits/shared_ptr_base.h *** gcc-9.4.0/libstdc++-v3/include/bits/shared_ptr_base.h Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libstdc++-v3/include/bits/shared_ptr_base.h Fri May 27 07:21:13 2022 *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 1822,1827 **** --- 1822,1829 ---- inline __shared_ptr<_Tp, _Lp> __allocate_shared(const _Alloc& __a, _Args&&... __args) { + static_assert(!is_array<_Tp>::value, "make_shared not supported"); + return __shared_ptr<_Tp, _Lp>(_Sp_alloc_shared_tag<_Alloc>{__a}, std::forward<_Args>(__args)...); } diff -Nrcpad gcc-9.4.0/libstdc++-v3/include/bits/vector.tcc gcc-9.5.0/libstdc++-v3/include/bits/vector.tcc *** gcc-9.4.0/libstdc++-v3/include/bits/vector.tcc Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libstdc++-v3/include/bits/vector.tcc Fri May 27 07:21:13 2022 *************** _GLIBCXX_BEGIN_NAMESPACE_CONTAINER *** 944,950 **** return false; __try { ! _M_reallocate(size()); return true; } __catch(...) --- 944,956 ---- return false; __try { ! if (size_type __n = size()) ! _M_reallocate(__n); ! else ! { ! this->_M_deallocate(); ! this->_M_impl._M_reset(); ! } return true; } __catch(...) diff -Nrcpad gcc-9.4.0/libstdc++-v3/include/c_global/cmath gcc-9.5.0/libstdc++-v3/include/c_global/cmath *** gcc-9.4.0/libstdc++-v3/include/c_global/cmath Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libstdc++-v3/include/c_global/cmath Fri May 27 07:21:13 2022 *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 1844,1850 **** #endif // _GLIBCXX_USE_C99_MATH_TR1 #endif // C++11 ! #if __cplusplus > 201402L // [c.math.hypot3], three-dimensional hypotenuse #define __cpp_lib_hypot 201603 --- 1844,1850 ---- #endif // _GLIBCXX_USE_C99_MATH_TR1 #endif // C++11 ! #if __cplusplus >= 201703L // [c.math.hypot3], three-dimensional hypotenuse #define __cpp_lib_hypot 201603 *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 1877,1886 **** { return std::__hypot3(__x, __y, __z); } template ! typename __gnu_cxx::__promote_3<_Tp, _Up, _Vp>::__type hypot(_Tp __x, _Up __y, _Vp __z) { ! using __type = typename __gnu_cxx::__promote_3<_Tp, _Up, _Vp>::__type; return std::__hypot3<__type>(__x, __y, __z); } #endif // C++17 --- 1877,1886 ---- { return std::__hypot3(__x, __y, __z); } template ! __gnu_cxx::__promoted_t<_Tp, _Up, _Vp> hypot(_Tp __x, _Up __y, _Vp __z) { ! using __type = __gnu_cxx::__promoted_t<_Tp, _Up, _Vp>; return std::__hypot3<__type>(__x, __y, __z); } #endif // C++17 *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 1918,1923 **** --- 1918,1931 ---- constexpr long double lerp(long double __a, long double __b, long double __t) noexcept { return std::__lerp(__a, __b, __t); } + + template + constexpr __gnu_cxx::__promoted_t<_Tp, _Up, _Vp> + lerp(_Tp __x, _Up __y, _Vp __z) noexcept + { + using __type = __gnu_cxx::__promoted_t<_Tp, _Up, _Vp>; + return std::__lerp<__type>(__x, __y, __z); + } #endif // C++20 _GLIBCXX_END_NAMESPACE_VERSION diff -Nrcpad gcc-9.4.0/libstdc++-v3/include/experimental/bits/fs_fwd.h gcc-9.5.0/libstdc++-v3/include/experimental/bits/fs_fwd.h *** gcc-9.4.0/libstdc++-v3/include/experimental/bits/fs_fwd.h Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libstdc++-v3/include/experimental/bits/fs_fwd.h Fri May 27 07:21:13 2022 *************** _GLIBCXX_END_NAMESPACE_CXX11 *** 263,269 **** bool copy_file(const path& __from, const path& __to, copy_options __option); bool copy_file(const path& __from, const path& __to, copy_options __option, ! error_code&) noexcept; path current_path(); --- 263,269 ---- bool copy_file(const path& __from, const path& __to, copy_options __option); bool copy_file(const path& __from, const path& __to, copy_options __option, ! error_code&); path current_path(); diff -Nrcpad gcc-9.4.0/libstdc++-v3/include/experimental/bits/fs_ops.h gcc-9.5.0/libstdc++-v3/include/experimental/bits/fs_ops.h *** gcc-9.4.0/libstdc++-v3/include/experimental/bits/fs_ops.h Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libstdc++-v3/include/experimental/bits/fs_ops.h Fri May 27 07:21:13 2022 *************** inline namespace v1 *** 74,92 **** { return copy_file(__from, __to, copy_options::none); } inline bool ! copy_file(const path& __from, const path& __to, error_code& __ec) noexcept { return copy_file(__from, __to, copy_options::none, __ec); } bool copy_file(const path& __from, const path& __to, copy_options __option); bool copy_file(const path& __from, const path& __to, copy_options __option, ! error_code& __ec) noexcept; void copy_symlink(const path& __existing_symlink, const path& __new_symlink); void copy_symlink(const path& __existing_symlink, const path& __new_symlink, error_code& __ec) noexcept; bool create_directories(const path& __p); ! bool create_directories(const path& __p, error_code& __ec) noexcept; bool create_directory(const path& __p); bool create_directory(const path& __p, error_code& __ec) noexcept; --- 74,92 ---- { return copy_file(__from, __to, copy_options::none); } inline bool ! copy_file(const path& __from, const path& __to, error_code& __ec) { return copy_file(__from, __to, copy_options::none, __ec); } bool copy_file(const path& __from, const path& __to, copy_options __option); bool copy_file(const path& __from, const path& __to, copy_options __option, ! error_code& __ec); void copy_symlink(const path& __existing_symlink, const path& __new_symlink); void copy_symlink(const path& __existing_symlink, const path& __new_symlink, error_code& __ec) noexcept; bool create_directories(const path& __p); ! bool create_directories(const path& __p, error_code& __ec); bool create_directory(const path& __p); bool create_directory(const path& __p, error_code& __ec) noexcept; *************** inline namespace v1 *** 262,268 **** bool remove(const path& __p, error_code& __ec) noexcept; uintmax_t remove_all(const path& __p); ! uintmax_t remove_all(const path& __p, error_code& __ec) noexcept; void rename(const path& __from, const path& __to); void rename(const path& __from, const path& __to, error_code& __ec) noexcept; --- 262,268 ---- bool remove(const path& __p, error_code& __ec) noexcept; uintmax_t remove_all(const path& __p); ! uintmax_t remove_all(const path& __p, error_code& __ec); void rename(const path& __from, const path& __to); void rename(const path& __from, const path& __to, error_code& __ec) noexcept; diff -Nrcpad gcc-9.4.0/libstdc++-v3/include/experimental/bits/fs_path.h gcc-9.5.0/libstdc++-v3/include/experimental/bits/fs_path.h *** gcc-9.4.0/libstdc++-v3/include/experimental/bits/fs_path.h Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libstdc++-v3/include/experimental/bits/fs_path.h Fri May 27 07:21:13 2022 *************** _GLIBCXX_BEGIN_NAMESPACE_CXX11 *** 125,131 **** template struct __constructible_from<_Source, void> ! : decltype(__is_path_src(std::declval<_Source>(), 0)) { }; template struct __constructible_from<_Source, void> ! : decltype(__is_path_src(std::declval(), 0)) { }; template // For std::pair. #include // For __throw_bad_alloc(). ! #include // For greater_equal, and less_equal. #include // For operator new. #include // _GLIBCXX_DEBUG_ASSERT #include --- 31,37 ---- #include // For std::pair. #include // For __throw_bad_alloc(). ! #include // For greater_equal, and less_equal. #include // For operator new. #include // _GLIBCXX_DEBUG_ASSERT #include diff -Nrcpad gcc-9.4.0/libstdc++-v3/include/ext/rope gcc-9.5.0/libstdc++-v3/include/ext/rope *** gcc-9.4.0/libstdc++-v3/include/ext/rope Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libstdc++-v3/include/ext/rope Fri May 27 07:21:13 2022 *************** protected: *** 2383,2389 **** } // Erase, single character ! void erase(size_t __p) { erase(__p, __p + 1); } --- 2383,2389 ---- } // Erase, single character ! _GLIBCXX_DEPRECATED void erase(size_t __p) { erase(__p, __p + 1); } diff -Nrcpad gcc-9.4.0/libstdc++-v3/include/ext/type_traits.h gcc-9.5.0/libstdc++-v3/include/ext/type_traits.h *** gcc-9.4.0/libstdc++-v3/include/ext/type_traits.h Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libstdc++-v3/include/ext/type_traits.h Fri May 27 07:21:13 2022 *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 163,169 **** { return true; } #endif ! // For complex and cmath template::__value> struct __promote { typedef double __type; }; --- 163,170 ---- { return true; } #endif ! // For arithmetic promotions in and ! template::__value> struct __promote { typedef double __type; }; *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 187,192 **** --- 188,198 ---- struct __promote { typedef float __type; }; + #if __cpp_fold_expressions + template + using __promoted_t = decltype((typename __promote<_Tp>::__type(0) + ...)); + #endif + template::__type, typename _Up2 = typename __promote<_Up>::__type> diff -Nrcpad gcc-9.4.0/libstdc++-v3/include/std/any gcc-9.5.0/libstdc++-v3/include/std/any *** gcc-9.4.0/libstdc++-v3/include/std/any Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libstdc++-v3/include/std/any Fri May 27 07:21:13 2022 *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 105,112 **** _Manager_internal<_Tp>, _Manager_external<_Tp>>; ! template> ! using _Decay = enable_if_t::value, _Decayed>; /// Emplace with an object created from @p __args as the contained object. template , _Manager_external<_Tp>>; ! template> ! using _Decay_if_not_any = enable_if_t, _VTp>; /// Emplace with an object created from @p __args as the contained object. template __il, _Args&&... __args) { reset(); ! _Mgr::_S_create(_M_storage, __il, std::forward<_Args>(__args)...); _M_manager = &_Mgr::_S_manage; } public: // construct/destruct --- 125,148 ---- void __do_emplace(initializer_list<_Up> __il, _Args&&... __args) { reset(); ! _Mgr::_S_create(_M_storage, __il, std::forward<_Args>(__args)...); _M_manager = &_Mgr::_S_manage; } + template + using __any_constructible + = enable_if<__and_, + is_constructible<_Tp, _Args...>>::value, + _Res>; + + template + using __any_constructible_t + = typename __any_constructible::type; + + template + using __emplace_t + = typename __any_constructible<_VTp&, _VTp, _Args...>::type; + public: // construct/destruct *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 165,229 **** } } - template - using __any_constructible = - enable_if<__and_, - is_constructible<_Tp, _Args...>>::value, - _Res>; - - template - using __any_constructible_t = - typename __any_constructible::type; - /// Construct with a copy of @p __value as the contained object. ! template , ! typename _Mgr = _Manager<_Tp>, ! __any_constructible_t<_Tp, _ValueType&&> = true, ! enable_if_t::value, bool> = true> ! any(_ValueType&& __value) ! : _M_manager(&_Mgr::_S_manage) ! { ! _Mgr::_S_create(_M_storage, std::forward<_ValueType>(__value)); ! } ! ! /// Construct with a copy of @p __value as the contained object. ! template , ! typename _Mgr = _Manager<_Tp>, ! enable_if_t<__and_v, ! __not_>, ! __not_<__is_in_place_type<_Tp>>>, ! bool> = false> ! any(_ValueType&& __value) : _M_manager(&_Mgr::_S_manage) { ! _Mgr::_S_create(_M_storage, __value); } /// Construct with an object created from @p __args as the contained object. ! template , ! typename _Mgr = _Manager<_Tp>, ! __any_constructible_t<_Tp, _Args&&...> = false> explicit ! any(in_place_type_t<_ValueType>, _Args&&... __args) : _M_manager(&_Mgr::_S_manage) { ! _Mgr::_S_create(_M_storage, std::forward<_Args>(__args)...); } /// Construct with an object created from @p __il and @p __args as /// the contained object. ! template , ! typename _Mgr = _Manager<_Tp>, ! __any_constructible_t<_Tp, initializer_list<_Up>, _Args&&...> = false> explicit ! any(in_place_type_t<_ValueType>, ! initializer_list<_Up> __il, _Args&&... __args) : _M_manager(&_Mgr::_S_manage) { ! _Mgr::_S_create(_M_storage, __il, std::forward<_Args>(__args)...); } /// Destructor, calls @c reset() --- 179,217 ---- } } /// Construct with a copy of @p __value as the contained object. ! template , ! typename _Mgr = _Manager<_VTp>, ! enable_if_t::value ! && !__is_in_place_type<_VTp>::value, bool> = true> ! any(_Tp&& __value) : _M_manager(&_Mgr::_S_manage) { ! _Mgr::_S_create(_M_storage, std::forward<_Tp>(__value)); } /// Construct with an object created from @p __args as the contained object. ! template , ! typename _Mgr = _Manager<_VTp>, ! __any_constructible_t<_VTp, _Args&&...> = false> explicit ! any(in_place_type_t<_Tp>, _Args&&... __args) : _M_manager(&_Mgr::_S_manage) { ! _Mgr::_S_create(_M_storage, std::forward<_Args>(__args)...); } /// Construct with an object created from @p __il and @p __args as /// the contained object. ! template , typename _Mgr = _Manager<_VTp>, ! __any_constructible_t<_VTp, initializer_list<_Up>&, _Args&&...> = false> explicit ! any(in_place_type_t<_Tp>, initializer_list<_Up> __il, _Args&&... __args) : _M_manager(&_Mgr::_S_manage) { ! _Mgr::_S_create(_M_storage, __il, std::forward<_Args>(__args)...); } /// Destructor, calls @c reset() *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 232,238 **** // assignments /// Copy the state of another object. ! any& operator=(const any& __rhs) { *this = any(__rhs); return *this; --- 220,227 ---- // assignments /// Copy the state of another object. ! any& ! operator=(const any& __rhs) { *this = any(__rhs); return *this; *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 243,249 **** * * @post @c !__rhs.has_value() (not guaranteed for other implementations) */ ! any& operator=(any&& __rhs) noexcept { if (!__rhs.has_value()) reset(); --- 232,239 ---- * * @post @c !__rhs.has_value() (not guaranteed for other implementations) */ ! any& ! operator=(any&& __rhs) noexcept { if (!__rhs.has_value()) reset(); *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 258,297 **** } /// Store a copy of @p __rhs as the contained object. ! template ! enable_if_t>::value, any&> ! operator=(_ValueType&& __rhs) { ! *this = any(std::forward<_ValueType>(__rhs)); return *this; } /// Emplace with an object created from @p __args as the contained object. ! template ! typename __any_constructible<_Decay<_ValueType>&, ! _Decay<_ValueType>, _Args&&...>::type emplace(_Args&&... __args) { ! __do_emplace<_Decay<_ValueType>>(std::forward<_Args>(__args)...); any::_Arg __arg; this->_M_manager(any::_Op_access, this, &__arg); ! return *static_cast<_Decay<_ValueType>*>(__arg._M_obj); } /// Emplace with an object created from @p __il and @p __args as /// the contained object. ! template ! typename __any_constructible<_Decay<_ValueType>&, ! _Decay<_ValueType>, ! initializer_list<_Up>, ! _Args&&...>::type emplace(initializer_list<_Up> __il, _Args&&... __args) { ! __do_emplace<_Decay<_ValueType>, _Up>(__il, ! std::forward<_Args>(__args)...); any::_Arg __arg; this->_M_manager(any::_Op_access, this, &__arg); ! return *static_cast<_Decay<_ValueType>*>(__arg._M_obj); } // modifiers --- 248,284 ---- } /// Store a copy of @p __rhs as the contained object. ! template ! enable_if_t>::value, any&> ! operator=(_Tp&& __rhs) { ! *this = any(std::forward<_Tp>(__rhs)); return *this; } /// Emplace with an object created from @p __args as the contained object. ! template ! __emplace_t, _Args...> emplace(_Args&&... __args) { ! using _VTp = decay_t<_Tp>; ! __do_emplace<_VTp>(std::forward<_Args>(__args)...); any::_Arg __arg; this->_M_manager(any::_Op_access, this, &__arg); ! return *static_cast<_VTp*>(__arg._M_obj); } /// Emplace with an object created from @p __il and @p __args as /// the contained object. ! template ! __emplace_t, initializer_list<_Up>&, _Args&&...> emplace(initializer_list<_Up> __il, _Args&&... __args) { ! using _VTp = decay_t<_Tp>; ! __do_emplace<_VTp, _Up>(__il, std::forward<_Args>(__args)...); any::_Arg __arg; this->_M_manager(any::_Op_access, this, &__arg); ! return *static_cast<_VTp*>(__arg._M_obj); } // modifiers diff -Nrcpad gcc-9.4.0/libstdc++-v3/include/std/numeric gcc-9.5.0/libstdc++-v3/include/std/numeric *** gcc-9.4.0/libstdc++-v3/include/std/numeric Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libstdc++-v3/include/std/numeric Fri May 27 07:21:13 2022 *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 261,269 **** reduce(_InputIterator __first, _InputIterator __last, _Tp __init, _BinaryOperation __binary_op) { ! using value_type = typename iterator_traits<_InputIterator>::value_type; static_assert(is_invocable_r_v<_Tp, _BinaryOperation&, _Tp&, _Tp&>); ! static_assert(is_convertible_v); if constexpr (__is_random_access_iter<_InputIterator>::value) { while ((__last - __first) >= 4) --- 261,271 ---- reduce(_InputIterator __first, _InputIterator __last, _Tp __init, _BinaryOperation __binary_op) { ! using __ref = typename iterator_traits<_InputIterator>::reference; ! static_assert(is_invocable_r_v<_Tp, _BinaryOperation&, _Tp&, __ref>); ! static_assert(is_invocable_r_v<_Tp, _BinaryOperation&, __ref, _Tp&>); static_assert(is_invocable_r_v<_Tp, _BinaryOperation&, _Tp&, _Tp&>); ! static_assert(is_invocable_r_v<_Tp, _BinaryOperation&, __ref, __ref>); if constexpr (__is_random_access_iter<_InputIterator>::value) { while ((__last - __first) >= 4) diff -Nrcpad gcc-9.4.0/libstdc++-v3/include/std/optional gcc-9.5.0/libstdc++-v3/include/std/optional *** gcc-9.4.0/libstdc++-v3/include/std/optional Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libstdc++-v3/include/std/optional Fri May 27 07:21:13 2022 *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 796,802 **** template enable_if_t<__and_v<__not_>, is_constructible<_Tp, const _Up&>, ! is_assignable<_Tp&, _Up>, __not_<__converts_from_optional<_Tp, _Up>>, __not_<__assigns_from_optional<_Tp, _Up>>>, optional&> --- 796,802 ---- template enable_if_t<__and_v<__not_>, is_constructible<_Tp, const _Up&>, ! is_assignable<_Tp&, const _Up&>, __not_<__converts_from_optional<_Tp, _Up>>, __not_<__assigns_from_optional<_Tp, _Up>>>, optional&> diff -Nrcpad gcc-9.4.0/libstdc++-v3/include/std/valarray gcc-9.5.0/libstdc++-v3/include/std/valarray *** gcc-9.4.0/libstdc++-v3/include/std/valarray Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libstdc++-v3/include/std/valarray Fri May 27 07:21:13 2022 *************** _DEFINE_BINARY_OPERATOR(>=, __greater_eq *** 1211,1218 **** */ template inline _Tp* ! begin(valarray<_Tp>& __va) ! { return std::__addressof(__va[0]); } /** * @brief Return an iterator pointing to the first element of --- 1211,1218 ---- */ template inline _Tp* ! begin(valarray<_Tp>& __va) noexcept ! { return __va.size() ? std::__addressof(__va[0]) : nullptr; } /** * @brief Return an iterator pointing to the first element of *************** _DEFINE_BINARY_OPERATOR(>=, __greater_eq *** 1221,1228 **** */ template inline const _Tp* ! begin(const valarray<_Tp>& __va) ! { return std::__addressof(__va[0]); } /** * @brief Return an iterator pointing to one past the last element of --- 1221,1228 ---- */ template inline const _Tp* ! begin(const valarray<_Tp>& __va) noexcept ! { return __va.size() ? std::__addressof(__va[0]) : nullptr; } /** * @brief Return an iterator pointing to one past the last element of *************** _DEFINE_BINARY_OPERATOR(>=, __greater_eq *** 1231,1238 **** */ template inline _Tp* ! end(valarray<_Tp>& __va) ! { return std::__addressof(__va[0]) + __va.size(); } /** * @brief Return an iterator pointing to one past the last element of --- 1231,1243 ---- */ template inline _Tp* ! end(valarray<_Tp>& __va) noexcept ! { ! if (auto __n = __va.size()) ! return std::__addressof(__va[0]) + __n; ! else ! return nullptr; ! } /** * @brief Return an iterator pointing to one past the last element of *************** _DEFINE_BINARY_OPERATOR(>=, __greater_eq *** 1241,1248 **** */ template inline const _Tp* ! end(const valarray<_Tp>& __va) ! { return std::__addressof(__va[0]) + __va.size(); } #endif // C++11 /// @} group numeric_arrays --- 1246,1258 ---- */ template inline const _Tp* ! end(const valarray<_Tp>& __va) noexcept ! { ! if (auto __n = __va.size()) ! return std::__addressof(__va[0]) + __n; ! else ! return nullptr; ! } #endif // C++11 /// @} group numeric_arrays diff -Nrcpad gcc-9.4.0/libstdc++-v3/include/std/variant gcc-9.5.0/libstdc++-v3/include/std/variant *** gcc-9.4.0/libstdc++-v3/include/std/variant Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libstdc++-v3/include/std/variant Fri May 27 07:21:13 2022 *************** namespace __variant *** 1039,1044 **** --- 1039,1052 ---- std::index_sequence<__indices...>> : _Base_dedup<__indices, __poison_hash>>... { }; + template + using __get_t = decltype(std::get<_Np>(std::declval<_Variant>())); + + // Return type of std::visit. + template + using __visit_result_t + = invoke_result_t<_Visitor, __get_t<0, _Variants>...>; + } // namespace __variant } // namespace __detail *************** namespace __variant *** 1191,1197 **** #undef _VARIANT_RELATION_FUNCTION_TEMPLATE template ! constexpr decltype(auto) visit(_Visitor&&, _Variants&&...); template inline enable_if_t<(is_move_constructible_v<_Types> && ...) --- 1199,1206 ---- #undef _VARIANT_RELATION_FUNCTION_TEMPLATE template ! constexpr __detail::__variant::__visit_result_t<_Visitor, _Variants...> ! visit(_Visitor&&, _Variants&&...); template inline enable_if_t<(is_move_constructible_v<_Types> && ...) *************** namespace __variant *** 1638,1644 **** __do_visit(_Visitor&& __visitor, _Variants&&... __variants) { using _Deduced_type = std::invoke_result<_Visitor, ! decltype(std::get<0>(std::declval<_Variants>()))...>; using _Result_type = typename std::conditional_t<__use_index, __detail::__variant::__variant_idx_cookie, --- 1647,1653 ---- __do_visit(_Visitor&& __visitor, _Variants&&... __variants) { using _Deduced_type = std::invoke_result<_Visitor, ! __detail::__variant::__get_t<0, _Variants>...>; using _Result_type = typename std::conditional_t<__use_index, __detail::__variant::__variant_idx_cookie, *************** namespace __variant *** 1654,1667 **** } template ! constexpr decltype(auto) visit(_Visitor&& __visitor, _Variants&&... __variants) { if ((__variants.valueless_by_exception() || ...)) __throw_bad_variant_access("Unexpected index"); ! return __do_visit(std::forward<_Visitor>(__visitor), ! std::forward<_Variants>(__variants)...); } #if __cplusplus > 201703L --- 1663,1676 ---- } template ! constexpr __detail::__variant::__visit_result_t<_Visitor, _Variants...> visit(_Visitor&& __visitor, _Variants&&... __variants) { if ((__variants.valueless_by_exception() || ...)) __throw_bad_variant_access("Unexpected index"); ! return std::__do_visit(std::forward<_Visitor>(__visitor), ! std::forward<_Variants>(__variants)...); } #if __cplusplus > 201703L diff -Nrcpad gcc-9.4.0/libstdc++-v3/libsupc++/Makefile.am gcc-9.5.0/libstdc++-v3/libsupc++/Makefile.am *** gcc-9.4.0/libstdc++-v3/libsupc++/Makefile.am Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libstdc++-v3/libsupc++/Makefile.am Fri May 27 07:21:13 2022 *************** sources = \ *** 48,53 **** --- 48,54 ---- array_type_info.cc \ atexit_arm.cc \ atexit_thread.cc \ + atomicity.cc \ bad_alloc.cc \ bad_array_length.cc \ bad_array_new.cc \ *************** cp-demangle.lo: cp-demangle.c *** 127,132 **** --- 128,136 ---- cp-demangle.o: cp-demangle.c $(C_COMPILE) -DIN_GLIBCPP_V3 -Wno-error -c $< + atomicity_file = ${glibcxx_srcdir}/$(ATOMICITY_SRCDIR)/atomicity.h + atomicity.cc: ${atomicity_file} + $(LN_S) ${atomicity_file} ./atomicity.cc || true # Use special rules for the C++17 sources so that the proper flags are passed. new_opa.lo: new_opa.cc diff -Nrcpad gcc-9.4.0/libstdc++-v3/libsupc++/Makefile.in gcc-9.5.0/libstdc++-v3/libsupc++/Makefile.in *** gcc-9.4.0/libstdc++-v3/libsupc++/Makefile.in Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libstdc++-v3/libsupc++/Makefile.in Fri May 27 07:21:13 2022 *************** am__installdirs = "$(DESTDIR)$(toolexecl *** 152,164 **** LTLIBRARIES = $(noinst_LTLIBRARIES) $(toolexeclib_LTLIBRARIES) libsupc___la_LIBADD = am__objects_1 = array_type_info.lo atexit_arm.lo atexit_thread.lo \ ! bad_alloc.lo bad_array_length.lo bad_array_new.lo bad_cast.lo \ ! bad_typeid.lo class_type_info.lo del_op.lo del_ops.lo \ ! del_opnt.lo del_opv.lo del_opvs.lo del_opvnt.lo dyncast.lo \ ! eh_alloc.lo eh_arm.lo eh_aux_runtime.lo eh_call.lo eh_catch.lo \ ! eh_exception.lo eh_globals.lo eh_personality.lo eh_ptr.lo \ ! eh_term_handler.lo eh_terminate.lo eh_tm.lo eh_throw.lo \ ! eh_type.lo eh_unex_handler.lo enum_type_info.lo \ function_type_info.lo fundamental_type_info.lo guard.lo \ guard_error.lo hash_bytes.lo nested_exception.lo \ new_handler.lo new_op.lo new_opnt.lo new_opv.lo new_opvnt.lo \ --- 152,164 ---- LTLIBRARIES = $(noinst_LTLIBRARIES) $(toolexeclib_LTLIBRARIES) libsupc___la_LIBADD = am__objects_1 = array_type_info.lo atexit_arm.lo atexit_thread.lo \ ! atomicity.lo bad_alloc.lo bad_array_length.lo bad_array_new.lo \ ! bad_cast.lo bad_typeid.lo class_type_info.lo del_op.lo \ ! del_ops.lo del_opnt.lo del_opv.lo del_opvs.lo del_opvnt.lo \ ! dyncast.lo eh_alloc.lo eh_arm.lo eh_aux_runtime.lo eh_call.lo \ ! eh_catch.lo eh_exception.lo eh_globals.lo eh_personality.lo \ ! eh_ptr.lo eh_term_handler.lo eh_terminate.lo eh_tm.lo \ ! eh_throw.lo eh_type.lo eh_unex_handler.lo enum_type_info.lo \ function_type_info.lo fundamental_type_info.lo guard.lo \ guard_error.lo hash_bytes.lo nested_exception.lo \ new_handler.lo new_op.lo new_opnt.lo new_opv.lo new_opvnt.lo \ *************** sources = \ *** 497,502 **** --- 497,503 ---- array_type_info.cc \ atexit_arm.cc \ atexit_thread.cc \ + atomicity.cc \ bad_alloc.cc \ bad_array_length.cc \ bad_array_new.cc \ *************** sources = \ *** 563,568 **** --- 564,570 ---- libsupc___la_SOURCES = $(sources) $(c_sources) $(vtv_sources) libsupc__convenience_la_SOURCES = $(sources) $(c_sources) $(vtv_sources) + atomicity_file = ${glibcxx_srcdir}/$(ATOMICITY_SRCDIR)/atomicity.h # AM_CXXFLAGS needs to be in each subdirectory so that it can be # modified in a per-library or per-sub-library way. Need to manually *************** cp-demangle.lo: cp-demangle.c *** 954,959 **** --- 956,963 ---- $(LTCOMPILE) -DIN_GLIBCPP_V3 -Wno-error -c $< cp-demangle.o: cp-demangle.c $(C_COMPILE) -DIN_GLIBCPP_V3 -Wno-error -c $< + atomicity.cc: ${atomicity_file} + $(LN_S) ${atomicity_file} ./atomicity.cc || true # Use special rules for the C++17 sources so that the proper flags are passed. new_opa.lo: new_opa.cc diff -Nrcpad gcc-9.4.0/libstdc++-v3/libsupc++/exception_ptr.h gcc-9.5.0/libstdc++-v3/libsupc++/exception_ptr.h *** gcc-9.4.0/libstdc++-v3/libsupc++/exception_ptr.h Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libstdc++-v3/libsupc++/exception_ptr.h Fri May 27 07:21:13 2022 *************** *** 39,44 **** --- 39,48 ---- #include #include + #if __cplusplus >= 201103L + # include + #endif + extern "C++" { namespace std *************** namespace std *** 178,191 **** exception_ptr make_exception_ptr(_Ex __ex) _GLIBCXX_USE_NOEXCEPT { ! #if __cpp_exceptions && __cpp_rtti && !_GLIBCXX_HAVE_CDTOR_CALLABI void* __e = __cxxabiv1::__cxa_allocate_exception(sizeof(_Ex)); (void) __cxxabiv1::__cxa_init_primary_exception( ! __e, const_cast(&typeid(__ex)), ! __exception_ptr::__dest_thunk<_Ex>); try { ! ::new (__e) _Ex(__ex); return exception_ptr(__e); } catch(...) --- 182,197 ---- exception_ptr make_exception_ptr(_Ex __ex) _GLIBCXX_USE_NOEXCEPT { ! #if __cpp_exceptions && __cpp_rtti && !_GLIBCXX_HAVE_CDTOR_CALLABI \ ! && __cplusplus >= 201103L ! using _Ex2 = typename remove_reference<_Ex>::type; void* __e = __cxxabiv1::__cxa_allocate_exception(sizeof(_Ex)); (void) __cxxabiv1::__cxa_init_primary_exception( ! __e, const_cast(&typeid(_Ex)), ! __exception_ptr::__dest_thunk<_Ex2>); try { ! ::new (__e) _Ex2(std::forward<_Ex>(__ex)); return exception_ptr(__e); } catch(...) diff -Nrcpad gcc-9.4.0/libstdc++-v3/python/Makefile.am gcc-9.5.0/libstdc++-v3/python/Makefile.am *** gcc-9.4.0/libstdc++-v3/python/Makefile.am Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libstdc++-v3/python/Makefile.am Fri May 27 07:21:13 2022 *************** else *** 29,34 **** --- 29,40 ---- pythondir = $(datadir)/gcc-$(gcc_version)/python endif + if GLIBCXX_BUILD_DEBUG + debug_gdb_py = YES + else + debug_gdb_py = + endif + all-local: gdb.py nobase_python_DATA = \ *************** install-data-local: gdb.py *** 61,64 **** done; \ cd $$here; \ echo " $(INSTALL_DATA) gdb.py $(DESTDIR)$(toolexeclibdir)/$$libname-gdb.py"; \ ! $(INSTALL_DATA) gdb.py $(DESTDIR)$(toolexeclibdir)/$$libname-gdb.py --- 67,74 ---- done; \ cd $$here; \ echo " $(INSTALL_DATA) gdb.py $(DESTDIR)$(toolexeclibdir)/$$libname-gdb.py"; \ ! $(INSTALL_DATA) gdb.py $(DESTDIR)$(toolexeclibdir)/$$libname-gdb.py ; \ ! if [ -n "$(debug_gdb_py)" ]; then \ ! sed "/^libdir = /s;'$$;/debug';" gdb.py > debug-gdb.py ; \ ! $(INSTALL_DATA) debug-gdb.py $(DESTDIR)$(toolexeclibdir)/debug/$$libname-gdb.py ; \ ! fi diff -Nrcpad gcc-9.4.0/libstdc++-v3/python/Makefile.in gcc-9.5.0/libstdc++-v3/python/Makefile.in *** gcc-9.4.0/libstdc++-v3/python/Makefile.in Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libstdc++-v3/python/Makefile.in Fri May 27 07:21:13 2022 *************** WARN_CXXFLAGS = \ *** 397,402 **** --- 397,404 ---- AM_CPPFLAGS = $(GLIBCXX_INCLUDES) $(CPPFLAGS) @ENABLE_PYTHONDIR_FALSE@pythondir = $(datadir)/gcc-$(gcc_version)/python @ENABLE_PYTHONDIR_TRUE@pythondir = $(prefix)/$(python_mod_dir) + @GLIBCXX_BUILD_DEBUG_FALSE@debug_gdb_py = + @GLIBCXX_BUILD_DEBUG_TRUE@debug_gdb_py = YES nobase_python_DATA = \ libstdcxx/v6/printers.py \ libstdcxx/v6/xmethods.py \ *************** install-data-local: gdb.py *** 614,620 **** done; \ cd $$here; \ echo " $(INSTALL_DATA) gdb.py $(DESTDIR)$(toolexeclibdir)/$$libname-gdb.py"; \ ! $(INSTALL_DATA) gdb.py $(DESTDIR)$(toolexeclibdir)/$$libname-gdb.py # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. --- 616,626 ---- done; \ cd $$here; \ echo " $(INSTALL_DATA) gdb.py $(DESTDIR)$(toolexeclibdir)/$$libname-gdb.py"; \ ! $(INSTALL_DATA) gdb.py $(DESTDIR)$(toolexeclibdir)/$$libname-gdb.py ; \ ! if [ -n "$(debug_gdb_py)" ]; then \ ! sed "/^libdir = /s;'$$;/debug';" gdb.py > debug-gdb.py ; \ ! $(INSTALL_DATA) debug-gdb.py $(DESTDIR)$(toolexeclibdir)/debug/$$libname-gdb.py ; \ ! fi # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff -Nrcpad gcc-9.4.0/libstdc++-v3/python/libstdcxx/v6/printers.py gcc-9.5.0/libstdc++-v3/python/libstdcxx/v6/printers.py *** gcc-9.4.0/libstdc++-v3/python/libstdcxx/v6/printers.py Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libstdc++-v3/python/libstdcxx/v6/printers.py Fri May 27 07:21:13 2022 *************** *** 18,24 **** import gdb import itertools import re ! import sys ### Python 2 + Python 3 compatibility code --- 18,24 ---- import gdb import itertools import re ! import sys, os, errno ### Python 2 + Python 3 compatibility code *************** except ImportError: *** 85,92 **** def find_type(orig, name): typ = orig.strip_typedefs() while True: ! # Strip cv-qualifiers. PR 67440. ! search = '%s::%s' % (typ.unqualified(), name) try: return gdb.lookup_type(search) except RuntimeError: --- 85,92 ---- def find_type(orig, name): typ = orig.strip_typedefs() while True: ! # Use Type.tag to ignore cv-qualifiers. PR 67440. ! search = '%s::%s' % (typ.tag, name) try: return gdb.lookup_type(search) except RuntimeError: *************** class StdPairPrinter: *** 1449,1454 **** --- 1449,1493 ---- return None + class StdErrorCodePrinter: + "Print a std::error_code or std::error_condition" + + _errno_categories = None # List of categories that use errno values + + def __init__ (self, typename, val): + self.val = val + self.typename = typename + # Do this only once ... + if StdErrorCodePrinter._errno_categories is None: + StdErrorCodePrinter._errno_categories = ['generic'] + try: + import posix + StdErrorCodePrinter._errno_categories.append('system') + except ImportError: + pass + + @staticmethod + def _category_name(cat): + "Call the virtual function that overrides std::error_category::name()" + gdb.set_convenience_variable('__cat', cat) + return gdb.parse_and_eval('$__cat->name()').string() + + def to_string (self): + value = self.val['_M_value'] + category = self._category_name(self.val['_M_cat']) + strval = str(value) + if value == 0: + default_cats = {'error_code':'system', 'error_condition':'generic'} + unqualified = self.typename.split('::')[-1] + if category == default_cats[unqualified]: + return self.typename + ' = { }' # default-constructed value + if value > 0 and category in StdErrorCodePrinter._errno_categories: + try: + strval = errno.errorcode[int(value)] + except: + pass + return '%s = {"%s": %s}' % (self.typename, category, strval) + # A "regular expression" printer which conforms to the # "SubPrettyPrinter" protocol from gdb.printing. class RxPrinter(object): *************** def build_libstdcxx_dictionary (): *** 1846,1851 **** --- 1885,1892 ---- libstdcxx_printer.add_version('std::__cxx11::', 'basic_string', StdStringPrinter) libstdcxx_printer.add_container('std::', 'bitset', StdBitsetPrinter) libstdcxx_printer.add_container('std::', 'deque', StdDequePrinter) + libstdcxx_printer.add_version('std::', 'error_code', StdErrorCodePrinter) + libstdcxx_printer.add_version('std::', 'error_condition', StdErrorCodePrinter) libstdcxx_printer.add_container('std::', 'list', StdListPrinter) libstdcxx_printer.add_container('std::__cxx11::', 'list', StdListPrinter) libstdcxx_printer.add_container('std::', 'map', StdMapPrinter) diff -Nrcpad gcc-9.4.0/libstdc++-v3/src/c++11/system_error.cc gcc-9.5.0/libstdc++-v3/src/c++11/system_error.cc *** gcc-9.4.0/libstdc++-v3/src/c++11/system_error.cc Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libstdc++-v3/src/c++11/system_error.cc Fri May 27 07:21:13 2022 *************** namespace *** 70,75 **** --- 70,77 ---- virtual std::error_condition default_error_condition(int ev) const noexcept { + // Use generic category for all known POSIX errno values (including zero) + // and system category otherwise. switch (ev) { // List of errno macros from [cerrno.syn]. *************** namespace *** 309,314 **** --- 311,317 ---- #ifdef EXDEV case EXDEV: #endif + case 0: return std::error_condition(ev, std::generic_category()); /* Additional system-dependent mappings from non-standard error codes diff -Nrcpad gcc-9.4.0/libstdc++-v3/src/c++17/fs_ops.cc gcc-9.5.0/libstdc++-v3/src/c++17/fs_ops.cc *** gcc-9.4.0/libstdc++-v3/src/c++17/fs_ops.cc Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libstdc++-v3/src/c++17/fs_ops.cc Fri May 27 07:21:13 2022 *************** fs::create_directories(const path& p, er *** 496,502 **** return false; } ! file_status st = symlink_status(p, ec); if (is_directory(st)) return false; else if (ec && !status_known(st)) --- 496,502 ---- return false; } ! file_status st = status(p, ec); if (is_directory(st)) return false; else if (ec && !status_known(st)) *************** namespace *** 577,584 **** { bool created = false; #ifdef _GLIBCXX_HAVE_SYS_STAT_H ! posix::mode_t mode ! = static_cast>(perm); if (posix::mkdir(p.c_str(), mode)) { const int err = errno; --- 577,583 ---- { bool created = false; #ifdef _GLIBCXX_HAVE_SYS_STAT_H ! posix::mode_t mode = static_cast>(perm); if (posix::mkdir(p.c_str(), mode)) { const int err = errno; *************** fs::status(const fs::path& p, error_code *** 1404,1410 **** auto str = p.c_str(); #if _GLIBCXX_FILESYSTEM_IS_WINDOWS - #if ! defined __MINGW64_VERSION_MAJOR || __MINGW64_VERSION_MAJOR < 6 // stat() fails if there's a trailing slash (PR 88881) path p2; if (p.has_relative_path() && !p.has_filename()) --- 1403,1408 ---- *************** fs::status(const fs::path& p, error_code *** 1422,1428 **** str = p2.c_str(); } #endif - #endif stat_type st; if (posix::stat(str, &st)) --- 1420,1425 ---- *************** fs::symlink_status(const fs::path& p, st *** 1451,1457 **** auto str = p.c_str(); #if _GLIBCXX_FILESYSTEM_IS_WINDOWS - #if ! defined __MINGW64_VERSION_MAJOR || __MINGW64_VERSION_MAJOR < 6 // stat() fails if there's a trailing slash (PR 88881) path p2; if (p.has_relative_path() && !p.has_filename()) --- 1448,1453 ---- *************** fs::symlink_status(const fs::path& p, st *** 1469,1475 **** str = p2.c_str(); } #endif - #endif stat_type st; if (posix::lstat(str, &st)) --- 1465,1470 ---- diff -Nrcpad gcc-9.4.0/libstdc++-v3/src/c++98/Makefile.am gcc-9.5.0/libstdc++-v3/src/c++98/Makefile.am *** gcc-9.4.0/libstdc++-v3/src/c++98/Makefile.am Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libstdc++-v3/src/c++98/Makefile.am Fri May 27 07:21:13 2022 *************** endif *** 39,45 **** # particular host. host_sources = \ $(cow_string_host_sources) \ - atomicity.cc \ codecvt_members.cc \ collate_members.cc \ messages_members.cc \ --- 39,44 ---- *************** numeric_members.cc: ${glibcxx_srcdir}/$( *** 65,74 **** time_members.cc: ${glibcxx_srcdir}/$(CTIME_CC) $(LN_S) ${glibcxx_srcdir}/$(CTIME_CC) . || true - atomicity_file = ${glibcxx_srcdir}/$(ATOMICITY_SRCDIR)/atomicity.h - atomicity.cc: ${atomicity_file} - $(LN_S) ${atomicity_file} ./atomicity.cc || true - if ENABLE_DUAL_ABI collate_members_cow.cc: ${glibcxx_srcdir}/$(CCOLLATE_CC) $(LN_S) ${glibcxx_srcdir}/$(CCOLLATE_CC) ./$@ || true --- 64,69 ---- diff -Nrcpad gcc-9.4.0/libstdc++-v3/src/c++98/Makefile.in gcc-9.5.0/libstdc++-v3/src/c++98/Makefile.in *** gcc-9.4.0/libstdc++-v3/src/c++98/Makefile.in Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libstdc++-v3/src/c++98/Makefile.in Fri May 27 07:21:13 2022 *************** libc__98convenience_la_LIBADD = *** 126,134 **** @ENABLE_DUAL_ABI_TRUE@ messages_members_cow.lo \ @ENABLE_DUAL_ABI_TRUE@ monetary_members_cow.lo \ @ENABLE_DUAL_ABI_TRUE@ numeric_members_cow.lo ! am__objects_3 = $(am__objects_2) atomicity.lo codecvt_members.lo \ ! collate_members.lo messages_members.lo monetary_members.lo \ ! numeric_members.lo time_members.lo @ENABLE_EXTERN_TEMPLATE_TRUE@am__objects_4 = allocator-inst.lo \ @ENABLE_EXTERN_TEMPLATE_TRUE@ concept-inst.lo ext-inst.lo \ @ENABLE_EXTERN_TEMPLATE_TRUE@ misc-inst.lo --- 126,134 ---- @ENABLE_DUAL_ABI_TRUE@ messages_members_cow.lo \ @ENABLE_DUAL_ABI_TRUE@ monetary_members_cow.lo \ @ENABLE_DUAL_ABI_TRUE@ numeric_members_cow.lo ! am__objects_3 = $(am__objects_2) codecvt_members.lo collate_members.lo \ ! messages_members.lo monetary_members.lo numeric_members.lo \ ! time_members.lo @ENABLE_EXTERN_TEMPLATE_TRUE@am__objects_4 = allocator-inst.lo \ @ENABLE_EXTERN_TEMPLATE_TRUE@ concept-inst.lo ext-inst.lo \ @ENABLE_EXTERN_TEMPLATE_TRUE@ misc-inst.lo *************** headers = *** 442,448 **** # particular host. host_sources = \ $(cow_string_host_sources) \ - atomicity.cc \ codecvt_members.cc \ collate_members.cc \ messages_members.cc \ --- 442,447 ---- *************** host_sources = \ *** 450,456 **** numeric_members.cc \ time_members.cc - atomicity_file = ${glibcxx_srcdir}/$(ATOMICITY_SRCDIR)/atomicity.h # Source files linked in via configuration/make substitution for a # particular host, but with ad hoc naming rules. --- 449,454 ---- *************** numeric_members.cc: ${glibcxx_srcdir}/$( *** 841,848 **** time_members.cc: ${glibcxx_srcdir}/$(CTIME_CC) $(LN_S) ${glibcxx_srcdir}/$(CTIME_CC) . || true - atomicity.cc: ${atomicity_file} - $(LN_S) ${atomicity_file} ./atomicity.cc || true @ENABLE_DUAL_ABI_TRUE@collate_members_cow.cc: ${glibcxx_srcdir}/$(CCOLLATE_CC) @ENABLE_DUAL_ABI_TRUE@ $(LN_S) ${glibcxx_srcdir}/$(CCOLLATE_CC) ./$@ || true --- 839,844 ---- diff -Nrcpad gcc-9.4.0/libstdc++-v3/src/filesystem/ops.cc gcc-9.5.0/libstdc++-v3/src/filesystem/ops.cc *** gcc-9.4.0/libstdc++-v3/src/filesystem/ops.cc Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libstdc++-v3/src/filesystem/ops.cc Fri May 27 07:21:13 2022 *************** fs::copy_file(const path& from, const pa *** 366,372 **** bool fs::copy_file(const path& from, const path& to, copy_options options, ! error_code& ec) noexcept { #ifdef _GLIBCXX_HAVE_SYS_STAT_H return do_copy_file(from.c_str(), to.c_str(), copy_file_options(options), --- 366,372 ---- bool fs::copy_file(const path& from, const path& to, copy_options options, ! error_code& ec) { #ifdef _GLIBCXX_HAVE_SYS_STAT_H return do_copy_file(from.c_str(), to.c_str(), copy_file_options(options), *************** fs::create_directories(const path& p) *** 418,424 **** } bool ! fs::create_directories(const path& p, error_code& ec) noexcept { if (p.empty()) { --- 418,424 ---- } bool ! fs::create_directories(const path& p, error_code& ec) { if (p.empty()) { *************** fs::create_directories(const path& p, er *** 426,432 **** return false; } ! file_status st = symlink_status(p, ec); if (is_directory(st)) return false; else if (ec && !status_known(st)) --- 426,432 ---- return false; } ! file_status st = status(p, ec); if (is_directory(st)) return false; else if (ec && !status_known(st)) *************** fs::remove_all(const path& p) *** 1092,1098 **** } std::uintmax_t ! fs::remove_all(const path& p, error_code& ec) noexcept { const auto s = symlink_status(p, ec); if (!status_known(s)) --- 1092,1098 ---- } std::uintmax_t ! fs::remove_all(const path& p, error_code& ec) { const auto s = symlink_status(p, ec); if (!status_known(s)) diff -Nrcpad gcc-9.4.0/libstdc++-v3/testsuite/17_intro/headers/c++1998/103650.cc gcc-9.5.0/libstdc++-v3/testsuite/17_intro/headers/c++1998/103650.cc *** gcc-9.4.0/libstdc++-v3/testsuite/17_intro/headers/c++1998/103650.cc Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/libstdc++-v3/testsuite/17_intro/headers/c++1998/103650.cc Fri May 27 07:21:13 2022 *************** *** 0 **** --- 1,13 ---- + // { dg-do preprocess } + + // PR libstdc++/103650 libstdc++ headers defined LT_OBJDIR and STDC_HEADERS + + #define LT_OBJDIR 99 + #define STDC_HEADERS 99 + #include + #if LT_OBJDIR != 99 + # error LT_OBJDIR redefined + #endif + #if STDC_HEADERS != 99 + # error STDC_HEADERS redefined + #endif diff -Nrcpad gcc-9.4.0/libstdc++-v3/testsuite/18_support/exception_ptr/103630.cc gcc-9.5.0/libstdc++-v3/testsuite/18_support/exception_ptr/103630.cc *** gcc-9.4.0/libstdc++-v3/testsuite/18_support/exception_ptr/103630.cc Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/libstdc++-v3/testsuite/18_support/exception_ptr/103630.cc Fri May 27 07:21:13 2022 *************** *** 0 **** --- 1,39 ---- + // { dg-do run } + + #include + #if __cplusplus < 201103L + // std::make_exception_ptr is defined for C++98 as a GNU extension + # include + #endif + + #include + + struct B + { + virtual bool derived() const { return false; } + }; + + struct D : B + { + virtual bool derived() const { return true; } + }; + + int main() + { + D d; + std::exception_ptr p = std::make_exception_ptr(d); // PR libstdc++/103630 + #if __cpp_exceptions + try + { + std::rethrow_exception(p); + } + catch (const D& d) + { + VERIFY(d.derived()); // PR libstdc++/103630 + } + catch (const B& b) + { + VERIFY(!b.derived()); + } + #endif + } diff -Nrcpad gcc-9.4.0/libstdc++-v3/testsuite/18_support/exception_ptr/96657.cc gcc-9.5.0/libstdc++-v3/testsuite/18_support/exception_ptr/96657.cc *** gcc-9.4.0/libstdc++-v3/testsuite/18_support/exception_ptr/96657.cc Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/libstdc++-v3/testsuite/18_support/exception_ptr/96657.cc Fri May 27 07:21:13 2022 *************** *** 0 **** --- 1,17 ---- + // { dg-options "-nodefaultlibs -lsupc++ -lgcc_s -lc" { target sparc*-*-linux-gnu } } + // { dg-do link { target c++11 } } + + #include + + void + test01() + { + // PR libstdc++/96657 undefined references in libsupc++ + std::make_exception_ptr(1); + } + + int + main() + { + test01(); + } diff -Nrcpad gcc-9.4.0/libstdc++-v3/testsuite/19_diagnostics/error_category/102425.cc gcc-9.5.0/libstdc++-v3/testsuite/19_diagnostics/error_category/102425.cc *** gcc-9.4.0/libstdc++-v3/testsuite/19_diagnostics/error_category/102425.cc Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/libstdc++-v3/testsuite/19_diagnostics/error_category/102425.cc Fri May 27 07:21:13 2022 *************** *** 0 **** --- 1,18 ---- + // { dg-do run { target c++11 } } + #include + #include + + void test01() + { + // PR libstdc++/102425 + VERIFY( std::error_code() == std::error_condition() ); + + auto zero = std::system_category().default_error_condition(0); + // This is the condition that the equality above relies on: + VERIFY( zero.category() == std::generic_category() ); + } + + int main() + { + test01(); + } diff -Nrcpad gcc-9.4.0/libstdc++-v3/testsuite/19_diagnostics/headers/system_error/93151.cc gcc-9.5.0/libstdc++-v3/testsuite/19_diagnostics/headers/system_error/93151.cc *** gcc-9.4.0/libstdc++-v3/testsuite/19_diagnostics/headers/system_error/93151.cc Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/libstdc++-v3/testsuite/19_diagnostics/headers/system_error/93151.cc Fri May 27 07:21:13 2022 *************** *** 0 **** --- 1,23 ---- + // { dg-do compile { target c++11 } } + + // Copyright (C) 2020 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 3, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING3. If not see + // . + + // PR libstdc++/93151 + #undef _XOPEN_SOURCE + #define _XOPEN_SOURCE 600 + #include diff -Nrcpad gcc-9.4.0/libstdc++-v3/testsuite/19_diagnostics/headers/system_error/errc_std_c++0x.cc gcc-9.5.0/libstdc++-v3/testsuite/19_diagnostics/headers/system_error/errc_std_c++0x.cc *** gcc-9.4.0/libstdc++-v3/testsuite/19_diagnostics/headers/system_error/errc_std_c++0x.cc Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libstdc++-v3/testsuite/19_diagnostics/headers/system_error/errc_std_c++0x.cc Fri May 27 07:21:13 2022 *************** void test01() *** 34,40 **** TEST_ERRC(bad_address); TEST_ERRC(bad_file_descriptor); ! #ifdef _GLIBCXX_HAVE_EBADMSG TEST_ERRC(bad_message); #endif --- 34,40 ---- TEST_ERRC(bad_address); TEST_ERRC(bad_file_descriptor); ! #ifdef EBADMSG TEST_ERRC(bad_message); #endif *************** void test01() *** 54,60 **** TEST_ERRC(function_not_supported); TEST_ERRC(host_unreachable); ! #ifdef _GLIBCXX_HAVE_EIDRM TEST_ERRC(identifier_removed); #endif --- 54,60 ---- TEST_ERRC(function_not_supported); TEST_ERRC(host_unreachable); ! #ifdef EIDRM TEST_ERRC(identifier_removed); #endif *************** void test01() *** 72,94 **** TEST_ERRC(no_buffer_space); TEST_ERRC(no_child_process); ! #ifdef _GLIBCXX_HAVE_ENOLINK TEST_ERRC(no_link); #endif TEST_ERRC(no_lock_available); ! #ifdef _GLIBCXX_HAVE_ENODATA TEST_ERRC(no_message_available); #endif ! #ifdef _GLIBCXX_HAVE_ENOMSG TEST_ERRC(no_message); #endif TEST_ERRC(no_protocol_option); TEST_ERRC(no_space_on_device); ! #ifdef _GLIBCXX_HAVE_ENOSR TEST_ERRC(no_stream_resources); #endif --- 72,94 ---- TEST_ERRC(no_buffer_space); TEST_ERRC(no_child_process); ! #ifdef ENOLINK TEST_ERRC(no_link); #endif TEST_ERRC(no_lock_available); ! #ifdef ENODATA TEST_ERRC(no_message_available); #endif ! #ifdef ENOMSG TEST_ERRC(no_message); #endif TEST_ERRC(no_protocol_option); TEST_ERRC(no_space_on_device); ! #ifdef ENOSR TEST_ERRC(no_stream_resources); #endif *************** void test01() *** 99,113 **** TEST_ERRC(not_a_directory); TEST_ERRC(not_a_socket); ! #ifdef _GLIBCXX_HAVE_ENOSTR TEST_ERRC(not_a_stream); #endif ! TEST_ERRC(not_connected); TEST_ERRC(not_enough_memory); TEST_ERRC(not_supported); ! #ifdef _GLIBCXX_HAVE_ECANCELED TEST_ERRC(operation_canceled); #endif --- 99,113 ---- TEST_ERRC(not_a_directory); TEST_ERRC(not_a_socket); ! #ifdef ENOSTR TEST_ERRC(not_a_stream); #endif ! TEST_ERRC(not_connected); TEST_ERRC(not_enough_memory); TEST_ERRC(not_supported); ! #ifdef ECANCELED TEST_ERRC(operation_canceled); #endif *************** void test01() *** 116,146 **** TEST_ERRC(operation_not_supported); TEST_ERRC(operation_would_block); ! #ifdef _GLIBCXX_HAVE_EOWNERDEAD TEST_ERRC(owner_dead); #endif TEST_ERRC(permission_denied); ! #ifdef _GLIBCXX_HAVE_EPROTO TEST_ERRC(protocol_error); #endif TEST_ERRC(protocol_not_supported); TEST_ERRC(read_only_file_system); TEST_ERRC(resource_deadlock_would_occur); ! TEST_ERRC(resource_unavailable_try_again); TEST_ERRC(result_out_of_range); ! #ifdef _GLIBCXX_HAVE_ENOTRECOVERABLE TEST_ERRC(state_not_recoverable); #endif ! #ifdef _GLIBCXX_HAVE_ETIME TEST_ERRC(stream_timeout); #endif ! #ifdef _GLIBCXX_HAVE_ETXTBSY TEST_ERRC(text_file_busy); #endif --- 116,146 ---- TEST_ERRC(operation_not_supported); TEST_ERRC(operation_would_block); ! #ifdef EOWNERDEAD TEST_ERRC(owner_dead); #endif TEST_ERRC(permission_denied); ! #ifdef EPROTO TEST_ERRC(protocol_error); #endif TEST_ERRC(protocol_not_supported); TEST_ERRC(read_only_file_system); TEST_ERRC(resource_deadlock_would_occur); ! TEST_ERRC(resource_unavailable_try_again); TEST_ERRC(result_out_of_range); ! #ifdef ENOTRECOVERABLE TEST_ERRC(state_not_recoverable); #endif ! #ifdef ETIME TEST_ERRC(stream_timeout); #endif ! #ifdef ETXTBSY TEST_ERRC(text_file_busy); #endif *************** void test01() *** 150,156 **** TEST_ERRC(too_many_links); TEST_ERRC(too_many_symbolic_link_levels); ! #ifdef _GLIBCXX_HAVE_EOVERFLOW TEST_ERRC(value_too_large); #endif --- 150,156 ---- TEST_ERRC(too_many_links); TEST_ERRC(too_many_symbolic_link_levels); ! #ifdef EOVERFLOW TEST_ERRC(value_too_large); #endif diff -Nrcpad gcc-9.4.0/libstdc++-v3/testsuite/20_util/any/cons/101034.cc gcc-9.5.0/libstdc++-v3/testsuite/20_util/any/cons/101034.cc *** gcc-9.4.0/libstdc++-v3/testsuite/20_util/any/cons/101034.cc Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/libstdc++-v3/testsuite/20_util/any/cons/101034.cc Fri May 27 07:21:13 2022 *************** *** 0 **** --- 1,11 ---- + // { dg-do compile { target c++17 } } + // PR libstdc++/101034 - wrong constraint in std::any's constructor + + #include + + struct S { + S(std::initializer_list&, int) {} + }; + + std::any a(std::in_place_type, {0}, 0); + S& s = a.emplace({0}, 0); diff -Nrcpad gcc-9.4.0/libstdc++-v3/testsuite/20_util/any/cons/90415.cc gcc-9.5.0/libstdc++-v3/testsuite/20_util/any/cons/90415.cc *** gcc-9.4.0/libstdc++-v3/testsuite/20_util/any/cons/90415.cc Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/libstdc++-v3/testsuite/20_util/any/cons/90415.cc Fri May 27 07:21:13 2022 *************** *** 0 **** --- 1,64 ---- + // { dg-options "-std=gnu++17" } + // { dg-do run { target c++17 } } + + // Copyright (C) 2020 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 3, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING3. If not see + // . + + #include + #include + #include + #include + + void + test01() + { + // PR libstdc++/90415 + static_assert( std::is_copy_constructible>::value ); + } + + struct wrapper + { + wrapper() = default; + + wrapper(const std::any& t); + + wrapper(const wrapper& w); + + auto& operator=(const std::any& t); + + auto& operator=(const wrapper& w) + { + value = w.value; + return *this; + } + + std::any value; + }; + + void + test02() + { + // PR libstdc++/91630 + wrapper a, b; + a = b; + } + + int main() + { + test01(); + test02(); + } diff -Nrcpad gcc-9.4.0/libstdc++-v3/testsuite/20_util/any/cons/92156.cc gcc-9.5.0/libstdc++-v3/testsuite/20_util/any/cons/92156.cc *** gcc-9.4.0/libstdc++-v3/testsuite/20_util/any/cons/92156.cc Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/libstdc++-v3/testsuite/20_util/any/cons/92156.cc Fri May 27 07:21:13 2022 *************** *** 0 **** --- 1,53 ---- + // { dg-options "-std=gnu++17" } + // { dg-do run { target c++17 } } + + // Copyright (C) 2020 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 3, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING3. If not see + // . + + #include + #include + #include + #include + + void + test01() + { + auto a = std::any(std::in_place_type, 5); + VERIFY( std::any_cast(std::any_cast(a)) == 5 ); + + auto b = std::any(std::in_place_type, {1}); + (void) std::any_cast>(std::any_cast(b)); + } + + void + test02() + { + std::any p = std::pair(1, 1); + auto pt = std::any_cast>(p); + VERIFY( std::any_cast(pt.first) == 1 ); + VERIFY( std::any_cast(pt.second) == 1 ); + + std::any t = std::tuple(1); + auto tt = std::any_cast>(t); + VERIFY( std::any_cast(std::get<0>(tt)) == 1 ); + } + + int main() + { + test01(); + test02(); + } diff -Nrcpad gcc-9.4.0/libstdc++-v3/testsuite/20_util/any/misc/any_cast_neg.cc gcc-9.5.0/libstdc++-v3/testsuite/20_util/any/misc/any_cast_neg.cc *** gcc-9.4.0/libstdc++-v3/testsuite/20_util/any/misc/any_cast_neg.cc Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libstdc++-v3/testsuite/20_util/any/misc/any_cast_neg.cc Fri May 27 07:21:13 2022 *************** *** 1,5 **** // { dg-options "-std=gnu++17" } ! // { dg-do compile } // Copyright (C) 2014-2019 Free Software Foundation, Inc. // --- 1,5 ---- // { dg-options "-std=gnu++17" } ! // { dg-do compile { target c++17 } } // Copyright (C) 2014-2019 Free Software Foundation, Inc. // *************** using std::any_cast; *** 26,45 **** void test01() { const any y(1); ! any_cast(y); // { dg-error "invalid static_cast" "" { target { *-*-* } } 461 } ! // { dg-error "Template argument must be constructible from a const value" "" { target { *-*-* } } 457 } } void test02() { any y(1); ! any_cast(y); ! // { dg-error "Template argument must be constructible from an lvalue" "" { target { *-*-* } } 483 } } void test03() { any y(1); ! any_cast(std::move(y)); // { dg-error "invalid static_cast" "" { target { *-*-* } } 501 } ! // { dg-error "Template argument must be constructible from an rvalue" "" { target { *-*-* } } 497 } } --- 26,47 ---- void test01() { const any y(1); ! any_cast(y); // { dg-error "here" } ! // { dg-error "Template argument must be constructible from a const value" "" { target { *-*-* } } 0 } } void test02() { any y(1); ! any_cast(y); // { dg-error "here" } ! // { dg-error "Template argument must be constructible from an lvalue" "" { target { *-*-* } } 0 } } void test03() { any y(1); ! any_cast(std::move(y)); // { dg-error "here" } ! // { dg-error "Template argument must be constructible from an rvalue" "" { target { *-*-* } } 0 } } + + // { dg-prune-output "invalid static_cast" } diff -Nrcpad gcc-9.4.0/libstdc++-v3/testsuite/20_util/any/modifiers/92156.cc gcc-9.5.0/libstdc++-v3/testsuite/20_util/any/modifiers/92156.cc *** gcc-9.4.0/libstdc++-v3/testsuite/20_util/any/modifiers/92156.cc Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/libstdc++-v3/testsuite/20_util/any/modifiers/92156.cc Fri May 27 07:21:13 2022 *************** *** 0 **** --- 1,57 ---- + // { dg-options "-std=gnu++17" } + // { dg-do run { target c++17 } } + + // Copyright (C) 2020 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 3, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING3. If not see + // . + + #include + #include + #include + #include + + void + test01() + { + std::any a; + a.emplace(5); + VERIFY( std::any_cast(std::any_cast(a)) == 5 ); + + std::any b; + b.emplace({1}); + (void) std::any_cast>(std::any_cast(b)); + } + + void + test02() + { + std::any p; + p.emplace>(1, 1); + auto pt = std::any_cast>(p); + VERIFY( std::any_cast(pt.first) == 1 ); + VERIFY( std::any_cast(pt.second) == 1 ); + + std::any t; + t.emplace>(1); + auto tt = std::any_cast>(t); + VERIFY( std::any_cast(std::get<0>(tt)) == 1 ); + } + + int main() + { + test01(); + test02(); + } diff -Nrcpad gcc-9.4.0/libstdc++-v3/testsuite/20_util/optional/assignment/100982.cc gcc-9.5.0/libstdc++-v3/testsuite/20_util/optional/assignment/100982.cc *** gcc-9.4.0/libstdc++-v3/testsuite/20_util/optional/assignment/100982.cc Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/libstdc++-v3/testsuite/20_util/optional/assignment/100982.cc Fri May 27 07:21:13 2022 *************** *** 0 **** --- 1,17 ---- + // { dg-do compile { target c++17 } } + + #include + + struct U {}; + + struct T { + explicit T(const U&); + T& operator=(const U&); + T& operator=(U&&) = delete; + }; + + int main() { + std::optional opt1; + std::optional opt2; + opt2 = opt1; // PR libstdc++/100982 + } diff -Nrcpad gcc-9.4.0/libstdc++-v3/testsuite/20_util/shared_ptr/creation/99006.cc gcc-9.5.0/libstdc++-v3/testsuite/20_util/shared_ptr/creation/99006.cc *** gcc-9.4.0/libstdc++-v3/testsuite/20_util/shared_ptr/creation/99006.cc Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/libstdc++-v3/testsuite/20_util/shared_ptr/creation/99006.cc Fri May 27 07:21:13 2022 *************** *** 0 **** --- 1,9 ---- + // FIXME: This should use { target { ! c++20 } } + // { dg-do compile } + + #include + + auto p = std::make_shared(2); // { dg-error "here" } + auto q = std::make_shared(1, 2); // { dg-error "here" } + + // { dg-prune-output "static assertion failed" } diff -Nrcpad gcc-9.4.0/libstdc++-v3/testsuite/20_util/variant/100384.cc gcc-9.5.0/libstdc++-v3/testsuite/20_util/variant/100384.cc *** gcc-9.4.0/libstdc++-v3/testsuite/20_util/variant/100384.cc Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/libstdc++-v3/testsuite/20_util/variant/100384.cc Fri May 27 07:21:13 2022 *************** *** 0 **** --- 1,9 ---- + // { dg-do compile { target c++17 } } + + #include + + int visit(int*, std::true_type) { return 0; } + + const std::true_type dat; + + int i = visit(nullptr, dat); diff -Nrcpad gcc-9.4.0/libstdc++-v3/testsuite/23_containers/forward_list/operations/merge.cc gcc-9.5.0/libstdc++-v3/testsuite/23_containers/forward_list/operations/merge.cc *** gcc-9.4.0/libstdc++-v3/testsuite/23_containers/forward_list/operations/merge.cc Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/libstdc++-v3/testsuite/23_containers/forward_list/operations/merge.cc Fri May 27 07:21:13 2022 *************** *** 0 **** --- 1,48 ---- + // { dg-do run { target c++11 } } + // C++11 23.3.4.6 Operations [forwardlist.ops] + + #include + #include + + void + test_stable() + { + std::forward_list a{1.5, 2.0, 3.5, 4.1}; + std::forward_list b{1.0, 2.5, 3.0, 4.3, 4.2, 5.0}; + + a.merge(b, std::less{}); + + // result is sorted with respect to std::less, so 1.0 and 1.5 are + // equivalent, and stability guarantee means the element from a comes first. + const std::forward_list r { 1.5, 1.0, + 2.0, 2.5, + 3.5, 3.0, + 4.1, 4.3, 4.2, + 5.0}; + + VERIFY(a == r); + } + + void + test_lwg3088() + { + // LWG 3088: forward_list::merge behavior unclear when passed *this + // PR libstdc++/103853 + std::forward_list c1{ 1, 2, 3 }; + const std::forward_list c2 = c1; + c1.merge(c1); + VERIFY( c1 == c2 ); + c1.merge(c1, std::less{}); + VERIFY( c1 == c2 ); + c1.merge(std::move(c1)); + VERIFY( c1 == c2 ); + c1.merge(std::move(c1), std::less{}); + VERIFY( c1 == c2 ); + } + + int + main() + { + test_stable(); + test_lwg3088(); + } diff -Nrcpad gcc-9.4.0/libstdc++-v3/testsuite/25_algorithms/is_permutation/2.cc gcc-9.5.0/libstdc++-v3/testsuite/25_algorithms/is_permutation/2.cc *** gcc-9.4.0/libstdc++-v3/testsuite/25_algorithms/is_permutation/2.cc Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libstdc++-v3/testsuite/25_algorithms/is_permutation/2.cc Fri May 27 07:21:13 2022 *************** *** 20,25 **** --- 20,26 ---- // 25.2.12 [alg.is_permutation] Is permutation #include + #include #include #include diff -Nrcpad gcc-9.4.0/libstdc++-v3/testsuite/26_numerics/lerp/1.cc gcc-9.5.0/libstdc++-v3/testsuite/26_numerics/lerp/1.cc *** gcc-9.4.0/libstdc++-v3/testsuite/26_numerics/lerp/1.cc Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/libstdc++-v3/testsuite/26_numerics/lerp/1.cc Fri May 27 07:21:13 2022 *************** *** 0 **** --- 1,124 ---- + // Copyright (C) 2019 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 3, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING3. If not see + // . + + // { dg-options "-std=gnu++2a" } + // { dg-do run { target c++2a } } + + #include + + #ifndef __cpp_lib_interpolate + # error "Feature-test macro for midpoint and lerp missing" + #elif __cpp_lib_interpolate != 201902L + # error "Feature-test macro for midpoint and lerp has wrong value" + #endif + + #include + #include + + void + test01() + { + using lim = std::numeric_limits; + + VERIFY( std::lerp(0.0, 1.0, 0.0) == 0.0 ); + VERIFY( std::lerp(-2.0, 10.0, 1.0) == 10.0 ); + VERIFY( std::lerp(2.0, -10.0, 1.0) == -10.0 ); + VERIFY( std::lerp(-8.0, 10.0, 0.5) == 1.0 ); + VERIFY( std::lerp(-10.0, 10.0, 0.25) == -5.0 ); + VERIFY( std::lerp(10.0, -10.0, 0.375) == 2.5 ); + + VERIFY( std::lerp(2.0, 2.0, 200.0) == 2.0 ); + VERIFY( std::lerp(2.0, 4.0, 200.0) == 402.0 ); + VERIFY( std::lerp(2.0, 4.0, -20.0) == -38.0 ); + + VERIFY( std::lerp(1.1, 30201.1, 0) == 1.1 ); + VERIFY( std::lerp(1.1, 30201.1, 1) == 30201.1 ); + VERIFY( std::lerp(1.1, -30201.1, 0) == 1.1 ); + VERIFY( std::lerp(1.1, -30201.1, 1) == -30201.1 ); + + VERIFY( std::lerp(1.1, 1.1, lim::infinity()) == 1.1 ); + VERIFY( std::isfinite(std::lerp(1.1, 1.1+lim::min(), lim::max())) ); + + VERIFY( std::lerp(lim::max(), lim::max(), 1) == lim::max() ); + VERIFY( std::lerp(lim::max(), lim::max()/9e9, 0) == lim::max() ); + VERIFY( std::lerp(lim::max()/9e9, lim::max(), 1) == lim::max() ); + } + + void + test02() + { + using lim = std::numeric_limits; + + VERIFY( std::lerp(0.0f, 1.0f, 0.0f) == 0.0f ); + VERIFY( std::lerp(-2.0f, 10.0f, 1.0f) == 10.0f ); + VERIFY( std::lerp(2.0f, -10.0f, 1.0f) == -10.0f ); + VERIFY( std::lerp(-8.0f, 10.0f, 0.5f) == 1.0f ); + VERIFY( std::lerp(-10.0f, 10.0f, 0.25f) == -5.0f ); + VERIFY( std::lerp(10.0f, -10.0f, 0.375f) == 2.5f ); + + VERIFY( std::lerp(2.0f, 2.0f, 200.0f) == 2.0f ); + VERIFY( std::lerp(2.0f, 4.0f, 200.0f) == 402.0f ); + VERIFY( std::lerp(2.0f, 4.0f, -20.0f) == -38.0f ); + + VERIFY( std::lerp(1.1f, 30201.1f, 0) == 1.1f ); + VERIFY( std::lerp(1.1f, 30201.1f, 1) == 30201.1f ); + VERIFY( std::lerp(1.1f, -30201.1f, 0) == 1.1f ); + VERIFY( std::lerp(1.1f, -30201.1f, 1) == -30201.1f ); + + VERIFY( std::lerp(1.1f, 1.1f, lim::infinity()) == 1.1f ); + VERIFY( std::isfinite(std::lerp(1.1f, 1.1f+lim::min(), lim::max())) ); + + VERIFY( std::lerp(lim::max(), lim::max(), 1) == lim::max() ); + VERIFY( std::lerp(lim::max(), lim::max()/9e9f, 0) == lim::max() ); + VERIFY( std::lerp(lim::max()/9e9f, lim::max(), 1) == lim::max() ); + } + + void + test03() + { + using lim = std::numeric_limits; + + VERIFY( std::lerp(0.0l, 1.0l, 0.0l) == 0.0l ); + VERIFY( std::lerp(-2.0l, 10.0l, 1.0l) == 10.0l ); + VERIFY( std::lerp(2.0l, -10.0l, 1.0l) == -10.0l ); + VERIFY( std::lerp(-8.0l, 10.0l, 0.5l) == 1.0l ); + VERIFY( std::lerp(-10.0l, 10.0l, 0.25l) == -5.0l ); + VERIFY( std::lerp(10.0l, -10.0l, 0.375l) == 2.5l ); + + VERIFY( std::lerp(2.0l, 2.0l, 200.0l) == 2.0l ); + VERIFY( std::lerp(2.0l, 4.0l, 200.0l) == 402.0l ); + VERIFY( std::lerp(2.0l, 4.0l, -20.0l) == -38.0l ); + + VERIFY( std::lerp(1.1l, 30201.1l, 0) == 1.1l ); + VERIFY( std::lerp(1.1l, 30201.1l, 1) == 30201.1l ); + VERIFY( std::lerp(1.1l, -30201.1l, 0) == 1.1l ); + VERIFY( std::lerp(1.1l, -30201.1l, 1) == -30201.1l ); + + VERIFY( std::lerp(1.1l, 1.1l, lim::infinity()) == 1.1l ); + VERIFY( std::isfinite(std::lerp(1.1l, 1.1l+lim::min(), lim::max())) ); + + VERIFY( std::lerp(lim::max(), lim::max(), 1) == lim::max() ); + VERIFY( std::lerp(lim::max(), lim::max()/9e9l, 0) == lim::max() ); + VERIFY( std::lerp(lim::max()/9e9l, lim::max(), 1) == lim::max() ); + } + + int main() + { + test01(); + test02(); + test03(); + } diff -Nrcpad gcc-9.4.0/libstdc++-v3/testsuite/26_numerics/lerp/constexpr.cc gcc-9.5.0/libstdc++-v3/testsuite/26_numerics/lerp/constexpr.cc *** gcc-9.4.0/libstdc++-v3/testsuite/26_numerics/lerp/constexpr.cc Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/libstdc++-v3/testsuite/26_numerics/lerp/constexpr.cc Fri May 27 07:21:13 2022 *************** *** 0 **** --- 1,21 ---- + // { dg-options "-std=gnu++2a" } + // { dg-do compile { target c++2a } } + + #include + + // Fails template argument deduction unless both arguments are the same type. + template + constexpr bool + eq(T result, T expected) { return result == expected; } + + static_assert( eq( std::lerp(-10.0, 10.0, 0.25), -5.0 ) ); + static_assert( eq( std::lerp(2.0f, 2.0f, 200.0f), 2.0f ) ); + static_assert( eq( std::lerp(2.0L, 4.0L, 200.0L), 402.0L ) ); + // at least one type is long double, so result is long double + static_assert( eq( std::lerp(2.0L, 4.0f, -20.0), -38.0L ) ); + // at least one type is double, so result is double: + static_assert( eq( std::lerp(-8.0f, 10.0, 0.5f), 1.0 ) ); + // int promotes to double, so result is double + static_assert( eq( std::lerp(0, 1, 0), 0.0 ) ); + // int promotes to double, so result is double + static_assert( eq( std::lerp(2.0f, -10.0f, 1), -10.0 ) ); diff -Nrcpad gcc-9.4.0/libstdc++-v3/testsuite/26_numerics/lerp/version.cc gcc-9.5.0/libstdc++-v3/testsuite/26_numerics/lerp/version.cc *** gcc-9.4.0/libstdc++-v3/testsuite/26_numerics/lerp/version.cc Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/libstdc++-v3/testsuite/26_numerics/lerp/version.cc Fri May 27 07:21:13 2022 *************** *** 0 **** --- 1,10 ---- + // { dg-options "-std=gnu++2a" } + // { dg-do preprocess { target c++2a } } + + #include + + #ifndef __cpp_lib_interpolate + # error "Feature-test macro for midpoint and lerp missing in " + #elif __cpp_lib_interpolate != 201902L + # error "Feature-test macro for midpoint and lerp has wrong value in " + #endif diff -Nrcpad gcc-9.4.0/libstdc++-v3/testsuite/26_numerics/lerp.cc gcc-9.5.0/libstdc++-v3/testsuite/26_numerics/lerp.cc *** gcc-9.4.0/libstdc++-v3/testsuite/26_numerics/lerp.cc Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libstdc++-v3/testsuite/26_numerics/lerp.cc Thu Jan 1 00:00:00 1970 *************** *** 1,124 **** - // Copyright (C) 2019 Free Software Foundation, Inc. - // - // This file is part of the GNU ISO C++ Library. This library is free - // software; you can redistribute it and/or modify it under the - // terms of the GNU General Public License as published by the - // Free Software Foundation; either version 3, or (at your option) - // any later version. - - // This library is distributed in the hope that it will be useful, - // but WITHOUT ANY WARRANTY; without even the implied warranty of - // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - // GNU General Public License for more details. - - // You should have received a copy of the GNU General Public License along - // with this library; see the file COPYING3. If not see - // . - - // { dg-options "-std=gnu++2a" } - // { dg-do run { target c++2a } } - - #include - - #ifndef __cpp_lib_interpolate - # error "Feature-test macro for midpoint and lerp missing" - #elif __cpp_lib_interpolate != 201902L - # error "Feature-test macro for midpoint and lerp has wrong value" - #endif - - #include - #include - - void - test01() - { - using lim = std::numeric_limits; - - VERIFY( std::lerp(0.0, 1.0, 0.0) == 0.0 ); - VERIFY( std::lerp(-2.0, 10.0, 1.0) == 10.0 ); - VERIFY( std::lerp(2.0, -10.0, 1.0) == -10.0 ); - VERIFY( std::lerp(-8.0, 10.0, 0.5) == 1.0 ); - VERIFY( std::lerp(-10.0, 10.0, 0.25) == -5.0 ); - VERIFY( std::lerp(10.0, -10.0, 0.375) == 2.5 ); - - VERIFY( std::lerp(2.0, 2.0, 200.0) == 2.0 ); - VERIFY( std::lerp(2.0, 4.0, 200.0) == 402.0 ); - VERIFY( std::lerp(2.0, 4.0, -20.0) == -38.0 ); - - VERIFY( std::lerp(1.1, 30201.1, 0) == 1.1 ); - VERIFY( std::lerp(1.1, 30201.1, 1) == 30201.1 ); - VERIFY( std::lerp(1.1, -30201.1, 0) == 1.1 ); - VERIFY( std::lerp(1.1, -30201.1, 1) == -30201.1 ); - - VERIFY( std::lerp(1.1, 1.1, lim::infinity()) == 1.1 ); - VERIFY( std::isfinite(std::lerp(1.1, 1.1+lim::min(), lim::max())) ); - - VERIFY( std::lerp(lim::max(), lim::max(), 1) == lim::max() ); - VERIFY( std::lerp(lim::max(), lim::max()/9e9, 0) == lim::max() ); - VERIFY( std::lerp(lim::max()/9e9, lim::max(), 1) == lim::max() ); - } - - void - test02() - { - using lim = std::numeric_limits; - - VERIFY( std::lerp(0.0f, 1.0f, 0.0f) == 0.0f ); - VERIFY( std::lerp(-2.0f, 10.0f, 1.0f) == 10.0f ); - VERIFY( std::lerp(2.0f, -10.0f, 1.0f) == -10.0f ); - VERIFY( std::lerp(-8.0f, 10.0f, 0.5f) == 1.0f ); - VERIFY( std::lerp(-10.0f, 10.0f, 0.25f) == -5.0f ); - VERIFY( std::lerp(10.0f, -10.0f, 0.375f) == 2.5f ); - - VERIFY( std::lerp(2.0f, 2.0f, 200.0f) == 2.0f ); - VERIFY( std::lerp(2.0f, 4.0f, 200.0f) == 402.0f ); - VERIFY( std::lerp(2.0f, 4.0f, -20.0f) == -38.0f ); - - VERIFY( std::lerp(1.1f, 30201.1f, 0) == 1.1f ); - VERIFY( std::lerp(1.1f, 30201.1f, 1) == 30201.1f ); - VERIFY( std::lerp(1.1f, -30201.1f, 0) == 1.1f ); - VERIFY( std::lerp(1.1f, -30201.1f, 1) == -30201.1f ); - - VERIFY( std::lerp(1.1f, 1.1f, lim::infinity()) == 1.1f ); - VERIFY( std::isfinite(std::lerp(1.1f, 1.1f+lim::min(), lim::max())) ); - - VERIFY( std::lerp(lim::max(), lim::max(), 1) == lim::max() ); - VERIFY( std::lerp(lim::max(), lim::max()/9e9f, 0) == lim::max() ); - VERIFY( std::lerp(lim::max()/9e9f, lim::max(), 1) == lim::max() ); - } - - void - test03() - { - using lim = std::numeric_limits; - - VERIFY( std::lerp(0.0l, 1.0l, 0.0l) == 0.0l ); - VERIFY( std::lerp(-2.0l, 10.0l, 1.0l) == 10.0l ); - VERIFY( std::lerp(2.0l, -10.0l, 1.0l) == -10.0l ); - VERIFY( std::lerp(-8.0l, 10.0l, 0.5l) == 1.0l ); - VERIFY( std::lerp(-10.0l, 10.0l, 0.25l) == -5.0l ); - VERIFY( std::lerp(10.0l, -10.0l, 0.375l) == 2.5l ); - - VERIFY( std::lerp(2.0l, 2.0l, 200.0l) == 2.0l ); - VERIFY( std::lerp(2.0l, 4.0l, 200.0l) == 402.0l ); - VERIFY( std::lerp(2.0l, 4.0l, -20.0l) == -38.0l ); - - VERIFY( std::lerp(1.1l, 30201.1l, 0) == 1.1l ); - VERIFY( std::lerp(1.1l, 30201.1l, 1) == 30201.1l ); - VERIFY( std::lerp(1.1l, -30201.1l, 0) == 1.1l ); - VERIFY( std::lerp(1.1l, -30201.1l, 1) == -30201.1l ); - - VERIFY( std::lerp(1.1l, 1.1l, lim::infinity()) == 1.1l ); - VERIFY( std::isfinite(std::lerp(1.1l, 1.1l+lim::min(), lim::max())) ); - - VERIFY( std::lerp(lim::max(), lim::max(), 1) == lim::max() ); - VERIFY( std::lerp(lim::max(), lim::max()/9e9l, 0) == lim::max() ); - VERIFY( std::lerp(lim::max()/9e9l, lim::max(), 1) == lim::max() ); - } - - int main() - { - test01(); - test02(); - test03(); - } --- 0 ---- diff -Nrcpad gcc-9.4.0/libstdc++-v3/testsuite/26_numerics/random/normal_distribution/operators/serialize.cc gcc-9.5.0/libstdc++-v3/testsuite/26_numerics/random/normal_distribution/operators/serialize.cc *** gcc-9.4.0/libstdc++-v3/testsuite/26_numerics/random/normal_distribution/operators/serialize.cc Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libstdc++-v3/testsuite/26_numerics/random/normal_distribution/operators/serialize.cc Fri May 27 07:21:13 2022 *************** *** 25,30 **** --- 25,31 ---- #include #include + #include void test01() *************** test01() *** 37,46 **** str << u; str >> v; } int main() { test01(); ! return 0; } --- 38,80 ---- str << u; str >> v; + VERIFY( u == v ); + } + + void + test_pr105502() + { + // PR libstdc++/105502 std::normal_distribution deserialization issue + std::stringstream str; + std::normal_distribution<> d{1, 2}, d2; + std::minstd_rand0 g; + str << d; + VERIFY( str ); + str >> d2; + VERIFY( str ); + VERIFY( d == d2 ); + + (void) d(g); // sets d._M_saved_available = true + str.str(""); + str.clear(); + str << d; + VERIFY( str ); + str >> d2; + VERIFY( str ); + VERIFY( d == d2 ); + + (void) d(g); // sets d._M_saved_available = false + str.str(""); + str.clear(); + str << d; + VERIFY( str ); + str >> d2; + VERIFY( str ); + VERIFY( d == d2 ); } int main() { test01(); ! test_pr105502(); } diff -Nrcpad gcc-9.4.0/libstdc++-v3/testsuite/26_numerics/reduce/95833.cc gcc-9.5.0/libstdc++-v3/testsuite/26_numerics/reduce/95833.cc *** gcc-9.4.0/libstdc++-v3/testsuite/26_numerics/reduce/95833.cc Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/libstdc++-v3/testsuite/26_numerics/reduce/95833.cc Fri May 27 07:21:13 2022 *************** *** 0 **** --- 1,16 ---- + // { dg-do compile { target c++17 } } + // PR libstdc++/95833 - Incorrect static_assert in std::reduce overload + + #include + + struct A { }; + struct B { }; + + struct binop + { + template + A operator()(T&&, U&&) const { return A{}; } + }; + + B b; + A a = std::reduce(&b, &b + 1, A{}, binop{}); diff -Nrcpad gcc-9.4.0/libstdc++-v3/testsuite/26_numerics/valarray/103022.cc gcc-9.5.0/libstdc++-v3/testsuite/26_numerics/valarray/103022.cc *** gcc-9.4.0/libstdc++-v3/testsuite/26_numerics/valarray/103022.cc Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/libstdc++-v3/testsuite/26_numerics/valarray/103022.cc Fri May 27 07:21:13 2022 *************** *** 0 **** --- 1,15 ---- + // { dg-options "-D_GLIBCXX_DEBUG" } + // { dg-do compile { target c++11 } } + + #include + + int main() + { + // PR libstdc++/103022 + std::valarray va; + (void) std::begin(va); + (void) std::end(va); + const auto& cva = va; + (void) std::begin(cva); + (void) std::end(cva); + } diff -Nrcpad gcc-9.4.0/libstdc++-v3/testsuite/26_numerics/valarray/dr630-3.C gcc-9.5.0/libstdc++-v3/testsuite/26_numerics/valarray/dr630-3.C *** gcc-9.4.0/libstdc++-v3/testsuite/26_numerics/valarray/dr630-3.C Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libstdc++-v3/testsuite/26_numerics/valarray/dr630-3.C Thu Jan 1 00:00:00 1970 *************** *** 1,35 **** - // Copyright (C) 2013-2019 Free Software Foundation, Inc. - // - // This file is part of the GNU ISO C++ Library. This library is free - // software; you can redistribute it and/or modify it under the - // terms of the GNU General Public License as published by the - // Free Software Foundation; either version 3, or (at your option) - // any later version. - - // This library is distributed in the hope that it will be useful, - // but WITHOUT ANY WARRANTY; without even the implied warranty of - // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - // GNU General Public License for more details. - - // You should have received a copy of the GNU General Public License along - // with this library; see the file COPYING3. If not see - // . - - #include - #include - - // libstdc++/57666 - void test01() - { - std::valarray a(3), b(3), d1, d2; - d1 = a; - VERIFY( d1.size() == 3 ); - d2 = a + b; - VERIFY( d2.size() == 3 ); - } - - int main() - { - test01(); - return 0; - } --- 0 ---- diff -Nrcpad gcc-9.4.0/libstdc++-v3/testsuite/26_numerics/valarray/dr630-3.cc gcc-9.5.0/libstdc++-v3/testsuite/26_numerics/valarray/dr630-3.cc *** gcc-9.4.0/libstdc++-v3/testsuite/26_numerics/valarray/dr630-3.cc Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/libstdc++-v3/testsuite/26_numerics/valarray/dr630-3.cc Fri May 27 07:21:13 2022 *************** *** 0 **** --- 1,35 ---- + // Copyright (C) 2013-2019 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 3, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING3. If not see + // . + + #include + #include + + // libstdc++/57666 + void test01() + { + std::valarray a(3), b(3), d1, d2; + d1 = a; + VERIFY( d1.size() == 3 ); + d2 = a + b; + VERIFY( d2.size() == 3 ); + } + + int main() + { + test01(); + return 0; + } diff -Nrcpad gcc-9.4.0/libstdc++-v3/testsuite/26_numerics/valarray/range_access.cc gcc-9.5.0/libstdc++-v3/testsuite/26_numerics/valarray/range_access.cc *** gcc-9.4.0/libstdc++-v3/testsuite/26_numerics/valarray/range_access.cc Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libstdc++-v3/testsuite/26_numerics/valarray/range_access.cc Fri May 27 07:21:13 2022 *************** *** 1,4 **** ! // { dg-do compile { target c++11 } } // Copyright (C) 2010-2019 Free Software Foundation, Inc. // --- 1,4 ---- ! // { dg-do run { target c++11 } } // Copyright (C) 2010-2019 Free Software Foundation, Inc. // *************** *** 17,23 **** // with this library; see the file COPYING3. If not see // . ! // 26.6.10 valarray range access: [valarray.range] #include --- 17,23 ---- // with this library; see the file COPYING3. If not see // . ! // C++11 26.6.10 valarray range access: [valarray.range] #include *************** void *** 25,33 **** test01() { std::valarray va{1.0, 2.0, 3.0}; ! std::begin(va); ! std::end(va); const auto& cva = va; ! std::begin(cva); ! std::end(cva); } --- 25,66 ---- test01() { std::valarray va{1.0, 2.0, 3.0}; ! (void) std::begin(va); ! (void) std::end(va); const auto& cva = va; ! (void) std::begin(cva); ! (void) std::end(cva); ! ! using Iter = decltype(std::begin(va)); ! using IterTraits = std::iterator_traits; ! static_assert( std::is_same::value, "" ); ! static_assert( std::is_same::value, "" ); ! static_assert( std::is_same::value, "" ); ! static_assert( std::is_same::value, "" ); ! using CIter = decltype(std::begin(cva)); ! using CIterTraits = std::iterator_traits; ! static_assert( std::is_same::value, "" ); ! static_assert( std::is_same::value, "" ); ! static_assert( std::is_same::value, "" ); ! static_assert( std::is_same::value, "" ); ! } ! ! // PR libstdc++/103022 ! void ! test02() ! { ! std::valarray va; ! (void) std::begin(va); ! (void) std::end(va); ! const auto& cva = va; ! (void) std::begin(cva); ! (void) std::end(cva); ! } ! ! int main() ! { ! test01(); ! test02(); } diff -Nrcpad gcc-9.4.0/libstdc++-v3/testsuite/26_numerics/valarray/range_access2.cc gcc-9.5.0/libstdc++-v3/testsuite/26_numerics/valarray/range_access2.cc *** gcc-9.4.0/libstdc++-v3/testsuite/26_numerics/valarray/range_access2.cc Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libstdc++-v3/testsuite/26_numerics/valarray/range_access2.cc Fri May 27 07:21:13 2022 *************** *** 1,4 **** ! // { dg-do compile { target c++14 } } // Copyright (C) 2015-2019 Free Software Foundation, Inc. // --- 1,4 ---- ! // { dg-do run { target c++14 } } // Copyright (C) 2015-2019 Free Software Foundation, Inc. // *************** *** 17,23 **** // with this library; see the file COPYING3. If not see // . ! // 26.6.10 valarray range access: [valarray.range] #include #include --- 17,23 ---- // with this library; see the file COPYING3. If not see // . ! // C++11 26.6.10 valarray range access: [valarray.range] #include #include *************** test01() *** 33,35 **** --- 33,53 ---- std::cbegin(cva); std::cend(cva); } + + // PR libstdc++/103022 + void + test02() + { + std::valarray va; + (void) std::cbegin(va); + (void) std::cend(va); + const auto& cva = va; + (void) std::cbegin(cva); + (void) std::cend(cva); + } + + int main() + { + test01(); + test02(); + } diff -Nrcpad gcc-9.4.0/libstdc++-v3/testsuite/27_io/basic_iostream/cons/16251.C gcc-9.5.0/libstdc++-v3/testsuite/27_io/basic_iostream/cons/16251.C *** gcc-9.4.0/libstdc++-v3/testsuite/27_io/basic_iostream/cons/16251.C Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libstdc++-v3/testsuite/27_io/basic_iostream/cons/16251.C Thu Jan 1 00:00:00 1970 *************** *** 1,41 **** - // Copyright (C) 2008-2019 Free Software Foundation, Inc. - // - // This file is part of the GNU ISO C++ Library. This library is free - // software; you can redistribute it and/or modify it under the - // terms of the GNU General Public License as published by the - // Free Software Foundation; either version 3, or (at your option) - // any later version. - - // This library is distributed in the hope that it will be useful, - // but WITHOUT ANY WARRANTY; without even the implied warranty of - // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - // GNU General Public License for more details. - - // You should have received a copy of the GNU General Public License along - // with this library; see the file COPYING3. If not see - // . - - // 27.6.1.5 - Template class basic_iostream - - #include - - class mystream - : public std::iostream - { - public: - mystream () { }; - }; - - // libstdc++/16251 - void test01() - { - mystream x; - x.rdbuf(std::cout.rdbuf()); - x << std::endl; - } - - int main() - { - test01(); - return 0; - } --- 0 ---- diff -Nrcpad gcc-9.4.0/libstdc++-v3/testsuite/27_io/basic_iostream/cons/16251.cc gcc-9.5.0/libstdc++-v3/testsuite/27_io/basic_iostream/cons/16251.cc *** gcc-9.4.0/libstdc++-v3/testsuite/27_io/basic_iostream/cons/16251.cc Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/libstdc++-v3/testsuite/27_io/basic_iostream/cons/16251.cc Fri May 27 07:21:13 2022 *************** *** 0 **** --- 1,41 ---- + // Copyright (C) 2008-2019 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 3, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING3. If not see + // . + + // 27.6.1.5 - Template class basic_iostream + + #include + + class mystream + : public std::iostream + { + public: + mystream () { }; + }; + + // libstdc++/16251 + void test01() + { + mystream x; + x.rdbuf(std::cout.rdbuf()); + x << std::endl; + } + + int main() + { + test01(); + return 0; + } diff -Nrcpad gcc-9.4.0/libstdc++-v3/testsuite/27_io/filesystem/operations/create_directories.cc gcc-9.5.0/libstdc++-v3/testsuite/27_io/filesystem/operations/create_directories.cc *** gcc-9.4.0/libstdc++-v3/testsuite/27_io/filesystem/operations/create_directories.cc Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libstdc++-v3/testsuite/27_io/filesystem/operations/create_directories.cc Fri May 27 07:21:13 2022 *************** test03() *** 146,155 **** --- 146,178 ---- remove_all(p); } + void + test04() + { + #if defined(__MINGW32__) || defined(__MINGW64__) + // no symlinks + #else + // PR libstdc++/101510 + // create_directories reports an error if the path is a symlink to a dir + std::error_code ec = make_error_code(std::errc::invalid_argument); + const auto p = __gnu_test::nonexistent_path() / ""; + fs::create_directories(p/"dir"); + auto link = p/"link"; + fs::create_directory_symlink("dir", link); + bool created = fs::create_directories(link, ec); + VERIFY( !created ); + VERIFY( !ec ); + created = fs::create_directories(link); + VERIFY( !created ); + remove_all(p); + #endif + } + int main() { test01(); test02(); test03(); + test04(); } diff -Nrcpad gcc-9.4.0/libstdc++-v3/testsuite/27_io/filesystem/operations/create_directory.cc gcc-9.5.0/libstdc++-v3/testsuite/27_io/filesystem/operations/create_directory.cc *** gcc-9.4.0/libstdc++-v3/testsuite/27_io/filesystem/operations/create_directory.cc Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libstdc++-v3/testsuite/27_io/filesystem/operations/create_directory.cc Fri May 27 07:21:13 2022 *************** test01() *** 55,60 **** --- 55,91 ---- b = create_directory(p); VERIFY( !b ); + auto f = p/"file"; + std::ofstream{f} << "create file"; + b = create_directory(f, ec); + VERIFY( ec == std::errc::file_exists ); + VERIFY( !b ); + try + { + create_directory(f); + VERIFY( false ); + } + catch (const fs::filesystem_error& e) + { + VERIFY( e.code() == std::errc::file_exists ); + VERIFY( e.path1() == f ); + } + + #if defined(__MINGW32__) || defined(__MINGW64__) + // no symlinks + #else + // PR libstdc++/101510 create_directory on an existing symlink to a directory + fs::create_directory(p/"dir"); + auto link = p/"link"; + fs::create_directory_symlink("dir", link); + ec = bad_ec; + b = fs::create_directory(link, ec); + VERIFY( !b ); + VERIFY( !ec ); + b = fs::create_directory(link); + VERIFY( !b ); + #endif + remove_all(p, ec); } diff -Nrcpad gcc-9.4.0/libstdc++-v3/testsuite/27_io/filesystem/operations/remove_all.cc gcc-9.5.0/libstdc++-v3/testsuite/27_io/filesystem/operations/remove_all.cc *** gcc-9.4.0/libstdc++-v3/testsuite/27_io/filesystem/operations/remove_all.cc Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libstdc++-v3/testsuite/27_io/filesystem/operations/remove_all.cc Fri May 27 07:21:13 2022 *************** test04() *** 169,174 **** --- 169,176 ---- } fs::permissions(dir, fs::perms::owner_write, fs::perm_options::add); + fs::remove_all(dir, ec); + f.path.clear(); #endif } diff -Nrcpad gcc-9.4.0/libstdc++-v3/testsuite/27_io/filesystem/path/construct/100630.cc gcc-9.5.0/libstdc++-v3/testsuite/27_io/filesystem/path/construct/100630.cc *** gcc-9.4.0/libstdc++-v3/testsuite/27_io/filesystem/path/construct/100630.cc Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/libstdc++-v3/testsuite/27_io/filesystem/path/construct/100630.cc Fri May 27 07:21:13 2022 *************** *** 0 **** --- 1,14 ---- + // { dg-options "-std=gnu++17" } + // { dg-do compile { target c++17 } } + + #include + + void f(bool) { } + void f(const std::filesystem::path&) { } + + void + test_100630() + { + volatile bool b = true; + f(b); + } diff -Nrcpad gcc-9.4.0/libstdc++-v3/testsuite/27_io/types/1.cc gcc-9.5.0/libstdc++-v3/testsuite/27_io/types/1.cc *** gcc-9.4.0/libstdc++-v3/testsuite/27_io/types/1.cc Tue Jun 1 07:53:06 2021 --- gcc-9.5.0/libstdc++-v3/testsuite/27_io/types/1.cc Fri May 27 07:21:13 2022 *************** *** 27,40 **** // Annex D, deprecated. void test01() { ! typedef std::ios_base::streampos streampos_type; // { dg-warning "is deprecated: use 'std::streampos' instead" } ! typedef std::ios_base::streamoff streamoff_type; // { dg-warning "is deprecated: use 'std::streamoff' instead" } } // Annex D, deprecated. void test02() { ! typedef std::ios_base::io_state iostate_type; // { dg-warning "is deprecated: use 'std::iostate' instead" } ! typedef std::ios_base::open_mode openmode_type; // { dg-warning "is deprecated: use 'std::openmode' instead" } ! typedef std::ios_base::seek_dir seekdir_type; // { dg-warning "is deprecated: use 'std::seekdir' instead" } } --- 27,40 ---- // Annex D, deprecated. void test01() { ! typedef std::ios_base::streampos streampos_type; // { dg-warning "is deprecated: use 'std::streampos' instead" "" { target c++11 } } ! typedef std::ios_base::streamoff streamoff_type; // { dg-warning "is deprecated: use 'std::streamoff' instead" "" { target c++11 } } } // Annex D, deprecated. void test02() { ! typedef std::ios_base::io_state iostate_type; // { dg-warning "is deprecated: use 'std::iostate' instead" "" { target c++11 } } ! typedef std::ios_base::open_mode openmode_type; // { dg-warning "is deprecated: use 'std::openmode' instead" "" { target c++11 } } ! typedef std::ios_base::seek_dir seekdir_type; // { dg-warning "is deprecated: use 'std::seekdir' instead" "" { target c++11 } } } diff -Nrcpad gcc-9.4.0/libstdc++-v3/testsuite/28_regex/match_results/102667.cc gcc-9.5.0/libstdc++-v3/testsuite/28_regex/match_results/102667.cc *** gcc-9.4.0/libstdc++-v3/testsuite/28_regex/match_results/102667.cc Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/libstdc++-v3/testsuite/28_regex/match_results/102667.cc Fri May 27 07:21:13 2022 *************** *** 0 **** --- 1,39 ---- + // { dg-do run { target c++11 } } + + #include + #include + + void + test01() + { + std::cmatch sm; + VERIFY( sm.empty() ); + VERIFY( sm.size() == 0 ); + VERIFY( sm.begin() == sm.end() ); // PR libstdc++/83600 + + bool matched = std::regex_match("a", sm, std::regex("b")); + VERIFY( ! matched ); + VERIFY( sm.ready() ); + VERIFY( sm.empty() ); + VERIFY( sm.size() == 0 ); + VERIFY( sm.begin() == sm.end() ); // PR libstdc++/102667 + + matched = std::regex_match("a", sm, std::regex("a")); + VERIFY( matched ); + VERIFY( sm.ready() ); + VERIFY( ! sm.empty() ); + VERIFY( sm.size() == 1 ); + VERIFY( (sm.end() - sm.begin()) == 1 ); + + matched = std::regex_search("abcd", sm, std::regex("(b)(c)")); + VERIFY( matched ); + VERIFY( sm.ready() ); + VERIFY( ! sm.empty() ); + VERIFY( sm.size() == 3 ); + VERIFY( (sm.end() - sm.begin()) == 3 ); + } + + int main() + { + test01(); + } diff -Nrcpad gcc-9.4.0/libstdc++-v3/testsuite/experimental/filesystem/operations/create_directories.cc gcc-9.5.0/libstdc++-v3/testsuite/experimental/filesystem/operations/create_directories.cc *** gcc-9.4.0/libstdc++-v3/testsuite/experimental/filesystem/operations/create_directories.cc Tue Jun 1 07:53:07 2021 --- gcc-9.5.0/libstdc++-v3/testsuite/experimental/filesystem/operations/create_directories.cc Fri May 27 07:21:13 2022 *************** test03() *** 129,138 **** --- 129,161 ---- remove_all(p); } + void + test04() + { + #if defined(__MINGW32__) || defined(__MINGW64__) + // no symlinks + #else + // PR libstdc++/101510 + // create_directories reports an error if the path is a symlink to a dir + std::error_code ec = make_error_code(std::errc::invalid_argument); + const auto p = __gnu_test::nonexistent_path() / ""; + fs::create_directories(p/"dir"); + auto link = p/"link"; + fs::create_directory_symlink("dir", link); + bool created = fs::create_directories(link, ec); + VERIFY( !created ); + VERIFY( !ec ); + created = fs::create_directories(link); + VERIFY( !created ); + remove_all(p); + #endif + } + int main() { test01(); test02(); test03(); + test04(); } diff -Nrcpad gcc-9.4.0/libstdc++-v3/testsuite/experimental/filesystem/operations/create_directory.cc gcc-9.5.0/libstdc++-v3/testsuite/experimental/filesystem/operations/create_directory.cc *** gcc-9.4.0/libstdc++-v3/testsuite/experimental/filesystem/operations/create_directory.cc Tue Jun 1 07:53:07 2021 --- gcc-9.5.0/libstdc++-v3/testsuite/experimental/filesystem/operations/create_directory.cc Fri May 27 07:21:13 2022 *************** test01() *** 46,57 **** --- 46,89 ---- VERIFY( exists(p) ); // Test existing path (libstdc++/71036). + ec = make_error_code(std::errc::invalid_argument); b = create_directory(p, ec); VERIFY( !ec ); VERIFY( !b ); b = create_directory(p); VERIFY( !b ); + auto f = p/"file"; + std::ofstream{f} << "create file"; + b = create_directory(f, ec); + VERIFY( ec == std::errc::file_exists ); + VERIFY( !b ); + try + { + create_directory(f); + VERIFY( false ); + } + catch (const fs::filesystem_error& e) + { + VERIFY( e.code() == std::errc::file_exists ); + VERIFY( e.path1() == f ); + } + + #if defined(__MINGW32__) || defined(__MINGW64__) + // no symlinks + #else + // PR libstdc++/101510 create_directory on an existing symlink to a directory + fs::create_directory(p/"dir"); + auto link = p/"link"; + fs::create_directory_symlink("dir", link); + ec = make_error_code(std::errc::invalid_argument); + b = fs::create_directory(link, ec); + VERIFY( !b ); + VERIFY( !ec ); + b = fs::create_directory(link); + VERIFY( !b ); + #endif + remove_all(p, ec); } diff -Nrcpad gcc-9.4.0/libstdc++-v3/testsuite/experimental/filesystem/operations/remove_all.cc gcc-9.5.0/libstdc++-v3/testsuite/experimental/filesystem/operations/remove_all.cc *** gcc-9.4.0/libstdc++-v3/testsuite/experimental/filesystem/operations/remove_all.cc Tue Jun 1 07:53:07 2021 --- gcc-9.5.0/libstdc++-v3/testsuite/experimental/filesystem/operations/remove_all.cc Fri May 27 07:21:13 2022 *************** test04() *** 137,142 **** --- 137,144 ---- } fs::permissions(dir, fs::perms::owner_write|fs::perms::add_perms); + fs::remove_all(dir, ec); + f.path.clear(); #endif } diff -Nrcpad gcc-9.4.0/libstdc++-v3/testsuite/experimental/filesystem/path/construct/100630.cc gcc-9.5.0/libstdc++-v3/testsuite/experimental/filesystem/path/construct/100630.cc *** gcc-9.4.0/libstdc++-v3/testsuite/experimental/filesystem/path/construct/100630.cc Thu Jan 1 00:00:00 1970 --- gcc-9.5.0/libstdc++-v3/testsuite/experimental/filesystem/path/construct/100630.cc Fri May 27 07:21:13 2022 *************** *** 0 **** --- 1,14 ---- + // { dg-do compile { target c++11 } } + // { dg-require-filesystem-ts "" } + + #include + + void f(bool) { } + void f(const std::experimental::filesystem::path&) { } + + void + test_100630() + { + volatile bool b = true; + f(b); + } diff -Nrcpad gcc-9.4.0/libstdc++-v3/testsuite/experimental/random/randint.cc gcc-9.5.0/libstdc++-v3/testsuite/experimental/random/randint.cc *** gcc-9.4.0/libstdc++-v3/testsuite/experimental/random/randint.cc Tue Jun 1 07:53:07 2021 --- gcc-9.5.0/libstdc++-v3/testsuite/experimental/random/randint.cc Fri May 27 07:21:13 2022 *************** test01() *** 34,40 **** } std::experimental::reseed(99u); ! const long n1[] = { std::experimental::randint(0, 100), std::experimental::randint(0, 100), std::experimental::randint(0, 100), --- 34,40 ---- } std::experimental::reseed(99u); ! const int n1[] = { std::experimental::randint(0, 100), std::experimental::randint(0, 100), std::experimental::randint(0, 100), *************** test01() *** 42,48 **** std::experimental::randint(0, 100) }; std::experimental::reseed(99u); ! const long n2[] = { std::experimental::randint(0, 100), std::experimental::randint(0, 100), std::experimental::randint(0, 100), --- 42,48 ---- std::experimental::randint(0, 100) }; std::experimental::reseed(99u); ! const int n2[] = { std::experimental::randint(0, 100), std::experimental::randint(0, 100), std::experimental::randint(0, 100), *************** test01() *** 52,64 **** for (int i = 0; i < 5; ++i) VERIFY( n1[i] == n2[i] ); ! std::experimental::reseed(); ! const long n3[] = { ! std::experimental::randint(0, 100), ! std::experimental::randint(0, 100), ! std::experimental::randint(0, 100) ! }; ! VERIFY( !(n3[0] == n1[0] && n3[1] == n1[1] && n3[2] == n1[2]) ); } void --- 52,64 ---- for (int i = 0; i < 5; ++i) VERIFY( n1[i] == n2[i] ); ! do ! { ! std::experimental::reseed(); ! } ! while (std::experimental::randint(0, 100) == n1[0] ! && std::experimental::randint(0, 100) == n1[1] ! && std::experimental::randint(0, 100) == n1[2]); } void diff -Nrcpad gcc-9.4.0/libstdc++-v3/testsuite/ext/profile/mutex_extensions_neg.cc gcc-9.5.0/libstdc++-v3/testsuite/ext/profile/mutex_extensions_neg.cc *** gcc-9.4.0/libstdc++-v3/testsuite/ext/profile/mutex_extensions_neg.cc Tue Jun 1 07:53:07 2021 --- gcc-9.5.0/libstdc++-v3/testsuite/ext/profile/mutex_extensions_neg.cc Fri May 27 07:21:13 2022 *************** *** 31,33 **** --- 31,36 ---- // { dg-prune-output "tuple:993" } // PMR alias templates cause ambiguities between debug and profile containers: // { dg-prune-output "is ambiguous" } + // C++20 uniform container erasure causes more errors + // { dg-prune-output "expected nested-name-specifier before" } + // { dg-prune-output "expected initializer before" } diff -Nrcpad gcc-9.4.0/libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx11.cc gcc-9.5.0/libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx11.cc *** gcc-9.4.0/libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx11.cc Tue Jun 1 07:53:07 2021 --- gcc-9.5.0/libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx11.cc Fri May 27 07:21:13 2022 *************** main() *** 161,166 **** --- 161,185 ---- // { dg-final { note-test tpl {std::tuple containing = {[1] = 6, [2] = 7}} } } ExTuple &rtpl = tpl; // { dg-final { note-test rtpl {std::tuple containing = {[1] = 6, [2] = 7}} } } + + std::error_code e0; + // { dg-final { note-test e0 {std::error_code = { }} } } + std::error_condition ec0; + // { dg-final { note-test ec0 {std::error_condition = { }} } } + std::error_code einval = std::make_error_code(std::errc::invalid_argument); + // { dg-final { note-test einval {std::error_code = {"generic": EINVAL}} } } + std::error_condition ecinval = std::make_error_condition(std::errc::invalid_argument); + // { dg-final { note-test ecinval {std::error_condition = {"generic": EINVAL}} } } + + struct custom_cat : std::error_category { + const char* name() const noexcept { return "miaow"; } + std::string message(int) const { return ""; } + } cat; + std::error_code emiaow(42, cat); + // { dg-final { note-test emiaow {std::error_code = {"miaow": 42}} } } + std::error_condition ecmiaow(42, cat); + // { dg-final { note-test ecmiaow {std::error_condition = {"miaow": 42}} } } + placeholder(""); // Mark SPOT use(efl); use(fl); diff -Nrcpad gcc-9.4.0/libvtv/ChangeLog gcc-9.5.0/libvtv/ChangeLog *** gcc-9.4.0/libvtv/ChangeLog Tue Jun 1 07:53:23 2021 --- gcc-9.5.0/libvtv/ChangeLog Fri May 27 07:21:30 2022 *************** *** 1,3 **** --- 1,7 ---- + 2022-05-27 Release Manager + + * GCC 9.5.0 released. + 2021-06-01 Release Manager * GCC 9.4.0 released. diff -Nrcpad gcc-9.4.0/lto-plugin/ChangeLog gcc-9.5.0/lto-plugin/ChangeLog *** gcc-9.4.0/lto-plugin/ChangeLog Tue Jun 1 07:53:23 2021 --- gcc-9.5.0/lto-plugin/ChangeLog Fri May 27 07:21:30 2022 *************** *** 1,3 **** --- 1,7 ---- + 2022-05-27 Release Manager + + * GCC 9.5.0 released. + 2021-06-01 Release Manager * GCC 9.4.0 released. diff -Nrcpad gcc-9.4.0/maintainer-scripts/ChangeLog gcc-9.5.0/maintainer-scripts/ChangeLog *** gcc-9.4.0/maintainer-scripts/ChangeLog Tue Jun 1 07:53:23 2021 --- gcc-9.5.0/maintainer-scripts/ChangeLog Fri May 27 07:21:30 2022 *************** *** 1,3 **** --- 1,7 ---- + 2022-05-27 Release Manager + + * GCC 9.5.0 released. + 2021-06-01 Release Manager * GCC 9.4.0 released. diff -Nrcpad gcc-9.4.0/zlib/ChangeLog gcc-9.5.0/zlib/ChangeLog *** gcc-9.4.0/zlib/ChangeLog Tue Jun 1 07:53:23 2021 --- gcc-9.5.0/zlib/ChangeLog Fri May 27 07:21:30 2022 *************** *** 1,3 **** --- 1,7 ---- + 2022-05-27 Release Manager + + * GCC 9.5.0 released. + 2021-06-01 Release Manager * GCC 9.4.0 released.

This has been discussed on the mailing lists quite a bit. --- 456,462 ---- CPLUSPLUS_CPP_SPEC in the gcc config headers for your target (and try changing them to see what happens when building complicated code). You can also run ! g++ -E -dM -x c++ /dev/null to display a list of predefined macros for any particular installation.